区块链上的defi业务,在合约上线后为了使得业务公开透明化,往往需要上传合约代码。本文介绍一种从合约代码合并到成功发布的一条切实可行的发布路线。
〇、准备
1. 待发布的,能成功编的合约代码
2. Remix
3. 确保能正常访问到以太坊浏览器,以便在浏览器上发布
一、合并合约代码
合约代码在编写时,为了方便会常用到import引入外部合约。在发布到浏览器上时,若依赖的文件过多或依赖链路过长,则需合并合约代码到一个单文件中。
合并合约代码常见的有三种方式,一是通过truffle-flattener或verify插件,二是通过Remix插件,三是最原始的最麻烦也最容易出错的手动复制粘贴合并。第一种方式准备环境比较繁琐,后面有时间再介绍,第三种方式不推荐,本文主要介绍第二种方式,通过Remix插件合并。
Step1. Remix安装合并合约的flattener插件
①点击插头图标;
②输入flattener搜索插件;
③点击Activate按钮安装激活插件;
Step2. Remix编译合约
这一步不需细说,按正常方式编译即可
Step3. Remix使用flattener合并合约
①点击安装激活flattener后出现的flattener插件图标;
②进入插件可视化界面后,点击如图所示的Flatten按钮,合并该合约;
③此时会提示合并后的代码已经贴入剪贴板,打开一个空白文本Ctrl+v即可将合并后的合约代码粘贴进该文本;
Step4.在浏览器上发布合约源码
在浏览器发布合约源码需要准备:
1.完整源码(已在上面Step3准备好);
2.创建合约时的构造参数(ABI格式,可从链上交易中获取,如果不方便找可以在Remix中编写同样入参的空方法,本地调用后查看);
需要注意两个地方:
1.请确保源码和链上发布合约时的源码一致;
2.构造参数需与创建该合约时指定的参数一致;
具体操作步骤如下:
①进入ETH浏览器对应的合约页面,点击Verify and Publish按钮:
②选择对应的合约验证发布选项:单文件(本文适用)、创建合约时的编译器版本、合约许可license(一般为MIT) ,选择完成后点击下方的Continue按钮
③分别填入合约源码及ABI(如果编译合约时使用了Optimization编译优化,则需选择Yes),完成人机验证并点击Verify and Publish,即可完成合约源码上传发布
- 海报