Skip to content

Commit

Permalink
fix: adjust expected swapOut amount
Browse files Browse the repository at this point in the history
  • Loading branch information
SamarendraGouda committed Feb 6, 2025
1 parent e7e18f7 commit ac86562
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 4 deletions.
24 changes: 20 additions & 4 deletions src/dex/fluid-dex/fluid-dex-e2e.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import { generateConfig } from '../../config';
import { CollateralReserves, DebtReserves, DexLimits } from './types';
import { DummyDexHelper } from '../../dex-helper/index';
import { FluidDex } from './fluid-dex';
import { adjustTestSwapOutAmount } from './utils';

function testForNetwork(
network: Network,
Expand All @@ -26,6 +27,8 @@ function testForNetwork(

const tokens = Tokens[network];
const holders = Holders[network];
let adjustedTokenAAmount = tokenAAmount;
let adjustedTokenBAmount = tokenBAmount;

// Create FluidDex instance to check reserves
const dexHelper = new DummyDexHelper(network);
Expand All @@ -43,12 +46,18 @@ function testForNetwork(
describe(`${contractMethod}`, () => {
it(`${tokenBSymbol} -> ${tokenASymbol}`, async () => {
await fluidDex.initializePricing(await provider.getBlockNumber());
if (contractMethod === ContractMethod.swapExactAmountOut) {
adjustedTokenBAmount = adjustTestSwapOutAmount(
BigInt(tokenBAmount),
tokens[tokenBSymbol].decimals,
);
}

try {
const pricesB2A = await fluidDex.getPricesVolume(
tokens[tokenBSymbol],
tokens[tokenASymbol],
[BigInt(tokenBAmount)],
[BigInt(adjustedTokenBAmount)],
side,
await provider.getBlockNumber(),
);
Expand Down Expand Up @@ -80,7 +89,7 @@ function testForNetwork(
tokens[tokenBSymbol],
tokens[tokenASymbol],
holders[tokenBSymbol],
tokenBAmount,
adjustedTokenBAmount,
side,
dexKey,
contractMethod as ContractMethod,
Expand All @@ -96,10 +105,17 @@ function testForNetwork(
await provider.getBlockNumber(),
);

if (contractMethod === ContractMethod.swapExactAmountOut) {
adjustedTokenAAmount = adjustTestSwapOutAmount(
BigInt(tokenAAmount),
tokens[tokenASymbol].decimals,
);
}

const pricesA2B = await fluidDex.getPricesVolume(
tokens[tokenASymbol],
tokens[tokenBSymbol],
[BigInt(tokenAAmount)],
[BigInt(adjustedTokenAAmount)],
side,
await provider.getBlockNumber(),
);
Expand Down Expand Up @@ -131,7 +147,7 @@ function testForNetwork(
tokens[tokenASymbol],
tokens[tokenBSymbol],
holders[tokenASymbol],
tokenAAmount,
adjustedTokenAAmount,
side,
dexKey,
contractMethod as ContractMethod,
Expand Down
10 changes: 10 additions & 0 deletions src/dex/fluid-dex/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,13 @@ export function sqrt(value: BigNumber) {
}
return y;
}

export function adjustTestSwapOutAmount(
amountOut: bigint,
outDecimals: number,
) {
return (
((amountOut * BigInt(10 ** 12)) / BigInt(10 ** outDecimals)) *
BigInt(10 ** (outDecimals - 12))
).toString();
}

0 comments on commit ac86562

Please sign in to comment.