部署智能合约时遇TypeError: (0 , ethers_1.getAddress) is not a function错误求助
解决部署智能合约时的TypeError: (0 , ethers_1.getAddress) is not a function错误
这个错误的核心原因是依赖版本冲突:你安装的@nomicfoundation/hardhat-toolbox@3.0.0默认依赖ethers v6版本,但项目里手动指定了ethers@5.5.0,同时混用了hardhat-deploy-ethers,导致ethers的API调用出现不兼容——getAddress函数在ethers v5中属于ethers.utils模块,而v6是直接从ethers包导出,版本不匹配就会触发找不到函数的错误。
下面提供两种可行的解决办法:
办法一:统一升级到ethers v6
- 修改
package.json的依赖配置:
"devDependencies": { "@nomicfoundation/hardhat-toolbox": "^3.0.0", "hardhat": "^2.15.0" }, "dependencies": { "@nomiclabs/hardhat-ethers": "npm:hardhat-deploy-ethers@^0.4.0", // 升级到适配v6的版本 "chai": "^4.3.7", "dotenv": "^16.2.0", "ethers": "^6.0.0" // 升级到ethers v6 }
注意:移除
@ethersproject/contracts,因为ethers v6已包含合约相关功能,无需单独安装。
- 删除项目根目录的
node_modules文件夹和package-lock.json(或yarn.lock),重新安装依赖:
npm install # 或 yarn install
- (可选)调整
deploy.js脚本:ethers v6中contract.deployed()已被替换为contract.waitForDeployment(),如果后续取消注释该代码,需要修改为:
await contract.waitForDeployment();
办法二:降级hardhat-toolbox适配ethers v5
如果不想升级ethers版本,可将hardhat-toolbox降级到适配v5的版本:
- 修改
package.json的devDependencies:
"devDependencies": { "@nomicfoundation/hardhat-toolbox": "^2.0.0", // 降级到适配ethers v5的v2版本 "hardhat": "^2.15.0" }
- 删除
node_modules和锁文件,重新安装依赖:
npm install # 或 yarn install
两种办法都能解决版本冲突问题,可根据项目需求选择。
内容的提问来源于stack exchange,提问作者Mariam Sayeed
相关产品推荐
相关产品推荐

