chenzhijie / go-web3

Ethereum Golang API, JSON-RPC client, Smart contract transaction API.
GNU Lesser General Public License v3.0
219 stars 74 forks source link

NewWeb3WithProxy函数是否可以避免必须手动设置ChainID #16

Open Leadblock opened 2 years ago

Leadblock commented 2 years ago

func (e Eth) ChainID() (big.Int, error) 中有调用 rpc 的 eth_chainId 的方法。

但是我在通过 NewWeb3WithProxy 构建对象时,需要设置 ChainID。这个设置会导致生成的 eth 对象被设置了 chainid,逻辑上就不会调用 rpc 的 eth_chainId,而是从设置缓存读取。

很多链是可以通过 rpc 的 eth_chainId 获取 chainid 的, 我们是否可以避免在 NewWeb3WithProxy 中粗糙的通过provider判断,而是自动从链上读取。

目前我NewWeb3WithProxy构建对象后,无法通过eth获得链chainid,必须自己知道是多少,从外部设置进去。感觉步骤很多余而且多链项目容易出错。