我在 Hardhat 测试脚本中遇到 TypeError,该脚本涉及 @nomicfoundation/hardhat-chai-matchers 库中的 isAddress 函数。该错误似乎导致我的测试套件出现问题。下面是相关的代码片段: 这是我的代码。
const { expect, assert } = require("chai");
const { ethers } = require("hardhat");
const {
addressFactory,
addressRouter,
addressFrom,
addressTo,
} = require("../utils/AddressList");
const { erc20ABI, factoryABI, routerABI } = require("../utils/AbiList");
describe("read and write blockchain", () => {
let provider,
contractFactory,
contractRouter,
contractToken,
decimals,
amountIn,
amountOut;
before(async () => {
provider = new ethers.providers.JsonRpcProvider(
""
);
contractFactory = new ethers.Contract(addressFactory, factoryABI, provider);
contractRouter = new ethers.Contract(addressRouter, routerABI, provider);
contractToken = new ethers.Contract(addressFrom, erc20ABI, provider);
});
it("connects to the provider, factory, token, and router", () => {
assert(provider._isProvider);
expect(contractFactory.address).to.equal(
"0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f"
);
expect(contractRouter.address).to.equal(
"0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D"
);
expect(contractToken.address).to.equal(
"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"
);
});
});
我正在尝试在 Hardhat 测试中执行 [读写区块链],但由于以下错误,测试失败: 我尝试将 ethers 版本降级到 5.6.1 但没有修复。
这是我得到的。
read and write blockchain
1) connects to the provider, factory, token, and router
0 passing (73ms)
1 failing
1) read and write blockchain
connects to the provider, factory, token, and router:
TypeError: (0 , ethers_1.isAddress) is not a function
at tryGetAddressSync (node_modules/@nomicfoundation/hardhat-chai-matchers/src/internal/addressable.ts:29:16)
at Proxy.<anonymous> (node_modules/@nomicfoundation/hardhat-chai-matchers/src/internal/addressable.ts:53:20)
at Proxy.overwritingMethodWrapper (node_modules/chai/lib/chai/utils/overwriteMethod.js:78:33)
at Proxy.<anonymous> (node_modules/@nomicfoundation/hardhat-chai-matchers/src/internal/bigNumber.ts:193:14)
at Proxy.overwritingMethodWrapper (node_modules/chai/lib/chai/utils/overwriteMethod.js:78:33)
at doAsserterAsyncAndAddThen (node_modules/chai-as-promised/lib/chai-as-promised.js:289:22)
at Proxy.<anonymous> (node_modules/chai-as-promised/lib/chai-as-promised.js:255:20)
at Proxy.overwritingMethodWrapper (node_modules/chai/lib/chai/utils/overwriteMethod.js:78:33)
at Context.<anonymous> (test/SendSwapTx.js:34:40)
我也遇到同样的问题,请问你找到解决办法了吗?