Skip to content

Commit b992892

Browse files
authored
Merge pull request #22 from balancer/fix-snapshots
fix snapshots
2 parents ae1e4ab + 7a5fb43 commit b992892

File tree

1 file changed

+27
-6
lines changed

1 file changed

+27
-6
lines changed

subgraphs/v3-vault/src/mappings/vault.ts

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -172,15 +172,22 @@ export function handleLiquidityAdded(event: LiquidityAdded): void {
172172
let poolTokens = pool.tokens.load();
173173
let joinAmounts = new Array<BigDecimal>(amountsAddedRaw.length);
174174

175+
let vault = VaultExtension.bind(event.address);
176+
let poolTokensInfo = vault.getPoolTokenInfo(poolAddress);
177+
175178
for (let i: i32 = 0; i < poolTokens.length; i++) {
176179
let poolToken = poolTokens[i];
177180
let joinAmount = scaleDown(
178181
event.params.amountsAddedRaw[i],
179182
poolToken.decimals
180183
);
181-
poolToken.balance = poolToken.balance.plus(joinAmount);
182184
joinAmounts[i] = joinAmount;
183185

186+
poolToken.balance = scaleDown(
187+
poolTokensInfo.getBalancesRaw()[i],
188+
poolToken.decimals
189+
);
190+
184191
let aggregateSwapFeeAmount = scaleDown(
185192
computeAggregateSwapFee(
186193
event.params.swapFeeAmountsRaw[i],
@@ -235,15 +242,22 @@ export function handleLiquidityRemoved(event: LiquidityRemoved): void {
235242
let poolTokens = pool.tokens.load();
236243
let exitAmounts = new Array<BigDecimal>(amounts.length);
237244

245+
let vault = VaultExtension.bind(event.address);
246+
let poolTokensInfo = vault.getPoolTokenInfo(poolAddress);
247+
238248
for (let i: i32 = 0; i < poolTokens.length; i++) {
239249
let poolToken = poolTokens[i];
240250
let exitAmount = scaleDown(
241251
event.params.amountsRemovedRaw[i],
242252
poolToken.decimals
243253
);
244-
poolToken.balance = poolToken.balance.minus(exitAmount);
245254
exitAmounts[i] = exitAmount;
246255

256+
poolToken.balance = scaleDown(
257+
poolTokensInfo.getBalancesRaw()[i],
258+
poolToken.decimals
259+
);
260+
247261
let aggregateSwapFeeAmount = scaleDown(
248262
computeAggregateSwapFee(
249263
event.params.swapFeeAmountsRaw[i],
@@ -359,8 +373,13 @@ export function handleSwap(event: SwapEvent): void {
359373
poolTokenIn.decimals
360374
);
361375

362-
let newInAmount = poolTokenIn.balance.plus(tokenAmountIn);
363-
poolTokenIn.balance = newInAmount;
376+
let vault = VaultExtension.bind(event.address);
377+
let poolTokensInfo = vault.getPoolTokenInfo(poolAddress);
378+
379+
poolTokenIn.balance = scaleDown(
380+
poolTokensInfo.getBalancesRaw()[poolTokenIn.index],
381+
poolTokenIn.decimals
382+
);
364383
poolTokenIn.volume = poolTokenIn.volume.plus(tokenAmountIn);
365384
poolTokenIn.totalSwapFee = poolTokenIn.totalSwapFee.plus(swapFeeAmount);
366385
poolTokenIn.vaultProtocolSwapFeeBalance =
@@ -383,8 +402,10 @@ export function handleSwap(event: SwapEvent): void {
383402

384403
poolTokenIn.save();
385404

386-
let newOutAmount = poolTokenOut.balance.minus(tokenAmountOut);
387-
poolTokenOut.balance = newOutAmount;
405+
poolTokenOut.balance = scaleDown(
406+
poolTokensInfo.getBalancesRaw()[poolTokenOut.index],
407+
poolTokenOut.decimals
408+
);
388409
poolTokenOut.volume = poolTokenOut.volume.plus(tokenAmountOut);
389410
poolTokenOut.save();
390411

0 commit comments

Comments
 (0)