Я использую web3.py для взаимодействия с частной цепочкой блоков Ethereum. Я хотел бы вызвать следующую функцию в умном контракте:
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
возвращает хэш транзакции (как описано в документах ). Но по цепочке я вижу, что вызов на самом деле не вступил в силу.
Чего-то очевидного не хватает в приведенном выше коде? Кроме того, как я могу получить возврат sendRawTransaction
, чтобы помочь мне отладить?