truffle verify Failed to connect to Etherscan API at url https://api-rinkeby.etherscan.io/api

在使用 truffle-plugin-verify 插件进行代码验证的时候,报错:

~> truffle run verify BTCContract --network rinkeby 
Verifying BTCContract
Failed to connect to Etherscan API at url https://api-rinkeby.etherscan.io/api
Failed to verify 1 contract(s): BTCContract

根据提示来看:是连接不上 https://api-rinkeby.etherscan.io/api 这个地址。
所以先ping 一下这个域名,

~> ping api-rinkeby.etherscan.io
PING api-rinkeby.etherscan.io (128.121.146.101): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2

果然域名无法解析。

那就好办了,去找到这个域名下对应的地址不就可以了嘛
去这个网站 https://url5.co/?t=1636355893
查询出 api-rinkeby.etherscan.io 这个域名对应的IP
在这里插入图片描述
尝试第一个ping IP( 104.22.14.57) ,是否能ping 通,尝试一下确实可以ping通。
接着只需要把本地的hosts 文件添加 一行映射即可,我用的是MacOS, 编辑/private/etc/hosts就行。Windows找下对应的hosts文件修改就行。

104.22.14.57  api-rinkeby.etherscan.io  

在这里插入图片描述

修改后再次执行验证,验证成功。

~> truffle run verify BTCContract --network rinkeby         
Verifying BTCContract
Contract source code already verified: https://rinkeby.etherscan.io/address/0xb3d0d1aAB33ccF565A6FD0D9543FBcE49bD952c9#code
Successfully verified 1 contract(s).

除此之外还能是node 、truffle与verfify插件的版本问题。
我这里使用的是

Truffle v5.4.6 (core: 5.4.6)
Solidity - 0.6.10 (solc-js)
Node v12.22.1
Web3.js v1.5.1
"truffle-plugin-verify": "0.5.16"

希望以上内容对正在遇到问题的小伙伴有所帮助。

另外:如果出现的是下面这种情况,可能是服务的问题,等上一段时间自己会好

Request failed with status code 403
Failed to connect to Etherscan API at url https://api-rinkeby.etherscan.io/api
Failed to verify 1 contract(s): BulldogTestyClub

猜你喜欢

转载自blog.csdn.net/qq_36838406/article/details/121208890
今日推荐