在尝试测试FundMe合同时,我得到了以下错误。
以下是我的看法:
学习Blockchain,Solidity和Stack Web3 Development JavaScript -32小时课程,由Patrick在FreeCodeCamp YT频道上
我是在11:18在上面的课程中犯了这个错误。我几乎什么都试过了,但什么也帮不了我,我找到了问题所在。
对我来说,我不知道如何修复它,因为这个错误几乎和我在部署时遇到的问题相同,我只是在hardhat.config.js文件中添加了一些代码。但在测试中,我遇到了同样的问题,但不起作用。
namedAccounts: {
deployer: {
default: 0, // here this will by default take the first account as deployer
},
},为了我的FundMe.test.js
const { assert, expect } = require("chai")
const { deployments, network, ethers } = require("hardhat")
describe("FundMe", function () {
let fundMe
let mockV3Aggregator
let deployer
beforeEach(async () => {
// const accounts = await ethers.getSigners()
// deployer = accounts[0]
deployer = (await getNamedAccounts()).deployer
await deployments.fixture(["all"])
fundMe = await ethers.getContract("FundMe", deployer)
mockV3Aggregator = await ethers.getContract(
"MockV3Aggregator",
deployer
)
})
describe("constructor", function () {
it("sets the aggregator addresses correctly", async () => {
const response = await fundMe.getPriceFeed()
assert.equal(response, mockV3Aggregator.address)
})
})
}) FundMe
constructor
1) "before each" hook for "sets the aggregator addresses correctly"
0 passing (1s)
1 failing
1) FundMe
"before each" hook for "sets the aggregator addresses correctly":
ERROR processing /Users/namnguyen/Workspace/blockchain/smart-contract-programming/hardhat-fund-me/deploy/01-deploy-fund-me.js:
TypeError: Cannot read property 'length' of undefined
at getFrom (/Users/namnguyen/Workspace/blockchain/smart-contract-programming/hardhat-fund-me/node_modules/hardhat-deploy/src/helpers.ts:1713:14)
at fetchIfDifferent (/Users/namnguyen/Workspace/blockchain/smart-contract-programming/hardhat-fund-me/node_modules/hardhat-deploy/src/helpers.ts:939:38)
at processTicksAndRejections (internal/process/task_queues.js:95:5)
at runNextTicks (internal/process/task_queues.js:64:3)
at listOnTimeout (internal/timers.js:526:9)
at processTimers (internal/timers.js:500:7)
at _deployOne (/Users/namnguyen/Workspace/blockchain/smart-contract-programming/hardhat-fund-me/node_modules/hardhat-deploy/src/helpers.ts:1002:24)
at Object.module.exports [as func] (/Users/namnguyen/Workspace/blockchain/smart-contract-programming/hardhat-fund-me/deploy/01-deploy-fund-me.js:13:34)
at DeploymentsManager.executeDeployScripts (/Users/namnguyen/Workspace/blockchain/smart-contract-programming/hardhat-fund-me/node_modules/hardhat-deploy/src/DeploymentsManager.ts:1219:22)
at DeploymentsManager.runDeploy (/Users/namnguyen/Workspace/blockchain/smart-contract-programming/hardhat-fund-me/node_modules/hardhat-deploy/src/DeploymentsManager.ts:1052:5)
Error: ERROR processing /Users/namnguyen/Workspace/blockchain/smart-contract-programming/hardhat-fund-me/deploy/01-deploy-fund-me.js:
TypeError: Cannot read property 'length' of undefined
at getFrom (node_modules/hardhat-deploy/src/helpers.ts:1713:14)
at fetchIfDifferent (node_modules/hardhat-deploy/src/helpers.ts:939:38)
at processTicksAndRejections (internal/process/task_queues.js:95:5)
at runNextTicks (internal/process/task_queues.js:64:3)
at listOnTimeout (internal/timers.js:526:9)
at processTimers (internal/timers.js:500:7)
at _deployOne (node_modules/hardhat-deploy/src/helpers.ts:1002:24)
at Object.module.exports [as func] (deploy/01-deploy-fund-me.js:13:34)
at DeploymentsManager.executeDeployScripts (node_modules/hardhat-deploy/src/DeploymentsManager.ts:1219:22)
at DeploymentsManager.runDeploy (node_modules/hardhat-deploy/src/DeploymentsManager.ts:1052:5)
at DeploymentsManager.executeDeployScripts (node_modules/hardhat-deploy/src/DeploymentsManager.ts:1222:19)
at processTicksAndRejections (internal/process/task_queues.js:95:5)
at runNextTicks (internal/process/task_queues.js:64:3)
at listOnTimeout (internal/timers.js:526:9)
at processTimers (internal/timers.js:500:7)
at DeploymentsManager.runDeploy (node_modules/hardhat-deploy/src/DeploymentsManager.ts:1052:5)
at Object.fixture (node_modules/hardhat-deploy/src/DeploymentsManager.ts:315:9)
at Context.<anonymous> (test/unit/FundMe.test.js:12:9)谢谢你的帮忙!
发布于 2022-08-25 10:08:26
通常,这是因为文件namedAccount中缺少hardhat.config.js的配置。配置告诉插件hardhat-deploy它应该使用哪个帐户来部署合同。
检查hardhat.config.js,并将下面的代码片段添加到文件中:
namedAccounts: {
deployer: {
default: 0,
1: 0,
},https://ethereum.stackexchange.com/questions/130676
复制相似问题