From cd01845ff2eed74ad56afb6f2f78cfb3ab337894 Mon Sep 17 00:00:00 2001 From: Alexandre ABRIOUX Date: Wed, 3 Mar 2021 16:37:11 +0100 Subject: [PATCH] add failing test case --- .../v2/computation-and-formatting.test.ts | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/test/v2/computation-and-formatting.test.ts b/src/test/v2/computation-and-formatting.test.ts index c10a76ae..7317ed72 100644 --- a/src/test/v2/computation-and-formatting.test.ts +++ b/src/test/v2/computation-and-formatting.test.ts @@ -4,6 +4,7 @@ import { formatUserSummaryData, } from '../../v2/computations-and-formatting'; import BigNumber from 'bignumber.js'; +import { getCompoundedBalance } from '../../helpers/pool-math'; const mockReserve: ReserveData = { underlyingAsset: '0xff795577d9ac8bd7d90ee22b6c1703490b6512fd', @@ -151,5 +152,27 @@ describe('computations and formattings', () => { expect(new BigNumber(second.totalDebt).gte(first.totalDebt)).toBe(true); }); + + it('should compute collateral balance from blockchain data', () => { + // data exported from user 0xa5a69107816c5e3dfa5561e6b621dfe6294f6e5b + // at block number: 11581421 + // reserve: YFI + const scaledATokenBalance = '161316503206059870'; + const liquidityIndex = '1001723339432542553527150680'; + const currentLiquidityRate = '22461916953455574582370088'; + const lastUpdateTimestamp = 1609673617; + // at a later time, but on the same block + // expected balance computed with hardhat + const currentTimestamp = 1609675535; + const expectedATokenBalance = '161594727054623229'; + const underlyingBalance = getCompoundedBalance( + scaledATokenBalance, + liquidityIndex, + currentLiquidityRate, + lastUpdateTimestamp, + currentTimestamp + ).toString(); + expect(underlyingBalance).toBe(expectedATokenBalance); + }); }); });