Revert "rename the old swapdirection in swap-quote"

This reverts commit 479acf26a2.
This commit is contained in:
Otto Cheung 2022-06-13 10:50:50 -07:00
parent 479acf26a2
commit 2feb023309
2 changed files with 22 additions and 30 deletions

View File

@ -4,7 +4,7 @@ import { u64 } from "@solana/spl-token";
import invariant from "tiny-invariant";
import { PoolUtil } from "../../utils/public/pool-utils";
import {
OldSwapDirection,
SwapDirection,
AmountSpecified,
adjustAmountForSlippage,
getAmountFixedDelta,
@ -21,7 +21,7 @@ import {
TICK_ARRAY_SIZE,
} from "../../types/public";
import { AddressUtil, MathUtil, Percentage, ZERO } from "@orca-so/common-sdk";
import { PriceMath, SwapDirection, TickArrayUtil, TickUtil } from "../../utils/public";
import { PriceMath, TickArrayUtil, TickUtil } from "../../utils/public";
import { Whirlpool } from "../../whirlpool-client";
import { AccountFetcher } from "../../network/public";
@ -62,8 +62,7 @@ export async function swapQuoteByInputToken(
invariant(!!swapTokenType, "swapTokenMint does not match any tokens on this pool");
const aToB =
PoolUtil.getSwapDirection(whirlpoolData, swapMintKey, amountSpecifiedIsInput)! ===
SwapDirection.AtoB;
swapMintKey.equals(whirlpoolData.tokenMintA) === amountSpecifiedIsInput ? true : false;
const tickArrayAddresses = PoolUtil.getTickArrayPublicKeysForSwap(
whirlpoolData.tickCurrentIndex,
@ -119,7 +118,7 @@ export function swapQuoteWithParams(param: SwapQuoteParam): SwapQuote {
tickArrayAddresses,
} = param;
const swapDirection = aToB ? OldSwapDirection.AtoB : OldSwapDirection.BtoA;
const swapDirection = aToB ? SwapDirection.AtoB : SwapDirection.BtoA;
const amountSpecified = amountSpecifiedIsInput ? AmountSpecified.Input : AmountSpecified.Output;
const { amountIn, amountOut, sqrtPriceLimitX64, tickArraysCrossed } = simulateSwap(
@ -159,7 +158,7 @@ export function swapQuoteWithParams(param: SwapQuoteParam): SwapQuote {
sqrtPriceLimit: sqrtPriceLimitX64,
estimatedAmountIn: amountIn,
estimatedAmountOut: amountOut,
aToB: swapDirection === OldSwapDirection.AtoB,
aToB: swapDirection === SwapDirection.AtoB,
amountSpecifiedIsInput,
tickArray0: traversedTickArrays[0],
tickArray1: traversedTickArrays[1],
@ -170,7 +169,7 @@ export function swapQuoteWithParams(param: SwapQuoteParam): SwapQuote {
type SwapSimulationBaseInput = {
whirlpoolData: WhirlpoolData;
amountSpecified: AmountSpecified;
swapDirection: OldSwapDirection;
swapDirection: SwapDirection;
tickArrays: (TickArrayData | null)[];
};
@ -255,7 +254,7 @@ function simulateSwap(
swapDirection
);
currentTickIndex = swapDirection == OldSwapDirection.AtoB ? nextTickIndex - 1 : nextTickIndex;
currentTickIndex = swapDirection == SwapDirection.AtoB ? nextTickIndex - 1 : nextTickIndex;
}
currentSqrtPriceX64 = nextSqrtPriceX64;
@ -273,7 +272,7 @@ function simulateSwap(
);
if (!sqrtPriceLimitX64) {
if (swapDirection === OldSwapDirection.AtoB) {
if (swapDirection === SwapDirection.AtoB) {
sqrtPriceLimitX64 = new BN(MIN_SQRT_PRICE);
} else {
sqrtPriceLimitX64 = new BN(MAX_SQRT_PRICE);
@ -379,12 +378,8 @@ function calculateFeesFromAmount(amount: u64, feeRate: Percentage): BN {
);
}
function calculateNewLiquidity(
liquidity: BN,
nextLiquidityNet: BN,
swapDirection: OldSwapDirection
) {
if (swapDirection == OldSwapDirection.AtoB) {
function calculateNewLiquidity(liquidity: BN, nextLiquidityNet: BN, swapDirection: SwapDirection) {
if (swapDirection == SwapDirection.AtoB) {
nextLiquidityNet = nextLiquidityNet.neg();
}
@ -450,7 +445,7 @@ function getNextInitializedTickIndex(
const currentTickArray = fetchTickArray(baseInput, currentTickIndex);
let temp;
if (swapDirection == OldSwapDirection.AtoB) {
if (swapDirection == SwapDirection.AtoB) {
temp = TickUtil.findPreviousInitializedTickIndex(
currentTickArray,
currentTickIndex,
@ -463,14 +458,14 @@ function getNextInitializedTickIndex(
if (temp) {
nextInitializedTickIndex = temp;
} else if (tickArraysCrossed === MAX_TICK_ARRAY_CROSSINGS) {
if (swapDirection === OldSwapDirection.AtoB) {
if (swapDirection === SwapDirection.AtoB) {
nextInitializedTickIndex = currentTickArray.startTickIndex;
} else {
nextInitializedTickIndex = currentTickArray.startTickIndex + TICK_ARRAY_SIZE * tickSpacing;
}
tickArraysCrossed++;
} else {
if (swapDirection === OldSwapDirection.AtoB) {
if (swapDirection === SwapDirection.AtoB) {
currentTickIndex = currentTickArray.startTickIndex - 1;
} else {
currentTickIndex = currentTickArray.startTickIndex + TICK_ARRAY_SIZE * tickSpacing - 1;

View File

@ -7,7 +7,7 @@ import {
getLowerSqrtPriceFromTokenB,
} from "./swap-utils";
export enum OldSwapDirection {
export enum SwapDirection {
AtoB = "Swap A to B",
BtoA = "Swap B to A",
}
@ -144,9 +144,9 @@ export function getAmountFixedDelta(
targetSqrtPriceX64: BN,
liquidity: BN,
amountSpecified: AmountSpecified,
swapDirection: OldSwapDirection
swapDirection: SwapDirection
) {
if ((amountSpecified == AmountSpecified.Input) == (swapDirection == OldSwapDirection.AtoB)) {
if ((amountSpecified == AmountSpecified.Input) == (swapDirection == SwapDirection.AtoB)) {
return getTokenAFromLiquidity(
liquidity,
currentSqrtPriceX64,
@ -168,9 +168,9 @@ export function getAmountUnfixedDelta(
targetSqrtPriceX64: BN,
liquidity: BN,
amountSpecified: AmountSpecified,
swapDirection: OldSwapDirection
swapDirection: SwapDirection
) {
if ((amountSpecified == AmountSpecified.Input) == (swapDirection == OldSwapDirection.AtoB)) {
if ((amountSpecified == AmountSpecified.Input) == (swapDirection == SwapDirection.AtoB)) {
return getTokenBFromLiquidity(
liquidity,
currentSqrtPriceX64,
@ -192,16 +192,13 @@ export function getNextSqrtPrice(
liquidity: BN,
amount: BN,
amountSpecified: AmountSpecified,
swapDirection: OldSwapDirection
swapDirection: SwapDirection
) {
if (amountSpecified === AmountSpecified.Input && swapDirection === OldSwapDirection.AtoB) {
if (amountSpecified === AmountSpecified.Input && swapDirection === SwapDirection.AtoB) {
return getLowerSqrtPriceFromTokenA(amount, liquidity, sqrtPriceX64);
} else if (
amountSpecified === AmountSpecified.Output &&
swapDirection === OldSwapDirection.BtoA
) {
} else if (amountSpecified === AmountSpecified.Output && swapDirection === SwapDirection.BtoA) {
return getUpperSqrtPriceFromTokenA(amount, liquidity, sqrtPriceX64);
} else if (amountSpecified === AmountSpecified.Input && swapDirection === OldSwapDirection.BtoA) {
} else if (amountSpecified === AmountSpecified.Input && swapDirection === SwapDirection.BtoA) {
return getUpperSqrtPriceFromTokenB(amount, liquidity, sqrtPriceX64);
} else {
return getLowerSqrtPriceFromTokenB(amount, liquidity, sqrtPriceX64);