智能合约使用truffle compile、npx hardhat compile、brownie compile这3种工具编译后,都会得到一个json文件,该json文件有合约的abi、bytecode、compiler等字段。
- abi 应用程序二进制接口,是合约提供外界调用的接口。
- bytecoe 字节码,合约代码编译之后得到的字节码,最后会部署到链上。
- compiler 是Solidtiy的编译信息,包含链分叉的版本、solc版本、是否优化。
//TokenERC20.json
\"compiler\": { \"evm_version\": \"istanbul\", \"optimizer\": { \"enabled\": true, \"runs\": 200 }, \"version\": \"0.5.17\" },
从TokenERC20.json文件,可以得出该合约使用的Solidity编译器版本为v0.5.17, 链分叉版本:istanbul,已经开启优化。
则在提交合约的编译信息时,填写的内容如下:
图(1) TokenERC20合约的编译信息