【Hardhat】驗證智能合約 使用 Etherscan Bscscan 區塊鏈瀏覽器
驗證智能合約是指對智能合約代碼進行驗證以確保其正確性和安全性的過程。這可以通過使用工具來檢查代碼錯誤和漏洞,並確保代碼符合業界標準和最佳實踐。在部署之前驗證智能合約是非常重要的,因為一旦部署,就不能更改代碼。
文章目錄
- 登入區塊鏈瀏覽器 取得API KEY
- 安裝 hardhat-etherscan
- 區塊鏈環境配置
- 驗證智能合約
- 驗證有參數的智能合約
- 驗證 Proxy 智能合約與邏輯合約
1.登入區塊鏈瀏覽器 取得API KEY
Bscscan
右上角登入
登入帳號密碼
選擇 API-KEYS
創建 API-KEYS
命名
創建完成
2.安裝 hardhat-etherscan
npm i @nomiclabs/hardhat-etherscan
3.區塊鏈環境配置
hardhat.config.js
Ethersacn Bscscan 都是共用的
require("@nomicfoundation/hardhat-toolbox");
require("@nomiclabs/hardhat-etherscan");
const PRIVATE_KEY = "錢包私鑰";
module.exports = {
solidity: {
version: "0.8.19",
settings: {
optimizer: {
enabled: true,
runs: 200
}
}
},
networks: {
bsc: {
url: "https://rpc.ankr.com/bsc",
accounts: [PRIVATE_KEY]
},
bscTestnet: {
url: "https://data-seed-prebsc-2-s3.binance.org:8545",
accounts: [PRIVATE_KEY]
}
},
etherscan: {
apiKey: "UMD653D3H2GUHZZRICP5VEVTJ7KFAR7MBB"
}
};
4.驗證智能合約
network可以換已配置好的區塊鏈
artifacts cache 資料夾不能刪除不然就無法驗證
npx hardhat verify 智能合約地址 --network bscTestnet
BSC Testnet Hello
5.驗證有參數的智能合約
scripts/argument.js
填建構子的參數
module.exports = [
"wade"
];
network可以換已配置好的區塊鏈
artifacts cache 資料夾不能刪除不然就無法驗證
npx hardhat verify --constructor-args .\scripts\argument.js 智能合約地址 --network bscTestnet
BSC Testnet Hello
6.驗證 Proxy 智能合約與邏輯合約
network可以換已配置好的區塊鏈
artifacts cache 資料夾不能刪除不然就無法驗證
npx hardhat verify 智能合約地址 --network bscTestnet
BSC Testnet GameV2
代理合約
BSC Testnet Proxy
區塊鏈瀏覽器會詢問合約是否為代理合約
選擇 Is this a proxy
代理合約地址
是否綁定此邏輯合約地址
驗證完成