Skip to content

Commit 9761263

Browse files
feat: handle private conversions
1 parent 0ebcd6e commit 9761263

2 files changed

Lines changed: 32 additions & 8 deletions

File tree

subgraphs/protocol-reserve/src/mappings/tokenConverter.ts

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,30 @@ export function handlePriceOracleUpdated(event: PriceOracleUpdated): void {
108108
tokenConverter.save();
109109
}
110110

111+
export function handleConvertedExactTokens(event: ConvertedExactTokens): void {
112+
const tokenConverter = getTokenConverter(event.address)!;
113+
114+
// handle private conversions (conversions between converters)
115+
const senderConverter = getTokenConverter(event.params.sender);
116+
if (!!senderConverter && senderConverter.address !== riskFundConverterAddress) {
117+
const senderDestinationAmount = getOrCreateDestinationAmount(
118+
senderConverter.address,
119+
Address.fromBytes(senderConverter.destinationAddress),
120+
event.params.tokenAddressOut,
121+
);
122+
senderDestinationAmount.amount = senderDestinationAmount.amount.plus(event.params.amountOut);
123+
senderDestinationAmount.save();
124+
}
125+
126+
const destinationAmountEntity = getOrCreateDestinationAmount(
127+
event.address,
128+
Address.fromBytes(tokenConverter.destinationAddress),
129+
event.params.tokenAddressIn,
130+
);
131+
destinationAmountEntity.amount = destinationAmountEntity.amount.plus(event.params.amountIn);
132+
destinationAmountEntity.save();
133+
}
134+
111135
export function handleConversionEvent(event: ConvertedExactTokens): void {
112136
const tokenConverter = getTokenConverter(event.address)!;
113137
const destinationAmountEntity = getOrCreateDestinationAmount(

subgraphs/protocol-reserve/template.yaml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ dataSources:
6969
- event: PriceOracleUpdated(indexed address,indexed address)
7070
handler: handlePriceOracleUpdated
7171
- event: ConvertedExactTokens(indexed address,indexed address,address,indexed address,uint256,uint256)
72-
handler: handleConversionEvent
72+
handler: handleConvertedExactTokens
7373
- event: ConvertedForExactTokens(indexed address,indexed address,address,indexed address,uint256,uint256)
7474
handler: handleConversionEvent
7575
- event: ConvertedExactTokensSupportingFeeOnTransferTokens(indexed address,indexed address,address,indexed address,uint256,uint256)
@@ -119,7 +119,7 @@ dataSources:
119119
- event: PriceOracleUpdated(indexed address,indexed address)
120120
handler: handlePriceOracleUpdated
121121
- event: ConvertedExactTokens(indexed address,indexed address,address,indexed address,uint256,uint256)
122-
handler: handleConversionEvent
122+
handler: handleConvertedExactTokens
123123
- event: ConvertedForExactTokens(indexed address,indexed address,address,indexed address,uint256,uint256)
124124
handler: handleConversionEvent
125125
- event: ConvertedExactTokensSupportingFeeOnTransferTokens(indexed address,indexed address,address,indexed address,uint256,uint256)
@@ -167,7 +167,7 @@ dataSources:
167167
- event: PriceOracleUpdated(indexed address,indexed address)
168168
handler: handlePriceOracleUpdated
169169
- event: ConvertedExactTokens(indexed address,indexed address,address,indexed address,uint256,uint256)
170-
handler: handleConversionEvent
170+
handler: handleConvertedExactTokens
171171
- event: ConvertedForExactTokens(indexed address,indexed address,address,indexed address,uint256,uint256)
172172
handler: handleConversionEvent
173173
- event: ConvertedExactTokensSupportingFeeOnTransferTokens(indexed address,indexed address,address,indexed address,uint256,uint256)
@@ -217,7 +217,7 @@ dataSources:
217217
- event: PriceOracleUpdated(indexed address,indexed address)
218218
handler: handlePriceOracleUpdated
219219
- event: ConvertedExactTokens(indexed address,indexed address,address,indexed address,uint256,uint256)
220-
handler: handleConversionEvent
220+
handler: handleConvertedExactTokens
221221
- event: ConvertedForExactTokens(indexed address,indexed address,address,indexed address,uint256,uint256)
222222
handler: handleConversionEvent
223223
- event: ConvertedExactTokensSupportingFeeOnTransferTokens(indexed address,indexed address,address,indexed address,uint256,uint256)
@@ -267,7 +267,7 @@ dataSources:
267267
- event: PriceOracleUpdated(indexed address,indexed address)
268268
handler: handlePriceOracleUpdated
269269
- event: ConvertedExactTokens(indexed address,indexed address,address,indexed address,uint256,uint256)
270-
handler: handleConversionEvent
270+
handler: handleConvertedExactTokens
271271
- event: ConvertedForExactTokens(indexed address,indexed address,address,indexed address,uint256,uint256)
272272
handler: handleConversionEvent
273273
- event: ConvertedExactTokensSupportingFeeOnTransferTokens(indexed address,indexed address,address,indexed address,uint256,uint256)
@@ -317,7 +317,7 @@ dataSources:
317317
- event: PriceOracleUpdated(indexed address,indexed address)
318318
handler: handlePriceOracleUpdated
319319
- event: ConvertedExactTokens(indexed address,indexed address,address,indexed address,uint256,uint256)
320-
handler: handleConversionEvent
320+
handler: handleConvertedExactTokens
321321
- event: ConvertedForExactTokens(indexed address,indexed address,address,indexed address,uint256,uint256)
322322
handler: handleConversionEvent
323323
- event: ConvertedExactTokensSupportingFeeOnTransferTokens(indexed address,indexed address,address,indexed address,uint256,uint256)
@@ -367,9 +367,9 @@ dataSources:
367367
- event: PriceOracleUpdated(indexed address,indexed address)
368368
handler: handlePriceOracleUpdated
369369
- event: ConvertedExactTokens(indexed address,indexed address,address,indexed address,uint256,uint256)
370-
handler: handleConversionEvent
370+
handler: handleConvertedExactTokens
371371
- event: ConvertedForExactTokens(indexed address,indexed address,address,indexed address,uint256,uint256)
372-
handler: handleConversionEvent
372+
handler: handleConvertedExactTokens
373373
- event: ConvertedExactTokensSupportingFeeOnTransferTokens(indexed address,indexed address,address,indexed address,uint256,uint256)
374374
handler: handleConversionEvent
375375
- event: ConvertedForExactTokensSupportingFeeOnTransferTokens(indexed address,indexed address,address,indexed address,uint256,uint256)

0 commit comments

Comments
 (0)