From 5fb8b8a83dfb2be89113caa58ccdf456ea78ac45 Mon Sep 17 00:00:00 2001 From: mendesfabio Date: Thu, 12 Dec 2024 16:50:11 -0300 Subject: [PATCH] fix pool swap fees snapshot --- subgraphs/v3-vault/schema.graphql | 2 ++ subgraphs/v3-vault/src/helpers/entities.ts | 3 ++- subgraphs/v3-vault/src/mappings/vault.ts | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/subgraphs/v3-vault/schema.graphql b/subgraphs/v3-vault/schema.graphql index ec23320..80430ef 100644 --- a/subgraphs/v3-vault/schema.graphql +++ b/subgraphs/v3-vault/schema.graphql @@ -151,6 +151,8 @@ type PoolToken @entity { balance: BigDecimal! "Total volume of this token traded in the Pool" volume: BigDecimal! + "Total swap fees collected for this token" + totalSwapFee: BigDecimal! "Buffer associated with this token, if any" buffer: Buffer "Nested Pool associated with this token, if any" diff --git a/subgraphs/v3-vault/src/helpers/entities.ts b/subgraphs/v3-vault/src/helpers/entities.ts index b6b295b..41a5293 100644 --- a/subgraphs/v3-vault/src/helpers/entities.ts +++ b/subgraphs/v3-vault/src/helpers/entities.ts @@ -79,7 +79,7 @@ export function createPoolSnapshot(pool: Pool, timestamp: i32): void { for (let i = 0; i < poolTokens.length; i++) { totalSwapVolumes[i] = poolTokens[i].volume; balances[i] = poolTokens[i].balance; - totalSwapFees[i] = poolTokens[i].totalProtocolSwapFee; + totalSwapFees[i] = poolTokens[i].totalSwapFee; totalProtocolSwapFees[i] = poolTokens[i].totalProtocolSwapFee; totalProtocolYieldFees[i] = poolTokens[i].totalProtocolYieldFee; } @@ -128,6 +128,7 @@ export function createPoolToken( poolToken.priceRate = ONE_BD; poolToken.balance = ZERO_BD; poolToken.volume = ZERO_BD; + poolToken.totalSwapFee = ZERO_BD; poolToken.totalProtocolSwapFee = ZERO_BD; poolToken.totalProtocolYieldFee = ZERO_BD; poolToken.buffer = buffer ? buffer.id : null; diff --git a/subgraphs/v3-vault/src/mappings/vault.ts b/subgraphs/v3-vault/src/mappings/vault.ts index 6ad39b3..cfaa113 100644 --- a/subgraphs/v3-vault/src/mappings/vault.ts +++ b/subgraphs/v3-vault/src/mappings/vault.ts @@ -312,6 +312,7 @@ export function handleSwap(event: SwapEvent): void { let newInAmount = poolTokenIn.balance.plus(tokenAmountIn); poolTokenIn.balance = newInAmount; poolTokenIn.volume = poolTokenIn.volume.plus(tokenAmountIn); + poolTokenIn.totalSwapFee = poolTokenIn.totalSwapFee.plus(swapFeeAmount); poolTokenIn.save(); let newOutAmount = poolTokenOut.balance.minus(tokenAmountOut);