Closed Kato-Official closed 3 months ago
@Kato-Official , I've been looking into this issue and tried reproducing it. Unfortunately, Ropsten completely stopped working so I switched to Sepolia as a Testnet.
Version: 7.0.0b Python: 3.12.3 OS: Windows 10 Pro
This is contract address in Sepolia:
0x43AD75490C5245881fA4FdE5b1Bd9d9Fa4b5B9CE
This is the link :
https://sepolia.etherscan.io/address/0x43ad75490c5245881fa4fde5b1bd9d9fa4b5b9ce#code
Event and emit in solidity are the same with yours, but I'd prefer to share the entire code below:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract MyCon {
uint public count = 0;
event ItemCreated(uint id, string name, uint timestamp, string message);
function createItem(string memory _name) public {
emit ItemCreated(count, _name, block.timestamp, "Will This Display?");
count++;
}
}
This is the python function :
def create(title_name):
w3 = Web3(Web3.HTTPProvider("https://sepolia.infura.io/v3/INFURA_PROJECT_ID"))
contract = w3.eth.contract(address=CONTRACT_ADDRESS, abi=CONTRACT_ABI)
nonce_tx = w3.eth.get_transaction_count(account_0)
tx = contract.functions.createItem(title_name).build_transaction({
'chainId': 11155111,
'gas': 200000,
'maxPriorityFeePerGas': w3.to_wei('1', 'gwei'),
'nonce': nonce_tx,
})
signed_tx = w3.eth.account.sign_transaction(tx,
private_key="PRIVATE_KEY")
tx_hash = w3.eth.send_raw_transaction(signed_tx.raw_transaction)
tx_receipt = w3.eth.wait_for_transaction_receipt(tx_hash)
event = contract.events.ItemCreated().process_receipt(tx_receipt)
print(event)
print(event[0]['args'])
create('Test')
However, as expected, I got AttributeDict({'id': 5, 'name': 'Test', 'timestamp': 1721205420, 'message': 'Will This Display?'})
which differs from the result you mentioned. I think the reason for not being able to reproduce the issue could be either the problems with Ropsten or the version of web3.py.
It seems like this can't be reproduced and an attempt at reproducing by @BZAghalarov found an expected outcome. I'm going to close this but if we believe there's still an issue here let's keep discussing and we can re-open.
Thanks for the help @BZAghalarov !
I have tried to get the events from a simple function from the smart contract. I have waited for the transaction to be fully mined and received the transaction receipt.
This is the contract address in Ropsten:
0x631E9882773B5f93cC575B57c0058Be7F46aE46c
This is the link:
https://ropsten.etherscan.io/address/0x631E9882773B5f93cC575B57c0058Be7F46aE46c#code
This is the event/emit in solidity:
This is the python function:
The event works great in the chain explorer as well as in remix, but with web3.py I get this:
AttributeDict({'': 'Will This Display?'})
What happened to the other 3 elements of the event? Since when contract.events have stopped working? Did it stopped from the Ethereum merge? Did anyone found a solution to this?