From 81179f91d21504eccab32a9d4256cb06ba98a9a1 Mon Sep 17 00:00:00 2001 From: mantikoros Date: Mon, 9 May 2022 16:51:42 -0400 Subject: [PATCH] deduct liquidity from profits --- common/add-liquidity.ts | 4 +--- functions/src/add-liquidity.ts | 27 ++++++++++++++------------- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/common/add-liquidity.ts b/common/add-liquidity.ts index 573b609d..0421bcb5 100644 --- a/common/add-liquidity.ts +++ b/common/add-liquidity.ts @@ -29,7 +29,5 @@ export const getNewLiquidityProvision = ( const newTotalLiquidity = (totalLiquidity ?? 0) + amount - const newBalance = user.balance - amount - - return { newLiquidityProvision, newPool, newP, newBalance, newTotalLiquidity } + return { newLiquidityProvision, newPool, newP, newTotalLiquidity } } diff --git a/functions/src/add-liquidity.ts b/functions/src/add-liquidity.ts index e37804d3..34d3f7c6 100644 --- a/functions/src/add-liquidity.ts +++ b/functions/src/add-liquidity.ts @@ -54,18 +54,13 @@ export const addLiquidity = functions.runWith({ minInstances: 1 }).https.onCall( .collection(`contracts/${contractId}/liquidity`) .doc() - const { - newLiquidityProvision, - newPool, - newP, - newBalance, - newTotalLiquidity, - } = getNewLiquidityProvision( - user, - amount, - contract, - newLiquidityProvisionDoc.id - ) + const { newLiquidityProvision, newPool, newP, newTotalLiquidity } = + getNewLiquidityProvision( + user, + amount, + contract, + newLiquidityProvisionDoc.id + ) if (newP !== undefined && !isFinite(newP)) { return { @@ -83,11 +78,17 @@ export const addLiquidity = functions.runWith({ minInstances: 1 }).https.onCall( }) ) + const newBalance = user.balance - amount + const newTotalDeposits = user.totalDeposits - amount + if (!isFinite(newBalance)) { throw new Error('Invalid user balance for ' + user.username) } - transaction.update(userDoc, { balance: newBalance }) + transaction.update(userDoc, { + balance: newBalance, + totalDeposits: newTotalDeposits, + }) transaction.create(newLiquidityProvisionDoc, newLiquidityProvision)