文章
问答
讲堂
百科图谱
线下集训
更多
提问
发表文章
专栏
活动
文档
工作
集市
发现
Toggle navigation
文章
问答
讲堂
线下集训
专栏
活动
工作
文档
集市
搜索
登录/注册
用web3.py发送交易成功后,哈希也出来了,但是区块链浏览器上面查不到哈希
再次重新运行脚本就报错ValueError: {'code': -32000, 'message': 'already known'},求大佬解答一下呢
再次重新运行脚本就报错ValueError: {'code': -32000, 'message': 'already known'},求大佬解答一下呢
0 条评论
请先
登录
后评论
默认排序
时间排序
2 个回答
Tiny熊
2024-06-22 20:51
擅长:智能合约,以太坊
区块链浏览器显示有时有延时。 不过,交易 Hash 是本地生成的,和上链没有关系。
请先
登录
后评论
用户_20014
2024-06-22 21:16
这个问题前段时间写web3.py脚本头疼死,远没有js写交易方便。 我总结一下问题原因吧,web3库版本: 6.9.0 # **1.gas费问题导致失败:** ``` # 创建交易 txn = { 'chainId': int(ChainID), 'from': account.address, 'to': ContractAddress, 'nonce': web3.eth.get_transaction_count(account.address), 'value': send_value, 'gas': gas_limit, 'maxFeePerGas': 2000000000, 'maxPriorityFeePerGas': 2000000000, } # 签名交易 signed_txn = web3.eth.account.sign_transaction(txn, WalletPrivateKey) # 发送交易 txn_hash = web3.eth.send_raw_transaction(signed_txn.rawTransaction) ``` 只有这么写gas数量和gasPrice,才不会导致失败。直接写gas和gasPrice时总是会失败; # **2.nonce问题:** 如果第一次转账出了哈希但链上查不到,再次本地执行脚本时就会报错 `ValueError: {'code': -32000, 'message': 'already known'}` 报错的原因是当前的nonce在本地提交交易时已经用过了,所以此时换个nonce就可以了,比如在当前nonce基础上加个50、100这种用来方便本地测试。代码测试没问题后对于nonce,建议链上获取 ``` 'nonce': web3.eth.get_transaction_count(account.address), ```
请先
登录
后评论
您需要登录后才可以回答问题,
登录
关注
2
关注
收藏
0
收藏,
1022
浏览
Fushicho
提出于 2024-06-21 20:30
×
发送私信
请将文档链接发给晓娜,我们会尽快安排上架,感谢您的推荐!
发给:
内容:
×
举报此文章
垃圾广告信息:
广告、推广、测试等内容
违规内容:
色情、暴力、血腥、敏感信息等内容
不友善内容:
人身攻击、挑衅辱骂、恶意行为
其他原因:
请补充说明
举报原因: