智能合约反编译查错经验汇编

问题:为什么需要比较不同版本的solc编译器

  • EVM在不断升级中,有些指令是后来加入的,比如revert,还有returndatasize

  • 同样的solidity代码,鹏飞在0.4.22编译出来后,就在未升级过的北京银行项目环境上运行报错,因为没有returndatasize这个指令(推测是同样的函数,后面的编译器版本动作不一样了,比如要先返回到buffer了,间接返回returndatasize;而不是像之前直接返回数据本身)

旧版本的solc remix

1.solidity如何反编译查错

etherscan上的服务

我用0.4.22来编译simple合约,发现有如下的fd(revert指令),如果用旧版本(比如0.4.2的呢??)

这里写图片描述

选择低版本,成功通过

我在家中编译器,选择了0.4.2版本,编译部署出二进制代码,果然没有fd指令了


所用源代码


pragma solidity ^0.4
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值