部署deploy.js时提示‘Network goerli不存在’错误求助
解决Hardhat部署提示“Network goerli doesn’t exist”的问题
以下是关键错误的修正方案:
1. 修正Hardhat配置的网络字段名
你把Hardhat配置里的核心字段networks写成了单数network,这是导致网络无法被识别的根本原因,必须改成复数形式:
require("@nomicfoundation/hardhat-waffle") require("@nomicfoundation/hardhat-toolbox") require("dotenv").config() require("hardhat-deploy") // 从环境变量读取配置,确保与.env文件变量名一致 const GOERLI_RPC_URL = process.env.GOERLI_RPC_URL; const GOERLI_PRIVATE_KEY = process.env.GOERLI_PRIVATE_KEY; const ETHERSCAN_API_KEY = process.env.ETHERSCAN_API_KEY; module.exports = { solidity: { compilers: [{ version: "0.8.8" }, { version: "0.6.6" }] }, defaultNetwork: "hardhat", namedAccounts: { deployer: { default: 0 // 默认取第一个账户作为部署者 } }, // 修正为复数networks networks: { goerli: { url: GOERLI_RPC_URL, accounts: [GOERLI_PRIVATE_KEY], chainId: 5, blockConfirmations: 6 // 修正为复数形式,匹配Hardhat标准配置项 } }, etherscan: { apiKey: ETHERSCAN_API_KEY } }
2. 修正环境变量相关问题
- 依赖名错误:
@nomicfoundation/hardhat toolbox要改成@nomicfoundation/hardhat-toolbox(添加连字符,符合包名规范) - 变量读取逻辑:必须用
process.env.xxx从.env文件读取配置,不要硬编码。你的.env文件需要正确配置:GOERLI_RPC_URL=https://eth-goerli.g.alchemy.com/v2/你的API密钥 GOERLI_PRIVATE_KEY=你的钱包私钥 ETHERSCAN_API_KEY=你的Etherscan API密钥 - 引号格式错误:代码里的中文引号
“全部替换为英文引号"
3. 其他细节修正
- 执行依赖安装命令,确保所有依赖都已正确安装:
npm install @nomicfoundation/hardhat-toolbox hardhat-deploy dotenv
完成以上修正后,重新执行部署命令(如npx hardhat deploy --network goerli)即可正常识别Goerli网络。
内容的提问来源于stack exchange,提问作者Omphile James
相关产品推荐
相关产品推荐

