From 9d1c39436219831ea90581e1dac320773b045cef Mon Sep 17 00:00:00 2001 From: Karim Dalaize Date: Wed, 28 Feb 2024 15:59:26 +0100 Subject: [PATCH] [Updated] Reduce drops sent in MySavings only by poolId --- src/utils/lumClient.ts | 2 +- src/utils/pools.ts | 17 ++++++++++++++--- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/utils/lumClient.ts b/src/utils/lumClient.ts index af3edaf..f4a44e5 100644 --- a/src/utils/lumClient.ts +++ b/src/utils/lumClient.ts @@ -162,7 +162,7 @@ class LumClient { } const aggregatedDeposits = await PoolsUtils.reduceDepositsByPoolId(deposits); - const aggregatedDepositDropsSent = await PoolsUtils.reduceDepositDropsByPoolIdAndDays(deposits); + const aggregatedDepositDropsSent = await PoolsUtils.reduceDepositDropsByPoolIdAndDays(deposits, { reduceBy: 'poolId' }); let withdrawalsNextPageKey = new Uint8Array(); const withdrawals: Withdrawal[] = []; diff --git a/src/utils/pools.ts b/src/utils/pools.ts index a4eed8e..bb01126 100644 --- a/src/utils/pools.ts +++ b/src/utils/pools.ts @@ -124,13 +124,18 @@ export const getPoolByPoolId = (pools: PoolModel[], poolId: string) => { }; // DROPS -export const reduceDepositDropsByPoolIdAndDays = async (deposits: Partial[]) => { +export const reduceDepositDropsByPoolIdAndDays = async (deposits: Partial[], options: { reduceBy: 'poolId' | 'date' } = { reduceBy: 'date' }) => { const aggregatedDeposits: AggregatedDepositModel[] = []; for (const deposit of deposits) { const poolId = deposit.poolId; + const reduceByDate = options.reduceBy === 'date'; - if (poolId === undefined || deposit.createdAt === undefined) { + if (poolId === undefined) { + continue; + } + + if (reduceByDate && deposit.createdAt === undefined) { continue; } @@ -140,7 +145,13 @@ export const reduceDepositDropsByPoolIdAndDays = async (deposits: Partial d.poolId?.toString() === poolId.toString() && dayjs(d.createdAt).format('YYYY-MM-DD') === createdAt); + const existingDeposit = aggregatedDeposits.find((d) => { + if (reduceByDate) { + return d.poolId?.toString() === poolId.toString() && dayjs(d.createdAt).format('YYYY-MM-DD') === createdAt; + } else { + return d.poolId?.toString() === poolId.toString(); + } + }); if ( existingDeposit &&