{"version":3,"sources":["state/wallet/hooks.ts","components/Button/index.tsx","state/earn/actions.ts","components/Modal/index.tsx","components/Loader/index.tsx","webpack:///./src/assets/images/close.svg?f464","theme/base.ts","state/transactions/hooks.tsx","hooks/tokens/tokenLists.ts","components/transaction/styleds.tsx","hooks/useDebounce.ts","state/lists/hooks.ts","constants/abis/erc20.ts","components/Text/index.tsx","webpack:///./src/assets/images/exchange.svg?efcd","webpack:///./src/assets/images/approvingArrow.svg?fff7","webpack:///./src/assets/images/approvingArrowLinear.svg?8957","webpack:///./src/assets/images/check.svg?da1a","components/Icons/index.tsx","components/Title/index.tsx","utils/retry.ts","constants/integration/integrationCodes.ts","utils/getLocationParsedQuery.ts","assets/svg/icon--20-envelope.svg","constants/index.ts","utils/getShownWallets.ts","assets/svg/icon--20-tm.svg","assets/svg/icon--20-tw.svg","assets/svg/icon--20-socicon.svg","assets/svg/discord.svg","webpack:///./src/assets/images/close-metis.svg?f92b","hooks/useENSName.ts","components/Copy/Copy.tsx","hooks/useCopyClipboard.ts","hooks/index.ts","assets/images/ethereum-bg.png","assets/images/iotex-bg.png","assets/images/clock.gif","assets/images/walletConnectIcon.svg","assets/images/BalloonImgFriend.png","assets/images/BalloonImgBg.svg","assets/images/BalloonImgBgSm.svg","hooks/useInterval.ts","state/user/hooks.tsx","components/BlockHeader/index.tsx","components/ExpandablePanel/styleds.tsx","components/ExpandablePanel/index.tsx","components/transaction/TransactionErrorContent/index.tsx","utils/isZero.ts","connectors/InjectedFakeHardwareConnector.ts","assets/svg/logo--mobile.svg","webpack:///./src/assets/images/dropdown.svg?db78","hooks/useIntegrationQueryParam.ts","hooks/useLocationParsedQueryString.ts","webpack:///./src/assets/images/warning.svg?46c1","utils/cookie.ts","services/api/http/notifications/notifications.service.ts","state/notifications/actions.ts","assets/svg/logo-white.svg","assets/svg/icon--20-cm.svg","assets/svg/icon--20-coingecko.svg","assets/svg/icon--20-bscscan.svg","assets/svg/icon--20-fd.svg","assets/svg/icon--20-world.svg","components/ShareSocial/index.tsx","services/notifications/push/firebase/pushNotifications.service.ts","services/notifications/push/firebase/config.ts","hooks/usePushNotifications.ts","services/api/http/notifications/notifications.types.ts","state/notifications/reducer.ts","components/BalloonModal/styleds.tsx","components/BalloonModal/index.tsx","constants/routes/routes.ts","components/Shared/Common.tsx","components/Shared/GlobalStyle.ts","components/Shared/Type.tsx","state/financial/actions.ts","hooks/Tokens.types.ts","utils/index.ts","state/application/hooks.ts","state/multicall/hooks.ts","connectors/NetworkConnector.ts","connectors/index.ts","utils/convertToNumberArray.ts","assets/images lazy /^/.//.*$/ groupOptions: {} namespace object","i18n.ts","state/application/reducer.ts","state/global/actions.ts","state/user/reducer.ts","state/burn/actions.ts","state/transactions/reducer.ts","state/swap/reducer.ts","state/trade/reducer.ts","constants/lists.ts","state/lists/actions.ts","state/lists/reducer.ts","state/burn/reducer.ts","state/multicall/reducer.ts","state/earn/reducer.ts","state/stake/reducer.ts","state/financial/reducer.ts","state/index.ts","hooks/useIsWindowVisible.ts","state/application/updater.ts","utils/contenthashToUri.ts","utils/parseENSAddress.ts","utils/uriToHttp.ts","utils/getTokenList.ts","utils/resolveENSContentHash.ts","state/lists/updater.ts","hooks/useFetchListCallback.ts","state/multicall/updater.tsx","utils/chunkArray.ts","state/transactions/updater.tsx","utils/getLibrary.ts","theme/light.ts","theme/dark.ts","theme/matic.ts","theme/heco.ts","theme/ethereum.ts","theme/avalanche.ts","theme/iotex.ts","theme/metis.ts","theme/index.tsx","components/analytics/GoogleAnalyticsReporter.tsx","assets/svg/networks/bnb.svg","assets/svg/networks/polygon.svg","assets/svg/networks/heco.svg","assets/svg/networks/ethereum.svg","assets/svg/networks/avalanche.svg","assets/svg/networks/iotex.svg","assets/svg/networks/solana.svg","assets/svg/logo-dark.svg","hooks/useOnClickOutside.tsx","utils/networkRedirect.ts","components/Header/styleds.tsx","hooks/useRouterGuards.ts","assets/svg/menu.svg","webpack:///./src/assets/svg/logo--mobile.svg?2655","components/Header/SideMenu.tsx","hooks/useToggle.ts","hooks/usePrevious.ts","hooks/useWalletDetector.ts","components/AccountDetails/Transaction.tsx","components/Identicon/index.tsx","components/AccountDetails/index.tsx","components/DynamicImage/index.tsx","hooks/useDynamicLoadImage.ts","components/WalletModal/Option.tsx","components/WalletModal/PendingView.tsx","components/ErrorModalContent/styleds.tsx","components/ErrorModalContent/index.tsx","components/WalletModal/index.tsx","components/Web3Status/index.tsx","components/Header/Nav.tsx","components/ChainWalletModal/index.tsx","components/Header/index.tsx","hooks/useChangeChain.ts","utils/listVersionLabel.ts","components/Popups/ListUpdatePopup.tsx","assets/svg/msg-info.svg","components/Popups/TransactionPopup.tsx","assets/svg/msg-success.svg","assets/svg/msg-warning.svg","assets/svg/msg-error.svg","components/Popups/MessagePopup.tsx","components/Popups/PopupItem.tsx","components/Popups/index.tsx","assets/svg/coingecko.svg","components/TitleBar/index.tsx","components/Web3ReactManager/index.tsx","components/TransactionErrorModal/index.tsx","components/ErrorFallback/styleds.tsx","components/ErrorFallback/index.tsx","pages/App.tsx","components/analytics/TikTokPixel/core.ts","components/analytics/TikTokPixel/loaderTikTokPixel.ts","components/analytics/TikTokPixel/index.ts","index.tsx","components/Row/index.tsx","state/multicall/actions.ts","state/swap/actions.ts","state/application/actions.ts","state/trade/actions.ts","state/user/actions.ts","hooks/tokens/Tokens.ts","components/Column/index.tsx","state/transactions/actions.ts","constants/query/index.ts","constants/multicall/index.ts","constants/v1/index.ts","hooks/useContract.ts","theme/colors.ts","state/stake/actions.ts"],"names":["useETHBalances","uncheckedAddresses","multicallContract","useMulticallContract","addresses","useMemo","map","isAddress","filter","a","sort","results","useSingleContractMultipleData","address","reduce","memo","i","value","result","CurrencyAmount","ether","JSBI","BigInt","toString","getDefaultToken","chainId","weth","WETH","id","getId","WrappedTokenInfo","name","symbol","decimals","lendable","native","proxies","useTokenBalancesProxiesWithLoadingIndicator","tokens","lendToken","defaultToken","lendableToken","currency","allTokens","useAllTokens","Currency","getBaseCurrency","Object","values","t","find","tkn","useCurrencyToken","validatedTokens","tokensWithInfo","lendableTokens","tokenInfo","tradableProxies","keys","length","validatedTokenAddresses","token","getTokenAddress","balances","useMultipleContractSingleData","ERC20_INTERFACE","anyLoading","some","callState","loading","tokenAddress","amount","undefined","TokenAmount","useTokenBalances","useTokenBalancesWithLoadingIndicator","useTokenBalancesProxies","useTokenBalance","account","tokenBalances","useCurrencyBalances","currencies","useCurrencyBalancesProxies","Token","ethBalance","useAllTokenBalancesProxies","useActiveWeb3React","toFlatArray","Base","styled","RebassButton","padding","width","borderRadius","theme","typography","fontFamily","primary","mode","colors","buttonText","black","primary4","css","ButtonPrimary","secondary1","altDisabledStyle","ButtonLight","primary1","ButtonSecondary","bg3","text2","disabled","darken","bg2","primary5","primaryText1","ButtonGreen","ButtonBorderBlack","bg1","text1","InlineButton","advancedBG","button","ButtonConfirmedStyle","lighten","white","ButtonErrorStyle","ButtonApproving","ButtonConfirmed","confirmed","pending","rest","ButtonError","error","DepositStatus","EarnDirection","setToken","createAction","setDirection","setProperties","typeInput","clear","AnimatedDialogOverlay","animated","DialogOverlay","StyledDialogOverlay","modalBG","DialogContentWrapper","div","paddingBottom","mediaWidth","upToSmall","AnimatedDialogContent","DialogContent","StyledDialogContent","minHeight","maxHeight","mobile","isOpen","maxWidth","height","balloon","attrs","bg0","Modal","onDismiss","initialFocusRef","children","fadeTransition","useTransition","config","duration","from","opacity","enter","leave","item","key","props","style","isMobile","tabIndex","LoaderStyle","size","margin","Loader","src","Clock","alt","_path","_excluded","_extends","assign","target","arguments","source","prototype","hasOwnProperty","call","apply","this","_objectWithoutProperties","excluded","sourceKeys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","SvgClose","_ref","svgRef","title","titleId","viewBox","fill","xmlns","ref","d","ForwardRef","MEDIA_WIDTHS","upToExtraSmall","upToMedium","upToLarge","aboveExtraSmall","aboveSmall","aboveMedium","aboveLarge","mediaWidthTemplates","accumulator","b","c","includes","dark","blue","green","grey1","grey2","light","orange","red","background","image","grids","sm","md","lg","flexColumnNoWrap","flexRowNoWrap","secondary","shape","l","m","s","paddings","globalBodyTop","useTransactionAdder","dispatch","useDispatch","useCallback","response","summary","approval","hash","Error","addTransaction","useAllTransactions","state","useSelector","transactions","isTransactionRecent","tx","Date","getTime","addedTime","useHasPendingApproval","spender","allTransactions","receipt","useHasApproval","useAllValueTokens","TradeToken","getAllValueTokens","useAllTradeTokens","nativeToken","reserveAddress","reserve","ZERO_ADDRESS","proxyAddresses","isNative","isLendable","isBase","Boolean","isReserve","lendableAddress","pairs","entries","forEach","proxyHost","pairInfo","pair","proxy","join","isProxy","tradableAddress","proxyAddress","pairName","shorting","shortable","stableToken","stable","isShort","stableAddress","shortAddress","getAllTradeTokens","useAllRewardTokens","staking","straight","isStaking","getRewardableTokens","useAllEarnbaleTokens","getEarnableTokens","useAllStakableTokens","base","lp","hostSymbol","hostAddress","getStakableTokens","useAllTradableTokens","getTradableTokens","useAllShortableTokens","lendables","shortingPairs","push","shortingInfo","getShortableTokens","Wrapper","Section","AutoColumn","BottomSection","Title","Message","StyledLogo","img","CustomLightSpinner","Spinner","WraperClose","useDebounce","delay","useState","debouncedValue","setDebouncedValue","useEffect","handler","setTimeout","clearTimeout","tags","getAddress","logoURI","proxyName","nameToProxy","EMPTY_LIST","ChainId","ETHEREUM","ROPSTEN","MAINNET","MATIC","HECO","BSCTESTNET","LOCALNET","AVALANCE","FUJI","IOTEX","ANDROMEDA","STARDUST","listCache","WeakMap","listToTokenMap","list","get","tokenMap","BASE_TOKEN_SYMBOL","ETHER_MAP","proxyNames","acc","proxyToken","toLowerCase","proxyAdr","nameToHosts","createTokens","tagId","x","console","log","set","useSelectedListUrl","lists","selectedListUrl","useSelectedTokenList","url","byUrl","current","useTokenList","Interface","ERC20_ABI","ERC20_BYTES32_ABI","TextWrapper","Text","color","TextBase","fontWeight","TextBaseLg","TextBaseMetisLg","TextBaseXl","wrapText","TextBaseH3","TextBaseWithoutChanges","_path2","SvgExchange","_circle","_rect","_rect2","_rect3","_rect4","_rect5","_rect6","_rect7","_rect8","_rect9","_rect10","_rect11","SvgApprovingArrow","cx","cy","r","stroke","strokeWidth","y","transform","SvgApprovingArrowLinear","fillRule","clipRule","SvgCheck","BaseIconStyle","ExchangeStyle","Exchange","ApprovingArrowStyle","CheckStyle","Check","WarningStyle","Warning","IconClose","useContext","ThemeContext","CloseIcon","CloseLinearIcon","Close","IconExchange","IconApprovingArrow","ArrowImage","ApprovingArrowLinear","ApprovingArrow","IconCheck","IconWarning","titleCommonStyles","titleMetisStyles","titleProStyles","titleStyles","heading","h1","h2","h3","h4","h5","as","H","waitRandom","min","max","ms","Math","round","random","Promise","resolve","CancelledError","RetryableError","retry","fn","rejectCancelled","n","minWait","maxWait","completed","promise","reject","cancel","INTEGRATION_CODE","getLocationParsedQuery","search","window","location","parse","parseArrays","ignoreQueryPrefix","_path3","_path4","SvgIcon20Envelope","SUPPORTED_WALLET_NAMES","ROUTER_ADDRESS","SIGNER_API_URLS","TREASURER_ADDRESS","dict","GOVERNANCE_ADDRESS","REFERRAL_PROGRAM","WOW_PAIRS","long","input","output","short","findConfig","chain","cfg","jsonConfig","DAI","USDC","USDT","AMPL","BUSD","WETH_ONLY","BASES_TO_CHECK_TRADES_AGAINST","BASES_TO_TRACK_LIQUIDITY_FOR","SHOWN_WALLETS","mapQueryToName","urlQueries","walletsQuery","LIST_OF_WALLETS_QUERY","walletsQueryArr","walletsQueryflatArr","flat","flatMap","walletQueryCode","getShownWallets","LIST_OF_WALLETS","METAMASK","COIN98","MATH_WALLET","TRUST_WALLET","WALLETCONNECT","SUPPORTED_INSTALL_WALLETS","header","link","SUPPORTED_WALLETS","INJECTED","iconName","description","href","METAMASK_FAKE_HARDWARE","METAMASK_MOBILE_DEEP_LINK","mobileOnly","connectorLocalStorageKey","NetworkContextName","INITIAL_ALLOWED_SLIPPAGE","DEFAULT_DEADLINE_FROM_NOW","ONE_BIPS","Percent","BIPS_BASE","ALLOWED_PRICE_IMPACT_LOW","ALLOWED_PRICE_IMPACT_MEDIUM","ALLOWED_PRICE_IMPACT_HIGH","PRICE_IMPACT_WITHOUT_FEE_CONFIRM_MIN","BLOCKED_PRICE_IMPACT_NON_EXPERT","MIN_ETH","exponentiate","MIN_AMOUNT_FOR_SWAP","BNB","ETH","HT","NETWORK_PARAMS","chainName","nativeCurrency","stableCoin","rpcUrls","blockExplorerUrls","SvgIcon20Tm","SvgIcon20Tw","SvgIcon20Socicon","SvgDiscord","SvgCloseMetis","useENSName","debouncedAddress","ensNodeArgument","namehash","substr","registrarContract","useENSRegistrarContract","resolverAddress","useSingleCallResult","resolverAddressResult","resolverContract","useENSResolverContract","isZero","changed","ENSName","CopyIcon","LinkStyledButton","text3","TransactionStatusText","span","CopyHelper","timeout","isCopied","setIsCopied","staticCopy","text","didCopy","copy","hide","useCopyClipboard","setCopied","useTranslation","onClick","toCopy","context","useWeb3ReactCore","contextNetwork","active","cleanConnectorLocalStorage","localStorage","removeItem","useEagerConnect","activate","tried","setTried","connectorId","getItem","connector","connectorsByWallets","isAuthorized","then","catch","useInactiveListener","suppress","ethereum","removeAllListeners","on","handleChainChanged","handleAccountsChanged","accounts","removeListener","useChainLabel","useChainTradeWith","useInterval","callback","leading","savedCallback","useRef","tick","setInterval","clearInterval","deserializeToken","serializedToken","useExpertModeManager","expertMode","user","userExpertMode","toggleSetExpertMode","updateUserExpertMode","useUserSlippageTolerance","userSlippageTolerance","setUserSlippageTolerance","updateUserSlippageTolerance","useUserDeadline","userDeadline","setUserDeadline","updateUserDeadline","useUserAddedTokens","serializedTokensMap","BlockHeaderStyle","marginBottom","BlockHeader","ExpandablePanelComponent","Label","Content","ExpandablePanel","label","useCollapse","isExpanded","getToggleProps","getCollapseProps","fontSize","TransactionErrorContent","message","isEpandable","expandableContent","RowTitle","RowCenter","RowBetween","marginTop","gap","justify","Button","hexNumberString","test","InjectedFakeHardwareConnector","InjectedConnector","SvgDropdown","useIntegrationQueryParam","queryParams","useLocationParsedQueryString","inIframe","top","self","integrationWith","integration","toUpperCase","isMetisIntegration","METIS","SvgWarning","getCookie","cookies","document","cookie","split","cookiePair","trim","decodeURIComponent","BASE_NOTIFICATION_URL","process","NOTIFICATION_URLS","buildUrl","path","params","URL","URLSearchParams","HTTP","fetch","headers","Accept","data","method","body","JSON","stringify","wallet","fetchUserNotifications","createAsyncThunk","NotificationsHttpService","json","setChainIdsNotifications","chainIds","updateUserNotifications","setProfitNotifications","profitValues","setHealthNotifications","positionHealthValues","enableLiquidationNotifications","liquidationEnabled","setAPYNotifications","apyValues","enanbleTelegramNotifications","telegramEnabled","enanblePushBrowserNotifications","pushEnabled","enanbleEmailNotifications","emailEnabled","resubscribeEmailNotifications","emails","email","redirectUrl","allSettled","unsubscribeNotifications","type","subscribeEmailNotifications","subcribePushNotifications","subscribePushNotifications","unsubcribePushNotifications","_g","_defs","SvgIcon20Cm","clipPath","_path5","SvgIcon20Coingecko","SvgIcon20Bscscan","SvgIcon20Fd","_path6","_path7","_path8","_path9","_path10","_path11","_path12","_path13","_path14","_path15","_path16","SvgIcon20World","StyledCoinMarketIconIcon","CoinMarketIcon","StyledCoingeckoIcon","CoinGeckoIcon","StyledEnvelopeIcon","EnvelopeIcon","StyledTmIcon","TmIcon","StyledTwIcon","TwIcon","StyledSociconIcon","SociconIcon","StyledBscscanIcon","BscscanIcon","StyledFbIcon","FbIcon","StyledWorldIcon","WorldIcon","StyledDiscordIcon","Discord","ShareSocialBody","embed","ShareSocialTitle","ShareSocialList","ul","ShareSocialItem","li","ShareSocialLink","ShareSocial","ShareSocialDonations","initializeApp","apiKey","authDomain","projectId","storageBucket","messagingSenderId","appId","FirebasPushNotificationsService","isSupported","messaging","getMessaging","getToken","vapidKey","currentToken","err","deleteToken","onMessage","payload","notificationOptions","icon","Notification","useFirebasePushNotifications","setIsSupported","isSupport","getNotificationToken","deleteNotificationToken","onNotificationListener","useListenerFirebasePushNotifications","convertToString","arr","initialState","userStatus","profitStatus","liquidationStatus","apyStatus","telegramStatus","pushStatus","emailStatus","setLoading","setError","setUser","rawUser","buildUser","notificationsSlice","createSlice","reducers","clearNotificationsError","clearNotificationsState","newState","getInitialState","extraReducers","builder","addCase","fulfilled","action","rejected","BalloonContent","BalloonCloseIcon","BalloonMsg","BalloonImgBg","BalloonImgBgSm","BalloonTitle","BalloonText","BalloonImgFriendStyle","BalloonModal","onToggle","renderHeader","renderContent","BalloonImgFriend","WOWSWAP_ROUTE","LANDING","TRADE","SWAP","EARN","PRO","ALERTS","PORTFOLIO","REWARD_ACCOUNT","LIQUIDATION","GOVERNANCE_MENU","GOVERNANCE_YOUR_WALLET","GOVERNANCE_PROPOSALS","GOVERNANCE_PROPOSALS_ITEM","GOVERNANCE_FINANCIAL_MODEL","GOVERNANCE_ECONOMIC_MODEL","GOVERNANCE_DONATIONS","GOVERNANCE_STATS","CloseBaseIcon","warning","backgroundColor","text4","IconCloseLinear","Icon","StyledInternalLink","Link","StyledLink","ExternalLink","rel","handleClick","event","ctrlKey","metaKey","ReactGA","outboundLink","debug","preventDefault","rotate","keyframes","FixedGlobalStyle","createGlobalStyle","ThemedGlobalStyle","TYPE","baseGray","main","largeHeader","mediumHeader","subHeader","darkGray","italic","fontStyle","boldMetis","secondMetis","GOVERNANCE_REWARD","DEVELOPMENT","INSURANCE","CHARITY","BUY_AND_BURN","paramList","TRADER_PROFIT_FEE","POOL_UTILIZATION_ALLOWANCE","BASE_BORROW_RATE","OPTIMAL_SLOPE","EXCESS_SLOPE","OPTIMAL_UTILIZATION","LIQUIDATION_MARGIN","LIQUIDATION_REWARD","MAX_LEVERAGE_FACTOR","MAX_RATE_MULTIPLIER","MIN_WOW_BALANCE_X4","MIN_WOW_BALANCE_X5","TREASURE_FACTOR","MAX_LIQUIDATION_REWARD","MAX_PRICE_THRESHOLD","REFERRAL_BONUS_1","REFERRAL_BONUS_2","REFERRAL_BONUS_3","setUnloaded","setInited","setSingleParam","setInitSingleParam","info","balance","staked","proxyInfo","stakableInfo","lendableInfo","shortableInfo","ETHERSCAN_PREFIXES","getEtherscanLink","prefix","shortenAddress","chars","parsed","substring","calculateGasMargin","mul","BigNumber","add","basisPointsToPercent","num","getContract","ABI","library","AddressZero","Contract","getSigner","connectUnchecked","getProviderOrSigner","getRouterContract","ROUTER_ABI","getReserveContract","RESERVE_ABI","getReserveFactoryContract","RESERVE_FACTORY_ABI","getReferralContract","REFERRAL_ABI","escapeRegExp","string","replace","defined","something","useBlockNumber","application","blockNumber","useBlockTimestamp","timestamp","useWalletModalOpen","walletModalOpen","useWalletModalToggle","toggleWalletModal","useSettingsMenuOpen","settingsMenuOpen","useToggleSettingsMenu","toggleSettingsMenu","useChainWalletModalOpen","chainWalletModalOpen","useChainWalletModalToggle","toggleChainWalletModal","useAddPopup","content","addPopup","useRemovePopup","removePopup","useActivePopups","popupList","show","isMethodArg","isValidMethodArgs","Array","isArray","every","xi","INVALID_RESULT","valid","NEVER_RELOAD","blocksPerFetch","Infinity","useCallsData","calls","options","callResults","multicall","serializedCallKeys","toCallKey","callKeys","parseCallKey","addMulticallListeners","removeMulticallListeners","INVALID_CALL_STATE","syncing","LOADING_CALL_STATE","toCallState","callResult","contractInterface","fragment","latestBlockNumber","Buffer","readInt8","success","encoded","decodeFunctionResult","contract","methodName","callInputs","interface","getFunction","inputs","callData","encodeFunctionData","RequestError","code","MiniRpcProvider","batchWaitTimeMs","isMetaMask","host","nextId","batchTimeoutId","batch","clearBatch","accept","request","ok","status","statusText","byKey","sendAsync","jsonrpc","pathname","NetworkConnector","urls","defaultChainId","invariant","supportedChainIds","k","Number","providers","currentChainId","provider","AbstractConnector","networkUrlFromQuery","DEFAULT_NETWORK_URL_QUERY","NETWORK_URL","chainIdFromQuery","DEFAULT_CHAIN_ID_QUERY","NETWORK_CHAIN_ID","parseInt","RPC_URLS_BY_NETWORKS","rpcUrl","networkLibrary","network","getNetworkLibrary","Web3Provider","supportedChainIdsFromQuery","convertToIntArray","DEFAULT_SUPPORTED_CHAINS_QUERY","SUPPORTED_CHAIN_IDS","injected","injectedFakeHardware","walletconnect","WalletConnectConnector","rpc","bridge","qrcode","webpackAsyncContext","req","__webpack_require__","o","e","ids","all","slice","module","exports","i18next","use","XHR","LanguageDetector","initReactI18next","init","backend","loadPath","react","useSuspense","fallbackLng","preload","keySeparator","interpolation","escapeValue","createReducer","updateBlockNumber","removeAfterMs","popup","concat","nanoid","p","updateVersion","currentTimestamp","pairKey","token0Address","token1Address","Field","audioPlay","lastUpdateVersionTimestamp","addSerializedToken","removeSerializedToken","addSerializedPair","serializedPair","token0","token1","removeSerializedPair","tokenAAddress","tokenBAddress","now","txs","clearAllTransactions","checkedTransaction","lastCheckedBlockNumber","finalizeTransaction","confirmedTime","independentField","INPUT","typedValue","currencyId","currencyName","OUTPUT","replaceSwapState","selectCurrency","field","switchCurrencies","debtPayable","protocolFee","profit","setRecipient","recipient","setLeverage","leverage","showError","leverageAllow","setLeverageAllow","setDebtInfo","setOpenPositionInfo","rememberUserTokens","isShortTrade","shortIO","longIO","amountOut","borrowAmount","borrowRate","liquidationCost","maxBorrow","isMaxPosition","isActiveLimitOrders","stopLoss","takeProfit","setClosePositionInfo","setIsShortTrade","resetUserState","setMaxPositionAmount","setIsActiveLimitOrders","setStopLoss","setTakeProfit","resetSwapState","setInitialTokens","longAddresses","DEFAULT_TOKEN_LIST_URL","DEFAULT_LIST_OF_LISTS","fetchTokenList","acceptListUpdate","addList","removeList","selectList","NEW_LIST_STATE","loadingRequestId","pendingUpdate","lastInitializedDefaultListOfLists","listUrl","DEFAULT_LIST","requestId","tokenList","getVersionUpgrade","version","VersionUpgrade","NONE","errorMessage","lastInitializedSet","Set","newListOfListsSet","has","LIQUIDITY_PERCENT","listeners","callListeners","callKey","fetchingMulticallResults","fetchingBlockNumber","errorFetchingMulticallResults","updateMulticallResults","direction","Deposit","deposit","Withdraw","unstakeTokenAddress","period","StakeDirection","STAKE","setLockTime","locktime","setUnstakeToken","setTypeInput","resetStakeState","loaded","newValue","userValue","voted","votedValue","isLoadingNewAccount","PERSISTED_KEYS","store","configureStore","reducer","swap","burn","earn","trade","stake","financial","notifications","middleware","getDefaultMiddleware","thunk","save","states","preloadedState","load","VISIBILITY_STATE_SUPPORTED","isWindowVisible","visibilityState","useIsWindowVisible","focused","setFocused","listener","addEventListener","removeEventListener","Updater","windowVisible","setState","blockNumberCallback","getBlock","block","getBlockNumber","debouncedState","UTF_8_DECODER","TextDecoder","contenthashToUri","contenthash","buff","hex","startsWith","Uint8Array","hexToUint8Array","codec","getCodec","rmPrefix","cid","CID","toB58String","multihash","decode","digest","ENS_NAME_REGEX","parseENSAddress","ensAddress","match","ensName","ensPath","uriToHttp","uri","tokenListValidator","Ajv","allErrors","compile","schema","getTokenList","resolveENSContentHash","defaultTokenJson","parsedENS","contentHashUri","translatedUri","isLast","validationErrors","errors","dataPath","REGISTRAR_ABI","constant","outputs","payable","stateMutability","REGISTRAR_ADDRESS","RESOLVER_ABI","internalType","ensRegistrarContract","resolver","setId","fetchList","ensResolver","useFetchListCallback","fetchAllListsCallback","bump","PATCH","MINOR","minVersionBump","listUpdate","oldList","newList","auto","MAJOR","chunk","minBlockNumber","aggregate","obj","resultsBlockNumber","returnData","toNumber","debouncedListeners","cancellations","listeningKeys","allListeners","keyListeners","previousMin","activeListeningKeys","unserializedOutdatedCallKeys","minDataBlockNumber","outdatedListeningKeys","serializedOutdatedCallKeys","outdatedCallKeys","chunkedCalls","items","maxChunkSize","numChunks","ceil","chunkSize","ix","chunkArray","index","fetchChunk","fetchBlockNumber","firstCallKeyIndex","curr","lastCallKeyIndex","mempty","lastBlockNumber","blocksSinceCheck","minutesPending","shouldCheck","getTransactionReceipt","blockHash","contractAddress","to","transactionHash","transactionIndex","txn","getLibrary","pollingInterval","shadow1","fg0","fg1","fg2","fg3","bg4","fg4","bg5","fg5","bg6","fg6","pageTitelBG","primary6","EthereumBackgroung","IotexBackground","rose","lightBlack","lightBlack2","switch","selectedText","selectedTab","hoverBorderTab","hoverTab","maxBtnBG","sliderThumbBG","btn","border","hover","bg","portfolioItem","oddBg","up","down","middle","walletItem","switchLable","WebFont","google","families","GoogleAnalyticsReporter","pageview","SvgBnb","SvgPolygon","SvgHeco","_g2","_g3","SvgEthereum","SvgAvalanche","_path17","_path18","_path19","_path20","_path21","_path22","_path23","SvgIotex","_circle2","SvgSolana","x1","y1","x2","y2","gradientUnits","stopColor","offset","useOnClickOutside","node","handlerRef","handleClickOutside","contains","networkRedirectConfig","SOLANA","redirectByNetworkIfNeeded","networkName","currentUrl","origin","HeaderFrame","MobileHeaderElementWrap","AccountElement","NetworkWrapper","NetworkContainer","NetworkCurrent","bgColor","HiddenNetworkCurrent","NetworkCurrentLabel","NetworkCurrentLabelIcon","NetworkSelect","NetworkSelectHeader","NetworkSelectTitle","NetworkCard","NetworkCardIcon","NetworkCardName","IconMobile","HeaderControls","BalanceText","ExpandBtn","RowFixed","CloseBtn","StyledNavLinkFactory","activeClassName","NavLink","useRouterGuards","isCanOpenPortfolio","isCanOpenGov","isCanOpenReferral","isCanPro","isDesktop","innerWidth","SvgMenu","SvgLogoMobile","StyledMenuIcon","MenuIcon","StyledSideMenuInsideIcon","LogowMobile","Nav","StyledSideMenuButton","StyledSideMenu","SideMenuFlyout","section","open","SideMenuItem","DesktopSideMenuItem","MobileSideMenuItem","SideMenu","toggle","useToggle","usePrevious","useIsCoin98Wallet","isCoin98","useIsMathWallet","isMathWallet","useIsMetaMaskWallet","isCoin98Enabled","isMathWalletEnabled","TransactionWrapper","TransactionState","IconWrapper","Transaction","Row","StyledIdenticonContainer","Identicon","innerHTML","appendChild","Jazzicon","UpperSection","InfoCard","AccountGroupingRow","AccountSection","YourAccount","LowerSection","LowerSectionText","AccountControl","AddressLink","WalletAction","TransactionListWrapper","LinkIconWraper","renderTransactions","AccountDetails","pendingTransactions","confirmedTransactions","openOptions","walletName","isMetaMaskEnabled","useGetWalletName","getStatusIcon","WalletConnectIcon","clearAllTransactionsCallback","close","Copy","marginLeft","hasENS","isENS","mb","justifyContent","lineHeight","DynamicImage","imageName","setImage","default","useDynamicLoadImage","OptionCard","OptionCardLeft","OptionCardClickable","clickable","GreenCircle","CircleWrapper","Header","SubHeader","Option","subheader","PendingSection","StyledLoader","LoadingMessage","ErrorGroup","ErrorButton","LoadingWrapper","PendingView","walletKey","setPendingError","tryActivation","isMetamask","option","optionConnector","UpperSectionClose","HeaderRow","HeaderRowJustify","ContentWrapper","ErrorModalContent","Blurb","ExternalLinkOptionModal","OptionGrid","HoverText","WALLET_VIEWS","LEARN_WALLET_LINK","WalletModal","useWeb3React","walletView","setWalletView","pendingWallet","setPendingWallet","pendingWalletKey","setPendingWalletKey","pendingError","previousAccount","activePrevious","connectorPrevious","category","walletConnectProvider","setItem","UnsupportedChainIdError","i18nKey","web3","connect","connectorToConnect","currentHost","installWalletInfo","Web3StatusGeneric","Web3StatusError","Web3StatusConnect","Web3StatusConnected","NetworkIcon","Activity","newTransactionsFirst","Web3StatusInner","hasPendingTransactions","transactionsPending","TagManager","dataLayer","Web3Status","showInnerStatus","sortedRecentTransactions","StyledNav","nav","StyledNavLink","NotMobileLinks","ChainWalletModal","modalOpen","toggleModal","paddingTop","NETWORKS","component","setSuccess","addEthereumChain","networkParams","changeNetwork","switchError","useSwitchChainOnMetamask","userEthBalance","setNetwork","openTrigger","setOpenTrigger","net","LogoDark","LogoWhite","LogoMobile","display","flexGrow","handleNetworkSelect","flexShrink","toSignificant","listVersionLabel","major","minor","patch","ListUpdatePopup","popKey","removeThisPopup","handleAcceptUpdate","diffTokenLists","tokensAdded","added","tokensChanged","tokensRemoved","removed","numTokensChanged","flex","oldListName","oldListVersion","newListVersion","Fragment","count","marginRight","RowNoFlex","AutoRow","TransactionPopup","paddingRight","SvgMsgInfo","SvgMsgSuccess","SvgMsgWarning","SvgMsgError","MESSAGE_ICONS","Info","Success","MessagePopup","StyledClose","X","Popup","Fader","AnimatedFader","PopupItem","popupContent","isMetisMode","faderStyle","useSpring","MobilePopupWrapper","MobilePopupInner","FixedPopupColumn","Popups","activePopups","reverse","SvgCoingecko","TitleBarStyle","TitleBarContainer","TitleBarText","TitleBarShare","TitleBarShareTitle","TitleBarShareList","TitleBarShareItem","TitleBar","TradeWith","MotherSwap","MessageWrapper","Web3ReactManager","networkActive","networkError","activateNetwork","triedEager","showLoader","setShowLoader","TransactionErrorModal","ExpandableStackError","ErrorFallback","resetErrorBoundary","stack","TradePage","lazy","Pro","Alerts","RewardAccount","Earn","Portfolio","Liquidation","GovernanceMenu","GovernanceYourWallet","GovernanceProposals","GovernanceProposalsItem","GovernanceFinancialModel","GovernanceEconomicModel","GovernanceDonations","GovernanceStats","Landing","AppWrapper","HeaderWrapper","BodyWrapper","safeGetAddress","possbileAddress","ethers","utils","HideForIntegration","isIntegration","MetisRoutes","exact","strict","WowswapRoutes","Routes","App","referrerParam","referrer","storedReferrer","fallback","FallbackComponent","onReset","reload","initialize","gtmId","pixelId","ttq","w","TiktokAnalyticsObject","setAndDefer","methods","instance","_i","_u","_t","_o","createElement","async","getElementsByTagName","parentNode","insertBefore","page","Core","Web3ProviderNetwork","createWeb3ReactRoot","autoRefreshOnNetworkChange","GOOGLE_ANALYTICS_ID","customBrowserType","exception","filename","lineno","colno","fatal","TIK_TOK_PIXEL_ID","Updaters","TikTokPixel","THEMES","maticTheme","hecoTheme","ethereumTheme","avalancheTheme","iotexTheme","INTEGRATION_THEMES","metisTheme","ThemeProvider","useLocation","darkTheme","lightTheme","Container","basename","ReactDOM","render","getElementById","Box","align","RowBetweenMetis","RowFixedNowrap","ADDRESS_REGEX","LOWER_HEX_REGEX","pcs","useBalances","containsETH","nativeBalance","raw","owner","nonNativeTokens","useAllShortingTokensWithBalances","shortableTokens","preparedList","useAllTradeTokensWithBalances","allTradeTokens","useTokenHandlers","toRealToken","toRealCurrency","useEarnTokens","allEarnbaleTokens","useEarnTokensWithBalances","allEarnTokens","useStakeTokensWithBalances","allStakeTokens","stakableTokensArray","xWOW","possibleTokens","equals","useStakeTokenContract","adr","responses","res","idx","minted","useGetStaked","tradeToken","BYTES32_REGEX","parseStringOrBytes32","str","bytes32","defaultValue","parseBytes32String","useCurrency","isETH","toLocaleUpperCase","tokenProxyName","tokenContract","useTokenContract","tokenContractBytes32","useBytes32TokenContract","tokenName","tokenNameBytes32","symbolBytes32","useToken","Column","ColumnCenter","MULTICALL_NETWORKS","V1_FACTORY_ADDRESSES","V1_FACTORY_ABI","V1_EXCHANGE_ABI","useContract","withSignerIfPossible","useV1FactoryContract","useTokenPermitContract","ERC20_PERMIT_ABI","XWOW_ABI","useTreasurerContract","TREASURER_ABI","useGovernanceContract","GOVERNANCE_ABI","ENS_ABI","ENS_PUBLIC_RESOLVER_ABI","MULTICALL_ABI","useRouterContract","useReserveFactoryContract","reserveFactory","useReserveAddress","useReserveContractForToken","lendableTokensAdressess","useReferralContract"],"mappings":"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,IAED,2BAA4B,CAC3B,IACA,IAED,yBAA0B,CACzB,IACA,IAED,oBAAqB,CACpB,IACA,IAED,eAAgB,CACf,IACA,IAED,cAAe,CACd,KAED,oBAAqB,CACpB,IACA,IAED,cAAe,CACd,IACA,IAED,aAAc,CACb,IACA,IAED,eAAgB,CACf,IACA,IAED,sBAAuB,CACtB,IACA,IAED,iBAAkB,CACjB,IACA,IAED,oBAAqB,CACpB,IACA,IAED,oBAAqB,CACpB,KAED,sBAAuB,CACtB,IACA,IAED,iBAAkB,CACjB,IACA,IAED,mBAAoB,CACnB,IACA,IAED,aAAc,CACb,IACA,IAED,yBAA0B,CACzB,IACA,IAED,oBAAqB,CACpB,IACA,IAED,uBAAwB,CACvB,IACA,IAED,oBAAqB,CACpB,IACA,IAED,qBAAsB,CACrB,IACA,IAED,kBAAmB,CAClB,IACA,IAED,mBAAoB,CACnB,IACA,IAED,mBAAoB,CACnB,IACA,IAED,4BAA6B,CAC5B,IACA,IAED,wBAAyB,CACxB,IACA,IAED,6BAA8B,CAC7B,IACA,IAED,oBAAqB,CACpB,IACA,IAED,oBAAqB,CACpB,IACA,IAED,oBAAqB,CACpB,IACA,IAED,oBAAqB,CACpB,IACA,IAED,oBAAqB,CACpB,IACA,IAED,8BAA+B,CAC9B,IACA,IAED,oBAAqB,CACpB,IACA,IAED,mBAAoB,CACnB,IACA,IAED,wBAAyB,CACxB,IACA,IAED,mBAAoB,CACnB,IACA,IAED,yBAA0B,CACzB,IACA,IAED,kBAAmB,CAClB,IACA,IAED,0BAA2B,CAC1B,IACA,IAED,uBAAwB,CACvB,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,iBAAkB,CACjB,KAED,aAAc,CACb,IACA,IAED,uBAAwB,CACvB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,yBAA0B,CACzB,IACA,IAED,mBAAoB,CACnB,IACA,IAED,oBAAqB,CACpB,IACA,IAED,aAAc,CACb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","file":"static/js/main.8f2fe0b0.chunk.js","sourcesContent":["import { ChainId, Currency, CurrencyAmount, id, JSBI, Token, TokenAmount, WETH } from '@wowswap-io/wowswap-sdk'\nimport { useMemo } from 'react'\nimport ERC20_INTERFACE from '../../constants/abis/erc20'\nimport { useAllTokens, toFlatArray } from '../../hooks/tokens/Tokens'\nimport { useActiveWeb3React } from '../../hooks'\nimport { useMulticallContract } from '../../hooks/useContract'\nimport { isAddress } from '../../utils'\nimport { useSingleContractMultipleData, useMultipleContractSingleData } from '../multicall/hooks'\nimport { WrappedTokenInfo } from '../lists/hooks'\n\n/**\n * Returns a map of the given addresses to their eventually consistent ETH balances.\n */\nexport function useETHBalances(\n uncheckedAddresses?: (string | undefined)[]\n): { [address: string]: CurrencyAmount | undefined } {\n const multicallContract = useMulticallContract()\n\n const addresses: string[] = useMemo(\n () =>\n uncheckedAddresses\n ? uncheckedAddresses\n .map(isAddress)\n .filter((a): a is string => a !== false)\n .sort()\n : [],\n [uncheckedAddresses]\n )\n\n const results = useSingleContractMultipleData(\n multicallContract,\n 'getEthBalance',\n addresses.map(address => [address])\n )\n\n return useMemo(\n () =>\n addresses.reduce<{ [address: string]: CurrencyAmount }>((memo, address, i) => {\n const value = results?.[i]?.result?.[0]\n if (value) memo[address] = CurrencyAmount.ether(JSBI.BigInt(value.toString()))\n return memo\n }, {}),\n [addresses, results]\n )\n}\n\nexport function getDefaultToken(chainId?: ChainId): WrappedTokenInfo {\n const weth = WETH[chainId || id.getId()]\n return new WrappedTokenInfo(\n {\n name: weth.name!,\n symbol: weth.symbol!,\n address: weth.address,\n chainId: weth.chainId,\n decimals: weth.decimals,\n lendable: true,\n native: true,\n proxies: {}\n },\n []\n )\n}\n\nexport function useCurrencyToken(currency?: Currency): WrappedTokenInfo | undefined {\n const defaultToken = getDefaultToken()\n const allTokens = useAllTokens()\n if (currency?.symbol === Currency.getBaseCurrency().symbol) {\n return defaultToken\n } else if (currency) {\n return Object.values(allTokens)\n .filter((t: Token): t is WrappedTokenInfo => t && 'tokenInfo' in t)\n .find(tkn => tkn.symbol === currency?.symbol)\n } else {\n return undefined\n }\n}\n\n/**\n * Returns a map of token addresses to their eventually consistent token balances for a single account.\n */\nexport function useTokenBalancesWithLoadingIndicator(\n address?: string,\n tokens?: (Token | undefined)[],\n lendable?: Currency\n): [{ [tokenAddress: string]: TokenAmount | undefined }, boolean] {\n return useTokenBalancesProxiesWithLoadingIndicator(address, tokens, lendable)\n}\n\n/**\n * Returns a map of token addresses to their eventually consistent token balances for a single account.\n */\nexport function useTokenBalancesProxiesWithLoadingIndicator(\n address?: string,\n tokens?: (Token | undefined)[],\n lendToken?: Currency\n): [{ [tokenAddress: string]: TokenAmount | undefined }, boolean] {\n const defaultToken = getDefaultToken()\n let lendableToken = useCurrencyToken(lendToken)\n if (!lendableToken) {\n lendableToken = defaultToken\n }\n\n const validatedTokens = useMemo(() => {\n const tokensWithInfo = tokens?.filter((t?: Token): t is WrappedTokenInfo => !!t && 'tokenInfo' in t)\n const lendableTokens = tokensWithInfo?.filter(t => t.tokenInfo.lendable) || []\n const tradableProxies =\n tokensWithInfo?.filter(t => !t.tokenInfo.lendable && Object.keys(t.tokenInfo.proxies).length > 0) || []\n return [...lendableTokens, ...tradableProxies]\n }, [tokens])\n\n const validatedTokenAddresses = useMemo(() => validatedTokens.map(token => token.getTokenAddress), [validatedTokens])\n\n const balances = useMultipleContractSingleData(validatedTokenAddresses, ERC20_INTERFACE, 'balanceOf', [address])\n\n const anyLoading: boolean = useMemo(() => balances.some(callState => callState.loading), [balances])\n\n return [\n useMemo(\n () =>\n address && validatedTokens.length > 0\n ? validatedTokens.reduce<{ [tokenAddress: string]: TokenAmount | undefined }>((memo, token, i) => {\n const tokenAddress = token.getTokenAddress\n const value = balances?.[i]?.result?.[0]\n const amount = value ? JSBI.BigInt(value.toString()) : undefined\n if (amount) {\n memo[tokenAddress] = new TokenAmount(token, amount)\n }\n return memo\n }, {})\n : {},\n [address, validatedTokens, balances]\n ),\n anyLoading\n ]\n}\n\nexport function useTokenBalances(\n address?: string,\n tokens?: (Token | undefined)[],\n lendable?: Currency\n): { [tokenAddress: string]: TokenAmount | undefined } {\n return useTokenBalancesWithLoadingIndicator(address, tokens, lendable)[0]\n}\n\nexport function useTokenBalancesProxies(\n address?: string,\n tokens?: (Token | undefined)[],\n lendToken?: Currency\n): { [tokenAddress: string]: TokenAmount | undefined } {\n return useTokenBalancesProxiesWithLoadingIndicator(address, tokens, lendToken)[0]\n}\n\n// get the balance for a single token/account combo\nexport function useTokenBalance(account?: string, token?: Token, lendable?: Currency): TokenAmount | undefined {\n const tokenBalances = useTokenBalances(account, [token], lendable)\n if (!token) return undefined\n return tokenBalances[token.address]\n}\n\nexport function useCurrencyBalances(\n account?: string,\n currencies?: (Currency | undefined)[],\n lendable?: Currency\n): (CurrencyAmount | undefined)[] {\n return useCurrencyBalancesProxies(account, currencies, lendable)\n}\n\nexport function useCurrencyBalancesProxies(\n account?: string,\n currencies?: (Currency | undefined)[],\n lendable?: Currency\n): (CurrencyAmount | undefined)[] {\n const tokens = useMemo(() => currencies?.filter((currency): currency is Token => currency instanceof Token) ?? [], [\n currencies\n ])\n\n const tokenBalances = useTokenBalancesProxies(account, tokens, lendable)\n const containsETH: boolean = useMemo(\n () => currencies?.some(currency => currency === Currency.getBaseCurrency()) ?? false,\n [currencies]\n )\n const ethBalance = useETHBalances(containsETH ? [account] : [])\n\n return useMemo(\n () =>\n currencies?.map(currency => {\n if (!account || !currency) return undefined\n if (currency instanceof WrappedTokenInfo) return tokenBalances[currency.getTokenAddress]\n if (currency instanceof Token) return tokenBalances[currency.address]\n if (currency === Currency.getBaseCurrency()) return ethBalance[account]\n return undefined\n }) ?? [],\n [account, currencies, ethBalance, tokenBalances]\n )\n}\n\nexport function useCurrencyBalance(\n account?: string,\n currency?: Currency,\n lendable?: Currency\n): CurrencyAmount | undefined {\n return useCurrencyBalanceProxies(account, currency, lendable)\n}\n\nexport function useCurrencyBalanceProxies(\n account?: string,\n currency?: Currency,\n lendable?: Currency\n): CurrencyAmount | undefined {\n return useCurrencyBalancesProxies(account, [currency], lendable)[0]\n}\n\n// mimics useAllBalances\nexport function useAllTokenBalances(lendable?: Currency): { [tokenAddress: string]: TokenAmount | undefined } {\n return useAllTokenBalancesProxies(lendable)\n}\n\nexport function useAllTokenBalancesProxies(lendable?: Currency): { [tokenAddress: string]: TokenAmount | undefined } {\n const { account } = useActiveWeb3React()\n const allTokens = useAllTokens()\n const allTokensArray = useMemo(() => toFlatArray(allTokens), [allTokens])\n const balances = useTokenBalancesProxies(account ?? undefined, allTokensArray, lendable)\n return balances ?? {}\n}\n","import React from 'react'\nimport styled, { css } from 'styled-components'\nimport { darken, lighten } from 'polished'\n\nimport { RowBetween } from '../Row'\nimport { ChevronDown } from 'react-feather'\nimport { Button as RebassButton, ButtonProps } from 'rebass/styled-components'\n\nconst Base = styled(RebassButton)<{\n padding?: string\n width?: string\n borderRadius?: string\n altDisabledStyle?: boolean\n}>`\n padding: ${({ padding }) => (padding ? padding : '0 13px')};\n width: ${({ width }) => (width ? width : '100%')};\n\n text-align: center;\n border-radius: 8px;\n border-radius: ${({ borderRadius }) => borderRadius && borderRadius};\n outline: none;\n\n height: 54px;\n text-decoration: none;\n display: flex;\n justify-content: center;\n flex-wrap: nowrap;\n align-items: center;\n cursor: pointer;\n position: relative;\n z-index: 1;\n\n margin: 0;\n\n font-family: ${({ theme }) => theme.typography.fontFamily.primary};\n font-weight: ${({ theme }) => (theme.mode === 'metis' ? '900' : 'normal')};\n font-size: ${({ theme }) => (theme.mode === 'metis' ? '20px' : '16px')};\n line-height: ${({ theme }) => (theme.mode === 'metis' ? '27px' : '16px')};\n\n color: ${({ theme }) => theme.colors.buttonText};\n border: 3px solid ${({ theme }) => theme.colors.black};\n background-color: ${({ theme }) => theme.colors.primary4};\n\n transition: all 0.4s ease;\n\n &:disabled {\n cursor: auto;\n }\n\n > * {\n user-select: none;\n }\n\n ${({ theme }) =>\n theme.mode === 'dark' &&\n css`\n height: 48px;\n border: none;\n border-radius: 5px;\n `}\n`\n\nexport const ButtonPrimary = styled(Base)`\n color: ${({ theme }) => theme.colors.buttonText};\n background-color: ${({ theme }) => theme.colors.primary4};\n\n &:disabled {\n background-color: ${({ theme }) => theme.colors.secondary1};\n color: ${({ theme, altDisabledStyle }) => (altDisabledStyle ? theme.colors.buttonText : theme.colors.buttonText)};\n cursor: auto;\n box-shadow: none;\n outline: none;\n opacity: ${({ theme, altDisabledStyle }) => (theme.mode === 'metis' ? '0.5' : altDisabledStyle ? '0.7' : '1')};\n }\n`\n\nexport const ButtonLight = styled(Base)`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n margin: 0;\n\n font-family: ${({ theme }) => theme.typography.fontFamily.primary};\n font-weight: ${({ theme }) => (theme.mode === 'metis' ? '900' : 'normal')};\n font-size: ${({ theme }) => (theme.mode === 'metis' ? '20px' : '16px')};\n line-height: ${({ theme }) => (theme.mode === 'metis' ? '27px' : '22px')};\n\n color: ${({ theme }) => theme.colors.buttonText};\n background-color: ${({ theme }) => theme.colors.primary4};\n padding: 14px;\n\n &:focus {\n background-color: ${({ theme }) => theme.colors.primary4};\n }\n &:hover {\n background-color: ${({ theme }) => theme.colors.primary1};\n }\n &:active {\n background-color: ${({ theme }) => theme.colors.primary4};\n }\n :disabled {\n cursor: auto;\n background-color: ${({ theme }) => theme.colors.secondary1};\n box-shadow: none;\n outline: none;\n opacity: ${({ theme }) => (theme.mode === 'metis' ? '0.5' : '1')};\n\n :hover {\n cursor: auto;\n background-color: ${({ theme }) => theme.colors.secondary1};\n box-shadow: none;\n outline: none;\n }\n }\n`\n\nexport const ButtonGray = styled(Base)`\n background-color: ${({ theme }) => theme.colors.bg3};\n color: ${({ theme }) => theme.colors.text2};\n font-size: 14px;\n font-weight: 700;\n &:focus {\n background-color: ${({ theme, disabled }) => !disabled && darken(0.05, theme.colors.bg2)};\n }\n &:hover {\n background-color: ${({ theme, disabled }) => !disabled && darken(0.05, theme.colors.bg2)};\n }\n &:active {\n background-color: ${({ theme, disabled }) => !disabled && darken(0.1, theme.colors.bg2)};\n }\n`\n\nexport const ButtonSecondary = styled(Base)`\n background-color: ${({ theme }) => theme.colors.primary5};\n color: ${({ theme }) => theme.colors.primaryText1};\n font-size: 14px;\n border-radius: 8px;\n padding: ${({ padding }) => (padding ? padding : '10px')};\n\n &:focus {\n background-color: ${({ theme }) => theme.colors.primary4};\n }\n &:hover {\n background-color: ${({ theme }) => theme.colors.primary4};\n }\n &:active {\n background-color: ${({ theme }) => theme.colors.primary4};\n }\n &:disabled {\n background-color: ${({ theme }) => theme.colors.primary5};\n opacity: 50%;\n cursor: auto;\n }\n`\n\nexport const ButtonPink = styled(Base)`\n background-color: ${({ theme }) => theme.colors.primary1};\n color: white;\n\n &:focus {\n background-color: ${({ theme }) => darken(0.05, theme.colors.primary1)};\n }\n &:hover {\n background-color: ${({ theme }) => darken(0.05, theme.colors.primary1)};\n }\n &:active {\n background-color: ${({ theme }) => darken(0.1, theme.colors.primary1)};\n }\n &:disabled {\n background-color: ${({ theme }) => theme.colors.primary1};\n opacity: 50%;\n cursor: auto;\n }\n`\n\nexport const ButtonGreen = styled(Base)`\n background-color: ${({ theme }) => theme.colors.primary5};\n color: white;\n\n &:focus {\n background-color: ${({ theme }) => theme.colors.primary1};\n }\n &:hover {\n background-color: ${({ theme }) => theme.colors.primary1};\n }\n &:active {\n background-color: ${({ theme }) => theme.colors.primary1};\n }\n &:disabled {\n background-color: ${({ theme }) => theme.colors.secondary1};\n opacity: 1;\n cursor: auto;\n }\n`\n\nexport const ButtonBorderBlack = styled(Base)`\n background-color: ${({ theme }) => theme.colors.bg1};\n color: ${({ theme }) => theme.colors.text1};\n border: 3px solid ${({ theme }) => theme.colors.black};\n\n &:focus {\n border: 3px solid ${({ theme }) => theme.colors.primary5};\n }\n &:hover {\n border: 3px solid ${({ theme }) => theme.colors.primary5};\n }\n &:active {\n border: 3px solid ${({ theme }) => theme.colors.primary5};\n }\n &:disabled {\n background-color: ${({ theme }) => theme.colors.secondary1};\n opacity: 1;\n cursor: auto;\n }\n`\n\nexport const ButtonOutlined = styled(Base)`\n border: 2px solid ${({ theme }) => theme.colors.bg2};\n background-color: transparent;\n color: ${({ theme }) => theme.colors.text1};\n\n &:disabled {\n opacity: 50%;\n cursor: auto;\n }\n`\n\nexport const ButtonEmpty = styled(Base)`\n background-color: transparent;\n color: ${({ theme }) => theme.colors.primary1};\n display: flex;\n justify-content: center;\n align-items: center;\n\n &:focus {\n background-color: ${({ theme }) => theme.colors.advancedBG};\n }\n &:hover {\n background-color: ${({ theme }) => theme.colors.advancedBG};\n }\n &:active {\n background-color: ${({ theme }) => theme.colors.advancedBG};\n }\n &:disabled {\n opacity: 50%;\n cursor: auto;\n }\n`\n\nexport const ButtonWhite = styled(Base)`\n border: 2px solid #edeef2;\n background-color: ${({ theme }) => theme.colors.bg1};\n color: black;\n\n &:disabled {\n opacity: 50%;\n cursor: auto;\n }\n`\n\nexport const InlineButton = styled.button`\n background: none;\n border: none;\n padding: 0;\n text-decoration: underline;\n cursor: pointer;\n margin-left: 10px;\n font-weight: normal;\n color: #f3ba2f;\n outline: none;\n`\n\nconst ButtonConfirmedStyle = styled(Base)`\n background-color: ${({ theme }) => lighten(0.5, theme.colors.primary5)};\n color: ${({ theme }) => theme.colors.primary5};\n border: 3px solid ${({ theme }) => theme.colors.white};\n\n &:disabled {\n cursor: auto;\n }\n`\n\nconst ButtonErrorStyle = styled(Base)`\n padding: 14px;\n`\n\nconst ButtonApproving = styled(Base)`\n background-color: ${({ theme }) => theme.colors.primary1};\n\n font-size: 12px;\n line-height: 12px;\n color: ${({ theme }) => theme.colors.black};\n`\n\nexport function ButtonConfirmed({\n confirmed,\n altDisabledStyle,\n pending,\n ...rest\n}: { confirmed?: boolean; altDisabledStyle?: boolean; pending?: boolean } & ButtonProps) {\n if (confirmed) {\n return \n } else if (pending) {\n return \n } else {\n return \n }\n}\n\nexport function ButtonError({ error, ...rest }: { error?: boolean } & ButtonProps) {\n if (error) {\n return \n } else {\n return \n }\n}\n\nexport function ButtonDropdown({ disabled = false, children, ...rest }: { disabled?: boolean } & ButtonProps) {\n return (\n \n \n
{children}
\n \n
\n
\n )\n}\n\nexport function ButtonDropdownLight({ disabled = false, children, ...rest }: { disabled?: boolean } & ButtonProps) {\n return (\n \n \n
{children}
\n \n
\n
\n )\n}\n\nexport function ButtonRadio({ active, ...rest }: { active?: boolean } & ButtonProps) {\n if (!active) {\n return \n } else {\n return \n }\n}\n","import { createAction } from '@reduxjs/toolkit'\n\nexport enum DepositStatus {\n VALID = 'VALID',\n INVALID = 'INVALID',\n APPROVE_REQUIRED = 'APPROVE_REQUIRED'\n}\n\nexport enum EarnDirection {\n Deposit = 'DEPOSIT',\n Withdraw = 'WITHDRAW'\n}\n\nexport interface EarnProperties {\n token?: string\n direction?: EarnDirection\n input: string\n}\n\nexport const setToken = createAction<{ token: string }>('earn/setToken')\nexport const setDirection = createAction<{ deposit: boolean }>('earn/setDirection')\nexport const setProperties = createAction<{ data: EarnProperties }>('earn/setProperties')\nexport const typeInput = createAction<{ amount: string }>('earn/typeInput')\nexport const clear = createAction('earn/clear')\n","import React from 'react'\nimport styled, { css } from 'styled-components'\nimport { animated, useTransition } from 'react-spring'\nimport { DialogOverlay, DialogContent } from '@reach/dialog'\nimport { isMobile } from 'react-device-detect'\nimport '@reach/dialog/styles.css'\n\nconst AnimatedDialogOverlay = animated(DialogOverlay)\n\nconst StyledDialogOverlay = styled(AnimatedDialogOverlay)`\n &[data-reach-dialog-overlay] {\n z-index: 10;\n background-color: transparent;\n overflow: auto;\n\n display: flex;\n align-items: center;\n justify-content: center;\n\n min-height: 100vh;\n\n background: ${({ theme }) => theme.colors.modalBG};\n opacity: 0.4;\n }\n`\nconst DialogContentWrapper = styled.div<{ paddingBottom?: string }>`\n height: 100%;\n padding-bottom: ${({ paddingBottom }) => paddingBottom || '36px'};\n\n ${({ theme }) => theme.mediaWidth.upToSmall`\n\t\tpadding-bottom: 16px;\n\t`}\n`\n\nconst AnimatedDialogContent = animated(DialogContent)\n// destructure to not pass custom props to Dialog DOM element\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst StyledDialogContent = styled(({ minHeight, maxHeight, mobile, isOpen, maxWidth, height, balloon, ...rest }) => (\n \n)).attrs({\n 'aria-label': 'dialog'\n})`\n &[data-reach-dialog-content] {\n\t\tposition: relative;\n margin: 2rem 0;\n border: 4px solid ${({ theme }) => theme.colors.black};\n background-color: ${({ theme }) => theme.colors.bg0};\n padding: 36px;\n\t\tpadding-bottom: 0;\n\n ${({ theme }) => {\n if (theme.mode === 'metis') {\n return `width: 100%;`\n }\n\n return `width: 50vw;`\n }}\n\n ${({ theme }) =>\n theme.mode === 'dark' &&\n `\n border: none;\n box-shadow: 0px 0px 100px rgb(243 186 47 / 50%);\n `}\n\n align-self: center;\n\n\t\tmax-width: ${({ maxWidth }) => maxWidth || '420px'};\t\n\t\t\n overflow: unset;\n\n ${({ minHeight }) =>\n minHeight &&\n css`\n min-height: ${minHeight}vh;\n `}\n\n\t\theight: ${({ height }) => height || ''};\n\n display: flex;\n border-radius: 20px;\n ${({ theme }) => theme.mediaWidth.upToSmall`\n width: 65vw;\n // margin: 0;\n\t\t\talign-self: flex-start;\n\t\t\tpadding: 16px;\n\t\t\tpadding-bottom: 0;\n\t\t\tmargin-left: 12px;\n\t\t\tmargin-right: 12px;\n `}\n ${({ theme, mobile }) => theme.mediaWidth.upToSmall`\n width: 85vw;\n ${mobile &&\n css`\n width: 100vw;\n border-radius: 20px;\n // border-bottom-left-radius: 0;\n // border-bottom-right-radius: 0;\n `}\t\t\t\t\n `}\n\n\t\t${({ balloon }) => {\n if (balloon) {\n return `\n\t\t\t\t\t\twidth: 100%;\n\t\t\t\t\t\tpadding: 0;\n\t\t\t\t\t\tmargin: 0;\n\t\t\t\t\t\t\n\t\t\t\t\t\tbackground: none;\n\t\t\t\t\t\tborder: none;\n\t\t\t\t\t\tborder-radius: 0;\n\t\t\t\t\t`\n } else {\n return ``\n }\n }}\n\n\t\t${({ theme, balloon }) => theme.mediaWidth.upToSmall`\n\t\t\t${balloon &&\n `\n\t\t\t\twidth: 100%;\n\t\t\t\tpadding: 0;\n\t\t\t\tmargin: 142px 22px 0 22px;\n\t\t\t`}\n\t\t`}\n }\n`\n\ninterface ModalProps {\n height?: string\n maxWidth?: string\n isOpen: boolean\n onDismiss: (event?: React.SyntheticEvent) => void\n minHeight?: number | false\n maxHeight?: number\n initialFocusRef?: React.RefObject\n children?: React.ReactNode\n paddingBottom?: string\n balloon?: boolean\n}\n\nexport default function Modal({\n height,\n maxWidth,\n isOpen,\n onDismiss,\n minHeight = false,\n maxHeight = 50,\n initialFocusRef,\n children,\n paddingBottom,\n balloon\n}: ModalProps) {\n const fadeTransition = useTransition(isOpen, null, {\n config: { duration: 200 },\n from: { opacity: 0 },\n enter: { opacity: 1 },\n leave: { opacity: 0 }\n })\n\n return (\n <>\n {fadeTransition.map(\n ({ item, key, props }) =>\n item && (\n \n \n {/* prevents the automatic focusing of inputs on mobile by the reach dialog */}\n {!initialFocusRef && isMobile ?
: null}\n
\n {children}\n
\n \n \n )\n )}\n \n )\n}\n","import React from 'react'\n\nimport styled from 'styled-components'\nimport Clock from '../../assets/images/clock.gif'\n\nconst LoaderStyle = styled.div<{ size: string; margin?: string }>`\n height: ${({ size }) => size};\n width: ${({ size }) => size};\n\n margin: ${({ margin }) => margin} !important;\n\n > img {\n height: ${({ size }) => size};\n width: ${({ size }) => size};\n }\n`\n\nexport default function Loader({ size = '40px', margin = '0' }: { size?: string; margin?: string }) {\n return (\n \n \"Load\"\n \n )\n}\n","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgClose(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4 3H7.4V6.40921H4V3ZM17.6 3H21V6.40921H17.6V3ZM7.4 6.40921H10.8V9.81843H7.4V6.40921ZM14.2 6.40921H17.6V9.81843H14.2V6.40921ZM10.8 9.81843H14.2V13.2276H10.8V9.81843ZM7.4 13.2276H10.8V16.6369H7.4V13.2276ZM14.2 13.2276H17.6V16.6369H14.2V13.2276ZM4 16.6369H7.4V20H4V16.6369ZM17.6 16.6369H21V20H17.6V16.6369Z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgClose);\nexport default __webpack_public_path__ + \"static/media/close.5d43a169.svg\";\nexport { ForwardRef as ReactComponent };","import { black, blue, green, grey1, grey2, light, orange, red, white, dark } from './colors'\nimport { css } from 'styled-components'\n\nconst MEDIA_WIDTHS = {\n upToExtraSmall: 500,\n upToSmall: 600,\n upToMedium: 960,\n upToLarge: 1280,\n aboveExtraSmall: 500,\n aboveSmall: 600,\n aboveMedium: 960,\n aboveLarge: 1280\n}\n\nconst mediaWidthTemplates: { [width in keyof typeof MEDIA_WIDTHS]: typeof css } = Object.keys(MEDIA_WIDTHS).reduce(\n (accumulator, size) => {\n ;(accumulator as any)[size] = (a: any, b: any, c: any) => {\n if (size.includes('upTo'))\n return css`\n @media (max-width: ${(MEDIA_WIDTHS as any)[size]}px) {\n ${css(a, b, c)}\n }\n `\n\n if (size.includes('above'))\n return css`\n @media (min-width: ${(MEDIA_WIDTHS as any)[size]}px) {\n ${css(a, b, c)}\n }\n `\n return css``\n }\n return accumulator\n },\n {}\n) as any\n\nexport default {\n colors: { black, dark, blue, green, grey1, grey2, light, orange, red, white },\n background: {\n image: `#D646B4`\n },\n grids: {\n sm: 8,\n md: 12,\n lg: 24\n },\n mediaWidth: mediaWidthTemplates,\n // css snippets\n flexColumnNoWrap: css`\n display: flex;\n flex-flow: column nowrap;\n `,\n flexRowNoWrap: css`\n display: flex;\n flex-flow: row nowrap;\n `,\n typography: {\n fontFamily: {\n primary: \"'Retro', sans-serif\",\n secondary: \"'Abadi MT Std', sans-serif\"\n }\n },\n shape: {\n borderRadius: {\n l: '42px',\n m: '20px',\n s: '10px'\n }\n },\n\n paddings: {\n globalBodyTop: '50px'\n }\n}\n","import { TransactionResponse } from '@ethersproject/providers'\nimport { useCallback, useMemo } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\n\nimport { useActiveWeb3React } from '../../hooks'\nimport { AppDispatch, AppState } from '../index'\nimport { addTransaction } from './actions'\nimport { TransactionDetails } from './reducer'\n\n// helper that can take a ethers library transaction response and add it to the list of transactions\nexport function useTransactionAdder(): (\n response: TransactionResponse,\n customData?: { summary?: string; approval?: { tokenAddress: string; spender: string } }\n) => void {\n const { chainId, account } = useActiveWeb3React()\n const dispatch = useDispatch()\n\n return useCallback(\n (\n response: TransactionResponse,\n { summary, approval }: { summary?: string; approval?: { tokenAddress: string; spender: string } } = {}\n ) => {\n if (!account) return\n if (!chainId) return\n\n const { hash } = response\n if (!hash) {\n throw Error('No transaction hash found.')\n }\n dispatch(addTransaction({ hash, from: account, chainId, approval, summary }))\n },\n [dispatch, chainId, account]\n )\n}\n\n// returns all the transactions for the current chain\nexport function useAllTransactions(): { [txHash: string]: TransactionDetails } {\n const { chainId } = useActiveWeb3React()\n\n const state = useSelector(state => state.transactions)\n\n return chainId ? state[chainId] ?? {} : {}\n}\n\nexport function useIsTransactionPending(transactionHash?: string): boolean {\n const transactions = useAllTransactions()\n\n if (!transactionHash || !transactions[transactionHash]) return false\n\n return !transactions[transactionHash].receipt\n}\n\n/**\n * Returns whether a transaction happened in the last day (86400 seconds * 1000 milliseconds / second)\n * @param tx to check for recency\n */\nexport function isTransactionRecent(tx: TransactionDetails): boolean {\n return new Date().getTime() - tx.addedTime < 86_400_000\n}\n\n// returns whether a token has a pending approval transaction\nexport function useHasPendingApproval(tokenAddress: string | undefined, spender: string | undefined): boolean {\n const allTransactions = useAllTransactions()\n return useMemo(\n () =>\n typeof tokenAddress === 'string' &&\n typeof spender === 'string' &&\n Object.keys(allTransactions).some(hash => {\n const tx = allTransactions[hash]\n if (!tx) return false\n if (tx.receipt) {\n return false\n } else {\n const approval = tx.approval\n if (!approval) return false\n return approval.spender === spender && approval.tokenAddress === tokenAddress && isTransactionRecent(tx)\n }\n }),\n [allTransactions, spender, tokenAddress]\n )\n}\n\nexport function useHasApproval(tokenAddress: string | undefined, spender: string | undefined): boolean {\n const allTransactions = useAllTransactions()\n return useMemo(\n () =>\n typeof tokenAddress === 'string' &&\n typeof spender === 'string' &&\n Object.keys(allTransactions).some(hash => {\n const tx = allTransactions[hash]\n if (!tx) return false\n\n const approval = tx.approval\n if (!approval) return false\n\n return approval.spender === spender && approval.tokenAddress === tokenAddress && isTransactionRecent(tx)\n }),\n [allTransactions, spender, tokenAddress]\n )\n}\n","import { useMemo } from 'react'\nimport { ZERO_ADDRESS } from '../../constants'\nimport { WrappedTokenInfo } from '../../state/lists/hooks'\nimport { getDefaultToken } from '../../state/wallet/hooks'\nimport { TradeToken } from '../Tokens.types'\nimport { useAllTokens } from './Tokens'\n\nfunction getShortableTokens(allTokens: Record, nativeToken: WrappedTokenInfo) {\n const lendables: TradeToken[] = []\n const shortingPairs = Object.values(allTokens).reduce((map, token) => {\n if (token.tokenInfo.lendable) {\n const reserveAddress =\n token.tokenInfo.reserve && token.tokenInfo.reserve !== ZERO_ADDRESS ? token.tokenInfo.reserve : undefined\n const proxyAddresses = Object.values(token.tokenInfo.proxies)\n\n // Lendable token. Токен с ценностью в сети и имеет цену на бирже.\n // Используется для пополнения резервов (в обмен на Interest bearing токен)\n // или для открытия позициий (long/short)\n lendables.push(\n new TradeToken({\n id: token.tokenInfo.symbol,\n chainId: token.tokenInfo.chainId,\n address: token.address,\n decimals: token.tokenInfo.decimals,\n symbol: token.tokenInfo.symbol,\n name: token.tokenInfo.name,\n isNative: token.address === nativeToken.address,\n isLendable: true,\n reserveAddress,\n isBase: Boolean(proxyAddresses.length > 0),\n proxyAddresses\n })\n )\n }\n\n if (token.tokenInfo.shorting) {\n Object.entries(token.tokenInfo.shorting).forEach(([stableToken, pairInfo]) => {\n const { pair, proxy } = pairInfo\n const stable = allTokens[stableToken]\n if (stable) {\n const id = [token.tokenInfo.symbol, stable.tokenInfo.symbol].join('_')\n\n // Proxy Short token. Владение токеном доказывает наличие открытой short позиции.\n // Когда пользователь открывает шорт BUSD/CAKE он получает именно ProxyLongToken -Cake,\n // который определен в wowswap.json как: CAKE -> shorting -> BUSD -> pair\n map[pair] = new TradeToken({\n id: token.tokenInfo.symbol,\n chainId: token.tokenInfo.chainId,\n address: pair,\n decimals: token.tokenInfo.decimals,\n symbol: token.tokenInfo.symbol,\n name: token.tokenInfo.name,\n isShort: true,\n stableAddress: stableToken,\n shortAddress: token.address,\n proxyAddress: proxy,\n pairName: id\n })\n }\n })\n }\n\n return map\n }, {} as Record)\n\n lendables\n .filter(lendable =>\n Object.values(shortingPairs).some(pair => pair.shortingInfo?.stableAddress === lendable.address)\n )\n .forEach(lendable => (shortingPairs[lendable.address] = lendable))\n\n return shortingPairs\n}\n\nfunction getTradableTokens(allTokens: Record, nativeToken: WrappedTokenInfo) {\n return Object.values(allTokens).reduce((map, token) => {\n if (token.tokenInfo.lendable) {\n const reserveAddress =\n token.tokenInfo.reserve && token.tokenInfo.reserve !== ZERO_ADDRESS ? token.tokenInfo.reserve : undefined\n const proxyAddresses = Object.values(token.tokenInfo.proxies)\n\n // Lendable token. Токен с ценностью в сети и имеет цену на бирже.\n // Используется для пополнения резервов (в обмен на Interest bearing токен)\n // или для открытия позициий (long/short)\n map[token.address] = new TradeToken({\n id: token.tokenInfo.symbol,\n chainId: token.tokenInfo.chainId,\n address: token.address,\n decimals: token.tokenInfo.decimals,\n symbol: token.tokenInfo.symbol,\n name: token.tokenInfo.name,\n isNative: token.address === nativeToken.address,\n isLendable: true,\n reserveAddress,\n isBase: Boolean(proxyAddresses.length > 0),\n proxyAddresses\n })\n }\n\n if (token.tokenInfo.pairs) {\n Object.entries(token.tokenInfo.pairs).forEach(([proxyHost, pairInfo]) => {\n const { pair, proxy } = pairInfo\n const lendable = allTokens[proxyHost]\n if (lendable) {\n const id = [token.tokenInfo.symbol, lendable.tokenInfo.symbol].join('_')\n // Proxy Long token. Владение токеном доказывает наличие открытой позиции.\n // Когда пользователь открывает лонг BUSD/CAKE он получает именно ProxyLongToken prxCake,\n // который определен в wowswap.json как: CAKE -> pairs -> BUSD -> pair\n map[pair] = new TradeToken({\n id: token.tokenInfo.symbol,\n chainId: token.tokenInfo.chainId,\n address: pair,\n decimals: token.tokenInfo.decimals,\n symbol: token.tokenInfo.symbol,\n name: token.tokenInfo.name,\n isProxy: true,\n lendableAddress: proxyHost,\n tradableAddress: token.address,\n proxyAddress: proxy,\n pairName: id\n })\n }\n })\n }\n\n return map\n }, {} as Record)\n}\n\nfunction getStakableTokens(allTokens: Record) {\n return Object.values(allTokens).reduce((map, token) => {\n if (token.tokenInfo.staking) {\n if (token.tokenInfo.staking.base) {\n // Governance token. Он такой единственный и является токеном голосования. Это xWOW\n map[token.address] = new TradeToken({\n id: token.tokenInfo.symbol,\n chainId: token.tokenInfo.chainId,\n address: token.address,\n decimals: token.tokenInfo.decimals,\n symbol: token.tokenInfo.symbol,\n name: token.tokenInfo.name,\n isStaking: true,\n isBase: true\n })\n }\n\n if (token.tokenInfo.staking.straight) {\n // Staking Governance token. Используются для стейкинга и получения токенов голосования.\n // Другими словами это WOW за который мы можем получить xWOW\n map[token.address] = new TradeToken({\n id: token.tokenInfo.symbol,\n chainId: token.tokenInfo.chainId,\n address: token.address,\n decimals: token.tokenInfo.decimals,\n symbol: token.tokenInfo.symbol,\n name: token.tokenInfo.name,\n isStaking: true\n })\n }\n\n if (token.tokenInfo.staking.lp) {\n Object.entries(token.tokenInfo.staking.lp).forEach(([hostSymbol, hostAddress]) => {\n const id = [token.tokenInfo.symbol, hostSymbol].join('_')\n // LP Token for stake. Токены провайдера ликвидности на бирже.\n // Выдаются пользователю когда он пополняет резервы Pancake swap\n // и используются у нас в протоколе для получения xWOW\n map[hostAddress] = new TradeToken({\n id: `${token.tokenInfo.symbol}/${hostSymbol}`,\n address: hostAddress,\n chainId: token.tokenInfo.chainId,\n decimals: token.tokenInfo.decimals,\n symbol: `${token.tokenInfo.symbol}/${hostSymbol}`,\n name: `LP ${token.tokenInfo.symbol} ${hostSymbol}`,\n isStaking: true,\n pairName: id\n })\n })\n }\n }\n\n return map\n }, {} as Record)\n}\n\nfunction getRewardableTokens(allTokens: Record, nativeToken: WrappedTokenInfo) {\n return Object.values(allTokens).reduce((map, token) => {\n if (token.tokenInfo.lendable) {\n const reserveAddress =\n token.tokenInfo.reserve && token.tokenInfo.reserve !== ZERO_ADDRESS ? token.tokenInfo.reserve : undefined\n const proxyAddresses = Object.values(token.tokenInfo.proxies)\n\n // Lendable token. Токен с ценностью в сети и имеет цену на бирже.\n // Используется для пополнения резервов (в обмен на Interest bearing токен)\n // или для открытия позициий (long/short)\n map[token.address] = new TradeToken({\n id: token.tokenInfo.symbol,\n chainId: token.tokenInfo.chainId,\n address: token.address,\n decimals: token.tokenInfo.decimals,\n symbol: token.tokenInfo.symbol,\n name: token.tokenInfo.name,\n isNative: token.address === nativeToken.address,\n isLendable: true,\n reserveAddress,\n isBase: Boolean(proxyAddresses.length > 0),\n proxyAddresses\n })\n }\n\n if (token.tokenInfo.staking) {\n if (token.tokenInfo.staking.straight) {\n // Staking Governance token. Используются для стейкинга и получения токенов голосования.\n // Другими словами это WOW за который мы можем получить xWOW\n map[token.address] = new TradeToken({\n id: token.tokenInfo.symbol,\n chainId: token.tokenInfo.chainId,\n address: token.address,\n decimals: token.tokenInfo.decimals,\n symbol: token.tokenInfo.symbol,\n name: token.tokenInfo.name,\n isStaking: true\n })\n }\n }\n\n return map\n }, {} as Record)\n}\nfunction getEarnableTokens(allTokens: Record) {\n return Object.values(allTokens).reduce((map, token) => {\n if (token.tokenInfo.reserve && token.tokenInfo.reserve !== ZERO_ADDRESS) {\n const reserveAddress = token.tokenInfo.reserve!\n const proxyAddresses = Object.values(token.tokenInfo.proxies)\n const shortable = token.tokenInfo.shortable ? true : undefined\n const isLendable = token.tokenInfo.lendable ? true : undefined\n\n // Lendable token. Токен с ценностью в сети и имеет цену на бирже.\n // Используется для пополнения резервов (в обмен на Interest bearing токен)\n // или для открытия позициий (long/short)\n map[token.address] = new TradeToken({\n id: token.tokenInfo.symbol,\n chainId: token.tokenInfo.chainId,\n address: token.address,\n decimals: token.tokenInfo.decimals,\n symbol: token.tokenInfo.symbol,\n name: token.tokenInfo.name,\n isNative: Boolean(token.tokenInfo.native),\n isLendable: isLendable as any,\n shortable,\n reserveAddress,\n isBase: Boolean(proxyAddresses.length > 0),\n proxyAddresses\n })\n\n if (reserveAddress) {\n // Interest Bearing token. Говорит, что владелец может вывести средства из резерва с накопленным доходом\n map[reserveAddress] = new TradeToken({\n id: token.tokenInfo.symbol,\n chainId: token.tokenInfo.chainId,\n address: reserveAddress,\n decimals: token.tokenInfo.decimals,\n symbol: `ib${token.symbol}`,\n name: `Interest-bearing ${token.name}`,\n isReserve: true,\n lendableAddress: token.address\n })\n }\n }\n\n return map\n }, {} as Record)\n}\n\nfunction getAllTradeTokens(allTokens: Record, nativeToken: WrappedTokenInfo) {\n return Object.values(allTokens).reduce((map, token) => {\n if (token.tokenInfo.lendable) {\n const reserveAddress =\n token.tokenInfo.reserve && token.tokenInfo.reserve !== ZERO_ADDRESS ? token.tokenInfo.reserve : undefined\n const proxyAddresses = Object.values(token.tokenInfo.proxies)\n\n // Lendable token. Токен с ценностью в сети и имеет цену на бирже.\n // Используется для пополнения резервов (в обмен на Interest bearing токен)\n // или для открытия позициий (long/short)\n map[token.address] = new TradeToken({\n id: token.tokenInfo.symbol,\n chainId: token.tokenInfo.chainId,\n address: token.address,\n decimals: token.tokenInfo.decimals,\n symbol: token.tokenInfo.symbol,\n name: token.tokenInfo.name,\n isNative: token.address === nativeToken.address,\n isLendable: true,\n reserveAddress,\n isBase: Boolean(proxyAddresses.length > 0),\n proxyAddresses\n })\n\n if (reserveAddress) {\n // Interest Bearing token. Говорит, что владелец может вывести средства из резерва с накопленным доходом\n map[reserveAddress] = new TradeToken({\n id: token.tokenInfo.symbol,\n chainId: token.tokenInfo.chainId,\n address: reserveAddress,\n decimals: token.tokenInfo.decimals,\n symbol: `ib${token.symbol}`,\n name: `Interest-bearing ${token.name}`,\n isReserve: true,\n lendableAddress: token.address\n })\n }\n }\n\n if (token.tokenInfo.pairs) {\n Object.entries(token.tokenInfo.pairs).forEach(([proxyHost, pairInfo]) => {\n const { pair, proxy } = pairInfo\n const lendable = allTokens[proxyHost]\n if (lendable) {\n const id = [token.tokenInfo.symbol, lendable.tokenInfo.symbol].join('_')\n // Proxy Long token. Владение токеном доказывает наличие открытой позиции.\n // Когда пользователь открывает лонг BUSD/CAKE он получает именно ProxyLongToken prxCake,\n // который определен в wowswap.json как: CAKE -> pairs -> BUSD -> pair\n map[pair] = new TradeToken({\n id: token.tokenInfo.symbol,\n chainId: token.tokenInfo.chainId,\n address: pair,\n decimals: token.tokenInfo.decimals,\n symbol: token.tokenInfo.symbol,\n name: token.tokenInfo.name,\n isProxy: true,\n lendableAddress: proxyHost,\n tradableAddress: token.address,\n proxyAddress: proxy,\n pairName: id\n })\n }\n })\n }\n\n if (token.tokenInfo.shorting) {\n const reserveAddress =\n token.tokenInfo.reserve && token.tokenInfo.reserve !== ZERO_ADDRESS ? token.tokenInfo.reserve : undefined\n\n if (reserveAddress) {\n // Shortable token. Используется для пополнения резервов на странице Earn\n // и предоставления кредитов при открытии Short позиций\n // TODO: если токен определен как lendable и shorting, например, BNB, то остается только запись про шортабл\n map[token.address] = new TradeToken({\n id: token.tokenInfo.symbol,\n chainId: token.tokenInfo.chainId,\n address: token.address,\n decimals: token.tokenInfo.decimals,\n symbol: token.tokenInfo.symbol,\n name: token.tokenInfo.name,\n shortable: true,\n reserveAddress\n })\n\n // Interest Bearing token.\n // Говорит, что владелец может вывести средства из резерва с накопленным доходом\n map[reserveAddress] = new TradeToken({\n id: token.tokenInfo.symbol,\n chainId: token.tokenInfo.chainId,\n address: reserveAddress,\n decimals: token.tokenInfo.decimals,\n symbol: `ib${token.symbol}`,\n name: `Interest-bearing ${token.name}`,\n isReserve: true,\n lendableAddress: token.address\n })\n }\n\n Object.entries(token.tokenInfo.shorting).forEach(([stableToken, pairInfo]) => {\n const { pair, proxy } = pairInfo\n const stable = allTokens[stableToken]\n if (stable) {\n const id = [token.tokenInfo.symbol, stable.tokenInfo.symbol].join('_')\n\n // Proxy Short token. Владение токеном доказывает наличие открытой short позиции.\n // Когда пользователь открывает шорт BUSD/CAKE он получает именно ProxyLongToken -Cake,\n // который определен в wowswap.json как: CAKE -> shorting -> BUSD -> pair\n map[pair] = new TradeToken({\n id: token.tokenInfo.symbol,\n chainId: token.tokenInfo.chainId,\n address: pair,\n decimals: token.tokenInfo.decimals,\n symbol: token.tokenInfo.symbol,\n name: token.tokenInfo.name,\n isShort: true,\n stableAddress: stableToken,\n shortAddress: token.address,\n proxyAddress: proxy,\n pairName: id\n })\n }\n })\n }\n\n return map\n }, {} as Record)\n}\n\nexport function getAllValueTokens(allTokens: Record) {\n return Object.values(allTokens).reduce((map, token) => {\n map[token.address] = new TradeToken({\n id: token.tokenInfo.symbol,\n chainId: token.tokenInfo.chainId,\n address: token.address,\n decimals: token.tokenInfo.decimals,\n symbol: token.tokenInfo.symbol,\n name: token.tokenInfo.name\n })\n\n return map\n }, {} as Record)\n}\n\nexport function useAllValueTokens() {\n const allTokens = useAllTokens() as Record\n\n return useMemo(() => {\n return getAllValueTokens(allTokens)\n }, [allTokens])\n}\n//TODO:(Dimitreee): remove rudiment\nexport function useAllTradeTokens() {\n const allTokens = useAllTokens() as Record\n const nativeToken = getDefaultToken()\n\n return useMemo(() => {\n return getAllTradeTokens(allTokens, nativeToken)\n }, [allTokens, nativeToken])\n}\n\nexport function useAllRewardTokens() {\n const allTokens = useAllTokens() as Record\n const nativeToken = getDefaultToken()\n\n return useMemo(() => {\n return getRewardableTokens(allTokens, nativeToken)\n }, [allTokens, nativeToken])\n}\n\nexport function useAllEarnbaleTokens() {\n const allTokens = useAllTokens() as Record\n\n return useMemo(() => {\n return getEarnableTokens(allTokens)\n }, [allTokens])\n}\n\nexport function useAllStakableTokens() {\n const allTokens = useAllTokens() as Record\n\n return useMemo(() => {\n return getStakableTokens(allTokens)\n }, [allTokens])\n}\n\nexport function useAllTradableTokens() {\n const allTokens = useAllTokens() as Record\n const nativeToken = getDefaultToken()\n\n return useMemo(() => {\n return getTradableTokens(allTokens, nativeToken)\n }, [allTokens, nativeToken])\n}\n\nexport function useAllShortableTokens() {\n const allTokens = useAllTokens() as Record\n const nativeToken = getDefaultToken()\n\n return useMemo(() => {\n return getShortableTokens(allTokens, nativeToken)\n }, [allTokens, nativeToken])\n}\n","import styled, { css } from 'styled-components'\n\nimport { AutoColumn } from 'components/Column'\nimport { Spinner } from 'components/Shared'\n\nexport const Wrapper = styled.div`\n width: 100%;\n`\nexport const Section = styled(AutoColumn)``\n\nexport const BottomSection = styled(Section)`\n border-bottom-left-radius: 20px;\n border-bottom-right-radius: 20px;\n`\n\nexport const Title = styled.div`\n font-size: 18px;\n font-weight: 700;\n\n ${({ theme }) =>\n theme.mode === 'dark' &&\n css`\n font-weight: 400;\n text-transform: uppercase;\n `}\n`\n\nexport const Message = styled.div`\n text-align: center;\n width: 85%;\n font-size: 14px;\n font-weight: 700;\n color: ${({ theme }) => theme.colors.primary4};\n\n ${({ theme }) =>\n theme.mode === 'dark' &&\n css`\n font-weight: 400;\n color: ${({ theme }) => theme.colors.white};\n `}\n`\n\nexport const StyledLogo = styled.img`\n height: 16px;\n width: 16px;\n margin-left: 6px;\n`\n\nexport const CustomLightSpinner = styled(Spinner)<{ size: string }>`\n height: ${({ size }) => size};\n width: ${({ size }) => size};\n`\n\nexport const WraperClose = styled.div`\n position: absolute;\n top: 23px;\n right: 23px;\n\n ${({ theme }) =>\n theme.mode === 'metis' &&\n css`\n top: 34px;\n right: 35px;\n `}\n\n ${({ theme }) =>\n theme.mode === 'dark' &&\n css`\n top: 35px;\n right: 35px;\n `}\n\n ${({ theme }) => theme.mediaWidth.upToSmall`\n top: ${({ theme }) => (theme.mode === 'metis' ? '15px' : '23px')};\n right: ${({ theme }) => (theme.mode === 'metis' ? '20px' : '23px')};\n `};\n`\n","import { useEffect, useState } from 'react'\n\n// modified from https://usehooks.com/useDebounce/\nexport default function useDebounce(value: T, delay: number): T {\n const [debouncedValue, setDebouncedValue] = useState(value)\n\n useEffect(() => {\n // Update debounced value after delay\n const handler = setTimeout(() => {\n setDebouncedValue(value)\n }, delay)\n\n // Cancel the timeout if value changes (also on delay change or unmount)\n // This is how we prevent debounced value from updating if value is changed ...\n // .. within the delay period. Timeout gets cleared and restarted.\n return () => {\n clearTimeout(handler)\n }\n }, [value, delay])\n\n return debouncedValue\n}\n","import { ChainId, Currency, Token } from '@wowswap-io/wowswap-sdk'\nimport { Tags, TokenInfo, TokenList } from '@uniswap/token-lists'\nimport { useMemo } from 'react'\nimport { useSelector } from 'react-redux'\nimport { AppState } from '../index'\nimport { getAddress } from 'ethers/lib/utils'\n\ntype TagDetails = Tags[keyof Tags]\nexport interface TagInfo extends TagDetails {\n id: string\n}\n\n/**\n * Token instances created from token info.\n */\nexport class WrappedTokenInfo extends Token {\n public readonly tokenInfo: TokenInfo\n public readonly tags: TagInfo[]\n constructor(tokenInfo: TokenInfo, tags: TagInfo[]) {\n super(tokenInfo.chainId, getAddress(tokenInfo.address), tokenInfo.decimals, tokenInfo.symbol, tokenInfo.name)\n this.tokenInfo = tokenInfo\n this.tags = tags\n }\n public get logoURI(): string | undefined {\n return this.tokenInfo.logoURI\n }\n public get getTokenAddress() {\n if (!this.tokenInfo?.lendable) {\n if (this.tokenInfo?.proxyAddress) {\n return this.tokenInfo?.proxyAddress\n }\n\n if (this.tokenInfo?.proxyName && this.tokenInfo?.nameToProxy) {\n return this.tokenInfo?.nameToProxy[this.tokenInfo?.proxyName]\n }\n }\n return this.tokenInfo.address\n }\n}\n\nexport type TokenAddressMap = Readonly<{ [chainId in ChainId]: Readonly<{ [tokenAddress: string]: WrappedTokenInfo }> }>\n\n/**\n * An empty result, useful as a default.\n */\nconst EMPTY_LIST: TokenAddressMap = {\n [ChainId.ETHEREUM]: {},\n [ChainId.ROPSTEN]: {},\n [ChainId.MAINNET]: {},\n [ChainId.MATIC]: {},\n [ChainId.HECO]: {},\n [ChainId.BSCTESTNET]: {},\n [ChainId.LOCALNET]: {},\n [ChainId.AVALANCE]: {},\n [ChainId.FUJI]: {},\n [ChainId.IOTEX]: {},\n [ChainId.ANDROMEDA]: {},\n [ChainId.STARDUST]: {}\n}\n\nconst listCache: WeakMap | null =\n typeof WeakMap !== 'undefined' ? new WeakMap() : null\n\nexport function listToTokenMap(list: TokenList): TokenAddressMap {\n const result = listCache?.get(list)\n if (result) return result\n\n const map = list.tokens.reduce(\n (tokenMap, tokenInfo) => {\n const tags: TagInfo[] =\n tokenInfo.tags\n ?.map(tagId => {\n if (!list.tags?.[tagId]) return undefined\n return { ...list.tags[tagId], id: tagId }\n })\n ?.filter((x): x is TagInfo => Boolean(x)) ?? []\n const token = createTokens(tokenInfo, tags, list)\n if (tokenMap[token.chainId][token.address] !== undefined) {\n console.log({\n address: token.address,\n symbol: token.symbol\n })\n throw Error('Duplicate tokens.')\n }\n return {\n ...tokenMap,\n [token.chainId]: {\n ...tokenMap[token.chainId],\n [token.address]: token\n }\n }\n },\n { ...EMPTY_LIST }\n )\n listCache?.set(list, map)\n return map\n}\n\nexport function useTokenList(url: string | undefined): TokenAddressMap {\n const lists = useSelector(state => state.lists.byUrl)\n return useMemo(() => {\n if (!url) return EMPTY_LIST\n const current = lists[url]?.current\n if (!current) return EMPTY_LIST\n try {\n return listToTokenMap(current)\n } catch (error) {\n console.error('Could not show token list due to error', error)\n return EMPTY_LIST\n }\n }, [lists, url])\n}\n\nexport function useSelectedListUrl(): string | undefined {\n return useSelector(state => state.lists.selectedListUrl)\n}\n\nexport function useSelectedTokenList(): TokenAddressMap {\n return useTokenList(useSelectedListUrl())\n}\n\nexport function useSelectedListInfo(): { current: TokenList | null; pending: TokenList | null; loading: boolean } {\n const selectedUrl = useSelectedListUrl()\n const listsByUrl = useSelector(state => state.lists.byUrl)\n const list = selectedUrl ? listsByUrl[selectedUrl] : undefined\n return {\n current: list?.current ?? null,\n pending: list?.pendingUpdate ?? null,\n loading: list?.loadingRequestId !== null\n }\n}\n\n// returns all downloaded current lists\nexport function useAllLists(): TokenList[] {\n const lists = useSelector(state => state.lists.byUrl)\n\n return useMemo(\n () =>\n Object.keys(lists)\n .map(url => lists[url].current)\n .filter((l): l is TokenList => Boolean(l)),\n [lists]\n )\n}\n\nfunction createTokens(tokenInfo: TokenInfo, tags: TagInfo[], list: TokenList): WrappedTokenInfo {\n const BASE_TOKEN_SYMBOL = Currency.ETHER_MAP[tokenInfo.chainId as ChainId].symbol!\n\n const proxyNames = Object.entries(tokenInfo.proxies).reduce>((acc, [proxyHost]) => {\n const proxyToken =\n list.tokens.find(token => token.address.toLowerCase() === proxyHost.toLowerCase())?.symbol || BASE_TOKEN_SYMBOL\n acc[proxyHost] = `${tokenInfo.symbol}_${proxyToken}`\n return acc\n }, {})\n const nameToProxy = Object.entries(tokenInfo.proxies).reduce>((acc, [proxyHost, proxyAdr]) => {\n const proxyToken =\n list.tokens.find(token => token.address.toLowerCase() === proxyHost.toLowerCase())?.symbol || BASE_TOKEN_SYMBOL\n acc[`${tokenInfo.symbol}_${proxyToken}`] = proxyAdr\n return acc\n }, {})\n const nameToHosts = Object.entries(tokenInfo.proxies).reduce>((acc, [proxyHost]) => {\n const proxyToken =\n list.tokens.find(token => token.address.toLowerCase() === proxyHost.toLowerCase())?.symbol || BASE_TOKEN_SYMBOL\n acc[`${tokenInfo.symbol}_${proxyToken}`] = proxyHost\n return acc\n }, {})\n\n return new WrappedTokenInfo({ ...tokenInfo, proxyNames, nameToProxy, nameToHosts }, tags)\n}\n","import { Interface } from '@ethersproject/abi'\nimport ERC20_ABI from './erc20.json'\nimport ERC20_BYTES32_ABI from './erc20_bytes32.json'\n\nconst ERC20_INTERFACE = new Interface(ERC20_ABI)\n\nconst ERC20_BYTES32_INTERFACE = new Interface(ERC20_BYTES32_ABI)\n\nexport default ERC20_INTERFACE\nexport { ERC20_ABI, ERC20_BYTES32_INTERFACE, ERC20_BYTES32_ABI }\n","import { Text } from 'rebass'\nimport styled from 'styled-components'\n\nconst TextWrapper = styled(Text)<{ color?: string }>`\n font-family: ${({ theme }) => theme.typography.fontFamily.secondary};\n color: ${({ color, theme }) => color || theme.colors.text1};\n`\n\nexport const TextBase = styled(TextWrapper)<{ color?: string; fontWeight?: string }>`\n color: ${({ color, theme }) => color || theme.colors.text1};\n font-family: ${({ theme }) => theme.typography.fontFamily.secondary};\n\n font-weight: ${({ theme, fontWeight }) => (theme.mode === 'metis' ? '400' : fontWeight || '500')};\n font-size: ${({ theme }) => (theme.mode === 'metis' || theme.mode === 'dark' ? '14px' : '16px')};\n line-height: ${({ theme }) => (theme.mode === 'metis' ? '19px' : theme.mode === 'dark' ? '14px' : '16px')};\n\n ${({ theme }) => theme.mediaWidth.upToSmall`\n font-size: ${({ theme }) => (theme.mode === 'metis' ? '14px' : '14px')};\n line-height: ${({ theme }) => (theme.mode === 'metis' ? '19px' : '14px')};\n\t`};\n`\n\nexport const TextBaseLg = styled(TextWrapper)<{ color?: string; fontWeight?: string }>`\n color: ${({ color, theme }) => color || theme.colors.text1};\n font-family: ${({ theme }) => theme.typography.fontFamily.secondary};\n\n font-weight: ${({ fontWeight }) => fontWeight || '500'};\n font-size: 18px;\n line-height: 18px;\n\n ${({ theme }) =>\n theme.mode === 'metis' &&\n `\n font-weight: 400;\n font-size: 14px;\n line-height: 19px;\n `}\n\n ${({ theme }) =>\n theme.mode === 'dark' &&\n `\n font-weight: 400;\n font-size: 14px;\n line-height: 16px;\n `}\n\n ${({ theme }) => theme.mediaWidth.upToSmall`\n font-size: ${({ theme }) => (theme.mode === 'metis' || theme.mode === 'dark' ? '14px' : '16px')};\n\t\tline-height: 16px;\n\t`};\n`\n\nexport const TextBaseMetisLg = styled(TextBaseLg)<{ color?: string; fontWeight?: string }>`\n font-weight: ${() => '900'};\n`\n\nexport const TextBaseXl = styled(TextWrapper)<{ color?: string; fontWeight?: string; wrapText?: boolean }>`\n color: ${({ color, theme }) => color || theme.colors.text1};\n font-weight: ${({ theme, fontWeight }) => (theme.mode === 'metis' ? '400' : fontWeight || '500')};\n font-size: ${({ theme }) => (theme.mode === 'metis' ? '14px' : '20px')};\n line-height: ${({ theme }) => (theme.mode === 'metis' ? '19px' : '20px')};\n\n ${({ wrapText }) =>\n wrapText &&\n `\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n `}\n\n ${({ theme }) => theme.mediaWidth.upToSmall`\n font-size: 18px;\n line-height: 18px;\n `};\n`\n\nexport const TextBaseH3 = styled(TextWrapper)<{ color?: string }>`\n margin-bottom: 10px !important;\n\n color: ${({ color, theme }) => color || theme.colors.text1};\n font-weight: 700;\n font-size: 18px;\n line-height: 22px;\n`\n\nexport const TextBaseWithoutChanges = styled(TextWrapper)<{ color?: string }>`\n margin-bottom: 15px !important;\n\n color: ${({ color, theme }) => color || theme.colors.text1};\n font-weight: normal;\n font-size: 16px;\n line-height: 20px;\n\n &:last-child {\n margin-bottom: 0 !important;\n }\n`\n","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgExchange(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 9,\n height: 12,\n viewBox: \"0 0 9 12\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.58654 0L5.78783 0.90542L7.08152 2.36557H1.12494C0.503658 2.36557 0 2.93652 0 3.64081V5.55367H1.12494V3.64081H7.08152L5.79346 5.10096L6.58654 6L8.83643 3.44952C9.05452 3.20081 9.05452 2.79919 8.83643 2.55048L6.58654 0Z\",\n fill: \"black\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2.41346 12L3.21217 11.0946L1.91848 9.63443H7.87506C8.49634 9.63443 9 9.06348 9 8.35919V6.44633H7.87506V8.35919H1.91848L3.20654 6.89904L2.41346 6L0.163574 8.55048C-0.0545244 8.79919 -0.0545244 9.20081 0.163574 9.44952L2.41346 12Z\",\n fill: \"black\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgExchange);\nexport default __webpack_public_path__ + \"static/media/exchange.b7f29df8.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _rect, _rect2, _rect3, _rect4, _rect5, _rect6, _rect7, _rect8, _rect9, _rect10, _rect11;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgApprovingArrow(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 142,\n height: 142,\n viewBox: \"0 0 142 142\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 71,\n cy: 71,\n r: 69,\n fill: \"#F3BA2F\",\n stroke: \"black\",\n strokeWidth: 4\n })), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n x: 74,\n y: 110,\n width: 6,\n height: 78,\n transform: \"rotate(180 74 110)\",\n fill: \"black\"\n })), _rect2 || (_rect2 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 68,\n y: 45,\n width: 7,\n height: 7,\n transform: \"rotate(180 68 45)\",\n fill: \"black\"\n })), _rect3 || (_rect3 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 62,\n y: 51,\n width: 7,\n height: 7,\n transform: \"rotate(180 62 51)\",\n fill: \"black\"\n })), _rect4 || (_rect4 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 56,\n y: 57,\n width: 7,\n height: 7,\n transform: \"rotate(180 56 57)\",\n fill: \"black\"\n })), _rect5 || (_rect5 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 50,\n y: 63,\n width: 7,\n height: 7,\n transform: \"rotate(180 50 63)\",\n fill: \"black\"\n })), _rect6 || (_rect6 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 44,\n y: 69,\n width: 7,\n height: 7,\n transform: \"rotate(180 44 69)\",\n fill: \"black\"\n })), _rect7 || (_rect7 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 81,\n y: 45,\n width: 7,\n height: 7,\n transform: \"rotate(180 81 45)\",\n fill: \"black\"\n })), _rect8 || (_rect8 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 87,\n y: 51,\n width: 7,\n height: 7,\n transform: \"rotate(180 87 51)\",\n fill: \"black\"\n })), _rect9 || (_rect9 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 93,\n y: 57,\n width: 7,\n height: 7,\n transform: \"rotate(180 93 57)\",\n fill: \"black\"\n })), _rect10 || (_rect10 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 99,\n y: 63,\n width: 7,\n height: 7,\n transform: \"rotate(180 99 63)\",\n fill: \"black\"\n })), _rect11 || (_rect11 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 105,\n y: 69,\n width: 7,\n height: 7,\n transform: \"rotate(180 105 69)\",\n fill: \"black\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgApprovingArrow);\nexport default __webpack_public_path__ + \"static/media/approvingArrow.98b16056.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgApprovingArrowLinear(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 142,\n height: 142,\n viewBox: \"0 0 142 142\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 71,\n cy: 71,\n r: 71,\n fill: \"#F3BA2F\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M98.1077 59.9761C99.297 61.1253 99.297 62.9886 98.1077 64.1379C96.9184 65.2871 94.9901 65.2871 93.8008 64.1379L73.9955 44.9997L73.9955 103.999C73.9955 105.656 72.6523 106.999 70.9955 106.999C69.3386 106.999 67.9955 105.656 67.9955 103.999L67.9955 45.0087L48.1988 64.1384C47.0095 65.2876 45.0813 65.2876 43.892 64.1384C42.7027 62.9891 42.7027 61.1259 43.892 59.9766L68.7888 35.9186C68.8075 35.8995 68.8266 35.8806 68.8459 35.8619C69.8368 34.9045 71.3405 34.7447 72.5025 35.3826C72.7356 35.5105 72.955 35.6704 73.1537 35.8625L73.1839 35.892L98.1077 59.9761Z\",\n fill: \"black\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgApprovingArrowLinear);\nexport default __webpack_public_path__ + \"static/media/approvingArrowLinear.478c1102.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgCheck(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 19,\n height: 18,\n viewBox: \"0 0 19 18\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M10.125 0H2C0.895431 0 0 0.89543 0 2V16C0 17.1046 0.89543 18 2 18H16C17.1046 18 18 17.1046 18 16V7.875H16V16H2L2 2H10.125V0Z\",\n fill: \"#42CE61\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.125 11L9.47655 11.7613L10.2677 12.4352L10.9106 11.6187L10.125 11ZM3.35155 6.54386L9.47655 11.7613L10.7735 10.2387L4.64845 5.02135L3.35155 6.54386ZM10.9106 11.6187L18.7856 1.61869L17.2144 0.381311L9.33936 10.3813L10.9106 11.6187Z\",\n fill: \"#42CE61\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCheck);\nexport default __webpack_public_path__ + \"static/media/check.c50d95ed.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useContext } from 'react'\nimport styled, { ThemeContext } from 'styled-components'\nimport { ReactComponent as Close } from '../../assets/images/close.svg'\nimport { ReactComponent as CloseLinearIcon } from '../../assets/images/close-metis.svg'\nimport { ReactComponent as Exchange } from '../../assets/images/exchange.svg'\nimport { ReactComponent as ApprovingArrow } from '../../assets/images/approvingArrow.svg'\nimport { ReactComponent as ApprovingArrowLinear } from '../../assets/images/approvingArrowLinear.svg'\nimport { ReactComponent as Check } from '../../assets/images/check.svg'\nimport { ReactComponent as Warning } from '../../assets/images/warning.svg'\n\nconst BaseIconStyle = styled.div`\n width: 24px;\n height: 24px;\n cursor: pointer;\n\n > svg {\n width: 24px;\n height: 24px;\n fill: ${({ theme }) => theme.colors.text1};\n transition: all 0.4s ease;\n\n &:hover {\n fill: ${({ theme }) => theme.colors.primary1};\n transition: all 0.4s ease;\n }\n }\n\n ${({ theme }) =>\n theme.mode === 'metis' &&\n `\n width: 12px;\n height: 12px;\n\n > svg {\n width: 12px;\n height: 12px;\n fill: ${theme.colors.primary1};\n\n &:hover {\n fill: ${theme.colors.text1};\n }\n }\n `}\n\n ${({ theme }) =>\n theme.mode === 'dark' &&\n `\n width: 20px;\n height: 20px;\n\n > svg {\n width: 20px;\n height: 20px;\n }\n `}\n`\n\nconst ExchangeStyle = styled(Exchange)`\n width: 9px;\n height: 12px;\n`\n\nconst ApprovingArrowStyle = styled.div`\n > svg {\n width: 142px;\n height: 142px;\n }\n`\n\nconst CheckStyle = styled(Check)`\n width: 18px;\n height: 18px;\n`\n\nconst WarningStyle = styled(Warning)`\n width: 19px;\n height: 16px;\n`\n\nexport function IconClose() {\n const { mode } = useContext(ThemeContext)\n const CloseIcon = mode === 'metis' || mode === 'dark' ? CloseLinearIcon : Close\n\n return (\n \n \n \n )\n}\n\nexport function IconExchange() {\n return \n}\n\nexport function IconApprovingArrow() {\n const { mode } = useContext(ThemeContext)\n const ArrowImage = mode === 'dark' ? ApprovingArrowLinear : ApprovingArrow\n\n return (\n \n \n \n )\n}\n\nexport function IconCheck() {\n return \n}\n\nexport function IconWarning() {\n return \n}\n","import React from 'react'\nimport styled, { css, DefaultTheme, StyledComponent } from 'styled-components'\n\ntype Heading = 'h1' | 'h2' | 'h3' | 'h4' | 'h5'\n\ntype Props = {\n as?: Heading\n size?: 'lg' | 'md'\n}\n\nconst titleCommonStyles = css<{ size: 'lg' | 'md' }>`\n font-family: ${({ theme }) => theme.typography.fontFamily.primary};\n font-weight: normal;\n font-size: 20px;\n line-height: ${({ size }) => (size === 'md' ? '140%' : '28px')};\n margin: 0;\n\n ${({ theme, size }) =>\n size === 'lg'\n ? theme.mediaWidth.upToSmall`\n font-size: 20px;\n line-height: 28px;\n `\n : ''};\n`\n\nconst titleMetisStyles = css<{ size: 'lg' | 'md' }>`\n font-family: ${({ theme }) => theme.typography.fontFamily.primary};\n font-weight: 900;\n font-size: ${({ size }) => (size === 'lg' ? '20px' : '16px')};\n line-height: ${({ size }) => (size === 'lg' ? '28px' : '22px')};\n margin: 0;\n\n ${({ theme, size }) =>\n size === 'lg'\n ? theme.mediaWidth.upToSmall`\n font-size: 20px;\n line-height: 28px;\n `\n : ''};\n`\n\nconst titleProStyles = css<{ size: 'lg' | 'md' }>`\n font-family: ${({ theme }) => theme.typography.fontFamily.primary};\n font-weight: 400;\n font-size: 20px;\n text-transform: uppercase;\n margin: 0;\n`\n\nconst titleStyles = css<{ size: 'lg' | 'md' }>`\n ${({ theme }) =>\n theme.mode === 'metis' ? titleMetisStyles : theme.mode === 'dark' ? titleProStyles : titleCommonStyles}\n`\n\nconst heading: Record> = {\n h1: styled.h1`\n ${titleStyles}\n `,\n h2: styled.h2`\n ${titleStyles}\n `,\n h3: styled.h3`\n ${titleStyles}\n `,\n h4: styled.h4`\n ${titleStyles}\n `,\n h5: styled.h5`\n ${titleStyles}\n `\n}\n\nexport const Title: React.FC = ({ as = 'h2', size = 'md', children }) => {\n const H = heading[as]\n\n return {children}\n}\n","function wait(ms: number): Promise {\n return new Promise(resolve => setTimeout(resolve, ms))\n}\n\nfunction waitRandom(min: number, max: number): Promise {\n return wait(min + Math.round(Math.random() * Math.max(0, max - min)))\n}\n\n/**\n * This error is thrown if the function is cancelled before completing\n */\nexport class CancelledError extends Error {\n constructor() {\n super('Cancelled')\n }\n}\n\n/**\n * Throw this error if the function should retry\n */\nexport class RetryableError extends Error {}\n\n/**\n * Retries the function that returns the promise until the promise successfully resolves up to n retries\n * @param fn function to retry\n * @param n how many times to retry\n * @param minWait min wait between retries in ms\n * @param maxWait max wait between retries in ms\n */\nexport function retry(\n fn: () => Promise,\n { n, minWait, maxWait }: { n: number; minWait: number; maxWait: number }\n): { promise: Promise; cancel: () => void } {\n let completed = false\n let rejectCancelled: (error: Error) => void\n // eslint-disable-next-line no-async-promise-executor\n const promise = new Promise(async (resolve, reject) => {\n rejectCancelled = reject\n // eslint-disable-next-line no-constant-condition\n while (true) {\n let result: T\n try {\n result = await fn()\n if (!completed) {\n resolve(result)\n completed = true\n }\n break\n } catch (error) {\n if (completed) {\n break\n }\n if (n <= 0 || !(error instanceof RetryableError)) {\n reject(error)\n completed = true\n break\n }\n n--\n }\n await waitRandom(minWait, maxWait)\n }\n })\n return {\n promise,\n cancel: () => {\n if (completed) return\n completed = true\n rejectCancelled(new CancelledError())\n }\n }\n}\n","export enum INTEGRATION_CODE {\n METIS = 'METIS'\n}\n","import { parse, ParsedQs } from 'qs'\n\nexport default function getLocationParsedQuery(): ParsedQs {\n const { search } = window?.location ?? { search: '' }\n\n return search && search.length > 1 ? parse(search, { parseArrays: false, ignoreQueryPrefix: true }) : {}\n}\n","var _path, _path2, _path3, _path4;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgIcon20Envelope(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19.3061 15.2984V3.93555L12.9941 9.61697L19.3061 15.2984Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.1532 12.1738L8.35106 10.5518L2.03906 16.2332H18.2672L11.9552 10.5518L10.1532 12.1738Z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.2672 3H2.03906L10.1532 10.3035L18.2672 3Z\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1 3.93555V15.2984L7.31195 9.61697L1 3.93555Z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIcon20Envelope);\nexport default __webpack_public_path__ + \"static/media/icon--20-envelope.5fb7ca5d.svg\";\nexport { ForwardRef as ReactComponent };","import { Currency, ChainId, JSBI, Percent, Token, WETH } from '@wowswap-io/wowswap-sdk'\n\nimport jsonConfig from '../wowswap.json'\nimport { LIST_OF_WALLETS } from './query'\nimport getShownWallets from '../utils/getShownWallets'\n\n// TODO: ChainID\nexport const ROUTER_ADDRESS: Record = {\n [ChainId.ETHEREUM]: '0x0D4898d1581Da1e8833c011533C76F95705bea6f',\n [ChainId.ROPSTEN]: '0x38D0295ffD1d1c6c9FCD8D4f7E9BBE8DAD0b85c1',\n [ChainId.MAINNET]: '0x635ab541B4B3FBD37491Dc8C8eDA94e3b69f1e42',\n [ChainId.BSCTESTNET]: '0x6138ecBdE74494e576a674A0a1CCf97346D21fe3',\n [ChainId.LOCALNET]: '0x06bf2F2704953E0A68Ca6048a1AB78cA755C6ff9',\n [ChainId.MATIC]: '0x3ff9933F36231Cb29c150a4E4B15EAcAD7944134',\n [ChainId.HECO]: '0x7C6C3D8079aa3aC0A5F09F3881e3c2B65141F272',\n [ChainId.AVALANCE]: '0x9bB7390E7F0f9BEA537eBe2674333F9f096C6faD',\n [ChainId.FUJI]: '',\n [ChainId.IOTEX]: '0x047883702Dc076b5D6F8d2449b61cFa1784D7b51',\n [ChainId.ANDROMEDA]: '0xF9F619e6a2075b2A30EAFee49E1d039d23Fdc028',\n [ChainId.STARDUST]: '0x3F0C1455d1682f9437B8BAC64cb8935A100c1da9'\n}\n\nconst PRODUCTION = process.env.NODE_ENV === 'production' || true\nconst url = (path: string) => (PRODUCTION ? path : 'http://localhost:8000/sign')\n\nexport const SIGNER_API_URLS: Record = {\n [ChainId.ETHEREUM]: url('https://ethereum-signer.wowswap.io/sign'),\n [ChainId.MAINNET]: url('https://bsc-signer.wowswap.io/sign'),\n [ChainId.HECO]: url('https://heco-signer.wowswap.io/sign'),\n [ChainId.MATIC]: url('https://matic-signer.wowswap.io/sign'),\n [ChainId.ROPSTEN]: url('https://ropsten-signer.wowswap.io/sign'),\n [ChainId.BSCTESTNET]: url('http://localhost:8000/sign'),\n [ChainId.LOCALNET]: url('http://localhost:8000/sign'),\n [ChainId.AVALANCE]: url('https://pre-production-signer-avalanche.wowswap.io/sign'),\n [ChainId.FUJI]: url('http://localhost:8000/sign'),\n [ChainId.IOTEX]: url('https://iotex-signer.wowswap.io/sign'),\n [ChainId.ANDROMEDA]: url('https://metis-signer.wowswap.io/sign'),\n [ChainId.STARDUST]: url('https://metis-testnet-signer.wowswap.io/sign')\n}\n\nexport const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000'\n\nexport const NATIVE_TOKEN_WRAPPED: Record = Object.entries(WETH).reduce((dict, [, token]) => {\n dict[token.chainId] = token.address\n return dict\n}, {} as Record)\n\nexport const TREASURER_ADDRESS: Record = {\n [ChainId.ETHEREUM]: '0xfB7d27eB3F0665F5704192A31722c33615bda0E5',\n [ChainId.ROPSTEN]: '0xfB7d27eB3F0665F5704192A31722c33615bda0E5',\n [ChainId.MAINNET]: '0x8ee5849366735a3f89C3B86270F9073CC942ffB7',\n [ChainId.BSCTESTNET]: '', // TODO: update this\n [ChainId.LOCALNET]: '0xbfaED3DcBAe0553D452F938F39Aab9533163F651',\n [ChainId.HECO]: '0xF1eCFaA88A837a8D4e74DaDB405EE37e8110DDd1',\n [ChainId.MATIC]: '0xc7ae2cC4039E18F9F59D76Fe9D5fB75c1BbfB903',\n [ChainId.AVALANCE]: '0x5300A84CBf606fEa2CD445f0F0F3240A60922324',\n [ChainId.FUJI]: '',\n [ChainId.IOTEX]: '0x7eEe2A14d605E36AB3ce719adF8b3614eb21cFbf',\n [ChainId.ANDROMEDA]: '0x0D5d5DF8b6414CEDeC83Ad7e50d18f096f435Ea8',\n [ChainId.STARDUST]: '0x5BbC54931E7d2C62Fe0d600c740B7f82CC88E2F7'\n}\nexport const GOVERNANCE_ADDRESS: Record = {\n [ChainId.ETHEREUM]: '0x2105BbF40aa3685ca77AF8A8C88339da46fbD6Cc',\n [ChainId.ROPSTEN]: '0x8Bf4445616794D0dc8006DC752e48390f7090316',\n [ChainId.MAINNET]: '0xB82b8321453c2957C593FA6AA7BC9f8bC43d18CC',\n [ChainId.BSCTESTNET]: '', // TODO: update this\n [ChainId.LOCALNET]: '0x67f51FA5d39F5cd65a94C4b845F73151dAe16155',\n [ChainId.HECO]: '', // temporary disabled 0x360bBe4DE153c9D553E34B655b90EE4f1c2DCb16',\n [ChainId.MATIC]: '0x6167EBFba9A16C5D6B50522FF32fd9A453cF64ED',\n [ChainId.AVALANCE]: '0x05CbCC98C96D12bC0361bA8B2127aA554A99004F',\n [ChainId.FUJI]: '',\n [ChainId.IOTEX]: '0x2Fbdb73A54393bE9826Af1b22Be9A17C56E81e8C',\n [ChainId.ANDROMEDA]: '0x01B5B462B55a65101d7C7637b056d2DAe16E5f9c',\n [ChainId.STARDUST]: '0xec5945CE27b08330c70a5f14e414D0632C0Cd003'\n}\n\nexport const REFERRAL_PROGRAM: Record = {\n [ChainId.ETHEREUM]: '', // TODO: setup this\n [ChainId.ROPSTEN]: '', // TODO: setup this\n [ChainId.MAINNET]: '0xBa1A45811d42d250c1CAca7bB8aACc92A332CE25', // TODO: setup this\n [ChainId.BSCTESTNET]: '', // TODO: setup this\n [ChainId.LOCALNET]: '0x5916b3183A55F076Ce4A761a2a151b4006049cF0',\n [ChainId.HECO]: '0xa6D0aD669Df108F790F396D34970149d5a0D4B68',\n [ChainId.MATIC]: '0x6F8167147DA41faA6679aF7cEd77D127e6eA19A7',\n [ChainId.AVALANCE]: '',\n [ChainId.FUJI]: '',\n [ChainId.IOTEX]: '',\n [ChainId.ANDROMEDA]: '0xA655766bFD97b7C5Ec83CEca09DA79fc2efA44d8',\n [ChainId.STARDUST]: '0x43D12E281735370e9Ac5FF4D1c40dAb998cf2dd9'\n}\n\nexport const WOW_PAIRS: Record> = {\n [ChainId.MATIC]: {\n long: {\n input: '0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270',\n output: '0x3B6392659918fb3fa769C2224f8ddef73b63980A'\n },\n short: null\n },\n [ChainId.MAINNET]: {\n long: {\n input: '0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56',\n output: '0x9FDbf05cDB7852dBB7183411681DA94e048CCbE1'\n },\n short: {\n input: '0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56',\n output: '0x65d4322A590c682b9271f99552407b16eB34E442'\n }\n },\n [ChainId.AVALANCE]: {\n long: {\n input: '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7',\n output: '0xAe377b24DD2dAf3b70ED63D54a2be3b40356d306'\n },\n short: null\n },\n [ChainId.ETHEREUM]: { long: null, short: null },\n [ChainId.ROPSTEN]: { long: null, short: null },\n [ChainId.BSCTESTNET]: { long: null, short: null },\n [ChainId.HECO]: { long: null, short: null },\n [ChainId.LOCALNET]: { long: null, short: null },\n [ChainId.FUJI]: { long: null, short: null },\n [ChainId.IOTEX]: { long: null, short: null },\n [ChainId.ANDROMEDA]: { long: null, short: null },\n [ChainId.STARDUST]: { long: null, short: null }\n}\n\nexport const BASE_TOKEN_SYMBOL_MAP: Record = {\n [ChainId.ETHEREUM]: 'ETH',\n [ChainId.ROPSTEN]: 'ETH',\n [ChainId.MAINNET]: 'BNB', // WBNB\n [ChainId.BSCTESTNET]: 'BNB',\n [ChainId.LOCALNET]: 'BNB',\n [ChainId.MATIC]: 'MATIC',\n [ChainId.HECO]: 'HT',\n [ChainId.AVALANCE]: 'AVAX',\n [ChainId.FUJI]: 'AVAX',\n [ChainId.IOTEX]: 'IOTX',\n [ChainId.ANDROMEDA]: 'METIS',\n [ChainId.STARDUST]: 'METIS'\n}\n\nexport const BASE_TOKEN_SYMBOL: string = Currency.getBaseCurrency().symbol!\n\n// a list of tokens by chain\ntype ChainTokenList = {\n readonly [chainId in ChainId]: Token[]\n}\n\nconst configToToken = (cfg?: Pick) =>\n cfg ? new Token(cfg.chainId, cfg.address, cfg.decimals, cfg.symbol, cfg.name) : undefined\n\nconst findConfig = (symbol: string, chain: ChainId) =>\n configToToken(jsonConfig.tokens.find(t => t.symbol === symbol && t.chainId === chain))\n\nexport const findReserve = (lendable: string, chain: ChainId): string | undefined =>\n (jsonConfig as any).reserves[chain.toString()]?.[lendable]\n\nexport const DAI = new Token(ChainId.MAINNET, '0x6B175474E89094C44Da98b954EedeAC495271d0F', 18, 'DAI', 'Dai Stablecoin')\nexport const USDC = new Token(ChainId.MAINNET, '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', 6, 'USDC', 'USD//C')\nexport const USDT = new Token(ChainId.MAINNET, '0xdAC17F958D2ee523a2206206994597C13D831ec7', 6, 'USDT', 'Tether USD')\nexport const COMP = new Token(ChainId.MAINNET, '0xc00e94Cb662C3520282E6f5717214004A7f26888', 18, 'COMP', 'Compound')\nexport const MKR = new Token(ChainId.MAINNET, '0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2', 18, 'MKR', 'Maker')\nexport const AMPL = new Token(ChainId.MAINNET, '0xD46bA6D942050d489DBd938a2C909A5d5039A161', 9, 'AMPL', 'Ampleforth')\nexport const BUSD = findConfig('BUSD', ChainId.MAINNET)!\n\nconst WETH_ONLY: ChainTokenList = {\n [ChainId.ETHEREUM]: [WETH[ChainId.ETHEREUM]],\n [ChainId.ROPSTEN]: [WETH[ChainId.ROPSTEN]],\n [ChainId.MAINNET]: [WETH[ChainId.MAINNET]],\n [ChainId.BSCTESTNET]: [WETH[ChainId.BSCTESTNET]],\n [ChainId.LOCALNET]: [WETH[ChainId.LOCALNET]],\n [ChainId.MATIC]: [WETH[ChainId.MATIC]],\n [ChainId.HECO]: [WETH[ChainId.HECO]],\n [ChainId.AVALANCE]: [WETH[ChainId.AVALANCE]],\n [ChainId.FUJI]: [WETH[ChainId.FUJI]],\n [ChainId.IOTEX]: [WETH[ChainId.IOTEX]],\n [ChainId.ANDROMEDA]: [WETH[ChainId.ANDROMEDA]],\n [ChainId.STARDUST]: [WETH[ChainId.STARDUST]]\n}\n\n// used to construct intermediary pairs for trading\nexport const BASES_TO_CHECK_TRADES_AGAINST: ChainTokenList = {\n ...WETH_ONLY,\n [ChainId.BSCTESTNET]: [...WETH_ONLY[ChainId.BSCTESTNET], findConfig('BUSD', ChainId.BSCTESTNET)!],\n [ChainId.MAINNET]: [...WETH_ONLY[ChainId.MAINNET], BUSD],\n [ChainId.LOCALNET]: [...WETH_ONLY[ChainId.LOCALNET], findConfig('BUSD', ChainId.LOCALNET)!],\n [ChainId.HECO]: [...WETH_ONLY[ChainId.HECO], findConfig('USDT', ChainId.HECO)!]\n}\n\n/**\n * Some tokens can only be swapped via certain pairs, so we override the list of bases that are considered for these\n * tokens.\n */\nexport const CUSTOM_BASES: { [chainId in ChainId]?: { [tokenAddress: string]: Token[] } } = {\n [ChainId.MAINNET]: {\n [AMPL.address]: [DAI, WETH[ChainId.MAINNET]]\n }\n}\n\n// used for display in the default list when adding liquidity\nexport const SUGGESTED_BASES: ChainTokenList = {\n ...WETH_ONLY,\n [ChainId.MAINNET]: [...WETH_ONLY[ChainId.MAINNET], DAI, USDC, USDT]\n}\n\n// used to construct the list of all pairs we consider by default in the frontend\nexport const BASES_TO_TRACK_LIQUIDITY_FOR: ChainTokenList = {\n ...WETH_ONLY,\n [ChainId.MAINNET]: [...WETH_ONLY[ChainId.MAINNET], DAI, USDC, USDT]\n}\n\nexport const PINNED_PAIRS: { readonly [chainId in ChainId]?: [Token, Token][] } = {\n [ChainId.MAINNET]: [\n [USDC, USDT],\n [DAI, USDT]\n ]\n}\n\nexport interface WalletInfo {\n name: string\n iconName: string\n description: string\n href: string | null\n color: string\n primary?: true\n mobile?: true\n mobileOnly?: true\n}\n\nexport interface InstallWalletInfo {\n header: string\n link: string\n}\n\nexport enum SUPPORTED_WALLET_NAMES {\n INJECTED = 'INJECTED',\n METAMASK = 'METAMASK',\n METAMASK_FAKE_HARDWARE = 'METAMASK_FAKE_HARDWARE',\n METAMASK_MOBILE_DEEP_LINK = 'METAMASK_MOBILE_DEEP_LINK',\n COIN98 = 'COIN98',\n MATH_WALLET = 'MATH_WALLET',\n TRUST_WALLET = 'TRUST_WALLET',\n WALLETCONNECT = 'WALLETCONNECT'\n}\n\nexport const WALLETS_QUERY_TO_SUPPORTED_WALLET_NAMES = {\n [LIST_OF_WALLETS.METAMASK]: SUPPORTED_WALLET_NAMES.METAMASK,\n [LIST_OF_WALLETS.COIN98]: SUPPORTED_WALLET_NAMES.COIN98,\n [LIST_OF_WALLETS.MATH_WALLET]: SUPPORTED_WALLET_NAMES.MATH_WALLET,\n [LIST_OF_WALLETS.TRUST_WALLET]: SUPPORTED_WALLET_NAMES.TRUST_WALLET,\n [LIST_OF_WALLETS.WALLETCONNECT]: SUPPORTED_WALLET_NAMES.WALLETCONNECT\n}\n\nexport const SHOWN_WALLETS = getShownWallets(WALLETS_QUERY_TO_SUPPORTED_WALLET_NAMES)\n\nexport const SUPPORTED_INSTALL_WALLETS: Record = {\n [SUPPORTED_WALLET_NAMES.METAMASK]: {\n header: 'Install Metamask',\n link: 'https://metamask.io/'\n },\n [SUPPORTED_WALLET_NAMES.COIN98]: {\n header: 'Install Coin98',\n link: 'https://coin98.com/'\n },\n [SUPPORTED_WALLET_NAMES.MATH_WALLET]: {\n header: 'Install MathWallet',\n link: 'https://mathwallet.org/'\n }\n}\n\nexport const SUPPORTED_WALLETS: { [key in SUPPORTED_WALLET_NAMES]: WalletInfo } = {\n // BSC: {\n // connector: bsc,\n // name: 'Binance Chain Wallet',\n // iconName: 'binance.svg',\n // description: 'Easy-to-use browser extension.',\n // href: null,\n // color: '#E8831D'\n // },\n [SUPPORTED_WALLET_NAMES.INJECTED]: {\n name: 'Injected',\n iconName: 'arrow-right.svg',\n description: 'Injected web3 provider.',\n href: null,\n color: '#010101',\n primary: true\n },\n [SUPPORTED_WALLET_NAMES.METAMASK]: {\n name: 'MetaMask',\n iconName: 'metamask.png',\n description: 'Easy-to-use browser extension.',\n href: null,\n color: '#F3BA2F'\n },\n [SUPPORTED_WALLET_NAMES.METAMASK_FAKE_HARDWARE]: {\n name: 'MetaMask for hardware',\n iconName: 'metamask.png',\n description: 'Easy-to-use browser extension.',\n href: null,\n color: '#F3BA2F'\n },\n [SUPPORTED_WALLET_NAMES.METAMASK_MOBILE_DEEP_LINK]: {\n name: 'MetaMask',\n iconName: 'metamask.png',\n description: 'MetaMask deep link.',\n href: null,\n color: '#F3BA2F',\n mobile: true,\n mobileOnly: true\n },\n [SUPPORTED_WALLET_NAMES.COIN98]: {\n name: 'Coin98',\n iconName: 'coin98.svg',\n description: 'Connect to Coin98.',\n href: null,\n color: '#F3BA2F'\n },\n [SUPPORTED_WALLET_NAMES.MATH_WALLET]: {\n name: 'MathWallet',\n iconName: 'mathwallet.svg',\n description: 'Connect to Math Wallet.',\n href: null,\n color: '#F3BA2F'\n },\n [SUPPORTED_WALLET_NAMES.TRUST_WALLET]: {\n name: 'TrustWallet',\n iconName: 'trustwallet.svg',\n description: 'Connect to Trust Wallet.',\n href: null,\n color: '#F3BA2F',\n mobile: true,\n mobileOnly: true\n },\n [SUPPORTED_WALLET_NAMES.WALLETCONNECT]: {\n name: 'WalletConnect',\n iconName: 'walletConnectIcon.svg',\n description: 'Connect to Trust Wallet, Rainbow Wallet and more...',\n href: null,\n color: '#F3BA2F',\n mobile: true\n }\n}\n\nexport const connectorLocalStorageKey = 'connectorId'\n\nexport const NetworkContextName = 'NETWORK'\n\n// default allowed slippage, in bips\nexport const INITIAL_ALLOWED_SLIPPAGE = 50\n// 20 minutes, denominated in seconds\nexport const DEFAULT_DEADLINE_FROM_NOW = 60 * 20\n\n// one basis point\nexport const ONE_BIPS = new Percent(JSBI.BigInt(1), JSBI.BigInt(10000))\nexport const BIPS_BASE = JSBI.BigInt(10000)\n// used for warning states\nexport const ALLOWED_PRICE_IMPACT_LOW: Percent = new Percent(JSBI.BigInt(100), BIPS_BASE) // 1%\nexport const ALLOWED_PRICE_IMPACT_MEDIUM: Percent = new Percent(JSBI.BigInt(300), BIPS_BASE) // 3%\nexport const ALLOWED_PRICE_IMPACT_HIGH: Percent = new Percent(JSBI.BigInt(500), BIPS_BASE) // 5%\n// if the price slippage exceeds this number, force the user to type 'confirm' to execute\nexport const PRICE_IMPACT_WITHOUT_FEE_CONFIRM_MIN: Percent = new Percent(JSBI.BigInt(1000), BIPS_BASE) // 10%\n// for non expert mode disable swaps above this\nexport const BLOCKED_PRICE_IMPACT_NON_EXPERT: Percent = new Percent(JSBI.BigInt(1500), BIPS_BASE) // 15%\n\n// used to ensure the user doesn't send so much ETH so they end up with <.01\nexport const MIN_ETH: JSBI = JSBI.exponentiate(JSBI.BigInt(10), JSBI.BigInt(16)) // .01 ETH\nexport const BETTER_TRADE_LINK_THRESHOLD = new Percent(JSBI.BigInt(75), JSBI.BigInt(10000))\n\nexport const MIN_AMOUNT_FOR_SWAP: any = {\n BNB: 0.25,\n MATIC: 120,\n BUSD: 100,\n USDC: 100,\n WETH: 0.0005,\n ETH: 0.0005,\n HT: 8,\n USDT: 100\n}\n\nexport const NETWORK_PARAMS: Partial> = {\n [ChainId.MAINNET]: {\n chainId: '0x38',\n chainName: 'Binance Smart Chain',\n nativeCurrency: {\n name: 'Binance Coin',\n symbol: 'BNB',\n decimals: 18\n },\n stableCoin: 'BUSD',\n rpcUrls: ['https://bsc-dataseed.binance.org'],\n blockExplorerUrls: ['https://bscscan.com']\n },\n [ChainId.MATIC]: {\n chainId: '0x89',\n chainName: 'Matic Mainnet',\n nativeCurrency: {\n name: 'MATIC',\n symbol: 'MATIC',\n decimals: 18\n },\n stableCoin: 'USDC',\n rpcUrls: ['https://rpc-mainnet.matic.network'],\n blockExplorerUrls: ['https://polygonscan.com/']\n },\n [ChainId.HECO]: {\n chainId: '0x80',\n chainName: 'Heco Mainnet',\n nativeCurrency: {\n name: 'HT',\n symbol: 'HT',\n decimals: 18\n },\n stableCoin: 'USDT.E', // TODO: check it\n rpcUrls: ['https://http-mainnet-node.huobichain.com'],\n blockExplorerUrls: ['https://hecoinfo.com/']\n },\n [ChainId.ETHEREUM]: {\n chainId: '0x1',\n chainName: 'Ethereum Mainnet',\n nativeCurrency: {\n name: 'ETH',\n symbol: 'ETH',\n decimals: 18\n },\n stableCoin: 'USDC',\n rpcUrls: ['https://mainnet.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161'],\n blockExplorerUrls: ['https://etherscan.io']\n },\n [ChainId.AVALANCE]: {\n chainId: '0xA86A',\n chainName: 'Avalanche Network',\n nativeCurrency: {\n name: 'AVAX',\n symbol: 'AVAX',\n decimals: 18\n },\n stableCoin: 'USDT.E',\n rpcUrls: ['https://api.avax.network/ext/bc/C/rpc'],\n blockExplorerUrls: ['https://snowtrace.io']\n },\n [ChainId.IOTEX]: {\n chainId: '0x1251',\n chainName: 'IoTex Mainnet',\n nativeCurrency: {\n name: 'IOTX',\n symbol: 'IOTX',\n decimals: 18\n },\n stableCoin: 'BUSD-BSC',\n rpcUrls: ['https://babel-api.mainnet.iotex.io'],\n blockExplorerUrls: ['https://iotexscan.io/']\n }\n}\n","import getLocationParsedQuery from './getLocationParsedQuery'\n\nimport { LIST_OF_WALLETS, LIST_OF_WALLETS_QUERY } from '../constants/query'\n\nexport default function getShownWallets(mapQueryToName: any = {}): string[] | undefined {\n const urlQueries = getLocationParsedQuery() ?? {}\n let walletsQuery = urlQueries[LIST_OF_WALLETS_QUERY] as any\n\n if (!walletsQuery && walletsQuery !== '') {\n return\n }\n\n // FIX: when wallets=metam\n if (typeof walletsQuery === 'string') {\n walletsQuery = [walletsQuery]\n }\n\n // common case: wallets[0]=metam&wallets[1]=trustw\n const walletsQueryArr: LIST_OF_WALLETS[] = Object.values(walletsQuery)\n /*\n * FIX cases:\n * - wallets=metam&wallets=trustw\n * - wallets[]=metam&wallets[]=trustw\n */\n const walletsQueryflatArr: LIST_OF_WALLETS[] = walletsQueryArr.flat() // fix for wallets[]=metam&wallets[]=trustw\n\n return walletsQueryflatArr.flatMap((walletQueryCode: LIST_OF_WALLETS) => mapQueryToName[walletQueryCode])\n}\n","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgIcon20Tm(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.11938 12.7627L7.83505 16.897C8.25283 16.897 8.43742 16.7116 8.67061 16.4915L10.6778 14.5972L14.8538 17.5916C15.6223 18.0031 16.1769 17.7901 16.3683 16.8991L19.1097 4.36136C19.3903 3.26924 18.6807 2.77391 17.9455 3.09786L1.84849 9.12203C0.749713 9.54977 0.756119 10.1447 1.6482 10.4098L5.77907 11.6612L15.3425 5.80541C15.7939 5.5397 16.2083 5.68255 15.8682 5.97549L8.11914 12.7625L8.11938 12.7627Z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIcon20Tm);\nexport default __webpack_public_path__ + \"static/media/icon--20-tm.98acea1c.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgIcon20Tw(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.39302 6.9352L9.43495 7.57504L8.73607 7.49669C6.19212 7.19636 3.96967 6.17783 2.08268 4.46723L1.16015 3.61846L0.922529 4.24524C0.419331 5.64245 0.740818 7.11801 1.78915 8.11042C2.34825 8.65886 2.22246 8.7372 1.25799 8.41075C0.922529 8.30629 0.628997 8.22794 0.601041 8.26712C0.503197 8.35852 0.838662 9.5468 1.10424 10.0169C1.46766 10.6698 2.20848 11.3096 3.01918 11.6883L3.70409 11.9887L2.89338 12.0017C2.11063 12.0017 2.08268 12.0148 2.16654 12.289C2.4461 13.1378 3.55034 14.0388 4.78038 14.4305L5.64699 14.7047L4.8922 15.1226C3.77398 15.7232 2.46008 16.0628 1.14617 16.0889C0.517175 16.1019 0 16.1542 0 16.1933C0 16.3239 1.70528 17.0552 2.6977 17.3424C5.67495 18.1912 9.21131 17.8256 11.8671 16.3762C13.7541 15.3446 15.6411 13.2945 16.5216 11.3096C16.9969 10.2519 17.4721 8.31935 17.4721 7.39223C17.4721 6.79156 17.5141 6.71321 18.2968 5.99502C18.7581 5.57716 19.1914 5.12013 19.2753 4.98955C19.415 4.74145 19.4011 4.74145 18.6882 4.96343C17.5001 5.35518 17.3324 5.30294 17.9194 4.71533C18.3527 4.29747 18.8699 3.54011 18.8699 3.31812C18.8699 3.27895 18.6602 3.34424 18.4226 3.46176C18.171 3.59234 17.6119 3.78821 17.1926 3.90573L16.4378 4.12772L15.7529 3.69681C15.3755 3.46176 14.8443 3.2006 14.5648 3.12225C13.8519 2.93944 12.7616 2.96556 12.1187 3.17448C10.3715 3.7621 9.26722 5.27683 9.39302 6.9352Z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIcon20Tw);\nexport default __webpack_public_path__ + \"static/media/icon--20-tw.71224018.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgIcon20Socicon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M7.00003 17.4695V3.9509L0.635002 1.07236C0.229001 0.872694 0 1.12619 0 1.34935V14.7173L6.28302 17.9619C6.58603 18.1106 7.00003 17.7994 7.00003 17.4695ZM19.8562 4.13678L13.5192 1.03901C13.4162 0.985174 13.2852 1.0253 13.2232 1.12024L9.56017 6.94778L13.9192 13.8794L19.9172 4.34526C19.9662 4.27087 19.9312 4.17691 19.8562 4.13678ZM8 12.2038L13.333 14.8161L8 6.33319V12.2038ZM19.45 17.7993L14.232 15.2486L20 6.08056V17.4626C20 17.7993 19.752 17.948 19.45 17.7993Z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIcon20Socicon);\nexport default __webpack_public_path__ + \"static/media/icon--20-socicon.4b961a41.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgDiscord(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 17,\n height: 12,\n viewBox: \"0 0 17 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M12.5462 12C12.5462 12 12.0223 11.3857 11.5856 10.8429C13.4923 10.3143 14.22 9.14289 14.22 9.14289C13.6233 9.5286 13.0556 9.80002 12.5462 9.98573C11.8185 10.2857 11.1199 10.4857 10.4358 10.6C9.03853 10.8572 7.7577 10.7857 6.6661 10.5857C5.83647 10.4286 5.12329 10.2 4.52654 9.97145C4.19178 9.84288 3.82791 9.68574 3.46404 9.48574C3.44221 9.47145 3.42038 9.46074 3.39854 9.45002C3.37671 9.43931 3.35488 9.4286 3.33305 9.41431C3.30394 9.40003 3.28938 9.38574 3.27483 9.37145C3.01284 9.2286 2.86729 9.1286 2.86729 9.1286C2.86729 9.1286 3.56592 10.2714 5.41438 10.8143C4.97774 11.3571 4.43921 12 4.43921 12C1.2226 11.9 0 9.82859 0 9.82859C0 5.22864 2.09589 1.5001 2.09589 1.5001C4.19178 -0.0427379 6.18579 0.000118716 6.18579 0.000118716L6.33133 0.171546C3.71147 0.914395 2.50342 2.04296 2.50342 2.04296C2.50342 2.04296 2.82363 1.87153 3.36216 1.62867C4.91952 0.957252 6.15668 0.77154 6.6661 0.728683L6.69873 0.723269C6.77215 0.710999 6.83729 0.700112 6.91353 0.700112C7.80137 0.585827 8.80565 0.557256 9.85359 0.671541C11.2363 0.828682 12.7209 1.22868 14.2346 2.04296C14.2346 2.04296 13.0848 0.971538 10.6104 0.228688L10.8142 0.000118716C10.8142 0.000118716 12.8082 -0.0427379 14.9041 1.5001C14.9041 1.5001 17 5.22864 17 9.82859C17 9.82859 15.7628 11.9 12.5462 12ZM6.18822 5.58757C5.36514 5.58757 4.71533 6.32299 4.71533 7.2202C4.71533 8.11742 5.37958 8.85284 6.18822 8.85284C7.01131 8.85284 7.66111 8.11742 7.66111 7.2202C7.67555 6.32299 7.01131 5.58757 6.18822 5.58757ZM9.98596 7.2202C9.98596 6.32299 10.6358 5.58757 11.4589 5.58757C12.2819 5.58757 12.9317 6.32299 12.9317 7.2202C12.9317 8.11742 12.2819 8.85284 11.4589 8.85284C10.6502 8.85284 9.98596 8.11742 9.98596 7.2202Z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDiscord);\nexport default __webpack_public_path__ + \"static/media/discord.90792ede.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgCloseMetis(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 13,\n height: 13,\n viewBox: \"0 0 13 13\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.25226 5.53438L0.867157 0.149279C0.668442 -0.0478017 0.347992 -0.0478017 0.149279 0.149279L0.149279 0.149279C-0.0489567 0.346385 -0.0498745 0.666872 0.147231 0.865108C0.147912 0.865793 0.148595 0.866476 0.149279 0.867157L5.53438 6.25226L0.149279 11.6374H0.149279C-0.0478018 11.8361 -0.0478018 12.1565 0.149279 12.3552H0.149279C0.346385 12.5535 0.666872 12.5544 0.865108 12.3573C0.865793 12.3566 0.866476 12.3559 0.867157 12.3552L6.25226 6.97014L11.6374 12.3552C11.8328 12.5507 12.1567 12.5532 12.3552 12.3552C12.5535 12.1581 12.5544 11.8376 12.3573 11.6394C12.3566 11.6387 12.3559 11.638 12.3552 11.6374L6.97014 6.25226L12.3552 0.867157V0.867157C12.5523 0.668442 12.5523 0.347993 12.3552 0.149279V0.149279C12.1581 -0.0489567 11.8376 -0.0498745 11.6394 0.147231C11.6387 0.147912 11.638 0.148595 11.6374 0.149279L6.25226 5.53438Z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCloseMetis);\nexport default __webpack_public_path__ + \"static/media/close-metis.10c32623.svg\";\nexport { ForwardRef as ReactComponent };","import { namehash } from 'ethers/lib/utils'\nimport { useMemo } from 'react'\nimport { useSingleCallResult } from '../state/multicall/hooks'\nimport { isAddress } from '../utils'\nimport isZero from '../utils/isZero'\nimport { useENSRegistrarContract, useENSResolverContract } from './useContract'\nimport useDebounce from './useDebounce'\n\n/**\n * Does a reverse lookup for an address to find its ENS name.\n * Note this is not the same as looking up an ENS name to find an address.\n */\nexport default function useENSName(address?: string): { ENSName: string | null; loading: boolean } {\n const debouncedAddress = useDebounce(address, 200)\n const ensNodeArgument = useMemo(() => {\n if (!debouncedAddress || !isAddress(debouncedAddress)) return [undefined]\n try {\n return debouncedAddress ? [namehash(`${debouncedAddress.toLowerCase().substr(2)}.addr.reverse`)] : [undefined]\n } catch (error) {\n return [undefined]\n }\n }, [debouncedAddress])\n const registrarContract = useENSRegistrarContract(false)\n const resolverAddress = useSingleCallResult(registrarContract, 'resolver', ensNodeArgument)\n const resolverAddressResult = resolverAddress.result?.[0]\n const resolverContract = useENSResolverContract(\n resolverAddressResult && !isZero(resolverAddressResult) ? resolverAddressResult : undefined,\n false\n )\n const name = useSingleCallResult(resolverContract, 'name', ensNodeArgument)\n\n const changed = debouncedAddress !== address\n return {\n ENSName: changed ? null : name.result?.[0] ?? null,\n loading: changed || resolverAddress.loading || name.loading\n }\n}\n","import React from 'react'\nimport { useTranslation } from 'react-i18next'\nimport styled, { css } from 'styled-components'\nimport useCopyClipboard from '../../hooks/useCopyClipboard'\n\nimport { LinkStyledButton } from '../Shared'\nimport { CheckCircle, Copy } from 'react-feather'\n\nconst CopyIcon = styled(LinkStyledButton)`\n flex-shrink: 0;\n display: flex;\n align-items: center;\n padding: 0;\n\n font-weight: 500;\n font-size: 16px;\n line-height: 100%;\n font-family: ${({ theme }) => theme.typography.fontFamily.secondary};\n color: ${({ theme }) => theme.colors.text2};\n text-decoration: none;\n\n transition: all 0.4s ease;\n\n :hover,\n :active,\n :focus {\n text-decoration: none;\n color: ${({ theme }) => theme.colors.text3};\n }\n\n & > span > svg {\n width: 23px;\n height: 23px;\n }\n\n ${({ theme }) =>\n theme.mode === 'dark' &&\n css`\n font-size: 14px;\n `}\n\n ${({ theme }) => theme.mediaWidth.upToSmall`\n\t\tfont-size: 14px;\n\t\tline-height: 100%;\n\n\t\t& > span > svg {\n\t\t\twidth: 16px;\n\t\t\theight: 16px;\n\t\t}\n\t`};\n`\nconst TransactionStatusText = styled.span`\n font-weight: 500;\n font-size: 16px;\n line-height: 100%;\n ${({ theme }) => theme.flexRowNoWrap};\n align-items: center;\n`\n\nexport default function CopyHelper(props: { toCopy: string; children?: React.ReactNode }) {\n const [isCopied, setCopied] = useCopyClipboard()\n const { t } = useTranslation()\n\n return (\n setCopied(props.toCopy)}>\n {isCopied ? (\n \n \n {t('Copied')}\n \n ) : (\n \n \n \n )}\n {isCopied ? '' : props.children}\n \n )\n}\n","import copy from 'copy-to-clipboard'\nimport { useCallback, useEffect, useState } from 'react'\n\nexport default function useCopyClipboard(timeout = 500): [boolean, (toCopy: string) => void] {\n const [isCopied, setIsCopied] = useState(false)\n\n const staticCopy = useCallback(text => {\n const didCopy = copy(text)\n setIsCopied(didCopy)\n }, [])\n\n useEffect(() => {\n if (isCopied) {\n const hide = setTimeout(() => {\n setIsCopied(false)\n }, timeout)\n\n return () => {\n clearTimeout(hide)\n }\n }\n return undefined\n }, [isCopied, setIsCopied, timeout])\n\n return [isCopied, staticCopy]\n}\n","import { useEffect, useState, useMemo } from 'react'\nimport { ChainId } from '@wowswap-io/wowswap-sdk'\nimport { useTranslation } from 'react-i18next'\nimport { Web3Provider } from '@ethersproject/providers'\nimport { useWeb3React as useWeb3ReactCore } from '@web3-react/core'\nimport { AbstractConnector } from '@web3-react/abstract-connector'\nimport { Web3ReactContextInterface } from '@web3-react/core/dist/types'\nimport { isMobile } from 'react-device-detect'\n\nimport { connectorsByWallets } from '../connectors'\nimport { connectorLocalStorageKey, NetworkContextName, SUPPORTED_WALLET_NAMES } from '../constants'\n\nexport function useActiveWeb3React(): Web3ReactContextInterface & { chainId?: ChainId } {\n const context = useWeb3ReactCore()\n const contextNetwork = useWeb3ReactCore(NetworkContextName)\n const result = context.active ? context : contextNetwork\n\n return result\n}\n\ntype LikeInjectedConnector = AbstractConnector & { isAuthorized: () => Promise }\n\nconst cleanConnectorLocalStorage = () => {\n window.localStorage.removeItem(connectorLocalStorageKey)\n}\n\nexport function useEagerConnect() {\n const { activate, active } = useWeb3ReactCore() // specifically using useWeb3ReactCore because of what this hook does\n const [tried, setTried] = useState(false)\n\n useEffect(() => {\n const connectorId = window.localStorage.getItem(connectorLocalStorageKey) as SUPPORTED_WALLET_NAMES\n const connector = (connectorsByWallets[connectorId] ?? connectorsByWallets.INJECTED) as LikeInjectedConnector\n\n if (!connector.isAuthorized) {\n activate(connector, undefined, true).catch(() => {\n setTried(true)\n cleanConnectorLocalStorage()\n })\n\n return\n }\n\n connector.isAuthorized().then(isAuthorized => {\n if (isAuthorized) {\n activate(connector, undefined, true).catch(() => {\n setTried(true)\n cleanConnectorLocalStorage()\n })\n } else {\n if (isMobile) {\n activate(connector, undefined, true).catch(() => {\n setTried(true)\n cleanConnectorLocalStorage()\n })\n } else {\n setTried(true)\n }\n }\n })\n }, [activate]) // intentionally only running on mount (make sure it's only mounted once :))\n\n // if the connection worked, wait until we get confirmation of that to flip the flag\n useEffect(() => {\n if (active) {\n setTried(true)\n }\n }, [active])\n\n return tried\n}\n\n/**\n * Use for network and injected - logs user in\n * and out after checking what network theyre on\n */\nexport function useInactiveListener(suppress = false) {\n const { active, error, activate } = useWeb3ReactCore() // specifically using useWeb3React because of what this hook does\n\n useEffect(() => {\n const { ethereum } = window\n\n // WORKAROUND: switch to Avalanche\n if (ethereum && ethereum.removeAllListeners && active) {\n ethereum.removeAllListeners(['networkChanged'])\n }\n\n if (ethereum && ethereum.on && !active && !error && !suppress) {\n const handleChainChanged = () => {\n // eat errors\n activate(connectorsByWallets.INJECTED, undefined, true).catch(error => {\n console.error('Failed to activate after chain changed', error)\n })\n }\n\n const handleAccountsChanged = (accounts: string[]) => {\n if (accounts.length > 0) {\n // eat errors\n activate(connectorsByWallets.INJECTED, undefined, true).catch(error => {\n console.error('Failed to activate after accounts changed', error)\n })\n }\n }\n\n ethereum.on('chainChanged', handleChainChanged)\n ethereum.on('accountsChanged', handleAccountsChanged)\n\n return () => {\n if (ethereum.removeListener) {\n ethereum.removeListener('chainChanged', handleChainChanged)\n ethereum.removeListener('accountsChanged', handleAccountsChanged)\n }\n }\n }\n return undefined\n }, [active, error, suppress, activate])\n}\n\nexport function useChainLabel() {\n const { chainId } = useActiveWeb3React()\n\n return useMemo(() => {\n switch (chainId) {\n case ChainId.ETHEREUM:\n return ''\n case ChainId.MATIC:\n return 'QuickSwap'\n case ChainId.HECO:\n return 'Mdex'\n case ChainId.AVALANCE:\n return 'Pangolin'\n case ChainId.IOTEX:\n return 'Mimo'\n default:\n return 'Pancakeswap'\n }\n }, [chainId])\n}\n\nexport function useChainTradeWith() {\n const { chainId } = useActiveWeb3React()\n const { t } = useTranslation()\n\n return useMemo(() => {\n switch (chainId) {\n case ChainId.ETHEREUM:\n return t(\"fractionalized NFTs (Trade 'fractionalized NFTs' with up to 5X leverage!)\")\n default:\n return t(\"tokens on (Trade 'tokens' on some chain with up to 5X leverage!)\")\n }\n }, [chainId, t])\n}\n","export default __webpack_public_path__ + \"static/media/ethereum-bg.28b8d648.png\";","export default __webpack_public_path__ + \"static/media/iotex-bg.6d2417ca.png\";","export default __webpack_public_path__ + \"static/media/clock.b536d94a.gif\";","export default __webpack_public_path__ + \"static/media/walletConnectIcon.9076f6db.svg\";","export default __webpack_public_path__ + \"static/media/BalloonImgFriend.8fd1f7c3.png\";","export default __webpack_public_path__ + \"static/media/BalloonImgBg.ec1b4f8f.svg\";","export default __webpack_public_path__ + \"static/media/BalloonImgBgSm.e5e94dd4.svg\";","import { useEffect, useRef } from 'react'\n\nexport default function useInterval(callback: () => void, delay: null | number, leading = true) {\n const savedCallback = useRef<() => void>()\n\n // Remember the latest callback.\n useEffect(() => {\n savedCallback.current = callback\n }, [callback])\n\n // Set up the interval.\n useEffect(() => {\n function tick() {\n const current = savedCallback.current\n current && current()\n }\n\n if (delay !== null) {\n if (leading) tick()\n const id = setInterval(tick, delay)\n return () => clearInterval(id)\n }\n return undefined\n }, [delay, leading])\n}\n","import { ChainId, Pair, Token } from '@wowswap-io/wowswap-sdk'\nimport flatMap from 'lodash.flatmap'\nimport { useCallback, useMemo } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\n\nimport { useActiveWeb3React } from '../../hooks'\nimport { useAllTokens } from '../../hooks/tokens/Tokens'\nimport { AppDispatch, AppState } from '../index'\nimport {\n addSerializedPair,\n addSerializedToken,\n removeSerializedToken,\n SerializedPair,\n SerializedToken,\n updateUserDeadline,\n updateUserExpertMode,\n updateUserSlippageTolerance\n} from './actions'\nimport { BASES_TO_TRACK_LIQUIDITY_FOR } from '../../constants'\n\nfunction serializeToken(token: Token): SerializedToken {\n return {\n chainId: token.chainId,\n address: token.address,\n decimals: token.decimals,\n symbol: token.symbol,\n name: token.name\n }\n}\n\nfunction deserializeToken(serializedToken: SerializedToken): Token {\n return new Token(\n serializedToken.chainId,\n serializedToken.address,\n serializedToken.decimals,\n serializedToken.symbol,\n serializedToken.name\n )\n}\n\nexport function useIsExpertMode(): boolean {\n return useSelector(state => state.user.userExpertMode)\n}\n\nexport function useExpertModeManager(): [boolean, () => void] {\n const dispatch = useDispatch()\n const expertMode = useIsExpertMode()\n\n const toggleSetExpertMode = useCallback(() => {\n dispatch(updateUserExpertMode({ userExpertMode: !expertMode }))\n }, [expertMode, dispatch])\n\n return [expertMode, toggleSetExpertMode]\n}\n\nexport function useUserSlippageTolerance(): [number, (slippage: number) => void] {\n const dispatch = useDispatch()\n const userSlippageTolerance = useSelector(state => {\n return state.user.userSlippageTolerance\n })\n\n const setUserSlippageTolerance = useCallback(\n (userSlippageTolerance: number) => {\n dispatch(updateUserSlippageTolerance({ userSlippageTolerance }))\n },\n [dispatch]\n )\n\n return [userSlippageTolerance, setUserSlippageTolerance]\n}\n\nexport function useUserDeadline(): [number, (slippage: number) => void] {\n const dispatch = useDispatch()\n const userDeadline = useSelector(state => {\n return state.user.userDeadline\n })\n\n const setUserDeadline = useCallback(\n (userDeadline: number) => {\n dispatch(updateUserDeadline({ userDeadline }))\n },\n [dispatch]\n )\n\n return [userDeadline, setUserDeadline]\n}\n\nexport function useAddUserToken(): (token: Token) => void {\n const dispatch = useDispatch()\n return useCallback(\n (token: Token) => {\n dispatch(addSerializedToken({ serializedToken: serializeToken(token) }))\n },\n [dispatch]\n )\n}\n\nexport function useRemoveUserAddedToken(): (chainId: number, address: string) => void {\n const dispatch = useDispatch()\n return useCallback(\n (chainId: number, address: string) => {\n dispatch(removeSerializedToken({ chainId, address }))\n },\n [dispatch]\n )\n}\n\nexport function useUserAddedTokens(): Token[] {\n const { chainId } = useActiveWeb3React()\n const serializedTokensMap = useSelector(({ user: { tokens } }) => tokens)\n\n return useMemo(() => {\n if (!chainId) return []\n return Object.values(serializedTokensMap[chainId as ChainId] ?? {}).map(deserializeToken)\n }, [serializedTokensMap, chainId])\n}\n\nfunction serializePair(pair: Pair): SerializedPair {\n return {\n token0: serializeToken(pair.token0),\n token1: serializeToken(pair.token1)\n }\n}\n\nexport function usePairAdder(): (pair: Pair) => void {\n const dispatch = useDispatch()\n\n return useCallback(\n (pair: Pair) => {\n dispatch(addSerializedPair({ serializedPair: serializePair(pair) }))\n },\n [dispatch]\n )\n}\n\n/**\n * Returns all the pairs of tokens that are tracked by the user for the current chain ID.\n */\nexport function useTrackedTokenPairs(): [Token, Token][] {\n const { chainId } = useActiveWeb3React()\n const tokens = useAllTokens()\n\n // pairs for every token against every base\n const generatedPairs: [Token, Token][] = useMemo(\n () =>\n chainId\n ? flatMap(Object.keys(tokens), tokenAddress => {\n const token = tokens[tokenAddress]\n // for each token on the current chain,\n return (\n // loop though all bases on the current chain\n (BASES_TO_TRACK_LIQUIDITY_FOR[chainId] ?? [])\n // to construct pairs of the given token with each base\n .map(base => {\n if (base.address === token.address) {\n return null\n } else {\n return [base, token]\n }\n })\n .filter((p): p is [Token, Token] => p !== null)\n )\n })\n : [],\n [tokens, chainId]\n )\n\n // pairs saved by users\n const savedSerializedPairs = useSelector(({ user: { pairs } }) => pairs)\n\n const userPairs: [Token, Token][] = useMemo(() => {\n if (!chainId || !savedSerializedPairs) return []\n const forChain = savedSerializedPairs[chainId]\n if (!forChain) return []\n\n return Object.keys(forChain).map(pairId => {\n return [deserializeToken(forChain[pairId].token0), deserializeToken(forChain[pairId].token1)]\n })\n }, [savedSerializedPairs, chainId])\n\n const combinedList = useMemo(() => userPairs.concat(generatedPairs), [generatedPairs, userPairs])\n\n return useMemo(() => {\n // dedupes pairs of tokens in the combined list\n const keyed = combinedList.reduce<{ [key: string]: [Token, Token] }>((memo, [tokenA, tokenB]) => {\n const sorted = tokenA.sortsBefore(tokenB)\n const key = sorted ? `${tokenA.address}:${tokenB.address}` : `${tokenB.address}:${tokenA.address}`\n if (memo[key]) return memo\n memo[key] = sorted ? [tokenA, tokenB] : [tokenB, tokenA]\n return memo\n }, {})\n\n return Object.keys(keyed).map(key => keyed[key])\n }, [combinedList])\n}\n","import React from 'react'\nimport styled from 'styled-components'\n\nconst BlockHeaderStyle = styled.div<{ marginBottom?: string }>`\n margin-bottom: ${({ marginBottom }) => marginBottom || '20px'};\n\n display: flex;\n justify-content: ${({ theme }) => (theme.mode === 'metis' ? 'center' : 'space-between')};\n`\n\nexport function BlockHeader(props: { children: React.ReactNode; marginBottom?: string }) {\n const { children, ...rest } = props\n return {children}\n}\n","import styled from 'styled-components'\n\nexport const ExpandablePanelComponent = styled.div`\n display: flex;\n flex-direction: column;\n font-size: 16px;\n line-height: 16px;\n color: ${({ theme }) => theme.colors.primary4};\n`\n\nexport const Label = styled.span`\n display: flex;\n align-items: center;\n\n outline: none;\n cursor: pointer;\n height: 26px;\n\n margin-right: auto;\n`\nexport const Content = styled.div`\n font-size: 12px;\n`\n","import React from 'react'\nimport useCollapse from 'react-collapsed'\nimport { Text } from 'rebass'\n\nimport { ExpandablePanelComponent, Label, Content } from './styleds'\n\ntype ExpandablePanelProps = {\n label: string\n children: React.ReactNode\n style?: React.CSSProperties\n}\n\nexport default function ExpandablePanel({ label, style, children }: ExpandablePanelProps) {\n const { isExpanded, getToggleProps, getCollapseProps } = useCollapse()\n\n return (\n \n \n {children}\n \n )\n}\n","import React, { useContext } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { ThemeContext } from 'styled-components'\nimport { AlertTriangle } from 'react-feather'\n\nimport { AutoColumn } from 'components/Column'\nimport { RowBetween, RowCenter } from 'components/Row'\nimport { CloseIcon } from 'components/Shared'\nimport { ButtonPrimary } from 'components/Button'\n\nimport { BottomSection, Section, WraperClose, Wrapper, Title, Message } from '../styleds'\nimport ExpandablePanel from 'components/ExpandablePanel'\n\ntype TransactionErrorContentProps = {\n message: string\n onDismiss: () => void\n isEpandable?: boolean\n expandableContent?: React.ReactNode\n}\n\nexport function TransactionErrorContent({\n message,\n onDismiss,\n isEpandable = false,\n expandableContent\n}: TransactionErrorContentProps) {\n const theme = useContext(ThemeContext)\n const isMetisMode = theme.mode === 'metis'\n const RowTitle = isMetisMode ? RowCenter : RowBetween\n\n const { t } = useTranslation()\n\n return (\n \n
\n \n \n \n \n {t('Error')}\n \n \n \n {message}\n \n {isEpandable && (\n \n {expandableContent}\n \n )}\n
\n \n {t('Dismiss')}\n \n
\n )\n}\n","/**\n * Returns true if the string value is zero in hex\n * @param hexNumberString\n */\nexport default function isZero(hexNumberString: string) {\n return /^0x0*$/.test(hexNumberString)\n}\n","import { InjectedConnector } from '@web3-react/injected-connector'\n\nexport class InjectedFakeHardwareConnector extends InjectedConnector {}\n","export default __webpack_public_path__ + \"static/media/logo--mobile.4abe0e3e.svg\";","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgDropdown(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 12,\n height: 7,\n fill: \"none\",\n viewBox: \"0 0 12 7\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0.97168 1L6.20532 6L11.439 1\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDropdown);\nexport default __webpack_public_path__ + \"static/media/dropdown.97a760c7.svg\";\nexport { ForwardRef as ReactComponent };","import { INTEGRATION_CODE } from '../constants/integration/integrationCodes'\nimport useLocationParsedQueryString from './useLocationParsedQueryString'\n\nexport default function useIntegrationQueryParam() {\n const queryParams = useLocationParsedQueryString()\n const inIframe = (() => {\n try {\n return window.top !== window.self\n } catch {\n return true\n }\n })()\n\n const integrationWith = (queryParams.integration as string | undefined)?.toUpperCase() ?? ''\n const isMetisIntegration = integrationWith === INTEGRATION_CODE.METIS\n\n return {\n inIframe,\n isMetisIntegration,\n integrationWith\n } as const\n}\n","import { useMemo } from 'react'\nimport { parse, ParsedQs } from 'qs'\n\nexport default function useLocationParsedQueryString(): ParsedQs {\n const { search } = window?.location ?? { search: '' }\n\n return useMemo(\n () => (search && search.length > 1 ? parse(search, { parseArrays: false, ignoreQueryPrefix: true }) : {}),\n [search]\n )\n}\n","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgWarning(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 25,\n height: 21,\n viewBox: \"0 0 25 21\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.6842 0.981516C11.4784 -0.32717 13.5217 -0.327173 14.3158 0.981514L24.7323 18.1464C25.5079 19.4246 24.5055 21 22.9164 21H2.08355C0.494536 21 -0.507934 19.4246 0.267734 18.1464L10.6842 0.981516Z\",\n fill: \"#E85A44\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11 7H14V13.6179H11V7ZM11 15.8238H14V18H11V15.8238Z\",\n fill: \"#FDF4E1\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWarning);\nexport default __webpack_public_path__ + \"static/media/warning.f7091bd3.svg\";\nexport { ForwardRef as ReactComponent };","export function getCookie(name: string): string | null | undefined {\n const cookies = document.cookie.split(';')\n\n for (let i = 0; i < cookies.length; i++) {\n const cookiePair = cookies[i].split('=')\n\n if (name === cookiePair[0].trim()) {\n return decodeURIComponent(cookiePair[1])\n }\n }\n\n return null\n}\n","const BASE_NOTIFICATION_URL = process.env.REACT_APP_NOTIFICATION_URL ?? ''\n\nconst NOTIFICATION_URLS = {\n USER: 'user',\n EMAIL_SUBSCRIBE: 'user/subscribe/email',\n PUSH_SUBSCRIBE: 'user/subscribe/push',\n UNSUBSCRIBE: 'user/unsubscribe',\n TEST: '/notifications/test'\n}\n\nconst buildUrl = (path = '', params: any): URL => {\n const url = new URL(path, BASE_NOTIFICATION_URL)\n url.search = new URLSearchParams(params).toString()\n\n return url\n}\n\nconst HTTP = {\n get: (url: string): Promise => {\n return fetch(url, {\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json'\n },\n mode: 'cors'\n })\n },\n\n post: (url: string, data: any): Promise => {\n return fetch(url, {\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json'\n },\n mode: 'cors',\n method: 'POST',\n body: JSON.stringify(data)\n })\n }\n}\n\ntype UpdateUserNotifications =\n | { chainIds: string[] }\n | { profitValues: string[]; chainIds: string[] }\n | { positionHealthValues: string[]; chainIds: string[] }\n | { liquidationEnabled: boolean; chainIds: string[] }\n | { apyValues: string[]; chainIds: string[] }\n | { telegramEnabled: boolean; chainIds: string[] }\n | { pushEnabled: boolean; chainIds: string[] }\n | { emailEnabled: boolean; chainIds: string[] }\n\nclass NotificationsHttpService {\n fetchUserNotifications(wallet: string): Promise {\n const url = buildUrl(NOTIFICATION_URLS.USER, { address: wallet }).toString()\n\n return HTTP.get(url)\n }\n\n updateUserNotifications(wallet: string, data: UpdateUserNotifications): Promise {\n const url = buildUrl(NOTIFICATION_URLS.USER, { address: wallet }).toString()\n\n return HTTP.post(url, data)\n }\n\n subscribeEmailNotifications(wallet: string, data: { email: string; redirectUrl: string }): Promise {\n const url = buildUrl(NOTIFICATION_URLS.EMAIL_SUBSCRIBE, { address: wallet }).toString()\n\n return HTTP.post(url, data)\n }\n\n subscribePushNotifications(wallet: string, data: { name: string; token: string }): Promise {\n const url = buildUrl(NOTIFICATION_URLS.PUSH_SUBSCRIBE, { address: wallet }).toString()\n\n return HTTP.post(url, data)\n }\n\n unsubscribeNotifications(wallet: string, data: { name: string; type: string }): Promise {\n const url = buildUrl(NOTIFICATION_URLS.UNSUBSCRIBE, { address: wallet }).toString()\n\n return HTTP.post(url, data)\n }\n}\n\nexport default new NotificationsHttpService()\n","import { createAsyncThunk } from '@reduxjs/toolkit'\n\nimport NotificationsHttpService from '../../services/api/http/notifications/notifications.service'\n\nexport const fetchUserNotifications = createAsyncThunk('notifications/fetchUser', async (wallet: string) => {\n const response = await NotificationsHttpService.fetchUserNotifications(wallet)\n return await response.json()\n})\n\nexport const setChainIdsNotifications = createAsyncThunk(\n 'notifications/setChainIds',\n async ({ wallet, chainIds }: { wallet: string; chainIds: string[] }) => {\n const response = await NotificationsHttpService.updateUserNotifications(wallet, { chainIds })\n return await response.json()\n }\n)\n\nexport const setProfitNotifications = createAsyncThunk(\n 'notifications/setProfit',\n async ({ wallet, profitValues, chainIds }: { wallet: string; profitValues: string[]; chainIds: string[] }) => {\n const response = await NotificationsHttpService.updateUserNotifications(wallet, { profitValues, chainIds })\n return await response.json()\n }\n)\n\nexport const setHealthNotifications = createAsyncThunk(\n 'notifications/setHealth',\n async ({\n wallet,\n positionHealthValues,\n chainIds\n }: {\n wallet: string\n positionHealthValues: string[]\n chainIds: string[]\n }) => {\n const response = await NotificationsHttpService.updateUserNotifications(wallet, { positionHealthValues, chainIds })\n return await response.json()\n }\n)\n\nexport const enableLiquidationNotifications = createAsyncThunk(\n 'notifications/enableLiquidation',\n async ({\n wallet,\n liquidationEnabled,\n chainIds\n }: {\n wallet: string\n liquidationEnabled: boolean\n chainIds: string[]\n }) => {\n const response = await NotificationsHttpService.updateUserNotifications(wallet, { liquidationEnabled, chainIds })\n return await response.json()\n }\n)\n\nexport const setAPYNotifications = createAsyncThunk(\n 'notifications/setAPY',\n async ({ wallet, apyValues, chainIds }: { wallet: string; apyValues: string[]; chainIds: string[] }) => {\n const response = await NotificationsHttpService.updateUserNotifications(wallet, { apyValues, chainIds })\n return await response.json()\n }\n)\n\nexport const enanbleTelegramNotifications = createAsyncThunk(\n 'notifications/enanbleTelegram',\n async ({ wallet, telegramEnabled, chainIds }: { wallet: string; telegramEnabled: boolean; chainIds: string[] }) => {\n const response = await NotificationsHttpService.updateUserNotifications(wallet, { telegramEnabled, chainIds })\n return await response.json()\n }\n)\n\nexport const enanblePushBrowserNotifications = createAsyncThunk(\n 'notifications/enanblePushBrowser',\n async ({ wallet, pushEnabled, chainIds }: { wallet: string; pushEnabled: boolean; chainIds: string[] }) => {\n const response = await NotificationsHttpService.updateUserNotifications(wallet, { pushEnabled, chainIds })\n return await response.json()\n }\n)\n\nexport const enanbleEmailNotifications = createAsyncThunk(\n 'notifications/enanbleEmail',\n async ({ wallet, emailEnabled, chainIds }: { wallet: string; emailEnabled: boolean; chainIds: string[] }) => {\n const response = await NotificationsHttpService.updateUserNotifications(wallet, { emailEnabled, chainIds })\n return await response.json()\n }\n)\n\nexport const resubscribeEmailNotifications = createAsyncThunk(\n 'notifications/resubscribeEmail',\n async ({\n wallet,\n emails,\n email,\n redirectUrl\n }: {\n wallet: string\n emails: string[]\n email: string\n redirectUrl: string\n }) => {\n await Promise.allSettled(\n emails.map(email => NotificationsHttpService.unsubscribeNotifications(wallet, { name: email, type: 'email' }))\n )\n\n const response = await NotificationsHttpService.subscribeEmailNotifications(wallet, { email, redirectUrl })\n return await response.json()\n }\n)\n\nexport const subscribeEmailNotifications = createAsyncThunk(\n 'notifications/subscribeEmail',\n async ({ wallet, email, redirectUrl }: { wallet: string; email: string; redirectUrl: string }) => {\n const response = await NotificationsHttpService.subscribeEmailNotifications(wallet, { email, redirectUrl })\n return await response.json()\n }\n)\n\nexport const subcribePushNotifications = createAsyncThunk(\n 'notifications/subcribePush',\n async ({ wallet, name, token }: { wallet: string; name: string; token: string }) => {\n const response = await NotificationsHttpService.subscribePushNotifications(wallet, { name, token })\n return await response.json()\n }\n)\n\nexport const unsubcribePushNotifications = createAsyncThunk(\n 'notifications/unsubcribePush',\n async ({ wallet, name }: { wallet: string; name: string }) => {\n const response = await NotificationsHttpService.unsubscribeNotifications(wallet, { name, type: 'push' })\n return await response.json()\n }\n)\n","export default __webpack_public_path__ + \"static/media/logo-white.6ab6f9e0.svg\";","var _g, _defs;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgIcon20Cm(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 36,\n height: 37,\n viewBox: \"0 0 36 37\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M31.3048 22.1085C31.0198 22.3073 30.6872 22.4246 30.3419 22.4481C29.9967 22.4716 29.6516 22.4004 29.3429 22.2419C28.6184 21.8275 28.2279 20.8557 28.2279 19.5314V15.4726C28.2279 13.5243 27.4658 12.138 26.1908 11.7617C24.0361 11.1233 22.4271 13.7958 21.8061 14.801L17.9953 21.0462V13.4242C17.953 11.6664 17.3884 10.6136 16.3204 10.2992C15.6147 10.0896 14.5562 10.1754 13.5259 11.7664L5.00575 25.6147C3.87211 23.4185 3.28431 20.9756 3.29326 18.4976C3.29326 10.1515 9.87977 3.3632 17.9953 3.3632C26.1108 3.3632 32.7209 10.1515 32.7209 18.4976V18.5405C32.7209 18.5405 32.7209 18.5691 32.7209 18.5834C32.8008 20.1983 32.2833 21.4845 31.3095 22.1085H31.3048ZM36.0094 18.5024V18.4214C35.9435 8.2508 27.8892 0 17.9953 0C8.10141 0 0 8.29844 0 18.4976C0 28.6968 8.07318 37 17.9953 37C22.546 36.9998 26.9236 35.2336 30.2274 32.0648C30.5481 31.7588 30.7368 31.3373 30.7526 30.8914C30.7685 30.4456 30.6102 30.0114 30.3121 29.6829C30.1694 29.5231 29.9969 29.3935 29.8046 29.3014C29.6123 29.2094 29.4039 29.1567 29.1914 29.1466C28.9789 29.1364 28.7665 29.1688 28.5664 29.2421C28.3663 29.3153 28.1826 29.4279 28.0256 29.5733C26.6032 30.9395 24.9228 32.0006 23.0854 32.6928C21.2479 33.3851 19.2912 33.6942 17.3328 33.6017C15.3744 33.5091 13.4547 33.0168 11.6888 32.1543C9.92301 31.2918 8.34753 30.0769 7.05698 28.5825L14.7256 16.1015V21.8608C14.7256 24.6286 15.7841 25.5241 16.6733 25.7861C17.5625 26.0482 18.9221 25.8671 20.3476 23.5234L24.5818 16.5826C24.7135 16.3587 24.8406 16.1681 24.9535 16.0014V19.5314C24.9535 22.1181 25.9791 24.1855 27.7763 25.205C28.5935 25.6517 29.5143 25.8675 30.4422 25.8298C31.3702 25.792 32.271 25.5022 33.0502 24.9906C35.0261 23.6901 36.1035 21.3368 35.9906 18.5024H36.0094Z\",\n fill: \"#FDF4E1\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 36,\n height: 37,\n fill: \"white\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIcon20Cm);\nexport default __webpack_public_path__ + \"static/media/icon--20-cm.fc4db94f.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4, _path5;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgIcon20Coingecko(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 39,\n height: 39,\n viewBox: \"0 0 39 39\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.4016 0C18.2308 0 20.0295 0 21.8587 0C22.2245 0.274377 22.6513 0.213404 23.0781 0.304863C32.9557 2.07307 40.059 11.3409 38.87 21.3099C37.8945 29.4498 33.5044 35.0592 25.7 37.7725C21.0355 39.3883 16.3711 39.1139 11.8287 37.2847C7.04234 35.3336 3.68884 31.8277 1.5548 27.1328C0.884103 25.6085 0.609726 23.9927 0 22.4684C0 20.4868 0 18.5357 0 16.5541C0.304863 16.4321 0.24389 16.1577 0.304863 15.9138C1.82918 7.92644 7.86547 1.85966 15.8834 0.335349C16.0968 0.274377 16.3407 0.304863 16.4016 0ZM31.8887 21.0965C31.9496 21.4014 31.7058 21.5538 31.5228 21.7062C31.0351 22.2245 30.5168 22.7123 29.9985 23.2001C27.834 25.3036 25.7914 27.5291 24.3281 30.1814C23.2915 32.0411 22.5599 33.9922 22.6208 36.1567C22.6513 37.0409 22.7123 37.0713 23.5354 36.8884C34.5105 34.4495 40.5773 22.2855 35.9129 12.0726C30.2729 -0.243891 13.6579 -2.25599 5.27413 8.41422C0.670698 14.2676 0.213404 22.4989 4.17662 28.84C4.29857 29.0534 4.39003 29.3888 4.6644 29.3583C4.93878 29.3278 4.93878 28.962 5.03024 28.7486C5.60948 27.3157 5.97531 25.8219 6.21921 24.2976C6.58504 22.0111 6.6765 19.7246 6.95088 17.4382C7.31671 14.3895 8.84103 12.286 11.5238 10.9446C14.1456 9.63367 16.8589 9.05443 19.7246 9.84707C19.8161 9.87756 19.9076 9.87756 20.0295 9.90805C21.5843 10.2739 23.0172 10.9141 24.5415 11.3714C24.6939 11.5543 24.9073 11.6458 25.1207 11.7372C26.4011 12.225 27.6816 12.7128 28.9925 13.0786C30.09 13.3835 31.157 13.8103 32.1021 14.42C34.1447 15.7614 34.541 17.743 33.1386 19.7856C32.8947 20.121 32.5899 20.4258 32.3155 20.7612C32.0411 20.3648 31.8277 20.7612 31.6143 20.8526C28.6571 22.3769 25.578 23.2915 22.194 22.9562C21.4014 22.8647 20.6697 22.5599 19.9076 22.3465C20.8221 23.2306 21.9501 23.5964 23.2001 23.6574C26.0353 23.7183 28.5352 22.7428 31.0046 21.4624C31.2789 21.3099 31.4923 21.0355 31.8887 21.0965ZM16.9504 11.5238C15.0297 11.5238 13.4749 13.0176 13.4445 14.9383C13.414 16.8894 14.9993 18.4747 16.9199 18.4747C18.8405 18.4747 20.3953 16.9199 20.3953 14.9993C20.4258 13.1091 18.871 11.5238 16.9504 11.5238ZM29.4193 19.2064C29.8766 19.1454 30.151 18.871 30.151 18.4137C30.151 17.9869 29.8766 17.7125 29.4193 17.7125C28.962 17.7125 28.6571 17.9869 28.6571 18.4442C28.6571 18.932 28.962 19.1759 29.4193 19.2064Z\",\n fill: \"#FDF4E1\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19.7246 9.8471C21.6452 9.02397 23.5659 9.66418 24.511 11.3714C23.0171 10.9141 21.5538 10.2739 19.999 9.90807C19.9075 9.87759 19.8161 9.87759 19.7246 9.8471Z\",\n fill: \"#FDF4E1\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M31.8582 21.0965C31.8886 20.9441 32.0106 20.8831 32.163 20.9136C32.102 21.0661 32.0411 21.1575 31.8582 21.0965Z\",\n fill: \"#FDF4E1\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32.1631 20.9442C32.1631 20.8527 32.2241 20.7917 32.3155 20.7917C32.2545 20.8222 32.1936 20.8832 32.1631 20.9442Z\",\n fill: \"#FDF4E1\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.9503 17.4685C15.5785 17.4685 14.481 16.4015 14.481 15.0296C14.481 13.6882 15.5175 12.6212 16.8589 12.5907C18.2308 12.5602 19.3588 13.6273 19.3893 14.9687C19.4197 16.3405 18.2917 17.4685 16.9503 17.4685Z\",\n fill: \"#FDF4E1\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIcon20Coingecko);\nexport default __webpack_public_path__ + \"static/media/icon--20-coingecko.359964e7.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgIcon20Bscscan(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.70847 9.46636C4.70849 9.36675 4.72818 9.26813 4.76642 9.17615C4.80466 9.08418 4.86068 9.00066 4.93129 8.9304C5.00189 8.86014 5.08568 8.80452 5.17783 8.76673C5.26999 8.72894 5.36871 8.70972 5.46831 8.71019L6.72805 8.7143C6.92891 8.7143 7.12155 8.79409 7.26358 8.93612C7.40561 9.07815 7.4854 9.27079 7.4854 9.47165V14.2354C7.62728 14.1933 7.80886 14.1485 8.00867 14.1014C8.1471 14.0689 8.27048 13.9905 8.35878 13.879C8.44709 13.7675 8.49516 13.6295 8.49519 13.4873V7.57865C8.49519 7.37778 8.57498 7.18513 8.717 7.04308C8.85903 6.90103 9.05166 6.8212 9.25254 6.82116H10.5161C10.717 6.8212 10.9096 6.90103 11.0516 7.04308C11.1937 7.18513 11.2734 7.37778 11.2734 7.57865V13.0628C11.2734 13.0628 11.5896 12.9349 11.8973 12.8049C12.0116 12.7566 12.1092 12.6756 12.1779 12.5721C12.2465 12.4687 12.2831 12.3473 12.2832 12.2231V5.68522C12.2832 5.48438 12.363 5.29177 12.505 5.14975C12.647 5.00772 12.8396 4.92791 13.0404 4.92787H14.3027C14.5034 4.92807 14.6959 5.00795 14.8377 5.14996C14.9796 5.29197 15.0593 5.48449 15.0593 5.68522V11.069C16.1536 10.2759 17.2627 9.32197 18.1428 8.175C18.2705 8.00851 18.355 7.813 18.3887 7.60592C18.4225 7.39884 18.4045 7.18661 18.3363 6.98819C17.9289 5.81609 17.2813 4.74195 16.4349 3.8345C15.5885 2.92705 14.5621 2.20628 13.4212 1.7183C12.2803 1.23032 11.0501 0.985881 9.80926 1.00063C8.56847 1.01538 7.34442 1.28899 6.21544 1.80395C5.08646 2.31891 4.07741 3.06388 3.25287 3.99119C2.42832 4.9185 1.80643 6.00773 1.427 7.18918C1.04758 8.37062 0.918958 9.61827 1.04938 10.8523C1.17981 12.0863 1.5664 13.2795 2.18443 14.3555C2.2921 14.5411 2.45052 14.6922 2.64106 14.7909C2.8316 14.8896 3.04635 14.9319 3.26009 14.9127C3.49886 14.8917 3.79616 14.862 4.14961 14.8205C4.30344 14.803 4.44547 14.7296 4.54863 14.6141C4.65179 14.4987 4.70889 14.3493 4.70906 14.1945V9.46636\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.68164 17.1061C6.01213 18.074 7.58445 18.655 9.22465 18.7847C10.8648 18.9145 12.509 18.588 13.9751 17.8414C15.4413 17.0947 16.6723 15.957 17.532 14.5542C18.3917 13.1513 18.8465 11.538 18.8462 9.89269C18.8462 9.68685 18.8367 9.48424 18.823 9.28223C15.5644 14.1423 9.5477 16.4143 4.68164 17.1061\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIcon20Bscscan);\nexport default __webpack_public_path__ + \"static/media/icon--20-bscscan.aaddd769.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgIcon20Fd(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.5871 2.00325L12.4468 2C10.0423 2 8.48845 3.50837 8.48845 5.84297V7.61483H6.33653C6.15058 7.61483 6 7.75747 6 7.9334V10.5006C6 10.6766 6.15075 10.819 6.33653 10.819H8.48845V17.297C8.48845 17.4729 8.63903 17.6154 8.82498 17.6154H11.6326C11.8186 17.6154 11.9692 17.4728 11.9692 17.297V10.819H14.4852C14.6712 10.819 14.8218 10.6766 14.8218 10.5006L14.8228 7.9334C14.8228 7.84893 14.7873 7.76803 14.7242 7.70824C14.6612 7.64846 14.5754 7.61483 14.4861 7.61483H11.9692V6.1128C11.9692 5.39086 12.151 5.02437 13.145 5.02437L14.5867 5.02388C14.7725 5.02388 14.9231 4.88125 14.9231 4.70548V2.32166C14.9231 2.14604 14.7727 2.00357 14.5871 2.00325Z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIcon20Fd);\nexport default __webpack_public_path__ + \"static/media/icon--20-fd.adda9ffa.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13, _path14, _path15, _path16;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgIcon20World(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.6765 5.87109C12.6589 6.08356 11.5687 6.20934 10.4453 6.23925V9.34201H14.1228C14.0889 8.1199 13.9364 6.94495 13.6765 5.87109Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.67649 9.34199C4.71096 8.0376 4.87418 6.77878 5.15389 5.62335C4.23788 5.36623 3.39978 5.03381 2.67296 4.63428C1.67747 6.00796 1.09813 7.62943 1 9.34199H4.67649Z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.67649 10.3877H1C1.09813 12.1003 1.67747 13.7217 2.67292 15.0954C3.39975 14.6959 4.23788 14.3635 5.15389 14.1063C4.87418 12.9509 4.71093 11.6921 4.67649 10.3877Z\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.4261 1.54615C11.1064 1.27567 10.7781 1.09346 10.4453 1V5.19336C11.4721 5.16477 12.4654 5.05217 13.3915 4.86393C13.2215 4.34452 13.024 3.85666 12.7999 3.40846C12.3973 2.60327 11.935 1.97667 11.4261 1.54615Z\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.43457 15.1118C4.66909 15.3268 3.96562 15.5979 3.34766 15.9199C3.43062 16.0098 3.51512 16.0986 3.60213 16.1857C4.60738 17.1909 5.80991 17.9271 7.12241 18.3584C6.75475 17.9238 6.41472 17.399 6.10984 16.7892C5.85184 16.2732 5.6262 15.7108 5.43457 15.1118Z\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.04665 3.40846C6.82257 3.85666 6.62502 4.34452 6.45508 4.86393C7.38109 5.05217 8.37443 5.16477 9.40122 5.19336V1C9.06842 1.09349 8.74014 1.27567 8.42041 1.54615C7.91145 1.97667 7.44928 2.60327 7.04665 3.40846Z\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.1688 10.3877C15.1343 11.6921 14.9711 12.9509 14.6914 14.1063C15.6074 14.3635 16.4456 14.6959 17.1724 15.0954C18.1678 13.7217 18.7471 12.1003 18.8453 10.3877H15.1688Z\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.4105 4.61811C15.176 4.40313 15.8795 4.13206 16.4974 3.81006C16.4144 3.72015 16.33 3.6313 16.2429 3.54429C15.2377 2.53907 14.0352 1.80287 12.7227 1.37158C13.0903 1.80614 13.4303 2.33096 13.7352 2.94069C13.9932 3.45668 14.2189 4.01918 14.4105 4.61811Z\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.7999 16.3215C13.024 15.8734 13.2215 15.3855 13.3915 14.866C12.4654 14.6778 11.4721 14.5652 10.4453 14.5366V18.73C10.7781 18.6365 11.1064 18.4543 11.4261 18.1838C11.9351 17.7533 12.3973 17.1268 12.7999 16.3215Z\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.6914 5.62332C14.9711 6.77875 15.1343 8.03757 15.1688 9.34195H18.8453C18.7472 7.6294 18.1678 6.00793 17.1724 4.63428C16.4456 5.03377 15.6074 5.36619 14.6914 5.62332Z\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.4453 10.3877V13.4905C11.5687 13.5204 12.6589 13.6461 13.6765 13.8586C13.9364 12.7847 14.0889 11.6098 14.1228 10.3877H10.4453Z\"\n })), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.40012 9.34201V6.23925C8.27669 6.20934 7.18652 6.08356 6.1689 5.87109C5.90902 6.94498 5.75654 8.1199 5.72266 9.34201H9.40012V9.34201Z\"\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.43457 4.61811C5.62616 4.01915 5.85184 3.45668 6.10984 2.94069C6.41472 2.33096 6.75475 1.80611 7.12241 1.37158C5.80994 1.80287 4.60738 2.53907 3.60213 3.54432C3.51512 3.63133 3.43062 3.72019 3.34766 3.81009C3.96562 4.13206 4.66909 4.40313 5.43457 4.61811Z\"\n })), _path14 || (_path14 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.4124 15.1118C14.2209 15.7108 13.9952 16.2732 13.7372 16.7892C13.4323 17.399 13.0923 17.9238 12.7246 18.3584C14.0371 17.9271 15.2396 17.1909 16.2449 16.1857C16.3319 16.0987 16.4164 16.0098 16.4994 15.9199C15.8814 15.5979 15.1779 15.3268 14.4124 15.1118Z\"\n })), _path15 || (_path15 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.40012 10.3877H5.72266C5.75654 11.6098 5.90902 12.7848 6.1689 13.8586C7.18649 13.6461 8.27669 13.5204 9.40012 13.4905V10.3877V10.3877Z\"\n })), _path16 || (_path16 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.42041 18.1833C8.74014 18.4538 9.06845 18.636 9.40122 18.7295V14.5361C8.37443 14.5647 7.38109 14.6773 6.45508 14.8656C6.62502 15.385 6.82254 15.8729 7.04665 16.3211C7.44928 17.1262 7.91145 17.7528 8.42041 18.1833Z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIcon20World);\nexport default __webpack_public_path__ + \"static/media/icon--20-world.7675618e.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react'\nimport { useTranslation } from 'react-i18next'\nimport styled from 'styled-components'\nimport { ReactComponent as CoinMarketIcon } from '../../assets/svg/icon--20-cm.svg'\nimport { ReactComponent as CoinGeckoIcon } from '../../assets/svg/icon--20-coingecko.svg'\nimport { ReactComponent as EnvelopeIcon } from '../../assets/svg/icon--20-envelope.svg'\nimport { ReactComponent as TmIcon } from '../../assets/svg/icon--20-tm.svg'\nimport { ReactComponent as TwIcon } from '../../assets/svg/icon--20-tw.svg'\nimport { ReactComponent as SociconIcon } from '../../assets/svg/icon--20-socicon.svg'\nimport { ReactComponent as BscscanIcon } from '../../assets/svg/icon--20-bscscan.svg'\nimport { ReactComponent as FbIcon } from '../../assets/svg/icon--20-fd.svg'\nimport { ReactComponent as WorldIcon } from '../../assets/svg/icon--20-world.svg'\nimport { ReactComponent as Discord } from '../../assets/svg/discord.svg'\n\nconst StyledCoinMarketIconIcon = styled(CoinMarketIcon)`\n width: 20px;\n height: 20px;\n\n fill: #fdf4e1;\n`\n\nconst StyledCoingeckoIcon = styled(CoinGeckoIcon)`\n width: 20px;\n height: 20px;\n\n fill: #fdf4e1;\n`\n\nconst StyledEnvelopeIcon = styled(EnvelopeIcon)`\n width: 20px;\n height: 20px;\n\n fill: #fdf4e1;\n`\nconst StyledTmIcon = styled(TmIcon)`\n width: 20px;\n height: 20px;\n\n fill: #fdf4e1;\n`\nconst StyledTwIcon = styled(TwIcon)`\n width: 20px;\n height: 20px;\n\n fill: #fdf4e1;\n`\nconst StyledSociconIcon = styled(SociconIcon)`\n width: 20px;\n height: 20px;\n\n fill: #fdf4e1;\n`\nconst StyledBscscanIcon = styled(BscscanIcon)`\n width: 20px;\n height: 20px;\n\n fill: #fdf4e1;\n`\nconst StyledFbIcon = styled(FbIcon)`\n width: 20px;\n height: 20px;\n\n fill: #fdf4e1;\n`\nconst StyledWorldIcon = styled(WorldIcon)`\n width: 20px;\n height: 20px;\n\n fill: #fdf4e1;\n`\n\nconst StyledDiscordIcon = styled(Discord)`\n width: 20px;\n height: 20px;\n\n fill: #fdf4e1;\n`\n\nconst ShareSocialBody = styled.div<{ size?: 'sm'; embed?: boolean }>`\n padding: 10px 7px 0 7px;\n\n background: #ffffff;\n border-radius: 10px;\n\n ${({ embed }) =>\n embed\n ? `\npadding: 30px;\nborder-top: 1px solid #ffffff;\nborder-radius: 0;\nbackground: none;\n`\n : ``}\n\n ${({ size }) => {\n if (size === 'sm') {\n return `\npadding: 0;\n\nbackground: none;\nborder-radius: 0;\n`\n } else {\n return ``\n }\n }}\n`\n\nconst ShareSocialTitle = styled.h3<{ embed?: boolean }>`\n margin: 0;\n margin-bottom: 12px;\n\n font-weight: normal;\n font-size: 11px;\n line-height: 14px;\n text-align: center;\n text-transform: uppercase;\n color: #000000;\n\n ${({ embed }) =>\n embed\n ? `\nfont-family: 'Abadi MT Std',sans-serif;\nfont-style: normal;\nfont-weight: 500;\nfont-size: 16px;\nline-height: 120%;\ntext-transform: unset;\ntext-align: left;\n`\n : ''}\n`\n\nconst ShareSocialList = styled.ul`\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n padding: 0;\n margin: 0;\n margin-left: -5px;\n margin-right: -5px;\n\n list-style: none;\n`\n\nconst ShareSocialItem = styled.li<{ size?: 'sm' }>`\n padding: 0 7px;\n margin-bottom: 14px;\n\n ${({ size }) => {\n if (size === 'sm') {\n return `\nmargin-bottom: 0;\n`\n } else {\n return ``\n }\n }}\n`\nconst ShareSocialLink = styled.a<{ size?: 'sm' }>`\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n height: 34px;\n width: 34px;\n\n text-decoration: none;\n color: #000000;\n\n background: #e85a44;\n border: 1px solid #000000;\n border-radius: 5px;\n\n transition: all 0.4s ease;\n\n &:hover {\n background: #f3ba2f;\n }\n ${({ size }) => {\n if (size === 'sm') {\n return `\nborder: 2px solid #000000;\nheight: 29px;\nwidth: 29px;\n`\n } else {\n return ``\n }\n }}\n`\n\nexport function ShareSocial(props: { onClick?: () => void; embed?: boolean }) {\n const { t } = useTranslation()\n\n return (\n \n {t('Share on your social networks')}:\n\n \n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n \n \n )\n}\n\nexport function ShareSocialDonations(props: { onClick?: () => void }) {\n return (\n \n \n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n \n \n )\n}\n","// Firebase Cloud Messaging Configuration File.\n// Read more at https://firebase.google.com/docs/cloud-messaging/js/client && https://firebase.google.com/docs/cloud-messaging/js/receive\n\nimport { initializeApp } from 'firebase/app'\nimport { isSupported, getMessaging, getToken, deleteToken, onMessage } from 'firebase/messaging'\n\nimport { vapidKey, firebaseConfig } from './config'\n\n// Initialize Firebase\ninitializeApp(firebaseConfig)\n\nexport const FirebasPushNotificationsService = {\n isSupported: (): Promise => {\n return isSupported()\n },\n\n getNotificationToken: (): Promise => {\n const messaging = getMessaging()\n\n return getToken(messaging, { vapidKey })\n .then(currentToken => {\n if (!currentToken) {\n // Show permission request UI\n console.log('No registration token available. Request permission to generate one.')\n }\n\n return currentToken\n })\n .catch(err => {\n console.error('An error occurred while retrieving token. ', err)\n })\n },\n\n deleteNotificationToken: (): Promise => {\n const messaging = getMessaging()\n\n return deleteToken(messaging)\n },\n\n onNotificationListener: () => {\n const messaging = getMessaging()\n\n return onMessage(messaging, payload => {\n const title = 'WoWSwap notification'\n const notificationOptions: NotificationOptions = {\n body: payload?.data?.message,\n icon: '/images/192x192_App_Icon.png'\n }\n new Notification(title, notificationOptions)\n })\n }\n}\n","export const vapidKey = 'BGqV7NSmW2sfwkR1iBFTchuaZ2iXKyQA0OapkNeqsTa6XE9CEEqXt3Hk4P87dKHSZjkFbprLiv2-AfixsZWszDg'\n\n// Your web app's Firebase configuration\nexport const firebaseConfig = {\n apiKey: 'AIzaSyC8ea_PkjmO6jwMRu8a5df-OvokqWjkkn0',\n authDomain: 'utility-chimera-336108.firebaseapp.com',\n projectId: 'utility-chimera-336108',\n storageBucket: 'utility-chimera-336108.appspot.com',\n messagingSenderId: '401631592694',\n appId: '1:401631592694:web:6d9442f5595095aad92cd7'\n}\n","import { useCallback, useEffect, useState } from 'react'\n\nimport { FirebasPushNotificationsService } from '../services/notifications/push/firebase/pushNotifications.service'\n\nexport function useFirebasePushNotifications() {\n const [isSupported, setIsSupported] = useState(false)\n\n useEffect(() => {\n setIsSupported(false)\n FirebasPushNotificationsService.isSupported().then(isSupport => {\n setIsSupported(isSupport)\n })\n }, [setIsSupported])\n\n const getNotificationToken = useCallback(async () => {\n return await FirebasPushNotificationsService.getNotificationToken()\n }, [])\n\n const deleteNotificationToken = useCallback(async () => {\n return await FirebasPushNotificationsService.deleteNotificationToken()\n }, [])\n\n const onNotificationListener = useCallback(() => {\n return FirebasPushNotificationsService.onNotificationListener()\n }, [])\n\n return {\n isSupported,\n getNotificationToken,\n deleteNotificationToken,\n onNotificationListener\n }\n}\n\nexport function useListenerFirebasePushNotifications() {\n const { isSupported, onNotificationListener } = useFirebasePushNotifications()\n\n useEffect(() => {\n if (!isSupported) {\n return\n }\n\n return onNotificationListener()\n }, [isSupported, onNotificationListener])\n}\n","export interface UserNotification {\n pin: string\n telegramChats: string[]\n pushTokens: string[]\n emailAddresses: Record\n telegramEnabled: boolean\n pushEnabled: boolean\n emailEnabled: boolean\n liquidationEnabled: boolean\n profitValues: string[]\n positionHealthValues: string[]\n apyValues: string[]\n chainIds: string[]\n}\n\nconst convertToString = (arr: number[] = []) => {\n return arr.map(item => item.toString())\n}\n\nexport const buildUser = (rawUser: any): UserNotification => {\n const user: UserNotification = { ...rawUser }\n user.profitValues = convertToString(rawUser.profitValues)\n user.positionHealthValues = convertToString(rawUser.positionHealthValues)\n user.apyValues = convertToString(rawUser.apyValues)\n\n return user\n}\n","import { createSlice, SerializedError } from '@reduxjs/toolkit'\n\nimport { buildUser, UserNotification } from '../../services/api/http/notifications/notifications.types'\nimport {\n enableLiquidationNotifications,\n enanbleEmailNotifications,\n enanblePushBrowserNotifications,\n enanbleTelegramNotifications,\n fetchUserNotifications,\n resubscribeEmailNotifications,\n setAPYNotifications,\n setChainIdsNotifications,\n setHealthNotifications,\n setProfitNotifications,\n subcribePushNotifications,\n unsubcribePushNotifications\n} from './actions'\n\nexport type NotificationStatus = 'idle' | 'loading' | 'succeeded' | 'failed'\n\nexport interface NotificationsState {\n user: UserNotification\n userStatus: NotificationStatus\n profitStatus: NotificationStatus\n liquidationStatus: NotificationStatus\n apyStatus: NotificationStatus\n telegramStatus: NotificationStatus\n pushStatus: NotificationStatus\n emailStatus: NotificationStatus\n error: string | null | undefined\n}\n\nconst initialState: NotificationsState = {\n user: {} as UserNotification,\n userStatus: 'idle',\n profitStatus: 'idle',\n liquidationStatus: 'idle',\n apyStatus: 'idle',\n telegramStatus: 'idle',\n pushStatus: 'idle',\n emailStatus: 'idle',\n error: null\n}\n\nconst getInitialState = () => {\n const newState = { ...initialState }\n newState.user = { ...newState.user }\n\n return newState\n}\n\nconst setLoading = (state: NotificationsState) => {\n state.userStatus = 'loading'\n state.error = null\n}\n\nconst setError = (state: NotificationsState, error: SerializedError) => {\n state.userStatus = 'failed'\n state.error = error.message\n\n console.error('[NOTIFICATION API]: ', error.message)\n}\n\nconst setUser = (state: NotificationsState, payload: any) => {\n state.userStatus = 'succeeded'\n state.user = buildUser(payload)\n}\n\nexport const notificationsSlice = createSlice({\n name: 'notifications',\n initialState,\n reducers: {\n clearNotificationsError(state) {\n state.userStatus = 'succeeded'\n },\n clearNotificationsState: () => getInitialState()\n },\n extraReducers(builder) {\n builder\n .addCase(fetchUserNotifications.pending, state => {\n setLoading(state)\n })\n .addCase(fetchUserNotifications.fulfilled, (state, action) => {\n setUser(state, action.payload)\n })\n .addCase(fetchUserNotifications.rejected, (state, action) => {\n setError(state, action.error)\n })\n\n .addCase(setChainIdsNotifications.pending, state => {\n setLoading(state)\n })\n .addCase(setChainIdsNotifications.fulfilled, (state, action) => {\n setUser(state, action.payload)\n })\n .addCase(setChainIdsNotifications.rejected, (state, action) => {\n setError(state, action.error)\n })\n\n .addCase(setProfitNotifications.pending, state => {\n setLoading(state)\n })\n .addCase(setProfitNotifications.fulfilled, (state, action) => {\n setUser(state, action.payload)\n })\n .addCase(setProfitNotifications.rejected, (state, action) => {\n setError(state, action.error)\n })\n\n .addCase(setHealthNotifications.pending, state => {\n setLoading(state)\n })\n .addCase(setHealthNotifications.fulfilled, (state, action) => {\n setUser(state, action.payload)\n })\n .addCase(setHealthNotifications.rejected, (state, action) => {\n setError(state, action.error)\n })\n\n .addCase(setAPYNotifications.pending, state => {\n setLoading(state)\n })\n .addCase(setAPYNotifications.fulfilled, (state, action) => {\n setUser(state, action.payload)\n })\n .addCase(setAPYNotifications.rejected, (state, action) => {\n setError(state, action.error)\n })\n\n .addCase(enableLiquidationNotifications.pending, state => {\n setLoading(state)\n })\n .addCase(enableLiquidationNotifications.fulfilled, (state, action) => {\n setUser(state, action.payload)\n })\n .addCase(enableLiquidationNotifications.rejected, (state, action) => {\n setError(state, action.error)\n })\n\n .addCase(enanbleTelegramNotifications.pending, state => {\n setLoading(state)\n })\n .addCase(enanbleTelegramNotifications.fulfilled, (state, action) => {\n setUser(state, action.payload)\n })\n .addCase(enanbleTelegramNotifications.rejected, (state, action) => {\n setError(state, action.error)\n })\n\n .addCase(enanblePushBrowserNotifications.pending, state => {\n setLoading(state)\n })\n .addCase(enanblePushBrowserNotifications.fulfilled, (state, action) => {\n setUser(state, action.payload)\n })\n .addCase(enanblePushBrowserNotifications.rejected, (state, action) => {\n setError(state, action.error)\n })\n\n .addCase(enanbleEmailNotifications.pending, state => {\n setLoading(state)\n })\n .addCase(enanbleEmailNotifications.fulfilled, (state, action) => {\n setUser(state, action.payload)\n })\n .addCase(enanbleEmailNotifications.rejected, (state, action) => {\n setError(state, action.error)\n })\n\n .addCase(resubscribeEmailNotifications.pending, state => {\n setLoading(state)\n })\n .addCase(resubscribeEmailNotifications.fulfilled, (state, action) => {\n setUser(state, action.payload)\n })\n .addCase(resubscribeEmailNotifications.rejected, (state, action) => {\n setError(state, action.error)\n })\n\n .addCase(subcribePushNotifications.pending, state => {\n setLoading(state)\n })\n .addCase(subcribePushNotifications.fulfilled, (state, action) => {\n setUser(state, action.payload)\n })\n .addCase(subcribePushNotifications.rejected, (state, action) => {\n setError(state, action.error)\n })\n\n .addCase(unsubcribePushNotifications.pending, state => {\n setLoading(state)\n })\n .addCase(unsubcribePushNotifications.fulfilled, (state, action) => {\n setUser(state, action.payload)\n })\n .addCase(unsubcribePushNotifications.rejected, (state, action) => {\n setError(state, action.error)\n })\n }\n})\n\nexport default notificationsSlice.reducer\n","import styled from 'styled-components'\n\nimport BalloonImgBg from '../../assets/images/BalloonImgBg.svg'\nimport BalloonImgBgSm from '../../assets/images/BalloonImgBgSm.svg'\n\nimport { CloseIcon } from '../Shared'\n\nexport const BalloonContent = styled.div`\n position: relative;\n\n width: 100%;\n max-width: 307px;\n margin: 0 auto;\n\n ${({ theme }) => theme.mediaWidth.upToSmall`\n max-width: 307px;\n `};\n`\n\nexport const BalloonCloseIcon = styled(CloseIcon)`\n top: -3px;\n right: -54px;\n\n ${({ theme }) => theme.mediaWidth.upToSmall`\n top: -45px;\t\n right: -26px;\n `};\n`\n\nexport const BalloonMsg = styled.div`\n width: 100%;\n max-width: 307px;\n height: 180px;\n padding-top: 26px;\n padding-bottom: 10px;\n\n text-align: center;\n\n background-image: url(${BalloonImgBg});\n background-repeat: no-repeat;\n background-size: 100%;\n\n ${({ theme }) => theme.mediaWidth.upToSmall`\n max-width: 307px;\n height: 180px;\n\n background-image: url(${BalloonImgBgSm});\n `};\n`\n\nexport const BalloonTitle = styled.div`\n margin-bottom: 8px;\n\n font-family: Retro;\n font-size: 20px;\n line-height: 28px;\n color: ${({ theme }) => theme.colors.text3};\n text-transform: uppercase;\n`\n\nexport const BalloonText = styled.div`\n font-size: 16px;\n line-height: 22px;\n color: ${({ theme }) => theme.colors.black};\n\n & > a {\n display: block;\n margin: 0 auto;\n margin-top: 10px;\n\n color: ${({ theme }) => theme.colors.primary1};\n text-decoration: underline;\n }\n`\n\nexport const BalloonImgFriendStyle = styled.img`\n position: absolute;\n top: 52px;\n left: -180px;\n\n display: block;\n width: 200px;\n height: 193px;\n\n ${({ theme }) => theme.mediaWidth.upToSmall`\n top: 150px;\n left: -33px;\n\n width: 177px;\n height: 170px;\n `};\n`\n","import React from 'react'\n\nimport BalloonImgFriend from '../../assets/images/BalloonImgFriend.png'\n\nimport Modal from '../Modal'\nimport {\n BalloonCloseIcon,\n BalloonContent,\n BalloonImgFriendStyle,\n BalloonMsg,\n BalloonText,\n BalloonTitle\n} from './styleds'\n\ntype BalloonModalProps = {\n isOpen: boolean\n onToggle: () => void\n renderHeader: () => JSX.Element\n renderContent: () => JSX.Element\n}\n\nexport default function BalloonModal({ isOpen, onToggle, renderHeader, renderContent }: BalloonModalProps) {\n return (\n \n \n \n\n \n {renderHeader()}\n\n {renderContent()}\n \n\n \n \n \n )\n}\n","export const WOWSWAP_ROUTE = {\n LANDING: '/',\n TRADE: '/trade',\n SWAP: '/swap',\n EARN: '/earn',\n PRO: '/pro',\n ALERTS: '/alerts',\n PORTFOLIO: '/portfolio',\n REWARD_ACCOUNT: '/reward-account',\n LIQUIDATION: '/liquidation',\n GOVERNANCE_MENU: '/governance-menu',\n GOVERNANCE_YOUR_WALLET: '/governance-your-wallet',\n GOVERNANCE_PROPOSALS: '/governance-proposals',\n GOVERNANCE_PROPOSALS_ITEM: '/governance-proposals-item',\n GOVERNANCE_FINANCIAL_MODEL: '/governance-financial-model',\n GOVERNANCE_ECONOMIC_MODEL: '/governance-economic-model',\n GOVERNANCE_DONATIONS: '/governance-donations',\n GOVERNANCE_STATS: '/governance-stats'\n}\n","import React, { HTMLProps, ReactEventHandler, useCallback, useContext } from 'react'\nimport ReactGA from 'react-ga'\nimport { Link } from 'react-router-dom'\nimport styled, { keyframes, ThemeContext } from 'styled-components'\nimport { darken } from 'polished'\nimport { ArrowLeft } from 'react-feather'\nimport { ReactComponent as IconClose } from '../../assets/images/close.svg'\nimport { ReactComponent as IconCloseLinear } from '../../assets/images/close-metis.svg'\n\nexport const Button = styled.button.attrs<{ warning: boolean }, { backgroundColor: string }>(({ warning, theme }) => ({\n backgroundColor: warning ? theme.colors.primary4 : theme.colors.primary1\n}))`\n padding: 1rem 2rem 1rem 2rem;\n border-radius: 3rem;\n cursor: pointer;\n user-select: none;\n font-size: 1rem;\n border: 1px;\n outline: none;\n background-color: ${({ backgroundColor }) => backgroundColor};\n color: ${({ theme }) => theme.colors.white};\n width: 100%;\n\n :hover,\n :focus {\n background-color: ${({ backgroundColor }) => darken(0.1, backgroundColor)};\n }\n\n :active {\n background-color: ${({ backgroundColor }) => darken(0.3, backgroundColor)};\n }\n\n :disabled {\n background-color: ${({ theme }) => theme.colors.bg1};\n color: ${({ theme }) => theme.colors.text4};\n cursor: auto;\n }\n`\n\nexport const CloseBaseIcon = styled(IconClose)<{ onClick: ReactEventHandler }>`\n position: absolute;\n top: -14px;\n right: -14px;\n\n cursor: pointer;\n\n fill: ${({ theme }) => theme.colors.text1};\n\n transition: all 0.4s ease;\n &:hover {\n fill: ${({ theme }) => theme.colors.primary1};\n }\n\n ${({ theme }) => theme.mediaWidth.upToSmall`\n\t\ttop: -6px;\n\t\tright: -4px;\n\t`};\n`\n\nconst CloseLinearIcon = styled(IconCloseLinear)<{ onClick: ReactEventHandler }>`\n position: absolute;\n top: -15px;\n right: -15px;\n\n cursor: pointer;\n\n width: 12px;\n height: 12px;\n\n fill: ${({ theme }) => theme.colors.text1};\n\n transition: all 0.4s ease;\n &:hover {\n fill: ${({ theme }) => theme.colors.primary1};\n transition: all 0.4s ease;\n }\n\n ${({ theme }) =>\n theme.mode === 'dark' &&\n `\n width: 20px;\n height: 20px;\n `}\n\n ${({ theme }) => theme.mediaWidth.upToSmall`\n top: 0;\n right: 0; \n\t`};\n`\n\nexport function CloseIcon(props: any) {\n const { mode } = useContext(ThemeContext)\n const Icon = mode === 'metis' || mode === 'dark' ? CloseLinearIcon : CloseBaseIcon\n\n return \n}\n\n// A button that triggers some onClick result, but looks like a link.\nexport const LinkStyledButton = styled.button<{ disabled?: boolean }>`\n border: none;\n text-decoration: none;\n background: none;\n\n cursor: ${({ disabled }) => (disabled ? 'default' : 'pointer')};\n color: ${({ theme, disabled }) => (disabled ? theme.colors.text2 : theme.colors.primary1)};\n font-weight: 700;\n\n :hover {\n text-decoration: ${({ disabled }) => (disabled ? null : 'underline')};\n }\n\n :focus {\n outline: none;\n text-decoration: ${({ disabled }) => (disabled ? null : 'underline')};\n }\n\n :active {\n text-decoration: none;\n }\n`\n\n// An internal link from the react-router-dom library that is correctly styled\nexport const StyledInternalLink = styled(Link)`\n text-decoration: none;\n cursor: pointer;\n color: ${({ theme }) => theme.colors.primary1};\n font-weight: 700;\n\n :hover {\n text-decoration: underline;\n }\n\n :focus {\n outline: none;\n text-decoration: underline;\n }\n\n :active {\n text-decoration: none;\n }\n`\n\nconst StyledLink = styled.a`\n text-decoration: none;\n cursor: pointer;\n color: ${({ theme }) => theme.colors.primary1};\n font-weight: 700;\n\n :hover {\n text-decoration: none;\n }\n\n :focus {\n outline: none;\n text-decoration: underline;\n }\n\n :active {\n text-decoration: none;\n }\n`\n\n/**\n * Outbound link that handles firing google analytics events\n */\nexport function ExternalLink({\n target = '_blank',\n href,\n rel = 'noopener noreferrer',\n ...rest\n}: Omit, 'as' | 'ref' | 'onClick'> & { href: string }) {\n const handleClick = useCallback(\n (event: React.MouseEvent) => {\n // don't prevent default, don't redirect if it's a new tab\n if (target === '_blank' || event.ctrlKey || event.metaKey) {\n ReactGA.outboundLink({ label: href }, () => {\n console.debug('Fired outbound link event', href)\n })\n } else {\n event.preventDefault()\n // send a ReactGA event and then trigger a location change\n ReactGA.outboundLink({ label: href }, () => {\n window.location.href = href\n })\n }\n },\n [href, target]\n )\n return \n}\n\nconst rotate = keyframes`\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n`\n\nexport const Spinner = styled.img`\n animation: 2s ${rotate} linear infinite;\n width: 16px;\n height: 16px;\n`\n\nconst BackArrowLink = styled(StyledInternalLink)`\n color: ${({ theme }) => theme.colors.text1};\n`\nexport function BackArrow({ to }: { to: string }) {\n return (\n \n \n \n )\n}\n","import { createGlobalStyle } from 'styled-components'\n\nexport const FixedGlobalStyle = createGlobalStyle`\n @font-face {\n font-family: Retro;\n src: url(/fonts/RetroComputer.ttf);\n }\n\n @font-face {\n font-family: 'Abadi MT Std';\n src: url('/fonts/AbadiMTStd.woff2') format('woff2'),\n url('/fonts/AbadiMTStd.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n font-display: swap;\n }\n\n @font-face {\n font-family: 'Abadi MT Std';\n src: url('/fonts/AbadiMTStd-ExtraLight.woff2') format('woff2'),\n url('/fonts/AbadiMTStd-ExtraLight.woff') format('woff');\n font-weight: 200;\n font-style: normal;\n font-display: swap;\n }\n\n @font-face {\n font-family: 'Abadi MT Std';\n src: url('/fonts/AbadiMTStd-Bold.woff2') format('woff2'),\n url('/fonts/AbadiMTStd-Bold.woff') format('woff');\n font-weight: bold;\n font-style: normal;\n font-display: swap;\n }\n\n @font-face {\n font-family: 'Pink Fang';\n src: url('/fonts/PinkFang.ttf') format('truetype');\n font-weight: normal;\n font-style: normal;\n font-display: swap;\n }\n\n @font-face {\n font-family: 'Pink Fang';\n src: url('/fonts/PinkFang-Bold.ttf') format('truetype');\n font-weight: bold;\n font-style: normal;\n font-display: swap;\n }\n\n @font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-weight: 400;\n src: local(''),\n url('/fonts/roboto/roboto-v29-latin-regular.woff2') format('woff2'),\n url('/fonts/roboto/roboto-v29-latin-regular.woff') format('woff');\n }\n\n @font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-weight: 700;\n src: local(''),\n url('/fonts/roboto/roboto-v29-latin-700.woff2') format('woff2'),\n url('/fonts/roboto/roboto-v29-latin-700.woff') format('woff');\n }\n\n html, input, textarea, button {\n font-family: 'Abadi MT Std', sans-serif;\n letter-spacing: -0.018em;\n font-display: fallback;\n }\n @supports (font-variation-settings: normal) {\n html, input, textarea, button {\n font-family: 'Abadi MT Std', sans-serif;\n }\n }\n \n\n\n html,\n body {\n margin: 0;\n padding: 0;\n }\n\n * {\n box-sizing: border-box;\n }\n\n button {\n user-select: none;\n }\n\n html {\n font-size: 14px;\n font-variant: none;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n }\n`\n\nexport const ThemedGlobalStyle = createGlobalStyle`\n body {\n min-height: 100vh;\n background-image: ${({ theme }) => theme.background.image};\n background-position: center;\n background-attachment: fixed;\n background-size: cover;\n font-family: ${({ theme }) => theme.typography.fontFamily.secondary};\n color: ${({ theme }) => theme.colors.text1};\n }\n`\n","import React from 'react'\nimport { Text, TextProps } from 'rebass'\nimport styled from 'styled-components'\n\nconst TextWrapper = styled(Text)<{ color: string }>`\n color: ${({ color, theme }) => (theme.colors as any)[color]};\n`\n\nexport const TYPE = {\n base(props: TextProps) {\n return \n },\n baseGray(props: TextProps) {\n return \n },\n main(props: TextProps) {\n return \n },\n link(props: TextProps) {\n return \n },\n black(props: TextProps) {\n return \n },\n white(props: TextProps) {\n return \n },\n light(props: TextProps) {\n return \n },\n body(props: TextProps) {\n return \n },\n largeHeader(props: TextProps) {\n return \n },\n mediumHeader(props: TextProps) {\n return \n },\n subHeader(props: TextProps) {\n return \n },\n blue(props: TextProps) {\n return \n },\n darkGray(props: TextProps) {\n return \n },\n italic(props: TextProps) {\n return \n },\n error({ error, ...props }: { error: boolean } & TextProps) {\n return \n },\n boldMetis(props: TextProps) {\n return \n },\n secondMetis(props: TextProps) {\n return \n }\n}\n","import { createAction } from '@reduxjs/toolkit'\n\nexport const GOVERNANCE_REWARD = 'GOVERNANCE_REWARD'\nexport const DEVELOPMENT = 'DEVELOPMENT'\nexport const INSURANCE = 'INSURANCE'\nexport const CHARITY = 'CHARITY'\nexport const BUY_AND_BURN = 'BUY_AND_BURN'\n\nexport type Param =\n | typeof GOVERNANCE_REWARD\n | typeof BUY_AND_BURN\n | typeof CHARITY\n | typeof DEVELOPMENT\n | typeof INSURANCE\nexport const paramList: Param[] = [GOVERNANCE_REWARD, DEVELOPMENT, INSURANCE, CHARITY, BUY_AND_BURN]\n\nexport interface FeeParamState {\n amount: string\n current: number\n userValue: number\n newValue: number\n voted: boolean\n votedValue: number\n}\n\nexport type FeeParams = Record\n\nexport const TRADER_PROFIT_FEE = 'TRADER_PROFIT_FEE'\nexport const POOL_UTILIZATION_ALLOWANCE = 'POOL_UTILIZATION_ALLOWANCE'\nexport const BASE_BORROW_RATE = 'BASE_BORROW_RATE'\nexport const OPTIMAL_SLOPE = 'OPTIMAL_SLOPE'\nexport const EXCESS_SLOPE = 'EXCESS_SLOPE'\nexport const OPTIMAL_UTILIZATION = 'OPTIMAL_UTILIZATION'\nexport const LIQUIDATION_MARGIN = 'LIQUIDATION_MARGIN'\nexport const LIQUIDATION_REWARD = 'LIQUIDATION_REWARD'\nexport const MAX_LEVERAGE_FACTOR = 'MAX_LEVERAGE_FACTOR'\nexport const MAX_RATE_MULTIPLIER = 'MAX_RATE_MULTIPLIER'\nexport const MIN_WOW_BALANCE_X4 = 'MIN_WOW_BALANCE_X4'\nexport const MIN_WOW_BALANCE_X5 = 'MIN_WOW_BALANCE_X5'\nexport const TREASURE_FACTOR = 'TREASURE_FACTOR'\nexport const MAX_LIQUIDATION_REWARD = 'MAX_LIQUIDATION_REWARD'\nexport const MAX_PRICE_THRESHOLD = 'MAX_PRICE_THRESHOLD'\nexport const REFERRAL_BONUS_1 = 'REFERRAL_BONUS_1'\nexport const REFERRAL_BONUS_2 = 'REFERRAL_BONUS_2'\nexport const REFERRAL_BONUS_3 = 'REFERRAL_BONUS_3'\n\nexport type SingleParamType =\n | typeof POOL_UTILIZATION_ALLOWANCE\n | typeof BASE_BORROW_RATE\n | typeof OPTIMAL_SLOPE\n | typeof EXCESS_SLOPE\n | typeof OPTIMAL_UTILIZATION\n | typeof LIQUIDATION_MARGIN\n | typeof LIQUIDATION_REWARD\n | typeof MAX_LEVERAGE_FACTOR\n | typeof MAX_RATE_MULTIPLIER\n | typeof MIN_WOW_BALANCE_X4\n | typeof MIN_WOW_BALANCE_X5\n | typeof MAX_LIQUIDATION_REWARD\n | typeof MAX_PRICE_THRESHOLD\n | typeof REFERRAL_BONUS_1\n | typeof REFERRAL_BONUS_2\n | typeof REFERRAL_BONUS_3\n\nexport type FeeCollectionParamType = typeof TRADER_PROFIT_FEE | typeof TREASURE_FACTOR\n\nexport type VoteParamType = SingleParamType | FeeCollectionParamType\nexport type ParamType = VoteParamType | Param\n\nexport type VoteForParamUpdates = Record | Record\nexport type VoteUpdates = VoteForParamUpdates | FeeParams\n\nexport interface SingleParamState {\n amount: string\n current: number\n userValue: number\n newValue: number\n min: number\n max: number\n voted: boolean\n votedValue: number\n}\n\nexport type EconomicState = {\n account?: string\n loaded: boolean\n [GOVERNANCE_REWARD]: FeeParamState\n [BUY_AND_BURN]: FeeParamState\n [CHARITY]: FeeParamState\n [DEVELOPMENT]: FeeParamState\n [INSURANCE]: FeeParamState\n [TRADER_PROFIT_FEE]: SingleParamState\n [POOL_UTILIZATION_ALLOWANCE]: SingleParamState\n [BASE_BORROW_RATE]: SingleParamState\n [OPTIMAL_SLOPE]: SingleParamState\n [EXCESS_SLOPE]: SingleParamState\n [OPTIMAL_UTILIZATION]: SingleParamState\n [LIQUIDATION_MARGIN]: SingleParamState\n [LIQUIDATION_REWARD]: SingleParamState\n [MAX_LEVERAGE_FACTOR]: SingleParamState\n [MAX_RATE_MULTIPLIER]: SingleParamState\n [MIN_WOW_BALANCE_X4]: SingleParamState\n [MIN_WOW_BALANCE_X5]: SingleParamState\n [TREASURE_FACTOR]: SingleParamState\n [MAX_LIQUIDATION_REWARD]: SingleParamState\n [MAX_PRICE_THRESHOLD]: SingleParamState\n [REFERRAL_BONUS_1]: SingleParamState\n [REFERRAL_BONUS_2]: SingleParamState\n [REFERRAL_BONUS_3]: SingleParamState\n}\n\nexport const setUnloaded = createAction('economic/setUnloaded')\nexport const setInited = createAction('economic/setInited')\nexport const setSingleParam = createAction<{ field: VoteParamType; data: Partial }>(\n 'economic/setSingleParam'\n)\nexport const setInitSingleParam = createAction<{\n field: VoteParamType\n data: Partial\n account: string\n}>('economic/setInitSingleParam')\n","import { getAddress } from 'ethers/lib/utils'\nimport { ChainId, Token, TokenAmount } from '@wowswap-io/wowswap-sdk'\n\nexport type LendableTradeTokenInfo = {\n isLendable: true\n isNative: boolean\n isBase: boolean\n reserveAddress?: string\n proxyAddresses?: string[]\n}\n\nexport type ReserveTradeTokenInfo = {\n isReserve: true\n lendableAddress: string\n}\n\nexport type ProxyTradeTokenInfo = {\n isProxy: true\n pairName: string\n lendableAddress: string\n tradableAddress: string\n proxyAddress?: string\n}\n\nexport type BaseTokenTradeInfo = {\n isBase: true\n proxyAddresses: string[]\n}\n\nexport interface StakeBalance {\n amount: TokenAmount\n minted: TokenAmount\n timeout: string\n}\n\nexport type StakeTokenTradeInfo = {\n isStaking: true\n isBase?: true\n pairName?: string\n staked?: StakeBalance\n}\n\nexport type ShortableTokenInfo = {\n shortable?: boolean\n reserveAddress?: string\n}\n\nexport type ShortProxyTokenInfo = {\n isShort: true\n pairName: string\n stableAddress: string\n shortAddress: string\n proxyAddress?: string\n}\n\nexport type TradeTokenInfo = {\n id: string\n chainId: ChainId\n address: string\n decimals: number\n symbol: string\n name: string\n pairName?: string\n shortable?: boolean\n} & (\n | LendableTradeTokenInfo\n | ProxyTradeTokenInfo\n | ReserveTradeTokenInfo\n | BaseTokenTradeInfo\n | StakeTokenTradeInfo\n | ShortableTokenInfo\n | ShortProxyTokenInfo\n)\n\nexport class TradeToken extends Token {\n constructor(public info: TradeTokenInfo, public balance?: TokenAmount) {\n super(info.chainId, getAddress(info.address), info.decimals, info.symbol, info.name)\n }\n\n get proxyInfo() {\n return 'isProxy' in this.info ? (this.info as ProxyTradeTokenInfo) : undefined\n }\n get lendableInfo() {\n return 'isLendable' in this.info ? (this.info as LendableTradeTokenInfo) : undefined\n }\n get reserveInfo() {\n return 'isReserve' in this.info ? (this.info as ReserveTradeTokenInfo) : undefined\n }\n get baseInfo() {\n return 'isBase' in this.info ? (this.info as BaseTokenTradeInfo) : undefined\n }\n get shortableInfo() {\n // can be moved at reserve\n return 'shortable' in this.info ? (this.info as ShortableTokenInfo) : undefined\n }\n get shortingInfo() {\n // can be shorted\n return 'isShort' in this.info ? (this.info as ShortProxyTokenInfo) : undefined\n }\n\n get stakableInfo() {\n return 'isStaking' in this.info ? (this.info as StakeTokenTradeInfo) : undefined\n }\n set staked(params: StakeBalance) {\n ;(this.info as StakeTokenTradeInfo).staked = params\n }\n\n get uniqSymbol() {\n return this?.proxyInfo?.pairName || this.stakableInfo?.pairName || this.info.symbol\n }\n\n get tradableAddress() {\n return this.proxyInfo?.tradableAddress || this.shortingInfo?.shortAddress\n }\n\n get proxybleAddress() {\n return this.proxyInfo?.proxyAddress || this.shortingInfo?.proxyAddress\n }\n\n get lendableAddress() {\n if (this.shortingInfo) {\n return this.shortingInfo.stableAddress\n }\n\n if (this.proxyInfo) {\n return this.proxyInfo.lendableAddress\n }\n\n if (this.lendableInfo) {\n return this.address\n }\n\n if (this.shortableInfo) {\n return this.address\n }\n\n return undefined\n }\n\n get pairAddress() {\n if (this.proxyInfo) {\n return this.address\n }\n\n if (this.shortingInfo) {\n return this.address\n }\n\n return undefined\n }\n}\n","import { Contract } from '@ethersproject/contracts'\nimport { getAddress } from '@ethersproject/address'\nimport { AddressZero } from '@ethersproject/constants'\nimport { JsonRpcSigner, Web3Provider } from '@ethersproject/providers'\nimport { BigNumber } from '@ethersproject/bignumber'\n\nimport ROUTER_ABI from '../constants/abis/router.json'\nimport RESERVE_ABI from '../constants/abis/reserve.json'\nimport RESERVE_FACTORY_ABI from '../constants/abis/reserveFactory.json'\nimport REFERRAL_ABI from '../constants/abis/referral.json'\nimport { ROUTER_ADDRESS } from '../constants'\nimport { ChainId, JSBI, Percent, Token, CurrencyAmount, Currency } from '@wowswap-io/wowswap-sdk'\nimport { TokenAddressMap } from '../state/lists/hooks'\n\n// returns the checksummed address if the address is valid, otherwise returns false\nexport function isAddress(value: any): string | false {\n try {\n return getAddress(value)\n } catch {\n return false\n }\n}\n\nconst ETHERSCAN_PREFIXES: { [chainId in ChainId]: string } = {\n [ChainId.ETHEREUM]: 'https://etherscan.com',\n [ChainId.ROPSTEN]: 'https://ropsten.etherscan.com',\n [ChainId.MAINNET]: 'https://bscscan.com',\n [ChainId.LOCALNET]: '',\n [ChainId.HECO]: 'https://hecoinfo.com',\n [ChainId.MATIC]: 'https://explorer-mainnet.maticvigil.com',\n [ChainId.BSCTESTNET]: 'https://testnet.bscscan.com',\n [ChainId.AVALANCE]: 'https://snowtrace.io',\n [ChainId.FUJI]: '',\n [ChainId.IOTEX]: 'https://iotexscan.io',\n [ChainId.ANDROMEDA]: '',\n [ChainId.STARDUST]: 'https://stardust-explorer.metis.io'\n}\n\nexport const dateToUnixtime = (date: Date) => Math.floor(date.valueOf() / 1000)\n\nexport function getEtherscanLink(chainId: ChainId, data: string, type: 'transaction' | 'token' | 'address'): string {\n const prefix = ETHERSCAN_PREFIXES[chainId] || ETHERSCAN_PREFIXES[56]\n\n switch (type) {\n case 'transaction': {\n return `${prefix}/tx/${data}`\n }\n case 'token': {\n return `${prefix}/token/${data}`\n }\n case 'address':\n default: {\n return `${prefix}/address/${data}`\n }\n }\n}\n\n// shorten the checksummed version of the input address to have 0x + 4 characters at start and end\nexport function shortenAddress(address: string, chars = 4): string {\n const parsed = isAddress(address)\n if (!parsed) {\n throw Error(`Invalid 'address' parameter '${address}'.`)\n }\n return `${parsed.substring(0, chars + 2)}...${parsed.substring(42 - chars)}`\n}\n\n// add 10%\nexport function calculateGasMargin(value: BigNumber): BigNumber {\n return value.mul(BigNumber.from(10000).add(BigNumber.from(1000))).div(BigNumber.from(10000))\n}\n\n// converts a basis points value to a sdk percent\nexport function basisPointsToPercent(num: number): Percent {\n return new Percent(JSBI.BigInt(num), JSBI.BigInt(10000))\n}\n\nexport function calculateSlippageAmount(value: CurrencyAmount, slippage: number): [JSBI, JSBI] {\n if (slippage < 0 || slippage > 10000) {\n throw Error(`Unexpected slippage value: ${slippage}`)\n }\n return [\n JSBI.divide(JSBI.multiply(value.raw, JSBI.BigInt(10000 - slippage)), JSBI.BigInt(10000)),\n JSBI.divide(JSBI.multiply(value.raw, JSBI.BigInt(10000 + slippage)), JSBI.BigInt(10000))\n ]\n}\n\n// account is not optional\nexport function getSigner(library: Web3Provider, account: string): JsonRpcSigner {\n return library.getSigner(account).connectUnchecked()\n}\n\n// account is optional\nexport function getProviderOrSigner(library: Web3Provider, account?: string): Web3Provider | JsonRpcSigner {\n return account ? getSigner(library, account) : library\n}\n\n// account is optional\nexport function getContract(address: string, ABI: any, library: Web3Provider, account?: string): Contract {\n if (!isAddress(address) || address === AddressZero) {\n throw Error(`Invalid 'address' parameter '${address}'.`)\n }\n\n return new Contract(address, ABI, getProviderOrSigner(library, account) as any)\n}\n\n// account is optional\nexport function getRouterContract(chainId: ChainId, library: Web3Provider, account?: string): Contract {\n return getContract(ROUTER_ADDRESS[chainId], ROUTER_ABI, library, account)\n}\n\nexport function getReserveContract(address: string, library: Web3Provider, account?: string): Contract {\n return getContract(address, RESERVE_ABI, library, account)\n}\n\nexport function getReserveFactoryContract(address: string, library: Web3Provider, account?: string): Contract {\n return getContract(address, RESERVE_FACTORY_ABI, library, account)\n}\n\nexport function getReferralContract(address: string, library: Web3Provider, account?: string): Contract {\n return getContract(address, REFERRAL_ABI, library, account)\n}\n\nexport function escapeRegExp(string: string): string {\n return string.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&') // $& means the whole matched string\n}\n\nexport function isTokenOnList(defaultTokens: TokenAddressMap, currency?: Currency): boolean {\n if (currency === Currency.getBaseCurrency()) return true\n return Boolean(currency instanceof Token && defaultTokens[currency.chainId]?.[currency.address])\n}\n\nexport const filterDefined = (collection: Array) =>\n collection.filter((some): some is T => typeof some !== 'undefined')\n\nexport const defined = (something: T | undefined): something is T => typeof something !== 'undefined'\n\nexport const logError = (msg: string) => (e: TError) => {\n console.error(msg, '\\n', e)\n throw e\n}\n\nexport const doWith = (\n collection: TIn[],\n func: (tasks: Array>, el: TIn, index: number, collection: TIn[]) => void\n) =>\n Promise.all(\n collection.reduce((tasks, el, index, all) => {\n func(tasks, el, index, all)\n return tasks\n }, [] as Array>)\n )\n\nexport const toDictionaryValue = (\n collection: TElement[],\n getKey: (el: TElement) => TKey,\n getValue: (el: TElement) => TValue\n): Record =>\n collection.reduce((dict, el) => {\n dict[getKey(el)] = getValue(el)\n return dict\n }, {} as Record)\n\nexport const toDictionary = (\n collection: TValue[],\n getKey: (el: TValue) => TKey\n): Record =>\n collection.reduce((dict, el) => {\n dict[getKey(el)] = el\n return dict\n }, {} as Record)\n\nexport const flat = (accumulator: T[], value: T[]) => accumulator.concat(value)\n\nexport const flatten = (collection: Array>) => collection.reduce(flat, [])\n\nexport const filterAll = (func: (el: TIn) => boolean) => (collection: TIn[]) => collection.filter(func)\n\nexport const mapAll = (func: (el: TIn) => TOut) => (collection: TIn[]) => collection.map(func)\n\nexport const sleep = (n: number) => new Promise(resolve => setTimeout(resolve, n))\n","import { useCallback, useMemo } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { useActiveWeb3React } from '../../hooks'\nimport { AppState } from '../index'\nimport {\n addPopup,\n PopupContent,\n removePopup,\n toggleSettingsMenu,\n toggleWalletModal,\n toggleChainWalletModal\n} from './actions'\n\nexport function useBlockNumber(): number | undefined {\n const { chainId } = useActiveWeb3React()\n\n return useSelector((state: AppState) => state.application.blockNumber[chainId ?? -1])\n}\n\nexport function useBlockTimestamp(): number | undefined {\n const { chainId } = useActiveWeb3React()\n\n return useSelector((state: AppState) => state.application.timestamp[chainId ?? -1])\n}\n\nexport function useWalletModalOpen(): boolean {\n return useSelector((state: AppState) => state.application.walletModalOpen)\n}\n\nexport function useWalletModalToggle(): () => void {\n const dispatch = useDispatch()\n return useCallback(() => dispatch(toggleWalletModal()), [dispatch])\n}\n\nexport function useSettingsMenuOpen(): boolean {\n return useSelector((state: AppState) => state.application.settingsMenuOpen)\n}\n\nexport function useToggleSettingsMenu(): () => void {\n const dispatch = useDispatch()\n return useCallback(() => dispatch(toggleSettingsMenu()), [dispatch])\n}\n\nexport function useChainWalletModalOpen(): boolean {\n return useSelector((state: AppState) => state.application.chainWalletModalOpen)\n}\n\nexport function useChainWalletModalToggle(): () => void {\n const dispatch = useDispatch()\n return useCallback(() => dispatch(toggleChainWalletModal()), [dispatch])\n}\n\n// returns a function that allows adding a popup\nexport function useAddPopup(): (content: PopupContent, key?: string) => void {\n const dispatch = useDispatch()\n\n return useCallback(\n (content: PopupContent, key?: string) => {\n dispatch(addPopup({ content, key }))\n },\n [dispatch]\n )\n}\n\n// returns a function that allows removing a popup via its key\nexport function useRemovePopup(): (key: string) => void {\n const dispatch = useDispatch()\n return useCallback(\n (key: string) => {\n dispatch(removePopup({ key }))\n },\n [dispatch]\n )\n}\n\n// get the list of active popups\nexport function useActivePopups(): AppState['application']['popupList'] {\n const list = useSelector((state: AppState) => state.application.popupList)\n return useMemo(() => list.filter(item => item.show), [list])\n}\n","import { Interface, FunctionFragment } from '@ethersproject/abi'\nimport { BigNumber } from '@ethersproject/bignumber'\nimport { Contract } from '@ethersproject/contracts'\nimport { useEffect, useMemo } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { useActiveWeb3React } from '../../hooks'\nimport { useBlockNumber } from '../application/hooks'\nimport { AppDispatch, AppState } from '../index'\nimport {\n addMulticallListeners,\n Call,\n removeMulticallListeners,\n parseCallKey,\n toCallKey,\n ListenerOptions\n} from './actions'\n\nexport interface Result extends ReadonlyArray {\n readonly [key: string]: any\n}\n\ntype MethodArg = string | number | BigNumber\ntype MethodArgs = Array\n\ntype OptionalMethodInputs = Array | undefined\n\nfunction isMethodArg(x: unknown): x is MethodArg {\n return ['string', 'number'].indexOf(typeof x) !== -1\n}\n\nfunction isValidMethodArgs(x: unknown): x is MethodArgs | undefined {\n return (\n x === undefined ||\n (Array.isArray(x) && x.every(xi => isMethodArg(xi) || (Array.isArray(xi) && xi.every(isMethodArg))))\n )\n}\n\ninterface CallResult {\n readonly valid: boolean\n readonly data: string | undefined\n readonly blockNumber: number | undefined\n}\n\nconst INVALID_RESULT: CallResult = { valid: false, blockNumber: undefined, data: undefined }\n\n// use this options object\nexport const NEVER_RELOAD: ListenerOptions = {\n blocksPerFetch: Infinity\n}\n\n// the lowest level call for subscribing to contract data\nfunction useCallsData(calls: (Call | undefined)[], options?: ListenerOptions): CallResult[] {\n const { chainId } = useActiveWeb3React()\n const callResults = useSelector(state => state.multicall.callResults)\n const dispatch = useDispatch()\n\n const serializedCallKeys: string = useMemo(\n () =>\n JSON.stringify(\n calls\n ?.filter((c): c is Call => Boolean(c))\n ?.map(toCallKey)\n ?.sort() ?? []\n ),\n [calls]\n )\n\n // update listeners when there is an actual change that persists for at least 100ms\n useEffect(() => {\n const callKeys: string[] = JSON.parse(serializedCallKeys)\n if (!chainId || callKeys.length === 0) return undefined\n const calls = callKeys.map(key => parseCallKey(key))\n dispatch(\n addMulticallListeners({\n chainId,\n calls,\n options\n })\n )\n\n return () => {\n dispatch(\n removeMulticallListeners({\n chainId,\n calls,\n options\n })\n )\n }\n }, [chainId, dispatch, options, serializedCallKeys])\n\n return useMemo(\n () =>\n calls.map(call => {\n if (!chainId || !call) return INVALID_RESULT\n\n const result = callResults[chainId]?.[toCallKey(call)]\n let data\n if (result?.data && result?.data !== '0x') {\n data = result.data\n }\n\n return { valid: true, data, blockNumber: result?.blockNumber }\n }),\n [callResults, calls, chainId]\n )\n}\n\ninterface CallState {\n readonly valid: boolean\n // the result, or undefined if loading or errored/no data\n readonly result: Result | undefined\n // true if the result has never been fetched\n readonly loading: boolean\n // true if the result is not for the latest block\n readonly syncing: boolean\n // true if the call was made and is synced, but the return data is invalid\n readonly error: boolean\n}\n\nconst INVALID_CALL_STATE: CallState = { valid: false, result: undefined, loading: false, syncing: false, error: false }\nconst LOADING_CALL_STATE: CallState = { valid: true, result: undefined, loading: true, syncing: true, error: false }\n\nfunction toCallState(\n callResult: CallResult | undefined,\n contractInterface: Interface | undefined,\n fragment: FunctionFragment | undefined,\n latestBlockNumber: number | undefined\n): CallState {\n if (!callResult) return INVALID_CALL_STATE\n const { valid, data, blockNumber } = callResult\n if (!valid) return INVALID_CALL_STATE\n if (valid && !blockNumber) return LOADING_CALL_STATE\n if (!contractInterface || !fragment || !latestBlockNumber) return LOADING_CALL_STATE\n\n const [success, encoded] =\n data && data.length > 4\n ? [!!Buffer.from(data.substr(2, 4), 'hex').readInt8(0), Buffer.from(data.substr(4), 'hex')]\n : [false, '']\n\n const syncing = (blockNumber ?? 0) < latestBlockNumber\n let result: Result | undefined = undefined\n if (success && data) {\n try {\n result = contractInterface.decodeFunctionResult(fragment, encoded)\n } catch (error) {\n console.debug('Result encoded parsing failed', fragment, encoded)\n return {\n valid: true,\n loading: false,\n error: true,\n syncing,\n result\n }\n }\n }\n return {\n valid: true,\n loading: false,\n syncing,\n result: result,\n error: !success\n }\n}\n\nexport function useSingleContractMultipleData(\n contract: Contract | null | undefined,\n methodName: string,\n callInputs: OptionalMethodInputs[],\n options?: ListenerOptions\n): CallState[] {\n const fragment = useMemo(() => contract?.interface?.getFunction(methodName), [contract, methodName])\n\n const calls = useMemo(\n () =>\n contract && fragment && callInputs && callInputs.length > 0\n ? callInputs.map(inputs => {\n return {\n address: contract.address,\n callData: contract.interface.encodeFunctionData(fragment, inputs)\n }\n })\n : [],\n [callInputs, contract, fragment]\n )\n\n const results = useCallsData(calls, options)\n\n const latestBlockNumber = useBlockNumber()\n\n return useMemo(() => {\n return results.map(result => toCallState(result, contract?.interface, fragment, latestBlockNumber))\n }, [fragment, contract, results, latestBlockNumber])\n}\n\nexport function useMultipleContractSingleData(\n addresses: (string | undefined)[],\n contractInterface: Interface,\n methodName: string,\n callInputs?: OptionalMethodInputs,\n options?: ListenerOptions\n): CallState[] {\n const fragment = useMemo(() => contractInterface.getFunction(methodName), [contractInterface, methodName])\n const callData: string | undefined = useMemo(\n () =>\n fragment && isValidMethodArgs(callInputs)\n ? contractInterface.encodeFunctionData(fragment, callInputs)\n : undefined,\n [callInputs, contractInterface, fragment]\n )\n\n const calls = useMemo(\n () =>\n fragment && addresses && addresses.length > 0 && callData\n ? addresses.map(address => {\n return address && callData\n ? {\n address,\n callData\n }\n : undefined\n })\n : [],\n [addresses, callData, fragment]\n )\n\n const results = useCallsData(calls, options)\n\n const latestBlockNumber = useBlockNumber()\n\n return useMemo(() => {\n return results.map(result => toCallState(result, contractInterface, fragment, latestBlockNumber))\n }, [fragment, results, contractInterface, latestBlockNumber])\n}\n\nexport function useSingleCallResult(\n contract: Contract | null | undefined,\n methodName: string,\n inputs?: OptionalMethodInputs,\n options?: ListenerOptions\n): CallState {\n const fragment = useMemo(() => contract?.interface?.getFunction(methodName), [contract, methodName])\n\n const calls = useMemo(() => {\n return contract && fragment && isValidMethodArgs(inputs)\n ? [\n {\n address: contract.address,\n callData: contract.interface.encodeFunctionData(fragment, inputs)\n }\n ]\n : []\n }, [contract, fragment, inputs])\n\n const result = useCallsData(calls, options)[0]\n const latestBlockNumber = useBlockNumber()\n\n return useMemo(() => {\n return toCallState(result, contract?.interface, fragment, latestBlockNumber)\n }, [result, contract, fragment, latestBlockNumber])\n}\n","import { ConnectorUpdate } from '@web3-react/types'\nimport { AbstractConnector } from '@web3-react/abstract-connector'\nimport invariant from 'tiny-invariant'\n\ninterface NetworkConnectorArguments {\n urls: { [chainId: number]: string }\n defaultChainId?: number\n}\n\n// taken from ethers.js, compatible interface with web3 provider\ntype AsyncSendable = {\n isMetaMask?: boolean\n host?: string\n path?: string\n sendAsync?: (request: any, callback: (error: any, response: any) => void) => void\n send?: (request: any, callback: (error: any, response: any) => void) => void\n}\n\nclass RequestError extends Error {\n constructor(message: string, public code: number, public data?: unknown) {\n super(message)\n }\n}\n\ninterface BatchItem {\n request: { jsonrpc: '2.0'; id: number; method: string; params: unknown }\n resolve: (result: any) => void\n reject: (error: Error) => void\n}\n\nclass MiniRpcProvider implements AsyncSendable {\n public readonly isMetaMask: false = false\n public readonly chainId: number\n public readonly url: string\n public readonly host: string\n public readonly path: string\n public readonly batchWaitTimeMs: number\n\n private nextId = 1\n private batchTimeoutId: ReturnType | null = null\n private batch: BatchItem[] = []\n\n constructor(chainId: number, url: string, batchWaitTimeMs?: number) {\n this.chainId = chainId\n this.url = url\n const parsed = new URL(url)\n this.host = parsed.host\n this.path = parsed.pathname\n // how long to wait to batch calls\n this.batchWaitTimeMs = batchWaitTimeMs ?? 50\n }\n\n public readonly clearBatch = async () => {\n console.debug('Clearing batch', this.batch)\n const batch = this.batch\n this.batch = []\n this.batchTimeoutId = null\n let response: Response\n try {\n response = await fetch(this.url, {\n method: 'POST',\n headers: { 'content-type': 'application/json', accept: 'application/json' },\n body: JSON.stringify(batch.map(item => item.request))\n })\n } catch (error) {\n batch.forEach(({ reject }) => reject(new Error('Failed to send batch call')))\n return\n }\n\n if (!response.ok) {\n batch.forEach(({ reject }) => reject(new RequestError(`${response.status}: ${response.statusText}`, -32000)))\n return\n }\n\n let json\n try {\n json = await response.json()\n } catch (error) {\n batch.forEach(({ reject }) => reject(new Error('Failed to parse JSON response')))\n return\n }\n const byKey = batch.reduce<{ [id: number]: BatchItem }>((memo, current) => {\n memo[current.request.id] = current\n return memo\n }, {})\n for (const result of json) {\n const {\n resolve,\n reject,\n request: { method }\n } = byKey[result.id]\n if (resolve && reject) {\n if ('error' in result) {\n reject(new RequestError(result?.error?.message, result?.error?.code, result?.error?.data))\n } else if ('result' in result) {\n resolve(result.result)\n } else {\n reject(new RequestError(`Received unexpected JSON-RPC response to ${method} request.`, -32000, result))\n }\n }\n }\n }\n\n public readonly sendAsync = (\n request: { jsonrpc: '2.0'; id: number | string | null; method: string; params?: any },\n callback: (error: any, response: any) => void\n ): void => {\n this.request(request.method, request.params)\n .then(result => callback(null, { jsonrpc: '2.0', id: request.id, result }))\n .catch(error => callback(error, null))\n }\n\n public readonly request = async (\n method: string | { method: string; params: unknown[] },\n params?: any\n ): Promise => {\n if (typeof method !== 'string') {\n return this.request(method.method, method.params)\n }\n if (method === 'eth_chainId') {\n return `0x${this.chainId.toString(16)}`\n }\n const promise = new Promise((resolve, reject) => {\n this.batch.push({\n request: {\n jsonrpc: '2.0',\n id: this.nextId++,\n method,\n params\n },\n resolve,\n reject\n })\n })\n this.batchTimeoutId = this.batchTimeoutId ?? setTimeout(this.clearBatch, this.batchWaitTimeMs)\n return promise\n }\n}\n\nexport class NetworkConnector extends AbstractConnector {\n private readonly providers: { [chainId: number]: MiniRpcProvider }\n private currentChainId: number\n\n constructor({ urls, defaultChainId }: NetworkConnectorArguments) {\n invariant(defaultChainId || Object.keys(urls).length === 1, 'defaultChainId is a required argument with >1 url')\n super({ supportedChainIds: Object.keys(urls).map((k): number => Number(k)) })\n\n this.currentChainId = defaultChainId || Number(Object.keys(urls)[0])\n this.providers = Object.keys(urls).reduce<{ [chainId: number]: MiniRpcProvider }>((accumulator, chainId) => {\n accumulator[Number(chainId)] = new MiniRpcProvider(Number(chainId), urls[Number(chainId)])\n return accumulator\n }, {})\n }\n\n public get provider(): MiniRpcProvider {\n return this.providers[this.currentChainId]\n }\n\n public async activate(): Promise {\n return { provider: this.providers[this.currentChainId], chainId: this.currentChainId, account: null }\n }\n\n public async getProvider(): Promise {\n return this.providers[this.currentChainId]\n }\n\n public async getChainId(): Promise {\n return this.currentChainId\n }\n\n public async getAccount(): Promise {\n return null\n }\n\n public deactivate() {\n return\n }\n}\n","import { Web3Provider } from '@ethersproject/providers'\nimport { InjectedConnector } from '@web3-react/injected-connector'\nimport { WalletConnectConnector } from '@web3-react/walletconnect-connector'\nimport { AbstractConnector } from '@web3-react/abstract-connector'\n\nimport { NETWORK_PARAMS, SUPPORTED_WALLET_NAMES } from 'constants/index'\nimport { DEFAULT_CHAIN_ID_QUERY, DEFAULT_NETWORK_URL_QUERY, DEFAULT_SUPPORTED_CHAINS_QUERY } from 'constants/query'\nimport getLocationParsedQuery from 'utils/getLocationParsedQuery'\nimport convertToIntArray from 'utils/convertToNumberArray'\n\nimport { NetworkConnector } from './NetworkConnector'\nimport { InjectedFakeHardwareConnector } from './InjectedFakeHardwareConnector'\n\nconst urlQueries = getLocationParsedQuery() ?? {}\n\nconst networkUrlFromQuery = urlQueries[DEFAULT_NETWORK_URL_QUERY] as string\nconst NETWORK_URL = networkUrlFromQuery ?? process.env.REACT_APP_NETWORK_URL\n\nconst chainIdFromQuery = urlQueries[DEFAULT_CHAIN_ID_QUERY] as string\nexport const NETWORK_CHAIN_ID: number = parseInt(chainIdFromQuery ?? process.env.REACT_APP_CHAIN_ID ?? '56')\n\nconst RPC_URLS_BY_NETWORKS: Record = {}\nfor (const key in NETWORK_PARAMS) {\n const rpcUrl = NETWORK_PARAMS[(key as unknown) as keyof typeof NETWORK_PARAMS]?.rpcUrls[0]\n if (rpcUrl) RPC_URLS_BY_NETWORKS[key] = rpcUrl\n}\n\nexport const network = new NetworkConnector({\n urls: { [NETWORK_CHAIN_ID]: NETWORK_URL }\n})\n\nlet networkLibrary: Web3Provider | undefined\nexport function getNetworkLibrary(): Web3Provider {\n return (networkLibrary = networkLibrary ?? new Web3Provider(network.provider as any))\n}\n\nconst supportedChainIdsFromQuery = convertToIntArray(urlQueries[DEFAULT_SUPPORTED_CHAINS_QUERY])\nexport const SUPPORTED_CHAIN_IDS: number[] = supportedChainIdsFromQuery ?? [1, 56, 57, 128, 137, 4689, 43114]\n\nconst injected = new InjectedConnector({\n supportedChainIds: SUPPORTED_CHAIN_IDS\n})\n\nconst injectedFakeHardware = new InjectedFakeHardwareConnector({\n supportedChainIds: SUPPORTED_CHAIN_IDS\n})\n\nconst walletconnect = new WalletConnectConnector({\n rpc: RPC_URLS_BY_NETWORKS,\n bridge: 'https://bridge.walletconnect.org',\n qrcode: true\n})\n\nexport const connectorsByWallets: { [key in SUPPORTED_WALLET_NAMES]: AbstractConnector } = {\n [SUPPORTED_WALLET_NAMES.INJECTED]: injected,\n [SUPPORTED_WALLET_NAMES.METAMASK]: injected,\n [SUPPORTED_WALLET_NAMES.METAMASK_FAKE_HARDWARE]: injectedFakeHardware,\n [SUPPORTED_WALLET_NAMES.METAMASK_MOBILE_DEEP_LINK]: injected,\n [SUPPORTED_WALLET_NAMES.COIN98]: injected,\n [SUPPORTED_WALLET_NAMES.MATH_WALLET]: injected,\n [SUPPORTED_WALLET_NAMES.TRUST_WALLET]: injected,\n [SUPPORTED_WALLET_NAMES.WALLETCONNECT]: walletconnect\n}\n","export default function convertToIntArray(data: any): number[] | undefined {\n if (!data) {\n return\n }\n\n const stringArr: string[] = Object.values(data)\n\n return stringArr.map(item => parseInt(item, 10))\n}\n","var map = {\n\t\"./5Mz4 (1).gif\": [\n\t\t551,\n\t\t92\n\t],\n\t\"./BalloonImgBg.svg\": [\n\t\t239\n\t],\n\t\"./BalloonImgBgSm.svg\": [\n\t\t240\n\t],\n\t\"./BalloonImgFriend.png\": [\n\t\t238\n\t],\n\t\"./BalloonImgTriangle.svg\": [\n\t\t552,\n\t\t27\n\t],\n\t\"./XZ9.gif\": [\n\t\t553,\n\t\t93\n\t],\n\t\"./approvingArrow.svg\": [\n\t\t554,\n\t\t28\n\t],\n\t\"./approvingArrowLinear.svg\": [\n\t\t555,\n\t\t29\n\t],\n\t\"./arrow-down-blue.svg\": [\n\t\t556,\n\t\t30\n\t],\n\t\"./arrow-down-grey.svg\": [\n\t\t557,\n\t\t31\n\t],\n\t\"./arrow-down-metis.svg\": [\n\t\t558,\n\t\t32\n\t],\n\t\"./arrow-down.svg\": [\n\t\t559,\n\t\t33\n\t],\n\t\"./arrow-right-white.png\": [\n\t\t560,\n\t\t94\n\t],\n\t\"./arrow-right.svg\": [\n\t\t561,\n\t\t34\n\t],\n\t\"./binance-logo.png\": [\n\t\t531,\n\t\t95\n\t],\n\t\"./binance.svg\": [\n\t\t562,\n\t\t35\n\t],\n\t\"./blue-loader.svg\": [\n\t\t530,\n\t\t36\n\t],\n\t\"./check.svg\": [\n\t\t563,\n\t\t37\n\t],\n\t\"./checkbox--checked.svg\": [\n\t\t543,\n\t\t38\n\t],\n\t\"./checkbox--hover.svg\": [\n\t\t544,\n\t\t39\n\t],\n\t\"./checkbox2--checked.svg\": [\n\t\t564,\n\t\t40\n\t],\n\t\"./checkbox2--hover.svg\": [\n\t\t565,\n\t\t41\n\t],\n\t\"./circle-grey.svg\": [\n\t\t566,\n\t\t42\n\t],\n\t\"./circle.svg\": [\n\t\t567,\n\t\t43\n\t],\n\t\"./clock.gif\": [\n\t\t236\n\t],\n\t\"./close-metis.svg\": [\n\t\t568,\n\t\t44\n\t],\n\t\"./close.svg\": [\n\t\t569,\n\t\t45\n\t],\n\t\"./coin.svg\": [\n\t\t570,\n\t\t46\n\t],\n\t\"./coin98.svg\": [\n\t\t571,\n\t\t47\n\t],\n\t\"./dropdown-blue.svg\": [\n\t\t572,\n\t\t48\n\t],\n\t\"./dropdown.svg\": [\n\t\t573,\n\t\t49\n\t],\n\t\"./dropup-blue.svg\": [\n\t\t574,\n\t\t50\n\t],\n\t\"./ethereum-bg.png\": [\n\t\t234\n\t],\n\t\"./ethereum-logo.png\": [\n\t\t575,\n\t\t96\n\t],\n\t\"./exchange.svg\": [\n\t\t576,\n\t\t51\n\t],\n\t\"./help-metis.svg\": [\n\t\t577,\n\t\t52\n\t],\n\t\"./help.svg\": [\n\t\t578,\n\t\t53\n\t],\n\t\"./icon--20-bscscan.svg\": [\n\t\t579,\n\t\t54\n\t],\n\t\"./icon--20-fd.svg\": [\n\t\t580,\n\t\t55\n\t],\n\t\"./icon--20-world.svg\": [\n\t\t581,\n\t\t56\n\t],\n\t\"./icon--arrow.svg\": [\n\t\t532,\n\t\t57\n\t],\n\t\"./icon--arrows.svg\": [\n\t\t582,\n\t\t58\n\t],\n\t\"./icon--bnb.png\": [\n\t\t583,\n\t\t97\n\t],\n\t\"./icon--busd.png\": [\n\t\t584,\n\t\t98\n\t],\n\t\"./icon--copy.svg\": [\n\t\t585,\n\t\t59\n\t],\n\t\"./icon--documentation.svg\": [\n\t\t586,\n\t\t60\n\t],\n\t\"./icon--donations.svg\": [\n\t\t587,\n\t\t61\n\t],\n\t\"./icon--economic-model.svg\": [\n\t\t535,\n\t\t62\n\t],\n\t\"./icon--fee01.svg\": [\n\t\t537,\n\t\t63\n\t],\n\t\"./icon--fee02.svg\": [\n\t\t538,\n\t\t64\n\t],\n\t\"./icon--fee03.svg\": [\n\t\t539,\n\t\t65\n\t],\n\t\"./icon--fee04.svg\": [\n\t\t540,\n\t\t66\n\t],\n\t\"./icon--fee05.svg\": [\n\t\t541,\n\t\t67\n\t],\n\t\"./icon--financial-model.svg\": [\n\t\t534,\n\t\t68\n\t],\n\t\"./icon--minus.svg\": [\n\t\t588,\n\t\t69\n\t],\n\t\"./icon--plus.svg\": [\n\t\t589,\n\t\t70\n\t],\n\t\"./icon--proposals.svg\": [\n\t\t590,\n\t\t71\n\t],\n\t\"./icon--sort.svg\": [\n\t\t591,\n\t\t72\n\t],\n\t\"./icon--statistics.svg\": [\n\t\t592,\n\t\t73\n\t],\n\t\"./icon--wow.png\": [\n\t\t593,\n\t\t99\n\t],\n\t\"./icon--your-wallet.svg\": [\n\t\t533,\n\t\t74\n\t],\n\t\"./img-graf-01@2x.jpg\": [\n\t\t594,\n\t\t100\n\t],\n\t\"./img-stats-graf-01.jpg\": [\n\t\t547,\n\t\t101\n\t],\n\t\"./img-stats-graf-02.jpg\": [\n\t\t548,\n\t\t102\n\t],\n\t\"./img-stats-graf-03.jpg\": [\n\t\t549,\n\t\t103\n\t],\n\t\"./img-stats-graf-04.jpg\": [\n\t\t550,\n\t\t104\n\t],\n\t\"./iotex-bg.png\": [\n\t\t235\n\t],\n\t\"./link.svg\": [\n\t\t595,\n\t\t75\n\t],\n\t\"./logo-stc@2x-01.png\": [\n\t\t545,\n\t\t105\n\t],\n\t\"./logo-tf@2x-01.png\": [\n\t\t546,\n\t\t106\n\t],\n\t\"./magnifying-glass.svg\": [\n\t\t596,\n\t\t76\n\t],\n\t\"./mathwallet.svg\": [\n\t\t597,\n\t\t77\n\t],\n\t\"./menu-square.svg\": [\n\t\t598,\n\t\t78\n\t],\n\t\"./menu.svg\": [\n\t\t599,\n\t\t79\n\t],\n\t\"./metamask.png\": [\n\t\t536,\n\t\t107\n\t],\n\t\"./pikachu.gif\": [\n\t\t542,\n\t\t108\n\t],\n\t\"./plus-blue.svg\": [\n\t\t600,\n\t\t80\n\t],\n\t\"./plus-grey.svg\": [\n\t\t601,\n\t\t81\n\t],\n\t\"./question-mark.svg\": [\n\t\t602,\n\t\t82\n\t],\n\t\"./question.svg\": [\n\t\t603,\n\t\t83\n\t],\n\t\"./settings-metis.svg\": [\n\t\t604,\n\t\t84\n\t],\n\t\"./settings.svg\": [\n\t\t605,\n\t\t85\n\t],\n\t\"./spinner.svg\": [\n\t\t606,\n\t\t86\n\t],\n\t\"./trustWallet.png\": [\n\t\t607,\n\t\t109\n\t],\n\t\"./trustwallet.svg\": [\n\t\t608,\n\t\t87\n\t],\n\t\"./walletConnectIcon.svg\": [\n\t\t237\n\t],\n\t\"./warning.svg\": [\n\t\t609,\n\t\t88\n\t],\n\t\"./wbnb.png\": [\n\t\t610,\n\t\t110\n\t],\n\t\"./x.svg\": [\n\t\t611,\n\t\t89\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 525;\nmodule.exports = webpackAsyncContext;","import i18next from 'i18next'\nimport { initReactI18next } from 'react-i18next'\nimport XHR from 'i18next-xhr-backend'\nimport LanguageDetector from 'i18next-browser-languagedetector'\n\ni18next\n .use(XHR)\n .use(LanguageDetector)\n .use(initReactI18next)\n .init({\n backend: {\n loadPath: `./locales/{{lng}}.json`\n },\n react: {\n useSuspense: true\n },\n fallbackLng: 'en',\n preload: ['en'],\n keySeparator: false,\n interpolation: { escapeValue: false }\n })\n\nexport default i18next\n","import { createReducer, nanoid } from '@reduxjs/toolkit'\nimport {\n addPopup,\n PopupContent,\n removePopup,\n toggleWalletModal,\n toggleSettingsMenu,\n updateBlockNumber,\n toggleChainWalletModal\n} from './actions'\n\ntype PopupList = Array<{ key: string; show: boolean; content: PopupContent; removeAfterMs: number | null }>\n\nexport interface ApplicationState {\n blockNumber: { [chainId: number]: number }\n timestamp: { [chainId: number]: number }\n popupList: PopupList\n walletModalOpen: boolean\n settingsMenuOpen: boolean\n chainWalletModalOpen: boolean\n}\n\nconst initialState: ApplicationState = {\n blockNumber: {},\n timestamp: {},\n popupList: [],\n walletModalOpen: false,\n settingsMenuOpen: false,\n chainWalletModalOpen: false\n}\n\nexport default createReducer(initialState, builder =>\n builder\n .addCase(updateBlockNumber, (state, action) => {\n const { chainId, blockNumber, timestamp } = action.payload\n if (typeof state.blockNumber[chainId] !== 'number') {\n state.blockNumber[chainId] = blockNumber\n } else {\n state.blockNumber[chainId] = Math.max(blockNumber, state.blockNumber[chainId])\n }\n\n if (typeof state.timestamp[chainId] !== 'number') {\n state.timestamp[chainId] = timestamp\n } else {\n state.timestamp[chainId] = Math.max(timestamp, state.timestamp[chainId])\n }\n })\n .addCase(toggleWalletModal, state => {\n state.walletModalOpen = !state.walletModalOpen\n })\n .addCase(toggleSettingsMenu, state => {\n state.settingsMenuOpen = !state.settingsMenuOpen\n })\n .addCase(toggleChainWalletModal, state => {\n state.chainWalletModalOpen = !state.chainWalletModalOpen\n })\n .addCase(addPopup, (state, { payload: { content, key, removeAfterMs = 15000 } }) => {\n state.popupList = (key ? state.popupList.filter(popup => popup.key !== key) : state.popupList).concat([\n {\n key: key || nanoid(),\n show: true,\n content,\n removeAfterMs\n }\n ])\n })\n .addCase(removePopup, (state, { payload: { key } }) => {\n state.popupList.forEach(p => {\n if (p.key === key) {\n p.show = false\n }\n })\n })\n)\n","import { createAction } from '@reduxjs/toolkit'\n\n// fired once when the app reloads but before the app renders\n// allows any updates to be applied to store data loaded from localStorage\nexport const updateVersion = createAction('global/updateVersion')\n","import { INITIAL_ALLOWED_SLIPPAGE, DEFAULT_DEADLINE_FROM_NOW } from '../../constants'\nimport { createReducer } from '@reduxjs/toolkit'\nimport { updateVersion } from '../global/actions'\nimport {\n addSerializedPair,\n addSerializedToken,\n removeSerializedPair,\n removeSerializedToken,\n SerializedPair,\n SerializedToken,\n updateUserExpertMode,\n updateUserSlippageTolerance,\n updateUserDeadline\n} from './actions'\n\nconst currentTimestamp = () => new Date().getTime()\n\nexport interface UserState {\n // the timestamp of the last updateVersion action\n lastUpdateVersionTimestamp?: number\n\n userExpertMode: boolean\n\n // user defined slippage tolerance in bips, used in all txns\n userSlippageTolerance: number\n\n // deadline set by user in minutes, used in all txns\n userDeadline: number\n\n tokens: {\n [chainId: number]: {\n [address: string]: SerializedToken\n }\n }\n\n pairs: {\n [chainId: number]: {\n // keyed by token0Address:token1Address\n [key: string]: SerializedPair\n }\n }\n\n timestamp: number\n\n audioPlay: boolean\n}\n\nfunction pairKey(token0Address: string, token1Address: string) {\n return `${token0Address};${token1Address}`\n}\n\nexport const initialState: UserState = {\n userExpertMode: false,\n userSlippageTolerance: INITIAL_ALLOWED_SLIPPAGE,\n userDeadline: DEFAULT_DEADLINE_FROM_NOW,\n tokens: {},\n pairs: {},\n timestamp: currentTimestamp(),\n audioPlay: true\n}\n\nexport default createReducer(initialState, builder =>\n builder\n .addCase(updateVersion, state => {\n // slippage isnt being tracked in local storage, reset to default\n // noinspection SuspiciousTypeOfGuard\n if (typeof state.userSlippageTolerance !== 'number') {\n state.userSlippageTolerance = INITIAL_ALLOWED_SLIPPAGE\n }\n\n // deadline isnt being tracked in local storage, reset to default\n // noinspection SuspiciousTypeOfGuard\n if (typeof state.userDeadline !== 'number') {\n state.userDeadline = DEFAULT_DEADLINE_FROM_NOW\n }\n\n state.lastUpdateVersionTimestamp = currentTimestamp()\n })\n .addCase(updateUserExpertMode, (state, action) => {\n state.userExpertMode = action.payload.userExpertMode\n state.timestamp = currentTimestamp()\n })\n .addCase(updateUserSlippageTolerance, (state, action) => {\n state.userSlippageTolerance = action.payload.userSlippageTolerance\n state.timestamp = currentTimestamp()\n })\n .addCase(updateUserDeadline, (state, action) => {\n state.userDeadline = action.payload.userDeadline\n state.timestamp = currentTimestamp()\n })\n .addCase(addSerializedToken, (state, { payload: { serializedToken } }) => {\n state.tokens[serializedToken.chainId] = state.tokens[serializedToken.chainId] || {}\n state.tokens[serializedToken.chainId][serializedToken.address] = serializedToken\n state.timestamp = currentTimestamp()\n })\n .addCase(removeSerializedToken, (state, { payload: { address, chainId } }) => {\n state.tokens[chainId] = state.tokens[chainId] || {}\n delete state.tokens[chainId][address]\n state.timestamp = currentTimestamp()\n })\n .addCase(addSerializedPair, (state, { payload: { serializedPair } }) => {\n if (\n serializedPair.token0.chainId === serializedPair.token1.chainId &&\n serializedPair.token0.address !== serializedPair.token1.address\n ) {\n const chainId = serializedPair.token0.chainId\n state.pairs[chainId] = state.pairs[chainId] || {}\n state.pairs[chainId][pairKey(serializedPair.token0.address, serializedPair.token1.address)] = serializedPair\n }\n state.timestamp = currentTimestamp()\n })\n .addCase(removeSerializedPair, (state, { payload: { chainId, tokenAAddress, tokenBAddress } }) => {\n if (state.pairs[chainId]) {\n // just delete both keys if either exists\n delete state.pairs[chainId][pairKey(tokenAAddress, tokenBAddress)]\n delete state.pairs[chainId][pairKey(tokenBAddress, tokenAAddress)]\n }\n state.timestamp = currentTimestamp()\n })\n)\n","import { createAction } from '@reduxjs/toolkit'\n\nexport enum Field {\n LIQUIDITY_PERCENT = 'LIQUIDITY_PERCENT',\n LIQUIDITY = 'LIQUIDITY',\n CURRENCY_A = 'CURRENCY_A',\n CURRENCY_B = 'CURRENCY_B'\n}\n\nexport const typeInput = createAction<{ field: Field; typedValue: string }>('burn/typeInputBurn')\n","import { createReducer } from '@reduxjs/toolkit'\nimport {\n addTransaction,\n checkedTransaction,\n clearAllTransactions,\n finalizeTransaction,\n SerializableTransactionReceipt\n} from './actions'\n\nconst now = () => new Date().getTime()\n\nexport interface TransactionDetails {\n hash: string\n approval?: { tokenAddress: string; spender: string }\n summary?: string\n receipt?: SerializableTransactionReceipt\n lastCheckedBlockNumber?: number\n addedTime: number\n confirmedTime?: number\n from: string\n}\n\nexport interface TransactionState {\n [chainId: number]: {\n [txHash: string]: TransactionDetails\n }\n}\n\nexport const initialState: TransactionState = {}\n\nexport default createReducer(initialState, builder =>\n builder\n .addCase(addTransaction, (transactions, { payload: { chainId, from, hash, approval, summary } }) => {\n if (transactions[chainId]?.[hash]) {\n throw Error('Attempted to add existing transaction.')\n }\n const txs = transactions[chainId] ?? {}\n txs[hash] = { hash, approval, summary, from, addedTime: now() }\n transactions[chainId] = txs\n })\n .addCase(clearAllTransactions, (transactions, { payload: { chainId } }) => {\n if (!transactions[chainId]) return\n transactions[chainId] = {}\n })\n .addCase(checkedTransaction, (transactions, { payload: { chainId, hash, blockNumber } }) => {\n const tx = transactions[chainId]?.[hash]\n if (!tx) {\n return\n }\n if (!tx.lastCheckedBlockNumber) {\n tx.lastCheckedBlockNumber = blockNumber\n } else {\n tx.lastCheckedBlockNumber = Math.max(blockNumber, tx.lastCheckedBlockNumber)\n }\n })\n .addCase(finalizeTransaction, (transactions, { payload: { hash, chainId, receipt } }) => {\n const tx = transactions[chainId]?.[hash]\n if (!tx) {\n return\n }\n tx.receipt = receipt\n tx.confirmedTime = now()\n })\n)\n","import { createReducer } from '@reduxjs/toolkit'\nimport {\n Field,\n replaceSwapState,\n selectCurrency,\n setRecipient,\n switchCurrencies,\n typeInput,\n setLeverage,\n setLeverageAllow,\n setDebtInfo,\n setOpenPositionInfo\n} from './actions'\n\nexport interface SwapState {\n readonly independentField: Field\n readonly typedValue: string\n readonly [Field.INPUT]: {\n readonly currencyId: string | undefined\n readonly currencyName: string | undefined\n }\n readonly [Field.OUTPUT]: {\n readonly currencyId: string | undefined\n readonly currencyName: string | undefined\n }\n // the typed recipient address or ENS name, or null if swap should go to sender\n readonly recipient: string | null\n readonly leverage: number\n readonly leverageAllow: number\n readonly showError: boolean\n\n readonly debtPayable: number\n readonly protocolFee: number\n readonly profit: number\n readonly borrowAmount: number\n readonly borrowRate: number\n readonly liquidationCost: number\n readonly maxBorrow: number\n}\n\nconst initialState: SwapState = {\n independentField: Field.INPUT,\n typedValue: '',\n [Field.INPUT]: {\n currencyId: '',\n currencyName: ''\n },\n [Field.OUTPUT]: {\n currencyId: '',\n currencyName: ''\n },\n recipient: null,\n leverage: 1,\n leverageAllow: 3,\n showError: false,\n\n debtPayable: 0,\n protocolFee: 0,\n profit: 0,\n borrowAmount: 0,\n borrowRate: 0,\n liquidationCost: 0,\n maxBorrow: 0\n}\n\nexport default createReducer(initialState, builder =>\n builder\n .addCase(replaceSwapState, () => {\n return initialState\n })\n .addCase(selectCurrency, (state, { payload: { currencyId, field, currencyName } }) => {\n return {\n ...state,\n [field]: { currencyId, currencyName }\n }\n })\n .addCase(switchCurrencies, state => {\n return {\n ...state,\n independentField: Field.INPUT,\n [Field.INPUT]: { currencyId: state[Field.OUTPUT].currencyId, currencyName: state[Field.OUTPUT].currencyName },\n [Field.OUTPUT]: { currencyId: state[Field.INPUT].currencyId, currencyName: state[Field.INPUT].currencyName },\n debtPayable: 0,\n protocolFee: 0,\n profit: 0\n }\n })\n .addCase(typeInput, (state, { payload: { field, typedValue } }) => {\n return {\n ...state,\n independentField: field,\n typedValue,\n debtPayable: 0,\n protocolFee: 0,\n profit: 0\n }\n })\n .addCase(setRecipient, (state, { payload: { recipient } }) => {\n state.recipient = recipient\n })\n .addCase(setLeverage, (state, { payload: { leverage } }) => {\n const showError = state.leverageAllow === leverage\n return {\n ...state,\n leverage,\n showError\n }\n })\n .addCase(setLeverageAllow, (state, { payload: { leverageAllow } }) => {\n return {\n ...state,\n leverageAllow\n }\n })\n .addCase(setDebtInfo, (state, { payload }) => {\n return {\n ...state,\n ...payload\n }\n })\n .addCase(setOpenPositionInfo, (state, { payload }) => {\n return {\n ...state,\n ...payload\n }\n })\n)\n","import { createReducer } from '@reduxjs/toolkit'\nimport { WritableDraft } from 'immer/dist/internal'\n\nimport { WOW_PAIRS } from 'constants/index'\n\nimport {\n selectCurrency,\n switchCurrencies,\n typeInput,\n setLeverage,\n setClosePositionInfo,\n setOpenPositionInfo,\n setIsShortTrade,\n setMaxPositionAmount,\n setIsActiveLimitOrders,\n setStopLoss,\n setTakeProfit,\n setInitialTokens,\n resetSwapState\n} from './actions'\nimport { TradeState } from './types'\n\nconst resetUserState = (state: WritableDraft) => {\n state.typedValue = ''\n state.input = ''\n state.output = ''\n state.leverage = 1\n state.amountOut = ''\n state.debtPayable = ''\n state.protocolFee = ''\n state.profit = ''\n state.borrowAmount = ''\n state.borrowRate = 0\n state.liquidationCost = 0\n state.maxBorrow = ''\n state.isShortTrade = false\n state.isMaxPosition = false\n state.isActiveLimitOrders = false\n state.stopLoss = 0\n state.takeProfit = 0\n}\n\nconst rememberUserTokens = (state: WritableDraft) => {\n if (state.isShortTrade) {\n if (state.shortIO === null) {\n state.shortIO = { input: '', output: '' }\n }\n state.shortIO.input = state.input\n state.shortIO.output = state.output\n } else {\n if (state.longIO === null) {\n state.longIO = { input: '', output: '' }\n }\n state.longIO.input = state.input\n state.longIO.output = state.output\n }\n}\n\nconst initialState: TradeState = {\n longIO: null,\n shortIO: null,\n typedValue: '',\n input: '',\n output: '',\n leverage: 1,\n amountOut: '',\n debtPayable: '',\n protocolFee: '',\n profit: '',\n borrowAmount: '',\n borrowRate: 0,\n liquidationCost: 0,\n maxBorrow: '',\n isShortTrade: false,\n isMaxPosition: false,\n isActiveLimitOrders: false,\n stopLoss: 0,\n takeProfit: 0\n}\n\nexport default createReducer(initialState, builder =>\n builder\n .addCase(selectCurrency, (state, { payload: { field, currency } }) => {\n state[field] = currency\n rememberUserTokens(state)\n })\n .addCase(switchCurrencies, state => {\n const input = state.input\n const output = state.output\n state.typedValue = ''\n state.input = output\n state.output = input\n state.debtPayable = ''\n state.protocolFee = ''\n state.profit = ''\n rememberUserTokens(state)\n })\n .addCase(typeInput, (state, { payload: { typedValue } }) => {\n state.typedValue = typedValue\n state.debtPayable = ''\n state.protocolFee = ''\n state.profit = ''\n })\n .addCase(setLeverage, (state, { payload: { leverage } }) => {\n state.leverage = leverage\n })\n .addCase(setClosePositionInfo, (state, { payload }) => ({ ...state, ...payload }))\n .addCase(setIsShortTrade, (state, { payload: { isShortTrade } }) => {\n resetUserState(state)\n state.isShortTrade = isShortTrade\n state.leverage = isShortTrade ? 0.1 : 1\n state.input = isShortTrade ? state.shortIO?.input ?? '' : state.longIO?.input ?? ''\n state.output = isShortTrade ? state.shortIO?.output ?? '' : state.longIO?.output ?? ''\n })\n .addCase(setOpenPositionInfo, (state, { payload }) => ({ ...state, ...payload }))\n .addCase(setMaxPositionAmount, (state, { payload: { isMaxPosition } }) => {\n state.isMaxPosition = isMaxPosition\n })\n .addCase(setIsActiveLimitOrders, (state, { payload: { isActiveLimitOrders } }) => {\n state.isActiveLimitOrders = isActiveLimitOrders\n })\n .addCase(setStopLoss, (state, { payload: { stopLoss } }) => {\n state.stopLoss = stopLoss\n })\n .addCase(setTakeProfit, (state, { payload: { takeProfit } }) => {\n state.takeProfit = takeProfit\n })\n .addCase(resetSwapState, () => initialState)\n .addCase(setInitialTokens, (state, { payload: { chainId } }) => {\n const longAddresses = WOW_PAIRS[chainId].long\n if (longAddresses) {\n state.longIO = longAddresses\n state.input = longAddresses.input\n state.output = longAddresses.output\n }\n\n if (WOW_PAIRS[chainId].short) {\n state.shortIO = WOW_PAIRS[chainId].short\n }\n })\n)\n","// the Uniswap Default token list lives here\n// export const DEFAULT_TOKEN_LIST_URL = 'tokens.uniswap.eth'\nexport const DEFAULT_TOKEN_LIST_URL = 'wowswap'\n\nexport const DEFAULT_LIST_OF_LISTS: string[] = [DEFAULT_TOKEN_LIST_URL]\n","import { ActionCreatorWithPayload, createAction } from '@reduxjs/toolkit'\nimport { TokenList, Version } from '@uniswap/token-lists'\n\nexport const fetchTokenList: Readonly<{\n pending: ActionCreatorWithPayload<{ url: string; requestId: string }>\n fulfilled: ActionCreatorWithPayload<{ url: string; tokenList: TokenList; requestId: string }>\n rejected: ActionCreatorWithPayload<{ url: string; errorMessage: string; requestId: string }>\n}> = {\n pending: createAction('lists/fetchTokenList/pending'),\n fulfilled: createAction('lists/fetchTokenList/fulfilled'),\n rejected: createAction('lists/fetchTokenList/rejected')\n}\n\nexport const acceptListUpdate = createAction('lists/acceptListUpdate')\nexport const addList = createAction('lists/addList')\nexport const removeList = createAction('lists/removeList')\nexport const selectList = createAction('lists/selectList')\nexport const rejectVersionUpdate = createAction('lists/rejectVersionUpdate')\n","import { createReducer } from '@reduxjs/toolkit'\nimport { getVersionUpgrade, VersionUpgrade } from '@uniswap/token-lists'\nimport { TokenList } from '@uniswap/token-lists/dist/types'\nimport { DEFAULT_LIST_OF_LISTS, DEFAULT_TOKEN_LIST_URL } from '../../constants/lists'\nimport { updateVersion } from '../global/actions'\nimport { acceptListUpdate, addList, fetchTokenList, removeList, selectList } from './actions'\nimport DEFAULT_LIST from '../../wowswap.json'\n\nexport interface ListsState {\n readonly byUrl: {\n readonly [url: string]: {\n readonly current: TokenList | null\n readonly pendingUpdate: TokenList | null\n readonly loadingRequestId: string | null\n readonly error: string | null\n }\n }\n // this contains the default list of lists from the last time the updateVersion was called, i.e. the app was reloaded\n readonly lastInitializedDefaultListOfLists?: string[]\n readonly selectedListUrl: string | undefined\n}\n\nconst NEW_LIST_STATE: ListsState['byUrl'][string] = {\n error: null,\n current: null,\n loadingRequestId: null,\n pendingUpdate: null\n}\n\ntype Mutable = { -readonly [P in keyof T]: T[P] extends ReadonlyArray ? U[] : T[P] }\n\nconst initialState: ListsState = {\n lastInitializedDefaultListOfLists: DEFAULT_LIST_OF_LISTS,\n byUrl: {\n ...DEFAULT_LIST_OF_LISTS.reduce>((memo, listUrl) => {\n memo[listUrl] = NEW_LIST_STATE\n return memo\n }, {}),\n [DEFAULT_TOKEN_LIST_URL]: {\n error: null,\n current: DEFAULT_LIST as any,\n loadingRequestId: null,\n pendingUpdate: null\n }\n },\n selectedListUrl: DEFAULT_TOKEN_LIST_URL\n}\n\nexport default createReducer(initialState, builder =>\n builder\n .addCase(fetchTokenList.pending, (state, { payload: { requestId, url } }) => {\n state.byUrl[url] = {\n current: null,\n pendingUpdate: null,\n ...state.byUrl[url],\n loadingRequestId: requestId,\n error: null\n }\n })\n .addCase(fetchTokenList.fulfilled, (state, { payload: { requestId, tokenList, url } }) => {\n const current = state.byUrl[url]?.current\n const loadingRequestId = state.byUrl[url]?.loadingRequestId\n\n // no-op if update does nothing\n if (current) {\n const upgradeType = getVersionUpgrade(current.version, tokenList.version)\n if (upgradeType === VersionUpgrade.NONE) return\n if (loadingRequestId === null || loadingRequestId === requestId) {\n state.byUrl[url] = {\n ...state.byUrl[url],\n loadingRequestId: null,\n error: null,\n current: current,\n pendingUpdate: tokenList\n }\n }\n } else {\n state.byUrl[url] = {\n ...state.byUrl[url],\n loadingRequestId: null,\n error: null,\n current: tokenList,\n pendingUpdate: null\n }\n }\n })\n .addCase(fetchTokenList.rejected, (state, { payload: { url, requestId, errorMessage } }) => {\n if (state.byUrl[url]?.loadingRequestId !== requestId) {\n // no-op since it's not the latest request\n return\n }\n\n state.byUrl[url] = {\n ...state.byUrl[url],\n loadingRequestId: null,\n error: errorMessage,\n current: null,\n pendingUpdate: null\n }\n })\n .addCase(selectList, (state, { payload: url }) => {\n state.selectedListUrl = url\n // automatically adds list\n if (!state.byUrl[url]) {\n state.byUrl[url] = NEW_LIST_STATE\n }\n })\n .addCase(addList, (state, { payload: url }) => {\n if (!state.byUrl[url]) {\n state.byUrl[url] = NEW_LIST_STATE\n }\n })\n .addCase(removeList, (state, { payload: url }) => {\n if (state.byUrl[url]) {\n delete state.byUrl[url]\n }\n if (state.selectedListUrl === url) {\n state.selectedListUrl = Object.keys(state.byUrl)[0]\n }\n })\n .addCase(acceptListUpdate, (state, { payload: url }) => {\n if (!state.byUrl[url]?.pendingUpdate) {\n throw new Error('accept list update called without pending update')\n }\n state.byUrl[url] = {\n ...state.byUrl[url],\n pendingUpdate: null,\n current: state.byUrl[url].pendingUpdate\n }\n })\n .addCase(updateVersion, state => {\n // state loaded from localStorage, but new lists have never been initialized\n if (!state.lastInitializedDefaultListOfLists) {\n state.byUrl = initialState.byUrl\n state.selectedListUrl = undefined\n } else if (state.lastInitializedDefaultListOfLists) {\n const lastInitializedSet = state.lastInitializedDefaultListOfLists.reduce>(\n (s, l) => s.add(l),\n new Set()\n )\n const newListOfListsSet = DEFAULT_LIST_OF_LISTS.reduce>((s, l) => s.add(l), new Set())\n\n DEFAULT_LIST_OF_LISTS.forEach(listUrl => {\n if (!lastInitializedSet.has(listUrl)) {\n state.byUrl[listUrl] = NEW_LIST_STATE\n }\n })\n\n state.lastInitializedDefaultListOfLists.forEach(listUrl => {\n if (!newListOfListsSet.has(listUrl)) {\n delete state.byUrl[listUrl]\n }\n })\n }\n\n state.lastInitializedDefaultListOfLists = DEFAULT_LIST_OF_LISTS\n })\n)\n","import { createReducer } from '@reduxjs/toolkit'\nimport { Field, typeInput } from './actions'\n\nexport interface BurnState {\n readonly independentField: Field\n readonly typedValue: string\n}\n\nconst initialState: BurnState = {\n independentField: Field.LIQUIDITY_PERCENT,\n typedValue: '0'\n}\n\nexport default createReducer(initialState, builder =>\n builder.addCase(typeInput, (state, { payload: { field, typedValue } }) => {\n return {\n ...state,\n independentField: field,\n typedValue\n }\n })\n)\n","import { createReducer } from '@reduxjs/toolkit'\nimport {\n addMulticallListeners,\n errorFetchingMulticallResults,\n fetchingMulticallResults,\n removeMulticallListeners,\n toCallKey,\n updateMulticallResults\n} from './actions'\n\nexport interface MulticallState {\n callListeners?: {\n // on a per-chain basis\n [chainId: number]: {\n // stores for each call key the listeners' preferences\n [callKey: string]: {\n // stores how many listeners there are per each blocks per fetch preference\n [blocksPerFetch: number]: number\n }\n }\n }\n\n callResults: {\n [chainId: number]: {\n [callKey: string]: {\n data?: string | null\n blockNumber?: number\n fetchingBlockNumber?: number\n }\n }\n }\n}\n\nconst initialState: MulticallState = {\n callResults: {}\n}\n\nexport default createReducer(initialState, builder =>\n builder\n .addCase(addMulticallListeners, (state, { payload: { calls, chainId, options: { blocksPerFetch = 1 } = {} } }) => {\n const listeners: MulticallState['callListeners'] = state.callListeners\n ? state.callListeners\n : (state.callListeners = {})\n listeners[chainId] = listeners[chainId] ?? {}\n calls.forEach(call => {\n const callKey = toCallKey(call)\n listeners[chainId][callKey] = listeners[chainId][callKey] ?? {}\n listeners[chainId][callKey][blocksPerFetch] = (listeners[chainId][callKey][blocksPerFetch] ?? 0) + 1\n })\n })\n .addCase(\n removeMulticallListeners,\n (state, { payload: { chainId, calls, options: { blocksPerFetch = 1 } = {} } }) => {\n const listeners: MulticallState['callListeners'] = state.callListeners\n ? state.callListeners\n : (state.callListeners = {})\n\n if (!listeners[chainId]) return\n calls.forEach(call => {\n const callKey = toCallKey(call)\n if (!listeners[chainId][callKey]) return\n if (!listeners[chainId][callKey][blocksPerFetch]) return\n\n if (listeners[chainId][callKey][blocksPerFetch] === 1) {\n delete listeners[chainId][callKey][blocksPerFetch]\n } else {\n listeners[chainId][callKey][blocksPerFetch]--\n }\n })\n }\n )\n .addCase(fetchingMulticallResults, (state, { payload: { chainId, fetchingBlockNumber, calls } }) => {\n state.callResults[chainId] = state.callResults[chainId] ?? {}\n calls.forEach(call => {\n const callKey = toCallKey(call)\n const current = state.callResults[chainId][callKey]\n if (!current) {\n state.callResults[chainId][callKey] = {\n fetchingBlockNumber\n }\n } else {\n if ((current.fetchingBlockNumber ?? 0) >= fetchingBlockNumber) return\n state.callResults[chainId][callKey].fetchingBlockNumber = fetchingBlockNumber\n }\n })\n })\n .addCase(errorFetchingMulticallResults, (state, { payload: { fetchingBlockNumber, chainId, calls } }) => {\n state.callResults[chainId] = state.callResults[chainId] ?? {}\n calls.forEach(call => {\n const callKey = toCallKey(call)\n const current = state.callResults[chainId][callKey]\n if (!current) return // only should be dispatched if we are already fetching\n if (current.fetchingBlockNumber === fetchingBlockNumber) {\n delete current.fetchingBlockNumber\n current.data = null\n current.blockNumber = fetchingBlockNumber\n }\n })\n })\n .addCase(updateMulticallResults, (state, { payload: { chainId, results, blockNumber } }) => {\n state.callResults[chainId] = state.callResults[chainId] ?? {}\n Object.keys(results).forEach(callKey => {\n const current = state.callResults[chainId][callKey]\n if ((current?.blockNumber ?? 0) > blockNumber) return\n state.callResults[chainId][callKey] = {\n data: results[callKey],\n blockNumber\n }\n })\n })\n)\n","import { createReducer } from '@reduxjs/toolkit'\nimport { BASE_TOKEN_SYMBOL } from '../../constants'\nimport { EarnDirection, EarnProperties, setDirection, setProperties, setToken, typeInput, clear } from './actions'\n\nexport interface EarnState {\n readonly data: EarnProperties\n}\n\nconst initialState: EarnState = {\n data: {\n token: BASE_TOKEN_SYMBOL,\n direction: EarnDirection.Deposit,\n input: ''\n }\n}\n\nexport default createReducer(initialState, builder =>\n builder\n .addCase(setProperties, (state, { payload }) => {\n return {\n ...state,\n data: {\n ...payload.data\n }\n }\n })\n .addCase(setToken, (state, { payload }) => {\n return {\n ...state,\n data: { ...state.data, token: payload.token, input: '' }\n }\n })\n .addCase(setDirection, (state, { payload }) => {\n return {\n ...state,\n data: { ...state.data, direction: payload.deposit ? EarnDirection.Deposit : EarnDirection.Withdraw, input: '' }\n }\n })\n .addCase(typeInput, (state, { payload }) => {\n return {\n ...state,\n data: { ...state.data, input: payload.amount }\n }\n })\n .addCase(clear, () => {\n return initialState\n })\n)\n","import { createReducer } from '@reduxjs/toolkit'\nimport {\n StakeState,\n setLockTime,\n setToken,\n setUnstakeToken,\n setTypeInput,\n setDirection,\n resetStakeState,\n StakeDirection\n} from './actions'\n\nconst initialState: StakeState = {\n tokenAddress: '',\n unstakeTokenAddress: '',\n typedValue: '',\n period: 14,\n direction: StakeDirection.STAKE\n}\n\nexport default createReducer(initialState, builder =>\n builder\n .addCase(setLockTime, (state, { payload }) => {\n return {\n ...state,\n period: payload.locktime\n }\n })\n .addCase(setToken, (state, { payload }) => {\n return {\n ...state,\n tokenAddress: payload.tokenAddress,\n typedValue: ''\n }\n })\n .addCase(setUnstakeToken, (state, { payload }) => {\n return {\n ...state,\n unstakeTokenAddress: payload.tokenAddress,\n typedValue: ''\n }\n })\n .addCase(setTypeInput, (state, { payload }) => {\n return {\n ...state,\n typedValue: payload.amount\n }\n })\n .addCase(setDirection, (state, { payload }) => {\n return {\n ...state,\n direction: payload.direction\n }\n })\n .addCase(resetStakeState, () => {\n return {\n ...initialState\n }\n })\n)\n","import { createReducer } from '@reduxjs/toolkit'\nimport {\n EconomicState,\n setUnloaded,\n setInited,\n setInitSingleParam,\n setSingleParam,\n TRADER_PROFIT_FEE,\n BASE_BORROW_RATE,\n EXCESS_SLOPE,\n LIQUIDATION_MARGIN,\n LIQUIDATION_REWARD,\n MAX_LEVERAGE_FACTOR,\n MAX_LIQUIDATION_REWARD,\n MAX_PRICE_THRESHOLD,\n MAX_RATE_MULTIPLIER,\n MIN_WOW_BALANCE_X4,\n MIN_WOW_BALANCE_X5,\n OPTIMAL_SLOPE,\n OPTIMAL_UTILIZATION,\n POOL_UTILIZATION_ALLOWANCE,\n TREASURE_FACTOR,\n GOVERNANCE_REWARD,\n BUY_AND_BURN,\n CHARITY,\n DEVELOPMENT,\n INSURANCE,\n REFERRAL_BONUS_1,\n REFERRAL_BONUS_2,\n REFERRAL_BONUS_3\n} from './actions'\n\nconst initialState: EconomicState = {\n account: undefined,\n loaded: false,\n [GOVERNANCE_REWARD]: {\n amount: '0',\n current: 0,\n newValue: 0,\n userValue: 0,\n voted: false,\n votedValue: 0\n },\n [BUY_AND_BURN]: {\n amount: '0',\n current: 0,\n newValue: 0,\n userValue: 0,\n voted: false,\n votedValue: 0\n },\n [CHARITY]: {\n amount: '0',\n current: 0,\n newValue: 0,\n userValue: 0,\n voted: false,\n votedValue: 0\n },\n [DEVELOPMENT]: {\n amount: '0',\n current: 0,\n newValue: 0,\n userValue: 0,\n voted: false,\n votedValue: 0\n },\n [INSURANCE]: {\n amount: '0',\n current: 0,\n newValue: 0,\n userValue: 0,\n voted: false,\n votedValue: 0\n },\n [TRADER_PROFIT_FEE]: {\n amount: '0',\n current: 0,\n newValue: 0,\n userValue: 0,\n min: 0,\n max: 0,\n voted: false,\n votedValue: 0\n },\n [TREASURE_FACTOR]: {\n amount: '0',\n current: 0,\n newValue: 0,\n userValue: 0,\n min: 0,\n max: 0,\n voted: false,\n votedValue: 0\n },\n [BASE_BORROW_RATE]: {\n amount: '0',\n current: 0,\n newValue: 0,\n userValue: 0,\n min: 0,\n max: 0,\n voted: false,\n votedValue: 0\n },\n [OPTIMAL_SLOPE]: {\n amount: '0',\n current: 0,\n newValue: 0,\n userValue: 0,\n min: 0,\n max: 0,\n voted: false,\n votedValue: 0\n },\n [EXCESS_SLOPE]: {\n amount: '0',\n current: 0,\n newValue: 0,\n userValue: 0,\n min: 0,\n max: 0,\n voted: false,\n votedValue: 0\n },\n [LIQUIDATION_MARGIN]: {\n amount: '0',\n current: 0,\n newValue: 0,\n userValue: 0,\n min: 0,\n max: 0,\n voted: false,\n votedValue: 0\n },\n [LIQUIDATION_REWARD]: {\n amount: '0',\n current: 0,\n newValue: 0,\n userValue: 0,\n min: 0,\n max: 0,\n voted: false,\n votedValue: 0\n },\n [MAX_LEVERAGE_FACTOR]: {\n amount: '0',\n current: 0,\n newValue: 0,\n userValue: 0,\n min: 0,\n max: 0,\n voted: false,\n votedValue: 0\n },\n [MAX_LIQUIDATION_REWARD]: {\n amount: '0',\n current: 0,\n newValue: 0,\n userValue: 0,\n min: 0,\n max: 0,\n voted: false,\n votedValue: 0\n },\n [MAX_PRICE_THRESHOLD]: {\n amount: '0',\n current: 0,\n newValue: 0,\n userValue: 0,\n min: 0,\n max: 0,\n voted: false,\n votedValue: 0\n },\n [MAX_RATE_MULTIPLIER]: {\n amount: '0',\n current: 0,\n newValue: 0,\n userValue: 0,\n min: 0,\n max: 0,\n voted: false,\n votedValue: 0\n },\n [MIN_WOW_BALANCE_X4]: {\n amount: '0',\n current: 0,\n newValue: 0,\n userValue: 0,\n min: 0,\n max: 0,\n voted: false,\n votedValue: 0\n },\n [MIN_WOW_BALANCE_X5]: {\n amount: '0',\n current: 0,\n newValue: 0,\n userValue: 0,\n min: 0,\n max: 0,\n voted: false,\n votedValue: 0\n },\n [OPTIMAL_UTILIZATION]: {\n amount: '0',\n current: 0,\n newValue: 0,\n userValue: 0,\n min: 0,\n max: 0,\n voted: false,\n votedValue: 0\n },\n [POOL_UTILIZATION_ALLOWANCE]: {\n amount: '0',\n current: 0,\n newValue: 0,\n userValue: 0,\n min: 0,\n max: 0,\n voted: false,\n votedValue: 0\n },\n [TREASURE_FACTOR]: {\n amount: '0',\n current: 0,\n newValue: 0,\n userValue: 0,\n min: 0,\n max: 0,\n voted: false,\n votedValue: 0\n },\n [REFERRAL_BONUS_1]: {\n amount: '0',\n current: 0,\n newValue: 0,\n userValue: 0,\n min: 0,\n max: 0,\n voted: false,\n votedValue: 0\n },\n [REFERRAL_BONUS_2]: {\n amount: '0',\n current: 0,\n newValue: 0,\n userValue: 0,\n min: 0,\n max: 0,\n voted: false,\n votedValue: 0\n },\n [REFERRAL_BONUS_3]: {\n amount: '0',\n current: 0,\n newValue: 0,\n userValue: 0,\n min: 0,\n max: 0,\n voted: false,\n votedValue: 0\n }\n}\n\nexport default createReducer(initialState, builder =>\n builder\n .addCase(setUnloaded, () => ({\n ...initialState\n }))\n .addCase(setInited, state => {\n return {\n ...state,\n loaded: true\n }\n })\n .addCase(setSingleParam, (state, { payload: { data, field } }) => {\n return {\n ...state,\n [field]: {\n ...state[field],\n ...data\n }\n }\n })\n .addCase(setInitSingleParam, (state, { payload: { data, field, account } }) => {\n const isLoadingNewAccount = account === state.account ? !state.loaded : true\n if (!isLoadingNewAccount) {\n delete data.userValue\n }\n\n return {\n ...(account === state.account ? state : initialState),\n loaded: !isLoadingNewAccount,\n account: account,\n [field]: {\n ...state[field],\n ...data\n }\n }\n })\n)\n","import { configureStore, getDefaultMiddleware } from '@reduxjs/toolkit'\nimport { save, load } from 'redux-localstorage-simple'\n\nimport application from './application/reducer'\nimport { updateVersion } from './global/actions'\nimport user from './user/reducer'\nimport transactions from './transactions/reducer'\nimport swap from './swap/reducer'\nimport trade from './trade/reducer'\nimport lists from './lists/reducer'\nimport burn from './burn/reducer'\nimport multicall from './multicall/reducer'\nimport earn from './earn/reducer'\nimport stake from './stake/reducer'\nimport financial from './financial/reducer'\nimport notifications from './notifications/reducer'\n\nconst PERSISTED_KEYS: string[] = ['user', 'transactions']\n\nconst store = configureStore({\n reducer: {\n application,\n user,\n transactions,\n swap,\n burn,\n multicall,\n lists,\n earn,\n trade,\n stake,\n financial,\n notifications\n },\n middleware: [...getDefaultMiddleware({ thunk: true }), save({ states: PERSISTED_KEYS })],\n preloadedState: load({ states: PERSISTED_KEYS })\n})\n\nstore.dispatch(updateVersion())\n\nexport default store\n\nexport type AppState = ReturnType\nexport type AppDispatch = typeof store.dispatch\n","import { useCallback, useEffect, useState } from 'react'\n\nconst VISIBILITY_STATE_SUPPORTED = 'visibilityState' in document\n\nfunction isWindowVisible() {\n return !VISIBILITY_STATE_SUPPORTED || document.visibilityState !== 'hidden'\n}\n\n/**\n * Returns whether the window is currently visible to the user.\n */\nexport default function useIsWindowVisible(): boolean {\n const [focused, setFocused] = useState(isWindowVisible())\n const listener = useCallback(() => {\n setFocused(isWindowVisible())\n }, [setFocused])\n\n useEffect(() => {\n if (!VISIBILITY_STATE_SUPPORTED) return undefined\n\n document.addEventListener('visibilitychange', listener)\n return () => {\n document.removeEventListener('visibilitychange', listener)\n }\n }, [listener])\n\n return focused\n}\n","import { useCallback, useEffect, useState } from 'react'\nimport { useActiveWeb3React } from '../../hooks'\nimport useDebounce from '../../hooks/useDebounce'\nimport useIsWindowVisible from '../../hooks/useIsWindowVisible'\nimport { updateBlockNumber } from './actions'\nimport { useDispatch } from 'react-redux'\n\nexport default function Updater(): null {\n const { library, chainId } = useActiveWeb3React()\n const dispatch = useDispatch()\n\n const windowVisible = useIsWindowVisible()\n\n const [state, setState] = useState<{\n chainId: number | undefined\n blockNumber: number | null\n timestamp: number | null\n }>({\n chainId,\n blockNumber: null,\n timestamp: null\n })\n\n const blockNumberCallback = useCallback(\n (blockNumber: number) => {\n library?.getBlock(blockNumber).then(block => {\n setState(state => {\n if (chainId === state.chainId) {\n if (typeof state.blockNumber !== 'number') return { chainId, blockNumber, timestamp: state.timestamp }\n return { chainId, blockNumber: Math.max(blockNumber, state.blockNumber), timestamp: block.timestamp }\n }\n return state\n })\n })\n },\n [chainId, setState, library]\n )\n\n // attach/detach listeners\n useEffect(() => {\n if (!library || !chainId || !windowVisible) return undefined\n\n setState({ chainId, blockNumber: null, timestamp: null })\n\n library\n .getBlockNumber()\n .then(blockNumberCallback)\n .catch(error => console.error(`Failed to get block number for chainId: ${chainId}`, error))\n\n library.on('block', blockNumberCallback)\n return () => {\n library.removeListener('block', blockNumberCallback)\n }\n }, [dispatch, chainId, library, blockNumberCallback, windowVisible])\n\n const debouncedState = useDebounce(state, 100)\n\n useEffect(() => {\n if (!debouncedState.chainId || !debouncedState.blockNumber || !debouncedState.timestamp || !windowVisible) return\n dispatch(\n updateBlockNumber({\n chainId: debouncedState.chainId,\n blockNumber: debouncedState.blockNumber,\n timestamp: debouncedState.timestamp\n })\n )\n }, [windowVisible, dispatch, debouncedState.blockNumber, debouncedState.chainId, debouncedState.timestamp])\n\n return null\n}\n","import CID from 'cids'\nimport { getCodec, rmPrefix } from 'multicodec'\nimport { decode, toB58String } from 'multihashes'\n\nexport function hexToUint8Array(hex: string): Uint8Array {\n hex = hex.startsWith('0x') ? hex.substr(2) : hex\n if (hex.length % 2 !== 0) throw new Error('hex must have length that is multiple of 2')\n const arr = new Uint8Array(hex.length / 2)\n for (let i = 0; i < arr.length; i++) {\n arr[i] = parseInt(hex.substr(i * 2, 2), 16)\n }\n return arr\n}\n\nconst UTF_8_DECODER = new TextDecoder()\n\n/**\n * Returns the URI representation of the content hash for supported codecs\n * @param contenthash to decode\n */\nexport default function contenthashToUri(contenthash: string): string {\n const buff = hexToUint8Array(contenthash)\n const codec = getCodec(buff as Buffer) // the typing is wrong for @types/multicodec\n switch (codec) {\n case 'ipfs-ns': {\n const data = rmPrefix(buff as Buffer)\n const cid = new CID(data)\n return `ipfs://${toB58String(cid.multihash)}`\n }\n case 'ipns-ns': {\n const data = rmPrefix(buff as Buffer)\n const cid = new CID(data)\n const multihash = decode(cid.multihash)\n if (multihash.name === 'identity') {\n return `ipns://${UTF_8_DECODER.decode(multihash.digest).trim()}`\n } else {\n return `ipns://${toB58String(cid.multihash)}`\n }\n }\n default:\n throw new Error(`Unrecognized codec: ${codec}`)\n }\n}\n","const ENS_NAME_REGEX = /^(([a-zA-Z0-9]+\\.)+)eth(\\/.*)?$/\n\nexport function parseENSAddress(ensAddress: string): { ensName: string; ensPath: string | undefined } | undefined {\n const match = ensAddress.match(ENS_NAME_REGEX)\n if (!match) return undefined\n return { ensName: `${match[1].toLowerCase()}eth`, ensPath: match[3] }\n}\n","/**\n * Given a URI that may be ipfs, ipns, http, or https protocol, return the fetch-able http(s) URLs for the same content\n * @param uri to convert to fetch-able http url\n */\nexport default function uriToHttp(uri: string): string[] {\n const protocol = uri.split(':')[0].toLowerCase()\n switch (protocol) {\n case 'https':\n return [uri]\n case 'http':\n return ['https' + uri.substr(4), uri]\n case 'ipfs':\n const hash = uri.match(/^ipfs:(\\/\\/)?(.*)$/i)?.[2]\n return [`https://cloudflare-ipfs.com/ipfs/${hash}/`, `https://ipfs.io/ipfs/${hash}/`]\n case 'ipns':\n const name = uri.match(/^ipns:(\\/\\/)?(.*)$/i)?.[2]\n return [`https://cloudflare-ipfs.com/ipns/${name}/`, `https://ipfs.io/ipns/${name}/`]\n default:\n return []\n }\n}\n","import { TokenList } from '@uniswap/token-lists'\nimport schema from '@uniswap/token-lists/src/tokenlist.schema.json'\nimport Ajv from 'ajv'\nimport contenthashToUri from './contenthashToUri'\nimport { parseENSAddress } from './parseENSAddress'\nimport uriToHttp from './uriToHttp'\n\n// bakeryswap defaultTokenJson\nimport { DEFAULT_TOKEN_LIST_URL } from '../constants/lists'\nimport defaultTokenJson from '../wowswap.json'\n\nconst tokenListValidator = new Ajv({ allErrors: true }).compile(schema)\n\n/**\n * Contains the logic for resolving a list URL to a validated token list\n * @param listUrl list url\n * @param resolveENSContentHash resolves an ens name to a contenthash\n */\nexport default async function getTokenList(\n listUrl: string,\n resolveENSContentHash: (ensName: string) => Promise\n): Promise {\n if (listUrl === DEFAULT_TOKEN_LIST_URL) {\n return defaultTokenJson as any\n }\n const parsedENS = parseENSAddress(listUrl)\n\n let urls: string[]\n if (parsedENS) {\n let contentHashUri\n try {\n contentHashUri = await resolveENSContentHash(parsedENS.ensName)\n } catch (error) {\n console.debug(`Failed to resolve ENS name: ${parsedENS.ensName}`, error)\n throw new Error(`Failed to resolve ENS name: ${parsedENS.ensName}`)\n }\n let translatedUri\n try {\n translatedUri = contenthashToUri(contentHashUri)\n } catch (error) {\n console.debug('Failed to translate contenthash to URI', contentHashUri)\n throw new Error(`Failed to translate contenthash to URI: ${contentHashUri}`)\n }\n urls = uriToHttp(`${translatedUri}${parsedENS.ensPath ?? ''}`)\n } else {\n urls = uriToHttp(listUrl)\n }\n for (let i = 0; i < urls.length; i++) {\n const url = urls[i]\n const isLast = i === urls.length - 1\n let response\n try {\n response = await fetch(url)\n } catch (error) {\n console.debug('Failed to fetch list', listUrl, error)\n if (isLast) throw new Error(`Failed to download list ${listUrl}`)\n continue\n }\n\n if (!response.ok) {\n if (isLast) throw new Error(`Failed to download list ${listUrl}`)\n continue\n }\n\n const json = await response.json()\n if (!tokenListValidator(json)) {\n const validationErrors: string =\n tokenListValidator.errors?.reduce((memo, error) => {\n const add = `${error.dataPath} ${error.message ?? ''}`\n return memo.length > 0 ? `${memo}; ${add}` : `${add}`\n }, '') ?? 'unknown error'\n throw new Error(`Token list failed validation: ${validationErrors}`)\n }\n return json\n }\n throw new Error('Unrecognized list URL protocol.')\n}\n","import { Contract } from '@ethersproject/contracts'\nimport { Provider } from '@ethersproject/abstract-provider'\nimport { namehash } from 'ethers/lib/utils'\n\nconst REGISTRAR_ABI = [\n {\n constant: true,\n inputs: [\n {\n name: 'node',\n type: 'bytes32'\n }\n ],\n name: 'resolver',\n outputs: [\n {\n name: 'resolverAddress',\n type: 'address'\n }\n ],\n payable: false,\n stateMutability: 'view',\n type: 'function'\n }\n]\nconst REGISTRAR_ADDRESS = '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e'\n\nconst RESOLVER_ABI = [\n {\n constant: true,\n inputs: [\n {\n internalType: 'bytes32',\n name: 'node',\n type: 'bytes32'\n }\n ],\n name: 'contenthash',\n outputs: [\n {\n internalType: 'bytes',\n name: '',\n type: 'bytes'\n }\n ],\n payable: false,\n stateMutability: 'view',\n type: 'function'\n }\n]\n\n// cache the resolver contracts since most of them are the public resolver\nfunction resolverContract(resolverAddress: string, provider: Provider): Contract {\n return new Contract(resolverAddress, RESOLVER_ABI, provider)\n}\n\n/**\n * Fetches and decodes the result of an ENS contenthash lookup on mainnet to a URI\n * @param ensName to resolve\n * @param provider provider to use to fetch the data\n */\nexport default async function resolveENSContentHash(ensName: string, provider: Provider): Promise {\n const ensRegistrarContract = new Contract(REGISTRAR_ADDRESS, REGISTRAR_ABI, provider)\n const hash = namehash(ensName)\n const resolverAddress = await ensRegistrarContract.resolver(hash)\n return resolverContract(resolverAddress, provider).contenthash(hash)\n}\n","import { getVersionUpgrade, minVersionBump, VersionUpgrade } from '@uniswap/token-lists'\nimport { useCallback, useEffect } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { ChainId, id } from '@wowswap-io/wowswap-sdk'\nimport { useActiveWeb3React } from '../../hooks'\nimport { useFetchListCallback } from '../../hooks/useFetchListCallback'\nimport useInterval from '../../hooks/useInterval'\nimport useIsWindowVisible from '../../hooks/useIsWindowVisible'\nimport { addPopup } from '../application/actions'\nimport { AppDispatch, AppState } from '../index'\nimport { acceptListUpdate } from './actions'\n\nexport default function Updater(): null {\n const { library, chainId } = useActiveWeb3React()\n\n id.setId(chainId || ChainId.MAINNET)\n\n const dispatch = useDispatch()\n const lists = useSelector(state => state.lists.byUrl)\n\n const isWindowVisible = useIsWindowVisible()\n\n const fetchList = useFetchListCallback()\n\n const fetchAllListsCallback = useCallback(() => {\n if (!isWindowVisible) return\n Object.keys(lists).forEach(url =>\n fetchList(url).catch(error => console.debug('interval list fetching error', error))\n )\n }, [fetchList, isWindowVisible, lists])\n\n // fetch all lists every 10 minutes, but only after we initialize library\n useInterval(fetchAllListsCallback, library ? 1000 * 60 * 10 : null)\n\n // whenever a list is not loaded and not loading, try again to load it\n useEffect(() => {\n Object.keys(lists).forEach(listUrl => {\n const list = lists[listUrl]\n\n if (!list.current && !list.loadingRequestId && !list.error) {\n fetchList(listUrl).catch(error => console.debug('list added fetching error', error))\n }\n })\n }, [dispatch, fetchList, library, lists])\n\n // automatically update lists if versions are minor/patch\n useEffect(() => {\n Object.keys(lists).forEach(listUrl => {\n const list = lists[listUrl]\n if (list.current && list.pendingUpdate) {\n const bump = getVersionUpgrade(list.current.version, list.pendingUpdate.version)\n switch (bump) {\n case VersionUpgrade.NONE:\n throw new Error('unexpected no version bump')\n case VersionUpgrade.PATCH:\n case VersionUpgrade.MINOR:\n const min = minVersionBump(list.current.tokens, list.pendingUpdate.tokens)\n // automatically update minor/patch as long as bump matches the min update\n if (bump >= min) {\n dispatch(acceptListUpdate(listUrl))\n dispatch(\n addPopup({\n key: listUrl,\n content: {\n listUpdate: {\n listUrl,\n oldList: list.current,\n newList: list.pendingUpdate,\n auto: true\n }\n }\n })\n )\n } else {\n console.error(\n `List at url ${listUrl} could not automatically update because the version bump was only PATCH/MINOR while the update had breaking changes and should have been MAJOR`\n )\n }\n break\n\n case VersionUpgrade.MAJOR:\n dispatch(\n addPopup({\n key: listUrl,\n content: {\n listUpdate: {\n listUrl,\n auto: false,\n oldList: list.current,\n newList: list.pendingUpdate\n }\n },\n removeAfterMs: null\n })\n )\n }\n }\n })\n }, [dispatch, lists])\n\n return null\n}\n","import { nanoid } from '@reduxjs/toolkit'\nimport { ChainId } from '@wowswap-io/wowswap-sdk'\nimport { TokenList } from '@uniswap/token-lists'\nimport { useCallback } from 'react'\nimport { useDispatch } from 'react-redux'\nimport { getNetworkLibrary, NETWORK_CHAIN_ID } from '../connectors'\nimport { AppDispatch } from '../state'\nimport { fetchTokenList } from '../state/lists/actions'\nimport getTokenList from '../utils/getTokenList'\nimport resolveENSContentHash from '../utils/resolveENSContentHash'\nimport { useActiveWeb3React } from './index'\n\nexport function useFetchListCallback(): (listUrl: string) => Promise {\n const { chainId, library } = useActiveWeb3React()\n const dispatch = useDispatch()\n\n const ensResolver = useCallback(\n (ensName: string) => {\n if (!library || chainId !== ChainId.MAINNET) {\n if (NETWORK_CHAIN_ID === ChainId.MAINNET) {\n const networkLibrary = getNetworkLibrary()\n if (networkLibrary) {\n return resolveENSContentHash(ensName, networkLibrary)\n }\n }\n throw new Error('Could not construct mainnet ENS resolver')\n }\n return resolveENSContentHash(ensName, library)\n },\n [chainId, library]\n )\n\n return useCallback(\n async (listUrl: string) => {\n const requestId = nanoid()\n dispatch(fetchTokenList.pending({ requestId, url: listUrl }))\n return getTokenList(listUrl, ensResolver)\n .then(tokenList => {\n dispatch(fetchTokenList.fulfilled({ url: listUrl, tokenList, requestId }))\n return tokenList\n })\n .catch(error => {\n console.debug(`Failed to get list at url ${listUrl}`, error)\n dispatch(fetchTokenList.rejected({ url: listUrl, requestId, errorMessage: error.message }))\n throw error\n })\n },\n [dispatch, ensResolver]\n )\n}\n","import { Contract } from '@ethersproject/contracts'\nimport { useEffect, useMemo, useRef } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { useActiveWeb3React } from '../../hooks'\nimport { useMulticallContract } from '../../hooks/useContract'\nimport useDebounce from '../../hooks/useDebounce'\nimport chunkArray from '../../utils/chunkArray'\nimport { CancelledError, retry, RetryableError } from '../../utils/retry'\nimport { useBlockNumber } from '../application/hooks'\nimport { AppDispatch, AppState } from '../index'\nimport {\n Call,\n errorFetchingMulticallResults,\n fetchingMulticallResults,\n parseCallKey,\n updateMulticallResults\n} from './actions'\n\n// chunk calls so we do not exceed the gas limit\nconst CALL_CHUNK_SIZE = 500\n\n/**\n * Fetches a chunk of calls, enforcing a minimum block number constraint\n * @param multicallContract multicall contract to fetch against\n * @param chunk chunk of calls to make\n * @param minBlockNumber minimum block number of the result set\n */\nasync function fetchChunk(\n multicallContract: Contract,\n chunk: Call[],\n minBlockNumber: number\n): Promise<{ results: string[]; blockNumber: number }> {\n // console.debug('Fetching chunk', multicallContract, chunk, minBlockNumber)\n const [resultsBlockNumber, returnData] = await multicallContract.aggregate(\n chunk.map(obj => [obj.address, obj.callData])\n )\n if (resultsBlockNumber.toNumber() < minBlockNumber) {\n // console.debug(`Fetched results for old block number: ${resultsBlockNumber.toString()} vs. ${minBlockNumber}`)\n throw new RetryableError('Fetched for old block number')\n }\n return { results: returnData, blockNumber: resultsBlockNumber.toNumber() }\n}\n\n/**\n * From the current all listeners state, return each call key mapped to the\n * minimum number of blocks per fetch. This is how often each key must be fetched.\n * @param allListeners the all listeners state\n * @param chainId the current chain id\n */\nexport function activeListeningKeys(\n allListeners: AppState['multicall']['callListeners'],\n chainId?: number\n): { [callKey: string]: number } {\n if (!allListeners || !chainId) return {}\n const listeners = allListeners[chainId]\n if (!listeners) return {}\n\n return Object.keys(listeners).reduce<{ [callKey: string]: number }>((memo, callKey) => {\n const keyListeners = listeners[callKey]\n\n memo[callKey] = Object.keys(keyListeners)\n .filter(key => {\n const blocksPerFetch = parseInt(key)\n if (blocksPerFetch <= 0) return false\n return keyListeners[blocksPerFetch] > 0\n })\n .reduce((previousMin, current) => {\n return Math.min(previousMin, parseInt(current))\n }, Infinity)\n return memo\n }, {})\n}\n\n/**\n * Return the keys that need to be refetched\n * @param callResults current call result state\n * @param listeningKeys each call key mapped to how old the data can be in blocks\n * @param chainId the current chain id\n * @param latestBlockNumber the latest block number\n */\nexport function outdatedListeningKeys(\n callResults: AppState['multicall']['callResults'],\n listeningKeys: { [callKey: string]: number },\n chainId: number | undefined,\n latestBlockNumber: number | undefined\n): string[] {\n if (!chainId || !latestBlockNumber) return []\n const results = callResults[chainId]\n // no results at all, load everything\n if (!results) return Object.keys(listeningKeys)\n\n return Object.keys(listeningKeys).filter(callKey => {\n const blocksPerFetch = listeningKeys[callKey]\n\n const data = callResults[chainId][callKey]\n // no data, must fetch\n if (!data) return true\n\n const minDataBlockNumber = latestBlockNumber - (blocksPerFetch - 1)\n\n // already fetching it for a recent enough block, don't refetch it\n if (data.fetchingBlockNumber && data.fetchingBlockNumber >= minDataBlockNumber) return false\n\n // if data is older than minDataBlockNumber, fetch it\n return !data.blockNumber || data.blockNumber < minDataBlockNumber\n })\n}\n\nexport default function Updater(): null {\n const dispatch = useDispatch()\n const state = useSelector(state => state.multicall)\n // wait for listeners to settle before triggering updates\n const debouncedListeners = useDebounce(state.callListeners, 100)\n const latestBlockNumber = useBlockNumber()\n const { chainId } = useActiveWeb3React()\n const multicallContract = useMulticallContract()\n const cancellations = useRef<{ blockNumber: number; cancellations: (() => void)[] }>()\n\n const listeningKeys: { [callKey: string]: number } = useMemo(() => {\n return activeListeningKeys(debouncedListeners, chainId)\n }, [debouncedListeners, chainId])\n\n const unserializedOutdatedCallKeys = useMemo(() => {\n return outdatedListeningKeys(state.callResults, listeningKeys, chainId, latestBlockNumber)\n }, [chainId, state.callResults, listeningKeys, latestBlockNumber])\n\n const serializedOutdatedCallKeys = useMemo(() => JSON.stringify(unserializedOutdatedCallKeys.sort()), [\n unserializedOutdatedCallKeys\n ])\n\n useEffect(() => {\n if (!latestBlockNumber || !chainId || !multicallContract) return\n\n const outdatedCallKeys: string[] = JSON.parse(serializedOutdatedCallKeys)\n if (outdatedCallKeys.length === 0) return\n const calls = outdatedCallKeys.map(key => parseCallKey(key))\n // .filter(item => item.address.toLowerCase() !== '0xBCfCcbde45cE874adCB698cC183deBcF17952812'.toLowerCase())\n\n const chunkedCalls = chunkArray(calls, CALL_CHUNK_SIZE)\n\n if (cancellations.current?.blockNumber !== latestBlockNumber) {\n cancellations.current?.cancellations?.forEach(c => c())\n }\n\n dispatch(\n fetchingMulticallResults({\n calls,\n chainId,\n fetchingBlockNumber: latestBlockNumber\n })\n )\n\n cancellations.current = {\n blockNumber: latestBlockNumber,\n cancellations: chunkedCalls.map((chunk, index) => {\n const { cancel, promise } = retry(() => fetchChunk(multicallContract, chunk, latestBlockNumber), {\n n: Infinity,\n minWait: 100,\n maxWait: 500\n })\n promise\n .then(({ results: returnData, blockNumber: fetchBlockNumber }) => {\n cancellations.current = { cancellations: [], blockNumber: latestBlockNumber }\n\n // accumulates the length of all previous indices\n const firstCallKeyIndex = chunkedCalls.slice(0, index).reduce((memo, curr) => memo + curr.length, 0)\n const lastCallKeyIndex = firstCallKeyIndex + returnData.length\n\n dispatch(\n updateMulticallResults({\n chainId,\n results: outdatedCallKeys\n .slice(firstCallKeyIndex, lastCallKeyIndex)\n .reduce<{ [callKey: string]: string | null }>((memo, callKey, i) => {\n memo[callKey] = returnData[i] ?? null\n return memo\n }, {}),\n blockNumber: fetchBlockNumber\n })\n )\n\n // console.info('Success to fetch multicall chunk', chunk, chainId)\n })\n .catch((error: any) => {\n if (error instanceof CancelledError) {\n console.debug('Cancelled fetch for blockNumber', latestBlockNumber)\n return\n }\n console.error('Failed to fetch multicall chunk', chunk, chainId, error)\n dispatch(\n errorFetchingMulticallResults({\n calls: chunk,\n chainId,\n fetchingBlockNumber: latestBlockNumber\n })\n )\n })\n return cancel\n })\n }\n }, [chainId, multicallContract, dispatch, serializedOutdatedCallKeys, latestBlockNumber])\n\n return null\n}\n","// chunks array into chunks of maximum size\n// evenly distributes items among the chunks\nexport default function chunkArray(items: T[], maxChunkSize: number): T[][] {\n if (maxChunkSize < 1) throw new Error('maxChunkSize must be gte 1')\n if (items.length <= maxChunkSize) return [items]\n\n const numChunks: number = Math.ceil(items.length / maxChunkSize)\n const chunkSize = Math.ceil(items.length / numChunks)\n\n return [...Array(numChunks).keys()].map(ix => items.slice(ix * chunkSize, ix * chunkSize + chunkSize))\n}\n","import { useEffect } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { useActiveWeb3React } from '../../hooks'\nimport { useAddPopup, useBlockNumber } from '../application/hooks'\nimport { AppDispatch, AppState } from '../index'\nimport { checkedTransaction, finalizeTransaction } from './actions'\nimport { TransactionDetails } from './reducer'\n\nexport function shouldCheck(\n lastBlockNumber: number,\n tx: { addedTime: number; receipt?: unknown; lastCheckedBlockNumber?: number }\n): boolean {\n if (tx.receipt) return false\n if (!tx.lastCheckedBlockNumber) return true\n const blocksSinceCheck = lastBlockNumber - tx.lastCheckedBlockNumber\n if (blocksSinceCheck < 1) return false\n const minutesPending = (new Date().getTime() - tx.addedTime) / 1000 / 60\n if (minutesPending > 60) {\n // every 10 blocks if pending for longer than an hour\n return blocksSinceCheck > 9\n } else if (minutesPending > 5) {\n // every 3 blocks if pending more than 5 minutes\n return blocksSinceCheck > 2\n } else {\n // otherwise every block\n return true\n }\n}\n\nconst mempty: {\n [txHash: string]: TransactionDetails\n} = {}\n\nexport default function Updater(): null {\n const { chainId, library } = useActiveWeb3React()\n\n const lastBlockNumber = useBlockNumber()\n\n const dispatch = useDispatch()\n const state = useSelector(state => state.transactions)\n\n const transactions = chainId ? state[chainId] ?? mempty : mempty\n\n // show popup on confirm\n const addPopup = useAddPopup()\n\n useEffect(() => {\n if (!chainId || !library || !lastBlockNumber) return\n\n Object.keys(transactions)\n .filter(hash => shouldCheck(lastBlockNumber, transactions[hash]))\n .forEach(hash => {\n library\n .getTransactionReceipt(hash)\n .then(receipt => {\n if (receipt) {\n dispatch(\n finalizeTransaction({\n chainId,\n hash,\n receipt: {\n blockHash: receipt.blockHash,\n blockNumber: receipt.blockNumber,\n contractAddress: receipt.contractAddress,\n from: receipt.from,\n status: receipt.status,\n to: receipt.to,\n transactionHash: receipt.transactionHash,\n transactionIndex: receipt.transactionIndex\n }\n })\n )\n\n addPopup(\n {\n txn: {\n hash,\n success: receipt.status === 1,\n summary: transactions[hash]?.summary\n }\n },\n hash\n )\n } else {\n dispatch(checkedTransaction({ chainId, hash, blockNumber: lastBlockNumber }))\n }\n })\n .catch(error => {\n console.error(`failed to check transaction hash: ${hash}`, error)\n })\n })\n }, [chainId, library, transactions, lastBlockNumber, dispatch, addPopup])\n\n return null\n}\n","import { Web3Provider } from '@ethersproject/providers'\n\nexport default function getLibrary(provider: any): Web3Provider {\n const library = new Web3Provider(provider)\n library.pollingInterval = 15000\n return library\n}\n","import { DefaultTheme } from 'styled-components'\nimport base from './base'\n\nconst theme: DefaultTheme = {\n ...base,\n mode: 'light',\n colors: {\n ...base.colors,\n shadow1: '#2F80ED',\n\n white: base.colors.white,\n black: base.colors.black,\n\n text1: base.colors.black,\n text2: base.colors.orange,\n text3: base.colors.red,\n text4: base.colors.grey2,\n\n // backgrounds / greys\n bg0: base.colors.light,\n fg0: base.colors.black,\n bg1: base.colors.white,\n fg1: base.colors.black,\n bg2: base.colors.orange,\n fg2: base.colors.white,\n bg3: '#ffecf9',\n fg3: base.colors.black,\n bg4: '#E6AE25',\n fg4: base.colors.black,\n bg5: '#FCEEBF',\n fg5: base.colors.black,\n bg6: 'linear-gradient(193.68deg,#2a1926 0.68%,#1f121c 100.48%)',\n fg6: base.colors.black,\n modalBG: 'linear-gradient(90deg, rgba(255, 247, 60, 0.4) 0%, rgba(243, 186, 47, 0.4) 100%)',\n advancedBG: 'rgba(255,223,248,0.6)',\n pageTitelBG: 'transparent',\n\n //primary colors\n primary1: base.colors.orange,\n primary4: base.colors.red,\n primary5: base.colors.green,\n primary6: '#ffdff5',\n\n // color text\n primaryText1: '#FFFFFF',\n buttonText: base.colors.light,\n\n // secondary colors\n secondary1: base.colors.grey1,\n\n red: '#E85A44'\n },\n background: {\n image: `linear-gradient(90deg, #FFF73C 0%, #F3BA2F 100%)`\n }\n}\n\nexport default theme\n","import { DefaultTheme } from 'styled-components'\nimport base from './base'\n\nconst theme: DefaultTheme = {\n ...base,\n mode: 'dark',\n colors: {\n ...base.colors,\n shadow1: '#2F80ED',\n\n white: base.colors.white,\n black: base.colors.black,\n\n text1: base.colors.white,\n text2: base.colors.orange,\n text3: base.colors.red,\n text4: base.colors.grey1,\n\n // backgrounds / greys\n bg0: base.colors.dark,\n fg0: base.colors.black,\n bg1: base.colors.black,\n fg1: base.colors.black,\n bg2: base.colors.orange,\n fg2: base.colors.black,\n bg3: base.colors.black,\n fg3: base.colors.black,\n bg4: '#E6AE25',\n fg4: base.colors.black,\n bg5: '#FCEEBF',\n fg5: base.colors.black,\n bg6: 'linear-gradient(193.68deg,#2a1926 0.68%,#1f121c 100.48%)',\n fg6: base.colors.black,\n modalBG: '#00000099',\n advancedBG: 'rgba(255,223,248,0.6)',\n pageTitelBG: 'transparent',\n\n //primary colors\n primary1: base.colors.orange,\n primary4: base.colors.red,\n primary5: base.colors.green,\n primary6: '#ffdff5',\n\n // color text\n primaryText1: '#FFFFFF',\n buttonText: base.colors.light,\n\n // secondary colors\n secondary1: base.colors.grey2,\n\n red: '#E85A44'\n },\n background: {\n image: `linear-gradient(100deg, #000000 0%, #000000 100%)`\n },\n typography: {\n fontFamily: {\n primary: \"'Roboto', sans-serif\",\n secondary: \"'Roboto', sans-serif\"\n }\n }\n}\n\nexport default theme\n","import { DefaultTheme } from 'styled-components'\nimport base from './base'\n\nconst theme: DefaultTheme = {\n ...base,\n mode: 'matic',\n colors: {\n ...base.colors,\n shadow1: '#2F80ED',\n\n white: base.colors.white,\n black: base.colors.black,\n\n text1: base.colors.black,\n text2: base.colors.orange,\n text3: base.colors.red,\n text4: base.colors.grey2,\n\n // backgrounds / greys\n bg0: base.colors.light,\n fg0: base.colors.black,\n bg1: base.colors.white,\n fg1: base.colors.black,\n bg2: '#fffdfe',\n fg2: base.colors.black,\n bg3: '#ffecf9',\n fg3: base.colors.black,\n bg4: '#E6AE25',\n fg4: base.colors.white,\n bg5: '#FCEEBF',\n fg5: base.colors.black,\n bg6: 'linear-gradient(193.68deg,#2a1926 0.68%,#1f121c 100.48%)',\n fg6: base.colors.white,\n modalBG: 'linear-gradient(90deg, rgba(255, 247, 60, 0.4) 0%, rgba(243, 186, 47, 0.4) 100%)',\n advancedBG: 'rgba(255,223,248,0.6)',\n pageTitelBG: 'transparent',\n\n //primary colors\n primary1: base.colors.orange,\n primary4: base.colors.red,\n primary5: base.colors.green,\n primary6: '#ffdff5',\n\n // color text\n primaryText1: '#FFFFFF',\n buttonText: base.colors.light,\n\n // secondary colors\n secondary1: base.colors.grey1,\n\n red: '#E85A44'\n },\n background: {\n image: `linear-gradient(90deg, #A3EEFF 0%, #51A8E9 100%)`\n },\n shape: {\n borderRadius: {\n l: '36px',\n m: '16px',\n s: '10px'\n }\n }\n}\n\nexport default theme\n","import { DefaultTheme } from 'styled-components'\nimport base from './base'\n\nconst theme: DefaultTheme = {\n ...base,\n mode: 'heco',\n colors: {\n ...base.colors,\n shadow1: '#2F80ED',\n\n white: base.colors.white,\n black: base.colors.black,\n\n text1: base.colors.black,\n text2: base.colors.orange,\n text3: base.colors.red,\n text4: base.colors.grey2,\n\n // backgrounds / greys\n bg0: base.colors.light,\n fg0: base.colors.black,\n bg1: base.colors.white,\n fg1: base.colors.black,\n bg2: '#fffdfe',\n fg2: base.colors.black,\n bg3: '#ffecf9',\n fg3: base.colors.black,\n bg4: '#E6AE25',\n fg4: base.colors.black,\n bg5: '#FCEEBF',\n fg5: base.colors.black,\n bg6: 'linear-gradient(193.68deg,#2a1926 0.68%,#1f121c 100.48%)',\n fg6: base.colors.black,\n modalBG: 'linear-gradient(90deg, rgba(255, 247, 60, 0.4) 0%, rgba(243, 186, 47, 0.4) 100%)',\n advancedBG: 'rgba(255,223,248,0.6)',\n pageTitelBG: 'transparent',\n\n //primary colors\n primary1: base.colors.orange,\n primary4: base.colors.red,\n primary5: base.colors.green,\n primary6: '#ffdff5',\n\n // color text\n primaryText1: '#FFFFFF',\n buttonText: base.colors.light,\n\n // secondary colors\n secondary1: base.colors.grey1,\n\n red: '#E85A44'\n },\n background: {\n image: `linear-gradient(90deg, #86EFA8 0%, #42CE61 100%)`\n }\n}\n\nexport default theme\n","import base from './base'\nimport EthereumBackgroung from '../assets/images/ethereum-bg.png'\nimport { DefaultTheme } from 'styled-components'\n\nconst theme: DefaultTheme = {\n ...base,\n mode: 'ethereum',\n colors: {\n ...base.colors,\n shadow1: '#2F80ED',\n\n white: base.colors.white,\n black: base.colors.black,\n\n text1: base.colors.black,\n text2: base.colors.orange,\n text3: base.colors.red,\n text4: base.colors.grey2,\n\n // backgrounds / greys\n bg0: base.colors.light,\n fg0: base.colors.black,\n bg1: base.colors.white,\n fg1: base.colors.black,\n bg2: '#697FE3',\n fg2: base.colors.white,\n bg3: '#ffecf9',\n fg3: base.colors.black,\n bg4: '#E6AE25',\n fg4: base.colors.black,\n bg5: '#FCEEBF',\n fg5: base.colors.black,\n bg6: 'linear-gradient(193.68deg,#2a1926 0.68%,#1f121c 100.48%)',\n fg6: base.colors.black,\n modalBG: 'linear-gradient(90deg, rgba(255, 247, 60, 0.4) 0%, rgba(243, 186, 47, 0.4) 100%)',\n advancedBG: 'rgba(255,223,248,0.6)',\n pageTitelBG: 'linear-gradient(90deg, #FFF73C 0%, #F3BA2F 100%)',\n\n //primary colors\n primary1: base.colors.orange,\n primary4: base.colors.red,\n primary5: base.colors.green,\n primary6: '#ffdff5',\n\n // color text\n primaryText1: '#FFFFFF',\n buttonText: base.colors.light,\n\n // secondary colors\n secondary1: base.colors.grey1,\n\n red: '#E85A44'\n },\n background: {\n image: `url('${EthereumBackgroung}')`\n }\n}\n\nexport default theme\n","import { DefaultTheme } from 'styled-components'\nimport light from './light'\n\nconst theme: DefaultTheme = {\n ...light,\n mode: 'avalanche',\n colors: {\n ...light.colors,\n bg2: '#E84142'\n },\n background: {\n image: `linear-gradient(90deg, #FF6262 0%, #E84141 100%)`\n }\n}\n\nexport default theme\n","import base from './base'\nimport IotexBackground from '../assets/images/iotex-bg.png'\nimport { DefaultTheme } from 'styled-components'\n\nconst theme: DefaultTheme = {\n ...base,\n mode: 'iotex',\n colors: {\n ...base.colors,\n shadow1: '#2F80ED',\n\n white: base.colors.white,\n black: base.colors.black,\n\n text1: base.colors.black,\n text2: base.colors.orange,\n text3: base.colors.red,\n text4: base.colors.grey2,\n\n // backgrounds / greys\n bg0: base.colors.light,\n fg0: base.colors.black,\n bg1: base.colors.white,\n fg1: base.colors.black,\n bg2: '#15E3B0',\n fg2: base.colors.white,\n bg3: '#ffecf9',\n fg3: base.colors.black,\n bg4: '#E6AE25',\n fg4: base.colors.black,\n bg5: '#FCEEBF',\n fg5: base.colors.black,\n bg6: 'linear-gradient(193.68deg,#2a1926 0.68%,#1f121c 100.48%)',\n fg6: base.colors.black,\n modalBG: 'linear-gradient(90deg, rgba(255, 247, 60, 0.4) 0%, rgba(243, 186, 47, 0.4) 100%)',\n advancedBG: 'rgba(255,223,248,0.6)',\n pageTitelBG: 'linear-gradient(90deg, #FFF73C 0%, #F3BA2F 100%)',\n\n //primary colors\n primary1: base.colors.orange,\n primary4: base.colors.red,\n primary5: base.colors.green,\n primary6: '#ffdff5',\n\n // color text\n primaryText1: '#FFFFFF',\n buttonText: base.colors.light,\n\n // secondary colors\n secondary1: base.colors.grey1,\n\n red: '#E85A44'\n },\n background: {\n image: `url('${IotexBackground}')`\n }\n}\n\nexport default theme\n","import { DefaultTheme } from 'styled-components'\nimport light from './light'\nimport base from './base'\n\nconst rose = '#C42A61'\nconst black = '#221232'\nconst lightBlack = '#2A1034'\nconst lightBlack2 = '#170627'\n\nconst theme: DefaultTheme = {\n ...light,\n mode: 'metis',\n colors: {\n ...light.colors,\n text1: light.colors.white, // text all + severity 1\n\n bg0: lightBlack2,\n // input background\n bg1: black,\n bg2: black,\n bg5: lightBlack,\n fg2: rose,\n text4: 'rgba(255,255,255,0.5)',\n\n secondary1: lightBlack,\n\n primary5: rose, // severity 2\n primary4: rose, // severity 3 - 4\n\n switch: {\n selectedText: rose,\n selectedTab: lightBlack2,\n hoverBorderTab: light.colors.black,\n hoverTab: lightBlack2\n },\n\n // MAX\n primary1: rose, // border btn + severity 2\n primaryText1: light.colors.white,\n maxBtnBG: black,\n buttonText: light.colors.white,\n\n sliderThumbBG: rose,\n\n btn: {\n border: light.colors.black\n },\n\n input: {\n border: light.colors.black,\n hover: rose\n },\n\n item: {\n bg: black,\n border: light.colors.black,\n hover: rose\n },\n\n portfolioItem: {\n loading: 'rgba(255,255,255,0.5)',\n bg: '#1F0F2F',\n oddBg: '#1F0835',\n up: '#0A8C10',\n header: 'rgba(255,255,255,0.5)',\n down: rose,\n middle: base.colors.orange\n },\n\n walletItem: {\n bg: '#1F0F2F'\n },\n pageTitelBG: '#1D0831',\n modalBG: 'linear-gradient(90deg, #22123245 0%, #22123245 100%)'\n },\n\n background: {\n image: `linear-gradient(90deg, #1D0831 0%, #1D0831 100%)`\n },\n\n typography: {\n fontFamily: {\n primary: \"'Pink Fang', sans-serif\",\n secondary: \"'Pink Fang', sans-serif\"\n }\n },\n\n switchLable: {\n fontFamily: \"'Pink Fang', sans-serif\"\n },\n\n paddings: {\n globalBodyTop: '0'\n }\n}\n\nexport default theme\n","import WebFont from 'webfontloader'\nexport { default as lightTheme } from './light'\nexport { default as darkTheme } from './dark'\nexport { default as maticTheme } from './matic'\nexport { default as hecoTheme } from './heco'\nexport { default as ethereumTheme } from './ethereum'\nexport { default as avalancheTheme } from './avalanche'\nexport { default as iotexTheme } from './iotex'\nexport { default as metisTheme } from './metis'\n\nWebFont.load({\n google: {\n families: ['Noto+Sans:400,500,600,700,800,900', 'sans-serif']\n }\n})\n","import { useEffect } from 'react'\nimport ReactGA from 'react-ga'\nimport { RouteComponentProps } from 'react-router-dom'\n\n// fires a GA pageview every time the route changes\nexport default function GoogleAnalyticsReporter({ location: { pathname, search } }: RouteComponentProps): null {\n useEffect(() => {\n ReactGA.pageview(`${pathname}${search}`)\n }, [pathname, search])\n return null\n}\n","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgBnb(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"-10 -10 116 116\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M23.0193 14.7044L48.5 0L73.9807 14.7044L64.6128 20.1366L48.5 10.8644L32.3872 20.1366L23.0193 14.7044ZM73.9807 33.2488L64.6128 27.8166L48.5 37.0888L32.3872 27.8166L23.0193 33.2488V44.1132L39.1321 53.3854V71.9297L48.5 77.362L57.8679 71.9297V53.3854L73.9807 44.1132V33.2488ZM73.9807 62.6576V51.7932L64.6128 57.2254V68.0898L73.9807 62.6576ZM80.6321 66.4976L64.5193 75.7698V86.6341L90 71.9297V42.521L80.6321 47.9532V66.4976ZM71.2641 23.9766L80.6321 29.4088V40.2732L90 34.841V23.9766L80.6321 18.5444L71.2641 23.9766ZM39.1321 79.7034V90.5678L48.5 96L57.8679 90.5678V79.7034L48.5 85.1356L39.1321 79.7034ZM23.0193 62.6576L32.3872 68.0898V57.2254L23.0193 51.7932V62.6576ZM39.1321 23.9766L48.5 29.4088L57.8679 23.9766L48.5 18.5444L39.1321 23.9766ZM16.3679 29.4088L25.7359 23.9766L16.3679 18.5444L7 23.9766V34.841L16.3679 40.2732V29.4088ZM16.3679 47.9532L7 42.521V71.9297L32.4807 86.6341V75.7698L16.3679 66.4976V47.9532Z\",\n fill: \"white\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgBnb);\nexport default __webpack_public_path__ + \"static/media/bnb.7d7e6ee5.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgPolygon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 22 28\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.6015 10.1099C16.1956 9.85624 15.6679 9.85624 15.2214 10.1099L12.0553 12.055L9.90406 13.3235L6.73801 15.2685C6.3321 15.5222 5.80443 15.5222 5.35793 15.2685L2.84133 13.7463C2.43542 13.4926 2.15129 13.0275 2.15129 12.5201V9.51797C2.15129 9.01057 2.39483 8.54545 2.84133 8.29175L5.31734 6.81184C5.72325 6.55814 6.25092 6.55814 6.69742 6.81184L9.17343 8.29175C9.57934 8.54545 9.86347 9.01057 9.86347 9.51797V11.463L12.0148 10.1522V8.20719C12.0148 7.69979 11.7712 7.23467 11.3247 6.98097L6.73801 4.19027C6.3321 3.93658 5.80443 3.93658 5.35793 4.19027L0.690037 6.98097C0.243542 7.23467 0 7.69979 0 8.20719V13.8309C0 14.3383 0.243542 14.8034 0.690037 15.0571L5.35793 17.8478C5.76384 18.1015 6.29151 18.1015 6.73801 17.8478L9.90406 15.945L12.0553 14.6342L15.2214 12.7315C15.6273 12.4778 16.155 12.4778 16.6015 12.7315L19.0775 14.2114C19.4834 14.4651 19.7675 14.9302 19.7675 15.4376V18.4397C19.7675 18.9471 19.524 19.4123 19.0775 19.666L16.6015 21.1882C16.1956 21.4419 15.6679 21.4419 15.2214 21.1882L12.7454 19.7082C12.3395 19.4545 12.0553 18.9894 12.0553 18.482V16.537L9.90406 17.8478V19.7928C9.90406 20.3002 10.1476 20.7653 10.5941 21.019L15.262 23.8097C15.6679 24.0634 16.1956 24.0634 16.6421 23.8097L21.31 21.019C21.7159 20.7653 22 20.3002 22 19.7928V14.1691C22 13.6617 21.7565 13.1966 21.31 12.9429L16.6015 10.1099Z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgPolygon);\nexport default __webpack_public_path__ + \"static/media/polygon.57cdf0ae.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgHeco(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 22 28\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.6584 9.46202C13.6584 6.44758 12.0804 3.85442 10.8807 3.0101C10.875 3.00832 10.7895 2.9623 10.7971 3.08267C10.7971 3.08444 10.7952 3.08444 10.7952 3.08621C10.6963 8.90799 7.50226 10.4851 5.74554 12.611C1.69215 17.5159 5.46226 22.8934 9.30081 23.8863C11.4492 24.4421 8.80459 22.9022 8.46427 19.6488C8.05171 15.7175 13.6584 12.7172 13.6584 9.46202Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.5245 11.4465C15.4997 11.4305 15.4655 11.42 15.4408 11.4571C15.3742 12.1899 14.57 13.7582 13.551 15.1972C10.0946 20.0791 12.0642 22.4334 13.1727 23.6972C13.8153 24.4318 13.1727 23.6972 14.7792 22.9467C14.9047 22.8882 17.9162 21.3164 18.2413 17.7355C18.5588 14.268 16.3211 12.082 15.5245 11.4465Z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgHeco);\nexport default __webpack_public_path__ + \"static/media/heco.be3f7c8c.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _g2, _path, _g3, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgEthereum(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 26,\n viewBox: \"0 0 16 26\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n opacity: 0.7\n }, /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.6,\n d: \"M7.99957 9.24854L0.308594 12.739L7.99957 17.2733L15.6875 12.739L7.99957 9.24854Z\",\n fill: \"white\"\n }))), _g2 || (_g2 = /*#__PURE__*/React.createElement(\"g\", {\n opacity: 0.55\n }, /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.81,\n d: \"M0.308594 12.7341L7.99958 17.2684V0L0.308594 12.7341Z\",\n fill: \"white\"\n }))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.8,\n d: \"M8 0V17.2684L15.688 12.7341L8 0Z\",\n fill: \"white\"\n })), _g3 || (_g3 = /*#__PURE__*/React.createElement(\"g\", {\n opacity: 0.55\n }, /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.81,\n d: \"M0.308594 14.189L7.99958 25.0013V18.7233L0.308594 14.189Z\",\n fill: \"white\"\n }))), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.8,\n d: \"M8 18.7233V25.0013L15.694 14.189L8 18.7233Z\",\n fill: \"white\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEthereum);\nexport default __webpack_public_path__ + \"static/media/ethereum.5b44bc85.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgAvalanche(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 30,\n height: 30,\n viewBox: \"0 0 30 30\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 15,\n cy: 15,\n r: 15,\n fill: \"#E84142\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.7322 15.8177C19.1478 15.0587 19.8185 15.0587 20.2342 15.8177L22.8226 20.6217C23.2383 21.3808 22.8982 22 22.0669 22H16.8522C16.0304 22 15.6903 21.3808 16.0965 20.6217L18.7322 15.8177ZM13.7254 6.56929C14.141 5.81024 14.8023 5.81024 15.218 6.56929L15.7942 7.66792L17.1545 10.1948C17.4852 10.9139 17.4852 11.7628 17.1545 12.4819L12.5918 20.8414C12.1761 21.5206 11.4865 21.9501 10.7213 22H6.93314C6.10183 22 5.76174 21.3908 6.1774 20.6217L13.7254 6.56929Z\",\n fill: \"white\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgAvalanche);\nexport default __webpack_public_path__ + \"static/media/avalanche.494d9691.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13, _path14, _path15, _path16, _path17, _path18, _path19, _path20, _path21, _path22, _path23;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgIotex(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 32,\n height: 32,\n viewBox: \"0 0 32 32\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.519 5V10.457L21.257 7.732L16.519 5Z\",\n fill: \"white\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.9,\n d: \"M21.257 7.73199V13.189L25.994 10.457L21.257 7.73199Z\",\n fill: \"white\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.8,\n d: \"M16.519 10.457V15.914L21.257 13.189L16.519 10.457ZM21.257 13.19V18.646L25.994 15.914L21.257 13.19Z\",\n fill: \"white\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.8,\n d: \"M16.519 15.914V21.371L21.257 18.646L16.519 15.914Z\",\n fill: \"white\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21.257 18.646V24.103L25.994 21.371L21.257 18.646Z\",\n fill: \"white\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.4,\n d: \"M4.273 10.273V15.73L9.011 12.998L4.273 10.273Z\",\n fill: \"white\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.2,\n d: \"M10.25 12.302V17.759L14.98 15.034L10.25 12.302Z\",\n fill: \"white\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.3,\n d: \"M6.738 15.753V21.21L11.475 18.478L6.738 15.753Z\",\n fill: \"white\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.9,\n d: \"M9.86 19.871V25.328L14.59 22.596L9.86 19.871Z\",\n fill: \"white\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.7,\n d: \"M16.48 22.22V27.678L21.21 24.945L16.48 22.22Z\",\n fill: \"white\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.9,\n d: \"M11.039 9.60699V15.065L15.769 12.34L11.039 9.60699Z\",\n fill: \"white\"\n })), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.8,\n d: \"M16.519 5V10.457L11.781 7.732L16.519 5Z\",\n fill: \"white\"\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.6,\n d: \"M11.039 7.32001V12.776L6.3 10.044L11.039 7.32001Z\",\n fill: \"white\"\n })), _path14 || (_path14 = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.6,\n d: \"M15.777 10.02V15.478L11.039 12.745L15.777 10.02Z\",\n fill: \"white\"\n })), _path15 || (_path15 = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.95,\n d: \"M10.228 12.302V17.759L5.49 15.034L10.228 12.302Z\",\n fill: \"white\"\n })), _path16 || (_path16 = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.6,\n d: \"M16.519 15.914V21.371L11.789 18.646L16.519 15.914Z\",\n fill: \"white\"\n })), _path17 || (_path17 = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.55,\n d: \"M6.738 17.185V22.642L2 19.909L6.738 17.185Z\",\n fill: \"white\"\n })), _path18 || (_path18 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M25.994 10.457V15.914L21.257 13.189L25.994 10.457Z\",\n fill: \"white\"\n })), _path19 || (_path19 = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.95,\n d: \"M21.257 13.19V18.646L16.519 15.914L21.257 13.19Z\",\n fill: \"white\"\n })), _path20 || (_path20 = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.9,\n d: \"M25.994 15.914V21.371L21.257 18.646L25.994 15.914Z\",\n fill: \"white\"\n })), _path21 || (_path21 = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.7,\n d: \"M21.257 18.646V24.103L16.519 21.371L21.257 18.646Z\",\n fill: \"white\"\n })), _path22 || (_path22 = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.4,\n d: \"M15.47 20.92V26.377L10.733 23.652L15.47 20.92Z\",\n fill: \"white\"\n })), _path23 || (_path23 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21.257 7.73199V13.189L16.519 10.457L21.257 7.73199Z\",\n fill: \"white\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIotex);\nexport default __webpack_public_path__ + \"static/media/iotex.a95ce3de.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _circle2, _path, _path2, _defs;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgSolana(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 30,\n height: 30,\n viewBox: \"0 0 30 30\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 15,\n cy: 15,\n r: 15,\n fill: \"black\"\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 15,\n cy: 15,\n r: 15,\n fill: \"url(#paint0_linear_1925:249)\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8.91982 19.2C8.97415 19.1385 9.0398 19.089 9.11282 19.0547C9.18585 19.0203 9.26475 19.0017 9.34482 19H22.6981C22.7546 19.0008 22.8096 19.0187 22.8566 19.0515C22.9037 19.0843 22.9406 19.1306 22.9631 19.1848C22.9856 19.239 22.9926 19.2989 22.9832 19.3572C22.9739 19.4154 22.9488 19.4697 22.9107 19.5133L20.0802 22.8C20.0258 22.8615 19.9602 22.911 19.8872 22.9453C19.8141 22.9797 19.7352 22.9983 19.6552 23H6.29337C6.23687 22.9992 6.1818 22.9813 6.13479 22.9485C6.08778 22.9157 6.05083 22.8694 6.02838 22.8152C6.00594 22.761 5.99895 22.7011 6.00826 22.6428C6.01757 22.5846 6.04278 22.5303 6.08087 22.4867L8.91982 19.2ZM22.9234 16.4755C22.9615 16.5192 22.9867 16.5734 22.9959 16.6317C23.0053 16.69 22.9983 16.7499 22.9759 16.8041C22.9534 16.8583 22.9164 16.9046 22.8694 16.9374C22.8224 16.9702 22.7674 16.9881 22.7108 16.9889L9.35332 17C9.27327 16.9983 9.19434 16.9797 9.12132 16.9453C9.04829 16.911 8.98265 16.8615 8.92833 16.8L6.07662 13.5245C6.03854 13.4808 6.01332 13.4266 6.00401 13.3683C5.9947 13.31 6.00169 13.2502 6.02413 13.1959C6.04658 13.1417 6.08353 13.0954 6.13054 13.0626C6.17755 13.0298 6.23262 13.012 6.28912 13.0111L19.6467 13C19.7267 13.0017 19.8056 13.0203 19.8787 13.0547C19.9517 13.089 20.0173 13.1385 20.0717 13.2L22.9234 16.4755ZM8.91982 7.2C8.97415 7.13847 9.0398 7.08904 9.11282 7.05467C9.18585 7.02031 9.26475 7.00171 9.34482 7L22.7067 7.01111C22.7631 7.01194 22.8182 7.02983 22.8653 7.06261C22.9123 7.0954 22.9492 7.14169 22.9716 7.19592C22.994 7.25015 23.001 7.31 22.9918 7.36828C22.9824 7.42657 22.9572 7.48079 22.9191 7.52445L20.0802 10.8C20.0258 10.8615 19.9602 10.911 19.8872 10.9453C19.8141 10.9797 19.7352 10.9983 19.6552 11H6.29337C6.23687 10.9992 6.1818 10.9813 6.13479 10.9485C6.08778 10.9157 6.05083 10.8694 6.02838 10.8152C6.00594 10.761 5.99895 10.7011 6.00826 10.6428C6.01757 10.5846 6.04278 10.5303 6.08087 10.4867L8.91982 7.2Z\",\n fill: \"url(#paint1_linear_1925:249)\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8.91982 19.2C8.97415 19.1385 9.0398 19.089 9.11282 19.0547C9.18585 19.0203 9.26475 19.0017 9.34482 19H22.6981C22.7546 19.0008 22.8096 19.0187 22.8566 19.0515C22.9037 19.0843 22.9406 19.1306 22.9631 19.1848C22.9856 19.239 22.9926 19.2989 22.9832 19.3572C22.9739 19.4154 22.9488 19.4697 22.9107 19.5133L20.0802 22.8C20.0258 22.8615 19.9602 22.911 19.8872 22.9453C19.8141 22.9797 19.7352 22.9983 19.6552 23H6.29337C6.23687 22.9992 6.1818 22.9813 6.13479 22.9485C6.08778 22.9157 6.05083 22.8694 6.02838 22.8152C6.00594 22.761 5.99895 22.7011 6.00826 22.6428C6.01757 22.5846 6.04278 22.5303 6.08087 22.4867L8.91982 19.2ZM22.9234 16.4755C22.9615 16.5192 22.9867 16.5734 22.9959 16.6317C23.0053 16.69 22.9983 16.7499 22.9759 16.8041C22.9534 16.8583 22.9164 16.9046 22.8694 16.9374C22.8224 16.9702 22.7674 16.9881 22.7108 16.9889L9.35332 17C9.27327 16.9983 9.19434 16.9797 9.12132 16.9453C9.04829 16.911 8.98265 16.8615 8.92833 16.8L6.07662 13.5245C6.03854 13.4808 6.01332 13.4266 6.00401 13.3683C5.9947 13.31 6.00169 13.2502 6.02413 13.1959C6.04658 13.1417 6.08353 13.0954 6.13054 13.0626C6.17755 13.0298 6.23262 13.012 6.28912 13.0111L19.6467 13C19.7267 13.0017 19.8056 13.0203 19.8787 13.0547C19.9517 13.089 20.0173 13.1385 20.0717 13.2L22.9234 16.4755ZM8.91982 7.2C8.97415 7.13847 9.0398 7.08904 9.11282 7.05467C9.18585 7.02031 9.26475 7.00171 9.34482 7L22.7067 7.01111C22.7631 7.01194 22.8182 7.02983 22.8653 7.06261C22.9123 7.0954 22.9492 7.14169 22.9716 7.19592C22.994 7.25015 23.001 7.31 22.9918 7.36828C22.9824 7.42657 22.9572 7.48079 22.9191 7.52445L20.0802 10.8C20.0258 10.8615 19.9602 10.911 19.8872 10.9453C19.8141 10.9797 19.7352 10.9983 19.6552 11H6.29337C6.23687 10.9992 6.1818 10.9813 6.13479 10.9485C6.08778 10.9157 6.05083 10.8694 6.02838 10.8152C6.00594 10.761 5.99895 10.7011 6.00826 10.6428C6.01757 10.5846 6.04278 10.5303 6.08087 10.4867L8.91982 7.2Z\",\n fill: \"white\"\n })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint0_linear_1925:249\",\n x1: 0.911449,\n y1: 30.6542,\n x2: 32.0468,\n y2: 2.63281,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#9945FF\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.14,\n stopColor: \"#8A53F4\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.42,\n stopColor: \"#6377D6\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.79,\n stopColor: \"#24B0A7\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.99,\n stopColor: \"#00D18C\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#00D18C\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint1_linear_1925:249\",\n x1: 6.51649,\n y1: 23.3489,\n x2: 23.1976,\n y2: 7.39785,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#9945FF\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.14,\n stopColor: \"#8A53F4\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.42,\n stopColor: \"#6377D6\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.79,\n stopColor: \"#24B0A7\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.99,\n stopColor: \"#00D18C\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#00D18C\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgSolana);\nexport default __webpack_public_path__ + \"static/media/solana.90108407.svg\";\nexport { ForwardRef as ReactComponent };","export default __webpack_public_path__ + \"static/media/logo-dark.4c85a132.svg\";","import { RefObject, useEffect, useRef } from 'react'\n\nexport function useOnClickOutside(\n node: RefObject,\n handler: undefined | (() => void)\n) {\n const handlerRef = useRef void)>(handler)\n useEffect(() => {\n handlerRef.current = handler\n }, [handler])\n\n useEffect(() => {\n const handleClickOutside = (e: MouseEvent) => {\n if (node.current?.contains(e.target as Node) ?? false) {\n return\n }\n if (handlerRef.current) handlerRef.current()\n }\n\n document.addEventListener('mousedown', handleClickOutside)\n\n return () => {\n document.removeEventListener('mousedown', handleClickOutside)\n }\n }, [node])\n}\n","import { ChainId } from '@wowswap-io/wowswap-sdk'\n\ntype NetworkName = keyof typeof ChainId | 'SOLANA'\n\nexport const networkRedirectConfig: Record = {\n MAINNET: process.env.REACT_APP_MAIN_URL, // Binance Smart Chain\n MATIC: process.env.REACT_APP_MAIN_URL,\n ETHEREUM: process.env.REACT_APP_ETHEREUM_URL,\n HECO: process.env.REACT_APP_MAIN_URL,\n AVALANCE: process.env.REACT_APP_MAIN_URL,\n IOTEX: process.env.REACT_APP_MAIN_URL,\n SOLANA: process.env.REACT_APP_SOLANA_URL,\n ROPSTEN: undefined,\n BSCTESTNET: undefined,\n LOCALNET: undefined,\n FUJI: undefined,\n ANDROMEDA: undefined,\n STARDUST: undefined\n}\n\nexport const redirectByNetworkIfNeeded = (networkName: NetworkName) => {\n const currentUrl = window.location.origin\n // Don't redirect in pr preview stagings\n if (!Object.values(networkRedirectConfig).includes(currentUrl)) return\n\n const redirectUrl = networkRedirectConfig[networkName]\n if (redirectUrl && currentUrl !== redirectUrl) {\n window.location.replace(redirectUrl)\n }\n}\n","import React from 'react'\nimport { NavLink } from 'react-router-dom'\nimport { Text } from 'rebass'\nimport styled, { css } from 'styled-components'\n\nimport { ReactComponent as CloseIcon } from '../../assets/images/close.svg'\nimport { ReactComponent as ExpandIcon } from '../../assets/images/dropdown.svg'\nimport { RowFixed } from '../Row'\n\nexport const HeaderFrame = styled.div`\n position: relative;\n top: 0;\n display: flex;\n align-items: center;\n width: 100%;\n height: 70px;\n padding: 0 20px;\n border-bottom: 4px solid ${({ theme }) => theme.colors.black};\n background: ${({ theme }) => theme.colors.bg0};\n font-family: ${({ theme }) => theme.typography.fontFamily.primary};\n z-index: 6;\n\n ${({ theme }) => theme.mediaWidth.upToMedium`\nposition: fixed;\nz-index: 5;\n\nwidth: 100%;\nheight: 50px;\npadding: 0 10px;\nborder-bottom: 2px solid ${({ theme }) => theme.colors.black};\n`};\n`\n\nexport const HeaderElementWrap = styled.div`\n display: flex;\n align-items: center;\n`\nexport const MobileHeaderElementWrap = styled.div`\n display: none;\n align-items: center;\n justify-content: center;\n width: 22px;\n height: 22px;\n margin-left: auto;\n ${({ theme }) => theme.mediaWidth.upToLarge`\ndisplay: flex;\n`};\n`\n\nexport const Title = styled.a`\n display: flex;\n align-items: center;\n pointer-events: auto;\n\n :hover {\n cursor: pointer;\n }\n`\n\nexport const AccountElement = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n background-color: white;\n color: black;\n border-radius: 10px;\n white-space: nowrap;\n\n ${({ theme }) =>\n theme.mode === 'dark' &&\n css`\n background-color: black;\n color: white;\n `}\n`\n\nexport const NetworkWrapper = styled.div`\n position: relative;\n margin-right: 18px;\n\n ${({ theme }) => theme.mediaWidth.upToLarge` \nheight: 38px;\nmargin-right: 0;\n`};\n`\n\nexport const NetworkContainer = styled.div<{ active: boolean }>`\n box-shadow: ${({ active }) => (active ? '0px 4px 32px -4px rgba(0, 0, 0, 0.34)' : 'none')};\n border-radius: 10px;\n overflow: hidden;\n position: absolute;\n top: 0;\n left: 0;\n\n ${({ theme, active }) =>\n theme.mode === 'dark' &&\n css`\n ${active && `box-shadow: 0px 0px 100px rgb(243 186 47 / 50%);`}\n border-radius: 5px;\n `}\n`\n\nexport const NetworkCurrent = styled.div<{ bgColor: string }>`\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 145px;\n height: 48px;\n padding: 0 10px;\n background-color: ${({ bgColor }) => bgColor};\n color: ${({ theme }) => theme.colors.white};\n z-index: 1;\n position: relative;\n cursor: pointer;\n user-select: none;\n\n ${({ theme }) =>\n theme.mode === 'dark' &&\n css`\n height: 36px;\n `}\n\n ${({ theme }) => theme.mediaWidth.upToLarge`\n width: 66px;\n height: 38px;\n padding: 0 15px 0 10px;\n `};\n`\n\nexport const HiddenNetworkCurrent = styled(NetworkCurrent)`\n opacity: 0;\n pointer-events: none;\n touch-action: none;\n position: relative;\n z-index: 0;\n\n ${({ theme }) =>\n theme.mode === 'dark' &&\n css`\n height: 36px;\n `}\n`\n\nexport const NetworkCurrentLabel = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n font-family: ${({ theme }) => theme.typography.fontFamily.secondary};\n font-weight: 500;\n font-size: ${({ theme }) => (theme.mode === 'dark' ? '14px' : '16px')};\n line-height: 18px;\n text-align: center;\n`\n\nexport const NetworkCurrentLabelIcon = styled.div`\n flex: 0 0 30px;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 30px;\n height: 30px;\n\n & svg {\n width: 100%;\n height: 100%;\n fill: ${({ theme }) => theme.colors.white};\n }\n`\n\nexport const NetworkSelect = styled.div<{ active: boolean }>`\n display: ${({ active }) => (active ? 'flex' : 'none')};\n flex-direction: column;\n width: 100%;\n padding: 0;\n background: ${({ theme }) => theme.colors.bg1};\n overflow: hidden;\n\n ${({ theme, active }) =>\n theme.mode === 'dark' &&\n css`\n z-index: -1;\n margin-top: -36px;\n padding-top: 36px;\n border-radius: 5px;\n background: ${theme.colors.bg0};\n ${active && `box-shadow: 0px 0px 100px rgb(243 186 47 / 50%);`}\n `}\n\n ${({ theme, active }) => theme.mediaWidth.upToLarge`\nposition: fixed;\ntop: unset;\nbottom: 0;\nleft: 0;\nright: 0;\ndisplay: ${active ? 'flex' : 'none'};\npadding: 20px 10px;\nborder-top: 2px solid #000000;\nbackground-color: ${({ theme }) => theme.colors.bg0};\nz-index: 10;\n`};\n`\n\nexport const NetworkSelectHeader = styled.div`\n display: none;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 15px;\n padding: 0 10px;\n\n ${({ theme }) => theme.mediaWidth.upToLarge` \ndisplay: flex;\n`};\n`\n\nexport const NetworkSelectTitle = styled.div`\n font-family: ${({ theme }) => theme.typography.fontFamily.secondary};\n font-weight: 700;\n font-size: 18px;\n line-height: 22px;\n`\n\nexport const Heco = styled.div`\n width: 140px;\n height: 48px;\n background-image: url(/images/Heco.png);\n background-position: center;\n background-repeat: no-repeat;\n`\n\nexport const NetworkCard = styled.div`\n display: flex;\n align-items: center;\n height: 48px;\n padding: 0 15px;\n font-family: ${({ theme }) => theme.typography.fontFamily.secondary};\n font-weight: 500;\n font-size: 16px;\n line-height: 18px;\n cursor: pointer;\n overflow: hidden;\n transition: 0.15s;\n\n :hover {\n background: #eee;\n transition: 0.15s;\n }\n\n ${({ theme }) =>\n theme.mode === 'dark' &&\n css`\n font-size: 14px;\n\n :hover {\n background: #333;\n }\n `}\n\n ${({ theme }) => theme.mediaWidth.upToLarge`\n justify-content: flex-start;\n height: 50px;\n padding: 0 10px;\n background: #ffffff;\n border-radius: 10px;\n\n &:not(:first-of-type) {\n margin-top: 5px;\n }\n\n ${theme.mode === 'dark' &&\n css`\n background: #333;\n\n :hover {\n background: #5b5b5b;\n }\n `}\n `};\n`\n\nexport const NetworkCardIcon = styled.div<{ color: string }>`\n flex: 0 0 30px;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 30px;\n height: 30px;\n margin-right: 15px;\n border-radius: 50%;\n background: ${({ color }) => color};\n fill: #ffffff;\n\n & svg {\n width: 100%;\n height: 100%;\n }\n`\n\nexport const NetworkCardName = styled.div`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`\n\nexport const Icon = styled.div`\n display: block;\n\n & > img {\n display: block;\n width: 105px;\n }\n\n ${({ theme }) => theme.mediaWidth.upToLarge`\ndisplay: none;\n`};\n`\n\nexport const IconMobile = styled.div`\n display: none;\n\n ${({ theme }) => theme.mediaWidth.upToLarge`\ndisplay: block;\n\n & > img {\n width: 35px;\n height: 35px;\n display: block;\n }\n`};\n`\n\nexport const HeaderControls = styled.div`\n flex-grow: 0;\n flex-shrink: 0;\n display: flex;\n flex-direction: row;\n align-items: center;\n margin-left: auto;\n\n ${({ theme }) => theme.mediaWidth.upToLarge`\nposition: fixed;\nleft: 0;\nright: 0;\nbottom: 0;\n\njustify-content: space-between;\nwidth: 100%;\nheight: 64px;\npadding: 0 10px;\n\nbackground: ${({ theme }) => theme.colors.bg0};\nborder-top: 2px solid ${({ theme }) => theme.colors.black}\n\n & button {\n height: 38px;\n }\n`};\n`\n\nexport const BalanceText = styled(Text)`\n color: '#000000';\n background-color: '#ffffff';\n padding: 0 54px 0 15px;\n font-family: ${({ theme }) => theme.typography.fontFamily.secondary};\n font-weight: 500;\n font-size: ${({ theme }) => (theme.mode === 'dark' ? '14px' : '16px')};\n line-height: 18px;\n\n ${({ theme }) => theme.mediaWidth.upToLarge`\npadding: 0 15px;\nfont-size: 15px;\n`};\n`\n\nexport const HeaderRow = styled(RowFixed)`\n ${({ theme }) => theme.mediaWidth.upToLarge`\nwidth: 100%;\n`};\n`\n\nexport const ExpandBtn = styled(({ active, ...rest }) => )`\n display: none;\n width: 12px;\n height: 12px;\n stroke: ${({ theme }) => theme.colors.white};\n stroke-width: 2;\n transition: all 150ms;\n ${({ active }) => (active ? `transform: rotate(180deg)` : `transform: rotate(0deg)`)};\n ${({ theme }) => theme.mediaWidth.upToLarge`\n display: block;\n `};\n`\n\nexport const CloseBtn = styled(CloseIcon)`\n width: 17px;\n height: 17px;\n fill: black;\n`\n\nexport const StyledNavLinkFactory = (activeClassName: string) => styled(NavLink)`\n font-size: 15px;\n line-height: 21px;\n color: ${({ theme }) => theme.colors.text1};\n text-decoration: none;\n transition: color 0.4s ease;\n &:hover {\n color: ${({ theme }) => theme.colors.text2};\n }\n &.${activeClassName} {\n color: ${({ theme }) => theme.colors.text3};\n pointer-events: none;\n user-select: none;\n transition: none;\n }\n`\n","import { ChainId } from '@wowswap-io/wowswap-sdk'\nimport { GOVERNANCE_ADDRESS, REFERRAL_PROGRAM } from '../constants'\nimport { isDesktop } from 'react-device-detect'\n\nexport function useRouterGuards(chainId?: ChainId | null, account?: string | null) {\n return {\n isCanOpenPortfolio: chainId && account,\n isCanOpenGov: chainId && account && Boolean(GOVERNANCE_ADDRESS[chainId]),\n isCanOpenReferral: chainId && account && Boolean(REFERRAL_PROGRAM[chainId]),\n isCanPro: isDesktop && window.innerWidth >= 990\n }\n}\n","var _rect, _rect2, _rect3;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgMenu(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 22,\n height: 17,\n viewBox: \"0 0 22 17\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 22,\n height: 2.68421,\n fill: \"black\"\n })), _rect2 || (_rect2 = /*#__PURE__*/React.createElement(\"rect\", {\n y: 7.15625,\n width: 22,\n height: 2.68421,\n fill: \"black\"\n })), _rect3 || (_rect3 = /*#__PURE__*/React.createElement(\"rect\", {\n y: 14.3157,\n width: 16.5,\n height: 2.68421,\n fill: \"black\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgMenu);\nexport default __webpack_public_path__ + \"static/media/menu.6e17f7e9.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4, _path5;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgLogoMobile(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 42,\n height: 42,\n viewBox: \"0 0 42 42\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2.48253 13.1506C1.48962 15.5972 0.993164 18.2477 0.993164 21.0001C0.993164 23.7525 1.39033 26.403 2.48253 28.8496C3.47543 31.2962 4.8655 33.437 6.65274 35.17C8.34068 36.903 10.5251 38.3302 12.9081 39.3496C15.3903 40.369 18.0712 40.8787 20.9506 40.8787C23.83 40.8787 26.5109 40.369 28.9932 39.3496C31.4754 38.3302 33.5605 36.903 35.3478 35.17C37.135 33.437 38.5251 31.2962 39.518 28.8496C40.5109 26.403 41.0073 23.7525 41.0073 21.0001C41.0073 18.2477 40.6102 15.5972 39.518 13.1506C38.5251 10.704 37.135 8.56322 35.3478 6.83021C33.5605 5.0972 31.3761 3.67002 28.9932 2.6506C26.6102 1.52924 23.83 1.01953 20.9506 1.01953C18.0712 1.01953 15.3903 1.52924 12.9081 2.54866C10.4258 3.56807 8.43997 4.99526 6.65274 6.72827C4.8655 8.56322 3.47543 10.704 2.48253 13.1506Z\",\n fill: \"#F3BA2F\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20.9504 42C17.773 42 14.9929 41.4903 12.5106 40.3689C9.92908 39.2476 7.64539 37.7184 5.95745 35.8835C4.07092 34.0485 2.68085 31.9078 1.58865 29.2573C0.595743 26.7087 0 24.0583 0 21C0 17.9417 0.496452 15.2913 1.58865 12.7427C2.68085 10.0922 4.17021 7.84951 5.95745 6.01456C7.94326 4.07767 10.0284 2.65049 12.5106 1.63107C15.0922 0.509709 17.8723 0 20.9504 0C24.1277 0 26.9078 0.509709 29.3901 1.63107C31.9716 2.75243 34.2553 4.17961 36.0426 6.01456C37.9291 7.84951 39.3191 9.99029 40.4113 12.7427C41.4042 15.2913 42 17.9417 42 21C42 24.0583 41.5035 26.7087 40.4113 29.2573C39.3191 31.9078 37.8298 34.1505 36.0426 35.9854C34.156 37.8204 31.8723 39.3495 29.3901 40.3689C26.9078 41.4903 24.1277 42 20.9504 42ZM20.9504 2.03883C18.0709 2.03883 15.5887 2.54854 13.305 3.46602C11.0213 4.38349 9.13475 5.70874 7.34752 7.44175C5.65958 9.07281 4.3688 11.0097 3.37589 13.4563C2.48227 15.699 1.98582 18.1456 1.98582 20.8981C1.98582 23.6505 2.48227 26.0971 3.37589 28.3398C4.3688 30.7864 5.65958 32.7233 7.34752 34.3544C8.93617 35.9854 10.922 37.3107 13.305 38.3301C15.5887 39.3495 18.0709 39.7573 20.9504 39.7573C23.8298 39.7573 26.3121 39.2476 28.5957 38.3301C30.9787 37.3107 32.9645 35.9854 34.6525 34.3544C36.3404 32.7233 37.6312 30.7864 38.6241 28.3398C39.5177 26.0971 40.0142 23.6505 40.0142 20.8981C40.0142 18.1456 39.5177 15.699 38.6241 13.4563C37.6312 11.0097 36.3404 9.07281 34.6525 7.44175C32.9645 5.81068 30.8794 4.38349 28.5957 3.46602C26.4113 2.54854 23.9291 2.03883 20.9504 2.03883Z\",\n fill: \"black\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.5891 17.4318C17.0784 17.4318 18.2699 15.8008 18.2699 13.8639C18.2699 11.927 17.0784 10.2959 15.5891 10.2959C14.0997 10.2959 12.9082 11.927 12.9082 13.8639C12.9082 15.8008 14.0997 17.4318 15.5891 17.4318Z\",\n fill: \"black\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M26.2126 17.4318C27.7019 17.4318 28.8934 15.8008 28.8934 13.8639C28.8934 11.927 27.7019 10.2959 26.2126 10.2959C24.7232 10.2959 23.5317 11.927 23.5317 13.8639C23.5317 15.8008 24.7232 17.4318 26.2126 17.4318Z\",\n fill: \"black\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21.2479 35.7818C25.3188 35.7818 28.5954 32.2139 28.5954 27.8304C28.5954 23.4469 25.3188 19.8789 21.2479 19.8789C17.177 19.8789 13.9004 23.4469 13.9004 27.8304C13.9004 32.2139 17.177 35.7818 21.2479 35.7818Z\",\n fill: \"black\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLogoMobile);\nexport default __webpack_public_path__ + \"static/media/logo--mobile.4abe0e3e.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useRef } from 'react'\nimport styled from 'styled-components'\n\nimport { StyledNavLinkFactory } from './styleds'\nimport { useActiveWeb3React } from '../../hooks'\nimport { useOnClickOutside } from '../../hooks/useOnClickOutside'\nimport { useRouterGuards } from '../../hooks/useRouterGuards'\nimport useToggle from '../../hooks/useToggle'\nimport { ShareSocial } from '../ShareSocial'\nimport { WOWSWAP_ROUTE } from 'constants/routes/routes'\nimport { ReactComponent as MenuIcon } from '../../assets/svg/menu.svg'\nimport { ReactComponent as LogowMobile } from '../../assets/svg/logo--mobile.svg'\nimport { ReactComponent as CloseIcon } from '../../assets/images/close.svg'\n\nconst activeClassName = 'active-nav-link'\n\nconst StyledMenuIcon = styled(MenuIcon)`\n path {\n stroke: ${({ theme }) => theme.colors.text1};\n }\n`\n\nconst StyledSideMenuInsideIcon = styled(LogowMobile)`\n width: 40px;\n height: 40px;\n margin-bottom: 30px;\n`\n\nconst Nav = styled.div`\n flex: 1 1;\n display: flex;\n flex-direction: column;\n padding: 30px;\n`\n\nconst CloseBtn = styled(CloseIcon)`\n position: absolute;\n right: 10px;\n top: 18px;\n width: 17px;\n height: 17px;\n fill: black;\n`\n\nconst StyledSideMenuButton = styled.button`\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n border: none;\n background-color: transparent;\n\n :hover,\n :focus {\n cursor: pointer;\n outline: none;\n }\n`\nconst StyledSideMenu = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n position: relative;\n border: none;\n text-align: left;\n`\nconst SideMenuFlyout = styled.section<{ open: boolean }>`\n position: fixed;\n top: 0;\n bottom: 0;\n right: ${({ open }) => (open ? '0' : '-244px')};\n z-index: 100;\n\n display: flex;\n flex-direction: column;\n width: 244px;\n\n background-color: ${({ theme }) => theme.colors.bg0};\n border-left: 2px solid ${({ theme }) => theme.colors.black};\n transition: right 200ms;\n`\nconst SideMenuItem = styled(StyledNavLinkFactory(activeClassName))`\n &:not(:first-of-type) {\n margin-top: 20px;\n }\n`\nconst DesktopSideMenuItem = styled(SideMenuItem)`\n margin-top: 0;\n\n display: none;\n ${({ theme }) => theme.mediaWidth.upToLarge`\n display: flex;\n `};\n ${({ theme }) => theme.mediaWidth.upToMedium`\n display: none;\n `};\n`\n\nexport const MobileSideMenuItem = styled(SideMenuItem)`\n margin-top: 0;\n\n display: none;\n ${({ theme }) => theme.mediaWidth.upToMedium`\n display: flex;\n `};\n`\n\nexport default function SideMenu() {\n const node = useRef(null)\n const [open, toggle] = useToggle(false)\n\n useOnClickOutside(node, open ? toggle : undefined)\n\n const { chainId, account } = useActiveWeb3React()\n const { isCanOpenGov, isCanOpenReferral } = useRouterGuards(chainId, account)\n\n return (\n \n \n \n \n \n \n \n \n \n \n )\n}\n","import { useCallback, useState } from 'react'\n\nexport default function useToggle(initialState = false): [boolean, () => void] {\n const [state, setState] = useState(initialState)\n const toggle = useCallback(() => setState(state => !state), [])\n return [state, toggle]\n}\n","import { useEffect, useRef } from 'react'\n\n// modified from https://usehooks.com/usePrevious/\nexport default function usePrevious(value: T) {\n // The ref object is a generic container whose current property is mutable ...\n // ... and can hold any value, similar to an instance property on a class\n const ref = useRef()\n\n // Store current value in ref\n useEffect(() => {\n ref.current = value\n }, [value]) // Only re-run if value changes\n\n // Return previous value (happens before update in useEffect above)\n return ref.current\n}\n","import { useMemo } from 'react'\n\nimport { SUPPORTED_WALLETS, SUPPORTED_WALLET_NAMES } from '../constants'\n\nexport function useIsCoin98Wallet(): boolean {\n const { ethereum } = window\n\n const isCoin98Enabled = useMemo(() => {\n return ethereum?.isCoin98 ?? false\n }, [ethereum])\n\n return isCoin98Enabled\n}\n\nexport function useIsMathWallet(): boolean {\n const { ethereum } = window\n\n const isMathWalletEnabled = useMemo(() => {\n return ethereum?.isMathWallet ?? false\n }, [ethereum])\n\n return isMathWalletEnabled\n}\n\nexport function useIsMetaMaskWallet(): boolean {\n const { ethereum } = window\n const isCoin98Enabled = useIsCoin98Wallet()\n const isMathWalletEnabled = useIsMathWallet()\n\n const isMetaMaskEnabled = useMemo(() => {\n if (isCoin98Enabled || isMathWalletEnabled) {\n return false\n }\n\n return ethereum?.isMetaMask ?? false\n }, [ethereum, isCoin98Enabled, isMathWalletEnabled])\n\n return isMetaMaskEnabled\n}\n\nexport function useGetWalletName(): string {\n const isCoin98Enabled = useIsCoin98Wallet()\n const isMathWalletEnabled = useIsMathWallet()\n const isMetaMaskEnabled = useIsMetaMaskWallet()\n\n const walletName = useMemo(() => {\n let key = SUPPORTED_WALLET_NAMES.TRUST_WALLET\n\n if (isCoin98Enabled) {\n key = SUPPORTED_WALLET_NAMES.COIN98\n }\n\n if (isMathWalletEnabled) {\n key = SUPPORTED_WALLET_NAMES.MATH_WALLET\n }\n\n if (isMetaMaskEnabled) {\n key = SUPPORTED_WALLET_NAMES.METAMASK\n }\n\n return SUPPORTED_WALLETS[key].name\n }, [isMetaMaskEnabled, isCoin98Enabled, isMathWalletEnabled])\n\n return walletName\n}\n","import React from 'react'\nimport styled from 'styled-components'\nimport { /* #JUNK CheckCircle,*/ Triangle } from 'react-feather'\n\nimport { useActiveWeb3React } from '../../hooks'\nimport { getEtherscanLink } from '../../utils'\nimport { ExternalLink } from '../Shared'\nimport { useAllTransactions } from '../../state/transactions/hooks'\nimport { RowFixed } from '../Row'\nimport Loader from '../Loader'\nimport { IconCheck } from '../Icons'\n\nconst TransactionWrapper = styled.div``\n\nconst TransactionStatusText = styled.div`\n margin-right: 0.5rem;\n display: flex;\n align-items: center;\n :hover {\n text-decoration: underline;\n }\n`\n\nconst TransactionState = styled(ExternalLink)<{ pending: boolean; success?: boolean }>`\n display: flex;\n justify-content: space-between;\n align-items: center;\n text-decoration: none !important;\n border-radius: 0.5rem;\n padding: 0 0 0.25rem 0;\n font-weight: 500;\n font-size: 14px;\n line-height: 16px;\n text-align: left;\n color: ${({ theme }) => theme.colors.primary1};\n`\n\nconst IconWrapper = styled.div<{ pending: boolean; success?: boolean }>`\n color: ${({ pending, success, theme }) =>\n pending ? theme.colors.primary1 : success ? theme.colors.primary1 : theme.colors.primary4};\n`\n\nexport default function Transaction({ hash }: { hash: string }) {\n const { chainId } = useActiveWeb3React()\n const allTransactions = useAllTransactions()\n\n const tx = allTransactions?.[hash]\n const summary = tx?.summary\n const pending = !tx?.receipt\n const success = !pending && tx && (tx.receipt?.status === 1 || typeof tx.receipt?.status === 'undefined')\n\n if (!chainId) return null\n\n return (\n \n \n \n {summary ?? hash} ↗\n \n \n {pending ? : success ? : }\n \n \n \n )\n}\n","import React, { useEffect, useRef } from 'react'\n\nimport styled from 'styled-components'\n\nimport { useActiveWeb3React } from '../../hooks'\nimport Jazzicon from 'jazzicon'\n\nconst StyledIdenticonContainer = styled.div`\n height: 1rem;\n width: 1rem;\n border-radius: 1.125rem;\n background-color: ${({ theme }) => theme.colors.bg4};\n`\n\nexport default function Identicon() {\n const ref = useRef(null)\n\n const { account } = useActiveWeb3React()\n\n useEffect(() => {\n if (account && ref.current) {\n ref.current.innerHTML = ''\n ref.current.appendChild(Jazzicon(16, parseInt(account.slice(2, 10), 16)))\n }\n }, [account])\n\n return \n}\n","import React, { useCallback, useContext } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useDispatch } from 'react-redux'\nimport styled, { css, ThemeContext } from 'styled-components'\n\nimport { AppDispatch } from '../../state'\nimport { clearAllTransactions } from '../../state/transactions/actions'\nimport { shortenAddress } from '../../utils'\n\nimport { useActiveWeb3React } from '../../hooks'\nimport { useGetWalletName } from '../../hooks/useWalletDetector'\n\nimport { Title } from 'components/Title'\nimport { AutoRow } from '../Row'\nimport Copy from '../Copy/Copy'\nimport Transaction from './Transaction'\nimport { getEtherscanLink } from '../../utils'\nimport { connectorsByWallets } from '../../connectors'\nimport WalletConnectIcon from '../../assets/images/walletConnectIcon.svg'\nimport Identicon from '../Identicon'\nimport { ButtonSecondary } from '../Button'\nimport { ExternalLink as LinkIcon } from 'react-feather'\nimport { ExternalLink, TYPE } from '../Shared'\nimport { IconClose } from '../Icons'\nimport { TextBase, TextBaseXl } from '../Text'\nimport { connectorLocalStorageKey } from '../../constants'\n\nconst CloseIcon = styled.div`\n position: absolute;\n top: -26px;\n right: -22px;\n\n display: flex;\n\n ${({ theme }) =>\n theme.mode === 'dark' &&\n css`\n top: -17px;\n right: -15px;\n `};\n\n ${({ theme }) => theme.mediaWidth.upToSmall`\n\t\ttop: -4px;\n\t\tright: -4px;\n `};\n`\nconst UpperSection = styled.section`\n position: relative;\n margin-bottom: 10px;\n\n h5 {\n margin: 0;\n margin-bottom: 0.5rem;\n font-size: 1rem;\n font-weight: 600;\n }\n\n h5:last-child {\n margin-bottom: 0px;\n }\n\n h4 {\n margin-top: 0;\n font-weight: 700;\n }\n`\n\nconst InfoCard = styled.div`\n position: relative;\n`\n\nconst AccountGroupingRow = styled.div`\n ${({ theme }) => theme.flexRowNoWrap};\n margin-bottom: 13px;\n justify-content: space-between;\n align-items: center;\n\n font-weight: 600;\n color: ${({ theme }) => theme.colors.text1};\n\n div {\n ${({ theme }) => theme.flexRowNoWrap}\n align-items: center;\n }\n :nth-child(2) {\n margin-bottom: 18px;\n }\n :last-child {\n margin-bottom: 0;\n }\n\n ${({ theme }) => theme.mediaWidth.upToSmall`\n\t\tmargin-bottom: 17px;\n\t`};\n`\n\nconst AccountSection = styled.div`\n padding: 9px 9px 14px 15px;\n\n background-color: ${({ theme }) => theme.colors.bg1};\n border-radius: 10px;\n\n ${({ theme }) =>\n theme.mode === 'dark' &&\n css`\n margin-top: 10px;\n `};\n`\n\nconst YourAccount = styled.div`\n h5 {\n margin: 0 0 1rem 0;\n font-weight: 600;\n }\n\n h4 {\n margin: 0;\n font-weight: 700;\n }\n`\n\nconst LowerSection = styled.div`\n ${({ theme }) => theme.flexColumnNoWrap}\n flex-grow: 1;\n\n text-align: center;\n font-weight: 500;\n font-size: 20px;\n line-height: 120%;\n\n h5 {\n margin: 0;\n\n font-weight: 500;\n font-size: 20px;\n line-height: 120%;\n color: ${({ theme }) => theme.colors.text3};\n }\n`\n\nconst LowerSectionText = styled(TextBaseXl)`\n font-weight: bold;\n\n ${({ theme }) =>\n theme.mode === 'dark' &&\n css`\n font-weight: normal;\n font-size: 18px;\n `};\n`\n\nconst AccountControl = styled.div`\n display: flex;\n justify-content: space-between;\n min-width: 0;\n width: 100%;\n\n font-weight: bold;\n font-size: 22px;\n line-height: 100%;\n color: ${({ theme }) => theme.colors.text1};\n\n a:hover {\n text-decoration: underline;\n }\n\n p {\n min-width: 0;\n margin: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n ${({ theme }) =>\n theme.mode === 'dark' &&\n css`\n font-size: 18px;\n `};\n\n ${({ theme }) => theme.mediaWidth.upToSmall`\n\t\tfont-size: 20px;\n\t\tline-height: 100%;\n\t`};\n`\n\nconst AddressLink = styled(ExternalLink)<{ hasENS: boolean; isENS: boolean }>`\n display: flex;\n align-items: center;\n margin-left: 22px;\n\n font-weight: 500;\n font-size: 16px;\n line-height: 100%;\n color: ${({ theme }) => theme.colors.text2};\n\n transition: all 0.4s ease;\n :hover {\n color: ${({ theme }) => theme.colors.text3};\n text-decoration: none !important;\n }\n\n ${({ theme }) =>\n theme.mode === 'dark' &&\n css`\n font-size: 14px;\n `}\n\n ${({ theme }) => theme.mediaWidth.upToSmall`\n\t\tfont-size: 14px;\n\t\tline-height: 100%;\n\t`};\n`\n\nconst WalletAction = styled(ButtonSecondary)`\n width: fit-content;\n margin-left: 8px;\n padding: 5px 15px;\n height: 26px;\n\n font-family: ${({ theme }) => theme.typography.fontFamily.secondary};\n font-style: normal;\n font-weight: 500;\n font-size: 16px;\n line-height: 100%;\n color: ${({ theme }) => theme.colors.white};\n\n border: none;\n border-radius: 5px;\n background-color: ${({ theme }) => theme.colors.primary1};\n transition: all 0.2s ease;\n\n :hover {\n cursor: pointer;\n background-color: ${({ theme }) => theme.colors.primary4};\n transition: all 0.2s ease;\n }\n\n ${({ theme }) =>\n theme.mode === 'dark' &&\n css`\n font-size: 14px;\n `};\n\n ${({ theme }) => theme.mediaWidth.upToSmall`\n\t\theight: 23px;\n\t\tpadding: 5px 12px;\n\n\t\tfont-size: 14px;\n\t\tline-height: 100%;\n\t`};\n`\n\nconst IconWrapper = styled.div<{ size?: number }>`\n ${({ theme }) => theme.flexColumnNoWrap};\n align-items: center;\n justify-content: center;\n margin-right: 20px;\n flex: 0 0 28px;\n width: 28px;\n height: 28px;\n\n & > img,\n span {\n height: ${({ size }) => (size ? size + 'px' : '32px')};\n width: ${({ size }) => (size ? size + 'px' : '32px')};\n }\n ${({ theme }) => theme.mediaWidth.upToMedium`\n align-items: flex-end;\n `};\n & > div {\n width: 28px;\n height: 28px;\n justify-content: center;\n }\n`\n\nconst TransactionListWrapper = styled.div`\n ${({ theme }) => theme.flexColumnNoWrap};\n padding-right: 15px;\n max-height: 400px;\n overflow: auto;\n`\n\nconst LinkIconWraper = styled.div`\n & > svg {\n width: 23px;\n height: 23px;\n }\n\n ${({ theme }) => theme.mediaWidth.upToSmall`\n\t\t& > svg {\n\t\t\twidth: 16px;\n\t\t\theight: 16px;\n\t\t}\n\t`};\n`\n\nfunction renderTransactions(transactions: string[]) {\n return (\n \n {transactions.map((hash, i) => {\n return \n })}\n \n )\n}\n\ninterface AccountDetailsProps {\n toggleWalletModal: () => void\n pendingTransactions: string[]\n confirmedTransactions: string[]\n ENSName?: string\n openOptions: () => void\n}\n\nexport default function AccountDetails({\n toggleWalletModal,\n pendingTransactions,\n confirmedTransactions,\n ENSName,\n openOptions\n}: AccountDetailsProps) {\n const { chainId, account, connector } = useActiveWeb3React()\n const theme = useContext(ThemeContext)\n const dispatch = useDispatch()\n const walletName = useGetWalletName()\n const { t } = useTranslation()\n\n function formatConnectorName() {\n return Connected with {walletName}\n }\n\n function getStatusIcon() {\n if (connector === connectorsByWallets.INJECTED) {\n return (\n \n \n \n )\n } else if (connector === connectorsByWallets.WALLETCONNECT) {\n return (\n \n {'wallet\n \n )\n }\n return null\n }\n\n const clearAllTransactionsCallback = useCallback(() => {\n if (chainId) dispatch(clearAllTransactions({ chainId }))\n }, [dispatch, chainId])\n\n return (\n <>\n \n \n \n \n {t('Account')}\n \n \n \n \n {formatConnectorName()}\n
\n {connector !== connectorsByWallets.INJECTED &&\n connector !== connectorsByWallets.METAMASK_FAKE_HARDWARE && (\n {\n ;(connector as any).close()\n window.localStorage.removeItem(connectorLocalStorageKey)\n }}\n >\n {t('Disconnect')}\n \n )}\n {\n openOptions()\n }}\n >\n {t('Change')}\n \n
\n
\n \n \n {ENSName ? (\n <>\n
\n {getStatusIcon()}\n

{ENSName}

\n
\n \n ) : (\n <>\n
\n {getStatusIcon()}\n

{account && shortenAddress(account)}

\n
\n \n )}\n
\n
\n \n {ENSName ? (\n <>\n \n
\n {account && (\n \n Copy Address\n \n )}\n {chainId && account && (\n \n \n {t('View on explorer')}\n \n )}\n
\n
\n \n ) : (\n <>\n \n
\n {account && (\n \n Copy Address\n \n )}\n {chainId && account && (\n \n \n \n \n View on explorer\n \n )}\n
\n
\n \n )}\n
\n
\n
\n
\n
\n\n \n {!!pendingTransactions.length || !!confirmedTransactions.length ? (\n \n \n \n {t('Recent Transactions')}\n \n Clear all\n \n {renderTransactions(pendingTransactions)}\n {renderTransactions(confirmedTransactions)}\n \n ) : (\n \n {t('Your transactions will appear here')}...\n \n )}\n \n \n )\n}\n","import React from 'react'\n\nimport { useDynamicLoadImage } from 'hooks/useDynamicLoadImage'\n\ntype DynamicImageProps = {\n imageName: string\n alt: string\n}\n\nexport default function DynamicImage({ imageName, ...props }: DynamicImageProps) {\n const image = useDynamicLoadImage(imageName)\n\n return \n}\n","import { useEffect, useState } from 'react'\n\nexport function useDynamicLoadImage(imageName: string): string {\n const [image, setImage] = useState('')\n\n useEffect(() => {\n import(`../assets/images/${imageName}`).then(image => setImage(image.default))\n }, [imageName])\n\n return image\n}\n","import DynamicImage from 'components/DynamicImage'\nimport React from 'react'\nimport styled, { css } from 'styled-components'\nimport { ExternalLink } from '../Shared'\nimport { TextBaseXl } from '../Text'\n\nconst InfoCard = styled.button<{ active?: boolean; color?: string }>`\n background-color: ${({ theme, color }) => (color ? color : theme.colors.primary1)};\n padding: 3px 5px 3px 20px;\n outline: none;\n border: 2px solid transparent;\n border-radius: 10px;\n width: 100% !important;\n font-family: ${({ theme }) => theme.typography.fontFamily.secondary};\n\n ${({ theme }) =>\n theme.mode === 'dark' &&\n css`\n background-color: transparent;\n border-radius: 5px;\n border-width: 1px;\n border-color: ${theme.colors.secondary1};\n\n & * {\n transition: 0.2s;\n }\n\n &:hover {\n border-color: ${theme.colors.primary1};\n\n & * {\n transition: 0.2s;\n color: ${theme.colors.primary1};\n }\n }\n `}\n`\n\nconst OptionCard = styled(InfoCard as any)`\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n // padding: 1rem;\n\n transition: all 0.4s ease;\n\n &:hover {\n text-decoration: none;\n }\n`\n\nconst OptionCardLeft = styled.div`\n ${({ theme }) => theme.flexColumnNoWrap};\n justify-content: center;\n height: 100%;\n`\n\nconst OptionCardClickable = styled(OptionCard as any)<{ clickable?: boolean }>`\n &:hover {\n cursor: ${({ clickable }) => (clickable ? 'pointer' : '')};\n border-color: ${({ clickable, theme }) => (clickable ? theme.colors.primary1 : '')};\n }\n opacity: ${({ disabled }) => (disabled ? '0.5' : '1')};\n`\n\nconst GreenCircle = styled.div`\n ${({ theme }) => theme.flexRowNoWrap}\n justify-content: center;\n align-items: center;\n\n display: none;\n\n &:first-child {\n height: 8px;\n width: 8px;\n margin-right: 8px;\n background-color: ${({ theme }) => theme.colors.primary5};\n border-radius: 50%;\n }\n`\n\nconst CircleWrapper = styled.div`\n color: ${({ theme }) => theme.colors.primary5};\n display: flex;\n justify-content: center;\n align-items: center;\n`\n\n// #JUNK const HeaderText = styled.div`\n// ${({ theme }) => theme.flexRowNoWrap};\n// color: ${props =>\n// props.color === 'blue' ? ({ theme }) => theme.colors.primary1 : ({ theme }) => theme.colors.text1};\n// font-size: 1rem;\n// font-weight: 700;\n// `\n// const HeaderText = styled.div`\n// display: flex;\n\n// font-family: Abadi MT Std, sans-serif;\n// font-weight: normal;\n// font-size: 20px;\n// line-height: 100%;\n// `\n\nconst Header = styled(TextBaseXl)`\n ${({ theme }) =>\n theme.mode === 'dark' &&\n css`\n font-size: 18px;\n `}\n`\n\nconst SubHeader = styled.div`\n color: ${({ theme }) => theme.colors.text1};\n margin-top: 10px;\n font-size: 12px;\n`\n\nconst IconWrapper = styled.div<{ size?: number | null }>`\n ${({ theme }) => theme.flexColumnNoWrap};\n align-items: center;\n justify-content: center;\n padding: 5px 12px;\n background: ${({ theme }) => theme.colors.bg0};\n border-radius: 5px;\n\n & > img,\n span {\n height: ${({ size }) => (size ? size + 'px' : '40px')};\n width: ${({ size }) => (size ? size + 'px' : '40px')};\n }\n ${({ theme }) => theme.mediaWidth.upToSmall`\n align-items: flex-end;\n\n\t\t& > img,\n\t\tspan {\n\t\t\theight: 30px;\n\t\t\twidth: 30px;\n\t\t}\n `};\n`\n\nexport default function Option({\n link = null,\n clickable = true,\n size,\n onClick = null,\n color,\n header,\n subheader = null,\n icon,\n active = false,\n id\n}: {\n link?: string | null\n clickable?: boolean\n size?: number | null\n onClick?: null | (() => void)\n color: string\n header: React.ReactNode\n subheader: React.ReactNode | null\n icon: string\n active?: boolean\n id: string\n}) {\n const content = (\n \n \n
\n {active ? (\n \n \n
\n \n \n ) : (\n ''\n )}\n {header}\n
\n {subheader && {subheader}}\n
\n \n \n \n
\n )\n if (link) {\n return {content}\n }\n\n return content\n}\n","import { AbstractConnector } from '@web3-react/abstract-connector'\nimport React, { useContext } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport styled, { ThemeContext, css } from 'styled-components'\n\nimport { SUPPORTED_WALLETS, SUPPORTED_WALLET_NAMES } from '../../constants'\nimport { connectorsByWallets } from '../../connectors'\nimport { darken } from 'polished'\n\nimport { useIsMetaMaskWallet } from '../../hooks/useWalletDetector'\n\nimport Option from './Option'\nimport Loader from '../Loader'\n\nconst PendingSection = styled.div`\n ${({ theme }) => theme.flexColumnNoWrap};\n align-items: center;\n justify-content: center;\n width: 100%;\n & > * {\n width: 100%;\n }\n`\n\nconst StyledLoader = styled(Loader)`\n margin-right: 1rem;\n`\n\nconst LoadingMessage = styled.div<{ error?: boolean }>`\n ${({ theme }) => theme.flexRowNoWrap};\n align-items: center;\n justify-content: flex-start;\n border-radius: 12px;\n margin-bottom: 20px;\n color: ${({ theme, error }) => (error ? theme.colors.primary4 : 'inherit')};\n border: 2px solid ${({ theme, error }) => (error ? theme.colors.primary4 : theme.colors.text4)};\n\n & > * {\n padding: 1rem;\n }\n\n ${({ theme }) =>\n theme.mode === 'dark' &&\n css`\n border-radius: 5px;\n border-width: 1px;\n `}\n`\n\nconst ErrorGroup = styled.div`\n ${({ theme }) => theme.flexRowNoWrap};\n align-items: center;\n justify-content: flex-start;\n`\n\nconst ErrorButton = styled.div`\n border-radius: 8px;\n font-size: 12px;\n color: ${({ theme }) => theme.colors.text1};\n background-color: ${({ theme }) => theme.colors.bg4};\n margin-left: 1rem;\n padding: 0.5rem;\n font-weight: 600;\n user-select: none;\n\n &:hover {\n cursor: pointer;\n background-color: ${({ theme }) => darken(0.1, theme.colors.text4)};\n }\n`\n\nconst LoadingWrapper = styled.div`\n ${({ theme }) => theme.flexRowNoWrap};\n align-items: center;\n justify-content: center;\n`\n\nexport default function PendingView({\n connector,\n walletKey,\n error = false,\n setPendingError,\n tryActivation\n}: {\n connector?: AbstractConnector\n walletKey?: SUPPORTED_WALLET_NAMES\n error?: boolean\n setPendingError: (error: boolean) => void\n tryActivation: (walletKey: SUPPORTED_WALLET_NAMES, connector: AbstractConnector) => void\n}) {\n const isMetamask = useIsMetaMaskWallet()\n const theme = useContext(ThemeContext)\n const { t } = useTranslation()\n\n return (\n \n \n \n {error ? (\n \n
{t('Error connecting')}.
\n {\n setPendingError(false)\n connector && walletKey && tryActivation(walletKey, connector)\n }}\n >\n {t('Try Again')}\n \n
\n ) : (\n <>\n \n {t('Initializing...')}\n \n )}\n
\n
\n {Object.keys(SUPPORTED_WALLETS).map(key => {\n const option = SUPPORTED_WALLETS[key as SUPPORTED_WALLET_NAMES]\n const optionConnector = connectorsByWallets[key as SUPPORTED_WALLET_NAMES]\n\n if (walletKey === key && optionConnector === connector) {\n if (optionConnector === connectorsByWallets.INJECTED) {\n if (isMetamask && option.name !== 'MetaMask') {\n return null\n }\n if (!isMetamask && option.name === 'MetaMask') {\n return null\n }\n }\n return (\n \n )\n }\n return null\n })}\n
\n )\n}\n","import styled from 'styled-components'\n\nexport const UpperSection = styled.div`\n position: relative;\n\n h5 {\n margin: 0;\n margin-bottom: 0.5rem;\n font-size: 1rem;\n font-weight: 600;\n }\n\n h5:last-child {\n margin-bottom: 0px;\n }\n\n h4 {\n margin-top: 0;\n font-weight: 700;\n }\n`\n\nexport const UpperSectionClose = styled.div`\n position: absolute;\n top: -22px;\n right: -22px;\n\n ${({ theme }) => theme.mediaWidth.upToSmall`\n top: -5px;\n right: -3px;\n `};\n`\n\nexport const HeaderRow = styled.div`\n margin-bottom: 22px;\n\n ${({ theme }) => theme.mediaWidth.upToSmall`\n margin-bottom: 12px;\n `};\n`\n\nexport const HeaderRowJustify = styled(HeaderRow)`\n justify-content: ${({ theme }) => (theme.mode === 'metis' ? 'center' : 'space-between')};\n`\n\nexport const ContentWrapper = styled.div``\n","import React from 'react'\n\nimport { CloseIcon } from '../Shared'\nimport { ContentWrapper, HeaderRowJustify, UpperSection, UpperSectionClose } from './styleds'\n\ntype ErrorModalProps = {\n renderHeader: () => JSX.Element\n renderContent: () => JSX.Element\n onToggle: () => void\n}\n\nexport default function ErrorModalContent({ onToggle, renderHeader, renderContent }: ErrorModalProps) {\n return (\n \n \n \n \n {renderHeader()}\n {renderContent()}\n \n )\n}\n","import React, { useState, useEffect, useContext } from 'react'\nimport { Trans, useTranslation } from 'react-i18next'\nimport ReactGA from 'react-ga'\nimport styled, { ThemeContext, css } from 'styled-components'\nimport { isMobile } from 'react-device-detect'\nimport { UnsupportedChainIdError, useWeb3React } from '@web3-react/core'\nimport { WalletConnectConnector } from '@web3-react/walletconnect-connector'\nimport { AbstractConnector } from '@web3-react/abstract-connector'\nimport usePrevious from '../../hooks/usePrevious'\nimport { useWalletModalOpen, useWalletModalToggle } from '../../state/application/hooks'\nimport { connectorsByWallets } from '../../connectors'\nimport {\n SHOWN_WALLETS,\n connectorLocalStorageKey,\n SUPPORTED_INSTALL_WALLETS,\n SUPPORTED_WALLETS,\n SUPPORTED_WALLET_NAMES\n} from '../../constants'\n\nimport Modal from '../Modal'\nimport AccountDetails from '../AccountDetails'\nimport PendingView from './PendingView'\nimport Option from './Option'\nimport { ExternalLink, CloseIcon } from '../Shared'\n\nimport ErrorModalContent from 'components/ErrorModalContent'\nimport { ContentWrapper, HeaderRow, HeaderRowJustify, UpperSection } from 'components/ErrorModalContent/styleds'\nimport BalloonModal from 'components/BalloonModal'\n\nconst Wrapper = styled.div`\n ${({ theme }) => theme.flexColumnNoWrap}\n margin: 0;\n padding: 0;\n width: 100%;\n`\n\nconst Blurb = styled.div`\n ${({ theme }) => theme.flexRowNoWrap}\n align-items: center;\n justify-content: center;\n flex-wrap: wrap;\n margin-top: 18px;\n\n ${({ theme }) =>\n theme.mode === 'dark' &&\n css`\n margin-top: 20px;\n `}\n\n ${({ theme }) => theme.mediaWidth.upToSmall`\n margin: 2rem 0 1rem 0;\n font-size: 12px;\n `};\n`\n\nconst ExternalLinkOptionModal = styled(ExternalLink)`\n font-family: ${({ theme }) => theme.typography.fontFamily.secondary};\n font-weight: normal;\n font-size: 20px;\n line-height: 22px;\n text-decoration: underline;\n transition: 0.2s;\n\n &:hover {\n color: ${({ theme }) => theme.colors.red};\n text-decoration: underline;\n transition: 0.2s;\n }\n\n ${({ theme }) =>\n theme.mode === 'dark' &&\n css`\n font-size: 16px;\n `}\n\n ${({ theme }) => theme.mediaWidth.upToSmall`\n\t\tfont-size: 18px;\n \tline-height: 18px;\n `};\n`\n\nconst OptionGrid = styled.div`\n display: grid;\n grid-gap: 8px;\n ${({ theme }) => theme.mediaWidth.upToMedium`\n grid-template-columns: 1fr;\n grid-gap: 10px;\n `};\n`\n\nconst HoverText = styled.div`\n font-family: ${({ theme }) => theme.typography.fontFamily.primary};\n font-size: 20px;\n line-height: 140%;\n\n :hover {\n cursor: pointer;\n }\n\n ${({ theme }) =>\n theme.mode === 'metis' &&\n css`\n font-weight: 900;\n font-size: 16px;\n line-height: 22px;\n `}\n\n ${({ theme }) =>\n theme.mode === 'dark' &&\n css`\n text-transform: uppercase;\n `}\n\n ${({ theme }) => theme.mediaWidth.upToSmall`\n\t\tpadding-right: 100px;\n\t`};\n`\n\nconst WALLET_VIEWS = {\n OPTIONS: 'options',\n OPTIONS_SECONDARY: 'options_secondary',\n ACCOUNT: 'account',\n PENDING: 'pending'\n}\n\nconst LEARN_WALLET_LINK = {\n MOBILE: 'https://defi.support.energi.world/hc/en-us/articles/360051654371-Getting-Started-with-MetaMask-on-Mobile',\n DESKTOP: 'https://docs.binance.org/smart-chain/wallet/metamask.html'\n}\n\nexport default function WalletModal({\n pendingTransactions,\n confirmedTransactions,\n ENSName\n}: {\n pendingTransactions: string[] // hashes of pending\n confirmedTransactions: string[] // hashes of confirmed\n ENSName?: string\n}) {\n // important that these are destructed from the account-specific web3-react context\n const { active, account, connector, activate, error } = useWeb3React()\n\n const [walletView, setWalletView] = useState(WALLET_VIEWS.ACCOUNT)\n\n const [pendingWallet, setPendingWallet] = useState()\n const [pendingWalletKey, setPendingWalletKey] = useState()\n\n const [pendingError, setPendingError] = useState()\n\n const walletModalOpen = useWalletModalOpen()\n const toggleWalletModal = useWalletModalToggle()\n\n const previousAccount = usePrevious(account)\n\n const theme = useContext(ThemeContext)\n\n const { t } = useTranslation()\n\n // close on connection, when logged out before\n useEffect(() => {\n if (account && !previousAccount && walletModalOpen) {\n toggleWalletModal()\n }\n }, [account, previousAccount, toggleWalletModal, walletModalOpen])\n\n // always reset to account view\n useEffect(() => {\n if (walletModalOpen) {\n setPendingError(false)\n setWalletView(WALLET_VIEWS.ACCOUNT)\n }\n }, [walletModalOpen])\n\n // close modal when a connection is successful\n const activePrevious = usePrevious(active)\n const connectorPrevious = usePrevious(connector)\n useEffect(() => {\n if (walletModalOpen && ((active && !activePrevious) || (connector && connector !== connectorPrevious && !error))) {\n setWalletView(WALLET_VIEWS.ACCOUNT)\n }\n }, [setWalletView, active, error, connector, walletModalOpen, activePrevious, connectorPrevious])\n\n const tryActivation = async (walletKey: SUPPORTED_WALLET_NAMES, connector: AbstractConnector | undefined) => {\n // log selected wallet\n ReactGA.event({\n category: 'Wallet',\n action: 'Change Wallet',\n label: SUPPORTED_WALLETS[walletKey].name\n })\n setPendingWallet(connector) // set wallet for pending view\n setPendingWalletKey(walletKey)\n setWalletView(WALLET_VIEWS.PENDING)\n\n // if the connector is walletconnect and the user has already tried to connect, manually reset the connector\n if (connector instanceof WalletConnectConnector) {\n connector.walletConnectProvider = undefined\n }\n\n connector &&\n activate(connector, undefined, true)\n .then(() => {\n window.localStorage.setItem(connectorLocalStorageKey, walletKey)\n })\n .catch(error => {\n if (error instanceof UnsupportedChainIdError) {\n activate(connector) // a little janky...can't use setError because the connector isn't set\n } else {\n setPendingError(true)\n }\n })\n }\n\n // get wallets user can switch too, depending on device/browser\n function getOptions() {\n return Object.keys(SUPPORTED_WALLETS).map(key => {\n if (SHOWN_WALLETS && SHOWN_WALLETS?.length && !SHOWN_WALLETS?.includes(key)) {\n return null\n }\n\n const option = SUPPORTED_WALLETS[key as SUPPORTED_WALLET_NAMES]\n let optionConnector = connectorsByWallets[key as SUPPORTED_WALLET_NAMES]\n\n // check for mobile options\n if (isMobile) {\n if (!window.web3 && !window.ethereum && option.mobile) {\n if (key === SUPPORTED_WALLET_NAMES.TRUST_WALLET) {\n optionConnector = connectorsByWallets.WALLETCONNECT\n }\n\n let connect = (connectorToConnect: AbstractConnector) => {\n connectorToConnect !== connector &&\n !option.href &&\n tryActivation(key as SUPPORTED_WALLET_NAMES, connectorToConnect)\n }\n\n if (key === SUPPORTED_WALLET_NAMES.METAMASK_MOBILE_DEEP_LINK) {\n connect = () => {\n const currentHost = window.location.host\n window.location.replace(`https://metamask.app.link/dapp/${currentHost}`)\n }\n }\n\n return (\n {\n connect(optionConnector)\n }}\n id={`connect-${key}`}\n key={key}\n active={optionConnector && optionConnector === connector}\n color={theme.colors?.walletItem?.bg ?? option.color}\n link={option.href}\n header={option.name}\n subheader={null}\n icon={option.iconName}\n />\n )\n }\n return null\n }\n\n // overwrite injected when needed\n if (optionConnector === connectorsByWallets.INJECTED) {\n // don't show injected if there's no injected provider\n if (!(window.web3 || window.ethereum)) {\n if (SUPPORTED_INSTALL_WALLETS[key]) {\n const installWalletInfo = SUPPORTED_INSTALL_WALLETS[key]\n return (\n \n )\n } else {\n return null //dont want to return install twice\n }\n }\n // likewise for generic\n else if (option.name === 'Injected') {\n return null\n }\n }\n\n // return rest of options\n return (\n !isMobile &&\n !option.mobileOnly && (\n {\n optionConnector === connector\n ? setWalletView(WALLET_VIEWS.ACCOUNT)\n : !option.href && tryActivation(key as SUPPORTED_WALLET_NAMES, optionConnector)\n }}\n key={key}\n active={optionConnector === connector}\n color={theme.colors?.walletItem?.bg ?? option.color}\n link={option.href}\n header={option.name}\n subheader={null} //use option.descriptio to bring back multi-line\n icon={option.iconName}\n />\n )\n )\n })\n }\n\n function getModalContent() {\n if (error) {\n return (\n {\n return <>{error instanceof UnsupportedChainIdError ? t('Wrong Network') : t('Error connecting')}\n }}\n renderContent={() => {\n return (\n <>\n {error instanceof UnsupportedChainIdError ? (\n
\n {t('Please connect to the appropriate BNB Chain.')}\n {t('How?')}\n
\n ) : (\n t('Error connecting. Try refreshing the page.')\n )}\n \n )\n }}\n />\n )\n }\n if (account && walletView === WALLET_VIEWS.ACCOUNT) {\n return (\n setWalletView(WALLET_VIEWS.OPTIONS)}\n />\n )\n }\n return (\n \n \n {walletView !== WALLET_VIEWS.ACCOUNT ? (\n \n {\n setPendingError(false)\n setWalletView(WALLET_VIEWS.ACCOUNT)\n }}\n >\n {t('Back')}\n \n \n ) : (\n \n {t('Connect to a wallet (ui)')}\n \n )}\n \n {walletView === WALLET_VIEWS.PENDING ? (\n \n ) : (\n {getOptions()}\n )}\n {walletView !== WALLET_VIEWS.PENDING && (\n \n \n {t('Learn how to connect')}\n \n \n )}\n \n \n )\n }\n\n return error ? (\n {\n return <>{error instanceof UnsupportedChainIdError ? t('Wrong Network') : t('Error connecting')}\n }}\n renderContent={() => {\n return (\n <>\n {error instanceof UnsupportedChainIdError ? (\n <>\n \n Please connect to the appropriate
\n BNB Chain.\n
\n {t('How?')}\n \n ) : (\n t('Error connecting. Try refreshing the page.')\n )}\n \n )\n }}\n />\n ) : (\n \n {getModalContent()}\n \n )\n}\n","import { UnsupportedChainIdError, useWeb3React } from '@web3-react/core'\nimport React, { useMemo } from 'react'\nimport { Activity } from 'react-feather'\nimport TagManager from 'react-gtm-module'\nimport { useTranslation } from 'react-i18next'\nimport styled from 'styled-components'\nimport { NetworkContextName } from '../../constants'\nimport useENSName from '../../hooks/useENSName'\nimport { useWalletModalToggle } from '../../state/application/hooks'\nimport { isTransactionRecent, useAllTransactions } from '../../state/transactions/hooks'\nimport { TransactionDetails } from '../../state/transactions/reducer'\nimport { shortenAddress } from '../../utils'\nimport { ButtonSecondary } from '../Button'\nimport Loader from '../Loader'\nimport { RowBetween } from '../Row'\nimport WalletModal from '../WalletModal'\n\nconst Web3StatusGeneric = styled(ButtonSecondary)`\n height: 48px;\n border-radius: 10px;\n padding: 0 28px;\n\n ${({ theme }) =>\n theme.mode === 'dark' &&\n `\n height: 36px;\n padding: 0 24px;\n border: none;\n border-radius: 5px;\n `}\n\n ${({ theme }) => theme.mediaWidth.upToMedium`\n padding: 0 25px;\n `};\n\n ${({ theme }) => theme.mediaWidth.upToSmall`\n height: 38px;\n padding: 0 15px;\n font-size: 13px;\n `};\n`\n\nconst Web3StatusError = styled(Web3StatusGeneric)`\n padding: 0px 20px;\n background-color: #f33e21;\n\n & > svg {\n width: 24px;\n height: 24px;\n }\n\n ${({ theme }) => theme.mediaWidth.upToSmall`\n & > svg {\n width: 18px;\n height: 18px;\n }\n `};\n`\n\nconst Web3StatusConnect = styled(Web3StatusGeneric)`\n background-color: ${({ theme }) => theme.colors.primary4};\n\n :hover,\n :focus {\n background-color: ${({ theme }) => theme.colors.primary1};\n }\n`\n\nconst Web3StatusConnected = styled(Web3StatusGeneric)`\n background-color: ${({ theme }) => theme.colors.primary5};\n\n :hover,\n :focus {\n background-color: ${({ theme }) => theme.colors.primary5};\n }\n`\n\nconst Text = styled.p`\n font-family: ${({ theme }) => theme.typography.fontFamily.primary};\n font-size: ${({ theme }) => (theme.mode === 'dark' ? '14px' : '13px')};\n color: ${({ theme }) => theme.colors.buttonText};\n`\n\nconst NetworkIcon = styled(Activity)`\n margin-left: 0.25rem;\n margin-right: 0.5rem;\n width: 16px;\n height: 16px;\n`\n\n// we want the latest one to come first, so return negative if a is after b\nfunction newTransactionsFirst(a: TransactionDetails, b: TransactionDetails) {\n return b.addedTime - a.addedTime\n}\n\nfunction Web3StatusInner() {\n const { t } = useTranslation()\n const { account, error } = useWeb3React()\n\n const { ENSName } = useENSName(account ?? undefined)\n\n const allTransactions = useAllTransactions()\n\n const sortedRecentTransactions = useMemo(() => {\n const txs = Object.values(allTransactions)\n return txs.filter(isTransactionRecent).sort(newTransactionsFirst)\n }, [allTransactions])\n\n const pending = sortedRecentTransactions.filter(tx => !tx.receipt).map(tx => tx.hash)\n\n const hasPendingTransactions = !!pending.length\n const toggleWalletModal = useWalletModalToggle()\n\n const handleConnectWallet = () => {\n TagManager.dataLayer({\n dataLayer: {\n event: 'ClickConnect'\n }\n })\n toggleWalletModal()\n }\n\n if (account) {\n const address = shortenAddress(account)\n const isDesktop = window.innerWidth > 1080\n return (\n \n {hasPendingTransactions ? (\n \n {t('Transactions Pending', { transactionsPending: pending.length })} \n \n ) : (\n <>{ENSName || isDesktop ? address : `...${address.split('...')[1]}`}\n )}\n \n )\n } else if (error) {\n return (\n \n \n {error instanceof UnsupportedChainIdError ? t('Wrong Network') : t('Error')}\n \n )\n } else {\n return (\n \n {t('Connect wallet')}\n \n )\n }\n}\n\nexport default function Web3Status({ showInnerStatus = true }: { showInnerStatus?: boolean }) {\n const { active, account } = useWeb3React()\n const contextNetwork = useWeb3React(NetworkContextName)\n\n const { ENSName } = useENSName(account ?? undefined)\n\n const allTransactions = useAllTransactions()\n\n const sortedRecentTransactions = useMemo(() => {\n const txs = Object.values(allTransactions)\n return txs.filter(isTransactionRecent).sort(newTransactionsFirst)\n }, [allTransactions])\n\n const pending = sortedRecentTransactions.filter(tx => !tx.receipt).map(tx => tx.hash)\n const confirmed = sortedRecentTransactions.filter(tx => tx.receipt).map(tx => tx.hash)\n\n if (!contextNetwork.active && !active) {\n return null\n }\n\n return (\n <>\n {showInnerStatus && }\n \n \n )\n}\n","import React from 'react'\nimport styled from 'styled-components'\nimport { useTranslation } from 'react-i18next'\nimport { WOWSWAP_ROUTE } from 'constants/routes/routes'\nimport { StyledNavLinkFactory } from './styleds'\nimport { useActiveWeb3React } from '../../hooks'\nimport { useRouterGuards } from '../../hooks/useRouterGuards'\n\nconst activeClassName = 'active-nav-link'\n\nconst StyledNav = styled.nav`\n align-items: center;\n display: flex;\n font-size: 14px;\n margin-left: 42px;\n margin-right: 10px;\n line-height: 45px;\n\n font-family: ${({ theme }) => theme.typography.fontFamily.primary};\n ${({ theme }) => theme.mediaWidth.upToMedium`\n\t\tmargin-left: 12px;\n\n\t\tfont-size: 12px;\n line-height: 14px;\n `};\n`\n\nconst StyledNavLink = styled(StyledNavLinkFactory(activeClassName))`\n font-size: inherit;\n line-height: inherit;\n\n &:not(:first-child) {\n margin-left: 13px;\n }\n\n @media (max-width: 400px) {\n font-size: 12px;\n &:not(:first-child) {\n margin-left: 13px;\n }\n }\n`\n\nconst StyledLink = styled.a`\n color: ${({ theme }) => (theme.mode === 'dark' ? theme.colors.text4 : theme.colors.text1)};\n text-decoration: none;\n\n &:hover {\n color: ${({ theme }) => theme.colors.text2};\n }\n\n &:not(:first-child) {\n margin-left: 13px;\n }\n\n @media (max-width: 400px) {\n &:not(:first-child) {\n margin-left: 13px;\n }\n }\n`\n\nconst NotMobileLinks = styled.div`\n display: block;\n margin-left: 13px;\n ${({ theme }) => theme.mediaWidth.upToLarge`\ndisplay: none;\n `};\n`\n\nconst Nav: React.FC = () => {\n const { chainId, account } = useActiveWeb3React()\n const { isCanPro, isCanOpenGov, isCanOpenPortfolio, isCanOpenReferral } = useRouterGuards(chainId, account)\n const { t } = useTranslation()\n\n return (\n \n {isCanPro && (\n \n {t('Pro')}\n \n )}\n \n {t('Swap')}\n \n \n {t('Earn')}\n \n {isCanOpenPortfolio && (\n \n {t('Portfolio')}\n \n )}\n {account && (\n \n {t('Alerts')}\n \n )}\n \n {isCanOpenGov && (\n \n {t('DAO')}\n \n )}\n {isCanOpenReferral && (\n \n {t('Referral')}\n \n )}\n \n {t('Docs')}\n \n \n \n )\n}\n\nexport default Nav\n","import React from 'react'\nimport { useTranslation } from 'react-i18next'\nimport styled from 'styled-components'\n\nimport { useChainWalletModalOpen, useChainWalletModalToggle } from '../../state/application/hooks'\n\nimport { Text } from 'rebass'\nimport Modal from '../Modal'\nimport { CloseIcon } from '../Shared'\nimport { Title } from '../Title'\nimport { BlockHeader } from '../BlockHeader'\n\nconst Wrapper = styled.div`\n ${({ theme }) => theme.flexColumnNoWrap}\n margin: 0;\n padding: 0;\n width: 100%;\n`\n\nconst UpperSection = styled.div`\n position: relative;\n\n h5 {\n margin: 0;\n margin-bottom: 0.5rem;\n font-size: 1rem;\n font-weight: 600;\n }\n\n h5:last-child {\n margin-bottom: 0px;\n }\n\n h4 {\n margin-top: 0;\n font-weight: 700;\n }\n`\n\nexport default function ChainWalletModal() {\n const modalOpen = useChainWalletModalOpen()\n const toggleModal = useChainWalletModalToggle()\n const { t } = useTranslation()\n\n return (\n \n \n \n \n \n {t('Switch network')}\n \n\n \n {t('Please switch network in your wallet')}\n \n \n \n \n )\n}\n","import React, { useEffect, useRef, useState, useContext } from 'react'\nimport { useDispatch } from 'react-redux'\nimport { ChainId, Currency } from '@wowswap-io/wowswap-sdk'\nimport { ThemeContext } from 'styled-components'\nimport { ChevronDown, ChevronUp } from 'react-feather'\nimport { useTranslation } from 'react-i18next'\n\nimport { AppDispatch } from '../../state'\nimport { resetSwapState, setInitialTokens } from '../../state/trade/actions'\nimport { resetStakeState } from '../../state/stake/actions'\nimport { useETHBalances } from '../../state/wallet/hooks'\n\nimport { ReactComponent as Binance } from '../../assets/svg/networks/bnb.svg'\nimport { ReactComponent as Polygon } from '../../assets/svg/networks/polygon.svg'\nimport { ReactComponent as Heco } from '../../assets/svg/networks/heco.svg'\nimport { ReactComponent as Ethereum } from '../../assets/svg/networks/ethereum.svg'\nimport { ReactComponent as Avalanche } from '../../assets/svg/networks/avalanche.svg'\nimport { ReactComponent as Iotex } from '../../assets/svg/networks/iotex.svg'\nimport { ReactComponent as Solana } from '../../assets/svg/networks/solana.svg'\n\nimport LogoMobile from '../../assets/svg/logo--mobile.svg'\nimport { default as LogoWhite } from '../../assets/svg/logo-white.svg'\nimport { default as LogoDark } from '../../assets/svg/logo-dark.svg'\n\nimport { useActiveWeb3React } from '../../hooks'\nimport useSwitchChainOnMetamask from '../../hooks/useChangeChain'\nimport { useOnClickOutside } from '../../hooks/useOnClickOutside'\nimport { redirectByNetworkIfNeeded } from '../../utils/networkRedirect'\n\nimport Menu from './SideMenu'\nimport Web3Status from '../Web3Status'\nimport Nav from './Nav'\nimport ChainWalletModal from '../ChainWalletModal'\n\nimport {\n AccountElement,\n BalanceText,\n NetworkContainer,\n NetworkCurrent,\n HiddenNetworkCurrent,\n NetworkCurrentLabel,\n NetworkCurrentLabelIcon,\n NetworkSelect,\n NetworkSelectHeader,\n NetworkSelectTitle,\n NetworkWrapper,\n NetworkCard,\n NetworkCardIcon,\n NetworkCardName,\n HeaderControls,\n ExpandBtn,\n CloseBtn,\n HeaderFrame,\n Icon,\n IconMobile,\n MobileHeaderElementWrap,\n Title\n} from './styleds'\n\ntype NetworkName = keyof typeof ChainId | 'SOLANA'\n\ntype Network = {\n name: NetworkName\n label: string\n component: React.ReactNode\n chainId: ChainId | null\n color: string\n}\n\nconst NETWORKS: Network[] = [\n {\n name: 'MAINNET', // 'Binance Smart Chain',\n label: 'BNB',\n component: ,\n chainId: ChainId.MAINNET,\n color: '#F3BA2F'\n },\n {\n name: 'MATIC', // 'Polygon'\n label: 'Polygon',\n component: ,\n chainId: ChainId.MATIC,\n color: '#8F5AE8'\n },\n {\n name: 'ETHEREUM', // 'Ethereum Mainnet',\n label: 'Ethereum',\n component: ,\n chainId: ChainId.ETHEREUM,\n color: '#697FE3'\n },\n {\n name: 'HECO', // 'Huobi ECO Chain'\n label: 'HECO',\n component: ,\n chainId: ChainId.HECO,\n color: '#2483FF'\n },\n {\n name: 'AVALANCE', // 'Avalanche Network'\n label: 'Avalanche',\n component: ,\n chainId: ChainId.AVALANCE,\n color: '#E84142'\n },\n {\n name: 'IOTEX',\n label: 'IoTeX',\n component: ,\n chainId: ChainId.IOTEX,\n color: '#15E3B0'\n },\n {\n name: 'SOLANA',\n label: 'Solana',\n component: ,\n chainId: null,\n color:\n 'linear-gradient(48.01deg, #9945FF 0.57%, #8A53F4 14.41%, #6377D6 42.09%, #24B0A7 78.67%, #00D18C 98.45%, #00D18C 99.43%), #000000'\n }\n]\n\nexport default function Header() {\n const dispatch = useDispatch()\n const node = useRef(null)\n const theme = useContext(ThemeContext)\n const { account, chainId } = useActiveWeb3React()\n const { changeNetwork } = useSwitchChainOnMetamask()\n const userEthBalance = useETHBalances(account ? [account] : [])?.[account ?? '']\n const { t } = useTranslation()\n\n const [network, setNetwork] = useState(NETWORKS[0])\n const [openTrigger, setOpenTrigger] = useState(false)\n\n useEffect(() => {\n if (chainId) {\n dispatch(resetSwapState())\n dispatch(resetStakeState())\n dispatch(setInitialTokens({ chainId }))\n\n const network = NETWORKS.find(net => net.name === ChainId[chainId])\n if (network) setNetwork(network)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [chainId])\n\n useEffect(() => {\n dispatch(resetStakeState())\n }, [dispatch, account])\n\n const handleNetworkSelect = (network: Network) => {\n const { chainId, name } = network\n setOpenTrigger(!openTrigger)\n if (chainId) {\n changeNetwork(chainId)\n } else {\n redirectByNetworkIfNeeded(name)\n }\n }\n\n useOnClickOutside(node, () => setOpenTrigger(false))\n\n return (\n \n \n <Icon>\n {theme.mode === 'dark' ? (\n <img src={LogoDark} alt={t('WOWswap-Logo')} />\n ) : (\n <img src={LogoWhite} alt={t('WOWswap-Logo')} />\n )}\n </Icon>\n <IconMobile>\n <img src={LogoMobile} alt={t('WOWswap')} />\n </IconMobile>\n \n\n