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

Patrick Collins NFT教程运行create_collectibles脚本报execution reverted错误

Brownie运行create_collectibles脚本execution reverted错误排查方案

完整报错信息:
"Gas estimation failed: 'execution reverted'. This transaction will likely revert. If you wish to broadcast, you must set the gas limit manually."

排查步骤

  • 确认合约部署状态
    你调用的AdvancedCollectible[len(AdvancedCollectible) - 1]是取当前网络下最近部署的合约实例,首先确认你已经在对应网络成功部署过AdvancedCollectible合约,Brownie项目的deployments目录下存在对应网络的部署记录,没有的话先执行部署脚本再跑铸造脚本。
  • 调高gas limit数值
    你当前设置的50000 gas limit远低于VRF调用的实际gas消耗,可将参数调整为gas_limit: 300000再重试,代码修改如下:
    transaction = advanced_collectible.createCollectible(
        STATIC_SEED, "None", {"from": dev, "gas_limit": 300000}
    )
    
  • 检查Chainlink VRF相关配置
    1. 确认你的AdvancedCollectible合约账户下有足够的LINK代币支付VRF调用手续费,没有的话从测试网水龙头转对应数量的LINK到合约地址
    2. 确认合约部署时填写的VRF coordinator地址、key hash、手续费参数和当前网络官方公布的参数一致
    3. 如果你使用的是VRF v2版本,确认你的合约地址已经添加到VRF订阅的消费者列表中,且订阅内有足够的LINK余额
  • 确认网络和钱包配置正确
    1. 执行脚本时指定了正确的网络参数,比如跑Goerli测试网需在命令后加--network goerli
    2. 你使用的dev钱包地址在对应网络下有足够的原生代币(比如Goerli ETH)支付交易gas费
  • 查看具体回滚原因
    在交易参数中添加allow_revert: True开启回滚详情打印,修改代码如下:
    transaction = advanced_collectible.createCollectible(
        STATIC_SEED, "None", {"from": dev, "gas_limit": 300000, "allow_revert": True}
    )
    print(transaction.info())
    
    执行后可从打印的交易详情中定位到具体的合约回滚触发点,针对性解决问题。

内容的提问来源于stack exchange,提问作者Ratool Karmaker

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 17:54:05