Open viral-p opened 3 months ago
Have you tried console.log(logFragment.sender)
? Keep in mind that the console.log
cannot access dynamic values of a Proxy, but they are there. Its just a limitation of console.log and how Proxy objects work.
Oh sorry. Just noticed this is for v5. That did not use proxy, so they should be present. I will test this once I’m at a computer.
looking at decodedLog.args expected output
{
aggregatorId: '0xa8dc30b66c6d4a8aac3d15925bfca09e42cac4a00c50f9949154b045088e2ac2',
sender: '0xDF39cc227E0aB58f89d2B042A7B837a067945F3d'
}
what I get
[
{
_isIndexed: true,
hash: '0xa8dc30b66c6d4a8aac3d15925bfca09e42cac4a00c50f9949154b045088e2ac2',
constructor: [Function: Indexed] { isIndexed: [Function (anonymous)] }
},
'0xDF39cc227E0aB58f89d2B042A7B837a067945F3d'
]
@ricmoo any updates on this issue? Found another example, Here is a minimal example
const abi = [
{
anonymous: false,
inputs: [
{ indexed: true, internalType: 'string', name: 'hnId', type: 'string' },
{
indexed: true,
internalType: 'address',
name: 'wallet',
type: 'address',
},
],
name: 'Mint',
type: 'event',
},
];
const topics = [
'0x79b04a02d84fec4f53dec01c843dee92deee8a6d7dc31a65ae8c2c6b60200cf3',
'0xfe9d5cae98771f5bbfd6b1674d82b20eb8b7fae8f2d30b5bfadeac20a861c545',
'0x0000000000000000000000005c3d815a01e299a8475a9dcade5f75d96bdd07f5',
];
const data = '0x';
const iface = new ethers.utils.Interface(abi);
const parsed = iface.parseLog({ topics, data });
console.log('parsed', parsed);
The named parameters are present in the result of this.decodeEventLog(fragment, log.data, log.topics)
but when the LogDescription object is created, the named parameters disappear. I think its somewhere in deep copy but cant localize
Interesting thing is that if i use the decodeEventLog function, the parameters are present
Using decodeEventLog
[
Indexed {
_isIndexed: true,
hash: '0xfe9d5cae98771f5bbfd6b1674d82b20eb8b7fae8f2d30b5bfadeac20a861c545'
},
'0x5c3d815a01E299A8475A9dcAde5f75d96BDd07F5',
hnId: Indexed {
_isIndexed: true,
hash: '0xfe9d5cae98771f5bbfd6b1674d82b20eb8b7fae8f2d30b5bfadeac20a861c545'
},
wallet: '0x5c3d815a01E299A8475A9dcAde5f75d96BDd07F5'
]
}
Using parseLog
LogDescription {
eventFragment: {
name: 'Mint',
anonymous: false,
inputs: [ [ParamType], [ParamType] ],
type: 'event',
_isFragment: true,
constructor: [Function: EventFragment] {
from: [Function (anonymous)],
fromObject: [Function (anonymous)],
fromString: [Function (anonymous)],
isEventFragment: [Function (anonymous)]
},
format: [Function (anonymous)]
},
name: 'Mint',
signature: 'Mint(string,address)',
topic: '0x79b04a02d84fec4f53dec01c843dee92deee8a6d7dc31a65ae8c2c6b60200cf3',
args: [
{
_isIndexed: true,
hash: '0xfe9d5cae98771f5bbfd6b1674d82b20eb8b7fae8f2d30b5bfadeac20a861c545',
constructor: [Function]
},
'0x5c3d815a01E299A8475A9dcAde5f75d96BDd07F5'
]
}
Ethers Version
5.7.2
Search Terms
No response
Describe the Problem
with the provided ABI, parseLog output should include an args field that is an object containing the event args with named fields. Instead the output is an array, without names mapped to fields.
Code Snippet
Contract ABI
Errors
No response
Environment
No response
Environment (Other)
No response