Contract-Deployment
使用安全帽部署 hello world 智能合約時出錯 - 無法檢測到網路
我正在按照這個官方的乙太坊教程來創建一個你好世界。
在本教程中我們需要使用 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