Foundry 是 rust编写的,效率比较高,跟着官方文档走一下
准备
-
测试网 SepoliaETH
-
infura 申请节点
-
etherscan-api-key 申请,用于自动验证源代码
实操
sudo proxychains4 forge create --rpc-url <your_rpc_url> \
--private-key <your_private-key> \
--etherscan-api-key <your_etherscan-api-key> \
--verify \
src/Wallet.sol:Wallet
三个参数用你自己的key替换掉,后面跟着合约代码文件,冒号后是合约名字(多个的话会区分)
国内网络问题,需要挂上梯子,配置proxychains
sudo forge create --rpc-url <your_rpc_url> \
--private-key <your_private-key> \
--etherscan-api-key <your_etherscan-api-key> \
--verify \
src/Wallet.sol:Wallet
执行后发现有部署,但是自动验证没过,不知道什么原因。
看提示 难道是因为去验证的时候 合约还没部署吗
部署后单独验证成功, 参数多了编译器版本,合约地址
sudo proxychains4 forge verify-contract --rpc-url <your_key> \
--etherscan-api-key <your_key> \
--compiler-version v0.8.25+commit.b61c2a91 \
--watch \
0xdF3c3f056DF87e96dd5f796c77Be8C0D4496F497 \
src/Wallet.sol:Wallet
问题
被网络问题折腾的够呛
原本以为 配置
export http_proxy=http://127.0.0.1:7890
终端就能走代理,后面发现不行
api.etherscan.io ping不通然后又改dns 由114.114.114.114 到 8.8.8.8,是能ping通了,问题还在
ping api.etherscan.io
nslookup api.etherscan.io
最后还是使用proxychains 解决