验证智能合约
部署智能合约后,在我们的区块浏览器上验证您的代码非常重要。这可以使用您的开发者工具或使用Blockscout的网页以自动化方式完成。
使用开发者工具
大多数智能合约工具都有插件,可以在Etherscan上轻松验证您的合约。Blockscout支持Etherscan的合约验证API,将这些工具与Scroll Sepolia测试网一起使用非常简单。
网络 | Scroll | Scroll Sepolia |
---|---|---|
Scrollscan | https://api.scrollscan.com/api | https://api-sepolia.scrollscan.com/api |
Blockscout | https://blockscout.scroll.io/api | https://sepolia-blockscout.scroll.io/api |
Hardhat
首先,修改 hardhat.config.ts
以指向 Scroll 的 RPC 和 sepolia-blockscout.scroll.io/api
. apyKey
设置为虚拟值是必需的,但任何内容都适合其 apyKey
值。
例如,如果您在 Blockscout 上使用 Scroll Sepolia,您的配置将如下所示:
...
const config: HardhatUserConfig = { ... networks: { scrollSepolia: { url: 'https://sepolia-rpc.scroll.io' || '', accounts: process.env.PRIVATE_KEY !== undefined ? [process.env.PRIVATE_KEY] : [], }, }, etherscan: { apiKey: { scrollSepolia: 'abc', }, customChains: [ { network: 'scrollSepolia', chainId: 534351, urls: { apiURL: 'https://sepolia-blockscout.scroll.io/api', browserURL: 'https://sepolia-blockscout.scroll.io/', }, }, ], },}
...
现在,您可以通过运行以下命令来验证智能合约。
npx hardhat verify --network scrollSepolia <contract address> <space separated constructor parameters>
例如,如下是在智能合约的构造函数中接收两个 uint 参数的:
npx hardhat verify --network scrollSepolia 0xD9880690bd717189cC3Fbe7B9020F27fae7Ac76F 123 456
Foundry
在使用 Foundry 时,verify-contract
命令有助于自动化合约验证的过程。如果您的合约具有构造函数参数,您可以使用 --constructor-args
选项以 ABI 编码形式指定这些参数。例如,如果您的构造函数接受两个 uint256
变量:
--constructor-args $(cast abi-encode "constructor(uint256,uint256)" 0 7)
请参考 Foundry 文档 以获取您可以指定的更多选项。
Scrollscan
forge verify-contract <contract address> <contract name> \ --verifier-url https://api-sepolia.scrollscan.com/api \ --etherscan-api-key <your Scrollscan API key> \ --constructor-args <your constructor arguments>
Blockscout
将验证提供者指定为 blockscout
。
Scroll
forge verify-contract <contract address> <contract name> \ --verifier-url https://blockscout.scroll.io/api\? \ --verifier blockscout \ --constructor-args <your constructor arguments>
Scroll Sepolia
forge verify-contract <contract address> <contract name> \ --verifier-url https://sepolia-blockscout.scroll.io/api\? \ --verifier blockscout \ --constructor-args <your constructor arguments>