From 911d1073b667c29e38ecad4391e43fb0a3dd28ff Mon Sep 17 00:00:00 2001 From: Mikey Date: Mon, 15 Jul 2024 22:51:40 +0800 Subject: [PATCH] fix: Invalid variable assignment in maxLiquidityForAmounts (#10196) --- .changeset/weak-flowers-decide.md | 5 +++++ packages/v3-sdk/src/utils/maxLiquidityForAmounts.ts | 12 ++++-------- 2 files changed, 9 insertions(+), 8 deletions(-) create mode 100644 .changeset/weak-flowers-decide.md diff --git a/.changeset/weak-flowers-decide.md b/.changeset/weak-flowers-decide.md new file mode 100644 index 0000000000000..434a418076d82 --- /dev/null +++ b/.changeset/weak-flowers-decide.md @@ -0,0 +1,5 @@ +--- +'@pancakeswap/v3-sdk': patch +--- + +Fix invalid assignment in max liquidity for amounts diff --git a/packages/v3-sdk/src/utils/maxLiquidityForAmounts.ts b/packages/v3-sdk/src/utils/maxLiquidityForAmounts.ts index 399a174780410..585201c138711 100644 --- a/packages/v3-sdk/src/utils/maxLiquidityForAmounts.ts +++ b/packages/v3-sdk/src/utils/maxLiquidityForAmounts.ts @@ -14,8 +14,7 @@ import { Q96 } from '../internalConstants' */ function maxLiquidityForAmount0Imprecise(sqrtRatioAX96: bigint, sqrtRatioBX96: bigint, amount0: BigintIsh): bigint { if (sqrtRatioAX96 > sqrtRatioBX96) { - sqrtRatioAX96 = sqrtRatioBX96 - sqrtRatioBX96 = sqrtRatioAX96 + ;[sqrtRatioAX96, sqrtRatioBX96] = [sqrtRatioBX96, sqrtRatioAX96] } const intermediate = (sqrtRatioAX96 * sqrtRatioBX96) / Q96 return (BigInt(amount0) * intermediate) / (sqrtRatioBX96 - sqrtRatioAX96) @@ -31,8 +30,7 @@ function maxLiquidityForAmount0Imprecise(sqrtRatioAX96: bigint, sqrtRatioBX96: b */ function maxLiquidityForAmount0Precise(sqrtRatioAX96: bigint, sqrtRatioBX96: bigint, amount0: BigintIsh): bigint { if (sqrtRatioAX96 > sqrtRatioBX96) { - sqrtRatioAX96 = sqrtRatioBX96 - sqrtRatioBX96 = sqrtRatioAX96 + ;[sqrtRatioAX96, sqrtRatioBX96] = [sqrtRatioBX96, sqrtRatioAX96] } const numerator = BigInt(amount0) * sqrtRatioAX96 * sqrtRatioBX96 @@ -50,8 +48,7 @@ function maxLiquidityForAmount0Precise(sqrtRatioAX96: bigint, sqrtRatioBX96: big */ function maxLiquidityForAmount1(sqrtRatioAX96: bigint, sqrtRatioBX96: bigint, amount1: BigintIsh): bigint { if (sqrtRatioAX96 > sqrtRatioBX96) { - sqrtRatioAX96 = sqrtRatioBX96 - sqrtRatioBX96 = sqrtRatioAX96 + ;[sqrtRatioAX96, sqrtRatioBX96] = [sqrtRatioBX96, sqrtRatioAX96] } return (BigInt(amount1) * Q96) / (sqrtRatioBX96 - sqrtRatioAX96) } @@ -76,8 +73,7 @@ export function maxLiquidityForAmounts( useFullPrecision: boolean ): bigint { if (sqrtRatioAX96 > sqrtRatioBX96) { - sqrtRatioAX96 = sqrtRatioBX96 - sqrtRatioBX96 = sqrtRatioAX96 + ;[sqrtRatioAX96, sqrtRatioBX96] = [sqrtRatioBX96, sqrtRatioAX96] } const maxLiquidityForAmount0 = useFullPrecision ? maxLiquidityForAmount0Precise : maxLiquidityForAmount0Imprecise