前言
在以太坊区块浏览器上验证智能合约有很多好处:
- 作为合约的创建者,它可以提升我们的开发体验,因为对于验证通过的智能合约,浏览器上可以直接阅读合约代码,并且提供了接入合约的方法。
- 对于参与合约的用户来言,由于合约代码开源可见,用户可以自行鉴定代码的安全性,这样无形之间建造了合约和用户之间的信任。
- 对于数字藏品来说,通过唯一的tokenid,任何人都可以查询到对应的元数据,提供了验证tokenid的方法。
警告
本指南仅供学习交流使用,不得用于违法用途,如果侵犯了国家法律,责任自负。
获取智能合约完整代码
验证智能合约需要提供合约代码,这里我们采用的是单文件验证方式,我们的智能合约使用了OpenZeppelin的类库来实现了ERC721的标准,完整的代码需要借助remix来获取。 https://remix.ethereum.org/,打开这个网址进入remix,在网站左侧找到contracts文件夹,将鼠标滑过去,然后点击右键,再点击New File,新建文件contract.sol,然后打开这个文件,将合约代码复制粘贴上去。
然后点击最左边往下查第三个按钮,选择编译版本为hardhat.config.js设置的版本,这里我们选择0.8.1,勾选住下边的Auto compile(自动编译),等待编译完成。
使用插件FLATTENER处理编译过的智能合约,然后获取到完整的合约代码,首先点击插件图标,然后在弹出的插件库里找到FLATTENER,点击Activate激活插件,激活成功后插件会出现在左侧工具栏上。
点击flattener,再次点击Flatten contracts/contract.sol,等待完成后,点击Save contract_flat.sol,这时会出现个确认授权的弹框,点击Accept(接受),就可以在编辑器中看到完整的合约代码文件。
验证合约
在区块浏览器上输入合约地址点击搜索,然后点击Contract,找到Verify and Publish并点击,进入验证合约代码页面,第一个输入框的内容是合约地址,已经自动填充上去,不需要修改,第二个是选择编译类型,选择Solidity (Single file),接下来会选择编译版本,选择v0.8.1+commit.df193b15,最后一项是选择开源许可证类型,选择第一个1) No License (None),全部选择完成后,点击Continue按钮,
复制Remix编辑器里的合约代码,粘贴到合约代码栏里,然后进行人机身份验证,验证通过后,点击Verify and Publish。 等待验证中
验证成功
验证成功后,再次搜索合约地址,会看到contract右边多了个绿色的对号,这时候我们可以直接使用区块链浏览器与合约交互了,比如可以通过tokenid查询数字藏品的元数据,点击contract下边的Read Contract,找到tokenURI后点击,然后在tokenId输入框里输入一个数字,接着点击下方的query,如果tokenId正确就会在下方显示出元数据信息。
同样的,我们也可以执行合约的方法,比如执行铸造方法,点击Write Contract,会出现所有合约的可执行方法,我们点击打开mintTo方法,然后输入address(接收地址)和tokenURI(元数据信息),输入完毕后点击Write,这时候如果我们没有连接到钱包,会需要首先连接meatmask钱包,连接完成后再点击Write,根据提示进行操作即可铸造数字藏品。
总结
这篇文章我们学习了如何验证智能合约,我们使用的是单文件验证方式,验证通过后,我们一起执行了合约的一些方法,当然合约的所有用户都可以与之交互,代码的开源也增加了合约与用户之间的信任,所以强烈建议在区块浏览器上验证你的智能合约。
捐赠渠道
本指南是由本人自发的项目,如果你要支持我,请通过支付宝发送口令红包,将口令发送到我的邮箱351107490@qq.com,捐赠仅凭个人意愿,感谢支持。
|