文章目录
- 一、验证说明
- 二、Etherscan Key
- 三、验证插件
- 四、源码认证
- 4.1 Remix验证(推荐)
- 4.1.1 无构造参数合约验证
- 4.1.2 有构造参数合约验证
- 4.2 单文件验证(不推荐)
- 4.3 Hardhat部署(按照需要)
- 五、验证结果
- 六、文章预告
前置参考文档:https://blog.csdn.net/sinat_34104446/article/details/130557703
一、验证说明
- 合约验证是上传合约源代码到etherscan过程,在智能合约项目中,通常都是提供源码验证,增加项目信任度
- 验证合约后可以直接在etherscan上执行获取和设置方法,方便日常的管理员维护
- 以下使用remix进行验证并使用较多的图片示例进行说明
- 每个部署都有对应的合约,点击合约地址即可查看代码示例
温馨提示:Etherscan需要梯子
二、Etherscan Key
- 验证合约需要使用到etherscan的api key
- 进入到etherscan登录账号后进入个人中心
- https://etherscan.io/myapikey
- 保管好个人api,防止泄漏
三、验证插件
- 验证源码需要remix插件 ETHERSCAN - CONTRACT VERIFICATION 的支持
- 增加 ETHERSCAN - CONTRACT VERIFICATION 插件,验证的时候部署环境需要切换到对应的部署钱包
- 填写完成后点击 Save API key,然后点击填写 api key右上角的小房子图标回到插件首页
四、源码认证
源码的验证必须要和原始部署代码保持一致,否则将验证失败
4.1 Remix验证(推荐)
4.1.1 无构造参数合约验证
- 无参构造只需要在Remix上使用合约验证插件直接验证即可
- 选择 Verify Contract,等待验证成功
- 验证结果参考 第五节、验证结果
4.1.2 有构造参数合约验证
remix可以验证单文件和多文件
- 点击合约信息中的 Verify and Publish,此处操作的目的是为了获取remix验证插件需要的构造参数信息
- 按照图示填写信息,然后continue
- 复制构造参数
- remix进行合约验证,按照下面的参数填写
- 查看合约验证结果参考第五节
4.2 单文件验证(不推荐)
如果存在多文件,例如有import,则需要借助插件将多文件合并成一个单文件
如果不借助插件则只能手动将多个文件的源代码全部合并为一个,且需要重新部署合约
- 如果仅仅只是普通合约不存在import的,可以在合约部署完成进行手动验证
- 单文件验证和remix验证的etherscan部署完全一致,只需要在源码处填写源码后验证即可
- 填写完成之后点击 Verify and Publish即可
4.3 Hardhat部署(按照需要)
hardhat部署需要网络友好软件且需要全局配置,故推荐使用Remix验证
五、验证结果
无参构造合约:0x9a9560272b12cd56b11f547c2f7092c274a9ff52
- Remix验证之后,到Etherscan的contract菜单刷新页面
- 查看合约提供的读取方法
- 查看合约提供的设置方法
有参构造合约:0xae8ee7b8355190b47665511e15824eed2b55b1d5
六、文章预告
- 以上都是普通智能合约部署,后续会上代理合约部署和代理合约验证
- 代理合约部署和验证比较复杂,将会采用较多图示进行演示