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

Polygon Mumbai测试网部署NativzKeyMinter合约后无法铸造,提示价格错误问题求助

排查Polygon Mumbai上NativzKeyMinter合约mint失败(价格错误)的解决方案

从你给出的报错信息execution reverted: The price is incorrect可以直接定位问题核心:你的铸币请求中附带的金额和合约预期的铸币价格不匹配。下面是一步步的排查和解决思路:

  • 第一步:确认合约设定的铸币价格
    首先要搞清楚合约当前要求的铸币价格是多少。你可以通过以下方式查询:

    1. 打开Polygon Mumbai区块浏览器,找到你的NativzKeyMinter合约地址;
    2. 切换到「Read Contract」标签,查找类似price()、mintPrice这类公开的价格变量,调用它获取数值;
    3. 注意这个数值的单位是wei(Polygon上的最小单位,1 MATIC = 10^18 wei),别和MATIC单位搞混。
  • 第二步:检查mint调用时的金额传递
    不管你是通过前端DApp还是直接用钱包/Remix调用mint函数,都要确认:

    • 如果是调用带payable的mint函数,必须在调用时附带对应金额(也就是合约要求的价格);
    • 检查金额的单位转换:比如合约要求1 MATIC,那你需要传入1000000000000000000 wei,而不是1;
    • 如果是前端调用,检查代码中是否有把MATIC转成wei的逻辑(比如用ethers.utils.parseEther(price)),有没有写错价格数值。
  • 第三步:排查价格的动态逻辑(如果有)
    有些NFT合约会分阶段发售(比如预售、公售),或者给白名单用户设置优惠价格:

    • 确认当前合约的发售阶段是否已经正确启动,且你处于对应的阶段;
    • 如果你是白名单用户,检查你的地址是否被正确添加到白名单,白名单对应的价格是否和你传递的金额一致;
    • 查看合约代码中是否有价格随时间/数量变化的逻辑(比如阶梯价格),确认当前的价格要求。
  • 第四步:验证价格设置的权限与正确性
    你提到已经授予了对应角色,要确认:

    • 负责设置价格的角色(比如PRICE_SETTER)是否正确授予,且价格已经被正确设置为你预期的数值;
    • 启动发售后,价格有没有被意外修改(比如误操作调用了setPrice这类函数)。
  • 第五步:模拟调用测试
    你可以在Remix或者PolygonScan的「Write Contract」标签中,手动调用mint函数并传入正确的金额(在Value字段填写对应wei数值),看是否能成功:

    • 如果模拟成功,说明问题出在你的前端调用逻辑或者钱包的金额设置上;
    • 如果模拟也失败,那需要重新检查合约的价格校验代码,比如是否在mint函数中有额外的价格判断逻辑(比如是否只允许特定地址按特定价格铸造)。

内容的提问来源于stack exchange,提问作者shan.B

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 19:32:30