From 55ef13410cb027566582a5aa5c4d349afa4629f8 Mon Sep 17 00:00:00 2001 From: Danh Date: Wed, 20 Sep 2023 16:17:27 +0700 Subject: [PATCH] add kyber pmm --- .../swapv2/LiquiditySourcesPanel/index.tsx | 10 ++++--- src/constants/dexes.ts | 30 +------------------ src/state/customizeDexes/updater.tsx | 20 ++++++++----- 3 files changed, 20 insertions(+), 40 deletions(-) diff --git a/src/components/swapv2/LiquiditySourcesPanel/index.tsx b/src/components/swapv2/LiquiditySourcesPanel/index.tsx index acfdddb44c..830849d798 100644 --- a/src/components/swapv2/LiquiditySourcesPanel/index.tsx +++ b/src/components/swapv2/LiquiditySourcesPanel/index.tsx @@ -106,6 +106,8 @@ const LiquiditySourceHeader = styled.div` align-items: center; ` +export const isKyberSwapDex = (id: string) => id.includes('kyber') + const LiquiditySourcesPanel: React.FC = ({ onBack }) => { const [searchText, setSearchText] = useState('') const debouncedSearchText = useDebounce(searchText.toLowerCase(), 200).trim() @@ -135,7 +137,7 @@ const LiquiditySourcesPanel: React.FC = ({ onBack }) => { }, [excludeDexes, dexes]) const ksDexes = useMemo( - () => dexes.filter(item => item.id.includes('kyberswap')).sort((a, b) => a.sortId - b.sortId), + () => dexes.filter(item => isKyberSwapDex(item.id)).sort((a, b) => a.sortId - b.sortId), [dexes], ) @@ -210,10 +212,10 @@ const LiquiditySourcesPanel: React.FC = ({ onBack }) => { checked={!ksDexes.map(i => i.id).every(item => excludeDexes.includes(item))} onChange={e => { if (e.target.checked) { - setExcludeDexes(excludeDexes.filter(item => !item.includes('kyberswap'))) + setExcludeDexes(excludeDexes.filter(item => !isKyberSwapDex(item))) } else { const newData = [ - ...excludeDexes.filter(item => !item.includes('kyberswap')), + ...excludeDexes.filter(item => !isKyberSwapDex(item)), ...ksDexes.map(item => item.id), ] setExcludeDexes(newData) @@ -244,7 +246,7 @@ const LiquiditySourcesPanel: React.FC = ({ onBack }) => { )} {dexes - ?.filter(item => !item.id.includes('kyberswap') && item.name.toLowerCase().includes(debouncedSearchText)) + ?.filter(item => !isKyberSwapDex(item.id) && item.name.toLowerCase().includes(debouncedSearchText)) .map(({ name, logoURL, id }) => ( handleToggleDex(id)} /> diff --git a/src/constants/dexes.ts b/src/constants/dexes.ts index d997f8de04..434a24b0ed 100644 --- a/src/constants/dexes.ts +++ b/src/constants/dexes.ts @@ -6,33 +6,5 @@ export const KYBERSWAP_KS_DEXES_TO_UI_DEXES: { [key: string]: string | undefined 'kyberswap-static': 'kyberswapv1', // kyberswap classic new contract -> with static fee 'kyberswap-limit-order': 'kyberswap-limit-order', 'kyberswap-limit-order-v2': 'kyberswap-limit-order-v2', -} - -export const KYBERSWAP_UI_DEXES: { - [key: string]: { - name: string - id: string - logoURL: string - } -} = { - 'kyberswap-elastic': { - name: 'KyberSwap Elastic', - id: 'kyberswap-elastic', - logoURL: 'https://kyberswap.com/favicon.ico', - }, - kyberswapv1: { - name: 'KyberSwap Classic', - id: 'kyberswapv1', - logoURL: 'https://kyberswap.com/favicon.ico', - }, - 'kyberswap-limit-order': { - name: 'KyberSwap Limit Order', - id: 'kyberswap-limit-order', - logoURL: 'https://kyberswap.com/favicon.ico', - }, - 'kyberswap-limit-order-v2': { - name: 'KyberSwap Limit Order V2', - id: 'kyberswap-limit-order-v2', - logoURL: 'https://kyberswap.com/favicon.ico', - }, + 'kyber-pmm': 'kyber-pmm', } diff --git a/src/state/customizeDexes/updater.tsx b/src/state/customizeDexes/updater.tsx index 139f264aa5..52deea1927 100644 --- a/src/state/customizeDexes/updater.tsx +++ b/src/state/customizeDexes/updater.tsx @@ -1,7 +1,8 @@ import { useEffect, useMemo } from 'react' import { useDispatch } from 'react-redux' -import { KYBERSWAP_KS_DEXES_TO_UI_DEXES, KYBERSWAP_UI_DEXES } from 'constants/dexes' +import { isKyberSwapDex } from 'components/swapv2/LiquiditySourcesPanel' +import { KYBERSWAP_KS_DEXES_TO_UI_DEXES } from 'constants/dexes' import { useActiveWeb3React } from 'hooks' import useLiquiditySources from 'hooks/useAggregatorStats' import { AppDispatch } from 'state/index' @@ -18,16 +19,21 @@ export default function Updater(): null { // filterout kyberswap dexes, will hardcode const normalizeDexes = useMemo(() => { const dexesFormatted: Dex[] = dexes?.map(item => ({ ...item, id: item.dexId, sortId: item.id })) || [] - const dexesOutsideKyberswap = dexesFormatted.filter(item => !item.id.includes('kyberswap')) + const dexesOutsideKyberswap = dexesFormatted.filter(item => !isKyberSwapDex(item.id)) const dexesKyberswap = uniqueArray( dexesFormatted.filter(dex => KYBERSWAP_KS_DEXES_TO_UI_DEXES[dex.id]), dex => KYBERSWAP_KS_DEXES_TO_UI_DEXES[dex.id], ) - const dexesUIKyberswap = dexesKyberswap.map(dex => ({ - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - ...KYBERSWAP_UI_DEXES[KYBERSWAP_KS_DEXES_TO_UI_DEXES[dex.id]!], - sortId: dex.sortId, - })) + + const dexesUIKyberswap = dexesKyberswap.map(dex => { + return { + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + id: KYBERSWAP_KS_DEXES_TO_UI_DEXES[dex.id]!, + name: dex.name, + logoURL: dex.logoURL || 'https://kyberswap.com/favicon.ico', + sortId: dex.sortId, + } + }) return [...dexesOutsideKyberswap, ...dexesUIKyberswap] }, [dexes])