Supongamos que tengo dos funciones de solidez:
function funcA()public{}
Y
function funcB()public payable{}
¿Cuál es la diferencia entre su código de bytes? si llamo a la funcA con algo de éter en la transacción, se revertirá, ¿y qué sucede en el código de bytes?
Al principio, se ejecutará una función no paga CALLVALUE
y se revertirá si devuelve un valor distinto de cero.
Por ejemplo:
Assembly | Pseudocode
---------------------------------------------
CALLVALUE |
DUP1 |
ISZERO | if (msg.value == 0)
PUSH2 label |
JUMPI | goto label
PUSH1 00 |
DUP1 |
REVERT | revert("")
Masud jt
johnny martin