You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

HardHat测试Solidity合约 调用mintPublic报余额不足错误

报错根因

Seller: Costs 2500000000 GWei这个回滚原因和测试地址的链上余额多少没有关系,本质是你调用mintPublic的时候,没有随交易附带对应价值的ETH作为铸造费。
你在控制台打印的是地址的总余额,这个余额不会在你调用合约方法的时候自动转给合约,合约校验的是本次交易携带的msg.value数值,你当前的调用没传value参数,msg.value就是0,自然会被判定为未支付铸造费直接回滚。

修复方法
  • 调用mint方法时显式传入交易附带的ETH数额,用ethers的单位转换工具避免算错单位:2500000000 GWei等价于2.5 ETH
    const mintCost = ethers.utils.parseEther("2.5");
    await testBirdsContractDeployed.mintPublic(owner.address, { value: mintCost });
    
  • 修正测试代码里写漏的断言,你当前对tokenURI的断言缺失.to.equal调用,就算mint流程跑通也会报测试错误:
    // 原错误写法
    // expect(await testBirdsContractDeployed.tokenURI(0), "https://test.url/0")
    // 修正后写法
    expect(await testBirdsContractDeployed.tokenURI(0)).to.equal("https://test.url/0")
    

内容的提问来源于stack exchange,提问作者Matias Villanueva

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 05:36:13