getTransactionReceipt() return None
getTransactionReceipt() return None
w3.eth.getTransactionReceipt(tx_hash)
函数 returns None
.
我的代码:
provider = HTTPProvider('http://0.0.0.0:9945')
w3 = Web3(provider)
contract = w3.eth.contract(contract_interface['abi'], bytecode=contract_interface['bin'])
tx_hash = contract.deploy(transaction={'from': w3.eth.coinbase, 'gas': 250000})
print (tx_hash)
time.sleep(1)
tx_receipt = w3.eth.getTransactionReceipt(tx_hash)
print (tx_receipt)
contract_address = tx_receipt['contractAddress']
tx_hash
是正常值但是tx_receipt
是None
.
所以我的错误:
contract_address = tx_receipt['contractAddress']
TypeError: 'NoneType' object is not subscriptable
我该如何解决这个问题?
我猜是因为您使用了变量名 w3
,所以您使用的是 web3.py. The getTransactionReceipt docs 说:
If the transaction has not yet been mined, returns None
因此 sleep(1)
不足以等待下一个区块被开采。
问题的解决取决于您连接的客户端类型及其设置。例如,如果它是 geth
之类的,您可能需要打开 --mine
才能开始挖掘区块。一旦您可以共享您的客户端和配置,您可能会在 Ethereum StackExchange site 找到有关为特定客户端生成块的答案。
w3.eth.getTransactionReceipt(tx_hash)
函数 returns None
.
我的代码:
provider = HTTPProvider('http://0.0.0.0:9945')
w3 = Web3(provider)
contract = w3.eth.contract(contract_interface['abi'], bytecode=contract_interface['bin'])
tx_hash = contract.deploy(transaction={'from': w3.eth.coinbase, 'gas': 250000})
print (tx_hash)
time.sleep(1)
tx_receipt = w3.eth.getTransactionReceipt(tx_hash)
print (tx_receipt)
contract_address = tx_receipt['contractAddress']
tx_hash
是正常值但是tx_receipt
是None
.
所以我的错误:
contract_address = tx_receipt['contractAddress']
TypeError: 'NoneType' object is not subscriptable
我该如何解决这个问题?
我猜是因为您使用了变量名 w3
,所以您使用的是 web3.py. The getTransactionReceipt docs 说:
If the transaction has not yet been mined, returns
None
因此 sleep(1)
不足以等待下一个区块被开采。
问题的解决取决于您连接的客户端类型及其设置。例如,如果它是 geth
之类的,您可能需要打开 --mine
才能开始挖掘区块。一旦您可以共享您的客户端和配置,您可能会在 Ethereum StackExchange site 找到有关为特定客户端生成块的答案。