evm2 EVM平方:
e=vm² (pronounced evm-squared; the = is silent), also spelled evm2, is an evm that runs inside evm。
开源代码见:
当前使用 huff——为A low level assembly language for the EVM 汇编语言 实现了evm,使得可have a vm in evm:
同时,还有一些老接口:
evm compile evm.easm
evm run或如下脚本:./run.sh 0x<bytecode>
./disas.sh将编译evm2,然后展示反汇编结果,有助于理解debug。注意:代码中若无return声明,将返回evm2的memory。
./test.sh 60336002025952
"00..0066"
./test.sh 595952595952595952
"..00..20..40"
./test_huff.sh 6040595360205952
"40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020"
evm --debug】# classic evm:
evm --debug --json --code 600019595260406000a0 run
# and for evm2:
evm --debug --json --code `huffc evm.huff --bin-runtime` --input 600019595260406000a0 run
#### LOGS ####
LOG0: 0000000000000000000000007265636569766572 bn=0 txi=0
00000000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
00000010 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
[1] twitter evm-squared