No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Convierte tus certificados en títulos universitarios en USA

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

16 Días
22 Hrs
21 Min
14 Seg

Continuando con la construcción del bytecode básico

14/32
Recursos

Código del ejercicio:

// Load CALLDATA to memory
CALLDATASIZE
PUSH1 0x00
CALLDATASIZE
PUSH1 0x20
SUB
CALLDATACOPY

// Define JUMPDEST and push to stack
JUMPDEST
PUSH1 0x03
PC
SUB

// Load memory to stack
PUSH1 0x00
MLOAD

// Substract 1 and save to memory
PUSH1 0x01
SWAP1
SUB
DUP1
PUSH1 0x00
MSTORE

// Save to memory and JUMP back if value is not 0
PUSH1 0x0
LT
SWAP1
JUMPI

Aportes 5

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Ahora que saben leer bytecode, acá un muy buen recurso para resolver retos sobre la EVM 👨🏻‍💻

https://www.youtube.com/watch?v=yxgU80jdwL0

Les dejo este video de la Ethereum Foundation sobre EVM

Estas dos anteriores clases muy complejas, pero interesantes, tuve que mirarlas minuto a minuto para no perderme en el camino🥴

No entendía muy bien los conceptos… hasta que observe en Etherscan un smart contracts que realice en una red de prueba y mire el bytecode 😃

| | | |---|---| |00|CALLDATASIZE| |01|PUSH1 0x00| |03|CALLDATASIZE| |04|PUSH1 0x20| |06|SUB| |07|CALLDATACOPY| |08|JUMPDEST| |09|PUSH1 0x03| |0B|PC| |0C|SUB| |0D|PUSH1 0x00| |0F|MLOAD| |10|PUSH1 0x01| |12|SWAP1| |13|SUB| |14|DUP1| |15|PUSH1 0x00| |17|MSTORE| |18|PUSH1 0x00| |1A|LT| |1B|SWAP1| |1C|JUMPI| |1D|STOP| ```js | | | |---|---| |00|CALLDATASIZE| |01|PUSH1 0x00| |03|CALLDATASIZE| |04|PUSH1 0x20| |06|SUB| |07|CALLDATACOPY| |08|JUMPDEST| |09|PUSH1 0x03| |0B|PC| |0C|SUB| |0D|PUSH1 0x00| |0F|MLOAD| |10|PUSH1 0x01| |12|SWAP1| |13|SUB| |14|DUP1| |15|PUSH1 0x00| |17|MSTORE| |18|PUSH1 0x00| |1A|LT| |1B|SWAP1| |1C|JUMPI| |1D|STOP| ``` | | | |---|---| |00|CALLDATASIZE| |01|PUSH1 0x00| |03|CALLDATASIZE| |04|PUSH1 0x20| |06|SUB| |07|CALLDATACOPY| |08|JUMPDEST| |09|PUSH1 0x03| |0B|PC| |0C|SUB| |0D|PUSH1 0x00| |0F|MLOAD| |10|PUSH1 0x01| |12|SWAP1| |13|SUB| |14|DUP1| |15|PUSH1 0x00| |17|MSTORE| |18|PUSH1 0x00| |1A|LT| |1B|SWAP1| |1C|JUMPI| |1D|STOP|