Contract-Deployment

使用安全帽部署 hello world 智能合約時出錯 - 無法檢測到網路

  • October 20, 2022

我正在按照這個官方的乙太坊教程來創建一個你好世界。

在本教程中我們需要使用 alchemy,它不再支持 ropsten,alchemy 中唯一可用的測試網路是 goerli。

因此,為了繼續本教程,我將所有 ropsten 內容替換為 goerli。

但是,當我嘗試部署智能合約時,使用:

npx hardhat --network goerli run scripts/deploy.js

我收到以下錯誤:

Error: could not detect network (event="noNetwork", code=NETWORK_ERROR, version=providers/5.7.2)
   at Logger.makeError (/home/caio/Área de trabalho/hello-world-eth/node_modules/@ethersproject/logger/src.ts/index.ts:269:28)
   at Logger.throwError (/home/caio/Área de trabalho/hello-world-eth/node_modules/@ethersproject/logger/src.ts/index.ts:281:20)
   at EthersProviderWrapper.<anonymous> (/home/caio/Área de trabalho/hello-world-eth/node_modules/@ethersproject/providers/src.ts/json-rpc-provider.ts:483:23)
   at step (/home/caio/Área de trabalho/hello-world-eth/node_modules/@ethersproject/providers/lib/json-rpc-provider.js:48:23)
   at Object.throw (/home/caio/Área de trabalho/hello-world-eth/node_modules/@ethersproject/providers/lib/json-rpc-provider.js:29:53)
   at rejected (/home/caio/Área de trabalho/hello-world-eth/node_modules/@ethersproject/providers/lib/json-rpc-provider.js:21:65)
   at processTicksAndRejections (internal/process/task_queues.js:95:5) {
 reason: 'could not detect network',
 code: 'NETWORK_ERROR',
 event: 'noNetwork'
}

我的 hardhat.config.js 程式碼:

/** 
* @type import('hardhat/config').HardhatUserConfig 
*/

require('dotenv').config();
require("@nomiclabs/hardhat-ethers");

const { API_URL, PRIVATE_KEY } = process.env;

module.exports = {
 solidity: "0.8.17",
 defaultNetwork: "goerli",
 networks: {
   hardhat: {},
   goerli: {
     url: API_URL,
     accounts: [`0x${PRIVATE_KEY}`]
   }
 },
}

我只是從教程中複製了範常式式碼,並將 ropsten 替換為 goerli。

此外,此文件與此 Alchemy教程中看到的完全相同,即乙太坊教程的“更新”版本,但使用了 goerli。

更新

我發現了錯誤,.env 文件中的煉金術的 goerli url 錯誤,已經修復並且現在可以工作了!

根據安全帽文件,命令是npx hardhat run scripts/deploy.js --network <network-name>,所以它是npx hardhat run scripts/deploy.js --network goerli. 此外,請確保您在 hardhat.config.js 文件中設置了網路、chainId、url 和帳戶。

請參閱:https ://hardhat.org/tutorial/deploying-to-a-live-network

引用自:https://ethereum.stackexchange.com/questions/137871