背景
当我们部署一个智能合约到okexchain上之后,希望能够在oklink直接查看合约源码,方便进行合约调试,也方便合约使用者进行合约调用。
问题
在oklink可以看到合约源码的前提,是需要通过oklink浏览器合约验证,那么如何进行合约验证?
解决方案
以remix为例。
编译合约
编译合约的时候留意选择的选项,包括solidity版本,evm版本,是否自动优化,优化参数。

确认选项后,点击compile
部署合约
点击deploy发布合约,并复制部署后的合约地址

验证合约
在oklink区块链浏览器部找到已部署合约,点击合约选项,点击去验证合约

注意编译器版本要对应上

evm版本,优化选项也要一一对应,然后将编译用的solidity代码复制进来

点击提交,就成功验证了。



再次在oklink查看该合约的时候,就可以看到源码了。

注意
如果使用hardhat或其他工具编译合约,最好能指定evm版本,因为hardhat在编译的时候,会根据所选的solidity版本对应的evm版本,来编译合约。
如图,如果使用hardhat,建议使用 --evm-version来指定版本
