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

Brownie Eth切换网络后network.chain.id未更新问题求助

Brownie循环切换网络时chain.id不更新的解决方案

问题根源及修复步骤

1. 变量名错误(核心问题)

你代码里循环迭代的是name变量,但调用network.connect()时传入的是未在循环内更新的network_name,导致每次都连接同一个初始网络,所以chain.id始终不变。直接把network.connect的参数改成循环变量name即可:

for name in ["fuji-testnet", "polygon-test", "goerli"]:
    network.disconnect()
    network.connect(name, launch_rpc=False)  # 将network_name替换为name
    print(network.show_active(), network.is_connected(), network.chain.id)

2. Brownie链对象缓存问题

如果修正变量名后仍存在chain.id不更新的情况,是因为network.chain存在缓存机制,切换网络后不会自动刷新。可以改用web3.eth.chain_id获取实时链ID,这个值会随网络切换同步更新:

from brownie import network, web3

for name in ["fuji-testnet", "polygon-test", "goerli"]:
    network.disconnect()
    network.connect(name, launch_rpc=False)
    print(network.show_active(), network.is_connected(), web3.eth.chain_id)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 06:54:22