Polygon Mumbai链签名交易返回invalid sender错误如何解决
结论
该错误不是Infura API导致的,属于交易签名或参数配置不符合Polygon网络规则触发的校验错误。
可能的故障原因
- EIP-1559交易参数设置不符合要求
你当前设置的maxFeePerGas为2gwei,远低于Polygon Mumbai测试网的最低基础gas费要求(通常不低于10gwei),过低的gas费上限会导致节点交易校验失败,触发invalid sender报错。此外部分低版本web3.py对Polygon这类POA链的EIP-1559交易签名存在兼容性bug,会导致签名后的交易发送方校验不通过。 - Nonce值配置错误
默认调用w3.eth.get_transaction_count获取的是最新已确认块的nonce,如果你的账户存在未确认的pending交易,会导致本次交易使用的nonce重复,触发校验失败。 - 交易格式与链不匹配
Ropsten测试网对legacy交易和EIP-1559交易的兼容性更强,但Polygon对交易参数的校验更严格,参数异常就会直接返回sender校验错误。
修复方案
- 先改用legacy交易格式测试,将
buildTransaction中的maxFeePerGas和maxPriorityFeePerGas参数替换为gasPrice: w3.toWei('30', 'gwei'),验证交易是否能正常发送。 - 升级web3.py到最新稳定版本,修复EIP-1559交易签名的兼容性问题。
- 获取nonce时显式指定块参数:
nonce = w3.eth.get_transaction_count(acct.address, 'pending'),确保拿到的是包含pending交易的最新nonce。
内容的提问来源于stack exchange,提问作者Kyle Pearson
相关产品推荐
相关产品推荐

