为什么即使包含JUMPDEST也不起作用,也要跳入指令?

问题描述

这是我的整个程序。其背后的原因是,以太坊上的程序越大,加载它的成本就越高(因为气体成本是每字节的,而且很高)。

CALLER
CALLDATASIZE
ISZERO
PUSH1 0x07
JUMPI
PUSH3 0x5b6000
sstORE

所以我要跳到PUSH3 0x5b6000,但是如果我们拆解0x5b6000,那就意味着

JUMPDEST
PUSH1 0x00

因此,由于evm操作码编码为fully variable length(并且所有指令在PUSHxx旁边都是一个字节长),而我跳到JUMPDEST,为什么this transaction会失败?>

在黄皮书中指出,去JUMPDEST并不是唯一有效跳转目标的唯一条件?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)