@rango-dev/widget-embedded 0.1.10-next.76 → 0.1.10-next.80

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"widget-embedded.cjs.development.js","sources":["../src/constants/numbers.ts","../src/utils/numbers.ts","../src/utils/routing.ts","../src/store/selectors.ts","../src/store/bestRoute.ts","../src/services/httpService.ts","../src/utils/common.ts","../src/store/meta.ts","../src/constants/searchParams.ts","../src/components/UpdateUrl.tsx","../src/components/AppRouter.tsx","../src/utils/wallets.ts","../src/store/wallets.ts","../src/constants/navigationRoutes.ts","../src/store/settings.ts","../src/utils/swap.ts","../src/hooks/useConfirmSwap.ts","../src/pages/ConfirmSwapPage.tsx","../src/pages/HistoryPage.tsx","../src/components/HeaderButtons.tsx","../src/components/Header.tsx","../src/components/TokenInfo.tsx","../src/components/BottomLogo.tsx","../src/components/SwitchFromAndTo.tsx","../src/components/Footer.tsx","../src/hooks/useBestRoute.ts","../src/constants/errors.ts","../src/pages/Home.tsx","../src/pages/LiquiditySourcesPage.tsx","../src/pages/SelectChainPage.tsx","../src/pages/SelectTokenPage.tsx","../src/pages/SettingsPage.tsx","../src/pages/WalletsPage.tsx","../src/pages/ConfirmWalletsPage.tsx","../src/mockData/pendingSwap.ts","../src/pages/SwapDetailsPage.tsx","../src/components/AppRoutes.tsx","../src/components/Layout.tsx","../src/globalStyles.ts","../src/hooks/useTheme.ts","../src/lib.tsx"],"sourcesContent":["import BigNumber from 'bignumber.js';\n\nexport const ZERO = new BigNumber(0);\n","import { BigNumber } from 'bignumber.js';\n\nexport const percentToString = (p: number, fractions = 0): string => (p * 100).toFixed(fractions);\nexport const secondsToString = (s: number): string => {\n const seconds = (s % 60).toString().padStart(2, '0');\n const minutes = parseInt((s / 60).toString())\n .toString()\n .padStart(2, '0');\n return `${minutes}:${seconds}`;\n};\n\nexport const numberToString = (\n number: BigNumber | string | null,\n minDecimals: number | null = null,\n maxDecimals: number | null = null,\n): string => {\n if (number === null) return '';\n if (number === '') return '';\n const n = new BigNumber(number);\n const roundingMode = 1;\n let maxI = 1000;\n for (let i = 0; i < 60; i++) {\n if (new BigNumber(n.toFixed(i, roundingMode)).eq(n)) {\n maxI = i;\n break;\n }\n }\n\n if (n.gte(10000)) return n.toFormat(0, roundingMode);\n if (n.gte(1000))\n return n.toFormat(\n Math.min(maxI, Math.min(maxDecimals || 100, Math.max(minDecimals || 0, 1))),\n roundingMode,\n );\n if (n.gte(100))\n return n.toFormat(\n Math.min(maxI, Math.min(maxDecimals || 100, Math.max(minDecimals || 0, 1))),\n roundingMode,\n );\n if (n.gte(1))\n return n.toFormat(\n Math.min(maxI, Math.min(maxDecimals || 100, Math.max(minDecimals || 0, 2))),\n roundingMode,\n );\n if (n.gte(0.01))\n return n.toFormat(\n Math.min(maxI, Math.min(maxDecimals || 100, Math.max(minDecimals || 0, 4))),\n roundingMode,\n );\n for (let i = minDecimals || 4; i < 17; i++)\n if (n.gte(Math.pow(10, -i)))\n return n.toFormat(\n Math.min(maxI, Math.min(maxDecimals || 100, Math.max(minDecimals || 0, i))),\n roundingMode,\n );\n if (n.isEqualTo(0)) return '0';\n\n return n.toFormat(\n Math.min(maxI, Math.min(maxDecimals || 100, Math.max(minDecimals || 0, 8))),\n roundingMode,\n );\n};\n\nexport const convertBigNumberToHex = (value: BigNumber, decimals: number): string => {\n return '0x' + value.shiftedBy(decimals).toString(16);\n};\n\nexport const uint8ArrayToHex = (buffer: Uint8Array): string => {\n // buffer is an ArrayBuffer\n return [...buffer].map((x) => x.toString(16).padStart(2, '0')).join('');\n};\n\nexport function dollarToConciseString(num: number | undefined): string {\n if (!num) return '-';\n if (num < 1) return ' < 1$';\n if (num < 1000) return numberToString(new BigNumber(num)) + '$';\n if (num < 10_000) return parseInt((num / 100).toString()) / 10 + 'K';\n if (num < 1_000_000) return parseInt((num / 1000).toString()) + 'K';\n if (num < 100_000_000) return parseInt((num / 100000).toString()) / 10 + 'M';\n return parseInt((num / 1000000).toString()) + 'M';\n}\n\nexport function removeExtraDecimals(num: string, maxDecimals: number): string {\n try {\n if (!num.includes('.')) return num;\n const [b, f] = num.split('.');\n if (f && f.length > maxDecimals) {\n return `${b}.${f.substring(0, maxDecimals)}`;\n }\n return num;\n } catch (e) {\n return num;\n }\n}\n","import {\n SimulationAssetAndAmount,\n SimulationValidationStatus,\n} from '@rango-dev/ui/dist/types/swaps';\nimport BigNumber from 'bignumber.js';\nimport { BestRouteResponse } from 'rango-sdk';\nimport { ZERO } from '../constants/numbers';\nimport { numberToString } from './numbers';\nimport { SelectedWallet } from './wallets';\n\nexport const getBestRouteToTokenUsdPrice = (\n bestRoute: BestRouteResponse | null,\n): number | null | undefined =>\n bestRoute?.result?.swaps[bestRoute?.result?.swaps.length - 1].to.usdPrice;\n\nexport type RouteChangeStatus = {\n isChanged: boolean;\n warningMessage?: string;\n};\n\nexport const compareRoutes = (\n route1: BestRouteResponse,\n route2: BestRouteResponse,\n inputAmount: string,\n fromTokenUsdPrice: number | null,\n toTokenUsdPrice: number | null,\n): RouteChangeStatus => {\n let outUsdValue: BigNumber = (\n new BigNumber(route2.result?.outputAmount || '0') || ZERO\n ).multipliedBy(toTokenUsdPrice || 0);\n if (outUsdValue.isNaN()) outUsdValue = ZERO;\n let inUsdValue: BigNumber = new BigNumber(inputAmount || '0').multipliedBy(\n fromTokenUsdPrice || 0,\n );\n if (inUsdValue.isNaN()) inUsdValue = ZERO;\n const outToInRatio =\n inUsdValue === null || inUsdValue.lte(ZERO)\n ? 0\n : outUsdValue === null || outUsdValue.lte(ZERO)\n ? 0\n : outUsdValue.div(inUsdValue).minus(1).multipliedBy(100);\n const disableSwapButton =\n (parseInt(outToInRatio?.toFixed(2) || '0') <= -10 &&\n (inUsdValue === null || inUsdValue.gte(new BigNumber(400)))) ||\n (parseInt(outToInRatio?.toFixed(2) || '0') <= -5 &&\n (inUsdValue === null || inUsdValue.gte(new BigNumber(1000))));\n\n if (disableSwapButton) {\n return {\n isChanged: true,\n warningMessage: 'Route updated and price impact is too high, try again later!',\n };\n }\n\n const out1 = route1.result?.outputAmount || null;\n const out2 = route2.result?.outputAmount || null;\n if (!!out1 && !!out2) {\n const changePercent = new BigNumber(out2).div(new BigNumber(out1)).minus(1).multipliedBy(100);\n if (changePercent.toNumber() <= -1) {\n return {\n isChanged: true,\n warningMessage: `Output amount changed to ${numberToString(out2)} \n (${numberToString(changePercent, null, 2)}% change).`,\n };\n }\n }\n const route1Swaps = route1.result?.swaps || [];\n const route2Swaps = route2.result?.swaps || [];\n if (route1Swaps.length !== route2Swaps.length)\n return { isChanged: true, warningMessage: 'Route has been updated.' };\n else {\n for (let i = 0; i < route1Swaps.length; i++) {\n if (route1Swaps[i].swapperId !== route2Swaps[i].swapperId)\n return { isChanged: true, warningMessage: 'Route swappers has been updated.' };\n else if (route1Swaps[i].to.symbol !== route2Swaps[i].to.symbol)\n return {\n isChanged: true,\n warningMessage: 'Route internal coins has been updated.',\n };\n }\n }\n return { isChanged: false };\n};\n\nexport const getOutToInRatio = (fromUsdValue: BigNumber | null, toUsdValue: BigNumber | null) =>\n fromUsdValue === null || fromUsdValue.lte(ZERO)\n ? 0\n : toUsdValue === null || toUsdValue.lte(ZERO)\n ? 0\n : toUsdValue.div(fromUsdValue).minus(1).multipliedBy(100);\n\nexport const outToRatioHasWarning = (fromUsdValue: BigNumber | null, outToInRatio: BigNumber | 0) =>\n (parseInt(outToInRatio?.toFixed(2) || '0') <= -10 &&\n (fromUsdValue === null || fromUsdValue.gte(new BigNumber(200)))) ||\n (parseInt(outToInRatio?.toFixed(2) || '0') <= -5 &&\n (fromUsdValue === null || fromUsdValue.gte(new BigNumber(1000))));\n\nexport const getRequiredBalanceOfWallet = (\n wallet: SelectedWallet,\n fee: SimulationValidationStatus[] | null,\n): SimulationAssetAndAmount[] | null => {\n if (fee === null) return null;\n const relatedFeeStatus = fee\n ?.find((item) => item.blockchain === wallet.chain)\n ?.wallets.find((it) => it.address?.toLowerCase() === wallet.address.toLowerCase());\n if (!relatedFeeStatus) return null;\n return relatedFeeStatus.requiredAssets;\n};\n","import { StoreApi, UseBoundStore } from 'zustand';\n\ntype State = object;\n\ntype WithSelectors<S> = S extends { getState: () => infer T }\n ? S & { use: { [K in keyof T]: () => T[K] } }\n : never;\n\nconst createSelectors = <S extends UseBoundStore<StoreApi<State>>>(_store: S) => {\n let store = _store as WithSelectors<typeof _store>;\n store.use = {};\n for (let k of Object.keys(store.getState())) {\n (store.use as any)[k] = () => store((s) => s[k as keyof typeof s]);\n }\n\n return store;\n};\n\nexport default createSelectors;\n","import { BestRouteResponse, BlockchainMeta } from 'rango-sdk';\nimport { Token } from 'rango-sdk/lib';\nimport { create } from 'zustand';\nimport { immer } from 'zustand/middleware/immer';\nimport BigNumber from 'bignumber.js';\nimport { ZERO } from '../constants/numbers';\nimport { getBestRouteToTokenUsdPrice } from '../utils/routing';\nimport createSelectors from './selectors';\n\nconst getUsdValue = (token: Token | null, amount: string) =>\n new BigNumber(amount || ZERO).multipliedBy(token?.usdPrice || 0);\n\ninterface RouteState {\n fromChain: BlockchainMeta | null;\n toChain: BlockchainMeta | null;\n inputAmount: string;\n inputUsdValue: BigNumber;\n outputAmount: BigNumber | null;\n outputUsdValue: BigNumber;\n fromToken: Token | null;\n toToken: Token | null;\n setFromChain: (chain: BlockchainMeta | null) => void;\n setToChain: (chian: BlockchainMeta | null) => void;\n setFromToken: (token: Token | null) => void;\n setToToken: (token: Token | null) => void;\n setInputAmount: (amount: string) => void;\n bestRoute: BestRouteResponse | null;\n setBestRoute: (bestRoute: BestRouteResponse | null) => void;\n}\n\nexport const useBestRouteStore = createSelectors(\n create<RouteState>()(\n immer((set) => ({\n fromChain: null,\n fromToken: null,\n inputAmount: '',\n outputAmount: null,\n inputUsdValue: new BigNumber(0),\n outputUsdValue: new BigNumber(0),\n toChain: null,\n toToken: null,\n bestRoute: null,\n setBestRoute: (bestRoute) =>\n set((state) => {\n state.bestRoute = bestRoute;\n if (!!bestRoute) {\n const outputAmount = !!bestRoute.result?.outputAmount\n ? new BigNumber(bestRoute.result?.outputAmount)\n : null;\n state.outputAmount = outputAmount;\n state.outputUsdValue = new BigNumber(outputAmount || ZERO).multipliedBy(\n getBestRouteToTokenUsdPrice(bestRoute) || state.toToken?.usdPrice || 0,\n );\n }\n }),\n setFromChain: (chain) =>\n set((state) => {\n state.fromChain = chain;\n }),\n setFromToken: (token) =>\n set((state) => {\n state.fromToken = token;\n if (!!state.inputAmount)\n state.inputUsdValue = getUsdValue(state.fromToken!, state.inputAmount);\n }),\n setToChain: (chain) =>\n set((state) => {\n state.toChain = chain;\n }),\n setToToken: (token) =>\n set((state) => {\n state.toToken = token;\n }),\n setInputAmount: (amount) =>\n set((state) => {\n state.inputAmount = amount;\n if (!!state.fromToken)\n state.inputUsdValue = getUsdValue(state.fromToken, state.inputAmount);\n }),\n })),\n ),\n);\n","import { RangoClient } from 'rango-sdk';\n\nexport const httpService = new RangoClient(process.env.REACT_API_KEY as string);\n","export function removeDuplicateFrom<T>(array: T[]): T[] {\n return Array.from(new Set(array));\n}\n","import { create } from 'zustand';\nimport { MetaResponse } from 'rango-sdk';\nimport { httpService } from '../services/httpService';\nimport createSelectors from './selectors';\nimport { removeDuplicateFrom } from '../utils/common';\n\nexport type LoadingStatus = 'loading' | 'success' | 'failed';\n\nexport interface MetaState {\n meta: MetaResponse;\n loadingStatus: LoadingStatus;\n fetchMeta: () => Promise<void>;\n}\n\nexport const useMetaStore = createSelectors(\n create<MetaState>()((set) => ({\n meta: { blockchains: [], popularTokens: [], swappers: [], tokens: [] },\n loadingStatus: 'loading',\n fetchMeta: async () => {\n try {\n const response = await httpService.getAllMetadata();\n const chainThatHasTokenInMetaResponse = removeDuplicateFrom(\n response.tokens.map((t) => t.blockchain),\n );\n const enabledChains = response.blockchains.filter(\n (chain) => chain.enabled && chainThatHasTokenInMetaResponse.includes(chain.name),\n );\n response.blockchains = enabledChains.sort((a, b) => a.sort - b.sort);\n set({ meta: response, loadingStatus: 'success' });\n } catch (error) {\n set({ loadingStatus: 'failed' });\n }\n },\n })),\n);\n","export enum SearchParams {\n 'FROM_CHAIN' = 'fromChain',\n 'FROM_TOKEN' = 'fromToken',\n 'TO_CHAIN' = 'toChain',\n 'TO_TOKEN' = 'toToken',\n 'FROM_AMOUNT' = 'fromAmount',\n}\n","import { Token } from 'rango-sdk';\nimport { useEffect, useRef } from 'react';\nimport { useLocation, useSearchParams } from 'react-router-dom';\nimport { useBestRouteStore } from '../store/bestRoute';\nimport { useMetaStore } from '../store/meta';\nimport { SearchParams } from '../constants/searchParams';\n\nfunction searchParamsToToken(tokens: Token[], searchParams: string | null): Token | null {\n return (\n tokens.find((token) => {\n const symbolAndAddress = searchParams?.split('--');\n if (symbolAndAddress?.length === 1)\n return token.symbol === symbolAndAddress[0] && token.address === null;\n return token.symbol === symbolAndAddress?.[0] && token.address === symbolAndAddress?.[1];\n }) || null\n );\n}\n\nexport function UpdateUrl() {\n const firstRender = useRef(true);\n const [searchParams, setSearchParams] = useSearchParams();\n const location = useLocation();\n\n const fromChain = useBestRouteStore.use.fromChain();\n const toChain = useBestRouteStore.use.toChain();\n const fromToken = useBestRouteStore.use.fromToken();\n const toToken = useBestRouteStore.use.toToken();\n const setFromChain = useBestRouteStore.use.setFromChain();\n const setFromToken = useBestRouteStore.use.setFromToken();\n const setToChain = useBestRouteStore.use.setToChain();\n const setToToken = useBestRouteStore.use.setToToken();\n const inputAmount = useBestRouteStore.use.inputAmount();\n const setInputAmount = useBestRouteStore.use.setInputAmount();\n const loadingStatus = useMetaStore.use.loadingStatus();\n const { blockchains, tokens } = useMetaStore.use.meta();\n\n useEffect(() => {\n if (!firstRender.current) {\n const fromChainString = fromChain?.name || '';\n const fromTokenString =\n (fromToken?.symbol || '') + (fromToken?.address ? `--${fromToken?.address}` : '');\n const toChainString = toChain?.name || '';\n const toTokenString =\n (toToken?.symbol || '') + (toToken?.address ? `--${toToken?.address}` : '');\n const fromAmount = inputAmount;\n\n setSearchParams(\n {\n ...(fromChainString && { [SearchParams.FROM_CHAIN]: fromChainString }),\n ...(fromTokenString && { [SearchParams.FROM_TOKEN]: fromTokenString }),\n ...(toChainString && { [SearchParams.TO_CHAIN]: toChainString }),\n ...(toTokenString && { [SearchParams.TO_TOKEN]: toTokenString }),\n ...(fromAmount && { [SearchParams.FROM_AMOUNT]: fromAmount.toString() }),\n },\n { replace: true },\n );\n }\n firstRender.current = false;\n }, [location.pathname, inputAmount]);\n\n useEffect(() => {\n if (loadingStatus === 'success') {\n const fronChainString = searchParams.get(SearchParams.FROM_CHAIN);\n const fromTokenString = searchParams.get(SearchParams.FROM_TOKEN);\n const toChainString = searchParams.get(SearchParams.TO_CHAIN);\n const toTokenString = searchParams.get(SearchParams.TO_TOKEN);\n const fromAmount = searchParams.get(SearchParams.FROM_AMOUNT);\n const fromChain = blockchains.find((blockchain) => blockchain.name === fronChainString);\n const fromToken = searchParamsToToken(tokens, fromTokenString);\n const toChain = blockchains.find((blockchain) => blockchain.name === toChainString);\n const toToken = searchParamsToToken(tokens, toTokenString);\n if (!!fromChain) {\n setFromChain(fromChain);\n if (!!fromToken) setFromToken(fromToken);\n }\n if (!!toChain) {\n setToChain(toChain);\n if (!!toToken) setToToken(toToken);\n }\n if (fromAmount) setInputAmount(fromAmount);\n }\n }, [loadingStatus]);\n\n return null;\n}\n","import React, { Fragment, PropsWithChildren } from 'react';\nimport { MemoryRouter, useInRouterContext } from 'react-router';\nimport { UpdateUrl } from './UpdateUrl';\n\nexport function AppRouter({ children }: PropsWithChildren) {\n const isRouterInContext = useInRouterContext();\n const Router = isRouterInContext ? Fragment : MemoryRouter;\n\n return (\n <>\n <Router>{children}</Router>\n {isRouterInContext && <UpdateUrl />}\n </>\n );\n}\n","import {\n isEvmAddress,\n Network,\n WalletInfo,\n WalletState,\n WalletType,\n} from '@rango-dev/wallets-shared';\n\nimport { WalletInfo as ModalWalletInfo, WalletState as WalletStatus } from '@rango-dev/ui';\nimport { BestRouteResponse, BlockchainMeta, Token, WalletDetail } from 'rango-sdk';\nimport { readAccountAddress } from '@rango-dev/wallets-core';\nimport { SelectableWallet } from '../pages/ConfirmWalletsPage';\nimport { Account, Balance, TokenBalance } from '../store/wallets';\nimport { numberToString } from './numbers';\nimport BigNumber from 'bignumber.js';\nimport { TokenWithBalance } from '../pages/SelectTokenPage';\nimport { ZERO } from '../constants/numbers';\n\nexport function getStateWallet(state: WalletState): WalletStatus {\n switch (true) {\n case state.connected:\n return WalletStatus.CONNECTED;\n case state.connecting:\n return WalletStatus.CONNECTING;\n case !state.installed:\n return WalletStatus.NOT_INSTALLED;\n default:\n return WalletStatus.DISCONNECTED;\n }\n}\n\n export const excludedWallets = [\n WalletType.UNKNOWN,\n WalletType.TERRA_STATION,\n WalletType.LEAP,\n ];\n\nexport function getlistWallet(\n getState: (type: WalletType) => WalletState,\n getWalletInfo: (type: WalletType) => WalletInfo,\n list: WalletType[],\n): ModalWalletInfo[] {\n const excludedWallets = [WalletType.UNKNOWN, WalletType.TERRA_STATION, WalletType.LEAP];\n\n return list\n .filter((wallet) => !excludedWallets.includes(wallet))\n .map((type) => {\n const { name, img: image, installLink } = getWalletInfo(type);\n const state = getStateWallet(getState(type));\n return {\n name,\n image,\n installLink,\n state,\n type,\n };\n });\n}\n\nexport function walletAndSupportedChainsNames(supportedChains: BlockchainMeta[]): Network[] | null {\n if (!supportedChains) return null;\n let walletAndSupportedChainsNames: Network[] = [];\n walletAndSupportedChainsNames = supportedChains.map(\n (blockchainMeta) => blockchainMeta.name as Network,\n );\n\n return walletAndSupportedChainsNames;\n}\n\nexport function prepareAccountsForWalletStore(\n wallet: WalletType,\n accounts: string[],\n evmBasedChains: string[],\n supportedChainNames: Network[] | null,\n): Account[] {\n const result: Account[] = [];\n\n function addAccount(network: Network, address: string) {\n const newAccount: Account = {\n address,\n chain: network,\n walletType: wallet,\n };\n\n result.push(newAccount);\n }\n\n const supportedChains = supportedChainNames || [];\n\n accounts.forEach((account) => {\n const { address, network } = readAccountAddress(account);\n\n const hasLimitation = supportedChains.length > 0;\n const isSupported = supportedChains.includes(network);\n const isUnknown = network === Network.Unknown;\n const notSupportedNetworkByWallet = hasLimitation && !isSupported && !isUnknown;\n\n // Here we check given `network` is not supported by wallet\n // And also the network is known.\n if (notSupportedNetworkByWallet) return;\n\n // In some cases we can handle unknown network by checking its address\n // pattern and act on it.\n // Example: showing our evm compatible netwrok when the uknown network is evem.\n // Otherwise, we stop executing this function.\n const isUknownAndEvmBased = network === Network.Unknown && isEvmAddress(address);\n if (isUnknown && !isUknownAndEvmBased) return;\n\n const isEvmBasedChain = evmBasedChains.includes(network);\n\n // If it's an evm network, we will add the address to all the evm chains.\n if (isEvmBasedChain || isUknownAndEvmBased) {\n // all evm chains are not supported in wallets, so we are adding\n // only to those that are supported by wallet.\n const evmChainsSupportedByWallet = supportedChains.filter((chain) =>\n evmBasedChains.includes(chain),\n );\n\n evmChainsSupportedByWallet.forEach((network) => {\n // EVM addresses are not case sensetive.\n // Some wallets like Binance-chain return some letters in uppercase which produces bugs in our wallet state.\n addAccount(network, address.toLowerCase());\n });\n } else {\n addAccount(network, address);\n }\n });\n\n return result;\n}\n\nexport function getRequiredChains(route: BestRouteResponse | null) {\n const wallets: string[] = [];\n\n route?.result?.swaps.forEach((swap) => {\n const currentStepFromBlockchain = swap.from.blockchain;\n const currentStepToBlockchain = swap.to.blockchain;\n let lastAddedWallet = wallets[wallets.length - 1];\n if (currentStepFromBlockchain != lastAddedWallet) wallets.push(currentStepFromBlockchain);\n lastAddedWallet = wallets[wallets.length - 1];\n if (currentStepToBlockchain != lastAddedWallet) wallets.push(currentStepToBlockchain);\n });\n return wallets;\n}\n\nexport interface SelectedWallet extends Account {}\ntype Blockchain = { name: string; accounts: Balance[] };\n\nexport function getSelectableWallets(\n accounts: Account[],\n selectedWallets: SelectedWallet[],\n getWalletInfo: (type: WalletType) => WalletInfo,\n requiredChains?: string[],\n) {\n const connectedWallets: SelectableWallet[] = accounts.map((account) => ({\n address: account.address,\n walletType: account.walletType,\n chain: account.chain,\n image: getWalletInfo(account.walletType).img,\n name: getWalletInfo(account.walletType).name,\n selected: !!selectedWallets.find(\n (wallet) => wallet.chain === account.chain && wallet.walletType === account.walletType,\n ),\n }));\n\n return requiredChains\n ? connectedWallets.filter((wallet) => requiredChains.includes(wallet.chain))\n : removeDuplicateWallets(connectedWallets, 'walletType');\n}\n\nconst removeDuplicateWallets = (arr: SelectableWallet[], key: string): SelectableWallet[] => {\n return [...new Map(arr.map((item) => [item[key], item])).values()];\n};\n\nexport function getBalanceFromWallet(\n balances: Balance[],\n chain: string,\n symbol: string,\n address: string | null,\n): TokenBalance | null {\n if (balances.length === 0) return null;\n\n const selectedChainBalances = balances.filter((balance) => balance.chain === chain);\n if (selectedChainBalances.length === 0) return null;\n\n return (\n selectedChainBalances\n .map(\n (a) =>\n a.balances?.find(\n (bl) =>\n (address !== null && bl.address === address) ||\n (address === null && bl.address === address && bl.symbol === symbol),\n ) || null,\n )\n .filter((b) => b !== null)\n .sort((a, b) => parseFloat(b?.amount || '0') - parseFloat(a?.amount || '1'))\n .find(() => true) || null\n );\n}\n\nexport function isAccountAndBalanceMatched(account: Account, balance: Balance) {\n return (\n account.address === balance.address &&\n account.chain === balance.chain &&\n account.walletType === balance.walletType\n );\n}\n\nexport function makeBalanceFor(\n account: Account,\n retrivedBalance: WalletDetail,\n tokens: Token[],\n): Balance {\n const { address, blockChain: chain, explorerUrl, balances = [] } = retrivedBalance;\n return {\n address,\n chain,\n loading: false,\n error: false,\n explorerUrl,\n walletType: account.walletType,\n balances:\n balances?.map((tokenBalance) => ({\n chain,\n symbol: tokenBalance.asset.symbol,\n ticker: tokenBalance.asset.symbol,\n address: tokenBalance.asset.address || null,\n rawAmount: tokenBalance.amount.amount,\n decimal: tokenBalance.amount.decimals,\n amount: new BigNumber(tokenBalance.amount.amount)\n .shiftedBy(-tokenBalance.amount.decimals)\n .toFixed(),\n logo: '',\n usdPrice:\n getUsdPrice(chain, tokenBalance.asset.symbol, tokenBalance.asset.address, tokens) || null,\n })) || [],\n };\n}\n\nexport function resetBalanceState(balance: Balance): Balance {\n return { ...balance, loading: false, error: true };\n}\n\nexport const calculateWalletUsdValue = (balance: Balance[]) => {\n const uniqueAccountAddresses = new Set<string | null>();\n const uniqueBalane: Balance[] = balance?.reduce((acc: Balance[], current: Balance) => {\n return acc.findIndex((i) => i.address === current.address && i.chain === current.chain) === -1\n ? [...acc, current]\n : acc;\n }, []);\n\n const modifiedWalletBlockchains = uniqueBalane?.map((chain) => {\n const modifiedWalletBlockchain: Blockchain = { name: chain.chain, accounts: [] };\n if (!uniqueAccountAddresses.has(chain.address)) {\n uniqueAccountAddresses.add(chain.address);\n }\n uniqueAccountAddresses.forEach((accountAddress) => {\n if (chain.address === accountAddress) modifiedWalletBlockchain.accounts.push(chain);\n });\n return modifiedWalletBlockchain;\n });\n const total = numberToString(\n modifiedWalletBlockchains\n ?.flatMap((b) => b.accounts)\n ?.flatMap((a) => a?.balances)\n ?.map((b) => new BigNumber(b?.amount || ZERO).multipliedBy(b?.usdPrice || 0))\n ?.reduce((a, b) => a.plus(b), ZERO) || ZERO,\n ).toString();\n\n console.log('total');\n console.log(total);\n\n return numberWithThousandSeperator(total);\n};\n\nfunction numberWithThousandSeperator(number: string | number): string {\n var parts = number.toString().split('.');\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n return parts.join('.');\n}\n\nexport const sortedTokens = (\n tokens: TokenWithBalance[],\n position: 'from' | 'to',\n balance: Balance[],\n): TokenWithBalance[] => {\n if (!tokens) return [];\n const walletSymbols = new Set(\n (balance || [])\n .flatMap((a) => a.balances || [])\n .filter((b) => (new BigNumber(b?.rawAmount) || ZERO).gt(0))\n .map((b) => `${b?.chain}.${b?.symbol}.${b?.address}`),\n );\n let sortedList = [\n ...tokens.filter((t) => !t.address && walletSymbols.size && position === 'to'),\n ...tokens\n .filter(\n (t) =>\n !(position === 'to' && !t.address) &&\n walletSymbols.has(`${t.blockchain}.${t.symbol}.${t.address}`),\n )\n .sort((tokenA, tokenB) => compareBalance(tokenA, tokenB, balance)),\n ...tokens.filter(\n (t) =>\n !walletSymbols.has(`${t.blockchain}.${t.symbol}.${t.address}`) &&\n !t.address &&\n (!walletSymbols.size || position === 'from'),\n ),\n ...tokens.filter(\n (t) =>\n !walletSymbols.has(`${t.blockchain}.${t.symbol}.${t.address}`) &&\n t.address &&\n !t.isSecondaryCoin,\n ),\n ...tokens.filter(\n (t) => !walletSymbols.has(`${t.blockchain}.${t.symbol}.${t.address}`) && t.isSecondaryCoin,\n ),\n ];\n\n return sortedList;\n};\n\nconst compareBalance = (\n tokenA: TokenWithBalance,\n tokenB: TokenWithBalance,\n wallet: Balance[],\n): number => {\n if (!tokenA.usdPrice || !tokenB.usdPrice) return 0;\n\n const tokenAUsdValue = new BigNumber(\n getBalanceFromWallet(wallet, tokenA.blockchain, tokenA.symbol, tokenA.address)?.amount || ZERO,\n ).multipliedBy(tokenA.usdPrice);\n const tokenBUsdValue = new BigNumber(\n getBalanceFromWallet(wallet, tokenB.blockchain, tokenB.symbol, tokenB.address)?.amount || ZERO,\n ).multipliedBy(tokenB.usdPrice);\n if (tokenAUsdValue.gt(tokenBUsdValue)) return -1;\n return 1;\n};\n\nexport const getUsdPrice = (\n blockchain: string,\n symbol: string,\n address: string | null,\n allTokens: Token[],\n): number | null => {\n const token = allTokens?.find(\n (t) =>\n t.blockchain === blockchain &&\n t.symbol?.toUpperCase() === symbol?.toUpperCase() &&\n t.address === address,\n );\n return token?.usdPrice || null;\n};","import { WalletType } from '@rango-dev/wallets-shared';\nimport { create } from 'zustand';\nimport { SelectableWallet } from '../pages/ConfirmWalletsPage';\nimport { httpService } from '../services/httpService';\nimport {\n getRequiredChains,\n isAccountAndBalanceMatched,\n makeBalanceFor,\n resetBalanceState,\n SelectedWallet,\n} from '../utils/wallets';\nimport { useBestRouteStore } from './bestRoute';\nimport { useMetaStore } from './meta';\nimport createSelectors from './selectors';\n\nexport interface Account {\n chain: string;\n address: string;\n walletType: WalletType;\n}\n\nexport type TokenBalance = {\n chain: string;\n symbol: string;\n ticker: string;\n address: string | null;\n rawAmount: string;\n decimal: number | null;\n amount: string;\n logo: string | null;\n usdPrice: number | null;\n};\n\nexport interface Balance {\n balances: TokenBalance[] | null;\n address: string;\n chain: string;\n loading: boolean;\n walletType: WalletType;\n error: boolean;\n explorerUrl: string | null;\n}\n\ninterface WalletsStore {\n accounts: Account[];\n balances: Balance[];\n selectedWallets: SelectedWallet[];\n connectWallet: (accounts: Account[]) => void;\n disconnectWallet: (walletType: WalletType) => void;\n initSelectedWallets: () => void;\n setSelectedWallet: (wallet: SelectableWallet) => void;\n}\n\nexport const useWalletsStore = createSelectors(\n create<WalletsStore>()((set) => ({\n accounts: [],\n balances: [],\n selectedWallets: [],\n connectWallet: (accounts) => {\n const tokens = useMetaStore.getState().meta.tokens;\n\n set((state) => ({\n accounts: state.accounts.concat(accounts),\n balances: state.balances.concat(\n accounts.map((account) => ({\n balances: [],\n address: account.address,\n chain: account.chain,\n loading: true,\n walletType: account.walletType,\n error: false,\n explorerUrl: null,\n })),\n ),\n }));\n accounts.forEach(async (account) => {\n try {\n const response = await httpService.getWalletsDetails([\n { address: account.address, blockchain: account.chain },\n ]);\n const retrivedBalance = response.wallets[0];\n if (retrivedBalance) {\n set((state) => ({\n balances: state.balances.map((balance) => {\n return isAccountAndBalanceMatched(account, balance)\n ? makeBalanceFor(account, retrivedBalance, tokens)\n : balance;\n }),\n }));\n } else throw new Error('Wallet not found');\n } catch (error) {\n set((state) => ({\n balances: state.balances.map((balance) => {\n return isAccountAndBalanceMatched(account, balance)\n ? resetBalanceState(balance)\n : balance;\n }),\n }));\n }\n });\n },\n disconnectWallet: (walletType) => {\n set((state) => ({\n accounts: state.accounts.filter((account) => account.walletType !== walletType),\n balances: state.balances.filter((balance) => balance.walletType !== walletType),\n selectedWallets: state.selectedWallets.filter((wallet) => wallet.walletType != walletType),\n }));\n },\n initSelectedWallets: () =>\n set((state) => {\n const requiredChains = getRequiredChains(useBestRouteStore.getState().bestRoute);\n const connectedWallets = state.accounts;\n const selectedWallets: SelectedWallet[] = [];\n requiredChains.forEach((chain) => {\n const anyWalletSelected = !!state.selectedWallets.find(\n (wallet) => wallet.chain === chain,\n );\n if (!anyWalletSelected) {\n const firstWalletWithMatchedChain = connectedWallets.find(\n (wallet) => wallet.chain === chain,\n );\n if (!!firstWalletWithMatchedChain)\n selectedWallets.push({\n address: firstWalletWithMatchedChain.address,\n chain: firstWalletWithMatchedChain.chain,\n walletType: firstWalletWithMatchedChain.walletType,\n });\n }\n });\n return { selectedWallets: state.selectedWallets.concat(selectedWallets) };\n }),\n setSelectedWallet: (wallet) =>\n set((state) => ({\n selectedWallets: state.selectedWallets\n .filter((selectedWallet) => selectedWallet.chain !== wallet.chain)\n .concat({\n chain: wallet.chain,\n address: wallet.address,\n walletType: wallet.walletType,\n }),\n })),\n })),\n);\n","export const navigationRoutes = {\n home: '/',\n fromChain: '/from-chain',\n fromToken: '/from-token',\n toChain: '/to-chain',\n toToken: '/to-token',\n settings: '/settings',\n liquiditySources: '/liquidity-sources',\n history: '/history',\n wallets: '/wallets',\n confirmSwap: '/confirm-swap',\n confirmWallets: '/confirm-wallets',\n swapDetails: '/swap-details',\n};\n","import { create } from 'zustand';\nimport { persist } from 'zustand/middleware';\nimport { immer } from 'zustand/middleware/immer';\nimport { useMetaStore } from './meta';\nimport createSelectors from './selectors';\n\ntype Theme = 'auto' | 'dark' | 'light';\n\ninterface Settings {\n slippage: number;\n customSlippage: number | null;\n infinitApprove: boolean;\n disabledLiquiditySources: string[];\n theme: Theme;\n setSlippage: (slippage: number) => void;\n setCustomSlippage: (customSlippage: number | null) => void;\n toggleInfinitApprove: () => void;\n toggleLiquiditySource: (name: string) => void;\n setTheme: (theme: Theme) => void;\n toggleAllLiquiditySources: () => void;\n}\n\nexport const useSettingsStore = createSelectors(\n create<Settings>()(\n persist(\n immer((set) => ({\n slippage: 1,\n customSlippage: null,\n infinitApprove: false,\n disabledLiquiditySources: [],\n theme: 'auto',\n setSlippage: (slippage) =>\n set((state) => {\n state.slippage = slippage;\n }),\n setCustomSlippage: (customSlippage) => {\n return set((state) => {\n state.customSlippage = customSlippage;\n });\n },\n toggleAllLiquiditySources: () =>\n set((state) => {\n const { swappers } = useMetaStore.getState().meta;\n\n if (swappers.length - state.disabledLiquiditySources.length === 0)\n state.disabledLiquiditySources = [];\n else {\n const allSwappers = swappers.map((swapper) => swapper.swapperGroup);\n state.disabledLiquiditySources = allSwappers;\n }\n }),\n toggleInfinitApprove: () =>\n set((state) => {\n state.infinitApprove = !state.infinitApprove;\n }),\n toggleLiquiditySource: (name) =>\n set((state) => {\n state.disabledLiquiditySources = state.disabledLiquiditySources.includes(name)\n ? state.disabledLiquiditySources.filter((liquiditySource) => liquiditySource != name)\n : state.disabledLiquiditySources.concat(name);\n }),\n setTheme: (theme) =>\n set((state) => {\n state.theme = theme;\n }),\n })),\n {\n name: 'user-settings',\n },\n ),\n ),\n);\n","import { PendingSwap } from '@rango-dev/ui/dist/containers/History/types';\nimport { WalletTypeAndAddress, SwapSavedSettings } from '@rango-dev/ui/dist/types/swaps';\nimport BigNumber from 'bignumber.js';\nimport { BestRouteResponse } from 'rango-sdk';\nimport { Account } from '../store/wallets';\nimport { ZERO } from '../constants/numbers';\n\nexport function getOutputRatio(inputUsdValue: BigNumber, outputUsdValue: BigNumber) {\n if (inputUsdValue.lte(ZERO) || outputUsdValue.lte(ZERO)) return 0;\n return outputUsdValue.div(inputUsdValue).minus(1).multipliedBy(100);\n}\n\nexport function outputRatioHasWarning(inputUsdValue: BigNumber, outputRatio: BigNumber | 0) {\n return (\n (parseInt(outputRatio.toFixed(2) || '0') <= -10 && inputUsdValue.gte(new BigNumber(400))) ||\n (parseInt(outputRatio.toFixed(2) || '0') <= -5 && inputUsdValue.gte(new BigNumber(1000)))\n );\n}\n\nexport function hasLimitError(bestRoute: BestRouteResponse | null): boolean {\n return (\n (bestRoute?.result?.swaps || []).filter((swap) => {\n const minimum = !!swap.fromAmountMinValue ? new BigNumber(swap.fromAmountMinValue) : null;\n const maximum = !!swap.fromAmountMaxValue ? new BigNumber(swap.fromAmountMaxValue) : null;\n const isExclusive = swap.fromAmountRestrictionType === 'EXCLUSIVE';\n if (isExclusive) {\n return minimum?.gte(swap.fromAmount) || maximum?.lte(swap.fromAmount);\n } else {\n return minimum?.gt(swap.fromAmount) || maximum?.lt(swap.fromAmount);\n }\n }).length > 0\n );\n}\n\nexport function getSwapButtonTitle(\n accounts: Account[],\n loading: boolean,\n hasLimitError: boolean,\n highValueLoss: boolean,\n priceImpactCanNotBeComputed: boolean,\n needsToWarnEthOnPath: boolean,\n): string {\n if (loading) return 'Finding Best Route...';\n\n if (accounts.length == 0) return 'Connect Wallet';\n else if (hasLimitError) return 'Limit Error';\n else if (highValueLoss) return 'Price impact is too high!';\n else if (priceImpactCanNotBeComputed) return 'USD price is unknown, price impact might be high!';\n else if (needsToWarnEthOnPath) return 'The route goes through Ethereum. Continue?';\n else return 'Swap';\n}\n\nexport function canComputePriceImpact(\n bestRoute: BestRouteResponse | null,\n inputAmount: string,\n inputUsdValue: BigNumber,\n outputUsdValue: BigNumber,\n) {\n return !(\n (inputUsdValue.lte(ZERO) || outputUsdValue.lte(ZERO)) &&\n !!bestRoute?.result &&\n !!inputAmount &&\n inputAmount !== '0' &&\n parseFloat(inputAmount || '0') !== 0\n );\n}\n\nexport function calculatePendingSwap(\n inputAmount: string,\n bestRoute: BestRouteResponse,\n wallets: { [p: string]: WalletTypeAndAddress },\n settings: SwapSavedSettings,\n validateBalanceOrFee: boolean,\n): PendingSwap {\n const simulationResult = bestRoute.result;\n if (!simulationResult) throw Error('Simulation result should not be null');\n\n return {\n creationTime: new Date().getTime().toString(),\n finishTime: null,\n requestId: bestRoute.requestId || '',\n inputAmount: inputAmount,\n wallets,\n status: 'running',\n isPaused: false,\n extraMessage: null,\n extraMessageSeverity: null,\n extraMessageDetail: null,\n extraMessageErrorCode: null,\n networkStatusExtraMessage: null,\n networkStatusExtraMessageDetail: null,\n lastNotificationTime: null,\n settings: settings,\n simulationResult: simulationResult,\n validateBalanceOrFee,\n //TODO: finalize PendingSwap type and remove ts-ignore\n //@ts-ignore\n steps:\n bestRoute.result?.swaps?.map((s, i) => ({\n id: i + 1,\n fromBlockchain: s.from.blockchain,\n fromSymbol: s.from.symbol,\n fromSymbolAddress: s.from.address,\n fromDecimals: s.from.decimals,\n fromAmountPrecision: s.fromAmountPrecision,\n fromAmountMinValue: s.fromAmountMinValue,\n fromAmountMaxValue: s.fromAmountMaxValue,\n toBlockchain: s.to.blockchain,\n fromLogo: s.from.logo,\n toSymbol: s.to.symbol,\n toSymbolAddress: s.to.address,\n toDecimals: s.to.decimals,\n toLogo: s.to.logo,\n startTransactionTime: new Date().getTime(),\n swapperId: s.swapperId,\n expectedOutputAmountHumanReadable: s.toAmount,\n outputAmount: null,\n status: 'created',\n networkStatus: null,\n executedTransactionId: null,\n externalTransactionId: null,\n explorerUrl: null,\n trackingCode: null,\n cosmosTransaction: null,\n solanaTransaction: null,\n starknetTransaction: null,\n starknetApprovalTransaction: null,\n tronTransaction: null,\n tronApprovalTransaction: null,\n evmTransaction: null,\n evmApprovalTransaction: null,\n transferTransaction: null,\n diagnosisUrl: null,\n internalSteps: null,\n fromBlockchainLogo: '',\n toBlockchainLogo: '',\n swapperLogo: '',\n swapperType: '',\n })) || [],\n };\n}\n\nexport function requiredWallets(route: BestRouteResponse | null) {\n const wallets: string[] = [];\n\n route?.result?.swaps.forEach((swap) => {\n const currentStepFromBlockchain = swap.from.blockchain;\n const currentStepToBlockchain = swap.to.blockchain;\n let lastAddedWallet = wallets[wallets.length - 1];\n if (currentStepFromBlockchain != lastAddedWallet) wallets.push(currentStepFromBlockchain);\n lastAddedWallet = wallets[wallets.length - 1];\n if (currentStepToBlockchain != lastAddedWallet) wallets.push(currentStepToBlockchain);\n });\n return wallets;\n}\n","import { PendingSwap } from '@rango-dev/ui/dist/containers/History/types';\nimport {\n BestRouteType,\n SimulationValidationStatus,\n SwapSavedSettings,\n} from '@rango-dev/ui/dist/types/swaps';\nimport { WalletType } from '@rango-dev/wallets-shared';\nimport BigNumber from 'bignumber.js';\nimport { BestRouteRequest, BestRouteResponse } from 'rango-sdk';\nimport { useState } from 'react';\nimport { httpService } from '../services/httpService';\nimport { useBestRouteStore } from '../store/bestRoute';\nimport { useSettingsStore } from '../store/settings';\nimport { useWalletsStore } from '../store/wallets';\nimport { compareRoutes, getRequiredBalanceOfWallet } from '../utils/routing';\nimport { calculatePendingSwap } from '../utils/swap';\nimport { SelectedWallet } from '../utils/wallets';\n\ntype CheckFeeAndBalanceResult =\n | {\n hasEnoughBalanceOrSlippage: { balance: boolean; slippage: boolean; routeChanged: boolean };\n bestRoute: BestRouteType;\n }\n | { bestRoute: null }\n | null;\n\nexport function useConfirmSwap() {\n const fromToken = useBestRouteStore.use.fromToken();\n const toToken = useBestRouteStore.use.toToken();\n const inputAmount = useBestRouteStore.use.inputAmount();\n const bestRoute = useBestRouteStore.use.bestRoute();\n const setBestRoute = useBestRouteStore.use.setBestRoute();\n const accounts = useWalletsStore.use.accounts();\n const selectedWallets = useWalletsStore.use.selectedWallets();\n\n const slippage = useSettingsStore.use.slippage();\n const disabledLiquiditySources = useSettingsStore.use.disabledLiquiditySources();\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState('');\n const [warning, setWarning] = useState('');\n const [data, setData] = useState<BestRouteResponse | null>(null);\n const [feeStatus, setFeeStatus] = useState<SimulationValidationStatus[] | null>(null);\n const [bestRouteChanged, setBestRouteChanged] = useState(false);\n const [enoughBalance, setEnoughBalance] = useState<boolean | null>(null);\n\n const hasEnoughBalanceOrProperSlippage = (\n route: BestRouteType,\n selectedWallets: SelectedWallet[],\n userSlippage: string,\n routeChanged: boolean,\n ): { balance: boolean; slippage: boolean; routeChanged: boolean } => {\n const fee = route.validationStatus;\n\n if (fee === null || fee.length === 0) return { balance: true, slippage: true, routeChanged };\n\n for (const wallet of selectedWallets) {\n const requiredAssets = getRequiredBalanceOfWallet(wallet, fee);\n if (!requiredAssets) continue;\n\n const hasEnoughBalance = requiredAssets?.map((it) => it.ok).reduce((a, b) => a && b);\n if (!hasEnoughBalance) return { balance: false, slippage: true, routeChanged };\n }\n\n const slippages = route.result?.swaps?.map((s) => s.recommendedSlippage);\n const slippageError = (slippages?.filter((s) => !!s?.error)?.length || 0) > 0;\n const minSlippage =\n slippages\n ?.map((s) => parseFloat(s?.slippage.toString() || '0') || 0)\n .filter((s) => s > 0)\n .sort((a, b) => b - a)\n .find(() => true) || null;\n if (slippageError) {\n setError('Server cannot calculated required slippage for your swap');\n return { balance: true, slippage: false, routeChanged };\n } else if (minSlippage !== null && minSlippage > parseFloat(userSlippage)) {\n setError(`Your slippage should be ${minSlippage} at least`);\n return { balance: true, slippage: false, routeChanged };\n }\n\n return { balance: true, slippage: true, routeChanged };\n };\n\n const checkFeeAndBalance = async (\n selectedWallets: SelectedWallet[],\n ): Promise<CheckFeeAndBalanceResult> => {\n setLoading(true);\n setFeeStatus(null);\n\n const selectedWalletsMap = selectedWallets.reduce(\n (selectedWalletsMap: BestRouteRequest['selectedWallets'], selectedWallet) => (\n (selectedWalletsMap[selectedWallet.chain] = selectedWallet.address), selectedWalletsMap\n ),\n {},\n );\n\n const connectedWallets: BestRouteRequest['connectedWallets'] = [];\n\n accounts.forEach((account) => {\n const chainAndAccounts = connectedWallets.find((wallet) => wallet.blockchain);\n if (!!chainAndAccounts) chainAndAccounts.addresses.push(account.address);\n else connectedWallets.push({ blockchain: account.chain, addresses: [account.address] });\n });\n\n const r = await httpService\n .getBestRoute({\n amount: inputAmount!.toString(),\n checkPrerequisites: true,\n from: {\n address: fromToken!.address,\n blockchain: fromToken!.blockchain,\n symbol: fromToken!.symbol,\n },\n to: {\n address: toToken!.address,\n blockchain: toToken!.blockchain,\n symbol: toToken!.symbol,\n },\n connectedWallets,\n selectedWallets: selectedWalletsMap,\n //@ts-ignore\n swapperGroups: disabledLiquiditySources,\n swappersGroupsExclude: true,\n })\n .catch((error) => {\n setError(error.message);\n setLoading(false);\n });\n setLoading(false);\n if (!r || !r.result || !bestRoute) return { bestRoute: null };\n if (!new BigNumber(r.requestAmount).isEqualTo(new BigNumber(inputAmount || '-1'))) return null;\n setFeeStatus(r.validationStatus);\n const routeChangeStatus = compareRoutes(\n bestRoute,\n r,\n inputAmount!.toString(),\n fromToken!.usdPrice,\n toToken!.usdPrice,\n );\n setBestRoute(r);\n const isChanged = routeChangeStatus.isChanged;\n const changeWarningMessage = routeChangeStatus.warningMessage;\n setBestRouteChanged(isChanged);\n setWarning('Best route changed');\n setData(r);\n return {\n hasEnoughBalanceOrSlippage: hasEnoughBalanceOrProperSlippage(\n r,\n selectedWallets,\n slippage.toString(),\n isChanged,\n ),\n bestRoute: r,\n };\n };\n\n const swap = () => {\n if (!bestRoute) return;\n if (inputAmount!.toString() === '') return;\n const wallets = selectedWallets.reduce(\n (\n selectedWalletsMap: { [p: string]: { address: string; walletType: WalletType } },\n selectedWallet,\n ) => (\n (selectedWalletsMap[selectedWallet.chain] = {\n address: selectedWallet.address,\n walletType: selectedWallet.walletType,\n }),\n selectedWalletsMap\n ),\n {},\n );\n\n const proceedAnyway = enoughBalance !== null;\n\n const settings: SwapSavedSettings = {\n slippage: slippage.toString(),\n disabledSwappersGroups: ['Osmosis'],\n disabledSwappersIds: [],\n };\n if (proceedAnyway) {\n const newSwap: PendingSwap = calculatePendingSwap(\n inputAmount!.toString(),\n bestRoute,\n wallets,\n settings,\n false,\n );\n }\n\n !proceedAnyway &&\n checkFeeAndBalance(selectedWallets)\n .then((data) => {\n if (!data) {\n setError('confirm swap error');\n return;\n }\n\n if (!data.bestRoute) {\n setError('confirm swap error');\n return;\n } else {\n const { hasEnoughBalanceOrSlippage, bestRoute: newBestRoute } = data;\n if (!hasEnoughBalanceOrSlippage) {\n return;\n }\n\n setEnoughBalance(\n hasEnoughBalanceOrSlippage.balance && hasEnoughBalanceOrSlippage.slippage,\n );\n\n if (\n hasEnoughBalanceOrSlippage.balance &&\n hasEnoughBalanceOrSlippage.slippage &&\n !hasEnoughBalanceOrSlippage.routeChanged\n ) {\n const newSwap: PendingSwap = calculatePendingSwap(\n inputAmount!.toString(),\n newBestRoute,\n wallets,\n settings,\n true,\n );\n } else if (!hasEnoughBalanceOrSlippage.balance) {\n setError('not enough balance');\n }\n }\n })\n .catch((error) => {\n console.log('unexpected error', error);\n });\n };\n\n return { loading, error, data, warning, feeStatus, bestRouteChanged, enoughBalance, swap };\n}\n","import React from 'react';\nimport { ConfirmSwap } from '@rango-dev/ui';\nimport { useNavigate } from 'react-router-dom';\nimport { useBestRouteStore } from '../store/bestRoute';\nimport { useConfirmSwap } from '../hooks/useConfirmSwap';\n\nexport function ConfirmSwapPage() {\n const navigate = useNavigate();\n\n const bestRoute = useBestRouteStore.use.bestRoute();\n\n const { error, loading, warning, swap } = useConfirmSwap();\n\n return (\n <ConfirmSwap\n onConfirm={swap.bind(null)}\n onBack={navigate.bind(null, -1)}\n bestRoute={bestRoute}\n loading={loading}\n error={error}\n warning={warning}\n />\n );\n}\n","import { History } from '@rango-dev/ui';\nimport { PendingSwap } from '@rango-dev/ui/dist/containers/History/types';\nimport { TransactionType } from 'rango-sdk';\nimport React from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport { navigationRoutes } from '../constants/navigationRoutes';\n\nexport const pendingSwap: PendingSwap[] = [\n {\n creationTime: '1673164511955',\n finishTime: '1673164550137',\n requestId: '51e211d9-d61c-45d2-a4d4-1f9f7f90ee85',\n inputAmount: '1',\n wallets: {\n OSMOSIS: {\n walletType: 'keplr',\n address: 'osmo1unf2rcytjxfpz8x8ar63h4qeftadptg5t0nqcl',\n },\n },\n status: 'running',\n isPaused: false,\n extraMessage: null,\n extraMessageSeverity: 'info',\n extraMessageDetail: '',\n extraMessageErrorCode: null,\n networkStatusExtraMessage: null,\n networkStatusExtraMessageDetail: null,\n lastNotificationTime: null,\n settings: {\n slippage: '1.0',\n disabledSwappersIds: [],\n disabledSwappersGroups: [],\n },\n simulationResult: {\n outputAmount: '1.540670',\n swaps: [\n {\n swapperId: 'Osmosis',\n swapperType: 'DEX',\n swapperLogo: '',\n // @ts-ignore\n result: null,\n from: {\n symbol: 'JUNO',\n logo: 'https://api.rango.exchange/tokens/COSMOS/JUNO.png',\n address:\n 'ibc/46b44899322f3cd854d2d46deef881958467cdd4b3b10086da49296bbed94bed',\n blockchain: 'OSMOSIS',\n blockchainLogo: '',\n decimals: 6,\n usdPrice: 1.1091996179668873,\n },\n to: {\n symbol: 'OSMO',\n logo: 'https://api.rango.exchange/i/mJQPS2',\n address: null,\n blockchain: 'OSMOSIS',\n decimals: 6,\n blockchainLogo: '',\n usdPrice: 0.7192435454440882,\n },\n fromAmount: '1.000000',\n fromAmountPrecision: null,\n fromAmountMinValue: null,\n fromAmountMaxValue: null,\n toAmount: '1.540670',\n fee: [\n {\n name: '',\n asset: {\n blockchain: 'OSMOSIS',\n symbol: 'OSMO',\n address: null,\n },\n expenseType: 'FROM_SOURCE_WALLET',\n amount: '0',\n },\n ],\n estimatedTimeInSeconds: 45,\n swapChainType: 'INTRA_CHAIN',\n routes: [\n {\n nodes: [\n {\n nodes: [\n {\n marketName: 'pool#498',\n marketId: null,\n percent: 1,\n },\n ],\n from: 'JUNO',\n fromLogo: 'https://api.rango.exchange/tokens/COSMOS/JUNO.png',\n fromAddress:\n 'ibc/46b44899322f3cd854d2d46deef881958467cdd4b3b10086da49296bbed94bed',\n fromBlockchain: 'OSMOSIS',\n to: 'ATOM',\n toLogo: 'https://api.rango.exchange/tokens/COSMOS/ATOM.png',\n toAddress:\n 'ibc/27394fb092d2eccd56123c74f36e4c1f926001ceada9ca97ea622b25f41e5eb2',\n toBlockchain: 'OSMOSIS',\n },\n {\n nodes: [\n {\n marketName: 'pool#8',\n marketId: null,\n percent: 1,\n },\n ],\n from: 'ATOM',\n fromLogo: 'https://api.rango.exchange/tokens/COSMOS/ATOM.png',\n fromAddress:\n 'ibc/27394fb092d2eccd56123c74f36e4c1f926001ceada9ca97ea622b25f41e5eb2',\n fromBlockchain: 'OSMOSIS',\n to: 'IRIS',\n toLogo: 'https://api.rango.exchange/tokens/COSMOS/IRIS.png',\n toAddress:\n 'ibc/7c4d60aa95e5a7558b0a364860979ca34b7ff8aaf255b87af9e879374470cec0',\n toBlockchain: 'OSMOSIS',\n },\n {\n nodes: [\n {\n marketName: 'pool#7',\n marketId: null,\n percent: 1,\n },\n ],\n from: 'IRIS',\n fromLogo: 'https://api.rango.exchange/tokens/COSMOS/IRIS.png',\n fromAddress:\n 'ibc/7c4d60aa95e5a7558b0a364860979ca34b7ff8aaf255b87af9e879374470cec0',\n fromBlockchain: 'OSMOSIS',\n to: 'OSMO',\n toLogo: 'https://api.rango.exchange/tokens/COSMOS/OSMO.png',\n toAddress: null,\n toBlockchain: 'OSMOSIS',\n },\n ],\n },\n ],\n recommendedSlippage: null,\n timeStat: {\n min: 6,\n avg: 40,\n max: 241,\n },\n includesDestinationTx: false,\n },\n ],\n },\n validateBalanceOrFee: true,\n steps: [\n {\n id: 1,\n fromBlockchain: 'OSMOSIS',\n fromSymbol: 'JUNO',\n fromSymbolAddress:\n 'ibc/46b44899322f3cd854d2d46deef881958467cdd4b3b10086da49296bbed94bed',\n fromDecimals: 6,\n fromAmountPrecision: null,\n fromAmountMinValue: null,\n swapperLogo: '',\n swapperType: '',\n fromAmountMaxValue: null,\n toBlockchainLogo: 'https://api.rango.exchange/swappers/osmosis.png',\n fromBlockchainLogo: 'https://api.rango.exchange/swappers/osmosis.png',\n toBlockchain: 'OSMOSIS',\n fromLogo: 'https://api.rango.exchange/tokens/COSMOS/JUNO.png',\n toSymbol: 'OSMO',\n toSymbolAddress: null,\n toDecimals: 6,\n toLogo: 'https://api.rango.exchange/i/mJQPS2',\n startTransactionTime: 1673164519916,\n swapperId: 'Osmosis',\n expectedOutputAmountHumanReadable: '1.540670',\n outputAmount: '1.540658',\n status: 'running',\n networkStatus: null,\n executedTransactionId:\n '0f8f17eecc863c2d6be65ef52cfe3128ff3cd7baeddf133160bea8ccdfbf876b',\n explorerUrl: [\n {\n url: 'https://www.mintscan.io/osmosis/txs/0f8f17eecc863c2d6be65ef52cfe3128ff3cd7baeddf133160bea8ccdfbf876b',\n description: null,\n },\n ],\n cosmosTransaction: {\n type: TransactionType.COSMOS,\n fromWalletAddress: 'osmo1unf2rcytjxfpz8x8ar63h4qeftadptg5t0nqcl',\n blockChain: 'OSMOSIS',\n data: {\n chainId: 'osmosis-1',\n account_number: 102721,\n sequence: '308',\n msgs: [\n {\n __type: 'OsmosisSwapMessage',\n type: 'osmosis/gamm/swap-exact-amount-in',\n value: {\n sender: 'osmo1unf2rcytjxfpz8x8ar63h4qeftadptg5t0nqcl',\n routes: [\n {\n pool_id: '498',\n token_out_denom:\n 'ibc/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2',\n },\n {\n pool_id: '8',\n token_out_denom:\n 'ibc/7C4D60AA95E5A7558B0A364860979CA34B7FF8AAF255B87AF9E879374470CEC0',\n },\n {\n pool_id: '7',\n token_out_denom: 'uosmo',\n },\n ],\n token_in: {\n denom:\n 'ibc/46B44899322F3CD854D2D46DEEF881958467CDD4B3B10086DA49296BBED94BED',\n amount: '1000000',\n },\n token_out_min_amount: '1525264',\n },\n },\n ],\n protoMsgs: [\n {\n type_url: '/osmosis.gamm.v1beta1.MsgSwapExactAmountIn',\n value: [\n 10, 43, 111, 115, 109, 111, 49, 117, 110, 102, 50, 114, 99,\n 121, 116, 106, 120, 102, 112, 122, 56, 120, 56, 97, 114, 54,\n 51, 104, 52, 113, 101, 102, 116, 97, 100, 112, 116, 103, 53,\n 116, 48, 110, 113, 99, 108, 18, 73, 8, -14, 3, 18, 68, 105,\n 98, 99, 47, 50, 55, 51, 57, 52, 70, 66, 48, 57, 50, 68, 50,\n 69, 67, 67, 68, 53, 54, 49, 50, 51, 67, 55, 52, 70, 51, 54,\n 69, 52, 67, 49, 70, 57, 50, 54, 48, 48, 49, 67, 69, 65, 68,\n 65, 57, 67, 65, 57, 55, 69, 65, 54, 50, 50, 66, 50, 53, 70,\n 52, 49, 69, 53, 69, 66, 50, 18, 72, 8, 8, 18, 68, 105, 98, 99,\n 47, 55, 67, 52, 68, 54, 48, 65, 65, 57, 53, 69, 53, 65, 55,\n 53, 53, 56, 66, 48, 65, 51, 54, 52, 56, 54, 48, 57, 55, 57,\n 67, 65, 51, 52, 66, 55, 70, 70, 56, 65, 65, 70, 50, 53, 53,\n 66, 56, 55, 65, 70, 57, 69, 56, 55, 57, 51, 55, 52, 52, 55,\n 48, 67, 69, 67, 48, 18, 9, 8, 7, 18, 5, 117, 111, 115, 109,\n 111, 26, 79, 10, 68, 105, 98, 99, 47, 52, 54, 66, 52, 52, 56,\n 57, 57, 51, 50, 50, 70, 51, 67, 68, 56, 53, 52, 68, 50, 68,\n 52, 54, 68, 69, 69, 70, 56, 56, 49, 57, 53, 56, 52, 54, 55,\n 67, 68, 68, 52, 66, 51, 66, 49, 48, 48, 56, 54, 68, 65, 52,\n 57, 50, 57, 54, 66, 66, 69, 68, 57, 52, 66, 69, 68, 18, 7, 49,\n 48, 48, 48, 48, 48, 48, 34, 7, 49, 53, 50, 53, 50, 54, 52,\n ],\n },\n ],\n memo: '',\n source: null,\n fee: {\n gas: '900000',\n amount: [\n {\n denom: 'uosmo',\n amount: '0',\n },\n ],\n },\n signType: 'AMINO',\n rpcUrl: '',\n },\n rawTransfer: null,\n },\n solanaTransaction: null,\n evmTransaction: null,\n evmApprovalTransaction: null,\n transferTransaction: null,\n diagnosisUrl: null,\n internalSteps: null,\n },\n ],\n },\n {\n creationTime: '1673164511955',\n finishTime: '1673164550137',\n requestId: '51e211d9-d61c-45d2-a4d4-1f9f7f90ee85',\n inputAmount: '1',\n wallets: {\n OSMOSIS: {\n walletType: 'keplr',\n address: 'osmo1unf2rcytjxfpz8x8ar63h4qeftadptg5t0nqcl',\n },\n },\n status: 'failed',\n isPaused: false,\n extraMessage: null,\n extraMessageSeverity: 'info',\n extraMessageDetail: '',\n extraMessageErrorCode: null,\n networkStatusExtraMessage: null,\n networkStatusExtraMessageDetail: null,\n lastNotificationTime: null,\n settings: {\n slippage: '1.0',\n disabledSwappersIds: [],\n disabledSwappersGroups: [],\n },\n simulationResult: {\n outputAmount: '1.540670',\n swaps: [\n {\n swapperId: 'Osmosis',\n swapperLogo: '',\n // @ts-ignore\n result: null,\n swapperType: 'DEX',\n from: {\n symbol: 'JUNO',\n logo: 'https://api.rango.exchange/tokens/COSMOS/JUNO.png',\n address:\n 'ibc/46b44899322f3cd854d2d46deef881958467cdd4b3b10086da49296bbed94bed',\n blockchain: 'OSMOSIS',\n blockchainLogo: '',\n decimals: 6,\n usdPrice: 1.1091996179668873,\n },\n to: {\n symbol: 'OSMO',\n logo: 'https://api.rango.exchange/i/mJQPS2',\n address: null,\n blockchain: 'OSMOSIS',\n decimals: 6,\n blockchainLogo: '',\n usdPrice: 0.7192435454440882,\n },\n fromAmount: '1.000000',\n fromAmountPrecision: null,\n fromAmountMinValue: null,\n fromAmountMaxValue: null,\n toAmount: '1.540670',\n fee: [\n {\n name: '',\n asset: {\n blockchain: 'OSMOSIS',\n symbol: 'OSMO',\n address: null,\n },\n expenseType: 'FROM_SOURCE_WALLET',\n amount: '0',\n },\n ],\n estimatedTimeInSeconds: 45,\n swapChainType: 'INTRA_CHAIN',\n routes: [\n {\n nodes: [\n {\n nodes: [\n {\n marketName: 'pool#498',\n marketId: null,\n percent: 1,\n },\n ],\n from: 'JUNO',\n fromLogo: 'https://api.rango.exchange/tokens/COSMOS/JUNO.png',\n fromAddress:\n 'ibc/46b44899322f3cd854d2d46deef881958467cdd4b3b10086da49296bbed94bed',\n fromBlockchain: 'OSMOSIS',\n to: 'ATOM',\n toLogo: 'https://api.rango.exchange/tokens/COSMOS/ATOM.png',\n toAddress:\n 'ibc/27394fb092d2eccd56123c74f36e4c1f926001ceada9ca97ea622b25f41e5eb2',\n toBlockchain: 'OSMOSIS',\n },\n {\n nodes: [\n {\n marketName: 'pool#8',\n marketId: null,\n percent: 1,\n },\n ],\n from: 'ATOM',\n fromLogo: 'https://api.rango.exchange/tokens/COSMOS/ATOM.png',\n fromAddress:\n 'ibc/27394fb092d2eccd56123c74f36e4c1f926001ceada9ca97ea622b25f41e5eb2',\n fromBlockchain: 'OSMOSIS',\n to: 'IRIS',\n toLogo: 'https://api.rango.exchange/tokens/COSMOS/IRIS.png',\n toAddress:\n 'ibc/7c4d60aa95e5a7558b0a364860979ca34b7ff8aaf255b87af9e879374470cec0',\n toBlockchain: 'OSMOSIS',\n },\n {\n nodes: [\n {\n marketName: 'pool#7',\n marketId: null,\n percent: 1,\n },\n ],\n from: 'IRIS',\n fromLogo: 'https://api.rango.exchange/tokens/COSMOS/IRIS.png',\n fromAddress:\n 'ibc/7c4d60aa95e5a7558b0a364860979ca34b7ff8aaf255b87af9e879374470cec0',\n fromBlockchain: 'OSMOSIS',\n to: 'OSMO',\n toLogo: 'https://api.rango.exchange/tokens/COSMOS/OSMO.png',\n toAddress: null,\n toBlockchain: 'OSMOSIS',\n },\n ],\n },\n ],\n recommendedSlippage: null,\n timeStat: {\n min: 6,\n avg: 40,\n max: 241,\n },\n includesDestinationTx: false,\n },\n ],\n },\n validateBalanceOrFee: true,\n steps: [\n {\n id: 1,\n fromBlockchain: 'OSMOSIS',\n fromSymbol: 'JUNO',\n fromSymbolAddress:\n 'ibc/46b44899322f3cd854d2d46deef881958467cdd4b3b10086da49296bbed94bed',\n fromDecimals: 6,\n fromAmountPrecision: null,\n fromAmountMinValue: null,\n fromAmountMaxValue: null,\n toBlockchainLogo: 'https://api.rango.exchange/swappers/osmosis.png',\n fromBlockchainLogo: 'https://api.rango.exchange/swappers/osmosis.png',\n toBlockchain: 'OSMOSIS',\n swapperLogo: '',\n swapperType: '',\n fromLogo: 'https://api.rango.exchange/tokens/COSMOS/JUNO.png',\n toSymbol: 'OSMO',\n toSymbolAddress: null,\n toDecimals: 6,\n toLogo: 'https://api.rango.exchange/i/mJQPS2',\n startTransactionTime: 1673164519916,\n swapperId: 'Osmosis',\n expectedOutputAmountHumanReadable: '1.540670',\n outputAmount: '1.540658',\n status: 'failed',\n networkStatus: null,\n executedTransactionId:\n '0f8f17eecc863c2d6be65ef52cfe3128ff3cd7baeddf133160bea8ccdfbf876b',\n explorerUrl: [\n {\n url: 'https://www.mintscan.io/osmosis/txs/0f8f17eecc863c2d6be65ef52cfe3128ff3cd7baeddf133160bea8ccdfbf876b',\n description: null,\n },\n ],\n cosmosTransaction: {\n type: TransactionType.COSMOS,\n fromWalletAddress: 'osmo1unf2rcytjxfpz8x8ar63h4qeftadptg5t0nqcl',\n blockChain: 'OSMOSIS',\n data: {\n chainId: 'osmosis-1',\n account_number: 102721,\n sequence: '308',\n msgs: [\n {\n __type: 'OsmosisSwapMessage',\n type: 'osmosis/gamm/swap-exact-amount-in',\n value: {\n sender: 'osmo1unf2rcytjxfpz8x8ar63h4qeftadptg5t0nqcl',\n routes: [\n {\n pool_id: '498',\n token_out_denom:\n 'ibc/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2',\n },\n {\n pool_id: '8',\n token_out_denom:\n 'ibc/7C4D60AA95E5A7558B0A364860979CA34B7FF8AAF255B87AF9E879374470CEC0',\n },\n {\n pool_id: '7',\n token_out_denom: 'uosmo',\n },\n ],\n token_in: {\n denom:\n 'ibc/46B44899322F3CD854D2D46DEEF881958467CDD4B3B10086DA49296BBED94BED',\n amount: '1000000',\n },\n token_out_min_amount: '1525264',\n },\n },\n ],\n protoMsgs: [\n {\n type_url: '/osmosis.gamm.v1beta1.MsgSwapExactAmountIn',\n value: [\n 10, 43, 111, 115, 109, 111, 49, 117, 110, 102, 50, 114, 99,\n 121, 116, 106, 120, 102, 112, 122, 56, 120, 56, 97, 114, 54,\n 51, 104, 52, 113, 101, 102, 116, 97, 100, 112, 116, 103, 53,\n 116, 48, 110, 113, 99, 108, 18, 73, 8, -14, 3, 18, 68, 105,\n 98, 99, 47, 50, 55, 51, 57, 52, 70, 66, 48, 57, 50, 68, 50,\n 69, 67, 67, 68, 53, 54, 49, 50, 51, 67, 55, 52, 70, 51, 54,\n 69, 52, 67, 49, 70, 57, 50, 54, 48, 48, 49, 67, 69, 65, 68,\n 65, 57, 67, 65, 57, 55, 69, 65, 54, 50, 50, 66, 50, 53, 70,\n 52, 49, 69, 53, 69, 66, 50, 18, 72, 8, 8, 18, 68, 105, 98, 99,\n 47, 55, 67, 52, 68, 54, 48, 65, 65, 57, 53, 69, 53, 65, 55,\n 53, 53, 56, 66, 48, 65, 51, 54, 52, 56, 54, 48, 57, 55, 57,\n 67, 65, 51, 52, 66, 55, 70, 70, 56, 65, 65, 70, 50, 53, 53,\n 66, 56, 55, 65, 70, 57, 69, 56, 55, 57, 51, 55, 52, 52, 55,\n 48, 67, 69, 67, 48, 18, 9, 8, 7, 18, 5, 117, 111, 115, 109,\n 111, 26, 79, 10, 68, 105, 98, 99, 47, 52, 54, 66, 52, 52, 56,\n 57, 57, 51, 50, 50, 70, 51, 67, 68, 56, 53, 52, 68, 50, 68,\n 52, 54, 68, 69, 69, 70, 56, 56, 49, 57, 53, 56, 52, 54, 55,\n 67, 68, 68, 52, 66, 51, 66, 49, 48, 48, 56, 54, 68, 65, 52,\n 57, 50, 57, 54, 66, 66, 69, 68, 57, 52, 66, 69, 68, 18, 7, 49,\n 48, 48, 48, 48, 48, 48, 34, 7, 49, 53, 50, 53, 50, 54, 52,\n ],\n },\n ],\n memo: '',\n source: null,\n fee: {\n gas: '900000',\n amount: [\n {\n denom: 'uosmo',\n amount: '0',\n },\n ],\n },\n signType: 'AMINO',\n rpcUrl: '',\n },\n rawTransfer: null,\n },\n solanaTransaction: null,\n evmTransaction: null,\n evmApprovalTransaction: null,\n transferTransaction: null,\n diagnosisUrl: null,\n internalSteps: null,\n },\n ],\n },\n {\n creationTime: '1673164511955',\n finishTime: '1673164550137',\n requestId: '51e211d9-d61c-45d2-a4d4-1f9f7f90ee85',\n inputAmount: '1',\n wallets: {\n OSMOSIS: {\n walletType: 'keplr',\n address: 'osmo1unf2rcytjxfpz8x8ar63h4qeftadptg5t0nqcl',\n },\n },\n status: 'success',\n isPaused: false,\n extraMessage: null,\n extraMessageSeverity: 'info',\n extraMessageDetail: '',\n extraMessageErrorCode: null,\n networkStatusExtraMessage: null,\n networkStatusExtraMessageDetail: null,\n lastNotificationTime: null,\n settings: {\n slippage: '1.0',\n disabledSwappersIds: [],\n disabledSwappersGroups: [],\n },\n simulationResult: {\n outputAmount: '1.540670',\n swaps: [\n {\n // @ts-ignore\n result: [],\n swapperId: 'Osmosis',\n swapperType: 'DEX',\n swapperLogo: '',\n\n from: {\n symbol: 'JUNO',\n logo: 'https://api.rango.exchange/tokens/COSMOS/JUNO.png',\n address:\n 'ibc/46b44899322f3cd854d2d46deef881958467cdd4b3b10086da49296bbed94bed',\n blockchain: 'OSMOSIS',\n blockchainLogo: '',\n decimals: 6,\n usdPrice: 1.1091996179668873,\n },\n to: {\n symbol: 'OSMO',\n logo: 'https://api.rango.exchange/i/mJQPS2',\n address: null,\n blockchain: 'OSMOSIS',\n decimals: 6,\n blockchainLogo: '',\n usdPrice: 0.7192435454440882,\n },\n fromAmount: '1.000000',\n fromAmountPrecision: null,\n fromAmountMinValue: null,\n fromAmountMaxValue: null,\n toAmount: '1.540670',\n fee: [\n {\n name: '',\n asset: {\n blockchain: 'OSMOSIS',\n symbol: 'OSMO',\n address: null,\n },\n expenseType: 'FROM_SOURCE_WALLET',\n amount: '0',\n },\n ],\n estimatedTimeInSeconds: 45,\n swapChainType: 'INTRA_CHAIN',\n routes: [\n {\n nodes: [\n {\n nodes: [\n {\n marketName: 'pool#498',\n marketId: null,\n percent: 1,\n },\n ],\n from: 'JUNO',\n fromLogo: 'https://api.rango.exchange/tokens/COSMOS/JUNO.png',\n fromAddress:\n 'ibc/46b44899322f3cd854d2d46deef881958467cdd4b3b10086da49296bbed94bed',\n fromBlockchain: 'OSMOSIS',\n to: 'ATOM',\n toLogo: 'https://api.rango.exchange/tokens/COSMOS/ATOM.png',\n toAddress:\n 'ibc/27394fb092d2eccd56123c74f36e4c1f926001ceada9ca97ea622b25f41e5eb2',\n toBlockchain: 'OSMOSIS',\n },\n {\n nodes: [\n {\n marketName: 'pool#8',\n marketId: null,\n percent: 1,\n },\n ],\n from: 'ATOM',\n fromLogo: 'https://api.rango.exchange/tokens/COSMOS/ATOM.png',\n fromAddress:\n 'ibc/27394fb092d2eccd56123c74f36e4c1f926001ceada9ca97ea622b25f41e5eb2',\n fromBlockchain: 'OSMOSIS',\n to: 'IRIS',\n toLogo: 'https://api.rango.exchange/tokens/COSMOS/IRIS.png',\n toAddress:\n 'ibc/7c4d60aa95e5a7558b0a364860979ca34b7ff8aaf255b87af9e879374470cec0',\n toBlockchain: 'OSMOSIS',\n },\n {\n nodes: [\n {\n marketName: 'pool#7',\n marketId: null,\n percent: 1,\n },\n ],\n from: 'IRIS',\n fromLogo: 'https://api.rango.exchange/tokens/COSMOS/IRIS.png',\n fromAddress:\n 'ibc/7c4d60aa95e5a7558b0a364860979ca34b7ff8aaf255b87af9e879374470cec0',\n fromBlockchain: 'OSMOSIS',\n to: 'OSMO',\n toLogo: 'https://api.rango.exchange/tokens/COSMOS/OSMO.png',\n toAddress: null,\n toBlockchain: 'OSMOSIS',\n },\n ],\n },\n ],\n recommendedSlippage: null,\n timeStat: {\n min: 6,\n avg: 40,\n max: 241,\n },\n includesDestinationTx: false,\n },\n ],\n },\n validateBalanceOrFee: true,\n steps: [\n {\n id: 1,\n fromBlockchain: 'OSMOSIS',\n fromSymbol: 'JUNO',\n fromSymbolAddress:\n 'ibc/46b44899322f3cd854d2d46deef881958467cdd4b3b10086da49296bbed94bed',\n fromDecimals: 6,\n fromAmountPrecision: null,\n fromAmountMinValue: null,\n swapperLogo: '',\n swapperType: '',\n fromAmountMaxValue: null,\n toBlockchainLogo: 'https://api.rango.exchange/swappers/osmosis.png',\n fromBlockchainLogo: 'https://api.rango.exchange/swappers/osmosis.png',\n toBlockchain: 'OSMOSIS',\n fromLogo: 'https://api.rango.exchange/tokens/COSMOS/JUNO.png',\n toSymbol: 'OSMO',\n toSymbolAddress: null,\n toDecimals: 6,\n toLogo: 'https://api.rango.exchange/i/mJQPS2',\n startTransactionTime: 1673164519916,\n swapperId: 'Osmosis',\n expectedOutputAmountHumanReadable: '1.540670',\n outputAmount: '1.540658',\n status: 'success',\n networkStatus: null,\n executedTransactionId:\n '0f8f17eecc863c2d6be65ef52cfe3128ff3cd7baeddf133160bea8ccdfbf876b',\n explorerUrl: [\n {\n url: 'https://www.mintscan.io/osmosis/txs/0f8f17eecc863c2d6be65ef52cfe3128ff3cd7baeddf133160bea8ccdfbf876b',\n description: null,\n },\n ],\n cosmosTransaction: {\n type: TransactionType.COSMOS,\n fromWalletAddress: 'osmo1unf2rcytjxfpz8x8ar63h4qeftadptg5t0nqcl',\n blockChain: 'OSMOSIS',\n data: {\n chainId: 'osmosis-1',\n account_number: 102721,\n sequence: '308',\n msgs: [\n {\n __type: 'OsmosisSwapMessage',\n type: 'osmosis/gamm/swap-exact-amount-in',\n value: {\n sender: 'osmo1unf2rcytjxfpz8x8ar63h4qeftadptg5t0nqcl',\n routes: [\n {\n pool_id: '498',\n token_out_denom:\n 'ibc/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2',\n },\n {\n pool_id: '8',\n token_out_denom:\n 'ibc/7C4D60AA95E5A7558B0A364860979CA34B7FF8AAF255B87AF9E879374470CEC0',\n },\n {\n pool_id: '7',\n token_out_denom: 'uosmo',\n },\n ],\n token_in: {\n denom:\n 'ibc/46B44899322F3CD854D2D46DEEF881958467CDD4B3B10086DA49296BBED94BED',\n amount: '1000000',\n },\n token_out_min_amount: '1525264',\n },\n },\n ],\n protoMsgs: [\n {\n type_url: '/osmosis.gamm.v1beta1.MsgSwapExactAmountIn',\n value: [\n 10, 43, 111, 115, 109, 111, 49, 117, 110, 102, 50, 114, 99,\n 121, 116, 106, 120, 102, 112, 122, 56, 120, 56, 97, 114, 54,\n 51, 104, 52, 113, 101, 102, 116, 97, 100, 112, 116, 103, 53,\n 116, 48, 110, 113, 99, 108, 18, 73, 8, -14, 3, 18, 68, 105,\n 98, 99, 47, 50, 55, 51, 57, 52, 70, 66, 48, 57, 50, 68, 50,\n 69, 67, 67, 68, 53, 54, 49, 50, 51, 67, 55, 52, 70, 51, 54,\n 69, 52, 67, 49, 70, 57, 50, 54, 48, 48, 49, 67, 69, 65, 68,\n 65, 57, 67, 65, 57, 55, 69, 65, 54, 50, 50, 66, 50, 53, 70,\n 52, 49, 69, 53, 69, 66, 50, 18, 72, 8, 8, 18, 68, 105, 98, 99,\n 47, 55, 67, 52, 68, 54, 48, 65, 65, 57, 53, 69, 53, 65, 55,\n 53, 53, 56, 66, 48, 65, 51, 54, 52, 56, 54, 48, 57, 55, 57,\n 67, 65, 51, 52, 66, 55, 70, 70, 56, 65, 65, 70, 50, 53, 53,\n 66, 56, 55, 65, 70, 57, 69, 56, 55, 57, 51, 55, 52, 52, 55,\n 48, 67, 69, 67, 48, 18, 9, 8, 7, 18, 5, 117, 111, 115, 109,\n 111, 26, 79, 10, 68, 105, 98, 99, 47, 52, 54, 66, 52, 52, 56,\n 57, 57, 51, 50, 50, 70, 51, 67, 68, 56, 53, 52, 68, 50, 68,\n 52, 54, 68, 69, 69, 70, 56, 56, 49, 57, 53, 56, 52, 54, 55,\n 67, 68, 68, 52, 66, 51, 66, 49, 48, 48, 56, 54, 68, 65, 52,\n 57, 50, 57, 54, 66, 66, 69, 68, 57, 52, 66, 69, 68, 18, 7, 49,\n 48, 48, 48, 48, 48, 48, 34, 7, 49, 53, 50, 53, 50, 54, 52,\n ],\n },\n ],\n memo: '',\n source: null,\n fee: {\n gas: '900000',\n amount: [\n {\n denom: 'uosmo',\n amount: '0',\n },\n ],\n },\n signType: 'AMINO',\n rpcUrl: '',\n },\n rawTransfer: null,\n },\n solanaTransaction: null,\n evmTransaction: null,\n evmApprovalTransaction: null,\n transferTransaction: null,\n diagnosisUrl: null,\n internalSteps: null,\n },\n ],\n },\n];\n\nexport function HistoryPage() {\n const navigate = useNavigate();\n return (\n <History\n list={pendingSwap}\n onSwapClick={() => navigate(navigationRoutes.swapDetails)}\n onBack={() => {\n navigate(-1);\n }}\n />\n );\n}\n","import React from 'react';\nimport { SettingsIcon, Tooltip, styled, Button, HistoryIcon, RetryIcon } from '@rango-dev/ui';\nimport { useNavigate } from 'react-router-dom';\nimport { navigationRoutes } from '../constants/navigationRoutes';\nimport { PropTypes } from './Header';\n\nconst ButtonsContainer = styled('div', {\n display: 'flex',\n});\n\nexport function HeaderButtons(props: PropTypes) {\n const { onClickRefresh } = props;\n const navigate = useNavigate();\n\n return (\n <ButtonsContainer>\n <Tooltip content=\"Retry\">\n <Button variant=\"ghost\" onClick={onClickRefresh.bind(null)}>\n <RetryIcon size={28} />\n </Button>\n </Tooltip>\n <Tooltip content=\"Transactions History\">\n <Button variant=\"ghost\" onClick={() => navigate(navigationRoutes.history)}>\n <HistoryIcon size={24} />\n </Button>\n </Tooltip>\n <Tooltip content=\"Settings\">\n <Button variant=\"ghost\" onClick={() => navigate(navigationRoutes.settings)}>\n <SettingsIcon size={24} />\n </Button>\n </Tooltip>\n </ButtonsContainer>\n );\n}\n","import React from 'react';\nimport { styled, Typography } from '@rango-dev/ui';\nimport { HeaderButtons } from './HeaderButtons';\n\nexport const HeaderContainer = styled('div', {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n width: '100%',\n padding: '$16 0',\n});\n\nexport interface PropTypes {\n onClickRefresh: () => void;\n}\n\nexport function Header(props: PropTypes) {\n const { onClickRefresh } = props;\n return (\n <HeaderContainer>\n <Typography variant=\"h4\">SWAP</Typography>\n <HeaderButtons onClickRefresh={onClickRefresh} />\n </HeaderContainer>\n );\n}\n","import React from 'react';\nimport { AngleDownIcon, Button, InfoCircleIcon, styled, TextField, Typography } from '@rango-dev/ui';\nimport { useMetaStore } from '../store/meta';\nimport { BlockchainMeta, Token } from 'rango-sdk';\nimport { useNavigate } from 'react-router-dom';\nimport { useBestRouteStore } from '../store/bestRoute';\nimport { numberToString } from '../utils/numbers';\nimport BigNumber from 'bignumber.js';\nimport { getBalanceFromWallet } from '../utils/wallets';\nimport { useWalletsStore } from '../store/wallets';\n\ntype PropTypes = (\n | { type: 'From'; inputAmount: string; onAmountChange: (amount: string) => void }\n | {\n type: 'To';\n outputAmount: BigNumber | null;\n outputUsdValue: BigNumber | null;\n }\n) & { chain: BlockchainMeta | null; token: Token | null };\n\nconst Box = styled('div', {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n});\n\nconst Container = styled('div', {\n boxSizing: 'border-box',\n backgroundColor: '$neutrals300',\n borderRadius: '$5',\n padding: '$8 0',\n\n '.form': {\n display: 'flex',\n width: '100%',\n padding: '$8 $16',\n },\n});\n\nconst StyledImage = styled('img', {\n width: '$24',\n maxHeight: '$24',\n});\n\nconst Options = styled('div', {\n display: 'flex',\n justifyContent: 'flex-end',\n padding: '0 $8',\n});\n\nconst ImagePlaceholder = styled('span', {\n width: '24px',\n height: '24px',\n backgroundColor: '$neutrals300',\n borderRadius: '99999px',\n});\n\nconst OutputContainer = styled('div', {\n height: '$48',\n borderRadius: '$5',\n flexGrow: 1,\n width: '70%',\n backgroundColor: '$background',\n border: '1px solid transparent',\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n paddingLeft: '$8',\n paddingRight: '$8',\n});\n\nexport function TokenInfo(props: PropTypes) {\n const { type, chain, token } = props;\n const loadingStatus = useMetaStore.use.loadingStatus();\n const fromChain = useBestRouteStore.use.fromChain();\n const toChain = useBestRouteStore.use.toChain();\n const inputUsdValue = useBestRouteStore.use.inputUsdValue();\n const fromToken = useBestRouteStore.use.fromToken();\n const setInputAmount = useBestRouteStore.use.setInputAmount();\n const bestRoute = useBestRouteStore.use.bestRoute();\n const inputAmount = useBestRouteStore.use.inputAmount();\n const balances = useWalletsStore.use.balances();\n const navigate = useNavigate();\n\n const tokenBalance =\n !!fromChain && !!fromToken\n ? numberToString(\n getBalanceFromWallet(balances, fromChain?.name, fromToken?.symbol, fromToken?.address)\n ?.amount || '0',\n 8,\n )\n : '0';\n\n const tokenBalanceReal =\n !!fromChain && !!fromToken\n ? numberToString(\n getBalanceFromWallet(balances, fromChain?.name, fromToken?.symbol, fromToken?.address)\n ?.amount || '0',\n getBalanceFromWallet(balances, fromChain?.name, fromToken?.symbol, fromToken?.address)\n ?.decimal,\n )\n : '0';\n\n const ItemSuffix = (\n <div style={{ display: 'flex', justifyContent: 'center', alignItems: 'center' }}>\n {loadingStatus === 'failed' && <InfoCircleIcon color=\"error\" size={24} />}\n <AngleDownIcon />\n </div>\n );\n\n return (\n <Box>\n <div>\n <Typography variant=\"body2\">{type}</Typography>\n </div>\n <Container>\n {props.type === 'From' && (\n <Options>\n <div\n className=\"balance\"\n onClick={() => {\n if (tokenBalance !== '0') setInputAmount(tokenBalanceReal.split(',').join(''));\n }}>\n <Button variant=\"ghost\" size=\"small\">\n <Typography variant=\"body2\">{`Max: ${tokenBalance} ${\n fromToken?.symbol || ''\n }`}</Typography>\n </Button>\n </div>\n </Options>\n )}\n <div className=\"form\">\n <Button\n onClick={() => {\n navigate(`/${props.type.toLowerCase()}-chain`);\n }}\n variant=\"outlined\"\n disabled={loadingStatus === 'failed'}\n loading={loadingStatus === 'loading'}\n prefix={\n loadingStatus === 'success' && chain ? (\n <StyledImage src={chain.logo} />\n ) : (\n <ImagePlaceholder />\n )\n }\n suffix={ItemSuffix}\n align=\"start\"\n size=\"large\"\n style={{ marginRight: '.5rem' }}>\n {loadingStatus === 'success' && chain ? chain.displayName : 'Chain'}\n </Button>\n <Button\n onClick={() => {\n navigate(`/${props.type.toLowerCase()}-token`);\n }}\n variant=\"outlined\"\n disabled={\n loadingStatus === 'failed' ||\n (type === 'From' && !fromChain) ||\n (type === 'To' && !toChain)\n }\n loading={loadingStatus === 'loading'}\n prefix={\n loadingStatus === 'success' && token ? (\n <StyledImage src={token.image} />\n ) : (\n <ImagePlaceholder />\n )\n }\n suffix={ItemSuffix}\n size=\"large\"\n align=\"start\"\n style={{ marginRight: '.5rem' }}>\n {loadingStatus === 'success' && token ? token.symbol : 'Token'}\n </Button>\n {props.type === 'From' ? (\n <TextField\n type=\"number\"\n size=\"large\"\n autoFocus\n placeholder=\"0\"\n style={{\n width: '70%',\n position: 'relative',\n backgroundColor: '$background !important',\n }}\n suffix={\n <span style={{ position: 'absolute', right: '4px', bottom: '2px' }}>\n <Typography variant=\"caption\">{`$${numberToString(inputUsdValue)}`}</Typography>\n </span>\n }\n value={props.inputAmount || ''}\n onChange={\n props.type === 'From'\n ? (event) => {\n props.onAmountChange(event.target.value);\n }\n : undefined\n }\n />\n ) : (\n <OutputContainer>\n <Typography variant=\"body1\">\n {bestRoute ? `≈ ${numberToString(props.outputAmount)}` : inputAmount ? '?' : '0'}\n </Typography>\n <span style={{ position: 'absolute', right: '4px', bottom: '2px' }}>\n <Typography variant=\"caption\">{`$${numberToString(\n props.outputUsdValue,\n )}`}</Typography>\n </span>\n </OutputContainer>\n )}\n </div>\n </Container>\n </Box>\n );\n}\n","import React from 'react';\nimport { styled } from '@rango-dev/ui/src/theme';\nimport { Typography } from '@rango-dev/ui';\n\nconst Container = styled('div', {\n display: 'flex',\n width: '100%',\n justifyContent: 'end',\n alignItems: 'center',\n paddingTop: '$16',\n});\n\nconst Logo = styled('svg', {\n fill: '$foreground',\n width: '$24',\n margin: '0 $8 0 $16',\n});\n\nconst StyledAnchor = styled('a', {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n textDecoration: 'none',\n});\n\nexport function BottomLogo() {\n return (\n <Container>\n <Typography variant=\"caption\">Powered By</Typography>\n <StyledAnchor href=\"https://rango.exchange\" target=\"_blank\">\n <Logo xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 33.68 29\">\n <defs></defs>\n <g id=\"Layer_2\" data-name=\"Layer 2\">\n <g id=\"Layer_1-2\" data-name=\"Layer 1\">\n <path d=\"M33.68,18.05A17.93,17.93,0,0,0,28.34,5.29,18.31,18.31,0,0,0,15.45,0H13.54V7.41L6.07,0H.69L9.83,9.07H0V11A17.93,17.93,0,0,0,5.34,23.71,18.32,18.32,0,0,0,18.24,29h1.9V21.59l7.38,7.31h5.39l-9-9h9.82ZM17.37,16.16H12.49a1.93,1.93,0,0,0-1.35.55,1.89,1.89,0,0,0-.56,1.34,1.85,1.85,0,0,0,.56,1.33,1.93,1.93,0,0,0,1.35.55h3.84V25.1A14.43,14.43,0,0,1,8,21a14.21,14.21,0,0,1-4.1-8.2H21.2a1.86,1.86,0,0,0,.74-.13,1.92,1.92,0,0,0,.64-.4,2,2,0,0,0,.43-.62,1.88,1.88,0,0,0,0-1.47,2,2,0,0,0-.43-.62,1.92,1.92,0,0,0-.64-.4,1.86,1.86,0,0,0-.74-.13H17.35V3.9A14.43,14.43,0,0,1,25.64,8a14.19,14.19,0,0,1,4.11,8.2Zm2.12-5.27a1.43,1.43,0,0,1,.26-.83,1.52,1.52,0,0,1,.67-.56,1.55,1.55,0,0,1,.88-.08,1.51,1.51,0,0,1,.77.4,1.54,1.54,0,0,1,.42.77,1.41,1.41,0,0,1-.09.86,1.47,1.47,0,0,1-.55.68,1.56,1.56,0,0,1-.84.25,1.52,1.52,0,0,1-1.52-1.49Z\" />\n <path d=\"M21.7,11.57a.68.68,0,0,0-.12-.38.64.64,0,0,0-.31-.25.68.68,0,0,0-.75.15.61.61,0,0,0-.19.35.62.62,0,0,0,0,.4.67.67,0,0,0,.25.3.69.69,0,0,0,.39.12.7.7,0,0,0,.49-.2A.68.68,0,0,0,21.7,11.57Z\" />\n </g>\n </g>\n </Logo>\n <Typography variant=\"body2\">RANGO</Typography>\n </StyledAnchor>\n </Container>\n );\n}\n","import { useEffect, useRef } from 'react';\nimport { useSearchParams } from 'react-router-dom';\nimport { SearchParams } from '../constants/searchParams';\nimport { useBestRouteStore } from '../store/bestRoute';\n\nexport function SwithFromAndTo({ count }: { count: number }) {\n const firstRender = useRef(true);\n const [searchParams, setSearchParams] = useSearchParams();\n const outputAmount = useBestRouteStore.use.outputAmount();\n\n useEffect(() => {\n if (!firstRender.current) {\n const fromChainString = searchParams.get(SearchParams.FROM_CHAIN);\n const fromTokenString = searchParams.get(SearchParams.FROM_TOKEN);\n const toChainString = searchParams.get(SearchParams.TO_CHAIN);\n const toTokenString = searchParams.get(SearchParams.TO_TOKEN);\n setSearchParams({\n ...(toChainString && { [SearchParams.FROM_CHAIN]: toChainString }),\n ...(toTokenString && { [SearchParams.FROM_TOKEN]: toTokenString }),\n ...(fromChainString && { [SearchParams.TO_CHAIN]: fromChainString }),\n ...(fromTokenString && { [SearchParams.TO_TOKEN]: fromTokenString }),\n ...(outputAmount && { [SearchParams.FROM_AMOUNT]: outputAmount.toString() }),\n });\n } else {\n firstRender.current = false;\n }\n }, [count]);\n\n return null;\n}\n","import { styled } from '@rango-dev/ui';\n\nexport const Footer = styled('div', {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n paddingTop: '$16',\n});\n","import { BestRouteRequest, BestRouteResponse } from 'rango-sdk';\nimport { useEffect, useRef, useState } from 'react';\nimport { httpService } from '../services/httpService';\nimport { useBestRouteStore } from '../store/bestRoute';\nimport { useSettingsStore } from '../store/settings';\n\nexport function useBestRoute() {\n const fromToken = useBestRouteStore.use.fromToken();\n const toToken = useBestRouteStore.use.toToken();\n const inputAmount = useBestRouteStore.use.inputAmount();\n\n const slippage = useSettingsStore.use.slippage();\n const customSlippage = useSettingsStore.use.customSlippage();\n const disabledLiquiditySources = useSettingsStore.use.disabledLiquiditySources();\n const [count, setCount] = useState(0);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState('');\n const [data, setData] = useState<BestRouteResponse | null>(null);\n const abortControllerRef = useRef<AbortController | null>(null);\n\n const retry = () => {\n setCount((prev) => prev + 1);\n };\n\n useEffect(() => {\n if (abortControllerRef.current) abortControllerRef.current.abort();\n const abortController = new AbortController();\n abortControllerRef.current = abortController;\n if (!!fromToken && !!toToken && !!inputAmount) {\n if (!!data) setData(null);\n const requestBody: BestRouteRequest = {\n amount: inputAmount?.toString(),\n connectedWallets: [],\n selectedWallets: {},\n checkPrerequisites: false,\n swapperGroups: disabledLiquiditySources,\n swappersGroupsExclude: true,\n from: {\n address: fromToken.address,\n blockchain: fromToken.blockchain,\n symbol: fromToken.symbol,\n },\n to: { address: toToken.address, blockchain: toToken.blockchain, symbol: toToken.symbol },\n };\n setLoading(true);\n httpService\n .getBestRoute(requestBody, { signal: abortControllerRef.current.signal })\n .then((res) => {\n setData(res);\n setLoading(false);\n abortControllerRef.current = null;\n })\n .catch((error) => {\n if (error.code === 'ERR_CANCELED') return;\n setError(error.message);\n setLoading(false);\n });\n }\n }, [\n fromToken,\n toToken,\n inputAmount,\n count,\n slippage,\n customSlippage,\n disabledLiquiditySources.length,\n ]);\n\n return { loading, error, data, retry };\n}\n","export const errorMessages = {\n genericServerError: 'Error connecting server, please reload the app and try again',\n};\n","import { Alert, BestRoute, Button, styled, VerticalSwapIcon } from '@rango-dev/ui';\nimport React, { useEffect, useState } from 'react';\nimport { useInRouterContext, useNavigate } from 'react-router-dom';\nimport { Header } from '../components/Header';\nimport { TokenInfo } from '../components/TokenInfo';\nimport { useBestRouteStore } from '../store/bestRoute';\nimport { BottomLogo } from '../components/BottomLogo';\nimport { SwithFromAndTo } from '../components/SwitchFromAndTo';\nimport { Footer } from '../components/Footer';\nimport { navigationRoutes } from '../constants/navigationRoutes';\nimport { useBestRoute } from '../hooks/useBestRoute';\nimport { useMetaStore } from '../store/meta';\nimport { useWalletsStore } from '../store/wallets';\nimport { errorMessages } from '../constants/errors';\nimport {\n getSwapButtonTitle,\n getOutputRatio,\n hasLimitError,\n outputRatioHasWarning,\n canComputePriceImpact,\n} from '../utils/swap';\n\nconst Container = styled('div', {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center',\n});\n\nconst SwitchButtonContainer = styled('div', {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n position: 'relative',\n top: '11px',\n});\n\nconst BestRouteContainer = styled('div', {\n width: '100%',\n paddingTop: '$16',\n});\n\nconst Alerts = styled('div', {\n paddingTop: '$16',\n});\n\nexport function Home() {\n const waningMessage = '';\n const isRouterInContext = useInRouterContext();\n const navigate = useNavigate();\n const [count, setCount] = useState(0);\n const fromChain = useBestRouteStore.use.fromChain();\n const fromToken = useBestRouteStore.use.fromToken();\n const toChain = useBestRouteStore.use.toChain();\n const toToken = useBestRouteStore.use.toToken();\n const setFromChain = useBestRouteStore.use.setFromChain();\n const setFromToken = useBestRouteStore.use.setFromToken();\n const setToChain = useBestRouteStore.use.setToChain();\n const setToToken = useBestRouteStore.use.setToToken();\n const setBestRoute = useBestRouteStore.use.setBestRoute();\n const inputUsdValue = useBestRouteStore.use.inputUsdValue();\n const inputAmount = useBestRouteStore.use.inputAmount();\n const setInputAmount = useBestRouteStore.use.setInputAmount();\n const outputAmount = useBestRouteStore.use.outputAmount();\n const outputUsdValue = useBestRouteStore.use.outputUsdValue();\n const bestRoute = useBestRouteStore.use.bestRoute();\n\n const loadingMetaStatus = useMetaStore.use.loadingStatus();\n const accounts = useWalletsStore.use.accounts();\n\n const swithFromAndTo = () => {\n setFromChain(toChain);\n setFromToken(toToken);\n setToChain(fromChain);\n setToToken(fromToken);\n setInputAmount(outputAmount?.toString() || '');\n setCount((prev) => prev + 1);\n };\n\n const { data, loading: fetchingBestRoute, error: bestRouteError, retry } = useBestRoute();\n\n const noConnectedWallet = accounts.length > 0;\n\n const noRoutesFound = !bestRoute?.result;\n\n const errorMessage =\n loadingMetaStatus === 'failed' ? errorMessages.genericServerError : bestRouteError;\n\n const needsToWarnEthOnPath = false;\n\n const showBestRoute = inputAmount && (!!data || fetchingBestRoute || bestRouteError);\n\n const outToInRatio = getOutputRatio(inputUsdValue, outputUsdValue);\n\n const highValueLoss = outputRatioHasWarning(inputUsdValue, outToInRatio);\n\n const priceImpactCanNotBeComputed = !canComputePriceImpact(\n bestRoute,\n inputAmount,\n inputUsdValue,\n outputUsdValue,\n );\n\n const buttonTitle = getSwapButtonTitle(\n accounts,\n fetchingBestRoute,\n hasLimitError(bestRoute),\n highValueLoss,\n priceImpactCanNotBeComputed,\n needsToWarnEthOnPath,\n );\n\n const buttonDisabled =\n loadingMetaStatus != 'success' ||\n fetchingBestRoute ||\n highValueLoss ||\n (noConnectedWallet && noRoutesFound) ||\n hasLimitError(bestRoute);\n\n useEffect(() => {\n setBestRoute(data);\n }, [data]);\n\n return (\n <Container>\n <Header onClickRefresh={retry} />\n <TokenInfo\n type=\"From\"\n chain={fromChain}\n token={fromToken}\n onAmountChange={setInputAmount}\n inputAmount={inputAmount}\n />\n <SwitchButtonContainer>\n <Button variant=\"ghost\" onClick={swithFromAndTo}>\n <VerticalSwapIcon size={36} />\n {isRouterInContext && <SwithFromAndTo count={count} />}\n </Button>\n </SwitchButtonContainer>\n <TokenInfo\n type=\"To\"\n chain={toChain}\n token={toToken}\n outputAmount={outputAmount}\n outputUsdValue={outputUsdValue}\n />\n {showBestRoute && (\n <BestRouteContainer>\n <BestRoute error={bestRouteError} loading={fetchingBestRoute} data={data} />\n </BestRouteContainer>\n )}\n {(errorMessage || waningMessage) && (\n <Alerts>\n {errorMessage && <Alert description={errorMessage} type=\"error\" />}\n {waningMessage && <Alert description={waningMessage} type=\"warning\" />}\n </Alerts>\n )}\n <Footer>\n <Button\n type=\"primary\"\n align=\"grow\"\n size=\"large\"\n disabled={buttonDisabled}\n onClick={() => {\n if (buttonTitle === 'Connect Wallet') navigate(navigationRoutes.wallets);\n else {\n navigate(navigationRoutes.confirmWallets);\n }\n }}>\n {buttonTitle}\n </Button>\n <BottomLogo />\n </Footer>\n </Container>\n );\n}","import { LiquiditySourcesSelector } from '@rango-dev/ui';\nimport React from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport { useMetaStore } from '../store/meta';\nimport { useSettingsStore } from '../store/settings';\nimport { removeDuplicateFrom } from '../utils/common';\n\nexport function LiquiditySourcePage() {\n const { swappers } = useMetaStore.use.meta();\n const toggleLiquiditySource = useSettingsStore.use.toggleLiquiditySource();\n const disabledLiquiditySources = useSettingsStore.use.disabledLiquiditySources();\n const toggleAllLiquiditySources = useSettingsStore.use.toggleAllLiquiditySources();\n\n const navigate = useNavigate();\n\n const uniqueSwappersGroups: Array<{\n title: string;\n logo: string;\n type: 'BRIDGE' | 'AGGREGATOR' | 'DEX';\n selected: boolean;\n }> = [];\n removeDuplicateFrom(swappers.map((s) => s.swapperGroup))\n .map((swapperGroup) => {\n return swappers.find((s) => s.swapperGroup === swapperGroup);\n })\n .find((s) => {\n if (s) {\n for (const type of s.types) {\n uniqueSwappersGroups.push({\n title: s.swapperGroup,\n logo: s.logo,\n type,\n selected: !disabledLiquiditySources.includes(s.swapperGroup),\n });\n }\n }\n });\n\n return (\n <LiquiditySourcesSelector\n toggleAll={toggleAllLiquiditySources}\n list={uniqueSwappersGroups}\n onChange={(liquiditySource) => toggleLiquiditySource(liquiditySource.title)}\n onBack={() => {\n navigate(-1);\n }}\n />\n );\n}\n","import React, { useEffect, useState } from 'react';\nimport { BlockchainSelector } from '@rango-dev/ui';\nimport { useBestRouteStore } from '../store/bestRoute';\nimport { useMetaStore } from '../store/meta';\nimport { useNavigate } from 'react-router-dom';\nimport { useWalletsStore } from '../store/wallets';\nimport { BlockchainMeta } from 'rango-sdk';\nimport { removeDuplicateFrom } from '../utils/common';\n\ninterface PropTypes {\n type: 'from' | 'to';\n}\n\nexport function SelectChainPage(props: PropTypes) {\n const { type } = props;\n const accounts = useWalletsStore.use.accounts();\n\n const { blockchains } = useMetaStore.use.meta();\n const loadingStatus = useMetaStore.use.loadingStatus();\n const fromChain = useBestRouteStore.use.fromChain();\n const toChain = useBestRouteStore.use.toChain();\n const setFromChain = useBestRouteStore.use.setFromChain();\n const setToChain = useBestRouteStore.use.setToChain();\n const setFromToken = useBestRouteStore.use.setFromToken();\n const setToToken = useBestRouteStore.use.setToToken();\n\n const navigate = useNavigate();\n\n const [list, setList] = useState(blockchains);\n\n useEffect(() => {\n let chainSortedByConnectedWallets: BlockchainMeta[] = [];\n if (accounts.length !== 0) {\n const connectedChains = removeDuplicateFrom(accounts.map((account) => account.chain));\n chainSortedByConnectedWallets = blockchains.sort(\n (blockchainA, blockchainB) =>\n connectedChains.lastIndexOf(blockchainA.name) -\n connectedChains.lastIndexOf(blockchainB.name),\n );\n } else {\n chainSortedByConnectedWallets = blockchains;\n }\n setList(chainSortedByConnectedWallets);\n }, [blockchains.length, accounts.length]);\n\n return (\n <BlockchainSelector\n type={type === 'from' ? 'Source' : 'Destination'}\n list={list}\n selected={type === 'from' ? fromChain : toChain}\n loadingStatus={loadingStatus}\n onChange={(chain) => {\n if (type === 'from') setFromChain(chain);\n else setToChain(chain);\n if (type === 'from' && fromChain?.name != chain.name) setFromToken(null);\n if (type === 'to' && toChain?.name != chain.name) setToToken(null);\n navigate(-1);\n }}\n onBack={navigate.bind(null, -1)}\n />\n );\n}\n","import React from 'react';\nimport { TokenSelector } from '@rango-dev/ui';\nimport { useBestRouteStore } from '../store/bestRoute';\nimport { useMetaStore } from '../store/meta';\nimport { useNavigate } from 'react-router-dom';\nimport { Token } from 'rango-sdk';\nimport { numberToString } from '../utils/numbers';\nimport BigNumber from 'bignumber.js';\nimport { getBalanceFromWallet } from '../utils/wallets';\nimport { useWalletsStore } from '../store/wallets';\nimport { sortedTokens } from '../utils/wallets';\nimport { ZERO } from '../constants/numbers';\n\ninterface PropTypes {\n type: 'from' | 'to';\n}\n\nexport interface TokenWithBalance extends Token {\n balance?: {\n amount: string;\n usdValue: string;\n };\n}\n\nexport function SelectTokenPage(props: PropTypes) {\n const { type } = props;\n const navigate = useNavigate();\n\n const { tokens } = useMetaStore.use.meta();\n const fromChain = useBestRouteStore.use.fromChain();\n const toChain = useBestRouteStore.use.toChain();\n const fromToken = useBestRouteStore.use.fromToken();\n const toToken = useBestRouteStore.use.toToken();\n const setFromToken = useBestRouteStore.use.setFromToken();\n const setToToken = useBestRouteStore.use.setToToken();\n\n const balance = useWalletsStore.use.balances();\n\n const tokenWithSelectedChain = tokens.filter((token) => {\n if (type === 'from') return token.blockchain === fromChain?.name;\n return token.blockchain === toChain?.name;\n });\n\n const TokensWithBalance: TokenWithBalance[] = tokenWithSelectedChain.map((token) => {\n const tokenAmount = numberToString(\n new BigNumber(\n getBalanceFromWallet(balance, token.blockchain, token.symbol, token.address)?.amount ||\n ZERO,\n ),\n );\n\n let tokenUsdValue = '';\n if (token.usdPrice)\n tokenUsdValue = numberToString(\n new BigNumber(\n getBalanceFromWallet(balance, token.blockchain, token.symbol, token.address)?.amount ||\n ZERO,\n ).multipliedBy(token.usdPrice),\n );\n return {\n ...token,\n balance: {\n amount: tokenAmount !== '0' ? tokenAmount : '',\n usdValue: tokenUsdValue !== '0' ? tokenUsdValue : '',\n },\n };\n });\n\n const sortedTokenList = sortedTokens(TokensWithBalance, type, balance);\n\n return (\n <TokenSelector\n type={type === 'from' ? 'Source' : 'Destination'}\n list={sortedTokenList}\n selected={type === 'from' ? fromToken : toToken}\n onChange={(token) => {\n if (type === 'from') setFromToken(token);\n else setToToken(token);\n navigate(-1);\n }}\n onBack={navigate.bind(null, -1)}\n />\n );\n}","import React from 'react';\nimport { Settings } from '@rango-dev/ui';\nimport { useSettingsStore } from '../store/settings';\nimport { useMetaStore } from '../store/meta';\nimport { useNavigate } from 'react-router-dom';\nimport { navigationRoutes } from '../constants/navigationRoutes';\nimport { removeDuplicateFrom } from '../utils/common';\n\nexport function SettingsPage() {\n const slippage = useSettingsStore.use.slippage();\n const setSlippage = useSettingsStore.use.setSlippage();\n const disabledLiquiditySources = useSettingsStore.use.disabledLiquiditySources();\n const customSlippage = useSettingsStore.use.customSlippage();\n const setCustomSlippage = useSettingsStore.use.setCustomSlippage();\n const theme = useSettingsStore.use.theme();\n const setTheme = useSettingsStore.use.setTheme();\n const { swappers } = useMetaStore.use.meta();\n const navigate = useNavigate();\n\n const uniqueSwappersGroups: Array<{\n title: string;\n logo: string;\n type: 'BRIDGE' | 'AGGREGATOR' | 'DEX';\n selected: boolean;\n }> = [];\n removeDuplicateFrom(swappers.map((s) => s.swapperGroup))\n .map((swapperGroup) => {\n return swappers.find((s) => s.swapperGroup === swapperGroup);\n })\n .find((s) => {\n if (s) {\n for (const type of s.types) {\n uniqueSwappersGroups.push({\n title: s.swapperGroup,\n logo: s.logo,\n type,\n selected: !disabledLiquiditySources.includes(s.swapperGroup),\n });\n }\n }\n });\n\n return (\n <Settings\n slippages={[1, 2, 3, 4]}\n selectedSlippage={slippage}\n onSlippageChange={(slippage) => setSlippage(slippage)}\n liquiditySources={uniqueSwappersGroups}\n selectedLiquiditySources={uniqueSwappersGroups.filter((s) => s.selected)}\n onLiquiditySourcesClick={() => navigate(navigationRoutes.liquiditySources)}\n onBack={navigate.bind(null, -1)}\n customSlippage={customSlippage || NaN}\n onCustomSlippageChange={setCustomSlippage}\n minSlippage={1}\n maxSlippage={10}\n selectedTheme={theme}\n onThemeChange={setTheme}\n />\n );\n}\n","import { useNavigate } from 'react-router-dom';\nimport { Alert, SecondaryPage, styled, Wallet } from '@rango-dev/ui';\nimport React, { useState } from 'react';\nimport { getlistWallet } from '../utils/wallets';\nimport { WalletType } from '@rango-dev/wallets-shared';\nimport { useWallets } from '@rango-dev/wallets-core';\n\nconst ListContainer = styled('div', {\n display: 'grid',\n gap: '.5rem',\n gridTemplateColumns: ' repeat(2, minmax(0, 1fr))',\n height: '450px',\n alignContent: 'baseline',\n});\n\nconst AlertContainer = styled('div', {\n paddingBottom: '$16',\n});\nexport function WalletsPage() {\n const navigate = useNavigate();\n const { state, disconnect, getWalletInfo, connect } = useWallets();\n const wallets = getlistWallet(state, getWalletInfo, Object.values(WalletType));\n const [walletErrorMessage, setWalletErrorMessage] = useState('');\n\n const onSelectWallet = async (type: WalletType) => {\n const wallet = state(type);\n try {\n if (walletErrorMessage) setWalletErrorMessage('');\n if (wallet.connected) {\n await disconnect(type);\n } else {\n await connect(type);\n }\n } catch (e) {\n setWalletErrorMessage('Error: ' + e.message);\n }\n };\n return (\n <SecondaryPage\n title=\"Select Wallet\"\n textField={false}\n onBack={() => {\n navigate(-1);\n }}\n Content={\n <>\n {walletErrorMessage && (\n <AlertContainer>\n <Alert type=\"error\" description={walletErrorMessage} />\n </AlertContainer>\n )}\n <ListContainer>\n {wallets.map((info, index) => (\n <Wallet {...info} key={index} onClick={onSelectWallet} />\n ))}\n </ListContainer>\n </>\n }\n />\n );\n}\n","import React, { useEffect } from 'react';\nimport { ConfirmWallets } from '@rango-dev/ui';\nimport { useNavigate } from 'react-router-dom';\nimport { useBestRouteStore } from '../store/bestRoute';\nimport { useWalletsStore } from '../store/wallets';\nimport { useWallets } from '@rango-dev/wallets-core';\nimport { navigationRoutes } from '../constants/navigationRoutes';\nimport { getRequiredChains, getSelectableWallets, SelectedWallet } from '../utils/wallets';\nimport { requiredWallets } from '../utils/swap';\n\nexport interface SelectableWallet extends SelectedWallet {\n image: string;\n selected: boolean;\n}\n\nexport function ConfirmWalletsPage() {\n const navigate = useNavigate();\n\n const bestRoute = useBestRouteStore.use.bestRoute();\n\n const accounts = useWalletsStore.use.accounts();\n const selectedWallets = useWalletsStore.use.selectedWallets();\n const initSelectedWallets = useWalletsStore.use.initSelectedWallets();\n const setSelectedWallet = useWalletsStore.use.setSelectedWallet();\n\n const { getWalletInfo } = useWallets();\n const confirmDisabled = !requiredWallets(bestRoute).every((chain) =>\n selectedWallets.map((wallet) => wallet.chain).includes(chain),\n );\n\n useEffect(() => {\n initSelectedWallets();\n }, []);\n\n return (\n <ConfirmWallets\n requiredWallets={getRequiredChains(bestRoute)}\n selectableWallets={getSelectableWallets(\n accounts,\n selectedWallets,\n getWalletInfo,\n getRequiredChains(bestRoute),\n )}\n onBack={() => navigate(-1)}\n swap={bestRoute!}\n onConfirm={() => navigate(navigationRoutes.confirmSwap)}\n onChange={(wallet) => setSelectedWallet(wallet)}\n confirmDisabled={confirmDisabled}\n />\n );\n}","//TODO: remove mock data after queue manager integration\nexport const pendingSwap: any = {\n creationTime: '1675837879344',\n finishTime: '1675842500799',\n requestId: 'c40b81cd-fdac-4dad-bfef-1c7b2cff715f',\n inputAmount: '2',\n wallets: {\n POLYGON: {\n walletType: 'metamask',\n address: '0x2702d89c1c8658b49c45dd460deebcc45faec03c',\n },\n SOLANA: {\n walletType: 'phantom',\n address: '9QoVnPEHj5HNL4cVicXUF8CVmyhBxTDqUUigVn3UPWwk',\n },\n },\n status: 'success',\n isPaused: false,\n extraMessage: null,\n extraMessageSeverity: 'info',\n extraMessageDetail: '',\n extraMessageErrorCode: null,\n networkStatusExtraMessage: '',\n networkStatusExtraMessageDetail: '',\n lastNotificationTime: null,\n settings: {\n slippage: '13.0',\n disabledSwappersIds: [\n 'PancakeSwapBsc',\n 'ThorChain',\n 'Horizon Bridge',\n 'OneInchOptimism',\n 'OneInchGnosis',\n 'OneInchBsc',\n 'OneInchArbitrum',\n 'OpenOceanFantom',\n 'SushiHarmony',\n 'SushiArbitrum',\n 'OkcSwap',\n 'CherrySwap',\n 'Osmosis',\n 'SolanaWrapper',\n 'Jupiter',\n 'stargate',\n 'AnySwap',\n 'Satellite',\n 'Diffusion',\n 'JunoSwap',\n 'PangolinSwap',\n 'MMFinance',\n 'CronaSwap',\n 'VVSFinance',\n 'MDexHeco',\n 'ParaSwap Polygon',\n 'ParaSwap Bsc',\n 'ParaSwap Avalanche',\n 'AuroraSwap',\n 'Across',\n 'Arbitrum Bridge',\n 'TrisolarisSwap',\n 'Polygon Bridge',\n 'SpookySwap',\n 'Rainbow Bridge',\n 'Lido',\n 'Symbiosis',\n 'Avalanche Bridge',\n 'VoltageSwap',\n 'Stargate Aggregator',\n 'Across Aggregator',\n 'THORChain Aggregator',\n 'CBridge Aggregator',\n 'AnySwap Aggregator',\n 'Hyphen Aggregator',\n 'Optimism Bridge',\n 'OolongSwap',\n 'QuickSwap',\n 'StellaSwap',\n 'Hyphen',\n 'ViperSwap',\n 'cBridge v2.0',\n 'FinKujira',\n 'Hop',\n 'BeamSwap',\n 'SolarbeamSwap',\n 'Sifchain',\n 'Wormhole',\n 'EthUniSwapV2',\n 'OneInchPolygon',\n ],\n disabledSwappersGroups: [],\n },\n simulationResult: {\n outputAmount: '0.084249153',\n swaps: [\n {\n swapperId: 'QuickSwap',\n swapperLogo: 'https://api.rango.exchange/swappers/quick-swap.png',\n swapperType: 'DEX',\n from: {\n symbol: 'USDC',\n logo: 'https://api.rango.exchange/i/ns0AMf',\n blockchainLogo: 'https://api.rango.exchange/blockchains/polygon.svg',\n address: '0x2791bca1f2de4661ed88a30c99a7a9449aa84174',\n blockchain: 'POLYGON',\n decimals: 6,\n usdPrice: 0.999792,\n },\n to: {\n symbol: 'SOL',\n logo: 'https://api.rango.exchange/i/YhJ1nK',\n blockchainLogo: 'https://api.rango.exchange/blockchains/polygon.svg',\n address: '0xd93f7e271cb87c23aaa73edc008a79646d1f9912',\n blockchain: 'POLYGON',\n decimals: 9,\n usdPrice: 23.700913462284028,\n },\n fromAmount: '2.000000',\n fromAmountPrecision: null,\n fromAmountMinValue: null,\n fromAmountMaxValue: null,\n fromAmountRestrictionType: null,\n toAmount: '0.084249153',\n fee: [\n {\n asset: {\n blockchain: 'POLYGON',\n symbol: 'USDC',\n address: '0x2791bca1f2de4661ed88a30c99a7a9449aa84174',\n },\n expenseType: 'DECREASE_FROM_OUTPUT',\n amount: '0.006000000000000000124900090270330110797658562660217285156250000000',\n name: 'Swapper Fee',\n },\n {\n asset: {\n blockchain: 'POLYGON',\n symbol: 'MATIC',\n address: null,\n },\n expenseType: 'FROM_SOURCE_WALLET',\n amount: '0.032758180196833611',\n name: 'Network Fee',\n },\n ],\n estimatedTimeInSeconds: 60,\n swapChainType: 'INTER_CHAIN',\n routes: [\n {\n nodes: [\n {\n nodes: [\n {\n marketName: 'QuickSwap',\n marketId: 'QuickSwap',\n percent: 1,\n },\n ],\n from: 'USDC',\n fromLogo: '',\n fromAddress: '0x2791bca1f2de4661ed88a30c99a7a9449aa84174',\n fromBlockchain: 'POLYGON',\n\n to: 'SOL',\n toLogo: '',\n toAddress: '0xd93f7e271cb87c23aaa73edc008a79646d1f9912',\n toBlockchain: 'POLYGON',\n },\n ],\n },\n ],\n recommendedSlippage: null,\n warnings: [],\n timeStat: {\n min: 7,\n avg: 59,\n max: 736,\n },\n includesDestinationTx: false,\n internalSwaps: null,\n maxRequiredSign: 1,\n fromAsset: {\n blockchain: 'POLYGON',\n symbol: 'USDC',\n address: '0x2791bca1f2de4661ed88a30c99a7a9449aa84174',\n },\n toAsset: {\n blockchain: 'POLYGON',\n symbol: 'SOL',\n address: '0xd93f7e271cb87c23aaa73edc008a79646d1f9912',\n },\n },\n {\n swapperId: 'Wormhole',\n swapperLogo: 'https://api.rango.exchange/swappers/wormhole.png',\n swapperType: 'BRIDGE',\n from: {\n symbol: 'SOL',\n logo: 'https://api.rango.exchange/i/YhJ1nK',\n blockchainLogo: 'https://api.rango.exchange/blockchains/polygon.svg',\n address: '0xd93f7e271cb87c23aaa73edc008a79646d1f9912',\n blockchain: 'POLYGON',\n decimals: 9,\n usdPrice: 23.700913462284028,\n },\n to: {\n symbol: 'SOL',\n logo: 'https://api.rango.exchange/i/eLHYrb',\n blockchainLogo: 'https://api.rango.exchange/blockchains/solana.svg',\n address: null,\n blockchain: 'SOLANA',\n decimals: 9,\n usdPrice: 23.97093428787272,\n },\n fromAmount: '0.084249153',\n fromAmountPrecision: null,\n fromAmountMinValue: null,\n fromAmountMaxValue: null,\n fromAmountRestrictionType: null,\n toAmount: '0.084249153',\n fee: [\n {\n asset: {\n blockchain: 'POLYGON',\n symbol: 'MATIC',\n address: null,\n },\n expenseType: 'FROM_SOURCE_WALLET',\n amount: '0.042205949048288939',\n name: 'Network Fee',\n },\n {\n asset: {\n blockchain: 'SOLANA',\n symbol: 'SOL',\n address: null,\n },\n expenseType: 'FROM_DESTINATION_WALLET',\n amount: '0.000070000',\n name: 'Swapper Fee',\n },\n ],\n estimatedTimeInSeconds: 150,\n swapChainType: 'INTRA_CHAIN',\n routes: null,\n recommendedSlippage: null,\n warnings: [],\n timeStat: {\n min: 42,\n avg: 146,\n max: 5582,\n },\n includesDestinationTx: true,\n internalSwaps: null,\n maxRequiredSign: 6,\n fromAsset: {\n blockchain: 'POLYGON',\n symbol: 'SOL',\n address: '0xd93f7e271cb87c23aaa73edc008a79646d1f9912',\n },\n toAsset: {\n blockchain: 'SOLANA',\n symbol: 'SOL',\n address: null,\n },\n },\n ],\n resultType: 'OK',\n },\n validateBalanceOrFee: true,\n steps: [\n {\n id: 1,\n fromBlockchain: 'POLYGON',\n fromSymbol: 'USDC',\n fromSymbolAddress: '0x2791bca1f2de4661ed88a30c99a7a9449aa84174',\n fromDecimals: 6,\n fromAmountPrecision: null,\n fromAmountMinValue: null,\n fromAmountMaxValue: null,\n toBlockchain: 'POLYGON',\n fromLogo: 'https://api.rango.exchange/i/ns0AMf',\n fromBlockchainLogo: 'https://api.rango.exchange/blockchains/polygon.svg',\n toBlockchainLogo: 'https://api.rango.exchange/blockchains/solana.svg',\n toSymbol: 'SOL',\n toSymbolAddress: '0xd93f7e271cb87c23aaa73edc008a79646d1f9912',\n toDecimals: 9,\n toLogo: 'https://api.rango.exchange/i/YhJ1nK',\n startTransactionTime: 1675837904769,\n swapperId: 'QuickSwap',\n swapperLogo: 'https://api.rango.exchange/swappers/quick-swap.png',\n expectedOutputAmountHumanReadable: '0.084249153',\n outputAmount: '0.084206923',\n status: 'success',\n networkStatus: 'networkChanged',\n executedTransactionId: '0xb2a6b1b497b660bd58d8583d05425ea1b89fa19efc18c9b3baa501abf5f8cee9',\n externalTransactionId: null,\n explorerUrl: [\n {\n url: 'https://polygonscan.com/tx/0xb2a6b1b497b660bd58d8583d05425ea1b89fa19efc18c9b3baa501abf5f8cee9',\n description: 'swap',\n },\n ],\n trackingCode: null,\n cosmosTransaction: null,\n solanaTransaction: null,\n evmTransaction: {\n type: 'EVM',\n blockChain: 'POLYGON',\n isApprovalTx: false,\n from: '0x2702d89c1c8658b49c45dd460deebcc45faec03c',\n to: '0x38F7Aa5370439E879370E24AdD063a11Bd74610D',\n spender: null,\n data: '0xa60fdfb60000000000000000000000002791bca1f2de4661ed88a30c99a7a9449aa84174000000000000000000000000d93f7e271cb87c23aaa73edc008a79646d1f991200000000000000000000000000000000000000000000000000000000001e84800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000a5e0829caced8ffdd4de3c43696c57f7d7a678ff0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000010438ed173900000000000000000000000000000000000000000000000000000000001e848000000000000000000000000000000000000000000000000000000000045e6b7b00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000038f7aa5370439e879370e24add063a11bd74610d0000000000000000000000000000000000000000000000000000000063e348d800000000000000000000000000000000000000000000000000000000000000020000000000000000000000002791bca1f2de4661ed88a30c99a7a9449aa84174000000000000000000000000d93f7e271cb87c23aaa73edc008a79646d1f991200000000000000000000000000000000000000000000000000000000',\n value: null,\n gasLimit: '0x62f20',\n gasPrice: '247516799843',\n nonce: null,\n },\n evmApprovalTransaction: null,\n transferTransaction: null,\n diagnosisUrl: null,\n internalSteps: null,\n },\n {\n id: 2,\n fromBlockchain: 'POLYGON',\n fromSymbol: 'SOL',\n fromSymbolAddress: '0xd93f7e271cb87c23aaa73edc008a79646d1f9912',\n fromDecimals: 9,\n fromAmountPrecision: null,\n fromAmountMinValue: null,\n fromAmountMaxValue: null,\n toBlockchain: 'SOLANA',\n fromLogo: 'https://api.rango.exchange/i/YhJ1nK',\n fromBlockchainLogo: 'https://api.rango.exchange/blockchains/polygon.svg',\n toBlockchainLogo: 'https://api.rango.exchange/blockchains/solana.svg',\n toSymbol: 'SOL',\n toSymbolAddress: null,\n toDecimals: 9,\n toLogo: 'https://api.rango.exchange/i/eLHYrb',\n startTransactionTime: 1675842459076,\n swapperId: 'Wormhole',\n swapperLogo: 'https://api.rango.exchange/swappers/wormhole.png',\n expectedOutputAmountHumanReadable: '0.084249153',\n outputAmount: '0.08420692',\n status: 'failed',\n networkStatus: 'networkChanged',\n executedTransactionId:\n '5MGhqrNRwRKkHGU11S37mgF7LscXWhAvwBeAWEdxcmV9AD6bNqig6iCCzC4mKBH41JBexKb6kj4axLfcH4XZQsT9',\n externalTransactionId: null,\n explorerUrl: [\n {\n url: 'https://solscan.io/tx/2wvqHEy5hCDfpwZM5sZhBpFxXZL7p6PRqpDdCZGpGF85deGQU9oiBC9Jgoszdo8x9hjkySktGPYzubcXP8pxW3H4',\n description: 'Associate Token',\n },\n {\n url: 'https://polygonscan.com/tx/0xcdd0c684fc203d41a0eaacfba2201ab0a48845bb6d0f0805fb4a70a0f971a599',\n description: 'Transfer',\n },\n {\n url: 'https://solscan.io/tx/5rc5EHfMrChB749RsJew1ze35yQMddafkQqy5JFqcdKPJ6j2NiggGT7UDmFDAXzP2AwHGyFj2XjaYr7RQjjc1KmH',\n description: 'Verify vaa 1',\n },\n {\n url: 'https://solscan.io/tx/5xNgHvdzu63fmF7uojrHuqcHC3NgErpdGiSg38X7KZ7EEjTyPWt8W1QUtuyUFcNcSjGkFGrGzfnkRUbe4Hj6oY2v',\n description: 'Verify vaa 2',\n },\n {\n url: 'https://solscan.io/tx/3FnXLYwwpc93o2TyjKNDfiBcRDZ9W1qJVdmCjTRw3kz4Jrwjr5zQzLSbsbbBzqFNMSxBFcUDaiQ7pP4DL5coUGq',\n description: 'Post vaa',\n },\n {\n url: 'https://solscan.io/tx/5MGhqrNRwRKkHGU11S37mgF7LscXWhAvwBeAWEdxcmV9AD6bNqig6iCCzC4mKBH41JBexKb6kj4axLfcH4XZQsT9',\n description: 'Redeem',\n },\n ],\n trackingCode: null,\n cosmosTransaction: null,\n solanaTransaction: {\n type: 'SOLANA',\n blockChain: 'SOLANA',\n from: '9QoVnPEHj5HNL4cVicXUF8CVmyhBxTDqUUigVn3UPWwk',\n identifier: 'redeem',\n instructions: [\n {\n keys: [\n {\n pubkey: '9QoVnPEHj5HNL4cVicXUF8CVmyhBxTDqUUigVn3UPWwk',\n isSigner: true,\n isWritable: true,\n },\n {\n pubkey: 'DapiQYH3BGonhN8cngWcXQ6SrqSm3cwysoznoHr6Sbsx',\n isSigner: false,\n isWritable: false,\n },\n {\n pubkey: 'Wf8aqunuZ9y1tprCihMateij299Pa57XL15a6EQz9qt',\n isSigner: false,\n isWritable: false,\n },\n {\n pubkey: 'FTWSFuqyc6B5BbarBzuHdBofA2ks12eyRNmUfKmDiUN1',\n isSigner: false,\n isWritable: true,\n },\n {\n pubkey: 'J6fNPeeJc1E2zDRUtvD9aaC9kBsEq7JaFr1oa97DAJhj',\n isSigner: false,\n isWritable: false,\n },\n {\n pubkey: '8nUPRxuXUJPbWiCbqCPrVLkmXqR8LdifLrRW3VjCQDhZ',\n isSigner: false,\n isWritable: true,\n },\n {\n pubkey: '8nUPRxuXUJPbWiCbqCPrVLkmXqR8LdifLrRW3VjCQDhZ',\n isSigner: false,\n isWritable: true,\n },\n {\n pubkey: '2nQNF8F9LLWMqdjymiLK2u8HoHMvYa4orCXsp3w65fQ2',\n isSigner: false,\n isWritable: true,\n },\n {\n pubkey: 'So11111111111111111111111111111111111111112',\n isSigner: false,\n isWritable: false,\n },\n {\n pubkey: 'GugU1tP7doLeTw9hQP51xRJyS8Da1fWxuiy2rVrnMD2m',\n isSigner: false,\n isWritable: false,\n },\n {\n pubkey: 'SysvarRent111111111111111111111111111111111',\n isSigner: false,\n isWritable: false,\n },\n {\n pubkey: '11111111111111111111111111111111',\n isSigner: false,\n isWritable: false,\n },\n {\n pubkey: 'worm2ZoG2kUd4vFXhvjh93UUH596ayRfgQ2MgjNMTth',\n isSigner: false,\n isWritable: false,\n },\n {\n pubkey: 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA',\n isSigner: false,\n isWritable: false,\n },\n ],\n programId: 'wormDTUJ6AWPNvk59vGQbDvGJmqbDTdgWgAqcLBCgUb',\n data: [2],\n },\n {\n keys: [\n {\n pubkey: '9QoVnPEHj5HNL4cVicXUF8CVmyhBxTDqUUigVn3UPWwk',\n isSigner: true,\n isWritable: true,\n },\n {\n pubkey: '72pK2FqwMYPr9ajAhzLNQq8e5S2Rf33MGpVXxdXwCT6V',\n isSigner: true,\n isWritable: true,\n },\n ],\n programId: '11111111111111111111111111111111',\n data: [\n 0, 0, 0, 0, -16, 29, 31, 0, 0, 0, 0, 0, -91, 0, 0, 0, 0, 0, 0, 0, 6, -35, -10, -31,\n -41, 101, -95, -109, -39, -53, -31, 70, -50, -21, 121, -84, 28, -76, -123, -19, 95,\n 91, 55, -111, 58, -116, -11, -123, 126, -1, 0, -87,\n ],\n },\n {\n keys: [\n {\n pubkey: '72pK2FqwMYPr9ajAhzLNQq8e5S2Rf33MGpVXxdXwCT6V',\n isSigner: false,\n isWritable: true,\n },\n {\n pubkey: 'So11111111111111111111111111111111111111112',\n isSigner: false,\n isWritable: false,\n },\n {\n pubkey: '9QoVnPEHj5HNL4cVicXUF8CVmyhBxTDqUUigVn3UPWwk',\n isSigner: false,\n isWritable: false,\n },\n {\n pubkey: 'SysvarRent111111111111111111111111111111111',\n isSigner: false,\n isWritable: false,\n },\n ],\n programId: 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA',\n data: [1],\n },\n {\n keys: [\n {\n pubkey: '8nUPRxuXUJPbWiCbqCPrVLkmXqR8LdifLrRW3VjCQDhZ',\n isSigner: false,\n isWritable: true,\n },\n {\n pubkey: '72pK2FqwMYPr9ajAhzLNQq8e5S2Rf33MGpVXxdXwCT6V',\n isSigner: false,\n isWritable: true,\n },\n {\n pubkey: '9QoVnPEHj5HNL4cVicXUF8CVmyhBxTDqUUigVn3UPWwk',\n isSigner: true,\n isWritable: false,\n },\n ],\n programId: 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA',\n data: [3, 72, -27, 4, 5, 0, 0, 0, 0],\n },\n {\n keys: [\n {\n pubkey: '72pK2FqwMYPr9ajAhzLNQq8e5S2Rf33MGpVXxdXwCT6V',\n isSigner: false,\n isWritable: true,\n },\n {\n pubkey: '9QoVnPEHj5HNL4cVicXUF8CVmyhBxTDqUUigVn3UPWwk',\n isSigner: false,\n isWritable: true,\n },\n {\n pubkey: '9QoVnPEHj5HNL4cVicXUF8CVmyhBxTDqUUigVn3UPWwk',\n isSigner: true,\n isWritable: false,\n },\n ],\n programId: 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA',\n data: [9],\n },\n ],\n recentBlockhash: '2wBCvR3jVNj6wzL8vHSuqTRtxBYiwhtoY6Gkp6WaBxSG',\n signatures: [\n {\n publicKey: '72pK2FqwMYPr9ajAhzLNQq8e5S2Rf33MGpVXxdXwCT6V',\n signature: [\n -116, 17, -5, 86, -122, 120, -7, -53, -29, -15, -70, -100, 16, 48, 113, -42, 8, 126,\n 75, -13, 63, -31, -17, 1, 74, 85, 77, 90, 98, -15, 104, 63, 4, -74, 45, -3, -3, -117,\n -24, -56, 20, -89, -40, 33, 125, -120, -44, -75, 17, 69, 20, -48, 106, 48, 16, -19,\n 83, 123, -77, 93, -20, -27, -77, 7,\n ],\n },\n ],\n serializedMessage: null,\n },\n evmTransaction: null,\n evmApprovalTransaction: null,\n transferTransaction: null,\n diagnosisUrl: null,\n internalSteps: [\n {\n name: 'associate token address',\n state: 'SUCCESSED',\n current: false,\n },\n {\n name: 'transfer',\n state: 'SUCCESSED',\n current: false,\n },\n {\n name: 'signed vaa',\n state: 'SUCCESSED',\n current: false,\n },\n {\n name: 'verify vaa#1',\n state: 'SUCCESSED',\n current: false,\n },\n {\n name: 'verify vaa#2',\n state: 'SUCCESSED',\n current: false,\n },\n {\n name: 'post vaa',\n state: 'SUCCESSED',\n current: false,\n },\n {\n name: 'redeem',\n state: 'SUCCESSED',\n current: true,\n },\n ],\n },\n ],\n};\n","import { SwapHistory } from '@rango-dev/ui';\nimport React from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport { pendingSwap } from '../mockData/pendingSwap';\n\nexport function SwapDetailsPage() {\n const navigate = useNavigate();\n return <SwapHistory onBack={navigate.bind(null, -1)} pendingSwap={pendingSwap} />;\n}\n","import React from 'react';\nimport { useRoutes } from 'react-router-dom';\nimport { navigationRoutes } from '../constants/navigationRoutes';\nimport { ConfirmSwapPage } from '../pages/ConfirmSwapPage';\nimport { HistoryPage } from '../pages/HistoryPage';\nimport { Home } from '../pages/Home';\nimport { LiquiditySourcePage } from '../pages/LiquiditySourcesPage';\nimport { SelectChainPage } from '../pages/SelectChainPage';\nimport { SelectTokenPage } from '../pages/SelectTokenPage';\nimport { SettingsPage } from '../pages/SettingsPage';\nimport { WalletsPage } from '../pages/WalletsPage';\nimport { ConfirmWalletsPage } from '../pages/ConfirmWalletsPage';\nimport { SwapDetailsPage } from '../pages/SwapDetailsPage';\n\nexport const AppRoutes = () =>\n useRoutes([\n { path: navigationRoutes.home, element: <Home /> },\n { path: navigationRoutes.fromChain, element: <SelectChainPage type=\"from\" /> },\n { path: navigationRoutes.toChain, element: <SelectChainPage type=\"to\" /> },\n { path: navigationRoutes.fromToken + '/*', element: <SelectTokenPage type=\"from\" /> },\n { path: navigationRoutes.toToken, element: <SelectTokenPage type=\"to\" /> },\n { path: navigationRoutes.settings, element: <SettingsPage /> },\n {\n path: navigationRoutes.liquiditySources,\n element: <LiquiditySourcePage />,\n },\n { path: navigationRoutes.history, element: <HistoryPage /> },\n { path: navigationRoutes.wallets, element: <WalletsPage /> },\n { path: navigationRoutes.confirmSwap, element: <ConfirmSwapPage /> },\n { path: navigationRoutes.confirmWallets, element: <ConfirmWalletsPage /> },\n { path: navigationRoutes.swapDetails, element: <SwapDetailsPage /> },\n ]);\n","import { Button, AddWalletIcon, Typography, styled } from '@rango-dev/ui';\nimport React from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport { useWallets } from '@rango-dev/wallets-core';\nimport { navigationRoutes } from '../constants/navigationRoutes';\nimport { AppRoutes } from './AppRoutes';\nimport { useWalletsStore } from '../store/wallets';\nimport { calculateWalletUsdValue, getSelectableWallets } from '../utils/wallets';\n\nconst Header = styled('div', {\n display: 'flex',\n width: '100%',\n justifyContent: 'end',\n});\n\nconst WalletImage = styled('img', {\n width: '$24',\n height: '$24',\n marginLeft: -15,\n marginRight: '$6',\n borderRadius: '99999px',\n});\n\nexport function Layout() {\n const navigate = useNavigate();\n const { balances, accounts, selectedWallets } = useWalletsStore();\n const { getWalletInfo } = useWallets();\n const filterSelelectedWallets = getSelectableWallets(accounts, selectedWallets, getWalletInfo);\n const totalBalance = calculateWalletUsdValue(balances);\n\n return (\n <>\n <Header>\n <Button\n size=\"small\"\n suffix={<AddWalletIcon size={20} />}\n variant=\"ghost\"\n flexContent\n onClick={() => navigate(navigationRoutes.wallets)}>\n {accounts?.length ? (\n filterSelelectedWallets.map((selectedWallet, index) => (\n <WalletImage key={index} src={selectedWallet.image} />\n ))\n ) : (\n <></>\n )}\n <Typography variant=\"body2\">\n {!accounts?.length ? 'Connect Wallet' : `$${totalBalance || 0}`}\n </Typography>\n </Button>\n </Header>\n <AppRoutes />\n </>\n );\n}\n","import { globalCss } from '@rango-dev/ui';\n\nexport const globalStyles = globalCss({\n '*': {\n '&::-webkit-scrollbar': { width: '$8' },\n '&::-webkit-scrollbar-thumb': {\n backgroundColor: '$neutrals400',\n },\n '&::-webkit-scrollbar-thumb:hover': {\n backgroundColor: '$neutrals500',\n },\n '&::-webkit-scrollbar-track': {\n backgroundColor: '$neutrals300',\n },\n },\n});\n","import { lightTheme, darkTheme } from '@rango-dev/ui';\nimport { useState, useEffect } from 'react';\nimport { useMetaStore } from '../store/meta';\nimport { useSettingsStore } from '../store/settings';\n\nexport function useTheme() {\n const theme = useSettingsStore.use.theme();\n const fetchMeta = useMetaStore.use.fetchMeta();\n\n const [OSTheme, setOSTheme] = useState(lightTheme);\n useEffect(() => {\n (async () => {\n await fetchMeta();\n })();\n\n const switchTheme = (event: MediaQueryListEvent) => {\n if (event.matches) setOSTheme(darkTheme);\n else setOSTheme(lightTheme);\n };\n\n if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {\n setOSTheme(darkTheme);\n }\n\n window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', switchTheme);\n return () => {\n window.matchMedia('(prefers-color-scheme: dark)').removeEventListener('change', switchTheme);\n };\n }, []);\n\n const getActiveTheme = () => {\n if (theme === 'auto') return OSTheme;\n else return theme === 'dark' ? darkTheme : lightTheme;\n };\n\n return { activeTheme: getActiveTheme() };\n}\n","import { SwapContainer } from '@rango-dev/ui';\nimport React from 'react';\nimport { AppRouter } from './components/AppRouter';\nimport { useMetaStore } from './store/meta';\nimport { Events, Provider } from '@rango-dev/wallets-core';\nimport { allProviders } from '@rango-dev/provider-all';\nimport { EventHandler } from '@rango-dev/wallets-core/dist/wallet';\nimport { isEvmBlockchain, Network } from '@rango-dev/wallets-shared';\nimport {\n prepareAccountsForWalletStore,\n walletAndSupportedChainsNames,\n} from './utils/wallets';\nimport { useWalletsStore } from './store/wallets';\nimport { Layout } from './components/Layout';\nimport { globalStyles } from './globalStyles';\nimport { useTheme } from './hooks/useTheme';\n\nconst providers = allProviders();\n\nexport const SwapBox: React.FC = () => {\n globalStyles();\n const { activeTheme } = useTheme();\n const { blockchains } = useMetaStore.use.meta();\n const disconnectWallet = useWalletsStore.use.disconnectWallet();\n const connectWallet = useWalletsStore.use.connectWallet();\n const evmBasedChainNames = blockchains\n .filter(isEvmBlockchain)\n .map((chain) => chain.name);\n\n const onUpdateState: EventHandler = (type, event, value, supportedChains) => {\n if (event === Events.ACCOUNTS) {\n if (value) {\n const supportedChainNames: Network[] | null =\n //@ts-ignore\n walletAndSupportedChainsNames(supportedChains);\n const data = prepareAccountsForWalletStore(\n type,\n value,\n evmBasedChainNames,\n supportedChainNames\n );\n connectWallet(data);\n } else {\n disconnectWallet(type);\n }\n }\n };\n\n return (\n <Provider\n allBlockChains={blockchains}\n providers={providers}\n onUpdateState={onUpdateState}\n >\n <div id=\"pageContainer\" className={activeTheme}>\n <SwapContainer>\n <AppRouter>\n <Layout />\n </AppRouter>\n </SwapContainer>\n </div>\n </Provider>\n );\n};\n"],"names":["ZERO","BigNumber","numberToString","number","minDecimals","maxDecimals","n","roundingMode","maxI","i","toFixed","eq","gte","toFormat","Math","min","max","pow","isEqualTo","getBestRouteToTokenUsdPrice","bestRoute","result","swaps","length","to","usdPrice","compareRoutes","route1","route2","inputAmount","fromTokenUsdPrice","toTokenUsdPrice","outUsdValue","outputAmount","multipliedBy","isNaN","inUsdValue","outToInRatio","lte","div","minus","disableSwapButton","parseInt","isChanged","warningMessage","out1","out2","changePercent","toNumber","route1Swaps","route2Swaps","swapperId","symbol","getRequiredBalanceOfWallet","wallet","fee","relatedFeeStatus","find","item","blockchain","chain","wallets","it","address","toLowerCase","requiredAssets","createSelectors","_store","store","use","k","Object","keys","getState","s","getUsdValue","token","amount","useBestRouteStore","create","immer","set","fromChain","fromToken","inputUsdValue","outputUsdValue","toChain","toToken","setBestRoute","state","setFromChain","setFromToken","setToChain","setToToken","setInputAmount","httpService","RangoClient","process","env","REACT_API_KEY","removeDuplicateFrom","array","Array","from","Set","useMetaStore","meta","blockchains","popularTokens","swappers","tokens","loadingStatus","fetchMeta","response","getAllMetadata","chainThatHasTokenInMetaResponse","map","t","enabledChains","filter","enabled","includes","name","sort","a","b","error","SearchParams","searchParamsToToken","searchParams","symbolAndAddress","split","UpdateUrl","firstRender","useRef","setSearchParams","useSearchParams","location","useLocation","useEffect","current","fromChainString","fromTokenString","toChainString","toTokenString","fromAmount","FROM_CHAIN","FROM_TOKEN","TO_CHAIN","TO_TOKEN","FROM_AMOUNT","toString","replace","pathname","fronChainString","get","AppRouter","children","isRouterInContext","useInRouterContext","Router","Fragment","MemoryRouter","React","getStateWallet","connected","WalletStatus","CONNECTED","connecting","CONNECTING","installed","NOT_INSTALLED","DISCONNECTED","getlistWallet","getWalletInfo","list","excludedWallets","WalletType","UNKNOWN","TERRA_STATION","LEAP","type","img","image","installLink","walletAndSupportedChainsNames","supportedChains","blockchainMeta","prepareAccountsForWalletStore","accounts","evmBasedChains","supportedChainNames","addAccount","network","newAccount","walletType","push","forEach","account","readAccountAddress","hasLimitation","isSupported","isUnknown","Network","Unknown","notSupportedNetworkByWallet","isUknownAndEvmBased","isEvmAddress","isEvmBasedChain","evmChainsSupportedByWallet","getRequiredChains","route","swap","currentStepFromBlockchain","currentStepToBlockchain","lastAddedWallet","getSelectableWallets","selectedWallets","requiredChains","connectedWallets","selected","removeDuplicateWallets","arr","key","Map","values","getBalanceFromWallet","balances","selectedChainBalances","balance","bl","parseFloat","isAccountAndBalanceMatched","makeBalanceFor","retrivedBalance","blockChain","explorerUrl","loading","tokenBalance","asset","ticker","rawAmount","decimal","decimals","shiftedBy","logo","getUsdPrice","resetBalanceState","calculateWalletUsdValue","uniqueAccountAddresses","uniqueBalane","reduce","acc","findIndex","modifiedWalletBlockchains","modifiedWalletBlockchain","has","add","accountAddress","total","flatMap","plus","console","log","numberWithThousandSeperator","parts","join","sortedTokens","position","walletSymbols","gt","sortedList","size","tokenA","tokenB","compareBalance","isSecondaryCoin","tokenAUsdValue","tokenBUsdValue","allTokens","toUpperCase","useWalletsStore","connectWallet","concat","getWalletsDetails","Error","disconnectWallet","initSelectedWallets","anyWalletSelected","firstWalletWithMatchedChain","setSelectedWallet","selectedWallet","navigationRoutes","home","settings","liquiditySources","history","confirmSwap","confirmWallets","swapDetails","useSettingsStore","persist","slippage","customSlippage","infinitApprove","disabledLiquiditySources","theme","setSlippage","setCustomSlippage","toggleAllLiquiditySources","allSwappers","swapper","swapperGroup","toggleInfinitApprove","toggleLiquiditySource","liquiditySource","setTheme","getOutputRatio","outputRatioHasWarning","outputRatio","hasLimitError","minimum","fromAmountMinValue","maximum","fromAmountMaxValue","isExclusive","fromAmountRestrictionType","lt","getSwapButtonTitle","highValueLoss","priceImpactCanNotBeComputed","needsToWarnEthOnPath","canComputePriceImpact","calculatePendingSwap","validateBalanceOrFee","simulationResult","creationTime","Date","getTime","finishTime","requestId","status","isPaused","extraMessage","extraMessageSeverity","extraMessageDetail","extraMessageErrorCode","networkStatusExtraMessage","networkStatusExtraMessageDetail","lastNotificationTime","steps","id","fromBlockchain","fromSymbol","fromSymbolAddress","fromDecimals","fromAmountPrecision","toBlockchain","fromLogo","toSymbol","toSymbolAddress","toDecimals","toLogo","startTransactionTime","expectedOutputAmountHumanReadable","toAmount","networkStatus","executedTransactionId","externalTransactionId","trackingCode","cosmosTransaction","solanaTransaction","starknetTransaction","starknetApprovalTransaction","tronTransaction","tronApprovalTransaction","evmTransaction","evmApprovalTransaction","transferTransaction","diagnosisUrl","internalSteps","fromBlockchainLogo","toBlockchainLogo","swapperLogo","swapperType","requiredWallets","useConfirmSwap","setLoading","useState","setError","warning","setWarning","data","setData","feeStatus","setFeeStatus","bestRouteChanged","setBestRouteChanged","enoughBalance","setEnoughBalance","hasEnoughBalanceOrProperSlippage","userSlippage","routeChanged","validationStatus","hasEnoughBalance","ok","slippages","recommendedSlippage","slippageError","minSlippage","checkFeeAndBalance","selectedWalletsMap","chainAndAccounts","addresses","r","getBestRoute","checkPrerequisites","swapperGroups","swappersGroupsExclude","catch","message","requestAmount","routeChangeStatus","hasEnoughBalanceOrSlippage","proceedAnyway","disabledSwappersGroups","disabledSwappersIds","newSwap","then","newBestRoute","ConfirmSwapPage","navigate","useNavigate","ConfirmSwap","onConfirm","bind","onBack","pendingSwap","OSMOSIS","blockchainLogo","expenseType","estimatedTimeInSeconds","swapChainType","routes","nodes","marketName","marketId","percent","fromAddress","toAddress","timeStat","avg","includesDestinationTx","url","description","TransactionType","COSMOS","fromWalletAddress","chainId","account_number","sequence","msgs","__type","value","sender","pool_id","token_out_denom","token_in","denom","token_out_min_amount","protoMsgs","type_url","memo","source","gas","signType","rpcUrl","rawTransfer","HistoryPage","History","onSwapClick","ButtonsContainer","styled","display","HeaderButtons","props","onClickRefresh","Tooltip","content","Button","variant","onClick","RetryIcon","HistoryIcon","SettingsIcon","HeaderContainer","justifyContent","alignItems","width","padding","Header","Typography","Box","flexDirection","Container","boxSizing","backgroundColor","borderRadius","StyledImage","maxHeight","Options","ImagePlaceholder","height","OutputContainer","flexGrow","border","paddingLeft","paddingRight","TokenInfo","tokenBalanceReal","ItemSuffix","style","InfoCircleIcon","color","AngleDownIcon","className","disabled","prefix","src","suffix","align","marginRight","displayName","TextField","autoFocus","placeholder","right","bottom","onChange","event","onAmountChange","target","undefined","paddingTop","Logo","fill","margin","StyledAnchor","textDecoration","BottomLogo","href","xmlns","viewBox","d","SwithFromAndTo","count","Footer","useBestRoute","setCount","abortControllerRef","retry","prev","abort","abortController","AbortController","requestBody","signal","res","code","errorMessages","genericServerError","SwitchButtonContainer","top","BestRouteContainer","Alerts","Home","waningMessage","loadingMetaStatus","swithFromAndTo","fetchingBestRoute","bestRouteError","noConnectedWallet","noRoutesFound","errorMessage","showBestRoute","buttonTitle","buttonDisabled","VerticalSwapIcon","BestRoute","Alert","LiquiditySourcePage","uniqueSwappersGroups","types","title","LiquiditySourcesSelector","toggleAll","SelectChainPage","setList","chainSortedByConnectedWallets","connectedChains","blockchainA","blockchainB","lastIndexOf","BlockchainSelector","SelectTokenPage","tokenWithSelectedChain","TokensWithBalance","tokenAmount","tokenUsdValue","usdValue","sortedTokenList","TokenSelector","SettingsPage","Settings","selectedSlippage","onSlippageChange","selectedLiquiditySources","onLiquiditySourcesClick","NaN","onCustomSlippageChange","maxSlippage","selectedTheme","onThemeChange","ListContainer","gap","gridTemplateColumns","alignContent","AlertContainer","paddingBottom","WalletsPage","disconnect","connect","useWallets","walletErrorMessage","setWalletErrorMessage","onSelectWallet","e","SecondaryPage","textField","Content","info","index","Wallet","ConfirmWalletsPage","confirmDisabled","every","ConfirmWallets","selectableWallets","POLYGON","SOLANA","warnings","internalSwaps","maxRequiredSign","fromAsset","toAsset","resultType","isApprovalTx","spender","gasLimit","gasPrice","nonce","identifier","instructions","pubkey","isSigner","isWritable","programId","recentBlockhash","signatures","publicKey","signature","serializedMessage","SwapDetailsPage","SwapHistory","AppRoutes","useRoutes","path","element","WalletImage","marginLeft","Layout","filterSelelectedWallets","totalBalance","AddWalletIcon","flexContent","globalStyles","globalCss","useTheme","OSTheme","setOSTheme","lightTheme","switchTheme","matches","darkTheme","window","matchMedia","addEventListener","removeEventListener","getActiveTheme","activeTheme","providers","allProviders","SwapBox","evmBasedChainNames","isEvmBlockchain","onUpdateState","Events","ACCOUNTS","Provider","allBlockChains","SwapContainer"],"mappings":"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AAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAC7D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAC1D,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC5D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAC7D,EAAE,EAAE,EAAE,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AE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAC7D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE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EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAC7D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAC1D,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC5D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAC7D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;SAE5D,CACF;QACDS,IAAI,EAAE,EAAE;QACRC,MAAM,EAAE,IAAI;QACZla,GAAG,EAAE;UACHma,GAAG,EAAE,QAAQ;UACb7Y,MAAM,EAAE,CACN;YACEuY,KAAK,EAAE,OAAO;YACdvY,MAAM,EAAE;WACT;SAEJ;QACD8Y,QAAQ,EAAE,OAAO;QACjBC,MAAM,EAAE;OACT;MACDC,WAAW,EAAE;KACd;IACD1G,iBAAiB,EAAE,IAAI;IACvBK,cAAc,EAAE,IAAI;IACpBC,sBAAsB,EAAE,IAAI;IAC5BC,mBAAmB,EAAE,IAAI;IACzBC,YAAY,EAAE,IAAI;IAClBC,aAAa,EAAE;GAChB;CAEJ,CACF;AAED,SAAgBkG,WAAW;EACzB,MAAM/C,QAAQ,GAAGC,0BAAW,EAAE;EAC9B,OACE7Q,6BAAC4T,UAAO;IACNhT,IAAI,EAAEsQ,WAAW;IACjB2C,WAAW,EAAE,MAAMjD,QAAQ,CAAC3I,gBAAgB,CAACO,WAAW,CAAC;IACzDyI,MAAM,EAAE;MACNL,QAAQ,CAAC,CAAC,CAAC,CAAC;;IAEd;AAEN;;AC7zBA,MAAMkD,gBAAgB,gBAAGC,SAAM,CAAC,KAAK,EAAE;EACrCC,OAAO,EAAE;CACV,CAAC;AAEF,SAAgBC,aAAa,CAACC,KAAgB;EAC5C,MAAM;IAAEC;GAAgB,GAAGD,KAAK;EAChC,MAAMtD,QAAQ,GAAGC,0BAAW,EAAE;EAE9B,OACE7Q,6BAAC8T,gBAAgB,QACf9T,6BAACoU,UAAO;IAACC,OAAO,EAAC;KACfrU,6BAACsU,SAAM;IAACC,OAAO,EAAC,OAAO;IAACC,OAAO,EAAEL,cAAc,CAACnD,IAAI,CAAC,IAAI;KACvDhR,6BAACyU,YAAS;IAAC5N,IAAI,EAAE;IAAM,CAChB,CACD,EACV7G,6BAACoU,UAAO;IAACC,OAAO,EAAC;KACfrU,6BAACsU,SAAM;IAACC,OAAO,EAAC,OAAO;IAACC,OAAO,EAAE,MAAM5D,QAAQ,CAAC3I,gBAAgB,CAACI,OAAO;KACtErI,6BAAC0U,cAAW;IAAC7N,IAAI,EAAE;IAAM,CAClB,CACD,EACV7G,6BAACoU,UAAO;IAACC,OAAO,EAAC;KACfrU,6BAACsU,SAAM;IAACC,OAAO,EAAC,OAAO;IAACC,OAAO,EAAE,MAAM5D,QAAQ,CAAC3I,gBAAgB,CAACE,QAAQ;KACvEnI,6BAAC2U,eAAY;IAAC9N,IAAI,EAAE;IAAM,CACnB,CACD,CACO;AAEvB;;AC7BO,MAAM+N,eAAe,gBAAGb,SAAM,CAAC,KAAK,EAAE;EAC3CC,OAAO,EAAE,MAAM;EACfa,cAAc,EAAE,eAAe;EAC/BC,UAAU,EAAE,QAAQ;EACpBC,KAAK,EAAE,MAAM;EACbC,OAAO,EAAE;CACV,CAAC;AAMF,SAAgBC,MAAM,CAACf,KAAgB;EACrC,MAAM;IAAEC;GAAgB,GAAGD,KAAK;EAChC,OACElU,6BAAC4U,eAAe,QACd5U,6BAACkV,aAAU;IAACX,OAAO,EAAC;YAAsB,EAC1CvU,6BAACiU,aAAa;IAACE,cAAc,EAAEA;IAAkB,CACjC;AAEtB;;ACJA,MAAMgB,GAAG,gBAAGpB,SAAM,CAAC,KAAK,EAAE;EACxBC,OAAO,EAAE,MAAM;EACfoB,aAAa,EAAE,QAAQ;EACvBL,KAAK,EAAE;CACR,CAAC;AAEF,MAAMM,SAAS,gBAAGtB,SAAM,CAAC,KAAK,EAAE;EAC9BuB,SAAS,EAAE,YAAY;EACvBC,eAAe,EAAE,cAAc;EAC/BC,YAAY,EAAE,IAAI;EAClBR,OAAO,EAAE,MAAM;EAEf,OAAO,EAAE;IACPhB,OAAO,EAAE,MAAM;IACfe,KAAK,EAAE,MAAM;IACbC,OAAO,EAAE;;CAEZ,CAAC;AAEF,MAAMS,WAAW,gBAAG1B,SAAM,CAAC,KAAK,EAAE;EAChCgB,KAAK,EAAE,KAAK;EACZW,SAAS,EAAE;CACZ,CAAC;AAEF,MAAMC,OAAO,gBAAG5B,SAAM,CAAC,KAAK,EAAE;EAC5BC,OAAO,EAAE,MAAM;EACfa,cAAc,EAAE,UAAU;EAC1BG,OAAO,EAAE;CACV,CAAC;AAEF,MAAMY,gBAAgB,gBAAG7B,SAAM,CAAC,MAAM,EAAE;EACtCgB,KAAK,EAAE,MAAM;EACbc,MAAM,EAAE,MAAM;EACdN,eAAe,EAAE,cAAc;EAC/BC,YAAY,EAAE;CACf,CAAC;AAEF,MAAMM,eAAe,gBAAG/B,SAAM,CAAC,KAAK,EAAE;EACpC8B,MAAM,EAAE,KAAK;EACbL,YAAY,EAAE,IAAI;EAClBO,QAAQ,EAAE,CAAC;EACXhB,KAAK,EAAE,KAAK;EACZQ,eAAe,EAAE,aAAa;EAC9BS,MAAM,EAAE,uBAAuB;EAC/BvP,QAAQ,EAAE,UAAU;EACpBuN,OAAO,EAAE,MAAM;EACfc,UAAU,EAAE,QAAQ;EACpBmB,WAAW,EAAE,IAAI;EACjBC,YAAY,EAAE;CACf,CAAC;AAEF,SAAgBC,SAAS,CAACjC,KAAgB;EACxC,MAAM;IAAEhT,IAAI;IAAEzH,KAAK;IAAEgB;GAAO,GAAGyZ,KAAK;EACpC,MAAMtX,aAAa,GAAGN,YAAY,CAACpC,GAAG,CAAC0C,aAAa,EAAE;EACtD,MAAM7B,SAAS,GAAGJ,iBAAiB,CAACT,GAAG,CAACa,SAAS,EAAE;EACnD,MAAMI,OAAO,GAAGR,iBAAiB,CAACT,GAAG,CAACiB,OAAO,EAAE;EAC/C,MAAMF,aAAa,GAAGN,iBAAiB,CAACT,GAAG,CAACe,aAAa,EAAE;EAC3D,MAAMD,SAAS,GAAGL,iBAAiB,CAACT,GAAG,CAACc,SAAS,EAAE;EACnD,MAAMW,cAAc,GAAGhB,iBAAiB,CAACT,GAAG,CAACyB,cAAc,EAAE;EAC7D,MAAM1E,SAAS,GAAG0D,iBAAiB,CAACT,GAAG,CAACjD,SAAS,EAAE;EACnD,MAAMS,WAAW,GAAGiD,iBAAiB,CAACT,GAAG,CAACxC,WAAW,EAAE;EACvD,MAAMsM,QAAQ,GAAGsD,eAAe,CAACpN,GAAG,CAAC8J,QAAQ,EAAE;EAC/C,MAAM4M,QAAQ,GAAGC,0BAAW,EAAE;EAE9B,MAAMlM,YAAY,GAChB,CAAC,CAAC5J,SAAS,IAAI,CAAC,CAACC,SAAS,GACtBjF,cAAc,CACZgO,oBAAoB,CAACC,QAAQ,EAAEjJ,SAAS,EAAEwC,IAAI,EAAEvC,SAAS,EAAE/B,MAAM,EAAE+B,SAAS,EAAEpB,OAAO,CAAC,EAClFc,MAAM,IAAI,GAAG,EACjB,CAAC,CACF,GACD,GAAG;EAET,MAAM0b,gBAAgB,GACpB,CAAC,CAACrb,SAAS,IAAI,CAAC,CAACC,SAAS,GACtBjF,cAAc,CACZgO,oBAAoB,CAACC,QAAQ,EAAEjJ,SAAS,EAAEwC,IAAI,EAAEvC,SAAS,EAAE/B,MAAM,EAAE+B,SAAS,EAAEpB,OAAO,CAAC,EAClFc,MAAM,IAAI,GAAG,EACjBqJ,oBAAoB,CAACC,QAAQ,EAAEjJ,SAAS,EAAEwC,IAAI,EAAEvC,SAAS,EAAE/B,MAAM,EAAE+B,SAAS,EAAEpB,OAAO,CAAC,EAClFmL,OAAO,CACZ,GACD,GAAG;EAET,MAAMsR,UAAU,GACdrW;IAAKsW,KAAK,EAAE;MAAEtC,OAAO,EAAE,MAAM;MAAEa,cAAc,EAAE,QAAQ;MAAEC,UAAU,EAAE;;KAClElY,aAAa,KAAK,QAAQ,IAAIoD,6BAACuW,iBAAc;IAACC,KAAK,EAAC,OAAO;IAAC3P,IAAI,EAAE;IAAM,EACzE7G,6BAACyW,gBAAa,OAAG,CAEpB;EAED,OACEzW,6BAACmV,GAAG,QACFnV,0CACEA,6BAACkV,aAAU;IAACX,OAAO,EAAC;KAASrT,IAAI,CAAc,CAC3C,EACNlB,6BAACqV,SAAS,QACPnB,KAAK,CAAChT,IAAI,KAAK,MAAM,IACpBlB,6BAAC2V,OAAO,QACN3V;IACE0W,SAAS,EAAC,SAAS;IACnBlC,OAAO,EAAE;MACP,IAAI7P,YAAY,KAAK,GAAG,EAAEhJ,cAAc,CAACya,gBAAgB,CAACpY,KAAK,CAAC,GAAG,CAAC,CAACuI,IAAI,CAAC,EAAE,CAAC,CAAC;;KAEhFvG,6BAACsU,SAAM;IAACC,OAAO,EAAC,OAAO;IAAC1N,IAAI,EAAC;KAC3B7G,6BAACkV,aAAU;IAACX,OAAO,EAAC;aAAiB5P,gBACnC3J,SAAS,EAAE/B,MAAM,IAAI,IACrB,CAAc,CACT,CACL,CAET,EACD+G;IAAK0W,SAAS,EAAC;KACb1W,6BAACsU,SAAM;IACLE,OAAO,EAAE;MACP5D,QAAQ,KAAKsD,KAAK,CAAChT,IAAI,CAACrH,WAAW,UAAU,CAAC;KAC/C;IACD0a,OAAO,EAAC,UAAU;IAClBoC,QAAQ,EAAE/Z,aAAa,KAAK,QAAQ;IACpC8H,OAAO,EAAE9H,aAAa,KAAK,SAAS;IACpCga,MAAM,EACJha,aAAa,KAAK,SAAS,IAAInD,KAAK,GAClCuG,6BAACyV,WAAW;MAACoB,GAAG,EAAEpd,KAAK,CAACyL;MAAQ,GAEhClF,6BAAC4V,gBAAgB,OAClB;IAEHkB,MAAM,EAAET,UAAU;IAClBU,KAAK,EAAC,OAAO;IACblQ,IAAI,EAAC,OAAO;IACZyP,KAAK,EAAE;MAAEU,WAAW,EAAE;;KACrBpa,aAAa,KAAK,SAAS,IAAInD,KAAK,GAAGA,KAAK,CAACwd,WAAW,GAAG,OAAO,CAC5D,EACTjX,6BAACsU,SAAM;IACLE,OAAO,EAAE;MACP5D,QAAQ,KAAKsD,KAAK,CAAChT,IAAI,CAACrH,WAAW,UAAU,CAAC;KAC/C;IACD0a,OAAO,EAAC,UAAU;IAClBoC,QAAQ,EACN/Z,aAAa,KAAK,QAAQ,IACzBsE,IAAI,KAAK,MAAM,IAAI,CAACnG,SAAU,IAC9BmG,IAAI,KAAK,IAAI,IAAI,CAAC/F,OAAQ;IAE7BuJ,OAAO,EAAE9H,aAAa,KAAK,SAAS;IACpCga,MAAM,EACJha,aAAa,KAAK,SAAS,IAAInC,KAAK,GAClCuF,6BAACyV,WAAW;MAACoB,GAAG,EAAEpc,KAAK,CAAC2G;MAAS,GAEjCpB,6BAAC4V,gBAAgB,OAClB;IAEHkB,MAAM,EAAET,UAAU;IAClBxP,IAAI,EAAC,OAAO;IACZkQ,KAAK,EAAC,OAAO;IACbT,KAAK,EAAE;MAAEU,WAAW,EAAE;;KACrBpa,aAAa,KAAK,SAAS,IAAInC,KAAK,GAAGA,KAAK,CAACxB,MAAM,GAAG,OAAO,CACvD,EACRib,KAAK,CAAChT,IAAI,KAAK,MAAM,GACpBlB,6BAACkX,YAAS;IACRhW,IAAI,EAAC,QAAQ;IACb2F,IAAI,EAAC,OAAO;IACZsQ,SAAS;IACTC,WAAW,EAAC,GAAG;IACfd,KAAK,EAAE;MACLvB,KAAK,EAAE,KAAK;MACZtO,QAAQ,EAAE,UAAU;MACpB8O,eAAe,EAAE;KAClB;IACDuB,MAAM,EACJ9W;MAAMsW,KAAK,EAAE;QAAE7P,QAAQ,EAAE,UAAU;QAAE4Q,KAAK,EAAE,KAAK;QAAEC,MAAM,EAAE;;OACzDtX,6BAACkV,aAAU;MAACX,OAAO,EAAC;WAAexe,cAAc,CAACkF,aAAa,GAAG,CAAc,CAC3E;IAET2X,KAAK,EAAEsB,KAAK,CAACxc,WAAW,IAAI,EAAE;IAC9B6f,QAAQ,EACNrD,KAAK,CAAChT,IAAI,KAAK,MAAM,GAChBsW,KAAK;MACJtD,KAAK,CAACuD,cAAc,CAACD,KAAK,CAACE,MAAM,CAAC9E,KAAK,CAAC;KACzC,GACD+E;IAEN,GAEF3X,6BAAC8V,eAAe,QACd9V,6BAACkV,aAAU;IAACX,OAAO,EAAC;KACjBtd,SAAS,QAAQlB,cAAc,CAACme,KAAK,CAACpc,YAAY,GAAG,GAAGJ,WAAW,GAAG,GAAG,GAAG,GAAG,CACrE,EACbsI;IAAMsW,KAAK,EAAE;MAAE7P,QAAQ,EAAE,UAAU;MAAE4Q,KAAK,EAAE,KAAK;MAAEC,MAAM,EAAE;;KACzDtX,6BAACkV,aAAU;IAACX,OAAO,EAAC;SAAexe,cAAc,CAC/Cme,KAAK,CAAChZ,cAAc,GACnB,CAAc,CACZ,CAEV,CACG,CACI,CACR;AAEV;;ACrNA,MAAMma,WAAS,gBAAGtB,YAAM,CAAC,KAAK,EAAE;EAC9BC,OAAO,EAAE,MAAM;EACfe,KAAK,EAAE,MAAM;EACbF,cAAc,EAAE,KAAK;EACrBC,UAAU,EAAE,QAAQ;EACpB8C,UAAU,EAAE;CACb,CAAC;AAEF,MAAMC,IAAI,gBAAG9D,YAAM,CAAC,KAAK,EAAE;EACzB+D,IAAI,EAAE,aAAa;EACnB/C,KAAK,EAAE,KAAK;EACZgD,MAAM,EAAE;CACT,CAAC;AAEF,MAAMC,YAAY,gBAAGjE,YAAM,CAAC,GAAG,EAAE;EAC/BC,OAAO,EAAE,MAAM;EACfa,cAAc,EAAE,QAAQ;EACxBC,UAAU,EAAE,QAAQ;EACpBmD,cAAc,EAAE;CACjB,CAAC;AAEF,SAAgBC,UAAU;EACxB,OACElY,6BAACqV,WAAS,QACRrV,6BAACkV,aAAU;IAACX,OAAO,EAAC;kBAAiC,EACrDvU,6BAACgY,YAAY;IAACG,IAAI,EAAC,wBAAwB;IAACT,MAAM,EAAC;KACjD1X,6BAAC6X,IAAI;IAACO,KAAK,EAAC,4BAA4B;IAACC,OAAO,EAAC;KAC/CrY,0CAAa,EACbA;IAAG4L,EAAE,EAAC,SAAS;iBAAW;KACxB5L;IAAG4L,EAAE,EAAC,WAAW;iBAAW;KAC1B5L;IAAMsY,CAAC,EAAC;IAAqzB,EAC7zBtY;IAAMsY,CAAC,EAAC;IAA+L,CACrM,CACF,CACC,EACPtY,6BAACkV,aAAU;IAACX,OAAO,EAAC;aAA0B,CACjC,CACL;AAEhB;;SCtCgBgE,cAAc;MAAC;IAAEC;GAA0B;EACzD,MAAMta,WAAW,GAAGC,YAAM,CAAC,IAAI,CAAC;EAChC,MAAM,CAACL,YAAY,EAAEM,eAAe,CAAC,GAAGC,8BAAe,EAAE;EACzD,MAAMvG,YAAY,GAAG6C,iBAAiB,CAACT,GAAG,CAACpC,YAAY,EAAE;EAEzD0G,eAAS,CAAC;IACR,IAAI,CAACN,WAAW,CAACO,OAAO,EAAE;MACxB,MAAMC,eAAe,GAAGZ,YAAY,CAAC0B,GAAG,CAAC5B,YAAY,CAACmB,UAAU,CAAC;MACjE,MAAMJ,eAAe,GAAGb,YAAY,CAAC0B,GAAG,CAAC5B,YAAY,CAACoB,UAAU,CAAC;MACjE,MAAMJ,aAAa,GAAGd,YAAY,CAAC0B,GAAG,CAAC5B,YAAY,CAACqB,QAAQ,CAAC;MAC7D,MAAMJ,aAAa,GAAGf,YAAY,CAAC0B,GAAG,CAAC5B,YAAY,CAACsB,QAAQ,CAAC;MAC7Dd,eAAe,CAAC;QACd,IAAIQ,aAAa,IAAI;UAAE,CAAChB,YAAY,CAACmB,UAAU,GAAGH;SAAe,CAAC;QAClE,IAAIC,aAAa,IAAI;UAAE,CAACjB,YAAY,CAACoB,UAAU,GAAGH;SAAe,CAAC;QAClE,IAAIH,eAAe,IAAI;UAAE,CAACd,YAAY,CAACqB,QAAQ,GAAGP;SAAiB,CAAC;QACpE,IAAIC,eAAe,IAAI;UAAE,CAACf,YAAY,CAACsB,QAAQ,GAAGP;SAAiB,CAAC;QACpE,IAAI7G,YAAY,IAAI;UAAE,CAAC8F,YAAY,CAACuB,WAAW,GAAGrH,YAAY,CAACsH,QAAQ;SAAI;OAC5E,CAAC;KACH,MAAM;MACLlB,WAAW,CAACO,OAAO,GAAG,KAAK;;GAE9B,EAAE,CAAC+Z,KAAK,CAAC,CAAC;EAEX,OAAO,IAAI;AACb;;AC3BO,MAAMC,MAAM,gBAAG1E,SAAM,CAAC,KAAK,EAAE;EAClCC,OAAO,EAAE,MAAM;EACfoB,aAAa,EAAE,QAAQ;EACvBL,KAAK,EAAE,MAAM;EACb6C,UAAU,EAAE;CACb,CAAC;;SCDcc,YAAY;EAC1B,MAAM1d,SAAS,GAAGL,iBAAiB,CAACT,GAAG,CAACc,SAAS,EAAE;EACnD,MAAMI,OAAO,GAAGT,iBAAiB,CAACT,GAAG,CAACkB,OAAO,EAAE;EAC/C,MAAM1D,WAAW,GAAGiD,iBAAiB,CAACT,GAAG,CAACxC,WAAW,EAAE;EAEvD,MAAMiR,QAAQ,GAAGF,gBAAgB,CAACvO,GAAG,CAACyO,QAAQ,EAAE;EAChD,MAAMC,cAAc,GAAGH,gBAAgB,CAACvO,GAAG,CAAC0O,cAAc,EAAE;EAC5D,MAAME,wBAAwB,GAAGL,gBAAgB,CAACvO,GAAG,CAAC4O,wBAAwB,EAAE;EAChF,MAAM,CAAC0P,KAAK,EAAEG,QAAQ,CAAC,GAAG1K,cAAQ,CAAC,CAAC,CAAC;EACrC,MAAM,CAACvJ,OAAO,EAAEsJ,UAAU,CAAC,GAAGC,cAAQ,CAAC,KAAK,CAAC;EAC7C,MAAM,CAACtQ,KAAK,EAAEuQ,QAAQ,CAAC,GAAGD,cAAQ,CAAC,EAAE,CAAC;EACtC,MAAM,CAACI,IAAI,EAAEC,OAAO,CAAC,GAAGL,cAAQ,CAA2B,IAAI,CAAC;EAChE,MAAM2K,kBAAkB,GAAGza,YAAM,CAAyB,IAAI,CAAC;EAE/D,MAAM0a,KAAK,GAAG;IACZF,QAAQ,CAAEG,IAAI,IAAKA,IAAI,GAAG,CAAC,CAAC;GAC7B;EAEDta,eAAS,CAAC;IACR,IAAIoa,kBAAkB,CAACna,OAAO,EAAEma,kBAAkB,CAACna,OAAO,CAACsa,KAAK,EAAE;IAClE,MAAMC,eAAe,GAAG,IAAIC,eAAe,EAAE;IAC7CL,kBAAkB,CAACna,OAAO,GAAGua,eAAe;IAC5C,IAAI,CAAC,CAAChe,SAAS,IAAI,CAAC,CAACI,OAAO,IAAI,CAAC,CAAC1D,WAAW,EAAE;MAC7C,IAAI,CAAC,CAAC2W,IAAI,EAAEC,OAAO,CAAC,IAAI,CAAC;MACzB,MAAM4K,WAAW,GAAqB;QACpCxe,MAAM,EAAEhD,WAAW,EAAE0H,QAAQ,EAAE;QAC/BoE,gBAAgB,EAAE,EAAE;QACpBF,eAAe,EAAE,EAAE;QACnBuM,kBAAkB,EAAE,KAAK;QACzBC,aAAa,EAAEhH,wBAAwB;QACvCiH,qBAAqB,EAAE,IAAI;QAC3B3T,IAAI,EAAE;UACJxC,OAAO,EAAEoB,SAAS,CAACpB,OAAO;UAC1BJ,UAAU,EAAEwB,SAAS,CAACxB,UAAU;UAChCP,MAAM,EAAE+B,SAAS,CAAC/B;SACnB;QACD5B,EAAE,EAAE;UAAEuC,OAAO,EAAEwB,OAAO,CAACxB,OAAO;UAAEJ,UAAU,EAAE4B,OAAO,CAAC5B,UAAU;UAAEP,MAAM,EAAEmC,OAAO,CAACnC;;OACjF;MACD+U,UAAU,CAAC,IAAI,CAAC;MAChBpS,WAAW,CACRgU,YAAY,CAACsJ,WAAW,EAAE;QAAEC,MAAM,EAAEP,kBAAkB,CAACna,OAAO,CAAC0a;OAAQ,CAAC,CACxE1I,IAAI,CAAE2I,GAAG;QACR9K,OAAO,CAAC8K,GAAG,CAAC;QACZpL,UAAU,CAAC,KAAK,CAAC;QACjB4K,kBAAkB,CAACna,OAAO,GAAG,IAAI;OAClC,CAAC,CACDuR,KAAK,CAAErS,KAAK;QACX,IAAIA,KAAK,CAAC0b,IAAI,KAAK,cAAc,EAAE;QACnCnL,QAAQ,CAACvQ,KAAK,CAACsS,OAAO,CAAC;QACvBjC,UAAU,CAAC,KAAK,CAAC;OAClB,CAAC;;GAEP,EAAE,CACDhT,SAAS,EACTI,OAAO,EACP1D,WAAW,EACX8gB,KAAK,EACL7P,QAAQ,EACRC,cAAc,EACdE,wBAAwB,CAAC1R,MAAM,CAChC,CAAC;EAEF,OAAO;IAAEsN,OAAO;IAAE/G,KAAK;IAAE0Q,IAAI;IAAEwK;GAAO;AACxC;;ACrEO,MAAMS,aAAa,GAAG;EAC3BC,kBAAkB,EAAE;CACrB;;ACoBD,MAAMlE,WAAS,gBAAGtB,SAAM,CAAC,KAAK,EAAE;EAC9BC,OAAO,EAAE,MAAM;EACfoB,aAAa,EAAE,QAAQ;EACvBP,cAAc,EAAE,QAAQ;EACxBC,UAAU,EAAE;CACb,CAAC;AAEF,MAAM0E,qBAAqB,gBAAGzF,SAAM,CAAC,KAAK,EAAE;EAC1CC,OAAO,EAAE,MAAM;EACfa,cAAc,EAAE,QAAQ;EACxBC,UAAU,EAAE,QAAQ;EACpBrO,QAAQ,EAAE,UAAU;EACpBgT,GAAG,EAAE;CACN,CAAC;AAEF,MAAMC,kBAAkB,gBAAG3F,SAAM,CAAC,KAAK,EAAE;EACvCgB,KAAK,EAAE,MAAM;EACb6C,UAAU,EAAE;CACb,CAAC;AAEF,MAAM+B,MAAM,gBAAG5F,SAAM,CAAC,KAAK,EAAE;EAC3B6D,UAAU,EAAE;CACb,CAAC;AAEF,SAAgBgC,IAAI;EAClB,MAAMC,aAAa,GAAG,EAAE;EACxB,MAAMla,iBAAiB,GAAGC,iCAAkB,EAAE;EAC9C,MAAMgR,QAAQ,GAAGC,0BAAW,EAAE;EAC9B,MAAM,CAAC2H,KAAK,EAAEG,QAAQ,CAAC,GAAG1K,cAAQ,CAAC,CAAC,CAAC;EACrC,MAAMlT,SAAS,GAAGJ,iBAAiB,CAACT,GAAG,CAACa,SAAS,EAAE;EACnD,MAAMC,SAAS,GAAGL,iBAAiB,CAACT,GAAG,CAACc,SAAS,EAAE;EACnD,MAAMG,OAAO,GAAGR,iBAAiB,CAACT,GAAG,CAACiB,OAAO,EAAE;EAC/C,MAAMC,OAAO,GAAGT,iBAAiB,CAACT,GAAG,CAACkB,OAAO,EAAE;EAC/C,MAAMG,YAAY,GAAGZ,iBAAiB,CAACT,GAAG,CAACqB,YAAY,EAAE;EACzD,MAAMC,YAAY,GAAGb,iBAAiB,CAACT,GAAG,CAACsB,YAAY,EAAE;EACzD,MAAMC,UAAU,GAAGd,iBAAiB,CAACT,GAAG,CAACuB,UAAU,EAAE;EACrD,MAAMC,UAAU,GAAGf,iBAAiB,CAACT,GAAG,CAACwB,UAAU,EAAE;EACrD,MAAML,YAAY,GAAGV,iBAAiB,CAACT,GAAG,CAACmB,YAAY,EAAE;EACzD,MAAMJ,aAAa,GAAGN,iBAAiB,CAACT,GAAG,CAACe,aAAa,EAAE;EAC3D,MAAMvD,WAAW,GAAGiD,iBAAiB,CAACT,GAAG,CAACxC,WAAW,EAAE;EACvD,MAAMiE,cAAc,GAAGhB,iBAAiB,CAACT,GAAG,CAACyB,cAAc,EAAE;EAC7D,MAAM7D,YAAY,GAAG6C,iBAAiB,CAACT,GAAG,CAACpC,YAAY,EAAE;EACzD,MAAMoD,cAAc,GAAGP,iBAAiB,CAACT,GAAG,CAACgB,cAAc,EAAE;EAC7D,MAAMjE,SAAS,GAAG0D,iBAAiB,CAACT,GAAG,CAACjD,SAAS,EAAE;EAEnD,MAAM6iB,iBAAiB,GAAGxd,YAAY,CAACpC,GAAG,CAAC0C,aAAa,EAAE;EAC1D,MAAM8E,QAAQ,GAAG4F,eAAe,CAACpN,GAAG,CAACwH,QAAQ,EAAE;EAE/C,MAAMqY,cAAc,GAAG;IACrBxe,YAAY,CAACJ,OAAO,CAAC;IACrBK,YAAY,CAACJ,OAAO,CAAC;IACrBK,UAAU,CAACV,SAAS,CAAC;IACrBW,UAAU,CAACV,SAAS,CAAC;IACrBW,cAAc,CAAC7D,YAAY,EAAEsH,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC9CuZ,QAAQ,CAAEG,IAAI,IAAKA,IAAI,GAAG,CAAC,CAAC;GAC7B;EAED,MAAM;IAAEzK,IAAI;IAAE3J,OAAO,EAAEsV,iBAAiB;IAAErc,KAAK,EAAEsc,cAAc;IAAEpB;GAAO,GAAGH,YAAY,EAAE;EAEzF,MAAMwB,iBAAiB,GAAGxY,QAAQ,CAACtK,MAAM,GAAG,CAAC;EAE7C,MAAM+iB,aAAa,GAAG,CAACljB,SAAS,EAAEC,MAAM;EAExC,MAAMkjB,YAAY,GAChBN,iBAAiB,KAAK,QAAQ,GAAGR,aAAa,CAACC,kBAAkB,GAAGU,cAAc;EAEpF,MAAMzP,oBAAoB,GAAG,KAAK;EAElC,MAAM6P,aAAa,GAAG3iB,WAAW,KAAK,CAAC,CAAC2W,IAAI,IAAI2L,iBAAiB,IAAIC,cAAc,CAAC;EAEpF,MAAM/hB,YAAY,GAAGwR,cAAc,CAACzO,aAAa,EAAEC,cAAc,CAAC;EAElE,MAAMoP,aAAa,GAAGX,qBAAqB,CAAC1O,aAAa,EAAE/C,YAAY,CAAC;EAExE,MAAMqS,2BAA2B,GAAG,CAACE,qBAAqB,CACxDxT,SAAS,EACTS,WAAW,EACXuD,aAAa,EACbC,cAAc,CACf;EAED,MAAMof,WAAW,GAAGjQ,kBAAkB,CACpC3I,QAAQ,EACRsY,iBAAiB,EACjBnQ,aAAa,CAAC5S,SAAS,CAAC,EACxBqT,aAAa,EACbC,2BAA2B,EAC3BC,oBAAoB,CACrB;EAED,MAAM+P,cAAc,GAClBT,iBAAiB,IAAI,SAAS,IAC9BE,iBAAiB,IACjB1P,aAAa,IACZ4P,iBAAiB,IAAIC,aAAc,IACpCtQ,aAAa,CAAC5S,SAAS,CAAC;EAE1BuH,eAAS,CAAC;IACRnD,YAAY,CAACgT,IAAI,CAAC;GACnB,EAAE,CAACA,IAAI,CAAC,CAAC;EAEV,OACErO,6BAACqV,WAAS,QACRrV,6BAACiV,MAAM;IAACd,cAAc,EAAE0E;IAAS,EACjC7Y,6BAACmW,SAAS;IACRjV,IAAI,EAAC,MAAM;IACXzH,KAAK,EAAEsB,SAAS;IAChBN,KAAK,EAAEO,SAAS;IAChByc,cAAc,EAAE9b,cAAc;IAC9BjE,WAAW,EAAEA;IACb,EACFsI,6BAACwZ,qBAAqB,QACpBxZ,6BAACsU,SAAM;IAACC,OAAO,EAAC,OAAO;IAACC,OAAO,EAAEuF;KAC/B/Z,6BAACwa,mBAAgB;IAAC3T,IAAI,EAAE;IAAM,EAC7BlH,iBAAiB,IAAIK,6BAACuY,cAAc;IAACC,KAAK,EAAEA;IAAS,CAC/C,CACa,EACxBxY,6BAACmW,SAAS;IACRjV,IAAI,EAAC,IAAI;IACTzH,KAAK,EAAE0B,OAAO;IACdV,KAAK,EAAEW,OAAO;IACdtD,YAAY,EAAEA,YAAY;IAC1BoD,cAAc,EAAEA;IAChB,EACDmf,aAAa,IACZra,6BAAC0Z,kBAAkB,QACjB1Z,6BAACya,YAAS;IAAC9c,KAAK,EAAEsc,cAAc;IAAEvV,OAAO,EAAEsV,iBAAiB;IAAE3L,IAAI,EAAEA;IAAQ,CAE/E,EACA,CAAC+L,YAAY,IAAIP,aAAa,KAC7B7Z,6BAAC2Z,MAAM,QACJS,YAAY,IAAIpa,6BAAC0a,QAAK;IAACvI,WAAW,EAAEiI,YAAY;IAAElZ,IAAI,EAAC;IAAU,EACjE2Y,aAAa,CAAwD,CAEzE,EACD7Z,6BAACyY,MAAM,QACLzY,6BAACsU,SAAM;IACLpT,IAAI,EAAC,SAAS;IACd6V,KAAK,EAAC,MAAM;IACZlQ,IAAI,EAAC,OAAO;IACZ8P,QAAQ,EAAE4D,cAAc;IACxB/F,OAAO,EAAE;MACP,IAAI8F,WAAW,KAAK,gBAAgB,EAAE1J,QAAQ,CAAC3I,gBAAgB,CAACvO,OAAO,CAAC,CAAC,KACpE;QACHkX,QAAQ,CAAC3I,gBAAgB,CAACM,cAAc,CAAC;;;KAG5C+R,WAAW,CACL,EACTta,6BAACkY,UAAU,OAAG,CACP,CACC;AAEhB;;SCxKgByC,mBAAmB;EACjC,MAAM;IAAEje;GAAU,GAAGJ,YAAY,CAACpC,GAAG,CAACqC,IAAI,EAAE;EAC5C,MAAMgN,qBAAqB,GAAGd,gBAAgB,CAACvO,GAAG,CAACqP,qBAAqB,EAAE;EAC1E,MAAMT,wBAAwB,GAAGL,gBAAgB,CAACvO,GAAG,CAAC4O,wBAAwB,EAAE;EAChF,MAAMI,yBAAyB,GAAGT,gBAAgB,CAACvO,GAAG,CAACgP,yBAAyB,EAAE;EAElF,MAAM0H,QAAQ,GAAGC,0BAAW,EAAE;EAE9B,MAAM+J,oBAAoB,GAKrB,EAAE;EACP3e,mBAAmB,CAACS,QAAQ,CAACO,GAAG,CAAE1C,CAAC,IAAKA,CAAC,CAAC8O,YAAY,CAAC,CAAC,CACrDpM,GAAG,CAAEoM,YAAY;IAChB,OAAO3M,QAAQ,CAACpD,IAAI,CAAEiB,CAAC,IAAKA,CAAC,CAAC8O,YAAY,KAAKA,YAAY,CAAC;GAC7D,CAAC,CACD/P,IAAI,CAAEiB,CAAC;IACN,IAAIA,CAAC,EAAE;MACL,KAAK,MAAM2G,IAAI,IAAI3G,CAAC,CAACsgB,KAAK,EAAE;QAC1BD,oBAAoB,CAAC3Y,IAAI,CAAC;UACxB6Y,KAAK,EAAEvgB,CAAC,CAAC8O,YAAY;UACrBnE,IAAI,EAAE3K,CAAC,CAAC2K,IAAI;UACZhE,IAAI;UACJuC,QAAQ,EAAE,CAACqF,wBAAwB,CAACxL,QAAQ,CAAC/C,CAAC,CAAC8O,YAAY;SAC5D,CAAC;;;GAGP,CAAC;EAEJ,OACErJ,6BAAC+a,2BAAwB;IACvBC,SAAS,EAAE9R,yBAAyB;IACpCtI,IAAI,EAAEga,oBAAoB;IAC1BrD,QAAQ,EAAG/N,eAAe,IAAKD,qBAAqB,CAACC,eAAe,CAACsR,KAAK,CAAC;IAC3E7J,MAAM,EAAE;MACNL,QAAQ,CAAC,CAAC,CAAC,CAAC;;IAEd;AAEN;;SCnCgBqK,eAAe,CAAC/G,KAAgB;EAC9C,MAAM;IAAEhT;GAAM,GAAGgT,KAAK;EACtB,MAAMxS,QAAQ,GAAG4F,eAAe,CAACpN,GAAG,CAACwH,QAAQ,EAAE;EAE/C,MAAM;IAAElF;GAAa,GAAGF,YAAY,CAACpC,GAAG,CAACqC,IAAI,EAAE;EAC/C,MAAMK,aAAa,GAAGN,YAAY,CAACpC,GAAG,CAAC0C,aAAa,EAAE;EACtD,MAAM7B,SAAS,GAAGJ,iBAAiB,CAACT,GAAG,CAACa,SAAS,EAAE;EACnD,MAAMI,OAAO,GAAGR,iBAAiB,CAACT,GAAG,CAACiB,OAAO,EAAE;EAC/C,MAAMI,YAAY,GAAGZ,iBAAiB,CAACT,GAAG,CAACqB,YAAY,EAAE;EACzD,MAAME,UAAU,GAAGd,iBAAiB,CAACT,GAAG,CAACuB,UAAU,EAAE;EACrD,MAAMD,YAAY,GAAGb,iBAAiB,CAACT,GAAG,CAACsB,YAAY,EAAE;EACzD,MAAME,UAAU,GAAGf,iBAAiB,CAACT,GAAG,CAACwB,UAAU,EAAE;EAErD,MAAMkV,QAAQ,GAAGC,0BAAW,EAAE;EAE9B,MAAM,CAACjQ,IAAI,EAAEsa,OAAO,CAAC,GAAGjN,cAAQ,CAACzR,WAAW,CAAC;EAE7CgC,eAAS,CAAC;IACR,IAAI2c,6BAA6B,GAAqB,EAAE;IACxD,IAAIzZ,QAAQ,CAACtK,MAAM,KAAK,CAAC,EAAE;MACzB,MAAMgkB,eAAe,GAAGnf,mBAAmB,CAACyF,QAAQ,CAACzE,GAAG,CAAEkF,OAAO,IAAKA,OAAO,CAAC1I,KAAK,CAAC,CAAC;MACrF0hB,6BAA6B,GAAG3e,WAAW,CAACgB,IAAI,CAC9C,CAAC6d,WAAW,EAAEC,WAAW,KACvBF,eAAe,CAACG,WAAW,CAACF,WAAW,CAAC9d,IAAI,CAAC,GAC7C6d,eAAe,CAACG,WAAW,CAACD,WAAW,CAAC/d,IAAI,CAAC,CAChD;KACF,MAAM;MACL4d,6BAA6B,GAAG3e,WAAW;;IAE7C0e,OAAO,CAACC,6BAA6B,CAAC;GACvC,EAAE,CAAC3e,WAAW,CAACpF,MAAM,EAAEsK,QAAQ,CAACtK,MAAM,CAAC,CAAC;EAEzC,OACE4I,6BAACwb,qBAAkB;IACjBta,IAAI,EAAEA,IAAI,KAAK,MAAM,GAAG,QAAQ,GAAG,aAAa;IAChDN,IAAI,EAAEA,IAAI;IACV6C,QAAQ,EAAEvC,IAAI,KAAK,MAAM,GAAGnG,SAAS,GAAGI,OAAO;IAC/CyB,aAAa,EAAEA,aAAa;IAC5B2a,QAAQ,EAAG9d,KAAK;MACd,IAAIyH,IAAI,KAAK,MAAM,EAAE3F,YAAY,CAAC9B,KAAK,CAAC,CAAC,KACpCgC,UAAU,CAAChC,KAAK,CAAC;MACtB,IAAIyH,IAAI,KAAK,MAAM,IAAInG,SAAS,EAAEwC,IAAI,IAAI9D,KAAK,CAAC8D,IAAI,EAAE/B,YAAY,CAAC,IAAI,CAAC;MACxE,IAAI0F,IAAI,KAAK,IAAI,IAAI/F,OAAO,EAAEoC,IAAI,IAAI9D,KAAK,CAAC8D,IAAI,EAAE7B,UAAU,CAAC,IAAI,CAAC;MAClEkV,QAAQ,CAAC,CAAC,CAAC,CAAC;KACb;IACDK,MAAM,EAAEL,QAAQ,CAACI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9B;AAEN;;SCrCgByK,eAAe,CAACvH,KAAgB;EAC9C,MAAM;IAAEhT;GAAM,GAAGgT,KAAK;EACtB,MAAMtD,QAAQ,GAAGC,0BAAW,EAAE;EAE9B,MAAM;IAAElU;GAAQ,GAAGL,YAAY,CAACpC,GAAG,CAACqC,IAAI,EAAE;EAC1C,MAAMxB,SAAS,GAAGJ,iBAAiB,CAACT,GAAG,CAACa,SAAS,EAAE;EACnD,MAAMI,OAAO,GAAGR,iBAAiB,CAACT,GAAG,CAACiB,OAAO,EAAE;EAC/C,MAAMH,SAAS,GAAGL,iBAAiB,CAACT,GAAG,CAACc,SAAS,EAAE;EACnD,MAAMI,OAAO,GAAGT,iBAAiB,CAACT,GAAG,CAACkB,OAAO,EAAE;EAC/C,MAAMI,YAAY,GAAGb,iBAAiB,CAACT,GAAG,CAACsB,YAAY,EAAE;EACzD,MAAME,UAAU,GAAGf,iBAAiB,CAACT,GAAG,CAACwB,UAAU,EAAE;EAErD,MAAMwI,OAAO,GAAGoD,eAAe,CAACpN,GAAG,CAAC8J,QAAQ,EAAE;EAE9C,MAAM0X,sBAAsB,GAAG/e,MAAM,CAACS,MAAM,CAAE3C,KAAK;IACjD,IAAIyG,IAAI,KAAK,MAAM,EAAE,OAAOzG,KAAK,CAACjB,UAAU,KAAKuB,SAAS,EAAEwC,IAAI;IAChE,OAAO9C,KAAK,CAACjB,UAAU,KAAK2B,OAAO,EAAEoC,IAAI;GAC1C,CAAC;EAEF,MAAMoe,iBAAiB,GAAuBD,sBAAsB,CAACze,GAAG,CAAExC,KAAK;IAC7E,MAAMmhB,WAAW,GAAG7lB,cAAc,CAChC,IAAID,kBAAS,CACXiO,oBAAoB,CAACG,OAAO,EAAEzJ,KAAK,CAACjB,UAAU,EAAEiB,KAAK,CAACxB,MAAM,EAAEwB,KAAK,CAACb,OAAO,CAAC,EAAEc,MAAM,IAClF7E,IAAI,CACP,CACF;IAED,IAAIgmB,aAAa,GAAG,EAAE;IACtB,IAAIphB,KAAK,CAACnD,QAAQ,EAChBukB,aAAa,GAAG9lB,cAAc,CAC5B,IAAID,kBAAS,CACXiO,oBAAoB,CAACG,OAAO,EAAEzJ,KAAK,CAACjB,UAAU,EAAEiB,KAAK,CAACxB,MAAM,EAAEwB,KAAK,CAACb,OAAO,CAAC,EAAEc,MAAM,IAClF7E,IAAI,CACP,CAACkC,YAAY,CAAC0C,KAAK,CAACnD,QAAQ,CAAC,CAC/B;IACH,OAAO;MACL,GAAGmD,KAAK;MACRyJ,OAAO,EAAE;QACPxJ,MAAM,EAAEkhB,WAAW,KAAK,GAAG,GAAGA,WAAW,GAAG,EAAE;QAC9CE,QAAQ,EAAED,aAAa,KAAK,GAAG,GAAGA,aAAa,GAAG;;KAErD;GACF,CAAC;EAEF,MAAME,eAAe,GAAGvV,YAAY,CAACmV,iBAAiB,EAAEza,IAAI,EAAEgD,OAAO,CAAC;EAEtE,OACElE,6BAACgc,gBAAa;IACZ9a,IAAI,EAAEA,IAAI,KAAK,MAAM,GAAG,QAAQ,GAAG,aAAa;IAChDN,IAAI,EAAEmb,eAAe;IACrBtY,QAAQ,EAAEvC,IAAI,KAAK,MAAM,GAAGlG,SAAS,GAAGI,OAAO;IAC/Cmc,QAAQ,EAAG9c,KAAK;MACd,IAAIyG,IAAI,KAAK,MAAM,EAAE1F,YAAY,CAACf,KAAK,CAAC,CAAC,KACpCiB,UAAU,CAACjB,KAAK,CAAC;MACtBmW,QAAQ,CAAC,CAAC,CAAC,CAAC;KACb;IACDK,MAAM,EAAEL,QAAQ,CAACI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9B;AAEN;;SC3EgBiL,YAAY;EAC1B,MAAMtT,QAAQ,GAAGF,gBAAgB,CAACvO,GAAG,CAACyO,QAAQ,EAAE;EAChD,MAAMK,WAAW,GAAGP,gBAAgB,CAACvO,GAAG,CAAC8O,WAAW,EAAE;EACtD,MAAMF,wBAAwB,GAAGL,gBAAgB,CAACvO,GAAG,CAAC4O,wBAAwB,EAAE;EAChF,MAAMF,cAAc,GAAGH,gBAAgB,CAACvO,GAAG,CAAC0O,cAAc,EAAE;EAC5D,MAAMK,iBAAiB,GAAGR,gBAAgB,CAACvO,GAAG,CAAC+O,iBAAiB,EAAE;EAClE,MAAMF,KAAK,GAAGN,gBAAgB,CAACvO,GAAG,CAAC6O,KAAK,EAAE;EAC1C,MAAMU,QAAQ,GAAGhB,gBAAgB,CAACvO,GAAG,CAACuP,QAAQ,EAAE;EAChD,MAAM;IAAE/M;GAAU,GAAGJ,YAAY,CAACpC,GAAG,CAACqC,IAAI,EAAE;EAC5C,MAAMqU,QAAQ,GAAGC,0BAAW,EAAE;EAE9B,MAAM+J,oBAAoB,GAKrB,EAAE;EACP3e,mBAAmB,CAACS,QAAQ,CAACO,GAAG,CAAE1C,CAAC,IAAKA,CAAC,CAAC8O,YAAY,CAAC,CAAC,CACrDpM,GAAG,CAAEoM,YAAY;IAChB,OAAO3M,QAAQ,CAACpD,IAAI,CAAEiB,CAAC,IAAKA,CAAC,CAAC8O,YAAY,KAAKA,YAAY,CAAC;GAC7D,CAAC,CACD/P,IAAI,CAAEiB,CAAC;IACN,IAAIA,CAAC,EAAE;MACL,KAAK,MAAM2G,IAAI,IAAI3G,CAAC,CAACsgB,KAAK,EAAE;QAC1BD,oBAAoB,CAAC3Y,IAAI,CAAC;UACxB6Y,KAAK,EAAEvgB,CAAC,CAAC8O,YAAY;UACrBnE,IAAI,EAAE3K,CAAC,CAAC2K,IAAI;UACZhE,IAAI;UACJuC,QAAQ,EAAE,CAACqF,wBAAwB,CAACxL,QAAQ,CAAC/C,CAAC,CAAC8O,YAAY;SAC5D,CAAC;;;GAGP,CAAC;EAEJ,OACErJ,6BAACkc,WAAQ;IACP/M,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACvBgN,gBAAgB,EAAExT,QAAQ;IAC1ByT,gBAAgB,EAAGzT,QAAQ,IAAKK,WAAW,CAACL,QAAQ,CAAC;IACrDP,gBAAgB,EAAEwS,oBAAoB;IACtCyB,wBAAwB,EAAEzB,oBAAoB,CAACxd,MAAM,CAAE7C,CAAC,IAAKA,CAAC,CAACkJ,QAAQ,CAAC;IACxE6Y,uBAAuB,EAAE,MAAM1L,QAAQ,CAAC3I,gBAAgB,CAACG,gBAAgB,CAAC;IAC1E6I,MAAM,EAAEL,QAAQ,CAACI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC/BpI,cAAc,EAAEA,cAAc,IAAI2T,GAAG;IACrCC,sBAAsB,EAAEvT,iBAAiB;IACzCqG,WAAW,EAAE,CAAC;IACdmN,WAAW,EAAE,EAAE;IACfC,aAAa,EAAE3T,KAAK;IACpB4T,aAAa,EAAElT;IACf;AAEN;;ACpDA,MAAMmT,aAAa,gBAAG7I,SAAM,CAAC,KAAK,EAAE;EAClCC,OAAO,EAAE,MAAM;EACf6I,GAAG,EAAE,OAAO;EACZC,mBAAmB,EAAE,4BAA4B;EACjDjH,MAAM,EAAE,OAAO;EACfkH,YAAY,EAAE;CACf,CAAC;AAEF,MAAMC,cAAc,gBAAGjJ,SAAM,CAAC,KAAK,EAAE;EACnCkJ,aAAa,EAAE;CAChB,CAAC;AACF,SAAgBC,WAAW;EACzB,MAAMtM,QAAQ,GAAGC,0BAAW,EAAE;EAC9B,MAAM;IAAEvV,KAAK;IAAE6hB,UAAU;IAAExc,aAAa;IAAEyc;GAAS,GAAGC,sBAAU,EAAE;EAClE,MAAM3jB,OAAO,GAAGgH,aAAa,CAACpF,KAAK,EAAEqF,aAAa,EAAEvG,MAAM,CAAC0J,MAAM,CAAChD,wBAAU,CAAC,CAAC;EAC9E,MAAM,CAACwc,kBAAkB,EAAEC,qBAAqB,CAAC,GAAGtP,cAAQ,CAAC,EAAE,CAAC;EAEhE,MAAMuP,cAAc,GAAG,MAAOtc,IAAgB;IAC5C,MAAM/H,MAAM,GAAGmC,KAAK,CAAC4F,IAAI,CAAC;IAC1B,IAAI;MACF,IAAIoc,kBAAkB,EAAEC,qBAAqB,CAAC,EAAE,CAAC;MACjD,IAAIpkB,MAAM,CAAC+G,SAAS,EAAE;QACpB,MAAMid,UAAU,CAACjc,IAAI,CAAC;OACvB,MAAM;QACL,MAAMkc,OAAO,CAAClc,IAAI,CAAC;;KAEtB,CAAC,OAAOuc,CAAC,EAAE;MACVF,qBAAqB,CAAC,SAAS,GAAGE,CAAC,CAACxN,OAAO,CAAC;;GAE/C;EACD,OACEjQ,6BAAC0d,gBAAa;IACZ5C,KAAK,EAAC,eAAe;IACrB6C,SAAS,EAAE,KAAK;IAChB1M,MAAM,EAAE;MACNL,QAAQ,CAAC,CAAC,CAAC,CAAC;KACb;IACDgN,OAAO,EACL5d,4DACGsd,kBAAkB,IACjBtd,6BAACgd,cAAc,QACbhd,6BAAC0a,QAAK;MAACxZ,IAAI,EAAC,OAAO;MAACiR,WAAW,EAAEmL;MAAsB,CAE1D,EACDtd,6BAAC4c,aAAa,QACXljB,OAAO,CAACuD,GAAG,CAAC,CAAC4gB,IAAI,EAAEC,KAAK,KACvB9d,6BAAC+d,SAAM,oBAAKF,IAAI;MAAEja,GAAG,EAAEka,KAAK;MAAEtJ,OAAO,EAAEgJ;OACxC,CAAC,CACY;IAGpB;AAEN;;SC7CgBQ,kBAAkB;EAChC,MAAMpN,QAAQ,GAAGC,0BAAW,EAAE;EAE9B,MAAM5Z,SAAS,GAAG0D,iBAAiB,CAACT,GAAG,CAACjD,SAAS,EAAE;EAEnD,MAAMyK,QAAQ,GAAG4F,eAAe,CAACpN,GAAG,CAACwH,QAAQ,EAAE;EAC/C,MAAM4B,eAAe,GAAGgE,eAAe,CAACpN,GAAG,CAACoJ,eAAe,EAAE;EAC7D,MAAMsE,mBAAmB,GAAGN,eAAe,CAACpN,GAAG,CAAC0N,mBAAmB,EAAE;EACrE,MAAMG,iBAAiB,GAAGT,eAAe,CAACpN,GAAG,CAAC6N,iBAAiB,EAAE;EAEjE,MAAM;IAAEpH;GAAe,GAAG0c,sBAAU,EAAE;EACtC,MAAMY,eAAe,GAAG,CAACnQ,eAAe,CAAC7W,SAAS,CAAC,CAACinB,KAAK,CAAEzkB,KAAK,IAC9D6J,eAAe,CAACrG,GAAG,CAAE9D,MAAM,IAAKA,MAAM,CAACM,KAAK,CAAC,CAAC6D,QAAQ,CAAC7D,KAAK,CAAC,CAC9D;EAED+E,eAAS,CAAC;IACRoJ,mBAAmB,EAAE;GACtB,EAAE,EAAE,CAAC;EAEN,OACE5H,6BAACme,iBAAc;IACbrQ,eAAe,EAAE/K,iBAAiB,CAAC9L,SAAS,CAAC;IAC7CmnB,iBAAiB,EAAE/a,oBAAoB,CACrC3B,QAAQ,EACR4B,eAAe,EACf3C,aAAa,EACboC,iBAAiB,CAAC9L,SAAS,CAAC,CAC7B;IACDga,MAAM,EAAE,MAAML,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC1B3N,IAAI,EAAEhM,SAAU;IAChB8Z,SAAS,EAAE,MAAMH,QAAQ,CAAC3I,gBAAgB,CAACK,WAAW,CAAC;IACvDiP,QAAQ,EAAGpe,MAAM,IAAK4O,iBAAiB,CAAC5O,MAAM,CAAC;IAC/C8kB,eAAe,EAAEA;IACjB;AAEN;;AClDA;AACA,AAAO,MAAM/M,aAAW,GAAQ;EAC9BrG,YAAY,EAAE,eAAe;EAC7BG,UAAU,EAAE,eAAe;EAC3BC,SAAS,EAAE,sCAAsC;EACjDvT,WAAW,EAAE,GAAG;EAChBgC,OAAO,EAAE;IACP2kB,OAAO,EAAE;MACPrc,UAAU,EAAE,UAAU;MACtBpI,OAAO,EAAE;KACV;IACD0kB,MAAM,EAAE;MACNtc,UAAU,EAAE,SAAS;MACrBpI,OAAO,EAAE;;GAEZ;EACDsR,MAAM,EAAE,SAAS;EACjBC,QAAQ,EAAE,KAAK;EACfC,YAAY,EAAE,IAAI;EAClBC,oBAAoB,EAAE,MAAM;EAC5BC,kBAAkB,EAAE,EAAE;EACtBC,qBAAqB,EAAE,IAAI;EAC3BC,yBAAyB,EAAE,EAAE;EAC7BC,+BAA+B,EAAE,EAAE;EACnCC,oBAAoB,EAAE,IAAI;EAC1BvD,QAAQ,EAAE;IACRQ,QAAQ,EAAE,MAAM;IAChB4H,mBAAmB,EAAE,CACnB,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,SAAS,EACT,YAAY,EACZ,SAAS,EACT,eAAe,EACf,SAAS,EACT,UAAU,EACV,SAAS,EACT,WAAW,EACX,WAAW,EACX,UAAU,EACV,cAAc,EACd,WAAW,EACX,WAAW,EACX,YAAY,EACZ,UAAU,EACV,kBAAkB,EAClB,cAAc,EACd,oBAAoB,EACpB,YAAY,EACZ,QAAQ,EACR,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,MAAM,EACN,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,cAAc,EACd,WAAW,EACX,KAAK,EACL,UAAU,EACV,eAAe,EACf,UAAU,EACV,UAAU,EACV,cAAc,EACd,gBAAgB,CACjB;IACDD,sBAAsB,EAAE;GACzB;EACD1F,gBAAgB,EAAE;IAChB9S,YAAY,EAAE,aAAa;IAC3BX,KAAK,EAAE,CACL;MACE6B,SAAS,EAAE,WAAW;MACtB4U,WAAW,EAAE,oDAAoD;MACjEC,WAAW,EAAE,KAAK;MAClBzR,IAAI,EAAE;QACJnD,MAAM,EAAE,MAAM;QACdiM,IAAI,EAAE,qCAAqC;QAC3CkM,cAAc,EAAE,oDAAoD;QACpExX,OAAO,EAAE,4CAA4C;QACrDJ,UAAU,EAAE,SAAS;QACrBwL,QAAQ,EAAE,CAAC;QACX1N,QAAQ,EAAE;OACX;MACDD,EAAE,EAAE;QACF4B,MAAM,EAAE,KAAK;QACbiM,IAAI,EAAE,qCAAqC;QAC3CkM,cAAc,EAAE,oDAAoD;QACpExX,OAAO,EAAE,4CAA4C;QACrDJ,UAAU,EAAE,SAAS;QACrBwL,QAAQ,EAAE,CAAC;QACX1N,QAAQ,EAAE;OACX;MACDwH,UAAU,EAAE,UAAU;MACtBmN,mBAAmB,EAAE,IAAI;MACzBlC,kBAAkB,EAAE,IAAI;MACxBE,kBAAkB,EAAE,IAAI;MACxBE,yBAAyB,EAAE,IAAI;MAC/BuC,QAAQ,EAAE,aAAa;MACvBtT,GAAG,EAAE,CACH;QACEwL,KAAK,EAAE;UACLpL,UAAU,EAAE,SAAS;UACrBP,MAAM,EAAE,MAAM;UACdW,OAAO,EAAE;SACV;QACDyX,WAAW,EAAE,sBAAsB;QACnC3W,MAAM,EAAE,sEAAsE;QAC9E6C,IAAI,EAAE;OACP,EACD;QACEqH,KAAK,EAAE;UACLpL,UAAU,EAAE,SAAS;UACrBP,MAAM,EAAE,OAAO;UACfW,OAAO,EAAE;SACV;QACDyX,WAAW,EAAE,oBAAoB;QACjC3W,MAAM,EAAE,sBAAsB;QAC9B6C,IAAI,EAAE;OACP,CACF;MACD+T,sBAAsB,EAAE,EAAE;MAC1BC,aAAa,EAAE,aAAa;MAC5BC,MAAM,EAAE,CACN;QACEC,KAAK,EAAE,CACL;UACEA,KAAK,EAAE,CACL;YACEC,UAAU,EAAE,WAAW;YACvBC,QAAQ,EAAE,WAAW;YACrBC,OAAO,EAAE;WACV,CACF;UACDxV,IAAI,EAAE,MAAM;UACZ+P,QAAQ,EAAE,EAAE;UACZ0F,WAAW,EAAE,4CAA4C;UACzDhG,cAAc,EAAE,SAAS;UAEzBxU,EAAE,EAAE,KAAK;UACTkV,MAAM,EAAE,EAAE;UACVuF,SAAS,EAAE,4CAA4C;UACvD5F,YAAY,EAAE;SACf;OAEJ,CACF;MACDkD,mBAAmB,EAAE,IAAI;MACzBmP,QAAQ,EAAE,EAAE;MACZxM,QAAQ,EAAE;QACRnb,GAAG,EAAE,CAAC;QACNob,GAAG,EAAE,EAAE;QACPnb,GAAG,EAAE;OACN;MACDob,qBAAqB,EAAE,KAAK;MAC5BuM,aAAa,EAAE,IAAI;MACnBC,eAAe,EAAE,CAAC;MAClBC,SAAS,EAAE;QACTllB,UAAU,EAAE,SAAS;QACrBP,MAAM,EAAE,MAAM;QACdW,OAAO,EAAE;OACV;MACD+kB,OAAO,EAAE;QACPnlB,UAAU,EAAE,SAAS;QACrBP,MAAM,EAAE,KAAK;QACbW,OAAO,EAAE;;KAEZ,EACD;MACEZ,SAAS,EAAE,UAAU;MACrB4U,WAAW,EAAE,kDAAkD;MAC/DC,WAAW,EAAE,QAAQ;MACrBzR,IAAI,EAAE;QACJnD,MAAM,EAAE,KAAK;QACbiM,IAAI,EAAE,qCAAqC;QAC3CkM,cAAc,EAAE,oDAAoD;QACpExX,OAAO,EAAE,4CAA4C;QACrDJ,UAAU,EAAE,SAAS;QACrBwL,QAAQ,EAAE,CAAC;QACX1N,QAAQ,EAAE;OACX;MACDD,EAAE,EAAE;QACF4B,MAAM,EAAE,KAAK;QACbiM,IAAI,EAAE,qCAAqC;QAC3CkM,cAAc,EAAE,mDAAmD;QACnExX,OAAO,EAAE,IAAI;QACbJ,UAAU,EAAE,QAAQ;QACpBwL,QAAQ,EAAE,CAAC;QACX1N,QAAQ,EAAE;OACX;MACDwH,UAAU,EAAE,aAAa;MACzBmN,mBAAmB,EAAE,IAAI;MACzBlC,kBAAkB,EAAE,IAAI;MACxBE,kBAAkB,EAAE,IAAI;MACxBE,yBAAyB,EAAE,IAAI;MAC/BuC,QAAQ,EAAE,aAAa;MACvBtT,GAAG,EAAE,CACH;QACEwL,KAAK,EAAE;UACLpL,UAAU,EAAE,SAAS;UACrBP,MAAM,EAAE,OAAO;UACfW,OAAO,EAAE;SACV;QACDyX,WAAW,EAAE,oBAAoB;QACjC3W,MAAM,EAAE,sBAAsB;QAC9B6C,IAAI,EAAE;OACP,EACD;QACEqH,KAAK,EAAE;UACLpL,UAAU,EAAE,QAAQ;UACpBP,MAAM,EAAE,KAAK;UACbW,OAAO,EAAE;SACV;QACDyX,WAAW,EAAE,yBAAyB;QACtC3W,MAAM,EAAE,aAAa;QACrB6C,IAAI,EAAE;OACP,CACF;MACD+T,sBAAsB,EAAE,GAAG;MAC3BC,aAAa,EAAE,aAAa;MAC5BC,MAAM,EAAE,IAAI;MACZpC,mBAAmB,EAAE,IAAI;MACzBmP,QAAQ,EAAE,EAAE;MACZxM,QAAQ,EAAE;QACRnb,GAAG,EAAE,EAAE;QACPob,GAAG,EAAE,GAAG;QACRnb,GAAG,EAAE;OACN;MACDob,qBAAqB,EAAE,IAAI;MAC3BuM,aAAa,EAAE,IAAI;MACnBC,eAAe,EAAE,CAAC;MAClBC,SAAS,EAAE;QACTllB,UAAU,EAAE,SAAS;QACrBP,MAAM,EAAE,KAAK;QACbW,OAAO,EAAE;OACV;MACD+kB,OAAO,EAAE;QACPnlB,UAAU,EAAE,QAAQ;QACpBP,MAAM,EAAE,KAAK;QACbW,OAAO,EAAE;;KAEZ,CACF;IACDglB,UAAU,EAAE;GACb;EACDjU,oBAAoB,EAAE,IAAI;EAC1BgB,KAAK,EAAE,CACL;IACEC,EAAE,EAAE,CAAC;IACLC,cAAc,EAAE,SAAS;IACzBC,UAAU,EAAE,MAAM;IAClBC,iBAAiB,EAAE,4CAA4C;IAC/DC,YAAY,EAAE,CAAC;IACfC,mBAAmB,EAAE,IAAI;IACzBlC,kBAAkB,EAAE,IAAI;IACxBE,kBAAkB,EAAE,IAAI;IACxBiC,YAAY,EAAE,SAAS;IACvBC,QAAQ,EAAE,qCAAqC;IAC/CuB,kBAAkB,EAAE,oDAAoD;IACxEC,gBAAgB,EAAE,mDAAmD;IACrEvB,QAAQ,EAAE,KAAK;IACfC,eAAe,EAAE,4CAA4C;IAC7DC,UAAU,EAAE,CAAC;IACbC,MAAM,EAAE,qCAAqC;IAC7CC,oBAAoB,EAAE,aAAa;IACnCxT,SAAS,EAAE,WAAW;IACtB4U,WAAW,EAAE,oDAAoD;IACjEnB,iCAAiC,EAAE,aAAa;IAChD3U,YAAY,EAAE,aAAa;IAC3BoT,MAAM,EAAE,SAAS;IACjByB,aAAa,EAAE,gBAAgB;IAC/BC,qBAAqB,EAAE,oEAAoE;IAC3FC,qBAAqB,EAAE,IAAI;IAC3BpI,WAAW,EAAE,CACX;MACEyN,GAAG,EAAE,+FAA+F;MACpGC,WAAW,EAAE;KACd,CACF;IACDrF,YAAY,EAAE,IAAI;IAClBC,iBAAiB,EAAE,IAAI;IACvBC,iBAAiB,EAAE,IAAI;IACvBK,cAAc,EAAE;MACdnM,IAAI,EAAE,KAAK;MACXsD,UAAU,EAAE,SAAS;MACrBqa,YAAY,EAAE,KAAK;MACnBziB,IAAI,EAAE,4CAA4C;MAClD/E,EAAE,EAAE,4CAA4C;MAChDynB,OAAO,EAAE,IAAI;MACbzQ,IAAI,EAAE,44CAA44C;MACl5CuE,KAAK,EAAE,IAAI;MACXmM,QAAQ,EAAE,SAAS;MACnBC,QAAQ,EAAE,cAAc;MACxBC,KAAK,EAAE;KACR;IACD3R,sBAAsB,EAAE,IAAI;IAC5BC,mBAAmB,EAAE,IAAI;IACzBC,YAAY,EAAE,IAAI;IAClBC,aAAa,EAAE;GAChB,EACD;IACE7B,EAAE,EAAE,CAAC;IACLC,cAAc,EAAE,SAAS;IACzBC,UAAU,EAAE,KAAK;IACjBC,iBAAiB,EAAE,4CAA4C;IAC/DC,YAAY,EAAE,CAAC;IACfC,mBAAmB,EAAE,IAAI;IACzBlC,kBAAkB,EAAE,IAAI;IACxBE,kBAAkB,EAAE,IAAI;IACxBiC,YAAY,EAAE,QAAQ;IACtBC,QAAQ,EAAE,qCAAqC;IAC/CuB,kBAAkB,EAAE,oDAAoD;IACxEC,gBAAgB,EAAE,mDAAmD;IACrEvB,QAAQ,EAAE,KAAK;IACfC,eAAe,EAAE,IAAI;IACrBC,UAAU,EAAE,CAAC;IACbC,MAAM,EAAE,qCAAqC;IAC7CC,oBAAoB,EAAE,aAAa;IACnCxT,SAAS,EAAE,UAAU;IACrB4U,WAAW,EAAE,kDAAkD;IAC/DnB,iCAAiC,EAAE,aAAa;IAChD3U,YAAY,EAAE,YAAY;IAC1BoT,MAAM,EAAE,QAAQ;IAChByB,aAAa,EAAE,gBAAgB;IAC/BC,qBAAqB,EACnB,0FAA0F;IAC5FC,qBAAqB,EAAE,IAAI;IAC3BpI,WAAW,EAAE,CACX;MACEyN,GAAG,EAAE,gHAAgH;MACrHC,WAAW,EAAE;KACd,EACD;MACED,GAAG,EAAE,+FAA+F;MACpGC,WAAW,EAAE;KACd,EACD;MACED,GAAG,EAAE,gHAAgH;MACrHC,WAAW,EAAE;KACd,EACD;MACED,GAAG,EAAE,gHAAgH;MACrHC,WAAW,EAAE;KACd,EACD;MACED,GAAG,EAAE,+GAA+G;MACpHC,WAAW,EAAE;KACd,EACD;MACED,GAAG,EAAE,gHAAgH;MACrHC,WAAW,EAAE;KACd,CACF;IACDrF,YAAY,EAAE,IAAI;IAClBC,iBAAiB,EAAE,IAAI;IACvBC,iBAAiB,EAAE;MACjB9L,IAAI,EAAE,QAAQ;MACdsD,UAAU,EAAE,QAAQ;MACpBpI,IAAI,EAAE,8CAA8C;MACpD8iB,UAAU,EAAE,QAAQ;MACpBC,YAAY,EAAE,CACZ;QACE9kB,IAAI,EAAE,CACJ;UACE+kB,MAAM,EAAE,8CAA8C;UACtDC,QAAQ,EAAE,IAAI;UACdC,UAAU,EAAE;SACb,EACD;UACEF,MAAM,EAAE,8CAA8C;UACtDC,QAAQ,EAAE,KAAK;UACfC,UAAU,EAAE;SACb,EACD;UACEF,MAAM,EAAE,6CAA6C;UACrDC,QAAQ,EAAE,KAAK;UACfC,UAAU,EAAE;SACb,EACD;UACEF,MAAM,EAAE,8CAA8C;UACtDC,QAAQ,EAAE,KAAK;UACfC,UAAU,EAAE;SACb,EACD;UACEF,MAAM,EAAE,8CAA8C;UACtDC,QAAQ,EAAE,KAAK;UACfC,UAAU,EAAE;SACb,EACD;UACEF,MAAM,EAAE,8CAA8C;UACtDC,QAAQ,EAAE,KAAK;UACfC,UAAU,EAAE;SACb,EACD;UACEF,MAAM,EAAE,8CAA8C;UACtDC,QAAQ,EAAE,KAAK;UACfC,UAAU,EAAE;SACb,EACD;UACEF,MAAM,EAAE,8CAA8C;UACtDC,QAAQ,EAAE,KAAK;UACfC,UAAU,EAAE;SACb,EACD;UACEF,MAAM,EAAE,6CAA6C;UACrDC,QAAQ,EAAE,KAAK;UACfC,UAAU,EAAE;SACb,EACD;UACEF,MAAM,EAAE,8CAA8C;UACtDC,QAAQ,EAAE,KAAK;UACfC,UAAU,EAAE;SACb,EACD;UACEF,MAAM,EAAE,6CAA6C;UACrDC,QAAQ,EAAE,KAAK;UACfC,UAAU,EAAE;SACb,EACD;UACEF,MAAM,EAAE,kCAAkC;UAC1CC,QAAQ,EAAE,KAAK;UACfC,UAAU,EAAE;SACb,EACD;UACEF,MAAM,EAAE,6CAA6C;UACrDC,QAAQ,EAAE,KAAK;UACfC,UAAU,EAAE;SACb,EACD;UACEF,MAAM,EAAE,6CAA6C;UACrDC,QAAQ,EAAE,KAAK;UACfC,UAAU,EAAE;SACb,CACF;QACDC,SAAS,EAAE,6CAA6C;QACxDlR,IAAI,EAAE,CAAC,CAAC;OACT,EACD;QACEhU,IAAI,EAAE,CACJ;UACE+kB,MAAM,EAAE,8CAA8C;UACtDC,QAAQ,EAAE,IAAI;UACdC,UAAU,EAAE;SACb,EACD;UACEF,MAAM,EAAE,8CAA8C;UACtDC,QAAQ,EAAE,IAAI;UACdC,UAAU,EAAE;SACb,CACF;QACDC,SAAS,EAAE,kCAAkC;QAC7ClR,IAAI,EAAE,CACJ,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAClF,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAClF,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;OAErD,EACD;QACEhU,IAAI,EAAE,CACJ;UACE+kB,MAAM,EAAE,8CAA8C;UACtDC,QAAQ,EAAE,KAAK;UACfC,UAAU,EAAE;SACb,EACD;UACEF,MAAM,EAAE,6CAA6C;UACrDC,QAAQ,EAAE,KAAK;UACfC,UAAU,EAAE;SACb,EACD;UACEF,MAAM,EAAE,8CAA8C;UACtDC,QAAQ,EAAE,KAAK;UACfC,UAAU,EAAE;SACb,EACD;UACEF,MAAM,EAAE,6CAA6C;UACrDC,QAAQ,EAAE,KAAK;UACfC,UAAU,EAAE;SACb,CACF;QACDC,SAAS,EAAE,6CAA6C;QACxDlR,IAAI,EAAE,CAAC,CAAC;OACT,EACD;QACEhU,IAAI,EAAE,CACJ;UACE+kB,MAAM,EAAE,8CAA8C;UACtDC,QAAQ,EAAE,KAAK;UACfC,UAAU,EAAE;SACb,EACD;UACEF,MAAM,EAAE,8CAA8C;UACtDC,QAAQ,EAAE,KAAK;UACfC,UAAU,EAAE;SACb,EACD;UACEF,MAAM,EAAE,8CAA8C;UACtDC,QAAQ,EAAE,IAAI;UACdC,UAAU,EAAE;SACb,CACF;QACDC,SAAS,EAAE,6CAA6C;QACxDlR,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;OACpC,EACD;QACEhU,IAAI,EAAE,CACJ;UACE+kB,MAAM,EAAE,8CAA8C;UACtDC,QAAQ,EAAE,KAAK;UACfC,UAAU,EAAE;SACb,EACD;UACEF,MAAM,EAAE,8CAA8C;UACtDC,QAAQ,EAAE,KAAK;UACfC,UAAU,EAAE;SACb,EACD;UACEF,MAAM,EAAE,8CAA8C;UACtDC,QAAQ,EAAE,IAAI;UACdC,UAAU,EAAE;SACb,CACF;QACDC,SAAS,EAAE,6CAA6C;QACxDlR,IAAI,EAAE,CAAC,CAAC;OACT,CACF;MACDmR,eAAe,EAAE,8CAA8C;MAC/DC,UAAU,EAAE,CACV;QACEC,SAAS,EAAE,8CAA8C;QACzDC,SAAS,EAAE,CACT,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EACnF,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,EACpF,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAClF,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;OAErC,CACF;MACDC,iBAAiB,EAAE;KACpB;IACDvS,cAAc,EAAE,IAAI;IACpBC,sBAAsB,EAAE,IAAI;IAC5BC,mBAAmB,EAAE,IAAI;IACzBC,YAAY,EAAE,IAAI;IAClBC,aAAa,EAAE,CACb;MACElQ,IAAI,EAAE,yBAAyB;MAC/BjC,KAAK,EAAE,WAAW;MAClBmD,OAAO,EAAE;KACV,EACD;MACElB,IAAI,EAAE,UAAU;MAChBjC,KAAK,EAAE,WAAW;MAClBmD,OAAO,EAAE;KACV,EACD;MACElB,IAAI,EAAE,YAAY;MAClBjC,KAAK,EAAE,WAAW;MAClBmD,OAAO,EAAE;KACV,EACD;MACElB,IAAI,EAAE,cAAc;MACpBjC,KAAK,EAAE,WAAW;MAClBmD,OAAO,EAAE;KACV,EACD;MACElB,IAAI,EAAE,cAAc;MACpBjC,KAAK,EAAE,WAAW;MAClBmD,OAAO,EAAE;KACV,EACD;MACElB,IAAI,EAAE,UAAU;MAChBjC,KAAK,EAAE,WAAW;MAClBmD,OAAO,EAAE;KACV,EACD;MACElB,IAAI,EAAE,QAAQ;MACdjC,KAAK,EAAE,WAAW;MAClBmD,OAAO,EAAE;KACV;GAEJ;CAEJ;;SCzlBeohB,eAAe;EAC7B,MAAMjP,QAAQ,GAAGC,0BAAW,EAAE;EAC9B,OAAO7Q,6BAAC8f,cAAW;IAAC7O,MAAM,EAAEL,QAAQ,CAACI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAAEE,WAAW,EAAEA;IAAe;AACnF;;ACMO,MAAM6O,SAAS,GAAG,MACvBC,wBAAS,CAAC,CACR;EAAEC,IAAI,EAAEhY,gBAAgB,CAACC,IAAI;EAAEgY,OAAO,EAAElgB,6BAAC4Z,IAAI;CAAK,EAClD;EAAEqG,IAAI,EAAEhY,gBAAgB,CAAClN,SAAS;EAAEmlB,OAAO,EAAElgB,6BAACib,eAAe;IAAC/Z,IAAI,EAAC;;CAAW,EAC9E;EAAE+e,IAAI,EAAEhY,gBAAgB,CAAC9M,OAAO;EAAE+kB,OAAO,EAAElgB,6BAACib,eAAe;IAAC/Z,IAAI,EAAC;;CAAS,EAC1E;EAAE+e,IAAI,EAAEhY,gBAAgB,CAACjN,SAAS,GAAG,IAAI;EAAEklB,OAAO,EAAElgB,6BAACyb,eAAe;IAACva,IAAI,EAAC;;CAAW,EACrF;EAAE+e,IAAI,EAAEhY,gBAAgB,CAAC7M,OAAO;EAAE8kB,OAAO,EAAElgB,6BAACyb,eAAe;IAACva,IAAI,EAAC;;CAAS,EAC1E;EAAE+e,IAAI,EAAEhY,gBAAgB,CAACE,QAAQ;EAAE+X,OAAO,EAAElgB,6BAACic,YAAY;CAAK,EAC9D;EACEgE,IAAI,EAAEhY,gBAAgB,CAACG,gBAAgB;EACvC8X,OAAO,EAAElgB,6BAAC2a,mBAAmB;CAC9B,EACD;EAAEsF,IAAI,EAAEhY,gBAAgB,CAACI,OAAO;EAAE6X,OAAO,EAAElgB,6BAAC2T,WAAW;CAAK,EAC5D;EAAEsM,IAAI,EAAEhY,gBAAgB,CAACvO,OAAO;EAAEwmB,OAAO,EAAElgB,6BAACkd,WAAW;CAAK,EAC5D;EAAE+C,IAAI,EAAEhY,gBAAgB,CAACK,WAAW;EAAE4X,OAAO,EAAElgB,6BAAC2Q,eAAe;CAAK,EACpE;EAAEsP,IAAI,EAAEhY,gBAAgB,CAACM,cAAc;EAAE2X,OAAO,EAAElgB,6BAACge,kBAAkB;CAAK,EAC1E;EAAEiC,IAAI,EAAEhY,gBAAgB,CAACO,WAAW;EAAE0X,OAAO,EAAElgB,6BAAC6f,eAAe;CAAK,CACrE,CAAC;;ACtBJ,MAAM5K,QAAM,gBAAGlB,SAAM,CAAC,KAAK,EAAE;EAC3BC,OAAO,EAAE,MAAM;EACfe,KAAK,EAAE,MAAM;EACbF,cAAc,EAAE;CACjB,CAAC;AAEF,MAAMsL,WAAW,gBAAGpM,SAAM,CAAC,KAAK,EAAE;EAChCgB,KAAK,EAAE,KAAK;EACZc,MAAM,EAAE,KAAK;EACbuK,UAAU,EAAE,CAAC,EAAE;EACfpJ,WAAW,EAAE,IAAI;EACjBxB,YAAY,EAAE;CACf,CAAC;AAEF,SAAgB6K,MAAM;EACpB,MAAMzP,QAAQ,GAAGC,0BAAW,EAAE;EAC9B,MAAM;IAAE7M,QAAQ;IAAEtC,QAAQ;IAAE4B;GAAiB,GAAGgE,eAAe,EAAE;EACjE,MAAM;IAAE3G;GAAe,GAAG0c,sBAAU,EAAE;EACtC,MAAMiD,uBAAuB,GAAGjd,oBAAoB,CAAC3B,QAAQ,EAAE4B,eAAe,EAAE3C,aAAa,CAAC;EAC9F,MAAM4f,YAAY,GAAGlb,uBAAuB,CAACrB,QAAQ,CAAC;EAEtD,OACEhE,4DACEA,6BAACiV,QAAM,QACLjV,6BAACsU,SAAM;IACLzN,IAAI,EAAC,OAAO;IACZiQ,MAAM,EAAE9W,6BAACwgB,gBAAa;MAAC3Z,IAAI,EAAE;MAAM;IACnC0N,OAAO,EAAC,OAAO;IACfkM,WAAW;IACXjM,OAAO,EAAE,MAAM5D,QAAQ,CAAC3I,gBAAgB,CAACvO,OAAO;KAC/CgI,QAAQ,EAAEtK,MAAM,GACfkpB,uBAAuB,CAACrjB,GAAG,CAAC,CAAC+K,cAAc,EAAE8V,KAAK,KAChD9d,6BAACmgB,WAAW;IAACvc,GAAG,EAAEka,KAAK;IAAEjH,GAAG,EAAE7O,cAAc,CAAC5G;IAC9C,CAAC,GAEFpB,2DACD,EACDA,6BAACkV,aAAU;IAACX,OAAO,EAAC;KACjB,CAAC7S,QAAQ,EAAEtK,MAAM,GAAG,gBAAgB,OAAOmpB,YAAY,IAAI,GAAG,CACpD,CACN,CACF,EACTvgB,6BAAC+f,SAAS,OAAG,CACZ;AAEP;;ACpDO,MAAMW,YAAY,gBAAGC,YAAS,CAAC;EACpC,GAAG,EAAE;IACH,sBAAsB,EAAE;MAAE5L,KAAK,EAAE;KAAM;IACvC,4BAA4B,EAAE;MAC5BQ,eAAe,EAAE;KAClB;IACD,kCAAkC,EAAE;MAClCA,eAAe,EAAE;KAClB;IACD,4BAA4B,EAAE;MAC5BA,eAAe,EAAE;;;CAGtB,CAAC;;SCVcqL,QAAQ;EACtB,MAAM7X,KAAK,GAAGN,gBAAgB,CAACvO,GAAG,CAAC6O,KAAK,EAAE;EAC1C,MAAMlM,SAAS,GAAGP,YAAY,CAACpC,GAAG,CAAC2C,SAAS,EAAE;EAE9C,MAAM,CAACgkB,OAAO,EAAEC,UAAU,CAAC,GAAG7S,cAAQ,CAAC8S,aAAU,CAAC;EAClDviB,eAAS,CAAC;IACR,CAAC;MACC,MAAM3B,SAAS,EAAE;KAClB,GAAG;IAEJ,MAAMmkB,WAAW,GAAIxJ,KAA0B;MAC7C,IAAIA,KAAK,CAACyJ,OAAO,EAAEH,UAAU,CAACI,YAAS,CAAC,CAAC,KACpCJ,UAAU,CAACC,aAAU,CAAC;KAC5B;IAED,IAAII,MAAM,CAACC,UAAU,IAAID,MAAM,CAACC,UAAU,CAAC,8BAA8B,CAAC,CAACH,OAAO,EAAE;MAClFH,UAAU,CAACI,YAAS,CAAC;;IAGvBC,MAAM,CAACC,UAAU,CAAC,8BAA8B,CAAC,CAACC,gBAAgB,CAAC,QAAQ,EAAEL,WAAW,CAAC;IACzF,OAAO;MACLG,MAAM,CAACC,UAAU,CAAC,8BAA8B,CAAC,CAACE,mBAAmB,CAAC,QAAQ,EAAEN,WAAW,CAAC;KAC7F;GACF,EAAE,EAAE,CAAC;EAEN,MAAMO,cAAc,GAAG;IACrB,IAAIxY,KAAK,KAAK,MAAM,EAAE,OAAO8X,OAAO,CAAC,KAChC,OAAO9X,KAAK,KAAK,MAAM,GAAGmY,YAAS,GAAGH,aAAU;GACtD;EAED,OAAO;IAAES,WAAW,EAAED,cAAc;GAAI;AAC1C;;ACnBA,MAAME,SAAS,gBAAGC,wBAAY,EAAE;AAEhC,MAAaC,OAAO,GAAa;EAC/BjB,YAAY,EAAE;EACd,MAAM;IAAEc;GAAa,GAAGZ,QAAQ,EAAE;EAClC,MAAM;IAAEpkB;GAAa,GAAGF,YAAY,CAACpC,GAAG,CAACqC,IAAI,EAAE;EAC/C,MAAMoL,gBAAgB,GAAGL,eAAe,CAACpN,GAAG,CAACyN,gBAAgB,EAAE;EAC/D,MAAMJ,aAAa,GAAGD,eAAe,CAACpN,GAAG,CAACqN,aAAa,EAAE;EACzD,MAAMqa,kBAAkB,GAAGplB,WAAW,CACnCY,MAAM,CAACykB,6BAAe,CAAC,CACvB5kB,GAAG,CAAExD,KAAK,IAAKA,KAAK,CAAC8D,IAAI,CAAC;EAE7B,MAAMukB,aAAa,GAAiB,CAAC5gB,IAAI,EAAEsW,KAAK,EAAE5E,KAAK,EAAErR,eAAe;IACtE,IAAIiW,KAAK,KAAKuK,kBAAM,CAACC,QAAQ,EAAE;MAC7B,IAAIpP,KAAK,EAAE;QACT,MAAMhR,mBAAmB;;QAEvBN,6BAA6B,CAACC,eAAe,CAAC;QAChD,MAAM8M,IAAI,GAAG5M,6BAA6B,CACxCP,IAAI,EACJ0R,KAAK,EACLgP,kBAAkB,EAClBhgB,mBAAmB,CACpB;QACD2F,aAAa,CAAC8G,IAAI,CAAC;OACpB,MAAM;QACL1G,gBAAgB,CAACzG,IAAI,CAAC;;;GAG3B;EAED,OACElB,6BAACiiB,oBAAQ;IACPC,cAAc,EAAE1lB,WAAW;IAC3BilB,SAAS,EAAEA,SAAS;IACpBK,aAAa,EAAEA;KAEf9hB;IAAK4L,EAAE,EAAC,eAAe;IAAC8K,SAAS,EAAE8K;KACjCxhB,6BAACmiB,gBAAa,QACZniB,6BAACP,SAAS,QACRO,6BAACqgB,MAAM,OAAG,CACA,CACE,CACZ,CACG;AAEf,CAAC;;;;"}
1
+ {"version":3,"file":"widget-embedded.cjs.development.js","sources":["../src/constants/numbers.ts","../src/utils/numbers.ts","../src/utils/routing.ts","../src/store/selectors.ts","../src/store/bestRoute.ts","../src/services/httpService.ts","../src/utils/common.ts","../src/store/meta.ts","../src/constants/searchParams.ts","../src/components/UpdateUrl.tsx","../src/components/AppRouter.tsx","../src/utils/wallets.ts","../src/store/wallets.ts","../src/constants/navigationRoutes.ts","../src/store/settings.ts","../src/hooks/useConfirmSwap.ts","../src/pages/ConfirmSwapPage.tsx","../src/pages/HistoryPage.tsx","../src/components/HeaderButtons.tsx","../src/components/Header.tsx","../src/components/TokenInfo.tsx","../src/components/BottomLogo.tsx","../src/components/SwitchFromAndTo.tsx","../src/components/Footer.tsx","../src/hooks/useBestRoute.ts","../src/constants/errors.ts","../src/utils/swap.ts","../src/pages/Home.tsx","../src/pages/LiquiditySourcesPage.tsx","../src/pages/SelectChainPage.tsx","../src/pages/SelectTokenPage.tsx","../src/pages/SettingsPage.tsx","../src/pages/WalletsPage.tsx","../src/pages/ConfirmWalletsPage.tsx","../src/mockData/pendingSwap.ts","../src/pages/SwapDetailsPage.tsx","../src/components/AppRoutes.tsx","../src/components/Layout.tsx","../src/globalStyles.ts","../src/hooks/useTheme.ts","../src/lib.tsx"],"sourcesContent":["import BigNumber from 'bignumber.js';\n\nexport const ZERO = new BigNumber(0);\n","import { BigNumber } from 'bignumber.js';\n\nexport const percentToString = (p: number, fractions = 0): string => (p * 100).toFixed(fractions);\nexport const secondsToString = (s: number): string => {\n const seconds = (s % 60).toString().padStart(2, '0');\n const minutes = parseInt((s / 60).toString())\n .toString()\n .padStart(2, '0');\n return `${minutes}:${seconds}`;\n};\n\nexport const numberToString = (\n number: BigNumber | string | null,\n minDecimals: number | null = null,\n maxDecimals: number | null = null,\n): string => {\n if (number === null) return '';\n if (number === '') return '';\n const n = new BigNumber(number);\n const roundingMode = 1;\n let maxI = 1000;\n for (let i = 0; i < 60; i++) {\n if (new BigNumber(n.toFixed(i, roundingMode)).eq(n)) {\n maxI = i;\n break;\n }\n }\n\n if (n.gte(10000)) return n.toFormat(0, roundingMode);\n if (n.gte(1000))\n return n.toFormat(\n Math.min(maxI, Math.min(maxDecimals || 100, Math.max(minDecimals || 0, 1))),\n roundingMode,\n );\n if (n.gte(100))\n return n.toFormat(\n Math.min(maxI, Math.min(maxDecimals || 100, Math.max(minDecimals || 0, 1))),\n roundingMode,\n );\n if (n.gte(1))\n return n.toFormat(\n Math.min(maxI, Math.min(maxDecimals || 100, Math.max(minDecimals || 0, 2))),\n roundingMode,\n );\n if (n.gte(0.01))\n return n.toFormat(\n Math.min(maxI, Math.min(maxDecimals || 100, Math.max(minDecimals || 0, 4))),\n roundingMode,\n );\n for (let i = minDecimals || 4; i < 17; i++)\n if (n.gte(Math.pow(10, -i)))\n return n.toFormat(\n Math.min(maxI, Math.min(maxDecimals || 100, Math.max(minDecimals || 0, i))),\n roundingMode,\n );\n if (n.isEqualTo(0)) return '0';\n\n return n.toFormat(\n Math.min(maxI, Math.min(maxDecimals || 100, Math.max(minDecimals || 0, 8))),\n roundingMode,\n );\n};\n\nexport const convertBigNumberToHex = (value: BigNumber, decimals: number): string => {\n return '0x' + value.shiftedBy(decimals).toString(16);\n};\n\nexport const uint8ArrayToHex = (buffer: Uint8Array): string => {\n // buffer is an ArrayBuffer\n return [...buffer].map((x) => x.toString(16).padStart(2, '0')).join('');\n};\n\nexport function dollarToConciseString(num: number | undefined): string {\n if (!num) return '-';\n if (num < 1) return ' < 1$';\n if (num < 1000) return numberToString(new BigNumber(num)) + '$';\n if (num < 10_000) return parseInt((num / 100).toString()) / 10 + 'K';\n if (num < 1_000_000) return parseInt((num / 1000).toString()) + 'K';\n if (num < 100_000_000) return parseInt((num / 100000).toString()) / 10 + 'M';\n return parseInt((num / 1000000).toString()) + 'M';\n}\n\nexport function removeExtraDecimals(num: string, maxDecimals: number): string {\n try {\n if (!num.includes('.')) return num;\n const [b, f] = num.split('.');\n if (f && f.length > maxDecimals) {\n return `${b}.${f.substring(0, maxDecimals)}`;\n }\n return num;\n } catch (e) {\n return num;\n }\n}\n","import {\n SimulationAssetAndAmount,\n SimulationValidationStatus,\n} from '@rango-dev/ui/dist/types/swaps';\nimport BigNumber from 'bignumber.js';\nimport { BestRouteResponse } from 'rango-sdk';\nimport { ZERO } from '../constants/numbers';\nimport { numberToString } from './numbers';\nimport { SelectedWallet } from './wallets';\n\nexport const getBestRouteToTokenUsdPrice = (\n bestRoute: BestRouteResponse | null,\n): number | null | undefined =>\n bestRoute?.result?.swaps[bestRoute?.result?.swaps.length - 1].to.usdPrice;\n\nexport type RouteChangeStatus = {\n isChanged: boolean;\n warningMessage?: string;\n};\n\nexport const compareRoutes = (\n route1: BestRouteResponse,\n route2: BestRouteResponse,\n inputAmount: string,\n fromTokenUsdPrice: number | null,\n toTokenUsdPrice: number | null,\n): RouteChangeStatus => {\n let outUsdValue: BigNumber = (\n new BigNumber(route2.result?.outputAmount || '0') || ZERO\n ).multipliedBy(toTokenUsdPrice || 0);\n if (outUsdValue.isNaN()) outUsdValue = ZERO;\n let inUsdValue: BigNumber = new BigNumber(inputAmount || '0').multipliedBy(\n fromTokenUsdPrice || 0,\n );\n if (inUsdValue.isNaN()) inUsdValue = ZERO;\n const outToInRatio =\n inUsdValue === null || inUsdValue.lte(ZERO)\n ? 0\n : outUsdValue === null || outUsdValue.lte(ZERO)\n ? 0\n : outUsdValue.div(inUsdValue).minus(1).multipliedBy(100);\n const disableSwapButton =\n (parseInt(outToInRatio?.toFixed(2) || '0') <= -10 &&\n (inUsdValue === null || inUsdValue.gte(new BigNumber(400)))) ||\n (parseInt(outToInRatio?.toFixed(2) || '0') <= -5 &&\n (inUsdValue === null || inUsdValue.gte(new BigNumber(1000))));\n\n if (disableSwapButton) {\n return {\n isChanged: true,\n warningMessage: 'Route updated and price impact is too high, try again later!',\n };\n }\n\n const out1 = route1.result?.outputAmount || null;\n const out2 = route2.result?.outputAmount || null;\n if (!!out1 && !!out2) {\n const changePercent = new BigNumber(out2).div(new BigNumber(out1)).minus(1).multipliedBy(100);\n if (changePercent.toNumber() <= -1) {\n return {\n isChanged: true,\n warningMessage: `Output amount changed to ${numberToString(out2)} \n (${numberToString(changePercent, null, 2)}% change).`,\n };\n }\n }\n const route1Swaps = route1.result?.swaps || [];\n const route2Swaps = route2.result?.swaps || [];\n if (route1Swaps.length !== route2Swaps.length)\n return { isChanged: true, warningMessage: 'Route has been updated.' };\n else {\n for (let i = 0; i < route1Swaps.length; i++) {\n if (route1Swaps[i].swapperId !== route2Swaps[i].swapperId)\n return { isChanged: true, warningMessage: 'Route swappers has been updated.' };\n else if (route1Swaps[i].to.symbol !== route2Swaps[i].to.symbol)\n return {\n isChanged: true,\n warningMessage: 'Route internal coins has been updated.',\n };\n }\n }\n return { isChanged: false };\n};\n\nexport const getOutToInRatio = (fromUsdValue: BigNumber | null, toUsdValue: BigNumber | null) =>\n fromUsdValue === null || fromUsdValue.lte(ZERO)\n ? 0\n : toUsdValue === null || toUsdValue.lte(ZERO)\n ? 0\n : toUsdValue.div(fromUsdValue).minus(1).multipliedBy(100);\n\nexport const outToRatioHasWarning = (fromUsdValue: BigNumber | null, outToInRatio: BigNumber | 0) =>\n (parseInt(outToInRatio?.toFixed(2) || '0') <= -10 &&\n (fromUsdValue === null || fromUsdValue.gte(new BigNumber(200)))) ||\n (parseInt(outToInRatio?.toFixed(2) || '0') <= -5 &&\n (fromUsdValue === null || fromUsdValue.gte(new BigNumber(1000))));\n\nexport const getRequiredBalanceOfWallet = (\n wallet: SelectedWallet,\n fee: SimulationValidationStatus[] | null,\n): SimulationAssetAndAmount[] | null => {\n if (fee === null) return null;\n const relatedFeeStatus = fee\n ?.find((item) => item.blockchain === wallet.chain)\n ?.wallets.find((it) => it.address?.toLowerCase() === wallet.address.toLowerCase());\n if (!relatedFeeStatus) return null;\n return relatedFeeStatus.requiredAssets;\n};\n","import { StoreApi, UseBoundStore } from 'zustand';\n\ntype State = object;\n\ntype WithSelectors<S> = S extends { getState: () => infer T }\n ? S & { use: { [K in keyof T]: () => T[K] } }\n : never;\n\nconst createSelectors = <S extends UseBoundStore<StoreApi<State>>>(_store: S) => {\n let store = _store as WithSelectors<typeof _store>;\n store.use = {};\n for (let k of Object.keys(store.getState())) {\n (store.use as any)[k] = () => store((s) => s[k as keyof typeof s]);\n }\n\n return store;\n};\n\nexport default createSelectors;\n","import { BestRouteResponse, BlockchainMeta } from 'rango-sdk';\nimport { Token } from 'rango-sdk/lib';\nimport { create } from 'zustand';\nimport { immer } from 'zustand/middleware/immer';\nimport BigNumber from 'bignumber.js';\nimport { ZERO } from '../constants/numbers';\nimport { getBestRouteToTokenUsdPrice } from '../utils/routing';\nimport createSelectors from './selectors';\n\nconst getUsdValue = (token: Token | null, amount: string) =>\n new BigNumber(amount || ZERO).multipliedBy(token?.usdPrice || 0);\n\ninterface RouteState {\n fromChain: BlockchainMeta | null;\n toChain: BlockchainMeta | null;\n inputAmount: string;\n inputUsdValue: BigNumber;\n outputAmount: BigNumber | null;\n outputUsdValue: BigNumber;\n fromToken: Token | null;\n toToken: Token | null;\n setFromChain: (chain: BlockchainMeta | null) => void;\n setToChain: (chian: BlockchainMeta | null) => void;\n setFromToken: (token: Token | null) => void;\n setToToken: (token: Token | null) => void;\n setInputAmount: (amount: string) => void;\n bestRoute: BestRouteResponse | null;\n setBestRoute: (bestRoute: BestRouteResponse | null) => void;\n}\n\nexport const useBestRouteStore = createSelectors(\n create<RouteState>()(\n immer((set) => ({\n fromChain: null,\n fromToken: null,\n inputAmount: '',\n outputAmount: null,\n inputUsdValue: new BigNumber(0),\n outputUsdValue: new BigNumber(0),\n toChain: null,\n toToken: null,\n bestRoute: null,\n setBestRoute: (bestRoute) =>\n set((state) => {\n state.bestRoute = bestRoute;\n if (!!bestRoute) {\n const outputAmount = !!bestRoute.result?.outputAmount\n ? new BigNumber(bestRoute.result?.outputAmount)\n : null;\n state.outputAmount = outputAmount;\n state.outputUsdValue = new BigNumber(outputAmount || ZERO).multipliedBy(\n getBestRouteToTokenUsdPrice(bestRoute) || state.toToken?.usdPrice || 0,\n );\n }\n }),\n setFromChain: (chain) =>\n set((state) => {\n state.fromChain = chain;\n }),\n setFromToken: (token) =>\n set((state) => {\n state.fromToken = token;\n if (!!state.inputAmount)\n state.inputUsdValue = getUsdValue(state.fromToken!, state.inputAmount);\n }),\n setToChain: (chain) =>\n set((state) => {\n state.toChain = chain;\n }),\n setToToken: (token) =>\n set((state) => {\n state.toToken = token;\n }),\n setInputAmount: (amount) =>\n set((state) => {\n state.inputAmount = amount;\n if (!!state.fromToken)\n state.inputUsdValue = getUsdValue(state.fromToken, state.inputAmount);\n }),\n })),\n ),\n);\n","import { RangoClient } from 'rango-sdk';\n\nexport const httpService = new RangoClient(process.env.REACT_API_KEY as string);\n","export function removeDuplicateFrom<T>(array: T[]): T[] {\n return Array.from(new Set(array));\n}\n","import { create } from 'zustand';\nimport { MetaResponse } from 'rango-sdk';\nimport { httpService } from '../services/httpService';\nimport createSelectors from './selectors';\nimport { removeDuplicateFrom } from '../utils/common';\n\nexport type LoadingStatus = 'loading' | 'success' | 'failed';\n\nexport interface MetaState {\n meta: MetaResponse;\n loadingStatus: LoadingStatus;\n fetchMeta: () => Promise<void>;\n}\n\nexport const useMetaStore = createSelectors(\n create<MetaState>()((set) => ({\n meta: { blockchains: [], popularTokens: [], swappers: [], tokens: [] },\n loadingStatus: 'loading',\n fetchMeta: async () => {\n try {\n const response = await httpService.getAllMetadata();\n const chainThatHasTokenInMetaResponse = removeDuplicateFrom(\n response.tokens.map((t) => t.blockchain),\n );\n const enabledChains = response.blockchains.filter(\n (chain) => chain.enabled && chainThatHasTokenInMetaResponse.includes(chain.name),\n );\n response.blockchains = enabledChains.sort((a, b) => a.sort - b.sort);\n set({ meta: response, loadingStatus: 'success' });\n } catch (error) {\n set({ loadingStatus: 'failed' });\n }\n },\n })),\n);\n","export enum SearchParams {\n 'FROM_CHAIN' = 'fromChain',\n 'FROM_TOKEN' = 'fromToken',\n 'TO_CHAIN' = 'toChain',\n 'TO_TOKEN' = 'toToken',\n 'FROM_AMOUNT' = 'fromAmount',\n}\n","import { Token } from 'rango-sdk';\nimport { useEffect, useRef } from 'react';\nimport { useLocation, useSearchParams } from 'react-router-dom';\nimport { useBestRouteStore } from '../store/bestRoute';\nimport { useMetaStore } from '../store/meta';\nimport { SearchParams } from '../constants/searchParams';\n\nfunction searchParamsToToken(tokens: Token[], searchParams: string | null): Token | null {\n return (\n tokens.find((token) => {\n const symbolAndAddress = searchParams?.split('--');\n if (symbolAndAddress?.length === 1)\n return token.symbol === symbolAndAddress[0] && token.address === null;\n return token.symbol === symbolAndAddress?.[0] && token.address === symbolAndAddress?.[1];\n }) || null\n );\n}\n\nexport function UpdateUrl() {\n const firstRender = useRef(true);\n const [searchParams, setSearchParams] = useSearchParams();\n const location = useLocation();\n\n const fromChain = useBestRouteStore.use.fromChain();\n const toChain = useBestRouteStore.use.toChain();\n const fromToken = useBestRouteStore.use.fromToken();\n const toToken = useBestRouteStore.use.toToken();\n const setFromChain = useBestRouteStore.use.setFromChain();\n const setFromToken = useBestRouteStore.use.setFromToken();\n const setToChain = useBestRouteStore.use.setToChain();\n const setToToken = useBestRouteStore.use.setToToken();\n const inputAmount = useBestRouteStore.use.inputAmount();\n const setInputAmount = useBestRouteStore.use.setInputAmount();\n const loadingStatus = useMetaStore.use.loadingStatus();\n const { blockchains, tokens } = useMetaStore.use.meta();\n\n useEffect(() => {\n if (!firstRender.current) {\n const fromChainString = fromChain?.name || '';\n const fromTokenString =\n (fromToken?.symbol || '') + (fromToken?.address ? `--${fromToken?.address}` : '');\n const toChainString = toChain?.name || '';\n const toTokenString =\n (toToken?.symbol || '') + (toToken?.address ? `--${toToken?.address}` : '');\n const fromAmount = inputAmount;\n\n setSearchParams(\n {\n ...(fromChainString && { [SearchParams.FROM_CHAIN]: fromChainString }),\n ...(fromTokenString && { [SearchParams.FROM_TOKEN]: fromTokenString }),\n ...(toChainString && { [SearchParams.TO_CHAIN]: toChainString }),\n ...(toTokenString && { [SearchParams.TO_TOKEN]: toTokenString }),\n ...(fromAmount && { [SearchParams.FROM_AMOUNT]: fromAmount.toString() }),\n },\n { replace: true },\n );\n }\n firstRender.current = false;\n }, [location.pathname, inputAmount]);\n\n useEffect(() => {\n if (loadingStatus === 'success') {\n const fronChainString = searchParams.get(SearchParams.FROM_CHAIN);\n const fromTokenString = searchParams.get(SearchParams.FROM_TOKEN);\n const toChainString = searchParams.get(SearchParams.TO_CHAIN);\n const toTokenString = searchParams.get(SearchParams.TO_TOKEN);\n const fromAmount = searchParams.get(SearchParams.FROM_AMOUNT);\n const fromChain = blockchains.find((blockchain) => blockchain.name === fronChainString);\n const fromToken = searchParamsToToken(tokens, fromTokenString);\n const toChain = blockchains.find((blockchain) => blockchain.name === toChainString);\n const toToken = searchParamsToToken(tokens, toTokenString);\n if (!!fromChain) {\n setFromChain(fromChain);\n if (!!fromToken) setFromToken(fromToken);\n }\n if (!!toChain) {\n setToChain(toChain);\n if (!!toToken) setToToken(toToken);\n }\n if (fromAmount) setInputAmount(fromAmount);\n }\n }, [loadingStatus]);\n\n return null;\n}\n","import React, { Fragment, PropsWithChildren } from 'react';\nimport { MemoryRouter, useInRouterContext } from 'react-router';\nimport { UpdateUrl } from './UpdateUrl';\n\nexport function AppRouter({ children }: PropsWithChildren) {\n const isRouterInContext = useInRouterContext();\n const Router = isRouterInContext ? Fragment : MemoryRouter;\n\n return (\n <>\n <Router>{children}</Router>\n {isRouterInContext && <UpdateUrl />}\n </>\n );\n}\n","import {\n getCosmosExperimentalChainInfo,\n isEvmAddress,\n KEPLR_COMPATIBLE_WALLETS,\n Network,\n WalletInfo,\n WalletState,\n WalletType,\n isCosmosBlockchain,\n} from '@rango-dev/wallets-shared';\n\nimport {\n WalletInfo as ModalWalletInfo,\n WalletState as WalletStatus,\n} from '@rango-dev/ui';\nimport {\n BestRouteResponse,\n BlockchainMeta,\n Token,\n WalletDetail,\n} from 'rango-sdk';\nimport { readAccountAddress } from '@rango-dev/wallets-core';\nimport { SelectableWallet } from '../pages/ConfirmWalletsPage';\nimport { Account, Balance, TokenBalance } from '../store/wallets';\nimport { numberToString } from './numbers';\nimport BigNumber from 'bignumber.js';\nimport { TokenWithBalance } from '../pages/SelectTokenPage';\nimport { ZERO } from '../constants/numbers';\n\nexport function getStateWallet(state: WalletState): WalletStatus {\n switch (true) {\n case state.connected:\n return WalletStatus.CONNECTED;\n case state.connecting:\n return WalletStatus.CONNECTING;\n case !state.installed:\n return WalletStatus.NOT_INSTALLED;\n default:\n return WalletStatus.DISCONNECTED;\n }\n}\n\nexport const excludedWallets = [\n WalletType.UNKNOWN,\n WalletType.TERRA_STATION,\n WalletType.LEAP,\n];\n\nexport function getlistWallet(\n getState: (type: WalletType) => WalletState,\n getWalletInfo: (type: WalletType) => WalletInfo,\n list: WalletType[]\n): ModalWalletInfo[] {\n const excludedWallets = [\n WalletType.UNKNOWN,\n WalletType.TERRA_STATION,\n WalletType.LEAP,\n ];\n\n return list\n .filter((wallet) => !excludedWallets.includes(wallet))\n .map((type) => {\n const { name, img: image, installLink } = getWalletInfo(type);\n const state = getStateWallet(getState(type));\n return {\n name,\n image,\n installLink,\n state,\n type,\n };\n });\n}\n\nexport function walletAndSupportedChainsNames(\n supportedChains: BlockchainMeta[]\n): Network[] | null {\n if (!supportedChains) return null;\n let walletAndSupportedChainsNames: Network[] = [];\n walletAndSupportedChainsNames = supportedChains.map(\n (blockchainMeta) => blockchainMeta.name as Network\n );\n\n return walletAndSupportedChainsNames;\n}\n\nexport function prepareAccountsForWalletStore(\n wallet: WalletType,\n accounts: string[],\n evmBasedChains: string[],\n supportedChainNames: Network[] | null\n): Account[] {\n const result: Account[] = [];\n\n function addAccount(network: Network, address: string) {\n const newAccount: Account = {\n address,\n chain: network,\n walletType: wallet,\n };\n\n result.push(newAccount);\n }\n\n const supportedChains = supportedChainNames || [];\n\n accounts.forEach((account) => {\n const { address, network } = readAccountAddress(account);\n\n const hasLimitation = supportedChains.length > 0;\n const isSupported = supportedChains.includes(network);\n const isUnknown = network === Network.Unknown;\n const notSupportedNetworkByWallet =\n hasLimitation && !isSupported && !isUnknown;\n\n // Here we check given `network` is not supported by wallet\n // And also the network is known.\n if (notSupportedNetworkByWallet) return;\n\n // In some cases we can handle unknown network by checking its address\n // pattern and act on it.\n // Example: showing our evm compatible netwrok when the uknown network is evem.\n // Otherwise, we stop executing this function.\n const isUknownAndEvmBased =\n network === Network.Unknown && isEvmAddress(address);\n if (isUnknown && !isUknownAndEvmBased) return;\n\n const isEvmBasedChain = evmBasedChains.includes(network);\n\n // If it's an evm network, we will add the address to all the evm chains.\n if (isEvmBasedChain || isUknownAndEvmBased) {\n // all evm chains are not supported in wallets, so we are adding\n // only to those that are supported by wallet.\n const evmChainsSupportedByWallet = supportedChains.filter((chain) =>\n evmBasedChains.includes(chain)\n );\n\n evmChainsSupportedByWallet.forEach((network) => {\n // EVM addresses are not case sensetive.\n // Some wallets like Binance-chain return some letters in uppercase which produces bugs in our wallet state.\n addAccount(network, address.toLowerCase());\n });\n } else {\n addAccount(network, address);\n }\n });\n\n return result;\n}\n\nexport function getRequiredChains(route: BestRouteResponse | null) {\n const wallets: string[] = [];\n\n route?.result?.swaps.forEach((swap) => {\n const currentStepFromBlockchain = swap.from.blockchain;\n const currentStepToBlockchain = swap.to.blockchain;\n let lastAddedWallet = wallets[wallets.length - 1];\n if (currentStepFromBlockchain != lastAddedWallet)\n wallets.push(currentStepFromBlockchain);\n lastAddedWallet = wallets[wallets.length - 1];\n if (currentStepToBlockchain != lastAddedWallet)\n wallets.push(currentStepToBlockchain);\n });\n return wallets;\n}\n\nexport interface SelectedWallet extends Account {}\ntype Blockchain = { name: string; accounts: Balance[] };\n\nexport function getSelectableWallets(\n accounts: Account[],\n selectedWallets: SelectedWallet[],\n getWalletInfo: (type: WalletType) => WalletInfo,\n requiredChains?: string[]\n) {\n const connectedWallets: SelectableWallet[] = accounts.map((account) => ({\n address: account.address,\n walletType: account.walletType,\n chain: account.chain,\n image: getWalletInfo(account.walletType).img,\n name: getWalletInfo(account.walletType).name,\n selected: !!selectedWallets.find(\n (wallet) =>\n wallet.chain === account.chain &&\n wallet.walletType === account.walletType\n ),\n }));\n\n return requiredChains\n ? connectedWallets.filter(\n (wallet, index, array) =>\n requiredChains.includes(wallet.chain) &&\n array.findIndex((w) => w.address === wallet.address) === index\n )\n : removeDuplicateWallets(connectedWallets, 'walletType');\n}\n\nconst removeDuplicateWallets = (\n arr: SelectableWallet[],\n key: string\n): SelectableWallet[] => {\n const map = new Map(arr.map((item) => [item[key], item]));\n return Array.from(map.values());\n};\n\nexport function getBalanceFromWallet(\n balances: Balance[],\n chain: string,\n symbol: string,\n address: string | null\n): TokenBalance | null {\n if (balances.length === 0) return null;\n\n const selectedChainBalances = balances.filter(\n (balance) => balance.chain === chain\n );\n if (selectedChainBalances.length === 0) return null;\n\n return (\n selectedChainBalances\n .map(\n (a) =>\n a.balances?.find(\n (bl) =>\n (address !== null && bl.address === address) ||\n (address === null &&\n bl.address === address &&\n bl.symbol === symbol)\n ) || null\n )\n .filter((b) => b !== null)\n .sort(\n (a, b) => parseFloat(b?.amount || '0') - parseFloat(a?.amount || '1')\n )\n .find(() => true) || null\n );\n}\n\nexport function isAccountAndBalanceMatched(account: Account, balance: Balance) {\n return (\n account.address === balance.address &&\n account.chain === balance.chain &&\n account.walletType === balance.walletType\n );\n}\n\nexport function makeBalanceFor(\n account: Account,\n retrivedBalance: WalletDetail,\n tokens: Token[]\n): Balance {\n const {\n address,\n blockChain: chain,\n explorerUrl,\n balances = [],\n } = retrivedBalance;\n return {\n address,\n chain,\n loading: false,\n error: false,\n explorerUrl,\n walletType: account.walletType,\n balances:\n balances?.map((tokenBalance) => ({\n chain,\n symbol: tokenBalance.asset.symbol,\n ticker: tokenBalance.asset.symbol,\n address: tokenBalance.asset.address || null,\n rawAmount: tokenBalance.amount.amount,\n decimal: tokenBalance.amount.decimals,\n amount: new BigNumber(tokenBalance.amount.amount)\n .shiftedBy(-tokenBalance.amount.decimals)\n .toFixed(),\n logo: '',\n usdPrice:\n getUsdPrice(\n chain,\n tokenBalance.asset.symbol,\n tokenBalance.asset.address,\n tokens\n ) || null,\n })) || [],\n };\n}\n\nexport function resetBalanceState(balance: Balance): Balance {\n return { ...balance, loading: false, error: true };\n}\n\nexport const calculateWalletUsdValue = (balance: Balance[]) => {\n const uniqueAccountAddresses = new Set<string | null>();\n const uniqueBalane: Balance[] = balance?.reduce(\n (acc: Balance[], current: Balance) => {\n return acc.findIndex(\n (i) => i.address === current.address && i.chain === current.chain\n ) === -1\n ? [...acc, current]\n : acc;\n },\n []\n );\n\n const modifiedWalletBlockchains = uniqueBalane?.map((chain) => {\n const modifiedWalletBlockchain: Blockchain = {\n name: chain.chain,\n accounts: [],\n };\n if (!uniqueAccountAddresses.has(chain.address)) {\n uniqueAccountAddresses.add(chain.address);\n }\n uniqueAccountAddresses.forEach((accountAddress) => {\n if (chain.address === accountAddress)\n modifiedWalletBlockchain.accounts.push(chain);\n });\n return modifiedWalletBlockchain;\n });\n const total = numberToString(\n modifiedWalletBlockchains\n ?.flatMap((b) => b.accounts)\n ?.flatMap((a) => a?.balances)\n ?.map((b) =>\n new BigNumber(b?.amount || ZERO).multipliedBy(b?.usdPrice || 0)\n )\n ?.reduce((a, b) => a.plus(b), ZERO) || ZERO\n ).toString();\n\n return numberWithThousandSeperator(total);\n};\n\nfunction numberWithThousandSeperator(number: string | number): string {\n var parts = number.toString().split('.');\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n return parts.join('.');\n}\n\nexport const sortedTokens = (\n tokens: TokenWithBalance[],\n position: 'from' | 'to',\n balance: Balance[]\n): TokenWithBalance[] => {\n if (!tokens) return [];\n const walletSymbols = new Set(\n (balance || [])\n .flatMap((a) => a.balances || [])\n .filter((b) => (new BigNumber(b?.rawAmount) || ZERO).gt(0))\n .map((b) => `${b?.chain}.${b?.symbol}.${b?.address}`)\n );\n let sortedList = [\n ...tokens.filter(\n (t) => !t.address && walletSymbols.size && position === 'to'\n ),\n ...tokens\n .filter(\n (t) =>\n !(position === 'to' && !t.address) &&\n walletSymbols.has(`${t.blockchain}.${t.symbol}.${t.address}`)\n )\n .sort((tokenA, tokenB) => compareBalance(tokenA, tokenB, balance)),\n ...tokens.filter(\n (t) =>\n !walletSymbols.has(`${t.blockchain}.${t.symbol}.${t.address}`) &&\n !t.address &&\n (!walletSymbols.size || position === 'from')\n ),\n ...tokens.filter(\n (t) =>\n !walletSymbols.has(`${t.blockchain}.${t.symbol}.${t.address}`) &&\n t.address &&\n !t.isSecondaryCoin\n ),\n ...tokens.filter(\n (t) =>\n !walletSymbols.has(`${t.blockchain}.${t.symbol}.${t.address}`) &&\n t.isSecondaryCoin\n ),\n ];\n\n return sortedList;\n};\n\nconst compareBalance = (\n tokenA: TokenWithBalance,\n tokenB: TokenWithBalance,\n wallet: Balance[]\n): number => {\n if (!tokenA.usdPrice || !tokenB.usdPrice) return 0;\n\n const tokenAUsdValue = new BigNumber(\n getBalanceFromWallet(\n wallet,\n tokenA.blockchain,\n tokenA.symbol,\n tokenA.address\n )?.amount || ZERO\n ).multipliedBy(tokenA.usdPrice);\n const tokenBUsdValue = new BigNumber(\n getBalanceFromWallet(\n wallet,\n tokenB.blockchain,\n tokenB.symbol,\n tokenB.address\n )?.amount || ZERO\n ).multipliedBy(tokenB.usdPrice);\n if (tokenAUsdValue.gt(tokenBUsdValue)) return -1;\n return 1;\n};\n\nexport const getUsdPrice = (\n blockchain: string,\n symbol: string,\n address: string | null,\n allTokens: Token[]\n): number | null => {\n const token = allTokens?.find(\n (t) =>\n t.blockchain === blockchain &&\n t.symbol?.toUpperCase() === symbol?.toUpperCase() &&\n t.address === address\n );\n return token?.usdPrice || null;\n};\nexport const isExperimentalChain = (\n blockchains: BlockchainMeta[],\n wallet: string\n): boolean => {\n const cosmosExperimentalChainInfo = getCosmosExperimentalChainInfo(\n Object.entries(blockchains)\n .map(([, blockchainMeta]) => blockchainMeta)\n .filter(isCosmosBlockchain)\n );\n return cosmosExperimentalChainInfo && !!cosmosExperimentalChainInfo[wallet];\n};\n\nexport const getKeplrCompatibleConnectedWallets = (\n selectableWallets: SelectableWallet[]\n): WalletType[] => {\n const connectedWalletTypes = new Set(\n selectableWallets.map((a: any) => a.walletType.toString())\n );\n\n return KEPLR_COMPATIBLE_WALLETS.filter((compatibleWallet) =>\n connectedWalletTypes.has(compatibleWallet)\n );\n};\n","import { WalletType } from '@rango-dev/wallets-shared';\nimport { create } from 'zustand';\nimport { SelectableWallet } from '../pages/ConfirmWalletsPage';\nimport { httpService } from '../services/httpService';\nimport {\n getRequiredChains,\n isAccountAndBalanceMatched,\n makeBalanceFor,\n resetBalanceState,\n SelectedWallet,\n} from '../utils/wallets';\nimport { useBestRouteStore } from './bestRoute';\nimport { useMetaStore } from './meta';\nimport createSelectors from './selectors';\n\nexport interface Account {\n chain: string;\n address: string;\n walletType: WalletType;\n}\n\nexport type TokenBalance = {\n chain: string;\n symbol: string;\n ticker: string;\n address: string | null;\n rawAmount: string;\n decimal: number | null;\n amount: string;\n logo: string | null;\n usdPrice: number | null;\n};\n\nexport interface Balance {\n balances: TokenBalance[] | null;\n address: string;\n chain: string;\n loading: boolean;\n walletType: WalletType;\n error: boolean;\n explorerUrl: string | null;\n}\n\ninterface WalletsStore {\n accounts: Account[];\n balances: Balance[];\n selectedWallets: SelectedWallet[];\n connectWallet: (accounts: Account[]) => void;\n disconnectWallet: (walletType: WalletType) => void;\n initSelectedWallets: () => void;\n setSelectedWallet: (wallet: SelectableWallet) => void;\n}\n\nexport const useWalletsStore = createSelectors(\n create<WalletsStore>()((set) => ({\n accounts: [],\n balances: [],\n selectedWallets: [],\n connectWallet: (accounts) => {\n const tokens = useMetaStore.getState().meta.tokens;\n\n set((state) => ({\n accounts: state.accounts.concat(accounts),\n balances: state.balances.concat(\n accounts.map((account) => ({\n balances: [],\n address: account.address,\n chain: account.chain,\n loading: true,\n walletType: account.walletType,\n error: false,\n explorerUrl: null,\n })),\n ),\n }));\n accounts.forEach(async (account) => {\n try {\n const response = await httpService.getWalletsDetails([\n { address: account.address, blockchain: account.chain },\n ]);\n const retrivedBalance = response.wallets[0];\n if (retrivedBalance) {\n set((state) => ({\n balances: state.balances.map((balance) => {\n return isAccountAndBalanceMatched(account, balance)\n ? makeBalanceFor(account, retrivedBalance, tokens)\n : balance;\n }),\n }));\n } else throw new Error('Wallet not found');\n } catch (error) {\n set((state) => ({\n balances: state.balances.map((balance) => {\n return isAccountAndBalanceMatched(account, balance)\n ? resetBalanceState(balance)\n : balance;\n }),\n }));\n }\n });\n },\n disconnectWallet: (walletType) => {\n set((state) => ({\n accounts: state.accounts.filter((account) => account.walletType !== walletType),\n balances: state.balances.filter((balance) => balance.walletType !== walletType),\n selectedWallets: state.selectedWallets.filter((wallet) => wallet.walletType != walletType),\n }));\n },\n initSelectedWallets: () =>\n set((state) => {\n const requiredChains = getRequiredChains(useBestRouteStore.getState().bestRoute);\n const connectedWallets = state.accounts;\n const selectedWallets: SelectedWallet[] = [];\n requiredChains.forEach((chain) => {\n const anyWalletSelected = !!state.selectedWallets.find(\n (wallet) => wallet.chain === chain,\n );\n if (!anyWalletSelected) {\n const firstWalletWithMatchedChain = connectedWallets.find(\n (wallet) => wallet.chain === chain,\n );\n if (!!firstWalletWithMatchedChain)\n selectedWallets.push({\n address: firstWalletWithMatchedChain.address,\n chain: firstWalletWithMatchedChain.chain,\n walletType: firstWalletWithMatchedChain.walletType,\n });\n }\n });\n return { selectedWallets: state.selectedWallets.concat(selectedWallets) };\n }),\n setSelectedWallet: (wallet) =>\n set((state) => ({\n selectedWallets: state.selectedWallets\n .filter((selectedWallet) => selectedWallet.chain !== wallet.chain)\n .concat({\n chain: wallet.chain,\n address: wallet.address,\n walletType: wallet.walletType,\n }),\n })),\n })),\n);\n","export const navigationRoutes = {\n home: '/',\n fromChain: '/from-chain',\n fromToken: '/from-token',\n toChain: '/to-chain',\n toToken: '/to-token',\n settings: '/settings',\n liquiditySources: '/liquidity-sources',\n history: '/history',\n wallets: '/wallets',\n confirmSwap: '/confirm-swap',\n confirmWallets: '/confirm-wallets',\n swapDetails: '/swap-details',\n};\n","import { create } from 'zustand';\nimport { persist } from 'zustand/middleware';\nimport { immer } from 'zustand/middleware/immer';\nimport { useMetaStore } from './meta';\nimport createSelectors from './selectors';\n\ntype Theme = 'auto' | 'dark' | 'light';\n\ninterface Settings {\n slippage: number;\n customSlippage: number | null;\n infinitApprove: boolean;\n disabledLiquiditySources: string[];\n theme: Theme;\n setSlippage: (slippage: number) => void;\n setCustomSlippage: (customSlippage: number | null) => void;\n toggleInfinitApprove: () => void;\n toggleLiquiditySource: (name: string) => void;\n setTheme: (theme: Theme) => void;\n toggleAllLiquiditySources: () => void;\n}\n\nexport const useSettingsStore = createSelectors(\n create<Settings>()(\n persist(\n immer((set) => ({\n slippage: 1,\n customSlippage: null,\n infinitApprove: false,\n disabledLiquiditySources: [],\n theme: 'auto',\n setSlippage: (slippage) =>\n set((state) => {\n state.slippage = slippage;\n }),\n setCustomSlippage: (customSlippage) => {\n return set((state) => {\n state.customSlippage = customSlippage;\n });\n },\n toggleAllLiquiditySources: () =>\n set((state) => {\n const { swappers } = useMetaStore.getState().meta;\n\n if (swappers.length - state.disabledLiquiditySources.length === 0)\n state.disabledLiquiditySources = [];\n else {\n const allSwappers = swappers.map((swapper) => swapper.swapperGroup);\n state.disabledLiquiditySources = allSwappers;\n }\n }),\n toggleInfinitApprove: () =>\n set((state) => {\n state.infinitApprove = !state.infinitApprove;\n }),\n toggleLiquiditySource: (name) =>\n set((state) => {\n state.disabledLiquiditySources = state.disabledLiquiditySources.includes(name)\n ? state.disabledLiquiditySources.filter((liquiditySource) => liquiditySource != name)\n : state.disabledLiquiditySources.concat(name);\n }),\n setTheme: (theme) =>\n set((state) => {\n state.theme = theme;\n }),\n })),\n {\n name: 'user-settings',\n },\n ),\n ),\n);\n","import {\n BestRouteType,\n SimulationValidationStatus,\n} from '@rango-dev/ui/dist/types/swaps';\n// import { WalletType } from '@rango-dev/wallets-shared';\nimport BigNumber from 'bignumber.js';\nimport { BestRouteRequest, BestRouteResponse } from 'rango-sdk';\nimport { useState } from 'react';\nimport { httpService } from '../services/httpService';\nimport { useBestRouteStore } from '../store/bestRoute';\nimport { useSettingsStore } from '../store/settings';\nimport { useWalletsStore } from '../store/wallets';\nimport { compareRoutes, getRequiredBalanceOfWallet } from '../utils/routing';\nimport { SelectedWallet } from '../utils/wallets';\n\ntype CheckFeeAndBalanceResult =\n | {\n hasEnoughBalanceOrSlippage: {\n balance: boolean;\n slippage: boolean;\n routeChanged: boolean;\n };\n bestRoute: BestRouteType;\n }\n | { bestRoute: null }\n | null;\n\nexport function useConfirmSwap() {\n const fromToken = useBestRouteStore.use.fromToken();\n const toToken = useBestRouteStore.use.toToken();\n const inputAmount = useBestRouteStore.use.inputAmount();\n const bestRoute = useBestRouteStore.use.bestRoute();\n const setBestRoute = useBestRouteStore.use.setBestRoute();\n const accounts = useWalletsStore.use.accounts();\n const selectedWallets = useWalletsStore.use.selectedWallets();\n\n const slippage = useSettingsStore.use.slippage();\n const disabledLiquiditySources =\n useSettingsStore.use.disabledLiquiditySources();\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState('');\n const [warning, setWarning] = useState('');\n const [data, setData] = useState<BestRouteResponse | null>(null);\n const [feeStatus, setFeeStatus] = useState<\n SimulationValidationStatus[] | null\n >(null);\n const [bestRouteChanged, setBestRouteChanged] = useState(false);\n const [enoughBalance, setEnoughBalance] = useState<boolean | null>(null);\n\n const hasEnoughBalanceOrProperSlippage = (\n route: BestRouteType,\n selectedWallets: SelectedWallet[],\n userSlippage: string,\n routeChanged: boolean\n ): { balance: boolean; slippage: boolean; routeChanged: boolean } => {\n const fee = route.validationStatus;\n\n if (fee === null || fee.length === 0)\n return { balance: true, slippage: true, routeChanged };\n\n for (const wallet of selectedWallets) {\n const requiredAssets = getRequiredBalanceOfWallet(wallet, fee);\n if (!requiredAssets) continue;\n\n const hasEnoughBalance = requiredAssets\n ?.map((it) => it.ok)\n .reduce((a, b) => a && b);\n if (!hasEnoughBalance)\n return { balance: false, slippage: true, routeChanged };\n }\n\n const slippages = route.result?.swaps?.map((s) => s.recommendedSlippage);\n const slippageError =\n (slippages?.filter((s) => !!s?.error)?.length || 0) > 0;\n const minSlippage =\n slippages\n ?.map((s) => parseFloat(s?.slippage.toString() || '0') || 0)\n .filter((s) => s > 0)\n .sort((a, b) => b - a)\n .find(() => true) || null;\n if (slippageError) {\n setError('Server cannot calculated required slippage for your swap');\n return { balance: true, slippage: false, routeChanged };\n } else if (minSlippage !== null && minSlippage > parseFloat(userSlippage)) {\n setError(`Your slippage should be ${minSlippage} at least`);\n return { balance: true, slippage: false, routeChanged };\n }\n\n return { balance: true, slippage: true, routeChanged };\n };\n\n const checkFeeAndBalance = async (\n selectedWallets: SelectedWallet[]\n ): Promise<CheckFeeAndBalanceResult> => {\n setLoading(true);\n setFeeStatus(null);\n\n const selectedWalletsMap = selectedWallets.reduce(\n (\n selectedWalletsMap: BestRouteRequest['selectedWallets'],\n selectedWallet\n ) => (\n (selectedWalletsMap[selectedWallet.chain] = selectedWallet.address),\n selectedWalletsMap\n ),\n {}\n );\n\n const connectedWallets: BestRouteRequest['connectedWallets'] = [];\n\n accounts.forEach((account) => {\n const chainAndAccounts = connectedWallets.find(\n (wallet) => wallet.blockchain\n );\n if (!!chainAndAccounts) chainAndAccounts.addresses.push(account.address);\n else\n connectedWallets.push({\n blockchain: account.chain,\n addresses: [account.address],\n });\n });\n\n const r = await httpService\n .getBestRoute({\n amount: inputAmount!.toString(),\n checkPrerequisites: true,\n from: {\n address: fromToken!.address,\n blockchain: fromToken!.blockchain,\n symbol: fromToken!.symbol,\n },\n to: {\n address: toToken!.address,\n blockchain: toToken!.blockchain,\n symbol: toToken!.symbol,\n },\n connectedWallets,\n selectedWallets: selectedWalletsMap,\n //@ts-ignore\n swapperGroups: disabledLiquiditySources,\n swappersGroupsExclude: true,\n })\n .catch((error) => {\n setError(error.message);\n setLoading(false);\n });\n setLoading(false);\n if (!r || !r.result || !bestRoute) return { bestRoute: null };\n if (\n !new BigNumber(r.requestAmount).isEqualTo(\n new BigNumber(inputAmount || '-1')\n )\n )\n return null;\n setFeeStatus(r.validationStatus);\n const routeChangeStatus = compareRoutes(\n bestRoute,\n r,\n inputAmount!.toString(),\n fromToken!.usdPrice,\n toToken!.usdPrice\n );\n setBestRoute(r);\n const isChanged = routeChangeStatus.isChanged;\n // const changeWarningMessage = routeChangeStatus.warningMessage;\n setBestRouteChanged(isChanged);\n setWarning('Best route changed');\n setData(r);\n return {\n hasEnoughBalanceOrSlippage: hasEnoughBalanceOrProperSlippage(\n r,\n selectedWallets,\n slippage.toString(),\n isChanged\n ),\n bestRoute: r,\n };\n };\n\n const swap = () => {\n if (!bestRoute) return;\n if (inputAmount!.toString() === '') return;\n // const wallets = selectedWallets.reduce(\n // (\n // selectedWalletsMap: { [p: string]: { address: string; walletType: WalletType } },\n // selectedWallet,\n // ) => (\n // (selectedWalletsMap[selectedWallet.chain] = {\n // address: selectedWallet.address,\n // walletType: selectedWallet.walletType,\n // }),\n // selectedWalletsMap\n // ),\n // {},\n // );\n\n const proceedAnyway = enoughBalance !== null;\n\n // const settings: SwapSavedSettings = {\n // slippage: slippage.toString(),\n // disabledSwappersGroups: ['Osmosis'],\n // disabledSwappersIds: [],\n // };\n // if (proceedAnyway) {\n // const newSwap: PendingSwap = calculatePendingSwap(\n // inputAmount!.toString(),\n // bestRoute,\n // wallets,\n // settings,\n // false,\n // );\n // }\n\n !proceedAnyway &&\n checkFeeAndBalance(selectedWallets)\n .then((data) => {\n if (!data) {\n setError('confirm swap error');\n return;\n }\n\n if (!data.bestRoute) {\n setError('confirm swap error');\n return;\n } else {\n // @ts-ignore\n const { hasEnoughBalanceOrSlippage } = data;\n if (!hasEnoughBalanceOrSlippage) {\n return;\n }\n\n setEnoughBalance(\n hasEnoughBalanceOrSlippage.balance &&\n hasEnoughBalanceOrSlippage.slippage\n );\n\n if (\n hasEnoughBalanceOrSlippage.balance &&\n hasEnoughBalanceOrSlippage.slippage &&\n !hasEnoughBalanceOrSlippage.routeChanged\n ) {\n // const newSwap: PendingSwap = calculatePendingSwap(\n // inputAmount!.toString(),\n // newBestRoute,\n // wallets,\n // settings,\n // true,\n // );\n } else if (!hasEnoughBalanceOrSlippage.balance) {\n setError('not enough balance');\n }\n }\n })\n .catch((error) => {\n console.log('unexpected error', error);\n });\n };\n return {\n loading,\n error,\n data,\n warning,\n feeStatus,\n bestRouteChanged,\n enoughBalance,\n swap,\n } as any;\n}\n","import React from 'react';\nimport { ConfirmSwap } from '@rango-dev/ui';\nimport { useNavigate } from 'react-router-dom';\nimport { useBestRouteStore } from '../store/bestRoute';\nimport { useConfirmSwap } from '../hooks/useConfirmSwap';\n\nexport function ConfirmSwapPage() {\n const navigate = useNavigate();\n\n const bestRoute = useBestRouteStore.use.bestRoute();\n\n const { error, loading, warning, swap } = useConfirmSwap();\n\n return (\n <ConfirmSwap\n onConfirm={swap.bind(null)}\n onBack={navigate.bind(null, -1)}\n bestRoute={bestRoute}\n loading={loading}\n error={error}\n warning={warning}\n />\n );\n}\n","import { History } from '@rango-dev/ui';\nimport { PendingSwap } from '@rango-dev/ui/dist/containers/History/types';\nimport { TransactionType } from 'rango-sdk';\nimport React from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport { navigationRoutes } from '../constants/navigationRoutes';\n\nexport const pendingSwap: PendingSwap[] = [\n {\n creationTime: '1673164511955',\n finishTime: '1673164550137',\n requestId: '51e211d9-d61c-45d2-a4d4-1f9f7f90ee85',\n inputAmount: '1',\n wallets: {\n OSMOSIS: {\n walletType: 'keplr',\n address: 'osmo1unf2rcytjxfpz8x8ar63h4qeftadptg5t0nqcl',\n },\n },\n status: 'running',\n isPaused: false,\n extraMessage: null,\n extraMessageSeverity: 'info',\n extraMessageDetail: '',\n extraMessageErrorCode: null,\n networkStatusExtraMessage: null,\n networkStatusExtraMessageDetail: null,\n lastNotificationTime: null,\n settings: {\n slippage: '1.0',\n disabledSwappersIds: [],\n disabledSwappersGroups: [],\n },\n simulationResult: {\n outputAmount: '1.540670',\n swaps: [\n {\n swapperId: 'Osmosis',\n swapperType: 'DEX',\n swapperLogo: '',\n // @ts-ignore\n result: null,\n from: {\n symbol: 'JUNO',\n logo: 'https://api.rango.exchange/tokens/COSMOS/JUNO.png',\n address:\n 'ibc/46b44899322f3cd854d2d46deef881958467cdd4b3b10086da49296bbed94bed',\n blockchain: 'OSMOSIS',\n blockchainLogo: '',\n decimals: 6,\n usdPrice: 1.1091996179668873,\n },\n to: {\n symbol: 'OSMO',\n logo: 'https://api.rango.exchange/i/mJQPS2',\n address: null,\n blockchain: 'OSMOSIS',\n decimals: 6,\n blockchainLogo: '',\n usdPrice: 0.7192435454440882,\n },\n fromAmount: '1.000000',\n fromAmountPrecision: null,\n fromAmountMinValue: null,\n fromAmountMaxValue: null,\n toAmount: '1.540670',\n fee: [\n {\n name: '',\n asset: {\n blockchain: 'OSMOSIS',\n symbol: 'OSMO',\n address: null,\n },\n expenseType: 'FROM_SOURCE_WALLET',\n amount: '0',\n },\n ],\n estimatedTimeInSeconds: 45,\n swapChainType: 'INTRA_CHAIN',\n routes: [\n {\n nodes: [\n {\n nodes: [\n {\n marketName: 'pool#498',\n marketId: null,\n percent: 1,\n },\n ],\n from: 'JUNO',\n fromLogo: 'https://api.rango.exchange/tokens/COSMOS/JUNO.png',\n fromAddress:\n 'ibc/46b44899322f3cd854d2d46deef881958467cdd4b3b10086da49296bbed94bed',\n fromBlockchain: 'OSMOSIS',\n to: 'ATOM',\n toLogo: 'https://api.rango.exchange/tokens/COSMOS/ATOM.png',\n toAddress:\n 'ibc/27394fb092d2eccd56123c74f36e4c1f926001ceada9ca97ea622b25f41e5eb2',\n toBlockchain: 'OSMOSIS',\n },\n {\n nodes: [\n {\n marketName: 'pool#8',\n marketId: null,\n percent: 1,\n },\n ],\n from: 'ATOM',\n fromLogo: 'https://api.rango.exchange/tokens/COSMOS/ATOM.png',\n fromAddress:\n 'ibc/27394fb092d2eccd56123c74f36e4c1f926001ceada9ca97ea622b25f41e5eb2',\n fromBlockchain: 'OSMOSIS',\n to: 'IRIS',\n toLogo: 'https://api.rango.exchange/tokens/COSMOS/IRIS.png',\n toAddress:\n 'ibc/7c4d60aa95e5a7558b0a364860979ca34b7ff8aaf255b87af9e879374470cec0',\n toBlockchain: 'OSMOSIS',\n },\n {\n nodes: [\n {\n marketName: 'pool#7',\n marketId: null,\n percent: 1,\n },\n ],\n from: 'IRIS',\n fromLogo: 'https://api.rango.exchange/tokens/COSMOS/IRIS.png',\n fromAddress:\n 'ibc/7c4d60aa95e5a7558b0a364860979ca34b7ff8aaf255b87af9e879374470cec0',\n fromBlockchain: 'OSMOSIS',\n to: 'OSMO',\n toLogo: 'https://api.rango.exchange/tokens/COSMOS/OSMO.png',\n toAddress: null,\n toBlockchain: 'OSMOSIS',\n },\n ],\n },\n ],\n recommendedSlippage: null,\n timeStat: {\n min: 6,\n avg: 40,\n max: 241,\n },\n includesDestinationTx: false,\n },\n ],\n },\n validateBalanceOrFee: true,\n steps: [\n {\n id: 1,\n fromBlockchain: 'OSMOSIS',\n fromSymbol: 'JUNO',\n fromSymbolAddress:\n 'ibc/46b44899322f3cd854d2d46deef881958467cdd4b3b10086da49296bbed94bed',\n fromDecimals: 6,\n fromAmountPrecision: null,\n fromAmountMinValue: null,\n swapperLogo: '',\n swapperType: '',\n fromAmountMaxValue: null,\n toBlockchainLogo: 'https://api.rango.exchange/swappers/osmosis.png',\n fromBlockchainLogo: 'https://api.rango.exchange/swappers/osmosis.png',\n toBlockchain: 'OSMOSIS',\n fromLogo: 'https://api.rango.exchange/tokens/COSMOS/JUNO.png',\n toSymbol: 'OSMO',\n toSymbolAddress: null,\n toDecimals: 6,\n toLogo: 'https://api.rango.exchange/i/mJQPS2',\n startTransactionTime: 1673164519916,\n swapperId: 'Osmosis',\n expectedOutputAmountHumanReadable: '1.540670',\n outputAmount: '1.540658',\n status: 'running',\n networkStatus: null,\n executedTransactionId:\n '0f8f17eecc863c2d6be65ef52cfe3128ff3cd7baeddf133160bea8ccdfbf876b',\n explorerUrl: [\n {\n url: 'https://www.mintscan.io/osmosis/txs/0f8f17eecc863c2d6be65ef52cfe3128ff3cd7baeddf133160bea8ccdfbf876b',\n description: null,\n },\n ],\n cosmosTransaction: {\n type: TransactionType.COSMOS,\n fromWalletAddress: 'osmo1unf2rcytjxfpz8x8ar63h4qeftadptg5t0nqcl',\n blockChain: 'OSMOSIS',\n data: {\n chainId: 'osmosis-1',\n account_number: 102721,\n sequence: '308',\n msgs: [\n {\n __type: 'OsmosisSwapMessage',\n type: 'osmosis/gamm/swap-exact-amount-in',\n value: {\n sender: 'osmo1unf2rcytjxfpz8x8ar63h4qeftadptg5t0nqcl',\n routes: [\n {\n pool_id: '498',\n token_out_denom:\n 'ibc/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2',\n },\n {\n pool_id: '8',\n token_out_denom:\n 'ibc/7C4D60AA95E5A7558B0A364860979CA34B7FF8AAF255B87AF9E879374470CEC0',\n },\n {\n pool_id: '7',\n token_out_denom: 'uosmo',\n },\n ],\n token_in: {\n denom:\n 'ibc/46B44899322F3CD854D2D46DEEF881958467CDD4B3B10086DA49296BBED94BED',\n amount: '1000000',\n },\n token_out_min_amount: '1525264',\n },\n },\n ],\n protoMsgs: [\n {\n type_url: '/osmosis.gamm.v1beta1.MsgSwapExactAmountIn',\n value: [\n 10, 43, 111, 115, 109, 111, 49, 117, 110, 102, 50, 114, 99,\n 121, 116, 106, 120, 102, 112, 122, 56, 120, 56, 97, 114, 54,\n 51, 104, 52, 113, 101, 102, 116, 97, 100, 112, 116, 103, 53,\n 116, 48, 110, 113, 99, 108, 18, 73, 8, -14, 3, 18, 68, 105,\n 98, 99, 47, 50, 55, 51, 57, 52, 70, 66, 48, 57, 50, 68, 50,\n 69, 67, 67, 68, 53, 54, 49, 50, 51, 67, 55, 52, 70, 51, 54,\n 69, 52, 67, 49, 70, 57, 50, 54, 48, 48, 49, 67, 69, 65, 68,\n 65, 57, 67, 65, 57, 55, 69, 65, 54, 50, 50, 66, 50, 53, 70,\n 52, 49, 69, 53, 69, 66, 50, 18, 72, 8, 8, 18, 68, 105, 98, 99,\n 47, 55, 67, 52, 68, 54, 48, 65, 65, 57, 53, 69, 53, 65, 55,\n 53, 53, 56, 66, 48, 65, 51, 54, 52, 56, 54, 48, 57, 55, 57,\n 67, 65, 51, 52, 66, 55, 70, 70, 56, 65, 65, 70, 50, 53, 53,\n 66, 56, 55, 65, 70, 57, 69, 56, 55, 57, 51, 55, 52, 52, 55,\n 48, 67, 69, 67, 48, 18, 9, 8, 7, 18, 5, 117, 111, 115, 109,\n 111, 26, 79, 10, 68, 105, 98, 99, 47, 52, 54, 66, 52, 52, 56,\n 57, 57, 51, 50, 50, 70, 51, 67, 68, 56, 53, 52, 68, 50, 68,\n 52, 54, 68, 69, 69, 70, 56, 56, 49, 57, 53, 56, 52, 54, 55,\n 67, 68, 68, 52, 66, 51, 66, 49, 48, 48, 56, 54, 68, 65, 52,\n 57, 50, 57, 54, 66, 66, 69, 68, 57, 52, 66, 69, 68, 18, 7, 49,\n 48, 48, 48, 48, 48, 48, 34, 7, 49, 53, 50, 53, 50, 54, 52,\n ],\n },\n ],\n memo: '',\n source: null,\n fee: {\n gas: '900000',\n amount: [\n {\n denom: 'uosmo',\n amount: '0',\n },\n ],\n },\n signType: 'AMINO',\n rpcUrl: '',\n },\n rawTransfer: null,\n },\n solanaTransaction: null,\n evmTransaction: null,\n evmApprovalTransaction: null,\n transferTransaction: null,\n diagnosisUrl: null,\n internalSteps: null,\n },\n ],\n },\n {\n creationTime: '1673164511955',\n finishTime: '1673164550137',\n requestId: '51e211d9-d61c-45d2-a4d4-1f9f7f90ee85',\n inputAmount: '1',\n wallets: {\n OSMOSIS: {\n walletType: 'keplr',\n address: 'osmo1unf2rcytjxfpz8x8ar63h4qeftadptg5t0nqcl',\n },\n },\n status: 'failed',\n isPaused: false,\n extraMessage: null,\n extraMessageSeverity: 'info',\n extraMessageDetail: '',\n extraMessageErrorCode: null,\n networkStatusExtraMessage: null,\n networkStatusExtraMessageDetail: null,\n lastNotificationTime: null,\n settings: {\n slippage: '1.0',\n disabledSwappersIds: [],\n disabledSwappersGroups: [],\n },\n simulationResult: {\n outputAmount: '1.540670',\n swaps: [\n {\n swapperId: 'Osmosis',\n swapperLogo: '',\n // @ts-ignore\n result: null,\n swapperType: 'DEX',\n from: {\n symbol: 'JUNO',\n logo: 'https://api.rango.exchange/tokens/COSMOS/JUNO.png',\n address:\n 'ibc/46b44899322f3cd854d2d46deef881958467cdd4b3b10086da49296bbed94bed',\n blockchain: 'OSMOSIS',\n blockchainLogo: '',\n decimals: 6,\n usdPrice: 1.1091996179668873,\n },\n to: {\n symbol: 'OSMO',\n logo: 'https://api.rango.exchange/i/mJQPS2',\n address: null,\n blockchain: 'OSMOSIS',\n decimals: 6,\n blockchainLogo: '',\n usdPrice: 0.7192435454440882,\n },\n fromAmount: '1.000000',\n fromAmountPrecision: null,\n fromAmountMinValue: null,\n fromAmountMaxValue: null,\n toAmount: '1.540670',\n fee: [\n {\n name: '',\n asset: {\n blockchain: 'OSMOSIS',\n symbol: 'OSMO',\n address: null,\n },\n expenseType: 'FROM_SOURCE_WALLET',\n amount: '0',\n },\n ],\n estimatedTimeInSeconds: 45,\n swapChainType: 'INTRA_CHAIN',\n routes: [\n {\n nodes: [\n {\n nodes: [\n {\n marketName: 'pool#498',\n marketId: null,\n percent: 1,\n },\n ],\n from: 'JUNO',\n fromLogo: 'https://api.rango.exchange/tokens/COSMOS/JUNO.png',\n fromAddress:\n 'ibc/46b44899322f3cd854d2d46deef881958467cdd4b3b10086da49296bbed94bed',\n fromBlockchain: 'OSMOSIS',\n to: 'ATOM',\n toLogo: 'https://api.rango.exchange/tokens/COSMOS/ATOM.png',\n toAddress:\n 'ibc/27394fb092d2eccd56123c74f36e4c1f926001ceada9ca97ea622b25f41e5eb2',\n toBlockchain: 'OSMOSIS',\n },\n {\n nodes: [\n {\n marketName: 'pool#8',\n marketId: null,\n percent: 1,\n },\n ],\n from: 'ATOM',\n fromLogo: 'https://api.rango.exchange/tokens/COSMOS/ATOM.png',\n fromAddress:\n 'ibc/27394fb092d2eccd56123c74f36e4c1f926001ceada9ca97ea622b25f41e5eb2',\n fromBlockchain: 'OSMOSIS',\n to: 'IRIS',\n toLogo: 'https://api.rango.exchange/tokens/COSMOS/IRIS.png',\n toAddress:\n 'ibc/7c4d60aa95e5a7558b0a364860979ca34b7ff8aaf255b87af9e879374470cec0',\n toBlockchain: 'OSMOSIS',\n },\n {\n nodes: [\n {\n marketName: 'pool#7',\n marketId: null,\n percent: 1,\n },\n ],\n from: 'IRIS',\n fromLogo: 'https://api.rango.exchange/tokens/COSMOS/IRIS.png',\n fromAddress:\n 'ibc/7c4d60aa95e5a7558b0a364860979ca34b7ff8aaf255b87af9e879374470cec0',\n fromBlockchain: 'OSMOSIS',\n to: 'OSMO',\n toLogo: 'https://api.rango.exchange/tokens/COSMOS/OSMO.png',\n toAddress: null,\n toBlockchain: 'OSMOSIS',\n },\n ],\n },\n ],\n recommendedSlippage: null,\n timeStat: {\n min: 6,\n avg: 40,\n max: 241,\n },\n includesDestinationTx: false,\n },\n ],\n },\n validateBalanceOrFee: true,\n steps: [\n {\n id: 1,\n fromBlockchain: 'OSMOSIS',\n fromSymbol: 'JUNO',\n fromSymbolAddress:\n 'ibc/46b44899322f3cd854d2d46deef881958467cdd4b3b10086da49296bbed94bed',\n fromDecimals: 6,\n fromAmountPrecision: null,\n fromAmountMinValue: null,\n fromAmountMaxValue: null,\n toBlockchainLogo: 'https://api.rango.exchange/swappers/osmosis.png',\n fromBlockchainLogo: 'https://api.rango.exchange/swappers/osmosis.png',\n toBlockchain: 'OSMOSIS',\n swapperLogo: '',\n swapperType: '',\n fromLogo: 'https://api.rango.exchange/tokens/COSMOS/JUNO.png',\n toSymbol: 'OSMO',\n toSymbolAddress: null,\n toDecimals: 6,\n toLogo: 'https://api.rango.exchange/i/mJQPS2',\n startTransactionTime: 1673164519916,\n swapperId: 'Osmosis',\n expectedOutputAmountHumanReadable: '1.540670',\n outputAmount: '1.540658',\n status: 'failed',\n networkStatus: null,\n executedTransactionId:\n '0f8f17eecc863c2d6be65ef52cfe3128ff3cd7baeddf133160bea8ccdfbf876b',\n explorerUrl: [\n {\n url: 'https://www.mintscan.io/osmosis/txs/0f8f17eecc863c2d6be65ef52cfe3128ff3cd7baeddf133160bea8ccdfbf876b',\n description: null,\n },\n ],\n cosmosTransaction: {\n type: TransactionType.COSMOS,\n fromWalletAddress: 'osmo1unf2rcytjxfpz8x8ar63h4qeftadptg5t0nqcl',\n blockChain: 'OSMOSIS',\n data: {\n chainId: 'osmosis-1',\n account_number: 102721,\n sequence: '308',\n msgs: [\n {\n __type: 'OsmosisSwapMessage',\n type: 'osmosis/gamm/swap-exact-amount-in',\n value: {\n sender: 'osmo1unf2rcytjxfpz8x8ar63h4qeftadptg5t0nqcl',\n routes: [\n {\n pool_id: '498',\n token_out_denom:\n 'ibc/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2',\n },\n {\n pool_id: '8',\n token_out_denom:\n 'ibc/7C4D60AA95E5A7558B0A364860979CA34B7FF8AAF255B87AF9E879374470CEC0',\n },\n {\n pool_id: '7',\n token_out_denom: 'uosmo',\n },\n ],\n token_in: {\n denom:\n 'ibc/46B44899322F3CD854D2D46DEEF881958467CDD4B3B10086DA49296BBED94BED',\n amount: '1000000',\n },\n token_out_min_amount: '1525264',\n },\n },\n ],\n protoMsgs: [\n {\n type_url: '/osmosis.gamm.v1beta1.MsgSwapExactAmountIn',\n value: [\n 10, 43, 111, 115, 109, 111, 49, 117, 110, 102, 50, 114, 99,\n 121, 116, 106, 120, 102, 112, 122, 56, 120, 56, 97, 114, 54,\n 51, 104, 52, 113, 101, 102, 116, 97, 100, 112, 116, 103, 53,\n 116, 48, 110, 113, 99, 108, 18, 73, 8, -14, 3, 18, 68, 105,\n 98, 99, 47, 50, 55, 51, 57, 52, 70, 66, 48, 57, 50, 68, 50,\n 69, 67, 67, 68, 53, 54, 49, 50, 51, 67, 55, 52, 70, 51, 54,\n 69, 52, 67, 49, 70, 57, 50, 54, 48, 48, 49, 67, 69, 65, 68,\n 65, 57, 67, 65, 57, 55, 69, 65, 54, 50, 50, 66, 50, 53, 70,\n 52, 49, 69, 53, 69, 66, 50, 18, 72, 8, 8, 18, 68, 105, 98, 99,\n 47, 55, 67, 52, 68, 54, 48, 65, 65, 57, 53, 69, 53, 65, 55,\n 53, 53, 56, 66, 48, 65, 51, 54, 52, 56, 54, 48, 57, 55, 57,\n 67, 65, 51, 52, 66, 55, 70, 70, 56, 65, 65, 70, 50, 53, 53,\n 66, 56, 55, 65, 70, 57, 69, 56, 55, 57, 51, 55, 52, 52, 55,\n 48, 67, 69, 67, 48, 18, 9, 8, 7, 18, 5, 117, 111, 115, 109,\n 111, 26, 79, 10, 68, 105, 98, 99, 47, 52, 54, 66, 52, 52, 56,\n 57, 57, 51, 50, 50, 70, 51, 67, 68, 56, 53, 52, 68, 50, 68,\n 52, 54, 68, 69, 69, 70, 56, 56, 49, 57, 53, 56, 52, 54, 55,\n 67, 68, 68, 52, 66, 51, 66, 49, 48, 48, 56, 54, 68, 65, 52,\n 57, 50, 57, 54, 66, 66, 69, 68, 57, 52, 66, 69, 68, 18, 7, 49,\n 48, 48, 48, 48, 48, 48, 34, 7, 49, 53, 50, 53, 50, 54, 52,\n ],\n },\n ],\n memo: '',\n source: null,\n fee: {\n gas: '900000',\n amount: [\n {\n denom: 'uosmo',\n amount: '0',\n },\n ],\n },\n signType: 'AMINO',\n rpcUrl: '',\n },\n rawTransfer: null,\n },\n solanaTransaction: null,\n evmTransaction: null,\n evmApprovalTransaction: null,\n transferTransaction: null,\n diagnosisUrl: null,\n internalSteps: null,\n },\n ],\n },\n {\n creationTime: '1673164511955',\n finishTime: '1673164550137',\n requestId: '51e211d9-d61c-45d2-a4d4-1f9f7f90ee85',\n inputAmount: '1',\n wallets: {\n OSMOSIS: {\n walletType: 'keplr',\n address: 'osmo1unf2rcytjxfpz8x8ar63h4qeftadptg5t0nqcl',\n },\n },\n status: 'success',\n isPaused: false,\n extraMessage: null,\n extraMessageSeverity: 'info',\n extraMessageDetail: '',\n extraMessageErrorCode: null,\n networkStatusExtraMessage: null,\n networkStatusExtraMessageDetail: null,\n lastNotificationTime: null,\n settings: {\n slippage: '1.0',\n disabledSwappersIds: [],\n disabledSwappersGroups: [],\n },\n simulationResult: {\n outputAmount: '1.540670',\n swaps: [\n {\n // @ts-ignore\n result: [],\n swapperId: 'Osmosis',\n swapperType: 'DEX',\n swapperLogo: '',\n\n from: {\n symbol: 'JUNO',\n logo: 'https://api.rango.exchange/tokens/COSMOS/JUNO.png',\n address:\n 'ibc/46b44899322f3cd854d2d46deef881958467cdd4b3b10086da49296bbed94bed',\n blockchain: 'OSMOSIS',\n blockchainLogo: '',\n decimals: 6,\n usdPrice: 1.1091996179668873,\n },\n to: {\n symbol: 'OSMO',\n logo: 'https://api.rango.exchange/i/mJQPS2',\n address: null,\n blockchain: 'OSMOSIS',\n decimals: 6,\n blockchainLogo: '',\n usdPrice: 0.7192435454440882,\n },\n fromAmount: '1.000000',\n fromAmountPrecision: null,\n fromAmountMinValue: null,\n fromAmountMaxValue: null,\n toAmount: '1.540670',\n fee: [\n {\n name: '',\n asset: {\n blockchain: 'OSMOSIS',\n symbol: 'OSMO',\n address: null,\n },\n expenseType: 'FROM_SOURCE_WALLET',\n amount: '0',\n },\n ],\n estimatedTimeInSeconds: 45,\n swapChainType: 'INTRA_CHAIN',\n routes: [\n {\n nodes: [\n {\n nodes: [\n {\n marketName: 'pool#498',\n marketId: null,\n percent: 1,\n },\n ],\n from: 'JUNO',\n fromLogo: 'https://api.rango.exchange/tokens/COSMOS/JUNO.png',\n fromAddress:\n 'ibc/46b44899322f3cd854d2d46deef881958467cdd4b3b10086da49296bbed94bed',\n fromBlockchain: 'OSMOSIS',\n to: 'ATOM',\n toLogo: 'https://api.rango.exchange/tokens/COSMOS/ATOM.png',\n toAddress:\n 'ibc/27394fb092d2eccd56123c74f36e4c1f926001ceada9ca97ea622b25f41e5eb2',\n toBlockchain: 'OSMOSIS',\n },\n {\n nodes: [\n {\n marketName: 'pool#8',\n marketId: null,\n percent: 1,\n },\n ],\n from: 'ATOM',\n fromLogo: 'https://api.rango.exchange/tokens/COSMOS/ATOM.png',\n fromAddress:\n 'ibc/27394fb092d2eccd56123c74f36e4c1f926001ceada9ca97ea622b25f41e5eb2',\n fromBlockchain: 'OSMOSIS',\n to: 'IRIS',\n toLogo: 'https://api.rango.exchange/tokens/COSMOS/IRIS.png',\n toAddress:\n 'ibc/7c4d60aa95e5a7558b0a364860979ca34b7ff8aaf255b87af9e879374470cec0',\n toBlockchain: 'OSMOSIS',\n },\n {\n nodes: [\n {\n marketName: 'pool#7',\n marketId: null,\n percent: 1,\n },\n ],\n from: 'IRIS',\n fromLogo: 'https://api.rango.exchange/tokens/COSMOS/IRIS.png',\n fromAddress:\n 'ibc/7c4d60aa95e5a7558b0a364860979ca34b7ff8aaf255b87af9e879374470cec0',\n fromBlockchain: 'OSMOSIS',\n to: 'OSMO',\n toLogo: 'https://api.rango.exchange/tokens/COSMOS/OSMO.png',\n toAddress: null,\n toBlockchain: 'OSMOSIS',\n },\n ],\n },\n ],\n recommendedSlippage: null,\n timeStat: {\n min: 6,\n avg: 40,\n max: 241,\n },\n includesDestinationTx: false,\n },\n ],\n },\n validateBalanceOrFee: true,\n steps: [\n {\n id: 1,\n fromBlockchain: 'OSMOSIS',\n fromSymbol: 'JUNO',\n fromSymbolAddress:\n 'ibc/46b44899322f3cd854d2d46deef881958467cdd4b3b10086da49296bbed94bed',\n fromDecimals: 6,\n fromAmountPrecision: null,\n fromAmountMinValue: null,\n swapperLogo: '',\n swapperType: '',\n fromAmountMaxValue: null,\n toBlockchainLogo: 'https://api.rango.exchange/swappers/osmosis.png',\n fromBlockchainLogo: 'https://api.rango.exchange/swappers/osmosis.png',\n toBlockchain: 'OSMOSIS',\n fromLogo: 'https://api.rango.exchange/tokens/COSMOS/JUNO.png',\n toSymbol: 'OSMO',\n toSymbolAddress: null,\n toDecimals: 6,\n toLogo: 'https://api.rango.exchange/i/mJQPS2',\n startTransactionTime: 1673164519916,\n swapperId: 'Osmosis',\n expectedOutputAmountHumanReadable: '1.540670',\n outputAmount: '1.540658',\n status: 'success',\n networkStatus: null,\n executedTransactionId:\n '0f8f17eecc863c2d6be65ef52cfe3128ff3cd7baeddf133160bea8ccdfbf876b',\n explorerUrl: [\n {\n url: 'https://www.mintscan.io/osmosis/txs/0f8f17eecc863c2d6be65ef52cfe3128ff3cd7baeddf133160bea8ccdfbf876b',\n description: null,\n },\n ],\n cosmosTransaction: {\n type: TransactionType.COSMOS,\n fromWalletAddress: 'osmo1unf2rcytjxfpz8x8ar63h4qeftadptg5t0nqcl',\n blockChain: 'OSMOSIS',\n data: {\n chainId: 'osmosis-1',\n account_number: 102721,\n sequence: '308',\n msgs: [\n {\n __type: 'OsmosisSwapMessage',\n type: 'osmosis/gamm/swap-exact-amount-in',\n value: {\n sender: 'osmo1unf2rcytjxfpz8x8ar63h4qeftadptg5t0nqcl',\n routes: [\n {\n pool_id: '498',\n token_out_denom:\n 'ibc/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2',\n },\n {\n pool_id: '8',\n token_out_denom:\n 'ibc/7C4D60AA95E5A7558B0A364860979CA34B7FF8AAF255B87AF9E879374470CEC0',\n },\n {\n pool_id: '7',\n token_out_denom: 'uosmo',\n },\n ],\n token_in: {\n denom:\n 'ibc/46B44899322F3CD854D2D46DEEF881958467CDD4B3B10086DA49296BBED94BED',\n amount: '1000000',\n },\n token_out_min_amount: '1525264',\n },\n },\n ],\n protoMsgs: [\n {\n type_url: '/osmosis.gamm.v1beta1.MsgSwapExactAmountIn',\n value: [\n 10, 43, 111, 115, 109, 111, 49, 117, 110, 102, 50, 114, 99,\n 121, 116, 106, 120, 102, 112, 122, 56, 120, 56, 97, 114, 54,\n 51, 104, 52, 113, 101, 102, 116, 97, 100, 112, 116, 103, 53,\n 116, 48, 110, 113, 99, 108, 18, 73, 8, -14, 3, 18, 68, 105,\n 98, 99, 47, 50, 55, 51, 57, 52, 70, 66, 48, 57, 50, 68, 50,\n 69, 67, 67, 68, 53, 54, 49, 50, 51, 67, 55, 52, 70, 51, 54,\n 69, 52, 67, 49, 70, 57, 50, 54, 48, 48, 49, 67, 69, 65, 68,\n 65, 57, 67, 65, 57, 55, 69, 65, 54, 50, 50, 66, 50, 53, 70,\n 52, 49, 69, 53, 69, 66, 50, 18, 72, 8, 8, 18, 68, 105, 98, 99,\n 47, 55, 67, 52, 68, 54, 48, 65, 65, 57, 53, 69, 53, 65, 55,\n 53, 53, 56, 66, 48, 65, 51, 54, 52, 56, 54, 48, 57, 55, 57,\n 67, 65, 51, 52, 66, 55, 70, 70, 56, 65, 65, 70, 50, 53, 53,\n 66, 56, 55, 65, 70, 57, 69, 56, 55, 57, 51, 55, 52, 52, 55,\n 48, 67, 69, 67, 48, 18, 9, 8, 7, 18, 5, 117, 111, 115, 109,\n 111, 26, 79, 10, 68, 105, 98, 99, 47, 52, 54, 66, 52, 52, 56,\n 57, 57, 51, 50, 50, 70, 51, 67, 68, 56, 53, 52, 68, 50, 68,\n 52, 54, 68, 69, 69, 70, 56, 56, 49, 57, 53, 56, 52, 54, 55,\n 67, 68, 68, 52, 66, 51, 66, 49, 48, 48, 56, 54, 68, 65, 52,\n 57, 50, 57, 54, 66, 66, 69, 68, 57, 52, 66, 69, 68, 18, 7, 49,\n 48, 48, 48, 48, 48, 48, 34, 7, 49, 53, 50, 53, 50, 54, 52,\n ],\n },\n ],\n memo: '',\n source: null,\n fee: {\n gas: '900000',\n amount: [\n {\n denom: 'uosmo',\n amount: '0',\n },\n ],\n },\n signType: 'AMINO',\n rpcUrl: '',\n },\n rawTransfer: null,\n },\n solanaTransaction: null,\n evmTransaction: null,\n evmApprovalTransaction: null,\n transferTransaction: null,\n diagnosisUrl: null,\n internalSteps: null,\n },\n ],\n },\n];\n\nexport function HistoryPage() {\n const navigate = useNavigate();\n return (\n <History\n list={pendingSwap}\n onSwapClick={() => navigate(navigationRoutes.swapDetails)}\n onBack={() => {\n navigate(-1);\n }}\n />\n );\n}\n","import React from 'react';\nimport { SettingsIcon, Tooltip, styled, Button, HistoryIcon, RetryIcon } from '@rango-dev/ui';\nimport { useNavigate } from 'react-router-dom';\nimport { navigationRoutes } from '../constants/navigationRoutes';\nimport { PropTypes } from './Header';\n\nconst ButtonsContainer = styled('div', {\n display: 'flex',\n});\n\nexport function HeaderButtons(props: PropTypes) {\n const { onClickRefresh } = props;\n const navigate = useNavigate();\n\n return (\n <ButtonsContainer>\n <Tooltip content=\"Retry\">\n <Button variant=\"ghost\" onClick={onClickRefresh.bind(null)}>\n <RetryIcon size={28} />\n </Button>\n </Tooltip>\n <Tooltip content=\"Transactions History\">\n <Button variant=\"ghost\" onClick={() => navigate(navigationRoutes.history)}>\n <HistoryIcon size={24} />\n </Button>\n </Tooltip>\n <Tooltip content=\"Settings\">\n <Button variant=\"ghost\" onClick={() => navigate(navigationRoutes.settings)}>\n <SettingsIcon size={24} />\n </Button>\n </Tooltip>\n </ButtonsContainer>\n );\n}\n","import React from 'react';\nimport { styled, Typography } from '@rango-dev/ui';\nimport { HeaderButtons } from './HeaderButtons';\n\nexport const HeaderContainer = styled('div', {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n width: '100%',\n padding: '$16 0',\n});\n\nexport interface PropTypes {\n onClickRefresh: () => void;\n}\n\nexport function Header(props: PropTypes) {\n const { onClickRefresh } = props;\n return (\n <HeaderContainer>\n <Typography variant=\"h4\">SWAP</Typography>\n <HeaderButtons onClickRefresh={onClickRefresh} />\n </HeaderContainer>\n );\n}\n","import React from 'react';\nimport { AngleDownIcon, Button, InfoCircleIcon, styled, TextField, Typography } from '@rango-dev/ui';\nimport { useMetaStore } from '../store/meta';\nimport { BlockchainMeta, Token } from 'rango-sdk';\nimport { useNavigate } from 'react-router-dom';\nimport { useBestRouteStore } from '../store/bestRoute';\nimport { numberToString } from '../utils/numbers';\nimport BigNumber from 'bignumber.js';\nimport { getBalanceFromWallet } from '../utils/wallets';\nimport { useWalletsStore } from '../store/wallets';\n\ntype PropTypes = (\n | { type: 'From'; inputAmount: string; onAmountChange: (amount: string) => void }\n | {\n type: 'To';\n outputAmount: BigNumber | null;\n outputUsdValue: BigNumber | null;\n }\n) & { chain: BlockchainMeta | null; token: Token | null };\n\nconst Box = styled('div', {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n});\n\nconst Container = styled('div', {\n boxSizing: 'border-box',\n backgroundColor: '$neutrals300',\n borderRadius: '$5',\n padding: '$8 0',\n\n '.form': {\n display: 'flex',\n width: '100%',\n padding: '$8 $16',\n },\n});\n\nconst StyledImage = styled('img', {\n width: '$24',\n maxHeight: '$24',\n});\n\nconst Options = styled('div', {\n display: 'flex',\n justifyContent: 'flex-end',\n padding: '0 $8',\n});\n\nconst ImagePlaceholder = styled('span', {\n width: '24px',\n height: '24px',\n backgroundColor: '$neutrals300',\n borderRadius: '99999px',\n});\n\nconst OutputContainer = styled('div', {\n height: '$48',\n borderRadius: '$5',\n flexGrow: 1,\n width: '70%',\n backgroundColor: '$background',\n border: '1px solid transparent',\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n paddingLeft: '$8',\n paddingRight: '$8',\n});\n\nexport function TokenInfo(props: PropTypes) {\n const { type, chain, token } = props;\n const loadingStatus = useMetaStore.use.loadingStatus();\n const fromChain = useBestRouteStore.use.fromChain();\n const toChain = useBestRouteStore.use.toChain();\n const inputUsdValue = useBestRouteStore.use.inputUsdValue();\n const fromToken = useBestRouteStore.use.fromToken();\n const setInputAmount = useBestRouteStore.use.setInputAmount();\n const bestRoute = useBestRouteStore.use.bestRoute();\n const inputAmount = useBestRouteStore.use.inputAmount();\n const balances = useWalletsStore.use.balances();\n const navigate = useNavigate();\n\n const tokenBalance =\n !!fromChain && !!fromToken\n ? numberToString(\n getBalanceFromWallet(balances, fromChain?.name, fromToken?.symbol, fromToken?.address)\n ?.amount || '0',\n 8,\n )\n : '0';\n\n const tokenBalanceReal =\n !!fromChain && !!fromToken\n ? numberToString(\n getBalanceFromWallet(balances, fromChain?.name, fromToken?.symbol, fromToken?.address)\n ?.amount || '0',\n getBalanceFromWallet(balances, fromChain?.name, fromToken?.symbol, fromToken?.address)\n ?.decimal,\n )\n : '0';\n\n const ItemSuffix = (\n <div style={{ display: 'flex', justifyContent: 'center', alignItems: 'center' }}>\n {loadingStatus === 'failed' && <InfoCircleIcon color=\"error\" size={24} />}\n <AngleDownIcon />\n </div>\n );\n\n return (\n <Box>\n <div>\n <Typography variant=\"body2\">{type}</Typography>\n </div>\n <Container>\n {props.type === 'From' && (\n <Options>\n <div\n className=\"balance\"\n onClick={() => {\n if (tokenBalance !== '0') setInputAmount(tokenBalanceReal.split(',').join(''));\n }}>\n <Button variant=\"ghost\" size=\"small\">\n <Typography variant=\"body2\">{`Max: ${tokenBalance} ${\n fromToken?.symbol || ''\n }`}</Typography>\n </Button>\n </div>\n </Options>\n )}\n <div className=\"form\">\n <Button\n onClick={() => {\n navigate(`/${props.type.toLowerCase()}-chain`);\n }}\n variant=\"outlined\"\n disabled={loadingStatus === 'failed'}\n loading={loadingStatus === 'loading'}\n prefix={\n loadingStatus === 'success' && chain ? (\n <StyledImage src={chain.logo} />\n ) : (\n <ImagePlaceholder />\n )\n }\n suffix={ItemSuffix}\n align=\"start\"\n size=\"large\"\n style={{ marginRight: '.5rem' }}>\n {loadingStatus === 'success' && chain ? chain.displayName : 'Chain'}\n </Button>\n <Button\n onClick={() => {\n navigate(`/${props.type.toLowerCase()}-token`);\n }}\n variant=\"outlined\"\n disabled={\n loadingStatus === 'failed' ||\n (type === 'From' && !fromChain) ||\n (type === 'To' && !toChain)\n }\n loading={loadingStatus === 'loading'}\n prefix={\n loadingStatus === 'success' && token ? (\n <StyledImage src={token.image} />\n ) : (\n <ImagePlaceholder />\n )\n }\n suffix={ItemSuffix}\n size=\"large\"\n align=\"start\"\n style={{ marginRight: '.5rem' }}>\n {loadingStatus === 'success' && token ? token.symbol : 'Token'}\n </Button>\n {props.type === 'From' ? (\n <TextField\n type=\"number\"\n size=\"large\"\n autoFocus\n placeholder=\"0\"\n style={{\n width: '70%',\n position: 'relative',\n backgroundColor: '$background !important',\n }}\n suffix={\n <span style={{ position: 'absolute', right: '4px', bottom: '2px' }}>\n <Typography variant=\"caption\">{`$${numberToString(inputUsdValue)}`}</Typography>\n </span>\n }\n value={props.inputAmount || ''}\n onChange={\n props.type === 'From'\n ? (event) => {\n props.onAmountChange(event.target.value);\n }\n : undefined\n }\n />\n ) : (\n <OutputContainer>\n <Typography variant=\"body1\">\n {bestRoute ? `≈ ${numberToString(props.outputAmount)}` : inputAmount ? '?' : '0'}\n </Typography>\n <span style={{ position: 'absolute', right: '4px', bottom: '2px' }}>\n <Typography variant=\"caption\">{`$${numberToString(\n props.outputUsdValue,\n )}`}</Typography>\n </span>\n </OutputContainer>\n )}\n </div>\n </Container>\n </Box>\n );\n}\n","import React from 'react';\nimport { styled } from '@rango-dev/ui/src/theme';\nimport { Typography } from '@rango-dev/ui';\n\nconst Container = styled('div', {\n display: 'flex',\n width: '100%',\n justifyContent: 'end',\n alignItems: 'center',\n paddingTop: '$16',\n});\n\nconst Logo = styled('svg', {\n fill: '$foreground',\n width: '$24',\n margin: '0 $8 0 $16',\n});\n\nconst StyledAnchor = styled('a', {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n textDecoration: 'none',\n});\n\nexport function BottomLogo() {\n return (\n <Container>\n <Typography variant=\"caption\">Powered By</Typography>\n <StyledAnchor href=\"https://rango.exchange\" target=\"_blank\">\n <Logo xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 33.68 29\">\n <defs></defs>\n <g id=\"Layer_2\" data-name=\"Layer 2\">\n <g id=\"Layer_1-2\" data-name=\"Layer 1\">\n <path d=\"M33.68,18.05A17.93,17.93,0,0,0,28.34,5.29,18.31,18.31,0,0,0,15.45,0H13.54V7.41L6.07,0H.69L9.83,9.07H0V11A17.93,17.93,0,0,0,5.34,23.71,18.32,18.32,0,0,0,18.24,29h1.9V21.59l7.38,7.31h5.39l-9-9h9.82ZM17.37,16.16H12.49a1.93,1.93,0,0,0-1.35.55,1.89,1.89,0,0,0-.56,1.34,1.85,1.85,0,0,0,.56,1.33,1.93,1.93,0,0,0,1.35.55h3.84V25.1A14.43,14.43,0,0,1,8,21a14.21,14.21,0,0,1-4.1-8.2H21.2a1.86,1.86,0,0,0,.74-.13,1.92,1.92,0,0,0,.64-.4,2,2,0,0,0,.43-.62,1.88,1.88,0,0,0,0-1.47,2,2,0,0,0-.43-.62,1.92,1.92,0,0,0-.64-.4,1.86,1.86,0,0,0-.74-.13H17.35V3.9A14.43,14.43,0,0,1,25.64,8a14.19,14.19,0,0,1,4.11,8.2Zm2.12-5.27a1.43,1.43,0,0,1,.26-.83,1.52,1.52,0,0,1,.67-.56,1.55,1.55,0,0,1,.88-.08,1.51,1.51,0,0,1,.77.4,1.54,1.54,0,0,1,.42.77,1.41,1.41,0,0,1-.09.86,1.47,1.47,0,0,1-.55.68,1.56,1.56,0,0,1-.84.25,1.52,1.52,0,0,1-1.52-1.49Z\" />\n <path d=\"M21.7,11.57a.68.68,0,0,0-.12-.38.64.64,0,0,0-.31-.25.68.68,0,0,0-.75.15.61.61,0,0,0-.19.35.62.62,0,0,0,0,.4.67.67,0,0,0,.25.3.69.69,0,0,0,.39.12.7.7,0,0,0,.49-.2A.68.68,0,0,0,21.7,11.57Z\" />\n </g>\n </g>\n </Logo>\n <Typography variant=\"body2\">RANGO</Typography>\n </StyledAnchor>\n </Container>\n );\n}\n","import { useEffect, useRef } from 'react';\nimport { useSearchParams } from 'react-router-dom';\nimport { SearchParams } from '../constants/searchParams';\nimport { useBestRouteStore } from '../store/bestRoute';\n\nexport function SwithFromAndTo({ count }: { count: number }) {\n const firstRender = useRef(true);\n const [searchParams, setSearchParams] = useSearchParams();\n const outputAmount = useBestRouteStore.use.outputAmount();\n\n useEffect(() => {\n if (!firstRender.current) {\n const fromChainString = searchParams.get(SearchParams.FROM_CHAIN);\n const fromTokenString = searchParams.get(SearchParams.FROM_TOKEN);\n const toChainString = searchParams.get(SearchParams.TO_CHAIN);\n const toTokenString = searchParams.get(SearchParams.TO_TOKEN);\n setSearchParams({\n ...(toChainString && { [SearchParams.FROM_CHAIN]: toChainString }),\n ...(toTokenString && { [SearchParams.FROM_TOKEN]: toTokenString }),\n ...(fromChainString && { [SearchParams.TO_CHAIN]: fromChainString }),\n ...(fromTokenString && { [SearchParams.TO_TOKEN]: fromTokenString }),\n ...(outputAmount && { [SearchParams.FROM_AMOUNT]: outputAmount.toString() }),\n });\n } else {\n firstRender.current = false;\n }\n }, [count]);\n\n return null;\n}\n","import { styled } from '@rango-dev/ui';\n\nexport const Footer = styled('div', {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n paddingTop: '$16',\n});\n","import { BestRouteRequest, BestRouteResponse } from 'rango-sdk';\nimport { useEffect, useRef, useState } from 'react';\nimport { httpService } from '../services/httpService';\nimport { useBestRouteStore } from '../store/bestRoute';\nimport { useSettingsStore } from '../store/settings';\n\nexport function useBestRoute() {\n const fromToken = useBestRouteStore.use.fromToken();\n const toToken = useBestRouteStore.use.toToken();\n const inputAmount = useBestRouteStore.use.inputAmount();\n\n const slippage = useSettingsStore.use.slippage();\n const customSlippage = useSettingsStore.use.customSlippage();\n const disabledLiquiditySources = useSettingsStore.use.disabledLiquiditySources();\n const [count, setCount] = useState(0);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState('');\n const [data, setData] = useState<BestRouteResponse | null>(null);\n const abortControllerRef = useRef<AbortController | null>(null);\n\n const retry = () => {\n setCount((prev) => prev + 1);\n };\n\n useEffect(() => {\n if (abortControllerRef.current) abortControllerRef.current.abort();\n const abortController = new AbortController();\n abortControllerRef.current = abortController;\n if (!!fromToken && !!toToken && !!inputAmount) {\n if (!!data) setData(null);\n const requestBody: BestRouteRequest = {\n amount: inputAmount?.toString(),\n connectedWallets: [],\n selectedWallets: {},\n checkPrerequisites: false,\n swapperGroups: disabledLiquiditySources,\n swappersGroupsExclude: true,\n from: {\n address: fromToken.address,\n blockchain: fromToken.blockchain,\n symbol: fromToken.symbol,\n },\n to: { address: toToken.address, blockchain: toToken.blockchain, symbol: toToken.symbol },\n };\n setLoading(true);\n httpService\n .getBestRoute(requestBody, { signal: abortControllerRef.current.signal })\n .then((res) => {\n setData(res);\n setLoading(false);\n abortControllerRef.current = null;\n })\n .catch((error) => {\n if (error.code === 'ERR_CANCELED') return;\n setError(error.message);\n setLoading(false);\n });\n }\n }, [\n fromToken,\n toToken,\n inputAmount,\n count,\n slippage,\n customSlippage,\n disabledLiquiditySources.length,\n ]);\n\n return { loading, error, data, retry };\n}\n","export const errorMessages = {\n genericServerError: 'Error connecting server, please reload the app and try again',\n};\n","import { PendingSwap } from '@rango-dev/ui/dist/containers/History/types';\nimport { WalletTypeAndAddress, SwapSavedSettings } from '@rango-dev/ui/dist/types/swaps';\nimport BigNumber from 'bignumber.js';\nimport { BestRouteResponse } from 'rango-sdk';\nimport { Account } from '../store/wallets';\nimport { ZERO } from '../constants/numbers';\n\nexport function getOutputRatio(inputUsdValue: BigNumber, outputUsdValue: BigNumber) {\n if (inputUsdValue.lte(ZERO) || outputUsdValue.lte(ZERO)) return 0;\n return outputUsdValue.div(inputUsdValue).minus(1).multipliedBy(100);\n}\n\nexport function outputRatioHasWarning(inputUsdValue: BigNumber, outputRatio: BigNumber | 0) {\n return (\n (parseInt(outputRatio.toFixed(2) || '0') <= -10 && inputUsdValue.gte(new BigNumber(400))) ||\n (parseInt(outputRatio.toFixed(2) || '0') <= -5 && inputUsdValue.gte(new BigNumber(1000)))\n );\n}\n\nexport function hasLimitError(bestRoute: BestRouteResponse | null): boolean {\n return (\n (bestRoute?.result?.swaps || []).filter((swap) => {\n const minimum = !!swap.fromAmountMinValue ? new BigNumber(swap.fromAmountMinValue) : null;\n const maximum = !!swap.fromAmountMaxValue ? new BigNumber(swap.fromAmountMaxValue) : null;\n const isExclusive = swap.fromAmountRestrictionType === 'EXCLUSIVE';\n if (isExclusive) {\n return minimum?.gte(swap.fromAmount) || maximum?.lte(swap.fromAmount);\n } else {\n return minimum?.gt(swap.fromAmount) || maximum?.lt(swap.fromAmount);\n }\n }).length > 0\n );\n}\n\nexport function getSwapButtonTitle(\n accounts: Account[],\n loading: boolean,\n hasLimitError: boolean,\n highValueLoss: boolean,\n priceImpactCanNotBeComputed: boolean,\n needsToWarnEthOnPath: boolean,\n): string {\n if (loading) return 'Finding Best Route...';\n\n if (accounts.length == 0) return 'Connect Wallet';\n else if (hasLimitError) return 'Limit Error';\n else if (highValueLoss) return 'Price impact is too high!';\n else if (priceImpactCanNotBeComputed) return 'USD price is unknown, price impact might be high!';\n else if (needsToWarnEthOnPath) return 'The route goes through Ethereum. Continue?';\n else return 'Swap';\n}\n\nexport function canComputePriceImpact(\n bestRoute: BestRouteResponse | null,\n inputAmount: string,\n inputUsdValue: BigNumber,\n outputUsdValue: BigNumber,\n) {\n return !(\n (inputUsdValue.lte(ZERO) || outputUsdValue.lte(ZERO)) &&\n !!bestRoute?.result &&\n !!inputAmount &&\n inputAmount !== '0' &&\n parseFloat(inputAmount || '0') !== 0\n );\n}\n\nexport function calculatePendingSwap(\n inputAmount: string,\n bestRoute: BestRouteResponse,\n wallets: { [p: string]: WalletTypeAndAddress },\n settings: SwapSavedSettings,\n validateBalanceOrFee: boolean,\n): PendingSwap {\n const simulationResult = bestRoute.result;\n if (!simulationResult) throw Error('Simulation result should not be null');\n\n return {\n creationTime: new Date().getTime().toString(),\n finishTime: null,\n requestId: bestRoute.requestId || '',\n inputAmount: inputAmount,\n wallets,\n status: 'running',\n isPaused: false,\n extraMessage: null,\n extraMessageSeverity: null,\n extraMessageDetail: null,\n extraMessageErrorCode: null,\n networkStatusExtraMessage: null,\n networkStatusExtraMessageDetail: null,\n lastNotificationTime: null,\n settings: settings,\n simulationResult: simulationResult,\n validateBalanceOrFee,\n //TODO: finalize PendingSwap type and remove ts-ignore\n //@ts-ignore\n steps:\n bestRoute.result?.swaps?.map((s, i) => ({\n id: i + 1,\n fromBlockchain: s.from.blockchain,\n fromSymbol: s.from.symbol,\n fromSymbolAddress: s.from.address,\n fromDecimals: s.from.decimals,\n fromAmountPrecision: s.fromAmountPrecision,\n fromAmountMinValue: s.fromAmountMinValue,\n fromAmountMaxValue: s.fromAmountMaxValue,\n toBlockchain: s.to.blockchain,\n fromLogo: s.from.logo,\n toSymbol: s.to.symbol,\n toSymbolAddress: s.to.address,\n toDecimals: s.to.decimals,\n toLogo: s.to.logo,\n startTransactionTime: new Date().getTime(),\n swapperId: s.swapperId,\n expectedOutputAmountHumanReadable: s.toAmount,\n outputAmount: null,\n status: 'created',\n networkStatus: null,\n executedTransactionId: null,\n externalTransactionId: null,\n explorerUrl: null,\n trackingCode: null,\n cosmosTransaction: null,\n solanaTransaction: null,\n starknetTransaction: null,\n starknetApprovalTransaction: null,\n tronTransaction: null,\n tronApprovalTransaction: null,\n evmTransaction: null,\n evmApprovalTransaction: null,\n transferTransaction: null,\n diagnosisUrl: null,\n internalSteps: null,\n fromBlockchainLogo: '',\n toBlockchainLogo: '',\n swapperLogo: '',\n swapperType: '',\n })) || [],\n };\n}\n\nexport function requiredWallets(route: BestRouteResponse | null) {\n const wallets: string[] = [];\n\n route?.result?.swaps.forEach((swap) => {\n const currentStepFromBlockchain = swap.from.blockchain;\n const currentStepToBlockchain = swap.to.blockchain;\n let lastAddedWallet = wallets[wallets.length - 1];\n if (currentStepFromBlockchain != lastAddedWallet) wallets.push(currentStepFromBlockchain);\n lastAddedWallet = wallets[wallets.length - 1];\n if (currentStepToBlockchain != lastAddedWallet) wallets.push(currentStepToBlockchain);\n });\n return wallets;\n}\n","import { Alert, BestRoute, Button, styled, VerticalSwapIcon } from '@rango-dev/ui';\nimport React, { useEffect, useState } from 'react';\nimport { useInRouterContext, useNavigate } from 'react-router-dom';\nimport { Header } from '../components/Header';\nimport { TokenInfo } from '../components/TokenInfo';\nimport { useBestRouteStore } from '../store/bestRoute';\nimport { BottomLogo } from '../components/BottomLogo';\nimport { SwithFromAndTo } from '../components/SwitchFromAndTo';\nimport { Footer } from '../components/Footer';\nimport { navigationRoutes } from '../constants/navigationRoutes';\nimport { useBestRoute } from '../hooks/useBestRoute';\nimport { useMetaStore } from '../store/meta';\nimport { useWalletsStore } from '../store/wallets';\nimport { errorMessages } from '../constants/errors';\nimport {\n getSwapButtonTitle,\n getOutputRatio,\n hasLimitError,\n outputRatioHasWarning,\n canComputePriceImpact,\n} from '../utils/swap';\n\nconst Container = styled('div', {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center',\n});\n\nconst SwitchButtonContainer = styled('div', {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n position: 'relative',\n top: '11px',\n});\n\nconst BestRouteContainer = styled('div', {\n width: '100%',\n paddingTop: '$16',\n});\n\nconst Alerts = styled('div', {\n paddingTop: '$16',\n});\n\nexport function Home() {\n const waningMessage = '';\n const isRouterInContext = useInRouterContext();\n const navigate = useNavigate();\n const [count, setCount] = useState(0);\n const fromChain = useBestRouteStore.use.fromChain();\n const fromToken = useBestRouteStore.use.fromToken();\n const toChain = useBestRouteStore.use.toChain();\n const toToken = useBestRouteStore.use.toToken();\n const setFromChain = useBestRouteStore.use.setFromChain();\n const setFromToken = useBestRouteStore.use.setFromToken();\n const setToChain = useBestRouteStore.use.setToChain();\n const setToToken = useBestRouteStore.use.setToToken();\n const setBestRoute = useBestRouteStore.use.setBestRoute();\n const inputUsdValue = useBestRouteStore.use.inputUsdValue();\n const inputAmount = useBestRouteStore.use.inputAmount();\n const setInputAmount = useBestRouteStore.use.setInputAmount();\n const outputAmount = useBestRouteStore.use.outputAmount();\n const outputUsdValue = useBestRouteStore.use.outputUsdValue();\n const bestRoute = useBestRouteStore.use.bestRoute();\n\n const loadingMetaStatus = useMetaStore.use.loadingStatus();\n const accounts = useWalletsStore.use.accounts();\n\n const swithFromAndTo = () => {\n setFromChain(toChain);\n setFromToken(toToken);\n setToChain(fromChain);\n setToToken(fromToken);\n setInputAmount(outputAmount?.toString() || '');\n setCount((prev) => prev + 1);\n };\n\n const { data, loading: fetchingBestRoute, error: bestRouteError, retry } = useBestRoute();\n\n const noConnectedWallet = accounts.length > 0;\n\n const noRoutesFound = !bestRoute?.result;\n\n const errorMessage =\n loadingMetaStatus === 'failed' ? errorMessages.genericServerError : bestRouteError;\n\n const needsToWarnEthOnPath = false;\n\n const showBestRoute = inputAmount && (!!data || fetchingBestRoute || bestRouteError);\n\n const outToInRatio = getOutputRatio(inputUsdValue, outputUsdValue);\n\n const highValueLoss = outputRatioHasWarning(inputUsdValue, outToInRatio);\n\n const priceImpactCanNotBeComputed = !canComputePriceImpact(\n bestRoute,\n inputAmount,\n inputUsdValue,\n outputUsdValue,\n );\n\n const buttonTitle = getSwapButtonTitle(\n accounts,\n fetchingBestRoute,\n hasLimitError(bestRoute),\n highValueLoss,\n priceImpactCanNotBeComputed,\n needsToWarnEthOnPath,\n );\n\n const buttonDisabled =\n loadingMetaStatus != 'success' ||\n fetchingBestRoute ||\n highValueLoss ||\n (noConnectedWallet && noRoutesFound) ||\n hasLimitError(bestRoute);\n\n useEffect(() => {\n setBestRoute(data);\n }, [data]);\n\n return (\n <Container>\n <Header onClickRefresh={retry} />\n <TokenInfo\n type=\"From\"\n chain={fromChain}\n token={fromToken}\n onAmountChange={setInputAmount}\n inputAmount={inputAmount}\n />\n <SwitchButtonContainer>\n <Button variant=\"ghost\" onClick={swithFromAndTo}>\n <VerticalSwapIcon size={36} />\n {isRouterInContext && <SwithFromAndTo count={count} />}\n </Button>\n </SwitchButtonContainer>\n <TokenInfo\n type=\"To\"\n chain={toChain}\n token={toToken}\n outputAmount={outputAmount}\n outputUsdValue={outputUsdValue}\n />\n {showBestRoute && (\n <BestRouteContainer>\n <BestRoute error={bestRouteError} loading={fetchingBestRoute} data={data} />\n </BestRouteContainer>\n )}\n {(errorMessage || waningMessage) && (\n <Alerts>\n {errorMessage && <Alert description={errorMessage} type=\"error\" />}\n {waningMessage && <Alert description={waningMessage} type=\"warning\" />}\n </Alerts>\n )}\n <Footer>\n <Button\n type=\"primary\"\n align=\"grow\"\n size=\"large\"\n disabled={buttonDisabled}\n onClick={() => {\n if (buttonTitle === 'Connect Wallet') navigate(navigationRoutes.wallets);\n else {\n navigate(navigationRoutes.confirmWallets);\n }\n }}>\n {buttonTitle}\n </Button>\n <BottomLogo />\n </Footer>\n </Container>\n );\n}","import { LiquiditySourcesSelector } from '@rango-dev/ui';\nimport React from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport { useMetaStore } from '../store/meta';\nimport { useSettingsStore } from '../store/settings';\nimport { removeDuplicateFrom } from '../utils/common';\n\nexport function LiquiditySourcePage() {\n const { swappers } = useMetaStore.use.meta();\n const toggleLiquiditySource = useSettingsStore.use.toggleLiquiditySource();\n const disabledLiquiditySources = useSettingsStore.use.disabledLiquiditySources();\n const toggleAllLiquiditySources = useSettingsStore.use.toggleAllLiquiditySources();\n\n const navigate = useNavigate();\n\n const uniqueSwappersGroups: Array<{\n title: string;\n logo: string;\n type: 'BRIDGE' | 'AGGREGATOR' | 'DEX';\n selected: boolean;\n }> = [];\n removeDuplicateFrom(swappers.map((s) => s.swapperGroup))\n .map((swapperGroup) => {\n return swappers.find((s) => s.swapperGroup === swapperGroup);\n })\n .find((s) => {\n if (s) {\n for (const type of s.types) {\n uniqueSwappersGroups.push({\n title: s.swapperGroup,\n logo: s.logo,\n type,\n selected: !disabledLiquiditySources.includes(s.swapperGroup),\n });\n }\n }\n });\n\n return (\n <LiquiditySourcesSelector\n toggleAll={toggleAllLiquiditySources}\n list={uniqueSwappersGroups}\n onChange={(liquiditySource) => toggleLiquiditySource(liquiditySource.title)}\n onBack={() => {\n navigate(-1);\n }}\n />\n );\n}\n","import React, { useEffect, useState } from 'react';\nimport { BlockchainSelector } from '@rango-dev/ui';\nimport { useBestRouteStore } from '../store/bestRoute';\nimport { useMetaStore } from '../store/meta';\nimport { useNavigate } from 'react-router-dom';\nimport { useWalletsStore } from '../store/wallets';\nimport { BlockchainMeta } from 'rango-sdk';\nimport { removeDuplicateFrom } from '../utils/common';\n\ninterface PropTypes {\n type: 'from' | 'to';\n}\n\nexport function SelectChainPage(props: PropTypes) {\n const { type } = props;\n const accounts = useWalletsStore.use.accounts();\n\n const { blockchains } = useMetaStore.use.meta();\n const loadingStatus = useMetaStore.use.loadingStatus();\n const fromChain = useBestRouteStore.use.fromChain();\n const toChain = useBestRouteStore.use.toChain();\n const setFromChain = useBestRouteStore.use.setFromChain();\n const setToChain = useBestRouteStore.use.setToChain();\n const setFromToken = useBestRouteStore.use.setFromToken();\n const setToToken = useBestRouteStore.use.setToToken();\n\n const navigate = useNavigate();\n\n const [list, setList] = useState(blockchains);\n\n useEffect(() => {\n let chainSortedByConnectedWallets: BlockchainMeta[] = [];\n if (accounts.length !== 0) {\n const connectedChains = removeDuplicateFrom(accounts.map((account) => account.chain));\n chainSortedByConnectedWallets = blockchains.sort(\n (blockchainA, blockchainB) =>\n connectedChains.lastIndexOf(blockchainA.name) -\n connectedChains.lastIndexOf(blockchainB.name),\n );\n } else {\n chainSortedByConnectedWallets = blockchains;\n }\n setList(chainSortedByConnectedWallets);\n }, [blockchains.length, accounts.length]);\n\n return (\n <BlockchainSelector\n type={type === 'from' ? 'Source' : 'Destination'}\n list={list}\n selected={type === 'from' ? fromChain : toChain}\n loadingStatus={loadingStatus}\n onChange={(chain) => {\n if (type === 'from') setFromChain(chain);\n else setToChain(chain);\n if (type === 'from' && fromChain?.name != chain.name) setFromToken(null);\n if (type === 'to' && toChain?.name != chain.name) setToToken(null);\n navigate(-1);\n }}\n onBack={navigate.bind(null, -1)}\n />\n );\n}\n","import React from 'react';\nimport { TokenSelector } from '@rango-dev/ui';\nimport { useBestRouteStore } from '../store/bestRoute';\nimport { useMetaStore } from '../store/meta';\nimport { useNavigate } from 'react-router-dom';\nimport { Token } from 'rango-sdk';\nimport { numberToString } from '../utils/numbers';\nimport BigNumber from 'bignumber.js';\nimport { getBalanceFromWallet } from '../utils/wallets';\nimport { useWalletsStore } from '../store/wallets';\nimport { sortedTokens } from '../utils/wallets';\nimport { ZERO } from '../constants/numbers';\n\ninterface PropTypes {\n type: 'from' | 'to';\n}\n\nexport interface TokenWithBalance extends Token {\n balance?: {\n amount: string;\n usdValue: string;\n };\n}\n\nexport function SelectTokenPage(props: PropTypes) {\n const { type } = props;\n const navigate = useNavigate();\n\n const { tokens } = useMetaStore.use.meta();\n const fromChain = useBestRouteStore.use.fromChain();\n const toChain = useBestRouteStore.use.toChain();\n const fromToken = useBestRouteStore.use.fromToken();\n const toToken = useBestRouteStore.use.toToken();\n const setFromToken = useBestRouteStore.use.setFromToken();\n const setToToken = useBestRouteStore.use.setToToken();\n\n const balance = useWalletsStore.use.balances();\n\n const tokenWithSelectedChain = tokens.filter((token) => {\n if (type === 'from') return token.blockchain === fromChain?.name;\n return token.blockchain === toChain?.name;\n });\n\n const TokensWithBalance: TokenWithBalance[] = tokenWithSelectedChain.map((token) => {\n const tokenAmount = numberToString(\n new BigNumber(\n getBalanceFromWallet(balance, token.blockchain, token.symbol, token.address)?.amount ||\n ZERO,\n ),\n );\n\n let tokenUsdValue = '';\n if (token.usdPrice)\n tokenUsdValue = numberToString(\n new BigNumber(\n getBalanceFromWallet(balance, token.blockchain, token.symbol, token.address)?.amount ||\n ZERO,\n ).multipliedBy(token.usdPrice),\n );\n return {\n ...token,\n balance: {\n amount: tokenAmount !== '0' ? tokenAmount : '',\n usdValue: tokenUsdValue !== '0' ? tokenUsdValue : '',\n },\n };\n });\n\n const sortedTokenList = sortedTokens(TokensWithBalance, type, balance);\n\n return (\n <TokenSelector\n type={type === 'from' ? 'Source' : 'Destination'}\n list={sortedTokenList}\n selected={type === 'from' ? fromToken : toToken}\n onChange={(token) => {\n if (type === 'from') setFromToken(token);\n else setToToken(token);\n navigate(-1);\n }}\n onBack={navigate.bind(null, -1)}\n />\n );\n}","import React from 'react';\nimport { Settings } from '@rango-dev/ui';\nimport { useSettingsStore } from '../store/settings';\nimport { useMetaStore } from '../store/meta';\nimport { useNavigate } from 'react-router-dom';\nimport { navigationRoutes } from '../constants/navigationRoutes';\nimport { removeDuplicateFrom } from '../utils/common';\n\nexport function SettingsPage() {\n const slippage = useSettingsStore.use.slippage();\n const setSlippage = useSettingsStore.use.setSlippage();\n const disabledLiquiditySources = useSettingsStore.use.disabledLiquiditySources();\n const customSlippage = useSettingsStore.use.customSlippage();\n const setCustomSlippage = useSettingsStore.use.setCustomSlippage();\n const theme = useSettingsStore.use.theme();\n const setTheme = useSettingsStore.use.setTheme();\n const { swappers } = useMetaStore.use.meta();\n const navigate = useNavigate();\n\n const uniqueSwappersGroups: Array<{\n title: string;\n logo: string;\n type: 'BRIDGE' | 'AGGREGATOR' | 'DEX';\n selected: boolean;\n }> = [];\n removeDuplicateFrom(swappers.map((s) => s.swapperGroup))\n .map((swapperGroup) => {\n return swappers.find((s) => s.swapperGroup === swapperGroup);\n })\n .find((s) => {\n if (s) {\n for (const type of s.types) {\n uniqueSwappersGroups.push({\n title: s.swapperGroup,\n logo: s.logo,\n type,\n selected: !disabledLiquiditySources.includes(s.swapperGroup),\n });\n }\n }\n });\n\n return (\n <Settings\n slippages={[1, 2, 3, 4]}\n selectedSlippage={slippage}\n onSlippageChange={(slippage) => setSlippage(slippage)}\n liquiditySources={uniqueSwappersGroups}\n selectedLiquiditySources={uniqueSwappersGroups.filter((s) => s.selected)}\n onLiquiditySourcesClick={() => navigate(navigationRoutes.liquiditySources)}\n onBack={navigate.bind(null, -1)}\n customSlippage={customSlippage || NaN}\n onCustomSlippageChange={setCustomSlippage}\n minSlippage={1}\n maxSlippage={10}\n selectedTheme={theme}\n onThemeChange={setTheme}\n />\n );\n}\n","import { useNavigate } from 'react-router-dom';\nimport { Alert, SecondaryPage, styled, Wallet } from '@rango-dev/ui';\nimport React, { useState } from 'react';\nimport { getlistWallet } from '../utils/wallets';\nimport { WalletType } from '@rango-dev/wallets-shared';\nimport { useWallets } from '@rango-dev/wallets-core';\n\nconst ListContainer = styled('div', {\n display: 'grid',\n gap: '.5rem',\n gridTemplateColumns: ' repeat(2, minmax(0, 1fr))',\n height: '450px',\n alignContent: 'baseline',\n padding: '0 0.5rem',\n});\n\nconst AlertContainer = styled('div', {\n paddingBottom: '$16',\n});\nexport function WalletsPage() {\n const navigate = useNavigate();\n const { state, disconnect, getWalletInfo, connect } = useWallets();\n const wallets = getlistWallet(\n state,\n getWalletInfo,\n Object.values(WalletType)\n );\n const [walletErrorMessage, setWalletErrorMessage] = useState('');\n\n const onSelectWallet = async (type: WalletType) => {\n const wallet = state(type);\n try {\n if (walletErrorMessage) setWalletErrorMessage('');\n if (wallet.connected) {\n await disconnect(type);\n } else {\n await connect(type);\n }\n } catch (e) {\n setWalletErrorMessage('Error: ' + e.message);\n }\n };\n return (\n <SecondaryPage\n title=\"Select Wallet\"\n textField={false}\n onBack={() => {\n navigate(-1);\n }}\n Content={\n <>\n {walletErrorMessage && (\n <AlertContainer>\n <Alert type=\"error\" description={walletErrorMessage} />\n </AlertContainer>\n )}\n <ListContainer>\n {wallets.map((info, index) => (\n <Wallet {...info} key={index} onClick={onSelectWallet} />\n ))}\n </ListContainer>\n </>\n }\n />\n );\n}\n","import React, { useEffect } from 'react';\nimport { ConfirmWallets } from '@rango-dev/ui';\nimport { useNavigate } from 'react-router-dom';\nimport { useBestRouteStore } from '../store/bestRoute';\nimport { useWalletsStore } from '../store/wallets';\nimport { useWallets } from '@rango-dev/wallets-core';\nimport { navigationRoutes } from '../constants/navigationRoutes';\nimport { getKeplrCompatibleConnectedWallets, getRequiredChains, getSelectableWallets, isExperimentalChain, SelectedWallet } from '../utils/wallets';\nimport { requiredWallets } from '../utils/swap';\nimport { useMetaStore } from '../store/meta';\nimport { Network, WalletType } from '@rango-dev/wallets-shared';\n\nexport interface SelectableWallet extends SelectedWallet {\n image: string;\n selected: boolean;\n}\n\nexport function ConfirmWalletsPage() {\n const navigate = useNavigate();\n const bestRoute = useBestRouteStore.use.bestRoute();\n\n const { blockchains } = useMetaStore.use.meta();\n const accounts = useWalletsStore.use.accounts();\n const selectedWallets = useWalletsStore.use.selectedWallets();\n const initSelectedWallets = useWalletsStore.use.initSelectedWallets();\n const setSelectedWallet = useWalletsStore.use.setSelectedWallet();\n\n const { getWalletInfo, connect } = useWallets();\n const confirmDisabled = !requiredWallets(bestRoute).every((chain) =>\n selectedWallets.map((wallet) => wallet.chain).includes(chain),\n );\n\n useEffect(() => {\n initSelectedWallets();\n }, []);\n\n const selectableWallets = getSelectableWallets(\n accounts,\n selectedWallets,\n getWalletInfo,\n getRequiredChains(bestRoute),\n );\n\n const handleConnectChain = (wallet: string) => {\n const network = wallet as Network;\n getKeplrCompatibleConnectedWallets(selectableWallets).forEach(\n (compatibleWallet: WalletType) =>\n connect?.(compatibleWallet, network)\n );\n }\n \n return (\n <ConfirmWallets\n requiredWallets={getRequiredChains(bestRoute)}\n selectableWallets={selectableWallets}\n onBack={() => navigate(-1)}\n swap={bestRoute!}\n onConfirm={() => navigate(navigationRoutes.confirmSwap)}\n onChange={(wallet) => setSelectedWallet(wallet)}\n confirmDisabled={confirmDisabled}\n handleConnectChain={(wallet) => handleConnectChain(wallet)}\n isExperimentalChain={(wallet) => getKeplrCompatibleConnectedWallets(selectableWallets).length > 0 ? isExperimentalChain(blockchains , wallet) : false}\n />\n );\n}","//TODO: remove mock data after queue manager integration\nexport const pendingSwap: any = {\n creationTime: '1675837879344',\n finishTime: '1675842500799',\n requestId: 'c40b81cd-fdac-4dad-bfef-1c7b2cff715f',\n inputAmount: '2',\n wallets: {\n POLYGON: {\n walletType: 'metamask',\n address: '0x2702d89c1c8658b49c45dd460deebcc45faec03c',\n },\n SOLANA: {\n walletType: 'phantom',\n address: '9QoVnPEHj5HNL4cVicXUF8CVmyhBxTDqUUigVn3UPWwk',\n },\n },\n status: 'success',\n isPaused: false,\n extraMessage: null,\n extraMessageSeverity: 'info',\n extraMessageDetail: '',\n extraMessageErrorCode: null,\n networkStatusExtraMessage: '',\n networkStatusExtraMessageDetail: '',\n lastNotificationTime: null,\n settings: {\n slippage: '13.0',\n disabledSwappersIds: [\n 'PancakeSwapBsc',\n 'ThorChain',\n 'Horizon Bridge',\n 'OneInchOptimism',\n 'OneInchGnosis',\n 'OneInchBsc',\n 'OneInchArbitrum',\n 'OpenOceanFantom',\n 'SushiHarmony',\n 'SushiArbitrum',\n 'OkcSwap',\n 'CherrySwap',\n 'Osmosis',\n 'SolanaWrapper',\n 'Jupiter',\n 'stargate',\n 'AnySwap',\n 'Satellite',\n 'Diffusion',\n 'JunoSwap',\n 'PangolinSwap',\n 'MMFinance',\n 'CronaSwap',\n 'VVSFinance',\n 'MDexHeco',\n 'ParaSwap Polygon',\n 'ParaSwap Bsc',\n 'ParaSwap Avalanche',\n 'AuroraSwap',\n 'Across',\n 'Arbitrum Bridge',\n 'TrisolarisSwap',\n 'Polygon Bridge',\n 'SpookySwap',\n 'Rainbow Bridge',\n 'Lido',\n 'Symbiosis',\n 'Avalanche Bridge',\n 'VoltageSwap',\n 'Stargate Aggregator',\n 'Across Aggregator',\n 'THORChain Aggregator',\n 'CBridge Aggregator',\n 'AnySwap Aggregator',\n 'Hyphen Aggregator',\n 'Optimism Bridge',\n 'OolongSwap',\n 'QuickSwap',\n 'StellaSwap',\n 'Hyphen',\n 'ViperSwap',\n 'cBridge v2.0',\n 'FinKujira',\n 'Hop',\n 'BeamSwap',\n 'SolarbeamSwap',\n 'Sifchain',\n 'Wormhole',\n 'EthUniSwapV2',\n 'OneInchPolygon',\n ],\n disabledSwappersGroups: [],\n },\n simulationResult: {\n outputAmount: '0.084249153',\n swaps: [\n {\n swapperId: 'QuickSwap',\n swapperLogo: 'https://api.rango.exchange/swappers/quick-swap.png',\n swapperType: 'DEX',\n from: {\n symbol: 'USDC',\n logo: 'https://api.rango.exchange/i/ns0AMf',\n blockchainLogo: 'https://api.rango.exchange/blockchains/polygon.svg',\n address: '0x2791bca1f2de4661ed88a30c99a7a9449aa84174',\n blockchain: 'POLYGON',\n decimals: 6,\n usdPrice: 0.999792,\n },\n to: {\n symbol: 'SOL',\n logo: 'https://api.rango.exchange/i/YhJ1nK',\n blockchainLogo: 'https://api.rango.exchange/blockchains/polygon.svg',\n address: '0xd93f7e271cb87c23aaa73edc008a79646d1f9912',\n blockchain: 'POLYGON',\n decimals: 9,\n usdPrice: 23.700913462284028,\n },\n fromAmount: '2.000000',\n fromAmountPrecision: null,\n fromAmountMinValue: null,\n fromAmountMaxValue: null,\n fromAmountRestrictionType: null,\n toAmount: '0.084249153',\n fee: [\n {\n asset: {\n blockchain: 'POLYGON',\n symbol: 'USDC',\n address: '0x2791bca1f2de4661ed88a30c99a7a9449aa84174',\n },\n expenseType: 'DECREASE_FROM_OUTPUT',\n amount: '0.006000000000000000124900090270330110797658562660217285156250000000',\n name: 'Swapper Fee',\n },\n {\n asset: {\n blockchain: 'POLYGON',\n symbol: 'MATIC',\n address: null,\n },\n expenseType: 'FROM_SOURCE_WALLET',\n amount: '0.032758180196833611',\n name: 'Network Fee',\n },\n ],\n estimatedTimeInSeconds: 60,\n swapChainType: 'INTER_CHAIN',\n routes: [\n {\n nodes: [\n {\n nodes: [\n {\n marketName: 'QuickSwap',\n marketId: 'QuickSwap',\n percent: 1,\n },\n ],\n from: 'USDC',\n fromLogo: '',\n fromAddress: '0x2791bca1f2de4661ed88a30c99a7a9449aa84174',\n fromBlockchain: 'POLYGON',\n\n to: 'SOL',\n toLogo: '',\n toAddress: '0xd93f7e271cb87c23aaa73edc008a79646d1f9912',\n toBlockchain: 'POLYGON',\n },\n ],\n },\n ],\n recommendedSlippage: null,\n warnings: [],\n timeStat: {\n min: 7,\n avg: 59,\n max: 736,\n },\n includesDestinationTx: false,\n internalSwaps: null,\n maxRequiredSign: 1,\n fromAsset: {\n blockchain: 'POLYGON',\n symbol: 'USDC',\n address: '0x2791bca1f2de4661ed88a30c99a7a9449aa84174',\n },\n toAsset: {\n blockchain: 'POLYGON',\n symbol: 'SOL',\n address: '0xd93f7e271cb87c23aaa73edc008a79646d1f9912',\n },\n },\n {\n swapperId: 'Wormhole',\n swapperLogo: 'https://api.rango.exchange/swappers/wormhole.png',\n swapperType: 'BRIDGE',\n from: {\n symbol: 'SOL',\n logo: 'https://api.rango.exchange/i/YhJ1nK',\n blockchainLogo: 'https://api.rango.exchange/blockchains/polygon.svg',\n address: '0xd93f7e271cb87c23aaa73edc008a79646d1f9912',\n blockchain: 'POLYGON',\n decimals: 9,\n usdPrice: 23.700913462284028,\n },\n to: {\n symbol: 'SOL',\n logo: 'https://api.rango.exchange/i/eLHYrb',\n blockchainLogo: 'https://api.rango.exchange/blockchains/solana.svg',\n address: null,\n blockchain: 'SOLANA',\n decimals: 9,\n usdPrice: 23.97093428787272,\n },\n fromAmount: '0.084249153',\n fromAmountPrecision: null,\n fromAmountMinValue: null,\n fromAmountMaxValue: null,\n fromAmountRestrictionType: null,\n toAmount: '0.084249153',\n fee: [\n {\n asset: {\n blockchain: 'POLYGON',\n symbol: 'MATIC',\n address: null,\n },\n expenseType: 'FROM_SOURCE_WALLET',\n amount: '0.042205949048288939',\n name: 'Network Fee',\n },\n {\n asset: {\n blockchain: 'SOLANA',\n symbol: 'SOL',\n address: null,\n },\n expenseType: 'FROM_DESTINATION_WALLET',\n amount: '0.000070000',\n name: 'Swapper Fee',\n },\n ],\n estimatedTimeInSeconds: 150,\n swapChainType: 'INTRA_CHAIN',\n routes: null,\n recommendedSlippage: null,\n warnings: [],\n timeStat: {\n min: 42,\n avg: 146,\n max: 5582,\n },\n includesDestinationTx: true,\n internalSwaps: null,\n maxRequiredSign: 6,\n fromAsset: {\n blockchain: 'POLYGON',\n symbol: 'SOL',\n address: '0xd93f7e271cb87c23aaa73edc008a79646d1f9912',\n },\n toAsset: {\n blockchain: 'SOLANA',\n symbol: 'SOL',\n address: null,\n },\n },\n ],\n resultType: 'OK',\n },\n validateBalanceOrFee: true,\n steps: [\n {\n id: 1,\n fromBlockchain: 'POLYGON',\n fromSymbol: 'USDC',\n fromSymbolAddress: '0x2791bca1f2de4661ed88a30c99a7a9449aa84174',\n fromDecimals: 6,\n fromAmountPrecision: null,\n fromAmountMinValue: null,\n fromAmountMaxValue: null,\n toBlockchain: 'POLYGON',\n fromLogo: 'https://api.rango.exchange/i/ns0AMf',\n fromBlockchainLogo: 'https://api.rango.exchange/blockchains/polygon.svg',\n toBlockchainLogo: 'https://api.rango.exchange/blockchains/solana.svg',\n toSymbol: 'SOL',\n toSymbolAddress: '0xd93f7e271cb87c23aaa73edc008a79646d1f9912',\n toDecimals: 9,\n toLogo: 'https://api.rango.exchange/i/YhJ1nK',\n startTransactionTime: 1675837904769,\n swapperId: 'QuickSwap',\n swapperLogo: 'https://api.rango.exchange/swappers/quick-swap.png',\n expectedOutputAmountHumanReadable: '0.084249153',\n outputAmount: '0.084206923',\n status: 'success',\n networkStatus: 'networkChanged',\n executedTransactionId: '0xb2a6b1b497b660bd58d8583d05425ea1b89fa19efc18c9b3baa501abf5f8cee9',\n externalTransactionId: null,\n explorerUrl: [\n {\n url: 'https://polygonscan.com/tx/0xb2a6b1b497b660bd58d8583d05425ea1b89fa19efc18c9b3baa501abf5f8cee9',\n description: 'swap',\n },\n ],\n trackingCode: null,\n cosmosTransaction: null,\n solanaTransaction: null,\n evmTransaction: {\n type: 'EVM',\n blockChain: 'POLYGON',\n isApprovalTx: false,\n from: '0x2702d89c1c8658b49c45dd460deebcc45faec03c',\n to: '0x38F7Aa5370439E879370E24AdD063a11Bd74610D',\n spender: null,\n data: '0xa60fdfb60000000000000000000000002791bca1f2de4661ed88a30c99a7a9449aa84174000000000000000000000000d93f7e271cb87c23aaa73edc008a79646d1f991200000000000000000000000000000000000000000000000000000000001e84800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000a5e0829caced8ffdd4de3c43696c57f7d7a678ff0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000010438ed173900000000000000000000000000000000000000000000000000000000001e848000000000000000000000000000000000000000000000000000000000045e6b7b00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000038f7aa5370439e879370e24add063a11bd74610d0000000000000000000000000000000000000000000000000000000063e348d800000000000000000000000000000000000000000000000000000000000000020000000000000000000000002791bca1f2de4661ed88a30c99a7a9449aa84174000000000000000000000000d93f7e271cb87c23aaa73edc008a79646d1f991200000000000000000000000000000000000000000000000000000000',\n value: null,\n gasLimit: '0x62f20',\n gasPrice: '247516799843',\n nonce: null,\n },\n evmApprovalTransaction: null,\n transferTransaction: null,\n diagnosisUrl: null,\n internalSteps: null,\n },\n {\n id: 2,\n fromBlockchain: 'POLYGON',\n fromSymbol: 'SOL',\n fromSymbolAddress: '0xd93f7e271cb87c23aaa73edc008a79646d1f9912',\n fromDecimals: 9,\n fromAmountPrecision: null,\n fromAmountMinValue: null,\n fromAmountMaxValue: null,\n toBlockchain: 'SOLANA',\n fromLogo: 'https://api.rango.exchange/i/YhJ1nK',\n fromBlockchainLogo: 'https://api.rango.exchange/blockchains/polygon.svg',\n toBlockchainLogo: 'https://api.rango.exchange/blockchains/solana.svg',\n toSymbol: 'SOL',\n toSymbolAddress: null,\n toDecimals: 9,\n toLogo: 'https://api.rango.exchange/i/eLHYrb',\n startTransactionTime: 1675842459076,\n swapperId: 'Wormhole',\n swapperLogo: 'https://api.rango.exchange/swappers/wormhole.png',\n expectedOutputAmountHumanReadable: '0.084249153',\n outputAmount: '0.08420692',\n status: 'failed',\n networkStatus: 'networkChanged',\n executedTransactionId:\n '5MGhqrNRwRKkHGU11S37mgF7LscXWhAvwBeAWEdxcmV9AD6bNqig6iCCzC4mKBH41JBexKb6kj4axLfcH4XZQsT9',\n externalTransactionId: null,\n explorerUrl: [\n {\n url: 'https://solscan.io/tx/2wvqHEy5hCDfpwZM5sZhBpFxXZL7p6PRqpDdCZGpGF85deGQU9oiBC9Jgoszdo8x9hjkySktGPYzubcXP8pxW3H4',\n description: 'Associate Token',\n },\n {\n url: 'https://polygonscan.com/tx/0xcdd0c684fc203d41a0eaacfba2201ab0a48845bb6d0f0805fb4a70a0f971a599',\n description: 'Transfer',\n },\n {\n url: 'https://solscan.io/tx/5rc5EHfMrChB749RsJew1ze35yQMddafkQqy5JFqcdKPJ6j2NiggGT7UDmFDAXzP2AwHGyFj2XjaYr7RQjjc1KmH',\n description: 'Verify vaa 1',\n },\n {\n url: 'https://solscan.io/tx/5xNgHvdzu63fmF7uojrHuqcHC3NgErpdGiSg38X7KZ7EEjTyPWt8W1QUtuyUFcNcSjGkFGrGzfnkRUbe4Hj6oY2v',\n description: 'Verify vaa 2',\n },\n {\n url: 'https://solscan.io/tx/3FnXLYwwpc93o2TyjKNDfiBcRDZ9W1qJVdmCjTRw3kz4Jrwjr5zQzLSbsbbBzqFNMSxBFcUDaiQ7pP4DL5coUGq',\n description: 'Post vaa',\n },\n {\n url: 'https://solscan.io/tx/5MGhqrNRwRKkHGU11S37mgF7LscXWhAvwBeAWEdxcmV9AD6bNqig6iCCzC4mKBH41JBexKb6kj4axLfcH4XZQsT9',\n description: 'Redeem',\n },\n ],\n trackingCode: null,\n cosmosTransaction: null,\n solanaTransaction: {\n type: 'SOLANA',\n blockChain: 'SOLANA',\n from: '9QoVnPEHj5HNL4cVicXUF8CVmyhBxTDqUUigVn3UPWwk',\n identifier: 'redeem',\n instructions: [\n {\n keys: [\n {\n pubkey: '9QoVnPEHj5HNL4cVicXUF8CVmyhBxTDqUUigVn3UPWwk',\n isSigner: true,\n isWritable: true,\n },\n {\n pubkey: 'DapiQYH3BGonhN8cngWcXQ6SrqSm3cwysoznoHr6Sbsx',\n isSigner: false,\n isWritable: false,\n },\n {\n pubkey: 'Wf8aqunuZ9y1tprCihMateij299Pa57XL15a6EQz9qt',\n isSigner: false,\n isWritable: false,\n },\n {\n pubkey: 'FTWSFuqyc6B5BbarBzuHdBofA2ks12eyRNmUfKmDiUN1',\n isSigner: false,\n isWritable: true,\n },\n {\n pubkey: 'J6fNPeeJc1E2zDRUtvD9aaC9kBsEq7JaFr1oa97DAJhj',\n isSigner: false,\n isWritable: false,\n },\n {\n pubkey: '8nUPRxuXUJPbWiCbqCPrVLkmXqR8LdifLrRW3VjCQDhZ',\n isSigner: false,\n isWritable: true,\n },\n {\n pubkey: '8nUPRxuXUJPbWiCbqCPrVLkmXqR8LdifLrRW3VjCQDhZ',\n isSigner: false,\n isWritable: true,\n },\n {\n pubkey: '2nQNF8F9LLWMqdjymiLK2u8HoHMvYa4orCXsp3w65fQ2',\n isSigner: false,\n isWritable: true,\n },\n {\n pubkey: 'So11111111111111111111111111111111111111112',\n isSigner: false,\n isWritable: false,\n },\n {\n pubkey: 'GugU1tP7doLeTw9hQP51xRJyS8Da1fWxuiy2rVrnMD2m',\n isSigner: false,\n isWritable: false,\n },\n {\n pubkey: 'SysvarRent111111111111111111111111111111111',\n isSigner: false,\n isWritable: false,\n },\n {\n pubkey: '11111111111111111111111111111111',\n isSigner: false,\n isWritable: false,\n },\n {\n pubkey: 'worm2ZoG2kUd4vFXhvjh93UUH596ayRfgQ2MgjNMTth',\n isSigner: false,\n isWritable: false,\n },\n {\n pubkey: 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA',\n isSigner: false,\n isWritable: false,\n },\n ],\n programId: 'wormDTUJ6AWPNvk59vGQbDvGJmqbDTdgWgAqcLBCgUb',\n data: [2],\n },\n {\n keys: [\n {\n pubkey: '9QoVnPEHj5HNL4cVicXUF8CVmyhBxTDqUUigVn3UPWwk',\n isSigner: true,\n isWritable: true,\n },\n {\n pubkey: '72pK2FqwMYPr9ajAhzLNQq8e5S2Rf33MGpVXxdXwCT6V',\n isSigner: true,\n isWritable: true,\n },\n ],\n programId: '11111111111111111111111111111111',\n data: [\n 0, 0, 0, 0, -16, 29, 31, 0, 0, 0, 0, 0, -91, 0, 0, 0, 0, 0, 0, 0, 6, -35, -10, -31,\n -41, 101, -95, -109, -39, -53, -31, 70, -50, -21, 121, -84, 28, -76, -123, -19, 95,\n 91, 55, -111, 58, -116, -11, -123, 126, -1, 0, -87,\n ],\n },\n {\n keys: [\n {\n pubkey: '72pK2FqwMYPr9ajAhzLNQq8e5S2Rf33MGpVXxdXwCT6V',\n isSigner: false,\n isWritable: true,\n },\n {\n pubkey: 'So11111111111111111111111111111111111111112',\n isSigner: false,\n isWritable: false,\n },\n {\n pubkey: '9QoVnPEHj5HNL4cVicXUF8CVmyhBxTDqUUigVn3UPWwk',\n isSigner: false,\n isWritable: false,\n },\n {\n pubkey: 'SysvarRent111111111111111111111111111111111',\n isSigner: false,\n isWritable: false,\n },\n ],\n programId: 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA',\n data: [1],\n },\n {\n keys: [\n {\n pubkey: '8nUPRxuXUJPbWiCbqCPrVLkmXqR8LdifLrRW3VjCQDhZ',\n isSigner: false,\n isWritable: true,\n },\n {\n pubkey: '72pK2FqwMYPr9ajAhzLNQq8e5S2Rf33MGpVXxdXwCT6V',\n isSigner: false,\n isWritable: true,\n },\n {\n pubkey: '9QoVnPEHj5HNL4cVicXUF8CVmyhBxTDqUUigVn3UPWwk',\n isSigner: true,\n isWritable: false,\n },\n ],\n programId: 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA',\n data: [3, 72, -27, 4, 5, 0, 0, 0, 0],\n },\n {\n keys: [\n {\n pubkey: '72pK2FqwMYPr9ajAhzLNQq8e5S2Rf33MGpVXxdXwCT6V',\n isSigner: false,\n isWritable: true,\n },\n {\n pubkey: '9QoVnPEHj5HNL4cVicXUF8CVmyhBxTDqUUigVn3UPWwk',\n isSigner: false,\n isWritable: true,\n },\n {\n pubkey: '9QoVnPEHj5HNL4cVicXUF8CVmyhBxTDqUUigVn3UPWwk',\n isSigner: true,\n isWritable: false,\n },\n ],\n programId: 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA',\n data: [9],\n },\n ],\n recentBlockhash: '2wBCvR3jVNj6wzL8vHSuqTRtxBYiwhtoY6Gkp6WaBxSG',\n signatures: [\n {\n publicKey: '72pK2FqwMYPr9ajAhzLNQq8e5S2Rf33MGpVXxdXwCT6V',\n signature: [\n -116, 17, -5, 86, -122, 120, -7, -53, -29, -15, -70, -100, 16, 48, 113, -42, 8, 126,\n 75, -13, 63, -31, -17, 1, 74, 85, 77, 90, 98, -15, 104, 63, 4, -74, 45, -3, -3, -117,\n -24, -56, 20, -89, -40, 33, 125, -120, -44, -75, 17, 69, 20, -48, 106, 48, 16, -19,\n 83, 123, -77, 93, -20, -27, -77, 7,\n ],\n },\n ],\n serializedMessage: null,\n },\n evmTransaction: null,\n evmApprovalTransaction: null,\n transferTransaction: null,\n diagnosisUrl: null,\n internalSteps: [\n {\n name: 'associate token address',\n state: 'SUCCESSED',\n current: false,\n },\n {\n name: 'transfer',\n state: 'SUCCESSED',\n current: false,\n },\n {\n name: 'signed vaa',\n state: 'SUCCESSED',\n current: false,\n },\n {\n name: 'verify vaa#1',\n state: 'SUCCESSED',\n current: false,\n },\n {\n name: 'verify vaa#2',\n state: 'SUCCESSED',\n current: false,\n },\n {\n name: 'post vaa',\n state: 'SUCCESSED',\n current: false,\n },\n {\n name: 'redeem',\n state: 'SUCCESSED',\n current: true,\n },\n ],\n },\n ],\n};\n","import { SwapHistory } from '@rango-dev/ui';\nimport React from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport { pendingSwap } from '../mockData/pendingSwap';\n\nexport function SwapDetailsPage() {\n const navigate = useNavigate();\n return <SwapHistory onBack={navigate.bind(null, -1)} pendingSwap={pendingSwap} />;\n}\n","import React from 'react';\nimport { useRoutes } from 'react-router-dom';\nimport { navigationRoutes } from '../constants/navigationRoutes';\nimport { ConfirmSwapPage } from '../pages/ConfirmSwapPage';\nimport { HistoryPage } from '../pages/HistoryPage';\nimport { Home } from '../pages/Home';\nimport { LiquiditySourcePage } from '../pages/LiquiditySourcesPage';\nimport { SelectChainPage } from '../pages/SelectChainPage';\nimport { SelectTokenPage } from '../pages/SelectTokenPage';\nimport { SettingsPage } from '../pages/SettingsPage';\nimport { WalletsPage } from '../pages/WalletsPage';\nimport { ConfirmWalletsPage } from '../pages/ConfirmWalletsPage';\nimport { SwapDetailsPage } from '../pages/SwapDetailsPage';\n\nexport const AppRoutes = () =>\n useRoutes([\n { path: navigationRoutes.home, element: <Home /> },\n { path: navigationRoutes.fromChain, element: <SelectChainPage type=\"from\" /> },\n { path: navigationRoutes.toChain, element: <SelectChainPage type=\"to\" /> },\n { path: navigationRoutes.fromToken + '/*', element: <SelectTokenPage type=\"from\" /> },\n { path: navigationRoutes.toToken, element: <SelectTokenPage type=\"to\" /> },\n { path: navigationRoutes.settings, element: <SettingsPage /> },\n {\n path: navigationRoutes.liquiditySources,\n element: <LiquiditySourcePage />,\n },\n { path: navigationRoutes.history, element: <HistoryPage /> },\n { path: navigationRoutes.wallets, element: <WalletsPage /> },\n { path: navigationRoutes.confirmSwap, element: <ConfirmSwapPage /> },\n { path: navigationRoutes.confirmWallets, element: <ConfirmWalletsPage /> },\n { path: navigationRoutes.swapDetails, element: <SwapDetailsPage /> },\n ]);\n","import { Button, AddWalletIcon, Typography, styled } from '@rango-dev/ui';\nimport React from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport { useWallets } from '@rango-dev/wallets-core';\nimport { navigationRoutes } from '../constants/navigationRoutes';\nimport { AppRoutes } from './AppRoutes';\nimport { useWalletsStore } from '../store/wallets';\nimport { calculateWalletUsdValue, getSelectableWallets } from '../utils/wallets';\n\nconst Header = styled('div', {\n display: 'flex',\n width: '100%',\n justifyContent: 'end',\n});\n\nconst WalletImage = styled('img', {\n width: '$24',\n height: '$24',\n marginLeft: -15,\n marginRight: '$6',\n borderRadius: '99999px',\n});\n\nexport function Layout() {\n const navigate = useNavigate();\n const { balances, accounts, selectedWallets } = useWalletsStore();\n const { getWalletInfo } = useWallets();\n const filterSelelectedWallets = getSelectableWallets(accounts, selectedWallets, getWalletInfo);\n const totalBalance = calculateWalletUsdValue(balances);\n\n return (\n <>\n <Header>\n <Button\n size=\"small\"\n suffix={<AddWalletIcon size={20} />}\n variant=\"ghost\"\n flexContent\n onClick={() => navigate(navigationRoutes.wallets)}>\n {accounts?.length ? (\n filterSelelectedWallets.map((selectedWallet, index) => (\n <WalletImage key={index} src={selectedWallet.image} />\n ))\n ) : (\n <></>\n )}\n <Typography variant=\"body2\">\n {!accounts?.length ? 'Connect Wallet' : `$${totalBalance || 0}`}\n </Typography>\n </Button>\n </Header>\n <AppRoutes />\n </>\n );\n}\n","import { globalCss } from '@rango-dev/ui';\n\nexport const globalStyles = globalCss({\n '*': {\n '&::-webkit-scrollbar': { width: '$8' },\n '&::-webkit-scrollbar-thumb': {\n backgroundColor: '$neutrals400',\n },\n '&::-webkit-scrollbar-thumb:hover': {\n backgroundColor: '$neutrals500',\n },\n '&::-webkit-scrollbar-track': {\n backgroundColor: '$neutrals300',\n },\n },\n});\n","import { lightTheme, darkTheme } from '@rango-dev/ui';\nimport { useState, useEffect } from 'react';\nimport { useMetaStore } from '../store/meta';\nimport { useSettingsStore } from '../store/settings';\n\nexport function useTheme() {\n const theme = useSettingsStore.use.theme();\n const fetchMeta = useMetaStore.use.fetchMeta();\n\n const [OSTheme, setOSTheme] = useState(lightTheme);\n useEffect(() => {\n (async () => {\n await fetchMeta();\n })();\n\n const switchTheme = (event: MediaQueryListEvent) => {\n if (event.matches) setOSTheme(darkTheme);\n else setOSTheme(lightTheme);\n };\n\n if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {\n setOSTheme(darkTheme);\n }\n\n window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', switchTheme);\n return () => {\n window.matchMedia('(prefers-color-scheme: dark)').removeEventListener('change', switchTheme);\n };\n }, []);\n\n const getActiveTheme = () => {\n if (theme === 'auto') return OSTheme;\n else return theme === 'dark' ? darkTheme : lightTheme;\n };\n\n return { activeTheme: getActiveTheme() };\n}\n","import { SwapContainer } from '@rango-dev/ui';\nimport React from 'react';\nimport { AppRouter } from './components/AppRouter';\nimport { useMetaStore } from './store/meta';\nimport { Events, Provider } from '@rango-dev/wallets-core';\nimport { allProviders } from '@rango-dev/provider-all';\nimport { EventHandler } from '@rango-dev/wallets-core/dist/wallet';\nimport { isEvmBlockchain, Network } from '@rango-dev/wallets-shared';\nimport {\n prepareAccountsForWalletStore,\n walletAndSupportedChainsNames,\n} from './utils/wallets';\nimport { useWalletsStore } from './store/wallets';\nimport { Layout } from './components/Layout';\nimport { globalStyles } from './globalStyles';\nimport { useTheme } from './hooks/useTheme';\n\nconst providers = allProviders();\n\nexport const SwapBox: React.FC = () => {\n globalStyles();\n const { activeTheme } = useTheme();\n const { blockchains } = useMetaStore.use.meta();\n const disconnectWallet = useWalletsStore.use.disconnectWallet();\n const connectWallet = useWalletsStore.use.connectWallet();\n const evmBasedChainNames = blockchains\n .filter(isEvmBlockchain)\n .map((chain) => chain.name);\n\n const onUpdateState: EventHandler = (type, event, value, supportedChains) => {\n if (event === Events.ACCOUNTS) {\n if (value) {\n const supportedChainNames: Network[] | null =\n //@ts-ignore\n walletAndSupportedChainsNames(supportedChains);\n const data = prepareAccountsForWalletStore(\n type,\n value,\n evmBasedChainNames,\n supportedChainNames\n );\n connectWallet(data);\n } else {\n disconnectWallet(type);\n }\n }\n };\n\n return (\n <Provider\n allBlockChains={blockchains}\n providers={providers}\n onUpdateState={onUpdateState}\n >\n <div id=\"pageContainer\" className={activeTheme}>\n <SwapContainer>\n <AppRouter>\n <Layout />\n </AppRouter>\n </SwapContainer>\n </div>\n </Provider>\n );\n};\n"],"names":["ZERO","BigNumber","numberToString","number","minDecimals","maxDecimals","n","roundingMode","maxI","i","toFixed","eq","gte","toFormat","Math","min","max","pow","isEqualTo","getBestRouteToTokenUsdPrice","bestRoute","result","swaps","length","to","usdPrice","compareRoutes","route1","route2","inputAmount","fromTokenUsdPrice","toTokenUsdPrice","outUsdValue","outputAmount","multipliedBy","isNaN","inUsdValue","outToInRatio","lte","div","minus","disableSwapButton","parseInt","isChanged","warningMessage","out1","out2","changePercent","toNumber","route1Swaps","route2Swaps","swapperId","symbol","getRequiredBalanceOfWallet","wallet","fee","relatedFeeStatus","find","item","blockchain","chain","wallets","it","address","toLowerCase","requiredAssets","createSelectors","_store","store","use","k","Object","keys","getState","s","getUsdValue","token","amount","useBestRouteStore","create","immer","set","fromChain","fromToken","inputUsdValue","outputUsdValue","toChain","toToken","setBestRoute","state","setFromChain","setFromToken","setToChain","setToToken","setInputAmount","httpService","RangoClient","process","env","REACT_API_KEY","removeDuplicateFrom","array","Array","from","Set","useMetaStore","meta","blockchains","popularTokens","swappers","tokens","loadingStatus","fetchMeta","response","getAllMetadata","chainThatHasTokenInMetaResponse","map","t","enabledChains","filter","enabled","includes","name","sort","a","b","error","SearchParams","searchParamsToToken","searchParams","symbolAndAddress","split","UpdateUrl","firstRender","useRef","setSearchParams","useSearchParams","location","useLocation","useEffect","current","fromChainString","fromTokenString","toChainString","toTokenString","fromAmount","FROM_CHAIN","FROM_TOKEN","TO_CHAIN","TO_TOKEN","FROM_AMOUNT","toString","replace","pathname","fronChainString","get","AppRouter","children","isRouterInContext","useInRouterContext","Router","Fragment","MemoryRouter","React","getStateWallet","connected","WalletStatus","CONNECTED","connecting","CONNECTING","installed","NOT_INSTALLED","DISCONNECTED","getlistWallet","getWalletInfo","list","excludedWallets","WalletType","UNKNOWN","TERRA_STATION","LEAP","type","img","image","installLink","walletAndSupportedChainsNames","supportedChains","blockchainMeta","prepareAccountsForWalletStore","accounts","evmBasedChains","supportedChainNames","addAccount","network","newAccount","walletType","push","forEach","account","readAccountAddress","hasLimitation","isSupported","isUnknown","Network","Unknown","notSupportedNetworkByWallet","isUknownAndEvmBased","isEvmAddress","isEvmBasedChain","evmChainsSupportedByWallet","getRequiredChains","route","swap","currentStepFromBlockchain","currentStepToBlockchain","lastAddedWallet","getSelectableWallets","selectedWallets","requiredChains","connectedWallets","selected","index","findIndex","w","removeDuplicateWallets","arr","key","Map","values","getBalanceFromWallet","balances","selectedChainBalances","balance","bl","parseFloat","isAccountAndBalanceMatched","makeBalanceFor","retrivedBalance","blockChain","explorerUrl","loading","tokenBalance","asset","ticker","rawAmount","decimal","decimals","shiftedBy","logo","getUsdPrice","resetBalanceState","calculateWalletUsdValue","uniqueAccountAddresses","uniqueBalane","reduce","acc","modifiedWalletBlockchains","modifiedWalletBlockchain","has","add","accountAddress","total","flatMap","plus","numberWithThousandSeperator","parts","join","sortedTokens","position","walletSymbols","gt","sortedList","size","tokenA","tokenB","compareBalance","isSecondaryCoin","tokenAUsdValue","tokenBUsdValue","allTokens","toUpperCase","isExperimentalChain","cosmosExperimentalChainInfo","getCosmosExperimentalChainInfo","entries","isCosmosBlockchain","getKeplrCompatibleConnectedWallets","selectableWallets","connectedWalletTypes","KEPLR_COMPATIBLE_WALLETS","compatibleWallet","useWalletsStore","connectWallet","concat","getWalletsDetails","Error","disconnectWallet","initSelectedWallets","anyWalletSelected","firstWalletWithMatchedChain","setSelectedWallet","selectedWallet","navigationRoutes","home","settings","liquiditySources","history","confirmSwap","confirmWallets","swapDetails","useSettingsStore","persist","slippage","customSlippage","infinitApprove","disabledLiquiditySources","theme","setSlippage","setCustomSlippage","toggleAllLiquiditySources","allSwappers","swapper","swapperGroup","toggleInfinitApprove","toggleLiquiditySource","liquiditySource","setTheme","useConfirmSwap","setLoading","useState","setError","warning","setWarning","data","setData","feeStatus","setFeeStatus","bestRouteChanged","setBestRouteChanged","enoughBalance","setEnoughBalance","hasEnoughBalanceOrProperSlippage","userSlippage","routeChanged","validationStatus","hasEnoughBalance","ok","slippages","recommendedSlippage","slippageError","minSlippage","checkFeeAndBalance","selectedWalletsMap","chainAndAccounts","addresses","r","getBestRoute","checkPrerequisites","swapperGroups","swappersGroupsExclude","catch","message","requestAmount","routeChangeStatus","hasEnoughBalanceOrSlippage","proceedAnyway","then","console","log","ConfirmSwapPage","navigate","useNavigate","ConfirmSwap","onConfirm","bind","onBack","pendingSwap","creationTime","finishTime","requestId","OSMOSIS","status","isPaused","extraMessage","extraMessageSeverity","extraMessageDetail","extraMessageErrorCode","networkStatusExtraMessage","networkStatusExtraMessageDetail","lastNotificationTime","disabledSwappersIds","disabledSwappersGroups","simulationResult","swapperType","swapperLogo","blockchainLogo","fromAmountPrecision","fromAmountMinValue","fromAmountMaxValue","toAmount","expenseType","estimatedTimeInSeconds","swapChainType","routes","nodes","marketName","marketId","percent","fromLogo","fromAddress","fromBlockchain","toLogo","toAddress","toBlockchain","timeStat","avg","includesDestinationTx","validateBalanceOrFee","steps","id","fromSymbol","fromSymbolAddress","fromDecimals","toBlockchainLogo","fromBlockchainLogo","toSymbol","toSymbolAddress","toDecimals","startTransactionTime","expectedOutputAmountHumanReadable","networkStatus","executedTransactionId","url","description","cosmosTransaction","TransactionType","COSMOS","fromWalletAddress","chainId","account_number","sequence","msgs","__type","value","sender","pool_id","token_out_denom","token_in","denom","token_out_min_amount","protoMsgs","type_url","memo","source","gas","signType","rpcUrl","rawTransfer","solanaTransaction","evmTransaction","evmApprovalTransaction","transferTransaction","diagnosisUrl","internalSteps","HistoryPage","History","onSwapClick","ButtonsContainer","styled","display","HeaderButtons","props","onClickRefresh","Tooltip","content","Button","variant","onClick","RetryIcon","HistoryIcon","SettingsIcon","HeaderContainer","justifyContent","alignItems","width","padding","Header","Typography","Box","flexDirection","Container","boxSizing","backgroundColor","borderRadius","StyledImage","maxHeight","Options","ImagePlaceholder","height","OutputContainer","flexGrow","border","paddingLeft","paddingRight","TokenInfo","tokenBalanceReal","ItemSuffix","style","InfoCircleIcon","color","AngleDownIcon","className","disabled","prefix","src","suffix","align","marginRight","displayName","TextField","autoFocus","placeholder","right","bottom","onChange","event","onAmountChange","target","undefined","paddingTop","Logo","fill","margin","StyledAnchor","textDecoration","BottomLogo","href","xmlns","viewBox","d","SwithFromAndTo","count","Footer","useBestRoute","setCount","abortControllerRef","retry","prev","abort","abortController","AbortController","requestBody","signal","res","code","errorMessages","genericServerError","getOutputRatio","outputRatioHasWarning","outputRatio","hasLimitError","minimum","maximum","isExclusive","fromAmountRestrictionType","lt","getSwapButtonTitle","highValueLoss","priceImpactCanNotBeComputed","needsToWarnEthOnPath","canComputePriceImpact","requiredWallets","SwitchButtonContainer","top","BestRouteContainer","Alerts","Home","waningMessage","loadingMetaStatus","swithFromAndTo","fetchingBestRoute","bestRouteError","noConnectedWallet","noRoutesFound","errorMessage","showBestRoute","buttonTitle","buttonDisabled","VerticalSwapIcon","BestRoute","Alert","LiquiditySourcePage","uniqueSwappersGroups","types","title","LiquiditySourcesSelector","toggleAll","SelectChainPage","setList","chainSortedByConnectedWallets","connectedChains","blockchainA","blockchainB","lastIndexOf","BlockchainSelector","SelectTokenPage","tokenWithSelectedChain","TokensWithBalance","tokenAmount","tokenUsdValue","usdValue","sortedTokenList","TokenSelector","SettingsPage","Settings","selectedSlippage","onSlippageChange","selectedLiquiditySources","onLiquiditySourcesClick","NaN","onCustomSlippageChange","maxSlippage","selectedTheme","onThemeChange","ListContainer","gap","gridTemplateColumns","alignContent","AlertContainer","paddingBottom","WalletsPage","disconnect","connect","useWallets","walletErrorMessage","setWalletErrorMessage","onSelectWallet","e","SecondaryPage","textField","Content","info","Wallet","ConfirmWalletsPage","confirmDisabled","every","handleConnectChain","ConfirmWallets","POLYGON","SOLANA","warnings","internalSwaps","maxRequiredSign","fromAsset","toAsset","resultType","externalTransactionId","trackingCode","isApprovalTx","spender","gasLimit","gasPrice","nonce","identifier","instructions","pubkey","isSigner","isWritable","programId","recentBlockhash","signatures","publicKey","signature","serializedMessage","SwapDetailsPage","SwapHistory","AppRoutes","useRoutes","path","element","WalletImage","marginLeft","Layout","filterSelelectedWallets","totalBalance","AddWalletIcon","flexContent","globalStyles","globalCss","useTheme","OSTheme","setOSTheme","lightTheme","switchTheme","matches","darkTheme","window","matchMedia","addEventListener","removeEventListener","getActiveTheme","activeTheme","providers","allProviders","SwapBox","evmBasedChainNames","isEvmBlockchain","onUpdateState","Events","ACCOUNTS","Provider","allBlockChains","SwapContainer"],"mappings":"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EAAE,EAAE,GAAG,EAAE,EAAE,EAC1D,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAC3D,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAC3D,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAC7D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAC1D,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC5D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAC7D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;SAE5D,CACF;QACDS,IAAI,EAAE,EAAE;QACRC,MAAM,EAAE,IAAI;QACZ9Y,GAAG,EAAE;UACH+Y,GAAG,EAAE,QAAQ;UACbzX,MAAM,EAAE,CACN;YACEmX,KAAK,EAAE,OAAO;YACdnX,MAAM,EAAE;WACT;SAEJ;QACD0X,QAAQ,EAAE,OAAO;QACjBC,MAAM,EAAE;OACT;MACDC,WAAW,EAAE;KACd;IACDC,iBAAiB,EAAE,IAAI;IACvBC,cAAc,EAAE,IAAI;IACpBC,sBAAsB,EAAE,IAAI;IAC5BC,mBAAmB,EAAE,IAAI;IACzBC,YAAY,EAAE,IAAI;IAClBC,aAAa,EAAE;GAChB;CAEJ,EACD;EACEtF,YAAY,EAAE,eAAe;EAC7BC,UAAU,EAAE,eAAe;EAC3BC,SAAS,EAAE,sCAAsC;EACjD9V,WAAW,EAAE,GAAG;EAChBgC,OAAO,EAAE;IACP+T,OAAO,EAAE;MACPzL,UAAU,EAAE,OAAO;MACnBpI,OAAO,EAAE;;GAEZ;EACD8T,MAAM,EAAE,QAAQ;EAChBC,QAAQ,EAAE,KAAK;EACfC,YAAY,EAAE,IAAI;EAClBC,oBAAoB,EAAE,MAAM;EAC5BC,kBAAkB,EAAE,EAAE;EACtBC,qBAAqB,EAAE,IAAI;EAC3BC,yBAAyB,EAAE,IAAI;EAC/BC,+BAA+B,EAAE,IAAI;EACrCC,oBAAoB,EAAE,IAAI;EAC1BrF,QAAQ,EAAE;IACRQ,QAAQ,EAAE,KAAK;IACf8E,mBAAmB,EAAE,EAAE;IACvBC,sBAAsB,EAAE;GACzB;EACDC,gBAAgB,EAAE;IAChBvW,YAAY,EAAE,UAAU;IACxBX,KAAK,EAAE,CACL;MACE6B,SAAS,EAAE,SAAS;MACpBuV,WAAW,EAAE,EAAE;;MAEfrX,MAAM,EAAE,IAAI;MACZoX,WAAW,EAAE,KAAK;MAClBlS,IAAI,EAAE;QACJnD,MAAM,EAAE,MAAM;QACdoM,IAAI,EAAE,mDAAmD;QACzDzL,OAAO,EACL,sEAAsE;QACxEJ,UAAU,EAAE,SAAS;QACrBgV,cAAc,EAAE,EAAE;QAClBrJ,QAAQ,EAAE,CAAC;QACX7N,QAAQ,EAAE;OACX;MACDD,EAAE,EAAE;QACF4B,MAAM,EAAE,MAAM;QACdoM,IAAI,EAAE,qCAAqC;QAC3CzL,OAAO,EAAE,IAAI;QACbJ,UAAU,EAAE,SAAS;QACrB2L,QAAQ,EAAE,CAAC;QACXqJ,cAAc,EAAE,EAAE;QAClBlX,QAAQ,EAAE;OACX;MACDwH,UAAU,EAAE,UAAU;MACtB2P,mBAAmB,EAAE,IAAI;MACzBC,kBAAkB,EAAE,IAAI;MACxBC,kBAAkB,EAAE,IAAI;MACxBC,QAAQ,EAAE,UAAU;MACpBxV,GAAG,EAAE,CACH;QACEmE,IAAI,EAAE,EAAE;QACRwH,KAAK,EAAE;UACLvL,UAAU,EAAE,SAAS;UACrBP,MAAM,EAAE,MAAM;UACdW,OAAO,EAAE;SACV;QACDiV,WAAW,EAAE,oBAAoB;QACjCnU,MAAM,EAAE;OACT,CACF;MACDoU,sBAAsB,EAAE,EAAE;MAC1BC,aAAa,EAAE,aAAa;MAC5BC,MAAM,EAAE,CACN;QACEC,KAAK,EAAE,CACL;UACEA,KAAK,EAAE,CACL;YACEC,UAAU,EAAE,UAAU;YACtBC,QAAQ,EAAE,IAAI;YACdC,OAAO,EAAE;WACV,CACF;UACDhT,IAAI,EAAE,MAAM;UACZiT,QAAQ,EAAE,mDAAmD;UAC7DC,WAAW,EACT,sEAAsE;UACxEC,cAAc,EAAE,SAAS;UACzBlY,EAAE,EAAE,MAAM;UACVmY,MAAM,EAAE,mDAAmD;UAC3DC,SAAS,EACP,sEAAsE;UACxEC,YAAY,EAAE;SACf,EACD;UACET,KAAK,EAAE,CACL;YACEC,UAAU,EAAE,QAAQ;YACpBC,QAAQ,EAAE,IAAI;YACdC,OAAO,EAAE;WACV,CACF;UACDhT,IAAI,EAAE,MAAM;UACZiT,QAAQ,EAAE,mDAAmD;UAC7DC,WAAW,EACT,sEAAsE;UACxEC,cAAc,EAAE,SAAS;UACzBlY,EAAE,EAAE,MAAM;UACVmY,MAAM,EAAE,mDAAmD;UAC3DC,SAAS,EACP,sEAAsE;UACxEC,YAAY,EAAE;SACf,EACD;UACET,KAAK,EAAE,CACL;YACEC,UAAU,EAAE,QAAQ;YACpBC,QAAQ,EAAE,IAAI;YACdC,OAAO,EAAE;WACV,CACF;UACDhT,IAAI,EAAE,MAAM;UACZiT,QAAQ,EAAE,mDAAmD;UAC7DC,WAAW,EACT,sEAAsE;UACxEC,cAAc,EAAE,SAAS;UACzBlY,EAAE,EAAE,MAAM;UACVmY,MAAM,EAAE,mDAAmD;UAC3DC,SAAS,EAAE,IAAI;UACfC,YAAY,EAAE;SACf;OAEJ,CACF;MACDjE,mBAAmB,EAAE,IAAI;MACzBkE,QAAQ,EAAE;QACR/Y,GAAG,EAAE,CAAC;QACNgZ,GAAG,EAAE,EAAE;QACP/Y,GAAG,EAAE;OACN;MACDgZ,qBAAqB,EAAE;KACxB;GAEJ;EACDC,oBAAoB,EAAE,IAAI;EAC1BC,KAAK,EAAE,CACL;IACEC,EAAE,EAAE,CAAC;IACLT,cAAc,EAAE,SAAS;IACzBU,UAAU,EAAE,MAAM;IAClBC,iBAAiB,EACf,sEAAsE;IACxEC,YAAY,EAAE,CAAC;IACf1B,mBAAmB,EAAE,IAAI;IACzBC,kBAAkB,EAAE,IAAI;IACxBC,kBAAkB,EAAE,IAAI;IACxByB,gBAAgB,EAAE,iDAAiD;IACnEC,kBAAkB,EAAE,iDAAiD;IACrEX,YAAY,EAAE,SAAS;IACvBnB,WAAW,EAAE,EAAE;IACfD,WAAW,EAAE,EAAE;IACfe,QAAQ,EAAE,mDAAmD;IAC7DiB,QAAQ,EAAE,MAAM;IAChBC,eAAe,EAAE,IAAI;IACrBC,UAAU,EAAE,CAAC;IACbhB,MAAM,EAAE,qCAAqC;IAC7CiB,oBAAoB,EAAE,aAAa;IACnCzX,SAAS,EAAE,SAAS;IACpB0X,iCAAiC,EAAE,UAAU;IAC7C5Y,YAAY,EAAE,UAAU;IACxB4V,MAAM,EAAE,QAAQ;IAChBiD,aAAa,EAAE,IAAI;IACnBC,qBAAqB,EACnB,kEAAkE;IACpEhM,WAAW,EAAE,CACX;MACEiM,GAAG,EAAE,sGAAsG;MAC3GC,WAAW,EAAE;KACd,CACF;IACDC,iBAAiB,EAAE;MACjB7P,IAAI,EAAE8P,wBAAe,CAACC,MAAM;MAC5BC,iBAAiB,EAAE,6CAA6C;MAChEvM,UAAU,EAAE,SAAS;MACrB+F,IAAI,EAAE;QACJyG,OAAO,EAAE,WAAW;QACpBC,cAAc,EAAE,MAAM;QACtBC,QAAQ,EAAE,KAAK;QACfC,IAAI,EAAE,CACJ;UACEC,MAAM,EAAE,oBAAoB;UAC5BrQ,IAAI,EAAE,mCAAmC;UACzCsQ,KAAK,EAAE;YACLC,MAAM,EAAE,6CAA6C;YACrDzC,MAAM,EAAE,CACN;cACE0C,OAAO,EAAE,KAAK;cACdC,eAAe,EACb;aACH,EACD;cACED,OAAO,EAAE,GAAG;cACZC,eAAe,EACb;aACH,EACD;cACED,OAAO,EAAE,GAAG;cACZC,eAAe,EAAE;aAClB,CACF;YACDC,QAAQ,EAAE;cACRC,KAAK,EACH,sEAAsE;cACxEnX,MAAM,EAAE;aACT;YACDoX,oBAAoB,EAAE;;SAEzB,CACF;QACDC,SAAS,EAAE,CACT;UACEC,QAAQ,EAAE,4CAA4C;UACtDR,KAAK,EAAE,CACL,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAC1D,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAC3D,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAC3D,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAC7D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAC1D,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC5D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE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,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAC7D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAC1D,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC5D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAC7D,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAA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"}