《NFT区块链进阶指南二》Etherscan验证Solidity智能合约(Remix插件验证)

news/2024/11/8 3:13:02/

文章目录

  • 一、验证说明
  • 二、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

一、验证说明

  1. 合约验证是上传合约源代码到etherscan过程,在智能合约项目中,通常都是提供源码验证,增加项目信任度
  2. 验证合约后可以直接在etherscan上执行获取和设置方法,方便日常的管理员维护
  3. 以下使用remix进行验证并使用较多的图片示例进行说明
  4. 每个部署都有对应的合约,点击合约地址即可查看代码示例

温馨提示:Etherscan需要梯子

二、Etherscan Key

  1. 验证合约需要使用到etherscan的api key
  2. 进入到etherscan登录账号后进入个人中心
    • https://etherscan.io/myapikey

image.png

  1. 保管好个人api,防止泄漏

三、验证插件

  1. 验证源码需要remix插件 ETHERSCAN - CONTRACT VERIFICATION 的支持
  2. 增加 ETHERSCAN - CONTRACT VERIFICATION 插件,验证的时候部署环境需要切换到对应的部署钱包

image.png
image.png

  1. 填写完成后点击 Save API key,然后点击填写 api key右上角的小房子图标回到插件首页

image.png

四、源码认证

源码的验证必须要和原始部署代码保持一致,否则将验证失败

4.1 Remix验证(推荐)

4.1.1 无构造参数合约验证

  1. 无参构造只需要在Remix上使用合约验证插件直接验证即可

image.png

  1. 选择 Verify Contract,等待验证成功

image.png

  1. 验证结果参考 第五节、验证结果

4.1.2 有构造参数合约验证

remix可以验证单文件和多文件

  1. 点击合约信息中的 Verify and Publish,此处操作的目的是为了获取remix验证插件需要的构造参数信息

image.png

  1. 按照图示填写信息,然后continue

image.png

  1. 复制构造参数

image.png

  1. remix进行合约验证,按照下面的参数填写

image.png

  1. 查看合约验证结果参考第五节

4.2 单文件验证(不推荐)

如果存在多文件,例如有import,则需要借助插件将多文件合并成一个单文件
如果不借助插件则只能手动将多个文件的源代码全部合并为一个,且需要重新部署合约

  1. 如果仅仅只是普通合约不存在import的,可以在合约部署完成进行手动验证
  2. 单文件验证和remix验证的etherscan部署完全一致,只需要在源码处填写源码后验证即可

image.png

  1. 填写完成之后点击 Verify and Publish即可

4.3 Hardhat部署(按照需要)

hardhat部署需要网络友好软件且需要全局配置,故推荐使用Remix验证

五、验证结果

无参构造合约:0x9a9560272b12cd56b11f547c2f7092c274a9ff52

  1. Remix验证之后,到Etherscan的contract菜单刷新页面

image.png

  1. 查看合约提供的读取方法

image.png

  1. 查看合约提供的设置方法

image.png

有参构造合约:0xae8ee7b8355190b47665511e15824eed2b55b1d5

image.png

六、文章预告

  1. 以上都是普通智能合约部署,后续会上代理合约部署和代理合约验证
  2. 代理合约部署和验证比较复杂,将会采用较多图示进行演示

http://www.ppmy.cn/news/83271.html

相关文章

Java的Proxy,一种思考和解决问题的方法

代理模式 静态代理功能列表(接口)原有功能,功能的实现在不破坏原功能的情况下EnhanceTest JDK 动态代理Cglib 代理模式Callback的MethodInterceptortest 静态代理 在不破坏原有功能的情况下,进行升级改造。 使用场景,…

Hyperledger Fabric理解

在Hyperledger Fabric中,Peer和Orderer是两个不同的角色,它们各自扮演不同的角色,但也需要相互协同合作来支持Fabric网络的顺畅运行。 Peer是Hyperledger Fabric网络中负责维护分类帐(Ledger)、安装链码(C…

已经有MySQL了,干嘛还要学MongoDB?

三分钟的时间,通过本文你将学会 1.MongoDB主要特征 2.MongoDB优缺点,扬长避短 3.何时选择MongoDB?为啥要用它? 4.MongoDB与MySQL关键字对比 5.下载与安装MongoDB 6.Java整合MongoDB,实现增删改查 MongoDB和MySQ…

Java设计模式七大原则-开放-关闭原则

✨作者:猫十二懿 ❤️‍🔥账号:CSDN 、掘金 、个人博客 、Github 🎉公众号:猫十二懿 开放-关闭原则 1、开闭原则介绍 在Java中的开放-关闭原则(Open-Closed Principle, OCP)是一个重要原则。该…

【业务功能篇01】Springboot+mybatis-plus+POI实现表单数据导出Excel

业务中常见的一个功能,前台附有多个筛选器,提供筛选过滤表单数据,然后点击导出按钮进行导出: 下面演示举例实例: 用户通过前端参数传参后,查询出一个表单数据,假设为表A,这个表A是一个问题单表,每个问题会对应有多个小问题单,比如ANo是该问题单号, 而subNo字段就是对…

设计模式 -第1部分 避免浪费- 第1章 Flyweight 模式 - 共享对象避免浪费

第1部分 避免浪费 注:其内容主要来自于【日】-结城浩 著《图解设计模式》20章节 极力推荐大家阅读原著 第1章 Flyweight 模式 - 共享对象避免浪费 1.1 Flyweight 模式 Flyweight 的意思"轻量级",其在英文中的原意指比赛中选手体重最轻等级的一…

正确甄别API、REST API、RESTful API和Web Service之间的异同

看到API你会想起什么?是接口、第三方调用、还是API文档?初看你可能会觉得这太熟悉了,这不是系统开发日常系列吗?但你仔细想一想,你会发现API的概念在你脑海里是如此的模糊。如何你通过搜索引擎检索API,你会…

Try ‘apt --fix-broken install’ with no packages解决办法

在Ubuntu中用apt-get安装软件,系统报出Unmet dependencies错误。 Unmet dependencies. Try ‘apt --fix-broken install’ with no packages (or specify a solution) 解决方案如下: sudo apt --fix-broken install sudo apt-get update sudo apt-get u…