{"version":3,"file":"static/chunks/6049-d6ec2d6f0f191a47.js","mappings":"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","sources":["webpack://_N_E/./src/components/Swap/components/SubmitSwapButton/SubmitSwapButton.tsx","webpack://_N_E/./src/components/Swap/components/SwapButton/SwapButton.tsx","webpack://_N_E/./src/components/Swap/components/SwapButton/index.ts","webpack://_N_E/./src/components/Swap/components/TradeRouting/TradeRouting.tsx","webpack://_N_E/./src/components/Swap/components/TradeRouting/index.ts","webpack://_N_E/./src/components/Swap/components/SwapInfo/SwapInfo.tsx","webpack://_N_E/./src/components/Swap/components/SwapInfo/index.ts","webpack://_N_E/./src/components/Swap/hooks.ts","webpack://_N_E/./src/hooks/swap/useSwap.ts","webpack://_N_E/./src/components/Swap/Swap.tsx","webpack://_N_E/./src/components/Swap/index.ts","webpack://_N_E/./src/pages/swap/index.tsx","webpack://_N_E/./src/components/Swap/components/TradeRouting/TradeRouting.module.scss","webpack://_N_E/"],"sourcesContent":["import {\n useAddress,\n useNetworkMismatch,\n TransactionError\n} from '@thirdweb-dev/react';\nimport React, { FC } from 'react';\n\nimport { CustomConnectWalletButton } from '@app/components/CustomConnectWalletButton';\nimport { ExternalLink } from '@app/components/ExternalLink';\nimport { SubmitButton } from '@app/components/SubmitButton';\nimport { showErrorToast, showSuccessToast } from '@app/components/Toast';\nimport { useTokenApprove } from '@app/hooks/liquidity/useTokenApprove';\nimport { Token } from '@app/types/token';\nimport { config } from '@app/config';\nimport { NATIVE_TOKEN_ADDRESS } from '@thirdweb-dev/sdk';\n\ninterface Props {\n isSwapAvailable: boolean;\n swapInProgress: boolean;\n onSubmit: () => void;\n isFromValueEmpty: boolean;\n isBalanceExceeded: boolean | undefined;\n state: {\n from: {\n token: Token | null;\n amount: string;\n };\n to: {\n token: Token | null;\n amount: string;\n };\n };\n}\n\nexport const SubmitSwapButton: FC = ({\n state,\n isSwapAvailable,\n swapInProgress,\n onSubmit,\n isFromValueEmpty,\n isBalanceExceeded\n}) => {\n const isMismatchedNetwork = useNetworkMismatch();\n const address = useAddress();\n const isConnected = !!address;\n\n const {\n requiresApproval: requiresApprovalFromToken,\n approve: approveFrom,\n isApproveInProgress: isApproveFromInProgress,\n getAllowance: getAllowanceFrom\n } = useTokenApprove(state.from);\n\n const isEthWethPair =\n (state.from.token?.contractAddress == config.contracts.weth ||\n state.from.token?.contractAddress === NATIVE_TOKEN_ADDRESS) &&\n (state.to.token?.contractAddress == config.contracts.weth ||\n state.to.token?.contractAddress === NATIVE_TOKEN_ADDRESS);\n\n if (!isConnected) {\n return ;\n }\n\n if (isMismatchedNetwork) {\n return null;\n }\n\n if (requiresApprovalFromToken && !isBalanceExceeded && !isEthWethPair) {\n return (\n {\n try {\n const res = await approveFrom();\n\n if (!(res instanceof TransactionError)) {\n await getAllowanceFrom();\n\n const txHash = res?.receipt?.transactionHash;\n\n showSuccessToast(\n `Successfully approved ${state.from.token?.symbol}`,\n \n );\n }\n } catch (e) {\n if (e instanceof TransactionError) {\n showErrorToast(e.reason);\n } else {\n showErrorToast(`Error approving ${state.from.token?.symbol}`);\n }\n }\n }}\n label={`Approve ${state.from.token?.symbol}`}\n />\n );\n }\n\n function getSubmitLabel() {\n if (isBalanceExceeded) {\n return 'Insufficient funds';\n }\n\n if (isFromValueEmpty) {\n return 'Enter token amount to swap';\n }\n\n return 'Swap';\n }\n\n if (!isMismatchedNetwork) {\n const _disabled =\n !isConnected || !isSwapAvailable || isBalanceExceeded || isFromValueEmpty;\n\n return (\n \n );\n }\n\n return null;\n};\n","import { ArrowUpDownIcon } from '@chakra-ui/icons';\nimport { Box, IconButton } from '@chakra-ui/react';\nimport React, { FC } from 'react';\nimport { Icon } from '@app/components/Icon';\n\ninterface Props {\n onClick: () => void;\n}\n\nexport const SwapButton: FC = ({ onClick }) => {\n return (\n \n \n \n \n \n );\n};\n","export * from './SwapButton';\n","import { InfoOutlineIcon } from '@chakra-ui/icons';\nimport { Box, Grid, HStack, IconButton, Text, VStack } from '@chakra-ui/react';\nimport CryptoIcons from 'base64-cryptocurrency-icons';\nimport clsx from 'clsx';\nimport React, { FC } from 'react';\n\nimport { Icon } from '@app/components/Icon';\nimport { TokenIcon } from '@app/components/TokenIcon';\nimport { getCurrentTrade } from '@app/hooks/swap/useTokensRate';\nimport { Token as KToken } from '@app/types/token';\nimport { USTrade } from '@app/types/trade';\n\nimport s from './TradeRouting.module.scss';\n\ninterface Props {\n from: { token: KToken; amount: string };\n to: { token: KToken; amount: string };\n data: USTrade[] | undefined;\n setSelectedTrade: (trade: USTrade) => void;\n selectedTrade: USTrade | undefined;\n}\n\nexport const TradeRouting: FC = ({\n data,\n // setSelectedTrade,\n from,\n to,\n selectedTrade\n}) => {\n if (!data || !data.length) {\n return null;\n }\n\n function renderDivider() {\n return (\n \n );\n }\n\n const currentTrade = getCurrentTrade(selectedTrade, data);\n\n return (\n \n \n \n Route\n \n \n \n 1\n })}\n >\n \n \n \n {currentTrade && (\n setSelectedTrade(currentTrade)}\n className={clsx(s.trade, {\n [s.selected]: selectedTrade && selectedTrade === currentTrade\n })}\n >\n {currentTrade.route.path\n .filter((token, i) => {\n return i !== 0 && i !== currentTrade.route.path.length - 1;\n })\n .map(token => {\n return (\n \n {renderDivider()}\n \n \n \n \n );\n })}\n {renderDivider()}\n \n )}\n \n 1\n })}\n >\n \n \n \n \n );\n};\n","export * from './TradeRouting';\n","import {\n ChevronDownIcon,\n ChevronUpIcon,\n InfoOutlineIcon\n} from '@chakra-ui/icons';\nimport {\n Box,\n HStack,\n IconButton,\n Skeleton,\n Spinner,\n Text,\n Tooltip\n} from '@chakra-ui/react';\nimport React, { FC, ReactNode } from 'react';\nimport { useToggle } from 'react-use';\n\nimport { TradeRouting } from '@app/components/Swap/components/TradeRouting';\nimport { toOptionalFixed } from '@app/helpers/format';\nimport { getCurrentTrade } from '@app/hooks/swap/useTokensRate';\nimport { Token } from '@app/types/token';\nimport { USTrade } from '@app/types/trade';\n\nimport s from './SwapInfo.module.scss';\nimport { useSwapSettings } from '@app/hooks/swap/useSwapSettings';\nimport { TokensPrice } from '@app/components/Swap/components/TokensPrice';\n\ninterface Props {\n pairAddress: string | null;\n rate: string | undefined;\n isSwapAvailable: boolean;\n isSwapAvailabilityLoading: boolean;\n isLoadingSwapOut: boolean;\n swapOut: string | undefined;\n showInfo?: boolean;\n state: {\n from: {\n token: Token;\n amount: string;\n };\n to: {\n token: Token;\n amount: string;\n };\n selectedTrade: USTrade | undefined;\n };\n trades: USTrade[] | undefined;\n setSelectedTrade: (trade: USTrade) => void;\n}\n\nexport const SwapInfo: FC = ({\n rate,\n isLoadingSwapOut,\n state,\n swapOut,\n showInfo,\n trades,\n setSelectedTrade\n}) => {\n const [isOpen, toggleOpen] = useToggle(true);\n\n const { settings } = useSwapSettings();\n const currentTrade = getCurrentTrade(state.selectedTrade, trades);\n const priceImpact = currentTrade?.priceImpact.toFixed();\n\n function renderInfoRow(\n label: string,\n value: string | number | undefined,\n loading?: boolean,\n tooltip?: ReactNode\n ) {\n return (\n \n {label}\n {loading ? (\n \n ) : tooltip ? (\n {tooltip}}\n placement=\"right\"\n portalProps={{ appendToParentPortal: true }}\n zIndex={1000}\n >\n {value}\n \n ) : (\n {value}\n )}\n \n );\n }\n\n if (isLoadingSwapOut) {\n return (\n \n \n Processing...\n \n \n \n );\n }\n\n if (+state.from.amount > 0 && rate) {\n return (\n \n \n \n \n 1 {state.from.token.symbol} = {Number(rate)}{' '}\n {state.to.token.symbol}\n \n \n \n \n {isOpen && (\n \n {renderInfoRow(\n 'Price impact',\n `${priceImpact ? `${toOptionalFixed(+priceImpact, 2)}%` : 'n/a'}`,\n false,\n
The impact on market price
\n )}\n {renderInfoRow(\n 'Max slippage',\n `${settings?.slippage}%`,\n false,\n <>\n
\n Receive at least {swapOut} {state.to.token.symbol}\n
\n
\n This is the minimum amount you are guaranteed to receive.\n Otherwise the transaction will be reverted.\n
\n \n )}\n {renderInfoRow(\n 'Fees',\n `0.01%`,\n false,\n <>\n
\n CORE Network\n $0.001\n
\n
\n Token Pair Fee\n $0.001\n
\n
\n [PLACEHOLDER] Some additional text to elaborate on how fees\n are calculated.\n
\n \n )}\n\n \n
\n )}\n
\n );\n }\n\n return null;\n};\n","export * from './SwapInfo';\n","import { useCallback, useMemo, useState } from 'react';\n\nimport { useSwapAvailablity } from '@app/hooks/swap/useSwapAvailablity';\nimport { useTokensRate } from '@app/hooks/swap/useTokensRate';\nimport { useTrade } from '@app/hooks/swap/useTrade';\nimport { Token } from '@app/types/token';\nimport { USTrade } from '@app/types/trade';\n\nexport function useSwapTokens(initialTokensData: { from: Token; to: Token }) {\n const [state, setState] = useState<{\n from: {\n token: Token;\n amount: string;\n };\n to: {\n token: Token;\n amount: string;\n };\n selectedTrade: USTrade | undefined;\n }>({\n from: {\n token: initialTokensData.from,\n amount: ''\n },\n to: {\n token: initialTokensData.to,\n amount: ''\n },\n selectedTrade: undefined\n });\n\n const { trades, refetch: refetchTrades } = useTrade(state.from, state.to);\n\n const resetStateValues = useCallback(() => {\n setState(prev => ({\n ...prev,\n from: {\n ...prev.from,\n amount: ''\n },\n to: {\n ...prev.to,\n amount: ''\n }\n }));\n\n refetchTrades();\n }, [refetchTrades]);\n\n const handleFromTokenChange = useCallback((val: string) => {\n setState(prev => ({\n ...prev,\n from: {\n ...prev.from,\n amount: val\n }\n }));\n }, []);\n\n const handleFromTokenSelect = useCallback((token: Token) => {\n setState(prev => ({\n ...prev,\n from: {\n ...prev.from,\n token\n },\n to:\n token.contractAddress === prev.to.token.contractAddress\n ? { ...prev.from }\n : { ...prev.to }\n }));\n }, []);\n\n const handleToTokenSelect = useCallback((token: Token) => {\n setState(prev => ({\n ...prev,\n to: {\n ...prev.to,\n token\n },\n from:\n token.contractAddress === prev.from.token.contractAddress\n ? { ...prev.to, amount: prev.from.amount }\n : { ...prev.from }\n }));\n }, []);\n\n const handleFlip = useCallback(() => {\n setState(prev => ({\n ...prev,\n from: { ...prev.to, amount: prev.from.amount },\n to: { ...prev.from, amount: '' }\n }));\n }, []);\n\n const setSelectedTrade = useCallback((val: USTrade | undefined) => {\n setState(prev => ({\n ...prev,\n selectedTrade: val\n }));\n }, []);\n\n const {\n isSwapAvailable,\n isLoading: isSwapAvailabilityLoading,\n pairAddress\n } = useSwapAvailablity(state.from.token, state.to.token, trades);\n\n const { swapOut, rate, isLoading, fetchRates } = useTokensRate(\n state.from.token,\n state.to.token,\n state.from.amount,\n isSwapAvailable,\n trades,\n state.selectedTrade\n );\n\n return {\n trades,\n state,\n setState,\n handleFromTokenChange,\n handleFromTokenSelect,\n handleToTokenSelect,\n handleFlip,\n swapOut,\n isLoadingSwapOut: isLoading,\n rate,\n isSwapAvailable,\n isSwapAvailabilityLoading,\n fetchRates,\n resetStateValues,\n pairAddress,\n setSelectedTrade\n };\n}\n","import {\n useAddress,\n useContract,\n useTransferToken,\n useSDK\n} from '@thirdweb-dev/react';\nimport { NATIVE_TOKEN_ADDRESS } from '@thirdweb-dev/sdk';\nimport { Percent } from '@uniswap/sdk-core';\nimport { Router } from '@uniswap/v2-sdk';\nimport { useAsyncFn } from 'react-use';\n\nimport { config } from '@app/config';\nimport { decToFrac, numberToBigNumberFixed } from '@app/helpers/format';\nimport { getSwapSettings } from '@app/hooks/swap/useSwapSettings';\nimport { Token } from '@app/types/token';\nimport { ModeEnvs } from '@app/constants/chains';\nimport { USTrade } from '@app/types/trade';\nimport { BigNumberish } from 'ethers';\n\ntype SwapItem = {\n token: Token;\n amount: string;\n};\n\nexport function useSwap(\n from: SwapItem,\n to: SwapItem,\n swapOut: string | undefined,\n selectedTrade: USTrade | undefined\n) {\n const address = useAddress();\n const { contract } = useContract(config.contracts.router);\n const { contract: wethContract } = useContract(config.contracts.weth);\n\n const sdk = useSDK();\n\n const { mutate: transferTokens } = useTransferToken(contract);\n\n const [{ loading, error }, swapTokens] = useAsyncFn(async () => {\n if (!from.amount || !to || !contract || !address || !wethContract) {\n return undefined;\n }\n\n const settings = await getSwapSettings();\n\n if (\n // ETH -> WETH\n from.token.contractAddress === NATIVE_TOKEN_ADDRESS &&\n to.token.contractAddress === config.contracts.weth\n ) {\n switch (config.modeEnv) {\n case ModeEnvs.MAINNET: {\n return sdk?.wallet.transfer(config.contracts.weth, +from.amount);\n }\n case ModeEnvs.TESTNET:\n default: {\n return wethContract.call('deposit', [], {\n value: numberToBigNumberFixed(+from.amount, from.token.decimals)\n });\n }\n }\n } else if (\n // WETH -> ETH\n from.token.contractAddress === config.contracts.weth &&\n to.token.contractAddress === NATIVE_TOKEN_ADDRESS\n ) {\n return wethContract.call('withdraw', [\n numberToBigNumberFixed(+from.amount, from.token.decimals)\n ]);\n } else if (selectedTrade) {\n const _slippage = decToFrac(settings.slippage);\n\n const swapParams = Router.swapCallParameters(selectedTrade, {\n allowedSlippage: new Percent(_slippage[0], _slippage[1]),\n ttl: settings.deadline * 60,\n recipient: address,\n feeOnTransfer: true\n });\n\n const args = [\n ...swapParams.args.slice(0, swapParams.args.length - 1),\n address,\n swapParams.args.pop()\n ];\n\n return contract.call(swapParams.methodName, args, {\n value: swapParams.value\n });\n }\n }, [contract, from, to, swapOut, wethContract, selectedTrade]);\n\n return {\n swapTokens,\n loading,\n error\n };\n}\n","import { Box, ChakraProps, VStack, HStack, Text } from '@chakra-ui/react';\nimport { TransactionError } from '@thirdweb-dev/react';\nimport React, { FC, useState } from 'react';\n\nimport { ExternalLink } from '@app/components/ExternalLink';\nimport { NetworkMismatchButton } from '@app/components/NetworkMismatchButton';\nimport { HeaderControls } from '@app/components/Swap/components/HeaderControls';\nimport { SubmitSwapButton } from '@app/components/Swap/components/SubmitSwapButton/SubmitSwapButton';\nimport { SwapButton } from '@app/components/Swap/components/SwapButton';\nimport { SwapInfo } from '@app/components/Swap/components/SwapInfo';\nimport { TokenInput } from '@app/components/Swap/components/TokenInput';\nimport { useSwapTokens } from '@app/components/Swap/hooks';\nimport { showErrorToast, showSuccessToast } from '@app/components/Toast';\nimport { TransactionResultModal } from '@app/components/TransactionResultModal';\nimport { useSwap } from '@app/hooks/swap/useSwap';\nimport { useTokenBalance } from '@app/hooks/swap/useTokenBalance';\nimport { getCurrentTrade } from '@app/hooks/swap/useTokensRate';\nimport { Token } from '@app/types/token';\n\nimport s from './Swap.module.scss';\n\ninterface Props extends ChakraProps {\n initialTokensData: {\n from: Token;\n to: Token;\n };\n}\n\nexport const Swap: FC = ({ initialTokensData, ...rest }) => {\n const [feedback, setFeedback] = useState<{\n status: 'success' | 'error';\n title: string;\n message: string;\n txHash?: string;\n } | null>(null);\n const {\n state,\n handleFromTokenChange,\n handleFromTokenSelect,\n handleToTokenSelect,\n handleFlip,\n swapOut,\n isLoadingSwapOut,\n rate,\n isSwapAvailable,\n isSwapAvailabilityLoading,\n fetchRates,\n resetStateValues,\n pairAddress,\n setSelectedTrade,\n trades\n } = useSwapTokens(initialTokensData);\n\n const { swapTokens, loading: swapInProgress } = useSwap(\n state.from,\n state.to,\n swapOut,\n getCurrentTrade(state.selectedTrade, trades)\n );\n\n const { data: fromTokenBalance } = useTokenBalance(\n state.from.token?.contractAddress ?? ''\n );\n\n const isBalanceExceeded =\n fromTokenBalance && +fromTokenBalance.displayValue < +state.from.amount;\n\n return (\n \n \n \n Swap\n \n \n\n \n \n \n \n \n\n {+state.from.amount > 0 && rate && (\n \n \n \n )}\n\n \n \n {\n try {\n const res = await swapTokens();\n\n if (res['reason'] !== undefined) {\n showErrorToast(res.reason);\n } else if (res instanceof Error) {\n showErrorToast(res.message);\n } else {\n resetStateValues();\n\n const txHash = res?.receipt?.transactionHash;\n\n showSuccessToast(\n `Successfully swaped ${state.from.token?.symbol} to ${state.to.token?.symbol}`,\n \n );\n\n setFeedback({\n status: 'success',\n title: 'Transaction Confirmed',\n message: 'Your transaction has been successfully completed',\n txHash\n });\n }\n } catch (e) {\n if (e instanceof TransactionError) {\n showErrorToast(e.reason);\n } else {\n showErrorToast(\n `Error swap ${state.from.token?.symbol} to ${state.to.token?.symbol}`\n );\n }\n\n setFeedback({\n status: 'error',\n title: 'Transaction Error',\n message:\n 'There was an error processing your transaction. Please check the details and try again'\n });\n }\n }}\n isFromValueEmpty={\n !state.from.amount || Number(state.from.amount) === 0\n }\n />\n \n\n {/**/}\n setFeedback(null)}\n />\n \n \n );\n};\n","export * from './Swap';\n","import { Spinner, Center, Box, Flex } from '@chakra-ui/react';\nimport { NextPage } from 'next';\nimport React, { useMemo } from 'react';\n\nimport MainLayout from '@app/components/MainLayout';\nimport { Swap } from '@app/components/Swap';\nimport { config } from '@app/config';\nimport { TOKENS_WHITELIST } from '@app/constants/tokensWhitelist';\nimport { getWhitelistedCoinIcon } from '@app/hooks/swap/helpers';\nimport { APP_NAME } from '@app/constants/common';\n\n// @ts-ignore\nexport const SwapPage: NextPage = () => {\n const initialTokensData = useMemo(() => {\n const from = TOKENS_WHITELIST.find(\n t => t.contractAddress === config.defaultTokens.from\n )!;\n\n const to = TOKENS_WHITELIST.find(\n t => t.contractAddress === config.defaultTokens.to\n )!;\n\n return {\n from: {\n ...from,\n logoUri: getWhitelistedCoinIcon(from)\n },\n to: {\n ...to,\n logoUri: getWhitelistedCoinIcon(to)\n }\n };\n }, []);\n\n return (\n \n {initialTokensData ? (\n \n ) : (\n \n
\n \n
\n \n )}\n
\n );\n};\n\nexport default SwapPage;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"fromIcon\":\"TradeRouting_fromIcon__pxPzm\",\"toIcon\":\"TradeRouting_toIcon__N568t\",\"divider\":\"TradeRouting_divider__tvuB1\",\"trade\":\"TradeRouting_trade__EPstC\",\"selected\":\"TradeRouting_selected__9fzLi\"};"],"names":["SubmitSwapButton","state","isSwapAvailable","swapInProgress","onSubmit","isFromValueEmpty","isBalanceExceeded","param","isMismatchedNetwork","useNetworkMismatch","address","useAddress","isConnected","requiresApproval","requiresApprovalFromToken","approve","approveFrom","isApproveInProgress","isApproveFromInProgress","getAllowance","getAllowanceFrom","useTokenApprove","from","isEthWethPair","token","contractAddress","config","contracts","weth","NATIVE_TOKEN_ADDRESS","to","jsx_runtime","jsx","SubmitButton","disabled","isLoading","loadingText","onClick","label","res","TransactionError","txHash","receipt","transactionHash","showSuccessToast","concat","symbol","ExternalLink","e","showErrorToast","reason","CustomConnectWalletButton","SwapButton","Box","position","IconButton","aria-label","color","_hover","Icon","name","TradeRouting","data","selectedTrade","length","renderDivider","className","s","sx","display","alignItems","justifyContent","flex","borderBottom","borderColor","currentTrade","getCurrentTrade","jsxs","bg","width","mt","HStack","Text","fontWeight","fontSize","Grid","gridTemplateColumns","VStack","height","clsx","TokenIcon","iconUrl","logoUri","gap","minHeight","route","path","filter","i","map","CryptoIcons","React","padding","borderRadius","background","icon","undefined","SwapInfo","rate","isLoadingSwapOut","swapOut","showInfo","trades","setSelectedTrade","isOpen","toggleOpen","useToggle","settings","useSwapSettings","priceImpact","toFixed","renderInfoRow","value","loading","tooltip","mb","Skeleton","startColor","endColor","Tooltip","div","placement","portalProps","appendToParentPortal","zIndex","p","w","justify","Spinner","amount","Number","TokensPrice","tokenAddress","borderTop","toOptionalFixed","slippage","Fragment","span","Swap","initialTokensData","rest","feedback","setFeedback","useState","handleFromTokenChange","handleFromTokenSelect","handleToTokenSelect","handleFlip","isSwapAvailabilityLoading","fetchRates","resetStateValues","pairAddress","useSwapTokens","setState","refetch","refetchTrades","useTrade","useCallback","prev","val","useSwapAvailablity","useTokensRate","swapTokens","useSwap","contract","useContract","router","wethContract","sdk","useSDK","mutate","transferTokens","useTransferToken","error","useAsyncFn","getSwapSettings","modeEnv","ModeEnvs","MAINNET","wallet","transfer","TESTNET","call","numberToBigNumberFixed","decimals","_slippage","decToFrac","swapParams","Router","swapCallParameters","allowedSlippage","Percent","ttl","deadline","recipient","feeOnTransfer","args","slice","pop","methodName","fromTokenBalance","useTokenBalance","displayValue","maxWidth","mx","boxShadow","HeaderControls","TokenInput","showMax","source","values","onChange","onTokenSelect","readOnlyValue","NetworkMismatchButton","Error","message","status","title","TransactionResultModal","onClose","SwapPage","useMemo","TOKENS_WHITELIST","find","t","defaultTokens","getWhitelistedCoinIcon","MainLayout","metadata","APP_NAME","Flex","h","Center","swap","module","exports"],"sourceRoot":""}