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

在mainnet-fork环境用MintableForkToken遇BrownieEnvironmentError求解决

解决MintableForkToken抛出的BrownieEnvironmentError错误

问题根源

你遇到的这个错误是因为brownie-token-tester v0.3.2和Brownie v1.19.0存在兼容性问题。旧版本的MintableForkToken初始化逻辑依赖的Brownie内部接口在v1.19.0里做了调整,导致在本地fork环境下无法正确读取合约部署信息,直接触发了Brownie的环境限制错误。

可行解决方案

1. 优先升级brownie-token-tester

这是最直接的修复方式,新版本已经适配了高版本Brownie:

pip install --upgrade brownie-token-tester

升级完成后,直接重新运行你的脚本,MintableForkToken(dai_addr)应该能正常初始化。

2. 手动传入ABI初始化(升级无效时用)

如果升级后还是报错,可以绕过默认的ABI自动获取逻辑,手动从链上拉取ABI后传入:

from brownie_tokens import MintableForkToken
from brownie import web3

dai_addr = "0x6B175474E89094C44Da98b954EedeAC495271d0F"
# 从主网获取Dai的合约ABI
dai_abi = web3.eth.get_abi(dai_addr)
# 手动初始化MintableForkToken
dai = MintableForkToken(dai_addr, abi=dai_abi)

3. 检查网络配置有效性

确认你的mainnet-fork-dev网络配置没问题,比如在brownie-config.yaml里的fork RPC URL是否有效:

networks:
  mainnet-fork-dev:
    cmd_settings:
      fork: https://eth-mainnet.alchemyapi.io/v2/你的API_KEY
      accounts: 10
      mnemonic: brownie
      port: 8545
      hardfork: istanbul

如果RPC URL失效,也可能间接导致合约信息获取失败。

验证方法

  1. 升级包后,重启conda环境确保依赖生效
  2. 重新执行脚本:
brownie run scripts/stake.py --network mainnet-fork-dev
  1. 测试调用dai.mint(你的地址, 10**18)这类方法,确认代币能正常铸造。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 11:24:10