Skip to content

Commit 1008355

Browse files
committed
Add context to generic Swap interpreter
1 parent 4889209 commit 1008355

File tree

20 files changed

+103
-244
lines changed

20 files changed

+103
-244
lines changed

.changeset/sour-bikes-occur.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@3loop/transaction-interpreter': patch
3+
---
4+
5+
Add context field to the intepreted swap transacitons

packages/transaction-interpreter/interpreters/1inch.ts

Lines changed: 2 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,9 @@
1-
import { displayAsset, getNetTransfers, isSwap, defaultEvent } from './std.js'
21
import type { InterpretedTransaction } from '@/types.js'
32
import type { DecodedTransaction } from '@3loop/transaction-decoder'
3+
import { genericSwapInterpreter } from './std.js'
44

55
export function transformEvent(event: DecodedTransaction): InterpretedTransaction {
6-
const newEvent = defaultEvent(event)
7-
8-
const netSent = getNetTransfers({
9-
transfers: event.transfers,
10-
fromAddresses: [event.fromAddress],
11-
})
12-
13-
const netReceived = getNetTransfers({
14-
transfers: event.transfers,
15-
toAddresses: [event.fromAddress],
16-
})
17-
18-
if (isSwap(event)) {
19-
return {
20-
...newEvent,
21-
type: 'swap',
22-
action: 'Swapped ' + displayAsset(netSent[0]) + ' for ' + displayAsset(netReceived[0]),
23-
}
24-
}
25-
26-
return newEvent
6+
return genericSwapInterpreter(event)
277
}
288

299
export const contracts = [

packages/transaction-interpreter/interpreters/aa.ts

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,10 @@
1-
import {
2-
assetsReceived,
3-
assetsSent,
4-
categorizedDefaultEvent,
5-
displayAddress,
6-
displayAsset,
7-
toAssetTransfer,
8-
} from './std.js'
1+
import { assetsReceived, assetsSent, genericInterpreter, displayAddress, displayAsset, toAssetTransfer } from './std.js'
92
import type { InterpretedTransaction } from '@/types.js'
103
import type { DecodedTransaction } from '@3loop/transaction-decoder'
114

125
export function transformEvent(event: DecodedTransaction): InterpretedTransaction {
13-
const newEvent = categorizedDefaultEvent(event)
6+
const newEvent = genericInterpreter(event)
7+
148
const userOpEvents = event.interactions.filter((e) => e.event.eventName === 'UserOperationEvent')
159

1610
if (newEvent.type !== 'unknown') {
Lines changed: 2 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,9 @@
1-
import { displayAsset, getNetTransfers, isSwap, defaultEvent } from './std.js'
1+
import { genericSwapInterpreter } from './std.js'
22
import type { InterpretedTransaction } from '@/types.js'
33
import type { DecodedTransaction } from '@3loop/transaction-decoder'
44

55
export function transformEvent(event: DecodedTransaction): InterpretedTransaction {
6-
const newEvent = defaultEvent(event)
7-
8-
const netSent = getNetTransfers({
9-
transfers: event.transfers,
10-
fromAddresses: [event.fromAddress],
11-
})
12-
13-
const netReceived = getNetTransfers({
14-
transfers: event.transfers,
15-
toAddresses: [event.fromAddress],
16-
})
17-
18-
if (isSwap(event)) {
19-
return {
20-
...newEvent,
21-
type: 'swap',
22-
action: 'Swapped ' + displayAsset(netSent[0]) + ' for ' + displayAsset(netReceived[0]),
23-
}
24-
}
25-
26-
return newEvent
6+
return genericSwapInterpreter(event)
277
}
288

299
export const contracts = ['8453:0x6cb442acf35158d5eda88fe602221b67b400be3e']

packages/transaction-interpreter/interpreters/banana-gun.ts

Lines changed: 2 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,9 @@
1-
import { displayAsset, getNetTransfers, isSwap, defaultEvent } from './std.js'
1+
import { genericSwapInterpreter } from './std.js'
22
import type { InterpretedTransaction } from '@/types.js'
33
import type { DecodedTransaction } from '@3loop/transaction-decoder'
44

55
export function transformEvent(event: DecodedTransaction): InterpretedTransaction {
6-
const newEvent = defaultEvent(event)
7-
8-
const netSent = getNetTransfers({
9-
transfers: event.transfers,
10-
fromAddresses: [event.fromAddress],
11-
})
12-
13-
const netReceived = getNetTransfers({
14-
transfers: event.transfers,
15-
toAddresses: [event.fromAddress],
16-
})
17-
18-
if (isSwap(event)) {
19-
return {
20-
...newEvent,
21-
type: 'swap',
22-
action: 'Swapped ' + displayAsset(netSent[0]) + ' for ' + displayAsset(netReceived[0]),
23-
}
24-
}
25-
26-
return newEvent
6+
return genericSwapInterpreter(event)
277
}
288

299
export const contracts = [

packages/transaction-interpreter/interpreters/erc1155.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
import { assetsReceived, assetsSent, categorizedDefaultEvent } from './std.js'
1+
import { assetsReceived, assetsSent, genericInterpreter } from './std.js'
22
import type { InterpretedTransaction } from '@/types.js'
33
import type { DecodedTransaction } from '@3loop/transaction-decoder'
44

55
export function transformEvent(event: DecodedTransaction): InterpretedTransaction {
66
const methodName = event.methodCall.name
7-
const newEvent = categorizedDefaultEvent(event)
7+
const newEvent = genericInterpreter(event)
88

99
switch (methodName) {
1010
case 'setApprovalForAll': {

packages/transaction-interpreter/interpreters/erc20.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
import { assetsReceived, assetsSent, formatNumber, categorizedDefaultEvent, displayAsset } from './std.js'
1+
import { assetsReceived, assetsSent, formatNumber, genericInterpreter, displayAsset } from './std.js'
22
import type { InterpretedTransaction } from '@/types.js'
33
import type { DecodedTransaction } from '@3loop/transaction-decoder'
44

55
export function transformEvent(event: DecodedTransaction): InterpretedTransaction {
66
const methodName = event.methodCall.name
7-
const newEvent = categorizedDefaultEvent(event)
7+
const newEvent = genericInterpreter(event)
88

99
switch (methodName) {
1010
case 'approve': {

packages/transaction-interpreter/interpreters/erc721.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
import { assetsReceived, assetsSent, categorizedDefaultEvent } from './std.js'
1+
import { assetsReceived, assetsSent, genericInterpreter } from './std.js'
22
import type { InterpretedTransaction } from '@/types.js'
33
import type { DecodedTransaction } from '@3loop/transaction-decoder'
44

55
export function transformEvent(event: DecodedTransaction): InterpretedTransaction {
66
const methodName = event.methodCall.name
7-
const newEvent = categorizedDefaultEvent(event)
7+
const newEvent = genericInterpreter(event)
88

99
switch (methodName) {
1010
case 'approve': {
Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
import type { InterpretedTransaction } from '@/types.js'
22
import type { DecodedTransaction } from '@3loop/transaction-decoder'
3-
import { categorizedDefaultEvent } from './std.js'
3+
import { genericInterpreter } from './std.js'
44

55
export function transformEvent(event: DecodedTransaction): InterpretedTransaction {
6-
const newEvent = categorizedDefaultEvent(event)
7-
8-
return newEvent
6+
return genericInterpreter(event)
97
}

packages/transaction-interpreter/interpreters/gnosis-safe.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import type { InterpretedTransaction } from '@/types.js'
22
import type { DecodedTransaction } from '@3loop/transaction-decoder'
3-
import { assetsSent, assetsReceived, categorizedDefaultEvent } from './std.js'
3+
import { assetsSent, assetsReceived, genericInterpreter } from './std.js'
44

55
export function transformEvent(event: DecodedTransaction): InterpretedTransaction {
6-
const newEvent = categorizedDefaultEvent(event)
6+
const newEvent = genericInterpreter(event)
77
const methodName = event.methodCall?.name
88
const safeMultisigEvent = event.interactions.find((i) => i.event.eventName === 'SafeMultiSigTransaction')
99
const successEvents = event.interactions.filter((i) => i.event.eventName === 'ExecutionSuccess')

0 commit comments

Comments
 (0)