gpt4 book ai didi

django - 使用 web3.py 交易永远不会被挖掘

转载 作者:行者123 更新时间:2023-12-05 06:30:24 26 4
gpt4 key购买 nike

我正在使用 python 3.6、Django 2.1.1、Solidity 和 web3.py v4 开发一个网站。我想将交易添加到 ropsten 测试网,但交易从未得到确认。这是代码:

amount_in_wei = w3.toWei(questionEtherValue,'ether')
nonce=w3.eth.getTransactionCount(w3.toChecksumAddress(questionairAddress))+1

txn_dict = {
'to': contractAddress,
'value': amount_in_wei,
'gas': 2000000,
'gasPrice': w3.toWei('70', 'gwei'),
'nonce': nonce,
'chainId': 3
}
signed_txn = account.signTransaction(txn_dict)
txn_hash = w3.eth.sendRawTransaction(signed_txn.rawTransaction)

try:
txn_receipt = w3.eth.waitForTransactionReceipt(txn_hash, timeout=300)
except Exception:
return {'status': 'failed', 'error': 'timeout'}
else:
return {'status': 'success', 'receipt': txn_receipt}

最佳答案

啊,正如@yasaman.h 所发现的,nonce 中存在一个差一错误:

# original:
nonce = w3.eth.getTransactionCount(w3.toChecksumAddress(questionairAddress)) + 1

# should be:
nonce = w3.eth.getTransactionCount(w3.toChecksumAddress(questionairAddress))

交易的 nonce 必须等于先前发送的交易的计数。因此,新帐户发送的第一笔交易的 nonce 将为零。

关于django - 使用 web3.py 交易永远不会被挖掘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52375369/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com