使用solidity-flattener展开合约到一个文件中

版权声明:版权所有。转载请注明出处:扶风的博客 https://blog.csdn.net/JohnnyMartin/article/details/81746513

平常使用truffle做合约的开发,可以通过import将别的合约包含进来,方便代码的组织。但是,有几个特殊场景,需要将import的合约都写到当前文件里:

  • 使用钱包(如Mist)发布合约,不支持import,只能将所有sol的源代码放到一起,扔进Mist编译、发布。
  • 将合约代码提交到区块浏览器,供别人参阅,需要将所有sol的源代码放到一起。

import的合约数量少,可以手动解决,当合约数量增大之后,这活就太累人了。使用solidity-flattener可以完美解决这个问题。

依赖:

  • python3
  • pip3

安装过程:

  • 安装solc:
    sudo add-apt-repository ppa:ethereum/ethereum
    sudo apt-get update
    sudo apt-get install solc
  • 安装 solidity-flattener
    pip3 install solidity-flattener

使用:
进入到truffle目录的contracts目录,执行:

  • solidity_flattener XXX.sol

便可将展开后的代码输出到屏幕控制台。想要输出到文件,可以这样做:

  • solidity_flattener –output sss.txt XXX.sol

假如有额外的目录,可以这样做

  • solidity_flattener –solc-paths=”my_solidity_path=需要添加的文件夹名称” –output sss.txt XXX.sol

接下来,就可以将展开后的代码,公布到区块浏览器了:
https://ropsten.etherscan.io/verifyContract2?a=已发布的合约地址

猜你喜欢

转载自blog.csdn.net/JohnnyMartin/article/details/81746513
今日推荐