{"version":3,"sources":["assets/icons/coins.svg","utils/pureFunctions.ts","assets/icons/dollar.svg","redux/notification/notification.ts","utils/localStorage.ts","redux/user/user.ts","redux/bancor/bancor.ts","redux/bancor/pool.ts","services/web3/types.ts","redux/liquidity/liquidity.ts","redux/index.ts","elements/swapSwitch/SwapSwitch.tsx","elements/swapHeader/SwapHeader.tsx","components/inputField/InputField.tsx","services/api/bancor.ts","services/observables/customOperators.ts","utils/formulas.ts","services/web3/config.ts","services/web3/wallet/connectors.ts","services/web3/index.ts","services/observables/network.ts","services/web3/abis/types/factories/BancorNetwork__factory.ts","services/web3/abis/types/factories/ContractRegistry__factory.ts","services/web3/abis/types/factories/Converter__factory.ts","services/web3/abis/types/factories/ConverterRegistry__factory.ts","services/web3/abis/types/factories/ExchangeProxy__factory.ts","services/web3/abis/types/factories/Governance__factory.ts","services/web3/abis/types/factories/LiquidityProtection__factory.ts","services/web3/abis/types/factories/LiquidityProtectionSettings__factory.ts","services/web3/abis/types/factories/LiquidityProtectionStore__factory.ts","services/web3/abis/types/factories/LiquidityProtectionSystemStore__factory.ts","services/web3/abis/types/factories/Multicall__factory.ts","services/web3/abis/types/factories/StakingRewards__factory.ts","services/web3/abis/types/factories/Token__factory.ts","services/web3/abis/types/factories/Weth__factory.ts","services/web3/multicall/multicall.ts","services/observables/contracts.ts","services/observables/timers.ts","services/observables/user.ts","services/observables/balances.ts","services/observables/pools.ts","utils/dayjs.ts","services/api/googleTagManager.ts","services/web3/swap/limit.ts","utils/helperFunctions.ts","services/api/keeperDao.ts","assets/icons/times.svg","services/web3/swap/market.ts","services/observables/tokens.ts","assets/icons/chevronRight.svg","assets/icons/bancor.svg","components/modal/Modal.tsx","assets/icons/edit.svg","elements/layoutHeader/LayoutHeaderMobile.tsx","components/modalFullscreen/ModalFullscreen.tsx","components/image/Image.tsx","assets/icons/chevronDown.svg","components/searchableTokenList/SearchableTokenList.tsx","assets/icons/info-solid.svg","components/tokenInputField/TokenInputField.tsx","components/tooltip/TooltipPanel.tsx","assets/icons/sync.svg","components/tooltip/Tooltip.tsx","hooks/useDebounce.tsx","assets/icons/lock.svg","services/web3/approval/constants.ts","services/web3/approval/index.ts","assets/icons/check.svg","elements/modalApprove/modalApprove.tsx","hooks/useInterval.tsx","services/notifications/notifications.ts","elements/swapMarket/SwapMarket.tsx","assets/icons/clock-solid.svg","components/dropdown/Dropdown.tsx","assets/icons/deposit.svg","elements/modalDuration/modalDuration.tsx","elements/swapLimit/SwapLimit.tsx","elements/modalDepositETH/modalDepositETH.tsx","assets/icons/lightbulb.svg","elements/swapInsights/Speedometer.tsx","components/linePercentage/LinePercentage.tsx","elements/swapInsights/InsightCard.tsx","elements/swapInsights/InsightRow.tsx","assets/icons/intotheblock.svg","elements/swapInsights/Insight.tsx","hooks/useLocalStorage.ts","services/api/intoTheBlock.ts","assets/icons/search.svg","utils/router.ts","elements/swapWidget/SwapWidget.tsx","assets/icons/info.svg","components/searchInput/SearchInput.tsx","components/table/TablePagination.tsx","assets/icons/protected.svg","components/table/TableHeader.tsx","components/table/TableBody.tsx","components/table/DataTable.tsx","elements/swapLimit/SwapLimitTable.tsx","hooks/useQuery.tsx","pages/Swap.tsx","pages/NotFound.tsx","pages/UnsupportedNetwork.tsx","components/ticker/Ticker.tsx","elements/tokens/TopMovers.tsx","components/charts/LineChartSimple.tsx","assets/icons/clock.svg","elements/tokens/TokenTable.tsx","pages/Tokens.tsx","elements/earn/pools/TopPools.tsx","components/countdownTimer/CountdownTimer.tsx","assets/icons/plus-circle.svg","assets/icons/arrow.svg","services/web3/liquidity/liquidity.ts","components/selectToken/SelectToken.tsx","elements/modalCreatePool/ModalCreatePool.tsx","elements/earn/pools/poolsTable/PoolsTable.tsx","elements/earn/pools/poolsTable/PoolsTableCellName.tsx","elements/earn/pools/poolsTable/PoolsTableCellRewards.tsx","elements/earn/pools/poolsTable/PoolsTableCellApr.tsx","elements/earn/pools/poolsTable/PoolsTableCellActions.tsx","assets/icons/withdraw.svg","elements/earn/pools/Statistics.tsx","pages/earn/pools/Pools.tsx","elements/earn/portfolio/liquidityProtection/protectedPositions/MyStake.tsx","components/selectPoolModal/SelectPoolModalContent.tsx","components/selectPoolModal/SelectPoolModal.tsx","elements/earn/portfolio/liquidityProtection/rewards/StakeRewardsBtn.tsx","elements/earn/portfolio/liquidityProtection/rewards/MyRewards.tsx","elements/earn/portfolio/liquidityProtection/rewards/useMyRewards.tsx","elements/earn/portfolio/liquidityProtection/protectedPositions/ProtectedPositionTableCellStake.tsx","assets/icons/locked.svg","components/tokenInputPercentage/TokenInputPercentage.tsx","elements/earn/portfolio/withdrawLiquidity/WithdrawLiquidityInfo.tsx","services/web3/protection/rewards.ts","services/web3/protection/positions.ts","hooks/useApproveModal.tsx","elements/modalApprove/modalApproveNew.tsx","elements/earn/portfolio/withdrawLiquidity/WithdrawLiquidityWidget.tsx","components/table/TableCellExpander.tsx","elements/earn/portfolio/liquidityProtection/protectedPositions/useProtectedPositions.tsx","elements/earn/portfolio/liquidityProtection/protectedPositions/ProtectedPositionTableCellLiquidity.tsx","elements/earn/portfolio/liquidityProtection/protectedPositions/ProtectedPositionTableCellClaimable.tsx","elements/earn/portfolio/liquidityProtection/protectedPositions/ProtectedPositionTableCellFees.tsx","elements/earn/portfolio/liquidityProtection/protectedPositions/ProtectedPositionTableCellRoi.tsx","elements/earn/portfolio/liquidityProtection/protectedPositions/ProtectedPositionTableCellActions.tsx","elements/earn/portfolio/liquidityProtection/protectedPositions/ProtectedPositionsTable.tsx","services/web3/lockedbnt/lockedbnt.ts","elements/earn/portfolio/liquidityProtection/claim/ClaimAvailable.tsx","assets/icons/link.svg","elements/earn/portfolio/liquidityProtection/claim/ClaimLocked.tsx","elements/earn/portfolio/liquidityProtection/LiquidityProtection.tsx","elements/earn/portfolio/poolTokens/poolTokensTable/PoolTokensCellActions.tsx","components/tokensOverlap/TokensOverlap.tsx","elements/earn/portfolio/poolTokens/poolTokensTable/PoolTokensTable.tsx","elements/earn/portfolio/poolTokens/poolTokensTable/PoolTokensCellName.tsx","elements/earn/portfolio/poolTokens/poolTokensTable/PoolTokensCellReserve.tsx","elements/earn/portfolio/poolTokens/PoolTokens.tsx","pages/earn/portfolio/Portfolio.tsx","elements/fiat/FiatBox.tsx","services/web3/governance/governance.ts","elements/modalVbnt/ModalVbnt.tsx","pages/Vote.tsx","assets/logos/moonpay.svg","assets/logos/banxa.svg","assets/logos/simplex.svg","assets/logos/ramp.svg","assets/logos/mercuryo.svg","assets/icons/bell.svg","pages/Fiat.tsx","components/transitions/DropdownTransition.tsx","elements/notifications/NotificationContent.tsx","assets/icons/cog.svg","elements/notifications/NotificationsMenu.tsx","assets/icons/sun.svg","assets/icons/moon.svg","assets/icons/hamburger.svg","elements/sidebar/menuSecondary/MenuSecondaryItem.tsx","elements/settings/SettingsMenu.tsx","assets/icons/wallet.svg","assets/logos/metamask.png","assets/logos/fortmatic.svg","assets/logos/portis.png","assets/logos/walletConnect.svg","assets/logos/coinbaseWallet.svg","assets/logos/ledger.svg","assets/logos/trezor.svg","assets/logos/gnosisSafe.svg","assets/logos/torus.svg","services/web3/wallet/utils.ts","assets/logos/frame.png","elements/walletConnect/WalletConnectModalList.tsx","elements/walletConnect/WalletConnectModalPending.tsx","elements/walletConnect/WalletConnectModalError.tsx","elements/walletConnect/WalletConnectModal.tsx","assets/logos/bancorv3mobile.svg","elements/walletConnect/WalletConnectButton.tsx","assets/icons/earn.svg","elements/marketingBanner/MarketingBannerMobile.tsx","elements/layoutHeader/LayoutHeader.tsx","elements/walletConnect/useWalletConnect.ts","services/web3/wallet/hooks.ts","elements/notifications/NotificationAlert.tsx","elements/notifications/NotificationAlerts.tsx","assets/icons/vote.svg","assets/icons/fiat.svg","elements/sidebar/menuPrimary/MenuPrimaryItemSub.tsx","elements/sidebar/menuPrimary/MenuPrimaryItem.tsx","elements/sidebar/menuPrimary/MenuPrimary.tsx","assets/icons/bancorText.svg","hooks/usePrevious.tsx","assets/icons/community.svg","elements/sidebar/SidebarHeader.tsx","assets/icons/developers.svg","assets/icons/bancoranalytics.svg","assets/icons/twitter.svg","assets/icons/reddit.svg","assets/icons/telegram.svg","assets/icons/discord.svg","assets/icons/document.svg","assets/icons/github.svg","assets/logos/bancorv3.svg","elements/sidebar/menuSecondary/MenuSecondaryItemSub.tsx","elements/sidebar/menuSecondary/MenuSecondary.tsx","elements/sidebar/SidebarFooter.tsx","elements/sidebar/Sidebar.tsx","components/slideover/Slideover.tsx","services/observables/statistics.ts","services/observables/bancor.ts","services/observables/liquidity.ts","components/widgets/Widget.tsx","elements/earn/portfolio/liquidityProtection/rewards/claim/RewardsClaimAmount.tsx","elements/earn/portfolio/liquidityProtection/rewards/claim/RewardsClaimInfo.tsx","elements/earn/portfolio/liquidityProtection/rewards/claim/useRewardsClaim.tsx","elements/earn/portfolio/liquidityProtection/rewards/claim/RewardsClaimCTA.tsx","pages/earn/portfolio/rewards/RewardsClaim.tsx","components/widgets/WidgetLoading.tsx","components/selectPool/SelectPool.tsx","elements/earn/portfolio/liquidityProtection/rewards/stake/RewardsStakeCTA.tsx","elements/earn/portfolio/liquidityProtection/rewards/stake/RewardsStakeSpaceAvailable.tsx","elements/earn/portfolio/liquidityProtection/rewards/stake/RewardsStakeWidget.tsx","components/widgets/WidgetError.tsx","pages/earn/portfolio/rewards/RewardsStake.tsx","elements/earn/pools/addLiquidity/single/AddLiquiditySingleInfoBox.tsx","elements/earn/pools/addLiquidity/single/AddLiquiditySingleSelectPool.tsx","elements/earn/pools/addLiquidity/single/AddLiquiditySingleSpaceAvailable.tsx","elements/earn/pools/addLiquidity/single/AddLiquiditySingleAmount.tsx","elements/earn/pools/addLiquidity/single/AddLiquiditySingleCTA.tsx","elements/earn/pools/addLiquidity/single/AddLiquiditySingle.tsx","elements/earn/pools/addLiquidity/dual/AddLiquidityDualStakeAmount.tsx","elements/earn/pools/addLiquidity/empty/AddLiquidityEmptyCTA.tsx","elements/earn/pools/addLiquidity/dual/AddLiquidityDualTokenPrices.tsx","elements/earn/pools/addLiquidity/dual/AddLiquidityDual.tsx","elements/earn/pools/addLiquidity/empty/AddLiquidityEmptyStep1.tsx","elements/earn/pools/addLiquidity/empty/AddLiquidityEmptyStep2.tsx","elements/earn/pools/addLiquidity/empty/AddLiquidityEmpty.tsx","pages/earn/pools/AddLiquidity.tsx","pages/TermsOfUse.tsx","pages/PrivacyPolicy.tsx","assets/logos/discoverDefiSlogan.svg","elements/marketingBanner/MarketingBanner.tsx","App.tsx","services/observables/triggers.ts","reportWebVitals.ts","i18n/index.ts","i18n/i18nProvider.tsx","index.tsx"],"names":["_path","classNameGenerator","object","Object","entries","filter","k","v","map","x","join","sanitizeNumberInput","input","precision","sanitized","replace","split","integer","decimals","substring","mapIgnoreThrown","iteratee","a","IGNORE_TOKEN","Promise","all","val","index","catch","res","wait","ms","resolve","setTimeout","get7DaysAgo","Date","now","sortTokenBalanceAlphabetic","b","diff","Number","balance","symbol","toUpperCase","localeCompare","openNewTab","url","window","open","_excluded","_extends","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","_objectWithoutProperties","excluded","sourceKeys","keys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","SvgCoins","_ref","svgRef","title","titleId","props","width","height","viewBox","fill","xmlns","ref","id","d","ForwardRef","SvgDollar","NotificationType","selected_lists","conversion","autoLogin","darkMode","slippageTolerance","usdToggle","notifications","showBanner","getTokenListLS","list","localStorage","getItem","JSON","parse","setTokenListLS","userListIds","setItem","stringify","getConversionLS","conv","setConversionLS","setAutoLoginLS","flag","initialState","walletModal","locale","loadingBalances","show","undefined","getShowBannerLS","userSlice","createSlice","name","reducers","setDarkMode","state","action","payload","root","document","documentElement","classList","add","remove","setSlippageTolerance","setLocale","openWalletModal","setUsdToggle","setLoadingBalances","setShowBanner","actions","user","reducer","bancorSlice","tokenLists","tokens","keeperDaoTokens","allTokens","bntPrice","setTokenLists","setTokenList","setAllTokens","updateTokens","tokenToUpdate","token","find","updatedToken","address","setKeeperDaoTokens","setBntPrice","getTokenById","createSelector","bancor","t","poolSlice","pools","statistics","setPools","setStats","getPools","pool","orderBy","getProtectedPools","protectedPools","p","isProtected","getTopPools","filteredPools","isWhitelisted","liquidity","tknSymbol","reserves","tknLogoURI","logoURI","tknApr","apr","rewardApr","bntSymbol","bntLogoURI","bntApr","poolName","winningBntPool","slice","topPools","push","createDeepEqualSelector","createSelectorCreator","defaultMemoize","isEqual","getPoolById","status","pool_dlt_id","EthNetworks","PoolType","ErrorCode","SignatureType","notificationSlice","setNotifications","addNotification","unshift","nanoid","type","info","timestamp","dayjs","unix","showSeconds","success","pop","removeNotification","findIndex","notification","splice","hideAlert","setStatus","oldNotification","msg","txHash","poolTokens","lockedAvailableBNT","locked","available","protectedPositions","rewards","loadingPositions","loadingRewards","loadingLockedBnt","liquiditySlice","setPoolTokens","setLockedAvailableBNT","setProtectedPositions","setRewards","setLoadingPositions","setLoadingRewards","setLoadingLockedBnt","getGroupedPositions","reduce","obj","Map","acc","reserveToken","bnt","bntUSDPrice","usdPrice","BigNumber","poolId","groupId","filtered","pos","item","get","calcSum","sum","current","toString","sumFees","sumInitalStakeTkn","sumInitalStakeUSD","sumRoi","div","positionId","fees","initialStake","usdAmount","tknAmount","protectedAmount","claimableAmount","roi","reserveRewards","rewardsAmount","times","aprs","timestamps","currentCoveragePercent","rewardsMultiplier","subRows","set","getStakeSummary","protectedValue","claimableValue","store","configureStore","useAppSelector","useSelector","SwapSwitch","dispatch","useDispatch","isEnabled","switchStyles","switchToggleStyles","coinIconStyles","dollarIconStyles","className","checked","onChange","SwapHeader","isLimit","setIsLimit","marketActive","limitActive","onClick","InputField","setInput","placeholder","format","bgGrey","borderGrey","onBlur","dataCy","customClass","inputFieldStyles","value","event","getWelcomeData","network","Mainnet","Ropsten","Error","axios","data","converter_dlt_id","utils","getAddress","swaps","swap","account_dlt_id","source_token_dlt_id","target_token_dlt_id","dlt_id","console","error","switchMapIgnoreThrow","switchMapProm","pipe","switchMap","whatever","calcReserve","from","to","fee","minus","expandToken","amount","trimmed","toFixed","pow","shrinkToken","chopZeros","bigNumAmount","isEqualTo","ROUND_DOWN","calculatePercentageChange","numberNow","numberBefore","reduceBySlippage","slippage","bigNumValue","bigNumSlippage","one","ethToken","zeroAddress","wethToken","ropstenImage","changeGas","gasEstimation","buildWethToken","apiTokens","eth","usd","rate","rate_24h_ago","rates_7d","getNetworkVariables","ethNetwork","contractRegistry","bntToken","govToken","converterContractForMaths","governanceContractAddress","etherscanUrl","ropstenTokenEmptyProps","chainId","usd_24h_ago","price_change_24","price_history_7d","time","usd_volume_24","ropstenTokens","buildAlchemyUrl","wss","net","process","RPC_URLS","injected","InjectedConnector","supportedChainIds","gnosisSafe","SafeAppConnector","walletconnect","WalletConnectConnector","rpc","qrcode","walletlink","WalletLinkConnector","appName","frame","FrameConnector","fortmatic","FortmaticConnector","apiKey","portis","PortisConnector","dAppId","networks","torus","TorusConnector","web3","provider","providers","WebSocketProvider","writeWeb3","signer","ethereum","Web3Provider","getSigner","setSigner","currentNetworkReceiver$","BehaviorSubject","currentNetwork$","distinctUntilChanged","shareReplay","setNetwork","take","toPromise","currentChain","next","networkVars$","_abi","constant","inputs","outputs","payable","stateMutability","anonymous","indexed","BancorNetwork__factory","Interface","signerOrProvider","Contract","abi","ContractRegistry__factory","internalType","Converter__factory","ConverterRegistry__factory","components","ExchangeProxy__factory","Governance__factory","LiquidityProtection__factory","LiquidityProtectionSettings__factory","LiquidityProtectionStore__factory","LiquidityProtectionSystemStore__factory","Multicall__factory","StakingRewards__factory","Token__factory","Weth__factory","multicall","calls","blockHeight","multicallContract","connect","encoded","contractAddress","toLocaleLowerCase","callData","interface","encodeFunctionData","methodName","methodParameters","tryAggregate","blockTag","encodedRes","decodeFunctionResult","returnData","zeroXContracts$","currentNetwork","getContractAddressesForChainOrThrow","exchangeProxy$","pluck","contractAddresses$","networkVariables","fetchContractAddresses","contract","buildAddressCall","addresses","BancorNetwork","BancorConverterRegistry","LiquidityProtectionStore","LiquidityProtection","StakingRewards","registry","formatBytes32String","bancorNetwork$","liquidityProtection$","bancorConverterRegistry$","stakingRewards$","liquidityProtectionStore$","liquidityProtection","settingsContractAddress$","settings","systemStoreAddress$","systemStore","secondsToMilliseconds","seconds","fifteenSeconds$","timer","userReceiver$","balancesReceiver$","positionsReceiver$","rewardsReceiver$","lockedBntReceiver$","user$","loadingBalances$","loading","loadingPositions$","loadingRewards$","loadingLockedBnt$","fetchTokenBalances","partition","tokensNoETH","buildTokenBalanceCall","fetchETH","tokenBalances","ethBalance","balances","bn","ethIndex","buildTokenTotalSupplyCall","getBalance","apiData$","combineLatest","networkVersion","trueAnchors$","share","converterRegistry","getAnchors","anchorAndConverters$","anchorAddresses","converterRegistryAddress","getConvertersByAnchors","converters","anchorsAndConverters","zipAnchorAndConverters","startWith","apiPools$","partialPoolTokens$","anchorAndConverters","anchorAddress","partialPTokens","anchorConverter","anchor","converter","converterAddress","total","totalSupply","correctedPools$","conditioner","updater","correctAnchor","element","converterAddresses","zip","extend","duration","ConversionEvents","depositWeth","tokenContract","wei","deposit","tx","hash","withdrawWeth","withdraw","pending","updatedInfo","successTitle","successMsg","errorTitle","errorMsg","code","DeniedTx","createOrder","fromToken","toToken","expiry","fromAmountWei","toAmountWei","salt","hexlify","randomBytes","getOrderDetails","orderDetails","order","maker","toLowerCase","taker","NULL_ADDRESS","makerAmount","makerToken","takerAmount","takerToken","txOrigin","_signTypedData","domain","verifyingContract","types","signature","splittedSign","splitSignature","jsonOrder","r","s","signatureType","EIP712","sendOrders","exchangeProxyAddress","version","RfqOrder","oneMillion","ppmToDec","ppm","decToPpm","dec","prettifyNumber","num","bigNum","lte","lt","gt","numeral","Math","floor","gte","formatDuration","sentence","days","minutes","hours","formatTime","withDays","getNetworkName","calculateBntNeededToOpenSpace","bntBalance","tknBalance","networkTokensMinted","networkTokenMintingLimits","plus","calculatePriceDeviationTooHigh","averageRate","primaryReserveBalance","secondaryReserveBalance","averageRateMaxDeviation","spotRate","dividedBy","averageRateMaxDeviationBase","threshold","withinLowerThreshold","isGreaterThan","withinHigherThreshold","calculateProgressLevel","startTimeSeconds","endTimeSeconds","totalWaitingTime","calcUsdPrice","price","IS_IN_IFRAME","self","top","findPoolByConverter","apiPools","poolExists","init","w","l","getTime","f","getElementsByTagName","j","createElement","dl","async","src","parentNode","insertBefore","sendGTM","dataLayer","WalletEvents","conversionTxt","click","approvePop","approved","wallet_req","wallet_confirm","fail","sendConversionEvent","event_properties","user_properties","ga_event","category","OrderStatus","walletTxt","popup","sendWalletEvent","walletEvent","wallet","wallet_id","wallet_name","sendInsight","page","swap_insights","sendGTMPath","from_path","to_path","theme","currency","baseUrl","swapLimit","checkApproval","fromIsEth","asSeconds","conversion_market_token_rate","transaction_category","message","result","fetchKeeperDaoTokens","getOrders","currentUser","transformResponse","JSONbig","orderResToLimit","orders","metaData","Cancelled","tokens$","payToken","getToken","payAmount","getAmount","orderHash","expiration","filled","filledAmount_takerToken","remainingFillableAmount_takerToken","orderRes","rfqOrder","post","cancelOrders","stringOrders","limitOrder","orderToStringOrder","cancelRfqOrder","batchCancelRfqOrders","String","getRateAndPriceImapct","networkContractAddress","conversionPath","path","rateShape","calculateSpotPriceAndRate","priceImpactNum","spotPrice","priceImpact","isNaN","toNumber","getRate","rateByPath","calculateMinimumReturn","expectedWei","fromAmount","toAmount","onHash","onCompleted","rejected","failed","fromWei","expectedToWei","findPath","convertByPath","findPoolByToken","fromShape","buildTokenPoolCall","toShape","mCall","fromPool","fromShape1","bntShape1","toPool","bntShape2","toShape2","spot1","spot2","tokenAddress","tkn","apiData","apiTokens$","listOfLists","uri","userPreferredListIds$","tokenLists$","getLogoByURI","tokenListMerged$","userPreferredListIds","filteredTokenLists","some","merged","flatMap","uniqBy","tokensNoBalance$","tokenList","newApiTokens","price_24h","priceChanged","usdVolume24","volume_24h","seven_days_ago","getUTCSeconds","overlappingTokens","apiToken","getEthToken","forEach","found","userToken","getTokenLogoURI","tokensNoBalance","updatedTokens","sort","keeperDaoTokens$","buildIpfsUri","ipfsHash","startsWith","minNetworkTokenLiquidityForMinting$","liquidityProtectionSettingsContract","minNetworkTokenLiquidityForMinting","pools$","minMintingBalance","tokensMap","newPools","fees_24h","reserveTokenOne","reserveTokenTwo","bntReserve","sortBy","o","supply","poolTokens$","partialPoolTokens","poolToken","percent","tknBalanceWei","bntBalanceWei","bntAmount","poolDecimals","SvgTimes","SvgChevronRight","stroke","strokeLinecap","strokeLinejoin","strokeWidth","Modal","children","separator","titleElement","setIsOpen","isOpen","showBackButton","onBackClick","onClose","large","appear","as","Fragment","Child","enter","enterFrom","enterTo","leave","leaveFrom","leaveTo","Overlay","Title","SvgBancor","fillRule","clipRule","LayoutHeaderMobile","ModalFullscreen","showHeader","Image","alt","lazy","useState","loaded","setLoaded","onLoad","SvgEdit","SearchableTokenListLayout","manage","setManage","isMobile","SearchableTokenList","excludedTokens","includedTokens","limit","search","setSearch","setUserLists","tokensLists","isSelected","listId","newUserPreferredListIds","includes","handleTokenlistClick","SvgChevronDown","TokenInputField","label","border","selectable","setToken","amountUsd","setAmountUsd","disabled","debounce","startEmpty","usdSlippage","fieldBalance","isLoading","balanceLabel","balanceUsd","toggle","onInputChange","text","tokenAmount","inputValue","reducedBalance","reducedUsdBalance","setMaxAmount","prefix","convertedAmount","inputMode","TooltipPanel","targetRef","placement","popperRef","useRef","arrowRef","setArrowRef","isVisible","setVisible","usePopper","modifiers","options","offset","styles","attributes","handleClickOutside","useCallback","e","contains","useEffect","onclick","onmouseenter","onmouseleave","addEventListener","removeEventListener","style","popper","arrow","transform","SvgInfoSolid","opacity","_path2","Tooltip","content","button","buttonRef","useDebounce","interval","setState","setDebouncedState","_val","debouncer","useMemo","_prop","SvgSync","strokeMiterlimit","NULL_APPROVAL_CONTRACTS","getApproval","spender","amountWei","allowanceWei","isApprovalRequired","allowance","setApproval","resolveImmediately","amountFinal","approve","getNetworkContractApproval","BANCOR_NETWORK","USER","setNetworkContractApproval","SvgLock","ModalApprove","handleApproved","waitForApproval","conversion_unlimited","getTransactionReceipt","useInterval","callback","delay","leading","savedCallback","tick","setInterval","clearInterval","showNotification","rejectNotification","stakeNotification","unstakeNotification","stakeFailedNotification","unstakeFailedNotification","swapNotification","swapFailedNotification","poolExistNotification","poolCreateNotification","ownershipNotification","setFeeNotification","poolFailedNotification","claimRewardsNotification","stakeRewardsFailedNotification","claimRewardsFailedNotification","withdrawProtectedPosition","withdrawProtectedPositionFailed","addLiquiditySingleNotification","addLiquiditySingleFailedNotification","addLiquidityNotification","amountTkn","amountBnt","addLiquidityFailedNotification","SwapMarket","setFromToken","setToToken","switchTokens","useWeb3React","account","setFromAmount","fromDebounce","setFromDebounce","setToAmount","toAmountUsd","setToAmountUsd","fromAmountUsd","setFromAmountUsd","setRate","setPriceImpact","fromError","setFromError","showModal","setShowModal","rateToggle","setRateToggle","isLoadingRate","setIsLoadingRate","fiatToggle","loadRateAndPriceImapct","showAnimation","useAsyncEffect","isMounted","parseFloat","handleSwap","onConfirmation","isInsufficient","difference","percentage","conversion_type","conversion_blockchain_network","conversion_settings","conversion_token_pair","conversion_from_token","conversion_to_token","conversion_from_amount","conversion_from_amount_usd","conversion_to_amount","conversion_to_amount_usd","conversion_input_type","conversion_rate","eq","swapButtonText","SvgCheck","focusable","role","Dropdown","items","selected","setSelected","openUp","Button","Options","Option","active","SvgClockSolid","ModalDuration","setDuration","setDays","setHours","setMinutes","daysItems","Array","_","hoursItems","minutesItems","SvgDeposit","Field","ModalDepositETH","onConfirm","SwapLimit","marketRate","setMarketRate","setPercentage","selPercentage","setSelPercentage","showApproveModal","setShowApproveModal","showEthModal","setShowEthModal","rateWarning","setRateWarning","approveContract","previousField","lastChangedField","percentages","fetchMarketRate","calculatePercentageByRate","calcFrom","calcTo","calcRate","handleFieldChanged","field","isTooHigh","isTooLow","calculateRateByMarket","setLoading","updateETHandWETH","weth","showETHtoWETHModal","slip","percNum","sel","conversion_rate_percentage","conversion_experation","Speedometer","summary","rotation","score","gradientColour","titleColour","cx","cy","strokeDasharray","strokeDashoffset","x1","y1","x2","y2","gradientTransform","stopColor","stopOpacity","bullish","bearish","toPairs","pick","neutral","linePercentages","count","linePercentage","decPercent","color","LinePercentage","showEmpty","InsightCard","tooltip","InsightRow","cards","inOutOfTheMoney","in","between","out","concentration","byTimeHeldComposition","cruiser","trader","hodler","card","SvgLightbulb","SvgIntotheblock","Insight","fromTokenIntoBlock","toTokenIntoBlock","initialValue","storedValue","setStoredValue","valueToStore","Function","useLocalStorage","isExpanded","setIsExpanded","setShow","onTransitionEnd","href","rel","defaults","headers","common","calculateTimeHeld","timeHeld","sumTimeHeld","calculateInOut","inOut","sumInOut","intoTheBlockByToken","signal","overview","pushSwapParams","history","trim","location","replaceFrom","toAddress","replaceTo","SwapWidget","ethOrFirst","fromTokenITB","setFromTokenITB","toTokenITB","setToTokenITB","useHistory","replaceLimit","SvgSearch","_path3","SearchInput","setValue","TablePagination","gotoPage","previousPage","canPreviousPage","nextPage","canNextPage","pageCount","pageOptions","setPageSize","pageIndex","pageSize","SvgInfo","TableHeader","headerGroups","columns","getColumn","idToColumn","col","hg","getHeaderProps","getStyleAttr","column","getSortByToggleProps","minWidth","maxWidth","getTooltip","headerGroup","getHeaderGroupProps","isSorted","isSortedDesc","headerClassName","render","TableBody","getTableBodyProps","prepareRow","row","getRowProps","cells","cell","getCellProps","DataTable","defaultSort","stickyColumn","useTable","autoResetSortBy","disableSortRemove","autoResetPage","autoResetExpanded","useSortBy","useExpanded","usePagination","getTableProps","SwapLimitTable","setOrders","setWeth","refreshOrders","handleWithdrawWeth","handleCancelOrders","Header","accessor","Cell","sortDescFirst","original","cellData","disableSortBy","desc","useQuery","URLSearchParams","useLocation","Swap","query","NotFound","UnsupportedNetwork","Ticker","speedMs","pause","setPause","setPos","scrollBack","setScrollBack","isMomentumScrolling","setIsMomentumScrolling","getElementById","scrollWidth","clientWidth","scrollPosition","scrollLeft","nextPosition","handleScroll","unpauseOnMomentumEnd","scrollStart","scrollPos","onMouseEnter","onMouseLeave","onTouchStart","onTouchEnd","TopMovers","topTokens","changePositive","handleClick","seriesOptDefault","lineWidth","crosshairMarkerVisible","priceLineVisible","chartOptDefault","layout","backgroundColor","crosshair","vertLine","visible","horzLine","leftPriceScale","borderVisible","rightPriceScale","timeScale","grid","horzLines","vertLines","handleScale","sizeDefault","LineChartSimple","seriesOptions","chartOptions","size","chartDiv","createRef","chart","createChart","applyOptions","fitContent","addLineSeries","setData","SvgProtected","_circle","_mask","TokenTable","searchInput","setSearchInput","Tokens","TopPools","CountdownTimer","date","msgEnded","countdown","setCountdown","timerEnded","SvgClock","mask","SvgPlusCircle","createPool","noPool","onAccept","onFee","regContract","weights","getLiquidityPoolByConfig","Traditional","newConverter","logs","acceptOwnership","ownerShip","setConversionFee","conversionFee","addLiquidity","tknWei","bntWei","estimateGas","estimate","gasLimit","removeLiquidity","minBntReturn","minTknReturn","addLiquiditySingle","first","liquidityProtectionContract","checkPriceDeviationTooHigh","selectedTkn","converterContract","settingsAddress","settingsContract","primaryReserveAddress","secondaryReserveAddress","recentAverageRate","reserveBalance","getSpaceAvailable","tknDecimals","poolAvailableSpace","fetchBntNeededToOpenSpace","systemStoreAddress","systemStoreContract","fetchReserveBalances","bntNeeded","getConnectorBalance","buildRemoveLiquidityReturnCall","portion","removeTimestamp","buildProtectionDelayCall","buildCall","SelectToken","showSelectToken","setSelectToken","ModalCreatePool","setBNT","setFee","confirm","networkVars","errorText","numFee","isCreateDisabled","PoolsTable","aprOne","aprTwo","ends_at","reward","PoolsTableCellRewards","sortType","values","symbolOne","symbolTwo","formatApr","PoolsTableCellApr","tknAddress","PoolsTableCellActions","SvgArrow","Statistics","stats","change24h","Pools","MyStake","SelectPoolModalContent","onSelect","SelectPoolModal","handleOnSelect","StakeRewardsBtn","buttonClass","buttonLabel","posGroupId","isModalOpen","setIsModalOpen","MyRewards","totalRewardsUsd","totalRewards","claimableRewardsUsd","pendingRewards","useMyRewards","claimableRewards","ProtectedPositionTableCellAmount","SvgWithdraw","TokenInputPercentage","setAmount","amountUSD","setAmountUSD","WithdrawLiquidityInfo","protectionNotReached","multiplierWillReset","stakeRewards","stakePoolLevelRewards","reserveId","newPoolId","stakeReserveRewards","claimRewards","fetchTotalClaimedRewards","totalClaimedRewards","fetchPendingRewards","fetchedRewardsMultiplier","positions","position","buildRewardsMultiplierCall","fetchedPendingRewards","buildPnedingRewardsCall","fetchPositions","protectedLiquidityIds","positionIds","buildProtectedPositionCall","reserveTokenAddress","reserve","owner","poolAmount","reserveAmount","reserveRateN","reserveRateD","protectionId","fetchROI","timeNow","timeNowUnix","fullWaitTimeUnix","flat","currentTargetAmount","fullTargetAmount","roiDec","fetchProtectedPositions","liquidityProtectionSettingsContractAddress","liquidityProtectionStoreContractAddress","liquidityProtectionStoreContract","liquidityProtectionContractAddress","rawPositions","protectionDelay","minProtectionDelay","maxProtectionDelay","positionsRoi","merge","keyBy","final","initalStake","insuranceStart","fullCoverage","day","week","withdrawProtection","getWithdrawBreakdown","constract","removeLiquidityReturn","expectedAmount","actualAmount","useApproveModal","onComplete","tokenIndex","setTokenIndex","setIsLoading","awaitConfirmation","receipts","receipt","checkNextToken","nextIndex","checkApprovalRequired","onStart","ModalApproveNew","WithdrawLiquidityWidget","protectedPosition","amountDebounce","setAmountebounce","isPriceDeviationToHigh","setIsPriceDeviationToHigh","breakdown","setBreakdown","gov","withdrawingBNT","emtpyAmount","tokenInsufficent","withdrawDisabled","showVBNTWarning","govTokenBalance","handleWithdraw","getDefaultExpandedContent","getDefaultCollapsedContent","getDefaultCannotExpandContent","TableCellExpander","canExpandMultiple","getExpandedContent","getCollapsedContent","getCannotExpandContent","canExpand","toggleRowExpanded","toggleAllRowsExpanded","useProtectedPositions","groupedPositions","isGroup","ProtectedPositionTableCellLiquidity","ProtectedPositionTableCellClaimable","hasRewards","isSubRow","ProtectedPositionTableCellFees","ProtectedPositionTableCellRoi","canStakeRewards","ProtectedPositionTableCellActions","ProtectedPositionsTable","fetchLockedAvailableBalances","storeAddress","lockedBalanceCount","lockedBalanceRange","lockedBalances","bnts","expirys","isBefore","totalAvailable","prev","claimBnt","claimBalance","ClaimAvailable","availableBNT","noBntToClaim","claimBntNotification","SvgLocked","ClaimLocked","lockedBNT","noBntLocked","lock","PoolTokensCellActions","removeLiquidityNotification","removeLiquidityNotificationFailed","TokensOverlap","PoolTokensTable","PoolTokens","Portfolio","selectedTab","setSelectedTab","SvgLink","Operations","DepositMethods","getStakedAmount","govContract","votesOf","stakeAmount","expandedAmount","stake","unstakeAmount","unstake","getUnstakeTimer","voteLocks","locks","ModalVbnt","stakeBalance","stakeDisabled","fieldBlance","handleStakeUnstake","refreshBalances","checkApprove","VoteCard","step","footer","Vote","setGovToken","setStakeAmount","unstakeTime","setUnstakeTime","stakeModal","setStakeModal","isStake","setIsStake","refresh","unstakeTimer","stakedAmount","_path4","_path5","_path6","_path7","_path8","_path9","FiatBox","fiat","fiatIn","operations","fiatOut","logo","buyUrl","sellUrl","smallGap","depositMethods","method","SvgMoonpay","_defs","SvgBanxa","gradientUnits","SvgSimplex","_g","SvgRamp","clipPath","_path10","_path11","_path12","_path13","_path14","_path15","_path16","SvgMercuryo","fiats","moonPayLogo","wire","creditCard","debitCard","samsungPay","googlePay","applePay","banxaLogo","ideal","interac","sepa","simplexLogo","rampLogo","openBanking","sepaInstant","fasterPayments","mercuryoLogo","Fiat","DropdownTransition","SvgBell","relativeTime","updateLocale","future","past","m","mm","h","hh","dd","M","MM","y","yy","NotificationContent","onRemove","isAlert","isHovering","setIsHovering","clearTimeout","StatusIcon","fromNow","NotificationsMenu","checkStatus","n","Panel","static","SvgCog","SvgSun","SvgMoon","MenuSecondaryItem","icon","SettingsMenu","showSettings","setShowSettings","customSlippage","setCustomSlippage","currentSlippage","onFocus","exact","strict","subMenu","SvgHamburger","SUPPORTED_WALLETS","connector","metamaskLogo","mobile","walletConnectLogo","coinbaseWalletLogo","ledgerLogo","trezorLogo","gnosisSafeLogo","fortmaticLogo","portisLogo","torusLogo","WalletConnectModalList","handleConnect","WalletConnectModalPending","selectedWallet","WalletConnectModalError","showMetaMaskMobileError","WalletConnectModal","isPending","isError","SvgWallet","WalletConnectButton","handleWalletButtonClick","buttonText","string","toLength","startEndLength","start","end","shortenString","SvgBancorv3Mobile","MarketingBannerMobile","handleCloseBanner","LayoutHeader","isMinimized","setIsSidebarOpen","activate","deactivate","setIsPending","setIsError","setSelectedWallet","handleOpenModal","walletConnectProvider","wc","getProvider","getAccount","handleDisconnect","isMetaMaskMobile","isMetaMask","useWalletConnect","useAutoConnect","triedAutoLogin","setTriedAutoLogin","isSafeApp","then","loadedInSafe","auto","getAutoLoginLS","isAuthorized","NotificationAlert","NotificationAlerts","hide","SvgEarn","SvgVote","_rect","_rect2","_line","_line2","SvgFiat","rx","MenuPrimaryItemSub","pathname","activeClassName","MenuPrimaryItem","isActive","subItem","menu","MenuPrimary","activeNav","setActiveNav","prevLocation","usePrevious","sub","scrollTo","SvgBancorText","SidebarHeader","setIsMinimized","SvgCommunity","SvgDevelopers","SvgBancoranalytics","SvgTwitter","SvgReddit","SvgTelegram","SvgDiscord","SvgDocument","SvgGithub","MenuSecondaryItemSub","MenuSecondary","timeout","indexMobile","setIndexMobile","indexDesktop","setIndexDesktop","openPopover","closePopover","openMobileMenu","SidebarFooter","Sidebar","Slideover","Root","statistics$","averageFormat","average","mantissa","optionalMantissa","spaceSeparated","lowPrecision","bnt24hChange","bnt_price","bnt_price_24h_ago","liquidity24hChange","total_liquidity","total_liquidity_24h_ago","volume24hChange","total_volume_24h","total_volume_24h_ago","bntSupply","bnt_supply","stakedBntPercent","toExponential","numbro","bntPrice$","protectedPositions$","rewards$","claimedRewards","lockedAvailableBnt$","lockedAvailableBalances","Widget","subtitle","goBackRoute","RewardsClaimAmount","RewardsClaimInfo","useRewardsClaim","setClaimableRewards","errorBalance","setErrorBalance","setBntAmount","bntAmountUsd","setBntAmountUsd","fetchClaimableRewards","RewardsClaimCTA","handleClaim","RewardsClaim","WidgetLoading","SelectPool","RewardsStakeCTA","isBusy","setIsBusy","stakeRewardsNotification","btn","variant","RewardsStakeSpaceAvailable","spaceAvailable","setSpaceAvailable","fetchData","RewardsStakeWidget","WidgetError","RewardsStake","match","params","AddLiquiditySingleInfoBox","AddLiquiditySingleSelectPool","AddLiquiditySingleSpaceAvailable","selectedToken","setSelectedToken","spaceAvailableBnt","setSpaceAvailableBnt","spaceAvailableTkn","setSpaceAvailableTkn","showPriceDeviationWarning","setShowPriceDeviationWarning","setBntNeeded","AddLiquiditySingleAmount","setErrorMsg","AddLiquiditySingleCTA","AddLiquiditySingle","isBNTSelected","setIsBNTSelected","isBNT","addProtection","cleanAmount","handleError","AddLiquidityDualStakeAmount","setTknAmount","bntTknRate","errorBalanceBnt","setErrorBalanceBnt","errorBalanceTkn","setErrorBalanceTkn","tknAmountUsd","setTknAmountUsd","onBntAmountChange","onTknAmountChange","AddLiquidityEmptyCTA","handleAddLiquidity","cleanTkn","cleanBnt","AddLiquidityDualTokenPrices","AddLiquidityDual","reserveBalances","tknReserve","tknWithUsd","AddLiquidityEmptyStep1","tknUsdPrice","setTknUsdPrice","AddLiquidityEmptyStep2","tknWithPrice","AddLiquidityEmpty","AddLiquidity","React","memo","isCheckingType","setIsCheckingType","setType","setReserveBalances","checkType","isPoolEmpty","html","TermsOfUse","dangerouslySetInnerHTML","__html","subcontent","PrivacyPolicy","SvgBancorv3","SvgDiscoverDefiSlogan","MarketingBanner","preventDefault","App","unsupportedNetwork","isSidebarMinimized","setIsSidebarMinimized","isSidebarOpen","getUsdToggleLS","notify","getNotificationsLS","UserState","getSlippageToleranceLS","subscribe","twoLists","lockedAvailableBnt","subscribeToObservables","dark","getDarkModeLS","userAddress","class","component","reportWebVitals","onPerfEntry","getCLS","getFID","getFCP","getLCP","getTTFB","locales","en","he","I18nProvider","messages","defaultLocale","ReactDOM","getLibrary","library","parseInt","pollingInterval"],"mappings":"kjCAAIA,E,gGCaSC,EAAqB,SAACC,GAGjC,OAAOC,OAAOC,QAAQF,GACnBG,QAAO,mCAAEC,EAAF,KAAKC,EAAL,YAAYD,GAAKC,KACxBC,KAAI,SAACC,GAAD,OAAOA,EAAE,MACbC,KAAK,MAGGC,EAAsB,SACjCC,EACAC,GAEA,IAAMC,EAAYF,EACfG,QAAQ,IAAK,KACbA,QAAQ,UAAW,IACnBA,QAAQ,KAAM,KACdA,QAAQ,MAAO,IACfA,QAAQ,IAAK,KAChB,IAAKF,EAAW,OAAOC,EACvB,MAA4BA,EAAUE,MAAM,KAA5C,mBAAOC,EAAP,KAAgBC,EAAhB,KACA,OAAIA,EAAgB,GAAN,OAAUD,EAAV,YAAqBC,EAASC,UAAU,EAAGN,IAC7CC,GASDM,EAAe,uCAAG,WAC7BR,EACAS,GAF6B,iBAAAC,EAAA,6DAIvBC,EAAe,eAJQ,SAKXC,QAAQC,IACxBb,EAAMJ,KAAI,SAACkB,EAAKC,GAAN,OAAgBN,EAASK,EAAKC,GAAOC,OAAM,kBAAML,SANhC,cAKvBM,EALuB,yBAQtBA,EAAIxB,QAAO,SAACwB,GAAD,OAASA,IAAQN,MARN,2CAAH,wDAWfO,EAAI,uCAAG,wCAAAR,EAAA,6DAAOS,EAAP,+BAAoB,EAApB,kBAClB,IAAIP,SAAQ,SAACQ,GAAD,OAAaC,WAAWD,EAASD,OAD3B,2CAAH,qDAGJG,EAAc,kBAAM,IAAIC,KAAKA,KAAKC,MAAQ,SAE1CC,EAA6B,SAACf,EAAUgB,GACnD,IAAMC,EAAOC,OAAOF,EAAEG,SAAWD,OAAOlB,EAAEmB,SAC1C,OAAa,IAATF,EAAmBA,EAEhBjB,EAAEoB,OAAOC,cAAcC,cAAcN,EAAEI,OAAOC,gBAG1CE,EAAa,SAACC,GAAD,OACxBC,OAAOC,KAAKF,EAAK,SAAU,a,kBDlEzBG,EAAY,CAAC,QAAS,WAE1B,SAASC,IAA2Q,OAA9PA,EAAW/C,OAAOgD,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcrD,OAAOuD,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,GAAkBF,EAASW,MAAMC,KAAMR,WAEhT,SAASS,EAAyBP,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAa9D,OAAO+D,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxMgB,CAA8BZ,EAAQQ,GAAuB,GAAI7D,OAAOkE,sBAAuB,CAAE,IAAIC,EAAmBnE,OAAOkE,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBtD,OAAOuD,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,SAASoB,EAASC,EAAMC,GACtB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfC,EAAQd,EAAyBU,EAAMxB,GAE3C,OAAoB,gBAAoB,MAAOC,EAAS,CACtD4B,MAAO,OACPC,OAAQ,OACRC,QAAS,YACTC,KAAM,eACNC,MAAO,6BACPC,IAAKT,EACL,kBAAmBE,GAClBC,GAAQF,EAAqB,gBAAoB,QAAS,CAC3DS,GAAIR,GACHD,GAAS,KAAM3E,IAAUA,EAAqB,gBAAoB,OAAQ,CAC3EqF,EAAG,kpIAIP,IEhCI,EFgCAC,EAA0B,aAAiBd,GE9B3C,GF+BW,IE/BC,CAAC,QAAS,YAE1B,SAAS,IAA2Q,OAA9P,EAAWrE,OAAOgD,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcrD,OAAOuD,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,GAAkB,EAASS,MAAMC,KAAMR,WAEhT,SAAS,EAAyBE,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAa9D,OAAO+D,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxM,CAA8BI,EAAQQ,GAAuB,GAAI7D,OAAOkE,sBAAuB,CAAE,IAAIC,EAAmBnE,OAAOkE,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBtD,OAAOuD,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,SAASmC,EAAUd,EAAMC,GACvB,IAAIC,EAAQF,EAAKE,MACbC,EAAUH,EAAKG,QACfC,EAAQ,EAAyBJ,EAAM,GAE3C,OAAoB,gBAAoB,MAAO,EAAS,CACtDK,MAAO,OACPC,OAAQ,OACRC,QAAS,WACTC,KAAM,eACNC,MAAO,6BACPC,IAAKT,EACL,kBAAmBE,GAClBC,GAAQF,EAAqB,gBAAoB,QAAS,CAC3DS,GAAIR,GACHD,GAAS,KAAM,IAAU,EAAqB,gBAAoB,OAAQ,CAC3EU,EAAG,43CAIP,IC7BYG,ED6BR,EAA0B,aAAiBD,G,GAChC,I,cE9BTE,EAAiB,iBACjBC,EAAa,aACbC,EAAY,YACZC,EAAW,WACXC,EAAoB,oBACpBC,EAAY,YACZC,EAAgB,gBAChBC,EAAa,aAENC,EAAiB,WAC5B,IAAMC,EAAOC,aAAaC,QAAQX,GAClC,OAAOS,EAAOG,KAAKC,MAAMJ,GAAQ,IAGtBK,EAAiB,SAACC,GAC7BL,aAAaM,QAAQhB,EAAgBY,KAAKK,UAAUF,KAGzCG,EAAkB,WAC7B,IAAMC,EAAOT,aAAaC,QAAQV,GAClC,GAAIkB,EAAM,OAAOP,KAAKC,MAAMM,IAGjBC,EAAkB,SAACD,GAC9BT,aAAaM,QAAQf,EAAYW,KAAKK,UAAUE,KAQrCE,EAAiB,SAACC,GAC7BZ,aAAaM,QAAQd,EAAWU,KAAKK,UAAUK,KCjBpCC,EAA0B,CACrCpB,UAAU,EACVqB,aAAa,EACbpB,kBAAmB,KACnBC,WAAW,EACXoB,OAAQ,KACRC,iBAAiB,EACjBnB,YAAkC,IDmDL,WAC7B,IAAMoB,EAAOjB,aAAaC,QAAQJ,GAClC,OAAOoB,EAAOf,KAAKC,MAAMc,QAAQC,ECrDrBC,IAGRC,EAAYC,YAAY,CAC5BC,KAAM,OACNT,eACAU,SAAU,CACRC,YAAa,SAACC,EAAOC,GACnBD,EAAMhC,SAAWiC,EAAOC,QAExB,IDQwBf,ECRlBgB,EAAOhF,OAAOiF,SAASC,gBACzBJ,EAAOC,QAASC,EAAKG,UAAUC,IAAI,QAClCJ,EAAKG,UAAUE,OAAO,QDMHrB,ECJVc,EAAOC,QDKzB3B,aAAaM,QAAQb,EAAUS,KAAKK,UAAUK,KCH5CsB,qBAAsB,SAACT,EAAOC,GDaI,IAACd,ICZVc,EAAOC,QDalC3B,aAAaM,QAAQZ,EAAmBQ,KAAKK,UAAUK,ICZnDa,EAAM/B,kBAAoBgC,EAAOC,SAEnCQ,UAAW,SAACV,EAAOC,GACjBD,EAAMV,OAASW,EAAOC,SAExBS,gBAAiB,SAACX,EAAOC,GACvBD,EAAMX,YAAcY,EAAOC,SAE7BU,aAAc,SAACZ,EAAOC,GDYI,IAACd,ICXVc,EAAOC,QDY1B3B,aAAaM,QAAQX,EAAWO,KAAKK,UAAUK,ICX3Ca,EAAM9B,UAAY+B,EAAOC,SAE3BW,mBAAoB,SAACb,EAAOC,GAC1BD,EAAMT,gBAAkBU,EAAOC,SAEjCY,cAAe,SAACd,EAAOC,GDuBI,IAACd,ICtBVc,EAAOC,QDuB3B3B,aAAaM,QAAQT,EAAYK,KAAKK,UAAUK,ICtB5Ca,EAAM5B,WAAa6B,EAAOC,YAKzB,EAQHP,EAAUoB,QAPZhB,EADK,EACLA,YACAU,GAFK,EAELA,qBAEAE,IAJK,EAGLD,UAHK,EAILC,iBACAC,GALK,EAKLA,aACAC,GANK,EAMLA,mBACAC,GAPK,EAOLA,cAGWE,GAAOrB,EAAUsB,Q,UCvDxBC,GAActB,YAAY,CAC9BC,KAAM,SACNT,aAVuC,CACvC+B,WAAY,GACZC,OAAQ,GACRC,gBAAiB,GACjBC,UAAW,GACXC,SAAU,MAMVzB,SAAU,CACR0B,cAAe,SAACxB,EAAOC,GACrBD,EAAMmB,WAAalB,EAAOC,SAE5BuB,aAAc,SAACzB,EAAOC,GACpBD,EAAMoB,OAASnB,EAAOC,SAExBwB,aAAc,SAAC1B,EAAOC,GACpBD,EAAMsB,UAAYrB,EAAOC,SAE3ByB,aAAc,SAAC3B,EAAOC,GACpB,IAAM2B,EAAgB3B,EAAOC,QAC7BF,EAAMoB,OAASpB,EAAMoB,OAAOxI,KAC1B,SAACiJ,GAAD,OACED,EAAcE,MACZ,SAACC,GAAD,OAAkBA,EAAaC,UAAYH,EAAMG,YAC9CH,MAGXI,mBAAoB,SAACjC,EAAOC,GAC1BD,EAAMqB,gBAAkBpB,EAAOC,SAEjCgC,YAAa,SAAClC,EAAOC,GACnBD,EAAMuB,SAAWtB,EAAOC,YAKvB,GAOHgB,GAAYH,QANdS,GADK,GACLA,cACAC,GAFK,GAELA,aACAC,GAHK,GAGLA,aACAO,GAJK,GAILA,mBACAN,GALK,GAKLA,aACAO,GANK,GAMLA,YAGWC,GAAe,SAAC3E,GAAD,OAC1B4E,cACE,SAACpC,GAAD,OAAsBA,EAAMqC,OAAOjB,UACnC,SAACA,GACC,OAAOA,EAAOU,MAAK,SAACQ,GAAD,OAAOA,EAAEN,UAAYxE,SAIjC6E,GAASnB,GAAYD,Q,mBCpD5BsB,GAAY3C,YAAY,CAC5BC,KAAM,OACNT,aAP8B,CAC9BoD,MAAO,GACPC,WAAY,IAMZ3C,SAAU,CACR4C,SAAU,SAAC1C,EAAOC,GAChBD,EAAMwC,MAAQvC,EAAOC,SAEvByC,SAAU,SAAC3C,EAAOC,GAChBD,EAAMyC,WAAaxC,EAAOC,YAYnB0C,GAAWR,cACtB,SAACpC,GAAD,OAAsBA,EAAM6C,KAAKL,SACjC,SAACA,GACC,OAAOM,mBAAQN,EAAO,YAAa,WAI1BO,GAAoBX,cAC/B,SAACpC,GAAD,OAAsBA,EAAM6C,KAAKL,SACjC,SAACA,GACC,IAAMQ,EAAiBR,EAAM/J,QAAO,SAACwK,GAAD,OAAOA,EAAEC,eAC7C,OAAOJ,mBAAQE,EAAgB,YAAa,WAInCG,GAAcf,cACzB,SAACpC,GAAD,OAAsBA,EAAM6C,KAAKL,SACjC,SAACA,GACC,IAAMY,EAAgBZ,EACnB/J,QAAO,SAACwK,GAAD,OAAOA,EAAEI,eAAiBJ,EAAEK,UAAY,OAC/C1K,KAAI,SAACqK,GACJ,MAAO,CACLM,UAAWN,EAAEO,SAAS,GAAG1I,OACzB2I,WAAYR,EAAEO,SAAS,GAAGE,QAC1BC,OAAQV,EAAEW,KAAOX,EAAEO,SAAS,GAAGK,WAAa,GAC5CC,UAAWb,EAAEO,SAAS,GAAG1I,OACzBiJ,WAAYd,EAAEO,SAAS,GAAGE,QAC1BM,OAAQf,EAAEW,KAAOX,EAAEO,SAAS,GAAGK,WAAa,GAC5CI,SAAUhB,EAAEpD,SAGZqE,EAAiBpB,mBAAQM,EAAe,SAAU,QAAQe,MAAM,EAAG,GACnEC,EAAsBhB,EAAcxK,KAAI,SAACqK,GAC7C,MAAO,CACLM,UAAWN,EAAEM,UACbE,WAAYR,EAAEQ,WACdQ,SAAUhB,EAAEgB,SACZL,IAAKX,EAAEU,WAWX,OAR8B,IAA1BO,EAAevI,QACjByI,EAASC,KAAK,CACZd,UAAWW,EAAe,GAAGJ,UAC7BL,WAAYS,EAAe,GAAGH,WAC9BH,IAAKM,EAAe,GAAGF,OACvBC,SAAUC,EAAe,GAAGD,WAGzBnB,mBAAQsB,EAAU,MAAO,QAAQD,MAAM,EAAG,OAS/CG,GAA0BC,aAAsBC,KAAgBC,YAEzDC,GAAc,SAAClH,GAAD,OACzB8G,IACE,SAACtE,GAAD,OAAsBA,EAAM6C,KAAKL,SACjC,SAACA,GACC,OAAqB,IAAjBA,EAAM7G,OACD,CAAEgJ,OAAQ,WAIZ,CAAEA,OAAQ,QAAS9B,KADbL,EAAMV,MAAK,SAACmB,GAAD,OAAOA,EAAE2B,cAAgBpH,UAKhD,GAA+B+E,GAAUxB,QAAjC2B,GAAR,GAAQA,SAAUC,GAAlB,GAAkBA,SAEZE,GAAON,GAAUtB,Q,uCJ5GlBrD,O,eAAAA,I,qBAAAA,I,iBAAAA,I,sBAAAA,M,KAgCL,IKjCKiH,GAKAC,GAMAC,GAIAC,GL+BNC,GAAoBrF,YAAY,CACpCC,KAAM,eACNT,aAf6C,CAC7CjB,cAAe,IAef2B,SAAU,CACRoF,iBAAkB,SAAClF,EAAOC,GACxBD,EAAM7B,cAAgB8B,EAAOC,SAE/BiF,gBAAiB,SAACnF,EAAOC,GACvB,IAjBsB,EAiBPD,EAAM7B,cAAciH,QAApB,cACb5H,GAAI6H,cACJC,KAAM1H,EAAiB2H,KACvBC,UAAWC,OAAQC,OACnBC,aArBoB,EAqBY1F,EAAOC,QArBY,EAA7BoF,OAErB1H,EAAiBgI,QACb,GAEA,IAiBF3F,EAAOC,UAGC,KACXF,EAAM7B,cAAc0H,OAGxBC,mBAAoB,SAAC9F,EAAOC,GAC1B,IAAMlG,EAAQiG,EAAM7B,cAAc4H,WAChC,SAACC,GAAD,OAAkBA,EAAaxI,KAAOyC,EAAOC,WAE3CnG,GAAS,GAAGiG,EAAM7B,cAAc8H,OAAOlM,EAAO,IAEpDmM,UAAW,SAAClG,EAAOC,GACjB,IAAMlG,EAAQiG,EAAM7B,cAAc4H,WAChC,SAACC,GAAD,OAAkBA,EAAaxI,KAAOyC,EAAOC,WAE3CnG,GAAS,IAAGiG,EAAM7B,cAAcpE,GAAO4L,YAAc,IAE3DQ,UAAW,SACTnG,EACAC,GAOA,IAAMlG,EAAQiG,EAAM7B,cAAc4H,WAChC,SAACC,GAAD,OAAkBA,EAAaxI,KAAOyC,EAAOC,QAAQ1C,MAEvD,GAAIzD,GAAS,EAAG,CACd,IAAMqM,EAAkBpG,EAAM7B,cAAcpE,GACtCiM,EAAe,CACnBxI,GAAI4I,EAAgB5I,GACpB8H,KAAMrF,EAAOC,QAAQoF,KACrBvI,MAAOkD,EAAOC,QAAQnD,MAClBkD,EAAOC,QAAQnD,MACfqJ,EAAgBrJ,MACpBsJ,IAAKpG,EAAOC,QAAQmG,IAAMpG,EAAOC,QAAQmG,IAAMD,EAAgBC,IAC/DV,YAAaS,EAAgBT,YAC7BW,OAAQF,EAAgBE,OACxBd,UAAWY,EAAgBZ,WAE7BxF,EAAM7B,cAAcpE,GAASiM,OAM9B,GAMHf,GAAkBlE,QALpBmE,GADK,GACLA,iBACAC,GAFK,GAELA,gBACAW,GAHK,GAGLA,mBACAI,GAJK,GAILA,UACAC,GALK,GAKLA,UAGWH,GAAef,GAAkBhE,Q,mBMlGxC7B,GAA+B,CACnCmH,WAAY,GACZC,mBAAoB,CAClBC,OAAQ,GACRC,UAAW,GAEbC,mBAAoB,GACpBC,aAASnH,EACToH,kBAAkB,EAClBC,gBAAgB,EAChBC,kBAAkB,GAGdC,GAAiBpH,YAAY,CACjCC,KAAM,YACNT,gBACAU,SAAU,CACRmH,cAAe,SAACjH,EAAOC,GACrBD,EAAMuG,WAAatG,EAAOC,SAE5BgH,sBAAuB,SAAClH,EAAOC,GAC7BD,EAAMwG,mBAAqBvG,EAAOC,SAEpCiH,sBAAuB,SAACnH,EAAOC,GAC7BD,EAAM2G,mBAAqB1G,EAAOC,SAEpCkH,WAAY,SAACpH,EAAOC,GAClBD,EAAM4G,QAAU3G,EAAOC,SAEzBmH,oBAAqB,SAACrH,EAAOC,GAC3BD,EAAM6G,iBAAmB5G,EAAOC,SAElCoH,kBAAmB,SAACtH,EAAOC,GACzBD,EAAM8G,eAAiB7G,EAAOC,SAEhCqH,oBAAqB,SAACvH,EAAOC,GAC3BD,EAAM+G,iBAAmB9G,EAAOC,YAKzBsH,GAAsBpF,cACjC,SAACpC,GAAD,OAAsBA,EAAMsD,UAAUqD,sBACtC,SAACA,GACC,OAAOA,EAAmBc,QACtBC,EA0EC,IAAIC,IA1EG,SAACC,EAAiC9N,GAC1C,IAAMgB,EAAShB,EAAI+N,aAAa/M,OAE1BgN,EAAMhO,EAAI+I,KAAKW,SAAS,GACxBuE,EAAcD,EAAIE,SACpB,IAAIC,aAAUH,EAAIE,UAClB,IAAIC,aAAU,GACZC,EAASpO,EAAI+I,KAAK+B,YAClBuD,EAAO,UAAMD,EAAN,YAAgBpN,GACvBsN,EAAWzB,EAAmBlO,QAClC,SAAC4P,GAAD,OACEA,EAAIxF,KAAK+B,cAAgBsD,GACzBG,EAAIR,aAAa/M,SAAWA,KAG5BwN,EAAiCZ,EAAIa,IAAIJ,GAE7C,IAAKG,EAAM,CACT,IAAME,EAAU,SAAC3M,GACf,OAAOuM,EACJxP,KAAI,SAACyP,GAAD,OAASzN,OAAO2N,eAAIF,EAAKxM,OAC7B4L,QAAO,SAACgB,EAAKC,GAAN,OAAkBD,EAAMC,IAAS,GACxCC,YAGCC,EAAUJ,EAAQ,QAClBK,EAAoBL,EAAQ,0BAC5BM,EAAoBN,EAAQ,0BAE5BO,EAAS,IAAId,aAAUW,GAC1BI,IAAIH,GACJF,WAEHL,EAAO,CACLH,QAASA,EACTc,WAAYnP,EAAImP,WAChBpG,KAAM/I,EAAI+I,KACVqG,KAAMN,EACNO,aAAc,CACZC,UAAWN,EACXO,UAAWR,GAEbS,gBAAiB,CACfF,UAAWZ,EAAQ,6BACnBa,UAAWb,EAAQ,8BAErBe,gBAAiB,CACfH,UAAWZ,EAAQ,6BACnBa,UAAWb,EAAQ,8BAErBX,aAAc/N,EAAI+N,aAClB2B,IAAK,CACHN,KAAMH,EACNU,eAAgB,IAAIxB,aAAUnO,EAAI4P,eAC/BC,MAAM5B,GACNiB,IAAIF,GACJH,YAELiB,KAAM9P,EAAI8P,KACVC,WAAY/P,EAAI+P,WAChBC,uBAAwBhQ,EAAIgQ,uBAC5BC,kBAAmBjQ,EAAIiQ,kBACvBL,cAAe5P,EAAI4P,cACnBM,QAAS,IAGXtC,EAAIuC,IAAI9B,EAASG,GACjBV,EAAIvD,KAAKiE,GAMX,OAHIF,EAASzM,OAAS,GACpB2M,EAAK0B,QAAQ3F,KAAKvK,GAEb8N,IAET,IA3EC,IAACF,KA8FKwC,GAAkB9H,cAC7B,SAACpC,GAAD,OAAsBA,EAAMsD,UAAUqD,sBACtC,SAACA,GACC,GAAkC,IAA9BA,EAAmBhL,OAAvB,CAEA,IAAMwN,EAAexC,EAClB/N,KAAI,SAACC,GAAD,OAAO+B,OAAO/B,EAAEsQ,aAAaC,cACjC3B,QAAO,SAACgB,EAAKC,GAAN,OAAkBD,EAAMC,IAAS,GAErCyB,EAAiBxD,EACpB/N,KAAI,SAACC,GAAD,OAAO+B,OAAO/B,EAAEyQ,gBAAgBF,cACpC3B,QAAO,SAACgB,EAAKC,GAAN,OAAkBD,EAAMC,IAAS,GAQ3C,MAAO,CACLyB,iBACAC,eARqBzD,EACpB/N,KAAI,SAACC,GAAD,OAAO+B,OAAO/B,EAAE0Q,gBAAgBH,cACpC3B,QAAO,SAACgB,EAAKC,GAAN,OAAkBD,EAAMC,IAAS,GAOzCQ,KALWiB,EAAiBhB,OAU3B,GAQHnC,GAAejG,QAPjBkG,GADK,GACLA,cACAC,GAFK,GAELA,sBACAC,GAHK,GAGLA,sBACAC,GAJK,GAILA,WACAC,GALK,GAKLA,oBACAC,GANK,GAMLA,kBACAC,GAPK,GAOLA,oBAGWjE,GAAY0D,GAAe/F,QC7L3BoJ,GAAQC,YAAe,CAClCrJ,QAAS,CACPD,QACAgF,gBACA3D,UACAQ,QACAS,gBAQSiH,GAAkDC,I,QCdlDC,GAAa,WACxB,IAAMC,EAAWC,cACXC,EAAYL,IAAwB,SAACvK,GAAD,OAAWA,EAAMgB,KAAK9C,aAK1D2M,EAAY,mCAChBD,EACI,4EACA,6DAGAE,EAAkB,6BACtBF,EAAY,mCAAqC,iBAG7CG,EAAiBH,EACnB,cACA,+BAEEI,EAAmBJ,EACrB,uCACA,mBAEJ,OACE,uBAAKK,UAAU,sCAAf,UACE,eAAC,EAAD,CAAWA,UAAS,+BAA0BF,KAC9C,gBAAC,IAAD,CACEG,QAASN,EACTO,SAAU,WA1BdT,EAAS9J,IA0ByBgK,KAC9BK,UAAWJ,EAHb,UAKE,uBAAMI,UAAU,UAAhB,+BACA,uBAAM,cAAY,OAAOA,UAAWH,OAGtC,eAAC,EAAD,CACEG,UAAS,uCAAkCD,SCrCtCI,GAAa,SAAC,GAA8C,IAA5CC,EAA2C,EAA3CA,QAASC,EAAkC,EAAlCA,WAC9BC,EAAelT,EAAmB,CACtC,sBAAuBgT,IAGnBG,EAAcnT,EAAmB,CACrC,qBAAsBgT,IAGxB,OACE,+BACE,uBAAKJ,UAAU,cAAf,UACE,iCACE,yBAAQA,UAAWM,EAAcE,QAAS,kBAAMH,GAAW,IAA3D,oBAGA,uBAAML,UAAU,QAAhB,eACA,yBAAQA,UAAWO,EAAaC,QAAS,kBAAMH,GAAW,IAA1D,sBAKF,eAAC,GAAD,U,mBCdKI,I,OAAa,SAAC,GAWH,IAVtB1S,EAUqB,EAVrBA,MACA2S,EASqB,EATrBA,SACAC,EAQqB,EARrBA,YACAC,EAOqB,EAPrBA,OACAC,EAMqB,EANrBA,OACAC,EAKqB,EALrBA,WACAZ,EAIqB,EAJrBA,SACAa,EAGqB,EAHrBA,OACAC,EAEqB,EAFrBA,OACAC,EACqB,EADrBA,YAEMC,EAAgB,qCAAiC9T,EAAmB,cACxE,sBAAuByT,EACvB,qBAAsBC,EACtB,aAAcF,GAHyD,UAInEK,GAAgBA,KAGtB,OACE,wBACE5G,KAAK,OACL,UAAS2G,EACTG,MAAOpT,EACP4S,YAAaA,EACbX,UAAWkB,EACXhB,SAAU,SAACkB,GACT,IAAMvS,EAAM+R,EACR9S,EAAoBsT,EAAM7Q,OAAO4Q,OACjCC,EAAM7Q,OAAO4Q,MACjBjB,EAAWA,EAASrR,GAAO6R,GAAYA,EAAS7R,IAElDkS,OAAQ,kBAAMA,GAAUA,S,8GL/ClBnH,O,qBAAAA,I,sBAAAA,Q,cAKAC,O,mBAAAA,I,6BAAAA,I,0BAAAA,Q,cAMAC,O,2BAAAA,Q,cAIAC,O,oBAAAA,Q,mBMoFCsH,GAAc,uCAAG,4CAAA5S,EAAA,0DAC5B6S,EAD4B,+BACL1H,GAAY2H,WAEjB3H,GAAY2H,SAAWD,IAAY1H,GAAY4H,QAHrC,sBAIpB,IAAIC,MAAM,qCAJU,gCAOHC,KAAMpE,IAC3BgE,IAAY1H,GAAY2H,QACpB,wCACA,yDAVoB,uBAOlBI,EAPkB,EAOlBA,KAPkB,+CAarBA,GAbqB,IAcxBL,UACA/J,MAAOoK,EAAKpK,MAAM5J,KAAI,SAACiK,GAAD,oBAAC,gBAClBA,GADiB,IAEpBgK,iBAAkBC,SAAMC,WAAWlK,EAAKgK,kBACxCjI,YAAakI,SAAMC,WAAWlK,EAAK+B,kBAErCoI,MAAOJ,EAAKI,MAAMpU,KAAI,SAACqU,GAAD,oBAAC,gBAClBA,GADiB,IAEpBC,eAAgBJ,SAAMC,WAAWE,EAAKC,gBACtCC,oBAAqBL,SAAMC,WAAWE,EAAKE,qBAC3CC,oBAAqBN,SAAMC,WAAWE,EAAKG,0BAE7ChM,OAAQwL,EAAKxL,OAAOxI,KAAI,SAACiJ,GAAD,oBAAC,gBACpBA,GADmB,IAEtBwL,OAAQP,SAAMC,WAAWlL,EAAMwL,gBA5BT,wCAgC1BC,QAAQC,MAAM,sCAAd,MACM,IAAIb,MAAJ,MAjCoB,0DAAH,qD,8BClGdc,GACX,SAAOC,GAAP,OACA,SAAC7R,GAAD,OACEA,EAAO8R,KACLC,cAAU,SAACC,GAAD,OACRH,EAAcG,GAAU5T,OAAM,iBAAM,mBAEtCvB,cAAO,SAACI,GAAD,QAAsB,kBAANA,GAAwB,eAANA,S,UCPlCgV,GAAc,SAACC,EAAcC,EAAYC,GACpD,OAAO,IAAI/F,KAAU8F,GAClB/E,IAAI,IAAIf,KAAU6F,IAClBnE,MAAM,IAAI1B,KAAU,GAAGgG,MAAMD,KAGrBE,GAAc,SAACC,EAAyBlV,GACnD,IAAMmV,EAAU,IAAInG,KAAUkG,GAAQE,QAAQpV,EAAW,GAIzD,OAHc,IAAIgP,KAAUmG,GACzBzE,MAAM,IAAI1B,KAAU,IAAIqG,IAAIrV,IAC5BoV,QAAQ,IAIAE,GAAc,SACzBJ,EACAlV,GAEI,IADJuV,EACG,wDACGC,EAAe,IAAIxG,KAAUkG,GACnC,GAAIM,EAAaC,UAAU,GAAI,MAAO,IACtC,IAAMzU,EAAMwU,EACTzF,IAAI,IAAIf,KAAU,IAAIqG,IAAIrV,IAC1BoV,QAAQpV,EAAWgP,KAAU0G,YAEhC,OAAOH,EAAY,IAAIvG,KAAUhO,GAAK0O,WAAa1O,GAexC2U,GAA4B,SACvCC,EACAC,GAEA,OAAOlU,QAAyC,KAAhCiU,EAAYC,EAAe,IAAUT,QAAQ,KAGlDU,GAAmB,SAC9B3C,EACA4C,GAEA,IAAMC,EAAc,IAAIhH,KAAUmE,GAC5B8C,EAAiB,IAAIjH,KAAU+G,GAC/BG,EAAM,IAAIlH,KAAU,GAC1B,OAAOgH,EAAYtF,MAAMwF,EAAIlB,MAAMiB,IAAiBvG,YCvCzCyG,GAAmB,6CACnBC,GAAsB,6CACtBC,GAAoB,6CAGpBC,GACX,2DAIWC,GAAY,SAACC,GAAD,OACvB,IAAIxH,aAAUwH,GAAe9F,MAHb,MAG8B0E,QAAQ,IAE3CqB,GAAiB,SAACC,GAC7B,IAAMC,EAAMD,GAAaA,EAAU7N,MAAK,SAACjJ,GAAD,OAAOA,EAAEwU,SAAW+B,MAE5D,MAAO,CACLtU,OAAQ,OACRuS,OAAQiC,GACRhM,UAAWsM,EAAMA,EAAItM,UAAY,CAAEuM,IAAK,MACxCC,KAAMF,EAAMA,EAAIE,KAAO,CAAED,IAAK,MAC9BE,aAAcH,EAAMA,EAAIG,aAAe,CAAEF,IAAK,MAC9CvW,SAAUsW,EAAMA,EAAItW,SAAW,GAC/B0W,SAAUJ,EAAMA,EAAII,SAAW,KAiDtBC,GAAsB,SACjCC,GAEA,OAAQA,GACN,KAAKrL,GAAY2H,QACf,MAAO,CACLD,QAAS1H,GAAY2H,QACrB2D,iBAAkB,6CAClBC,SAAU,6CACVC,SAAU,6CACVC,0BAA2B,6CAC3BC,0BAA2B,6CAC3BC,aAAc,wBAElB,KAAK3L,GAAY4H,QACf,MAAO,CACLF,QAAS1H,GAAY4H,QACrB0D,iBAAkB,6CAClBC,SAAU,6CACVC,SAAU,6CACVC,0BAA2B,6CAC3BC,0BAA2B,6CAC3BC,aAAc,kCAKTJ,GAAW,SAAC7D,GAEvB,OADa0D,GAAoB1D,GACrB6D,UAGRK,GAAyB,CAC7B/M,QAAS6L,GACTmB,QAAS,EACT7V,QAAS,KACTvB,SAAU,GACV0O,SAAU,IACV1E,UAAW,IACXqN,YAAa,IACbC,gBAAiB,EACjBC,iBAAkB,CAAC,CAAEC,KAAM,MAA4B1E,MAAO,IAC9D2E,cAAe,IACf1N,eAAe,GAIJ2N,GAAyB,CAAC,cAEnChP,QAAS,6CACTnC,KAAM,QACN/E,OAAQ,SACL2V,IAL+B,cAQlCzO,QAAS,6CACTnC,KAAM,QACN/E,OAAQ,SACL2V,IAX+B,cAclCzO,QAAS,6CACTnC,KAAM,QACN/E,OAAQ,SACL2V,IAjB+B,cAoBlCzO,QAAS,6CACTnC,KAAM,gBACN/E,OAAQ,WACL2V,IAvB+B,cA0BlCzO,QAAS,6CACTnC,KAAM,aACN/E,OAAQ,QACL2V,K,oGC5JMQ,GAAkB,SAAC1E,GAA+C,IAAzB2E,IAAwB,yDACtEC,EAAMtM,GAAY2H,UAAYD,EAAU,UAAY,UACpD/O,EACJ+O,IAAY1H,GAAY2H,QACnB4E,mCACAA,mCACP,MAAM,GAAN,OAAUF,EAAM,MAAQ,QAAxB,kBAAyCC,EAAzC,6BAAiE3T,IAG7D6T,GAA0C,CAC9C,EAAGJ,GAAgBpM,GAAY2H,SAAS,GACxC,EAAGyE,GAAgBpM,GAAY4H,SAAS,IAK7B6E,GAAW,IAAIC,KAAkB,CAC5CC,kBAAmB,CAAC,EAAG,EAAG,EAAG,EAAG,MAGrBC,GAAa,IAAIC,oBAEjBC,GAAgB,IAAIC,KAAuB,CACtDC,IAAK,CAAE,EAAGR,GAAS,GAAI,EAAGA,GAAS,IACnCS,QAAQ,IAGGC,GAAa,IAAIC,KAAoB,CAChD9W,IAAKmW,GAAS,GACdY,QAfc,WAkBHC,GAAQ,IAAIC,KAAe,CAAEX,kBAAmB,CAAC,KAEjDY,GAAY,IAAIC,KAAmB,CAC9CC,OAAQlB,2BACRV,QAAS,IAGE6B,GAAS,IAAIC,KAAgB,CACxCC,OAAQrB,uCACRsB,SAAU,CAAC,EAAG,OAGHC,GAAQ,IAAIC,KAAe,CACtClC,QAAS,IC/CEmC,GAAO,CAClBC,SAAU,IAAIC,aAAUC,kBACtB/B,GAAgBpM,GAAY2H,WAWnByG,GAAY,CACvBC,OAAQ/X,OAAOgY,SACX,IAAIC,KAAajY,OAAOgY,UAAUE,YAClC,IAAIN,aAAUC,kBACZ/B,GAAgBpM,GAAY2H,UAC5B6G,aAOKC,GAAY,SAACJ,GACxBD,GAAUC,OAASA,GCvBRK,GAA0B,IAAIC,KACzC3O,GAAY2H,SAGDiH,GAAkBF,GAAwB7F,KACrDgG,eACAC,aAAY,IAGDC,GAAU,uCAAG,WAAOlD,GAAP,eAAAhX,EAAA,sEACG6Z,GAAwB7F,KAAKmG,aAAK,IAAIC,YADzC,OAClBC,EADkB,OAGrBrD,IAAY7L,GAAY2H,SAAWkE,IAAY7L,GAAY4H,SAC5DsH,IAAiBrD,IDKOoC,ECHZ,IAAIC,aAAUC,kBAAkB/B,GAAgBP,IDI9DmC,GAAKC,SAAWA,ECHdS,GAAwBS,KAAKtD,IAPP,iCDSC,IAACoC,ICTF,OAAH,sDAWVmB,GAAeR,GAAgB/F,KAC1C9U,aAAIqX,IACJ0D,aAAY,I,2BCzBRO,GAAO,CACX,CACEC,UAAU,EACVC,OAAQ,CACN,CACEvU,KAAM,8BACNyF,KAAM,SAGVzF,KAAM,yBACNwU,QAAS,GACTC,SAAS,EACTC,gBAAiB,aACjBjP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,CACN,CACEvU,KAAM,SACNyF,KAAM,WAER,CACEzF,KAAM,YACNyF,KAAM,SAGVzF,KAAM,qBACNwU,QAAS,GACTC,SAAS,EACTC,gBAAiB,aACjBjP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,CACN,CACEvU,KAAM,QACNyF,KAAM,aAER,CACEzF,KAAM,UACNyF,KAAM,YAGVzF,KAAM,kBACNwU,QAAS,CACP,CACExU,KAAM,GACNyF,KAAM,WAER,CACEzF,KAAM,GACNyF,KAAM,YAGVgP,SAAS,EACTC,gBAAiB,OACjBjP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,CACN,CACEvU,KAAM,QACNyF,KAAM,aAER,CACEzF,KAAM,UACNyF,KAAM,WAER,CACEzF,KAAM,aACNyF,KAAM,WAER,CACEzF,KAAM,eACNyF,KAAM,WAER,CACEzF,KAAM,oBACNyF,KAAM,WAER,CACEzF,KAAM,gBACNyF,KAAM,YAGVzF,KAAM,sBACNwU,QAAS,CACP,CACExU,KAAM,GACNyF,KAAM,YAGVgP,SAAS,EACTC,gBAAiB,aACjBjP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,GACRvU,KAAM,6BACNwU,QAAS,CACP,CACExU,KAAM,GACNyF,KAAM,SAGVgP,SAAS,EACTC,gBAAiB,OACjBjP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,GACRvU,KAAM,iBACNwU,QAAS,GACTC,SAAS,EACTC,gBAAiB,aACjBjP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,CACN,CACEvU,KAAM,QACNyF,KAAM,aAER,CACEzF,KAAM,UACNyF,KAAM,WAER,CACEzF,KAAM,aACNyF,KAAM,WAER,CACEzF,KAAM,oBACNyF,KAAM,WAER,CACEzF,KAAM,gBACNyF,KAAM,YAGVzF,KAAM,WACNwU,QAAS,CACP,CACExU,KAAM,GACNyF,KAAM,YAGVgP,SAAS,EACTC,gBAAiB,UACjBjP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,GACRvU,KAAM,kBACNwU,QAAS,CACP,CACExU,KAAM,GACNyF,KAAM,YAGVgP,SAAS,EACTC,gBAAiB,OACjBjP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,CACN,CACEvU,KAAM,SACNyF,KAAM,WAER,CACEzF,KAAM,MACNyF,KAAM,WAER,CACEzF,KAAM,UACNyF,KAAM,YAGVzF,KAAM,iBACNwU,QAAS,GACTC,SAAS,EACTC,gBAAiB,aACjBjP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,GACRvU,KAAM,eACNwU,QAAS,CACP,CACExU,KAAM,GACNyF,KAAM,YAGVgP,SAAS,EACTC,gBAAiB,OACjBjP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,GACRvU,KAAM,kBACNwU,QAAS,GACTC,SAAS,EACTC,gBAAiB,aACjBjP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,GACRvU,KAAM,WACNwU,QAAS,CACP,CACExU,KAAM,GACNyF,KAAM,YAGVgP,SAAS,EACTC,gBAAiB,OACjBjP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,CACN,CACEvU,KAAM,QACNyF,KAAM,aAER,CACEzF,KAAM,UACNyF,KAAM,YAGVzF,KAAM,aACNwU,QAAS,CACP,CACExU,KAAM,GACNyF,KAAM,YAGVgP,SAAS,EACTC,gBAAiB,OACjBjP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,CACN,CACEvU,KAAM,GACNyF,KAAM,YAGVzF,KAAM,cACNwU,QAAS,CACP,CACExU,KAAM,GACNyF,KAAM,SAGVgP,SAAS,EACTC,gBAAiB,OACjBjP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,CACN,CACEvU,KAAM,QACNyF,KAAM,aAER,CACEzF,KAAM,WACNyF,KAAM,WAER,CACEzF,KAAM,gBACNyF,KAAM,WAER,CACEzF,KAAM,aACNyF,KAAM,WAER,CACEzF,KAAM,eACNyF,KAAM,YAGVzF,KAAM,sBACNwU,QAAS,CACP,CACExU,KAAM,GACNyF,KAAM,YAGVgP,SAAS,EACTC,gBAAiB,aACjBjP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,GACRvU,KAAM,QACNwU,QAAS,CACP,CACExU,KAAM,GACNyF,KAAM,YAGVgP,SAAS,EACTC,gBAAiB,OACjBjP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,CACN,CACEvU,KAAM,QACNyF,KAAM,aAER,CACEzF,KAAM,UACNyF,KAAM,WAER,CACEzF,KAAM,aACNyF,KAAM,WAER,CACEzF,KAAM,eACNyF,KAAM,WAER,CACEzF,KAAM,oBACNyF,KAAM,WAER,CACEzF,KAAM,gBACNyF,KAAM,YAGVzF,KAAM,cACNwU,QAAS,CACP,CACExU,KAAM,GACNyF,KAAM,YAGVgP,SAAS,EACTC,gBAAiB,UACjBjP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,CACN,CACEvU,KAAM,QACNyF,KAAM,aAER,CACEzF,KAAM,UACNyF,KAAM,WAER,CACEzF,KAAM,aACNyF,KAAM,WAER,CACEzF,KAAM,eACNyF,KAAM,YAGVzF,KAAM,qBACNwU,QAAS,CACP,CACExU,KAAM,GACNyF,KAAM,YAGVgP,SAAS,EACTC,gBAAiB,aACjBjP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,GACRvU,KAAM,kBACNwU,QAAS,GACTC,SAAS,EACTC,gBAAiB,aACjBjP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,CACN,CACEvU,KAAM,QACNyF,KAAM,aAER,CACEzF,KAAM,UACNyF,KAAM,WAER,CACEzF,KAAM,aACNyF,KAAM,WAER,CACEzF,KAAM,eACNyF,KAAM,WAER,CACEzF,KAAM,oBACNyF,KAAM,WAER,CACEzF,KAAM,gBACNyF,KAAM,YAGVzF,KAAM,gBACNwU,QAAS,CACP,CACExU,KAAM,GACNyF,KAAM,YAGVgP,SAAS,EACTC,gBAAiB,UACjBjP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,CACN,CACEvU,KAAM,QACNyF,KAAM,aAER,CACEzF,KAAM,UACNyF,KAAM,WAER,CACEzF,KAAM,aACNyF,KAAM,WAER,CACEzF,KAAM,oBACNyF,KAAM,WAER,CACEzF,KAAM,iBACNyF,KAAM,WAER,CACEzF,KAAM,gBACNyF,KAAM,YAGVzF,KAAM,WACNwU,QAAS,CACP,CACExU,KAAM,GACNyF,KAAM,YAGVgP,SAAS,EACTC,gBAAiB,UACjBjP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,CACN,CACEvU,KAAM,QACNyF,KAAM,aAER,CACEzF,KAAM,UACNyF,KAAM,WAER,CACEzF,KAAM,aACNyF,KAAM,YAGVzF,KAAM,kBACNwU,QAAS,CACP,CACExU,KAAM,GACNyF,KAAM,YAGVgP,SAAS,EACTC,gBAAiB,aACjBjP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,CACN,CACEvU,KAAM,QACNyF,KAAM,aAER,CACEzF,KAAM,UACNyF,KAAM,WAER,CACEzF,KAAM,aACNyF,KAAM,WAER,CACEzF,KAAM,eACNyF,KAAM,YAGVzF,KAAM,aACNwU,QAAS,CACP,CACExU,KAAM,GACNyF,KAAM,YAGVgP,SAAS,EACTC,gBAAiB,UACjBjP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,CACN,CACEvU,KAAM,QACNyF,KAAM,aAER,CACEzF,KAAM,UACNyF,KAAM,WAER,CACEzF,KAAM,aACNyF,KAAM,WAER,CACEzF,KAAM,oBACNyF,KAAM,WAER,CACEzF,KAAM,iBACNyF,KAAM,WAER,CACEzF,KAAM,gBACNyF,KAAM,WAER,CACEzF,KAAM,oBACNyF,KAAM,WAER,CACEzF,KAAM,gBACNyF,KAAM,YAGVzF,KAAM,YACNwU,QAAS,CACP,CACExU,KAAM,GACNyF,KAAM,YAGVgP,SAAS,EACTC,gBAAiB,UACjBjP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,GACRvU,KAAM,WACNwU,QAAS,CACP,CACExU,KAAM,GACNyF,KAAM,YAGVgP,SAAS,EACTC,gBAAiB,OACjBjP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,CACN,CACEvU,KAAM,eACNyF,KAAM,WAER,CACEzF,KAAM,eACNyF,KAAM,YAGVzF,KAAM,iBACNwU,QAAS,CACP,CACExU,KAAM,GACNyF,KAAM,cAGVgP,SAAS,EACTC,gBAAiB,OACjBjP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,CACN,CACEvU,KAAM,QACNyF,KAAM,aAER,CACEzF,KAAM,UACNyF,KAAM,WAER,CACEzF,KAAM,aACNyF,KAAM,WAER,CACEzF,KAAM,oBACNyF,KAAM,WAER,CACEzF,KAAM,gBACNyF,KAAM,YAGVzF,KAAM,mBACNwU,QAAS,CACP,CACExU,KAAM,GACNyF,KAAM,YAGVgP,SAAS,EACTC,gBAAiB,aACjBjP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,CACN,CACEvU,KAAM,YACNyF,KAAM,YAGVzF,KAAM,oBACNwU,QAAS,GACTC,SAAS,EACTC,gBAAiB,aACjBjP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,CACN,CACEvU,KAAM,QACNyF,KAAM,aAER,CACEzF,KAAM,UACNyF,KAAM,WAER,CACEzF,KAAM,aACNyF,KAAM,YAGVzF,KAAM,UACNwU,QAAS,CACP,CACExU,KAAM,GACNyF,KAAM,YAGVgP,SAAS,EACTC,gBAAiB,UACjBjP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,CACN,CACEvU,KAAM,mBACNyF,KAAM,YAGVzF,KAAM,qBACNwU,QAAS,GACTC,SAAS,EACTC,gBAAiB,aACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEvU,KAAM,YACNyF,KAAM,YAGVgP,SAAS,EACTC,gBAAiB,aACjBjP,KAAM,eAER,CACEkP,WAAW,EACXJ,OAAQ,CACN,CACEK,SAAS,EACT5U,KAAM,cACNyF,KAAM,WAER,CACEmP,SAAS,EACT5U,KAAM,aACNyF,KAAM,WAER,CACEmP,SAAS,EACT5U,KAAM,WACNyF,KAAM,WAER,CACEmP,SAAS,EACT5U,KAAM,cACNyF,KAAM,WAER,CACEmP,SAAS,EACT5U,KAAM,YACNyF,KAAM,WAER,CACEmP,SAAS,EACT5U,KAAM,UACNyF,KAAM,YAGVzF,KAAM,aACNyF,KAAM,SAER,CACEkP,WAAW,EACXJ,OAAQ,CACN,CACEK,SAAS,EACT5U,KAAM,aACNyF,KAAM,WAER,CACEmP,SAAS,EACT5U,KAAM,YACNyF,KAAM,YAGVzF,KAAM,cACNyF,KAAM,UAIGoP,GAAb,sGAEE,WACE,OAAO,IAAI5H,SAAM6H,UAAUT,MAH/B,qBAKE,SACElS,EACA4S,GAEA,OAAO,IAAIC,KAAS7S,EAASkS,GAAMU,OATvC,KAAaF,GACKI,IAAMZ,GCvwBxB,IAAMA,GAAO,CACX,CACEC,UAAU,EACVC,OAAQ,GACRvU,KAAM,4BACNwU,QAAS,CACP,CACExU,KAAM,GACNyF,KAAM,YAGVgP,SAAS,EACTC,gBAAiB,OACjBjP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,GACRvU,KAAM,YACNwU,QAAS,CACP,CACExU,KAAM,GACNyF,KAAM,YAGVgP,SAAS,EACTC,gBAAiB,OACjBjP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,CACN,CACEvU,KAAM,gBACNyF,KAAM,YAGVzF,KAAM,aACNwU,QAAS,CACP,CACExU,KAAM,GACNyF,KAAM,YAGVgP,SAAS,EACTC,gBAAiB,OACjBjP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,GACRvU,KAAM,oBACNwU,QAAS,CACP,CACExU,KAAM,GACNyF,KAAM,YAGVgP,SAAS,EACTC,gBAAiB,OACjBjP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,CACN,CACEvU,KAAM,gBACNyF,KAAM,YAGVzF,KAAM,oBACNwU,QAAS,GACTC,SAAS,EACTC,gBAAiB,aACjBjP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,CACN,CACEvU,KAAM,GACNyF,KAAM,YAGVzF,KAAM,gBACNwU,QAAS,CACP,CACExU,KAAM,GACNyF,KAAM,WAGVgP,SAAS,EACTC,gBAAiB,OACjBjP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,GACRvU,KAAM,2BACNwU,QAAS,CACP,CACExU,KAAM,GACNyF,KAAM,YAGVgP,SAAS,EACTC,gBAAiB,OACjBjP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,GACRvU,KAAM,gBACNwU,QAAS,CACP,CACExU,KAAM,GACNyF,KAAM,YAGVgP,SAAS,EACTC,gBAAiB,OACjBjP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,CACN,CACEvU,KAAM,gBACNyF,KAAM,WAER,CACEzF,KAAM,mBACNyF,KAAM,YAGVzF,KAAM,kBACNwU,QAAS,GACTC,SAAS,EACTC,gBAAiB,aACjBjP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,GACRvU,KAAM,YACNwU,QAAS,CACP,CACExU,KAAM,GACNyF,KAAM,YAGVgP,SAAS,EACTC,gBAAiB,OACjBjP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,GACRvU,KAAM,iBACNwU,QAAS,CACP,CACExU,KAAM,GACNyF,KAAM,YAGVgP,SAAS,EACTC,gBAAiB,OACjBjP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,GACRvU,KAAM,kBACNwU,QAAS,GACTC,SAAS,EACTC,gBAAiB,aACjBjP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,GACRvU,KAAM,oBACNwU,QAAS,CACP,CACExU,KAAM,GACNyF,KAAM,YAGVgP,SAAS,EACTC,gBAAiB,OACjBjP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,GACRvU,KAAM,QACNwU,QAAS,CACP,CACExU,KAAM,GACNyF,KAAM,YAGVgP,SAAS,EACTC,gBAAiB,OACjBjP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,GACRvU,KAAM,iBACNwU,QAAS,CACP,CACExU,KAAM,GACNyF,KAAM,YAGVgP,SAAS,EACTC,gBAAiB,OACjBjP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,GACRvU,KAAM,yBACNwU,QAAS,CACP,CACExU,KAAM,GACNyF,KAAM,YAGVgP,SAAS,EACTC,gBAAiB,OACjBjP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,CACN,CACEvU,KAAM,gBACNyF,KAAM,YAGVzF,KAAM,YACNwU,QAAS,CACP,CACExU,KAAM,GACNyF,KAAM,YAGVgP,SAAS,EACTC,gBAAiB,OACjBjP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,GACRvU,KAAM,WACNwU,QAAS,CACP,CACExU,KAAM,GACNyF,KAAM,YAGVgP,SAAS,EACTC,gBAAiB,OACjBjP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,GACRvU,KAAM,WACNwU,QAAS,CACP,CACExU,KAAM,GACNyF,KAAM,YAGVgP,SAAS,EACTC,gBAAiB,OACjBjP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,CACN,CACEvU,KAAM,YACNyF,KAAM,YAGVzF,KAAM,oBACNwU,QAAS,GACTC,SAAS,EACTC,gBAAiB,aACjBjP,KAAM,YAER,CACE8O,OAAQ,GACRE,SAAS,EACTC,gBAAiB,aACjBjP,KAAM,eAER,CACEkP,WAAW,EACXJ,OAAQ,CACN,CACEK,SAAS,EACT5U,KAAM,gBACNyF,KAAM,WAER,CACEmP,SAAS,EACT5U,KAAM,mBACNyF,KAAM,YAGVzF,KAAM,gBACNyF,KAAM,SAER,CACEkP,WAAW,EACXJ,OAAQ,CACN,CACEK,SAAS,EACT5U,KAAM,aACNyF,KAAM,WAER,CACEmP,SAAS,EACT5U,KAAM,YACNyF,KAAM,YAGVzF,KAAM,cACNyF,KAAM,UAIGyP,GAAb,sGAEE,WACE,OAAO,IAAIjI,SAAM6H,UAAUT,MAH/B,qBAKE,SACElS,EACA4S,GAEA,OAAO,IAAIC,KAAS7S,EAASkS,GAAMU,OATvC,KAAaG,GACKD,IAAMZ,GCrVxB,IAAMA,GAAO,CACX,CACEE,OAAQ,CACN,CACEY,aAAc,4BACdnV,KAAM,UACNyF,KAAM,WAER,CACE0P,aAAc,6BACdnV,KAAM,YACNyF,KAAM,WAER,CACE0P,aAAc,SACdnV,KAAM,oBACNyF,KAAM,WAGViP,gBAAiB,aACjBjP,KAAM,eAER,CACEkP,WAAW,EACXJ,OAAQ,CACN,CACEK,SAAS,EACTO,aAAc,SACdnV,KAAM,QACNyF,KAAM,UAER,CACEmP,SAAS,EACTO,aAAc,4BACdnV,KAAM,UACNyF,KAAM,WAER,CACEmP,SAAS,EACTO,aAAc,OACdnV,KAAM,aACNyF,KAAM,SAGVzF,KAAM,aACNyF,KAAM,SAER,CACEkP,WAAW,EACXJ,OAAQ,CACN,CACEK,SAAS,EACTO,aAAc,kBACdnV,KAAM,aACNyF,KAAM,WAER,CACEmP,SAAS,EACTO,aAAc,kBACdnV,KAAM,WACNyF,KAAM,WAER,CACEmP,SAAS,EACTO,aAAc,UACdnV,KAAM,UACNyF,KAAM,WAER,CACEmP,SAAS,EACTO,aAAc,UACdnV,KAAM,UACNyF,KAAM,WAER,CACEmP,SAAS,EACTO,aAAc,UACdnV,KAAM,UACNyF,KAAM,WAER,CACEmP,SAAS,EACTO,aAAc,SACdnV,KAAM,iBACNyF,KAAM,WAGVzF,KAAM,aACNyF,KAAM,SAER,CACEkP,WAAW,EACXJ,OAAQ,CACN,CACEK,SAAS,EACTO,aAAc,SACdnV,KAAM,WACNyF,KAAM,UAER,CACEmP,SAAS,EACTO,aAAc,SACdnV,KAAM,UACNyF,KAAM,WAGVzF,KAAM,sBACNyF,KAAM,SAER,CACEkP,WAAW,EACXJ,OAAQ,CACN,CACEK,SAAS,EACTO,aAAc,UACdnV,KAAM,YACNyF,KAAM,WAER,CACEmP,SAAS,EACTO,aAAc,kBACdnV,KAAM,gBACNyF,KAAM,WAER,CACEmP,SAAS,EACTO,aAAc,UACdnV,KAAM,UACNyF,KAAM,WAER,CACEmP,SAAS,EACTO,aAAc,UACdnV,KAAM,cACNyF,KAAM,WAER,CACEmP,SAAS,EACTO,aAAc,UACdnV,KAAM,aACNyF,KAAM,YAGVzF,KAAM,iBACNyF,KAAM,SAER,CACEkP,WAAW,EACXJ,OAAQ,CACN,CACEK,SAAS,EACTO,aAAc,UACdnV,KAAM,YACNyF,KAAM,WAER,CACEmP,SAAS,EACTO,aAAc,kBACdnV,KAAM,gBACNyF,KAAM,WAER,CACEmP,SAAS,EACTO,aAAc,UACdnV,KAAM,UACNyF,KAAM,WAER,CACEmP,SAAS,EACTO,aAAc,UACdnV,KAAM,cACNyF,KAAM,WAER,CACEmP,SAAS,EACTO,aAAc,UACdnV,KAAM,aACNyF,KAAM,YAGVzF,KAAM,mBACNyF,KAAM,SAER,CACEkP,WAAW,EACXJ,OAAQ,CACN,CACEK,SAAS,EACTO,aAAc,UACdnV,KAAM,aACNyF,KAAM,WAER,CACEmP,SAAS,EACTO,aAAc,UACdnV,KAAM,YACNyF,KAAM,YAGVzF,KAAM,cACNyF,KAAM,SAER,CACEkP,WAAW,EACXJ,OAAQ,CACN,CACEK,SAAS,EACTO,aAAc,kBACdnV,KAAM,UACNyF,KAAM,WAER,CACEmP,SAAS,EACTO,aAAc,kBACdnV,KAAM,UACNyF,KAAM,WAER,CACEmP,SAAS,EACTO,aAAc,UACdnV,KAAM,SACNyF,KAAM,WAER,CACEmP,SAAS,EACTO,aAAc,UACdnV,KAAM,SACNyF,KAAM,YAGVzF,KAAM,kBACNyF,KAAM,SAER,CACE8O,OAAQ,GACRvU,KAAM,wBACNwU,QAAS,GACTE,gBAAiB,aACjBjP,KAAM,YAER,CACE8O,OAAQ,GACRvU,KAAM,kBACNwU,QAAS,GACTE,gBAAiB,aACjBjP,KAAM,YAER,CACE8O,OAAQ,GACRvU,KAAM,uBACNwU,QAAS,GACTE,gBAAiB,aACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,oBACdnV,KAAM,iBACNyF,KAAM,aAER,CACE0P,aAAc,YACdnV,KAAM,kBACNyF,KAAM,aAER,CACE0P,aAAc,UACdnV,KAAM,aACNyF,KAAM,YAGVzF,KAAM,eACNwU,QAAS,CACP,CACEW,aAAc,UACdnV,KAAM,GACNyF,KAAM,YAGViP,gBAAiB,UACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,oBACdnV,KAAM,iBACNyF,KAAM,aAER,CACE0P,aAAc,UACdnV,KAAM,qBACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,iBACNyF,KAAM,YAGVzF,KAAM,mBACNwU,QAAS,CACP,CACEW,aAAc,YACdnV,KAAM,GACNyF,KAAM,cAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,oBACdnV,KAAM,iBACNyF,KAAM,aAER,CACE0P,aAAc,YACdnV,KAAM,kBACNyF,KAAM,cAGVzF,KAAM,qBACNwU,QAAS,CACP,CACEW,aAAc,UACdnV,KAAM,GACNyF,KAAM,YAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,kBACdnV,KAAM,SACNyF,KAAM,WAER,CACE0P,aAAc,SACdnV,KAAM,UACNyF,KAAM,WAGVzF,KAAM,aACNwU,QAAS,GACTE,gBAAiB,aACjBjP,KAAM,YAER,CACE8O,OAAQ,GACRvU,KAAM,SACNwU,QAAS,CACP,CACEW,aAAc,4BACdnV,KAAM,GACNyF,KAAM,YAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,GACRvU,KAAM,kBACNwU,QAAS,CACP,CACEW,aAAc,UACdnV,KAAM,GACNyF,KAAM,YAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,GACRvU,KAAM,sBACNwU,QAAS,CACP,CACEW,aAAc,SACdnV,KAAM,GACNyF,KAAM,WAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,UACdnV,KAAM,SACNyF,KAAM,YAGVzF,KAAM,kBACNwU,QAAS,CACP,CACEW,aAAc,kBACdnV,KAAM,GACNyF,KAAM,YAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,kBACdnV,KAAM,WACNyF,KAAM,YAGVzF,KAAM,aACNwU,QAAS,CACP,CACEW,aAAc,UACdnV,KAAM,GACNyF,KAAM,WAER,CACE0P,aAAc,SACdnV,KAAM,GACNyF,KAAM,UAER,CACE0P,aAAc,OACdnV,KAAM,GACNyF,KAAM,QAER,CACE0P,aAAc,OACdnV,KAAM,GACNyF,KAAM,QAER,CACE0P,aAAc,OACdnV,KAAM,GACNyF,KAAM,SAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,GACRvU,KAAM,gBACNwU,QAAS,CACP,CACEW,aAAc,SACdnV,KAAM,GACNyF,KAAM,WAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,kBACdnV,KAAM,eACNyF,KAAM,WAER,CACE0P,aAAc,kBACdnV,KAAM,eACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,UACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,UACNyF,KAAM,WAER,CACE0P,aAAc,kBACdnV,KAAM,eACNyF,KAAM,YAGVzF,KAAM,UACNwU,QAAS,CACP,CACEW,aAAc,UACdnV,KAAM,GACNyF,KAAM,YAGViP,gBAAiB,UACjBjP,KAAM,YAER,CACE8O,OAAQ,GACRvU,KAAM,gBACNwU,QAAS,CACP,CACEW,aAAc,SACdnV,KAAM,GACNyF,KAAM,WAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,kBACdnV,KAAM,kBACNyF,KAAM,YAGVzF,KAAM,sBACNwU,QAAS,CACP,CACEW,aAAc,UACdnV,KAAM,GACNyF,KAAM,YAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,kBACdnV,KAAM,eACNyF,KAAM,WAER,CACE0P,aAAc,kBACdnV,KAAM,eACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,UACNyF,KAAM,YAGVzF,KAAM,YACNwU,QAAS,CACP,CACEW,aAAc,UACdnV,KAAM,GACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,GACNyF,KAAM,YAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,GACRvU,KAAM,WACNwU,QAAS,CACP,CACEW,aAAc,OACdnV,KAAM,GACNyF,KAAM,SAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,GACRvU,KAAM,gBACNwU,QAAS,CACP,CACEW,aAAc,OACdnV,KAAM,GACNyF,KAAM,SAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,GACRvU,KAAM,mBACNwU,QAAS,CACP,CACEW,aAAc,SACdnV,KAAM,GACNyF,KAAM,WAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,GACRvU,KAAM,WACNwU,QAAS,CACP,CACEW,aAAc,UACdnV,KAAM,GACNyF,KAAM,YAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,GACRvU,KAAM,oBACNwU,QAAS,GACTE,gBAAiB,aACjBjP,KAAM,YAER,CACE8O,OAAQ,GACRvU,KAAM,6BACNwU,QAAS,CACP,CACEW,aAAc,OACdnV,KAAM,GACNyF,KAAM,SAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,GACRvU,KAAM,QACNwU,QAAS,CACP,CACEW,aAAc,UACdnV,KAAM,GACNyF,KAAM,YAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,GACRvU,KAAM,eACNwU,QAAS,CACP,CACEW,aAAc,6BACdnV,KAAM,GACNyF,KAAM,YAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,GACRvU,KAAM,qBACNwU,QAAS,GACTE,gBAAiB,aACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,kBACdnV,KAAM,SACNyF,KAAM,YAGVzF,KAAM,oBACNwU,QAAS,CACP,CACEW,aAAc,UACdnV,KAAM,GACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,GACNyF,KAAM,YAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,GACRvU,KAAM,WACNwU,QAAS,CACP,CACEW,aAAc,6BACdnV,KAAM,GACNyF,KAAM,YAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,UACdnV,KAAM,UACNyF,KAAM,WAER,CACE0P,aAAc,oBACdnV,KAAM,iBACNyF,KAAM,aAER,CACE0P,aAAc,YACdnV,KAAM,2BACNyF,KAAM,cAGVzF,KAAM,kBACNwU,QAAS,CACP,CACEW,aAAc,YACdnV,KAAM,GACNyF,KAAM,cAGViP,gBAAiB,aACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,UACdnV,KAAM,UACNyF,KAAM,WAER,CACE0P,aAAc,oBACdnV,KAAM,iBACNyF,KAAM,cAGVzF,KAAM,wBACNwU,QAAS,CACP,CACEW,aAAc,YACdnV,KAAM,GACNyF,KAAM,cAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,kBACdnV,KAAM,gBACNyF,KAAM,YAGVzF,KAAM,iBACNwU,QAAS,CACP,CACEW,aAAc,UACdnV,KAAM,GACNyF,KAAM,YAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,GACRvU,KAAM,kBACNwU,QAAS,CACP,CACEW,aAAc,UACdnV,KAAM,GACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,GACNyF,KAAM,YAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,GACRvU,KAAM,oBACNwU,QAAS,CACP,CACEW,aAAc,SACdnV,KAAM,GACNyF,KAAM,WAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,GACRvU,KAAM,gBACNwU,QAAS,CACP,CACEW,aAAc,oBACdnV,KAAM,GACNyF,KAAM,cAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,kBACdnV,KAAM,gBACNyF,KAAM,YAGVzF,KAAM,gBACNwU,QAAS,CACP,CACEW,aAAc,SACdnV,KAAM,GACNyF,KAAM,WAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,GACRvU,KAAM,kBACNwU,QAAS,GACTE,gBAAiB,aACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,OACdnV,KAAM,8BACNyF,KAAM,SAGVzF,KAAM,yBACNwU,QAAS,GACTE,gBAAiB,aACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,SACdnV,KAAM,iBACNyF,KAAM,WAGVzF,KAAM,mBACNwU,QAAS,GACTE,gBAAiB,aACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,kBACdnV,KAAM,eACNyF,KAAM,WAER,CACE0P,aAAc,kBACdnV,KAAM,eACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,UACNyF,KAAM,YAGVzF,KAAM,qBACNwU,QAAS,CACP,CACEW,aAAc,UACdnV,KAAM,GACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,GACNyF,KAAM,YAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,GACRvU,KAAM,sBACNwU,QAAS,GACTE,gBAAiB,aACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,kBACdnV,KAAM,eACNyF,KAAM,WAER,CACE0P,aAAc,kBACdnV,KAAM,eACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,UACNyF,KAAM,YAGVzF,KAAM,qBACNwU,QAAS,CACP,CACEW,aAAc,UACdnV,KAAM,GACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,GACNyF,KAAM,YAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,GACRvU,KAAM,QACNwU,QAAS,CACP,CACEW,aAAc,4BACdnV,KAAM,GACNyF,KAAM,YAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,UACdnV,KAAM,YACNyF,KAAM,YAGVzF,KAAM,0BACNwU,QAAS,GACTE,gBAAiB,aACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,UACdnV,KAAM,YACNyF,KAAM,YAGVzF,KAAM,oBACNwU,QAAS,GACTE,gBAAiB,aACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,UACdnV,KAAM,gBACNyF,KAAM,YAGVzF,KAAM,4BACNwU,QAAS,GACTE,gBAAiB,aACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,UACdnV,KAAM,YACNyF,KAAM,YAGVzF,KAAM,yBACNwU,QAAS,GACTE,gBAAiB,aACjBjP,KAAM,YAER,CACE8O,OAAQ,GACRvU,KAAM,iBACNwU,QAAS,GACTE,gBAAiB,aACjBjP,KAAM,YAER,CACE8O,OAAQ,GACRvU,KAAM,UACNwU,QAAS,GACTE,gBAAiB,aACjBjP,KAAM,YAER,CACE8O,OAAQ,GACRvU,KAAM,UACNwU,QAAS,CACP,CACEW,aAAc,SACdnV,KAAM,GACNyF,KAAM,WAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACEiP,gBAAiB,UACjBjP,KAAM,YAIG2P,GAAb,sGAEE,WACE,OAAO,IAAInI,SAAM6H,UAAUT,MAH/B,qBAKE,SACElS,EACA4S,GAEA,OAAO,IAAIC,KAAS7S,EAASkS,GAAMU,OATvC,KAAaK,GACKH,IAAMZ,GC1hCxB,IAAMA,GAAO,CACX,CACEE,OAAQ,CACN,CACEY,aAAc,6BACdnV,KAAM,YACNyF,KAAM,YAGViP,gBAAiB,aACjBjP,KAAM,eAER,CACEkP,WAAW,EACXJ,OAAQ,CACN,CACEK,SAAS,EACTO,aAAc,4BACdnV,KAAM,UACNyF,KAAM,YAGVzF,KAAM,uBACNyF,KAAM,SAER,CACEkP,WAAW,EACXJ,OAAQ,CACN,CACEK,SAAS,EACTO,aAAc,4BACdnV,KAAM,UACNyF,KAAM,YAGVzF,KAAM,yBACNyF,KAAM,SAER,CACEkP,WAAW,EACXJ,OAAQ,CACN,CACEK,SAAS,EACTO,aAAc,uBACdnV,KAAM,oBACNyF,KAAM,WAER,CACEmP,SAAS,EACTO,aAAc,4BACdnV,KAAM,cACNyF,KAAM,YAGVzF,KAAM,wBACNyF,KAAM,SAER,CACEkP,WAAW,EACXJ,OAAQ,CACN,CACEK,SAAS,EACTO,aAAc,uBACdnV,KAAM,oBACNyF,KAAM,WAER,CACEmP,SAAS,EACTO,aAAc,4BACdnV,KAAM,cACNyF,KAAM,YAGVzF,KAAM,0BACNyF,KAAM,SAER,CACEkP,WAAW,EACXJ,OAAQ,CACN,CACEK,SAAS,EACTO,aAAc,4BACdnV,KAAM,iBACNyF,KAAM,YAGVzF,KAAM,qBACNyF,KAAM,SAER,CACEkP,WAAW,EACXJ,OAAQ,CACN,CACEK,SAAS,EACTO,aAAc,4BACdnV,KAAM,iBACNyF,KAAM,YAGVzF,KAAM,uBACNyF,KAAM,SAER,CACEkP,WAAW,EACXJ,OAAQ,CACN,CACEK,SAAS,EACTO,aAAc,UACdnV,KAAM,aACNyF,KAAM,WAER,CACEmP,SAAS,EACTO,aAAc,UACdnV,KAAM,YACNyF,KAAM,YAGVzF,KAAM,cACNyF,KAAM,SAER,CACEkP,WAAW,EACXJ,OAAQ,CACN,CACEK,SAAS,EACTO,aAAc,4BACdnV,KAAM,cACNyF,KAAM,YAGVzF,KAAM,kBACNyF,KAAM,SAER,CACEkP,WAAW,EACXJ,OAAQ,CACN,CACEK,SAAS,EACTO,aAAc,4BACdnV,KAAM,cACNyF,KAAM,YAGVzF,KAAM,oBACNyF,KAAM,SAER,CACE8O,OAAQ,GACRvU,KAAM,kBACNwU,QAAS,GACTE,gBAAiB,aACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,sBACdnV,KAAM,aACNyF,KAAM,YAGVzF,KAAM,eACNwU,QAAS,GACTE,gBAAiB,aACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,UACdnV,KAAM,SACNyF,KAAM,YAGVzF,KAAM,YACNwU,QAAS,CACP,CACEW,aAAc,4BACdnV,KAAM,GACNyF,KAAM,YAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,GACRvU,KAAM,iBACNwU,QAAS,CACP,CACEW,aAAc,UACdnV,KAAM,GACNyF,KAAM,YAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,GACRvU,KAAM,aACNwU,QAAS,CACP,CACEW,aAAc,YACdnV,KAAM,GACNyF,KAAM,cAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,YACdnV,KAAM,WACNyF,KAAM,cAGVzF,KAAM,yBACNwU,QAAS,CACP,CACEW,aAAc,wBACdnV,KAAM,GACNyF,KAAM,cAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,YACdnV,KAAM,eACNyF,KAAM,cAGVzF,KAAM,6BACNwU,QAAS,CACP,CACEW,aAAc,wBACdnV,KAAM,GACNyF,KAAM,cAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,UACdnV,KAAM,SACNyF,KAAM,YAGVzF,KAAM,sBACNwU,QAAS,CACP,CACEW,aAAc,uBACdnV,KAAM,GACNyF,KAAM,YAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,uBACdnV,KAAM,oBACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,SACNyF,KAAM,YAGVzF,KAAM,4BACNwU,QAAS,CACP,CACEW,aAAc,4BACdnV,KAAM,GACNyF,KAAM,YAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,uBACdnV,KAAM,oBACNyF,KAAM,YAGVzF,KAAM,iCACNwU,QAAS,CACP,CACEW,aAAc,UACdnV,KAAM,GACNyF,KAAM,YAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,uBACdnV,KAAM,oBACNyF,KAAM,YAGVzF,KAAM,6BACNwU,QAAS,CACP,CACEW,aAAc,YACdnV,KAAM,GACNyF,KAAM,cAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,GACRvU,KAAM,2BACNwU,QAAS,CACP,CACEW,aAAc,UACdnV,KAAM,GACNyF,KAAM,YAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,uBACdnV,KAAM,oBACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,SACNyF,KAAM,YAGVzF,KAAM,gCACNwU,QAAS,CACP,CACEW,aAAc,4BACdnV,KAAM,GACNyF,KAAM,YAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,uBACdnV,KAAM,oBACNyF,KAAM,YAGVzF,KAAM,qCACNwU,QAAS,CACP,CACEW,aAAc,UACdnV,KAAM,GACNyF,KAAM,YAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,uBACdnV,KAAM,oBACNyF,KAAM,YAGVzF,KAAM,iCACNwU,QAAS,CACP,CACEW,aAAc,YACdnV,KAAM,GACNyF,KAAM,cAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,GACRvU,KAAM,uBACNwU,QAAS,CACP,CACEW,aAAc,YACdnV,KAAM,GACNyF,KAAM,cAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,UACdnV,KAAM,SACNyF,KAAM,YAGVzF,KAAM,mBACNwU,QAAS,CACP,CACEW,aAAc,4BACdnV,KAAM,GACNyF,KAAM,YAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,SACdnV,KAAM,QACNyF,KAAM,UAER,CACE0P,aAAc,yBACdnV,KAAM,iBACNyF,KAAM,aAER,CACE0P,aAAc,WACdnV,KAAM,kBACNyF,KAAM,aAGVzF,KAAM,2BACNwU,QAAS,CACP,CACEW,aAAc,4BACdnV,KAAM,GACNyF,KAAM,YAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,yBACdnV,KAAM,iBACNyF,KAAM,aAER,CACE0P,aAAc,WACdnV,KAAM,kBACNyF,KAAM,aAGVzF,KAAM,kCACNwU,QAAS,CACP,CACEW,aAAc,4BACdnV,KAAM,GACNyF,KAAM,YAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,GACRvU,KAAM,wBACNwU,QAAS,CACP,CACEW,aAAc,UACdnV,KAAM,GACNyF,KAAM,YAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,GACRvU,KAAM,oBACNwU,QAAS,CACP,CACEW,aAAc,YACdnV,KAAM,GACNyF,KAAM,cAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,UACdnV,KAAM,SACNyF,KAAM,YAGVzF,KAAM,gBACNwU,QAAS,CACP,CACEW,aAAc,4BACdnV,KAAM,GACNyF,KAAM,YAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,GACRvU,KAAM,qBACNwU,QAAS,CACP,CACEW,aAAc,UACdnV,KAAM,GACNyF,KAAM,YAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,GACRvU,KAAM,iBACNwU,QAAS,CACP,CACEW,aAAc,YACdnV,KAAM,GACNyF,KAAM,cAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,UACdnV,KAAM,SACNyF,KAAM,YAGVzF,KAAM,WACNwU,QAAS,CACP,CACEW,aAAc,OACdnV,KAAM,GACNyF,KAAM,SAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,sBACdnV,KAAM,aACNyF,KAAM,YAGVzF,KAAM,mBACNwU,QAAS,CACP,CACEW,aAAc,OACdnV,KAAM,GACNyF,KAAM,SAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,UACdnV,KAAM,SACNyF,KAAM,YAGVzF,KAAM,qBACNwU,QAAS,CACP,CACEW,aAAc,OACdnV,KAAM,GACNyF,KAAM,SAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,uBACdnV,KAAM,oBACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,SACNyF,KAAM,YAGVzF,KAAM,2BACNwU,QAAS,CACP,CACEW,aAAc,OACdnV,KAAM,GACNyF,KAAM,SAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,uBACdnV,KAAM,oBACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,SACNyF,KAAM,YAGVzF,KAAM,+BACNwU,QAAS,CACP,CACEW,aAAc,OACdnV,KAAM,GACNyF,KAAM,SAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,UACdnV,KAAM,SACNyF,KAAM,YAGVzF,KAAM,kBACNwU,QAAS,CACP,CACEW,aAAc,OACdnV,KAAM,GACNyF,KAAM,SAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,sBACdnV,KAAM,aACNyF,KAAM,YAGVzF,KAAM,mCACNwU,QAAS,CACP,CACEW,aAAc,OACdnV,KAAM,GACNyF,KAAM,SAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,UACdnV,KAAM,SACNyF,KAAM,YAGVzF,KAAM,eACNwU,QAAS,CACP,CACEW,aAAc,OACdnV,KAAM,GACNyF,KAAM,SAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,SACdnV,KAAM,QACNyF,KAAM,UAER,CACE0P,aAAc,SACdnV,KAAM,QACNyF,KAAM,UAER,CACE0P,aAAc,SACdnV,KAAM,UACNyF,KAAM,UAER,CACE0P,aAAc,QACdnV,KAAM,YACNyF,KAAM,SAER,CACE0P,aAAc,SACdnV,KAAM,oBACNyF,KAAM,UAER,CACE0P,aAAc,yBACdnV,KAAM,iBACNyF,KAAM,aAER,CACE0P,aAAc,WACdnV,KAAM,kBACNyF,KAAM,aAGVzF,KAAM,eACNwU,QAAS,CACP,CACEW,aAAc,sBACdnV,KAAM,GACNyF,KAAM,YAGViP,gBAAiB,aACjBjP,KAAM,YAER,CACE8O,OAAQ,GACRvU,KAAM,WACNwU,QAAS,CACP,CACEW,aAAc,UACdnV,KAAM,GACNyF,KAAM,YAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,GACRvU,KAAM,6BACNwU,QAAS,CACP,CACEW,aAAc,OACdnV,KAAM,GACNyF,KAAM,SAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,GACRvU,KAAM,QACNwU,QAAS,CACP,CACEW,aAAc,UACdnV,KAAM,GACNyF,KAAM,YAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,GACRvU,KAAM,eACNwU,QAAS,CACP,CACEW,aAAc,6BACdnV,KAAM,GACNyF,KAAM,YAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,GACRvU,KAAM,WACNwU,QAAS,CACP,CACEW,aAAc,6BACdnV,KAAM,GACNyF,KAAM,YAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,sBACdnV,KAAM,aACNyF,KAAM,YAGVzF,KAAM,kBACNwU,QAAS,GACTE,gBAAiB,aACjBjP,KAAM,YAER,CACE8O,OAAQ,GACRvU,KAAM,kBACNwU,QAAS,GACTE,gBAAiB,aACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,OACdnV,KAAM,8BACNyF,KAAM,SAGVzF,KAAM,yBACNwU,QAAS,GACTE,gBAAiB,aACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,UACdnV,KAAM,YACNyF,KAAM,YAGVzF,KAAM,oBACNwU,QAAS,GACTE,gBAAiB,aACjBjP,KAAM,YAER,CACE8O,OAAQ,GACRvU,KAAM,iBACNwU,QAAS,GACTE,gBAAiB,aACjBjP,KAAM,aAIG4P,GAAb,sGAEE,WACE,OAAO,IAAIpI,SAAM6H,UAAUT,MAH/B,qBAKE,SACElS,EACA4S,GAEA,OAAO,IAAIC,KAAS7S,EAASkS,GAAMU,OATvC,KAAaM,GACKJ,IAAMZ,GCj4BxB,IAAMA,GAAO,CACX,CACEE,OAAQ,CACN,CACEY,aAAc,UACdnV,KAAM,gBACNyF,KAAM,WAER,CACE0P,aAAc,0BACdnV,KAAM,OACNyF,KAAM,WAER,CACE0P,aAAc,oBACdnV,KAAM,UACNyF,KAAM,WAER,CACE0P,aAAc,kCACdnV,KAAM,yBACNyF,KAAM,WAER,CACE0P,aAAc,SACdnV,KAAM,wBACNyF,KAAM,UAER,CACE0P,aAAc,UACdnV,KAAM,0BACNyF,KAAM,YAGViP,gBAAiB,aACjBjP,KAAM,eAER,CACEkP,WAAW,EACXJ,OAAQ,CACN,CACEK,SAAS,EACTO,aAAc,UACdnV,KAAM,YACNyF,KAAM,WAER,CACEmP,SAAS,EACTO,aAAc,UACdnV,KAAM,QACNyF,KAAM,WAER,CACEmP,SAAS,EACTO,aAAc,UACdnV,KAAM,QACNyF,KAAM,WAER,CACEmP,SAAS,EACTO,aAAc,UACdnV,KAAM,eACNyF,KAAM,WAER,CACEmP,SAAS,EACTO,aAAc,UACdnV,KAAM,aACNyF,KAAM,WAER,CACEmP,SAAS,EACTO,aAAc,UACdnV,KAAM,aACNyF,KAAM,WAER,CACEmP,SAAS,EACTO,aAAc,UACdnV,KAAM,yBACNyF,KAAM,WAER,CACEmP,SAAS,EACTO,aAAc,UACdnV,KAAM,yBACNyF,KAAM,WAER,CACEmP,SAAS,EACTO,aAAc,UACdnV,KAAM,4BACNyF,KAAM,WAER,CACEmP,SAAS,EACTO,aAAc,UACdnV,KAAM,kBACNyF,KAAM,WAER,CACEmP,SAAS,EACTO,aAAc,UACdnV,KAAM,OACNyF,KAAM,YAGVzF,KAAM,mBACNyF,KAAM,SAER,CACEkP,WAAW,EACXJ,OAAQ,CACN,CACEK,SAAS,EACTO,aAAc,UACdnV,KAAM,YACNyF,KAAM,WAER,CACEmP,SAAS,EACTO,aAAc,UACdnV,KAAM,QACNyF,KAAM,YAGVzF,KAAM,iBACNyF,KAAM,SAER,CACEkP,WAAW,EACXJ,OAAQ,CACN,CACEK,SAAS,EACTO,aAAc,UACdnV,KAAM,QACNyF,KAAM,WAER,CACEmP,SAAS,EACTO,aAAc,UACdnV,KAAM,aACNyF,KAAM,WAER,CACEmP,SAAS,EACTO,aAAc,UACdnV,KAAM,aACNyF,KAAM,WAER,CACEmP,SAAS,EACTO,aAAc,UACdnV,KAAM,eACNyF,KAAM,YAGVzF,KAAM,2BACNyF,KAAM,SAER,CACEkP,WAAW,EACXJ,OAAQ,CACN,CACEK,SAAS,EACTO,aAAc,UACdnV,KAAM,QACNyF,KAAM,WAER,CACEmP,SAAS,EACTO,aAAc,UACdnV,KAAM,aACNyF,KAAM,WAER,CACEmP,SAAS,EACTO,aAAc,UACdnV,KAAM,aACNyF,KAAM,WAER,CACEmP,SAAS,EACTO,aAAc,UACdnV,KAAM,eACNyF,KAAM,YAGVzF,KAAM,yBACNyF,KAAM,SAER,CACEkP,WAAW,EACXJ,OAAQ,CACN,CACEK,SAAS,EACTO,aAAc,UACdnV,KAAM,YACNyF,KAAM,WAER,CACEmP,SAAS,EACTO,aAAc,UACdnV,KAAM,QACNyF,KAAM,WAER,CACEmP,SAAS,EACTO,aAAc,UACdnV,KAAM,QACNyF,KAAM,WAER,CACEmP,SAAS,EACTO,aAAc,UACdnV,KAAM,aACNyF,KAAM,WAER,CACEmP,SAAS,EACTO,aAAc,UACdnV,KAAM,aACNyF,KAAM,WAER,CACEmP,SAAS,EACTO,aAAc,UACdnV,KAAM,yBACNyF,KAAM,WAER,CACEmP,SAAS,EACTO,aAAc,UACdnV,KAAM,yBACNyF,KAAM,WAER,CACEmP,SAAS,EACTO,aAAc,UACdnV,KAAM,OACNyF,KAAM,YAGVzF,KAAM,iBACNyF,KAAM,SAER,CACEkP,WAAW,EACXJ,OAAQ,CACN,CACEK,SAAS,EACTO,aAAc,UACdnV,KAAM,SACNyF,KAAM,WAER,CACEmP,SAAS,EACTO,aAAc,YACdnV,KAAM,QACNyF,KAAM,aAER,CACEmP,SAAS,EACTO,aAAc,OACdnV,KAAM,UACNyF,KAAM,SAGVzF,KAAM,yBACNyF,KAAM,SAER,CACE8O,OAAQ,GACRvU,KAAM,0BACNwU,QAAS,CACP,CACEW,aAAc,UACdnV,KAAM,GACNyF,KAAM,YAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,GACRvU,KAAM,eACNwU,QAAS,CACP,CACEW,aAAc,SACdnV,KAAM,GACNyF,KAAM,WAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,GACRvU,KAAM,kBACNwU,QAAS,CACP,CACEW,aAAc,UACdnV,KAAM,GACNyF,KAAM,YAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,GACRvU,KAAM,6BACNwU,QAAS,CACP,CACEW,aAAc,UACdnV,KAAM,GACNyF,KAAM,YAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,GACRvU,KAAM,0BACNwU,QAAS,CACP,CACEW,aAAc,SACdnV,KAAM,GACNyF,KAAM,WAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEe,WAAY,CACV,CACEH,aAAc,0BACdnV,KAAM,aACNyF,KAAM,WAER,CACE0P,aAAc,0BACdnV,KAAM,aACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,cACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,cACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,sBACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,QACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,QACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,SACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,eACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,OACNyF,KAAM,WAER,CACE0P,aAAc,SACdnV,KAAM,SACNyF,KAAM,UAER,CACE0P,aAAc,UACdnV,KAAM,OACNyF,KAAM,YAGV0P,aAAc,mCACdnV,KAAM,QACNyF,KAAM,SAER,CACE6P,WAAY,CACV,CACEH,aAAc,kCACdnV,KAAM,gBACNyF,KAAM,SAER,CACE0P,aAAc,QACdnV,KAAM,IACNyF,KAAM,SAER,CACE0P,aAAc,UACdnV,KAAM,IACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,IACNyF,KAAM,YAGV0P,aAAc,gCACdnV,KAAM,YACNyF,KAAM,SAER,CACE0P,aAAc,UACdnV,KAAM,uBACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,QACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,SACNyF,KAAM,YAGVzF,KAAM,kBACNwU,QAAS,CACP,CACEW,aAAc,UACdnV,KAAM,yBACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,yBACNyF,KAAM,YAGViP,gBAAiB,UACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEe,WAAY,CACV,CACEH,aAAc,0BACdnV,KAAM,aACNyF,KAAM,WAER,CACE0P,aAAc,0BACdnV,KAAM,aACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,cACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,cACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,QACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,QACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,WACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,OACNyF,KAAM,WAER,CACE0P,aAAc,SACdnV,KAAM,SACNyF,KAAM,UAER,CACE0P,aAAc,UACdnV,KAAM,OACNyF,KAAM,YAGV0P,aAAc,iCACdnV,KAAM,QACNyF,KAAM,SAER,CACE6P,WAAY,CACV,CACEH,aAAc,kCACdnV,KAAM,gBACNyF,KAAM,SAER,CACE0P,aAAc,QACdnV,KAAM,IACNyF,KAAM,SAER,CACE0P,aAAc,UACdnV,KAAM,IACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,IACNyF,KAAM,YAGV0P,aAAc,gCACdnV,KAAM,YACNyF,KAAM,SAER,CACE0P,aAAc,UACdnV,KAAM,uBACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,QACNyF,KAAM,YAGVzF,KAAM,gBACNwU,QAAS,CACP,CACEW,aAAc,UACdnV,KAAM,yBACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,yBACNyF,KAAM,YAGViP,gBAAiB,aACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEe,WAAY,CACV,CACEH,aAAc,0BACdnV,KAAM,aACNyF,KAAM,WAER,CACE0P,aAAc,0BACdnV,KAAM,aACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,cACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,cACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,sBACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,QACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,QACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,SACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,eACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,OACNyF,KAAM,WAER,CACE0P,aAAc,SACdnV,KAAM,SACNyF,KAAM,UAER,CACE0P,aAAc,UACdnV,KAAM,OACNyF,KAAM,YAGV0P,aAAc,qCACdnV,KAAM,SACNyF,KAAM,YAGVzF,KAAM,yBACNwU,QAAS,GACTE,gBAAiB,aACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,4BACdnV,KAAM,cACNyF,KAAM,aAER,CACE0P,aAAc,4BACdnV,KAAM,cACNyF,KAAM,aAER,CACE0P,aAAc,YACdnV,KAAM,gBACNyF,KAAM,cAGVzF,KAAM,6BACNwU,QAAS,GACTE,gBAAiB,aACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,4BACdnV,KAAM,cACNyF,KAAM,aAER,CACE0P,aAAc,4BACdnV,KAAM,cACNyF,KAAM,aAER,CACE0P,aAAc,YACdnV,KAAM,gBACNyF,KAAM,cAGVzF,KAAM,2BACNwU,QAAS,GACTE,gBAAiB,aACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEe,WAAY,CACV,CACEH,aAAc,0BACdnV,KAAM,aACNyF,KAAM,WAER,CACE0P,aAAc,0BACdnV,KAAM,aACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,cACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,cACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,QACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,QACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,WACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,OACNyF,KAAM,WAER,CACE0P,aAAc,SACdnV,KAAM,SACNyF,KAAM,UAER,CACE0P,aAAc,UACdnV,KAAM,OACNyF,KAAM,YAGV0P,aAAc,mCACdnV,KAAM,SACNyF,KAAM,YAGVzF,KAAM,uBACNwU,QAAS,GACTE,gBAAiB,aACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEe,WAAY,CACV,CACEH,aAAc,0BACdnV,KAAM,aACNyF,KAAM,WAER,CACE0P,aAAc,0BACdnV,KAAM,aACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,cACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,cACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,sBACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,QACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,QACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,SACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,eACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,OACNyF,KAAM,WAER,CACE0P,aAAc,SACdnV,KAAM,SACNyF,KAAM,UAER,CACE0P,aAAc,UACdnV,KAAM,OACNyF,KAAM,YAGV0P,aAAc,qCACdnV,KAAM,SACNyF,KAAM,WAER,CACE6P,WAAY,CACV,CACEH,aAAc,kCACdnV,KAAM,gBACNyF,KAAM,SAER,CACE0P,aAAc,QACdnV,KAAM,IACNyF,KAAM,SAER,CACE0P,aAAc,UACdnV,KAAM,IACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,IACNyF,KAAM,YAGV0P,aAAc,kCACdnV,KAAM,aACNyF,KAAM,YAGVzF,KAAM,mCACNwU,QAAS,CACP,CACEc,WAAY,CACV,CACEH,aAAc,UACdnV,KAAM,YACNyF,KAAM,WAER,CACE0P,aAAc,kCACdnV,KAAM,SACNyF,KAAM,SAER,CACE0P,aAAc,UACdnV,KAAM,yBACNyF,KAAM,YAGV0P,aAAc,oCACdnV,KAAM,aACNyF,KAAM,WAER,CACE0P,aAAc,YACdnV,KAAM,kCACNyF,KAAM,aAER,CACE0P,aAAc,SACdnV,KAAM,oBACNyF,KAAM,WAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEe,WAAY,CACV,CACEH,aAAc,0BACdnV,KAAM,aACNyF,KAAM,WAER,CACE0P,aAAc,0BACdnV,KAAM,aACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,cACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,cACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,QACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,QACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,WACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,OACNyF,KAAM,WAER,CACE0P,aAAc,SACdnV,KAAM,SACNyF,KAAM,UAER,CACE0P,aAAc,UACdnV,KAAM,OACNyF,KAAM,YAGV0P,aAAc,mCACdnV,KAAM,SACNyF,KAAM,WAER,CACE6P,WAAY,CACV,CACEH,aAAc,kCACdnV,KAAM,gBACNyF,KAAM,SAER,CACE0P,aAAc,QACdnV,KAAM,IACNyF,KAAM,SAER,CACE0P,aAAc,UACdnV,KAAM,IACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,IACNyF,KAAM,YAGV0P,aAAc,kCACdnV,KAAM,aACNyF,KAAM,YAGVzF,KAAM,iCACNwU,QAAS,CACP,CACEc,WAAY,CACV,CACEH,aAAc,UACdnV,KAAM,YACNyF,KAAM,WAER,CACE0P,aAAc,kCACdnV,KAAM,SACNyF,KAAM,SAER,CACE0P,aAAc,UACdnV,KAAM,yBACNyF,KAAM,YAGV0P,aAAc,oCACdnV,KAAM,aACNyF,KAAM,WAER,CACE0P,aAAc,YACdnV,KAAM,kCACNyF,KAAM,aAER,CACE0P,aAAc,SACdnV,KAAM,oBACNyF,KAAM,WAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEe,WAAY,CACV,CACEH,aAAc,0BACdnV,KAAM,aACNyF,KAAM,WAER,CACE0P,aAAc,0BACdnV,KAAM,aACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,cACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,cACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,sBACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,QACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,QACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,SACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,eACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,OACNyF,KAAM,WAER,CACE0P,aAAc,SACdnV,KAAM,SACNyF,KAAM,UAER,CACE0P,aAAc,UACdnV,KAAM,OACNyF,KAAM,YAGV0P,aAAc,mCACdnV,KAAM,QACNyF,KAAM,UAGVzF,KAAM,mBACNwU,QAAS,GACTE,gBAAiB,aACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,0BACdnV,KAAM,aACNyF,KAAM,WAER,CACE0P,aAAc,0BACdnV,KAAM,aACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,eACNyF,KAAM,YAGVzF,KAAM,wBACNwU,QAAS,GACTE,gBAAiB,aACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEY,aAAc,0BACdnV,KAAM,aACNyF,KAAM,WAER,CACE0P,aAAc,0BACdnV,KAAM,aACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,eACNyF,KAAM,YAGVzF,KAAM,sBACNwU,QAAS,GACTE,gBAAiB,aACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEe,WAAY,CACV,CACEH,aAAc,0BACdnV,KAAM,aACNyF,KAAM,WAER,CACE0P,aAAc,0BACdnV,KAAM,aACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,cACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,cACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,QACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,QACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,WACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,OACNyF,KAAM,WAER,CACE0P,aAAc,SACdnV,KAAM,SACNyF,KAAM,UAER,CACE0P,aAAc,UACdnV,KAAM,OACNyF,KAAM,YAGV0P,aAAc,iCACdnV,KAAM,QACNyF,KAAM,UAGVzF,KAAM,iBACNwU,QAAS,GACTE,gBAAiB,aACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEe,WAAY,CACV,CACEH,aAAc,0BACdnV,KAAM,aACNyF,KAAM,WAER,CACE0P,aAAc,0BACdnV,KAAM,aACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,cACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,cACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,sBACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,QACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,QACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,SACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,eACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,OACNyF,KAAM,WAER,CACE0P,aAAc,SACdnV,KAAM,SACNyF,KAAM,UAER,CACE0P,aAAc,UACdnV,KAAM,OACNyF,KAAM,YAGV0P,aAAc,mCACdnV,KAAM,QACNyF,KAAM,SAER,CACE6P,WAAY,CACV,CACEH,aAAc,kCACdnV,KAAM,gBACNyF,KAAM,SAER,CACE0P,aAAc,QACdnV,KAAM,IACNyF,KAAM,SAER,CACE0P,aAAc,UACdnV,KAAM,IACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,IACNyF,KAAM,YAGV0P,aAAc,gCACdnV,KAAM,YACNyF,KAAM,SAER,CACE0P,aAAc,UACdnV,KAAM,uBACNyF,KAAM,YAGVzF,KAAM,iBACNwU,QAAS,CACP,CACEW,aAAc,UACdnV,KAAM,yBACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,yBACNyF,KAAM,YAGViP,gBAAiB,UACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEe,WAAY,CACV,CACEH,aAAc,0BACdnV,KAAM,aACNyF,KAAM,WAER,CACE0P,aAAc,0BACdnV,KAAM,aACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,cACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,cACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,sBACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,QACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,QACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,SACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,eACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,OACNyF,KAAM,WAER,CACE0P,aAAc,SACdnV,KAAM,SACNyF,KAAM,UAER,CACE0P,aAAc,UACdnV,KAAM,OACNyF,KAAM,YAGV0P,aAAc,mCACdnV,KAAM,QACNyF,KAAM,SAER,CACE6P,WAAY,CACV,CACEH,aAAc,kCACdnV,KAAM,gBACNyF,KAAM,SAER,CACE0P,aAAc,QACdnV,KAAM,IACNyF,KAAM,SAER,CACE0P,aAAc,UACdnV,KAAM,IACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,IACNyF,KAAM,YAGV0P,aAAc,gCACdnV,KAAM,YACNyF,KAAM,SAER,CACE0P,aAAc,UACdnV,KAAM,uBACNyF,KAAM,YAGVzF,KAAM,uBACNwU,QAAS,CACP,CACEW,aAAc,UACdnV,KAAM,yBACNyF,KAAM,YAGViP,gBAAiB,UACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEe,WAAY,CACV,CACEH,aAAc,0BACdnV,KAAM,aACNyF,KAAM,WAER,CACE0P,aAAc,0BACdnV,KAAM,aACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,cACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,cACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,QACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,QACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,WACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,OACNyF,KAAM,WAER,CACE0P,aAAc,SACdnV,KAAM,SACNyF,KAAM,UAER,CACE0P,aAAc,UACdnV,KAAM,OACNyF,KAAM,YAGV0P,aAAc,iCACdnV,KAAM,QACNyF,KAAM,SAER,CACE6P,WAAY,CACV,CACEH,aAAc,kCACdnV,KAAM,gBACNyF,KAAM,SAER,CACE0P,aAAc,QACdnV,KAAM,IACNyF,KAAM,SAER,CACE0P,aAAc,UACdnV,KAAM,IACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,IACNyF,KAAM,YAGV0P,aAAc,gCACdnV,KAAM,YACNyF,KAAM,SAER,CACE0P,aAAc,UACdnV,KAAM,uBACNyF,KAAM,YAGVzF,KAAM,qBACNwU,QAAS,CACP,CACEW,aAAc,UACdnV,KAAM,yBACNyF,KAAM,YAGViP,gBAAiB,aACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEe,WAAY,CACV,CACEH,aAAc,0BACdnV,KAAM,aACNyF,KAAM,WAER,CACE0P,aAAc,0BACdnV,KAAM,aACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,cACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,cACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,QACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,QACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,WACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,OACNyF,KAAM,WAER,CACE0P,aAAc,SACdnV,KAAM,SACNyF,KAAM,UAER,CACE0P,aAAc,UACdnV,KAAM,OACNyF,KAAM,YAGV0P,aAAc,iCACdnV,KAAM,QACNyF,KAAM,SAER,CACE6P,WAAY,CACV,CACEH,aAAc,kCACdnV,KAAM,gBACNyF,KAAM,SAER,CACE0P,aAAc,QACdnV,KAAM,IACNyF,KAAM,SAER,CACE0P,aAAc,UACdnV,KAAM,IACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,IACNyF,KAAM,YAGV0P,aAAc,gCACdnV,KAAM,YACNyF,KAAM,SAER,CACE0P,aAAc,UACdnV,KAAM,uBACNyF,KAAM,YAGVzF,KAAM,eACNwU,QAAS,CACP,CACEW,aAAc,UACdnV,KAAM,yBACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,yBACNyF,KAAM,YAGViP,gBAAiB,aACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEe,WAAY,CACV,CACEH,aAAc,0BACdnV,KAAM,aACNyF,KAAM,WAER,CACE0P,aAAc,0BACdnV,KAAM,aACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,cACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,cACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,sBACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,QACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,QACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,SACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,eACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,OACNyF,KAAM,WAER,CACE0P,aAAc,SACdnV,KAAM,SACNyF,KAAM,UAER,CACE0P,aAAc,UACdnV,KAAM,OACNyF,KAAM,YAGV0P,aAAc,mCACdnV,KAAM,QACNyF,KAAM,UAGVzF,KAAM,oBACNwU,QAAS,CACP,CACEW,aAAc,UACdnV,KAAM,YACNyF,KAAM,YAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEe,WAAY,CACV,CACEH,aAAc,0BACdnV,KAAM,aACNyF,KAAM,WAER,CACE0P,aAAc,0BACdnV,KAAM,aACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,cACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,cACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,sBACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,QACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,QACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,SACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,eACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,OACNyF,KAAM,WAER,CACE0P,aAAc,SACdnV,KAAM,SACNyF,KAAM,UAER,CACE0P,aAAc,UACdnV,KAAM,OACNyF,KAAM,YAGV0P,aAAc,mCACdnV,KAAM,QACNyF,KAAM,UAGVzF,KAAM,oBACNwU,QAAS,CACP,CACEc,WAAY,CACV,CACEH,aAAc,UACdnV,KAAM,YACNyF,KAAM,WAER,CACE0P,aAAc,kCACdnV,KAAM,SACNyF,KAAM,SAER,CACE0P,aAAc,UACdnV,KAAM,yBACNyF,KAAM,YAGV0P,aAAc,kCACdnV,KAAM,YACNyF,KAAM,UAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEe,WAAY,CACV,CACEH,aAAc,0BACdnV,KAAM,aACNyF,KAAM,WAER,CACE0P,aAAc,0BACdnV,KAAM,aACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,cACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,cACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,sBACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,QACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,QACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,SACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,eACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,OACNyF,KAAM,WAER,CACE0P,aAAc,SACdnV,KAAM,SACNyF,KAAM,UAER,CACE0P,aAAc,UACdnV,KAAM,OACNyF,KAAM,YAGV0P,aAAc,mCACdnV,KAAM,QACNyF,KAAM,SAER,CACE6P,WAAY,CACV,CACEH,aAAc,kCACdnV,KAAM,gBACNyF,KAAM,SAER,CACE0P,aAAc,QACdnV,KAAM,IACNyF,KAAM,SAER,CACE0P,aAAc,UACdnV,KAAM,IACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,IACNyF,KAAM,YAGV0P,aAAc,gCACdnV,KAAM,YACNyF,KAAM,UAGVzF,KAAM,6BACNwU,QAAS,CACP,CACEc,WAAY,CACV,CACEH,aAAc,UACdnV,KAAM,YACNyF,KAAM,WAER,CACE0P,aAAc,kCACdnV,KAAM,SACNyF,KAAM,SAER,CACE0P,aAAc,UACdnV,KAAM,yBACNyF,KAAM,YAGV0P,aAAc,kCACdnV,KAAM,YACNyF,KAAM,SAER,CACE0P,aAAc,UACdnV,KAAM,iCACNyF,KAAM,WAER,CACE0P,aAAc,OACdnV,KAAM,mBACNyF,KAAM,SAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,GACRvU,KAAM,2BACNwU,QAAS,CACP,CACEW,aAAc,SACdnV,KAAM,aACNyF,KAAM,WAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEe,WAAY,CACV,CACEH,aAAc,0BACdnV,KAAM,aACNyF,KAAM,WAER,CACE0P,aAAc,0BACdnV,KAAM,aACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,cACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,cACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,QACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,QACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,WACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,OACNyF,KAAM,WAER,CACE0P,aAAc,SACdnV,KAAM,SACNyF,KAAM,UAER,CACE0P,aAAc,UACdnV,KAAM,OACNyF,KAAM,YAGV0P,aAAc,iCACdnV,KAAM,QACNyF,KAAM,UAGVzF,KAAM,kBACNwU,QAAS,CACP,CACEW,aAAc,UACdnV,KAAM,YACNyF,KAAM,YAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEe,WAAY,CACV,CACEH,aAAc,0BACdnV,KAAM,aACNyF,KAAM,WAER,CACE0P,aAAc,0BACdnV,KAAM,aACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,cACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,cACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,QACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,QACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,WACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,OACNyF,KAAM,WAER,CACE0P,aAAc,SACdnV,KAAM,SACNyF,KAAM,UAER,CACE0P,aAAc,UACdnV,KAAM,OACNyF,KAAM,YAGV0P,aAAc,iCACdnV,KAAM,QACNyF,KAAM,UAGVzF,KAAM,kBACNwU,QAAS,CACP,CACEc,WAAY,CACV,CACEH,aAAc,UACdnV,KAAM,YACNyF,KAAM,WAER,CACE0P,aAAc,kCACdnV,KAAM,SACNyF,KAAM,SAER,CACE0P,aAAc,UACdnV,KAAM,yBACNyF,KAAM,YAGV0P,aAAc,kCACdnV,KAAM,YACNyF,KAAM,UAGViP,gBAAiB,OACjBjP,KAAM,YAER,CACE8O,OAAQ,CACN,CACEe,WAAY,CACV,CACEH,aAAc,0BACdnV,KAAM,aACNyF,KAAM,WAER,CACE0P,aAAc,0BACdnV,KAAM,aACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,cACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,cACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,QACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,QACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,WACNyF,KAAM,WAER,CACE0P,aAAc,UACdnV,KAAM,OACNyF,KAAM,WAER,CACE0P,aAAc,SACdnV,KAAM,SACNyF,KAAM,UAER,CACE0P,aAAc,UACdnV,KAAM,OACNyF,KAAM,YAGV0P,aAAc,iCACdnV,KAAM,QACNyF,KAAM,SAER,CACE6P,WAAY,CACV,CACEH,aAAc,kCACdnV,KAAM,gBACNyF,KAAM,SAER,CACE0P,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U,QAAS,GACTC,SAAS,EACThP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,GACRvU,KAAM,cACNwU,QAAS,CACP,CACExU,KAAM,GACNyF,KAAM,YAGVgP,SAAS,EACThP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,CACN,CACEvU,KAAM,QACNyF,KAAM,WAER,CACEzF,KAAM,MACNyF,KAAM,WAER,CACEzF,KAAM,SACNyF,KAAM,YAGVzF,KAAM,eACNwU,QAAS,CACP,CACExU,KAAM,UACNyF,KAAM,SAGVgP,SAAS,EACThP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,GACRvU,KAAM,WACNwU,QAAS,CACP,CACExU,KAAM,GACNyF,KAAM,UAGVgP,SAAS,EACThP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,GACRvU,KAAM,UACNwU,QAAS,CACP,CACExU,KAAM,GACNyF,KAAM,WAGVgP,SAAS,EACThP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,GACRvU,KAAM,WACNwU,QAAS,CACP,CACExU,KAAM,GACNyF,KAAM,WAGVgP,SAAS,EACThP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,CACN,CACEvU,KAAM,SACNyF,KAAM,WAER,CACEzF,KAAM,MACNyF,KAAM,WAER,CACEzF,KAAM,UACNyF,KAAM,YAGVzF,KAAM,iBACNwU,QAAS,GACTC,SAAS,EACThP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,CACN,CACEvU,KAAM,GACNyF,KAAM,YAGVzF,KAAM,YACNwU,QAAS,CACP,CACExU,KAAM,GACNyF,KAAM,YAGVgP,SAAS,EACThP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,GACRvU,KAAM,kBACNwU,QAAS,GACTC,SAAS,EACThP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,CACN,CACEvU,KAAM,MACNyF,KAAM,WAER,CACEzF,KAAM,UACNyF,KAAM,YAGVzF,KAAM,QACNwU,QAAS,GACTC,SAAS,EACThP,KAAM,YAER,CACE6O,UAAU,EACVC,OAAQ,GACRvU,KAAM,QACNwU,QAAS,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","file":"static/js/main.8dc630ca.chunk.js","sourcesContent":["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 SvgCoins(_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: \"100%\",\n height: \"100%\",\n viewBox: \"0 0 14 13\",\n fill: \"currentColor\",\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.9097 7.30981C13.7773 6.58465 13.4824 5.91502 13.034 5.32026C12.542 4.66745 11.924 4.17448 11.1969 3.85649C10.6323 3.60916 10.0393 3.48886 9.43743 3.48718V3.31557C9.43662 3.13133 9.43662 2.9471 9.43823 2.76287C9.44308 2.29598 9.28636 1.87031 8.9721 1.49763C8.66673 1.1359 8.27734 0.852398 7.74577 0.605071C6.99284 0.255954 6.14539 0.0616259 5.15577 0.0119923C4.44242 -0.0250225 3.74847 0.0237698 3.09249 0.156687C2.37269 0.302222 1.76518 0.529359 1.23522 0.851557C0.870874 1.07365 0.588122 1.32518 0.370808 1.62046C0.122795 1.95864 0.00242358 2.29598 0.00242358 2.65351C0.00080786 3.94146 0.00080786 5.2294 0.00080786 6.51735V6.6141C0.00080786 7.82381 0.00080786 9.03268 0 10.2424C0 10.6992 0.148646 11.1131 0.444323 11.4715C0.756157 11.8509 1.15847 12.1453 1.71105 12.3993C2.39692 12.7148 3.16358 12.9024 4.05384 12.9739C4.27116 12.9916 4.4917 13 4.71063 13C5.05398 13 5.39974 12.9781 5.73904 12.9361C6.37806 12.8561 6.93225 12.7199 7.43312 12.5196C7.43716 12.518 7.4404 12.5171 7.44201 12.518C7.93965 12.7737 8.47607 12.9293 9.03511 12.9798C9.71291 13.0412 10.3729 12.9504 10.9974 12.7098C11.8618 12.3766 12.5679 11.8273 13.0954 11.0761C13.8871 9.95048 14.161 8.68272 13.9097 7.30981ZM4.95542 7.29551C4.89402 7.6135 4.86413 7.92139 4.86413 8.22929C4.07727 8.24107 3.36716 8.14685 2.69502 7.94158C2.20627 7.79268 1.82738 7.61097 1.501 7.37038C1.25299 7.18699 1.09304 7.00275 0.997708 6.78908C0.955699 6.69401 0.934695 6.604 0.934695 6.51315V6.24142C0.98155 6.2776 1.03083 6.31377 1.08092 6.34826C1.50424 6.63765 2.00188 6.8589 2.60212 7.02462C3.34939 7.23241 4.14029 7.32327 4.95542 7.29551ZM4.96026 9.19588C5.02166 9.51303 5.11376 9.82093 5.23413 10.1128C5.2002 10.1154 5.16546 10.1179 5.13153 10.1196C4.24531 10.1633 3.44149 10.0708 2.67483 9.83523C2.20223 9.68969 1.81769 9.50462 1.49939 9.26991C1.25299 9.08736 1.09384 8.90481 0.999323 8.69366C0.955699 8.59691 0.934695 8.50438 0.934695 8.41184V8.14264C1.50343 8.57168 2.17476 8.85181 3.08683 9.04109C3.69515 9.16728 4.32528 9.21944 4.96026 9.19588ZM8.45426 2.89915C8.31692 3.23313 8.08749 3.49559 7.75304 3.7017C7.379 3.9322 6.94114 4.10634 6.41441 4.23337C5.88607 4.36124 5.32542 4.42601 4.70175 4.43106C3.94559 4.42181 3.27991 4.32422 2.66594 4.13158C2.16345 3.97426 1.80395 3.79676 1.5002 3.55701C1.27884 3.38203 1.11969 3.19443 1.01467 2.98412C0.894302 2.74268 0.909651 2.52059 1.06395 2.2842C1.20694 2.06463 1.41295 1.8762 1.71105 1.69196C2.08832 1.4581 2.53022 1.28732 3.09976 1.15356C3.61518 1.03242 4.14109 0.973537 4.7074 0.973537C4.85605 0.973537 5.00954 0.977744 5.16546 0.986156C5.78994 1.01981 6.38533 1.13253 6.93387 1.32265C7.44282 1.49848 7.82009 1.70795 8.11981 1.98219C8.25149 2.10249 8.35005 2.22447 8.41952 2.35486C8.5205 2.54246 8.53101 2.71071 8.45426 2.89915ZM5.14849 5.39008C5.37793 5.37578 5.60736 5.34634 5.82952 5.31774C5.59686 5.62563 5.4062 5.95708 5.25917 6.31125C4.80273 6.34994 4.32771 6.33817 3.80745 6.27507C3.26941 6.20946 2.80247 6.09841 2.37915 5.93437C2.02369 5.79725 1.61572 5.61217 1.28207 5.28493C1.07769 5.08471 0.973472 4.90468 0.943581 4.70278C0.933887 4.63464 0.933887 4.55977 0.934695 4.48069C0.934695 4.44957 0.935502 4.41844 0.934695 4.38732C0.934695 4.37217 0.934695 4.35703 0.934695 4.34273C1.02517 4.41087 1.11889 4.47817 1.21664 4.53958C1.71994 4.85589 2.30806 5.08219 3.01494 5.23193C3.7202 5.38083 4.43758 5.43467 5.14849 5.39008ZM1.34509 10.3139C1.86293 10.6058 2.44297 10.8136 3.11915 10.9474C3.81633 11.0862 4.53371 11.1299 5.31168 11.082C5.40378 11.0761 5.49426 11.0668 5.58555 11.0567C5.63725 11.0508 5.68976 11.0458 5.74146 11.0407C5.94505 11.3276 6.17771 11.5901 6.43461 11.8239C6.08238 11.9114 5.71481 11.972 5.33996 12.0023C4.41496 12.078 3.5247 11.9897 2.69502 11.739C2.13921 11.5707 1.72074 11.3579 1.37821 11.0685C1.1714 10.8944 1.05103 10.7362 0.987206 10.5562C0.958123 10.4737 0.941158 10.3888 0.937118 10.3097C0.933079 10.2214 0.932271 10.1322 0.932271 10.0413C1.06557 10.1431 1.2021 10.2331 1.34509 10.3139ZM9.43339 4.45546C10.4093 4.4563 11.3246 4.85253 12.0113 5.57011C12.6963 6.28601 13.0712 7.2383 13.068 8.25032C13.0607 10.3341 11.4304 12.03 9.42935 12.0292C8.44053 12.0284 7.51633 11.6229 6.82723 10.8885C6.14055 10.1574 5.77459 9.1799 5.79559 8.13507C5.83598 6.10682 7.46867 4.45546 9.43339 4.45546Z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCoins);\nexport default __webpack_public_path__ + \"static/media/coins.182e0b62.svg\";\nexport { ForwardRef as ReactComponent };","import { Token } from 'services/observables/tokens';\n\nexport const shortenString = (\n string: string,\n separator = '...',\n toLength = 13\n): string => {\n const startEndLength = Math.floor((toLength - separator.length) / 2);\n const start = string.substring(0, startEndLength);\n const end = string.substring(string.length - startEndLength, string.length);\n return start + separator + end;\n};\n\nexport const classNameGenerator = (object: {\n [key: string]: unknown;\n}): string => {\n return Object.entries(object)\n .filter(([k, v]) => k && v)\n .map((x) => x[0])\n .join(' ');\n};\n\nexport const sanitizeNumberInput = (\n input: string,\n precision?: number\n): string => {\n const sanitized = input\n .replace(/,/, '.')\n .replace(/[^\\d.]/g, '')\n .replace(/\\./, 'x')\n .replace(/\\./g, '')\n .replace(/x/, '.');\n if (!precision) return sanitized;\n const [integer, decimals] = sanitized.split('.');\n if (decimals) return `${integer}.${decimals.substring(0, precision)}`;\n else return sanitized;\n};\n\nexport const updateArray = (\n arr: T[],\n conditioner: (element: T) => boolean,\n updater: (element: T) => T\n) => arr.map((element) => (conditioner(element) ? updater(element) : element));\n\nexport const mapIgnoreThrown = async (\n input: readonly T[],\n iteratee: (value: T, index: number) => Promise\n): Promise => {\n const IGNORE_TOKEN = 'IGNORE_TOKEN';\n const res = await Promise.all(\n input.map((val, index) => iteratee(val, index).catch(() => IGNORE_TOKEN))\n );\n return res.filter((res) => res !== IGNORE_TOKEN) as V[];\n};\n\nexport const wait = async (ms: number = 0) =>\n new Promise((resolve) => setTimeout(resolve, ms));\n\nexport const get7DaysAgo = () => new Date(Date.now() - 7 * 24 * 60 * 60 * 1000);\n\nexport const sortTokenBalanceAlphabetic = (a: Token, b: Token) => {\n const diff = Number(b.balance) - Number(a.balance);\n if (diff !== 0) return diff;\n\n return a.symbol.toUpperCase().localeCompare(b.symbol.toUpperCase());\n};\n\nexport const openNewTab = (url: string) =>\n window.open(url, '_blank', 'noopener');\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 SvgDollar(_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: \"100%\",\n height: \"100%\",\n viewBox: \"0 0 9 16\",\n fill: \"currentColor\",\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: \"M7.04 5.776C6.88 5.46667 6.69867 5.17333 6.496 4.896C6.29333 4.608 6.048 4.37867 5.76 4.208C5.472 4.02667 5.12 3.936 4.704 3.936C4.064 3.936 3.59467 4.06933 3.296 4.336C3.008 4.592 2.864 4.96533 2.864 5.456C2.864 5.86133 2.98667 6.19733 3.232 6.464C3.47733 6.72 3.79733 6.944 4.192 7.136C4.58667 7.31733 5.008 7.49333 5.456 7.664C5.744 7.77067 6.05333 7.90933 6.384 8.08C6.71467 8.25067 7.024 8.464 7.312 8.72C7.6 8.96533 7.83467 9.27467 8.016 9.648C8.19733 10.0107 8.288 10.448 8.288 10.96C8.288 11.8453 8.03733 12.576 7.536 13.152C7.03467 13.728 6.29867 14.0587 5.328 14.144V15.792H4.144V14.096C3.39733 13.9467 2.74133 13.6053 2.176 13.072C1.61067 12.528 1.17867 11.8613 0.88 11.072L2.032 10.384C2.37333 11.152 2.77333 11.76 3.232 12.208C3.69067 12.656 4.26667 12.88 4.96 12.88C5.6 12.88 6.08 12.72 6.4 12.4C6.72 12.0693 6.88 11.6267 6.88 11.072C6.88 10.592 6.74667 10.1973 6.48 9.888C6.224 9.57867 5.89333 9.32267 5.488 9.12C5.09333 8.91733 4.68267 8.74133 4.256 8.592C3.97867 8.496 3.67467 8.368 3.344 8.208C3.024 8.048 2.72 7.84533 2.432 7.6C2.144 7.344 1.904 7.03467 1.712 6.672C1.53067 6.30933 1.44 5.872 1.44 5.36C1.44 4.90133 1.55733 4.48533 1.792 4.112C2.02667 3.728 2.34667 3.41333 2.752 3.168C3.15733 2.912 3.62133 2.74667 4.144 2.672V0.912H5.328V2.688C5.808 2.77333 6.23467 2.93867 6.608 3.184C6.992 3.42933 7.312 3.71733 7.568 4.048C7.824 4.37867 8.016 4.70933 8.144 5.04L7.04 5.776Z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDollar);\nexport default __webpack_public_path__ + \"static/media/dollar.af5c9859.svg\";\nexport { ForwardRef as ReactComponent };","import { createSlice, nanoid, PayloadAction } from '@reduxjs/toolkit';\nimport dayjs from 'dayjs';\n\nexport enum NotificationType {\n info,\n success,\n error,\n pending,\n}\n\nexport interface BaseNotification {\n type?: NotificationType;\n title: string;\n msg: string;\n showSeconds?: number;\n txHash?: string;\n updatedInfo?: UpdatedInfo;\n}\n\ninterface UpdatedInfo {\n successTitle?: string;\n successMsg?: string;\n errorTitle?: string;\n errorMsg?: string;\n}\n\nexport interface Notification extends BaseNotification {\n id: string;\n timestamp: number;\n}\n\nexport interface NotificationState {\n notifications: Notification[];\n}\n\nexport const initialState: NotificationState = {\n notifications: [],\n};\n\nconst defaultShowSeconds = ({ type }: BaseNotification) => {\n switch (type) {\n case NotificationType.success:\n return 10;\n default:\n return 8;\n }\n};\n\nconst notificationSlice = createSlice({\n name: 'notification',\n initialState,\n reducers: {\n setNotifications: (state, action) => {\n state.notifications = action.payload;\n },\n addNotification: (state, action: PayloadAction) => {\n const length = state.notifications.unshift({\n id: nanoid(),\n type: NotificationType.info,\n timestamp: dayjs().unix(),\n showSeconds: defaultShowSeconds(action.payload),\n ...action.payload,\n });\n\n if (length > 100) {\n state.notifications.pop();\n }\n },\n removeNotification: (state, action: PayloadAction) => {\n const index = state.notifications.findIndex(\n (notification) => notification.id === action.payload\n );\n if (index > -1) state.notifications.splice(index, 1);\n },\n hideAlert: (state, action: PayloadAction) => {\n const index = state.notifications.findIndex(\n (notification) => notification.id === action.payload\n );\n if (index > -1) state.notifications[index].showSeconds = 0;\n },\n setStatus: (\n state,\n action: PayloadAction<{\n id: string;\n type: NotificationType;\n title?: string;\n msg?: string;\n }>\n ) => {\n const index = state.notifications.findIndex(\n (notification) => notification.id === action.payload.id\n );\n if (index > -1) {\n const oldNotification = state.notifications[index];\n const notification = {\n id: oldNotification.id,\n type: action.payload.type,\n title: action.payload.title\n ? action.payload.title\n : oldNotification.title,\n msg: action.payload.msg ? action.payload.msg : oldNotification.msg,\n showSeconds: oldNotification.showSeconds,\n txHash: oldNotification.txHash,\n timestamp: oldNotification.timestamp,\n };\n state.notifications[index] = notification;\n }\n },\n },\n});\n\nexport const {\n setNotifications,\n addNotification,\n removeNotification,\n hideAlert,\n setStatus,\n} = notificationSlice.actions;\n\nexport const notification = notificationSlice.reducer;\n","import { initialState as UserState } from 'redux/user/user';\nimport { Notification } from 'redux/notification/notification';\n\nconst selected_lists = 'userTokenLists';\nconst conversion = 'conversion';\nconst autoLogin = 'loginAuto';\nconst darkMode = 'darkMode';\nconst slippageTolerance = 'slippageTolerance';\nconst usdToggle = 'usdToggle';\nconst notifications = 'notifications';\nconst showBanner = 'showBanner';\n\nexport const getTokenListLS = (): string[] => {\n const list = localStorage.getItem(selected_lists);\n return list ? JSON.parse(list) : [];\n};\n\nexport const setTokenListLS = (userListIds: string[]) => {\n localStorage.setItem(selected_lists, JSON.stringify(userListIds));\n};\n\nexport const getConversionLS = () => {\n const conv = localStorage.getItem(conversion);\n if (conv) return JSON.parse(conv);\n};\n\nexport const setConversionLS = (conv: any) => {\n localStorage.setItem(conversion, JSON.stringify(conv));\n};\n\nexport const getAutoLoginLS = (): boolean => {\n const auto = localStorage.getItem(autoLogin);\n return auto && JSON.parse(auto);\n};\n\nexport const setAutoLoginLS = (flag: boolean) => {\n localStorage.setItem(autoLogin, JSON.stringify(flag));\n};\n\nexport const getDarkModeLS = (): boolean => {\n const dark = localStorage.getItem(darkMode);\n return dark && JSON.parse(dark);\n};\n\nexport const setDarkModeLS = (flag: boolean) => {\n localStorage.setItem(darkMode, JSON.stringify(flag));\n};\n\nexport const getSlippageToleranceLS = (): number => {\n const slippage = localStorage.getItem(slippageTolerance);\n if (slippage) return JSON.parse(slippage);\n\n return UserState.slippageTolerance;\n};\n\nexport const setSlippageToleranceLS = (flag: number) => {\n localStorage.setItem(slippageTolerance, JSON.stringify(flag));\n};\n\nexport const getUsdToggleLS = (): boolean => {\n const usd = localStorage.getItem(usdToggle);\n return usd && JSON.parse(usd);\n};\n\nexport const setUsdToggleLS = (flag: boolean) => {\n localStorage.setItem(usdToggle, JSON.stringify(flag));\n};\n\nexport const getNotificationsLS = (): Notification[] => {\n const notify = localStorage.getItem(notifications);\n return notify ? JSON.parse(notify) : [];\n};\n\nexport const setNotificationsLS = (notify: Notification[]) => {\n localStorage.setItem(notifications, JSON.stringify(notify));\n};\n\nexport const getShowBannerLS = (): boolean | undefined => {\n const show = localStorage.getItem(showBanner);\n return show ? JSON.parse(show) : undefined;\n};\n\nexport const setShowBannerLS = (flag: boolean) => {\n localStorage.setItem(showBanner, JSON.stringify(flag));\n};\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport {\n getShowBannerLS,\n setDarkModeLS,\n setShowBannerLS,\n setSlippageToleranceLS,\n setUsdToggleLS,\n} from 'utils/localStorage';\n\nexport interface UserState {\n darkMode: boolean;\n walletModal: boolean;\n slippageTolerance: number;\n usdToggle: boolean;\n locale: string;\n loadingBalances: boolean;\n showBanner: boolean;\n}\n\nexport const initialState: UserState = {\n darkMode: false,\n walletModal: false,\n slippageTolerance: 0.005,\n usdToggle: false,\n locale: 'en',\n loadingBalances: false,\n showBanner: getShowBannerLS() !== false,\n};\n\nconst userSlice = createSlice({\n name: 'user',\n initialState,\n reducers: {\n setDarkMode: (state, action: PayloadAction) => {\n state.darkMode = action.payload;\n\n const root = window.document.documentElement;\n if (action.payload) root.classList.add('dark');\n else root.classList.remove('dark');\n\n setDarkModeLS(action.payload);\n },\n setSlippageTolerance: (state, action) => {\n setSlippageToleranceLS(action.payload);\n state.slippageTolerance = action.payload;\n },\n setLocale: (state, action) => {\n state.locale = action.payload;\n },\n openWalletModal: (state, action) => {\n state.walletModal = action.payload;\n },\n setUsdToggle: (state, action: PayloadAction) => {\n setUsdToggleLS(action.payload);\n state.usdToggle = action.payload;\n },\n setLoadingBalances: (state, action) => {\n state.loadingBalances = action.payload;\n },\n setShowBanner: (state, action) => {\n setShowBannerLS(action.payload);\n state.showBanner = action.payload;\n },\n },\n});\n\nexport const {\n setDarkMode,\n setSlippageTolerance,\n setLocale,\n openWalletModal,\n setUsdToggle,\n setLoadingBalances,\n setShowBanner,\n} = userSlice.actions;\n\nexport const user = userSlice.reducer;\n","import { createSelector, createSlice } from '@reduxjs/toolkit';\nimport { KeeprDaoToken } from 'services/api/keeperDao';\nimport { TokenList, Token } from 'services/observables/tokens';\nimport { RootState } from 'redux/index';\n\ninterface BancorState {\n tokenLists: TokenList[];\n tokens: Token[];\n keeperDaoTokens: KeeprDaoToken[];\n allTokens: Token[];\n bntPrice: string | null;\n}\n\nexport const initialState: BancorState = {\n tokenLists: [],\n tokens: [],\n keeperDaoTokens: [],\n allTokens: [],\n bntPrice: null,\n};\n\nconst bancorSlice = createSlice({\n name: 'bancor',\n initialState,\n reducers: {\n setTokenLists: (state, action) => {\n state.tokenLists = action.payload;\n },\n setTokenList: (state, action) => {\n state.tokens = action.payload;\n },\n setAllTokens: (state, action) => {\n state.allTokens = action.payload;\n },\n updateTokens: (state, action) => {\n const tokenToUpdate = action.payload as Token[];\n state.tokens = state.tokens.map(\n (token) =>\n tokenToUpdate.find(\n (updatedToken) => updatedToken.address === token.address\n ) || token\n );\n },\n setKeeperDaoTokens: (state, action) => {\n state.keeperDaoTokens = action.payload;\n },\n setBntPrice: (state, action) => {\n state.bntPrice = action.payload;\n },\n },\n});\n\nexport const {\n setTokenLists,\n setTokenList,\n setAllTokens,\n setKeeperDaoTokens,\n updateTokens,\n setBntPrice,\n} = bancorSlice.actions;\n\nexport const getTokenById = (id: string) =>\n createSelector(\n (state: RootState) => state.bancor.tokens,\n (tokens: Token[]) => {\n return tokens.find((t) => t.address === id);\n }\n );\n\nexport const bancor = bancorSlice.reducer;\n","import { createSelector, createSlice } from '@reduxjs/toolkit';\nimport { Pool } from 'services/observables/tokens';\nimport { Statistic } from 'services/observables/statistics';\nimport { RootState } from 'redux/index';\nimport { isEqual, orderBy } from 'lodash';\nimport { createSelectorCreator, defaultMemoize } from 'reselect';\n\ninterface PoolState {\n pools: Pool[];\n statistics: Statistic[];\n}\n\nconst initialState: PoolState = {\n pools: [],\n statistics: [],\n};\n\nconst poolSlice = createSlice({\n name: 'pool',\n initialState,\n reducers: {\n setPools: (state, action) => {\n state.pools = action.payload;\n },\n setStats: (state, action) => {\n state.statistics = action.payload;\n },\n },\n});\n\nexport interface TopPool {\n tknSymbol: string;\n tknLogoURI: string;\n apr: number;\n poolName: string;\n}\n\nexport const getPools = createSelector(\n (state: RootState) => state.pool.pools,\n (pools: Pool[]) => {\n return orderBy(pools, 'liquidity', 'desc');\n }\n);\n\nexport const getProtectedPools = createSelector(\n (state: RootState) => state.pool.pools,\n (pools: Pool[]) => {\n const protectedPools = pools.filter((p) => p.isProtected);\n return orderBy(protectedPools, 'liquidity', 'desc');\n }\n);\n\nexport const getTopPools = createSelector(\n (state: RootState) => state.pool.pools,\n (pools: Pool[]) => {\n const filteredPools = pools\n .filter((p) => p.isWhitelisted && p.liquidity > 100000)\n .map((p) => {\n return {\n tknSymbol: p.reserves[0].symbol,\n tknLogoURI: p.reserves[0].logoURI,\n tknApr: p.apr + (p.reserves[0].rewardApr || 0),\n bntSymbol: p.reserves[1].symbol,\n bntLogoURI: p.reserves[1].logoURI,\n bntApr: p.apr + (p.reserves[1].rewardApr || 0),\n poolName: p.name,\n };\n });\n const winningBntPool = orderBy(filteredPools, 'bntApr', 'desc').slice(0, 1);\n const topPools: TopPool[] = filteredPools.map((p) => {\n return {\n tknSymbol: p.tknSymbol,\n tknLogoURI: p.tknLogoURI,\n poolName: p.poolName,\n apr: p.tknApr,\n };\n });\n if (winningBntPool.length === 1) {\n topPools.push({\n tknSymbol: winningBntPool[0].bntSymbol,\n tknLogoURI: winningBntPool[0].bntLogoURI,\n apr: winningBntPool[0].bntApr,\n poolName: winningBntPool[0].poolName,\n });\n }\n return orderBy(topPools, 'apr', 'desc').slice(0, 20);\n }\n);\n\nexport interface SelectedPool {\n status: 'loading' | 'ready';\n pool?: Pool;\n}\n\nconst createDeepEqualSelector = createSelectorCreator(defaultMemoize, isEqual);\n\nexport const getPoolById = (id: string) =>\n createDeepEqualSelector(\n (state: RootState) => state.pool.pools,\n (pools: Pool[]) => {\n if (pools.length === 0) {\n return { status: 'loading' } as SelectedPool;\n }\n\n const pool = pools.find((p) => p.pool_dlt_id === id);\n return { status: 'ready', pool } as SelectedPool;\n }\n );\n\nexport const { setPools, setStats } = poolSlice.actions;\n\nexport const pool = poolSlice.reducer;\n","export type EthAddress = string;\n\nexport enum EthNetworks {\n Mainnet = 1,\n Ropsten = 3,\n}\n\nexport enum PoolType {\n Liquid = 0,\n Traditional = 1,\n ChainLink = 2,\n}\n\nexport enum ErrorCode {\n DeniedTx = 4001,\n}\n\nexport enum SignatureType {\n EIP712 = 2,\n}\n\nexport interface RegisteredContracts {\n BancorNetwork: string;\n BancorConverterRegistry: string;\n LiquidityProtection: string;\n LiquidityProtectionStore: string;\n StakingRewards: string;\n}\n\nexport interface ConverterAndAnchor {\n converterAddress: string;\n anchorAddress: string;\n}\n\nexport interface MinimalPool {\n anchorAddress: string;\n converterAddress: string;\n reserves: string[];\n}\n","import { createSelector, createSlice, RootState } from '@reduxjs/toolkit';\nimport { BigNumber } from 'bignumber.js';\nimport { get } from 'lodash';\nimport { Rewards } from 'services/observables/liquidity';\nimport { PoolToken } from 'services/observables/tokens';\nimport { LockedAvailableBnt } from 'services/web3/lockedbnt/lockedbnt';\nimport {\n ProtectedPosition,\n ProtectedPositionGrouped,\n} from 'services/web3/protection/positions';\n\ninterface LiquidityState {\n poolTokens: PoolToken[];\n lockedAvailableBNT: LockedAvailableBnt;\n protectedPositions: ProtectedPosition[];\n rewards?: Rewards;\n loadingPositions: boolean;\n loadingRewards: boolean;\n loadingLockedBnt: boolean;\n}\n\nconst initialState: LiquidityState = {\n poolTokens: [],\n lockedAvailableBNT: {\n locked: [],\n available: 0,\n },\n protectedPositions: [],\n rewards: undefined,\n loadingPositions: false,\n loadingRewards: false,\n loadingLockedBnt: false,\n};\n\nconst liquiditySlice = createSlice({\n name: 'liquidity',\n initialState,\n reducers: {\n setPoolTokens: (state, action) => {\n state.poolTokens = action.payload;\n },\n setLockedAvailableBNT: (state, action) => {\n state.lockedAvailableBNT = action.payload;\n },\n setProtectedPositions: (state, action) => {\n state.protectedPositions = action.payload;\n },\n setRewards: (state, action) => {\n state.rewards = action.payload;\n },\n setLoadingPositions: (state, action) => {\n state.loadingPositions = action.payload;\n },\n setLoadingRewards: (state, action) => {\n state.loadingRewards = action.payload;\n },\n setLoadingLockedBnt: (state, action) => {\n state.loadingLockedBnt = action.payload;\n },\n },\n});\n\nexport const getGroupedPositions = createSelector(\n (state: RootState) => state.liquidity.protectedPositions,\n (protectedPositions: ProtectedPosition[]) => {\n return protectedPositions.reduce(\n ((obj) => (acc: ProtectedPositionGrouped[], val: ProtectedPosition) => {\n const symbol = val.reserveToken.symbol;\n\n const bnt = val.pool.reserves[1];\n const bntUSDPrice = bnt.usdPrice\n ? new BigNumber(bnt.usdPrice)\n : new BigNumber(0);\n const poolId = val.pool.pool_dlt_id;\n const groupId = `${poolId}-${symbol}`;\n const filtered = protectedPositions.filter(\n (pos) =>\n pos.pool.pool_dlt_id === poolId &&\n pos.reserveToken.symbol === symbol\n );\n\n let item: ProtectedPositionGrouped = obj.get(groupId);\n\n if (!item) {\n const calcSum = (key: string): string => {\n return filtered\n .map((pos) => Number(get(pos, key)))\n .reduce((sum, current) => sum + current, 0)\n .toString();\n };\n\n const sumFees = calcSum('fees');\n const sumInitalStakeTkn = calcSum('initialStake.tknAmount');\n const sumInitalStakeUSD = calcSum('initialStake.usdAmount');\n\n const sumRoi = new BigNumber(sumFees)\n .div(sumInitalStakeTkn)\n .toString();\n\n item = {\n groupId: groupId,\n positionId: val.positionId,\n pool: val.pool,\n fees: sumFees,\n initialStake: {\n usdAmount: sumInitalStakeUSD,\n tknAmount: sumInitalStakeTkn,\n },\n protectedAmount: {\n usdAmount: calcSum('protectedAmount.usdAmount'),\n tknAmount: calcSum('protectedAmount.tknAmount'),\n },\n claimableAmount: {\n usdAmount: calcSum('claimableAmount.usdAmount'),\n tknAmount: calcSum('claimableAmount.tknAmount'),\n },\n reserveToken: val.reserveToken,\n roi: {\n fees: sumRoi,\n reserveRewards: new BigNumber(val.rewardsAmount)\n .times(bntUSDPrice)\n .div(sumInitalStakeUSD)\n .toString(),\n },\n aprs: val.aprs,\n timestamps: val.timestamps,\n currentCoveragePercent: val.currentCoveragePercent,\n rewardsMultiplier: val.rewardsMultiplier,\n rewardsAmount: val.rewardsAmount,\n subRows: [],\n };\n\n obj.set(groupId, item);\n acc.push(item);\n }\n\n if (filtered.length > 1) {\n item.subRows.push(val);\n }\n return acc;\n })(new Map()),\n []\n );\n }\n);\n\nexport const getPositionById = (id: string): any =>\n createSelector(\n getGroupedPositions,\n (positions: ProtectedPositionGrouped[]) => {\n return positions.find((pos) => pos.groupId === id);\n }\n );\n\nexport interface MyStakeSummary {\n protectedValue: number;\n claimableValue: number;\n fees: number;\n}\n\nexport const getStakeSummary = createSelector(\n (state: RootState) => state.liquidity.protectedPositions,\n (protectedPositions: ProtectedPosition[]) => {\n if (protectedPositions.length === 0) return;\n\n const initialStake = protectedPositions\n .map((x) => Number(x.initialStake.usdAmount))\n .reduce((sum, current) => sum + current, 0);\n\n const protectedValue = protectedPositions\n .map((x) => Number(x.protectedAmount.usdAmount))\n .reduce((sum, current) => sum + current, 0);\n\n const claimableValue = protectedPositions\n .map((x) => Number(x.claimableAmount.usdAmount))\n .reduce((sum, current) => sum + current, 0);\n\n const fees = protectedValue - initialStake;\n\n return {\n protectedValue,\n claimableValue,\n fees,\n };\n }\n);\n\nexport const {\n setPoolTokens,\n setLockedAvailableBNT,\n setProtectedPositions,\n setRewards,\n setLoadingPositions,\n setLoadingRewards,\n setLoadingLockedBnt,\n} = liquiditySlice.actions;\n\nexport const liquidity = liquiditySlice.reducer;\n","import { configureStore } from '@reduxjs/toolkit';\nimport { useDispatch, TypedUseSelectorHook, useSelector } from 'react-redux';\nimport { user } from 'redux/user/user';\nimport { bancor } from 'redux/bancor/bancor';\nimport { pool } from 'redux/bancor/pool';\nimport { notification } from 'redux/notification/notification';\nimport { liquidity } from './liquidity/liquidity';\n\nexport const store = configureStore({\n reducer: {\n user,\n notification,\n bancor,\n pool,\n liquidity,\n },\n});\n\n// @ts-ignore\nexport type RootState = ReturnType;\nexport type AppDispatch = typeof store.dispatch;\nexport const useAppDispatch = () => useDispatch();\nexport const useAppSelector: TypedUseSelectorHook = useSelector;\n","import { Switch } from '@headlessui/react';\nimport { ReactComponent as IconCoins } from 'assets/icons/coins.svg';\nimport { ReactComponent as IconDollar } from 'assets/icons/dollar.svg';\nimport 'elements/swapSwitch/SwapSwitch.css';\nimport { useAppSelector } from 'redux/index';\nimport { useDispatch } from 'react-redux';\nimport { setUsdToggle } from 'redux/user/user';\n\nexport const SwapSwitch = () => {\n const dispatch = useDispatch();\n const isEnabled = useAppSelector((state) => state.user.usdToggle);\n const setIsEnabled = (state: boolean) => {\n dispatch(setUsdToggle(state));\n };\n\n const switchStyles = `swap-switch !min-w-[0px] ${\n isEnabled\n ? 'bg-primary border-primary dark:bg-primary-light dark:border-primary-light'\n : 'bg-blue-1 border-blue-1 dark:bg-grey-3 dark:border-grey-3'\n }`;\n\n const switchToggleStyles = `swap-switch-toggle ${\n isEnabled ? 'md:translate-x-12 translate-x-20' : 'translate-x-0'\n }`;\n\n const coinIconStyles = isEnabled\n ? 'text-grey-4'\n : 'text-blue-4 dark:text-grey-3';\n\n const dollarIconStyles = isEnabled\n ? 'text-primary dark:text-primary-light'\n : 'dark:text-grey-4';\n\n return (\n
\n \n setIsEnabled(!isEnabled)}\n className={switchStyles}\n >\n Toggle USD Switch\n \n \n\n \n
\n );\n};\n","import { classNameGenerator } from 'utils/pureFunctions';\nimport 'elements/swapHeader/SwapHeader.css';\nimport { SwapSwitch } from 'elements/swapSwitch/SwapSwitch';\n\ninterface SwapHeaderProps {\n isLimit: boolean;\n setIsLimit: Function;\n}\n\nexport const SwapHeader = ({ isLimit, setIsLimit }: SwapHeaderProps) => {\n const marketActive = classNameGenerator({\n 'swap-header-active': !isLimit,\n });\n\n const limitActive = classNameGenerator({\n 'swap-header-active': isLimit,\n });\n\n return (\n
\n
\n
\n \n |\n \n
\n\n \n
\n
\n );\n};\n","import { classNameGenerator, sanitizeNumberInput } from 'utils/pureFunctions';\nimport 'components/inputField/InputField.css';\n\ninterface InputFieldProps {\n input: string;\n setInput?: Function;\n placeholder?: string;\n disabled?: boolean;\n format?: boolean;\n bgGrey?: boolean;\n borderGrey?: boolean;\n onChange?: Function;\n onBlur?: Function;\n customClass?: string;\n dataCy?: string;\n}\n\nexport const InputField = ({\n input,\n setInput,\n placeholder,\n format,\n bgGrey,\n borderGrey,\n onChange,\n onBlur,\n dataCy,\n customClass,\n}: InputFieldProps) => {\n const inputFieldStyles = `input-field justify-center ${classNameGenerator({\n 'input-field-bg-grey': bgGrey,\n 'input-field-border': borderGrey,\n 'text-right': format,\n [`${customClass}`]: customClass,\n })}`;\n\n return (\n {\n const val = format\n ? sanitizeNumberInput(event.target.value)\n : event.target.value;\n onChange ? onChange(val) : setInput && setInput(val);\n }}\n onBlur={() => onBlur && onBlur()}\n />\n );\n};\n","import axios from 'axios';\nimport { EthNetworks } from 'services/web3/types';\nimport { utils } from 'ethers';\nimport { UTCTimestamp } from 'lightweight-charts';\n\ninterface TokenMeta {\n id: string;\n image: string;\n contract: string;\n symbol: string;\n name: string;\n precision?: number;\n}\n\nexport interface WelcomeData {\n total_liquidity: {\n usd: string;\n bnt: string;\n };\n total_liquidity_24h_ago: {\n usd: string;\n bnt: string;\n };\n total_volume_24h: USDPrice;\n total_volume_24h_ago: USDPrice;\n bnt_price_24h_ago: USDPrice;\n bnt_price: USDPrice;\n bnt_supply: string;\n bnt_supply_24h_ago: string;\n swaps: Swap[];\n pools: APIPool[];\n tokens: APIToken[];\n}\n\nexport interface USDPrice {\n usd: null | string;\n}\n\nexport interface APIReserve {\n address: string;\n weight: string;\n balance: string;\n apr?: number;\n}\n\nexport interface APIReward {\n starts_at: UTCTimestamp;\n ends_at: UTCTimestamp;\n}\n\nexport interface APIPool {\n pool_dlt_id: string;\n converter_dlt_id: string;\n reserves: APIReserve[];\n name: string;\n liquidity: USDPrice;\n volume_24h: USDPrice;\n fees_24h: USDPrice;\n fee: string;\n version: number;\n supply: string;\n decimals: number;\n isWhitelisted: boolean;\n reward?: APIReward;\n}\n\nexport interface Swap {\n source_token_dlt_id: string;\n target_token_dlt_id: string;\n tx_hash: string;\n input_amount: string;\n output_amount: string;\n amount: USDPrice;\n timestamp: number;\n account_dlt_id: string;\n}\n\nexport interface APIToken {\n symbol: string;\n dlt_id: string;\n liquidity: USDPrice;\n rate: USDPrice;\n rate_24h_ago: USDPrice;\n decimals: number;\n rates_7d: string[];\n}\n\nexport interface TokenMetaWithReserve extends TokenMeta {\n reserveWeight: number;\n decBalance: string;\n}\n\nexport interface NewPool extends APIPool {\n reserveTokens: TokenMetaWithReserve[];\n decFee: number;\n}\n\nexport interface WelcomeDataRes extends WelcomeData {\n network: EthNetworks;\n}\n\nexport const getWelcomeData = async (\n network: EthNetworks = EthNetworks.Mainnet\n): Promise => {\n if (!(network === EthNetworks.Mainnet || network === EthNetworks.Ropsten)) {\n throw new Error('API does not support this network');\n }\n try {\n const { data } = await axios.get(\n network === EthNetworks.Mainnet\n ? 'https://api-v2.bancor.network/welcome'\n : 'https://serve-ropsten-ptdczarhfq-nw.a.run.app/welcome'\n );\n return {\n ...data,\n network,\n pools: data.pools.map((pool) => ({\n ...pool,\n converter_dlt_id: utils.getAddress(pool.converter_dlt_id),\n pool_dlt_id: utils.getAddress(pool.pool_dlt_id),\n })),\n swaps: data.swaps.map((swap) => ({\n ...swap,\n account_dlt_id: utils.getAddress(swap.account_dlt_id),\n source_token_dlt_id: utils.getAddress(swap.source_token_dlt_id),\n target_token_dlt_id: utils.getAddress(swap.target_token_dlt_id),\n })),\n tokens: data.tokens.map((token) => ({\n ...token,\n dlt_id: utils.getAddress(token.dlt_id),\n })),\n };\n } catch (e: any) {\n console.error('Failed to load data from Bancor API', e);\n throw new Error(e);\n }\n};\n","import { Observable } from 'rxjs';\nimport { switchMap, filter } from 'rxjs/operators';\n\nexport const switchMapIgnoreThrow =\n (switchMapProm: (data: T) => Promise) =>\n (source: Observable): Observable =>\n source.pipe(\n switchMap((whatever) =>\n switchMapProm(whatever).catch(() => 'DONT THROW' as unknown as Y)\n ),\n filter((x) => !(typeof x === 'string' && x === 'DONT THROW'))\n );\n","import BigNumber from 'bignumber.js';\nimport { Token } from 'services/observables/tokens';\n\nexport const calcReserve = (from: string, to: string, fee: BigNumber) => {\n return new BigNumber(to)\n .div(new BigNumber(from))\n .times(new BigNumber(1).minus(fee));\n};\n\nexport const expandToken = (amount: string | number, precision: number) => {\n const trimmed = new BigNumber(amount).toFixed(precision, 1);\n const inWei = new BigNumber(trimmed)\n .times(new BigNumber(10).pow(precision))\n .toFixed(0);\n return inWei;\n};\n\nexport const shrinkToken = (\n amount: string | number | BigNumber,\n precision: number,\n chopZeros = false\n) => {\n const bigNumAmount = new BigNumber(amount);\n if (bigNumAmount.isEqualTo(0)) return '0';\n const res = bigNumAmount\n .div(new BigNumber(10).pow(precision))\n .toFixed(precision, BigNumber.ROUND_DOWN);\n\n return chopZeros ? new BigNumber(res).toString() : res;\n};\n\nexport const usdByToken = (\n token: Token,\n amount?: string,\n isToken: boolean = true\n): string => {\n if (!token || !token.usdPrice || (!amount && !token.balance)) return '';\n\n const input = Number(amount ? amount : token.balance);\n const tokenPrice = Number(token.usdPrice);\n return (isToken ? input * tokenPrice : input / tokenPrice).toString();\n};\n\nexport const calculatePercentageChange = (\n numberNow: number,\n numberBefore: number\n): number => {\n return Number(((numberNow / numberBefore - 1) * 100).toFixed(2));\n};\n\nexport const reduceBySlippage = (\n value: string | number | BigNumber,\n slippage: string | number | BigNumber\n) => {\n const bigNumValue = new BigNumber(value);\n const bigNumSlippage = new BigNumber(slippage);\n const one = new BigNumber(1);\n return bigNumValue.times(one.minus(bigNumSlippage)).toString();\n};\n","import { APIToken, APIPool } from 'services/api/bancor';\nimport { UTCTimestamp } from 'lightweight-charts';\nimport { Token } from 'services/observables/tokens';\nimport { calculatePercentageChange } from 'utils/formulas';\nimport { get7DaysAgo } from 'utils/pureFunctions';\nimport { EthNetworks } from './types';\nimport { BigNumber } from 'bignumber.js';\n\nexport interface EthNetworkVariables {\n network: EthNetworks;\n contractRegistry: string;\n bntToken: string;\n converterContractForMaths: string;\n governanceContractAddress: string;\n etherscanUrl: string;\n govToken: string;\n}\n\nexport const ethToken: string = '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE';\nexport const zeroAddress: string = '0x0000000000000000000000000000000000000000';\nexport const wethToken: string = '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2';\nexport const multiCallContract: string =\n '0x5ba1e12693dc8f9c48aad8770482f4739beed696';\nexport const ropstenImage: string =\n 'https://ropsten.etherscan.io/images/main/empty-token.png';\n\nconst gasBuffer = 1.05;\n\nexport const changeGas = (gasEstimation: string) =>\n new BigNumber(gasEstimation).times(gasBuffer).toFixed(0);\n\nexport const buildWethToken = (apiTokens?: APIToken[]): APIToken => {\n const eth = apiTokens && apiTokens.find((x) => x.dlt_id === ethToken);\n\n return {\n symbol: 'WETH',\n dlt_id: wethToken,\n liquidity: eth ? eth.liquidity : { usd: null },\n rate: eth ? eth.rate : { usd: null },\n rate_24h_ago: eth ? eth.rate_24h_ago : { usd: null },\n decimals: eth ? eth.decimals : 18,\n rates_7d: eth ? eth.rates_7d : [],\n };\n};\n\nexport const getEthToken = (\n apiTokens: APIToken[],\n pools: APIPool[]\n): Token | null => {\n const eth = apiTokens.find((apiToken) => apiToken.dlt_id === ethToken);\n if (eth) {\n const price = eth.rate.usd;\n const price_24h = eth.rate_24h_ago.usd;\n const priceChanged =\n price && price_24h && Number(price_24h) !== 0\n ? calculatePercentageChange(Number(price), Number(price_24h))\n : 0;\n const pool = pools.find((p) =>\n p.reserves.find((r) => r.address === eth.dlt_id)\n );\n const usdVolume24 = pool ? pool.volume_24h.usd : null;\n const isWhitelisted = pool ? pool.isWhitelisted : false;\n const seven_days_ago = get7DaysAgo().getUTCSeconds();\n\n return {\n address: eth.dlt_id,\n logoURI: 'https://cryptologos.cc/logos/ethereum-eth-logo.svg',\n name: 'Ethereum',\n chainId: 1,\n balance: null,\n symbol: eth.symbol,\n decimals: eth.decimals,\n usdPrice: price,\n liquidity: eth.liquidity.usd,\n usd_24h_ago: price_24h,\n price_change_24: priceChanged,\n price_history_7d: eth.rates_7d\n .filter((x) => !!x)\n .map((x, i) => ({\n value: Number(x),\n time: (seven_days_ago + i * 360) as UTCTimestamp,\n })),\n usd_volume_24: usdVolume24,\n isWhitelisted,\n };\n }\n\n return null;\n};\n\nexport const getNetworkVariables = (\n ethNetwork: EthNetworks\n): EthNetworkVariables => {\n switch (ethNetwork) {\n case EthNetworks.Mainnet:\n return {\n network: EthNetworks.Mainnet,\n contractRegistry: '0x52Ae12ABe5D8BD778BD5397F99cA900624CfADD4',\n bntToken: '0x1F573D6Fb3F13d689FF844B4cE37794d79a7FF1C',\n govToken: '0x48Fb253446873234F2fEBbF9BdeAA72d9d387f94',\n converterContractForMaths: '0xe870d00176b2c71afd4c43cea550228e22be4abd',\n governanceContractAddress: '0x892f481bd6e9d7d26ae365211d9b45175d5d00e4',\n etherscanUrl: 'https://etherscan.io',\n };\n case EthNetworks.Ropsten:\n return {\n network: EthNetworks.Ropsten,\n contractRegistry: '0xA6DB4B0963C37Bc959CbC0a874B5bDDf2250f26F',\n bntToken: '0xF35cCfbcE1228014F66809EDaFCDB836BFE388f5',\n govToken: '0x83ec8129b1F54BA5b0f47bD902A79C803e20A249',\n converterContractForMaths: '0x9a36b31ca768a860dab246cf080e7f042d1b7c0f',\n governanceContractAddress: '0x161f28A417361961E946Ae03EF0A425008b7F01B',\n etherscanUrl: 'https://ropsten.etherscan.io',\n };\n }\n};\n\nexport const bntToken = (network: EthNetworks): string => {\n const vars = getNetworkVariables(network);\n return vars.bntToken;\n};\n\nconst ropstenTokenEmptyProps = {\n logoURI: ropstenImage,\n chainId: 3,\n balance: null,\n decimals: 18,\n usdPrice: '0',\n liquidity: '0',\n usd_24h_ago: '0',\n price_change_24: 0,\n price_history_7d: [{ time: 1630000000 as UTCTimestamp, value: 0 }],\n usd_volume_24: '0',\n isWhitelisted: false,\n};\n\n//Used to test create pool\nexport const ropstenTokens: Token[] = [\n {\n address: '0x2080dD00237F1E2F3e95d501ae4a925496DBb200',\n name: 'Test4',\n symbol: 'TEST4',\n ...ropstenTokenEmptyProps,\n },\n {\n address: '0xf4e1355D07a953192c17010a46dfA1aaBB36BCf0',\n name: 'Test5',\n symbol: 'TEST5',\n ...ropstenTokenEmptyProps,\n },\n {\n address: '0xA79A95a1Cc1a586F8E1A069ff7D17AB6dB6acf3C',\n name: 'Test6',\n symbol: 'TEST6',\n ...ropstenTokenEmptyProps,\n },\n {\n address: '0x07d79EDBC43dFB94a6Db1dd99Bf06E7C06272687',\n name: 'PenTest Token',\n symbol: 'PENTEST',\n ...ropstenTokenEmptyProps,\n },\n {\n address: '0xb63303eAc901dBFaC854C531Ce4B281542F85364',\n name: 'DOZZ Token',\n symbol: 'DOZZ',\n ...ropstenTokenEmptyProps,\n },\n];\n","import { FrameConnector } from '@web3-react/frame-connector';\nimport { PortisConnector } from '@web3-react/portis-connector';\nimport { InjectedConnector } from '@web3-react/injected-connector';\nimport { FortmaticConnector } from '@web3-react/fortmatic-connector';\nimport { WalletLinkConnector } from '@web3-react/walletlink-connector';\nimport { WalletConnectConnector } from '@web3-react/walletconnect-connector';\nimport { TorusConnector } from '@web3-react/torus-connector';\nimport { SafeAppConnector } from '@gnosis.pm/safe-apps-web3-react';\nimport { EthNetworks } from 'services/web3/types';\n\nexport const buildAlchemyUrl = (network: EthNetworks, wss: boolean = true) => {\n const net = EthNetworks.Mainnet === network ? 'mainnet' : 'ropsten';\n const id =\n network === EthNetworks.Mainnet\n ? (process.env.REACT_APP_ALCHEMY_MAINNET as string)\n : (process.env.REACT_APP_ALCHEMY_ROPSTEN as string);\n return `${wss ? 'wss' : 'https'}://eth-${net}.alchemyapi.io/v2/${id}`;\n};\n\nconst RPC_URLS: { [chainId: number]: string } = {\n 1: buildAlchemyUrl(EthNetworks.Mainnet, false),\n 3: buildAlchemyUrl(EthNetworks.Ropsten, false),\n};\n\nconst appName = 'bancor';\n\nexport const injected = new InjectedConnector({\n supportedChainIds: [1, 3, 4, 5, 42],\n});\n\nexport const gnosisSafe = new SafeAppConnector();\n\nexport const walletconnect = new WalletConnectConnector({\n rpc: { 1: RPC_URLS[1], 3: RPC_URLS[3] },\n qrcode: true,\n});\n\nexport const walletlink = new WalletLinkConnector({\n url: RPC_URLS[1],\n appName: appName,\n});\n\nexport const frame = new FrameConnector({ supportedChainIds: [1] });\n\nexport const fortmatic = new FortmaticConnector({\n apiKey: process.env.REACT_APP_FORTMATIC_API_KEY as string,\n chainId: 1,\n});\n\nexport const portis = new PortisConnector({\n dAppId: process.env.REACT_APP_PORTIS_DAPP_ID as string,\n networks: [1, 100],\n});\n\nexport const torus = new TorusConnector({\n chainId: 1\n});\n","import { Web3Provider } from '@ethersproject/providers';\nimport { Contract, ContractInterface } from '@ethersproject/contracts';\nimport { EthNetworks } from 'services/web3//types';\nimport { providers, Signer } from 'ethers';\nimport { buildAlchemyUrl } from 'services/web3/wallet/connectors';\nimport { currentNetwork$ } from 'services/observables/network';\nimport { take } from 'rxjs/operators';\n\nexport const web3 = {\n provider: new providers.WebSocketProvider(\n buildAlchemyUrl(EthNetworks.Mainnet)\n ),\n};\n\nexport const keepWSOpen = () => {\n keepAlive((err) => {\n keepWSOpen();\n console.error('Web Socket Closed', JSON.stringify(err, null, 2));\n });\n};\n\nexport const writeWeb3 = {\n signer: window.ethereum\n ? new Web3Provider(window.ethereum).getSigner()\n : new providers.WebSocketProvider(\n buildAlchemyUrl(EthNetworks.Mainnet)\n ).getSigner(),\n};\n\nexport const setProvider = (provider: providers.WebSocketProvider) => {\n web3.provider = provider;\n};\n\nexport const setSigner = (signer: providers.JsonRpcSigner) => {\n writeWeb3.signer = signer;\n};\n\nexport const buildContract = (\n abi: ContractInterface,\n contractAddress: string,\n injectedWeb3?: Web3Provider | Signer\n) => new Contract(contractAddress, abi, injectedWeb3 || web3.provider);\n\nconst keepAlive = async (\n onDisconnect: (err: any) => void,\n checkInterval = 7500\n) => {\n let keepAliveInterval: NodeJS.Timeout | null = null;\n\n //Init\n const network = await currentNetwork$.pipe(take(1)).toPromise();\n web3.provider = new providers.WebSocketProvider(buildAlchemyUrl(network));\n\n //Add Events\n web3.provider._websocket.onopen = () => {\n keepAliveInterval = setInterval(() => {\n if (\n web3.provider._websocket.readyState === WebSocket.OPEN ||\n web3.provider._websocket.readyState === WebSocket.CONNECTING\n )\n return;\n\n try {\n web3.provider._websocket.close();\n } catch (error) {\n console.error('Failed closing websocket', error);\n }\n }, checkInterval);\n };\n\n web3.provider._websocket.onclose = (err: any) => onError(err);\n web3.provider._websocket.onerror = (err: any) => onError(err);\n\n const onError = (err: any) => {\n if (keepAliveInterval) clearInterval(keepAliveInterval);\n onDisconnect(err);\n };\n};\n","import { BehaviorSubject } from 'rxjs';\nimport { distinctUntilChanged, map, shareReplay, take } from 'rxjs/operators';\nimport { getNetworkVariables } from 'services/web3/config';\nimport { setProvider } from 'services/web3';\nimport { EthNetworks } from 'services/web3/types';\nimport { buildAlchemyUrl } from 'services/web3/wallet/connectors';\nimport { providers } from 'ethers';\n\nexport const getChainID = (chain: string | number): EthNetworks =>\n typeof chain === 'string' ? parseInt(chain) : chain;\n\nexport const currentNetworkReceiver$ = new BehaviorSubject(\n EthNetworks.Mainnet\n);\n\nexport const currentNetwork$ = currentNetworkReceiver$.pipe(\n distinctUntilChanged(),\n shareReplay(1)\n);\n\nexport const setNetwork = async (chainId: EthNetworks) => {\n const currentChain = await currentNetworkReceiver$.pipe(take(1)).toPromise();\n if (\n (chainId === EthNetworks.Mainnet || chainId === EthNetworks.Ropsten) &&\n currentChain !== chainId\n ) {\n setProvider(new providers.WebSocketProvider(buildAlchemyUrl(chainId)));\n currentNetworkReceiver$.next(chainId);\n }\n};\n\nexport const networkVars$ = currentNetwork$.pipe(\n map(getNetworkVariables),\n shareReplay(1)\n);\n","/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\n\nimport { Contract, Signer, utils } from \"ethers\";\nimport { Provider } from \"@ethersproject/providers\";\nimport type { BancorNetwork, BancorNetworkInterface } from \"../BancorNetwork\";\n\nconst _abi = [\n {\n constant: false,\n inputs: [\n {\n name: \"_onlyOwnerCanUpdateRegistry\",\n type: \"bool\",\n },\n ],\n name: \"restrictRegistryUpdate\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n name: \"_token\",\n type: \"address\",\n },\n {\n name: \"_register\",\n type: \"bool\",\n },\n ],\n name: \"registerEtherToken\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n name: \"_path\",\n type: \"address[]\",\n },\n {\n name: \"_amount\",\n type: \"uint256\",\n },\n ],\n name: \"getReturnByPath\",\n outputs: [\n {\n name: \"\",\n type: \"uint256\",\n },\n {\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n name: \"_path\",\n type: \"address[]\",\n },\n {\n name: \"_amount\",\n type: \"uint256\",\n },\n {\n name: \"_minReturn\",\n type: \"uint256\",\n },\n {\n name: \"_beneficiary\",\n type: \"address\",\n },\n {\n name: \"_affiliateAccount\",\n type: \"address\",\n },\n {\n name: \"_affiliateFee\",\n type: \"uint256\",\n },\n ],\n name: \"claimAndConvertFor2\",\n outputs: [\n {\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"onlyOwnerCanUpdateRegistry\",\n outputs: [\n {\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"updateRegistry\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n name: \"_path\",\n type: \"address[]\",\n },\n {\n name: \"_amount\",\n type: \"uint256\",\n },\n {\n name: \"_minReturn\",\n type: \"uint256\",\n },\n {\n name: \"_affiliateAccount\",\n type: \"address\",\n },\n {\n name: \"_affiliateFee\",\n type: \"uint256\",\n },\n ],\n name: \"convert2\",\n outputs: [\n {\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: true,\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"maxAffiliateFee\",\n outputs: [\n {\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n name: \"_token\",\n type: \"address\",\n },\n {\n name: \"_to\",\n type: \"address\",\n },\n {\n name: \"_amount\",\n type: \"uint256\",\n },\n ],\n name: \"withdrawTokens\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"prevRegistry\",\n outputs: [\n {\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"acceptOwnership\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"registry\",\n outputs: [\n {\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n name: \"_path\",\n type: \"address[]\",\n },\n {\n name: \"_amount\",\n type: \"uint256\",\n },\n ],\n name: \"rateByPath\",\n outputs: [\n {\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n name: \"\",\n type: \"address\",\n },\n ],\n name: \"etherTokens\",\n outputs: [\n {\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n name: \"_path\",\n type: \"address[]\",\n },\n {\n name: \"_bancorX\",\n type: \"address\",\n },\n {\n name: \"_conversionId\",\n type: \"uint256\",\n },\n {\n name: \"_minReturn\",\n type: \"uint256\",\n },\n {\n name: \"_beneficiary\",\n type: \"address\",\n },\n ],\n name: \"completeXConversion\",\n outputs: [\n {\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"owner\",\n outputs: [\n {\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n name: \"_path\",\n type: \"address[]\",\n },\n {\n name: \"_amount\",\n type: \"uint256\",\n },\n {\n name: \"_minReturn\",\n type: \"uint256\",\n },\n {\n name: \"_beneficiary\",\n type: \"address\",\n },\n {\n name: \"_affiliateAccount\",\n type: \"address\",\n },\n {\n name: \"_affiliateFee\",\n type: \"uint256\",\n },\n ],\n name: \"convertFor2\",\n outputs: [\n {\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: true,\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n name: \"_path\",\n type: \"address[]\",\n },\n {\n name: \"_amount\",\n type: \"uint256\",\n },\n {\n name: \"_minReturn\",\n type: \"uint256\",\n },\n {\n name: \"_beneficiary\",\n type: \"address\",\n },\n ],\n name: \"claimAndConvertFor\",\n outputs: [\n {\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"restoreRegistry\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n name: \"_path\",\n type: \"address[]\",\n },\n {\n name: \"_amount\",\n type: \"uint256\",\n },\n {\n name: \"_minReturn\",\n type: \"uint256\",\n },\n {\n name: \"_beneficiary\",\n type: \"address\",\n },\n {\n name: \"_affiliateAccount\",\n type: \"address\",\n },\n {\n name: \"_affiliateFee\",\n type: \"uint256\",\n },\n ],\n name: \"convertByPath\",\n outputs: [\n {\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: true,\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n name: \"_path\",\n type: \"address[]\",\n },\n {\n name: \"_amount\",\n type: \"uint256\",\n },\n {\n name: \"_minReturn\",\n type: \"uint256\",\n },\n {\n name: \"_targetBlockchain\",\n type: \"bytes32\",\n },\n {\n name: \"_targetAccount\",\n type: \"bytes32\",\n },\n {\n name: \"_conversionId\",\n type: \"uint256\",\n },\n ],\n name: \"xConvert\",\n outputs: [\n {\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: true,\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n name: \"_path\",\n type: \"address[]\",\n },\n {\n name: \"_amount\",\n type: \"uint256\",\n },\n {\n name: \"_minReturn\",\n type: \"uint256\",\n },\n ],\n name: \"claimAndConvert\",\n outputs: [\n {\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n name: \"_path\",\n type: \"address[]\",\n },\n {\n name: \"_amount\",\n type: \"uint256\",\n },\n {\n name: \"_minReturn\",\n type: \"uint256\",\n },\n {\n name: \"_beneficiary\",\n type: \"address\",\n },\n ],\n name: \"convertFor\",\n outputs: [\n {\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: true,\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n name: \"_path\",\n type: \"address[]\",\n },\n {\n name: \"_amount\",\n type: \"uint256\",\n },\n {\n name: \"_minReturn\",\n type: \"uint256\",\n },\n {\n name: \"_targetBlockchain\",\n type: \"bytes32\",\n },\n {\n name: \"_targetAccount\",\n type: \"bytes32\",\n },\n {\n name: \"_conversionId\",\n type: \"uint256\",\n },\n {\n name: \"_affiliateAccount\",\n type: \"address\",\n },\n {\n name: \"_affiliateFee\",\n type: \"uint256\",\n },\n ],\n name: \"xConvert2\",\n outputs: [\n {\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: true,\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"newOwner\",\n outputs: [\n {\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n name: \"_sourceToken\",\n type: \"address\",\n },\n {\n name: \"_targetToken\",\n type: \"address\",\n },\n ],\n name: \"conversionPath\",\n outputs: [\n {\n name: \"\",\n type: \"address[]\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n name: \"_path\",\n type: \"address[]\",\n },\n {\n name: \"_amount\",\n type: \"uint256\",\n },\n {\n name: \"_minReturn\",\n type: \"uint256\",\n },\n {\n name: \"_affiliateAccount\",\n type: \"address\",\n },\n {\n name: \"_affiliateFee\",\n type: \"uint256\",\n },\n ],\n name: \"claimAndConvert2\",\n outputs: [\n {\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n name: \"_newOwner\",\n type: \"address\",\n },\n ],\n name: \"transferOwnership\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n name: \"_path\",\n type: \"address[]\",\n },\n {\n name: \"_amount\",\n type: \"uint256\",\n },\n {\n name: \"_minReturn\",\n type: \"uint256\",\n },\n ],\n name: \"convert\",\n outputs: [\n {\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: true,\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n name: \"_maxAffiliateFee\",\n type: \"uint256\",\n },\n ],\n name: \"setMaxAffiliateFee\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n name: \"_registry\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n name: \"_smartToken\",\n type: \"address\",\n },\n {\n indexed: true,\n name: \"_fromToken\",\n type: \"address\",\n },\n {\n indexed: true,\n name: \"_toToken\",\n type: \"address\",\n },\n {\n indexed: false,\n name: \"_fromAmount\",\n type: \"uint256\",\n },\n {\n indexed: false,\n name: \"_toAmount\",\n type: \"uint256\",\n },\n {\n indexed: false,\n name: \"_trader\",\n type: \"address\",\n },\n ],\n name: \"Conversion\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n name: \"_prevOwner\",\n type: \"address\",\n },\n {\n indexed: true,\n name: \"_newOwner\",\n type: \"address\",\n },\n ],\n name: \"OwnerUpdate\",\n type: \"event\",\n },\n];\n\nexport class BancorNetwork__factory {\n static readonly abi = _abi;\n static createInterface(): BancorNetworkInterface {\n return new utils.Interface(_abi) as BancorNetworkInterface;\n }\n static connect(\n address: string,\n signerOrProvider: Signer | Provider\n ): BancorNetwork {\n return new Contract(address, _abi, signerOrProvider) as BancorNetwork;\n }\n}\n","/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\n\nimport { Contract, Signer, utils } from \"ethers\";\nimport { Provider } from \"@ethersproject/providers\";\nimport type {\n ContractRegistry,\n ContractRegistryInterface,\n} from \"../ContractRegistry\";\n\nconst _abi = [\n {\n constant: true,\n inputs: [],\n name: \"BANCOR_CONVERTER_UPGRADER\",\n outputs: [\n {\n name: \"\",\n type: \"bytes32\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"BNT_TOKEN\",\n outputs: [\n {\n name: \"\",\n type: \"bytes32\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n name: \"_contractName\",\n type: \"bytes32\",\n },\n ],\n name: \"getAddress\",\n outputs: [\n {\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"CONTRACT_REGISTRY\",\n outputs: [\n {\n name: \"\",\n type: \"bytes32\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n name: \"_contractName\",\n type: \"bytes32\",\n },\n ],\n name: \"unregisterAddress\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"contractNames\",\n outputs: [\n {\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"BANCOR_CONVERTER_FACTORY\",\n outputs: [\n {\n name: \"\",\n type: \"bytes32\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"BNT_CONVERTER\",\n outputs: [\n {\n name: \"\",\n type: \"bytes32\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n name: \"_contractName\",\n type: \"bytes32\",\n },\n {\n name: \"_contractAddress\",\n type: \"address\",\n },\n ],\n name: \"registerAddress\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"itemCount\",\n outputs: [\n {\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"BANCOR_FORMULA\",\n outputs: [\n {\n name: \"\",\n type: \"bytes32\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"acceptOwnership\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"CONTRACT_FEATURES\",\n outputs: [\n {\n name: \"\",\n type: \"bytes32\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"owner\",\n outputs: [\n {\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"BANCOR_NETWORK\",\n outputs: [\n {\n name: \"\",\n type: \"bytes32\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"BANCOR_GAS_PRICE_LIMIT\",\n outputs: [\n {\n name: \"\",\n type: \"bytes32\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n name: \"_contractName\",\n type: \"bytes32\",\n },\n ],\n name: \"addressOf\",\n outputs: [\n {\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"BANCOR_X\",\n outputs: [\n {\n name: \"\",\n type: \"bytes32\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"newOwner\",\n outputs: [\n {\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n name: \"_newOwner\",\n type: \"address\",\n },\n ],\n name: \"transferOwnership\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n name: \"_contractName\",\n type: \"bytes32\",\n },\n {\n indexed: false,\n name: \"_contractAddress\",\n type: \"address\",\n },\n ],\n name: \"AddressUpdate\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n name: \"_prevOwner\",\n type: \"address\",\n },\n {\n indexed: true,\n name: \"_newOwner\",\n type: \"address\",\n },\n ],\n name: \"OwnerUpdate\",\n type: \"event\",\n },\n];\n\nexport class ContractRegistry__factory {\n static readonly abi = _abi;\n static createInterface(): ContractRegistryInterface {\n return new utils.Interface(_abi) as ContractRegistryInterface;\n }\n static connect(\n address: string,\n signerOrProvider: Signer | Provider\n ): ContractRegistry {\n return new Contract(address, _abi, signerOrProvider) as ContractRegistry;\n }\n}\n","/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\n\nimport { Contract, Signer, utils } from \"ethers\";\nimport { Provider } from \"@ethersproject/providers\";\nimport type { Converter, ConverterInterface } from \"../Converter\";\n\nconst _abi = [\n {\n inputs: [\n {\n internalType: \"contract IConverterAnchor\",\n name: \"_anchor\",\n type: \"address\",\n },\n {\n internalType: \"contract IContractRegistry\",\n name: \"_registry\",\n type: \"address\",\n },\n {\n internalType: \"uint32\",\n name: \"_maxConversionFee\",\n type: \"uint32\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"uint16\",\n name: \"_type\",\n type: \"uint16\",\n },\n {\n indexed: true,\n internalType: \"contract IConverterAnchor\",\n name: \"_anchor\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"bool\",\n name: \"_activated\",\n type: \"bool\",\n },\n ],\n name: \"Activation\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"contract IERC20\",\n name: \"_fromToken\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"contract IERC20\",\n name: \"_toToken\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"_trader\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"_amount\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"_return\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"int256\",\n name: \"_conversionFee\",\n type: \"int256\",\n },\n ],\n name: \"Conversion\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint32\",\n name: \"_prevFee\",\n type: \"uint32\",\n },\n {\n indexed: false,\n internalType: \"uint32\",\n name: \"_newFee\",\n type: \"uint32\",\n },\n ],\n name: \"ConversionFeeUpdate\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"_provider\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"contract IERC20\",\n name: \"_reserveToken\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"_amount\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"_newBalance\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"_newSupply\",\n type: \"uint256\",\n },\n ],\n name: \"LiquidityAdded\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"_provider\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"contract IERC20\",\n name: \"_reserveToken\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"_amount\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"_newBalance\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"_newSupply\",\n type: \"uint256\",\n },\n ],\n name: \"LiquidityRemoved\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"_prevOwner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"_newOwner\",\n type: \"address\",\n },\n ],\n name: \"OwnerUpdate\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"contract IERC20\",\n name: \"_token1\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"contract IERC20\",\n name: \"_token2\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"_rateN\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"_rateD\",\n type: \"uint256\",\n },\n ],\n name: \"TokenRateUpdate\",\n type: \"event\",\n },\n {\n inputs: [],\n name: \"acceptAnchorOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"acceptOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"acceptTokenOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IERC20[]\",\n name: \"_reserveTokens\",\n type: \"address[]\",\n },\n {\n internalType: \"uint256[]\",\n name: \"_reserveAmounts\",\n type: \"uint256[]\",\n },\n {\n internalType: \"uint256\",\n name: \"_minReturn\",\n type: \"uint256\",\n },\n ],\n name: \"addLiquidity\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IERC20[]\",\n name: \"_reserveTokens\",\n type: \"address[]\",\n },\n {\n internalType: \"uint256\",\n name: \"_reserveTokenIndex\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"_reserveAmount\",\n type: \"uint256\",\n },\n ],\n name: \"addLiquidityCost\",\n outputs: [\n {\n internalType: \"uint256[]\",\n name: \"\",\n type: \"uint256[]\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IERC20[]\",\n name: \"_reserveTokens\",\n type: \"address[]\",\n },\n {\n internalType: \"uint256[]\",\n name: \"_reserveAmounts\",\n type: \"uint256[]\",\n },\n ],\n name: \"addLiquidityReturn\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IERC20\",\n name: \"_token\",\n type: \"address\",\n },\n {\n internalType: \"uint32\",\n name: \"_weight\",\n type: \"uint32\",\n },\n ],\n name: \"addReserve\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"anchor\",\n outputs: [\n {\n internalType: \"contract IConverterAnchor\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"averageRateInfo\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"connectorTokenCount\",\n outputs: [\n {\n internalType: \"uint16\",\n name: \"\",\n type: \"uint16\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_index\",\n type: \"uint256\",\n },\n ],\n name: \"connectorTokens\",\n outputs: [\n {\n internalType: \"contract IERC20\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IERC20\",\n name: \"_address\",\n type: \"address\",\n },\n ],\n name: \"connectors\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n {\n internalType: \"uint32\",\n name: \"\",\n type: \"uint32\",\n },\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"conversionFee\",\n outputs: [\n {\n internalType: \"uint32\",\n name: \"\",\n type: \"uint32\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IERC20\",\n name: \"_sourceToken\",\n type: \"address\",\n },\n {\n internalType: \"contract IERC20\",\n name: \"_targetToken\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"_amount\",\n type: \"uint256\",\n },\n {\n internalType: \"address\",\n name: \"_trader\",\n type: \"address\",\n },\n {\n internalType: \"address payable\",\n name: \"_beneficiary\",\n type: \"address\",\n },\n ],\n name: \"convert\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"converterType\",\n outputs: [\n {\n internalType: \"uint16\",\n name: \"\",\n type: \"uint16\",\n },\n ],\n stateMutability: \"pure\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IERC20\",\n name: \"_connectorToken\",\n type: \"address\",\n },\n ],\n name: \"getConnectorBalance\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IERC20\",\n name: \"_sourceToken\",\n type: \"address\",\n },\n {\n internalType: \"contract IERC20\",\n name: \"_targetToken\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"_amount\",\n type: \"uint256\",\n },\n ],\n name: \"getReturn\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"isActive\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"isV28OrHigher\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"pure\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"maxConversionFee\",\n outputs: [\n {\n internalType: \"uint32\",\n name: \"\",\n type: \"uint32\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"newOwner\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"onUpgradeComplete\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"onlyOwnerCanUpdateRegistry\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"owner\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"prevRegistry\",\n outputs: [\n {\n internalType: \"contract IContractRegistry\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"processNetworkFees\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IERC20\",\n name: \"_token\",\n type: \"address\",\n },\n ],\n name: \"recentAverageRate\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"registry\",\n outputs: [\n {\n internalType: \"contract IContractRegistry\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_amount\",\n type: \"uint256\",\n },\n {\n internalType: \"contract IERC20[]\",\n name: \"_reserveTokens\",\n type: \"address[]\",\n },\n {\n internalType: \"uint256[]\",\n name: \"_reserveMinReturnAmounts\",\n type: \"uint256[]\",\n },\n ],\n name: \"removeLiquidity\",\n outputs: [\n {\n internalType: \"uint256[]\",\n name: \"\",\n type: \"uint256[]\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_amount\",\n type: \"uint256\",\n },\n {\n internalType: \"contract IERC20[]\",\n name: \"_reserveTokens\",\n type: \"address[]\",\n },\n ],\n name: \"removeLiquidityReturn\",\n outputs: [\n {\n internalType: \"uint256[]\",\n name: \"\",\n type: \"uint256[]\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IERC20\",\n name: \"_reserveToken\",\n type: \"address\",\n },\n ],\n name: \"reserveBalance\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"reserveBalances\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"reserveTokenCount\",\n outputs: [\n {\n internalType: \"uint16\",\n name: \"\",\n type: \"uint16\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"reserveTokens\",\n outputs: [\n {\n internalType: \"contract IERC20[]\",\n name: \"\",\n type: \"address[]\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IERC20\",\n name: \"_reserveToken\",\n type: \"address\",\n },\n ],\n name: \"reserveWeight\",\n outputs: [\n {\n internalType: \"uint32\",\n name: \"\",\n type: \"uint32\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"restoreRegistry\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"bool\",\n name: \"_onlyOwnerCanUpdateRegistry\",\n type: \"bool\",\n },\n ],\n name: \"restrictRegistryUpdate\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint32\",\n name: \"_conversionFee\",\n type: \"uint32\",\n },\n ],\n name: \"setConversionFee\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IERC20\",\n name: \"_sourceToken\",\n type: \"address\",\n },\n {\n internalType: \"contract IERC20\",\n name: \"_targetToken\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"_amount\",\n type: \"uint256\",\n },\n ],\n name: \"sourceAmountAndFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"syncReserveBalances\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IERC20\",\n name: \"_sourceToken\",\n type: \"address\",\n },\n {\n internalType: \"contract IERC20\",\n name: \"_targetToken\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"_amount\",\n type: \"uint256\",\n },\n ],\n name: \"targetAmountAndFee\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"token\",\n outputs: [\n {\n internalType: \"contract IConverterAnchor\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"_newOwner\",\n type: \"address\",\n },\n ],\n name: \"transferAnchorOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"_newOwner\",\n type: \"address\",\n },\n ],\n name: \"transferOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"_newConverter\",\n type: \"address\",\n },\n ],\n name: \"transferReservesOnUpgrade\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"_newOwner\",\n type: \"address\",\n },\n ],\n name: \"transferTokenOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"updateRegistry\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"upgrade\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"version\",\n outputs: [\n {\n internalType: \"uint16\",\n name: \"\",\n type: \"uint16\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n stateMutability: \"payable\",\n type: \"receive\",\n },\n];\n\nexport class Converter__factory {\n static readonly abi = _abi;\n static createInterface(): ConverterInterface {\n return new utils.Interface(_abi) as ConverterInterface;\n }\n static connect(\n address: string,\n signerOrProvider: Signer | Provider\n ): Converter {\n return new Contract(address, _abi, signerOrProvider) as Converter;\n }\n}\n","/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\n\nimport { Contract, Signer, utils } from \"ethers\";\nimport { Provider } from \"@ethersproject/providers\";\nimport type {\n ConverterRegistry,\n ConverterRegistryInterface,\n} from \"../ConverterRegistry\";\n\nconst _abi = [\n {\n inputs: [\n {\n internalType: \"contract IContractRegistry\",\n name: \"_registry\",\n type: \"address\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"contract IConverterAnchor\",\n name: \"_anchor\",\n type: \"address\",\n },\n ],\n name: \"ConverterAnchorAdded\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"contract IConverterAnchor\",\n name: \"_anchor\",\n type: \"address\",\n },\n ],\n name: \"ConverterAnchorRemoved\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"contract IERC20Token\",\n name: \"_convertibleToken\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"contract IConverterAnchor\",\n name: \"_smartToken\",\n type: \"address\",\n },\n ],\n name: \"ConvertibleTokenAdded\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"contract IERC20Token\",\n name: \"_convertibleToken\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"contract IConverterAnchor\",\n name: \"_smartToken\",\n type: \"address\",\n },\n ],\n name: \"ConvertibleTokenRemoved\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"contract IConverterAnchor\",\n name: \"_liquidityPool\",\n type: \"address\",\n },\n ],\n name: \"LiquidityPoolAdded\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"contract IConverterAnchor\",\n name: \"_liquidityPool\",\n type: \"address\",\n },\n ],\n name: \"LiquidityPoolRemoved\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"_prevOwner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"_newOwner\",\n type: \"address\",\n },\n ],\n name: \"OwnerUpdate\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"contract IConverterAnchor\",\n name: \"_smartToken\",\n type: \"address\",\n },\n ],\n name: \"SmartTokenAdded\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"contract IConverterAnchor\",\n name: \"_smartToken\",\n type: \"address\",\n },\n ],\n name: \"SmartTokenRemoved\",\n type: \"event\",\n },\n {\n inputs: [],\n name: \"acceptOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IConverter\",\n name: \"_converter\",\n type: \"address\",\n },\n ],\n name: \"addConverter\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_index\",\n type: \"uint256\",\n },\n ],\n name: \"getAnchor\",\n outputs: [\n {\n internalType: \"contract IConverterAnchor\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"getAnchorCount\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"getAnchors\",\n outputs: [\n {\n internalType: \"address[]\",\n name: \"\",\n type: \"address[]\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address[]\",\n name: \"_anchors\",\n type: \"address[]\",\n },\n ],\n name: \"getConvertersByAnchors\",\n outputs: [\n {\n internalType: \"contract IConverter[]\",\n name: \"\",\n type: \"address[]\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address[]\",\n name: \"_smartTokens\",\n type: \"address[]\",\n },\n ],\n name: \"getConvertersBySmartTokens\",\n outputs: [\n {\n internalType: \"contract IConverter[]\",\n name: \"\",\n type: \"address[]\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_index\",\n type: \"uint256\",\n },\n ],\n name: \"getConvertibleToken\",\n outputs: [\n {\n internalType: \"contract IERC20Token\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IERC20Token\",\n name: \"_convertibleToken\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"_index\",\n type: \"uint256\",\n },\n ],\n name: \"getConvertibleTokenAnchor\",\n outputs: [\n {\n internalType: \"contract IConverterAnchor\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IERC20Token\",\n name: \"_convertibleToken\",\n type: \"address\",\n },\n ],\n name: \"getConvertibleTokenAnchorCount\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IERC20Token\",\n name: \"_convertibleToken\",\n type: \"address\",\n },\n ],\n name: \"getConvertibleTokenAnchors\",\n outputs: [\n {\n internalType: \"address[]\",\n name: \"\",\n type: \"address[]\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"getConvertibleTokenCount\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IERC20Token\",\n name: \"_convertibleToken\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"_index\",\n type: \"uint256\",\n },\n ],\n name: \"getConvertibleTokenSmartToken\",\n outputs: [\n {\n internalType: \"contract IConverterAnchor\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IERC20Token\",\n name: \"_convertibleToken\",\n type: \"address\",\n },\n ],\n name: \"getConvertibleTokenSmartTokenCount\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IERC20Token\",\n name: \"_convertibleToken\",\n type: \"address\",\n },\n ],\n name: \"getConvertibleTokenSmartTokens\",\n outputs: [\n {\n internalType: \"address[]\",\n name: \"\",\n type: \"address[]\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"getConvertibleTokens\",\n outputs: [\n {\n internalType: \"address[]\",\n name: \"\",\n type: \"address[]\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_index\",\n type: \"uint256\",\n },\n ],\n name: \"getLiquidityPool\",\n outputs: [\n {\n internalType: \"contract IConverterAnchor\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint16\",\n name: \"_type\",\n type: \"uint16\",\n },\n {\n internalType: \"contract IERC20Token[]\",\n name: \"_reserveTokens\",\n type: \"address[]\",\n },\n {\n internalType: \"uint32[]\",\n name: \"_reserveWeights\",\n type: \"uint32[]\",\n },\n ],\n name: \"getLiquidityPoolByConfig\",\n outputs: [\n {\n internalType: \"contract IConverterAnchor\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IERC20Token[]\",\n name: \"_reserveTokens\",\n type: \"address[]\",\n },\n {\n internalType: \"uint32[]\",\n name: \"_reserveWeights\",\n type: \"uint32[]\",\n },\n ],\n name: \"getLiquidityPoolByReserveConfig\",\n outputs: [\n {\n internalType: \"contract IConverterAnchor\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"getLiquidityPoolCount\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"getLiquidityPools\",\n outputs: [\n {\n internalType: \"address[]\",\n name: \"\",\n type: \"address[]\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_index\",\n type: \"uint256\",\n },\n ],\n name: \"getSmartToken\",\n outputs: [\n {\n internalType: \"contract IConverterAnchor\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"getSmartTokenCount\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"getSmartTokens\",\n outputs: [\n {\n internalType: \"address[]\",\n name: \"\",\n type: \"address[]\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"_value\",\n type: \"address\",\n },\n ],\n name: \"isAnchor\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IConverter\",\n name: \"_converter\",\n type: \"address\",\n },\n ],\n name: \"isConverterValid\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"_value\",\n type: \"address\",\n },\n ],\n name: \"isConvertibleToken\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IERC20Token\",\n name: \"_convertibleToken\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"_value\",\n type: \"address\",\n },\n ],\n name: \"isConvertibleTokenAnchor\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IERC20Token\",\n name: \"_convertibleToken\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"_value\",\n type: \"address\",\n },\n ],\n name: \"isConvertibleTokenSmartToken\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"_value\",\n type: \"address\",\n },\n ],\n name: \"isLiquidityPool\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IConverter\",\n name: \"_converter\",\n type: \"address\",\n },\n ],\n name: \"isSimilarLiquidityPoolRegistered\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"_value\",\n type: \"address\",\n },\n ],\n name: \"isSmartToken\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint16\",\n name: \"_type\",\n type: \"uint16\",\n },\n {\n internalType: \"string\",\n name: \"_name\",\n type: \"string\",\n },\n {\n internalType: \"string\",\n name: \"_symbol\",\n type: \"string\",\n },\n {\n internalType: \"uint8\",\n name: \"_decimals\",\n type: \"uint8\",\n },\n {\n internalType: \"uint32\",\n name: \"_maxConversionFee\",\n type: \"uint32\",\n },\n {\n internalType: \"contract IERC20Token[]\",\n name: \"_reserveTokens\",\n type: \"address[]\",\n },\n {\n internalType: \"uint32[]\",\n name: \"_reserveWeights\",\n type: \"uint32[]\",\n },\n ],\n name: \"newConverter\",\n outputs: [\n {\n internalType: \"contract IConverter\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"newOwner\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"onlyOwnerCanUpdateRegistry\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"owner\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"prevRegistry\",\n outputs: [\n {\n internalType: \"contract IContractRegistry\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"registry\",\n outputs: [\n {\n internalType: \"contract IContractRegistry\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IConverter\",\n name: \"_converter\",\n type: \"address\",\n },\n ],\n name: \"removeConverter\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"restoreRegistry\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"bool\",\n name: \"_onlyOwnerCanUpdateRegistry\",\n type: \"bool\",\n },\n ],\n name: \"restrictRegistryUpdate\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"_newOwner\",\n type: \"address\",\n },\n ],\n name: \"transferOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"updateRegistry\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n];\n\nexport class ConverterRegistry__factory {\n static readonly abi = _abi;\n static createInterface(): ConverterRegistryInterface {\n return new utils.Interface(_abi) as ConverterRegistryInterface;\n }\n static connect(\n address: string,\n signerOrProvider: Signer | Provider\n ): ConverterRegistry {\n return new Contract(address, _abi, signerOrProvider) as ConverterRegistry;\n }\n}\n","/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\n\nimport { Contract, Signer, utils } from \"ethers\";\nimport { Provider } from \"@ethersproject/providers\";\nimport type { ExchangeProxy, ExchangeProxyInterface } from \"../ExchangeProxy\";\n\nconst _abi = [\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"zeroExAddress\",\n type: \"address\",\n },\n {\n internalType: \"contract IEtherTokenV06\",\n name: \"weth\",\n type: \"address\",\n },\n {\n internalType: \"contract IStaking\",\n name: \"staking\",\n type: \"address\",\n },\n {\n internalType: \"contract FeeCollectorController\",\n name: \"feeCollectorController\",\n type: \"address\",\n },\n {\n internalType: \"uint32\",\n name: \"protocolFeeMultiplier\",\n type: \"uint32\",\n },\n {\n internalType: \"bytes32\",\n name: \"greedyTokensBloomFilter\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"bytes32\",\n name: \"orderHash\",\n type: \"bytes32\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"maker\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"taker\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"feeRecipient\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"makerToken\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"takerToken\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint128\",\n name: \"takerTokenFilledAmount\",\n type: \"uint128\",\n },\n {\n indexed: false,\n internalType: \"uint128\",\n name: \"makerTokenFilledAmount\",\n type: \"uint128\",\n },\n {\n indexed: false,\n internalType: \"uint128\",\n name: \"takerTokenFeeFilledAmount\",\n type: \"uint128\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"protocolFeePaid\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"bytes32\",\n name: \"pool\",\n type: \"bytes32\",\n },\n ],\n name: \"LimitOrderFilled\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"bytes32\",\n name: \"orderHash\",\n type: \"bytes32\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"maker\",\n type: \"address\",\n },\n ],\n name: \"OrderCancelled\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"address\",\n name: \"maker\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"makerToken\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"takerToken\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"minValidSalt\",\n type: \"uint256\",\n },\n ],\n name: \"PairCancelledLimitOrders\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"address\",\n name: \"maker\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"makerToken\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"takerToken\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"minValidSalt\",\n type: \"uint256\",\n },\n ],\n name: \"PairCancelledRfqOrders\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"bytes32\",\n name: \"orderHash\",\n type: \"bytes32\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"maker\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"taker\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"makerToken\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"takerToken\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint128\",\n name: \"takerTokenFilledAmount\",\n type: \"uint128\",\n },\n {\n indexed: false,\n internalType: \"uint128\",\n name: \"makerTokenFilledAmount\",\n type: \"uint128\",\n },\n {\n indexed: false,\n internalType: \"bytes32\",\n name: \"pool\",\n type: \"bytes32\",\n },\n ],\n name: \"RfqOrderFilled\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"address\",\n name: \"origin\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address[]\",\n name: \"addrs\",\n type: \"address[]\",\n },\n {\n indexed: false,\n internalType: \"bool\",\n name: \"allowed\",\n type: \"bool\",\n },\n ],\n name: \"RfqOrderOriginsAllowed\",\n type: \"event\",\n },\n {\n inputs: [],\n name: \"EIP712_DOMAIN_SEPARATOR\",\n outputs: [\n {\n internalType: \"bytes32\",\n name: \"\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"FEATURE_NAME\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"FEATURE_VERSION\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"GREEDY_TOKENS_BLOOM_FILTER\",\n outputs: [\n {\n internalType: \"bytes32\",\n name: \"\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"PROTOCOL_FEE_MULTIPLIER\",\n outputs: [\n {\n internalType: \"uint32\",\n name: \"\",\n type: \"uint32\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"contract IERC20TokenV06\",\n name: \"makerToken\",\n type: \"address\",\n },\n {\n internalType: \"contract IERC20TokenV06\",\n name: \"takerToken\",\n type: \"address\",\n },\n {\n internalType: \"uint128\",\n name: \"makerAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"uint128\",\n name: \"takerAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"uint128\",\n name: \"takerTokenFeeAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"address\",\n name: \"maker\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"taker\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"sender\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"feeRecipient\",\n type: \"address\",\n },\n {\n internalType: \"bytes32\",\n name: \"pool\",\n type: \"bytes32\",\n },\n {\n internalType: \"uint64\",\n name: \"expiry\",\n type: \"uint64\",\n },\n {\n internalType: \"uint256\",\n name: \"salt\",\n type: \"uint256\",\n },\n ],\n internalType: \"struct LibNativeOrder.LimitOrder\",\n name: \"order\",\n type: \"tuple\",\n },\n {\n components: [\n {\n internalType: \"enum LibSignature.SignatureType\",\n name: \"signatureType\",\n type: \"uint8\",\n },\n {\n internalType: \"uint8\",\n name: \"v\",\n type: \"uint8\",\n },\n {\n internalType: \"bytes32\",\n name: \"r\",\n type: \"bytes32\",\n },\n {\n internalType: \"bytes32\",\n name: \"s\",\n type: \"bytes32\",\n },\n ],\n internalType: \"struct LibSignature.Signature\",\n name: \"signature\",\n type: \"tuple\",\n },\n {\n internalType: \"uint128\",\n name: \"takerTokenFillAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"address\",\n name: \"taker\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"sender\",\n type: \"address\",\n },\n ],\n name: \"_fillLimitOrder\",\n outputs: [\n {\n internalType: \"uint128\",\n name: \"takerTokenFilledAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"uint128\",\n name: \"makerTokenFilledAmount\",\n type: \"uint128\",\n },\n ],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"contract IERC20TokenV06\",\n name: \"makerToken\",\n type: \"address\",\n },\n {\n internalType: \"contract IERC20TokenV06\",\n name: \"takerToken\",\n type: \"address\",\n },\n {\n internalType: \"uint128\",\n name: \"makerAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"uint128\",\n name: \"takerAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"address\",\n name: \"maker\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"taker\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"txOrigin\",\n type: \"address\",\n },\n {\n internalType: \"bytes32\",\n name: \"pool\",\n type: \"bytes32\",\n },\n {\n internalType: \"uint64\",\n name: \"expiry\",\n type: \"uint64\",\n },\n {\n internalType: \"uint256\",\n name: \"salt\",\n type: \"uint256\",\n },\n ],\n internalType: \"struct LibNativeOrder.RfqOrder\",\n name: \"order\",\n type: \"tuple\",\n },\n {\n components: [\n {\n internalType: \"enum LibSignature.SignatureType\",\n name: \"signatureType\",\n type: \"uint8\",\n },\n {\n internalType: \"uint8\",\n name: \"v\",\n type: \"uint8\",\n },\n {\n internalType: \"bytes32\",\n name: \"r\",\n type: \"bytes32\",\n },\n {\n internalType: \"bytes32\",\n name: \"s\",\n type: \"bytes32\",\n },\n ],\n internalType: \"struct LibSignature.Signature\",\n name: \"signature\",\n type: \"tuple\",\n },\n {\n internalType: \"uint128\",\n name: \"takerTokenFillAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"address\",\n name: \"taker\",\n type: \"address\",\n },\n ],\n name: \"_fillRfqOrder\",\n outputs: [\n {\n internalType: \"uint128\",\n name: \"takerTokenFilledAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"uint128\",\n name: \"makerTokenFilledAmount\",\n type: \"uint128\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"contract IERC20TokenV06\",\n name: \"makerToken\",\n type: \"address\",\n },\n {\n internalType: \"contract IERC20TokenV06\",\n name: \"takerToken\",\n type: \"address\",\n },\n {\n internalType: \"uint128\",\n name: \"makerAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"uint128\",\n name: \"takerAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"uint128\",\n name: \"takerTokenFeeAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"address\",\n name: \"maker\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"taker\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"sender\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"feeRecipient\",\n type: \"address\",\n },\n {\n internalType: \"bytes32\",\n name: \"pool\",\n type: \"bytes32\",\n },\n {\n internalType: \"uint64\",\n name: \"expiry\",\n type: \"uint64\",\n },\n {\n internalType: \"uint256\",\n name: \"salt\",\n type: \"uint256\",\n },\n ],\n internalType: \"struct LibNativeOrder.LimitOrder[]\",\n name: \"orders\",\n type: \"tuple[]\",\n },\n ],\n name: \"batchCancelLimitOrders\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IERC20TokenV06[]\",\n name: \"makerTokens\",\n type: \"address[]\",\n },\n {\n internalType: \"contract IERC20TokenV06[]\",\n name: \"takerTokens\",\n type: \"address[]\",\n },\n {\n internalType: \"uint256[]\",\n name: \"minValidSalts\",\n type: \"uint256[]\",\n },\n ],\n name: \"batchCancelPairLimitOrders\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IERC20TokenV06[]\",\n name: \"makerTokens\",\n type: \"address[]\",\n },\n {\n internalType: \"contract IERC20TokenV06[]\",\n name: \"takerTokens\",\n type: \"address[]\",\n },\n {\n internalType: \"uint256[]\",\n name: \"minValidSalts\",\n type: \"uint256[]\",\n },\n ],\n name: \"batchCancelPairRfqOrders\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"contract IERC20TokenV06\",\n name: \"makerToken\",\n type: \"address\",\n },\n {\n internalType: \"contract IERC20TokenV06\",\n name: \"takerToken\",\n type: \"address\",\n },\n {\n internalType: \"uint128\",\n name: \"makerAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"uint128\",\n name: \"takerAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"address\",\n name: \"maker\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"taker\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"txOrigin\",\n type: \"address\",\n },\n {\n internalType: \"bytes32\",\n name: \"pool\",\n type: \"bytes32\",\n },\n {\n internalType: \"uint64\",\n name: \"expiry\",\n type: \"uint64\",\n },\n {\n internalType: \"uint256\",\n name: \"salt\",\n type: \"uint256\",\n },\n ],\n internalType: \"struct LibNativeOrder.RfqOrder[]\",\n name: \"orders\",\n type: \"tuple[]\",\n },\n ],\n name: \"batchCancelRfqOrders\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"contract IERC20TokenV06\",\n name: \"makerToken\",\n type: \"address\",\n },\n {\n internalType: \"contract IERC20TokenV06\",\n name: \"takerToken\",\n type: \"address\",\n },\n {\n internalType: \"uint128\",\n name: \"makerAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"uint128\",\n name: \"takerAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"uint128\",\n name: \"takerTokenFeeAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"address\",\n name: \"maker\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"taker\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"sender\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"feeRecipient\",\n type: \"address\",\n },\n {\n internalType: \"bytes32\",\n name: \"pool\",\n type: \"bytes32\",\n },\n {\n internalType: \"uint64\",\n name: \"expiry\",\n type: \"uint64\",\n },\n {\n internalType: \"uint256\",\n name: \"salt\",\n type: \"uint256\",\n },\n ],\n internalType: \"struct LibNativeOrder.LimitOrder[]\",\n name: \"orders\",\n type: \"tuple[]\",\n },\n {\n components: [\n {\n internalType: \"enum LibSignature.SignatureType\",\n name: \"signatureType\",\n type: \"uint8\",\n },\n {\n internalType: \"uint8\",\n name: \"v\",\n type: \"uint8\",\n },\n {\n internalType: \"bytes32\",\n name: \"r\",\n type: \"bytes32\",\n },\n {\n internalType: \"bytes32\",\n name: \"s\",\n type: \"bytes32\",\n },\n ],\n internalType: \"struct LibSignature.Signature[]\",\n name: \"signatures\",\n type: \"tuple[]\",\n },\n ],\n name: \"batchGetLimitOrderRelevantStates\",\n outputs: [\n {\n components: [\n {\n internalType: \"bytes32\",\n name: \"orderHash\",\n type: \"bytes32\",\n },\n {\n internalType: \"enum LibNativeOrder.OrderStatus\",\n name: \"status\",\n type: \"uint8\",\n },\n {\n internalType: \"uint128\",\n name: \"takerTokenFilledAmount\",\n type: \"uint128\",\n },\n ],\n internalType: \"struct LibNativeOrder.OrderInfo[]\",\n name: \"orderInfos\",\n type: \"tuple[]\",\n },\n {\n internalType: \"uint128[]\",\n name: \"actualFillableTakerTokenAmounts\",\n type: \"uint128[]\",\n },\n {\n internalType: \"bool[]\",\n name: \"isSignatureValids\",\n type: \"bool[]\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"contract IERC20TokenV06\",\n name: \"makerToken\",\n type: \"address\",\n },\n {\n internalType: \"contract IERC20TokenV06\",\n name: \"takerToken\",\n type: \"address\",\n },\n {\n internalType: \"uint128\",\n name: \"makerAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"uint128\",\n name: \"takerAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"address\",\n name: \"maker\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"taker\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"txOrigin\",\n type: \"address\",\n },\n {\n internalType: \"bytes32\",\n name: \"pool\",\n type: \"bytes32\",\n },\n {\n internalType: \"uint64\",\n name: \"expiry\",\n type: \"uint64\",\n },\n {\n internalType: \"uint256\",\n name: \"salt\",\n type: \"uint256\",\n },\n ],\n internalType: \"struct LibNativeOrder.RfqOrder[]\",\n name: \"orders\",\n type: \"tuple[]\",\n },\n {\n components: [\n {\n internalType: \"enum LibSignature.SignatureType\",\n name: \"signatureType\",\n type: \"uint8\",\n },\n {\n internalType: \"uint8\",\n name: \"v\",\n type: \"uint8\",\n },\n {\n internalType: \"bytes32\",\n name: \"r\",\n type: \"bytes32\",\n },\n {\n internalType: \"bytes32\",\n name: \"s\",\n type: \"bytes32\",\n },\n ],\n internalType: \"struct LibSignature.Signature[]\",\n name: \"signatures\",\n type: \"tuple[]\",\n },\n ],\n name: \"batchGetRfqOrderRelevantStates\",\n outputs: [\n {\n components: [\n {\n internalType: \"bytes32\",\n name: \"orderHash\",\n type: \"bytes32\",\n },\n {\n internalType: \"enum LibNativeOrder.OrderStatus\",\n name: \"status\",\n type: \"uint8\",\n },\n {\n internalType: \"uint128\",\n name: \"takerTokenFilledAmount\",\n type: \"uint128\",\n },\n ],\n internalType: \"struct LibNativeOrder.OrderInfo[]\",\n name: \"orderInfos\",\n type: \"tuple[]\",\n },\n {\n internalType: \"uint128[]\",\n name: \"actualFillableTakerTokenAmounts\",\n type: \"uint128[]\",\n },\n {\n internalType: \"bool[]\",\n name: \"isSignatureValids\",\n type: \"bool[]\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"contract IERC20TokenV06\",\n name: \"makerToken\",\n type: \"address\",\n },\n {\n internalType: \"contract IERC20TokenV06\",\n name: \"takerToken\",\n type: \"address\",\n },\n {\n internalType: \"uint128\",\n name: \"makerAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"uint128\",\n name: \"takerAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"uint128\",\n name: \"takerTokenFeeAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"address\",\n name: \"maker\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"taker\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"sender\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"feeRecipient\",\n type: \"address\",\n },\n {\n internalType: \"bytes32\",\n name: \"pool\",\n type: \"bytes32\",\n },\n {\n internalType: \"uint64\",\n name: \"expiry\",\n type: \"uint64\",\n },\n {\n internalType: \"uint256\",\n name: \"salt\",\n type: \"uint256\",\n },\n ],\n internalType: \"struct LibNativeOrder.LimitOrder\",\n name: \"order\",\n type: \"tuple\",\n },\n ],\n name: \"cancelLimitOrder\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IERC20TokenV06\",\n name: \"makerToken\",\n type: \"address\",\n },\n {\n internalType: \"contract IERC20TokenV06\",\n name: \"takerToken\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"minValidSalt\",\n type: \"uint256\",\n },\n ],\n name: \"cancelPairLimitOrders\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IERC20TokenV06\",\n name: \"makerToken\",\n type: \"address\",\n },\n {\n internalType: \"contract IERC20TokenV06\",\n name: \"takerToken\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"minValidSalt\",\n type: \"uint256\",\n },\n ],\n name: \"cancelPairRfqOrders\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"contract IERC20TokenV06\",\n name: \"makerToken\",\n type: \"address\",\n },\n {\n internalType: \"contract IERC20TokenV06\",\n name: \"takerToken\",\n type: \"address\",\n },\n {\n internalType: \"uint128\",\n name: \"makerAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"uint128\",\n name: \"takerAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"address\",\n name: \"maker\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"taker\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"txOrigin\",\n type: \"address\",\n },\n {\n internalType: \"bytes32\",\n name: \"pool\",\n type: \"bytes32\",\n },\n {\n internalType: \"uint64\",\n name: \"expiry\",\n type: \"uint64\",\n },\n {\n internalType: \"uint256\",\n name: \"salt\",\n type: \"uint256\",\n },\n ],\n internalType: \"struct LibNativeOrder.RfqOrder\",\n name: \"order\",\n type: \"tuple\",\n },\n ],\n name: \"cancelRfqOrder\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"contract IERC20TokenV06\",\n name: \"makerToken\",\n type: \"address\",\n },\n {\n internalType: \"contract IERC20TokenV06\",\n name: \"takerToken\",\n type: \"address\",\n },\n {\n internalType: \"uint128\",\n name: \"makerAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"uint128\",\n name: \"takerAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"uint128\",\n name: \"takerTokenFeeAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"address\",\n name: \"maker\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"taker\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"sender\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"feeRecipient\",\n type: \"address\",\n },\n {\n internalType: \"bytes32\",\n name: \"pool\",\n type: \"bytes32\",\n },\n {\n internalType: \"uint64\",\n name: \"expiry\",\n type: \"uint64\",\n },\n {\n internalType: \"uint256\",\n name: \"salt\",\n type: \"uint256\",\n },\n ],\n internalType: \"struct LibNativeOrder.LimitOrder\",\n name: \"order\",\n type: \"tuple\",\n },\n {\n components: [\n {\n internalType: \"enum LibSignature.SignatureType\",\n name: \"signatureType\",\n type: \"uint8\",\n },\n {\n internalType: \"uint8\",\n name: \"v\",\n type: \"uint8\",\n },\n {\n internalType: \"bytes32\",\n name: \"r\",\n type: \"bytes32\",\n },\n {\n internalType: \"bytes32\",\n name: \"s\",\n type: \"bytes32\",\n },\n ],\n internalType: \"struct LibSignature.Signature\",\n name: \"signature\",\n type: \"tuple\",\n },\n {\n internalType: \"uint128\",\n name: \"takerTokenFillAmount\",\n type: \"uint128\",\n },\n ],\n name: \"fillLimitOrder\",\n outputs: [\n {\n internalType: \"uint128\",\n name: \"takerTokenFilledAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"uint128\",\n name: \"makerTokenFilledAmount\",\n type: \"uint128\",\n },\n ],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"contract IERC20TokenV06\",\n name: \"makerToken\",\n type: \"address\",\n },\n {\n internalType: \"contract IERC20TokenV06\",\n name: \"takerToken\",\n type: \"address\",\n },\n {\n internalType: \"uint128\",\n name: \"makerAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"uint128\",\n name: \"takerAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"uint128\",\n name: \"takerTokenFeeAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"address\",\n name: \"maker\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"taker\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"sender\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"feeRecipient\",\n type: \"address\",\n },\n {\n internalType: \"bytes32\",\n name: \"pool\",\n type: \"bytes32\",\n },\n {\n internalType: \"uint64\",\n name: \"expiry\",\n type: \"uint64\",\n },\n {\n internalType: \"uint256\",\n name: \"salt\",\n type: \"uint256\",\n },\n ],\n internalType: \"struct LibNativeOrder.LimitOrder\",\n name: \"order\",\n type: \"tuple\",\n },\n {\n components: [\n {\n internalType: \"enum LibSignature.SignatureType\",\n name: \"signatureType\",\n type: \"uint8\",\n },\n {\n internalType: \"uint8\",\n name: \"v\",\n type: \"uint8\",\n },\n {\n internalType: \"bytes32\",\n name: \"r\",\n type: \"bytes32\",\n },\n {\n internalType: \"bytes32\",\n name: \"s\",\n type: \"bytes32\",\n },\n ],\n internalType: \"struct LibSignature.Signature\",\n name: \"signature\",\n type: \"tuple\",\n },\n {\n internalType: \"uint128\",\n name: \"takerTokenFillAmount\",\n type: \"uint128\",\n },\n ],\n name: \"fillOrKillLimitOrder\",\n outputs: [\n {\n internalType: \"uint128\",\n name: \"makerTokenFilledAmount\",\n type: \"uint128\",\n },\n ],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"contract IERC20TokenV06\",\n name: \"makerToken\",\n type: \"address\",\n },\n {\n internalType: \"contract IERC20TokenV06\",\n name: \"takerToken\",\n type: \"address\",\n },\n {\n internalType: \"uint128\",\n name: \"makerAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"uint128\",\n name: \"takerAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"address\",\n name: \"maker\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"taker\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"txOrigin\",\n type: \"address\",\n },\n {\n internalType: \"bytes32\",\n name: \"pool\",\n type: \"bytes32\",\n },\n {\n internalType: \"uint64\",\n name: \"expiry\",\n type: \"uint64\",\n },\n {\n internalType: \"uint256\",\n name: \"salt\",\n type: \"uint256\",\n },\n ],\n internalType: \"struct LibNativeOrder.RfqOrder\",\n name: \"order\",\n type: \"tuple\",\n },\n {\n components: [\n {\n internalType: \"enum LibSignature.SignatureType\",\n name: \"signatureType\",\n type: \"uint8\",\n },\n {\n internalType: \"uint8\",\n name: \"v\",\n type: \"uint8\",\n },\n {\n internalType: \"bytes32\",\n name: \"r\",\n type: \"bytes32\",\n },\n {\n internalType: \"bytes32\",\n name: \"s\",\n type: \"bytes32\",\n },\n ],\n internalType: \"struct LibSignature.Signature\",\n name: \"signature\",\n type: \"tuple\",\n },\n {\n internalType: \"uint128\",\n name: \"takerTokenFillAmount\",\n type: \"uint128\",\n },\n ],\n name: \"fillOrKillRfqOrder\",\n outputs: [\n {\n internalType: \"uint128\",\n name: \"makerTokenFilledAmount\",\n type: \"uint128\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"contract IERC20TokenV06\",\n name: \"makerToken\",\n type: \"address\",\n },\n {\n internalType: \"contract IERC20TokenV06\",\n name: \"takerToken\",\n type: \"address\",\n },\n {\n internalType: \"uint128\",\n name: \"makerAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"uint128\",\n name: \"takerAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"address\",\n name: \"maker\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"taker\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"txOrigin\",\n type: \"address\",\n },\n {\n internalType: \"bytes32\",\n name: \"pool\",\n type: \"bytes32\",\n },\n {\n internalType: \"uint64\",\n name: \"expiry\",\n type: \"uint64\",\n },\n {\n internalType: \"uint256\",\n name: \"salt\",\n type: \"uint256\",\n },\n ],\n internalType: \"struct LibNativeOrder.RfqOrder\",\n name: \"order\",\n type: \"tuple\",\n },\n {\n components: [\n {\n internalType: \"enum LibSignature.SignatureType\",\n name: \"signatureType\",\n type: \"uint8\",\n },\n {\n internalType: \"uint8\",\n name: \"v\",\n type: \"uint8\",\n },\n {\n internalType: \"bytes32\",\n name: \"r\",\n type: \"bytes32\",\n },\n {\n internalType: \"bytes32\",\n name: \"s\",\n type: \"bytes32\",\n },\n ],\n internalType: \"struct LibSignature.Signature\",\n name: \"signature\",\n type: \"tuple\",\n },\n {\n internalType: \"uint128\",\n name: \"takerTokenFillAmount\",\n type: \"uint128\",\n },\n ],\n name: \"fillRfqOrder\",\n outputs: [\n {\n internalType: \"uint128\",\n name: \"takerTokenFilledAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"uint128\",\n name: \"makerTokenFilledAmount\",\n type: \"uint128\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"contract IERC20TokenV06\",\n name: \"makerToken\",\n type: \"address\",\n },\n {\n internalType: \"contract IERC20TokenV06\",\n name: \"takerToken\",\n type: \"address\",\n },\n {\n internalType: \"uint128\",\n name: \"makerAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"uint128\",\n name: \"takerAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"uint128\",\n name: \"takerTokenFeeAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"address\",\n name: \"maker\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"taker\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"sender\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"feeRecipient\",\n type: \"address\",\n },\n {\n internalType: \"bytes32\",\n name: \"pool\",\n type: \"bytes32\",\n },\n {\n internalType: \"uint64\",\n name: \"expiry\",\n type: \"uint64\",\n },\n {\n internalType: \"uint256\",\n name: \"salt\",\n type: \"uint256\",\n },\n ],\n internalType: \"struct LibNativeOrder.LimitOrder\",\n name: \"order\",\n type: \"tuple\",\n },\n ],\n name: \"getLimitOrderHash\",\n outputs: [\n {\n internalType: \"bytes32\",\n name: \"orderHash\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"contract IERC20TokenV06\",\n name: \"makerToken\",\n type: \"address\",\n },\n {\n internalType: \"contract IERC20TokenV06\",\n name: \"takerToken\",\n type: \"address\",\n },\n {\n internalType: \"uint128\",\n name: \"makerAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"uint128\",\n name: \"takerAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"uint128\",\n name: \"takerTokenFeeAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"address\",\n name: \"maker\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"taker\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"sender\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"feeRecipient\",\n type: \"address\",\n },\n {\n internalType: \"bytes32\",\n name: \"pool\",\n type: \"bytes32\",\n },\n {\n internalType: \"uint64\",\n name: \"expiry\",\n type: \"uint64\",\n },\n {\n internalType: \"uint256\",\n name: \"salt\",\n type: \"uint256\",\n },\n ],\n internalType: \"struct LibNativeOrder.LimitOrder\",\n name: \"order\",\n type: \"tuple\",\n },\n ],\n name: \"getLimitOrderInfo\",\n outputs: [\n {\n components: [\n {\n internalType: \"bytes32\",\n name: \"orderHash\",\n type: \"bytes32\",\n },\n {\n internalType: \"enum LibNativeOrder.OrderStatus\",\n name: \"status\",\n type: \"uint8\",\n },\n {\n internalType: \"uint128\",\n name: \"takerTokenFilledAmount\",\n type: \"uint128\",\n },\n ],\n internalType: \"struct LibNativeOrder.OrderInfo\",\n name: \"orderInfo\",\n type: \"tuple\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"contract IERC20TokenV06\",\n name: \"makerToken\",\n type: \"address\",\n },\n {\n internalType: \"contract IERC20TokenV06\",\n name: \"takerToken\",\n type: \"address\",\n },\n {\n internalType: \"uint128\",\n name: \"makerAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"uint128\",\n name: \"takerAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"uint128\",\n name: \"takerTokenFeeAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"address\",\n name: \"maker\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"taker\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"sender\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"feeRecipient\",\n type: \"address\",\n },\n {\n internalType: \"bytes32\",\n name: \"pool\",\n type: \"bytes32\",\n },\n {\n internalType: \"uint64\",\n name: \"expiry\",\n type: \"uint64\",\n },\n {\n internalType: \"uint256\",\n name: \"salt\",\n type: \"uint256\",\n },\n ],\n internalType: \"struct LibNativeOrder.LimitOrder\",\n name: \"order\",\n type: \"tuple\",\n },\n {\n components: [\n {\n internalType: \"enum LibSignature.SignatureType\",\n name: \"signatureType\",\n type: \"uint8\",\n },\n {\n internalType: \"uint8\",\n name: \"v\",\n type: \"uint8\",\n },\n {\n internalType: \"bytes32\",\n name: \"r\",\n type: \"bytes32\",\n },\n {\n internalType: \"bytes32\",\n name: \"s\",\n type: \"bytes32\",\n },\n ],\n internalType: \"struct LibSignature.Signature\",\n name: \"signature\",\n type: \"tuple\",\n },\n ],\n name: \"getLimitOrderRelevantState\",\n outputs: [\n {\n components: [\n {\n internalType: \"bytes32\",\n name: \"orderHash\",\n type: \"bytes32\",\n },\n {\n internalType: \"enum LibNativeOrder.OrderStatus\",\n name: \"status\",\n type: \"uint8\",\n },\n {\n internalType: \"uint128\",\n name: \"takerTokenFilledAmount\",\n type: \"uint128\",\n },\n ],\n internalType: \"struct LibNativeOrder.OrderInfo\",\n name: \"orderInfo\",\n type: \"tuple\",\n },\n {\n internalType: \"uint128\",\n name: \"actualFillableTakerTokenAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"bool\",\n name: \"isSignatureValid\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"getProtocolFeeMultiplier\",\n outputs: [\n {\n internalType: \"uint32\",\n name: \"multiplier\",\n type: \"uint32\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"contract IERC20TokenV06\",\n name: \"makerToken\",\n type: \"address\",\n },\n {\n internalType: \"contract IERC20TokenV06\",\n name: \"takerToken\",\n type: \"address\",\n },\n {\n internalType: \"uint128\",\n name: \"makerAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"uint128\",\n name: \"takerAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"address\",\n name: \"maker\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"taker\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"txOrigin\",\n type: \"address\",\n },\n {\n internalType: \"bytes32\",\n name: \"pool\",\n type: \"bytes32\",\n },\n {\n internalType: \"uint64\",\n name: \"expiry\",\n type: \"uint64\",\n },\n {\n internalType: \"uint256\",\n name: \"salt\",\n type: \"uint256\",\n },\n ],\n internalType: \"struct LibNativeOrder.RfqOrder\",\n name: \"order\",\n type: \"tuple\",\n },\n ],\n name: \"getRfqOrderHash\",\n outputs: [\n {\n internalType: \"bytes32\",\n name: \"orderHash\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"contract IERC20TokenV06\",\n name: \"makerToken\",\n type: \"address\",\n },\n {\n internalType: \"contract IERC20TokenV06\",\n name: \"takerToken\",\n type: \"address\",\n },\n {\n internalType: \"uint128\",\n name: \"makerAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"uint128\",\n name: \"takerAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"address\",\n name: \"maker\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"taker\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"txOrigin\",\n type: \"address\",\n },\n {\n internalType: \"bytes32\",\n name: \"pool\",\n type: \"bytes32\",\n },\n {\n internalType: \"uint64\",\n name: \"expiry\",\n type: \"uint64\",\n },\n {\n internalType: \"uint256\",\n name: \"salt\",\n type: \"uint256\",\n },\n ],\n internalType: \"struct LibNativeOrder.RfqOrder\",\n name: \"order\",\n type: \"tuple\",\n },\n ],\n name: \"getRfqOrderInfo\",\n outputs: [\n {\n components: [\n {\n internalType: \"bytes32\",\n name: \"orderHash\",\n type: \"bytes32\",\n },\n {\n internalType: \"enum LibNativeOrder.OrderStatus\",\n name: \"status\",\n type: \"uint8\",\n },\n {\n internalType: \"uint128\",\n name: \"takerTokenFilledAmount\",\n type: \"uint128\",\n },\n ],\n internalType: \"struct LibNativeOrder.OrderInfo\",\n name: \"orderInfo\",\n type: \"tuple\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"contract IERC20TokenV06\",\n name: \"makerToken\",\n type: \"address\",\n },\n {\n internalType: \"contract IERC20TokenV06\",\n name: \"takerToken\",\n type: \"address\",\n },\n {\n internalType: \"uint128\",\n name: \"makerAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"uint128\",\n name: \"takerAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"address\",\n name: \"maker\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"taker\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"txOrigin\",\n type: \"address\",\n },\n {\n internalType: \"bytes32\",\n name: \"pool\",\n type: \"bytes32\",\n },\n {\n internalType: \"uint64\",\n name: \"expiry\",\n type: \"uint64\",\n },\n {\n internalType: \"uint256\",\n name: \"salt\",\n type: \"uint256\",\n },\n ],\n internalType: \"struct LibNativeOrder.RfqOrder\",\n name: \"order\",\n type: \"tuple\",\n },\n {\n components: [\n {\n internalType: \"enum LibSignature.SignatureType\",\n name: \"signatureType\",\n type: \"uint8\",\n },\n {\n internalType: \"uint8\",\n name: \"v\",\n type: \"uint8\",\n },\n {\n internalType: \"bytes32\",\n name: \"r\",\n type: \"bytes32\",\n },\n {\n internalType: \"bytes32\",\n name: \"s\",\n type: \"bytes32\",\n },\n ],\n internalType: \"struct LibSignature.Signature\",\n name: \"signature\",\n type: \"tuple\",\n },\n ],\n name: \"getRfqOrderRelevantState\",\n outputs: [\n {\n components: [\n {\n internalType: \"bytes32\",\n name: \"orderHash\",\n type: \"bytes32\",\n },\n {\n internalType: \"enum LibNativeOrder.OrderStatus\",\n name: \"status\",\n type: \"uint8\",\n },\n {\n internalType: \"uint128\",\n name: \"takerTokenFilledAmount\",\n type: \"uint128\",\n },\n ],\n internalType: \"struct LibNativeOrder.OrderInfo\",\n name: \"orderInfo\",\n type: \"tuple\",\n },\n {\n internalType: \"uint128\",\n name: \"actualFillableTakerTokenAmount\",\n type: \"uint128\",\n },\n {\n internalType: \"bool\",\n name: \"isSignatureValid\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"migrate\",\n outputs: [\n {\n internalType: \"bytes4\",\n name: \"success\",\n type: \"bytes4\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address[]\",\n name: \"origins\",\n type: \"address[]\",\n },\n {\n internalType: \"bool\",\n name: \"allowed\",\n type: \"bool\",\n },\n ],\n name: \"registerAllowedRfqOrigins\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"bytes32[]\",\n name: \"poolIds\",\n type: \"bytes32[]\",\n },\n ],\n name: \"transferProtocolFeesForPools\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n];\n\nexport class ExchangeProxy__factory {\n static readonly abi = _abi;\n static createInterface(): ExchangeProxyInterface {\n return new utils.Interface(_abi) as ExchangeProxyInterface;\n }\n static connect(\n address: string,\n signerOrProvider: Signer | Provider\n ): ExchangeProxy {\n return new Contract(address, _abi, signerOrProvider) as ExchangeProxy;\n }\n}\n","/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\n\nimport { Contract, Signer, utils } from \"ethers\";\nimport { Provider } from \"@ethersproject/providers\";\nimport type { Governance, GovernanceInterface } from \"../Governance\";\n\nconst _abi = [\n {\n inputs: [\n {\n internalType: \"contract IERC20\",\n name: \"_govToken\",\n type: \"address\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"_id\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"_start\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"_duration\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"_proposer\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"_executor\",\n type: \"address\",\n },\n ],\n name: \"NewProposal\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"_minimum\",\n type: \"uint256\",\n },\n ],\n name: \"NewProposalMinimumUpdated\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"_prevOwner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"_newOwner\",\n type: \"address\",\n },\n ],\n name: \"OwnerUpdate\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"_id\",\n type: \"uint256\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"_executor\",\n type: \"address\",\n },\n ],\n name: \"ProposalExecuted\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"_id\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"_for\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"_against\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"bool\",\n name: \"_quorumReached\",\n type: \"bool\",\n },\n ],\n name: \"ProposalFinished\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"_quorum\",\n type: \"uint256\",\n },\n ],\n name: \"QuorumUpdated\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"_user\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"_amount\",\n type: \"uint256\",\n },\n ],\n name: \"Staked\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"_user\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"_amount\",\n type: \"uint256\",\n },\n ],\n name: \"Unstaked\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"_id\",\n type: \"uint256\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"_voter\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"bool\",\n name: \"_vote\",\n type: \"bool\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"_weight\",\n type: \"uint256\",\n },\n ],\n name: \"Vote\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"_voteDuration\",\n type: \"uint256\",\n },\n ],\n name: \"VoteDurationUpdated\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"_duration\",\n type: \"uint256\",\n },\n ],\n name: \"VoteLockDurationUpdated\",\n type: \"event\",\n },\n {\n inputs: [],\n name: \"acceptOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_id\",\n type: \"uint256\",\n },\n ],\n name: \"execute\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"exit\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"govToken\",\n outputs: [\n {\n internalType: \"contract IERC20\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"newOwner\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"newProposalMinimum\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"owner\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"proposalCount\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_id\",\n type: \"uint256\",\n },\n ],\n name: \"proposalStats\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"proposals\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"id\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"totalVotesFor\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"totalVotesAgainst\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"start\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"end\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"totalAvailableVotes\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"quorum\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"quorumRequired\",\n type: \"uint256\",\n },\n {\n internalType: \"bool\",\n name: \"open\",\n type: \"bool\",\n },\n {\n internalType: \"bool\",\n name: \"executed\",\n type: \"bool\",\n },\n {\n internalType: \"address\",\n name: \"proposer\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"executor\",\n type: \"address\",\n },\n {\n internalType: \"string\",\n name: \"hash\",\n type: \"string\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"_executor\",\n type: \"address\",\n },\n {\n internalType: \"string\",\n name: \"_hash\",\n type: \"string\",\n },\n ],\n name: \"propose\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"quorum\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_minimum\",\n type: \"uint256\",\n },\n ],\n name: \"setNewProposalMinimum\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_quorum\",\n type: \"uint256\",\n },\n ],\n name: \"setQuorum\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_voteDuration\",\n type: \"uint256\",\n },\n ],\n name: \"setVoteDuration\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_duration\",\n type: \"uint256\",\n },\n ],\n name: \"setVoteLockDuration\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_amount\",\n type: \"uint256\",\n },\n ],\n name: \"stake\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_id\",\n type: \"uint256\",\n },\n ],\n name: \"tallyVotes\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"totalVotes\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"_newOwner\",\n type: \"address\",\n },\n ],\n name: \"transferOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_amount\",\n type: \"uint256\",\n },\n ],\n name: \"unstake\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_id\",\n type: \"uint256\",\n },\n ],\n name: \"voteAgainst\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"voteDuration\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_id\",\n type: \"uint256\",\n },\n ],\n name: \"voteFor\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"voteLockDuration\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"voteLockFraction\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n name: \"voteLocks\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"_voter\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"_id\",\n type: \"uint256\",\n },\n ],\n name: \"votesAgainstOf\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"_voter\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"_id\",\n type: \"uint256\",\n },\n ],\n name: \"votesForOf\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"_voter\",\n type: \"address\",\n },\n ],\n name: \"votesOf\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n];\n\nexport class Governance__factory {\n static readonly abi = _abi;\n static createInterface(): GovernanceInterface {\n return new utils.Interface(_abi) as GovernanceInterface;\n }\n static connect(\n address: string,\n signerOrProvider: Signer | Provider\n ): Governance {\n return new Contract(address, _abi, signerOrProvider) as Governance;\n }\n}\n","/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\n\nimport { Contract, Signer, utils } from \"ethers\";\nimport { Provider } from \"@ethersproject/providers\";\nimport type {\n LiquidityProtection,\n LiquidityProtectionInterface,\n} from \"../LiquidityProtection\";\n\nconst _abi = [\n {\n inputs: [\n {\n internalType: \"contract ILiquidityProtectionSettings\",\n name: \"settings\",\n type: \"address\",\n },\n {\n internalType: \"contract ILiquidityProtectionStore\",\n name: \"store\",\n type: \"address\",\n },\n {\n internalType: \"contract ILiquidityProtectionStats\",\n name: \"stats\",\n type: \"address\",\n },\n {\n internalType: \"contract ILiquidityProtectionSystemStore\",\n name: \"systemStore\",\n type: \"address\",\n },\n {\n internalType: \"contract ITokenHolder\",\n name: \"wallet\",\n type: \"address\",\n },\n {\n internalType: \"contract ITokenGovernance\",\n name: \"networkTokenGovernance\",\n type: \"address\",\n },\n {\n internalType: \"contract ITokenGovernance\",\n name: \"govTokenGovernance\",\n type: \"address\",\n },\n {\n internalType: \"contract ICheckpointStore\",\n name: \"lastRemoveCheckpointStore\",\n type: \"address\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"_prevOwner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"_newOwner\",\n type: \"address\",\n },\n ],\n name: \"OwnerUpdate\",\n type: \"event\",\n },\n {\n inputs: [],\n name: \"acceptOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"acceptStoreOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"acceptWalletOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IConverterAnchor\",\n name: \"poolAnchor\",\n type: \"address\",\n },\n {\n internalType: \"contract IReserveToken\",\n name: \"reserveToken\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"addLiquidity\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n internalType: \"contract IConverterAnchor\",\n name: \"poolAnchor\",\n type: \"address\",\n },\n {\n internalType: \"contract IReserveToken\",\n name: \"reserveToken\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"addLiquidityFor\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"startIndex\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"endIndex\",\n type: \"uint256\",\n },\n ],\n name: \"claimBalance\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"newOwner\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"owner\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IConverterAnchor\",\n name: \"poolAnchor\",\n type: \"address\",\n },\n ],\n name: \"poolAvailableSpace\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IDSToken\",\n name: \"poolToken\",\n type: \"address\",\n },\n {\n internalType: \"contract IReserveToken\",\n name: \"reserveToken\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"reserveAmount\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"poolRateN\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"poolRateD\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"reserveRateN\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"reserveRateD\",\n type: \"uint256\",\n },\n ],\n name: \"poolROI\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"id\",\n type: \"uint256\",\n },\n {\n internalType: \"uint32\",\n name: \"portion\",\n type: \"uint32\",\n },\n ],\n name: \"removeLiquidity\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"id\",\n type: \"uint256\",\n },\n {\n internalType: \"uint32\",\n name: \"portion\",\n type: \"uint32\",\n },\n {\n internalType: \"uint256\",\n name: \"removeTimestamp\",\n type: \"uint256\",\n },\n ],\n name: \"removeLiquidityReturn\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"settings\",\n outputs: [\n {\n internalType: \"contract ILiquidityProtectionSettings\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"stats\",\n outputs: [\n {\n internalType: \"contract ILiquidityProtectionStats\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"store\",\n outputs: [\n {\n internalType: \"contract ILiquidityProtectionStore\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"systemStore\",\n outputs: [\n {\n internalType: \"contract ILiquidityProtectionSystemStore\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"_newOwner\",\n type: \"address\",\n },\n ],\n name: \"transferOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"id\",\n type: \"uint256\",\n },\n {\n internalType: \"address\",\n name: \"newProvider\",\n type: \"address\",\n },\n ],\n name: \"transferPosition\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"id\",\n type: \"uint256\",\n },\n {\n internalType: \"address\",\n name: \"newProvider\",\n type: \"address\",\n },\n {\n internalType: \"contract ITransferPositionCallback\",\n name: \"callback\",\n type: \"address\",\n },\n {\n internalType: \"bytes\",\n name: \"data\",\n type: \"bytes\",\n },\n ],\n name: \"transferPositionAndNotify\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"transferStoreOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"transferWalletOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"wallet\",\n outputs: [\n {\n internalType: \"contract ITokenHolder\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n stateMutability: \"payable\",\n type: \"receive\",\n },\n];\n\nexport class LiquidityProtection__factory {\n static readonly abi = _abi;\n static createInterface(): LiquidityProtectionInterface {\n return new utils.Interface(_abi) as LiquidityProtectionInterface;\n }\n static connect(\n address: string,\n signerOrProvider: Signer | Provider\n ): LiquidityProtection {\n return new Contract(address, _abi, signerOrProvider) as LiquidityProtection;\n }\n}\n","/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\n\nimport { Contract, Signer, utils } from \"ethers\";\nimport { Provider } from \"@ethersproject/providers\";\nimport type {\n LiquidityProtectionSettings,\n LiquidityProtectionSettingsInterface,\n} from \"../LiquidityProtectionSettings\";\n\nconst _abi = [\n {\n inputs: [\n {\n internalType: \"contract IERC20Token\",\n name: \"token\",\n type: \"address\",\n },\n {\n internalType: \"contract IContractRegistry\",\n name: \"registry\",\n type: \"address\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"contract IConverterAnchor\",\n name: \"poolAnchor\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"contract IERC20Token\",\n name: \"reserveToken\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"bool\",\n name: \"disabled\",\n type: \"bool\",\n },\n ],\n name: \"AddLiquidityDisabled\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint32\",\n name: \"prevAverageRateMaxDeviation\",\n type: \"uint32\",\n },\n {\n indexed: false,\n internalType: \"uint32\",\n name: \"newAverageRateMaxDeviation\",\n type: \"uint32\",\n },\n ],\n name: \"AverageRateMaxDeviationUpdated\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"prevDefault\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"newDefault\",\n type: \"uint256\",\n },\n ],\n name: \"DefaultNetworkTokenMintingLimitUpdated\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"prevLockDuration\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"newLockDuration\",\n type: \"uint256\",\n },\n ],\n name: \"LockDurationUpdated\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"prevMinNetworkCompensation\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"newMinNetworkCompensation\",\n type: \"uint256\",\n },\n ],\n name: \"MinNetworkCompensationUpdated\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"prevMin\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"newMin\",\n type: \"uint256\",\n },\n ],\n name: \"MinNetworkTokenLiquidityForMintingUpdated\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"contract IConverterAnchor\",\n name: \"poolAnchor\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"prevLimit\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"newLimit\",\n type: \"uint256\",\n },\n ],\n name: \"NetworkTokenMintingLimitUpdated\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"_prevOwner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"_newOwner\",\n type: \"address\",\n },\n ],\n name: \"OwnerUpdate\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"contract IConverterAnchor\",\n name: \"poolAnchor\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"bool\",\n name: \"added\",\n type: \"bool\",\n },\n ],\n name: \"PoolWhitelistUpdated\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"prevMinProtectionDelay\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"newMinProtectionDelay\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"prevMaxProtectionDelay\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"newMaxProtectionDelay\",\n type: \"uint256\",\n },\n ],\n name: \"ProtectionDelaysUpdated\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"bytes32\",\n name: \"role\",\n type: \"bytes32\",\n },\n {\n indexed: true,\n internalType: \"bytes32\",\n name: \"previousAdminRole\",\n type: \"bytes32\",\n },\n {\n indexed: true,\n internalType: \"bytes32\",\n name: \"newAdminRole\",\n type: \"bytes32\",\n },\n ],\n name: \"RoleAdminChanged\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"bytes32\",\n name: \"role\",\n type: \"bytes32\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"account\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"sender\",\n type: \"address\",\n },\n ],\n name: \"RoleGranted\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"bytes32\",\n name: \"role\",\n type: \"bytes32\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"account\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"sender\",\n type: \"address\",\n },\n ],\n name: \"RoleRevoked\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"contract ILiquidityProtectionEventsSubscriber\",\n name: \"subscriber\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"bool\",\n name: \"added\",\n type: \"bool\",\n },\n ],\n name: \"SubscriberUpdated\",\n type: \"event\",\n },\n {\n inputs: [],\n name: \"DEFAULT_ADMIN_ROLE\",\n outputs: [\n {\n internalType: \"bytes32\",\n name: \"\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"ROLE_OWNER\",\n outputs: [\n {\n internalType: \"bytes32\",\n name: \"\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"acceptOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IConverterAnchor\",\n name: \"poolAnchor\",\n type: \"address\",\n },\n {\n internalType: \"contract IERC20Token\",\n name: \"reserveToken\",\n type: \"address\",\n },\n ],\n name: \"addLiquidityDisabled\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IConverterAnchor\",\n name: \"poolAnchor\",\n type: \"address\",\n },\n ],\n name: \"addPoolToWhitelist\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract ILiquidityProtectionEventsSubscriber\",\n name: \"subscriber\",\n type: \"address\",\n },\n ],\n name: \"addSubscriber\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"averageRateMaxDeviation\",\n outputs: [\n {\n internalType: \"uint32\",\n name: \"\",\n type: \"uint32\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"defaultNetworkTokenMintingLimit\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IConverterAnchor\",\n name: \"poolAnchor\",\n type: \"address\",\n },\n {\n internalType: \"contract IERC20Token\",\n name: \"reserveToken\",\n type: \"address\",\n },\n {\n internalType: \"bool\",\n name: \"disable\",\n type: \"bool\",\n },\n ],\n name: \"disableAddLiquidity\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"bytes32\",\n name: \"role\",\n type: \"bytes32\",\n },\n ],\n name: \"getRoleAdmin\",\n outputs: [\n {\n internalType: \"bytes32\",\n name: \"\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"bytes32\",\n name: \"role\",\n type: \"bytes32\",\n },\n {\n internalType: \"uint256\",\n name: \"index\",\n type: \"uint256\",\n },\n ],\n name: \"getRoleMember\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"bytes32\",\n name: \"role\",\n type: \"bytes32\",\n },\n ],\n name: \"getRoleMemberCount\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"bytes32\",\n name: \"role\",\n type: \"bytes32\",\n },\n {\n internalType: \"address\",\n name: \"account\",\n type: \"address\",\n },\n ],\n name: \"grantRole\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"bytes32\",\n name: \"role\",\n type: \"bytes32\",\n },\n {\n internalType: \"address\",\n name: \"account\",\n type: \"address\",\n },\n ],\n name: \"hasRole\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IConverterAnchor\",\n name: \"poolAnchor\",\n type: \"address\",\n },\n ],\n name: \"isPoolSupported\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IConverterAnchor\",\n name: \"poolAnchor\",\n type: \"address\",\n },\n ],\n name: \"isPoolWhitelisted\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"lockDuration\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"maxProtectionDelay\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"minNetworkCompensation\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"minNetworkTokenLiquidityForMinting\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"minProtectionDelay\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"networkToken\",\n outputs: [\n {\n internalType: \"contract IERC20Token\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IConverterAnchor\",\n name: \"poolAnchor\",\n type: \"address\",\n },\n ],\n name: \"networkTokenMintingLimits\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"newOwner\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"onlyOwnerCanUpdateRegistry\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"owner\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"poolWhitelist\",\n outputs: [\n {\n internalType: \"address[]\",\n name: \"\",\n type: \"address[]\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"prevRegistry\",\n outputs: [\n {\n internalType: \"contract IContractRegistry\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"registry\",\n outputs: [\n {\n internalType: \"contract IContractRegistry\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IConverterAnchor\",\n name: \"poolAnchor\",\n type: \"address\",\n },\n ],\n name: \"removePoolFromWhitelist\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract ILiquidityProtectionEventsSubscriber\",\n name: \"subscriber\",\n type: \"address\",\n },\n ],\n name: \"removeSubscriber\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"bytes32\",\n name: \"role\",\n type: \"bytes32\",\n },\n {\n internalType: \"address\",\n name: \"account\",\n type: \"address\",\n },\n ],\n name: \"renounceRole\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"restoreRegistry\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"bool\",\n name: \"_onlyOwnerCanUpdateRegistry\",\n type: \"bool\",\n },\n ],\n name: \"restrictRegistryUpdate\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"bytes32\",\n name: \"role\",\n type: \"bytes32\",\n },\n {\n internalType: \"address\",\n name: \"account\",\n type: \"address\",\n },\n ],\n name: \"revokeRole\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint32\",\n name: \"deviation\",\n type: \"uint32\",\n },\n ],\n name: \"setAverageRateMaxDeviation\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"setDefaultNetworkTokenMintingLimit\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"duration\",\n type: \"uint256\",\n },\n ],\n name: \"setLockDuration\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"setMinNetworkCompensation\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"setMinNetworkTokenLiquidityForMinting\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IConverterAnchor\",\n name: \"poolAnchor\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"setNetworkTokenMintingLimit\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"minDelay\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"maxDelay\",\n type: \"uint256\",\n },\n ],\n name: \"setProtectionDelays\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"subscribers\",\n outputs: [\n {\n internalType: \"address[]\",\n name: \"\",\n type: \"address[]\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"_newOwner\",\n type: \"address\",\n },\n ],\n name: \"transferOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"updateRegistry\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n];\n\nexport class LiquidityProtectionSettings__factory {\n static readonly abi = _abi;\n static createInterface(): LiquidityProtectionSettingsInterface {\n return new utils.Interface(_abi) as LiquidityProtectionSettingsInterface;\n }\n static connect(\n address: string,\n signerOrProvider: Signer | Provider\n ): LiquidityProtectionSettings {\n return new Contract(\n address,\n _abi,\n signerOrProvider\n ) as LiquidityProtectionSettings;\n }\n}\n","/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\n\nimport { Contract, Signer, utils } from \"ethers\";\nimport { Provider } from \"@ethersproject/providers\";\nimport type {\n LiquidityProtectionStore,\n LiquidityProtectionStoreInterface,\n} from \"../LiquidityProtectionStore\";\n\nconst _abi = [\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"_provider\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"_amount\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"_expirationTime\",\n type: \"uint256\",\n },\n ],\n name: \"BalanceLocked\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"_provider\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"_amount\",\n type: \"uint256\",\n },\n ],\n name: \"BalanceUnlocked\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"_prevOwner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"_newOwner\",\n type: \"address\",\n },\n ],\n name: \"OwnerUpdate\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"contract IConverterAnchor\",\n name: \"_poolAnchor\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"bool\",\n name: \"_added\",\n type: \"bool\",\n },\n ],\n name: \"PoolWhitelistUpdated\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"_provider\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"contract IDSToken\",\n name: \"_poolToken\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"contract IERC20Token\",\n name: \"_reserveToken\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"_poolAmount\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"_reserveAmount\",\n type: \"uint256\",\n },\n ],\n name: \"ProtectionAdded\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"_provider\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"contract IDSToken\",\n name: \"_poolToken\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"contract IERC20Token\",\n name: \"_reserveToken\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"_poolAmount\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"_reserveAmount\",\n type: \"uint256\",\n },\n ],\n name: \"ProtectionRemoved\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"_provider\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"_prevPoolAmount\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"_prevReserveAmount\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"_newPoolAmount\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"_newReserveAmount\",\n type: \"uint256\",\n },\n ],\n name: \"ProtectionUpdated\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"contract IERC20Token\",\n name: \"_token\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"_prevAmount\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"_newAmount\",\n type: \"uint256\",\n },\n ],\n name: \"SystemBalanceUpdated\",\n type: \"event\",\n },\n {\n inputs: [],\n name: \"acceptOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"_provider\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"_amount\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"_expirationTime\",\n type: \"uint256\",\n },\n ],\n name: \"addLockedBalance\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IConverterAnchor\",\n name: \"_poolAnchor\",\n type: \"address\",\n },\n ],\n name: \"addPoolToWhitelist\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"_provider\",\n type: \"address\",\n },\n {\n internalType: \"contract IDSToken\",\n name: \"_poolToken\",\n type: \"address\",\n },\n {\n internalType: \"contract IERC20Token\",\n name: \"_reserveToken\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"_poolAmount\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"_reserveAmount\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"_reserveRateN\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"_reserveRateD\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"_timestamp\",\n type: \"uint256\",\n },\n ],\n name: \"addProtectedLiquidity\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IERC20Token\",\n name: \"_token\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"_amount\",\n type: \"uint256\",\n },\n ],\n name: \"decSystemBalance\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IERC20Token\",\n name: \"_token\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"_amount\",\n type: \"uint256\",\n },\n ],\n name: \"incSystemBalance\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IConverterAnchor\",\n name: \"_poolAnchor\",\n type: \"address\",\n },\n ],\n name: \"isPoolWhitelisted\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"_provider\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"_index\",\n type: \"uint256\",\n },\n ],\n name: \"lockedBalance\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"_provider\",\n type: \"address\",\n },\n ],\n name: \"lockedBalanceCount\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"_provider\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"_startIndex\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"_endIndex\",\n type: \"uint256\",\n },\n ],\n name: \"lockedBalanceRange\",\n outputs: [\n {\n internalType: \"uint256[]\",\n name: \"\",\n type: \"uint256[]\",\n },\n {\n internalType: \"uint256[]\",\n name: \"\",\n type: \"uint256[]\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"newOwner\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"owner\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_id\",\n type: \"uint256\",\n },\n ],\n name: \"protectedLiquidity\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n {\n internalType: \"contract IDSToken\",\n name: \"\",\n type: \"address\",\n },\n {\n internalType: \"contract IERC20Token\",\n name: \"\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"_provider\",\n type: \"address\",\n },\n ],\n name: \"protectedLiquidityCount\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"_provider\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"_index\",\n type: \"uint256\",\n },\n ],\n name: \"protectedLiquidityId\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"_provider\",\n type: \"address\",\n },\n ],\n name: \"protectedLiquidityIds\",\n outputs: [\n {\n internalType: \"uint256[]\",\n name: \"\",\n type: \"uint256[]\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"_provider\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"_index\",\n type: \"uint256\",\n },\n ],\n name: \"removeLockedBalance\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IConverterAnchor\",\n name: \"_poolAnchor\",\n type: \"address\",\n },\n ],\n name: \"removePoolFromWhitelist\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_id\",\n type: \"uint256\",\n },\n ],\n name: \"removeProtectedLiquidity\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IERC20Token\",\n name: \"_token\",\n type: \"address\",\n },\n ],\n name: \"systemBalance\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IDSToken\",\n name: \"_poolToken\",\n type: \"address\",\n },\n ],\n name: \"totalProtectedPoolAmount\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IDSToken\",\n name: \"_poolToken\",\n type: \"address\",\n },\n {\n internalType: \"contract IERC20Token\",\n name: \"_reserveToken\",\n type: \"address\",\n },\n ],\n name: \"totalProtectedReserveAmount\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"_newOwner\",\n type: \"address\",\n },\n ],\n name: \"transferOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_id\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"_newPoolAmount\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"_newReserveAmount\",\n type: \"uint256\",\n },\n ],\n name: \"updateProtectedLiquidityAmounts\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"_index\",\n type: \"uint256\",\n },\n ],\n name: \"whitelistedPool\",\n outputs: [\n {\n internalType: \"contract IConverterAnchor\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"whitelistedPoolCount\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"whitelistedPools\",\n outputs: [\n {\n internalType: \"contract IConverterAnchor[]\",\n name: \"\",\n type: \"address[]\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IERC20Token\",\n name: \"_token\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"_to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"_amount\",\n type: \"uint256\",\n },\n ],\n name: \"withdrawTokens\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n];\n\nexport class LiquidityProtectionStore__factory {\n static readonly abi = _abi;\n static createInterface(): LiquidityProtectionStoreInterface {\n return new utils.Interface(_abi) as LiquidityProtectionStoreInterface;\n }\n static connect(\n address: string,\n signerOrProvider: Signer | Provider\n ): LiquidityProtectionStore {\n return new Contract(\n address,\n _abi,\n signerOrProvider\n ) as LiquidityProtectionStore;\n }\n}\n","/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\n\nimport { Contract, Signer, utils } from \"ethers\";\nimport { Provider } from \"@ethersproject/providers\";\nimport type {\n LiquidityProtectionSystemStore,\n LiquidityProtectionSystemStoreInterface,\n} from \"../LiquidityProtectionSystemStore\";\n\nconst _abi = [\n {\n inputs: [],\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"contract IConverterAnchor\",\n name: \"poolAnchor\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"prevAmount\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"newAmount\",\n type: \"uint256\",\n },\n ],\n name: \"NetworkTokensMintedUpdated\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"bytes32\",\n name: \"role\",\n type: \"bytes32\",\n },\n {\n indexed: true,\n internalType: \"bytes32\",\n name: \"previousAdminRole\",\n type: \"bytes32\",\n },\n {\n indexed: true,\n internalType: \"bytes32\",\n name: \"newAdminRole\",\n type: \"bytes32\",\n },\n ],\n name: \"RoleAdminChanged\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"bytes32\",\n name: \"role\",\n type: \"bytes32\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"account\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"sender\",\n type: \"address\",\n },\n ],\n name: \"RoleGranted\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"bytes32\",\n name: \"role\",\n type: \"bytes32\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"account\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"sender\",\n type: \"address\",\n },\n ],\n name: \"RoleRevoked\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"contract IERC20Token\",\n name: \"token\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"prevAmount\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"newAmount\",\n type: \"uint256\",\n },\n ],\n name: \"SystemBalanceUpdated\",\n type: \"event\",\n },\n {\n inputs: [],\n name: \"DEFAULT_ADMIN_ROLE\",\n outputs: [\n {\n internalType: \"bytes32\",\n name: \"\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"ROLE_OWNER\",\n outputs: [\n {\n internalType: \"bytes32\",\n name: \"\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"ROLE_SUPERVISOR\",\n outputs: [\n {\n internalType: \"bytes32\",\n name: \"\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IConverterAnchor\",\n name: \"poolAnchor\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"decNetworkTokensMinted\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IERC20Token\",\n name: \"token\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"decSystemBalance\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"bytes32\",\n name: \"role\",\n type: \"bytes32\",\n },\n ],\n name: \"getRoleAdmin\",\n outputs: [\n {\n internalType: \"bytes32\",\n name: \"\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"bytes32\",\n name: \"role\",\n type: \"bytes32\",\n },\n {\n internalType: \"uint256\",\n name: \"index\",\n type: \"uint256\",\n },\n ],\n name: \"getRoleMember\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"bytes32\",\n name: \"role\",\n type: \"bytes32\",\n },\n ],\n name: \"getRoleMemberCount\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"bytes32\",\n name: \"role\",\n type: \"bytes32\",\n },\n {\n internalType: \"address\",\n name: \"account\",\n type: \"address\",\n },\n ],\n name: \"grantRole\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"bytes32\",\n name: \"role\",\n type: \"bytes32\",\n },\n {\n internalType: \"address\",\n name: \"account\",\n type: \"address\",\n },\n ],\n name: \"hasRole\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IConverterAnchor\",\n name: \"poolAnchor\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"incNetworkTokensMinted\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IERC20Token\",\n name: \"token\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"incSystemBalance\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IConverterAnchor\",\n name: \"poolAnchor\",\n type: \"address\",\n },\n ],\n name: \"networkTokensMinted\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"bytes32\",\n name: \"role\",\n type: \"bytes32\",\n },\n {\n internalType: \"address\",\n name: \"account\",\n type: \"address\",\n },\n ],\n name: \"renounceRole\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"bytes32\",\n name: \"role\",\n type: \"bytes32\",\n },\n {\n internalType: \"address\",\n name: \"account\",\n type: \"address\",\n },\n ],\n name: \"revokeRole\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IERC20Token\",\n name: \"token\",\n type: \"address\",\n },\n ],\n name: \"systemBalance\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n];\n\nexport class LiquidityProtectionSystemStore__factory {\n static readonly abi = _abi;\n static createInterface(): LiquidityProtectionSystemStoreInterface {\n return new utils.Interface(_abi) as LiquidityProtectionSystemStoreInterface;\n }\n static connect(\n address: string,\n signerOrProvider: Signer | Provider\n ): LiquidityProtectionSystemStore {\n return new Contract(\n address,\n _abi,\n signerOrProvider\n ) as LiquidityProtectionSystemStore;\n }\n}\n","/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\n\nimport { Contract, Signer, utils } from \"ethers\";\nimport { Provider } from \"@ethersproject/providers\";\nimport type { Multicall, MulticallInterface } from \"../Multicall\";\n\nconst _abi = [\n {\n inputs: [\n {\n components: [\n {\n internalType: \"address\",\n name: \"target\",\n type: \"address\",\n },\n {\n internalType: \"bytes\",\n name: \"callData\",\n type: \"bytes\",\n },\n ],\n internalType: \"struct Multicall2.Call[]\",\n name: \"calls\",\n type: \"tuple[]\",\n },\n ],\n name: \"aggregate\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"blockNumber\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes[]\",\n name: \"returnData\",\n type: \"bytes[]\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"address\",\n name: \"target\",\n type: \"address\",\n },\n {\n internalType: \"bytes\",\n name: \"callData\",\n type: \"bytes\",\n },\n ],\n internalType: \"struct Multicall2.Call[]\",\n name: \"calls\",\n type: \"tuple[]\",\n },\n ],\n name: \"blockAndAggregate\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"blockNumber\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes32\",\n name: \"blockHash\",\n type: \"bytes32\",\n },\n {\n components: [\n {\n internalType: \"bool\",\n name: \"success\",\n type: \"bool\",\n },\n {\n internalType: \"bytes\",\n name: \"returnData\",\n type: \"bytes\",\n },\n ],\n internalType: \"struct Multicall2.Result[]\",\n name: \"returnData\",\n type: \"tuple[]\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"blockNumber\",\n type: \"uint256\",\n },\n ],\n name: \"getBlockHash\",\n outputs: [\n {\n internalType: \"bytes32\",\n name: \"blockHash\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"getBlockNumber\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"blockNumber\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"getCurrentBlockCoinbase\",\n outputs: [\n {\n internalType: \"address\",\n name: \"coinbase\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"getCurrentBlockDifficulty\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"difficulty\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"getCurrentBlockGasLimit\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"gaslimit\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"getCurrentBlockTimestamp\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"timestamp\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"addr\",\n type: \"address\",\n },\n ],\n name: \"getEthBalance\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"balance\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"getLastBlockHash\",\n outputs: [\n {\n internalType: \"bytes32\",\n name: \"blockHash\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"bool\",\n name: \"requireSuccess\",\n type: \"bool\",\n },\n {\n components: [\n {\n internalType: \"address\",\n name: \"target\",\n type: \"address\",\n },\n {\n internalType: \"bytes\",\n name: \"callData\",\n type: \"bytes\",\n },\n ],\n internalType: \"struct Multicall2.Call[]\",\n name: \"calls\",\n type: \"tuple[]\",\n },\n ],\n name: \"tryAggregate\",\n outputs: [\n {\n components: [\n {\n internalType: \"bool\",\n name: \"success\",\n type: \"bool\",\n },\n {\n internalType: \"bytes\",\n name: \"returnData\",\n type: \"bytes\",\n },\n ],\n internalType: \"struct Multicall2.Result[]\",\n name: \"returnData\",\n type: \"tuple[]\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"bool\",\n name: \"requireSuccess\",\n type: \"bool\",\n },\n {\n components: [\n {\n internalType: \"address\",\n name: \"target\",\n type: \"address\",\n },\n {\n internalType: \"bytes\",\n name: \"callData\",\n type: \"bytes\",\n },\n ],\n internalType: \"struct Multicall2.Call[]\",\n name: \"calls\",\n type: \"tuple[]\",\n },\n ],\n name: \"tryBlockAndAggregate\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"blockNumber\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes32\",\n name: \"blockHash\",\n type: \"bytes32\",\n },\n {\n components: [\n {\n internalType: \"bool\",\n name: \"success\",\n type: \"bool\",\n },\n {\n internalType: \"bytes\",\n name: \"returnData\",\n type: \"bytes\",\n },\n ],\n internalType: \"struct Multicall2.Result[]\",\n name: \"returnData\",\n type: \"tuple[]\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n];\n\nexport class Multicall__factory {\n static readonly abi = _abi;\n static createInterface(): MulticallInterface {\n return new utils.Interface(_abi) as MulticallInterface;\n }\n static connect(\n address: string,\n signerOrProvider: Signer | Provider\n ): Multicall {\n return new Contract(address, _abi, signerOrProvider) as Multicall;\n }\n}\n","/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\n\nimport { Contract, Signer, utils } from \"ethers\";\nimport { Provider } from \"@ethersproject/providers\";\nimport type {\n StakingRewards,\n StakingRewardsInterface,\n} from \"../StakingRewards\";\n\nconst _abi = [\n {\n inputs: [\n {\n internalType: \"contract IStakingRewardsStore\",\n name: \"store\",\n type: \"address\",\n },\n {\n internalType: \"contract ITokenGovernance\",\n name: \"networkTokenGovernance\",\n type: \"address\",\n },\n {\n internalType: \"contract ICheckpointStore\",\n name: \"lastRemoveTimes\",\n type: \"address\",\n },\n {\n internalType: \"contract IContractRegistry\",\n name: \"registry\",\n type: \"address\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"prevOwner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"OwnerUpdate\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"provider\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"RewardsClaimed\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"provider\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"contract IDSToken\",\n name: \"poolToken\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"newId\",\n type: \"uint256\",\n },\n ],\n name: \"RewardsStaked\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"bytes32\",\n name: \"role\",\n type: \"bytes32\",\n },\n {\n indexed: true,\n internalType: \"bytes32\",\n name: \"previousAdminRole\",\n type: \"bytes32\",\n },\n {\n indexed: true,\n internalType: \"bytes32\",\n name: \"newAdminRole\",\n type: \"bytes32\",\n },\n ],\n name: \"RoleAdminChanged\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"bytes32\",\n name: \"role\",\n type: \"bytes32\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"account\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"sender\",\n type: \"address\",\n },\n ],\n name: \"RoleGranted\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"bytes32\",\n name: \"role\",\n type: \"bytes32\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"account\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"sender\",\n type: \"address\",\n },\n ],\n name: \"RoleRevoked\",\n type: \"event\",\n },\n {\n inputs: [],\n name: \"DEFAULT_ADMIN_ROLE\",\n outputs: [\n {\n internalType: \"bytes32\",\n name: \"\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"ROLE_PUBLISHER\",\n outputs: [\n {\n internalType: \"bytes32\",\n name: \"\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"ROLE_SUPERVISOR\",\n outputs: [\n {\n internalType: \"bytes32\",\n name: \"\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"ROLE_UPDATER\",\n outputs: [\n {\n internalType: \"bytes32\",\n name: \"\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"acceptOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"claimRewards\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"bytes32\",\n name: \"role\",\n type: \"bytes32\",\n },\n ],\n name: \"getRoleAdmin\",\n outputs: [\n {\n internalType: \"bytes32\",\n name: \"\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"bytes32\",\n name: \"role\",\n type: \"bytes32\",\n },\n {\n internalType: \"uint256\",\n name: \"index\",\n type: \"uint256\",\n },\n ],\n name: \"getRoleMember\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"bytes32\",\n name: \"role\",\n type: \"bytes32\",\n },\n ],\n name: \"getRoleMemberCount\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"bytes32\",\n name: \"role\",\n type: \"bytes32\",\n },\n {\n internalType: \"address\",\n name: \"account\",\n type: \"address\",\n },\n ],\n name: \"grantRole\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"bytes32\",\n name: \"role\",\n type: \"bytes32\",\n },\n {\n internalType: \"address\",\n name: \"account\",\n type: \"address\",\n },\n ],\n name: \"hasRole\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"newOwner\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"provider\",\n type: \"address\",\n },\n {\n internalType: \"contract IConverterAnchor\",\n name: \"poolAnchor\",\n type: \"address\",\n },\n {\n internalType: \"contract IReserveToken\",\n name: \"reserveToken\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"onAddingLiquidity\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n {\n internalType: \"address\",\n name: \"provider\",\n type: \"address\",\n },\n {\n internalType: \"contract IConverterAnchor\",\n name: \"\",\n type: \"address\",\n },\n {\n internalType: \"contract IReserveToken\",\n name: \"\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"onRemovingLiquidity\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"onlyOwnerCanUpdateRegistry\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"owner\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"provider\",\n type: \"address\",\n },\n {\n internalType: \"contract IDSToken\",\n name: \"poolToken\",\n type: \"address\",\n },\n ],\n name: \"pendingPoolRewards\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"provider\",\n type: \"address\",\n },\n {\n internalType: \"contract IDSToken\",\n name: \"poolToken\",\n type: \"address\",\n },\n {\n internalType: \"contract IReserveToken\",\n name: \"reserveToken\",\n type: \"address\",\n },\n ],\n name: \"pendingReserveRewards\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"provider\",\n type: \"address\",\n },\n ],\n name: \"pendingRewards\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"prevRegistry\",\n outputs: [\n {\n internalType: \"contract IContractRegistry\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"registry\",\n outputs: [\n {\n internalType: \"contract IContractRegistry\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"bytes32\",\n name: \"role\",\n type: \"bytes32\",\n },\n {\n internalType: \"address\",\n name: \"account\",\n type: \"address\",\n },\n ],\n name: \"renounceRole\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"restoreRegistry\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"bool\",\n name: \"restrictOwnerOnly\",\n type: \"bool\",\n },\n ],\n name: \"restrictRegistryUpdate\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"bytes32\",\n name: \"role\",\n type: \"bytes32\",\n },\n {\n internalType: \"address\",\n name: \"account\",\n type: \"address\",\n },\n ],\n name: \"revokeRole\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"provider\",\n type: \"address\",\n },\n {\n internalType: \"contract IDSToken\",\n name: \"poolToken\",\n type: \"address\",\n },\n {\n internalType: \"contract IReserveToken\",\n name: \"reserveToken\",\n type: \"address\",\n },\n ],\n name: \"rewardsMultiplier\",\n outputs: [\n {\n internalType: \"uint32\",\n name: \"\",\n type: \"uint32\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IDSToken\",\n name: \"poolToken\",\n type: \"address\",\n },\n {\n internalType: \"contract IReserveToken\",\n name: \"reserveToken\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"maxAmount\",\n type: \"uint256\",\n },\n {\n internalType: \"contract IDSToken\",\n name: \"newPoolToken\",\n type: \"address\",\n },\n ],\n name: \"stakeReserveRewards\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"maxAmount\",\n type: \"uint256\",\n },\n {\n internalType: \"contract IDSToken\",\n name: \"newPoolToken\",\n type: \"address\",\n },\n ],\n name: \"stakeRewards\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"store\",\n outputs: [\n {\n internalType: \"contract IStakingRewardsStore\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address[]\",\n name: \"providers\",\n type: \"address[]\",\n },\n {\n internalType: \"contract IDSToken\",\n name: \"poolToken\",\n type: \"address\",\n },\n ],\n name: \"storePoolRewards\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"provider\",\n type: \"address\",\n },\n ],\n name: \"totalClaimedRewards\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"transferOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"updateRegistry\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n];\n\nexport class StakingRewards__factory {\n static readonly abi = _abi;\n static createInterface(): StakingRewardsInterface {\n return new utils.Interface(_abi) as StakingRewardsInterface;\n }\n static connect(\n address: string,\n signerOrProvider: Signer | Provider\n ): StakingRewards {\n return new Contract(address, _abi, signerOrProvider) as StakingRewards;\n }\n}\n","/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\n\nimport { Contract, Signer, utils } from \"ethers\";\nimport { Provider } from \"@ethersproject/providers\";\nimport type { Token, TokenInterface } from \"../Token\";\n\nconst _abi = [\n {\n constant: true,\n inputs: [],\n name: \"name\",\n outputs: [\n {\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n name: \"_spender\",\n type: \"address\",\n },\n {\n name: \"_value\",\n type: \"uint256\",\n },\n ],\n name: \"approve\",\n outputs: [\n {\n name: \"success\",\n type: \"bool\",\n },\n ],\n payable: false,\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n name: \"_disable\",\n type: \"bool\",\n },\n ],\n name: \"disableTransfers\",\n outputs: [],\n payable: false,\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"totalSupply\",\n outputs: [\n {\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n name: \"_from\",\n type: \"address\",\n },\n {\n name: \"_to\",\n type: \"address\",\n },\n {\n name: \"_value\",\n type: \"uint256\",\n },\n ],\n name: \"transferFrom\",\n outputs: [\n {\n name: \"success\",\n type: \"bool\",\n },\n ],\n payable: false,\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"decimals\",\n outputs: [\n {\n name: \"\",\n type: \"uint8\",\n },\n ],\n payable: false,\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"version\",\n outputs: [\n {\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"standard\",\n outputs: [\n {\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n name: \"_token\",\n type: \"address\",\n },\n {\n name: \"_to\",\n type: \"address\",\n },\n {\n name: \"_amount\",\n type: \"uint256\",\n },\n ],\n name: \"withdrawTokens\",\n outputs: [],\n payable: false,\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n name: \"\",\n type: \"address\",\n },\n ],\n name: \"balanceOf\",\n outputs: [\n {\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"acceptOwnership\",\n outputs: [],\n payable: false,\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n name: \"_to\",\n type: \"address\",\n },\n {\n name: \"_amount\",\n type: \"uint256\",\n },\n ],\n name: \"issue\",\n outputs: [],\n payable: false,\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"owner\",\n outputs: [\n {\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"symbol\",\n outputs: [\n {\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n name: \"_from\",\n type: \"address\",\n },\n {\n name: \"_amount\",\n type: \"uint256\",\n },\n ],\n name: \"destroy\",\n outputs: [],\n payable: false,\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n name: \"_to\",\n type: \"address\",\n },\n {\n name: \"_value\",\n type: \"uint256\",\n },\n ],\n name: \"transfer\",\n outputs: [\n {\n name: \"success\",\n type: \"bool\",\n },\n ],\n payable: false,\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"transfersEnabled\",\n outputs: [\n {\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"newOwner\",\n outputs: [\n {\n name: \"\",\n type: \"address\",\n },\n ],\n payable: false,\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n name: \"\",\n type: \"address\",\n },\n {\n name: \"\",\n type: \"address\",\n },\n ],\n name: \"allowance\",\n outputs: [\n {\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n name: \"_newOwner\",\n type: \"address\",\n },\n ],\n name: \"transferOwnership\",\n outputs: [],\n payable: false,\n type: \"function\",\n },\n {\n inputs: [\n {\n name: \"_name\",\n type: \"string\",\n },\n {\n name: \"_symbol\",\n type: \"string\",\n },\n {\n name: \"_decimals\",\n type: \"uint8\",\n },\n ],\n payable: false,\n type: \"constructor\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n name: \"_token\",\n type: \"address\",\n },\n ],\n name: \"NewSmartToken\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n name: \"_amount\",\n type: \"uint256\",\n },\n ],\n name: \"Issuance\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n name: \"_amount\",\n type: \"uint256\",\n },\n ],\n name: \"Destruction\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n name: \"_prevOwner\",\n type: \"address\",\n },\n {\n indexed: false,\n name: \"_newOwner\",\n type: \"address\",\n },\n ],\n name: \"OwnerUpdate\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n name: \"_from\",\n type: \"address\",\n },\n {\n indexed: true,\n name: \"_to\",\n type: \"address\",\n },\n {\n indexed: false,\n name: \"_value\",\n type: \"uint256\",\n },\n ],\n name: \"Transfer\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n name: \"_owner\",\n type: \"address\",\n },\n {\n indexed: true,\n name: \"_spender\",\n type: \"address\",\n },\n {\n indexed: false,\n name: \"_value\",\n type: \"uint256\",\n },\n ],\n name: \"Approval\",\n type: \"event\",\n },\n];\n\nexport class Token__factory {\n static readonly abi = _abi;\n static createInterface(): TokenInterface {\n return new utils.Interface(_abi) as TokenInterface;\n }\n static connect(address: string, signerOrProvider: Signer | Provider): Token {\n return new Contract(address, _abi, signerOrProvider) as Token;\n }\n}\n","/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\n\nimport { Contract, Signer, utils } from \"ethers\";\nimport { Provider } from \"@ethersproject/providers\";\nimport type { Weth, WethInterface } from \"../Weth\";\n\nconst _abi = [\n {\n constant: true,\n inputs: [],\n name: \"name\",\n outputs: [\n {\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n name: \"guy\",\n type: \"address\",\n },\n {\n name: \"wad\",\n type: \"uint256\",\n },\n ],\n name: \"approve\",\n outputs: [\n {\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"totalSupply\",\n outputs: [\n {\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n name: \"src\",\n type: \"address\",\n },\n {\n name: \"dst\",\n type: \"address\",\n },\n {\n name: \"wad\",\n type: \"uint256\",\n },\n ],\n name: \"transferFrom\",\n outputs: [\n {\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n name: \"wad\",\n type: \"uint256\",\n },\n ],\n name: \"withdraw\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"decimals\",\n outputs: [\n {\n name: \"\",\n type: \"uint8\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n name: \"\",\n type: \"address\",\n },\n ],\n name: \"balanceOf\",\n outputs: [\n {\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"symbol\",\n outputs: [\n {\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n {\n name: \"dst\",\n type: \"address\",\n },\n {\n name: \"wad\",\n type: \"uint256\",\n },\n ],\n name: \"transfer\",\n outputs: [\n {\n name: \"\",\n type: \"bool\",\n },\n ],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [],\n name: \"deposit\",\n outputs: [],\n payable: true,\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n name: \"\",\n type: \"address\",\n },\n {\n name: \"\",\n type: \"address\",\n },\n ],\n name: \"allowance\",\n outputs: [\n {\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n payable: true,\n stateMutability: \"payable\",\n type: \"fallback\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n name: \"src\",\n type: \"address\",\n },\n {\n indexed: true,\n name: \"guy\",\n type: \"address\",\n },\n {\n indexed: false,\n name: \"wad\",\n type: \"uint256\",\n },\n ],\n name: \"Approval\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n name: \"src\",\n type: \"address\",\n },\n {\n indexed: true,\n name: \"dst\",\n type: \"address\",\n },\n {\n indexed: false,\n name: \"wad\",\n type: \"uint256\",\n },\n ],\n name: \"Transfer\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n name: \"dst\",\n type: \"address\",\n },\n {\n indexed: false,\n name: \"wad\",\n type: \"uint256\",\n },\n ],\n name: \"Deposit\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n name: \"src\",\n type: \"address\",\n },\n {\n indexed: false,\n name: \"wad\",\n type: \"uint256\",\n },\n ],\n name: \"Withdrawal\",\n type: \"event\",\n },\n];\n\nexport class Weth__factory {\n static readonly abi = _abi;\n static createInterface(): WethInterface {\n return new utils.Interface(_abi) as WethInterface;\n }\n static connect(address: string, signerOrProvider: Signer | Provider): Weth {\n return new Contract(address, _abi, signerOrProvider) as Weth;\n }\n}\n","import { web3 } from 'services/web3';\nimport { Multicall__factory } from 'services/web3/abis/types';\nimport { multiCallContract } from 'services/web3/config';\nimport { Interface } from '@ethersproject/abi';\n\nexport interface MultiCall {\n contractAddress: string;\n interface: Interface;\n methodName: string;\n methodParameters: any[];\n}\n\nexport const multicall = async (calls: MultiCall[], blockHeight?: number) => {\n const multicallContract = Multicall__factory.connect(\n multiCallContract,\n web3.provider\n );\n\n try {\n const encoded = calls.map((call) => ({\n target: call.contractAddress.toLocaleLowerCase(),\n callData: call.interface.encodeFunctionData(\n call.methodName,\n call.methodParameters\n ),\n }));\n\n const encodedRes = await multicallContract.tryAggregate(false, encoded, {\n blockTag: blockHeight,\n });\n const res = encodedRes.map((call, i) => {\n if (!call.success) return [];\n\n return calls[i].interface.decodeFunctionResult(\n calls[i].methodName,\n call.returnData\n );\n });\n\n return res;\n } catch (error) {\n console.error(error);\n }\n};\n","import { switchMapIgnoreThrow } from './customOperators';\nimport { currentNetwork$, networkVars$ } from './network';\nimport {\n distinctUntilChanged,\n map,\n pluck,\n shareReplay,\n switchMap,\n} from 'rxjs/operators';\nimport { isEqual } from 'lodash';\nimport { getContractAddressesForChainOrThrow } from '@0x/contract-addresses';\nimport { Contract, utils } from 'ethers';\nimport { RegisteredContracts } from 'services/web3/types';\nimport {\n ContractRegistry__factory,\n LiquidityProtection__factory,\n} from 'services/web3/abis/types';\nimport { web3 } from 'services/web3';\nimport { EthNetworkVariables } from 'services/web3/config';\nimport { multicall } from 'services/web3/multicall/multicall';\n\nconst zeroXContracts$ = currentNetwork$.pipe(\n switchMapIgnoreThrow(async (currentNetwork) =>\n getContractAddressesForChainOrThrow(currentNetwork as number)\n )\n);\n\nexport const exchangeProxy$ = zeroXContracts$.pipe(\n pluck('exchangeProxy'),\n map(utils.getAddress),\n shareReplay(1)\n);\n\nexport const contractAddresses$ = networkVars$.pipe(\n switchMapIgnoreThrow((networkVariables) =>\n fetchContractAddresses(networkVariables)\n ),\n distinctUntilChanged(isEqual),\n shareReplay(1)\n);\nconst fetchContractAddresses = async (\n networkVariables: EthNetworkVariables\n): Promise => {\n const contract = ContractRegistry__factory.connect(\n networkVariables.contractRegistry,\n web3.provider\n );\n\n try {\n const addresses = await multicall([\n buildAddressCall(contract, 'BancorNetwork'),\n buildAddressCall(contract, 'BancorConverterRegistry'),\n buildAddressCall(contract, 'LiquidityProtectionStore'),\n buildAddressCall(contract, 'LiquidityProtection'),\n buildAddressCall(contract, 'StakingRewards'),\n ]);\n\n if (addresses)\n return {\n BancorNetwork: addresses[0].toString(),\n BancorConverterRegistry: addresses[1].toString(),\n LiquidityProtectionStore: addresses[2].toString(),\n LiquidityProtection: addresses[3].toString(),\n StakingRewards: addresses[4].toString(),\n };\n } catch (error) {\n console.error(error);\n }\n return {\n BancorNetwork: '',\n BancorConverterRegistry: '',\n LiquidityProtectionStore: '',\n LiquidityProtection: '',\n StakingRewards: '',\n };\n};\n\nconst buildAddressCall = (registry: Contract, contract: string) => ({\n contractAddress: registry.address,\n interface: registry.interface,\n methodName: 'addressOf',\n methodParameters: [utils.formatBytes32String(contract)],\n});\n\nexport const bancorNetwork$ = contractAddresses$.pipe(pluck('BancorNetwork'));\n\nexport const liquidityProtection$ = contractAddresses$.pipe(\n pluck('LiquidityProtection')\n);\n\nexport const bancorConverterRegistry$ = contractAddresses$.pipe(\n pluck('BancorConverterRegistry')\n);\n\nexport const stakingRewards$ = contractAddresses$.pipe(pluck('StakingRewards'));\n\nexport const liquidityProtectionStore$ = liquidityProtection$.pipe(\n switchMap(async (liquidityProtection) => {\n const contract = LiquidityProtection__factory.connect(\n liquidityProtection,\n web3.provider\n );\n try {\n return await contract.store();\n } catch (error) {\n console.error(error);\n }\n\n return '';\n }),\n map(utils.getAddress),\n distinctUntilChanged(),\n shareReplay(1)\n);\n\nexport const settingsContractAddress$ = liquidityProtection$.pipe(\n switchMap(async (liquidityProtection) => {\n const contract = LiquidityProtection__factory.connect(\n liquidityProtection,\n web3.provider\n );\n\n try {\n return utils.getAddress(await contract.settings());\n } catch (error) {\n console.error(error);\n }\n\n return '';\n }),\n shareReplay(1)\n);\n\nexport const systemStoreAddress$ = liquidityProtection$.pipe(\n switchMap(async (liquidityProtection) => {\n const contract = LiquidityProtection__factory.connect(\n liquidityProtection,\n web3.provider\n );\n\n try {\n return utils.getAddress(await contract.systemStore());\n } catch (error) {\n console.error(error);\n }\n\n return '';\n }),\n shareReplay(1)\n);\n","import { timer } from 'rxjs';\n\nconst secondsToMilliseconds = (seconds: number) => seconds * 1000;\n\nexport const oneMinute$ = timer(0, secondsToMilliseconds(60));\nexport const fifteenSeconds$ = timer(0, secondsToMilliseconds(15));\n","import { BehaviorSubject } from 'rxjs';\nimport { distinctUntilChanged, shareReplay } from 'rxjs/operators';\nconst userReceiver$ = new BehaviorSubject('');\nconst balancesReceiver$ = new BehaviorSubject(false);\nconst positionsReceiver$ = new BehaviorSubject(false);\nconst rewardsReceiver$ = new BehaviorSubject(false);\nconst lockedBntReceiver$ = new BehaviorSubject(false);\n\nexport const user$ = userReceiver$.pipe(distinctUntilChanged(), shareReplay(1));\n\nexport const setUser = (userAddress: string | undefined | null) => {\n if (typeof userAddress === 'string') userReceiver$.next(userAddress);\n else userReceiver$.next('');\n};\n\nexport const loadingBalances$ = balancesReceiver$.pipe(\n distinctUntilChanged(),\n shareReplay(1)\n);\n\nexport const setLoadingBalances = (loading: boolean) => {\n balancesReceiver$.next(loading);\n};\n\nexport const loadingPositions$ = positionsReceiver$.pipe(\n distinctUntilChanged(),\n shareReplay(1)\n);\n\nexport const setLoadingPositions = (loading: boolean) => {\n positionsReceiver$.next(loading);\n};\n\nexport const loadingRewards$ = rewardsReceiver$.pipe(\n distinctUntilChanged(),\n shareReplay(1)\n);\n\nexport const setLoadingRewards = (loading: boolean) => {\n rewardsReceiver$.next(loading);\n};\n\nexport const loadingLockedBnt$ = lockedBntReceiver$.pipe(\n distinctUntilChanged(),\n shareReplay(1)\n);\n\nexport const setLoadingLockedBnt = (loading: boolean) => {\n lockedBntReceiver$.next(loading);\n};\n","import { Token } from './tokens';\nimport { ethToken } from 'services/web3/config';\nimport { web3 } from 'services/web3';\nimport { partition } from 'lodash';\nimport { shrinkToken } from 'utils/formulas';\nimport { MultiCall, multicall } from 'services/web3/multicall/multicall';\nimport { Token__factory } from 'services/web3/abis/types';\nimport { Result } from '@ethersproject/abi/lib/coders/abstract-coder';\nimport BigNumber from 'bignumber.js';\n\nexport const fetchTokenBalances = async (\n tokens: Token[],\n user: string\n): Promise => {\n const [eth, tokensNoETH] = partition(\n tokens,\n (token) => token.address === ethToken\n );\n\n const calls = tokensNoETH.map((x) => buildTokenBalanceCall(x.address, user));\n\n try {\n const [tokenBalances, ethBalance]: [\n Result[] | undefined,\n string | undefined\n ] = await Promise.all([multicall(calls), eth && fetchETH(user)]);\n if (tokenBalances) {\n const balances = tokenBalances.map((bn, index) => {\n const balance = bn.length > 0 ? (bn[0] as BigNumber).toString() : '0';\n return {\n ...tokensNoETH[index],\n balance:\n balance !== '0'\n ? shrinkToken(balance, tokensNoETH[index].decimals)\n : balance,\n };\n });\n\n if (eth) {\n const ethIndex = tokens.findIndex((x) => x.address === ethToken);\n balances.splice(ethIndex, 0, {\n ...tokens[ethIndex],\n balance: ethBalance,\n });\n }\n\n return balances;\n }\n } catch (e: any) {\n console.error('Failed fetching balances: ', e);\n }\n\n return [];\n};\n\nexport const buildTokenBalanceCall = (\n address: string,\n user: string\n): MultiCall => {\n const contract = Token__factory.connect(address, web3.provider);\n\n return {\n contractAddress: contract.address,\n interface: contract.interface,\n methodName: 'balanceOf',\n methodParameters: [user],\n };\n};\n\nexport const buildTokenTotalSupplyCall = (address: string): MultiCall => {\n const contract = Token__factory.connect(address, web3.provider);\n\n return {\n contractAddress: contract.address,\n interface: contract.interface,\n methodName: 'totalSupply',\n methodParameters: [],\n };\n};\n\nconst fetchETH = async (user: string) =>\n shrinkToken((await web3.provider.getBalance(user)).toString(), 18);\n","import { getWelcomeData, WelcomeData } from 'services/api/bancor';\nimport { isEqual, zip } from 'lodash';\nimport { combineLatest } from 'rxjs';\nimport {\n distinctUntilChanged,\n map,\n pluck,\n share,\n shareReplay,\n startWith,\n} from 'rxjs/operators';\nimport { ConverterAndAnchor } from 'services/web3/types';\nimport { bancorConverterRegistry$ } from './contracts';\nimport { switchMapIgnoreThrow } from './customOperators';\nimport { currentNetwork$ } from './network';\nimport { fifteenSeconds$ } from './timers';\nimport { web3 } from 'services/web3';\nimport { BigNumber, utils } from 'ethers';\nimport { updateArray } from 'utils/pureFunctions';\nimport { ConverterRegistry__factory } from 'services/web3/abis/types';\nimport { user$ } from './user';\nimport { multicall } from 'services/web3/multicall/multicall';\nimport { buildTokenBalanceCall, buildTokenTotalSupplyCall } from './balances';\n\nexport const apiData$ = combineLatest([currentNetwork$, fifteenSeconds$]).pipe(\n switchMapIgnoreThrow(([networkVersion]) => getWelcomeData(networkVersion)),\n shareReplay(1)\n);\n\nexport const apiTokens$ = apiData$.pipe(\n pluck('tokens'),\n distinctUntilChanged(isEqual),\n share()\n);\n\nconst trueAnchors$ = bancorConverterRegistry$.pipe(\n switchMapIgnoreThrow(async (converterRegistry) => {\n const contract = ConverterRegistry__factory.connect(\n converterRegistry,\n web3.provider\n );\n return await contract.getAnchors();\n }),\n shareReplay(1)\n);\n\nconst anchorAndConverters$ = combineLatest([\n trueAnchors$,\n bancorConverterRegistry$,\n]).pipe(\n switchMapIgnoreThrow(async ([anchorAddresses, converterRegistryAddress]) => {\n const contract = ConverterRegistry__factory.connect(\n converterRegistryAddress,\n web3.provider\n );\n\n const converters = await contract.getConvertersByAnchors(anchorAddresses);\n const anchorsAndConverters = zipAnchorAndConverters(\n anchorAddresses,\n converters\n );\n return anchorsAndConverters;\n }),\n startWith([] as ConverterAndAnchor[]),\n shareReplay(1)\n);\n\nconst apiPools$ = apiData$.pipe(\n pluck('pools'),\n distinctUntilChanged(isEqual),\n shareReplay(1)\n);\n\nexport const partialPoolTokens$ = combineLatest([\n anchorAndConverters$,\n user$,\n]).pipe(\n switchMapIgnoreThrow(async ([anchorAndConverters, user]) => {\n if (!user) return [];\n\n const calls = anchorAndConverters.map((x) =>\n buildTokenBalanceCall(x.anchorAddress, user)\n );\n\n const res = await multicall(calls);\n if (res) {\n const partialPTokens = res\n .map((x, index) => {\n const anchorConverter = anchorAndConverters[index];\n return {\n balance: x.length > 0 ? (x[0] as BigNumber).toString() : '0',\n anchor: anchorConverter.anchorAddress,\n converter: anchorConverter.converterAddress,\n };\n })\n .filter((x) => x.balance !== '0');\n\n const calls = partialPTokens.map((x) =>\n buildTokenTotalSupplyCall(x.anchor)\n );\n const total = await multicall(calls);\n if (total) {\n return partialPTokens.map((token, index) => ({\n totalSupply: total[index].toString(),\n ...token,\n }));\n }\n }\n\n return [];\n })\n);\n\nexport const correctedPools$ = combineLatest([\n apiPools$,\n anchorAndConverters$,\n]).pipe(\n map(([pools, anchorAndConverters]) => {\n if (anchorAndConverters.length === 0) return pools;\n return updateArray(\n pools,\n (pool) => {\n const correctAnchor = anchorAndConverters.find(\n (anchor) => anchor.anchorAddress === pool.pool_dlt_id\n );\n if (!correctAnchor) return false;\n return correctAnchor.converterAddress !== pool.converter_dlt_id;\n },\n (pool) => {\n const correctAnchor = anchorAndConverters.find(\n (anchor) => anchor.anchorAddress === pool.pool_dlt_id\n )!;\n return {\n ...pool,\n converter_dlt_id: correctAnchor.converterAddress,\n };\n }\n );\n }),\n distinctUntilChanged(isEqual),\n shareReplay(1)\n);\n\nconst zipAnchorAndConverters = (\n anchorAddresses: string[],\n converterAddresses: string[]\n): ConverterAndAnchor[] => {\n if (anchorAddresses.length !== converterAddresses.length)\n throw new Error(\n 'was expecting as many anchor addresses as converter addresses'\n );\n\n const zipped = zip(anchorAddresses, converterAddresses) as [string, string][];\n return zipped.map(([anchorAddress, converterAddress]) => ({\n anchorAddress: utils.getAddress(anchorAddress!),\n converterAddress: utils.getAddress(converterAddress!),\n }));\n};\n","import dayjs from 'dayjs';\nimport duration from 'dayjs/plugin/duration';\n\ndayjs.extend(duration);\n\nexport default dayjs;\n","declare global {\n interface Window {\n dataLayer: any;\n ethereum: any;\n }\n}\n\nexport const googleTagManager = (id: string, name: string | null) => {\n if (window.dataLayer) return;\n\n window.dataLayer = [\n {\n wallet:\n id && name\n ? {\n id: id,\n name: name,\n }\n : {},\n page: { class: 'App' },\n },\n ];\n\n init(window, document, 'script', 'dataLayer', 'GTM-TCBKR7W');\n sendGTMPath(undefined, window.location.pathname);\n};\n\nconst init = (w: any, d: any, s: any, l: any, i: any) => {\n w[l] = w[l] || [];\n w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' });\n var f = d.getElementsByTagName(s)[0],\n j = d.createElement(s),\n dl = l !== 'dataLayer' ? '&l=' + l : '';\n j.async = true;\n j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl;\n f.parentNode.insertBefore(j, f);\n};\n\nconst sendGTM = (data: {}) => {\n const dataLayer = window.dataLayer as {}[];\n if (dataLayer) dataLayer.push(data);\n};\n\nexport enum ConversionEvents {\n click,\n approvePop,\n approved,\n wallet_req,\n wallet_confirm,\n fail,\n success,\n}\n\nconst conversionTxt = (event: ConversionEvents): string => {\n switch (event) {\n case ConversionEvents.click:\n return 'Conversion Swap Click';\n case ConversionEvents.approvePop:\n return 'Conversion Unlimited Popup';\n case ConversionEvents.approved:\n return 'Conversion Unlimited Popup Select';\n case ConversionEvents.wallet_req:\n return 'Conversion Wallet Confirmation Request';\n case ConversionEvents.wallet_confirm:\n return 'Conversion Wallet Confirmed';\n case ConversionEvents.fail:\n return 'Conversion Failed';\n case ConversionEvents.success:\n return 'Conversion Success';\n }\n};\n\nexport const sendConversionEvent = (\n event: ConversionEvents,\n event_properties: {} | undefined = undefined\n) => {\n sendGTM({\n event: 'CE ' + conversionTxt(event),\n event_properties: event_properties,\n user_properties: undefined,\n ga_event: {\n category: 'Conversion',\n },\n });\n};\n\nexport enum WalletEvents {\n popup,\n click,\n connect,\n}\nconst walletTxt = (event: WalletEvents): string => {\n switch (event) {\n case WalletEvents.popup:\n return 'Wallet Connect Select Wallet Popup';\n case WalletEvents.click:\n return 'Wallet Connect Wallet Icon Click';\n case WalletEvents.connect:\n return 'Wallet Connect';\n }\n};\n\nexport const sendWalletEvent = (\n walletEvent: WalletEvents,\n event_properties: {} | undefined = undefined,\n id: string = '',\n name: string = ''\n) => {\n const wallet = 'Wallet';\n const event = walletTxt(walletEvent);\n if (id && name)\n sendGTM({\n event: 'CE ' + event,\n ga_event: {\n category: wallet,\n },\n user_properties: {\n wallet_id: id,\n wallet_name: name,\n },\n wallet: {\n id,\n name,\n },\n });\n else\n sendGTM({\n event: 'CE ' + event,\n event_properties: event_properties,\n user_properties: undefined,\n ga_event: {\n category: wallet,\n },\n });\n};\n\nexport const sendInsight = (open: boolean) => {\n sendGTM({\n event: `CE Conversion Insights ${open ? 'Open' : 'Closed'}`,\n event_properties: undefined,\n user_properties: undefined,\n ga_event: {\n category: 'Conversion',\n },\n page: { swap_insights: open ? 'Open' : 'Closed' },\n });\n};\n\nexport const sendGTMPath = (\n from: string | undefined,\n to: string,\n darkMode: boolean = false\n) => {\n const item = localStorage.getItem('insightsExpanded');\n const open = item ? (JSON.parse(item) as boolean) : false;\n sendGTM({\n event: 'VP ' + to,\n page: {\n from_path: from,\n to_path: to,\n theme: darkMode ? 'Dark' : 'Light',\n currency: 'USD',\n swap_insights: to === '/' ? (open ? 'Open' : 'Closed') : undefined,\n },\n user_properties: undefined,\n ga_event: undefined,\n });\n};\n","import { Token } from 'services/observables/tokens';\nimport {\n getOrderDetails,\n RfqOrderJson,\n sendOrders,\n} from 'services/api/keeperDao';\nimport { NULL_ADDRESS } from '@0x/utils';\nimport { ErrorCode, EthNetworks, SignatureType } from 'services/web3/types';\nimport { wethToken } from 'services/web3/config';\nimport { writeWeb3 } from 'services/web3';\nimport BigNumber from 'bignumber.js';\nimport dayjs from 'utils/dayjs';\nimport {\n BaseNotification,\n NotificationType,\n} from 'redux/notification/notification';\nimport { expandToken } from 'utils/formulas';\nimport { Weth__factory } from '../abis/types';\nimport { utils } from 'ethers';\n\nexport const depositWeth = async (amount: string) => {\n const tokenContract = Weth__factory.connect(wethToken, writeWeb3.signer);\n const wei = expandToken(amount, 18);\n\n const tx = await tokenContract.deposit({ value: wei });\n return tx.hash;\n};\n\nexport const withdrawWeth = async (\n amount: string\n): Promise => {\n const tokenContract = Weth__factory.connect(wethToken, writeWeb3.signer);\n const wei = expandToken(amount, 18);\n\n try {\n const tx = await tokenContract.withdraw(wei);\n\n return {\n type: NotificationType.pending,\n title: 'Pending Confirmation',\n msg: 'Withdraw WETH is pending confirmation',\n txHash: tx.hash,\n updatedInfo: {\n successTitle: 'Success!',\n successMsg: `Your withdraw of ${amount} WETH has been confirmed`,\n errorTitle: 'Transaction Failed',\n errorMsg: `Withdrawing ${amount} WETH had failed. Please try again or contact support.`,\n },\n };\n } catch (e: any) {\n if (e.code === ErrorCode.DeniedTx)\n return {\n type: NotificationType.error,\n title: 'Transaction Rejected',\n msg: 'You rejected the transaction. If this was by mistake, please try again.',\n };\n\n return {\n type: NotificationType.error,\n title: 'Transaction Failed',\n msg: `Withdrawing ${amount} WETH had failed. Please try again or contact support.`,\n };\n }\n};\n\nexport const createOrder = async (\n fromToken: Token,\n toToken: Token,\n from: string,\n to: string,\n user: string,\n seconds: number\n): Promise => {\n const expiry = Number(dayjs().unix() + seconds);\n const fromAmountWei = new BigNumber(expandToken(from, fromToken.decimals));\n const toAmountWei = new BigNumber(expandToken(to, toToken.decimals));\n const salt = Number(utils.hexlify(utils.randomBytes(6)));\n const orderDetails = await getOrderDetails();\n\n const order = {\n maker: user.toLowerCase(),\n taker: NULL_ADDRESS.toLocaleLowerCase(),\n expiry,\n makerAmount: fromAmountWei.toString(),\n makerToken: fromToken.address.toLowerCase(),\n pool: orderDetails.pool,\n salt,\n takerAmount: toAmountWei.toString(),\n takerToken: toToken.address.toLowerCase(),\n txOrigin: orderDetails.txOrigin,\n };\n\n const signature = await writeWeb3.signer._signTypedData(\n domain(orderDetails.verifyingContract),\n types,\n order\n );\n\n const splittedSign = utils.splitSignature(signature);\n const jsonOrder: RfqOrderJson = {\n maker: order.maker.toLowerCase(),\n taker: order.taker,\n chainId: EthNetworks.Mainnet,\n expiry: order.expiry,\n makerAmount: order.makerAmount,\n makerToken: order.makerToken.toLowerCase(),\n pool: order.pool,\n salt: order.salt,\n signature: {\n r: splittedSign.r,\n s: splittedSign.s,\n v: splittedSign.v,\n signatureType: SignatureType.EIP712,\n },\n takerAmount: order.takerAmount,\n takerToken: order.takerToken.toLowerCase(),\n txOrigin: order.txOrigin.toLowerCase(),\n verifyingContract: orderDetails.verifyingContract.toLowerCase(),\n };\n\n await sendOrders([jsonOrder]);\n};\n\nconst domain = (exchangeProxyAddress: string) => ({\n chainId: 1,\n verifyingContract: exchangeProxyAddress,\n name: 'ZeroEx',\n version: '1.0.0',\n});\n\nconst types = {\n RfqOrder: [\n { type: 'address', name: 'makerToken' },\n { type: 'address', name: 'takerToken' },\n { type: 'uint128', name: 'makerAmount' },\n { type: 'uint128', name: 'takerAmount' },\n { type: 'address', name: 'maker' },\n { type: 'address', name: 'taker' },\n { type: 'address', name: 'txOrigin' },\n { type: 'bytes32', name: 'pool' },\n { type: 'uint64', name: 'expiry' },\n { type: 'uint256', name: 'salt' },\n ],\n};\n","import BigNumber from 'bignumber.js';\nimport numeral from 'numeral';\nimport { EthNetworks } from 'services/web3/types';\nimport dayjs from 'dayjs';\nimport { shrinkToken } from './formulas';\nimport { APIPool } from '../services/api/bancor';\nimport { Pool } from '../services/observables/tokens';\n\nconst oneMillion = new BigNumber(1000000);\n\nexport const ppmToDec = (ppm: number | string | BigNumber) =>\n new BigNumber(ppm).div(oneMillion);\n\nexport const decToPpm = (dec: number | string | BigNumber): string =>\n new BigNumber(dec).times(oneMillion).toFixed(0);\n\nexport const prettifyNumber = (\n num: number | string | BigNumber,\n usd = false\n): string => {\n const bigNum = new BigNumber(num);\n if (usd) {\n if (bigNum.lte(0)) return '$0.00';\n else if (bigNum.lt(0.01)) return '< $0.01';\n else if (bigNum.gt(100)) return numeral(bigNum).format('$0,0', Math.floor);\n else return numeral(bigNum).format('$0,0.00', Math.floor);\n } else {\n if (bigNum.lte(0)) return '0';\n else if (bigNum.gte(1000)) return numeral(bigNum).format('0,0', Math.floor);\n else if (bigNum.gte(2))\n return numeral(bigNum).format('0,0.[00]', Math.floor);\n else if (bigNum.lt(0.000001)) return '< 0.000001';\n else return numeral(bigNum).format('0.[000000]', Math.floor);\n }\n};\n\nexport const formatDuration = (duration: plugin.Duration): string => {\n let sentence = '';\n const days = duration.days();\n const minutes = duration.minutes();\n const hours = duration.hours();\n if (days > 0) sentence += days + ' Days';\n if (hours > 0) sentence += ' ' + hours + ' Hours';\n if (minutes > 0) sentence += ' ' + minutes + ' Minutes';\n return sentence;\n};\n\nexport const formatTime = (ms: number, withDays: boolean = false): string =>\n dayjs\n .duration(ms)\n .format(`${withDays ? 'M [Months] D [Days] ' : ''}HH[:]mm[:]ss`);\n\nexport const getNetworkName = (network: EthNetworks): string => {\n switch (network) {\n case EthNetworks.Mainnet:\n return 'Ethereum Mainnet';\n case EthNetworks.Ropsten:\n return 'Ropsten Test Network';\n default:\n return 'Unsupported network';\n }\n};\n\nexport const isUnsupportedNetwork = (\n network: EthNetworks | undefined\n): boolean => {\n return network !== undefined && EthNetworks[network] === undefined;\n};\n\nexport const calculateBntNeededToOpenSpace = (\n bntBalance: string,\n tknBalance: string,\n networkTokensMinted: string,\n networkTokenMintingLimits: string\n): string => {\n return new BigNumber(bntBalance)\n .div(tknBalance)\n .plus(networkTokensMinted)\n .minus(networkTokenMintingLimits)\n .toString();\n};\n\nexport const calculatePriceDeviationTooHigh = (\n averageRate: BigNumber,\n primaryReserveBalance: BigNumber,\n secondaryReserveBalance: BigNumber,\n averageRateMaxDeviation: BigNumber\n): boolean => {\n const spotRate = primaryReserveBalance.dividedBy(secondaryReserveBalance);\n\n const averageRateMaxDeviationBase = new BigNumber(oneMillion).minus(\n averageRateMaxDeviation\n );\n\n const threshold = averageRate.dividedBy(spotRate);\n\n const withinLowerThreshold = threshold.isGreaterThan(\n averageRateMaxDeviationBase.dividedBy(oneMillion)\n );\n\n const withinHigherThreshold = oneMillion\n .dividedBy(averageRateMaxDeviationBase)\n .isGreaterThan(threshold);\n\n return !(withinLowerThreshold && withinHigherThreshold);\n};\n\nexport const rewindBlocksByDays = (\n currentBlock: number,\n days: number,\n secondsPerBlock = 13.3\n) => {\n if (!Number.isInteger(currentBlock))\n throw new Error('Current block should be an integer');\n const secondsToRewind = dayjs.duration(days, 'days').asSeconds();\n const blocksToRewind = parseInt(String(secondsToRewind / secondsPerBlock));\n return currentBlock - blocksToRewind;\n};\n\nexport const calculateProgressLevel = (\n startTimeSeconds: number,\n endTimeSeconds: number\n) => {\n if (endTimeSeconds < startTimeSeconds)\n throw new Error('End time should be greater than start time');\n const totalWaitingTime = endTimeSeconds - startTimeSeconds;\n const now = dayjs().unix();\n if (now >= endTimeSeconds) return 1;\n const timeWaited = now - startTimeSeconds;\n return timeWaited / totalWaitingTime;\n};\n\nexport const calculateAPR = (\n roi: number | string | BigNumber,\n magnitude: number | string | BigNumber\n) => ppmToDec(roi).minus(1).times(magnitude);\n\nexport const calcUsdPrice = (\n amount: number | string | BigNumber,\n price: string | number | BigNumber | null,\n decimals: number\n) => new BigNumber(shrinkToken(amount, decimals)).times(price ?? 0).toString();\n\nexport const IS_IN_IFRAME = window.self !== window.top;\n\nexport const findPoolByConverter = (\n converter: string,\n pools: Pool[],\n apiPools: APIPool[]\n): APIPool | Pool | undefined => {\n const poolExists = pools.find((x) => x.converter_dlt_id === converter);\n\n if (poolExists) {\n return poolExists;\n } else {\n return apiPools.find((x) => x.converter_dlt_id === converter);\n }\n};\n","import axios from 'axios';\nimport BigNumber from 'bignumber.js';\nimport JSONbig from 'json-bigint';\nimport {\n BaseNotification,\n NotificationType,\n} from 'redux/notification/notification';\nimport { take } from 'rxjs/operators';\nimport { Token, tokens$ } from 'services/observables/tokens';\nimport { writeWeb3 } from 'services/web3';\nimport { ethToken, wethToken } from 'services/web3/config';\nimport { createOrder, depositWeth } from 'services/web3/swap/limit';\nimport { prettifyNumber } from 'utils/helperFunctions';\nimport { sendConversionEvent, ConversionEvents } from './googleTagManager';\nimport { utils } from 'ethers';\nimport { getConversionLS } from 'utils/localStorage';\nimport { ErrorCode } from 'services/web3/types';\nimport { shrinkToken } from 'utils/formulas';\nimport { ExchangeProxy__factory } from 'services/web3/abis/types';\nimport { exchangeProxy$ } from 'services/observables/contracts';\n\nconst baseUrl: string = 'https://hidingbook.keeperdao.com/api/v1';\n\nenum OrderStatus {\n Invalid,\n Fillable,\n Filled,\n Cancelled,\n Expired,\n}\n\ninterface StringRfq {\n makerToken: string;\n takerToken: string;\n makerAmount: string;\n takerAmount: string;\n maker: string;\n taker: string;\n txOrigin: string;\n pool: string;\n expiry: string;\n salt: string;\n}\n\nexport const swapLimit = async (\n fromToken: Token,\n toToken: Token,\n from: string,\n to: string,\n user: string,\n duration: plugin.Duration,\n checkApproval: Function\n): Promise => {\n const fromIsEth = ethToken === fromToken.address;\n const conversion = getConversionLS();\n try {\n if (fromIsEth) {\n try {\n const txHash = await depositWeth(from);\n checkApproval({ ...fromToken, symbol: 'WETH', address: wethToken });\n return {\n type: NotificationType.pending,\n title: 'Pending Confirmation',\n msg: `Depositing ${from} ETH to WETH is pending confirmation`,\n txHash,\n updatedInfo: {\n successTitle: 'Success!',\n successMsg: `Your deposit ${from} ETH to WETH is confirmed`,\n errorTitle: 'Transaction Failed',\n errorMsg: `Depositing ${from} ETH to WETH has failed. Please try again or contact support`,\n },\n };\n } catch (e: any) {\n if (e.code === ErrorCode.DeniedTx)\n return {\n type: NotificationType.error,\n title: 'Transaction Rejected',\n msg: 'You rejected the transaction. To complete the order you need to click approve.',\n };\n\n return {\n type: NotificationType.error,\n title: 'Transaction Failed',\n msg: `Depositing ${from} ETH to WETH has failed. Please try again or contact support`,\n };\n }\n } else {\n sendConversionEvent(ConversionEvents.wallet_req, conversion);\n await createOrder(\n fromToken,\n toToken,\n from,\n to,\n user,\n duration.asSeconds()\n );\n sendConversionEvent(ConversionEvents.success, {\n ...conversion,\n conversion_market_token_rate: fromToken.usdPrice,\n transaction_category: 'Conversion',\n });\n\n return {\n type: NotificationType.success,\n title: 'Success!',\n msg: `Your limit order to trade ${from} ${fromToken.symbol} for ${to} ${toToken.symbol} was created`,\n };\n }\n } catch (e: any) {\n sendConversionEvent(ConversionEvents.fail, {\n conversion,\n error: e.message,\n });\n\n if (e.code === ErrorCode.DeniedTx)\n return {\n type: NotificationType.error,\n title: 'Transaction Rejected',\n msg: 'You rejected the transaction. If this was by mistake, please try again.',\n };\n\n return {\n type: NotificationType.error,\n title: 'Transaction Failed',\n msg: `Limit order to trade ${from} ${fromToken.symbol} for ${to} ${toToken.symbol} could not be created. Please try again or contact support`,\n };\n }\n};\n\nexport const getOrderDetails = async (): Promise => {\n const res = await axios.get(`${baseUrl}/info`);\n return res.data.result.orderDetails;\n};\n\ntype OrderDetails = {\n verifyingContract: string;\n chainId: number;\n txOrigin: string;\n taker: string;\n pool: string;\n};\n\nexport interface KeeprDaoToken {\n address: string;\n chainId: number;\n decimals: number;\n symbol: string;\n}\n\nexport const fetchKeeperDaoTokens = async (): Promise => {\n try {\n const res = await axios.get(`${baseUrl}/tokenList`);\n const tokens: KeeprDaoToken[] = res.data.result.tokens;\n return tokens.map((x) => ({ ...x, address: utils.getAddress(x.address) }));\n } catch (error) {\n console.error('Failed fetching keeperDao Tokens: ', error);\n return [];\n }\n};\n\nexport const getOrders = async (currentUser: string): Promise => {\n const res = await axios.get<{ orders: OrderResponse[] }>(\n `${baseUrl}/orders?maker=${currentUser}`,\n {\n transformResponse: (res) => JSONbig.parse(res),\n }\n );\n\n return orderResToLimit(\n res.data.orders.filter(\n (order) => order.metaData.status !== OrderStatus.Cancelled\n )\n );\n};\nconst orderResToLimit = async (\n orders: OrderResponse[]\n): Promise => {\n const tokens = await tokens$.pipe(take(1)).toPromise();\n\n return orders.map((res) => {\n const payToken =\n tokens.find(\n (x) => x.address === utils.getAddress(res.order.makerToken)\n ) ?? tokens[0];\n const getToken =\n tokens.find(\n (x) => x.address === utils.getAddress(res.order.takerToken)\n ) ?? tokens[0];\n\n const payAmount = new BigNumber(res.order.makerAmount);\n const getAmount = new BigNumber(res.order.takerAmount);\n return {\n hash: res.metaData.orderHash,\n expiration: res.order.expiry,\n payToken,\n getToken,\n payAmount: prettifyNumber(shrinkToken(payAmount, payToken.decimals)),\n getAmount: prettifyNumber(shrinkToken(getAmount, getToken.decimals)),\n rate: `1 ${payToken.symbol} = ${prettifyNumber(\n getAmount.div(payAmount)\n )} ${getToken.symbol}`,\n filled: prettifyNumber(\n new BigNumber(res.metaData.filledAmount_takerToken).div(\n res.metaData.remainingFillableAmount_takerToken\n )\n ),\n orderRes: res,\n };\n });\n};\n\nexport const sendOrders = async (rfqOrder: RfqOrderJson[]) => {\n const url = `${baseUrl}/orders`;\n\n try {\n const res = await axios.post<{\n message: string;\n result: { hashList: string[] };\n }>(url, rfqOrder);\n\n const succeededResponseMessage = 'Order creation succeeded';\n if (res.data.message === succeededResponseMessage) {\n return res.data;\n } else {\n throw new Error(`Unexpected response from server, ${res.data.message}`);\n }\n } catch (e: any) {\n throw new Error(`Unexpected error during send order request ${e.message}`);\n }\n};\n\nexport const cancelOrders = async (\n orders: OrderResponse[]\n): Promise => {\n const stringOrders = orders.map((limitOrder) =>\n orderToStringOrder(limitOrder.order)\n );\n const exchangeProxyAddress = await exchangeProxy$.pipe(take(1)).toPromise();\n const contract = ExchangeProxy__factory.connect(\n exchangeProxyAddress,\n writeWeb3.signer\n );\n\n try {\n const tx =\n stringOrders.length === 1\n ? await contract.cancelRfqOrder(stringOrders[0])\n : await contract.batchCancelRfqOrders(stringOrders);\n\n return {\n type: NotificationType.pending,\n title: 'Pending Confirmation',\n msg: 'Transaction is pending confirmationn',\n txHash: tx.hash,\n updatedInfo: {\n successTitle: 'Success!',\n successMsg: 'Canceling your limit orders has been confirmed',\n errorTitle: 'Transaction Failed',\n errorMsg:\n 'Transaction had failed. Please try again or contact support.',\n },\n };\n } catch (e: any) {\n if (e.code === ErrorCode.DeniedTx)\n return {\n type: NotificationType.error,\n title: 'Transaction Rejected',\n msg: 'You rejected the transaction. If this was by mistake, please try again.',\n };\n\n return {\n type: NotificationType.error,\n title: 'Transaction Failed',\n msg: 'Transaction had failed. Please try again or contact support.',\n };\n }\n};\n\nconst orderToStringOrder = (order: Order): StringRfq => ({\n expiry: String(order.expiry),\n makerAmount: order.makerAmount.toString(),\n salt: String(order.salt),\n takerAmount: order.takerAmount.toString(),\n maker: order.maker,\n makerToken: order.makerToken,\n pool: order.pool,\n taker: order.taker,\n takerToken: order.takerToken,\n txOrigin: order.txOrigin,\n});\n\nexport interface LimitOrder {\n hash: string;\n expiration: number;\n payToken: Token;\n getToken: Token;\n payAmount: string;\n getAmount: string;\n rate: string;\n filled: string;\n orderRes: OrderResponse;\n}\nexport interface RfqOrderJson {\n maker: string;\n taker: string;\n makerToken: string;\n takerToken: string;\n makerAmount: string;\n takerAmount: string;\n txOrigin: string;\n pool: string;\n expiry: number;\n salt: number;\n chainId: number; // Ethereum Chain Id where the transaction is submitted.\n verifyingContract: string; // Address of the contract where the transaction should be sent.\n signature: Signature;\n}\n\ninterface Signature {\n signatureType: number;\n v: number;\n r: string;\n s: string;\n}\n\ninterface OrderResponse {\n order: Order;\n metaData: MetaData;\n}\ninterface MetaData {\n orderHash: string;\n makerBalance_makerToken: number;\n makerAllowance_makerToken: number;\n status: OrderStatus;\n filledAmount_takerToken: number;\n remainingFillableAmount_takerToken: BigNumber;\n}\n\ninterface Order {\n maker: string;\n taker: string;\n makerAmount: BigNumber;\n takerAmount: BigNumber;\n makerToken: string;\n takerToken: string;\n salt: number;\n expiry: number;\n chainId: number;\n txOrigin: string;\n pool: string;\n verifyingContract: string;\n signature: Signature;\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 SvgTimes(_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: \"100%\",\n height: \"100%\",\n viewBox: \"0 0 14 14\",\n fill: \"currentColor\",\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: \"M0.267242 0.235624C0.606957 -0.0938109 1.16562 -0.0702758 1.50532 0.259155L6.99253 5.79214L12.504 0.259155C12.8437 -0.07028 13.4024 -0.0938011 13.7421 0.235624C14.0818 0.56506 14.0818 1.08328 13.7664 1.43624L8.20634 6.99276L13.7664 12.5728C14.0818 12.9023 14.0818 13.444 13.7421 13.7734C13.4024 14.0793 12.8437 14.0793 12.504 13.7499L6.99253 8.21691L1.50532 13.7499C1.1656 14.0793 0.606943 14.0793 0.267242 13.7734C-0.072473 13.444 -0.0967281 12.9022 0.242977 12.5728L5.803 6.99276L0.242977 1.43624C-0.0967382 1.08328 -0.0724687 0.565046 0.267242 0.235624Z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgTimes);\nexport default __webpack_public_path__ + \"static/media/times.8c10f8ed.svg\";\nexport { ForwardRef as ReactComponent };","import { bancorNetwork$ } from 'services/observables/contracts';\nimport { Token } from 'services/observables/tokens';\nimport { web3, writeWeb3 } from 'services/web3';\nimport {\n bntToken,\n ethToken,\n wethToken,\n zeroAddress,\n} from 'services/web3/config';\nimport { take } from 'rxjs/operators';\nimport BigNumber from 'bignumber.js';\nimport { apiData$ } from 'services/observables/pools';\nimport { APIPool } from 'services/api/bancor';\nimport { currentNetwork$ } from 'services/observables/network';\nimport {\n sendConversionEvent,\n ConversionEvents,\n} from 'services/api/googleTagManager';\nimport { calcReserve, expandToken, shrinkToken } from 'utils/formulas';\nimport { getConversionLS } from 'utils/localStorage';\nimport { ppmToDec } from 'utils/helperFunctions';\nimport { BancorNetwork__factory, Converter__factory } from '../abis/types';\nimport { MultiCall as MCInterface, multicall } from '../multicall/multicall';\nimport { ErrorCode } from '../types';\n\nexport const getRateAndPriceImapct = async (\n fromToken: Token,\n toToken: Token,\n amount: string\n) => {\n try {\n const networkContractAddress = await bancorNetwork$\n .pipe(take(1))\n .toPromise();\n\n const contract = BancorNetwork__factory.connect(\n networkContractAddress,\n web3.provider\n );\n\n const from =\n fromToken.address === wethToken\n ? { ...fromToken, address: ethToken }\n : fromToken;\n const to =\n toToken.address === wethToken\n ? { ...toToken, address: ethToken }\n : toToken;\n\n const path = await contract.conversionPath(from.address, to.address);\n\n const fromAmountWei = expandToken(amount, fromToken.decimals);\n const rateShape: MCInterface = {\n contractAddress: contract.address,\n interface: contract.interface,\n methodName: 'rateByPath',\n methodParameters: [path, fromAmountWei],\n };\n\n const spotRate = await calculateSpotPriceAndRate(fromToken, to, rateShape);\n const rate = shrinkToken(spotRate.rate, toToken.decimals);\n\n const priceImpactNum = new BigNumber(1)\n .minus(new BigNumber(rate).div(amount).div(spotRate.spotPrice))\n .times(100);\n\n return {\n rate,\n priceImpact: isNaN(priceImpactNum.toNumber())\n ? '0.0000'\n : priceImpactNum.toFixed(4),\n };\n } catch (error) {\n console.error('Failed fetching rate and price impact: ', error);\n return { rate: '0', priceImpact: '0.0000' };\n }\n};\n\nexport const getRate = async (\n fromToken: Token,\n toToken: Token,\n amount: string\n) => {\n try {\n const networkContractAddress = await bancorNetwork$\n .pipe(take(1))\n .toPromise();\n\n const contract = BancorNetwork__factory.connect(\n networkContractAddress,\n web3.provider\n );\n\n const from = fromToken.address === wethToken ? ethToken : fromToken.address;\n const to = toToken.address === wethToken ? ethToken : toToken.address;\n\n const path = await contract.conversionPath(from, to);\n\n const fromAmountWei = expandToken(amount, fromToken.decimals);\n const toAmountWei = await contract.rateByPath(path, fromAmountWei);\n return shrinkToken(toAmountWei.toString(), toToken.decimals);\n } catch (error) {\n console.error('Failed fetching rate', error);\n return { rate: '0', priceImpact: '0.0000' };\n }\n};\n\nconst calculateMinimumReturn = (\n expectedWei: string,\n slippageTolerance: number\n): string => {\n const res = new BigNumber(expectedWei)\n .times(new BigNumber(1).minus(slippageTolerance))\n .toFixed(0);\n\n return res === '0' ? '1' : res;\n};\n\nexport const swap = async (\n slippageTolerance: number,\n fromToken: Token,\n toToken: Token,\n fromAmount: string,\n toAmount: string,\n onHash: (txHash: string) => void,\n onCompleted: Function,\n rejected: Function,\n failed: (error: string) => void\n) => {\n try {\n const fromIsEth = fromToken.address === ethToken;\n const networkContractAddress = await bancorNetwork$\n .pipe(take(1))\n .toPromise();\n\n const contract = BancorNetwork__factory.connect(\n networkContractAddress,\n writeWeb3.signer\n );\n\n const fromWei = expandToken(fromAmount, fromToken.decimals);\n const expectedToWei = expandToken(toAmount, toToken.decimals);\n const path = await findPath(fromToken.address, toToken.address);\n\n const conversion = getConversionLS();\n sendConversionEvent(ConversionEvents.wallet_req, conversion);\n\n const tx = await contract.convertByPath(\n path,\n fromWei,\n calculateMinimumReturn(expectedToWei, slippageTolerance),\n zeroAddress,\n zeroAddress,\n 0,\n { value: fromIsEth ? fromWei : undefined }\n );\n\n sendConversionEvent(ConversionEvents.wallet_confirm, conversion);\n\n onHash(tx.hash);\n await tx.wait();\n onCompleted();\n } catch (e: any) {\n console.error('Swap failed with error: ', e);\n\n if (e.code === ErrorCode.DeniedTx) rejected();\n else failed(e.message);\n }\n};\n\nconst findPath = async (from: string, to: string) => {\n const network = await currentNetwork$.pipe(take(1)).toPromise();\n if (from === bntToken(network))\n return [from, (await findPoolByToken(to)).pool_dlt_id, to];\n\n if (to === bntToken(network))\n return [from, (await findPoolByToken(from)).pool_dlt_id, to];\n\n return [\n from,\n (await findPoolByToken(from)).pool_dlt_id,\n bntToken(network),\n (await findPoolByToken(to)).pool_dlt_id,\n to,\n ];\n};\n\nconst calculateSpotPriceAndRate = async (\n from: Token,\n to: Token,\n rateShape: MCInterface\n) => {\n const network = await currentNetwork$.pipe(take(1)).toPromise();\n\n const bnt = bntToken(network);\n let pool;\n if (from.address === bnt) pool = await findPoolByToken(to.address);\n if (to.address === bnt) pool = await findPoolByToken(from.address);\n\n if (pool) {\n const fromShape = buildTokenPoolCall(pool.converter_dlt_id, from.address);\n const toShape = buildTokenPoolCall(pool.converter_dlt_id, to.address);\n\n const mCall = [fromShape, toShape, rateShape];\n const res = await multicall(mCall);\n\n if (res && res.length === mCall.length) {\n return {\n spotPrice: calcReserve(\n shrinkToken(res[0].toString(), from.decimals),\n shrinkToken(res[1].toString(), to.decimals),\n ppmToDec(pool.fee)\n ),\n rate: res[2].toString(),\n };\n }\n }\n\n //First hop\n const fromPool = await findPoolByToken(from.address);\n const fromShape1 = buildTokenPoolCall(\n fromPool.converter_dlt_id,\n from.address\n );\n const bntShape1 = buildTokenPoolCall(fromPool.converter_dlt_id, bnt);\n\n //Second hop\n const toPool = await findPoolByToken(to.address);\n const bntShape2 = buildTokenPoolCall(toPool.converter_dlt_id, bnt);\n const toShape2 = buildTokenPoolCall(toPool.converter_dlt_id, to.address);\n\n const mCall = [fromShape1, bntShape1, bntShape2, toShape2, rateShape];\n const res = await multicall(mCall);\n\n if (res && res.length === mCall.length) {\n const spot1 = calcReserve(\n shrinkToken(res[0].toString(), from.decimals),\n shrinkToken(res[1].toString(), 18),\n ppmToDec(fromPool.fee)\n );\n\n const spot2 = calcReserve(\n shrinkToken(res[2].toString(), 18),\n shrinkToken(res[3].toString(), to.decimals),\n ppmToDec(toPool.fee)\n );\n\n return { spotPrice: spot1.times(spot2), rate: res[4].toString() };\n }\n\n return { rate: '0', spotPrice: new BigNumber(0) };\n};\n\nexport const buildTokenPoolCall = (\n contractAddress: string,\n tokenAddress: string\n): MCInterface => {\n const contract = Converter__factory.connect(contractAddress, web3.provider);\n\n return {\n contractAddress: contract.address,\n interface: contract.interface,\n methodName: 'getConnectorBalance',\n methodParameters: [tokenAddress],\n };\n};\n\nconst findPoolByToken = async (tkn: string): Promise => {\n const apiData = await apiData$.pipe(take(1)).toPromise();\n\n const pool = apiData.pools.find(\n (x) => x && x.reserves.find((x) => x.address === tkn)\n );\n if (pool) return pool;\n\n throw new Error('No pool found');\n};\n","import axios from 'axios';\nimport { BehaviorSubject, combineLatest, from } from 'rxjs';\nimport {\n distinctUntilChanged,\n map,\n pluck,\n share,\n shareReplay,\n} from 'rxjs/operators';\nimport { EthNetworks } from 'services/web3/types';\nimport { utils } from 'ethers';\nimport { apiData$, correctedPools$, partialPoolTokens$ } from './pools';\nimport { setLoadingBalances, user$ } from './user';\nimport { switchMapIgnoreThrow } from './customOperators';\nimport { currentNetwork$ } from './network';\nimport {\n getEthToken,\n buildWethToken,\n ropstenImage,\n ethToken,\n wethToken,\n} from 'services/web3/config';\nimport {\n get7DaysAgo,\n mapIgnoreThrown,\n sortTokenBalanceAlphabetic,\n} from 'utils/pureFunctions';\nimport { fetchKeeperDaoTokens } from 'services/api/keeperDao';\nimport { fetchTokenBalances } from './balances';\nimport { calculatePercentageChange, shrinkToken } from 'utils/formulas';\nimport { isEqual, sortBy, uniqBy } from 'lodash';\nimport { APIReward, WelcomeData } from 'services/api/bancor';\nimport BigNumber from 'bignumber.js';\nimport { UTCTimestamp } from 'lightweight-charts';\nimport { settingsContractAddress$ } from 'services/observables/contracts';\nimport { LiquidityProtectionSettings__factory } from 'services/web3/abis/types';\nimport { web3 } from 'services/web3';\nimport { multicall } from 'services/web3/multicall/multicall';\nimport { buildTokenPoolCall } from 'services/web3/swap/market';\nimport { findPoolByConverter } from '../../utils/helperFunctions';\n\nexport const apiTokens$ = apiData$.pipe(\n pluck('tokens'),\n distinctUntilChanged(isEqual),\n share()\n);\n\nexport interface TokenList {\n name: string;\n logoURI?: string;\n tokens: Token[];\n}\n\nexport interface Token {\n address: string;\n chainId: EthNetworks;\n name: string;\n symbol: string;\n decimals: number;\n logoURI: string;\n usdPrice: string | null;\n balance: string | null;\n liquidity: string | null;\n usd_24h_ago: string | null;\n price_change_24: number;\n price_history_7d: { time: UTCTimestamp; value: number }[];\n usd_volume_24: string | null;\n isWhitelisted?: boolean;\n}\n\nexport interface Reserve {\n address: string;\n weight: string;\n balance: string;\n symbol: string;\n logoURI: string;\n rewardApr?: number;\n decimals: number;\n usdPrice: number | string | null;\n}\n\nexport interface Pool {\n name: string;\n pool_dlt_id: string;\n converter_dlt_id: string;\n reserves: Reserve[];\n liquidity: number;\n volume_24h: number;\n fees_24h: number;\n fee: number;\n version: number;\n supply: number;\n decimals: number;\n isWhitelisted: boolean;\n apr: number;\n reward?: APIReward;\n isProtected: boolean;\n}\n\nexport interface PoolToken {\n bnt: {\n token: Reserve;\n amount: string;\n };\n tkn: {\n token: Reserve;\n amount: string;\n };\n amount: string;\n value: string;\n poolDecimals: number;\n converter: string;\n poolName: string;\n}\n\nexport const listOfLists = [\n {\n uri: 'https://tokens.1inch.eth.link',\n name: '1inch',\n },\n {\n uri: 'https://tokens.coingecko.com/ethereum/all.json',\n name: 'CoinGecko',\n },\n {\n uri: 'https://tokenlist.zerion.eth.link',\n name: 'Zerion',\n },\n {\n uri: 'https://zapper.fi/api/token-list',\n name: 'Zapper Token List',\n },\n {\n uri: 'https://raw.githubusercontent.com/compound-finance/token-list/master/compound.tokenlist.json',\n name: 'Compound',\n },\n {\n uri: 'https://yearn.science/static/tokenlist.json',\n name: 'Yearn',\n },\n {\n uri: 'https://uniswap.mycryptoapi.com',\n name: 'MyCrypto Token List',\n },\n {\n uri: 'https://tokenlist.aave.eth.link',\n name: 'Aave Token List',\n },\n {\n uri: 'https://defiprime.com/defiprime.tokenlist.json',\n name: 'Defiprime',\n },\n];\n\nexport const userPreferredListIds$ = new BehaviorSubject([]);\n\nexport const tokenLists$ = from(\n mapIgnoreThrown(listOfLists, async (list) => {\n const res = await axios.get(list.uri);\n return {\n ...res.data,\n logoURI: getLogoByURI(res.data.logoURI),\n };\n })\n).pipe(shareReplay(1));\n\nexport const tokenListMerged$ = combineLatest([\n userPreferredListIds$,\n tokenLists$,\n]).pipe(\n switchMapIgnoreThrow(\n async ([userPreferredListIds, tokenLists]): Promise => {\n const filteredTokenLists = tokenLists.filter((list) =>\n userPreferredListIds.some((id) => id === list.name)\n );\n const merged = filteredTokenLists.flatMap((list) => list.tokens);\n return uniqBy(merged, (x) => x.address);\n }\n ),\n map((tokens) =>\n tokens.map((token) => ({\n ...token,\n address: utils.getAddress(token.address),\n }))\n ),\n shareReplay()\n);\n\nexport const tokensNoBalance$ = combineLatest([\n tokenListMerged$,\n apiTokens$,\n correctedPools$,\n currentNetwork$,\n]).pipe(\n map(([tokenList, apiTokens, pools, currentNetwork]) => {\n const newApiTokens = [...apiTokens, buildWethToken(apiTokens)].map((x) => {\n const usdPrice = x.rate.usd;\n const price_24h = x.rate_24h_ago.usd;\n const priceChanged =\n usdPrice && price_24h && Number(price_24h) !== 0\n ? calculatePercentageChange(Number(usdPrice), Number(price_24h))\n : 0;\n const pool = pools.find((p) =>\n p.reserves.find((r) => r.address === x.dlt_id)\n );\n const usdVolume24 = pool ? pool.volume_24h.usd : null;\n const isWhitelisted = pool ? pool.isWhitelisted : false;\n\n const seven_days_ago = get7DaysAgo().getUTCSeconds();\n return {\n address: x.dlt_id,\n symbol: x.symbol,\n decimals: x.decimals,\n usdPrice,\n liquidity: x.liquidity.usd,\n usd_24h_ago: price_24h,\n price_change_24: priceChanged,\n price_history_7d: x.rates_7d\n .filter((x) => !!x)\n .map((x, i) => ({\n value: Number(x),\n time: (seven_days_ago + i * 360) as UTCTimestamp,\n })),\n usd_volume_24: usdVolume24,\n isWhitelisted,\n };\n });\n\n let overlappingTokens: Token[] = [];\n const eth = getEthToken(apiTokens, pools);\n if (eth) overlappingTokens.push(eth);\n\n newApiTokens.forEach((apiToken) => {\n if (currentNetwork === EthNetworks.Mainnet) {\n const found = tokenList.find(\n (userToken) => userToken.address === apiToken.address\n );\n if (found) {\n overlappingTokens.push({\n ...found,\n ...apiToken,\n logoURI: getTokenLogoURI(found),\n });\n }\n } else {\n if (apiToken.address !== ethToken && apiToken.address !== wethToken)\n overlappingTokens.push({\n chainId: EthNetworks.Ropsten,\n name: apiToken.symbol,\n logoURI: ropstenImage,\n balance: null,\n ...apiToken,\n });\n }\n });\n\n return overlappingTokens;\n }),\n shareReplay(1)\n);\n\nexport const tokens$ = combineLatest([user$, tokensNoBalance$]).pipe(\n switchMapIgnoreThrow(async ([user, tokensNoBalance]) => {\n if (user && tokensNoBalance) {\n setLoadingBalances(true);\n const updatedTokens = await fetchTokenBalances(tokensNoBalance, user);\n setLoadingBalances(false);\n if (updatedTokens.length !== 0)\n return updatedTokens.sort(sortTokenBalanceAlphabetic);\n }\n\n return tokensNoBalance;\n }),\n shareReplay(1)\n);\n\nexport const keeperDaoTokens$ = from(fetchKeeperDaoTokens()).pipe(\n shareReplay(1)\n);\n\nconst buildIpfsUri = (ipfsHash: string) => `https://ipfs.io/ipfs/${ipfsHash}`;\n\nexport const getTokenLogoURI = (token: Token) =>\n token.logoURI\n ? token.logoURI.startsWith('ipfs')\n ? buildIpfsUri(token.logoURI.split('//')[1])\n : token.logoURI\n : `https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/${token.address}/logo.png`;\n\nconst getLogoByURI = (uri: string | undefined) =>\n uri && uri.startsWith('ipfs') ? buildIpfsUri(uri.split('//')[1]) : uri;\n\nexport const minNetworkTokenLiquidityForMinting$ = combineLatest([\n settingsContractAddress$,\n]).pipe(\n switchMapIgnoreThrow(async ([liquidityProtectionSettingsContract]) => {\n const contract = LiquidityProtectionSettings__factory.connect(\n liquidityProtectionSettingsContract,\n web3.provider\n );\n const res = await contract.minNetworkTokenLiquidityForMinting();\n return shrinkToken(res.toString(), 18);\n }),\n distinctUntilChanged(isEqual),\n shareReplay(1)\n);\n\nexport const pools$ = combineLatest([\n correctedPools$,\n tokens$,\n minNetworkTokenLiquidityForMinting$,\n currentNetwork$,\n]).pipe(\n switchMapIgnoreThrow(\n async ([pools, tokens, minMintingBalance, currentNetwork]) => {\n const tokensMap = new Map(tokens.map((t) => [t.address, t]));\n const newPools: (Pool | null)[] = pools.map((pool) => {\n let apr = 0;\n const liquidity = Number(pool.liquidity.usd ?? 0);\n const fees_24h = Number(pool.fees_24h.usd ?? 0);\n if (liquidity && fees_24h) {\n apr = new BigNumber(fees_24h)\n .times(365)\n .div(liquidity)\n .times(100)\n .toNumber();\n }\n const reserveTokenOne = tokensMap.get(pool.reserves[0].address);\n\n if (!reserveTokenOne) return null;\n\n const reserveTokenTwo = tokensMap.get(pool.reserves[1].address);\n\n if (!reserveTokenTwo) return null;\n\n const reserves: Reserve[] = [\n {\n ...pool.reserves[0],\n rewardApr: Number(pool.reserves[0].apr) / 10000,\n symbol: reserveTokenOne.symbol,\n logoURI:\n currentNetwork === EthNetworks.Mainnet\n ? getTokenLogoURI(reserveTokenOne)\n : ropstenImage,\n decimals: reserveTokenOne.decimals,\n usdPrice: reserveTokenOne.usdPrice,\n },\n {\n ...pool.reserves[1],\n rewardApr: Number(pool.reserves[1].apr) / 10000,\n symbol: reserveTokenTwo.symbol,\n logoURI:\n currentNetwork === EthNetworks.Mainnet\n ? getTokenLogoURI(reserveTokenTwo)\n : ropstenImage,\n decimals: reserveTokenTwo.decimals,\n usdPrice: reserveTokenTwo.usdPrice,\n },\n ];\n\n const bntReserve = reserves.find((r) => r.symbol === 'BNT');\n const sufficientMintingBalance = new BigNumber(minMintingBalance).lt(\n bntReserve ? bntReserve.balance : 0\n );\n const isProtected = sufficientMintingBalance && pool.isWhitelisted;\n\n return {\n ...pool,\n reserves: sortBy(reserves, [(o) => o.symbol === 'BNT']),\n liquidity,\n volume_24h: Number(pool.volume_24h.usd ?? 0),\n fees_24h,\n fee: Number(pool.fee) / 10000,\n supply: Number(pool.supply),\n apr,\n isProtected,\n };\n });\n\n return newPools.filter((x) => !!x) as Pool[];\n }\n ),\n shareReplay(1)\n);\n\nexport const poolTokens$ = combineLatest([\n pools$,\n partialPoolTokens$,\n apiData$,\n]).pipe(\n switchMapIgnoreThrow(async ([pools, partialPoolTokens, apiData]) => {\n const res = await Promise.all(\n partialPoolTokens.map(async (poolToken) => {\n const pool = findPoolByConverter(\n poolToken.converter,\n pools,\n apiData.pools\n );\n if (!pool) {\n return null;\n }\n const tkn = pool.reserves[0];\n const bnt = pool.reserves[1];\n\n const amount = shrinkToken(poolToken.balance, pool.decimals);\n const percent = new BigNumber(amount).div(\n shrinkToken(poolToken.totalSupply, pool.decimals)\n );\n\n const balances = await multicall(\n pool.reserves.map((x) =>\n buildTokenPoolCall(pool.converter_dlt_id, x.address)\n )\n );\n if (!balances) {\n return null;\n }\n const tknBalanceWei = new BigNumber(balances[0].toString());\n const bntBalanceWei = new BigNumber(balances[1].toString());\n\n const tknAmount = percent.times(\n shrinkToken(tknBalanceWei, pool.decimals)\n );\n const bntAmount = percent.times(\n shrinkToken(bntBalanceWei, pool.decimals)\n );\n\n const value = tknAmount\n // @ts-ignore\n .times(Number(tkn.usdPrice || 0))\n // @ts-ignore\n .plus(bntAmount.times(Number(bnt.usdPrice || 0)))\n .toString();\n\n return {\n bnt: {\n token: {\n symbol: 'BNT',\n logoURI: ropstenImage,\n usdPrice: '0',\n decimals: 0,\n ...bnt,\n },\n amount: bntAmount.toString(),\n },\n tkn: {\n token: {\n symbol: pool.name.replace('/BNT', ''),\n logoURI: ropstenImage,\n usdPrice: '0',\n decimals: 0,\n ...tkn,\n },\n amount: tknAmount.toString(),\n },\n amount,\n value: value,\n poolDecimals: pool.decimals,\n converter: poolToken.converter,\n poolName: pool.name,\n };\n })\n );\n return res.filter((x) => !!x);\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 SvgChevronRight(_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: \"100%\",\n height: \"100%\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n stroke: \"currentColor\",\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 strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M9 5l7 7-7 7\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgChevronRight);\nexport default __webpack_public_path__ + \"static/media/chevronRight.9337acad.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 SvgBancor(_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: \"100%\",\n height: \"100%\",\n viewBox: \"0 0 23 35\",\n fill: \"currentColor\",\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.141 0L18.4212 4.71191L10.141 9.42385L1.86084 4.71191L10.141 0ZM20.2617 7.49663V16.9245L11.8183 21.7249V12.3011L20.2617 7.49663ZM23 19.2225L11.8183 25.5721V35L23 28.6504V19.2225ZM0 16.9203V7.4965L8.43932 12.301V21.7248L0 16.9203ZM0 20.7664V30.1942L8.43932 34.9947V25.5709L0 20.7664Z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgBancor);\nexport default __webpack_public_path__ + \"static/media/bancor.fe236eb4.svg\";\nexport { ForwardRef as ReactComponent };","import { Dialog, Transition } from '@headlessui/react';\nimport { Fragment } from 'react';\nimport { ReactComponent as IconTimes } from 'assets/icons/times.svg';\nimport { ReactComponent as IconChevron } from 'assets/icons/chevronRight.svg';\n\ninterface ModalProps {\n title?: string;\n children: JSX.Element;\n separator?: boolean;\n titleElement?: any;\n setIsOpen: Function;\n isOpen: boolean;\n onBackClick?: Function;\n showBackButton?: boolean;\n onClose?: Function;\n large?: boolean;\n}\n\nexport const Modal = ({\n title,\n children,\n separator,\n titleElement,\n setIsOpen,\n isOpen,\n showBackButton,\n onBackClick,\n onClose,\n large,\n}: ModalProps) => {\n return (\n <>\n \n (onClose ? onClose() : setIsOpen(false))}\n >\n
\n \n \n \n\n {/* This element is to trick the browser into centering the modal contents. */}\n \n \n \n \n {showBackButton && (\n onBackClick && onBackClick()}\n className=\"rounded-10 focus:outline-none focus:ring-2 focus:ring-primary\"\n >\n \n \n )}\n {titleElement && titleElement}\n {title && title}\n setIsOpen(false)}\n className=\"rounded-10 px-5 py-2 focus:outline-none\"\n >\n \n \n \n
\n {separator &&
}\n {children}\n
\n
\n \n \n \n
\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 SvgEdit(_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 18 16\",\n fill: \"currentColor\",\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: \"M12.138 10.5406L13.1035 9.63644C13.2544 9.49516 13.5169 9.59406 13.5169 9.7975V13.9059C13.5169 14.6547 12.8682 15.2622 12.0686 15.2622H1.44824C0.648689 15.2622 0 14.6547 0 13.9059V3.95978C0 3.21099 0.648689 2.60348 1.44824 2.60348H9.70017C9.91439 2.60348 10.023 2.84648 9.87215 2.99059L8.90665 3.89479C8.8614 3.93717 8.80105 3.95978 8.73468 3.95978H1.44824V13.9059H12.0686V10.6989C12.0686 10.6395 12.0928 10.583 12.138 10.5406ZM16.8629 4.83854L8.93984 12.2586L6.21233 12.5412C5.42183 12.6231 4.74901 11.9987 4.83651 11.2527L5.13822 8.69834L13.0613 1.27827C13.7522 0.631202 14.8686 0.631202 15.5565 1.27827L16.8599 2.49893C17.5508 3.146 17.5508 4.1943 16.8629 4.83854ZM13.882 5.71166L12.129 4.06998L6.5231 9.3228L6.30285 11.1679L8.27305 10.9617L13.882 5.71166ZM15.8371 3.45964L14.5337 2.23898C14.41 2.12313 14.2078 2.12313 14.0871 2.23898L13.1548 3.11209L14.9078 4.75378L15.8401 3.88066C15.9608 3.76198 15.9608 3.57549 15.8371 3.45964Z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEdit);\nexport default __webpack_public_path__ + \"static/media/edit.a842b13e.svg\";\nexport { ForwardRef as ReactComponent };","import 'elements/layoutHeader/LayoutHeader.css';\n\ninterface LayoutHeaderMobileProps {\n children: JSX.Element | JSX.Element[];\n}\nexport const LayoutHeaderMobile = ({ children }: LayoutHeaderMobileProps) => {\n return (\n
\n
{children}
\n
\n );\n};\n","import { Dialog, Transition } from '@headlessui/react';\nimport { Fragment } from 'react';\nimport { ReactComponent as IconChevron } from 'assets/icons/chevronRight.svg';\nimport { ReactComponent as IconBancor } from 'assets/icons/bancor.svg';\nimport 'elements/layoutHeader/LayoutHeader.css';\nimport { LayoutHeaderMobile } from 'elements/layoutHeader/LayoutHeaderMobile';\n\ninterface ModalFullscreenProps {\n title?: string | JSX.Element | JSX.Element[];\n children: JSX.Element | JSX.Element[];\n setIsOpen: Function;\n isOpen: boolean;\n showHeader?: boolean;\n}\n\nexport const ModalFullscreen = ({\n title,\n children,\n setIsOpen,\n isOpen,\n showHeader,\n}: ModalFullscreenProps) => {\n return (\n <>\n \n setIsOpen(false)}\n >\n
\n {showHeader && (\n \n \n
\n \n
\n
\n )}\n\n
\n {title && (\n
\n {title}\n
\n )}\n\n {children}\n
\n
\n \n \n \n );\n};\n","import { useState } from 'react';\nimport { classNameGenerator } from 'utils/pureFunctions';\n\ninterface ImageProps {\n src?: string;\n alt: string;\n className: string;\n lazy?: boolean;\n}\nexport const Image = ({ src, alt, className, lazy = true }: ImageProps) => {\n const [loaded, setLoaded] = useState(false);\n return (\n setLoaded(true)}\n loading={lazy ? 'lazy' : 'eager'}\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 SvgChevronDown(_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: \"100%\",\n height: \"100%\",\n viewBox: \"0 0 10 6\",\n fill: \"currentColor\",\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: \"M0.187761 0.210793C0.0675962 0.338409 -2.39893e-07 0.511883 -2.3202e-07 0.69201C-2.24117e-07 0.8728 0.067593 1.04627 0.187761 1.17389L4.54123 5.80059C4.6614 5.92821 4.82412 6 4.99435 6C5.16458 6 5.3273 5.92821 5.44746 5.80059L9.80094 1.17389C9.92611 1.0476 9.99809 0.872136 9.99996 0.688674C10.0018 0.50523 9.93425 0.328421 9.81158 0.198813C9.68953 0.069202 9.52305 -0.00258297 9.35032 7.15937e-05C9.17759 0.00272615 9.01298 0.0791665 8.89407 0.212102L4.99433 4.35761L1.0946 0.212102C0.974436 0.0844855 0.811718 0.0120334 0.641485 0.0120334C0.471252 0.0113692 0.307909 0.0831532 0.187744 0.210775L0.187761 0.210793Z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgChevronDown);\nexport default __webpack_public_path__ + \"static/media/chevronDown.8b4803b0.svg\";\nexport { ForwardRef as ReactComponent };","import { useState } from 'react';\nimport { InputField } from 'components/inputField/InputField';\nimport { useAppSelector } from 'redux/index';\nimport {\n TokenList,\n Token,\n userPreferredListIds$,\n} from 'services/observables/tokens';\nimport { Modal } from 'components/modal/Modal';\nimport { ModalFullscreen } from 'components/modalFullscreen/ModalFullscreen';\nimport { Switch } from '@headlessui/react';\nimport { prettifyNumber } from 'utils/helperFunctions';\nimport { wait } from 'utils/pureFunctions';\nimport { Image } from 'components/image/Image';\nimport { ReactComponent as IconEdit } from 'assets/icons/edit.svg';\nimport { ReactComponent as IconTimes } from 'assets/icons/times.svg';\nimport { getTokenListLS, setTokenListLS } from 'utils/localStorage';\nimport { isMobile } from 'react-device-detect';\n\ninterface SearchableTokenListProps {\n onClick: Function;\n isOpen: boolean;\n setIsOpen: Function;\n excludedTokens: string[];\n includedTokens: string[];\n tokens: Token[];\n limit?: boolean;\n}\n\ninterface SearchableTokenListLayoutProps {\n manage: boolean;\n setManage: Function;\n isOpen: boolean;\n onClose: Function;\n children: JSX.Element;\n}\n\nconst SearchableTokenListLayout = ({\n manage,\n setManage,\n onClose,\n isOpen,\n children,\n}: SearchableTokenListLayoutProps) => {\n if (isMobile) {\n return (\n {\n if (manage) return setManage(false);\n onClose();\n }}\n isOpen={isOpen}\n showHeader\n >\n {children}\n \n );\n }\n\n return (\n setManage(false)}\n >\n {children}\n \n );\n};\n\nexport const SearchableTokenList = ({\n onClick,\n isOpen,\n setIsOpen,\n excludedTokens = [],\n includedTokens = [],\n tokens,\n limit,\n}: SearchableTokenListProps) => {\n const [search, setSearch] = useState('');\n const [manage, setManage] = useState(false);\n const [userPreferredListIds, setUserLists] = useState(getTokenListLS());\n\n const tokensLists = useAppSelector(\n (state) => state.bancor.tokenLists\n );\n\n const onClose = async () => {\n setIsOpen(false);\n await wait(500);\n setManage(false);\n setSearch('');\n };\n\n const handleTokenlistClick = (listId: string) => {\n const alreadyPreferred = userPreferredListIds.includes(listId);\n\n const newUserPreferredListIds = alreadyPreferred\n ? userPreferredListIds.filter((list) => list !== listId)\n : [...userPreferredListIds, listId];\n\n if (newUserPreferredListIds.length === 0) return;\n\n setTokenListLS(newUserPreferredListIds);\n setUserLists(newUserPreferredListIds);\n userPreferredListIds$.next(newUserPreferredListIds);\n };\n\n const tokenName = (name: string) => {\n if (name.length < 19) return name;\n return name + '...';\n };\n\n return (\n \n {manage ? (\n
\n
\n {tokensLists.map((tokenList) => {\n const isSelected = userPreferredListIds.some(\n (listId) => tokenList.name === listId\n );\n return (\n \n
\n \n
\n
{tokenList.name}
\n
\n {tokenList.tokens.length} Tokens\n
\n
\n
\n
\n handleTokenlistClick(tokenList.name)}\n className={`${\n isSelected\n ? 'bg-primary border-primary'\n : 'bg-grey-3 border-grey-3'\n } relative inline-flex flex-shrink-0 h-[20px] w-[40px] border-2 rounded-full cursor-pointer transition-colors ease-in-out duration-300`}\n >\n \n \n
\n
\n );\n })}\n
\n \n ) : (\n <>\n
\n \n {search && (\n setSearch('')}\n />\n )}\n
\n \n {tokens\n .filter(\n (token) =>\n (includedTokens.length === 0 ||\n includedTokens.includes(token.address)) &&\n !excludedTokens.includes(token.address) &&\n (token.symbol.toLowerCase().includes(search.toLowerCase()) ||\n token.name.toLowerCase().includes(search.toLowerCase()))\n )\n .slice(0, limit ? 300 : tokens.length)\n .map((token) => {\n return (\n {\n onClick(token);\n onClose();\n }}\n className=\"flex items-center justify-between rounded focus:outline-none focus:ring-2 focus:ring-primary w-full px-14 py-5 my-5\"\n >\n
\n \n
\n
{token.symbol}
\n
\n {tokenName(token.name)}\n
\n
\n
\n
{token.balance && prettifyNumber(token.balance)}
\n \n );\n })}\n \n
\n
\n {\n setUserLists(getTokenListLS());\n setManage(true);\n }}\n className=\"text-primary font-semibold\"\n >\n \n \n Manage Token Lists\n \n \n Only supported tokens will be displayed\n \n \n
\n \n )}\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 SvgInfoSolid(_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: \"100%\",\n height: \"100%\",\n viewBox: \"0 0 10 10\",\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 opacity: 0.7,\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M4.992 0C7.752 0 9.984 2.232 9.984 4.992C9.984 7.752 7.752 9.984 4.992 9.984C2.232 9.984 0 7.752 0 4.992C0 2.232 2.232 0 4.992 0ZM4.99199 1.896C4.89599 1.896 4.82399 1.896 4.75199 1.92C4.67999 1.944 4.58399 1.992 4.53599 2.04C4.48799 2.088 4.43999 2.16 4.39199 2.232C4.36799 2.304 4.34399 2.4 4.34399 2.52C4.34399 2.62249 4.3615 2.68996 4.38156 2.76728L4.39199 2.808C4.41599 2.88 4.46399 2.952 4.53599 3C4.60799 3.048 4.67999 3.072 4.75199 3.096C4.82399 3.12 4.91998 3.12 4.99198 3.12H4.99199H4.99202C5.08801 3.12 5.184 3.12 5.25599 3.096C5.32799 3.072 5.39999 3.048 5.44799 3C5.49599 2.952 5.54398 2.88001 5.59198 2.80802L5.59199 2.808C5.59698 2.79303 5.60301 2.77703 5.60942 2.75999C5.63387 2.69506 5.66399 2.61506 5.66399 2.52C5.66399 2.4 5.63999 2.304 5.59199 2.232C5.56799 2.16 5.51999 2.088 5.44799 2.04C5.42652 2.02568 5.40718 2.01136 5.3887 1.99768L5.38866 1.99766C5.3452 1.96548 5.30651 1.93683 5.25599 1.92C5.18399 1.896 5.08799 1.896 4.99199 1.896ZM4.39062 8.06417V3.57617H5.61462V8.06417H4.39062Z\",\n fill: \"currentColor\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgInfoSolid);\nexport default __webpack_public_path__ + \"static/media/info-solid.beba923b.svg\";\nexport { ForwardRef as ReactComponent };","import { useState } from 'react';\nimport { classNameGenerator, sanitizeNumberInput } from 'utils/pureFunctions';\nimport { SearchableTokenList } from 'components/searchableTokenList/SearchableTokenList';\nimport { Token } from 'services/observables/tokens';\nimport { ReactComponent as IconChevronDown } from 'assets/icons/chevronDown.svg';\nimport 'components/tokenInputField/TokenInputField.css';\nimport 'components/inputField/InputField.css';\nimport { prettifyNumber } from 'utils/helperFunctions';\nimport BigNumber from 'bignumber.js';\nimport { Image } from 'components/image/Image';\nimport { useAppSelector } from 'redux/index';\n\ninterface TokenInputFieldProps {\n label?: string;\n border?: boolean;\n selectable?: boolean;\n disabled?: boolean;\n input: string;\n setInput?: Function;\n amountUsd?: string;\n setAmountUsd?: Function;\n onChange?: Function;\n token?: Token;\n setToken?: Function;\n debounce?: Function;\n startEmpty?: boolean;\n errorMsg?: string;\n usdSlippage?: number;\n dataCy?: string;\n fieldBalance?: string;\n excludedTokens?: string[];\n includedTokens?: string[];\n isLoading?: boolean;\n balanceLabel?: string;\n}\n\nexport const TokenInputField = ({\n dataCy,\n label,\n border,\n selectable,\n token,\n setToken,\n input,\n setInput,\n amountUsd,\n setAmountUsd,\n onChange,\n disabled,\n debounce,\n startEmpty,\n errorMsg,\n usdSlippage,\n fieldBalance,\n excludedTokens = [],\n includedTokens = [],\n isLoading,\n balanceLabel = 'Balance',\n}: TokenInputFieldProps) => {\n const [isOpen, setIsOpen] = useState(false);\n\n const balance = fieldBalance ? fieldBalance : token ? token.balance : null;\n const balanceUsd =\n token && balance\n ? new BigNumber(balance).times(token.usdPrice ?? 0).toString()\n : null;\n\n const toggle = useAppSelector((state) => state.user.usdToggle);\n const loadingBalances = useAppSelector(\n (state) => state.user.loadingBalances\n );\n const tokens = useAppSelector((state) => state.bancor.tokens);\n\n const onInputChange = (text: string, token?: Token) => {\n text = sanitizeNumberInput(text);\n if (toggle) {\n const tokenAmount = sanitizeNumberInput(\n new BigNumber(text).div(token?.usdPrice!).toString(),\n token?.decimals\n );\n if (setAmountUsd) setAmountUsd(text !== 'NaN' ? text : '');\n if (onChange) onChange(tokenAmount);\n else {\n if (setInput) setInput(tokenAmount);\n if (debounce) debounce(tokenAmount);\n }\n } else {\n const usdAmount = new BigNumber(text).times(token?.usdPrice!).toString();\n if (setAmountUsd)\n setAmountUsd(usdAmount !== '0' && usdAmount !== 'NaN' ? usdAmount : '');\n const val = sanitizeNumberInput(text, token?.decimals);\n if (onChange) onChange(val);\n else {\n if (setInput) setInput(val);\n if (debounce) debounce(val);\n }\n }\n };\n\n const inputValue = () => {\n if (!toggle && !disabled) return input;\n if (!toggle && disabled) return `${sanitizeNumberInput(input, 6)}`;\n if (!amountUsd) return '';\n return `~$${sanitizeNumberInput(amountUsd, 6)}`;\n };\n\n const convertedAmount = () => {\n const prefix = toggle ? '' : '~';\n const tokenAmount = prettifyNumber(input);\n const usdAmount = prettifyNumber(amountUsd ?? 0, true);\n const amount = toggle ? tokenAmount : usdAmount;\n\n if ((input || amountUsd) && token) return `${prefix}${amount}`;\n else return `${prefix}${toggle ? '' : '$'}0`;\n };\n\n const setMaxAmount = () => {\n if (balance && balanceUsd && token) {\n if (token.symbol === 'ETH') {\n const reducedBalance = new BigNumber(balance).minus(0.01).toString();\n const reducedUsdBalance = new BigNumber(reducedBalance)\n .times(token.usdPrice!)\n .toString();\n onInputChange(toggle ? reducedUsdBalance : reducedBalance, token);\n } else onInputChange(toggle ? balanceUsd : balance, token);\n }\n };\n\n const inputFieldStyles = `token-input-field ${classNameGenerator({\n 'border-blue-0 dark:border-blue-1': border,\n '!border-error': errorMsg,\n })}`;\n\n return (\n
\n
\n {label}\n {loadingBalances && token ? (\n
\n ) : (\n balance &&\n balanceUsd &&\n token && (\n setMaxAmount()}\n disabled={disabled}\n className={`text-12 focus:outline-none ${classNameGenerator({\n 'cursor-not-allowed': disabled,\n })}`}\n >\n {balanceLabel}: {prettifyNumber(balance)}\n \n (~{prettifyNumber(balanceUsd, true)})\n \n \n )\n )}\n
\n {startEmpty && !token ? (\n (selectable ? setIsOpen(true) : {})}\n className=\"flex items-center text-primary font-medium text-20 mt-10 mb-30 py-5\"\n >\n Select a token\n \n \n ) : (\n
\n (selectable ? setIsOpen(true) : {})}\n >\n {token ? (\n <>\n \n {token.symbol}\n \n ) : (\n <>\n
\n
\n \n )}\n\n {selectable && (\n
\n \n
\n )}\n
\n
\n
\n
\n {isLoading ? (\n
\n
\n
\n
\n ) : (\n
\n {convertedAmount()} {toggle && token?.symbol}\n {!usdSlippage ||\n (usdSlippage !== 0 && (\n \n ({usdSlippage}%)\n \n ))}\n
\n )}\n
\n onInputChange(event.target.value, token)}\n />\n
\n {errorMsg && (\n
{errorMsg}
\n )}\n
\n
\n )}\n\n {\n if (setToken) setToken(token);\n onInputChange(inputValue(), token);\n }}\n isOpen={isOpen}\n setIsOpen={setIsOpen}\n tokens={tokens}\n excludedTokens={excludedTokens}\n includedTokens={includedTokens}\n />\n \n );\n};\n","import {\n useState,\n useRef,\n MutableRefObject,\n useEffect,\n useCallback,\n} from 'react';\nimport { usePopper } from 'react-popper';\nimport type * as PopperJS from '@popperjs/core';\nimport 'components/tooltip/TooltipPanel.css';\n\ntype Props = {\n targetRef: MutableRefObject;\n placement?: PopperJS.Placement;\n children: JSX.Element | JSX.Element[];\n};\n\nexport const TooltipPanel = ({\n targetRef,\n placement = 'top',\n children,\n}: Props) => {\n const popperRef = useRef(null);\n const [arrowRef, setArrowRef] = useState(null);\n const [isVisible, setVisible] = useState(false);\n\n const { styles, attributes } = usePopper(\n targetRef.current,\n popperRef.current,\n {\n placement,\n modifiers: [\n {\n name: 'arrow',\n options: {\n element: arrowRef,\n },\n },\n {\n name: 'offset',\n options: {\n offset: [0, 10],\n },\n },\n ],\n }\n );\n\n const handleClickOutside = useCallback(\n (e: any) => {\n return targetRef.current!.contains(e.target)\n ? undefined\n : setVisible(false);\n },\n [targetRef]\n );\n\n useEffect(() => {\n if (targetRef.current) {\n targetRef.current.onclick = () => setVisible(!isVisible);\n targetRef.current.onmouseenter = () => setVisible(true);\n targetRef.current.onmouseleave = () => setVisible(false);\n }\n if (isVisible) {\n document.addEventListener('mousedown', handleClickOutside);\n }\n\n return () => document.removeEventListener('mousedown', handleClickOutside);\n }, [targetRef, handleClickOutside, isVisible]);\n\n if (!isVisible) return null;\n\n return (\n \n \n {children}\n \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 SvgSync(_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: \"100%\",\n height: \"100%\",\n viewBox: \"0 0 28 25\",\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: \"M1.69141 12.0168L5.68017 15.917L9.76991 11.9239L5.68017 15.917C4.81497 9.15179 7.6493 5.79812 7.6493 5.79812C14.3926 -2.29688 21.8253 4.03253 21.8253 4.03253\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeMiterlimit: 10,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M26.6027 12.8231L22.6139 8.92285L18.5242 12.9159L22.6139 8.92285C23.4797 15.6881 20.6448 19.0417 20.6448 19.0417C13.9015 27.1367 6.46875 20.8073 6.46875 20.8073\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeMiterlimit: 10,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgSync);\nexport default __webpack_public_path__ + \"static/media/sync.0c48d871.svg\";\nexport { ForwardRef as ReactComponent };","import { MouseEventHandler, useRef } from 'react';\nimport { TooltipPanel } from './TooltipPanel';\nimport { ReactComponent as IconInfo } from 'assets/icons/info-solid.svg';\nimport type * as PopperJS from '@popperjs/core';\n\ninterface TooltipProps {\n button?: string | JSX.Element | JSX.Element[];\n onClick?: MouseEventHandler;\n placement?: PopperJS.Placement;\n content: string | JSX.Element | JSX.Element[];\n}\n\nexport const Tooltip = ({\n content,\n button = (\n \n ),\n onClick,\n placement,\n}: TooltipProps) => {\n const buttonRef = useRef(null);\n return (\n <>\n \n \n {typeof content === 'string' ? (\n
{content}
\n ) : (\n content\n )}\n
\n \n );\n};\n","import { useMemo, useState } from 'react';\nimport { debounce } from 'lodash';\n\nexport const useDebounce = (\n initialState: any = null,\n interval: number = 500\n) => {\n const [state, setState] = useState(initialState);\n\n const setDebouncedState = (_val: string) => {\n debouncer(_val);\n };\n\n const debouncer = useMemo(\n () =>\n debounce((_prop: string) => {\n setState(_prop);\n }, interval),\n [interval]\n );\n\n return [state, setDebouncedState];\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 SvgLock(_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: \"100%\",\n height: \"100%\",\n viewBox: \"0 0 23 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, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19.7991 13H8.10491V8.09171C8.10491 6.20646 9.59969 4.64018 11.467 4.62113C13.3532 4.60209 14.8951 6.14933 14.8951 8.04886V8.81058C14.8951 9.44376 15.3996 9.95316 16.0268 9.95316H17.5357C18.1629 9.95316 18.6674 9.44376 18.6674 8.81058V8.04886C18.6674 4.04985 15.4374 0.798265 11.4764 0.812547C7.51549 0.826829 4.33259 4.12126 4.33259 8.12027V13H3.20089C1.95131 13 0.9375 14.0236 0.9375 15.2852V22.9023C0.9375 24.1639 1.95131 25.1875 3.20089 25.1875H19.7991C21.0487 25.1875 22.0625 24.1639 22.0625 22.9023V15.2852C22.0625 14.0236 21.0487 13 19.7991 13Z\",\n fill: \"currentColor\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLock);\nexport default __webpack_public_path__ + \"static/media/lock.990d1bc2.svg\";\nexport { ForwardRef as ReactComponent };","export const UNLIMITED_WEI =\n '115792089237316195423570985008687907853269984665640564039457584007913129639935';\n\nexport const NULL_APPROVAL_CONTRACTS = [\n '0x8A9C67fee641579dEbA04928c4BC45F66e26343A',\n '0x309627af60F0926daa6041B8279484312f2bf060',\n '0x4Fabb145d64652a948d72533023f6E7A623C7C53',\n '0xD46bA6D942050d489DBd938a2C909A5d5039A161',\n '0x1F573D6Fb3F13d689FF844B4cE37794d79a7FF1C',\n '0xF629cBd94d3791C9250152BD8dfBDF380E2a3B9c',\n '0xd26114cd6EE289AccF82350c8d8487fedB8A0C07',\n '0x1b22C32cD936cB97C28C5690a0695a82Abf688e6',\n '0x0F5D2fB29fb7d3CFeE444a200298f468908cC942',\n '0x83cee9e086A77e492eE0bB93C2B0437aD6fdECCc',\n '0xaAAf91D9b90dF800Df4F55c205fd6989c977E73a',\n '0x340D2bdE5Eb28c1eed91B2f790723E3B160613B7',\n '0x27f610BF36ecA0939093343ac28b1534a721DBB4',\n '0xF6B55acBBC49f4524Aa48D19281A9A77c54DE10f',\n '0x4CEdA7906a5Ed2179785Cd3A40A69ee8bc99C466',\n '0x4AaC461C86aBfA71e9d00d9a2cde8d74E4E1aeEa',\n '0xdd974D5C2e2928deA5F71b9825b8b646686BD200',\n '0x814e0908b12A99FeCf5BC101bB5d0b8B5cDf7d26',\n '0xA15C7Ebe1f07CaF6bFF097D8a589fb8AC49Ae5B3',\n '0xd341d1680Eeee3255b8C4c75bCCE7EB57f144dAe',\n '0xe3818504c1B32bF1557b16C238B2E01Fd3149C17',\n '0x3d1BA9be9f66B8ee101911bC36D3fB562eaC2244',\n '0x818Fc6C2Ec5986bc6E2CBf00939d90556aB12ce5',\n '0x780116D91E5592E58a3b3c76A351571b39abCEc6',\n '0xb056c38f6b7Dc4064367403E26424CD2c60655e1',\n '0x4162178B78D6985480A308B2190EE5517460406D',\n '0x0Cf0Ee63788A0849fE5297F3407f701E122cC023',\n '0xc20464e0C373486d2B3335576e83a218b1618A5E',\n '0xcbee6459728019CB1f2bB971dDe2eE3271BC7617',\n '0x6888a16eA9792c15A4DCF2f6C623D055c8eDe792',\n '0x744d70FDBE2Ba4CF95131626614a1763DF805B9E',\n '0x28dee01D53FED0Edf5f6E310BF8Ef9311513Ae40',\n '0x84F7c44B6Fed1080f647E354D552595be2Cc602F',\n '0xEF2463099360a085f1f10b076Ed72Ef625497a06',\n '0xf04a8ac553FceDB5BA99A64799155826C136b0Be',\n '0xF433089366899D83a9f26A773D59ec7eCF30355e',\n '0xa485bD50228440797Abb4d4595161d7546811160',\n '0x9214eC02CB71CbA0ADA6896b8dA260736a67ab10',\n '0x960b236A07cf122663c4303350609A66A7B288C0',\n '0x47Ec6AF8E27C98e41d1Df7fb8219408541463022',\n '0x255Aa6DF07540Cb5d3d297f0D0D4D84cb52bc8e6',\n '0x6c37Bf4f042712C978A73e3fd56D1F5738dD7C43',\n '0x0cB20b77AdBe5cD58fCeCc4F4069D04b327862e5',\n '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',\n '0xB8BAa0e4287890a5F79863aB62b7F175ceCbD433',\n '0x0000000000085d4780B73119b644AE5ecd22b376',\n '0x26E75307Fc0C021472fEb8F727839531F112f317',\n '0x1776e1F26f98b1A5dF9cD347953a26dd3Cb46671',\n '0xC011A72400E58ecD99Ee497CF89E3775d4bd732F',\n '0xb1A5b7e9a268742B9B5D2455fFcf43BaBC6929bA',\n '0x5e6F3BC1186132565946feA123181529e7AeAFD8',\n '0xd758b77BCC792AFD58857E1d5C610aE649FDEE6b',\n '0x57Ab1E02fEE23774580C119740129eAC7081e9D3',\n '0x0316EB71485b0Ab14103307bf65a021042c6d380',\n '0x45804880De22913dAFE09f4980848ECE6EcbAf78',\n '0x67Abf1C62D8Acd07aDa35908d38Cd67bE7DfEB36',\n '0xEE4dC4C5Ca843B83035d8E5159AC1bd1b4EbdfF5',\n '0x94A2aAA374A8F2D52dad24330C8a0Ec2934700ae',\n '0x7db5454F3500f28171d1f9c7a38527C9cF94e6b2',\n '0xb5f278Ee11811eFEC0692EC61b1e9f9984f2de11',\n '0x0eCDd783dc7bF820614044B51862ED29714d2BA5',\n '0x37Be876EF051eB8EDdD0745107c5222D8CA8EC60',\n '0x83Ee8ec605C0aE3D7F1c9e360aB45A6C1C033Ab9',\n '0xE7845A9679dAd2B1cCCe49d5F0239d1c528f7A40',\n '0x623FA86c0e010Fe4701cEDF294C9cddb8f4F26e6',\n '0x8Ae56a6850a7cbeaC3c3Ab2cB311e7620167eAC8',\n '0x7cE0641D19095ed3226fC5222836901bcE41585D',\n '0xCB0aD5f479812edD6e2cED1cfE621bF39D7E9158',\n '0xdAC17F958D2ee523a2206206994597C13D831ec7',\n '0x8E870D67F660D95d5be530380D0eC0bd388289E1',\n '0x79A91cCaaa6069A571f0a3FA6eD257796Ddd0eB4',\n '0x107721d9aA07d9DE8f2CC9545e0C9346A9Bb503b',\n '0x4a527d8fc13C5203AB24BA0944F4Cb14658D1Db6',\n '0xa1d65E8fB6e87b60FECCBc582F7f97804B725521',\n '0x0Ae055097C6d159879521C384F1D2123D1f195e6',\n '0x80fB784B7eD66730e8b1DBd9820aFD29931aab03',\n '0x0B244e01B1B0C9a959b3b0Bc19E3852395319876',\n '0x1cEB5cB57C4D4E2b2433641b95Dd330A33185A44',\n '0xF35cCfbcE1228014F66809EDaFCDB836BFE388f5',\n];\n","import { Token } from 'services/observables/tokens';\nimport { web3, writeWeb3 } from 'services/web3';\nimport BigNumber from 'bignumber.js';\nimport { bancorNetwork$ } from 'services/observables/contracts';\nimport { take } from 'rxjs/operators';\nimport { user$ } from 'services/observables/user';\nimport {\n NULL_APPROVAL_CONTRACTS,\n UNLIMITED_WEI,\n} from 'services/web3/approval/constants';\nimport { ethToken } from 'services/web3/config';\nimport { expandToken } from 'utils/formulas';\nimport { Token__factory } from '../abis/types';\n\ninterface GetApprovalReturn {\n allowanceWei: string;\n isApprovalRequired: boolean;\n}\n\nconst getApproval = async (\n token: string,\n user: string,\n spender: string,\n amountWei: string\n): Promise => {\n if (token === ethToken)\n return { allowanceWei: '', isApprovalRequired: false };\n\n const tokenContract = Token__factory.connect(token, web3.provider);\n const allowanceWei = (\n await tokenContract.allowance(user, spender)\n ).toString();\n\n const isApprovalRequired = new BigNumber(amountWei).gt(\n new BigNumber(allowanceWei)\n );\n return { allowanceWei, isApprovalRequired };\n};\n\nconst setApproval = async (\n token: string,\n user: string,\n spender: string,\n amountWei?: string,\n resolveImmediately?: boolean\n): Promise => {\n const isEth = token === ethToken;\n if (isEth) return '';\n\n const tokenContract = Token__factory.connect(token, writeWeb3.signer);\n\n const amountFinal = amountWei ? amountWei : UNLIMITED_WEI;\n\n const isNullApprovalContract = NULL_APPROVAL_CONTRACTS.includes(token);\n\n if (isNullApprovalContract) {\n const { allowanceWei } = await getApproval(\n token,\n user,\n spender,\n amountFinal\n );\n if (Number(allowanceWei) !== 0) {\n const tx = await tokenContract.approve(spender, '0');\n await tx.wait();\n }\n }\n\n try {\n const tx = await tokenContract.approve(spender, amountFinal);\n if (!resolveImmediately) await tx.wait();\n return tx.hash;\n } catch (e: any) {\n const isTxDenied = e.message.toLowerCase().includes('denied');\n\n if (!isTxDenied) {\n // TODO send this error with failed contract to Sentry or GTM\n NULL_APPROVAL_CONTRACTS.push(token);\n console.error(\n 'Approval had failed, next try forcing a zero approval in case required',\n e.message\n );\n }\n\n throw e;\n }\n};\n\nexport const getNetworkContractApproval = async (\n token: Token,\n amount: string,\n contract?: string\n): Promise => {\n const BANCOR_NETWORK = await bancorNetwork$.pipe(take(1)).toPromise();\n const USER = await user$.pipe(take(1)).toPromise();\n const amountWei = expandToken(amount, token.decimals);\n const { isApprovalRequired } = await getApproval(\n token.address,\n USER,\n contract ? contract : BANCOR_NETWORK,\n amountWei\n );\n return isApprovalRequired;\n};\n\nexport const setNetworkContractApproval = async (\n token: Token,\n amount?: string,\n contract?: string,\n resolveImmediately?: boolean\n) => {\n const BANCOR_NETWORK = await bancorNetwork$.pipe(take(1)).toPromise();\n const USER = await user$.pipe(take(1)).toPromise();\n const amountWei = amount ? expandToken(amount, token.decimals) : undefined;\n return await setApproval(\n token.address,\n USER,\n contract ? contract : BANCOR_NETWORK,\n amountWei,\n resolveImmediately\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 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 \"aria-hidden\": \"true\",\n focusable: \"false\",\n \"data-prefix\": \"far\",\n \"data-icon\": \"check\",\n className: \"svg-inline--fa fa-check fa-w-16\",\n role: \"img\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 512 512\",\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 fill: \"currentColor\",\n d: \"M435.848 83.466L172.804 346.51l-96.652-96.652c-4.686-4.686-12.284-4.686-16.971 0l-28.284 28.284c-4.686 4.686-4.686 12.284 0 16.971l133.421 133.421c4.686 4.686 12.284 4.686 16.971 0l299.813-299.813c4.686-4.686 4.686-12.284 0-16.971l-28.284-28.284c-4.686-4.686-12.284-4.686-16.97 0z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCheck);\nexport default __webpack_public_path__ + \"static/media/check.f225b9b5.svg\";\nexport { ForwardRef as ReactComponent };","import { Modal } from 'components/modal/Modal';\nimport { ReactComponent as IconLock } from 'assets/icons/lock.svg';\nimport {\n addNotification,\n NotificationType,\n} from 'redux/notification/notification';\nimport { setNetworkContractApproval } from 'services/web3/approval';\nimport { useDispatch } from 'react-redux';\nimport { Token } from 'services/observables/tokens';\nimport { web3 } from 'services/web3';\nimport { wait } from 'utils/pureFunctions';\nimport {\n ConversionEvents,\n sendConversionEvent,\n} from 'services/api/googleTagManager';\nimport { getConversionLS } from 'utils/localStorage';\nimport { ErrorCode } from 'services/web3/types';\n\ninterface ModalApproveProps {\n setIsOpen: Function;\n isOpen: boolean;\n amount: string;\n fromToken?: Token;\n handleApproved: Function;\n waitForApproval?: boolean;\n contract?: string;\n}\n\nexport const ModalApprove = ({\n setIsOpen,\n isOpen,\n amount,\n fromToken,\n handleApproved,\n waitForApproval,\n contract,\n}: ModalApproveProps) => {\n const dispatch = useDispatch();\n\n if (!fromToken) return null;\n\n // Wait for user to choose approval and proceed with approval based on user selection\n // Prop amount is UNDEFINED when UNLIMITED\n const approve = async (amount?: string) => {\n try {\n setIsOpen(false);\n const conversion = getConversionLS();\n sendConversionEvent(ConversionEvents.approved, {\n ...conversion,\n conversion_unlimited: amount ? 'Limited' : 'Unlimited',\n });\n const txHash = await setNetworkContractApproval(\n fromToken,\n amount,\n contract\n );\n dispatch(\n addNotification({\n type: NotificationType.pending,\n title: 'Pending Confirmation',\n msg: `Approve ${fromToken.symbol} is pending confirmation`,\n updatedInfo: {\n successTitle: 'Transaction Confirmed',\n successMsg: `${amount || 'Unlimited'} approval set for ${\n fromToken.symbol\n }`,\n errorTitle: 'Transaction Failed',\n errorMsg: `${fromToken.symbol} approval had failed. Please try again or contact support.`,\n },\n txHash,\n })\n );\n if (waitForApproval) {\n let tx = null;\n while (tx === null)\n try {\n await wait(2000);\n tx = await web3.provider.getTransactionReceipt(txHash);\n } catch (error) {}\n }\n handleApproved();\n } catch (e: any) {\n setIsOpen(false);\n if (e.code === ErrorCode.DeniedTx)\n dispatch(\n addNotification({\n type: NotificationType.error,\n title: 'Transaction Rejected',\n msg: 'You rejected the transaction. If this was by mistake, please try again.',\n })\n );\n else\n addNotification({\n type: NotificationType.error,\n title: 'Transaction Failed',\n msg: `${fromToken.symbol} approval had failed. Please try again or contact support.`,\n });\n }\n };\n\n return (\n \n
\n
\n
\n \n
\n

Approve {fromToken.symbol}

\n

\n Before you can proceed, you need to approve {fromToken.symbol}{' '}\n spending.\n

\n approve()}\n className={'btn-primary w-full my-15'}\n >\n Approve\n \n

\n Want to approve before each transaction?\n

\n \n
\n
\n
\n );\n};\n","import { useEffect, useRef } from 'react';\n\nexport const useInterval = (\n callback: () => void,\n delay: null | number,\n leading = true\n) => {\n const savedCallback = useRef<() => void>();\n\n useEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n\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 {\n addNotification,\n BaseNotification,\n NotificationType,\n} from 'redux/notification/notification';\nimport { Token } from 'services/observables/tokens';\n\nconst showNotification = (notification: BaseNotification, dispatch: any) =>\n dispatch(addNotification(notification));\n\nexport const rejectNotification = (dispatch: any) =>\n showNotification(\n {\n type: NotificationType.error,\n title: 'Transaction Rejected',\n msg: 'You rejected the trade. If this was by mistake, please try again.',\n },\n dispatch\n );\n\nexport const stakeNotification = (\n dispatch: any,\n amount: string,\n txHash: string\n) =>\n showNotification(\n {\n type: NotificationType.pending,\n title: 'Pending Confirmation',\n msg: 'Staking vBNT is pending confirmation',\n txHash,\n updatedInfo: {\n successTitle: 'Success!',\n successMsg: `Your stake of ${amount} vBNT has been confirmed`,\n errorTitle: 'Transaction Failed',\n errorMsg: `Staking ${amount} vBNT had failed. Please try again or contact support.`,\n },\n },\n dispatch\n );\n\nexport const unstakeNotification = (\n dispatch: any,\n amount: string,\n txHash: string\n) =>\n showNotification(\n {\n type: NotificationType.pending,\n title: 'Pending Confirmation',\n msg: 'Unstaking vBNT is pending confirmation',\n txHash,\n updatedInfo: {\n successTitle: 'Success!',\n successMsg: `Unstaking ${amount} vBNT has been confirmed`,\n errorTitle: 'Transaction Failed',\n errorMsg: `Unstaking ${amount} vBNT had failed. Please try again or contact support.`,\n },\n },\n dispatch\n );\n\nexport const stakeFailedNotification = (dispatch: any, amount: string) =>\n showNotification(\n {\n type: NotificationType.error,\n title: 'Transaction Failed',\n msg: `Staking ${amount} vBNT had failed. Please try again or contact support.`,\n },\n dispatch\n );\n\nexport const unstakeFailedNotification = (dispatch: any, amount: string) =>\n showNotification(\n {\n type: NotificationType.error,\n title: 'Transaction Failed',\n msg: `Staking ${amount} vBNT had failed. Please try again or contact support.`,\n },\n dispatch\n );\n\nexport const swapNotification = (\n dispatch: any,\n fromToken: Token,\n toToken: Token,\n fromAmount: string,\n toAmount: string,\n txHash: string\n) =>\n showNotification(\n {\n type: NotificationType.pending,\n title: 'Pending Confirmation',\n msg: `Trading ${fromAmount} ${fromToken.symbol} is Pending Confirmation`,\n updatedInfo: {\n successTitle: 'Success!',\n successMsg: `Your trade ${fromAmount} ${fromToken.symbol} for ${toAmount} ${toToken.symbol} has been confirmed`,\n errorTitle: 'Transaction Failed',\n errorMsg: `Trading ${fromAmount} ${fromToken.symbol} for ${toAmount} ${toToken.symbol} had failed. Please try again or contact support`,\n },\n txHash,\n },\n dispatch\n );\n\nexport const swapFailedNotification = (\n dispatch: any,\n fromToken: Token,\n toToken: Token,\n fromAmount: string,\n toAmount: string\n) =>\n showNotification(\n {\n type: NotificationType.error,\n title: 'Transaction Failed',\n msg: `Trading ${fromAmount} ${fromToken.symbol} for ${toAmount} ${toToken.symbol} had failed. Please try again or contact support`,\n },\n dispatch\n );\n\nexport const poolExistNotification = (dispatch: any) =>\n showNotification(\n {\n type: NotificationType.error,\n title: 'Pool Already exist',\n msg: `The pool already exists on Bancor`,\n },\n dispatch\n );\n\nexport const poolCreateNotification = (dispatch: any, txHash: string) =>\n showNotification(\n {\n type: NotificationType.pending,\n title: 'Pending Confirmation',\n msg: 'Creating pool is pending confirmation',\n txHash,\n updatedInfo: {\n successTitle: 'Success!',\n successMsg: 'Your pool was successfully created',\n errorTitle: 'Creating Pool Failed',\n errorMsg: 'Fail creating pool. Please try again or contact support.',\n },\n },\n dispatch\n );\n\nexport const ownershipNotification = (dispatch: any, txHash: string) =>\n showNotification(\n {\n type: NotificationType.pending,\n title: 'Pending Confirmation',\n msg: 'Accepting ownership is pending confirmation',\n txHash,\n updatedInfo: {\n successTitle: 'Success!',\n successMsg: 'Ownership Accepted',\n errorTitle: 'Ownership Failed',\n errorMsg:\n 'Failed accepting ownership. Please try again or contact support.',\n },\n },\n dispatch\n );\n\nexport const setFeeNotification = (dispatch: any, txHash: string) =>\n showNotification(\n {\n type: NotificationType.pending,\n title: 'Pending Confirmation',\n msg: 'Setting convertion fee is pending confirmation',\n txHash,\n updatedInfo: {\n successTitle: 'Success!',\n successMsg: 'Conversion fee has been set',\n errorTitle: 'Conversion fee failed',\n errorMsg:\n 'conversion fee setting failed. Please try again or contact support.',\n },\n },\n dispatch\n );\n\nexport const poolFailedNotification = (dispatch: any) =>\n showNotification(\n {\n type: NotificationType.error,\n title: 'Creating Pool Failed',\n msg: `Fail creating pool. Please try again or contact support.`,\n },\n dispatch\n );\n\nexport const stakeRewardsNotification = (\n dispatch: any,\n txHash: string,\n amount: string,\n pool: string\n) =>\n showNotification(\n {\n type: NotificationType.pending,\n title: 'Pending Confirmation',\n msg: `Staking ${amount} BNT rewards is Pending Confirmation`,\n txHash,\n updatedInfo: {\n successTitle: 'Success!',\n successMsg: `${amount} BNT rewards were successfully staked into the ${pool} pool`,\n errorTitle: 'Transaction Failed',\n errorMsg: `Staking ${amount} BNT rewards had failed. Please try again or contact support.`,\n },\n },\n dispatch\n );\n\nexport const claimRewardsNotification = (\n dispatch: any,\n txHash: string,\n amount: string\n) =>\n showNotification(\n {\n type: NotificationType.pending,\n title: 'Pending Confirmation',\n msg: `Rewards claiming of ${amount} is Pending Confirmation`,\n txHash,\n updatedInfo: {\n successTitle: 'Success!',\n successMsg: `${amount} BNT rewards were successfully claimed`,\n errorTitle: 'Transaction Failed',\n errorMsg: `Claiming ${amount} BNT rewards had failed. Please try again or contact support.`,\n },\n },\n dispatch\n );\n\nexport const stakeRewardsFailedNotification = (dispatch: any) =>\n showNotification(\n {\n type: NotificationType.error,\n title: 'Staking Rewards',\n msg: `Failed to stake rewards. Please try again or contact support.`,\n },\n dispatch\n );\n\nexport const claimRewardsFailedNotification = (dispatch: any) =>\n showNotification(\n {\n type: NotificationType.error,\n title: 'Claiming Rewards',\n msg: `Failed to claim rewards. Please try again or contact support.`,\n },\n dispatch\n );\n\nexport const withdrawProtectedPosition = (\n dispatch: any,\n token: Token,\n amount: string,\n txHash: string\n) =>\n showNotification(\n {\n type: NotificationType.pending,\n title: 'Pending Confirmation',\n msg: `Withdrawal of ${amount} ${token.symbol} is Pending Confirmation`,\n txHash,\n updatedInfo: {\n successTitle: 'Success!',\n successMsg: `Your withdraw of ${amount} ${token.symbol} has been confirmed`,\n errorTitle: 'Transaction Failed',\n errorMsg: `Withdrawing ${amount} ${token.symbol} had failed. Please try again or contact support.`,\n },\n },\n dispatch\n );\n\nexport const withdrawProtectedPositionFailed = (\n dispatch: any,\n token: Token,\n amount: string\n) =>\n showNotification(\n {\n type: NotificationType.error,\n title: 'Transaction Failed',\n msg: `Withdrawing ${amount} ${token.symbol} had failed. Please try again or contact support.`,\n },\n dispatch\n );\n\nexport const removeLiquidityNotification = (\n dispatch: any,\n amount: string,\n symbol: string,\n txHash: string\n) =>\n showNotification(\n {\n type: NotificationType.pending,\n title: 'Pending Confirmation',\n msg: `Removing ${amount} ${symbol} is Pending Confirmation`,\n txHash,\n updatedInfo: {\n successTitle: 'Success!',\n successMsg: `Your withdraw of ${amount} ${symbol} has been confirmed`,\n errorTitle: 'Transaction Failed',\n errorMsg: `Removing ${amount} ${symbol} had failed. Please try again or contact support`,\n },\n },\n dispatch\n );\n\nexport const removeLiquidityNotificationFailed = (\n dispatch: any,\n amount: string,\n symbol: string\n) =>\n showNotification(\n {\n type: NotificationType.error,\n title: 'Transaction Failed',\n msg: `Removing ${amount} ${symbol} had failed. Please try again or contact support`,\n },\n dispatch\n );\n\nexport const claimBntNotification = (\n dispatch: any,\n txHash: string,\n amount: string\n) =>\n showNotification(\n {\n type: NotificationType.pending,\n title: 'Pending Confirmation',\n msg: `Claiming locked ${amount} BNT is Pending Confirmation`,\n txHash,\n updatedInfo: {\n successTitle: 'Success!',\n successMsg: `${amount} locked BNT were successfully claimed`,\n errorTitle: 'Transaction Failed',\n errorMsg: `Claiming locked ${amount} BNT had failed. Please try again or contact support.`,\n },\n },\n dispatch\n );\n\nexport const addLiquiditySingleNotification = (\n dispatch: any,\n txHash: string,\n amount: string,\n symbol: string,\n pool: string\n) =>\n showNotification(\n {\n type: NotificationType.pending,\n title: 'Add Protection',\n msg: `Staking ${amount} ${symbol} for Protection is Pending Confirmation`,\n txHash,\n updatedInfo: {\n successTitle: 'Success!',\n successMsg: `You Staked ${amount} ${symbol} for Protection in Pool ${pool}`,\n errorTitle: 'Transaction Failed',\n errorMsg: `Staking ${amount} ${symbol} for Protection in Pool ${pool} failed. Please try again or contact support.`,\n },\n },\n dispatch\n );\n\nexport const addLiquiditySingleFailedNotification = (\n dispatch: any,\n amount: string,\n symbol: string,\n pool: string\n) =>\n showNotification(\n {\n type: NotificationType.error,\n title: 'Transaction Failed',\n msg: `Staking ${amount} ${symbol} for protection in pool ${pool} failed. Please try again or contact support.`,\n },\n dispatch\n );\n\nexport const addLiquidityNotification = (\n dispatch: any,\n txHash: string,\n amountTkn: string,\n tkn: string,\n amountBnt: string,\n bnt: string,\n pool: string\n) =>\n showNotification(\n {\n type: NotificationType.pending,\n title: 'Add Liquidity',\n msg: `Adding ${amountTkn} ${tkn} and ${amountBnt} ${bnt} to pool ${pool} is Pending Confirmation`,\n txHash,\n updatedInfo: {\n successTitle: 'Success!',\n successMsg: `You Added ${amountTkn} ${tkn} and ${amountBnt} ${bnt} to pool ${pool}`,\n errorTitle: 'Transaction Failed',\n errorMsg: `Adding ${amountTkn} ${tkn} and ${amountBnt} ${bnt} to pool ${pool} failed. Please try again or contact support.`,\n },\n },\n dispatch\n );\n\nexport const addLiquidityFailedNotification = (\n dispatch: any,\n amountTkn: string,\n tkn: string,\n amountBnt: string,\n bnt: string,\n pool: string\n) =>\n showNotification(\n {\n type: NotificationType.error,\n title: 'Transaction Failed',\n msg: `Adding ${amountTkn} ${tkn} and ${amountBnt} ${bnt} to pool ${pool} failed. Please try again or contact support.`,\n },\n dispatch\n );\n","import { TokenInputField } from 'components/tokenInputField/TokenInputField';\nimport { Tooltip } from 'components/tooltip/Tooltip';\nimport { useDebounce } from 'hooks/useDebounce';\nimport { Token } from 'services/observables/tokens';\nimport { useEffect, useState } from 'react';\nimport { getRateAndPriceImapct, swap } from 'services/web3/swap/market';\nimport { ReactComponent as IconSync } from 'assets/icons/sync.svg';\nimport { useDispatch } from 'react-redux';\nimport {\n addNotification,\n NotificationType,\n} from 'redux/notification/notification';\nimport { useWeb3React } from '@web3-react/core';\nimport { getNetworkContractApproval } from 'services/web3/approval';\nimport { prettifyNumber } from 'utils/helperFunctions';\nimport { ethToken, wethToken } from 'services/web3/config';\nimport { useAppSelector } from 'redux/index';\nimport BigNumber from 'bignumber.js';\nimport { openWalletModal } from 'redux/user/user';\nimport { ModalApprove } from 'elements/modalApprove/modalApprove';\nimport { sanitizeNumberInput } from 'utils/pureFunctions';\nimport {\n sendConversionEvent,\n ConversionEvents,\n} from 'services/api/googleTagManager';\nimport { EthNetworks } from 'services/web3/types';\nimport { withdrawWeth } from 'services/web3/swap/limit';\nimport { updateTokens } from 'redux/bancor/bancor';\nimport { fetchTokenBalances } from 'services/observables/balances';\nimport { wait } from 'utils/pureFunctions';\nimport { getConversionLS, setConversionLS } from 'utils/localStorage';\nimport { useInterval } from 'hooks/useInterval';\nimport {\n rejectNotification,\n swapFailedNotification,\n swapNotification,\n} from 'services/notifications/notifications';\nimport { useAsyncEffect } from 'use-async-effect';\n\ninterface SwapMarketProps {\n fromToken: Token;\n setFromToken: Function;\n toToken?: Token;\n setToToken: Function;\n switchTokens: Function;\n}\n\nexport const SwapMarket = ({\n fromToken,\n setFromToken,\n toToken,\n setToToken,\n switchTokens,\n}: SwapMarketProps) => {\n const { chainId, account } = useWeb3React();\n const [fromAmount, setFromAmount] = useState('');\n const [fromDebounce, setFromDebounce] = useDebounce('');\n const [toAmount, setToAmount] = useState('');\n const [toAmountUsd, setToAmountUsd] = useState('');\n const [fromAmountUsd, setFromAmountUsd] = useState('');\n const [rate, setRate] = useState('');\n const [priceImpact, setPriceImpact] = useState('');\n const [fromError, setFromError] = useState('');\n const [showModal, setShowModal] = useState(false);\n const [rateToggle, setRateToggle] = useState(false);\n const [isLoadingRate, setIsLoadingRate] = useState(false);\n const fiatToggle = useAppSelector((state) => state.user.usdToggle);\n\n const dispatch = useDispatch();\n\n const tokens = useAppSelector((state) => state.bancor.tokens);\n const slippageTolerance = useAppSelector(\n (state) => state.user.slippageTolerance\n );\n\n const loadRateAndPriceImapct = async (\n fromToken: Token,\n toToken: Token,\n amount: string,\n showAnimation = true\n ) => {\n if (showAnimation) setIsLoadingRate(true);\n const res = await getRateAndPriceImapct(fromToken, toToken, amount);\n if (showAnimation) setIsLoadingRate(false);\n return res;\n };\n\n useInterval(() => {\n if (toToken && fromToken.address !== wethToken) {\n loadRateAndPriceImapct(\n fromToken,\n toToken,\n fromAmount ? fromAmount : '1',\n false\n );\n }\n }, 15000);\n\n useEffect(() => {\n setIsLoadingRate(true);\n }, [fromAmount]);\n\n useEffect(() => {\n if (fromToken && fromToken.address === wethToken) {\n const eth = tokens.find((x) => x.address === ethToken);\n setRate('1');\n setPriceImpact('0.00');\n const usdAmount = new BigNumber(fromDebounce)\n .times(1)\n .times(eth?.usdPrice!)\n .toString();\n setToAmountUsd(usdAmount);\n setToAmount(fromDebounce);\n setIsLoadingRate(false);\n }\n }, [fromDebounce, fromToken, toToken, tokens]);\n\n useAsyncEffect(\n async (isMounted) => {\n if (isMounted() && fromToken && fromToken.address !== wethToken) {\n if (\n (!fromDebounce || !parseFloat(fromDebounce)) &&\n fromToken &&\n toToken\n ) {\n setToAmount('');\n setToAmountUsd('');\n const res = await loadRateAndPriceImapct(fromToken, toToken, '1');\n setRate(res.rate);\n if (fromDebounce) setPriceImpact(res.priceImpact);\n else setPriceImpact('0.00');\n } else if (fromToken && toToken) {\n const result = await loadRateAndPriceImapct(\n fromToken,\n toToken,\n fromDebounce\n );\n const rate = new BigNumber(result.rate).div(fromDebounce);\n setToAmount(\n sanitizeNumberInput(\n new BigNumber(fromDebounce).times(rate).toString(),\n toToken.decimals\n )\n );\n\n const usdAmount = new BigNumber(fromDebounce)\n .times(rate)\n .times(toToken.usdPrice!)\n .toString();\n\n setToAmountUsd(usdAmount);\n setRate(rate.toString());\n if (fromDebounce) setPriceImpact(result.priceImpact);\n else setPriceImpact('0.00');\n }\n }\n },\n [fromToken?.address, toToken?.address, fromDebounce]\n );\n\n const usdSlippage = () => {\n if (!toAmountUsd || !fromAmountUsd) return;\n const difference = new BigNumber(toAmountUsd).minus(fromAmountUsd);\n const percentage = new BigNumber(difference)\n .div(fromAmountUsd)\n .times(100)\n .toFixed(2);\n return parseFloat(percentage);\n };\n\n //Check if approval is required\n const checkApproval = async () => {\n try {\n const isApprovalReq = await getNetworkContractApproval(\n fromToken,\n fromAmount\n );\n if (isApprovalReq) {\n const conversion = getConversionLS();\n sendConversionEvent(ConversionEvents.approvePop, conversion);\n setShowModal(true);\n } else await handleSwap(true);\n } catch (e: any) {\n dispatch(\n addNotification({\n type: NotificationType.error,\n title: 'Transaction Failed',\n msg: `${fromToken.symbol} approval had failed. Please try again or contact support.`,\n })\n );\n }\n };\n\n const onConfirmation = async () => {\n if (!(chainId && toToken && account)) return;\n\n await wait(4000);\n const balances = await fetchTokenBalances([fromToken, toToken], account);\n dispatch(updateTokens(balances));\n };\n\n const handleSwap = async (approved: boolean = false) => {\n if (!account) {\n dispatch(openWalletModal(true));\n return;\n }\n\n if (!(chainId && toToken)) return;\n\n if (!approved) return checkApproval();\n\n if (fromToken.address === wethToken) {\n dispatch(addNotification(await withdrawWeth(fromAmount)));\n return;\n }\n\n const conversion = getConversionLS();\n await swap(\n slippageTolerance,\n fromToken,\n toToken,\n fromAmount,\n toAmount,\n (txHash: string) =>\n swapNotification(\n dispatch,\n fromToken,\n toToken,\n fromAmount,\n toAmount,\n txHash\n ),\n () => {\n sendConversionEvent(ConversionEvents.success, {\n ...conversion,\n conversion_market_token_rate: fromToken.usdPrice,\n transaction_category: 'Conversion',\n });\n onConfirmation();\n },\n () => rejectNotification(dispatch),\n (error: string) => {\n sendConversionEvent(ConversionEvents.fail, {\n conversion,\n error,\n });\n swapFailedNotification(\n dispatch,\n fromToken,\n toToken,\n fromAmount,\n toAmount\n );\n }\n );\n\n setShowModal(false);\n };\n\n const handleSwitch = () => {\n if (!toToken) return;\n switchTokens();\n setFromAmountUsd(\n new BigNumber(fromAmount).times(toToken.usdPrice!).toString()\n );\n };\n\n // handle input errors\n useEffect(() => {\n const isInsufficient =\n fromToken &&\n fromToken.balance &&\n new BigNumber(fromAmount).gt(fromToken.balance);\n if (isInsufficient) setFromError('Token balance is currently insufficient');\n else setFromError('');\n }, [fromAmount, fromToken]);\n\n const isSwapDisabled = () => {\n if (isLoadingRate) return true;\n if (fromError !== '') return true;\n if (rate === '0') return true;\n if (fromAmount === '' || new BigNumber(fromAmount).eq(0)) return true;\n if (!toToken) return true;\n if (toToken.address === wethToken) return true;\n if (!account) return false;\n return false;\n };\n\n const swapButtonText = () => {\n if (!toToken) return 'Select a token';\n else if (toToken.address === wethToken) return 'Please change WETH to ETH';\n if (fromToken.balance) {\n const isInsufficientBalance = new BigNumber(fromToken.balance).lt(\n fromAmount\n );\n if (isInsufficientBalance) return 'Insufficient balance';\n }\n const isInputZero = fromAmount === '' || new BigNumber(fromAmount).eq(0);\n if (isInputZero) return 'Enter Amount';\n if (rate === '0') return 'Insufficient liquidity';\n if (!account) return 'Connect your wallet';\n const isHighSlippage = new BigNumber(priceImpact).gte(5);\n if (isHighSlippage) return 'Trade with high slippage';\n return 'Trade';\n };\n\n const buttonVariant = () => {\n const isHighSlippage = new BigNumber(priceImpact).gte(10);\n if (isHighSlippage) return 'btn-error';\n return 'btn-primary';\n };\n\n return (\n <>\n
\n
\n \n
\n\n
\n
\n fromToken.address !== wethToken && handleSwitch()}\n />\n
\n
\n \n {toToken && (\n <>\n
\n Rate\n {isLoadingRate ? (\n
\n ) : (\n setRateToggle(!rateToggle)}\n >\n {rateToggle\n ? `1 ${fromToken?.symbol} = ${prettifyNumber(rate)} ${\n toToken?.symbol\n }`\n : `1 ${toToken?.symbol} = ${prettifyNumber(\n rate === '0' ? 0 : 1 / Number(rate)\n )} ${fromToken?.symbol}`}\n \n \n )}\n
\n
\n
\n Price Impact\n \n
\n {isLoadingRate ? (\n
\n ) : (\n \n {priceImpact}%\n \n )}\n
\n \n )}\n
\n\n {\n const conversion = {\n conversion_type: 'Market',\n conversion_blockchain_network:\n chainId === EthNetworks.Ropsten ? 'Ropsten' : 'MainNet',\n conversion_settings:\n slippageTolerance === 0.005 ? 'Regular' : 'Advanced',\n conversion_token_pair: fromToken.symbol + '/' + toToken?.symbol,\n conversion_from_token: fromToken.symbol,\n conversion_to_token: toToken?.symbol,\n conversion_from_amount: fromAmount,\n conversion_from_amount_usd: fromAmountUsd,\n conversion_to_amount: toAmount,\n conversion_to_amount_usd: toAmountUsd,\n conversion_input_type: fiatToggle ? 'Fiat' : 'Token',\n conversion_rate: rate,\n };\n setConversionLS(conversion);\n sendConversionEvent(ConversionEvents.click, conversion);\n handleSwap();\n }}\n className={`${buttonVariant()} rounded w-full`}\n disabled={isSwapDisabled()}\n >\n {swapButtonText()}\n \n
\n
\n handleSwap(true)}\n waitForApproval={true}\n />\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 SvgClockSolid(_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: \"100%\",\n height: \"100%\",\n viewBox: \"0 0 53 52\",\n fill: \"currentColor\",\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: \"M0.5 26C0.5 11.6391 12.1391 0 26.5 0C35.3279 0 43.1273 4.39812 47.8268 11.123C50.7723 15.338 52.5 20.467 52.5 26C52.5 40.3609 40.8609 52 26.5 52C12.1391 52 0.5 40.3609 0.5 26ZM26.5007 39.5829C34.002 39.5829 40.0829 33.502 40.0829 26.0007C40.0829 18.4995 34.002 12.4185 26.5007 12.4185C18.9995 12.4185 12.9185 18.4995 12.9185 26.0007C12.9185 33.502 18.9995 39.5829 26.5007 39.5829ZM26.5007 42.2507C35.4753 42.2507 42.7507 34.9753 42.7507 26.0007C42.7507 17.0261 35.4753 9.75071 26.5007 9.75071C17.5261 9.75071 10.2507 17.0261 10.2507 26.0007C10.2507 34.9753 17.5261 42.2507 26.5007 42.2507ZM26.1051 15.5522C26.8418 15.5522 27.439 16.1494 27.439 16.8861V26.6498H31.6539C32.3906 26.6498 32.9878 27.247 32.9878 27.9837C32.9878 28.7203 32.3906 29.3175 31.6539 29.3175H26.1051C25.3684 29.3175 24.7712 28.7203 24.7712 27.9837V16.8861C24.7712 16.1494 25.3684 15.5522 26.1051 15.5522Z\",\n fill: \"currentColor\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgClockSolid);\nexport default __webpack_public_path__ + \"static/media/clock-solid.70bd1a25.svg\";\nexport { ForwardRef as ReactComponent };","import { Listbox, Transition } from '@headlessui/react';\nimport { ReactComponent as IconCheck } from 'assets/icons/check.svg';\nimport { ReactComponent as IconChevronDown } from 'assets/icons/chevronDown.svg';\n\nimport 'components/dropdown/Dropdown.css';\nimport { classNameGenerator } from 'utils/pureFunctions';\n\ninterface DropdownProps {\n title: string;\n items: { id: string; title: any; disabled?: boolean }[];\n selected: any;\n setSelected: Function;\n openUp?: boolean;\n}\n\nexport const Dropdown = ({\n title,\n items,\n selected,\n setSelected,\n openUp,\n}: DropdownProps) => {\n return (\n
\n setSelected(val)}>\n \n
{title}
\n
\n \n \n {items.map((item) => (\n `${active && 'bg-blue-500'} py-10`}\n >\n {({ selected }) => (\n
\n {selected && (\n \n \n \n )}\n \n {item.title}\n \n
\n )}\n \n ))}\n \n \n
\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 SvgDeposit(_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 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: \"M32.1742 15.5992L19.4992 28.2742M19.4992 28.2742L6.82422 15.5992M19.4992 28.2742L19.4992 1.94922M29.2492 37.0492L10.7242 37.0492\",\n stroke: \"currentColor\",\n strokeWidth: 3,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDeposit);\nexport default __webpack_public_path__ + \"static/media/deposit.49ea3d61.svg\";\nexport { ForwardRef as ReactComponent };","import { useState } from 'react';\nimport dayjs from 'utils/dayjs';\nimport { Dropdown } from 'components/dropdown/Dropdown';\nimport { Modal } from 'components/modal/Modal';\nimport { Duration } from 'dayjs/plugin/duration';\nimport { ReactComponent as IconChevronDown } from 'assets/icons/chevronDown.svg';\nimport { ReactComponent as IconClock } from 'assets/icons/clock-solid.svg';\nimport { formatDuration } from 'utils/helperFunctions';\n\ninterface ModalDurationProps {\n duration: Duration;\n setDuration: Function;\n}\n\ninterface DurationItem {\n id: string;\n title: number;\n}\n\nexport const ModalDuration = ({\n duration,\n setDuration,\n}: ModalDurationProps) => {\n const [isOpen, setIsOpen] = useState(false);\n const [days, setDays] = useState(duration.days());\n const [hours, setHours] = useState(duration.hours());\n const [minutes, setMinutes] = useState(duration.minutes());\n\n const daysItems: DurationItem[] = Array.from(\n { length: 31 },\n (_, index: number) => ({\n id: index.toString(),\n title: index,\n })\n );\n\n const hoursItems: DurationItem[] = Array.from(\n { length: 24 },\n (_, index: number) => ({\n id: index.toString(),\n title: index,\n })\n );\n\n const minutesItems: DurationItem[] = Array.from(\n { length: 60 },\n (_, index: number) => ({\n id: index.toString(),\n title: index,\n })\n );\n\n return (\n <>\n setIsOpen(true)}\n className=\"flex items-center bg-white dark:bg-blue-4 rounded-10 px-40 py-8\"\n >\n {formatDuration(duration)}\n \n \n \n
\n \n
Custom Time
\n
\n Set up your custom time peroid\n
\n
\n
\n Days\n
\n setDays(x.title)}\n title={days?.toString()}\n items={daysItems}\n />\n
\n
\n
\n Hours\n
\n setHours(x.title)}\n title={hours?.toString()}\n items={hoursItems}\n />\n
\n
\n
\n Minutes\n
\n setMinutes(x.title)}\n title={minutes?.toString()}\n items={minutesItems}\n openUp\n />\n
\n
\n
\n {\n setDuration(dayjs.duration({ days, hours, minutes }));\n setIsOpen(false);\n }}\n className=\"btn-primary rounded-full w-full mt-15\"\n >\n Confirm\n \n
\n
\n \n );\n};\n","import { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport dayjs from 'utils/dayjs';\nimport BigNumber from 'bignumber.js';\nimport { InputField } from 'components/inputField/InputField';\nimport { TokenInputField } from 'components/tokenInputField/TokenInputField';\nimport { ModalDuration } from 'elements/modalDuration/modalDuration';\nimport { Token } from 'services/observables/tokens';\nimport { ReactComponent as IconSync } from 'assets/icons/sync.svg';\nimport { classNameGenerator } from 'utils/pureFunctions';\nimport { useInterval } from 'hooks/useInterval';\nimport { getRate } from 'services/web3/swap/market';\nimport { KeeprDaoToken, swapLimit } from 'services/api/keeperDao';\nimport {\n addNotification,\n NotificationType,\n} from 'redux/notification/notification';\nimport { useDispatch } from 'react-redux';\nimport { useWeb3React } from '@web3-react/core';\nimport { ethToken, wethToken } from 'services/web3/config';\nimport { useAppSelector } from 'redux/index';\nimport { openWalletModal } from 'redux/user/user';\nimport { ModalApprove } from 'elements/modalApprove/modalApprove';\nimport { getNetworkContractApproval } from 'services/web3/approval';\nimport { prettifyNumber } from 'utils/helperFunctions';\nimport {\n sendConversionEvent,\n ConversionEvents,\n} from 'services/api/googleTagManager';\nimport { EthNetworks } from 'services/web3/types';\nimport { updateTokens } from 'redux/bancor/bancor';\nimport { fetchTokenBalances } from 'services/observables/balances';\nimport { wait } from 'utils/pureFunctions';\nimport { getConversionLS, setConversionLS } from 'utils/localStorage';\nimport { calculatePercentageChange } from 'utils/formulas';\nimport { exchangeProxy$ } from 'services/observables/contracts';\nimport { take } from 'rxjs/operators';\nimport { ModalDepositETH } from 'elements/modalDepositETH/modalDepositETH';\n\nenum Field {\n from,\n to,\n rate,\n}\n\ninterface SwapLimitProps {\n fromToken: Token;\n setFromToken: Function;\n toToken?: Token;\n setToToken: Function;\n switchTokens: Function;\n}\n\nexport const SwapLimit = ({\n fromToken,\n setFromToken,\n toToken,\n setToToken,\n switchTokens,\n}: SwapLimitProps) => {\n const dispatch = useDispatch();\n const { account, chainId } = useWeb3React();\n const [fromAmount, setFromAmount] = useState('');\n const [toAmount, setToAmount] = useState('');\n const [toAmountUsd, setToAmountUsd] = useState('');\n const [fromAmountUsd, setFromAmountUsd] = useState('');\n const [rate, setRate] = useState('');\n const [marketRate, setMarketRate] = useState(-1);\n const [percentage, setPercentage] = useState('');\n const [selPercentage, setSelPercentage] = useState(1);\n const [showApproveModal, setShowApproveModal] = useState(false);\n const [showEthModal, setShowEthModal] = useState(false);\n const [fromError, setFromError] = useState('');\n const [rateWarning, setRateWarning] = useState({ type: '', msg: '' });\n const [isLoadingRate, setIsLoadingRate] = useState(false);\n const [duration, setDuration] = useState(\n dayjs.duration({ days: 7, hours: 0, minutes: 0 })\n );\n\n const approveContract = useRef('');\n const previousField = useRef();\n const lastChangedField = useRef();\n const tokens = useAppSelector((state) => state.bancor.tokens);\n const keeperDaoTokens = useAppSelector(\n (state) => state.bancor.keeperDaoTokens\n );\n const fiatToggle = useAppSelector((state) => state.user.usdToggle);\n const percentages = useMemo(() => [1, 3, 5], []);\n\n useInterval(() => {\n fetchMarketRate(false);\n }, 15000);\n\n const calculatePercentageByRate = useCallback(\n (marketRate: number, rate: string) => {\n const percentage = calculatePercentageChange(Number(rate), marketRate);\n const index = percentages.indexOf(percentage);\n if (index === -1) setPercentage(percentage.toFixed(2));\n else {\n setPercentage('');\n setSelPercentage(index);\n }\n },\n [percentages]\n );\n\n const calcFrom = useCallback(\n (to: string, rate: string) => {\n if (rate && to) {\n const amount = new BigNumber(to).div(rate);\n setFromAmount(amount.toString());\n const usdAmount = amount.times(fromToken!.usdPrice!).toString();\n setFromAmountUsd(usdAmount);\n }\n },\n [fromToken]\n );\n const calcTo = useCallback(\n (from: string, rate: string) => {\n if (rate && from && toToken) {\n const amount = new BigNumber(rate).times(from);\n setToAmount(amount.toString());\n const usdAmount = amount.times(toToken.usdPrice!).toString();\n setToAmountUsd(usdAmount);\n }\n },\n [toToken]\n );\n const calcRate = useCallback(\n (from: string, to: string) => {\n if (from && to) {\n const rate = new BigNumber(to).div(from).toString();\n setRate(rate);\n calculatePercentageByRate(marketRate, rate);\n }\n },\n [calculatePercentageByRate, marketRate]\n );\n\n const handleFieldChanged = useCallback(\n (field: Field, from: string, to: string, rate: string) => {\n if (\n previousField.current !== lastChangedField.current &&\n lastChangedField.current !== field\n )\n previousField.current = lastChangedField.current;\n lastChangedField.current = field;\n\n switch (field) {\n case Field.from:\n if (previousField.current === Field.to) calcRate(from, to);\n else calcTo(from, rate);\n break;\n case Field.to:\n if (previousField.current === Field.from) calcRate(from, to);\n else calcFrom(to, rate);\n break;\n case Field.rate:\n const isTooHigh = new BigNumber(rate).lt(marketRate);\n const isTooLow = new BigNumber(marketRate).times(1.2).lt(rate);\n if (isTooHigh) {\n setRateWarning({\n type: 'error',\n msg: 'Pay attention! The rate is lower than market rate, you can get a better rate on market swap',\n });\n } else if (isTooLow) {\n setRateWarning({\n type: 'warning',\n msg: 'Pay attention! The rate is too high above market rate and will likely not be fulfilled',\n });\n } else {\n setRateWarning({\n type: '',\n msg: '',\n });\n }\n if (previousField.current === Field.from) calcTo(from, rate);\n else calcFrom(to, rate);\n break;\n }\n },\n [calcRate, calcTo, calcFrom, marketRate]\n );\n\n const calculateRateByMarket = useCallback(\n (marketRate: number, selPercentage: number, percentage: string) => {\n const perc =\n selPercentage === -1\n ? Number(percentage) / 100\n : percentages[selPercentage] / 100;\n const rate = (marketRate * (1 + perc)).toFixed(6);\n handleFieldChanged(Field.rate, fromAmount, toAmount, rate);\n setRate(rate);\n },\n [percentages, fromAmount, toAmount, handleFieldChanged]\n );\n\n const fetchMarketRate = useCallback(\n async (setLoading = true) => {\n if (!fromToken || !toToken) return;\n if (toToken.address === ethToken && fromToken.address === wethToken)\n return;\n\n setIsLoadingRate(setLoading);\n const rate = await getRate(fromToken, toToken, '1');\n setMarketRate(Number(rate));\n setIsLoadingRate(false);\n },\n [fromToken, toToken]\n );\n\n useEffect(() => {\n calculateRateByMarket(marketRate, selPercentage, percentage);\n // eslint-disable-next-line\n }, [calculateRateByMarket, fromToken, toToken]);\n\n useEffect(() => {\n fetchMarketRate();\n }, [fetchMarketRate, fromToken, toToken]);\n\n //Check if approval is required\n const checkApproval = async (token: Token) => {\n try {\n const exchangeProxyAddress = await exchangeProxy$\n .pipe(take(1))\n .toPromise();\n approveContract.current = exchangeProxyAddress;\n const isApprovalReq = await getNetworkContractApproval(\n token,\n fromAmount,\n exchangeProxyAddress\n );\n if (isApprovalReq) {\n const conversion = getConversionLS();\n sendConversionEvent(ConversionEvents.approvePop, conversion);\n setShowApproveModal(true);\n } else await handleSwap(true, token.address === wethToken);\n } catch (e: any) {\n dispatch(\n addNotification({\n type: NotificationType.error,\n title: 'Transaction Failed',\n msg: `${token.symbol} approval had failed. Please try again or contact support.`,\n })\n );\n }\n };\n\n const updateETHandWETH = async () => {\n if (!(chainId && toToken && account)) return;\n\n const weth = tokens.find((x) => x.address === wethToken);\n await wait(4000);\n const balances = await fetchTokenBalances(\n weth ? [fromToken, weth] : [fromToken],\n account\n );\n dispatch(updateTokens(balances));\n };\n\n const handleSwap = async (\n approved: boolean = false,\n weth: boolean = false,\n showETHtoWETHModal: boolean = false\n ) => {\n if (!account) {\n dispatch(openWalletModal(true));\n return;\n }\n\n if (!(fromToken && toToken && fromAmount && toAmount)) return;\n\n if (showETHtoWETHModal) return setShowEthModal(true);\n\n if (!approved) return checkApproval(fromToken);\n\n const notification = await swapLimit(\n weth ? { ...fromToken, address: wethToken } : fromToken,\n toToken,\n fromAmount,\n toAmount,\n account,\n duration,\n checkApproval\n );\n\n if (notification) dispatch(addNotification(notification));\n if (fromToken.address === ethToken) updateETHandWETH();\n };\n\n const isSwapDisabled = () => {\n if (isLoadingRate) return true;\n if (fromError !== '') return true;\n if (\n fromAmount === '' ||\n toAmount === '' ||\n rate === '' ||\n new BigNumber(fromAmount).eq(0) ||\n new BigNumber(toAmount).eq(0) ||\n new BigNumber(rate).eq(0)\n )\n return true;\n if (!toToken) return true;\n if (!account) return false;\n if (\n toToken.address === ethToken ||\n keeperDaoTokens.findIndex((x) => x.address === toToken.address) === -1 ||\n (fromToken.address !== ethToken &&\n keeperDaoTokens.findIndex((x) => x.address === fromToken.address) ===\n -1)\n )\n return true;\n\n return false;\n };\n\n // handle input errors\n useEffect(() => {\n const isInsufficient =\n fromToken &&\n fromToken.balance &&\n new BigNumber(fromAmount).gt(fromToken.balance);\n if (isInsufficient) setFromError('Token balance is currently insufficient');\n else setFromError('');\n }, [fromAmount, fromToken]);\n\n const handleRateInput = (val: string) => {\n setRate(val);\n calculatePercentageByRate(marketRate, val);\n handleFieldChanged(Field.rate, fromAmount, toAmount, val);\n };\n\n const swapButtonText = () => {\n if (!toToken) return 'Select a token';\n else if (\n fromToken.address !== ethToken &&\n keeperDaoTokens.findIndex((x) => x.address === fromToken.address) === -1\n )\n return `${fromToken.symbol} token is not supported`;\n if (toToken.address === ethToken) return 'Please change ETH to WETH';\n else if (\n keeperDaoTokens.findIndex((x) => x.address === toToken.address) === -1\n )\n return `${toToken.symbol} token is not supported`;\n\n return 'Trade';\n };\n\n return (\n
\n
\n {\n setFromAmount(val);\n handleFieldChanged(Field.from, val, toAmount, rate);\n }}\n border\n selectable\n excludedTokens={\n toToken\n ? [\n toToken.address,\n ...(toToken.address === ethToken ||\n toToken.address === wethToken\n ? [ethToken, wethToken]\n : []),\n ]\n : []\n }\n errorMsg={fromError}\n includedTokens={[ethToken, ...keeperDaoTokens.map((x) => x.address)]}\n />\n
\n\n
\n
\n switchTokens()}\n />\n
\n
\n {\n setToAmount(val);\n handleFieldChanged(Field.to, fromAmount, val, rate);\n }}\n selectable\n startEmpty\n excludedTokens={\n fromToken\n ? [\n fromToken.address,\n ...(fromToken.address === ethToken ||\n fromToken.address === wethToken\n ? [ethToken, wethToken]\n : []),\n ]\n : []\n }\n includedTokens={keeperDaoTokens.map((x) => x.address)}\n />\n {toToken && (\n <>\n
\n
Rate
\n {isLoadingRate ? (\n
\n ) : (\n
\n Market Rate:{' '}\n {`1 ${fromToken?.symbol} = ${prettifyNumber(marketRate)} ${\n toToken?.symbol\n }`}\n
\n )}\n
\n
\n
{`1 ${fromToken?.symbol} =`}
\n
\n {isLoadingRate && (\n
\n
\n
\n )}\n \n
\n
\n {rateWarning.msg && marketRate !== -1 && (\n
\n
\n \n {rateWarning.msg}\n
\n
\n )}\n
\n {percentages.map((slip, index) => (\n {\n calculateRateByMarket(marketRate, index, '');\n setSelPercentage(index);\n setPercentage('');\n }}\n >\n +{slip}%\n \n ))}\n
\n {\n const percNum = Number(percentage);\n const index = percentages.indexOf(percNum);\n if (index !== -1 || !percNum) setPercentage('');\n\n const sel = percNum\n ? index\n : selPercentage === -1\n ? 1\n : selPercentage;\n calculateRateByMarket(marketRate, sel, percentage);\n setSelPercentage(sel);\n }}\n onChange={(val: string) => {\n calculateRateByMarket(marketRate, -1, val);\n setPercentage(val);\n }}\n format\n placeholder=\"Custom\"\n customClass=\"text-14 py-6 rounded-10 bg-opacity-0 border border-grey-3 p-6\"\n />\n
\n
\n\n
\n Expires in\n \n
\n \n )}\n
\n\n \n handleSwap(true, fromToken.address === ethToken)\n }\n contract={approveContract.current}\n />\n handleSwap(true)}\n />\n {\n const conversion = {\n conversion_type: 'Limit',\n conversion_blockchain_network:\n chainId === EthNetworks.Ropsten ? 'Ropsten' : 'MainNet',\n conversion_token_pair: fromToken.symbol + '/' + toToken?.symbol,\n conversion_from_token: fromToken.symbol,\n conversion_to_token: toToken?.symbol,\n conversion_from_amount: fromAmount,\n conversion_from_amount_usd: fromAmountUsd,\n conversion_to_amount: toAmount,\n conversion_to_amount_usd: toAmountUsd,\n conversion_input_type: fiatToggle ? 'Fiat' : 'Token',\n conversion_rate: rate,\n conversion_rate_percentage:\n selPercentage === -1\n ? percentage\n : percentages[selPercentage].toFixed(0),\n conversion_experation: duration.asSeconds().toString(),\n };\n setConversionLS(conversion);\n sendConversionEvent(ConversionEvents.click, conversion);\n handleSwap(false, false, fromToken.address === ethToken);\n }}\n disabled={isSwapDisabled()}\n >\n {swapButtonText()}\n \n
\n \n );\n};\n","import { Modal } from 'components/modal/Modal';\nimport { ReactComponent as IconDeposit } from 'assets/icons/deposit.svg';\n\ninterface ModalDepositETHProps {\n amount: string;\n isOpen: boolean;\n setIsOpen: Function;\n onConfirm: Function;\n}\nexport const ModalDepositETH = ({\n amount,\n isOpen,\n setIsOpen,\n onConfirm,\n}: ModalDepositETHProps) => {\n return (\n }\n isOpen={isOpen}\n setIsOpen={setIsOpen}\n onClose={() => setIsOpen(false)}\n >\n
\n \n
Confirm WETH deposit
\n\n
\n
\n You Will Receive\n
\n {amount} WETH\n
\n
\n WETH is a token that represents ETH 1:1 and conforms to the ERC20\n token standard\n
\n {\n setIsOpen(false);\n onConfirm();\n }}\n >\n Confirm\n \n
\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 SvgLightbulb(_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: \"100%\",\n height: \"100%\",\n viewBox: \"0 0 17 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: \"M8.5 0C3.52799 0 -0.00578833 3.91594 7.11796e-06 8.26125C0.00290484 10.3369 0.796882 12.2302 2.10376 13.6772C3.34253 15.0483 4.53253 17.2819 4.63637 18L4.63927 21.5241C4.63927 21.6717 4.68466 21.8156 4.7687 21.9384L5.95242 23.6653C6.09586 23.8744 6.33733 24 6.59572 24H10.4038C10.6627 24 10.9042 23.8744 11.0471 23.6653L12.2308 21.9384C12.3149 21.8156 12.3598 21.6712 12.3603 21.5241L12.3636 18C12.4728 17.2631 13.6671 15.038 14.8963 13.6772C16.2055 12.2273 17 10.3298 17 8.25C17 3.69375 13.1943 0 8.5 0ZM10.8153 21.2958L9.98992 22.5H7.00961L6.18424 21.2958L6.18375 21H10.8153V21.2958ZM10.8172 19.5H6.18231L6.17893 18H10.8192L10.8172 19.5ZM13.7343 12.6881C13.0586 13.4362 11.9797 14.9428 11.2915 16.4995H5.70901C5.02032 14.9423 3.94188 13.4362 3.26623 12.6881C2.14915 11.4516 1.55174 9.88359 1.54788 8.25C1.53918 4.64109 4.46395 1.5 8.5 1.5C12.3347 1.5 15.4545 4.52812 15.4545 8.25C15.4545 9.88359 14.8436 11.46 13.7343 12.6881ZM8.5 3C5.51776 3 3.09091 5.35547 3.09091 8.25C3.09091 8.66438 3.43671 9 3.86364 9C4.29057 9 4.63637 8.66438 4.63637 8.25C4.63637 6.18234 6.36921 4.5 8.5 4.5C8.92694 4.5 9.27273 4.16437 9.27273 3.75C9.27273 3.33562 8.92694 3 8.5 3Z\",\n fill: \"currentColor\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLightbulb);\nexport default __webpack_public_path__ + \"static/media/lightbulb.21aa9427.svg\";\nexport { ForwardRef as ReactComponent };","import { Summary } from 'services/api/intoTheBlock';\nimport { pick, toPairs } from 'lodash';\n\nexport const Speedometer = ({ summary }: { summary: Summary | null }) => {\n const rotation = summary ? summary.score * 180 : 90;\n\n const gradientColour =\n rotation > 110 ? '#0ED3B0' : rotation > 70 ? 'grey' : 'red';\n\n const title = () => {\n if (!summary) return 'neutral';\n if (summary.score < summary.bullish && summary.score > summary.bearish)\n return 'neutral';\n const findTitle = toPairs(\n pick(summary, ['bullish', 'bearish', 'neutral'])\n ).sort(([, a], [, b]) => Number(b) - Number(a))[0];\n return findTitle[0];\n };\n\n const titleColour =\n rotation > 110\n ? 'text-success'\n : rotation > 70\n ? 'text-grey-3'\n : 'text-error';\n\n return (\n
\n
\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n
\n \n {title()}\n
\n
\n
\n
\n {summary ? summary.bearish : 0}\n
\n
Bearish
\n
\n
\n
\n {summary ? summary.neutral : 0}\n
\n
Neutral
\n
\n
\n
\n {summary ? summary.bullish : 0}\n
\n
Bullish
\n
\n
\n \n );\n};\n","import { classNameGenerator } from 'utils/pureFunctions';\n\nexport interface LinePercentageData {\n color: string;\n decPercent: number;\n label?: string;\n}\n\ninterface LinePercentageProps {\n percentages?: LinePercentageData[];\n showEmpty?: boolean;\n}\n\nconst linePercentages = (percentages: LinePercentageData[]) => {\n let count = 0;\n return percentages.map((_, index) => {\n const i = percentages[percentages.length - 1 - index];\n const linePercentage = 100 - count;\n count += i.decPercent * 100;\n return {\n linePercentage,\n percentage: i,\n color: i.color,\n };\n });\n};\n\nexport const LinePercentage = ({\n percentages,\n showEmpty,\n}: LinePercentageProps) => {\n return (\n <>\n
\n {percentages &&\n percentages.map((p) => (\n
\n \n {(p.decPercent * 100).toFixed(0) + '%'}\n {p.label && p.label}\n \n
\n ))}\n
\n
\n \n {percentages &&\n linePercentages(percentages).map((p, index) => (\n \n ))}\n {showEmpty && (\n
\n )}\n \n \n \n );\n};\n","import {\n LinePercentage,\n LinePercentageData,\n} from 'components/linePercentage/LinePercentage';\nimport { Tooltip } from 'components/tooltip/Tooltip';\n\ninterface InsightCardProps {\n label: string;\n percentages: LinePercentageData[];\n tooltip: string;\n}\n\nexport const InsightCard = ({ data }: { data: InsightCardProps | null }) => {\n return (\n
\n \n {data ? data.label : 'No available insights'}\n
\n \n
\n
\n
\n \n
\n
\n );\n};\n","import { prettifyNumber } from 'utils/helperFunctions';\nimport { Speedometer } from './Speedometer';\nimport { IntoTheBlock } from 'services/api/intoTheBlock';\nimport { Token } from 'services/observables/tokens';\nimport { InsightCard } from 'elements/swapInsights/InsightCard';\n\nexport const InsightRow = ({\n token,\n data,\n}: {\n token: Token;\n data?: IntoTheBlock;\n}) => {\n const cards = [\n data && data.inOutOfTheMoney\n ? {\n label: 'Holders making money at the current price',\n tooltip:\n 'Shows what percentage of addresses holding this crypto-asset are making profits (in the money), breaking even (at the money) and losing money (out of the money) given the current market price.',\n percentages: [\n { color: 'success', decPercent: data.inOutOfTheMoney.in },\n {\n color: 'grey-3',\n decPercent: data.inOutOfTheMoney.between,\n },\n { color: 'error', decPercent: data.inOutOfTheMoney.out },\n ],\n }\n : null,\n data && data.concentration\n ? {\n label: 'Concentration by large holders',\n tooltip:\n 'The total holdings of whales and Investors that own more than 0.1% of the circulating supply',\n percentages: [\n { color: 'primary', decPercent: data.concentration },\n { color: 'grey-3', decPercent: 1 - data.concentration },\n ],\n }\n : null,\n data && data.byTimeHeldComposition\n ? {\n label: 'Holders composition by time held',\n tooltip:\n 'Shows ownership distribution by time held. A Hodler (holding this crypto for over a year), a Cruiser (holding for more than a month but less than a year) or a Trader (holding for less than a month).',\n percentages: [\n {\n color: 'primary',\n decPercent: data.byTimeHeldComposition.cruiser,\n },\n {\n color: 'error',\n decPercent: data.byTimeHeldComposition.trader,\n },\n {\n color: 'success',\n decPercent: data.byTimeHeldComposition.hodler,\n },\n ],\n }\n : null,\n ];\n\n return (\n
\n
\n \n
\n
\n
\n \n
{token.symbol}
\n
\n Price {prettifyNumber(token.usdPrice ?? 0, true)}\n
\n
\n
\n {cards.map((card, index) => (\n \n ))}\n
\n
\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 SvgIntotheblock(_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: 20,\n viewBox: \"0 0 17 20\",\n fill: \"currentColor\",\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.44566 9.75931C7.80333 9.38691 7.28456 9.09269 6.77286 8.78706C6.56056 8.66003 6.36242 8.67143 6.15774 8.78923C5.84365 8.96946 5.52792 9.14806 5.21492 9.33046C3.8524 10.1236 2.49097 10.9188 1.1279 11.7114C0.930847 11.826 0.725625 11.9275 0.457258 12.0713C0.437117 11.8118 0.412077 11.6387 0.411532 11.4655C0.408266 9.36629 0.416431 7.26761 0.401189 5.16839C0.397923 4.73574 0.559597 4.45562 0.927036 4.24228C3.26232 2.88677 5.59379 1.52421 7.92308 0.158929C8.25024 -0.0326991 8.5627 -0.0625561 8.89585 0.132872C11.4592 1.63766 14.0237 3.1392 16.587 4.64399C16.6616 4.68796 16.7231 4.75474 16.8325 4.84594C14.0509 6.47124 11.3013 8.07809 8.51316 9.70774C8.59699 9.8022 8.64 9.88146 8.70695 9.92108C9.15822 10.1903 9.6182 10.4444 10.0668 10.718C10.3128 10.8684 10.5371 10.8597 10.7788 10.7158C11.2148 10.4558 11.6568 10.2072 12.095 9.95094C13.347 9.21972 14.598 8.4874 15.8505 7.75672C16.0182 7.65901 16.1913 7.57106 16.4346 7.43861C16.4575 7.69049 16.4858 7.86204 16.4863 8.03358C16.4923 10.1507 16.4852 12.2678 16.5037 14.385C16.5076 14.8339 16.2904 15.0755 15.9338 15.2829C13.9431 16.4381 11.9584 17.6036 9.97258 18.7664C9.65958 18.9493 9.35093 19.1393 9.0401 19.3255C8.66613 19.5497 8.28617 19.5573 7.9024 19.3516C7.77447 19.2832 7.6471 19.2137 7.52189 19.1409C5.23724 17.8066 2.95204 16.4728 0.668468 15.1357C0.468145 15.0185 0.279254 14.8833 0 14.7009C2.82629 13.0474 5.58072 11.4356 8.44566 9.75931ZM7.92254 18.3342C7.94703 18.0867 7.97643 17.932 7.97589 17.7767C7.97207 16.1845 7.96935 14.5923 7.95248 13.0007C7.94758 12.5632 8.06516 12.2342 8.48976 12.0306C8.8131 11.8754 9.10869 11.6631 9.42387 11.472C8.79786 10.8418 8.43532 10.7647 7.77556 11.1501C5.88175 12.2554 3.99393 13.3709 2.10556 14.4849C2.00431 14.5446 1.91667 14.6287 1.76262 14.7476C3.82627 15.9495 5.83712 17.1204 7.92254 18.3342ZM7.47181 8.02598C8.07441 8.71106 8.35367 8.7762 9.04718 8.37395C10.9257 7.28498 12.7989 6.18624 14.6725 5.08859C14.8032 5.01205 14.9191 4.91054 15.0754 4.79599C14.9409 4.70045 14.8593 4.63151 14.7683 4.57939C12.8413 3.46654 10.9138 2.35586 8.98512 1.24627C8.97423 1.24029 8.95082 1.25278 8.93449 1.26038C8.91925 1.26744 8.90619 1.27829 8.87026 1.30218C8.86427 1.42921 8.85066 1.57144 8.85121 1.71421C8.85284 3.35851 8.84849 5.00282 8.86427 6.64658C8.86808 7.05535 8.74234 7.32787 8.35149 7.50158C8.04393 7.63729 7.76903 7.84521 7.47181 8.02598ZM1.73649 4.79654C1.933 4.92628 2.0348 4.99902 2.14149 5.06308C3.27375 5.74165 4.40546 6.42076 5.54044 7.0939C5.71028 7.19432 5.89101 7.28878 6.07935 7.34361C6.63514 7.50647 7.09784 7.28281 7.55183 6.98207C7.94322 6.72258 7.98405 6.3567 7.98133 5.94196C7.97208 4.56962 7.97915 3.19674 7.97643 1.82441C7.97589 1.63658 7.95302 1.44875 7.93506 1.17624C5.8382 2.40092 3.82899 3.57457 1.73649 4.79654ZM8.88659 18.3684C11.0243 17.1231 13.0498 15.943 15.1401 14.7253C14.9093 14.5793 14.7613 14.48 14.6078 14.3893C13.5299 13.7553 12.4576 13.1125 11.371 12.4937C10.2567 11.8585 10.6193 11.839 9.43476 12.4747C9.02105 12.6967 8.83379 12.9866 8.8425 13.4681C8.86645 14.8426 8.84958 16.2177 8.8523 17.5927C8.8523 17.8077 8.87026 18.0216 8.88659 18.3684ZM15.5392 8.94449C14.1031 9.78103 12.7379 10.5758 11.2741 11.4286C12.7374 12.2776 14.1021 13.0696 15.5392 13.9035C15.5392 12.2125 15.5392 10.6333 15.5392 8.94449ZM5.59597 8.09221C4.13546 7.24535 2.78437 6.46201 1.36579 5.63959C1.36579 7.31104 1.36579 8.88206 1.36579 10.5584C2.78873 9.72891 4.1371 8.94286 5.59597 8.09221Z\",\n fill: \"currentColor\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIntotheblock);\nexport default __webpack_public_path__ + \"static/media/intotheblock.96e46f58.svg\";\nexport { ForwardRef as ReactComponent };","import { InsightRow } from './InsightRow';\nimport { ReactComponent as IconLightbulb } from 'assets/icons/lightbulb.svg';\nimport { ReactComponent as IconIntotheblock } from 'assets/icons/intotheblock.svg';\nimport { IntoTheBlock } from 'services/api/intoTheBlock';\nimport { ReactComponent as IconTimes } from 'assets/icons/times.svg';\nimport { useLocalStorage } from 'hooks/useLocalStorage';\nimport { Token } from 'services/observables/tokens';\nimport { sendInsight } from 'services/api/googleTagManager';\nimport { Tooltip } from 'components/tooltip/Tooltip';\nimport { useState } from 'react';\n\nexport interface InsightToken extends IntoTheBlock {\n image: string;\n price: number;\n}\n\ninterface InsightProps {\n fromToken: Token;\n toToken?: Token;\n fromTokenIntoBlock?: IntoTheBlock;\n toTokenIntoBlock?: IntoTheBlock;\n}\n\nexport const Insight = ({\n fromToken,\n toToken,\n fromTokenIntoBlock,\n toTokenIntoBlock,\n}: InsightProps) => {\n const [isExpanded, setIsExpanded] = useLocalStorage(\n 'insightsExpanded',\n false\n );\n const [show, setShow] = useState(isExpanded);\n\n return (\n setShow(isExpanded)}\n className={`hidden 2xl:block widget-large mx-auto overflow-hidden transition-all duration-500 ease-in-out ${\n isExpanded ? 'max-w-full h-[583px] w-[780px]' : 'w-[65px] h-[65px]'\n }`}\n >\n \n
\n {!isExpanded ? (\n {\n sendInsight(!isExpanded);\n setShow(!isExpanded);\n setIsExpanded(!isExpanded);\n }}\n button={}\n content={'Insight'}\n />\n ) : (\n {\n sendInsight(!isExpanded);\n setShow(!isExpanded);\n setIsExpanded(!isExpanded);\n }}\n >\n \n \n )}\n \n Insights\n
\n \n
\n

Powered by

\n \n \n intothe\n block\n \n \n
\n \n \n {show && (\n
\n {fromToken && (\n \n )}\n {toToken && }\n
\n )}\n \n \n );\n};\n","import { useState } from 'react';\n\nexport const useLocalStorage = (key: string, initialValue: T) => {\n const [storedValue, setStoredValue] = useState(() => {\n try {\n const item = window.localStorage.getItem(key);\n return item ? (JSON.parse(item) as T) : initialValue;\n } catch (error) {\n console.error(error);\n return initialValue;\n }\n });\n\n const setValue = (value: T) => {\n try {\n const valueToStore =\n value instanceof Function ? value(storedValue) : value;\n setStoredValue(valueToStore);\n localStorage.setItem(key, JSON.stringify(valueToStore));\n } catch (error) {\n console.error(error);\n }\n };\n return [storedValue, setValue] as [T, (value: T) => void];\n};\n","import axios from 'axios';\n\nconst baseUrl = 'https://api.intotheblock.com';\nconst apiKey = 'i5Ns7HzXr9hIbPMfChi24ydoqQCdLBK2Rix0JwMg';\n\ninterface SignalsRes {\n summary: Summary;\n}\n\nexport interface Summary {\n bearish: number;\n bullish: number;\n neutral: number;\n score: number;\n thresholds: Thresholds;\n}\n\ninterface Thresholds {\n bearish: number;\n bullish: number;\n}\n\ninterface OverviewRes {\n concentration: number;\n inOutOfTheMoney?: InOutOfTheMoney;\n byTimeHeldComposition?: ByTimeHeldComposition;\n}\n\ninterface InOutOfTheMoney {\n in: number;\n between: number;\n out: number;\n}\n\ninterface ByTimeHeldComposition {\n hodler: number;\n cruiser: number;\n trader: number;\n}\n\nexport interface IntoTheBlock {\n summary: Summary;\n inOutOfTheMoney?: InOutOfTheMoney;\n concentration: number;\n byTimeHeldComposition?: ByTimeHeldComposition;\n symbol: string;\n}\n\naxios.defaults.headers.common = {\n 'x-api-key': apiKey,\n};\n\nconst calculateTimeHeld = (timeHeld: ByTimeHeldComposition) => {\n const sumTimeHeld = timeHeld.hodler + timeHeld.cruiser + timeHeld.trader;\n return {\n hodler: timeHeld.hodler / sumTimeHeld,\n cruiser: timeHeld.cruiser / sumTimeHeld,\n trader: timeHeld.trader / sumTimeHeld,\n };\n};\n\nconst calculateInOut = (inOut: InOutOfTheMoney) => {\n const sumInOut = inOut.in + inOut.between + inOut.out;\n return {\n in: inOut.in / sumInOut,\n between: inOut.between / sumInOut,\n out: inOut.out / sumInOut,\n };\n};\n\nexport const intoTheBlockByToken = async (\n symbol: string\n): Promise => {\n try {\n const [signal, overview] = await Promise.all([\n axios.get(`${baseUrl}/${symbol}/signals`),\n axios.get(`${baseUrl}/${symbol}/overview`),\n ]);\n const inOut = overview.data.inOutOfTheMoney;\n const timeHeld = overview.data.byTimeHeldComposition;\n\n const byTimeHeldComposition = timeHeld && calculateTimeHeld(timeHeld);\n const inOutOfTheMoney = inOut && calculateInOut(inOut);\n\n return {\n summary: signal.data.summary,\n symbol,\n concentration: overview.data.concentration,\n ...(inOutOfTheMoney && { inOutOfTheMoney }),\n ...(byTimeHeldComposition && { byTimeHeldComposition }),\n };\n } catch (error) {}\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 SvgSearch(_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: \"100%\",\n height: \"100%\",\n viewBox: \"0 0 13 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 fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M11.9372 11.0089L8.6927 7.86258C9.37273 7.048 9.78008 6.01055 9.78008 4.88084C9.78008 2.26181 7.59073 0.138672 4.89004 0.138672C2.18935 0.138672 0 2.26181 0 4.88084C0 7.49987 2.18935 9.62302 4.89004 9.62302C6.05497 9.62302 7.12477 9.22799 7.96475 8.56852L11.2092 11.7149C11.4108 11.9104 11.7371 11.9107 11.9381 11.7158C12.1405 11.5195 12.1387 11.2044 11.9372 11.0089ZM8.74956 4.8804C8.74956 6.94806 7.02112 8.62423 4.889 8.62423C2.75687 8.62423 1.02844 6.94806 1.02844 4.8804C1.02844 2.81275 2.75687 1.13658 4.889 1.13658C7.02112 1.13658 8.74956 2.81275 8.74956 4.8804Z\",\n fill: \"currentColor\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgSearch);\nexport default __webpack_public_path__ + \"static/media/search.d74675ae.svg\";\nexport { ForwardRef as ReactComponent };","import { Token } from 'services/observables/tokens';\nimport { wethToken, ethToken } from 'services/web3/config';\n\nconst push = (url: string, history: any) => {\n if (url !== window.location.search) history.push(url);\n};\n\nconst pushSwapParams = (\n history: any,\n from: string,\n to?: string,\n limit?: boolean\n) => {\n const url = `${from ? '?from=' + from : ''}${to ? '&to=' + to : ''}${\n limit ? '&limit=true' : ''\n }`;\n if (url.trim() !== '') push(url, history);\n};\n\nexport const replaceLimit = (\n fromToken: Token,\n tokens: Token[],\n limit: boolean,\n history: any,\n toToken?: Token\n) => {\n const toAddress =\n !limit && fromToken.address === wethToken\n ? tokens.find((x) => x.address === ethToken)?.address\n : toToken\n ? toToken.address\n : '';\n\n pushSwapParams(history, fromToken.address, toAddress, limit);\n};\n\nexport const replaceFrom = (\n fromToken: Token,\n tokens: Token[],\n limit: boolean,\n history: any,\n toToken?: Token\n) => {\n const toAddress =\n !limit && fromToken.address === wethToken\n ? tokens.find((x) => x.address === ethToken)?.address\n : toToken\n ? toToken.address\n : '';\n\n pushSwapParams(history, fromToken.address, toAddress, limit);\n};\n\nexport const replaceTo = (\n fromToken: Token,\n limit: boolean,\n history: any,\n toToken?: Token\n) => {\n pushSwapParams(history, fromToken.address, toToken?.address, limit);\n};\n\nexport const switchTokens = (\n fromToken: Token,\n limit: boolean,\n history: any,\n toToken?: Token\n) => {\n if (toToken)\n pushSwapParams(history, toToken.address, fromToken.address, limit);\n};\n","import { useCallback, useEffect, useState } from 'react';\nimport { SwapHeader } from 'elements/swapHeader/SwapHeader';\nimport { SwapMarket } from 'elements/swapMarket/SwapMarket';\nimport { SwapLimit } from 'elements/swapLimit/SwapLimit';\nimport { Token } from 'services/observables/tokens';\nimport { useAppSelector } from 'redux/index';\nimport { ethToken } from 'services/web3/config';\nimport { Insight } from 'elements/swapInsights/Insight';\nimport { IntoTheBlock, intoTheBlockByToken } from 'services/api/intoTheBlock';\nimport { useAsyncEffect } from 'use-async-effect';\nimport { useHistory } from 'react-router-dom';\nimport {\n replaceFrom,\n replaceLimit,\n replaceTo,\n switchTokens,\n} from 'utils/router';\n\ninterface SwapWidgetProps {\n isLimit: boolean;\n setIsLimit: Function;\n from: string | null;\n to: string | null;\n limit: string | null;\n}\n\nexport const SwapWidget = ({\n isLimit,\n setIsLimit,\n from,\n to,\n limit,\n}: SwapWidgetProps) => {\n const tokens = useAppSelector((state) => state.bancor.tokens);\n\n const ethOrFirst = useCallback(() => {\n const eth = tokens.find((x) => x.address === ethToken);\n return eth ? eth : tokens[0];\n }, [tokens]);\n\n const [fromToken, setFromToken] = useState(ethOrFirst());\n const [toToken, setToToken] = useState();\n\n const [fromTokenITB, setFromTokenITB] = useState();\n const [toTokenITB, setToTokenITB] = useState();\n const history = useHistory();\n\n useEffect(() => {\n if (tokens) {\n if (from) {\n const fromToken = tokens.find((x) => x.address === from);\n if (fromToken) setFromToken(fromToken);\n else setFromToken(ethOrFirst());\n } else setFromToken(ethOrFirst());\n\n if (to) {\n const toToken = tokens.find((x) => x.address === to);\n if (toToken) setToToken(toToken);\n else setToToken(undefined);\n } else setToToken(undefined);\n\n setIsLimit(limit);\n }\n }, [from, to, limit, tokens, setIsLimit, ethOrFirst]);\n\n useAsyncEffect(\n async (isMounted) => {\n if (fromToken) {\n const data = await intoTheBlockByToken(fromToken.symbol);\n if (isMounted()) {\n setFromTokenITB(data);\n }\n }\n },\n [fromToken]\n );\n\n useAsyncEffect(\n async (isMounted) => {\n if (toToken) {\n const data = await intoTheBlockByToken(toToken.symbol);\n if (isMounted()) {\n setToTokenITB(data);\n }\n }\n },\n [toToken]\n );\n\n return (\n
\n
\n
\n
\n \n replaceLimit(fromToken, tokens, limit, history, toToken)\n }\n />\n
\n {isLimit ? (\n \n replaceFrom(from, tokens, true, history, toToken)\n }\n toToken={toToken}\n setToToken={(to: Token) =>\n replaceTo(fromToken, true, history, to)\n }\n switchTokens={() =>\n switchTokens(fromToken, true, history, toToken)\n }\n />\n ) : (\n \n replaceFrom(from, tokens, false, history, toToken)\n }\n toToken={toToken}\n setToToken={(to: Token) =>\n replaceTo(fromToken, false, history, to)\n }\n switchTokens={() =>\n switchTokens(fromToken, false, history, toToken)\n }\n />\n )}\n
\n {isLimit ? (\n
\n Limit orders are powered by KeeperDAO\n
\n ) : (\n ''\n )}\n
\n \n
\n
\n );\n};\n","var _path, _path2, _path3;\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 SvgInfo(_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: \"100%\",\n height: \"100%\",\n viewBox: \"0 0 10 11\",\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.5 5.5C9.5 7.98528 7.48528 10 5 10C2.51472 10 0.5 7.98528 0.5 5.5C0.5 3.01472 2.51472 1 5 1C7.48528 1 9.5 3.01472 9.5 5.5Z\",\n stroke: \"currentColor\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5 8L5 5\",\n stroke: \"currentColor\",\n strokeLinecap: \"round\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M5 3C4.72386 3 4.5 3.22386 4.5 3.5C4.5 3.77614 4.72386 4 5 4C5.27614 4 5.5 3.77614 5.5 3.5C5.5 3.22386 5.27614 3 5 3Z\",\n fill: \"currentColor\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgInfo);\nexport default __webpack_public_path__ + \"static/media/info.c1cd5c10.svg\";\nexport { ForwardRef as ReactComponent };","import { ReactComponent as IconSearch } from 'assets/icons/search.svg';\nimport { ReactComponent as IconClose } from 'assets/icons/times.svg';\n\ninterface Props {\n value: string;\n setValue: (value: string) => void;\n className?: string;\n}\n\nconst defaultClassName =\n 'block w-full border border-grey-2 pl-[38px] pr-[38px] dark:bg-blue-4 dark:border-grey-4 focus:outline-none focus:border-primary';\n\nexport const SearchInput = ({ value, setValue, className }: Props) => {\n return (\n
\n \n {value.length > 0 && (\n setValue('')}\n className=\"absolute h-full right-0 mr-14 text-grey-3 hover:text-error\"\n >\n \n \n )}\n\n setValue(e.target.value)}\n placeholder=\"Search\"\n className={`${defaultClassName} ${className}`}\n />\n
\n );\n};\n","import { UsePaginationInstanceProps } from 'react-table';\nimport { ReactComponent as IconChevronDown } from 'assets/icons/chevronDown.svg';\n\ninterface TablePaginationProps\n extends Omit, 'page'> {\n pageIndex: number;\n pageSize: number;\n}\n\nexport const TablePagination = ({\n gotoPage,\n previousPage,\n canPreviousPage,\n nextPage,\n canNextPage,\n pageCount,\n pageOptions,\n setPageSize,\n pageIndex,\n pageSize,\n}: TablePaginationProps) => {\n const showResults = [10, 20, 30, 40, 50];\n return (\n
\n
\n Show\n
\n {\n setPageSize(Number(e.target.value));\n }}\n >\n {showResults.map((pageSize) => (\n \n ))}\n \n
\n Results\n
\n
\n \n previousPage()}\n disabled={!canPreviousPage}\n className=\"px-5 py-10\"\n >\n \n \n
\n {\n const page = e.target.value ? Number(e.target.value) - 1 : 0;\n gotoPage(page);\n }}\n style={{ width: '20px' }}\n />\n / {pageOptions.length}\n
\n nextPage()}\n disabled={!canNextPage}\n className=\"px-5 py-10\"\n >\n \n \n \n
\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 SvgProtected(_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: \"100%\",\n height: \"100%\",\n viewBox: \"0 0 18 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: \"M17.9747 4.06142C17.9777 4.10626 17.9806 4.15111 17.9821 4.19596C18.1137 7.22476 17.5203 10.0925 16.1556 12.7776C14.5442 15.9488 12.1811 18.3412 9.09743 19.9702C9.03166 20.0058 8.98084 20.012 8.91209 19.9748C4.40696 17.5345 1.56098 13.75 0.384627 8.62767C0.0513017 7.17831 -0.0473508 5.70262 0.0199123 4.21454C0.021407 4.16499 0.0243965 4.11389 0.0273859 4.06279C0.0393438 3.86304 0.190312 3.70355 0.383133 3.68496C3.53403 3.37992 6.31723 2.1845 8.75066 0.0940694C8.89714 -0.0313565 9.1064 -0.0313565 9.25139 0.0940694C11.6773 2.1814 14.465 3.37992 17.6189 3.68496C17.8102 3.70355 17.9627 3.86149 17.9747 4.06124L17.9747 4.06142ZM8.63332 11.5392C8.62257 11.5502 8.61147 11.5615 8.59994 11.5735C8.57049 11.5446 8.54569 11.5191 8.52245 11.4918L6.46737 9.26517C6.43792 9.23283 6.40848 9.20219 6.37748 9.17325C6.03342 8.86512 5.51423 9.05578 5.41659 9.53074C5.36544 9.77417 5.43673 9.98186 5.59947 10.1572C6.44567 11.0714 7.28878 11.9855 8.13189 12.8997C8.42791 13.2214 8.77042 13.2214 9.06644 12.9014C10.3536 11.508 11.6407 10.1129 12.9278 8.71786L12.9302 8.71532C13 8.63964 13.07 8.56426 13.1399 8.48892C13.3028 8.31344 13.4656 8.13813 13.626 7.95948C13.9376 7.6122 13.8136 7.03681 13.392 6.89041C13.1456 6.80529 12.9333 6.87849 12.7488 7.07937C11.665 8.25759 10.5792 9.43362 9.49374 10.6092C9.22418 10.9012 8.95465 11.1931 8.68518 11.485C8.66863 11.5032 8.65147 11.5207 8.63332 11.5392Z\",\n fill: \"currentColor\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgProtected);\nexport default __webpack_public_path__ + \"static/media/protected.8f209852.svg\";\nexport { ForwardRef as ReactComponent };","import { HeaderGroup } from 'react-table';\nimport { ReactComponent as IconChevronDown } from 'assets/icons/chevronDown.svg';\nimport { ReactComponent as IconInfo } from 'assets/icons/info.svg';\nimport { TableColumn } from 'components/table/DataTable';\nimport { Tooltip } from 'components/tooltip/Tooltip';\n\ninterface TableHeaderProps {\n headerGroups: HeaderGroup[];\n columns: TableColumn[];\n}\n\nexport const TableHeader = ({\n headerGroups,\n columns,\n}: TableHeaderProps) => {\n const getColumn: (hg: HeaderGroup) => TableColumn = (() => {\n const idToColumn = columns.reduce(\n (map: Record>, col) => {\n map[col.id as string] = col;\n return map;\n },\n {}\n );\n return (hg: HeaderGroup) =>\n idToColumn[(hg.getHeaderProps().key as string).replace('header_', '')];\n })();\n\n const getStyleAttr = (column: HeaderGroup) => {\n const style = column.getHeaderProps(column.getSortByToggleProps()).style;\n const { width, minWidth, maxWidth } = getColumn(column);\n return { width, maxWidth, minWidth, ...style };\n };\n\n const getTooltip = (column: HeaderGroup) => {\n const tooltip = getColumn(column).tooltip;\n if (tooltip)\n return (\n \n \n }\n content={tooltip}\n />\n \n );\n };\n\n const getSortBy = (isSorted: boolean, isSortedDesc?: boolean) => {\n return (\n \n {isSorted && (\n \n )}\n \n );\n };\n\n return (\n \n {headerGroups.map((headerGroup) => (\n \n {headerGroup.headers.map((column) => (\n \n \n {column.render('Header')}\n {getTooltip(column)}\n {getSortBy(column.isSorted, column.isSortedDesc)}\n \n \n ))}\n \n ))}\n \n );\n};\n","import { UsePaginationInstanceProps, UseTableInstanceProps } from 'react-table';\n\ninterface TableBodyProps {\n getTableBodyProps: UseTableInstanceProps['getTableBodyProps'];\n prepareRow: UseTableInstanceProps['prepareRow'];\n page: UsePaginationInstanceProps['page'];\n}\n\nexport const TableBody = ({\n getTableBodyProps,\n prepareRow,\n page,\n}: TableBodyProps) => {\n return (\n \n {page.map((row) => {\n prepareRow(row);\n return (\n \n {row.cells.map((cell) => {\n return (\n \n {cell.render('Cell')}\n \n );\n })}\n \n );\n })}\n \n );\n};\n","import {\n Column,\n SortingRule,\n useExpanded,\n usePagination,\n useSortBy,\n useTable,\n} from 'react-table';\nimport { TablePagination } from 'components/table/TablePagination';\nimport { TableHeader } from 'components/table/TableHeader';\nimport { TableBody } from 'components/table/TableBody';\nimport { classNameGenerator } from 'utils/pureFunctions';\nimport { useEffect } from 'react';\n\nexport type TableColumn = Column & {\n tooltip?: string;\n headerClassName?: string;\n};\n\ninterface TableProps {\n columns: TableColumn[];\n data: D[];\n defaultSort?: SortingRule;\n isLoading?: boolean;\n stickyColumn?: boolean;\n search?: string;\n}\n\nexport const DataTable = ({\n columns,\n data,\n defaultSort,\n isLoading,\n stickyColumn,\n search,\n}: TableProps) => {\n const {\n getTableProps,\n getTableBodyProps,\n headerGroups,\n prepareRow,\n page,\n canPreviousPage,\n canNextPage,\n pageOptions,\n pageCount,\n gotoPage,\n nextPage,\n previousPage,\n setPageSize,\n state: { pageIndex, pageSize },\n } = useTable(\n {\n columns,\n data,\n initialState: {\n pageIndex: 0,\n sortBy: defaultSort ? [defaultSort] : [],\n },\n autoResetSortBy: false,\n disableSortRemove: true,\n autoResetPage: false,\n autoResetExpanded: false,\n },\n useSortBy,\n useExpanded,\n usePagination\n );\n\n useEffect(() => {\n gotoPage(0);\n }, [gotoPage, search]);\n\n return (\n <>\n \n \n headerGroups={headerGroups} columns={columns} />\n {!isLoading && (\n \n getTableBodyProps={getTableBodyProps}\n prepareRow={prepareRow}\n page={page}\n />\n )}\n
\n \n {isLoading && (\n
\n {[...Array(3)].map((_, index) => (\n
\n ))}\n \n )}\n\n \n \n );\n};\n","import { ReactComponent as IconTimes } from 'assets/icons/times.svg';\nimport { withdrawWeth } from 'services/web3/swap/limit';\nimport { useWeb3React } from '@web3-react/core';\nimport { useInterval } from 'hooks/useInterval';\nimport { cancelOrders, getOrders, LimitOrder } from 'services/api/keeperDao';\nimport { useCallback, useEffect, useMemo, useState } from 'react';\nimport { Token } from 'services/observables/tokens';\nimport { useDispatch } from 'react-redux';\nimport { addNotification } from 'redux/notification/notification';\nimport { useAppSelector } from 'redux/index';\nimport { wethToken } from 'services/web3/config';\nimport { prettifyNumber } from 'utils/helperFunctions';\nimport { Image } from 'components/image/Image';\nimport { SearchInput } from 'components/searchInput/SearchInput';\nimport { DataTable, TableColumn } from 'components/table/DataTable';\nimport { SortingRule } from 'react-table';\nimport dayjs from 'dayjs';\n\nexport const SwapLimitTable = () => {\n const { account } = useWeb3React();\n const [orders, setOrders] = useState([]);\n const [weth, setWeth] = useState();\n const [search, setSearch] = useState('');\n const dispatch = useDispatch();\n const tokens = useAppSelector((state) => state.bancor.tokens);\n\n const refreshOrders = useCallback(async () => {\n if (account) setOrders(await getOrders(account));\n }, [account]);\n\n useEffect(() => {\n const weth = tokens.find((x) => x.address === wethToken);\n if (weth) setWeth(weth);\n }, [tokens]);\n\n useInterval(() => {\n refreshOrders();\n }, 60000);\n\n useEffect(() => {\n refreshOrders();\n }, [refreshOrders]);\n\n const defaultSort: SortingRule = { id: 'expiration', desc: true };\n\n const data = useMemo(() => {\n return orders.filter(\n (t) =>\n t.getToken.symbol.toLowerCase().includes(search.toLowerCase()) ||\n t.payToken.symbol.toLowerCase().includes(search.toLowerCase())\n );\n }, [orders, search]);\n\n const handleWithdrawWeth = useCallback(async () => {\n weth &&\n weth.balance &&\n dispatch(addNotification(await withdrawWeth(weth.balance)));\n }, [dispatch, weth]);\n\n const handleCancelOrders = useCallback(async () => {\n dispatch(\n addNotification(await cancelOrders(orders.map((x) => x.orderRes)))\n );\n }, [dispatch, orders]);\n\n const columns = useMemo[]>(\n () => [\n {\n id: 'expiration',\n Header: 'Expiration',\n accessor: 'expiration',\n Cell: (expiration) => (\n <>\n \n {dayjs.unix(expiration.value).format('DD/MM/YYYY')}\n \n {dayjs.unix(expiration.value).format('h:mm:ss A')}\n \n ),\n minWidth: 240,\n sortDescFirst: true,\n },\n {\n id: 'payAmount',\n Header: 'You pay',\n accessor: 'payAmount',\n Cell: (payAmount) => {\n const payToken = payAmount.row.original.payToken;\n return (\n
\n \n {`${payToken.symbol} ${payAmount.value}`}\n
\n );\n },\n minWidth: 200,\n sortDescFirst: true,\n },\n {\n id: 'getAmount',\n Header: 'You get',\n accessor: 'getAmount',\n Cell: (getAmount) => {\n const getToken = getAmount.row.original.getToken;\n return (\n
\n \n {`${getToken.symbol} ${getAmount.value}`}\n
\n );\n },\n minWidth: 200,\n sortDescFirst: true,\n },\n {\n id: 'rate',\n Header: 'Rate',\n accessor: 'rate',\n Cell: (rate) => rate.value,\n minWidth: 200,\n sortDescFirst: true,\n },\n {\n id: 'filled',\n Header: 'Filled',\n accessor: 'filled',\n Cell: (filled) => prettifyNumber(filled.value ?? 0) + '%',\n minWidth: 70,\n sortDescFirst: true,\n },\n {\n id: 'actions',\n Header: '',\n accessor: 'hash',\n Cell: (cellData) => {\n return (\n \n dispatch(\n addNotification(\n await cancelOrders([cellData.row.original.orderRes])\n )\n )\n }\n >\n \n \n );\n },\n width: 50,\n minWidth: 50,\n disableSortBy: true,\n },\n ],\n [dispatch]\n );\n\n if (!account || orders.length === 0) return null;\n\n return (\n
\n
\n

Active Orders

\n
\n \n handleCancelOrders()}\n >\n Cancel All\n \n {weth && weth.balance && (\n handleWithdrawWeth()}\n >\n Withdraw {prettifyNumber(weth.balance)} WETH\n \n )}\n
\n
\n\n \n data={data}\n columns={columns}\n defaultSort={defaultSort}\n isLoading={!tokens.length}\n stickyColumn\n search={search}\n />\n
\n );\n};\n","import { useLocation } from 'react-router-dom';\n\nexport const useQuery = () => {\n return new URLSearchParams(useLocation().search);\n};\n","import { SwapWidget } from 'elements/swapWidget/SwapWidget';\nimport { useState } from 'react';\nimport { SwapLimitTable } from 'elements/swapLimit/SwapLimitTable';\nimport { useQuery } from 'hooks/useQuery';\n\nexport const Swap = () => {\n const [isLimit, setIsLimit] = useState(false);\n const query = useQuery();\n\n return (\n
\n \n {isLimit ? : ''}\n
\n );\n};\n","export const NotFound = () => {\n return

Not Found

;\n};\n","export const UnsupportedNetwork = () => {\n return

UnsupportedNetwork

;\n};\n","import { useCallback, useEffect, useState } from 'react';\nimport { useInterval } from 'hooks/useInterval';\n\ninterface TickerProps {\n id: string;\n children: JSX.Element | JSX.Element[];\n speedMs?: number;\n}\n\nexport const Ticker = ({ id, children, speedMs = 60 }: TickerProps) => {\n const [pause, setPause] = useState(false);\n const [pos, setPos] = useState(0);\n const [scrollBack, setScrollBack] = useState(false);\n const [isMomentumScrolling, setIsMomentumScrolling] = useState(false);\n\n useInterval(async () => {\n const element = document.getElementById(`${id}`);\n if (element && !pause) {\n const scrollWidth = element.scrollWidth;\n const clientWidth = element.clientWidth;\n const scrollPosition = element.scrollLeft;\n const scrollTotal = scrollWidth - clientWidth;\n const nextPosition = scrollBack ? pos - 1 : pos + 1;\n\n if (scrollTotal === scrollPosition) setScrollBack(true);\n if (scrollPosition === 0) setScrollBack(false);\n\n element.scrollLeft = nextPosition;\n setPos(nextPosition);\n }\n }, speedMs);\n\n const handleScroll = useCallback((event: Event) => {\n const target = event.target as HTMLDivElement;\n if (target) setPos(target.scrollLeft);\n }, []);\n\n useEffect(() => {\n const element = document.getElementById(`${id}`);\n element && element.addEventListener('scroll', handleScroll);\n return () => {\n element && element.removeEventListener('scroll', handleScroll);\n };\n }, [id, handleScroll]);\n\n const unpauseOnMomentumEnd = () => {\n const element = document.getElementById(`${id}`);\n if (!element) return;\n const scrollStart = element.scrollLeft;\n setTimeout(() => {\n const scrollPos = element.scrollLeft;\n if (scrollStart !== scrollPos) unpauseOnMomentumEnd();\n else {\n setIsMomentumScrolling(false);\n setPause(false);\n }\n }, 250);\n };\n\n return (\n setPause(true)}\n onMouseLeave={() => setPause(false)}\n onTouchStart={() => setPause(true)}\n onTouchEnd={() => {\n if (!isMomentumScrolling) {\n setIsMomentumScrolling(true);\n unpauseOnMomentumEnd();\n }\n }}\n className=\"overflow-x-scroll pb-15 px-10 hide-scrollbar\"\n >\n {children}\n \n );\n};\n","import { Ticker } from 'components/ticker/Ticker';\nimport { useAppSelector } from 'redux/index';\nimport { Token } from 'services/observables/tokens';\nimport { prettifyNumber } from 'utils/helperFunctions';\nimport { orderBy } from 'lodash';\n\ninterface Props {\n setSearch: Function;\n}\n\nexport const TopMovers = ({ setSearch }: Props) => {\n const tokens = useAppSelector((state) => state.bancor.tokens);\n const topTokens = orderBy(tokens, 'price_change_24', 'desc').slice(0, 20);\n const handleClick = (token: Token) => {\n setSearch(token.symbol);\n };\n\n return (\n
\n

Top Movers

\n
\n \n
\n {tokens.length\n ? topTokens.map((token) => {\n const changePositive = Number(token.price_change_24) > 0;\n return (\n handleClick(token)}\n key={token.address}\n className=\"flex items-center justify-center min-w-[150px] h-[75px] rounded-[6px] bg-blue-0 dark:bg-blue-2 shadow-ticker hover:shadow-content dark:shadow-none transition-all duration-300\"\n >\n \n \n
\n
{token.symbol}
\n
{prettifyNumber(token.usdPrice ?? 0, true)}
\n \n {`${changePositive ? '+' : ''}${\n token.price_change_24\n }%`}\n
\n
\n \n \n );\n })\n : [...Array(20)].map((_, index) => (\n \n ))}\n \n
\n
\n );\n};\n","import { createRef, useEffect } from 'react';\nimport {\n ChartOptions,\n createChart,\n DeepPartial,\n LineData,\n LineStyleOptions,\n SeriesOptionsCommon,\n} from 'lightweight-charts';\n\nconst seriesOptDefault: DeepPartial = {\n lineWidth: 1,\n crosshairMarkerVisible: false,\n priceLineVisible: false,\n};\n\nconst chartOptDefault: DeepPartial = {\n layout: {\n backgroundColor: 'transparent',\n },\n crosshair: {\n vertLine: {\n visible: false,\n },\n horzLine: {\n visible: false,\n },\n },\n leftPriceScale: {\n visible: false,\n borderVisible: false,\n },\n rightPriceScale: {\n visible: false,\n borderVisible: false,\n },\n timeScale: {\n visible: false,\n borderVisible: false,\n },\n grid: {\n horzLines: {\n visible: false,\n },\n vertLines: {\n visible: false,\n },\n },\n handleScroll: false,\n handleScale: false,\n};\n\nconst sizeDefault = { width: 160, height: 50 };\n\ninterface LineChartSimpleProps {\n data: LineData[];\n seriesOptions?: DeepPartial;\n chartOptions?: DeepPartial;\n color?: string;\n size?: { width: number; height: number };\n}\n\nexport const LineChartSimple = ({\n data,\n seriesOptions = seriesOptDefault,\n chartOptions = chartOptDefault,\n color,\n size = sizeDefault,\n}: LineChartSimpleProps) => {\n const chartDiv = createRef();\n\n useEffect(() => {\n if (!chartDiv.current) return;\n const chart = createChart(chartDiv.current, size);\n chart.applyOptions(chartOptions);\n chart.timeScale().fitContent();\n\n const lineSeries = chart.addLineSeries({\n ...seriesOptions,\n color,\n });\n lineSeries.setData(data);\n return () => chart.remove();\n }, [data, seriesOptions, chartOptions, size, chartDiv, color]);\n\n return
;\n};\n","var _circle, _mask, _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 SvgClock(_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: \"100%\",\n height: \"100%\",\n viewBox: \"0 0 10 10\",\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: 5,\n cy: 5,\n r: 4.5,\n stroke: \"currentColor\"\n })), _mask || (_mask = /*#__PURE__*/React.createElement(\"mask\", {\n id: \"path-2-inside-1\",\n fill: \"white\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.64502 6.58258C7.65972 6.57117 7.67423 6.55959 7.68681 6.54623C7.69012 6.54276 7.69242 6.53845 7.69554 6.53489C7.70766 6.52094 7.71951 6.50674 7.72916 6.49092C7.83285 6.30828 7.76571 6.0886 7.57549 5.99001C7.57513 5.98984 7.57476 5.98967 7.57439 5.9895L5.28175 4.76629C5.25273 4.75073 5.23491 4.72232 5.23491 4.69137V2.59376C5.23491 2.38938 5.06095 2.22314 4.84703 2.22314C4.62136 2.22314 4.44446 2.38592 4.44446 2.59376V4.94674C4.44446 5.09691 4.53631 5.22907 4.6784 5.28353L7.1867 6.61937C7.28075 6.66807 7.39529 6.68059 7.50018 6.6537C7.54968 6.64093 7.59478 6.62013 7.63354 6.59256C7.63777 6.5896 7.64107 6.58571 7.64502 6.58258Z\"\n }))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.64502 6.58258L7.03155 5.79281L7.02408 5.79873L7.64502 6.58258ZM7.68681 6.54623L6.96316 5.85603L6.95886 5.8606L7.68681 6.54623ZM7.69554 6.53489L8.44652 7.19525L8.45036 7.19082L7.69554 6.53489ZM7.72916 6.49092L8.58289 7.01163L8.59104 6.99827L8.59877 6.98465L7.72916 6.49092ZM7.57549 5.99001L8.03567 5.10218L8.01489 5.09141L7.99363 5.08162L7.57549 5.99001ZM7.57439 5.9895L7.10366 6.87178L7.12958 6.8856L7.15625 6.89788L7.57439 5.9895ZM5.28175 4.76629L4.8093 5.64765L4.81102 5.64857L5.28175 4.76629ZM4.6784 5.28353L5.14846 4.4009L5.09394 4.37186L5.03626 4.34975L4.6784 5.28353ZM7.1867 6.61937L6.7166 7.50206L6.72685 7.50737L7.1867 6.61937ZM7.50018 6.6537L7.7485 7.62238L7.74991 7.62201L7.50018 6.6537ZM7.63354 6.59256L7.05981 5.77349L7.05398 5.77764L7.63354 6.59256ZM8.25847 7.37232C8.27245 7.36146 8.3432 7.30784 8.41477 7.23185L6.95886 5.8606C6.98469 5.83317 7.00653 5.81387 7.0184 5.80376C7.02943 5.79436 7.03699 5.78864 7.03158 5.79285L8.25847 7.37232ZM8.41045 7.2364C8.44238 7.20292 8.46631 7.17328 8.48162 7.15338C8.49616 7.13449 8.50719 7.11872 8.50872 7.11656C8.51116 7.11309 8.50877 7.11648 8.50817 7.11733C8.50663 7.11951 8.50303 7.12457 8.49827 7.13103C8.48904 7.14355 8.47119 7.16716 8.4465 7.19524L6.94458 5.87455C6.93118 5.88978 6.91983 5.9036 6.91063 5.91522C6.90145 5.92679 6.89392 5.93681 6.88838 5.94432C6.88291 5.95174 6.87862 5.95777 6.87639 5.96092C6.87524 5.96254 6.87431 5.96386 6.87394 5.96439C6.8732 5.96544 6.87375 5.96465 6.87377 5.96462C6.8742 5.96402 6.87683 5.96028 6.88036 5.95541C6.88402 5.95036 6.88961 5.94275 6.89665 5.9336C6.9105 5.9156 6.9329 5.88779 6.96318 5.85605L8.41045 7.2364ZM8.45036 7.19082C8.46598 7.17285 8.52615 7.10466 8.58289 7.01163L6.87542 5.97022C6.89579 5.93682 6.9142 5.91211 6.92535 5.89784C6.93589 5.88435 6.94343 5.87585 6.94072 5.87896L8.45036 7.19082ZM8.59877 6.98465C8.99125 6.29337 8.7137 5.45362 8.03567 5.10218L7.11532 6.87783C6.97832 6.80683 6.85961 6.6755 6.80642 6.50192C6.75294 6.32737 6.77645 6.14355 6.85954 5.99719L8.59877 6.98465ZM7.99363 5.08162C7.9936 5.08161 7.99359 5.0816 7.99356 5.08159C7.99355 5.08159 7.99353 5.08158 7.99353 5.08157C7.99348 5.08155 7.99354 5.08158 7.99349 5.08156C7.99338 5.08151 7.99347 5.08155 7.99335 5.0815C7.99323 5.08144 7.99334 5.08149 7.99322 5.08143C7.99317 5.08141 7.99319 5.08142 7.99315 5.0814C7.99314 5.0814 7.99313 5.08139 7.99313 5.08139C7.99312 5.08139 7.99312 5.08139 7.99311 5.08138C7.9931 5.08138 7.99311 5.08138 7.99309 5.08138C7.99309 5.08137 7.99308 5.08137 7.99308 5.08137C7.99279 5.08123 7.99309 5.08137 7.9928 5.08124C7.99274 5.08121 7.9928 5.08124 7.99273 5.08121C7.99271 5.0812 7.99268 5.08119 7.99266 5.08118C7.99239 5.08105 7.9928 5.08124 7.99253 5.08111L7.15625 6.89788C7.15678 6.89813 7.156 6.89777 7.15653 6.89801C7.15656 6.89802 7.15664 6.89806 7.15667 6.89807C7.15681 6.89814 7.1566 6.89804 7.15674 6.89811C7.15674 6.89811 7.15675 6.89811 7.15675 6.89811C7.15676 6.89812 7.15676 6.89812 7.15677 6.89812C7.15679 6.89813 7.15677 6.89812 7.15679 6.89813C7.1568 6.89814 7.15679 6.89813 7.15681 6.89814C7.1571 6.89827 7.15679 6.89813 7.15708 6.89826C7.15722 6.89833 7.15708 6.89826 7.15722 6.89833C7.15735 6.89839 7.15723 6.89833 7.15736 6.89839L7.99363 5.08162ZM8.04512 5.10722L5.75248 3.88401L4.81102 5.64857L7.10366 6.87178L8.04512 5.10722ZM5.75421 3.88494C6.02244 4.02872 6.23491 4.32351 6.23491 4.69137H4.23491C4.23491 5.12113 4.48301 5.47274 4.8093 5.64765L5.75421 3.88494ZM6.23491 4.69137V2.59376H4.23491V4.69137H6.23491ZM6.23491 2.59376C6.23491 1.79472 5.56988 1.22314 4.84703 1.22314V3.22314C4.55202 3.22314 4.23491 2.98405 4.23491 2.59376H6.23491ZM4.84703 1.22314C4.14871 1.22314 3.44446 1.75723 3.44446 2.59376H5.44446C5.44446 3.01461 5.09401 3.22314 4.84703 3.22314V1.22314ZM3.44446 2.59376V4.94674H5.44446V2.59376H3.44446ZM3.44446 4.94674C3.44446 5.51879 3.79888 6.01738 4.32054 6.2173L5.03626 4.34975C5.27373 4.44077 5.44446 4.67503 5.44446 4.94674H3.44446ZM4.20834 6.16616L6.71663 7.502L7.65676 5.73673L5.14846 4.4009L4.20834 6.16616ZM6.72685 7.50737C7.04461 7.67192 7.41181 7.70869 7.7485 7.62237L7.25185 5.68502C7.37876 5.65249 7.51689 5.66423 7.64654 5.73137L6.72685 7.50737ZM7.74991 7.62201C7.91132 7.58038 8.06938 7.50971 8.2131 7.40749L7.05398 5.77764C7.12018 5.73055 7.18805 5.70147 7.25044 5.68538L7.74991 7.62201ZM8.20726 7.41161C8.24209 7.38722 8.26951 7.36478 8.2882 7.34872C8.30615 7.3333 8.31987 7.32042 8.32345 7.31706C8.32452 7.31605 8.32544 7.31519 8.32565 7.31499C8.32608 7.31458 8.3257 7.31495 8.32526 7.31535C8.32437 7.31619 8.32106 7.3193 8.31663 7.32334C8.30803 7.3312 8.29007 7.34734 8.26596 7.36644L7.02408 5.79873C6.99799 5.81939 6.97815 5.83719 6.96768 5.84675C6.96232 5.85164 6.95809 5.85562 6.95627 5.85732C6.95538 5.85816 6.95453 5.85896 6.9545 5.85898C6.95425 5.85922 6.95471 5.85879 6.95532 5.85821C6.95705 5.85659 6.96891 5.84543 6.98492 5.83167C7.00168 5.81727 7.0271 5.79643 7.05982 5.77351L8.20726 7.41161Z\",\n fill: \"currentColor\",\n mask: \"url(#path-2-inside-1)\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgClock);\nexport default __webpack_public_path__ + \"static/media/clock.b7f9437a.svg\";\nexport { ForwardRef as ReactComponent };","import { Image } from 'components/image/Image';\nimport { Token } from 'services/observables/tokens';\nimport { useAppSelector } from 'redux/index';\nimport { LineChartSimple } from 'components/charts/LineChartSimple';\nimport { prettifyNumber } from 'utils/helperFunctions';\nimport { ReactComponent as IconProtected } from 'assets/icons/protected.svg';\nimport { useMemo } from 'react';\nimport { SortingRule } from 'react-table';\nimport { DataTable, TableColumn } from 'components/table/DataTable';\nimport { NavLink } from 'react-router-dom';\nimport { wethToken } from 'services/web3/config';\nimport { SearchInput } from 'components/searchInput/SearchInput';\n\ninterface Props {\n searchInput: string;\n setSearchInput: (value: string) => void;\n}\n\nexport const TokenTable = ({ searchInput, setSearchInput }: Props) => {\n const tokens = useAppSelector((state) => state.bancor.tokens);\n\n const data = useMemo(() => {\n return tokens.filter(\n (t) =>\n t.address !== wethToken &&\n (t.symbol.toLowerCase().includes(searchInput.toLowerCase()) ||\n t.name.toLowerCase().includes(searchInput.toLowerCase()))\n );\n }, [tokens, searchInput]);\n\n const CellName = (token: Token) => {\n return (\n
\n
\n {token.isWhitelisted && (\n \n )}\n
\n\n \n

{token.symbol}

\n
\n );\n };\n\n const columns = useMemo[]>(\n () => [\n {\n id: 'name',\n Header: () => (\n \n Name\n \n ),\n accessor: 'symbol',\n Cell: (cellData) => CellName(cellData.row.original),\n minWidth: 180,\n sortDescFirst: true,\n },\n {\n id: 'price',\n Header: 'Price',\n accessor: 'usdPrice',\n Cell: (cellData) => prettifyNumber(cellData.value ?? 0, true),\n minWidth: 110,\n sortDescFirst: true,\n },\n {\n id: 'c24h',\n Header: '24h Change',\n accessor: 'price_change_24',\n Cell: (cellData) => {\n const changePositive = Number(cellData.value) > 0;\n return (\n \n {`${changePositive ? '+' : ''}${cellData.value}%`}\n \n );\n },\n minWidth: 110,\n sortDescFirst: true,\n },\n {\n id: 'v24h',\n Header: '24h Volume',\n accessor: 'usd_volume_24',\n Cell: (cellData) => prettifyNumber(cellData.value ?? 0, true),\n minWidth: 120,\n sortDescFirst: true,\n },\n {\n id: 'liquidity',\n Header: 'Liquidity',\n accessor: 'liquidity',\n Cell: (cellData) => prettifyNumber(cellData.value ?? 0, true),\n tooltip: 'The value of tokens staked in the pool',\n minWidth: 150,\n sortDescFirst: true,\n },\n {\n id: 'price7d',\n Header: 'Last 7 Days',\n accessor: 'price_history_7d',\n Cell: (cellData) => {\n const value = cellData.value;\n\n if (value.length === 0) return
N/A
;\n\n const changePositive =\n value[value.length - 1].value >= value[0].value;\n return (\n \n );\n },\n minWidth: 170,\n disableSortBy: true,\n },\n {\n id: 'actions',\n Header: '',\n accessor: 'symbol',\n Cell: (cellData) => {\n return (\n \n Trade\n \n );\n },\n width: 50,\n minWidth: 50,\n disableSortBy: true,\n },\n ],\n []\n );\n\n const defaultSort: SortingRule = { id: 'liquidity', desc: true };\n\n return (\n
\n
\n

Tokens

\n \n
\n\n \n data={data}\n columns={columns}\n defaultSort={defaultSort}\n isLoading={!tokens.length}\n stickyColumn\n search={searchInput}\n />\n
\n );\n};\n","import { TopMovers } from 'elements/tokens/TopMovers';\nimport { TokenTable } from 'elements/tokens/TokenTable';\nimport { useState } from 'react';\n\nexport const Tokens = () => {\n const [searchInput, setSearchInput] = useState('');\n\n return (\n
\n \n \n
\n );\n};\n","import { Ticker } from 'components/ticker/Ticker';\nimport { Image } from 'components/image/Image';\nimport { useAppSelector } from 'redux/index';\nimport { getTopPools, TopPool } from 'redux/bancor/pool';\n\ninterface Props {\n setSearch: Function;\n}\n\nexport const TopPools = ({ setSearch }: Props) => {\n const pools = useAppSelector(getTopPools);\n\n const handleClick = (pool: TopPool) => {\n if (pool.tknSymbol === 'BNT') {\n setSearch(pool.poolName);\n } else {\n setSearch(pool.tknSymbol);\n }\n };\n\n return (\n
\n

Top Earners

\n
\n \n
\n {pools.length\n ? pools.map((pool, index) => {\n return (\n handleClick(pool)}\n key={`pool-table-key-${index}`}\n className=\"flex items-center justify-center min-w-[170px] h-[75px] rounded-[6px] bg-blue-0 dark:bg-blue-2 shadow-ticker hover:shadow-content dark:shadow-none transition-all duration-300\"\n >\n
\n \n
\n
\n
{pool.tknSymbol}
\n
\n \n {pool.apr.toFixed(0)}%\n {' '}\n APR\n
\n
\n \n );\n })\n : [...Array(20)].map((_, index) => (\n
\n ))}\n \n
\n
\n );\n};\n","import dayjs from 'dayjs';\nimport { useInterval } from 'hooks/useInterval';\nimport { useState } from 'react';\nimport { formatTime } from 'utils/helperFunctions';\n\ninterface CountdownTimerProps {\n date?: number;\n msgEnded?: string;\n interval?: number;\n withDays?: boolean;\n}\n\nexport const CountdownTimer = ({\n date,\n msgEnded = '',\n withDays = false,\n interval = 1000,\n}: CountdownTimerProps) => {\n const now = dayjs().unix() * 1000;\n const [countdown, setCountdown] = useState(date ? date - now : -1);\n const timerEnded = countdown <= 0;\n\n useInterval(\n () => {\n setCountdown(countdown - interval);\n },\n timerEnded ? null : interval\n );\n\n return
{timerEnded ? msgEnded : formatTime(countdown, withDays)}
;\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 SvgPlusCircle(_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: \"100%\",\n height: \"100%\",\n viewBox: \"0 0 25 25\",\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.3039 12.4976C23.3039 18.4636 18.4675 23.3 12.5015 23.3C6.53558 23.3 1.69922 18.4636 1.69922 12.4976C1.69922 6.53168 6.53558 1.69531 12.5015 1.69531C18.4675 1.69531 23.3039 6.53168 23.3039 12.4976Z\",\n stroke: \"currentColor\",\n strokeWidth: 2\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.3245 13.0481H13.301V13.0715V16.7761C13.301 17.0054 13.1023 17.1953 12.8567 17.1953H12.1464C11.9009 17.1953 11.7021 17.0054 11.7021 16.7761V13.0715V13.0481H11.6787H8.2484C8.00284 13.0481 7.80408 12.8582 7.80408 12.6289V11.9568C7.80408 11.7276 8.00284 11.5377 8.2484 11.5377L8.24885 11.5377L11.6791 11.4721L11.7021 11.4717V11.4487V8.21944C11.7021 7.99017 11.9009 7.80029 12.1464 7.80029H12.8567C13.1023 7.80029 13.301 7.99017 13.301 8.21944V11.5143V11.5377H13.3245H16.7547C17.0003 11.5377 17.1991 11.7276 17.1991 11.9568V12.6289C17.1991 12.8582 17.0003 13.0481 16.7547 13.0481H13.3245Z\",\n fill: \"currentColor\",\n stroke: \"currentColor\",\n strokeWidth: 0.046875\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgPlusCircle);\nexport default __webpack_public_path__ + \"static/media/plus-circle.57514056.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 SvgArrow(_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: \"100%\",\n height: \"100%\",\n viewBox: \"0 0 16 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: \"M8.36531 0.792893C7.97479 0.402369 7.34162 0.402369 6.9511 0.792893L0.587135 7.15685C0.196611 7.54738 0.196611 8.18054 0.587135 8.57107C0.97766 8.96159 1.61082 8.96159 2.00135 8.57107L7.6582 2.91421L13.3151 8.57107C13.7056 8.96159 14.3387 8.96159 14.7293 8.57107C15.1198 8.18054 15.1198 7.54738 14.7293 7.15685L8.36531 0.792893ZM6.6582 30.5C6.6582 31.0523 7.10592 31.5 7.6582 31.5C8.21049 31.5 8.6582 31.0523 8.6582 30.5H6.6582ZM6.6582 1.5V30.5H8.6582V1.5H6.6582Z\",\n fill: \"currentColor\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgArrow);\nexport default __webpack_public_path__ + \"static/media/arrow.850bae9c.svg\";\nexport { ForwardRef as ReactComponent };","import BigNumber from 'bignumber.js';\nimport { sortBy } from 'lodash';\nimport { first, take } from 'rxjs/operators';\nimport {\n bancorConverterRegistry$,\n liquidityProtection$,\n settingsContractAddress$,\n systemStoreAddress$,\n} from 'services/observables/contracts';\nimport { Pool, PoolToken, Token } from 'services/observables/tokens';\nimport { expandToken, reduceBySlippage, shrinkToken } from 'utils/formulas';\nimport {\n calculateBntNeededToOpenSpace,\n calculatePriceDeviationTooHigh,\n decToPpm,\n} from 'utils/helperFunctions';\nimport { web3, writeWeb3 } from '..';\nimport {\n ConverterRegistry__factory,\n Converter__factory,\n LiquidityProtection,\n LiquidityProtectionSettings,\n LiquidityProtectionSettings__factory,\n LiquidityProtectionSystemStore__factory,\n LiquidityProtection__factory,\n} from '../abis/types';\nimport { MultiCall } from 'services/web3/multicall/multicall';\nimport { bntToken, changeGas, ethToken, zeroAddress } from '../config';\nimport { ErrorCode, EthNetworks, PoolType } from '../types';\n\nexport const createPool = async (\n token: Token,\n fee: string,\n network: EthNetworks,\n noPool: Function,\n onHash: (txHash: string) => void,\n onAccept: (txHash: string) => void,\n onFee: (txHash: string) => void,\n rejected: Function,\n failed: Function\n) => {\n try {\n const converterRegistryAddress = await bancorConverterRegistry$\n .pipe(take(1))\n .toPromise();\n\n const regContract = ConverterRegistry__factory.connect(\n converterRegistryAddress,\n writeWeb3.signer\n );\n\n const reserves = [bntToken(network), token.address];\n const weights = ['500000', '500000'];\n\n const poolAddress = await regContract.getLiquidityPoolByConfig(\n PoolType.Traditional,\n reserves,\n weights\n );\n\n if (poolAddress !== zeroAddress) noPool();\n\n const tx = await regContract.newConverter(\n PoolType.Traditional,\n token.name,\n token.symbol,\n token.decimals,\n 50000,\n reserves,\n weights\n );\n\n onHash(tx.hash);\n await tx.wait();\n\n const converterAddress = await web3.provider.getTransactionReceipt(tx.hash);\n const converter = Converter__factory.connect(\n converterAddress.logs[0].address,\n writeWeb3.signer\n );\n const ownerShip = await converter.acceptOwnership();\n onAccept(ownerShip.hash);\n await ownerShip.wait();\n\n const conversionFee = await converter.setConversionFee(decToPpm(fee));\n onFee(conversionFee.hash);\n } catch (e: any) {\n if (e.code === ErrorCode.DeniedTx) rejected();\n else failed();\n }\n};\n\nexport const addLiquidity = async (\n bntAmount: string,\n bnt: Token,\n tknAmount: string,\n tkn: Token,\n converterAddress: string,\n onHash: (txHash: string) => void,\n onCompleted: Function,\n rejected: Function,\n failed: (error: string) => void\n) => {\n try {\n const contract = Converter__factory.connect(\n converterAddress,\n writeWeb3.signer\n );\n const tknWei = expandToken(tknAmount, tkn.decimals);\n const bntWei = expandToken(bntAmount, bnt.decimals);\n\n const value = tkn.address === ethToken ? tknWei : undefined;\n\n const estimate = await contract.estimateGas.addLiquidity(\n [bnt.address, tkn.address],\n [bntWei, tknWei],\n '1',\n { value }\n );\n const gasLimit = changeGas(estimate.toString());\n\n const tx = await contract.addLiquidity(\n [bnt.address, tkn.address],\n [bntWei, tknWei],\n '1',\n { value, gasLimit }\n );\n\n onHash(tx.hash);\n\n await tx.wait();\n onCompleted();\n } catch (e: any) {\n console.error(e);\n if (e.code === ErrorCode.DeniedTx) rejected();\n else failed(e.message);\n }\n};\n\nexport const removeLiquidity = async (\n poolToken: PoolToken,\n onHash: (txHash: string) => void,\n onCompleted: Function,\n rejected: Function,\n failed: (error: string) => void\n) => {\n const slippage = 0.05;\n try {\n const contract = Converter__factory.connect(\n poolToken.converter,\n writeWeb3.signer\n );\n\n const minBntReturn = expandToken(\n reduceBySlippage(poolToken.bnt.amount, slippage),\n poolToken.poolDecimals\n );\n const minTknReturn = expandToken(\n reduceBySlippage(poolToken.tkn.amount, slippage),\n poolToken.poolDecimals\n );\n\n const tx = await contract.removeLiquidity(\n expandToken(poolToken.amount, poolToken.poolDecimals),\n [poolToken.bnt.token.address, poolToken.tkn.token.address],\n [minBntReturn, minTknReturn]\n );\n onHash(tx.hash);\n\n await tx.wait();\n onCompleted();\n } catch (e: any) {\n console.error(e);\n if (e.code === ErrorCode.DeniedTx) rejected();\n else failed(e.message);\n }\n};\n\nexport const addLiquiditySingle = async (\n pool: Pool,\n token: Token,\n amount: string,\n onHash: (txHash: string) => void,\n onCompleted: Function,\n rejected: Function,\n failed: (error: string) => void\n) => {\n try {\n const liquidityProtectionContract = await liquidityProtection$\n .pipe(first())\n .toPromise();\n\n const contract = LiquidityProtection__factory.connect(\n liquidityProtectionContract,\n writeWeb3.signer\n );\n const fromIsEth = ethToken === token.address;\n\n const estimate = await contract.estimateGas.addLiquidity(\n pool.pool_dlt_id,\n token.address,\n expandToken(amount, token.decimals),\n { value: fromIsEth ? expandToken(amount, 18) : undefined }\n );\n const gasLimit = changeGas(estimate.toString());\n\n const tx = await contract.addLiquidity(\n pool.pool_dlt_id,\n token.address,\n expandToken(amount, token.decimals),\n { value: fromIsEth ? expandToken(amount, 18) : undefined, gasLimit }\n );\n onHash(tx.hash);\n\n await tx.wait();\n\n onCompleted();\n } catch (e: any) {\n console.error(e);\n if (e.code === ErrorCode.DeniedTx) rejected();\n else failed(e.message);\n }\n};\n\nexport const checkPriceDeviationTooHigh = async (\n pool: Pool,\n selectedTkn: Token\n): Promise => {\n const converterContract = Converter__factory.connect(\n pool.converter_dlt_id,\n web3.provider\n );\n\n const settingsAddress = await settingsContractAddress$\n .pipe(take(1))\n .toPromise();\n\n const settingsContract = LiquidityProtectionSettings__factory.connect(\n settingsAddress,\n web3.provider\n );\n\n const [primaryReserveAddress, secondaryReserveAddress] = sortBy(\n pool.reserves,\n [(o) => o.address !== selectedTkn.address]\n ).map((x) => x.address);\n\n const [\n recentAverageRate,\n averageRateMaxDeviation,\n primaryReserveBalance,\n secondaryReserveBalance,\n ] = await Promise.all([\n converterContract.recentAverageRate(selectedTkn.address),\n settingsContract.averageRateMaxDeviation(),\n converterContract.reserveBalance(primaryReserveAddress),\n converterContract.reserveBalance(secondaryReserveAddress),\n ]);\n\n const averageRate = new BigNumber(\n recentAverageRate['1'].toString()\n ).dividedBy(new BigNumber(recentAverageRate['0'].toString()));\n\n if (averageRate.isNaN()) {\n throw new Error(\n 'Price deviation calculation failed. Please contact support.'\n );\n }\n\n return calculatePriceDeviationTooHigh(\n averageRate,\n new BigNumber(primaryReserveBalance.toString()),\n new BigNumber(secondaryReserveBalance.toString()),\n new BigNumber(averageRateMaxDeviation)\n );\n};\n\nexport const getSpaceAvailable = async (id: string, tknDecimals: number) => {\n const liquidityProtectionContract = await liquidityProtection$\n .pipe(first())\n .toPromise();\n const contract = LiquidityProtection__factory.connect(\n liquidityProtectionContract,\n web3.provider\n );\n\n const result = await contract.poolAvailableSpace(id);\n\n return {\n bnt: shrinkToken(result['1'].toString(), 18),\n tkn: shrinkToken(result['0'].toString(), tknDecimals),\n };\n};\n\nexport const fetchBntNeededToOpenSpace = async (\n pool: Pool\n): Promise => {\n const settingsAddress = await settingsContractAddress$\n .pipe(take(1))\n .toPromise();\n const settingsContract = LiquidityProtectionSettings__factory.connect(\n settingsAddress,\n web3.provider\n );\n\n const systemStoreAddress = await systemStoreAddress$\n .pipe(take(1))\n .toPromise();\n const systemStoreContract = LiquidityProtectionSystemStore__factory.connect(\n systemStoreAddress,\n web3.provider\n );\n\n const networkTokenMintingLimits =\n await settingsContract.networkTokenMintingLimits(pool.pool_dlt_id);\n\n const networkTokensMinted = await systemStoreContract.networkTokensMinted(\n pool.pool_dlt_id\n );\n\n const { tknBalance, bntBalance } = await fetchReserveBalances(pool);\n\n const bntNeeded = calculateBntNeededToOpenSpace(\n bntBalance,\n tknBalance,\n networkTokensMinted.toString(),\n networkTokenMintingLimits.toString()\n );\n\n return shrinkToken(bntNeeded, 18);\n};\n\nexport const fetchReserveBalances = async (\n pool: Pool,\n blockHeight?: number\n) => {\n const converterContract = Converter__factory.connect(\n pool.converter_dlt_id,\n web3.provider\n );\n const tknBalance = (\n await converterContract.getConnectorBalance(pool.reserves[0].address, {\n blockTag: blockHeight,\n })\n ).toString();\n\n const bntBalance = (\n await converterContract.getConnectorBalance(pool.reserves[1].address, {\n blockTag: blockHeight,\n })\n ).toString();\n\n return { tknBalance, bntBalance };\n};\n\nexport const buildReserveBalancesCall = (pool: Pool): MultiCall[] => {\n const contract = Converter__factory.connect(\n pool.converter_dlt_id,\n web3.provider\n );\n const buildCall = (address: string): MultiCall => {\n return {\n contractAddress: contract.address,\n interface: contract.interface,\n methodName: 'getConnectorBalance',\n methodParameters: [address],\n };\n };\n\n return [\n buildCall(pool.reserves[0].address),\n buildCall(pool.reserves[1].address),\n ];\n};\n\nexport const buildPoolROICall = (\n contract: LiquidityProtection,\n poolToken: string,\n reserveToken: string,\n reserveAmount: string,\n poolRateN: string,\n poolRateD: string,\n reserveRateN: string,\n reserveRateD: string\n): MultiCall => ({\n contractAddress: contract.address,\n interface: contract.interface,\n methodName: 'poolROI',\n methodParameters: [\n poolToken,\n reserveToken,\n reserveAmount,\n poolRateN,\n poolRateD,\n reserveRateN,\n reserveRateD,\n ],\n});\n\nexport const buildRemoveLiquidityReturnCall = (\n contract: LiquidityProtection,\n id: string,\n portion: string,\n removeTimestamp: number\n): MultiCall => {\n return {\n contractAddress: contract.address,\n interface: contract.interface,\n methodName: 'removeLiquidityReturn',\n methodParameters: [id, portion, String(removeTimestamp)],\n };\n};\n\nexport const buildProtectionDelayCall = (\n contract: LiquidityProtectionSettings\n): MultiCall[] => {\n const buildCall = (methodName: string): MultiCall => {\n return {\n contractAddress: contract.address,\n interface: contract.interface,\n methodName: methodName,\n methodParameters: [],\n };\n };\n\n return [buildCall('minProtectionDelay'), buildCall('maxProtectionDelay')];\n};\n","import { useState } from 'react';\nimport { classNameGenerator } from 'utils/pureFunctions';\nimport { SearchableTokenList } from 'components/searchableTokenList/SearchableTokenList';\nimport { Token } from 'services/observables/tokens';\nimport { ReactComponent as IconChevronDown } from 'assets/icons/chevronDown.svg';\nimport { Image } from 'components/image/Image';\n\ninterface SelectTokenProps {\n label?: string;\n selectable?: boolean;\n token?: Token | null;\n tokens?: Token[];\n setToken?: Function;\n startEmpty?: boolean;\n excludedTokens?: string[];\n includedTokens?: string[];\n}\n\nexport const SelectToken = ({\n label,\n selectable,\n token,\n tokens,\n setToken,\n startEmpty,\n excludedTokens = [],\n includedTokens = [],\n}: SelectTokenProps) => {\n const [isOpen, setIsOpen] = useState(false);\n const [showSelectToken, setSelectToken] = useState(!!startEmpty);\n\n return (\n <>\n
\n
{label}
\n {!showSelectToken || token ? (\n (selectable ? setIsOpen(true) : {})}\n >\n {token ? (\n <>\n \n {token.symbol}\n \n ) : (\n <>\n
\n
\n \n )}\n\n {selectable && (\n
\n \n
\n )}\n
\n ) : (\n (selectable ? setIsOpen(true) : {})}\n className=\"flex items-center text-primary font-medium text-20\"\n >\n Select a token\n \n \n )}\n \n\n {\n if (setToken) setToken(token);\n setSelectToken(false);\n }}\n isOpen={isOpen}\n limit\n setIsOpen={setIsOpen}\n tokens={tokens ? tokens : []}\n excludedTokens={excludedTokens}\n includedTokens={includedTokens}\n />\n \n );\n};\n","import { useCallback, useEffect, useState } from 'react';\nimport { useAppSelector } from 'redux/index';\nimport { Pool, Token } from 'services/observables/tokens';\nimport { ReactComponent as IconPlus } from 'assets/icons/plus-circle.svg';\nimport { createPool } from 'services/web3/liquidity/liquidity';\nimport { useWeb3React } from '@web3-react/core';\nimport { useDispatch } from 'react-redux';\nimport { EthNetworks } from 'services/web3/types';\nimport { getNetworkVariables, ropstenTokens } from 'services/web3/config';\nimport { SelectToken } from 'components/selectToken/SelectToken';\nimport { InputField } from 'components/inputField/InputField';\nimport { Modal } from 'components/modal/Modal';\nimport {\n ownershipNotification,\n poolCreateNotification,\n poolExistNotification,\n poolFailedNotification,\n rejectNotification,\n setFeeNotification,\n} from 'services/notifications/notifications';\n\nexport const ModalCreatePool = () => {\n const { chainId, account } = useWeb3React();\n const [isOpen, setIsOpen] = useState(false);\n\n const tokens = useAppSelector((state) => state.bancor.tokens);\n const allTokens = useAppSelector((state) => state.bancor.allTokens);\n const [bnt, setBNT] = useState();\n const [token, setToken] = useState(null);\n const [fee, setFee] = useState('0.2');\n const pools = useAppSelector((state) => state.pool.pools);\n const dispatch = useDispatch();\n\n const confirm = async () => {\n //isCreateDisabled() TS fails\n if (!account || !chainId || !token) return;\n\n await createPool(\n token,\n (Number(fee) / 100).toString(),\n chainId,\n () => poolExistNotification(dispatch),\n (txHash: string) => poolCreateNotification(dispatch, txHash),\n (txHash: string) => ownershipNotification(dispatch, txHash),\n (txHash: string) => setFeeNotification(dispatch, txHash),\n () => rejectNotification(dispatch),\n () => poolFailedNotification(dispatch)\n );\n\n setIsOpen(false);\n };\n\n useEffect(() => {\n const networkVars = getNetworkVariables(\n chainId ? chainId : EthNetworks.Mainnet\n );\n setBNT(tokens.find((x) => x.address === networkVars.bntToken));\n }, [tokens, chainId]);\n\n const errorText = useCallback(() => {\n if (\n token &&\n pools.findIndex((x) => x.reserves[0].address === token.address) !== -1\n ) {\n return 'Pool Already Exists';\n }\n }, [token, pools]);\n\n const isCreateDisabled = () => {\n const numFee = Number(fee);\n return (\n !account ||\n !chainId ||\n !token ||\n !fee ||\n numFee > 3 ||\n numFee < 0 ||\n !!errorText()\n );\n };\n\n return (\n <>\n setIsOpen(true)}\n >\n Create Pool\n \n \n
\n
\n \n
\n
\n
\n \n
\n
\n x.address) : []}\n />\n
\n
\n\n
\n
Fee
\n
\n \n
\n
\n confirm()}\n disabled={isCreateDisabled()}\n className=\"btn-primary w-full\"\n >\n {errorText() ?? 'Create a Pool'}\n \n
\n
\n \n );\n};\n","import { Pool, Token } from 'services/observables/tokens';\nimport { prettifyNumber } from 'utils/helperFunctions';\nimport { ReactComponent as IconProtected } from 'assets/icons/protected.svg';\nimport { useMemo } from 'react';\nimport { SortingRule, Row } from 'react-table';\nimport { DataTable, TableColumn } from 'components/table/DataTable';\nimport { useAppSelector } from 'redux/index';\nimport { PoolsTableCellName } from 'elements/earn/pools/poolsTable/PoolsTableCellName';\nimport { PoolsTableCellRewards } from 'elements/earn/pools/poolsTable/PoolsTableCellRewards';\nimport { PoolsTableCellActions } from 'elements/earn/pools/poolsTable/PoolsTableCellActions';\nimport { ModalCreatePool } from 'elements/modalCreatePool/ModalCreatePool';\nimport { PoolsTableCellApr } from 'elements/earn/pools/poolsTable/PoolsTableCellApr';\nimport { SearchInput } from 'components/searchInput/SearchInput';\n\ninterface Props {\n search: string;\n setSearch: (value: string) => void;\n}\n\nexport const PoolsTable = ({ search, setSearch }: Props) => {\n const pools = useAppSelector((state) => state.pool.pools);\n\n const data = useMemo(() => {\n return pools.filter(\n (p) => p.name && p.name.toLowerCase().includes(search.toLowerCase())\n );\n }, [pools, search]);\n\n const columns = useMemo[]>(\n () => [\n {\n id: 'name',\n Header: () => (\n \n Name\n \n ),\n accessor: 'name',\n Cell: (cellData) => PoolsTableCellName(cellData.row.original),\n minWidth: 225,\n sortDescFirst: true,\n },\n {\n id: 'liquidity',\n Header: 'Liquidity',\n accessor: 'liquidity',\n Cell: (cellData) => prettifyNumber(cellData.value, true),\n tooltip: 'The value of tokens staked in the pool.',\n minWidth: 130,\n sortDescFirst: true,\n },\n {\n id: 'v24h',\n Header: '24h Volume',\n accessor: 'volume_24h',\n Cell: (cellData) => prettifyNumber(cellData.value, true),\n minWidth: 120,\n sortDescFirst: true,\n },\n {\n id: 'f24h',\n Header: '24h Fees',\n accessor: 'fees_24h',\n Cell: (cellData) => prettifyNumber(cellData.value, true),\n minWidth: 90,\n sortDescFirst: true,\n },\n {\n id: 'rewards',\n Header: 'Rewards',\n accessor: 'reward',\n Cell: (cellData) => PoolsTableCellRewards(cellData.row.original),\n minWidth: 100,\n sortDescFirst: true,\n sortType: (a: Row, b: Row, id: string) => {\n if (!!a.values[id] && !b.values[id]) return 1;\n if (!a.values[id] && !!b.values[id]) return -1;\n return a.values['liquidity'] > b.values['liquidity'] ? 1 : -1;\n },\n tooltip:\n 'Active indicates a current liquidity mining program on the pool.',\n },\n {\n id: 'apr',\n Header: 'APR',\n accessor: 'apr',\n headerClassName: 'justify-center',\n Cell: (cellData) => PoolsTableCellApr(cellData.row.original),\n minWidth: 250,\n disableSortBy: true,\n tooltip:\n 'Estimated based on the maximum BNT Liquidity Mining rewards multiplier (2x) and annualized trading fees. ',\n },\n {\n id: 'actions',\n Header: '',\n accessor: 'isProtected',\n Cell: (cellData) => PoolsTableCellActions(cellData.row.original),\n width: 50,\n minWidth: 50,\n disableSortBy: true,\n },\n ],\n []\n );\n\n const defaultSort: SortingRule = { id: 'liquidity', desc: true };\n\n return (\n
\n
\n

Pools

\n
\n
\n \n
\n
\n \n
\n
\n
\n\n \n data={data}\n columns={columns}\n defaultSort={defaultSort}\n isLoading={!pools.length}\n stickyColumn\n search={search}\n />\n
\n );\n};\n","import { Pool } from 'services/observables/tokens';\nimport { ReactComponent as IconProtected } from 'assets/icons/protected.svg';\nimport { Image } from 'components/image/Image';\n\nexport const PoolsTableCellName = (pool: Pool) => {\n return (\n
\n
\n {pool.isProtected && (\n \n )}\n
\n
\n \n \n
\n

{pool.name}

\n
\n );\n};\n","import { Pool } from 'services/observables/tokens';\nimport { Tooltip } from 'components/tooltip/Tooltip';\nimport { CountdownTimer } from 'components/countdownTimer/CountdownTimer';\nimport { ReactComponent as IconClock } from 'assets/icons/clock.svg';\n\nexport const PoolsTableCellRewards = (pool: Pool) => {\n const aprOne = pool.reserves[0].rewardApr;\n const aprTwo = pool.reserves[1].rewardApr;\n const ends_at = pool.reward?.ends_at;\n return aprOne && aprTwo && ends_at ? (\n
\n \n Rewards end in \n \n }\n button={}\n />\n Active\n
\n ) : (\n ''\n );\n};\n","import { Pool } from 'services/observables/tokens';\n\nexport const PoolsTableCellApr = (pool: Pool) => {\n const aprOne = pool.reserves[0].rewardApr || 0;\n const aprTwo = pool.reserves[1].rewardApr || 0;\n const symbolOne = pool.reserves[0].symbol;\n const symbolTwo = pool.reserves[1].symbol;\n const formatApr = (rewardApr: number) => (rewardApr + pool.apr).toFixed(2);\n return (\n
\n
\n {`${symbolOne} ${formatApr(aprOne)}%`}\n |\n {`${symbolTwo} ${formatApr(aprTwo)}%`}\n
\n
\n );\n};","import { NavLink } from 'react-router-dom';\nimport { Tooltip } from 'components/tooltip/Tooltip';\nimport { ReactComponent as IconPlus } from 'assets/icons/plus-circle.svg';\nimport { ReactComponent as IconSync } from 'assets/icons/sync.svg';\nimport { Pool } from 'services/observables/tokens';\nimport { bntToken } from 'services/web3/config';\nimport { useWeb3React } from '@web3-react/core';\nimport { EthNetworks } from 'services/web3/types';\n\nexport const PoolsTableCellActions = (pool: Pool) => {\n const { chainId } = useWeb3React();\n const bnt = bntToken(chainId ? chainId : EthNetworks.Mainnet);\n const tknAddress = pool.reserves.find((x) => x.address !== bnt)?.address;\n\n return (\n
\n \n \n }\n />\n \n \n \n }\n />\n \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 SvgWithdraw(_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: \"100%\",\n height: \"100%\",\n viewBox: \"0 0 16 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: \"M1.68359 8L8.18359 1.5M8.18359 1.5L14.6836 8M8.18359 1.5V15M3.18359 19.5H12.6836\",\n stroke: \"currentColor\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWithdraw);\nexport default __webpack_public_path__ + \"static/media/withdraw.f6042163.svg\";\nexport { ForwardRef as ReactComponent };","import { ReactComponent as IconArrow } from 'assets/icons/arrow.svg';\nimport { useAppSelector } from 'redux/index';\nimport { Statistic } from 'services/observables/statistics';\nimport './Statistics.css';\n\nexport const Statistics = () => {\n const stats = useAppSelector((state) => state.pool.statistics);\n\n return (\n
\n
\n {stats.map((item, i) => (\n
\n
\n {item.change24h && (\n 0\n ? 'animate-bounce-2s'\n : 'animate-bounce-2s-invert'\n }`}\n >\n 0\n ? 'text-success'\n : 'text-error rotate-180'\n }`}\n />\n
\n )}\n
\n {item.change24h && (\n 0 ? 'text-success' : 'text-error'\n }`}\n >\n {item.change24h.toFixed(2)}%\n \n )}\n\n
\n {item.value}\n {item.change24h && (\n 0 ? 'text-success' : 'text-error'\n }`}\n >\n {item.change24h.toFixed(2)}%\n \n )}\n
\n {item.label}\n
\n
\n
\n ))}\n {!stats.length &&\n [...Array(4)].map((_, i) => (\n
\n
\n
\n
\n ))}\n \n
\n );\n};\n","import { TopPools } from 'elements/earn/pools/TopPools';\nimport { PoolsTable } from 'elements/earn/pools/poolsTable/PoolsTable';\nimport { useState } from 'react';\nimport { Statistics } from 'elements/earn/pools/Statistics';\n\nexport const Pools = () => {\n const [searchInput, setSearchInput] = useState('');\n\n return (\n
\n \n \n \n
\n );\n};\n","import { useAppSelector } from 'redux/index';\nimport { getStakeSummary, MyStakeSummary } from 'redux/liquidity/liquidity';\nimport { prettifyNumber } from 'utils/helperFunctions';\n\nexport const MyStake = ({ loading }: { loading: boolean }) => {\n const summary = useAppSelector(getStakeSummary);\n\n return (\n
\n

My Stake

\n
\n
\n {loading ? (\n
\n ) : (\n
\n
Protected Value
\n
\n {summary\n ? `~${prettifyNumber(summary.protectedValue, true)}`\n : '--'}\n
\n
\n )}\n {loading ? (\n
\n ) : (\n
\n
Claimable Value
\n
\n {summary\n ? `~${prettifyNumber(summary.claimableValue, true)}`\n : '--'}\n
\n
\n )}\n {loading ? (\n
\n ) : (\n
\n
Total Fees
\n
\n {summary ? `~${prettifyNumber(summary.fees, true)}` : '--'}\n
\n
\n )}\n
\n
\n );\n};\n","import { Pool } from 'services/observables/tokens';\nimport { Image } from '../image/Image';\nimport { InputField } from '../inputField/InputField';\nimport { useState } from 'react';\n\ninterface Props {\n pools: Pool[];\n onSelect: Function;\n}\nexport const SelectPoolModalContent = ({ pools, onSelect }: Props) => {\n const [search, setSearch] = useState('');\n const filteredPools = pools.filter((pool) =>\n pool.reserves[0].symbol.toLowerCase().includes(search.toLowerCase())\n );\n\n return (\n <>\n
\n \n
\n
\n
\n Pools\n APR\n
\n {filteredPools.map((pool) => (\n onSelect(pool)}\n className=\"flex justify-between items-center w-full\"\n >\n \n \n \n {pool.name}\n \n {pool.apr.toFixed(2)}%\n \n ))}\n
\n \n );\n};\n","import { Pool } from 'services/observables/tokens';\nimport { isMobile } from 'react-device-detect';\nimport { ModalFullscreen } from '../modalFullscreen/ModalFullscreen';\nimport { Modal } from '../modal/Modal';\nimport { SelectPoolModalContent } from './SelectPoolModalContent';\n\ninterface Props {\n pools: Pool[];\n isOpen: boolean;\n setIsOpen: Function;\n onSelect: Function;\n}\n\nexport const SelectPoolModal = ({\n pools,\n isOpen,\n setIsOpen,\n onSelect,\n}: Props) => {\n const handleOnSelect = (pool: Pool) => {\n setIsOpen(false);\n onSelect(pool);\n };\n\n if (isMobile) {\n return (\n \n \n \n );\n }\n\n return (\n \n \n \n );\n};\n","import { useHistory } from 'react-router-dom';\nimport { useState } from 'react';\nimport { useAppSelector } from 'redux/index';\nimport { Pool } from 'services/observables/tokens';\nimport { getProtectedPools } from 'redux/bancor/pool';\nimport { SelectPoolModal } from 'components/selectPoolModal/SelectPoolModal';\n\ninterface Props {\n buttonLabel: string;\n buttonClass: string;\n posGroupId?: string;\n}\n\nexport const StakeRewardsBtn = ({\n buttonClass,\n buttonLabel,\n posGroupId,\n}: Props) => {\n const history = useHistory();\n const [isModalOpen, setIsModalOpen] = useState(false);\n const pools = useAppSelector(getProtectedPools);\n\n const onSelect = (pool: Pool) => {\n if (posGroupId) {\n history.push(\n `/portfolio/rewards/stake/${pool.pool_dlt_id}?posGroupId=${posGroupId}`\n );\n } else {\n history.push(`/portfolio/rewards/stake/${pool.pool_dlt_id}`);\n }\n };\n\n return (\n <>\n \n \n \n );\n};\n","import { prettifyNumber } from 'utils/helperFunctions';\nimport { NavLink } from 'react-router-dom';\nimport { useMyRewards } from 'elements/earn/portfolio/liquidityProtection/rewards/useMyRewards';\nimport { StakeRewardsBtn } from 'elements/earn/portfolio/liquidityProtection/rewards/StakeRewardsBtn';\nimport { useAppSelector } from 'redux/index';\n\nexport const MyRewards = () => {\n const [totalRewards, totalRewardsUsd, claimableRewards, claimableRewardsUsd] =\n useMyRewards();\n const loading = useAppSelector(\n (state) => state.liquidity.loadingRewards\n );\n\n return (\n
\n
\n

Rewards

\n
\n \n Claim\n \n \n
\n
\n
\n
\n {loading ? (\n
\n ) : (\n
\n
Total Rewards to Date
\n {totalRewards && totalRewardsUsd ? (\n
\n \n {prettifyNumber(totalRewards)} BNT\n \n \n (~\n {prettifyNumber(totalRewardsUsd, true)})\n \n
\n ) : (\n
\n \n --\n \n
\n )}\n
\n )}\n {loading ? (\n
\n ) : (\n
\n
Claimable Rewards
\n {claimableRewards && claimableRewardsUsd ? (\n
\n \n {prettifyNumber(claimableRewards)} BNT\n \n \n (~\n {prettifyNumber(claimableRewardsUsd, true)})\n \n
\n ) : (\n
\n \n --\n \n
\n )}\n
\n )}\n
\n
\n );\n};\n","import { useAppSelector } from 'redux/index';\nimport BigNumber from 'bignumber.js';\nimport { Rewards } from 'services/observables/liquidity';\n\nexport const useMyRewards = () => {\n const bntPrice = useAppSelector(\n (state) => state.bancor.bntPrice\n );\n const rewards = useAppSelector(\n (state) => state.liquidity.rewards\n );\n\n const totalRewardsUsd = new BigNumber(\n rewards ? rewards.totalRewards : 0\n ).times(bntPrice ?? 0);\n const claimableRewardsUsd = new BigNumber(\n rewards ? rewards.pendingRewards : 0\n ).times(bntPrice ?? 0);\n\n return [\n rewards?.totalRewards,\n totalRewardsUsd,\n rewards?.pendingRewards,\n claimableRewardsUsd,\n ];\n};\n","import { prettifyNumber } from 'utils/helperFunctions';\ninterface Props {\n tknAmount: string;\n symbol: string;\n usdAmount: string;\n}\nexport const ProtectedPositionTableCellAmount = ({\n tknAmount,\n symbol,\n usdAmount,\n}: Props) => {\n return (\n
\n
\n {`${prettifyNumber(tknAmount)} ${symbol}`}\n
\n
\n {prettifyNumber(usdAmount, true)} USD\n
\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 SvgLocked(_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 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 0C7.59593 0 5.62756 1.97277 5.62756 4.38222V6.57591H3.71046C2.36233 6.57591 1.25 7.68559 1.25 9.04187L1.25 17.534C1.25 18.8903 2.36233 20 3.71046 20H16.2895C17.6377 20 18.75 18.8903 18.75 17.534V9.04187C18.75 7.68559 17.6377 6.57591 16.2895 6.57591H14.3724V4.38222C14.3724 1.97277 12.4041 0 10 0ZM10 1.64398C11.5173 1.64398 12.7321 2.86155 12.7321 4.38222V6.57591H7.26787V4.38222C7.26787 2.86155 8.48272 1.64398 10 1.64398ZM3.71046 8.21988H16.2895C16.7509 8.21988 17.1097 8.57436 17.1097 9.04187V17.534C17.1097 18.0015 16.7509 18.356 16.2895 18.356H3.71046C3.24912 18.356 2.8903 18.0015 2.8903 17.534V9.04187C2.8903 8.57436 3.24912 8.21988 3.71046 8.21988Z\",\n fill: \"currentColor\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLocked);\nexport default __webpack_public_path__ + \"static/media/locked.38227130.svg\";\nexport { ForwardRef as ReactComponent };","import { BigNumber } from 'bignumber.js';\nimport { TokenInputField } from 'components/tokenInputField/TokenInputField';\nimport { useState, useEffect } from 'react';\nimport { Token } from 'services/observables/tokens';\nimport { classNameGenerator } from 'utils/pureFunctions';\n\ninterface TokenInputPercentageProps {\n label: string;\n token?: Token;\n balance?: string;\n amount: string;\n errorMsg?: string;\n setAmount: Function;\n debounce?: Function;\n balanceLabel?: string;\n}\nconst percentages = [25, 50, 75, 100];\n\nexport const TokenInputPercentage = ({\n token,\n balance,\n label,\n amount,\n errorMsg,\n setAmount,\n debounce,\n balanceLabel = 'Balance',\n}: TokenInputPercentageProps) => {\n const [amountUSD, setAmountUSD] = useState('');\n const [selPercentage, setSelPercentage] = useState(-1);\n\n const fieldBalance = balance\n ? balance\n : token && token.balance\n ? token.balance\n : undefined;\n\n useEffect(() => {\n if (amount && fieldBalance) {\n const percentage = (Number(amount) / Number(fieldBalance)) * 100;\n setSelPercentage(\n percentages.findIndex((x) => percentage.toFixed(10) === x.toFixed(10))\n );\n if (debounce) debounce(amount);\n }\n }, [amount, token, fieldBalance, debounce]);\n\n return (\n <>\n {token && (\n \n )}\n
\n
\n {percentages.map((slip, index) => (\n {\n setSelPercentage(index);\n if (token && fieldBalance) {\n const amount = new BigNumber(fieldBalance).times(\n new BigNumber(slip / 100)\n );\n setAmount(amount.toString());\n setAmountUSD(\n (amount.toNumber() * Number(token.usdPrice)).toString()\n );\n }\n }}\n >\n +{slip}%\n \n ))}\n
\n \n );\n};\n","import { ReactComponent as IconInfo } from 'assets/icons/info.svg';\n\ninterface WithdrawLiquidityInfoProps {\n protectionNotReached: boolean;\n multiplierWillReset: boolean;\n}\n\nexport const WithdrawLiquidityInfo = ({\n protectionNotReached,\n multiplierWillReset,\n}: WithdrawLiquidityInfoProps) => {\n return (\n <>\n {(protectionNotReached || multiplierWillReset) && (\n
\n
\n \n Important!\n
\n
\n {protectionNotReached && (\n

\n You still haven’t reached full protection. There is a risk for\n impermanent loss and you might receive less than your original\n stake amount as a result.\n

\n )}\n {multiplierWillReset && (\n

\n Withdrawing will reset your rewards multiplier for all active\n positions back to x1\n

\n )}\n
\n
\n )}\n \n );\n};\n","import { stakingRewards$ } from 'services/observables/contracts';\nimport { take } from 'rxjs/operators';\nimport { expandToken, shrinkToken } from 'utils/formulas';\nimport { StakingRewards, StakingRewards__factory } from '../abis/types';\nimport { web3, writeWeb3 } from '..';\nimport { ProtectedLiquidity } from './positions';\nimport { multicall, MultiCall } from '../multicall/multicall';\nimport { ErrorCode } from '../types';\nimport { changeGas } from '../config';\n\nexport const stakeRewards = async ({\n amount,\n poolId,\n onHash,\n onCompleted,\n rejected,\n failed,\n}: {\n amount: string;\n poolId: string;\n onHash: (txHash: string) => void;\n onCompleted: Function;\n rejected: Function;\n failed: (error: string) => void;\n}) => {\n try {\n const contractAddress = await stakingRewards$.pipe(take(1)).toPromise();\n\n const contract = StakingRewards__factory.connect(\n contractAddress,\n writeWeb3.signer\n );\n\n const estimate = await contract.estimateGas.stakeRewards(\n expandToken(amount, 18),\n poolId\n );\n const gasLimit = changeGas(estimate.toString());\n\n const tx = await contract.stakeRewards(expandToken(amount, 18), poolId, {\n gasLimit,\n });\n onHash(tx.hash);\n await tx.wait();\n onCompleted();\n } catch (e: any) {\n console.error(e);\n if (e.code === ErrorCode.DeniedTx) rejected();\n else failed(e.message);\n }\n};\n\nexport const stakePoolLevelRewards = async ({\n amount,\n poolId,\n reserveId,\n newPoolId,\n onHash,\n onCompleted,\n rejected,\n failed,\n}: {\n amount: string;\n poolId: string;\n reserveId: string;\n newPoolId: string;\n onHash: (txHash: string) => void;\n onCompleted: Function;\n rejected: Function;\n failed: (error: string) => void;\n}) => {\n try {\n const contractAddress = await stakingRewards$.pipe(take(1)).toPromise();\n const contract = StakingRewards__factory.connect(\n contractAddress,\n writeWeb3.signer\n );\n\n const tx = await contract.stakeReserveRewards(\n poolId,\n reserveId,\n expandToken(amount, 18),\n newPoolId\n );\n onHash(tx.hash);\n await tx.wait();\n onCompleted();\n } catch (e: any) {\n console.error(e);\n if (e.code === ErrorCode.DeniedTx) rejected();\n else failed(e.message);\n }\n};\n\nexport const claimRewards = async (): Promise => {\n const contractAddress = await stakingRewards$.pipe(take(1)).toPromise();\n const contract = StakingRewards__factory.connect(\n contractAddress,\n writeWeb3.signer\n );\n\n const estimate = await contract.estimateGas.claimRewards();\n const gasLimit = changeGas(estimate.toString());\n\n return (await contract.claimRewards({ gasLimit })).hash;\n};\n\nexport const fetchTotalClaimedRewards = async (\n currentUser: string\n): Promise => {\n const contractAddress = await stakingRewards$.pipe(take(1)).toPromise();\n const contract = StakingRewards__factory.connect(\n contractAddress,\n web3.provider\n );\n const result = await contract.totalClaimedRewards(currentUser);\n\n return shrinkToken(result.toString(), 18);\n};\n\nexport const fetchPendingRewards = async (\n currentUser: string\n): Promise => {\n const contractAddress = await stakingRewards$.pipe(take(1)).toPromise();\n const contract = StakingRewards__factory.connect(\n contractAddress,\n web3.provider\n );\n const result = await contract.pendingRewards(currentUser);\n\n return shrinkToken(result.toString(), 18);\n};\n\nexport const fetchedRewardsMultiplier = async (\n user: string,\n positions: ProtectedLiquidity[]\n) => {\n const contractAddress = await stakingRewards$.pipe(take(1)).toPromise();\n const contract = StakingRewards__factory.connect(\n contractAddress,\n web3.provider\n );\n const calls = positions.map((position) =>\n buildRewardsMultiplierCall(contract, user, position)\n );\n const res = await multicall(calls);\n if (res)\n return res.map((x, i) => ({\n id: positions[i].id,\n rewardsMultiplier: shrinkToken(x.toString(), 6),\n }));\n\n return [];\n};\n\nconst buildRewardsMultiplierCall = (\n contract: StakingRewards,\n user: string,\n position: ProtectedLiquidity\n): MultiCall => {\n return {\n contractAddress: contract.address,\n interface: contract.interface,\n methodName: 'rewardsMultiplier',\n methodParameters: [user, position.poolToken, position.reserveToken.address],\n };\n};\n\nexport const fetchedPendingRewards = async (\n user: string,\n positions: ProtectedLiquidity[]\n) => {\n const contractAddress = await stakingRewards$.pipe(take(1)).toPromise();\n const contract = StakingRewards__factory.connect(\n contractAddress,\n web3.provider\n );\n\n const calls = positions.map((position) =>\n buildPnedingRewardsCall(contract, user, position)\n );\n const res = await multicall(calls);\n if (res)\n return res.map((x, i) => ({\n id: positions[i].id,\n rewardsAmount: shrinkToken(x.toString(), 18),\n }));\n\n return [];\n};\n\nconst buildPnedingRewardsCall = (\n contract: StakingRewards,\n user: string,\n position: ProtectedLiquidity\n): MultiCall => {\n return {\n contractAddress: contract.address,\n interface: contract.interface,\n methodName: 'pendingReserveRewards',\n methodParameters: [user, position.poolToken, position.reserveToken.address],\n };\n};\n","import {\n LiquidityProtection,\n LiquidityProtection__factory,\n LiquidityProtectionSettings__factory,\n LiquidityProtectionStore,\n LiquidityProtectionStore__factory,\n} from 'services/web3/abis/types';\nimport { web3, writeWeb3 } from 'services/web3/index';\nimport {\n liquidityProtection$,\n liquidityProtectionStore$,\n settingsContractAddress$,\n} from 'services/observables/contracts';\nimport { take } from 'rxjs/operators';\nimport { multicall } from 'services/web3/multicall/multicall';\nimport { keyBy, merge, values } from 'lodash';\nimport dayjs from 'dayjs';\nimport {\n calculateProgressLevel,\n calcUsdPrice,\n decToPpm,\n} from 'utils/helperFunctions';\nimport BigNumber from 'bignumber.js';\nimport { Pool, Reserve } from 'services/observables/tokens';\nimport {\n buildProtectionDelayCall,\n buildRemoveLiquidityReturnCall,\n} from 'services/web3/liquidity/liquidity';\nimport { shrinkToken } from 'utils/formulas';\nimport { fetchedPendingRewards, fetchedRewardsMultiplier } from './rewards';\nimport { ErrorCode } from '../types';\nimport { Result } from '@ethersproject/abi';\nimport { changeGas } from '../config';\n\nexport interface ProtectedPosition {\n positionId: string;\n pool: Pool;\n fees: string;\n initialStake: { usdAmount: string; tknAmount: string };\n protectedAmount: { usdAmount: string; tknAmount: string };\n claimableAmount: { usdAmount: string; tknAmount: string };\n reserveToken: Reserve;\n roi: {\n fees: string;\n reserveRewards?: string;\n };\n aprs: { day: string; week: string };\n rewardsMultiplier: string;\n rewardsAmount: string;\n timestamps: {\n initalStake: string;\n insuranceStart: string;\n fullCoverage: string;\n };\n currentCoveragePercent: number;\n}\n\nexport interface ProtectedPositionGrouped extends ProtectedPosition {\n groupId: string;\n subRows: ProtectedPosition[];\n}\n\nexport interface ProtectedLiquidity {\n id: string;\n owner: string;\n poolToken: string;\n reserveToken: Reserve;\n poolAmount: string;\n reserveAmount: string;\n reserveRateN: string;\n reserveRateD: string;\n timestamp: string;\n pool: Pool;\n}\n\nconst fetchPositions = async (\n contract: LiquidityProtectionStore,\n currentUser: string,\n pools: Pool[]\n): Promise => {\n const positionIds = await contract.protectedLiquidityIds(currentUser);\n const calls = positionIds.map((id) =>\n buildProtectedPositionCall(contract, id.toString())\n );\n const res = await multicall(calls);\n\n if (res)\n return res.map((r, index) => {\n const position = r as Result[];\n const poolToken = position[1].toString();\n const reserveTokenAddress = position[2].toString();\n const pool = pools.find((x) => x.pool_dlt_id === poolToken);\n const reserveToken = pool!.reserves.find(\n (reserve) => reserve.address === reserveTokenAddress\n );\n\n return {\n id: positionIds[index].toString(),\n owner: position[0].toString(),\n poolToken,\n reserveToken: reserveToken!,\n poolAmount: position[3].toString(),\n reserveAmount: position[4].toString(),\n reserveRateN: position[5].toString(),\n reserveRateD: position[6].toString(),\n timestamp: position[7].toString(),\n pool: pool!,\n };\n });\n\n return [];\n};\nconst buildProtectedPositionCall = (\n contract: LiquidityProtectionStore,\n protectionId: string\n) => {\n return {\n contractAddress: contract.address,\n interface: contract.interface,\n methodName: 'protectedLiquidity',\n methodParameters: [protectionId],\n };\n};\n\nconst fetchROI = async (\n contract: LiquidityProtection,\n positions: ProtectedLiquidity[]\n) => {\n const timeNow = dayjs();\n const timeNowUnix = timeNow.unix();\n const fullWaitTimeUnix = timeNow.add(1, 'year').unix();\n const portion = decToPpm(1);\n\n const calls = positions.map((x) => [\n buildRemoveLiquidityReturnCall(contract, x.id, portion, timeNowUnix),\n buildRemoveLiquidityReturnCall(contract, x.id, portion, fullWaitTimeUnix),\n ]);\n\n const res = await multicall(calls.flat());\n\n if (res) {\n return positions.map((position, i) => {\n const { decimals, usdPrice } = position.reserveToken;\n const index = i * 2;\n\n const currentTargetAmount = res[index][0].toString();\n const fullTargetAmount = res[index + 1][0].toString();\n\n const protectedAmount = {\n tknAmount: shrinkToken(fullTargetAmount, decimals),\n usdAmount: calcUsdPrice(fullTargetAmount, usdPrice, decimals),\n };\n\n const claimableAmount = {\n tknAmount: shrinkToken(currentTargetAmount, decimals),\n usdAmount: calcUsdPrice(currentTargetAmount, usdPrice, decimals),\n };\n\n const fees = new BigNumber(protectedAmount.tknAmount)\n .minus(shrinkToken(position.reserveAmount, decimals))\n .toString();\n\n const roiDec = new BigNumber(currentTargetAmount)\n .div(position.reserveAmount)\n .minus(1)\n .toString();\n\n return {\n id: position.id,\n roiDec,\n protectedAmount,\n claimableAmount,\n fees,\n };\n });\n }\n\n return [];\n};\n\nexport const fetchProtectedPositions = async (\n pools: Pool[],\n currentUser: string\n): Promise => {\n const liquidityProtectionSettingsContractAddress =\n await settingsContractAddress$.pipe(take(1)).toPromise();\n\n const liquidityProtectionSettingsContract =\n LiquidityProtectionSettings__factory.connect(\n liquidityProtectionSettingsContractAddress,\n web3.provider\n );\n\n const liquidityProtectionStoreContractAddress =\n await liquidityProtectionStore$.pipe(take(1)).toPromise();\n\n const liquidityProtectionStoreContract =\n LiquidityProtectionStore__factory.connect(\n liquidityProtectionStoreContractAddress,\n web3.provider\n );\n\n const liquidityProtectionContractAddress = await liquidityProtection$\n .pipe(take(1))\n .toPromise();\n\n const liquidityProtectionContract = LiquidityProtection__factory.connect(\n liquidityProtectionContractAddress,\n web3.provider\n );\n\n const rawPositions = await fetchPositions(\n liquidityProtectionStoreContract,\n currentUser,\n pools\n );\n\n const protectionDelay = await multicall(\n buildProtectionDelayCall(liquidityProtectionSettingsContract)\n );\n\n if (rawPositions.length === 0 || !protectionDelay) return [];\n\n const minProtectionDelay = protectionDelay[0];\n const maxProtectionDelay = protectionDelay[1];\n\n const positionsRoi = await fetchROI(\n liquidityProtectionContract,\n rawPositions\n );\n\n // const positionsAPR = await fetchPoolAprs(\n // pools,\n // rawPositions,\n // liquidityProtectionContract\n // );\n\n const rewardsMultiplier = await fetchedRewardsMultiplier(\n currentUser,\n rawPositions\n );\n\n const rewardsAmount = await fetchedPendingRewards(currentUser, rawPositions);\n\n const positions = values(\n merge(\n keyBy(rawPositions, 'id'),\n keyBy(positionsRoi, 'id'),\n //keyBy(positionsAPR, 'id'),\n keyBy(rewardsMultiplier, 'id'),\n keyBy(rewardsAmount, 'id')\n )\n );\n\n const final = positions.map((position) => {\n const pool = pools.find((x) => x.pool_dlt_id === position.poolToken);\n const { decimals, usdPrice } = position.reserveToken;\n\n const initialStake = {\n tknAmount: shrinkToken(position.reserveAmount, decimals),\n usdAmount: calcUsdPrice(position.reserveAmount, usdPrice, decimals),\n };\n\n const timestamps = {\n initalStake: position.timestamp,\n insuranceStart: new BigNumber(position.timestamp)\n .plus(minProtectionDelay.toString())\n .toString(),\n fullCoverage: new BigNumber(position.timestamp)\n .plus(maxProtectionDelay.toString())\n .toString(),\n };\n\n const currentCoveragePercent = calculateProgressLevel(\n Number(timestamps.initalStake),\n Number(timestamps.fullCoverage)\n );\n\n return {\n positionId: position.id,\n pool: pool!,\n fees: position.fees,\n initialStake,\n protectedAmount: position.protectedAmount,\n claimableAmount: position.claimableAmount,\n reserveToken: position.reserveToken,\n roi: {\n fees: position.roiDec,\n },\n aprs: {\n day: '0', //position.aprDay,\n week: '0', //position.aprWeek,\n },\n rewardsMultiplier: position.rewardsMultiplier,\n rewardsAmount: position.rewardsAmount,\n timestamps,\n currentCoveragePercent,\n };\n });\n\n return final;\n};\n\nexport const withdrawProtection = async (\n positionId: string,\n amount: string,\n tknAmount: string,\n onHash: (txHash: string) => void,\n onCompleted: Function,\n rejected: Function,\n failed: (error: string) => void\n) => {\n try {\n const liquidityProtectionContractAddress = await liquidityProtection$\n .pipe(take(1))\n .toPromise();\n\n const liquidityProtectionContract = LiquidityProtection__factory.connect(\n liquidityProtectionContractAddress,\n writeWeb3.signer\n );\n\n const percentage = new BigNumber(amount).div(tknAmount);\n\n const estimate =\n await liquidityProtectionContract.estimateGas.removeLiquidity(\n positionId,\n decToPpm(percentage)\n );\n const gasLimit = changeGas(estimate.toString());\n\n const tx = await liquidityProtectionContract.removeLiquidity(\n positionId,\n decToPpm(percentage),\n { gasLimit }\n );\n onHash(tx.hash);\n\n await tx.wait();\n onCompleted();\n } catch (e: any) {\n console.error(e);\n if (e.code === ErrorCode.DeniedTx) rejected();\n else failed(e.message);\n }\n};\n\nexport const getWithdrawBreakdown = async (\n id: string,\n amount: string,\n tknAmount: string\n) => {\n const now = dayjs().unix();\n const liquidityProtectionContractAddress = await liquidityProtection$\n .pipe(take(1))\n .toPromise();\n\n const constract = LiquidityProtection__factory.connect(\n liquidityProtectionContractAddress,\n web3.provider\n );\n\n const percentage = new BigNumber(amount).div(tknAmount);\n\n const res = await constract.removeLiquidityReturn(\n id,\n decToPpm(percentage),\n now\n );\n const expectedAmount = res[0].toString();\n const actualAmount = res[1].toString();\n const bntAmount = res[2].toString();\n\n return {\n expectedAmount,\n actualAmount,\n bntAmount,\n };\n};\n","import { Token } from 'services/observables/tokens';\nimport { useCallback, useRef, useState } from 'react';\nimport {\n getNetworkContractApproval,\n setNetworkContractApproval,\n} from 'services/web3/approval';\nimport { ModalApproveNew } from 'elements/modalApprove/modalApproveNew';\nimport {\n addNotification,\n NotificationType,\n} from 'redux/notification/notification';\nimport { useDispatch } from 'react-redux';\nimport { ErrorCode } from 'services/web3/types';\nimport { wait } from 'utils/pureFunctions';\nimport { web3 } from 'services/web3';\n\ninterface Tokens {\n token: Token;\n amount: string;\n}\n\nexport const useApproveModal = (\n tokens: Tokens[],\n onComplete: Function,\n contract?: string\n) => {\n const [isOpen, setIsOpen] = useState(false);\n const [tokenIndex, setTokenIndex] = useState(0);\n const [isLoading, setIsLoading] = useState(false);\n const ref = useRef([]);\n\n const awaitConfirmation = useCallback(async () => {\n const receipts = [];\n for (const txHash of ref.current) {\n try {\n const receipt = await web3.provider.getTransactionReceipt(txHash);\n receipts.push(receipt);\n } catch (e: any) {\n console.error('failed to getTransactionReceipt for approve token tx');\n return;\n }\n }\n\n const successCount = receipts.filter((r) => r && r.status).length;\n if (successCount === ref.current.length) {\n ref.current = [];\n onComplete();\n } else {\n await wait(3000);\n await awaitConfirmation();\n }\n }, [onComplete]);\n\n const dispatch = useDispatch();\n\n const checkNextToken = async (index = tokenIndex): Promise => {\n const nextIndex = index + 1;\n const count = tokens.length;\n if (count === nextIndex) {\n return awaitConfirmation();\n }\n await wait(500);\n setTokenIndex(nextIndex);\n return checkApprovalRequired(nextIndex);\n };\n\n const checkApprovalRequired = async (tokenIndex: number = 0) => {\n const { token, amount } = tokens[tokenIndex];\n const isApprovalRequired = await getNetworkContractApproval(\n token,\n amount,\n contract\n );\n\n if (!isApprovalRequired) {\n return checkNextToken(tokenIndex);\n }\n\n setIsOpen(true);\n };\n\n const setApproval = async (amount?: string) => {\n const { token } = tokens[tokenIndex];\n try {\n setIsLoading(true);\n const txHash = await setNetworkContractApproval(\n token,\n amount,\n contract,\n true\n );\n\n ref.current = [...ref.current, txHash];\n dispatch(\n addNotification({\n type: NotificationType.pending,\n title: 'Pending Confirmation',\n msg: `Approve ${tokens[tokenIndex].token.symbol} is pending confirmation`,\n updatedInfo: {\n successTitle: 'Transaction Confirmed',\n successMsg: `${amount || 'Unlimited'} approval set for ${\n tokens[tokenIndex].token.symbol\n }`,\n errorTitle: 'Transaction Failed',\n errorMsg: `${tokens[tokenIndex].token.symbol} approval had failed. Please try again or contact support.`,\n },\n txHash,\n })\n );\n setIsOpen(false);\n setIsLoading(false);\n\n await checkNextToken();\n } catch (e: any) {\n if (e.code === ErrorCode.DeniedTx) {\n dispatch(\n addNotification({\n type: NotificationType.error,\n title: 'Transaction Rejected',\n msg: 'You rejected the transaction. If this was by mistake, please try again.',\n })\n );\n } else {\n dispatch(\n addNotification({\n type: NotificationType.error,\n title: 'Transaction Failed',\n msg: `${tokens[tokenIndex].token.symbol} approval had failed. Please try again or contact support.`,\n })\n );\n }\n\n setIsOpen(false);\n setIsLoading(false);\n }\n };\n\n const onStart = async () => {\n if (tokens.length === 0) {\n console.error('No tokens provided for approval!');\n return;\n }\n await checkApprovalRequired();\n };\n\n const ModalApprove = ModalApproveNew({\n isOpen,\n setIsOpen,\n amount: tokens[tokenIndex].amount,\n setApproval,\n token: tokens[tokenIndex].token,\n isLoading,\n });\n\n return [onStart, ModalApprove] as [Function, JSX.Element];\n};\n","import { ReactComponent as IconLock } from '../../assets/icons/lock.svg';\nimport { Modal } from 'components/modal/Modal';\nimport { Token } from 'services/observables/tokens';\n\ninterface Props {\n isOpen: boolean;\n setIsOpen: Function;\n setApproval: Function;\n token: Token;\n amount: string;\n isLoading: boolean;\n}\n\nexport const ModalApproveNew = ({\n isOpen,\n setIsOpen,\n setApproval,\n token,\n amount,\n isLoading,\n}: Props) => {\n return (\n \n
\n
\n
\n \n
\n

Approve {token.symbol}

\n

\n Before you can proceed, you need to approve {token.symbol} spending.\n

\n setApproval()}\n className={'btn-primary w-full my-15'}\n disabled={isLoading}\n >\n {isLoading ? 'waiting for confirmation' : 'Approve'}\n \n

\n Want to approve before each transaction?\n

\n setApproval(amount)}\n className=\"underline\"\n disabled={isLoading}\n >\n Approve limited permission\n \n
\n
\n
\n );\n};\n","import { useCallback, useRef, useState } from 'react';\nimport { useAppSelector } from 'redux/index';\nimport { getTokenById } from 'redux/bancor/bancor';\nimport { Pool, Token } from 'services/observables/tokens';\nimport { TokenInputPercentage } from 'components/tokenInputPercentage/TokenInputPercentage';\nimport { WithdrawLiquidityInfo } from './WithdrawLiquidityInfo';\nimport { LinePercentage } from 'components/linePercentage/LinePercentage';\nimport { Modal } from 'components/modal/Modal';\nimport {\n fetchProtectedPositions,\n getWithdrawBreakdown,\n ProtectedPosition,\n withdrawProtection,\n} from 'services/web3/protection/positions';\nimport { checkPriceDeviationTooHigh } from 'services/web3/liquidity/liquidity';\nimport { useApproveModal } from 'hooks/useApproveModal';\nimport { liquidityProtection$ } from 'services/observables/contracts';\nimport { take } from 'rxjs/operators';\nimport { bntToken, getNetworkVariables } from 'services/web3/config';\nimport { EthNetworks } from 'services/web3/types';\nimport { useWeb3React } from '@web3-react/core';\nimport useAsyncEffect from 'use-async-effect';\nimport { useDebounce } from 'hooks/useDebounce';\nimport BigNumber from 'bignumber.js';\nimport {\n withdrawProtectedPosition,\n rejectNotification,\n withdrawProtectedPositionFailed,\n} from 'services/notifications/notifications';\nimport { useDispatch } from 'react-redux';\nimport { setProtectedPositions } from 'redux/liquidity/liquidity';\nimport { SwapSwitch } from '../../../swapSwitch/SwapSwitch';\nimport { wait } from '../../../../utils/pureFunctions';\n\ninterface Props {\n protectedPosition: ProtectedPosition;\n isModalOpen: boolean;\n setIsModalOpen: Function;\n}\n\nexport const WithdrawLiquidityWidget = ({\n protectedPosition,\n isModalOpen,\n setIsModalOpen,\n}: Props) => {\n const dispatch = useDispatch();\n const { chainId, account } = useWeb3React();\n const { positionId, reserveToken, currentCoveragePercent, pool } =\n protectedPosition;\n const { tknAmount } = protectedPosition.claimableAmount;\n const [amount, setAmount] = useState('');\n const [amountDebounce, setAmountebounce] = useDebounce('');\n const [isPriceDeviationToHigh, setIsPriceDeviationToHigh] = useState(false);\n const approveContract = useRef('');\n const token = useAppSelector(\n getTokenById(reserveToken.address)\n );\n const pools = useAppSelector((state) => state.pool.pools);\n const [breakdown, setBreakdown] = useState<\n { tkn: number; bnt: number } | undefined\n >();\n const gov = getNetworkVariables(\n chainId ? chainId : EthNetworks.Mainnet\n ).govToken;\n const govToken = useAppSelector(getTokenById(gov));\n const bnt = bntToken(chainId ?? EthNetworks.Mainnet);\n\n const withdrawingBNT = reserveToken.address === bnt;\n const protectionNotReached = currentCoveragePercent !== 1;\n const multiplierWillReset = true;\n const emtpyAmount = amount.trim() === '' || Number(amount) === 0;\n const tokenInsufficent = Number(amount) > Number(tknAmount);\n const withdrawDisabled = emtpyAmount || tokenInsufficent;\n\n useAsyncEffect(async (isMounted) => {\n if (isMounted())\n approveContract.current = await liquidityProtection$\n .pipe(take(1))\n .toPromise();\n }, []);\n\n const showVBNTWarning = useCallback(() => {\n if (token && token.address !== bnt) {\n return false;\n }\n if (!amount) {\n return false;\n }\n const govTokenBalance = govToken ? govToken.balance ?? 0 : 0;\n const initalStake = protectedPosition.initialStake.tknAmount;\n return new BigNumber(amount)\n .div(tknAmount)\n .times(initalStake)\n .gt(govTokenBalance);\n }, [\n amount,\n bnt,\n govToken,\n protectedPosition.initialStake.tknAmount,\n tknAmount,\n token,\n ]);\n\n useAsyncEffect(\n async (isMounted) => {\n const isPriceDeviationToHigh = await checkPriceDeviationTooHigh(\n pool,\n token!\n );\n setIsPriceDeviationToHigh(isPriceDeviationToHigh);\n\n if (isMounted()) {\n if (withdrawDisabled || withdrawingBNT) return;\n const res = await getWithdrawBreakdown(\n positionId,\n amountDebounce,\n tknAmount\n );\n\n if (res.bntAmount === '0') setBreakdown(undefined);\n else {\n const percentage = new BigNumber(res.actualAmount)\n .div(res.expectedAmount)\n .toNumber();\n\n setBreakdown({ tkn: percentage, bnt: 1 - percentage });\n }\n }\n },\n [amountDebounce]\n );\n\n const withdraw = useCallback(async () => {\n if (token)\n await withdrawProtection(\n positionId,\n amount,\n tknAmount,\n (txHash: string) => {\n withdrawProtectedPosition(dispatch, token, amount, txHash);\n setIsModalOpen(false);\n },\n async () => {\n const positions = await fetchProtectedPositions(pools, account!);\n dispatch(setProtectedPositions(positions));\n },\n () => rejectNotification(dispatch),\n () => withdrawProtectedPositionFailed(dispatch, token, amount)\n );\n setIsModalOpen(false);\n }, [\n account,\n amount,\n dispatch,\n pools,\n positionId,\n setIsModalOpen,\n tknAmount,\n token,\n ]);\n\n const [onStart, ModalApprove] = useApproveModal(\n [{ amount: amount, token: govToken! }],\n withdraw,\n approveContract.current\n );\n\n const handleWithdraw = useCallback(async () => {\n if (withdrawingBNT) {\n setIsModalOpen(false);\n await wait(1000);\n onStart();\n } else withdraw();\n }, [onStart, setIsModalOpen, withdraw, withdrawingBNT]);\n\n return (\n <>\n }\n >\n
\n \n
\n \n
\n {breakdown && (\n
\n
Output breakdown
\n
\n \n
\n
\n )}\n {withdrawingBNT && (\n
\n BNT withdrawals are subject to a 24h lock period before they can\n be claimed.\n
\n )}\n {isPriceDeviationToHigh && (\n
\n Due to price volatility, withdrawing from your protected position\n is currently not available. Please try again in a few minutes.\n
\n )}\n {showVBNTWarning() && (\n
\n Insufficient vBNT balance.\n
\n )}\n \n {emtpyAmount ? 'Enter Amount' : 'Withdraw'}\n \n
\n \n {ModalApprove}\n \n );\n};\n","import { CellProps } from 'react-table';\nimport { ReactComponent as IconChevronDown } from 'assets/icons/chevronDown.svg';\nimport { PropsWithChildren } from 'react';\n\ninterface Props {\n getExpandedContent?: () => JSX.Element;\n getCollapsedContent?: () => JSX.Element;\n getCannotExpandContent?: () => JSX.Element | string;\n cellData: PropsWithChildren>;\n canExpandMultiple?: boolean;\n}\n\nconst getDefaultExpandedContent = () => (\n \n);\nconst getDefaultCollapsedContent = () => (\n \n);\nconst getDefaultCannotExpandContent = () => '';\n\nexport const TableCellExpander = ({\n cellData,\n canExpandMultiple = false,\n getExpandedContent = getDefaultExpandedContent,\n getCollapsedContent = getDefaultCollapsedContent,\n getCannotExpandContent = getDefaultCannotExpandContent,\n}: Props) => {\n const {\n row: { canExpand, isExpanded, toggleRowExpanded },\n toggleAllRowsExpanded,\n } = cellData;\n\n const handleClick = () => {\n if (!canExpandMultiple && !isExpanded) {\n toggleAllRowsExpanded(false);\n }\n toggleRowExpanded(!isExpanded);\n };\n\n return canExpand ? (\n handleClick()}>\n {isExpanded ? getExpandedContent() : getCollapsedContent()}\n \n ) : (\n getCannotExpandContent()\n );\n};\n","import { useAppSelector } from 'redux/index';\nimport { ProtectedPositionGrouped } from 'services/web3/protection/positions';\nimport { useMemo, useState } from 'react';\nimport { TableColumn } from 'components/table/DataTable';\nimport { ProtectedPositionTableCellLiquidity } from 'elements/earn/portfolio/liquidityProtection/protectedPositions/ProtectedPositionTableCellLiquidity';\nimport { ProtectedPositionTableCellAmount } from 'elements/earn/portfolio/liquidityProtection/protectedPositions/ProtectedPositionTableCellStake';\nimport { ProtectedPositionTableCellFees } from 'elements/earn/portfolio/liquidityProtection/protectedPositions/ProtectedPositionTableCellFees';\nimport { ProtectedPositionTableCellRoi } from 'elements/earn/portfolio/liquidityProtection/protectedPositions/ProtectedPositionTableCellRoi';\nimport { getGroupedPositions } from 'redux/liquidity/liquidity';\nimport { ProtectedPositionTableCellActions } from 'elements/earn/portfolio/liquidityProtection/protectedPositions/ProtectedPositionTableCellActions';\nimport { ProtectedPositionTableCellClaimable } from 'elements/earn/portfolio/liquidityProtection/protectedPositions/ProtectedPositionTableCellClaimable';\n\nexport const useProtectedPositions = () => {\n const groupedPositions =\n useAppSelector(getGroupedPositions);\n const [search, setSearch] = useState('');\n\n const data = useMemo(\n () =>\n groupedPositions.filter((pos) =>\n pos.reserveToken.symbol.toLowerCase().includes(search.toLowerCase())\n ),\n [groupedPositions, search]\n );\n const columns = useMemo[]>(\n () => [\n {\n id: 'liquidity',\n Header: 'Liquidity',\n accessor: 'pool',\n Cell: (cellData) =>\n ProtectedPositionTableCellLiquidity(cellData.row.original),\n minWidth: 130,\n sortDescFirst: true,\n },\n {\n id: 'initialStake',\n accessor: 'initialStake',\n Header: 'Initial Stake',\n Cell: (cellData) =>\n ProtectedPositionTableCellAmount({\n tknAmount: cellData.value.tknAmount,\n usdAmount: cellData.value.usdAmount,\n symbol: cellData.row.original.reserveToken.symbol,\n }),\n minWidth: 130,\n sortDescFirst: true,\n headerClassName: 'justify-center',\n tooltip: 'Amount of tokens you originally staked in the pool',\n },\n {\n id: 'protected',\n accessor: 'protectedAmount',\n Header: 'Protected',\n Cell: (cellData) =>\n ProtectedPositionTableCellAmount({\n tknAmount: cellData.value.tknAmount,\n usdAmount: cellData.value.usdAmount,\n symbol: cellData.row.original.reserveToken.symbol,\n }),\n minWidth: 130,\n sortDescFirst: true,\n headerClassName: 'justify-center',\n tooltip:\n 'Amount of tokens you can withdraw with 100% protection + fees',\n },\n {\n id: 'claimable',\n accessor: 'claimableAmount',\n Header: 'Claimable',\n Cell: (cellData) => ProtectedPositionTableCellClaimable(cellData.row),\n minWidth: 130,\n sortDescFirst: true,\n headerClassName: 'justify-center',\n tooltip:\n 'Amount of tokens you can withdraw right now (assuming you have not earned full protection, this value will be lower than Protected Value)',\n },\n {\n id: 'feesRewards',\n accessor: 'rewardsMultiplier',\n Header: 'Fees & Rewards',\n Cell: (cellData) =>\n ProtectedPositionTableCellFees(cellData.row.original),\n minWidth: 130,\n sortDescFirst: true,\n headerClassName: 'justify-center',\n tooltip:\n 'Fees and rewards earned by your stake since you entered the pool.',\n },\n {\n id: 'roi',\n accessor: 'roi',\n Header: 'ROI',\n Cell: (cellData) =>\n ProtectedPositionTableCellRoi(cellData.row.original),\n minWidth: 130,\n disableSortBy: true,\n headerClassName: 'justify-center',\n tooltip:\n 'The ROI of your fully protected value vs. your initial stake.',\n },\n // {\n // id: 'apr',\n // Header: 'APR',\n // accessor: 'aprs',\n // Cell: (cellData) => {\n // return (\n //
\n //
Day {(Number(cellData.value.day) * 100).toFixed(2)} %
\n //
Week {(Number(cellData.value.week) * 100).toFixed(2)} %
\n //
\n // );\n // },\n // minWidth: 130,\n // sortDescFirst: true,\n // },\n {\n id: 'expander',\n accessor: 'subRows',\n minWidth: 250,\n width: 250,\n Cell: (cellData) => ProtectedPositionTableCellActions(cellData),\n },\n ],\n []\n );\n\n return { search, setSearch, data, columns };\n};\n","import { ProtectedPositionGrouped } from 'services/web3/protection/positions';\nimport { Image } from 'components/image/Image';\n\nexport const ProtectedPositionTableCellLiquidity = (\n position: ProtectedPositionGrouped\n) => {\n const isGroup = position.groupId && position.groupId.includes('-');\n return (\n
\n
\n \n
{position.reserveToken.symbol}
\n
\n
\n {position.pool.name}\n
\n
\n );\n};\n","import { ProtectedPositionGrouped } from 'services/web3/protection/positions';\nimport { Row } from 'react-table';\nimport { prettifyNumber } from 'utils/helperFunctions';\nimport { ReactComponent as IconClock } from 'assets/icons/clock.svg';\nimport { Tooltip } from 'components/tooltip/Tooltip';\nimport BigNumber from 'bignumber.js';\n\nexport const ProtectedPositionTableCellClaimable = (\n row: Row\n) => {\n const { tknAmount, usdAmount } = row.original.claimableAmount;\n const { symbol } = row.original.reserveToken;\n const currentCoveragePercent = new BigNumber(\n row.original.currentCoveragePercent\n )\n .times(100)\n .toFixed(0);\n return (\n
\n
\n {!row.canExpand && (\n }\n />\n )}\n {`${prettifyNumber(tknAmount)} ${symbol}`}\n
\n
\n {prettifyNumber(usdAmount, true)} USD\n
\n
\n );\n};\n","import { ProtectedPositionGrouped } from 'services/web3/protection/positions';\nimport { prettifyNumber } from 'utils/helperFunctions';\nimport BigNumber from 'bignumber.js';\n\nexport const ProtectedPositionTableCellFees = (\n position: ProtectedPositionGrouped\n) => {\n const hasRewards = new BigNumber(position.rewardsAmount).isGreaterThan(0);\n const isSubRow = !position.groupId;\n\n return (\n
\n
\n {prettifyNumber(position.fees)} {position.reserveToken.symbol}\n
\n {hasRewards && !isSubRow && (\n
\n
\n + {prettifyNumber(position.rewardsAmount)} BNT | X\n {Number(position.rewardsMultiplier).toFixed(2)}\n
\n
\n )}\n
\n );\n};\n","import { ProtectedPositionGrouped } from 'services/web3/protection/positions';\nimport BigNumber from 'bignumber.js';\n\nexport const ProtectedPositionTableCellRoi = (\n position: ProtectedPositionGrouped\n) => {\n const hasRewards = new BigNumber(position.rewardsAmount).isGreaterThan(0);\n const isSubRow = !position.groupId;\n const fees = Number(position.roi.fees);\n\n return (\n
\n
\n {fees > 0 ? (fees * 100).toFixed(2) : '0.00'} %\n
\n {hasRewards && !isSubRow && (\n
\n
\n + {(Number(position.roi.reserveRewards) * 100).toFixed(2)} %\n
\n
\n )}\n
\n );\n};\n","import {\n ProtectedPosition,\n ProtectedPositionGrouped,\n} from 'services/web3/protection/positions';\nimport { CellProps } from 'react-table';\nimport { ReactComponent as IconWithdraw } from 'assets/icons/withdraw.svg';\nimport { PropsWithChildren, useCallback, useMemo, useState } from 'react';\nimport { WithdrawLiquidityWidget } from 'elements/earn/portfolio/withdrawLiquidity/WithdrawLiquidityWidget';\nimport { TableCellExpander } from 'components/table/TableCellExpander';\nimport { StakeRewardsBtn } from '../rewards/StakeRewardsBtn';\nimport BigNumber from 'bignumber.js';\n\nexport const ProtectedPositionTableCellActions = (\n cellData: PropsWithChildren<\n CellProps\n >\n) => {\n const [isModalOpen, setIsModalOpen] = useState(false);\n const { row } = cellData;\n const position = row.original;\n const canStakeRewards = useMemo(\n () => new BigNumber(position.rewardsAmount).gt(0) && position.groupId,\n [position.groupId, position.rewardsAmount]\n );\n\n const getCannotExpandContent = useCallback(\n () => (\n <>\n \n setIsModalOpen(true)}\n className=\"btn-outline-primary btn-sm rounded-[12px] !w-[35px] !h-[35px] p-0 border shadow-header\"\n >\n \n \n \n ),\n [isModalOpen, position]\n );\n\n return (\n
\n {canStakeRewards && (\n \n )}\n {TableCellExpander({\n cellData,\n getCannotExpandContent,\n })}\n
\n );\n};\n","import { DataTable } from 'components/table/DataTable';\nimport { useProtectedPositions } from 'elements/earn/portfolio/liquidityProtection/protectedPositions/useProtectedPositions';\nimport { ProtectedPositionGrouped } from 'services/web3/protection/positions';\nimport { SearchInput } from 'components/searchInput/SearchInput';\n\nexport const ProtectedPositionsTable = ({ loading }: { loading: boolean }) => {\n const { data, columns, search, setSearch } = useProtectedPositions();\n\n return (\n
\n
\n

My Protected Positions

\n \n
\n\n \n data={data}\n columns={columns}\n isLoading={loading}\n stickyColumn\n search={search}\n />\n
\n );\n};\n","import { take } from 'rxjs/operators';\nimport {\n liquidityProtection$,\n liquidityProtectionStore$,\n} from 'services/observables/contracts';\nimport dayjs from 'utils/dayjs';\nimport { web3, writeWeb3 } from 'services/web3';\nimport {\n LiquidityProtectionStore__factory,\n LiquidityProtection__factory,\n} from '../abis/types';\nimport { ErrorCode } from '../types';\nimport { shrinkToken } from 'utils/formulas';\nimport { partition } from 'lodash';\n\nexport interface LockedBnt {\n bnt: number;\n expiry: number;\n}\n\nexport interface LockedAvailableBnt {\n locked: LockedBnt[];\n available: number;\n}\n\nexport const fetchLockedAvailableBalances = async (\n user: string\n): Promise => {\n try {\n const storeAddress = await liquidityProtectionStore$\n .pipe(take(1))\n .toPromise();\n const contract = LiquidityProtectionStore__factory.connect(\n storeAddress,\n web3.provider\n );\n\n const lockedBalanceCount = Number(await contract.lockedBalanceCount(user));\n if (lockedBalanceCount === 0) return;\n\n const lockedBalances = await contract.lockedBalanceRange(\n user,\n 0,\n lockedBalanceCount\n );\n\n const bnts = lockedBalances['0'];\n const expirys = lockedBalances['1'];\n\n const res = bnts.map((bnt, index) => ({\n bnt: Number(shrinkToken(bnt.toString(), 18)),\n expiry: Number(expirys[index]),\n }));\n\n const now = dayjs().unix() * 1000;\n const [available, locked] = partition(res, (x) =>\n dayjs.unix(x.expiry).isBefore(now)\n );\n\n const totalAvailable =\n available.length === 0\n ? 0\n : available.map((x) => x.bnt).reduce((item, prev) => item + prev);\n\n return {\n locked: locked.map((x) => ({ ...x, expiry: x.expiry * 1000 })),\n available: totalAvailable,\n };\n } catch (error) {\n console.error(error);\n }\n};\n\nexport const claimBnt = async (\n onHash: (txHash: string) => void,\n onCompleted: Function,\n rejected: Function,\n failed: (error: string) => void\n) => {\n try {\n const liquidityProtectionContract = await liquidityProtection$\n .pipe(take(1))\n .toPromise();\n const contract = LiquidityProtection__factory.connect(\n liquidityProtectionContract,\n writeWeb3.signer\n );\n\n const tx = await contract.claimBalance('0', '1000');\n onHash(tx.hash);\n\n await tx.wait();\n onCompleted();\n } catch (e: any) {\n if (e.code === ErrorCode.DeniedTx) rejected();\n else failed(e.message);\n }\n};\n","import { useDispatch } from 'react-redux';\nimport {\n claimBntNotification,\n rejectNotification,\n} from 'services/notifications/notifications';\nimport { Token } from 'services/observables/tokens';\nimport { claimBnt } from 'services/web3/lockedbnt/lockedbnt';\nimport { prettifyNumber } from 'utils/helperFunctions';\nimport { Image } from '../../../../../components/image/Image';\n\ninterface ClaimAvailableProps {\n bnt?: Token;\n availableBNT: number;\n loading: boolean;\n}\n\nexport const ClaimAvailable = ({\n bnt,\n availableBNT,\n loading,\n}: ClaimAvailableProps) => {\n const dispatch = useDispatch();\n const noBntToClaim = availableBNT === 0;\n\n return (\n
\n

Available to Claim

\n
\n {loading ? (\n
\n
\n
\n ) : (\n
\n
\n
\n \"BNT\n {noBntToClaim ? (\n No BNT to claim\n ) : (\n <>\n {bnt?.symbol}\n \n {prettifyNumber(availableBNT)}\n \n {`(~${prettifyNumber(\n bnt && bnt.usdPrice\n ? Number(bnt.usdPrice) * availableBNT\n : 0,\n true\n )})`}\n \n )}\n
\n \n claimBnt(\n (txHash) => {\n claimBntNotification(\n dispatch,\n txHash,\n prettifyNumber(availableBNT)\n );\n },\n () => {},\n () => rejectNotification(dispatch),\n () => {}\n )\n }\n disabled={noBntToClaim}\n >\n Claim BNT\n \n
\n
\n )}\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 SvgLink(_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: \"100%\",\n height: \"100%\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n stroke: \"currentColor\",\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 strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLink);\nexport default __webpack_public_path__ + \"static/media/link.6b4d865a.svg\";\nexport { ForwardRef as ReactComponent };","import { Image } from '../../../../../components/image/Image';\nimport { Token } from 'services/observables/tokens';\nimport { LockedBnt } from 'services/web3/lockedbnt/lockedbnt';\nimport { ReactComponent as IconLock } from 'assets/icons/locked.svg';\nimport { prettifyNumber } from 'utils/helperFunctions';\nimport { CountdownTimer } from 'components/countdownTimer/CountdownTimer';\nimport { UTCTimestamp } from 'lightweight-charts';\nimport { isMobile } from 'react-device-detect';\n\ninterface ClaimLockedProps {\n bnt?: Token;\n lockedBNT: LockedBnt[];\n loading: boolean;\n}\n\nexport const ClaimLocked = ({ bnt, lockedBNT, loading }: ClaimLockedProps) => {\n const noBntLocked = lockedBNT.length === 0;\n\n return (\n
\n

Locked

\n
\n\n {loading ? (\n
\n
\n
\n ) : (\n
\n
\n {noBntLocked ? (\n
\n <>\n \n No BNT locked\n \n
\n ) : (\n <>\n {lockedBNT.map((lock, index) => (\n
\n
\n
\n {!isMobile && }\n \n
{bnt?.symbol}
\n
{prettifyNumber(lock.bnt)}
\n
{`(~${prettifyNumber(\n bnt && bnt.usdPrice\n ? Number(bnt.usdPrice) * lock.bnt\n : 0,\n true\n )})`}
\n
\n
\n
\n \n
\n {!isMobile && 'left to claim'}\n
\n
\n {index !== lockedBNT.length - 1 && (\n
\n )}\n
\n ))}\n \n )}\n
\n
\n )}\n
\n );\n};\n","import { MyStake } from './protectedPositions/MyStake';\nimport { MyRewards } from './rewards/MyRewards';\nimport { ProtectedPositionsTable } from './protectedPositions/ProtectedPositionsTable';\nimport { ClaimAvailable } from './claim/ClaimAvailable';\nimport { ClaimLocked } from './claim/ClaimLocked';\nimport { useWeb3React } from '@web3-react/core';\nimport { useAppSelector } from 'redux/index';\nimport { getTokenById } from 'redux/bancor/bancor';\nimport { Token } from 'services/observables/tokens';\nimport { bntToken } from 'services/web3/config';\nimport { LockedAvailableBnt } from 'services/web3/lockedbnt/lockedbnt';\nimport { EthNetworks } from 'services/web3/types';\n\nexport const LiquidityProtection = () => {\n const { chainId } = useWeb3React();\n const bnt = useAppSelector(\n getTokenById(bntToken(chainId ?? EthNetworks.Mainnet))\n );\n const lockedAvailableBNT = useAppSelector(\n (state) => state.liquidity.lockedAvailableBNT\n );\n const loadingLockedBnt = useAppSelector(\n (state) => state.liquidity.loadingLockedBnt\n );\n\n const loadingPositions = useAppSelector(\n (state) => state.liquidity.loadingPositions\n );\n\n return (\n
\n

\n Manage your protected positions in Bancor pools and track and analyze\n your returns.\n

\n\n
\n \n \n
\n\n \n\n

Closed Positions

\n

\n When unstaking protected positions, you will be able to see and claim\n your BNT here\n

\n
\n \n \n
\n
\n );\n};\n","import { useDispatch } from 'react-redux';\nimport {\n rejectNotification,\n removeLiquidityNotification,\n removeLiquidityNotificationFailed,\n} from 'services/notifications/notifications';\nimport { PoolToken } from 'services/observables/tokens';\nimport { removeLiquidity } from 'services/web3/liquidity/liquidity';\n\nexport const PoolTokensCellActions = (poolToken: PoolToken) => {\n const dispatch = useDispatch();\n\n return (\n \n removeLiquidity(\n poolToken,\n (txHash: string) =>\n removeLiquidityNotification(\n dispatch,\n poolToken.amount,\n poolToken.poolName,\n txHash\n ),\n () => {},\n () => rejectNotification(dispatch),\n () =>\n removeLiquidityNotificationFailed(\n dispatch,\n poolToken.amount,\n poolToken.poolName\n )\n )\n }\n className=\"btn-outline-primary border border-primary dark:border-primary-light h-[30px]\"\n >\n Remove Liquidity\n \n );\n};\n","import { Image } from 'components/image/Image';\nimport { Reserve, Token } from 'services/observables/tokens';\n\nexport const TokensOverlap = ({ tokens }: { tokens: Token[] | Reserve[] }) => {\n return (\n
\n {tokens.map((token, index) => (\n \n ))}\n
\n );\n};\n","import { ReactComponent as IconSearch } from 'assets/icons/search.svg';\nimport { DataTable, TableColumn } from 'components/table/DataTable';\nimport { useMemo, useState } from 'react';\nimport { useAppSelector } from 'redux/index';\nimport { PoolToken } from 'services/observables/tokens';\nimport { prettifyNumber } from 'utils/helperFunctions';\nimport { PoolTokensCellActions } from './PoolTokensCellActions';\nimport { PoolTokensCellName } from './PoolTokensCellName';\nimport { PoolTokensCellReserve } from './PoolTokensCellReserve';\n\nexport const PoolTokensTable = () => {\n const [search, setSearch] = useState('');\n const poolTokens = useAppSelector(\n (state) => state.liquidity.poolTokens\n );\n\n const data = useMemo(() => {\n return poolTokens.filter((p) =>\n p.bnt.token.symbol.toLowerCase().includes(search.toLowerCase())\n );\n }, [poolTokens, search]);\n\n const columns = useMemo[]>(\n () => [\n {\n id: 'name',\n Header: 'Name',\n accessor: 'bnt',\n Cell: (cellData) => PoolTokensCellName(cellData.row.original),\n minWidth: 130,\n },\n {\n id: 'amount',\n Header: 'Amount',\n accessor: 'amount',\n Cell: (cellData) => prettifyNumber(cellData.value),\n minWidth: 130,\n },\n {\n id: 'value',\n Header: 'Value',\n accessor: 'value',\n Cell: (cellData) => prettifyNumber(cellData.value, true),\n minWidth: 130,\n },\n {\n id: 'breakdown',\n Header: 'Reserve Breakdown',\n accessor: 'tkn',\n Cell: (cellData) => PoolTokensCellReserve(cellData.row.original),\n minWidth: 130,\n },\n {\n id: 'actions',\n Header: '',\n accessor: 'converter',\n Cell: (cellData) => PoolTokensCellActions(cellData.row.original),\n minWidth: 130,\n },\n ],\n []\n );\n\n return (\n
\n
\n

Pool Tokens

\n
\n \n setSearch(e.target.value)}\n placeholder=\"Search\"\n className=\"block w-full max-w-[160px] border border-grey-2 rounded-10 pl-[38px] h-[35px] dark:bg-blue-4 dark:border-grey-4 focus:outline-none focus:border-primary\"\n />\n
\n
\n\n \n data={data}\n columns={columns}\n isLoading={!data.length}\n stickyColumn\n />\n
\n );\n};\n","import { TokensOverlap } from 'components/tokensOverlap/TokensOverlap';\nimport { PoolToken } from 'services/observables/tokens';\n\nexport const PoolTokensCellName = (poolToken: PoolToken) => {\n return (\n
\n \n
{poolToken.tkn.token.symbol} Pool
\n
\n );\n};\n","import { PoolToken } from 'services/observables/tokens';\nimport { Image } from 'components/image/Image';\nimport { prettifyNumber } from 'utils/helperFunctions';\n\nexport const PoolTokensCellReserve = (poolToken: PoolToken) => {\n return (\n
\n \n {`${poolToken.bnt.token.symbol} ${prettifyNumber(poolToken.bnt.amount)}`}\n
+
\n \n {`${poolToken.tkn.token.symbol} ${prettifyNumber(poolToken.tkn.amount)}`}\n
\n );\n};\n","import { PoolTokensTable } from './poolTokensTable/PoolTokensTable';\n\nexport const PoolTokens = () => {\n return (\n
\n

Manage your Bancor pool tokens.

\n\n \n
\n );\n};\n","import { LiquidityProtection } from 'elements/earn/portfolio/liquidityProtection/LiquidityProtection';\nimport { useState } from 'react';\nimport { PoolTokens } from 'elements/earn/portfolio/poolTokens/PoolTokens';\nimport { classNameGenerator } from 'utils/pureFunctions';\nimport { useAppSelector } from 'redux/index';\nimport { PoolToken } from 'services/observables/tokens';\n\nexport const Portfolio = () => {\n const [selectedTab, setSelectedTab] = useState<'protection' | 'pooltokens'>(\n 'protection'\n );\n const poolTokens = useAppSelector(\n (state) => state.liquidity.poolTokens\n );\n\n return (\n
\n

\n Portfolio\n

\n
\n setSelectedTab('protection')}\n className={`pb-4 w-[170px] text-left ${classNameGenerator({\n 'font-semibold border-b-2 border-primary':\n selectedTab === 'protection',\n 'font-light border-b border-grey-3': selectedTab !== 'protection',\n })}`}\n >\n Liquidity Protection\n \n {!!poolTokens.length && (\n setSelectedTab('pooltokens')}\n className={`pb-4 w-[110px] text-right ${classNameGenerator({\n 'font-semibold border-b-2 border-primary':\n selectedTab === 'pooltokens',\n 'font-light border-b border-grey-3': selectedTab !== 'pooltokens',\n })}`}\n >\n Pool Tokens\n \n )}\n
\n {selectedTab === 'protection' && }\n {selectedTab === 'pooltokens' && }\n
\n );\n};\n","import { ReactComponent as IconCheck } from 'assets/icons/check.svg';\n\nexport enum Operations {\n fiatIn,\n fiatOut,\n}\n\nexport enum DepositMethods {\n wire = 'Wire Transfer',\n creditCard = 'Credit Card',\n debitCard = 'Debit Card',\n samsungPay = 'Samsung Pay',\n googlePay = 'Google Pay',\n applePay = 'Apple Pay',\n ideal = 'iDeal',\n interac = 'Interac',\n sepa = 'SEPA',\n openBanking = 'Open Banking',\n sepaInstant = 'SEPA Instant',\n fasterPayments = 'Faster Payments',\n}\n\nexport interface Fiat {\n name: string;\n text: string;\n logo: React.FunctionComponent<\n React.SVGProps & {\n title?: string | undefined;\n }\n >;\n operations: Operations[];\n depositMethods: DepositMethods[];\n buyUrl?: string;\n sellUrl?: string;\n smallGap?: boolean;\n}\n\nexport const FiatBox = ({ fiat }: { fiat: Fiat }) => {\n const fiatIn = fiat.operations.includes(Operations.fiatIn);\n const fiatOut = fiat.operations.includes(Operations.fiatOut);\n\n return (\n
\n \n
\n Available Operations\n {fiatIn && (\n
\n Fiat in\n
\n )}\n {fiatOut && (\n
\n Fiat Out\n
\n )}\n
\n {fiat.text}\n
\n {fiatIn && (\n \n Buy\n \n )}\n {fiatOut && (\n \n Sell\n \n )}\n
\n
\n
\n
Deposit Methods
\n \n {fiat.depositMethods.map((method) => (\n
\n \n {method}\n
\n ))}\n
\n
\n
\n );\n};\n","import { take } from 'rxjs/operators';\nimport { networkVars$ } from 'services/observables/network';\nimport { Token } from 'services/observables/tokens';\nimport { shrinkToken, expandToken } from 'utils/formulas';\nimport { web3, writeWeb3 } from 'services/web3';\nimport { ErrorCode } from '../types';\nimport { Governance__factory } from '../abis/types';\nimport dayjs from 'utils/dayjs';\n\nexport const getStakedAmount = async (\n user: string,\n govToken: Token\n): Promise => {\n const networkVars = await networkVars$.pipe(take(1)).toPromise();\n const govContract = Governance__factory.connect(\n networkVars.governanceContractAddress,\n web3.provider\n );\n const amount = await govContract.votesOf(user);\n return shrinkToken(amount.toString(), govToken.decimals);\n};\n\nexport const stakeAmount = async (\n amount: string,\n govToken: Token,\n onHash: (txHash: string) => void,\n onCompleted: Function,\n rejected: Function,\n failed: Function\n) => {\n try {\n const expandedAmount = expandToken(amount, govToken.decimals);\n\n const networkVars = await networkVars$.pipe(take(1)).toPromise();\n const govContract = Governance__factory.connect(\n networkVars.governanceContractAddress,\n writeWeb3.signer\n );\n\n const tx = await govContract.stake(expandedAmount);\n onHash(tx.hash);\n await tx.wait();\n onCompleted();\n } catch (e: any) {\n if (e.code === ErrorCode.DeniedTx) rejected();\n else failed();\n }\n};\n\nexport const unstakeAmount = async (\n amount: string,\n govToken: Token,\n onHash: (txHash: string) => void,\n onCompleted: Function,\n rejected: Function,\n failed: Function\n) => {\n try {\n const expandedAmount = expandToken(amount, govToken.decimals);\n\n const networkVars = await networkVars$.pipe(take(1)).toPromise();\n const govContract = Governance__factory.connect(\n networkVars.governanceContractAddress,\n writeWeb3.signer\n );\n\n const tx = await govContract.unstake(expandedAmount);\n onHash(tx.hash);\n await tx.wait();\n onCompleted();\n } catch (e: any) {\n if (e.code === ErrorCode.DeniedTx) rejected();\n else failed();\n }\n};\n\nexport const getUnstakeTimer = async (user: string) => {\n const now = dayjs().unix() * 1000;\n const networkVars = await networkVars$.pipe(take(1)).toPromise();\n const govContract = Governance__factory.connect(\n networkVars.governanceContractAddress,\n web3.provider\n );\n const locks = await govContract.voteLocks(user);\n const time = Number(locks) * 1000;\n if (time - now > 0) return time;\n\n return undefined;\n};\n","import { Modal } from 'components/modal/Modal';\nimport { SwapSwitch } from 'elements/swapSwitch/SwapSwitch';\nimport { useMemo, useState } from 'react';\nimport { Token } from 'services/observables/tokens';\nimport { wait } from 'utils/pureFunctions';\nimport {\n stakeAmount,\n unstakeAmount,\n} from 'services/web3/governance/governance';\nimport { useWeb3React } from '@web3-react/core';\nimport { useDispatch } from 'react-redux';\nimport { useEffect } from 'react';\nimport { getNetworkVariables } from 'services/web3/config';\nimport { fetchTokenBalances } from 'services/observables/balances';\nimport { updateTokens } from 'redux/bancor/bancor';\nimport { EthNetworks } from 'services/web3/types';\nimport {\n rejectNotification,\n stakeFailedNotification,\n stakeNotification,\n unstakeFailedNotification,\n unstakeNotification,\n} from 'services/notifications/notifications';\nimport { useApproveModal } from 'hooks/useApproveModal';\nimport { TokenInputPercentage } from 'components/tokenInputPercentage/TokenInputPercentage';\n\ninterface ModalVbntProps {\n setIsOpen: Function;\n isOpen: boolean;\n token: Token;\n stake: boolean;\n stakeBalance?: string;\n onCompleted?: Function;\n}\n\nexport const ModalVbnt = ({\n setIsOpen,\n isOpen,\n token,\n stake,\n stakeBalance,\n onCompleted,\n}: ModalVbntProps) => {\n const { account, chainId } = useWeb3React();\n const [amount, setAmount] = useState('');\n const percentages = useMemo(() => [25, 50, 75, 100], []);\n const [, setSelPercentage] = useState(-1);\n const dispatch = useDispatch();\n\n const stakeDisabled = !account || !chainId || !amount || Number(amount) === 0;\n\n const fieldBlance = stake\n ? token.balance\n ? token.balance\n : undefined\n : stakeBalance;\n\n useEffect(() => {\n if (amount && fieldBlance) {\n const percentage = (Number(amount) / Number(fieldBlance)) * 100;\n setSelPercentage(\n percentages.findIndex((x) => percentage.toFixed(10) === x.toFixed(10))\n );\n }\n }, [amount, token, percentages, fieldBlance]);\n\n const handleStakeUnstake = async () => {\n if (stakeDisabled || !account || !chainId) return;\n\n if (stake)\n await stakeAmount(\n amount,\n token,\n (txHash: string) => stakeNotification(dispatch, amount, txHash),\n () => refreshBalances(token, account),\n () => rejectNotification(dispatch),\n () => stakeFailedNotification(dispatch, amount)\n );\n else\n await unstakeAmount(\n amount,\n token,\n (txHash: string) => unstakeNotification(dispatch, amount, txHash),\n () => refreshBalances(token, account),\n () => rejectNotification(dispatch),\n () => unstakeFailedNotification(dispatch, amount)\n );\n };\n\n const [checkApprove, ModalApprove] = useApproveModal(\n [{ amount: amount, token: token }],\n handleStakeUnstake,\n getNetworkVariables(chainId ? chainId : EthNetworks.Mainnet)\n .governanceContractAddress\n );\n\n const refreshBalances = async (token: Token, account: string) => {\n await wait(8000);\n const balances = await fetchTokenBalances([token], account);\n dispatch(updateTokens(balances));\n if (onCompleted) onCompleted();\n };\n\n return (\n <>\n }\n setIsOpen={setIsOpen}\n isOpen={isOpen}\n separator\n large\n >\n
\n
\n
\n {false && (\n
\n Chose the amount you want to stake. you can decide if you want\n the amount in Dollars or Token input\n
\n )}\n \n {\n setAmount('');\n setIsOpen(false);\n if (stake) checkApprove();\n else handleStakeUnstake();\n }}\n disabled={stakeDisabled}\n className={`btn-primary rounded w-full mt-30 mb-10`}\n >\n {`${stake ? 'Stake' : 'Unstake'} vBNT`}\n \n
\n
\n \n {ModalApprove}\n \n );\n};\n","import { useWeb3React } from '@web3-react/core';\nimport { ReactComponent as IconLink } from 'assets/icons/link.svg';\nimport { CountdownTimer } from 'components/countdownTimer/CountdownTimer';\nimport { ModalVbnt } from 'elements/modalVbnt/ModalVbnt';\nimport { useCallback, useState } from 'react';\nimport { useEffect } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { useAppSelector } from 'redux/index';\nimport { openWalletModal } from 'redux/user/user';\nimport { Token } from 'services/observables/tokens';\nimport { getNetworkVariables } from 'services/web3/config';\nimport {\n getStakedAmount,\n getUnstakeTimer,\n} from 'services/web3/governance/governance';\nimport { EthNetworks } from 'services/web3/types';\nimport { prettifyNumber } from 'utils/helperFunctions';\nimport { openNewTab } from 'utils/pureFunctions';\n\ninterface VoteCardProps {\n title: string;\n step: number;\n content: string;\n button: string;\n onClick: Function;\n footer: JSX.Element;\n}\nconst VoteCard = ({\n title,\n step,\n content,\n button,\n onClick,\n footer,\n}: VoteCardProps) => {\n return (\n
\n
\n
{`Step ${step}`}
\n {title}\n
\n
\n {content}\n
\n onClick()}\n >\n {button}\n \n
\n
{footer}
\n
\n );\n};\n\nexport const Vote = () => {\n const { chainId, account } = useWeb3React();\n const tokens = useAppSelector((state) => state.bancor.tokens);\n const [govToken, setGovToken] = useState();\n const [stakeAmount, setStakeAmount] = useState();\n const [unstakeTime, setUnstakeTime] = useState();\n const [stakeModal, setStakeModal] = useState(false);\n const [isStake, setIsStake] = useState(false);\n const dispatch = useDispatch();\n\n useEffect(() => {\n const networkVars = getNetworkVariables(\n chainId ? chainId : EthNetworks.Mainnet\n );\n setGovToken(tokens.find((x) => x.address === networkVars.govToken));\n }, [tokens, chainId]);\n\n const refresh = useCallback(async () => {\n if (account && govToken) {\n const [unstakeTimer, stakedAmount] = await Promise.all([\n getUnstakeTimer(account),\n getStakedAmount(account, govToken),\n ]);\n setUnstakeTime(unstakeTimer);\n setStakeAmount(stakedAmount);\n } else {\n setUnstakeTime(undefined);\n setStakeAmount(undefined);\n }\n }, [account, govToken]);\n\n useEffect(() => {\n refresh();\n }, [refresh]);\n\n return (\n
\n
\n Vote\n
\n
\n Bancor is a DAO managed by vBNT stakers who determine the future of the\n protocol with their proposals.\n
\n\n
\n {\n if (!account) {\n dispatch(openWalletModal(true));\n return;\n }\n\n setIsStake(true);\n setStakeModal(true);\n }}\n footer={\n
\n
\n {!account || (govToken && govToken.balance) ? (\n
\n {govToken && govToken.balance\n ? `${prettifyNumber(govToken.balance)} ${govToken.symbol}`\n : '--'}\n
\n ) : (\n
\n )}\n Unstaked Balance\n
\n
\n {!account || stakeAmount ? (\n
\n {stakeAmount && govToken\n ? `${prettifyNumber(stakeAmount)} ${govToken.symbol}`\n : '--'}\n
\n ) : (\n
\n )}\n Staked Balance\n
\n
\n }\n />\n {\n openNewTab('https://vote.bancor.network/');\n }}\n footer={\n
\n \n How to Vote \n \n
\n }\n />\n\n
\n
\n
\n Unstake from Governance\n
\n\n
\n In order to remove vBNT from governance you would need to unstake\n them first.\n
\n\n {\n setIsStake(false);\n setStakeModal(true);\n }}\n >\n {unstakeTime && (\n \n \n \n )}\n Unstake Tokens\n \n
\n
\n
\n
\n Legacy onchain contract\n
\n\n
\n View previous votes and decisions made onchain.\n
\n\n \n View Legacy Gov \n \n
\n
\n
\n {govToken && (\n \n )}\n
\n );\n};\n","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9;\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 SvgMoonpay(_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: 133,\n height: 41,\n viewBox: \"0 0 133 41\",\n fill: \"currentColor\",\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: \"M43.8286 31.0219H46.5974V20.6321L50.8624 31.0219H53.0952L57.3378 20.6321V31.0219H60.1068V15.3477H56.7126L51.9788 26.9242L47.245 15.3477H43.8286V31.0219Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M67.6826 31.2012C71.099 31.2012 73.5552 28.738 73.5552 25.3793C73.5552 22.0205 71.099 19.5574 67.6826 19.5574C64.2441 19.5574 61.7876 22.0205 61.7876 25.3793C61.7876 28.738 64.2441 31.2012 67.6826 31.2012ZM67.6826 28.8277C65.807 28.8277 64.5567 27.4169 64.5567 25.3793C64.5567 23.3416 65.807 21.9309 67.6826 21.9309C69.536 21.9309 70.7864 23.3416 70.7864 25.3793C70.7864 27.4169 69.536 28.8277 67.6826 28.8277Z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M80.2541 31.2012C83.6705 31.2012 86.1267 28.738 86.1267 25.3793C86.1267 22.0205 83.6705 19.5574 80.2541 19.5574C76.8153 19.5574 74.3591 22.0205 74.3591 25.3793C74.3591 28.738 76.8153 31.2012 80.2541 31.2012ZM80.2541 28.8277C78.3783 28.8277 77.1279 27.4169 77.1279 25.3793C77.1279 23.3416 78.3783 21.9309 80.2541 21.9309C82.1073 21.9309 83.3579 23.3416 83.3579 25.3793C83.3579 27.4169 82.1073 28.8277 80.2541 28.8277Z\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M87.5334 31.022H90.2801V24.8643C90.2801 23.2072 91.3519 21.9981 92.8924 21.9981C94.2992 21.9981 95.237 23.0729 95.237 24.6179V31.022H97.9836V24.0357C97.9836 21.3935 96.3312 19.5574 93.7856 19.5574C92.1781 19.5574 90.9053 20.2515 90.2801 21.4831V19.7365H87.5334V31.022Z\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M100.264 31.0219H103.234V25.0657H106.538C109.799 25.0657 111.741 23.0504 111.741 20.2067C111.741 17.3629 109.799 15.3477 106.538 15.3477H100.264V31.0219ZM103.234 22.5802V17.8331H106.405C108.146 17.8331 108.861 18.9527 108.861 20.2067C108.861 21.4606 108.146 22.5802 106.405 22.5802H103.234Z\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M117.014 19.5574C114.089 19.5574 112.191 21.304 112.057 23.5431H114.514C114.558 22.5355 115.429 21.6174 116.881 21.6174C118.332 21.6174 119.18 22.4011 119.18 23.4983C119.18 23.9462 118.912 24.2597 118.354 24.2597H116.278C113.754 24.2597 112.057 25.6256 112.057 27.82C112.057 29.768 113.576 31.2012 115.809 31.2012C117.416 31.2012 118.712 30.4621 119.18 29.3427V31.022H121.882V23.767C121.882 21.2144 119.873 19.5574 117.014 19.5574ZM116.456 29.1635C115.429 29.1635 114.715 28.5812 114.715 27.708C114.715 26.7228 115.496 26.0734 116.657 26.0734H119.18V26.2525C119.18 27.9543 118.176 29.1635 116.456 29.1635Z\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M133 19.7366H130.187L127.596 27.4841L124.984 19.7366H122.193L126.301 31.0221L124.716 35.5899H127.328L129.07 30.4846L133 19.7366Z\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32.5634 23.7912C32.5634 32.8086 25.2739 40.1186 16.2818 40.1186C7.2896 40.1186 0 32.8086 0 23.7912C0 14.7739 7.2896 7.46387 16.2818 7.46387C25.2739 7.46387 32.5634 14.7739 32.5634 23.7912Z\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M42.3326 5.8312C42.3326 9.05168 39.7292 11.6624 36.5175 11.6624C33.306 11.6624 30.7026 9.05168 30.7026 5.8312C30.7026 2.61072 33.306 0 36.5175 0C39.7292 0 42.3326 2.61072 42.3326 5.8312Z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgMoonpay);\nexport default __webpack_public_path__ + \"static/media/moonpay.e2a555c0.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4, _path5, _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 SvgBanxa(_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: 135,\n height: 22,\n viewBox: \"0 0 135 22\",\n fill: \"currentColor\",\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: \"M18.9169 10.6829C22.6958 13.6624 21.9449 19.7444 17.1809 21.5504C16.4578 21.8294 15.6243 21.9371 14.8429 21.9434C10.2762 21.9792 5.70872 21.9622 1.14121 21.9604C0.149828 21.9604 0.000897174 21.8079 0 20.8183C0 14.4238 0 8.02997 0 1.63671C0 0.619315 0.194688 0.431805 1.24707 0.430908C5.32024 0.430908 9.39341 0.430908 13.4666 0.430908C16.1141 0.430908 18.1776 1.51918 19.4436 3.8321C20.661 6.05529 20.4502 8.28387 19.0775 10.4066C19.0255 10.482 18.9842 10.5636 18.9169 10.6829ZM10.0232 18.1384C11.5305 18.1384 13.0377 18.1456 14.545 18.1384C15.8665 18.1304 16.8884 17.0708 16.9216 15.6936C16.9548 14.3479 16.011 13.1663 14.7316 13.1466C11.5771 13.0981 8.42088 13.1214 5.26552 13.1277C4.61327 13.1277 4.27324 13.474 4.27862 14.1406C4.28401 15.1006 4.27055 16.0615 4.27862 17.0215C4.28849 17.8917 4.54778 18.1366 5.4306 18.1393C6.96207 18.142 8.49265 18.1384 10.0232 18.1384ZM9.45442 9.28153C10.819 9.28153 12.1845 9.29051 13.5491 9.28153C14.7774 9.27166 15.7625 8.21659 15.8181 6.87621C15.8719 5.56364 14.9344 4.34169 13.7214 4.32195C10.8746 4.27709 8.02612 4.30491 5.17849 4.3085C4.57021 4.3085 4.28132 4.64404 4.28132 5.23707C4.28132 6.26703 4.26606 7.30057 4.2867 8.32784C4.30016 9.04558 4.55585 9.27705 5.29153 9.28153C6.67857 9.28781 8.0656 9.28153 9.45442 9.28153Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M72.3418 15.0225V14.346C72.3418 10.1527 72.3418 5.95926 72.3418 1.76587C72.3418 0.562759 72.4764 0.431771 73.666 0.430874C74.3488 0.430874 75.0324 0.425491 75.7152 0.430874C76.3055 0.437154 76.6123 0.700026 76.6123 1.33343C76.6028 7.9163 76.6028 14.4992 76.6123 21.082C76.6123 21.7163 76.3315 21.9792 75.7152 21.9604C75.3384 21.9478 74.9615 21.9604 74.5847 21.9604C72.3562 21.9604 72.3867 21.9343 70.9449 20.2557C67.245 15.9583 63.5118 11.6823 59.7912 7.39564C59.6869 7.24772 59.5299 7.14532 59.3525 7.10944V20.5007C59.3525 21.8581 59.2457 21.9604 57.8596 21.9613C57.2944 21.9613 56.7292 21.9613 56.1648 21.9613C55.178 21.9559 55.0443 21.8195 55.0398 20.8084C55.0398 20.2701 55.0398 19.7318 55.0398 19.1935C55.0398 13.3601 55.0398 7.52842 55.0398 1.69858C55.0398 0.577114 55.178 0.442539 56.2958 0.438053C57.0737 0.438053 57.9679 0.414778 58.6285 0.426389C59.2891 0.438124 59.6898 0.625561 60.0882 1.08761C63.9759 5.60398 67.8688 10.1138 71.7667 14.617C71.9022 14.7731 72.0439 14.9247 72.1821 15.0781L72.3418 15.0225Z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M37.7406 21.9613C34.3017 21.9613 30.8611 21.8886 27.4231 21.9882C25.3838 22.0474 24.4364 20.2002 25.4206 18.5431C28.7644 12.9088 32.022 7.22342 35.3137 1.55867C36.5124 -0.504835 39.0657 -0.525471 40.2634 1.53265C43.5943 7.25482 46.9178 12.9818 50.2337 18.7135C51.1704 20.3284 50.2337 21.9487 48.338 21.9568C44.8085 21.9721 41.2737 21.9613 37.7406 21.9613ZM30.6529 17.8128H44.918L37.7854 5.52149L30.6529 17.8128Z\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M96.1204 10.7126C97.8815 12.812 99.6113 14.8755 101.343 16.939C102.308 18.0883 103.302 19.216 104.225 20.3994C104.447 20.6865 104.59 21.2069 104.479 21.5209C104.397 21.7523 103.851 21.9228 103.502 21.9416C102.493 21.9964 101.476 21.9156 100.467 21.9766C99.7494 22.0197 99.2856 21.7452 98.8594 21.2006C97.1548 19.0222 95.4215 16.8672 93.6971 14.705C93.5957 14.5785 93.4791 14.4637 93.3158 14.2843L89.876 18.5674C89.0982 19.5372 88.3508 20.5313 87.5272 21.4634C87.2596 21.7386 86.9014 21.9075 86.5188 21.939C85.4153 21.9991 84.3055 21.991 83.1993 21.9443C82.8404 21.9291 82.2222 21.7649 82.189 21.5855C82.1164 21.1907 82.2195 20.6425 82.4699 20.3294C83.9376 18.5019 85.4682 16.7246 86.9764 14.9302C88.1499 13.5333 89.3216 12.1355 90.5112 10.7135C88.5446 8.31446 86.613 5.95848 84.6796 3.6034C84.249 3.07766 83.7645 2.58421 83.4101 2.01092C83.2136 1.69242 83.0997 1.19718 83.2073 0.86343C83.2782 0.643622 83.7035 0.449834 84.1341 0.449834C85.0941 0.449828 85.9464 0.418438 86.9584 0.418432C87.651 0.418432 88.1382 0.630166 88.5679 1.19C89.9774 3.0328 91.4335 4.8406 92.8744 6.66276C93.0045 6.82695 93.1516 6.97767 93.3454 7.19658C94.3197 5.96656 95.2734 4.76704 96.2235 3.56392C96.9206 2.68111 97.5828 1.76958 98.3247 0.925335C98.5952 0.651914 98.9551 0.485029 99.3385 0.455217C100.394 0.395106 101.458 0.40587 102.515 0.450729C102.83 0.464187 103.341 0.625678 103.399 0.823954C103.501 1.17116 103.453 1.6996 103.239 1.97862C102.096 3.46434 100.883 4.89623 99.6938 6.34696L96.1204 10.7126Z\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M121.626 21.9613C118.187 21.9613 114.746 21.8886 111.308 21.9882C109.269 22.0474 108.321 20.2002 109.306 18.5431C112.649 12.9088 115.907 7.22342 119.199 1.55867C120.397 -0.504835 122.951 -0.525471 124.148 1.53265C127.479 7.25482 130.803 12.9818 134.119 18.7135C135.055 20.3284 134.119 21.9487 132.223 21.9568C128.694 21.9721 125.159 21.9613 121.626 21.9613ZM114.538 17.8128H128.803L121.67 5.52149L114.538 17.8128Z\",\n fill: \"url(#paint0_linear)\"\n })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint0_linear\",\n x1: 129.235,\n y1: 10.1383,\n x2: 108.914,\n y2: 20.8147,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#00D2BC\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#0071CF\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgBanxa);\nexport default __webpack_public_path__ + \"static/media/banxa.52bc7597.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8;\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 SvgSimplex(_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: 128,\n height: 40,\n viewBox: \"0 0 128 40\",\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: \"M127.835 24.9565C127.591 25.5864 127.097 25.6576 126.638 25.1438C125.399 23.7509 124.138 22.3579 122.895 20.965C122.733 20.7824 122.643 20.7499 122.46 20.965C121.222 22.3579 119.972 23.7276 118.724 25.1082L118.588 25.2506C118.313 25.5369 117.969 25.5601 117.721 25.328C117.617 25.2069 117.561 25.0521 117.563 24.8926C117.565 24.733 117.625 24.5797 117.732 24.4613C118.232 23.9118 118.741 23.3686 119.246 22.8222C120.061 21.9385 120.874 21.0501 121.697 20.1726C121.84 20.0178 121.84 19.9281 121.697 19.7748C120.447 18.4284 119.201 17.0767 117.961 15.7199C117.845 15.6192 117.759 15.4878 117.714 15.3407C117.663 15.0745 117.652 14.8099 117.929 14.6427C118.056 14.5646 118.208 14.5346 118.356 14.5581C118.503 14.5817 118.638 14.6572 118.735 14.7712C119.244 15.3268 119.746 15.8917 120.249 16.4551C121.004 17.3047 121.761 18.1575 122.51 19.0118C122.646 19.1666 122.73 19.196 122.881 19.0227C124.11 17.6298 125.35 16.2368 126.585 14.8516C126.856 14.5421 127.264 14.474 127.514 14.6969C127.763 14.9197 127.722 15.3376 127.473 15.6116C126.213 16.9942 124.951 18.3742 123.686 19.7516C123.547 19.9064 123.531 19.9807 123.677 20.1386C124.944 21.5005 126.201 22.8718 127.462 24.2368C127.636 24.4027 127.768 24.6082 127.845 24.8358L127.835 24.9565Z\",\n fill: \"currentColor\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M66.1583 16.3745C67.627 13.7125 72.2577 13.7017 73.3659 16.6965C73.5996 16.2996 73.8734 15.9277 74.183 15.5868C75.1117 14.6674 76.2631 14.3796 77.5199 14.4183C78.3045 14.4415 79.0676 14.6009 79.7253 15.0575C80.6787 15.7106 81.0842 16.6794 81.273 17.7644C81.3656 18.3363 81.4065 18.9154 81.3953 19.4947V24.5835C81.3953 24.681 81.3953 24.78 81.3953 24.8776C81.3643 25.2614 81.1585 25.4827 80.8397 25.4842C80.4775 25.4842 80.2438 25.2614 80.2314 24.8652C80.2175 24.3405 80.2314 23.8143 80.2314 23.2896C80.2314 21.8998 80.2314 20.51 80.2314 19.1201C80.2309 18.5733 80.1479 18.0296 79.9853 17.5075C79.4916 15.8963 78.1281 15.3252 76.6423 15.5558C75.1844 15.7833 74.2094 16.845 73.9168 18.3726C73.8182 18.9101 73.771 19.4558 73.776 20.0023C73.776 21.6104 73.776 23.22 73.776 24.828C73.776 25.3805 73.3721 25.6468 72.9093 25.4131C72.64 25.2784 72.6168 25.0292 72.6168 24.7692C72.6168 22.9306 72.6168 21.0919 72.6168 19.2548C72.6342 18.5973 72.5293 17.9424 72.3072 17.3233C71.7377 15.8406 70.4841 15.336 69.0246 15.5543C67.5651 15.7725 66.6102 16.8048 66.2976 18.3649C66.204 18.8233 66.1568 19.2899 66.1567 19.7578C66.1567 21.4417 66.1567 23.1271 66.1567 24.8125C66.1567 25.1221 66.0716 25.3666 65.7265 25.4533C65.6485 25.4805 65.5653 25.4893 65.4834 25.4788C65.4015 25.4684 65.3232 25.439 65.2546 25.3931C65.186 25.3472 65.129 25.2859 65.0881 25.2142C65.0473 25.1424 65.0237 25.0621 65.0192 24.9797C65.0161 24.9251 65.0161 24.8703 65.0192 24.8156C65.0192 21.6171 65.0192 18.4221 65.0192 15.2308C65.0192 14.7944 65.1631 14.5993 65.4835 14.5668C65.9014 14.5235 66.1382 14.7324 66.1505 15.1766C66.166 15.5465 66.1583 15.9195 66.1583 16.3745Z\",\n fill: \"currentColor\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M51.4769 25.6188C50.0979 25.594 48.7453 25.447 47.5365 24.701C47.2812 24.533 47.0353 24.3511 46.7998 24.1562C46.6975 24.0744 46.6176 23.9679 46.5677 23.8467C46.5027 23.7309 46.4799 23.5961 46.5034 23.4654C46.5268 23.3347 46.5949 23.2161 46.6961 23.1301C46.8679 22.9754 47.2703 23.0094 47.4622 23.1796C49.2576 24.7815 51.3423 24.8279 53.4982 24.2243C54.642 23.9055 55.1295 23.0434 54.9871 21.9276C54.9689 21.7304 54.9001 21.5413 54.7873 21.3786C54.6745 21.2159 54.5215 21.0851 54.3433 20.999C53.5447 20.5795 52.6733 20.496 51.7973 20.4604C50.7712 20.4186 49.7404 20.4309 48.7329 20.1771C47.795 19.9403 46.9855 19.541 46.7642 18.4948C46.5212 17.348 46.7472 16.3172 47.665 15.5155C48.3738 14.8964 49.2312 14.6163 50.1413 14.4971C51.6456 14.3021 53.1082 14.4259 54.4748 15.1332C54.8392 15.3115 55.1747 15.5437 55.47 15.8219C55.5799 15.9369 55.6447 16.0876 55.6527 16.2464C55.6606 16.4053 55.6112 16.5617 55.5133 16.6871C55.3991 16.7919 55.2497 16.8501 55.0947 16.8501C54.9396 16.8501 54.7902 16.7919 54.676 16.6871C53.4688 15.5851 52.0155 15.4071 50.474 15.5619C49.8096 15.6459 49.1715 15.8741 48.6044 16.2305C47.9219 16.6298 47.5984 17.7101 47.9451 18.4236C48.0665 18.6592 48.2712 18.8412 48.5193 18.9343C49.3303 19.2872 50.1939 19.3367 51.0591 19.3615C52.1099 19.3909 53.1577 19.4203 54.1792 19.7113C54.6473 19.8452 55.0721 20.0994 55.4113 20.4486C55.7505 20.7978 55.9922 21.2298 56.1125 21.7016C56.2327 22.1733 56.2273 22.6683 56.0966 23.1373C55.9659 23.6063 55.7147 24.0328 55.3678 24.3745C54.6929 25.0744 53.78 25.4958 52.8095 25.5553C52.367 25.6038 51.922 25.625 51.4769 25.6188Z\",\n fill: \"currentColor\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M59.8098 19.7237C59.8098 18.0707 59.8098 16.4193 59.8098 14.7711C59.8233 14.6824 59.8027 14.5919 59.7522 14.5178C59.7016 14.4437 59.6249 14.3915 59.5374 14.3718C59.035 14.1871 58.6098 13.838 58.3311 13.3811C58.0523 12.9242 57.9364 12.3864 58.0021 11.8552C58.0479 11.4711 58.1858 11.1037 58.404 10.7843C58.6222 10.4649 58.9143 10.2028 59.2555 10.0205C59.5966 9.83808 59.9768 9.74074 60.3636 9.7367C60.7504 9.73267 61.1325 9.82206 61.4774 9.99729C61.8223 10.1725 62.1198 10.4284 62.3446 10.7432C62.5694 11.058 62.715 11.4224 62.7688 11.8055C62.8227 12.1886 62.7833 12.579 62.654 12.9436C62.5247 13.3082 62.3092 13.6362 62.0261 13.8997C61.8186 14.1141 61.5613 14.2737 61.277 14.364C60.9999 14.4383 60.9674 14.5884 60.9674 14.8283C60.9767 18.0743 60.9793 21.3198 60.9752 24.5648C60.9785 24.696 60.9749 24.8272 60.9643 24.958C60.9631 25.0296 60.9477 25.1002 60.919 25.1658C60.8902 25.2314 60.8487 25.2906 60.7969 25.34C60.745 25.3894 60.6839 25.428 60.617 25.4535C60.5501 25.4791 60.4787 25.4911 60.4072 25.4888C60.2683 25.5004 60.1305 25.4566 60.0238 25.3671C59.9172 25.2775 59.8502 25.1493 59.8376 25.0106C59.8167 24.8702 59.8074 24.7284 59.8098 24.5865C59.8098 22.9635 59.8098 21.3425 59.8098 19.7237Z\",\n fill: \"#43AF2A\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M101.294 17.5275V24.7784C101.294 25.0648 101.274 25.3279 100.944 25.4424C100.545 25.5817 100.208 25.3836 100.158 24.9657C100.146 24.8351 100.141 24.7038 100.144 24.5726V10.4577C100.144 10.3602 100.144 10.2611 100.144 10.1636C100.166 9.75656 100.366 9.53369 100.706 9.53369C101.081 9.53369 101.285 9.75037 101.286 10.1713C101.286 10.8833 101.286 11.5937 101.286 12.3041L101.294 17.5275Z\",\n fill: \"currentColor\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M37.5571 25.492C37.4655 25.4711 37.3853 25.4161 37.333 25.3381C37.2806 25.2602 37.26 25.1652 37.2754 25.0725C37.2816 21.6913 37.2816 18.3102 37.2754 14.929C37.2621 14.8364 37.2849 14.7422 37.339 14.6659C37.3932 14.5896 37.4745 14.5369 37.5663 14.5188C37.8901 14.4012 38.1856 14.2171 38.434 13.9784C38.6823 13.7397 38.878 13.4516 39.0083 13.1327C39.1386 12.8139 39.2008 12.4713 39.1908 12.127C39.1808 11.7826 39.0988 11.4442 38.9502 11.1335C38.8015 10.8227 38.5895 10.5465 38.3277 10.3226C38.0659 10.0987 37.7601 9.93213 37.4301 9.8335C37.1001 9.73487 36.753 9.7064 36.4113 9.74993C36.0696 9.79346 35.7408 9.90802 35.446 10.0863C35.1984 10.241 35.0777 10.1745 34.8919 10.0274C32.3042 7.9556 29.7134 5.88944 27.1194 3.82895C26.8594 3.62156 26.7635 3.47298 26.8703 3.11082C26.9633 2.78111 26.9859 2.43553 26.9367 2.0965C26.8876 1.75747 26.7676 1.43257 26.5848 1.14288C26.4019 0.853194 26.1602 0.605186 25.8753 0.414955C25.5904 0.224723 25.2687 0.0965166 24.931 0.0386552C24.5971 -0.0210486 24.2544 -0.0115068 23.9244 0.0666887C23.5943 0.144884 23.2838 0.290066 23.0121 0.493228C22.7404 0.696391 22.5134 0.953202 22.3451 1.24773C22.1768 1.54226 22.0708 1.86823 22.0337 2.20542C22.0152 2.39269 21.9579 2.46543 21.7768 2.50567C18.4421 3.26094 15.1073 4.02086 11.7725 4.78542C11.6892 4.81538 11.5976 4.81273 11.516 4.778C11.4345 4.74327 11.3692 4.67903 11.333 4.59815C10.7588 3.72989 9.92461 3.36 8.90623 3.50238C8.45467 3.54884 8.02664 3.72665 7.67509 4.01383C7.32354 4.30102 7.0639 4.68496 6.92828 5.11817C6.59398 6.06381 6.80137 6.93516 7.48545 7.66412C7.55431 7.71757 7.60072 7.7948 7.61561 7.88069C7.6305 7.96657 7.61278 8.05492 7.56593 8.12843C6.0884 11.1825 4.61449 14.2387 3.14418 17.2969C3.11787 17.3836 3.05953 17.4569 2.98103 17.5021C2.90253 17.5472 2.80978 17.5608 2.72166 17.5399C2.37283 17.4936 2.01803 17.5268 1.68381 17.6369C1.3496 17.7471 1.04462 17.9314 0.791693 18.176C0.416369 18.5244 0.158274 18.9805 0.0529481 19.4817C-0.0523781 19.9828 0.000245107 20.5043 0.203571 20.9743C0.406897 21.4507 0.756269 21.8503 1.20132 22.1153C1.64637 22.3804 2.1641 22.4973 2.67987 22.4492C2.92131 22.4291 3.04668 22.4678 3.14418 22.7061C3.45372 23.384 3.78183 24.0464 4.10375 24.7181C5.25213 27.0912 6.40104 29.4685 7.55045 31.8499C7.60014 31.9244 7.61948 32.0151 7.60452 32.1034C7.58956 32.1917 7.54143 32.271 7.46997 32.325C7.18327 32.6063 6.97277 32.9558 6.85825 33.3408C6.74373 33.7258 6.72895 34.1336 6.8153 34.5258C6.90737 35.0137 7.14441 35.4625 7.49547 35.8135C7.84653 36.1646 8.29529 36.4017 8.78316 36.4938C9.27103 36.5859 9.77533 36.5287 10.2302 36.3298C10.6851 36.1308 11.0694 35.7993 11.333 35.3786C11.3485 35.3396 11.3718 35.3042 11.4014 35.2745C11.431 35.2447 11.4664 35.2213 11.5053 35.2057C11.5443 35.1901 11.586 35.1825 11.6279 35.1835C11.6699 35.1845 11.7112 35.194 11.7493 35.2114C12.0589 35.2935 12.3885 35.3662 12.7074 35.4312C15.7006 36.1184 18.6923 36.8087 21.684 37.4819C21.7789 37.4875 21.868 37.5296 21.9327 37.5994C21.9973 37.6692 22.0324 37.7613 22.0306 37.8564C22.076 38.2772 22.2327 38.6783 22.4846 39.0183C22.7365 39.3584 23.0745 39.6251 23.4638 39.7911C23.6371 39.8715 23.8213 39.9304 24.0024 40H24.9883C25.0007 39.9474 25.044 39.9427 25.0858 39.9319C25.4227 39.8455 25.7376 39.689 26.01 39.4728C26.2825 39.2565 26.5063 38.9853 26.6669 38.6767C26.8275 38.3682 26.9213 38.0293 26.9422 37.6821C26.9631 37.3349 26.9107 36.9872 26.7882 36.6616C26.7108 36.4465 26.8347 36.3892 26.9507 36.2964C29.621 34.1719 32.2908 32.0454 34.96 29.9168C35.0145 29.8618 35.0877 29.8292 35.1651 29.8255C35.2424 29.8217 35.3184 29.8471 35.3779 29.8967C36.6609 30.6705 38.2845 30.2062 38.9128 28.9108C39.0691 28.6005 39.1578 28.2606 39.1733 27.9135C39.1887 27.5664 39.1305 27.22 39.0024 26.897C38.8743 26.5741 38.6793 26.2819 38.4302 26.0397C38.1811 25.7975 37.8835 25.6109 37.5571 25.492ZM8.68027 31.3732L8.61681 31.3871C7.12587 28.3051 5.63751 25.2196 4.15173 22.1304L4.19351 22.1041C5.63802 23.2545 7.08254 24.4034 8.52705 25.5508C8.57845 25.5887 8.61955 25.6388 8.64659 25.6967C8.67362 25.7545 8.68573 25.8182 8.68181 25.882C8.67769 27.7144 8.67717 29.5474 8.68027 31.3809V31.3732ZM8.68027 24.1857L4.83271 21.1306L7.44366 21.7233C7.78415 21.8007 8.12465 21.8781 8.46669 21.957C8.61217 21.988 8.68646 22.0453 8.68336 22.217C8.67253 22.8485 8.68027 23.48 8.68027 24.1934V24.1857ZM8.6911 19.3724C8.6911 19.8367 8.6911 20.3087 8.6911 20.8148L5.08498 20.0039C6.29528 19.7299 7.40652 19.4807 8.5224 19.2192C8.70193 19.1712 8.69265 19.2625 8.6911 19.3848V19.3724ZM8.54716 18.0228C7.3864 18.2813 6.22563 18.5444 5.06641 18.7967C5.05093 18.7967 5.03236 18.7812 4.972 18.7502L8.68646 15.7879C8.68646 16.5185 8.68646 17.1809 8.68646 17.8402C8.69043 17.8615 8.68989 17.8833 8.68488 17.9044C8.67987 17.9254 8.6705 17.9452 8.65738 17.9624C8.64425 17.9796 8.62766 17.9939 8.60867 18.0043C8.58969 18.0147 8.56874 18.021 8.54716 18.0228ZM8.68336 8.82179C8.68336 10.5614 8.68336 12.301 8.68336 14.0406C8.68336 14.1799 8.69884 14.3084 8.558 14.4198C7.1073 15.563 5.66279 16.7119 4.22447 17.8665L4.17185 17.8247C5.65763 14.7448 7.14702 11.6582 8.64003 8.56488C8.66538 8.60205 8.68285 8.64403 8.69137 8.68821C8.69989 8.7324 8.69927 8.77786 8.68955 8.82179H8.68336ZM23.9111 16.8806L22.7704 15.9706C23.1372 15.887 23.4452 15.8158 23.7486 15.7446C23.877 15.7106 23.9033 15.7678 23.9033 15.87C23.9173 16.1826 23.9173 16.4937 23.9173 16.8806H23.9111ZM23.9033 27.829C23.9033 28.5161 23.9033 29.2049 23.9033 29.8936C23.9033 30.0623 23.86 30.1397 23.6805 30.1753C23.1032 30.2944 22.529 30.4291 21.9579 30.5715C21.8232 30.6055 21.7629 30.5715 21.7056 30.4569C21.0865 29.16 20.4675 27.863 19.8329 26.5722C19.7648 26.4314 19.8236 26.3757 19.9149 26.3045C20.4396 25.8913 20.9627 25.4796 21.4812 25.0663C21.52 25.0292 21.5679 25.0029 21.62 24.9899C21.6721 24.9768 21.7266 24.9776 21.7784 24.9921C22.4036 25.1437 23.031 25.2882 23.6604 25.4254C23.6976 25.4274 23.7339 25.4373 23.767 25.4545C23.8 25.4717 23.829 25.4958 23.852 25.5251C23.875 25.5544 23.8915 25.5883 23.9004 25.6245C23.9092 25.6607 23.9102 25.6983 23.9033 25.7349C23.9033 26.4299 23.9095 27.1232 23.9095 27.829H23.9033ZM18.9353 12.6616C18.8687 12.7994 18.8192 12.838 18.6799 12.7251C17.709 11.9409 16.735 11.1629 15.7578 10.3912C15.6557 10.3107 15.6418 10.2596 15.7578 10.1729C16.4265 9.64362 17.093 9.11121 17.7575 8.57571C17.7825 8.54826 17.8154 8.52911 17.8516 8.52081C17.8878 8.51252 17.9257 8.51547 17.9602 8.52928L20.4257 9.08645C20.5805 9.1205 20.6238 9.17312 20.5449 9.33408C20.0042 10.4381 19.4697 11.5457 18.9414 12.657L18.9353 12.6616ZM19.3841 14.751C19.624 14.9537 19.8716 15.1472 20.1579 15.3809L18.7619 15.6982C18.9167 15.3809 19.0513 15.0992 19.1829 14.8144C19.2262 14.7077 19.2711 14.6458 19.3903 14.7417L19.3841 14.751ZM18.1459 13.779C18.2094 13.8301 18.3007 13.8673 18.2837 13.988C18.2636 14.0313 18.2388 14.0793 18.2156 14.1288C17.9463 14.6891 17.6708 15.2463 17.4123 15.8096C17.3819 15.8821 17.3336 15.9457 17.2719 15.9945C17.2101 16.0432 17.1371 16.0754 17.0595 16.0882C16.4512 16.2197 15.843 16.3513 15.2394 16.5014C15.0691 16.5448 14.9933 16.52 14.9159 16.3559C14.3133 15.0868 13.7036 13.8208 13.0865 12.5579C13.0669 12.533 13.0532 12.504 13.0463 12.4731C13.0394 12.4421 13.0395 12.4101 13.0466 12.3792C13.0537 12.3483 13.0677 12.3194 13.0875 12.2946C13.1072 12.2698 13.1323 12.2498 13.1608 12.236C13.6251 11.8785 14.0894 11.507 14.5429 11.1325C14.5621 11.1102 14.5858 11.0924 14.6126 11.0801C14.6393 11.0679 14.6683 11.0616 14.6977 11.0616C14.7271 11.0616 14.7561 11.0679 14.7828 11.0801C14.8095 11.0924 14.8333 11.1102 14.8525 11.1325C15.9513 12.0178 17.0595 12.8938 18.1568 13.7744L18.1459 13.779ZM16.654 17.3681L16.0256 18.6713L15.5241 17.6281L16.654 17.3681ZM16.64 22.6164C16.2646 22.5661 15.8936 22.487 15.5303 22.3796C15.6851 22.0422 15.8399 21.714 16.0225 21.3426L16.64 22.6164ZM17.0889 23.9226C17.1431 23.9272 17.1954 23.9451 17.2411 23.9748C17.2867 24.0045 17.3243 24.0451 17.3504 24.0928C17.6517 24.7233 17.9545 25.3516 18.2589 25.9779C18.2682 25.9965 18.2759 26.0182 18.2837 26.0383C18.3053 26.1373 18.2233 26.1714 18.1676 26.2163C17.0491 27.1077 15.9302 27.9992 14.8107 28.8907C14.6977 28.982 14.6296 28.9541 14.5321 28.8752C14.0755 28.5022 13.6158 28.1323 13.1484 27.7702C13.1204 27.7551 13.096 27.7342 13.0769 27.7089C13.0578 27.6835 13.0443 27.6543 13.0376 27.6233C13.0308 27.5922 13.0309 27.5601 13.0377 27.5291C13.0446 27.4981 13.058 27.4689 13.0773 27.4436C13.6901 26.191 14.2968 24.9358 14.8973 23.6781C14.9732 23.5233 15.0351 23.4521 15.2378 23.5047C15.86 23.6579 16.4822 23.7818 17.0997 23.918L17.0889 23.9226ZM18.6985 27.278C18.8238 27.1774 18.8734 27.2161 18.9322 27.3384C19.463 28.4496 19.9939 29.5608 20.5356 30.6674C20.6176 30.8377 20.5789 30.8918 20.4102 30.929C19.6364 31.1023 18.8625 31.2834 18.0794 31.4552C18.0299 31.4769 17.9759 31.4862 17.9219 31.4825C17.868 31.4787 17.8158 31.4619 17.7698 31.4335L15.6248 29.7311C16.6679 28.8969 17.6785 28.089 18.6985 27.278ZM18.7573 24.3049L20.1626 24.6283C19.8778 24.8574 19.6395 25.0431 19.4088 25.2366C19.2974 25.3294 19.2355 25.331 19.1721 25.1871C19.0467 24.9007 18.9167 24.6222 18.7619 24.3033L18.7573 24.3049ZM23.908 24.1377C23.908 24.2554 23.86 24.2817 23.7455 24.2538C23.4514 24.1826 23.1543 24.1223 22.7766 24.0402L23.908 23.1395V24.1377ZM23.908 19.9915C23.908 20.4558 23.908 20.9309 23.908 21.4014C23.9144 21.4765 23.9013 21.5519 23.8702 21.6205C23.839 21.689 23.7907 21.7484 23.73 21.793C22.9809 22.3801 22.2365 22.9723 21.4967 23.5697C21.4453 23.6166 21.3828 23.6496 21.3151 23.6656C21.2474 23.6816 21.1767 23.68 21.1098 23.661C20.1966 23.4459 19.2804 23.2432 18.3626 23.042C18.2835 23.0308 18.2086 22.9995 18.1452 22.951C18.0817 22.9024 18.0319 22.8384 18.0005 22.7649C17.612 21.9369 17.2096 21.1135 16.8041 20.2886C16.7548 20.205 16.728 20.1101 16.7261 20.013C16.7242 19.916 16.7473 19.8201 16.7933 19.7346C17.206 18.9091 17.611 18.0759 18.0082 17.235C18.0334 17.1697 18.0752 17.112 18.1295 17.0678C18.1837 17.0236 18.2486 16.9942 18.3177 16.9828C19.2556 16.7764 20.192 16.5644 21.1268 16.3467C21.1878 16.3271 21.2529 16.3238 21.3156 16.3371C21.3783 16.3504 21.4365 16.3798 21.4843 16.4225C22.2148 17.0117 22.95 17.5967 23.6898 18.1776C23.7651 18.2279 23.8255 18.2976 23.8647 18.3793C23.9039 18.4609 23.9204 18.5516 23.9126 18.6419C23.8972 19.0923 23.9095 19.5395 23.9095 19.9899L23.908 19.9915ZM23.908 12.1911C23.908 12.8814 23.908 13.5701 23.908 14.2588C23.908 14.4616 23.8476 14.5498 23.648 14.59C23.0289 14.718 22.4098 14.8562 21.7907 15.0048C21.7352 15.0232 21.6757 15.0262 21.6185 15.0137C21.5613 15.0012 21.5086 14.9735 21.4657 14.9336C20.9643 14.5281 20.4592 14.1268 19.9505 13.7295C19.8236 13.6305 19.7726 13.55 19.8561 13.3797C20.4649 12.1416 21.0633 10.9034 21.6515 9.66528C21.7536 9.44861 21.865 9.40063 22.0941 9.46099C22.6002 9.59409 23.114 9.69933 23.6263 9.80767C23.6688 9.80895 23.7104 9.81941 23.7484 9.83834C23.7865 9.85726 23.8199 9.88419 23.8466 9.91728C23.8732 9.95037 23.8923 9.98884 23.9027 10.03C23.913 10.0712 23.9143 10.1142 23.9064 10.1559C23.8972 10.8338 23.9095 11.5117 23.9095 12.1896L23.908 12.1911ZM23.908 5.18163V6.7386C23.908 7.30661 23.908 7.87461 23.908 8.44106C23.908 8.62214 23.8863 8.69643 23.6712 8.63607C23.2936 8.53083 22.8973 8.46273 22.5228 8.37451C22.4408 8.35439 22.2953 8.36368 22.368 8.20272C22.854 7.18743 23.3415 6.17318 23.8306 5.15996L23.908 5.18163ZM22.7859 4.57493L22.8261 4.60434L21.2274 7.93187C21.2215 7.95275 21.2116 7.97225 21.198 7.98922C21.1845 8.00618 21.1678 8.02027 21.1487 8.03066C21.1297 8.04104 21.1088 8.04751 21.0872 8.04968C21.0656 8.05186 21.0438 8.04969 21.0231 8.04331C20.3793 7.88854 19.7354 7.7477 19.0219 7.579L22.7859 4.57493ZM22.0399 3.6293C21.8106 3.87365 21.557 4.09404 21.2831 4.28706C20.1038 5.22961 18.9213 6.16596 17.742 7.1085C17.7029 7.15299 17.6531 7.18674 17.5973 7.20651C17.5415 7.22629 17.4815 7.23145 17.4232 7.22148C15.6258 6.80361 13.8284 6.38728 12.031 5.9725C12.003 5.95761 11.9766 5.93998 11.9521 5.91988L22.0399 3.6293ZM16.4032 8.16712C15.8538 8.60666 15.3415 9.01216 14.8339 9.42384C14.7457 9.49504 14.6791 9.51671 14.5801 9.43932C13.6267 8.67786 12.6702 7.91949 11.74 7.10541L16.4032 8.16712ZM13.7644 10.2735C13.3821 10.5831 13.0231 10.8647 12.6671 11.1526C12.5464 11.2501 12.4675 11.2826 12.3823 11.1C11.918 10.1141 11.4398 9.13443 10.9678 8.15938C10.9554 8.11956 10.9471 8.0786 10.943 8.03712L13.7644 10.2735ZM9.86425 8.65929L9.91378 8.64536C10.2697 9.36761 10.6247 10.0955 10.9786 10.8291C11.1442 11.1712 11.3005 11.5179 11.4692 11.8584C11.5234 11.9682 11.545 12.0456 11.429 12.1369C10.9213 12.5301 10.4214 12.934 9.86425 13.3751V8.65929ZM10.392 14.4322C10.9089 14.087 11.3779 13.6692 11.8592 13.2729C12.014 13.1476 12.0836 13.1182 12.1827 13.3302C12.6986 14.426 13.2238 15.5171 13.7582 16.6036C13.8495 16.7908 13.7985 16.845 13.6174 16.8853C12.4442 17.1422 11.2726 17.4079 10.1026 17.6823C9.8983 17.7303 9.83329 17.6823 9.84103 17.4749C9.85496 17.0694 9.84103 16.6655 9.84103 16.26C9.85653 16.042 9.85653 15.8233 9.84103 15.6053C9.7652 15.0791 9.94009 14.7231 10.392 14.4322ZM10.2852 18.8075C11.5342 18.5397 12.7785 18.2534 14.0198 17.9578C14.2922 17.8944 14.4268 17.9578 14.5383 18.2178C14.7751 18.7564 15.0366 19.2842 15.2997 19.8088C15.3347 19.8684 15.3531 19.9363 15.3531 20.0054C15.3531 20.0745 15.3347 20.1424 15.2997 20.202C15.0165 20.7669 14.7364 21.3333 14.4764 21.9044C14.3928 22.0901 14.2937 22.1072 14.1219 22.0669C12.7703 21.7574 11.4192 21.4509 10.0685 21.1476C9.90294 21.1104 9.82865 21.0393 9.83639 20.8597C9.85032 20.5657 9.83639 20.2701 9.83639 19.9744C9.85326 19.7684 9.85326 19.5614 9.83639 19.3554C9.77603 18.9808 9.95866 18.8725 10.2852 18.8028V18.8075ZM9.84103 22.539C9.84103 22.3223 9.8983 22.2867 10.1026 22.3347C11.2804 22.6102 12.4613 22.8733 13.6422 23.141C13.7691 23.1689 13.8635 23.1874 13.7722 23.3732C13.2011 24.5339 12.6454 25.6947 12.0697 26.9004C11.3562 26.3339 10.6768 25.7938 10.0051 25.2644C9.95072 25.2214 9.90806 25.1654 9.88101 25.1016C9.85396 25.0378 9.84341 24.9682 9.85032 24.8992C9.84722 24.1083 9.85187 23.3205 9.84103 22.5343V22.539ZM9.87353 26.6403L11.4599 27.8971C11.5714 27.9853 11.5002 28.0689 11.4599 28.1571L9.87353 31.4444V26.6403ZM11.0003 31.9211L10.9492 31.8855C11.1039 31.5512 11.2726 31.2153 11.4336 30.8795C11.7431 30.2217 12.0713 29.5639 12.3839 28.9031C12.4473 28.7684 12.4953 28.7065 12.6377 28.8241C12.9999 29.1244 13.3698 29.4138 13.7598 29.7264L11.0003 31.9211ZM11.7168 32.8992L11.6952 32.8543L14.5832 30.556C14.6435 30.508 14.693 30.4693 14.7782 30.539C15.3013 30.963 15.8306 31.3809 16.4001 31.8359L11.7168 32.8992ZM11.8608 34.0522C13.3032 33.7226 14.6466 33.413 16.0055 33.1066C16.4203 33.0122 16.8397 32.9363 17.2436 32.8218C17.3398 32.7889 17.4431 32.7829 17.5424 32.8044C17.6416 32.826 17.7332 32.8743 17.807 32.9441C19.1349 34.0151 20.4706 35.0753 21.8031 36.1401C21.8727 36.1914 21.9202 36.2671 21.9362 36.3521L11.8608 34.0522ZM19.0142 32.4225C19.7091 32.2677 20.3251 32.1284 20.9364 31.9814C20.9661 31.9687 20.9982 31.9625 21.0305 31.9631C21.0628 31.9636 21.0946 31.971 21.1238 31.9848C21.153 31.9985 21.179 32.0183 21.2001 32.0428C21.2211 32.0673 21.2368 32.0959 21.246 32.1269C21.7598 33.2103 22.2814 34.2828 22.7565 35.4065L19.0142 32.4225ZM23.8507 34.8725L22.303 31.6765C22.7844 31.5635 23.2224 31.4707 23.6542 31.3546C23.8693 31.2958 23.9173 31.3546 23.9157 31.5651C23.9126 32.6624 23.9157 33.7535 23.8507 34.8771V34.8725ZM35.0127 14.3734L32.9418 18.6682C32.6323 18.0166 32.3475 17.43 32.0612 16.845C32.0475 16.8252 32.0381 16.8027 32.0337 16.7791C32.0293 16.7554 32.03 16.731 32.0357 16.7076C32.0414 16.6842 32.052 16.6623 32.0668 16.6433C32.0816 16.6243 32.1003 16.6086 32.1216 16.5974C33.0688 15.8452 34.0128 15.0899 35.0127 14.3734ZM30.7612 25.8572L31.3802 24.5804C31.4251 24.4906 31.4514 24.3575 31.6062 24.4813C32.4713 25.1747 33.3396 25.865 34.1769 26.6311L30.7612 25.8572ZM33.9865 27.8305L29.2939 28.8969C29.6035 28.2437 29.8991 27.6494 30.1823 27.052C30.1886 27.0314 30.1992 27.0123 30.2134 26.996C30.2275 26.9797 30.2449 26.9665 30.2644 26.9574C30.284 26.9482 30.3052 26.9432 30.3268 26.9427C30.3483 26.9422 30.3698 26.9462 30.3897 26.9545C31.5582 27.2238 32.7298 27.4885 33.8999 27.7578C33.9293 27.764 33.9478 27.798 33.9865 27.8305ZM31.1744 22.3486C31.0924 22.5204 31.0366 22.5513 30.8741 22.4213C29.9239 21.6475 28.9643 20.8938 28.0047 20.137C27.8778 20.0364 27.8639 19.9822 28.0047 19.8754C28.9756 19.1129 29.9419 18.3447 30.9035 17.5709C31.0351 17.4641 31.0924 17.4796 31.162 17.6281C31.5133 18.3664 31.8724 19.1 32.2268 19.8352C32.25 19.8847 32.2671 19.9373 32.2918 20.0008C32.264 20.0704 32.2346 20.1555 32.1974 20.2283C31.8538 20.9325 31.5071 21.6382 31.1744 22.3486ZM34.2295 13.3627C34.1134 13.5298 33.9643 13.6715 33.7915 13.779C33.0935 14.344 32.3847 14.8949 31.6898 15.4645C31.5071 15.6192 31.4359 15.5806 31.3477 15.3809C31.1682 14.9739 30.9685 14.5746 30.7673 14.1505L34.2295 13.3627ZM30.4872 13.0392C30.2953 13.0857 30.2179 13.0392 30.1405 12.8845C29.8774 12.3134 29.5988 11.75 29.2986 11.1248L33.9819 12.1911C33.8271 12.3366 33.646 12.3196 33.4835 12.3583C32.4853 12.5749 31.4839 12.7932 30.4872 13.0392ZM26.2249 4.5997L34.2388 10.987L34.2249 11.0458L31.7362 10.484C30.8076 10.2735 29.879 10.0615 28.9504 9.8541C28.8556 9.84201 28.7656 9.80577 28.6889 9.74885C28.6122 9.69194 28.5514 9.61626 28.5124 9.52909C27.7571 7.93342 26.9848 6.34549 26.2171 4.75601C26.2064 4.73109 26.2016 4.70405 26.2029 4.67696C26.2042 4.64987 26.2118 4.62344 26.2249 4.5997ZM25.1167 5.11353L27.203 9.43777C26.4802 9.28301 25.824 9.12824 25.1678 8.98275C25.0362 8.95335 25.0641 8.82798 25.0641 8.73977C25.0626 7.53876 25.0626 6.3362 25.1167 5.11353ZM25.3086 10.1915C26.1057 10.3803 26.9043 10.5598 27.7029 10.7378C27.7605 10.7529 27.8134 10.7822 27.8566 10.823C27.8999 10.8638 27.9322 10.9149 27.9505 10.9715C28.2926 11.6881 28.6346 12.4078 28.9844 13.1213C29.0633 13.276 29.0726 13.3581 28.8652 13.4045C27.6611 13.6676 26.4591 13.9395 25.2591 14.2201C25.0811 14.2619 25.0595 14.2201 25.061 14.0654C25.061 13.4463 25.061 12.8272 25.061 12.1973C25.061 11.6076 25.061 11.018 25.061 10.4283C25.0548 10.224 25.0904 10.1389 25.3086 10.1915ZM25.0595 15.6703C25.0595 15.5156 25.1013 15.4397 25.2607 15.4041C26.6458 15.0946 28.0295 14.785 29.4131 14.4662L29.5106 14.4507C29.6282 14.4322 29.6499 14.5204 29.6886 14.6055C29.9424 15.1364 30.1947 15.6688 30.4624 16.1934C30.5383 16.3482 30.5073 16.4132 30.3789 16.5138C29.2893 17.3743 28.2059 18.2405 27.1287 19.1124C26.9554 19.2532 26.8563 19.2393 26.6923 19.1015C26.228 18.7146 25.7559 18.3478 25.2792 17.981C25.2078 17.9339 25.1501 17.8687 25.112 17.792C25.074 17.7154 25.0569 17.63 25.0626 17.5446C25.0718 16.9085 25.0688 16.2894 25.0595 15.6703ZM25.9788 20.0039L25.0688 20.7313V19.2935L25.9788 20.0039ZM25.9927 21.468C26.2566 21.293 26.5065 21.0979 26.7403 20.8845C26.7594 20.8593 26.784 20.8388 26.8121 20.8244C26.8403 20.81 26.8713 20.802 26.9029 20.8011C26.9345 20.8002 26.9659 20.8064 26.9948 20.8193C27.0237 20.8321 27.0494 20.8512 27.0699 20.8752C28.1667 21.7574 29.2692 22.6344 30.3773 23.5063C30.4056 23.5209 30.4305 23.5413 30.4503 23.5663C30.4701 23.5913 30.4843 23.6201 30.4921 23.651C30.4998 23.6819 30.5009 23.7141 30.4953 23.7455C30.4896 23.7768 30.4774 23.8066 30.4594 23.8328C30.1962 24.359 29.9347 24.8868 29.6855 25.4208C29.6112 25.5755 29.5122 25.5848 29.376 25.5523C28.015 25.2428 26.6536 24.9332 25.2916 24.6237C25.2548 24.6217 25.2188 24.6117 25.1863 24.5943C25.1537 24.577 25.1254 24.5527 25.1033 24.5232C25.0811 24.4936 25.0657 24.4596 25.0582 24.4235C25.0506 24.3874 25.051 24.3501 25.0595 24.3142C25.078 24.0046 25.0595 23.6812 25.0595 23.2076C24.7979 22.4415 25.2839 21.906 25.9927 21.4618V21.468ZM25.0641 25.7489L29.0881 26.6667C28.6919 27.4885 28.3143 28.2701 27.9397 29.0594C27.9108 29.1222 27.8664 29.1766 27.8106 29.2175C27.7548 29.2584 27.6895 29.2844 27.6209 29.2931C26.8656 29.4664 26.1088 29.6305 25.3566 29.8116C25.1307 29.8657 25.0579 29.8255 25.061 29.5748C25.0703 28.3041 25.0626 27.0381 25.0626 25.7427L25.0641 25.7489ZM25.0641 34.8802V32.6361C25.0641 32.1718 25.0641 31.7183 25.0641 31.2602C25.0641 31.1488 25.0548 31.0466 25.208 31.0141C25.8472 30.8779 26.4833 30.734 27.1999 30.5746C26.4864 32.0557 25.807 33.4734 25.1198 34.8926L25.0641 34.8802ZM26.228 35.4095L26.1784 35.3709C26.4214 34.8632 26.6613 34.354 26.9074 33.8479C27.4568 32.7088 28.0109 31.5728 28.5557 30.4322C28.5821 30.3679 28.6243 30.3113 28.6784 30.2678C28.7325 30.2242 28.7968 30.195 28.8652 30.183L34.1661 28.9804C34.2052 28.9808 34.2441 28.9855 34.2821 28.9944L26.228 35.4095ZM34.96 25.6808C34.0128 24.9255 33.0657 24.1702 32.1185 23.415C32.0976 23.403 32.0795 23.3868 32.0653 23.3674C32.0511 23.348 32.0411 23.3259 32.036 23.3024C32.0309 23.2789 32.0308 23.2546 32.0357 23.2311C32.0405 23.2076 32.0503 23.1853 32.0643 23.1658C32.3506 22.5823 32.6292 21.9957 32.9418 21.3457L35.0127 25.6204L34.96 25.6808ZM36.1007 25.2165C35.2587 23.4738 34.4601 21.8116 33.6584 20.1586C33.6324 20.1176 33.6174 20.0706 33.6147 20.0221C33.612 19.9736 33.6217 19.9252 33.6429 19.8816C34.4493 18.2147 35.2541 16.5479 36.1007 14.7959V25.2165Z\",\n fill: \"#43AF2A\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M96.6714 19.264C96.5011 17.5615 95.7706 16.2011 94.3359 15.2477C93.3624 14.6008 92.2604 14.3965 91.1151 14.4089C90.1252 14.3903 89.1501 14.651 88.3014 15.1611C87.6697 15.5573 87.1175 16.068 86.6733 16.667C86.6733 16.1531 86.6733 15.6378 86.6733 15.1193C86.6733 14.7416 86.4659 14.5559 86.0975 14.559C85.6859 14.559 85.5357 14.7494 85.5342 15.2632C85.5342 19.8031 85.5342 24.343 85.5342 28.8829C85.5342 28.9711 85.5342 29.0578 85.5419 29.1444C85.5442 29.2677 85.5936 29.3855 85.6799 29.4736C85.7662 29.5616 85.883 29.6133 86.0062 29.618C86.4349 29.683 86.6779 29.4633 86.6795 28.999C86.6795 27.2263 86.6795 25.4537 86.6795 23.6811C86.6578 23.5613 86.6729 23.4377 86.7228 23.3267C87.3499 24.3148 88.312 25.0439 89.4328 25.3805C90.3599 25.6611 91.341 25.7142 92.2929 25.5352C94.1192 25.2009 95.5121 24.2491 96.2442 22.4971C96.6558 21.4724 96.8027 20.3605 96.6714 19.264ZM94.0155 23.5418C93.1844 24.2584 92.1846 24.5308 90.9697 24.5153C88.2535 24.5447 86.3622 22.2557 86.7197 19.3692C86.9194 17.7534 87.7102 16.5261 89.2363 15.8807C91.7126 14.833 95.1175 15.8684 95.4936 19.4017C95.6623 21.0113 95.2831 22.446 94.0155 23.5418Z\",\n fill: \"currentColor\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M113.827 15.5927C112.156 14.3097 110.254 14.0899 108.288 14.7013C106.613 15.2213 105.46 16.3511 104.911 18.052C104.628 18.9844 104.55 19.9669 104.682 20.9323C104.837 22.3252 105.436 23.5169 106.539 24.3573C108.526 25.871 110.726 25.9716 112.994 25.0553C113.723 24.742 114.364 24.2553 114.861 23.6376C114.95 23.5392 115.004 23.4142 115.015 23.2818C115.026 23.1495 114.993 23.0172 114.921 22.9056C114.791 22.6641 114.564 22.6363 114.325 22.6579C114.087 22.6796 113.994 22.8545 113.861 23.0015C113.468 23.46 112.983 23.8311 112.438 24.0907C111.892 24.3503 111.298 24.4928 110.695 24.509C108.005 24.6328 106.24 23.2399 105.843 20.714C105.802 20.454 105.88 20.4262 106.101 20.4277C107.581 20.4277 109.06 20.4277 110.538 20.4277H114.781C114.901 20.4311 115.021 20.4259 115.141 20.4122C115.528 20.3534 115.735 20.1414 115.735 19.7529C115.739 18.0783 115.183 16.6312 113.827 15.5927ZM114.321 19.3753C112.964 19.366 111.606 19.3753 110.25 19.3753H106.206C105.83 19.3753 105.819 19.3629 105.897 18.9868C106.428 16.4471 108.491 15.2584 110.849 15.5463C112.914 15.7986 114.163 17.0398 114.587 19.0719C114.647 19.3412 114.564 19.3846 114.321 19.3753Z\",\n fill: \"currentColor\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgSimplex);\nexport default __webpack_public_path__ + \"static/media/simplex.2a0cdd74.svg\";\nexport { ForwardRef as ReactComponent };","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 SvgRamp(_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: 138,\n height: 32,\n viewBox: \"0 0 138 32\",\n fill: \"currentColor\",\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: \"M34.4432 18.8309L28.3844 24.912C27.8711 25.4272 27.8716 26.2647 28.3854 26.7792L33.0154 31.4158C33.8045 32.1947 35.0945 32.1947 35.8836 31.4158L50.0746 17.4093C50.8637 16.6305 50.8637 15.3571 50.0746 14.5783L35.8836 0.584122C35.0945 -0.194707 33.8045 -0.194707 33.0154 0.584122L28.3854 5.22078C27.8716 5.73535 27.8711 6.57281 28.3844 7.08795L34.4432 13.1691C36.0214 14.7267 36.0214 17.2733 34.4432 18.8309Z\",\n fill: \"#0A6E5C\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.2232 18.8309L22.282 24.912C22.7953 25.4272 22.7948 26.2647 22.281 26.7792L17.651 31.4158C16.8619 32.1947 15.5719 32.1947 14.7828 31.4158L0.591812 17.4093C-0.197271 16.6305 -0.197271 15.3571 0.591812 14.5783L14.7828 0.584122C15.5719 -0.194707 16.8619 -0.194707 17.651 0.584122L22.281 5.22078C22.7948 5.73535 22.7953 6.57281 22.282 7.08795L16.2232 13.1691C14.645 14.7267 14.645 17.2733 16.2232 18.8309Z\",\n fill: \"#21BF73\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.8114 17.157C17.1723 16.518 17.1723 15.482 17.8114 14.843L24.1751 8.47926C24.8141 7.84025 25.8501 7.84025 26.4891 8.47926L32.8528 14.843C33.4918 15.482 33.4918 16.518 32.8528 17.157L26.4891 23.5207C25.8501 24.1598 24.8141 24.1598 24.1751 23.5207L17.8114 17.157Z\",\n fill: \"#21BF73\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M77.8036 25.6003H73.2814L70.7874 19.0761C70.5864 18.5622 70.2758 18.2043 69.8555 18.0025C69.4536 17.8006 68.942 17.6996 68.3208 17.6996H65.5527V25.6003H61.332V6H70.02C72.2856 6 74.0031 6.49551 75.1725 7.48654C76.3418 8.47757 76.9265 9.89988 76.9265 11.7535C76.9265 13.0565 76.5794 14.176 75.8851 15.112C75.209 16.0479 74.2315 16.7178 72.9525 17.1215C74.1036 17.3601 74.935 18.1585 75.4466 19.5165L77.8036 25.6003ZM69.3896 14.4237C70.6138 14.4237 71.5091 14.2219 72.0755 13.8181C72.6419 13.396 72.9251 12.7445 72.9251 11.8636C72.9251 10.9827 72.6419 10.3403 72.0755 9.93659C71.5091 9.51448 70.6138 9.30343 69.3896 9.30343H65.4978V14.4237H69.3896Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M94.3851 11.6435V25.6004H90.3015V23.5358C89.8813 24.2515 89.2875 24.8113 88.5201 25.215C87.7527 25.6188 86.8848 25.8207 85.9164 25.8207C84.7105 25.8207 83.6416 25.527 82.7098 24.9398C81.7962 24.3525 81.0745 23.5174 80.5447 22.4347C80.0331 21.3335 79.7773 20.0672 79.7773 18.6357C79.7773 17.2042 80.0331 15.9287 80.5447 14.8092C81.0745 13.6897 81.8054 12.8272 82.7372 12.2216C83.669 11.5976 84.7288 11.2856 85.9164 11.2856C86.8848 11.2856 87.7527 11.4966 88.5201 11.9187C89.2875 12.3408 89.8813 12.9098 90.3015 13.6255V11.6435H94.3851ZM87.1223 22.6549C88.1455 22.6549 88.9312 22.3062 89.4793 21.6088C90.0274 20.9114 90.3015 19.902 90.3015 18.5807C90.3015 17.2593 90.0274 16.2499 89.4793 15.5525C88.9312 14.8368 88.1455 14.4789 87.1223 14.4789C86.0991 14.4789 85.3043 14.8459 84.7379 15.58C84.1715 16.3141 83.8883 17.3327 83.8883 18.6357C83.8883 19.9387 84.1624 20.9389 84.7105 21.6363C85.2769 22.3154 86.0809 22.6549 87.1223 22.6549Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M114.719 11.2854C116.309 11.2854 117.487 11.7717 118.255 12.7444C119.04 13.6987 119.433 15.1669 119.433 17.149V25.6002H115.295V17.2866C115.295 16.3139 115.139 15.6165 114.829 15.1944C114.518 14.754 114.007 14.5338 113.294 14.5338C112.454 14.5338 111.805 14.8274 111.348 15.4147C110.891 16.0019 110.663 16.8278 110.663 17.8922V25.6002H106.524V17.2866C106.524 16.3323 106.36 15.6349 106.031 15.1944C105.721 14.754 105.218 14.5338 104.524 14.5338C103.683 14.5338 103.026 14.8274 102.55 15.4147C102.094 16.0019 101.865 16.8278 101.865 17.8922V25.6002H97.7269V15.6349C97.7269 14.1484 97.6538 12.8178 97.5076 11.6433H101.399L101.646 13.7354C102.066 12.9463 102.651 12.3406 103.4 11.9185C104.167 11.4964 105.045 11.2854 106.031 11.2854C108.096 11.2854 109.466 12.1479 110.142 13.8731C110.599 13.0839 111.229 12.4599 112.033 12.0011C112.855 11.524 113.751 11.2854 114.719 11.2854Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M131.195 11.2856C132.383 11.2856 133.443 11.5976 134.375 12.2216C135.306 12.8272 136.028 13.6897 136.54 14.8092C137.07 15.9287 137.334 17.2042 137.334 18.6357C137.334 20.0672 137.079 21.3335 136.567 22.4347C136.056 23.5174 135.334 24.3525 134.402 24.9398C133.47 25.527 132.401 25.8207 131.195 25.8207C130.227 25.8207 129.359 25.6188 128.592 25.215C127.824 24.8113 127.24 24.2515 126.838 23.5358V32.0001H122.699V15.6351C122.699 14.1486 122.626 12.818 122.48 11.6435H126.372L126.646 13.9559C127.011 13.13 127.596 12.4785 128.4 12.0013C129.222 11.5242 130.154 11.2856 131.195 11.2856ZM130.017 22.6549C131.04 22.6549 131.826 22.3154 132.374 21.6363C132.922 20.9389 133.196 19.9387 133.196 18.6357C133.196 17.3327 132.913 16.3141 132.346 15.58C131.798 14.8459 131.022 14.4789 130.017 14.4789C128.994 14.4789 128.199 14.8368 127.632 15.5525C127.084 16.2499 126.81 17.2593 126.81 18.5807C126.81 19.902 127.084 20.9114 127.632 21.6088C128.199 22.3062 128.994 22.6549 130.017 22.6549Z\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 138,\n height: 32,\n fill: \"white\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgRamp);\nexport default __webpack_public_path__ + \"static/media/ramp.d24dd520.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 SvgMercuryo(_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: 178,\n height: 34,\n viewBox: \"0 0 178 34\",\n fill: \"currentColor\",\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.1509 32.8009C11.8331 32.8009 7.78638 31.1014 4.73324 28.0132C1.68012 24.9248 0 20.8315 0 16.464C0 12.0966 1.68012 8.00323 4.73324 4.91495C7.78638 1.82666 11.8331 0.127197 16.1509 0.127197C20.4686 0.127197 24.5154 1.82666 27.5685 4.91495C30.6216 8.00323 32.3017 12.0966 32.3017 16.464C32.3017 20.8315 30.6216 24.9248 27.5685 28.0132C24.5154 31.1014 20.4686 32.8009 16.1509 32.8009Z\",\n fill: \"black\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.586 32.8923H22.8729C22.8729 29.9867 26.0706 25.8202 26.0706 19.5523C26.0706 14.2164 25.2034 11.3291 24.6615 9.97683C24.2279 8.86212 23.722 8.22253 22.638 8.22253C21.5541 8.22253 20.5063 8.64285 20.2172 11.1098C19.3681 18.4376 16.1344 22.6772 16.586 32.8923Z\",\n fill: \"white\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.6291 32.8923H9.34217C9.34217 29.9868 6.14453 25.8203 6.14453 19.5525C6.14453 14.2165 7.01168 11.3292 7.55365 9.97693C7.98723 8.86224 8.49307 8.22266 9.57703 8.22266C10.661 8.22266 11.7088 8.64295 11.9978 11.1099C12.8289 18.4378 16.0627 22.6773 15.6291 32.8923Z\",\n fill: \"white\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M23.074 33.0568H16.4618V32.8923C16.1909 26.5146 17.3471 22.4578 18.4491 18.529C19.1356 16.1169 19.7859 13.8326 20.1111 11.0733C20.2556 9.90373 20.5628 9.09967 21.0687 8.60629C21.4661 8.22255 21.9901 8.03979 22.6945 8.03979C23.8869 8.03979 24.4288 8.78902 24.8624 9.90373C25.7838 12.2428 26.2716 15.5869 26.2716 19.534C26.2716 23.2984 25.1335 26.3137 24.2121 28.7258C23.5978 30.3339 23.074 31.7226 23.074 32.874V33.0568ZM16.787 32.7279H22.7488C22.803 31.5582 23.3088 30.1878 23.905 28.6344C24.8083 26.2406 25.9464 23.2619 25.9464 19.5523C25.9464 15.6417 25.4586 12.3524 24.5554 10.0499C24.0855 8.84385 23.5799 8.40528 22.6945 8.40528C21.7371 8.40528 20.7254 8.73421 20.4363 11.1463C20.1111 13.9422 19.4608 16.2265 18.7742 18.657C17.6903 22.4944 16.5522 26.4782 16.787 32.7279Z\",\n fill: \"black\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.8332 33.0568H9.22109V32.8923C9.22109 31.741 8.69718 30.3522 8.08295 28.7441C7.16158 26.332 6.02344 23.3167 6.02344 19.5523C6.02344 15.5869 6.51121 12.2611 7.43258 9.92203C7.86616 8.80733 8.40813 8.05811 9.60046 8.05811C10.305 8.05811 10.8109 8.24084 11.2264 8.62458C11.7322 9.11799 12.0574 9.92203 12.1839 11.0915C12.5091 13.8509 13.1594 16.1351 13.8459 18.5473C14.966 22.4761 16.1042 26.5146 15.8332 32.9105V33.0568ZM9.56435 32.7279H15.5261C15.779 26.4965 14.6408 22.4944 13.5388 18.6387C12.8523 16.2082 12.202 13.924 11.8768 11.1281C11.6058 8.71597 10.576 8.38704 9.61853 8.38704C8.7333 8.38704 8.22746 8.82561 7.75776 10.0317C6.85446 12.3342 6.36669 15.6235 6.36669 19.534C6.36669 23.2253 7.50483 26.2223 8.40812 28.6161C9.0043 30.1878 9.51014 31.54 9.56435 32.7279Z\",\n fill: \"black\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.1649 32.9654H16.0023C14.6293 32.9654 13.4912 32.216 12.6963 30.7907C11.9917 29.5481 11.5762 27.8305 11.4678 25.8202C11.251 21.9461 10.8355 14.5636 10.5645 11.256C10.4562 9.7941 9.98643 9.66618 9.57092 9.66618C9.08315 9.66618 8.77603 10.0682 8.48697 11.1098C8.23406 12.0418 7.34882 16.4092 7.71015 20.868C7.92694 23.5909 8.79408 25.8751 9.57092 27.8852C10.2755 29.7309 10.8717 31.3207 10.8717 32.874H10.5465C10.5465 31.3754 9.95031 29.8223 9.2638 28.0131C8.48697 25.9665 7.60175 23.6639 7.38496 20.8863C7.02364 16.391 7.92694 11.9504 8.17985 11.0185C8.41471 10.1413 8.75796 9.31897 9.57092 9.31897C10.3839 9.31897 10.7813 9.88546 10.8897 11.2012C11.1426 14.5087 11.5762 21.9097 11.793 25.7837C11.9014 27.7391 12.3169 29.402 12.9854 30.6081C13.7261 31.942 14.7558 32.6182 16.0023 32.6182H16.1649C16.8153 32.6182 17.4115 32.4354 17.9354 32.0882C18.4413 31.7593 18.8747 31.2476 19.2542 30.6081C19.9587 29.402 20.3923 27.7025 20.5008 25.7837C20.7175 21.9097 21.133 14.5087 21.404 11.2012C21.5125 9.86719 21.9099 9.31897 22.7228 9.31897C23.5357 9.31897 23.879 10.123 24.1138 11.0185C24.3667 11.9504 25.2702 16.391 24.9088 20.8863C24.6921 23.6456 23.8068 25.9846 23.03 28.0314C22.3435 29.8587 21.7473 31.4304 21.7473 32.9288H21.4221C21.4221 31.3754 22.0363 29.7675 22.7228 27.9217C23.4816 25.8934 24.3667 23.5909 24.5836 20.868C24.945 16.4275 24.0597 12.0418 23.8068 11.1098C23.5178 10.0682 23.2106 9.66618 22.7228 9.66618C22.3073 9.66618 21.8557 9.7941 21.7292 11.256C21.4763 14.5636 21.0426 21.9461 20.8259 25.8202C20.7175 27.8122 20.2659 29.5298 19.5432 30.7907C18.6942 32.1979 17.5379 32.9654 16.1649 32.9654Z\",\n fill: \"black\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.6273 8.25912V8.49668C17.1459 8.82561 16.5678 9.3921 16.2426 10.9454H15.9535C15.6283 9.37383 15.1044 8.82561 13.5508 8.49668V8.25912C15.0864 7.93018 15.6103 7.36371 15.9535 5.81042H16.2426C16.5858 7.38199 17.1639 7.93018 18.6273 8.25912Z\",\n fill: \"white\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.1509 32.8009C11.8331 32.8009 7.78638 31.1014 4.73324 28.0132C1.68012 24.9248 0 20.8315 0 16.464C0 12.0966 1.68012 8.00323 4.73324 4.91495C7.78638 1.82666 11.8331 0.127197 16.1509 0.127197C20.4686 0.127197 24.5154 1.82666 27.5685 4.91495C30.6216 8.00323 32.3017 12.0966 32.3017 16.464C32.3017 20.8315 30.6216 24.9248 27.5685 28.0132C24.5154 31.1014 20.4686 32.8009 16.1509 32.8009ZM16.1509 0.529225C7.46119 0.529225 0.397447 7.67429 0.397447 16.464C0.397447 25.2537 7.46119 32.3987 16.1509 32.3987C24.8406 32.3987 31.9043 25.2537 31.9043 16.464C31.9043 7.69257 24.8406 0.529225 16.1509 0.529225Z\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M171.013 11.3336C167.192 11.3336 164.094 14.4674 164.094 18.3324C164.094 22.1974 167.192 25.3311 171.013 25.3311C174.834 25.3311 177.932 22.1974 177.932 18.3324C177.932 14.4674 174.834 11.3336 171.013 11.3336ZM171.013 23.4178C168.235 23.4178 165.985 21.1399 165.985 18.3324C165.985 15.523 168.237 13.2469 171.013 13.2469C173.79 13.2469 176.04 15.5248 176.04 18.3324C176.04 21.1418 173.788 23.4178 171.013 23.4178Z\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M93.2699 11.3336C91.3188 11.3336 89.8421 12.8968 89.4145 14.1705V11.8816H83.675V13.8003H87.534V22.9506L83.6641 22.956V24.8583L94.1922 24.8528V22.9506H89.4145V17.1485C89.4145 16.278 90.1574 13.1259 92.73 13.1259C93.5164 13.1259 94.2356 13.3367 94.7031 13.8883C94.5201 14.1375 94.4114 14.4454 94.4114 14.7789C94.4114 15.6091 95.0763 16.2799 95.8951 16.2799C96.7774 16.2799 97.35 15.5523 97.35 14.6708C97.3537 13.2212 95.7322 11.3336 93.2699 11.3336Z\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M142.274 11.3281C140.323 11.3281 138.846 12.884 138.418 14.1577V11.8852L132.679 11.8816V13.8021H136.538V22.9377L132.668 22.9431V24.8455L143.196 24.8399V22.9377H138.418V17.1375C138.418 16.267 139.161 13.1149 141.734 13.1149C142.52 13.1149 143.24 13.3257 143.707 13.8773C143.524 14.1265 143.415 14.4344 143.415 14.7679C143.415 15.5981 144.08 16.2688 144.899 16.2688C145.781 16.2688 146.354 15.5413 146.354 14.6598C146.358 13.2084 144.736 11.3281 142.274 11.3281Z\"\n })), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M110.964 17.4563C111.785 17.4563 112.448 16.7838 112.448 15.9554C112.448 15.8913 112.442 15.8271 112.435 15.7648C112.247 14.0349 109.561 11.3629 106.145 11.3629C102.275 11.3629 99.1367 14.504 99.1367 18.3763C99.1367 22.2487 102.275 25.3897 106.145 25.3897C108.824 25.3897 111.15 23.8833 112.328 21.6714L110.813 20.6359C109.886 22.3127 108.161 23.4746 106.143 23.4746C103.331 23.4746 101.126 21.1931 101.126 18.3781C101.126 15.5633 103.331 13.2816 106.143 13.2816C107.703 13.2816 109.018 13.8846 109.891 14.9163C109.634 15.1857 109.476 15.5523 109.476 15.9573C109.48 16.7838 110.145 17.4563 110.964 17.4563Z\"\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M157.506 13.804H159.063L155.7 22.617L152.03 13.8058H153.624V11.8834H148.102V13.804H150.013L154.722 25.1882L152.124 32.0036H154.137L161.074 13.8058H163.029V11.8834H157.506V13.804Z\"\n })), _path14 || (_path14 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M63.5666 16.8424C63.5666 13.4393 61.32 11.3318 58.5696 11.3318C56.41 11.3318 54.6092 12.9097 53.8192 14.5205C53.0511 12.5211 51.281 11.3318 49.2283 11.3318C47.1755 11.3318 45.42 12.8858 44.8728 14.1613V11.8779L40.9648 11.8852V13.804H42.9922V24.84H44.8728V17.1173C44.8728 16.2285 45.9273 13.0819 48.9548 13.0819C50.3897 13.0819 52.3445 14.3941 52.3445 17.0807C52.3445 18.4369 52.3445 24.8418 52.3445 24.8418H54.225C54.225 24.8418 54.225 17.2163 54.225 17.0807C54.225 16.1919 55.1618 13.0819 58.2979 13.0819C59.7328 13.0819 61.6878 14.2658 61.6878 16.9506C61.6878 18.3067 61.6878 24.8418 61.6878 24.8418H65.592V22.9524H63.5683L63.5666 16.8424Z\"\n })), _path15 || (_path15 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M74.5976 11.3263C70.7675 11.3263 67.6641 14.4124 67.6641 18.2865C67.6641 18.4149 67.6931 18.928 67.7003 19.0067C68.05 22.5529 71.0375 25.3257 74.6718 25.3257C77.3515 25.3257 79.6777 23.8193 80.8554 21.6072L79.3407 20.5718C78.4133 22.2487 76.6885 23.4106 74.6701 23.4106C72.0902 23.4106 69.9395 21.488 69.6152 18.9958L81.2322 19.0031C81.2559 18.7684 81.2684 18.5284 81.2684 18.2883C81.2702 14.4124 78.4276 11.3263 74.5976 11.3263ZM69.6841 17.0917C70.2168 14.8394 72.2187 13.1644 74.6086 13.1644C76.9982 13.1644 78.7393 14.8394 79.2719 17.0917H69.6841Z\"\n })), _path16 || (_path16 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M127.786 11.8834H125.905L125.907 19.5639C125.907 21.3122 124.103 23.6708 121.813 23.6708C120.378 23.6708 118.436 22.2964 118.436 19.8004C118.436 18.4441 118.436 11.8834 118.436 11.8834L114.531 11.8871V13.7985H116.555V19.9084C116.555 23.3116 118.796 25.3239 121.546 25.3239C123.494 25.3239 125 24.1089 125.907 22.8351V24.8564L129.815 24.8492V22.947H127.788L127.786 11.8834Z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgMercuryo);\nexport default __webpack_public_path__ + \"static/media/mercuryo.98a506e9.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 SvgBell(_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: \"100%\",\n height: \"100%\",\n viewBox: \"0 0 20 20\",\n fill: \"currentColor\",\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.1093 20C9.17633 20 8.67633 19 8.67633 18.0068H11.6763C11.6763 18.5 11.1763 20 10.1093 20ZM1.02974 16.9243C0.389657 16.9243 0.00351404 16.4161 2.34866e-05 15.9253C-0.00172179 15.6759 0.0938322 15.4431 0.276214 15.2526C0.3277 15.1987 0.381803 15.1436 0.438525 15.0859C1.32033 14.1849 2.79596 12.6766 2.79596 8.46235C2.79596 5.42397 5.6767 2.86278 8.7894 2.23415L9.08479 2.17434V0.996819C9.08479 0.447084 9.54424 0 10.1093 0C10.6743 0 11.1337 0.447084 11.1337 0.996819V2.17434L11.4291 2.23415C14.5418 2.86278 17.2041 5.407 17.2041 8.44539C17.2041 12.6592 18.6797 14.1676 19.5615 15.0689C19.6178 15.1266 19.6723 15.1822 19.7238 15.2361C19.9542 15.4766 20.0013 15.7345 20 15.9088C19.9969 16.4 19.6108 16.9077 18.9703 16.9077L1.02974 16.9243ZM4.14724 8.50732C4.1407 11.2954 3.52985 13.4295 2.27979 15.0312L1.8282 15.6098L18.1718 15.5928L17.7198 15.0142C16.4702 13.4134 15.8593 11.2789 15.8523 8.49035C15.8523 8.49035 15.855 8.46235 15.855 8.44539C15.855 5.62672 13.0082 3.35101 10.1093 3.35101C7.21036 3.35101 4.14506 5.64411 4.14506 8.46235C4.14462 8.47932 4.14593 8.49459 4.14724 8.50732Z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgBell);\nexport default __webpack_public_path__ + \"static/media/bell.f3bf2bee.svg\";\nexport { ForwardRef as ReactComponent };","import { DepositMethods, FiatBox, Operations } from 'elements/fiat/FiatBox';\nimport { ReactComponent as moonPayLogo } from 'assets/logos/moonpay.svg';\nimport { ReactComponent as banxaLogo } from 'assets/logos/banxa.svg';\nimport { ReactComponent as simplexLogo } from 'assets/logos/simplex.svg';\nimport { ReactComponent as rampLogo } from 'assets/logos/ramp.svg';\nimport { ReactComponent as mercuryoLogo } from 'assets/logos/mercuryo.svg';\nimport { ReactComponent as IconInfo } from 'assets/icons/info.svg';\n\nconst fiats = [\n {\n name: 'MoonPay',\n text: 'MoonPay is a financial technology company that builds payments infrastructure for crypto. Our on-and-off-ramp suite of products provides a seamless experience for converting between fiat currencies and cryptocurrencies using all major payment methods.',\n logo: moonPayLogo,\n operations: [Operations.fiatIn, Operations.fiatOut],\n depositMethods: [\n DepositMethods.wire,\n DepositMethods.creditCard,\n DepositMethods.debitCard,\n DepositMethods.samsungPay,\n DepositMethods.googlePay,\n DepositMethods.applePay,\n ],\n buyUrl:\n 'https://buy.moonpay.com/?apiKey=pk_live_qiJRayRj9iKRUWCfaWX5Vo6Sn0rnNsj&defaultCurrencyCode=ETH',\n sellUrl:\n 'https://sell.moonpay.com/?apiKey=pk_live_qiJRayRj9iKRUWCfaWX5Vo6Sn0rnNsj&defaultCurrencyCode=ETH',\n },\n {\n name: 'Banxa',\n text: 'Banxa is a globally operating fiat-to-crypto on-ramp providing the easiest way for anyone looking to enter the digital asset ecosystem. Banxa users can choose from a variety of the most popular and convenient payment methods.',\n logo: banxaLogo,\n operations: [Operations.fiatIn],\n depositMethods: [\n DepositMethods.creditCard,\n DepositMethods.debitCard,\n DepositMethods.applePay,\n DepositMethods.ideal,\n DepositMethods.interac,\n DepositMethods.sepa,\n ],\n buyUrl: 'https://pay.banxa.com',\n },\n {\n name: 'Simplex',\n text: 'Simplex is the industry leader, providing global on/off ramps to the entire fiat to crypto ecosystem. Working with a vast network of partners, Simplex ensures that crypto is safe and accessible to all.',\n logo: simplexLogo,\n operations: [Operations.fiatIn, Operations.fiatOut],\n depositMethods: [\n DepositMethods.wire,\n DepositMethods.creditCard,\n DepositMethods.debitCard,\n DepositMethods.applePay,\n ],\n buyUrl: 'https://b.buy-crypto-with-simplex.com/?crypto=ETH',\n sellUrl:\n 'https://www.simplex.com/account/sell?ref=b1990d7be52dfae9fa894a0d56317f28',\n },\n {\n name: 'Ramp',\n text: 'Ramp Network provides the ultimate crypto on-boarding flow. This globally accessible product focuses on excellent UX, supports multiple payment options and ensures lowest slippage and transactional fees.',\n logo: rampLogo,\n operations: [Operations.fiatIn],\n depositMethods: [\n DepositMethods.openBanking,\n DepositMethods.sepaInstant,\n DepositMethods.fasterPayments,\n DepositMethods.debitCard,\n DepositMethods.creditCard,\n DepositMethods.applePay,\n ],\n smallGap: true,\n buyUrl:\n 'https://buy.ramp.network/?hostApiKey=qg4s4spwnm7nahqdxfsjyzsjvtxbbzg8dxnxxrum&userAddress=0x5f7a009664b771e889751f4fd721adc439033ecd',\n },\n {\n name: 'Mercuryo',\n text: 'Mercuryo is a cross-boarder payment network providing global access to fast and cheap money transfers. Working together with industry leaders, Mercuryo offers a multi-currency widget that allows purchasing and selling crypto securely with the lowest fees.',\n logo: mercuryoLogo,\n operations: [Operations.fiatIn, Operations.fiatOut],\n depositMethods: [\n DepositMethods.creditCard,\n DepositMethods.debitCard,\n DepositMethods.applePay,\n DepositMethods.googlePay,\n ],\n buyUrl:\n 'https://exchange.mercuryo.io/?widget_id=d7702dc1-c8ee-4726-a5be-5f18e31849b6¤cy=ETH&type=buy',\n sellUrl:\n 'https://exchange.mercuryo.io/?widget_id=d7702dc1-c8ee-4726-a5be-5f18e31849b6¤cy=ETH&type=sell',\n },\n];\n\nexport const Fiat = () => {\n return (\n
\n
\n
\n Fiat Gateway Providers\n
\n
\n
Below is a list of popular fiat gateways.
\n It can be used to buy or sell crypto with a credit card, bank transfer\n & more.\n
\n
\n
\n
\n \n Fiat Services\n
\n
\n Fiat services on Bancor are provided by third-parties. Bancor is not\n associated with, responsible or liable for the performance of these\n third-party services. Any claims & questions should be addressed with\n the selected provider directly.\n
\n
\n {fiats.map((fiat) => (\n \n ))}\n
\n );\n};\n","import { Transition } from '@headlessui/react';\nimport { Fragment } from 'react';\n\ninterface DropdownTransitionProps {\n children: JSX.Element | JSX.Element[];\n}\n\nexport const DropdownTransition = ({ children }: DropdownTransitionProps) => {\n return (\n \n {children}\n \n );\n};\n","import { ReactComponent as IconCheck } from 'assets/icons/check.svg';\nimport { ReactComponent as IconTimes } from 'assets/icons/times.svg';\nimport { ReactComponent as IconLink } from 'assets/icons/link.svg';\nimport {\n Notification,\n NotificationType,\n} from 'redux/notification/notification';\nimport { ReactComponent as IconBancor } from 'assets/icons/bancor.svg';\nimport { classNameGenerator } from 'utils/pureFunctions';\nimport { useEffect, useRef, useState } from 'react';\nimport dayjs from 'dayjs';\nimport relativeTime from 'dayjs/plugin/relativeTime';\nimport updateLocale from 'dayjs/plugin/updateLocale';\nimport { useWeb3React } from '@web3-react/core';\nimport { getNetworkVariables } from 'services/web3/config';\nimport { EthNetworks } from 'services/web3/types';\n\ndayjs.extend(relativeTime);\ndayjs.extend(updateLocale);\n\ndayjs.updateLocale('en', {\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'now',\n m: 'now',\n mm: '%d min ago',\n h: 'an hour ago',\n hh: '%d hours ago',\n d: 'a day ago',\n dd: '%d days ago',\n M: 'a month ago',\n MM: '%d months ago',\n y: 'a year ago',\n yy: '%d years ago',\n },\n});\n\nexport interface NotificationContentProps {\n data: Notification;\n onRemove: Function;\n isAlert?: boolean;\n}\n\nexport const NotificationContent = ({\n data,\n onRemove,\n isAlert,\n}: NotificationContentProps) => {\n const { id, type, title, msg, showSeconds, timestamp, txHash } = data;\n const [isHovering, setIsHovering] = useState(false);\n const timer = useRef(null);\n\n useEffect(() => {\n if (!isAlert) return;\n if (type === NotificationType.pending) return;\n if (isHovering) {\n timer.current && clearTimeout(timer.current);\n return;\n }\n timer.current = setTimeout(() => {\n onRemove(id);\n }, showSeconds! * 1000);\n\n return () => {\n timer.current && clearTimeout(timer.current)\n }\n }, [isAlert, onRemove, type, showSeconds, id, isHovering]);\n\n\n\n const StatusIcon = () => {\n switch (type) {\n case NotificationType.pending:\n return (\n
\n \n
\n
\n
\n );\n case NotificationType.success:\n return ;\n case NotificationType.error:\n return ;\n default:\n return i;\n }\n };\n\n const { chainId } = useWeb3React();\n const etherscanUrl = () => {\n const currentNetwork =\n chainId === EthNetworks.Ropsten\n ? EthNetworks.Ropsten\n : EthNetworks.Mainnet;\n const baseUrl = getNetworkVariables(currentNetwork).etherscanUrl;\n return `${baseUrl}/tx/${txHash}`;\n };\n\n return (\n setIsHovering(true)}\n onMouseLeave={() => setIsHovering(false)}\n className=\"text-12\"\n >\n
\n
\n \n {StatusIcon()}\n
\n\n

{title}

\n \n {dayjs.unix(timestamp).fromNow(true)}\n \n
\n \n
\n {txHash && isHovering ? (\n \n View on Etherscan \n \n ) : (\n

{msg}

\n )}\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 SvgCog(_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: \"100%\",\n height: \"100%\",\n viewBox: \"0 0 22 22\",\n fill: \"currentColor\",\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: \"M18.6205 12.0096H18.0705V12.2853L18.2914 12.4502L18.6205 12.0096ZM20.7442 13.5962L21.1691 13.247L21.1268 13.1954L21.0733 13.1555L20.7442 13.5962ZM20.8429 14.3173L21.3164 14.5971L21.3247 14.5831L21.3322 14.5686L20.8429 14.3173ZM18.7687 17.8269L18.2952 17.5471L18.2869 17.5611L18.2795 17.5756L18.7687 17.8269ZM18.1761 18.0192L18.4168 17.5247L18.4089 17.5209L18.4008 17.5173L18.1761 18.0192ZM15.7067 16.9135L15.9315 16.4115L15.6259 16.2747L15.3641 16.4832L15.7067 16.9135ZM13.83 17.9231L13.6305 17.4106L13.3212 17.531L13.2836 17.8607L13.83 17.9231ZM13.5337 20.5192L12.9873 20.4569L12.9837 20.4879V20.5192H13.5337ZM8.4469 20.5192H8.9969V20.4879L8.99335 20.4569L8.4469 20.5192ZM8.15058 17.9231L8.69703 17.8607L8.65589 17.5003L8.30839 17.3962L8.15058 17.9231ZM6.27388 16.9135L6.61182 16.4795L6.35092 16.2763L6.0491 16.4115L6.27388 16.9135ZM3.80455 18.0192L3.57977 17.5173L3.57175 17.5209L3.56385 17.5247L3.80455 18.0192ZM3.21192 17.7308L3.73226 17.5526L3.71403 17.4994L3.6854 17.4509L3.21192 17.7308ZM1.13768 14.2212L0.663355 14.4996L0.66419 14.501L1.13768 14.2212ZM1.23645 13.5L1.47716 13.9945L1.51387 13.9767L1.54754 13.9536L1.23645 13.5ZM3.40946 12.0096L3.72055 12.4632L4.06518 12.2268L3.9298 11.8314L3.40946 12.0096ZM3.40946 9.99038H3.95946V9.71095L3.73378 9.54618L3.40946 9.99038ZM1.23645 8.40385L1.56077 7.95964L1.4898 7.90782L1.40621 7.8807L1.23645 8.40385ZM1.13768 7.68269L1.59147 7.99346L1.60022 7.98068L1.60824 7.96742L1.13768 7.68269ZM3.2613 4.17308L3.73186 4.45781L3.74179 4.44141L3.75054 4.42436L3.2613 4.17308ZM3.85394 3.98077L3.61323 4.4753L3.62928 4.48311L3.64579 4.48986L3.85394 3.98077ZM6.32327 4.99038L6.11512 5.49948L6.41365 5.62153L6.66593 5.4206L6.32327 4.99038ZM8.19996 3.98077L8.39953 4.49328L8.70727 4.37345L8.74614 4.04551L8.19996 3.98077ZM8.49628 1.48077L9.04246 1.54551L9.04628 1.51325V1.48077H8.49628ZM13.5831 1.48077H13.0331V1.51206L13.0367 1.54314L13.5831 1.48077ZM13.8794 4.07692L13.333 4.13929L13.3741 4.49971L13.7216 4.6038L13.8794 4.07692ZM15.7561 5.08654L15.4182 5.52047L15.6791 5.72366L15.9809 5.58851L15.7561 5.08654ZM18.2254 3.98077L18.4502 4.48274L18.4582 4.47915L18.4662 4.4753L18.2254 3.98077ZM18.8181 4.26923L18.2977 4.4474L18.316 4.50063L18.3446 4.54907L18.8181 4.26923ZM20.8923 7.77885L21.3666 7.50042L21.3658 7.49901L20.8923 7.77885ZM20.7935 8.5L20.5528 8.00547L20.5161 8.02334L20.4825 8.04643L20.7935 8.5ZM18.6205 9.99038L18.3095 9.53681L17.9648 9.77319L18.1002 10.1686L18.6205 9.99038ZM19.1705 12.0096C19.1705 11.911 19.1884 11.7723 19.2148 11.5794L18.125 11.4302C18.102 11.5979 18.0705 11.8198 18.0705 12.0096H19.1705ZM21.0733 13.1555L18.9497 11.569L18.2914 12.4502L20.415 14.0368L21.0733 13.1555ZM21.3322 14.5686C21.5274 14.1884 21.511 13.663 21.1691 13.247L20.3192 13.9454C20.3474 13.9796 20.3553 14.0084 20.3573 14.0283C20.3596 14.0524 20.3535 14.0664 20.3537 14.066L21.3322 14.5686ZM19.2422 18.1068L21.3164 14.5971L20.3694 14.0375L18.2952 17.5471L19.2422 18.1068ZM17.9354 18.5138C18.1912 18.6383 18.467 18.6232 18.6792 18.5544C18.8906 18.4858 19.1259 18.3352 19.2579 18.0782L18.2795 17.5756C18.2972 17.5411 18.3172 17.5231 18.3261 17.5163C18.3309 17.5125 18.3344 17.5105 18.3362 17.5096C18.3381 17.5086 18.3392 17.5083 18.3397 17.5081C18.3402 17.5079 18.341 17.5077 18.3426 17.5075C18.3442 17.5072 18.3474 17.5068 18.3526 17.507C18.3618 17.5072 18.3854 17.5094 18.4168 17.5247L17.9354 18.5138ZM15.4819 17.4154L17.9513 18.5212L18.4008 17.5173L15.9315 16.4115L15.4819 17.4154ZM14.0296 18.4356C14.7924 18.1385 15.4436 17.8262 16.0494 17.3437L15.3641 16.4832C14.8834 16.8661 14.3492 17.1307 13.6305 17.4106L14.0296 18.4356ZM14.0802 20.5816L14.3765 17.9854L13.2836 17.8607L12.9873 20.4569L14.0802 20.5816ZM13.0399 21.55C13.3086 21.55 13.5773 21.4608 13.7816 21.2619C13.9872 21.0617 14.0837 20.793 14.0837 20.5192H12.9837C12.9837 20.5284 12.9822 20.5252 12.9867 20.5139C12.9913 20.5022 13.0003 20.4873 13.0143 20.4737C13.0281 20.4602 13.0415 20.4532 13.0492 20.4504C13.0564 20.4477 13.0545 20.45 13.0399 20.45V21.55ZM8.94076 21.55H13.0399V20.45H8.94076V21.55ZM7.8969 20.5192C7.8969 20.793 7.99344 21.0617 8.19906 21.2619C8.40336 21.4608 8.67198 21.55 8.94076 21.55V20.45C8.92616 20.45 8.92425 20.4477 8.93144 20.4504C8.93911 20.4532 8.95247 20.4602 8.96636 20.4737C8.98035 20.4873 8.98926 20.5022 8.99392 20.5139C8.99837 20.5252 8.9969 20.5284 8.9969 20.5192H7.8969ZM7.60412 17.9854L7.90044 20.5816L8.99335 20.4569L8.69703 17.8607L7.60412 17.9854ZM5.93595 17.3474C6.46635 17.7605 7.26738 18.2327 7.99276 18.4499L8.30839 17.3962C7.74972 17.2289 7.06915 16.8357 6.61182 16.4795L5.93595 17.3474ZM4.02934 18.5212L6.49867 17.4154L6.0491 16.4115L3.57977 17.5173L4.02934 18.5212ZM2.69157 17.9089C2.89223 18.495 3.53628 18.7615 4.04526 18.5138L3.56385 17.5247C3.6251 17.4949 3.67044 17.5062 3.68959 17.5145C3.7022 17.5199 3.71284 17.5276 3.72097 17.5363C3.7296 17.5456 3.73229 17.5527 3.73226 17.5526L2.69157 17.9089ZM0.66419 14.501L2.73843 18.0106L3.6854 17.4509L1.61117 13.9413L0.66419 14.501ZM0.995742 13.0055C0.417226 13.2871 0.36078 13.9841 0.663357 14.4996L1.612 13.9427C1.56798 13.8677 1.58435 13.847 1.57867 13.876C1.57308 13.9046 1.54647 13.9608 1.47716 13.9945L0.995742 13.0055ZM3.09838 11.556L0.925365 13.0464L1.54754 13.9536L3.72055 12.4632L3.09838 11.556ZM2.76069 11C2.76069 11.2566 2.75423 11.7938 2.88912 12.1878L3.9298 11.8314C3.86715 11.6485 3.86069 11.3203 3.86069 11H2.76069ZM2.81516 10.4206C2.79219 10.5883 2.76069 10.8101 2.76069 11H3.86069C3.86069 10.9014 3.87858 10.7626 3.90499 10.5698L2.81516 10.4206ZM2.85946 9.99038C2.85946 10.089 2.84157 10.2277 2.81516 10.4206L3.90499 10.5698C3.92796 10.4021 3.95946 10.1802 3.95946 9.99038H2.85946ZM0.912133 8.84805L3.08514 10.4346L3.73378 9.54618L1.56077 7.95964L0.912133 8.84805ZM0.683889 7.37193C0.536581 7.58703 0.426523 7.86964 0.454247 8.16652C0.48588 8.50525 0.698275 8.80744 1.06669 8.92699L1.40621 7.8807C1.42499 7.88679 1.46605 7.90683 1.50228 7.95338C1.53728 7.99835 1.54739 8.04186 1.54948 8.06425C1.55134 8.0842 1.54721 8.08623 1.55277 8.06853C1.55803 8.05182 1.56961 8.02537 1.59147 7.99346L0.683889 7.37193ZM2.79074 3.88835L0.667116 7.39796L1.60824 7.96742L3.73186 4.45781L2.79074 3.88835ZM4.09465 3.48624C3.83879 3.3617 3.56301 3.37675 3.35082 3.4456C3.13942 3.5142 2.90408 3.66475 2.77206 3.92179L3.75054 4.42436C3.7328 4.45891 3.71276 4.47689 3.70391 4.48372C3.69906 4.48746 3.69556 4.48946 3.69376 4.4904C3.69193 4.49135 3.69084 4.49173 3.69034 4.4919C3.68983 4.49206 3.68896 4.49231 3.68739 4.49255C3.68584 4.49278 3.68257 4.49315 3.67743 4.49302C3.66818 4.49278 3.64462 4.49057 3.61323 4.4753L4.09465 3.48624ZM6.53142 4.48129L4.06209 3.47168L3.64579 4.48986L6.11512 5.49948L6.53142 4.48129ZM8.00039 3.46825C7.23756 3.7653 6.58642 4.07765 5.98061 4.56017L6.66593 5.4206C7.14662 5.03773 7.68077 4.77317 8.39953 4.49328L8.00039 3.46825ZM7.95011 1.41603L7.65379 3.91603L8.74614 4.04551L9.04246 1.54551L7.95011 1.41603ZM8.99015 0.45C8.72137 0.45 8.45275 0.53923 8.24845 0.738113C8.04282 0.938284 7.94628 1.20704 7.94628 1.48077H9.04628C9.04628 1.47164 9.04776 1.47477 9.0433 1.48605C9.03865 1.49782 9.02974 1.51269 9.01574 1.52631C9.00186 1.53983 8.9885 1.54676 8.98083 1.54964C8.97364 1.55233 8.97555 1.55 8.99015 1.55V0.45ZM13.0892 0.45H8.99015V1.55H13.0892V0.45ZM14.1331 1.48077C14.1331 1.20704 14.0366 0.938282 13.8309 0.738112C13.6266 0.53923 13.358 0.45 13.0892 0.45V1.55C13.1038 1.55 13.1057 1.55233 13.0986 1.54964C13.0909 1.54676 13.0775 1.53983 13.0636 1.52631C13.0496 1.51269 13.0407 1.49782 13.0361 1.48605C13.0316 1.47477 13.0331 1.47164 13.0331 1.48077H14.1331ZM14.4259 4.01455L14.1296 1.4184L13.0367 1.54314L13.333 4.13929L14.4259 4.01455ZM16.0941 4.65261C15.5636 4.23954 14.7626 3.76733 14.0372 3.55005L13.7216 4.6038C14.2803 4.77113 14.9608 5.16431 15.4182 5.52047L16.0941 4.65261ZM18.0007 3.4788L15.5313 4.58457L15.9809 5.58851L18.4502 4.48274L18.0007 3.4788ZM19.3384 4.09106C19.1378 3.50504 18.4937 3.2385 17.9847 3.48624L18.4662 4.4753C18.4049 4.50511 18.3596 4.49384 18.3404 4.48555C18.3278 4.4801 18.3172 4.47243 18.309 4.4637C18.3004 4.45443 18.2977 4.44729 18.2977 4.4474L19.3384 4.09106ZM21.3658 7.49901L19.2916 3.98939L18.3446 4.54907L20.4188 8.05868L21.3658 7.49901ZM21.0343 8.99453C21.6128 8.71294 21.6692 8.01589 21.3666 7.50042L20.418 8.05727C20.462 8.13227 20.4457 8.15296 20.4513 8.12395C20.4569 8.09537 20.4835 8.03921 20.5528 8.00547L21.0343 8.99453ZM18.9316 10.444L21.1046 8.95357L20.4825 8.04643L18.3095 9.53681L18.9316 10.444ZM19.2693 11C19.2693 10.7434 19.2758 10.2062 19.1409 9.81221L18.1002 10.1686C18.1628 10.3515 18.1693 10.6797 18.1693 11H19.2693ZM19.2148 11.5794C19.2378 11.4117 19.2693 11.1899 19.2693 11H18.1693C18.1693 11.0986 18.1514 11.2374 18.125 11.4302L19.2148 11.5794ZM11.0153 14.4404C9.03755 14.4404 7.46617 12.8501 7.46617 11H6.36617C6.36617 13.4768 8.4494 15.5404 11.0153 15.5404V14.4404ZM14.5643 11C14.5643 12.8501 12.993 14.4404 11.0153 14.4404V15.5404C13.5811 15.5404 15.6643 13.4768 15.6643 11H14.5643ZM11.0153 7.55962C12.9479 7.55962 14.5643 9.15414 14.5643 11H15.6643C15.6643 8.51894 13.5274 6.45962 11.0153 6.45962V7.55962ZM7.46617 11C7.46617 9.15414 9.08259 7.55962 11.0153 7.55962V6.45962C8.50313 6.45962 6.36617 8.51894 6.36617 11H7.46617Z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCog);\nexport default __webpack_public_path__ + \"static/media/cog.c03e0915.svg\";\nexport { ForwardRef as ReactComponent };","import { Popover } from '@headlessui/react';\nimport { DropdownTransition } from 'components/transitions/DropdownTransition';\nimport { ReactComponent as IconBell } from 'assets/icons/bell.svg';\nimport { useAppSelector } from 'redux/index';\nimport {\n Notification,\n NotificationType,\n removeNotification,\n setNotifications,\n setStatus,\n} from 'redux/notification/notification';\nimport { NotificationContent } from 'elements/notifications/NotificationContent';\nimport { useDispatch } from 'react-redux';\nimport { useState } from 'react';\nimport { ModalFullscreen } from 'components/modalFullscreen/ModalFullscreen';\nimport { useInterval } from 'hooks/useInterval';\nimport { web3 } from 'services/web3';\n\nexport const NotificationsMenu = () => {\n const dispatch = useDispatch();\n const [showModal, setShowModal] = useState(false);\n const notifications = useAppSelector(\n (state) => state.notification.notifications\n );\n\n const checkStatus = async (notification: Notification) => {\n if (!notification.txHash) return;\n try {\n const tx = await web3.provider.getTransactionReceipt(notification.txHash);\n if (tx !== null) {\n dispatch(\n setStatus({\n id: notification.id,\n type: tx.status ? NotificationType.success : NotificationType.error,\n title: tx.status\n ? notification.updatedInfo?.successTitle\n : notification.updatedInfo?.errorTitle,\n msg: tx.status\n ? notification.updatedInfo?.successMsg\n : notification.updatedInfo?.errorMsg,\n })\n );\n }\n } catch (e: any) {}\n };\n\n useInterval(async () => {\n notifications\n .filter((n) => n.type === NotificationType.pending)\n .forEach((n) => checkStatus(n));\n }, 2000);\n\n const title = (\n <>\n Notifications\n dispatch(setNotifications([]))}\n className=\"text-12 underline\"\n >\n clear\n \n \n );\n\n const history = notifications.map((notification, index) => {\n return (\n
\n dispatch(removeNotification(id))}\n />\n {notifications.length > index + 1 && (\n
\n )}\n
\n );\n });\n\n const hasPendingTx = () =>\n notifications.some((n) => n.type === NotificationType.pending);\n\n return (\n <>\n \n \n {hasPendingTx() && (\n \n \n  \n \n \n  \n \n \n )}\n\n \n \n\n \n \n
\n\n
\n
\n {title}\n
\n\n {history}\n
\n \n \n \n\n
\n setShowModal(true)}\n className=\"flex items-center\"\n >\n \n \n\n \n {history}\n \n
\n \n );\n};\n","var _g;\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 SvgSun(_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: \"100%\",\n height: \"100%\",\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, _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10 19.9998C9.65481 19.9998 9.375 19.72 9.375 19.3748V16.8748C9.375 16.5296 9.65481 16.2498 10 16.2498C10.3452 16.2498 10.625 16.5296 10.625 16.8748V19.3748C10.625 19.72 10.3452 19.9998 10 19.9998Z\",\n fill: \"currentColor\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M4.375 9.99982C4.375 13.1064 6.89337 15.6248 10 15.6248C13.1066 15.6248 15.625 13.1064 15.625 9.99982C15.625 6.89319 13.1066 4.37482 10 4.37482C6.89337 4.37482 4.375 6.89319 4.375 9.99982ZM10 14.3748C7.58375 14.3748 5.625 12.4161 5.625 9.99982C5.625 7.58357 7.58375 5.62482 10 5.62482C12.4163 5.62482 14.375 7.58357 14.375 9.99982C14.375 12.4161 12.4163 14.3748 10 14.3748Z\",\n fill: \"currentColor\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19.375 10.6248C19.7202 10.6248 20 10.345 20 9.99979C20 9.6546 19.7202 9.37479 19.375 9.37479H16.875C16.5298 9.37479 16.25 9.6546 16.25 9.99979C16.25 10.345 16.5298 10.6248 16.875 10.6248H19.375Z\",\n fill: \"currentColor\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.125 10.6248C3.47018 10.6248 3.75 10.345 3.75 9.99979C3.75 9.6546 3.47018 9.37479 3.125 9.37479H0.625C0.279822 9.37479 0 9.6546 0 9.99979C0 10.345 0.279822 10.6248 0.625 10.6248H3.125Z\",\n fill: \"currentColor\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.071 17.0706C16.827 17.3147 16.4312 17.3147 16.1872 17.0706L14.4194 15.3029C14.1753 15.0588 14.1753 14.6631 14.4194 14.419C14.6635 14.1749 15.0592 14.1749 15.3033 14.419L17.071 16.1868C17.3151 16.4308 17.3151 16.8266 17.071 17.0706Z\",\n fill: \"currentColor\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.58032 5.58021C5.33623 5.82434 4.94051 5.82434 4.69643 5.58021L2.92867 3.81246C2.68459 3.5684 2.68459 3.17265 2.92867 2.92858C3.17274 2.68452 3.56847 2.68452 3.81255 2.92858L5.58032 4.69634C5.82439 4.94046 5.82439 5.33615 5.58032 5.58021Z\",\n fill: \"currentColor\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2.92867 17.0706C2.68459 16.8266 2.68459 16.4308 2.92867 16.1868L4.69643 14.419C4.94051 14.1749 5.33623 14.1749 5.58032 14.419C5.82439 14.6631 5.82439 15.0588 5.58032 15.3029L3.81255 17.0706C3.56847 17.3147 3.17274 17.3147 2.92867 17.0706Z\",\n fill: \"currentColor\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.4194 5.58021C14.1753 5.33615 14.1753 4.94046 14.4194 4.69634L16.1872 2.92858C16.4312 2.68452 16.827 2.68452 17.071 2.92858C17.3151 3.17265 17.3151 3.5684 17.071 3.81246L15.3033 5.58021C15.0592 5.82434 14.6635 5.82434 14.4194 5.58021Z\",\n fill: \"currentColor\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.375 3.12479C9.375 3.46997 9.65481 3.74979 10 3.74979C10.3452 3.74979 10.625 3.46997 10.625 3.12479V0.62479C10.625 0.279603 10.3452 -0.000209808 10 -0.000209808C9.65481 -0.000209808 9.375 0.279603 9.375 0.62479V3.12479Z\",\n fill: \"currentColor\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgSun);\nexport default __webpack_public_path__ + \"static/media/sun.f3fcc395.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 SvgMoon(_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: \"100%\",\n height: \"100%\",\n viewBox: \"0 0 18 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: \"M11.2598 1.42162L11.3266 1.38242L11.2506 1.36793C10.7462 1.27189 10.226 1.22132 9.69471 1.22132C4.9929 1.22132 1.18273 5.15279 1.18273 10.0004C1.18273 14.8481 4.9929 18.7795 9.69471 18.7795C12.3646 18.7795 14.7465 17.5113 16.307 15.5278L16.3555 15.4661L16.2785 15.4812C11.7455 16.3717 7.53456 12.7964 7.53456 8.02426C7.53456 5.19486 9.03545 2.7274 11.2598 1.42162ZM11.4597 0.196205L11.4651 0.167615L11.4597 0.196206C12.5437 0.40269 12.7858 1.89696 11.8299 2.45814C9.88899 3.59748 8.68856 5.71419 8.68856 8.02465C8.68856 12.0399 12.2277 15.0644 16.0632 14.311C17.1372 14.0999 17.9009 15.3924 17.2023 16.2801C15.3985 18.5726 12.6745 19.9713 9.69471 19.9713C4.35493 19.9713 0.0291054 15.5059 0.0291054 10.0004C0.0291054 4.49026 4.35946 0.0295327 9.69471 0.0295327C10.2867 0.0295327 10.8775 0.0852203 11.4597 0.196205Z\",\n fill: \"currentColor\",\n stroke: \"currentColor\",\n strokeWidth: 0.0582109\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgMoon);\nexport default __webpack_public_path__ + \"static/media/moon.f85dd5c6.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3;\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 SvgHamburger(_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: \"100%\",\n height: \"100%\",\n viewBox: \"0 0 27 20\",\n fill: \"currentColor\",\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: \"M1 10L26 10\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1 1L26 1\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1 19L26 19\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgHamburger);\nexport default __webpack_public_path__ + \"static/media/hamburger.450449e6.svg\";\nexport { ForwardRef as ReactComponent };","import { SecondaryMenuItem } from 'elements/sidebar/menuSecondary/MenuSecondary';\nimport { ReactComponent as IconChevron } from 'assets/icons/chevronRight.svg';\nimport { ReactComponent as IconLink } from 'assets/icons/link.svg';\nimport { openNewTab } from 'utils/pureFunctions';\n\nexport const MenuSecondaryItem = ({ label, icon, to }: SecondaryMenuItem) => {\n return (\n to && openNewTab(to)}\n >\n \n {icon}\n {label}\n \n \n {to && to.startsWith('http') ? (\n \n ) : (\n \n )}\n \n
\n );\n};\n","import { Popover } from '@headlessui/react';\nimport { DropdownTransition } from 'components/transitions/DropdownTransition';\nimport { ReactComponent as IconCog } from 'assets/icons/cog.svg';\nimport { ReactComponent as IconSun } from 'assets/icons/sun.svg';\nimport { ReactComponent as IconMoon } from 'assets/icons/moon.svg';\nimport { useDispatch } from 'react-redux';\nimport { setDarkMode, setSlippageTolerance } from 'redux/user/user';\nimport { useAppSelector } from 'redux/index';\nimport { MenuSecondaryItem } from 'elements/sidebar/menuSecondary/MenuSecondaryItem';\nimport { ModalFullscreen } from 'components/modalFullscreen/ModalFullscreen';\nimport { useState } from 'react';\nimport { NavLink } from 'react-router-dom';\n\nexport const SettingsMenu = () => {\n const [showSettings, setShowSettings] = useState(false);\n const [customSlippage, setCustomSlippage] = useState('');\n\n const dispatch = useDispatch();\n const currentSlippage = useAppSelector(\n (state) => state.user.slippageTolerance\n );\n\n const slippages = [0.001, 0.005, 0.01];\n\n const content = (\n <>\n
\n
\n
Color Mode
\n
\n \n |\n \n
\n
\n
\n\n
\n
Slippage Tolerance
\n
\n {slippages.map((slippage) => (\n dispatch(setSlippageTolerance(slippage))}\n className={`w-full font-medium border border-grey-3 rounded-[12px] text-12 p-8 ${\n currentSlippage === slippage\n ? 'bg-primary !border-primary text-white'\n : ''\n }`}\n >\n +{slippage * 100}%\n \n ))}\n {\n if (!Number.isNaN(customSlippage)) {\n dispatch(setSlippageTolerance(Number(customSlippage) / 100));\n }\n }}\n value={customSlippage}\n onChange={(event) => {\n const { value } = event.target;\n if (!Number.isNaN(value)) {\n dispatch(setSlippageTolerance(Number(value) / 100));\n }\n setCustomSlippage(value);\n }}\n placeholder=\"Custom\"\n />\n
\n
\n
\n\n
\n\n
\n \n Terms of Use\n \n |\n \n Privacy Policy\n \n
\n \n );\n\n return (\n <>\n \n \n \n \n\n \n \n
\n
Settings
\n\n {content}\n \n \n \n\n
\n \n \n {content}\n \n
\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 SvgWallet(_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 viewBox: \"0 0 21 20\",\n fill: \"currentColor\",\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: \"M17.9374 4.13837H17.9387H17.9436H17.9485H17.9535H17.9585H17.9635H17.9686H17.9737H17.9789H17.9841H17.9893H17.9946H18H18.0053H18.0108H18.0162H18.0218H18.0273H18.0329H18.0386H18.0442H18.05H18.0557H18.0616H18.0674H18.0733H18.0793H18.0853H18.0913H18.0974H18.1036H18.1098H18.116H18.1223H18.1286H18.1349H18.1414H18.1478H18.1543H18.1609H18.1675H18.1741H18.1808H18.1875H18.1943H18.2012H18.208H18.215H18.222H18.229H18.2361H18.2432H18.2504H18.2576C19.4762 4.13837 20.4768 5.40327 20.4768 6.97002V17.1451C20.4768 18.7119 19.4762 19.9768 18.2576 19.9768L4.03535 19.9763C2.1036 19.9763 0.523233 17.9732 0.523233 15.4986V4.50042C0.523233 2.02628 2.1036 0.0232328 4.03535 0.0232328H15.6717C16.8903 0.0232328 17.8909 1.28813 17.8909 2.85488V4.09191H17.8905H17.8897H17.8888H17.8879H17.8878H17.887H17.886H17.8851H17.8842H17.8835H17.8832H17.8822H17.8812H17.8802H17.8792H17.8791H17.8782H17.8771H17.8761H17.875H17.8748H17.874H17.8729H17.8718H17.8707H17.8706H17.8696H17.8684H17.8673H17.8663H17.8662H17.865H17.8638H17.8627H17.8622H17.8615H17.8603H17.8591H17.858H17.8578H17.8566H17.8554H17.8541H17.8539H17.8529H17.8516H17.8504H17.8498H17.8491H17.8478H17.8465H17.8458H17.8452H17.8439H17.8426H17.8418H17.8412H17.8399H17.8385H17.8379H17.8372H17.8358H17.8345H17.834H17.8331H17.8317H17.8303H17.8301H17.8289H17.8275H17.8263H17.8261H17.8247H17.8233H17.8225H17.8219H17.8205H17.819H17.8187H17.8176H17.8161H17.815H17.8147H17.8132H17.8118H17.8113H17.8103H17.8089H17.8076H17.8074H17.8059H17.8044H17.804H17.8029H17.8014H17.8005H17.7999H17.7985H17.797H17.7969H17.7954H17.7939H17.7934H17.7924H17.7909H17.79H17.7894H17.7879H17.7865H17.7864H17.7848H17.7833H17.7832H17.7818H17.7802H17.7798H17.7787H17.7772H17.7765H17.7756H17.7741H17.7732H17.7726H17.771H17.77H17.7695H17.7679H17.7668H17.7664H17.7649H17.7636H17.7633H17.7618H17.7605H17.7602H17.7587H17.7574H17.7571H17.7556H17.7543H17.754H17.7525H17.7513H17.7509H17.7494H17.7483H17.7479H17.7463H17.7453H17.7448H17.7432H17.7424H17.7417H17.7402H17.7395H17.7386H17.7371H17.7367H17.7356H17.734H17.7338H17.7325H17.731H17.731H17.7294H17.7283H17.7279H17.7264H17.7256H17.7249H17.7234H17.7229H17.7219H17.7204H17.7202H17.7189H17.7176H17.7174H17.7159H17.715H17.7144H17.7129H17.7125H17.7114H17.71H17.7099H17.7084H17.7075H17.707H17.7055H17.705H17.704H17.7026H17.7026H17.7011H17.7002H17.6997H17.6982H17.6979H17.6968H17.6956H17.6954H17.694H17.6933H17.6925H17.6911H17.691H17.6897H17.6888H17.6883H17.6869H17.6866H17.6855H17.6845H17.6841H17.6828H17.6823H17.6814H17.6802H17.68H17.6787H17.6782H17.6773H17.6761H17.676H17.6747H17.6741H17.6733H17.6721H17.672H17.6707H17.6702H17.6694H17.6683H17.6681H17.6668H17.6664H17.6656H17.6646H17.6643H17.663H17.6627H17.6618H17.661H17.6605H17.6593H17.6592H17.6581H17.6575H17.6569H17.6558H17.6557H17.6545H17.6541H17.6533H17.6524H17.6521H17.651H17.6508H17.6498H17.6493H17.6487H17.6477H17.6475H17.6464H17.6462H17.6453H17.6447H17.6442H17.6432H17.6431H17.642H17.6418H17.641H17.6404H17.6399H17.639H17.6389H17.6378H17.6376H17.6368H17.6363H17.6358H17.635H17.6348H17.6338H17.6337H17.6329H17.6325H17.6319H17.6313H17.631H17.6301H17.63H17.6291H17.6289H17.6282H17.6278H17.6273H17.6267H17.6264H17.6256H17.6256H17.6247H17.6245H17.6239H17.6235H17.623H17.6225H17.6222H17.6215H17.6214H17.6206H17.6206H17.6199H17.6196H17.6191H17.6187H17.6184H17.6179H17.6177H17.617H17.6169H17.6162H17.6162H17.6156H17.6154H17.6149H17.6146H17.6143H17.6139H17.6136H17.6132H17.613H17.6125H17.6124H17.6118H17.6118H17.6112H17.6111H17.6107H17.6105H17.6102H17.6099H17.6096H17.6093H17.6091H17.6088H17.6086H17.6083H17.6082H17.6078H17.6077H17.6073H17.6069H17.6068H17.6065H17.6064H17.6061H17.606H17.6057H17.6056H17.6054H17.6052H17.605H17.6049H17.6047H17.6046H17.6044H17.6043H17.6042H17.604H17.6039H17.6037H17.6037H17.6035H17.6035H17.6033H17.6033H17.6031H17.6029H17.6028H17.6027H17.6026H17.6025H17.6024H17.6024H17.6024L17.6024 4.13837H17.6024H17.6024H17.6025H17.6026H17.6027H17.6028H17.6029H17.6031H17.6033H17.6033H17.6035H17.6035H17.6037H17.6037H17.6039H17.604H17.6042H17.6043H17.6044H17.6046H17.6047H17.6049H17.605H17.6052H17.6054H17.6056H17.6057H17.606H17.6061H17.6064H17.6065H17.6068H17.6069H17.6073H17.6077H17.6078H17.6082H17.6083H17.6086H17.6088H17.6091H17.6093H17.6096H17.6099H17.6102H17.6105H17.6107H17.6111H17.6112H17.6118H17.6118H17.6124H17.6125H17.613H17.6132H17.6136H17.6139H17.6143H17.6146H17.6149H17.6154H17.6156H17.6162H17.6162H17.6169H17.617H17.6177H17.6179H17.6184H17.6187H17.6191H17.6196H17.6199H17.6206H17.6206H17.6214H17.6215H17.6222H17.6225H17.623H17.6235H17.6239H17.6245H17.6247H17.6256H17.6256H17.6264H17.6267H17.6273H17.6278H17.6282H17.6289H17.6291H17.63H17.6301H17.631H17.6313H17.6319H17.6325H17.6329H17.6337H17.6338H17.6348H17.635H17.6358H17.6363H17.6368H17.6376H17.6378H17.6389H17.639H17.6399H17.6404H17.641H17.6418H17.642H17.6431H17.6432H17.6442H17.6447H17.6453H17.6462H17.6464H17.6475H17.6477H17.6487H17.6493H17.6498H17.6508H17.651H17.6521H17.6524H17.6533H17.6541H17.6545H17.6557H17.6558H17.6569H17.6575H17.6581H17.6592H17.6593H17.6605H17.661H17.6618H17.6627H17.663H17.6643H17.6646H17.6656H17.6664H17.6668H17.6681H17.6683H17.6694H17.6702H17.6707H17.672H17.6721H17.6733H17.6741H17.6747H17.676H17.6761H17.6773H17.6782H17.6787H17.68H17.6802H17.6814H17.6823H17.6828H17.6841H17.6845H17.6855H17.6866H17.6869H17.6883H17.6888H17.6897H17.691H17.6911H17.6925H17.6933H17.694H17.6954H17.6956H17.6968H17.6979H17.6982H17.6997H17.7002H17.7011H17.7026H17.7026H17.704H17.705H17.7055H17.707H17.7075H17.7084H17.7099H17.71H17.7114H17.7125H17.7129H17.7144H17.715H17.7159H17.7174H17.7176H17.7189H17.7202H17.7204H17.7219H17.7229H17.7234H17.7249H17.7256H17.7264H17.7279H17.7283H17.7294H17.731H17.731H17.7325H17.7338H17.734H17.7356H17.7367H17.7371H17.7386H17.7395H17.7402H17.7417H17.7424H17.7432H17.7448H17.7453H17.7463H17.7479H17.7483H17.7494H17.7509H17.7513H17.7525H17.754H17.7543H17.7556H17.7571H17.7574H17.7587H17.7602H17.7605H17.7618H17.7633H17.7636H17.7649H17.7664H17.7668H17.7679H17.7695H17.77H17.771H17.7726H17.7732H17.7741H17.7756H17.7765H17.7772H17.7787H17.7798H17.7802H17.7818H17.7832H17.7833H17.7848H17.7864H17.7865H17.7879H17.7894H17.79H17.7909H17.7924H17.7934H17.7939H17.7954H17.7969H17.797H17.7985H17.7999H17.8005H17.8014H17.8029H17.804H17.8044H17.8059H17.8074H17.8076H17.8089H17.8103H17.8113H17.8118H17.8132H17.8147H17.815H17.8161H17.8176H17.8187H17.819H17.8205H17.8219H17.8225H17.8233H17.8247H17.8261H17.8263H17.8275H17.8289H17.8301H17.8303H17.8317H17.8331H17.834H17.8345H17.8358H17.8372H17.8379H17.8385H17.8399H17.8412H17.8418H17.8426H17.8439H17.8452H17.8458H17.8465H17.8478H17.8491H17.8498H17.8504H17.8516H17.8529H17.8539H17.8541H17.8554H17.8566H17.8578H17.858H17.8591H17.8603H17.8615H17.8622H17.8627H17.8638H17.865H17.8662H17.8663H17.8673H17.8684H17.8696H17.8706H17.8707H17.8718H17.8729H17.874H17.8748H17.875H17.8761H17.8771H17.8782H17.8791H17.8792H17.8802H17.8812H17.8822H17.8832H17.8835H17.8842H17.8851H17.886H17.887H17.8878H17.8879H17.8888H17.8897H17.8905H17.8914H17.8923H17.8931H17.8939H17.8947H17.8955H17.8963H17.8967H17.897H17.8978H17.8985H17.8992H17.8999H17.9006H17.9012H17.9013H17.9019H17.9026H17.9032H17.9038H17.9044H17.905H17.9056H17.9058H17.9061H17.9066H17.9071H17.9076H17.9081H17.9086H17.909H17.9094H17.9098H17.9102H17.9104H17.9106H17.911H17.9113H17.9116H17.9119H17.9122H17.9125H17.9127H17.9129H17.9131H17.9133H17.9135H17.9136H17.9138H17.9139H17.914H17.914H17.9141H17.9141H17.915H17.9196H17.9244H17.9291H17.9339H17.9374ZM17 4.13837H17.0232V4.11514V2.85488C17.0232 2.4234 16.8972 1.95525 16.666 1.59433C16.4349 1.23334 16.0964 0.976767 15.6717 0.976767L4.03535 0.976253C3.39456 0.976253 2.75466 1.45845 2.27658 2.13568C1.79784 2.81384 1.47677 3.69367 1.47677 4.50042V15.4986C1.47677 16.3056 1.79794 17.1855 2.27673 17.8637C2.75486 18.541 3.39476 19.0232 4.03535 19.0232V19C4.03535 19.0232 4.03541 19.0232 4.03551 19.0232H4.03597H4.03674H4.03781H4.03919H4.04086H4.04285H4.04513H4.04771H4.05058H4.05376H4.05723H4.061H4.06505H4.0694H4.07405H4.07898H4.0842H4.0897H4.0955H4.10158H4.10794H4.11458H4.12151H4.12872H4.1362H4.14397H4.15201H4.16033H4.16892H4.17778H4.18692H4.19633H4.20601H4.21595H4.22617H4.23665H4.24739H4.2584H4.26967H4.28121H4.293H4.30506H4.31737H4.32994H4.34276H4.35584H4.36918H4.38276H4.3966H4.41068H4.42502H4.4396H4.45443H4.4695H4.48482H4.50038H4.51619H4.53223H4.54851H4.56503H4.58179H4.59878H4.61601H4.63348H4.65117H4.6691H4.68725H4.70564H4.72425H4.74309H4.76215H4.78144H4.80095H4.82068H4.84064H4.86081H4.8812H4.90181H4.92263H4.94367H4.96492H4.98639H5.00807H5.02995H5.05205H5.07435H5.09686H5.11958H5.14249H5.16562H5.18894H5.21247H5.23619H5.26011H5.28423H5.30855H5.33306H5.35776H5.38266H5.40775H5.43303H5.45849H5.48415H5.50999H5.53602H5.56223H5.58863H5.6152H5.64196H5.6689H5.69601H5.72331H5.75077H5.77842H5.80624H5.83423H5.86239H5.89072H5.91922H5.94789H5.97672H6.00572H6.03489H6.06422H6.09371H6.12336H6.15317H6.18314H6.21327H6.24355H6.27399H6.30458H6.33533H6.36622H6.39727H6.42846H6.45981H6.4913H6.52293H6.55471H6.58664H6.6187H6.65091H6.68326H6.71574H6.74836H6.78112H6.81402H6.84704H6.88021H6.9135H6.94692H6.98047H7.01415H7.04796H7.08189H7.11595H7.15013H7.18443H7.21885H7.25339H7.28806H7.32283H7.35773H7.39274H7.42787H7.4631H7.49845H7.53391H7.56948H7.60516H7.64094H7.67683H7.71283H7.74892H7.78512H7.82142H7.85783H7.89432H7.93092H7.96762H8.0044H8.04129H8.07826H8.11533H8.15249H8.18974H8.22707H8.26449H8.302H8.3396H8.37727H8.41503H8.45287H8.49079H8.52879H8.56687H8.60502H8.64325H8.68155H8.71993H8.75837H8.79689H8.83548H8.87414H8.91286H8.95165H8.9905H9.02942H9.0684H9.10744H9.14654H9.1857H9.22491H9.26419H9.30352H9.3429H9.38234H9.42182H9.46136H9.50095H9.54059H9.58027H9.62H9.65978H9.6996H9.73946H9.77936H9.8193H9.85928H9.8993H9.93936H9.97945H10.0196H10.0597H10.0999H10.1401H10.1804H10.2207H10.261H10.3013H10.3417H10.3821H10.4225H10.4629H10.5033H10.5438H10.5843H10.6248H10.6653H10.7058H10.7464H10.7869H10.8275H10.8681H10.9086H10.9492H10.9898H11.0304H11.071H11.1116H11.1522H11.1929H11.2335H11.2741H11.3147H11.3553H11.3959H11.4365H11.477H11.5176H11.5582H11.5987H11.6393H11.6798H11.7203H11.7608H11.8012H11.8417H11.8821H11.9226H11.9629H12.0033H12.0437H12.084H12.1243H12.1645H12.2048H12.245H12.2852H12.3253H12.3654H12.4055H12.4455H12.4855H12.5255H12.5654H12.6053H12.6451H12.6849H12.7247H12.7644H12.804H12.8437H12.8832H12.9227H12.9622H13.0016H13.041H13.0803H13.1195H13.1587H13.1978H13.2369H13.2759H13.3149H13.3537H13.3926H13.4313H13.47H13.5086H13.5472H13.5857H13.6241H13.6624H13.7007H13.7389H13.777H13.815H13.853H13.8909H13.9287H13.9664H14.004H14.0416H14.079H14.1164H14.1537H14.1909H14.228H14.265H14.302H14.3388H14.3755H14.4122H14.4487H14.4852H14.5215H14.5578H14.5939H14.63H14.6659H14.7018H14.7375H14.7731H14.8086H14.844H14.8793H14.9145H14.9496H14.9845H15.0194H15.0541H15.0887H15.1232H15.1575H15.1918H15.2259H15.2599H15.2938H15.3275H15.3611H15.3946H15.428H15.4612H15.4943H15.5272H15.5601H15.5928H15.6253H15.6577H15.69H15.7221H15.7541H15.786H15.8177H15.8493H15.8807H15.9119H15.9431H15.974H16.0049H16.0355H16.066H16.0964H16.1266H16.1567H16.1865H16.2163H16.2458H16.2753H16.3045H16.3336H16.3625H16.3913H16.4198H16.4483H16.4765H16.5046H16.5325H16.5602H16.5878H16.6152H16.6424H16.6694H16.6962H16.7229H16.7494H16.7757H16.8018H16.8277H16.8535H16.8791H16.9044H16.9296H16.9546H16.9794H17.004H17.0284H17.0526H17.0767H17.1005H17.1241H17.1475H17.1708H17.1938H17.2166H17.2392H17.2616H17.2838H17.3058H17.3276H17.3492H17.3705H17.3917H17.4126H17.4333H17.4538H17.4741H17.4942H17.514H17.5336H17.553H17.5722H17.5911H17.6099H17.6284H17.6466H17.6647H17.6825H17.7001H17.7174H17.7345H17.7514H17.768H17.7844H17.8006H17.8165H17.8322H17.8476H17.8628H17.8778H17.8925H17.907H17.9212H17.9351H17.9488H17.9623H17.9755H17.9885H18.0012H18.0136H18.0258H18.0377H18.0494H18.0608H18.0719H18.0828H18.0934H18.1037H18.1138H18.1236H18.1332H18.1425H18.1515H18.1602H18.1686H18.1768H18.1847H18.1923H18.1997H18.2068H18.2135H18.22H18.2263H18.2322H18.2379H18.2432H18.2483H18.2531H18.2576C18.6403 19.0232 18.9571 18.7656 19.177 18.4052C19.3972 18.0444 19.5232 17.5763 19.5232 17.1446V6.9695C19.5232 6.61838 19.4278 6.22002 19.2631 5.90881C19.0992 5.59897 18.8621 5.36783 18.5758 5.36783H5C4.97926 5.36783 4.94967 5.36936 4.91355 5.37122C4.79746 5.37722 4.61402 5.3867 4.44096 5.36007C4.32797 5.34268 4.22296 5.31022 4.14666 5.25341C4.07155 5.19748 4.02323 5.11731 4.02323 5C4.02323 4.57136 4.15029 4.35828 4.29218 4.25116C4.43524 4.14316 4.59889 4.13837 4.68182 4.13837H17ZM15.6717 13.1941C15.4136 13.1941 15.1824 13.1272 15.0159 12.9808C14.85 12.8349 14.7455 12.6073 14.7455 12.2792C14.7455 11.9511 14.85 11.7238 15.0159 11.5782C15.1823 11.4321 15.4136 11.3654 15.6717 11.3654C15.9299 11.3654 16.1611 11.4321 16.3275 11.5782C16.4934 11.7238 16.598 11.9511 16.598 12.2792C16.598 12.6073 16.4933 12.8349 16.3273 12.9808C16.1609 13.1272 15.9296 13.1941 15.6717 13.1941Z\",\n fill: \"currentColor\",\n stroke: \"currentColor\",\n strokeWidth: 0.3\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWallet);\nexport default __webpack_public_path__ + \"static/media/wallet.09093287.svg\";\nexport { ForwardRef as ReactComponent };","export default __webpack_public_path__ + \"static/media/metamask.02e3ec27.png\";","export default __webpack_public_path__ + \"static/media/fortmatic.2393c835.svg\";","export default __webpack_public_path__ + \"static/media/portis.f44aba13.png\";","export default __webpack_public_path__ + \"static/media/walletConnect.cc6e5709.svg\";","export default __webpack_public_path__ + \"static/media/coinbaseWallet.a3a7d7fd.svg\";","export default __webpack_public_path__ + \"static/media/ledger.7a656384.svg\";","export default __webpack_public_path__ + \"static/media/trezor.c0ea4627.svg\";","export default __webpack_public_path__ + \"static/media/gnosisSafe.ac694b37.svg\";","export default __webpack_public_path__ + \"static/media/torus.fadfad62.svg\";","import { Web3Provider } from '@ethersproject/providers';\nimport { AbstractConnector } from '@web3-react/abstract-connector';\nimport {\n injected,\n walletconnect,\n walletlink,\n frame,\n fortmatic,\n portis,\n gnosisSafe,\n torus,\n} from 'services/web3/wallet/connectors';\n\nimport metamaskLogo from 'assets/logos/metamask.png';\nimport fortmaticLogo from 'assets/logos/fortmatic.svg';\nimport portisLogo from 'assets/logos/portis.png';\nimport walletConnectLogo from 'assets/logos/walletConnect.svg';\nimport coinbaseWalletLogo from 'assets/logos/coinbaseWallet.svg';\nimport ledgerLogo from 'assets/logos/ledger.svg';\nimport trezorLogo from 'assets/logos/trezor.svg';\nimport frameLogo from 'assets/logos/frame.png';\nimport gnosisSafeLogo from 'assets/logos/gnosisSafe.svg';\nimport torusLogo from 'assets/logos/torus.svg';\n\nexport const getLibrary = (provider: any): Web3Provider => {\n const library = new Web3Provider(\n provider,\n typeof provider.chainId === 'string'\n ? parseInt(provider.chainId)\n : typeof provider.chainId === 'number'\n ? provider.chainId\n : 'any'\n );\n library.pollingInterval = 15000;\n return library;\n};\n\nexport interface WalletInfo {\n connector?: AbstractConnector;\n name: string;\n icon: string;\n mobile?: boolean;\n url?: string;\n}\n\nexport const SUPPORTED_WALLETS: WalletInfo[] = [\n {\n connector: injected,\n name: 'MetaMask',\n icon: metamaskLogo,\n mobile: true,\n },\n {\n connector: walletconnect,\n name: 'WalletConnect',\n icon: walletConnectLogo,\n mobile: true,\n },\n {\n connector: walletlink,\n name: 'Coinbase Wallet',\n icon: coinbaseWalletLogo,\n mobile: true,\n },\n {\n name: 'Ledger',\n icon: ledgerLogo,\n url: 'https://www.ledger.com/academy/security/the-safest-way-to-use-metamask',\n },\n {\n name: 'Trezor',\n icon: trezorLogo,\n url: 'https://wiki.trezor.io/Apps:MetaMask',\n },\n {\n connector: gnosisSafe,\n name: 'GnosisSafe',\n icon: gnosisSafeLogo,\n },\n {\n connector: frame,\n name: 'Frame',\n icon: frameLogo,\n },\n {\n connector: fortmatic,\n name: 'Fortmatic',\n icon: fortmaticLogo,\n mobile: true,\n },\n {\n connector: portis,\n name: 'Portis',\n icon: portisLogo,\n },\n {\n connector: torus,\n name: 'Torus',\n icon: torusLogo,\n },\n];\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAQC0lEQVR4nO3dW8xsd13H4U+hILQCEUSgEpSApVyAiBg5toAgEiJIUKIYJBA1XKDxACgxaPCA5ajRqImikiAJoGAAAQNyVJQgIVBQAUGioSVRg0qhCAj1Yva2jbS73ft916yZ+T1PMmnSi//6XnT2/nRmzUwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMCBOGuJQ+94t7svceytqgure1bnn3jctrp5dc4SF4QVXFa9uXpR9Y6VtwA74uMfuOTYzzz72E88Xt9QPb56dHWP6gbrzoHFndfmv/nHVy+pfrT671UXAQdpFwPgrOq7q5+sLmqhVylgDzy++sbqEdXl604BDs2u/R/1d1XvrV5dPTB/+cMDqtdXN1t7CHBYdiUAzqteVb2hzUv9wFXunwgAjtkuBMAjqve1eZ8fuGb3bxPIIgA4FmsGwA2qZ1evrW694g7YF/dLBADHZK0AuHH1iuoZeZ8fTocIAI7FGgFw4+o11WNWuDYcgpMRcPO1hwD7a9sBcFb1B9XDtnxdODT3a3NjoAgAzsi2A+A51Q9u+ZpwqEQAcMa2GQCPrJ66xevBBN4OAM7ItgLg66s/zA1/sIT7JgKA07StAPj16pZbuhZMJAKA07KNAHhY9b1buA5MdzICbrH2EGD3LR0AZ1UXL3wN4Cr3bXNjoAgATmnpAHhEvtsftk0EANdp6QB4+sLnA9dMBACntGQA3KnND5gA63BPAHCtlgyAJ+Rjf7C2+yQCgGuwZAA8asGzgevvPtWfJwKAq1kqAG5d3W2hs4HTd+9EAHA1SwXAg/LyP+waEQD8n6UC4F4LnQsczckIuNXaQ4B1LRUAFyx0LnB0967eWz1w5R3AipYKgDsudC5wPO5QvaX64+o7qnPWnQNs29kLnft1C50LHJ+z2vxOh9/q4JB8tvqP6tLq49UHqr+p3lV9bsVdO2epALjZQucCwKmce+Jx++rbq+8/8e8/3yYCXt7mla9/X2XdDlnqLYCbLnQuAJyJr6ouqn67uqx6VXXhqotWto2fAwaAXXKj6tHV2088vmXdOesQAABMdmH1nur3q69dectWCQAAprtB9aTq/dVDVt6yNQIAADbOq95Y/WIDvs1WAADAVc6qnlm9tM2NgwdLAADAV/qB6jXVjdceshQBAADX7DurV7T51MDBEQAAcO0eVf3G2iOWIAAA4NSeXD1x7RHHTQAAwHX7reoua484TgIAAK7bTavf64A+HigAAOD6eUD1w2uPOC4CAACuv2e1+bXBvScAAOD6u131I2uPOA4CAABOz1M6gHsBBAAAnJ47VRetPeKoBAAAnL4nrD3gqAQAAJy+h7fnbwMIAAA4fbep7r72iKMQAABwZh649oCjEAAAcGbusfaAoxAAAHBm7rz2gKMQAABwZm6/9oCjEAAAcGZuufaAoxAAAHBmbr72gKMQAAAwkAAAgIEEAAAMJAAAYCABAAADCQAAGEgAAMBAAgAABhIAADCQAACAgQQAAAwkAABgIAEAAAMJAAAYSAAAwEACAAAGEgAAMJAAAICBBAAADCQAAGAgAQAAAwkAABhIAADAQAIAAAYSAAAwkAAAgIEEAAAMJAAAYCABAAADCQAAGEgAAMBAAgAABhIAADCQAACAgQQAAAwkAABgIAEAAAMJAAAYSAAAwEACAAAGEgAAMJAAAICBBAAADCQAAGAgAQAAAwkAABhIAADAQAIAAAYSAAAwkAAAgIEEAAAMJAAAYCABAAADCQAAGEgAAMBAAgAABhIAADCQAACAgQQAAAwkAABgIAEAAAMJAAAYSAAAwEACAAAGEgAAMJAAAICBBAAADCQAAGAgAQAAAwkAABhIAADAQAIAAAYSAAAwkAAAgIEEAAAMJAAAYCABAAADCQAAGEgAsC1vqy6qzq3O8vDw+IrHuW2eI28NtkAAsA1vqx5SvaO6Yt0psLOuaPMceWgigC0QAGzDs6ovrT0C9sSX2jxnYFECgG3427UHwJ7xnGFxAoBt+OzaA2DPeKuMxQkAABhIAADAQAIAAAYSAAAwkAAAgIEEAAAMJAAAYCABAAADCQAAGEgAAMBAAgAABhIAADCQAACAgQQAAAwkAABgIAEAAAMJAAAYSAAAwEACAAAGEgAAMJAAAICBBAAADCQAAGAgAQAAAwkAABhIAADAQAIAAAYSAAAwkAAAgIEEAAAMJAAAYCABAAADCQAAGEgAAMBAAgAABhIAADCQAACAgQQAAAwkAABgIAEAAAMJAAAYSAAAwEACAAAGEgAAMJAAAICBBAAADCQAAGAgAQAAAwkAABhIAADAQAIAAAYSAAAwkAAAgIEEAAAMJAAAYCABAAADCQAAGEgAAMBAAgAABhIAADCQAACAgQQAAAwkAABgIAEAAAMJAAAYSAAAwEACAAAGEgAAMJAAAICBBAAADLRUAHxxoXMBgGOwVAD8/ULnAgDHYKkA+JOFzgUAjsFSAfDC6h8XOhsAOKKlAuCK6sHVRxc6HwA4giU/BfCJ6kGJAADYOUt/DPBkBHg7AAB2yDa+B+ATbd4OEAEAsCO29UVAIgAAdsg2vwlQBADAjtj2VwG7JwAAdsAavwVwaSIAAFa11o8BnYyAj6x0fQAYbc1fA7y0zT0BIgAAtmztnwMWAQCwgrUDoEQAAGzdLgRAuScAALZqVwKg6rJEAABsxS4FQF0VAR9eewgAHLJdC4DaRMCDEwEAsJhdDIASAQCwqF0NgBIBALCYXQ6Ack8AACxi1wOg6pOJAAA4VvsQAHVVBHxo7SEAcAj2JQBqEwEPTgQAwJHtUwDUJgIeWn1i7SEAUN1k7QFnat8CoDZ/+T+uunLtIQCMd8+1B5ypfQyAqr+sXrf2CADGe3Z1o7VHnIl9DYCqP1p7AADjXVS9urr12kNO1z4HwAfXHgAA1cOrt1e3WXvI6djnALh87QEAcMJdq7e2RxGwzwEAALvkZATcdu0h14cAAIDjc9fqLe1BBAgAADheexEBAgAAjt/OR4AAAIBl7PQ9AQIAAJZzQTsaAQIAAJZ1MgJut/aQqxMAALC8C9rcE7AzESAAAGA7dioCBAAAbM/ORIAAAIDt2ol7AgQAAGzfXVo5AgQAAKxj1QgQAACwnpMRcN62LywAAGBdd2lzY+BWI0AAAMD6th4BAgAAdsNW3w4QAACwO85vSxEgAABgt2wlAgQAAOyexSNAAADAbjq/enN1kyUOFwAAsLsuqH5iiYMFAADstu9b4lABAAC77YIlDhUAALDbzlniUAEAAAMJAAAYSAAAwEACAAAGEgAAMJAAAICBBAAADCQAAGAgAQAAAwkAABhIAADAQAIAAAYSAAAwkAAAgIEEAAAMJAAAYCABAAADCQAAGEgAAMBAAgAABhIAADCQAACAgQQAAAwkAABgIAEAAAMJAAAYSAAAwEACAAAGEgAAMJAAAICBBAAADCQAAGAgAQAAAwkAABhIAADAQAIAAAYSAAAwkAAAgIEEAAAMJAAAYCABAAADCQAAGEgAAMBAAgAABhIAADCQAACAgQQAAAwkAABgIAEAAAMJAAAYSAAAwEACAAAGEgAAMJAAAICBBAAADCQAAGAgAQAAAwkAABhIAADAQAIAAAYSAAAwkAAAgIEEAAAMJAAAYCABAAADCQAAGEgAAMBAAgAABhIAADCQAACAgQQA23Du2gNgz5yz9gAOnwBgG+619gDYM9+29gAOnwBgG36huuHaI2BP3LDNcwYWJQDYhgdVb6ouzEubcG3OafMceVOb5wws6uy1BzDGg/KHGsDO8AoAAAwkAABgIAEAAAMJAAAYSAAAwEACAAAGEgAAMJAAAICBBAAADCQAAGAgAQAAAwkAABhIAADAQAIAAAYSAAAwkAAAgIEEAAAMJAAAYCABAAADCQAAGEgAAMBAAgAABhIAADCQAACAgQQAAAwkAABgIAEAAAMJAAAYSAAAwEACAAAGEgAAMJAAAICBBAAADCQAAGAgAQAAAwkAABhIAADAQAIAAAYSAAAwkAAAgIEEAAAMJAAAYCABAAADCQAAGEgAAMBAAgAABhIAADCQAACAgQQAAAwkAABgIAEAAAMJAAAYSAAAwEACAAAGEgAAMJAAAICBBAAADCQAAGAgAQAAAwkAABhIAADAQAIAAAYSAAAwkAAAgIEEAAAMJAAAYCABAAADCQAAGEgAAMBAAgAABhIAADCQAACAgQQAAAwkAABgIAEAAAMJAAAYSAAAwEACAAAG2ucA+PTaAwBgX+1zAFy+9gAA2Ff7HABfqv5j7REAsI/2OQCqPrb2AADYR/seAB9cewAA7KN9D4B3rT0AAPbRvgfA29YeAAD7aN8D4MPVv6w9AgD2zb4HQNXL1h4AAPvmEALgJWsPAIB9cwgB8MHqnWuPAIB9cggBUPXstQcAwD45lAB4ffXutUcAwL44lACo+rHqy2uPAIB9cEgB8O7qd9ceAQD74JACoOppbb4bAAA4hUMLgM9Uj62uWHsIAOyyQwuAqkuqx7X5uWAA4BocYgBUvbp6cnXl2kMAYBcdagBUvah6UvU/aw8BgF1zyAFQ9eLqkdWnV94BADvl0AOg6g3Vt1bvWXsIAOyKCQFQ9dHqftUvVZ9beQsArG5KAFR9ofr56m7Vq3KDIACDTQqAkz5WPaZNCLyk+uK6cwDglBa5mX1iAJz0d9UPVbevfrx6W2IAgN1z+RKHnr3EoXvmX6vfPPH46uq+bW4aPP/E4w7V11TnrjUQgNEEwBZ8pnrjiQccsltUD6t+pbrzyluAU/vUEodOfgsAJvuv6hVtXu16zcpbgFP75yUOFQAw26er76l+ee0hwLX6hyUOFQDAldUzq2esPQS4Ru9d4lABAJx0cSIAdtE7lzhUAABXJwJgt3ygumyJgwUA8P9dXP3s2iOAql651MECALgmz0kEwNqubPONtYsQAMC1eU71M2uPgMH+qvqnpQ4XAMCpPDcRAGt5wZKHCwDguogA2L5LqtcueQEBAFwfIgC266nVl5e8gAAArq/nVk9fewQM8PLqTUtfRAAAp+N5iQBY0qeqn97GhQQAcLqeVz1t7RFwgK6snlBduo2LCQDgTDw/EQDH7eLqz7Z1MQEAnCkRAMfnpdXPbfOCAgA4ChEAR/f66klt3gLYGgEAHNXz23xkCTh9r6weXX1h2xcWAMBxeEEiAE7HldWvVo9thb/8q85e46LAQXpBmz/UFv36UjgA/1Y9sXrdmiO8AgAcpxe2pc8ww556WfXNrfyXf3kFADh+LzzxT68EwFXeV/1U9da1h5wkAIAliADYvCX29urX2vywz1bv8r8uAgBYygvbfK3p71Q3WXkLbNMl1Z+2ebn/QytvuVYCAFjSi6u/qJ5SPbT6pupmaw6CY/L56j+rT1YfOfF4f/XX1WUr7gIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgHn+F2k2QqdgScW9AAAAAElFTkSuQmCC\"","import { UseWalletConnect } from './useWalletConnect';\nimport { Image } from 'components/image/Image';\n\nexport const WalletConnectModalList = ({\n handleConnect,\n SUPPORTED_WALLETS,\n}: UseWalletConnect) => {\n const className =\n 'flex items-center w-full px-16 py-10 border-2 border-grey-2 dark:border-grey-4 rounded-20 hover:border-primary dark:hover:border-primary focus:outline-none focus:border-primary dark:focus:border-primary';\n return (\n
\n {SUPPORTED_WALLETS.map((wallet, index) => (\n handleConnect(wallet)}\n className={`${!wallet.mobile ? 'hidden md:flex' : ''} ${className}`}\n >\n \n {wallet.name}\n \n ))}\n
\n );\n};\n","import { UseWalletConnect } from './useWalletConnect';\nimport { Image } from 'components/image/Image';\n\nexport const WalletConnectModalPending = ({\n selectedWallet,\n}: UseWalletConnect) => {\n return (\n \n \n

{selectedWallet?.name}

\n
\n );\n};\n","import { UseWalletConnect } from './useWalletConnect';\nimport { Image } from 'components/image/Image';\nimport { isMobile } from 'react-device-detect';\n\nexport const WalletConnectModalError = ({\n selectedWallet,\n}: UseWalletConnect) => {\n const showMetaMaskMobileError =\n isMobile && selectedWallet?.name === 'MetaMask';\n return (\n
\n
\n \n

{selectedWallet?.name}

\n
\n {showMetaMaskMobileError ? (\n
\n

Use MetaMask In-App Browser

\n

1. Open MetaMask App on your mobile device

\n

2. Find the In-App Browser in the MetaMask Menu

\n

3. Navigate to https://app.bancor.network

\n
\n ) : (\n
\n

\n {`Failed Connecting to ${\n selectedWallet ? selectedWallet.name : 'Wallet'\n }`}\n

\n

Please try again or contact support

\n
\n )}\n
\n );\n};\n","import { Modal } from 'components/modal/Modal';\nimport { UseWalletConnect } from './useWalletConnect';\nimport { WalletConnectModalList } from './WalletConnectModalList';\nimport { WalletConnectModalPending } from './WalletConnectModalPending';\nimport { WalletConnectModalError } from './WalletConnectModalError';\n\nexport const WalletConnectModal = (props: UseWalletConnect) => {\n const { isPending, isError } = props;\n\n return (\n \n
\n {isError ? (\n \n ) : isPending ? (\n \n ) : (\n \n )}\n
\n
\n );\n};\n","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9;\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 SvgBancorv3Mobile(_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: 166,\n height: 20,\n viewBox: \"0 0 166 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: \"M77 5.856C76.7227 5.856 76.488 5.76533 76.296 5.584C76.104 5.392 76.008 5.15733 76.008 4.88C76.008 4.61333 76.104 4.384 76.296 4.192C76.488 4 76.7227 3.904 77 3.904C77.2773 3.904 77.5067 4 77.688 4.192C77.8693 4.384 77.96 4.61333 77.96 4.88C77.96 5.15733 77.8693 5.392 77.688 5.584C77.5067 5.76533 77.2773 5.856 77 5.856ZM76.296 8H77.672V16H76.296V8ZM82.8564 16.16C82.4297 16.16 82.0244 16.1067 81.6404 16C81.2564 15.8933 80.9204 15.7387 80.6324 15.536C80.3444 15.3227 80.1097 15.0613 79.9284 14.752C79.747 14.4427 79.6404 14.0853 79.6084 13.68H81.0164C81.059 13.9253 81.139 14.1333 81.2564 14.304C81.3844 14.464 81.5337 14.5973 81.7044 14.704C81.875 14.8107 82.0564 14.8853 82.2484 14.928C82.451 14.9707 82.659 14.992 82.8724 14.992C83.3097 14.992 83.6724 14.9067 83.9604 14.736C84.259 14.5547 84.4084 14.288 84.4084 13.936C84.4084 13.616 84.307 13.3547 84.1044 13.152C83.9017 12.9493 83.5604 12.784 83.0804 12.656L81.9284 12.352C81.235 12.1707 80.7177 11.8773 80.3764 11.472C80.035 11.0667 79.8644 10.576 79.8644 10C79.8644 9.66933 79.9337 9.37067 80.0724 9.104C80.211 8.83733 80.403 8.61333 80.6484 8.432C80.8937 8.24 81.1817 8.096 81.5124 8C81.8537 7.89333 82.227 7.84 82.6324 7.84C83.059 7.84 83.443 7.89867 83.7844 8.016C84.1257 8.13333 84.419 8.29867 84.6644 8.512C84.9204 8.71467 85.123 8.95467 85.2724 9.232C85.4217 9.50933 85.5124 9.808 85.5444 10.128H84.1684C84.0617 9.776 83.8697 9.49867 83.5924 9.296C83.3257 9.09333 83.0057 8.992 82.6324 8.992C82.2484 8.992 81.923 9.08267 81.6564 9.264C81.3897 9.43467 81.2564 9.67467 81.2564 9.984C81.2564 10.2827 81.3524 10.5227 81.5444 10.704C81.7364 10.8747 82.0457 11.0187 82.4724 11.136L83.7524 11.472C84.4244 11.6427 84.931 11.9307 85.2724 12.336C85.6244 12.7307 85.8004 13.232 85.8004 13.84C85.8004 14.2347 85.7257 14.5813 85.5764 14.88C85.427 15.168 85.219 15.408 84.9524 15.6C84.6857 15.792 84.371 15.9307 84.0084 16.016C83.6564 16.112 83.2724 16.16 82.8564 16.16ZM95.1605 16.16C94.5525 16.16 93.9925 16.0533 93.4805 15.84C92.9685 15.616 92.5258 15.3173 92.1525 14.944C91.7898 14.56 91.5018 14.1173 91.2885 13.616C91.0858 13.1147 90.9845 12.576 90.9845 12C90.9845 11.424 91.0858 10.8853 91.2885 10.384C91.5018 9.88267 91.7898 9.44533 92.1525 9.072C92.5258 8.688 92.9685 8.38933 93.4805 8.176C93.9925 7.952 94.5525 7.84 95.1605 7.84C95.6618 7.84 96.1312 7.91467 96.5685 8.064C97.0165 8.21333 97.4165 8.42133 97.7685 8.688C98.1205 8.944 98.4138 9.25867 98.6485 9.632C98.8938 9.99467 99.0752 10.3893 99.1925 10.816H97.7205C97.5392 10.304 97.2245 9.89333 96.7765 9.584C96.3285 9.264 95.7898 9.104 95.1605 9.104C94.7445 9.104 94.3658 9.17867 94.0245 9.328C93.6832 9.47733 93.3898 9.68533 93.1445 9.952C92.8992 10.208 92.7072 10.512 92.5685 10.864C92.4405 11.216 92.3765 11.5947 92.3765 12C92.3765 12.4053 92.4405 12.784 92.5685 13.136C92.7072 13.488 92.8992 13.7973 93.1445 14.064C93.3898 14.32 93.6832 14.5227 94.0245 14.672C94.3658 14.8213 94.7445 14.896 95.1605 14.896C95.7898 14.896 96.3285 14.7413 96.7765 14.432C97.2245 14.112 97.5392 13.696 97.7205 13.184H99.1925C99.0752 13.6213 98.8938 14.0213 98.6485 14.384C98.4138 14.7467 98.1205 15.0613 97.7685 15.328C97.4165 15.584 97.0165 15.7867 96.5685 15.936C96.1312 16.0853 95.6618 16.16 95.1605 16.16ZM104.567 16.16C103.959 16.16 103.399 16.0533 102.887 15.84C102.375 15.616 101.932 15.3173 101.559 14.944C101.185 14.5707 100.892 14.1333 100.679 13.632C100.476 13.12 100.375 12.576 100.375 12C100.375 11.424 100.476 10.8853 100.679 10.384C100.892 9.872 101.185 9.42933 101.559 9.056C101.932 8.68267 102.375 8.38933 102.887 8.176C103.399 7.952 103.959 7.84 104.567 7.84C105.164 7.84 105.719 7.952 106.231 8.176C106.743 8.38933 107.185 8.68267 107.559 9.056C107.932 9.42933 108.22 9.872 108.423 10.384C108.636 10.8853 108.743 11.424 108.743 12C108.743 12.576 108.636 13.12 108.423 13.632C108.22 14.1333 107.932 14.5707 107.559 14.944C107.185 15.3173 106.743 15.616 106.231 15.84C105.719 16.0533 105.164 16.16 104.567 16.16ZM104.567 14.88C104.983 14.88 105.361 14.8053 105.703 14.656C106.044 14.5067 106.332 14.304 106.567 14.048C106.812 13.7813 106.999 13.4773 107.127 13.136C107.265 12.784 107.335 12.4053 107.335 12C107.335 11.6053 107.265 11.232 107.127 10.88C106.999 10.528 106.812 10.224 106.567 9.968C106.332 9.70133 106.044 9.49333 105.703 9.344C105.361 9.19467 104.983 9.12 104.567 9.12C104.151 9.12 103.772 9.19467 103.431 9.344C103.089 9.49333 102.796 9.70133 102.551 9.968C102.305 10.224 102.113 10.528 101.975 10.88C101.847 11.232 101.783 11.6053 101.783 12C101.783 12.4053 101.847 12.784 101.975 13.136C102.113 13.4773 102.305 13.7813 102.551 14.048C102.796 14.304 103.089 14.5067 103.431 14.656C103.772 14.8053 104.151 14.88 104.567 14.88ZM121.022 11.296C121.022 10.6453 120.889 10.1173 120.622 9.712C120.355 9.30667 119.961 9.104 119.438 9.104C118.798 9.104 118.275 9.35467 117.87 9.856C117.475 10.3573 117.267 11.04 117.246 11.904V16H115.87V11.296C115.87 10.6453 115.737 10.1173 115.47 9.712C115.214 9.30667 114.825 9.104 114.302 9.104C113.651 9.104 113.118 9.36533 112.702 9.888C112.297 10.4107 112.094 11.1253 112.094 12.032V16H110.718V8H112.094V9.232C112.329 8.80533 112.654 8.46933 113.07 8.224C113.486 7.968 113.966 7.84 114.51 7.84C115.107 7.84 115.614 7.99467 116.03 8.304C116.457 8.60267 116.771 9.01867 116.974 9.552C117.187 9.02933 117.523 8.61333 117.982 8.304C118.451 7.99467 118.99 7.84 119.598 7.84C120.035 7.84 120.425 7.92 120.766 8.08C121.118 8.22933 121.411 8.448 121.646 8.736C121.891 9.01333 122.078 9.35467 122.206 9.76C122.334 10.1547 122.398 10.5973 122.398 11.088V16H121.022V11.296ZM125.578 5.856C125.301 5.856 125.066 5.76533 124.874 5.584C124.682 5.392 124.586 5.15733 124.586 4.88C124.586 4.61333 124.682 4.384 124.874 4.192C125.066 4 125.301 3.904 125.578 3.904C125.855 3.904 126.085 4 126.266 4.192C126.447 4.384 126.538 4.61333 126.538 4.88C126.538 5.15733 126.447 5.392 126.266 5.584C126.085 5.76533 125.855 5.856 125.578 5.856ZM124.874 8H126.25V16H124.874V8ZM128.859 8H130.235V9.232C130.512 8.752 130.875 8.4 131.323 8.176C131.771 7.952 132.256 7.84 132.779 7.84C133.227 7.84 133.637 7.91467 134.011 8.064C134.384 8.21333 134.699 8.432 134.955 8.72C135.221 8.99733 135.429 9.33867 135.579 9.744C135.728 10.1387 135.803 10.5813 135.803 11.072V16H134.443V11.28C134.443 10.608 134.267 10.08 133.915 9.696C133.573 9.30133 133.12 9.104 132.555 9.104C132.235 9.104 131.931 9.168 131.643 9.296C131.365 9.424 131.12 9.616 130.907 9.872C130.704 10.1173 130.539 10.4213 130.411 10.784C130.293 11.1467 130.235 11.5627 130.235 12.032V16H128.859V8ZM141.8 19.504C141.267 19.504 140.776 19.4347 140.328 19.296C139.88 19.1573 139.486 18.9653 139.144 18.72C138.814 18.4747 138.542 18.1813 138.328 17.84C138.126 17.5093 137.992 17.1413 137.928 16.736H139.272C139.454 17.2693 139.763 17.6587 140.2 17.904C140.638 18.16 141.182 18.288 141.832 18.288C142.195 18.288 142.531 18.2293 142.84 18.112C143.15 17.9947 143.416 17.8187 143.64 17.584C143.864 17.3493 144.04 17.056 144.168 16.704C144.296 16.3627 144.36 15.968 144.36 15.52V14.576C144.083 14.9813 143.699 15.3173 143.208 15.584C142.718 15.8507 142.174 15.984 141.576 15.984C141.022 15.984 140.504 15.8827 140.024 15.68C139.544 15.4667 139.128 15.1787 138.776 14.816C138.424 14.4427 138.147 14.0107 137.944 13.52C137.752 13.0187 137.656 12.48 137.656 11.904C137.656 11.3387 137.752 10.8107 137.944 10.32C138.147 9.81867 138.424 9.38667 138.776 9.024C139.128 8.65067 139.544 8.36267 140.024 8.16C140.504 7.94667 141.022 7.84 141.576 7.84C142.174 7.84 142.718 7.97333 143.208 8.24C143.699 8.496 144.083 8.82667 144.36 9.232V8H145.736V15.504C145.736 16.176 145.63 16.7573 145.416 17.248C145.214 17.7493 144.936 18.1653 144.584 18.496C144.232 18.8373 143.816 19.088 143.336 19.248C142.856 19.4187 142.344 19.504 141.8 19.504ZM141.768 14.704C142.163 14.704 142.526 14.6347 142.856 14.496C143.198 14.3573 143.486 14.1653 143.72 13.92C143.955 13.664 144.136 13.3653 144.264 13.024C144.403 12.6827 144.472 12.3093 144.472 11.904C144.472 11.5093 144.403 11.1413 144.264 10.8C144.136 10.448 143.955 10.1493 143.72 9.904C143.486 9.65867 143.198 9.46667 142.856 9.328C142.526 9.17867 142.163 9.104 141.768 9.104C141.363 9.104 140.995 9.17867 140.664 9.328C140.334 9.46667 140.051 9.65867 139.816 9.904C139.582 10.1493 139.395 10.448 139.256 10.8C139.128 11.1413 139.064 11.5093 139.064 11.904C139.064 12.3093 139.128 12.6827 139.256 13.024C139.395 13.3653 139.582 13.664 139.816 13.92C140.051 14.1653 140.334 14.3573 140.664 14.496C140.995 14.6347 141.363 14.704 141.768 14.704Z\",\n fill: \"white\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M158.768 16.096L162.288 12.576H152.928V11.424H162.288L158.768 7.904L159.552 7.104L164.448 12L159.552 16.896L158.768 16.096Z\",\n fill: \"#10BBD5\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M60.436 14.2331H64.2044C65.0496 14.2331 65.6777 14.0369 66.0886 13.6444C66.4994 13.252 66.7049 12.7557 66.7049 12.1555C66.7049 11.5552 66.4994 11.0531 66.0886 10.6492C65.6777 10.2452 65.0496 10.0432 64.2044 10.0432H60.436V8.69274H63.7818C64.4509 8.69274 64.9674 8.51383 65.3314 8.15602C65.707 7.78666 65.8949 7.32496 65.8949 6.77093C65.8949 6.51699 65.8479 6.2746 65.754 6.04376C65.6601 5.80137 65.5192 5.5936 65.3314 5.42047C65.1553 5.24733 64.9322 5.10882 64.6622 5.00494C64.4039 4.90106 64.1105 4.84912 63.7818 4.84912H60.436V3.39478H63.817C64.4157 3.39478 64.944 3.48134 65.4018 3.65448C65.8714 3.82762 66.2588 4.05846 66.564 4.34702C66.8692 4.63559 67.0981 4.97608 67.2508 5.36853C67.4151 5.76097 67.4973 6.17072 67.4973 6.59779C67.4973 7.22108 67.3799 7.74049 67.1451 8.15602C66.922 8.56 66.6051 8.89473 66.1942 9.1602C66.8164 9.39105 67.327 9.75464 67.7262 10.251C68.1254 10.7357 68.3249 11.3937 68.3249 12.2247C68.3249 12.7787 68.2193 13.2751 68.008 13.7137C67.7966 14.1408 67.5031 14.5044 67.1275 14.8044C66.7519 15.093 66.2999 15.3123 65.7716 15.4624C65.2433 15.6124 64.6564 15.6874 64.0107 15.6874H60.436V14.2331Z\",\n fill: \"#10BBD5\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 3.33447H4.1816C4.78149 3.33447 5.3108 3.42118 5.76954 3.59458C6.24004 3.76797 6.62821 3.99918 6.93403 4.28818C7.23986 4.57718 7.46923 4.91821 7.62215 5.31125C7.78682 5.7043 7.86916 6.11468 7.86916 6.5424C7.86916 7.16664 7.75153 7.68685 7.51628 8.10302C7.29279 8.50762 6.97521 8.84286 6.56352 9.10874C7.18693 9.33995 7.6986 9.70409 8.09853 10.2012C8.49846 10.6867 8.69842 11.3456 8.69842 12.1779C8.69842 12.7328 8.59256 13.2299 8.38083 13.6692C8.16911 14.0969 7.87504 14.4611 7.49863 14.7616C7.12223 15.0506 6.66938 15.2703 6.14007 15.4205C5.61074 15.5708 5.02261 15.646 4.37567 15.646H0V3.33447ZM4.14631 8.64056C4.81677 8.64056 5.33433 8.46138 5.69897 8.10302C6.07537 7.73309 6.26357 7.27069 6.26357 6.7158C6.26357 6.46148 6.21652 6.21871 6.12242 5.98752C6.02832 5.74475 5.88717 5.53668 5.69897 5.36327C5.52253 5.18987 5.29904 5.05115 5.0285 4.94711C4.76972 4.84307 4.47566 4.79104 4.14631 4.79104H1.60559V8.64056H4.14631ZM4.56976 14.1894C5.41666 14.1894 6.04596 13.9928 6.45765 13.5999C6.86934 13.2068 7.07518 12.7097 7.07518 12.1086C7.07518 11.5075 6.86934 11.0046 6.45765 10.6C6.04596 10.1954 5.41666 9.99309 4.56976 9.99309H1.60559V14.1894H4.56976Z\",\n fill: \"white\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.9052 14.7789C17.5288 15.1142 17.0995 15.3685 16.6172 15.5419C16.1467 15.7038 15.6409 15.7847 15.0998 15.7847C14.4528 15.7847 13.8529 15.6691 13.3001 15.4379C12.7473 15.2067 12.2709 14.8946 11.871 14.5015C11.4711 14.0969 11.1593 13.6229 10.9359 13.0796C10.7124 12.5248 10.6006 11.9351 10.6006 11.311C10.6006 10.6867 10.7124 10.1029 10.9359 9.55956C11.1593 9.00468 11.4711 8.53071 11.871 8.13766C12.2709 7.73306 12.7473 7.41516 13.3001 7.18396C13.8529 6.95275 14.4528 6.83716 15.0998 6.83716C15.6409 6.83716 16.1467 6.92385 16.6172 7.09725C17.0995 7.25909 17.5288 7.50764 17.9052 7.84288V6.97587H19.4226V15.646H17.9052V14.7789ZM15.135 14.3801C15.7703 14.3801 16.3231 14.2472 16.7936 13.9813C17.2759 13.7154 17.6464 13.3801 17.9052 12.9756V9.64626C17.6464 9.24166 17.2759 8.90642 16.7936 8.64053C16.3231 8.37465 15.7703 8.24171 15.135 8.24171C14.6999 8.24171 14.3 8.32263 13.9353 8.48447C13.5825 8.63475 13.2708 8.84861 13.0002 9.12606C12.7414 9.40349 12.5356 9.73296 12.3827 10.1145C12.2415 10.4844 12.171 10.8832 12.171 11.311C12.171 11.7386 12.2415 12.1433 12.3827 12.5248C12.5356 12.8947 12.7414 13.2184 13.0002 13.4958C13.2708 13.7732 13.5825 13.9928 13.9353 14.1547C14.3 14.3049 14.6999 14.3801 15.135 14.3801Z\",\n fill: \"white\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M28.6 10.4971C28.6 9.24196 27.5653 8.22451 26.2887 8.22451C25.0122 8.22451 23.9774 9.24196 23.9774 10.4971V15.6459H22.46V10.5497C22.46 8.47068 24.1742 6.78528 26.2887 6.78528C28.4033 6.78528 30.1175 8.47068 30.1175 10.5497V15.6459H28.6V10.4971Z\",\n fill: \"white\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M37.0862 15.7847C36.4276 15.7847 35.8217 15.6691 35.2689 15.4379C34.7161 15.2067 34.2397 14.8887 33.8398 14.4842C33.4398 14.0796 33.1223 13.6056 32.887 13.0623C32.6635 12.5189 32.5518 11.9351 32.5518 11.311C32.5518 10.6867 32.6635 10.1029 32.887 9.55956C33.1223 9.01623 33.4398 8.54227 33.8398 8.13766C34.2397 7.73306 34.7161 7.41516 35.2689 7.18396C35.8217 6.95275 36.4276 6.83716 37.0862 6.83716C37.8273 6.83716 38.4742 6.97009 39.0271 7.23597C39.5917 7.4903 40.068 7.81399 40.4562 8.20703L39.4858 9.24744C39.2035 8.96999 38.8624 8.73301 38.4625 8.53649C38.0743 8.33997 37.6156 8.24171 37.0862 8.24171C36.651 8.24171 36.2511 8.32263 35.8864 8.48447C35.5336 8.63475 35.2219 8.84861 34.9514 9.12606C34.6926 9.40349 34.4867 9.73296 34.3338 10.1145C34.1927 10.4844 34.122 10.8832 34.122 11.311C34.122 11.7386 34.1927 12.1433 34.3338 12.5248C34.4867 12.8947 34.6926 13.2184 34.9514 13.4958C35.2219 13.7732 35.5336 13.9928 35.8864 14.1547C36.2511 14.3049 36.651 14.3801 37.0862 14.3801C37.6156 14.3801 38.0743 14.2819 38.4625 14.0853C38.8624 13.8888 39.2035 13.6518 39.4858 13.3744L40.4562 14.4148C40.068 14.8078 39.5917 15.1373 39.0271 15.4032C38.4742 15.6575 37.8273 15.7847 37.0862 15.7847Z\",\n fill: \"white\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M46.4868 15.7847C45.8163 15.7847 45.1988 15.6691 44.6342 15.4379C44.0814 15.2067 43.5991 14.8887 43.1874 14.4842C42.7875 14.0796 42.4698 13.6056 42.2346 13.0623C42.0111 12.5189 41.8994 11.9351 41.8994 11.311C41.8994 10.6867 42.0111 10.1029 42.2346 9.55956C42.4698 9.01623 42.7875 8.54227 43.1874 8.13766C43.5991 7.73306 44.0814 7.41516 44.6342 7.18396C45.1988 6.95275 45.8163 6.83716 46.4868 6.83716C47.1455 6.83716 47.7512 6.95275 48.3041 7.18396C48.8687 7.41516 49.351 7.73306 49.7509 8.13766C50.1626 8.54227 50.4801 9.01623 50.7036 9.55956C50.9389 10.1029 51.0565 10.6867 51.0565 11.311C51.0565 11.9351 50.9389 12.5189 50.7036 13.0623C50.4801 13.6056 50.1626 14.0796 49.7509 14.4842C49.351 14.8887 48.8687 15.2067 48.3041 15.4379C47.7512 15.6691 47.1455 15.7847 46.4868 15.7847ZM46.4868 14.3801C46.9338 14.3801 47.3396 14.3049 47.7042 14.1547C48.0806 13.9928 48.3982 13.7732 48.657 13.4958C48.9276 13.2184 49.1333 12.8947 49.2745 12.5248C49.4157 12.1433 49.4862 11.7386 49.4862 11.311C49.4862 10.8832 49.4157 10.4844 49.2745 10.1145C49.1333 9.73296 48.9276 9.40349 48.657 9.12606C48.3982 8.84861 48.0806 8.63475 47.7042 8.48447C47.3396 8.32263 46.9338 8.24171 46.4868 8.24171C46.0398 8.24171 45.6281 8.32263 45.2517 8.48447C44.887 8.63475 44.5695 8.84861 44.2989 9.12606C44.0401 9.40349 43.8343 9.73296 43.6814 10.1145C43.5402 10.4844 43.4697 10.8832 43.4697 11.311C43.4697 11.7386 43.5402 12.1433 43.6814 12.5248C43.8343 12.8947 44.0401 13.2184 44.2989 13.4958C44.5695 13.7732 44.887 13.9928 45.2517 14.1547C45.6281 14.3049 46.0398 14.3801 46.4868 14.3801Z\",\n fill: \"white\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M53.501 6.97585H55.0183V7.99892C55.3242 7.62901 55.6829 7.35156 56.0947 7.1666C56.5063 6.98164 56.9592 6.88916 57.4532 6.88916C57.665 6.88916 57.8708 6.90649 58.0708 6.94118V8.48445C57.8237 8.41509 57.5414 8.38041 57.2238 8.38041C56.7416 8.38041 56.3004 8.49601 55.9006 8.72721C55.5124 8.95842 55.2184 9.29944 55.0183 9.75028V15.646H53.501V6.97585Z\",\n fill: \"white\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgBancorv3Mobile);\nexport default __webpack_public_path__ + \"static/media/bancorv3mobile.cc59bede.svg\";\nexport { ForwardRef as ReactComponent };","import { UseWalletConnect } from './useWalletConnect';\nimport { shortenString } from 'utils/pureFunctions';\nimport { Image } from 'components/image/Image';\nimport { ReactComponent as IconWallet } from 'assets/icons/wallet.svg';\n\nexport const WalletConnectButton = ({\n handleWalletButtonClick,\n account,\n selectedWallet,\n}: UseWalletConnect) => {\n const buttonText = account ? shortenString(account) : 'Connect Wallet';\n\n return (\n handleWalletButtonClick()}\n >\n {selectedWallet && account ? (\n \n ) : (\n \n )}\n {buttonText}\n \n );\n};\n","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 SvgEarn(_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: \"100%\",\n height: \"100%\",\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: \"M6.53461 5.82226L4.5 1.49998C4.5 1.49998 6.48754 0.367408 8.79257 1.48067C8.79257 1.48067 10.3021 2.1063 12.2104 1.35152C12.2104 1.35152 13.9367 0.501 15.5 1.5L14 5.82186L6.53461 5.82226Z\",\n stroke: \"currentColor\",\n strokeWidth: 1.35714,\n strokeMiterlimit: 10,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.53455 5.82202C6.53455 5.82202 2.0032 9.49048 2 15.4579C1.99894 17.4648 2.99996 18.5 4.28997 18.945C4.46196 18.9393 5.19575 18.9763 5.38051 18.9627C5.54505 18.9502 5.71064 18.9442 5.87624 18.945L15.8024 18.9977C15.8024 18.9977 17.9792 19.1476 18 15.5C18.0025 15.0635 18 15 18 15C18 15 18.5 9.50003 13.862 5.82202\",\n stroke: \"currentColor\",\n strokeWidth: 1.35714,\n strokeMiterlimit: 10,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.0694 10.1438H9.62061C9.20582 10.1438 8.79529 10.2303 8.45132 10.4057C8.09883 10.5852 7.76711 10.8756 7.78042 11.3311C7.79533 11.8561 8.28359 12.3051 8.95343 12.4435C9.40017 12.5357 9.98215 12.621 10.5466 12.6001C11.3879 12.5691 12.1344 13.0193 12.2291 13.6518C12.2323 13.6723 12.235 13.6932 12.2371 13.7145C12.2952 14.271 11.7457 14.8093 11.0119 14.8733C10.2745 14.9376 9.21008 14.899 8.01204 14.8733\",\n stroke: \"currentColor\",\n strokeMiterlimit: 10,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.01 9.14148V9.50002\",\n stroke: \"currentColor\",\n strokeMiterlimit: 10,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10 15L10.0099 16.0181\",\n stroke: \"currentColor\",\n strokeMiterlimit: 10,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEarn);\nexport default __webpack_public_path__ + \"static/media/earn.b0adf9ad.svg\";\nexport { ForwardRef as ReactComponent };","import { ReactComponent as IconTimes } from 'assets/icons/times.svg';\nimport { ReactComponent as IconBancorv3 } from 'assets/logos/bancorv3mobile.svg';\nimport { useDispatch } from 'react-redux';\nimport { setShowBanner } from 'redux/user/user';\nimport { useCallback } from 'react';\n\nexport const MarketingBannerMobile = () => {\n const dispatch = useDispatch();\n const handleCloseBanner = useCallback(() => {\n dispatch(setShowBanner(false));\n }, [dispatch]);\n return (\n
\n \n \n \n \n
\n );\n};\n","import { useWeb3React } from '@web3-react/core';\nimport { EthNetworks } from 'services/web3/types';\nimport { NotificationsMenu } from 'elements/notifications/NotificationsMenu';\nimport { SettingsMenu } from 'elements/settings/SettingsMenu';\nimport { LayoutHeaderMobile } from 'elements/layoutHeader/LayoutHeaderMobile';\nimport { ReactComponent as IconHamburger } from 'assets/icons/hamburger.svg';\nimport { ReactComponent as IconBancor } from 'assets/icons/bancor.svg';\nimport 'elements/layoutHeader/LayoutHeader.css';\nimport { getNetworkName } from 'utils/helperFunctions';\nimport { useWalletConnect } from '../walletConnect/useWalletConnect';\nimport { WalletConnectModal } from '../walletConnect/WalletConnectModal';\nimport { WalletConnectButton } from '../walletConnect/WalletConnectButton';\nimport { MarketingBannerMobile } from '../marketingBanner/MarketingBannerMobile';\nimport { useAppSelector } from 'redux/index';\n\ninterface LayoutHeaderProps {\n isMinimized: boolean;\n setIsSidebarOpen: Function;\n}\n\nexport const LayoutHeader = ({\n isMinimized,\n setIsSidebarOpen,\n}: LayoutHeaderProps) => {\n const { chainId } = useWeb3React();\n const wallet = useWalletConnect();\n const showBanner = useAppSelector((state) => state.user.showBanner);\n\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 {showBanner && }\n \n \n );\n};\n","import { useCallback, useMemo, useState } from 'react';\nimport { SUPPORTED_WALLETS, WalletInfo } from 'services/web3/wallet/utils';\nimport { sendWalletEvent, WalletEvents } from 'services/api/googleTagManager';\nimport { setAutoLoginLS } from 'utils/localStorage';\nimport { setSigner } from 'services/web3';\nimport { Web3Provider } from '@ethersproject/providers';\nimport { useWeb3React } from '@web3-react/core';\nimport useAsyncEffect from 'use-async-effect';\nimport { isMobile } from 'react-device-detect';\nimport { useAppSelector } from '../../redux';\nimport { openWalletModal } from '../../redux/user/user';\nimport { useDispatch } from 'react-redux';\nimport { openNewTab, wait } from 'utils/pureFunctions';\nimport { WalletConnectConnector } from '@web3-react/walletconnect-connector';\n\nexport interface UseWalletConnect {\n isOpen: boolean;\n setIsOpen: (isOpen: boolean) => void;\n handleConnect: (wallet: WalletInfo) => void;\n handleDisconnect: () => void;\n handleOpenModal: () => void;\n isPending: boolean;\n isError: boolean;\n account?: string | null;\n selectedWallet?: WalletInfo;\n SUPPORTED_WALLETS: WalletInfo[];\n title: string;\n handleWalletButtonClick: () => void;\n}\n\nexport const useWalletConnect = (): UseWalletConnect => {\n const { activate, deactivate, account, connector } = useWeb3React();\n const [isPending, setIsPending] = useState(false);\n const [isError, setIsError] = useState(false);\n const [selectedWallet, setSelectedWallet] = useState();\n\n const isOpen = useAppSelector((state) => state.user.walletModal);\n const dispatch = useDispatch();\n\n const setIsOpen = useCallback(\n (value: boolean) => {\n dispatch(openWalletModal(value));\n },\n [dispatch]\n );\n\n const handleOpenModal = useCallback(() => {\n sendWalletEvent(WalletEvents.popup);\n setIsError(false);\n setIsPending(false);\n setIsOpen(true);\n }, [setIsOpen]);\n\n const handleConnect = useCallback(\n async (wallet: WalletInfo) => {\n const { connector, url } = wallet;\n if (url) {\n setIsOpen(false);\n return openNewTab(url);\n }\n\n sendWalletEvent(WalletEvents.click, {\n wallet_name: wallet.name,\n });\n setIsPending(true);\n setSelectedWallet(wallet);\n\n if (\n connector instanceof WalletConnectConnector &&\n connector.walletConnectProvider?.wc?.uri\n )\n connector.walletConnectProvider = undefined;\n\n if (connector)\n try {\n await activate(connector, undefined, true);\n setIsOpen(false);\n setAutoLoginLS(true);\n setSigner(\n new Web3Provider(await connector.getProvider()).getSigner()\n );\n const account = await connector.getAccount();\n sendWalletEvent(\n WalletEvents.connect,\n undefined,\n account || '',\n wallet.name\n );\n await wait(500);\n setIsPending(false);\n } catch (e: any) {\n console.error('failed to connect wallet. ', e.message);\n setIsError(true);\n }\n },\n [activate, setIsOpen]\n );\n\n const handleDisconnect = useCallback(() => {\n setSelectedWallet(undefined);\n deactivate();\n setAutoLoginLS(false);\n setIsPending(false);\n setIsError(false);\n }, [deactivate]);\n\n const handleWalletButtonClick = useCallback(() => {\n if (account) {\n handleDisconnect();\n } else {\n handleOpenModal();\n }\n }, [account, handleDisconnect, handleOpenModal]);\n\n const isMetaMaskMobile =\n isMobile && window.ethereum && window.ethereum.isMetaMask;\n\n useAsyncEffect(\n async (isMounted) => {\n if (selectedWallet) return;\n\n if (isMetaMaskMobile) {\n const wallet = SUPPORTED_WALLETS.find(\n (wallet) => wallet.name === 'MetaMask'\n )!;\n await handleConnect(wallet);\n return;\n }\n\n if (connector) {\n setSigner(new Web3Provider(await connector.getProvider()).getSigner());\n const wallet = SUPPORTED_WALLETS.find(\n (x) => typeof x.connector === typeof connector\n )!;\n if (isMounted()) {\n setSelectedWallet(wallet);\n }\n }\n },\n [connector, selectedWallet]\n );\n\n const title = useMemo(\n () =>\n isError\n ? 'Wallet Error'\n : isPending\n ? 'Connecting to ...'\n : 'Connect Wallet',\n [isError, isPending]\n );\n\n return {\n isOpen,\n setIsOpen,\n handleConnect,\n handleDisconnect,\n handleOpenModal,\n isPending,\n isError,\n account,\n selectedWallet,\n SUPPORTED_WALLETS,\n title,\n handleWalletButtonClick,\n };\n};\n","import { useState, useEffect } from 'react';\nimport { useWeb3React } from '@web3-react/core';\nimport { gnosisSafe, injected } from 'services/web3/wallet/connectors';\nimport { getAutoLoginLS, setAutoLoginLS } from 'utils/localStorage';\nimport { IS_IN_IFRAME } from 'utils/helperFunctions';\n\nexport const useAutoConnect = () => {\n const { activate, active } = useWeb3React();\n\n const [triedAutoLogin, setTriedAutoLogin] = useState(false);\n\n useEffect(() => {\n if (IS_IN_IFRAME)\n gnosisSafe.isSafeApp().then((loadedInSafe) => {\n if (loadedInSafe) {\n activate(gnosisSafe, undefined, true).catch(() => {\n setTriedAutoLogin(true);\n });\n }\n });\n else if (getAutoLoginLS())\n injected.isAuthorized().then((isAuthorized: boolean) => {\n if (isAuthorized) {\n activate(injected, undefined, true)\n .then(async () => {\n setAutoLoginLS(true);\n setTriedAutoLogin(true);\n })\n .catch(() => console.error('Failed to auto login'));\n }\n });\n\n setTriedAutoLogin(true);\n }, [activate]);\n\n useEffect(() => {\n if (!triedAutoLogin && active) {\n setTriedAutoLogin(true);\n }\n }, [triedAutoLogin, active]);\n\n return triedAutoLogin;\n};\n","import { Transition } from '@headlessui/react';\nimport { Fragment, useState } from 'react';\nimport {\n NotificationContent,\n NotificationContentProps,\n} from 'elements/notifications/NotificationContent';\n\nexport const NotificationAlert = ({\n data,\n onRemove,\n}: NotificationContentProps) => {\n const [show, setShow] = useState(true);\n\n const hide = (id: string) => {\n setShow(false);\n onRemove(id);\n };\n\n return (\n \n
\n \n
\n \n );\n};\n","import { useAppSelector } from 'redux/index';\nimport { Notification, hideAlert } from 'redux/notification/notification';\nimport { useDispatch } from 'react-redux';\nimport { wait } from 'utils/pureFunctions';\nimport { NotificationAlert } from 'elements/notifications/NotificationAlert';\n\nexport const NotificationAlerts = () => {\n const dispatch = useDispatch();\n\n const notifications = useAppSelector(\n (state) => state.notification.notifications\n );\n\n const hide = async (id: string) => {\n await wait(1000);\n dispatch(hideAlert(id));\n };\n\n return (\n \n
\n {notifications\n .filter((x) => x.showSeconds)\n .map((notification) => {\n return (\n \n );\n })}\n
\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 SvgVote(_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: \"100%\",\n height: \"100%\",\n viewBox: \"0 0 22 22\",\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: \"M11 1C5.4812 1 1 5.4812 1 11C1 16.5188 5.4812 21 11 21C16.5188 21 21 16.5188 21 11C21 5.4812 16.5188 1 11 1ZM10.5489 4.5188L13.5564 6.21805L10.5489 7.90226L7.54135 6.21805L10.5489 4.5188ZM14.2331 7.21053V10.609L11.1654 12.3383V8.93985L14.2331 7.21053ZM6.86466 7.21053L9.93233 8.93985V12.3383L6.86466 10.609V7.21053ZM10.5639 18.5L6.90977 13L10.5639 15L18.7594 10L10.5639 18.5Z\",\n stroke: \"currentColor\",\n strokeWidth: 0.8,\n strokeLinejoin: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgVote);\nexport default __webpack_public_path__ + \"static/media/vote.647be0c4.svg\";\nexport { ForwardRef as ReactComponent };","var _rect, _rect2, _line, _line2;\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 SvgFiat(_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: \"100%\",\n height: \"100%\",\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, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n x: 0.5,\n y: 0.5,\n width: 19,\n height: 19,\n rx: 1.5,\n stroke: \"currentColor\"\n })), _rect2 || (_rect2 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 1,\n y: 4,\n width: 18,\n height: 4,\n fill: \"currentColor\"\n })), _line || (_line = /*#__PURE__*/React.createElement(\"line\", {\n x1: 4.5,\n y1: 14.5,\n x2: 7.5,\n y2: 14.5,\n stroke: \"currentColor\",\n strokeLinecap: \"round\"\n })), _line2 || (_line2 = /*#__PURE__*/React.createElement(\"line\", {\n x1: 10.5,\n y1: 14.5,\n x2: 14.5,\n y2: 14.5,\n stroke: \"currentColor\",\n strokeLinecap: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgFiat);\nexport default __webpack_public_path__ + \"static/media/fiat.7b579734.svg\";\nexport { ForwardRef as ReactComponent };","import { NavLink } from 'react-router-dom';\nimport { BaseMenuItem } from 'elements/sidebar/menuPrimary/MenuPrimary';\nimport { ReactComponent as IconLink } from 'assets/icons/link.svg';\n\ninterface NavSubItemProps extends BaseMenuItem {\n setIsSidebarOpen?: Function;\n}\n\nexport const MenuPrimaryItemSub = ({\n label,\n to,\n setIsSidebarOpen,\n}: NavSubItemProps) => {\n const href = to.startsWith('http');\n return (\n setIsSidebarOpen && setIsSidebarOpen(false)}\n activeClassName=\"!border-primary-light text-primary-light\"\n className={`w-full flex items-center transition duration-300 border-l-2 border-grey-4 h-[28px] pl-30`}\n >\n {label} {href && }\n \n );\n};\n","import { ReactComponent as IconChevron } from 'assets/icons/chevronRight.svg';\nimport { NavLink } from 'react-router-dom';\nimport { MenuPrimaryItemSub } from 'elements/sidebar/menuPrimary/MenuPrimaryItemSub';\nimport { classNameGenerator } from 'utils/pureFunctions';\nimport { MenuItem } from 'elements/sidebar/menuPrimary/MenuPrimary';\n\ninterface MenuPrimaryItemProps extends MenuItem {\n isActive: boolean;\n isMinimized: boolean;\n setIsSidebarOpen?: Function;\n}\n\nexport const MenuPrimaryItem = ({\n label,\n to,\n icon,\n subMenu,\n isActive,\n isMinimized,\n setIsSidebarOpen,\n}: MenuPrimaryItemProps) => {\n return (\n <>\n \n \n
{icon}
\n {label}\n
\n {subMenu.length ? (\n \n \n \n ) : (\n ''\n )}\n \n\n \n {subMenu.map((subItem, index) => {\n return (\n \n );\n })}\n
\n \n );\n};\n","import { ReactComponent as IconSync } from 'assets/icons/sync.svg';\nimport { ReactComponent as IconEarn } from 'assets/icons/earn.svg';\nimport { ReactComponent as IconVote } from 'assets/icons/vote.svg';\nimport { ReactComponent as IconFiat } from 'assets/icons/fiat.svg';\nimport { useEffect, useState } from 'react';\nimport { useLocation } from 'react-router-dom';\nimport { MenuPrimaryItem } from 'elements/sidebar/menuPrimary/MenuPrimaryItem';\nimport { sendGTMPath } from 'services/api/googleTagManager';\nimport usePrevious from 'hooks/usePrevious';\nimport { useAppSelector } from 'redux/index';\n\nexport interface BaseMenuItem {\n label: string;\n to: string;\n}\n\nexport interface MenuItem extends BaseMenuItem {\n icon: JSX.Element;\n subMenu: BaseMenuItem[];\n}\n\ninterface MenuPrimaryProps {\n isMinimized: boolean;\n setIsSidebarOpen?: Function;\n}\n\nconst menu: MenuItem[] = [\n {\n label: 'Earn',\n to: '/pools',\n icon: ,\n subMenu: [\n { label: 'Pools', to: '/pools' },\n { label: 'Portfolio', to: '/portfolio' },\n ],\n },\n {\n label: 'Trade',\n to: '/',\n icon: ,\n subMenu: [\n { label: 'Swap', to: '/' },\n { label: 'Tokens', to: '/tokens' },\n ],\n },\n {\n label: 'DAO',\n to: '/vote',\n icon: ,\n subMenu: [\n { label: 'Vote', to: '/vote' },\n { label: 'Governance', to: 'https://gov.bancor.network' },\n ],\n },\n {\n label: 'Fiat',\n to: '/fiat',\n icon: ,\n subMenu: [],\n },\n];\n\nexport const MenuPrimary = ({\n isMinimized,\n setIsSidebarOpen,\n}: MenuPrimaryProps) => {\n const [activeNav, setActiveNav] = useState(null);\n const location = useLocation();\n const prevLocation = usePrevious(location);\n const darkMode = useAppSelector((state) => state.user.darkMode);\n\n useEffect(() => {\n setActiveNav(\n menu.findIndex(\n (x) =>\n location.pathname === x.to ||\n x.subMenu.some((sub) => sub.to === location.pathname)\n )\n );\n if (prevLocation?.pathname !== location.pathname) {\n sendGTMPath(prevLocation?.pathname, location.pathname, darkMode);\n window.scrollTo(0, 0);\n }\n }, [location, darkMode, prevLocation]);\n\n return (\n \n );\n};\n","var _path, _path2, _path3, _path4, _path5, _path6;\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 SvgBancorText(_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: \"100%\",\n height: \"100%\",\n viewBox: \"0 0 76 17\",\n fill: \"currentColor\",\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: \"M0 16.5561V0.829224H6.53467C8.22403 0.829224 9.51414 1.20685 10.4051 1.96213C11.296 2.71742 11.7414 3.68791 11.7414 4.87362C11.7414 5.86037 11.464 6.65217 10.9178 7.24504C10.3672 7.83788 9.69485 8.23583 8.9048 8.447C9.83352 8.62566 10.6026 9.07234 11.2077 9.78295C11.8128 10.4936 12.1154 11.3219 12.1154 12.264C12.1154 13.5066 11.6489 14.5339 10.7202 15.342C9.79151 16.15 8.47195 16.5561 6.76581 16.5561H0ZM2.97936 7.43625H6.09753C6.93378 7.43625 7.57676 7.24946 8.02639 6.87588C8.47606 6.5023 8.69879 5.97035 8.69879 5.28004C8.69879 4.62223 8.47606 4.09841 8.0348 3.71671C7.59358 3.335 6.92959 3.14417 6.04707 3.14417H2.97936V7.43625ZM6.30347 14.2211H2.97939H2.97517V9.59196H6.25305C7.12294 9.59196 7.81211 9.80312 8.3248 10.2214C8.83749 10.6396 9.09385 11.2162 9.09385 11.9512C9.09385 12.6699 8.85008 13.2263 8.36262 13.6242C7.87517 14.0221 7.18595 14.2211 6.30347 14.2211Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M16.1416 16.3704C16.7761 16.6749 17.5914 16.8292 18.5829 16.8292C19.541 16.8292 20.3313 16.6343 20.949 16.2445C21.5582 15.8547 22.0374 15.3633 22.3778 14.7623L22.6551 16.5612H25.189V9.70685C25.189 8.25313 24.7141 7.1324 23.7689 6.33652C22.8233 5.54469 21.5288 5.14673 19.8858 5.14673C18.9233 5.14673 18.0534 5.30918 17.2804 5.62995C16.5029 5.95073 15.8724 6.40958 15.3851 7.01058C14.8974 7.6075 14.6117 8.31402 14.5361 9.12211H17.4441C17.5536 8.58204 17.8308 8.17191 18.2803 7.89581C18.7302 7.61967 19.2553 7.4816 19.8605 7.4816C20.5244 7.4816 21.0834 7.66026 21.5332 8.02167C21.9787 8.38308 22.2056 8.94344 22.2056 9.70685V9.97483H19.2762C17.6039 9.97483 16.3472 10.2956 15.511 10.9413C14.6749 11.5869 14.2544 12.4234 14.2544 13.4589C14.2544 14.072 14.4101 14.6365 14.7211 15.144C15.0322 15.6557 15.507 16.0617 16.1416 16.3704ZM21.2431 13.7749C20.7723 14.315 20.1083 14.583 19.2553 14.583C18.6963 14.583 18.2469 14.4612 17.9064 14.2257C17.566 13.9861 17.3938 13.649 17.3938 13.2145C17.3938 12.8085 17.566 12.4674 17.9064 12.1913C18.2469 11.9151 18.8142 11.7771 19.6041 11.7771H22.138C22.012 12.5689 21.7139 13.2349 21.2431 13.7749Z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M28.0212 16.5612V5.41474H30.648L30.879 7.30293C31.2363 6.64513 31.753 6.12131 32.4254 5.73147C33.0978 5.34164 33.8921 5.14673 34.8083 5.14673C36.2328 5.14673 37.3422 5.58123 38.1321 6.45021C38.9224 7.31919 39.3175 8.59421 39.3175 10.2713V16.5612H36.3423V10.5393C36.3423 9.58096 36.1403 8.84597 35.7371 8.3384C35.3335 7.83083 34.7074 7.57499 33.8543 7.57499C33.0181 7.57499 32.3329 7.85926 31.7952 8.42775C31.2613 8.99625 30.9925 9.79212 30.9925 10.8113V16.5653H28.0212V16.5612Z\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M47.0222 16.6777C45.8456 16.6777 44.8034 16.43 43.904 15.9346C43.0047 15.4393 42.2945 14.753 41.7774 13.8678C41.2563 12.9826 41 11.9714 41 10.8345C41 9.6975 41.2607 8.68637 41.7774 7.80118C42.2985 6.91595 43.0047 6.22968 43.904 5.73429C44.8034 5.23889 45.8412 4.99121 47.0222 4.99121C48.4929 4.99121 49.7367 5.36071 50.7411 6.10382C51.7499 6.8469 52.3929 7.86612 52.6701 9.1696H49.5311C49.3754 8.62953 49.0687 8.20723 48.6108 7.89862C48.1525 7.59001 47.6145 7.43977 46.9928 7.43977C46.1691 7.43977 45.4714 7.74025 44.9 8.33717C44.3241 8.93813 44.0384 9.76651 44.0384 10.8304C44.0384 11.8943 44.3241 12.7267 44.9 13.3236C45.4714 13.9246 46.1691 14.221 46.9928 14.221C47.6145 14.221 48.1525 14.0708 48.6108 13.7703C49.0687 13.4698 49.3754 13.0435 49.5311 12.4912H52.6701C52.3929 13.75 51.7455 14.7611 50.7411 15.5245C49.7367 16.296 48.4973 16.6777 47.0222 16.6777Z\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M57.5849 16.0854C58.4758 16.5808 59.4802 16.8285 60.598 16.8285C61.6993 16.8285 62.6993 16.5808 63.5986 16.0854C64.498 15.5941 65.2038 14.9078 65.7249 14.0307C66.242 13.1536 66.5023 12.1384 66.5023 10.9852C66.5023 9.832 66.246 8.81683 65.7249 7.93973C65.2038 7.06671 64.498 6.38044 63.6071 5.88505C62.7162 5.38965 61.7203 5.14197 60.6193 5.14197C59.5015 5.14197 58.4971 5.38965 57.6062 5.88505C56.7153 6.3764 56.0051 7.06263 55.4796 7.93973C54.9545 8.81683 54.6897 9.832 54.6897 10.9852C54.6897 12.1384 54.946 13.1536 55.4671 14.0307C55.9882 14.9037 56.694 15.59 57.5849 16.0854ZM62.6196 13.4912C62.0478 14.0556 61.3714 14.3358 60.598 14.3358C59.8206 14.3358 59.1526 14.0556 58.5853 13.4912C58.0179 12.9308 57.7362 12.0943 57.7362 10.9857C57.7362 9.8772 58.0179 9.0407 58.5853 8.48033C59.1482 7.91591 59.8291 7.63573 60.6193 7.63573C61.3799 7.63573 62.0438 7.91996 62.6196 8.48033C63.1951 9.0407 63.4811 9.8772 63.4811 10.9857C63.4811 12.0943 63.191 12.9308 62.6196 13.4912Z\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M68.314 16.5612V5.41474H70.9653L71.6212 7.50598C72.0413 6.78724 72.2304 6.2147 72.9532 5.78832C73.6762 5.36194 74.5249 5.14673 75.4999 5.14673V8.18004H74.6637C74.0122 8.18004 73.4324 8.27751 72.9197 8.47239C72.4071 8.66731 72.0075 9.00434 71.7218 9.48352C71.4361 9.96266 71.2933 10.6286 71.2933 11.4814V16.5612H68.314Z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgBancorText);\nexport default __webpack_public_path__ + \"static/media/bancorText.b08595db.svg\";\nexport { ForwardRef as ReactComponent };","import { useEffect, useRef } from 'react';\n\nexport default function usePrevious(value: T) {\n const ref = useRef();\n\n useEffect(() => {\n ref.current = value;\n }, [value]);\n\n return ref.current;\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 SvgCommunity(_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: \"M3.77385 12.4296C3.40832 12.7023 3.09136 13.0368 2.83969 13.4231C2.54262 13.893 2.32929 14.4083 2.21007 14.9496C2.32627 14.4281 2.53306 13.9296 2.82854 13.4735L3.77385 12.4296ZM3.77385 12.4296H3.82966M3.77385 12.4296H3.82966M3.82966 12.4296C3.43654 12.7092 3.0957 13.0601 2.82859 13.4734L3.82966 12.4296ZM3.46206 11.4296H2.7425C1.95093 11.4296 1.36834 11.8562 1.00667 12.4437C0.692507 12.9541 0.534855 13.594 0.504841 14.2388C0.538014 13.4517 0.739871 12.7389 1.05514 12.2229C1.39854 11.6609 1.84015 11.3785 2.32893 11.3785H3.54316C3.51596 11.3953 3.48893 11.4123 3.46206 11.4296ZM3.49835 19.5C2.77976 19.5 2.15697 18.9137 2.10308 18.1219C2.15842 18.8422 2.74431 19.4388 3.49835 19.4388H16.0921C16.8424 19.4388 17.4263 18.848 17.4865 18.1324C17.4272 18.9118 16.8056 19.5 16.0921 19.5H3.49835ZM16.7517 13.4247C17.1661 14.0673 17.4114 14.798 17.4747 15.5675C17.4116 14.8223 17.1723 14.1071 16.7619 13.4735C16.5055 13.0768 16.1812 12.7376 15.808 12.4637C15.822 12.4606 15.836 12.4576 15.8501 12.4549C16.202 12.7233 16.5076 13.0496 16.7517 13.4247ZM12.9013 11.6814C12.4663 11.7212 12.1178 11.8207 11.7879 11.9169C11.7654 11.923 11.7429 11.9293 11.7204 11.9355C11.2309 12.0706 10.7105 12.2143 9.8052 12.2143C8.85304 12.2143 8.32488 12.0648 7.82751 11.9183L7.81875 11.9157L7.80991 11.9135C7.76298 11.9015 7.71548 11.8891 7.66725 11.8765C7.28288 11.776 6.85171 11.6633 6.28696 11.6633C6.12711 11.6633 5.96867 11.6718 5.81229 11.6885C5.82001 11.6824 5.82775 11.6763 5.83551 11.6702L5.8864 11.6304C6.01843 11.6184 6.15206 11.6122 6.28696 11.6122C6.8937 11.6122 7.26807 11.7181 7.71756 11.8478L7.72124 11.8488L7.74895 11.8566C8.2632 12.0008 8.84266 12.1633 9.7952 12.1633C10.7477 12.1633 11.3272 12.0008 11.8414 11.8566L11.8692 11.8488L11.8692 11.8488L11.8728 11.8478C12.196 11.7545 12.4803 11.6736 12.84 11.6355L12.9013 11.6814ZM17.4913 11.4296H16.1283C16.1022 11.4128 16.076 11.3963 16.0495 11.38C16.0684 11.379 16.0855 11.3785 16.1007 11.3785H17.8498C18.2028 11.3785 18.4577 11.4568 18.6485 11.5745C18.8398 11.6925 18.9978 11.8696 19.1257 12.1163C19.3899 12.6261 19.4991 13.381 19.5 14.3057C19.499 14.3188 19.4959 14.3288 19.4926 14.3359C19.4914 14.3311 19.4905 14.325 19.4905 14.3174C19.4905 13.6348 19.408 12.9381 19.1214 12.3961C18.9738 12.1169 18.7667 11.8687 18.4822 11.6925C18.1965 11.5156 17.8626 11.4296 17.4913 11.4296ZM9.7952 9.29592C7.61959 9.29592 5.7942 7.54067 5.61242 5.27097C5.79512 7.47998 7.5849 9.2449 9.7952 9.2449C12.0055 9.2449 13.7953 7.47998 13.978 5.27097C13.7962 7.54067 11.9708 9.29592 9.7952 9.29592ZM5.61242 4.52495C5.7942 2.25525 7.61959 0.5 9.7952 0.5C11.9708 0.5 13.7962 2.25525 13.978 4.52495C13.7953 2.31594 12.0055 0.55102 9.7952 0.55102C7.5849 0.55102 5.79512 2.31594 5.61242 4.52495Z\",\n fill: \"#F2F5F9\",\n stroke: \"white\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.56843 5.50001C5.56843 6.92037 4.41763 8.07143 2.9985 8.07143C1.57937 8.07143 0.428571 6.92037 0.428571 5.50001C0.428571 4.07964 1.57937 2.92858 2.9985 2.92858C4.41763 2.92858 5.56843 4.07964 5.56843 5.50001ZM19.5614 5.5C19.5614 6.92036 18.4106 8.07143 16.9915 8.07143C15.5724 8.07143 14.4216 6.92036 14.4216 5.5C14.4216 4.07964 15.5724 2.92857 16.9915 2.92857C18.4106 2.92857 19.5614 4.07964 19.5614 5.5Z\",\n stroke: \"white\",\n strokeWidth: 0.857143\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCommunity);\nexport default __webpack_public_path__ + \"static/media/community.302a9748.svg\";\nexport { ForwardRef as ReactComponent };","import { ReactComponent as IconBancor } from 'assets/icons/bancor.svg';\nimport { ReactComponent as IconBancorText } from 'assets/icons/bancorText.svg';\nimport { ReactComponent as IconChevron } from 'assets/icons/chevronRight.svg';\nimport { ReactComponent as IconTimes } from 'assets/icons/times.svg';\nimport { NavLink } from 'react-router-dom';\nimport { classNameGenerator } from 'utils/pureFunctions';\n\ninterface SidebarHeaderProps {\n isMinimized: boolean;\n setIsMinimized: Function;\n setIsSidebarOpen?: Function;\n}\nexport const SidebarHeader = ({\n isMinimized,\n setIsMinimized,\n setIsSidebarOpen,\n}: SidebarHeaderProps) => {\n return (\n <>\n
\n
\n \n \n \n \n
\n {setIsSidebarOpen ? (\n \n ) : (\n ''\n )}\n
\n\n setIsMinimized(!isMinimized)}\n className={'hidden md:block'}\n >\n \n \n \n \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 SvgDevelopers(_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: \"M5.57337 18.12C4.9527 18.12 4.4777 17.949 4.14837 17.607C3.81904 17.2777 3.65437 16.8027 3.65437 16.182V11.869C3.65437 11.337 3.55304 10.957 3.35037 10.729C3.1477 10.501 2.8057 10.368 2.32437 10.33L1.81137 10.292V9.114L2.32437 9.076C2.8057 9.05066 3.1477 8.924 3.35037 8.696C3.55304 8.45533 3.65437 8.07533 3.65437 7.556V3.243C3.65437 2.62233 3.81904 2.14733 4.14837 1.818C4.4777 1.476 4.9527 1.305 5.57337 1.305H7.43537V2.521H6.02937C5.47204 2.521 5.19337 2.806 5.19337 3.376V7.708C5.19337 8.21466 5.0667 8.65166 4.81337 9.019C4.56004 9.38633 4.2307 9.61433 3.82537 9.703C4.2307 9.79166 4.56004 10.0197 4.81337 10.387C5.0667 10.7543 5.19337 11.1913 5.19337 11.698V16.049C5.19337 16.619 5.47204 16.904 6.02937 16.904H7.43537V18.12H5.57337ZM12.5919 18.12V16.904H13.9979C14.5426 16.904 14.8149 16.619 14.8149 16.049V11.698C14.8149 11.1913 14.9416 10.7543 15.1949 10.387C15.4609 10.0197 15.7966 9.79166 16.2019 9.703C15.7966 9.61433 15.4609 9.38633 15.1949 9.019C14.9416 8.65166 14.8149 8.21466 14.8149 7.708V3.376C14.8149 2.806 14.5426 2.521 13.9979 2.521H12.5919V1.305H14.4539C15.0619 1.305 15.5306 1.476 15.8599 1.818C16.1893 2.14733 16.3539 2.62233 16.3539 3.243V7.556C16.3539 8.07533 16.4553 8.45533 16.6579 8.696C16.8606 8.924 17.2026 9.05066 17.6839 9.076L18.1969 9.114V10.292L17.6839 10.33C17.2026 10.3553 16.8606 10.4883 16.6579 10.729C16.4553 10.957 16.3539 11.337 16.3539 11.869V16.182C16.3539 16.8027 16.1893 17.2777 15.8599 17.607C15.5306 17.949 15.0619 18.12 14.4539 18.12H12.5919Z\",\n fill: \"#F2F5F9\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDevelopers);\nexport default __webpack_public_path__ + \"static/media/developers.545996e9.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 SvgBancoranalytics(_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: \"M1.58111 18.5001L1.58117 18.5156H1.59674V18.5C1.59674 18.5156 1.5968 18.5156 1.59694 18.5156H1.59753H1.59852H1.59991H1.60169H1.60386H1.60641H1.60936H1.61269H1.61641H1.62051H1.62499H1.62985H1.63509H1.64071H1.6467H1.65307H1.65981H1.66692H1.6744H1.68225H1.69046H1.69904H1.70798H1.71728H1.72694H1.73697H1.74734H1.75808H1.76916H1.7806H1.7924H1.80454H1.81702H1.82986H1.84304H1.85656H1.87042H1.88462H1.89917H1.91404H1.92926H1.94481H1.96069H1.9769H1.99344H2.0103H2.0275H2.04502H2.06286H2.08102H2.0995H2.11831H2.13743H2.15686H2.17661H2.19667H2.21704H2.23772H2.2587H2.28H2.3016H2.3235H2.3457H2.3682H2.391H2.4141H2.4375H2.46118H2.48516H2.50943H2.53399H2.55884H2.58397H2.60939H2.63509H2.66107H2.68733H2.71387H2.74069H2.76778H2.79515H2.82278H2.85069H2.87887H2.90732H2.93603H2.965H2.99424H3.02374H3.0535H3.08352H3.1138H3.14433H3.17511H3.20615H3.23744H3.26897H3.30076H3.33279H3.36506H3.39758H3.43034H3.46333H3.49657H3.53004H3.56375H3.59769H3.63187H3.66627H3.70091H3.73577H3.77086H3.80617H3.8417H3.87746H3.91344H3.94963H3.98604H4.02267H4.05951H4.09656H4.13382H4.17129H4.20897H4.24686H4.28495H4.32324H4.36173H4.40042H4.43932H4.4784H4.51769H4.55716H4.59683H4.63669H4.67674H4.71698H4.7574H4.798H4.83879H4.87976H4.92091H4.96224H5.00374H5.04542H5.08728H5.1293H5.1715H5.21386H5.2564H5.29909H5.34196H5.38498H5.42817H5.47151H5.51502H5.55868H5.60249H5.64646H5.69059H5.73486H5.77928H5.82385H5.86856H5.91342H5.95842H6.00356H6.04884H6.09426H6.13982H6.18551H6.23134H6.27729H6.32338H6.3696H6.41594H6.46241H6.509H6.55572H6.60256H6.64951H6.69659H6.74378H6.79109H6.83851H6.88604H6.93368H6.98143H7.02929H7.07725H7.12532H7.17349H7.22177H7.27014H7.31861H7.36717H7.41584H7.46459H7.51344H7.56237H7.6114H7.66051H7.70971H7.759H7.80836H7.85781H7.90733H7.95694H8.00662H8.05637H8.1062H8.1561H8.20607H8.25611H8.30622H8.35639H8.40663H8.45693H8.50729H8.55771H8.60819H8.65872H8.70931H8.75996H8.81065H8.8614H8.91219H8.96303H9.01392H9.06485H9.11582H9.16683H9.21789H9.26898H9.32011H9.37127H9.42246H9.47369H9.52495H9.57624H9.62755H9.67889H9.73025H9.78164H9.83305H9.88447H9.93592H9.98738H10.0389H10.0903H10.1418H10.1934H10.2449H10.2964H10.3479H10.3995H10.451H10.5025H10.5541H10.6056H10.6572H10.7087H10.7602H10.8117H10.8632H10.9147H10.9662H11.0177H11.0691H11.1205H11.1719H11.2233H11.2747H11.326H11.3774H11.4287H11.4799H11.5312H11.5824H11.6335H11.6847H11.7358H11.7868H11.8379H11.8888H11.9398H11.9907H12.0415H12.0923H12.1431H12.1938H12.2444H12.295H12.3456H12.3961H12.4465H12.4969H12.5472H12.5975H12.6476H12.6978H12.7478H12.7978H12.8477H12.8976H12.9473H12.997H13.0467H13.0962H13.1457H13.1951H13.2444H13.2936H13.3427H13.3918H13.4407H13.4896H13.5384H13.587H13.6356H13.6841H13.7325H13.7808H13.829H13.8771H13.9251H13.973H14.0207H14.0684H14.116H14.1634H14.2107H14.258H14.3051H14.352H14.3989H14.4456H14.4923H14.5388H14.5851H14.6314H14.6775H14.7235H14.7693H14.8151H14.8607H14.9061H14.9514H14.9966H15.0416H15.0865H15.1313H15.1759H15.2203H15.2646H15.3088H15.3528H15.3966H15.4403H15.4839H15.5272H15.5705H15.6135H15.6564H15.6992H15.7417H15.7841H15.8264H15.8684H15.9103H15.9521H15.9936H16.035H16.0762H16.1172H16.158H16.1986H16.2391H16.2794H16.3195H16.3594H16.3991H16.4386H16.4779H16.5171H16.556H16.5947H16.6333H16.6716H16.7098H16.7477H16.7854H16.8229H16.8602H16.8973H16.9342H16.9709H17.0074H17.0436H17.0796H17.1154H17.151H17.1864H17.2215H17.2564H17.2911H17.3256H17.3598H17.3938H17.4276H17.4611H17.4944H17.5274H17.5602H17.5928H17.6251H17.6572H17.6891H17.7207H17.752H17.7831H17.8139H17.8445H17.8749H17.9049H17.9348H17.9643H17.9936H18.0226H18.0514H18.0799H18.1082H18.1361H18.1638H18.1913H18.2184H18.2453H18.2719H18.2982H18.3243H18.35H18.3755H18.4007H18.4256H18.4502H18.4746H18.4986H18.5224H18.5458H18.569H18.5919H18.6144H18.6367H18.6587H18.6803H18.7017H18.7228H18.7435H18.764H18.7841H18.8039H18.8234H18.8426H18.8615H18.88H18.8983H18.9162H18.9338H18.951H18.968H18.9846H19.0009H19.0168H19.0325H19.0477H19.0627H19.0773H19.0916H19.1055H19.1191H19.1324H19.1453H19.1579H19.1701H19.182H19.1935H19.2046H19.2155H19.2259H19.236H19.2458H19.2552H19.2642H19.2728H19.2811H19.2891H19.2966H19.3038H19.3106H19.3171H19.3232H19.3289H19.3342H19.3391H19.3437H19.3479H19.3517H19.3551H19.3582H19.3608H19.3631C19.5357 18.5156 19.6911 18.5714 19.8031 18.671C19.9149 18.7704 19.9844 18.9141 19.9844 19.0922V19.3398C19.9844 19.6964 19.7058 19.9844 19.3631 19.9844H19.3608H19.3581H19.355H19.3516H19.3477H19.3434H19.3387H19.3336H19.3281H19.3222H19.316H19.3093H19.3022H19.2948H19.287H19.2787H19.2701H19.2612H19.2518H19.2421H19.2319H19.2214H19.2106H19.1993H19.1877H19.1757H19.1634H19.1507H19.1376H19.1242H19.1104H19.0962H19.0817H19.0668H19.0516H19.036H19.02H19.0038H18.9871H18.9701H18.9528H18.9352H18.9171H18.8988H18.8801H18.8611H18.8417H18.822H18.802H18.7816H18.761H18.7399H18.7186H18.6969H18.675H18.6527H18.63H18.6071H18.5838H18.5603H18.5364H18.5122H18.4877H18.4629H18.4377H18.4123H18.3866H18.3606H18.3342H18.3076H18.2807H18.2535H18.226H18.1982H18.1701H18.1417H18.113H18.0841H18.0548H18.0253H17.9955H17.9654H17.9351H17.9044H17.8735H17.8424H17.8109H17.7792H17.7472H17.715H17.6825H17.6497H17.6167H17.5834H17.5498H17.516H17.4819H17.4476H17.413H17.3782H17.3432H17.3078H17.2723H17.2365H17.2005H17.1642H17.1277H17.0909H17.0539H17.0167H16.9792H16.9415H16.9036H16.8655H16.8271H16.7885H16.7497H16.7107H16.6714H16.6319H16.5923H16.5524H16.5122H16.4719H16.4314H16.3906H16.3497H16.3085H16.2672H16.2256H16.1839H16.1419H16.0998H16.0574H16.0149H15.9722H15.9293H15.8861H15.8429H15.7994H15.7557H15.7119H15.6678H15.6236H15.5793H15.5347H15.49H15.4451H15.4H15.3548H15.3094H15.2638H15.2181H15.1722H15.1261H15.0799H15.0335H14.987H14.9403H14.8935H14.8465H14.7993H14.752H14.7046H14.657H14.6093H14.5614H14.5134H14.4653H14.417H14.3686H14.3201H14.2714H14.2226H14.1736H14.1246H14.0754H14.0261H13.9767H13.9271H13.8774H13.8276H13.7777H13.7277H13.6776H13.6273H13.577H13.5265H13.476H13.4253H13.3745H13.3237H13.2727H13.2216H13.1705H13.1192H13.0678H13.0164H12.9649H12.9132H12.8615H12.8097H12.7579H12.7059H12.6539H12.6018H12.5496H12.4973H12.4449H12.3925H12.3401H12.2875H12.2349H12.1822H12.1294H12.0766H12.0238H11.9708H11.9178H11.8648H11.8117H11.7586H11.7054H11.6521H11.5988H11.5455H11.4921H11.4386H11.3852H11.3317H11.2781H11.2245H11.1709H11.1172H11.0636H11.0098H10.9561H10.9023H10.8485H10.7947H10.7409H10.687H10.6331H10.5792H10.5253H10.4714H10.4175H10.3635H10.3095H10.2556H10.2016H10.1476H10.0937H10.0397H9.9857H9.93173H9.87776H9.82379H9.76983H9.71589H9.66195H9.60802H9.55411H9.50021H9.44633H9.39247H9.33863H9.28481H9.23101H9.17724H9.1235H9.06978H9.01609H8.96244H8.90882H8.85523H8.80168H8.74816H8.69469H8.64126H8.58787H8.53452H8.48123H8.42797H8.37477H8.32162H8.26852H8.21548H8.16249H8.10956H8.05669H8.00387H7.95112H7.89844H7.84582H7.79326H7.74078H7.68837H7.63602H7.58375H7.53156H7.47944H7.4274H7.37544H7.32357H7.27177H7.22006H7.16844H7.11691H7.06546H7.01411H6.96285H6.91168H6.86061H6.80964H6.75876H6.70799H6.65732H6.60676H6.5563H6.50594H6.4557H6.40557H6.35555H6.30564H6.25585H6.20618H6.15662H6.10719H6.05787H6.00868H5.95962H5.91068H5.86187H5.81319H5.76465H5.71623H5.66796H5.61981H5.57181H5.52394H5.47622H5.42864H5.38121H5.33392H5.28677H5.23978H5.19294H5.14625H5.09972H5.05334H5.00712H4.96106H4.91516H4.86942H4.82384H4.77844H4.73319H4.68812H4.64322H4.59849H4.55393H4.50955H4.46535H4.42132H4.37747H4.33381H4.29033H4.24703H4.20393H4.161H4.11827H4.07573H4.03339H3.99123H3.94928H3.90752H3.86596H3.82461H3.78345H3.7425H3.70176H3.66122H3.62089H3.58078H3.54087H3.50118H3.46171H3.42245H3.38342H3.3446H3.306H3.26763H3.22949H3.19157H3.15388H3.11642H3.07919H3.04219H3.00543H2.96891H2.93262H2.89658H2.86078H2.82522H2.7899H2.75483H2.72001H2.68544H2.65112H2.61705H2.58324H2.54968H2.51638H2.48334H2.45056H2.41804H2.38579H2.35381H2.32209H2.29064H2.25946H2.22855H2.19792H2.16756H2.13748H2.10767H2.07815H2.04891H2.01995H1.99128H1.9629H1.9348H1.907H1.87948H1.85226H1.82533H1.7987H1.77237H1.74634H1.72061H1.69518H1.67005H1.64524H1.62073H1.59653H1.57264H1.54906H1.5258H1.50285H1.48022H1.45791H1.43592H1.41426H1.39291H1.3719H1.35121H1.33084H1.31081H1.29111H1.27175H1.25272H1.23402H1.21567H1.19765H1.17998H1.16265H1.14567H1.12903H1.11274H1.0968H1.08121H1.06597H1.05109H1.03656H1.0224H1.00859H0.995141H0.982057H0.969337H0.956984H0.944997H0.93338H0.922134H0.91126H0.90076H0.890635H0.880888H0.87152H0.862532H0.853926H0.845704H0.837868H0.830418H0.823357H0.816686H0.810407H0.804521H0.79903H0.793936H0.78924H0.784944H0.781049H0.777558H0.774471H0.771791H0.769518H0.767655H0.766203H0.765164H0.76454C0.764401 19.9844 0.764331 19.9844 0.764331 20V19.9844C0.588425 19.9844 0.453943 19.9801 0.350772 19.9625C0.247755 19.9449 0.177988 19.9145 0.129696 19.8638C0.0813082 19.813 0.0524437 19.7397 0.0359525 19.6321C0.0194544 19.5245 0.015625 19.3846 0.015625 19.2022H0C0.015625 19.2022 0.015625 19.2021 0.015625 19.202V19.2014V19.2003V19.1989V19.197V19.1948V19.1921V19.189V19.1856V19.1817V19.1774V19.1727V19.1676V19.1622V19.1563V19.1501V19.1434V19.1364V19.129V19.1211V19.113V19.1044V19.0954V19.0861V19.0764V19.0663V19.0558V19.045V19.0338V19.0222V19.0103V18.998V18.9853V18.9723V18.9589V18.9451V18.931V18.9165V18.9017V18.8865V18.871V18.8551V18.8389V18.8223V18.8054V18.7881V18.7705V18.7526V18.7343V18.7157V18.6967V18.6774V18.6578V18.6378V18.6176V18.5969V18.576V18.5547V18.5332V18.5113V18.489V18.4665V18.4436V18.4204V18.397V18.3732V18.3491V18.3246V18.2999V18.2749V18.2495V18.2239V18.198V18.1717V18.1452V18.1184V18.0913V18.0639V18.0362V18.0082V17.9799V17.9513V17.9225V17.8933V17.8639V17.8342V17.8043V17.774V17.7435V17.7127V17.6817V17.6503V17.6187V17.5868V17.5547V17.5223V17.4897V17.4567V17.4236V17.3901V17.3565V17.3225V17.2883V17.2539V17.2192V17.1842V17.1491V17.1136V17.078V17.0421V17.0059V16.9695V16.9329V16.896V16.8589V16.8216V16.7841V16.7463V16.7083V16.6701V16.6316V16.5929V16.554V16.5149V16.4756V16.4361V16.3963V16.3563V16.3161V16.2758V16.2352V16.1944V16.1534V16.1122V16.0708V16.0292V15.9873V15.9454V15.9032V15.8608V15.8182V15.7754V15.7325V15.6894V15.646V15.6025V15.5588V15.515V15.4709V15.4267V15.3823V15.3378V15.293V15.2481V15.203V15.1578V15.1124V15.0668V15.0211V14.9752V14.9291V14.8829V14.8366V14.79V14.7434V14.6965V14.6496V14.6025V14.5552V14.5078V14.4602V14.4125V14.3647V14.3167V14.2686V14.2204V14.172V14.1235V14.0749V14.0261V13.9772V13.9282V13.8791V13.8298V13.7805V13.731V13.6814V13.6316V13.5818V13.5318V13.4818V13.4316V13.3813V13.3309V13.2804V13.2299V13.1792V13.1284V13.0775V13.0265V12.9754V12.9243V12.873V12.8216V12.7702V12.7187V12.6671V12.6154V12.5636V12.5117V12.4598V12.4078V12.3557V12.3036V12.2513V12.199V12.1467V12.0942V12.0417V11.9892V11.9365V11.8839V11.8311V11.7783V11.7254V11.6725V11.6196V11.5666V11.5135V11.4604V11.4072V11.354V11.3008V11.2475V11.1942V11.1408V11.0874V11.034V10.9805V10.927V10.8735V10.8199V10.7663V10.7127V10.6591V10.6054V10.5517V10.4981V10.4443V10.3906V10.3369V10.2831V10.2294V10.1756V10.1218V10.068V10.0142V9.96044V9.90664V9.85285V9.79906V9.74527V9.69149V9.63772V9.58395V9.5302V9.47646V9.42273V9.36901V9.31532V9.26164V9.20798V9.15434V9.10073V9.04714V8.99357V8.94004V8.88653V8.83306V8.77962V8.72621V8.67284V8.6195V8.56621V8.51296V8.45975V8.40658V8.35346V8.30038V8.24736V8.19438V8.14146V8.08859V8.03578V7.98302V7.93033V7.87769V7.82511V7.7726V7.72015V7.66777V7.61546V7.56322V7.51105V7.45895V7.40693V7.35498V7.30311V7.25132V7.19961V7.14799V7.09644V7.04499V6.99362V6.94234V6.89115V6.84006V6.78906V6.73815V6.68734V6.63663V6.58602V6.53551V6.48511V6.43481V6.38462V6.33453V6.28456V6.2347V6.18495V6.13531V6.0858V6.0364V5.98712V5.93796V5.88892V5.84001V5.79123V5.74257V5.69404V5.64565V5.59738V5.54925V5.50126V5.4534V5.40568V5.35811V5.31067V5.26338V5.21623V5.16924V5.12239V5.07569V5.02914V4.98275V4.93651V4.89042V4.8445V4.79874V4.75313V4.70769V4.66242V4.61731V4.57237V4.5276V4.483V4.43857V4.39432V4.35024V4.30635V4.26263V4.21909V4.17573V4.13256V4.08957V4.04677V4.00416V3.96174V3.91952V3.87748V3.83564V3.794V3.75256V3.71132V3.67027V3.62944V3.5888V3.54838V3.50816V3.46815V3.42835V3.38877V3.3494V3.31025V3.27131V3.2326V3.1941V3.15583V3.11778V3.07996V3.04237V3.005V2.96787V2.93096V2.8943V2.85786V2.82167V2.78571V2.74999V2.71452V2.67929V2.6443V2.60957V2.57508V2.54083V2.50685V2.47311V2.43963V2.40641V2.37344V2.34073V2.30829V2.27611V2.24419V2.21254V2.18115V2.15004V2.11919V2.08862V2.05833V2.02831V1.99856V1.9691V1.93991V1.91101V1.88239V1.85406V1.82601V1.79826V1.77079V1.74362V1.71673V1.69015V1.66386V1.63787V1.61217V1.58678V1.5617V1.53692V1.51244V1.48827V1.46441V1.44087V1.41763V1.39471V1.37211V1.34982V1.32785V1.30621V1.28488V1.26388V1.24321V1.22286V1.20284V1.18316V1.1638V1.14478V1.12609V1.10774V1.08973V1.07206V1.05473V1.03774V1.0211V1.00481V0.988861V0.973264V0.958019V0.943127V0.928589V0.914408V0.900584V0.88712V0.874016V0.861276V0.8489V0.836889V0.825246V0.813972V0.803069V0.792538V0.782381V0.7726V0.763195V0.75417V0.745525V0.737261V0.729381V0.721887V0.714779V0.70806V0.70173V0.695792V0.690248V0.685098V0.680345V0.675989V0.672034V0.668479V0.665328V0.662581V0.66024C0.015625 0.303553 0.294186 0.015625 0.636942 0.015625H0.89172C1.23448 0.015625 1.51304 0.303553 1.51304 0.66024L1.51304 0.660299L1.58111 18.5001ZM10.5 16.2982H10.0557C9.93363 16.2982 9.81007 16.2347 9.71667 16.1379C9.62329 16.0411 9.56181 15.9128 9.56181 15.7856V2.75678C9.56181 2.62962 9.62329 2.50128 9.71667 2.4045C9.81007 2.30767 9.93363 2.24421 10.0557 2.24421H10.5C10.6221 2.24421 10.7457 2.30767 10.8391 2.4045C10.9324 2.50128 10.9939 2.62962 10.9939 2.75678V15.7856C10.9939 15.9128 10.9324 16.0411 10.8391 16.1379C10.7457 16.2347 10.6221 16.2982 10.5 16.2982ZM15.5 16.2982H15.1322C15.0101 16.2982 14.8865 16.2347 14.7931 16.1379C14.6997 16.0411 14.6382 15.9128 14.6382 15.7856V7.51051C14.6382 7.38335 14.6997 7.25502 14.7931 7.15823C14.8865 7.0614 15.0101 6.99794 15.1322 6.99794H15.5C15.6221 6.99794 15.7457 7.0614 15.8391 7.15823C15.9324 7.25502 15.9939 7.38335 15.9939 7.51051V15.7856C15.9939 15.9128 15.9324 16.0411 15.8391 16.1379C15.7457 16.2347 15.6221 16.2982 15.5 16.2982ZM5.5 16.2982H5.09554C4.97344 16.2982 4.84988 16.2347 4.75647 16.1379C4.66309 16.0411 4.60161 15.9128 4.60161 15.7856V10.5972C4.60161 10.47 4.66309 10.3417 4.75647 10.2449C4.84988 10.148 4.97344 10.0846 5.09554 10.0846H5.5C5.62211 10.0846 5.74566 10.148 5.83907 10.2449C5.93245 10.3417 5.99393 10.47 5.99393 10.5972V15.7856C5.99393 15.9128 5.93245 16.0411 5.83907 16.1379C5.74566 16.2347 5.62211 16.2982 5.5 16.2982Z\",\n fill: \"currentColor\",\n stroke: \"currentColor\",\n strokeWidth: 0.03125\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgBancoranalytics);\nexport default __webpack_public_path__ + \"static/media/bancoranalytics.82656346.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 SvgTwitter(_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: \"100%\",\n height: \"100%\",\n viewBox: \"0 0 22 23\",\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: \"M20.5466 3.98623C19.7088 4.40625 17.9929 4.95214 17.0466 5.07905C18.013 4.42635 19.5682 3.12956 19.9176 1.89668C19.0128 2.50103 18.013 2.94069 16.9449 3.17639C16.0936 2.1505 14.877 1.50989 13.5305 1.50989C10.9486 1.50989 8.85396 3.87442 8.85396 6.79042C8.85396 7.2044 8.89411 7.6063 8.97442 7.99309C6.46392 7.7725 4.44285 5.67237 2.13403 2.47383C1.73115 3.25647 1.50094 4.16451 1.50094 5.13147C1.50094 6.96266 2.32677 8.57931 3.58223 9.52663C2.81664 9.50095 2.09387 9.26072 1.46212 8.86789V8.93285C1.46212 11.4923 3.07495 13.6272 5.21647 14.1106C4.8243 14.2345 4.41072 14.2965 3.98376 14.2965C3.68261 14.2965 3.38815 14.2648 3.10306 14.2028C3.69867 16.2999 5.42526 17.8274 7.47308 17.8682C5.8723 19.2854 3.85393 20.13 1.66289 20.13C1.28545 20.13 0.912026 20.1058 0.546631 20.0575C2.61721 21.5532 4.96561 21.6632 7.59326 21.3952C12.5933 20.8853 18.2258 14.3826 18.2258 7.40384C18.2258 7.17418 18.2338 6.64051 18.2258 6.41539C19.1399 5.67053 19.9216 5.04536 20.5466 3.98623Z\",\n stroke: \"currentColor\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgTwitter);\nexport default __webpack_public_path__ + \"static/media/twitter.fad4cea8.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 SvgReddit(_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: \"100%\",\n height: \"100%\",\n viewBox: \"0 0 23 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: \"M11.944 1.18683L11.9412 1.19716L11.9388 1.2076L10.7011 6.67423C8.66683 6.81948 7.38918 7.43693 6.00508 8.34049C5.52861 7.98414 4.93347 7.77605 4.29635 7.77605C1.50657 7.77605 0.462039 11.3095 2.74391 12.7796C2.70551 13.0408 2.6883 13.3059 2.6883 13.5677C2.6883 17.4967 6.34353 20.5 11.5444 20.5C16.7706 20.5 20.3699 17.4938 20.3699 13.5677C20.3699 13.304 20.3505 13.0254 20.3032 12.7515C22.531 11.2698 21.4644 7.77605 18.7011 7.77605C18.0623 7.77605 17.4853 7.98483 17.0193 8.32615C15.6901 7.45395 14.4738 6.84739 12.5499 6.69044L13.5123 2.45954L16.5071 3.11557C16.704 4.11912 17.6082 4.86666 18.6706 4.86666C19.8944 4.86666 20.8957 3.88358 20.8957 2.68333C20.8957 1.4839 19.8996 0.5 18.6706 0.5C17.9455 0.5 17.3106 0.855036 16.9075 1.37164L13.0182 0.530001C12.498 0.402343 12.0579 0.767779 11.944 1.18683ZM7.75094 13.9073L7.74872 13.9073C7.05606 13.9104 6.52586 13.3705 6.52586 12.7451C6.52586 12.0991 7.05599 11.5618 7.75094 11.5618C8.42082 11.5618 8.95429 12.0916 8.95429 12.7451C8.95429 13.3734 8.425 13.9073 7.75094 13.9073ZM15.303 13.9115C14.629 13.9115 14.0997 13.3776 14.0997 12.7494C14.0997 12.0993 14.634 11.5661 15.303 11.5661C15.9949 11.5661 16.5275 12.1001 16.5281 12.7482C16.5245 13.3716 15.996 13.9115 15.303 13.9115Z\",\n stroke: \"currentColor\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgReddit);\nexport default __webpack_public_path__ + \"static/media/reddit.59fe14ee.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 SvgTelegram(_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: \"100%\",\n height: \"100%\",\n viewBox: \"0 0 22 22\",\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: \"M8.81536 14.5587C8.8284 14.3258 8.92248 14.1047 9.08131 13.9338L17.3635 5.02282C17.7378 4.62677 17.2818 4.43363 16.7849 4.79287L6.69689 12.3809C6.42448 12.5858 6.06647 12.6378 5.74701 12.519L1.71339 11.018C0.73159 10.6595 0.724544 9.85518 1.93382 9.27688L19.6498 1.13231C20.4589 0.694332 21.2398 1.36402 20.931 2.84054L17.9139 19.7913C17.7032 20.9959 17.0928 21.284 16.247 20.7276L12.4094 17.3471C11.9919 16.9794 11.3546 17.0231 10.9912 17.4444L9.44205 19.2403C9.42941 19.255 9.41689 19.2695 9.40446 19.2839C9.02945 19.7188 8.54949 19.306 8.5816 18.7326L8.81536 14.5587Z\",\n stroke: \"currentColor\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgTelegram);\nexport default __webpack_public_path__ + \"static/media/telegram.3a91ed6c.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: \"100%\",\n height: \"100%\",\n viewBox: \"0 0 22 23\",\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: \"M15.8161 21L15.4109 21.2929L15.5674 21.5094L15.8343 21.4997C18.249 21.4114 19.678 20.4392 20.4962 19.4455C20.8994 18.9559 21.1456 18.472 21.2919 18.1083C21.3651 17.9262 21.4137 17.773 21.4446 17.6626C21.4495 17.645 21.454 17.6285 21.458 17.6131L21.5 17.5645V17.3786C21.5 13.5071 21.0317 10.006 20.564 7.47386C20.3301 6.20712 20.0959 5.18113 19.9199 4.47044C19.8319 4.11506 19.7583 3.83839 19.7066 3.64976C19.6807 3.55544 19.6602 3.48311 19.6461 3.43395L19.6298 3.37772L19.6255 3.3629L19.6243 3.35887L19.6239 3.3577L19.6238 3.35733C19.6238 3.3572 19.6238 3.3571 19.1447 3.50017L19.6238 3.3571L19.5822 3.21799L19.4726 3.12277C17.9302 1.78242 16.4187 1.1255 15.2841 0.804704C14.7174 0.644474 14.2453 0.568205 13.9105 0.532077C13.7431 0.514008 13.6098 0.50596 13.5161 0.502487C13.4692 0.500751 13.4321 0.500157 13.4056 0.500029L13.3738 0.5001L13.3639 0.500239L13.3605 0.500306L13.3592 0.500335L13.3586 0.500349C13.3584 0.500355 13.3582 0.50036 13.3696 0.95268L13.3581 0.500361L13.1173 0.506489L12.972 0.698674L12.6841 1.07953L12.2724 1.62413L12.4052 1.67123C12.2971 1.65442 12.1894 1.63883 12.082 1.62442L12.082 1.62442L12.0793 1.62407C11.9799 1.61128 11.8885 1.59934 11.8041 1.58832C11.2934 1.52164 11.0391 1.48843 10.8131 1.50161C10.677 1.50955 10.5528 1.53341 10.4174 1.55942L10.4057 1.56166L10.3972 1.5633C10.2584 1.58994 10.0764 1.62489 9.79759 1.6678C9.65026 1.67208 9.52261 1.6978 9.42589 1.71728C9.42239 1.71799 9.41892 1.71869 9.4155 1.71938C9.36083 1.72503 9.3013 1.73189 9.23712 1.74013L9.8172 1.54609L9.42316 0.995627L9.2181 0.709172L9.07317 0.506704L8.82425 0.500371L8.81595 0.826602C8.81595 0.826603 8.81595 0.826606 8.81594 0.826608C8.82419 0.500369 8.82398 0.500364 8.82376 0.500358L8.8232 0.500345L8.8219 0.500315L8.8185 0.500248L8.80863 0.50011L8.77677 0.500039C8.75024 0.500168 8.71319 0.500762 8.66629 0.502501C8.57252 0.505977 8.43927 0.514033 8.27185 0.532117C7.9371 0.568274 7.46499 0.644602 6.89837 0.804947C5.76392 1.12598 4.25265 1.78335 2.71094 3.12458L2.607 3.21501L2.56404 3.34592L3.03912 3.50181C2.56404 3.34592 2.564 3.34603 2.56396 3.34616L2.56384 3.34654L2.56345 3.34774L2.56212 3.35182L2.5573 3.36673L2.53934 3.42317C2.5238 3.47247 2.50129 3.54495 2.47279 3.63943C2.41581 3.8284 2.3349 4.10544 2.23806 4.46124C2.0444 5.17274 1.78688 6.19976 1.52955 7.46767C1.0152 10.002 0.5 13.5065 0.5 17.3819V17.4395L0.513095 17.4956L1 17.3819C0.513095 17.4956 0.513167 17.4959 0.513242 17.4962L0.513409 17.4969L0.513802 17.4986L0.514832 17.5028L0.517896 17.5151C0.520396 17.5249 0.52383 17.538 0.52829 17.5541C0.537207 17.5863 0.550248 17.6307 0.568168 17.6856C0.603979 17.7954 0.659462 17.9477 0.740774 18.1287C0.903129 18.4902 1.17046 18.9708 1.59343 19.4568C2.45013 20.441 3.91519 21.4107 6.32858 21.4981L6.59829 21.5078L6.75446 21.2877L6.34667 20.9984L6.75447 21.2877L6.7545 21.2876L6.75462 21.2875L6.75505 21.2869L6.75673 21.2845L6.76329 21.2752L6.78862 21.2395L6.88349 21.1053C6.96461 20.9904 7.07917 20.8278 7.21305 20.6368C7.48061 20.2552 7.82616 19.7592 8.13627 19.304L8.42414 18.8815C8.73046 18.9717 9.04982 19.0552 9.38215 19.1296L9.38548 19.1303C9.62256 19.1817 9.79668 19.2226 9.95451 19.2598C10.0653 19.2858 10.168 19.31 10.2789 19.3346C10.521 19.3882 10.7391 19.4281 10.9808 19.439C11.4545 19.4603 11.971 19.366 12.9401 19.1556C13.218 19.1007 13.4973 19.0344 13.7781 18.9565L14.0472 19.3524C14.3575 19.8089 14.6985 20.2941 14.9613 20.6644C15.0929 20.8497 15.2051 21.0067 15.2845 21.1174L15.3774 21.2465L15.4022 21.2809L15.4086 21.2898L15.4103 21.2921L15.4107 21.2927L15.4108 21.2929L15.4108 21.2929L15.8161 21ZM9.83264 12.5168L9.83259 12.5168V12.5235C9.83259 13.8177 9.02699 14.6668 8.23699 14.6684C7.46482 14.6683 6.64162 13.8151 6.64162 12.5252C6.64162 11.2302 7.44646 10.382 8.2371 10.382C9.03157 10.382 9.84998 11.2362 9.83264 12.5168ZM12.1658 12.5252C12.1658 11.2302 12.9707 10.3819 13.7613 10.3819C14.5519 10.3819 15.3568 11.2302 15.3568 12.5252C15.3568 13.8201 14.5519 14.6684 13.7613 14.6684C12.9891 14.6684 12.1658 13.8152 12.1658 12.5252Z\",\n stroke: \"currentColor\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDiscord);\nexport default __webpack_public_path__ + \"static/media/discord.fa36c362.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 SvgDocument(_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: \"100%\",\n height: \"100%\",\n viewBox: \"0 0 22 22\",\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: \"M15.4497 1L15.4497 0.5H14.9497H2.23778C1.30968 0.5 0.5 1.20514 0.5 2.15307V19.8469C0.5 20.7949 1.30968 21.5 2.23778 21.5H19.7622C20.6903 21.5 21.5 20.7949 21.5 19.8469L21.5 7.05555V6.55555H21H16.1875C15.7489 6.55555 15.4497 6.22774 15.4497 5.90248L15.4497 1ZM21 6.01813H21.5V5.51813V5.22505C21.5 4.78527 21.3153 4.36721 20.9944 4.06107L18.1584 0.996697L18.1458 0.983095L18.1323 0.970461C17.8029 0.66364 17.3647 0.5 16.9147 0.5H16.6001H16.1001L16.1001 1L16.1001 5.51812L16.1001 6.01813H16.6001H21ZM15.6189 16.0725C15.6189 16.0799 15.6164 16.0951 15.5963 16.1139C15.5757 16.1331 15.5424 16.1491 15.5 16.1491H5.5C5.45761 16.1491 5.42432 16.1331 5.40372 16.1139C5.3836 16.0951 5.38111 16.0799 5.38111 16.0725V15.6882C5.38111 15.6808 5.3836 15.6656 5.40372 15.6469C5.42432 15.6277 5.45761 15.6117 5.5 15.6117H15.5C15.5424 15.6117 15.5757 15.6277 15.5963 15.6469C15.6164 15.6656 15.6189 15.6808 15.6189 15.6882V16.0725ZM15.6189 12.9977C15.6189 13.005 15.6164 13.0203 15.5963 13.039C15.5757 13.0582 15.5424 13.0742 15.5 13.0742H5.5C5.45761 13.0742 5.42432 13.0582 5.40372 13.039C5.3836 13.0203 5.38111 13.005 5.38111 12.9977V12.6133C5.38111 12.606 5.3836 12.5908 5.40372 12.572C5.42432 12.5528 5.45761 12.5368 5.5 12.5368H15.5C15.5424 12.5368 15.5757 12.5528 15.5963 12.572C15.6164 12.5908 15.6189 12.606 15.6189 12.6133V12.9977ZM15.6189 9.53848V9.92284C15.6189 9.93019 15.6164 9.94542 15.5963 9.96416C15.5757 9.98335 15.5424 9.99937 15.5 9.99937H5.5C5.45761 9.99937 5.42432 9.98335 5.40372 9.96416C5.3836 9.94542 5.38111 9.93018 5.38111 9.92284V9.53848C5.38111 9.53113 5.3836 9.5159 5.40372 9.49715C5.42432 9.47796 5.45761 9.46194 5.5 9.46194H15.5C15.5424 9.46194 15.5757 9.47796 15.5963 9.49715C15.6164 9.5159 15.6189 9.53113 15.6189 9.53848Z\",\n stroke: \"currentColor\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDocument);\nexport default __webpack_public_path__ + \"static/media/document.2d432ec5.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 SvgGithub(_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: \"100%\",\n height: \"100%\",\n viewBox: \"0 0 22 22\",\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: \"M7.67792 21.4555L7.71171 21.4671L7.7468 21.4737C8.11409 21.5429 8.45908 21.4725 8.71004 21.2373C8.94395 21.0181 9.02187 20.724 9.02187 20.4882C9.02187 20.3746 9.01996 20.172 9.01742 19.9023C9.0145 19.5926 9.01075 19.1945 9.0081 18.7416L9.00448 18.1217L8.3994 18.2565C7.14446 18.536 6.46695 18.2175 6.10473 17.909C5.91285 17.7456 5.78799 17.5665 5.71162 17.4291C5.67366 17.3607 5.64856 17.3042 5.63381 17.2676C5.62646 17.2494 5.62177 17.2363 5.61941 17.2294L5.61792 17.2251L5.61788 17.2249L5.61338 17.2096L5.6062 17.1909C5.59054 17.1501 5.57464 17.1101 5.55852 17.071C6.03333 17.6217 6.60389 17.8625 7.16002 17.9135C7.83095 17.9749 8.42959 17.7567 8.74931 17.6094L8.99825 17.4946L9.03539 17.223C9.11315 16.6545 9.32754 16.3195 9.50895 16.1567L10.334 15.4163L9.2329 15.2879C8.15333 15.1621 7.13753 14.8927 6.39146 14.2488C5.66736 13.6238 5.12 12.5766 5.12 10.7175C5.12 9.72424 5.46187 8.9268 6.02241 8.29874L6.22811 8.06826L6.11404 7.78117C6.04639 7.61092 5.77909 6.83478 6.1089 5.7373C6.16274 5.74338 6.22637 5.75338 6.30007 5.7693C6.66969 5.84914 7.29694 6.07888 8.21166 6.71416L8.40617 6.84926L8.63393 6.78434C9.3839 6.57057 10.1924 6.46258 11.0006 6.45809C11.8076 6.46258 12.6167 6.57057 13.3674 6.78437L13.5952 6.84925L13.7897 6.71407C14.7039 6.07877 15.3303 5.84907 15.6993 5.76927C15.7727 5.7534 15.836 5.74342 15.8897 5.73734C16.2209 6.83488 15.9536 7.611 15.886 7.78117L15.7718 8.06857L15.9779 8.2991C16.5388 8.92638 16.8788 9.72344 16.8788 10.7175C16.8788 12.5816 16.3304 13.6274 15.6056 14.2496C14.8583 14.891 13.8404 15.1566 12.7565 15.2801L11.6388 15.4074L12.4823 16.1518C12.709 16.3518 12.9919 16.8261 12.9919 17.6756C12.9919 18.3595 12.9888 18.9774 12.9856 19.4666C12.9846 19.6299 12.9836 19.7793 12.9826 19.9123C12.9808 20.176 12.9794 20.375 12.9794 20.4882C12.9794 20.7218 13.0547 21.019 13.2912 21.2403C13.5455 21.4783 13.8948 21.5447 14.2641 21.4715L14.297 21.465L14.3287 21.4541C18.5017 20.0263 21.5 15.9957 21.5 11.2539C21.5 5.32594 16.8103 0.5 10.9994 0.5C5.18961 0.5 0.5 5.32598 0.5 11.2539C0.5 15.997 3.5009 20.0304 7.67792 21.4555Z\",\n stroke: \"currentColor\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgGithub);\nexport default __webpack_public_path__ + \"static/media/github.d4f31824.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4, _path5, _path6, _path7;\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 SvgBancorv3(_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: 106,\n height: 26,\n viewBox: \"0 0 106 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, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M92.6416 20.5654H98.4181C99.7137 20.5654 100.676 20.2605 101.306 19.6506C101.936 19.0407 102.251 18.2694 102.251 17.3366C102.251 16.4038 101.936 15.6235 101.306 14.9957C100.676 14.3679 99.7137 14.054 98.4181 14.054H92.6416V11.9552H97.7702C98.796 11.9552 99.5877 11.6772 100.146 11.1211C100.721 10.5471 101.009 9.82956 101.009 8.96854C101.009 8.5739 100.937 8.1972 100.793 7.83845C100.65 7.46175 100.434 7.13886 100.146 6.8698C99.8757 6.60073 99.5337 6.38547 99.1199 6.22403C98.7239 6.06259 98.2741 5.98187 97.7702 5.98187H92.6416V3.72168H97.8242C98.742 3.72168 99.5518 3.85621 100.254 4.12528C100.973 4.39435 101.567 4.75311 102.035 5.20156C102.503 5.65002 102.854 6.17918 103.088 6.78907C103.34 7.39897 103.466 8.03576 103.466 8.69947C103.466 9.66812 103.286 10.4753 102.926 11.1211C102.584 11.7489 102.098 12.2691 101.468 12.6817C102.422 13.0405 103.205 13.6055 103.817 14.3768C104.428 15.1302 104.734 16.1527 104.734 17.4442C104.734 18.3053 104.572 19.0766 104.248 19.7582C103.925 20.422 103.475 20.987 102.899 21.4534C102.323 21.9019 101.63 22.2426 100.82 22.4758C100.011 22.7091 99.1109 22.8256 98.1211 22.8256H92.6416V20.5654Z\",\n fill: \"#10BBD5\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 3.62793H6.40991C7.32947 3.62793 8.14084 3.76268 8.84404 4.03215C9.56526 4.30163 10.1603 4.66095 10.6291 5.11008C11.0979 5.55922 11.4495 6.08921 11.6839 6.70003C11.9363 7.31086 12.0625 7.94863 12.0625 8.61335C12.0625 9.58349 11.8822 10.3919 11.5216 11.0387C11.179 11.6675 10.6922 12.1885 10.0611 12.6017C11.0167 12.961 11.8011 13.5269 12.4141 14.2994C13.0272 15.054 13.3337 16.078 13.3337 17.3715C13.3337 18.2339 13.1714 19.0063 12.8469 19.6891C12.5223 20.3538 12.0715 20.9197 11.4945 21.3868C10.9176 21.8359 10.2234 22.1773 9.41201 22.4108C8.60062 22.6444 7.69909 22.7612 6.7074 22.7612H0V3.62793ZM6.35581 11.8741C7.38356 11.8741 8.17691 11.5956 8.73586 11.0387C9.31284 10.4638 9.60133 9.74519 9.60133 8.88283C9.60133 8.4876 9.5292 8.11031 9.38496 7.75102C9.24071 7.37373 9.02435 7.05036 8.73586 6.78087C8.4654 6.51139 8.12281 6.2958 7.70811 6.13412C7.31144 5.97243 6.86067 5.89158 6.35581 5.89158H2.46119V11.8741H6.35581ZM7.00492 20.4975C8.30312 20.4975 9.26777 20.192 9.89884 19.5813C10.5299 18.9705 10.8454 18.1979 10.8454 17.2637C10.8454 16.3295 10.5299 15.548 9.89884 14.9192C9.26777 14.2905 8.30312 13.9761 7.00492 13.9761H2.46119V20.4975H7.00492Z\",\n fill: \"white\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M27.4472 21.4137C26.8702 21.9347 26.212 22.3299 25.4728 22.5994C24.7515 22.8509 23.9762 22.9767 23.1468 22.9767C22.1551 22.9767 21.2355 22.7971 20.3881 22.4378C19.5407 22.0785 18.8104 21.5934 18.1974 20.9826C17.5843 20.3537 17.1065 19.6171 16.7639 18.7727C16.4214 17.9105 16.25 16.9941 16.25 16.0241C16.25 15.0539 16.4214 14.1467 16.7639 13.3023C17.1065 12.4399 17.5843 11.7034 18.1974 11.0925C18.8104 10.4637 19.5407 9.96968 20.3881 9.61037C21.2355 9.25105 22.1551 9.07141 23.1468 9.07141C23.9762 9.07141 24.7515 9.20614 25.4728 9.47562C26.212 9.72714 26.8702 10.1134 27.4472 10.6344V9.28698H29.7731V22.7611H27.4472V21.4137ZM23.2008 20.7939C24.1745 20.7939 25.0219 20.5873 25.7431 20.1741C26.4824 19.7609 27.0505 19.2398 27.4472 18.6111V13.437C27.0505 12.8082 26.4824 12.2872 25.7431 11.874C25.0219 11.4608 24.1745 11.2542 23.2008 11.2542C22.5337 11.2542 21.9208 11.38 21.3618 11.6315C20.8209 11.865 20.3431 12.1974 19.9283 12.6286C19.5316 13.0597 19.2162 13.5718 18.9817 14.1646C18.7653 14.7395 18.6572 15.3593 18.6572 16.0241C18.6572 16.6888 18.7653 17.3176 18.9817 17.9105C19.2162 18.4854 19.5316 18.9884 19.9283 19.4195C20.3431 19.8507 20.8209 20.192 21.3618 20.4435C21.9208 20.6771 22.5337 20.7939 23.2008 20.7939Z\",\n fill: \"white\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M43.8408 14.7594C43.8408 12.8089 42.2545 11.2277 40.2977 11.2277C38.341 11.2277 36.7548 12.8089 36.7548 14.7594V22.7612H34.4287V14.8413C34.4287 11.6102 37.0564 8.99097 40.2977 8.99097C43.5391 8.99097 46.1668 11.6102 46.1668 14.8413V22.7612H43.8408V14.7594Z\",\n fill: \"white\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M56.8488 22.9767C55.8391 22.9767 54.9104 22.7971 54.063 22.4378C53.2156 22.0785 52.4853 21.5843 51.8724 20.9557C51.2593 20.3268 50.7725 19.5902 50.4119 18.7458C50.0693 17.9014 49.8979 16.9941 49.8979 16.0241C49.8979 15.0539 50.0693 14.1467 50.4119 13.3023C50.7725 12.4579 51.2593 11.7213 51.8724 11.0925C52.4853 10.4637 53.2156 9.96968 54.063 9.61037C54.9104 9.25105 55.8391 9.07141 56.8488 9.07141C57.9847 9.07141 58.9764 9.278 59.8239 9.69121C60.6893 10.0865 61.4195 10.5895 62.0146 11.2003L60.5271 12.8172C60.0943 12.386 59.5714 12.0177 58.9585 11.7123C58.3634 11.4069 57.6602 11.2542 56.8488 11.2542C56.1817 11.2542 55.5686 11.38 55.0096 11.6315C54.4687 11.865 53.991 12.1974 53.5763 12.6286C53.1796 13.0597 52.864 13.5718 52.6297 14.1646C52.4133 14.7395 52.305 15.3593 52.305 16.0241C52.305 16.6888 52.4133 17.3176 52.6297 17.9105C52.864 18.4854 53.1796 18.9884 53.5763 19.4195C53.991 19.8507 54.4687 20.192 55.0096 20.4435C55.5686 20.6771 56.1817 20.7939 56.8488 20.7939C57.6602 20.7939 58.3634 20.6412 58.9585 20.3357C59.5714 20.0304 60.0943 19.662 60.5271 19.2309L62.0146 20.8477C61.4195 21.4586 60.6893 21.9706 59.8239 22.3838C58.9764 22.7791 57.9847 22.9767 56.8488 22.9767Z\",\n fill: \"white\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M71.259 22.9767C70.2311 22.9767 69.2846 22.7971 68.4191 22.4378C67.5717 22.0785 66.8325 21.5843 66.2013 20.9557C65.5884 20.3268 65.1014 19.5902 64.7408 18.7458C64.3983 17.9014 64.2271 16.9941 64.2271 16.0241C64.2271 15.0539 64.3983 14.1467 64.7408 13.3023C65.1014 12.4579 65.5884 11.7213 66.2013 11.0925C66.8325 10.4637 67.5717 9.96968 68.4191 9.61037C69.2846 9.25105 70.2311 9.07141 71.259 9.07141C72.2686 9.07141 73.1972 9.25105 74.0447 9.61037C74.9102 9.96968 75.6494 10.4637 76.2625 11.0925C76.8935 11.7213 77.3803 12.4579 77.7229 13.3023C78.0835 14.1467 78.2638 15.0539 78.2638 16.0241C78.2638 16.9941 78.0835 17.9014 77.7229 18.7458C77.3803 19.5902 76.8935 20.3268 76.2625 20.9557C75.6494 21.5843 74.9102 22.0785 74.0447 22.4378C73.1972 22.7971 72.2686 22.9767 71.259 22.9767ZM71.259 20.7939C71.9441 20.7939 72.5662 20.6771 73.1251 20.4435C73.7021 20.192 74.1889 19.8507 74.5856 19.4195C75.0004 18.9884 75.3158 18.4854 75.5322 17.9105C75.7486 17.3176 75.8567 16.6888 75.8567 16.0241C75.8567 15.3593 75.7486 14.7395 75.5322 14.1646C75.3158 13.5718 75.0004 13.0597 74.5856 12.6286C74.1889 12.1974 73.7021 11.865 73.1251 11.6315C72.5662 11.38 71.9441 11.2542 71.259 11.2542C70.5737 11.2542 69.9427 11.38 69.3657 11.6315C68.8067 11.865 68.32 12.1974 67.9052 12.6286C67.5085 13.0597 67.1931 13.5718 66.9586 14.1646C66.7422 14.7395 66.6341 15.3593 66.6341 16.0241C66.6341 16.6888 66.7422 17.3176 66.9586 17.9105C67.1931 18.4854 67.5085 18.9884 67.9052 19.4195C68.32 19.8507 68.8067 20.192 69.3657 20.4435C69.9427 20.6771 70.5737 20.7939 71.259 20.7939Z\",\n fill: \"white\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M82.0112 9.28708H84.3372V10.877C84.806 10.3021 85.3559 9.87096 85.9871 9.58351C86.6181 9.29607 87.3123 9.15234 88.0696 9.15234C88.3941 9.15234 88.7097 9.17928 89.0162 9.23319V11.6316C88.6375 11.5238 88.2047 11.4699 87.7179 11.4699C86.9787 11.4699 86.3025 11.6495 85.6895 12.0089C85.0945 12.3682 84.6438 12.8981 84.3372 13.5988V22.7612H82.0112V9.28708Z\",\n fill: \"white\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgBancorv3);\nexport default __webpack_public_path__ + \"static/media/bancorv3.dc0e5191.svg\";\nexport { ForwardRef as ReactComponent };","import { SecondarySubMenuItem } from 'elements/sidebar/menuSecondary/MenuSecondary';\n\nexport const MenuSecondaryItemSub = ({\n label,\n icon,\n to,\n}: SecondarySubMenuItem) => {\n return (\n \n
{icon}
\n {label}\n \n );\n};\n","import { ReactComponent as IconCommunity } from 'assets/icons/community.svg';\nimport { ReactComponent as IconDeveloper } from 'assets/icons/developers.svg';\nimport { ReactComponent as IconAnalytics } from 'assets/icons/bancoranalytics.svg';\nimport { ReactComponent as IconTwitter } from 'assets/icons/twitter.svg';\nimport { ReactComponent as IconReddit } from 'assets/icons/reddit.svg';\nimport { ReactComponent as IconTelegram } from 'assets/icons/telegram.svg';\nimport { ReactComponent as IconDiscord } from 'assets/icons/discord.svg';\nimport { ReactComponent as IconDocument } from 'assets/icons/document.svg';\nimport { ReactComponent as IconGithub } from 'assets/icons/github.svg';\n\nimport { Popover } from '@headlessui/react';\nimport { MenuSecondaryItem } from 'elements/sidebar/menuSecondary/MenuSecondaryItem';\nimport { MenuSecondaryItemSub } from 'elements/sidebar/menuSecondary/MenuSecondaryItemSub';\nimport { useState } from 'react';\nimport { ModalFullscreen } from 'components/modalFullscreen/ModalFullscreen';\nimport { SettingsMenu } from 'elements/settings/SettingsMenu';\n\nexport interface SecondarySubMenuItem {\n label: string;\n to: string;\n icon: JSX.Element;\n}\n\nexport interface SecondaryMenuItem {\n label: string;\n to?: string;\n icon: JSX.Element;\n subMenu?: SecondarySubMenuItem[];\n}\n\nconst menu: SecondaryMenuItem[] = [\n {\n label: 'Analytics',\n to: 'https://duneanalytics.com/Bancor/bancor_1',\n icon: ,\n },\n {\n label: 'Community',\n icon: ,\n subMenu: [\n {\n label: 'Twitter',\n to: 'https://twitter.com/Bancor',\n icon: ,\n },\n {\n label: 'Reddit',\n to: 'https://www.reddit.com/r/Bancor/',\n icon: ,\n },\n {\n label: 'Telegram',\n to: 'https://t.me/bancor',\n icon: ,\n },\n {\n label: 'Discord',\n to: 'https://discord.gg/CAm3Ncyrxk',\n icon: ,\n },\n ],\n },\n {\n label: 'Developers',\n icon: ,\n subMenu: [\n {\n label: 'Docs',\n to: 'https://docs.bancor.network/',\n icon: ,\n },\n {\n label: 'GitHub',\n to: 'https://github.com/bancorprotocol/',\n icon: ,\n },\n {\n label: 'Telegram',\n to: 'https://t.me/BancorDevelopers',\n icon: ,\n },\n ],\n },\n];\n\ninterface MenuSecondaryProps {\n isMinimized: boolean;\n}\n\nexport const MenuSecondary = ({ isMinimized }: MenuSecondaryProps) => {\n const [showModal, setShowModal] = useState(false);\n const [indexMobile, setIndexMobile] = useState(0);\n const [indexDesktop, setIndexDesktop] = useState(null);\n\n const openMobileMenu = (index: number) => {\n setIndexMobile(index);\n setShowModal(true);\n };\n\n let timeout: NodeJS.Timeout;\n\n const openPopover = (index: number) => {\n clearInterval(timeout);\n setIndexDesktop(index);\n };\n\n const closePopover = (duration: number) => {\n timeout = setTimeout(() => setIndexDesktop(null), duration);\n };\n\n return (\n <>\n
\n \n\n \n\n \n
\n {menu[indexMobile].subMenu?.map((subItem, index) => {\n return ;\n })}\n
\n \n \n );\n};\n","export const SidebarFooter = ({ isMinimized }: { isMinimized: boolean }) => {\n return (\n \n \n © Bancor 2021\n \n \n );\n};\n","import { MenuPrimary } from 'elements/sidebar/menuPrimary/MenuPrimary';\nimport { SidebarHeader } from 'elements/sidebar/SidebarHeader';\nimport { MenuSecondary } from 'elements/sidebar/menuSecondary/MenuSecondary';\nimport { SidebarFooter } from 'elements/sidebar/SidebarFooter';\n\ninterface SidebarProps {\n isMinimized: boolean;\n setIsMinimized: Function;\n setIsSidebarOpen?: Function;\n}\n\nexport const Sidebar = ({\n isMinimized,\n setIsMinimized,\n setIsSidebarOpen,\n}: SidebarProps) => {\n return (\n \n
\n
\n
\n \n\n \n
\n
\n \n \n
\n
\n
\n \n );\n};\n","import { Fragment } from 'react';\nimport { Dialog, Transition } from '@headlessui/react';\n\ninterface SlideoverProps {\n isOpen: boolean;\n setIsOpen: Function;\n children: JSX.Element;\n}\n\nexport const Slideover = ({ children, setIsOpen, isOpen }: SlideoverProps) => {\n return (\n \n setIsOpen(false)}\n >\n
\n \n \n \n\n
\n \n {children}\n \n
\n
\n \n
\n );\n};\n","import { combineLatest } from 'rxjs';\nimport { map, shareReplay } from 'rxjs/operators';\nimport { apiData$ } from 'services/observables/pools';\nimport BigNumber from 'bignumber.js';\nimport numbro from 'numbro';\n\nexport interface Statistic {\n label: string;\n value: string;\n change24h?: number;\n}\n\nexport const statistics$ = combineLatest([apiData$]).pipe(\n map(([apiData]) => {\n const averageFormat = {\n average: true,\n mantissa: 3,\n optionalMantissa: true,\n spaceSeparated: true,\n lowPrecision: false,\n };\n\n const bnt24hChange = new BigNumber(apiData.bnt_price.usd!)\n .div(apiData.bnt_price_24h_ago.usd!)\n .times(100)\n .minus(100)\n .toNumber();\n\n const liquidity24hChange = new BigNumber(apiData.total_liquidity.usd!)\n .div(apiData.total_liquidity_24h_ago.usd!)\n .times(100)\n .minus(100)\n .toNumber();\n\n const volume24hChange = new BigNumber(apiData.total_volume_24h.usd!)\n .div(apiData.total_volume_24h_ago.usd!)\n .times(100)\n .minus(100)\n .toNumber();\n\n const bntAddress = '0x1F573D6Fb3F13d689FF844B4cE37794d79a7FF1C';\n const bntSupply: string = apiData.bnt_supply;\n const totalBntStaked: number = apiData.pools.reduce((acc, item) => {\n const bntReserve = item.reserves.find(\n (reserve) => reserve.address.toLowerCase() === bntAddress.toLowerCase()\n );\n if (!bntReserve) return acc;\n return Number(bntReserve.balance) + acc;\n }, 0);\n\n const stakedBntPercent =\n (totalBntStaked / Number(parseFloat(bntSupply).toExponential(18))) * 100;\n\n const statistics: Statistic[] = [\n {\n label: 'BNT Price',\n value: '$' + numbro(apiData.bnt_price.usd).format({ mantissa: 2 }),\n change24h: bnt24hChange,\n },\n {\n label: 'Total Liquidity',\n value: '$' + numbro(apiData.total_liquidity.usd).format(averageFormat),\n change24h: liquidity24hChange,\n },\n {\n label: 'Volume (24h)',\n value: '$' + numbro(apiData.total_volume_24h.usd).format(averageFormat),\n change24h: volume24hChange,\n },\n {\n label: 'Total BNT Staked',\n value: numbro(stakedBntPercent).format({ mantissa: 2 }) + '%',\n },\n ];\n return statistics;\n }),\n shareReplay(1)\n);\n","import { combineLatest } from 'rxjs';\nimport { switchMapIgnoreThrow } from 'services/observables/customOperators';\nimport { shareReplay } from 'rxjs/operators';\nimport { apiData$ } from 'services/observables/pools';\n\nexport const bntPrice$ = combineLatest([apiData$]).pipe(\n switchMapIgnoreThrow(async ([apiData]) => {\n return apiData.bnt_price.usd;\n }),\n shareReplay(1)\n);\n","import { BigNumber } from 'bignumber.js';\nimport { combineLatest } from 'rxjs';\nimport { shareReplay } from 'rxjs/operators';\nimport { fetchLockedAvailableBalances } from 'services/web3/lockedbnt/lockedbnt';\nimport { fetchProtectedPositions } from 'services/web3/protection/positions';\nimport {\n fetchPendingRewards,\n fetchTotalClaimedRewards,\n} from 'services/web3/protection/rewards';\nimport { switchMapIgnoreThrow } from './customOperators';\nimport { fifteenSeconds$ } from './timers';\nimport { pools$ } from './tokens';\nimport {\n setLoadingPositions,\n setLoadingRewards,\n setLoadingLockedBnt,\n user$,\n} from './user';\n\nexport const protectedPositions$ = combineLatest([pools$, user$]).pipe(\n switchMapIgnoreThrow(async ([pools, user]) => {\n if (user) {\n const positions = await fetchProtectedPositions(pools, user);\n setLoadingPositions(false);\n return positions;\n }\n\n setLoadingPositions(false);\n\n return [];\n }),\n shareReplay(1)\n);\n\nexport interface Rewards {\n pendingRewards: string;\n totalRewards: string;\n}\n\nexport const rewards$ = combineLatest([user$, fifteenSeconds$]).pipe(\n switchMapIgnoreThrow(async ([user, _]) => {\n if (user) {\n const pendingRewards = await fetchPendingRewards(user);\n const claimedRewards = await fetchTotalClaimedRewards(user);\n\n const totalRewards = new BigNumber(pendingRewards)\n .plus(claimedRewards)\n .toString();\n\n setLoadingRewards(false);\n\n return {\n pendingRewards,\n totalRewards,\n };\n }\n\n setLoadingRewards(false);\n }),\n shareReplay(1)\n);\n\nexport const lockedAvailableBnt$ = combineLatest([user$]).pipe(\n switchMapIgnoreThrow(async ([user]) => {\n if (user) {\n setLoadingRewards(true);\n setLoadingPositions(true);\n setLoadingLockedBnt(true);\n const lockedAvailableBalances = await fetchLockedAvailableBalances(user);\n setLoadingLockedBnt(false);\n return lockedAvailableBalances;\n }\n setLoadingLockedBnt(false);\n }),\n shareReplay(1)\n);\n","import { SwapSwitch } from 'elements/swapSwitch/SwapSwitch';\nimport { ReactComponent as IconTimes } from 'assets/icons/times.svg';\nimport { useHistory } from 'react-router-dom';\n\ninterface Props {\n title: string;\n subtitle?: string;\n goBackRoute?: string;\n children: JSX.Element | JSX.Element[];\n}\nexport const Widget = ({\n title,\n subtitle,\n children,\n goBackRoute = '/pools',\n}: Props) => {\n const history = useHistory();\n\n const goBack = () => {\n history.push(goBackRoute);\n };\n\n return (\n
\n
\n \n
\n

{title}

\n {subtitle &&

{subtitle}

}\n
\n
\n \n
\n
\n
\n {children}\n
\n );\n};\n","import { prettifyNumber } from 'utils/helperFunctions';\nimport { useAppSelector } from 'redux/index';\nimport BigNumber from 'bignumber.js';\nimport { Tooltip } from 'components/tooltip/Tooltip';\n\ninterface Props {\n amount: string | null;\n}\n\nexport const RewardsClaimAmount = ({ amount }: Props) => {\n const bntPrice = useAppSelector(\n (state) => state.bancor.bntPrice\n );\n const usdPrice = () => new BigNumber(amount ?? 0).times(bntPrice ?? 0);\n\n return (\n
\n
\n
\n

\n Claimable Rewards\n

\n \n
\n
\n\n
\n {amount && bntPrice ? (\n
\n
{prettifyNumber(amount)} BNT
\n
~{prettifyNumber(usdPrice(), true)}
\n
\n ) : (\n
--
\n )}\n
\n
\n );\n};\n","import { ReactComponent as IconInfo } from 'assets/icons/info.svg';\n\nexport const RewardsClaimInfo = () => {\n return (\n
\n
\n \n Important!\n
\n

\n Withdrawing rewards will reset your rewards multiplier for all active\n positions back to x1 and reduce the future rewards you are able to\n receive. In order to claim and stake your rewards without resetting your\n current multipliers, click the “Stake my rewards” button below.\n

\n
\n );\n};\n","import { useEffect, useState } from 'react';\nimport { useWeb3React } from '@web3-react/core';\nimport { fetchPendingRewards } from 'services/web3/protection/rewards';\nimport { useInterval } from 'hooks/useInterval';\nimport { useAppSelector } from 'redux/index';\nimport { Pool, Token } from 'services/observables/tokens';\nimport { getTokenById } from 'redux/bancor/bancor';\nimport { getProtectedPools } from 'redux/bancor/pool';\nimport { useHistory } from 'react-router-dom';\nimport BigNumber from 'bignumber.js';\nimport { useQuery } from 'hooks/useQuery';\nimport { ProtectedPositionGrouped } from 'services/web3/protection/positions';\nimport { getPositionById } from 'redux/liquidity/liquidity';\n\ninterface Props {\n pool?: Pool;\n}\n\nexport const useRewardsClaim = ({ pool }: Props) => {\n const [claimableRewards, setClaimableRewards] = useState(null);\n const [errorBalance, setErrorBalance] = useState('');\n const [bntAmount, setBntAmount] = useState('');\n const [bntAmountUsd, setBntAmountUsd] = useState('');\n const pools = useAppSelector(getProtectedPools);\n const history = useHistory();\n const query = useQuery();\n const posGroupId = query.get('posGroupId');\n\n const bnt = useAppSelector(\n getTokenById(pool ? pool.reserves[1].address : '')\n );\n\n const position = useAppSelector(\n getPositionById(posGroupId ?? '')\n );\n\n const { account } = useWeb3React();\n\n const fetchClaimableRewards = async (account: string) => {\n if (posGroupId && position) {\n setClaimableRewards(position.rewardsAmount);\n } else {\n const pendingRewards = await fetchPendingRewards(account);\n setClaimableRewards(pendingRewards);\n }\n };\n\n const onSelect = (pool: Pool) => {\n if (posGroupId) {\n history.push(\n `/portfolio/rewards/stake/${pool.pool_dlt_id}?posGroupId=${posGroupId}`\n );\n } else {\n history.push(`/portfolio/rewards/stake/${pool.pool_dlt_id}`);\n }\n };\n\n useInterval(\n async () => {\n if (account) {\n await fetchClaimableRewards(account);\n }\n },\n account ? 15000 : null\n );\n\n useEffect(() => {\n if (!account) {\n setClaimableRewards(null);\n }\n }, [account]);\n\n useEffect(() => {\n if (new BigNumber(claimableRewards ?? 0).lt(bntAmount)) {\n setErrorBalance('Insufficient Balance');\n } else {\n setErrorBalance('');\n }\n }, [bntAmount, claimableRewards]);\n\n return {\n claimableRewards,\n account,\n bntAmount,\n setBntAmount,\n bntAmountUsd,\n setBntAmountUsd,\n bnt,\n errorBalance,\n pools,\n onSelect,\n position,\n };\n};\n","import { claimRewards } from 'services/web3/protection/rewards';\nimport { StakeRewardsBtn } from 'elements/earn/portfolio/liquidityProtection/rewards/StakeRewardsBtn';\nimport {\n claimRewardsFailedNotification,\n claimRewardsNotification,\n} from 'services/notifications/notifications';\nimport { useDispatch } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\n\ninterface Props {\n claimableRewards: string | null;\n account?: string | null;\n}\n\nexport const RewardsClaimCTA = ({ claimableRewards, account }: Props) => {\n const dispatch = useDispatch();\n const history = useHistory();\n\n const handleClaim = async () => {\n if (account && claimableRewards) {\n try {\n const txHash = await claimRewards();\n claimRewardsNotification(dispatch, txHash, claimableRewards);\n history.push('/portfolio');\n } catch (e: any) {\n console.error('Claiming Rewards failed with msg: ', e.message);\n claimRewardsFailedNotification(dispatch);\n }\n }\n };\n\n return (\n <>\n \n handleClaim()}\n className=\"btn-outline-primary rounded w-full mt-10\"\n disabled={!account}\n >\n Withdraw Rewards\n \n \n );\n};\n","import { Widget } from 'components/widgets/Widget';\nimport { RewardsClaimAmount } from 'elements/earn/portfolio/liquidityProtection/rewards/claim/RewardsClaimAmount';\nimport { RewardsClaimInfo } from 'elements/earn/portfolio/liquidityProtection/rewards/claim/RewardsClaimInfo';\nimport { useRewardsClaim } from 'elements/earn/portfolio/liquidityProtection/rewards/claim/useRewardsClaim';\nimport { RewardsClaimCTA } from 'elements/earn/portfolio/liquidityProtection/rewards/claim/RewardsClaimCTA';\n\nexport const RewardsClaim = () => {\n const { claimableRewards, account } = useRewardsClaim({});\n\n return (\n \n
\n \n \n \n
\n
\n );\n};\n","import { Widget } from 'components/widgets/Widget';\n\nexport const WidgetLoading = ({ title = 'loading' }) => {\n return (\n \n
\n
\n
\n
\n
\n
\n );\n};\n","import { Pool } from 'services/observables/tokens';\nimport { useState } from 'react';\nimport { SelectPoolModal } from 'components/selectPoolModal/SelectPoolModal';\nimport { Image } from '../image/Image';\nimport { ReactComponent as IconChevronDown } from 'assets/icons/chevronDown.svg';\n\ninterface SelectPoolProps {\n pool: Pool;\n pools: Pool[];\n label: string;\n onSelect: Function;\n}\n\nexport const SelectPool = ({\n pool,\n pools,\n label,\n onSelect,\n}: SelectPoolProps) => {\n const [isModalOpen, setIsModalOpen] = useState(false);\n\n return (\n
\n {label}\n setIsModalOpen(true)}\n className=\"flex items-center border border-blue-4 dark:border-grey-3 rounded-[16px] px-20 py-6\"\n >\n \n \n {pool.name}\n \n \n \n
\n );\n};\n","import { Pool } from 'services/observables/tokens';\nimport {\n stakePoolLevelRewards,\n stakeRewards,\n} from 'services/web3/protection/rewards';\nimport { useCallback, useState } from 'react';\nimport {\n rejectNotification,\n stakeRewardsFailedNotification,\n stakeRewardsNotification,\n} from 'services/notifications/notifications';\nimport { useDispatch } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport { prettifyNumber } from 'utils/helperFunctions';\nimport {\n fetchProtectedPositions,\n ProtectedPositionGrouped,\n} from 'services/web3/protection/positions';\nimport {\n setLoadingPositions,\n setProtectedPositions,\n} from 'redux/liquidity/liquidity';\nimport { useAppSelector } from 'redux/index';\n\ninterface Props {\n pool: Pool;\n account?: string | null;\n errorBalance: string;\n bntAmount: string;\n position?: ProtectedPositionGrouped;\n}\n\nexport const RewardsStakeCTA = ({\n pool,\n account,\n errorBalance,\n bntAmount,\n position,\n}: Props) => {\n const [isBusy, setIsBusy] = useState(false);\n const dispatch = useDispatch();\n const history = useHistory();\n const pools = useAppSelector((state) => state.pool.pools);\n\n const onCompleted = useCallback(async () => {\n dispatch(setLoadingPositions(true));\n const positions = await fetchProtectedPositions(pools, account!);\n dispatch(setProtectedPositions(positions));\n dispatch(setLoadingPositions(false));\n }, [account, dispatch, pools]);\n\n const onHash = useCallback(\n (txHash: string) => {\n stakeRewardsNotification(\n dispatch,\n txHash,\n prettifyNumber(bntAmount),\n pool.name\n );\n history.push('/portfolio');\n },\n [bntAmount, dispatch, history, pool.name]\n );\n\n const handleClick = async () => {\n try {\n setIsBusy(true);\n if (position) {\n await stakePoolLevelRewards({\n newPoolId: pool.pool_dlt_id,\n reserveId: position.reserveToken.address,\n amount: bntAmount,\n poolId: position.pool.pool_dlt_id,\n onHash: (txHash) => onHash(txHash),\n onCompleted: () => onCompleted(),\n rejected: () => rejectNotification(dispatch),\n failed: () => stakeRewardsFailedNotification(dispatch),\n });\n } else {\n await stakeRewards({\n amount: bntAmount,\n poolId: pool.pool_dlt_id,\n onHash: (txHash) => onHash(txHash),\n onCompleted: () => onCompleted(),\n rejected: () => rejectNotification(dispatch),\n failed: () => stakeRewardsFailedNotification(dispatch),\n });\n }\n } catch (e: any) {\n console.error('Staking Rewards failed with msg: ', e.message);\n } finally {\n setIsBusy(false);\n }\n };\n\n const btnOptions = () => {\n if (!account) {\n return { label: 'Login', disabled: false, variant: 'btn-primary' };\n } else if (isBusy) {\n return {\n label: 'Please wait ...',\n disabled: true,\n variant: 'btn-primary',\n };\n } else if (errorBalance) {\n return { label: errorBalance, disabled: true, variant: 'btn-error' };\n } else if (!bntAmount) {\n return {\n label: 'Enter amount',\n disabled: true,\n variant: 'btn-primary',\n };\n } else {\n return {\n label: 'Stake and Protect',\n disabled: false,\n variant: 'btn-primary',\n };\n }\n };\n\n const btn = btnOptions();\n\n return (\n handleClick()}\n disabled={btn.disabled}\n className={`${btn.variant} rounded w-full mt-10`}\n >\n {btn.label}\n \n );\n};\n","import { Pool } from 'services/observables/tokens';\nimport { useCallback, useEffect, useState } from 'react';\nimport { getSpaceAvailable } from 'services/web3/liquidity/liquidity';\nimport { prettifyNumber } from 'utils/helperFunctions';\nimport { useInterval } from 'hooks/useInterval';\n\ninterface Props {\n pool: Pool;\n}\n\nexport const RewardsStakeSpaceAvailable = ({ pool }: Props) => {\n const [spaceAvailable, setSpaceAvailable] = useState('');\n\n useInterval(\n async () => {\n await fetchData();\n },\n 15000,\n false\n );\n\n const fetchData = useCallback(async () => {\n const spaceAvailable = await getSpaceAvailable(pool.pool_dlt_id, 0);\n setSpaceAvailable(spaceAvailable.bnt);\n }, [pool.pool_dlt_id]);\n\n useEffect(() => {\n void fetchData();\n }, [fetchData, pool.pool_dlt_id]);\n\n return (\n
\n
\n Space Available\n
{prettifyNumber(spaceAvailable)} BNT
\n
\n
\n );\n};\n","import { Pool } from 'services/observables/tokens';\nimport { Widget } from 'components/widgets/Widget';\nimport { SelectPool } from 'components/selectPool/SelectPool';\nimport { RewardsStakeCTA } from 'elements/earn/portfolio/liquidityProtection/rewards/stake/RewardsStakeCTA';\nimport { RewardsStakeSpaceAvailable } from 'elements/earn/portfolio/liquidityProtection/rewards/stake/RewardsStakeSpaceAvailable';\nimport { useRewardsClaim } from 'elements/earn/portfolio/liquidityProtection/rewards/claim/useRewardsClaim';\nimport { TokenInputField } from 'components/tokenInputField/TokenInputField';\n\ninterface Props {\n pool: Pool;\n}\n\nexport const RewardsStakeWidget = ({ pool }: Props) => {\n const {\n claimableRewards,\n account,\n bntAmount,\n setBntAmount,\n bntAmountUsd,\n setBntAmountUsd,\n bnt,\n errorBalance,\n pools,\n onSelect,\n position,\n } = useRewardsClaim({ pool });\n\n return (\n \n
\n \n
\n \n {errorBalance && (\n
{errorBalance}
\n )}\n
\n \n \n
\n
\n );\n};\n","import { Widget } from 'components/widgets/Widget';\n\nexport const WidgetError = ({ title = 'ERROR' }) => {\n return (\n \n
\n
\n Invalid Pool or Pool not found!\n
\n
Please try again or contact support.
\n
\n
\n );\n};\n","import { RouteComponentProps } from 'react-router-dom';\nimport { useAppSelector } from 'redux/index';\nimport { getPoolById, SelectedPool } from 'redux/bancor/pool';\nimport { WidgetLoading } from 'components/widgets/WidgetLoading';\nimport { RewardsStakeWidget } from 'elements/earn/portfolio/liquidityProtection/rewards/stake/RewardsStakeWidget';\nimport { WidgetError } from 'components/widgets/WidgetError';\n\nexport const RewardsStake = (props: RouteComponentProps<{ id: string }>) => {\n const { id } = props.match.params;\n const { status, pool } = useAppSelector(getPoolById(id));\n const title = 'Stake Rewards';\n return (\n
\n {status === 'loading' ? (\n \n ) : (\n
\n {!pool ? (\n \n ) : (\n \n )}\n
\n )}\n
\n );\n};\n","export const AddLiquiditySingleInfoBox = () => {\n return (\n
\n

\n Learn what it means to add liquidity to a pool:\n

\n
    \n
  1. \n \n 1. How do I make money by providing liquidity?\n \n
  2. \n
  3. \n \n 2. What is impermanent loss?\n \n
  4. \n
  5. \n \n 3. How does Bancor protect me from impermanent loss?\n \n
  6. \n
\n
\n );\n};\n","import { Pool } from 'services/observables/tokens';\nimport { useAppSelector } from 'redux/index';\nimport { getPools } from 'redux/bancor/pool';\nimport { useHistory } from 'react-router-dom';\nimport { SelectPool } from 'components/selectPool/SelectPool';\n\ninterface Props {\n pool: Pool;\n}\n\nexport const AddLiquiditySingleSelectPool = ({ pool }: Props) => {\n const history = useHistory();\n const pools = useAppSelector(getPools);\n\n const onSelect = (pool: Pool) => {\n history.push(`/pools/add-liquidity/${pool.pool_dlt_id}`);\n };\n\n return (\n
\n \n
\n );\n};\n","import { Pool, Token } from 'services/observables/tokens';\nimport { useCallback, useEffect, useState } from 'react';\nimport { prettifyNumber } from 'utils/helperFunctions';\nimport { useInterval } from 'hooks/useInterval';\nimport BigNumber from 'bignumber.js';\nimport { Tooltip } from 'components/tooltip/Tooltip';\nimport { ReactComponent as IconBell } from 'assets/icons/bell.svg';\nimport { useAppSelector } from 'redux/index';\nimport { getTokenById } from 'redux/bancor/bancor';\nimport {\n checkPriceDeviationTooHigh,\n fetchBntNeededToOpenSpace,\n getSpaceAvailable,\n} from 'services/web3/liquidity/liquidity';\n\ninterface Props {\n pool: Pool;\n token: Token;\n selectedToken: Token;\n setSelectedToken: Function;\n setAmount: Function;\n spaceAvailableBnt: string;\n setSpaceAvailableBnt: Function;\n spaceAvailableTkn: string;\n setSpaceAvailableTkn: Function;\n}\n\nexport const AddLiquiditySingleSpaceAvailable = ({\n pool,\n token,\n selectedToken,\n setSelectedToken,\n setAmount,\n spaceAvailableBnt,\n setSpaceAvailableBnt,\n spaceAvailableTkn,\n setSpaceAvailableTkn,\n}: Props) => {\n const bnt = useAppSelector(\n getTokenById(pool.reserves[1].address)\n );\n const [showPriceDeviationWarning, setShowPriceDeviationWarning] =\n useState(false);\n const [bntNeeded, setBntNeeded] = useState('');\n\n useInterval(\n async () => {\n await fetchData();\n },\n 15000,\n false\n );\n\n const fetchData = useCallback(async () => {\n try {\n const isPriceDeviationToHigh = await checkPriceDeviationTooHigh(\n pool,\n selectedToken\n );\n setShowPriceDeviationWarning(isPriceDeviationToHigh);\n if (isPriceDeviationToHigh) {\n return;\n }\n const spaceAvailable = await getSpaceAvailable(\n pool.pool_dlt_id,\n token.decimals\n );\n setSpaceAvailableBnt(spaceAvailable.bnt);\n setSpaceAvailableTkn(spaceAvailable.tkn);\n if (selectedToken.symbol !== 'BNT') {\n const isSpaceAvailable = new BigNumber(spaceAvailable.tkn).gt(1);\n if (!isSpaceAvailable) {\n const bntNeeded = await fetchBntNeededToOpenSpace(pool);\n setBntNeeded(bntNeeded);\n } else {\n setBntNeeded('');\n }\n }\n } catch (e: any) {\n console.error('failed to fetch space available with msg: ', e.message);\n }\n }, [\n pool,\n token.decimals,\n selectedToken,\n setSpaceAvailableBnt,\n setSpaceAvailableTkn,\n ]);\n\n useEffect(() => {\n void fetchData();\n }, [fetchData]);\n\n return (\n
\n {showPriceDeviationWarning ? (\n
\n Due to price volatility, protecting your tokens is currently not\n available. Please try again in a few minutes.\n
\n ) : (\n
\n
\n Space Available{' '}\n
\n {selectedToken.symbol === 'BNT' ? (\n \n ) : (\n
\n setAmount(spaceAvailableTkn)}\n className=\"mr-4\"\n >\n {prettifyNumber(spaceAvailableTkn)} {token && token.symbol}\n \n {new BigNumber(spaceAvailableTkn).lte(1) && (\n \n \n \n }\n />\n )}\n
\n )}\n
\n
\n {bntNeeded && (\n
\n BNT needed to open up space{' '}\n
\n {\n setSelectedToken(bnt);\n setAmount(bntNeeded, bnt);\n }}\n >\n {prettifyNumber(bntNeeded)} BNT\n \n
\n
\n )}\n
\n )}\n
\n );\n};\n","import { Pool, Token } from 'services/observables/tokens';\nimport { TokenInputField } from 'components/tokenInputField/TokenInputField';\nimport { useEffect } from 'react';\nimport BigNumber from 'bignumber.js';\n\ninterface Props {\n pool: Pool;\n token: Token;\n setToken: Function;\n amount: string;\n setAmount: Function;\n amountUsd: string;\n setAmountUsd: Function;\n errorMsg: string;\n setErrorMsg: Function;\n}\nexport const AddLiquiditySingleAmount = ({\n pool,\n token,\n setToken,\n amount,\n setAmount,\n amountUsd,\n setAmountUsd,\n errorMsg,\n setErrorMsg,\n}: Props) => {\n useEffect(() => {\n if (new BigNumber(amount).gt(token.balance || 0)) {\n setErrorMsg('Insufficient Balance');\n } else {\n setErrorMsg('');\n }\n }, [amount, token.balance, setErrorMsg]);\n\n return (\n <>\n x.address)}\n input={amount}\n label=\"Stake Amount\"\n token={token}\n amountUsd={amountUsd}\n setAmountUsd={setAmountUsd}\n setToken={(token: Token) => setToken(token)}\n />\n {errorMsg &&
{errorMsg}
}\n \n );\n};\n","import { useWeb3React } from '@web3-react/core';\nimport { openWalletModal } from 'redux/user/user';\nimport { useDispatch } from 'react-redux';\n\ninterface Props {\n onStart: Function;\n amount: string;\n errorMsg: string;\n}\n\nexport const AddLiquiditySingleCTA = ({ onStart, amount, errorMsg }: Props) => {\n const dispatch = useDispatch();\n const { account } = useWeb3React();\n\n const button = () => {\n if (errorMsg) {\n return { label: errorMsg, disabled: true, variant: 'btn-error' };\n }\n if (!amount) {\n return { label: 'Enter amount', disabled: true, variant: 'btn-primary' };\n } else {\n return {\n label: 'Stake and Protect',\n disabled: false,\n variant: 'btn-primary',\n };\n }\n };\n\n const onClick = () => {\n if (!account) {\n dispatch(openWalletModal(true));\n } else {\n onStart();\n }\n };\n\n return (\n onClick()}\n disabled={button().disabled}\n className={`${button().variant} rounded w-full`}\n >\n {button().label}\n \n );\n};\n","import { Pool, Token } from 'services/observables/tokens';\nimport { Widget } from 'components/widgets/Widget';\nimport { AddLiquiditySingleInfoBox } from './AddLiquiditySingleInfoBox';\nimport { AddLiquiditySingleSelectPool } from './AddLiquiditySingleSelectPool';\nimport { AddLiquiditySingleSpaceAvailable } from 'elements/earn/pools/addLiquidity/single/AddLiquiditySingleSpaceAvailable';\nimport { useAppSelector } from 'redux/index';\nimport { AddLiquiditySingleAmount } from 'elements/earn/pools/addLiquidity/single/AddLiquiditySingleAmount';\nimport { useCallback, useRef, useState } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { useApproveModal } from 'hooks/useApproveModal';\nimport { AddLiquiditySingleCTA } from 'elements/earn/pools/addLiquidity/single/AddLiquiditySingleCTA';\nimport { useDispatch } from 'react-redux';\nimport { prettifyNumber } from 'utils/helperFunctions';\nimport BigNumber from 'bignumber.js';\nimport { getTokenById } from 'redux/bancor/bancor';\nimport { addLiquiditySingle } from 'services/web3/liquidity/liquidity';\nimport { useAsyncEffect } from 'use-async-effect';\nimport { take } from 'rxjs/operators';\nimport { liquidityProtection$ } from 'services/observables/contracts';\nimport {\n addLiquiditySingleFailedNotification,\n addLiquiditySingleNotification,\n rejectNotification,\n} from 'services/notifications/notifications';\n\ninterface Props {\n pool: Pool;\n}\n\nexport const AddLiquiditySingle = ({ pool }: Props) => {\n const dispatch = useDispatch();\n const tkn = useAppSelector(\n getTokenById(pool.reserves[0].address)\n );\n const bnt = useAppSelector(\n getTokenById(pool.reserves[1].address)\n );\n const history = useHistory();\n const approveContract = useRef('');\n const [isBNTSelected, setIsBNTSelected] = useState(false);\n const [amount, setAmount] = useState('');\n const [amountUsd, setAmountUsd] = useState('');\n const [errorMsg, setErrorMsg] = useState('');\n const [spaceAvailableBnt, setSpaceAvailableBnt] = useState('');\n const [spaceAvailableTkn, setSpaceAvailableTkn] = useState('');\n\n const selectedToken = isBNTSelected ? bnt! : tkn!;\n const setSelectedToken = useCallback(\n (token: Token) => {\n const isBNT = token.address === bnt!.address;\n setIsBNTSelected(isBNT);\n },\n [bnt]\n );\n\n const handleAmountChange = (amount: string, tkn?: Token) => {\n setAmount(amount);\n const usdAmount = new BigNumber(amount)\n .times(tkn ? tkn.usdPrice! : selectedToken.usdPrice!)\n .toString();\n setAmountUsd(usdAmount);\n };\n\n const addProtection = async () => {\n const cleanAmount = prettifyNumber(amount);\n await addLiquiditySingle(\n pool,\n selectedToken,\n amount,\n (txHash: string) =>\n addLiquiditySingleNotification(\n dispatch,\n txHash,\n cleanAmount,\n selectedToken.symbol,\n pool.name\n ),\n () => {\n if (window.location.pathname.includes(pool.pool_dlt_id))\n history.push('/portfolio');\n },\n () => rejectNotification(dispatch),\n () =>\n addLiquiditySingleFailedNotification(\n dispatch,\n cleanAmount,\n selectedToken.symbol,\n pool.name\n )\n );\n };\n\n useAsyncEffect(async (isMounted) => {\n if (isMounted())\n approveContract.current = await liquidityProtection$\n .pipe(take(1))\n .toPromise();\n }, []);\n\n const [onStart, ModalApprove] = useApproveModal(\n [{ amount, token: selectedToken }],\n addProtection,\n approveContract.current\n );\n\n const handleError = useCallback(() => {\n if (errorMsg) return errorMsg;\n if (!spaceAvailableBnt || !spaceAvailableTkn) {\n return '';\n }\n if (selectedToken.symbol === 'BNT') {\n const isSpaceAvailable = new BigNumber(spaceAvailableBnt).gte(\n amount || 0\n );\n if (isSpaceAvailable) {\n return '';\n } else {\n return 'Not enough space available';\n }\n } else {\n const isSpaceAvailable = new BigNumber(spaceAvailableTkn).gte(\n amount || 0\n );\n if (isSpaceAvailable) {\n return '';\n } else {\n return 'Not enough space available';\n }\n }\n }, [\n amount,\n errorMsg,\n selectedToken.symbol,\n spaceAvailableBnt,\n spaceAvailableTkn,\n ]);\n\n if (!tkn) {\n history.push('/pools/add-liquidity/error');\n return <>;\n }\n\n return (\n \n \n
\n \n \n
\n \n \n {ModalApprove}\n
\n );\n};\n","import { Token } from 'services/observables/tokens';\nimport { TokenInputField } from 'components/tokenInputField/TokenInputField';\nimport { useEffect, useState } from 'react';\nimport BigNumber from 'bignumber.js';\n\ninterface Props {\n bnt: Token;\n tkn: Token;\n tknAmount: string;\n setTknAmount: Function;\n bntAmount: string;\n setBntAmount: Function;\n bntTknRate: string;\n errorBalanceBnt: string;\n setErrorBalanceBnt: Function;\n errorBalanceTkn: string;\n setErrorBalanceTkn: Function;\n}\n\nexport const AddLiquidityDualStakeAmount = ({\n bnt,\n tkn,\n tknAmount,\n setTknAmount,\n bntAmount,\n setBntAmount,\n bntTknRate,\n errorBalanceBnt,\n setErrorBalanceBnt,\n errorBalanceTkn,\n setErrorBalanceTkn,\n}: Props) => {\n const [bntAmountUsd, setBntAmountUsd] = useState('');\n const [tknAmountUsd, setTknAmountUsd] = useState('');\n\n const onBntAmountChange = (amount: string) => {\n setBntAmount(amount);\n if (amount === '') {\n setTknAmount('');\n setTknAmountUsd('');\n return;\n }\n const tknAmount = new BigNumber(amount).times(bntTknRate).toString();\n setTknAmount(tknAmount);\n const tknAmountUsd = new BigNumber(tknAmount)\n .times(tkn.usdPrice!)\n .toString();\n setTknAmountUsd(tknAmountUsd);\n };\n\n const onTknAmountChange = (amount: string) => {\n setTknAmount(amount);\n if (amount === '') {\n setBntAmount('');\n setBntAmountUsd('');\n return;\n }\n const bntAmount = new BigNumber(amount).div(bntTknRate).toString();\n setBntAmount(bntAmount);\n const bntAmountUsd = new BigNumber(bntAmount)\n .times(bnt.usdPrice!)\n .toString();\n setBntAmountUsd(bntAmountUsd);\n };\n\n useEffect(() => {\n if (new BigNumber(bntAmount).gt(bnt.balance || 0)) {\n setErrorBalanceBnt('Insufficient Balance');\n } else {\n setErrorBalanceBnt('');\n }\n\n if (new BigNumber(tknAmount).gt(tkn.balance || 0)) {\n setErrorBalanceTkn('Insufficient Balance');\n } else {\n setErrorBalanceTkn('');\n }\n }, [\n bntAmount,\n bnt.balance,\n setErrorBalanceBnt,\n tknAmount,\n tkn.balance,\n setErrorBalanceTkn,\n ]);\n\n return (\n
\n
Enter stake amount
\n
\n onBntAmountChange(amount)}\n amountUsd={bntAmountUsd}\n setAmountUsd={setBntAmountUsd}\n token={bnt}\n selectable={false}\n border\n />\n {errorBalanceBnt && (\n
{errorBalanceBnt}
\n )}\n
\n
\n onTknAmountChange(amount)}\n amountUsd={tknAmountUsd}\n setAmountUsd={setTknAmountUsd}\n token={tkn}\n selectable={false}\n border\n />\n {errorBalanceTkn && (\n
{errorBalanceTkn}
\n )}\n
\n
\n );\n};\n","import { useDispatch } from 'react-redux';\nimport { useWeb3React } from '@web3-react/core';\nimport { openWalletModal } from 'redux/user/user';\nimport { useApproveModal } from 'hooks/useApproveModal';\nimport { Pool, Token } from 'services/observables/tokens';\nimport { addLiquidity } from 'services/web3/liquidity/liquidity';\nimport { useHistory } from 'react-router-dom';\nimport {\n addLiquidityFailedNotification,\n addLiquidityNotification,\n rejectNotification,\n} from 'services/notifications/notifications';\nimport { prettifyNumber } from 'utils/helperFunctions';\nimport { useCallback } from 'react';\n\ninterface Props {\n pool: Pool;\n bnt: Token;\n tkn: Token;\n amountBnt: string;\n amountTkn: string;\n errorMsg?: string;\n}\n\nexport const AddLiquidityEmptyCTA = ({\n pool,\n bnt,\n tkn,\n amountBnt,\n amountTkn,\n errorMsg,\n}: Props) => {\n const dispatch = useDispatch();\n const { account } = useWeb3React();\n const history = useHistory();\n\n const handleAddLiquidity = useCallback(async () => {\n const cleanTkn = prettifyNumber(amountTkn);\n const cleanBnt = prettifyNumber(amountBnt);\n await addLiquidity(\n amountBnt,\n bnt,\n amountTkn,\n tkn,\n pool.converter_dlt_id,\n (txHash: string) =>\n addLiquidityNotification(\n dispatch,\n txHash,\n cleanTkn,\n tkn.symbol,\n cleanBnt,\n bnt.symbol,\n pool.name\n ),\n () => {\n if (window.location.pathname.includes(pool.pool_dlt_id))\n history.push('/portfolio');\n },\n () => rejectNotification(dispatch),\n () =>\n addLiquidityFailedNotification(\n dispatch,\n cleanTkn,\n tkn.symbol,\n cleanBnt,\n bnt.symbol,\n pool.name\n )\n );\n }, [amountTkn, tkn, amountBnt, bnt, pool, dispatch, history]);\n\n const [onStart, ModalApprove] = useApproveModal(\n [\n { amount: amountBnt, token: bnt },\n { amount: amountTkn, token: tkn },\n ],\n handleAddLiquidity,\n pool.converter_dlt_id\n );\n\n const button = () => {\n if (errorMsg) {\n return { label: errorMsg, disabled: true, variant: 'btn-error' };\n }\n if (!amountBnt || !amountTkn) {\n return {\n label: 'Enter amount',\n disabled: true,\n variant: 'btn-primary',\n };\n } else {\n return { label: 'Supply', disabled: false, variant: 'btn-primary' };\n }\n };\n\n const onClick = () => {\n if (!account) {\n dispatch(openWalletModal(true));\n } else {\n onStart();\n }\n };\n\n return (\n <>\n onClick()}\n disabled={button().disabled}\n className={`${button().variant} rounded w-full mt-20`}\n >\n {button().label}\n \n {ModalApprove}\n \n );\n};\n","import { Token } from 'services/observables/tokens';\nimport { prettifyNumber } from 'utils/helperFunctions';\nimport BigNumber from 'bignumber.js';\n\ninterface Props {\n bnt: Token;\n tkn: Token;\n bntTknRate: string;\n}\n\nexport const AddLiquidityDualTokenPrices = ({\n bnt,\n tkn,\n bntTknRate,\n}: Props) => {\n const bntTknRateUsd = () => {\n return new BigNumber(tkn.usdPrice!).times(bntTknRate);\n };\n\n const rateString = () => {\n return `${prettifyNumber(bntTknRate)} ${tkn.symbol} (${prettifyNumber(\n bntTknRateUsd(),\n true\n )})`;\n };\n return (\n
\n
Tokens prices
\n {[bnt, tkn].map((t) => (\n
\n
1 {t.symbol} =
\n
\n ~{prettifyNumber(t.usdPrice!, true)}\n
\n
\n ))}\n
\n
1 BNT ({prettifyNumber(bnt.usdPrice!, true)}) =
\n
{rateString()}
\n
\n
\n );\n};\n","import { Pool, Token } from 'services/observables/tokens';\nimport { Widget } from 'components/widgets/Widget';\nimport { AddLiquidityDualStakeAmount } from 'elements/earn/pools/addLiquidity/dual/AddLiquidityDualStakeAmount';\nimport { useAppSelector } from 'redux/index';\nimport { getTokenById } from 'redux/bancor/bancor';\nimport { useState } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { AddLiquidityEmptyCTA } from 'elements/earn/pools/addLiquidity/empty/AddLiquidityEmptyCTA';\nimport { AddLiquidityDualTokenPrices } from 'elements/earn/pools/addLiquidity/dual/AddLiquidityDualTokenPrices';\nimport BigNumber from 'bignumber.js';\n\ninterface Props {\n pool: Pool;\n reserveBalances: { tknBalance: string; bntBalance: string };\n}\n\nexport const AddLiquidityDual = ({ pool, reserveBalances }: Props) => {\n const [tknReserve, bntReserve] = pool.reserves;\n const tkn = useAppSelector(\n getTokenById(tknReserve.address)\n );\n const bnt = useAppSelector(\n getTokenById(bntReserve.address)\n );\n const [tknAmount, setTknAmount] = useState('');\n const [bntAmount, setBntAmount] = useState('');\n const [errorBalanceBnt, setErrorBalanceBnt] = useState('');\n const [errorBalanceTkn, setErrorBalanceTkn] = useState('');\n\n const bntTknRate = () => {\n const rate = new BigNumber(reserveBalances.tknBalance).div(\n reserveBalances.bntBalance\n );\n return rate.toString();\n };\n\n const tknWithUsd = (): Token => {\n const tknWithUsd = { ...tkn };\n if (bnt && tknWithUsd && new BigNumber(tknWithUsd.usdPrice ?? 0).eq(0)) {\n tknWithUsd.usdPrice = new BigNumber(bntTknRate())\n .div(bnt.usdPrice!)\n .toString();\n }\n return tknWithUsd as Token;\n };\n\n const history = useHistory();\n if (!tkn || !bnt) {\n history.push('/pools/add-liquidity/error');\n return <>;\n }\n\n return (\n \n \n
\n \n \n
\n
\n );\n};\n","import { Token } from 'services/observables/tokens';\nimport { prettifyNumber } from 'utils/helperFunctions';\nimport BigNumber from 'bignumber.js';\nimport { sanitizeNumberInput } from 'utils/pureFunctions';\n\ninterface Props {\n bnt: Token;\n tkn: Token;\n bntTknRate: string;\n tknUsdPrice: string;\n setTknUsdPrice: Function;\n}\n\nexport const AddLiquidityEmptyStep1 = ({\n bnt,\n tkn,\n tknUsdPrice,\n setTknUsdPrice,\n bntTknRate,\n}: Props) => {\n return (\n
\n
\n
\n 1\n
\n
Please enter the token prices
\n
\n
\n
\n
1 BNT =
\n \n
\n
\n
1 {tkn.symbol} =
\n \n setTknUsdPrice(sanitizeNumberInput(e.target.value))\n }\n />\n
\n
\n
\n 1 BNT ({prettifyNumber(bnt.usdPrice!, true)}) ={' '}\n {new BigNumber(tknUsdPrice).gt(0) ? prettifyNumber(bntTknRate) : 0}{' '}\n {tkn.symbol} (\n {prettifyNumber(new BigNumber(bntTknRate).times(tknUsdPrice), true)})\n
\n
\n );\n};\n","import { Token } from 'services/observables/tokens';\nimport { TokenInputField } from 'components/tokenInputField/TokenInputField';\nimport { useEffect, useState } from 'react';\nimport BigNumber from 'bignumber.js';\n\ninterface Props {\n bnt: Token;\n tkn: Token;\n tknAmount: string;\n setTknAmount: Function;\n bntAmount: string;\n setBntAmount: Function;\n bntTknRate: string;\n tknUsdPrice: string;\n errorBalanceBnt: string;\n setErrorBalanceBnt: Function;\n errorBalanceTkn: string;\n setErrorBalanceTkn: Function;\n}\n\nexport const AddLiquidityEmptyStep2 = ({\n bnt,\n tkn,\n tknAmount,\n setTknAmount,\n bntAmount,\n setBntAmount,\n bntTknRate,\n tknUsdPrice,\n errorBalanceBnt,\n setErrorBalanceBnt,\n errorBalanceTkn,\n setErrorBalanceTkn,\n}: Props) => {\n const [bntAmountUsd, setBntAmountUsd] = useState('');\n const [tknAmountUsd, setTknAmountUsd] = useState('');\n\n useEffect(() => {\n setBntAmountUsd('');\n setTknAmountUsd('');\n }, [tknUsdPrice]);\n\n const tknWithPrice: Token = { ...tkn, usdPrice: tknUsdPrice };\n\n const onBntAmountChange = (amount: string) => {\n setBntAmount(amount);\n if (amount === '') {\n setTknAmount('');\n setTknAmountUsd('');\n return;\n }\n const tknAmount = new BigNumber(amount).times(bntTknRate).toString();\n setTknAmount(tknAmount);\n const tknAmountUsd = new BigNumber(tknAmount).times(tknUsdPrice).toString();\n setTknAmountUsd(tknAmountUsd);\n };\n\n const onTknAmountChange = (amount: string) => {\n setTknAmount(amount);\n if (amount === '') {\n setBntAmount('');\n setBntAmountUsd('');\n return;\n }\n const bntAmount = new BigNumber(amount).div(bntTknRate).toString();\n setBntAmount(bntAmount);\n const bntAmountUsd = new BigNumber(bntAmount)\n .times(bnt.usdPrice!)\n .toString();\n setBntAmountUsd(bntAmountUsd);\n };\n\n useEffect(() => {\n if (new BigNumber(bntAmount).gt(bnt.balance || 0)) {\n setErrorBalanceBnt('Insufficient Balance');\n } else {\n setErrorBalanceBnt('');\n }\n\n if (new BigNumber(tknAmount).gt(tkn.balance || 0)) {\n setErrorBalanceTkn('Insufficient Balance');\n } else {\n setErrorBalanceTkn('');\n }\n }, [\n bntAmount,\n bnt.balance,\n setErrorBalanceBnt,\n tknAmount,\n tkn.balance,\n setErrorBalanceTkn,\n ]);\n\n return (\n
\n
\n \n 2\n
\n \n Enter stake amount\n
\n \n
\n onBntAmountChange(amount)}\n amountUsd={bntAmountUsd}\n setAmountUsd={setBntAmountUsd}\n token={bnt}\n selectable={false}\n disabled={!tknUsdPrice}\n />\n {errorBalanceBnt && (\n
{errorBalanceBnt}
\n )}\n
\n
\n onTknAmountChange(amount)}\n amountUsd={tknAmountUsd}\n setAmountUsd={setTknAmountUsd}\n token={tknWithPrice}\n selectable={false}\n disabled={!tknUsdPrice}\n />\n {errorBalanceTkn && (\n
{errorBalanceTkn}
\n )}\n
\n \n );\n};\n","import { Pool, Token } from 'services/observables/tokens';\nimport { Widget } from 'components/widgets/Widget';\nimport { AddLiquidityEmptyStep1 } from 'elements/earn/pools/addLiquidity/empty/AddLiquidityEmptyStep1';\nimport { useEffect, useState } from 'react';\nimport { AddLiquidityEmptyStep2 } from 'elements/earn/pools/addLiquidity/empty/AddLiquidityEmptyStep2';\nimport { useAppSelector } from 'redux/index';\nimport { getTokenById } from 'redux/bancor/bancor';\nimport BigNumber from 'bignumber.js';\nimport { useHistory } from 'react-router-dom';\nimport { AddLiquidityEmptyCTA } from 'elements/earn/pools/addLiquidity/empty/AddLiquidityEmptyCTA';\n\ninterface Props {\n pool: Pool;\n}\n\nexport const AddLiquidityEmpty = ({ pool }: Props) => {\n const [tknReserve, bntReserve] = pool.reserves;\n const tkn = useAppSelector(\n getTokenById(tknReserve.address)\n );\n const bnt = useAppSelector(\n getTokenById(bntReserve.address)\n );\n const [tknAmount, setTknAmount] = useState('');\n const [bntAmount, setBntAmount] = useState('');\n const [errorBalanceBnt, setErrorBalanceBnt] = useState('');\n const [errorBalanceTkn, setErrorBalanceTkn] = useState('');\n const [tknUsdPrice, setTknUsdPrice] = useState('');\n\n useEffect(() => {\n setBntAmount('');\n setTknAmount('');\n }, [tknUsdPrice]);\n\n const history = useHistory();\n if (!tkn || !bnt) {\n history.push('/pools/add-liquidity/error');\n return <>;\n }\n\n const bntTknRate = () => {\n return new BigNumber(bnt.usdPrice!).div(tknUsdPrice).toString();\n };\n return (\n \n \n
\n \n \n
\n
\n );\n};\n","import { getPoolById, SelectedPool } from 'redux/bancor/pool';\nimport { RouteComponentProps } from 'react-router-dom';\nimport { AddLiquiditySingle } from 'elements/earn/pools/addLiquidity/single/AddLiquiditySingle';\nimport { AddLiquidityDual } from 'elements/earn/pools/addLiquidity/dual/AddLiquidityDual';\nimport { AddLiquidityEmpty } from 'elements/earn/pools/addLiquidity/empty/AddLiquidityEmpty';\nimport { useAppSelector } from 'redux/index';\nimport React, { useCallback, useEffect, useState } from 'react';\nimport BigNumber from 'bignumber.js';\nimport { WidgetLoading } from 'components/widgets/WidgetLoading';\nimport { WidgetError } from 'components/widgets/WidgetError';\nimport { fetchReserveBalances } from 'services/web3/liquidity/liquidity';\n\nexport const AddLiquidity = React.memo(\n (props: RouteComponentProps<{ id: string }>) => {\n const { id } = props.match.params;\n const { status, pool } = useAppSelector(getPoolById(id));\n const [isCheckingType, setIsCheckingType] = useState(false);\n const [type, setType] = useState('');\n const [reserveBalances, setReserveBalances] = useState({\n tknBalance: '0',\n bntBalance: '0',\n });\n\n const checkType = useCallback(async () => {\n if (!pool) {\n return;\n }\n setIsCheckingType(true);\n if (pool.isProtected) {\n setType('single');\n } else {\n const { tknBalance, bntBalance } = await fetchReserveBalances(pool);\n setReserveBalances({ tknBalance, bntBalance });\n const isPoolEmpty = [tknBalance, bntBalance].some((b) =>\n new BigNumber(b).eq(0)\n );\n\n if (isPoolEmpty) {\n setType('empty');\n } else {\n setType('dual');\n }\n }\n setIsCheckingType(false);\n }, [pool]);\n\n useEffect(() => {\n void checkType();\n }, [id, checkType]);\n\n const isLoading = () => {\n return status === 'loading' || isCheckingType;\n };\n\n return (\n
\n {isLoading() ? (\n \n ) : (\n
\n {!pool ? (\n \n ) : (\n
\n {type === 'single' && }\n {type === 'dual' && (\n \n )}\n {type === 'empty' && }\n
\n )}\n
\n )}\n
\n );\n }\n);\n","const content = [\n {\n id: 1,\n subtitle: 'Eligibility; Prohibition of Use',\n html: '

By accessing or using the Site, you represent and warrant that you will not use the Site if the laws applicable to you of due to your country of residency and/or citizenship prohibit you from doing so in accordance with these Terms.Token conversions are not available to US residents and/or domiciliaries.In addition, by accessing and using the Site, you represent and warrant that you will not perform or attempt to perform Token conversions through the Site, if : (1) you are a US resident and/or domiciliary; (2) you are using the Site from one of the countries embargoed or restricted by the Swiss State Secretariat for Economic Affairs (SECO), as follows: Belarus, Burundi, Central African Republic, Congo, DPRK (North Korea), Guinea, Guinea-Bissau, Iran, Iraq, Lebanon, Libya, Mali, Myanmar(Burma), Republic of South Sudan, Somalia, Sudan, Syria, Ukraine, Venezuela, Yemen, Zimbabwe. Pursuant to applicable laws and regulations, Bancor maintains the right to select its markets and jurisdictions to operate and may restrict or deny the use of the Site, Content or any part thereof, in certain countries at its discretion.

',\n },\n {\n id: 2,\n subtitle: 'Site Content',\n html: '
  • The Site offers an online platform that allows you to gain access and interact with supported blockchains and presents options of autonomous conversion mechanisms, including between the different supported blockchains. Such conversions may be of different Smart Tokens or other supported standards tokens (applicable to the relevant supported blockchans; for example, standard ERC20 tokens on Ethereum blockchain) that are held by Relay Tokens(collectively, “Tokens”).
  • Through the Site, you can (the following shall be referred to as the “Content”):

i. View information relating different Tokens;

ii. View the information from supported electronic wallets(“Electronic Wallet” or “Wallet”);

iii. Build transactions yourself (with the assistance of the Site’s interfaces), which you may then send to the blockchain.

iv. BancorX cross-blockchain interface, assisting you to use your BNT, and convert between Tokens on the supported blockchains;

v. Interact and communicate with other Users on the Site, participate in discussions and receive information from the Site’s community;

vi. Manage your Wallet (associated with the Account), enabling you to send or receive Tokens, convert between Tokens, view historical data, and easily transact on the blockchain;

vii. Receive notifications regarding activities in your Wallet; The Services detailed in sub-sections i, ii and iii are available to all Users on the Site (without requiring an Account), while those detailed in sub-sections iv, v and vi are available by creating your own account on the Site (the “Account”).To create your Account, you must assign a display name Account (“Display Name”) and associate the Account to your designated Wallet.

',\n },\n {\n id: 3,\n subtitle: 'Create Your Account',\n html: '

The Content detailed in Sections 2.(b) i, ii and iii above, are available to all Users on the Site (without requiring an Account), while those detailed in in Sections 2.(b) iv, v and vi above are available by creating your own account on the Site (the “Account”). Create Your Account: To create your Account, you must assign a display name Account (“Display Name”) and associate the Account to your designated Wallet. Your Display Name: The Display Name can be any name of your choosing and will be displayed openly on the Site to all other Users. When choosing your Display Name, consider it will mainly be used to enable you to interact with other users on the Site. You may change your Display Name at any time.

',\n },\n {\n id: 4,\n subtitle: 'Create Your Electronic Wallet',\n html: '
  • Bancor does not control your Wallet. When using the Site or when creating an Account, you can choose to use a Wallet provided by external service providers, or the Bancor wallet provided on the Site. With your Wallet, you can store and engage in transactions using Ethereum cryptocurrency, either within the Bancor Network or with other platforms. Please note that your Wallet is under your sole responsibility and will always remain under your sole control. While your Account enables you to access your Wallet with ease – Bancor has no access to your Wallet nor any control over its use, and accordingly Bancor and/or Bancor Parties have no liability whatsoever regarding the use of your Wallet and/or any crypto-assets held in, or controlled through the Wallet. Bancor will not be able to assist you regaining access to your wallet in case you lost your Wallet Access Information.
  • Wallet Security: The access to your Wallet (and any cryptocurrency held in it) is available only with the access information and codes issued to you when establishing the Wallet (which commonly consist of a twelve (12) word mnemonic phrase, account keystore json file and/or private key) (“Wallet Access Information”). When creating an Account,your Wallet’s encrypted password file is encrypted once more before is stored in a protected file, accessible only by your password. We do not see, track, save or have access to your password which can unlock the password protected file. When choosing a password for your Wallet, remember that your Wallet may be subject to hacking attempts, the success of which may depend on the strength of the code you created. Subject to developments in general blockchain technology, You should be able to access your Wallet independently using your Wallet Access Information, even if at any time your access to the Site and Content shall be disabled for any reason whatsoever. For the protection of your interests, it is imperative you keep safe and guard the Wallet Access Information issued to you. You acknowledge and accept that you are solely responsible for the security of your Wallet and for any use of your Account as well as for any crypto-assets held or managed by them. Bancor and/or Bancor Parties will not be liable or accountable, nor shall be deemed to have any liability or accountability, for any loss or damage regarding your failure to keep your Account or Wallet information secret and protected. Furthermore, Bancor has no control over your actions or transactions made using the Content. With that in mind, Bancor and/or Bancor Parties will have no liability to you or to any third party for any claims or damages that may arise as a result of any actions or transactions that you engage in while using the Content. Bancor and/or Bancor Parties shall not be liable for the acts or omissions of any third parties, nor will they be liable for any damage that you may suffer as a result of interacting with any third parties. We reserve the right to cancel or refuse to process any digital currency transaction due to requirements of any applicable laws or regulations, and without prior notice.
  • We cannot guarantee that the Content will always function without disruptions, delay or errors. A number of factors may impact the quality of your communications on the Site and use of the Content, and may result in the failure of your communications including, without limitation, your local network, firewall, your internet service provider, the public internet and your power supply. For the avoidance of doubt and without derogating from the Terms hereunder, Bancor and/or Bancor Parties (as defined below) take no responsibility for any disruption, interruption or delay caused by any failure of or inade
',\n },\n {\n id: 5,\n subtitle: 'Fees and Payments',\n html: '

The use of the Site and Content is not subject to or conditioned upon any payment or fee to Bancor. You confirm that you are aware and agree to the following:

  • All transactions on the Ethereum blockchain are subject to a fee (Gas), which is made in ETH and transferred internally into the system. To facilitate transactions on the blockchain you must have a sufficient amount of ETH.
  • Tokens might include certain terms affecting conversion rates. Such terms are determined and affixed by the issuer of the Token at its own and exclusive discretion.
  • When using the Content, you are able to construct and determine, at your own discretion, the parameters you wish to apply to your conversion of Tokens. The actions you wish to execute will be subject to those parameters you applied. Such terms, as may be applicable in each case individually, will be reflected and expressed in the conversion ratio and other applicable formulas, affecting the final outcome of your actions. By using the Content, you confirm and accept you are aware of the intrinsic risks regarding your use of the Content, that you are capable to assess and determine the outcomes of your actions using the Content, and that you are exclusively responsible and liable for your actions and their results. Bancor and/or Bancor Parties are not responsible for any taxes, levies, charges and/or expenses of any kind you may incur, resulting from your use of the Content and/or in connection therewith, whether such may be incurred pursuant to any applicable laws, rules or regulations, by any third party service provider(s), or otherwise. Any and all such taxes, levies, charges and/or expenses of any kind shall be borne solely by you. You agree that you shall have no claim, suit or demand of any kind, and by agreeing to these Terms, hereby irrevocably and completely waive any such claim, suit or demand of any kind, to the extent such may exist or hereafter arise, towards us, our affiliated entities, and any of our directors, managers, employees or consultants, in connection with or related to any of the foregoing.
',\n },\n {\n id: 6,\n subtitle: 'Rules of Use',\n html: \"

You represent and warrant that you have full right and authority to use the Content and to be bound by these Terms. You agree that you will comply fully with these Terms and all applicable domestic and international laws, regulations, statutes, ordinances that govern your use of the Content. Without limiting the foregoing and in recognition of the global nature of the Internet, you agree to comply with all local and international rules regarding online conduct. You also agree to comply with all applicable laws affecting the transmission of content or the privacy of persons. When using the Site or Content, you may not, nor may you assist other parties to pursuit or engage in unlawful or abusive uses, or any types of activities which contradict the purpose of the Site or Content, hinder the Site’s operation or Content to other users, or which may be deemed to do so (“Restricted Uses”). For Clarity and reference, Restricted Uses include, but are not limited to, these types of activities as detailed herein, as we may amend from time to time in our sole discretion (thus, not to be regarded as an exhaustive list):

  • Unlawful Activities, such as activities which:

    i. violate any applicable law, rule or regulation; or

    ii. publish, distribute or disseminate any unlawful material or information;

  • Undermining or Abusive Activities, such as activities which:

    i. take any action that imposes an unreasonable or disproportionately large load on our infrastructure, or detrimentally interfere with, intercept, or expropriate any system, data, or information;

    ii. institute, assist or become involved in any type of attack (deliberate or other), including distribution of a virus, attacks upon the Content, the Bancor Protocol™ or the Bancor Network™, that prevent access to or use of any of the above, other attempts to disrupt any of the above, gain unauthorized access to any of the above, or disrupt any other person’s use or enjoyment of any of the above;

    iii. enter or make an attempt to enter the Site and Content (including by accessing linked platforms, networks or systems) unauthorized, including by password mining and/or by using other users information;

    iv. design or assist in designing cheats, exploits, automation software, bots, hacks, modes or any other unauthorized third-party software to modify or interfere with the Site or Content;

    v. attempt to disable or circumvent any security or access control mechanism of the Site or Content;

    vi. use any unauthorized third-party software that accesses, intercepts, 'mines', or otherwise collects information from or through the Content or the Site, or that is in transit from or to the Site;

    vii. bypass any robot exclusion headers or other measures Bancor uses to restrict access to the Content or use any software, technology, or device to send content or messages, scrape, spider, or crawl the Content, or harvest or manipulate data;

    viii. solicit another person’s password or other personal information under false pretenses;

    ix. copy, modify, or create derivative works of the Content or the Site;

  • Activities Abusive to Other Users or Their Rights, such as activities which:

    i. Interfere with other Users ability to exploit or access the Site or any of the Content;

    ii. attempt to, or harass, abuse, or harm of another person or entity, including Bancor employees and service providers;

    iii. collect, harvest or post anyone’s private information, in any media format;

    iv. impersonate another user or otherwise misrepresent yourself;

    v. violate the legal rights of others, including defaming, abuse, stalking or threatening users;

    vi. defraud any other Users or any other person, including Bancor employees and service providers, including by providing false, inaccurate, misleading, or partial information.

  • Activities Infringing Intellectual Property, such as activities which:

    i. reverse engineer, decompile, disassemble, decipher or otherwise attempt to derive the source code for any underlying software or other intellectual property used to provide the Content, or to obtain any information from the Content using any method unless you have received Bancor’s prior written approval;

    ii. infringe the intellectual property rights, privacy rights, or moral rights of any third party or Bancor;

  • Unfair or Abusive Transacting, such as activities which:

    i. create or enter a fictitious transaction or a transaction with fictitious elements of any kind;

    ii. exploit, disrupt or manipulate, or attempt to exploit, disrupt or manipulate the Site or the use of the Content, in a manner designed to create transaction conditions which are not available to other Users;

    iii. utilizes or applies technological abilities or foreknowledge not exploited or available to other Users, to perform (including off Site) transactions parallel to those performed by Users on the Site, and/or create unequal terms among Users regarding the use of Content on the Site, or influence the terms of transactions on the blockchain (including activities commonly referred to as Front-Running) and/or create an unfair or abusive advantage over other Users; Violation of any of these Restricted Uses may be cause for the taking of legal actions on the part of Bancor according to the law, in addition to any right and remedies set forth hereunder or under any applicable law. Without derogating from the above, by accepting these Terms, you acknowledge that Bancor makes no representation or warranty regarding its ability, nor assumes any liability, to detect, limit or prevent any Restricted Use.

\",\n },\n {\n id: 7,\n subtitle: 'Limitation or Termination of Access and Services',\n html: \"

WE MAY, IN OUR SOLE DISCRETION, REFUSE TO MAKE THE CONTENT AVAILABLE TO ANY PERSON OR ENTITY. WE MAY, WITHOUT NOTICE AND IN OUR SOLE DISCRETION, TERMINATE YOUR RIGHT TO USE THE CONTENT OR ANY PORTION THEREOF, AND BLOCK OR PREVENT YOUR FUTURE ACCESS TO AND USE OF THE CONTENT OR ANY PORTION THEREOF. WE MAY, AT ANY TIME AND FOR ANY REASON AND IN OUR SOLE DISCRETION, DISCONTINUE THE CONTENT IN ITS ENTIRETY, OR ANY PART HEREOF, WITHOUT PRIOR NOTICE AND/OR LIABILITY OF ANY KIND. Subject to your agreement and compliance with these Terms, you are hereby granted with a personal, revocable, non-transferable and non-exclusive right to use the Content. Use of the Content shall be solely for your own, private purposes and for no other purpose whatsoever. You hereby acknowledge that your right to use the Content is limited by these Terms, and, if you violate or if, at any point, you do not agree to any of these Terms, your right to use the Content shall immediately terminate, and you shall immediately refrain from using the Content. Without derogating from the generality of the foregoing, any use of the Content that violates these Terms is strictly prohibited and can, at Bancor's sole discretion, result in the immediate revocation of your limited rights granted by these Terms. Without limiting any other remedy, Bancor may limit, suspend, revoke, terminate, modify, or delete your Account or access to the Content at its sole discretion without prior notice or liability, if you are, or if Bancor suspects (in its sole discretion) that you are failing to comply with these Terms or for any actual or suspected Restricted Use of the Site and Content. Any of such actions, including the termination of your rights to use the Site and Content, may be applied by Bancor permanently or temporarily. In such an event, Bancor may terminate your Account and access to the Site and Content (however without affecting your Wallet, which remains exclusively yours, subject to any applicable third party terms of use or law). Upon termination of your Account, your Account log in credentials may not be reserved and it may not be possible to re-instate them. You hereby acknowledge and agree that Bancor is under no obligation to compensate you for any losses of any kind whatsoever resulting from the cease of Content as set forth hereinabove, whether such closure was voluntary or involuntary, and you hereby irrevocably waive any demand or claim regarding the above.

\",\n },\n {\n id: 8,\n subtitle: 'Privacy Policy',\n html: '

When using the Content, you may be required to provide us with certain personal information that may include your full name, e-mail address, Wallet address etc. This information will be stored and used in accordance with our Privacy Policy, and we will not release such personal information to any third party without the User’s consent, except as not prohibited by law or as set forth in our Privacy Policy, as amended from time to time. In addition, we may use aggregate statistical information about Users’ activity on the Site for marketing or any other purpose.

',\n },\n {\n id: 9,\n subtitle: 'Ownership, Copyrights',\n html: '

a. The Content and all of the content that appears in the Site, including without limitation, the use of the Site’s name, software, web technologies, source code, concepts, artwork, photos, animations, sounds, methods of operation, moral rights, documentation, and virtual items, is the exclusive property of Bancor, or is being used with permission from its licensors. Bancor (or its licensors as applicable) retain all rights, title and interest in and to the Content and all of the content that appears in the Site, and all intellectual property rights relating thereto, including without limitations all copyright, patent, trademarks, logos, design rights and any other proprietary rights connected with the Content. Notwithstanding any provision to the contrary herein, you agree that you have no right or title in or to the Content and/or to any content that appears in the Site. Bancor’s name and logo, and any other trademarks included in the Content and/or appear on the Site, are trademarks of Bancor.

b. All third party product names that may legitimately appear in the Site are trademarks of their respective owners. No transfer or grant of any rights under any names, marks or logos is made or is to be implied by any provision of these Terms or by anything on the Site, and all rights in such names, marks or logos is reserved to Bancor or their respective owners, as applicable.

c. You acknowledge and agree that any materials, including but not limited to questions, comments, feedback, suggestions, ideas, plans, notes, drawings, original or creative materials or other information or commentary you provide on our platform or one of our social media accounts, regarding Bancor or the Content (collectively, “Feedback”) that are provided by you, whether by email, posting to the Site or otherwise, are non-confidential and will become the sole property of Bancor. Bancor will own exclusive rights, including all intellectual property rights, and will be entitled to the unrestricted use and dissemination of such Feedback for any purpose, commercial or otherwise, without acknowledgment or compensation to you.

',\n },\n {\n id: 10,\n subtitle: 'Third Party Content',\n html: '

To the extent that the services contain links or any other information to third party websites, tokens or services, Bancor does not control the availability and content of those websites, tokens and services. Any concerns regarding any such third party websites, tokens and/or service, or any link thereto, should be directed to such particular website and/or services provider. Bancor makes no representation or warranty regarding any content, goods, tokens and/or services provided by any third party, even if linked to through the site or the service. The linked sites and tokens are not under the control of Bancor and may collect data or solicit personal information from you. Bancor is not responsible for their content, business practices or privacy policies, or for the collection, use or disclosure of any information those sites may collect. you agree that the services may feature advertisements from third parties. Bancor is not responsible for the actions of third parties who advertise on the site. Your interactions with advertisers or entities that issued the tokens are agreements between you and them with Bancor having no responsibility for such interactions.

',\n },\n {\n id: 11,\n subtitle: 'RISKS Statement, Representations and Warranties',\n html: '

Bancor provides an execution-only service and does not advise on the merits of any particular conversion of Tokens or its tax or legal consequences. As a general matter, Users should be aware of the following prior to utilizing our Content.

a. Assumption of Risks of Cryptographic Systems and Currencies. By using the Content and the Bancor Network in any way, you acknowledge the inherent risks associated with cryptographic systems and ecosystems; and warrant that you have an understanding of the usage and intricacies of native cryptographic tokens, like BNT, ETH, EOS, smart contract based tokens (for example, such as those that follow the Ethereum Token Standard) and blockchain-based software systems. You understand that blockchain technologies (such as Ethereum and EOS) and associated currencies or tokens are highly volatile due to many factors including but not limited to adoption, speculation, technology and security risks. You also acknowledge that the cost of transacting on such technologies (where applicable) is variable and may increase at any time causing impact to any activities taking place on the relevant blockchain (such as Ethereum). You acknowledge these risks and represent that Bancor cannot be held liable for such fluctuations or increased costs. You acknowledge that you are solely responsible for the process of converting BNT or ETH and that Bancor does not offer any such service. Bancor cannot be held liable for any losses or damages of BNT, ETH or other cryptocurrencies resulting from the use of services of any third-party provider.

b. Assumption of Risk of Regulatory Actions in One or More Jurisdictions. The Content as well as the Bancor Network and relevant blockchain (such as Ethereum or EOS) could be impacted by one or more regulatory inquiries or regulatory action, which could impede or limit the ability of Bancor to continue to develop, or which could impede or limit your ability to access or use the Content, the Bancor Network or the applicable blockchain. Bancor endeavours to comply with all applicable laws, i.e. all legal requests for information, and reserve the right to provide information, including Project Information, to law enforcement personnel and other third parties to answer inquiries, to respond to legal process, to respond to the order of a court of competent jurisdiction and those exercising the court’s authority and to protect Bancor Network and its Users.

c. Understanding Tokens requires advanced technical knowledge. Tokens are often described in exceedingly technical language that requires a comprehensive understanding of applied cryptography and computer science in order to appreciate inherent risks. Listing of a Token on the Site does not indicate approval or disapproval of the underlying technology regarding any Token, and should not be used as a substitute for your own understanding of the risks specific to each Token. In using the Content, you represent that you have been, are, and will be solely responsible for making your own independent appraisal and investigations into the risks relating to and concerning the Tokens. You represent that you have sufficient knowledge, market sophistication, professional advice and experience to make your own evaluation of the merits and risks of any conversion or any underlying Token.

d. You accept the risk of converting Tokens. You understand the conversion of Tokens may use untested code and protocols. You accept the risk of conversion failure or fault. You agree not to hold Bancor accountable for any related losses. Neither you nor we, can reverse, change or cancel a conversion of Tokens transaction marked as complete or pending. Conversion of Tokens using the Content is managed and confirmed via the relevant blockchain. You understand that your relevant blockchain (Ethereum, EOS or other) public address will be made publicly visible whenever you use the Content.

e. You are responsible for complying with applicable law. You agree that Bancor is not responsible for determining whether or which laws may apply to your conversions, including with respect to tax or money transferring regulations. You are solely responsible for reporting and paying any taxes arising from your use of the Content.

f. You are aware of and accept the risk of operational challenges. The Site and the Content may experience sophisticated cyber-attacks, unexpected surges in activity, or other operational or technical difficulties, which may hinder the use of the Content or affect or even cause faults or failures in the conversion of Tokens. You agree not to hold Bancor accountable for any related losses.

g. Bancor does not advise on converting risk. If at any point Bancor or its representatives do provide converting recommendations, market commentary, or any other information, the act of doing so is incidental to your relationship with us and imposes no obligation of truth or due diligence on behalf of Bancor or its representatives.

h. Operation of Token Protocol. We do not own or control the underlying software protocols, which govern the operation of the Tokens (other than the BNT) supported on our platform. You acknowledge and agree (i) that the underlying protocols may be subject to sudden changes in operating rules (‘forks’), and that such forks may materially affect the value, function, and even the name of the Tokens you store. In the event of a fork, you agree that we may suspend the Content (with or without advance notice to you) and that we may decide whether or not to support (or cease supporting) either branch of the forked protocol entirely. You acknowledge and agree that we assume absolutely no responsibility whatsoever in respect of an unsupported branch of a forked protocol; and (ii) that we are not responsible for operation of the underlying protocols and that we make no guarantee of their functionality, security, or availability.

',\n },\n {\n id: 12,\n subtitle: 'Ownership of Tokens',\n html: '

You hereby warrant and represent that any Tokens used by you in connection with the Content are either owned by you or that you are validly authorized to carry out conversions, and to take (or refrain from taking) any other actions which you perform while using the Content, using such Tokens.

',\n },\n {\n id: 13,\n subtitle: 'Indemnification',\n html: '

You agree to indemnify, defend and hold Bancor, its affiliates and service providers, and each of their respective officers, directors, agents, employees, and representatives, harmless from any claim (including, but without limitation, third party claims) or demand (including attorneys’ fees and costs and any fines, fees or penalties imposed by any regulatory authority) arising out of or related to (i) your breach of these Terms, (ii) your use or access of the Site and/or Content, or (iii) your violation of any law, rule, or regulation, or the rights of any third party.

',\n },\n {\n id: 14,\n subtitle: 'WARRANTY DISCLAIMER',\n html: '

YOU UNDERSTAND, ACKNOWLEDGE AND ACCEPT THAT BLOCKCHAIN APPLICATIONS AND PROTOCOLS ARE GENERALLY STILL IN AN EARLY DEVELOPMENT STAGE AND THEREFORE OF EXPERIMENTAL NATURE. YOU THEREFORE UNDERSTAND THAT THE CONTENTS ARE PROVIDED TO YOU ‘AS IS’ AND WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND EITHER EXPRESSED OR IMPLIED. TO THE FULLEST EXTENT PERMISSIBLE PURSUANT TO APPLICABLE LAW, EACH OF BANCOR AND/OR BANCOR PARTIES DISCLAIMS ALL WARRANTIES, EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF ANY KIND IN CONNECTION WITH THE TOKENS, THE CONTENT, NON-INFRINGEMENT, AND FITNESS FOR ANY PARTICULAR PURPOSE, USEFULNESS, AUTHORITY, ACCURACY, COMPLETENESS AND/OR TIMELINESS. EACH OF BANCOR AND/OR BANCOR PARTIES MAKES NO WARRANTIES OR REPRESENTATIONS ABOUT THE ACCURACY OR COMPLETENESS OF THE CONTENT OF THE CONTENTS, OF THE CONTENT OF ANY SITES LINKED TO THE CONTENTS, OF ANY THIRD PARTY MATERIALS OR THE UNDERLYING SOFTWARE PROTOCOL (THE SOFTWARE) THAT GOVERNS THE CONTENT AND THE BANCOR NETWORK. WITHOUT LIMITING THE FOREGOING, NEITHER BANCOR NOR ITS AFFILIATES OR SUBSIDIARIES, OR ANY OF ITS OR THEIR DIRECTORS, EMPLOYEES, AGENTS, ATTORNEYS, THIRD-PARTY CONTENT PROVIDERS, DISTRIBUTORS, JOINT-VENTURES, LICENSEES OR LICENSORS (COLLECTIVELY, “BANCOR PARTIES”) REPRESENT OR WARRANT THAT THE SITE AND THE CONTENT WILL BE UNINTERRUPTED, ERROR-FREE, BUG-FREE OR FREE FROM VIRUSES OR OTHER HARMFUL COMPONENTS. YOU AGREE THAT USE OF THE SITE AND THE CONTENT IS AT YOUR SOLE RISK. ADDITIONALLY, IN NO EVENT SHALL BANCOR AND/OR BANCOR PARTIES BE LIABLE FOR ANY UNAUTHORIZED ACCESS TO OR USE OF THIRD PARTY MATERIALS, SECURE SERVERS AND/OR ANY AND ALL PERSONAL INFORMATION AND/OR FINANCIAL INFORMATION STORED THEREIN. YOU ACKNOWLEDGE AND AGREE THAT, TO THE FULLEST EXTENT PERMITTED BY ANY APPLICABLE LAW, THE DISCLAIMERS CONTAINED HEREIN SHALL APPLY TO ANY AND ALL DAMAGES OR INJURIES WHATSOEVER CAUSED BY OR RELATED TO THE USE OF, OR INABILITY TO USE, THE CONTENTS, UNDER ANY CAUSE OR ACTION WHATSOEVER OF ANY JURISDICTION, INCLUDING, WITHOUT LIMITATION, ACTIONS FOR BREACH OF WARRANTY, BREACH OF CONTRACT OR TORT (INCLUDING NEGLIGENCE). UNDER NO CIRCUMSTANCES WHATSOEVER WILL BANCOR AND/OR ANY OF BANCOR PARTIES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES, BE RESPONSIBLE OR LIABLE TO YOU OR TO ANY OTHER ENTITY FOR ANY COMPENSATORY, INDIRECT, INCIDENTAL, CONSEQUENTIAL (INCLUDING FOR LOSS OF PROFITS, LOST BUSINESS OPPORTUNITIES, LOSS OF GOODWILL OR DATA DESTRUCTION OR IMPAIRMENT) SPECIAL, EXEMPLARY, OR PUNITIVE DAMAGES THAT RESULT FROM OR RELATE IN ANY MANNER WHATSOEVER TO YOUR USE OF OR INABILITY TO USE THE CONTENTS. IF YOU ARE DISSATISFIED WITH THE CONTENTS, OR WITH THESE TERMS, OR YOU HAVE ANY DISPUTE WITH BANCOR AND/OR ANY OF BANCOR PARTIES, YOUR SOLE AND EXCLUSIVE REMEDY IS TO DISCONTINUE USING THE CONTENTS. YOU FURTHER SPECIFICALLY ACKNOWLEDGE THAT NEITHER BANCOR NOR ANY BANCOR PARTIES ARE LIABLE, AND YOU AGREE NOT TO SEEK TO HOLD BANCOR AND/OR BANCOR PARTIES LIABLE, FOR THE CONDUCT OF THIRD PARTIES, INCLUDING OTHER USERS OF THE CONTENTS, ISSUERS OF TOKEN AND OPERATORS OF EXTERNAL SITES, AND THAT THE RISK REGARDING THE FOREGOING RESTS ENTIRELY WITH YOU. Additionally, we shall not be deemed to be in breach of these Terms, nor shall we incur any liability or bear any responsibility due to a delay or failure in performance caused by Force Majeure. Force Majeure referrers to circumstances beyond our reasonable control, including but not limited to acts of God, fire, flood, war, terrorism, embargo, accident, labor disputes, or shortage of material, equipment or transport, any law, regulation, or any ruling of court, tribunal or governmental agency

',\n },\n {\n id: 15,\n subtitle: 'LIMITATION OF LIABILITY',\n html: \"

WITHOUT DEROGATING FROM THE FOREGOING, IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL BANCOR, AND/OR ANY OF BANCOR PARTIES, BE LIABLE TO YOU FOR ANY DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE CONTENT AND/OR THE BANCOR NETWORK / SOFTWARE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE SOFTWARE TO OPERATE WITH ANY OTHER SOFTWARE) EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. BECAUSE SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OR EXCLUSION OF LIABILITY FOR CERTAIN TYPES OF DAMAGES, SOME OF THE ABOVE LIMITATIONS MAY NOT APPLY TO YOU. IN SUCH JURISDICTIONS, BANCOR'S LIABILITY IS LIMITED AND WARRANTIES ARE EXCLUDED TO THE GREATEST EXTENT PERMITTED BY THE CORRESPONDING APPLICABLE LAW. ADDITIONALLY, YOU ACKNOWLEDGE THAT NEITHER BANCOR NOR ANY BANCOR PARTIES DOES NOT ACTS OR SERVES AS YOUR BROKER, INTERMEDIARY, AGENT, OR ADVISOR WITH RESPECT TO ANY ACTION (INCLUDING REFRAINING FROM ANY ACTION), INCLUDING WITHOUT LIMITATION, ANY CONVERSION, YOU MAKE OR PROPOSE TO MAKE USING THE CONTENT AND OWES YOU NO FIDUCIARY DUTY.

\",\n },\n {\n id: 16,\n subtitle: 'Computer Viruses',\n html: '

You acknowledge and agree that neither Bancor nor any Bancor Party bears any liability, for any interruptions or damage caused by any computer viruses, worms, spyware, scareware, Trojan horses, defects, corrupted files, hoaxes, or other malware that may affect your computer or other equipment, or any phishing, spoofing or other attack. You should also be aware that SMS and email services are vulnerable to spoofing and phishing attacks and should use care in reviewing messages purporting to originate from us. We advise the regular use of a reputable and readily available virus screening and prevention software.

',\n },\n {\n id: 17,\n subtitle: 'Dispute Resolution and Governing Law',\n html: '

These Terms are governed by and construed in accordance with the laws of the Swiss Confederation. You hereby consent that any claim, cause of action or dispute arising out of or relating to these Terms, the Content or the Site shall be submitted to the exclusive jurisdiction of the Cantonal Court of Zug, Switzerland, and you agree to submit to the personal jurisdiction of such courts for the purpose of litigating all such claims.

',\n },\n {\n id: 18,\n subtitle: 'Miscellaneous',\n html: '

a. The controlling language for these terms of use is English; the meaning of terms, conditions and representations herein are subject to definitions and interpretations in the English language. Any translation is provided for your convenience and may not be deemed to represent accurately the information in the original English.

b. If any provision of these Terms is determined to be invalid or unenforceable, the provision shall be deemed to be severable from the remainder of these Terms and will not cause their invalidity or unenforceability.

c. These terms of use may be amended from time to time. It is your responsibility to check these terms of use periodically for changes. Your continued use of the Content following the posting of changes will mean that you accept and agree to the changes. If you do not agree with any such modification, you should not use the Content.

d. YOU AGREE THAT ANY CAUSE OF ACTION ARISING OUT OF OR RELATED TO THE CONTENT MUST COMMENCE WITHIN ONE (1) YEAR AFTER THE CAUSE OF ACTION ACCRUES. OTHERWISE, SUCH CAUSE OF ACTION IS PERMANENTLY BARRED.

',\n },\n];\n\nexport const TermsOfUse = () => {\n return (\n
\n

\n Terms of Use\n

\n\n

\n By accessing or using the Token Liquidity Network website and API\n located at{' '}\n \n https://bancor.network\n \n , and any linked or directed subdomain (such as{' '}\n \n https://app.bancor.network\n \n ) (the “Site”) and any content made available through the Site, you (the\n “User” and collectively with others using the Site - “Users”) agree to\n be bound by these Terms of Use (“Terms”). The rights in the Site are\n held by Bprotocol Foundation, a Swiss foundation, with legal seat in\n Zug, Switzerland, registered in the Swiss commercial register under UID\n CHE-181.679.849 (“Bancor”), and the terms “we,” “us,” and “our” refer to\n Bancor. Please read these Terms carefully. These Terms govern your\n access to and use of the Site and Content (as defined herein). By using\n the Content or visiting the Site, you signify your consent to both these\n Terms and our Privacy Policy, a current version of which is available at\n \n https://www.bancor.network/privacy-policy\n \n , which is incorporated herein by reference and which may be modified\n from time to time at our sole discretion and without prior notice.\n Changes may be made to these Terms from time to time. These changes will\n apply at that instant to all then current and subsequent uses of the\n Site. You waive any right you may have to receive specific notice of\n such changes or modifications. Your continued use of this Site acts as\n acceptance of such changes or modifications. If you do not agree to the\n Terms in effect when you access or use the Site, you must stop using the\n Site.\n

\n

\n \n IF YOU DO NOT AGREE TO ANY OF THESE TERMS, PLEASE DO NOT USE THE SITE\n OR CONTENT.\n \n

\n\n {content.map((item, index) => (\n
\n

\n {item.id}. {item.subtitle}\n

\n\n \n
\n ))}\n
\n );\n};\n","const content = [\n {\n id: 1,\n subtitle: 'About Us',\n subcontent:\n 'The Bancor Network (the “Bancor Network”, “We”, “Us” or “Our”) is a Decentralized Liquidity Network that allows you to hold any Ethereum token and convert it to any other token in the network, with no counter party, at an automatically calculated price, using a simple web wallet (the “Services”). This privacy policy has been created to inform about how we manage, collect, store and use the personal information we receive and collect in connection with the Bancor Network (the Policy).',\n },\n {\n id: 2,\n subtitle: 'Acceptance of Policy',\n subcontent:\n 'Our registration process is done by using a chatbot. As such, we create a conversation process where we ask you to agree to the terms of Our Privacy Policy, by replying “yes” you agree that you have read, understood, accept and agree to be bound by this Privacy Policy. If you don’t agree with the Privacy Policy, please do not use our Services.',\n },\n {\n id: 3,\n subtitle: 'Changes to Our Privacy Policy',\n subcontent:\n 'We may update this Privacy Policy to reflect changes to our information collection, usage and storage practices. If we make any changes that we deem as “material” (in our sole good faith discretion), we will notify you (using the notification methods set forth in the “Notices” Section prior to the change becoming effective. We encourage you to periodically review this page for the latest information on our privacy practices.',\n },\n {\n id: 4,\n subtitle: 'Information we collect and for which purposes',\n subcontent:\n 'We collect information that is necessary for the functioning of our Bancor Netwotk and the provision of Services through it. We receive the Information, such as username directly from you when you register to our Bancor Network as member of a community. You may voluntarily provide us your contact information and related data, including personal information. We use the information in order to administer our Network and for internal operations, including troubleshooting, data analysis, testing, research, statistical and survey purposes. We may also store information that your computer or mobile device provides us in connection with your use of the Service, such as your browser type, type of computer or mobile device, browser language, IP address. If you register to the Bancor Network using a third party Service like Facebook, we may receive information about you from such third party Service.',\n },\n {\n id: 5,\n subtitle: 'Disclosure of Your Information',\n subcontent:\n 'We do not rent or sell any information about you to others, or trade any such information. We may employ third party companies and individuals to facilitate the operation of the Network, and to perform services related to administration of the Network (including, but not limited to, bill and credit card payment processing, maintenance, hosting and database management services, web analytics and administration). You understand and agree that we may be required to disclose personal information if required to do so by law or in the belief that such disclosure is reasonably necessary to avoid liability, to comply with legal process, including, but not limited to a subpoena, statute, search warrant, or court order, or to protect our, or a third party, property and rights, to protect the safety of the public or any person, or to prevent or stop activity we may consider to be, or to pose a risk of being, illegal, unethical or legally actionable. In the event we will be acquired by or merged with a third party entity, or in the event of bankruptcy or a comparable event, We reserve the right to transfer or assign personal information in connection with the foregoing events.',\n },\n {\n id: 6,\n subtitle: 'Cookies Statement',\n subcontent: `We use cookies. Cookies are small text files that are placed on your computer by websites that you visit. They are widely used in order to make websites work, or work more efficiently, as well as to provide information to the owners of the site. Cookies are typically stored on your computer's hard drive. Information collected from cookies is used by us to evaluate the effectiveness of our website and API located at https://bancor.network, and any linked or directed subdomain (such as https://app.bancor.network) (the “Site”), analyze trends, and manage the platform. The information collected from cookies allows us to determine such things as which parts of our Site are most visited and difficulties our visitors may experience in accessing our Site. With this knowledge, we can improve the quality of your experience on the platform by recognizing and delivering more of the most desired features and information, as well as by resolving access difficulties. We also use cookies and/or a technology known as web bugs or clear gifs, which are typically stored in emails to help us confirm your receipt of, and response to, our emails and to provide you with a more personalized experience when using our Site. We also use third party service provider(s), to assist us in better understanding the use of our Site. Our service provider(s) will place cookies on the hard drive of your computer and will receive information that we select that will educate us on such things as how visitors navigate around our site, what pages are browsed and general transaction information. Our service provider(s) analyses this information and provides us with aggregate reports. The information and analysis provided by our service provider(s) will be used to assist us in better understanding our visitors' interests in our Site and how to better serve those interests. The information collected by our service provider(s) may be linked to and combined with information that we collect about you while you are using the platform. Our service provider(s) is/are contractually restricted from using information they receive from our Site other than to assist us. Your continued use of our Site, as well as any subsequent usage, will be interpreted as your consent to cookies being stored on your device.`,\n },\n {\n id: 7,\n subtitle: 'Security',\n subcontent:\n 'Everything We save is encrypted and We have implemented the technical and organizational measures designed to secure your information from accidental loss and from unauthorized access, use, alteration or disclosure. However, we cannot guarantee that unauthorized third parties will never be able to overcome those measures or use your information for improper purposes.',\n },\n {\n id: 8,\n subtitle: 'Processing and transferring your information',\n subcontent:\n 'The information provided will be saved and stored with the hosting and information backup providers (such as Google Cloud) in the U.S, held and operated by third parties other than Bancor and/or which are not controlled by Bancor. Upon providing the information the site visitor agrees and confirms that Bancor may transfer to and/or save the information provided thereto on servers located in the U.S.',\n },\n {\n id: 9,\n subtitle: 'Your Rights',\n subcontent:\n 'You may review, update, or delete the information collected by or through our Service by logging into your account and reviewing your account settings and profile. You have a right to access to your personal information held by us by requesting a copy in writing. We will provide you with such copy as soon as practicable after receiving a valid request. We may charge you a fee, which shall not exceed the cost for copies. We may request proof of identification to verify your access request and reject any unfair request. To exercise this right, please refer to the “Contact Us” section below.',\n },\n {\n id: 10,\n subtitle: 'Notices',\n subcontent:\n 'Notices to you may be made via our website. Bancor may also provide notices of changes to this Privacy Policy or other matters by displaying notices or links to notices to you generally on our website. You agree that all agreements, notices, disclosures and any other communications that Bancor provide as aforementioned satisfy any legal requirement that such communications be in writing.',\n },\n {\n id: 11,\n subtitle: 'Contact Us',\n subcontent:\n 'For any questions about this Privacy Policy or any other issue regarding the Bacnor Network or our Services please contact us at: privacy@bancor.network',\n },\n];\n\nexport const PrivacyPolicy = () => {\n return (\n
\n

\n Privacy Policy\n

\n\n {content.map((item, index) => (\n
\n

{item.subtitle}

\n

{item.subcontent}

\n
\n ))}\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 SvgDiscoverDefiSlogan(_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: 215,\n height: 14,\n viewBox: \"0 0 215 14\",\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: \"M0.504 1.64H3.768C4.64267 1.64 5.448 1.784 6.184 2.072C6.92 2.36 7.55467 2.76 8.088 3.272C8.632 3.77333 9.05333 4.37067 9.352 5.064C9.66133 5.75733 9.816 6.50933 9.816 7.32C9.816 8.13067 9.66133 8.88267 9.352 9.576C9.05333 10.2693 8.632 10.872 8.088 11.384C7.55467 11.8853 6.92 12.28 6.184 12.568C5.448 12.856 4.64267 13 3.768 13H0.504V1.64ZM3.768 11.608C4.45067 11.608 5.06933 11.5013 5.624 11.288C6.18933 11.0747 6.66933 10.776 7.064 10.392C7.45867 10.008 7.76267 9.55467 7.976 9.032C8.2 8.50933 8.312 7.93867 8.312 7.32C8.312 6.70133 8.2 6.13067 7.976 5.608C7.76267 5.08533 7.45867 4.632 7.064 4.248C6.66933 3.864 6.18933 3.56533 5.624 3.352C5.06933 3.13867 4.45067 3.032 3.768 3.032H1.992V11.608H3.768ZM12.4531 2.856C12.1758 2.856 11.9411 2.76533 11.7491 2.584C11.5571 2.392 11.4611 2.15733 11.4611 1.88C11.4611 1.61333 11.5571 1.384 11.7491 1.192C11.9411 0.999999 12.1758 0.903999 12.4531 0.903999C12.7305 0.903999 12.9598 0.999999 13.1411 1.192C13.3225 1.384 13.4131 1.61333 13.4131 1.88C13.4131 2.15733 13.3225 2.392 13.1411 2.584C12.9598 2.76533 12.7305 2.856 12.4531 2.856ZM11.7491 5H13.1251V13H11.7491V5ZM18.3095 13.16C17.8828 13.16 17.4775 13.1067 17.0935 13C16.7095 12.8933 16.3735 12.7387 16.0855 12.536C15.7975 12.3227 15.5628 12.0613 15.3815 11.752C15.2002 11.4427 15.0935 11.0853 15.0615 10.68H16.4695C16.5122 10.9253 16.5922 11.1333 16.7095 11.304C16.8375 11.464 16.9868 11.5973 17.1575 11.704C17.3282 11.8107 17.5095 11.8853 17.7015 11.928C17.9042 11.9707 18.1122 11.992 18.3255 11.992C18.7628 11.992 19.1255 11.9067 19.4135 11.736C19.7122 11.5547 19.8615 11.288 19.8615 10.936C19.8615 10.616 19.7602 10.3547 19.5575 10.152C19.3548 9.94933 19.0135 9.784 18.5335 9.656L17.3815 9.352C16.6882 9.17067 16.1708 8.87733 15.8295 8.472C15.4882 8.06667 15.3175 7.576 15.3175 7C15.3175 6.66933 15.3868 6.37067 15.5255 6.104C15.6642 5.83733 15.8562 5.61333 16.1015 5.432C16.3468 5.24 16.6348 5.096 16.9655 5C17.3068 4.89333 17.6802 4.84 18.0855 4.84C18.5122 4.84 18.8962 4.89867 19.2375 5.016C19.5788 5.13333 19.8722 5.29867 20.1175 5.512C20.3735 5.71467 20.5762 5.95467 20.7255 6.232C20.8748 6.50933 20.9655 6.808 20.9975 7.128H19.6215C19.5148 6.776 19.3228 6.49867 19.0455 6.296C18.7788 6.09333 18.4588 5.992 18.0855 5.992C17.7015 5.992 17.3762 6.08267 17.1095 6.264C16.8428 6.43467 16.7095 6.67467 16.7095 6.984C16.7095 7.28267 16.8055 7.52267 16.9975 7.704C17.1895 7.87467 17.4988 8.01867 17.9255 8.136L19.2055 8.472C19.8775 8.64267 20.3842 8.93067 20.7255 9.336C21.0775 9.73067 21.2535 10.232 21.2535 10.84C21.2535 11.2347 21.1788 11.5813 21.0295 11.88C20.8802 12.168 20.6722 12.408 20.4055 12.6C20.1388 12.792 19.8242 12.9307 19.4615 13.016C19.1095 13.112 18.7255 13.16 18.3095 13.16ZM26.7543 13.16C26.1463 13.16 25.5863 13.0533 25.0743 12.84C24.5623 12.616 24.1196 12.3173 23.7463 11.944C23.3836 11.56 23.0956 11.1173 22.8823 10.616C22.6796 10.1147 22.5783 9.576 22.5783 9C22.5783 8.424 22.6796 7.88533 22.8823 7.384C23.0956 6.88267 23.3836 6.44533 23.7463 6.072C24.1196 5.688 24.5623 5.38933 25.0743 5.176C25.5863 4.952 26.1463 4.84 26.7543 4.84C27.2556 4.84 27.7249 4.91467 28.1623 5.064C28.6103 5.21333 29.0103 5.42133 29.3623 5.688C29.7143 5.944 30.0076 6.25867 30.2423 6.632C30.4876 6.99467 30.6689 7.38933 30.7863 7.816H29.3143C29.1329 7.304 28.8183 6.89333 28.3703 6.584C27.9223 6.264 27.3836 6.104 26.7543 6.104C26.3383 6.104 25.9596 6.17867 25.6183 6.328C25.2769 6.47733 24.9836 6.68533 24.7383 6.952C24.4929 7.208 24.3009 7.512 24.1623 7.864C24.0343 8.216 23.9703 8.59467 23.9703 9C23.9703 9.40533 24.0343 9.784 24.1623 10.136C24.3009 10.488 24.4929 10.7973 24.7383 11.064C24.9836 11.32 25.2769 11.5227 25.6183 11.672C25.9596 11.8213 26.3383 11.896 26.7543 11.896C27.3836 11.896 27.9223 11.7413 28.3703 11.432C28.8183 11.112 29.1329 10.696 29.3143 10.184H30.7863C30.6689 10.6213 30.4876 11.0213 30.2423 11.384C30.0076 11.7467 29.7143 12.0613 29.3623 12.328C29.0103 12.584 28.6103 12.7867 28.1623 12.936C27.7249 13.0853 27.2556 13.16 26.7543 13.16ZM36.1605 13.16C35.5525 13.16 34.9925 13.0533 34.4805 12.84C33.9685 12.616 33.5258 12.3173 33.1525 11.944C32.7792 11.5707 32.4858 11.1333 32.2725 10.632C32.0698 10.12 31.9685 9.576 31.9685 9C31.9685 8.424 32.0698 7.88533 32.2725 7.384C32.4858 6.872 32.7792 6.42933 33.1525 6.056C33.5258 5.68267 33.9685 5.38933 34.4805 5.176C34.9925 4.952 35.5525 4.84 36.1605 4.84C36.7578 4.84 37.3125 4.952 37.8245 5.176C38.3365 5.38933 38.7792 5.68267 39.1525 6.056C39.5258 6.42933 39.8138 6.872 40.0165 7.384C40.2298 7.88533 40.3365 8.424 40.3365 9C40.3365 9.576 40.2298 10.12 40.0165 10.632C39.8138 11.1333 39.5258 11.5707 39.1525 11.944C38.7792 12.3173 38.3365 12.616 37.8245 12.84C37.3125 13.0533 36.7578 13.16 36.1605 13.16ZM36.1605 11.88C36.5765 11.88 36.9552 11.8053 37.2965 11.656C37.6378 11.5067 37.9258 11.304 38.1605 11.048C38.4058 10.7813 38.5925 10.4773 38.7205 10.136C38.8592 9.784 38.9285 9.40533 38.9285 9C38.9285 8.60533 38.8592 8.232 38.7205 7.88C38.5925 7.528 38.4058 7.224 38.1605 6.968C37.9258 6.70133 37.6378 6.49333 37.2965 6.344C36.9552 6.19467 36.5765 6.12 36.1605 6.12C35.7445 6.12 35.3658 6.19467 35.0245 6.344C34.6832 6.49333 34.3898 6.70133 34.1445 6.968C33.8992 7.224 33.7072 7.528 33.5685 7.88C33.4405 8.232 33.3765 8.60533 33.3765 9C33.3765 9.40533 33.4405 9.784 33.5685 10.136C33.7072 10.4773 33.8992 10.7813 34.1445 11.048C34.3898 11.304 34.6832 11.5067 35.0245 11.656C35.3658 11.8053 35.7445 11.88 36.1605 11.88ZM40.9398 5H42.4758L45.2118 11.064L47.9478 5H49.4838L45.7878 13H44.6358L40.9398 5ZM54.1102 13.16C53.5236 13.16 52.9849 13.0587 52.4943 12.856C52.0036 12.6427 51.5769 12.3493 51.2143 11.976C50.8623 11.6027 50.5849 11.1653 50.3823 10.664C50.1796 10.152 50.0783 9.59733 50.0783 9C50.0783 8.41333 50.1689 7.86933 50.3503 7.368C50.5423 6.856 50.8143 6.41333 51.1663 6.04C51.5183 5.66667 51.9449 5.37333 52.4463 5.16C52.9476 4.94667 53.5129 4.84 54.1423 4.84C54.7716 4.84 55.3316 4.96267 55.8223 5.208C56.3236 5.44267 56.7396 5.768 57.0703 6.184C57.4116 6.58933 57.6569 7.06933 57.8063 7.624C57.9663 8.168 58.0249 8.74933 57.9823 9.368H51.4703C51.4809 9.73067 51.5556 10.0667 51.6943 10.376C51.8436 10.6853 52.0356 10.9573 52.2703 11.192C52.5049 11.416 52.7823 11.592 53.1023 11.72C53.4223 11.848 53.7636 11.912 54.1263 11.912C54.6276 11.912 55.0756 11.8107 55.4703 11.608C55.8756 11.3947 56.2009 11.048 56.4463 10.568H57.8542C57.7583 10.92 57.6036 11.256 57.3903 11.576C57.1769 11.8853 56.9103 12.1573 56.5903 12.392C56.2809 12.6267 55.9183 12.8133 55.5023 12.952C55.0863 13.0907 54.6223 13.16 54.1102 13.16ZM54.0943 6.056C53.8063 6.056 53.5236 6.09867 53.2463 6.184C52.9689 6.26933 52.7129 6.40267 52.4783 6.584C52.2543 6.76533 52.0569 6.99467 51.8863 7.272C51.7156 7.54933 51.5983 7.88533 51.5343 8.28H56.5263C56.3983 7.53333 56.1103 6.97867 55.6623 6.616C55.2143 6.24267 54.6916 6.056 54.0943 6.056ZM59.9679 5H61.3439V6.552C61.4185 6.296 61.5359 6.06667 61.6959 5.864C61.8559 5.66133 62.0372 5.49067 62.2399 5.352C62.4425 5.21333 62.6559 5.10667 62.8799 5.032C63.1145 4.95733 63.3492 4.92 63.5839 4.92C63.7972 4.92 64.0052 4.94133 64.2079 4.984V6.408C64.0799 6.35467 63.9572 6.32267 63.8399 6.312C63.7225 6.29067 63.5945 6.28 63.4559 6.28C63.1999 6.28 62.9439 6.33867 62.6879 6.456C62.4425 6.56267 62.2185 6.728 62.0159 6.952C61.8239 7.176 61.6639 7.464 61.5359 7.816C61.4079 8.15733 61.3439 8.56267 61.3439 9.032V13H59.9679V5ZM72.7906 13.08C72.4386 13.08 72.1133 13.032 71.8146 12.936C71.516 12.8293 71.2546 12.68 71.0306 12.488C70.8173 12.2853 70.6466 12.0293 70.5186 11.72C70.4013 11.4107 70.3426 11.048 70.3426 10.632V6.264H68.6466V5H70.3426V2.776H71.7186V5H74.0226V6.264H71.7186V10.456C71.7186 10.968 71.8306 11.3253 72.0546 11.528C72.2786 11.72 72.6093 11.816 73.0466 11.816C73.2173 11.816 73.388 11.8053 73.5586 11.784C73.74 11.752 73.8946 11.7093 74.0226 11.656V12.888C73.852 12.9413 73.6653 12.984 73.4626 13.016C73.26 13.0587 73.036 13.08 72.7906 13.08ZM75.7804 13V0.999999H77.1564V6.232C77.4337 5.752 77.7964 5.4 78.2444 5.176C78.6924 4.952 79.1777 4.84 79.7004 4.84C80.1484 4.84 80.559 4.91467 80.9324 5.064C81.3057 5.21333 81.6204 5.432 81.8764 5.72C82.143 5.99733 82.351 6.33867 82.5004 6.744C82.6497 7.13867 82.7244 7.58133 82.7244 8.072V13H81.3644V8.28C81.3644 7.608 81.1884 7.08 80.8364 6.696C80.495 6.30133 80.0417 6.104 79.4764 6.104C79.1564 6.104 78.8524 6.168 78.5644 6.296C78.287 6.424 78.0417 6.616 77.8284 6.872C77.6257 7.11733 77.4604 7.42133 77.3324 7.784C77.215 8.14667 77.1564 8.56267 77.1564 9.032V13H75.7804ZM88.6102 13.16C88.0236 13.16 87.4849 13.0587 86.9943 12.856C86.5036 12.6427 86.0769 12.3493 85.7143 11.976C85.3623 11.6027 85.0849 11.1653 84.8823 10.664C84.6796 10.152 84.5783 9.59733 84.5783 9C84.5783 8.41333 84.6689 7.86933 84.8503 7.368C85.0423 6.856 85.3143 6.41333 85.6663 6.04C86.0183 5.66667 86.4449 5.37333 86.9463 5.16C87.4476 4.94667 88.0129 4.84 88.6423 4.84C89.2716 4.84 89.8316 4.96267 90.3223 5.208C90.8236 5.44267 91.2396 5.768 91.5703 6.184C91.9116 6.58933 92.1569 7.06933 92.3063 7.624C92.4663 8.168 92.5249 8.74933 92.4823 9.368H85.9703C85.9809 9.73067 86.0556 10.0667 86.1943 10.376C86.3436 10.6853 86.5356 10.9573 86.7703 11.192C87.0049 11.416 87.2823 11.592 87.6023 11.72C87.9223 11.848 88.2636 11.912 88.6263 11.912C89.1276 11.912 89.5756 11.8107 89.9703 11.608C90.3756 11.3947 90.7009 11.048 90.9463 10.568H92.3542C92.2583 10.92 92.1036 11.256 91.8903 11.576C91.6769 11.8853 91.4103 12.1573 91.0903 12.392C90.7809 12.6267 90.4183 12.8133 90.0023 12.952C89.5863 13.0907 89.1223 13.16 88.6102 13.16ZM88.5943 6.056C88.3063 6.056 88.0236 6.09867 87.7463 6.184C87.4689 6.26933 87.2129 6.40267 86.9783 6.584C86.7543 6.76533 86.5569 6.99467 86.3863 7.272C86.2156 7.54933 86.0983 7.88533 86.0343 8.28H91.0263C90.8983 7.53333 90.6103 6.97867 90.1623 6.616C89.7143 6.24267 89.1916 6.056 88.5943 6.056ZM98.7961 6.264H97.1001V5H98.7961V3.384C98.7961 2.968 98.8548 2.60533 98.9721 2.296C99.1001 1.98667 99.2708 1.73067 99.4841 1.528C99.7081 1.31467 99.9695 1.16 100.268 1.064C100.567 0.957333 100.892 0.903999 101.244 0.903999C101.489 0.903999 101.713 0.925333 101.916 0.967999C102.119 1 102.311 1.048 102.492 1.112V2.328C102.364 2.27467 102.204 2.23733 102.012 2.216C101.831 2.184 101.66 2.168 101.5 2.168C101.052 2.168 100.716 2.26933 100.492 2.472C100.279 2.664 100.172 3.016 100.172 3.528V5H102.492V6.264H100.172V13H98.7961V6.264ZM106.831 13.16C106.394 13.16 105.994 13.0853 105.631 12.936C105.268 12.776 104.959 12.5573 104.703 12.28C104.447 12.0027 104.244 11.6667 104.095 11.272C103.956 10.8667 103.887 10.4133 103.887 9.912V5H105.263V9.704C105.263 10.376 105.423 10.9093 105.743 11.304C106.074 11.6987 106.516 11.896 107.071 11.896C107.38 11.896 107.668 11.832 107.935 11.704C108.212 11.5653 108.447 11.3733 108.639 11.128C108.842 10.872 109.002 10.5627 109.119 10.2C109.236 9.83733 109.295 9.42667 109.295 8.968V5H110.671V13H109.295V11.768C109.028 12.2373 108.676 12.5893 108.239 12.824C107.812 13.048 107.343 13.16 106.831 13.16ZM116.369 13.08C116.017 13.08 115.691 13.032 115.393 12.936C115.094 12.8293 114.833 12.68 114.609 12.488C114.395 12.2853 114.225 12.0293 114.097 11.72C113.979 11.4107 113.921 11.048 113.921 10.632V6.264H112.225V5H113.921V2.776H115.297V5H117.601V6.264H115.297V10.456C115.297 10.968 115.409 11.3253 115.633 11.528C115.857 11.72 116.187 11.816 116.625 11.816C116.795 11.816 116.966 11.8053 117.137 11.784C117.318 11.752 117.473 11.7093 117.601 11.656V12.888C117.43 12.9413 117.243 12.984 117.041 13.016C116.838 13.0587 116.614 13.08 116.369 13.08ZM122.191 13.16C121.753 13.16 121.353 13.0853 120.991 12.936C120.628 12.776 120.319 12.5573 120.062 12.28C119.807 12.0027 119.604 11.6667 119.455 11.272C119.316 10.8667 119.247 10.4133 119.247 9.912V5H120.623V9.704C120.623 10.376 120.783 10.9093 121.103 11.304C121.433 11.6987 121.876 11.896 122.431 11.896C122.74 11.896 123.028 11.832 123.295 11.704C123.572 11.5653 123.807 11.3733 123.999 11.128C124.201 10.872 124.361 10.5627 124.479 10.2C124.596 9.83733 124.655 9.42667 124.655 8.968V5H126.031V13H124.655V11.768C124.388 12.2373 124.036 12.5893 123.599 12.824C123.172 13.048 122.703 13.16 122.191 13.16ZM128.624 5H130V6.552C130.075 6.296 130.192 6.06667 130.352 5.864C130.512 5.66133 130.693 5.49067 130.896 5.352C131.099 5.21333 131.312 5.10667 131.536 5.032C131.771 4.95733 132.005 4.92 132.24 4.92C132.453 4.92 132.661 4.94133 132.864 4.984V6.408C132.736 6.35467 132.613 6.32267 132.496 6.312C132.379 6.29067 132.251 6.28 132.112 6.28C131.856 6.28 131.6 6.33867 131.344 6.456C131.099 6.56267 130.875 6.728 130.672 6.952C130.48 7.176 130.32 7.464 130.192 7.816C130.064 8.15733 130 8.56267 130 9.032V13H128.624V5ZM137.61 13.16C137.024 13.16 136.485 13.0587 135.994 12.856C135.504 12.6427 135.077 12.3493 134.714 11.976C134.362 11.6027 134.085 11.1653 133.882 10.664C133.68 10.152 133.578 9.59733 133.578 9C133.578 8.41333 133.669 7.86933 133.85 7.368C134.042 6.856 134.314 6.41333 134.666 6.04C135.018 5.66667 135.445 5.37333 135.946 5.16C136.448 4.94667 137.013 4.84 137.642 4.84C138.272 4.84 138.832 4.96267 139.322 5.208C139.824 5.44267 140.24 5.768 140.57 6.184C140.912 6.58933 141.157 7.06933 141.306 7.624C141.466 8.168 141.525 8.74933 141.482 9.368H134.97C134.981 9.73067 135.056 10.0667 135.194 10.376C135.344 10.6853 135.536 10.9573 135.77 11.192C136.005 11.416 136.282 11.592 136.602 11.72C136.922 11.848 137.264 11.912 137.626 11.912C138.128 11.912 138.576 11.8107 138.97 11.608C139.376 11.3947 139.701 11.048 139.946 10.568H141.354C141.258 10.92 141.104 11.256 140.89 11.576C140.677 11.8853 140.41 12.1573 140.09 12.392C139.781 12.6267 139.418 12.8133 139.002 12.952C138.586 13.0907 138.122 13.16 137.61 13.16ZM137.594 6.056C137.306 6.056 137.024 6.09867 136.746 6.184C136.469 6.26933 136.213 6.40267 135.978 6.584C135.754 6.76533 135.557 6.99467 135.386 7.272C135.216 7.54933 135.098 7.88533 135.034 8.28H140.026C139.898 7.53333 139.61 6.97867 139.162 6.616C138.714 6.24267 138.192 6.056 137.594 6.056ZM150.879 13.16C150.271 13.16 149.711 13.0533 149.199 12.84C148.687 12.616 148.245 12.3173 147.871 11.944C147.498 11.5707 147.205 11.1333 146.991 10.632C146.789 10.12 146.687 9.576 146.687 9C146.687 8.424 146.789 7.88533 146.991 7.384C147.205 6.872 147.498 6.42933 147.871 6.056C148.245 5.68267 148.687 5.38933 149.199 5.176C149.711 4.952 150.271 4.84 150.879 4.84C151.477 4.84 152.031 4.952 152.543 5.176C153.055 5.38933 153.498 5.68267 153.871 6.056C154.245 6.42933 154.533 6.872 154.735 7.384C154.949 7.88533 155.055 8.424 155.055 9C155.055 9.576 154.949 10.12 154.735 10.632C154.533 11.1333 154.245 11.5707 153.871 11.944C153.498 12.3173 153.055 12.616 152.543 12.84C152.031 13.0533 151.477 13.16 150.879 13.16ZM150.879 11.88C151.295 11.88 151.674 11.8053 152.015 11.656C152.357 11.5067 152.645 11.304 152.879 11.048C153.125 10.7813 153.311 10.4773 153.439 10.136C153.578 9.784 153.647 9.40533 153.647 9C153.647 8.60533 153.578 8.232 153.439 7.88C153.311 7.528 153.125 7.224 152.879 6.968C152.645 6.70133 152.357 6.49333 152.015 6.344C151.674 6.19467 151.295 6.12 150.879 6.12C150.463 6.12 150.085 6.19467 149.743 6.344C149.402 6.49333 149.109 6.70133 148.863 6.968C148.618 7.224 148.426 7.528 148.287 7.88C148.159 8.232 148.095 8.60533 148.095 9C148.095 9.40533 148.159 9.784 148.287 10.136C148.426 10.4773 148.618 10.7813 148.863 11.048C149.109 11.304 149.402 11.5067 149.743 11.656C150.085 11.8053 150.463 11.88 150.879 11.88ZM157.577 6.264H155.881V5H157.577V3.384C157.577 2.968 157.636 2.60533 157.753 2.296C157.881 1.98667 158.052 1.73067 158.265 1.528C158.489 1.31467 158.751 1.16 159.049 1.064C159.348 0.957333 159.673 0.903999 160.025 0.903999C160.271 0.903999 160.495 0.925333 160.697 0.967999C160.9 1 161.092 1.048 161.273 1.112V2.328C161.145 2.27467 160.985 2.23733 160.793 2.216C160.612 2.184 160.441 2.168 160.281 2.168C159.833 2.168 159.497 2.26933 159.273 2.472C159.06 2.664 158.953 3.016 158.953 3.528V5H161.273V6.264H158.953V13H157.577V6.264ZM166.426 1.64H169.69C170.565 1.64 171.37 1.784 172.106 2.072C172.842 2.36 173.477 2.76 174.01 3.272C174.554 3.77333 174.975 4.37067 175.274 5.064C175.583 5.75733 175.738 6.50933 175.738 7.32C175.738 8.13067 175.583 8.88267 175.274 9.576C174.975 10.2693 174.554 10.872 174.01 11.384C173.477 11.8853 172.842 12.28 172.106 12.568C171.37 12.856 170.565 13 169.69 13H166.426V1.64ZM169.69 11.608C170.373 11.608 170.991 11.5013 171.546 11.288C172.111 11.0747 172.591 10.776 172.986 10.392C173.381 10.008 173.685 9.55467 173.898 9.032C174.122 8.50933 174.234 7.93867 174.234 7.32C174.234 6.70133 174.122 6.13067 173.898 5.608C173.685 5.08533 173.381 4.632 172.986 4.248C172.591 3.864 172.111 3.56533 171.546 3.352C170.991 3.13867 170.373 3.032 169.69 3.032H167.914V11.608H169.69ZM181.157 13.16C180.57 13.16 180.032 13.0587 179.541 12.856C179.05 12.6427 178.624 12.3493 178.261 11.976C177.909 11.6027 177.632 11.1653 177.429 10.664C177.226 10.152 177.125 9.59733 177.125 9C177.125 8.41333 177.216 7.86933 177.397 7.368C177.589 6.856 177.861 6.41333 178.213 6.04C178.565 5.66667 178.992 5.37333 179.493 5.16C179.994 4.94667 180.56 4.84 181.189 4.84C181.818 4.84 182.378 4.96267 182.869 5.208C183.37 5.44267 183.786 5.768 184.117 6.184C184.458 6.58933 184.704 7.06933 184.853 7.624C185.013 8.168 185.072 8.74933 185.029 9.368H178.517C178.528 9.73067 178.602 10.0667 178.741 10.376C178.89 10.6853 179.082 10.9573 179.317 11.192C179.552 11.416 179.829 11.592 180.149 11.72C180.469 11.848 180.81 11.912 181.173 11.912C181.674 11.912 182.122 11.8107 182.517 11.608C182.922 11.3947 183.248 11.048 183.493 10.568H184.901C184.805 10.92 184.65 11.256 184.437 11.576C184.224 11.8853 183.957 12.1573 183.637 12.392C183.328 12.6267 182.965 12.8133 182.549 12.952C182.133 13.0907 181.669 13.16 181.157 13.16ZM181.141 6.056C180.853 6.056 180.57 6.09867 180.293 6.184C180.016 6.26933 179.76 6.40267 179.525 6.584C179.301 6.76533 179.104 6.99467 178.933 7.272C178.762 7.54933 178.645 7.88533 178.581 8.28H183.573C183.445 7.53333 183.157 6.97867 182.709 6.616C182.261 6.24267 181.738 6.056 181.141 6.056ZM187.176 1.64H193.784V3.048H188.664V6.488H192.712V7.896H188.664V13H187.176V1.64ZM196.156 2.856C195.879 2.856 195.644 2.76533 195.452 2.584C195.26 2.392 195.164 2.15733 195.164 1.88C195.164 1.61333 195.26 1.384 195.452 1.192C195.644 0.999999 195.879 0.903999 196.156 0.903999C196.434 0.903999 196.663 0.999999 196.844 1.192C197.026 1.384 197.116 1.61333 197.116 1.88C197.116 2.15733 197.026 2.392 196.844 2.584C196.663 2.76533 196.434 2.856 196.156 2.856ZM195.452 5H196.828V13H195.452V5ZM208.768 13.096L212.288 9.576H202.928V8.424H212.288L208.768 4.904L209.552 4.104L214.448 9L209.552 13.896L208.768 13.096Z\",\n fill: \"white\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDiscoverDefiSlogan);\nexport default __webpack_public_path__ + \"static/media/discoverDefiSlogan.c8921a49.svg\";\nexport { ForwardRef as ReactComponent };","import { ReactComponent as IconTimes } from 'assets/icons/times.svg';\nimport { ReactComponent as IconBancorv3 } from 'assets/logos/bancorv3.svg';\nimport { ReactComponent as IconSlogan } from 'assets/logos/discoverDefiSlogan.svg';\nimport { useDispatch } from 'react-redux';\nimport { setShowBanner } from 'redux/user/user';\nimport { useCallback } from 'react';\n\nexport const MarketingBanner = () => {\n const dispatch = useDispatch();\n const handleCloseBanner = useCallback(\n (e: any) => {\n e.preventDefault();\n dispatch(setShowBanner(false));\n },\n [dispatch]\n );\n\n return (\n
\n \n \n \n \n \n \n \n
\n );\n};\n","import { useEffect, useState } from 'react';\nimport { BrowserRouter, Redirect, Route, Switch } from 'react-router-dom';\nimport { useWeb3React } from '@web3-react/core';\nimport { Swap } from 'pages/Swap';\nimport { NotFound } from 'pages/NotFound';\nimport { UnsupportedNetwork } from 'pages/UnsupportedNetwork';\nimport { Tokens } from 'pages/Tokens';\nimport { Pools } from 'pages/earn/pools/Pools';\nimport { Portfolio } from 'pages/earn/portfolio/Portfolio';\nimport { Vote } from 'pages/Vote';\nimport { Fiat } from 'pages/Fiat';\nimport { LayoutHeader } from 'elements/layoutHeader/LayoutHeader';\nimport { useAutoConnect } from 'services/web3/wallet/hooks';\nimport { setUser } from 'services/observables/user';\nimport { NotificationAlerts } from 'elements/notifications/NotificationAlerts';\nimport { setNetwork } from 'services/observables/network';\nimport { Sidebar } from 'elements/sidebar/Sidebar';\nimport { Slideover } from 'components/slideover/Slideover';\nimport { useDispatch } from 'react-redux';\nimport {\n setDarkMode,\n setSlippageTolerance,\n setUsdToggle,\n} from 'redux/user/user';\nimport {\n Notification,\n setNotifications,\n} from 'redux/notification/notification';\nimport { useAppSelector } from 'redux/index';\nimport { googleTagManager } from 'services/api/googleTagManager';\nimport { EthNetworks } from 'services/web3/types';\nimport {\n getDarkModeLS,\n getNotificationsLS,\n getSlippageToleranceLS,\n getUsdToggleLS,\n setNotificationsLS,\n} from 'utils/localStorage';\nimport { subscribeToObservables } from 'services/observables/triggers';\nimport { isUnsupportedNetwork } from 'utils/helperFunctions';\nimport { RewardsClaim } from 'pages/earn/portfolio/rewards/RewardsClaim';\nimport { RewardsStake } from 'pages/earn/portfolio/rewards/RewardsStake';\nimport { AddLiquidity } from 'pages/earn/pools/AddLiquidity';\nimport { TermsOfUse } from './pages/TermsOfUse';\nimport { PrivacyPolicy } from './pages/PrivacyPolicy';\nimport { MarketingBanner } from './elements/marketingBanner/MarketingBanner';\n//import { keepWSOpen } from 'services/web3';\n\nexport const App = () => {\n const dispatch = useDispatch();\n const { chainId, account } = useWeb3React();\n useAutoConnect();\n const unsupportedNetwork = isUnsupportedNetwork(chainId);\n const [isSidebarMinimized, setIsSidebarMinimized] = useState(false);\n const [isSidebarOpen, setIsSidebarOpen] = useState(false);\n const notifications = useAppSelector(\n (state) => state.notification.notifications\n );\n\n useEffect(() => {\n const usd = getUsdToggleLS();\n if (usd) dispatch(setUsdToggle(usd));\n\n const notify = getNotificationsLS();\n if (notify) dispatch(setNotifications(notify));\n\n const slippage = getSlippageToleranceLS();\n if (slippage) dispatch(setSlippageTolerance(slippage));\n\n subscribeToObservables(dispatch);\n //keepWSOpen();\n\n const dark = getDarkModeLS();\n if (dark) dispatch(setDarkMode(dark));\n }, [dispatch]);\n\n useEffect(() => {\n setNotificationsLS(notifications);\n }, [notifications]);\n\n useEffect(() => {\n if (chainId) setNetwork(chainId);\n else setNetwork(EthNetworks.Mainnet);\n }, [chainId]);\n\n useEffect(() => {\n setUser(account);\n googleTagManager('', '');\n }, [account]);\n\n const showBanner = useAppSelector((state) => state.user.showBanner);\n\n return (\n \n \n \n\n \n\n {unsupportedNetwork ? (\n \n ) : (\n \n {showBanner && }\n \n \n \n {\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 \n \n \n \n \n \n \n \n \n \n \n \n \n \n )}\n \n \n );\n};\n","import {\n tokenLists$,\n userPreferredListIds$,\n keeperDaoTokens$,\n listOfLists,\n tokens$,\n pools$,\n tokensNoBalance$,\n tokenListMerged$,\n poolTokens$,\n} from 'services/observables/tokens';\nimport {\n setAllTokens,\n setBntPrice,\n setKeeperDaoTokens,\n setTokenList,\n setTokenLists,\n} from 'redux/bancor/bancor';\nimport { getTokenListLS, setTokenListLS } from 'utils/localStorage';\nimport { take } from 'rxjs/operators';\nimport {\n loadingBalances$,\n loadingLockedBnt$,\n loadingPositions$,\n loadingRewards$,\n} from './user';\nimport { setLoadingBalances } from 'redux/user/user';\nimport { statistics$ } from 'services/observables/statistics';\nimport { setPools, setStats } from 'redux/bancor/pool';\nimport { bntPrice$ } from 'services/observables/bancor';\nimport {\n setLoadingLockedBnt,\n setLoadingPositions,\n setLoadingRewards,\n setLockedAvailableBNT,\n setPoolTokens,\n setProtectedPositions,\n setRewards,\n} from 'redux/liquidity/liquidity';\nimport {\n lockedAvailableBnt$,\n protectedPositions$,\n rewards$,\n} from './liquidity';\n\nexport const subscribeToObservables = (dispatch: any) => {\n tokenLists$.subscribe((tokenLists) => {\n dispatch(setTokenLists(tokenLists));\n });\n\n tokensNoBalance$\n .pipe(take(1))\n .toPromise()\n .then((tokenList) => dispatch(setTokenList(tokenList)));\n\n loadingBalances$.subscribe((loading) =>\n dispatch(setLoadingBalances(loading))\n );\n\n const userListIds = getTokenListLS();\n if (userListIds.length === 0) {\n const twoLists = [listOfLists[0].name, listOfLists[1].name];\n setTokenListLS(twoLists);\n userPreferredListIds$.next(twoLists);\n } else userPreferredListIds$.next(userListIds);\n\n tokens$.subscribe((tokenList) => {\n dispatch(setTokenList(tokenList));\n });\n\n tokenListMerged$.subscribe((tokenList) => {\n dispatch(setAllTokens(tokenList));\n });\n\n keeperDaoTokens$.subscribe((keeperDaoTokens) => {\n dispatch(setKeeperDaoTokens(keeperDaoTokens));\n });\n\n pools$.subscribe((pools) => {\n dispatch(setPools(pools));\n });\n\n statistics$.subscribe((stats) => {\n dispatch(setStats(stats));\n });\n\n bntPrice$.subscribe((bntPrice) => {\n dispatch(setBntPrice(bntPrice));\n });\n\n protectedPositions$.subscribe((protectedPositions) => {\n dispatch(setProtectedPositions(protectedPositions));\n });\n\n rewards$.subscribe((rewards) => {\n dispatch(setRewards(rewards));\n });\n\n poolTokens$.subscribe((poolTokens) => dispatch(setPoolTokens(poolTokens)));\n\n lockedAvailableBnt$.subscribe((lockedAvailableBnt) => {\n if (lockedAvailableBnt) {\n dispatch(setLockedAvailableBNT(lockedAvailableBnt));\n }\n });\n\n loadingPositions$.subscribe((loadingPositions) =>\n dispatch(setLoadingPositions(loadingPositions))\n );\n loadingRewards$.subscribe((loadingRewards) =>\n dispatch(setLoadingRewards(loadingRewards))\n );\n loadingLockedBnt$.subscribe((loadingLockedBnt) =>\n dispatch(setLoadingLockedBnt(loadingLockedBnt))\n );\n};\n","import { ReportHandler } from 'web-vitals';\n\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import en from 'i18n/en.json';\nimport he from 'i18n/he.json';\n\nexport type LocaleType = 'en' | 'he';\n\nexport const locales = {\n en,\n he,\n};\n\n//To add a new locale check this list https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes in the 639-1 coulmn\nexport const getLanguageByLocale = (locale: string): string => {\n switch (locale) {\n case 'en':\n return 'English';\n case 'he':\n return 'עברית';\n default:\n return 'English';\n }\n};\n","import { IntlProvider } from 'react-intl';\nimport { useAppSelector } from 'redux/index';\nimport { locales, LocaleType } from 'i18n';\n\nexport const I18nProvider = ({ children }: { children: JSX.Element }) => {\n const locale = useAppSelector((state) => state.user.locale);\n const messages = locales[locale];\n\n return (\n \n {children}\n \n );\n};\n","import { StrictMode } from 'react';\nimport ReactDOM from 'react-dom';\nimport { Provider } from 'react-redux';\nimport { App } from 'App';\nimport { store } from 'redux/index';\nimport reportWebVitals from 'reportWebVitals';\nimport { I18nProvider } from 'i18n/i18nProvider';\nimport { getLibrary } from 'services/web3/wallet/utils';\nimport { Web3ReactProvider } from '@web3-react/core';\nimport 'styles/index.css';\n\nReactDOM.render(\n \n \n \n \n \n \n \n \n ,\n document.getElementById('root')\n);\n\nreportWebVitals();\n"],"sourceRoot":""}