这是我的整个程序。其背后的原因是以太坊上的程序越大,加载它的成本就越高(因为每字节的gas成本非常高)。
CALLER
CALLDATASIZE
ISZERO
PUSH1 0x07
JUMPI
PUSH3 0x5b6000
SSTORE
所以我要跳进去PUSH3 0x5b6000
,但如果我们拆解0x5b6000
,那就意味着
JUMPDEST
PUSH1 0x00
因此,由于 evm 操作码编码是完全可变长度的(并且所有指令在 PUSHxx 旁边都是一个字节长)并且我正在跳转到 a JUMPDEST
,为什么这个事务会失败?
黄皮书的什么地方规定,去aJUMPDEST
不是有效跳转目的地的唯一要求?