1- import { categorizedDefaultEvent , displayAsset , getNetTransfers } from './std.js'
1+ import { assetsReceived , categorizedDefaultEvent , displayAsset , getNetTransfers } from './std.js'
22import type { InterpretedTransaction } from '@/types.js'
33import type { DecodedTransaction } from '@3loop/transaction-decoder'
44
55export function transformEvent ( event : DecodedTransaction ) : InterpretedTransaction {
66 const newEvent = categorizedDefaultEvent ( event )
7+ const swapEvent = event . interactions . find ( ( i ) => i . event ?. eventName ?. toLowerCase ( ) === 'swap' )
78
8- if ( newEvent . type !== 'unknown' ) return newEvent
9+ if ( ! swapEvent || newEvent . type !== 'unknown' ) return newEvent
10+
11+ const { recipient } = swapEvent . event ?. params as { recipient : string }
912
1013 const netSent = getNetTransfers ( {
1114 transfers : event . transfers ,
@@ -15,7 +18,7 @@ export function transformEvent(event: DecodedTransaction): InterpretedTransactio
1518
1619 const netReceived = getNetTransfers ( {
1720 transfers : event . transfers ,
18- toAddresses : [ event . fromAddress ] ,
21+ toAddresses : [ recipient ] ,
1922 type : [ 'ERC20' , 'native' ] ,
2023 } )
2124
@@ -24,6 +27,7 @@ export function transformEvent(event: DecodedTransaction): InterpretedTransactio
2427 ...newEvent ,
2528 type : 'swap' ,
2629 action : 'Swapped ' + displayAsset ( netSent [ 0 ] ) + ' for ' + displayAsset ( netReceived [ 0 ] ) ,
30+ assetsReceived : assetsReceived ( event . transfers , recipient ) ,
2731 }
2832 }
2933
0 commit comments