web3.py配合Ganache调用buildTransaction报eth_maxPriorityFeePerGas不支持如何解决
错误原因
该报错的根因为:使用的旧版本Ganache本地节点不支持EIP-1559标准的eth_maxPriorityFeePerGasRPC方法,而web3.py v5及以上版本默认构建EIP-1559类型交易时,会自动调用该接口获取优先费,因此触发报错。
修复方案
方案1:手动指定gasPrice,强制使用传统类型交易
直接在buildTransaction的参数中添加gasPrice字段即可,示例代码如下:transaction = SimpleStorage.constructor().buildTransaction( { "chainId": chain_id, "from": my_address, "nonce": nonce, "gasPrice": w3.eth.gas_price # 也可以直接写w3.toWei('1', 'gwei')指定固定值 } )只要手动指定了
gasPrice,web3.py就不会再自动调用eth_maxPriorityFeePerGas方法,直接走传统交易流程,兼容旧版本Ganache。方案2:升级Ganache到v7及以上版本
Ganache从v7版本开始完整支持EIP-1559标准的所有RPC接口,升级后不需要修改原有代码即可正常运行。
内容的提问来源于stack exchange,提问作者Patrick Collins
相关产品推荐
相关产品推荐

