Skip to content

Commit

Permalink
add test case get symbol pool
Browse files Browse the repository at this point in the history
  • Loading branch information
haunv3 committed Jan 10, 2024
1 parent b139d3a commit f9d63d0
Show file tree
Hide file tree
Showing 3 changed files with 53 additions and 40 deletions.
36 changes: 34 additions & 2 deletions src/pages/Pools/helpers.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,33 @@
import { Cw20Coin } from '@oraichain/common-contracts-sdk';
import { InstantiateMarketingInfo } from '@oraichain/common-contracts-sdk/build/Cw20Base.types';
import { validateNumber } from '@oraichain/oraidex-common';
import { validateNumber, INJECTIVE_CONTRACT, ORAI, USDC_CONTRACT, ORAIX_CONTRACT } from '@oraichain/oraidex-common';
import { Asset, AssetInfo } from '@oraichain/oraidex-contracts-sdk';
import { MinterResponse } from '@oraichain/oraidex-contracts-sdk/build/OraiswapToken.types';

// TODO: hardcode reverse symbol for ORAI/INJ,USDC/ORAIX, need to update later
export const reverseSymbolArr = [
[
{
denom: INJECTIVE_CONTRACT,
coinGeckoId: 'injective-protocol'
},
{
denom: ORAI,
coinGeckoId: 'orai'
}
],
[
{
denom: USDC_CONTRACT,
coinGeckoId: 'usd-coin'
},
{
denom: ORAIX_CONTRACT,
coinGeckoId: 'oraidex'
}
]
];

export type ListTokenJsMsg = {
initialBalances?: Cw20Coin[];
mint?: MinterResponse;
Expand Down Expand Up @@ -54,6 +78,14 @@ const getInfoLiquidityPool = ({ denom, contract_addr }) => {
return { native_token: { denom } };
};

const getSymbolPools = (baseDenom: string, quoteDenom: string, originalSymbols: string) => {
let symbols = originalSymbols;
if (reverseSymbolArr.some((item) => item[0].denom === baseDenom && item[1].denom === quoteDenom)) {
symbols = originalSymbols.split('/').reverse().join('/');
}
return symbols;
};

const isBigIntZero = (value: BigInt): boolean => {
return value === BigInt(0);
};
Expand Down Expand Up @@ -131,4 +163,4 @@ export const estimateShare = ({
return share;
};

export { generateMsgFrontierAddToken, getInfoLiquidityPool, isBigIntZero };
export { generateMsgFrontierAddToken, getInfoLiquidityPool, isBigIntZero, getSymbolPools };
37 changes: 1 addition & 36 deletions src/pages/Pools/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,8 @@ import { ListPools } from './components/ListPool';
import { ListPoolsMobile } from './components/ListPoolMobile';
import {
CW20_DECIMALS,
INJECTIVE_CONTRACT,
ORAI,
TokenItemType,
toDisplay,
USDC_CONTRACT,
ORAIX_CONTRACT
} from '@oraichain/oraidex-common';
import { isMobile } from '@walletconnect/browser-utils';
import { oraichainTokensWithIcon } from 'config/chainInfos';
Expand All @@ -21,7 +17,7 @@ import useTheme from 'hooks/useTheme';
import isEqual from 'lodash/isEqual';
import { PoolInfoResponse } from 'types/pool';
import { Filter } from './components/Filter';
import { parseAssetOnlyDenom } from './helpers';
import { getSymbolPools, parseAssetOnlyDenom, reverseSymbolArr } from './helpers';
import { ReactComponent as DefaultIcon } from 'assets/icons/tokens.svg';
import {
useFetchCacheRewardAssetForAllPools,
Expand All @@ -42,30 +38,6 @@ export type PoolTableData = PoolInfoResponse & {
quoteToken: TokenItemType;
};

// TODO: hardcode reverse symbol for ORAI/INJ,USDC/ORAIX, need to update later
const reverseSymbolArr = [
[
{
denom: INJECTIVE_CONTRACT,
coinGeckoId: 'injective-protocol'
},
{
denom: ORAI,
coinGeckoId: 'orai'
}
],
[
{
denom: USDC_CONTRACT,
coinGeckoId: 'usd-coin'
},
{
denom: ORAIX_CONTRACT,
coinGeckoId: 'oraidex'
}
]
];

const Pools: React.FC<{}> = () => {
const [isOpenNewPoolModal, setIsOpenNewPoolModal] = useState(false);
const [isOpenNewTokenModal, setIsOpenNewTokenModal] = useState(false);
Expand Down Expand Up @@ -94,13 +66,6 @@ const Pools: React.FC<{}> = () => {
});

const [cachedReward] = useConfigReducer('rewardPools');
const getSymbolPools = (baseDenom: string, quoteDenom: string, originalSymbols: string) => {
let symbols = originalSymbols;
if (reverseSymbolArr.some((item) => item[0].denom === baseDenom && item[1].denom === quoteDenom)) {
symbols = originalSymbols.split('/').reverse().join('/');
}
return symbols;
};

const poolTableData: PoolTableData[] = filteredPools
.map((pool) => {
Expand Down
20 changes: 18 additions & 2 deletions src/tests/pool.spec.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,14 @@
import { ORAI, buildMultipleExecuteMessages } from '@oraichain/oraidex-common';
import {
ORAI,
buildMultipleExecuteMessages,
INJECTIVE_CONTRACT,
USDC_CONTRACT,
ORAIX_CONTRACT,
WETH_CONTRACT
} from '@oraichain/oraidex-common';
import { flattenTokens } from 'config/bridgeTokens';
import { getPoolTokens } from 'config/pools';
import { estimateShare, formatDisplayUsdt, toFixedIfNecessary } from 'pages/Pools/helpers';
import { estimateShare, formatDisplayUsdt, getSymbolPools, toFixedIfNecessary } from 'pages/Pools/helpers';
import { ProvideQuery, Type, generateContractMessages } from 'rest/api';
import { constants } from './listing-simulate';

Expand Down Expand Up @@ -101,4 +108,13 @@ describe('pool', () => {
payload.totalShare = NaN;
expect(estimateShare(payload)).toEqual(0);
});

it.each<[string, string, string, string]>([
[INJECTIVE_CONTRACT, ORAI, 'INJ/ORAI', 'ORAI/INJ'],
[USDC_CONTRACT, ORAIX_CONTRACT, 'USDC/ORAIX', 'ORAIX/USDC'],
[ORAI, WETH_CONTRACT, 'ORAI/WETH', 'ORAI/WETH']
])('test getSymbolPools', (baseDenom, quoteDenom, originalSymbols, expected) => {
const symbols = getSymbolPools(baseDenom, quoteDenom, originalSymbols);
expect(symbols).toEqual(expected);
});
});

0 comments on commit f9d63d0

Please sign in to comment.