类型错误:无法读取未定义的属性“长度” - 使用安全帽部署时

Ris*_*rma 7 javascript blockchain solidity hardhat

我在尝试在安全帽开发链上部署模拟合约时收到以下错误。

\n

我正在关注:

\n
\n

使用 JavaScript 学习区块链、Solidity 和全栈 Web3 开发 \xe2\x80\x93 由 Patrick Collins 在 FreeCodeCamp YT 频道上提供的 32 小时课程

\n
\n

我在上述课程的 10:48:53 时收到此错误。我几乎尝试了所有方法,但没有任何帮助,但我找到了问题发生的地方。

\n

问题:我认为问题出在哪里?(12:26)

\n
\n

据我所知,问题出在我们尝试部署脚本并等待返回承诺的行。

\n
\n

这是错误:

\n
Error: ERROR processing /Users/rishavsharma/Documents/working/Web Dev/Blockchain/Freecodecamp/solidity&Block/blockchain-with-js/buyMeACoffee-dapp/deploy/00-deploy-mocks.js:\nTypeError: Cannot read property \'length\' of undefined\n    at getFrom (/Users/rishavsharma/Documents/working/Web Dev/Blockchain/Freecodecamp/solidity&Block/blockchain-with-js/buyMeACoffee-dapp/node_modules/hardhat-deploy/src/helpers.ts:1713:14)\n    at _deploy (/Users/rishavsharma/Documents/working/Web Dev/Blockchain/Freecodecamp/solidity&Block/blockchain-with-js/buyMeACoffee-dapp/node_modules/hardhat-deploy/src/helpers.ts:533:9)\n    at processTicksAndRejections (internal/process/task_queues.js:95:5)\n    at _deployOne (/Users/rishavsharma/Documents/working/Web Dev/Blockchain/Freecodecamp/solidity&Block/blockchain-with-js/buyMeACoffee-dapp/node_modules/hardhat-deploy/src/helpers.ts:1004:16)\n    at Object.module.exports [as func] (/Users/rishavsharma/Documents/working/Web Dev/Blockchain/Freecodecamp/solidity&Block/blockchain-with-js/buyMeACoffee-dapp/deploy/00-deploy-mocks.js:12:26)\n    at DeploymentsManager.executeDeployScripts (/Users/rishavsharma/Documents/working/Web Dev/Blockchain/Freecodecamp/solidity&Block/blockchain-with-js/buyMeACoffee-dapp/node_modules/hardhat-deploy/src/DeploymentsManager.ts:1219:22)\n    at DeploymentsManager.runDeploy (/Users/rishavsharma/Documents/working/Web Dev/Blockchain/Freecodecamp/solidity&Block/blockchain-with-js/buyMeACoffee-dapp/node_modules/hardhat-deploy/src/DeploymentsManager.ts:1052:5)\n    at SimpleTaskDefinition.action (/Users/rishavsharma/Documents/working/Web Dev/Blockchain/Freecodecamp/solidity&Block/blockchain-with-js/buyMeACoffee-dapp/node_modules/hardhat-deploy/src/index.ts:438:5)\n    at Environment._runTaskDefinition (/Users/rishavsharma/Documents/working/Web Dev/Blockchain/Freecodecamp/solidity&Block/blockchain-with-js/buyMeACoffee-dapp/node_modules/hardhat/src/internal/core/runtime-environment.ts:219:14)\n    at Environment.run (/Users/rishavsharma/Documents/working/Web Dev/Blockchain/Freecodecamp/solidity&Block/blockchain-with-js/buyMeACoffee-dapp/node_modules/hardhat/src/internal/core/runtime-environment.ts:131:14)\n    at DeploymentsManager.executeDeployScripts (/Users/rishavsharma/Documents/working/Web Dev/Blockchain/Freecodecamp/solidity&Block/blockchain-with-js/buyMeACoffee-dapp/node_modules/hardhat-deploy/src/DeploymentsManager.ts:1222:19)\n    at processTicksAndRejections (internal/process/task_queues.js:95:5)\n    at DeploymentsManager.runDeploy (/Users/rishavsharma/Documents/working/Web Dev/Blockchain/Freecodecamp/solidity&Block/blockchain-with-js/buyMeACoffee-dapp/node_modules/hardhat-deploy/src/DeploymentsManager.ts:1052:5)\n    at SimpleTaskDefinition.action (/Users/rishavsharma/Documents/working/Web Dev/Blockchain/Freecodecamp/solidity&Block/blockchain-with-js/buyMeACoffee-dapp/node_modules/hardhat-deploy/src/index.ts:438:5)\n    at Environment._runTaskDefinition (/Users/rishavsharma/Documents/working/Web Dev/Blockchain/Freecodecamp/solidity&Block/blockchain-with-js/buyMeACoffee-dapp/node_modules/hardhat/src/internal/core/runtime-environment.ts:219:14)\n    at Environment.run (/Users/rishavsharma/Documents/working/Web Dev/Blockchain/Freecodecamp/solidity&Block/blockchain-with-js/buyMeACoffee-dapp/node_modules/hardhat/src/internal/core/runtime-environment.ts:131:14)\n    at SimpleTaskDefinition.action (/Users/rishavsharma/Documents/working/Web Dev/Blockchain/Freecodecamp/solidity&Block/blockchain-with-js/buyMeACoffee-dapp/node_modules/hardhat-deploy/src/index.ts:584:32)\n    at Environment._runTaskDefinition (/Users/rishavsharma/Documents/working/Web Dev/Blockchain/Freecodecamp/solidity&Block/blockchain-with-js/buyMeACoffee-dapp/node_modules/hardhat/src/internal/core/runtime-environment.ts:219:14)\n    at Environment.run (/Users/rishavsharma/Documents/working/Web Dev/Blockchain/Freecodecamp/solidity&Block/blockchain-with-js/buyMeACoffee-dapp/node_modules/hardhat/src/internal/core/runtime-environment.ts:131:14)\n    at SimpleTaskDefinition.action (/Users/rishavsharma/Documents/working/Web Dev/Blockchain/Freecodecamp/solidity&Block/blockchain-with-js/buyMeACoffee-dapp/node_modules/hardhat-deploy/src/index.ts:669:5)\nerror Command failed with exit code 1.\ninfo Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.\nrishavsharma@Rishavs-Air buyMeACoffee-dapp % \n\n
Run Code Online (Sandbox Code Playgroud)\n

这是我收到错误的代码片段:

\n
const { network } = require("hardhat");\nconst { developmentChains, DECIMALS, INITIAL_ANSWER } = require("../helper-hardhat-config");\n\nmodule.exports = async ({ getNamedAccounts, deployments }) => {\n    const { deploy, log } = deployments;\n    const { deployer } = await getNamedAccounts();\n    const chainId = network.config.chainId;\n\n\n    if (chainId == 31337) {\n        console.log("Development network detected! Deploying mocks...");\n        const feedMock = await deploy("MockV3Aggregator", {\n            contract: "MockV3Aggregator",\n            from: deployer,\n            log: true,\n            args: [DECIMALS, INITIAL_ANSWER],\n        });\n        log("Price Feed Mock deployed!");\n        log("==============================================");\n    }\n} \nmodule.exports.tags = ["all", "mocks"];\n\n
Run Code Online (Sandbox Code Playgroud)\n

请帮助我解决这个问题\n我在以太坊堆栈交换上发布了这个问题,但没有得到任何帮助。

\n

系统配置:MacBook Air M1 2021 - Monterey 12.4,纱线:1.22.18,安全帽:2.9.6

\n

Ris*_*rma 19

我从大师本人那里得到了答案,@PatrickAlphaC。

当我们在上面的代码中调用await getNamedAccounts时,hardhat会在hardhat.config.js中查找命名帐户的长度

我们必须确保下面给出的属性在那里!

namedAccounts: {
    deployer: {
        default: 0, // here this will by default take the first account as deployer
    },
},
Run Code Online (Sandbox Code Playgroud)

这解决了我的问题,我又很高兴!