一、py-solc库
这个库可以编译智能合约源码
使用步骤
1.安装solidity环境
https://github.com/ethereum/solidity/releases先在github上下载对应的智能合约版本的压缩包,我下载的是0.4.18版本,解压后文件如下
将solc.exe文件拷贝粘贴至项目所在文件夹目录;
然后将该solc.exe添加至环境变量
2.安装py-solc库
安装完后就可以打开py文件使用py-solc这个库了
可以看到,这里使用solc编译了两个智能合约代码,编译结果有9个值,详细的编译结果如下
关于solc在python的跟多操作可以到这里了解。
另外也可以在cmd上使用solc编译合约
先cmd中切换到指定文件夹地址
solc helloworld.sol
运行上面命令,如果合约编译成功就没有输出,接着运行下面指令
solc --asm 1.sol
solc --bin helloworld.sol
运行上面命令可以得到字节码
二、evm_cfg_builder库
这个库可以通过字节码生成合约的cfg图
安装这个库有两个要求
1.python>=3.6
2.安装了pyevmasm这个库
这个库同时也提供了两个py文件来方便使用这个库
这里可以下载这两个py文件
这两个文件需要在cmd下调用,其中bytecode.sol为合约字节码文件
关于evm_cfg_builder这个库的更多用法可以在这里了解
三、pyevmasm库
对于这个库我也不是用的很多,不过感觉还是挺不错的,就记录一下用的最多的两个api吧
1.将操作码反编译成字节码
2.将字节码编译成操作码