From 4cba5c33ef9d164bda1bdc0452d90830be489d93 Mon Sep 17 00:00:00 2001 From: leantOnSol Date: Thu, 13 Feb 2025 16:50:48 +0100 Subject: [PATCH] fix maxtakersellcount logic for amount of bids --- clients/js/package.json | 2 +- clients/js/src/hooked/helpers.ts | 17 +++++++++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/clients/js/package.json b/clients/js/package.json index 58fd314..b8cb7c9 100644 --- a/clients/js/package.json +++ b/clients/js/package.json @@ -1,6 +1,6 @@ { "name": "@tensor-foundation/amm", - "version": "1.0.1", + "version": "1.0.2", "description": "Version 2 of the Tensor AMM program.", "sideEffects": false, "module": "./dist/src/index.mjs", diff --git a/clients/js/src/hooked/helpers.ts b/clients/js/src/hooked/helpers.ts index 6b0119b..81869aa 100644 --- a/clients/js/src/hooked/helpers.ts +++ b/clients/js/src/hooked/helpers.ts @@ -121,6 +121,7 @@ export function getAmountOfBids({ }): number { if (pool.config.poolType === PoolType.NFT) return 0; if (pool.config.startingPrice <= 0n) return 0; + if (isMaxTakerSellCountReached(pool)) return 0; let amountOfBidsWithoutMaxCount: number; // Trade pool that compounds fees ==> include mm fee (goes back into available balance) @@ -188,7 +189,7 @@ export function getAmountOfBids({ } amountOfBidsWithoutMaxCount = bidCount - 1; } - return isMaxTakerSellCountReached(pool) + return isMaxTakerSellCountRelevant(pool) ? Math.min( amountOfBidsWithoutMaxCount, pool.maxTakerSellCount + pool.priceOffset @@ -485,15 +486,23 @@ const cutTo12MantissaDecimals = ( return [adjustedNum, adjustedOffset]; }; -function isMaxTakerSellCountReached( +const isMaxTakerSellCountRelevant = ( pool: Pick -): boolean { +): boolean => { return ( - pool.priceOffset * -1 === pool.maxTakerSellCount && pool.maxTakerSellCount !== 0 && !!pool.sharedEscrow && pool.sharedEscrow !== DEFAULT_ADDRESS ); +}; + +function isMaxTakerSellCountReached( + pool: Pick +): boolean { + return ( + pool.priceOffset * -1 === pool.maxTakerSellCount && + isMaxTakerSellCountRelevant(pool) + ); } const isNotFulfillable = ({