【发布时间】:2019-10-03 11:59:46
【问题描述】:
我正在使用web3.py 与私有以太坊区块链进行交互。我想在智能合约中调用以下函数:
uint256 public cookiePrice;
function feed(string memory message) public payable {
require(cookiePrice <= msg.value);
applyFeeding(msg.sender, message);
}
我想这样称呼它:
price = contract.functions.cookiePrice().call()
txn = contract.functions.feed("my message").buildTransaction({
'chainId': 13999911119,
'gas': 70000,
'value': price,
'gasPrice': w3.toWei('8', 'gwei'),
'nonce': int(time.time())
})
signed_txn = w3.eth.account.sign_transaction(txn, private_key=private_key)
w3.eth.sendRawTransaction(signed_txn.rawTransaction)
这似乎成功了,sendRawTransaction 返回事务的哈希值(如the docs 中所述)。但是我可以在链上看到调用并没有真正生效。
上面的代码有什么明显的缺失吗?还有,我怎样才能得到sendRawTransaction的返回帮助我调试呢?
【问题讨论】: