@@ -202,21 +202,22 @@ export function parseEvents(
202
202
const ret = providerReceivedEvents
203
203
. flat ( )
204
204
. reduce ( ( acc , recEvent : RPC . EmittedEvent | RPC . Event ) => {
205
- let abiEvent : AbiEvent | AbiEvents = abiEvents [ recEvent . keys . shift ( ) ?? 0 ] ;
205
+ const currentEvent : RPC . EmittedEvent | RPC . Event = JSON . parse ( JSON . stringify ( recEvent ) ) ;
206
+ let abiEvent : AbiEvent | AbiEvents = abiEvents [ currentEvent . keys . shift ( ) ?? 0 ] ;
206
207
if ( ! abiEvent ) {
207
208
return acc ;
208
209
}
209
210
while ( ! abiEvent . name ) {
210
- const hashName = recEvent . keys . shift ( ) ;
211
+ const hashName = currentEvent . keys . shift ( ) ;
211
212
assert ( ! ! hashName , 'Not enough data in "keys" property of this event.' ) ;
212
213
abiEvent = ( abiEvent as AbiEvents ) [ hashName ] ;
213
214
}
214
215
// Create our final event object
215
216
const parsedEvent : ParsedEvent = { } ;
216
217
parsedEvent [ abiEvent . name as string ] = { } ;
217
218
// Remove the event's name hashed from the keys array
218
- const keysIter = recEvent . keys [ Symbol . iterator ] ( ) ;
219
- const dataIter = recEvent . data [ Symbol . iterator ] ( ) ;
219
+ const keysIter = currentEvent . keys [ Symbol . iterator ] ( ) ;
220
+ const dataIter = currentEvent . data [ Symbol . iterator ] ( ) ;
220
221
221
222
const abiEventKeys =
222
223
( abiEvent as CairoEventDefinition ) . members ?. filter ( ( it ) => it . kind === 'key' ) ||
@@ -244,9 +245,10 @@ export function parseEvents(
244
245
parsedEvent [ abiEvent . name as string ]
245
246
) ;
246
247
} ) ;
247
- if ( 'block_hash' in recEvent ) parsedEvent . block_hash = recEvent . block_hash ;
248
- if ( 'block_number' in recEvent ) parsedEvent . block_number = recEvent . block_number ;
249
- if ( 'transaction_hash' in recEvent ) parsedEvent . transaction_hash = recEvent . transaction_hash ;
248
+ if ( 'block_hash' in currentEvent ) parsedEvent . block_hash = currentEvent . block_hash ;
249
+ if ( 'block_number' in currentEvent ) parsedEvent . block_number = currentEvent . block_number ;
250
+ if ( 'transaction_hash' in currentEvent )
251
+ parsedEvent . transaction_hash = currentEvent . transaction_hash ;
250
252
acc . push ( parsedEvent ) ;
251
253
return acc ;
252
254
} , [ ] as ParsedEvents ) ;
0 commit comments