安装并启用truffle-plugin-verify

使用npm或yarn安装truffle插件:

npm install -D truffle-plugin-verify
yarn add -D truffle-plugin-verify

安装后,将以下内容添加到truffle-config.js文件中,以启用带有Truffle的插件:

module.exports = {/* ... rest of truffle-config */plugins: ['truffle-plugin-verify']
}

创建Etherscan API密钥并将其添加到truffle中

要创建Etherscan API密钥,首先需要在Etherscan网站上创建一个帐户。

创建帐户后,可以在个人资料页面上添加新的API密钥。

创建新密钥后,将其添加到truffle-config.js文件里的api_keys中:

module.exports = {/* ... rest of truffle-config */api_keys: {etherscan: 'MY_API_KEY'}
}

当然,不应该将此API密钥提交到Git存储库,建议使用dotenv将API密钥存储在.env文件中并从那里读取。

完整配置文件如下:

const HDWalletProvider = require('@truffle/hdwallet-provider');
require('dotenv').config();module.exports = {networks: {rinkeby: {provider: function() {return new HDWalletProvider(`${process.env.MNEMONIC}`, `https://rinkeby.infura.io/v3/${process.env.INFURA_ID}`)},network_id: 4}},plugins: ['truffle-plugin-verify'],api_keys: {etherscan: process.env.ETHERSCAN_API_KEY}
};

部署并验证合约

执行下面命令部署合约:

truffle migrate --network rinkeby

部署合约后,我们可以使用truffle-plugin-verify来运行Etherscan验证我们的合约:

truffle run verify contractName --network rinkeby

成功后返回:

Pass - Verified: https://rinkeby.etherscan.io/address/0x2CEA970AE626C8114Ca12942e96c7c2E189C16b2#contracts

如果验证超时,可以修改truffle-config.js里的timeoutBlocks。

    rinkeby: {provider: () => new HDWalletProvider(`${process.env.MNEMONIC}`,`https://rinkeby.infura.io/v3/${process.env.INFURA_ID}`),network_id: 4,       // Ropsten's idtimeoutBlocks: 200  // # of blocks before a deployment times out  (minimum/default: 50)},

在Etherscan上自动验证Truffle智能合约相关推荐

  1. 在Xuper链上部署Java语言智能合约和分析存证合约的实现逻辑

    前言 这篇文章咱们先简单的叙述下官方刚发布的最新版本中的native部署java语言编写的智能合约的过程然后再说下存证合约的代码实现逻辑,下一篇文章咱们说下如何根据自己公司的业务逻辑定义合约里面的数据 ...

  2. 【“码”上有你】智能合约库有奖征码第3期来袭

    "智能合约库有奖征码"活动开展以来,伙伴们群策群力踊跃贡献,帮助夯实了合约库的基础功能,涌现了诸如共享经济.商品溯源等更多面向实际业务场景的合约样板,使得合约库更加满足开发者和行业 ...

  3. 结合 Mist 在本地测试网络上实现代币智能合约

    Mist 简介 Mist是以太坊官方的在线钱包管理工具.通过 Mist 我们可以很方便的连接上我们的私有网络,从而更好的开发.调试.测试我们的智能合约.既可以连接生产网络.测试网络,更加可以通过设置参 ...

  4. web3入门-web3.js通过Ganache连接truffle智能合约

    //环境 Truffle v5.5.21 (core: 5.5.21) Ganache v7.2.0 Solidity v0.5.16 (solc-js) Node v14.17.3 Web3.js ...

  5. 以太坊笔记 使用 Browser-solidity 在 Go-Ethereum1.7.2 上进行简单的智能合约部署

    转载自:https://mshk.top/2017/11/browser-solidity-go-ethereum-1-7-2/ 目录 Contents [hide] 目录 1.基本概念 1.1.什么 ...

  6. 成都链安重磅出品 | 基于VS Code插件的智能合约自动形式化验证工具Beosin—VaaS『离线免费版』...

    11月4日,成都链安重磅推出『离线免费版』智能合约自动形式化验证工具Beosin-VaaS,该版本基于流行的开发工具VS Code插件,供广大开发者免费使用.获得方式如下,欢迎体验使用: https: ...

  7. 12在以太坊上定义智能合约缺陷

    原文标题: Defining Smart Contract Defects on Ethereum 原文作者: Jiachi Chen, Xin Xia, David Lo, John Grundy, ...

  8. 将智能合约部署到Rinkeby测试链上

    引言 在上一篇文章中<快速上手第一个智能合约中>,我们介绍了如何编写与运行我们的第一个智能合约.但那只是将合约运行在了浏览器的区块链虚拟环境中,与区块链还是有一定的区别,另外也无法被其它人 ...

  9. 基于语义嵌入模型与交易信息的智能合约自动分类系统

    摘要: 作为区块链技术的一个突破性扩展,智能合约允许用户在区块链上实现个性化的代码逻辑从而使得区块链技术更加的简单易用.在智能合约代码信息迅速增长的背景下,如何管理和组织海量智能合约代码变得更具挑战性 ...

最新文章

  1. sql 找到上一次_记一次对XXCMS的代码审计
  2. 无法使用index seek的写法
  3. 移动vue项目,启动错误:Module build failed: Error: No PostCSS Config found in:
  4. 026_图书管理案例
  5. dotnet安装包时找不到依赖关系_孩子总找妈妈,小心单方父母过渡依赖症,4个方法让父母更平等...
  6. 【CV】54篇最新CV领域综述论文速递!涵盖14个方向:目标检测/图像分割/医学影像/人脸识别等方向...
  7. The requested URL was not found on the server
  8. 【bzoj4566】[Haoi2016]找相同字符【后缀自动机】
  9. LeetCode 第 197 场周赛(468/5273,前8.88%)
  10. DEEPIN教程 - 本地安装Typora
  11. MATLAB学习笔记(十五)
  12. Python自动控制鼠标中键滚动并截屏保存图像
  13. JavaMail入门第四篇 接收邮件
  14. BT中的磁力链接(转)
  15. 火山视窗选择夹内使用右键菜单演示
  16. Mac 安装 MAT内存分析工具
  17. 鸿蒙系统桌面建文件夹,怎样把桌面上的文件放在一个文件夹里
  18. box2d 初识 强大的物理碰撞引擎 结合canvas
  19. Python-实验4
  20. 投票服务器维护时间,【维护】4月1日官方维护公告(正式服)

热门文章

  1. jQuery(入门)
  2. Java互联网架构-企业级实战秒杀系统优化方案与应用思路
  3. 《Java并发编程的艺术》读后笔记-Java中的并发工具类(第八章)
  4. 2D-2D:对极几何与三角测量
  5. easyUI tree 自定义图标
  6. centos8 处理挖矿程序攻击
  7. QT信号和槽机制分析
  8. python识别麻将牌_图像识别之麻将识别源码( 三 )
  9. Salesforce Apex 中常用技能总结(持续更新)
  10. JDK19都出来了~是时候梳理清楚JDK的各个版本的特性了【JDK9特性讲解】