有时需用外网,注意一下
0.安装并创建项目
npm init
npm install --save-dev hardhat 安装 hardhat
npm install --save-dev @nomicfoundation/hardhat-toolbox 安装hardhat 工具
npx hardhat 创建hardhat项目
npm install @openzeppelin/contracts 安装开源库,用来白嫖代码
1. 部署命令
npx hardhat run --network <network> ./scripts/xxx.ts"
2. 验证
前提:
1.安装hardhat-etherscan通过 npm install
2.暗转dotenv用来读取env文件的配置项
可以使用 require("dotenv").config();来获取.env中的数据
3.hardhat配置中
import { HardhatUserConfig } from "hardhat/config";
import "@nomicfoundation/hardhat-toolbox";
const config: HardhatUserConfig = {
solidity: "0.8.17",
networks: {
goerli: {
url: "https://eth-goerli.g.alchemy.com/v2/<key>",
accounts: ["<用来部署的钱包的私钥,或助记词>"],
},
mainnet: {
url: "https://eth-mainnet.g.alchemy.com/v2/<key>",
accounts: ["<用来部署的钱包的私钥,或助记词>"],
}
},
etherscan: {
apiKey: {
mainnet:"",//跟上面的network名字对应,自动验证
goerli:"",//也是对应上面的network名字,会自动对齐
}
},
};
export default config;
验证命令:
npx hardhat verify --contract contracts/XXX.sol:<实际的contract名字> --network goerli <部署时得到的合约地址>
note:验证的时候总是出错,各种timeout报错,多等一会再验证又能通过,可能是网络原因,也可能是etherscan官网这样设置的,还可能是区块链数据有延时,等等,不知道啥情况,反正多等几分钟,然后多试几次,总会成功
3.总结:
//编译
npx hardhat compile
//部署
npx hardhat run --network polygonMumbai .\script\deployMyToken.js
//验证
npx hardhat verify --contract contracts/MyToken.sol:MyToken --network polygonMumbai <addrss>
//拉平
npx hardhat flatten contracts/MyToken.sol