{"version":3,"sources":["polyfills.ts","utils/userAgent.ts","components/analytics/index.ts","lib/utils/JsonRpcConnector.ts","lib/hooks/useActiveWeb3React.tsx","packages/types/index.ts","packages/core/normalizers.ts","packages/core/manager.ts","packages/core/provider.tsx","constants/misc.ts","hooks/useActiveWeb3React.ts","hooks/useDebounce.ts","hooks/useIsWindowVisible.ts","lib/hooks/useBlockNumber.ts","constants/chains.ts","utils/constructSameAddressMap.ts","constants/addresses.ts","constants/tokens.ts","utils/index.ts","hooks/useContract.ts","lib/state/multicall.tsx","constants/graph.ts","components/Blocklist/index.tsx","components/Loader/index.tsx","state/hooks.ts","state/user/actions.ts","hooks/useParsedQueryString.ts","hooks/useApeModeQueryParamReader.ts","components/analytics/GoogleAnalyticsReporter.tsx","state/application/reducer.ts","state/burn/actions.ts","state/burn/reducer.ts","state/burn/v3/actions.ts","state/burn/v3/reducer.ts","state/data/slice.ts","state/global/actions.ts","constants/lists.ts","state/lists/actions.ts","state/lists/reducer.ts","state/logs/utils.ts","state/logs/slice.ts","state/mint/actions.ts","state/mint/reducer.ts","state/mint/v3/actions.ts","state/mint/v3/reducer.ts","constants/infura.ts","utils/transformSwapRouteToGetQuoteResult.ts","lib/hooks/routing/clientSideSmartOrderRouter.ts","state/routing/slice.ts","state/swap/actions.ts","lib/hooks/useNativeCurrency.ts","lib/hooks/multicall.ts","utils/safeNamehash.ts","utils/isZero.ts","hooks/useENSAddress.ts","lib/utils/tryParseCurrencyAmount.ts","utils/isTradeBetter.ts","constants/routing.ts","hooks/useAllCurrencyCombinations.ts","lib/utils/pair.ts","assets/images/ethereum-logo.png","assets/svg/arbitrum_logo.svg","assets/svg/aurora-logo.svg","assets/svg/celo-logo.svg","assets/svg/optimistic_ethereum.svg","assets/svg/polygon-matic-logo.svg","constants/chainInfo.ts","utils/supportedChainId.ts","lib/utils/resolveENSContentHash.ts","lib/utils/contenthashToUri.ts","lib/utils/parseENSAddress.ts","lib/utils/uriToHttp.ts","lib/hooks/useTokenList/validateTokenList.ts","lib/hooks/useTokenList/fetchTokenList.ts","lib/hooks/useCurrencyBalance.ts","lib/hooks/useTokenList/filtering.ts","lib/hooks/useTokenList/sorting.ts","state/lists/wrappedTokenInfo.ts","lib/hooks/useTokenList/utils.ts","lib/hooks/useTokenList/index.ts","lib/hooks/useCurrency.ts","utils/listSort.ts","state/lists/hooks.ts","state/user/hooks.tsx","hooks/Tokens.ts","hooks/useV2Pairs.ts","hooks/useBestV2Trade.ts","state/routing/types.ts","hooks/usePools.ts","hooks/useAllV3Routes.ts","hooks/useV3SwapPools.ts","hooks/useClientSideV3Trade.ts","hooks/useUSDCPrice.ts","hooks/useAutoSlippageTolerance.ts","lib/hooks/useIsValidBlock.ts","state/routing/useRoutingAPITrade.ts","hooks/useENSName.ts","state/swap/hooks.tsx","state/swap/reducer.ts","state/transactions/actions.ts","state/transactions/reducer.ts","state/user/reducer.ts","state/index.ts","utils/anonymizeLink.ts","theme/components.tsx","theme/index.tsx","components/Column/index.tsx","components/Row/index.tsx","components/ErrorBoundary/index.tsx","assets/svg/logo.svg","assets/svg/logo-mark.svg","state/application/hooks.ts","hooks/useMonitoringEventCallback.ts","state/transactions/hooks.tsx","hooks/useTheme.ts","components/Button/index.tsx","assets/images/walletConnectIcon.svg","packages/abstract-connector/index.ts","packages/injected-connector/index.ts","packages/wallet-connector/index.ts","utils/getLibrary.ts","connectors/NetworkConnector.ts","connectors/index.ts","hooks/useENSAvatar.ts","components/Identicon/index.tsx","components/Identicon/StatusIcon.tsx","components/Card/index.tsx","components/PrivacyPolicy/index.tsx","assets/images/metamask.png","assets/images/x.svg","assets/images/arrow-right.svg","constants/wallet.ts","hooks/usePrevious.ts","utils/getExplorerLink.ts","components/AccountDetails/Copy.tsx","hooks/useCopyClipboard.ts","state/governance/types.ts","components/AccountDetails/TransactionSummary.tsx","components/AccountDetails/Transaction.tsx","components/AccountDetails/index.tsx","components/Modal/index.tsx","components/WalletModal/Option.tsx","components/WalletModal/PendingView.tsx","components/WalletModal/index.tsx","components/Web3Status/index.tsx","hooks/useOnClickOutside.tsx","utils/routes.ts","utils/switchToNetwork.ts","components/Header/NetworkSelector.tsx","components/Header/index.tsx","assets/images/token-logo.png","state/claim/hooks.ts","assets/images/big_unicorn.png","components/Popups/ClaimPopup.tsx","assets/images/noise.png","assets/images/xl_uni.png","components/earn/styled.ts","components/Popups/FailedNetworkSwitchPopup.tsx","components/Popups/TransactionPopup.tsx","components/Popups/ReasonPopup.tsx","components/Popups/PopupItem.tsx","components/Popups/index.tsx","components/Web3ReactManager/index.tsx","hooks/web3.ts","theme/DarkModeQueryParamReader.tsx","hooks/useHttpLocations.ts","hooks/useENSContentHash.ts","assets/svg/matic-token-icon.svg","lib/hooks/useCurrencyLogoURIs.ts","components/Logo/index.tsx","components/swap/UnsupportedCurrencyFooter.tsx","components/CurrencyLogo/index.tsx","hooks/useTotalSupply.ts","state/mint/hooks.tsx","hooks/useClubManager.ts","components/Loader/styled.tsx","assets/images/dropdown.svg","constants/locales.ts","lib/utils/formatLocaleNumber.ts","utils/formatCurrencyAmount.ts","components/DoubleLogo/index.tsx","components/NumericalInput/index.tsx","lib/hooks/useInterval.ts","components/Popover/index.tsx","components/Tooltip/index.tsx","components/QuestionHelper/index.tsx","assets/svg/tokenlist.svg","components/ListLogo/index.tsx","components/SearchModal/ImportRow.tsx","components/SearchModal/styleds.tsx","components/SearchModal/CurrencyList.tsx","components/SearchModal/CurrencySearch.tsx","state/wallet/hooks.ts","hooks/useToggle.ts","components/swap/TradePrice.tsx","components/swap/styleds.tsx","hooks/useFetchListCallback.ts","components/SearchModal/ImportList.tsx","components/SearchModal/TokenImportCard.tsx","components/SearchModal/BlockedToken.tsx","components/SearchModal/ImportToken.tsx","components/SearchModal/CurrencySearchModal.tsx","hooks/useLast.ts","components/HoverInlineText/index.tsx","utils/prices.ts","components/CurrencyInputPanel/FiatValue.tsx","components/CurrencyInputPanel/asset.tsx","components/Dropdown/styles.ts","components/Dropdown/CurrencyDropdown.tsx","components/CurrencyInputPanel/limited.tsx","components/Badge/index.tsx","assets/images/blue-loader.svg","components/TransactionConfirmationModal/AnimatedConfirmation.tsx","components/TransactionConfirmationModal/index.tsx","hooks/useAddTokenToMetamask.ts","hooks/useIsArgentWallet.ts","hooks/useERC20Permit.ts","hooks/useCurrentBlockTimestamp.ts","lib/state/atoms.ts","lib/state/settings.ts","utils/calculateGasMargin.ts","lib/hooks/useApproval.ts","hooks/useTokenAllowance.ts","hooks/useApproveCallback.ts","hooks/useIsSwapUnsupported.ts","hooks/useV3Positions.ts","utils/currencyId.ts","utils/maxAmountSpend.ts","components/CurrencyInputPanel/index.tsx","components/NavigationTabs/index.tsx","pages/AppBody.tsx","pages/AddLiquidity/styled.tsx","hooks/useVaultManager.ts","pages/AddLiquidity/index.tsx","utils/getTickToPrice.ts","state/mint/v3/utils.ts","state/mint/v3/hooks.tsx","hooks/useTransactionDeadline.ts","state/transactions/types.ts","pages/AddLiquidityV3/styled.tsx","components/Toggle/MultiToggle.tsx","components/RateToggle/index.tsx","state/data/generated.ts","state/data/enhanced.ts","hooks/useFeeTierDistribution.ts","components/FeeSelector/FeeTierPercentageBadge.tsx","components/FeeSelector/shared.tsx","components/FeeSelector/FeeOption.tsx","components/FeeSelector/index.tsx","components/InputStepCounter/InputStepCounter.tsx","components/RangeSelector/index.tsx","components/Badge/RangeBadge.tsx","utils/formatTickPrice.ts","utils/unwrappedToken.ts","components/PositionPreview/index.tsx","hooks/useColor.ts","components/LiquidityChartRangeInput/Area.tsx","components/LiquidityChartRangeInput/AxisBottom.tsx","components/LiquidityChartRangeInput/svg.tsx","components/LiquidityChartRangeInput/Brush.tsx","components/LiquidityChartRangeInput/Line.tsx","components/LiquidityChartRangeInput/Zoom.tsx","components/LiquidityChartRangeInput/Chart.tsx","utils/computeSurroundingTicks.ts","hooks/usePoolTickData.ts","components/LiquidityChartRangeInput/index.tsx","components/LiquidityChartRangeInput/hooks.ts","components/RangeSelector/PresetsButtons.tsx","pages/AddLiquidityV3/Review.tsx","pages/AddLiquidityV3/index.tsx","hooks/useDerivedPositionInfo.ts","hooks/useArgentWalletContract.ts","pages/AddLiquidity/redirects.tsx","pages/AddToken/styled.tsx","pages/AddToken/index.tsx","hooks/useIsTickAtLimit.ts","components/PositionListItemV3/index.tsx","lib/hooks/useLiquidityApproval.ts","hooks/useLiquiditySpender.ts","pages/AddTokenV3/styled.tsx","pages/AddTokenV3/index.tsx","pages/AddToken/redirects.tsx","pages/Deposit/styled.tsx","pages/Deposit/index.tsx","pages/Deposit/redirects.tsx","constants/amm.ts","components/Dropdown/index.tsx","components/PairListItem/index.tsx","components/PairList/index.tsx","pages/MigrateV2/styleds.tsx","pages/MigrateV2/index.tsx","components/PositionListItem/index.tsx","components/PositionListItemClosed/index.tsx","components/AssetListItem/index.tsx","components/PositionList/index.tsx","pages/Lend/styleds.tsx","pages/Lend/index.tsx","hooks/useDDJ.ts","pages/Claim/index.tsx","hooks/useRewardStorage.ts","components/DDCPosition/enums.ts","assets/images/positionDown.png","assets/images/positionLeft.png","assets/images/positionRight.png","assets/images/positionUp.png","components/AddressStyledPanel/index.tsx","components/Dropdown/DDCDropdown.tsx","components/CurrencyInputPanel/ddcToken.tsx","hooks/useDoubleDownClub.ts","components/Dropdown/AddressDropdown.tsx","components/DDCPosition/listitem.tsx","components/DDCPosition/index.tsx","pages/Join/index.tsx","pages/Pool/styleds.tsx","pages/Pool/index.tsx","components/Toggle/index.tsx","hooks/useV3PositionFees.ts","hooks/usePositionTokenURI.ts","pages/Pool/PositionPage.tsx","hooks/useV2LiquidityTokenPermit.ts","components/PositionCard/index.tsx","components/Slider/index.tsx","hooks/useDebouncedChangeHandler.tsx","state/burn/hooks.tsx","utils/calculateSlippageAmount.ts","pages/RemoveLiquidity/index.tsx","components/FormattedCurrencyAmount/index.tsx","state/burn/v3/hooks.tsx","pages/RemoveLiquidity/styled.ts","pages/RemoveLiquidity/V3.tsx","pages/Swap/redirects.tsx","pages/App.tsx","serviceWorkerRegistration.ts","state/application/updater.ts","state/lists/updater.ts","state/logs/updater.ts","utils/retry.ts","lib/hooks/transactions/updater.tsx","state/transactions/updater.tsx","state/user/updater.tsx","theme/RadialGradientByChainUpdater.ts","index.tsx"],"names":["flat","shim","flatMap","parser","UAParser","window","navigator","userAgent","type","getDevice","getResult","isMobile","GOOGLE_ANALYTICS_CLIENT_ID_STORAGE_KEY","GOOGLE_ANALYTICS_ID","process","storedClientId","localStorage","getItem","ReactGA","initialize","gaOptions","storage","storeGac","clientId","undefined","set","anonymizeIp","customBrowserType","parseChainId","chainId","Number","parseInt","Connector","EMPTY_CONNECTOR","initializeConnector","EMPTY","EMPTY_CONTEXT","connector","Web3Context","atom","createContext","useActiveWeb3React","useContext","ConnectorEvent","normalizeChainId","replace","parsedChainId","trim","substring","invariant","isNaN","concat","isInteger","normalizeAccount","_address","match","address","chars","toLowerCase","split","charsArray","Uint8Array","i","charCodeAt","hashed","arrayify","keccak256","toUpperCase","addressChecksum","join","StaleConnectorError","_Error","_inherits","_super","_createSuper","_this","_classCallCheck","call","name","constructor","_createClass","_wrapNativeSuper","Error","UnsupportedChainIdError","_Error2","_super2","unsupportedChainId","supportedChainIds","_this2","message","ActionType","reducer","state","_ref","payload","ACTIVATE_CONNECTOR","provider","account","onError","UPDATE","_objectSpread","UPDATE_FROM_ERROR","error","ERROR","ERROR_FROM_ACTIVATION","DEACTIVATE_CONNECTOR","augmentConnectorUpdate","_x","_x2","_augmentConnectorUpdate","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee3","update","_ref4","_ref5","_chainId","_account","wrap","_context3","prev","next","getProvider","t0","sent","Promise","all","getChainId","getAccount","_slicedToArray","includes","abrupt","stop","PRIMARY_KEY","CONTEXTS","createWeb3ReactRoot","key","activate","_activate","_callee","_context","setError","deactivate","active","displayName","Provider","getLibrary","children","_useWeb3ReactManager","_useReducer","useReducer","_useReducer2","dispatch","updateBusterRef","useRef","current","useCallback","_ref2","throwErrors","updateBusterInitial","activated","augmentedUpdate","_args","length","then","warning","_x3","_x4","handleUpdate","_ref3","_callee2","_chainId4","_error3","_account4","_context2","_x5","handleError","handleDeactivate","useEffect","on","Update","Deactivate","off","useWeb3ReactManager","library","useMemo","web3ReactContext","_jsx","value","Web3ReactProvider","useWeb3React","Object","keys","getWeb3ReactContext","ZERO_ADDRESS","NetworkContextName","DEFAULT_DEADLINE_FROM_NOW","parent","L2_DEADLINE_FROM_NOW","DEFAULT_TXN_DISMISS_MS","L2_TXN_DISMISS_MS","BIG_INT_ZERO","JSBI","BigInt","BIPS_BASE","ALLOWED_PRICE_IMPACT_LOW","Percent","ALLOWED_PRICE_IMPACT_MEDIUM","ALLOWED_PRICE_IMPACT_HIGH","BLOCKED_PRICE_IMPACT_NON_EXPERT","BETTER_TRADE_LESS_HOPS_THRESHOLD","ZERO_PERCENT","ONE_HUNDRED_PERCENT","REACT_APP_IS_WIDGET","useWidgetsWeb3React","interfaceContext","interfaceNetworkContext","useDebounce","delay","_useState","useState","_useState2","debouncedValue","setDebouncedValue","handler","setTimeout","clearTimeout","isVisibilityStateSupported","document","isWindowVisible","visibilityState","useIsWindowVisible","focused","setFocused","listener","addEventListener","removeEventListener","blockAtom","BlockUpdater","setBlock","useSetAtom","block","_useActiveWeb3React","windowVisible","setState","onBlock","Math","max","getBlockNumber","catch","console","removeListener","debouncedBlock","useBlock","useBlockNumber","useAtomValue","SupportedChainId","CHAIN_IDS_TO_NAMES","_CHAIN_IDS_TO_NAMES","_defineProperty","MAINNET","GOERLI","CELO","ALFAJORES","AURORA","AURORA_TEST","KOVAN","POLYGON","POLYGON_MUMBAI","ARBITRUM_ONE","ARBITRUM_RINKEBY","OPTIMISM","OPTIMISTIC_KOVAN","CHAIN_IDS_TO_DISPLAY","ALL_SUPPORTED_CHAIN_IDS","values","filter","id","L2_CHAIN_IDS","DEFAULT_NETWORKS","constructSameAddressMap","additionalNetworks","reduce","memo","UNI_ADDRESS","MULTICALL_ADDRESS","_objectSpread2","V2_FACTORY_ADDRESSES","_V2_FACTORY_ADDRESSES","V2_ROUTER_ADDRESS","INIT_CODE_HASH","_INIT_CODE_HASH","MERKLE_DISTRIBUTOR_ADDRESS","ARGENT_WALLET_DETECTOR_ADDRESS","V3_CORE_FACTORY_ADDRESSES","_V3_CORE_FACTORY_ADDR","QUOTER_ADDRESSES","NONFUNGIBLE_POSITION_MANAGER_ADDRESSES","_NONFUNGIBLE_POSITION","ENS_REGISTRAR_ADDRESSES","_ENS_REGISTRAR_ADDRES","ASSET_VAULT_ADDRESSES","_ASSET_VAULT_ADDRESSE","AMM_VAULT_ADDRESSES","_AMM_VAULT_ADDRESSES","LP_MIGRATOR_ADDRESSES","_LP_MIGRATOR_ADDRESSE","REWARD_STORAGE_ADDRESSES","_REWARD_STORAGE_ADDRE","CLUB_MANAGER_ADDRESSES","_CLUB_MANAGER_ADDRESS","DOUBLE_DOWN_CLUB_ADDRESSES","_DOUBLE_DOWN_CLUB_ADD","DDJ_ADDRESSES","_DDJ_ADDRESSES","TICK_LENS_ADDRESSES","_TICK_LENS_ADDRESSES","USDC_MAINNET","Token","USDC_GOERLI","USDC_ALFAJORES","USDC_CELO","USDC_KOVAN","USDC_OPTIMISM","USDC_OPTIMISTIC_KOVAN","USDC_ARBITRUM","USDC_ARBITRUM_RINKEBY","USDC_POLYGON","USDC_POLYGON_MUMBAI","AMPL","DAI","DAI_ARBITRUM_ONE","DAI_OPTIMISM","DAI_POLYGON","_USDC","USDT_POLYGON","WBTC_POLYGON","USDT","USDT_ARBITRUM_ONE","USDT_OPTIMISM","WBTC","WBTC_ARBITRUM_ONE","WBTC_OPTIMISM","FEI","TRIBE","FRAX","FXS","renBTC","ETH2X_FLI","sETH2","rETH2","SWISE","WETH_POLYGON_MUMBAI","WETH_POLYGON","UNI","_UNI","WRAPPED_NATIVE_CURRENCY","WETH9","isMatic","MaticNativeCurrency","_NativeCurrency","other","isNative","this","get","wrapped","NativeCurrency","ExtendedEther","_Ether","_this$_cachedExtended","_cachedExtendedEther","Ether","cachedNativeCurrency","nativeOnChain","_cachedNativeCurrency","onChain","TOKEN_SHORTHANDS","USDC","_USDC2","isAddress","getAddress","_unused","shortenAddress","parsed","getContract","ABI","AddressZero","Contract","getSigner","connectUnchecked","getProviderOrSigner","IUniswapV2PairABI","IUniswapV2PairJson","abi","IUniswapV2Router02ABI","IUniswapV2Router02Json","QuoterABI","QuoterJson","MulticallABI","UniswapInterfaceMulticallJson","NFTPositionManagerABI","NonfungiblePositionManagerJson","TickLensABI","TickLensJson","VaultMangerABI","VaultMangerJson","VaultMangerV1ABI","VaultMangerJsonV1","VaultMangerV3ABI","VaultMangerV3Json","MigratorABI","MigratorJson","MigratorV3ABI","MigratorV3Json","AssetVaultABI","AssetVaultJson","useContract","addressOrAddressMap","withSignerIfPossible","useContractByAMM","ammType","_useActiveWeb3React2","useMigratorContract","useTokenContract","tokenAddress","ERC20_ABI","useERC721Contract","nftAddress","ERC721_ABI","useENSRegistrarContract","ENS_ABI","useENSResolverContract","ENS_PUBLIC_RESOLVER_ABI","useInterfaceMulticall","useV3NFTPositionManagerContract","useVaultManagerContract","useAssetVaultContract","useRewardStorageContract","RewardStorageABI","useClubManagerContract","ClubManagerABI","useDoubleDownClubContract","DoubleDownClubABI","multicall","createMulticall","combineReducers","reducerPath","createStore","MulticallUpdater","latestBlockNumber","contract","Updater","GRAPH_API_URL","_GRAPH_API_URL","BLOCKED_ADDRESSES","Blocklist","initClient","ApolloClient","uri","cache","InMemoryCache","client","setClient","blocked","Boolean","indexOf","_Fragment","ApolloProvider","rotate","keyframes","_templateObject","_taggedTemplateLiteral","StyledSVG","styled","svg","withConfig","componentId","size","Loader","_ref3$size","stroke","rest","_objectWithoutProperties","_excluded","viewBox","fill","xmlns","d","strokeWidth","strokeLinecap","strokeLinejoin","useAppDispatch","useDispatch","useAppSelector","useSelector","updateMatchesDarkMode","createAction","updateUserDarkMode","updateUserExpertMode","updateUserLocale","updateShowSurveyPopup","updateShowDonationLink","updateUserClientSideRouter","updateHideClosedPositions","updateUserSlippageTolerance","updateUserDeadline","addSerializedToken","removeSerializedToken","addSerializedPair","removeSerializedPair","parsedQueryString","search","hash","location","substr","parse","parseArrays","ignoreQueryPrefix","useParsedQueryString","useLocation","ApeModeQueryParamReader","ape","userExpertMode","useApeModeQueryParamReader","reportWebVitals","delta","_gaCommandSendTiming","round","GoogleAnalyticsReporter","_ref2$location","pathname","getFCP","getFID","getLCP","getCLS","cd1","pageview","ga","tracker","setItem","ApplicationModal","applicationSlice","createSlice","initialState","openModal","popupList","reducers","updateChainId","action","setOpenModal","addPopup","_ref$payload","content","_ref$payload$removeAf","removeAfterMs","popup","nanoid","show","removePopup","forEach","p","_applicationSlice$act","actions","Field","typeInput","independentField","LIQUIDITY_PERCENT","typedValue","createReducer","builder","addCase","field","selectPercent","percent","CHAIN_SUBGRAPH_URL","_CHAIN_SUBGRAPH_URL","api","createApi","baseQuery","variables","getState","subgraphUrl","stack","request","response","application","GraphQLClient","t1","data","meta","t2","ClientError","endpoints","allV3Ticks","query","poolAddress","_ref$skip","skip","gql","feeTierDistribution","token0","token1","_templateObject2","updateVersion","UNI_LIST","GEMINI_LIST","ARBITRUM_LIST","OPTIMISM_LIST","CELO_LIST","UNSUPPORTED_LIST_URLS","DEFAULT_LIST_OF_LISTS","DEFAULT_ACTIVE_LIST_URLS","fetchTokenList","pending","fulfilled","rejected","addList","removeList","enableList","disableList","acceptListUpdate","NEW_LIST_STATE","loadingRequestId","pendingUpdate","lastInitializedDefaultListOfLists","byUrl","listUrl","activeListUrls","_state$byUrl$url$curr","_state$byUrl$url","_state$byUrl$url$pend","_state$byUrl$url2","requestId","url","_state$byUrl$url3","_state$byUrl$url4","_ref2$payload","tokenList","getVersionUpgrade","version","VersionUpgrade","NONE","_state$activeListUrls","push","_state$byUrl$url5","_ref3$payload","errorMessage","u","_ref6","_ref7","_ref8","_state$byUrl$url6","lastInitializedSet","s","l","add","Set","newListOfListsSet","has","map","filterToKey","_filter$address","_filter$topics$map$jo","_filter$topics","_filter$topics$map","topics","topic","Array","isArray","slice","addListener","listeners","fetchingLogs","filters","blockNumber","_step","_iterator","_createForOfIteratorHelper","n","done","fetchingBlockNumber","err","e","f","fetchedLogs","results","fetchState","fetchedLogsError","_ref4$payload","_ref5$payload","_slice$actions","resetMintState","CURRENCY_A","otherTypedValue","startPriceTypedValue","leftRangeTypedValue","rightRangeTypedValue","noLiquidity","Bound","typeStartPriceInput","typeLeftRangeInput","typeRightRangeInput","setFullRange","INFURA_KEY","INFURA_NETWORK_URLS","_INFURA_NETWORK_URLS","transformSwapRouteToGetQuoteResult","amount","quote","quoteGasAdjusted","route","estimatedGasUsed","estimatedGasUsedQuoteToken","estimatedGasUsedUSD","gasPriceWei","methodParameters","routeResponse","subRoute","tokenPath","protocol","Protocol","V3","pools","curRoute","nextPool","tokenIn","tokenOut","edgeAmountIn","quotient","toString","edgeAmountOut","decimals","symbol","fee","liquidity","sqrtRatioX96","tickCurrent","amountIn","amountOut","V2","pairs","reserve0","reserve1","token","currency","amountDecimals","toExact","quoteDecimals","quoteGasAdjustedDecimals","gasUseEstimateQuote","gasUseEstimateQuoteDecimals","gasUseEstimate","gasUseEstimateUSD","routeString","routeAmountsToString","AUTO_ROUTER_SUPPORTED_CHAINS","ChainId","getQuote","_getQuote","routerParams","routerConfig","amountRaw","router","currencyIn","currencyOut","baseCurrency","quoteCurrency","swapRoute","AlphaRouter","CurrencyAmount","fromRawAmount","TradeType","EXACT_INPUT","EXACT_OUTPUT","getClientSideQuote","_x6","_getClientSideQuote","tokenInAddress","tokenInChainId","tokenInDecimals","tokenInSymbol","tokenOutAddress","tokenOutChainId","tokenOutDecimals","tokenOutSymbol","routerProviders","Map","getRouterProvider","JsonRpcProvider","protocols","DEFAULT_QUERY_PARAMS","routingApi","fetchBaseQuery","baseUrl","build","queryFn","args","_api","_extraOptions","fetch","useClientSideRouter","result","params","qs","stringify","keepUnusedDataFor","extraOptions","maxRetries","useGetQuoteQuery","selectCurrency","switchCurrencies","replaceSwapState","setRecipient","useNativeCurrency","useMultipleContractSingleData","_multicall$hooks","_useCallContext","useCallContext","latestBlock","_len","_key","hooks","useSingleCallResult","_multicall$hooks2","_useCallContext2","_len2","_key2","useSingleContractMultipleData","_multicall$hooks3","_useCallContext3","_len3","_key3","safeNamehash","namehash","debug","isZero","hexNumberString","test","useENSAddress","ensName","_resolverAddress$resu","debouncedName","ensNodeArgument","resolverAddress","resolverAddressResult","addr","changed","_addr$result$","_addr$result","loading","tryParseCurrencyAmount","typedValueParsed","ethers","utils","parseUnits","isTradeBetter","tradeA","tradeB","minimumDelta","tradeType","inputAmount","equals","outputAmount","equalTo","executionPrice","lessThan","asFraction","multiply","WRAPPED_NATIVE_CURRENCIES_ONLY","fromEntries","entries","BASES_TO_CHECK_TRADES_AGAINST","_toConsumableArray","ADDITIONAL_BASES","_SupportedChainId$MAI","CUSTOM_BASES","_COMMON_BASES","useAllCurrencyCombinations","currencyA","currencyB","tokenA","tokenB","bases","_BASES_TO_CHECK_TRADE","_ADDITIONAL_BASES$cha","_ADDITIONAL_BASES$cha2","_ADDITIONAL_BASES$cha3","_ADDITIONAL_BASES$cha4","common","additionalA","additionalB","basePairs","base","otherBase","otherPairs","findIndex","_ref9","_ref10","t0Other","t1Other","_ref11","_ref12","customBases","customBasesA","customBasesB","find","ZERO","FIVE","MINIMUM_LIQUIDITY","computePairAddress","factoryAddress","codeHash","sortsBefore","getCreate2Address","pack","Pair","currencyAmountA","tokenAmountB","liquidityToken","tokenAmounts","divide","Price","denominator","numerator","involvesToken","token0Price","token1Price","totalSupply","tokenAmountA","equal","subtract","sqrt","amount0","amount1","lessThanOrEqual","greaterThan","InsufficientInputAmountError","feeOn","kLast","totalSupplyAdjusted","kLastParsed","rootK","rootKLast","feeLiquidity","reserveOf","NetworkType","CHAIN_INFO","_CHAIN_INFO","networkType","L1","docs","explorer","infoLink","label","logoUrl","ethereumLogoUrl","nativeCurrency","celoLogoUrl","defaultListUrl","auroraLogoUrl","L2","blockWaitMsBeforeWarning","bridge","optimismLogoUrl","statusPage","helpCenterUrl","arbitrumLogoUrl","polygonMaticLogo","supportedChainId","REGISTRAR_ABI","constant","inputs","outputs","payable","stateMutability","REGISTRAR_ADDRESS","RESOLVER_ABI","internalType","resolverContract","resolveENSContentHash","_resolveENSContentHash","ensRegistrarContract","resolver","contenthash","UTF_8_DECODER","TextDecoder","contenthashToUri","hex","startsWith","arr","hexToUint8Array","codec","getNameFromData","unprefixedData","rmPrefix","cid","CID","toB58String","multihash","decode","digest","ENS_NAME_REGEX","parseENSAddress","ensAddress","ensPath","uriToHttp","_uri$match","_uri$match2","_uri$match3","tx","ValidationSchema","validator","resolve","_yield$Promise$all","_yield$Promise$all2","ajv","schema","default","allErrors","addSchema","LIST","$id","required","TOKENS","getValidationErrors","validate","_validate$errors$map$","_validate$errors","errors","dataPath","validateTokenList","_validateTokenList","json","getSchema","listCache","_fetchTokenList","cached","urls","parsedENS","_parsedENS$ensPath","contentHashUri","translatedUri","_message","isLast","_message2","_message3","list","credentials","ok","statusText","ERC20Interface","Interface","ERC20ABI","tokenBalancesGasRequirement","gasRequired","useTokenBalances","tokens","validatedTokens","_tokens$filter","t","balances","vt","anyLoading","some","callState","_balances$i","_balances$i$result","useTokenBalancesWithLoadingIndicator","useTokenBalance","tokenBalances","useCurrencyBalances","currencies","_currencies$filter","_currency$isToken","isToken","containsETH","_currencies$some","ethBalance","uncheckedAddresses","multicallContract","validAddressInputs","a","sort","_results$i","_results$i$result","useNativeCurrencyBalances","_currencies$map","useCurrencyBalance","alwaysTrue","getTokenFilter","searchingAddress","queryParts","parts","every","sp","endsWith","tokenComparator","b","balanceComparison","balanceComparator","useSortTokensByQuery","matches","exactMatches","symbolSubtrings","_token$symbol","_token$symbol2","WrappedTokenInfo","tokenInfo","_checksummedAddress","_tags","checksummedAddress","logoURI","_this$list","tags","listTags","tagId","mapCache","WeakMap","tokensToChainTokenMap","info","_map$token$chainId","warn","BYTES32_REGEX","parseStringOrBytes32","str","bytes32","defaultValue","parseBytes32String","useTokenFromNetwork","formattedAddress","tokenContract","tokenContractBytes32","ERC20_BYTES32_ABI","useBytes32TokenContract","tokenName","NEVER_RELOAD","tokenNameBytes32","symbolBytes32","_symbol$result","_symbolBytes32$result","_tokenName$result","_tokenNameBytes32$res","useTokenFromMapOrNetwork","tokenFromNetwork","useCurrencyFromMap","currencyId","_wrappedNative$addres","shorthandMatchAddress","_TOKEN_SHORTHANDS$cur","chain","wrappedNative","DEFAULT_LIST_PRIORITIES","index","sortByListPriority","urlA","urlB","useAllLists","lists","combineMaps","map1","map2","useCombinedTokenMapFromUrls","allTokens","currentUrl","_lists$currentUrl","useActiveListUrls","useCombinedActiveList","serializeToken","deserializeToken","serializedToken","useIsDarkMode","_useAppSelector","_ref$user","user","matchesDarkMode","userDarkMode","shallowEqual","useUserHideClosedPositions","userHideClosedPositions","newHideClosedPositions","useUserSlippageToleranceWithDefault","defaultSlippageTolerance","allowedSlippage","userSlippageTolerance","useUserSlippageTolerance","useUserAddedTokens","serializedTokensMap","useTokensFromMap","tokenMap","includeUserAdded","userAddedTokens","_tokenMap$chainId","mapWithoutUrls","newMap","useAllTokens","useUnsupportedTokens","listsByUrl","unsupportedTokens","brokenListMap","BROKEN_LIST","localUnsupportedListMap","UNSUPPORTED_TOKEN_LIST","loadedUnsupportedListMap","useUnsupportedTokenList","l2InferredBlockedTokens","_CHAIN_INFO$chainId","getChainInfo","unsupportedSet","acc","_tokenInfo$extensions","bridgeInfo","extensions","useSupportedTokens","supportedTokens","localSupportedListMap","SUPPORTED_TOKEN_LIST","useSupportedTokenList","useSearchInactiveTokenLists","minResults","inactiveUrls","allActiveListUrls","useInactiveListUrls","activeTokens","tokenFilter","addressSet","_step2","_iterator2","useIsUserAddedToken","useToken","useCurrency","PAIR_INTERFACE","PairState","useV2Pairs","_currencies$0$","_currencies$0$2","pool","reserves","LOADING","INVALID","NOT_EXISTS","EXISTS","useV2Pair","MAX_HOPS","useBestV2Trade","amountSpecified","otherCurrency","_ref3$maxHops","maxHops","_useMemo","_useMemo2","allowedPairs","allPairs","useAllCommonPairs","options","maxNumResults","_Trade$bestTradeExact","Trade","bestTradeExactIn","_Trade$bestTradeExact2","bestTradeExactOut","bestTradeSoFar","currentTrade","_Trade$bestTradeExact3","_Trade$bestTradeExact4","TradeState","InterfaceTrade","_Trade","routes","POOL_STATE_INTERFACE","IUniswapV3PoolStateABI","PoolCache","addresses","MAX_ENTRIES","addressA","addressB","found","computePoolAddress","unshift","sqrtPriceX96","tick","EQ","Pool","PoolState","usePools","poolKeys","poolTokens","feeAmount","poolAddresses","v3CoreFactoryAddress","getPoolAddress","slot0s","liquidities","_tokens","_slot0s$index","slot0","slot0Loading","slot0Valid","valid","_liquidities$index","liquidityLoading","liquidityValid","eq","getPool","usePool","computeAllRoutes","currentPath","allPaths","startCurrencyIn","_loop","pathPool","poolA","poolB","outputToken","Route","useAllV3Routes","_useV3SwapPools","allCurrencyCombinations","FeeAmount","LOW","MEDIUM","HIGH","LOWEST","tuple","useV3SwapPools","poolsLoading","QUOTE_GAS_OVERRIDES","_QUOTE_GAS_OVERRIDES","DEFAULT_GAS_QUOTE","useClientSideV3Trade","_QUOTE_GAS_OVERRIDES$","_useAllV3Routes","routesLoading","quoter","quotesResults","_multicall$hooks4","_useCallContext4","_len4","_key4","useSingleContractWithCallData","SwapQuoter","quoteCallParameters","calldata","trade","_quotesResults$reduce","currentBest","bestRoute","VALID","v2Routes","v3Routes","routev3","NO_ROUTE_FOUND","STABLECOIN_AMOUNT_OUT","_STABLECOIN_AMOUNT_OU","useUSDCPrice","stablecoin","v2USDCTrade","v3USDCTrade","_v2USDCTrade$route$mi","midPrice","_v3USDCTrade$trade$ro","useUSDCValue","currencyAmount","price","atomWithImmer","GAMetric","_IMetric","unit","IMetric","useENSName","_nameCallRes$result","debouncedAddress","nameCallRes","fwdAddr","checkedName","ENSName","setGlobalMetric","parseCurrencyFromURLParameter","urlParam","upper","ADDRESS_REGEX","queryParametersToSwapState","parsedQs","_inputCurrency","_outputCurrency","inputCurrency","outputCurrency","exactAmount","parseFloat","OUTPUT","INPUT","parseIndependentFieldURLParameter","exactField","recipient","validatedRecipient","inputCurrencyId","outputCurrencyId","otherField","_objectSpread4","TransactionType","addTransaction","clearAllTransactions","finalizeTransaction","checkedTransaction","now","Date","getTime","transactions","chainTransactions","_transactions$chainId","_transactions$chainId2","from","txs","addedTime","_transactions$chainId3","lastCheckedBlockNumber","_transactions$chainId4","receipt","confirmedTime","currentTimestamp","pairKey","token0Address","token1Address","userLocale","userClientSideRouter","userSlippageToleranceHasBeenMigratedToAuto","userDeadline","timestamp","URLWarningVisible","showSurveyPopup","showDonationLink","lastUpdateVersionTimestamp","serializedPair","tokenAAddress","tokenBAddress","PERSISTED_KEYS","store","configureStore","_reducer","swap","mint","mintV3","burn","burnV3","logs","dataApi","middleware","getDefaultMiddleware","thunk","save","states","debounce","preloadedState","load","disableWarnings","setupListeners","EXPLORER_HOSTNAMES","CloseIcon","button","X","LinkStyledButton","div","marginRight","marginLeft","theme","blue1","disabled","StyledInternalLink","Link","primary1","StyledLink","LinkIconFeather","Trash","text3","handleClickExternalLink","event","_event$currentTarget","currentTarget","target","anonymizedHref","href","URL","hostname","anonymizedPath","pc","anonymizeLink","ctrlKey","metaKey","outboundLink","preventDefault","ExternalLink","_ref13","_ref13$target","_ref13$rel","rel","onClick","Spinner","img","_ref15","text1","CustomLightSpinner","_ref17","_ref18","HideSmall","span","_ref19","mediaWidth","upToSmall","HideExtraSmall","_ref20","upToExtraSmall","_templateObject3","_ref21","bg2","MEDIA_WIDTHS","upToMedium","upToLarge","Z_INDEX","mediaWidthTemplates","accumulator","c","css","white","black","darkMode","text2","text4","text5","bg0","bg1","bg3","bg4","bg5","bg6","modalBG","advancedBG","primary2","primary3","primary4","primary5","primaryText1","secondary1","secondary2","secondary3","red1","red2","red3","green1","yellow1","yellow2","yellow3","blue2","success","blue4","colors","grids","sm","md","lg","shadow1","flexColumnNoWrap","flexRowNoWrap","ThemeProvider","themeObject","_ThemeProvider","TextWrapper","Text","color","ThemedText","Main","props","fontWeight","Label","Black","White","Body","fontSize","LargeHeader","MediumHeader","SubHeader","Small","Blue","Yellow","DarkGray","Gray","Italic","fontStyle","ThemedGlobalStyle","createGlobalStyle","_templateObject4","SmallOnly","_templateObject5","Column","ColumnCenter","AutoColumn","gap","justify","AutoColumnV3","Row","Box","width","align","padding","border","borderRadius","RowBetween","AutoRow","RowFixed","FallbackWrapper","BodyWrapper","CodeBlockWrapper","LinkWrapper","SomethingWentWrongWrapper","IS_UNISWAP","ErrorBoundary","_React$Component","errorInfo","description","fatal","encodedBody","encodeURIComponent","relevantState","path","pieces","getRelevantState","deviceData","JSON","issueBody","_jsxs","React","Component","_path","_path2","_path3","_path4","_path5","_path6","_path7","_path8","_path9","_path10","_extends","assign","bind","source","prototype","hasOwnProperty","excluded","sourceKeys","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","SvgLogo","svgRef","title","titleId","height","ref","ForwardRef","SvgLogoMark","useModalOpen","modal","useToggleModal","open","useWalletModalToggle","WALLET","useAddPopup","SUPPORTED_TRANSACTION_TYPES","ADD_LIQUIDITY_V2_POOL","ADD_LIQUIDITY_V3_POOL","CREATE_V3_POOL","REMOVE_LIQUIDITY_V3","SWAP","firebaseEnabled","useMonitoringEventCallback","_log","transactionResponse","walletAddress","db","getDatabase","origin","useTransactionAdder","logMonitoringEvent","log","v","r","useTransactionMonitoringEventCallback","useAllTransactions","_state$chainId","useTransaction","transactionHash","allTransactions","isTransactionRecent","useHasPendingApproval","spender","APPROVAL","useHasPendingLiquidityApproval","useTheme","ThemeContext","initializeApp","apiKey","authDomain","databaseURL","projectId","storageBucket","messagingSenderId","appId","BaseButton","RebassButton","$borderRadius","ButtonPrimary","ButtonLight","darken","ButtonGray","_ref14","_ref16","ButtonSecondary","ButtonOutlined","_ref22","_ref23","_ref24","_ref25","_ref26","ButtonEmpty","_ref27","ButtonText","ButtonConfirmedStyle","_ref28","_ref29","_ref30","_ref31","ButtonErrorStyle","_ref32","_ref33","_ref34","_ref35","_ref36","_ref37","_ref38","_ref39","_ref40","ButtonConfirmed","_ref41","confirmed","altDisabledStyle","ButtonError","_ref42","_excluded2","ActiveOutlined","_ref43","Circle","_ref44","CheckboxWrapper","ResponsiveCheck","Check","ButtonRadioChecked","_ref45","_ref45$active","_excluded3","AbstractConnector","_EventEmitter","emit","EventEmitter","parseSendReturn","sendReturn","NoEthereumProviderError","UserRejectedRequestError","InjectedConnector","_AbstractConnector","_super3","kwargs","_this3","handleNetworkChanged","_assertThisInitialized","handleChainChanged","handleAccountsChanged","handleClose","emitUpdate","ethereum","accounts","emitDeactivate","code","reason","networkId","isMetaMask","autoRefreshOnNetworkChange","send","enable","_getProvider","_getChainId","method","_unused3","isDapper","cachedResults","net_version","netVersion","networkVersion","_getAccount","_callee4","_context4","_isAuthorized","_callee5","_context5","WalletConnectConnector","config","chains","walletConnectProvider","handleDisconnect","EthereumProvider","init","disconnect","_close","NETWORK_POLLING_INTERVALS","_NETWORK_POLLING_INTE","Web3Provider","pollingInterval","detectNetwork","network","networkPollingInterval","networkLibrary","RequestError","MiniRpcProvider","batchWaitTimeMs","host","nextId","batchTimeoutId","batch","clearBatch","byKey","_result","_byKey$_result$id","reject","_result$error","_result$error2","_result$error3","changeChainId","headers","accept","body","item","status","sendAsync","callback","jsonrpc","_this2$batchTimeoutId","promise","NetworkConnector","defaultChainId","k","providers","currentChainId","_callee6","_context6","getNetworkLibrary","_networkLibrary","injected","walletconnect","showQrModal","rpcMap","qrModalOptions","themeVariables","useENSAvatar","enforceOwnership","addressAvatar","useAvatarFromNode","nameAvatar","avatar","nftAvatar","_parts$1$split","_parts$","_parts$2$split","_parts$2","nftUri","erc","contractAddress","isERC1155","erc721","idArgument","owner","_owner$result","_uri$result","useERC721Uri","erc1155","accountArgument","ERC1155_ABI","balance","idHex","hexZeroPad","BigNumber","toHexString","_balance$result","_uri$result2","_uri$result2$","replaceAll","useERC1155Uri","http","setLoading","_useState3","_useState4","setAvatar","res","image","finally","useAvatarFromNFT","node","nodeArgument","textArgument","_avatar$result","StyledIdenticon","StyledAvatar","Identicon","fetchable","setFetchable","icon","jazzicon","iconRef","useLayoutEffect","appendChild","removeChild","alt","src","StatusIcon","WalletConnectIcon","Card","LightCard","LightGreyCard","DarkGreyCard","DarkCard","OutlineCard","BlueCard","Wrapper","StyledExternalCard","StyledLinkOut","ArrowDown","EXTERNAL_APIS","PrivacyPolicy","draggable","onTouchMove","stopPropagation","style","Info","marginBottom","_line","_line2","SvgX","className","x1","y1","x2","y2","SUPPORTED_WALLETS","INJECTED","iconURL","INJECTED_ICON_URL","primary","METAMASK","METAMASK_ICON_URL","WALLET_CONNECT","WALLETCONNECT_ICON_URL","mobile","usePrevious","ETHERSCAN_PREFIXES","_ETHERSCAN_PREFIXES","ExplorerDataType","getExplorerLink","_ETHERSCAN_PREFIXES$c","TRANSACTION","ADDRESS","TOKEN","BLOCK","prefix","CopyIcon","TransactionStatusText","CopyHelper","_useCopyClipboard","timeout","isCopied","setIsCopied","staticCopy","text","didCopy","copy","hide","useCopyClipboard","_useCopyClipboard2","setCopied","toCopy","CheckCircle","Copy","VoteOption","formatAmount","sigFigs","formatUnits","toFixed","FormattedCurrencyAmount","rawAmount","FormattedCurrencyAmountManaged","_currency$symbol","_ref2$sigFigs","ClaimSummary","_ref3$info","uniAmountRaw","SubmitProposalTransactionSummary","_","WithdrawPositionTransactionSummary","DepositPositionTransactionSummary","WithdrawRewardTransactionSummary","DDCDepositTransactionSummary","DDCWithdrawTransactionSummary","DDCDelegateTransactionSummary","DDCUndelegateTransactionSummary","ApprovalSummary","VoteSummary","proposalKey","governorAddress","proposalId","decision","For","Abstain","Against","DelegateSummary","delegatee","WrapSummary","_native$wrapped$symbo","_native$wrapped","_native$symbol","_native$symbol2","_native$wrapped$symbo2","_native$wrapped2","_ref7$info","currencyAmountRaw","unwrapped","native","DepositLiquidityStakingSummary","WithdrawLiquidityStakingSummary","MigrateLiquidityToV3Summary","_ref8$info","baseCurrencyId","quoteCurrencyId","CreateV3PoolSummary","_ref9$info","CollectFeesSummary","_ref10$info","currencyId0","currencyId1","currency0","currency1","RemoveLiquidityV3Summary","_ref11$info","expectedAmountBaseRaw","expectedAmountQuoteRaw","AddLiquidityV3PoolSummary","_ref12$info","createPool","AddLiquidityV2PoolSummary","_ref13$info","SwapSummary","inputCurrencyAmountRaw","expectedOutputCurrencyAmountRaw","expectedInputCurrencyAmountRaw","outputCurrencyAmountRaw","TransactionSummary","CLAIM","DEPOSIT_LIQUIDITY_STAKING","WITHDRAW_LIQUIDITY_STAKING","VOTE","DELEGATE","WRAP","MIGRATE_LIQUIDITY_V3","COLLECT_FEES","SUBMIT_PROPOSAL","WITHDRAW_POSITION","DEPOSIT_POSITION","WITHDRAW_REWARD","DDC_DEPOSIT","DDC_WITHDRAW","DDC_DELEGATE","DDC_UNDELEGATE","TransactionState","IconWrapper","Transaction","_tx$receipt","_tx$receipt2","Triangle","HeaderRow","UpperSection","InfoCard","AccountGroupingRow","displayType","AccountSection","YourAccount","LowerSection","AccountControl","AddressLink","CloseColor","Close","WalletName","WrappedStatusIcon","TransactionListWrapper","WalletAction","renderTransactions","AccountDetails","toggleWalletModal","pendingTransactions","confirmedTransactions","openOptions","clearAllTransactionsCallback","formatConnectorName","close","hasENS","isENS","LinkIcon","mb","justifyContent","AnimatedDialogOverlay","animated","DialogOverlay","StyledDialogOverlay","AnimatedDialogContent","DialogContent","StyledDialogContent","minHeight","maxHeight","isOpen","attrs","transparentize","Modal","onDismiss","_ref8$minHeight","_ref8$maxHeight","initialFocusRef","fadeTransition","searchModal","useTransition","duration","opacity","enter","leave","unstable_lockFocusAcrossFrames","tabIndex","OptionCard","OptionCardLeft","OptionCardClickable","clickable","GreenCircle","CircleWrapper","HeaderText","Option","_ref16$link","link","_ref16$clickable","_ref16$onClick","header","_ref16$subheader","subheader","_ref16$active","backgroundColor","PendingSection","StyledLoader","LoadingMessage","ErrorGroup","ErrorButton","LoadingWrapper","PendingView","_window","_window$ethereum","_ref9$error","setPendingError","tryActivation","isMetamask","option","require","ContentWrapper","OptionGrid","HoverText","WALLET_VIEWS","OPTIONS","OPTIONS_SECONDARY","ACCOUNT","PENDING","LEGAL","WalletModal","_useWeb3React","walletView","setWalletView","previousWalletView","pendingWallet","setPendingWallet","_useState5","_useState6","pendingError","walletModalOpen","previousAccount","useWalletConnectMonitoringEventCallback","activePrevious","connectorPrevious","category","getOptions","web3","MetamaskIcon","mobileOnly","background","ArrowLeft","Web3StatusGeneric","Web3StatusError","Web3StatusConnect","Web3StatusConnected","NetworkIcon","Activity","newTransactionsFirst","Web3StatusInner","hasPendingTransactions","margin","faded","Web3Status","_useWeb3React2","contextNetwork","sortedRecentTransactions","useOnClickOutside","handlerRef","handleClickOutside","_node$current$contain","_node$current","contains","replaceURLParam","param","newValue","searchParams","URLSearchParams","getRpcUrls","_switchToNetwork","formattedChainId","hexStripZeros","chainName","rpcUrls","blockExplorerUrls","ActiveRowWrapper","FlyoutMenu","FlyoutMenuContents","FlyoutRow","Logo","NetworkLabel","SelectorLabel","SelectorControls","interactive","SelectorLogo","SelectorWrapper","StyledChevronDown","ChevronDown","targetChain","onSelectChain","_CHAIN_INFO$targetCha","rowContent","getParsedChainId","urlChain","urlChainId","getChainIdFromName","entry","getChainNameFromId","NetworkSelector","_getParsedChainId","prevChainId","NETWORK_SELECTOR","toggle","history","useHistory","handleChainSwitch","skipToggle","switchToNetwork","failedSwitchNetwork","onMouseEnter","onMouseLeave","paddingTop","position","HeaderFrame","showBackground","HeaderControls","HeaderElement","HeaderLinks","AccountElement","_templateObject6","Title","_templateObject7","_templateObject8","UniIcon","activeClassName","StyledNavLink","NavLink","_templateObject9","NavLinkOutLine","NavLinkOutBack","Header","scrollY","useScrollPosition","MobileLogo","to","isActive","FETCH_CLAIM_MAPPING_PROMISE","FETCH_CLAIM_FILE_PROMISES","fetchClaimFile","_FETCH_CLAIM_FILE_PRO","FETCH_CLAIM_PROMISES","fetchClaim","_FETCH_CLAIM_PROMISES","formatted","_FETCH_CLAIM_MAPPING_","fetchClaimMapping","mapping","sorted","startingAddress","lastAddress","useUserClaimData","claimInfo","setClaimInfo","accountClaimInfo","useUserHasAvailableClaim","_isClaimedResult$resu","userClaimData","isClaimedResult","MERKLE_DISTRIBUTOR_ABI","CardBGImage","uImage","desaturate","CardNoise","xlUnicorn","noise","Break","StyledClaimPopup","StyledClose","UniToken","ClaimPopup","_groupSeparator","showClaimPopup","CLAIM_POPUP","toggleShowClaimPopup","showClaimModal","SELF_CLAIM","toggleSelfClaimModal","handleToggleSelfClaimModal","userHasAvailableclaim","unclaimedAmount","canClaim","uni","useUserUnclaimedAmount","zIndex","tokenLogo","marginTop","groupSeparator","textAlign","role","Heart","RowNoFlex","FailedNetworkSwitchPopup","paddingRight","AlertCircle","DoubleText","TransactionPopup","ReasonPopup","Popup","Fader","AnimatedFader","PopupItem","popKey","useRemovePopup","removeThisPopup","popupContent","txn","faderStyle","useSpring","MobilePopupWrapper","MobilePopupInner","StopOverflowQuery","FixedPopupColumn","extraPadding","xlPadding","Popups","activePopups","useActivePopups","urlWarningActive","isNotOnMainnet","reverse","MessageWrapper","Message","h2","Web3ReactManager","networkActive","networkError","activateNetwork","triedEager","tried","setTried","isAuthorized","useEagerConnect","suppress","useInactiveListener","DarkModeQueryParamReader","useHttpLocations","ens","resolvedContentHash","_resolverAddressResul","_contenthash$result$","_contenthash$result","useENSContentHash","getTokenLogoURI","networkName","chainIdToNetworkName","filteredTokenList","useCurrencyLogoURIs","locations","logoURIs","MaticLogo","EthereumLogo","getNativeLogoURI","BAD_SRCS","srcs","refresh","Slash","StyledLogo","CurrencyLogo","_currency$isNative","_ref6$size","DetailsFooter","deprecated_zero","StyledButtonEmpty","AddressText","UnsupportedCurrencyFooter","showDetails","setShowDetails","_token$address","useTotalSupply","_useSingleCallResult","_useSingleCallResult$","_useSingleCallResult$2","totalSupplyStr","useMintState","useMintActionHandlers","onFieldAInput","onFieldBInput","CURRENCY_B","useDerivedMintInfo","_currencyBalances","_currencies$Field$CUR","_currencyBalances$Fie","_error","_error2","_useMintState","dependentField","_useV2Pair","_useV2Pair2","pairState","pair","currencyBalances","assetMax","independentAmount","dependentAmount","wrappedIndependentAmount","dependentCurrency","dependentTokenAmount","priceOf","parsedAmounts","wrappedCurrencyA","currencyAAmount","currencyBAmount","liquidityMinted","getLiquidityMinted","poolTokenPercentage","_currencies$Field$CUR2","_currencies$Field$CUR3","useClubManager","clubManagerContract","supplyAllowance","capitalSupplyCapPerDdc","_supplyAllowance$resu","_supplyAllowance$resu2","_capitalSupplyCapPerD","_capitalSupplyCapPerD2","capPerDDC","loadingAnimation","LoadingRows","loadingOpacityMixin","$loading","LoadingOpacityContainer","SUPPORTED_LOCALES","DEFAULT_LOCALE","formatLocaleNumber","localeArg","numberString","number","locale","fixedDecimals","_ref$options","minimumFractionDigits","maximumFractionDigits","maximumSignificantDigits","baseString","toSignificant","toLocaleString","formatCurrencyAmount","decimalScale","Fraction","SvgDropdown","isImport","sizeraw","HigherLogo","CoveredLogo","DoubleCurrencyLogo","_ref4$size","_ref4$margin","StyledInput","input","inputRegex","RegExp","Input","onUserInput","placeholder","prependSymbol","maxBalance","enforcer","nextUserInput","onChange","formattedValue","inputMode","autoComplete","autoCorrect","pattern","minLength","maxLength","spellCheck","useInterval","leading","savedCallback","setInterval","clearInterval","PopoverContainer","ReferenceElement","Arrow","Popover","_attributes$popper$da","_attributes$popper","_ref4$placement","placement","referenceElement","setReferenceElement","popperElement","setPopperElement","arrowElement","setArrowElement","strategy","modifiers","offset","element","_usePopper","usePopper","styles","attributes","Portal","popper","arrow","TooltipContainer","Tooltip","MouseoverTooltip","setShow","QuestionWrapper","QuestionMark","QuestionHelper","display","alignItems","StyledListLogo","ListLogo","TokenSection","dim","CheckIcon","NameOverflow","ImportRow","showImportView","setImportToken","isAdded","useIsTokenActive","ml","mr","minWidth","TextDot","Checkbox","PaddedColumn","MenuItem","selected","SearchInput","Separator","currencyKey","StyledBalanceText","Tag","FixedContentRow","Balance","TagContainer","TokenListLogoWrapper","TokenTags","tag","CurrencyRow","onSelect","isSelected","otherSelected","showCurrencyAmount","isOnSelectedList","chainTokenMap","_chainTokenMap$token$","isTokenOnList","customAdded","justifySelf","BREAK_LINE","isBreakLine","x","BreakLineComponent","TokenListLogo","CurrencyList","otherListTokens","selectedCurrency","onCurrencySelect","fixedListRef","itemData","row","itemKey","FixedSizeList","itemCount","itemSize","SearchRow","CurrencySearch","otherSelectedCurrency","disableNonToken","fixedList","searchQuery","setSearchQuery","debouncedQuery","isAddressSearch","searchToken","searchTokenIsAdded","filteredTokens","useAllTokenBalances","sortedTokens","filteredSortedTokens","filteredSortedTokensWithETH","_native$symbol$toLowe","handleCurrencySelect","inputRef","handleInput","_fixedList$current","checksummedInput","scrollTo","handleEnter","_filteredSortedTokens","_useToggle","useToggle","_useToggle2","filteredInactiveTokens","onKeyDown","flex","AutoSizer","disableWidth","StyledPriceContainer","SectionBreak","Dots","severity","_price$quoteCurrency","_price$baseCurrency","_price$baseCurrency2","_price$quoteCurrency2","formattedPrice","showInverted","setShowInverted","usdcPrice","_price$invert","invert","labelInverted","flipPrice","useFetchListCallback","ensResolver","getNetwork","sendDispatch","_args2","getTokenList","ImportList","_lists$listURL","listURL","setModalView","setConfirmed","fetchList","adding","addError","setAddError","handleAddList","CurrencyModalView","manage","cursor","AlertTriangle","checked","textOverflow","overflow","WarningWrapper","highWarning","TokenImportCard","Button","Content","Icon","BlockedToken","onBack","blockedTokens","ImportToken","addToken","useAddUserToken","intersection","CurrencySearchModal","_ref$showCommonBases","showCommonBases","_ref$showCurrencyAmou","_ref$disableNonToken","modalView","lastOpen","filterFn","last","setLast","useLast","prevView","importToken","importList","_useState7","showManageView","handleBackImport","textColor","adjustSize","HoverInlineText","_ref5$maxCharacters","maxCharacters","_ref5$margin","_ref5$adjustSize","showHover","setShowHover","THIRTY_BIPS_FEE","IMPACT_TIERS","FiatValue","fiatValue","priceImpact","priceImpactColor","impact","warningSeverity","InputPanel","hideInput","FixedContainer","Container","CurrencySelect","visible","InputRow","LabelRow","FiatRow","Aligner","StyledDropDown","DropDown","StyledTokenName","StyledNumericalInput","NumericalInput","CurrencyInputPanelAsset","onMax","showMaxButton","renderBalance","_ref25$hideBalance","hideBalance","_ref25$pair","_ref25$hideInput","_ref25$locked","locked","_ref25$loading","_ref25$disabled","approved","modalOpen","setModalOpen","selectedCurrencyBalance","handleDismissSearch","Lock","ActivatorButton","DropdownList","ul","CurrencyDropdown","onUserClick","items","_ref3$disabled","activatorRef","listRef","_React$useState","_React$useState2","setIsOpen","_React$useState3","_React$useState4","activeIndex","setActiveIndex","userClick","onKeyUp","nodeList","querySelectorAll","focus","nodeList2","onFocus","CurrencyInputPanelLimited","_ref13$hideBalance","_ref13$hideInput","_ref13$loading","_ref13$disabled","setSelectedCurrency","allowedCurrencies","BadgeVariant","Badge","variant","NEGATIVE","POSITIVE","PRIMARY","WARNING","WARNING_OUTLINE","pickBackgroundColor","pickBorder","readableColor","pickFontColor","dash","dashCheck","circle","PolyLine","polyline","AnimatedConfirmation","strokeMiterlimit","cx","cy","points","WrapperBack","PreviewModal","preview","Section","inline","BottomSection","ConfirmedIcon","ConfirmationPendingContent","pendingText","TransactionSubmittedContent","_library$provider","currencyToAdd","_useAddTokenToMetamas","setSuccess","logoURL","useAddTokenToMetamask","mt","MetaMaskLogo","ConfirmationModalContent","bottomContent","topContent","L2Content","_transaction$receipt","transaction","useIsTransactionConfirmed","transactionSuccess","secondsToConfirm","Return","TransactionConfirmationModal","attemptingTxn","isL2","useIsArgentWallet","_call$result","ARGENT_WALLET_DETECTOR_ABI","PermitType","PERMIT_VALIDITY_BUFFER","PERMITTABLE_TOKENS","AMOUNT","ALLOWED","UseERC20PermitState","EIP712_DOMAIN_TYPE","EIP712_DOMAIN_TYPE_NO_VERSION","EIP2612_TYPE","PERMIT_ALLOWED_TYPE","useERC20Permit","transactionDeadline","overridePermitInfo","_currencyAmount$curre","_PERMITTABLE_TOKENS$c","eip2612Contract","EIP_2612","useEIP2612Contract","isArgentWallet","nonceInputs","tokenNonceState","permitInfo","signatureData","setSignatureData","_tokenNonceState$resu","_tokenNonceState$resu2","NOT_APPLICABLE","gatherPermitSignature","nonceNumber","toNumber","isSignatureDataValid","deadline","nonce","SIGNED","NOT_SIGNED","_gatherPermitSignature","allowed","signatureDeadline","domain","holder","expiry","verifyingContract","types","EIP712Domain","Permit","primaryType","splitSignature","signature","permitType","useCurrentBlockTimestamp","resultStr","pickAtom","anAtom","setter","draft","withImmer","derived","initialSettings","autoSlippage","maxSlippage","transactionTtl","mockTogglable","clientSideRouter","settingsAtom","atomWithReset","calculateGasMargin","mul","ApprovalState","useApprovalStateForSpender","amountToApprove","useIsPendingApproval","_amountToApprove$curr","currentAllowance","allowance","useTokenAllowance","pendingApproval","APPROVED","NOT_APPROVED","UNKNOWN","useApproval","_amountToApprove$curr2","approvalState","approve","logFailure","useExact","estimatedGas","estimateGas","MaxUint256","gasLimit","spenderAddress","useGetAndTrackApproval","getApproval","useApproveCallback","_useApproval","_useApproval2","useIsSwapUnsupported","currencyInUnsupported","currencyOutUnsupported","useV3PositionsFromTokenIds","tokenIds","positionManager","tokenId","positions","feeGrowthInside0LastX128","feeGrowthInside1LastX128","operator","tickLower","tickUpper","tokensOwed0","tokensOwed1","useV3PositionFromTokenId","_position$positions","MIN_NATIVE_CURRENCY_FOR_GAS","exponentiate","maxAmountSpend","CurrencyInputPanel","_ref24$hideBalance","_ref24$pair","_ref24$hideInput","_ref24$locked","_ref24$loading","_ref24$disabled","main","maxWidth","deprecated_content","AppBody","Tabs","StyledHistoryLink","HistoryLink","StyledArrowLeft","SwapPoolTabs","AddRemoveTabs","creating","migrate","deposit","defaultSlippage","positionID","poolLink","resetMintV3State","HeaderTabs","PageWrapper","wide","ScrollablePage","DynamicSection","ResponsiveTwoColumns","useVaultManager","capitalAmount","_capitalAmount$result","_capitalAmount$result2","capitalInUSD","DEFAULT_ADD_IN_RANGE_SLIPPAGE_TOLERANCE","AddLiquidity","_parsedAmounts$Field$","_parsedAmounts$Field$2","_parsedAmounts$depend","_parsedAmounts$depend2","_formattedAmounts","_usdcValues","_parsedAmounts$Field$3","_parsedAmounts$Field$4","_parsedAmounts$Field$5","_currencies$Field$CUR4","_currencies$Field$CUR7","_currencies$Field$CUR8","_ref$match$params","currencyIdA","currencyIdB","vaultManager","_useV3PositionFromTok","existingPositionDetails","positionLoading","hasExistingPosition","_useDerivedMintInfo","_useMintActionHandler","showConfirm","setShowConfirm","setAttemptingTxn","waiting","setWaiting","_useState8","invalidA","setInvalidA","_useState9","_useState10","invalidB","setInvalidB","_useState11","_useState12","txHash","setTxHash","formattedAmounts","usdcValues","_useApproveCallback","_useApproveCallback2","approval","approveCallback","maxAmounts","requestedAmount","_approveToken","_onAdd","_parsedAmounts$Field$6","_currencies$Field$CUR9","_currencies$Field$CUR10","addLiquidity","_parsedAmounts$Field$7","_parsedAmounts$Field$8","_parsedAmounts$Field$9","_parsedAmounts$Field$10","_parsedAmounts$Field$11","_parsedAmounts$Field$12","wait","currencyNew","currencyIdOther","currencyIdNew","_WRAPPED_NATIVE_CURRE","_WRAPPED_NATIVE_CURRE2","isETHOrWETHNew","isETHOrWETHOther","handleCurrencyASelect","currencyANew","_handleCurrencySelect","_handleCurrencySelect2","idA","idB","handleCurrencyBSelect","currencyBNew","_handleCurrencySelect3","_handleCurrencySelect4","handleDismissConfirmation","addIsUnsupported","showConnectAWallet","removeUnneededCharacter","showBackLink","_currencies$Field$CUR5","decimal","removed","splited","_maxAmounts$Field$CUR","_maxAmounts$Field$CUR2","_currencies$Field$CUR6","_assetMax$toExact","gt","getTickToPrice","baseToken","quoteToken","tickToPrice","tryParseTick","_fraction$length","_value$split","_value$split2","whole","fraction","withoutDecimals","pow","tryParsePrice","encodeSqrtRatioX96","greaterThanOrEqual","TickMath","MAX_SQRT_RATIO","MAX_TICK","MIN_SQRT_RATIO","MIN_TICK","priceToClosestTick","nearestUsableTick","TICK_SPACINGS","useV3MintState","useTransactionDeadline","ttl","blockTimestamp","RightContainer","StackedContainer","StackedItem","MediumOnly","HideMedium","ToggleWrapper","ToggleElement","RateToggle","handleRateToggle","isSorted","injectedRtkApi","injectEndpoints","overrideExisting","CHAIN_TAG","useAllV3TicksQuery","useLazyAllV3TicksQuery","useFeeTierDistributionQuery","useLazyFeeTierDistributionQuery","generatedApi","enhanceEndpoints","addTagTypes","providesTags","MAX_DATA_BLOCK_AGE","useFeeTierDistribution","_usePoolTVL","_useFeeTierDistributi","skipToken","isLoading","isFetching","isUninitialized","isError","asToken0","asToken1","_meta","_meta$block$number","_meta$block","_all$reduce","_distributions","tvlByFeeTier","_acc$value$feeTier$","_acc$value$feeTier$2","feeTier","totalValueLockedToken0","totalValueLockedToken1","_Object$values$reduce","_value$","_value$2","_Object$values$reduce2","sumToken0Tvl","sumToken1Tvl","mean","tvl0","sumTvl0","tvl1","sumTvl1","distributions","usePoolTVL","_usePool","poolStateVeryLow","_usePool3","poolStateLow","_usePool5","poolStateMedium","_usePool7","poolStateHigh","_distributions$FeeAmo","_distributions$FeeAmo2","_distributions$FeeAmo3","_distributions$FeeAmo4","largestUsageFeeTier","_distributions$a","_distributions$b","percentages","FeeTierPercentageBadge","_distributions$feeAmo","poolState","FEE_AMOUNT_DETAIL","_FEE_AMOUNT_DETAIL","supportedChains","ResponsiveText","FeeOption","Select","FeeSelector","_ref$disabled","handleFeePoolSelect","poolsByFeeTier","_pools$reduce","curPoolState","curPool","showOptions","setShowOptions","recommended","handleFeePoolSelectWithEvent","_feeAmount","SmallButton","FocusedOutlineCard","pulsing","InputTitle","ButtonLabel","StepCounter","decrement","increment","_ref7$decrementDisabl","decrementDisabled","_ref7$incrementDisabl","incrementDisabled","setActive","localValue","setLocalValue","useLocalValue","setUseLocalValue","setPulsing","handleOnBlur","handleDecrement","handleIncrement","onBlur","Minus","val","Plus","RangeSelector","_leftPrice$toSignific","_rightPrice$toSignifi","priceLower","priceUpper","onLeftRangeInput","onRightRangeInput","getDecrementLower","getIncrementLower","getDecrementUpper","getIncrementUpper","ticksAtLimit","leftPrice","rightPrice","LOWER","UPPER","BadgeWrapper","BadgeText","ActiveDot","RangeBadge","inRange","DEFAULT","formatTickPrice","atLimit","direction","formatPrice","unwrappedToken","PositionPreview","_position$pool","baseCurrencyDefault","setBaseCurrency","token0PriceLower","token0PriceUpper","handleRateChange","URIForEthToken","_getColorFromToken","wrappedToken","getColorFromUriPath","_getColorFromUriPath","formattedPath","palette","detectedHex","AAscore","Vibrant","getPalette","shade","useColor","setColor","stale","getColorFromToken","tokenColor","Path","Area","series","xScale","yScale","xValue","yValue","_area$curve$x$y1$y","area","curve","curveStepAfter","y0","innerWidth","StyledGroup","g","Axis","axisGenerator","axis","select","remove","AxisBottom","innerHeight","_ref3$offset","transform","axisBottom","ticks","brushHandlePath","brushHandleAccentPath","OffScreenHandle","_ref$size","_ref$margin","Handle","HandleAccent","LabelGroup","TooltipBackground","rect","compare","aNorm","bNorm","Brush","brushLabelValue","brushExtent","setBrushExtent","westHandleColor","eastHandleColor","brushRef","brushBehavior","localBrushExtent","setLocalBrushExtent","showLabels","setShowLabels","hovering","setHovering","previousBrushExtent","brushed","selection","mode","scaled","brushX","extent","handleSize","transition","move","selectAll","attr","flipWestHandle","flipEastHandle","showWestArrow","showEastArrow","westHandleInView","eastHandleInView","stopColor","y","clipPath","rx","dominantBaseline","StyledLine","line","Line","count","ZoomOverlay","Zoom","setZoom","resetBrush","showResetButton","zoomLevels","zoomBehavior","scaleBy","scaleTo","zoomIdentity","translate","scale","zoomIn","zoomOut","zoomInitial","zoomReset","zoom","scaleExtent","min","RefreshCcw","ZoomIn","ZoomOut","xAccessor","price0","yAccessor","activeLiquidity","Chart","_ref$id","_ref$data","_ref$dimensions","dimensions","margins","_ref$interactive","brushDomain","brushLabels","onBrushDomainChange","zoomRef","top","bottom","left","right","_useMemo3","scales","scaleLinear","initialMin","initialMax","range","newXscale","rescaleX","mask","brush","handle","west","east","PRICE_FIXED_DIGITS","computeSurroundingTicks","activeTickProcessed","sortedTickData","pivot","ascending","previousTickProcessed","processedTicks","currentTickProcessed","liquidityActive","liquidityNet","notEqual","_ZOOM_LEVELS","CHAIN_IDS_MISSING_SUBGRAPH_DATA","REFRESH_FREQUENCY","blocksPerFetch","getActiveTick","floor","bitmapIndex","tickSpacing","useTicksFromTickLens","numSurroundingTicks","tickDataLatestSynced","setTickDataLatestSynced","_usePool2","activeTick","minIndex","maxIndex","tickLensArgs","wordIndex","tickLens","useTickLens","callStates","IsSyncing","syncing","isValid","tickData","populatedTicks","_current$map","liquidityGross","useAllV3Ticks","_subgraphTickData$dat","useSubgraph","tickLensTickData","subgraphTickData","useTicksFromSubgraph","useDensityChartData","_usePoolActiveLiquidi","_pool$","_useAllV3Ticks","_pool$1$liquidity","_pool$2","subsequentTicks","ticksProcessed","usePoolActiveLiquidity","formatData","newData","chartEntry","formattedData","ZOOM_LEVELS","ChartWrapper","InfoBox","LiquidityChartRangeInput","_saturate","_saturate2","tokenAColor","tokenBColor","_useDensityChartData","onBrushDomainChangeEnded","leftRangeValue","rightRangeValue","format","abs","Inbox","CloudOff","saturate","BarChart2","PresetsButtons","Review","outOfRange","AddLiquidityV3","_useParams","useParams","feeAmountFromUrl","showCapitalEfficiencyWarning","setShowCapitalEfficiencyWarning","poolType","_useDerivedPositionIn","positionDetails","Position","useDerivedPositionInfo","existingPosition","_useV3MintState","_useV3DerivedMintInfo","_errorMessage","_errorMessage2","_errorMessage3","_useMemo4","invertPrice","parsedQuoteAmount","baseAmount","invalidPrice","mockPool","currentTick","currentSqrt","getSqrtRatioAtTick","poolForPosition","tickSpaceLimits","invalidRange","pricesAtTicks","lowerPrice","upperPrice","fromAmount0","useFullPrecision","fromAmount1","deposit0Disabled","deposit1Disabled","depositADisabled","depositBDisabled","_parsedAmounts","_parsedAmounts2","fromAmounts","invalidPool","useV3DerivedMintInfo","_useV3MintActionHandl","onStartPriceInput","useV3MintActionHandlers","_useState13","_useState14","argentWalletContract","ArgentWalletContractABI","useArgentWalletContract","onAdd","newFeeAmount","clearAll","_useRangeHopCallbacks","Rounding","ROUND_UP","getSetFullRange","useRangeHopCallbacks","Buttons","_toSignificant","_toSignificant2","_formattedAmounts$Fie","borderColor","textDecoration","RedirectDuplicateTokenIds","_props$match$params","isETHOrWETHA","isETHOrWETHB","Redirect","AmountNumericalInput","AddToken","approveAmount","setClickable","invalid","setInvalid","insufficient","setInsufficient","migrateContract","userPoolBalance","temp","_useState15","_useState16","inputBalance","setInputBalance","_useState17","_useState18","_onImport","_pair$token","_pair$token2","importLPTokens","isFork","finish","paddingBottom","useIsTickAtLimit","LinkRow","DataLineItem","RangeLineItem","DoubleArrow","RangeText","ExtentsText","PrimaryPositionIdData","DataText","PositionListItemV3","_currencyBase$symbol","setTokenId","activeTokenId","tickAtLimit","_getPriceOrderingFrom","stable","getPriceOrderingFromPositionForUI","currencyQuote","currencyBase","approvedUser","useLiquiditySpender","_useLiquidityApproval","useLiquidityApproval","_useLiquidityApproval2","AddTokenV3","_useV3Positions","_balanceResult$","balanceLoading","balanceResult","accountBalance","tokenIdResults","tokenRequests","someTokenIdsLoading","_useV3PositionsFromTo","positionsLoading","useV3Positions","filteredPostions","setFilteredPositions","filtered","RedirectMigrateTokenId","Deposit","assetVault","insufficientBalance","setInsufficientBalance","atMaxAmounts","_maxAmounts$field","_parsedAmounts$field","_onDeposit","_maxAmounts$Field$CUR3","RedirectDepositTokenId","AMMS_INFO","AMMS_PER_NETWORK","_AMMS_PER_NETWORK","AMMs","Dropdown","_ref4$items","textContent","HideBackground","RemoveLiquidityWarrap","RemoveLiquidity","PairListItem","setActiveKey","activeKey","capital","asset","liquidityRaw","lpAmount","token0AmountRaw","capitalImported","token1AmountRaw","assetImported","token0RAmountRaw","capitalReceived","token1RAmountRaw","assetReceived","feeAmountRaw","bundleID","bundle","collapse","setCollapse","removeClicked","setRemoveClicked","removeOnClick","token0Amount","token1Amount","token0RAmount","token1RAmount","pairToken0Amount","pairToken1Amount","currentToken0AmountRaw","currentToken1AmountRaw","currentToken0Amount","useGrouping","currentToken1Amount","ROI","confimrOnClick","migrateLPTokens","minInlineSize","DesktopHeader","MobileHeader","PairList","setUserHideClosedPositions","BaseLoadingRows","TitleRow","ButtonRow","NoLiquidity","ResponsiveButtonPrimary","MainContentWrapper","PositionsLoadingPlaceholder","MIGRATION_QUERY","MIGRATION_QUERY_HIDE","setContent","migrateQuery","setMigrateQuery","setData","_useQuery","useQuery","pollInterval","amm","queryData","refetch","migrations","actives","inactives","as","gradientUnits","PositionListItem","_approveAmount","assetAmount","repayAmount","userTokenBalance","ceil","removeLiquidity","formatEther","IMPORT_HISTORY_QUERY","EXPORT_HISTORY_QUERY","PositionListItemClosed","_importedData$histori","_importedData$histori2","_exportedData$histori","_exportedData$histori2","_exportedData$histori3","_exportedData$histori4","importedData","exportedData","histories","AssetListItem","_assetManager$address","tokenAmountRaw","assetManager","tokenAmount","userTokenBalanceRaw","setAmount","go","onConfirmClick","withdrawAmount","withdraw","flexDirection","maxAmount","evt","maxValue","onMaxReached","PositionList","tokensQuery","Lend","_useUserHideClosedPos","_useUserHideClosedPos2","float","assets","useDDJ","_balance$result$","Claim","_useRewardStorage","rewardStorageContract","threshold","reward","_threshold$result$","_threshold$result","_reward$result$","_reward$result","useRewardStorage","isEnough","gte","onWithdraw","withdrawRewards","formatedReward","formatedBalance","lineHeight","CAPITAL_TYPE","ContainerRow","InputContainer","AddressStyledPanel","_ref6$className","withoutSpaces","autoCapitalize","DDCDropdown","logo","indItem","DDCTokenSelection","onItemSelect","nftItem","_ref7$disabled","selectedItem","setSelectedItem","images","metadata","resp","useTokenURI","nftItems","setNftItems","_images$i","_images$i2","base64Str","atob","InnerWrapper","TruncateEllipsis","PlaceholderLabel","truncate","AddressDropdown","_ref3$items","SelectLabel","ListItemLabel","NumericalInputContainer","DDCListItem","positionAmount","positionType","_useClubManager","undelegateItems","setUndelegateItems","setNftItem","invalidAddress","setInvalidAddress","invalidAmount","setInvalidAmount","ddcContract","managerContract","_useState19","_useState20","_useState21","_useState22","setAddress","_useState23","_useState24","delegatedAllowance","setDelegatedAllowance","parseNumber","num","notEnoughAllowance","UNDELEGATE","delegatorList","onDeposit","onDelegate","delegate","onUndelegate","undelegate","onChangeContent","amountList","getSupplyAllowance","DEPOSIT","positionRight","WITHDRAW","positionLeft","positionDown","positionUp","DEPOSIT_HISTORY_QUERY","DELEGATE_HISTORY_QUERY","assetAddr","_assetAddr","DDCPosition","_useDoubleDownClub","_balance$result2","_token$result","useDoubleDownClub","tokenAddr","setTokenAddr","depositResp","_useQuery2","delegateResp","refetchDelegate","depositData","_depositResp$depositD","depositDDCHistories","delegateData","_delegateResp$delegat","delegateDDCHistories","withdrawItems","delegateCount","total","obj","Join","ClickableText","MaxButton","LIQUIDITY_QUERY","LIQUIDITY_QUERY_HIDE","liquidityQuery","setLiquidityQuery","exist","nonExist","isOnSwitch","StyledToggle","Toggle","_ref8$checked","On","_ref8$unchecked","unchecked","Off","MAX_UINT128","sub","useV3PositionFees","asWETH","tokenIdHexString","amounts","setAmounts","callStatic","collect","amount0Max","amount1Max","STARTS_WITH","end","ResponsiveRow","NFTGrid","NFTCanvas","canvas","NFTImage","CurrentPriceCard","inverted","LinkedCurrency","getSnapshot","targetHeight","context","getContext","ratio","devicePixelRatio","clearRect","drawImage","NFT","animate","setAnimate","canvasRef","imageRef","hidden","onLoad","PositionPage","_feeValueUpper$curren2","_feeValueLower$curren2","tokenIdFromUrl","parsedTokenId","tokenURI","usePositionTokenURI","receiveWETH","setReceiveWETH","nativeWrappedSymbol","pricesFromPosition","manuallyInverted","setManuallyInverted","_useInverter","useInverter","lower","getRatio","_useV3PositionFees","_useV3PositionFees2","feeValue0","feeValue1","collecting","setCollecting","collectMigrationHash","setCollectMigrationHash","isCollectPending","useIsTransactionPending","price1","fiatValueOfFees","feeValue0Wrapped","feeValue1Wrapped","fiatValueOfLiquidity","_NonfungiblePositionM","NonfungiblePositionManager","collectCallParameters","expectedCurrencyOwed0","expectedCurrencyOwed1","estimate","newTxn","sendTransaction","ownsNFT","feeValueUpper","feeValueLower","below","above","modalHeader","_feeValueUpper$curren","_feeValueLower$curren","showCollectAsWeth","REMOVE_V2_LIQUIDITY_PERMIT_INFO","FixedHeightRow","bgColor","MinimalPositionCard","_ref2$showUnwrapped","showUnwrapped","showMore","setShowMore","totalPoolTokens","getLiquidityValue","token0Deposited","token1Deposited","StyledRangeInput","Slider","_ref18$min","_ref18$step","step","_ref18$max","_ref18$size","changeCallback","useDebouncedChangeHandler","debouncedMs","inner","setInner","timer","onChangeInner","useBurnState","ONE","calculateSlippageAmount","slippage","DEFAULT_REMOVE_LIQUIDITY_SLIPPAGE_TOLERANCE","_useCurrency","_useCurrency2","_pair$liquidityToken","_WRAPPED_NATIVE_CURRE3","_WRAPPED_NATIVE_CURRE4","_WRAPPED_NATIVE_CURRE5","_WRAPPED_NATIVE_CURRE6","liquidityAmount","_useBurnState","_useDerivedBurnInfo","_pair$liquidityToken$","_liquidityValues","relevantTokenBalances","userLiquidity","LIQUIDITY","liquidityValueA","liquidityValueB","liquidityValues","percentToRemove","liquidityValue","useDerivedBurnInfo","_useBurnActionHandler","useBurnActionHandlers","_onUserInput","showDetailed","setShowDetailed","atMaxAmount","pairContract","_useV2LiquidityTokenP","_onAttemptToApprove","onLiquidityInput","onCurrencyAInput","onCurrencyBInput","onRemove","_onRemove","_amountsMin","currencyAmountB","amountsMin","currencyBIsETH","oneCurrencyIsETH","methodNames","safeGasEstimates","indexOfSuccessfulEstimation","methodName","safeGasEstimate","_router$estimateGas","isBigNumber","_parsedAmounts$Field$13","_parsedAmounts$Field$14","_parsedAmounts$Field$15","_parsedAmounts$Field$16","modalBottom","liquidityPercentChangeCallback","oneCurrencyIsWETH","handleSelectCurrencyA","handleSelectCurrencyB","_useDebouncedChangeHa","_useDebouncedChangeHa2","innerLiquidityPercentage","setInnerLiquidityPercentage","Simple","Detailed","CURRENCY_AMOUNT_MIN","_ref$significantDigit","significantDigits","useBurnV3State","SmallMaxButton","ResponsiveHeaderText","DEFAULT_REMOVE_V3_LIQUIDITY_SLIPPAGE_TOLERANCE","RemoveLiquidityV3","Remove","_position$liquidity","_liquidityValue0$curr","_liquidityValue1$curr","_feeValue0$currency2","_feeValue1$currency2","_liquidityValue0$curr3","_liquidityValue1$curr3","_feeValue0$currency3","_feeValue1$currency3","_useDerivedV3BurnInfo","positionSDK","liquidityPercentage","discountedAmount0","discountedAmount1","liquidityValue0","liquidityValue1","useDerivedV3BurnInfo","_useBurnV3ActionHandl","onPercentSelect","useBurnV3ActionHandlers","percentForSlider","onPercentSelectForSlider","txnHash","setTxnHash","removeCallParameters","slippageTolerance","collectOptions","_liquidityValue0$curr2","_liquidityValue1$curr2","_feeValue0$currency","_feeValue1$currency","RedirectPathToSwapOnly","AppWrapper","HeaderWrapper","Marginer","BodyContent","setBarState","handleScroll","scrollTop","scrollHeight","clientHeight","instance","Suspense","fallback","Switch","exact","strict","component","App","showBarState","borderBottom","isLocalhost","registerValidSW","swUrl","serviceWorker","register","registration","onupdatefound","installingWorker","installing","onstatechange","controller","onUpdate","onSuccess","activeChainId","setActiveChainId","util","invalidateTags","useQueryCacheInvalidator","debouncedChainId","_supportedChainId","fetchAllListsCallback","bump","PATCH","MINOR","minVersionBump","MAJOR","filtersNeedFetch","_active$key","pcs","keyToFilter","getLogs","fromBlock","toBlock","waitRandom","ms","random","CancelledError","isCancelledError","RetryableError","isRetryableError","RETRY_OPTIONS_BY_CHAIN_ID","_RETRY_OPTIONS_BY_CHA","minWait","maxWait","DEFAULT_RETRY_OPTIONS","onCheck","onReceipt","lastBlockNumber","fastForwardBlockNumber","getReceipt","_RETRY_OPTIONS_BY_CHA2","fn","rejectCancelled","completed","cancel","retry","getTransactionReceipt","cancels","blocksSinceCheck","minutesPending","shouldCheck","_getReceipt","blockHash","transactionIndex","LibUpdater","darkHandler","matchMedia","initialStyles","backgroundBlendMode","backgroundResetStyles","backgroundRadialGradientElement","getElementById","setBackground","newValues","RadialGradientByChainUpdater","_useDarkModeManager","toggleSetDarkMode","useDarkModeManager","Web3ProviderNetwork","Updaters","ListsUpdater","UserUpdater","ApplicationUpdater","TransactionUpdater","LogsUpdater","ReactDOM","render","StrictMode","HashRouter","REACT_APP_SERVICE_WORKER","contentType","ready","unregister","reload","checkValidServiceWorker","serviceWorkerRegistration"],"mappings":"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","file":"static/js/main.5949c13a.chunk.js","sourcesContent":["import 'polyfill-object.fromentries'\n\nimport flat from 'array.prototype.flat'\nimport flatMap from 'array.prototype.flatmap'\n\nflat.shim()\nflatMap.shim()\n","import { UAParser } from 'ua-parser-js'\n\nconst parser = new UAParser(window.navigator.userAgent)\nconst { type } = parser.getDevice()\n\nexport const userAgent = parser.getResult()\n\nexport const isMobile = type === 'mobile' || type === 'tablet'\n","import ReactGA from 'react-ga4'\nimport { isMobile } from 'utils/userAgent'\n\nexport const GOOGLE_ANALYTICS_CLIENT_ID_STORAGE_KEY = 'ga_client_id'\nconst GOOGLE_ANALYTICS_ID: string | undefined = process.env.REACT_APP_GOOGLE_ANALYTICS_ID\n\nconst storedClientId = window.localStorage.getItem(GOOGLE_ANALYTICS_CLIENT_ID_STORAGE_KEY)\n\nif (typeof GOOGLE_ANALYTICS_ID === 'string') {\n ReactGA.initialize(GOOGLE_ANALYTICS_ID, {\n gaOptions: {\n storage: 'none',\n storeGac: false,\n clientId: storedClientId ?? undefined,\n },\n })\n ReactGA.set({\n anonymizeIp: true,\n customBrowserType: !isMobile\n ? 'desktop'\n : 'web3' in window || 'ethereum' in window\n ? 'mobileWeb3'\n : 'mobileRegular',\n })\n} else {\n ReactGA.initialize('test', { gtagOptions: { debug_mode: true } })\n}\n","//@ts-nocheck\nimport { JsonRpcProvider } from '@ethersproject/providers'\nimport { Actions, Connector, ProviderConnectInfo, ProviderRpcError } from '@web3-react/types'\n\nfunction parseChainId(chainId: string) {\n return Number.parseInt(chainId, 16)\n}\n\nexport default class JsonRpcConnector extends Connector {\n constructor(actions: Actions, public customProvider: JsonRpcProvider) {\n super(actions)\n customProvider\n .on('connect', ({ chainId }: ProviderConnectInfo): void => {\n this.actions.update({ chainId: parseChainId(chainId) })\n })\n .on('disconnect', (error: ProviderRpcError): void => {\n this.actions.reportError(error)\n })\n .on('chainChanged', (chainId: string): void => {\n this.actions.update({ chainId: parseChainId(chainId) })\n })\n .on('accountsChanged', (accounts: string[]): void => {\n this.actions.update({ accounts })\n })\n }\n\n async activate() {\n this.actions.startActivation()\n\n try {\n const [{ chainId }, accounts] = await Promise.all([\n this.customProvider.getNetwork(),\n this.customProvider.listAccounts(),\n ])\n this.actions.update({ chainId, accounts })\n } catch (e) {\n this.actions.reportError(e)\n }\n }\n}\n","// @ts-nocheck\nimport { ExternalProvider, JsonRpcProvider, Web3Provider } from '@ethersproject/providers'\nimport { initializeConnector, Web3ReactHooks } from '@web3-react/core'\nimport { EIP1193 } from '@web3-react/eip1193'\nimport { EMPTY } from '@web3-react/empty'\nimport { Actions, Connector, Provider as Eip1193Provider, Web3ReactStore } from '@web3-react/types'\nimport { Url } from '@web3-react/url'\nimport { useAtom, WritableAtom } from 'jotai'\nimport { atom } from 'jotai'\nimport JsonRpcConnector from 'lib/utils/JsonRpcConnector'\nimport { createContext, PropsWithChildren, useContext, useEffect, useMemo, useState } from 'react'\n\ntype Web3ContextType = {\n connector: Connector\n library?: (JsonRpcProvider & { provider?: ExternalProvider }) | Web3Provider\n chainId?: ReturnType\n accounts?: ReturnType\n account?: ReturnType\n active?: ReturnType\n error?: ReturnType\n ensNames?: ReturnType\n ensName?: ReturnType\n}\n\nconst EMPTY_CONNECTOR = initializeConnector(() => EMPTY)\nconst EMPTY_CONTEXT: Web3ContextType = { connector: EMPTY }\nconst urlConnectorAtom = atom<[Connector, Web3ReactHooks, Web3ReactStore]>(EMPTY_CONNECTOR)\nconst injectedConnectorAtom = atom<[Connector, Web3ReactHooks, Web3ReactStore]>(EMPTY_CONNECTOR)\nconst Web3Context = createContext(EMPTY_CONTEXT)\n\nexport default function useActiveWeb3React() {\n return useContext(Web3Context)\n}\n\nfunction useConnector(\n connectorAtom: WritableAtom<[Connector, Web3ReactHooks, Web3ReactStore], [Connector, Web3ReactHooks, Web3ReactStore]>,\n Connector: T,\n initializer: I | undefined\n) {\n const [connector, setConnector] = useAtom(connectorAtom)\n useEffect(() => {\n if (initializer) {\n const [connector, hooks, store] = initializeConnector((actions) => new Connector(actions, initializer))\n connector.activate()\n setConnector([connector, hooks, store])\n } else {\n setConnector(EMPTY_CONNECTOR)\n }\n }, [Connector, initializer, setConnector])\n return connector\n}\n\ninterface ActiveWeb3ProviderProps {\n provider?: Eip1193Provider | JsonRpcProvider\n jsonRpcEndpoint?: string | JsonRpcProvider\n}\n\nexport function ActiveWeb3Provider({\n provider,\n jsonRpcEndpoint,\n children,\n}: PropsWithChildren) {\n const Injected = useMemo(() => {\n if (provider) {\n if (JsonRpcProvider.isProvider(provider)) return JsonRpcConnector\n if (JsonRpcProvider.isProvider((provider as any).provider)) {\n throw new Error('Eip1193Bridge is experimental: pass your ethers Provider directly')\n }\n }\n return EIP1193\n }, [provider]) as { new (actions: Actions, initializer: typeof provider): Connector }\n const injectedConnector = useConnector(injectedConnectorAtom, Injected, provider)\n const urlConnector = useConnector(urlConnectorAtom, Url, jsonRpcEndpoint)\n const [connector, hooks] = injectedConnector[1].useIsActive() ? injectedConnector : urlConnector ?? EMPTY_CONNECTOR\n\n const library = hooks.useProvider()\n\n // TODO(zzmp): walletconnect returns chainId as a number, so web3-react incorrectly parses it as hex.\n const [chainId, setChainId] = useState(hooks.useChainId())\n useEffect(() => {\n let stale = false\n library?.getNetwork().then(({ chainId }) => {\n if (!stale) {\n setChainId(chainId)\n }\n })\n return () => {\n stale = true\n }\n }, [library])\n\n const accounts = hooks.useAccounts()\n const account = hooks.useAccount()\n const active = hooks.useIsActive()\n const error = hooks.useError()\n const ensNames = hooks.useENSNames()\n const ensName = hooks.useENSName()\n const web3 = useMemo(() => {\n if (connector === EMPTY || !active) {\n return EMPTY_CONTEXT\n }\n return { connector, library, chainId, accounts, account, active, error, ensNames, ensName }\n }, [account, accounts, active, chainId, connector, ensName, ensNames, error, library])\n\n // Log web3 errors to facilitate debugging.\n useEffect(() => {\n if (error) {\n console.error('web3 error:', error)\n }\n }, [error])\n\n return {children}\n}\n","export interface AbstractConnectorArguments {\n supportedChainIds?: number[]\n}\n\nexport interface ConnectorUpdate {\n provider?: any\n chainId?: T\n account?: null | string\n}\n\nexport enum ConnectorEvent {\n Update = 'Web3ReactUpdate',\n Error = 'Web3ReactError',\n Deactivate = 'Web3ReactDeactivate'\n}\n","import { arrayify } from '@ethersproject/bytes'\nimport { keccak256 } from '@ethersproject/keccak256'\nimport invariant from 'tiny-invariant'\n\nexport function normalizeChainId(chainId: string | number): number {\n if (typeof chainId === 'string') {\n // Temporary fix until the next version of Metamask Mobile gets released.\n // In the current version (0.2.13), the chainId starts with “Ox” rather\n // than “0x”. Fix: https://github.com/MetaMask/metamask-mobile/pull/1275\n chainId = chainId.replace(/^Ox/, '0x')\n\n const parsedChainId = Number.parseInt(chainId, chainId.trim().substring(0, 2) === '0x' ? 16 : 10)\n invariant(!Number.isNaN(parsedChainId), `chainId ${chainId} is not an integer`)\n return parsedChainId\n } else {\n invariant(Number.isInteger(chainId), `chainId ${chainId} is not an integer`)\n return chainId\n }\n}\n\n// https://github.com/ethers-io/ethers.js/blob/d9d438a119bb11f8516fc9cf02c534ab3816fcb3/packages/address/src.ts/index.ts\nexport function normalizeAccount(_address: string): string {\n invariant(typeof _address === 'string' && _address.match(/^(0x)?[0-9a-fA-F]{40}$/), `Invalid address ${_address}`)\n\n const address = _address.substring(0, 2) === '0x' ? _address : `0x${_address}`\n const chars = address\n .toLowerCase()\n .substring(2)\n .split('')\n\n const charsArray = new Uint8Array(40)\n for (let i = 0; i < 40; i++) {\n charsArray[i] = chars[i].charCodeAt(0)\n }\n const hashed = arrayify(keccak256(charsArray))\n\n for (let i = 0; i < 40; i += 2) {\n if (hashed[i >> 1] >> 4 >= 8) {\n chars[i] = chars[i].toUpperCase()\n }\n if ((hashed[i >> 1] & 0x0f) >= 8) {\n chars[i + 1] = chars[i + 1].toUpperCase()\n }\n }\n\n const addressChecksum = `0x${chars.join('')}`\n\n invariant(\n !(address.match(/([A-F].*[a-f])|([a-f].*[A-F])/) && address !== addressChecksum),\n `Bad address checksum ${address} ${addressChecksum}`\n )\n\n return addressChecksum\n}\n","import { useReducer, useEffect, useCallback, useRef } from 'react'\nimport { ConnectorUpdate, ConnectorEvent } from '../types'\nimport { AbstractConnector } from '../abstract-connector'\nimport warning from 'tiny-warning'\n\nimport { Web3ReactManagerReturn } from './types'\nimport { normalizeChainId, normalizeAccount } from './normalizers'\n\nclass StaleConnectorError extends Error {\n constructor() {\n super()\n this.name = this.constructor.name\n }\n}\n\nexport class UnsupportedChainIdError extends Error {\n public constructor(unsupportedChainId: number, supportedChainIds?: readonly number[]) {\n super()\n this.name = this.constructor.name\n this.message = `Unsupported chain id: ${unsupportedChainId}. Supported chain ids are: ${supportedChainIds}.`\n }\n}\n\ninterface Web3ReactManagerState {\n connector?: AbstractConnector\n provider?: any\n chainId?: number\n account?: null | string\n\n onError?: (error: Error) => void\n\n error?: Error\n}\n\nenum ActionType {\n ACTIVATE_CONNECTOR,\n UPDATE,\n UPDATE_FROM_ERROR,\n ERROR,\n ERROR_FROM_ACTIVATION,\n DEACTIVATE_CONNECTOR\n}\n\ninterface Action {\n type: ActionType\n payload?: any\n}\n\nfunction reducer(state: Web3ReactManagerState, { type, payload }: Action): Web3ReactManagerState {\n switch (type) {\n case ActionType.ACTIVATE_CONNECTOR: {\n const { connector, provider, chainId, account, onError } = payload\n return { connector, provider, chainId, account, onError }\n }\n case ActionType.UPDATE: {\n const { provider, chainId, account } = payload\n return {\n ...state,\n ...(provider === undefined ? {} : { provider }),\n ...(chainId === undefined ? {} : { chainId }),\n ...(account === undefined ? {} : { account })\n }\n }\n case ActionType.UPDATE_FROM_ERROR: {\n const { provider, chainId, account } = payload\n return {\n ...state,\n ...(provider === undefined ? {} : { provider }),\n ...(chainId === undefined ? {} : { chainId }),\n ...(account === undefined ? {} : { account }),\n error: undefined\n }\n }\n case ActionType.ERROR: {\n const { error } = payload\n const { connector, onError } = state\n return {\n connector,\n error,\n onError\n }\n }\n case ActionType.ERROR_FROM_ACTIVATION: {\n const { connector, error } = payload\n return {\n connector,\n error\n }\n }\n case ActionType.DEACTIVATE_CONNECTOR: {\n return {}\n }\n }\n}\n\nasync function augmentConnectorUpdate(\n connector: AbstractConnector,\n update: ConnectorUpdate\n): Promise> {\n const provider = update.provider === undefined ? await connector.getProvider() : update.provider\n const [_chainId, _account] = (await Promise.all([\n update.chainId === undefined ? connector.getChainId() : update.chainId,\n update.account === undefined ? connector.getAccount() : update.account\n ])) as [Required['chainId'], Required['account']]\n\n const chainId = normalizeChainId(_chainId)\n if (!!connector.supportedChainIds && !connector.supportedChainIds.includes(chainId)) {\n throw new UnsupportedChainIdError(chainId, connector.supportedChainIds)\n }\n const account = _account === null ? _account : normalizeAccount(_account)\n\n return { provider, chainId, account }\n}\n\nexport function useWeb3ReactManager(): Web3ReactManagerReturn {\n const [state, dispatch] = useReducer(reducer, {})\n const { connector, provider, chainId, account, onError, error } = state\n\n const updateBusterRef = useRef(-1)\n updateBusterRef.current += 1\n\n const activate = useCallback(\n async (\n connector: AbstractConnector,\n onError?: (error: Error) => void,\n throwErrors = false\n ): Promise => {\n const updateBusterInitial = updateBusterRef.current\n\n let activated = false\n try {\n const update = await connector.activate().then(\n (update): ConnectorUpdate => {\n activated = true\n return update\n }\n )\n\n const augmentedUpdate = await augmentConnectorUpdate(connector, update)\n\n if (updateBusterRef.current > updateBusterInitial) {\n throw new StaleConnectorError()\n }\n dispatch({ type: ActionType.ACTIVATE_CONNECTOR, payload: { connector, ...augmentedUpdate, onError } })\n } catch (error) {\n if (error instanceof StaleConnectorError) {\n activated && connector.deactivate()\n warning(false, `Suppressed stale connector activation ${connector}`)\n } else if (throwErrors) {\n activated && connector.deactivate()\n throw error\n } else if (onError) {\n activated && connector.deactivate()\n onError(error)\n } else {\n // we don't call activated && connector.deactivate() here because it'll be handled in the useEffect\n dispatch({ type: ActionType.ERROR_FROM_ACTIVATION, payload: { connector, error } })\n }\n }\n },\n []\n )\n\n const setError = useCallback((error: Error): void => {\n dispatch({ type: ActionType.ERROR, payload: { error } })\n }, [])\n\n const deactivate = useCallback((): void => {\n dispatch({ type: ActionType.DEACTIVATE_CONNECTOR })\n }, [])\n\n const handleUpdate = useCallback(\n async (update: ConnectorUpdate): Promise => {\n if (!connector) {\n throw Error(\"This should never happen, it's just so Typescript stops complaining\")\n }\n\n const updateBusterInitial = updateBusterRef.current\n\n // updates are handled differently depending on whether the connector is active vs in an error state\n if (!error) {\n const chainId = update.chainId === undefined ? undefined : normalizeChainId(update.chainId)\n if (chainId !== undefined && !!connector.supportedChainIds && !connector.supportedChainIds.includes(chainId)) {\n const error = new UnsupportedChainIdError(chainId, connector.supportedChainIds)\n onError ? onError(error) : dispatch({ type: ActionType.ERROR, payload: { error } })\n } else {\n const account = typeof update.account === 'string' ? normalizeAccount(update.account) : update.account\n dispatch({ type: ActionType.UPDATE, payload: { provider: update.provider, chainId, account } })\n }\n } else {\n try {\n const augmentedUpdate = await augmentConnectorUpdate(connector, update)\n\n if (updateBusterRef.current > updateBusterInitial) {\n throw new StaleConnectorError()\n }\n dispatch({ type: ActionType.UPDATE_FROM_ERROR, payload: augmentedUpdate })\n } catch (error) {\n if (error instanceof StaleConnectorError) {\n warning(false, `Suppressed stale connector update from error state ${connector} ${update}`)\n } else {\n // though we don't have to, we're re-circulating the new error\n onError ? onError(error) : dispatch({ type: ActionType.ERROR, payload: { error } })\n }\n }\n }\n },\n [connector, error, onError]\n )\n const handleError = useCallback(\n (error: Error): void => {\n onError ? onError(error) : dispatch({ type: ActionType.ERROR, payload: { error } })\n },\n [onError]\n )\n const handleDeactivate = useCallback((): void => {\n dispatch({ type: ActionType.DEACTIVATE_CONNECTOR })\n }, [])\n\n // ensure that connectors which were set are deactivated\n useEffect((): (() => void) => {\n return () => {\n if (connector) {\n connector.deactivate()\n }\n }\n }, [connector])\n\n // ensure that events emitted from the set connector are handled appropriately\n useEffect((): (() => void) => {\n if (connector) {\n connector\n .on(ConnectorEvent.Update, handleUpdate)\n .on(ConnectorEvent.Error, handleError)\n .on(ConnectorEvent.Deactivate, handleDeactivate)\n }\n\n return () => {\n if (connector) {\n connector\n .off(ConnectorEvent.Update, handleUpdate)\n .off(ConnectorEvent.Error, handleError)\n .off(ConnectorEvent.Deactivate, handleDeactivate)\n }\n }\n }, [connector, handleUpdate, handleError, handleDeactivate])\n\n return { connector, provider, chainId, account, activate, setError, deactivate, error }\n}\n","// @ts-nocheck\nimport React, { createContext, useContext, useMemo } from 'react'\nimport invariant from 'tiny-invariant'\n\nimport { Web3ReactContextInterface } from './types'\nimport { useWeb3ReactManager } from './manager'\n\nexport const PRIMARY_KEY = 'primary'\nconst CONTEXTS: { [key: string]: React.Context } = {}\n\ninterface Web3ReactProviderArguments {\n getLibrary: (provider?: any, connector?: Required['connector']) => any\n children: any\n}\n\nexport function createWeb3ReactRoot(key: string): (args: Web3ReactProviderArguments) => JSX.Element {\n invariant(!CONTEXTS[key], `A root already exists for provided key ${key}`)\n\n CONTEXTS[key] = createContext({\n activate: async () => {\n invariant(false, 'No found.')\n },\n setError: () => {\n invariant(false, 'No found.')\n },\n deactivate: () => {\n invariant(false, 'No found.')\n },\n active: false\n })\n CONTEXTS[key].displayName = `Web3ReactContext - ${key}`\n\n const Provider = CONTEXTS[key].Provider\n\n return function Web3ReactProvider({ getLibrary, children }: Web3ReactProviderArguments): JSX.Element {\n const {\n connector,\n provider,\n chainId,\n account,\n\n activate,\n setError,\n deactivate,\n\n error\n } = useWeb3ReactManager()\n\n const active = connector !== undefined && chainId !== undefined && account !== undefined && !!!error\n const library = useMemo(\n () =>\n active && chainId !== undefined && Number.isInteger(chainId) && !!connector\n ? getLibrary(provider, connector)\n : undefined,\n [active, getLibrary, provider, connector, chainId]\n )\n\n const web3ReactContext: Web3ReactContextInterface = {\n connector,\n library,\n chainId,\n account,\n\n activate,\n setError,\n deactivate,\n\n active,\n error\n }\n\n return {children}\n }\n}\n\nexport const Web3ReactProvider = createWeb3ReactRoot(PRIMARY_KEY)\n\nexport function getWeb3ReactContext(key: string = PRIMARY_KEY): React.Context> {\n invariant(Object.keys(CONTEXTS).includes(key), `Invalid key ${key}`)\n return CONTEXTS[key]\n}\n\nexport function useWeb3React(key?: string): Web3ReactContextInterface {\n return useContext(getWeb3ReactContext(key))\n}\n","import { Percent } from '@uniswap/sdk-core'\nimport JSBI from 'jsbi'\n\nexport const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000'\n\nexport const NetworkContextName = 'NETWORK'\n\nexport const IS_IN_IFRAME = window.parent !== window\n\n// 30 minutes, denominated in seconds\nexport const DEFAULT_DEADLINE_FROM_NOW = 60 * 30\nexport const L2_DEADLINE_FROM_NOW = 60 * 5\n\n// transaction popup dismisal amounts\nexport const DEFAULT_TXN_DISMISS_MS = 25000\nexport const L2_TXN_DISMISS_MS = 5000\n\n// used for rewards deadlines\nexport const BIG_INT_SECONDS_IN_WEEK = JSBI.BigInt(60 * 60 * 24 * 7)\n\nexport const BIG_INT_ZERO = JSBI.BigInt(0)\n\n// one basis JSBI.BigInt\nconst BIPS_BASE = JSBI.BigInt(10000)\nexport const ONE_BIPS = new Percent(JSBI.BigInt(1), BIPS_BASE)\n\n// used for warning states\nexport const ALLOWED_PRICE_IMPACT_LOW: Percent = new Percent(JSBI.BigInt(100), BIPS_BASE) // 1%\nexport const ALLOWED_PRICE_IMPACT_MEDIUM: Percent = new Percent(JSBI.BigInt(300), BIPS_BASE) // 3%\nexport const ALLOWED_PRICE_IMPACT_HIGH: Percent = new Percent(JSBI.BigInt(500), BIPS_BASE) // 5%\n// if the price slippage exceeds this number, force the user to type 'confirm' to execute\nexport const PRICE_IMPACT_WITHOUT_FEE_CONFIRM_MIN: Percent = new Percent(JSBI.BigInt(1000), BIPS_BASE) // 10%\n// for non expert mode disable swaps above this\nexport const BLOCKED_PRICE_IMPACT_NON_EXPERT: Percent = new Percent(JSBI.BigInt(1500), BIPS_BASE) // 15%\n\nexport const BETTER_TRADE_LESS_HOPS_THRESHOLD = new Percent(JSBI.BigInt(50), BIPS_BASE)\n\nexport const ZERO_PERCENT = new Percent('0')\nexport const TWO_PERCENT = new Percent(JSBI.BigInt(200), BIPS_BASE)\nexport const ONE_HUNDRED_PERCENT = new Percent('1')\n","/* eslint-disable react-hooks/rules-of-hooks */\nimport { Web3Provider } from '@ethersproject/providers'\nimport { default as useWidgetsWeb3React } from 'lib/hooks/useActiveWeb3React'\nimport { useWeb3React } from 'packages/core'\n\nimport { NetworkContextName } from '../constants/misc'\n\nexport default function useActiveWeb3React() {\n if (process.env.REACT_APP_IS_WIDGET) {\n return useWidgetsWeb3React()\n }\n\n const interfaceContext = useWeb3React()\n const interfaceNetworkContext = useWeb3React(\n process.env.REACT_APP_IS_WIDGET ? undefined : NetworkContextName\n )\n\n if (interfaceContext.active) {\n return interfaceContext\n }\n interfaceNetworkContext.chainId = 44787;\n return interfaceNetworkContext\n}\n","import { useEffect, useState } from 'react'\n\n/**\n * Debounces updates to a value.\n * Non-primitives *must* wrap the value in useMemo, or the value will be updated due to referential inequality.\n */\n// modified from https://usehooks.com/useDebounce/\nexport default function useDebounce(value: T, delay: number): T {\n const [debouncedValue, setDebouncedValue] = useState(value)\n\n useEffect(() => {\n // Update debounced value after delay\n const handler = setTimeout(() => {\n setDebouncedValue(value)\n }, delay)\n\n // Cancel the timeout if value changes (also on delay change or unmount)\n // This is how we prevent debounced value from updating if value is changed ...\n // .. within the delay period. Timeout gets cleared and restarted.\n return () => {\n clearTimeout(handler)\n }\n }, [value, delay])\n\n return debouncedValue\n}\n","import { useCallback, useEffect, useState } from 'react'\n\nfunction isVisibilityStateSupported() {\n return 'visibilityState' in document\n}\n\nfunction isWindowVisible() {\n return !isVisibilityStateSupported() || document.visibilityState !== 'hidden'\n}\n\n/**\n * Returns whether the window is currently visible to the user.\n */\nexport default function useIsWindowVisible(): boolean {\n const [focused, setFocused] = useState(isWindowVisible())\n const listener = useCallback(() => {\n setFocused(isWindowVisible())\n }, [setFocused])\n\n useEffect(() => {\n if (!isVisibilityStateSupported()) return undefined\n\n document.addEventListener('visibilitychange', listener)\n return () => {\n document.removeEventListener('visibilitychange', listener)\n }\n }, [listener])\n\n return focused\n}\n","import useActiveWeb3React from 'hooks/useActiveWeb3React'\nimport useDebounce from 'hooks/useDebounce'\nimport useIsWindowVisible from 'hooks/useIsWindowVisible'\nimport { atom } from 'jotai'\nimport { useAtomValue, useSetAtom } from 'jotai'\nimport { useCallback, useEffect, useState } from 'react'\n\nfunction useBlock() {\n const { chainId, library } = useActiveWeb3React()\n const windowVisible = useIsWindowVisible()\n const [state, setState] = useState<{ chainId?: number; block?: number }>({ chainId })\n\n const onBlock = useCallback(\n (block: number) => {\n setState((state) => {\n if (state.chainId === chainId) {\n if (typeof state.block !== 'number') return { chainId, block }\n return { chainId, block: Math.max(block, state.block) }\n }\n return state\n })\n },\n [chainId]\n )\n\n useEffect(() => {\n if (library && chainId && windowVisible) {\n // If chainId hasn't changed, don't clear the block. This prevents re-fetching still valid data.\n setState((state) => (state.chainId === chainId ? state : { chainId }))\n\n library\n .getBlockNumber()\n .then(onBlock)\n .catch((error) => {\n console.error(`Failed to get block number for chainId ${chainId}`, error)\n })\n\n library.on('block', onBlock)\n return () => {\n library.removeListener('block', onBlock)\n }\n }\n return undefined\n }, [chainId, library, onBlock, windowVisible])\n\n const debouncedBlock = useDebounce(state.block, 100)\n return state.block ? debouncedBlock : undefined\n}\n\nconst blockAtom = atom(undefined)\n\nexport function BlockUpdater() {\n const setBlock = useSetAtom(blockAtom)\n const block = useBlock()\n useEffect(() => {\n setBlock(block)\n }, [block, setBlock])\n return null\n}\n\n/** Requires that BlockUpdater be installed in the DOM tree. */\nexport default function useBlockNumber(): number | undefined {\n const { chainId } = useActiveWeb3React()\n const block = useAtomValue(blockAtom)\n return chainId ? block : undefined\n}\n\nexport function useFastForwardBlockNumber(): (block: number) => void {\n return useSetAtom(blockAtom)\n}\n","// @ts-nocheck\n/**\n * List of all the networks supported by the Uniswap Interface\n */\nexport enum SupportedChainId {\n MAINNET = 1,\n GOERLI = 5,\n KOVAN = 42,\n CELO = 42220,\n ALFAJORES = 44787,\n\n AURORA_TEST = 1313161555, \n AURORA = 1313161554,\n\n ARBITRUM_ONE = 42161,\n ARBITRUM_RINKEBY = 421611,\n\n OPTIMISM = 10,\n OPTIMISTIC_KOVAN = 69,\n\n POLYGON = 137,\n POLYGON_MUMBAI = 80001,\n}\n\nexport const CHAIN_IDS_TO_NAMES = {\n [SupportedChainId.MAINNET]: 'mainnet',\n [SupportedChainId.GOERLI]: 'goerli',\n [SupportedChainId.CELO]: 'celo',\n [SupportedChainId.ALFAJORES]: 'celo_alfajores',\n [SupportedChainId.AURORA]: 'aurora',\n [SupportedChainId.AURORA_TEST]: 'aurora_testnet',\n [SupportedChainId.KOVAN]: 'kovan',\n [SupportedChainId.POLYGON]: 'polygon',\n [SupportedChainId.POLYGON_MUMBAI]: 'polygon_mumbai',\n [SupportedChainId.ARBITRUM_ONE]: 'arbitrum',\n [SupportedChainId.ARBITRUM_RINKEBY]: 'arbitrum_rinkeby',\n [SupportedChainId.OPTIMISM]: 'optimism',\n [SupportedChainId.OPTIMISTIC_KOVAN]: 'optimistic_kovan',\n}\n\n/**\n * All the chain IDs that will be shown in chain selection.\n */\n export const CHAIN_IDS_TO_DISPLAY = [\n // SupportedChainId.MAINNET,\n // SupportedChainId.GOERLI,\n SupportedChainId.ALFAJORES,\n // SupportedChainId.AURORA_TEST,\n // SupportedChainId.KOVAN,\n // SupportedChainId.POLYGON,\n // SupportedChainId.POLYGON_MUMBAI,\n] as const\n\n/**\n * Array of all the supported chain IDs\n */\nexport const ALL_SUPPORTED_CHAIN_IDS: SupportedChainId[] = Object.values(SupportedChainId).filter(\n (id) => typeof id === 'number' && CHAIN_IDS_TO_DISPLAY.includes(id)\n) as SupportedChainId[]\n\nexport const SUPPORTED_GAS_ESTIMATE_CHAIN_IDS = [\n SupportedChainId.MAINNET,\n SupportedChainId.POLYGON,\n SupportedChainId.OPTIMISM,\n SupportedChainId.ARBITRUM_ONE,\n]\n\n/**\n * All the chain IDs that are running the Ethereum protocol.\n */\nexport const L1_CHAIN_IDS = [\n SupportedChainId.MAINNET,\n SupportedChainId.GOERLI,\n SupportedChainId.KOVAN,\n SupportedChainId.POLYGON,\n SupportedChainId.POLYGON_MUMBAI,\n SupportedChainId.CELO,\n SupportedChainId.ALFAJORES\n] as const\n\nexport type SupportedL1ChainId = typeof L1_CHAIN_IDS[number]\n\n/**\n * Controls some L2 specific behavior, e.g. slippage tolerance, special UI behavior.\n * The expectation is that all of these networks have immediate transaction confirmation.\n */\nexport const L2_CHAIN_IDS = [\n SupportedChainId.ARBITRUM_ONE,\n SupportedChainId.ARBITRUM_RINKEBY,\n SupportedChainId.OPTIMISM,\n SupportedChainId.OPTIMISTIC_KOVAN,\n] as const\n\nexport type SupportedL2ChainId = typeof L2_CHAIN_IDS[number]\n","import { SupportedChainId } from '../constants/chains'\n\nconst DEFAULT_NETWORKS = [\n SupportedChainId.MAINNET,\n SupportedChainId.GOERLI,\n SupportedChainId.KOVAN,\n]\n\nexport function constructSameAddressMap(\n address: T,\n additionalNetworks: SupportedChainId[] = []\n): { [chainId: number]: T } {\n return DEFAULT_NETWORKS.concat(additionalNetworks).reduce<{ [chainId: number]: T }>((memo, chainId) => {\n memo[chainId] = address\n return memo\n }, {})\n}\n","import { constructSameAddressMap } from \"../utils/constructSameAddressMap\";\nimport { SupportedChainId } from \"./chains\";\n\ntype AddressMap = { [chainId: number]: string }\n\nexport const UNI_ADDRESS: AddressMap = constructSameAddressMap('0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984')\nexport const MULTICALL_ADDRESS: AddressMap = {\n ...constructSameAddressMap('0x1F98415757620B543A52E61c46B32eB19261F984', [\n SupportedChainId.OPTIMISTIC_KOVAN,\n SupportedChainId.OPTIMISM,\n SupportedChainId.POLYGON_MUMBAI,\n SupportedChainId.POLYGON,\n ]),\n [SupportedChainId.ARBITRUM_ONE]: '0xadF885960B47eA2CD9B55E6DAc6B42b7Cb2806dB',\n [SupportedChainId.ARBITRUM_RINKEBY]: '0xa501c031958F579dB7676fF1CE78AD305794d579',\n [SupportedChainId.ALFAJORES]: '0x3448011cbd2c0dB6E969151099f7d03c8f637B94',\n [SupportedChainId.AURORA_TEST]: '0x976F3870780373c1644cBd8b5a841eF7bd582fe7',\n}\nexport const V2_FACTORY_ADDRESSES = {\n [SupportedChainId.MAINNET]: {\n \"sushiswap\": '',\n \"uniswapv2\": '',\n \"trisolaris\": '',\n \"pancakeswap\": ''\n },\n [SupportedChainId.OPTIMISM]: {\n \"sushiswap\": '',\n \"uniswapv2\": '',\n \"trisolaris\": '',\n \"pancakeswap\": ''\n },\n [SupportedChainId.OPTIMISTIC_KOVAN]: {\n \"sushiswap\": '',\n \"uniswapv2\": '',\n \"trisolaris\": '',\n \"pancakeswap\": ''\n },\n [SupportedChainId.ARBITRUM_ONE]: {\n \"sushiswap\": '',\n \"uniswapv2\": '',\n \"trisolaris\": '',\n \"pancakeswap\": ''\n },\n [SupportedChainId.ARBITRUM_RINKEBY]: {\n \"sushiswap\": '',\n \"uniswapv2\": '',\n \"trisolaris\": '',\n \"pancakeswap\": ''\n },\n [SupportedChainId.POLYGON_MUMBAI]: {\n \"sushiswap\": '',\n \"uniswapv2\": '',\n \"trisolaris\": '',\n \"pancakeswap\": ''\n },\n [SupportedChainId.POLYGON]: {\n \"sushiswap\": '',\n \"uniswapv2\": '',\n \"trisolaris\": '',\n \"pancakeswap\": ''\n },\n [SupportedChainId.ALFAJORES]: {\n \"ubeswap\": '0x62d5b84bE28a183aBB507E125B384122D2C25fAE',\n \"uniswapv3\": \"0xAfE208a311B21f13EF87E33A90049fC17A7acDEc\"\n },\n [SupportedChainId.AURORA_TEST]: {\n \"trisolaris\": '0x60913758635b54e6C9685f92201A5704eEe74748',\n },\n [SupportedChainId.GOERLI]: {\n \"sushiswap\": '0xc35DADB65012eC5796536bD9864eD8773aBc74C4',\n \"uniswapv2\": '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f'\n },\n}\n\nexport const V2_ROUTER_ADDRESS: AddressMap = constructSameAddressMap('0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506') //this could be wrong since it is Sushi only! maybe not really being used in the code?\nexport const V3_ROUTER_ADDRESS: AddressMap = constructSameAddressMap('0xE592427A0AEce92De3Edee1F18E0157C05861564', [\n SupportedChainId.OPTIMISM,\n SupportedChainId.OPTIMISTIC_KOVAN,\n SupportedChainId.ARBITRUM_ONE,\n SupportedChainId.ARBITRUM_RINKEBY,\n SupportedChainId.POLYGON,\n SupportedChainId.POLYGON_MUMBAI,\n])\nexport const SWAP_ROUTER_ADDRESSES: AddressMap = constructSameAddressMap('0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45', [\n SupportedChainId.OPTIMISM,\n SupportedChainId.OPTIMISTIC_KOVAN,\n SupportedChainId.ARBITRUM_ONE,\n SupportedChainId.ARBITRUM_RINKEBY,\n SupportedChainId.POLYGON,\n SupportedChainId.POLYGON_MUMBAI,\n])\n\n/**\n * The oldest V0 governance address\n */\nexport const GOVERNANCE_ALPHA_V0_ADDRESSES: AddressMap = constructSameAddressMap(\n '0x5e4be8Bc9637f0EAA1A755019e06A68ce081D58F'\n)\n/**\n * The older V1 governance address\n */\nexport const GOVERNANCE_ALPHA_V1_ADDRESSES: AddressMap = {\n [SupportedChainId.MAINNET]: '0xC4e172459f1E7939D522503B81AFAaC1014CE6F6',\n}\n\n//Double smart contract remove the need to havce the INIT_CODE_HASH!\nexport const INIT_CODE_HASH = {\n [SupportedChainId.MAINNET]: {\n \"sushiswap\": '',\n \"uniswapv2\": '',\n \"trisolaris\": '',\n \"pancakeswap\": ''\n },\n [SupportedChainId.OPTIMISM]: {\n \"sushiswap\": '',\n \"uniswapv2\": '',\n \"trisolaris\": '',\n \"pancakeswap\": ''\n },\n [SupportedChainId.OPTIMISTIC_KOVAN]: {\n \"sushiswap\": '',\n \"uniswapv2\": '',\n \"trisolaris\": '',\n \"pancakeswap\": ''\n },\n [SupportedChainId.ARBITRUM_ONE]: {\n \"sushiswap\": '',\n \"uniswapv2\": '',\n \"trisolaris\": '',\n \"pancakeswap\": ''\n },\n [SupportedChainId.ARBITRUM_RINKEBY]: {\n \"sushiswap\": '',\n \"uniswapv2\": '',\n \"trisolaris\": '',\n \"pancakeswap\": ''\n },\n [SupportedChainId.POLYGON_MUMBAI]: {\n \"sushiswap\": '',\n \"uniswapv2\": '',\n \"trisolaris\": '',\n \"pancakeswap\": ''\n },\n [SupportedChainId.POLYGON]: {\n \"sushiswap\": '',\n \"uniswapv2\": '',\n \"trisolaris\": '',\n \"pancakeswap\": ''\n },\n [SupportedChainId.GOERLI]: {\n \"sushiswap\": '0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303',\n \"uniswapv2\": '0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f'\n },\n [SupportedChainId.ALFAJORES]: {\n \"ubeswap\": '0xb3b8ff62960acea3a88039ebcf80699f15786f1b17cebd82802f7375827a339c',\n \"uniswapv3\": '0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f',\n },\n [SupportedChainId.AURORA_TEST]: {\n \"trisolaris\": '0x754e1d90e536e4c1df81b7f030f47b4ca80c87120e145c294f098c83a6cb5ace',\n }\n}\n/**\n * The latest governor bravo that is currently admin of timelock\n */\nexport const GOVERNANCE_BRAVO_ADDRESSES: AddressMap = {\n [SupportedChainId.MAINNET]: '0x408ED6354d4973f66138C91495F2f2FCbd8724C3',\n}\n\nexport const TIMELOCK_ADDRESS: AddressMap = constructSameAddressMap('0x1a9C8182C09F50C8318d769245beA52c32BE35BC')\n\nexport const MERKLE_DISTRIBUTOR_ADDRESS: AddressMap = {\n [SupportedChainId.MAINNET]: '0x090D4613473dEE047c3f2706764f49E0821D256e',\n}\nexport const ARGENT_WALLET_DETECTOR_ADDRESS: AddressMap = {\n [SupportedChainId.MAINNET]: '0xeca4B0bDBf7c55E9b7925919d03CbF8Dc82537E8',\n}\n\nexport const V3_CORE_FACTORY_ADDRESSES: AddressMap = {\n [SupportedChainId.MAINNET]: \"0x1F98431c8aD98523631AE4a59f267346ea31F984\",\n [SupportedChainId.OPTIMISM]: \"0x1F98431c8aD98523631AE4a59f267346ea31F984\",\n [SupportedChainId.OPTIMISTIC_KOVAN]: \"0x1F98431c8aD98523631AE4a59f267346ea31F984\",\n [SupportedChainId.ARBITRUM_ONE]: \"0x1F98431c8aD98523631AE4a59f267346ea31F984\",\n [SupportedChainId.ARBITRUM_RINKEBY]: \"0x1F98431c8aD98523631AE4a59f267346ea31F984\",\n [SupportedChainId.POLYGON_MUMBAI]: \"0x1F98431c8aD98523631AE4a59f267346ea31F984\",\n [SupportedChainId.POLYGON]: \"0x1F98431c8aD98523631AE4a59f267346ea31F984\",\n [SupportedChainId.CELO]: \"0xAfE208a311B21f13EF87E33A90049fC17A7acDEc\",\n [SupportedChainId.ALFAJORES]: \"0xAfE208a311B21f13EF87E33A90049fC17A7acDEc\",\n}\n\nexport const QUOTER_ADDRESSES: AddressMap = constructSameAddressMap('0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6', [\n SupportedChainId.OPTIMISM,\n SupportedChainId.OPTIMISTIC_KOVAN,\n SupportedChainId.ARBITRUM_ONE,\n SupportedChainId.ARBITRUM_RINKEBY,\n SupportedChainId.POLYGON_MUMBAI,\n SupportedChainId.POLYGON,\n])\n\nexport const NONFUNGIBLE_POSITION_MANAGER_ADDRESSES: AddressMap = {\n [SupportedChainId.MAINNET]: '0xC36442b4a4522E871399CD717aBDD847Ab11FE88',\n [SupportedChainId.OPTIMISM]: '0xC36442b4a4522E871399CD717aBDD847Ab11FE88',\n [SupportedChainId.OPTIMISTIC_KOVAN]: '0xC36442b4a4522E871399CD717aBDD847Ab11FE88',\n [SupportedChainId.ARBITRUM_ONE]: '0xC36442b4a4522E871399CD717aBDD847Ab11FE88',\n [SupportedChainId.ARBITRUM_RINKEBY]: '0xC36442b4a4522E871399CD717aBDD847Ab11FE88',\n [SupportedChainId.POLYGON_MUMBAI]: '0xC36442b4a4522E871399CD717aBDD847Ab11FE88',\n [SupportedChainId.POLYGON]: '0xC36442b4a4522E871399CD717aBDD847Ab11FE88',\n [SupportedChainId.ALFAJORES]: '0x3d79EdAaBC0EaB6F08ED885C05Fc0B014290D95A',\n [SupportedChainId.AURORA]: '0x94f9FD7CFd22C5FDde68e30F0D6D122B7d598839',\n [SupportedChainId.GOERLI]: '0x15d614D8B82Ebc1A0e5f2bf0D41CfFa3843Db23c',\n}\n\nexport const ENS_REGISTRAR_ADDRESSES: AddressMap = {\n [SupportedChainId.MAINNET]: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e',\n [SupportedChainId.GOERLI]: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e',\n [SupportedChainId.ALFAJORES]: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e',\n}\nexport const SOCKS_CONTROLLER_ADDRESSES: AddressMap = {\n [SupportedChainId.MAINNET]: '0x65770b5283117639760beA3F867b69b3697a91dd',\n}\n\nexport const ASSET_VAULT_ADDRESSES: AddressMap = {\n [SupportedChainId.MAINNET]: '0x7a88E4Dc7FF9e61C1Ebb20A692c3e598D6A8B875',\n [SupportedChainId.OPTIMISM]: '0x7a88E4Dc7FF9e61C1Ebb20A692c3e598D6A8B875',\n [SupportedChainId.OPTIMISTIC_KOVAN]: '0x7a88E4Dc7FF9e61C1Ebb20A692c3e598D6A8B875',\n [SupportedChainId.ARBITRUM_ONE]: '0x7a88E4Dc7FF9e61C1Ebb20A692c3e598D6A8B875',\n [SupportedChainId.ARBITRUM_RINKEBY]: '0x7a88E4Dc7FF9e61C1Ebb20A692c3e598D6A8B875',\n [SupportedChainId.POLYGON_MUMBAI]: '0x7a88E4Dc7FF9e61C1Ebb20A692c3e598D6A8B875',\n [SupportedChainId.POLYGON]: '0x7a88E4Dc7FF9e61C1Ebb20A692c3e598D6A8B875',\n [SupportedChainId.ALFAJORES]: '0x8E8b2C744269e8584a3591988c0e975E29C09F84',\n [SupportedChainId.AURORA]: '0x94f9FD7CFd22C5FDde68e30F0D6D122B7d598839',\n [SupportedChainId.GOERLI]: '0x15d614D8B82Ebc1A0e5f2bf0D41CfFa3843Db23c',\n}\n\nexport const AMM_VAULT_ADDRESSES = {\n [SupportedChainId.MAINNET]: {\n \"sushiswap\": '',\n \"uniswapv2\": '',\n \"trisolaris\": '',\n \"pancakeswap\": ''\n },\n [SupportedChainId.OPTIMISM]: {\n \"sushiswap\": '',\n \"uniswapv2\": '',\n \"trisolaris\": '',\n \"pancakeswap\": ''\n },\n [SupportedChainId.OPTIMISTIC_KOVAN]: {\n \"sushiswap\": '',\n \"uniswapv2\": '',\n \"trisolaris\": '',\n \"pancakeswap\": ''\n },\n [SupportedChainId.ARBITRUM_ONE]: {\n \"sushiswap\": '',\n \"uniswapv2\": '',\n \"trisolaris\": '',\n \"pancakeswap\": ''\n },\n [SupportedChainId.ARBITRUM_RINKEBY]: {\n \"sushiswap\": '',\n \"uniswapv2\": '',\n \"trisolaris\": '',\n \"pancakeswap\": ''\n },\n [SupportedChainId.POLYGON_MUMBAI]: {\n \"sushiswap\": '',\n \"uniswapv2\": '',\n \"trisolaris\": '',\n \"pancakeswap\": ''\n },\n [SupportedChainId.POLYGON]: {\n \"sushiswap\": '',\n \"uniswapv2\": '',\n \"trisolaris\": '',\n \"pancakeswap\": ''\n },\n [SupportedChainId.GOERLI]: {\n \"sushiswap\": '0x0CE866498B970C347B8b6Af2824485ccd64d7976',\n \"uniswapv2\": '0x684025fc6735ddC30704027f781828B838966Cd3',\n \"uniswapv3\": '0x3811Fcda0EBa567Ed60Fb2e9EcB2B08622BEe5b7',\n },\n [SupportedChainId.ALFAJORES]: {\n \"ubeswap\": '0xc8F1A0661e778FdE8A89e5e0CC666A5b9CbCC6Ad',\n \"uniswapv3\": '0xf68a5bDE5e0Be3F71585ce55d1CcFec2EBD9a585',\n },\n [SupportedChainId.AURORA_TEST]: {\n \"trisolaris\": '0xFc695d262bA0480726b9F2427C34Ad0a4e06CbF4',\n }\n}\n\nexport const LP_MIGRATOR_ADDRESSES = {\n [SupportedChainId.MAINNET]: {\n \"sushiswap\": '',\n \"uniswapv2\": '',\n \"trisolaris\": '',\n \"pancakeswap\": ''\n },\n [SupportedChainId.OPTIMISM]: {\n \"sushiswap\": '',\n \"uniswapv2\": '',\n \"trisolaris\": '',\n \"pancakeswap\": ''\n },\n [SupportedChainId.OPTIMISTIC_KOVAN]: {\n \"sushiswap\": '',\n \"uniswapv2\": '',\n \"trisolaris\": '',\n \"pancakeswap\": ''\n },\n [SupportedChainId.ARBITRUM_ONE]: {\n \"sushiswap\": '',\n \"uniswapv2\": '',\n \"trisolaris\": '',\n \"pancakeswap\": ''\n },\n [SupportedChainId.ARBITRUM_RINKEBY]: {\n \"sushiswap\": '',\n \"uniswapv2\": '',\n \"trisolaris\": '',\n \"pancakeswap\": ''\n },\n [SupportedChainId.POLYGON_MUMBAI]: {\n \"sushiswap\": '',\n \"uniswapv2\": '',\n \"trisolaris\": '',\n \"pancakeswap\": ''\n },\n [SupportedChainId.POLYGON]: {\n \"sushiswap\": '',\n \"uniswapv2\": '',\n \"trisolaris\": '',\n \"pancakeswap\": ''\n },\n [SupportedChainId.GOERLI]: {\n \"sushiswap\": '0x81e9B24312D897A848dA64bBe8e46dffA8797F72',\n \"uniswapv2\": '0xe8e4d00b2FB15a7CEABac8c860EA2F2F362757b2',\n // \"uniswapv3\": '0x17c2E8C296b6A5118753FCefdBF1B2cf9A34eaC3',\n },\n [SupportedChainId.ALFAJORES]: {\n \"ubeswap\": '0xEF49d9B8506afb43fA54A521367eE8405F1F2ca8',\n \"uniswapv3\": '0x4104aa93a07d5850A79539dBA5404AC3Ba5bdb21',\n },\n [SupportedChainId.AURORA_TEST]: {\n \"trisolaris\": '0x57340f94D88E1e44A72E68673c40250B45822090',\n }\n}\n\nexport const REWARD_STORAGE_ADDRESSES: AddressMap = {\n [SupportedChainId.MAINNET]: '',\n [SupportedChainId.GOERLI]: '',\n [SupportedChainId.ALFAJORES]: '0xd8731a7744239dE0400AC8d73057339814550302',\n}\n\nexport const CLUB_MANAGER_ADDRESSES: AddressMap = {\n [SupportedChainId.MAINNET]: '',\n [SupportedChainId.GOERLI]: '',\n [SupportedChainId.ALFAJORES]: '0x6340CdDdC48347b637e909Db574485A649037205',\n}\n\nexport const DOUBLE_DOWN_CLUB_ADDRESSES: AddressMap = {\n [SupportedChainId.MAINNET]: '',\n [SupportedChainId.GOERLI]: '',\n [SupportedChainId.ALFAJORES]: '0x3EA59d0BD7D21BE17565Ef367eF8966d66D4f5db',\n}\n\nexport const DDJ_ADDRESSES: AddressMap = {\n [SupportedChainId.MAINNET]: '',\n [SupportedChainId.GOERLI]: '',\n [SupportedChainId.ALFAJORES]: '0xc7078359Da62753e80D2B581F865c237112C9963',\n}\n\nexport const TICK_LENS_ADDRESSES: AddressMap = {\n [SupportedChainId.ARBITRUM_ONE]: '0xbfd8137f7d1516D3ea5cA83523914859ec47F573',\n [SupportedChainId.ARBITRUM_RINKEBY]: '0xbfd8137f7d1516D3ea5cA83523914859ec47F573',\n [SupportedChainId.ALFAJORES]: '0x5f115D9113F88e0a0Db1b5033D90D4a9690AcD3D'\n}\n","import invariant from \"tiny-invariant\";\n\nimport {\n Currency,\n Ether,\n NativeCurrency,\n Token,\n WETH9\n} from \"@uniswap/sdk-core\";\n\nimport { UNI_ADDRESS } from \"./addresses\";\nimport { SupportedChainId } from \"./chains\";\n\nexport const USDC_MAINNET = new Token(\n SupportedChainId.MAINNET,\n '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',\n 6,\n 'USDC',\n 'USD//C'\n)\nexport const USDC_GOERLI = new Token(\n SupportedChainId.GOERLI,\n '0x07865c6e87b9f70255377e024ace6630c1eaa37f',\n 6,\n 'USDC',\n 'USD//C'\n)\nexport const USDC_ALFAJORES = new Token(\n SupportedChainId.ALFAJORES,\n '0x3861e9F29fcAFF738906c7a3a495583eE7Ca4C18',\n 6,\n 'USDC',\n 'USD//C'\n)\nexport const USDC_CELO = new Token(\n SupportedChainId.CELO,\n '0x37f750B7cC259A2f741AF45294f6a16572CF5cAd',\n 6,\n 'USDC',\n 'USD//C'\n)\nexport const USDC_KOVAN = new Token(\n SupportedChainId.KOVAN,\n '0x31eeb2d0f9b6fd8642914ab10f4dd473677d80df',\n 6,\n 'USDC',\n 'USD//C'\n)\nexport const USDC_OPTIMISM = new Token(\n SupportedChainId.OPTIMISM,\n '0x7F5c764cBc14f9669B88837ca1490cCa17c31607',\n 6,\n 'USDC',\n 'USD//C'\n)\nexport const USDC_OPTIMISTIC_KOVAN = new Token(\n SupportedChainId.OPTIMISTIC_KOVAN,\n '0x3b8e53b3ab8e01fb57d0c9e893bc4d655aa67d84',\n 6,\n 'USDC',\n 'USD//C'\n)\nexport const USDC_ARBITRUM = new Token(\n SupportedChainId.ARBITRUM_ONE,\n '0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8',\n 6,\n 'USDC',\n 'USD//C'\n)\nexport const USDC_ARBITRUM_RINKEBY = new Token(\n SupportedChainId.ARBITRUM_RINKEBY,\n '0x09b98f8b2395d076514037ff7d39a091a536206c',\n 6,\n 'USDC',\n 'USD//C'\n)\nexport const USDC_POLYGON = new Token(\n SupportedChainId.POLYGON,\n '0x2791bca1f2de4661ed88a30c99a7a9449aa84174',\n 6,\n 'USDC',\n 'USD//C'\n)\nexport const USDC_POLYGON_MUMBAI = new Token(\n SupportedChainId.POLYGON_MUMBAI,\n '0xe11a86849d99f524cac3e7a0ec1241828e332c62',\n 6,\n 'USDC',\n 'USD//C'\n)\n\nexport const AMPL = new Token(\n SupportedChainId.MAINNET,\n '0xD46bA6D942050d489DBd938a2C909A5d5039A161',\n 9,\n 'AMPL',\n 'Ampleforth'\n)\nexport const DAI = new Token(\n SupportedChainId.MAINNET,\n '0x6B175474E89094C44Da98b954EedeAC495271d0F',\n 18,\n 'DAI',\n 'Dai Stablecoin'\n)\nexport const DAI_ARBITRUM_ONE = new Token(\n SupportedChainId.ARBITRUM_ONE,\n '0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1',\n 18,\n 'DAI',\n 'Dai stable coin'\n)\nexport const DAI_OPTIMISM = new Token(\n SupportedChainId.OPTIMISM,\n '0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1',\n 18,\n 'DAI',\n 'Dai stable coin'\n)\n\nexport const USDC: { [chainId in SupportedChainId]: Token } = {\n [SupportedChainId.MAINNET]: USDC_MAINNET,\n [SupportedChainId.ARBITRUM_ONE]: USDC_ARBITRUM,\n [SupportedChainId.OPTIMISM]: USDC_OPTIMISM,\n [SupportedChainId.ARBITRUM_RINKEBY]: USDC_ARBITRUM_RINKEBY,\n [SupportedChainId.OPTIMISTIC_KOVAN]: USDC_OPTIMISTIC_KOVAN,\n [SupportedChainId.POLYGON]: USDC_POLYGON,\n [SupportedChainId.POLYGON_MUMBAI]: USDC_POLYGON_MUMBAI,\n [SupportedChainId.GOERLI]: USDC_GOERLI,\n [SupportedChainId.CELO]: USDC_CELO,\n [SupportedChainId.ALFAJORES]: USDC_ALFAJORES,\n [SupportedChainId.AURORA]: USDC_CELO,\n [SupportedChainId.AURORA_TEST]: USDC_ALFAJORES,\n [SupportedChainId.KOVAN]: USDC_KOVAN,\n}\nexport const DAI_POLYGON = new Token(\n SupportedChainId.POLYGON,\n '0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063',\n 18,\n 'DAI',\n 'Dai Stablecoin'\n)\nexport const USDT_POLYGON = new Token(\n SupportedChainId.POLYGON,\n '0xc2132d05d31c914a87c6611c10748aeb04b58e8f',\n 6,\n 'USDT',\n 'Tether USD'\n)\nexport const WBTC_POLYGON = new Token(\n SupportedChainId.POLYGON,\n '0x1bfd67037b42cf73acf2047067bd4f2c47d9bfd6',\n 8,\n 'WBTC',\n 'Wrapped BTC'\n)\nexport const USDT = new Token(\n SupportedChainId.MAINNET,\n '0xdAC17F958D2ee523a2206206994597C13D831ec7',\n 6,\n 'USDT',\n 'Tether USD'\n)\nexport const USDT_ARBITRUM_ONE = new Token(\n SupportedChainId.ARBITRUM_ONE,\n '0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9',\n 6,\n 'USDT',\n 'Tether USD'\n)\nexport const USDT_OPTIMISM = new Token(\n SupportedChainId.OPTIMISM,\n '0x94b008aA00579c1307B0EF2c499aD98a8ce58e58',\n 6,\n 'USDT',\n 'Tether USD'\n)\nexport const WBTC = new Token(\n SupportedChainId.MAINNET,\n '0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599',\n 8,\n 'WBTC',\n 'Wrapped BTC'\n)\nexport const WBTC_ARBITRUM_ONE = new Token(\n SupportedChainId.ARBITRUM_ONE,\n '0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f',\n 8,\n 'WBTC',\n 'Wrapped BTC'\n)\nexport const WBTC_OPTIMISM = new Token(\n SupportedChainId.OPTIMISM,\n '0x68f180fcCe6836688e9084f035309E29Bf0A2095',\n 8,\n 'WBTC',\n 'Wrapped BTC'\n)\nexport const FEI = new Token(\n SupportedChainId.MAINNET,\n '0x956F47F50A910163D8BF957Cf5846D573E7f87CA',\n 18,\n 'FEI',\n 'Fei USD'\n)\nexport const TRIBE = new Token(\n SupportedChainId.MAINNET,\n '0xc7283b66Eb1EB5FB86327f08e1B5816b0720212B',\n 18,\n 'TRIBE',\n 'Tribe'\n)\nexport const FRAX = new Token(\n SupportedChainId.MAINNET,\n '0x853d955aCEf822Db058eb8505911ED77F175b99e',\n 18,\n 'FRAX',\n 'Frax'\n)\nexport const FXS = new Token(\n SupportedChainId.MAINNET,\n '0x3432B6A60D23Ca0dFCa7761B7ab56459D9C964D0',\n 18,\n 'FXS',\n 'Frax Share'\n)\nexport const renBTC = new Token(\n SupportedChainId.MAINNET,\n '0xEB4C2781e4ebA804CE9a9803C67d0893436bB27D',\n 8,\n 'renBTC',\n 'renBTC'\n)\nexport const ETH2X_FLI = new Token(\n SupportedChainId.MAINNET,\n '0xAa6E8127831c9DE45ae56bB1b0d4D4Da6e5665BD',\n 18,\n 'ETH2x-FLI',\n 'ETH 2x Flexible Leverage Index'\n)\nexport const sETH2 = new Token(\n SupportedChainId.MAINNET,\n '0xFe2e637202056d30016725477c5da089Ab0A043A',\n 18,\n 'sETH2',\n 'StakeWise Staked ETH2'\n)\nexport const rETH2 = new Token(\n SupportedChainId.MAINNET,\n '0x20BC832ca081b91433ff6c17f85701B6e92486c5',\n 18,\n 'rETH2',\n 'StakeWise Reward ETH2'\n)\nexport const SWISE = new Token(\n SupportedChainId.MAINNET,\n '0x48C3399719B582dD63eB5AADf12A40B4C3f52FA2',\n 18,\n 'SWISE',\n 'StakeWise'\n)\nexport const WETH_POLYGON_MUMBAI = new Token(\n SupportedChainId.POLYGON_MUMBAI,\n '0xa6fa4fb5f76172d178d61b04b0ecd319c5d1c0aa',\n 18,\n 'WETH',\n 'Wrapped Ether'\n)\n\nexport const WETH_POLYGON = new Token(\n SupportedChainId.POLYGON,\n '0x7ceb23fd6bc0add59e62ac25578270cff1b9f619',\n 18,\n 'WETH',\n 'Wrapped Ether'\n)\nexport const UNI: { [chainId: number]: Token } = {\n [SupportedChainId.MAINNET]: new Token(SupportedChainId.MAINNET, UNI_ADDRESS[1], 18, 'UNI', 'Uniswap'),\n [SupportedChainId.GOERLI]: new Token(SupportedChainId.GOERLI, UNI_ADDRESS[5], 18, 'UNI', 'Uniswap'),\n [SupportedChainId.KOVAN]: new Token(SupportedChainId.KOVAN, UNI_ADDRESS[42], 18, 'UNI', 'Uniswap'),\n}\n\nexport const WRAPPED_NATIVE_CURRENCY: { [chainId: number]: Token | undefined } = {\n ...(WETH9 as Record),\n [SupportedChainId.OPTIMISM]: new Token(\n SupportedChainId.OPTIMISM,\n '0x4200000000000000000000000000000000000006',\n 18,\n 'WETH',\n 'Wrapped Ether'\n ),\n [SupportedChainId.OPTIMISTIC_KOVAN]: new Token(\n SupportedChainId.OPTIMISTIC_KOVAN,\n '0x4200000000000000000000000000000000000006',\n 18,\n 'WETH',\n 'Wrapped Ether'\n ),\n [SupportedChainId.ARBITRUM_ONE]: new Token(\n SupportedChainId.ARBITRUM_ONE,\n '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1',\n 18,\n 'WETH',\n 'Wrapped Ether'\n ),\n [SupportedChainId.ALFAJORES]: new Token(\n SupportedChainId.ALFAJORES,\n '0xF194afDf50B03e69Bd7D057c1Aa9e10c9954E4C9',\n 18,\n 'CELO',\n 'Celo'\n ),\n [SupportedChainId.AURORA_TEST]: new Token(\n SupportedChainId.AURORA_TEST,\n '0x1b6A3d5B5DCdF7a37CFE35CeBC0C4bD28eA7e946',\n 18,\n 'WETH',\n 'Wrapped Ether'\n ),\n [SupportedChainId.ARBITRUM_RINKEBY]: new Token(\n SupportedChainId.ARBITRUM_RINKEBY,\n '0xB47e6A5f8b33b3F17603C83a0535A9dcD7E32681',\n 18,\n 'WETH',\n 'Wrapped Ether'\n ),\n [SupportedChainId.POLYGON]: new Token(\n SupportedChainId.POLYGON,\n '0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270',\n 18,\n 'WMATIC',\n 'Wrapped MATIC'\n ),\n [SupportedChainId.POLYGON_MUMBAI]: new Token(\n SupportedChainId.POLYGON_MUMBAI,\n '0x9c3C9283D3e44854697Cd22D3Faa240Cfb032889',\n 18,\n 'WMATIC',\n 'Wrapped MATIC'\n ),\n}\n\nfunction isMatic(chainId: number): chainId is SupportedChainId.POLYGON | SupportedChainId.POLYGON_MUMBAI {\n return chainId === SupportedChainId.POLYGON_MUMBAI || chainId === SupportedChainId.POLYGON\n}\n\nclass MaticNativeCurrency extends NativeCurrency {\n equals(other: Currency): boolean {\n return other.isNative && other.chainId === this.chainId\n }\n\n get wrapped(): Token {\n if (!isMatic(this.chainId)) throw new Error('Not matic')\n const wrapped = WRAPPED_NATIVE_CURRENCY[this.chainId]\n invariant(wrapped instanceof Token)\n return wrapped\n }\n\n public constructor(chainId: number) {\n if (!isMatic(chainId)) throw new Error('Not matic')\n super(chainId, 18, 'MATIC', 'Polygon Matic')\n }\n}\n\nexport class ExtendedEther extends Ether {\n public get wrapped(): Token {\n const wrapped = WRAPPED_NATIVE_CURRENCY[this.chainId]\n if (wrapped) return wrapped\n throw new Error('Unsupported chain ID')\n }\n\n private static _cachedExtendedEther: { [chainId: number]: NativeCurrency } = {}\n\n public static onChain(chainId: number): ExtendedEther {\n return this._cachedExtendedEther[chainId] ?? (this._cachedExtendedEther[chainId] = new ExtendedEther(chainId))\n }\n}\n\nconst cachedNativeCurrency: { [chainId: number]: NativeCurrency } = {}\nexport function nativeOnChain(chainId: number): NativeCurrency {\n return (\n cachedNativeCurrency[chainId] ??\n (cachedNativeCurrency[chainId] = isMatic(chainId)\n ? new MaticNativeCurrency(chainId)\n : ExtendedEther.onChain(chainId))\n )\n}\n\nexport const TOKEN_SHORTHANDS: { [shorthand: string]: { [chainId in SupportedChainId]?: string } } = {\n USDC: {\n [SupportedChainId.MAINNET]: USDC_MAINNET.address,\n [SupportedChainId.ARBITRUM_ONE]: USDC_ARBITRUM.address,\n [SupportedChainId.OPTIMISM]: USDC_OPTIMISM.address,\n [SupportedChainId.ARBITRUM_RINKEBY]: USDC_ARBITRUM_RINKEBY.address,\n [SupportedChainId.OPTIMISTIC_KOVAN]: USDC_OPTIMISTIC_KOVAN.address,\n [SupportedChainId.POLYGON]: USDC_POLYGON.address,\n [SupportedChainId.POLYGON_MUMBAI]: USDC_POLYGON_MUMBAI.address,\n [SupportedChainId.GOERLI]: USDC_GOERLI.address,\n [SupportedChainId.KOVAN]: USDC_KOVAN.address,\n },\n}\n","import { getAddress } from '@ethersproject/address'\nimport { AddressZero } from '@ethersproject/constants'\nimport { Contract } from '@ethersproject/contracts'\nimport { JsonRpcProvider, JsonRpcSigner } from '@ethersproject/providers'\nimport { Token } from '@uniswap/sdk-core'\nimport { ChainTokenMap } from 'lib/hooks/useTokenList/utils'\n\n// returns the checksummed address if the address is valid, otherwise returns false\nexport function isAddress(value: any): string | false {\n try {\n return getAddress(value)\n } catch {\n return false\n }\n}\n\n// shorten the checksummed version of the input address to have 0x + 4 characters at start and end\nexport function shortenAddress(address: string, chars = 4): string {\n const parsed = isAddress(address)\n if (!parsed) {\n throw Error(`Invalid 'address' parameter '${address}'.`)\n }\n return `${parsed.substring(0, chars + 2)}...${parsed.substring(42 - chars)}`\n}\n\n// account is not optional\nfunction getSigner(library: JsonRpcProvider, account: string): JsonRpcSigner {\n return library.getSigner(account).connectUnchecked()\n}\n\n// account is optional\nfunction getProviderOrSigner(library: JsonRpcProvider, account?: string): JsonRpcProvider | JsonRpcSigner {\n return account ? getSigner(library, account) : library\n}\n\n// account is optional\nexport function getContract(address: string, ABI: any, library: JsonRpcProvider, account?: string): Contract {\n if (!isAddress(address) || address === AddressZero) {\n throw Error(`Invalid 'address' parameter '${address}'.`)\n }\n\n return new Contract(address, ABI, getProviderOrSigner(library, account) as any)\n}\n\nexport function escapeRegExp(string: string): string {\n return string.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&') // $& means the whole matched string\n}\n\nexport function isTokenOnList(chainTokenMap: ChainTokenMap, token?: Token): boolean {\n return Boolean(token?.isToken && chainTokenMap[token.chainId]?.[token.address])\n}\n","import ARGENT_WALLET_DETECTOR_ABI from \"abis/argent-wallet-detector.json\";\nimport AssetVaultJson from \"abis/asset-vault.json\";\nimport EIP_2612 from \"abis/eip_2612.json\";\nimport ENS_PUBLIC_RESOLVER_ABI from \"abis/ens-public-resolver.json\";\nimport ENS_ABI from \"abis/ens-registrar.json\";\nimport ERC1155_ABI from \"abis/erc1155.json\";\nimport ERC20_ABI from \"abis/erc20.json\";\nimport ERC20_BYTES32_ABI from \"abis/erc20_bytes32.json\";\nimport ERC721_ABI from \"abis/erc721.json\";\nimport MigratorJson from \"abis/lp-migration.json\";\nimport MigratorV3Json from \"abis/lp-v3-migration.json\";\nimport {\n ArgentWalletDetector,\n EnsPublicResolver,\n EnsRegistrar,\n Erc1155,\n Erc20,\n Erc721,\n Weth\n} from \"abis/types\";\nimport WETH_ABI from \"abis/weth.json\";\nimport {\n AMM_VAULT_ADDRESSES,\n ARGENT_WALLET_DETECTOR_ADDRESS,\n ASSET_VAULT_ADDRESSES,\n ENS_REGISTRAR_ADDRESSES,\n LP_MIGRATOR_ADDRESSES,\n MULTICALL_ADDRESS,\n NONFUNGIBLE_POSITION_MANAGER_ADDRESSES,\n QUOTER_ADDRESSES,\n V2_ROUTER_ADDRESS,\n REWARD_STORAGE_ADDRESSES,\n CLUB_MANAGER_ADDRESSES,\n DOUBLE_DOWN_CLUB_ADDRESSES,\n DDJ_ADDRESSES,\n TICK_LENS_ADDRESSES,\n} from \"constants/addresses\";\nimport { WRAPPED_NATIVE_CURRENCY } from \"constants/tokens\";\nimport useActiveWeb3React from \"hooks/useActiveWeb3React\";\nimport { useMemo } from \"react\";\nimport {\n NonfungiblePositionManager,\n Quoter,\n TickLens,\n UniswapInterfaceMulticall\n} from \"types/v3\";\n\n// @ts-nocheck\nimport { Contract } from \"@ethersproject/contracts\";\nimport IUniswapV2PairJson from \"@uniswap/v2-core/build/IUniswapV2Pair.json\";\nimport IUniswapV2Router02Json from \"@uniswap/v2-periphery/build/IUniswapV2Router02.json\";\nimport QuoterJson from \"@uniswap/v3-periphery/artifacts/contracts/lens/Quoter.sol/Quoter.json\";\nimport UniswapInterfaceMulticallJson from \"@uniswap/v3-periphery/artifacts/contracts/lens/UniswapInterfaceMulticall.sol/UniswapInterfaceMulticall.json\";\nimport NonfungiblePositionManagerJson from \"@uniswap/v3-periphery/artifacts/contracts/NonfungiblePositionManager.sol/NonfungiblePositionManager.json\";\nimport TickLensJson from '@uniswap/v3-periphery/artifacts/contracts/lens/TickLens.sol/TickLens.json'\nimport RewardStorageABI from \"../abis/RewardStorage.json\";\nimport ClubManagerABI from \"../abis/ClubManager.json\";\nimport DoubleDownClubABI from \"../abis/DoubleDownClub.json\";\n\nimport VaultMangerJson from \"../abis/vault-manager.json\";\nimport VaultMangerJsonV1 from \"../abis/vault-manager-v1.json\";\nimport VaultMangerV3Json from \"../abis/vault-v3-manager.json\";\nimport { getContract } from \"../utils\";\n\nconst { abi: IUniswapV2PairABI } = IUniswapV2PairJson\nconst { abi: IUniswapV2Router02ABI } = IUniswapV2Router02Json\nconst { abi: QuoterABI } = QuoterJson\nconst { abi: MulticallABI } = UniswapInterfaceMulticallJson\nconst { abi: NFTPositionManagerABI } = NonfungiblePositionManagerJson\nconst { abi: TickLensABI } = TickLensJson\nconst { abi: VaultMangerABI } = VaultMangerJson\nconst { abi: VaultMangerV1ABI } = VaultMangerJsonV1\nconst { abi: VaultMangerV3ABI } = VaultMangerV3Json\nconst { abi: MigratorABI } = MigratorJson\nconst { abi: MigratorV3ABI } = MigratorV3Json\nconst { abi: AssetVaultABI } = AssetVaultJson\n\n// returns null on errors\nexport function useContract(\n addressOrAddressMap: string | { [chainId: number]: string } | undefined,\n ABI: any,\n withSignerIfPossible = true\n): T | null {\n const { library, account, chainId } = useActiveWeb3React()\n\n return useMemo(() => {\n if (!addressOrAddressMap || !ABI || !library || !chainId) return null\n let address: string | undefined\n if (typeof addressOrAddressMap === 'string') address = addressOrAddressMap\n else address = addressOrAddressMap[chainId]\n if (!address) return null\n try {\n return getContract(address, ABI, library, withSignerIfPossible && account ? account : undefined)\n } catch (error) {\n console.error('Failed to get contract', error)\n return null\n }\n }, [addressOrAddressMap, ABI, library, chainId, withSignerIfPossible, account]) as T\n}\n\nexport function useContractByAMM(\n addressOrAddressMap: any,\n ABI: any,\n withSignerIfPossible = true,\n ammType = \"ubeswap\"\n): T | null {\n const { library, account, chainId } = useActiveWeb3React()\n\n return useMemo(() => {\n if (!addressOrAddressMap || !ABI || !library || !chainId || addressOrAddressMap === undefined) return null\n let address: string | undefined\n if (typeof addressOrAddressMap === 'string') address = addressOrAddressMap\n else address = addressOrAddressMap[chainId][ammType.toLowerCase()]\n if (!address) return null\n try {\n return getContract(address, ABI, library, withSignerIfPossible && account ? account : undefined)\n } catch (error) {\n console.error('Failed to get contract', error)\n return null\n }\n }, [addressOrAddressMap, ABI, library, chainId, withSignerIfPossible, account, ammType]) as T\n}\n\nexport function useMigratorContract(ammType?: string) {\n return useContractByAMM(LP_MIGRATOR_ADDRESSES, ammType === \"uniswapv3\" ? MigratorV3ABI : MigratorABI, true, ammType)\n}\n\nexport function useTokenContract(tokenAddress?: string, withSignerIfPossible?: boolean) {\n return useContract(tokenAddress, ERC20_ABI, withSignerIfPossible)\n}\n\nexport function useWETHContract(withSignerIfPossible?: boolean) {\n const { chainId } = useActiveWeb3React()\n return useContract(\n chainId ? WRAPPED_NATIVE_CURRENCY[chainId]?.address : undefined,\n WETH_ABI,\n withSignerIfPossible\n )\n}\n\nexport function useERC721Contract(nftAddress?: string, withSignerIfPossible?: boolean) {\n return useContract(nftAddress, ERC721_ABI, withSignerIfPossible)\n}\n\nexport function useERC1155Contract(nftAddress?: string) {\n return useContract(nftAddress, ERC1155_ABI, false)\n}\n\nexport function useArgentWalletDetectorContract() {\n return useContract(ARGENT_WALLET_DETECTOR_ADDRESS, ARGENT_WALLET_DETECTOR_ABI, false)\n}\n\nexport function useENSRegistrarContract(withSignerIfPossible?: boolean) {\n return useContract(ENS_REGISTRAR_ADDRESSES, ENS_ABI, withSignerIfPossible)\n}\n\nexport function useENSResolverContract(address: string | undefined, withSignerIfPossible?: boolean) {\n return useContract(address, ENS_PUBLIC_RESOLVER_ABI, withSignerIfPossible)\n}\n\nexport function useBytes32TokenContract(tokenAddress?: string, withSignerIfPossible?: boolean): Contract | null {\n return useContract(tokenAddress, ERC20_BYTES32_ABI, withSignerIfPossible)\n}\n\nexport function useEIP2612Contract(tokenAddress?: string): Contract | null {\n return useContract(tokenAddress, EIP_2612, false)\n}\n\nexport function usePairContract(pairAddress?: string, withSignerIfPossible?: boolean): Contract | null {\n return useContract(pairAddress, IUniswapV2PairABI, withSignerIfPossible)\n}\n\nexport function useV2RouterContract(): Contract | null {\n return useContract(V2_ROUTER_ADDRESS, IUniswapV2Router02ABI, true)\n}\n\nexport function useInterfaceMulticall() {\n return useContract(MULTICALL_ADDRESS, MulticallABI, false) as UniswapInterfaceMulticall\n}\n\nexport function useV3NFTPositionManagerContract(withSignerIfPossible?: boolean): NonfungiblePositionManager | null {\n return useContract(\n NONFUNGIBLE_POSITION_MANAGER_ADDRESSES,\n NFTPositionManagerABI,\n withSignerIfPossible\n )\n}\n\nexport function useVaultManagerContract(ammType?: string, withSignerIfPossible?: boolean): Contract | null {\n return useContractByAMM(\n AMM_VAULT_ADDRESSES,\n ammType === \"uniswapv3\" ? VaultMangerV3ABI : ( ammType === \"ubeswap\" ? VaultMangerV1ABI : VaultMangerABI),\n withSignerIfPossible,\n ammType\n )\n}\n\nexport function useAssetVaultContract(withSignerIfPossible?: boolean): Contract | null {\n return useContract(\n ASSET_VAULT_ADDRESSES,\n AssetVaultABI,\n withSignerIfPossible\n )\n}\n\n\nexport function useV3Quoter() {\n return useContract(QUOTER_ADDRESSES, QuoterABI)\n}\n\nexport function useRewardStorageContract(withSignerIfPossible?: boolean) {\n return useContract(REWARD_STORAGE_ADDRESSES, RewardStorageABI, withSignerIfPossible)\n}\n\nexport function useClubManagerContract(withSignerIfPossible?: boolean) {\n return useContract(CLUB_MANAGER_ADDRESSES, ClubManagerABI, withSignerIfPossible)\n}\n\nexport function useDoubleDownClubContract(withSignerIfPossible?: boolean) {\n return useContract(DOUBLE_DOWN_CLUB_ADDRESSES, DoubleDownClubABI, withSignerIfPossible)\n}\n\nexport function useDDJContract(withSignerIfPossible?: boolean) {\n return useContract(DDJ_ADDRESSES, ERC20_ABI, withSignerIfPossible)\n}\n\nexport function useTickLens(): TickLens | null {\n const { chainId } = useActiveWeb3React()\n const address = chainId ? TICK_LENS_ADDRESSES[chainId] : undefined\n return useContract(address, TickLensABI) as TickLens | null\n}\n","import { createMulticall } from '@uniswap/redux-multicall'\nimport useActiveWeb3React from 'hooks/useActiveWeb3React'\nimport { useInterfaceMulticall } from 'hooks/useContract'\nimport useBlockNumber from 'lib/hooks/useBlockNumber'\nimport { combineReducers, createStore } from 'redux'\n\nconst multicall = createMulticall()\nconst reducer = combineReducers({ [multicall.reducerPath]: multicall.reducer })\nexport const store = createStore(reducer)\n\nexport default multicall\n\nexport function MulticallUpdater() {\n const latestBlockNumber = useBlockNumber()\n const { chainId } = useActiveWeb3React()\n const contract = useInterfaceMulticall()\n return \n}\n","import { SupportedChainId } from \"./chains\";\n\n// export enum SupportedChainId {\n// MAINNET = 1,\n// GOERLI = 5,\n// KOVAN = 42,\n \n// ARBITRUM_ONE = 42161,\n// ARBITRUM_RINKEBY = 421611,\n \n// OPTIMISM = 10,\n// OPTIMISTIC_KOVAN = 69,\n \n// POLYGON = 137,\n// POLYGON_MUMBAI = 80001,\n// }\n\nexport const GRAPH_API_URL = {\n [SupportedChainId.MAINNET]: '',\n [SupportedChainId.GOERLI]: '',\n [SupportedChainId.CELO]: '',\n [SupportedChainId.ALFAJORES]: 'https://api.thegraph.com/subgraphs/name/supermutecx/double-alfajores-uniswap-v3',\n [SupportedChainId.AURORA]: '',\n [SupportedChainId.AURORA_TEST]: '',\n [SupportedChainId.KOVAN]: '',\n [SupportedChainId.POLYGON]: '',\n [SupportedChainId.POLYGON_MUMBAI]: '',\n [SupportedChainId.ARBITRUM_ONE]: '',\n [SupportedChainId.ARBITRUM_RINKEBY]: '',\n [SupportedChainId.OPTIMISM]: '',\n [SupportedChainId.OPTIMISTIC_KOVAN]: '',\n }","// @ts-nocheck\nimport useActiveWeb3React from 'hooks/useActiveWeb3React'\nimport { ReactNode, useEffect, useMemo, useState } from 'react'\nimport { ApolloClient, ApolloProvider, InMemoryCache } from '@apollo/client'\nimport { GRAPH_API_URL } from 'constants/graph'\n\n// SDN OFAC addresses\nconst BLOCKED_ADDRESSES: string[] = [\n '0x7Db418b5D567A4e0E8c59Ad71BE1FcE48f3E6107',\n '0x72a5843cc08275C8171E582972Aa4fDa8C397B2A',\n '0x7F19720A857F834887FC9A7bC0a0fBe7Fc7f8102',\n '0xA7e5d5A720f06526557c513402f2e6B5fA20b008',\n '0x1da5821544e25c636c1417Ba96Ade4Cf6D2f9B5A',\n '0x9F4cda013E354b8fC285BF4b9A60460cEe7f7Ea9',\n '0x19Aa5Fe80D33a56D56c78e82eA5E50E5d80b4Dff',\n '0x2f389cE8bD8ff92De3402FFCe4691d17fC4f6535',\n '0xe7aa314c77F4233C18C6CC84384A9247c0cf367B',\n '0x7F367cC41522cE07553e823bf3be79A889DEbe1B',\n '0xd882cFc20F52f2599D84b8e8D58C7FB62cfE344b',\n '0x901bb9583b24D97e995513C6778dc6888AB6870e',\n '0x8576aCC5C05D6Ce88f4e49bf65BdF0C62F91353C',\n '0xC8a65Fadf0e0dDAf421F28FEAb69Bf6E2E589963',\n '0x308eD4B7b49797e1A98D3818bFF6fe5385410370',\n '0x67d40EE1A85bf4a4Bb7Ffae16De985e8427B',\n '0x6f1ca141a28907f78ebaa64fb83a9088b02a83',\n '0x6acdfba02d390b97ac2b2d42a63e85293bcc1',\n '0x48549a34ae37b12f6a30566245176994e17c6',\n '0x5512d943ed1f7c8a43f3435c85f7ab68b30121',\n '0xc455f7fd3e0e12afd51fba5c106909934d8a0e',\n '0x3cbded43efdaf0fc77b9c55f6fc9988fcc9b757d',\n '0x67d40EE1A85bf4a4Bb7Ffae16De985e8427B6b45',\n '0x6f1ca141a28907f78ebaa64fb83a9088b02a8352',\n '0x6acdfba02d390b97ac2b2d42a63e85293bcc160e',\n '0x48549a34ae37b12f6a30566245176994e17c6b4a',\n '0x5512d943ed1f7c8a43f3435c85f7ab68b30121b0',\n '0xc455f7fd3e0e12afd51fba5c106909934d8a0e4a',\n '0x629e7Da20197a5429d30da36E77d06CdF796b71A'\n]\n\nexport default function Blocklist({ children }: { children: ReactNode }) {\n const { account, chainId } = useActiveWeb3React()\n const initClient = useMemo(() => {\n return new ApolloClient({\n uri: GRAPH_API_URL[chainId],\n cache: new InMemoryCache()\n })\n }, [chainId])\n const [client, setClient] = useState | null>(initClient)\n const blocked: boolean = useMemo(() => Boolean(account && BLOCKED_ADDRESSES.indexOf(account) !== -1), [account])\n\n useEffect(() => {\n if (GRAPH_API_URL[chainId]) {\n const client = new ApolloClient({\n uri: GRAPH_API_URL[chainId],\n cache: new InMemoryCache()\n })\n setClient(client)\n }\n }, [chainId])\n\n if (blocked) {\n return (\n
\n Blocked address\n
\n )\n }\n return (\n <>\n \n {children}\n \n \n )\n}\n","import styled, { keyframes } from 'styled-components/macro'\n\nconst rotate = keyframes`\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n`\n\nconst StyledSVG = styled.svg<{ size: string; stroke?: string }>`\n animation: 2s ${rotate} linear infinite;\n height: ${({ size }) => size};\n width: ${({ size }) => size};\n path {\n stroke: #2172E5;\n }\n`\n\n/**\n * Takes in custom size and stroke for circle color, default to primary color as fill,\n * need ...rest for layered styles on top\n */\nexport default function Loader({\n size = '16px',\n stroke,\n ...rest\n}: {\n size?: string\n stroke?: string\n [k: string]: any\n}) {\n return (\n \n \n \n )\n}\n","import { TypedUseSelectorHook, useDispatch, useSelector } from 'react-redux'\nimport { AppDispatch, AppState } from 'state'\n\nexport const useAppDispatch = () => useDispatch()\nexport const useAppSelector: TypedUseSelectorHook = useSelector\n","import { createAction } from '@reduxjs/toolkit'\nimport { SupportedLocale } from 'constants/locales'\n\nexport interface SerializedToken {\n chainId: number\n address: string\n decimals: number\n symbol?: string\n name?: string\n}\n\nexport interface SerializedPair {\n token0: SerializedToken\n token1: SerializedToken\n}\n\nexport const updateMatchesDarkMode = createAction<{ matchesDarkMode: boolean }>('user/updateMatchesDarkMode')\nexport const updateUserDarkMode = createAction<{ userDarkMode: boolean }>('user/updateUserDarkMode')\nexport const updateUserExpertMode = createAction<{ userExpertMode: boolean }>('user/updateUserExpertMode')\nexport const updateUserLocale = createAction<{ userLocale: SupportedLocale }>('user/updateUserLocale')\nexport const updateShowSurveyPopup = createAction<{ showSurveyPopup: boolean }>('user/updateShowSurveyPopup')\nexport const updateShowDonationLink = createAction<{ showDonationLink: boolean }>('user/updateShowDonationLink')\nexport const updateUserClientSideRouter = createAction<{ userClientSideRouter: boolean }>(\n 'user/updateUserClientSideRouter'\n)\nexport const updateHideClosedPositions = createAction<{ userHideClosedPositions: boolean }>('user/hideClosedPositions')\nexport const updateUserSlippageTolerance = createAction<{ userSlippageTolerance: number | 'auto' }>(\n 'user/updateUserSlippageTolerance'\n)\nexport const updateUserDeadline = createAction<{ userDeadline: number }>('user/updateUserDeadline')\nexport const addSerializedToken = createAction<{ serializedToken: SerializedToken }>('user/addSerializedToken')\nexport const removeSerializedToken = createAction<{ chainId: number; address: string }>('user/removeSerializedToken')\nexport const addSerializedPair = createAction<{ serializedPair: SerializedPair }>('user/addSerializedPair')\nexport const removeSerializedPair = createAction<{ chainId: number; tokenAAddress: string; tokenBAddress: string }>(\n 'user/removeSerializedPair'\n)\n","import { parse, ParsedQs } from 'qs'\nimport { useMemo } from 'react'\nimport { useLocation } from 'react-router-dom'\n\nexport function parsedQueryString(search?: string): ParsedQs {\n if (!search) {\n // react-router-dom places search string in the hash\n const hash = window.location.hash\n search = hash.substr(hash.indexOf('?'))\n }\n return search && search.length > 1 ? parse(search, { parseArrays: false, ignoreQueryPrefix: true }) : {}\n}\n\nexport default function useParsedQueryString(): ParsedQs {\n const { search } = useLocation()\n return useMemo(() => parsedQueryString(search), [search])\n}\n","import { useEffect } from 'react'\nimport { useAppDispatch } from 'state/hooks'\n\nimport { updateUserExpertMode } from '../state/user/actions'\nimport useParsedQueryString from './useParsedQueryString'\n\nexport default function ApeModeQueryParamReader(): null {\n useApeModeQueryParamReader()\n return null\n}\n\nfunction useApeModeQueryParamReader() {\n const dispatch = useAppDispatch()\n const { ape } = useParsedQueryString()\n\n useEffect(() => {\n if (typeof ape !== 'string') return\n if (ape === '' || ape.toLowerCase() === 'true') {\n dispatch(updateUserExpertMode({ userExpertMode: true }))\n }\n })\n}\n","import useActiveWeb3React from 'hooks/useActiveWeb3React'\nimport { useEffect } from 'react'\nimport ReactGA from 'react-ga4'\nimport { RouteComponentProps } from 'react-router-dom'\nimport { getCLS, getFCP, getFID, getLCP, Metric } from 'web-vitals'\n\nimport { GOOGLE_ANALYTICS_CLIENT_ID_STORAGE_KEY } from './index'\n\nfunction reportWebVitals({ name, delta, id }: Metric) {\n ReactGA._gaCommandSendTiming('Web Vitals', name, Math.round(name === 'CLS' ? delta * 1000 : delta), id)\n}\n\n// tracks web vitals and pageviews\nexport default function GoogleAnalyticsReporter({ location: { pathname, search } }: RouteComponentProps): null {\n useEffect(() => {\n getFCP(reportWebVitals)\n getFID(reportWebVitals)\n getLCP(reportWebVitals)\n getCLS(reportWebVitals)\n }, [])\n\n const { chainId } = useActiveWeb3React()\n useEffect(() => {\n // cd1 - custom dimension 1 - chainId\n ReactGA.set({ cd1: chainId ?? 0 })\n }, [chainId])\n\n useEffect(() => {\n ReactGA.pageview(`${pathname}${search}`)\n }, [pathname, search])\n\n useEffect(() => {\n // typed as 'any' in react-ga4 -.-\n ReactGA.ga((tracker: any) => {\n if (!tracker) return\n\n const clientId = tracker.get('clientId')\n window.localStorage.setItem(GOOGLE_ANALYTICS_CLIENT_ID_STORAGE_KEY, clientId)\n })\n }, [])\n return null\n}\n","import { createSlice, nanoid } from '@reduxjs/toolkit'\nimport { DEFAULT_TXN_DISMISS_MS } from 'constants/misc'\n\nimport { SupportedChainId } from '../../constants/chains'\n\nexport type PopupContent =\n | {\n txn: {\n hash: string\n }\n }\n | {\n failedSwitchNetwork: SupportedChainId\n }\n | {\n reason: string\n }\n\nexport enum ApplicationModal {\n WALLET,\n SETTINGS,\n SELF_CLAIM,\n ADDRESS_CLAIM,\n CLAIM_POPUP,\n MENU,\n DELEGATE,\n VOTE,\n POOL_OVERVIEW_OPTIONS,\n NETWORK_SELECTOR,\n PRIVACY_POLICY,\n}\n\ntype PopupList = Array<{ key: string; show: boolean; content: PopupContent; removeAfterMs: number | null }>\n\nexport interface ApplicationState {\n readonly chainId: number | null\n readonly openModal: ApplicationModal | null\n readonly popupList: PopupList\n}\n\nconst initialState: ApplicationState = {\n chainId: null,\n openModal: null,\n popupList: [],\n}\n\nconst applicationSlice = createSlice({\n name: 'application',\n initialState,\n reducers: {\n updateChainId(state, action) {\n const { chainId } = action.payload\n state.chainId = chainId\n },\n setOpenModal(state, action) {\n state.openModal = action.payload\n },\n addPopup(state, { payload: { content, key, removeAfterMs = DEFAULT_TXN_DISMISS_MS } }) {\n state.popupList = (key ? state.popupList.filter((popup) => popup.key !== key) : state.popupList).concat([\n {\n key: key || nanoid(),\n show: true,\n content,\n removeAfterMs,\n },\n ])\n },\n removePopup(state, { payload: { key } }) {\n state.popupList.forEach((p) => {\n if (p.key === key) {\n p.show = false\n }\n })\n },\n },\n})\n\nexport const { updateChainId, setOpenModal, addPopup, removePopup } = applicationSlice.actions\nexport default applicationSlice.reducer\n","import { createAction } from '@reduxjs/toolkit'\n\nexport enum Field {\n LIQUIDITY_PERCENT = 'LIQUIDITY_PERCENT',\n LIQUIDITY = 'LIQUIDITY',\n CURRENCY_A = 'CURRENCY_A',\n CURRENCY_B = 'CURRENCY_B',\n}\n\nexport const typeInput = createAction<{ field: Field; typedValue: string }>('burn/typeInputBurn')\n","import { createReducer } from '@reduxjs/toolkit'\n\nimport { Field, typeInput } from './actions'\n\ninterface BurnState {\n readonly independentField: Field\n readonly typedValue: string\n}\n\nconst initialState: BurnState = {\n independentField: Field.LIQUIDITY_PERCENT,\n typedValue: '0',\n}\n\nexport default createReducer(initialState, (builder) =>\n builder.addCase(typeInput, (state, { payload: { field, typedValue } }) => {\n return {\n ...state,\n independentField: field,\n typedValue,\n }\n })\n)\n","import { createAction } from '@reduxjs/toolkit'\n\nexport const selectPercent = createAction<{ percent: number }>('burnV3/selectBurnPercent')\n","import { createReducer } from '@reduxjs/toolkit'\n\nimport { selectPercent } from './actions'\n\ninterface BurnV3State {\n readonly percent: number\n}\n\nconst initialState: BurnV3State = {\n percent: 0,\n}\n\nexport default createReducer(initialState, (builder) =>\n builder.addCase(selectPercent, (state, { payload: { percent } }) => {\n return {\n ...state,\n percent,\n }\n })\n)\n","import { BaseQueryFn } from '@reduxjs/toolkit/query'\nimport { createApi } from '@reduxjs/toolkit/query/react'\nimport { SupportedChainId } from 'constants/chains'\nimport { DocumentNode } from 'graphql'\nimport { ClientError, gql, GraphQLClient } from 'graphql-request'\nimport { AppState } from 'state'\n\n// List of supported subgraphs. Note that the app currently only support one active subgraph at a time\nconst CHAIN_SUBGRAPH_URL: Record = {\n [SupportedChainId.MAINNET]: 'https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v3',\n\n [SupportedChainId.ARBITRUM_ONE]: 'https://api.thegraph.com/subgraphs/name/ianlapham/arbitrum-minimal',\n\n [SupportedChainId.OPTIMISM]: 'https://api.thegraph.com/subgraphs/name/ianlapham/uniswap-optimism-dev',\n\n [SupportedChainId.POLYGON]: 'https://api.thegraph.com/subgraphs/name/ianlapham/uniswap-v3-polygon',\n}\n\nexport const api = createApi({\n reducerPath: 'dataApi',\n baseQuery: graphqlRequestBaseQuery(),\n endpoints: (builder) => ({\n allV3Ticks: builder.query({\n query: ({ poolAddress, skip = 0 }) => ({\n document: gql`\n query allV3Ticks($poolAddress: String!, $skip: Int!) {\n ticks(first: 1000, skip: $skip, where: { poolAddress: $poolAddress }, orderBy: tickIdx) {\n tick: tickIdx\n liquidityNet\n price0\n price1\n }\n }\n `,\n variables: {\n poolAddress,\n skip,\n },\n }),\n }),\n feeTierDistribution: builder.query({\n query: ({ token0, token1 }) => ({\n document: gql`\n query feeTierDistribution($token0: String!, $token1: String!) {\n _meta {\n block {\n number\n }\n }\n asToken0: pools(\n orderBy: totalValueLockedToken0\n orderDirection: desc\n where: { token0: $token0, token1: $token1 }\n ) {\n feeTier\n totalValueLockedToken0\n totalValueLockedToken1\n }\n asToken1: pools(\n orderBy: totalValueLockedToken0\n orderDirection: desc\n where: { token0: $token1, token1: $token0 }\n ) {\n feeTier\n totalValueLockedToken0\n totalValueLockedToken1\n }\n }\n `,\n variables: {\n token0,\n token1,\n },\n }),\n }),\n }),\n})\n\n// Graphql query client wrapper that builds a dynamic url based on chain id\nfunction graphqlRequestBaseQuery(): BaseQueryFn<\n { document: string | DocumentNode; variables?: any },\n unknown,\n Pick,\n Partial>\n> {\n return async ({ document, variables }, { getState }) => {\n try {\n const chainId = (getState() as AppState).application.chainId\n\n const subgraphUrl = chainId ? CHAIN_SUBGRAPH_URL[chainId] : undefined\n\n if (!subgraphUrl) {\n return {\n error: {\n name: 'UnsupportedChainId',\n message: `Subgraph queries against ChainId ${chainId} are not supported.`,\n stack: '',\n },\n }\n }\n\n return { data: await new GraphQLClient(subgraphUrl).request(document, variables), meta: {} }\n } catch (error) {\n if (error instanceof ClientError) {\n const { name, message, stack, request, response } = error\n return { error: { name, message, stack }, meta: { request, response } }\n }\n throw error\n }\n }\n}\n","import { createAction } from '@reduxjs/toolkit'\n\n// fired once when the app reloads but before the app renders\n// allows any updates to be applied to store data loaded from localStorage\nexport const updateVersion = createAction('global/updateVersion')\n","const UNI_LIST = 'https://tokens.uniswap.org'\n// const AAVE_LIST = 'tokenlist.aave.eth'\nconst BA_LIST = 'https://raw.githubusercontent.com/The-Blockchain-Association/sec-notice-list/master/ba-sec-list.json'\n// const CMC_ALL_LIST = 'https://api.coinmarketcap.com/data-api/v3/uniswap/all.json'\nconst COINGECKO_LIST = 'https://tokens.coingecko.com/uniswap/all.json'\nconst COMPOUND_LIST = 'https://raw.githubusercontent.com/compound-finance/token-list/master/compound.tokenlist.json'\nconst GEMINI_LIST = 'https://www.gemini.com/uniswap/manifest.json'\nexport const ARBITRUM_LIST = 'https://bridge.arbitrum.io/token-list-42161.json'\n// const KLEROS_LIST = 't2crtokens.eth'\nexport const OPTIMISM_LIST = 'https://static.optimism.io/optimism.tokenlist.json'\nconst ROLL_LIST = 'https://app.tryroll.com/tokens.json'\nconst SET_LIST = 'https://raw.githubusercontent.com/SetProtocol/uniswap-tokenlist/main/set.tokenlist.json'\nexport const CELO_LIST = 'https://celo-org.github.io/celo-token-list/celo.tokenlist.json'\n\nexport const UNSUPPORTED_LIST_URLS: string[] = [BA_LIST]\n\n// this is the default list of lists that are exposed to users\n// lower index == higher priority for token import\nconst DEFAULT_LIST_OF_LISTS_TO_DISPLAY: string[] = [\n UNI_LIST,\n COMPOUND_LIST,\n // AAVE_LIST,\n // CMC_ALL_LIST,\n COINGECKO_LIST,\n // KLEROS_LIST,\n GEMINI_LIST,\n // WRAPPED_LIST,\n SET_LIST,\n ROLL_LIST,\n ARBITRUM_LIST,\n OPTIMISM_LIST,\n CELO_LIST,\n]\n\nexport const DEFAULT_LIST_OF_LISTS: string[] = [\n ...DEFAULT_LIST_OF_LISTS_TO_DISPLAY,\n ...UNSUPPORTED_LIST_URLS, // need to load dynamic unsupported tokens as well\n]\n\n// default lists to be 'active' aka searched across\nexport const DEFAULT_ACTIVE_LIST_URLS: string[] = [UNI_LIST, GEMINI_LIST, CELO_LIST]\n","import { ActionCreatorWithPayload, createAction } from '@reduxjs/toolkit'\nimport { TokenList } from '@uniswap/token-lists'\n\nexport const fetchTokenList: Readonly<{\n pending: ActionCreatorWithPayload<{ url: string; requestId: string }>\n fulfilled: ActionCreatorWithPayload<{ url: string; tokenList: TokenList; requestId: string }>\n rejected: ActionCreatorWithPayload<{ url: string; errorMessage: string; requestId: string }>\n}> = {\n pending: createAction('lists/fetchTokenList/pending'),\n fulfilled: createAction('lists/fetchTokenList/fulfilled'),\n rejected: createAction('lists/fetchTokenList/rejected'),\n}\n// add and remove from list options\nexport const addList = createAction('lists/addList')\nexport const removeList = createAction('lists/removeList')\n\n// select which lists to search across from loaded lists\nexport const enableList = createAction('lists/enableList')\nexport const disableList = createAction('lists/disableList')\n\n// versioning\nexport const acceptListUpdate = createAction('lists/acceptListUpdate')\n","import { createReducer } from '@reduxjs/toolkit'\nimport { getVersionUpgrade, TokenList, VersionUpgrade } from '@uniswap/token-lists'\n\nimport { DEFAULT_ACTIVE_LIST_URLS } from '../../constants/lists'\nimport { DEFAULT_LIST_OF_LISTS } from '../../constants/lists'\nimport { updateVersion } from '../global/actions'\nimport { acceptListUpdate, addList, disableList, enableList, fetchTokenList, removeList } from './actions'\n\nexport interface ListsState {\n readonly byUrl: {\n readonly [url: string]: {\n readonly current: TokenList | null\n readonly pendingUpdate: TokenList | null\n readonly loadingRequestId: string | null\n readonly error: string | null\n }\n }\n // this contains the default list of lists from the last time the updateVersion was called, i.e. the app was reloaded\n readonly lastInitializedDefaultListOfLists?: string[]\n\n // currently active lists\n readonly activeListUrls: string[] | undefined\n}\n\ntype ListState = ListsState['byUrl'][string]\n\nconst NEW_LIST_STATE: ListState = {\n error: null,\n current: null,\n loadingRequestId: null,\n pendingUpdate: null,\n}\n\ntype Mutable = { -readonly [P in keyof T]: T[P] extends ReadonlyArray ? U[] : T[P] }\n\nconst initialState: ListsState = {\n lastInitializedDefaultListOfLists: DEFAULT_LIST_OF_LISTS,\n byUrl: {\n ...DEFAULT_LIST_OF_LISTS.reduce>((memo, listUrl) => {\n memo[listUrl] = NEW_LIST_STATE\n return memo\n }, {}),\n },\n activeListUrls: DEFAULT_ACTIVE_LIST_URLS,\n}\n\nexport default createReducer(initialState, (builder) =>\n builder\n .addCase(fetchTokenList.pending, (state, { payload: { requestId, url } }) => {\n const current = state.byUrl[url]?.current ?? null\n const pendingUpdate = state.byUrl[url]?.pendingUpdate ?? null\n\n state.byUrl[url] = {\n current,\n pendingUpdate,\n loadingRequestId: requestId,\n error: null,\n }\n })\n .addCase(fetchTokenList.fulfilled, (state, { payload: { requestId, tokenList, url } }) => {\n const current = state.byUrl[url]?.current\n const loadingRequestId = state.byUrl[url]?.loadingRequestId\n\n // no-op if update does nothing\n if (current) {\n const upgradeType = getVersionUpgrade(current.version, tokenList.version)\n\n if (upgradeType === VersionUpgrade.NONE) return\n if (loadingRequestId === null || loadingRequestId === requestId) {\n state.byUrl[url] = {\n current,\n pendingUpdate: tokenList,\n loadingRequestId: null,\n error: null,\n }\n }\n } else {\n // activate if on default active\n if (DEFAULT_ACTIVE_LIST_URLS.includes(url)) {\n state.activeListUrls?.push(url)\n }\n\n state.byUrl[url] = {\n current: tokenList,\n pendingUpdate: null,\n loadingRequestId: null,\n error: null,\n }\n }\n })\n .addCase(fetchTokenList.rejected, (state, { payload: { url, requestId, errorMessage } }) => {\n if (state.byUrl[url]?.loadingRequestId !== requestId) {\n // no-op since it's not the latest request\n return\n }\n\n state.byUrl[url] = {\n current: state.byUrl[url].current ? state.byUrl[url].current : null,\n pendingUpdate: null,\n loadingRequestId: null,\n error: errorMessage,\n }\n })\n .addCase(addList, (state, { payload: url }) => {\n if (!state.byUrl[url]) {\n state.byUrl[url] = NEW_LIST_STATE\n }\n })\n .addCase(removeList, (state, { payload: url }) => {\n if (state.byUrl[url]) {\n delete state.byUrl[url]\n }\n // remove list from active urls if needed\n if (state.activeListUrls && state.activeListUrls.includes(url)) {\n state.activeListUrls = state.activeListUrls.filter((u) => u !== url)\n }\n })\n .addCase(enableList, (state, { payload: url }) => {\n if (!state.byUrl[url]) {\n state.byUrl[url] = NEW_LIST_STATE\n }\n\n if (state.activeListUrls && !state.activeListUrls.includes(url)) {\n state.activeListUrls.push(url)\n }\n\n if (!state.activeListUrls) {\n state.activeListUrls = [url]\n }\n })\n .addCase(disableList, (state, { payload: url }) => {\n if (state.activeListUrls && state.activeListUrls.includes(url)) {\n state.activeListUrls = state.activeListUrls.filter((u) => u !== url)\n }\n })\n .addCase(acceptListUpdate, (state, { payload: url }) => {\n if (!state.byUrl[url]?.pendingUpdate) {\n throw new Error('accept list update called without pending update')\n }\n state.byUrl[url] = {\n ...state.byUrl[url],\n current: state.byUrl[url].pendingUpdate,\n pendingUpdate: null,\n }\n })\n .addCase(updateVersion, (state) => {\n // state loaded from localStorage, but new lists have never been initialized\n if (!state.lastInitializedDefaultListOfLists) {\n state.byUrl = initialState.byUrl\n state.activeListUrls = initialState.activeListUrls\n } else if (state.lastInitializedDefaultListOfLists) {\n const lastInitializedSet = state.lastInitializedDefaultListOfLists.reduce>(\n (s, l) => s.add(l),\n new Set()\n )\n const newListOfListsSet = DEFAULT_LIST_OF_LISTS.reduce>((s, l) => s.add(l), new Set())\n\n DEFAULT_LIST_OF_LISTS.forEach((listUrl) => {\n if (!lastInitializedSet.has(listUrl)) {\n state.byUrl[listUrl] = NEW_LIST_STATE\n }\n })\n\n state.lastInitializedDefaultListOfLists.forEach((listUrl) => {\n if (!newListOfListsSet.has(listUrl)) {\n delete state.byUrl[listUrl]\n }\n })\n }\n\n state.lastInitializedDefaultListOfLists = DEFAULT_LIST_OF_LISTS\n\n // if no active lists, activate defaults\n if (!state.activeListUrls) {\n state.activeListUrls = DEFAULT_ACTIVE_LIST_URLS\n\n // for each list on default list, initialize if needed\n DEFAULT_ACTIVE_LIST_URLS.map((listUrl: string) => {\n if (!state.byUrl[listUrl]) {\n state.byUrl[listUrl] = NEW_LIST_STATE\n }\n return true\n })\n }\n })\n)\n","export interface EventFilter {\n address?: string\n topics?: Array | null>\n}\n\nexport interface Log {\n topics: Array\n data: string\n transactionIndex: number\n logIndex: number\n blockNumber: number\n}\n\n/**\n * Converts a filter to the corresponding string key\n * @param filter the filter to convert\n */\nexport function filterToKey(filter: EventFilter): string {\n return `${filter.address ?? ''}:${\n filter.topics?.map((topic) => (topic ? (Array.isArray(topic) ? topic.join(';') : topic) : '\\0'))?.join('-') ?? ''\n }`\n}\n\n/**\n * Convert a filter key to the corresponding filter\n * @param key key to convert\n */\nexport function keyToFilter(key: string): EventFilter {\n const pcs = key.split(':')\n const address = pcs[0]\n const topics = pcs[1].split('-').map((topic) => {\n if (topic === '\\0') return null\n const parts = topic.split(';')\n if (parts.length === 1) return parts[0]\n return parts\n })\n\n return {\n address: address.length === 0 ? undefined : address,\n topics,\n }\n}\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit'\n\nimport { EventFilter, filterToKey, Log } from './utils'\n\nexport interface LogsState {\n [chainId: number]: {\n [filterKey: string]: {\n listeners: number\n fetchingBlockNumber?: number\n results?:\n | {\n blockNumber: number\n logs: Log[]\n error?: undefined\n }\n | {\n blockNumber: number\n logs?: undefined\n error: true\n }\n }\n }\n}\n\nconst slice = createSlice({\n name: 'logs',\n initialState: {} as LogsState,\n reducers: {\n addListener(state, { payload: { chainId, filter } }: PayloadAction<{ chainId: number; filter: EventFilter }>) {\n if (!state[chainId]) state[chainId] = {}\n const key = filterToKey(filter)\n if (!state[chainId][key])\n state[chainId][key] = {\n listeners: 1,\n }\n else state[chainId][key].listeners++\n },\n fetchingLogs(\n state,\n {\n payload: { chainId, filters, blockNumber },\n }: PayloadAction<{ chainId: number; filters: EventFilter[]; blockNumber: number }>\n ) {\n if (!state[chainId]) return\n for (const filter of filters) {\n const key = filterToKey(filter)\n if (!state[chainId][key]) continue\n state[chainId][key].fetchingBlockNumber = blockNumber\n }\n },\n fetchedLogs(\n state,\n {\n payload: { chainId, filter, results },\n }: PayloadAction<{ chainId: number; filter: EventFilter; results: { blockNumber: number; logs: Log[] } }>\n ) {\n if (!state[chainId]) return\n const key = filterToKey(filter)\n const fetchState = state[chainId][key]\n if (!fetchState || (fetchState.results && fetchState.results.blockNumber > results.blockNumber)) return\n fetchState.results = results\n },\n fetchedLogsError(\n state,\n {\n payload: { chainId, filter, blockNumber },\n }: PayloadAction<{ chainId: number; blockNumber: number; filter: EventFilter }>\n ) {\n if (!state[chainId]) return\n const key = filterToKey(filter)\n const fetchState = state[chainId][key]\n if (!fetchState || (fetchState.results && fetchState.results.blockNumber > blockNumber)) return\n fetchState.results = {\n blockNumber,\n error: true,\n }\n },\n removeListener(state, { payload: { chainId, filter } }: PayloadAction<{ chainId: number; filter: EventFilter }>) {\n if (!state[chainId]) return\n const key = filterToKey(filter)\n if (!state[chainId][key]) return\n state[chainId][key].listeners--\n },\n },\n})\n\nexport default slice.reducer\nexport const { addListener, removeListener, fetchedLogs, fetchedLogsError, fetchingLogs } = slice.actions\n","import { createAction } from '@reduxjs/toolkit'\n\nexport enum Field {\n CURRENCY_A = 'CURRENCY_A',\n CURRENCY_B = 'CURRENCY_B',\n}\n\nexport const typeInput = createAction<{ field: Field; typedValue: string; noLiquidity: boolean }>('mint/typeInputMint')\nexport const resetMintState = createAction('mint/resetMintState')\n","import { createReducer } from '@reduxjs/toolkit'\n\nimport { Field, resetMintState, typeInput } from './actions'\n\nexport interface MintState {\n readonly independentField: Field\n readonly typedValue: string\n readonly otherTypedValue: string // for the case when there's no liquidity\n readonly startPriceTypedValue: string // for the case when there's no liquidity\n readonly leftRangeTypedValue: string\n readonly rightRangeTypedValue: string\n}\n\nexport const initialState: MintState = {\n independentField: Field.CURRENCY_A,\n typedValue: '',\n otherTypedValue: '',\n startPriceTypedValue: '',\n leftRangeTypedValue: '',\n rightRangeTypedValue: '',\n}\n\nexport default createReducer(initialState, (builder) =>\n builder\n .addCase(resetMintState, () => initialState)\n .addCase(typeInput, (state, { payload: { field, typedValue, noLiquidity } }) => {\n if (noLiquidity) {\n // they're typing into the field they've last typed in\n if (field === state.independentField) {\n return {\n ...state,\n independentField: field,\n typedValue,\n }\n }\n // they're typing into a new field, store the other value\n else {\n return {\n ...state,\n independentField: field,\n typedValue,\n otherTypedValue: state.typedValue,\n }\n }\n } else {\n return {\n ...state,\n independentField: field,\n typedValue,\n otherTypedValue: '',\n }\n }\n })\n)\n","import { createAction } from '@reduxjs/toolkit'\n\nexport enum Field {\n CURRENCY_A = 'CURRENCY_A',\n CURRENCY_B = 'CURRENCY_B',\n}\n\nexport enum Bound {\n LOWER = 'LOWER',\n UPPER = 'UPPER',\n}\n\nexport const typeInput = createAction<{ field: Field; typedValue: string; noLiquidity: boolean }>(\n 'mintV3/typeInputMint'\n)\nexport const typeStartPriceInput = createAction<{ typedValue: string }>('mintV3/typeStartPriceInput')\nexport const typeLeftRangeInput = createAction<{ typedValue: string }>('mintV3/typeLeftRangeInput')\nexport const typeRightRangeInput = createAction<{ typedValue: string }>('mintV3/typeRightRangeInput')\nexport const resetMintState = createAction('mintV3/resetMintState')\nexport const setFullRange = createAction('mintV3/setFullRange')\n","import { createReducer } from '@reduxjs/toolkit'\n\nimport {\n Field,\n resetMintState,\n setFullRange,\n typeInput,\n typeLeftRangeInput,\n typeRightRangeInput,\n typeStartPriceInput,\n} from './actions'\n\nexport type FullRange = true\n\ninterface MintState {\n readonly independentField: Field\n readonly typedValue: string\n readonly startPriceTypedValue: string // for the case when there's no liquidity\n readonly leftRangeTypedValue: string | FullRange\n readonly rightRangeTypedValue: string | FullRange\n}\n\nconst initialState: MintState = {\n independentField: Field.CURRENCY_A,\n typedValue: '',\n startPriceTypedValue: '',\n leftRangeTypedValue: '',\n rightRangeTypedValue: '',\n}\n\nexport default createReducer(initialState, (builder) =>\n builder\n .addCase(resetMintState, () => initialState)\n .addCase(setFullRange, (state) => {\n return {\n ...state,\n leftRangeTypedValue: true,\n rightRangeTypedValue: true,\n }\n })\n .addCase(typeStartPriceInput, (state, { payload: { typedValue } }) => {\n return {\n ...state,\n startPriceTypedValue: typedValue,\n }\n })\n .addCase(typeLeftRangeInput, (state, { payload: { typedValue } }) => {\n return {\n ...state,\n leftRangeTypedValue: typedValue,\n }\n })\n .addCase(typeRightRangeInput, (state, { payload: { typedValue } }) => {\n return {\n ...state,\n rightRangeTypedValue: typedValue,\n }\n })\n .addCase(typeInput, (state, { payload: { field, typedValue, noLiquidity } }) => {\n if (noLiquidity) {\n // they're typing into the field they've last typed in\n if (field === state.independentField) {\n return {\n ...state,\n independentField: field,\n typedValue,\n }\n }\n // they're typing into a new field, store the other value\n else {\n return {\n ...state,\n independentField: field,\n typedValue,\n }\n }\n } else {\n return {\n ...state,\n independentField: field,\n typedValue,\n }\n }\n })\n)\n","import { SupportedChainId } from \"./chains\";\n\nconst INFURA_KEY = process.env.REACT_APP_INFURA_KEY\nif (typeof INFURA_KEY === 'undefined') {\n throw new Error(`REACT_APP_INFURA_KEY must be a defined environment variable`)\n}\n\n/**\n * These are the network URLs used by the interface when there is not another available source of chain data\n */\nexport const INFURA_NETWORK_URLS: { [key in SupportedChainId]: string } = {\n [SupportedChainId.MAINNET]: `https://mainnet.infura.io/v3/${INFURA_KEY}`,\n [SupportedChainId.GOERLI]: `https://goerli.infura.io/v3/${INFURA_KEY}`,\n [SupportedChainId.KOVAN]: `https://kovan.infura.io/v3/${INFURA_KEY}`,\n [SupportedChainId.CELO]: `https://celo-mainnet.infura.io/v3/${INFURA_KEY}`,\n [SupportedChainId.ALFAJORES]: `https://alfajores-forno.celo-testnet.org`,\n [SupportedChainId.AURORA]: `https://mainnet.aurora.dev`,\n [SupportedChainId.AURORA_TEST]: `https://betanet.aurora.dev`,\n [SupportedChainId.OPTIMISM]: `https://optimism-mainnet.infura.io/v3/${INFURA_KEY}`,\n [SupportedChainId.OPTIMISTIC_KOVAN]: `https://optimism-kovan.infura.io/v3/${INFURA_KEY}`,\n [SupportedChainId.ARBITRUM_ONE]: `https://arbitrum-mainnet.infura.io/v3/${INFURA_KEY}`,\n [SupportedChainId.ARBITRUM_RINKEBY]: `https://arbitrum-rinkeby.infura.io/v3/${INFURA_KEY}`,\n [SupportedChainId.POLYGON]: `https://polygon-mainnet.infura.io/v3/${INFURA_KEY}`,\n [SupportedChainId.POLYGON_MUMBAI]: `https://polygon-mumbai.infura.io/v3/${INFURA_KEY}`,\n}\n","import { Protocol } from '@uniswap/router-sdk'\nimport { Currency, CurrencyAmount } from '@uniswap/sdk-core'\nimport { routeAmountsToString, SwapRoute } from '@uniswap/smart-order-router'\nimport { GetQuoteResult, V2PoolInRoute, V3PoolInRoute } from 'state/routing/types'\n\n// from routing-api (https://github.com/Uniswap/routing-api/blob/main/lib/handlers/quote/quote.ts#L243-L311)\nexport function transformSwapRouteToGetQuoteResult(\n type: 'exactIn' | 'exactOut',\n amount: CurrencyAmount,\n {\n quote,\n quoteGasAdjusted,\n route,\n estimatedGasUsed,\n estimatedGasUsedQuoteToken,\n estimatedGasUsedUSD,\n gasPriceWei,\n methodParameters,\n blockNumber,\n }: SwapRoute\n): GetQuoteResult {\n const routeResponse: Array = []\n\n for (const subRoute of route) {\n const { amount, quote, tokenPath } = subRoute\n\n if (subRoute.protocol === Protocol.V3) {\n const pools = subRoute.route.pools\n const curRoute: V3PoolInRoute[] = []\n for (let i = 0; i < pools.length; i++) {\n const nextPool = pools[i]\n const tokenIn = tokenPath[i]\n const tokenOut = tokenPath[i + 1]\n\n let edgeAmountIn = undefined\n if (i === 0) {\n edgeAmountIn = type === 'exactIn' ? amount.quotient.toString() : quote.quotient.toString()\n }\n\n let edgeAmountOut = undefined\n if (i === pools.length - 1) {\n edgeAmountOut = type === 'exactIn' ? quote.quotient.toString() : amount.quotient.toString()\n }\n\n curRoute.push({\n type: 'v3-pool',\n tokenIn: {\n chainId: tokenIn.chainId,\n decimals: tokenIn.decimals,\n address: tokenIn.address,\n symbol: tokenIn.symbol,\n },\n tokenOut: {\n chainId: tokenOut.chainId,\n decimals: tokenOut.decimals,\n address: tokenOut.address,\n symbol: tokenOut.symbol,\n },\n fee: nextPool.fee.toString(),\n liquidity: nextPool.liquidity.toString(),\n sqrtRatioX96: nextPool.sqrtRatioX96.toString(),\n tickCurrent: nextPool.tickCurrent.toString(),\n amountIn: edgeAmountIn,\n amountOut: edgeAmountOut,\n })\n }\n\n routeResponse.push(curRoute)\n } else if (subRoute.protocol === Protocol.V2) {\n const pools = subRoute.route.pairs\n const curRoute: V2PoolInRoute[] = []\n for (let i = 0; i < pools.length; i++) {\n const nextPool = pools[i]\n const tokenIn = tokenPath[i]\n const tokenOut = tokenPath[i + 1]\n\n let edgeAmountIn = undefined\n if (i === 0) {\n edgeAmountIn = type === 'exactIn' ? amount.quotient.toString() : quote.quotient.toString()\n }\n\n let edgeAmountOut = undefined\n if (i === pools.length - 1) {\n edgeAmountOut = type === 'exactIn' ? quote.quotient.toString() : amount.quotient.toString()\n }\n\n const reserve0 = nextPool.reserve0\n const reserve1 = nextPool.reserve1\n\n curRoute.push({\n type: 'v2-pool',\n tokenIn: {\n chainId: tokenIn.chainId,\n decimals: tokenIn.decimals,\n address: tokenIn.address,\n symbol: tokenIn.symbol,\n },\n tokenOut: {\n chainId: tokenOut.chainId,\n decimals: tokenOut.decimals,\n address: tokenOut.address,\n symbol: tokenOut.symbol,\n },\n reserve0: {\n token: {\n chainId: reserve0.currency.wrapped.chainId,\n decimals: reserve0.currency.wrapped.decimals,\n address: reserve0.currency.wrapped.address,\n symbol: reserve0.currency.wrapped.symbol,\n },\n quotient: reserve0.quotient.toString(),\n },\n reserve1: {\n token: {\n chainId: reserve1.currency.wrapped.chainId,\n decimals: reserve1.currency.wrapped.decimals,\n address: reserve1.currency.wrapped.address,\n symbol: reserve1.currency.wrapped.symbol,\n },\n quotient: reserve1.quotient.toString(),\n },\n amountIn: edgeAmountIn,\n amountOut: edgeAmountOut,\n })\n }\n\n routeResponse.push(curRoute)\n }\n }\n\n const result: GetQuoteResult = {\n methodParameters,\n blockNumber: blockNumber.toString(),\n amount: amount.quotient.toString(),\n amountDecimals: amount.toExact(),\n quote: quote.quotient.toString(),\n quoteDecimals: quote.toExact(),\n quoteGasAdjusted: quoteGasAdjusted.quotient.toString(),\n quoteGasAdjustedDecimals: quoteGasAdjusted.toExact(),\n gasUseEstimateQuote: estimatedGasUsedQuoteToken.quotient.toString(),\n gasUseEstimateQuoteDecimals: estimatedGasUsedQuoteToken.toExact(),\n gasUseEstimate: estimatedGasUsed.toString(),\n gasUseEstimateUSD: estimatedGasUsedUSD.toExact(),\n gasPriceWei: gasPriceWei.toString(),\n route: routeResponse,\n routeString: routeAmountsToString(route),\n }\n\n return result\n}\n","import { BigintIsh, CurrencyAmount, Token, TradeType } from '@uniswap/sdk-core'\n// This file is lazy-loaded, so the import of smart-order-router is intentional.\n// eslint-disable-next-line no-restricted-imports\nimport { AlphaRouter, AlphaRouterConfig, AlphaRouterParams, ChainId } from '@uniswap/smart-order-router'\nimport JSBI from 'jsbi'\nimport { GetQuoteResult } from 'state/routing/types'\nimport { transformSwapRouteToGetQuoteResult } from 'utils/transformSwapRouteToGetQuoteResult'\n\nexport const AUTO_ROUTER_SUPPORTED_CHAINS: ChainId[] = Object.values(ChainId).filter((chainId): chainId is ChainId =>\n Number.isInteger(chainId)\n)\n\nasync function getQuote(\n {\n type,\n chainId,\n tokenIn,\n tokenOut,\n amount: amountRaw,\n }: {\n type: 'exactIn' | 'exactOut'\n chainId: ChainId\n tokenIn: { address: string; chainId: number; decimals: number; symbol?: string }\n tokenOut: { address: string; chainId: number; decimals: number; symbol?: string }\n amount: BigintIsh\n },\n routerParams: AlphaRouterParams,\n routerConfig: Partial\n): Promise<{ data: GetQuoteResult; error?: unknown }> {\n const router = new AlphaRouter(routerParams)\n\n const currencyIn = new Token(tokenIn.chainId, tokenIn.address, tokenIn.decimals, tokenIn.symbol)\n const currencyOut = new Token(tokenOut.chainId, tokenOut.address, tokenOut.decimals, tokenOut.symbol)\n\n const baseCurrency = type === 'exactIn' ? currencyIn : currencyOut\n const quoteCurrency = type === 'exactIn' ? currencyOut : currencyIn\n const amount = CurrencyAmount.fromRawAmount(baseCurrency, JSBI.BigInt(amountRaw))\n\n const swapRoute = await router.route(\n amount,\n quoteCurrency,\n type === 'exactIn' ? TradeType.EXACT_INPUT : TradeType.EXACT_OUTPUT,\n /*swapConfig=*/ undefined,\n routerConfig\n )\n\n if (!swapRoute) throw new Error('Failed to generate client side quote')\n\n return { data: transformSwapRouteToGetQuoteResult(type, amount, swapRoute) }\n}\n\ninterface QuoteArguments {\n tokenInAddress: string\n tokenInChainId: ChainId\n tokenInDecimals: number\n tokenInSymbol?: string\n tokenOutAddress: string\n tokenOutChainId: ChainId\n tokenOutDecimals: number\n tokenOutSymbol?: string\n amount: string\n type: 'exactIn' | 'exactOut'\n}\n\nexport async function getClientSideQuote(\n {\n tokenInAddress,\n tokenInChainId,\n tokenInDecimals,\n tokenInSymbol,\n tokenOutAddress,\n tokenOutChainId,\n tokenOutDecimals,\n tokenOutSymbol,\n amount,\n type,\n }: QuoteArguments,\n routerParams: AlphaRouterParams,\n routerConfig: Partial\n) {\n return getQuote(\n {\n type,\n chainId: tokenInChainId,\n tokenIn: {\n address: tokenInAddress,\n chainId: tokenInChainId,\n decimals: tokenInDecimals,\n symbol: tokenInSymbol,\n },\n tokenOut: {\n address: tokenOutAddress,\n chainId: tokenOutChainId,\n decimals: tokenOutDecimals,\n symbol: tokenOutSymbol,\n },\n amount,\n },\n routerParams,\n routerConfig\n )\n}\n","// @ts-nocheck\nimport { BaseProvider, JsonRpcProvider } from '@ethersproject/providers'\nimport { createApi, fetchBaseQuery, FetchBaseQueryError } from '@reduxjs/toolkit/query/react'\nimport { Protocol } from '@uniswap/router-sdk'\nimport { ChainId } from '@uniswap/smart-order-router'\nimport { INFURA_NETWORK_URLS } from 'constants/infura'\nimport { AUTO_ROUTER_SUPPORTED_CHAINS, getClientSideQuote } from 'lib/hooks/routing/clientSideSmartOrderRouter'\nimport ms from 'ms.macro'\nimport qs from 'qs'\n\nimport { GetQuoteResult } from './types'\n\nconst routerProviders = new Map()\nfunction getRouterProvider(chainId: ChainId): BaseProvider {\n const provider = routerProviders.get(chainId)\n if (provider) return provider\n\n if (AUTO_ROUTER_SUPPORTED_CHAINS.includes(chainId)) {\n // @ts-ignore: \n const provider = new JsonRpcProvider(INFURA_NETWORK_URLS[chainId] as any)\n routerProviders.set(chainId, provider)\n return provider\n }\n\n throw new Error(`Router does not support this chain (chainId: ${chainId}).`)\n}\n\nconst protocols: Protocol[] = [Protocol.V2, Protocol.V3]\n\nconst DEFAULT_QUERY_PARAMS = {\n protocols: protocols.map((p) => p.toLowerCase()).join(','),\n // example other params\n // forceCrossProtocol: 'true',\n // minSplits: '5',\n}\n\nexport const routingApi = createApi({\n reducerPath: 'routingApi',\n baseQuery: fetchBaseQuery({\n baseUrl: 'https://api.uniswap.org/v1/',\n }),\n endpoints: (build) => ({\n getQuote: build.query<\n GetQuoteResult,\n {\n tokenInAddress: string\n tokenInChainId: ChainId\n tokenInDecimals: number\n tokenInSymbol?: string\n tokenOutAddress: string\n tokenOutChainId: ChainId\n tokenOutDecimals: number\n tokenOutSymbol?: string\n amount: string\n useClientSideRouter: boolean // included in key to invalidate on change\n type: 'exactIn' | 'exactOut'\n }\n >({\n async queryFn(args, _api, _extraOptions, fetch) {\n const { tokenInAddress, tokenInChainId, tokenOutAddress, tokenOutChainId, amount, useClientSideRouter, type } =\n args\n\n let result\n\n try {\n if (useClientSideRouter) {\n const chainId = args.tokenInChainId\n const params = { chainId, provider: getRouterProvider(chainId) }\n result = await getClientSideQuote(args, params, { protocols })\n } else {\n const query = qs.stringify({\n ...DEFAULT_QUERY_PARAMS,\n tokenInAddress,\n tokenInChainId,\n tokenOutAddress,\n tokenOutChainId,\n amount,\n type,\n })\n result = await fetch(`quote?${query}`)\n }\n\n return { data: result.data as GetQuoteResult }\n } catch (e) {\n // TODO: fall back to client-side quoter when auto router fails.\n // deprecate 'legacy' v2/v3 routers first.\n return { error: e as FetchBaseQueryError }\n }\n },\n keepUnusedDataFor: ms`10s`,\n extraOptions: {\n maxRetries: 0,\n },\n }),\n }),\n})\n\nexport const { useGetQuoteQuery } = routingApi\n","import { createAction } from '@reduxjs/toolkit'\n\nexport enum Field {\n INPUT = 'INPUT',\n OUTPUT = 'OUTPUT',\n}\n\nexport const selectCurrency = createAction<{ field: Field; currencyId: string }>('swap/selectCurrency')\nexport const switchCurrencies = createAction('swap/switchCurrencies')\nexport const typeInput = createAction<{ field: Field; typedValue: string }>('swap/typeInput')\nexport const replaceSwapState = createAction<{\n field: Field\n typedValue: string\n inputCurrencyId?: string\n outputCurrencyId?: string\n recipient: string | null\n}>('swap/replaceSwapState')\nexport const setRecipient = createAction<{ recipient: string | null }>('swap/setRecipient')\n","import { NativeCurrency } from '@uniswap/sdk-core'\nimport { SupportedChainId } from 'constants/chains'\nimport { nativeOnChain } from 'constants/tokens'\nimport useActiveWeb3React from 'hooks/useActiveWeb3React'\nimport { useMemo } from 'react'\n\nexport default function useNativeCurrency(): NativeCurrency {\n const { chainId } = useActiveWeb3React()\n return useMemo(\n () =>\n chainId\n ? nativeOnChain(chainId)\n : // display mainnet when not connected\n nativeOnChain(SupportedChainId.MAINNET),\n [chainId]\n )\n}\n","import useActiveWeb3React from \"hooks/useActiveWeb3React\";\nimport useBlockNumber from \"lib/hooks/useBlockNumber\";\nimport multicall from \"lib/state/multicall\";\nimport { SkipFirst } from \"types/tuple\";\n\nexport type { CallStateResult } from '@uniswap/redux-multicall' // re-export for convenience\nexport { NEVER_RELOAD } from '@uniswap/redux-multicall' // re-export for convenience\n\n// Create wrappers for hooks so consumers don't need to get latest block themselves\n\ntype SkipFirstTwoParams any> = SkipFirst, 2>\n\nexport function useMultipleContractSingleData(\n ...args: SkipFirstTwoParams\n) {\n const { chainId, latestBlock } = useCallContext()\n return multicall.hooks.useMultipleContractSingleData(chainId, latestBlock, ...args)\n}\n\nexport function useSingleCallResult(...args: SkipFirstTwoParams) {\n const { chainId, latestBlock } = useCallContext()\n return multicall.hooks.useSingleCallResult(chainId, latestBlock, ...args)\n}\n\nexport function useSingleContractMultipleData(\n ...args: SkipFirstTwoParams\n) {\n const { chainId, latestBlock } = useCallContext()\n return multicall.hooks.useSingleContractMultipleData(chainId, latestBlock, ...args)\n}\n\nexport function useSingleContractWithCallData(\n ...args: SkipFirstTwoParams\n) {\n const { chainId, latestBlock } = useCallContext()\n return multicall.hooks.useSingleContractWithCallData(chainId, latestBlock, ...args)\n}\n\nfunction useCallContext() {\n const { chainId } = useActiveWeb3React()\n const latestBlock = useBlockNumber()\n return { chainId, latestBlock }\n}\n","import { namehash } from '@ethersproject/hash'\n\nexport function safeNamehash(name?: string): string | undefined {\n if (name === undefined) return undefined\n\n try {\n return namehash(name)\n } catch (error) {\n console.debug(error)\n return undefined\n }\n}\n","/**\n * Returns true if the string value is zero in hex\n * @param hexNumberString\n */\nexport default function isZero(hexNumberString: string) {\n return /^0x0*$/.test(hexNumberString)\n}\n","import { useSingleCallResult } from 'lib/hooks/multicall'\nimport { useMemo } from 'react'\nimport { safeNamehash } from 'utils/safeNamehash'\n\nimport isZero from '../utils/isZero'\nimport { useENSRegistrarContract, useENSResolverContract } from './useContract'\nimport useDebounce from './useDebounce'\n\n/**\n * Does a lookup for an ENS name to find its address.\n */\nexport default function useENSAddress(ensName?: string | null): { loading: boolean; address: string | null } {\n const debouncedName = useDebounce(ensName, 200)\n const ensNodeArgument = useMemo(\n () => [debouncedName === null ? undefined : safeNamehash(debouncedName)],\n [debouncedName]\n )\n const registrarContract = useENSRegistrarContract(false)\n const resolverAddress = useSingleCallResult(registrarContract, 'resolver', ensNodeArgument)\n const resolverAddressResult = resolverAddress.result?.[0]\n const resolverContract = useENSResolverContract(\n resolverAddressResult && !isZero(resolverAddressResult) ? resolverAddressResult : undefined,\n false\n )\n const addr = useSingleCallResult(resolverContract, 'addr', ensNodeArgument)\n\n const changed = debouncedName !== ensName\n return useMemo(\n () => ({\n address: changed ? null : addr.result?.[0] ?? null,\n loading: changed || resolverAddress.loading || addr.loading,\n }),\n [addr.loading, addr.result, changed, resolverAddress.loading]\n )\n}\n","import { Currency, CurrencyAmount } from '@uniswap/sdk-core'\nimport { ethers } from 'ethers'\nimport JSBI from 'jsbi'\n\n/**\n * Parses a CurrencyAmount from the passed string.\n * Returns the CurrencyAmount, or undefined if parsing fails.\n */\nexport default function tryParseCurrencyAmount(\n value?: string,\n currency?: T\n): CurrencyAmount | undefined {\n if (!value || !currency) {\n return undefined\n }\n try {\n const typedValueParsed = ethers.utils.parseUnits(value, currency.decimals).toString();\n if (typedValueParsed !== '0') {\n return CurrencyAmount.fromRawAmount(currency, JSBI.BigInt(typedValueParsed))\n }\n } catch (error) {\n // fails if the user specifies too many decimal places of precision (or maybe exceed max uint?)\n console.debug(`Failed to parse input amount: \"${value}\"`, error)\n }\n return undefined\n}\n","import { Currency, Percent, TradeType } from '@uniswap/sdk-core'\nimport { Trade as V2Trade } from '@uniswap/v2-sdk'\n\nimport { ONE_HUNDRED_PERCENT, ZERO_PERCENT } from '../constants/misc'\n\n// returns whether tradeB is better than tradeA by at least a threshold percentage amount\n// only used by v2 hooks\nexport function isTradeBetter(\n tradeA: V2Trade | undefined | null,\n tradeB: V2Trade | undefined | null,\n minimumDelta: Percent = ZERO_PERCENT\n): boolean | undefined {\n if (tradeA && !tradeB) return false\n if (tradeB && !tradeA) return true\n if (!tradeA || !tradeB) return undefined\n\n if (\n tradeA.tradeType !== tradeB.tradeType ||\n !tradeA.inputAmount.currency.equals(tradeB.inputAmount.currency) ||\n !tradeA.outputAmount.currency.equals(tradeB.outputAmount.currency)\n ) {\n throw new Error('Comparing incomparable trades')\n }\n\n if (minimumDelta.equalTo(ZERO_PERCENT)) {\n return tradeA.executionPrice.lessThan(tradeB.executionPrice)\n } else {\n return tradeA.executionPrice.asFraction\n .multiply(minimumDelta.add(ONE_HUNDRED_PERCENT))\n .lessThan(tradeB.executionPrice)\n }\n}\n","// a list of tokens by chain\nimport { Currency, Token } from '@uniswap/sdk-core'\n\nimport { SupportedChainId } from './chains'\nimport {\n AMPL,\n DAI,\n DAI_ARBITRUM_ONE,\n DAI_OPTIMISM,\n DAI_POLYGON,\n ETH2X_FLI,\n FEI,\n FRAX,\n FXS,\n nativeOnChain,\n renBTC,\n rETH2,\n sETH2,\n SWISE,\n TRIBE,\n USDC_ARBITRUM,\n USDC_MAINNET,\n USDC_OPTIMISM,\n USDC_POLYGON,\n USDT,\n USDT_ARBITRUM_ONE,\n USDT_OPTIMISM,\n USDT_POLYGON,\n WBTC,\n WBTC_ARBITRUM_ONE,\n WBTC_OPTIMISM,\n WBTC_POLYGON,\n WETH_POLYGON,\n WETH_POLYGON_MUMBAI,\n WRAPPED_NATIVE_CURRENCY,\n} from './tokens'\n\ntype ChainTokenList = {\n readonly [chainId: number]: Token[]\n}\n\ntype ChainCurrencyList = {\n readonly [chainId: number]: Currency[]\n}\n\nconst WRAPPED_NATIVE_CURRENCIES_ONLY: ChainTokenList = Object.fromEntries(\n Object.entries(WRAPPED_NATIVE_CURRENCY)\n .map(([key, value]) => [key, [value]])\n .filter(Boolean)\n)\n\n// used to construct intermediary pairs for trading\nexport const BASES_TO_CHECK_TRADES_AGAINST: ChainTokenList = {\n ...WRAPPED_NATIVE_CURRENCIES_ONLY,\n [SupportedChainId.MAINNET]: [\n ...WRAPPED_NATIVE_CURRENCIES_ONLY[SupportedChainId.MAINNET],\n DAI,\n USDC_MAINNET,\n USDT,\n WBTC,\n ],\n [SupportedChainId.OPTIMISM]: [\n ...WRAPPED_NATIVE_CURRENCIES_ONLY[SupportedChainId.OPTIMISM],\n DAI_OPTIMISM,\n USDT_OPTIMISM,\n WBTC_OPTIMISM,\n ],\n [SupportedChainId.ARBITRUM_ONE]: [\n ...WRAPPED_NATIVE_CURRENCIES_ONLY[SupportedChainId.ARBITRUM_ONE],\n DAI_ARBITRUM_ONE,\n USDT_ARBITRUM_ONE,\n WBTC_ARBITRUM_ONE,\n ],\n [SupportedChainId.POLYGON]: [\n ...WRAPPED_NATIVE_CURRENCIES_ONLY[SupportedChainId.POLYGON],\n DAI_POLYGON,\n USDC_POLYGON,\n USDT_POLYGON,\n WETH_POLYGON,\n ],\n}\nexport const ADDITIONAL_BASES: { [chainId: number]: { [tokenAddress: string]: Token[] } } = {\n [SupportedChainId.MAINNET]: {\n '0xF16E4d813f4DcfDe4c5b44f305c908742De84eF0': [ETH2X_FLI],\n [rETH2.address]: [sETH2],\n [SWISE.address]: [sETH2],\n [FEI.address]: [TRIBE],\n [TRIBE.address]: [FEI],\n [FRAX.address]: [FXS],\n [FXS.address]: [FRAX],\n [WBTC.address]: [renBTC],\n [renBTC.address]: [WBTC],\n },\n}\n/**\n * Some tokens can only be swapped via certain pairs, so we override the list of bases that are considered for these\n * tokens.\n */\nexport const CUSTOM_BASES: { [chainId: number]: { [tokenAddress: string]: Token[] } } = {\n [SupportedChainId.MAINNET]: {\n [AMPL.address]: [DAI, WRAPPED_NATIVE_CURRENCY[SupportedChainId.MAINNET] as Token],\n },\n}\n\n/**\n * Shows up in the currency select for swap and add liquidity\n */\nexport const COMMON_BASES: ChainCurrencyList = {\n [SupportedChainId.MAINNET]: [\n nativeOnChain(SupportedChainId.MAINNET),\n DAI,\n USDC_MAINNET,\n USDT,\n WBTC,\n WRAPPED_NATIVE_CURRENCY[SupportedChainId.MAINNET] as Token,\n ],\n [SupportedChainId.GOERLI]: [\n nativeOnChain(SupportedChainId.GOERLI),\n WRAPPED_NATIVE_CURRENCY[SupportedChainId.GOERLI] as Token,\n ],\n [SupportedChainId.KOVAN]: [\n nativeOnChain(SupportedChainId.KOVAN),\n WRAPPED_NATIVE_CURRENCY[SupportedChainId.KOVAN] as Token,\n ],\n [SupportedChainId.ARBITRUM_ONE]: [\n nativeOnChain(SupportedChainId.ARBITRUM_ONE),\n DAI_ARBITRUM_ONE,\n USDC_ARBITRUM,\n USDT_ARBITRUM_ONE,\n WBTC_ARBITRUM_ONE,\n WRAPPED_NATIVE_CURRENCY[SupportedChainId.ARBITRUM_ONE] as Token,\n ],\n [SupportedChainId.ARBITRUM_RINKEBY]: [\n nativeOnChain(SupportedChainId.ARBITRUM_RINKEBY),\n WRAPPED_NATIVE_CURRENCY[SupportedChainId.ARBITRUM_RINKEBY] as Token,\n ],\n [SupportedChainId.OPTIMISM]: [\n nativeOnChain(SupportedChainId.OPTIMISM),\n DAI_OPTIMISM,\n USDC_OPTIMISM,\n USDT_OPTIMISM,\n WBTC_OPTIMISM,\n ],\n [SupportedChainId.OPTIMISTIC_KOVAN]: [nativeOnChain(SupportedChainId.OPTIMISTIC_KOVAN)],\n [SupportedChainId.POLYGON]: [\n nativeOnChain(SupportedChainId.POLYGON),\n WETH_POLYGON,\n USDC_POLYGON,\n DAI_POLYGON,\n USDT_POLYGON,\n WBTC_POLYGON,\n ],\n [SupportedChainId.POLYGON_MUMBAI]: [\n nativeOnChain(SupportedChainId.POLYGON_MUMBAI),\n WRAPPED_NATIVE_CURRENCY[SupportedChainId.POLYGON_MUMBAI] as Token,\n WETH_POLYGON_MUMBAI,\n ],\n}\n\n// used to construct the list of all pairs we consider by default in the frontend\nexport const BASES_TO_TRACK_LIQUIDITY_FOR: ChainTokenList = {\n ...WRAPPED_NATIVE_CURRENCIES_ONLY,\n [SupportedChainId.MAINNET]: [\n ...WRAPPED_NATIVE_CURRENCIES_ONLY[SupportedChainId.MAINNET],\n DAI,\n USDC_MAINNET,\n USDT,\n WBTC,\n ],\n}\nexport const PINNED_PAIRS: { readonly [chainId: number]: [Token, Token][] } = {\n [SupportedChainId.MAINNET]: [\n [\n new Token(SupportedChainId.MAINNET, '0x5d3a536E4D6DbD6114cc1Ead35777bAB948E3643', 8, 'cDAI', 'Compound Dai'),\n new Token(\n SupportedChainId.MAINNET,\n '0x39AA39c021dfbaE8faC545936693aC917d5E7563',\n 8,\n 'cUSDC',\n 'Compound USD Coin'\n ),\n ],\n [USDC_MAINNET, USDT],\n [DAI, USDT],\n ],\n}\n","import { Currency, Token } from '@uniswap/sdk-core'\nimport { useMemo } from 'react'\n\nimport { ADDITIONAL_BASES, BASES_TO_CHECK_TRADES_AGAINST, CUSTOM_BASES } from '../constants/routing'\n\nexport function useAllCurrencyCombinations(currencyA?: Currency, currencyB?: Currency): [Token, Token][] {\n const chainId = currencyA?.chainId\n\n const [tokenA, tokenB] = chainId ? [currencyA?.wrapped, currencyB?.wrapped] : [undefined, undefined]\n\n const bases: Token[] = useMemo(() => {\n if (!chainId || chainId !== tokenB?.chainId) return []\n\n const common = BASES_TO_CHECK_TRADES_AGAINST[chainId] ?? []\n const additionalA = tokenA ? ADDITIONAL_BASES[chainId]?.[tokenA.address] ?? [] : []\n const additionalB = tokenB ? ADDITIONAL_BASES[chainId]?.[tokenB.address] ?? [] : []\n\n return [...common, ...additionalA, ...additionalB]\n }, [chainId, tokenA, tokenB])\n\n const basePairs: [Token, Token][] = useMemo(\n () =>\n bases\n .flatMap((base): [Token, Token][] => bases.map((otherBase) => [base, otherBase]))\n // though redundant with the first filter below, that expression runs more often, so this is probably worthwhile\n .filter(([t0, t1]) => !t0.equals(t1)),\n [bases]\n )\n\n return useMemo(\n () =>\n tokenA && tokenB\n ? [\n // the direct pair\n [tokenA, tokenB] as [Token, Token],\n // token A against all bases\n ...bases.map((base): [Token, Token] => [tokenA, base]),\n // token B against all bases\n ...bases.map((base): [Token, Token] => [tokenB, base]),\n // each base against all bases\n ...basePairs,\n ]\n // filter out invalid pairs comprised of the same asset (e.g. WETH<>WETH)\n .filter(([t0, t1]) => !t0.equals(t1))\n // filter out duplicate pairs\n .filter(([t0, t1], i, otherPairs) => {\n // find the first index in the array at which there are the same 2 tokens as the current\n const firstIndexInOtherPairs = otherPairs.findIndex(([t0Other, t1Other]) => {\n return (t0.equals(t0Other) && t1.equals(t1Other)) || (t0.equals(t1Other) && t1.equals(t0Other))\n })\n // only accept the first occurrence of the same 2 tokens\n return firstIndexInOtherPairs === i\n })\n // optionally filter out some pairs for tokens with custom bases defined\n .filter(([tokenA, tokenB]) => {\n if (!chainId) return true\n const customBases = CUSTOM_BASES[chainId]\n\n const customBasesA: Token[] | undefined = customBases?.[tokenA.address]\n const customBasesB: Token[] | undefined = customBases?.[tokenB.address]\n\n if (!customBasesA && !customBasesB) return true\n\n if (customBasesA && !customBasesA.find((base) => tokenB.equals(base))) return false\n if (customBasesB && !customBasesB.find((base) => tokenA.equals(base))) return false\n\n return true\n })\n : [],\n [tokenA, tokenB, bases, basePairs, chainId]\n )\n}\n","import { BigintIsh, Price, sqrt, Token, CurrencyAmount } from '@uniswap/sdk-core'\nimport invariant from 'tiny-invariant'\nimport JSBI from 'jsbi'\nimport { pack, keccak256 } from '@ethersproject/solidity'\nimport { getCreate2Address } from '@ethersproject/address'\nimport { InsufficientInputAmountError } from '@uniswap/v2-sdk'\n\nconst ZERO = JSBI.BigInt(0)\nconst FIVE = JSBI.BigInt(5)\nconst MINIMUM_LIQUIDITY = JSBI.BigInt(1000)\n\nexport const computePairAddress = ({\n factoryAddress,\n tokenA,\n tokenB,\n codeHash\n}: {\n factoryAddress: string\n tokenA: Token\n tokenB: Token\n codeHash: string\n}): string => {\n const [token0, token1] = tokenA.sortsBefore(tokenB) ? [tokenA, tokenB] : [tokenB, tokenA] // does safety checks\n return getCreate2Address(\n factoryAddress,\n keccak256(['bytes'], [pack(['address', 'address'], [token0.address, token1.address])]),\n codeHash\n )\n}\nexport class Pair {\n public readonly liquidityToken: Token\n private readonly tokenAmounts: [CurrencyAmount, CurrencyAmount]\n\n public static getAddress(factoryAddress:string, tokenA: Token, tokenB: Token, codeHash: string): string {\n return computePairAddress({ factoryAddress, tokenA, tokenB, codeHash })\n }\n\n public constructor(currencyAmountA: CurrencyAmount, tokenAmountB: CurrencyAmount, factoryAddress: string, codeHash: string) {\n const tokenAmounts = currencyAmountA.currency.sortsBefore(tokenAmountB.currency) // does safety checks\n ? [currencyAmountA, tokenAmountB]\n : [tokenAmountB, currencyAmountA]\n this.liquidityToken = new Token(\n tokenAmounts[0].currency.chainId,\n Pair.getAddress(factoryAddress, tokenAmounts[0].currency, tokenAmounts[1].currency, codeHash),\n 18,\n 'UNI-V2',\n 'Uniswap V2'\n )\n this.tokenAmounts = tokenAmounts as [CurrencyAmount, CurrencyAmount]\n }\n\n /**\n * Returns true if the token is either token0 or token1\n * @param token to check\n */\n public involvesToken(token: Token): boolean {\n return token.equals(this.token0) || token.equals(this.token1)\n }\n\n /**\n * Returns the current mid price of the pair in terms of token0, i.e. the ratio of reserve1 to reserve0\n */\n public get token0Price(): Price {\n const result = this.tokenAmounts[1].divide(this.tokenAmounts[0])\n return new Price(this.token0, this.token1, result.denominator, result.numerator)\n }\n\n /**\n * Returns the current mid price of the pair in terms of token1, i.e. the ratio of reserve0 to reserve1\n */\n public get token1Price(): Price {\n const result = this.tokenAmounts[0].divide(this.tokenAmounts[1])\n return new Price(this.token1, this.token0, result.denominator, result.numerator)\n }\n\n /**\n * Return the price of the given token in terms of the other token in the pair.\n * @param token token to return price of\n */\n public priceOf(token: Token): Price {\n invariant(this.involvesToken(token), 'TOKEN')\n return token.equals(this.token0) ? this.token0Price : this.token1Price\n }\n\n /**\n * Returns the chain ID of the tokens in the pair.\n */\n public get chainId(): number {\n return this.token0.chainId\n }\n\n public get token0(): Token {\n return this.tokenAmounts[0].currency\n }\n\n public get token1(): Token {\n return this.tokenAmounts[1].currency\n }\n\n public get reserve0(): CurrencyAmount {\n return this.tokenAmounts[0]\n }\n\n public get reserve1(): CurrencyAmount {\n return this.tokenAmounts[1]\n }\n\n public reserveOf(token: Token): CurrencyAmount {\n invariant(this.involvesToken(token), 'TOKEN')\n return token.equals(this.token0) ? this.reserve0 : this.reserve1\n }\n\n public getLiquidityMinted(\n totalSupply: CurrencyAmount,\n tokenAmountA: CurrencyAmount,\n tokenAmountB: CurrencyAmount\n ): CurrencyAmount {\n invariant(totalSupply.currency.equals(this.liquidityToken), 'LIQUIDITY')\n const tokenAmounts = tokenAmountA.currency.sortsBefore(tokenAmountB.currency) // does safety checks\n ? [tokenAmountA, tokenAmountB]\n : [tokenAmountB, tokenAmountA]\n invariant(tokenAmounts[0].currency.equals(this.token0) && tokenAmounts[1].currency.equals(this.token1), 'TOKEN')\n\n let liquidity: JSBI\n if (JSBI.equal(totalSupply.quotient, ZERO)) {\n liquidity = JSBI.subtract(\n sqrt(JSBI.multiply(tokenAmounts[0].quotient, tokenAmounts[1].quotient)),\n MINIMUM_LIQUIDITY\n )\n } else {\n const amount0 = JSBI.divide(JSBI.multiply(tokenAmounts[0].quotient, totalSupply.quotient), this.reserve0.quotient)\n const amount1 = JSBI.divide(JSBI.multiply(tokenAmounts[1].quotient, totalSupply.quotient), this.reserve1.quotient)\n liquidity = JSBI.lessThanOrEqual(amount0, amount1) ? amount0 : amount1\n }\n if (!JSBI.greaterThan(liquidity, ZERO)) {\n throw new InsufficientInputAmountError()\n }\n return CurrencyAmount.fromRawAmount(this.liquidityToken, liquidity)\n }\n\n public getLiquidityValue(\n token: Token,\n totalSupply: CurrencyAmount,\n liquidity: CurrencyAmount,\n feeOn: boolean,\n kLast?: BigintIsh\n ): CurrencyAmount {\n invariant(this.involvesToken(token), 'TOKEN')\n invariant(totalSupply.currency.equals(this.liquidityToken), 'TOTAL_SUPPLY')\n invariant(liquidity.currency.equals(this.liquidityToken), 'LIQUIDITY')\n invariant(JSBI.lessThanOrEqual(liquidity.quotient, totalSupply.quotient), 'LIQUIDITY')\n\n let totalSupplyAdjusted: CurrencyAmount\n if (!feeOn) {\n totalSupplyAdjusted = totalSupply\n } else {\n invariant(!!kLast, 'K_LAST')\n const kLastParsed = JSBI.BigInt(kLast)\n if (!JSBI.equal(kLastParsed, ZERO)) {\n const rootK = sqrt(JSBI.multiply(this.reserve0.quotient, this.reserve1.quotient))\n const rootKLast = sqrt(kLastParsed)\n if (JSBI.greaterThan(rootK, rootKLast)) {\n const numerator = JSBI.multiply(totalSupply.quotient, JSBI.subtract(rootK, rootKLast))\n const denominator = JSBI.add(JSBI.multiply(rootK, FIVE), rootKLast)\n const feeLiquidity = JSBI.divide(numerator, denominator)\n totalSupplyAdjusted = totalSupply.add(CurrencyAmount.fromRawAmount(this.liquidityToken, feeLiquidity))\n } else {\n totalSupplyAdjusted = totalSupply\n }\n } else {\n totalSupplyAdjusted = totalSupply\n }\n }\n\n return CurrencyAmount.fromRawAmount(\n token,\n JSBI.divide(JSBI.multiply(liquidity.quotient, this.reserveOf(token).quotient), totalSupplyAdjusted.quotient)\n )\n }\n}\n","export default \"data:image/png;base64,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\"","export default __webpack_public_path__ + \"static/media/arbitrum_logo.ec8e5080.svg\";","export default __webpack_public_path__ + \"static/media/aurora-logo.e07e6b26.svg\";","export default __webpack_public_path__ + \"static/media/celo-logo.e95fad7b.svg\";","export default __webpack_public_path__ + \"static/media/optimistic_ethereum.34412af2.svg\";","export default __webpack_public_path__ + \"static/media/polygon-matic-logo.97ff139c.svg\";","import ethereumLogoUrl from \"assets/images/ethereum-logo.png\";\nimport arbitrumLogoUrl from \"assets/svg/arbitrum_logo.svg\";\nimport auroraLogoUrl from \"assets/svg/aurora-logo.svg\";\nimport celoLogoUrl from \"assets/svg/celo-logo.svg\";\nimport optimismLogoUrl from \"assets/svg/optimistic_ethereum.svg\";\nimport polygonMaticLogo from \"assets/svg/polygon-matic-logo.svg\";\nimport ms from \"ms.macro\";\n\nimport {\n SupportedChainId,\n SupportedL1ChainId,\n SupportedL2ChainId\n} from \"./chains\";\nimport { ARBITRUM_LIST, CELO_LIST, OPTIMISM_LIST } from \"./lists\";\n\nexport enum NetworkType {\n L1,\n L2,\n}\n\ninterface BaseChainInfo {\n readonly networkType: NetworkType\n readonly blockWaitMsBeforeWarning?: number\n readonly docs: string\n readonly bridge?: string\n readonly explorer: string\n readonly infoLink: string\n readonly logoUrl: string\n readonly label: string\n readonly helpCenterUrl?: string\n readonly nativeCurrency: {\n name: string // e.g. 'Goerli ETH',\n symbol: string // e.g. 'gorETH',\n decimals: number // e.g. 18,\n }\n}\n\nexport interface L1ChainInfo extends BaseChainInfo {\n readonly networkType: NetworkType.L1\n readonly defaultListUrl?: string\n}\n\nexport interface L2ChainInfo extends BaseChainInfo {\n readonly networkType: NetworkType.L2\n readonly bridge: string\n readonly statusPage?: string\n readonly defaultListUrl: string\n}\n\nexport type ChainInfoMap = { readonly [chainId: number]: L1ChainInfo | L2ChainInfo } & {\n readonly [chainId in SupportedL2ChainId]: L2ChainInfo\n} & { readonly [chainId in SupportedL1ChainId]: L1ChainInfo }\n\nexport const CHAIN_INFO: ChainInfoMap = {\n [SupportedChainId.MAINNET]: {\n networkType: NetworkType.L1,\n docs: 'https://docs.uniswap.org/',\n explorer: 'https://etherscan.io/',\n infoLink: 'https://info.uniswap.org/#/',\n label: 'Ethereum',\n logoUrl: ethereumLogoUrl,\n nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },\n },\n [SupportedChainId.KOVAN]: {\n networkType: NetworkType.L1,\n docs: 'https://docs.uniswap.org/',\n explorer: 'https://kovan.etherscan.io/',\n infoLink: 'https://info.uniswap.org/#/',\n label: 'Kovan',\n logoUrl: ethereumLogoUrl,\n nativeCurrency: { name: 'Kovan Ether', symbol: 'kovETH', decimals: 18 },\n },\n [SupportedChainId.CELO]: {\n networkType: NetworkType.L1,\n docs: 'https://docs.celo.org/',\n explorer: 'https://celoscan.io/',\n infoLink: 'https://info.uniswap.org/#/celo/',\n label: 'Celo',\n logoUrl: celoLogoUrl,\n nativeCurrency: { name: 'Celo', symbol: 'CELO', decimals: 18 },\n defaultListUrl: CELO_LIST,\n },\n [SupportedChainId.ALFAJORES]: {\n networkType: NetworkType.L1,\n docs: 'https://docs.celo.org/',\n explorer: 'https://alfajores.celoscan.io/',\n infoLink: 'https://info.uniswap.org/#/celo/',\n label: 'Celo Alfajores',\n logoUrl: celoLogoUrl,\n nativeCurrency: { name: 'Celo', symbol: 'CELO', decimals: 18 },\n defaultListUrl: CELO_LIST,\n },\n [SupportedChainId.AURORA]: {\n networkType: NetworkType.L1,\n docs: 'https://doc.aurora.dev/',\n explorer: 'https://aurorascan.dev/',\n infoLink: 'https://aurora.dev/',\n label: 'Aurora',\n logoUrl: auroraLogoUrl,\n nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },\n },\n [SupportedChainId.AURORA_TEST]: {\n networkType: NetworkType.L1,\n docs: 'https://doc.aurora.dev/',\n explorer: 'https://testnet.aurorascan.dev/',\n infoLink: 'https://aurora.dev/',\n label: 'Aurora Testnet',\n logoUrl: auroraLogoUrl,\n nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },\n },\n [SupportedChainId.GOERLI]: {\n networkType: NetworkType.L1,\n docs: 'https://docs.uniswap.org/',\n explorer: 'https://goerli.etherscan.io/',\n infoLink: 'https://info.uniswap.org/#/',\n label: 'Görli',\n logoUrl: ethereumLogoUrl,\n nativeCurrency: { name: 'Görli Ether', symbol: 'görETH', decimals: 18 },\n },\n [SupportedChainId.OPTIMISM]: {\n networkType: NetworkType.L2,\n blockWaitMsBeforeWarning: ms`25m`,\n bridge: 'https://gateway.optimism.io/?chainId=1',\n defaultListUrl: OPTIMISM_LIST,\n docs: 'https://optimism.io/',\n explorer: 'https://optimistic.etherscan.io/',\n infoLink: 'https://info.uniswap.org/#/optimism/',\n label: 'Optimism',\n logoUrl: optimismLogoUrl,\n statusPage: 'https://optimism.io/status',\n helpCenterUrl: 'https://help.uniswap.org/en/collections/3137778-uniswap-on-optimistic-ethereum-oξ',\n nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },\n },\n [SupportedChainId.OPTIMISTIC_KOVAN]: {\n networkType: NetworkType.L2,\n blockWaitMsBeforeWarning: ms`25m`,\n bridge: 'https://gateway.optimism.io/',\n defaultListUrl: OPTIMISM_LIST,\n docs: 'https://optimism.io/',\n explorer: 'https://optimistic.etherscan.io/',\n infoLink: 'https://info.uniswap.org/#/optimism/',\n label: 'Optimistic Kovan',\n logoUrl: optimismLogoUrl,\n statusPage: 'https://optimism.io/status',\n helpCenterUrl: 'https://help.uniswap.org/en/collections/3137778-uniswap-on-optimistic-ethereum-oξ',\n nativeCurrency: { name: 'Optimistic Kovan Ether', symbol: 'kovOpETH', decimals: 18 },\n },\n [SupportedChainId.ARBITRUM_ONE]: {\n networkType: NetworkType.L2,\n blockWaitMsBeforeWarning: ms`10m`,\n bridge: 'https://bridge.arbitrum.io/',\n docs: 'https://offchainlabs.com/',\n explorer: 'https://arbiscan.io/',\n infoLink: 'https://info.uniswap.org/#/arbitrum',\n label: 'Arbitrum',\n logoUrl: arbitrumLogoUrl,\n defaultListUrl: ARBITRUM_LIST,\n helpCenterUrl: 'https://help.uniswap.org/en/collections/3137787-uniswap-on-arbitrum',\n nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },\n },\n [SupportedChainId.ARBITRUM_RINKEBY]: {\n networkType: NetworkType.L2,\n blockWaitMsBeforeWarning: ms`10m`,\n bridge: 'https://bridge.arbitrum.io/',\n docs: 'https://offchainlabs.com/',\n explorer: 'https://rinkeby-explorer.arbitrum.io/',\n infoLink: 'https://info.uniswap.org/#/arbitrum/',\n label: 'Arbitrum Rinkeby',\n logoUrl: arbitrumLogoUrl,\n defaultListUrl: ARBITRUM_LIST,\n helpCenterUrl: 'https://help.uniswap.org/en/collections/3137787-uniswap-on-arbitrum',\n nativeCurrency: { name: 'Rinkeby Arbitrum Ether', symbol: 'rinkArbETH', decimals: 18 },\n },\n [SupportedChainId.POLYGON]: {\n networkType: NetworkType.L1,\n blockWaitMsBeforeWarning: ms`10m`,\n bridge: 'https://wallet.polygon.technology/bridge',\n docs: 'https://polygon.io/',\n explorer: 'https://polygonscan.com/',\n infoLink: 'https://info.uniswap.org/#/polygon/',\n label: 'Polygon',\n logoUrl: polygonMaticLogo,\n nativeCurrency: { name: 'Polygon Matic', symbol: 'MATIC', decimals: 18 },\n },\n [SupportedChainId.POLYGON_MUMBAI]: {\n networkType: NetworkType.L1,\n blockWaitMsBeforeWarning: ms`10m`,\n bridge: 'https://wallet.polygon.technology/bridge',\n docs: 'https://polygon.io/',\n explorer: 'https://mumbai.polygonscan.com/',\n infoLink: 'https://info.uniswap.org/#/polygon/',\n label: 'Polygon Mumbai',\n logoUrl: polygonMaticLogo,\n nativeCurrency: { name: 'Polygon Mumbai Matic', symbol: 'mMATIC', decimals: 18 },\n },\n}\n\nexport function getChainInfo(chainId: SupportedL1ChainId): L1ChainInfo\nexport function getChainInfo(chainId: SupportedL2ChainId): L2ChainInfo\nexport function getChainInfo(chainId: SupportedChainId): L1ChainInfo | L2ChainInfo\nexport function getChainInfo(\n chainId: SupportedChainId | SupportedL1ChainId | SupportedL2ChainId | number | undefined\n): L1ChainInfo | L2ChainInfo | undefined\n\n/**\n * Overloaded method for returning ChainInfo given a chainID\n * Return type varies depending on input type:\n * number | undefined -> returns chaininfo | undefined\n * SupportedChainId -> returns L1ChainInfo | L2ChainInfo\n * SupportedL1ChainId -> returns L1ChainInfo\n * SupportedL2ChainId -> returns L2ChainInfo\n */\nexport function getChainInfo(chainId: any): any {\n if (chainId) {\n return CHAIN_INFO[chainId] ?? undefined\n }\n return undefined\n}\n","import { SupportedChainId } from '../constants/chains'\n\n/**\n * Returns the input chain ID if chain is supported. If not, return undefined\n * @param chainId a chain ID, which will be returned if it is a supported chain ID\n */\nexport function supportedChainId(chainId: number | undefined): SupportedChainId | undefined {\n if (typeof chainId === 'number' && chainId in SupportedChainId) {\n return chainId\n }\n return undefined\n}\n","import { Provider } from \"@ethersproject/abstract-provider\";\nimport { Contract } from \"@ethersproject/contracts\";\nimport { namehash } from \"@ethersproject/hash\";\n\nconst REGISTRAR_ABI = [\n {\n constant: true,\n inputs: [\n {\n name: 'node',\n type: 'bytes32',\n },\n ],\n name: 'resolver',\n outputs: [\n {\n name: 'resolverAddress',\n type: 'address',\n },\n ],\n payable: false,\n stateMutability: 'view',\n type: 'function',\n },\n]\nconst REGISTRAR_ADDRESS = '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e'\n\nconst RESOLVER_ABI = [\n {\n constant: true,\n inputs: [\n {\n internalType: 'bytes32',\n name: 'node',\n type: 'bytes32',\n },\n ],\n name: 'contenthash',\n outputs: [\n {\n internalType: 'bytes',\n name: '',\n type: 'bytes',\n },\n ],\n payable: false,\n stateMutability: 'view',\n type: 'function',\n },\n]\n\n// cache the resolver contracts since most of them are the public resolver\nfunction resolverContract(resolverAddress: string, provider: Provider): Contract {\n return new Contract(resolverAddress, RESOLVER_ABI, provider)\n}\n\n/**\n * Fetches and decodes the result of an ENS contenthash lookup on mainnet to a URI\n * @param ensName to resolve\n * @param provider provider to use to fetch the data\n */\nexport default async function resolveENSContentHash(ensName: string, provider: Provider): Promise {\n const ensRegistrarContract = new Contract(REGISTRAR_ADDRESS, REGISTRAR_ABI, provider)\n const hash = namehash(ensName)\n const resolverAddress = await ensRegistrarContract.resolver(hash)\n return resolverContract(resolverAddress, provider).contenthash(hash)\n}\n","import CID from 'cids'\nimport { getNameFromData, rmPrefix } from 'multicodec'\nimport { decode, toB58String } from 'multihashes'\n\nexport function hexToUint8Array(hex: string): Uint8Array {\n hex = hex.startsWith('0x') ? hex.substr(2) : hex\n if (hex.length % 2 !== 0) throw new Error('hex must have length that is multiple of 2')\n const arr = new Uint8Array(hex.length / 2)\n for (let i = 0; i < arr.length; i++) {\n arr[i] = parseInt(hex.substr(i * 2, 2), 16)\n }\n return arr\n}\n\nconst UTF_8_DECODER = new TextDecoder('utf-8')\n\n/**\n * Returns the URI representation of the content hash for supported codecs\n * @param contenthash to decode\n */\nexport default function contenthashToUri(contenthash: string): string {\n const data = hexToUint8Array(contenthash)\n const codec = getNameFromData(data)\n switch (codec) {\n case 'ipfs-ns': {\n const unprefixedData = rmPrefix(data)\n const cid = new CID(unprefixedData)\n return `ipfs://${toB58String(cid.multihash)}`\n }\n case 'ipns-ns': {\n const unprefixedData = rmPrefix(data)\n const cid = new CID(unprefixedData)\n const multihash = decode(cid.multihash)\n if (multihash.name === 'identity') {\n return `ipns://${UTF_8_DECODER.decode(multihash.digest).trim()}`\n } else {\n return `ipns://${toB58String(cid.multihash)}`\n }\n }\n default:\n throw new Error(`Unrecognized codec: ${codec}`)\n }\n}\n","const ENS_NAME_REGEX = /^(([a-zA-Z0-9]+(-[a-zA-Z0-9]+)*\\.)+)eth(\\/.*)?$/\n\nexport default function parseENSAddress(\n ensAddress: string\n): { ensName: string; ensPath: string | undefined } | undefined {\n const match = ensAddress.match(ENS_NAME_REGEX)\n if (!match) return undefined\n return { ensName: `${match[1].toLowerCase()}eth`, ensPath: match[4] }\n}\n","/**\n * Given a URI that may be ipfs, ipns, http, https, ar, or data protocol, return the fetch-able http(s) URLs for the same content\n * @param uri to convert to fetch-able http url\n */\nexport default function uriToHttp(uri: string): string[] {\n const protocol = uri.split(':')[0].toLowerCase()\n switch (protocol) {\n case 'data':\n return [uri]\n case 'https':\n return [uri]\n case 'http':\n return ['https' + uri.substr(4), uri]\n case 'ipfs':\n const hash = uri.match(/^ipfs:(\\/\\/)?(.*)$/i)?.[2]\n return [`https://cloudflare-ipfs.com/ipfs/${hash}/`, `https://ipfs.io/ipfs/${hash}/`]\n case 'ipns':\n const name = uri.match(/^ipns:(\\/\\/)?(.*)$/i)?.[2]\n return [`https://cloudflare-ipfs.com/ipns/${name}/`, `https://ipfs.io/ipns/${name}/`]\n case 'ar':\n const tx = uri.match(/^ar:(\\/\\/)?(.*)$/i)?.[2]\n return [`https://arweave.net/${tx}`]\n default:\n return []\n }\n}\n","import type { TokenInfo, TokenList } from '@uniswap/token-lists'\nimport type { Ajv, ValidateFunction } from 'ajv'\n\nenum ValidationSchema {\n LIST = 'list',\n TOKENS = 'tokens',\n}\n\nconst validator = new Promise(async (resolve) => {\n const [ajv, schema] = await Promise.all([import('ajv'), import('@uniswap/token-lists/src/tokenlist.schema.json')])\n const validator = new ajv.default({ allErrors: true })\n .addSchema(schema, ValidationSchema.LIST)\n // Adds a meta scheme of Pick\n .addSchema(\n {\n ...schema,\n $id: schema.$id + '#tokens',\n required: ['tokens'],\n },\n ValidationSchema.TOKENS\n )\n resolve(validator)\n})\n\nfunction getValidationErrors(validate: ValidateFunction | undefined): string {\n return (\n validate?.errors?.map((error) => [error.dataPath, error.message].filter(Boolean).join(' ')).join('; ') ??\n 'unknown error'\n )\n}\n\n/**\n * Validates an array of tokens.\n * @param json the TokenInfo[] to validate\n */\nexport async function validateTokens(json: TokenInfo[]): Promise {\n const validate = (await validator).getSchema(ValidationSchema.TOKENS)\n if (validate?.({ tokens: json })) {\n return json\n }\n throw new Error(`Token list failed validation: ${getValidationErrors(validate)}`)\n}\n\n/**\n * Validates a token list.\n * @param json the TokenList to validate\n */\nexport default async function validateTokenList(json: TokenList): Promise {\n const validate = (await validator).getSchema(ValidationSchema.LIST)\n if (validate?.(json)) {\n return json\n }\n throw new Error(`Token list failed validation: ${getValidationErrors(validate)}`)\n}\n","import type { TokenList } from '@uniswap/token-lists'\nimport contenthashToUri from 'lib/utils/contenthashToUri'\nimport parseENSAddress from 'lib/utils/parseENSAddress'\nimport uriToHttp from 'lib/utils/uriToHttp'\n\nimport validateTokenList from './validateTokenList'\n\nexport const DEFAULT_TOKEN_LIST = 'https://gateway.ipfs.io/ipns/tokens.uniswap.org'\n\nconst listCache = new Map()\n\n/** Fetches and validates a token list. */\nexport default async function fetchTokenList(\n listUrl: string,\n resolveENSContentHash: (ensName: string) => Promise\n): Promise {\n const cached = listCache?.get(listUrl) // avoid spurious re-fetches\n if (cached) {\n return cached\n }\n\n let urls: string[]\n const parsedENS = parseENSAddress(listUrl)\n if (parsedENS) {\n let contentHashUri\n try {\n contentHashUri = await resolveENSContentHash(parsedENS.ensName)\n } catch (error) {\n const message = `failed to resolve ENS name: ${parsedENS.ensName}`\n console.debug(message, error)\n throw new Error(message)\n }\n let translatedUri\n try {\n translatedUri = contenthashToUri(contentHashUri)\n } catch (error) {\n const message = `failed to translate contenthash to URI: ${contentHashUri}`\n console.debug(message, error)\n throw new Error(message)\n }\n urls = uriToHttp(`${translatedUri}${parsedENS.ensPath ?? ''}`)\n } else {\n urls = uriToHttp(listUrl)\n }\n\n for (let i = 0; i < urls.length; i++) {\n const url = urls[i]\n const isLast = i === urls.length - 1\n let response\n try {\n response = await fetch(url, { credentials: 'omit' })\n } catch (error) {\n const message = `failed to fetch list: ${listUrl}`\n console.debug(message, error)\n if (isLast) throw new Error(message)\n continue\n }\n\n if (!response.ok) {\n const message = `failed to fetch list: ${listUrl}`\n console.debug(message, response.statusText)\n if (isLast) throw new Error(message)\n continue\n }\n\n const json = await response.json()\n const list = await validateTokenList(json)\n listCache?.set(listUrl, list)\n return list\n }\n\n throw new Error('Unrecognized list URL protocol.')\n}\n","import { Interface } from '@ethersproject/abi'\nimport { Currency, CurrencyAmount, Token } from '@uniswap/sdk-core'\nimport ERC20ABI from 'abis/erc20.json'\nimport { Erc20Interface } from 'abis/types/Erc20'\nimport useActiveWeb3React from 'hooks/useActiveWeb3React'\nimport JSBI from 'jsbi'\nimport { useMultipleContractSingleData, useSingleContractMultipleData } from 'lib/hooks/multicall'\nimport { useMemo } from 'react'\n\nimport { nativeOnChain } from '../../constants/tokens'\nimport { useInterfaceMulticall } from '../../hooks/useContract'\nimport { isAddress } from '../../utils'\n\n/**\n * Returns a map of the given addresses to their eventually consistent ETH balances.\n */\nexport function useNativeCurrencyBalances(uncheckedAddresses?: (string | undefined)[]): {\n [address: string]: CurrencyAmount | undefined\n} {\n const { chainId } = useActiveWeb3React()\n const multicallContract = useInterfaceMulticall()\n\n const validAddressInputs: [string][] = useMemo(\n () =>\n uncheckedAddresses\n ? uncheckedAddresses\n .map(isAddress)\n .filter((a): a is string => a !== false)\n .sort()\n .map((addr) => [addr])\n : [],\n [uncheckedAddresses]\n )\n\n const results = useSingleContractMultipleData(multicallContract, 'getEthBalance', validAddressInputs)\n\n return useMemo(\n () =>\n validAddressInputs.reduce<{ [address: string]: CurrencyAmount }>((memo, [address], i) => {\n const value = results?.[i]?.result?.[0]\n if (value && chainId)\n memo[address] = CurrencyAmount.fromRawAmount(nativeOnChain(chainId), JSBI.BigInt(value.toString()))\n return memo\n }, {}),\n [validAddressInputs, chainId, results]\n )\n}\n\nconst ERC20Interface = new Interface(ERC20ABI) as Erc20Interface\nconst tokenBalancesGasRequirement = { gasRequired: 125_000 }\n\n/**\n * Returns a map of token addresses to their eventually consistent token balances for a single account.\n */\nexport function useTokenBalancesWithLoadingIndicator(\n address?: string,\n tokens?: (Token | undefined)[]\n): [{ [tokenAddress: string]: CurrencyAmount | undefined }, boolean] {\n const validatedTokens: Token[] = useMemo(\n () => tokens?.filter((t?: Token): t is Token => isAddress(t?.address) !== false) ?? [],\n [tokens]\n )\n const validatedTokenAddresses = useMemo(() => validatedTokens.map((vt) => vt.address), [validatedTokens])\n\n const balances = useMultipleContractSingleData(\n validatedTokenAddresses,\n ERC20Interface,\n 'balanceOf',\n useMemo(() => [address], [address]),\n tokenBalancesGasRequirement\n )\n\n const anyLoading: boolean = useMemo(() => balances.some((callState) => callState.loading), [balances])\n\n return useMemo(\n () => [\n address && validatedTokens.length > 0\n ? validatedTokens.reduce<{ [tokenAddress: string]: CurrencyAmount | undefined }>((memo, token, i) => {\n const value = balances?.[i]?.result?.[0]\n const amount = value ? JSBI.BigInt(value.toString()) : undefined\n if (amount) {\n memo[token.address] = CurrencyAmount.fromRawAmount(token, amount)\n }\n return memo\n }, {})\n : {},\n anyLoading,\n ],\n [address, validatedTokens, anyLoading, balances]\n )\n}\n\nexport function useTokenBalances(\n address?: string,\n tokens?: (Token | undefined)[]\n): { [tokenAddress: string]: CurrencyAmount | undefined } {\n return useTokenBalancesWithLoadingIndicator(address, tokens)[0]\n}\n\n// get the balance for a single token/account combo\nexport function useTokenBalance(account?: string, token?: Token): CurrencyAmount | undefined {\n const tokenBalances = useTokenBalances(\n account,\n useMemo(() => [token], [token])\n )\n if (!token) return undefined\n return tokenBalances[token.address]\n}\n\nexport function useCurrencyBalances(\n account?: string,\n currencies?: (Currency | undefined)[]\n): (CurrencyAmount | undefined)[] {\n const tokens = useMemo(\n () => currencies?.filter((currency): currency is Token => currency?.isToken ?? false) ?? [],\n [currencies]\n )\n\n const tokenBalances = useTokenBalances(account, tokens)\n const containsETH: boolean = useMemo(() => currencies?.some((currency) => currency?.isNative) ?? false, [currencies])\n const ethBalance = useNativeCurrencyBalances(useMemo(() => (containsETH ? [account] : []), [containsETH, account]))\n\n return useMemo(\n () =>\n currencies?.map((currency) => {\n if (!account || !currency) return undefined\n if (currency.isToken) return tokenBalances[currency.address]\n if (currency.isNative) return ethBalance[account]\n return undefined\n }) ?? [],\n [account, currencies, ethBalance, tokenBalances]\n )\n}\n\nexport default function useCurrencyBalance(\n account?: string,\n currency?: Currency\n): CurrencyAmount | undefined {\n return useCurrencyBalances(\n account,\n useMemo(() => [currency], [currency])\n )[0]\n}\n","import { NativeCurrency, Token } from '@uniswap/sdk-core'\nimport { TokenInfo } from '@uniswap/token-lists'\n\nimport { isAddress } from '../../../utils'\n\nconst alwaysTrue = () => true\n\n/** Creates a filter function that filters tokens that do not match the query. */\nexport function getTokenFilter(query: string): (token: T | NativeCurrency) => boolean {\n const searchingAddress = isAddress(query)\n\n if (searchingAddress) {\n const address = searchingAddress.toLowerCase()\n return (t: T | NativeCurrency) => 'address' in t && address === t.address.toLowerCase()\n }\n\n const queryParts = query\n .toLowerCase()\n .split(/\\s+/)\n .filter((s) => s.length > 0)\n\n if (queryParts.length === 0) return alwaysTrue\n\n const match = (s: string): boolean => {\n const parts = s\n .toLowerCase()\n .split(/\\s+/)\n .filter((s) => s.length > 0)\n\n return queryParts.every((p) => p.length === 0 || parts.some((sp) => sp.startsWith(p) || sp.endsWith(p)))\n }\n\n return ({ name, symbol }: T | NativeCurrency): boolean => Boolean((symbol && match(symbol)) || (name && match(name)))\n}\n","import { Currency, CurrencyAmount, Token } from '@uniswap/sdk-core'\nimport { TokenInfo } from '@uniswap/token-lists'\nimport { useMemo } from 'react'\n\n/** Sorts currency amounts (descending). */\nfunction balanceComparator(a?: CurrencyAmount, b?: CurrencyAmount) {\n if (a && b) {\n return a.greaterThan(b) ? -1 : a.equalTo(b) ? 0 : 1\n } else if (a?.greaterThan('0')) {\n return -1\n } else if (b?.greaterThan('0')) {\n return 1\n }\n return 0\n}\n\ntype TokenBalances = { [tokenAddress: string]: CurrencyAmount | undefined }\n\n/** Sorts tokens by currency amount (descending), then symbol (ascending). */\nexport function tokenComparator(balances: TokenBalances, a: Token, b: Token) {\n // Sorts by balances\n const balanceComparison = balanceComparator(balances[a.address], balances[b.address])\n if (balanceComparison !== 0) return balanceComparison\n\n // Sorts by symbol\n if (a.symbol && b.symbol) {\n return a.symbol.toLowerCase() < b.symbol.toLowerCase() ? -1 : 1\n }\n\n return -1\n}\n\n/** Sorts tokens by query, giving precedence to exact matches and partial matches. */\nexport function useSortTokensByQuery(query: string, tokens?: T[]): T[] {\n return useMemo(() => {\n if (!tokens) {\n return []\n }\n\n const matches = query\n .toLowerCase()\n .split(/\\s+/)\n .filter((s) => s.length > 0)\n\n if (matches.length > 1) {\n return tokens\n }\n\n const exactMatches: T[] = []\n const symbolSubtrings: T[] = []\n const rest: T[] = []\n\n // sort tokens by exact match -> subtring on symbol match -> rest\n tokens.map((token) => {\n if (token.symbol?.toLowerCase() === matches[0]) {\n return exactMatches.push(token)\n } else if (token.symbol?.toLowerCase().startsWith(query.toLowerCase().trim())) {\n return symbolSubtrings.push(token)\n } else {\n return rest.push(token)\n }\n })\n\n return [...exactMatches, ...symbolSubtrings, ...rest]\n }, [tokens, query])\n}\n","import { Currency, Token } from '@uniswap/sdk-core'\nimport { Tags, TokenInfo, TokenList } from '@uniswap/token-lists'\n\nimport { isAddress } from '../../utils'\n\ntype TagDetails = Tags[keyof Tags]\ninterface TagInfo extends TagDetails {\n id: string\n}\n/**\n * Token instances created from token info on a token list.\n */\nexport class WrappedTokenInfo implements Token {\n public readonly isNative: false = false\n public readonly isToken: true = true\n public readonly list?: TokenList\n\n public readonly tokenInfo: TokenInfo\n\n constructor(tokenInfo: TokenInfo, list?: TokenList) {\n this.tokenInfo = tokenInfo\n this.list = list\n }\n\n private _checksummedAddress: string | null = null\n\n public get address(): string {\n if (this._checksummedAddress) return this._checksummedAddress\n const checksummedAddress = isAddress(this.tokenInfo.address)\n if (!checksummedAddress) throw new Error(`Invalid token address: ${this.tokenInfo.address}`)\n return (this._checksummedAddress = checksummedAddress)\n }\n\n public get chainId(): number {\n return this.tokenInfo.chainId\n }\n\n public get decimals(): number {\n return this.tokenInfo.decimals\n }\n\n public get name(): string {\n return this.tokenInfo.name\n }\n\n public get symbol(): string {\n return this.tokenInfo.symbol\n }\n\n public get logoURI(): string | undefined {\n return this.tokenInfo.logoURI\n }\n\n private _tags: TagInfo[] | null = null\n public get tags(): TagInfo[] {\n if (this._tags !== null) return this._tags\n if (!this.tokenInfo.tags) return (this._tags = [])\n const listTags = this.list?.tags\n if (!listTags) return (this._tags = [])\n\n return (this._tags = this.tokenInfo.tags.map((tagId) => {\n return {\n ...listTags[tagId],\n id: tagId,\n }\n }))\n }\n\n equals(other: Currency): boolean {\n return other.chainId === this.chainId && other.isToken && other.address.toLowerCase() === this.address.toLowerCase()\n }\n\n sortsBefore(other: Token): boolean {\n if (this.equals(other)) throw new Error('Addresses should not be equal')\n return this.address.toLowerCase() < other.address.toLowerCase()\n }\n\n public get wrapped(): Token {\n return this\n }\n}\n","import { TokenInfo, TokenList } from '@uniswap/token-lists'\nimport { WrappedTokenInfo } from 'state/lists/wrappedTokenInfo'\n\ntype TokenMap = Readonly<{ [tokenAddress: string]: { token: WrappedTokenInfo; list?: TokenList } }>\nexport type ChainTokenMap = Readonly<{ [chainId: number]: TokenMap }>\n\ntype Mutable = {\n -readonly [P in keyof T]: Mutable\n}\n\nconst mapCache = typeof WeakMap !== 'undefined' ? new WeakMap() : null\n\nexport function tokensToChainTokenMap(tokens: TokenList | TokenInfo[]): ChainTokenMap {\n const cached = mapCache?.get(tokens)\n if (cached) return cached\n\n const [list, infos] = Array.isArray(tokens) ? [undefined, tokens] : [tokens, tokens.tokens]\n const map = infos.reduce>((map, info) => {\n const token = new WrappedTokenInfo(info, list)\n if (map[token.chainId]?.[token.address] !== undefined) {\n console.warn(`Duplicate token skipped: ${token.address}`)\n return map\n }\n // Uni token remove from list\n if (token.name === \"Uniswap\") {\n return map\n }\n if (!map[token.chainId]) {\n map[token.chainId] = {}\n }\n map[token.chainId][token.address] = { token, list }\n return map\n }, {}) as ChainTokenMap\n mapCache?.set(tokens, map)\n return map\n}\n","import { NativeCurrency, Token } from '@uniswap/sdk-core'\nimport { TokenInfo, TokenList } from '@uniswap/token-lists'\nimport { atom, useAtom } from 'jotai'\nimport { useAtomValue } from 'jotai'\nimport useActiveWeb3React from 'lib/hooks/useActiveWeb3React'\nimport resolveENSContentHash from 'lib/utils/resolveENSContentHash'\nimport { useCallback, useEffect, useMemo, useState } from 'react'\nimport { WrappedTokenInfo } from 'state/lists/wrappedTokenInfo'\n\nimport fetchTokenList from './fetchTokenList'\nimport { useQueryTokens } from './querying'\nimport { ChainTokenMap, tokensToChainTokenMap } from './utils'\nimport { validateTokens } from './validateTokenList'\n\nexport const DEFAULT_TOKEN_LIST = 'https://gateway.ipfs.io/ipns/tokens.uniswap.org'\n\nconst chainTokenMapAtom = atom(null)\n\nexport function useIsTokenListLoaded() {\n return Boolean(useAtomValue(chainTokenMapAtom))\n}\n\nexport function useSyncTokenList(list: string | TokenInfo[] = DEFAULT_TOKEN_LIST): void {\n // Error boundaries will not catch (non-rendering) async errors, but it should still be shown\n const [error, setError] = useState()\n if (error) throw error\n\n const [chainTokenMap, setChainTokenMap] = useAtom(chainTokenMapAtom)\n useEffect(() => setChainTokenMap(null), [list, setChainTokenMap])\n\n const { chainId, library } = useActiveWeb3React()\n const resolver = useCallback(\n (ensName: string) => {\n if (library && chainId === 1) {\n return resolveENSContentHash(ensName, library)\n }\n throw new Error('Could not construct mainnet ENS resolver')\n },\n [chainId, library]\n )\n\n useEffect(() => {\n // If the list was already loaded, don't reload it.\n if (chainTokenMap) return\n\n let stale = false\n activateList(list)\n return () => {\n stale = true\n }\n\n async function activateList(list: string | TokenInfo[]) {\n try {\n let tokens: TokenList | TokenInfo[]\n if (typeof list === 'string') {\n tokens = await fetchTokenList(list, resolver)\n } else {\n tokens = await validateTokens(list)\n }\n // tokensToChainTokenMap also caches the fetched tokens, so it must be invoked even if stale.\n const map = tokensToChainTokenMap(tokens)\n if (!stale) {\n setChainTokenMap(map)\n setError(undefined)\n }\n } catch (e: unknown) {\n if (!stale) {\n // Do not update the token map, in case the map was already resolved without error on mainnet.\n setError(e as Error)\n }\n }\n }\n }, [chainTokenMap, list, resolver, setChainTokenMap])\n}\n\nexport default function useTokenList(): WrappedTokenInfo[] {\n const { chainId } = useActiveWeb3React()\n const chainTokenMap = useAtomValue(chainTokenMapAtom)\n const tokenMap = chainId && chainTokenMap?.[chainId]\n return useMemo(() => {\n if (!tokenMap) return []\n return Object.values(tokenMap).map(({ token }) => token)\n }, [tokenMap])\n}\n\nexport type TokenMap = { [address: string]: Token }\n\nexport function useTokenMap(): TokenMap {\n const { chainId } = useActiveWeb3React()\n const chainTokenMap = useAtomValue(chainTokenMapAtom)\n const tokenMap = chainId && chainTokenMap?.[chainId]\n return useMemo(() => {\n if (!tokenMap) return {}\n return Object.entries(tokenMap).reduce((map, [address, { token }]) => {\n map[address] = token\n return map\n }, {} as TokenMap)\n }, [tokenMap])\n}\n\nexport function useQueryCurrencies(query = ''): (WrappedTokenInfo | NativeCurrency)[] {\n return useQueryTokens(query, useTokenList())\n}\n","import useActiveWeb3React from \"hooks/useActiveWeb3React\";\nimport { useBytes32TokenContract, useTokenContract } from \"hooks/useContract\";\nimport { NEVER_RELOAD, useSingleCallResult } from \"lib/hooks/multicall\";\nimport useNativeCurrency from \"lib/hooks/useNativeCurrency\";\nimport { useMemo } from \"react\";\n\nimport { arrayify } from \"@ethersproject/bytes\";\nimport { parseBytes32String } from \"@ethersproject/strings\";\nimport { Currency, Token } from \"@uniswap/sdk-core\";\n\nimport { TOKEN_SHORTHANDS } from \"../../constants/tokens\";\nimport { isAddress } from \"../../utils\";\nimport { supportedChainId } from \"../../utils/supportedChainId\";\nimport { TokenMap, useTokenMap } from \"./useTokenList\";\n\n// parse a name or symbol from a token response\nconst BYTES32_REGEX = /^0x[a-fA-F0-9]{64}$/\n\nfunction parseStringOrBytes32(str: string | undefined, bytes32: string | undefined, defaultValue: string): string {\n return str && str.length > 0\n ? str\n : // need to check for proper bytes string and valid terminator\n bytes32 && BYTES32_REGEX.test(bytes32) && arrayify(bytes32)[31] === 0\n ? parseBytes32String(bytes32)\n : defaultValue\n}\n\n/**\n * Returns a Token from the tokenAddress.\n * Returns null if token is loading or null was passed.\n * Returns undefined if tokenAddress is invalid or token does not exist.\n */\nexport function useTokenFromNetwork(tokenAddress: string | null | undefined): Token | null | undefined {\n const { chainId } = useActiveWeb3React()\n\n const formattedAddress = isAddress(tokenAddress)\n\n const tokenContract = useTokenContract(formattedAddress ? formattedAddress : undefined, false)\n const tokenContractBytes32 = useBytes32TokenContract(formattedAddress ? formattedAddress : undefined, false)\n\n const tokenName = useSingleCallResult(tokenContract, 'name', undefined, NEVER_RELOAD)\n const tokenNameBytes32 = useSingleCallResult(tokenContractBytes32, 'name', undefined, NEVER_RELOAD)\n const symbol = useSingleCallResult(tokenContract, 'symbol', undefined, NEVER_RELOAD)\n const symbolBytes32 = useSingleCallResult(tokenContractBytes32, 'symbol', undefined, NEVER_RELOAD)\n const decimals = useSingleCallResult(tokenContract, 'decimals', undefined, NEVER_RELOAD)\n return useMemo(() => {\n if (typeof tokenAddress !== 'string' || !chainId || !formattedAddress) return undefined\n if (decimals.loading || symbol.loading || tokenName.loading) return null\n if (decimals.result) {\n return new Token(\n chainId,\n formattedAddress,\n decimals.result[0],\n parseStringOrBytes32(symbol.result?.[0], symbolBytes32.result?.[0], 'UNKNOWN'),\n parseStringOrBytes32(tokenName.result?.[0], tokenNameBytes32.result?.[0], 'Unknown Token')\n )\n }\n return undefined\n }, [\n formattedAddress,\n chainId,\n decimals.loading,\n decimals.result,\n symbol.loading,\n symbol.result,\n symbolBytes32.result,\n tokenAddress,\n tokenName.loading,\n tokenName.result,\n tokenNameBytes32.result,\n ])\n}\n\n/**\n * Returns a Token from the tokenAddress.\n * Returns null if token is loading or null was passed.\n * Returns undefined if tokenAddress is invalid or token does not exist.\n */\nexport function useTokenFromMapOrNetwork(tokens: TokenMap, tokenAddress?: string | null): Token | null | undefined {\n const address = isAddress(tokenAddress)\n const token: Token | undefined = address ? tokens[address] : undefined\n const tokenFromNetwork = useTokenFromNetwork(token ? undefined : address ? address : undefined)\n\n return tokenFromNetwork ?? token\n}\n\n/**\n * Returns a Token from the tokenAddress.\n * Returns null if token is loading or null was passed.\n * Returns undefined if tokenAddress is invalid or token does not exist.\n */\nexport function useToken(tokenAddress?: string | null): Token | null | undefined {\n const tokens = useTokenMap()\n return useTokenFromMapOrNetwork(tokens, tokenAddress)\n}\n\n/**\n * Returns a Currency from the currencyId.\n * Returns null if currency is loading or null was passed.\n * Returns undefined if currencyId is invalid or token does not exist.\n */\nexport function useCurrencyFromMap(tokens: TokenMap, currencyId?: string | null): Currency | null | undefined {\n const nativeCurrency = useNativeCurrency()\n const { chainId } = useActiveWeb3React()\n const isNative = Boolean(nativeCurrency && currencyId?.toUpperCase() === 'ETH')\n const shorthandMatchAddress = useMemo(() => {\n const chain = supportedChainId(chainId)\n return chain && currencyId ? TOKEN_SHORTHANDS[currencyId.toUpperCase()]?.[chain] : undefined\n }, [chainId, currencyId])\n const token = useTokenFromMapOrNetwork(tokens, isNative ? undefined : shorthandMatchAddress ?? currencyId)\n if (currencyId === null || currencyId === undefined) return currencyId\n\n // this case so we use our builtin wrapped token instead of wrapped tokens on token lists\n const wrappedNative = nativeCurrency?.wrapped\n if (wrappedNative?.address?.toUpperCase() === currencyId?.toUpperCase()) return wrappedNative\n\n return isNative ? nativeCurrency : token\n}\n\n/**\n * Returns a Currency from the currencyId.\n * Returns null if currency is loading or null was passed.\n * Returns undefined if currencyId is invalid or token does not exist.\n */\nexport default function useCurrency(currencyId?: string | null): Currency | null | undefined {\n const tokens = useTokenMap()\n return useCurrencyFromMap(tokens, currencyId)\n}\n","import { DEFAULT_LIST_OF_LISTS } from './../constants/lists'\n\nconst DEFAULT_LIST_PRIORITIES = DEFAULT_LIST_OF_LISTS.reduce<{ [listUrl: string]: number }>((memo, listUrl, index) => {\n memo[listUrl] = index + 1\n return memo\n}, {})\n\n// use ordering of default list of lists to assign priority\nexport default function sortByListPriority(urlA: string, urlB: string) {\n if (DEFAULT_LIST_PRIORITIES[urlA] && DEFAULT_LIST_PRIORITIES[urlB]) {\n return DEFAULT_LIST_PRIORITIES[urlA] - DEFAULT_LIST_PRIORITIES[urlB]\n }\n return 0\n}\n","import { ChainTokenMap, tokensToChainTokenMap } from 'lib/hooks/useTokenList/utils'\nimport { useMemo } from 'react'\nimport { useAppSelector } from 'state/hooks'\nimport sortByListPriority from 'utils/listSort'\n\nimport BROKEN_LIST from '../../constants/tokenLists/broken.tokenlist.json'\nimport UNSUPPORTED_TOKEN_LIST from '../../constants/tokenLists/unsupported.tokenlist.json'\nimport SUPPORTED_TOKEN_LIST from '../../constants/tokenLists/supported.tokenlist.json'\nimport { AppState } from '../index'\nimport { UNSUPPORTED_LIST_URLS } from './../../constants/lists'\n\nexport type TokenAddressMap = ChainTokenMap\n\ntype Mutable = {\n -readonly [P in keyof T]: Mutable\n}\n\nexport function useAllLists(): AppState['lists']['byUrl'] {\n return useAppSelector((state) => state.lists.byUrl)\n}\n\n/**\n * Combine the tokens in map2 with the tokens on map1, where tokens on map1 take precedence\n * @param map1 the base token map\n * @param map2 the map of additioanl tokens to add to the base map\n */\nexport function combineMaps(map1: TokenAddressMap, map2: TokenAddressMap): TokenAddressMap {\n const chainIds = Object.keys(\n Object.keys(map1)\n .concat(Object.keys(map2))\n .reduce<{ [chainId: string]: true }>((memo, value) => {\n memo[value] = true\n return memo\n }, {})\n ).map((id) => parseInt(id))\n\n return chainIds.reduce>((memo, chainId) => {\n memo[chainId] = {\n ...map2[chainId],\n // map1 takes precedence\n ...map1[chainId],\n }\n return memo\n }, {}) as TokenAddressMap\n}\n\n// merge tokens contained within lists from urls\nfunction useCombinedTokenMapFromUrls(urls: string[] | undefined): TokenAddressMap {\n const lists = useAllLists()\n return useMemo(() => {\n if (!urls) return {}\n return (\n urls\n .slice()\n // sort by priority so top priority goes last\n .sort(sortByListPriority)\n .reduce((allTokens, currentUrl) => {\n const current = lists[currentUrl]?.current\n if (!current) return allTokens\n try {\n return combineMaps(allTokens, tokensToChainTokenMap(current))\n } catch (error) {\n console.error('Could not show token list due to error', error)\n return allTokens\n }\n }, {})\n )\n }, [lists, urls])\n}\n\n// filter out unsupported lists\nexport function useActiveListUrls(): string[] | undefined {\n const activeListUrls = useAppSelector((state) => state.lists.activeListUrls)\n return useMemo(() => activeListUrls?.filter((url) => !UNSUPPORTED_LIST_URLS.includes(url)), [activeListUrls])\n}\n\nexport function useInactiveListUrls(): string[] {\n const lists = useAllLists()\n const allActiveListUrls = useActiveListUrls()\n return useMemo(\n () => Object.keys(lists).filter((url) => !allActiveListUrls?.includes(url) && !UNSUPPORTED_LIST_URLS.includes(url)),\n [lists, allActiveListUrls]\n )\n}\n\n// get all the tokens from active lists, combine with local default tokens\nexport function useCombinedActiveList(): TokenAddressMap {\n const activeListUrls = useActiveListUrls()\n const activeTokens = useCombinedTokenMapFromUrls(activeListUrls)\n return activeTokens\n}\n\n// list of tokens not supported on interface for various reasons, used to show warnings and prevent swaps and adds\nexport function useUnsupportedTokenList(): TokenAddressMap {\n // get hard-coded broken tokens\n const brokenListMap = useMemo(() => tokensToChainTokenMap(BROKEN_LIST), [])\n\n // get hard-coded list of unsupported tokens\n const localUnsupportedListMap = useMemo(() => tokensToChainTokenMap(UNSUPPORTED_TOKEN_LIST), [])\n\n // get dynamic list of unsupported tokens\n const loadedUnsupportedListMap = useCombinedTokenMapFromUrls(UNSUPPORTED_LIST_URLS)\n\n // format into one token address map\n return useMemo(\n () => combineMaps(brokenListMap, combineMaps(localUnsupportedListMap, loadedUnsupportedListMap)),\n [brokenListMap, localUnsupportedListMap, loadedUnsupportedListMap]\n )\n}\n\nexport function useSupportedTokenList(): TokenAddressMap {\n // get hard-coded list of unsupported tokens\n const localSupportedListMap = useMemo(() => tokensToChainTokenMap(SUPPORTED_TOKEN_LIST), [])\n\n // format into one token address map\n return useMemo(\n () => localSupportedListMap,\n [localSupportedListMap]\n )\n}\n\nexport function useIsListActive(url: string): boolean {\n const activeListUrls = useActiveListUrls()\n return Boolean(activeListUrls?.includes(url))\n}\n","import { Percent, Token } from '@uniswap/sdk-core'\nimport { L2_CHAIN_IDS } from 'constants/chains'\nimport { L2_DEADLINE_FROM_NOW } from 'constants/misc'\nimport useActiveWeb3React from 'hooks/useActiveWeb3React'\nimport JSBI from 'jsbi'\nimport { useCallback, useMemo } from 'react'\nimport { shallowEqual } from 'react-redux'\nimport { useAppDispatch, useAppSelector } from 'state/hooks'\n\nimport { AppState } from '../index'\nimport {\n addSerializedToken,\n removeSerializedToken,\n SerializedToken,\n updateHideClosedPositions,\n updateUserClientSideRouter,\n updateUserDarkMode,\n updateUserDeadline,\n updateUserExpertMode,\n updateUserSlippageTolerance,\n} from './actions'\n\nfunction serializeToken(token: Token): SerializedToken {\n return {\n chainId: token.chainId,\n address: token.address,\n decimals: token.decimals,\n symbol: token.symbol,\n name: token.name,\n }\n}\n\nfunction deserializeToken(serializedToken: SerializedToken): Token {\n return new Token(\n serializedToken.chainId,\n serializedToken.address,\n serializedToken.decimals,\n serializedToken.symbol,\n serializedToken.name\n )\n}\n\nexport function useIsDarkMode(): boolean {\n const { userDarkMode, matchesDarkMode } = useAppSelector(\n ({ user: { matchesDarkMode, userDarkMode } }) => ({\n userDarkMode,\n matchesDarkMode,\n }),\n shallowEqual\n )\n\n return userDarkMode === null ? matchesDarkMode : userDarkMode\n}\n\nexport function useDarkModeManager(): [boolean, () => void] {\n const dispatch = useAppDispatch()\n const darkMode = useIsDarkMode()\n\n const toggleSetDarkMode = useCallback(() => {\n dispatch(updateUserDarkMode({ userDarkMode: !darkMode }))\n }, [darkMode, dispatch])\n\n return [darkMode, toggleSetDarkMode]\n}\n\nexport function useIsExpertMode(): boolean {\n return useAppSelector((state) => state.user.userExpertMode)\n}\n\nexport function useExpertModeManager(): [boolean, () => void] {\n const dispatch = useAppDispatch()\n const expertMode = useIsExpertMode()\n\n const toggleSetExpertMode = useCallback(() => {\n dispatch(updateUserExpertMode({ userExpertMode: !expertMode }))\n }, [expertMode, dispatch])\n\n return [expertMode, toggleSetExpertMode]\n}\n\nexport function useClientSideRouter(): [boolean, (userClientSideRouter: boolean) => void] {\n const dispatch = useAppDispatch()\n\n const clientSideRouter = useAppSelector((state) => Boolean(state.user.userClientSideRouter))\n\n const setClientSideRouter = useCallback(\n (newClientSideRouter: boolean) => {\n dispatch(updateUserClientSideRouter({ userClientSideRouter: newClientSideRouter }))\n },\n [dispatch]\n )\n\n return [clientSideRouter, setClientSideRouter]\n}\n\nexport function useSetUserSlippageTolerance(): (slippageTolerance: Percent | 'auto') => void {\n const dispatch = useAppDispatch()\n\n return useCallback(\n (userSlippageTolerance: Percent | 'auto') => {\n let value: 'auto' | number\n try {\n value =\n userSlippageTolerance === 'auto' ? 'auto' : JSBI.toNumber(userSlippageTolerance.multiply(10_000).quotient)\n } catch (error) {\n value = 'auto'\n }\n dispatch(\n updateUserSlippageTolerance({\n userSlippageTolerance: value,\n })\n )\n },\n [dispatch]\n )\n}\n\n/**\n * Return the user's slippage tolerance, from the redux store, and a function to update the slippage tolerance\n */\nexport function useUserSlippageTolerance(): Percent | 'auto' {\n const userSlippageTolerance = useAppSelector((state) => {\n return state.user.userSlippageTolerance\n })\n\n return useMemo(\n () => (userSlippageTolerance === 'auto' ? 'auto' : new Percent(userSlippageTolerance, 10_000)),\n [userSlippageTolerance]\n )\n}\n\nexport function useUserHideClosedPositions(): [boolean, (newHideClosedPositions: boolean) => void] {\n const dispatch = useAppDispatch()\n\n const hideClosedPositions = useAppSelector((state) => state.user.userHideClosedPositions)\n\n const setHideClosedPositions = useCallback(\n (newHideClosedPositions: boolean) => {\n dispatch(updateHideClosedPositions({ userHideClosedPositions: newHideClosedPositions }))\n },\n [dispatch]\n )\n\n return [hideClosedPositions, setHideClosedPositions]\n}\n\n/**\n * Same as above but replaces the auto with a default value\n * @param defaultSlippageTolerance the default value to replace auto with\n */\nexport function useUserSlippageToleranceWithDefault(defaultSlippageTolerance: Percent): Percent {\n const allowedSlippage = useUserSlippageTolerance()\n return useMemo(\n () => (allowedSlippage === 'auto' ? defaultSlippageTolerance : allowedSlippage),\n [allowedSlippage, defaultSlippageTolerance]\n )\n}\n\nexport function useUserTransactionTTL(): [number, (slippage: number) => void] {\n const { chainId } = useActiveWeb3React()\n const dispatch = useAppDispatch()\n const userDeadline = useAppSelector((state) => state.user.userDeadline)\n const onL2 = Boolean(chainId && L2_CHAIN_IDS.includes(chainId))\n const deadline = onL2 ? L2_DEADLINE_FROM_NOW : userDeadline\n\n const setUserDeadline = useCallback(\n (userDeadline: number) => {\n dispatch(updateUserDeadline({ userDeadline }))\n },\n [dispatch]\n )\n\n return [deadline, setUserDeadline]\n}\n\nexport function useAddUserToken(): (token: Token) => void {\n const dispatch = useAppDispatch()\n return useCallback(\n (token: Token) => {\n dispatch(addSerializedToken({ serializedToken: serializeToken(token) }))\n },\n [dispatch]\n )\n}\n\nexport function useRemoveUserAddedToken(): (chainId: number, address: string) => void {\n const dispatch = useAppDispatch()\n return useCallback(\n (chainId: number, address: string) => {\n dispatch(removeSerializedToken({ chainId, address }))\n },\n [dispatch]\n )\n}\n\nexport function useUserAddedTokens(): Token[] {\n const { chainId } = useActiveWeb3React()\n const serializedTokensMap = useAppSelector(({ user: { tokens } }) => tokens)\n\n return useMemo(() => {\n if (!chainId) return []\n const tokenMap: Token[] = serializedTokensMap?.[chainId]\n ? Object.values(serializedTokensMap[chainId]).map(deserializeToken)\n : []\n return tokenMap\n }, [serializedTokensMap, chainId])\n}\n\nexport function useURLWarningVisible(): boolean {\n return useAppSelector((state: AppState) => state.user.URLWarningVisible)\n}\n","// @ts-nocheck\nimport { getChainInfo } from \"constants/chainInfo\";\nimport {\n L2_CHAIN_IDS,\n SupportedChainId,\n} from \"constants/chains\";\nimport useActiveWeb3React from \"hooks/useActiveWeb3React\";\nimport {\n useCurrencyFromMap,\n useTokenFromMapOrNetwork\n} from \"lib/hooks/useCurrency\";\nimport { getTokenFilter } from \"lib/hooks/useTokenList/filtering\";\nimport { useMemo } from \"react\";\n\nimport { Currency, Token } from \"@uniswap/sdk-core\";\n\nimport {\n TokenAddressMap,\n useAllLists,\n useCombinedActiveList,\n useInactiveListUrls,\n useSupportedTokenList,\n useUnsupportedTokenList\n} from \"../state/lists/hooks\";\nimport { WrappedTokenInfo } from \"../state/lists/wrappedTokenInfo\";\nimport { useUserAddedTokens } from \"../state/user/hooks\";\n\n// reduce token map into standard address <-> Token mapping, optionally include user added tokens\nfunction useTokensFromMap(tokenMap: TokenAddressMap, includeUserAdded: boolean): { [address: string]: Token } {\n const { chainId } = useActiveWeb3React()\n const userAddedTokens = useUserAddedTokens()\n\n return useMemo(() => {\n if (!chainId) return {}\n\n // reduce to just tokens\n const mapWithoutUrls = Object.keys(tokenMap[chainId] ?? {}).reduce<{ [address: string]: Token }>(\n (newMap, address) => {\n newMap[address] = tokenMap[chainId][address].token\n return newMap\n },\n {}\n )\n\n if (includeUserAdded) {\n return (\n userAddedTokens\n // reduce into all ALL_TOKENS filtered by the current chain\n .reduce<{ [address: string]: Token }>(\n (tokenMap, token) => {\n tokenMap[token.address] = token\n return tokenMap\n },\n // must make a copy because reduce modifies the map, and we do not\n // want to make a copy in every iteration\n { ...mapWithoutUrls }\n )\n )\n }\n\n return mapWithoutUrls\n }, [chainId, userAddedTokens, tokenMap, includeUserAdded])\n}\n\nexport function useAllTokens(): { [address: string]: Token } {\n const allTokens = useCombinedActiveList()\n return useTokensFromMap(allTokens, true)\n}\n\ntype BridgeInfo = Record<\n SupportedChainId,\n {\n tokenAddress: string\n originBridgeAddress: string\n destBridgeAddress: string\n }\n>\n\nexport function useUnsupportedTokens(): { [address: string]: Token } {\n const { chainId } = useActiveWeb3React()\n const listsByUrl = useAllLists()\n const unsupportedTokensMap = useUnsupportedTokenList()\n const unsupportedTokens = useTokensFromMap(unsupportedTokensMap, false)\n\n // checks the default L2 lists to see if `bridgeInfo` has an L1 address value that is unsupported\n const l2InferredBlockedTokens: typeof unsupportedTokens = useMemo(() => {\n if (!chainId || !L2_CHAIN_IDS.includes(chainId)) {\n return {}\n }\n\n if (!listsByUrl) {\n return {}\n }\n\n const listUrl = getChainInfo(chainId).defaultListUrl\n const { current: list } = listsByUrl[listUrl]\n if (!list) {\n return {}\n }\n\n const unsupportedSet = new Set(Object.keys(unsupportedTokens))\n\n return list.tokens.reduce((acc, tokenInfo) => {\n const bridgeInfo = tokenInfo.extensions?.bridgeInfo as unknown as BridgeInfo\n if (\n bridgeInfo &&\n bridgeInfo[SupportedChainId.MAINNET] &&\n bridgeInfo[SupportedChainId.MAINNET].tokenAddress &&\n unsupportedSet.has(bridgeInfo[SupportedChainId.MAINNET].tokenAddress)\n ) {\n const address = bridgeInfo[SupportedChainId.MAINNET].tokenAddress\n // don't rely on decimals--it's possible that a token could be bridged w/ different decimals on the L2\n return { ...acc, [address]: new Token(SupportedChainId.MAINNET, address, tokenInfo.decimals) }\n }\n return acc\n }, {})\n }, [chainId, listsByUrl, unsupportedTokens])\n\n return { ...unsupportedTokens, ...l2InferredBlockedTokens }\n}\n\nexport function useSupportedTokens() {\n const unsupportedTokensMap = useSupportedTokenList()\n const supportedTokens = useTokensFromMap(unsupportedTokensMap, false)\n const entries = Object.keys(supportedTokens).map((key) => supportedTokens[key]);\n return entries;\n}\n\nexport function useSearchInactiveTokenLists(search: string | undefined, minResults = 10): WrappedTokenInfo[] {\n const lists = useAllLists()\n const inactiveUrls = useInactiveListUrls()\n const { chainId } = useActiveWeb3React()\n const activeTokens = useAllTokens()\n return useMemo(() => {\n if (!search || search.trim().length === 0) return []\n const tokenFilter = getTokenFilter(search)\n const result: WrappedTokenInfo[] = []\n const addressSet: { [address: string]: true } = {}\n for (const url of inactiveUrls) {\n const list = lists[url].current\n if (!list) continue\n for (const tokenInfo of list.tokens) {\n if (tokenInfo.chainId === chainId && tokenFilter(tokenInfo)) {\n const wrapped: WrappedTokenInfo = new WrappedTokenInfo(tokenInfo, list)\n if (!(wrapped.address in activeTokens) && !addressSet[wrapped.address]) {\n addressSet[wrapped.address] = true\n result.push(wrapped)\n if (result.length >= minResults) return result\n }\n }\n }\n }\n return result\n }, [activeTokens, chainId, inactiveUrls, lists, minResults, search])\n}\n\nexport function useIsTokenActive(token: Token | undefined | null): boolean {\n const activeTokens = useAllTokens()\n\n if (!activeTokens || !token) {\n return false\n }\n\n return !!activeTokens[token.address]\n}\n\n// Check if currency is included in custom list from user storage\nexport function useIsUserAddedToken(currency: Currency | undefined | null): boolean {\n const userAddedTokens = useUserAddedTokens()\n\n if (!currency) {\n return false\n }\n\n return !!userAddedTokens.find((token) => currency.equals(token))\n}\n\n// undefined if invalid or does not exist\n// null if loading or null was passed\n// otherwise returns the token\nexport function useToken(tokenAddress?: string | null): WrappedTokenInfo | null | undefined {\n const tokens = useAllTokens()\n return useTokenFromMapOrNetwork(tokens, tokenAddress)\n}\n\nexport function useCurrency(currencyId?: string | null): Currency | null | undefined {\n const tokens = useAllTokens()\n return useCurrencyFromMap(tokens, currencyId)\n}\n","// @ts-nocheck\nimport { useMultipleContractSingleData } from \"lib/hooks/multicall\";\nimport { computePairAddress, Pair } from \"lib/utils/pair\";\nimport { useMemo } from \"react\";\nimport { useToken } from \"hooks/Tokens\";\nimport { Interface } from \"@ethersproject/abi\";\nimport { Currency, CurrencyAmount } from \"@uniswap/sdk-core\";\nimport { abi as IUniswapV2PairABI } from \"@uniswap/v2-core/build/IUniswapV2Pair.json\";\n\nimport { INIT_CODE_HASH, V2_FACTORY_ADDRESSES } from \"../constants/addresses\";\n\nconst PAIR_INTERFACE = new Interface(IUniswapV2PairABI)\n\nexport enum PairState {\n LOADING,\n NOT_EXISTS,\n EXISTS,\n INVALID,\n}\n\nexport function useV2Pairs(currencies: [Currency | undefined, Currency | undefined][], type: string): [PairState, Pair | null][] {\n const token0 = useToken(currencies?.length ? currencies[0][0]?.address : undefined);\n const token1 = useToken(currencies?.length ? currencies[0][1]?.address : undefined);\n\n const tokens = useMemo(\n () => currencies.map(([currencyA, currencyB]) => [currencyA?.wrapped ? currencyA?.wrapped : token0, currencyB?.wrapped ? currencyB?.wrapped : token1]),\n [currencies, token0, token1]\n )\n const pool = window.localStorage.getItem(type) || 'Ubeswap';\n const pairAddresses = useMemo(\n () =>\n tokens.map(([tokenA, tokenB]) => {\n return tokenA &&\n tokenB &&\n tokenA.chainId === tokenB.chainId &&\n !tokenA.equals(tokenB) &&\n V2_FACTORY_ADDRESSES[tokenA.chainId][pool.toLowerCase()]\n ? computePairAddress({ factoryAddress: V2_FACTORY_ADDRESSES[tokenA.chainId][pool.toLowerCase()], tokenA, tokenB, codeHash: INIT_CODE_HASH[tokenA.chainId][pool.toLowerCase()] })\n : undefined\n }),\n [tokens, pool]\n )\n\n const results = useMultipleContractSingleData(pairAddresses, PAIR_INTERFACE, 'getReserves')\n\n return useMemo(() => {\n return results.map((result, i) => {\n const { result: reserves, loading } = result\n const tokenA = tokens[i][0]\n const tokenB = tokens[i][1]\n\n if (loading) return [PairState.LOADING, null]\n if (!tokenA || !tokenB || tokenA.equals(tokenB)) return [PairState.INVALID, null]\n if (!reserves) return [PairState.NOT_EXISTS, null]\n const { reserve0, reserve1 } = reserves\n const [token0, token1] = tokenA.sortsBefore(tokenB) ? [tokenA, tokenB] : [tokenB, tokenA]\n return [\n PairState.EXISTS,\n new Pair(\n CurrencyAmount.fromRawAmount(token0, reserve0.toString()),\n CurrencyAmount.fromRawAmount(token1, reserve1.toString()),\n V2_FACTORY_ADDRESSES[tokenA.chainId][pool.toLowerCase()],\n INIT_CODE_HASH[tokenA.chainId][pool.toLowerCase()]\n )\n ]\n })\n }, [results, tokens, pool])\n}\n\nexport function useV2Pair(tokenA?: Currency, tokenB?: Currency, type: string): [PairState, Pair | null] {\n const inputs: [[Currency | undefined, Currency | undefined]] = useMemo(() => [[tokenA, tokenB]], [tokenA, tokenB])\n return useV2Pairs(inputs, type)[0]\n}\n","// @ts-nocheck\nimport { Currency, CurrencyAmount, TradeType } from '@uniswap/sdk-core'\nimport { Trade } from '@uniswap/v2-sdk'\nimport { Pair } from 'lib/utils/pair'\nimport { useMemo } from 'react'\nimport { isTradeBetter } from 'utils/isTradeBetter'\n\nimport { BETTER_TRADE_LESS_HOPS_THRESHOLD } from '../constants/misc'\nimport { useAllCurrencyCombinations } from './useAllCurrencyCombinations'\nimport { PairState, useV2Pairs } from './useV2Pairs'\n\nfunction useAllCommonPairs(currencyA?: Currency, currencyB?: Currency): Pair[] {\n const allCurrencyCombinations = useAllCurrencyCombinations(currencyA, currencyB)\n\n const allPairs = useV2Pairs(allCurrencyCombinations)\n\n return useMemo(\n () =>\n Object.values(\n allPairs\n // filter out invalid pairs\n .filter((result): result is [PairState.EXISTS, Pair] => Boolean(result[0] === PairState.EXISTS && result[1]))\n .map(([, pair]) => pair)\n ),\n [allPairs]\n )\n}\n\nconst MAX_HOPS = 3\n\n/**\n * Returns the best v2 trade for a desired swap\n * @param tradeType whether the swap is an exact in/out\n * @param amountSpecified the exact amount to swap in/out\n * @param otherCurrency the desired output/payment currency\n */\nexport function useBestV2Trade(\n tradeType: TradeType.EXACT_INPUT | TradeType.EXACT_OUTPUT,\n amountSpecified?: CurrencyAmount,\n otherCurrency?: Currency,\n { maxHops = MAX_HOPS } = {}\n): Trade | null {\n const [currencyIn, currencyOut] = useMemo(\n () =>\n tradeType === TradeType.EXACT_INPUT\n ? [amountSpecified?.currency, otherCurrency]\n : [otherCurrency, amountSpecified?.currency],\n [tradeType, amountSpecified, otherCurrency]\n )\n const allowedPairs = useAllCommonPairs(currencyIn, currencyOut)\n\n return useMemo(() => {\n if (amountSpecified && currencyIn && currencyOut && allowedPairs.length > 0) {\n if (maxHops === 1) {\n const options = { maxHops: 1, maxNumResults: 1 }\n if (tradeType === TradeType.EXACT_INPUT) {\n const amountIn = amountSpecified\n return Trade.bestTradeExactIn(allowedPairs, amountIn, currencyOut, options)[0] ?? null\n } else {\n const amountOut = amountSpecified\n return Trade.bestTradeExactOut(allowedPairs, currencyIn, amountOut, options)[0] ?? null\n }\n }\n\n // search through trades with varying hops, find best trade out of them\n let bestTradeSoFar: Trade | null = null\n for (let i = 1; i <= maxHops; i++) {\n const options = { maxHops: i, maxNumResults: 1 }\n let currentTrade: Trade | null\n\n if (tradeType === TradeType.EXACT_INPUT) {\n const amountIn = amountSpecified\n currentTrade = Trade.bestTradeExactIn(allowedPairs, amountIn, currencyOut, options)[0] ?? null\n } else {\n const amountOut = amountSpecified\n currentTrade = Trade.bestTradeExactOut(allowedPairs, currencyIn, amountOut, options)[0] ?? null\n }\n\n // if current trade is best yet, save it\n if (isTradeBetter(bestTradeSoFar, currentTrade, BETTER_TRADE_LESS_HOPS_THRESHOLD)) {\n bestTradeSoFar = currentTrade\n }\n }\n return bestTradeSoFar\n }\n\n return null\n }, [tradeType, amountSpecified, currencyIn, currencyOut, allowedPairs, maxHops])\n}\n","import { Trade } from '@uniswap/router-sdk'\nimport { Currency, CurrencyAmount, Token, TradeType } from '@uniswap/sdk-core'\nimport { Route as V2Route } from '@uniswap/v2-sdk'\nimport { Route as V3Route } from '@uniswap/v3-sdk'\n\nexport enum TradeState {\n LOADING,\n INVALID,\n NO_ROUTE_FOUND,\n VALID,\n SYNCING,\n}\n\n// from https://github.com/Uniswap/routing-api/blob/main/lib/handlers/schema.ts\n\nexport type TokenInRoute = Pick\n\nexport type V3PoolInRoute = {\n type: 'v3-pool'\n tokenIn: TokenInRoute\n tokenOut: TokenInRoute\n sqrtRatioX96: string\n liquidity: string\n tickCurrent: string\n fee: string\n amountIn?: string\n amountOut?: string\n\n // not used in the interface\n address?: string\n}\n\nexport type V2Reserve = {\n token: TokenInRoute\n quotient: string\n}\n\nexport type V2PoolInRoute = {\n type: 'v2-pool'\n tokenIn: TokenInRoute\n tokenOut: TokenInRoute\n reserve0: V2Reserve\n reserve1: V2Reserve\n amountIn?: string\n amountOut?: string\n\n // not used in the interface\n // avoid returning it from the client-side smart-order-router\n address?: string\n}\n\nexport interface GetQuoteResult {\n quoteId?: string\n blockNumber: string\n amount: string\n amountDecimals: string\n gasPriceWei: string\n gasUseEstimate: string\n gasUseEstimateQuote: string\n gasUseEstimateQuoteDecimals: string\n gasUseEstimateUSD: string\n methodParameters?: { calldata: string; value: string }\n quote: string\n quoteDecimals: string\n quoteGasAdjusted: string\n quoteGasAdjustedDecimals: string\n route: Array\n routeString: string\n}\n\nexport class InterfaceTrade<\n TInput extends Currency,\n TOutput extends Currency,\n TTradeType extends TradeType\n> extends Trade {\n gasUseEstimateUSD: CurrencyAmount | null | undefined\n\n constructor({\n gasUseEstimateUSD,\n ...routes\n }: {\n gasUseEstimateUSD?: CurrencyAmount | undefined | null\n v2Routes: {\n routev2: V2Route\n inputAmount: CurrencyAmount\n outputAmount: CurrencyAmount\n }[]\n v3Routes: {\n routev3: V3Route\n inputAmount: CurrencyAmount\n outputAmount: CurrencyAmount\n }[]\n tradeType: TTradeType\n }) {\n super(routes)\n this.gasUseEstimateUSD = gasUseEstimateUSD\n }\n}\n","import { Interface } from '@ethersproject/abi'\nimport { BigintIsh, Currency, Token } from '@uniswap/sdk-core'\nimport { abi as IUniswapV3PoolStateABI } from '@uniswap/v3-core/artifacts/contracts/interfaces/pool/IUniswapV3PoolState.sol/IUniswapV3PoolState.json'\nimport { computePoolAddress } from '@uniswap/v3-sdk'\nimport { FeeAmount, Pool } from '@uniswap/v3-sdk'\nimport useActiveWeb3React from 'hooks/useActiveWeb3React'\nimport JSBI from 'jsbi'\nimport { useMultipleContractSingleData } from 'lib/hooks/multicall'\nimport { useMemo } from 'react'\n\nimport { V3_CORE_FACTORY_ADDRESSES } from '../constants/addresses'\nimport { IUniswapV3PoolStateInterface } from '../types/v3/IUniswapV3PoolState'\n\nconst POOL_STATE_INTERFACE = new Interface(IUniswapV3PoolStateABI) as IUniswapV3PoolStateInterface\n\n// Classes are expensive to instantiate, so this caches the recently instantiated pools.\n// This avoids re-instantiating pools as the other pools in the same request are loaded.\nclass PoolCache {\n // Evict after 128 entries. Empirically, a swap uses 64 entries.\n private static MAX_ENTRIES = 128\n\n // These are FIFOs, using unshift/pop. This makes recent entries faster to find.\n private static pools: Pool[] = []\n private static addresses: { key: string; address: string }[] = []\n\n static getPoolAddress(factoryAddress: string, tokenA: Token, tokenB: Token, fee: FeeAmount): string {\n if (this.addresses.length > this.MAX_ENTRIES) {\n this.addresses = this.addresses.slice(0, this.MAX_ENTRIES / 2)\n }\n\n const { address: addressA } = tokenA\n const { address: addressB } = tokenB\n const key = `${factoryAddress}:${addressA}:${addressB}:${fee.toString()}`\n const found = this.addresses.find((address) => address.key === key)\n if (found) return found.address\n\n const address = {\n key,\n address: computePoolAddress({\n factoryAddress,\n tokenA,\n tokenB,\n fee,\n }),\n }\n this.addresses.unshift(address)\n return address.address\n }\n\n static getPool(\n tokenA: Token,\n tokenB: Token,\n fee: FeeAmount,\n sqrtPriceX96: BigintIsh,\n liquidity: BigintIsh,\n tick: number\n ): Pool {\n if (this.pools.length > this.MAX_ENTRIES) {\n this.pools = this.pools.slice(0, this.MAX_ENTRIES / 2)\n }\n\n const found = this.pools.find(\n (pool) =>\n pool.token0 === tokenA &&\n pool.token1 === tokenB &&\n pool.fee === fee &&\n JSBI.EQ(pool.sqrtRatioX96, sqrtPriceX96) &&\n JSBI.EQ(pool.liquidity, liquidity) &&\n pool.tickCurrent === tick\n )\n if (found) return found\n\n const pool = new Pool(tokenA, tokenB, fee, sqrtPriceX96, liquidity, tick)\n this.pools.unshift(pool)\n return pool\n }\n}\n\nexport enum PoolState {\n LOADING,\n NOT_EXISTS,\n EXISTS,\n INVALID,\n}\n\nexport function usePools(\n poolKeys: [Currency | undefined, Currency | undefined, FeeAmount | undefined][]\n): [PoolState, Pool | null][] {\n const { chainId } = useActiveWeb3React()\n\n const poolTokens: ([Token, Token, FeeAmount] | undefined)[] = useMemo(() => {\n if (!chainId) return new Array(poolKeys.length)\n\n return poolKeys.map(([currencyA, currencyB, feeAmount]) => {\n if (currencyA && currencyB && feeAmount) {\n const tokenA = currencyA.wrapped\n const tokenB = currencyB.wrapped\n if (tokenA.equals(tokenB)) return undefined\n\n return tokenA.sortsBefore(tokenB) ? [tokenA, tokenB, feeAmount] : [tokenB, tokenA, feeAmount]\n }\n return undefined\n })\n }, [chainId, poolKeys])\n\n const poolAddresses: (string | undefined)[] = useMemo(() => {\n const v3CoreFactoryAddress = chainId && V3_CORE_FACTORY_ADDRESSES[chainId]\n if (!v3CoreFactoryAddress) return new Array(poolTokens.length)\n\n return poolTokens.map((value) => value && PoolCache.getPoolAddress(v3CoreFactoryAddress, ...value))\n }, [chainId, poolTokens])\n\n\n const slot0s = useMultipleContractSingleData(poolAddresses, POOL_STATE_INTERFACE, 'slot0')\n const liquidities = useMultipleContractSingleData(poolAddresses, POOL_STATE_INTERFACE, 'liquidity')\n\n return useMemo(() => {\n return poolKeys.map((_key, index) => {\n const tokens = poolTokens[index]\n if (!tokens) return [PoolState.INVALID, null]\n const [token0, token1, fee] = tokens\n\n if (!slot0s[index]) return [PoolState.INVALID, null]\n const { result: slot0, loading: slot0Loading, valid: slot0Valid } = slot0s[index]\n\n if (!liquidities[index]) return [PoolState.INVALID, null]\n const { result: liquidity, loading: liquidityLoading, valid: liquidityValid } = liquidities[index]\n\n if (!tokens || !slot0Valid || !liquidityValid) return [PoolState.INVALID, null]\n if (slot0Loading || liquidityLoading) return [PoolState.LOADING, null]\n if (!slot0 || !liquidity) return [PoolState.NOT_EXISTS, null]\n if (!slot0.sqrtPriceX96 || slot0.sqrtPriceX96.eq(0)) return [PoolState.NOT_EXISTS, null]\n\n try {\n const pool = PoolCache.getPool(token0, token1, fee, slot0.sqrtPriceX96, liquidity[0], slot0.tick)\n return [PoolState.EXISTS, pool]\n } catch (error) {\n console.error('Error when constructing the pool', error)\n return [PoolState.NOT_EXISTS, null]\n }\n })\n }, [liquidities, poolKeys, slot0s, poolTokens])\n}\n\nexport function usePool(\n currencyA: Currency | undefined,\n currencyB: Currency | undefined,\n feeAmount: FeeAmount | undefined\n): [PoolState, Pool | null] {\n const poolKeys: [Currency | undefined, Currency | undefined, FeeAmount | undefined][] = useMemo(\n () => [[currencyA, currencyB, feeAmount]],\n [currencyA, currencyB, feeAmount]\n )\n\n return usePools(poolKeys)[0]\n}\n","import { Currency } from '@uniswap/sdk-core'\nimport { Pool, Route } from '@uniswap/v3-sdk'\nimport useActiveWeb3React from 'hooks/useActiveWeb3React'\nimport { useMemo } from 'react'\n\nimport { useV3SwapPools } from './useV3SwapPools'\n\n/**\n * Returns true if poolA is equivalent to poolB\n * @param poolA one of the two pools\n * @param poolB the other pool\n */\nfunction poolEquals(poolA: Pool, poolB: Pool): boolean {\n return (\n poolA === poolB ||\n (poolA.token0.equals(poolB.token0) && poolA.token1.equals(poolB.token1) && poolA.fee === poolB.fee)\n )\n}\n\nfunction computeAllRoutes(\n currencyIn: Currency,\n currencyOut: Currency,\n pools: Pool[],\n chainId: number,\n currentPath: Pool[] = [],\n allPaths: Route[] = [],\n startCurrencyIn: Currency = currencyIn,\n maxHops = 2\n): Route[] {\n const tokenIn = currencyIn?.wrapped\n const tokenOut = currencyOut?.wrapped\n if (!tokenIn || !tokenOut) throw new Error('Missing tokenIn/tokenOut')\n\n for (const pool of pools) {\n if (!pool.involvesToken(tokenIn) || currentPath.find((pathPool) => poolEquals(pool, pathPool))) continue\n\n const outputToken = pool.token0.equals(tokenIn) ? pool.token1 : pool.token0\n if (outputToken.equals(tokenOut)) {\n allPaths.push(new Route([...currentPath, pool], startCurrencyIn, currencyOut))\n } else if (maxHops > 1) {\n computeAllRoutes(\n outputToken,\n currencyOut,\n pools,\n chainId,\n [...currentPath, pool],\n allPaths,\n startCurrencyIn,\n maxHops - 1\n )\n }\n }\n\n return allPaths\n}\n\n/**\n * Returns all the routes from an input currency to an output currency\n * @param currencyIn the input currency\n * @param currencyOut the output currency\n */\nexport function useAllV3Routes(\n currencyIn?: Currency,\n currencyOut?: Currency\n): { loading: boolean; routes: Route[] } {\n const { chainId } = useActiveWeb3React()\n const { pools, loading: poolsLoading } = useV3SwapPools(currencyIn, currencyOut)\n\n return useMemo(() => {\n if (poolsLoading || !chainId || !pools || !currencyIn || !currencyOut) return { loading: true, routes: [] }\n\n const routes = computeAllRoutes(currencyIn, currencyOut, pools, chainId, [], [], currencyIn, 2)\n return { loading: false, routes }\n }, [chainId, currencyIn, currencyOut, pools, poolsLoading])\n}\n","import { Currency, Token } from '@uniswap/sdk-core'\nimport { FeeAmount, Pool } from '@uniswap/v3-sdk'\nimport { SupportedChainId } from 'constants/chains'\nimport useActiveWeb3React from 'hooks/useActiveWeb3React'\nimport { useMemo } from 'react'\n\nimport { useAllCurrencyCombinations } from './useAllCurrencyCombinations'\nimport { PoolState, usePools } from './usePools'\n\n/**\n * Returns all the existing pools that should be considered for swapping between an input currency and an output currency\n * @param currencyIn the input currency\n * @param currencyOut the output currency\n */\nexport function useV3SwapPools(\n currencyIn?: Currency,\n currencyOut?: Currency\n): {\n pools: Pool[]\n loading: boolean\n} {\n const { chainId } = useActiveWeb3React()\n\n const allCurrencyCombinations = useAllCurrencyCombinations(currencyIn, currencyOut)\n\n const allCurrencyCombinationsWithAllFees: [Token, Token, FeeAmount][] = useMemo(\n () =>\n allCurrencyCombinations.reduce<[Token, Token, FeeAmount][]>((list, [tokenA, tokenB]) => {\n return chainId === SupportedChainId.MAINNET\n ? list.concat([\n [tokenA, tokenB, FeeAmount.LOW],\n [tokenA, tokenB, FeeAmount.MEDIUM],\n [tokenA, tokenB, FeeAmount.HIGH],\n ])\n : list.concat([\n [tokenA, tokenB, FeeAmount.LOWEST],\n [tokenA, tokenB, FeeAmount.LOW],\n [tokenA, tokenB, FeeAmount.MEDIUM],\n [tokenA, tokenB, FeeAmount.HIGH],\n ])\n }, []),\n [allCurrencyCombinations, chainId]\n )\n\n const pools = usePools(allCurrencyCombinationsWithAllFees)\n\n return useMemo(() => {\n return {\n pools: pools\n .filter((tuple): tuple is [PoolState.EXISTS, Pool] => {\n return tuple[0] === PoolState.EXISTS && tuple[1] !== null\n })\n .map(([, pool]) => pool),\n loading: pools.some(([state]) => state === PoolState.LOADING),\n }\n }, [pools])\n}\n","import { Currency, CurrencyAmount, TradeType } from '@uniswap/sdk-core'\nimport { Route, SwapQuoter } from '@uniswap/v3-sdk'\nimport { SupportedChainId } from 'constants/chains'\nimport useActiveWeb3React from 'hooks/useActiveWeb3React'\nimport JSBI from 'jsbi'\nimport { useSingleContractWithCallData } from 'lib/hooks/multicall'\nimport { useMemo } from 'react'\nimport { InterfaceTrade, TradeState } from 'state/routing/types'\n\nimport { useAllV3Routes } from './useAllV3Routes'\nimport { useV3Quoter } from './useContract'\n\nconst QUOTE_GAS_OVERRIDES: { [chainId: number]: number } = {\n [SupportedChainId.ARBITRUM_ONE]: 25_000_000,\n [SupportedChainId.ARBITRUM_RINKEBY]: 25_000_000,\n}\n\nconst DEFAULT_GAS_QUOTE = 2_000_000\n\n/**\n * Returns the best v3 trade for a desired swap\n * @param tradeType whether the swap is an exact in/out\n * @param amountSpecified the exact amount to swap in/out\n * @param otherCurrency the desired output/payment currency\n */\nexport function useClientSideV3Trade(\n tradeType: TTradeType,\n amountSpecified?: CurrencyAmount,\n otherCurrency?: Currency\n): { state: TradeState; trade: InterfaceTrade | undefined } {\n const [currencyIn, currencyOut] =\n tradeType === TradeType.EXACT_INPUT\n ? [amountSpecified?.currency, otherCurrency]\n : [otherCurrency, amountSpecified?.currency]\n const { routes, loading: routesLoading } = useAllV3Routes(currencyIn, currencyOut)\n\n const quoter = useV3Quoter()\n const { chainId } = useActiveWeb3React()\n const callData = useMemo(\n () =>\n amountSpecified\n ? routes.map((route) => SwapQuoter.quoteCallParameters(route, amountSpecified, tradeType).calldata)\n : [],\n [amountSpecified, routes, tradeType]\n )\n const quotesResults = useSingleContractWithCallData(quoter, callData, {\n gasRequired: chainId ? QUOTE_GAS_OVERRIDES[chainId] ?? DEFAULT_GAS_QUOTE : undefined,\n })\n\n return useMemo(() => {\n if (\n !amountSpecified ||\n !currencyIn ||\n !currencyOut ||\n quotesResults.some(({ valid }) => !valid) ||\n // skip when tokens are the same\n (tradeType === TradeType.EXACT_INPUT\n ? amountSpecified.currency.equals(currencyOut)\n : amountSpecified.currency.equals(currencyIn))\n ) {\n return {\n state: TradeState.INVALID,\n trade: undefined,\n }\n }\n\n if (routesLoading || quotesResults.some(({ loading }) => loading)) {\n return {\n state: TradeState.LOADING,\n trade: undefined,\n }\n }\n\n const { bestRoute, amountIn, amountOut } = quotesResults.reduce(\n (\n currentBest: {\n bestRoute: Route | null\n amountIn: CurrencyAmount | null\n amountOut: CurrencyAmount | null\n },\n { result },\n i\n ) => {\n if (!result) return currentBest\n\n // overwrite the current best if it's not defined or if this route is better\n if (tradeType === TradeType.EXACT_INPUT) {\n const amountOut = CurrencyAmount.fromRawAmount(currencyOut, result.amountOut.toString())\n if (currentBest.amountOut === null || JSBI.lessThan(currentBest.amountOut.quotient, amountOut.quotient)) {\n return {\n bestRoute: routes[i],\n amountIn: amountSpecified,\n amountOut,\n }\n }\n } else {\n const amountIn = CurrencyAmount.fromRawAmount(currencyIn, result.amountIn.toString())\n if (currentBest.amountIn === null || JSBI.greaterThan(currentBest.amountIn.quotient, amountIn.quotient)) {\n return {\n bestRoute: routes[i],\n amountIn,\n amountOut: amountSpecified,\n }\n }\n }\n\n return currentBest\n },\n {\n bestRoute: null,\n amountIn: null,\n amountOut: null,\n }\n )\n\n if (!bestRoute || !amountIn || !amountOut) {\n return {\n state: TradeState.NO_ROUTE_FOUND,\n trade: undefined,\n }\n }\n\n return {\n state: TradeState.VALID,\n trade: new InterfaceTrade({\n v2Routes: [],\n v3Routes: [\n {\n routev3: bestRoute,\n inputAmount: amountIn,\n outputAmount: amountOut,\n },\n ],\n tradeType,\n }),\n }\n }, [amountSpecified, currencyIn, currencyOut, quotesResults, routes, routesLoading, tradeType])\n}\n","import { Currency, CurrencyAmount, Price, Token, TradeType } from '@uniswap/sdk-core'\nimport useActiveWeb3React from 'hooks/useActiveWeb3React'\nimport tryParseCurrencyAmount from 'lib/utils/tryParseCurrencyAmount'\nimport { useMemo } from 'react'\n\nimport { SupportedChainId } from '../constants/chains'\nimport { DAI_OPTIMISM, USDC_ARBITRUM, USDC_MAINNET, USDC_POLYGON } from '../constants/tokens'\nimport { useBestV2Trade } from './useBestV2Trade'\nimport { useClientSideV3Trade } from './useClientSideV3Trade'\n\n// Stablecoin amounts used when calculating spot price for a given currency.\n// The amount is large enough to filter low liquidity pairs.\nexport const STABLECOIN_AMOUNT_OUT: { [chainId: number]: CurrencyAmount } = {\n [SupportedChainId.MAINNET]: CurrencyAmount.fromRawAmount(USDC_MAINNET, 100_000e6),\n [SupportedChainId.ARBITRUM_ONE]: CurrencyAmount.fromRawAmount(USDC_ARBITRUM, 10_000e6),\n [SupportedChainId.OPTIMISM]: CurrencyAmount.fromRawAmount(DAI_OPTIMISM, 10_000e18),\n [SupportedChainId.POLYGON]: CurrencyAmount.fromRawAmount(USDC_POLYGON, 10_000e6),\n}\n\n/**\n * Returns the price in USDC of the input currency\n * @param currency currency to compute the USDC price of\n */\nexport default function useUSDCPrice(currency?: Currency): Price | undefined {\n const chainId = currency?.chainId\n\n const amountOut = chainId ? STABLECOIN_AMOUNT_OUT[chainId] : undefined\n const stablecoin = amountOut?.currency\n\n // TODO(#2808): remove dependency on useBestV2Trade\n const v2USDCTrade = useBestV2Trade(TradeType.EXACT_OUTPUT, amountOut, currency, {\n maxHops: 2,\n })\n const v3USDCTrade = useClientSideV3Trade(TradeType.EXACT_OUTPUT, amountOut, currency)\n\n return useMemo(() => {\n if (!currency || !stablecoin) {\n return undefined\n }\n\n // handle usdc\n if (currency?.wrapped.equals(stablecoin)) {\n return new Price(stablecoin, stablecoin, '1', '1')\n }\n\n // use v2 price if available, v3 as fallback\n if (v2USDCTrade) {\n const { numerator, denominator } = v2USDCTrade.route.midPrice\n return new Price(currency, stablecoin, denominator, numerator)\n } else if (v3USDCTrade.trade) {\n const { numerator, denominator } = v3USDCTrade.trade.routes[0].midPrice\n return new Price(currency, stablecoin, denominator, numerator)\n }\n\n return undefined\n }, [currency, stablecoin, v2USDCTrade, v3USDCTrade.trade])\n}\n\nexport function useUSDCValue(currencyAmount: CurrencyAmount | undefined | null) {\n const price = useUSDCPrice(currencyAmount?.currency)\n\n return useMemo(() => {\n if (!price || !currencyAmount) return null\n try {\n return price.quote(currencyAmount)\n } catch (error) {\n return null\n }\n }, [currencyAmount, price])\n}\n\n/**\n *\n * @param fiatValue string representation of a USD amount\n * @returns CurrencyAmount where currency is stablecoin on active chain\n */\nexport function useStablecoinAmountFromFiatValue(fiatValue: string | null | undefined) {\n const { chainId } = useActiveWeb3React()\n const stablecoin = chainId ? STABLECOIN_AMOUNT_OUT[chainId]?.currency : undefined\n\n return useMemo(() => {\n if (fiatValue === null || fiatValue === undefined || !chainId || !stablecoin) {\n return undefined\n }\n\n // trim for decimal precision when parsing\n const parsedForDecimals = parseFloat(fiatValue).toFixed(stablecoin.decimals).toString()\n try {\n // parse USD string into CurrencyAmount based on stablecoin decimals\n return tryParseCurrencyAmount(parsedForDecimals, stablecoin)\n } catch (error) {\n return undefined\n }\n }, [chainId, fiatValue, stablecoin])\n}\n","import { Trade } from '@uniswap/router-sdk'\nimport { Currency, CurrencyAmount, Percent, TradeType } from '@uniswap/sdk-core'\nimport { SUPPORTED_GAS_ESTIMATE_CHAIN_IDS } from 'constants/chains'\nimport { L2_CHAIN_IDS } from 'constants/chains'\nimport useActiveWeb3React from 'hooks/useActiveWeb3React'\nimport JSBI from 'jsbi'\nimport useNativeCurrency from 'lib/hooks/useNativeCurrency'\nimport { useMemo } from 'react'\nimport { InterfaceTrade } from 'state/routing/types'\n\nimport useGasPrice from './useGasPrice'\nimport useUSDCPrice, { useUSDCValue } from './useUSDCPrice'\n\nconst V3_SWAP_DEFAULT_SLIPPAGE = new Percent(50, 10_000) // .50%\nconst ONE_TENTHS_PERCENT = new Percent(10, 10_000) // .10%\n\n/**\n * Return a guess of the gas cost used in computing slippage tolerance for a given trade\n * @param trade the trade for which to _guess_ the amount of gas it would cost to execute\n */\nfunction guesstimateGas(trade: Trade | undefined): number | undefined {\n if (!!trade) {\n return 100_000 + trade.swaps.reduce((memo, swap) => swap.route.pools.length + memo, 0) * 30_000\n }\n return undefined\n}\n\nconst MIN_AUTO_SLIPPAGE_TOLERANCE = new Percent(5, 1000) // 0.5%\nconst MAX_AUTO_SLIPPAGE_TOLERANCE = new Percent(25, 100) // 25%\n\n/**\n * Returns slippage tolerance based on values from current trade, gas estimates from api, and active network.\n */\nexport default function useAutoSlippageTolerance(\n trade: InterfaceTrade | undefined\n): Percent {\n const { chainId } = useActiveWeb3React()\n const onL2 = chainId && L2_CHAIN_IDS.includes(chainId)\n const outputDollarValue = useUSDCValue(trade?.outputAmount)\n const nativeGasPrice = useGasPrice()\n\n const gasEstimate = guesstimateGas(trade)\n const nativeCurrency = useNativeCurrency()\n const nativeCurrencyPrice = useUSDCPrice(nativeCurrency ?? undefined)\n\n return useMemo(() => {\n if (!trade || onL2) return ONE_TENTHS_PERCENT\n\n const nativeGasCost =\n nativeGasPrice && typeof gasEstimate === 'number'\n ? JSBI.multiply(nativeGasPrice, JSBI.BigInt(gasEstimate))\n : undefined\n const dollarGasCost =\n nativeCurrency && nativeGasCost && nativeCurrencyPrice\n ? nativeCurrencyPrice.quote(CurrencyAmount.fromRawAmount(nativeCurrency, nativeGasCost))\n : undefined\n\n // if valid estimate from api and using api trade, use gas estimate from api\n // NOTE - dont use gas estimate for L2s yet - need to verify accuracy\n // if not, use local heuristic\n const dollarCostToUse =\n chainId && SUPPORTED_GAS_ESTIMATE_CHAIN_IDS.includes(chainId) && trade?.gasUseEstimateUSD\n ? trade.gasUseEstimateUSD\n : dollarGasCost\n\n if (outputDollarValue && dollarCostToUse) {\n // the rationale is that a user will not want their trade to fail for a loss due to slippage that is less than\n // the cost of the gas of the failed transaction\n const fraction = dollarCostToUse.asFraction.divide(outputDollarValue.asFraction)\n const result = new Percent(fraction.numerator, fraction.denominator)\n if (result.greaterThan(MAX_AUTO_SLIPPAGE_TOLERANCE)) return MAX_AUTO_SLIPPAGE_TOLERANCE\n if (result.lessThan(MIN_AUTO_SLIPPAGE_TOLERANCE)) return MIN_AUTO_SLIPPAGE_TOLERANCE\n return result\n }\n\n return V3_SWAP_DEFAULT_SLIPPAGE\n }, [trade, onL2, nativeGasPrice, gasEstimate, nativeCurrency, nativeCurrencyPrice, chainId, outputDollarValue])\n}\n","// @ts-nocheck\nimport { atomWithImmer } from 'jotai-immer'\nimport { useAtomValue, useSetAtom } from 'jotai'\nimport { useCallback } from 'react'\n\nimport useActiveWeb3React from './useActiveWeb3React'\nimport useBlockNumber from './useBlockNumber'\n\n// The oldest block (per chain) to be considered valid.\nconst oldestBlockMapAtom = atomWithImmer<{ [chainId: number]: number }>({})\n\nconst DEFAULT_MAX_BLOCK_AGE = 10\n\nexport function useSetOldestValidBlock(): (block: number) => void {\n const { chainId } = useActiveWeb3React()\n const updateValidBlock = useSetAtom(oldestBlockMapAtom)\n return useCallback(\n (block: number) => {\n if (!chainId) return\n updateValidBlock((oldestBlockMap) => {\n oldestBlockMap[chainId] = Math.max(block, oldestBlockMap[chainId] || 0)\n })\n },\n [chainId, updateValidBlock]\n )\n}\n\nexport function useGetIsValidBlock(maxBlockAge = DEFAULT_MAX_BLOCK_AGE): (block: number) => boolean {\n const { chainId } = useActiveWeb3React()\n const currentBlock = useBlockNumber()\n const oldestBlockMap = useAtomValue(oldestBlockMapAtom)\n const oldestBlock = chainId ? oldestBlockMap[chainId] : 0\n return useCallback(\n (block: number) => {\n if (!currentBlock) return false\n if (currentBlock - block > maxBlockAge) return false\n if (currentBlock < oldestBlock) return false\n return true\n },\n [currentBlock, maxBlockAge, oldestBlock]\n )\n}\n\nexport default function useIsValidBlock(block: number): boolean {\n return useGetIsValidBlock()(block)\n}\n","import { skipToken } from '@reduxjs/toolkit/query/react'\nimport { Currency, CurrencyAmount, TradeType } from '@uniswap/sdk-core'\nimport { IMetric, MetricLoggerUnit, setGlobalMetric } from '@uniswap/smart-order-router'\nimport { useStablecoinAmountFromFiatValue } from 'hooks/useUSDCPrice'\nimport { useRoutingAPIArguments } from 'lib/hooks/routing/useRoutingAPIArguments'\nimport useIsValidBlock from 'lib/hooks/useIsValidBlock'\nimport ms from 'ms.macro'\nimport { useMemo } from 'react'\nimport ReactGA from 'react-ga4'\nimport { useGetQuoteQuery } from 'state/routing/slice'\nimport { useClientSideRouter } from 'state/user/hooks'\n\nimport { GetQuoteResult, InterfaceTrade, TradeState } from './types'\nimport { computeRoutes, transformRoutesToTrade } from './utils'\n\n/**\n * Returns the best trade by invoking the routing api or the smart order router on the client\n * @param tradeType whether the swap is an exact in/out\n * @param amountSpecified the exact amount to swap in/out\n * @param otherCurrency the desired output/payment currency\n */\nexport function useRoutingAPITrade(\n tradeType: TTradeType,\n amountSpecified?: CurrencyAmount,\n otherCurrency?: Currency\n): {\n state: TradeState\n trade: InterfaceTrade | undefined\n} {\n const [currencyIn, currencyOut]: [Currency | undefined, Currency | undefined] = useMemo(\n () =>\n tradeType === TradeType.EXACT_INPUT\n ? [amountSpecified?.currency, otherCurrency]\n : [otherCurrency, amountSpecified?.currency],\n [amountSpecified, otherCurrency, tradeType]\n )\n\n const [clientSideRouter] = useClientSideRouter()\n\n const queryArgs = useRoutingAPIArguments({\n tokenIn: currencyIn,\n tokenOut: currencyOut,\n amount: amountSpecified,\n tradeType,\n useClientSideRouter: clientSideRouter,\n })\n\n const { isLoading, isError, data, currentData } = useGetQuoteQuery(queryArgs ?? skipToken, {\n pollingInterval: ms`15s`,\n refetchOnFocus: true,\n })\n\n const quoteResult: GetQuoteResult | undefined = useIsValidBlock(Number(data?.blockNumber) || 0) ? data : undefined\n\n const route = useMemo(\n () => computeRoutes(currencyIn, currencyOut, tradeType, quoteResult),\n [currencyIn, currencyOut, quoteResult, tradeType]\n )\n\n // get USD gas cost of trade in active chains stablecoin amount\n const gasUseEstimateUSD = useStablecoinAmountFromFiatValue(quoteResult?.gasUseEstimateUSD) ?? null\n\n const isSyncing = currentData !== data\n\n return useMemo(() => {\n if (!currencyIn || !currencyOut) {\n return {\n state: TradeState.INVALID,\n trade: undefined,\n }\n }\n\n if (isLoading && !quoteResult) {\n // only on first hook render\n return {\n state: TradeState.LOADING,\n trade: undefined,\n }\n }\n\n const otherAmount =\n tradeType === TradeType.EXACT_INPUT\n ? currencyOut && quoteResult\n ? CurrencyAmount.fromRawAmount(currencyOut, quoteResult.quote)\n : undefined\n : currencyIn && quoteResult\n ? CurrencyAmount.fromRawAmount(currencyIn, quoteResult.quote)\n : undefined\n\n if (isError || !otherAmount || !route || route.length === 0 || !queryArgs) {\n return {\n state: TradeState.NO_ROUTE_FOUND,\n trade: undefined,\n }\n }\n\n try {\n const trade = transformRoutesToTrade(route, tradeType, gasUseEstimateUSD)\n return {\n // always return VALID regardless of isFetching status\n state: isSyncing ? TradeState.SYNCING : TradeState.VALID,\n trade,\n }\n } catch (e) {\n return { state: TradeState.INVALID, trade: undefined }\n }\n }, [\n currencyIn,\n currencyOut,\n quoteResult,\n isLoading,\n tradeType,\n isError,\n route,\n queryArgs,\n gasUseEstimateUSD,\n isSyncing,\n ])\n}\n\n// only want to enable this when app hook called\nclass GAMetric extends IMetric {\n putDimensions() {\n return\n }\n\n putMetric(key: string, value: number, unit?: MetricLoggerUnit) {\n ReactGA._gaCommandSendTiming('Routing API', `${key} | ${unit}`, value, 'client')\n }\n}\n\nsetGlobalMetric(new GAMetric())\n","import { namehash } from '@ethersproject/hash'\nimport { useSingleCallResult } from 'lib/hooks/multicall'\nimport { useMemo } from 'react'\n\nimport { isAddress } from '../utils'\nimport isZero from '../utils/isZero'\nimport { useENSRegistrarContract, useENSResolverContract } from './useContract'\nimport useDebounce from './useDebounce'\nimport useENSAddress from './useENSAddress'\n\n/**\n * Does a reverse lookup for an address to find its ENS name.\n * Note this is not the same as looking up an ENS name to find an address.\n */\nexport default function useENSName(address?: string): { ENSName: string | null; loading: boolean } {\n const debouncedAddress = useDebounce(address, 200)\n const ensNodeArgument = useMemo(() => {\n if (!debouncedAddress || !isAddress(debouncedAddress)) return [undefined]\n return [namehash(`${debouncedAddress.toLowerCase().substr(2)}.addr.reverse`)]\n }, [debouncedAddress])\n const registrarContract = useENSRegistrarContract(false)\n const resolverAddress = useSingleCallResult(registrarContract, 'resolver', ensNodeArgument)\n const resolverAddressResult = resolverAddress.result?.[0]\n const resolverContract = useENSResolverContract(\n resolverAddressResult && !isZero(resolverAddressResult) ? resolverAddressResult : undefined,\n false\n )\n const nameCallRes = useSingleCallResult(resolverContract, 'name', ensNodeArgument)\n const name = nameCallRes.result?.[0]\n\n /* ENS does not enforce that an address owns a .eth domain before setting it as a reverse proxy \n and recommends that you perform a match on the forward resolution\n see: https://docs.ens.domains/dapp-developer-guide/resolving-names#reverse-resolution\n */\n const fwdAddr = useENSAddress(name)\n const checkedName = address === fwdAddr?.address ? name : null\n\n const changed = debouncedAddress !== address\n return useMemo(\n () => ({\n ENSName: changed ? null : checkedName,\n loading: changed || resolverAddress.loading || nameCallRes.loading,\n }),\n [changed, nameCallRes.loading, checkedName, resolverAddress.loading]\n )\n}\n","// @ts-nocheck\nimport { Currency, CurrencyAmount, Percent, TradeType } from '@uniswap/sdk-core'\nimport useActiveWeb3React from 'hooks/useActiveWeb3React'\nimport useAutoSlippageTolerance from 'hooks/useAutoSlippageTolerance'\nimport { useBestTrade } from 'hooks/useBestTrade'\nimport tryParseCurrencyAmount from 'lib/utils/tryParseCurrencyAmount'\nimport { ParsedQs } from 'qs'\nimport { ReactNode, useCallback, useEffect, useMemo } from 'react'\nimport { useAppDispatch, useAppSelector } from 'state/hooks'\nimport { InterfaceTrade, TradeState } from 'state/routing/types'\nimport { useUserSlippageToleranceWithDefault } from 'state/user/hooks'\n\nimport { TOKEN_SHORTHANDS } from '../../constants/tokens'\nimport { useCurrency } from '../../hooks/Tokens'\nimport useENS from '../../hooks/useENS'\nimport useParsedQueryString from '../../hooks/useParsedQueryString'\nimport { isAddress } from '../../utils'\nimport { AppState } from '../index'\nimport { useCurrencyBalances } from '../wallet/hooks'\nimport { Field, replaceSwapState, selectCurrency, setRecipient, switchCurrencies, typeInput } from './actions'\nimport { SwapState } from './reducer'\n\nexport function useSwapState(): AppState['swap'] {\n return useAppSelector((state) => state.swap)\n}\n\nexport function useSwapActionHandlers(): {\n onCurrencySelection: (field: Field, currency: Currency) => void\n onSwitchTokens: () => void\n onUserInput: (field: Field, typedValue: string) => void\n onChangeRecipient: (recipient: string | null) => void\n} {\n const dispatch = useAppDispatch()\n const onCurrencySelection = useCallback(\n (field: Field, currency: Currency) => {\n dispatch(\n selectCurrency({\n field,\n currencyId: currency.isToken ? currency.address : currency.isNative ? 'ETH' : '',\n })\n )\n },\n [dispatch]\n )\n\n const onSwitchTokens = useCallback(() => {\n dispatch(switchCurrencies())\n }, [dispatch])\n\n const onUserInput = useCallback(\n (field: Field, typedValue: string) => {\n dispatch(typeInput({ field, typedValue }))\n },\n [dispatch]\n )\n\n const onChangeRecipient = useCallback(\n (recipient: string | null) => {\n dispatch(setRecipient({ recipient }))\n },\n [dispatch]\n )\n\n return {\n onSwitchTokens,\n onCurrencySelection,\n onUserInput,\n onChangeRecipient,\n }\n}\n\nconst BAD_RECIPIENT_ADDRESSES: { [address: string]: true } = {\n '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f': true, // v2 factory\n '0xf164fC0Ec4E93095b804a4795bBe1e041497b92a': true, // v2 router 01\n '0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D': true, // v2 router 02\n}\n\n// from the current swap inputs, compute the best trade and return it.\nexport function useDerivedSwapInfo(): {\n currencies: { [field in Field]?: Currency | null }\n currencyBalances: { [field in Field]?: CurrencyAmount }\n parsedAmount: CurrencyAmount | undefined\n inputError?: ReactNode\n trade: {\n trade: InterfaceTrade | undefined\n state: TradeState\n }\n allowedSlippage: Percent\n} {\n const { account } = useActiveWeb3React()\n\n const {\n independentField,\n typedValue,\n [Field.INPUT]: { currencyId: inputCurrencyId },\n [Field.OUTPUT]: { currencyId: outputCurrencyId },\n recipient,\n } = useSwapState()\n\n const inputCurrency = useCurrency(inputCurrencyId)\n const outputCurrency = useCurrency(outputCurrencyId)\n const recipientLookup = useENS(recipient ?? undefined)\n const to: string | null = (recipient === null ? account : recipientLookup.address) ?? null\n\n const relevantTokenBalances = useCurrencyBalances(\n account ?? undefined,\n useMemo(() => [inputCurrency ?? undefined, outputCurrency ?? undefined], [inputCurrency, outputCurrency])\n )\n\n const isExactIn: boolean = independentField === Field.INPUT\n const parsedAmount = useMemo(\n () => tryParseCurrencyAmount(typedValue, (isExactIn ? inputCurrency : outputCurrency) ?? undefined),\n [inputCurrency, isExactIn, outputCurrency, typedValue]\n )\n\n const trade = useBestTrade(\n isExactIn ? TradeType.EXACT_INPUT : TradeType.EXACT_OUTPUT,\n parsedAmount,\n (isExactIn ? outputCurrency : inputCurrency) ?? undefined\n )\n\n const currencyBalances = useMemo(\n () => ({\n [Field.INPUT]: relevantTokenBalances[0],\n [Field.OUTPUT]: relevantTokenBalances[1],\n }),\n [relevantTokenBalances]\n )\n\n const currencies: { [field in Field]?: Currency | null } = useMemo(\n () => ({\n [Field.INPUT]: inputCurrency,\n [Field.OUTPUT]: outputCurrency,\n }),\n [inputCurrency, outputCurrency]\n )\n\n // allowed slippage is either auto slippage, or custom user defined slippage if auto slippage disabled\n const autoSlippageTolerance = useAutoSlippageTolerance(trade.trade)\n const allowedSlippage = useUserSlippageToleranceWithDefault(autoSlippageTolerance)\n\n const inputError = useMemo(() => {\n let inputError: ReactNode | undefined\n\n if (!account) {\n inputError = \"Connect Wallet\"\n }\n\n if (!currencies[Field.INPUT] || !currencies[Field.OUTPUT]) {\n inputError = inputError ?? \"Select a token\"\n }\n\n if (!parsedAmount) {\n inputError = inputError ?? \"Enter an amount\"\n }\n\n const formattedTo = isAddress(to)\n if (!to || !formattedTo) {\n inputError = inputError ?? \"Enter a recipient\"\n } else {\n if (BAD_RECIPIENT_ADDRESSES[formattedTo]) {\n inputError = inputError ?? \"Invalid recipient\"\n }\n }\n\n // compare input balance to max input based on version\n const [balanceIn, amountIn] = [currencyBalances[Field.INPUT], trade.trade?.maximumAmountIn(allowedSlippage)]\n\n if (balanceIn && amountIn && balanceIn.lessThan(amountIn)) {\n inputError = <>Insufficient {amountIn.currency.symbol} balance\n }\n\n return inputError\n }, [account, allowedSlippage, currencies, currencyBalances, parsedAmount, to, trade.trade])\n\n return useMemo(\n () => ({\n currencies,\n currencyBalances,\n parsedAmount,\n inputError,\n trade,\n allowedSlippage,\n }),\n [allowedSlippage, currencies, currencyBalances, inputError, parsedAmount, trade]\n )\n}\n\nfunction parseCurrencyFromURLParameter(urlParam: ParsedQs[string]): string {\n if (typeof urlParam === 'string') {\n const valid = isAddress(urlParam)\n if (valid) return valid\n const upper = urlParam.toUpperCase()\n if (upper === 'ETH') return 'ETH'\n if (upper in TOKEN_SHORTHANDS) return upper\n }\n return ''\n}\n\nfunction parseTokenAmountURLParameter(urlParam: any): string {\n return typeof urlParam === 'string' && !isNaN(parseFloat(urlParam)) ? urlParam : ''\n}\n\nfunction parseIndependentFieldURLParameter(urlParam: any): Field {\n return typeof urlParam === 'string' && urlParam.toLowerCase() === 'output' ? Field.OUTPUT : Field.INPUT\n}\n\nconst ENS_NAME_REGEX = /^[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_+.~#?&/=]*)?$/\nconst ADDRESS_REGEX = /^0x[a-fA-F0-9]{40}$/\nfunction validatedRecipient(recipient: any): string | null {\n if (typeof recipient !== 'string') return null\n const address = isAddress(recipient)\n if (address) return address\n if (ENS_NAME_REGEX.test(recipient)) return recipient\n if (ADDRESS_REGEX.test(recipient)) return recipient\n return null\n}\n\nexport function queryParametersToSwapState(parsedQs: ParsedQs): SwapState {\n let inputCurrency = parseCurrencyFromURLParameter(parsedQs.inputCurrency)\n let outputCurrency = parseCurrencyFromURLParameter(parsedQs.outputCurrency)\n const typedValue = parseTokenAmountURLParameter(parsedQs.exactAmount)\n const independentField = parseIndependentFieldURLParameter(parsedQs.exactField)\n\n if (inputCurrency === '' && outputCurrency === '' && typedValue === '' && independentField === Field.INPUT) {\n // Defaults to having the native currency selected\n inputCurrency = 'ETH'\n } else if (inputCurrency === outputCurrency) {\n // clear output if identical\n outputCurrency = ''\n }\n\n const recipient = validatedRecipient(parsedQs.recipient)\n\n return {\n [Field.INPUT]: {\n currencyId: inputCurrency === '' ? null : inputCurrency ?? null,\n },\n [Field.OUTPUT]: {\n currencyId: outputCurrency === '' ? null : outputCurrency ?? null,\n },\n typedValue,\n independentField,\n recipient,\n }\n}\n\n// updates the swap state to use the defaults for a given network\nexport function useDefaultsFromURLSearch(): SwapState {\n const { chainId } = useActiveWeb3React()\n const dispatch = useAppDispatch()\n const parsedQs = useParsedQueryString()\n\n const parsedSwapState = useMemo(() => {\n return queryParametersToSwapState(parsedQs)\n }, [parsedQs])\n\n useEffect(() => {\n if (!chainId) return\n const inputCurrencyId = parsedSwapState[Field.INPUT].currencyId ?? undefined\n const outputCurrencyId = parsedSwapState[Field.OUTPUT].currencyId ?? undefined\n\n dispatch(\n replaceSwapState({\n typedValue: parsedSwapState.typedValue,\n field: parsedSwapState.independentField,\n inputCurrencyId,\n outputCurrencyId,\n recipient: parsedSwapState.recipient,\n })\n )\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dispatch, chainId])\n\n return parsedSwapState\n}\n","import { createReducer } from '@reduxjs/toolkit'\nimport { parsedQueryString } from 'hooks/useParsedQueryString'\n\nimport { Field, replaceSwapState, selectCurrency, setRecipient, switchCurrencies, typeInput } from './actions'\nimport { queryParametersToSwapState } from './hooks'\n\nexport interface SwapState {\n readonly independentField: Field\n readonly typedValue: string\n readonly [Field.INPUT]: {\n readonly currencyId: string | undefined | null\n }\n readonly [Field.OUTPUT]: {\n readonly currencyId: string | undefined | null\n }\n // the typed recipient address or ENS name, or null if swap should go to sender\n readonly recipient: string | null\n}\n\nconst initialState: SwapState = queryParametersToSwapState(parsedQueryString())\n\nexport default createReducer(initialState, (builder) =>\n builder\n .addCase(\n replaceSwapState,\n (state, { payload: { typedValue, recipient, field, inputCurrencyId, outputCurrencyId } }) => {\n return {\n [Field.INPUT]: {\n currencyId: inputCurrencyId ?? null,\n },\n [Field.OUTPUT]: {\n currencyId: outputCurrencyId ?? null,\n },\n independentField: field,\n typedValue,\n recipient,\n }\n }\n )\n .addCase(selectCurrency, (state, { payload: { currencyId, field } }) => {\n const otherField = field === Field.INPUT ? Field.OUTPUT : Field.INPUT\n if (currencyId === state[otherField].currencyId) {\n // the case where we have to swap the order\n return {\n ...state,\n independentField: state.independentField === Field.INPUT ? Field.OUTPUT : Field.INPUT,\n [field]: { currencyId },\n [otherField]: { currencyId: state[field].currencyId },\n }\n } else {\n // the normal case\n return {\n ...state,\n [field]: { currencyId },\n }\n }\n })\n .addCase(switchCurrencies, (state) => {\n return {\n ...state,\n independentField: state.independentField === Field.INPUT ? Field.OUTPUT : Field.INPUT,\n [Field.INPUT]: { currencyId: state[Field.OUTPUT].currencyId },\n [Field.OUTPUT]: { currencyId: state[Field.INPUT].currencyId },\n }\n })\n .addCase(typeInput, (state, { payload: { field, typedValue } }) => {\n return {\n ...state,\n independentField: field,\n typedValue,\n }\n })\n .addCase(setRecipient, (state, { payload: { recipient } }) => {\n state.recipient = recipient\n })\n)\n","import { createAction } from '@reduxjs/toolkit'\nimport { TradeType } from '@uniswap/sdk-core'\n\nimport { VoteOption } from '../governance/types'\n\nexport interface SerializableTransactionReceipt {\n to: string\n from: string\n contractAddress: string\n transactionIndex: number\n blockHash: string\n transactionHash: string\n blockNumber: number\n status?: number\n}\n\n/**\n * Be careful adding to this enum, always assign a unique value (typescript will not prevent duplicate values).\n * These values is persisted in state and if you change the value it will cause errors\n */\nexport enum TransactionType {\n APPROVAL = 0,\n SWAP = 1,\n DEPOSIT_LIQUIDITY_STAKING = 2,\n WITHDRAW_LIQUIDITY_STAKING = 3,\n CLAIM = 4,\n VOTE = 5,\n DELEGATE = 6,\n WRAP = 7,\n CREATE_V3_POOL = 8,\n ADD_LIQUIDITY_V3_POOL = 9,\n ADD_LIQUIDITY_V2_POOL = 10,\n MIGRATE_LIQUIDITY_V3 = 11,\n COLLECT_FEES = 12,\n REMOVE_LIQUIDITY_V3 = 13,\n SUBMIT_PROPOSAL = 14,\n WITHDRAW_POSITION = 15,\n DEPOSIT_POSITION = 16,\n WITHDRAW_REWARD = 17,\n DDC_DEPOSIT = 18,\n DDC_WITHDRAW = 19,\n DDC_DELEGATE = 20,\n DDC_UNDELEGATE = 21,\n}\n\nexport interface BaseTransactionInfo {\n type: TransactionType\n}\n\nexport interface VoteTransactionInfo extends BaseTransactionInfo {\n type: TransactionType.VOTE\n governorAddress: string\n proposalId: number\n decision: VoteOption\n reason: string\n}\n\nexport interface DelegateTransactionInfo extends BaseTransactionInfo {\n type: TransactionType.DELEGATE\n delegatee: string\n}\n\nexport interface ApproveTransactionInfo extends BaseTransactionInfo {\n type: TransactionType.APPROVAL\n tokenAddress: string\n spender: string\n}\n\ninterface BaseSwapTransactionInfo extends BaseTransactionInfo {\n type: TransactionType.SWAP\n tradeType: TradeType\n inputCurrencyId: string\n outputCurrencyId: string\n}\n\nexport interface ExactInputSwapTransactionInfo extends BaseSwapTransactionInfo {\n tradeType: TradeType.EXACT_INPUT\n inputCurrencyAmountRaw: string\n expectedOutputCurrencyAmountRaw: string\n minimumOutputCurrencyAmountRaw: string\n}\nexport interface ExactOutputSwapTransactionInfo extends BaseSwapTransactionInfo {\n tradeType: TradeType.EXACT_OUTPUT\n outputCurrencyAmountRaw: string\n expectedInputCurrencyAmountRaw: string\n maximumInputCurrencyAmountRaw: string\n}\n\nexport interface DepositLiquidityStakingTransactionInfo {\n type: TransactionType.DEPOSIT_LIQUIDITY_STAKING\n token0Address: string\n token1Address: string\n}\n\nexport interface WithdrawLiquidityStakingTransactionInfo {\n type: TransactionType.WITHDRAW_LIQUIDITY_STAKING\n token0Address: string\n token1Address: string\n}\n\nexport interface WrapTransactionInfo {\n type: TransactionType.WRAP\n unwrapped: boolean\n currencyAmountRaw: string\n chainId?: number\n}\n\nexport interface ClaimTransactionInfo {\n type: TransactionType.CLAIM\n recipient: string\n uniAmountRaw?: string\n}\n\nexport interface CreateV3PoolTransactionInfo {\n type: TransactionType.CREATE_V3_POOL\n baseCurrencyId: string\n quoteCurrencyId: string\n}\n\nexport interface AddLiquidityV3PoolTransactionInfo {\n type: TransactionType.ADD_LIQUIDITY_V3_POOL\n createPool: boolean\n baseCurrencyId: string\n quoteCurrencyId: string\n feeAmount: number\n expectedAmountBaseRaw: string\n expectedAmountQuoteRaw: string\n}\n\nexport interface AddLiquidityV2PoolTransactionInfo {\n type: TransactionType.ADD_LIQUIDITY_V2_POOL\n baseCurrencyId: string\n quoteCurrencyId: string\n expectedAmountBaseRaw: string\n expectedAmountQuoteRaw: string\n}\n\nexport interface MigrateV2LiquidityToV3TransactionInfo {\n type: TransactionType.MIGRATE_LIQUIDITY_V3\n baseCurrencyId: string\n quoteCurrencyId: string\n isFork: boolean\n}\n\nexport interface CollectFeesTransactionInfo {\n type: TransactionType.COLLECT_FEES\n currencyId0: string\n currencyId1: string\n}\n\nexport interface RemoveLiquidityV3TransactionInfo {\n type: TransactionType.REMOVE_LIQUIDITY_V3\n baseCurrencyId: string\n quoteCurrencyId: string\n expectedAmountBaseRaw: string\n expectedAmountQuoteRaw: string\n}\n\nexport interface SubmitProposalTransactionInfo {\n type: TransactionType.SUBMIT_PROPOSAL\n}\n\nexport interface WithdrawTransactionInfo {\n type: TransactionType.WITHDRAW_POSITION\n}\n\nexport interface DepositTransactionInfo {\n type: TransactionType.DEPOSIT_POSITION\n}\n\nexport interface WithdrawRewardTransactionInfo {\n type: TransactionType.WITHDRAW_REWARD\n}\n\nexport interface DDCDepositTransactionInfo {\n type: TransactionType.DDC_DEPOSIT\n}\n\nexport interface DDCWithdrawTransactionInfo {\n type: TransactionType.DDC_WITHDRAW\n}\n\nexport interface DDCDelegateTransactionInfo {\n type: TransactionType.DDC_DELEGATE\n}\n\nexport interface DDCUndelegateTransactionInfo {\n type: TransactionType.DDC_UNDELEGATE\n}\n\nexport type TransactionInfo =\n | ApproveTransactionInfo\n | ExactOutputSwapTransactionInfo\n | ExactInputSwapTransactionInfo\n | ClaimTransactionInfo\n | VoteTransactionInfo\n | DelegateTransactionInfo\n | DepositLiquidityStakingTransactionInfo\n | WithdrawLiquidityStakingTransactionInfo\n | WrapTransactionInfo\n | CreateV3PoolTransactionInfo\n | AddLiquidityV3PoolTransactionInfo\n | AddLiquidityV2PoolTransactionInfo\n | MigrateV2LiquidityToV3TransactionInfo\n | CollectFeesTransactionInfo\n | RemoveLiquidityV3TransactionInfo\n | SubmitProposalTransactionInfo\n | WithdrawTransactionInfo\n | DepositTransactionInfo\n | WithdrawRewardTransactionInfo\n | DDCDepositTransactionInfo\n | DDCWithdrawTransactionInfo\n | DDCDelegateTransactionInfo\n | DDCUndelegateTransactionInfo\n\nexport const addTransaction = createAction<{\n chainId: number\n hash: string\n from: string\n info: TransactionInfo\n}>('transactions/addTransaction')\nexport const clearAllTransactions = createAction<{ chainId: number }>('transactions/clearAllTransactions')\nexport const finalizeTransaction = createAction<{\n chainId: number\n hash: string\n receipt: SerializableTransactionReceipt\n}>('transactions/finalizeTransaction')\nexport const checkedTransaction = createAction<{\n chainId: number\n hash: string\n blockNumber: number\n}>('transactions/checkedTransaction')\n","import { createReducer } from '@reduxjs/toolkit'\n\nimport { updateVersion } from '../global/actions'\nimport {\n addTransaction,\n checkedTransaction,\n clearAllTransactions,\n finalizeTransaction,\n SerializableTransactionReceipt,\n TransactionInfo,\n} from './actions'\n\nconst now = () => new Date().getTime()\n\nexport interface TransactionDetails {\n hash: string\n receipt?: SerializableTransactionReceipt\n lastCheckedBlockNumber?: number\n addedTime: number\n confirmedTime?: number\n from: string\n info: TransactionInfo\n}\n\nexport interface TransactionState {\n [chainId: number]: {\n [txHash: string]: TransactionDetails\n }\n}\n\nexport const initialState: TransactionState = {}\n\nexport default createReducer(initialState, (builder) =>\n builder\n .addCase(updateVersion, (transactions) => {\n // in case there are any transactions in the store with the old format, remove them\n Object.keys(transactions).forEach((chainId) => {\n const chainTransactions = transactions[chainId as unknown as number]\n Object.keys(chainTransactions).forEach((hash) => {\n if (!('info' in chainTransactions[hash])) {\n // clear old transactions that don't have the right format\n delete chainTransactions[hash]\n }\n })\n })\n })\n .addCase(addTransaction, (transactions, { payload: { chainId, from, hash, info } }) => {\n if (transactions[chainId]?.[hash]) {\n throw Error('Attempted to add existing transaction.')\n }\n const txs = transactions[chainId] ?? {}\n txs[hash] = { hash, info, from, addedTime: now() }\n transactions[chainId] = txs\n })\n .addCase(clearAllTransactions, (transactions, { payload: { chainId } }) => {\n if (!transactions[chainId]) return\n transactions[chainId] = {}\n })\n .addCase(checkedTransaction, (transactions, { payload: { chainId, hash, blockNumber } }) => {\n const tx = transactions[chainId]?.[hash]\n if (!tx) {\n return\n }\n if (!tx.lastCheckedBlockNumber) {\n tx.lastCheckedBlockNumber = blockNumber\n } else {\n tx.lastCheckedBlockNumber = Math.max(blockNumber, tx.lastCheckedBlockNumber)\n }\n })\n .addCase(finalizeTransaction, (transactions, { payload: { hash, chainId, receipt } }) => {\n const tx = transactions[chainId]?.[hash]\n if (!tx) {\n return\n }\n tx.receipt = receipt\n tx.confirmedTime = now()\n })\n)\n","import { createReducer } from '@reduxjs/toolkit'\nimport { SupportedLocale } from 'constants/locales'\n\nimport { DEFAULT_DEADLINE_FROM_NOW } from '../../constants/misc'\nimport { updateVersion } from '../global/actions'\nimport {\n addSerializedPair,\n addSerializedToken,\n removeSerializedPair,\n removeSerializedToken,\n SerializedPair,\n SerializedToken,\n updateHideClosedPositions,\n updateMatchesDarkMode,\n updateShowDonationLink,\n updateShowSurveyPopup,\n updateUserClientSideRouter,\n updateUserDarkMode,\n updateUserDeadline,\n updateUserExpertMode,\n updateUserLocale,\n updateUserSlippageTolerance,\n} from './actions'\n\nconst currentTimestamp = () => new Date().getTime()\n\nexport interface UserState {\n // the timestamp of the last updateVersion action\n lastUpdateVersionTimestamp?: number\n\n matchesDarkMode: boolean // whether the dark mode media query matches\n\n userDarkMode: boolean | null // the user's choice for dark mode or light mode\n userLocale: SupportedLocale | null\n\n userExpertMode: boolean\n\n userClientSideRouter: boolean // whether routes should be calculated with the client side router only\n\n // hides closed (inactive) positions across the app\n userHideClosedPositions: boolean\n\n // user defined slippage tolerance in bips, used in all txns\n userSlippageTolerance: number | 'auto'\n userSlippageToleranceHasBeenMigratedToAuto: boolean // temporary flag for migration status\n\n // deadline set by user in minutes, used in all txns\n userDeadline: number\n\n tokens: {\n [chainId: number]: {\n [address: string]: SerializedToken\n }\n }\n\n pairs: {\n [chainId: number]: {\n // keyed by token0Address:token1Address\n [key: string]: SerializedPair\n }\n }\n\n timestamp: number\n URLWarningVisible: boolean\n\n // undefined means has not gone through A/B split yet\n showSurveyPopup: boolean | undefined\n\n showDonationLink: boolean\n}\n\nfunction pairKey(token0Address: string, token1Address: string) {\n return `${token0Address};${token1Address}`\n}\n\nexport const initialState: UserState = {\n matchesDarkMode: false,\n userDarkMode: null,\n userExpertMode: false,\n userLocale: null,\n userClientSideRouter: false,\n userHideClosedPositions: false,\n userSlippageTolerance: 'auto',\n userSlippageToleranceHasBeenMigratedToAuto: true,\n userDeadline: DEFAULT_DEADLINE_FROM_NOW,\n tokens: {},\n pairs: {},\n timestamp: currentTimestamp(),\n URLWarningVisible: true,\n showSurveyPopup: undefined,\n showDonationLink: true,\n}\n\nexport default createReducer(initialState, (builder) =>\n builder\n .addCase(updateVersion, (state) => {\n // slippage isnt being tracked in local storage, reset to default\n // noinspection SuspiciousTypeOfGuard\n if (\n typeof state.userSlippageTolerance !== 'number' ||\n !Number.isInteger(state.userSlippageTolerance) ||\n state.userSlippageTolerance < 0 ||\n state.userSlippageTolerance > 5000\n ) {\n state.userSlippageTolerance = 'auto'\n } else {\n if (\n !state.userSlippageToleranceHasBeenMigratedToAuto &&\n [10, 50, 100].indexOf(state.userSlippageTolerance) !== -1\n ) {\n state.userSlippageTolerance = 'auto'\n state.userSlippageToleranceHasBeenMigratedToAuto = true\n }\n }\n\n // deadline isnt being tracked in local storage, reset to default\n // noinspection SuspiciousTypeOfGuard\n if (\n typeof state.userDeadline !== 'number' ||\n !Number.isInteger(state.userDeadline) ||\n state.userDeadline < 60 ||\n state.userDeadline > 180 * 60\n ) {\n state.userDeadline = DEFAULT_DEADLINE_FROM_NOW\n }\n\n state.lastUpdateVersionTimestamp = currentTimestamp()\n })\n .addCase(updateUserDarkMode, (state, action) => {\n state.userDarkMode = action.payload.userDarkMode\n state.timestamp = currentTimestamp()\n })\n .addCase(updateMatchesDarkMode, (state, action) => {\n state.matchesDarkMode = action.payload.matchesDarkMode\n state.timestamp = currentTimestamp()\n })\n .addCase(updateUserExpertMode, (state, action) => {\n state.userExpertMode = action.payload.userExpertMode\n state.timestamp = currentTimestamp()\n })\n .addCase(updateUserLocale, (state, action) => {\n state.userLocale = action.payload.userLocale\n state.timestamp = currentTimestamp()\n })\n .addCase(updateUserSlippageTolerance, (state, action) => {\n state.userSlippageTolerance = action.payload.userSlippageTolerance\n state.timestamp = currentTimestamp()\n })\n .addCase(updateUserDeadline, (state, action) => {\n state.userDeadline = action.payload.userDeadline\n state.timestamp = currentTimestamp()\n })\n .addCase(updateUserClientSideRouter, (state, action) => {\n state.userClientSideRouter = action.payload.userClientSideRouter\n })\n .addCase(updateHideClosedPositions, (state, action) => {\n state.userHideClosedPositions = action.payload.userHideClosedPositions\n })\n .addCase(updateShowSurveyPopup, (state, action) => {\n state.showSurveyPopup = action.payload.showSurveyPopup\n })\n .addCase(updateShowDonationLink, (state, action) => {\n state.showDonationLink = action.payload.showDonationLink\n })\n .addCase(addSerializedToken, (state, { payload: { serializedToken } }) => {\n if (!state.tokens) {\n state.tokens = {}\n }\n state.tokens[serializedToken.chainId] = state.tokens[serializedToken.chainId] || {}\n state.tokens[serializedToken.chainId][serializedToken.address] = serializedToken\n state.timestamp = currentTimestamp()\n })\n .addCase(removeSerializedToken, (state, { payload: { address, chainId } }) => {\n if (!state.tokens) {\n state.tokens = {}\n }\n state.tokens[chainId] = state.tokens[chainId] || {}\n delete state.tokens[chainId][address]\n state.timestamp = currentTimestamp()\n })\n .addCase(addSerializedPair, (state, { payload: { serializedPair } }) => {\n if (\n serializedPair.token0.chainId === serializedPair.token1.chainId &&\n serializedPair.token0.address !== serializedPair.token1.address\n ) {\n const chainId = serializedPair.token0.chainId\n state.pairs[chainId] = state.pairs[chainId] || {}\n state.pairs[chainId][pairKey(serializedPair.token0.address, serializedPair.token1.address)] = serializedPair\n }\n state.timestamp = currentTimestamp()\n })\n .addCase(removeSerializedPair, (state, { payload: { chainId, tokenAAddress, tokenBAddress } }) => {\n if (state.pairs[chainId]) {\n // just delete both keys if either exists\n delete state.pairs[chainId][pairKey(tokenAAddress, tokenBAddress)]\n delete state.pairs[chainId][pairKey(tokenBAddress, tokenAAddress)]\n }\n state.timestamp = currentTimestamp()\n })\n)\n","import { configureStore } from '@reduxjs/toolkit'\nimport { setupListeners } from '@reduxjs/toolkit/query/react'\nimport multicall from 'lib/state/multicall'\nimport { load, save } from 'redux-localstorage-simple'\n\nimport application from './application/reducer'\nimport burn from './burn/reducer'\nimport burnV3 from './burn/v3/reducer'\nimport { api as dataApi } from './data/slice'\nimport { updateVersion } from './global/actions'\nimport lists from './lists/reducer'\nimport logs from './logs/slice'\nimport mint from './mint/reducer'\nimport mintV3 from './mint/v3/reducer'\nimport { routingApi } from './routing/slice'\nimport swap from './swap/reducer'\nimport transactions from './transactions/reducer'\nimport user from './user/reducer'\n\nconst PERSISTED_KEYS: string[] = ['user', 'transactions', 'lists']\n\nconst store = configureStore({\n reducer: {\n application,\n user,\n transactions,\n swap,\n mint,\n mintV3,\n burn,\n burnV3,\n multicall: multicall.reducer,\n lists,\n logs,\n [dataApi.reducerPath]: dataApi.reducer,\n [routingApi.reducerPath]: routingApi.reducer,\n },\n middleware: (getDefaultMiddleware) =>\n getDefaultMiddleware({ thunk: true })\n .concat(dataApi.middleware)\n .concat(routingApi.middleware)\n .concat(save({ states: PERSISTED_KEYS, debounce: 1000 })),\n preloadedState: load({ states: PERSISTED_KEYS, disableWarnings: process.env.NODE_ENV === 'test' }),\n})\n\nstore.dispatch(updateVersion())\n\nsetupListeners(store.dispatch)\n\nexport default store\n\nexport type AppState = ReturnType\nexport type AppDispatch = typeof store.dispatch\n","const EXPLORER_HOSTNAMES: { [hostname: string]: true } = {\n 'etherscan.io': true,\n 'kovan.etherscan.io': true,\n 'goerli.etherscan.io': true,\n 'optimistic.etherscan.io': true,\n 'kovan-optimistic.etherscan.io': true,\n 'rinkeby-explorer.arbitrum.io': true,\n 'arbiscan.io': true,\n}\n\n/**\n * Returns the anonymized version of the given href, i.e. one that does not leak user information\n * @param href the link to anonymize, i.e. remove any personal data from\n * @return string anonymized version of the given href\n */\nexport function anonymizeLink(href: string): string {\n try {\n const url = new URL(href)\n if (EXPLORER_HOSTNAMES[url.hostname]) {\n const pathPieces = url.pathname.split('/')\n\n const anonymizedPath = pathPieces.map((pc) => (/0x[a-fA-F0-9]+/.test(pc) ? '***' : pc)).join('/')\n\n return `${url.protocol}//${url.hostname}${anonymizedPath}`\n }\n return href\n } catch (error) {\n return href\n }\n}\n","import React, { HTMLProps } from 'react'\nimport { ArrowLeft, ExternalLink as LinkIconFeather, Trash, X } from 'react-feather'\nimport ReactGA from 'react-ga4'\nimport { Link } from 'react-router-dom'\nimport styled, { keyframes } from 'styled-components/macro'\n\nimport { anonymizeLink } from '../utils/anonymizeLink'\n\nexport const ButtonText = styled.button`\n outline: none;\n border: none;\n font-size: inherit;\n padding: 0;\n margin: 0;\n background: none;\n cursor: pointer;\n\n :hover {\n opacity: 0.7;\n }\n\n :focus {\n text-decoration: underline;\n }\n`\n\nexport const CloseIcon = styled(X)<{ onClick: () => void }>`\n cursor: pointer;\n`\n\n// for wrapper react feather icons\nexport const IconWrapper = styled.div<{ stroke?: string; size?: string; marginRight?: string; marginLeft?: string }>`\n display: flex;\n align-items: center;\n justify-content: center;\n width: ${({ size }) => size ?? '20px'};\n height: ${({ size }) => size ?? '20px'};\n margin-right: ${({ marginRight }) => marginRight ?? 0};\n margin-left: ${({ marginLeft }) => marginLeft ?? 0};\n & > * {\n stroke: ${({ theme, stroke }) => stroke ?? theme.blue1};\n }\n`\n\n// A button that triggers some onClick result, but looks like a link.\nexport const LinkStyledButton = styled.button<{ disabled?: boolean }>`\n border: none;\n text-decoration: none;\n\n background: linear-gradient(73.6deg,#85FFC4 2.11%,#5CC6FF 42.39%,#BC85FF 85.72%);\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n cursor: ${({ disabled }) => (disabled ? 'default' : 'pointer')};\n // color: ${({ theme, disabled }) => (disabled ? theme.text2 : theme.primary1)};\n font-weight: 600;\n\n :hover {\n text-decoration: ${({ disabled }) => (disabled ? null : 'underline')};\n }\n\n :focus {\n outline: none;\n text-decoration: ${({ disabled }) => (disabled ? null : 'underline')};\n }\n\n :active {\n text-decoration: none;\n }\n`\n\n// An internal link from the react-router-dom library that is correctly styled\nexport const StyledInternalLink = styled(Link)`\n text-decoration: none;\n cursor: pointer;\n color: ${({ theme }) => theme.primary1};\n font-weight: 600;\n\n :hover {\n text-decoration: underline;\n }\n\n :focus {\n outline: none;\n text-decoration: underline;\n }\n\n :active {\n text-decoration: none;\n }\n`\n\nconst StyledLink = styled.a`\n text-decoration: none;\n cursor: pointer;\n color: ${({ theme }) => theme.primary1};\n font-weight: 600;\n\n \n`\n\nconst LinkIconWrapper = styled.a`\n text-decoration: none;\n cursor: pointer;\n align-items: center;\n justify-content: center;\n display: flex;\n\n :hover {\n text-decoration: none;\n opacity: 0.7;\n }\n\n :focus {\n outline: none;\n text-decoration: none;\n }\n\n :active {\n text-decoration: none;\n }\n`\n\nconst LinkIcon = styled(LinkIconFeather)`\n height: 16px;\n width: 18px;\n margin-left: 10px;\n stroke: ${({ theme }) => theme.blue1};\n`\n\nexport const TrashIcon = styled(Trash)`\n height: 16px;\n width: 18px;\n margin-left: 10px;\n stroke: ${({ theme }) => theme.text3};\n\n cursor: pointer;\n align-items: center;\n justify-content: center;\n display: flex;\n\n :hover {\n opacity: 0.7;\n }\n`\n\nfunction handleClickExternalLink(event: React.MouseEvent) {\n const { target, href } = event.currentTarget\n\n const anonymizedHref = anonymizeLink(href)\n\n // don't prevent default, don't redirect if it's a new tab\n if (target === '_blank' || event.ctrlKey || event.metaKey) {\n ReactGA.outboundLink({ label: anonymizedHref }, () => {\n console.debug('Fired outbound link event', anonymizedHref)\n })\n } else {\n event.preventDefault()\n // send a ReactGA event and then trigger a location change\n ReactGA.outboundLink({ label: anonymizedHref }, () => {\n window.location.href = anonymizedHref\n })\n }\n}\n\n/**\n * Outbound link that handles firing google analytics events\n */\nexport function ExternalLink({\n target = '_blank',\n href,\n rel = 'noopener noreferrer',\n ...rest\n}: Omit, 'as' | 'ref' | 'onClick'> & { href: string }) {\n return \n}\n\nexport function ExternalLinkIcon({\n target = '_blank',\n href,\n rel = 'noopener noreferrer',\n ...rest\n}: Omit, 'as' | 'ref' | 'onClick'> & { href: string }) {\n return (\n \n \n \n )\n}\n\nconst rotate = keyframes`\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n`\n\nconst Spinner = styled.img`\n animation: 2s ${rotate} linear infinite;\n width: 16px;\n height: 16px;\n`\n\nconst BackArrowLink = styled(StyledInternalLink)`\n color: ${({ theme }) => theme.text1};\n`\nexport function BackArrow({ to }: { to: string }) {\n return (\n \n \n \n )\n}\n\nexport const CustomLightSpinner = styled(Spinner)<{ size: string }>`\n height: ${({ size }) => size};\n width: ${({ size }) => size};\n`\n\nexport const HideSmall = styled.span`\n ${({ theme }) => theme.mediaWidth.upToSmall`\n display: none;\n `};\n`\n\nexport const HideExtraSmall = styled.span`\n ${({ theme }) => theme.mediaWidth.upToExtraSmall`\n display: none;\n `};\n`\n\nexport const Separator = styled.div`\n width: 100%;\n height: 1px;\n background-color: ${({ theme }) => theme.bg2};\n`\n","import React, { useMemo } from 'react'\nimport { Text, TextProps as TextPropsOriginal } from 'rebass'\nimport styled, {\n createGlobalStyle,\n css,\n DefaultTheme,\n ThemeProvider as StyledComponentsThemeProvider,\n} from 'styled-components/macro'\n\nimport { useIsDarkMode } from '../state/user/hooks'\nimport { Colors } from './styled'\n\nexport * from './components'\n\ntype TextProps = Omit\n\nexport const MEDIA_WIDTHS = {\n upToExtraSmall: 500,\n upToSmall: 720,\n upToMedium: 960,\n upToLarge: 1280,\n}\n\n// Migrating to a standard z-index system https://getbootstrap.com/docs/5.0/layout/z-index/\n// Please avoid using deprecated numbers\nexport enum Z_INDEX {\n deprecated_zero = 0,\n deprecated_content = 1,\n dropdown = 1000,\n sticky = 1020,\n fixed = 1030,\n modalBackdrop = 1040,\n offcanvas = 1050,\n modal = 1060,\n popover = 1070,\n tooltip = 1080,\n}\n\nconst mediaWidthTemplates: { [width in keyof typeof MEDIA_WIDTHS]: typeof css } = Object.keys(MEDIA_WIDTHS).reduce(\n (accumulator, size) => {\n ;(accumulator as any)[size] = (a: any, b: any, c: any) => css`\n @media (max-width: ${(MEDIA_WIDTHS as any)[size]}px) {\n ${css(a, b, c)}\n }\n `\n return accumulator\n },\n {}\n) as any\n\nconst white = '#FFFFFF'\nconst black = '#000000'\n\nfunction colors(darkMode: boolean): Colors {\n return {\n darkMode,\n // base\n white,\n black,\n\n // text\n text1: darkMode ? '#FFFFFF' : '#000000',\n text2: darkMode ? '#C3C5CB' : '#ffffff',\n text3: darkMode ? '#8F96AC' : '#6E727D',\n text4: darkMode ? '#B2B9D2' : '#C3C5CB',\n text5: darkMode ? '#2C2F36' : '#EDEEF2',\n\n // backgrounds / greys\n bg0: darkMode ? '#191B1F' : '#FFF',\n bg1: darkMode ? '#000000' : '',\n bg2: darkMode ? '#2C2F36' : '#EDEEF2',\n bg3: darkMode ? '#40444F' : '#CED0D9',\n bg4: darkMode ? '#565A69' : '#888D9B',\n bg5: darkMode ? '#6C7284' : '#888D9B',\n bg6: darkMode ? '#1A2028' : '#6C7284',\n\n //specialty colors\n modalBG: darkMode ? 'rgba(0,0,0,.425)' : 'rgba(0,0,0,0.3)',\n advancedBG: darkMode ? 'rgba(0,0,0,0.1)' : 'rgba(255,255,255,0.6)',\n\n //primary colors\n primary1: !darkMode ? '#2172E5' : '#E8006F',\n primary2: !darkMode ? '#3680E7' : '#FF8CC3',\n primary3: !darkMode ? '#4D8FEA' : '#FF99C9',\n primary4: !darkMode ? '#376bad70' : '#F6DDE8',\n primary5: !darkMode ? '#153d6f70' : '#FDEAF1',\n\n // color text\n primaryText1: darkMode ? '#5090ea' : '#D50066',\n\n // secondary colors\n secondary1: darkMode ? '#2172E5' : '#E8006F',\n secondary2: darkMode ? '#17000b26' : '#F6DDE8',\n secondary3: darkMode ? '#17000b26' : '#FDEAF1',\n\n // other\n red1: darkMode ? '#FF4343' : '#DA2D2B',\n red2: darkMode ? '#F82D3A' : '#DF1F38',\n red3: '#D60000',\n green1: darkMode ? '#27AE60' : '#007D35',\n yellow1: '#E3A507',\n yellow2: '#FF8F00',\n yellow3: '#F3B71E',\n blue1: darkMode ? '#2172E5' : '#0068FC',\n blue2: darkMode ? '#5199FF' : '#0068FC',\n error: darkMode ? '#FD4040' : '#DF1F38',\n success: darkMode ? '#27AE60' : '#007D35',\n warning: '#FF8F00',\n\n // dont wanna forget these blue yet\n blue4: darkMode ? '#153d6f70' : '#C4D9F8',\n // blue5: darkMode ? '#153d6f70' : '#EBF4FF',\n }\n}\n\nfunction theme(darkMode: boolean): DefaultTheme {\n return {\n ...colors(darkMode),\n\n grids: {\n sm: 8,\n md: 12,\n lg: 24,\n },\n\n //shadows\n shadow1: darkMode ? '#000' : '#2F80ED',\n\n // media queries\n mediaWidth: mediaWidthTemplates,\n\n // css snippets\n flexColumnNoWrap: css`\n display: flex;\n flex-flow: column nowrap;\n `,\n flexRowNoWrap: css`\n display: flex;\n flex-flow: row nowrap;\n `,\n }\n}\n\nexport default function ThemeProvider({ children }: { children: React.ReactNode }) {\n const darkMode = useIsDarkMode()\n\n const themeObject = useMemo(() => theme(darkMode), [darkMode])\n\n return <>{children}\n}\n\nconst TextWrapper = styled(Text)<{ color: keyof Colors }>`\n color: ${({ color, theme }) => (theme as any)[color]};\n`\n\n/**\n * Preset styles of the Rebass Text component\n */\nexport const ThemedText = {\n Main(props: TextProps) {\n return \n },\n Link(props: TextProps) {\n return \n },\n Label(props: TextProps) {\n return \n },\n Black(props: TextProps) {\n return \n },\n White(props: TextProps) {\n return \n },\n Body(props: TextProps) {\n return \n },\n LargeHeader(props: TextProps) {\n return \n },\n MediumHeader(props: TextProps) {\n return \n },\n SubHeader(props: TextProps) {\n return \n },\n Small(props: TextProps) {\n return \n },\n Blue(props: TextProps) {\n return \n },\n Yellow(props: TextProps) {\n return \n },\n DarkGray(props: TextProps) {\n return \n },\n Gray(props: TextProps) {\n return \n },\n Italic(props: TextProps) {\n return \n },\n Error({ error, ...props }: { error: boolean } & TextProps) {\n return \n },\n}\n\nexport const ThemedGlobalStyle = createGlobalStyle`\nhtml {\n color: ${({ theme }) => theme.text1};\n background-color: ${({ theme }) => theme.bg1} !important;\n}\n\na {\n color: ${({ theme }) => theme.blue1}; \n}\n`\n\nexport const SmallOnly = styled.span`\n display: none;\n ${({ theme }) => theme.mediaWidth.upToSmall`\n display: block;\n `};\n`\n","import styled from 'styled-components/macro'\n\nconst Column = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n`\nexport const ColumnCenter = styled(Column)`\n width: 100%;\n align-items: center;\n`\n\nexport const AutoColumn = styled.div<{\n gap?: 'sm' | 'md' | 'lg' | string\n justify?: 'stretch' | 'center' | 'start' | 'end' | 'flex-start' | 'flex-end' | 'space-between'\n}>`\n\n grid-auto-rows: auto;\n grid-row-gap: ${({ gap }) => (gap === 'sm' && '8px') || (gap === 'md' && '12px') || (gap === 'lg' && '24px') || gap};\n justify-items: ${({ justify }) => justify && justify};\n`\n\nexport const AutoColumnV3 = styled.div<{\n gap?: 'sm' | 'md' | 'lg' | string\n justify?: 'stretch' | 'center' | 'start' | 'end' | 'flex-start' | 'flex-end' | 'space-between'\n}>`\n display: grid;\n grid-auto-rows: auto;\n grid-row-gap: ${({ gap }) => (gap === 'sm' && '8px') || (gap === 'md' && '12px') || (gap === 'lg' && '24px') || gap};\n justify-items: ${({ justify }) => justify && justify};\n`\n\n\nexport default Column\n","import { Box } from 'rebass/styled-components'\nimport styled from 'styled-components/macro'\n\nconst Row = styled(Box)<{\n width?: string\n align?: string\n justify?: string\n padding?: string\n border?: string\n borderRadius?: string\n}>`\n width: ${({ width }) => width ?? '100%'};\n display: flex;\n padding: 0;\n align-items: ${({ align }) => align ?? 'center'};\n justify-content: ${({ justify }) => justify ?? 'flex-start'};\n padding: ${({ padding }) => padding};\n border: ${({ border }) => border};\n border-radius: ${({ borderRadius }) => borderRadius};\n \n `\n\nexport const RowBetween = styled(Row)`\n justify-content: space-between;\n`\n\nexport const AutoRow = styled(Row)<{ gap?: string; justify?: string }>`\n flex-wrap: wrap;\n margin: ${({ gap }) => gap && `-${gap}`};\n justify-content: ${({ justify }) => justify && justify};\n margin:0px;\n & > * {\n margin: ${({ gap }) => gap} !important;\n }\n`\n\nexport const RowFixed = styled(Row)<{ gap?: string; justify?: string }>`\n width: fit-content;\n margin: ${({ gap }) => gap && `-${gap}`};\n`\n\nexport default Row\n","// @ts-nocheck\nimport React, { ErrorInfo } from 'react'\nimport ReactGA from 'react-ga4'\nimport styled from 'styled-components/macro'\n\nimport store, { AppState } from '../../state'\nimport { ExternalLink, ThemedText } from '../../theme'\nimport { userAgent } from '../../utils/userAgent'\nimport { AutoColumn } from '../Column'\nimport { AutoRow } from '../Row'\n\nconst FallbackWrapper = styled.div`\n display: flex;\n flex-direction: column;\n width: 100%;\n align-items: center;\n z-index: 1;\n`\n\nconst BodyWrapper = styled.div<{ margin?: string }>`\n padding: 1rem;\n width: 100%;\n white-space: ;\n`\n\nconst CodeBlockWrapper = styled.div`\n background: ${({ theme }) => theme.bg0};\n overflow: auto;\n white-space: pre;\n box-shadow: 0px 0px 1px rgba(0, 0, 0, 0.01), 0px 4px 8px rgba(0, 0, 0, 0.04), 0px 16px 24px rgba(0, 0, 0, 0.04),\n 0px 24px 32px rgba(0, 0, 0, 0.01);\n border-radius: 24px;\n padding: 18px 24px;\n color: ${({ theme }) => theme.text1};\n`\n\nconst LinkWrapper = styled.div`\n color: ${({ theme }) => theme.blue1};\n padding: 6px 24px;\n`\n\nconst SomethingWentWrongWrapper = styled.div`\n padding: 6px 24px;\n`\n\ntype ErrorBoundaryState = {\n error: Error | null\n}\n\nconst IS_UNISWAP = window.location.hostname === 'app.uniswap.org'\n\nexport default class ErrorBoundary extends React.Component {\n constructor(props: unknown) {\n super(props)\n this.state = { error: null }\n }\n\n static getDerivedStateFromError(error: Error): ErrorBoundaryState {\n return { error }\n }\n\n componentDidCatch(error: Error, errorInfo: ErrorInfo) {\n ReactGA.event('exception', { description: error.toString() + errorInfo.toString(), fatal: true })\n }\n\n render() {\n const { error } = this.state\n\n if (error !== null) {\n const encodedBody = encodeURIComponent(issueBody(error))\n return (\n \n \n \n \n \n <>Something went wrong\n \n \n \n \n {error.stack}\n \n \n {IS_UNISWAP ? (\n \n \n \n \n <>Create an issue on GitHub\n \n \n \n \n \n \n \n <>Get support on Discord\n \n \n \n \n \n ) : null}\n \n \n \n )\n }\n return this.props.children\n }\n}\n\nfunction getRelevantState(): null | keyof AppState {\n const path = window.location.hash\n if (!path.startsWith('#/')) {\n return null\n }\n const pieces = path.substring(2).split(/[/\\\\?]/)\n switch (pieces[0]) {\n case 'swap':\n return 'swap'\n case 'add':\n if (pieces[1] === 'v2') return 'mint'\n else return 'mintV3'\n case 'remove':\n if (pieces[1] === 'v2') return 'burn'\n else return 'burnV3'\n }\n return null\n}\n\nfunction issueBody(error: Error): string {\n const relevantState = getRelevantState()\n const deviceData = userAgent\n return `## URL\n \n${window.location.href}\n\n${\n relevantState\n ? `## \\`${relevantState}\\` state\n \n\\`\\`\\`json\n${JSON.stringify(store.getState()[relevantState], null, 2)}\n\\`\\`\\`\n`\n : ''\n}\n${\n error.name &&\n `## Error\n\n\\`\\`\\`\n${error.name}${error.message && `: ${error.message}`}\n\\`\\`\\`\n`\n}\n${\n error.stack &&\n `## Stacktrace\n\n\\`\\`\\`\n${error.stack}\n\\`\\`\\`\n`\n}\n${\n deviceData &&\n `## Device data\n\n\\`\\`\\`json\n${JSON.stringify(deviceData, null, 2)}\n\\`\\`\\`\n`\n}\n`\n}\n","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\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; }\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; }\nimport * as React from \"react\";\nfunction SvgLogo(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 255,\n height: 73,\n viewBox: \"0 0 255 73\",\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 0H22.39L16.89 49.4H5.71L0 0Z\",\n fill: \"#9BBCFB\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.1894 72.6198C16.2041 72.6198 20.2694 68.5187 20.2694 63.4598C20.2694 58.4009 16.2041 54.2998 11.1894 54.2998C6.17463 54.2998 2.10938 58.4009 2.10938 63.4598C2.10938 68.5187 6.17463 72.6198 11.1894 72.6198Z\",\n fill: \"#9BBCFB\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M39.4902 0H61.8702L56.3802 49.4H45.1902L39.4902 0Z\",\n fill: \"#9BBCFB\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M50.6796 72.6198C55.6944 72.6198 59.7596 68.5187 59.7596 63.4598C59.7596 58.4009 55.6944 54.2998 50.6796 54.2998C45.6649 54.2998 41.5996 58.4009 41.5996 63.4598C41.5996 68.5187 45.6649 72.6198 50.6796 72.6198Z\",\n fill: \"#9BBCFB\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M95.9609 13.4492H106.781C113.621 13.4492 116.981 17.2692 116.981 24.2992V46.4992C116.981 53.4992 113.621 57.3492 106.781 57.3492H95.9609V13.4492ZM102.801 19.7192V51.0792H106.661C108.831 51.0792 110.141 49.9492 110.141 46.8092V23.9892C110.141 20.8492 108.831 19.7192 106.661 19.7192H102.801Z\",\n fill: \"#445983\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M124.5 23.9902C124.5 16.9902 128.17 12.9902 134.89 12.9902C141.61 12.9902 145.27 16.9902 145.27 23.9902V46.8102C145.27 53.8102 141.6 57.8102 134.89 57.8102C128.18 57.8102 124.5 53.8102 124.5 46.8102V23.9902ZM131.34 47.2502C131.34 50.3902 132.71 51.5802 134.89 51.5802C137.07 51.5802 138.44 50.3902 138.44 47.2502V23.5502C138.44 20.4102 137.07 19.2202 134.9 19.2202C132.73 19.2202 131.35 20.4102 131.35 23.5502L131.34 47.2502Z\",\n fill: \"#445983\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M159.949 13.4492V47.3192C159.949 50.4592 161.319 51.5892 163.489 51.5892C165.659 51.5892 167.039 50.4592 167.039 47.3192V13.4492H173.499V46.8792C173.499 53.8792 170.019 57.8792 163.299 57.8792C156.579 57.8792 153.109 53.8792 153.109 46.8792V13.4492H159.949Z\",\n fill: \"#445983\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M202.36 23.5492V25.1092C202.36 29.6292 200.99 32.4492 197.94 33.8892V34.0192C201.61 35.4592 203.04 38.7192 203.04 43.3592V46.9392C203.04 53.7092 199.49 57.3492 192.65 57.3492H181.9V13.4492H192.22C199.31 13.4492 202.36 16.7692 202.36 23.5492ZM188.74 19.7192V31.3192H191.44C193.99 31.3192 195.55 30.1892 195.55 26.6792V24.2392C195.55 21.0992 194.49 19.7192 192.06 19.7192H188.74ZM188.74 37.5892V51.0792H192.65C194.96 51.0792 196.2 50.0092 196.2 46.7492V42.9292C196.2 38.8492 194.89 37.5892 191.78 37.5892H188.74Z\",\n fill: \"#445983\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M210.879 13.4492H217.709V51.0792H228.969V57.3192H210.879V13.4492Z\",\n fill: \"#445983\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M242.529 31.9492H251.909V38.2192H242.529V51.0792H254.339V57.3192H235.689V13.4492H254.339V19.7192H242.529V31.9492Z\",\n fill: \"#445983\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLogo);\nexport default __webpack_public_path__ + \"static/media/logo.2fe15ffb.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3, _path4;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\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; }\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; }\nimport * as React from \"react\";\nfunction SvgLogoMark(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 63,\n height: 73,\n viewBox: \"0 0 63 73\",\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 0H22.39L16.89 49.4H5.71L0 0Z\",\n fill: \"#9BBCFB\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.1894 72.6198C16.2041 72.6198 20.2694 68.5187 20.2694 63.4598C20.2694 58.4009 16.2041 54.2998 11.1894 54.2998C6.17463 54.2998 2.10938 58.4009 2.10938 63.4598C2.10938 68.5187 6.17463 72.6198 11.1894 72.6198Z\",\n fill: \"#9BBCFB\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M39.4902 0H61.8702L56.3802 49.4H45.1902L39.4902 0Z\",\n fill: \"#9BBCFB\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M50.6796 72.6198C55.6944 72.6198 59.7596 68.5187 59.7596 63.4598C59.7596 58.4009 55.6944 54.2998 50.6796 54.2998C45.6649 54.2998 41.5996 58.4009 41.5996 63.4598C41.5996 68.5187 45.6649 72.6198 50.6796 72.6198Z\",\n fill: \"#9BBCFB\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLogoMark);\nexport default __webpack_public_path__ + \"static/media/logo-mark.f9a8d0b0.svg\";\nexport { ForwardRef as ReactComponent };","import { DEFAULT_TXN_DISMISS_MS } from 'constants/misc'\nimport { useCallback, useMemo } from 'react'\nimport { useAppDispatch, useAppSelector } from 'state/hooks'\n\nimport { AppState } from '../index'\nimport { addPopup, ApplicationModal, PopupContent, removePopup, setOpenModal } from './reducer'\n\nexport function useModalOpen(modal: ApplicationModal): boolean {\n const openModal = useAppSelector((state: AppState) => state.application.openModal)\n return openModal === modal\n}\n\nexport function useToggleModal(modal: ApplicationModal): () => void {\n const open = useModalOpen(modal)\n const dispatch = useAppDispatch()\n return useCallback(() => dispatch(setOpenModal(open ? null : modal)), [dispatch, modal, open])\n}\n\nexport function useWalletModalToggle(): () => void {\n return useToggleModal(ApplicationModal.WALLET)\n}\n\nexport function useToggleSettingsMenu(): () => void {\n return useToggleModal(ApplicationModal.SETTINGS)\n}\n\nexport function useShowClaimPopup(): boolean {\n return useModalOpen(ApplicationModal.CLAIM_POPUP)\n}\n\nexport function useToggleShowClaimPopup(): () => void {\n return useToggleModal(ApplicationModal.CLAIM_POPUP)\n}\n\nexport function useToggleSelfClaimModal(): () => void {\n return useToggleModal(ApplicationModal.SELF_CLAIM)\n}\n\nexport function useTogglePrivacyPolicy(): () => void {\n return useToggleModal(ApplicationModal.PRIVACY_POLICY)\n}\n\n// returns a function that allows adding a popup\nexport function useAddPopup(): (content: PopupContent, key?: string, removeAfterMs?: number) => void {\n const dispatch = useAppDispatch()\n\n return useCallback(\n (content: PopupContent, key?: string, removeAfterMs?: number) => {\n dispatch(addPopup({ content, key, removeAfterMs: removeAfterMs ?? DEFAULT_TXN_DISMISS_MS }))\n },\n [dispatch]\n )\n}\n\n// returns a function that allows removing a popup via its key\nexport function useRemovePopup(): (key: string) => void {\n const dispatch = useAppDispatch()\n return useCallback(\n (key: string) => {\n dispatch(removePopup({ key }))\n },\n [dispatch]\n )\n}\n\n// get the list of active popups\nexport function useActivePopups(): AppState['application']['popupList'] {\n const list = useAppSelector((state: AppState) => state.application.popupList)\n return useMemo(() => list.filter((item) => item.show), [list])\n}\n","import { TransactionResponse } from '@ethersproject/providers'\nimport { initializeApp } from 'firebase/app'\nimport { getDatabase, push, ref } from 'firebase/database'\nimport useActiveWeb3React from 'hooks/useActiveWeb3React'\nimport { useCallback } from 'react'\nimport { TransactionInfo, TransactionType } from 'state/transactions/actions'\n\ntype PartialTransactionResponse = Pick\n\nconst SUPPORTED_TRANSACTION_TYPES = [\n TransactionType.ADD_LIQUIDITY_V2_POOL,\n TransactionType.ADD_LIQUIDITY_V3_POOL,\n TransactionType.CREATE_V3_POOL,\n TransactionType.REMOVE_LIQUIDITY_V3,\n TransactionType.SWAP,\n]\n\nconst FIREBASE_API_KEY = process.env.REACT_APP_FIREBASE_KEY\nconst firebaseEnabled = typeof FIREBASE_API_KEY !== 'undefined'\nif (firebaseEnabled) initializeFirebase()\n\nfunction useMonitoringEventCallback() {\n const { chainId } = useActiveWeb3React()\n\n return useCallback(\n async function log(\n type: string,\n {\n transactionResponse,\n walletAddress,\n }: { transactionResponse: PartialTransactionResponse; walletAddress: string | undefined }\n ) {\n if (!firebaseEnabled) return\n\n const db = getDatabase()\n\n if (!walletAddress) {\n console.debug('Wallet address required to log monitoring events.')\n return\n }\n try {\n push(ref(db, 'trm'), {\n chainId,\n origin: window.location.origin,\n timestamp: Date.now(),\n tx: transactionResponse,\n type,\n walletAddress,\n })\n } catch (e) {\n console.debug('Error adding document: ', e)\n }\n },\n [chainId]\n )\n}\n\nexport function useTransactionMonitoringEventCallback() {\n const { account } = useActiveWeb3React()\n const log = useMonitoringEventCallback()\n\n return useCallback(\n (info: TransactionInfo, transactionResponse: TransactionResponse) => {\n if (SUPPORTED_TRANSACTION_TYPES.includes(info.type)) {\n log(TransactionType[info.type], {\n transactionResponse: (({ hash, v, r, s }: PartialTransactionResponse) => ({ hash, v, r, s }))(\n transactionResponse\n ),\n walletAddress: account ?? undefined,\n })\n }\n },\n [account, log]\n )\n}\n\nexport function useWalletConnectMonitoringEventCallback() {\n const log = useMonitoringEventCallback()\n\n return useCallback(\n (walletAddress) => {\n log('WALLET_CONNECTED', { transactionResponse: { hash: '', r: '', s: '', v: -1 }, walletAddress })\n },\n [log]\n )\n}\n\nfunction initializeFirebase() {\n initializeApp({\n apiKey: process.env.REACT_APP_FIREBASE_KEY,\n authDomain: 'interface-monitoring.firebaseapp.com',\n databaseURL: 'https://interface-monitoring-default-rtdb.firebaseio.com',\n projectId: 'interface-monitoring',\n storageBucket: 'interface-monitoring.appspot.com',\n messagingSenderId: '968187720053',\n appId: '1:968187720053:web:acedf72dce629d470be33c',\n })\n}\n","import { TransactionResponse } from '@ethersproject/providers'\nimport { Token } from '@uniswap/sdk-core'\nimport useActiveWeb3React from 'hooks/useActiveWeb3React'\nimport { useTransactionMonitoringEventCallback } from 'hooks/useMonitoringEventCallback'\nimport { useCallback, useMemo } from 'react'\nimport { useAppDispatch, useAppSelector } from 'state/hooks'\n\nimport { addTransaction, TransactionInfo, TransactionType } from './actions'\nimport { TransactionDetails } from './reducer'\n\n// helper that can take a ethers library transaction response and add it to the list of transactions\nexport function useTransactionAdder(): (response: TransactionResponse, info: TransactionInfo) => void {\n const { chainId, account } = useActiveWeb3React()\n const dispatch = useAppDispatch()\n\n const logMonitoringEvent = useTransactionMonitoringEventCallback()\n\n return useCallback(\n (response: TransactionResponse, info: TransactionInfo) => {\n if (!account) return\n if (!chainId) return\n\n const { hash } = response\n if (!hash) {\n throw Error('No transaction hash found.')\n }\n dispatch(addTransaction({ hash, from: account, info, chainId }))\n\n logMonitoringEvent(info, response)\n },\n [account, chainId, dispatch, logMonitoringEvent]\n )\n}\n\n// returns all the transactions for the current chain\nexport function useAllTransactions(): { [txHash: string]: TransactionDetails } {\n const { chainId } = useActiveWeb3React()\n\n const state = useAppSelector((state) => state.transactions)\n\n return chainId ? state[chainId] ?? {} : {}\n}\n\nexport function useTransaction(transactionHash?: string): TransactionDetails | undefined {\n const allTransactions = useAllTransactions()\n\n if (!transactionHash) {\n return undefined\n }\n\n return allTransactions[transactionHash]\n}\n\nexport function useIsTransactionPending(transactionHash?: string): boolean {\n const transactions = useAllTransactions()\n\n if (!transactionHash || !transactions[transactionHash]) return false\n\n return !transactions[transactionHash].receipt\n}\n\nexport function useIsTransactionConfirmed(transactionHash?: string): boolean {\n const transactions = useAllTransactions()\n\n if (!transactionHash || !transactions[transactionHash]) return false\n\n return Boolean(transactions[transactionHash].receipt)\n}\n\n/**\n * Returns whether a transaction happened in the last day (86400 seconds * 1000 milliseconds / second)\n * @param tx to check for recency\n */\nexport function isTransactionRecent(tx: TransactionDetails): boolean {\n return new Date().getTime() - tx.addedTime < 86_400_000\n}\n\n// returns whether a token has a pending approval transaction\nexport function useHasPendingApproval(token?: Token, spender?: string): boolean {\n const allTransactions = useAllTransactions()\n return useMemo(\n () =>\n typeof token?.address === 'string' &&\n typeof spender === 'string' &&\n Object.keys(allTransactions).some((hash) => {\n const tx = allTransactions[hash]\n if (!tx) return false\n if (tx.receipt) {\n return false\n } else {\n if (tx.info.type !== TransactionType.APPROVAL) return false\n return tx.info.spender === spender && tx.info.tokenAddress === token.address && isTransactionRecent(tx)\n }\n }),\n [allTransactions, spender, token?.address]\n )\n}\n\nexport function useHasPendingLiquidityApproval(token?: string, spender?: string): boolean {\n const allTransactions = useAllTransactions()\n return useMemo(\n () =>\n typeof token === 'string' &&\n typeof spender === 'string' &&\n Object.keys(allTransactions).some((hash) => {\n const tx = allTransactions[hash]\n if (!tx) return false\n if (tx.receipt) {\n return false\n } else {\n if (tx.info.type !== TransactionType.APPROVAL) return false\n return tx.info.spender === spender && tx.info.tokenAddress === token && isTransactionRecent(tx)\n }\n }),\n [allTransactions, spender, token]\n )\n}\n","import { useContext } from 'react'\nimport { ThemeContext } from 'styled-components/macro'\n\nexport default function useTheme() {\n // @ts-ignore\n return useContext(ThemeContext)\n}\n","import useTheme from 'hooks/useTheme'\nimport { darken } from 'polished'\nimport { Check } from 'react-feather'\nimport { Button as RebassButton, ButtonProps as ButtonPropsOriginal } from 'rebass/styled-components'\nimport styled from 'styled-components/macro'\n\nimport { RowBetween } from '../Row'\n\ntype ButtonProps = Omit\n\nexport const BaseButton = styled(RebassButton) <\n {\n padding?: string\n width?: string\n $borderRadius?: string\n altDisabledStyle?: boolean\n } & ButtonProps\n >`\n padding: ${({ padding }) => padding ?? '16px'};\n width: ${({ width }) => width ?? '100%'};\n font-weight: 600;\n text-align: center;\n border-radius: ${({ $borderRadius }) => $borderRadius ?? '20px'};\n outline: none;\n color: ${({ theme }) => theme.text1};\n text-decoration: none;\n display: flex;\n justify-content: center;\n flex-wrap: nowrap;\n align-items: center;\n cursor: pointer;\n position: relative;\n z-index: 1;\n font-size: 16px;\n height: 40px;\n \n &:disabled {\n opacity: 50%;\n cursor: auto;\n pointer-events: none;\n }\n\n will-change: transform;\n transition: transform 450ms ease;\n transform: perspective(1px) translateZ(0);\n\n > * {\n user-select: none;\n }\n\n > a {\n text-decoration: none;\n }\n`\n\nexport const ButtonPrimary = styled(BaseButton)`\n color: white;\n background: linear-gradient(73.6deg, #85FFC4 2.11%, #5CC6FF 42.39%, #BC85FF 85.72%);\n &:disabled {\n opacity: 0.45;\n cursor: auto;\n box-shadow: none;\n outline: none;\n border:none;\n }\n`\n\nexport const ButtonLight = styled(BaseButton)`\n background-color: ${({ theme }) => theme.primary5};\n color: ${({ theme }) => theme.primaryText1};\n font-size: 16px;\n font-weight: 600;\n &:focus {\n box-shadow: 0 0 0 1pt ${({ theme, disabled }) => !disabled && darken(0.03, theme.primary5)};\n background-color: ${({ theme, disabled }) => !disabled && darken(0.03, theme.primary5)};\n }\n &:hover {\n background-color: ${({ theme, disabled }) => !disabled && darken(0.03, theme.primary5)};\n }\n &:active {\n box-shadow: 0 0 0 1pt ${({ theme, disabled }) => !disabled && darken(0.05, theme.primary5)};\n background-color: ${({ theme, disabled }) => !disabled && darken(0.05, theme.primary5)};\n }\n :disabled {\n opacity: 0.4;\n :hover {\n cursor: auto;\n background-color: ${({ theme }) => theme.primary5};\n box-shadow: none;\n border: 1px solid transparent;\n outline: none;\n }\n }\n`\n\nexport const ButtonGray = styled(BaseButton)`\n background-color: ${({ theme }) => theme.bg1};\n color: ${({ theme }) => theme.text2};\n font-size: 16px;\n font-weight: 600;\n\n &:hover {\n background-color: ${({ theme, disabled }) => !disabled && darken(0.05, theme.bg2)};\n }\n &:active {\n background-color: ${({ theme, disabled }) => !disabled && darken(0.1, theme.bg2)};\n }\n`\n\nexport const ButtonSecondary = styled(BaseButton)`\n border: 1px solid ${({ theme }) => theme.primary4};\n color: ${({ theme }) => theme.primary1};\n background-color: transparent;\n font-size: 16px;\n border-radius: 12px;\n padding: ${({ padding }) => (padding ? padding : '10px')};\n\n &:active {\n box-shadow: 0 0 0 1pt ${({ theme }) => theme.primary4};\n border: 1px solid ${({ theme }) => theme.primary3};\n }\n &:disabled {\n opacity: 50%;\n cursor: auto;\n }\n a:hover {\n text-decoration: none;\n }\n`\n\nexport const ButtonOutlined = styled(BaseButton)`\n border: 1px solid ${({ theme }) => theme.bg2};\n background-color: transparent;\n color: ${({ theme }) => theme.text2};\n &:focus {\n box-shadow: 0 0 0 1px ${({ theme }) => theme.bg4};\n }\n &:hover {\n box-shadow: 0 0 0 1px ${({ theme }) => theme.bg4};\n }\n &:active {\n box-shadow: 0 0 0 1px ${({ theme }) => theme.bg4};\n }\n &:disabled {\n opacity: 50%;\n cursor: auto;\n }\n`\n\nexport const ButtonEmpty = styled(BaseButton)`\n background-color: transparent;\n color: ${({ theme }) => theme.primary1};\n display: flex;\n justify-content: center;\n align-items: center;\n\n &:focus {\n text-decoration: underline;\n }\n &:hover {\n text-decoration: none;\n }\n &:active {\n text-decoration: none;\n }\n &:disabled {\n opacity: 50%;\n cursor: auto;\n }\n`\n\nexport const ButtonText = styled(BaseButton)`\n padding: 0;\n width: fit-content;\n background: none;\n text-decoration: none;\n &:focus {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n text-decoration: underline;\n }\n &:hover {\n // text-decoration: underline;\n opacity: 0.9;\n }\n &:active {\n text-decoration: underline;\n }\n &:disabled {\n opacity: 50%;\n cursor: auto;\n }\n`\n\nconst ButtonConfirmedStyle = styled(BaseButton)`\n background-color: ${({ theme }) => theme.bg3};\n color: ${({ theme }) => theme.text1};\n /* border: 1px solid ${({ theme }) => theme.green1}; */\n\n &:disabled {\n opacity: 50%;\n background-color: ${({ theme }) => theme.bg2};\n color: ${({ theme }) => theme.text2};\n cursor: auto;\n }\n`\n\nconst ButtonErrorStyle = styled(BaseButton)`\n background-color: ${({ theme }) => theme.red1};\n border: 1px solid ${({ theme }) => theme.red1};\n\n &:focus {\n box-shadow: 0 0 0 1pt ${({ theme }) => darken(0.05, theme.red1)};\n background-color: ${({ theme }) => darken(0.05, theme.red1)};\n }\n &:hover {\n background-color: ${({ theme }) => darken(0.05, theme.red1)};\n }\n &:active {\n box-shadow: 0 0 0 1pt ${({ theme }) => darken(0.1, theme.red1)};\n background-color: ${({ theme }) => darken(0.1, theme.red1)};\n }\n &:disabled {\n opacity: 50%;\n cursor: auto;\n box-shadow: none;\n background-color: ${({ theme }) => theme.red1};\n border: 1px solid ${({ theme }) => theme.red1};\n }\n`\n\nexport function ButtonConfirmed({\n confirmed,\n altDisabledStyle,\n ...rest\n}: { confirmed?: boolean; altDisabledStyle?: boolean } & ButtonProps) {\n if (confirmed) {\n return \n } else {\n return \n }\n}\n\nexport function ButtonError({ error, ...rest }: { error?: boolean } & ButtonProps) {\n if (error) {\n return \n } else {\n return \n }\n}\n\nconst ActiveOutlined = styled(ButtonOutlined)`\n border: 1px solid;\n border-color: ${({ theme }) => theme.primary1};\n`\n\nconst Circle = styled.div`\n height: 17px;\n width: 17px;\n border-radius: 50%;\n background-color: ${({ theme }) => theme.primary1};\n display: flex;\n align-items: center;\n justify-content: center;\n`\n\nconst CheckboxWrapper = styled.div`\n width: 20px;\n padding: 0 10px;\n position: absolute;\n top: 11px;\n right: 15px;\n`\n\nconst ResponsiveCheck = styled(Check)`\n size: 13px;\n`\n\nexport function ButtonRadioChecked({ active = false, children, ...rest }: { active?: boolean } & ButtonProps) {\n const theme = useTheme()\n\n if (!active) {\n return (\n \n {{children}}\n \n )\n } else {\n return (\n \n {\n \n {children}\n \n \n \n \n \n \n }\n \n )\n }\n}\n","export default __webpack_public_path__ + \"static/media/walletConnectIcon.304e3277.svg\";","import { EventEmitter } from 'events'\nimport { AbstractConnectorArguments, ConnectorUpdate, ConnectorEvent } from '../types'\n\nexport abstract class AbstractConnector extends EventEmitter {\n public readonly supportedChainIds?: number[]\n\n constructor({ supportedChainIds }: AbstractConnectorArguments = {}) {\n super()\n this.supportedChainIds = supportedChainIds\n }\n\n public abstract activate(): Promise\n public abstract getProvider(): Promise\n public abstract getChainId(): Promise\n public abstract getAccount(): Promise\n public abstract deactivate(): void\n\n protected emitUpdate(update: ConnectorUpdate): void {\n this.emit(ConnectorEvent.Update, update)\n }\n\n protected emitError(error: Error): void {\n this.emit(ConnectorEvent.Error, error)\n }\n\n protected emitDeactivate(): void {\n this.emit(ConnectorEvent.Deactivate)\n }\n}\n","// @ts-nocheck\nimport { AbstractConnectorArguments, ConnectorUpdate } from '../types'\nimport { AbstractConnector } from '../abstract-connector'\nimport warning from 'tiny-warning'\n\nimport { SendReturnResult, SendReturn, Send, SendOld } from './types'\n\nfunction parseSendReturn(sendReturn: SendReturnResult | SendReturn): any {\n return sendReturn.hasOwnProperty('result') ? sendReturn.result : sendReturn\n}\n\nexport class NoEthereumProviderError extends Error {\n public constructor() {\n super()\n this.name = this.constructor.name\n this.message = 'No Ethereum provider was found on window.ethereum.'\n }\n}\n\nexport class UserRejectedRequestError extends Error {\n public constructor() {\n super()\n this.name = this.constructor.name\n this.message = 'The user rejected the request.'\n }\n}\n\nexport class InjectedConnector extends AbstractConnector {\n constructor(kwargs: AbstractConnectorArguments) {\n super(kwargs)\n\n this.handleNetworkChanged = this.handleNetworkChanged.bind(this)\n this.handleChainChanged = this.handleChainChanged.bind(this)\n this.handleAccountsChanged = this.handleAccountsChanged.bind(this)\n this.handleClose = this.handleClose.bind(this)\n }\n\n private handleChainChanged(chainId: string | number): void {\n this.emitUpdate({ chainId, provider: window.ethereum })\n }\n\n private handleAccountsChanged(accounts: string[]): void {\n if (accounts.length === 0) {\n this.emitDeactivate()\n } else {\n this.emitUpdate({ account: accounts[0] })\n }\n }\n\n private handleClose(code: number, reason: string): void {\n this.emitDeactivate()\n }\n\n private handleNetworkChanged(networkId: string | number): void {\n this.emitUpdate({ chainId: networkId, provider: window.ethereum })\n }\n\n public async activate(): Promise {\n if (!window.ethereum) {\n throw new NoEthereumProviderError()\n }\n\n if (window.ethereum.on) {\n window.ethereum.on('chainChanged', this.handleChainChanged)\n window.ethereum.on('accountsChanged', this.handleAccountsChanged)\n window.ethereum.on('close', this.handleClose)\n window.ethereum.on('networkChanged', this.handleNetworkChanged)\n }\n\n if ((window.ethereum as any).isMetaMask) {\n ;(window.ethereum as any).autoRefreshOnNetworkChange = false\n }\n\n // try to activate + get account via eth_requestAccounts\n let account\n try {\n account = await (window.ethereum.send as Send)('eth_requestAccounts').then(\n sendReturn => parseSendReturn(sendReturn)[0]\n )\n } catch (error) {\n if ((error as any).code === 4001) {\n throw new UserRejectedRequestError()\n }\n warning(false, 'eth_requestAccounts was unsuccessful, falling back to enable')\n }\n\n // if unsuccessful, try enable\n if (!account) {\n // if enable is successful but doesn't return accounts, fall back to getAccount (not happy i have to do this...)\n account = await window.ethereum.enable().then(sendReturn => sendReturn && parseSendReturn(sendReturn)[0])\n }\n\n return { provider: window.ethereum, ...(account ? { account } : {}) }\n }\n\n public async getProvider(): Promise {\n return window.ethereum\n }\n\n public async getChainId(): Promise {\n if (!window.ethereum) {\n throw new NoEthereumProviderError()\n }\n\n let chainId\n try {\n chainId = await (window.ethereum.send as Send)('eth_chainId').then(parseSendReturn)\n } catch {\n warning(false, 'eth_chainId was unsuccessful, falling back to net_version')\n }\n\n if (!chainId) {\n try {\n chainId = await (window.ethereum.send as Send)('net_version').then(parseSendReturn)\n } catch {\n warning(false, 'net_version was unsuccessful, falling back to net version v2')\n }\n }\n\n if (!chainId) {\n try {\n chainId = parseSendReturn((window.ethereum.send as SendOld)({ method: 'net_version' }))\n } catch {\n warning(false, 'net_version v2 was unsuccessful, falling back to manual matches and static properties')\n }\n }\n\n if (!chainId) {\n if ((window.ethereum as any).isDapper) {\n chainId = parseSendReturn((window.ethereum as any).cachedResults.net_version)\n } else {\n chainId =\n (window.ethereum as any).chainId ||\n (window.ethereum as any).netVersion ||\n (window.ethereum as any).networkVersion ||\n (window.ethereum as any)._chainId\n }\n }\n\n return chainId\n }\n\n public async getAccount(): Promise {\n if (!window.ethereum) {\n throw new NoEthereumProviderError()\n }\n\n let account\n try {\n account = await (window.ethereum.send as Send)('eth_accounts').then(sendReturn => parseSendReturn(sendReturn)[0])\n } catch {\n warning(false, 'eth_accounts was unsuccessful, falling back to enable')\n }\n\n if (!account) {\n try {\n account = await window.ethereum.enable().then(sendReturn => parseSendReturn(sendReturn)[0])\n } catch {\n warning(false, 'enable was unsuccessful, falling back to eth_accounts v2')\n }\n }\n\n if (!account) {\n account = parseSendReturn((window.ethereum.send as SendOld)({ method: 'eth_accounts' }))[0]\n }\n\n return account\n }\n\n public deactivate() {\n if (window.ethereum && window.ethereum.removeListener) {\n window.ethereum.removeListener('chainChanged', this.handleChainChanged)\n window.ethereum.removeListener('accountsChanged', this.handleAccountsChanged)\n window.ethereum.removeListener('close', this.handleClose)\n window.ethereum.removeListener('networkChanged', this.handleNetworkChanged)\n }\n }\n\n public async isAuthorized(): Promise {\n if (!window.ethereum) {\n return false\n }\n\n try {\n return await (window.ethereum.send as Send)('eth_accounts').then(sendReturn => {\n if (parseSendReturn(sendReturn).length > 0) {\n return true\n } else {\n return false\n }\n })\n } catch {\n return false\n }\n }\n}\n","// @ts-nocheck\nimport { ConnectorUpdate } from '../types'\nimport { AbstractConnector } from '../abstract-connector'\nimport { EthereumProvider } from '@walletconnect/ethereum-provider'\n\nexport const URI_AVAILABLE = 'URI_AVAILABLE'\n\nexport class UserRejectedRequestError extends Error {\n public constructor() {\n super()\n this.name = this.constructor.name\n this.message = 'The user rejected the request.'\n }\n}\n\nexport class WalletConnectConnector extends AbstractConnector {\n private readonly config: any\n\n public walletConnectProvider?: any\n\n constructor(config: any) {\n super({ supportedChainIds: config.chains })\n\n this.config = config\n\n this.handleChainChanged = this.handleChainChanged.bind(this)\n this.handleAccountsChanged = this.handleAccountsChanged.bind(this)\n this.handleDisconnect = this.handleDisconnect.bind(this)\n }\n\n private handleChainChanged(chainId: number | string): void {\n this.emitUpdate({ chainId })\n }\n\n private handleAccountsChanged(accounts: string[]): void {\n this.emitUpdate({ account: accounts[0] })\n }\n\n private handleDisconnect(): void {\n this.emitDeactivate()\n }\n\n public async activate(): Promise {\n if (!this.walletConnectProvider) {\n this.walletConnectProvider = await EthereumProvider.init(this.config)\n }\n this.walletConnectProvider.on('chainChanged', this.handleChainChanged)\n this.walletConnectProvider.on('accountsChanged', this.handleAccountsChanged)\n this.walletConnectProvider.on('disconnect', this.handleDisconnect)\n\n const account = await this.walletConnectProvider\n .enable()\n .then((accounts: string[]) => {\n console.log(\"Account Connected \", accounts[0])\n return accounts[0];\n })\n .catch((error: Error): void => {\n // TODO ideally this would be a better check\n if (error.message === 'User closed modal') {\n throw new UserRejectedRequestError()\n }\n\n throw error\n })\n\n return { provider: this.walletConnectProvider, account }\n }\n\n public async getProvider(): Promise {\n return this.walletConnectProvider\n }\n\n public async getChainId(): Promise {\n return Promise.resolve(this.walletConnectProvider.chainId)\n }\n\n public async getAccount(): Promise {\n return Promise.resolve(this.walletConnectProvider.accounts).then((accounts: string[]): string => accounts[0])\n }\n\n public deactivate() {\n if (this.walletConnectProvider) {\n this.walletConnectProvider.removeListener('disconnect', this.handleDisconnect)\n this.walletConnectProvider.removeListener('chainChanged', this.handleChainChanged)\n this.walletConnectProvider.removeListener('accountsChanged', this.handleAccountsChanged)\n this.walletConnectProvider.disconnect()\n }\n }\n\n public async close() {\n this.emitDeactivate()\n }\n}\n","import { Web3Provider } from '@ethersproject/providers'\nimport ms from 'ms.macro'\n\nimport { SupportedChainId } from '../constants/chains'\n\nconst NETWORK_POLLING_INTERVALS: { [chainId: number]: number } = {\n [SupportedChainId.ARBITRUM_ONE]: ms`1s`,\n [SupportedChainId.ARBITRUM_RINKEBY]: ms`1s`,\n [SupportedChainId.OPTIMISM]: ms`1s`,\n [SupportedChainId.OPTIMISTIC_KOVAN]: ms`1s`,\n}\n\nexport default function getLibrary(provider: any): Web3Provider {\n const library = new Web3Provider(\n provider,\n typeof provider.chainId === 'number'\n ? provider.chainId\n : typeof provider.chainId === 'string'\n ? parseInt(provider.chainId)\n : 'any'\n )\n library.pollingInterval = 15_000\n library.detectNetwork().then((network) => {\n const networkPollingInterval = NETWORK_POLLING_INTERVALS[network.chainId]\n if (networkPollingInterval) {\n console.debug('Setting polling interval', networkPollingInterval)\n library.pollingInterval = networkPollingInterval\n }\n })\n return library\n}\n","import invariant from 'tiny-invariant'\nimport { AbstractConnector } from 'packages/abstract-connector'\nimport { ConnectorUpdate } from 'packages/types'\n\ninterface NetworkConnectorArguments {\n urls: { [chainId: number]: string }\n defaultChainId?: number\n}\n\n// taken from ethers.js, compatible interface with web3 provider\ntype AsyncSendable = {\n isMetaMask?: boolean\n host?: string\n path?: string\n sendAsync?: (request: any, callback: (error: any, response: any) => void) => void\n send?: (request: any, callback: (error: any, response: any) => void) => void\n}\n\nclass RequestError extends Error {\n constructor(message: string, public code: number, public data?: unknown) {\n super(message)\n }\n}\n\ninterface BatchItem {\n request: { jsonrpc: '2.0'; id: number; method: string; params: unknown }\n resolve: (result: any) => void\n reject: (error: Error) => void\n}\n\nclass MiniRpcProvider implements AsyncSendable {\n public readonly isMetaMask: false = false\n public readonly chainId: number\n public readonly url: string\n public readonly host: string\n public readonly path: string\n public readonly batchWaitTimeMs: number\n\n private readonly connector: NetworkConnector\n\n private nextId = 1\n private batchTimeoutId: ReturnType | null = null\n private batch: BatchItem[] = []\n\n constructor(connector: NetworkConnector, chainId: number, url: string, batchWaitTimeMs?: number) {\n this.connector = connector\n this.chainId = chainId\n this.url = url\n const parsed = new URL(url)\n this.host = parsed.host\n this.path = parsed.pathname\n // how long to wait to batch calls\n this.batchWaitTimeMs = batchWaitTimeMs ?? 50\n }\n\n public readonly clearBatch = async () => {\n console.debug('Clearing batch', this.batch)\n let batch = this.batch\n\n batch = batch.filter((b) => {\n if (b.request.method === 'wallet_switchEthereumChain') {\n try {\n this.connector.changeChainId(parseInt((b.request.params as [{ chainId: string }])[0].chainId))\n b.resolve({ id: b.request.id })\n } catch (error) {\n b.reject(error)\n }\n return false\n }\n return true\n })\n\n this.batch = []\n this.batchTimeoutId = null\n let response: Response\n try {\n response = await fetch(this.url, {\n method: 'POST',\n headers: { 'content-type': 'application/json', accept: 'application/json' },\n body: JSON.stringify(batch.map((item) => item.request)),\n })\n } catch (error) {\n batch.forEach(({ reject }) => reject(new Error('Failed to send batch call')))\n return\n }\n\n if (!response.ok) {\n batch.forEach(({ reject }) => reject(new RequestError(`${response.status}: ${response.statusText}`, -32000)))\n return\n }\n\n let json\n try {\n json = await response.json()\n } catch (error) {\n batch.forEach(({ reject }) => reject(new Error('Failed to parse JSON response')))\n return\n }\n const byKey = batch.reduce<{ [id: number]: BatchItem }>((memo, current) => {\n memo[current.request.id] = current\n return memo\n }, {})\n if(json.length > 0) {\n for (const result of json) {\n const {\n resolve,\n reject,\n request: { method },\n } = byKey[result.id]\n if ('error' in result) {\n reject(new RequestError(result?.error?.message, result?.error?.code, result?.error?.data))\n } else if ('result' in result && resolve) {\n resolve(result.result)\n } else {\n reject(new RequestError(`Received unexpected JSON-RPC response to ${method} request.`, -32000, result))\n }\n }\n }\n }\n\n public readonly sendAsync = (\n request: {\n jsonrpc: '2.0'\n id: number | string | null\n method: string\n params?: unknown[] | Record\n },\n callback: (error: any, response: any) => void\n ): void => {\n this.request(request.method, request.params)\n .then((result) => callback(null, { jsonrpc: '2.0', id: request.id, result }))\n .catch((error) => callback(error, null))\n }\n\n public readonly request = async (\n method: string | { method: string; params: unknown[] },\n params?: unknown[] | Record\n ): Promise => {\n if (typeof method !== 'string') {\n return this.request(method.method, method.params)\n }\n if (method === 'eth_chainId') {\n return `0x${this.chainId.toString(16)}`\n }\n const promise = new Promise((resolve, reject) => {\n this.batch.push({\n request: {\n jsonrpc: '2.0',\n id: this.nextId++,\n method,\n params,\n },\n resolve,\n reject,\n })\n })\n this.batchTimeoutId = this.batchTimeoutId ?? setTimeout(this.clearBatch, this.batchWaitTimeMs)\n return promise\n }\n}\n\nexport class NetworkConnector extends AbstractConnector {\n private readonly providers: { [chainId: number]: MiniRpcProvider }\n private currentChainId: number\n\n constructor({ urls, defaultChainId }: NetworkConnectorArguments) {\n invariant(defaultChainId || Object.keys(urls).length === 1, 'defaultChainId is a required argument with >1 url')\n super({ supportedChainIds: Object.keys(urls).map((k): number => Number(k)) })\n\n this.currentChainId = defaultChainId ?? Number(Object.keys(urls)[0])\n this.providers = Object.keys(urls).reduce<{ [chainId: number]: MiniRpcProvider }>((accumulator, chainId) => {\n accumulator[Number(chainId)] = new MiniRpcProvider(this, Number(chainId), urls[Number(chainId)])\n return accumulator\n }, {})\n }\n\n public get provider(): MiniRpcProvider {\n return this.providers[this.currentChainId]\n }\n\n public async activate(): Promise {\n return { provider: this.providers[this.currentChainId], chainId: this.currentChainId, account: null }\n }\n\n public async getProvider(): Promise {\n return this.providers[this.currentChainId]\n }\n\n public async getChainId(): Promise {\n return this.currentChainId\n }\n\n public async getAccount(): Promise {\n return null\n }\n\n public deactivate() {\n return\n }\n\n /**\n * Meant to be called only by MiniRpcProvider\n * @param chainId the new chain id\n */\n public changeChainId(chainId: number) {\n if (chainId in this.providers) {\n this.currentChainId = chainId\n this.emitUpdate({\n chainId,\n account: null,\n provider: this.providers[chainId],\n })\n } else {\n throw new Error(`Unsupported chain ID: ${chainId}`)\n }\n }\n}\n","// @ts-nocheck\nimport { Web3Provider } from '@ethersproject/providers'\nimport { ALL_SUPPORTED_CHAIN_IDS } from 'constants/chains'\nimport { INFURA_NETWORK_URLS } from 'constants/infura'\nimport { InjectedConnector } from 'packages/injected-connector'\nimport { WalletConnectConnector } from 'packages/wallet-connector'\n\nimport getLibrary from '../utils/getLibrary'\nimport { NetworkConnector } from './NetworkConnector'\n\nexport const network = new NetworkConnector({\n urls: INFURA_NETWORK_URLS,\n defaultChainId: 1,\n})\n\nlet networkLibrary: Web3Provider | undefined\nexport function getNetworkLibrary(): Web3Provider {\n return (networkLibrary = networkLibrary ?? getLibrary(network.provider))\n}\n\nexport const injected = new InjectedConnector({\n supportedChainIds: ALL_SUPPORTED_CHAIN_IDS,\n})\n\n\nexport const walletconnect = new WalletConnectConnector({\n projectId: \"4350e4fa71cfcea02482a46695af4164\",\n chains: ALL_SUPPORTED_CHAIN_IDS,\n showQrModal: true,\n rpcMap: INFURA_NETWORK_URLS,\n qrModalOptions: {\n themeVariables: {\n '--wcm-font-family': '\"Inter custom\", sans-serif',\n '--wcm-z-index': 1060,\n },\n }\n})\n","import { BigNumber } from '@ethersproject/bignumber'\nimport { hexZeroPad } from '@ethersproject/bytes'\nimport { namehash } from '@ethersproject/hash'\nimport useActiveWeb3React from 'hooks/useActiveWeb3React'\nimport { useSingleCallResult } from 'lib/hooks/multicall'\nimport uriToHttp from 'lib/utils/uriToHttp'\nimport { useEffect, useMemo, useState } from 'react'\nimport { safeNamehash } from 'utils/safeNamehash'\n\nimport { isAddress } from '../utils'\nimport isZero from '../utils/isZero'\nimport { useENSRegistrarContract, useENSResolverContract, useERC721Contract, useERC1155Contract } from './useContract'\nimport useDebounce from './useDebounce'\nimport useENSName from './useENSName'\n\n/**\n * Returns the ENS avatar URI, if available.\n * Spec: https://gist.github.com/Arachnid/9db60bd75277969ee1689c8742b75182.\n */\nexport default function useENSAvatar(\n address?: string,\n enforceOwnership = true\n): { avatar: string | null; loading: boolean } {\n const debouncedAddress = useDebounce(address, 200)\n const node = useMemo(() => {\n if (!debouncedAddress || !isAddress(debouncedAddress)) return undefined\n return namehash(`${debouncedAddress.toLowerCase().substr(2)}.addr.reverse`)\n }, [debouncedAddress])\n\n const addressAvatar = useAvatarFromNode(node)\n const ENSName = useENSName(address).ENSName\n const nameAvatar = useAvatarFromNode(ENSName === null ? undefined : safeNamehash(ENSName))\n let avatar = addressAvatar.avatar || nameAvatar.avatar\n\n const nftAvatar = useAvatarFromNFT(avatar, enforceOwnership)\n avatar = nftAvatar.avatar || avatar\n\n const http = avatar && uriToHttp(avatar)[0]\n\n const changed = debouncedAddress !== address\n return useMemo(\n () => ({\n avatar: changed ? null : http ?? null,\n loading: changed || addressAvatar.loading || nameAvatar.loading || nftAvatar.loading,\n }),\n [addressAvatar.loading, changed, http, nameAvatar.loading, nftAvatar.loading]\n )\n}\n\nfunction useAvatarFromNode(node?: string): { avatar?: string; loading: boolean } {\n const nodeArgument = useMemo(() => [node], [node])\n const textArgument = useMemo(() => [node, 'avatar'], [node])\n const registrarContract = useENSRegistrarContract(false)\n const resolverAddress = useSingleCallResult(registrarContract, 'resolver', nodeArgument)\n const resolverAddressResult = resolverAddress.result?.[0]\n const resolverContract = useENSResolverContract(\n resolverAddressResult && !isZero(resolverAddressResult) ? resolverAddressResult : undefined,\n false\n )\n const avatar = useSingleCallResult(resolverContract, 'text', textArgument)\n\n return useMemo(\n () => ({\n avatar: avatar.result?.[0],\n loading: resolverAddress.loading || avatar.loading,\n }),\n [avatar.loading, avatar.result, resolverAddress.loading]\n )\n}\n\nfunction useAvatarFromNFT(nftUri = '', enforceOwnership: boolean): { avatar?: string; loading: boolean } {\n const parts = nftUri.toLowerCase().split(':')\n const protocol = parts[0]\n // ignore the chain from eip155\n // TODO: when we are able, pull only from the specified chain\n const [, erc] = parts[1]?.split('/') ?? []\n const [contractAddress, id] = parts[2]?.split('/') ?? []\n const isERC721 = protocol === 'eip155' && erc === 'erc721'\n const isERC1155 = protocol === 'eip155' && erc === 'erc1155'\n const erc721 = useERC721Uri(isERC721 ? contractAddress : undefined, id, enforceOwnership)\n const erc1155 = useERC1155Uri(isERC1155 ? contractAddress : undefined, id, enforceOwnership)\n const uri = erc721.uri || erc1155.uri\n const http = uri && uriToHttp(uri)[0]\n\n const [loading, setLoading] = useState(false)\n const [avatar, setAvatar] = useState(undefined)\n useEffect(() => {\n setAvatar(undefined)\n if (http) {\n setLoading(true)\n fetch(http)\n .then((res) => res.json())\n .then(({ image }) => {\n setAvatar(image)\n })\n .catch((e) => console.warn(e))\n .finally(() => {\n setLoading(false)\n })\n }\n }, [http])\n\n return useMemo(\n () => ({ avatar, loading: erc721.loading || erc1155.loading || loading }),\n [avatar, erc1155.loading, erc721.loading, loading]\n )\n}\n\nfunction useERC721Uri(\n contractAddress: string | undefined,\n id: string | undefined,\n enforceOwnership: boolean\n): { uri?: string; loading: boolean } {\n const idArgument = useMemo(() => [id], [id])\n const { account } = useActiveWeb3React()\n const contract = useERC721Contract(contractAddress, false)\n const owner = useSingleCallResult(contract, 'ownerOf', idArgument)\n const uri = useSingleCallResult(contract, 'tokenURI', idArgument)\n return useMemo(\n () => ({\n uri: !enforceOwnership || account === owner.result?.[0] ? uri.result?.[0] : undefined,\n loading: owner.loading || uri.loading,\n }),\n [account, enforceOwnership, owner.loading, owner.result, uri.loading, uri.result]\n )\n}\n\nfunction useERC1155Uri(\n contractAddress: string | undefined,\n id: string | undefined,\n enforceOwnership: boolean\n): { uri?: string; loading: boolean } {\n const { account } = useActiveWeb3React()\n const idArgument = useMemo(() => [id], [id])\n const accountArgument = useMemo(() => [account || '', id], [account, id])\n const contract = useERC1155Contract(contractAddress)\n const balance = useSingleCallResult(contract, 'balanceOf', accountArgument)\n const uri = useSingleCallResult(contract, 'uri', idArgument)\n // ERC-1155 allows a generic {id} in the URL, so prepare to replace if relevant,\n // in lowercase hexadecimal (with no 0x prefix) and leading zero padded to 64 hex characters.\n const idHex = id ? hexZeroPad(BigNumber.from(id).toHexString(), 32).substring(2) : id\n return useMemo(\n () => ({\n uri: !enforceOwnership || balance.result?.[0] > 0 ? uri.result?.[0]?.replaceAll('{id}', idHex) : undefined,\n loading: balance.loading || uri.loading,\n }),\n [balance.loading, balance.result, enforceOwnership, uri.loading, uri.result, idHex]\n )\n}\n","import jazzicon from '@metamask/jazzicon'\nimport useActiveWeb3React from 'hooks/useActiveWeb3React'\nimport useENSAvatar from 'hooks/useENSAvatar'\nimport { useLayoutEffect, useMemo, useRef, useState } from 'react'\nimport styled from 'styled-components/macro'\n\nconst StyledIdenticon = styled.div`\n height: 1rem;\n width: 1rem;\n border-radius: 1.125rem;\n background-color: ${({ theme }) => theme.bg4};\n font-size: initial;\n`\n\nconst StyledAvatar = styled.img`\n height: inherit;\n width: inherit;\n border-radius: inherit;\n`\n\nexport default function Identicon() {\n const { account } = useActiveWeb3React()\n const { avatar } = useENSAvatar(account ?? undefined)\n const [fetchable, setFetchable] = useState(true)\n\n const icon = useMemo(() => account && jazzicon(16, parseInt(account.slice(2, 10), 16)), [account])\n const iconRef = useRef(null)\n useLayoutEffect(() => {\n const current = iconRef.current\n if (icon) {\n current?.appendChild(icon)\n return () => {\n try {\n current?.removeChild(icon)\n } catch (e) {\n console.error('Avatar icon not found')\n }\n }\n }\n return\n }, [icon, iconRef])\n\n return (\n \n {avatar && fetchable ? (\n setFetchable(false)}>\n ) : (\n \n )}\n \n )\n}\n","// @ts-nocheck\nimport { Connector } from '@web3-react/types'\nimport { AbstractConnector } from 'packages/abstract-connector'\n\nimport WalletConnectIcon from '../../assets/images/walletConnectIcon.svg'\nimport { injected, walletconnect } from '../../connectors'\nimport Identicon from '../Identicon'\n\nexport default function StatusIcon({ connector }: { connector: AbstractConnector | Connector }) {\n switch (connector) {\n case injected:\n return \n case walletconnect:\n return {'WalletConnect'}\n default:\n return null\n }\n}\n","import { Box } from 'rebass/styled-components'\nimport styled from 'styled-components/macro'\n\nconst Card = styled(Box)<{ width?: string; padding?: string; border?: string; $borderRadius?: string }>`\n width: ${({ width }) => width ?? '100%'};\n padding: ${({ padding }) => padding ?? '1rem'};\n border-radius: ${({ $borderRadius }) => $borderRadius ?? '16px'};\n border: ${({ border }) => border};\n`\nexport default Card\n\nexport const LightCard = styled(Card)`\n border: 1px solid ${({ theme }) => theme.bg2};\n background-color: ${({ theme }) => theme.bg1};\n`\n\nexport const LightGreyCard = styled(Card)`\n background-color: ${({ theme }) => theme.bg2};\n`\n\nexport const GreyCard = styled(Card)`\n background-color: ${({ theme }) => theme.bg3};\n`\n\nexport const DarkGreyCard = styled(Card)`\n background-color: ${({ theme }) => theme.bg2};\n`\n\nexport const DarkCard = styled(Card)`\n background-color: ${({ theme }) => theme.bg0};\n`\n\nexport const OutlineCard = styled(Card)`\n border: 1px solid ${({ theme }) => theme.bg3};\n`\n\nexport const YellowCard = styled(Card)`\n background-color: rgba(243, 132, 30, 0.05);\n color: ${({ theme }) => theme.yellow3};\n font-weight: 600;\n`\n\nexport const BlueCard = styled(Card)`\n background-color: ${({ theme }) => theme.primary5};\n color: ${({ theme }) => theme.blue2};\n border-radius: 12px;\n`\n","// @ts-nocheck\nimport Card, { DarkGreyCard } from 'components/Card'\nimport Row, { AutoRow, RowBetween } from 'components/Row'\nimport { ArrowDown, Info } from 'react-feather'\nimport styled from 'styled-components/macro'\nimport { ExternalLink, ThemedText } from 'theme'\nimport { isMobile } from 'utils/userAgent'\nimport { AutoColumn } from '../Column'\n\nconst Wrapper = styled.div`\n max-height: 70vh;\n overflow: auto;\n padding: 0 1rem;\n`\n\nconst StyledExternalCard = styled(Card)`\n background-color: ${({ theme }) => theme.primary5};\n padding: 0.5rem;\n width: 100%;\n\n :hover,\n :focus,\n :active {\n background-color: ${({ theme }) => theme.primary4};\n }\n`\n\nconst StyledLinkOut = styled(ArrowDown)`\n transform: rotate(230deg);\n`\n\nconst EXTERNAL_APIS = [\n {\n name: 'Auto Router',\n description: \"The app fetches the optimal trade route from a Uniswap Labs server.\",\n },\n {\n name: 'Infura',\n description: \"The app fetches on-chain data and constructs contract calls with an Infura API.\",\n },\n {\n name: 'TRM Labs',\n description: (\n <>\n The app securely collects your wallet address and shares it with TRM Labs Inc. for risk and compliance\n reasons.\n {' '}\n \n Learn more\n \n \n ),\n },\n {\n name: 'Google Analytics',\n description: \"The app logs anonymized usage statistics in order to improve over time.\",\n },\n {\n name: 'The Graph',\n description: \"The app fetches blockchain data from The Graph’s hosted service.\",\n },\n]\n\nexport function PrivacyPolicy() {\n return (\n {\n // prevent modal gesture handler from dismissing modal when content is scrolling\n if (isMobile) {\n e.stopPropagation()\n }\n }}\n >\n \n \n \n \n \n \n \n \n Uniswap Labs' Terms of Service\n \n \n \n \n \n \n \n \n \n \n \n \n Protocol Disclaimer\n \n \n \n \n \n \n \n \n This app uses the following third-party APIs:\n \n \n {EXTERNAL_APIS.map(({ name, description }, i) => (\n \n \n \n \n \n {name}\n \n \n {description}\n \n \n ))}\n \n \n Learn more\n \n \n \n \n \n )\n}\n","export default __webpack_public_path__ + \"static/media/metamask.02e3ec27.png\";","var _line, _line2;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\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; }\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; }\nimport * as React from \"react\";\nfunction SvgX(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n className: \"feather feather-x\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _line || (_line = /*#__PURE__*/React.createElement(\"line\", {\n x1: 18,\n y1: 6,\n x2: 6,\n y2: 18\n })), _line2 || (_line2 = /*#__PURE__*/React.createElement(\"line\", {\n x1: 6,\n y1: 6,\n x2: 18,\n y2: 18\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgX);\nexport default __webpack_public_path__ + \"static/media/x.33076876.svg\";\nexport { ForwardRef as ReactComponent };","export default __webpack_public_path__ + \"static/media/arrow-right.956d575c.svg\";","import { AbstractConnector } from 'packages/abstract-connector'\n\nimport INJECTED_ICON_URL from '../assets/images/arrow-right.svg'\n// import COINBASE_ICON_URL from '../assets/images/coinbaseWalletIcon.svg'\n// import FORTMATIC_ICON_URL from '../assets/images/fortmaticIcon.png'\nimport METAMASK_ICON_URL from '../assets/images/metamask.png'\n// import PORTIS_ICON_URL from '../assets/images/portisIcon.png'\nimport WALLETCONNECT_ICON_URL from '../assets/images/walletConnectIcon.svg'\n// import { fortmatic, injected, portis, walletconnect, walletlink } from '../connectors'\nimport { injected, walletconnect} from '../connectors'\n\ninterface WalletInfo {\n connector?: AbstractConnector\n name: string\n iconURL: string\n description: string\n href: string | null\n color: string\n primary?: true\n mobile?: true\n mobileOnly?: true\n}\n\nexport const SUPPORTED_WALLETS: { [key: string]: WalletInfo } = {\n INJECTED: {\n connector: injected,\n name: 'Injected',\n iconURL: INJECTED_ICON_URL,\n description: 'Injected web3 provider.',\n href: null,\n color: '#010101',\n primary: true,\n },\n METAMASK: {\n connector: injected,\n name: 'MetaMask',\n iconURL: METAMASK_ICON_URL,\n description: 'Easy-to-use browser extension.',\n href: null,\n color: '#E8831D',\n },\n WALLET_CONNECT: {\n connector: walletconnect,\n name: 'WalletConnect',\n iconURL: WALLETCONNECT_ICON_URL,\n description: 'Connect to Trust Wallet, Rainbow Wallet and more...',\n href: null,\n color: '#4196FC',\n mobile: true,\n },\n \n}\n","import { useEffect, useRef } from 'react'\n\n// modified from https://usehooks.com/usePrevious/\nexport default function usePrevious(value: T) {\n // The ref object is a generic container whose current property is mutable ...\n // ... and can hold any value, similar to an instance property on a class\n const ref = useRef()\n\n // Store current value in ref\n useEffect(() => {\n ref.current = value\n }, [value]) // Only re-run if value changes\n\n // Return previous value (happens before update in useEffect above)\n return ref.current\n}\n","import { SupportedChainId } from \"../constants/chains\";\n\nconst ETHERSCAN_PREFIXES: { [chainId: number]: string } = {\n [SupportedChainId.MAINNET]: 'https://etherscan.io',\n [SupportedChainId.GOERLI]: 'https://goerli.etherscan.io',\n [SupportedChainId.KOVAN]: 'https://kovan.etherscan.io',\n [SupportedChainId.ALFAJORES]: 'https://alfajores.celoscan.io',\n [SupportedChainId.AURORA_TEST]: 'https://testnet.aurorascan.dev',\n [SupportedChainId.AURORA]: 'https://doc.aurora.dev',\n [SupportedChainId.CELO]: 'https://celoscan.io',\n [SupportedChainId.OPTIMISM]: 'https://optimistic.etherscan.io',\n [SupportedChainId.OPTIMISTIC_KOVAN]: 'https://kovan-optimistic.etherscan.io',\n [SupportedChainId.POLYGON_MUMBAI]: 'https://mumbai.polygonscan.com',\n [SupportedChainId.POLYGON]: 'https://polygonscan.com',\n}\n\nexport enum ExplorerDataType {\n TRANSACTION = 'transaction',\n TOKEN = 'token',\n ADDRESS = 'address',\n BLOCK = 'block',\n}\n\n/**\n * Return the explorer link for the given data and data type\n * @param chainId the ID of the chain for which to return the data\n * @param data the data to return a link for\n * @param type the type of the data\n */\nexport function getExplorerLink(chainId: number, data: string, type: ExplorerDataType): string {\n if (chainId === SupportedChainId.ARBITRUM_ONE) {\n switch (type) {\n case ExplorerDataType.TRANSACTION:\n return `https://arbiscan.io/tx/${data}`\n case ExplorerDataType.ADDRESS:\n case ExplorerDataType.TOKEN:\n return `https://arbiscan.io/address/${data}`\n case ExplorerDataType.BLOCK:\n return `https://arbiscan.io/block/${data}`\n default:\n return `https://arbiscan.io/`\n }\n }\n\n if (chainId === SupportedChainId.ARBITRUM_RINKEBY) {\n switch (type) {\n case ExplorerDataType.TRANSACTION:\n return `https://rinkeby-explorer.arbitrum.io/tx/${data}`\n case ExplorerDataType.ADDRESS:\n case ExplorerDataType.TOKEN:\n return `https://rinkeby-explorer.arbitrum.io/address/${data}`\n case ExplorerDataType.BLOCK:\n return `https://rinkeby-explorer.arbitrum.io/block/${data}`\n default:\n return `https://rinkeby-explorer.arbitrum.io/`\n }\n }\n\n const prefix = ETHERSCAN_PREFIXES[chainId] ?? 'https://etherscan.io'\n\n switch (type) {\n case ExplorerDataType.TRANSACTION:\n return `${prefix}/tx/${data}`\n\n case ExplorerDataType.TOKEN:\n return `${prefix}/token/${data}`\n\n case ExplorerDataType.BLOCK:\n if (chainId === SupportedChainId.OPTIMISM || chainId === SupportedChainId.OPTIMISTIC_KOVAN) {\n return `${prefix}/tx/${data}`\n }\n return `${prefix}/block/${data}`\n\n case ExplorerDataType.ADDRESS:\n return `${prefix}/address/${data}`\n default:\n return `${prefix}`\n }\n}\n","import React from 'react'\nimport { CheckCircle, Copy } from 'react-feather'\nimport styled from 'styled-components/macro'\n\nimport useCopyClipboard from '../../hooks/useCopyClipboard'\nimport { LinkStyledButton } from '../../theme'\n\nconst CopyIcon = styled(LinkStyledButton)`\n color: ${({ theme }) => theme.text3};\n flex-shrink: 0;\n display: flex;\n text-decoration: none;\n font-size: 0.825rem;\n :hover,\n :active,\n :focus {\n text-decoration: none;\n color: ${({ theme }) => theme.text2};\n }\n`\nconst TransactionStatusText = styled.span`\n margin-left: 0.25rem;\n font-size: 0.825rem;\n ${({ theme }) => theme.flexRowNoWrap};\n align-items: center;\n`\n\nexport default function CopyHelper(props: { toCopy: string; children?: React.ReactNode }) {\n const [isCopied, setCopied] = useCopyClipboard()\n\n return (\n setCopied(props.toCopy)}>\n {isCopied ? (\n \n \n Copied \n \n ) : (\n \n \n \n )}\n {isCopied ? '' : props.children}\n \n )\n}\n","import copy from 'copy-to-clipboard'\nimport { useCallback, useEffect, useState } from 'react'\n\nexport default function useCopyClipboard(timeout = 500): [boolean, (toCopy: string) => void] {\n const [isCopied, setIsCopied] = useState(false)\n\n const staticCopy = useCallback((text) => {\n const didCopy = copy(text)\n setIsCopied(didCopy)\n }, [])\n\n useEffect(() => {\n if (isCopied) {\n const hide = setTimeout(() => {\n setIsCopied(false)\n }, timeout)\n\n return () => {\n clearTimeout(hide)\n }\n }\n return undefined\n }, [isCopied, setIsCopied, timeout])\n\n return [isCopied, staticCopy]\n}\n","export enum VoteOption {\n Against,\n For,\n Abstain,\n}\n","import { utils } from \"ethers\";\n\nimport { TradeType } from \"@uniswap/sdk-core\";\n\nimport { nativeOnChain } from \"../../constants/tokens\";\nimport { useCurrency, useToken } from \"../../hooks/Tokens\";\nimport useENSName from \"../../hooks/useENSName\";\nimport { VoteOption } from \"../../state/governance/types\";\nimport {\n AddLiquidityV2PoolTransactionInfo,\n AddLiquidityV3PoolTransactionInfo,\n ApproveTransactionInfo,\n ClaimTransactionInfo,\n CollectFeesTransactionInfo,\n CreateV3PoolTransactionInfo,\n DelegateTransactionInfo,\n DepositLiquidityStakingTransactionInfo,\n DepositTransactionInfo,\n ExactInputSwapTransactionInfo,\n ExactOutputSwapTransactionInfo,\n MigrateV2LiquidityToV3TransactionInfo,\n RemoveLiquidityV3TransactionInfo,\n SubmitProposalTransactionInfo,\n TransactionInfo,\n TransactionType,\n VoteTransactionInfo,\n WithdrawLiquidityStakingTransactionInfo,\n WithdrawRewardTransactionInfo,\n DDCDepositTransactionInfo,\n DDCWithdrawTransactionInfo,\n WithdrawTransactionInfo,\n WrapTransactionInfo,\n DDCDelegateTransactionInfo,\n DDCUndelegateTransactionInfo\n} from \"../../state/transactions/actions\";\n\nfunction formatAmount(amountRaw: string, decimals: number, sigFigs: number): string {\n return parseFloat(utils.formatUnits(amountRaw.split('.')[0], decimals)).toFixed(sigFigs);\n}\n\nfunction FormattedCurrencyAmount({\n rawAmount,\n symbol,\n decimals,\n sigFigs,\n}: {\n rawAmount: string\n symbol: string\n decimals: number\n sigFigs: number\n}) {\n return (\n <>\n {formatAmount(rawAmount, decimals, sigFigs)} {symbol}\n \n )\n}\n\nfunction FormattedCurrencyAmountManaged({\n rawAmount,\n currencyId,\n sigFigs = 6,\n}: {\n rawAmount: string\n currencyId: string\n sigFigs: number\n}) {\n const currency = useCurrency(currencyId)\n return currency ? (\n \n ) : null\n}\n\nfunction ClaimSummary({ info: { recipient, uniAmountRaw } }: { info: ClaimTransactionInfo }) {\n const { ENSName } = useENSName()\n return typeof uniAmountRaw === 'string' ? (\n <>\n Claim for{' '}\n {ENSName ?? recipient}\n \n ) : (\n <>\n Claim UNI reward for {ENSName ?? recipient}\n \n )\n}\n\nfunction SubmitProposalTransactionSummary(_: { info: SubmitProposalTransactionInfo }) {\n return <>Submit new proposal\n}\n\nfunction WithdrawPositionTransactionSummary(_: { info: WithdrawTransactionInfo }) {\n return <>Withdraw Position\n}\n\nfunction DepositPositionTransactionSummary(_: { info: DepositTransactionInfo }) {\n return <>Deposit Position\n}\n\nfunction WithdrawRewardTransactionSummary(_: { info: WithdrawRewardTransactionInfo }) {\n return <>Withdraw Reward\n}\n\nfunction DDCDepositTransactionSummary(_: { info: DDCDepositTransactionInfo }) {\n return <>DDC Deposit\n}\n\nfunction DDCWithdrawTransactionSummary(_: { info: DDCWithdrawTransactionInfo }) {\n return <>DDC Withdraw\n}\n\nfunction DDCDelegateTransactionSummary(_: { info: DDCDelegateTransactionInfo }) {\n return <>DDC Delegate\n}\n\nfunction DDCUndelegateTransactionSummary(_: { info: DDCUndelegateTransactionInfo }) {\n return <>DDC Undelegate\n}\n\nfunction ApprovalSummary({ info }: { info: ApproveTransactionInfo }) {\n const token = useToken(info.tokenAddress)\n\n return <>Approve {token?.symbol}\n}\n\nfunction VoteSummary({ info }: { info: VoteTransactionInfo }) {\n const proposalKey = `${info.governorAddress}/${info.proposalId}`\n if (info.reason && info.reason.trim().length > 0) {\n switch (info.decision) {\n case VoteOption.For:\n return <>Vote for proposal {proposalKey}\n case VoteOption.Abstain:\n return <>Vote to abstain on proposal {proposalKey}\n case VoteOption.Against:\n return <>Vote against proposal {proposalKey}\n }\n } else {\n switch (info.decision) {\n case VoteOption.For:\n return (\n <>\n Vote for proposal {proposalKey} with reason "{info.reason}"\n \n )\n case VoteOption.Abstain:\n return (\n <>\n Vote to abstain on proposal {proposalKey} with reason "{info.reason}"\n \n )\n case VoteOption.Against:\n return (\n <>\n Vote against proposal {proposalKey} with reason "{info.reason}"\n \n )\n }\n }\n}\n\nfunction DelegateSummary({ info: { delegatee } }: { info: DelegateTransactionInfo }) {\n const { ENSName } = useENSName(delegatee)\n return <>Delegate voting power to {ENSName ?? delegatee}\n}\n\nfunction WrapSummary({ info: { chainId, currencyAmountRaw, unwrapped } }: { info: WrapTransactionInfo }) {\n const native = chainId ? nativeOnChain(chainId) : undefined\n\n if (unwrapped) {\n return (\n <>\n Unwrap{' '}\n {' '}\n to {native?.symbol ?? 'ETH'}\n \n )\n } else {\n return (\n <>\n Wrap{' '}\n {' '}\n to {native?.wrapped?.symbol ?? 'WETH'}\n \n )\n }\n}\n\nfunction DepositLiquidityStakingSummary(_: { info: DepositLiquidityStakingTransactionInfo }) {\n // not worth rendering the tokens since you can should no longer deposit liquidity in the staking contracts\n // todo: deprecate and delete the code paths that allow this, show user more information\n return <>Deposit liquidity\n}\n\nfunction WithdrawLiquidityStakingSummary(_: { info: WithdrawLiquidityStakingTransactionInfo }) {\n return <>Withdraw deposited liquidity\n}\n\nfunction MigrateLiquidityToV3Summary({\n info: { baseCurrencyId, quoteCurrencyId },\n}: {\n info: MigrateV2LiquidityToV3TransactionInfo\n}) {\n const baseCurrency = useCurrency(baseCurrencyId)\n const quoteCurrency = useCurrency(quoteCurrencyId)\n\n return (\n <>\n Import {baseCurrency?.symbol}/{quoteCurrency?.symbol} Liquidity to Double\n \n )\n}\n\nfunction CreateV3PoolSummary({ info: { quoteCurrencyId, baseCurrencyId } }: { info: CreateV3PoolTransactionInfo }) {\n const baseCurrency = useCurrency(baseCurrencyId)\n const quoteCurrency = useCurrency(quoteCurrencyId)\n\n return (\n <>\n Create {baseCurrency?.symbol}/{quoteCurrency?.symbol} V3 pool\n \n )\n}\n\nfunction CollectFeesSummary({ info: { currencyId0, currencyId1 } }: { info: CollectFeesTransactionInfo }) {\n const currency0 = useCurrency(currencyId0)\n const currency1 = useCurrency(currencyId1)\n\n return (\n <>\n Collect {currency0?.symbol}/{currency1?.symbol} fees\n \n )\n}\n\nfunction RemoveLiquidityV3Summary({\n info: { baseCurrencyId, quoteCurrencyId, expectedAmountBaseRaw, expectedAmountQuoteRaw },\n}: {\n info: RemoveLiquidityV3TransactionInfo\n}) {\n return (\n <>\n Remove{' '}\n and{' '}\n \n \n )\n}\n\nfunction AddLiquidityV3PoolSummary({\n info: { createPool, quoteCurrencyId, baseCurrencyId },\n}: {\n info: AddLiquidityV3PoolTransactionInfo\n}) {\n const baseCurrency = useCurrency(baseCurrencyId)\n const quoteCurrency = useCurrency(quoteCurrencyId)\n\n return createPool ? (\n <>\n Create pool and add {baseCurrency?.symbol}/{quoteCurrency?.symbol} V3 liquidity\n \n ) : (\n <>\n Added {baseCurrency?.symbol}/{quoteCurrency?.symbol} liquidity\n \n )\n}\n\nfunction AddLiquidityV2PoolSummary({\n info: { quoteCurrencyId, expectedAmountBaseRaw, expectedAmountQuoteRaw, baseCurrencyId },\n}: {\n info: AddLiquidityV2PoolTransactionInfo\n}) {\n return (\n <>\n Add {' '}\n and {' '}\n to Uniswap V2\n \n )\n}\n\nfunction SwapSummary({ info }: { info: ExactInputSwapTransactionInfo | ExactOutputSwapTransactionInfo }) {\n if (info.tradeType === TradeType.EXACT_INPUT) {\n return (\n <>\n Swap exactly{' '}\n {' '}\n for{' '}\n \n \n )\n } else {\n return (\n <>\n Swap{' '}\n {' '}\n for exactly{' '}\n \n \n )\n }\n}\n\nexport function TransactionSummary({ info }: { info: TransactionInfo }) {\n switch (info.type) {\n case TransactionType.ADD_LIQUIDITY_V3_POOL:\n return \n\n case TransactionType.ADD_LIQUIDITY_V2_POOL:\n return \n\n case TransactionType.CLAIM:\n return \n\n case TransactionType.DEPOSIT_LIQUIDITY_STAKING:\n return \n\n case TransactionType.WITHDRAW_LIQUIDITY_STAKING:\n return \n\n case TransactionType.SWAP:\n return \n\n case TransactionType.APPROVAL:\n return \n\n case TransactionType.VOTE:\n return \n\n case TransactionType.DELEGATE:\n return \n\n case TransactionType.WRAP:\n return \n\n case TransactionType.CREATE_V3_POOL:\n return \n\n case TransactionType.MIGRATE_LIQUIDITY_V3:\n return \n\n case TransactionType.COLLECT_FEES:\n return \n\n case TransactionType.REMOVE_LIQUIDITY_V3:\n return \n\n case TransactionType.SUBMIT_PROPOSAL:\n return \n\n case TransactionType.WITHDRAW_POSITION:\n return \n\n case TransactionType.DEPOSIT_POSITION:\n return \n\n case TransactionType.WITHDRAW_REWARD:\n return \n\n case TransactionType.DDC_DEPOSIT:\n return \n\n case TransactionType.DDC_WITHDRAW:\n return \n\n case TransactionType.DDC_DELEGATE:\n return \n\n case TransactionType.DDC_UNDELEGATE:\n return \n }\n}\n","import useActiveWeb3React from 'hooks/useActiveWeb3React'\nimport { CheckCircle, Triangle } from 'react-feather'\nimport styled from 'styled-components/macro'\n\nimport { useAllTransactions } from '../../state/transactions/hooks'\nimport { ExternalLink } from '../../theme'\nimport { ExplorerDataType, getExplorerLink } from '../../utils/getExplorerLink'\nimport Loader from '../Loader'\nimport { RowFixed } from '../Row'\nimport { TransactionSummary } from './TransactionSummary'\n\nconst TransactionStatusText = styled.div`\n margin-right: 0.5rem;\n display: flex;\n align-items: center;\n background: linear-gradient(73.6deg,#85FFC4 2.11%,#5CC6FF 42.39%,#BC85FF 85.72%);\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n :hover {\n text-decoration: underline;\n }\n`\n\nconst TransactionState = styled(ExternalLink)<{ pending: boolean; success?: boolean }>`\n display: flex;\n justify-content: space-between;\n align-items: center;\n text-decoration: none !important;\n border-radius: 0.5rem;\n padding: 0.25rem 0rem;\n font-weight: 600;\n font-size: 0.825rem;\n color: ${({ theme }) => theme.primary1};\n`\n\nconst IconWrapper = styled.div<{ pending: boolean; success?: boolean }>`\n color: ${({ pending, success, theme }) => (pending ? theme.primary1 : success ? theme.green1 : theme.red1)};\n`\n\nexport default function Transaction({ hash }: { hash: string }) {\n const { chainId } = useActiveWeb3React()\n const allTransactions = useAllTransactions()\n\n const tx = allTransactions?.[hash]\n const info = tx?.info\n const pending = !tx?.receipt\n const success = !pending && tx && (tx.receipt?.status === 1 || typeof tx.receipt?.status === 'undefined')\n\n if (!chainId) return null\n\n return (\n
\n \n \n \n ↗\n \n \n \n {pending ? : success ? : }\n \n \n
\n )\n}\n","// @ts-nocheck\nimport { Connector } from '@web3-react/types'\nimport useActiveWeb3React from 'hooks/useActiveWeb3React'\nimport { useCallback, useContext } from 'react'\nimport { ExternalLink as LinkIcon } from 'react-feather'\nimport { useAppDispatch } from 'state/hooks'\nimport styled, { ThemeContext } from 'styled-components/macro'\nimport { AbstractConnector } from 'packages/abstract-connector'\n\nimport { ReactComponent as Close } from '../../assets/images/x.svg'\nimport { injected } from '../../connectors'\nimport { SUPPORTED_WALLETS } from '../../constants/wallet'\nimport { clearAllTransactions } from '../../state/transactions/actions'\nimport { ExternalLink, LinkStyledButton, ThemedText } from '../../theme'\nimport { shortenAddress } from '../../utils'\nimport { ExplorerDataType, getExplorerLink } from '../../utils/getExplorerLink'\nimport { ButtonSecondary } from '../Button'\nimport StatusIcon from '../Identicon/StatusIcon'\nimport { AutoRow } from '../Row'\nimport Copy from './Copy'\nimport Transaction from './Transaction'\nimport { isMobile } from 'utils/userAgent'\n\nconst HeaderRow = styled.div`\n ${({ theme }) => theme.flexRowNoWrap};\n padding: 1rem 1rem;\n font-weight: 600;\n color: ${(props) => (props.color === 'blue' ? ({ theme }) => theme.primary1 : 'inherit')};\n ${({ theme }) => theme.mediaWidth.upToMedium`\n padding: 1rem;\n `};\n`\n\nconst UpperSection = styled.div`\n position: relative;\n\n h5 {\n margin: 0;\n margin-bottom: 0.5rem;\n font-size: 1rem;\n font-weight: 400;\n }\n\n h5:last-child {\n margin-bottom: 0px;\n }\n\n h4 {\n margin-top: 0;\n font-weight: 600;\n }\n`\n\nconst InfoCard = styled.div`\n padding: 1rem;\n border: 1px solid ${({ theme }) => theme.bg3};\n border-radius: 20px;\n position: relative;\n display: grid;\n grid-row-gap: 12px;\n`\n\nconst AccountGroupingRow = styled.div`\n ${({ theme }) => theme.flexRowNoWrap};\n justify-content: space-between;\n align-items: center;\n font-weight: 400;\n display: ${(props) => (props.displayType === 'desktop' ? 'flex' : 'contents')};\n color: ${({ theme }) => theme.text1};\n\n div {\n ${({ theme }) => theme.flexRowNoWrap}\n align-items: center;\n }\n`\n\nconst AccountSection = styled.div`\n padding: 0rem 1rem;\n ${({ theme }) => theme.mediaWidth.upToMedium`padding: 0rem 1rem 1.5rem 1rem;`};\n`\n\nconst YourAccount = styled.div`\n h5 {\n margin: 0 0 1rem 0;\n font-weight: 400;\n }\n\n h4 {\n margin: 0;\n font-weight: 600;\n }\n`\n\nconst LowerSection = styled.div`\n ${({ theme }) => theme.flexColumnNoWrap}\n padding: 1.5rem;\n flex-grow: 1;\n overflow: auto;\n background-color: transparent;\n border-bottom-left-radius: 20px;\n border-bottom-right-radius: 20px;\n\n h5 {\n margin: 0;\n font-weight: 400;\n color: ${({ theme }) => theme.text2};\n }\n`\n\nconst AccountControl = styled.div`\n display: flex;\n justify-content: space-between;\n min-width: 0;\n width: 100%;\n\n font-weight: 600;\n font-size: 1.25rem;\n\n a:hover {\n text-decoration: underline;\n }\n\n p {\n min-width: 0;\n margin: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color:white;\n }\n`\n\nconst AddressLink = styled(ExternalLink)<{ hasENS: boolean; isENS: boolean }>`\n font-size: 0.825rem;\n color: ${({ theme }) => theme.text3};\n margin-left: 1rem;\n font-size: 0.825rem;\n display: flex;\n :hover {\n color: ${({ theme }) => theme.text2};\n }\n`\n\nconst CloseIcon = styled.div`\n position: absolute;\n right: 1rem;\n top: 14px;\n &:hover {\n cursor: pointer;\n opacity: 0.6;\n }\n`\n\nconst CloseColor = styled(Close)`\n path {\n stroke: ${({ theme }) => theme.text4};\n }\n`\n\nconst WalletName = styled.div`\n width: initial;\n font-size: 0.825rem;\n font-weight: 600;\n color: ${({ theme }) => theme.text3};\n`\n\nconst IconWrapper = styled.div<{ size?: number }>`\n ${({ theme }) => theme.flexColumnNoWrap};\n align-items: center;\n justify-content: center;\n margin-right: 8px;\n & > img,\n span {\n height: ${({ size }) => (size ? size + 'px' : '32px')};\n width: ${({ size }) => (size ? size + 'px' : '32px')};\n }\n ${({ theme }) => theme.mediaWidth.upToMedium`\n align-items: flex-end;\n `};\n`\n\nfunction WrappedStatusIcon({ connector }: { connector: AbstractConnector | Connector }) {\n return (\n \n \n \n )\n}\n\nconst TransactionListWrapper = styled.div`\n ${({ theme }) => theme.flexColumnNoWrap};\n`\n\nconst WalletAction = styled(ButtonSecondary)`\n width: fit-content;\n font-weight: 400;\n margin-left: 8px;\n font-size: 0.825rem;\n padding: 4px 20px;\n border-radius: 40px;\n background:linear-gradient(73.6deg, rgb(133, 255, 196) 2.11%, rgb(92, 198, 255) 42.39%, rgb(188, 133, 255) 85.72%);\n color:white;\n border:none;\n :hover {\n cursor: pointer;\n text-decoration: underline;\n }\n`\n\nfunction renderTransactions(transactions: string[]) {\n return (\n \n {transactions.map((hash, i) => {\n return \n })}\n \n )\n}\n\ninterface AccountDetailsProps {\n toggleWalletModal: () => void\n pendingTransactions: string[]\n confirmedTransactions: string[]\n ENSName?: string\n openOptions: () => void\n}\n\nexport default function AccountDetails({\n toggleWalletModal,\n pendingTransactions,\n confirmedTransactions,\n ENSName,\n openOptions,\n}: AccountDetailsProps) {\n const { chainId, account, connector } = useActiveWeb3React()\n // @ts-ignore\n const theme = useContext(ThemeContext)\n const dispatch = useAppDispatch()\n\n function formatConnectorName() {\n const { ethereum } = window\n const isMetaMask = !!(ethereum && ethereum.isMetaMask)\n const name = Object.keys(SUPPORTED_WALLETS)\n .filter(\n (k) =>\n SUPPORTED_WALLETS[k].connector === connector && (connector !== injected || isMetaMask === (k === 'METAMASK'))\n )\n .map((k) => SUPPORTED_WALLETS[k].name)[0]\n return (\n \n Connected with {name}\n \n )\n }\n\n const clearAllTransactionsCallback = useCallback(() => {\n if (chainId) dispatch(clearAllTransactions({ chainId }))\n }, [dispatch, chainId])\n\n return (\n <>\n \n \n \n \n \n Account\n \n \n \n \n \n {formatConnectorName()}\n
\n {connector !== injected && (\n {\n ;(connector as any).close()\n }}\n >\n Disconnect\n \n )}\n {\n openOptions()\n }}\n >\n Change\n \n
\n
\n \n \n {ENSName ? (\n <>\n
\n {connector && }\n

{ENSName}

\n
\n \n ) : (\n <>\n
\n {connector && }\n

{account && shortenAddress(account)}

\n
\n \n )}\n
\n
\n \n {ENSName ? (\n <>\n \n
\n {account && (\n \n \n Copy Address\n \n \n )}\n {chainId && account && (\n \n \n \n View on Explorer\n \n \n )}\n
\n
\n \n ) : (\n <>\n \n
\n {account && (\n \n \n Copy Address\n \n \n )}\n {chainId && account && (\n \n \n \n View on Explorer\n \n \n )}\n
\n
\n \n )}\n
\n
\n
\n
\n
\n {!!pendingTransactions.length || !!confirmedTransactions.length ? (\n \n \n \n Recent Transactions\n \n \n (clear all)\n \n \n {renderTransactions(pendingTransactions)}\n {renderTransactions(confirmedTransactions)}\n \n ) : (\n \n \n {/* Your transactions will appear here... */}\n \n \n )}\n \n )\n}\n","// @ts-nocheck\nimport { DialogContent, DialogOverlay } from '@reach/dialog'\nimport { transparentize } from 'polished'\nimport React from 'react'\nimport { animated, useTransition } from 'react-spring'\nimport styled, { css } from 'styled-components/macro'\n\nimport { isMobile } from '../../utils/userAgent'\n\nconst AnimatedDialogOverlay = animated(DialogOverlay)\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst StyledDialogOverlay = styled(AnimatedDialogOverlay)`\n &[data-reach-dialog-overlay] {\n z-index: 2;\n background-color: #565a6980;\n overflow: hidden;\n padding-top: 50px;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: transparent;\n marginTop: \"100px\";\n }\n`\n\nconst AnimatedDialogContent = animated(DialogContent)\n// destructure to not pass custom props to Dialog DOM element\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst StyledDialogContent = styled(({ minHeight, maxHeight, mobile, isOpen, ...rest }) => (\n \n)).attrs({\n 'aria-label': 'dialog',\n})`\n overflow-y: auto;\n margin:auto;\n\n &[data-reach-dialog-content] {\n \n background-color: rgba(19, 17, 24, 0.9);\n border: 1px solid ${({ theme }) => theme.bg1};\n\t color:white;\n box-shadow: 0 4px 8px 0 ${({ theme }) => transparentize(0.95, theme.shadow1)};\n padding: 0px;\n width: 50vw;\n\t\n overflow-y: auto;\n overflow-x: hidden;\n border:none;\n align-self: 'center';\n\n max-width: 514px;\n ${({ maxHeight }) =>\n maxHeight &&\n css`\n max-height: ${maxHeight}vh;\n `}\n ${({ minHeight }) =>\n minHeight &&\n css`\n min-height: ${minHeight}vh;\n `}\n display: flex;\n border-radius: 40px;\n ${({ theme }) => theme.mediaWidth.upToMedium`\n width: 65vw;\n margin: 0;\n `}\n ${({ theme, mobile }) => theme.mediaWidth.upToSmall`\n width: 85vw;\n ${mobile &&\n css`\n width: 90vw;\n\t\t height:80vw\n border-radius: 8px;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n `\n }\n `}\n }\n`\n\ninterface ModalProps {\n isOpen: boolean\n onDismiss: () => void\n minHeight?: number | false\n maxHeight?: number\n initialFocusRef?: React.RefObject\n children?: React.ReactNode\n searchModal?: boolean\n}\n\nexport default function Modal({\n isOpen,\n onDismiss,\n minHeight = false,\n maxHeight = 90,\n initialFocusRef,\n children,\n searchModal=false,\n}: ModalProps) {\n const fadeTransition = useTransition(isOpen, null, {\n config: { duration: 200 },\n from: { opacity: 0 },\n enter: { opacity: 1 },\n leave: { opacity: 0 },\n })\n\n return (\n <>\n {fadeTransition.map(\n ({ item, key, props }) =>\n item && (\n \n \n {/* prevents the automatic focusing of inputs on mobile by the reach dialog */}\n {!initialFocusRef && isMobile ?
: null}\n {children}\n \n \n )\n )}\n \n )\n}\n","import React from 'react'\nimport styled from 'styled-components/macro'\n\nimport { ExternalLink } from '../../theme'\n\nconst InfoCard = styled.button<{ active?: boolean }>`\n background-color: ${({ theme, active }) => (active ? theme.bg3 : theme.bg2)};\n padding: 1rem;\n outline: none;\n border: none;\n border-radius: 12px;\n height:60px;\n &:focus {\n box-shadow: 0 0 0 1px ${({ theme }) => theme.primary1};\n }\n border-color: ${({ theme, active }) => (active ? 'transparent' : theme.bg3)};\n`\n\nconst OptionCard = styled(InfoCard as any)`\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n margin-top: 2rem;\n padding: 1rem;\n`\n\nconst OptionCardLeft = styled.div`\n ${({ theme }) => theme.flexColumnNoWrap};\n justify-content: center;\n height: 100%;\n`\n\nconst OptionCardClickable = styled(OptionCard as any) <{ clickable?: boolean }>`\n margin-top: 0;\n &:hover {\n cursor: ${({ clickable }) => (clickable ? 'pointer' : '')};\n }\n :focus{\n box-shadow: none;\n }\n opacity: ${({ disabled }) => (disabled ? '0.5' : '1')};\n`\n\nconst GreenCircle = styled.div`\n ${({ theme }) => theme.flexRowNoWrap}\n justify-content: center;\n align-items: center;\n\n &:first-child {\n height: 8px;\n width: 8px;\n margin-right: 8px;\n background-color: ${({ theme }) => theme.green1};\n border-radius: 50%;\n }\n`\n\nconst CircleWrapper = styled.div`\n color: ${({ theme }) => theme.green1};\n display: flex;\n justify-content: center;\n align-items: center;\n`\n\nconst HeaderText = styled.div`\n ${({ theme }) => theme.flexRowNoWrap};\n color: white;\n font-size: 16px;\n font-weight: 400;\n `\n\nconst SubHeader = styled.div`\n color: ${({ theme }) => theme.text2};\n margin-top: 3px;\n font-size: 12px;\n`\n\nconst IconWrapper = styled.div<{ size?: number | null }>`\n ${({ theme }) => theme.flexColumnNoWrap};\n align-items: center;\n justify-content: center;\n & > img,\n span {\n height: ${({ size }) => (size ? size + 'px' : '24px')};\n width: ${({ size }) => (size ? size + 'px' : '24px')};\n }\n ${({ theme }) => theme.mediaWidth.upToMedium`\n align-items: flex-end;\n `};\n`\n\nexport default function Option({\n link = null,\n clickable = true,\n size,\n onClick = null,\n color,\n header,\n subheader = null,\n icon,\n active = false,\n id,\n}: {\n link?: string | null\n clickable?: boolean\n size?: number | null\n onClick?: null | (() => void)\n color: string\n header: React.ReactNode\n subheader: React.ReactNode | null\n icon: string\n active?: boolean\n id: string\n}) {\n const content = (
\n \n \n \n \n \n {active ? (\n \n \n
\n \n \n ) : (\n ''\n )}\n {header}\n \n {subheader && {subheader}}\n \n \n {'Icon'}\n \n \n\n \n \n \n \n
\n )\n if (link) {\n return {content}\n }\n\n return content\n}\n","import { darken } from 'polished'\nimport styled from 'styled-components/macro'\nimport { AbstractConnector } from 'packages/abstract-connector'\n\nimport { injected } from '../../connectors'\nimport { SUPPORTED_WALLETS } from '../../constants/wallet'\nimport Loader from '../Loader'\nimport Option from './Option'\n\nconst PendingSection = styled.div`\n ${({ theme }) => theme.flexColumnNoWrap};\n align-items: center;\n justify-content: center;\n width: 100%;\n & > * {\n width: 100%;\n }\n`\n\nconst StyledLoader = styled(Loader)`\n margin-right: 1rem;\n`\n\nconst LoadingMessage = styled.div<{ error?: boolean }>`\n ${({ theme }) => theme.flexRowNoWrap};\n align-items: center;\n justify-content: flex-start;\n border-radius: 12px;\n margin-bottom: 20px;\n color: ${({ theme, error }) => (error ? theme.red1 : 'inherit')};\n border: 1px solid ${({ theme, error }) => (error ? theme.red1 : theme.text4)};\n\n & > * {\n padding: 1rem;\n }\n`\n\nconst ErrorGroup = styled.div`\n ${({ theme }) => theme.flexRowNoWrap};\n align-items: center;\n justify-content: flex-start;\n`\n\nconst ErrorButton = styled.div`\n border-radius: 40px;\n font-size: 12px;\n color: ${({ theme }) => theme.text1};\n color:white;\n background: linear-gradient(73.6deg, #85FFC4 2.11%, #5CC6FF 42.39%, #BC85FF 85.72%);\n margin-left: 1rem;\n padding: 0.5rem;\n font-weight: 600;\n user-select: none;\n\n &:hover {\n cursor: pointer;\n background-color: ${({ theme }) => darken(0.1, theme.text4)};\n }\n`\n\nconst LoadingWrapper = styled.div`\n ${({ theme }) => theme.flexRowNoWrap};\n align-items: center;\n justify-content: center;\n`\n\nexport default function PendingView({\n connector,\n error = false,\n setPendingError,\n tryActivation,\n}: {\n connector?: AbstractConnector\n error?: boolean\n setPendingError: (error: boolean) => void\n tryActivation: (connector: AbstractConnector) => void\n}) {\n const isMetamask = window?.ethereum?.isMetaMask\n\n return (\n \n \n \n {error ? (\n \n
\n Error connecting\n
\n {\n setPendingError(false)\n connector && tryActivation(connector)\n }}\n >\n Try Again\n \n
\n ) : (\n <>\n \n Initializing...\n \n )}\n
\n
\n {Object.keys(SUPPORTED_WALLETS).map((key) => {\n const option = SUPPORTED_WALLETS[key]\n if (option.connector === connector) {\n if (option.connector === injected) {\n if (isMetamask && option.name !== 'MetaMask') {\n return null\n }\n if (!isMetamask && option.name === 'MetaMask') {\n return null\n }\n }\n return (\n \n )\n }\n return null\n })}\n
\n )\n}\n","import { AutoColumn } from 'components/Column'\nimport { PrivacyPolicy } from 'components/PrivacyPolicy'\nimport Row from 'components/Row'\nimport { useWalletConnectMonitoringEventCallback } from 'hooks/useMonitoringEventCallback'\nimport { useEffect, useState } from 'react'\nimport { ArrowLeft } from 'react-feather'\nimport ReactGA from 'react-ga4'\nimport styled from 'styled-components/macro'\nimport { AbstractConnector } from 'packages/abstract-connector'\nimport { UnsupportedChainIdError, useWeb3React } from 'packages/core'\nimport { WalletConnectConnector } from 'packages/wallet-connector'\n\nimport MetamaskIcon from '../../assets/images/metamask.png'\nimport { ReactComponent as Close } from '../../assets/images/x.svg'\nimport { injected } from '../../connectors'\nimport { SUPPORTED_WALLETS } from '../../constants/wallet'\nimport usePrevious from '../../hooks/usePrevious'\nimport { useModalOpen, useWalletModalToggle } from '../../state/application/hooks'\nimport { ApplicationModal } from '../../state/application/reducer'\nimport { ThemedText } from '../../theme'\nimport AccountDetails from '../AccountDetails'\nimport Modal from '../Modal'\nimport Option from './Option'\nimport PendingView from './PendingView'\nrequire(\"./style.css\")\n\nconst CloseIcon = styled.div`\n position: absolute;\n right:5px;\n \n &:hover {\n cursor: pointer;\n opacity: 0.6;\n }\n`\n\nconst CloseColor = styled(Close)`\n path {\n stroke: ${({ theme }) => theme.text4};\n }\n`\n\nconst Wrapper = styled.div`\n ${({ theme }) => theme.flexColumnNoWrap}\n margin: 0;\n padding: 20px;\n border-radius: 40px;\n width: 507px;\n ${({ theme }) => theme.mediaWidth.upToMedium`\n width: 350px;\n `};\n`\n\nconst HeaderRow = styled.div`\n ${({ theme }) => theme.flexRowNoWrap};\n padding: 15px;\n font-weight: 600;\n color:#2172E5;\n ${({ theme }) => theme.mediaWidth.upToMedium`\n padding: 1rem;\n padding: 8px;\n `};\n`\n\nconst ContentWrapper = styled.div`\n background-color:#16161f;\n border-bottom-left-radius: 20px;\n border-bottom-right-radius: 20px;\n padding: 0 1rem 1rem 1rem;\n\n ${({ theme }) => theme.mediaWidth.upToMedium`padding: 0 1rem 1rem 1rem`};\n \n`\n\nconst UpperSection = styled.div`\n position: relative;\n \n h5 {\n margin: 0;\n margin-bottom: 0.5rem;\n font-size: 1rem;\n font-weight: 400;\n }\n\n h5:last-child {\n margin-bottom: 0px;\n }\n\n h4 {\n margin-top: 0;\n font-weight: 600;\n }\n`\n\nconst OptionGrid = styled.div`\n display: grid;\n grid-gap: 10px;\n ${({ theme }) => theme.mediaWidth.upToMedium`\n grid-template-columns: 1fr;\n grid-gap: 10px;\n `};\n`\n\nconst HoverText = styled.div`\n text-decoration: none;\n display: flex;\n align-items: center;\n\n :hover {\n cursor: pointer;\n }\n`\n\nconst WALLET_VIEWS = {\n OPTIONS: 'options',\n OPTIONS_SECONDARY: 'options_secondary',\n ACCOUNT: 'account',\n PENDING: 'pending',\n LEGAL: 'legal',\n}\n\nexport default function WalletModal({\n pendingTransactions,\n confirmedTransactions,\n ENSName,\n}: {\n pendingTransactions: string[] // hashes of pending\n confirmedTransactions: string[] // hashes of confirmed\n ENSName?: string\n}) {\n // important that these are destructed from the account-specific web3-react context\n const { active, account, connector, activate, error } = useWeb3React()\n\n const [walletView, setWalletView] = useState(WALLET_VIEWS.ACCOUNT)\n const previousWalletView = usePrevious(walletView)\n\n const [pendingWallet, setPendingWallet] = useState()\n\n const [pendingError, setPendingError] = useState()\n\n const walletModalOpen = useModalOpen(ApplicationModal.WALLET)\n const toggleWalletModal = useWalletModalToggle()\n\n const previousAccount = usePrevious(account)\n\n const logMonitoringEvent = useWalletConnectMonitoringEventCallback()\n\n // close on connection, when logged out before\n useEffect(() => {\n if (account && !previousAccount && walletModalOpen) {\n toggleWalletModal()\n }\n }, [account, previousAccount, toggleWalletModal, walletModalOpen])\n\n // always reset to account view\n useEffect(() => {\n if (walletModalOpen) {\n setPendingError(false)\n setWalletView(WALLET_VIEWS.ACCOUNT)\n }\n }, [walletModalOpen])\n\n // close modal when a connection is successful\n const activePrevious = usePrevious(active)\n const connectorPrevious = usePrevious(connector)\n useEffect(() => {\n if (walletModalOpen && ((active && !activePrevious) || (connector && connector !== connectorPrevious && !error))) {\n setWalletView(WALLET_VIEWS.ACCOUNT)\n }\n }, [setWalletView, active, error, connector, walletModalOpen, activePrevious, connectorPrevious])\n\n const tryActivation = async (connector: AbstractConnector | undefined) => {\n let name = ''\n Object.keys(SUPPORTED_WALLETS).map((key) => {\n if (connector === SUPPORTED_WALLETS[key].connector) {\n return (name = SUPPORTED_WALLETS[key].name)\n }\n return true\n })\n // log selected wallet\n ReactGA.event({\n category: 'Wallet',\n action: 'Change Wallet',\n label: name,\n })\n setPendingWallet(connector) // set wallet for pending view\n setWalletView(WALLET_VIEWS.PENDING)\n\n // if the connector is walletconnect and the user has already tried to connect, manually reset the connector\n if (connector instanceof WalletConnectConnector) {\n connector.walletConnectProvider = undefined\n toggleWalletModal();\n }\n connector &&\n activate(connector, undefined, true)\n .then(async () => {\n const walletAddress = await connector.getAccount()\n logMonitoringEvent({ walletAddress })\n })\n .catch((error) => {\n if (error instanceof UnsupportedChainIdError) {\n activate(connector) // a little janky...can't use setError because the connector isn't set\n toggleWalletModal();\n } else {\n setPendingError(true)\n }\n })\n }\n\n // get wallets user can switch too, depending on device/browser\n function getOptions() {\n const isMetamask = window.ethereum && window.ethereum.isMetaMask\n return Object.keys(SUPPORTED_WALLETS).map((key) => {\n const option = SUPPORTED_WALLETS[key]\n // check for mobile options\n // if (isMobile) {\n // //disable portis on mobile for now\n // if (option.connector === portis) {\n // return null\n // }\n\n // if (!window.web3 && !window.ethereum && option.mobile) {\n // return (\n // {\n // option.connector !== connector && !option.href && tryActivation(option.connector)\n // }}\n // id={`connect-${key}`}\n // key={key}\n // active={option.connector && option.connector === connector}\n // color={option.color}\n // link={option.href}\n // header={option.name}\n // subheader={null}\n // icon={option.iconURL}\n // />\n // )\n // }\n // return null\n // }\n\n // overwrite injected when needed\n if (option.connector === injected) {\n // don't show injected if there's no injected provider\n if (!(window.web3 || window.ethereum)) {\n if (option.name === 'MetaMask') {\n return (\n \n )\n } else {\n return null //dont want to return install twice\n }\n }\n // don't return metamask if injected provider isn't metamask\n else if (option.name === 'MetaMask' && !isMetamask) {\n return null\n }\n // likewise for generic\n else if (option.name === 'Injected' && isMetamask) {\n return null\n }\n }\n\n // return rest of options\n return (\n !option.mobileOnly && (\n {\n option.connector === connector\n ? setWalletView(WALLET_VIEWS.ACCOUNT)\n : !option.href && tryActivation(option.connector)\n }}\n key={key}\n active={option.connector === connector}\n color={option.color}\n link={option.href}\n header={option.name}\n subheader={null} //use option.descriptio to bring back multi-line\n icon={option.iconURL}\n />\n )\n )\n })\n }\n\n function getModalContent() {\n if (error) {\n return (\n \n \n \n \n \n {error instanceof UnsupportedChainIdError ? \"Wrong Network\" : \"Error connecting\"}\n \n \n {error instanceof UnsupportedChainIdError ? (\n
\n Please connect to a supported network from your wallet.\n
\n ) : (\n \"Error connecting. Try refreshing the page.\"\n )}\n
\n
\n )\n }\n if (walletView === WALLET_VIEWS.LEGAL) {\n return (\n \n \n {\n setWalletView(\n (previousWalletView === WALLET_VIEWS.LEGAL ? WALLET_VIEWS.ACCOUNT : previousWalletView) ??\n WALLET_VIEWS.ACCOUNT\n )\n }}\n >\n \n \n \n \n Legal & Privacy\n \n \n \n \n \n )\n }\n if (account && walletView === WALLET_VIEWS.ACCOUNT) {\n return (\n setWalletView(WALLET_VIEWS.OPTIONS)}\n />\n )\n }\n return (\n \n \n {walletView !== WALLET_VIEWS.ACCOUNT ? (\n \n {\n setPendingError(false)\n setWalletView(WALLET_VIEWS.ACCOUNT)\n }}\n >\n \n \n \n ) : (\n \n \n Connect Wallet\n \n \n \n \n \n )}\n\n \n \n {/* \n \n \n\n By connecting a wallet, you agree to Uniswap Labs’{' '}\n Terms of Service and\n acknowledge that you have read and understand the Uniswap{' '}\n Protocol Disclaimer.\n\n \n \n */}\n {walletView === WALLET_VIEWS.PENDING ? (\n \n ) : (\n {getOptions()}\n )}\n {/* setWalletView(WALLET_VIEWS.LEGAL)}> */}\n \n \n \n \n )\n }\n\n return (\n \n
\n
\n {getModalContent()}\n
\n
\n
\n )\n}\n","// eslint-disable-next-line no-restricted-imports\nimport { Connector } from '@web3-react/types'\nimport { darken } from 'polished'\nimport { useMemo } from 'react'\nimport { Activity } from 'react-feather'\n// import styled, { css } from 'styled-components/macro'\nimport styled from 'styled-components/macro'\nimport { AbstractConnector } from 'packages/abstract-connector'\nimport { UnsupportedChainIdError, useWeb3React } from 'packages/core'\n\nimport { NetworkContextName } from '../../constants/misc'\nimport useENSName from '../../hooks/useENSName'\n// import { useHasSocks } from '../../hooks/useSocksBalance'\nimport { useWalletModalToggle } from '../../state/application/hooks'\nimport { isTransactionRecent, useAllTransactions } from '../../state/transactions/hooks'\nimport { TransactionDetails } from '../../state/transactions/reducer'\nimport { shortenAddress } from '../../utils'\nimport { ButtonSecondary } from '../Button'\nimport StatusIcon from '../Identicon/StatusIcon'\nimport Loader from '../Loader'\nimport { RowBetween } from '../Row'\nimport WalletModal from '../WalletModal'\n\nconst IconWrapper = styled.div<{ size?: number }>`\n ${({ theme }) => theme.flexColumnNoWrap};\n align-items: center;\n justify-content: center;\n & > * {\n height: ${({ size }) => (size ? size + 'px' : '32px')};\n width: ${({ size }) => (size ? size + 'px' : '32px')};\n }\n`\n\nconst Web3StatusGeneric = styled(ButtonSecondary)`\n ${({ theme }) => theme.flexRowNoWrap}\n width: 100%;\n align-items: center;\n padding: 0.5rem;\n border-radius: 100px;\n cursor: pointer;\n user-select: none;\n height: 36px;\n margin-right: 0px;\n margin-left: 0px;\n :focus {\n outline: none;\n }\n`\nconst Web3StatusError = styled(Web3StatusGeneric)`\n background-color: ${({ theme }) => theme.red1};\n color: ${({ theme }) => theme.white};\n border: none;\n font-weight: 600;\n height: 40px;\n :hover,\n :focus {\n background-color: ${({ theme }) => darken(0.1, theme.red1)};\n }\n`\n\nconst Web3StatusConnect = styled(Web3StatusGeneric) <{ faded?: boolean }>`\n font-weight: 600;\n color:white;\n height: 40px ;\n border: none;\n margin-right: 0px;\n margin-left:0px;\n`\n\nconst Web3StatusConnected = styled(Web3StatusGeneric) <{ pending?: boolean }>`\n color:white;\n height: 38px ;\n border: none;\n margin-right: 0px; \n font-weight: 600;\n`\n\nconst Text = styled.p`\n flex: 1 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n margin: 0 0.5rem 0 0.25rem;\n font-size: 1rem;\n width: fit-content;\n font-weight: 600;\n`\n\nconst NetworkIcon = styled(Activity)`\n margin-left: 0.25rem;\n margin-right: 0.5rem;\n width: 16px;\n height: 16px;\n`\n\n// we want the latest one to come first, so return negative if a is after b\nfunction newTransactionsFirst(a: TransactionDetails, b: TransactionDetails) {\n return b.addedTime - a.addedTime\n}\n\n// function Sock() {\n// return (\n// \n// 🧦\n// \n// )\n// }\n\nfunction WrappedStatusIcon({ connector }: { connector: AbstractConnector | Connector }) {\n return (\n \n \n \n )\n}\n\nfunction Web3StatusInner() {\n const { account, connector, error } = useWeb3React()\n\n const { ENSName } = useENSName(account ?? undefined)\n\n const allTransactions = useAllTransactions()\n \n const sortedRecentTransactions = useMemo(() => {\n const txs = Object.values(allTransactions)\n return txs.filter(isTransactionRecent).sort(newTransactionsFirst)\n }, [allTransactions])\n\n const pending = sortedRecentTransactions.filter((tx) => !tx.receipt).map((tx) => tx.hash)\n\n const hasPendingTransactions = !!pending.length\n // const hasSocks = useHasSocks()\n const toggleWalletModal = useWalletModalToggle()\n\n if (account) {\n return (\n \n {hasPendingTransactions ? (\n \n

\n {pending?.length} Pending\n

{' '}\n \n
\n ) : (\n <>\n {/* {hasSocks ? : null} */}\n

{ENSName || shortenAddress(account)}

\n \n )}\n {!hasPendingTransactions && connector && }\n
\n )\n } else if (error) {\n return (\n \n \n {error instanceof UnsupportedChainIdError ? <>Wrong Network : Error}\n \n )\n } else {\n return (\n \n \n Connect Wallet\n \n \n\n )\n }\n}\n\nexport default function Web3Status() {\n const { active, account } = useWeb3React()\n const contextNetwork = useWeb3React(NetworkContextName)\n\n const { ENSName } = useENSName(account ?? undefined)\n\n const allTransactions = useAllTransactions()\n\n const sortedRecentTransactions = useMemo(() => {\n const txs = Object.values(allTransactions)\n return txs.filter(isTransactionRecent).sort(newTransactionsFirst)\n }, [allTransactions])\n\n const pending = sortedRecentTransactions.filter((tx) => !tx.receipt).map((tx) => tx.hash)\n const confirmed = sortedRecentTransactions.filter((tx) => tx.receipt).map((tx) => tx.hash)\n\n return (\n <>\n \n {(contextNetwork.active || active) && (\n \n )}\n \n )\n}\n","import { RefObject, useEffect, useRef } from 'react'\n\nexport function useOnClickOutside(\n node: RefObject,\n handler: undefined | (() => void)\n) {\n const handlerRef = useRef void)>(handler)\n useEffect(() => {\n handlerRef.current = handler\n }, [handler])\n\n useEffect(() => {\n const handleClickOutside = (e: MouseEvent) => {\n if (node.current?.contains(e.target as Node) ?? false) {\n return\n }\n if (handlerRef.current) handlerRef.current()\n \n }\n\n document.addEventListener('mousedown', handleClickOutside)\n\n return () => {\n document.removeEventListener('mousedown', handleClickOutside)\n }\n }, [node])\n}\n","export const replaceURLParam = (search: string, param: string, newValue: string) => {\n const searchParams = new URLSearchParams(search)\n searchParams.set(param, newValue)\n return searchParams.toString()\n}\n","import { CHAIN_INFO } from \"constants/chainInfo\";\nimport { SupportedChainId } from \"constants/chains\";\nimport { INFURA_NETWORK_URLS } from \"constants/infura\";\n\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { hexStripZeros } from \"@ethersproject/bytes\";\nimport { ExternalProvider } from \"@ethersproject/providers\";\n\ninterface SwitchNetworkArguments {\n provider: ExternalProvider\n chainId: SupportedChainId\n}\n\nfunction getRpcUrls(chainId: SupportedChainId): [string] {\n switch (chainId) {\n case SupportedChainId.MAINNET:\n case SupportedChainId.KOVAN:\n case SupportedChainId.GOERLI:\n return [INFURA_NETWORK_URLS[chainId]]\n case SupportedChainId.OPTIMISM:\n return ['https://mainnet.optimism.io']\n case SupportedChainId.OPTIMISTIC_KOVAN:\n return ['https://kovan.optimism.io']\n case SupportedChainId.ARBITRUM_ONE:\n return ['https://arb1.arbitrum.io/rpc']\n case SupportedChainId.ARBITRUM_RINKEBY:\n return ['https://rinkeby.arbitrum.io/rpc']\n case SupportedChainId.POLYGON:\n return ['https://polygon-rpc.com/']\n case SupportedChainId.POLYGON_MUMBAI:\n return ['https://rpc-endpoints.superfluid.dev/mumbai']\n case SupportedChainId.AURORA:\n return ['https://mainnet.aurora.dev']\n case SupportedChainId.AURORA_TEST:\n return ['https://testnet.aurora.dev']\n case SupportedChainId.CELO:\n return ['https://forno.celo.org']\n case SupportedChainId.ALFAJORES:\n return ['https://alfajores-forno.celo-testnet.org']\n default:\n }\n // Our API-keyed URLs will fail security checks when used with external wallets.\n throw new Error('RPC URLs must use public endpoints')\n}\n\n// provider.request returns Promise, but wallet_switchEthereumChain must return null or throw\n// see https://github.com/rekmarks/EIPs/blob/3326-create/EIPS/eip-3326.md for more info on wallet_switchEthereumChain\nexport async function switchToNetwork({ provider, chainId }: SwitchNetworkArguments): Promise {\n if (!provider.request) {\n return\n }\n const formattedChainId = hexStripZeros(BigNumber.from(chainId).toHexString())\n try {\n await provider.request({\n method: 'wallet_switchEthereumChain',\n params: [{ chainId: formattedChainId }],\n })\n } catch (error) {\n // 4902 is the error code for attempting to switch to an unrecognized chainId\n if (error.code === 4902) {\n const info = CHAIN_INFO[chainId]\n\n await provider.request({\n method: 'wallet_addEthereumChain',\n params: [\n {\n chainId: formattedChainId,\n chainName: info.label,\n rpcUrls: getRpcUrls(chainId),\n nativeCurrency: info.nativeCurrency,\n blockExplorerUrls: [info.explorer],\n },\n ],\n })\n // metamask (only known implementer) automatically switches after a network is added\n // the second call is done here because that behavior is not a part of the spec and cannot be relied upon in the future\n // metamask's behavior when switching to the current network is just to return null (a no-op)\n try {\n await provider.request({\n method: 'wallet_switchEthereumChain',\n params: [{ chainId: formattedChainId }],\n })\n } catch (error) {\n console.debug('Added network but could not switch chains', error)\n }\n } else {\n throw error\n }\n }\n}\n","// @ts-nocheck\nimport { CHAIN_INFO } from \"constants/chainInfo\";\nimport {\n ALL_SUPPORTED_CHAIN_IDS,\n CHAIN_IDS_TO_DISPLAY,\n CHAIN_IDS_TO_NAMES,\n SupportedChainId\n} from \"constants/chains\";\nimport useActiveWeb3React from \"hooks/useActiveWeb3React\";\nimport { useOnClickOutside } from \"hooks/useOnClickOutside\";\nimport useParsedQueryString from \"hooks/useParsedQueryString\";\nimport usePrevious from \"hooks/usePrevious\";\nimport { ParsedQs } from \"qs\";\nimport { useCallback, useEffect, useRef } from \"react\";\n// import { ArrowDownCircle, ChevronDown, XCircle, PlusCircle } from 'react-feather'\nimport { ChevronDown } from \"react-feather\";\nimport { useHistory } from \"react-router-dom\";\nimport { useModalOpen, useToggleModal } from \"state/application/hooks\";\nimport { addPopup, ApplicationModal } from \"state/application/reducer\";\nimport styled from \"styled-components/macro\";\n// import { ExternalLink, MEDIA_WIDTHS } from 'theme'\nimport { MEDIA_WIDTHS } from \"theme\";\nimport { replaceURLParam } from \"utils/routes\";\nimport { useAppDispatch } from \"../../state/hooks\";\nimport { switchToNetwork } from \"../../utils/switchToNetwork\";\n\n// const ActiveRowLinkList = styled.div`\n// display: flex;\n// flex-direction: column;\n// padding: 0 8px;\n\n// & > a {\n// align-items: center;\n// color: ${({ theme }) => theme.text1};\n// display: flex;\n// flex-direction: row;\n// font-size: 14px;\n// font-weight: 600;\n// justify-content: space-between;\n// padding: 8px 0 4px;\n// text-decoration: none;\n// }\n\n// & > a:first-child {\n// margin: 0;\n// margin-top: 0px;\n// padding-top: 10px;\n// }\n// `\nconst ActiveRowWrapper = styled.div`\n background-color: 'rgb(47 42 60)';\n border-radius: 8px;\n cursor: pointer;\n padding: 0px;\n width: 100%;\n`\n// const FlyoutHeader = styled.div`\n// color: ${({ theme }) => theme.text1};\n// color: white;\n// font-weight: 400;\n// `\n// const FlyoutFooter = styled.div`\n// color: ${({ theme }) => theme.text1};\n// font-weight: 400;\n// text-align: center;\n\n// `\n\nconst FlyoutMenu = styled.div`\n background: linear-gradient(73.6deg, #85FFC4 2.11%, #5CC6FF 42.39%, #BC85FF 85.72%);\n border: none;\n padding: 1px;\n position: absolute;\n border-radius: 20px;\n min-width: 200px;\n z-index: 99;\n @media screen and (min-width: ${MEDIA_WIDTHS.upToSmall}px) {\n\n }\n`\nconst FlyoutMenuContents = styled.div`\n align-items: flex-start;\n background-color: #16161F;\n box-shadow: 0px 0px 1px rgba(0, 0, 0, 0.01), 0px 4px 8px rgba(0, 0, 0, 0.04), 0px 16px 24px rgba(0, 0, 0, 0.04),\n 0px 24px 32px rgba(0, 0, 0, 0.01);\n border-radius: 20px;\n display: flex;\n flex-direction: column;\n font-size: 16px;\n overflow: auto;\n padding: 16px;\n\n & > *:not(:last-child) {\n margin-bottom: 12px;\n }\n`\nconst FlyoutRow = styled.div<{ active: boolean }>`\n align-items: center;\n background-color: ${({ active, theme }) => (active ? 'rgb(47 42 60)' : 'transparent')};\n border-radius: 8px;\n cursor: pointer;\n display: flex;\n font-weight: 600;\n justify-content: space-between;\n padding: 8px 8px;\n text-align: left;\n width: 100%;\n`\n// const FlyoutRowActiveIndicator = styled.div`\n// background-color: ${({ theme }) => theme.green1};\n// border-radius: 50%;\n// height: 9px;\n// width: 9px;\n// `\n// const LinkOutCircle = styled(ArrowDownCircle)`\n// transform: rotate(230deg);\n// width: 16px;\n// height: 16px;\n// `\n// const RemoveCircle = styled(XCircle)`\n// width: 16px;\n// height: 16px;\n// hover: {\n// cursor: pointer;\n// }\n// `\n// const AddCircle = styled(PlusCircle)`\n// width: 16px;\n// height: 16px;\n// hover: {\n// cursor: pointer;\n// }\n// `\n\nconst Logo = styled.img`\n height: 32px;\n width: 32px;\n margin-right: 8px;\n`\nconst NetworkLabel = styled.div`\n flex: 1 1 auto;\n color: white;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n`\nconst SelectorLabel = styled(NetworkLabel)`\n display: none;\n color: white;\n text-align: left;\n @media screen and (min-width: ${MEDIA_WIDTHS.upToSmall}px) {\n display: block;\n width: 100px;\n margin-right: 8px;\n }\n`\nconst SelectorControls = styled.div<{ interactive: boolean }>`\n align-items: center;\n border-radius: 100px;\n color: ${({ theme }) => theme.text1};\n cursor: ${({ interactive }) => (interactive ? 'pointer' : 'auto')};\n display: flex;\n font-weight: 600;\n justify-content: space-between;\n height: 40px;\n width: 184px;\n ${({ theme }) => theme.mediaWidth.upToSmall`\n width:inherit;\n `};\n padding: 0 10px !important;\n`\nconst SelectorLogo = styled(Logo) <{ interactive?: boolean }>`\n margin-right: ${({ interactive }) => (interactive ? 8 : 0)}px;\n @media screen and (min-width: ${MEDIA_WIDTHS.upToSmall}px) {\n margin-right: 8px;\n }\n`\nconst SelectorWrapper = styled.div`\n @media screen and (min-width: ${MEDIA_WIDTHS.upToSmall}px) {\n position: relative;\n }\n`\nconst StyledChevronDown = styled(ChevronDown)`\n width: 16px;\n color: white;\n`\n\nconst networkId = CHAIN_IDS_TO_DISPLAY;\n// const networkId: Array = [3, 4, 5, 42]\n// const networkId: Array = [1, 137, 10, 42161]\n// const removeNetwork = (id) => {\n// networkId = networkId.splice(networkId.indexOf(id), 1)\n// }\n\n// const BridgeLabel = ({ chainId }: { chainId: SupportedChainId }) => {\n// switch (chainId) {\n// case SupportedChainId.ARBITRUM_ONE:\n// case SupportedChainId.ARBITRUM_RINKEBY:\n// return <>Arbitrum Bridge\n// case SupportedChainId.OPTIMISM:\n// case SupportedChainId.OPTIMISTIC_KOVAN:\n// return <>Optimism Gateway\n// case SupportedChainId.POLYGON:\n// case SupportedChainId.POLYGON_MUMBAI:\n// return <>Polygon Bridge\n// default:\n// return <>Bridge\n// }\n// }\n// const ExplorerLabel = ({ chainId }: { chainId: SupportedChainId }) => {\n// switch (chainId) {\n// case SupportedChainId.ARBITRUM_ONE:\n// case SupportedChainId.ARBITRUM_RINKEBY:\n// return <>Arbiscan\n// case SupportedChainId.OPTIMISM:\n// case SupportedChainId.OPTIMISTIC_KOVAN:\n// return <>Optimistic Etherscan\n// case SupportedChainId.POLYGON:\n// case SupportedChainId.POLYGON_MUMBAI:\n// return <>Polygonscan\n// default:\n// return <>Etherscan\n// }\n// }\n\nfunction Row({\n targetChain,\n onSelectChain\n }: {\n targetChain: SupportedChainId\n onSelectChain: (targetChain: number) => void\n}) {\n const { library, chainId } = useActiveWeb3React()\n if (!library || !chainId) {\n return null\n }\n const active = chainId === targetChain\n // const { helpCenterUrl, explorer, bridge, label, logoUrl } = CHAIN_INFO[targetChain]\n const {label, logoUrl } = CHAIN_INFO[targetChain]\n\n const rowContent = (\n \n onSelectChain(targetChain)} />\n onSelectChain(targetChain)}>{label}\n \n )\n\n if (active) {\n return (\n \n {rowContent}\n {/*\n {bridge ? (\n \n \n \n ) : null}\n {explorer ? (\n \n \n \n ) : null}\n {helpCenterUrl ? (\n \n Help Center \n \n ) : null}\n */}\n \n )\n }\n return rowContent\n}\n\nconst getParsedChainId = (parsedQs?: ParsedQs) => {\n const chain = parsedQs?.chain\n if (!chain || typeof chain !== 'string') return { urlChain: undefined, urlChainId: undefined }\n\n return { urlChain: chain.toLowerCase(), urlChainId: getChainIdFromName(chain) }\n}\n\nconst getChainIdFromName = (name: string) => {\n const entry = Object.entries(CHAIN_IDS_TO_NAMES).find(([_, n]) => n === name)\n const chainId = entry?.[0]\n return chainId ? parseInt(chainId) : undefined\n}\n\nconst getChainNameFromId = (id: string | number) => {\n // casting here may not be right but fine to return undefined if it's not a supported chain ID\n return CHAIN_IDS_TO_NAMES[id as SupportedChainId] || ''\n}\n\nexport default function NetworkSelector() {\n const { chainId, library } = useActiveWeb3React()\n const parsedQs = useParsedQueryString()\n const { urlChain, urlChainId } = getParsedChainId(parsedQs)\n const prevChainId = usePrevious(chainId)\n const node = useRef()\n const open = useModalOpen(ApplicationModal.NETWORK_SELECTOR)\n const toggle = useToggleModal(ApplicationModal.NETWORK_SELECTOR)\n useOnClickOutside(node, open ? toggle : undefined)\n\n const history = useHistory()\n const info = (chainId && ALL_SUPPORTED_CHAIN_IDS.includes(chainId)) ? CHAIN_INFO[chainId] : CHAIN_INFO[SupportedChainId.ALFAJORES]\n const dispatch = useAppDispatch()\n\n const handleChainSwitch = useCallback(\n (targetChain: number, skipToggle?: boolean) => {\n if (!library?.provider) return\n switchToNetwork({ provider: library.provider, chainId: targetChain })\n .then(() => {\n if (!skipToggle) {\n toggle()\n }\n history.replace({\n search: replaceURLParam(history.location.search, 'chain', getChainNameFromId(targetChain))\n })\n })\n .catch((error) => {\n console.error('Failed to switch networks', error)\n\n // we want app network <-> chainId param to be in sync, so if user changes the network by changing the URL\n // but the request fails, revert the URL back to current chainId\n if (chainId) {\n history.replace({ search: replaceURLParam(history.location.search, 'chain', getChainNameFromId(chainId)) })\n }\n\n if (!skipToggle) {\n toggle()\n }\n\n dispatch(addPopup({ content: { failedSwitchNetwork: targetChain }, key: `failed-network-switch` }))\n })\n },\n [dispatch, library, toggle, history, chainId]\n )\n\n useEffect(() => {\n if (!chainId || !prevChainId) return\n\n // when network change originates from wallet or dropdown selector, just update URL\n if (chainId !== prevChainId && ALL_SUPPORTED_CHAIN_IDS.includes(chainId)) {\n history.replace({ search: replaceURLParam(history.location.search, 'chain', getChainNameFromId(chainId)) })\n // otherwise assume network change originates from URL\n } else if (urlChainId && urlChainId !== chainId) {\n handleChainSwitch(urlChainId, true)\n }\n }, [chainId, urlChainId, prevChainId, handleChainSwitch, history])\n\n // set chain parameter on initial load if not there\n useEffect(() => {\n if (chainId && !urlChainId && ALL_SUPPORTED_CHAIN_IDS.includes(chainId)) {\n history.replace({ search: replaceURLParam(history.location.search, 'chain', getChainNameFromId(chainId)) })\n }\n }, [chainId, history, urlChainId, urlChain])\n\n if (!chainId || !info || !library) {\n return null\n }\n\n return (\n \n \n \n {info.label}\n \n \n {open && (\n
\n \n \n {\n networkId.map((networkId) => {\n return \n })\n }\n \n \n
\n )}\n
\n )\n}\n","// @ts-nocheck\nimport useScrollPosition from '@react-hook/window-scroll'\nimport useActiveWeb3React from 'hooks/useActiveWeb3React'\nimport { NavLink } from 'react-router-dom'\nimport styled from 'styled-components/macro'\n\nimport { ReactComponent as Logo } from '../../assets/svg/logo.svg'\nimport { ReactComponent as MobileLogo } from '../../assets/svg/logo-mark.svg'\nimport Row from '../Row'\nimport { isMobile } from '../../utils/userAgent'\nimport Web3Status from '../Web3Status'\nimport NetworkSelector from './NetworkSelector'\nrequire('./style.css');\n\nconst HeaderFrame = styled.div<{ showBackground: boolean }>`\n @media (max-width: 1030px) {\n padding: 1rem;\n grid-template-columns: 48px 1fr !important;\n }\n display: grid;\n grid-template-columns: 120px 1fr 120px;\n align-items: center;\n justify-content: space-between;\n align-items: center;\n flex-direction: row;\n width: 100%;\n top: 0;\n position: relative;\n padding: 1rem;\n z-index: 21;\n position: relative;\n /* Background slide effect on scroll. */\n background-image: ${({ theme }) => `linear-gradient(to bottom, transparent 50%, ${theme.bg0} 50% )}}`};\n background-position: ${({ showBackground }) => (showBackground ? '0 0' : '0 0')};\n background-size: 100% 200%;\n box-shadow: 0px 0px 0px 1px ${({ theme, showBackground }) => (showBackground ? theme.bg2 : 'transparent;')};\n transition: background-position 0.1s, box-shadow 0.1s;\n background-blend-mode: hard-light;\n height: 80px;\n ${({ theme }) => theme.mediaWidth.upToLarge`\n grid-template-columns: 48px 1fr 1fr;\n `};\n\n ${({ theme }) => theme.mediaWidth.upToSmall`\n padding: 1rem;\n grid-template-columns: 36px 1fr;\n `};\n`\n\nconst HeaderControls = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-self: flex-end;\n`\n\nconst HeaderElement = styled.div`\n @media (max-width: 1030px) {\n align-items: center;\n }\n display: flex;\n align-items: center;\n\n &:not(:first-child) {\n margin-left: 0.5em;\n }\n\n /* addresses safari's lack of support for \"gap\" */\n & > *:not(:first-child) {\n margin-left: 8px;\n }\n\n ${({ theme }) => theme.mediaWidth.upToMedium`\n \n `};\n`\n\nconst HeaderLinks = styled(Row)`\n @media (max-width: 1030px) {\n justify-self: center;\n flex-direction: row;\n justify-content: space-between;\n justify-self: center;\n z-index: 99;\n position: fixed;\n bottom: 0; right: 50%;\n transform: translate(50%,-50%);\n margin: 0 auto;\n grid-gap: 7px;\n box-shadow: 0px 6px 10px rgb(0 0 0 / 2%);\n }\n justify-self: center;\n \n width: fit-content;\n border-radius: 100px;\n display: grid;\n grid-auto-flow: column;\n grid-gap: 7px;\n overflow: auto;\n align-items: center;\n background: #262231;\n ${({ theme }) => theme.mediaWidth.upToLarge`\n justify-self: start; \n margin-left: 160px;\n grid-gap: 7px;\n `};\n`\n\nconst AccountElement = styled.div<{ active: boolean }>`\n display: flex;\n flex-direction: row;\n align-items: center;\n border-radius: 100px;\n white-space: nowrap;\n width: 184px;\n height: 40px;\n background: linear-gradient(73.6deg, #85FFC4 2.11%, #5CC6FF 42.39%, #BC85FF 85.72%);\n color:white;\n height:40px;\n margin-right: 32px;\n margin-left:16px ;\n padding:0px;\n :focus {\n border: 1px solid blue;\n }\n ${({ theme }) => theme.mediaWidth.upToLarge`\n margin-right: 32px;\n\n \n `};\n ${({ theme }) => theme.mediaWidth.upToSmall`\n margin-right: -8px;\n width: 120px;\n `};\n`\n\nconst Title = styled.a`\n display: flex;\n align-items: center;\n pointer-events: auto;\n justify-self: flex-start;\n margin-left: 20%;\n text-decoration: none;\n width:155px;\n ${({ theme }) => theme.mediaWidth.upToLarge`\n justify-self: start; \n margin-left: 40%;\n \n `};\n ${({ theme }) => theme.mediaWidth.upToSmall`\n justify-self: center;\n width:135px;\n margin-left:100px;\n `};\n :hover {\n cursor: pointer;\n }\n`\n\nconst UniIcon = styled.div`\n transition: transform 0.3s ease;\n position: relative;\n`\n\nconst activeClassName = 'ACTIVE'\n\nconst StyledNavLink = styled(NavLink).attrs({\n activeClassName,\n})`\n ${({ theme }) => theme.flexRowNoWrap}\n align-items: center;\n outline: none;\n cursor: pointer;\n text-decoration: none;\n font-size: 14ps;\n font-weight: 700;\n padding: 4px 16px;\n word-break: break-word;\n overflow: hidden;\n white-space: nowrap;\n background-color: #1C1924;\n border-radius: 100px;\n height:30px;\n box-sizing: content-box;\n &.${activeClassName} {\n font-weight: 600;\n justify-content: center;\n background: linear-gradient(73.6deg, #85FFC4 2.11%, #5CC6FF 42.39%, #BC85FF 85.72%);\n -webkit-text-fill-color: transparent;\n -webkit-background-clip: text;\n \n }\n :hover,\n :focus {\n font-weight: 600;\n justify-content: center;\n background: linear-gradient(73.6deg, #85FFC4 2.11%, #5CC6FF 42.39%, #BC85FF 85.72%);\n -webkit-text-fill-color: transparent;\n -webkit-background-clip: text;\n }\n ${({ theme }) => theme.mediaWidth.upToSmall`\n padding: 4px 10px;\n `};\n`\n\n// const StyledExternalLink = styled(ExternalLink).attrs({\n// activeClassName,\n// }) <{ isActive?: boolean }>`\n// ${({ theme }) => theme.flexRowNoWrap}\n// align-items: left;\n// border-radius: 3rem;\n// outline: none;\n// cursor: pointer;\n// text-decoration: none;\n// color: ${({ theme }) => theme.text2};\n// font-size: 1rem;\n// width: fit-content;\n// margin: 0 12px;\n// font-weight: 600;\n\n// &.${activeClassName} {\n// border-radius: 14px;\n// font-weight: 600;\n// color: ${({ theme }) => theme.text1};\n// }\n\n// :hover,\n// :focus {\n// color: ${({ theme }) => darken(0.1, theme.text1)};\n// text-decoration: none;\n// }\n// `\n\nconst NavLinkOutLine = styled(NavLink).attrs({\n activeClassName,\n})`\n background:#1C1924;\n text-decoration: none;\n padding:1px;\n border-radius:100px;\n &.${activeClassName} {\n padding:1px;\n background: linear-gradient(73.6deg,#85FFC4 2.11%,#5CC6FF 42.39%,#BC85FF 85.72%);\n }\n :hover,\n :focus {\n padding:1px;\n background: linear-gradient(73.6deg,#85FFC4 2.11%,#5CC6FF 42.39%,#BC85FF 85.72%);\n }\n`\nconst NavLinkOutBack = styled.div`\n background: #1C1924;\n border-radius:100px;\n`\nexport default function Header() {\n // const { account, chainId } = useActiveWeb3React()\n const { account } = useActiveWeb3React()\n\n // const userEthBalance = useNativeCurrencyBalances(account ? [account] : [])?.[account ?? '']\n // const [darkMode] = useDarkModeManager()\n // const { white, black } = useTheme()\n\n // const availableClaim: boolean = useUserHasAvailableClaim(account)\n\n // const { claimTxn } = useUserHasSubmittedClaim(account ?? undefined)\n\n // const showClaimPopup = useShowClaimPopup()\n\n const scrollY = useScrollPosition()\n\n // const {\n // infoLink,\n // nativeCurrency: { symbol: nativeCurrencySymbol },\n // } = CHAIN_INFO[chainId ? chainId : SupportedChainId.MAINNET]\n\n return (\n 45} style={{ backgroundColor: \"#09080C\" }}>\n \n <UniIcon>\n {\n isMobile ? \n <MobileLogo height=\"50px\" title=\"logo\" />\n :\n <Logo width=\"100%\" height=\"100%\" title=\"logo\" />\n }\n </UniIcon>\n \n\n \n {/* \n Swap\n */}\n \n Boolean(match) ||\n pathname.startsWith('/pool') ||\n pathname.startsWith('/remove') ||\n pathname.startsWith('/increase') ||\n pathname.startsWith('/find') ||\n pathname.startsWith('/add')\n } >\n \n \n Boolean(match) ||\n pathname.startsWith('/pool') ||\n pathname.startsWith('/remove') ||\n pathname.startsWith('/increase') ||\n pathname.startsWith('/find') ||\n pathname.startsWith('/add')\n }\n >\n Capital\n \n \n \n\n \n \n \n Token\n \n \n \n \n Boolean(match) ||\n pathname.startsWith('/migrate') ||\n pathname.startsWith('/import')\n }>\n \n \n Boolean(match) ||\n pathname.startsWith('/migrate') ||\n pathname.startsWith('/import')\n }>\n Pair\n \n \n \n\n \n \n \n DDC\n \n \n \n \n Boolean(match) ||\n pathname.startsWith('/claim')}\n >\n \n \n DDJ\n \n \n \n\n {/* {(!chainId || chainId === SupportedChainId.MAINNET) && (\n \n Vote\n \n )} */}\n {/* \n Charts\n \n */}\n \n\n \n \n \n \n \n \n \n \n \n \n \n )\n}\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAABJCAYAAABxcwvcAAAACXBIWXMAACE4AAAhOAFFljFgAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAB01SURBVHgBvVxpkB1XdT6n+71ZJMsaCVs2BKxxEjCb8DhUGbPYlpMKwWBjuRI2Y4NJBYhZYlNFwpYqSVXEbD9sA2bJUsg2XqBCxXihIPzQyMYUkFRpJCAGUimPnAQvAWskjTTLe9035zvL7X4jL7IWd9Wbee/17b73fvcs3znn9mN6ho+53XPjJVXr5e0Ec7E21WmcUhorSh5PiYmqioi16QwTz6SUpqkoZqjq76B+Pdk5eWyKmWfoGTyYjvGRdqexHs1voILO5VRvECDGipQoFYX0nqSBvPryKpIOR0DDX3lb2Lm6JipL+b7OAy665VTVr7fxcOf27orRSTrGxzEDaW73vvXdTndjSvUE1WmsrmzeNn/ptgYwAQopCCIhClDC9335DCBxTt/btTpkgIe2wLkoptNQZ7JcPrRZrp+mY3AcdZD6e+cul38bZe7jOitMzOaUgUCvhUgHQKIWYNZWQIOklQWlXmXXCUgAU8+hCYAVAPW7vqDfKfR6LostvZm9m0dPffY0HcXjqIHU37t/g+jFNTKdcZWG2gECJqwT0ImphrV7VanwwTC7WrF/NkDyB+1IegCIAKeyFUgLAuZwx0CU/yJhW4rjlx01yTpikNLc3HivT18TaVivElMy1WJjVGAAjKyyqRHp5FShUu29uxTx4HAADDQthWoF2G2AcQuoIECb7/tXtd6fAZ6Mg4fKTeWq5ZvpCI8jAml+z+xVZdHZKEMfSzEZOYpOKepUKCjWCef32qOqVzYybr/tvQLJnO/l6Jodq1p2LNQU0gdAFwWoHqQr8EvWTbec7pXleaOrRqfpMI/DAik9sHusf+LIv6SK1kMqcBMdtEwcAOWlD2DIv4LdkJG7kmQwktuajI1+B/vlQNbNaDnULiXvpdUP3vZEnuYWTXUDcOm3HBvdxMPdw5Kqpw2SqlePtkrn42oXwt50BSCVGL9rzHagqzQAitmZlO0Nx+QrMvHyf3VIUspGzmiCq583NVWszR5CBbmq9f5J/gtAxCOda8uVyz5ET/N4WiDN7t49MdQZ3Qr1YjcSXJQ2gVCjuGttq5hhSgP645NtfY+JBT2g9vXu7gMIByxVKfAy494SQ7NdrJ6vnusRixrWsHPDYgaWDU/y2OjFT4eQHjJIs7tnJ4a73a1gxzoUBscrGtftQOj0Y0LkQhJG1tu4HFCmCNT2ZJxtUDb01AK/GhDVDKq2TX5NySo9qoxyvt43b5/RVgx9MTo8VZy4/LxDBao4lEaLAKjsbE1uoOGmS9ieGKtzGApHhbvCu4SkmG5lHpQCrJCcFJrETXtIj0tS1twU3zdjU4lKnJ2DmrGaTML9vjzatesUKBj53kTafWBr8gU/YpAQazEkqOQxcu5TQr9j4nUzqdQWoSxdDpSrwVLhTUEk/QykgOO+3r5IDRVQosnu4gOtwtWNzSZiEfUV6Mv35fEjA8BXe+Ym6v2L19CRgpQQjHZ5a6qqMQsNWPVajWG47X0L3ji5p7H3hFXzgcfSJ3KDDZ4U19cNompw+3VWr5ikEkxuBFJ1vXaDDpXv1Rbj1bVLctFIZDgJfFw+rOcYjgF9/d/s5SJVTwnUk4LU7xTXSMfj5G4U7l3jqWR6pp3vErXetadZfQWEm3DDp8uuKuG4ySmATrJt8PE5ZpXcvnW8z1C3oAyuh0nv6wvBjRdkau6t/YKCiBYoz+oWCn7/13uvSgv9DXQ4IPX2LyA43VBAtyGu3dI6806Nw8iAXnYS0V33U7rz/rC+S+yUG18OrXTVQuylEpmy9HG0ofakHYzQ0hZppdK8HLsxBLtXCfZ7JTBwkNqCnWuZuhXHDakDMONO4FVfk3GMPxEWj+vdlAvVxQMqwskYdASmJkEuEamlRh/+LtGY6P0n1mc7wK6WmUhCdXY8TPTgDDHanj3eMHFygAFeZRkAhl0pY4LBrQq3OQhd2D4nAyoFVQgVxpglP5WclOq5sjAhlVgq7V/UvqDi3VNWTfLo0HmHDNLivvntcmJCF9DVbNBL1dRoTYv3vOlWuepkoo+d6yDRYDiye55oj7xOWUl0zzTxvbuoxjw/cBbRimFrlnyymBdW20fIdSNAmbln72o5JwusHVCMGWRXbVZlasiUFxjXV/M98UyLErp0TNrWrHhXZ6izZSkeB6lbf1ZSHUwTOIOVKsqWEYwVyu6aqCGJ0vE/iGrf8QtKb7nNAKHUqBiu3fEQ0YuvIz7/RqLxVZRE6hhe53U3mHSpWrp09pPbF5uYp0LsnrWfwz13PtJIrQmaDW2x8mElamcZMtdCCDVi1EBpBDIJ+xaueTxacBBINfNG5RdV45ozMw5xzsbR3/v5dLxIw/cE452iUudvoSQGXRXBSWICIGh677ScF2D2iGd8/yuIv3qRApd++nADasnZfpPHYWZvbJJqtQDczx9pqEBtr+TqHXYxObfScVRur9wesQCVPGUs3GlMyOZVTwrSIqSoEgMWnrto2G5qUSDmMK/OnWvKgaTyEAFK1ep1W4imd+cMY3Hqqow5i1fkm7bbHV96EqWvvFGAukFtVtq1m0hUMd00RfzDB0U1H5BVXjR1wZj+41GiL/7I2kw9ZDQkMgOQpNqBsHxLEyfC/rgChHEvlg2pxzMrIuHLvrkrl0oTD4I0/4B8Ma5GsVPkyWUjOKBefoNETUQPyHbPCSWQSUKqXn+jNbr1zcRnPMf4jqgWbJGCfeFplG55S151vv7HlD76vYHBpfb/U8YovWYt0aWnE8t/BfHj36f0kXOIrzjT2HTtUlTVrTRx4/XU9hBnpqKzEdWsf3vApFeSduXJKzYLcJsOkqTe3Nx6ueG4ulSIZ6dsDZabTGOw40hzhCo50+WVw2pfaNUyou+8w0CEKt243e50wQsbAyxgKQJ91xFRPZLJcmv12v8T7nvLDmKA/9IvEAEotP/MNqJv7NRcEoeaRtag4FxEgBHX8zFrzLM2laOh0pwGPN6BxSupdWSQ6h5dHuIcaYlMw1rmJ+t57Rynbbfc8PIFLyK68xfEp66mdN97iNeKN3vvt4n/Tibz9gn1bjrpGVHJ6Rm7R9g2eMaXnew9N0ebKukBwE7/ooJOVwi4K0Yo/e8et0vhCl1qcH8nj5nDweYiScdI//aQnMtENs32EKOuHwAJZR+RjHfGMJSAReJd7UxqiX6zztxe8laQq+IjQKRtDxCtHhWJklu/4TSiqycpfUlsyW2iYivNiPOXf5JVQSc3NqrqmUS1BkBZAlpAkEAM14qtO//5xE4jlMk5G89j6rtJqHyB2dl57cR4qPTCQkIAjFDnnQMg9UqpiwXVp+ATLTXzLyxopCa6z8y6ca8qslBZIYoML4ZzQhxZgEkfP5f46m1mk+57twF5/Y+If/aoz7owYJ4rknb3ZXJ+bAAQboEVL4bRft7xom4/pSQgRZynHCrzgdry6pHkg8q5VKm+wH7BBkPtlnXMQ+6f3zAoScwbNAWiqYTUisHMc9kqh1fz5FioRytJpoOLceFaURsWEJKnbBmqhImLKuI///xKtVtJOFOkaHXyuCfa3S3n3vACSi1wuA0YQAYxRdsr7hAq8W9N4SGoPgCqYj462cbOFSZFRi9ca/oeyswuZpXraONE55o/hKqVLXk2IGpBvWiFC7oqCBcqyt4ueV4op4QKtzkiObTuJJNKxHewJWev1YnUGBC8VbhsBzoyLvQ8kajb3qq8KglJpR/sIvrZIw1gawWclaMKkB6fuYfokpepRHGypJsKEJxQ5WN2Vs4uZSCdLPbIclHyvxLeJNlMWoSK1pCmSUZCTSj99uAZxVCnIY4+mpTf0IBPVtXKxM0/h6TNihq88qvKh1JLZeDC+VbYpGEz8sGe05J6G1b/vyW7cOFNRF96I6Wznpd5kGYesAB7FygJH0Mf9HNR2Zt3iOE/h+hvzmnoCl4RNUTuylO7FBVifAUOpRTmgMZyGEq5dvWk8KjzOkXZHU9sDZQXMeXBJgcrVCmMNy0Rf0091MZBOETpk5M6GW2DQFakKV1wmr4nv2Yg4VZ4oOp2LqdlAcAbbjSOJKSTzz5F/p+sINMrnqtSYOour48KOJd8U0A6uxlklMzLVuUFEoXr1JT44mDuaCdxHBUC4AJKVP0JVbc6VetNrVxM6kaKErXcu0sUpEVtY6tPpmayGT3hM3rcJXblnHHnLA78gyIhdwlFANO+70Ehgq8QL9V1dWADG/eArRKVUklBbCev9J1fDnq9V51ilAHe8xxR3Rv/zMIdGPHsnVue2aUktEWnV9kcVR4wjwVpIyoqage7NA4zPc7ZEHPLhTQ+JBvpOggsZ0Nr2DLVLamin0o8JerA4uZ5/anU5Ip8UFd8mxLsy15R/Lt/SSQ0wErgJoV6z8q9zl+eOYB9+71+RtjyFaERUMt1X1AVpOVDeW3JjbZ5szSoDu3MaHszB6Su4zZX8hqFiOFK81hxA16iVqzlmLhZUXJuq/aHDanCTZZ2NG1qBq7TsF4npxgrMpl3/ZLSJd+QKF5itZeuaRYnaEfHKioJRPEjZzeTzq0OVn9IKJ37j0Sf+4F5tbhC84Ns0t4t842QabDVZc8MyPuhwiTvQE9empoe68hqnRpRcmbaqSWOVd1ImU+SIoHlRslSHE4TcNqj+SRMO6Vmdla9lS/AgW7eKZI2ROltpyuBzLWzqLdF1RYSINQhiaejT99L9D97qC1NA6oXx2fFyx0vget7z7RQiUryKqdJSRDlIc+T9eoMJO5XSWGzqCLOo3FY6rVaamnt5rBlcpdeFA15JPd0la8jtwy8ixG2zMAe6cdXr/VzyTKOyQcC1/2Jc4ned5bGeLbPyO2ierZK1YOdEesLYN55GbG4+CcDKEvWZ+/V7ACH5NRuY/t1tp8JxrnvZaa+Y+DCkkYkETenGzHGCgommqgp+fh/jhitldA3ozQ4oFyCBmOWQBYeSWGEN2vZOvbUqZEvBxfp1cptWWX3AiHMgRCInUsrw95cdyHR1PuFpL5RedTSI5tUtP3Sj/UbLcfnmLRlFtjtj/eZz7HtTDFCSiuLdkEw5cS9eazUNuQtKhBtGxX14UmaJH1qm7W/dEJs0iq7N/S97zX5XHGtcwKPvaiYCWVyj1n7f3XR8u9W8ZhdeS8eEVJK299P6YY/tfc0aJ+0l+/+p+ayc0XGKQc7aHqvdjBceI4MC1Ny1p5CS8NR+WDrKjSEw5gHEKW3i6xlMtKXt8J8+h5j1DiQ30mNC2SnM1E4tN4L9yacFyLvBaDGo+qCwSQgkYd07WdElSa+QElUCjSC7rxUAeO3rMsg6fRARsG2exW1eAC1Q5QwG22bqEUC5L89+oDfnTGVo4xoJN9NLJMPOTXRurtOA9HVT2I0kghfuwVvWXdyo2aFgauqpGP0QFYBIwMgx4gpG/sU9qK2ImSSSdNjB5oxwe5cfAvR13eY6n3+AslYXmgBcgy9b5xHs5Iha+y7XzxgVxLZYWfjpFQExQENeIUSF3VV74nyb+ZFA3LbzgQUjR6TVx3wDm78I9/LwGZqQCYJKeyPexeL1Jkiga/xon9OOTBN2U7orZAGBrcCrWjbIkjuX91F6Q+uJ/r1XjHwYthvfpMyckY7z1KSL1Dkkjjv5k2NSVmofJFqXzhXNykXPaDcUKXEBx62KFyySmbLbgWgbHY/vfWbDaYK2iMWXzm3yhtwCuMmKll1ZB0MWgWuqt3BcWMDo5R+2bckHfwClRKStG8sSO5XOFK66OtKZOnFwrveKoHuujV2fbj6RAOhkM3H51qZVqSe78VM2UFNFYLaLtW2iGMcyfYIOEbkF7Prg2J5604vB9GgS0YMheR9mN7SHWnR7DnK5WscXmlNviNXA1xILBi1sOm0R3Lnn/xjAuWhN62z2K116HADKEjXKyUgfvM66z/KSxHcRkZVOVlqVBKhiPJCaSvuX3ejSCgNnzKlsystdWEqwDkz2aiAmy3s91FRdXqw8yEbwNtPt/gpBoyy0mv+Xo2nHv3aKxjkVQvLAJAbcnA1RhpEQhQUA1gmm9Z+zgB6iQS2wpE0lsNNVo2q/WkvSjb3MO6fFcZ9/mnG03DvFqPVxaJYcPIUSmFZAZwXYqnSJDyJlml4M9URdZuusSmzspBDgai9zOzJNspcR/JKtQEVFVWeWTA7hLK1VC00FgtAsaLrPm+pDgGR3TOy2yW9HnwG0ojyN6TkuGFL7aI9UrOvktTKqpEcrOrTA1h95LZffYoGyNFfBu27v5L1/yOiE5bZQrSLq7FvKmhBVFJ8X5NyqvB0TNPY6NUpF4cmE8JgSFKqnbNY/sWcXcOdUpsmlDbhnNSHDfrqT6gx/61Bf+xfRSJeaPlr3YdNTUoFqvreM91OJNtezM5foqSFRXOekzfMo4frRJr+8J8sqG2pnUoTjPjqEbWbJi3RoBmZPY3gktzpaGkJWwdJcmpqqo4f2WFauoqhc1MZj8o3kxMF48wcw9yql5zIJpoky6iHBKxaN2uBE2AhMYYkme7wd8ARL+k7VHWRd0IaBKXx8N1FawuOEz3LMxVuZEnTKFpdoYPVToFL3IRbUd0BYH13Eu58FKDau8K+AEg7FpTodvzR9K1cv03AmVBQdJOBb9TKLDv2TlMT2AaHR+0LbvnBmQGA2vZCL5Fipe5lhHf7oRQC7v4V8c1TGj4MGHxRL3rbOg18YwOpEcK+e5tmG48C9+cv1wWi+3bRIFqctcG4o1ebI9ovzONFmUnXZnbRPmMxrfIyqd0oUseN3q7py2QuOurk2kMQLF/gYMeaZggmcPVrB6RnABwM78tS60dFV3iOGuQLbpLvfnwQQHo7AZA+eBfx336fIthUxhy0INXN7lvNMsoUPvwaOuh4zvFmJgofeMfjnm6m/rrinINzuefeOVU5bTPSmY7HLmxtujxZjAzN5JCgXV6qUvO4Al59l0tuAElib5J4krbx1HOoiMArCWehT0g5WtKwSLaF3Wq3ZXfpGTQk0kR9c15aH5FIgyzeo3aN3doE8yVrbHtPhFPMTWgSsZqXu0lUTVO2ngtXmUA1d6R7Q9wuV3D7/d51wXLBKzylb5Pg1lq76GrJOAgn2n36tdYWEgPAbnmzuPQP6kYtgtSgBkdZ+JoDDPnf30d0g6Rdb3+7fs7nP3dvC3F/g1jRPVyOBHBIGjc3QzYToIQoRx7JF12P2vkRJEoquOmRWZWgGl4dUki0pTVr716quP3+7O7Iw2rVBPFMa5NWDkOokYQUW1nwecdDlLBzRIxx2FyLu7wBDLTYIYaUhEfa8QHjVLBrCDvAtXAeLxzfvlSJYd4s6tyKigjK3e6IiqJASVJVoTsupfajFrnGBbuGeYU58bAHjB57vblv9qo443e2iaqtp6WSBC8nYjcJBgovUPf7RizVyCnJsNx2tK8beYhMZpKglkH0IhAO9hqkDXQB3uied+fqbAInwjUvWmNSJ4l++uuzG0YtWc7skQpj6SlLBlFOvYK0Qs0Q4EZbtkW0jmoDJWcg2O4r96of22/URObMz1Yp2kSto2h/KJePbFZ67jkdVbsQV7LB5UchmJo4zlUwDZDF5HGR787PsRgZQJAQFB+R9jjrFNskesf9ZnAB3Hu8AIC8dRRMex6Udk0abD+l9AeAkHn41iVy/QrKT0D1vHwd1/omMPYnA1CtxXbAqPDyUBeZUhjsyTYuA94Xh4jd1urAwno9JTfBJnErQIb7Dw4Vm0tb7tiNbIoEF0cnbCnZlvtWoEEkRU2SqBujEvv65xN96k/sWuxzevn1tsHrjssayQ0pCtVR4GuTpjKXPChTlBD1nEMiozlOEeq98xaK4Mmm8dVUnLQCz53c/qQgYedttXdxuyTixoB+MRJbUopGv90gxaMKMTA9XddNmrRO2c5nFQg1adMMGaieQxiSmqGlq7cSX/NDTajpzpGwSUEmQ2XioWaXrAxU1Ng6RRPZs0sVhPNAX0vaCf1j89bLn7tFAHrXUkyKpV/w6Oi00PHrOFIFqm6tFSka/5Q80OXY1+MhgybLQMhKl7ZY/WSMPmc2NTflrHv5UH5cNMgqY7vz+SJd7/hnov96LOeF6P5HbWz+XEmzeO6xiH3HLdFAyqU2O6mgLVT6XJxuKEV5//dWo9PN9DgHP96X2DNY71vYXu9fGCfvR/cVdlirnamIQDg1ohxGHmSU6lxUyHnzzIA5S377uZQsXVEfa2350WrwbTttiyEynn8hLHv1MgttknnPHA9ik2inbGwlupeqCHsKRg/Y2kdnzTPChkrFpnj+CZvl+k2HDJICNbs40T8wv12rmLD62PAuq+3knqLSGtqhxjoeEkxNhSXTBS9h5xV18qbve64WYVPaJMNTuCFgeXNWLkBQAzCEqFs0BDRUPLX2hs8LQL+ZNWmCR1vWpfL3T5yS0tMZT4RF8UQnJE0xVRw38iGFBD9egLlJVZOKJrjVdkweJtSZG8Uu3BzSaGiRPA1RNyQPR0woPxqWBjBSl+/7rjny4ApKau4TAfGAypGFFy7pkfbR5B08L4JuXLZ29bT0cTE9ycH0FEc1v3htPTN3pcY0bkNK5HzMCFm93LkL58HaowiQPo388ZWGEUYUFJRe3bJxS0YUYKjaGai4Xlv2/Wc6wpG0QS/NFlEExKAK4TlEDWtRMfWS/UrpSXHaiYj2z5AFnXoyDAp6iqMcGbpK4pjJsBVYTTyyGc/vR32Kw76k5LtZnMN03DOGq1bkrW2Kqm6nVQgI8DohGeylJ2q8VfCgkhsbFh6127E+hjpNXzjxm/1mizQrKjGaZDkFoA89FUCHBJICtXL04mKkO0VRy4cu718wshYOyUs/oXZqg4LxMnu5nLPHiW08Jh2NVOmusyp5/ocdCGuTwqOFgV/07EAEwJiQ57ryI2HStsauXPx2gNb/JaA9YTnxSStgqK89lPk/pbrFoR4Pj2TuX5zI+4e6XmKKDVHkvy8SRtbTpQ2Zc9cc+TRqSYKmQ1oere354nEJSGmklWOnSJgBSF6vaqJ7DAMb2FFpwc7a+UXjcr/7LCrWHPeEnuyIQAqgxPB9rd67sKHuVzYHrAz+I3EO29S3xLp6OCTYhgqKDfRqC3AucsghGWFLws5kirBkhF6oUNC6vg8yEvkBEr6HOZiZs8fe8aQnpAj9vnANPPS7ZCxb6GkcTwukDNZCb1P12IGNOmiPylnzwmIMR4eayUf+hlyYwiZFfIiPtRviruWYI1mvbTzNmkcangzR+pBnAep6cEsNANlrqWJ7fq7U+xUvWjNNI92LD8UGHRWQcPQX+5cXBxY31nvmx9WDQZJCYrARCqCF7aDmWQ6TDuUJtmkiDHXXDXxrw2fYwPwTHG7cLVXCTQiC9kIY64f3SXghfG7eqj+Q2gIB88nHbRNPezkf5g+8HDZIOLCfUFKw19a/3X9R7RPWjVFOD4rlwzZJ8Cy3LwMd1hHeeJU39lSz2zO3LbF7VtUnPFrfwov02JzN4sAi1QJUAXoidgglrmLts2Z4efeQDfQTHUcEUhwyscsFqI0SyoxrzAYpcpulE4Y9wE/3dMpMMI27BCXwJJrXvlRNkB4JVQp2HUxdbE4NwHTnBxuL7hb5aUo+4ThkF7eJpzxs6WkfRwWkOKr9C5toduGdab43jl1ixXAn/0AUBxsWm5V/kQuSEPme2OCFD/CAvp0nzRvY2A6jhl8qGuBAHOrZs1+7UdV69gq4920C8KalOaEjOY4qSDj8qej1tG9+Y71/cRy2QrfdDdv2urwvUyaGZ3tV4qScrL+B5JlHEgnJYU7s2Ic0Spuk2ixtUHXGjzhI7KUPPa9aBsk5quDEcdRBah94NkPivcu5178ozS6MJTwlwOaq9bFOJOAdBPJ9mxrK+FY83X9ZWRjBw67CABI1emx/Xrlsl7j4LdLVtXwMfzHwmILUPvxhlg0SWE4IIKfrRnJkK7F3E8+iieE1rkTmJTW/JMCJ8VePOdoBKdwlwE0q+5faCh+jH7pbejxjIC09BDQ8koBqwLi/xvwVx7S8ZvwFUKb5Gf59yTj+Hw/7ALl9bHOSAAAAAElFTkSuQmCC\"","import { abi as MERKLE_DISTRIBUTOR_ABI } from '@uniswap/merkle-distributor/build/MerkleDistributor.json'\nimport { CurrencyAmount, Token } from '@uniswap/sdk-core'\nimport { MERKLE_DISTRIBUTOR_ADDRESS } from 'constants/addresses'\nimport useActiveWeb3React from 'hooks/useActiveWeb3React'\nimport JSBI from 'jsbi'\nimport { useSingleCallResult } from 'lib/hooks/multicall'\nimport { useEffect, useState } from 'react'\n\nimport { UNI } from '../../constants/tokens'\nimport { useContract } from '../../hooks/useContract'\nimport { isAddress } from '../../utils'\n\nfunction useMerkleDistributorContract() {\n return useContract(MERKLE_DISTRIBUTOR_ADDRESS, MERKLE_DISTRIBUTOR_ABI, true)\n}\n\ninterface UserClaimData {\n index: number\n amount: string\n proof: string[]\n flags?: {\n isSOCKS: boolean\n isLP: boolean\n isUser: boolean\n }\n}\n\ntype LastAddress = string\ntype ClaimAddressMapping = { [firstAddress: string]: LastAddress }\nlet FETCH_CLAIM_MAPPING_PROMISE: Promise | null = null\nfunction fetchClaimMapping(): Promise {\n return (\n FETCH_CLAIM_MAPPING_PROMISE ??\n (FETCH_CLAIM_MAPPING_PROMISE = fetch(\n `https://raw.githubusercontent.com/Uniswap/mrkl-drop-data-chunks/final/chunks/mapping.json`\n )\n .then((res) => res.json())\n .catch((error) => {\n console.error('Failed to get claims mapping', error)\n FETCH_CLAIM_MAPPING_PROMISE = null\n }))\n )\n}\n\nconst FETCH_CLAIM_FILE_PROMISES: { [startingAddress: string]: Promise<{ [address: string]: UserClaimData }> } = {}\nfunction fetchClaimFile(key: string): Promise<{ [address: string]: UserClaimData }> {\n return (\n FETCH_CLAIM_FILE_PROMISES[key] ??\n (FETCH_CLAIM_FILE_PROMISES[key] = fetch(\n `https://raw.githubusercontent.com/Uniswap/mrkl-drop-data-chunks/final/chunks/${key}.json`\n )\n .then((res) => res.json())\n .catch((error) => {\n console.error(`Failed to get claim file mapping for starting address ${key}`, error)\n delete FETCH_CLAIM_FILE_PROMISES[key]\n }))\n )\n}\n\nconst FETCH_CLAIM_PROMISES: { [key: string]: Promise } = {}\n// returns the claim for the given address, or null if not valid\nfunction fetchClaim(account: string): Promise {\n const formatted = isAddress(account)\n if (!formatted) return Promise.reject(new Error('Invalid address'))\n\n return (\n FETCH_CLAIM_PROMISES[account] ??\n (FETCH_CLAIM_PROMISES[account] = fetchClaimMapping()\n .then((mapping) => {\n const sorted = Object.keys(mapping).sort((a, b) => (a.toLowerCase() < b.toLowerCase() ? -1 : 1))\n\n for (const startingAddress of sorted) {\n const lastAddress = mapping[startingAddress]\n if (startingAddress.toLowerCase() <= formatted.toLowerCase()) {\n if (formatted.toLowerCase() <= lastAddress.toLowerCase()) {\n return startingAddress\n }\n } else {\n throw new Error(`Claim for ${formatted} was not found in partial search`)\n }\n }\n throw new Error(`Claim for ${formatted} was not found after searching all mappings`)\n })\n .then(fetchClaimFile)\n .then((result) => {\n if (result[formatted]) return result[formatted]\n throw new Error(`Claim for ${formatted} was not found in claim file!`)\n })\n .catch((error) => {\n console.debug('Claim fetch failed', error)\n throw error\n }))\n )\n}\n\n// parse distributorContract blob and detect if user has claim data\n// null means we know it does not\nexport function useUserClaimData(account: string | null | undefined): UserClaimData | null {\n const { chainId } = useActiveWeb3React()\n\n const [claimInfo, setClaimInfo] = useState<{ [account: string]: UserClaimData | null }>({})\n\n useEffect(() => {\n if (!account || chainId !== 1) return\n\n fetchClaim(account)\n .then((accountClaimInfo) =>\n setClaimInfo((claimInfo) => {\n return {\n ...claimInfo,\n [account]: accountClaimInfo,\n }\n })\n )\n .catch(() => {\n setClaimInfo((claimInfo) => {\n return {\n ...claimInfo,\n [account]: null,\n }\n })\n })\n }, [account, chainId])\n\n return account && chainId === 1 ? claimInfo[account] : null\n}\n\n// check if user is in blob and has not yet claimed UNI\nexport function useUserHasAvailableClaim(account: string | null | undefined): boolean {\n const userClaimData = useUserClaimData(account)\n const distributorContract = useMerkleDistributorContract()\n const isClaimedResult = useSingleCallResult(distributorContract, 'isClaimed', [userClaimData?.index])\n // user is in blob and contract marks as unclaimed\n return Boolean(userClaimData && !isClaimedResult.loading && isClaimedResult.result?.[0] === false)\n}\n\nexport function useUserUnclaimedAmount(account: string | null | undefined): CurrencyAmount | undefined {\n const { chainId } = useActiveWeb3React()\n const userClaimData = useUserClaimData(account)\n const canClaim = useUserHasAvailableClaim(account)\n\n const uni = chainId ? UNI[chainId] : undefined\n if (!uni) return undefined\n if (!canClaim || !userClaimData) {\n return CurrencyAmount.fromRawAmount(uni, JSBI.BigInt(0))\n }\n return CurrencyAmount.fromRawAmount(uni, JSBI.BigInt(userClaimData.amount))\n}\n","export default __webpack_public_path__ + \"static/media/big_unicorn.595c4996.png\";","// @ts-nocheck\nimport { CurrencyAmount, Token } from '@uniswap/sdk-core'\nimport useActiveWeb3React from 'hooks/useActiveWeb3React'\nimport { useCallback, useEffect } from 'react'\nimport { Heart, X } from 'react-feather'\nimport ReactGA from 'react-ga4'\nimport styled, { keyframes } from 'styled-components/macro'\n\nimport tokenLogo from '../../assets/images/token-logo.png'\nimport {\n useModalOpen,\n useShowClaimPopup,\n useToggleSelfClaimModal,\n useToggleShowClaimPopup,\n} from '../../state/application/hooks'\nimport { ApplicationModal } from '../../state/application/reducer'\nimport { useUserHasAvailableClaim, useUserUnclaimedAmount } from '../../state/claim/hooks'\nimport { ThemedText } from '../../theme'\nimport { ButtonPrimary } from '../Button'\nimport { AutoColumn } from '../Column'\nimport { CardBGImage, CardNoise } from '../earn/styled'\n\nconst StyledClaimPopup = styled(AutoColumn)`\n background: radial-gradient(76.02% 75.41% at 1.84% 0%, #09080C 0%, #021d43 100%);\n border-radius: 20px;\n padding: 1.5rem;\n overflow: hidden;\n position: relative;\n max-width: 360px;\n box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.1);\n`\n\nconst StyledClose = styled(X)`\n position: absolute;\n right: 10px;\n top: 10px;\n\n :hover {\n cursor: pointer;\n }\n`\n\nconst rotate = keyframes`\n 0% {\n transform: perspective(1000px) rotateY(0deg);\n }\n\n 100% {\n transform: perspective(1000px) rotateY(360deg);\n }\n`\n\nconst UniToken = styled.img`\n animation: ${rotate} 5s cubic-bezier(0.83, 0, 0.17, 1) infinite;\n`\n\nexport default function ClaimPopup() {\n const { account } = useActiveWeb3React()\n\n // dont store these in persisted state yet\n const showClaimPopup: boolean = useShowClaimPopup()\n const toggleShowClaimPopup = useToggleShowClaimPopup()\n\n // toggle for showing this modal\n const showClaimModal = useModalOpen(ApplicationModal.SELF_CLAIM)\n const toggleSelfClaimModal = useToggleSelfClaimModal()\n const handleToggleSelfClaimModal = useCallback(() => {\n ReactGA.event({\n category: 'MerkleDrop',\n action: 'Toggle self claim modal',\n })\n toggleSelfClaimModal()\n }, [toggleSelfClaimModal])\n\n // const userHasAvailableclaim = useUserHasAvailableClaim()\n const userHasAvailableclaim: boolean = useUserHasAvailableClaim(account)\n const unclaimedAmount: CurrencyAmount | undefined = useUserUnclaimedAmount(account)\n\n // listen for available claim and show popup if needed\n useEffect(() => {\n if (userHasAvailableclaim) {\n ReactGA.event({\n category: 'MerkleDrop',\n action: 'Show claim popup',\n })\n toggleShowClaimPopup()\n }\n // the toggleShowClaimPopup function changes every time the popup changes, so this will cause an infinite loop.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [userHasAvailableclaim])\n\n return (\n <>\n {showClaimPopup && !showClaimModal && (\n \n \n \n \n \n {' '}\n \n {unclaimedAmount?.toFixed(0, { groupSeparator: ',' } ?? '-')} UNI\n \n \n \n 🎉\n {' '}\n UNI has arrived{' '}\n \n 🎉\n \n \n \n \n Thanks for being part of the Uniswap community \n \n \n \n \n \n Claim your UNI tokens\n \n \n \n )}\n \n )\n}\n","export default __webpack_public_path__ + \"static/media/noise.3c7efafc.png\";","export default __webpack_public_path__ + \"static/media/xl_uni.9c9e061b.png\";","import styled from 'styled-components/macro'\n\nimport uImage from '../../assets/images/big_unicorn.png'\nimport noise from '../../assets/images/noise.png'\nimport xlUnicorn from '../../assets/images/xl_uni.png'\nimport { AutoColumn } from '../Column'\n\nexport const DataCard = styled(AutoColumn)<{ disabled?: boolean }>`\n background: radial-gradient(76.02% 75.41% at 1.84% 0%, #09080C 0%, #2172e5 100%);\n border-radius: 12px;\n width: 100%;\n position: relative;\n overflow: hidden;\n`\n\nexport const CardBGImage = styled.span<{ desaturate?: boolean }>`\n background: url(${uImage});\n width: 1000px;\n height: 600px;\n position: absolute;\n border-radius: 12px;\n opacity: 0.4;\n top: -100px;\n left: -100px;\n transform: rotate(-15deg);\n user-select: none;\n ${({ desaturate }) => desaturate && `filter: saturate(0)`}\n`\n\nexport const CardBGImageSmaller = styled.span<{ desaturate?: boolean }>`\n background: url(${xlUnicorn});\n width: 1200px;\n height: 1200px;\n position: absolute;\n border-radius: 12px;\n top: -300px;\n left: -300px;\n opacity: 0.4;\n user-select: none;\n\n ${({ desaturate }) => desaturate && `filter: saturate(0)`}\n`\n\nexport const CardNoise = styled.span`\n background: url(${noise});\n background-size: cover;\n mix-blend-mode: overlay;\n border-radius: 12px;\n width: 100%;\n height: 100%;\n opacity: 0.15;\n position: absolute;\n top: 0;\n left: 0;\n user-select: none;\n`\n\nexport const CardSection = styled(AutoColumn)<{ disabled?: boolean }>`\n padding: 1rem;\n z-index: 1;\n opacity: ${({ disabled }) => disabled && '0.4'};\n`\n\nexport const Break = styled.div`\n width: 100%;\n background-color: rgba(255, 255, 255, 0.2);\n height: 1px;\n`\n","// @ts-nocheck\nimport { SupportedChainId } from 'constants/chains'\nimport { useContext } from 'react'\nimport { AlertCircle } from 'react-feather'\nimport styled, { ThemeContext } from 'styled-components/macro'\n\nimport { ThemedText } from '../../theme'\nimport { AutoColumn } from '../Column'\nimport { AutoRow } from '../Row'\n\nconst RowNoFlex = styled(AutoRow)`\n flex-wrap: nowrap;\n background: #16161F;\n`\n\nexport default function FailedNetworkSwitchPopup({ chainId }: { chainId: SupportedChainId }) {\n const theme = useContext(ThemeContext)\n\n return (\n \n
\n \n
\n \n \n Failed to switch network\n \n \n
\n )\n}\n","import useActiveWeb3React from 'hooks/useActiveWeb3React'\nimport { useContext } from 'react'\nimport { AlertCircle, CheckCircle } from 'react-feather'\nimport styled, { ThemeContext } from 'styled-components/macro'\n\nimport { useTransaction } from '../../state/transactions/hooks'\nimport { ThemedText } from '../../theme'\nimport { ExternalLink } from '../../theme'\nimport { ExplorerDataType, getExplorerLink } from '../../utils/getExplorerLink'\nimport { TransactionSummary } from '../AccountDetails/TransactionSummary'\nimport { AutoColumn } from '../Column'\nimport { AutoRow } from '../Row'\n\nconst RowNoFlex = styled(AutoRow)`\n flex-wrap: nowrap;\n`\n\nconst DoubleText = styled.div`\n background: linear-gradient(73.6deg,#85FFC4 2.11%,#5CC6FF 42.39%,#BC85FF 85.72%);\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n`\n\nexport default function TransactionPopup({ hash }: { hash: string }) {\n const { chainId } = useActiveWeb3React()\n\n const tx = useTransaction(hash)\n // @ts-ignore\n const theme = useContext(ThemeContext)\n\n if (!tx) return null\n const success = Boolean(tx.receipt && tx.receipt.status === 1)\n\n return (\n \n
\n {success ? : }\n
\n \n \n \n \n {chainId && (\n \n \n View on Explorer\n \n \n )}\n \n
\n )\n}\n","import { useContext } from 'react'\nimport { AlertCircle } from 'react-feather'\nimport styled, { ThemeContext } from 'styled-components/macro'\n\nimport { ThemedText } from '../../theme'\nimport { AutoColumn } from '../Column'\nimport { AutoRow } from '../Row'\n\nconst RowNoFlex = styled(AutoRow)`\n flex-wrap: nowrap;\n`\n\nexport default function ReasonPopup({ reason }: { reason: string }) {\n // @ts-ignore\n const theme = useContext(ThemeContext)\n\n return (\n \n
\n \n
\n \n \n <>{reason}\n \n \n
\n )\n}\n","// @ts-nocheck\nimport { useCallback, useContext, useEffect } from 'react'\nimport { X } from 'react-feather'\nimport { animated } from 'react-spring'\nimport { useSpring } from 'react-spring/web'\nimport styled, { ThemeContext } from 'styled-components/macro'\n\nimport { useRemovePopup } from '../../state/application/hooks'\nimport { PopupContent } from '../../state/application/reducer'\nimport FailedNetworkSwitchPopup from './FailedNetworkSwitchPopup'\nimport TransactionPopup from './TransactionPopup'\nimport ReasonPopup from './ReasonPopup'\n\nconst StyledClose = styled(X)`\n position: absolute;\n right: 10px;\n top: 10px;\n\n :hover {\n cursor: pointer;\n }\n`\nconst Popup = styled.div`\n display: inline-block;\n width: 100%;\n padding: 1em;\n background-color: #191B1F;\n position: relative;\n border-radius: 10px;\n padding: 20px;\n padding-right: 35px;\n overflow: hidden;\n\n ${({ theme }) => theme.mediaWidth.upToSmall`\n min-width: 290px;\n &:not(:last-of-type) {\n margin-right: 20px;\n }\n `}\n`\nconst Fader = styled.div`\n position: absolute;\n bottom: 0px;\n left: 0px;\n width: 100%;\n height: 2px;\n background: linear-gradient(73.6deg, #85FFC4 2.11%, #5CC6FF 42.39%, #BC85FF 85.72%);\n`\n\nconst AnimatedFader = animated(Fader)\n\nexport default function PopupItem({\n removeAfterMs,\n content,\n popKey,\n}: {\n removeAfterMs: number | null\n content: PopupContent\n popKey: string\n}) {\n const removePopup = useRemovePopup()\n const removeThisPopup = useCallback(() => removePopup(popKey), [popKey, removePopup])\n useEffect(() => {\n if (removeAfterMs === null) return undefined\n\n const timeout = setTimeout(() => {\n removeThisPopup()\n }, removeAfterMs)\n\n return () => {\n clearTimeout(timeout)\n }\n }, [removeAfterMs, removeThisPopup])\n // @ts-ignore\n const theme = useContext(ThemeContext)\n\n let popupContent\n if ('txn' in content) {\n const {\n txn: { hash },\n } = content\n popupContent = \n } else if ('failedSwitchNetwork' in content) {\n popupContent = \n } else if ('reason' in content) {\n const { reason } = content\n popupContent = \n }\n\n const faderStyle = useSpring({\n from: { width: '100%' },\n to: { width: '0%' },\n config: { duration: removeAfterMs ?? undefined },\n })\n\n return (\n \n \n {popupContent}\n {removeAfterMs !== null ? : null}\n \n )\n}\n","import { SupportedChainId } from 'constants/chains'\nimport useActiveWeb3React from 'hooks/useActiveWeb3React'\nimport styled from 'styled-components/macro'\nimport { MEDIA_WIDTHS } from 'theme'\n\nimport { useActivePopups } from '../../state/application/hooks'\nimport { useURLWarningVisible } from '../../state/user/hooks'\nimport { AutoColumn } from '../Column'\nimport ClaimPopup from './ClaimPopup'\nimport PopupItem from './PopupItem'\n\nconst MobilePopupWrapper = styled.div<{ height: string | number }>`\n position: relative;\n max-width: 100%;\n height: ${({ height }) => height};\n margin: ${({ height }) => (height ? '0 auto;' : 0)};\n margin-bottom: ${({ height }) => (height ? '20px' : 0)};\n\n display: none;\n ${({ theme }) => theme.mediaWidth.upToSmall`\n display: block;\n padding-top: 20px;\n `};\n`\n\nconst MobilePopupInner = styled.div`\n height: 99%;\n overflow-x: auto;\n overflow-y: hidden;\n display: flex;\n flex-direction: row;\n -webkit-overflow-scrolling: touch;\n ::-webkit-scrollbar {\n display: none;\n }\n`\n\nconst StopOverflowQuery = `@media screen and (min-width: ${MEDIA_WIDTHS.upToMedium + 1}px) and (max-width: ${\n MEDIA_WIDTHS.upToMedium + 500\n}px)`\n\nconst FixedPopupColumn = styled(AutoColumn)<{ extraPadding: boolean; xlPadding: boolean }>`\n position: fixed;\n top: ${({ extraPadding }) => (extraPadding ? '80px' : '56px')};\n right: 1rem;\n max-width: 355px !important;\n width: 100%;\n z-index: 3;\n\n ${({ theme }) => theme.mediaWidth.upToSmall`\n display: none;\n `};\n\n ${StopOverflowQuery} {\n top: ${({ extraPadding, xlPadding }) => (xlPadding ? '80px' : extraPadding ? '80px' : '56px')};\n }\n`\n\nexport default function Popups() {\n // get all popups\n const activePopups = useActivePopups()\n\n const urlWarningActive = useURLWarningVisible()\n\n // need extra padding if network is not L1 Ethereum\n const { chainId } = useActiveWeb3React()\n const isNotOnMainnet = Boolean(chainId && chainId !== SupportedChainId.MAINNET)\n\n return (\n <>\n \n \n {activePopups.map((item) => (\n \n ))}\n \n 0 ? 'fit-content' : 0}>\n \n {activePopups // reverse so new items up front\n .slice(0)\n .reverse()\n .map((item) => (\n \n ))}\n \n \n \n )\n}\n","import { useEffect } from 'react'\nimport styled from 'styled-components/macro'\nimport { useWeb3React } from 'packages/core'\n\nimport { network } from '../../connectors'\nimport { NetworkContextName } from '../../constants/misc'\nimport { useEagerConnect, useInactiveListener } from '../../hooks/web3'\n\nconst MessageWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n height: 20rem;\n`\n\nconst Message = styled.h2`\n color: ${({ theme }) => theme.secondary1};\n`\n\nexport default function Web3ReactManager({ children }: { children: JSX.Element }) {\n const { active } = useWeb3React()\n const { active: networkActive, error: networkError, activate: activateNetwork } = useWeb3React(NetworkContextName)\n\n // try to eagerly connect to an injected provider, if it exists and has granted access already\n const triedEager = useEagerConnect()\n\n // after eagerly trying injected, if the network connect ever isn't active or in an error state, activate itd\n useEffect(() => {\n if (triedEager && !networkActive && !networkError && !active) {\n activateNetwork(network)\n }\n }, [triedEager, networkActive, networkError, activateNetwork, active])\n\n // when there's no account connected, react to logins (broadly speaking) on the injected provider, if it exists\n useInactiveListener(!triedEager)\n\n // if the account context isn't active, and there's an error on the network context, it's an irrecoverable error\n if (triedEager && !active && networkError) {\n return (\n \n \n \n Oops! An unknown error occurred. Please refresh the page, or visit from another browser or device.\n \n \n \n )\n }\n\n return children\n}\n","// @ts-nocheck\nimport type { EthereumProvider } from 'lib/ethereum'\nimport { useEffect, useState } from 'react'\nimport { useWeb3React } from 'packages/core'\n\nimport { injected } from '../connectors'\nimport { isMobile } from '../utils/userAgent'\n// import { IS_IN_IFRAME } from 'constants/misc'\n\nexport function useEagerConnect() {\n const { activate, active } = useWeb3React()\n const [tried, setTried] = useState(false)\n\n // then, if that fails, try connecting to an injected connector\n useEffect(() => {\n if (!active) {\n injected.isAuthorized().then((isAuthorized) => {\n if (isAuthorized) {\n activate(injected, undefined, true).catch(() => {\n setTried(true)\n })\n } else {\n if (isMobile && window.ethereum) {\n activate(injected, undefined, true).catch(() => {\n setTried(true)\n })\n } else {\n setTried(true)\n }\n }\n })\n }\n }, [activate, active])\n\n // wait until we get confirmation of a connection to flip the flag\n useEffect(() => {\n if (active) {\n setTried(true)\n }\n }, [active])\n\n return tried\n}\n\n/**\n * Use for network and injected - logs user in\n * and out after checking what network theyre on\n */\nexport function useInactiveListener(suppress = false) {\n const { active, error, activate } = useWeb3React()\n\n useEffect(() => {\n const ethereum = window.ethereum as EthereumProvider | undefined\n\n if (ethereum && ethereum.on && !active && !error && !suppress) {\n const handleChainChanged = () => {\n // eat errors\n activate(injected, undefined, true).catch((error) => {\n console.error('Failed to activate after chain changed', error)\n })\n }\n\n const handleAccountsChanged = (accounts: string[]) => {\n if (accounts.length > 0) {\n // eat errors\n activate(injected, undefined, true).catch((error) => {\n console.error('Failed to activate after accounts changed', error)\n })\n }\n }\n\n ethereum.on('chainChanged', handleChainChanged)\n ethereum.on('accountsChanged', handleAccountsChanged)\n\n return () => {\n if (ethereum.removeListener) {\n ethereum.removeListener('chainChanged', handleChainChanged)\n ethereum.removeListener('accountsChanged', handleAccountsChanged)\n }\n }\n }\n return undefined\n }, [active, error, suppress, activate])\n}\n","import { parse } from 'qs'\nimport { useEffect } from 'react'\nimport { RouteComponentProps } from 'react-router-dom'\nimport { useAppDispatch } from 'state/hooks'\n\nimport { updateUserDarkMode } from '../state/user/actions'\n\nexport default function DarkModeQueryParamReader({ location: { search } }: RouteComponentProps): null {\n const dispatch = useAppDispatch()\n\n useEffect(() => {\n if (!search) return\n if (search.length < 2) return\n\n const parsed = parse(search, {\n parseArrays: false,\n ignoreQueryPrefix: true,\n })\n\n const theme = parsed.theme\n\n if (typeof theme !== 'string') return\n\n if (theme.toLowerCase() === 'light') {\n dispatch(updateUserDarkMode({ userDarkMode: false }))\n } else if (theme.toLowerCase() === 'dark') {\n dispatch(updateUserDarkMode({ userDarkMode: true }))\n }\n }, [dispatch, search])\n\n return null\n}\n","import contenthashToUri from 'lib/utils/contenthashToUri'\nimport parseENSAddress from 'lib/utils/parseENSAddress'\nimport uriToHttp from 'lib/utils/uriToHttp'\nimport { useMemo } from 'react'\n\nimport useENSContentHash from './useENSContentHash'\n\nexport default function useHttpLocations(uri: string | undefined): string[] {\n const ens = useMemo(() => (uri ? parseENSAddress(uri) : undefined), [uri])\n const resolvedContentHash = useENSContentHash(ens?.ensName)\n return useMemo(() => {\n if (ens) {\n return resolvedContentHash.contenthash ? uriToHttp(contenthashToUri(resolvedContentHash.contenthash)) : []\n } else {\n return uri ? uriToHttp(uri) : []\n }\n }, [ens, resolvedContentHash.contenthash, uri])\n}\n","import { useSingleCallResult } from 'lib/hooks/multicall'\nimport { useMemo } from 'react'\nimport { safeNamehash } from 'utils/safeNamehash'\n\nimport isZero from '../utils/isZero'\nimport { useENSRegistrarContract, useENSResolverContract } from './useContract'\n\n/**\n * Does a lookup for an ENS name to find its contenthash.\n */\nexport default function useENSContentHash(ensName?: string | null): { loading: boolean; contenthash: string | null } {\n const ensNodeArgument = useMemo(() => [ensName === null ? undefined : safeNamehash(ensName)], [ensName])\n const registrarContract = useENSRegistrarContract(false)\n const resolverAddressResult = useSingleCallResult(registrarContract, 'resolver', ensNodeArgument)\n const resolverAddress = resolverAddressResult.result?.[0]\n const resolverContract = useENSResolverContract(\n resolverAddress && isZero(resolverAddress) ? undefined : resolverAddress,\n false\n )\n const contenthash = useSingleCallResult(resolverContract, 'contenthash', ensNodeArgument)\n\n return useMemo(\n () => ({\n contenthash: contenthash.result?.[0] ?? null,\n loading: resolverAddressResult.loading || contenthash.loading,\n }),\n [contenthash.loading, contenthash.result, resolverAddressResult.loading]\n )\n}\n","export default __webpack_public_path__ + \"static/media/matic-token-icon.da7b877d.svg\";","// @ts-nocheck\nimport { Currency } from '@uniswap/sdk-core'\nimport { SupportedChainId } from 'constants/chains'\nimport useHttpLocations from 'hooks/useHttpLocations'\nimport { useMemo } from 'react'\nimport EthereumLogo from '../../assets/images/ethereum-logo.png'\nimport MaticLogo from '../../assets/svg/matic-token-icon.svg'\nimport SUPPORTED_TOKEN_LIST from '../../constants/tokenLists/supported.tokenlist.json'\n\ntype Network = 'ethereum' | 'arbitrum' | 'optimism'\n\nfunction chainIdToNetworkName(networkId: SupportedChainId): Network {\n switch (networkId) {\n case SupportedChainId.MAINNET:\n return 'ethereum'\n case SupportedChainId.ARBITRUM_ONE:\n return 'arbitrum'\n case SupportedChainId.OPTIMISM:\n return 'optimism'\n default:\n return 'ethereum'\n }\n}\n\nfunction getNativeLogoURI(chainId: SupportedChainId = SupportedChainId.MAINNET): string {\n switch (chainId) {\n case SupportedChainId.POLYGON_MUMBAI:\n case SupportedChainId.POLYGON:\n return MaticLogo\n default:\n return EthereumLogo\n }\n}\n\nfunction getTokenLogoURI(address: string, chainId: SupportedChainId = SupportedChainId.MAINNET): string | void {\n const networkName = chainIdToNetworkName(chainId)\n const networksWithUrls = [SupportedChainId.ARBITRUM_ONE, SupportedChainId.MAINNET, SupportedChainId.OPTIMISM]\n if (networksWithUrls.includes(chainId)) {\n return `https://raw.githubusercontent.com/Uniswap/assets/master/blockchains/${networkName}/assets/${address}/logo.png`\n } else {\n const filteredTokenList = SUPPORTED_TOKEN_LIST.tokens.filter((item) => item.address === address && item.chainId === chainId)\n if (filteredTokenList.length > 0) {\n return filteredTokenList[0].logoURI\n }\n }\n}\n\nexport default function useCurrencyLogoURIs(currency?: Currency | null): string[] {\n const locations = useHttpLocations(currency && currency.logoURI ? currency.logoURI : undefined)\n return useMemo(() => {\n const logoURIs = [...locations]\n if (currency) {\n if (currency.isNative) {\n logoURIs.push(getNativeLogoURI(currency.chainId))\n } else if (currency.isToken) {\n const logoURI = getTokenLogoURI(currency.address, currency.chainId)\n if (logoURI) {\n logoURIs.push(logoURI)\n }\n }\n }\n return logoURIs\n }, [currency, locations])\n}\n","import { useState } from 'react'\nimport { Slash } from 'react-feather'\nimport { ImageProps } from 'rebass'\n\nimport useTheme from '../../hooks/useTheme'\n\nconst BAD_SRCS: { [tokenAddress: string]: true } = {}\n\ninterface LogoProps extends Pick {\n srcs: string[]\n}\n\n/**\n * Renders an image by sequentially trying a list of URIs, and then eventually a fallback triangle alert\n */\nexport default function Logo({ srcs, alt, style, ...rest }: LogoProps) {\n const [, refresh] = useState(0)\n\n const theme = useTheme()\n\n const src: string | undefined = srcs.find((src) => !BAD_SRCS[src])\n\n if (src) {\n return (\n {\n if (src) BAD_SRCS[src] = true\n refresh((i) => i + 1)\n }}\n />\n )\n }\n\n return \n}\n","// @ts-nocheck\nimport { Currency } from '@uniswap/sdk-core'\nimport { ButtonEmpty } from 'components/Button'\nimport Card, { OutlineCard } from 'components/Card'\nimport { AutoColumn } from 'components/Column'\nimport CurrencyLogo from 'components/CurrencyLogo'\nimport Modal from 'components/Modal'\nimport { AutoRow, RowBetween } from 'components/Row'\nimport useActiveWeb3React from 'hooks/useActiveWeb3React'\nimport { useState } from 'react'\nimport styled from 'styled-components/macro'\nimport { CloseIcon, ExternalLink, ThemedText, Z_INDEX } from 'theme'\n\nimport { useUnsupportedTokens } from '../../hooks/Tokens'\nimport { ExplorerDataType, getExplorerLink } from '../../utils/getExplorerLink'\n\nconst DetailsFooter = styled.div<{ show: boolean }>`\n padding-top: calc(16px + 2rem);\n padding-bottom: 20px;\n margin-left: auto;\n margin-right: auto;\n margin-top: -2rem;\n width: 100%;\n max-width: 400px;\n border-bottom-left-radius: 20px;\n border-bottom-right-radius: 20px;\n color: ${({ theme }) => theme.text2};\n background-color: ${({ theme }) => theme.advancedBG};\n z-index: ${Z_INDEX.deprecated_zero};\n\n transform: ${({ show }) => (show ? 'translateY(0%)' : 'translateY(-100%)')};\n transition: transform 300ms ease-in-out;\n text-align: center;\n`\n\nconst StyledButtonEmpty = styled(ButtonEmpty)`\n text-decoration: none;\n`\n\nconst AddressText = styled(ThemedText.Blue)`\n font-size: 12px;\n\n ${({ theme }) => theme.mediaWidth.upToSmall`\n font-size: 10px;\n`}\n`\n\nexport default function UnsupportedCurrencyFooter({\n show,\n currencies,\n}: {\n show: boolean\n currencies: (Currency | undefined | null)[]\n}) {\n const { chainId } = useActiveWeb3React()\n const [showDetails, setShowDetails] = useState(false)\n\n const tokens =\n chainId && currencies\n ? currencies.map((currency) => {\n return currency?.wrapped\n })\n : []\n\n const unsupportedTokens = useUnsupportedTokens()\n\n return (\n \n setShowDetails(false)}>\n \n \n \n \n Unsupported Assets\n \n setShowDetails(false)} />\n \n {tokens.map((token) => {\n return (\n token &&\n unsupportedTokens &&\n Object.keys(unsupportedTokens).includes(token.address) && (\n \n \n \n \n {token.symbol}\n \n {chainId && (\n \n {token.address}\n \n )}\n \n \n )\n )\n })}\n \n \n \n Some assets are not available through this interface because they may not work well with the smart\n contracts or we are unable to allow trading for legal reasons.\n \n \n \n \n \n \n setShowDetails(true)}>\n \n Read more about unsupported assets\n \n \n \n )\n}\n","import { Currency } from '@uniswap/sdk-core'\nimport useCurrencyLogoURIs from 'lib/hooks/useCurrencyLogoURIs'\nimport React from 'react'\nimport styled from 'styled-components/macro'\n\nimport Logo from '../Logo'\n\nconst StyledLogo = styled(Logo)<{ size: string; native: boolean }>`\n width: ${({ size }) => size};\n height: ${({ size }) => size};\n background: radial-gradient(white 50%, #ffffff00 calc(75% + 1px), #ffffff00 100%);\n border-radius: 50%;\n -mox-box-shadow: 0 0 1px ${({ native }) => (native ? 'white' : 'black')};\n -webkit-box-shadow: 0 0 1px ${({ native }) => (native ? 'white' : 'b lack')};\n box-shadow: 0 0 1px ${({ native }) => (native ? 'white' : 'black')};\n border: 0px solid rgba(255, 255, 255, 0);\n`\n\nexport default function CurrencyLogo({\n currency,\n size = '24px',\n style,\n ...rest\n}: {\n currency?: Currency | null\n size?: string\n style?: React.CSSProperties\n}) {\n const logoURIs = useCurrencyLogoURIs(currency)\n\n return (\n \n )\n}\n","import { Currency, CurrencyAmount, Token } from '@uniswap/sdk-core'\nimport { useSingleCallResult } from 'lib/hooks/multicall'\nimport { useMemo } from 'react'\n\nimport { useTokenContract } from './useContract'\n\n// returns undefined if input token is undefined, or fails to get token contract,\n// or contract total supply cannot be fetched\nexport function useTotalSupply(token?: Currency): CurrencyAmount | undefined {\n const contract = useTokenContract(token?.isToken ? token.address : undefined, false)\n\n const totalSupplyStr: string | undefined = useSingleCallResult(contract, 'totalSupply')?.result?.[0]?.toString()\n\n return useMemo(\n () => (token?.isToken && totalSupplyStr ? CurrencyAmount.fromRawAmount(token, totalSupplyStr) : undefined),\n [token, totalSupplyStr]\n )\n}\n","// @ts-nocheck\nimport useActiveWeb3React from \"hooks/useActiveWeb3React\";\nimport JSBI from \"jsbi\";\nimport tryParseCurrencyAmount from \"lib/utils/tryParseCurrencyAmount\";\nimport { ReactNode, useCallback, useMemo } from \"react\";\nimport { useAppDispatch, useAppSelector } from \"state/hooks\";\n\nimport {\n Currency,\n CurrencyAmount,\n Percent,\n Price,\n Token\n} from \"@uniswap/sdk-core\";\nimport { Pair } from \"@uniswap/v2-sdk\";\n\nimport { ASSET_VAULT_ADDRESSES } from \"../../constants/addresses\";\nimport { useTotalSupply } from \"../../hooks/useTotalSupply\";\nimport { PairState, useV2Pair } from \"../../hooks/useV2Pairs\";\nimport { AppState } from \"../index\";\nimport { useCurrencyBalance, useCurrencyBalances } from \"../wallet/hooks\";\nimport { Field, typeInput } from \"./actions\";\n\nconst ZERO = JSBI.BigInt(0)\n\nexport function useMintState(): AppState['mint'] {\n return useAppSelector((state) => state.mint)\n}\n\nexport function useMintActionHandlers(noLiquidity: boolean | undefined): {\n onFieldAInput: (typedValue: string) => void\n onFieldBInput: (typedValue: string) => void\n} {\n const dispatch = useAppDispatch()\n const onFieldAInput = useCallback(\n (typedValue: string) => {\n dispatch(typeInput({ field: Field.CURRENCY_A, typedValue: typedValue.replaceAll(\",\", \"\"), noLiquidity: noLiquidity === true }))\n },\n [dispatch, noLiquidity]\n )\n\n const onFieldBInput = useCallback(\n (typedValue: string) => {\n dispatch(typeInput({ field: Field.CURRENCY_B, typedValue: typedValue.replaceAll(\",\", \"\"), noLiquidity: noLiquidity === true }))\n },\n [dispatch, noLiquidity]\n )\n\n return {\n onFieldAInput,\n onFieldBInput,\n }\n}\n\nexport function useDerivedMintInfo(\n currencyA: Currency | undefined,\n currencyB: Currency | undefined,\n type: string\n): {\n dependentField: Field\n currencies: { [field in Field]?: Currency }\n pair?: Pair | null\n pairState: PairState\n currencyBalances: { [field in Field]?: CurrencyAmount }\n parsedAmounts: { [field in Field]?: CurrencyAmount }\n price?: Price\n noLiquidity?: boolean\n liquidityMinted?: CurrencyAmount\n poolTokenPercentage?: Percent\n error?: ReactNode\n} {\n const { account, chainId } = useActiveWeb3React()\n\n const { independentField, typedValue, otherTypedValue } = useMintState()\n\n const dependentField = independentField === Field.CURRENCY_A ? Field.CURRENCY_B : Field.CURRENCY_A\n\n // tokens\n const currencies: { [field in Field]?: Currency } = useMemo(\n () => ({\n [Field.CURRENCY_A]: currencyA ?? undefined,\n [Field.CURRENCY_B]: currencyB ?? undefined,\n }),\n [currencyA, currencyB]\n )\n\n // pair\n const [pairState, pair] = useV2Pair(currencies[Field.CURRENCY_A], currencies[Field.CURRENCY_B], type)\n const totalSupply = useTotalSupply(pair?.liquidityToken)\n const noLiquidity: boolean =\n pairState === PairState.NOT_EXISTS ||\n Boolean(totalSupply && JSBI.equal(totalSupply.quotient, ZERO)) ||\n Boolean(\n pairState === PairState.EXISTS &&\n pair &&\n JSBI.equal(pair.reserve0.quotient, ZERO) &&\n JSBI.equal(pair.reserve1.quotient, ZERO)\n )\n\n // balances\n const balances = useCurrencyBalances(\n account ?? undefined,\n useMemo(() => [currencies[Field.CURRENCY_A], currencies[Field.CURRENCY_B]], [currencies])\n )\n const currencyBalances: { [field in Field]?: CurrencyAmount } = {\n [Field.CURRENCY_A]: balances[0],\n [Field.CURRENCY_B]: balances[1],\n }\n\n const assetMax = useCurrencyBalance(ASSET_VAULT_ADDRESSES[chainId!], currencies[Field.CURRENCY_B] ?? undefined);\n // amounts\n const independentAmount: CurrencyAmount | undefined = tryParseCurrencyAmount(\n typedValue,\n currencies[independentField]\n )\n // console.log(typedValue)\n const dependentAmount: CurrencyAmount | undefined = useMemo(() => {\n if (noLiquidity) {\n if (otherTypedValue && currencies[dependentField]) {\n return tryParseCurrencyAmount(otherTypedValue, currencies[dependentField])\n }\n return undefined\n } else if (independentAmount) {\n // we wrap the currencies just to get the price in terms of the other token\n const wrappedIndependentAmount = independentAmount?.wrapped\n const [tokenA, tokenB] = [currencyA?.wrapped, currencyB?.wrapped]\n if (tokenA && tokenB && wrappedIndependentAmount && pair) {\n const dependentCurrency = dependentField === Field.CURRENCY_B ? currencyB : currencyA\n const dependentTokenAmount =\n dependentField === Field.CURRENCY_B\n ? pair.priceOf(tokenA).quote(wrappedIndependentAmount)\n : pair.priceOf(tokenB).quote(wrappedIndependentAmount)\n return dependentCurrency?.isNative\n ? CurrencyAmount.fromRawAmount(dependentCurrency, dependentTokenAmount.quotient)\n : dependentTokenAmount\n }\n return undefined\n } else {\n return undefined\n }\n }, [noLiquidity, otherTypedValue, currencies, dependentField, independentAmount, currencyA, currencyB, pair])\n\n const parsedAmounts: { [field in Field]: CurrencyAmount | undefined } = useMemo(() => {\n return {\n [Field.CURRENCY_A]: independentField === Field.CURRENCY_A ? independentAmount : dependentAmount,\n [Field.CURRENCY_B]: independentField === Field.CURRENCY_A ? dependentAmount : independentAmount,\n }\n }, [dependentAmount, independentAmount, independentField])\n // console.log(dependentAmount?.toExact())\n // console.log(independentAmount?.toExact())\n // console.log(parsedAmounts)\n\n const price = useMemo(() => {\n if (noLiquidity) {\n const { [Field.CURRENCY_A]: currencyAAmount, [Field.CURRENCY_B]: currencyBAmount } = parsedAmounts\n if (currencyAAmount?.greaterThan(0) && currencyBAmount?.greaterThan(0)) {\n const value = currencyBAmount.divide(currencyAAmount)\n return new Price(currencyAAmount.currency, currencyBAmount.currency, value.denominator, value.numerator)\n }\n return undefined\n } else {\n const wrappedCurrencyA = currencyA?.wrapped\n return pair && wrappedCurrencyA ? pair.priceOf(wrappedCurrencyA) : undefined\n }\n }, [currencyA, noLiquidity, pair, parsedAmounts])\n // liquidity minted\n const liquidityMinted = useMemo(() => {\n const { [Field.CURRENCY_A]: currencyAAmount, [Field.CURRENCY_B]: currencyBAmount } = parsedAmounts\n const [tokenAmountA, tokenAmountB] = [currencyAAmount?.wrapped, currencyBAmount?.wrapped]\n if (pair && totalSupply && tokenAmountA && tokenAmountB) {\n try {\n return pair.getLiquidityMinted(totalSupply, tokenAmountA, tokenAmountB)\n } catch (error) {\n console.error(error)\n return undefined\n }\n } else {\n return undefined\n }\n }, [parsedAmounts, pair, totalSupply])\n\n const poolTokenPercentage = useMemo(() => {\n if (liquidityMinted && totalSupply) {\n return new Percent(liquidityMinted.quotient, totalSupply.add(liquidityMinted).quotient)\n } else {\n return undefined\n }\n }, [liquidityMinted, totalSupply])\n\n let error: ReactNode | undefined\n if (!account) {\n error = \"Connect Wallet\"\n }\n if (pairState === PairState.LOADING) {\n error = error ?? \"Loading pair\"\n }\n\n if (pairState === PairState.NOT_EXISTS) {\n error = error ?? \"Invalid pair\"\n }\n \n else if (!parsedAmounts[Field.CURRENCY_A] || !parsedAmounts[Field.CURRENCY_B]) {\n error = error ?? \"Enter Capital Amount...\"\n }\n\n const { [Field.CURRENCY_A]: currencyAAmount, [Field.CURRENCY_B]: currencyBAmount } = parsedAmounts\n\n if (currencyAAmount && currencyBalances?.[Field.CURRENCY_A]?.lessThan(currencyAAmount)) {\n error = <>Insufficient {currencies[Field.CURRENCY_A]?.symbol} balance\n }\n\n if (currencyBAmount && assetMax?.lessThan(currencyBAmount)) {\n error = <>Insufficient {currencies[Field.CURRENCY_B]?.symbol} balance\n }\n\n return {\n dependentField,\n currencies,\n pair,\n pairState,\n currencyBalances,\n parsedAmounts,\n totalSupply,\n price,\n noLiquidity,\n liquidityMinted,\n poolTokenPercentage,\n error,\n }\n}\n","// @ts-nocheck\nimport { BigNumber } from \"ethers\";\nimport { useSingleCallResult } from \"lib/hooks/multicall\";\nimport { useMemo } from \"react\";\n\nimport useActiveWeb3React from \"./useActiveWeb3React\";\nimport { useClubManagerContract } from \"./useContract\";\n\n/**\n * Getting the current DoubleDownClub contract\n */\nexport default function useClubManager(): { loading: boolean; supplyAllowance: BigNumber; capPerDDC: BigNumber} {\n const { account } = useActiveWeb3React()\n const inputs = useMemo(() => [account ?? undefined], [account])\n const clubManagerContract = useClubManagerContract(false)\n const supplyAllowance = useSingleCallResult(clubManagerContract, 'getSupplyAllowance', inputs)\n const capitalSupplyCapPerDdc = useSingleCallResult(clubManagerContract, 'capitalSupplyCapPerDdc', [])\n return useMemo(\n () => ({\n supplyAllowance: supplyAllowance.result?.[0] ?? BigNumber.from('0'),\n capPerDDC: capitalSupplyCapPerDdc.result?.[0] ?? BigNumber.from('0'),\n loading: false,\n }),\n [supplyAllowance.result, capitalSupplyCapPerDdc.result]\n )\n}\n","import styled, { css, keyframes } from 'styled-components/macro'\n\nexport const loadingAnimation = keyframes`\n 0% {\n background-position: 100% 50%;\n }\n 100% {\n background-position: 0% 50%;\n }\n`\n\nexport const LoadingRows = styled.div`\n display: grid;\n\n & > div {\n animation: ${loadingAnimation} 1.5s infinite;\n animation-fill-mode: both;\n background: linear-gradient(\n to left,\n ${({ theme }) => theme.bg1} 25%,\n ${({ theme }) => theme.bg2} 50%,\n ${({ theme }) => theme.bg1} 75%\n );\n background-size: 400%;\n border-radius: 12px;\n height: 2.4em;\n will-change: background-position;\n }\n`\n\nexport const loadingOpacityMixin = css<{ $loading: boolean }>`\n filter: ${({ $loading }) => ($loading ? 'grayscale(1)' : 'none')};\n opacity: ${({ $loading }) => ($loading ? '0.4' : '1')};\n transition: opacity 0.2s ease-in-out;\n`\n\nexport const LoadingOpacityContainer = styled.div<{ $loading: boolean }>`\n ${loadingOpacityMixin}\n`\n","var _path;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\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; }\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; }\nimport * as React from \"react\";\nfunction SvgDropdown(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 12,\n height: 7,\n viewBox: \"0 0 12 7\",\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.97168 1L6.20532 6L11.439 1\",\n stroke: \"#AEAEAE\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDropdown);\nexport default __webpack_public_path__ + \"static/media/dropdown.fef18eeb.svg\";\nexport { ForwardRef as ReactComponent };","export const SUPPORTED_LOCALES = [\n // order as they appear in the language dropdown\n 'en-US',\n]\nexport type SupportedLocale = typeof SUPPORTED_LOCALES[number] | 'pseudo'\n\nexport const DEFAULT_LOCALE: SupportedLocale = 'en-US'\n\nexport const LOCALE_LABEL: { [locale in SupportedLocale]: string } = {\n 'en-US': 'English',\n pseudo: 'ƥƨèúδô',\n}\n","import { Currency, CurrencyAmount, Price } from '@uniswap/sdk-core'\nimport { DEFAULT_LOCALE, SUPPORTED_LOCALES } from 'constants/locales'\n\ninterface FormatLocaleNumberArgs {\n number: CurrencyAmount | Price | number\n locale: string | null | undefined\n options?: Intl.NumberFormatOptions\n sigFigs?: number\n fixedDecimals?: number\n}\n\nexport default function formatLocaleNumber({\n number,\n locale,\n sigFigs,\n fixedDecimals,\n options = {},\n}: FormatLocaleNumberArgs): string {\n let localeArg: string | string[]\n if (!locale || (locale && !SUPPORTED_LOCALES.includes(locale))) {\n localeArg = DEFAULT_LOCALE\n } else {\n localeArg = [locale, DEFAULT_LOCALE]\n }\n options.minimumFractionDigits = options.minimumFractionDigits || fixedDecimals\n options.maximumFractionDigits = options.maximumFractionDigits || fixedDecimals\n\n // Fixed decimals should override significant figures.\n options.maximumSignificantDigits = options.maximumSignificantDigits || fixedDecimals ? undefined : sigFigs\n\n let numberString: number\n if (typeof number === 'number') {\n numberString = fixedDecimals ? parseFloat(number.toFixed(fixedDecimals)) : number\n } else {\n const baseString = parseFloat(number.toSignificant(sigFigs))\n numberString = fixedDecimals ? parseFloat(baseString.toFixed(fixedDecimals)) : baseString\n }\n\n return numberString.toLocaleString(localeArg, options)\n}\n","import { Currency, CurrencyAmount, Fraction, Price } from '@uniswap/sdk-core'\nimport { DEFAULT_LOCALE, SupportedLocale } from 'constants/locales'\nimport JSBI from 'jsbi'\nimport formatLocaleNumber from 'lib/utils/formatLocaleNumber'\n\nexport function formatCurrencyAmount(\n amount: CurrencyAmount | undefined,\n sigFigs: number,\n locale: SupportedLocale = DEFAULT_LOCALE,\n fixedDecimals?: number\n): string {\n if (!amount) {\n return '-'\n }\n\n if (JSBI.equal(amount.quotient, JSBI.BigInt(0))) {\n return '0'\n }\n\n if (amount.divide(amount.decimalScale).lessThan(new Fraction(1, 100000))) {\n return `<${formatLocaleNumber({ number: 0.00001, locale })}`\n }\n\n return formatLocaleNumber({ number: amount, locale, sigFigs, fixedDecimals })\n}\n\nexport function formatPrice(\n price: Price | undefined,\n sigFigs: number,\n locale: SupportedLocale = DEFAULT_LOCALE\n): string {\n if (!price) {\n return '-'\n }\n\n if (parseFloat(price.toFixed(sigFigs)) < 0.0001) {\n return `<${formatLocaleNumber({ number: 0.00001, locale })}`\n }\n\n return formatLocaleNumber({ number: price, locale, sigFigs })\n}\n","import { Currency } from '@uniswap/sdk-core'\nimport styled from 'styled-components/macro'\n\nimport CurrencyLogo from '../CurrencyLogo'\n// import { useLocation } from 'react-router-dom'\n\nconst Wrapper = styled.div<{ margin: boolean; sizeraw: number; isImport: boolean; }>`\n position: relative;\n display: flex;\n flex-direction: row;\n z-index: ${({ isImport }) => (isImport ? '-1' : '0')};\n margin-left: ${({ sizeraw }) => (sizeraw * 0.5).toString() + 'px'};\n`\n\ninterface DoubleCurrencyLogoProps {\n margin?: boolean\n size?: number\n currency0?: Currency\n currency1?: Currency\n}\n\nconst HigherLogo = styled(CurrencyLogo)`\n z-index: 0;\n`\nconst CoveredLogo = styled(CurrencyLogo)<{ sizeraw: number }>`\n position: absolute;\n z-index: 1;\n left: ${({ sizeraw }) => '-' + (sizeraw / 2).toString() + 'px'} !important;\n`\n\nexport default function DoubleCurrencyLogo({\n currency0,\n currency1,\n size = 16,\n margin = false,\n}: DoubleCurrencyLogoProps) {\n // const location = useLocation()\n // const isImport = location.pathname.includes('/migrate/import')\n\n return (\n // \n \n {currency0 && }\n {currency1 && }\n \n )\n}\n","import React from 'react'\nimport styled from 'styled-components/macro'\n\nimport { escapeRegExp } from '../../utils'\n\nconst StyledInput = styled.input<{ error?: boolean; fontSize?: string; align?: string }>`\n color: ${({ error, theme }) => (error ? \"#ffffff\" : \"#ffffff\")};\n width: 0;\n position: relative;\n font-weight: 600;\n outline: none;\n border: none;\n flex: 1 1 auto;\n background-color: transparent;\n font-size: ${({ fontSize }) => fontSize ?? '28px'};\n text-align: ${({ align }) => align && align};\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 0px;\n -webkit-appearance: textfield;\n text-align: right;\n\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n\n [type='number'] {\n -moz-appearance: textfield;\n }\n\n ::-webkit-outer-spin-button,\n ::-webkit-inner-spin-button {\n -webkit-appearance: none;\n }\n\n ::placeholder {\n color: ${({ theme }) => theme.text4};\n }\n`\n\nconst inputRegex = RegExp(`^\\\\d*(?:\\\\\\\\[.])?\\\\d*$`) // match escaped \".\" characters via in a non-capturing group\n\nexport const Input = React.memo(function InnerInput({\n value,\n onUserInput,\n placeholder,\n prependSymbol,\n maxBalance,\n ...rest\n}: {\n value: string | number\n onUserInput: (input: string) => void\n error?: boolean\n fontSize?: string\n align?: 'right' | 'left'\n prependSymbol?: string | undefined\n maxBalance:number\n} & Omit, 'ref' | 'onChange' | 'as'>) {\n const enforcer = (nextUserInput: string) => {\n if (nextUserInput === '' || inputRegex.test(escapeRegExp(nextUserInput))) {\n onUserInput(nextUserInput)\n }\n }\n\n return (\n {\n // const value = event.target.value\n // const valueNum = Number(value)\n // const valueMax = maxBalance.toString().replace(\",\",\"\");\n if (prependSymbol) {\n const value = event.target.value \n // cut off prepended symbol\n const formattedValue = value.toString().includes(prependSymbol)\n ? value.toString().slice(1, value.toString().length + 1)\n : value\n\n // replace commas with periods, because uniswap exclusively uses period as the decimal separator\n enforcer(formattedValue.replace(/,/g, '.'))\n } else {\n enforcer(event.target.value.replace(/,/g, '.'))\n }\n }}\n // universal input options\n inputMode=\"decimal\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n // text-specific options\n type=\"text\"\n pattern=\"^[0-9]*[.,]?[0-9]*$\"\n placeholder={placeholder || '0.0'}\n minLength={1}\n maxLength={79}\n spellCheck=\"false\"\n />\n )\n})\n\nexport default Input\n\n// const inputRegex = RegExp(`^\\\\d*(?:\\\\\\\\[.])?\\\\d*$`) // match escaped \".\" characters via in a non-capturing group\n","import { useEffect, useRef } from 'react'\n\n/**\n * Invokes callback repeatedly over an interval defined by the delay\n * @param callback\n * @param delay if null, the callback will not be invoked\n * @param leading if true, the callback will be invoked immediately (on the leading edge); otherwise, it will be invoked after delay\n */\nexport default function useInterval(callback: () => void, delay: null | number, leading = true) {\n const savedCallback = useRef<() => void>()\n\n // Remember the latest callback.\n useEffect(() => {\n savedCallback.current = callback\n }, [callback])\n\n // Set up the interval.\n useEffect(() => {\n function tick() {\n const { current } = savedCallback\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\n }, [delay, leading])\n}\n","import { Options, Placement } from '@popperjs/core'\nimport Portal from '@reach/portal'\nimport useInterval from 'lib/hooks/useInterval'\nimport React, { useCallback, useMemo, useState } from 'react'\nimport { usePopper } from 'react-popper'\nimport styled from 'styled-components/macro'\n\nconst PopoverContainer = styled.div<{ show: boolean }>`\n z-index: 9999;\n visibility: ${(props) => (props.show ? 'visible' : 'hidden')};\n opacity: ${(props) => (props.show ? 1 : 0)};\n transition: visibility 150ms linear, opacity 150ms linear;\n color: ${({ theme }) => theme.text2};\n`\n\nconst ReferenceElement = styled.div`\n display: inline-block;\n`\n\nconst Arrow = styled.div`\n width: 8px;\n height: 8px;\n z-index: 9998;\n\n ::before {\n position: absolute;\n width: 8px;\n height: 8px;\n z-index: 9998;\n\n content: '';\n border: 1px solid ${({ theme }) => theme.bg2};\n transform: rotate(45deg);\n background: ${({ theme }) => theme.bg0};\n }\n\n &.arrow-top {\n bottom: -5px;\n ::before {\n border-top: none;\n border-left: none;\n }\n }\n\n &.arrow-bottom {\n top: -5px;\n ::before {\n border-bottom: none;\n border-right: none;\n }\n }\n\n &.arrow-left {\n right: -5px;\n\n ::before {\n border-bottom: none;\n border-left: none;\n }\n }\n\n &.arrow-right {\n left: -5px;\n ::before {\n border-right: none;\n border-top: none;\n }\n }\n`\n\nexport interface PopoverProps {\n content: React.ReactNode\n show: boolean\n children: React.ReactNode\n placement?: Placement\n}\n\nexport default function Popover({ content, show, children, placement = 'auto' }: PopoverProps) {\n const [referenceElement, setReferenceElement] = useState(null)\n const [popperElement, setPopperElement] = useState(null)\n const [arrowElement, setArrowElement] = useState(null)\n\n const options = useMemo(\n (): Options => ({\n placement,\n strategy: 'fixed',\n modifiers: [\n { name: 'offset', options: { offset: [8, 8] } },\n { name: 'arrow', options: { element: arrowElement } },\n { name: 'preventOverflow', options: { padding: 8 } },\n ],\n }),\n [arrowElement, placement]\n )\n\n const { styles, update, attributes } = usePopper(referenceElement, popperElement, options)\n\n const updateCallback = useCallback(() => {\n update && update()\n }, [update])\n useInterval(updateCallback, show ? 100 : null)\n\n return (\n <>\n {children}\n \n \n {content}\n \n \n \n \n )\n}\n","import { transparentize } from 'polished'\nimport { ReactNode, useCallback, useState } from 'react'\nimport styled from 'styled-components/macro'\n\nimport Popover, { PopoverProps } from '../Popover'\n\nexport const TooltipContainer = styled.div`\n max-width: 256px;\n padding: 0.6rem 1rem;\n font-weight: 400;\n word-break: break-word;\n\n background: ${({ theme }) => theme.bg0};\n border-radius: 12px;\n border: 1px solid ${({ theme }) => theme.bg2};\n box-shadow: 0 4px 8px 0 ${({ theme }) => transparentize(0.9, theme.shadow1)};\n`\n\ninterface TooltipProps extends Omit {\n text: ReactNode\n}\n\ninterface TooltipContentProps extends Omit {\n content: ReactNode\n onOpen?: () => void\n // whether to wrap the content in a `TooltipContainer`\n wrap?: boolean\n disableHover?: boolean // disable the hover and content display\n}\n\nexport default function Tooltip({ text, ...rest }: TooltipProps) {\n return {text}} {...rest} />\n}\n\nfunction TooltipContent({ content, wrap = false, ...rest }: TooltipContentProps) {\n return {content} : content} {...rest} />\n}\n\nexport function MouseoverTooltip({ children, ...rest }: Omit) {\n const [show, setShow] = useState(false)\n const open = useCallback(() => setShow(true), [setShow])\n const close = useCallback(() => setShow(false), [setShow])\n return (\n \n
\n {children}\n
\n
\n )\n}\n\nexport function MouseoverTooltipContent({\n content,\n children,\n onOpen: openCallback = undefined,\n disableHover,\n ...rest\n}: Omit) {\n const [show, setShow] = useState(false)\n const open = useCallback(() => {\n setShow(true)\n openCallback?.()\n }, [openCallback])\n const close = useCallback(() => setShow(false), [setShow])\n return (\n \n \n {children}\n
\n \n )\n}\n","import { ReactNode, useCallback, useState } from 'react'\nimport styled from 'styled-components/macro'\n\nimport Tooltip from '../Tooltip'\n\nconst QuestionWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0px;\n width: 18px;\n height: 18px;\n border: none;\n background: none;\n outline: none;\n cursor: default;\n border-radius: 36px;\n font-size: 12px;\n background-color: ${({ theme }) => theme.bg2};\n color: ${({ theme }) => theme.text2};\n\n :hover,\n :focus {\n opacity: 0.7;\n }\n`\n\nconst QuestionMark = styled.span`\n font-size: 14px;\n`\n\nexport default function QuestionHelper({ text }: { text: ReactNode; size?: number }) {\n const [show, setShow] = useState(false)\n\n const open = useCallback(() => setShow(true), [setShow])\n const close = useCallback(() => setShow(false), [setShow])\n\n return (\n \n \n \n ?\n \n \n \n )\n}\n","export default __webpack_public_path__ + \"static/media/tokenlist.831c6277.svg\";","import React from 'react'\nimport styled from 'styled-components/macro'\n\nimport useHttpLocations from '../../hooks/useHttpLocations'\nimport Logo from '../Logo'\n\nconst StyledListLogo = styled(Logo)<{ size: string }>`\n width: ${({ size }) => size};\n height: ${({ size }) => size};\n`\n\nexport default function ListLogo({\n logoURI,\n style,\n size = '24px',\n alt,\n}: {\n logoURI: string\n size?: string\n style?: React.CSSProperties\n alt?: string\n}) {\n const srcs: string[] = useHttpLocations(logoURI)\n\n return \n}\n","// @ts-nocheck\nimport { Token } from '@uniswap/sdk-core'\nimport { ButtonPrimary } from 'components/Button'\nimport { AutoColumn } from 'components/Column'\nimport CurrencyLogo from 'components/CurrencyLogo'\nimport ListLogo from 'components/ListLogo'\nimport { AutoRow, RowFixed } from 'components/Row'\nimport { useIsTokenActive, useIsUserAddedToken } from 'hooks/Tokens'\nimport useTheme from 'hooks/useTheme'\nimport { CSSProperties } from 'react'\nimport { CheckCircle } from 'react-feather'\nimport styled from 'styled-components/macro'\nimport { ThemedText } from 'theme'\n\nimport { WrappedTokenInfo } from '../../state/lists/wrappedTokenInfo'\n\nconst TokenSection = styled.div<{ dim?: boolean }>`\n padding: 4px 20px;\n height: 56px;\n display: grid;\n grid-template-columns: auto minmax(auto, 1fr) auto;\n grid-gap: 16px;\n align-items: center;\n\n opacity: ${({ dim }) => (dim ? '0.4' : '1')};\n`\n\nconst CheckIcon = styled(CheckCircle)`\n height: 16px;\n width: 16px;\n margin-right: 6px;\n stroke: ${({ theme }) => theme.green1};\n`\n\nconst NameOverflow = styled.div`\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 140px;\n font-size: 12px;\n`\n\nexport default function ImportRow({\n token,\n style,\n dim,\n showImportView,\n setImportToken,\n}: {\n token: Token\n style?: CSSProperties\n dim?: boolean\n showImportView: () => void\n setImportToken: (token: Token) => void\n}) {\n const theme = useTheme()\n\n // check if already active on list or local storage tokens\n const isAdded = useIsUserAddedToken(token)\n const isActive = useIsTokenActive(token)\n\n const list = token instanceof WrappedTokenInfo ? token.list : undefined\n\n return (\n \n \n \n \n {token.symbol}\n \n {token.name}\n \n \n {list && list.logoURI && (\n \n \n via {list.name} \n \n \n \n )}F\n \n {!isActive && !isAdded ? (\n {\n setImportToken && setImportToken(token)\n showImportView()\n }}\n >\n Import\n \n ) : (\n \n \n \n Active\n \n \n )}\n \n )\n}\n","import styled from 'styled-components/macro'\n\nimport { AutoColumn } from '../Column'\nimport { RowBetween } from '../Row'\n\nexport const TextDot = styled.div`\n height: 3px;\n width: 3px;\n background-color: ${({ theme }) => theme.text2};\n border-radius: 50%;\n`\n\nexport const Checkbox = styled.input`\n border: 1px solid ${({ theme }) => theme.red3};\n height: 20px;\n margin: 0;\n`\n\nexport const PaddedColumn = styled(AutoColumn)`\n padding: 20px;\n`\n\nexport const MenuItem = styled(RowBetween)`\n padding: 4px 20px;\n height: 56px;\n display: grid;\n grid-template-columns: auto minmax(auto, 1fr) auto minmax(0, 72px);\n grid-gap: 16px;\n cursor: ${({ disabled }) => !disabled && 'pointer'};\n pointer-events: ${({ disabled }) => disabled && 'none'};\n :hover {\n background-color: ${({ theme, disabled }) => !disabled && theme.bg2};\n }\n opacity: ${({ disabled, selected }) => (disabled || selected ? 0.5 : 1)};\n`\n\nexport const SearchInput = styled.input`\n position: relative;\n display: flex;\n padding: 16px;\n align-items: center;\n width: 100%;\n white-space: nowrap;\n background: none;\n border: none;\n outline: none;\n border-radius: 20px;\n color: ${({ theme }) => theme.text4};\n //border: 1px solid ${({ theme }) => theme.primary2};\n -webkit-appearance: none;\n\n font-size: 18px;\n\n ::placeholder {\n color: ${({ theme }) => theme.text3};\n }\n transition: border 100ms;\n :focus {\n //border: 1px solid ${({ theme }) => theme.primary1};\n outline: none;\n }\n`\nexport const Separator = styled.div`\n width: 100%;\n height: 1px;\n background-color: ${({ theme }) => theme.bg2};\n`\n\nexport const SeparatorDark = styled.div`\n width: 100%;\n height: 1px;\n background-color: ${({ theme }) => theme.bg3};\n`\n","// @ts-nocheck\nimport { Currency, CurrencyAmount, Token } from '@uniswap/sdk-core'\nimport { LightGreyCard } from 'components/Card'\nimport QuestionHelper from 'components/QuestionHelper'\nimport useActiveWeb3React from 'hooks/useActiveWeb3React'\nimport useTheme from 'hooks/useTheme'\nimport { CSSProperties, MutableRefObject, useCallback, useMemo } from 'react'\nimport { FixedSizeList } from 'react-window'\nimport { Text } from 'rebass'\nimport styled from 'styled-components/macro'\n\nimport TokenListLogo from '../../assets/svg/tokenlist.svg'\nimport { useIsUserAddedToken } from '../../hooks/Tokens'\nimport { useCombinedActiveList } from '../../state/lists/hooks'\nimport { WrappedTokenInfo } from '../../state/lists/wrappedTokenInfo'\nimport { useCurrencyBalance } from '../../state/wallet/hooks'\nimport { ThemedText } from '../../theme'\nimport { isTokenOnList } from '../../utils'\nimport Column from '../Column'\nimport CurrencyLogo from '../CurrencyLogo'\nimport Loader from '../Loader'\nimport { RowBetween, RowFixed } from '../Row'\nimport { MouseoverTooltip } from '../Tooltip'\nimport ImportRow from './ImportRow'\nimport { MenuItem } from './styleds'\n\nfunction currencyKey(currency: Currency): string {\n return currency.isToken ? currency.address : 'ETHER'\n}\n\nconst StyledBalanceText = styled(Text)`\n white-space: nowrap;\n overflow: hidden;\n max-width: 5rem;\n text-overflow: ellipsis;\n`\n\nconst Tag = styled.div`\n background-color: ${({ theme }) => theme.bg3};\n color: ${({ theme }) => theme.text2};\n font-size: 14px;\n border-radius: 4px;\n padding: 0.25rem 0.3rem 0.25rem 0.3rem;\n max-width: 6rem;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n justify-self: flex-end;\n margin-right: 4px;\n`\n\nconst FixedContentRow = styled.div`\n padding: 4px 20px;\n height: 56px;\n display: grid;\n grid-gap: 16px;\n align-items: center;\n`\n\nfunction Balance({ balance }: { balance: CurrencyAmount }) {\n return {balance.toSignificant(4)}\n}\n\nconst TagContainer = styled.div`\n display: flex;\n justify-content: flex-end;\n`\n\nconst TokenListLogoWrapper = styled.img`\n height: 20px;\n`\n\nfunction TokenTags({ currency }: { currency: Currency }) {\n if (!(currency instanceof WrappedTokenInfo)) {\n return \n }\n\n const tags = currency.tags\n if (!tags || tags.length === 0) return \n\n const tag = tags[0]\n\n return (\n \n \n {tag.name}\n \n {tags.length > 1 ? (\n `${name}: ${description}`)\n .join('; \\n')}\n >\n ...\n \n ) : null}\n \n )\n}\n\nfunction CurrencyRow({\n currency,\n onSelect,\n isSelected,\n otherSelected,\n style,\n showCurrencyAmount,\n}: {\n currency: Currency\n onSelect: () => void\n isSelected: boolean\n otherSelected: boolean\n style: CSSProperties\n showCurrencyAmount?: boolean\n}) {\n const { account } = useActiveWeb3React()\n const key = currencyKey(currency)\n const selectedTokenList = useCombinedActiveList()\n const isOnSelectedList = isTokenOnList(selectedTokenList, currency.isToken ? currency : undefined)\n const customAdded = useIsUserAddedToken(currency)\n const balance = useCurrencyBalance(account ?? undefined, currency)\n\n // only show add or remove buttons if not on selected list\n return (\n (isSelected ? null : onSelect())}\n disabled={isSelected}\n selected={otherSelected}\n >\n \n \n \n {currency.symbol}\n \n \n {!currency.isNative && !isOnSelectedList && customAdded ? (\n <>{currency.name} • Added by user\n ) : (\n currency.name\n )}\n \n \n \n {showCurrencyAmount && (\n \n {balance ? : account ? : null}\n \n )}\n \n )\n}\n\nconst BREAK_LINE = 'BREAK'\ntype BreakLine = typeof BREAK_LINE\nfunction isBreakLine(x: unknown): x is BreakLine {\n return x === BREAK_LINE\n}\n\nfunction BreakLineComponent({ style }: { style: CSSProperties }) {\n const theme = useTheme()\n return (\n \n \n \n \n \n \n Expanded results from inactive Token Lists\n \n \n \n \n \n \n )\n}\n\nexport default function CurrencyList({\n height,\n currencies,\n otherListTokens,\n selectedCurrency,\n onCurrencySelect,\n otherCurrency,\n fixedListRef,\n showImportView,\n setImportToken,\n showCurrencyAmount,\n}: {\n height: number\n currencies: Currency[]\n otherListTokens?: WrappedTokenInfo[]\n selectedCurrency?: Currency | null\n onCurrencySelect: (currency: Currency) => void\n otherCurrency?: Currency | null\n fixedListRef?: MutableRefObject\n showImportView: () => void\n setImportToken: (token: Token) => void\n showCurrencyAmount?: boolean\n}) {\n const itemData: (Currency | BreakLine)[] = useMemo(() => {\n if (otherListTokens && otherListTokens?.length > 0) {\n return [...currencies, BREAK_LINE, ...otherListTokens]\n }\n return currencies\n }, [currencies, otherListTokens])\n\n const Row = useCallback(\n function TokenRow({ data, index, style }) {\n const row: Currency | BreakLine = data[index]\n\n if (isBreakLine(row)) {\n return \n }\n\n const currency = row\n\n const isSelected = Boolean(currency && selectedCurrency && selectedCurrency.equals(currency))\n const otherSelected = Boolean(currency && otherCurrency && otherCurrency.equals(currency))\n const handleSelect = () => currency && onCurrencySelect(currency)\n\n const token = currency?.wrapped\n\n const showImport = index > currencies.length\n\n if (showImport && token) {\n return (\n \n )\n } else if (currency) {\n return (\n \n )\n } else {\n return null\n }\n },\n [\n currencies.length,\n onCurrencySelect,\n otherCurrency,\n selectedCurrency,\n setImportToken,\n showImportView,\n showCurrencyAmount,\n ]\n )\n\n const itemKey = useCallback((index: number, data: typeof itemData) => {\n const currency = data[index]\n if (isBreakLine(currency)) return BREAK_LINE\n return currencyKey(currency)\n }, [])\n\n return (\n \n {Row}\n \n )\n}\n","// eslint-disable-next-line no-restricted-imports\n// @ts-nocheck\nimport useDebounce from \"hooks/useDebounce\";\nimport { useOnClickOutside } from \"hooks/useOnClickOutside\";\nimport useTheme from \"hooks/useTheme\";\nimport useToggle from \"hooks/useToggle\";\nimport useNativeCurrency from \"lib/hooks/useNativeCurrency\";\nimport { getTokenFilter } from \"lib/hooks/useTokenList/filtering\";\nimport {\n tokenComparator,\n useSortTokensByQuery\n} from \"lib/hooks/useTokenList/sorting\";\nimport {\n KeyboardEvent,\n RefObject,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState\n} from \"react\";\nimport ReactGA from \"react-ga4\";\nimport AutoSizer from \"react-virtualized-auto-sizer\";\nimport { FixedSizeList } from \"react-window\";\nimport { Text } from \"rebass\";\nimport { useAllTokenBalances } from \"state/wallet/hooks\";\nimport styled from \"styled-components/macro\";\n\nimport { Currency, Token } from \"@uniswap/sdk-core\";\n\nimport {\n useAllTokens,\n useIsUserAddedToken,\n useSearchInactiveTokenLists,\n useToken\n} from \"../../hooks/Tokens\";\nimport { CloseIcon, ThemedText } from \"../../theme\";\nimport { isAddress } from \"../../utils\";\nimport Column from \"../Column\";\nimport Row, { RowBetween } from \"../Row\";\nimport CurrencyList from \"./CurrencyList\";\nimport ImportRow from \"./ImportRow\";\nimport { PaddedColumn, SearchInput, Separator } from \"./styleds\";\n\nconst ContentWrapper = styled(Column)`\n width: 100%;\n flex: 1 1;\n position: relative;\n border-radius: 40px;\n border: double 1px transparent;\n background-image: linear-gradient(#09080C, #09080C), linear-gradient(73.6deg, #85FFC4 2.11%, #5CC6FF 42.39%, #BC85FF 85.72%);\n background-origin: border-box;\n background-clip: content-box, border-box;\n`\n\nconst SearchRow = styled(Row)`\n // Gradient Background\n border: double 1px transparent;\n background-image: linear-gradient(#09080C, #09080C), linear-gradient(73.6deg, #85FFC4 2.11%, #5CC6FF 42.39%, #BC85FF 85.72%);\n background-origin: border-box;\n background-clip: content-box, border-box;\n border-radius: 20px;\n`\n\ninterface CurrencySearchProps {\n isOpen: boolean\n onDismiss: () => void\n selectedCurrency?: Currency | null\n onCurrencySelect: (currency: Currency) => void\n otherSelectedCurrency?: Currency | null\n showCommonBases?: boolean\n showCurrencyAmount?: boolean\n disableNonToken?: boolean\n showManageView: () => void\n showImportView: () => void\n setImportToken: (token: Token) => void\n}\n\nexport function CurrencySearch({\n selectedCurrency,\n onCurrencySelect,\n otherSelectedCurrency,\n showCurrencyAmount,\n disableNonToken,\n onDismiss,\n isOpen,\n showImportView,\n setImportToken,\n}: CurrencySearchProps) {\n const theme = useTheme()\n\n // refs for fixed size lists\n const fixedList = useRef()\n\n const [searchQuery, setSearchQuery] = useState('')\n const debouncedQuery = useDebounce(searchQuery, 200)\n\n const allTokens = useAllTokens()\n\n // if they input an address, use it\n const isAddressSearch = isAddress(debouncedQuery)\n\n const searchToken = useToken(debouncedQuery)\n // const dispatch = useAppDispatch()\n // dispatch(disableList('https://tokens.uniswap.org'))\n const searchTokenIsAdded = useIsUserAddedToken(searchToken)\n\n useEffect(() => {\n if (isAddressSearch) {\n ReactGA.event({\n category: 'Currency Select',\n action: 'Search by address',\n label: isAddressSearch,\n })\n }\n }, [isAddressSearch])\n\n const filteredTokens: Token[] = useMemo(() => {\n return Object.values(allTokens).filter(getTokenFilter(debouncedQuery)).filter((item) => {\n return true\n })\n }, [allTokens, debouncedQuery])\n\n const balances = useAllTokenBalances()\n const sortedTokens: Token[] = useMemo(() => {\n return filteredTokens.sort(tokenComparator.bind(null, balances))\n }, [balances, filteredTokens])\n\n const filteredSortedTokens = useSortTokensByQuery(debouncedQuery, sortedTokens)\n\n const native = useNativeCurrency()\n\n const filteredSortedTokensWithETH: Currency[] = useMemo(() => {\n if (!native) return filteredSortedTokens\n\n const s = debouncedQuery.toLowerCase().trim()\n if (native.symbol?.toLowerCase()?.indexOf(s) !== -1) {\n return native ? [native, ...filteredSortedTokens] : filteredSortedTokens\n }\n return filteredSortedTokens\n }, [debouncedQuery, native, filteredSortedTokens])\n\n const handleCurrencySelect = useCallback(\n (currency: Currency) => {\n onCurrencySelect(currency)\n onDismiss()\n },\n [onDismiss, onCurrencySelect]\n )\n\n // clear the input on open\n useEffect(() => {\n if (isOpen) setSearchQuery('')\n }, [isOpen])\n\n // manage focus on modal show\n const inputRef = useRef()\n const handleInput = useCallback((event) => {\n const input = event.target.value\n const checksummedInput = isAddress(input)\n setSearchQuery(checksummedInput || input)\n fixedList.current?.scrollTo(0)\n }, [])\n\n const handleEnter = useCallback(\n (e: KeyboardEvent) => {\n if (e.key === 'Enter') {\n const s = debouncedQuery.toLowerCase().trim()\n if (s === native?.symbol?.toLowerCase()) {\n handleCurrencySelect(native)\n } else if (filteredSortedTokensWithETH.length > 0) {\n if (\n filteredSortedTokensWithETH[0].symbol?.toLowerCase() === debouncedQuery.trim().toLowerCase() ||\n filteredSortedTokensWithETH.length === 1\n ) {\n handleCurrencySelect(filteredSortedTokensWithETH[0])\n }\n }\n }\n },\n [debouncedQuery, native, filteredSortedTokensWithETH, handleCurrencySelect]\n )\n\n // menu ui\n const [open, toggle] = useToggle(false)\n const node = useRef()\n useOnClickOutside(node, open ? toggle : undefined)\n\n // if no results on main list, show option to expand into inactive\n const filteredInactiveTokens = useSearchInactiveTokenLists(\n filteredTokens.length === 0 || (debouncedQuery.length > 2 && !isAddressSearch) ? debouncedQuery : undefined\n )\n\n return (\n \n \n \n \n Select a token\n \n \n \n \n }\n onChange={handleInput}\n onKeyDown={handleEnter}\n />\n \n {/*{showCommonBases && (\n \n )}*/}\n \n \n {searchToken && !searchTokenIsAdded ? (\n \n \n \n ) : filteredSortedTokens?.length > 0 || filteredInactiveTokens?.length > 0 ? (\n
\n \n {({ height }) => (\n \n )}\n \n
\n ) : (\n \n \n No results found.\n \n \n )}\n
\n )\n}\n","import { CurrencyAmount, Token } from '@uniswap/sdk-core'\nimport useActiveWeb3React from 'hooks/useActiveWeb3React'\nimport { useTokenBalances } from 'lib/hooks/useCurrencyBalance'\nimport { useMemo } from 'react'\n\nimport { useAllTokens } from '../../hooks/Tokens'\n\nexport {\n default as useCurrencyBalance,\n useCurrencyBalances,\n useNativeCurrencyBalances,\n useTokenBalance,\n useTokenBalances,\n useTokenBalancesWithLoadingIndicator,\n} from 'lib/hooks/useCurrencyBalance'\n\n// mimics useAllBalances\nexport function useAllTokenBalances(): { [tokenAddress: string]: CurrencyAmount | undefined } {\n const { account } = useActiveWeb3React()\n const allTokens = useAllTokens()\n const allTokensArray = useMemo(() => Object.values(allTokens ?? {}), [allTokens])\n const balances = useTokenBalances(account ?? undefined, allTokensArray)\n return balances ?? {}\n}\n","import { useCallback, useState } from 'react'\n\nexport default function useToggle(initialState = false): [boolean, () => void] {\n const [state, setState] = useState(initialState)\n const toggle = useCallback(() => setState((state) => !state), [])\n return [state, toggle]\n}\n","// @ts-nocheck\nimport { Currency, Price } from '@uniswap/sdk-core'\nimport useUSDCPrice from 'hooks/useUSDCPrice'\nimport { useCallback, useContext } from 'react'\nimport { Text } from 'rebass'\nimport styled, { ThemeContext } from 'styled-components/macro'\nimport { ThemedText } from 'theme'\n\ninterface TradePriceProps {\n price: Price\n showInverted: boolean\n setShowInverted: (showInverted: boolean) => void\n}\n\nconst StyledPriceContainer = styled.button`\n background-color: transparent;\n border: none;\n cursor: pointer;\n align-items: center;\n justify-content: flex-start;\n padding: 0;\n grid-template-columns: 1fr auto;\n grid-gap: 0.25rem;\n display: flex;\n flex-direction: row;\n text-align: left;\n flex-wrap: wrap;\n padding: 8px 0;\n user-select: text;\n`\n\nexport default function TradePrice({ price, showInverted, setShowInverted }: TradePriceProps) {\n const theme = useContext(ThemeContext)\n\n const usdcPrice = useUSDCPrice(showInverted ? price.baseCurrency : price.quoteCurrency)\n\n let formattedPrice: string\n try {\n formattedPrice = showInverted ? price.toSignificant(4) : price.invert()?.toSignificant(4)\n } catch (error) {\n formattedPrice = '0'\n }\n\n const label = showInverted ? `${price.quoteCurrency?.symbol}` : `${price.baseCurrency?.symbol} `\n const labelInverted = showInverted ? `${price.baseCurrency?.symbol} ` : `${price.quoteCurrency?.symbol}`\n const flipPrice = useCallback(() => setShowInverted(!showInverted), [setShowInverted, showInverted])\n\n const text = `${'1 ' + labelInverted + ' = ' + formattedPrice ?? '-'} ${label}`\n\n return (\n {\n e.stopPropagation() // dont want this click to affect dropdowns / hovers\n flipPrice()\n }}\n title={text}\n >\n \n {text}\n {' '}\n {usdcPrice && (\n \n (${usdcPrice.toSignificant(6, { groupSeparator: ',' })})\n \n )}\n \n )\n}\n","import { loadingOpacityMixin } from 'components/Loader/styled'\nimport { TooltipContainer } from 'components/Tooltip'\nimport { transparentize } from 'polished'\nimport { ReactNode } from 'react'\nimport { AlertTriangle } from 'react-feather'\nimport { Text } from 'rebass'\nimport styled, { css } from 'styled-components/macro'\n\nimport { ThemedText } from '../../theme'\nimport { AutoColumn } from '../Column'\nimport TradePrice from './TradePrice'\n\nexport const Wrapper = styled.div`\n position: relative;\n padding: 8px;\n`\n\nexport const ArrowWrapper = styled.div<{ clickable: boolean }>`\n padding: 4px;\n border-radius: 12px;\n height: 32px;\n width: 32px;\n position: relative;\n margin-top: -14px;\n margin-bottom: -14px;\n left: calc(50% - 16px);\n /* transform: rotate(90deg); */\n background-color: ${({ theme }) => theme.bg1};\n border: 4px solid ${({ theme }) => theme.bg0};\n z-index: 2;\n ${({ clickable }) =>\n clickable\n ? css`\n :hover {\n cursor: pointer;\n opacity: 0.8;\n }\n `\n : null}\n`\n\nexport const SectionBreak = styled.div`\n height: 1px;\n width: 100%;\n background-color: ${({ theme }) => theme.bg3};\n`\n\nexport const ErrorText = styled(Text)<{ severity?: 0 | 1 | 2 | 3 | 4 }>`\n color: ${({ theme, severity }) =>\n severity === 3 || severity === 4\n ? theme.red1\n : severity === 2\n ? theme.yellow2\n : severity === 1\n ? theme.text1\n : theme.text2};\n`\n\nexport const TruncatedText = styled(Text)`\n text-overflow: ellipsis;\n max-width: 220px;\n overflow: hidden;\n text-align: right;\n`\n\n// styles\nexport const Dots = styled.span`\n &::after {\n display: inline-block;\n animation: ellipsis 1.25s infinite;\n content: '.';\n width: 1em;\n text-align: left;\n }\n @keyframes ellipsis {\n 0% {\n content: '.';\n }\n 33% {\n content: '..';\n }\n 66% {\n content: '...';\n }\n }\n`\n\nconst SwapCallbackErrorInner = styled.div`\n background-color: ${({ theme }) => transparentize(0.9, theme.red1)};\n border-radius: 1rem;\n display: flex;\n align-items: center;\n font-size: 0.825rem;\n width: 100%;\n padding: 3rem 1.25rem 1rem 1rem;\n margin-top: -2rem;\n color: ${({ theme }) => theme.red1};\n z-index: -1;\n p {\n padding: 0;\n margin: 0;\n font-weight: 600;\n }\n`\n\nconst SwapCallbackErrorInnerAlertTriangle = styled.div`\n background-color: ${({ theme }) => transparentize(0.9, theme.red1)};\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: 12px;\n border-radius: 12px;\n min-width: 48px;\n height: 48px;\n`\n\nexport function SwapCallbackError({ error }: { error: ReactNode }) {\n return (\n \n \n \n \n

{error}

\n
\n )\n}\n\nexport const SwapShowAcceptChanges = styled(AutoColumn)`\n background-color: ${({ theme }) => transparentize(0.95, theme.primary3)};\n color: ${({ theme }) => theme.primaryText1};\n padding: 0.5rem;\n border-radius: 12px;\n margin-top: 8px;\n`\n\nexport const TransactionDetailsLabel = styled(ThemedText.Black)`\n border-bottom: 1px solid ${({ theme }) => theme.bg2};\n padding-bottom: 0.5rem;\n`\n\nexport const ResponsiveTooltipContainer = styled(TooltipContainer)<{ origin?: string; width?: string }>`\n background-color: ${({ theme }) => theme.bg0};\n border: 1px solid ${({ theme }) => theme.bg2};\n padding: 1rem;\n width: ${({ width }) => width ?? 'auto'};\n\n ${({ theme, origin }) => theme.mediaWidth.upToExtraSmall`\n transform: scale(0.8);\n transform-origin: ${origin ?? 'top left'};\n `}\n`\n\nexport const StyledTradePrice = styled(TradePrice)<{ $loading: boolean }>`\n ${loadingOpacityMixin}\n`\n","import { nanoid } from '@reduxjs/toolkit'\nimport { TokenList } from '@uniswap/token-lists'\nimport useActiveWeb3React from 'hooks/useActiveWeb3React'\nimport getTokenList from 'lib/hooks/useTokenList/fetchTokenList'\nimport resolveENSContentHash from 'lib/utils/resolveENSContentHash'\nimport { useCallback } from 'react'\nimport { useAppDispatch } from 'state/hooks'\n\nimport { getNetworkLibrary } from '../connectors'\nimport { fetchTokenList } from '../state/lists/actions'\n\nexport function useFetchListCallback(): (listUrl: string, sendDispatch?: boolean) => Promise {\n const { chainId, library } = useActiveWeb3React()\n const dispatch = useAppDispatch()\n\n const ensResolver = useCallback(\n async (ensName: string) => {\n if (!library || chainId !== 1) {\n const networkLibrary = getNetworkLibrary()\n const network = await networkLibrary.getNetwork()\n if (networkLibrary && network.chainId === 1) {\n return resolveENSContentHash(ensName, networkLibrary)\n }\n throw new Error('Could not construct mainnet ENS resolver')\n }\n return resolveENSContentHash(ensName, library)\n },\n [chainId, library]\n )\n\n // note: prevent dispatch if using for list search or unsupported list\n return useCallback(\n async (listUrl: string, sendDispatch = true) => {\n const requestId = nanoid()\n sendDispatch && dispatch(fetchTokenList.pending({ requestId, url: listUrl }))\n return getTokenList(listUrl, ensResolver)\n .then((tokenList) => {\n sendDispatch && dispatch(fetchTokenList.fulfilled({ url: listUrl, tokenList, requestId }))\n return tokenList\n })\n .catch((error) => {\n console.debug(`Failed to get list at url ${listUrl}`, error)\n sendDispatch && dispatch(fetchTokenList.rejected({ url: listUrl, requestId, errorMessage: error.message }))\n throw error\n })\n },\n [dispatch, ensResolver]\n )\n}\n","// @ts-nocheck\nimport { TokenList } from '@uniswap/token-lists'\nimport { ButtonPrimary } from 'components/Button'\nimport Card from 'components/Card'\nimport { AutoColumn } from 'components/Column'\nimport ListLogo from 'components/ListLogo'\nimport { AutoRow, RowBetween, RowFixed } from 'components/Row'\nimport { SectionBreak } from 'components/swap/styleds'\nimport { useFetchListCallback } from 'hooks/useFetchListCallback'\nimport useTheme from 'hooks/useTheme'\nimport { transparentize } from 'polished'\nimport { useCallback, useState } from 'react'\nimport { AlertTriangle, ArrowLeft } from 'react-feather'\nimport ReactGA from 'react-ga4'\nimport { useAppDispatch } from 'state/hooks'\nimport { enableList, removeList } from 'state/lists/actions'\nimport { useAllLists } from 'state/lists/hooks'\nimport styled from 'styled-components/macro'\nimport { CloseIcon, ThemedText } from 'theme'\n\nimport { ExternalLink } from '../../theme'\nimport { CurrencyModalView } from './CurrencySearchModal'\nimport { Checkbox, PaddedColumn, TextDot } from './styleds'\n\nconst Wrapper = styled.div`\n position: relative;\n width: 100%;\n overflow: auto;\n`\n\ninterface ImportProps {\n listURL: string\n list: TokenList\n onDismiss: () => void\n setModalView: (view: CurrencyModalView) => void\n}\n\nexport function ImportList({ listURL, list, setModalView, onDismiss }: ImportProps) {\n const theme = useTheme()\n const dispatch = useAppDispatch()\n\n // user must accept\n const [confirmed, setConfirmed] = useState(false)\n\n const lists = useAllLists()\n const fetchList = useFetchListCallback()\n\n // monitor is list is loading\n const adding = Boolean(lists[listURL]?.loadingRequestId)\n const [addError, setAddError] = useState(null)\n\n const handleAddList = useCallback(() => {\n if (adding) return\n setAddError(null)\n fetchList(listURL)\n .then(() => {\n ReactGA.event({\n category: 'Lists',\n action: 'Add List',\n label: listURL,\n })\n\n // turn list on\n dispatch(enableList(listURL))\n // go back to lists\n setModalView(CurrencyModalView.manage)\n })\n .catch((error) => {\n ReactGA.event({\n category: 'Lists',\n action: 'Add List Failed',\n label: listURL,\n })\n setAddError(error.message)\n dispatch(removeList(listURL))\n })\n }, [adding, dispatch, fetchList, listURL, setModalView])\n\n return (\n \n \n \n setModalView(CurrencyModalView.manage)} />\n \n Import List\n \n \n \n \n \n \n \n \n \n \n {list.logoURI && }\n \n \n \n {list.name}\n \n \n \n {list.tokens.length} tokens\n \n \n \n \n {listURL}\n \n \n \n \n \n \n \n \n \n \n Import at your own risk\n \n \n\n \n \n \n By adding this list you are implicitly trusting that the data is correct. Anyone can create a list,\n including creating fake versions of existing lists and lists that claim to represent projects that do\n not have one.\n \n \n \n If you purchase a token from this list, you may not be able to sell it back.\n \n \n setConfirmed(!confirmed)}>\n setConfirmed(!confirmed)}\n />\n \n I understand\n \n \n \n\n \n Import\n \n {addError ? (\n \n {addError}\n \n ) : null}\n \n {/* */}\n \n \n )\n}\n","// @ts-nocheck\nimport { Token } from '@uniswap/sdk-core'\nimport { TokenList } from '@uniswap/token-lists'\nimport Card from 'components/Card'\nimport { AutoColumn } from 'components/Column'\nimport CurrencyLogo from 'components/CurrencyLogo'\nimport ListLogo from 'components/ListLogo'\nimport { RowFixed } from 'components/Row'\nimport useActiveWeb3React from 'hooks/useActiveWeb3React'\nimport { transparentize } from 'polished'\nimport { AlertCircle } from 'react-feather'\nimport styled, { useTheme } from 'styled-components/macro'\nimport { ExternalLink, ThemedText } from 'theme'\nimport { ExplorerDataType, getExplorerLink } from 'utils/getExplorerLink'\n\nconst WarningWrapper = styled(Card)<{ highWarning: boolean }>`\n background-color: ${({ theme, highWarning }) =>\n highWarning ? transparentize(0.8, theme.red1) : transparentize(0.8, theme.yellow2)};\n width: fit-content;\n`\n\nconst AddressText = styled(ThemedText.Blue)`\n font-size: 12px;\n word-break: break-all;\n\n ${({ theme }) => theme.mediaWidth.upToSmall`\n font-size: 10px;\n `}\n`\ninterface TokenImportCardProps {\n list?: TokenList\n token: Token\n}\nconst TokenImportCard = ({ list, token }: TokenImportCardProps) => {\n const theme = useTheme()\n const { chainId } = useActiveWeb3React()\n return (\n \n \n \n \n \n {token.symbol}\n \n \n {token.name}\n \n \n {chainId && (\n \n {token.address}\n \n )}\n {list !== undefined ? (\n \n {list.logoURI && }\n \n via {list.name} token list\n \n \n ) : (\n \n \n \n \n Unknown Source\n \n \n \n )}\n \n \n )\n}\n\nexport default TokenImportCard\n","// @ts-nocheck\nimport { Token } from '@uniswap/sdk-core'\nimport { ButtonPrimary } from 'components/Button'\nimport { AlertCircle, ArrowLeft } from 'react-feather'\nimport styled from 'styled-components/macro'\nimport { CloseIcon, ThemedText } from 'theme'\n\nimport TokenImportCard from './TokenImportCard'\n\nconst Wrapper = styled.div`\n align-items: center;\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n height: 100%;\n width: 100%;\n`\nconst Button = styled(ButtonPrimary)`\n margin-top: 1em;\n padding: 10px 1em;\n`\nconst Content = styled.div`\n padding: 1em;\n`\nconst Copy = styled(ThemedText.Body)`\n text-align: center;\n margin: 0 2em 1em !important;\n font-weight: 400;\n font-size: 16px;\n`\nconst Header = styled.div`\n align-items: center;\n display: flex;\n gap: 14px;\n justify-content: space-between;\n padding: 20px;\n width: 100%;\n`\nconst Icon = styled(AlertCircle)`\n stroke: ${({ theme }) => theme.text2};\n width: 48px;\n height: 48px;\n`\ninterface BlockedTokenProps {\n onBack: (() => void) | undefined\n onDismiss: (() => void) | undefined\n blockedTokens: Token[]\n}\n\nconst BlockedToken = ({ onBack, onDismiss, blockedTokens }: BlockedTokenProps) => (\n \n
\n {onBack ? :
}\n \n Token not supported\n \n {onDismiss ? :
}\n
\n \n \n \n This token is not supported in the Uniswap Labs app\n \n \n \n \n
\n)\nexport default BlockedToken\n","import { Currency, Token } from '@uniswap/sdk-core'\nimport { TokenList } from '@uniswap/token-lists'\nimport { ButtonPrimary } from 'components/Button'\nimport { AutoColumn } from 'components/Column'\nimport { RowBetween } from 'components/Row'\nimport { SectionBreak } from 'components/swap/styleds'\nimport { useUnsupportedTokens } from 'hooks/Tokens'\nimport useTheme from 'hooks/useTheme'\nimport { AlertCircle, ArrowLeft } from 'react-feather'\nimport { useAddUserToken } from 'state/user/hooks'\nimport styled from 'styled-components/macro'\nimport { CloseIcon, ThemedText } from 'theme'\n\nimport BlockedToken from './BlockedToken'\nimport { PaddedColumn } from './styleds'\nimport TokenImportCard from './TokenImportCard'\n\nconst Wrapper = styled.div`\n position: relative;\n width: 100%;\n overflow: auto;\n border-radius: 40px;\n border: double 1px transparent;\n background-image: linear-gradient(#09080C, #09080C), linear-gradient(73.6deg, #85FFC4 2.11%, #5CC6FF 42.39%, #BC85FF 85.72%);\n background-origin: border-box;\n background-clip: content-box, border-box;\n`\n\ninterface ImportProps {\n tokens: Token[]\n list?: TokenList\n onBack?: () => void\n onDismiss?: () => void\n handleCurrencySelect?: (currency: Currency) => void\n}\n\nexport function ImportToken(props: ImportProps) {\n const { tokens, list, onBack, onDismiss, handleCurrencySelect } = props\n const theme = useTheme()\n\n const addToken = useAddUserToken()\n\n const unsupportedTokens = useUnsupportedTokens()\n const unsupportedSet = new Set(Object.keys(unsupportedTokens))\n const intersection = new Set(tokens.filter((token) => unsupportedSet.has(token.address)))\n if (intersection.size > 0) {\n return \n }\n return (\n \n \n \n {onBack ? :
}\n \n {tokens.length > 1 ? \"Import tokens\" : \"Import token\"}\n \n {onDismiss ? :
}\n \n \n \n \n \n \n \n \n This token doesn't appear on the active token list(s). Make sure this is the token that you want to\n trade.\n \n \n \n {tokens.map((token) => (\n \n ))}\n {\n tokens.map((token) => addToken(token))\n handleCurrencySelect && handleCurrencySelect(tokens[0])\n }}\n className=\"token-dismiss-button\"\n >\n Import\n \n \n \n )\n}\n","import { Currency, Token } from '@uniswap/sdk-core'\nimport { TokenList } from '@uniswap/token-lists'\nimport usePrevious from 'hooks/usePrevious'\nimport { useCallback, useEffect, useState } from 'react'\n\nimport useLast from '../../hooks/useLast'\nimport { WrappedTokenInfo } from '../../state/lists/wrappedTokenInfo'\nimport Modal from '../Modal'\nimport { CurrencySearch } from './CurrencySearch'\nimport { ImportList } from './ImportList'\nimport { ImportToken } from './ImportToken'\n\ninterface CurrencySearchModalProps {\n isOpen: boolean\n onDismiss: () => void\n selectedCurrency?: Currency | null\n onCurrencySelect: (currency: Currency) => void\n otherSelectedCurrency?: Currency | null\n showCommonBases?: boolean\n showCurrencyAmount?: boolean\n disableNonToken?: boolean\n}\n\nexport enum CurrencyModalView {\n search,\n manage,\n importToken,\n importList,\n}\n\nexport default function CurrencySearchModal({\n isOpen,\n onDismiss,\n onCurrencySelect,\n selectedCurrency,\n otherSelectedCurrency,\n showCommonBases = false,\n showCurrencyAmount = true,\n disableNonToken = true,\n}: CurrencySearchModalProps) {\n const [modalView, setModalView] = useState(CurrencyModalView.manage)\n const lastOpen = useLast(isOpen)\n\n useEffect(() => {\n if (isOpen && !lastOpen) {\n setModalView(CurrencyModalView.search)\n }\n }, [isOpen, lastOpen])\n\n const handleCurrencySelect = useCallback(\n (currency: Currency) => {\n onCurrencySelect(currency)\n onDismiss()\n },\n [onDismiss, onCurrencySelect]\n )\n\n // for token import view\n const prevView = usePrevious(modalView)\n\n // used for import token flow\n const [importToken, setImportToken] = useState()\n\n // used for import list\n const [importList, ] = useState()\n const [listURL, ] = useState()\n\n const showImportView = useCallback(() => setModalView(CurrencyModalView.importToken), [setModalView])\n const showManageView = useCallback(() => setModalView(CurrencyModalView.manage), [setModalView])\n const handleBackImport = useCallback(\n () => setModalView(prevView && prevView !== CurrencyModalView.importToken ? prevView : CurrencyModalView.search),\n [setModalView, prevView]\n )\n\n // change min height if not searching\n const minHeight = modalView === CurrencyModalView.importToken || modalView === CurrencyModalView.importList ? 40 : 80\n let content = null\n switch (modalView) {\n case CurrencyModalView.search:\n content = (\n \n )\n break\n case CurrencyModalView.importToken:\n if (importToken) {\n content = (\n \n )\n }\n break\n case CurrencyModalView.importList:\n if (importList && listURL) {\n content = \n }\n break\n /*case CurrencyModalView.manage:\n content = (\n \n )\n break*/\n }\n return (\n \n {content}\n \n )\n}\n","import { useEffect, useState } from 'react'\n\n/**\n * Returns the last value of type T that passes a filter function\n * @param value changing value\n * @param filterFn function that determines whether a given value should be considered for the last value\n */\nexport default function useLast(\n value: T | undefined | null,\n filterFn?: (value: T | null | undefined) => boolean\n): T | null | undefined {\n const [last, setLast] = useState(filterFn && filterFn(value) ? value : undefined)\n useEffect(() => {\n setLast((last) => {\n const shouldUse: boolean = filterFn ? filterFn(value) : true\n if (shouldUse) return value\n return last\n })\n }, [filterFn, value])\n return last\n}\n","import Tooltip from 'components/Tooltip'\nimport { useState } from 'react'\nimport styled from 'styled-components/macro'\n\nconst TextWrapper = styled.span<{\n margin: boolean\n link?: boolean\n fontSize?: string\n adjustSize?: boolean\n textColor?: string\n}>`\n margin-left: ${({ margin }) => margin && '4px'};\n color: ${({ theme, link, textColor }) => (link ? theme.blue1 : textColor ?? theme.text1)};\n font-size: ${({ fontSize }) => fontSize ?? 'inherit'};\n\n @media screen and (max-width: 600px) {\n font-size: ${({ adjustSize }) => adjustSize && '12px'};\n }\n`\n\nconst HoverInlineText = ({\n text,\n maxCharacters = 20,\n margin = false,\n adjustSize = false,\n fontSize,\n textColor,\n link,\n ...rest\n}: {\n text?: string\n maxCharacters?: number\n margin?: boolean\n adjustSize?: boolean\n fontSize?: string\n textColor?: string\n link?: boolean\n}) => {\n const [showHover, setShowHover] = useState(false)\n\n if (!text) {\n return \n }\n\n if (text.length > maxCharacters) {\n return (\n \n setShowHover(true)}\n onMouseLeave={() => setShowHover(false)}\n margin={margin}\n adjustSize={adjustSize}\n textColor={textColor}\n link={link}\n fontSize={fontSize}\n {...rest}\n >\n {' ' + text.slice(0, maxCharacters - 1) + '...'}\n \n \n )\n }\n\n return (\n \n {text}\n \n )\n}\n\nexport default HoverInlineText\n","// @ts-nocheck\nimport { Trade } from '@uniswap/router-sdk'\nimport { Currency, CurrencyAmount, Fraction, Percent, TradeType } from '@uniswap/sdk-core'\nimport { Pair } from 'lib/utils/pair'\nimport { FeeAmount } from '@uniswap/v3-sdk'\nimport JSBI from 'jsbi'\n\nimport {\n ALLOWED_PRICE_IMPACT_HIGH,\n ALLOWED_PRICE_IMPACT_LOW,\n ALLOWED_PRICE_IMPACT_MEDIUM,\n BLOCKED_PRICE_IMPACT_NON_EXPERT,\n ONE_HUNDRED_PERCENT,\n ZERO_PERCENT,\n} from '../constants/misc'\n\nconst THIRTY_BIPS_FEE = new Percent(JSBI.BigInt(30), JSBI.BigInt(10000))\nconst INPUT_FRACTION_AFTER_FEE = ONE_HUNDRED_PERCENT.subtract(THIRTY_BIPS_FEE)\n\nexport function getPriceImpactWarning(priceImpact?: Percent): 'warning' | 'error' | undefined {\n if (priceImpact?.greaterThan(ALLOWED_PRICE_IMPACT_HIGH)) return 'error'\n if (priceImpact?.greaterThan(ALLOWED_PRICE_IMPACT_MEDIUM)) return 'warning'\n return\n}\n\n// computes realized lp fee as a percent\nexport function computeRealizedLPFeePercent(trade: Trade): Percent {\n let percent: Percent\n\n // Since routes are either all v2 or all v3 right now, calculate separately\n if (trade.swaps[0].route.pools instanceof Pair) {\n // for each hop in our trade, take away the x*y=k price impact from 0.3% fees\n // e.g. for 3 tokens/2 hops: 1 - ((1 - .03) * (1-.03))\n percent = ONE_HUNDRED_PERCENT.subtract(\n trade.swaps.reduce(\n (currentFee: Percent): Percent => currentFee.multiply(INPUT_FRACTION_AFTER_FEE),\n ONE_HUNDRED_PERCENT\n )\n )\n } else {\n percent = ZERO_PERCENT\n for (const swap of trade.swaps) {\n const { numerator, denominator } = swap.inputAmount.divide(trade.inputAmount)\n const overallPercent = new Percent(numerator, denominator)\n\n const routeRealizedLPFeePercent = overallPercent.multiply(\n ONE_HUNDRED_PERCENT.subtract(\n swap.route.pools.reduce((currentFee: Percent, pool): Percent => {\n const fee =\n pool instanceof Pair\n ? // not currently possible given protocol check above, but not fatal\n FeeAmount.MEDIUM\n : pool.fee\n return currentFee.multiply(ONE_HUNDRED_PERCENT.subtract(new Fraction(fee, 1_000_000)))\n }, ONE_HUNDRED_PERCENT)\n )\n )\n\n percent = percent.add(routeRealizedLPFeePercent)\n }\n }\n\n return new Percent(percent.numerator, percent.denominator)\n}\n\n// computes price breakdown for the trade\nexport function computeRealizedLPFeeAmount(\n trade?: Trade | null\n): CurrencyAmount | undefined {\n if (trade) {\n const realizedLPFee = computeRealizedLPFeePercent(trade)\n\n // the amount of the input that accrues to LPs\n return CurrencyAmount.fromRawAmount(trade.inputAmount.currency, trade.inputAmount.multiply(realizedLPFee).quotient)\n }\n\n return undefined\n}\n\nconst IMPACT_TIERS = [\n BLOCKED_PRICE_IMPACT_NON_EXPERT,\n ALLOWED_PRICE_IMPACT_HIGH,\n ALLOWED_PRICE_IMPACT_MEDIUM,\n ALLOWED_PRICE_IMPACT_LOW,\n]\n\ntype WarningSeverity = 0 | 1 | 2 | 3 | 4\nexport function warningSeverity(priceImpact: Percent | undefined): WarningSeverity {\n if (!priceImpact) return 4\n let impact: WarningSeverity = IMPACT_TIERS.length as WarningSeverity\n for (const impactLevel of IMPACT_TIERS) {\n if (impactLevel.lessThan(priceImpact)) return impact\n impact--\n }\n return 0\n}\n","import { Currency, CurrencyAmount, Percent } from '@uniswap/sdk-core'\nimport HoverInlineText from 'components/HoverInlineText'\nimport { useMemo } from 'react'\n\nimport useTheme from '../../hooks/useTheme'\nimport { ThemedText } from '../../theme'\nimport { warningSeverity } from '../../utils/prices'\nimport { MouseoverTooltip } from '../Tooltip'\n\nexport function FiatValue({\n fiatValue,\n priceImpact,\n}: {\n fiatValue: CurrencyAmount | null | undefined\n priceImpact?: Percent\n}) {\n const theme = useTheme()\n const priceImpactColor = useMemo(() => {\n if (!priceImpact) return undefined\n if (priceImpact.lessThan('0')) return theme.green1\n const severity = warningSeverity(priceImpact)\n if (severity < 1) return theme.text3\n if (severity < 3) return theme.yellow1\n return theme.red1\n }, [priceImpact, theme.green1, theme.red1, theme.text3, theme.yellow1])\n\n return (\n \n {fiatValue ? (\n <>\n $\n \n \n ) : (\n ''\n )}\n {priceImpact ? (\n \n {' '}\n \n ({priceImpact.multiply(-1).toSignificant(3)}%)\n \n \n ) : null}\n \n )\n}\n","// @ts-nocheck\nimport { Currency, CurrencyAmount, Percent, Token } from '@uniswap/sdk-core'\nimport { Pair } from 'lib/utils/pair'\nimport { AutoColumn } from 'components/Column'\nimport { LoadingOpacityContainer, loadingOpacityMixin } from 'components/Loader/styled'\nimport useActiveWeb3React from 'hooks/useActiveWeb3React'\nimport { darken } from 'polished'\nimport { ReactNode, useCallback, useState } from 'react'\nimport { Lock } from 'react-feather'\nimport styled from 'styled-components/macro'\nimport { formatCurrencyAmount } from 'utils/formatCurrencyAmount'\n\nimport { ReactComponent as DropDown } from '../../assets/images/dropdown.svg'\nimport useTheme from '../../hooks/useTheme'\nimport { useCurrencyBalance } from '../../state/wallet/hooks'\nimport { ThemedText } from '../../theme'\nimport { ButtonGray } from '../Button'\nimport CurrencyLogo from '../CurrencyLogo'\nimport DoubleCurrencyLogo from '../DoubleLogo'\nimport { Input as NumericalInput } from '../NumericalInput'\nimport { RowBetween, RowFixed } from '../Row'\nimport CurrencySearchModal from '../SearchModal/CurrencySearchModal'\nimport { FiatValue } from './FiatValue'\nimport { ASSET_VAULT_ADDRESSES } from '../../constants/addresses'\n\nconst InputPanel = styled.div<{ hideInput?: boolean }>`\n ${({ theme }) => theme.flexColumnNoWrap}\n width: 100%;\n position: relative;\n border:none;\n border-radius: ${({ hideInput }) => (hideInput ? '16px' : '20px')};\n background-color: ${({ theme, hideInput }) => (hideInput ? 'transparent' : 'transparent')};\n z-index: 1;\n width: ${({ hideInput }) => (hideInput ? '100%' : 'initial')};\n transition: height 1s ease;\n will-change: height;\n \n`\n\nconst FixedContainer = styled.div`\n width: 100%;\n height: 100%;\n position: absolute;\n border-radius: 20px;\n background-color: ${({ theme }) => theme.bg2};\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 2;\n`\n\nconst Container = styled.div<{ hideInput: boolean }>`\n border-radius: ${({ hideInput }) => (hideInput ? '16px' : '20px')};\n background-color: transparent;\n width: ${({ hideInput }) => (hideInput ? '100%' : 'initial')};\n :focus,\n :hover {\n }\n`\n\nconst CurrencySelect = styled(ButtonGray)<{ visible: boolean; selected: boolean; hideInput?: boolean }>`\n align-items: center;\n background-color: ${({ selected, theme }) => (selected ? theme.bg2 : theme.primary1)};\n box-shadow: ${({ selected }) => (selected ? 'none' : '0px 6px 10px rgba(0, 0, 0, 0.075)')};\n box-shadow: 0px 6px 10px rgba(0, 0, 0, 0.075);\n color: ${({ selected, theme }) => (selected ? theme.text1 : theme.white)};\n cursor: pointer;\n border-radius: 100px;\n outline: none;\n user-select: none;\n border: none;\n font-size: 24px;\n font-weight: 600;\n height: ${({ hideInput }) => (hideInput ? '2.8rem' : '2.4rem')};\n width: ${({ hideInput }) => (hideInput ? '100%' : 'initial')};\n padding: 0;\n justify-content: space-between;\n margin-left: ${({ hideInput }) => (hideInput ? '0' : '12px')};\n :focus,\n :hover {\n background-color: ${({ selected, theme }) => (selected ? theme.bg3 : darken(0.05, theme.primary1))};\n }\n visibility: ${({ visible }) => (visible ? 'visible' : 'hidden')};\n`\n\nconst InputRow = styled.div<{ selected: boolean }>`\n ${({ theme }) => theme.flexRowNoWrap}\n align-items: center;\n justify-content: space-between;\n padding: ${({ selected }) => (selected ? ' 1rem 1rem 0.75rem 1rem' : '1rem 1rem 1rem 1rem')};\n padding:0px;\n padding-left:0px;\n padding-top:0px;\n`\n\nconst LabelRow = styled.div`\n ${({ theme }) => theme.flexRowNoWrap}\n align-items: center;\n color: ${({ theme }) => theme.text1};\n font-size: 0.75rem;\n line-height: 1rem;\n padding: 0 1rem 1rem;\n padding-left:0px;\n span:hover {\n cursor: pointer;\n color: ${({ theme }) => darken(0.2, theme.text2)};\n }\n`\n\nconst FiatRow = styled(LabelRow)`\n justify-content: flex-end;\n`\n\nconst Aligner = styled.span`\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 160px;\n height: 40px;\n border-radius: 15px;\n color:white;\n padding:8px;\n`\n\nconst StyledDropDown = styled(DropDown)<{ selected: boolean }>`\n margin: 0 0.25rem 0 0.35rem;\n height: 35%;\n\n path {\n stroke: ${({ selected, theme }) => (selected ? theme.text1 : theme.white)};\n stroke-width: 1.5px;\n }\n`\n\nconst StyledTokenName = styled.span<{ active?: boolean }>`\n ${({ active }) => (active ? ' margin: 0 0.25rem 0 0.25rem;' : ' margin: 0 0.25rem 0 0.25rem;')}\n font-size: ${({ active }) => (active ? '16px' : '16px')};\n`\n\nconst StyledNumericalInput = styled(NumericalInput)<{ $loading: boolean, disabled: boolean }>`\n ${loadingOpacityMixin};\n opacity: ${({ disabled }) => (!disabled ? 1 : 0.45)};\n text-align: left;\n`\n\ninterface CurrencyInputPanelAssetProps {\n value: string\n onUserInput: (value: string) => void\n onMax?: () => void\n showMaxButton: boolean\n label?: ReactNode\n onCurrencySelect?: (currency: Currency) => void\n currency?: Currency | null\n hideBalance?: boolean\n pair?: Pair | null\n hideInput?: boolean\n otherCurrency?: Currency | null\n fiatValue?: CurrencyAmount | null\n priceImpact?: Percent\n id: string\n showCommonBases?: boolean\n showCurrencyAmount?: boolean\n disableNonToken?: boolean\n renderBalance?: (amount: CurrencyAmount) => ReactNode\n locked?: boolean\n loading?: boolean\n disabled?: boolean\n approved?: boolean\n maxBalance?:number\n}\n\nexport default function CurrencyInputPanelAsset({\n value,\n onUserInput,\n onMax,\n showMaxButton,\n onCurrencySelect,\n currency,\n otherCurrency,\n id,\n showCommonBases,\n showCurrencyAmount,\n disableNonToken,\n renderBalance,\n fiatValue,\n priceImpact,\n hideBalance = false,\n pair = null, // used for double token logo\n hideInput = false,\n locked = false,\n loading = false,\n disabled = false,\n approved,\n maxBalance = -1,\n ...rest\n}: CurrencyInputPanelAssetProps) {\n const [modalOpen, setModalOpen] = useState(false)\n const { account, chainId } = useActiveWeb3React()\n const selectedCurrencyBalance = useCurrencyBalance(ASSET_VAULT_ADDRESSES[chainId], currency ?? undefined)\n const theme = useTheme()\n\n const handleDismissSearch = useCallback(() => {\n setModalOpen(false)\n }, [setModalOpen])\n\n return (\n \n {locked && (\n \n \n \n \n <>The market price is outside your specified price range. Single-asset deposit only.\n \n \n \n )}\n \n \n {!hideInput && (\n \n )}\n\n {\n if(approved || disabled){\n return\n }\n if (onCurrencySelect) {\n setModalOpen(true)\n }\n }}\n >\n \n \n {pair ? (\n \n \n \n ) : currency ? (\n \n ) : null}\n {pair ? (\n \n {pair?.token0.symbol}:{pair?.token1.symbol}\n \n ) : (\n \n {(currency && currency.symbol && currency.symbol.length > 20\n ? currency.symbol.slice(0, 4) +\n '...' +\n currency.symbol.slice(currency.symbol.length - 5, currency.symbol.length)\n : currency?.symbol) || <>Select a Token}\n \n )}\n \n {onCurrencySelect && }\n \n \n \n {!hideInput && !hideBalance && (\n \n \n \n \n \n {account ? (\n \n {\n if (disabled) {\n return\n }\n onMax()\n }}\n color={theme.text3}\n fontWeight={600}\n fontSize={14}\n style={{ display: 'inline', cursor: disabled ? 'auto' : 'pointer', opacity: (disabled ? \"0.45\" : 1) }}\n >\n {!hideBalance && currency && selectedCurrencyBalance\n ? (\n renderBalance ? (\n renderBalance(selectedCurrencyBalance)\n ) : (\n <>Available: {formatCurrencyAmount(selectedCurrencyBalance, 18, null, 6)}\n )\n )\n :\n <>Available: 0\n }\n \n {/*showMaxButton && selectedCurrencyBalance ? (\n \n <>MAX\n \n ) : null*/}\n \n ) : (\n \n \n <>Available: 0\n \n \n )}\n \n \n )}\n \n {onCurrencySelect && (\n \n )}\n \n )\n}\n","import styled from \"styled-components/macro\";\n\nexport const Wrapper = styled.div`\n position: relative;\n background: linear-gradient(73.6deg, rgb(133, 255, 196) 2.11%, rgb(92, 198, 255) 42.39%, rgb(188, 133, 255) 85.72%);\n padding:0px;\n border-radius: 48px;\n \n width: -webkit-fit-content;\n width: -moz-fit-content;\n width: fit-content;\n margin-right:4px;\n\n border: none;\n \n ${({ theme }) => theme.mediaWidth.upToSmall`\n \n `};\n`;\n\nexport const ActivatorButton = styled.button`\n width: 184px;\n height: 40px;\n background:transparent;\n align-items: center;\n text-align: left;\n border-radius: 100px;\n outline: none;\n color: white;\n text-decoration: none;\n display: flex;\n justify-content: center;\n flex-wrap: nowrap;\n align-items: center;\n cursor: pointer;\n position: relative;\n z-index: 1;\n border:none;\n font-weight:600;\n font-size: 16px;\n padding: 8px;\n\n ${({ theme }) => theme.mediaWidth.upToSmall`\n max-width: 500px;\n width:100%;\n `};\n &:disabled {\n opacity: 50%;\n cursor: auto;\n pointer-events: none;\n }\n\n will-change: transform;\n transition: transform 450ms ease;\n transform: perspective(1px) translateZ(0);\n\n > * {\n user-select: none;\n }\n\n > a {\n text-decoration: none;\n }\n`;\n\nexport const DropdownList = styled.ul<{ active: boolean }>`\n padding:0px;\n color: white;\n display: ${props => (props.active ? \"block\" : \"none\")};\n margin: 0;\n margin-top:10px;\n border-radius:8px;\n width:100%;\n padding: 6px 0;\n position: absolute;\n border:1px;\n border-color:#888d9b;\n z-index: 99;\n li {\n list-style: none;\n margin: 0;\n width:100%;\n button{\n background:transparent;\n color:white;\n border:none;\n height: 40px;\n font-size: 20px;\n font-weight:600;\n :hover {\n color: white;\n cursor: pointer;\n text-decoration: none;\n }\n }\n }\n`;\n","// @ts-nocheck\nimport React, { ReactDOM } from \"react\";\nimport styled from \"styled-components/macro\";\nimport { MEDIA_WIDTHS } from \"theme\";\n\nimport { Token } from \"@uniswap/sdk-core\";\n\nimport { ReactComponent as DropDown } from \"../../assets/images/dropdown.svg\";\nimport CurrencyLogo from \"../CurrencyLogo\";\nimport { ActivatorButton, DropdownList, Wrapper } from \"./styles\";\n\nconst StyledDropDown = styled(DropDown)<{ selected: boolean }>`\n margin: 0 0.25rem 0 0.35rem;\n height: 35%;\n\n path {\n stroke: ${({ selected, theme }) => (selected ? theme.white : theme.white)};\n stroke-width: 1.5px;\n }\n`\n\nconst NetworkLabel = styled.div`\n flex: 1 1 auto;\n color: white;\n overflow: hidden;\n height: 24px;\n font-size: 16px;\n`\nconst SelectorLabel = styled(NetworkLabel)`\n font-size: 16px;\n font-weight: 600;\n line-height: 24px;\n color: white;\n @media screen and (min-width: ${MEDIA_WIDTHS.upToSmall}px) {\n display: block;\n margin-right: 8px;\n }\n`\nconst FlyoutRow = styled.button<{ active: boolean }>`\n align-items: center;\n\n background-color: ${({ active, theme }) => (active ? 'rgb(47 42 60)' : 'transparent')};\n border-radius: 8px;\n cursor: pointer;\n display: flex;\n font-weight: 600;\n justify-content: space-between;\n padding: 6px 8px;\n text-align: left;\n width: 100%;\n border: none;\n`\nconst ActiveRowWrapper = styled.div`\n\n background-color: rgb(60, 60, 60);\n\n border-radius: 8px;\n cursor: pointer;\n padding: 0px;\n width: 100%;\n`\nconst FlyoutMenu = styled.div`\n background: linear-gradient(73.6deg, #85FFC4 2.11%, #5CC6FF 42.39%, #BC85FF 85.72%);\n border: none;\n padding: 1px;\n position: absolute;\n border-radius: 20px;\n min-width: 160px;\n z-index: 99;\n @media screen and (min-width: ${MEDIA_WIDTHS.upToSmall}px) {\n\n }\n`\nconst FlyoutMenuContents = styled.div`\n align-items: flex-start;\n background-color: rgb(31 30 34);\n box-shadow: 0px 0px 1px rgba(0, 0, 0, 0.01), 0px 4px 8px rgba(0, 0, 0, 0.04), 0px 16px 24px rgba(0, 0, 0, 0.04),\n 0px 24px 32px rgba(0, 0, 0, 0.01);\n border-radius: 20px;\n display: flex;\n flex-direction: column;\n font-size: 16px;\n overflow: auto;\n padding: 12px;\n\n & > *:not(:last-child) {\n margin-bottom: 12px;\n }\n`\n\ninterface IProps {\n onUserClick: (currency: Token) => void\n selected?: Token;\n children: ReactDOM,\n items: Token[];\n disabled: boolean;\n}\n\nexport default function CurrencyDropdown({\n onUserClick,\n selected,\n items,\n children,\n disabled = false\n}: IProps) {\n const activatorRef = React.useRef(null)\n const listRef = React.useRef(null)\n const [isOpen, setIsOpen] = React.useState(false)\n const [activeIndex, setActiveIndex] = React.useState(-1)\n const handleClick = () => {\n if (disabled) return\n setIsOpen(!isOpen)\n }\n React.useEffect(() => {\n if (isOpen) {\n document.addEventListener('mouseup', handleClickOutside)\n } else {\n document.removeEventListener('mouseup', handleClickOutside)\n }\n return () => {\n document.removeEventListener('mouseup', handleClickOutside)\n }\n }, [isOpen])\n const keyHandler = (event: React.KeyboardEvent) => {\n if (isOpen) {\n switch (event.key) {\n case 'Escape':\n setIsOpen(false)\n break\n case 'ArrowDown':\n const nodeList = listRef.current!.querySelectorAll('a')\n if (activeIndex === items.length - 1) return\n nodeList[activeIndex + 1].focus()\n break\n case 'ArrowUp':\n const nodeList2 = listRef.current!.querySelectorAll('a')\n if (activeIndex === 0) return\n nodeList2[activeIndex - 1].focus()\n break\n }\n }\n }\n const handleClickOutside = (event: any) => {\n if (\n listRef.current!.contains(event.target) ||\n activatorRef.current!.contains(event.target)\n ) {\n return\n }\n setIsOpen(false)\n }\n const userClick = (currency: Token) => {\n onUserClick(currency)\n setIsOpen(false)\n }\n\n function Row({\n active,\n currency,\n }: {\n active: boolean\n currency: Token\n }) {\n const rowContent = (\n userClick(currency)}>\n \n {currency?.symbol}\n \n )\n if (active) {\n return (\n \n {rowContent}\n \n )\n }\n return rowContent\n }\n\n React.useEffect(() => {\n if (!isOpen) {\n setActiveIndex(-1)\n }\n }, [isOpen])\n\n\n return (\n \n \n setActiveIndex(-1)}\n style={{ width: \"160px\", textAlign: \"left\" }}\n >\n {selected === null ?\n {\"Select a Token\"}\n : \n <>\n {children}\n {(selected?.symbol)}\n \n } \n \n \n \n \n\n \n \n \n {\n items.length > 0 &&\n items?.map((item) => {\n return (\n \n )\n })\n }\n \n \n \n \n )\n};\n","// @ts-nocheck\nimport {\n LoadingOpacityContainer,\n loadingOpacityMixin\n} from \"components/Loader/styled\";\nimport useActiveWeb3React from \"hooks/useActiveWeb3React\";\nimport { Pair } from \"lib/utils/pair\";\nimport { darken } from \"polished\";\nimport { ReactNode, useEffect, useState } from \"react\";\nimport styled from \"styled-components/macro\";\nimport { formatCurrencyAmount } from \"utils/formatCurrencyAmount\";\n\nimport { Currency, CurrencyAmount, Percent, Token } from \"@uniswap/sdk-core\";\n\nimport { useSupportedTokens } from \"../../hooks/Tokens\";\nimport useTheme from \"../../hooks/useTheme\";\nimport { useCurrencyBalance } from \"../../state/wallet/hooks\";\nimport { ThemedText } from \"../../theme\";\nimport CurrencyLogo from \"../CurrencyLogo\";\nimport CurrencyDropdown from \"../Dropdown/CurrencyDropdown\";\nimport { Input as NumericalInput } from \"../NumericalInput\";\nimport { RowBetween, RowFixed } from \"../Row\";\nimport { FiatValue } from \"./FiatValue\";\n\nconst InputPanel = styled.div<{ hideInput?: boolean }>`\n ${({ theme }) => theme.flexColumnNoWrap}\n width: 100%;\n position: relative;\n border: none;\n border-radius: ${({ hideInput }) => (hideInput ? '16px' : '20px')};\n background-color: ${({ theme, hideInput }) => (hideInput ? 'transparent' : 'transparent')};\n z-index: 1;\n width: ${({ hideInput }) => (hideInput ? '100%' : 'initial')};\n transition: height 1s ease;\n will-change: height;\n\n`\n\nconst Container = styled.div<{ hideInput: boolean }>`\n border-radius: ${({ hideInput }) => (hideInput ? '16px' : '20px')};\n background-color: transparent;\n width: ${({ hideInput }) => (hideInput ? '100%' : 'initial')};\n\n :focus,\n :hover {\n }\n`\n\nconst InputRow = styled.div<{ selected: boolean }>`\n ${({ theme }) => theme.flexRowNoWrap}\n align-items: center;\n justify-content: space-between;\n padding: ${({ selected }) => (selected ? ' 1rem 1rem 0.75rem 1rem' : '1rem 1rem 1rem 1rem')};\n padding: 0px;\n padding-left: 0px;\n padding-top: 0px;\n`\n\nconst LabelRow = styled.div`\n ${({ theme }) => theme.flexRowNoWrap}\n align-items: center;\n color: ${({ theme }) => theme.text1};\n font-size: 0.75rem;\n line-height: 1rem;\n padding: 0 1rem 1rem;\n padding-left: 0px;\n\n span:hover {\n cursor: pointer;\n color: ${({ theme }) => darken(0.2, theme.text2)};\n }\n`\n\nconst FiatRow = styled(LabelRow)`\n justify-content: flex-end;\n`\n\nconst StyledNumericalInput = styled(NumericalInput)<{ $loading: boolean, disabled: boolean }>`\n ${loadingOpacityMixin};\n opacity: ${({ disabled }) => (!disabled ? 1 : 0.45)};\n text-align: left;\n`\n\ninterface CurrencyInputPanelLimitedProps {\n value: string\n onUserInput: (value: string) => void\n onMax?: () => void\n showMaxButton: boolean\n label?: ReactNode\n onCurrencySelect?: (currency: Currency) => void\n currency?: Currency | null\n hideBalance?: boolean\n pair?: Pair | null\n hideInput?: boolean\n otherCurrency?: Currency | null\n fiatValue?: CurrencyAmount | null\n priceImpact?: Percent\n id: string\n showCommonBases?: boolean\n showCurrencyAmount?: boolean\n disableNonToken?: boolean\n renderBalance?: (amount: CurrencyAmount) => ReactNode\n locked?: boolean\n loading?: boolean\n disabled?: boolean\n approved?: boolean\n maxBalance?: number\n}\n\nexport default function CurrencyInputPanelLimited({\n value,\n onUserInput,\n onMax,\n showMaxButton,\n onCurrencySelect,\n currency,\n otherCurrency,\n id,\n showCommonBases,\n showCurrencyAmount,\n disableNonToken,\n renderBalance,\n fiatValue,\n priceImpact,\n hideBalance = false,\n pair = null, // used for double token logo\n hideInput = false,\n locked = false,\n loading = false,\n disabled = false,\n approved,\n maxBalance = -1,\n ...rest\n}: CurrencyInputPanelLimitedProps) {\n const [selectedCurrency, setSelectedCurrency] = useState(null)\n const { account } = useActiveWeb3React()\n const selectedCurrencyBalance = useCurrencyBalance(account ?? undefined, selectedCurrency ?? undefined)\n const theme = useTheme()\n const allowedCurrencies = useSupportedTokens();\n\n useEffect(() => {\n // console.log(currency)\n if (currency) {\n setSelectedCurrency(currency)\n }\n }, [currency])\n\n return (\n \n \n \n {!hideInput && (\n \n )}\n\n \n { selectedCurrency == null ? \n <>\n :\n <>\n \n \n }\n \n \n {!hideInput && !hideBalance && (\n \n \n \n \n \n {account ? (\n \n {\n if (disabled) {\n return\n }\n onMax()\n }}\n color={theme.text3}\n fontWeight={600}\n fontSize={14}\n style={{ display: 'inline', cursor: disabled ? 'auto' : 'pointer', opacity: (disabled ? \"0.45\" : 1) }}\n >\n {!hideBalance && currency && selectedCurrencyBalance\n ? (\n renderBalance ? (\n renderBalance(selectedCurrencyBalance)\n ) : (\n <>Balance: {formatCurrencyAmount(selectedCurrencyBalance, 18, null, 6)}\n )\n )\n :\n <>Balance: 0\n }\n \n \n ) : (\n \n \n <>Balance: 0\n \n \n )}\n \n \n )}\n \n \n )\n}\n","import { readableColor } from 'polished'\nimport { PropsWithChildren } from 'react'\nimport styled, { DefaultTheme } from 'styled-components/macro'\nimport { Color } from 'theme/styled'\n\nexport enum BadgeVariant {\n DEFAULT = 'DEFAULT',\n NEGATIVE = 'NEGATIVE',\n POSITIVE = 'POSITIVE',\n PRIMARY = 'PRIMARY',\n WARNING = 'WARNING',\n\n WARNING_OUTLINE = 'WARNING_OUTLINE',\n}\n\ninterface BadgeProps {\n variant?: BadgeVariant\n}\n\nfunction pickBackgroundColor(variant: BadgeVariant | undefined, theme: DefaultTheme): Color {\n switch (variant) {\n case BadgeVariant.NEGATIVE:\n return theme.error\n case BadgeVariant.POSITIVE:\n return theme.success\n case BadgeVariant.PRIMARY:\n return theme.primary1\n case BadgeVariant.WARNING:\n return theme.warning\n case BadgeVariant.WARNING_OUTLINE:\n return 'transparent'\n default:\n return theme.bg2\n }\n}\n\nfunction pickBorder(variant: BadgeVariant | undefined, theme: DefaultTheme): string {\n switch (variant) {\n case BadgeVariant.WARNING_OUTLINE:\n return `1px solid ${theme.warning}`\n default:\n return 'unset'\n }\n}\n\nfunction pickFontColor(variant: BadgeVariant | undefined, theme: DefaultTheme): string {\n switch (variant) {\n case BadgeVariant.NEGATIVE:\n return readableColor(theme.error)\n case BadgeVariant.POSITIVE:\n return readableColor(theme.success)\n case BadgeVariant.WARNING:\n return readableColor(theme.warning)\n case BadgeVariant.WARNING_OUTLINE:\n return theme.warning\n default:\n return readableColor(theme.bg2)\n }\n}\n\nconst Badge = styled.div>`\n align-items: center;\n background-color: ${({ theme, variant }) => pickBackgroundColor(variant, theme)};\n border: ${({ theme, variant }) => pickBorder(variant, theme)};\n border-radius: 0.5rem;\n color: ${({ theme, variant }) => pickFontColor(variant, theme)};\n display: inline-flex;\n padding: 4px 6px;\n justify-content: center;\n font-weight: 600;\n`\n\nexport default Badge\n","export default __webpack_public_path__ + \"static/media/blue-loader.249140da.svg\";","import useTheme from 'hooks/useTheme'\nimport styled, { keyframes } from 'styled-components/macro'\n\nconst Wrapper = styled.div`\n height: 90px;\n width: 90px;\n`\n\nconst dash = keyframes`\n 0% {\n stroke-dashoffset: 1000;\n }\n 100% {\n stroke-dashoffset: 0;\n }\n`\n\nconst dashCheck = keyframes`\n 0% {\n stroke-dashoffset: -100;\n }\n 100% {\n stroke-dashoffset: 900;\n }\n`\n\nconst Circle = styled.circle`\n stroke-dasharray: 1000;\n stroke-dashoffset: 0;\n -webkit-animation: ${dash} 0.9s ease-in-out;\n animation: ${dash} 0.9s ease-in-out;\n`\n\nconst PolyLine = styled.polyline`\n stroke-dasharray: 1000;\n stroke-dashoffset: 0;\n stroke-dashoffset: -100;\n -webkit-animation: ${dashCheck} 0.9s 0.35s ease-in-out forwards;\n animation: ${dashCheck} 0.9s 0.35s ease-in-out forwards;\n`\n\nexport default function AnimatedConfirmation() {\n const theme = useTheme()\n\n return (\n \n \n \n \n \n \n )\n}\n","// @ts-nocheck\nimport Badge from \"components/Badge\";\nimport { CHAIN_INFO } from \"constants/chainInfo\";\nimport { L2_CHAIN_IDS, SupportedL2ChainId } from \"constants/chains\";\nimport useActiveWeb3React from \"hooks/useActiveWeb3React\";\nimport useAddTokenToMetamask from \"hooks/useAddTokenToMetamask\";\nimport { ReactNode, useContext } from \"react\";\nimport {\n AlertCircle,\n AlertTriangle,\n CheckCircle\n} from \"react-feather\";\nimport { Text } from \"rebass\";\nimport {\n useIsTransactionConfirmed,\n useTransaction\n} from \"state/transactions/hooks\";\nimport styled, { ThemeContext } from \"styled-components/macro\";\n\nimport { Currency } from \"@uniswap/sdk-core\";\n\nimport Circle from \"../../assets/images/blue-loader.svg\";\nimport MetaMaskLogo from \"../../assets/images/metamask.png\";\nimport { CloseIcon, CustomLightSpinner, ExternalLink } from \"../../theme\";\nimport { ExplorerDataType, getExplorerLink } from \"../../utils/getExplorerLink\";\nimport { TransactionSummary } from \"../AccountDetails/TransactionSummary\";\nimport { ButtonLight, ButtonPrimary } from \"../Button\";\nimport { AutoColumn, ColumnCenter } from \"../Column\";\nimport Modal from \"../Modal\";\nimport { RowBetween, RowFixed } from \"../Row\";\nimport AnimatedConfirmation from \"./AnimatedConfirmation\";\n\nconst WrapperBack = styled.div`\nwidth: 50vw;\nheight: 512px;\nmax-width:514px;\nposition: absolute;\n/* top: 50%; */\n/* left: 50%; */\n/* -webkit-transform: translate(-50%,-50%); */\n-ms-transform: translate(-50%,-50%);\ntransform: translateY(-50%);\nborder-radius: 40px;\npadding: 1px;\nbackground: linear-gradient(73.6deg, #85FFC4 2.11%, #5CC6FF 42.39%, #BC85FF 85.72%);\n//-webkit-mask: linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);\n//-webkit-mask-composite: xor;\n${({ theme }) => theme.mediaWidth.upToMedium`\n width: 65vw;\n margin: 0;\n `}\n ${({ theme, mobile }) => theme.mediaWidth.upToSmall`\n width: 90vw;\n \n `}\n`\n\nconst PreviewModal = styled.div`\n background: linear-gradient(73.6deg, #85FFC4 2.11%, #5CC6FF 42.39%, #BC85FF 85.72%);\n border-radius: 40px;\n padding: 1px;\n`\n\nconst Wrapper = styled.div<{ preview?: boolean }>`\n width: 100%;\n height: ${({ preview }) => (preview ? '100%' : '510px')};\n border-radius: 40px;\n padding: 36px;\n background: #131118;\n`\n\nconst Section = styled(AutoColumn)<{ inline?: boolean }>`\n padding: ${({ inline }) => (inline ? '0' : '0')};\n`\n\nconst BottomSection = styled(Section)`\n border-bottom-left-radius: 20px;\n border-bottom-right-radius: 20px;\n`\n\nconst ConfirmedIcon = styled(ColumnCenter)<{ inline?: boolean }>`\n padding: ${({ inline }) => (inline ? '20px 0' : '32px 0;')};\n padding:0px;\n`\n\nconst StyledLogo = styled.img`\n height: 16px;\n width: 16px;\n margin-left: 6px;\n`\n\nfunction ConfirmationPendingContent({\n onDismiss,\n pendingText,\n inline,\n}: {\n onDismiss: () => void\n pendingText: ReactNode\n inline?: boolean // not in modal\n}) {\n return (\n \n \n \n {!inline && (\n \n
\n \n \n )}\n \n \n \n \n \n Waiting For Confirmation\n \n \n {pendingText}\n \n \n Confirm this transaction in your wallet\n \n \n \n \n \n )\n}\nfunction TransactionSubmittedContent({\n onDismiss,\n chainId,\n hash,\n currencyToAdd,\n inline,\n}: {\n onDismiss: () => void\n hash: string | undefined\n chainId: number\n currencyToAdd?: Currency | undefined\n inline?: boolean // not in modal\n}) {\n const theme = useContext(ThemeContext)\n\n const { library } = useActiveWeb3React()\n\n const { addToken, success } = useAddTokenToMetamask(currencyToAdd)\n\n return (\n \n <>\n \n\n \n
\n {!inline && (\n \n
\n \n \n )}\n
\n \n {\"transaction\"}\n \n \n \n Transaction Submitted\n \n \n \n \n {currencyToAdd && library?.provider?.isMetaMask && (\n \n {!success ? (\n \n \n Add {currencyToAdd.symbol} to Metamask \n \n \n ) : (\n \n Added {currencyToAdd.symbol} \n \n \n )}\n \n )}\n {/*\n \n {inline ? 'Return' : 'Close'}\n \n */}\n \n
\n {chainId && hash && (\n \n \n

View on Block Explorer

\n
\n
\n )}\n
\n
\n
\n \n \n\n \n )\n}\n\nexport function ConfirmationModalContent({\n title,\n bottomContent,\n onDismiss,\n topContent,\n preview,\n className,\n}: {\n title: ReactNode\n onDismiss?: () => void | undefined\n topContent?: () => ReactNode | undefined\n bottomContent?: () => ReactNode | undefined\n preview?: boolean | undefined\n className? : string | undefined\n}) {\n return (\n preview ? (\n \n \n
\n \n \n {title}\n \n \n \n {topContent && topContent()}\n
\n {bottomContent && {bottomContent()}}\n
\n
\n ) :\n \n
\n \n \n {title}\n \n \n \n {topContent && topContent()}\n
\n {bottomContent && {bottomContent()}}\n
\n )\n}\n\nexport function TransactionErrorContent({ message, onDismiss }: { message: ReactNode; onDismiss: () => void }) {\n const theme = useContext(ThemeContext)\n return (\n \n
\n \n \n Error\n \n \n \n \n \n \n {message}\n \n \n
\n \n \n Dismiss\n \n \n
\n )\n}\n\nfunction L2Content({\n onDismiss,\n chainId,\n hash,\n pendingText,\n inline,\n}: {\n onDismiss: () => void\n hash: string | undefined\n chainId: number\n currencyToAdd?: Currency | undefined\n pendingText: ReactNode\n inline?: boolean // not in modal\n}) {\n const theme = useContext(ThemeContext)\n\n const transaction = useTransaction(hash)\n const confirmed = useIsTransactionConfirmed(hash)\n const transactionSuccess = transaction?.receipt?.status === 1\n\n // convert unix time difference to seconds\n const secondsToConfirm = transaction?.confirmedTime\n ? (transaction.confirmedTime - transaction.addedTime) / 1000\n : undefined\n\n const info = CHAIN_INFO[chainId as SupportedL2ChainId]\n\n return (\n \n
\n {!inline && (\n \n \n \n \n {info.label}\n \n \n \n \n )}\n \n {confirmed ? (\n transactionSuccess ? (\n // \n \n ) : (\n \n )\n ) : (\n \n )}\n \n \n \n {!hash ? (\n \"Confirm transaction in wallet\"\n ) : !confirmed ? (\n \"Transaction Submitted\"\n ) : transactionSuccess ? (\n \"Success\"\n ) : (\n \"Error\"\n )}\n \n \n {transaction ? : pendingText}\n \n {chainId && hash ? (\n \n \n View on Explorer\n \n \n ) : (\n
\n )}\n \n {!secondsToConfirm ? (\n
\n ) : (\n
\n Transaction completed in \n \n {secondsToConfirm} seconds 🎉\n \n
\n )}\n \n \n \n {inline ? Return : Close}\n \n \n \n
\n
\n )\n}\n\ninterface ConfirmationModalProps {\n isOpen: boolean\n onDismiss?: () => void | undefined\n hash?: string | undefined\n content?: () => ReactNode | undefined\n attemptingTxn?: boolean | undefined\n pendingText?: ReactNode | undefined\n currencyToAdd?: Currency | undefined\n}\n\nexport default function TransactionConfirmationModal({\n isOpen,\n onDismiss,\n attemptingTxn,\n hash,\n pendingText,\n content,\n currencyToAdd,\n}: ConfirmationModalProps) {\n const { chainId } = useActiveWeb3React()\n\n const isL2 = Boolean(chainId && L2_CHAIN_IDS.includes(chainId))\n\n if (!chainId) return null\n\n // confirmation screen\n return (\n \n {isL2 && (hash || attemptingTxn) ? (\n \n ) : attemptingTxn ? (\n \n ) : hash ? (\n \n ) : (\n content()\n )}\n \n )\n}\n","import { Currency, Token } from '@uniswap/sdk-core'\nimport useActiveWeb3React from 'hooks/useActiveWeb3React'\nimport useCurrencyLogoURIs from 'lib/hooks/useCurrencyLogoURIs'\nimport { useCallback, useState } from 'react'\n\nexport default function useAddTokenToMetamask(currencyToAdd: Currency | undefined): {\n addToken: () => void\n success: boolean | undefined\n} {\n const { library } = useActiveWeb3React()\n\n const token: Token | undefined = currencyToAdd?.wrapped\n\n const [success, setSuccess] = useState()\n const logoURL = useCurrencyLogoURIs(token)[0]\n\n const addToken = useCallback(() => {\n if (library && library?.provider?.isMetaMask && library.provider.request && token) {\n library.provider\n .request({\n method: 'wallet_watchAsset',\n params: {\n //@ts-ignore // need this for incorrect ethers provider type\n type: 'ERC20',\n options: {\n address: token.address,\n symbol: token.symbol,\n decimals: token.decimals,\n image: logoURL,\n },\n },\n })\n .then((success) => {\n setSuccess(success)\n })\n .catch(() => setSuccess(false))\n } else {\n setSuccess(false)\n }\n }, [library, logoURL, token])\n\n return { addToken, success }\n}\n","import useActiveWeb3React from 'hooks/useActiveWeb3React'\nimport { NEVER_RELOAD, useSingleCallResult } from 'lib/hooks/multicall'\nimport { useMemo } from 'react'\n\nimport { useArgentWalletDetectorContract } from './useContract'\n\nexport default function useIsArgentWallet(): boolean {\n const { account } = useActiveWeb3React()\n const argentWalletDetector = useArgentWalletDetectorContract()\n const inputs = useMemo(() => [account ?? undefined], [account])\n const call = useSingleCallResult(argentWalletDetector, 'isArgentWallet', inputs, NEVER_RELOAD)\n return Boolean(call?.result?.[0])\n}\n","import { BigNumber } from '@ethersproject/bignumber'\nimport { splitSignature } from '@ethersproject/bytes'\nimport { Trade } from '@uniswap/router-sdk'\nimport { Currency, CurrencyAmount, Percent, TradeType } from '@uniswap/sdk-core'\nimport { Trade as V2Trade } from '@uniswap/v2-sdk'\nimport { Trade as V3Trade } from '@uniswap/v3-sdk'\nimport useActiveWeb3React from 'hooks/useActiveWeb3React'\nimport JSBI from 'jsbi'\nimport { useSingleCallResult } from 'lib/hooks/multicall'\nimport { useMemo, useState } from 'react'\n\nimport { SWAP_ROUTER_ADDRESSES, V3_ROUTER_ADDRESS } from '../constants/addresses'\nimport { DAI, UNI, USDC_MAINNET } from '../constants/tokens'\nimport { useEIP2612Contract } from './useContract'\nimport useIsArgentWallet from './useIsArgentWallet'\n\nexport enum PermitType {\n AMOUNT = 1,\n ALLOWED = 2,\n}\n\n// 20 minutes to submit after signing\nconst PERMIT_VALIDITY_BUFFER = 20 * 60\n\nexport interface PermitInfo {\n type: PermitType\n name: string\n // version is optional, and if omitted, will not be included in the domain\n version?: string\n}\n\n// todo: read this information from extensions on token lists or elsewhere (permit registry?)\nconst PERMITTABLE_TOKENS: {\n [chainId: number]: {\n [checksummedTokenAddress: string]: PermitInfo\n }\n} = {\n 1: {\n [USDC_MAINNET.address]: { type: PermitType.AMOUNT, name: 'USD Coin', version: '2' },\n [DAI.address]: { type: PermitType.ALLOWED, name: 'Dai Stablecoin', version: '1' },\n [UNI[1].address]: { type: PermitType.AMOUNT, name: 'Uniswap' },\n },\n 5: {\n [UNI[5].address]: { type: PermitType.AMOUNT, name: 'Uniswap' },\n },\n 42: {\n [UNI[42].address]: { type: PermitType.AMOUNT, name: 'Uniswap' },\n },\n}\n\nexport enum UseERC20PermitState {\n // returned for any reason, e.g. it is an argent wallet, or the currency does not support it\n NOT_APPLICABLE,\n LOADING,\n NOT_SIGNED,\n SIGNED,\n}\n\ninterface BaseSignatureData {\n v: number\n r: string\n s: string\n deadline: number\n nonce: number\n owner: string\n spender: string\n chainId: number\n tokenAddress: string\n permitType: PermitType\n}\n\ninterface StandardSignatureData extends BaseSignatureData {\n amount: string\n}\n\ninterface AllowedSignatureData extends BaseSignatureData {\n allowed: true\n}\n\nexport type SignatureData = StandardSignatureData | AllowedSignatureData\n\nconst EIP712_DOMAIN_TYPE = [\n { name: 'name', type: 'string' },\n { name: 'version', type: 'string' },\n { name: 'chainId', type: 'uint256' },\n { name: 'verifyingContract', type: 'address' },\n]\n\nconst EIP712_DOMAIN_TYPE_NO_VERSION = [\n { name: 'name', type: 'string' },\n { name: 'chainId', type: 'uint256' },\n { name: 'verifyingContract', type: 'address' },\n]\n\nconst EIP2612_TYPE = [\n { name: 'owner', type: 'address' },\n { name: 'spender', type: 'address' },\n { name: 'value', type: 'uint256' },\n { name: 'nonce', type: 'uint256' },\n { name: 'deadline', type: 'uint256' },\n]\n\nconst PERMIT_ALLOWED_TYPE = [\n { name: 'holder', type: 'address' },\n { name: 'spender', type: 'address' },\n { name: 'nonce', type: 'uint256' },\n { name: 'expiry', type: 'uint256' },\n { name: 'allowed', type: 'bool' },\n]\n\nexport function useERC20Permit(\n currencyAmount: CurrencyAmount | null | undefined,\n spender: string | null | undefined,\n transactionDeadline: BigNumber | undefined,\n overridePermitInfo: PermitInfo | undefined | null\n): {\n signatureData: SignatureData | null\n state: UseERC20PermitState\n gatherPermitSignature: null | (() => Promise)\n} {\n const { account, chainId, library } = useActiveWeb3React()\n const tokenAddress = currencyAmount?.currency?.isToken ? currencyAmount.currency.address : undefined\n const eip2612Contract = useEIP2612Contract(tokenAddress)\n const isArgentWallet = useIsArgentWallet()\n const nonceInputs = useMemo(() => [account ?? undefined], [account])\n const tokenNonceState = useSingleCallResult(eip2612Contract, 'nonces', nonceInputs)\n const permitInfo =\n overridePermitInfo ?? (chainId && tokenAddress ? PERMITTABLE_TOKENS[chainId]?.[tokenAddress] : undefined)\n\n const [signatureData, setSignatureData] = useState(null)\n\n return useMemo(() => {\n if (\n isArgentWallet ||\n !currencyAmount ||\n !eip2612Contract ||\n !account ||\n !chainId ||\n !transactionDeadline ||\n !library ||\n !tokenNonceState.valid ||\n !tokenAddress ||\n !spender ||\n !permitInfo\n ) {\n return {\n state: UseERC20PermitState.NOT_APPLICABLE,\n signatureData: null,\n gatherPermitSignature: null,\n }\n }\n\n const nonceNumber = tokenNonceState.result?.[0]?.toNumber()\n if (tokenNonceState.loading || typeof nonceNumber !== 'number') {\n return {\n state: UseERC20PermitState.LOADING,\n signatureData: null,\n gatherPermitSignature: null,\n }\n }\n\n const isSignatureDataValid =\n signatureData &&\n signatureData.owner === account &&\n signatureData.deadline >= transactionDeadline.toNumber() &&\n signatureData.tokenAddress === tokenAddress &&\n signatureData.nonce === nonceNumber &&\n signatureData.spender === spender &&\n ('allowed' in signatureData || JSBI.equal(JSBI.BigInt(signatureData.amount), currencyAmount.quotient))\n\n return {\n state: isSignatureDataValid ? UseERC20PermitState.SIGNED : UseERC20PermitState.NOT_SIGNED,\n signatureData: isSignatureDataValid ? signatureData : null,\n gatherPermitSignature: async function gatherPermitSignature() {\n const allowed = permitInfo.type === PermitType.ALLOWED\n const signatureDeadline = transactionDeadline.toNumber() + PERMIT_VALIDITY_BUFFER\n const value = currencyAmount.quotient.toString()\n\n const message = allowed\n ? {\n holder: account,\n spender,\n allowed,\n nonce: nonceNumber,\n expiry: signatureDeadline,\n }\n : {\n owner: account,\n spender,\n value,\n nonce: nonceNumber,\n deadline: signatureDeadline,\n }\n const domain = permitInfo.version\n ? {\n name: permitInfo.name,\n version: permitInfo.version,\n verifyingContract: tokenAddress,\n chainId,\n }\n : {\n name: permitInfo.name,\n verifyingContract: tokenAddress,\n chainId,\n }\n const data = JSON.stringify({\n types: {\n EIP712Domain: permitInfo.version ? EIP712_DOMAIN_TYPE : EIP712_DOMAIN_TYPE_NO_VERSION,\n Permit: allowed ? PERMIT_ALLOWED_TYPE : EIP2612_TYPE,\n },\n domain,\n primaryType: 'Permit',\n message,\n })\n\n return library\n .send('eth_signTypedData_v4', [account, data])\n .then(splitSignature)\n .then((signature) => {\n setSignatureData({\n v: signature.v,\n r: signature.r,\n s: signature.s,\n deadline: signatureDeadline,\n ...(allowed ? { allowed } : { amount: value }),\n nonce: nonceNumber,\n chainId,\n owner: account,\n spender,\n tokenAddress,\n permitType: permitInfo.type,\n })\n })\n },\n }\n }, [\n currencyAmount,\n eip2612Contract,\n account,\n chainId,\n isArgentWallet,\n transactionDeadline,\n library,\n tokenNonceState.loading,\n tokenNonceState.valid,\n tokenNonceState.result,\n tokenAddress,\n spender,\n permitInfo,\n signatureData,\n ])\n}\n\nexport function useERC20PermitFromTrade(\n trade:\n | V2Trade\n | V3Trade\n | Trade\n | undefined,\n allowedSlippage: Percent,\n transactionDeadline: BigNumber | undefined\n) {\n const { chainId } = useActiveWeb3React()\n const swapRouterAddress = chainId\n ? // v2 router does not support\n trade instanceof V2Trade\n ? undefined\n : trade instanceof V3Trade\n ? V3_ROUTER_ADDRESS[chainId]\n : SWAP_ROUTER_ADDRESSES[chainId]\n : undefined\n const amountToApprove = useMemo(\n () => (trade ? trade.maximumAmountIn(allowedSlippage) : undefined),\n [trade, allowedSlippage]\n )\n\n return useERC20Permit(amountToApprove, swapRouterAddress, transactionDeadline, null)\n}\n","import { BigNumber } from '@ethersproject/bignumber'\nimport { useSingleCallResult } from 'lib/hooks/multicall'\nimport { useMemo } from 'react'\n\nimport { useInterfaceMulticall } from './useContract'\n\n// gets the current timestamp from the blockchain\nexport default function useCurrentBlockTimestamp(): BigNumber | undefined {\n const multicall = useInterfaceMulticall()\n const resultStr: string | undefined = useSingleCallResult(\n multicall,\n 'getCurrentBlockTimestamp'\n )?.result?.[0]?.toString()\n return useMemo(() => (typeof resultStr === 'string' ? BigNumber.from(resultStr) : undefined), [resultStr])\n}\n","// @ts-nocheck\n/* eslint-disable @typescript-eslint/ban-types */\nimport { Draft } from 'immer'\nimport { atom, WritableAtom } from 'jotai'\nimport { withImmer } from 'jotai-immer'\n\n/**\n * Creates a derived atom whose value is the picked object property.\n * By default, the setter acts as a primitive atom's, changing the original atom.\n * A custom setter may also be passed, which uses an Immer Draft so that it may be mutated directly.\n */\nexport function pickAtom, Update>(\n anAtom: WritableAtom,\n key: Key,\n setter: (draft: Draft[Key], update: Update) => Draft[Key]\n): WritableAtom\nexport function pickAtom, Update extends Value[Key]>(\n anAtom: WritableAtom,\n key: Key,\n setter?: (draft: Draft[Key], update: Update) => Draft[Key]\n): WritableAtom\nexport function pickAtom, Update extends Value[Key]>(\n anAtom: WritableAtom,\n key: Key,\n setter: (draft: Draft[Key], update: Update) => Draft[Key] = (draft, update) =>\n update as Draft[Key]\n): WritableAtom {\n return atom(\n (get) => get(anAtom)[key],\n (get, set, update: Update) =>\n set(withImmer(anAtom), (value) => {\n const derived = setter(value[key], update)\n value[key] = derived\n })\n )\n}\n\n/** Sets a togglable atom to invert its state at the next render. */\nexport function setTogglable(draft: boolean) {\n return !draft\n}\n","import { atomWithReset } from 'jotai/utils'\nimport { pickAtom } from './atoms'\n\ninterface Settings {\n autoSlippage: boolean // if true, slippage will use the default calculation\n maxSlippage: number | undefined // expressed as a percent\n transactionTtl: number | undefined\n mockTogglable: boolean\n clientSideRouter: boolean // whether to use the client-side router or query the remote API\n}\n\nconst initialSettings: Settings = {\n autoSlippage: true,\n maxSlippage: undefined,\n transactionTtl: undefined,\n mockTogglable: true,\n clientSideRouter: false,\n}\n\nexport const settingsAtom = atomWithReset(initialSettings)\nexport const autoSlippageAtom = pickAtom(settingsAtom, 'autoSlippage')\nexport const maxSlippageAtom = pickAtom(settingsAtom, 'maxSlippage')\nexport const transactionTtlAtom = pickAtom(settingsAtom, 'transactionTtl')\n","import { BigNumber } from '@ethersproject/bignumber'\n\n/**\n * Returns the gas value plus a margin for unexpected or variable gas costs\n * @param value the gas value to pad\n */\nexport function calculateGasMargin(value: BigNumber): BigNumber {\n return value.mul(120).div(100)\n}\n","import useActiveWeb3React from \"hooks/useActiveWeb3React\";\nimport { useTokenContract } from \"hooks/useContract\";\nimport { useTokenAllowance } from \"hooks/useTokenAllowance\";\nimport { useCallback, useMemo } from \"react\";\nimport { calculateGasMargin } from \"utils/calculateGasMargin\";\n\nimport { MaxUint256 } from \"@ethersproject/constants\";\nimport { TransactionResponse } from \"@ethersproject/providers\";\nimport { Currency, CurrencyAmount, Token } from \"@uniswap/sdk-core\";\n\nexport enum ApprovalState {\n UNKNOWN = 'UNKNOWN',\n NOT_APPROVED = 'NOT_APPROVED',\n PENDING = 'PENDING',\n APPROVED = 'APPROVED',\n}\n\nexport function useApprovalStateForSpender(\n amountToApprove: CurrencyAmount | undefined,\n spender: string | undefined,\n useIsPendingApproval: (token?: Token, spender?: string) => boolean\n): ApprovalState {\n const { account } = useActiveWeb3React()\n const token = amountToApprove?.currency?.isToken ? amountToApprove.currency : undefined\n\n const currentAllowance = useTokenAllowance(token, account ?? undefined, spender)\n const pendingApproval = useIsPendingApproval(token, spender)\n\n return useMemo(() => {\n if (!amountToApprove || !spender) return ApprovalState.UNKNOWN\n if (amountToApprove.currency.isNative) return ApprovalState.APPROVED\n // we might not have enough data to know whether or not we need to approve\n if (!currentAllowance) return ApprovalState.UNKNOWN\n\n // amountToApprove will be defined if currentAllowance is\n return currentAllowance.lessThan(amountToApprove)\n ? pendingApproval\n ? ApprovalState.PENDING\n : ApprovalState.NOT_APPROVED\n : ApprovalState.APPROVED\n }, [amountToApprove, currentAllowance, pendingApproval, spender])\n}\n\nexport function useApproval(\n amountToApprove: CurrencyAmount | undefined,\n spender: string | undefined,\n useIsPendingApproval: (token?: Token, spender?: string) => boolean\n): [\n ApprovalState,\n () => Promise<{ response: TransactionResponse; tokenAddress: string; spenderAddress: string } | undefined>\n] {\n const { chainId } = useActiveWeb3React()\n const token = amountToApprove?.currency?.isToken ? amountToApprove.currency : undefined\n\n // check the current approval status\n const approvalState = useApprovalStateForSpender(amountToApprove, spender, useIsPendingApproval)\n\n const tokenContract = useTokenContract(token?.address)\n\n const approve = useCallback(async () => {\n function logFailure(error: Error | string): undefined {\n console.warn(`${token?.symbol || 'Token'} approval failed:`, error)\n return\n }\n\n // Bail early if there is an issue.\n if (approvalState !== ApprovalState.NOT_APPROVED) {\n return logFailure('approve was called unnecessarily')\n } else if (!chainId) {\n return logFailure('no chainId')\n } else if (!token) {\n return logFailure('no token')\n } else if (!tokenContract) {\n return logFailure('tokenContract is null')\n } else if (!amountToApprove) {\n return logFailure('missing amount to approve')\n } else if (!spender) {\n return logFailure('no spender')\n }\n\n let useExact = false\n const estimatedGas = await tokenContract.estimateGas.approve(spender, MaxUint256).catch(() => {\n // general fallback for tokens which restrict approval amounts\n useExact = true\n return tokenContract.estimateGas.approve(spender, amountToApprove.quotient.toString())\n })\n\n return tokenContract\n .approve(spender, useExact ? amountToApprove.quotient.toString() : MaxUint256, {\n gasLimit: calculateGasMargin(estimatedGas),\n })\n .then((response) => ({\n response,\n tokenAddress: token.address,\n spenderAddress: spender,\n }))\n .catch((error: Error) => {\n logFailure(error)\n throw error\n })\n }, [approvalState, token, tokenContract, amountToApprove, spender, chainId])\n\n return [approvalState, approve]\n}\n","import { CurrencyAmount, Token } from '@uniswap/sdk-core'\nimport { useSingleCallResult } from 'lib/hooks/multicall'\nimport { useMemo } from 'react'\n\nimport { useTokenContract } from './useContract'\n\nexport function useTokenAllowance(token?: Token, owner?: string, spender?: string): CurrencyAmount | undefined {\n const contract = useTokenContract(token?.address, false)\n\n const inputs = useMemo(() => [owner, spender], [owner, spender])\n const allowance = useSingleCallResult(contract, 'allowance', inputs).result\n\n return useMemo(\n () => (token && allowance ? CurrencyAmount.fromRawAmount(token, allowance.toString()) : undefined),\n [token, allowance]\n )\n}\n","import { Trade } from '@uniswap/router-sdk'\nimport { Currency, CurrencyAmount, Percent, TradeType } from '@uniswap/sdk-core'\nimport { Trade as V2Trade } from '@uniswap/v2-sdk'\nimport { Trade as V3Trade } from '@uniswap/v3-sdk'\nimport useSwapApproval, { useSwapApprovalOptimizedTrade } from 'lib/hooks/swap/useSwapApproval'\nimport { ApprovalState, useApproval } from 'lib/hooks/useApproval'\nimport { useCallback } from 'react'\n\nimport { TransactionType } from '../state/transactions/actions'\nimport { useHasPendingApproval, useTransactionAdder } from '../state/transactions/hooks'\nexport { ApprovalState } from 'lib/hooks/useApproval'\n\nfunction useGetAndTrackApproval(getApproval: ReturnType[1]) {\n const addTransaction = useTransactionAdder()\n return useCallback(() => {\n return getApproval().then((pending) => {\n if (pending) {\n const { response, tokenAddress, spenderAddress: spender } = pending\n addTransaction(response, { type: TransactionType.APPROVAL, tokenAddress, spender })\n }\n })\n }, [addTransaction, getApproval])\n}\n\n// returns a variable indicating the state of the approval and a function which approves if necessary or early returns\nexport function useApproveCallback(\n amountToApprove?: CurrencyAmount,\n spender?: string\n): [ApprovalState, () => Promise] {\n const [approval, getApproval] = useApproval(amountToApprove, spender, useHasPendingApproval)\n return [approval, useGetAndTrackApproval(getApproval)]\n}\n\nexport function useApprovalOptimizedTrade(\n trade: Trade | undefined,\n allowedSlippage: Percent\n) {\n return useSwapApprovalOptimizedTrade(trade, allowedSlippage, useHasPendingApproval)\n}\n\nexport function useApproveCallbackFromTrade(\n trade:\n | V2Trade\n | V3Trade\n | Trade\n | undefined,\n allowedSlippage: Percent\n): [ApprovalState, () => Promise] {\n const [approval, getApproval] = useSwapApproval(trade, allowedSlippage, useHasPendingApproval)\n return [approval, useGetAndTrackApproval(getApproval)]\n}\n","import { Currency } from '@uniswap/sdk-core'\nimport { useMemo } from 'react'\n\nimport { useUnsupportedTokens } from './Tokens'\n\n/**\n * Returns true if the input currency or output currency cannot be traded in the interface\n * @param currencyIn the input currency to check\n * @param currencyOut the output currency to check\n */\nexport function useIsSwapUnsupported(currencyIn?: Currency | null, currencyOut?: Currency | null): boolean {\n const unsupportedTokens = useUnsupportedTokens()\n return useMemo(() => {\n if (!unsupportedTokens) {\n return false\n }\n const currencyInUnsupported = Boolean(currencyIn?.isToken && unsupportedTokens[currencyIn.address])\n const currencyOutUnsupported = Boolean(currencyOut?.isToken && unsupportedTokens[currencyOut.address])\n return currencyInUnsupported || currencyOutUnsupported\n }, [currencyIn, currencyOut, unsupportedTokens])\n}\n","import { BigNumber } from '@ethersproject/bignumber'\nimport { CallStateResult, useSingleCallResult, useSingleContractMultipleData } from 'lib/hooks/multicall'\nimport { useMemo } from 'react'\nimport { PositionDetails } from 'types/position'\n\nimport { useV3NFTPositionManagerContract } from './useContract'\n\ninterface UseV3PositionsResults {\n loading: boolean\n positions: PositionDetails[] | undefined\n}\n\nfunction useV3PositionsFromTokenIds(tokenIds: BigNumber[] | undefined): UseV3PositionsResults {\n const positionManager = useV3NFTPositionManagerContract()\n const inputs = useMemo(() => (tokenIds ? tokenIds.map((tokenId) => [BigNumber.from(tokenId)]) : []), [tokenIds])\n const results = useSingleContractMultipleData(positionManager, 'positions', inputs)\n\n const loading = useMemo(() => results.some(({ loading }) => loading), [results])\n const error = useMemo(() => results.some(({ error }) => error), [results])\n\n const positions = useMemo(() => {\n if (!loading && !error && tokenIds) {\n return results.map((call, i) => {\n const tokenId = tokenIds[i]\n const result = call.result as CallStateResult\n return {\n tokenId,\n fee: result.fee,\n feeGrowthInside0LastX128: result.feeGrowthInside0LastX128,\n feeGrowthInside1LastX128: result.feeGrowthInside1LastX128,\n liquidity: result.liquidity,\n nonce: result.nonce,\n operator: result.operator,\n tickLower: result.tickLower,\n tickUpper: result.tickUpper,\n token0: result.token0,\n token1: result.token1,\n tokensOwed0: result.tokensOwed0,\n tokensOwed1: result.tokensOwed1,\n }\n })\n }\n return undefined\n }, [loading, error, results, tokenIds])\n\n return {\n loading,\n positions: positions?.map((position, i) => ({ ...position, tokenId: inputs[i][0] })),\n }\n}\n\ninterface UseV3PositionResults {\n loading: boolean\n position: PositionDetails | undefined\n}\n\nexport function useV3PositionFromTokenId(tokenId: BigNumber | undefined): UseV3PositionResults {\n const position = useV3PositionsFromTokenIds(tokenId ? [tokenId] : undefined)\n return {\n loading: position.loading,\n position: position.positions?.[0],\n }\n}\n\nexport function useV3Positions(account: string | null | undefined): UseV3PositionsResults {\n const positionManager = useV3NFTPositionManagerContract()\n const { loading: balanceLoading, result: balanceResult } = useSingleCallResult(positionManager, 'balanceOf', [\n account ?? undefined,\n ])\n\n // we don't expect any account balance to ever exceed the bounds of max safe int\n const accountBalance: number | undefined = balanceResult?.[0]?.toNumber()\n\n const tokenIdsArgs = useMemo(() => {\n if (accountBalance && account) {\n const tokenRequests = []\n for (let i = 0; i < accountBalance; i++) {\n tokenRequests.push([account, i])\n }\n return tokenRequests\n }\n return []\n }, [account, accountBalance])\n\n const tokenIdResults = useSingleContractMultipleData(positionManager, 'tokenOfOwnerByIndex', tokenIdsArgs)\n const someTokenIdsLoading = useMemo(() => tokenIdResults.some(({ loading }) => loading), [tokenIdResults])\n\n const tokenIds = useMemo(() => {\n if (account) {\n return tokenIdResults\n .map(({ result }) => result)\n .filter((result): result is CallStateResult => !!result)\n .map((result) => BigNumber.from(result[0]))\n }\n return []\n }, [account, tokenIdResults])\n\n const { positions, loading: positionsLoading } = useV3PositionsFromTokenIds(tokenIds)\n\n return {\n loading: someTokenIdsLoading || balanceLoading || positionsLoading,\n positions,\n }\n}","// @ts-nocheck\nimport { Currency } from '@uniswap/sdk-core'\n\nexport function currencyId(currency: Currency): string {\n if (currency.isNative) return 'ETH'\n if (currency.isToken || currency.address) return currency.address\n throw new Error('invalid currency')\n}\n","import { Currency, CurrencyAmount } from '@uniswap/sdk-core'\nimport JSBI from 'jsbi'\n\nconst MIN_NATIVE_CURRENCY_FOR_GAS: JSBI = JSBI.exponentiate(JSBI.BigInt(10), JSBI.BigInt(16)) // .01 ETH\n/**\n * Given some token amount, return the max that can be spent of it\n * @param currencyAmount to return max of\n */\nexport function maxAmountSpend(currencyAmount?: CurrencyAmount): CurrencyAmount | undefined {\n if (!currencyAmount) return undefined\n if (currencyAmount.currency.isNative) {\n if (JSBI.greaterThan(currencyAmount.quotient, MIN_NATIVE_CURRENCY_FOR_GAS)) {\n return CurrencyAmount.fromRawAmount(\n currencyAmount.currency,\n JSBI.subtract(currencyAmount.quotient, MIN_NATIVE_CURRENCY_FOR_GAS)\n )\n } else {\n return CurrencyAmount.fromRawAmount(currencyAmount.currency, JSBI.BigInt(0))\n }\n }\n return currencyAmount\n}\n","// @ts-nocheck\nimport { Currency, CurrencyAmount, Percent, Token } from '@uniswap/sdk-core'\nimport { Pair } from 'lib/utils/pair'\nimport { AutoColumn } from 'components/Column'\nimport { LoadingOpacityContainer, loadingOpacityMixin } from 'components/Loader/styled'\nimport useActiveWeb3React from 'hooks/useActiveWeb3React'\nimport { darken } from 'polished'\nimport { ReactNode, useCallback, useState } from 'react'\nimport { Lock } from 'react-feather'\nimport styled from 'styled-components/macro'\nimport { formatCurrencyAmount } from 'utils/formatCurrencyAmount'\n\nimport { ReactComponent as DropDown } from '../../assets/images/dropdown.svg'\nimport useTheme from '../../hooks/useTheme'\nimport { useCurrencyBalance } from '../../state/wallet/hooks'\nimport { ThemedText } from '../../theme'\nimport { ButtonGray } from '../Button'\nimport CurrencyLogo from '../CurrencyLogo'\nimport DoubleCurrencyLogo from '../DoubleLogo'\nimport { Input as NumericalInput } from '../NumericalInput'\nimport { RowBetween, RowFixed } from '../Row'\nimport CurrencySearchModal from '../SearchModal/CurrencySearchModal'\n\nconst InputPanel = styled.div<{ hideInput?: boolean }>`\n ${({ theme }) => theme.flexColumnNoWrap}\n width: 100%;\n position: relative;\n border:none;\n border-radius: ${({ hideInput }) => (hideInput ? '16px' : '20px')};\n background-color: ${({ theme, hideInput }) => (hideInput ? 'transparent' : 'transparent')};\n z-index: 1;\n width: ${({ hideInput }) => (hideInput ? '100%' : 'initial')};\n transition: height 1s ease;\n will-change: height;\n \n`\n\nconst FixedContainer = styled.div`\n width: 100%;\n height: 100%;\n position: absolute;\n border-radius: 20px;\n background-color: ${({ theme }) => theme.bg2};\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 2;\n`\n\nconst Container = styled.div<{ hideInput: boolean }>`\n border-radius: ${({ hideInput }) => (hideInput ? '16px' : '20px')};\n background-color: transparent;\n width: ${({ hideInput }) => (hideInput ? '100%' : 'initial')};\n :focus,\n :hover {\n }\n`\n\nconst CurrencySelect = styled(ButtonGray)<{ visible: boolean; selected: boolean; hideInput?: boolean }>`\n align-items: center;\n background-color: ${({ selected, theme }) => (selected ? theme.bg2 : theme.primary1)};\n box-shadow: ${({ selected }) => (selected ? 'none' : '0px 6px 10px rgba(0, 0, 0, 0.075)')};\n box-shadow: 0px 6px 10px rgba(0, 0, 0, 0.075);\n color: ${({ selected, theme }) => (selected ? theme.text1 : theme.white)};\n cursor: pointer;\n border-radius: 100px;\n outline: none;\n user-select: none;\n border: none;\n font-size: 24px;\n font-weight: 600;\n height: 40px;\n width: ${({ hideInput }) => (hideInput ? '100%' : 'initial')};\n padding: 0;\n justify-content: space-between;\n margin-left: ${({ hideInput }) => (hideInput ? '0' : '12px')};\n :focus,\n :hover {\n background-color: ${({ selected, theme }) => (selected ? theme.bg3 : darken(0.05, theme.primary1))};\n }\n visibility: ${({ visible }) => (visible ? 'visible' : 'hidden')};\n`\n\nconst InputRow = styled.div<{ selected: boolean }>`\n ${({ theme }) => theme.flexRowNoWrap}\n align-items: center;\n justify-content: space-between;\n padding: ${({ selected }) => (selected ? ' 1rem 1rem 0.75rem 1rem' : '1rem 1rem 1rem 1rem')};\n padding:0px;\n padding-left:0px;\n padding-top:0px;\n`\n\nconst LabelRow = styled.div`\n ${({ theme }) => theme.flexRowNoWrap}\n align-items: center;\n color: ${({ theme }) => theme.text1};\n font-size: 0.75rem;\n line-height: 1rem;\n padding: 0 1rem 1rem;\n padding-left:0px;\n span:hover {\n cursor: pointer;\n color: ${({ theme }) => darken(0.2, theme.text2)};\n }\n`\n\nconst FiatRow = styled(LabelRow)`\n justify-content: flex-end;\n`\n\nconst Aligner = styled.span`\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 160px;\n height: 40px;\n border-radius: 15px;\n color:white;\n padding:8px;\n`\n\nconst StyledDropDown = styled(DropDown)<{ selected: boolean }>`\n margin: 0 0.25rem 0 0.35rem;\n height: 35%;\n\n path {\n stroke: ${({ selected, theme }) => (selected ? theme.text1 : theme.white)};\n stroke-width: 1.5px;\n }\n`\n\nconst StyledTokenName = styled.span<{ active?: boolean }>`\n ${({ active }) => (active ? ' margin: 0 0.25rem 0 0.25rem;' : ' margin: 0 0.25rem 0 0.25rem;')}\n font-size: ${({ active }) => (active ? '16px' : '16px')};\n`\n\nconst StyledNumericalInput = styled(NumericalInput)<{ $loading: boolean, disabled: boolean }>`\n ${loadingOpacityMixin};\n opacity: ${({ disabled }) => (!disabled ? 1 : 0.45)};\n text-align: left;\n`\n\ninterface CurrencyInputPanelProps {\n value: string\n onUserInput: (value: string) => void\n onMax?: () => void\n showMaxButton: boolean\n label?: ReactNode\n onCurrencySelect?: (currency: Currency) => void\n currency?: Currency | null\n hideBalance?: boolean\n pair?: Pair | null\n hideInput?: boolean\n otherCurrency?: Currency | null\n fiatValue?: CurrencyAmount | null\n priceImpact?: Percent\n id: string\n showCommonBases?: boolean\n showCurrencyAmount?: boolean\n disableNonToken?: boolean\n renderBalance?: (amount: CurrencyAmount) => ReactNode\n locked?: boolean\n loading?: boolean\n disabled?: boolean\n approved?: boolean\n maxBalance?:number\n}\n\nexport default function CurrencyInputPanel({\n value,\n onUserInput,\n onMax,\n showMaxButton,\n onCurrencySelect,\n currency,\n otherCurrency,\n id,\n showCommonBases,\n showCurrencyAmount,\n disableNonToken,\n renderBalance,\n fiatValue,\n priceImpact,\n hideBalance = false,\n pair = null, // used for double token logo\n hideInput = false,\n locked = false,\n loading = false,\n disabled = false,\n approved,\n maxBalance = -1,\n ...rest\n}: CurrencyInputPanelProps) {\n const [modalOpen, setModalOpen] = useState(false)\n const { account } = useActiveWeb3React()\n const selectedCurrencyBalance = useCurrencyBalance(account ?? undefined, currency ?? undefined)\n const theme = useTheme()\n\n const handleDismissSearch = useCallback(() => {\n setModalOpen(false)\n }, [setModalOpen])\n\n return (\n \n {locked && (\n \n \n \n \n <>The market price is outside your specified price range. Single-asset deposit only.\n \n \n \n )}\n \n \n {!hideInput && (\n \n )}\n\n {\n if(approved || disabled){\n return\n }\n if (onCurrencySelect) {\n setModalOpen(true)\n }\n }}\n >\n \n \n {pair ? (\n \n \n \n ) : currency ? (\n \n ) : null}\n {pair ? (\n \n {pair?.token0.symbol}:{pair?.token1.symbol}\n \n ) : (\n \n {(currency && currency.symbol && currency.symbol.length > 20\n ? currency.symbol.slice(0, 4) +\n '...' +\n currency.symbol.slice(currency.symbol.length - 5, currency.symbol.length)\n : currency?.symbol) || <>Select a Token}\n \n )}\n \n {onCurrencySelect && }\n \n \n \n {!hideInput && !hideBalance && (\n \n \n \n {/* */}\n \n {account ? (\n \n {\n if (disabled) {\n return\n }\n onMax()\n }}\n color={theme.text3}\n fontWeight={600}\n fontSize={14}\n style={{ display: 'inline', cursor: disabled ? 'auto' : 'pointer', opacity: (disabled ? \"0.45\" : 1) }}\n >\n {!hideBalance && currency && selectedCurrencyBalance\n ? (\n renderBalance ? (\n renderBalance(selectedCurrencyBalance)\n ) : (\n <>Balance: {formatCurrencyAmount(selectedCurrencyBalance, 18, null, 6)}\n )\n )\n :\n <>Balance: 0\n }\n \n {/*showMaxButton && selectedCurrencyBalance ? (\n \n <>MAX\n \n ) : null*/}\n \n ) : (\n \n \n <>Balance: 0\n \n \n )}\n \n \n )}\n \n {onCurrencySelect && (\n \n )}\n \n )\n}\n","// @ts-nocheck\nimport { Percent } from '@uniswap/sdk-core'\nimport useTheme from 'hooks/useTheme'\nimport { darken } from 'polished'\nimport { ReactNode } from 'react'\nimport { ArrowLeft } from 'react-feather'\nimport { Link as HistoryLink, NavLink, useLocation } from 'react-router-dom'\nimport { useAppDispatch } from 'state/hooks'\nimport { resetMintState } from 'state/mint/actions'\nimport { resetMintState as resetMintV3State } from 'state/mint/v3/actions'\nimport styled from 'styled-components/macro'\nimport { ThemedText } from 'theme'\n\nimport { RowBetween } from '../Row'\n\nconst Tabs = styled.div`\n ${({ theme }) => theme.flexRowNoWrap}\n width: 100%;\n height: 48px;\n ${({ theme }) => theme.mediaWidth.upToMedium`\n width: 100%;\n `};\n margin: 0;\n align-items: center;\n border-radius: 3rem;\n justify-content: space-evenly;\n`\n\nconst activeClassName = 'ACTIVE'\n\nconst StyledNavLink = styled(NavLink).attrs({\n activeClassName,\n})`\n ${({ theme }) => theme.flexRowNoWrap}\n align-items: center;\n justify-content: center;\n height: 3rem;\n border-radius: 3rem;\n outline: none;\n cursor: pointer;\n text-decoration: none;\n color: ${({ theme }) => theme.text3};\n font-size: 20px;\n\n &.${activeClassName} {\n border-radius: 12px;\n font-weight: 600;\n color: ${({ theme }) => theme.text1};\n }\n\n :hover,\n :focus {\n color: ${({ theme }) => darken(0.1, theme.text1)};\n }\n`\n\nconst StyledHistoryLink = styled(HistoryLink) <{ flex: string | undefined }>`\n flex: ${({ flex }) => flex ?? 'none'};\n\n ${({ theme }) => theme.mediaWidth.upToMedium`\n flex: none;\n margin-right: 10px;\n `};\n`\n\nconst StyledArrowLeft = styled(ArrowLeft)`\n color: ${({ theme }) => theme.text1};\n color:white;\n`\n\nexport function SwapPoolTabs({ active }: { active: 'swap' | 'pool' }) {\n return (\n \n active === 'swap'}>\n Swap\n \n active === 'pool'}>\n Pool\n \n \n )\n}\n\nexport function AddRemoveTabs({\n adding,\n creating,\n migrate,\n deposit,\n defaultSlippage,\n positionID,\n children,\n}: {\n adding?: boolean | false\n creating?: boolean | false\n migrate?:boolean | false\n deposit?:boolean | false\n defaultSlippage: Percent\n positionID?: string | undefined\n showBackLink?: boolean\n children?: ReactNode | undefined\n}) {\n const theme = useTheme()\n // reset states on back\n const dispatch = useAppDispatch()\n const location = useLocation()\n\n // detect if back should redirect to v3 or v2 pool page\n let poolLink = location.pathname.includes('import')\n ? '/migrate/v2' : ''\nif(deposit){poolLink = \"/lend\" }\n return (\n \n \n
\n {\n if (adding) {\n // not 100% sure both of these are needed\n dispatch(resetMintState())\n dispatch(resetMintV3State())\n }\n }}\n flex={children ? '1' : undefined}\n >\n\n \n \n
\n\t \n {creating ? (\n <>Create a pair\n ) : adding ? (\n <>New Position\n ) : migrate?(\n <>Import\n ):deposit?(\n <>Deposit\n ):<>}\n\n \n\n
\n
\n
\n
\n )\n}\n","import React from 'react'\nimport styled from 'styled-components/macro'\nimport { Z_INDEX } from 'theme'\n\nexport const BodyWrapper = styled.main<{ margin?: string; maxWidth?: string }>`\n position: relative;\n margin-top: ${({ margin }) => margin ?? '0px'};\n max-width: ${({ maxWidth }) => maxWidth ?? '480px'};\n width: 100%;\n background: #131118;\n color:white;\n border-radius:40px;\n \n \n z-index: ${Z_INDEX.deprecated_content};\n`\n\n/**\n * The styled container element that wraps the content of most pages and the tabs.\n */\nexport default function AppBody({ children, ...rest }: { children: React.ReactNode }) {\n return {children}\n}\n","// @ts-nocheck\nimport { AutoColumn } from 'components/Column'\nimport CurrencyInputPanel from 'components/CurrencyInputPanel'\nimport Input from 'components/NumericalInput'\nimport { BodyWrapper } from 'pages/AppBody'\nimport styled from 'styled-components/macro'\nimport { AddRemoveTabs } from '../../components/NavigationTabs'\n\nexport const HeaderTabs = styled(AddRemoveTabs)`\n margin-bottom:30px;\n`\nexport const PageWrapper = styled(BodyWrapper) <{ wide: boolean }>`\n \n width: 100% ;\n \n max-width:512px;\n height:100%;\n \n padding: ${({ wide }) => (wide ? '10px' : '0')};\n padding: 32px;\n ${({ theme }) => theme.mediaWidth.upToMedium`\n max-width: 480px;\n `};\n ${({ theme }) => theme.mediaWidth.upToSmall`\n max-width: 350px;\n `};\n`\n\nexport const Wrapper = styled.div`\n position: relative;\n min-width: 400px;\n margin-top: 30px\n\n ${({ theme }) => theme.mediaWidth.upToMedium`\n min-width: 400px;\n `};\n\n ${({ theme }) => theme.mediaWidth.upToExtraSmall`\n min-width: 280px;\n`};\n`\n\nexport const ScrollablePage = styled.div`\n position: relative;\n display: flex;\n flex-direction: column;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n position: absolute;\n \n ${({ theme }) => theme.mediaWidth.upToMedium`\n max-width: 480px;\n margin: 0 auto;\n `};\n\n`\n\nexport const DynamicSection = styled(AutoColumn) <{ disabled?: boolean }>`\nopacity: 1 ;\n pointer-events: auto ;\n`\n\nexport const CurrencyDropdown = styled(CurrencyInputPanel)`\n width: fit-content;\n`\n\nexport const StyledInput = styled(Input)`\n background-color: ${({ theme }) => theme.bg0};\n text-align: left;\n font-size: 18px;\n width: 100%;\n`\n\n/* two-column layout where DepositAmount is moved at the very end on mobile. */\nexport const ResponsiveTwoColumns = styled.div<{ wide: boolean }>`\n display: grid;\n grid-column-gap: 50px;\n grid-row-gap: 15px;\n grid-template-columns: ${({ wide }) => (wide ? '1fr 1fr' : '1fr')};\n grid-template-rows: max-content;\n grid-auto-flow: row;\n\n padding-top: 20px;\n\n\n ${({ theme }) => theme.mediaWidth.upToMedium`\n grid-template-columns: 1fr;\n\n margin-top: 0;\n `};\n`\n\nexport const RightContainer = styled(AutoColumn)`\n grid-row: 1 / 3;\n grid-column: 2;\n height: fit-content;\n\n ${({ theme }) => theme.mediaWidth.upToMedium`\n grid-row: 2 / 3;\n grid-column: 1;\n `};\n`\n\nexport const StackedContainer = styled.div`\n display: grid;\n`\n\nexport const StackedItem = styled.div<{ zIndex?: number }>`\n grid-column: 1;\n grid-row: 1;\n height: 100%;\n z-index: ${({ zIndex }) => zIndex};\n`\n\nexport const MediumOnly = styled.div`\n ${({ theme }) => theme.mediaWidth.upToMedium`\n display: none;\n `};\n`\n\nexport const HideMedium = styled.div`\n display: none;\n\n ${({ theme }) => theme.mediaWidth.upToMedium`\n display: block;\n `};\n`\n","// @ts-nocheck\nimport { BigNumber } from \"ethers\";\nimport { useSingleCallResult } from \"lib/hooks/multicall\";\nimport { useMemo } from \"react\";\nimport { useVaultManagerContract } from \"./useContract\";\n\n/**\n * Getting the current DoubleDownClub contract\n */\nexport default function useVaultManager(currency, amount): { loading: boolean; supplyAllowance: BigNumber; capPerDDC: BigNumber} {\n const inputs = useMemo(() => [currency ?? undefined, amount], [currency, amount])\n const pool = window.localStorage.getItem('SELECT_POOL') || 'Ubeswap'\n const vaultContract = useVaultManagerContract(pool.toLowerCase(), false)\n const capitalAmount = useSingleCallResult(vaultContract, 'convertCapitalToUSD', inputs)\n return useMemo(\n () => ({\n capitalInUSD: capitalAmount.result?.[0] ?? BigNumber.from('0'),\n loading: false,\n }),\n [capitalAmount.result]\n )\n}\n","// @ts-nocheck\nimport \"./style.scss\";\n\nimport UnsupportedCurrencyFooter from \"components/swap/UnsupportedCurrencyFooter\";\nimport useActiveWeb3React from \"hooks/useActiveWeb3React\";\nimport { useCallback, useState } from \"react\";\nimport ReactGA from \"react-ga4\";\nimport { RouteComponentProps } from \"react-router-dom\";\nimport {\n useDerivedMintInfo,\n useMintActionHandlers,\n useMintState\n} from \"state/mint/hooks\";\nimport useClubManager from \"hooks/useClubManager\";\nimport { useSingleCallResult } from 'lib/hooks/multicall'\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { TransactionResponse } from \"@ethersproject/providers\";\nimport { Currency, CurrencyAmount, Percent } from \"@uniswap/sdk-core\";\n\nimport { AutoColumn } from \"../../components/Column\";\nimport CurrencyInputPanelAsset from \"../../components/CurrencyInputPanel/asset\";\nimport CurrencyInputPanelLimited from \"../../components/CurrencyInputPanel/limited\";\nimport TransactionConfirmationModal, { ConfirmationModalContent } from \"../../components/TransactionConfirmationModal\";\nimport {\n AMM_VAULT_ADDRESSES,\n ASSET_VAULT_ADDRESSES\n} from \"../../constants/addresses\";\nimport { DEFAULT_TXN_DISMISS_MS } from \"../../constants/misc\";\nimport { WRAPPED_NATIVE_CURRENCY } from \"../../constants/tokens\";\nimport { useCurrency } from \"../../hooks/Tokens\";\nimport {\n ApprovalState,\n useApproveCallback\n} from \"../../hooks/useApproveCallback\";\nimport { useVaultManagerContract } from \"../../hooks/useContract\";\nimport { useIsSwapUnsupported } from \"../../hooks/useIsSwapUnsupported\";\nimport { useUSDCValue } from \"../../hooks/useUSDCPrice\";\nimport { useV3PositionFromTokenId } from \"../../hooks/useV3Positions\";\nimport {\n useAddPopup,\n useWalletModalToggle\n} from \"../../state/application/hooks\";\nimport { Field } from \"../../state/mint/v3/actions\";\nimport { TransactionType } from \"../../state/transactions/actions\";\nimport { useTransactionAdder } from \"../../state/transactions/hooks\";\nimport { useCurrencyBalance } from \"../../state/wallet/hooks\";\nimport { ThemedText } from \"../../theme\";\nimport { currencyId } from \"../../utils/currencyId\";\nimport { maxAmountSpend } from \"../../utils/maxAmountSpend\";\nimport {\n DynamicSection,\n HeaderTabs,\n PageWrapper,\n ResponsiveTwoColumns,\n ScrollablePage,\n Wrapper\n} from \"./styled\";\nimport useVaultManager from \"hooks/useVaultManager\";\n\nconst DEFAULT_ADD_IN_RANGE_SLIPPAGE_TOLERANCE = new Percent(50, 10_000)\n\nexport default function AddLiquidity({\n match: {\n params: { currencyIdA, currencyIdB, feeAmount: feeAmountFromUrl, tokenId },\n },\n history,\n }: RouteComponentProps<{ currencyIdA?: string; currencyIdB?: string; feeAmount?: string; tokenId?: string }>) {\n const { account, chainId, library } = useActiveWeb3React()\n const pool = window.localStorage.getItem('SELECT_POOL') || 'Ubeswap'\n const vaultManager = useVaultManagerContract(pool.toLowerCase(), true)\n const addPopup = useAddPopup()\n // check for existing position if tokenId in url\n const { position: existingPositionDetails, loading: positionLoading } = useV3PositionFromTokenId(\n tokenId ? BigNumber.from(tokenId) : undefined\n )\n const hasExistingPosition = !!existingPositionDetails && !positionLoading\n\n const baseCurrency = useCurrency(currencyIdA)\n const currencyB = useCurrency(currencyIdB)\n // prevent an error if they input ETH/WETH\n const quoteCurrency =\n baseCurrency && currencyB && baseCurrency.wrapped.equals(currencyB.wrapped) ? undefined : currencyB\n\n // mint state\n const { independentField, typedValue } = useMintState();\n\n const {\n dependentField,\n currencies,\n currencyBalances,\n parsedAmounts,\n noLiquidity,\n totalSupply,\n error,\n } = useDerivedMintInfo(baseCurrency ?? undefined, currencyB ?? undefined, 'SELECT_POOL')\n const { onFieldAInput, onFieldBInput } =\n useMintActionHandlers(noLiquidity)\n // modal and loading\n const [showConfirm, setShowConfirm] = useState(false)\n const [attemptingTxn, setAttemptingTxn] = useState(false) // clicked confirm\n const [waiting, setWaiting] = useState(false)\n const [invalidA, setInvalidA] = useState(false)\n const [invalidB, setInvalidB] = useState(false)\n const { supplyAllowance } = useClubManager();\n const { capitalInUSD } = useVaultManager(currencies[Field.CURRENCY_A]?.address, (parsedAmounts[Field.CURRENCY_A])?.quotient.toString() ?? \"0\");\n const [txHash, setTxHash] = useState('')\n // console.log(capitalInUsd);\n // get formatted amounts\n const formattedAmounts = {\n [independentField]: typedValue,\n [dependentField]: parsedAmounts[dependentField]?.toExact() ?? '',\n }\n\n const usdcValues = {\n [Field.CURRENCY_A]: useUSDCValue(parsedAmounts[Field.CURRENCY_A]),\n [Field.CURRENCY_B]: useUSDCValue(parsedAmounts[Field.CURRENCY_B]),\n }\n\n const [approval, approveCallback] = useApproveCallback(parsedAmounts[Field.CURRENCY_A], chainId ? AMM_VAULT_ADDRESSES[chainId][pool.toLowerCase()] : undefined)\n // get the max amounts user can add\n const maxAmounts: { [field in Field]?: CurrencyAmount } = [Field.CURRENCY_A, Field.CURRENCY_B].reduce(\n (accumulator, field) => {\n return {\n ...accumulator,\n [field]: maxAmountSpend(currencyBalances[field]),\n }\n },\n {}\n )\n const assetMax = useCurrencyBalance(ASSET_VAULT_ADDRESSES[chainId!], currencies[Field.CURRENCY_B] ?? undefined);\n const addTransaction = useTransactionAdder()\n const requestedAmount = useSingleCallResult(vaultManager, 'getQuote', [(parsedAmounts[Field.CURRENCY_A])?.quotient.toString(), baseCurrency ? currencyId(baseCurrency) : null, quoteCurrency ? currencyId(quoteCurrency) : null]).result?.[0]\n\n async function approveToken() {\n try {\n setWaiting(true);\n await approveCallback(); \n } catch (error) {\n console.log(error);\n }\n setWaiting(false);\n }\n\n async function onAdd() {\n if(waiting) return;\n if (!chainId || !library || !account) return\n\n if (!baseCurrency || !quoteCurrency) {\n return\n }\n if (vaultManager && account) {\n try {\n setWaiting(true);\n await vaultManager.addLiquidity(currencyId(baseCurrency), (parsedAmounts[Field.CURRENCY_A])?.quotient.toString(), currencyId(quoteCurrency), requestedAmount)\n .then(async (response: TransactionResponse) => {\n setTxHash(response.hash)\n addTransaction(response, {\n type: TransactionType.ADD_LIQUIDITY_V3_POOL,\n baseCurrencyId: currencyId(baseCurrency),\n quoteCurrencyId: currencyId(quoteCurrency),\n createPool: Boolean(noLiquidity),\n expectedAmountBaseRaw: parsedAmounts[Field.CURRENCY_A]?.quotient?.toString() ?? '0',\n expectedAmountQuoteRaw: parsedAmounts[Field.CURRENCY_B]?.quotient?.toString() ?? '0',\n feeAmount: 3000,\n })\n setShowConfirm(true)\n await response.wait();\n setAttemptingTxn(false)\n setWaiting(false);\n })\n\n ReactGA.event({\n category: 'Liquidity',\n action: 'Add',\n label: [currencies[Field.CURRENCY_A]?.symbol, currencies[Field.CURRENCY_B]?.symbol].join('/'),\n })\n }\n catch (error) {\n\n setWaiting(false);\n console.error('Failed to send transaction', error)\n if(error?.error) {\n addPopup(\n {\n reason: error?.error.message\n },\n Date.now(),\n DEFAULT_TXN_DISMISS_MS\n )\n }\n setAttemptingTxn(false)\n // we only care if the error is something _other_ than the user rejected the tx\n if (error?.code !== 4001) {\n console.error(error)\n }\n }\n }\n }\n\n\n const handleCurrencySelect = useCallback(\n (currencyNew: Currency, currencyIdOther?: string): (string | undefined)[] => {\n const currencyIdNew = currencyId(currencyNew)\n\n if (currencyIdNew === currencyIdOther) {\n // not ideal, but for now clobber the other if the currency ids are equal\n return [currencyIdNew, undefined]\n } else {\n // prevent weth + eth\n const isETHOrWETHNew =\n currencyIdNew === 'ETH' ||\n (chainId !== undefined && currencyIdNew === WRAPPED_NATIVE_CURRENCY[chainId]?.address)\n const isETHOrWETHOther =\n currencyIdOther !== undefined &&\n (currencyIdOther === 'ETH' ||\n (chainId !== undefined && currencyIdOther === WRAPPED_NATIVE_CURRENCY[chainId]?.address))\n\n if (isETHOrWETHNew && isETHOrWETHOther) {\n return [currencyIdNew, undefined]\n } else {\n return [currencyIdNew, currencyIdOther]\n }\n }\n },\n [chainId]\n )\n\n const handleCurrencyASelect = useCallback(\n (currencyANew: Currency) => {\n const [idA, idB] = handleCurrencySelect(currencyANew, currencyIdB)\n if (idB === undefined) {\n history.push(`/add/${idA}`)\n } else {\n history.push(`/add/${idA}/${idB}`)\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [handleCurrencySelect, currencyIdB, history]\n )\n\n const handleCurrencyBSelect = useCallback(\n (currencyBNew: Currency) => {\n const [idB, idA] = handleCurrencySelect(currencyBNew, currencyIdA)\n if (idA === undefined) {\n history.push(`/add/0x0/${idB}`)\n } else {\n history.push(`/add/${idA}/${idB}`)\n }\n },\n [handleCurrencySelect, currencyIdA, history]\n )\n\n const handleDismissConfirmation = useCallback(() => {\n setShowConfirm(false)\n // if there was a tx hash, we want to clear the input\n if (txHash) {\n onFieldAInput('')\n // dont jump to pool page if creating\n history.push('/pool')\n }\n setTxHash('')\n }, [history, onFieldAInput, txHash])\n\n const addIsUnsupported = useIsSwapUnsupported(currencies?.CURRENCY_A, currencies?.CURRENCY_B)\n //add test\n\n const pendingText = (<>Supplying {parsedAmounts[Field.CURRENCY_A]?.toSignificant(6)} {currencies[Field.CURRENCY_A]?.symbol} and{' '}\n {parsedAmounts[Field.CURRENCY_B]?.toSignificant(6)} {currencies[Field.CURRENCY_B]?.symbol});\n\n const toggleWalletModal = useWalletModalToggle()\n const showConnectAWallet = Boolean(!account)\n\n const onUserInputA = (e) => {\n const decimal = currencies[Field.CURRENCY_A]?.decimals || 18;\n const removed = removeUnneededCharacter(e.toString())\n const splited = removed.toString().split('.')\n if (splited.length > 1) {\n setInvalidA(splited[1].length > decimal)\n } else {\n setInvalidA(false)\n }\n onFieldAInput(removed.toString())\n }\n\n const onUserInputB = (e) => {\n const decimal = currencies[Field.CURRENCY_B]?.decimals || 18;\n const removed = removeUnneededCharacter(e.toString())\n const splited = removed.toString().split('.')\n if (splited.length > 1) {\n setInvalidB(splited[1].length > decimal)\n } else {\n setInvalidB(false)\n }\n onFieldBInput(removed.toString())\n }\n\n const removeUnneededCharacter = (str: string) => {\n if (str.startsWith('0.')) {\n return str\n } else if (str.startsWith('00')) {\n return str.substring(2)\n } else if (str.length > 1 && str.startsWith('0')) {\n return str.substring(1)\n }\n return str\n }\n\n return (\n <>\n \n (\n (\n \n )}\n />\n )}\n pendingText={pendingText}\n />\n\n
\n
\n \n \n \n \n \n
\n \n \n \n Capital\n \n
\n {\n onFieldAInput(maxAmounts[Field.CURRENCY_A]?.toExact(6) ?? '')\n }}\n showMaxButton={false}\n onCurrencySelect={handleCurrencyASelect}\n currency={currencies[Field.CURRENCY_A] ?? null}\n id=\"add-liquidity-input-tokena\"\n fiatValue={usdcValues[Field.CURRENCY_A]}\n disabled={waiting || approval === ApprovalState.PENDING}\n showCommonBases\n />\n
\n \n Token\n \n
\n {\n onFieldBInput(assetMax?.toExact(6) ?? '')\n }}\n showMaxButton={false}\n fiatValue={usdcValues[Field.CURRENCY_B]}\n currency={currencies[Field.CURRENCY_B] ?? null}\n onCurrencySelect={handleCurrencyBSelect}\n id=\"add-liquidity-input-tokenb\"\n disabled={waiting || approval === ApprovalState.PENDING}\n showCommonBases\n />\n
\n
\n \n
\n
\n
\n {showConnectAWallet ? (\n
\n \n
\n ):(\n error || ( totalSupply?.quotient.toString() === \"0\")\n ?\n
\n \n
\n :\n (\n (invalidA || invalidB)\n ?\n
\n \n
\n :\n
\n {\n approval === ApprovalState.NOT_APPROVED && !waiting\n ?\n \n :\n (\n (approval === ApprovalState.PENDING || waiting) && (approval !== ApprovalState.APPROVED)\n ?\n \n :\n (\n supplyAllowance.gt(capitalInUSD) ?\n
\n \n
\n :\n
\n \n
\n )\n )\n }\n
\n )\n )\n }\n
\n
\n
\n {addIsUnsupported && (\n \n )}\n
\n \n )\n}\n","// @ts-nocheck\nimport { Price, Token } from '@uniswap/sdk-core'\nimport { tickToPrice } from '@uniswap/v3-sdk'\n\nexport function getTickToPrice(baseToken?: Token, quoteToken?: Token, tick?: number): Price | undefined {\n if (!baseToken || !quoteToken || typeof tick !== 'number') {\n return undefined\n }\n return tickToPrice(baseToken, quoteToken, tick)\n}\n","// @ts-nocheck\nimport { Price, Token } from '@uniswap/sdk-core'\nimport {\n encodeSqrtRatioX96,\n FeeAmount,\n nearestUsableTick,\n priceToClosestTick,\n TICK_SPACINGS,\n TickMath,\n} from '@uniswap/v3-sdk'\nimport JSBI from 'jsbi'\n\nexport function tryParsePrice(baseToken?: Token, quoteToken?: Token, value?: string) {\n if (!baseToken || !quoteToken || !value) {\n return undefined\n }\n\n if (!value.match(/^\\d*\\.?\\d+$/)) {\n return undefined\n }\n\n const [whole, fraction] = value.split('.')\n\n const decimals = fraction?.length ?? 0\n const withoutDecimals = JSBI.BigInt((whole ?? '') + (fraction ?? ''))\n\n return new Price(\n baseToken,\n quoteToken,\n JSBI.multiply(JSBI.BigInt(10 ** decimals), JSBI.BigInt(10 ** baseToken.decimals)),\n JSBI.multiply(withoutDecimals, JSBI.BigInt(10 ** quoteToken.decimals))\n )\n}\n\nexport function tryParseTick(\n baseToken?: Token,\n quoteToken?: Token,\n feeAmount?: FeeAmount,\n value?: string\n): number | undefined {\n if (!baseToken || !quoteToken || !feeAmount || !value) {\n return undefined\n }\n\n const price = tryParsePrice(baseToken, quoteToken, value)\n\n if (!price) {\n return undefined\n }\n\n let tick: number\n\n // check price is within min/max bounds, if outside return min/max\n const sqrtRatioX96 = encodeSqrtRatioX96(price.numerator, price.denominator)\n\n if (JSBI.greaterThanOrEqual(sqrtRatioX96, TickMath.MAX_SQRT_RATIO)) {\n tick = TickMath.MAX_TICK\n } else if (JSBI.lessThanOrEqual(sqrtRatioX96, TickMath.MIN_SQRT_RATIO)) {\n tick = TickMath.MIN_TICK\n } else {\n // this function is agnostic to the base, will always return the correct tick\n tick = priceToClosestTick(price)\n }\n\n return nearestUsableTick(tick, TICK_SPACINGS[feeAmount])\n}\n","// @ts-nocheck\nimport { Currency, CurrencyAmount, Price, Rounding, Token } from '@uniswap/sdk-core'\nimport {\n encodeSqrtRatioX96,\n FeeAmount,\n nearestUsableTick,\n Pool,\n Position,\n priceToClosestTick,\n TICK_SPACINGS,\n TickMath,\n tickToPrice,\n} from '@uniswap/v3-sdk'\nimport useActiveWeb3React from 'hooks/useActiveWeb3React'\nimport { usePool } from 'hooks/usePools'\nimport JSBI from 'jsbi'\nimport tryParseCurrencyAmount from 'lib/utils/tryParseCurrencyAmount'\nimport { ReactNode, useCallback, useMemo } from 'react'\nimport { useAppDispatch, useAppSelector } from 'state/hooks'\nimport { getTickToPrice } from 'utils/getTickToPrice'\n\nimport { BIG_INT_ZERO } from '../../../constants/misc'\nimport { PoolState } from '../../../hooks/usePools'\nimport { AppState } from '../../index'\nimport { useCurrencyBalance, useCurrencyBalances } from '../../wallet/hooks'\nimport {\n Bound,\n Field,\n typeInput,\n typeLeftRangeInput,\n typeRightRangeInput,\n typeStartPriceInput,\n setFullRange\n} from './actions'\nimport { tryParseTick } from './utils'\nimport { ASSET_VAULT_ADDRESSES } from 'constants/addresses'\n\nexport function useV3MintState(): AppState['mintV3'] {\n return useAppSelector((state) => state.mintV3)\n}\n\nexport function useV3MintActionHandlers(noLiquidity: boolean | undefined): {\n onFieldAInput: (typedValue: string) => void\n onFieldBInput: (typedValue: string) => void\n onLeftRangeInput: (typedValue: string) => void\n onRightRangeInput: (typedValue: string) => void\n onStartPriceInput: (typedValue: string) => void\n} {\n const dispatch = useAppDispatch()\n\n const onFieldAInput = useCallback(\n (typedValue: string) => {\n dispatch(typeInput({ field: Field.CURRENCY_A, typedValue, noLiquidity: noLiquidity === true }))\n },\n [dispatch, noLiquidity]\n )\n\n const onFieldBInput = useCallback(\n (typedValue: string) => {\n dispatch(typeInput({ field: Field.CURRENCY_B, typedValue, noLiquidity: noLiquidity === true }))\n },\n [dispatch, noLiquidity]\n )\n\n const onLeftRangeInput = useCallback(\n (typedValue: string) => {\n dispatch(typeLeftRangeInput({ typedValue }))\n },\n [dispatch]\n )\n\n const onRightRangeInput = useCallback(\n (typedValue: string) => {\n dispatch(typeRightRangeInput({ typedValue }))\n },\n [dispatch]\n )\n\n const onStartPriceInput = useCallback(\n (typedValue: string) => {\n dispatch(typeStartPriceInput({ typedValue }))\n },\n [dispatch]\n )\n\n return {\n onFieldAInput,\n onFieldBInput,\n onLeftRangeInput,\n onRightRangeInput,\n onStartPriceInput,\n }\n}\n\nexport function useV3DerivedMintInfo(\n currencyA?: Currency,\n currencyB?: Currency,\n feeAmount?: FeeAmount,\n baseCurrency?: Currency,\n // override for existing position\n existingPosition?: Position\n): {\n pool?: Pool | null\n poolState: PoolState\n ticks: { [bound in Bound]?: number | undefined }\n price?: Price\n pricesAtTicks: {\n [bound in Bound]?: Price | undefined\n }\n currencies: { [field in Field]?: Currency }\n currencyBalances: { [field in Field]?: CurrencyAmount }\n dependentField: Field\n parsedAmounts: { [field in Field]?: CurrencyAmount }\n position: Position | undefined\n noLiquidity?: boolean\n errorMessage?: ReactNode\n invalidPool: boolean\n outOfRange: boolean\n invalidRange: boolean\n depositADisabled: boolean\n depositBDisabled: boolean\n invertPrice: boolean\n ticksAtLimit: { [bound in Bound]?: boolean | undefined }\n} {\n const { account, chainId } = useActiveWeb3React()\n\n const { independentField, typedValue, leftRangeTypedValue, rightRangeTypedValue, startPriceTypedValue } =\n useV3MintState()\n\n const dependentField = independentField === Field.CURRENCY_A ? Field.CURRENCY_B : Field.CURRENCY_A\n\n // currencies\n const currencies: { [field in Field]?: Currency } = useMemo(\n () => ({\n [Field.CURRENCY_A]: currencyA,\n [Field.CURRENCY_B]: currencyB,\n }),\n [currencyA, currencyB]\n )\n\n // formatted with tokens\n const [tokenA, tokenB, baseToken] = useMemo(\n () => [currencyA?.wrapped, currencyB?.wrapped, baseCurrency?.wrapped],\n [currencyA, currencyB, baseCurrency]\n )\n\n const [token0, token1] = useMemo(\n () =>\n tokenA && tokenB ? (tokenA.sortsBefore(tokenB) ? [tokenA, tokenB] : [tokenB, tokenA]) : [undefined, undefined],\n [tokenA, tokenB]\n )\n\n // balances\n const balances = useCurrencyBalances(\n account ?? undefined,\n useMemo(() => [currencies[Field.CURRENCY_A], currencies[Field.CURRENCY_B]], [currencies])\n )\n const currencyBalances: { [field in Field]?: CurrencyAmount } = {\n [Field.CURRENCY_A]: balances[0],\n [Field.CURRENCY_B]: balances[1],\n }\n\n const assetMax = useCurrencyBalance(ASSET_VAULT_ADDRESSES[chainId!], currencies[Field.CURRENCY_B] ?? undefined);\n\n // pool\n const [poolState, pool] = usePool(currencies[Field.CURRENCY_A], currencies[Field.CURRENCY_B], feeAmount)\n const noLiquidity = poolState === PoolState.NOT_EXISTS\n\n // note to parse inputs in reverse\n const invertPrice = Boolean(baseToken && token0 && !baseToken.equals(token0))\n\n // always returns the price with 0 as base token\n const price: Price | undefined = useMemo(() => {\n // if no liquidity use typed value\n if (noLiquidity) {\n const parsedQuoteAmount = tryParseCurrencyAmount(startPriceTypedValue, invertPrice ? token0 : token1)\n if (parsedQuoteAmount && token0 && token1) {\n const baseAmount = tryParseCurrencyAmount('1', invertPrice ? token1 : token0)\n const price =\n baseAmount && parsedQuoteAmount\n ? new Price(\n baseAmount.currency,\n parsedQuoteAmount.currency,\n baseAmount.quotient,\n parsedQuoteAmount.quotient\n )\n : undefined\n return (invertPrice ? price?.invert() : price) ?? undefined\n }\n return undefined\n } else {\n // get the amount of quote currency\n return pool && token0 ? pool.priceOf(token0) : undefined\n }\n }, [noLiquidity, startPriceTypedValue, invertPrice, token1, token0, pool])\n\n // check for invalid price input (converts to invalid ratio)\n const invalidPrice = useMemo(() => {\n const sqrtRatioX96 = price ? encodeSqrtRatioX96(price.numerator, price.denominator) : undefined\n return (\n price &&\n sqrtRatioX96 &&\n !(\n JSBI.greaterThanOrEqual(sqrtRatioX96, TickMath.MIN_SQRT_RATIO) &&\n JSBI.lessThan(sqrtRatioX96, TickMath.MAX_SQRT_RATIO)\n )\n )\n }, [price])\n\n // used for ratio calculation when pool not initialized\n const mockPool = useMemo(() => {\n if (tokenA && tokenB && feeAmount && price && !invalidPrice) {\n const currentTick = priceToClosestTick(price)\n const currentSqrt = TickMath.getSqrtRatioAtTick(currentTick)\n return new Pool(tokenA, tokenB, feeAmount, currentSqrt, JSBI.BigInt(0), currentTick, [])\n } else {\n return undefined\n }\n }, [feeAmount, invalidPrice, price, tokenA, tokenB])\n\n // if pool exists use it, if not use the mock pool\n const poolForPosition: Pool | undefined = pool ?? mockPool\n\n // lower and upper limits in the tick space for `feeAmoun\n const tickSpaceLimits: {\n [bound in Bound]: number | undefined\n } = useMemo(\n () => ({\n [Bound.LOWER]: feeAmount ? nearestUsableTick(TickMath.MIN_TICK, TICK_SPACINGS[feeAmount]) : undefined,\n [Bound.UPPER]: feeAmount ? nearestUsableTick(TickMath.MAX_TICK, TICK_SPACINGS[feeAmount]) : undefined,\n }),\n [feeAmount]\n )\n\n // parse typed range values and determine closest ticks\n // lower should always be a smaller tick\n const ticks: {\n [key: string]: number | undefined\n } = useMemo(() => {\n return {\n [Bound.LOWER]:\n typeof existingPosition?.tickLower === 'number'\n ? existingPosition.tickLower\n : (invertPrice && typeof rightRangeTypedValue === 'boolean') ||\n (!invertPrice && typeof leftRangeTypedValue === 'boolean')\n ? tickSpaceLimits[Bound.LOWER]\n : invertPrice\n ? tryParseTick(token1, token0, feeAmount, rightRangeTypedValue.toString())\n : tryParseTick(token0, token1, feeAmount, leftRangeTypedValue.toString()),\n [Bound.UPPER]:\n typeof existingPosition?.tickUpper === 'number'\n ? existingPosition.tickUpper\n : (!invertPrice && typeof rightRangeTypedValue === 'boolean') ||\n (invertPrice && typeof leftRangeTypedValue === 'boolean')\n ? tickSpaceLimits[Bound.UPPER]\n : invertPrice\n ? tryParseTick(token1, token0, feeAmount, leftRangeTypedValue.toString())\n : tryParseTick(token0, token1, feeAmount, rightRangeTypedValue.toString()),\n }\n }, [\n existingPosition,\n feeAmount,\n invertPrice,\n leftRangeTypedValue,\n rightRangeTypedValue,\n token0,\n token1,\n tickSpaceLimits,\n ])\n\n const { [Bound.LOWER]: tickLower, [Bound.UPPER]: tickUpper } = ticks || {}\n\n // specifies whether the lower and upper ticks is at the exteme bounds\n const ticksAtLimit = useMemo(\n () => ({\n [Bound.LOWER]: feeAmount && tickLower === tickSpaceLimits.LOWER,\n [Bound.UPPER]: feeAmount && tickUpper === tickSpaceLimits.UPPER,\n }),\n [tickSpaceLimits, tickLower, tickUpper, feeAmount]\n )\n\n // mark invalid range\n const invalidRange = Boolean(typeof tickLower === 'number' && typeof tickUpper === 'number' && tickLower >= tickUpper)\n\n // always returns the price with 0 as base token\n const pricesAtTicks = useMemo(() => {\n return {\n [Bound.LOWER]: getTickToPrice(token0, token1, ticks[Bound.LOWER]),\n [Bound.UPPER]: getTickToPrice(token0, token1, ticks[Bound.UPPER]),\n }\n }, [token0, token1, ticks])\n const { [Bound.LOWER]: lowerPrice, [Bound.UPPER]: upperPrice } = pricesAtTicks\n\n // liquidity range warning\n const outOfRange = Boolean(\n !invalidRange && price && lowerPrice && upperPrice && (price.lessThan(lowerPrice) || price.greaterThan(upperPrice))\n )\n\n // amounts\n const independentAmount: CurrencyAmount | undefined = tryParseCurrencyAmount(\n typedValue,\n currencies[independentField]\n )\n\n const dependentAmount: CurrencyAmount | undefined = useMemo(() => {\n // we wrap the currencies just to get the price in terms of the other token\n const wrappedIndependentAmount = independentAmount?.wrapped\n const dependentCurrency = dependentField === Field.CURRENCY_B ? currencyB : currencyA\n if (\n independentAmount &&\n wrappedIndependentAmount &&\n typeof tickLower === 'number' &&\n typeof tickUpper === 'number' &&\n poolForPosition\n ) {\n // if price is out of range or invalid range - return 0 (single deposit will be independent)\n if (outOfRange || invalidRange) {\n return undefined\n }\n\n const position: Position | undefined = wrappedIndependentAmount.currency.equals(poolForPosition.token0)\n ? Position.fromAmount0({\n pool: poolForPosition,\n tickLower,\n tickUpper,\n amount0: independentAmount.quotient,\n useFullPrecision: true, // we want full precision for the theoretical position\n })\n : Position.fromAmount1({\n pool: poolForPosition,\n tickLower,\n tickUpper,\n amount1: independentAmount.quotient,\n })\n\n const dependentTokenAmount = wrappedIndependentAmount.currency.equals(poolForPosition.token0)\n ? position.amount1\n : position.amount0\n return dependentCurrency && CurrencyAmount.fromRawAmount(dependentCurrency, dependentTokenAmount.quotient)\n }\n\n return undefined\n }, [\n independentAmount,\n outOfRange,\n dependentField,\n currencyB,\n currencyA,\n tickLower,\n tickUpper,\n poolForPosition,\n invalidRange,\n ])\n\n const parsedAmounts: { [field in Field]: CurrencyAmount | undefined } = useMemo(() => {\n return {\n [Field.CURRENCY_A]: independentField === Field.CURRENCY_A ? independentAmount : dependentAmount,\n [Field.CURRENCY_B]: independentField === Field.CURRENCY_A ? dependentAmount : independentAmount,\n }\n }, [dependentAmount, independentAmount, independentField])\n\n // single deposit only if price is out of range\n const deposit0Disabled = Boolean(\n typeof tickUpper === 'number' && poolForPosition && poolForPosition.tickCurrent >= tickUpper\n )\n const deposit1Disabled = Boolean(\n typeof tickLower === 'number' && poolForPosition && poolForPosition.tickCurrent <= tickLower\n )\n\n // sorted for token order\n const depositADisabled =\n invalidRange ||\n Boolean(\n (deposit0Disabled && poolForPosition && tokenA && poolForPosition.token0.equals(tokenA)) ||\n (deposit1Disabled && poolForPosition && tokenA && poolForPosition.token1.equals(tokenA))\n )\n const depositBDisabled =\n invalidRange ||\n Boolean(\n (deposit0Disabled && poolForPosition && tokenB && poolForPosition.token0.equals(tokenB)) ||\n (deposit1Disabled && poolForPosition && tokenB && poolForPosition.token1.equals(tokenB))\n )\n\n // create position entity based on users selection\n const position: Position | undefined = useMemo(() => {\n if (\n !poolForPosition ||\n !tokenA ||\n !tokenB ||\n typeof tickLower !== 'number' ||\n typeof tickUpper !== 'number' ||\n invalidRange\n ) {\n return undefined\n }\n\n // mark as 0 if disabled because out of range\n const amount0 = !deposit0Disabled\n ? parsedAmounts?.[tokenA.equals(poolForPosition.token0) ? Field.CURRENCY_A : Field.CURRENCY_B]?.quotient\n : BIG_INT_ZERO\n const amount1 = !deposit1Disabled\n ? parsedAmounts?.[tokenA.equals(poolForPosition.token0) ? Field.CURRENCY_B : Field.CURRENCY_A]?.quotient\n : BIG_INT_ZERO\n\n if (amount0 !== undefined && amount1 !== undefined) {\n return Position.fromAmounts({\n pool: poolForPosition,\n tickLower,\n tickUpper,\n amount0,\n amount1,\n useFullPrecision: true, // we want full precision for the theoretical position\n })\n } else {\n return undefined\n }\n }, [\n parsedAmounts,\n poolForPosition,\n tokenA,\n tokenB,\n deposit0Disabled,\n deposit1Disabled,\n invalidRange,\n tickLower,\n tickUpper,\n ])\n\n let errorMessage: ReactNode | undefined\n if (!account) {\n errorMessage = \"Connect Wallet\"\n }\n\n if (poolState === PoolState.INVALID) {\n errorMessage = errorMessage ?? \"Invalid pair\"\n }\n\n if (invalidPrice) {\n errorMessage = errorMessage ?? \"Invalid price input\"\n }\n\n if (\n (!parsedAmounts[Field.CURRENCY_A] && !depositADisabled) ||\n (!parsedAmounts[Field.CURRENCY_B] && !depositBDisabled)\n ) {\n errorMessage = errorMessage ?? \"Enter an amount\"\n }\n\n const { [Field.CURRENCY_A]: currencyAAmount, [Field.CURRENCY_B]: currencyBAmount } = parsedAmounts\n\n if (currencyAAmount && currencyBalances?.[Field.CURRENCY_A]?.lessThan(currencyAAmount)) {\n errorMessage = <>Insufficient {currencies[Field.CURRENCY_A]?.symbol} balance\n }\n\n if (currencyBAmount && assetMax?.lessThan(currencyBAmount)) {\n errorMessage = <>Insufficient {currencies[Field.CURRENCY_B]?.symbol} balance\n }\n\n if (tickLower === undefined || tickUpper === undefined) {\n errorMessage = \"Set Price Range\"\n }\n\n if (outOfRange) {\n errorMessage = \"Out of Range\"\n }\n\n if (noLiquidity) {\n errorMessage = \"No Liquidity\"\n }\n\n const invalidPool = poolState === PoolState.INVALID\n\n return {\n dependentField,\n currencies,\n pool,\n poolState,\n currencyBalances,\n parsedAmounts,\n ticks,\n price,\n pricesAtTicks,\n position,\n noLiquidity,\n errorMessage,\n invalidPool,\n invalidRange,\n outOfRange,\n depositADisabled,\n depositBDisabled,\n invertPrice,\n ticksAtLimit,\n }\n}\n\nexport function useRangeHopCallbacks(\n baseCurrency: Currency | undefined,\n quoteCurrency: Currency | undefined,\n feeAmount: FeeAmount | undefined,\n tickLower: number | undefined,\n tickUpper: number | undefined,\n pool?: Pool | undefined | null\n) {\n const dispatch = useAppDispatch()\n\n const baseToken = useMemo(() => baseCurrency?.wrapped, [baseCurrency])\n const quoteToken = useMemo(() => quoteCurrency?.wrapped, [quoteCurrency])\n\n const getDecrementLower = useCallback(() => {\n if (baseToken && quoteToken && typeof tickLower === 'number' && feeAmount) {\n const newPrice = tickToPrice(baseToken, quoteToken, tickLower - TICK_SPACINGS[feeAmount])\n return newPrice.toSignificant(5, undefined, Rounding.ROUND_UP)\n }\n // use pool current tick as starting tick if we have pool but no tick input\n if (!(typeof tickLower === 'number') && baseToken && quoteToken && feeAmount && pool) {\n const newPrice = tickToPrice(baseToken, quoteToken, pool.tickCurrent - TICK_SPACINGS[feeAmount])\n return newPrice.toSignificant(5, undefined, Rounding.ROUND_UP)\n }\n return ''\n }, [baseToken, quoteToken, tickLower, feeAmount, pool])\n\n const getIncrementLower = useCallback(() => {\n if (baseToken && quoteToken && typeof tickLower === 'number' && feeAmount) {\n const newPrice = tickToPrice(baseToken, quoteToken, tickLower + TICK_SPACINGS[feeAmount])\n return newPrice.toSignificant(5, undefined, Rounding.ROUND_UP)\n }\n // use pool current tick as starting tick if we have pool but no tick input\n if (!(typeof tickLower === 'number') && baseToken && quoteToken && feeAmount && pool) {\n const newPrice = tickToPrice(baseToken, quoteToken, pool.tickCurrent + TICK_SPACINGS[feeAmount])\n return newPrice.toSignificant(5, undefined, Rounding.ROUND_UP)\n }\n return ''\n }, [baseToken, quoteToken, tickLower, feeAmount, pool])\n\n const getDecrementUpper = useCallback(() => {\n if (baseToken && quoteToken && typeof tickUpper === 'number' && feeAmount) {\n const newPrice = tickToPrice(baseToken, quoteToken, tickUpper - TICK_SPACINGS[feeAmount])\n return newPrice.toSignificant(5, undefined, Rounding.ROUND_UP)\n }\n // use pool current tick as starting tick if we have pool but no tick input\n if (!(typeof tickUpper === 'number') && baseToken && quoteToken && feeAmount && pool) {\n const newPrice = tickToPrice(baseToken, quoteToken, pool.tickCurrent - TICK_SPACINGS[feeAmount])\n return newPrice.toSignificant(5, undefined, Rounding.ROUND_UP)\n }\n return ''\n }, [baseToken, quoteToken, tickUpper, feeAmount, pool])\n\n const getIncrementUpper = useCallback(() => {\n if (baseToken && quoteToken && typeof tickUpper === 'number' && feeAmount) {\n const newPrice = tickToPrice(baseToken, quoteToken, tickUpper + TICK_SPACINGS[feeAmount])\n return newPrice.toSignificant(5, undefined, Rounding.ROUND_UP)\n }\n // use pool current tick as starting tick if we have pool but no tick input\n if (!(typeof tickUpper === 'number') && baseToken && quoteToken && feeAmount && pool) {\n const newPrice = tickToPrice(baseToken, quoteToken, pool.tickCurrent + TICK_SPACINGS[feeAmount])\n return newPrice.toSignificant(5, undefined, Rounding.ROUND_UP)\n }\n return ''\n }, [baseToken, quoteToken, tickUpper, feeAmount, pool])\n\n const getSetFullRange = useCallback(() => {\n dispatch(setFullRange())\n }, [dispatch])\n\n return { getDecrementLower, getIncrementLower, getDecrementUpper, getIncrementUpper, getSetFullRange }\n}\n","import { BigNumber } from '@ethersproject/bignumber'\nimport { L2_CHAIN_IDS } from 'constants/chains'\nimport { L2_DEADLINE_FROM_NOW } from 'constants/misc'\nimport useActiveWeb3React from 'hooks/useActiveWeb3React'\nimport { useMemo } from 'react'\nimport { useAppSelector } from 'state/hooks'\n\nimport useCurrentBlockTimestamp from './useCurrentBlockTimestamp'\n\n// combines the block timestamp with the user setting to give the deadline that should be used for any submitted transaction\nexport default function useTransactionDeadline(): BigNumber | undefined {\n const { chainId } = useActiveWeb3React()\n const ttl = useAppSelector((state) => state.user.userDeadline)\n const blockTimestamp = useCurrentBlockTimestamp()\n return useMemo(() => {\n if (blockTimestamp && chainId && L2_CHAIN_IDS.includes(chainId)) return blockTimestamp.add(L2_DEADLINE_FROM_NOW)\n if (blockTimestamp && ttl) return blockTimestamp.add(ttl)\n return undefined\n }, [blockTimestamp, chainId, ttl])\n}\n","import { TradeType } from '@uniswap/sdk-core'\n\nimport { VoteOption } from '../governance/types'\n\ninterface SerializableTransactionReceipt {\n to: string\n from: string\n contractAddress: string\n transactionIndex: number\n blockHash: string\n transactionHash: string\n blockNumber: number\n status?: number\n}\n\n/**\n * Be careful adding to this enum, always assign a unique value (typescript will not prevent duplicate values).\n * These values is persisted in state and if you change the value it will cause errors\n */\nexport enum TransactionType {\n APPROVAL = 0,\n SWAP = 1,\n DEPOSIT_LIQUIDITY_STAKING = 2,\n WITHDRAW_LIQUIDITY_STAKING = 3,\n CLAIM = 4,\n VOTE = 5,\n DELEGATE = 6,\n WRAP = 7,\n CREATE_V3_POOL = 8,\n ADD_LIQUIDITY_V3_POOL = 9,\n ADD_LIQUIDITY_V2_POOL = 10,\n MIGRATE_LIQUIDITY_V3 = 11,\n COLLECT_FEES = 12,\n REMOVE_LIQUIDITY_V3 = 13,\n SUBMIT_PROPOSAL = 14,\n}\n\nexport interface BaseTransactionInfo {\n type: TransactionType\n}\n\nexport interface VoteTransactionInfo extends BaseTransactionInfo {\n type: TransactionType.VOTE\n governorAddress: string\n proposalId: number\n decision: VoteOption\n reason: string\n}\n\nexport interface DelegateTransactionInfo extends BaseTransactionInfo {\n type: TransactionType.DELEGATE\n delegatee: string\n}\n\nexport interface ApproveTransactionInfo extends BaseTransactionInfo {\n type: TransactionType.APPROVAL\n tokenAddress: string\n spender: string\n}\n\ninterface BaseSwapTransactionInfo extends BaseTransactionInfo {\n type: TransactionType.SWAP\n tradeType: TradeType\n inputCurrencyId: string\n outputCurrencyId: string\n}\n\nexport interface ExactInputSwapTransactionInfo extends BaseSwapTransactionInfo {\n tradeType: TradeType.EXACT_INPUT\n inputCurrencyAmountRaw: string\n expectedOutputCurrencyAmountRaw: string\n minimumOutputCurrencyAmountRaw: string\n}\nexport interface ExactOutputSwapTransactionInfo extends BaseSwapTransactionInfo {\n tradeType: TradeType.EXACT_OUTPUT\n outputCurrencyAmountRaw: string\n expectedInputCurrencyAmountRaw: string\n maximumInputCurrencyAmountRaw: string\n}\n\nexport interface DepositLiquidityStakingTransactionInfo {\n type: TransactionType.DEPOSIT_LIQUIDITY_STAKING\n token0Address: string\n token1Address: string\n}\n\nexport interface WithdrawLiquidityStakingTransactionInfo {\n type: TransactionType.WITHDRAW_LIQUIDITY_STAKING\n token0Address: string\n token1Address: string\n}\n\nexport interface WrapTransactionInfo {\n type: TransactionType.WRAP\n unwrapped: boolean\n currencyAmountRaw: string\n chainId?: number\n}\n\nexport interface ClaimTransactionInfo {\n type: TransactionType.CLAIM\n recipient: string\n uniAmountRaw?: string\n}\n\nexport interface CreateV3PoolTransactionInfo {\n type: TransactionType.CREATE_V3_POOL\n baseCurrencyId: string\n quoteCurrencyId: string\n}\n\nexport interface AddLiquidityV3PoolTransactionInfo {\n type: TransactionType.ADD_LIQUIDITY_V3_POOL\n createPool: boolean\n baseCurrencyId: string\n quoteCurrencyId: string\n feeAmount: number\n expectedAmountBaseRaw: string\n expectedAmountQuoteRaw: string\n}\n\nexport interface AddLiquidityV2PoolTransactionInfo {\n type: TransactionType.ADD_LIQUIDITY_V2_POOL\n baseCurrencyId: string\n quoteCurrencyId: string\n expectedAmountBaseRaw: string\n expectedAmountQuoteRaw: string\n}\n\nexport interface MigrateV2LiquidityToV3TransactionInfo {\n type: TransactionType.MIGRATE_LIQUIDITY_V3\n baseCurrencyId: string\n quoteCurrencyId: string\n isFork: boolean\n}\n\nexport interface CollectFeesTransactionInfo {\n type: TransactionType.COLLECT_FEES\n currencyId0: string\n currencyId1: string\n}\n\nexport interface RemoveLiquidityV3TransactionInfo {\n type: TransactionType.REMOVE_LIQUIDITY_V3\n baseCurrencyId: string\n quoteCurrencyId: string\n expectedAmountBaseRaw: string\n expectedAmountQuoteRaw: string\n}\n\nexport interface SubmitProposalTransactionInfo {\n type: TransactionType.SUBMIT_PROPOSAL\n}\n\nexport type TransactionInfo =\n | ApproveTransactionInfo\n | ExactOutputSwapTransactionInfo\n | ExactInputSwapTransactionInfo\n | ClaimTransactionInfo\n | VoteTransactionInfo\n | DelegateTransactionInfo\n | DepositLiquidityStakingTransactionInfo\n | WithdrawLiquidityStakingTransactionInfo\n | WrapTransactionInfo\n | CreateV3PoolTransactionInfo\n | AddLiquidityV3PoolTransactionInfo\n | AddLiquidityV2PoolTransactionInfo\n | MigrateV2LiquidityToV3TransactionInfo\n | CollectFeesTransactionInfo\n | RemoveLiquidityV3TransactionInfo\n | SubmitProposalTransactionInfo\n\nexport interface TransactionDetails {\n hash: string\n receipt?: SerializableTransactionReceipt\n lastCheckedBlockNumber?: number\n addedTime: number\n confirmedTime?: number\n from: string\n info: TransactionInfo\n}\n","// @ts-nocheck\nimport { AutoColumn } from 'components/Column'\nimport CurrencyInputPanel from 'components/CurrencyInputPanel'\nimport Input from 'components/NumericalInput'\nimport { BodyWrapper } from 'pages/AppBody'\nimport styled from 'styled-components/macro'\nimport { AddRemoveTabs } from '../../components/NavigationTabs'\n\nexport const HeaderTabs = styled(AddRemoveTabs)`\n margin-bottom:30px;\n`\nexport const PageWrapper = styled(BodyWrapper) <{ wide: boolean }>`\n \n width: 100% ;\n \n max-width:512px;\n height:100%;\n \n padding: ${({ wide }) => (wide ? '10px' : '0')};\n padding: 32px;\n ${({ theme }) => theme.mediaWidth.upToMedium`\n max-width: 480px;\n `};\n ${({ theme }) => theme.mediaWidth.upToSmall`\n max-width: 350px;\n `};\n`\n\nexport const Wrapper = styled.div`\n position: relative;\n min-width: 400px;\n margin-top: 30px\n\n ${({ theme }) => theme.mediaWidth.upToMedium`\n min-width: 400px;\n `};\n\n ${({ theme }) => theme.mediaWidth.upToExtraSmall`\n min-width: 280px;\n`};\n`\n\nexport const ScrollablePage = styled.div`\n position: relative;\n display: flex;\n flex-direction: column;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%); \n ${({ theme }) => theme.mediaWidth.upToMedium`\n max-width: 480px;\n margin: 0 auto;\n `};\n\n`\n\nexport const DynamicSection = styled(AutoColumn) <{ disabled?: boolean }>`\n opacity: 1 ;\n pointer-events: auto ;\n padding-bottom: 1rem;\n`\n\nexport const CurrencyDropdown = styled(CurrencyInputPanel)`\n width: fit-content;\n`\n\nexport const StyledInput = styled(Input)`\n background-color: ${({ theme }) => theme.bg0};\n text-align: left;\n font-size: 18px;\n width: 100%;\n`\n\n/* two-column layout where DepositAmount is moved at the very end on mobile. */\nexport const ResponsiveTwoColumns = styled.div<{ wide: boolean }>`\n display: grid;\n grid-column-gap: 50px;\n grid-row-gap: 15px;\n grid-template-columns: ${({ wide }) => (wide ? '1fr 1fr' : '1fr')};\n grid-template-rows: max-content;\n grid-auto-flow: row;\n ${({ theme }) => theme.mediaWidth.upToMedium`\n grid-template-columns: 1fr;\n\n margin-top: 0;\n `};\n`\n\nexport const RightContainer = styled(AutoColumn)`\n grid-row: 1 / 3;\n grid-column: 2;\n height: fit-content;\n\n ${({ theme }) => theme.mediaWidth.upToMedium`\n grid-row: 2 / 3;\n grid-column: 1;\n `};\n`\n\nexport const StackedContainer = styled.div`\n display: grid;\n`\n\nexport const StackedItem = styled.div<{ zIndex?: number }>`\n grid-column: 1;\n grid-row: 1;\n height: 100%;\n z-index: ${({ zIndex }) => zIndex};\n`\n\nexport const MediumOnly = styled.div`\n ${({ theme }) => theme.mediaWidth.upToMedium`\n display: none;\n `};\n`\n\nexport const HideMedium = styled.div`\n display: none;\n\n ${({ theme }) => theme.mediaWidth.upToMedium`\n display: block;\n `};\n`\n","import styled from 'styled-components/macro'\n\nexport const ToggleWrapper = styled.button<{ width?: string }>`\n display: flex;\n align-items: center;\n width: ${({ width }) => width ?? '100%'};\n padding: 1px;\n background: ${({ theme }) => theme.bg1};\n border-radius: 8px;\n border: ${({ theme }) => '1px solid ' + theme.bg2};\n cursor: pointer;\n outline: none;\n`\n\nexport const ToggleElement = styled.span<{ isActive?: boolean; fontSize?: string }>`\n display: flex;\n align-items: center;\n width: 100%;\n padding: 4px 0.5rem;\n border-radius: 6px;\n justify-content: center;\n height: 100%;\n background: ${({ theme, isActive }) => (isActive ? theme.bg0 : 'none')};\n color: ${({ theme, isActive }) => (isActive ? theme.text1 : theme.text3)};\n font-size: ${({ fontSize }) => fontSize ?? '1rem'};\n font-weight: 600;\n white-space: nowrap;\n :hover {\n user-select: initial;\n color: ${({ theme, isActive }) => (isActive ? theme.text2 : theme.text3)};\n }\n`\n","// @ts-nocheck\nimport { Currency } from '@uniswap/sdk-core'\nimport { ToggleElement, ToggleWrapper } from 'components/Toggle/MultiToggle'\n\n// the order of displayed base currencies from left to right is always in sort order\n// currencyA is treated as the preferred base currency\nexport default function RateToggle({\n currencyA,\n currencyB,\n handleRateToggle,\n}: {\n currencyA: Currency\n currencyB: Currency\n handleRateToggle: () => void\n}) {\n const tokenA = currencyA?.wrapped\n const tokenB = currencyB?.wrapped\n\n const isSorted = tokenA && tokenB && tokenA.sortsBefore(tokenB)\n\n return tokenA && tokenB ? (\n
\n \n \n {isSorted ? currencyA.symbol : currencyB.symbol}\n \n \n {isSorted ? currencyB.symbol : currencyA.symbol}\n \n \n
\n ) : null\n}\n","import { api } from './slice';\nexport type Maybe = T | null;\nexport type Exact = { [K in keyof T]: T[K] };\nexport type MakeOptional = Omit & { [SubKey in K]?: Maybe };\nexport type MakeMaybe = Omit & { [SubKey in K]: Maybe };\n/** All built-in and custom scalars, mapped to their actual values */\nexport type Scalars = {\n ID: string;\n String: string;\n Boolean: boolean;\n Int: number;\n Float: number;\n BigDecimal: any;\n BigInt: any;\n Bytes: any;\n};\n\n\n\n\n\n\n/** The block at which the query should be executed. */\nexport type Block_Height = {\n /** Value containing a block hash */\n hash?: Maybe;\n /** Value containing a block number */\n number?: Maybe;\n /**\n * Value containing the minimum block number.\n * In the case of `number_gte`, the query will be executed on the latest block only if\n * the subgraph has progressed to or past the minimum block number.\n * Defaults to the latest block when omitted.\n */\n number_gte?: Maybe;\n};\n\nexport type Bundle = {\n __typename?: 'Bundle';\n id: Scalars['ID'];\n ethPriceUSD: Scalars['BigDecimal'];\n};\n\nexport type Bundle_Filter = {\n id?: Maybe;\n id_not?: Maybe;\n id_gt?: Maybe;\n id_lt?: Maybe;\n id_gte?: Maybe;\n id_lte?: Maybe;\n id_in?: Maybe>;\n id_not_in?: Maybe>;\n ethPriceUSD?: Maybe;\n ethPriceUSD_not?: Maybe;\n ethPriceUSD_gt?: Maybe;\n ethPriceUSD_lt?: Maybe;\n ethPriceUSD_gte?: Maybe;\n ethPriceUSD_lte?: Maybe;\n ethPriceUSD_in?: Maybe>;\n ethPriceUSD_not_in?: Maybe>;\n};\n\nexport enum Bundle_OrderBy {\n Id = 'id',\n EthPriceUsd = 'ethPriceUSD'\n}\n\nexport type Burn = {\n __typename?: 'Burn';\n id: Scalars['ID'];\n transaction: Transaction;\n pool: Pool;\n token0: Token;\n token1: Token;\n timestamp: Scalars['BigInt'];\n owner?: Maybe;\n origin: Scalars['Bytes'];\n amount: Scalars['BigInt'];\n amount0: Scalars['BigDecimal'];\n amount1: Scalars['BigDecimal'];\n amountUSD?: Maybe;\n tickLower: Scalars['BigInt'];\n tickUpper: Scalars['BigInt'];\n logIndex?: Maybe;\n};\n\nexport type Burn_Filter = {\n id?: Maybe;\n id_not?: Maybe;\n id_gt?: Maybe;\n id_lt?: Maybe;\n id_gte?: Maybe;\n id_lte?: Maybe;\n id_in?: Maybe>;\n id_not_in?: Maybe>;\n transaction?: Maybe;\n transaction_not?: Maybe;\n transaction_gt?: Maybe;\n transaction_lt?: Maybe;\n transaction_gte?: Maybe;\n transaction_lte?: Maybe;\n transaction_in?: Maybe>;\n transaction_not_in?: Maybe>;\n transaction_contains?: Maybe;\n transaction_contains_nocase?: Maybe;\n transaction_not_contains?: Maybe;\n transaction_not_contains_nocase?: Maybe;\n transaction_starts_with?: Maybe;\n transaction_starts_with_nocase?: Maybe;\n transaction_not_starts_with?: Maybe;\n transaction_not_starts_with_nocase?: Maybe;\n transaction_ends_with?: Maybe;\n transaction_ends_with_nocase?: Maybe;\n transaction_not_ends_with?: Maybe;\n transaction_not_ends_with_nocase?: Maybe;\n pool?: Maybe;\n pool_not?: Maybe;\n pool_gt?: Maybe;\n pool_lt?: Maybe;\n pool_gte?: Maybe;\n pool_lte?: Maybe;\n pool_in?: Maybe>;\n pool_not_in?: Maybe>;\n pool_contains?: Maybe;\n pool_contains_nocase?: Maybe;\n pool_not_contains?: Maybe;\n pool_not_contains_nocase?: Maybe;\n pool_starts_with?: Maybe;\n pool_starts_with_nocase?: Maybe;\n pool_not_starts_with?: Maybe;\n pool_not_starts_with_nocase?: Maybe;\n pool_ends_with?: Maybe;\n pool_ends_with_nocase?: Maybe;\n pool_not_ends_with?: Maybe;\n pool_not_ends_with_nocase?: Maybe;\n token0?: Maybe;\n token0_not?: Maybe;\n token0_gt?: Maybe;\n token0_lt?: Maybe;\n token0_gte?: Maybe;\n token0_lte?: Maybe;\n token0_in?: Maybe>;\n token0_not_in?: Maybe>;\n token0_contains?: Maybe;\n token0_contains_nocase?: Maybe;\n token0_not_contains?: Maybe;\n token0_not_contains_nocase?: Maybe;\n token0_starts_with?: Maybe;\n token0_starts_with_nocase?: Maybe;\n token0_not_starts_with?: Maybe;\n token0_not_starts_with_nocase?: Maybe;\n token0_ends_with?: Maybe;\n token0_ends_with_nocase?: Maybe;\n token0_not_ends_with?: Maybe;\n token0_not_ends_with_nocase?: Maybe;\n token1?: Maybe;\n token1_not?: Maybe;\n token1_gt?: Maybe;\n token1_lt?: Maybe;\n token1_gte?: Maybe;\n token1_lte?: Maybe;\n token1_in?: Maybe>;\n token1_not_in?: Maybe>;\n token1_contains?: Maybe;\n token1_contains_nocase?: Maybe;\n token1_not_contains?: Maybe;\n token1_not_contains_nocase?: Maybe;\n token1_starts_with?: Maybe;\n token1_starts_with_nocase?: Maybe;\n token1_not_starts_with?: Maybe;\n token1_not_starts_with_nocase?: Maybe;\n token1_ends_with?: Maybe;\n token1_ends_with_nocase?: Maybe;\n token1_not_ends_with?: Maybe;\n token1_not_ends_with_nocase?: Maybe;\n timestamp?: Maybe;\n timestamp_not?: Maybe;\n timestamp_gt?: Maybe;\n timestamp_lt?: Maybe;\n timestamp_gte?: Maybe;\n timestamp_lte?: Maybe;\n timestamp_in?: Maybe>;\n timestamp_not_in?: Maybe>;\n owner?: Maybe;\n owner_not?: Maybe;\n owner_in?: Maybe>;\n owner_not_in?: Maybe>;\n owner_contains?: Maybe;\n owner_not_contains?: Maybe;\n origin?: Maybe;\n origin_not?: Maybe;\n origin_in?: Maybe>;\n origin_not_in?: Maybe>;\n origin_contains?: Maybe;\n origin_not_contains?: Maybe;\n amount?: Maybe;\n amount_not?: Maybe;\n amount_gt?: Maybe;\n amount_lt?: Maybe;\n amount_gte?: Maybe;\n amount_lte?: Maybe;\n amount_in?: Maybe>;\n amount_not_in?: Maybe>;\n amount0?: Maybe;\n amount0_not?: Maybe;\n amount0_gt?: Maybe;\n amount0_lt?: Maybe;\n amount0_gte?: Maybe;\n amount0_lte?: Maybe;\n amount0_in?: Maybe>;\n amount0_not_in?: Maybe>;\n amount1?: Maybe;\n amount1_not?: Maybe;\n amount1_gt?: Maybe;\n amount1_lt?: Maybe;\n amount1_gte?: Maybe;\n amount1_lte?: Maybe;\n amount1_in?: Maybe>;\n amount1_not_in?: Maybe>;\n amountUSD?: Maybe;\n amountUSD_not?: Maybe;\n amountUSD_gt?: Maybe;\n amountUSD_lt?: Maybe;\n amountUSD_gte?: Maybe;\n amountUSD_lte?: Maybe;\n amountUSD_in?: Maybe>;\n amountUSD_not_in?: Maybe>;\n tickLower?: Maybe;\n tickLower_not?: Maybe;\n tickLower_gt?: Maybe;\n tickLower_lt?: Maybe;\n tickLower_gte?: Maybe;\n tickLower_lte?: Maybe;\n tickLower_in?: Maybe>;\n tickLower_not_in?: Maybe>;\n tickUpper?: Maybe;\n tickUpper_not?: Maybe;\n tickUpper_gt?: Maybe;\n tickUpper_lt?: Maybe;\n tickUpper_gte?: Maybe;\n tickUpper_lte?: Maybe;\n tickUpper_in?: Maybe>;\n tickUpper_not_in?: Maybe>;\n logIndex?: Maybe;\n logIndex_not?: Maybe;\n logIndex_gt?: Maybe;\n logIndex_lt?: Maybe;\n logIndex_gte?: Maybe;\n logIndex_lte?: Maybe;\n logIndex_in?: Maybe>;\n logIndex_not_in?: Maybe>;\n};\n\nexport enum Burn_OrderBy {\n Id = 'id',\n Transaction = 'transaction',\n Pool = 'pool',\n Token0 = 'token0',\n Token1 = 'token1',\n Timestamp = 'timestamp',\n Owner = 'owner',\n Origin = 'origin',\n Amount = 'amount',\n Amount0 = 'amount0',\n Amount1 = 'amount1',\n AmountUsd = 'amountUSD',\n TickLower = 'tickLower',\n TickUpper = 'tickUpper',\n LogIndex = 'logIndex'\n}\n\n\nexport type Collect = {\n __typename?: 'Collect';\n id: Scalars['ID'];\n transaction: Transaction;\n timestamp: Scalars['BigInt'];\n pool: Pool;\n owner?: Maybe;\n amount0: Scalars['BigDecimal'];\n amount1: Scalars['BigDecimal'];\n amountUSD?: Maybe;\n tickLower: Scalars['BigInt'];\n tickUpper: Scalars['BigInt'];\n logIndex?: Maybe;\n};\n\nexport type Collect_Filter = {\n id?: Maybe;\n id_not?: Maybe;\n id_gt?: Maybe;\n id_lt?: Maybe;\n id_gte?: Maybe;\n id_lte?: Maybe;\n id_in?: Maybe>;\n id_not_in?: Maybe>;\n transaction?: Maybe;\n transaction_not?: Maybe;\n transaction_gt?: Maybe;\n transaction_lt?: Maybe;\n transaction_gte?: Maybe;\n transaction_lte?: Maybe;\n transaction_in?: Maybe>;\n transaction_not_in?: Maybe>;\n transaction_contains?: Maybe;\n transaction_contains_nocase?: Maybe;\n transaction_not_contains?: Maybe;\n transaction_not_contains_nocase?: Maybe;\n transaction_starts_with?: Maybe;\n transaction_starts_with_nocase?: Maybe;\n transaction_not_starts_with?: Maybe;\n transaction_not_starts_with_nocase?: Maybe;\n transaction_ends_with?: Maybe;\n transaction_ends_with_nocase?: Maybe;\n transaction_not_ends_with?: Maybe;\n transaction_not_ends_with_nocase?: Maybe;\n timestamp?: Maybe;\n timestamp_not?: Maybe;\n timestamp_gt?: Maybe;\n timestamp_lt?: Maybe;\n timestamp_gte?: Maybe;\n timestamp_lte?: Maybe;\n timestamp_in?: Maybe>;\n timestamp_not_in?: Maybe>;\n pool?: Maybe;\n pool_not?: Maybe;\n pool_gt?: Maybe;\n pool_lt?: Maybe;\n pool_gte?: Maybe;\n pool_lte?: Maybe;\n pool_in?: Maybe>;\n pool_not_in?: Maybe>;\n pool_contains?: Maybe;\n pool_contains_nocase?: Maybe;\n pool_not_contains?: Maybe;\n pool_not_contains_nocase?: Maybe;\n pool_starts_with?: Maybe;\n pool_starts_with_nocase?: Maybe;\n pool_not_starts_with?: Maybe;\n pool_not_starts_with_nocase?: Maybe;\n pool_ends_with?: Maybe;\n pool_ends_with_nocase?: Maybe;\n pool_not_ends_with?: Maybe;\n pool_not_ends_with_nocase?: Maybe;\n owner?: Maybe;\n owner_not?: Maybe;\n owner_in?: Maybe>;\n owner_not_in?: Maybe>;\n owner_contains?: Maybe;\n owner_not_contains?: Maybe;\n amount0?: Maybe;\n amount0_not?: Maybe;\n amount0_gt?: Maybe;\n amount0_lt?: Maybe;\n amount0_gte?: Maybe;\n amount0_lte?: Maybe;\n amount0_in?: Maybe>;\n amount0_not_in?: Maybe>;\n amount1?: Maybe;\n amount1_not?: Maybe;\n amount1_gt?: Maybe;\n amount1_lt?: Maybe;\n amount1_gte?: Maybe;\n amount1_lte?: Maybe;\n amount1_in?: Maybe>;\n amount1_not_in?: Maybe>;\n amountUSD?: Maybe;\n amountUSD_not?: Maybe;\n amountUSD_gt?: Maybe;\n amountUSD_lt?: Maybe;\n amountUSD_gte?: Maybe;\n amountUSD_lte?: Maybe;\n amountUSD_in?: Maybe>;\n amountUSD_not_in?: Maybe>;\n tickLower?: Maybe;\n tickLower_not?: Maybe;\n tickLower_gt?: Maybe;\n tickLower_lt?: Maybe;\n tickLower_gte?: Maybe;\n tickLower_lte?: Maybe;\n tickLower_in?: Maybe>;\n tickLower_not_in?: Maybe>;\n tickUpper?: Maybe;\n tickUpper_not?: Maybe;\n tickUpper_gt?: Maybe;\n tickUpper_lt?: Maybe;\n tickUpper_gte?: Maybe;\n tickUpper_lte?: Maybe;\n tickUpper_in?: Maybe>;\n tickUpper_not_in?: Maybe>;\n logIndex?: Maybe;\n logIndex_not?: Maybe;\n logIndex_gt?: Maybe;\n logIndex_lt?: Maybe;\n logIndex_gte?: Maybe;\n logIndex_lte?: Maybe;\n logIndex_in?: Maybe>;\n logIndex_not_in?: Maybe>;\n};\n\nexport enum Collect_OrderBy {\n Id = 'id',\n Transaction = 'transaction',\n Timestamp = 'timestamp',\n Pool = 'pool',\n Owner = 'owner',\n Amount0 = 'amount0',\n Amount1 = 'amount1',\n AmountUsd = 'amountUSD',\n TickLower = 'tickLower',\n TickUpper = 'tickUpper',\n LogIndex = 'logIndex'\n}\n\nexport type Factory = {\n __typename?: 'Factory';\n id: Scalars['ID'];\n poolCount: Scalars['BigInt'];\n txCount: Scalars['BigInt'];\n totalVolumeUSD: Scalars['BigDecimal'];\n totalVolumeETH: Scalars['BigDecimal'];\n totalFeesUSD: Scalars['BigDecimal'];\n totalFeesETH: Scalars['BigDecimal'];\n untrackedVolumeUSD: Scalars['BigDecimal'];\n totalValueLockedUSD: Scalars['BigDecimal'];\n totalValueLockedETH: Scalars['BigDecimal'];\n totalValueLockedUSDUntracked: Scalars['BigDecimal'];\n totalValueLockedETHUntracked: Scalars['BigDecimal'];\n owner: Scalars['ID'];\n};\n\nexport type Factory_Filter = {\n id?: Maybe;\n id_not?: Maybe;\n id_gt?: Maybe;\n id_lt?: Maybe;\n id_gte?: Maybe;\n id_lte?: Maybe;\n id_in?: Maybe>;\n id_not_in?: Maybe>;\n poolCount?: Maybe;\n poolCount_not?: Maybe;\n poolCount_gt?: Maybe;\n poolCount_lt?: Maybe;\n poolCount_gte?: Maybe;\n poolCount_lte?: Maybe;\n poolCount_in?: Maybe>;\n poolCount_not_in?: Maybe>;\n txCount?: Maybe;\n txCount_not?: Maybe;\n txCount_gt?: Maybe;\n txCount_lt?: Maybe;\n txCount_gte?: Maybe;\n txCount_lte?: Maybe;\n txCount_in?: Maybe>;\n txCount_not_in?: Maybe>;\n totalVolumeUSD?: Maybe;\n totalVolumeUSD_not?: Maybe;\n totalVolumeUSD_gt?: Maybe;\n totalVolumeUSD_lt?: Maybe;\n totalVolumeUSD_gte?: Maybe;\n totalVolumeUSD_lte?: Maybe;\n totalVolumeUSD_in?: Maybe>;\n totalVolumeUSD_not_in?: Maybe>;\n totalVolumeETH?: Maybe;\n totalVolumeETH_not?: Maybe;\n totalVolumeETH_gt?: Maybe;\n totalVolumeETH_lt?: Maybe;\n totalVolumeETH_gte?: Maybe;\n totalVolumeETH_lte?: Maybe;\n totalVolumeETH_in?: Maybe>;\n totalVolumeETH_not_in?: Maybe>;\n totalFeesUSD?: Maybe;\n totalFeesUSD_not?: Maybe;\n totalFeesUSD_gt?: Maybe;\n totalFeesUSD_lt?: Maybe;\n totalFeesUSD_gte?: Maybe;\n totalFeesUSD_lte?: Maybe;\n totalFeesUSD_in?: Maybe>;\n totalFeesUSD_not_in?: Maybe>;\n totalFeesETH?: Maybe;\n totalFeesETH_not?: Maybe;\n totalFeesETH_gt?: Maybe;\n totalFeesETH_lt?: Maybe;\n totalFeesETH_gte?: Maybe;\n totalFeesETH_lte?: Maybe;\n totalFeesETH_in?: Maybe>;\n totalFeesETH_not_in?: Maybe>;\n untrackedVolumeUSD?: Maybe;\n untrackedVolumeUSD_not?: Maybe;\n untrackedVolumeUSD_gt?: Maybe;\n untrackedVolumeUSD_lt?: Maybe;\n untrackedVolumeUSD_gte?: Maybe;\n untrackedVolumeUSD_lte?: Maybe;\n untrackedVolumeUSD_in?: Maybe>;\n untrackedVolumeUSD_not_in?: Maybe>;\n totalValueLockedUSD?: Maybe;\n totalValueLockedUSD_not?: Maybe;\n totalValueLockedUSD_gt?: Maybe;\n totalValueLockedUSD_lt?: Maybe;\n totalValueLockedUSD_gte?: Maybe;\n totalValueLockedUSD_lte?: Maybe;\n totalValueLockedUSD_in?: Maybe>;\n totalValueLockedUSD_not_in?: Maybe>;\n totalValueLockedETH?: Maybe;\n totalValueLockedETH_not?: Maybe;\n totalValueLockedETH_gt?: Maybe;\n totalValueLockedETH_lt?: Maybe;\n totalValueLockedETH_gte?: Maybe;\n totalValueLockedETH_lte?: Maybe;\n totalValueLockedETH_in?: Maybe>;\n totalValueLockedETH_not_in?: Maybe>;\n totalValueLockedUSDUntracked?: Maybe;\n totalValueLockedUSDUntracked_not?: Maybe;\n totalValueLockedUSDUntracked_gt?: Maybe;\n totalValueLockedUSDUntracked_lt?: Maybe;\n totalValueLockedUSDUntracked_gte?: Maybe;\n totalValueLockedUSDUntracked_lte?: Maybe;\n totalValueLockedUSDUntracked_in?: Maybe>;\n totalValueLockedUSDUntracked_not_in?: Maybe>;\n totalValueLockedETHUntracked?: Maybe;\n totalValueLockedETHUntracked_not?: Maybe;\n totalValueLockedETHUntracked_gt?: Maybe;\n totalValueLockedETHUntracked_lt?: Maybe;\n totalValueLockedETHUntracked_gte?: Maybe;\n totalValueLockedETHUntracked_lte?: Maybe;\n totalValueLockedETHUntracked_in?: Maybe>;\n totalValueLockedETHUntracked_not_in?: Maybe>;\n owner?: Maybe;\n owner_not?: Maybe;\n owner_gt?: Maybe;\n owner_lt?: Maybe;\n owner_gte?: Maybe;\n owner_lte?: Maybe;\n owner_in?: Maybe>;\n owner_not_in?: Maybe>;\n};\n\nexport enum Factory_OrderBy {\n Id = 'id',\n PoolCount = 'poolCount',\n TxCount = 'txCount',\n TotalVolumeUsd = 'totalVolumeUSD',\n TotalVolumeEth = 'totalVolumeETH',\n TotalFeesUsd = 'totalFeesUSD',\n TotalFeesEth = 'totalFeesETH',\n UntrackedVolumeUsd = 'untrackedVolumeUSD',\n TotalValueLockedUsd = 'totalValueLockedUSD',\n TotalValueLockedEth = 'totalValueLockedETH',\n TotalValueLockedUsdUntracked = 'totalValueLockedUSDUntracked',\n TotalValueLockedEthUntracked = 'totalValueLockedETHUntracked',\n Owner = 'owner'\n}\n\nexport type Flash = {\n __typename?: 'Flash';\n id: Scalars['ID'];\n transaction: Transaction;\n timestamp: Scalars['BigInt'];\n pool: Pool;\n sender: Scalars['Bytes'];\n recipient: Scalars['Bytes'];\n amount0: Scalars['BigDecimal'];\n amount1: Scalars['BigDecimal'];\n amountUSD: Scalars['BigDecimal'];\n amount0Paid: Scalars['BigDecimal'];\n amount1Paid: Scalars['BigDecimal'];\n logIndex?: Maybe;\n};\n\nexport type Flash_Filter = {\n id?: Maybe;\n id_not?: Maybe;\n id_gt?: Maybe;\n id_lt?: Maybe;\n id_gte?: Maybe;\n id_lte?: Maybe;\n id_in?: Maybe>;\n id_not_in?: Maybe>;\n transaction?: Maybe;\n transaction_not?: Maybe;\n transaction_gt?: Maybe;\n transaction_lt?: Maybe;\n transaction_gte?: Maybe;\n transaction_lte?: Maybe;\n transaction_in?: Maybe>;\n transaction_not_in?: Maybe>;\n transaction_contains?: Maybe;\n transaction_contains_nocase?: Maybe;\n transaction_not_contains?: Maybe;\n transaction_not_contains_nocase?: Maybe;\n transaction_starts_with?: Maybe;\n transaction_starts_with_nocase?: Maybe;\n transaction_not_starts_with?: Maybe;\n transaction_not_starts_with_nocase?: Maybe;\n transaction_ends_with?: Maybe;\n transaction_ends_with_nocase?: Maybe;\n transaction_not_ends_with?: Maybe;\n transaction_not_ends_with_nocase?: Maybe;\n timestamp?: Maybe;\n timestamp_not?: Maybe;\n timestamp_gt?: Maybe;\n timestamp_lt?: Maybe;\n timestamp_gte?: Maybe;\n timestamp_lte?: Maybe;\n timestamp_in?: Maybe>;\n timestamp_not_in?: Maybe>;\n pool?: Maybe;\n pool_not?: Maybe;\n pool_gt?: Maybe;\n pool_lt?: Maybe;\n pool_gte?: Maybe;\n pool_lte?: Maybe;\n pool_in?: Maybe>;\n pool_not_in?: Maybe>;\n pool_contains?: Maybe;\n pool_contains_nocase?: Maybe;\n pool_not_contains?: Maybe;\n pool_not_contains_nocase?: Maybe;\n pool_starts_with?: Maybe;\n pool_starts_with_nocase?: Maybe;\n pool_not_starts_with?: Maybe;\n pool_not_starts_with_nocase?: Maybe;\n pool_ends_with?: Maybe;\n pool_ends_with_nocase?: Maybe;\n pool_not_ends_with?: Maybe;\n pool_not_ends_with_nocase?: Maybe;\n sender?: Maybe;\n sender_not?: Maybe;\n sender_in?: Maybe>;\n sender_not_in?: Maybe>;\n sender_contains?: Maybe;\n sender_not_contains?: Maybe;\n recipient?: Maybe;\n recipient_not?: Maybe;\n recipient_in?: Maybe>;\n recipient_not_in?: Maybe>;\n recipient_contains?: Maybe;\n recipient_not_contains?: Maybe;\n amount0?: Maybe;\n amount0_not?: Maybe;\n amount0_gt?: Maybe;\n amount0_lt?: Maybe;\n amount0_gte?: Maybe;\n amount0_lte?: Maybe;\n amount0_in?: Maybe>;\n amount0_not_in?: Maybe>;\n amount1?: Maybe;\n amount1_not?: Maybe;\n amount1_gt?: Maybe;\n amount1_lt?: Maybe;\n amount1_gte?: Maybe;\n amount1_lte?: Maybe;\n amount1_in?: Maybe>;\n amount1_not_in?: Maybe>;\n amountUSD?: Maybe;\n amountUSD_not?: Maybe;\n amountUSD_gt?: Maybe;\n amountUSD_lt?: Maybe;\n amountUSD_gte?: Maybe;\n amountUSD_lte?: Maybe;\n amountUSD_in?: Maybe>;\n amountUSD_not_in?: Maybe>;\n amount0Paid?: Maybe;\n amount0Paid_not?: Maybe;\n amount0Paid_gt?: Maybe;\n amount0Paid_lt?: Maybe;\n amount0Paid_gte?: Maybe;\n amount0Paid_lte?: Maybe;\n amount0Paid_in?: Maybe>;\n amount0Paid_not_in?: Maybe>;\n amount1Paid?: Maybe;\n amount1Paid_not?: Maybe;\n amount1Paid_gt?: Maybe;\n amount1Paid_lt?: Maybe;\n amount1Paid_gte?: Maybe;\n amount1Paid_lte?: Maybe;\n amount1Paid_in?: Maybe>;\n amount1Paid_not_in?: Maybe>;\n logIndex?: Maybe;\n logIndex_not?: Maybe;\n logIndex_gt?: Maybe;\n logIndex_lt?: Maybe;\n logIndex_gte?: Maybe;\n logIndex_lte?: Maybe;\n logIndex_in?: Maybe>;\n logIndex_not_in?: Maybe>;\n};\n\nexport enum Flash_OrderBy {\n Id = 'id',\n Transaction = 'transaction',\n Timestamp = 'timestamp',\n Pool = 'pool',\n Sender = 'sender',\n Recipient = 'recipient',\n Amount0 = 'amount0',\n Amount1 = 'amount1',\n AmountUsd = 'amountUSD',\n Amount0Paid = 'amount0Paid',\n Amount1Paid = 'amount1Paid',\n LogIndex = 'logIndex'\n}\n\nexport type Mint = {\n __typename?: 'Mint';\n id: Scalars['ID'];\n transaction: Transaction;\n timestamp: Scalars['BigInt'];\n pool: Pool;\n token0: Token;\n token1: Token;\n owner: Scalars['Bytes'];\n sender?: Maybe;\n origin: Scalars['Bytes'];\n amount: Scalars['BigInt'];\n amount0: Scalars['BigDecimal'];\n amount1: Scalars['BigDecimal'];\n amountUSD?: Maybe;\n tickLower: Scalars['BigInt'];\n tickUpper: Scalars['BigInt'];\n logIndex?: Maybe;\n};\n\nexport type Mint_Filter = {\n id?: Maybe;\n id_not?: Maybe;\n id_gt?: Maybe;\n id_lt?: Maybe;\n id_gte?: Maybe;\n id_lte?: Maybe;\n id_in?: Maybe>;\n id_not_in?: Maybe>;\n transaction?: Maybe;\n transaction_not?: Maybe;\n transaction_gt?: Maybe;\n transaction_lt?: Maybe;\n transaction_gte?: Maybe;\n transaction_lte?: Maybe;\n transaction_in?: Maybe>;\n transaction_not_in?: Maybe>;\n transaction_contains?: Maybe;\n transaction_contains_nocase?: Maybe;\n transaction_not_contains?: Maybe;\n transaction_not_contains_nocase?: Maybe;\n transaction_starts_with?: Maybe;\n transaction_starts_with_nocase?: Maybe;\n transaction_not_starts_with?: Maybe;\n transaction_not_starts_with_nocase?: Maybe;\n transaction_ends_with?: Maybe;\n transaction_ends_with_nocase?: Maybe;\n transaction_not_ends_with?: Maybe;\n transaction_not_ends_with_nocase?: Maybe;\n timestamp?: Maybe;\n timestamp_not?: Maybe;\n timestamp_gt?: Maybe;\n timestamp_lt?: Maybe;\n timestamp_gte?: Maybe;\n timestamp_lte?: Maybe;\n timestamp_in?: Maybe>;\n timestamp_not_in?: Maybe>;\n pool?: Maybe;\n pool_not?: Maybe;\n pool_gt?: Maybe;\n pool_lt?: Maybe;\n pool_gte?: Maybe;\n pool_lte?: Maybe;\n pool_in?: Maybe>;\n pool_not_in?: Maybe>;\n pool_contains?: Maybe;\n pool_contains_nocase?: Maybe;\n pool_not_contains?: Maybe;\n pool_not_contains_nocase?: Maybe;\n pool_starts_with?: Maybe;\n pool_starts_with_nocase?: Maybe;\n pool_not_starts_with?: Maybe;\n pool_not_starts_with_nocase?: Maybe;\n pool_ends_with?: Maybe;\n pool_ends_with_nocase?: Maybe;\n pool_not_ends_with?: Maybe;\n pool_not_ends_with_nocase?: Maybe;\n token0?: Maybe;\n token0_not?: Maybe;\n token0_gt?: Maybe;\n token0_lt?: Maybe;\n token0_gte?: Maybe;\n token0_lte?: Maybe;\n token0_in?: Maybe>;\n token0_not_in?: Maybe>;\n token0_contains?: Maybe;\n token0_contains_nocase?: Maybe;\n token0_not_contains?: Maybe;\n token0_not_contains_nocase?: Maybe;\n token0_starts_with?: Maybe;\n token0_starts_with_nocase?: Maybe;\n token0_not_starts_with?: Maybe;\n token0_not_starts_with_nocase?: Maybe;\n token0_ends_with?: Maybe;\n token0_ends_with_nocase?: Maybe;\n token0_not_ends_with?: Maybe;\n token0_not_ends_with_nocase?: Maybe;\n token1?: Maybe;\n token1_not?: Maybe;\n token1_gt?: Maybe;\n token1_lt?: Maybe;\n token1_gte?: Maybe;\n token1_lte?: Maybe;\n token1_in?: Maybe>;\n token1_not_in?: Maybe>;\n token1_contains?: Maybe;\n token1_contains_nocase?: Maybe;\n token1_not_contains?: Maybe;\n token1_not_contains_nocase?: Maybe;\n token1_starts_with?: Maybe;\n token1_starts_with_nocase?: Maybe;\n token1_not_starts_with?: Maybe;\n token1_not_starts_with_nocase?: Maybe;\n token1_ends_with?: Maybe;\n token1_ends_with_nocase?: Maybe;\n token1_not_ends_with?: Maybe;\n token1_not_ends_with_nocase?: Maybe;\n owner?: Maybe;\n owner_not?: Maybe;\n owner_in?: Maybe>;\n owner_not_in?: Maybe>;\n owner_contains?: Maybe;\n owner_not_contains?: Maybe;\n sender?: Maybe;\n sender_not?: Maybe;\n sender_in?: Maybe>;\n sender_not_in?: Maybe>;\n sender_contains?: Maybe;\n sender_not_contains?: Maybe;\n origin?: Maybe;\n origin_not?: Maybe;\n origin_in?: Maybe>;\n origin_not_in?: Maybe>;\n origin_contains?: Maybe;\n origin_not_contains?: Maybe;\n amount?: Maybe;\n amount_not?: Maybe;\n amount_gt?: Maybe;\n amount_lt?: Maybe;\n amount_gte?: Maybe;\n amount_lte?: Maybe;\n amount_in?: Maybe>;\n amount_not_in?: Maybe>;\n amount0?: Maybe;\n amount0_not?: Maybe;\n amount0_gt?: Maybe;\n amount0_lt?: Maybe;\n amount0_gte?: Maybe;\n amount0_lte?: Maybe;\n amount0_in?: Maybe>;\n amount0_not_in?: Maybe>;\n amount1?: Maybe;\n amount1_not?: Maybe;\n amount1_gt?: Maybe;\n amount1_lt?: Maybe;\n amount1_gte?: Maybe;\n amount1_lte?: Maybe;\n amount1_in?: Maybe>;\n amount1_not_in?: Maybe>;\n amountUSD?: Maybe;\n amountUSD_not?: Maybe;\n amountUSD_gt?: Maybe;\n amountUSD_lt?: Maybe;\n amountUSD_gte?: Maybe;\n amountUSD_lte?: Maybe;\n amountUSD_in?: Maybe>;\n amountUSD_not_in?: Maybe>;\n tickLower?: Maybe;\n tickLower_not?: Maybe;\n tickLower_gt?: Maybe;\n tickLower_lt?: Maybe;\n tickLower_gte?: Maybe;\n tickLower_lte?: Maybe;\n tickLower_in?: Maybe>;\n tickLower_not_in?: Maybe>;\n tickUpper?: Maybe;\n tickUpper_not?: Maybe;\n tickUpper_gt?: Maybe;\n tickUpper_lt?: Maybe;\n tickUpper_gte?: Maybe;\n tickUpper_lte?: Maybe;\n tickUpper_in?: Maybe>;\n tickUpper_not_in?: Maybe>;\n logIndex?: Maybe;\n logIndex_not?: Maybe;\n logIndex_gt?: Maybe;\n logIndex_lt?: Maybe;\n logIndex_gte?: Maybe;\n logIndex_lte?: Maybe;\n logIndex_in?: Maybe>;\n logIndex_not_in?: Maybe>;\n};\n\nexport enum Mint_OrderBy {\n Id = 'id',\n Transaction = 'transaction',\n Timestamp = 'timestamp',\n Pool = 'pool',\n Token0 = 'token0',\n Token1 = 'token1',\n Owner = 'owner',\n Sender = 'sender',\n Origin = 'origin',\n Amount = 'amount',\n Amount0 = 'amount0',\n Amount1 = 'amount1',\n AmountUsd = 'amountUSD',\n TickLower = 'tickLower',\n TickUpper = 'tickUpper',\n LogIndex = 'logIndex'\n}\n\n/** Defines the order direction, either ascending or descending */\nexport enum OrderDirection {\n Asc = 'asc',\n Desc = 'desc'\n}\n\nexport type Pool = {\n __typename?: 'Pool';\n id: Scalars['ID'];\n createdAtTimestamp: Scalars['BigInt'];\n createdAtBlockNumber: Scalars['BigInt'];\n token0: Token;\n token1: Token;\n feeTier: Scalars['BigInt'];\n liquidity: Scalars['BigInt'];\n sqrtPrice: Scalars['BigInt'];\n feeGrowthGlobal0X128: Scalars['BigInt'];\n feeGrowthGlobal1X128: Scalars['BigInt'];\n token0Price: Scalars['BigDecimal'];\n token1Price: Scalars['BigDecimal'];\n tick?: Maybe;\n observationIndex: Scalars['BigInt'];\n volumeToken0: Scalars['BigDecimal'];\n volumeToken1: Scalars['BigDecimal'];\n volumeUSD: Scalars['BigDecimal'];\n untrackedVolumeUSD: Scalars['BigDecimal'];\n feesUSD: Scalars['BigDecimal'];\n txCount: Scalars['BigInt'];\n collectedFeesToken0: Scalars['BigDecimal'];\n collectedFeesToken1: Scalars['BigDecimal'];\n collectedFeesUSD: Scalars['BigDecimal'];\n totalValueLockedToken0: Scalars['BigDecimal'];\n totalValueLockedToken1: Scalars['BigDecimal'];\n totalValueLockedETH: Scalars['BigDecimal'];\n totalValueLockedUSD: Scalars['BigDecimal'];\n totalValueLockedUSDUntracked: Scalars['BigDecimal'];\n liquidityProviderCount: Scalars['BigInt'];\n poolHourData: Array;\n poolDayData: Array;\n mints: Array;\n burns: Array;\n swaps: Array;\n collects: Array;\n ticks: Array;\n};\n\n\nexport type PoolPoolHourDataArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n};\n\n\nexport type PoolPoolDayDataArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n};\n\n\nexport type PoolMintsArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n};\n\n\nexport type PoolBurnsArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n};\n\n\nexport type PoolSwapsArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n};\n\n\nexport type PoolCollectsArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n};\n\n\nexport type PoolTicksArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n};\n\nexport type PoolDayData = {\n __typename?: 'PoolDayData';\n id: Scalars['ID'];\n date: Scalars['Int'];\n pool: Pool;\n liquidity: Scalars['BigInt'];\n sqrtPrice: Scalars['BigInt'];\n token0Price: Scalars['BigDecimal'];\n token1Price: Scalars['BigDecimal'];\n tick?: Maybe;\n feeGrowthGlobal0X128: Scalars['BigInt'];\n feeGrowthGlobal1X128: Scalars['BigInt'];\n tvlUSD: Scalars['BigDecimal'];\n volumeToken0: Scalars['BigDecimal'];\n volumeToken1: Scalars['BigDecimal'];\n volumeUSD: Scalars['BigDecimal'];\n feesUSD: Scalars['BigDecimal'];\n txCount: Scalars['BigInt'];\n open: Scalars['BigDecimal'];\n high: Scalars['BigDecimal'];\n low: Scalars['BigDecimal'];\n close: Scalars['BigDecimal'];\n};\n\nexport type PoolDayData_Filter = {\n id?: Maybe;\n id_not?: Maybe;\n id_gt?: Maybe;\n id_lt?: Maybe;\n id_gte?: Maybe;\n id_lte?: Maybe;\n id_in?: Maybe>;\n id_not_in?: Maybe>;\n date?: Maybe;\n date_not?: Maybe;\n date_gt?: Maybe;\n date_lt?: Maybe;\n date_gte?: Maybe;\n date_lte?: Maybe;\n date_in?: Maybe>;\n date_not_in?: Maybe>;\n pool?: Maybe;\n pool_not?: Maybe;\n pool_gt?: Maybe;\n pool_lt?: Maybe;\n pool_gte?: Maybe;\n pool_lte?: Maybe;\n pool_in?: Maybe>;\n pool_not_in?: Maybe>;\n pool_contains?: Maybe;\n pool_contains_nocase?: Maybe;\n pool_not_contains?: Maybe;\n pool_not_contains_nocase?: Maybe;\n pool_starts_with?: Maybe;\n pool_starts_with_nocase?: Maybe;\n pool_not_starts_with?: Maybe;\n pool_not_starts_with_nocase?: Maybe;\n pool_ends_with?: Maybe;\n pool_ends_with_nocase?: Maybe;\n pool_not_ends_with?: Maybe;\n pool_not_ends_with_nocase?: Maybe;\n liquidity?: Maybe;\n liquidity_not?: Maybe;\n liquidity_gt?: Maybe;\n liquidity_lt?: Maybe;\n liquidity_gte?: Maybe;\n liquidity_lte?: Maybe;\n liquidity_in?: Maybe>;\n liquidity_not_in?: Maybe>;\n sqrtPrice?: Maybe;\n sqrtPrice_not?: Maybe;\n sqrtPrice_gt?: Maybe;\n sqrtPrice_lt?: Maybe;\n sqrtPrice_gte?: Maybe;\n sqrtPrice_lte?: Maybe;\n sqrtPrice_in?: Maybe>;\n sqrtPrice_not_in?: Maybe>;\n token0Price?: Maybe;\n token0Price_not?: Maybe;\n token0Price_gt?: Maybe;\n token0Price_lt?: Maybe;\n token0Price_gte?: Maybe;\n token0Price_lte?: Maybe;\n token0Price_in?: Maybe>;\n token0Price_not_in?: Maybe>;\n token1Price?: Maybe;\n token1Price_not?: Maybe;\n token1Price_gt?: Maybe;\n token1Price_lt?: Maybe;\n token1Price_gte?: Maybe;\n token1Price_lte?: Maybe;\n token1Price_in?: Maybe>;\n token1Price_not_in?: Maybe>;\n tick?: Maybe;\n tick_not?: Maybe;\n tick_gt?: Maybe;\n tick_lt?: Maybe;\n tick_gte?: Maybe;\n tick_lte?: Maybe;\n tick_in?: Maybe>;\n tick_not_in?: Maybe>;\n feeGrowthGlobal0X128?: Maybe;\n feeGrowthGlobal0X128_not?: Maybe;\n feeGrowthGlobal0X128_gt?: Maybe;\n feeGrowthGlobal0X128_lt?: Maybe;\n feeGrowthGlobal0X128_gte?: Maybe;\n feeGrowthGlobal0X128_lte?: Maybe;\n feeGrowthGlobal0X128_in?: Maybe>;\n feeGrowthGlobal0X128_not_in?: Maybe>;\n feeGrowthGlobal1X128?: Maybe;\n feeGrowthGlobal1X128_not?: Maybe;\n feeGrowthGlobal1X128_gt?: Maybe;\n feeGrowthGlobal1X128_lt?: Maybe;\n feeGrowthGlobal1X128_gte?: Maybe;\n feeGrowthGlobal1X128_lte?: Maybe;\n feeGrowthGlobal1X128_in?: Maybe>;\n feeGrowthGlobal1X128_not_in?: Maybe>;\n tvlUSD?: Maybe;\n tvlUSD_not?: Maybe;\n tvlUSD_gt?: Maybe;\n tvlUSD_lt?: Maybe;\n tvlUSD_gte?: Maybe;\n tvlUSD_lte?: Maybe;\n tvlUSD_in?: Maybe>;\n tvlUSD_not_in?: Maybe>;\n volumeToken0?: Maybe;\n volumeToken0_not?: Maybe;\n volumeToken0_gt?: Maybe;\n volumeToken0_lt?: Maybe;\n volumeToken0_gte?: Maybe;\n volumeToken0_lte?: Maybe;\n volumeToken0_in?: Maybe>;\n volumeToken0_not_in?: Maybe>;\n volumeToken1?: Maybe;\n volumeToken1_not?: Maybe;\n volumeToken1_gt?: Maybe;\n volumeToken1_lt?: Maybe;\n volumeToken1_gte?: Maybe;\n volumeToken1_lte?: Maybe;\n volumeToken1_in?: Maybe>;\n volumeToken1_not_in?: Maybe>;\n volumeUSD?: Maybe;\n volumeUSD_not?: Maybe;\n volumeUSD_gt?: Maybe;\n volumeUSD_lt?: Maybe;\n volumeUSD_gte?: Maybe;\n volumeUSD_lte?: Maybe;\n volumeUSD_in?: Maybe>;\n volumeUSD_not_in?: Maybe>;\n feesUSD?: Maybe;\n feesUSD_not?: Maybe;\n feesUSD_gt?: Maybe;\n feesUSD_lt?: Maybe;\n feesUSD_gte?: Maybe;\n feesUSD_lte?: Maybe;\n feesUSD_in?: Maybe>;\n feesUSD_not_in?: Maybe>;\n txCount?: Maybe;\n txCount_not?: Maybe;\n txCount_gt?: Maybe;\n txCount_lt?: Maybe;\n txCount_gte?: Maybe;\n txCount_lte?: Maybe;\n txCount_in?: Maybe>;\n txCount_not_in?: Maybe>;\n open?: Maybe;\n open_not?: Maybe;\n open_gt?: Maybe;\n open_lt?: Maybe;\n open_gte?: Maybe;\n open_lte?: Maybe;\n open_in?: Maybe>;\n open_not_in?: Maybe>;\n high?: Maybe;\n high_not?: Maybe;\n high_gt?: Maybe;\n high_lt?: Maybe;\n high_gte?: Maybe;\n high_lte?: Maybe;\n high_in?: Maybe>;\n high_not_in?: Maybe>;\n low?: Maybe;\n low_not?: Maybe;\n low_gt?: Maybe;\n low_lt?: Maybe;\n low_gte?: Maybe;\n low_lte?: Maybe;\n low_in?: Maybe>;\n low_not_in?: Maybe>;\n close?: Maybe;\n close_not?: Maybe;\n close_gt?: Maybe;\n close_lt?: Maybe;\n close_gte?: Maybe;\n close_lte?: Maybe;\n close_in?: Maybe>;\n close_not_in?: Maybe>;\n};\n\nexport enum PoolDayData_OrderBy {\n Id = 'id',\n Date = 'date',\n Pool = 'pool',\n Liquidity = 'liquidity',\n SqrtPrice = 'sqrtPrice',\n Token0Price = 'token0Price',\n Token1Price = 'token1Price',\n Tick = 'tick',\n FeeGrowthGlobal0X128 = 'feeGrowthGlobal0X128',\n FeeGrowthGlobal1X128 = 'feeGrowthGlobal1X128',\n TvlUsd = 'tvlUSD',\n VolumeToken0 = 'volumeToken0',\n VolumeToken1 = 'volumeToken1',\n VolumeUsd = 'volumeUSD',\n FeesUsd = 'feesUSD',\n TxCount = 'txCount',\n Open = 'open',\n High = 'high',\n Low = 'low',\n Close = 'close'\n}\n\nexport type PoolHourData = {\n __typename?: 'PoolHourData';\n id: Scalars['ID'];\n periodStartUnix: Scalars['Int'];\n pool: Pool;\n liquidity: Scalars['BigInt'];\n sqrtPrice: Scalars['BigInt'];\n token0Price: Scalars['BigDecimal'];\n token1Price: Scalars['BigDecimal'];\n tick?: Maybe;\n feeGrowthGlobal0X128: Scalars['BigInt'];\n feeGrowthGlobal1X128: Scalars['BigInt'];\n tvlUSD: Scalars['BigDecimal'];\n volumeToken0: Scalars['BigDecimal'];\n volumeToken1: Scalars['BigDecimal'];\n volumeUSD: Scalars['BigDecimal'];\n feesUSD: Scalars['BigDecimal'];\n txCount: Scalars['BigInt'];\n open: Scalars['BigDecimal'];\n high: Scalars['BigDecimal'];\n low: Scalars['BigDecimal'];\n close: Scalars['BigDecimal'];\n};\n\nexport type PoolHourData_Filter = {\n id?: Maybe;\n id_not?: Maybe;\n id_gt?: Maybe;\n id_lt?: Maybe;\n id_gte?: Maybe;\n id_lte?: Maybe;\n id_in?: Maybe>;\n id_not_in?: Maybe>;\n periodStartUnix?: Maybe;\n periodStartUnix_not?: Maybe;\n periodStartUnix_gt?: Maybe;\n periodStartUnix_lt?: Maybe;\n periodStartUnix_gte?: Maybe;\n periodStartUnix_lte?: Maybe;\n periodStartUnix_in?: Maybe>;\n periodStartUnix_not_in?: Maybe>;\n pool?: Maybe;\n pool_not?: Maybe;\n pool_gt?: Maybe;\n pool_lt?: Maybe;\n pool_gte?: Maybe;\n pool_lte?: Maybe;\n pool_in?: Maybe>;\n pool_not_in?: Maybe>;\n pool_contains?: Maybe;\n pool_contains_nocase?: Maybe;\n pool_not_contains?: Maybe;\n pool_not_contains_nocase?: Maybe;\n pool_starts_with?: Maybe;\n pool_starts_with_nocase?: Maybe;\n pool_not_starts_with?: Maybe;\n pool_not_starts_with_nocase?: Maybe;\n pool_ends_with?: Maybe;\n pool_ends_with_nocase?: Maybe;\n pool_not_ends_with?: Maybe;\n pool_not_ends_with_nocase?: Maybe;\n liquidity?: Maybe;\n liquidity_not?: Maybe;\n liquidity_gt?: Maybe;\n liquidity_lt?: Maybe;\n liquidity_gte?: Maybe;\n liquidity_lte?: Maybe;\n liquidity_in?: Maybe>;\n liquidity_not_in?: Maybe>;\n sqrtPrice?: Maybe;\n sqrtPrice_not?: Maybe;\n sqrtPrice_gt?: Maybe;\n sqrtPrice_lt?: Maybe;\n sqrtPrice_gte?: Maybe;\n sqrtPrice_lte?: Maybe;\n sqrtPrice_in?: Maybe>;\n sqrtPrice_not_in?: Maybe>;\n token0Price?: Maybe;\n token0Price_not?: Maybe;\n token0Price_gt?: Maybe;\n token0Price_lt?: Maybe;\n token0Price_gte?: Maybe;\n token0Price_lte?: Maybe;\n token0Price_in?: Maybe>;\n token0Price_not_in?: Maybe>;\n token1Price?: Maybe;\n token1Price_not?: Maybe;\n token1Price_gt?: Maybe;\n token1Price_lt?: Maybe;\n token1Price_gte?: Maybe;\n token1Price_lte?: Maybe;\n token1Price_in?: Maybe>;\n token1Price_not_in?: Maybe>;\n tick?: Maybe;\n tick_not?: Maybe;\n tick_gt?: Maybe;\n tick_lt?: Maybe;\n tick_gte?: Maybe;\n tick_lte?: Maybe;\n tick_in?: Maybe>;\n tick_not_in?: Maybe>;\n feeGrowthGlobal0X128?: Maybe;\n feeGrowthGlobal0X128_not?: Maybe;\n feeGrowthGlobal0X128_gt?: Maybe;\n feeGrowthGlobal0X128_lt?: Maybe;\n feeGrowthGlobal0X128_gte?: Maybe;\n feeGrowthGlobal0X128_lte?: Maybe;\n feeGrowthGlobal0X128_in?: Maybe>;\n feeGrowthGlobal0X128_not_in?: Maybe>;\n feeGrowthGlobal1X128?: Maybe;\n feeGrowthGlobal1X128_not?: Maybe;\n feeGrowthGlobal1X128_gt?: Maybe;\n feeGrowthGlobal1X128_lt?: Maybe;\n feeGrowthGlobal1X128_gte?: Maybe;\n feeGrowthGlobal1X128_lte?: Maybe;\n feeGrowthGlobal1X128_in?: Maybe>;\n feeGrowthGlobal1X128_not_in?: Maybe>;\n tvlUSD?: Maybe;\n tvlUSD_not?: Maybe;\n tvlUSD_gt?: Maybe;\n tvlUSD_lt?: Maybe;\n tvlUSD_gte?: Maybe;\n tvlUSD_lte?: Maybe;\n tvlUSD_in?: Maybe>;\n tvlUSD_not_in?: Maybe>;\n volumeToken0?: Maybe;\n volumeToken0_not?: Maybe;\n volumeToken0_gt?: Maybe;\n volumeToken0_lt?: Maybe;\n volumeToken0_gte?: Maybe;\n volumeToken0_lte?: Maybe;\n volumeToken0_in?: Maybe>;\n volumeToken0_not_in?: Maybe>;\n volumeToken1?: Maybe;\n volumeToken1_not?: Maybe;\n volumeToken1_gt?: Maybe;\n volumeToken1_lt?: Maybe;\n volumeToken1_gte?: Maybe;\n volumeToken1_lte?: Maybe;\n volumeToken1_in?: Maybe>;\n volumeToken1_not_in?: Maybe>;\n volumeUSD?: Maybe;\n volumeUSD_not?: Maybe;\n volumeUSD_gt?: Maybe;\n volumeUSD_lt?: Maybe;\n volumeUSD_gte?: Maybe;\n volumeUSD_lte?: Maybe;\n volumeUSD_in?: Maybe>;\n volumeUSD_not_in?: Maybe>;\n feesUSD?: Maybe;\n feesUSD_not?: Maybe;\n feesUSD_gt?: Maybe;\n feesUSD_lt?: Maybe;\n feesUSD_gte?: Maybe;\n feesUSD_lte?: Maybe;\n feesUSD_in?: Maybe>;\n feesUSD_not_in?: Maybe>;\n txCount?: Maybe;\n txCount_not?: Maybe;\n txCount_gt?: Maybe;\n txCount_lt?: Maybe;\n txCount_gte?: Maybe;\n txCount_lte?: Maybe;\n txCount_in?: Maybe>;\n txCount_not_in?: Maybe>;\n open?: Maybe;\n open_not?: Maybe;\n open_gt?: Maybe;\n open_lt?: Maybe;\n open_gte?: Maybe;\n open_lte?: Maybe;\n open_in?: Maybe>;\n open_not_in?: Maybe>;\n high?: Maybe;\n high_not?: Maybe;\n high_gt?: Maybe;\n high_lt?: Maybe;\n high_gte?: Maybe;\n high_lte?: Maybe;\n high_in?: Maybe>;\n high_not_in?: Maybe>;\n low?: Maybe;\n low_not?: Maybe;\n low_gt?: Maybe;\n low_lt?: Maybe;\n low_gte?: Maybe;\n low_lte?: Maybe;\n low_in?: Maybe>;\n low_not_in?: Maybe>;\n close?: Maybe;\n close_not?: Maybe;\n close_gt?: Maybe;\n close_lt?: Maybe;\n close_gte?: Maybe;\n close_lte?: Maybe;\n close_in?: Maybe>;\n close_not_in?: Maybe>;\n};\n\nexport enum PoolHourData_OrderBy {\n Id = 'id',\n PeriodStartUnix = 'periodStartUnix',\n Pool = 'pool',\n Liquidity = 'liquidity',\n SqrtPrice = 'sqrtPrice',\n Token0Price = 'token0Price',\n Token1Price = 'token1Price',\n Tick = 'tick',\n FeeGrowthGlobal0X128 = 'feeGrowthGlobal0X128',\n FeeGrowthGlobal1X128 = 'feeGrowthGlobal1X128',\n TvlUsd = 'tvlUSD',\n VolumeToken0 = 'volumeToken0',\n VolumeToken1 = 'volumeToken1',\n VolumeUsd = 'volumeUSD',\n FeesUsd = 'feesUSD',\n TxCount = 'txCount',\n Open = 'open',\n High = 'high',\n Low = 'low',\n Close = 'close'\n}\n\nexport type Pool_Filter = {\n id?: Maybe;\n id_not?: Maybe;\n id_gt?: Maybe;\n id_lt?: Maybe;\n id_gte?: Maybe;\n id_lte?: Maybe;\n id_in?: Maybe>;\n id_not_in?: Maybe>;\n createdAtTimestamp?: Maybe;\n createdAtTimestamp_not?: Maybe;\n createdAtTimestamp_gt?: Maybe;\n createdAtTimestamp_lt?: Maybe;\n createdAtTimestamp_gte?: Maybe;\n createdAtTimestamp_lte?: Maybe;\n createdAtTimestamp_in?: Maybe>;\n createdAtTimestamp_not_in?: Maybe>;\n createdAtBlockNumber?: Maybe;\n createdAtBlockNumber_not?: Maybe;\n createdAtBlockNumber_gt?: Maybe;\n createdAtBlockNumber_lt?: Maybe;\n createdAtBlockNumber_gte?: Maybe;\n createdAtBlockNumber_lte?: Maybe;\n createdAtBlockNumber_in?: Maybe>;\n createdAtBlockNumber_not_in?: Maybe>;\n token0?: Maybe;\n token0_not?: Maybe;\n token0_gt?: Maybe;\n token0_lt?: Maybe;\n token0_gte?: Maybe;\n token0_lte?: Maybe;\n token0_in?: Maybe>;\n token0_not_in?: Maybe>;\n token0_contains?: Maybe;\n token0_contains_nocase?: Maybe;\n token0_not_contains?: Maybe;\n token0_not_contains_nocase?: Maybe;\n token0_starts_with?: Maybe;\n token0_starts_with_nocase?: Maybe;\n token0_not_starts_with?: Maybe;\n token0_not_starts_with_nocase?: Maybe;\n token0_ends_with?: Maybe;\n token0_ends_with_nocase?: Maybe;\n token0_not_ends_with?: Maybe;\n token0_not_ends_with_nocase?: Maybe;\n token1?: Maybe;\n token1_not?: Maybe;\n token1_gt?: Maybe;\n token1_lt?: Maybe;\n token1_gte?: Maybe;\n token1_lte?: Maybe;\n token1_in?: Maybe>;\n token1_not_in?: Maybe>;\n token1_contains?: Maybe;\n token1_contains_nocase?: Maybe;\n token1_not_contains?: Maybe;\n token1_not_contains_nocase?: Maybe;\n token1_starts_with?: Maybe;\n token1_starts_with_nocase?: Maybe;\n token1_not_starts_with?: Maybe;\n token1_not_starts_with_nocase?: Maybe;\n token1_ends_with?: Maybe;\n token1_ends_with_nocase?: Maybe;\n token1_not_ends_with?: Maybe;\n token1_not_ends_with_nocase?: Maybe;\n feeTier?: Maybe;\n feeTier_not?: Maybe;\n feeTier_gt?: Maybe;\n feeTier_lt?: Maybe;\n feeTier_gte?: Maybe;\n feeTier_lte?: Maybe;\n feeTier_in?: Maybe>;\n feeTier_not_in?: Maybe>;\n liquidity?: Maybe;\n liquidity_not?: Maybe;\n liquidity_gt?: Maybe;\n liquidity_lt?: Maybe;\n liquidity_gte?: Maybe;\n liquidity_lte?: Maybe;\n liquidity_in?: Maybe>;\n liquidity_not_in?: Maybe>;\n sqrtPrice?: Maybe;\n sqrtPrice_not?: Maybe;\n sqrtPrice_gt?: Maybe;\n sqrtPrice_lt?: Maybe;\n sqrtPrice_gte?: Maybe;\n sqrtPrice_lte?: Maybe;\n sqrtPrice_in?: Maybe>;\n sqrtPrice_not_in?: Maybe>;\n feeGrowthGlobal0X128?: Maybe;\n feeGrowthGlobal0X128_not?: Maybe;\n feeGrowthGlobal0X128_gt?: Maybe;\n feeGrowthGlobal0X128_lt?: Maybe;\n feeGrowthGlobal0X128_gte?: Maybe;\n feeGrowthGlobal0X128_lte?: Maybe;\n feeGrowthGlobal0X128_in?: Maybe>;\n feeGrowthGlobal0X128_not_in?: Maybe>;\n feeGrowthGlobal1X128?: Maybe;\n feeGrowthGlobal1X128_not?: Maybe;\n feeGrowthGlobal1X128_gt?: Maybe;\n feeGrowthGlobal1X128_lt?: Maybe;\n feeGrowthGlobal1X128_gte?: Maybe;\n feeGrowthGlobal1X128_lte?: Maybe;\n feeGrowthGlobal1X128_in?: Maybe>;\n feeGrowthGlobal1X128_not_in?: Maybe>;\n token0Price?: Maybe;\n token0Price_not?: Maybe;\n token0Price_gt?: Maybe;\n token0Price_lt?: Maybe;\n token0Price_gte?: Maybe;\n token0Price_lte?: Maybe;\n token0Price_in?: Maybe>;\n token0Price_not_in?: Maybe>;\n token1Price?: Maybe;\n token1Price_not?: Maybe;\n token1Price_gt?: Maybe;\n token1Price_lt?: Maybe;\n token1Price_gte?: Maybe;\n token1Price_lte?: Maybe;\n token1Price_in?: Maybe>;\n token1Price_not_in?: Maybe>;\n tick?: Maybe;\n tick_not?: Maybe;\n tick_gt?: Maybe;\n tick_lt?: Maybe;\n tick_gte?: Maybe;\n tick_lte?: Maybe;\n tick_in?: Maybe>;\n tick_not_in?: Maybe>;\n observationIndex?: Maybe;\n observationIndex_not?: Maybe;\n observationIndex_gt?: Maybe;\n observationIndex_lt?: Maybe;\n observationIndex_gte?: Maybe;\n observationIndex_lte?: Maybe;\n observationIndex_in?: Maybe>;\n observationIndex_not_in?: Maybe>;\n volumeToken0?: Maybe;\n volumeToken0_not?: Maybe;\n volumeToken0_gt?: Maybe;\n volumeToken0_lt?: Maybe;\n volumeToken0_gte?: Maybe;\n volumeToken0_lte?: Maybe;\n volumeToken0_in?: Maybe>;\n volumeToken0_not_in?: Maybe>;\n volumeToken1?: Maybe;\n volumeToken1_not?: Maybe;\n volumeToken1_gt?: Maybe;\n volumeToken1_lt?: Maybe;\n volumeToken1_gte?: Maybe;\n volumeToken1_lte?: Maybe;\n volumeToken1_in?: Maybe>;\n volumeToken1_not_in?: Maybe>;\n volumeUSD?: Maybe;\n volumeUSD_not?: Maybe;\n volumeUSD_gt?: Maybe;\n volumeUSD_lt?: Maybe;\n volumeUSD_gte?: Maybe;\n volumeUSD_lte?: Maybe;\n volumeUSD_in?: Maybe>;\n volumeUSD_not_in?: Maybe>;\n untrackedVolumeUSD?: Maybe;\n untrackedVolumeUSD_not?: Maybe;\n untrackedVolumeUSD_gt?: Maybe;\n untrackedVolumeUSD_lt?: Maybe;\n untrackedVolumeUSD_gte?: Maybe;\n untrackedVolumeUSD_lte?: Maybe;\n untrackedVolumeUSD_in?: Maybe>;\n untrackedVolumeUSD_not_in?: Maybe>;\n feesUSD?: Maybe;\n feesUSD_not?: Maybe;\n feesUSD_gt?: Maybe;\n feesUSD_lt?: Maybe;\n feesUSD_gte?: Maybe;\n feesUSD_lte?: Maybe;\n feesUSD_in?: Maybe>;\n feesUSD_not_in?: Maybe>;\n txCount?: Maybe;\n txCount_not?: Maybe;\n txCount_gt?: Maybe;\n txCount_lt?: Maybe;\n txCount_gte?: Maybe;\n txCount_lte?: Maybe;\n txCount_in?: Maybe>;\n txCount_not_in?: Maybe>;\n collectedFeesToken0?: Maybe;\n collectedFeesToken0_not?: Maybe;\n collectedFeesToken0_gt?: Maybe;\n collectedFeesToken0_lt?: Maybe;\n collectedFeesToken0_gte?: Maybe;\n collectedFeesToken0_lte?: Maybe;\n collectedFeesToken0_in?: Maybe>;\n collectedFeesToken0_not_in?: Maybe>;\n collectedFeesToken1?: Maybe;\n collectedFeesToken1_not?: Maybe;\n collectedFeesToken1_gt?: Maybe;\n collectedFeesToken1_lt?: Maybe;\n collectedFeesToken1_gte?: Maybe;\n collectedFeesToken1_lte?: Maybe;\n collectedFeesToken1_in?: Maybe>;\n collectedFeesToken1_not_in?: Maybe>;\n collectedFeesUSD?: Maybe;\n collectedFeesUSD_not?: Maybe;\n collectedFeesUSD_gt?: Maybe;\n collectedFeesUSD_lt?: Maybe;\n collectedFeesUSD_gte?: Maybe;\n collectedFeesUSD_lte?: Maybe;\n collectedFeesUSD_in?: Maybe>;\n collectedFeesUSD_not_in?: Maybe>;\n totalValueLockedToken0?: Maybe;\n totalValueLockedToken0_not?: Maybe;\n totalValueLockedToken0_gt?: Maybe;\n totalValueLockedToken0_lt?: Maybe;\n totalValueLockedToken0_gte?: Maybe;\n totalValueLockedToken0_lte?: Maybe;\n totalValueLockedToken0_in?: Maybe>;\n totalValueLockedToken0_not_in?: Maybe>;\n totalValueLockedToken1?: Maybe;\n totalValueLockedToken1_not?: Maybe;\n totalValueLockedToken1_gt?: Maybe;\n totalValueLockedToken1_lt?: Maybe;\n totalValueLockedToken1_gte?: Maybe;\n totalValueLockedToken1_lte?: Maybe;\n totalValueLockedToken1_in?: Maybe>;\n totalValueLockedToken1_not_in?: Maybe>;\n totalValueLockedETH?: Maybe;\n totalValueLockedETH_not?: Maybe;\n totalValueLockedETH_gt?: Maybe;\n totalValueLockedETH_lt?: Maybe;\n totalValueLockedETH_gte?: Maybe;\n totalValueLockedETH_lte?: Maybe;\n totalValueLockedETH_in?: Maybe>;\n totalValueLockedETH_not_in?: Maybe>;\n totalValueLockedUSD?: Maybe;\n totalValueLockedUSD_not?: Maybe;\n totalValueLockedUSD_gt?: Maybe;\n totalValueLockedUSD_lt?: Maybe;\n totalValueLockedUSD_gte?: Maybe;\n totalValueLockedUSD_lte?: Maybe;\n totalValueLockedUSD_in?: Maybe>;\n totalValueLockedUSD_not_in?: Maybe>;\n totalValueLockedUSDUntracked?: Maybe;\n totalValueLockedUSDUntracked_not?: Maybe;\n totalValueLockedUSDUntracked_gt?: Maybe;\n totalValueLockedUSDUntracked_lt?: Maybe;\n totalValueLockedUSDUntracked_gte?: Maybe;\n totalValueLockedUSDUntracked_lte?: Maybe;\n totalValueLockedUSDUntracked_in?: Maybe>;\n totalValueLockedUSDUntracked_not_in?: Maybe>;\n liquidityProviderCount?: Maybe;\n liquidityProviderCount_not?: Maybe;\n liquidityProviderCount_gt?: Maybe;\n liquidityProviderCount_lt?: Maybe;\n liquidityProviderCount_gte?: Maybe;\n liquidityProviderCount_lte?: Maybe;\n liquidityProviderCount_in?: Maybe>;\n liquidityProviderCount_not_in?: Maybe>;\n};\n\nexport enum Pool_OrderBy {\n Id = 'id',\n CreatedAtTimestamp = 'createdAtTimestamp',\n CreatedAtBlockNumber = 'createdAtBlockNumber',\n Token0 = 'token0',\n Token1 = 'token1',\n FeeTier = 'feeTier',\n Liquidity = 'liquidity',\n SqrtPrice = 'sqrtPrice',\n FeeGrowthGlobal0X128 = 'feeGrowthGlobal0X128',\n FeeGrowthGlobal1X128 = 'feeGrowthGlobal1X128',\n Token0Price = 'token0Price',\n Token1Price = 'token1Price',\n Tick = 'tick',\n ObservationIndex = 'observationIndex',\n VolumeToken0 = 'volumeToken0',\n VolumeToken1 = 'volumeToken1',\n VolumeUsd = 'volumeUSD',\n UntrackedVolumeUsd = 'untrackedVolumeUSD',\n FeesUsd = 'feesUSD',\n TxCount = 'txCount',\n CollectedFeesToken0 = 'collectedFeesToken0',\n CollectedFeesToken1 = 'collectedFeesToken1',\n CollectedFeesUsd = 'collectedFeesUSD',\n TotalValueLockedToken0 = 'totalValueLockedToken0',\n TotalValueLockedToken1 = 'totalValueLockedToken1',\n TotalValueLockedEth = 'totalValueLockedETH',\n TotalValueLockedUsd = 'totalValueLockedUSD',\n TotalValueLockedUsdUntracked = 'totalValueLockedUSDUntracked',\n LiquidityProviderCount = 'liquidityProviderCount',\n PoolHourData = 'poolHourData',\n PoolDayData = 'poolDayData',\n Mints = 'mints',\n Burns = 'burns',\n Swaps = 'swaps',\n Collects = 'collects',\n Ticks = 'ticks'\n}\n\nexport type Position = {\n __typename?: 'Position';\n id: Scalars['ID'];\n owner: Scalars['Bytes'];\n pool: Pool;\n token0: Token;\n token1: Token;\n tickLower: Tick;\n tickUpper: Tick;\n liquidity: Scalars['BigInt'];\n depositedToken0: Scalars['BigDecimal'];\n depositedToken1: Scalars['BigDecimal'];\n withdrawnToken0: Scalars['BigDecimal'];\n withdrawnToken1: Scalars['BigDecimal'];\n collectedFeesToken0: Scalars['BigDecimal'];\n collectedFeesToken1: Scalars['BigDecimal'];\n transaction: Transaction;\n feeGrowthInside0LastX128: Scalars['BigInt'];\n feeGrowthInside1LastX128: Scalars['BigInt'];\n};\n\nexport type PositionSnapshot = {\n __typename?: 'PositionSnapshot';\n id: Scalars['ID'];\n owner: Scalars['Bytes'];\n pool: Pool;\n position: Position;\n blockNumber: Scalars['BigInt'];\n timestamp: Scalars['BigInt'];\n liquidity: Scalars['BigInt'];\n depositedToken0: Scalars['BigDecimal'];\n depositedToken1: Scalars['BigDecimal'];\n withdrawnToken0: Scalars['BigDecimal'];\n withdrawnToken1: Scalars['BigDecimal'];\n collectedFeesToken0: Scalars['BigDecimal'];\n collectedFeesToken1: Scalars['BigDecimal'];\n transaction: Transaction;\n feeGrowthInside0LastX128: Scalars['BigInt'];\n feeGrowthInside1LastX128: Scalars['BigInt'];\n};\n\nexport type PositionSnapshot_Filter = {\n id?: Maybe;\n id_not?: Maybe;\n id_gt?: Maybe;\n id_lt?: Maybe;\n id_gte?: Maybe;\n id_lte?: Maybe;\n id_in?: Maybe>;\n id_not_in?: Maybe>;\n owner?: Maybe;\n owner_not?: Maybe;\n owner_in?: Maybe>;\n owner_not_in?: Maybe>;\n owner_contains?: Maybe;\n owner_not_contains?: Maybe;\n pool?: Maybe;\n pool_not?: Maybe;\n pool_gt?: Maybe;\n pool_lt?: Maybe;\n pool_gte?: Maybe;\n pool_lte?: Maybe;\n pool_in?: Maybe>;\n pool_not_in?: Maybe>;\n pool_contains?: Maybe;\n pool_contains_nocase?: Maybe;\n pool_not_contains?: Maybe;\n pool_not_contains_nocase?: Maybe;\n pool_starts_with?: Maybe;\n pool_starts_with_nocase?: Maybe;\n pool_not_starts_with?: Maybe;\n pool_not_starts_with_nocase?: Maybe;\n pool_ends_with?: Maybe;\n pool_ends_with_nocase?: Maybe;\n pool_not_ends_with?: Maybe;\n pool_not_ends_with_nocase?: Maybe;\n position?: Maybe;\n position_not?: Maybe;\n position_gt?: Maybe;\n position_lt?: Maybe;\n position_gte?: Maybe;\n position_lte?: Maybe;\n position_in?: Maybe>;\n position_not_in?: Maybe>;\n position_contains?: Maybe;\n position_contains_nocase?: Maybe;\n position_not_contains?: Maybe;\n position_not_contains_nocase?: Maybe;\n position_starts_with?: Maybe;\n position_starts_with_nocase?: Maybe;\n position_not_starts_with?: Maybe;\n position_not_starts_with_nocase?: Maybe;\n position_ends_with?: Maybe;\n position_ends_with_nocase?: Maybe;\n position_not_ends_with?: Maybe;\n position_not_ends_with_nocase?: Maybe;\n blockNumber?: Maybe;\n blockNumber_not?: Maybe;\n blockNumber_gt?: Maybe;\n blockNumber_lt?: Maybe;\n blockNumber_gte?: Maybe;\n blockNumber_lte?: Maybe;\n blockNumber_in?: Maybe>;\n blockNumber_not_in?: Maybe>;\n timestamp?: Maybe;\n timestamp_not?: Maybe;\n timestamp_gt?: Maybe;\n timestamp_lt?: Maybe;\n timestamp_gte?: Maybe;\n timestamp_lte?: Maybe;\n timestamp_in?: Maybe>;\n timestamp_not_in?: Maybe>;\n liquidity?: Maybe;\n liquidity_not?: Maybe;\n liquidity_gt?: Maybe;\n liquidity_lt?: Maybe;\n liquidity_gte?: Maybe;\n liquidity_lte?: Maybe;\n liquidity_in?: Maybe>;\n liquidity_not_in?: Maybe>;\n depositedToken0?: Maybe;\n depositedToken0_not?: Maybe;\n depositedToken0_gt?: Maybe;\n depositedToken0_lt?: Maybe;\n depositedToken0_gte?: Maybe;\n depositedToken0_lte?: Maybe;\n depositedToken0_in?: Maybe>;\n depositedToken0_not_in?: Maybe>;\n depositedToken1?: Maybe;\n depositedToken1_not?: Maybe;\n depositedToken1_gt?: Maybe;\n depositedToken1_lt?: Maybe;\n depositedToken1_gte?: Maybe;\n depositedToken1_lte?: Maybe;\n depositedToken1_in?: Maybe>;\n depositedToken1_not_in?: Maybe>;\n withdrawnToken0?: Maybe;\n withdrawnToken0_not?: Maybe;\n withdrawnToken0_gt?: Maybe;\n withdrawnToken0_lt?: Maybe;\n withdrawnToken0_gte?: Maybe;\n withdrawnToken0_lte?: Maybe;\n withdrawnToken0_in?: Maybe>;\n withdrawnToken0_not_in?: Maybe>;\n withdrawnToken1?: Maybe;\n withdrawnToken1_not?: Maybe;\n withdrawnToken1_gt?: Maybe;\n withdrawnToken1_lt?: Maybe;\n withdrawnToken1_gte?: Maybe;\n withdrawnToken1_lte?: Maybe;\n withdrawnToken1_in?: Maybe>;\n withdrawnToken1_not_in?: Maybe>;\n collectedFeesToken0?: Maybe;\n collectedFeesToken0_not?: Maybe;\n collectedFeesToken0_gt?: Maybe;\n collectedFeesToken0_lt?: Maybe;\n collectedFeesToken0_gte?: Maybe;\n collectedFeesToken0_lte?: Maybe;\n collectedFeesToken0_in?: Maybe>;\n collectedFeesToken0_not_in?: Maybe>;\n collectedFeesToken1?: Maybe;\n collectedFeesToken1_not?: Maybe;\n collectedFeesToken1_gt?: Maybe;\n collectedFeesToken1_lt?: Maybe;\n collectedFeesToken1_gte?: Maybe;\n collectedFeesToken1_lte?: Maybe;\n collectedFeesToken1_in?: Maybe>;\n collectedFeesToken1_not_in?: Maybe>;\n transaction?: Maybe;\n transaction_not?: Maybe;\n transaction_gt?: Maybe;\n transaction_lt?: Maybe;\n transaction_gte?: Maybe;\n transaction_lte?: Maybe;\n transaction_in?: Maybe>;\n transaction_not_in?: Maybe>;\n transaction_contains?: Maybe;\n transaction_contains_nocase?: Maybe;\n transaction_not_contains?: Maybe;\n transaction_not_contains_nocase?: Maybe;\n transaction_starts_with?: Maybe;\n transaction_starts_with_nocase?: Maybe;\n transaction_not_starts_with?: Maybe;\n transaction_not_starts_with_nocase?: Maybe;\n transaction_ends_with?: Maybe;\n transaction_ends_with_nocase?: Maybe;\n transaction_not_ends_with?: Maybe;\n transaction_not_ends_with_nocase?: Maybe;\n feeGrowthInside0LastX128?: Maybe;\n feeGrowthInside0LastX128_not?: Maybe;\n feeGrowthInside0LastX128_gt?: Maybe;\n feeGrowthInside0LastX128_lt?: Maybe;\n feeGrowthInside0LastX128_gte?: Maybe;\n feeGrowthInside0LastX128_lte?: Maybe;\n feeGrowthInside0LastX128_in?: Maybe>;\n feeGrowthInside0LastX128_not_in?: Maybe>;\n feeGrowthInside1LastX128?: Maybe;\n feeGrowthInside1LastX128_not?: Maybe;\n feeGrowthInside1LastX128_gt?: Maybe;\n feeGrowthInside1LastX128_lt?: Maybe;\n feeGrowthInside1LastX128_gte?: Maybe;\n feeGrowthInside1LastX128_lte?: Maybe;\n feeGrowthInside1LastX128_in?: Maybe>;\n feeGrowthInside1LastX128_not_in?: Maybe>;\n};\n\nexport enum PositionSnapshot_OrderBy {\n Id = 'id',\n Owner = 'owner',\n Pool = 'pool',\n Position = 'position',\n BlockNumber = 'blockNumber',\n Timestamp = 'timestamp',\n Liquidity = 'liquidity',\n DepositedToken0 = 'depositedToken0',\n DepositedToken1 = 'depositedToken1',\n WithdrawnToken0 = 'withdrawnToken0',\n WithdrawnToken1 = 'withdrawnToken1',\n CollectedFeesToken0 = 'collectedFeesToken0',\n CollectedFeesToken1 = 'collectedFeesToken1',\n Transaction = 'transaction',\n FeeGrowthInside0LastX128 = 'feeGrowthInside0LastX128',\n FeeGrowthInside1LastX128 = 'feeGrowthInside1LastX128'\n}\n\nexport type Position_Filter = {\n id?: Maybe;\n id_not?: Maybe;\n id_gt?: Maybe;\n id_lt?: Maybe;\n id_gte?: Maybe;\n id_lte?: Maybe;\n id_in?: Maybe>;\n id_not_in?: Maybe>;\n owner?: Maybe;\n owner_not?: Maybe;\n owner_in?: Maybe>;\n owner_not_in?: Maybe>;\n owner_contains?: Maybe;\n owner_not_contains?: Maybe;\n pool?: Maybe;\n pool_not?: Maybe;\n pool_gt?: Maybe;\n pool_lt?: Maybe;\n pool_gte?: Maybe;\n pool_lte?: Maybe;\n pool_in?: Maybe>;\n pool_not_in?: Maybe>;\n pool_contains?: Maybe;\n pool_contains_nocase?: Maybe;\n pool_not_contains?: Maybe;\n pool_not_contains_nocase?: Maybe;\n pool_starts_with?: Maybe;\n pool_starts_with_nocase?: Maybe;\n pool_not_starts_with?: Maybe;\n pool_not_starts_with_nocase?: Maybe;\n pool_ends_with?: Maybe;\n pool_ends_with_nocase?: Maybe;\n pool_not_ends_with?: Maybe;\n pool_not_ends_with_nocase?: Maybe;\n token0?: Maybe;\n token0_not?: Maybe;\n token0_gt?: Maybe;\n token0_lt?: Maybe;\n token0_gte?: Maybe;\n token0_lte?: Maybe;\n token0_in?: Maybe>;\n token0_not_in?: Maybe>;\n token0_contains?: Maybe;\n token0_contains_nocase?: Maybe;\n token0_not_contains?: Maybe;\n token0_not_contains_nocase?: Maybe;\n token0_starts_with?: Maybe;\n token0_starts_with_nocase?: Maybe;\n token0_not_starts_with?: Maybe;\n token0_not_starts_with_nocase?: Maybe;\n token0_ends_with?: Maybe;\n token0_ends_with_nocase?: Maybe;\n token0_not_ends_with?: Maybe;\n token0_not_ends_with_nocase?: Maybe;\n token1?: Maybe;\n token1_not?: Maybe;\n token1_gt?: Maybe;\n token1_lt?: Maybe;\n token1_gte?: Maybe;\n token1_lte?: Maybe;\n token1_in?: Maybe>;\n token1_not_in?: Maybe>;\n token1_contains?: Maybe;\n token1_contains_nocase?: Maybe;\n token1_not_contains?: Maybe;\n token1_not_contains_nocase?: Maybe;\n token1_starts_with?: Maybe;\n token1_starts_with_nocase?: Maybe;\n token1_not_starts_with?: Maybe;\n token1_not_starts_with_nocase?: Maybe;\n token1_ends_with?: Maybe;\n token1_ends_with_nocase?: Maybe;\n token1_not_ends_with?: Maybe;\n token1_not_ends_with_nocase?: Maybe;\n tickLower?: Maybe;\n tickLower_not?: Maybe;\n tickLower_gt?: Maybe;\n tickLower_lt?: Maybe;\n tickLower_gte?: Maybe;\n tickLower_lte?: Maybe;\n tickLower_in?: Maybe>;\n tickLower_not_in?: Maybe>;\n tickLower_contains?: Maybe;\n tickLower_contains_nocase?: Maybe;\n tickLower_not_contains?: Maybe;\n tickLower_not_contains_nocase?: Maybe;\n tickLower_starts_with?: Maybe;\n tickLower_starts_with_nocase?: Maybe;\n tickLower_not_starts_with?: Maybe;\n tickLower_not_starts_with_nocase?: Maybe;\n tickLower_ends_with?: Maybe;\n tickLower_ends_with_nocase?: Maybe;\n tickLower_not_ends_with?: Maybe;\n tickLower_not_ends_with_nocase?: Maybe;\n tickUpper?: Maybe;\n tickUpper_not?: Maybe;\n tickUpper_gt?: Maybe;\n tickUpper_lt?: Maybe;\n tickUpper_gte?: Maybe;\n tickUpper_lte?: Maybe;\n tickUpper_in?: Maybe>;\n tickUpper_not_in?: Maybe>;\n tickUpper_contains?: Maybe;\n tickUpper_contains_nocase?: Maybe;\n tickUpper_not_contains?: Maybe;\n tickUpper_not_contains_nocase?: Maybe;\n tickUpper_starts_with?: Maybe;\n tickUpper_starts_with_nocase?: Maybe;\n tickUpper_not_starts_with?: Maybe;\n tickUpper_not_starts_with_nocase?: Maybe;\n tickUpper_ends_with?: Maybe;\n tickUpper_ends_with_nocase?: Maybe;\n tickUpper_not_ends_with?: Maybe;\n tickUpper_not_ends_with_nocase?: Maybe;\n liquidity?: Maybe;\n liquidity_not?: Maybe;\n liquidity_gt?: Maybe;\n liquidity_lt?: Maybe;\n liquidity_gte?: Maybe;\n liquidity_lte?: Maybe;\n liquidity_in?: Maybe>;\n liquidity_not_in?: Maybe>;\n depositedToken0?: Maybe;\n depositedToken0_not?: Maybe;\n depositedToken0_gt?: Maybe;\n depositedToken0_lt?: Maybe;\n depositedToken0_gte?: Maybe;\n depositedToken0_lte?: Maybe;\n depositedToken0_in?: Maybe>;\n depositedToken0_not_in?: Maybe>;\n depositedToken1?: Maybe;\n depositedToken1_not?: Maybe;\n depositedToken1_gt?: Maybe;\n depositedToken1_lt?: Maybe;\n depositedToken1_gte?: Maybe;\n depositedToken1_lte?: Maybe;\n depositedToken1_in?: Maybe>;\n depositedToken1_not_in?: Maybe>;\n withdrawnToken0?: Maybe;\n withdrawnToken0_not?: Maybe;\n withdrawnToken0_gt?: Maybe;\n withdrawnToken0_lt?: Maybe;\n withdrawnToken0_gte?: Maybe;\n withdrawnToken0_lte?: Maybe;\n withdrawnToken0_in?: Maybe>;\n withdrawnToken0_not_in?: Maybe>;\n withdrawnToken1?: Maybe;\n withdrawnToken1_not?: Maybe;\n withdrawnToken1_gt?: Maybe;\n withdrawnToken1_lt?: Maybe;\n withdrawnToken1_gte?: Maybe;\n withdrawnToken1_lte?: Maybe;\n withdrawnToken1_in?: Maybe>;\n withdrawnToken1_not_in?: Maybe>;\n collectedFeesToken0?: Maybe;\n collectedFeesToken0_not?: Maybe;\n collectedFeesToken0_gt?: Maybe;\n collectedFeesToken0_lt?: Maybe;\n collectedFeesToken0_gte?: Maybe;\n collectedFeesToken0_lte?: Maybe;\n collectedFeesToken0_in?: Maybe>;\n collectedFeesToken0_not_in?: Maybe>;\n collectedFeesToken1?: Maybe;\n collectedFeesToken1_not?: Maybe;\n collectedFeesToken1_gt?: Maybe;\n collectedFeesToken1_lt?: Maybe;\n collectedFeesToken1_gte?: Maybe;\n collectedFeesToken1_lte?: Maybe;\n collectedFeesToken1_in?: Maybe>;\n collectedFeesToken1_not_in?: Maybe>;\n transaction?: Maybe;\n transaction_not?: Maybe;\n transaction_gt?: Maybe;\n transaction_lt?: Maybe;\n transaction_gte?: Maybe;\n transaction_lte?: Maybe;\n transaction_in?: Maybe>;\n transaction_not_in?: Maybe>;\n transaction_contains?: Maybe;\n transaction_contains_nocase?: Maybe;\n transaction_not_contains?: Maybe;\n transaction_not_contains_nocase?: Maybe;\n transaction_starts_with?: Maybe;\n transaction_starts_with_nocase?: Maybe;\n transaction_not_starts_with?: Maybe;\n transaction_not_starts_with_nocase?: Maybe;\n transaction_ends_with?: Maybe;\n transaction_ends_with_nocase?: Maybe;\n transaction_not_ends_with?: Maybe;\n transaction_not_ends_with_nocase?: Maybe;\n feeGrowthInside0LastX128?: Maybe;\n feeGrowthInside0LastX128_not?: Maybe;\n feeGrowthInside0LastX128_gt?: Maybe;\n feeGrowthInside0LastX128_lt?: Maybe;\n feeGrowthInside0LastX128_gte?: Maybe;\n feeGrowthInside0LastX128_lte?: Maybe;\n feeGrowthInside0LastX128_in?: Maybe>;\n feeGrowthInside0LastX128_not_in?: Maybe>;\n feeGrowthInside1LastX128?: Maybe;\n feeGrowthInside1LastX128_not?: Maybe;\n feeGrowthInside1LastX128_gt?: Maybe;\n feeGrowthInside1LastX128_lt?: Maybe;\n feeGrowthInside1LastX128_gte?: Maybe;\n feeGrowthInside1LastX128_lte?: Maybe;\n feeGrowthInside1LastX128_in?: Maybe>;\n feeGrowthInside1LastX128_not_in?: Maybe>;\n};\n\nexport enum Position_OrderBy {\n Id = 'id',\n Owner = 'owner',\n Pool = 'pool',\n Token0 = 'token0',\n Token1 = 'token1',\n TickLower = 'tickLower',\n TickUpper = 'tickUpper',\n Liquidity = 'liquidity',\n DepositedToken0 = 'depositedToken0',\n DepositedToken1 = 'depositedToken1',\n WithdrawnToken0 = 'withdrawnToken0',\n WithdrawnToken1 = 'withdrawnToken1',\n CollectedFeesToken0 = 'collectedFeesToken0',\n CollectedFeesToken1 = 'collectedFeesToken1',\n Transaction = 'transaction',\n FeeGrowthInside0LastX128 = 'feeGrowthInside0LastX128',\n FeeGrowthInside1LastX128 = 'feeGrowthInside1LastX128'\n}\n\nexport type Query = {\n __typename?: 'Query';\n factory?: Maybe;\n factories: Array;\n bundle?: Maybe;\n bundles: Array;\n token?: Maybe;\n tokens: Array;\n pool?: Maybe;\n pools: Array;\n tick?: Maybe;\n ticks: Array;\n position?: Maybe;\n positions: Array;\n positionSnapshot?: Maybe;\n positionSnapshots: Array;\n transaction?: Maybe;\n transactions: Array;\n mint?: Maybe;\n mints: Array;\n burn?: Maybe;\n burns: Array;\n swap?: Maybe;\n swaps: Array;\n collect?: Maybe;\n collects: Array;\n flash?: Maybe;\n flashes: Array;\n uniswapDayData?: Maybe;\n uniswapDayDatas: Array;\n poolDayData?: Maybe;\n poolDayDatas: Array;\n poolHourData?: Maybe;\n poolHourDatas: Array;\n tickHourData?: Maybe;\n tickHourDatas: Array;\n tickDayData?: Maybe;\n tickDayDatas: Array;\n tokenDayData?: Maybe;\n tokenDayDatas: Array;\n tokenHourData?: Maybe;\n tokenHourDatas: Array;\n /** Access to subgraph metadata */\n _meta?: Maybe<_Meta_>;\n};\n\n\nexport type QueryFactoryArgs = {\n id: Scalars['ID'];\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryFactoriesArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryBundleArgs = {\n id: Scalars['ID'];\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryBundlesArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryTokenArgs = {\n id: Scalars['ID'];\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryTokensArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryPoolArgs = {\n id: Scalars['ID'];\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryPoolsArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryTickArgs = {\n id: Scalars['ID'];\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryTicksArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryPositionArgs = {\n id: Scalars['ID'];\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryPositionsArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryPositionSnapshotArgs = {\n id: Scalars['ID'];\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryPositionSnapshotsArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryTransactionArgs = {\n id: Scalars['ID'];\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryTransactionsArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryMintArgs = {\n id: Scalars['ID'];\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryMintsArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryBurnArgs = {\n id: Scalars['ID'];\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryBurnsArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QuerySwapArgs = {\n id: Scalars['ID'];\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QuerySwapsArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryCollectArgs = {\n id: Scalars['ID'];\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryCollectsArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryFlashArgs = {\n id: Scalars['ID'];\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryFlashesArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryUniswapDayDataArgs = {\n id: Scalars['ID'];\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryUniswapDayDatasArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryPoolDayDataArgs = {\n id: Scalars['ID'];\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryPoolDayDatasArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryPoolHourDataArgs = {\n id: Scalars['ID'];\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryPoolHourDatasArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryTickHourDataArgs = {\n id: Scalars['ID'];\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryTickHourDatasArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryTickDayDataArgs = {\n id: Scalars['ID'];\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryTickDayDatasArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryTokenDayDataArgs = {\n id: Scalars['ID'];\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryTokenDayDatasArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryTokenHourDataArgs = {\n id: Scalars['ID'];\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type QueryTokenHourDatasArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type Query_MetaArgs = {\n block?: Maybe;\n};\n\nexport type Subscription = {\n __typename?: 'Subscription';\n factory?: Maybe;\n factories: Array;\n bundle?: Maybe;\n bundles: Array;\n token?: Maybe;\n tokens: Array;\n pool?: Maybe;\n pools: Array;\n tick?: Maybe;\n ticks: Array;\n position?: Maybe;\n positions: Array;\n positionSnapshot?: Maybe;\n positionSnapshots: Array;\n transaction?: Maybe;\n transactions: Array;\n mint?: Maybe;\n mints: Array;\n burn?: Maybe;\n burns: Array;\n swap?: Maybe;\n swaps: Array;\n collect?: Maybe;\n collects: Array;\n flash?: Maybe;\n flashes: Array;\n uniswapDayData?: Maybe;\n uniswapDayDatas: Array;\n poolDayData?: Maybe;\n poolDayDatas: Array;\n poolHourData?: Maybe;\n poolHourDatas: Array;\n tickHourData?: Maybe;\n tickHourDatas: Array;\n tickDayData?: Maybe;\n tickDayDatas: Array;\n tokenDayData?: Maybe;\n tokenDayDatas: Array;\n tokenHourData?: Maybe;\n tokenHourDatas: Array;\n /** Access to subgraph metadata */\n _meta?: Maybe<_Meta_>;\n};\n\n\nexport type SubscriptionFactoryArgs = {\n id: Scalars['ID'];\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type SubscriptionFactoriesArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type SubscriptionBundleArgs = {\n id: Scalars['ID'];\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type SubscriptionBundlesArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type SubscriptionTokenArgs = {\n id: Scalars['ID'];\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type SubscriptionTokensArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type SubscriptionPoolArgs = {\n id: Scalars['ID'];\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type SubscriptionPoolsArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type SubscriptionTickArgs = {\n id: Scalars['ID'];\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type SubscriptionTicksArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type SubscriptionPositionArgs = {\n id: Scalars['ID'];\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type SubscriptionPositionsArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type SubscriptionPositionSnapshotArgs = {\n id: Scalars['ID'];\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type SubscriptionPositionSnapshotsArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type SubscriptionTransactionArgs = {\n id: Scalars['ID'];\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type SubscriptionTransactionsArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type SubscriptionMintArgs = {\n id: Scalars['ID'];\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type SubscriptionMintsArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type SubscriptionBurnArgs = {\n id: Scalars['ID'];\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type SubscriptionBurnsArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type SubscriptionSwapArgs = {\n id: Scalars['ID'];\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type SubscriptionSwapsArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type SubscriptionCollectArgs = {\n id: Scalars['ID'];\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type SubscriptionCollectsArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type SubscriptionFlashArgs = {\n id: Scalars['ID'];\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type SubscriptionFlashesArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type SubscriptionUniswapDayDataArgs = {\n id: Scalars['ID'];\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type SubscriptionUniswapDayDatasArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type SubscriptionPoolDayDataArgs = {\n id: Scalars['ID'];\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type SubscriptionPoolDayDatasArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type SubscriptionPoolHourDataArgs = {\n id: Scalars['ID'];\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type SubscriptionPoolHourDatasArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type SubscriptionTickHourDataArgs = {\n id: Scalars['ID'];\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type SubscriptionTickHourDatasArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type SubscriptionTickDayDataArgs = {\n id: Scalars['ID'];\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type SubscriptionTickDayDatasArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type SubscriptionTokenDayDataArgs = {\n id: Scalars['ID'];\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type SubscriptionTokenDayDatasArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type SubscriptionTokenHourDataArgs = {\n id: Scalars['ID'];\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type SubscriptionTokenHourDatasArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n block?: Maybe;\n subgraphError?: _SubgraphErrorPolicy_;\n};\n\n\nexport type Subscription_MetaArgs = {\n block?: Maybe;\n};\n\nexport type Swap = {\n __typename?: 'Swap';\n id: Scalars['ID'];\n transaction: Transaction;\n timestamp: Scalars['BigInt'];\n pool: Pool;\n token0: Token;\n token1: Token;\n sender: Scalars['Bytes'];\n recipient: Scalars['Bytes'];\n origin: Scalars['Bytes'];\n amount0: Scalars['BigDecimal'];\n amount1: Scalars['BigDecimal'];\n amountUSD: Scalars['BigDecimal'];\n sqrtPriceX96: Scalars['BigInt'];\n tick: Scalars['BigInt'];\n logIndex?: Maybe;\n};\n\nexport type Swap_Filter = {\n id?: Maybe;\n id_not?: Maybe;\n id_gt?: Maybe;\n id_lt?: Maybe;\n id_gte?: Maybe;\n id_lte?: Maybe;\n id_in?: Maybe>;\n id_not_in?: Maybe>;\n transaction?: Maybe;\n transaction_not?: Maybe;\n transaction_gt?: Maybe;\n transaction_lt?: Maybe;\n transaction_gte?: Maybe;\n transaction_lte?: Maybe;\n transaction_in?: Maybe>;\n transaction_not_in?: Maybe>;\n transaction_contains?: Maybe;\n transaction_contains_nocase?: Maybe;\n transaction_not_contains?: Maybe;\n transaction_not_contains_nocase?: Maybe;\n transaction_starts_with?: Maybe;\n transaction_starts_with_nocase?: Maybe;\n transaction_not_starts_with?: Maybe;\n transaction_not_starts_with_nocase?: Maybe;\n transaction_ends_with?: Maybe;\n transaction_ends_with_nocase?: Maybe;\n transaction_not_ends_with?: Maybe;\n transaction_not_ends_with_nocase?: Maybe;\n timestamp?: Maybe;\n timestamp_not?: Maybe;\n timestamp_gt?: Maybe;\n timestamp_lt?: Maybe;\n timestamp_gte?: Maybe;\n timestamp_lte?: Maybe;\n timestamp_in?: Maybe>;\n timestamp_not_in?: Maybe>;\n pool?: Maybe;\n pool_not?: Maybe;\n pool_gt?: Maybe;\n pool_lt?: Maybe;\n pool_gte?: Maybe;\n pool_lte?: Maybe;\n pool_in?: Maybe>;\n pool_not_in?: Maybe>;\n pool_contains?: Maybe;\n pool_contains_nocase?: Maybe;\n pool_not_contains?: Maybe;\n pool_not_contains_nocase?: Maybe;\n pool_starts_with?: Maybe;\n pool_starts_with_nocase?: Maybe;\n pool_not_starts_with?: Maybe;\n pool_not_starts_with_nocase?: Maybe;\n pool_ends_with?: Maybe;\n pool_ends_with_nocase?: Maybe;\n pool_not_ends_with?: Maybe;\n pool_not_ends_with_nocase?: Maybe;\n token0?: Maybe;\n token0_not?: Maybe;\n token0_gt?: Maybe;\n token0_lt?: Maybe;\n token0_gte?: Maybe;\n token0_lte?: Maybe;\n token0_in?: Maybe>;\n token0_not_in?: Maybe>;\n token0_contains?: Maybe;\n token0_contains_nocase?: Maybe;\n token0_not_contains?: Maybe;\n token0_not_contains_nocase?: Maybe;\n token0_starts_with?: Maybe;\n token0_starts_with_nocase?: Maybe;\n token0_not_starts_with?: Maybe;\n token0_not_starts_with_nocase?: Maybe;\n token0_ends_with?: Maybe;\n token0_ends_with_nocase?: Maybe;\n token0_not_ends_with?: Maybe;\n token0_not_ends_with_nocase?: Maybe;\n token1?: Maybe;\n token1_not?: Maybe;\n token1_gt?: Maybe;\n token1_lt?: Maybe;\n token1_gte?: Maybe;\n token1_lte?: Maybe;\n token1_in?: Maybe>;\n token1_not_in?: Maybe>;\n token1_contains?: Maybe;\n token1_contains_nocase?: Maybe;\n token1_not_contains?: Maybe;\n token1_not_contains_nocase?: Maybe;\n token1_starts_with?: Maybe;\n token1_starts_with_nocase?: Maybe;\n token1_not_starts_with?: Maybe;\n token1_not_starts_with_nocase?: Maybe;\n token1_ends_with?: Maybe;\n token1_ends_with_nocase?: Maybe;\n token1_not_ends_with?: Maybe;\n token1_not_ends_with_nocase?: Maybe;\n sender?: Maybe;\n sender_not?: Maybe;\n sender_in?: Maybe>;\n sender_not_in?: Maybe>;\n sender_contains?: Maybe;\n sender_not_contains?: Maybe;\n recipient?: Maybe;\n recipient_not?: Maybe;\n recipient_in?: Maybe>;\n recipient_not_in?: Maybe>;\n recipient_contains?: Maybe;\n recipient_not_contains?: Maybe;\n origin?: Maybe;\n origin_not?: Maybe;\n origin_in?: Maybe>;\n origin_not_in?: Maybe>;\n origin_contains?: Maybe;\n origin_not_contains?: Maybe;\n amount0?: Maybe;\n amount0_not?: Maybe;\n amount0_gt?: Maybe;\n amount0_lt?: Maybe;\n amount0_gte?: Maybe;\n amount0_lte?: Maybe;\n amount0_in?: Maybe>;\n amount0_not_in?: Maybe>;\n amount1?: Maybe;\n amount1_not?: Maybe;\n amount1_gt?: Maybe;\n amount1_lt?: Maybe;\n amount1_gte?: Maybe;\n amount1_lte?: Maybe;\n amount1_in?: Maybe>;\n amount1_not_in?: Maybe>;\n amountUSD?: Maybe;\n amountUSD_not?: Maybe;\n amountUSD_gt?: Maybe;\n amountUSD_lt?: Maybe;\n amountUSD_gte?: Maybe;\n amountUSD_lte?: Maybe;\n amountUSD_in?: Maybe>;\n amountUSD_not_in?: Maybe>;\n sqrtPriceX96?: Maybe;\n sqrtPriceX96_not?: Maybe;\n sqrtPriceX96_gt?: Maybe;\n sqrtPriceX96_lt?: Maybe;\n sqrtPriceX96_gte?: Maybe;\n sqrtPriceX96_lte?: Maybe;\n sqrtPriceX96_in?: Maybe>;\n sqrtPriceX96_not_in?: Maybe>;\n tick?: Maybe;\n tick_not?: Maybe;\n tick_gt?: Maybe;\n tick_lt?: Maybe;\n tick_gte?: Maybe;\n tick_lte?: Maybe;\n tick_in?: Maybe>;\n tick_not_in?: Maybe>;\n logIndex?: Maybe;\n logIndex_not?: Maybe;\n logIndex_gt?: Maybe;\n logIndex_lt?: Maybe;\n logIndex_gte?: Maybe;\n logIndex_lte?: Maybe;\n logIndex_in?: Maybe>;\n logIndex_not_in?: Maybe>;\n};\n\nexport enum Swap_OrderBy {\n Id = 'id',\n Transaction = 'transaction',\n Timestamp = 'timestamp',\n Pool = 'pool',\n Token0 = 'token0',\n Token1 = 'token1',\n Sender = 'sender',\n Recipient = 'recipient',\n Origin = 'origin',\n Amount0 = 'amount0',\n Amount1 = 'amount1',\n AmountUsd = 'amountUSD',\n SqrtPriceX96 = 'sqrtPriceX96',\n Tick = 'tick',\n LogIndex = 'logIndex'\n}\n\nexport type Tick = {\n __typename?: 'Tick';\n id: Scalars['ID'];\n poolAddress?: Maybe;\n tickIdx: Scalars['BigInt'];\n pool: Pool;\n liquidityGross: Scalars['BigInt'];\n liquidityNet: Scalars['BigInt'];\n price0: Scalars['BigDecimal'];\n price1: Scalars['BigDecimal'];\n volumeToken0: Scalars['BigDecimal'];\n volumeToken1: Scalars['BigDecimal'];\n volumeUSD: Scalars['BigDecimal'];\n untrackedVolumeUSD: Scalars['BigDecimal'];\n feesUSD: Scalars['BigDecimal'];\n collectedFeesToken0: Scalars['BigDecimal'];\n collectedFeesToken1: Scalars['BigDecimal'];\n collectedFeesUSD: Scalars['BigDecimal'];\n createdAtTimestamp: Scalars['BigInt'];\n createdAtBlockNumber: Scalars['BigInt'];\n liquidityProviderCount: Scalars['BigInt'];\n feeGrowthOutside0X128: Scalars['BigInt'];\n feeGrowthOutside1X128: Scalars['BigInt'];\n};\n\nexport type TickDayData = {\n __typename?: 'TickDayData';\n id: Scalars['ID'];\n date: Scalars['Int'];\n pool: Pool;\n tick: Tick;\n liquidityGross: Scalars['BigInt'];\n liquidityNet: Scalars['BigInt'];\n volumeToken0: Scalars['BigDecimal'];\n volumeToken1: Scalars['BigDecimal'];\n volumeUSD: Scalars['BigDecimal'];\n feesUSD: Scalars['BigDecimal'];\n feeGrowthOutside0X128: Scalars['BigInt'];\n feeGrowthOutside1X128: Scalars['BigInt'];\n};\n\nexport type TickDayData_Filter = {\n id?: Maybe;\n id_not?: Maybe;\n id_gt?: Maybe;\n id_lt?: Maybe;\n id_gte?: Maybe;\n id_lte?: Maybe;\n id_in?: Maybe>;\n id_not_in?: Maybe>;\n date?: Maybe;\n date_not?: Maybe;\n date_gt?: Maybe;\n date_lt?: Maybe;\n date_gte?: Maybe;\n date_lte?: Maybe;\n date_in?: Maybe>;\n date_not_in?: Maybe>;\n pool?: Maybe;\n pool_not?: Maybe;\n pool_gt?: Maybe;\n pool_lt?: Maybe;\n pool_gte?: Maybe;\n pool_lte?: Maybe;\n pool_in?: Maybe>;\n pool_not_in?: Maybe>;\n pool_contains?: Maybe;\n pool_contains_nocase?: Maybe;\n pool_not_contains?: Maybe;\n pool_not_contains_nocase?: Maybe;\n pool_starts_with?: Maybe;\n pool_starts_with_nocase?: Maybe;\n pool_not_starts_with?: Maybe;\n pool_not_starts_with_nocase?: Maybe;\n pool_ends_with?: Maybe;\n pool_ends_with_nocase?: Maybe;\n pool_not_ends_with?: Maybe;\n pool_not_ends_with_nocase?: Maybe;\n tick?: Maybe;\n tick_not?: Maybe;\n tick_gt?: Maybe;\n tick_lt?: Maybe;\n tick_gte?: Maybe;\n tick_lte?: Maybe;\n tick_in?: Maybe>;\n tick_not_in?: Maybe>;\n tick_contains?: Maybe;\n tick_contains_nocase?: Maybe;\n tick_not_contains?: Maybe;\n tick_not_contains_nocase?: Maybe;\n tick_starts_with?: Maybe;\n tick_starts_with_nocase?: Maybe;\n tick_not_starts_with?: Maybe;\n tick_not_starts_with_nocase?: Maybe;\n tick_ends_with?: Maybe;\n tick_ends_with_nocase?: Maybe;\n tick_not_ends_with?: Maybe;\n tick_not_ends_with_nocase?: Maybe;\n liquidityGross?: Maybe;\n liquidityGross_not?: Maybe;\n liquidityGross_gt?: Maybe;\n liquidityGross_lt?: Maybe;\n liquidityGross_gte?: Maybe;\n liquidityGross_lte?: Maybe;\n liquidityGross_in?: Maybe>;\n liquidityGross_not_in?: Maybe>;\n liquidityNet?: Maybe;\n liquidityNet_not?: Maybe;\n liquidityNet_gt?: Maybe;\n liquidityNet_lt?: Maybe;\n liquidityNet_gte?: Maybe;\n liquidityNet_lte?: Maybe;\n liquidityNet_in?: Maybe>;\n liquidityNet_not_in?: Maybe>;\n volumeToken0?: Maybe;\n volumeToken0_not?: Maybe;\n volumeToken0_gt?: Maybe;\n volumeToken0_lt?: Maybe;\n volumeToken0_gte?: Maybe;\n volumeToken0_lte?: Maybe;\n volumeToken0_in?: Maybe>;\n volumeToken0_not_in?: Maybe>;\n volumeToken1?: Maybe;\n volumeToken1_not?: Maybe;\n volumeToken1_gt?: Maybe;\n volumeToken1_lt?: Maybe;\n volumeToken1_gte?: Maybe;\n volumeToken1_lte?: Maybe;\n volumeToken1_in?: Maybe>;\n volumeToken1_not_in?: Maybe>;\n volumeUSD?: Maybe;\n volumeUSD_not?: Maybe;\n volumeUSD_gt?: Maybe;\n volumeUSD_lt?: Maybe;\n volumeUSD_gte?: Maybe;\n volumeUSD_lte?: Maybe;\n volumeUSD_in?: Maybe>;\n volumeUSD_not_in?: Maybe>;\n feesUSD?: Maybe;\n feesUSD_not?: Maybe;\n feesUSD_gt?: Maybe;\n feesUSD_lt?: Maybe;\n feesUSD_gte?: Maybe;\n feesUSD_lte?: Maybe;\n feesUSD_in?: Maybe>;\n feesUSD_not_in?: Maybe>;\n feeGrowthOutside0X128?: Maybe;\n feeGrowthOutside0X128_not?: Maybe;\n feeGrowthOutside0X128_gt?: Maybe;\n feeGrowthOutside0X128_lt?: Maybe;\n feeGrowthOutside0X128_gte?: Maybe;\n feeGrowthOutside0X128_lte?: Maybe;\n feeGrowthOutside0X128_in?: Maybe>;\n feeGrowthOutside0X128_not_in?: Maybe>;\n feeGrowthOutside1X128?: Maybe;\n feeGrowthOutside1X128_not?: Maybe;\n feeGrowthOutside1X128_gt?: Maybe;\n feeGrowthOutside1X128_lt?: Maybe;\n feeGrowthOutside1X128_gte?: Maybe;\n feeGrowthOutside1X128_lte?: Maybe;\n feeGrowthOutside1X128_in?: Maybe>;\n feeGrowthOutside1X128_not_in?: Maybe>;\n};\n\nexport enum TickDayData_OrderBy {\n Id = 'id',\n Date = 'date',\n Pool = 'pool',\n Tick = 'tick',\n LiquidityGross = 'liquidityGross',\n LiquidityNet = 'liquidityNet',\n VolumeToken0 = 'volumeToken0',\n VolumeToken1 = 'volumeToken1',\n VolumeUsd = 'volumeUSD',\n FeesUsd = 'feesUSD',\n FeeGrowthOutside0X128 = 'feeGrowthOutside0X128',\n FeeGrowthOutside1X128 = 'feeGrowthOutside1X128'\n}\n\nexport type TickHourData = {\n __typename?: 'TickHourData';\n id: Scalars['ID'];\n periodStartUnix: Scalars['Int'];\n pool: Pool;\n tick: Tick;\n liquidityGross: Scalars['BigInt'];\n liquidityNet: Scalars['BigInt'];\n volumeToken0: Scalars['BigDecimal'];\n volumeToken1: Scalars['BigDecimal'];\n volumeUSD: Scalars['BigDecimal'];\n feesUSD: Scalars['BigDecimal'];\n};\n\nexport type TickHourData_Filter = {\n id?: Maybe;\n id_not?: Maybe;\n id_gt?: Maybe;\n id_lt?: Maybe;\n id_gte?: Maybe;\n id_lte?: Maybe;\n id_in?: Maybe>;\n id_not_in?: Maybe>;\n periodStartUnix?: Maybe;\n periodStartUnix_not?: Maybe;\n periodStartUnix_gt?: Maybe;\n periodStartUnix_lt?: Maybe;\n periodStartUnix_gte?: Maybe;\n periodStartUnix_lte?: Maybe;\n periodStartUnix_in?: Maybe>;\n periodStartUnix_not_in?: Maybe>;\n pool?: Maybe;\n pool_not?: Maybe;\n pool_gt?: Maybe;\n pool_lt?: Maybe;\n pool_gte?: Maybe;\n pool_lte?: Maybe;\n pool_in?: Maybe>;\n pool_not_in?: Maybe>;\n pool_contains?: Maybe;\n pool_contains_nocase?: Maybe;\n pool_not_contains?: Maybe;\n pool_not_contains_nocase?: Maybe;\n pool_starts_with?: Maybe;\n pool_starts_with_nocase?: Maybe;\n pool_not_starts_with?: Maybe;\n pool_not_starts_with_nocase?: Maybe;\n pool_ends_with?: Maybe;\n pool_ends_with_nocase?: Maybe;\n pool_not_ends_with?: Maybe;\n pool_not_ends_with_nocase?: Maybe;\n tick?: Maybe;\n tick_not?: Maybe;\n tick_gt?: Maybe;\n tick_lt?: Maybe;\n tick_gte?: Maybe;\n tick_lte?: Maybe;\n tick_in?: Maybe>;\n tick_not_in?: Maybe>;\n tick_contains?: Maybe;\n tick_contains_nocase?: Maybe;\n tick_not_contains?: Maybe;\n tick_not_contains_nocase?: Maybe;\n tick_starts_with?: Maybe;\n tick_starts_with_nocase?: Maybe;\n tick_not_starts_with?: Maybe;\n tick_not_starts_with_nocase?: Maybe;\n tick_ends_with?: Maybe;\n tick_ends_with_nocase?: Maybe;\n tick_not_ends_with?: Maybe;\n tick_not_ends_with_nocase?: Maybe;\n liquidityGross?: Maybe;\n liquidityGross_not?: Maybe;\n liquidityGross_gt?: Maybe;\n liquidityGross_lt?: Maybe;\n liquidityGross_gte?: Maybe;\n liquidityGross_lte?: Maybe;\n liquidityGross_in?: Maybe>;\n liquidityGross_not_in?: Maybe>;\n liquidityNet?: Maybe;\n liquidityNet_not?: Maybe;\n liquidityNet_gt?: Maybe;\n liquidityNet_lt?: Maybe;\n liquidityNet_gte?: Maybe;\n liquidityNet_lte?: Maybe;\n liquidityNet_in?: Maybe>;\n liquidityNet_not_in?: Maybe>;\n volumeToken0?: Maybe;\n volumeToken0_not?: Maybe;\n volumeToken0_gt?: Maybe;\n volumeToken0_lt?: Maybe;\n volumeToken0_gte?: Maybe;\n volumeToken0_lte?: Maybe;\n volumeToken0_in?: Maybe>;\n volumeToken0_not_in?: Maybe>;\n volumeToken1?: Maybe;\n volumeToken1_not?: Maybe;\n volumeToken1_gt?: Maybe;\n volumeToken1_lt?: Maybe;\n volumeToken1_gte?: Maybe;\n volumeToken1_lte?: Maybe;\n volumeToken1_in?: Maybe>;\n volumeToken1_not_in?: Maybe>;\n volumeUSD?: Maybe;\n volumeUSD_not?: Maybe;\n volumeUSD_gt?: Maybe;\n volumeUSD_lt?: Maybe;\n volumeUSD_gte?: Maybe;\n volumeUSD_lte?: Maybe;\n volumeUSD_in?: Maybe>;\n volumeUSD_not_in?: Maybe>;\n feesUSD?: Maybe;\n feesUSD_not?: Maybe;\n feesUSD_gt?: Maybe;\n feesUSD_lt?: Maybe;\n feesUSD_gte?: Maybe;\n feesUSD_lte?: Maybe;\n feesUSD_in?: Maybe>;\n feesUSD_not_in?: Maybe>;\n};\n\nexport enum TickHourData_OrderBy {\n Id = 'id',\n PeriodStartUnix = 'periodStartUnix',\n Pool = 'pool',\n Tick = 'tick',\n LiquidityGross = 'liquidityGross',\n LiquidityNet = 'liquidityNet',\n VolumeToken0 = 'volumeToken0',\n VolumeToken1 = 'volumeToken1',\n VolumeUsd = 'volumeUSD',\n FeesUsd = 'feesUSD'\n}\n\nexport type Tick_Filter = {\n id?: Maybe;\n id_not?: Maybe;\n id_gt?: Maybe;\n id_lt?: Maybe;\n id_gte?: Maybe;\n id_lte?: Maybe;\n id_in?: Maybe>;\n id_not_in?: Maybe>;\n poolAddress?: Maybe;\n poolAddress_not?: Maybe;\n poolAddress_gt?: Maybe;\n poolAddress_lt?: Maybe;\n poolAddress_gte?: Maybe;\n poolAddress_lte?: Maybe;\n poolAddress_in?: Maybe>;\n poolAddress_not_in?: Maybe>;\n poolAddress_contains?: Maybe;\n poolAddress_contains_nocase?: Maybe;\n poolAddress_not_contains?: Maybe;\n poolAddress_not_contains_nocase?: Maybe;\n poolAddress_starts_with?: Maybe;\n poolAddress_starts_with_nocase?: Maybe;\n poolAddress_not_starts_with?: Maybe;\n poolAddress_not_starts_with_nocase?: Maybe;\n poolAddress_ends_with?: Maybe;\n poolAddress_ends_with_nocase?: Maybe;\n poolAddress_not_ends_with?: Maybe;\n poolAddress_not_ends_with_nocase?: Maybe;\n tickIdx?: Maybe;\n tickIdx_not?: Maybe;\n tickIdx_gt?: Maybe;\n tickIdx_lt?: Maybe;\n tickIdx_gte?: Maybe;\n tickIdx_lte?: Maybe;\n tickIdx_in?: Maybe>;\n tickIdx_not_in?: Maybe>;\n pool?: Maybe;\n pool_not?: Maybe;\n pool_gt?: Maybe;\n pool_lt?: Maybe;\n pool_gte?: Maybe;\n pool_lte?: Maybe;\n pool_in?: Maybe>;\n pool_not_in?: Maybe>;\n pool_contains?: Maybe;\n pool_contains_nocase?: Maybe;\n pool_not_contains?: Maybe;\n pool_not_contains_nocase?: Maybe;\n pool_starts_with?: Maybe;\n pool_starts_with_nocase?: Maybe;\n pool_not_starts_with?: Maybe;\n pool_not_starts_with_nocase?: Maybe;\n pool_ends_with?: Maybe;\n pool_ends_with_nocase?: Maybe;\n pool_not_ends_with?: Maybe;\n pool_not_ends_with_nocase?: Maybe;\n liquidityGross?: Maybe;\n liquidityGross_not?: Maybe;\n liquidityGross_gt?: Maybe;\n liquidityGross_lt?: Maybe;\n liquidityGross_gte?: Maybe;\n liquidityGross_lte?: Maybe;\n liquidityGross_in?: Maybe>;\n liquidityGross_not_in?: Maybe>;\n liquidityNet?: Maybe;\n liquidityNet_not?: Maybe;\n liquidityNet_gt?: Maybe;\n liquidityNet_lt?: Maybe;\n liquidityNet_gte?: Maybe;\n liquidityNet_lte?: Maybe;\n liquidityNet_in?: Maybe>;\n liquidityNet_not_in?: Maybe>;\n price0?: Maybe;\n price0_not?: Maybe;\n price0_gt?: Maybe;\n price0_lt?: Maybe;\n price0_gte?: Maybe;\n price0_lte?: Maybe;\n price0_in?: Maybe>;\n price0_not_in?: Maybe>;\n price1?: Maybe;\n price1_not?: Maybe;\n price1_gt?: Maybe;\n price1_lt?: Maybe;\n price1_gte?: Maybe;\n price1_lte?: Maybe;\n price1_in?: Maybe>;\n price1_not_in?: Maybe>;\n volumeToken0?: Maybe;\n volumeToken0_not?: Maybe;\n volumeToken0_gt?: Maybe;\n volumeToken0_lt?: Maybe;\n volumeToken0_gte?: Maybe;\n volumeToken0_lte?: Maybe;\n volumeToken0_in?: Maybe>;\n volumeToken0_not_in?: Maybe>;\n volumeToken1?: Maybe;\n volumeToken1_not?: Maybe;\n volumeToken1_gt?: Maybe;\n volumeToken1_lt?: Maybe;\n volumeToken1_gte?: Maybe;\n volumeToken1_lte?: Maybe;\n volumeToken1_in?: Maybe>;\n volumeToken1_not_in?: Maybe>;\n volumeUSD?: Maybe;\n volumeUSD_not?: Maybe;\n volumeUSD_gt?: Maybe;\n volumeUSD_lt?: Maybe;\n volumeUSD_gte?: Maybe;\n volumeUSD_lte?: Maybe;\n volumeUSD_in?: Maybe>;\n volumeUSD_not_in?: Maybe>;\n untrackedVolumeUSD?: Maybe;\n untrackedVolumeUSD_not?: Maybe;\n untrackedVolumeUSD_gt?: Maybe;\n untrackedVolumeUSD_lt?: Maybe;\n untrackedVolumeUSD_gte?: Maybe;\n untrackedVolumeUSD_lte?: Maybe;\n untrackedVolumeUSD_in?: Maybe>;\n untrackedVolumeUSD_not_in?: Maybe>;\n feesUSD?: Maybe;\n feesUSD_not?: Maybe;\n feesUSD_gt?: Maybe;\n feesUSD_lt?: Maybe;\n feesUSD_gte?: Maybe;\n feesUSD_lte?: Maybe;\n feesUSD_in?: Maybe>;\n feesUSD_not_in?: Maybe>;\n collectedFeesToken0?: Maybe;\n collectedFeesToken0_not?: Maybe;\n collectedFeesToken0_gt?: Maybe;\n collectedFeesToken0_lt?: Maybe;\n collectedFeesToken0_gte?: Maybe;\n collectedFeesToken0_lte?: Maybe;\n collectedFeesToken0_in?: Maybe>;\n collectedFeesToken0_not_in?: Maybe>;\n collectedFeesToken1?: Maybe;\n collectedFeesToken1_not?: Maybe;\n collectedFeesToken1_gt?: Maybe;\n collectedFeesToken1_lt?: Maybe;\n collectedFeesToken1_gte?: Maybe;\n collectedFeesToken1_lte?: Maybe;\n collectedFeesToken1_in?: Maybe>;\n collectedFeesToken1_not_in?: Maybe>;\n collectedFeesUSD?: Maybe;\n collectedFeesUSD_not?: Maybe;\n collectedFeesUSD_gt?: Maybe;\n collectedFeesUSD_lt?: Maybe;\n collectedFeesUSD_gte?: Maybe;\n collectedFeesUSD_lte?: Maybe;\n collectedFeesUSD_in?: Maybe>;\n collectedFeesUSD_not_in?: Maybe>;\n createdAtTimestamp?: Maybe;\n createdAtTimestamp_not?: Maybe;\n createdAtTimestamp_gt?: Maybe;\n createdAtTimestamp_lt?: Maybe;\n createdAtTimestamp_gte?: Maybe;\n createdAtTimestamp_lte?: Maybe;\n createdAtTimestamp_in?: Maybe>;\n createdAtTimestamp_not_in?: Maybe>;\n createdAtBlockNumber?: Maybe;\n createdAtBlockNumber_not?: Maybe;\n createdAtBlockNumber_gt?: Maybe;\n createdAtBlockNumber_lt?: Maybe;\n createdAtBlockNumber_gte?: Maybe;\n createdAtBlockNumber_lte?: Maybe;\n createdAtBlockNumber_in?: Maybe>;\n createdAtBlockNumber_not_in?: Maybe>;\n liquidityProviderCount?: Maybe;\n liquidityProviderCount_not?: Maybe;\n liquidityProviderCount_gt?: Maybe;\n liquidityProviderCount_lt?: Maybe;\n liquidityProviderCount_gte?: Maybe;\n liquidityProviderCount_lte?: Maybe;\n liquidityProviderCount_in?: Maybe>;\n liquidityProviderCount_not_in?: Maybe>;\n feeGrowthOutside0X128?: Maybe;\n feeGrowthOutside0X128_not?: Maybe;\n feeGrowthOutside0X128_gt?: Maybe;\n feeGrowthOutside0X128_lt?: Maybe;\n feeGrowthOutside0X128_gte?: Maybe;\n feeGrowthOutside0X128_lte?: Maybe;\n feeGrowthOutside0X128_in?: Maybe>;\n feeGrowthOutside0X128_not_in?: Maybe>;\n feeGrowthOutside1X128?: Maybe;\n feeGrowthOutside1X128_not?: Maybe;\n feeGrowthOutside1X128_gt?: Maybe;\n feeGrowthOutside1X128_lt?: Maybe;\n feeGrowthOutside1X128_gte?: Maybe;\n feeGrowthOutside1X128_lte?: Maybe;\n feeGrowthOutside1X128_in?: Maybe>;\n feeGrowthOutside1X128_not_in?: Maybe>;\n};\n\nexport enum Tick_OrderBy {\n Id = 'id',\n PoolAddress = 'poolAddress',\n TickIdx = 'tickIdx',\n Pool = 'pool',\n LiquidityGross = 'liquidityGross',\n LiquidityNet = 'liquidityNet',\n Price0 = 'price0',\n Price1 = 'price1',\n VolumeToken0 = 'volumeToken0',\n VolumeToken1 = 'volumeToken1',\n VolumeUsd = 'volumeUSD',\n UntrackedVolumeUsd = 'untrackedVolumeUSD',\n FeesUsd = 'feesUSD',\n CollectedFeesToken0 = 'collectedFeesToken0',\n CollectedFeesToken1 = 'collectedFeesToken1',\n CollectedFeesUsd = 'collectedFeesUSD',\n CreatedAtTimestamp = 'createdAtTimestamp',\n CreatedAtBlockNumber = 'createdAtBlockNumber',\n LiquidityProviderCount = 'liquidityProviderCount',\n FeeGrowthOutside0X128 = 'feeGrowthOutside0X128',\n FeeGrowthOutside1X128 = 'feeGrowthOutside1X128'\n}\n\nexport type Token = {\n __typename?: 'Token';\n id: Scalars['ID'];\n symbol: Scalars['String'];\n name: Scalars['String'];\n decimals: Scalars['BigInt'];\n totalSupply: Scalars['BigInt'];\n volume: Scalars['BigDecimal'];\n volumeUSD: Scalars['BigDecimal'];\n untrackedVolumeUSD: Scalars['BigDecimal'];\n feesUSD: Scalars['BigDecimal'];\n txCount: Scalars['BigInt'];\n poolCount: Scalars['BigInt'];\n totalValueLocked: Scalars['BigDecimal'];\n totalValueLockedUSD: Scalars['BigDecimal'];\n totalValueLockedUSDUntracked: Scalars['BigDecimal'];\n derivedETH: Scalars['BigDecimal'];\n whitelistPools: Array;\n tokenDayData: Array;\n};\n\n\nexport type TokenWhitelistPoolsArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n};\n\n\nexport type TokenTokenDayDataArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n};\n\nexport type TokenDayData = {\n __typename?: 'TokenDayData';\n id: Scalars['ID'];\n date: Scalars['Int'];\n token: Token;\n volume: Scalars['BigDecimal'];\n volumeUSD: Scalars['BigDecimal'];\n untrackedVolumeUSD: Scalars['BigDecimal'];\n totalValueLocked: Scalars['BigDecimal'];\n totalValueLockedUSD: Scalars['BigDecimal'];\n priceUSD: Scalars['BigDecimal'];\n feesUSD: Scalars['BigDecimal'];\n open: Scalars['BigDecimal'];\n high: Scalars['BigDecimal'];\n low: Scalars['BigDecimal'];\n close: Scalars['BigDecimal'];\n};\n\nexport type TokenDayData_Filter = {\n id?: Maybe;\n id_not?: Maybe;\n id_gt?: Maybe;\n id_lt?: Maybe;\n id_gte?: Maybe;\n id_lte?: Maybe;\n id_in?: Maybe>;\n id_not_in?: Maybe>;\n date?: Maybe;\n date_not?: Maybe;\n date_gt?: Maybe;\n date_lt?: Maybe;\n date_gte?: Maybe;\n date_lte?: Maybe;\n date_in?: Maybe>;\n date_not_in?: Maybe>;\n token?: Maybe;\n token_not?: Maybe;\n token_gt?: Maybe;\n token_lt?: Maybe;\n token_gte?: Maybe;\n token_lte?: Maybe;\n token_in?: Maybe>;\n token_not_in?: Maybe>;\n token_contains?: Maybe;\n token_contains_nocase?: Maybe;\n token_not_contains?: Maybe;\n token_not_contains_nocase?: Maybe;\n token_starts_with?: Maybe;\n token_starts_with_nocase?: Maybe;\n token_not_starts_with?: Maybe;\n token_not_starts_with_nocase?: Maybe;\n token_ends_with?: Maybe;\n token_ends_with_nocase?: Maybe;\n token_not_ends_with?: Maybe;\n token_not_ends_with_nocase?: Maybe;\n volume?: Maybe;\n volume_not?: Maybe;\n volume_gt?: Maybe;\n volume_lt?: Maybe;\n volume_gte?: Maybe;\n volume_lte?: Maybe;\n volume_in?: Maybe>;\n volume_not_in?: Maybe>;\n volumeUSD?: Maybe;\n volumeUSD_not?: Maybe;\n volumeUSD_gt?: Maybe;\n volumeUSD_lt?: Maybe;\n volumeUSD_gte?: Maybe;\n volumeUSD_lte?: Maybe;\n volumeUSD_in?: Maybe>;\n volumeUSD_not_in?: Maybe>;\n untrackedVolumeUSD?: Maybe;\n untrackedVolumeUSD_not?: Maybe;\n untrackedVolumeUSD_gt?: Maybe;\n untrackedVolumeUSD_lt?: Maybe;\n untrackedVolumeUSD_gte?: Maybe;\n untrackedVolumeUSD_lte?: Maybe;\n untrackedVolumeUSD_in?: Maybe>;\n untrackedVolumeUSD_not_in?: Maybe>;\n totalValueLocked?: Maybe;\n totalValueLocked_not?: Maybe;\n totalValueLocked_gt?: Maybe;\n totalValueLocked_lt?: Maybe;\n totalValueLocked_gte?: Maybe;\n totalValueLocked_lte?: Maybe;\n totalValueLocked_in?: Maybe>;\n totalValueLocked_not_in?: Maybe>;\n totalValueLockedUSD?: Maybe;\n totalValueLockedUSD_not?: Maybe;\n totalValueLockedUSD_gt?: Maybe;\n totalValueLockedUSD_lt?: Maybe;\n totalValueLockedUSD_gte?: Maybe;\n totalValueLockedUSD_lte?: Maybe;\n totalValueLockedUSD_in?: Maybe>;\n totalValueLockedUSD_not_in?: Maybe>;\n priceUSD?: Maybe;\n priceUSD_not?: Maybe;\n priceUSD_gt?: Maybe;\n priceUSD_lt?: Maybe;\n priceUSD_gte?: Maybe;\n priceUSD_lte?: Maybe;\n priceUSD_in?: Maybe>;\n priceUSD_not_in?: Maybe>;\n feesUSD?: Maybe;\n feesUSD_not?: Maybe;\n feesUSD_gt?: Maybe;\n feesUSD_lt?: Maybe;\n feesUSD_gte?: Maybe;\n feesUSD_lte?: Maybe;\n feesUSD_in?: Maybe>;\n feesUSD_not_in?: Maybe>;\n open?: Maybe;\n open_not?: Maybe;\n open_gt?: Maybe;\n open_lt?: Maybe;\n open_gte?: Maybe;\n open_lte?: Maybe;\n open_in?: Maybe>;\n open_not_in?: Maybe>;\n high?: Maybe;\n high_not?: Maybe;\n high_gt?: Maybe;\n high_lt?: Maybe;\n high_gte?: Maybe;\n high_lte?: Maybe;\n high_in?: Maybe>;\n high_not_in?: Maybe>;\n low?: Maybe;\n low_not?: Maybe;\n low_gt?: Maybe;\n low_lt?: Maybe;\n low_gte?: Maybe;\n low_lte?: Maybe;\n low_in?: Maybe>;\n low_not_in?: Maybe>;\n close?: Maybe;\n close_not?: Maybe;\n close_gt?: Maybe;\n close_lt?: Maybe;\n close_gte?: Maybe;\n close_lte?: Maybe;\n close_in?: Maybe>;\n close_not_in?: Maybe>;\n};\n\nexport enum TokenDayData_OrderBy {\n Id = 'id',\n Date = 'date',\n Token = 'token',\n Volume = 'volume',\n VolumeUsd = 'volumeUSD',\n UntrackedVolumeUsd = 'untrackedVolumeUSD',\n TotalValueLocked = 'totalValueLocked',\n TotalValueLockedUsd = 'totalValueLockedUSD',\n PriceUsd = 'priceUSD',\n FeesUsd = 'feesUSD',\n Open = 'open',\n High = 'high',\n Low = 'low',\n Close = 'close'\n}\n\nexport type TokenHourData = {\n __typename?: 'TokenHourData';\n id: Scalars['ID'];\n periodStartUnix: Scalars['Int'];\n token: Token;\n volume: Scalars['BigDecimal'];\n volumeUSD: Scalars['BigDecimal'];\n untrackedVolumeUSD: Scalars['BigDecimal'];\n totalValueLocked: Scalars['BigDecimal'];\n totalValueLockedUSD: Scalars['BigDecimal'];\n priceUSD: Scalars['BigDecimal'];\n feesUSD: Scalars['BigDecimal'];\n open: Scalars['BigDecimal'];\n high: Scalars['BigDecimal'];\n low: Scalars['BigDecimal'];\n close: Scalars['BigDecimal'];\n};\n\nexport type TokenHourData_Filter = {\n id?: Maybe;\n id_not?: Maybe;\n id_gt?: Maybe;\n id_lt?: Maybe;\n id_gte?: Maybe;\n id_lte?: Maybe;\n id_in?: Maybe>;\n id_not_in?: Maybe>;\n periodStartUnix?: Maybe;\n periodStartUnix_not?: Maybe;\n periodStartUnix_gt?: Maybe;\n periodStartUnix_lt?: Maybe;\n periodStartUnix_gte?: Maybe;\n periodStartUnix_lte?: Maybe;\n periodStartUnix_in?: Maybe>;\n periodStartUnix_not_in?: Maybe>;\n token?: Maybe;\n token_not?: Maybe;\n token_gt?: Maybe;\n token_lt?: Maybe;\n token_gte?: Maybe;\n token_lte?: Maybe;\n token_in?: Maybe>;\n token_not_in?: Maybe>;\n token_contains?: Maybe;\n token_contains_nocase?: Maybe;\n token_not_contains?: Maybe;\n token_not_contains_nocase?: Maybe;\n token_starts_with?: Maybe;\n token_starts_with_nocase?: Maybe;\n token_not_starts_with?: Maybe;\n token_not_starts_with_nocase?: Maybe;\n token_ends_with?: Maybe;\n token_ends_with_nocase?: Maybe;\n token_not_ends_with?: Maybe;\n token_not_ends_with_nocase?: Maybe;\n volume?: Maybe;\n volume_not?: Maybe;\n volume_gt?: Maybe;\n volume_lt?: Maybe;\n volume_gte?: Maybe;\n volume_lte?: Maybe;\n volume_in?: Maybe>;\n volume_not_in?: Maybe>;\n volumeUSD?: Maybe;\n volumeUSD_not?: Maybe;\n volumeUSD_gt?: Maybe;\n volumeUSD_lt?: Maybe;\n volumeUSD_gte?: Maybe;\n volumeUSD_lte?: Maybe;\n volumeUSD_in?: Maybe>;\n volumeUSD_not_in?: Maybe>;\n untrackedVolumeUSD?: Maybe;\n untrackedVolumeUSD_not?: Maybe;\n untrackedVolumeUSD_gt?: Maybe;\n untrackedVolumeUSD_lt?: Maybe;\n untrackedVolumeUSD_gte?: Maybe;\n untrackedVolumeUSD_lte?: Maybe;\n untrackedVolumeUSD_in?: Maybe>;\n untrackedVolumeUSD_not_in?: Maybe>;\n totalValueLocked?: Maybe;\n totalValueLocked_not?: Maybe;\n totalValueLocked_gt?: Maybe;\n totalValueLocked_lt?: Maybe;\n totalValueLocked_gte?: Maybe;\n totalValueLocked_lte?: Maybe;\n totalValueLocked_in?: Maybe>;\n totalValueLocked_not_in?: Maybe>;\n totalValueLockedUSD?: Maybe;\n totalValueLockedUSD_not?: Maybe;\n totalValueLockedUSD_gt?: Maybe;\n totalValueLockedUSD_lt?: Maybe;\n totalValueLockedUSD_gte?: Maybe;\n totalValueLockedUSD_lte?: Maybe;\n totalValueLockedUSD_in?: Maybe>;\n totalValueLockedUSD_not_in?: Maybe>;\n priceUSD?: Maybe;\n priceUSD_not?: Maybe;\n priceUSD_gt?: Maybe;\n priceUSD_lt?: Maybe;\n priceUSD_gte?: Maybe;\n priceUSD_lte?: Maybe;\n priceUSD_in?: Maybe>;\n priceUSD_not_in?: Maybe>;\n feesUSD?: Maybe;\n feesUSD_not?: Maybe;\n feesUSD_gt?: Maybe;\n feesUSD_lt?: Maybe;\n feesUSD_gte?: Maybe;\n feesUSD_lte?: Maybe;\n feesUSD_in?: Maybe>;\n feesUSD_not_in?: Maybe>;\n open?: Maybe;\n open_not?: Maybe;\n open_gt?: Maybe;\n open_lt?: Maybe;\n open_gte?: Maybe;\n open_lte?: Maybe;\n open_in?: Maybe>;\n open_not_in?: Maybe>;\n high?: Maybe;\n high_not?: Maybe;\n high_gt?: Maybe;\n high_lt?: Maybe;\n high_gte?: Maybe;\n high_lte?: Maybe;\n high_in?: Maybe>;\n high_not_in?: Maybe>;\n low?: Maybe;\n low_not?: Maybe;\n low_gt?: Maybe;\n low_lt?: Maybe;\n low_gte?: Maybe;\n low_lte?: Maybe;\n low_in?: Maybe>;\n low_not_in?: Maybe>;\n close?: Maybe;\n close_not?: Maybe;\n close_gt?: Maybe;\n close_lt?: Maybe;\n close_gte?: Maybe;\n close_lte?: Maybe;\n close_in?: Maybe>;\n close_not_in?: Maybe>;\n};\n\nexport enum TokenHourData_OrderBy {\n Id = 'id',\n PeriodStartUnix = 'periodStartUnix',\n Token = 'token',\n Volume = 'volume',\n VolumeUsd = 'volumeUSD',\n UntrackedVolumeUsd = 'untrackedVolumeUSD',\n TotalValueLocked = 'totalValueLocked',\n TotalValueLockedUsd = 'totalValueLockedUSD',\n PriceUsd = 'priceUSD',\n FeesUsd = 'feesUSD',\n Open = 'open',\n High = 'high',\n Low = 'low',\n Close = 'close'\n}\n\nexport type Token_Filter = {\n id?: Maybe;\n id_not?: Maybe;\n id_gt?: Maybe;\n id_lt?: Maybe;\n id_gte?: Maybe;\n id_lte?: Maybe;\n id_in?: Maybe>;\n id_not_in?: Maybe>;\n symbol?: Maybe;\n symbol_not?: Maybe;\n symbol_gt?: Maybe;\n symbol_lt?: Maybe;\n symbol_gte?: Maybe;\n symbol_lte?: Maybe;\n symbol_in?: Maybe>;\n symbol_not_in?: Maybe>;\n symbol_contains?: Maybe;\n symbol_contains_nocase?: Maybe;\n symbol_not_contains?: Maybe;\n symbol_not_contains_nocase?: Maybe;\n symbol_starts_with?: Maybe;\n symbol_starts_with_nocase?: Maybe;\n symbol_not_starts_with?: Maybe;\n symbol_not_starts_with_nocase?: Maybe;\n symbol_ends_with?: Maybe;\n symbol_ends_with_nocase?: Maybe;\n symbol_not_ends_with?: Maybe;\n symbol_not_ends_with_nocase?: Maybe;\n name?: Maybe;\n name_not?: Maybe;\n name_gt?: Maybe;\n name_lt?: Maybe;\n name_gte?: Maybe;\n name_lte?: Maybe;\n name_in?: Maybe>;\n name_not_in?: Maybe>;\n name_contains?: Maybe;\n name_contains_nocase?: Maybe;\n name_not_contains?: Maybe;\n name_not_contains_nocase?: Maybe;\n name_starts_with?: Maybe;\n name_starts_with_nocase?: Maybe;\n name_not_starts_with?: Maybe;\n name_not_starts_with_nocase?: Maybe;\n name_ends_with?: Maybe;\n name_ends_with_nocase?: Maybe;\n name_not_ends_with?: Maybe;\n name_not_ends_with_nocase?: Maybe;\n decimals?: Maybe;\n decimals_not?: Maybe;\n decimals_gt?: Maybe;\n decimals_lt?: Maybe;\n decimals_gte?: Maybe;\n decimals_lte?: Maybe;\n decimals_in?: Maybe>;\n decimals_not_in?: Maybe>;\n totalSupply?: Maybe;\n totalSupply_not?: Maybe;\n totalSupply_gt?: Maybe;\n totalSupply_lt?: Maybe;\n totalSupply_gte?: Maybe;\n totalSupply_lte?: Maybe;\n totalSupply_in?: Maybe>;\n totalSupply_not_in?: Maybe>;\n volume?: Maybe;\n volume_not?: Maybe;\n volume_gt?: Maybe;\n volume_lt?: Maybe;\n volume_gte?: Maybe;\n volume_lte?: Maybe;\n volume_in?: Maybe>;\n volume_not_in?: Maybe>;\n volumeUSD?: Maybe;\n volumeUSD_not?: Maybe;\n volumeUSD_gt?: Maybe;\n volumeUSD_lt?: Maybe;\n volumeUSD_gte?: Maybe;\n volumeUSD_lte?: Maybe;\n volumeUSD_in?: Maybe>;\n volumeUSD_not_in?: Maybe>;\n untrackedVolumeUSD?: Maybe;\n untrackedVolumeUSD_not?: Maybe;\n untrackedVolumeUSD_gt?: Maybe;\n untrackedVolumeUSD_lt?: Maybe;\n untrackedVolumeUSD_gte?: Maybe;\n untrackedVolumeUSD_lte?: Maybe;\n untrackedVolumeUSD_in?: Maybe>;\n untrackedVolumeUSD_not_in?: Maybe>;\n feesUSD?: Maybe;\n feesUSD_not?: Maybe;\n feesUSD_gt?: Maybe;\n feesUSD_lt?: Maybe;\n feesUSD_gte?: Maybe;\n feesUSD_lte?: Maybe;\n feesUSD_in?: Maybe>;\n feesUSD_not_in?: Maybe>;\n txCount?: Maybe;\n txCount_not?: Maybe;\n txCount_gt?: Maybe;\n txCount_lt?: Maybe;\n txCount_gte?: Maybe;\n txCount_lte?: Maybe;\n txCount_in?: Maybe>;\n txCount_not_in?: Maybe>;\n poolCount?: Maybe;\n poolCount_not?: Maybe;\n poolCount_gt?: Maybe;\n poolCount_lt?: Maybe;\n poolCount_gte?: Maybe;\n poolCount_lte?: Maybe;\n poolCount_in?: Maybe>;\n poolCount_not_in?: Maybe>;\n totalValueLocked?: Maybe;\n totalValueLocked_not?: Maybe;\n totalValueLocked_gt?: Maybe;\n totalValueLocked_lt?: Maybe;\n totalValueLocked_gte?: Maybe;\n totalValueLocked_lte?: Maybe;\n totalValueLocked_in?: Maybe>;\n totalValueLocked_not_in?: Maybe>;\n totalValueLockedUSD?: Maybe;\n totalValueLockedUSD_not?: Maybe;\n totalValueLockedUSD_gt?: Maybe;\n totalValueLockedUSD_lt?: Maybe;\n totalValueLockedUSD_gte?: Maybe;\n totalValueLockedUSD_lte?: Maybe;\n totalValueLockedUSD_in?: Maybe>;\n totalValueLockedUSD_not_in?: Maybe>;\n totalValueLockedUSDUntracked?: Maybe;\n totalValueLockedUSDUntracked_not?: Maybe;\n totalValueLockedUSDUntracked_gt?: Maybe;\n totalValueLockedUSDUntracked_lt?: Maybe;\n totalValueLockedUSDUntracked_gte?: Maybe;\n totalValueLockedUSDUntracked_lte?: Maybe;\n totalValueLockedUSDUntracked_in?: Maybe>;\n totalValueLockedUSDUntracked_not_in?: Maybe>;\n derivedETH?: Maybe;\n derivedETH_not?: Maybe;\n derivedETH_gt?: Maybe;\n derivedETH_lt?: Maybe;\n derivedETH_gte?: Maybe;\n derivedETH_lte?: Maybe;\n derivedETH_in?: Maybe>;\n derivedETH_not_in?: Maybe>;\n whitelistPools?: Maybe>;\n whitelistPools_not?: Maybe>;\n whitelistPools_contains?: Maybe>;\n whitelistPools_contains_nocase?: Maybe>;\n whitelistPools_not_contains?: Maybe>;\n whitelistPools_not_contains_nocase?: Maybe>;\n};\n\nexport enum Token_OrderBy {\n Id = 'id',\n Symbol = 'symbol',\n Name = 'name',\n Decimals = 'decimals',\n TotalSupply = 'totalSupply',\n Volume = 'volume',\n VolumeUsd = 'volumeUSD',\n UntrackedVolumeUsd = 'untrackedVolumeUSD',\n FeesUsd = 'feesUSD',\n TxCount = 'txCount',\n PoolCount = 'poolCount',\n TotalValueLocked = 'totalValueLocked',\n TotalValueLockedUsd = 'totalValueLockedUSD',\n TotalValueLockedUsdUntracked = 'totalValueLockedUSDUntracked',\n DerivedEth = 'derivedETH',\n WhitelistPools = 'whitelistPools',\n TokenDayData = 'tokenDayData'\n}\n\nexport type Transaction = {\n __typename?: 'Transaction';\n id: Scalars['ID'];\n blockNumber: Scalars['BigInt'];\n timestamp: Scalars['BigInt'];\n gasUsed: Scalars['BigInt'];\n gasPrice: Scalars['BigInt'];\n mints: Array>;\n burns: Array>;\n swaps: Array>;\n flashed: Array>;\n collects: Array>;\n};\n\n\nexport type TransactionMintsArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n};\n\n\nexport type TransactionBurnsArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n};\n\n\nexport type TransactionSwapsArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n};\n\n\nexport type TransactionFlashedArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n};\n\n\nexport type TransactionCollectsArgs = {\n skip?: Maybe;\n first?: Maybe;\n orderBy?: Maybe;\n orderDirection?: Maybe;\n where?: Maybe;\n};\n\nexport type Transaction_Filter = {\n id?: Maybe;\n id_not?: Maybe;\n id_gt?: Maybe;\n id_lt?: Maybe;\n id_gte?: Maybe;\n id_lte?: Maybe;\n id_in?: Maybe>;\n id_not_in?: Maybe>;\n blockNumber?: Maybe;\n blockNumber_not?: Maybe;\n blockNumber_gt?: Maybe;\n blockNumber_lt?: Maybe;\n blockNumber_gte?: Maybe;\n blockNumber_lte?: Maybe;\n blockNumber_in?: Maybe>;\n blockNumber_not_in?: Maybe>;\n timestamp?: Maybe;\n timestamp_not?: Maybe;\n timestamp_gt?: Maybe;\n timestamp_lt?: Maybe;\n timestamp_gte?: Maybe;\n timestamp_lte?: Maybe;\n timestamp_in?: Maybe>;\n timestamp_not_in?: Maybe>;\n gasUsed?: Maybe;\n gasUsed_not?: Maybe;\n gasUsed_gt?: Maybe;\n gasUsed_lt?: Maybe;\n gasUsed_gte?: Maybe;\n gasUsed_lte?: Maybe;\n gasUsed_in?: Maybe>;\n gasUsed_not_in?: Maybe>;\n gasPrice?: Maybe;\n gasPrice_not?: Maybe;\n gasPrice_gt?: Maybe;\n gasPrice_lt?: Maybe;\n gasPrice_gte?: Maybe;\n gasPrice_lte?: Maybe;\n gasPrice_in?: Maybe>;\n gasPrice_not_in?: Maybe>;\n};\n\nexport enum Transaction_OrderBy {\n Id = 'id',\n BlockNumber = 'blockNumber',\n Timestamp = 'timestamp',\n GasUsed = 'gasUsed',\n GasPrice = 'gasPrice',\n Mints = 'mints',\n Burns = 'burns',\n Swaps = 'swaps',\n Flashed = 'flashed',\n Collects = 'collects'\n}\n\nexport type UniswapDayData = {\n __typename?: 'UniswapDayData';\n id: Scalars['ID'];\n date: Scalars['Int'];\n volumeETH: Scalars['BigDecimal'];\n volumeUSD: Scalars['BigDecimal'];\n volumeUSDUntracked: Scalars['BigDecimal'];\n feesUSD: Scalars['BigDecimal'];\n txCount: Scalars['BigInt'];\n tvlUSD: Scalars['BigDecimal'];\n};\n\nexport type UniswapDayData_Filter = {\n id?: Maybe;\n id_not?: Maybe;\n id_gt?: Maybe;\n id_lt?: Maybe;\n id_gte?: Maybe;\n id_lte?: Maybe;\n id_in?: Maybe>;\n id_not_in?: Maybe>;\n date?: Maybe;\n date_not?: Maybe;\n date_gt?: Maybe;\n date_lt?: Maybe;\n date_gte?: Maybe;\n date_lte?: Maybe;\n date_in?: Maybe>;\n date_not_in?: Maybe>;\n volumeETH?: Maybe;\n volumeETH_not?: Maybe;\n volumeETH_gt?: Maybe;\n volumeETH_lt?: Maybe;\n volumeETH_gte?: Maybe;\n volumeETH_lte?: Maybe;\n volumeETH_in?: Maybe>;\n volumeETH_not_in?: Maybe>;\n volumeUSD?: Maybe;\n volumeUSD_not?: Maybe;\n volumeUSD_gt?: Maybe;\n volumeUSD_lt?: Maybe;\n volumeUSD_gte?: Maybe;\n volumeUSD_lte?: Maybe;\n volumeUSD_in?: Maybe>;\n volumeUSD_not_in?: Maybe>;\n volumeUSDUntracked?: Maybe;\n volumeUSDUntracked_not?: Maybe;\n volumeUSDUntracked_gt?: Maybe;\n volumeUSDUntracked_lt?: Maybe;\n volumeUSDUntracked_gte?: Maybe;\n volumeUSDUntracked_lte?: Maybe;\n volumeUSDUntracked_in?: Maybe>;\n volumeUSDUntracked_not_in?: Maybe>;\n feesUSD?: Maybe;\n feesUSD_not?: Maybe;\n feesUSD_gt?: Maybe;\n feesUSD_lt?: Maybe;\n feesUSD_gte?: Maybe;\n feesUSD_lte?: Maybe;\n feesUSD_in?: Maybe>;\n feesUSD_not_in?: Maybe>;\n txCount?: Maybe;\n txCount_not?: Maybe;\n txCount_gt?: Maybe;\n txCount_lt?: Maybe;\n txCount_gte?: Maybe;\n txCount_lte?: Maybe;\n txCount_in?: Maybe>;\n txCount_not_in?: Maybe>;\n tvlUSD?: Maybe;\n tvlUSD_not?: Maybe;\n tvlUSD_gt?: Maybe;\n tvlUSD_lt?: Maybe;\n tvlUSD_gte?: Maybe;\n tvlUSD_lte?: Maybe;\n tvlUSD_in?: Maybe>;\n tvlUSD_not_in?: Maybe>;\n};\n\nexport enum UniswapDayData_OrderBy {\n Id = 'id',\n Date = 'date',\n VolumeEth = 'volumeETH',\n VolumeUsd = 'volumeUSD',\n VolumeUsdUntracked = 'volumeUSDUntracked',\n FeesUsd = 'feesUSD',\n TxCount = 'txCount',\n TvlUsd = 'tvlUSD'\n}\n\nexport type _Block_ = {\n __typename?: '_Block_';\n /** The hash of the block */\n hash?: Maybe;\n /** The block number */\n number: Scalars['Int'];\n};\n\n/** The type for the top-level _meta field */\nexport type _Meta_ = {\n __typename?: '_Meta_';\n /**\n * Information about a specific subgraph block. The hash of the block\n * will be null if the _meta field has a block constraint that asks for\n * a block number. It will be filled if the _meta field has no block constraint\n * and therefore asks for the latest block\n */\n block: _Block_;\n /** The deployment ID */\n deployment: Scalars['String'];\n /** If `true`, the subgraph encountered indexing errors at some past block */\n hasIndexingErrors: Scalars['Boolean'];\n};\n\nexport enum _SubgraphErrorPolicy_ {\n /** Data will be returned even if the subgraph has indexing errors */\n Allow = 'allow',\n /** If the subgraph has indexing errors, data will be omitted. The default. */\n Deny = 'deny'\n}\n\nexport type AllV3TicksQueryVariables = Exact<{\n poolAddress: Scalars['String'];\n skip: Scalars['Int'];\n}>;\n\n\nexport type AllV3TicksQuery = (\n { __typename?: 'Query' }\n & { ticks: Array<(\n { __typename?: 'Tick' }\n & Pick\n & { tick: Tick['tickIdx'] }\n )> }\n);\n\nexport type FeeTierDistributionQueryVariables = Exact<{\n token0: Scalars['String'];\n token1: Scalars['String'];\n}>;\n\n\nexport type FeeTierDistributionQuery = (\n { __typename?: 'Query' }\n & { _meta?: Maybe<(\n { __typename?: '_Meta_' }\n & { block: (\n { __typename?: '_Block_' }\n & Pick<_Block_, 'number'>\n ) }\n )>, asToken0: Array<(\n { __typename?: 'Pool' }\n & Pick\n )>, asToken1: Array<(\n { __typename?: 'Pool' }\n & Pick\n )> }\n);\n\n\nexport const AllV3TicksDocument = `\n query allV3Ticks($poolAddress: String!, $skip: Int!) {\n ticks(\n first: 1000\n skip: $skip\n where: {poolAddress: $poolAddress}\n orderBy: tickIdx\n ) {\n tick: tickIdx\n liquidityNet\n price0\n price1\n }\n}\n `;\nexport const FeeTierDistributionDocument = `\n query feeTierDistribution($token0: String!, $token1: String!) {\n _meta {\n block {\n number\n }\n }\n asToken0: pools(\n orderBy: totalValueLockedToken0\n orderDirection: desc\n where: {token0: $token0, token1: $token1}\n ) {\n feeTier\n totalValueLockedToken0\n totalValueLockedToken1\n }\n asToken1: pools(\n orderBy: totalValueLockedToken0\n orderDirection: desc\n where: {token0: $token1, token1: $token0}\n ) {\n feeTier\n totalValueLockedToken0\n totalValueLockedToken1\n }\n}\n `;\n\nconst injectedRtkApi = api.injectEndpoints({\n endpoints: (build) => ({\n allV3Ticks: build.query({\n query: (variables) => ({ document: AllV3TicksDocument, variables })\n }),\n feeTierDistribution: build.query({\n query: (variables) => ({ document: FeeTierDistributionDocument, variables })\n }),\n }),\n overrideExisting: true,\n});\n\nexport { injectedRtkApi as api };\nexport const { useAllV3TicksQuery, useLazyAllV3TicksQuery, useFeeTierDistributionQuery, useLazyFeeTierDistributionQuery } = injectedRtkApi;\n\n","import { api as generatedApi } from './generated'\n\n// tag that should be applied to queries that need to be invalidated when the chain changes\nexport const CHAIN_TAG = 'Chain'\n\n// enhanced api to provide/invalidate tags\nexport const api = generatedApi.enhanceEndpoints({\n addTagTypes: [CHAIN_TAG],\n endpoints: {\n allV3Ticks: {\n providesTags: [CHAIN_TAG],\n },\n feeTierDistribution: {\n providesTags: [CHAIN_TAG],\n },\n },\n})\n\nexport const { useAllV3TicksQuery, useFeeTierDistributionQuery } = api\n","import { skipToken } from '@reduxjs/toolkit/query/react'\nimport { Currency, Token } from '@uniswap/sdk-core'\nimport { FeeAmount } from '@uniswap/v3-sdk'\nimport useBlockNumber from 'lib/hooks/useBlockNumber'\nimport ms from 'ms.macro'\nimport { useMemo } from 'react'\nimport ReactGA from 'react-ga4'\nimport { useFeeTierDistributionQuery } from 'state/data/enhanced'\nimport { FeeTierDistributionQuery } from 'state/data/generated'\n\nimport { PoolState, usePool } from './usePools'\n\n// maximum number of blocks past which we consider the data stale\nconst MAX_DATA_BLOCK_AGE = 20\n\ninterface FeeTierDistribution {\n isLoading: boolean\n isError: boolean\n largestUsageFeeTier?: FeeAmount | undefined\n\n // distributions as percentages of overall liquidity\n distributions?: Record\n}\n\nexport function useFeeTierDistribution(\n currencyA: Currency | undefined,\n currencyB: Currency | undefined\n): FeeTierDistribution {\n const { isFetching, isLoading, isUninitialized, isError, distributions } = usePoolTVL(\n currencyA?.wrapped,\n currencyB?.wrapped\n )\n\n // fetch all pool states to determine pool state\n const [poolStateVeryLow] = usePool(currencyA, currencyB, FeeAmount.LOWEST)\n const [poolStateLow] = usePool(currencyA, currencyB, FeeAmount.LOW)\n const [poolStateMedium] = usePool(currencyA, currencyB, FeeAmount.MEDIUM)\n const [poolStateHigh] = usePool(currencyA, currencyB, FeeAmount.HIGH)\n\n return useMemo(() => {\n if (isLoading || isFetching || isUninitialized || isError || !distributions) {\n return {\n isLoading: isLoading || isFetching || !isUninitialized,\n isError,\n distributions,\n }\n }\n\n const largestUsageFeeTier = Object.keys(distributions)\n .map((d) => Number(d))\n .filter((d: FeeAmount) => distributions[d] !== 0 && distributions[d] !== undefined)\n .reduce((a: FeeAmount, b: FeeAmount) => ((distributions[a] ?? 0) > (distributions[b] ?? 0) ? a : b), -1)\n\n const percentages =\n !isLoading &&\n !isError &&\n distributions &&\n poolStateVeryLow !== PoolState.LOADING &&\n poolStateLow !== PoolState.LOADING &&\n poolStateMedium !== PoolState.LOADING &&\n poolStateHigh !== PoolState.LOADING\n ? {\n [FeeAmount.LOWEST]:\n poolStateVeryLow === PoolState.EXISTS ? (distributions[FeeAmount.LOWEST] ?? 0) * 100 : undefined,\n [FeeAmount.LOW]: poolStateLow === PoolState.EXISTS ? (distributions[FeeAmount.LOW] ?? 0) * 100 : undefined,\n [FeeAmount.MEDIUM]:\n poolStateMedium === PoolState.EXISTS ? (distributions[FeeAmount.MEDIUM] ?? 0) * 100 : undefined,\n [FeeAmount.HIGH]:\n poolStateHigh === PoolState.EXISTS ? (distributions[FeeAmount.HIGH] ?? 0) * 100 : undefined,\n }\n : undefined\n\n return {\n isLoading,\n isError,\n distributions: percentages,\n largestUsageFeeTier: largestUsageFeeTier === -1 ? undefined : largestUsageFeeTier,\n }\n }, [\n isLoading,\n isFetching,\n isUninitialized,\n isError,\n distributions,\n poolStateVeryLow,\n poolStateLow,\n poolStateMedium,\n poolStateHigh,\n ])\n}\n\nfunction usePoolTVL(token0: Token | undefined, token1: Token | undefined) {\n const latestBlock = useBlockNumber()\n\n const { isLoading, isFetching, isUninitialized, isError, data } = useFeeTierDistributionQuery(\n token0 && token1 ? { token0: token0.address.toLowerCase(), token1: token1.address.toLowerCase() } : skipToken,\n {\n pollingInterval: ms`30s`,\n }\n )\n\n const { asToken0, asToken1, _meta } = (data as FeeTierDistributionQuery) ?? {}\n\n return useMemo(() => {\n if (!latestBlock || !_meta || !asToken0 || !asToken1) {\n return {\n isLoading,\n isFetching,\n isUninitialized,\n isError,\n }\n }\n\n if (latestBlock - (_meta?.block?.number ?? 0) > MAX_DATA_BLOCK_AGE) {\n ReactGA.event('exception', { description: `Graph stale (latest block: ${latestBlock})` })\n\n return {\n isLoading,\n isFetching,\n isUninitialized,\n isError,\n }\n }\n\n const all = asToken0.concat(asToken1)\n\n // sum tvl for token0 and token1 by fee tier\n const tvlByFeeTier = all.reduce<{ [feeAmount: number]: [number | undefined, number | undefined] }>(\n (acc, value) => {\n acc[value.feeTier][0] = (acc[value.feeTier][0] ?? 0) + Number(value.totalValueLockedToken0)\n acc[value.feeTier][1] = (acc[value.feeTier][1] ?? 0) + Number(value.totalValueLockedToken1)\n return acc\n },\n {\n [FeeAmount.LOWEST]: [undefined, undefined],\n [FeeAmount.LOW]: [undefined, undefined],\n [FeeAmount.MEDIUM]: [undefined, undefined],\n [FeeAmount.HIGH]: [undefined, undefined],\n } as Record\n )\n\n // sum total tvl for token0 and token1\n const [sumToken0Tvl, sumToken1Tvl] = Object.values(tvlByFeeTier).reduce(\n (acc: [number, number], value) => {\n acc[0] += value[0] ?? 0\n acc[1] += value[1] ?? 0\n return acc\n },\n [0, 0]\n )\n\n // returns undefined if both tvl0 and tvl1 are undefined (pool not created)\n const mean = (tvl0: number | undefined, sumTvl0: number, tvl1: number | undefined, sumTvl1: number) =>\n tvl0 === undefined && tvl1 === undefined ? undefined : ((tvl0 ?? 0) + (tvl1 ?? 0)) / (sumTvl0 + sumTvl1) || 0\n\n const distributions: Record = {\n [FeeAmount.LOWEST]: mean(\n tvlByFeeTier[FeeAmount.LOWEST][0],\n sumToken0Tvl,\n tvlByFeeTier[FeeAmount.LOWEST][1],\n sumToken1Tvl\n ),\n [FeeAmount.LOW]: mean(tvlByFeeTier[FeeAmount.LOW][0], sumToken0Tvl, tvlByFeeTier[FeeAmount.LOW][1], sumToken1Tvl),\n [FeeAmount.MEDIUM]: mean(\n tvlByFeeTier[FeeAmount.MEDIUM][0],\n sumToken0Tvl,\n tvlByFeeTier[FeeAmount.MEDIUM][1],\n sumToken1Tvl\n ),\n [FeeAmount.HIGH]: mean(\n tvlByFeeTier[FeeAmount.HIGH][0],\n sumToken0Tvl,\n tvlByFeeTier[FeeAmount.HIGH][1],\n sumToken1Tvl\n ),\n }\n\n return {\n isLoading,\n isFetching,\n isUninitialized,\n isError,\n distributions,\n }\n }, [_meta, asToken0, asToken1, isLoading, isError, isFetching, isUninitialized, latestBlock])\n}\n","// @ts-nocheck\nimport { FeeAmount } from '@uniswap/v3-sdk'\nimport Badge from 'components/Badge'\nimport { useFeeTierDistribution } from 'hooks/useFeeTierDistribution'\nimport { PoolState } from 'hooks/usePools'\nimport React from 'react'\nimport { ThemedText } from 'theme'\n\nexport function FeeTierPercentageBadge({\n feeAmount,\n distributions,\n poolState,\n}: {\n feeAmount: FeeAmount\n distributions: ReturnType['distributions']\n poolState: PoolState\n}) {\n return (\n \n \n {!distributions || poolState === PoolState.NOT_EXISTS || poolState === PoolState.INVALID ? (\n \"Not created\"\n ) : distributions[feeAmount] !== undefined ? (\n <>{distributions[feeAmount]?.toFixed(0)}% select\n ) : (\n \"No data\"\n )}\n \n \n )\n}\n","// @ts-nocheck\nimport { FeeAmount } from '@uniswap/v3-sdk'\nimport { ALL_SUPPORTED_CHAIN_IDS, SupportedChainId } from 'constants/chains'\nimport { ReactNode } from 'react'\n\nexport const FEE_AMOUNT_DETAIL: Record<\n FeeAmount,\n { label: string; description: ReactNode; supportedChains: SupportedChainId[] }\n> = {\n [FeeAmount.LOWEST]: {\n label: '0.01',\n description: \"Best for very stable pairs.\",\n supportedChains: ALL_SUPPORTED_CHAIN_IDS,\n },\n [FeeAmount.LOW]: {\n label: '0.05',\n description: \"Best for stable pairs.\",\n supportedChains: ALL_SUPPORTED_CHAIN_IDS,\n },\n [FeeAmount.MEDIUM]: {\n label: '0.3',\n description: \"Best for most pairs.\",\n supportedChains: ALL_SUPPORTED_CHAIN_IDS,\n },\n [FeeAmount.HIGH]: {\n label: '1',\n description: \"Best for exotic pairs.\",\n supportedChains: ALL_SUPPORTED_CHAIN_IDS,\n },\n}\n","// @ts-nocheck\nimport { FeeAmount } from '@uniswap/v3-sdk'\nimport { ButtonRadioChecked } from 'components/Button'\nimport { AutoColumn } from 'components/Column'\nimport { useFeeTierDistribution } from 'hooks/useFeeTierDistribution'\nimport { PoolState } from 'hooks/usePools'\nimport React from 'react'\nimport styled from 'styled-components/macro'\nimport { ThemedText } from 'theme'\n\nimport { FeeTierPercentageBadge } from './FeeTierPercentageBadge'\nimport { FEE_AMOUNT_DETAIL } from './shared'\n\nconst ResponsiveText = styled(ThemedText.Label)`\n line-height: 16px;\n font-size: 14px;\n\n ${({ theme }) => theme.mediaWidth.upToSmall`\n font-size: 12px;\n line-height: 12px;\n `};\n`\n\ninterface FeeOptionProps {\n feeAmount: FeeAmount\n active: boolean\n distributions: ReturnType['distributions']\n poolState: PoolState\n onClick: () => void\n}\n\nexport function FeeOption({ feeAmount, active, poolState, distributions, onClick }: FeeOptionProps) {\n return (\n \n \n \n \n {FEE_AMOUNT_DETAIL[feeAmount].label}%\n \n \n {FEE_AMOUNT_DETAIL[feeAmount].description}\n \n \n\n {distributions && (\n \n )}\n \n \n )\n}\n","// @ts-nocheck\nimport { Currency } from '@uniswap/sdk-core'\nimport { FeeAmount } from '@uniswap/v3-sdk'\nimport { AutoColumn } from 'components/Column'\nimport useActiveWeb3React from 'hooks/useActiveWeb3React'\nimport { useFeeTierDistribution } from 'hooks/useFeeTierDistribution'\nimport { PoolState, usePools } from 'hooks/usePools'\nimport { DynamicSection } from 'pages/AddLiquidity/styled'\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport ReactGA from 'react-ga4'\nimport styled from 'styled-components/macro'\n\nimport { FeeOption } from './FeeOption'\nimport { FEE_AMOUNT_DETAIL } from './shared'\n\nconst Select = styled.div`\n align-items: flex-start;\n display: grid;\n grid-auto-flow: column;\n grid-gap: 8px;\n`\n\nexport default function FeeSelector({\n disabled = false,\n feeAmount,\n handleFeePoolSelect,\n currencyA,\n currencyB,\n}: {\n disabled?: boolean\n feeAmount?: FeeAmount\n handleFeePoolSelect: (feeAmount: FeeAmount) => void\n currencyA?: Currency | undefined\n currencyB?: Currency | undefined\n}) {\n const { chainId } = useActiveWeb3React()\n\n const { isLoading, isError, largestUsageFeeTier, distributions } = useFeeTierDistribution(currencyA, currencyB)\n\n // get pool data on-chain for latest states\n const pools = usePools([\n [currencyA, currencyB, FeeAmount.LOWEST],\n [currencyA, currencyB, FeeAmount.LOW],\n [currencyA, currencyB, FeeAmount.MEDIUM],\n [currencyA, currencyB, FeeAmount.HIGH],\n ])\n\n const poolsByFeeTier: Record = useMemo(\n () =>\n pools.reduce(\n (acc, [curPoolState, curPool]) => {\n acc = {\n ...acc,\n ...{ [curPool?.fee as FeeAmount]: curPoolState },\n }\n return acc\n },\n {\n // default all states to NOT_EXISTS\n [FeeAmount.LOWEST]: PoolState.NOT_EXISTS,\n [FeeAmount.LOW]: PoolState.NOT_EXISTS,\n [FeeAmount.MEDIUM]: PoolState.NOT_EXISTS,\n [FeeAmount.HIGH]: PoolState.NOT_EXISTS,\n }\n ),\n [pools]\n )\n\n const [showOptions, setShowOptions] = useState(false)\n\n const recommended = useRef(false)\n\n const handleFeePoolSelectWithEvent = useCallback(\n (fee: FeeAmount) => {\n ReactGA.event({\n category: 'FeePoolSelect',\n action: 'Manual',\n })\n handleFeePoolSelect(fee)\n },\n [handleFeePoolSelect]\n )\n\n useEffect(() => {\n if (feeAmount || isLoading || isError) {\n return\n }\n\n if (!largestUsageFeeTier) {\n // cannot recommend, open options\n setShowOptions(true)\n } else {\n setShowOptions(false)\n\n recommended.current = true\n ReactGA.event({\n category: 'FeePoolSelect',\n action: ' Recommended',\n })\n\n handleFeePoolSelect(largestUsageFeeTier)\n }\n }, [feeAmount, isLoading, isError, largestUsageFeeTier, handleFeePoolSelect])\n\n useEffect(() => {\n setShowOptions(isError)\n }, [isError])\n\n return (\n \n \n {chainId && showOptions && (\n \n )}\n \n \n )\n}\n","// @ts-nocheck\nimport { FeeAmount } from '@uniswap/v3-sdk'\nimport { ButtonGray } from 'components/Button'\nimport { OutlineCard } from 'components/Card'\nimport { AutoColumn } from 'components/Column'\nimport { ReactNode, useCallback, useEffect, useState } from 'react'\nimport { Minus, Plus } from 'react-feather'\nimport styled, { keyframes } from 'styled-components/macro'\nimport { ThemedText } from 'theme'\n\nimport { Input as NumericalInput } from '../NumericalInput'\n\nconst pulse = (color: string) => keyframes`\n 0% {\n box-shadow: 0 0 0 0 ${color};\n }\n\n 70% {\n box-shadow: 0 0 0 2px ${color};\n }\n\n 100% {\n box-shadow: 0 0 0 0 ${color};\n }\n`\n\nconst InputRow = styled.div`\n display: grid;\n\n grid-template-columns: 30px 1fr 30px;\n`\n\nconst SmallButton = styled(ButtonGray)`\n border-radius: 8px;\n padding: 4px;\n`\n\nconst FocusedOutlineCard = styled(OutlineCard)<{ active?: boolean; pulsing?: boolean }>`\n border-color: ${({ active, theme }) => active && theme.blue1};\n padding: 12px;\n animation: ${({ pulsing, theme }) => pulsing && pulse(theme.blue1)} 0.8s linear;\n`\n\nconst StyledInput = styled(NumericalInput)<{ usePercent?: boolean }>`\n background-color: transparent;\n text-align: center;\n width: 100%;\n font-weight: 600;\n padding: 0 10px;\n\n ${({ theme }) => theme.mediaWidth.upToSmall`\n font-size: 16px;\n `};\n\n ${({ theme }) => theme.mediaWidth.upToExtraSmall`\n font-size: 12px;\n `};\n`\n\nconst InputTitle = styled(ThemedText.Small)`\n color: ${({ theme }) => theme.text2};\n font-size: 12px;\n font-weight: 600;\n`\n\nconst ButtonLabel = styled(ThemedText.White)<{ disabled: boolean }>`\n color: ${({ theme, disabled }) => (disabled ? theme.text2 : theme.text1)} !important;\n`\n\ninterface StepCounterProps {\n value: string\n onUserInput: (value: string) => void\n decrement: () => string\n increment: () => string\n decrementDisabled?: boolean\n incrementDisabled?: boolean\n feeAmount?: FeeAmount\n label?: string\n width?: string\n locked?: boolean // disable input\n title: ReactNode\n tokenA: string | undefined\n tokenB: string | undefined\n}\n\nconst StepCounter = ({\n value,\n decrement,\n increment,\n decrementDisabled = false,\n incrementDisabled = false,\n width,\n locked,\n onUserInput,\n title,\n tokenA,\n tokenB,\n}: StepCounterProps) => {\n // for focus state, styled components doesnt let you select input parent container\n const [active, setActive] = useState(false)\n\n // let user type value and only update parent value on blur\n const [localValue, setLocalValue] = useState('')\n const [useLocalValue, setUseLocalValue] = useState(false)\n\n // animation if parent value updates local value\n const [pulsing, setPulsing] = useState(false)\n\n const handleOnFocus = () => {\n setUseLocalValue(true)\n setActive(true)\n }\n\n const handleOnBlur = useCallback(() => {\n setUseLocalValue(false)\n setActive(false)\n onUserInput(localValue) // trigger update on parent value\n }, [localValue, onUserInput])\n\n // for button clicks\n const handleDecrement = useCallback(() => {\n setUseLocalValue(false)\n onUserInput(decrement())\n }, [decrement, onUserInput])\n\n const handleIncrement = useCallback(() => {\n setUseLocalValue(false)\n onUserInput(increment())\n }, [increment, onUserInput])\n\n useEffect(() => {\n if (localValue !== value && !useLocalValue) {\n setTimeout(() => {\n setLocalValue(value) // reset local value to match parent\n setPulsing(true) // trigger animation\n setTimeout(function () {\n setPulsing(false)\n }, 1800)\n }, 0)\n }\n }, [localValue, useLocalValue, value])\n\n return (\n \n \n \n {title}\n \n\n \n {!locked && (\n \n \n \n \n \n )}\n\n {\n setLocalValue(val)\n }}\n />\n\n {!locked && (\n \n \n \n \n \n )}\n \n\n \n \n {tokenB} per {tokenA}\n \n \n \n \n )\n}\n\nexport default StepCounter\n","// @ts-nocheck\nimport { Currency, Price, Token } from '@uniswap/sdk-core'\nimport { AutoColumn } from 'components/Column'\nimport StepCounter from 'components/InputStepCounter/InputStepCounter'\nimport { RowBetween } from 'components/Row'\nimport { Bound } from 'state/mint/v3/actions'\n\n// currencyA is the base token\nexport default function RangeSelector({\n priceLower,\n priceUpper,\n onLeftRangeInput,\n onRightRangeInput,\n getDecrementLower,\n getIncrementLower,\n getDecrementUpper,\n getIncrementUpper,\n currencyA,\n currencyB,\n feeAmount,\n ticksAtLimit,\n}: {\n priceLower?: Price\n priceUpper?: Price\n getDecrementLower: () => string\n getIncrementLower: () => string\n getDecrementUpper: () => string\n getIncrementUpper: () => string\n onLeftRangeInput: (typedValue: string) => void\n onRightRangeInput: (typedValue: string) => void\n currencyA?: Currency | null\n currencyB?: Currency | null\n feeAmount?: number\n ticksAtLimit: { [bound in Bound]?: boolean | undefined }\n}) {\n const tokenA = (currencyA ?? undefined)?.wrapped\n const tokenB = (currencyB ?? undefined)?.wrapped\n const isSorted = tokenA && tokenB && tokenA.sortsBefore(tokenB)\n\n const leftPrice = isSorted ? priceLower : priceUpper?.invert()\n const rightPrice = isSorted ? priceUpper : priceLower?.invert()\n\n return (\n \n \n \n \n \n \n )\n}\n","// @ts-nocheck\nimport Badge, { BadgeVariant } from 'components/Badge'\nimport { AlertCircle } from 'react-feather'\nimport styled from 'styled-components/macro'\n\nimport { MouseoverTooltip } from '../../components/Tooltip'\n\nconst BadgeWrapper = styled.div`\n font-size: 14px;\n display: flex;\n justify-content: flex-end;\n`\n\nconst BadgeText = styled.div`\n font-weight: 600;\n font-size: 14px;\n`\n\nconst ActiveDot = styled.span`\n background-color: ${({ theme }) => theme.success};\n border-radius: 50%;\n height: 8px;\n width: 8px;\n margin-right: 4px;\n`\n\nexport default function RangeBadge({\n removed,\n inRange,\n}: {\n removed: boolean | undefined\n inRange: boolean | undefined\n}) {\n return (\n \n {removed ? (\n Your position has 0 liquidity, and is not earning fees.}>\n \n \n  \n \n Closed\n \n \n \n ) : inRange ? (\n \n The price of this pool is within your selected range. Your position is currently earning fees.\n \n }\n >\n \n  \n \n In range\n \n \n \n ) : (\n \n The price of this pool is outside of your selected range. Your position is not currently earning fees.\n \n }\n >\n \n \n  \n \n Out of range\n \n \n \n )}\n \n )\n}\n","import { Price, Token } from '@uniswap/sdk-core'\n\nimport { Bound } from '../state/mint/v3/actions'\nimport { formatPrice } from './formatCurrencyAmount'\n\nexport function formatTickPrice(\n price: Price | undefined,\n atLimit: { [bound in Bound]?: boolean | undefined },\n direction: Bound,\n placeholder?: string\n) {\n if (atLimit[direction]) {\n return direction === Bound.LOWER ? '0' : '∞'\n }\n\n if (!price && placeholder !== undefined) {\n return placeholder\n }\n\n return formatPrice(price, 5)\n}\n","import { Currency } from \"@uniswap/sdk-core\";\n\n// import { nativeOnChain, WRAPPED_NATIVE_CURRENCY } from \"../constants/tokens\";\n// import { supportedChainId } from \"./supportedChainId\";\n\nexport function unwrappedToken(currency: Currency): Currency {\n if (currency.isNative) return currency\n // const formattedChainId = supportedChainId(currency.chainId)\n // if (formattedChainId && WRAPPED_NATIVE_CURRENCY[formattedChainId]?.equals(currency))\n // return nativeOnChain(currency.chainId)\n return currency\n}\n","// @ts-nocheck\nimport { Currency } from '@uniswap/sdk-core'\nimport { Position } from '@uniswap/v3-sdk'\nimport RangeBadge from 'components/Badge/RangeBadge'\nimport { LightCard } from 'components/Card'\nimport { AutoColumnV3 } from 'components/Column'\nimport CurrencyLogo from 'components/CurrencyLogo'\nimport DoubleCurrencyLogo from 'components/DoubleLogo'\nimport { Break } from 'components/earn/styled'\nimport RateToggle from 'components/RateToggle'\nimport { RowBetween, RowFixed } from 'components/Row'\nimport JSBI from 'jsbi'\nimport { ReactNode, useCallback, useContext, useState } from 'react'\nimport { Bound } from 'state/mint/v3/actions'\nimport { ThemeContext } from 'styled-components/macro'\nimport { ThemedText } from 'theme'\nimport { formatTickPrice } from 'utils/formatTickPrice'\nimport { unwrappedToken } from 'utils/unwrappedToken'\n\nexport const PositionPreview = ({\n position,\n title,\n inRange,\n baseCurrencyDefault,\n ticksAtLimit,\n}: {\n position: Position\n title?: ReactNode\n inRange: boolean\n baseCurrencyDefault?: Currency | undefined\n ticksAtLimit: { [bound: string]: boolean | undefined }\n}) => {\n const theme = useContext(ThemeContext)\n\n const currency0 = unwrappedToken(position.pool.token0)\n const currency1 = unwrappedToken(position.pool.token1)\n\n // track which currency should be base\n const [baseCurrency, setBaseCurrency] = useState(\n baseCurrencyDefault\n ? baseCurrencyDefault === currency0\n ? currency0\n : baseCurrencyDefault === currency1\n ? currency1\n : currency0\n : currency0\n )\n\n const sorted = baseCurrency === currency0\n const quoteCurrency = sorted ? currency1 : currency0\n\n const price = sorted ? position.pool.priceOf(position.pool.token0) : position.pool.priceOf(position.pool.token1)\n\n const priceLower = sorted ? position.token0PriceLower : position.token0PriceUpper.invert()\n const priceUpper = sorted ? position.token0PriceUpper : position.token0PriceLower.invert()\n\n const handleRateChange = useCallback(() => {\n setBaseCurrency(quoteCurrency)\n }, [quoteCurrency])\n\n const removed = position?.liquidity && JSBI.equal(position?.liquidity, JSBI.BigInt(0))\n\n return (\n \n \n \n \n \n {currency0?.symbol} / {currency1?.symbol}\n \n \n \n \n\n \n \n \n \n \n {currency0?.symbol}\n \n \n {position.amount0.toSignificant(4)}\n \n \n \n \n \n {currency1?.symbol}\n \n \n {position.amount1.toSignificant(4)}\n \n \n \n \n \n <>Fee Tier\n \n \n <>{position?.pool?.fee / 10000}%\n \n \n \n \n\n \n \n {title ? {title} :
}\n \n \n\n \n \n \n \n <>Min Price\n \n {`${formatTickPrice(\n priceLower,\n ticksAtLimit,\n Bound.LOWER\n )}`}\n \n <>\n {quoteCurrency.symbol} per {baseCurrency.symbol}\n \n \n \n <>Your position will be 100% composed of {baseCurrency?.symbol} at this price\n \n \n \n\n \n \n \n <>Max Price\n \n {`${formatTickPrice(\n priceUpper,\n ticksAtLimit,\n Bound.UPPER\n )}`}\n \n <>\n {quoteCurrency.symbol} per {baseCurrency.symbol}\n \n \n \n <>Your position will be 100% composed of {quoteCurrency?.symbol} at this price\n \n \n \n \n \n \n \n <>Current price\n \n {`${price.toSignificant(5)} `}\n \n <>\n {quoteCurrency.symbol} per {baseCurrency.symbol}\n \n \n \n \n \n \n )\n}\n","import { Token } from '@uniswap/sdk-core'\nimport { SupportedChainId } from 'constants/chains'\nimport uriToHttp from 'lib/utils/uriToHttp'\nimport Vibrant from 'node-vibrant/lib/bundle.js'\nimport { shade } from 'polished'\nimport { useLayoutEffect, useState } from 'react'\nimport { WrappedTokenInfo } from 'state/lists/wrappedTokenInfo'\nimport { hex } from 'wcag-contrast'\n\nfunction URIForEthToken(address: string) {\n return `https://raw.githubusercontent.com/uniswap/assets/master/blockchains/ethereum/assets/${address}/logo.png`\n}\n\nasync function getColorFromToken(token: Token): Promise {\n if (!(token instanceof WrappedTokenInfo)) {\n return null\n }\n\n const wrappedToken = token as WrappedTokenInfo\n const { address } = wrappedToken\n let { logoURI } = wrappedToken\n if (!logoURI) {\n if (token.chainId !== SupportedChainId.MAINNET) {\n return null\n } else {\n logoURI = URIForEthToken(address)\n }\n }\n\n try {\n return await getColorFromUriPath(logoURI)\n } catch (e) {\n if (logoURI === URIForEthToken(address)) {\n return null\n }\n\n try {\n logoURI = URIForEthToken(address)\n return await getColorFromUriPath(logoURI)\n } catch (e) {}\n }\n\n return null\n}\n\nasync function getColorFromUriPath(uri: string): Promise {\n const formattedPath = uriToHttp(uri)[0]\n\n const palette = await Vibrant.from(formattedPath).getPalette()\n if (!palette?.Vibrant) {\n return null\n }\n\n let detectedHex = palette.Vibrant.hex\n let AAscore = hex(detectedHex, '#FFF')\n while (AAscore < 3) {\n detectedHex = shade(0.005, detectedHex)\n AAscore = hex(detectedHex, '#FFF')\n }\n\n return detectedHex\n}\n\nexport function useColor(token?: Token) {\n const [color, setColor] = useState('#2172E5')\n\n useLayoutEffect(() => {\n let stale = false\n\n if (token) {\n getColorFromToken(token).then((tokenColor) => {\n if (!stale && tokenColor !== null) {\n setColor(tokenColor)\n }\n })\n }\n\n return () => {\n stale = true\n setColor('#2172E5')\n }\n }, [token])\n\n return color\n}\n\nexport function useListColor(listImageUri?: string) {\n const [color, setColor] = useState('#2172E5')\n\n useLayoutEffect(() => {\n let stale = false\n\n if (listImageUri) {\n getColorFromUriPath(listImageUri).then((color) => {\n if (!stale && color !== null) {\n setColor(color)\n }\n })\n }\n\n return () => {\n stale = true\n setColor('#2172E5')\n }\n }, [listImageUri])\n\n return color\n}\n","import { area, curveStepAfter, ScaleLinear } from 'd3'\nimport React, { useMemo } from 'react'\nimport styled from 'styled-components/macro'\n\nimport { ChartEntry } from './types'\n\nconst Path = styled.path<{ fill: string | undefined }>`\n opacity: 0.5;\n stroke: ${({ fill, theme }) => fill ?? theme.blue2};\n fill: ${({ fill, theme }) => fill ?? theme.blue2};\n`\n\nexport const Area = ({\n series,\n xScale,\n yScale,\n xValue,\n yValue,\n fill,\n}: {\n series: ChartEntry[]\n xScale: ScaleLinear\n yScale: ScaleLinear\n xValue: (d: ChartEntry) => number\n yValue: (d: ChartEntry) => number\n fill?: string | undefined\n}) =>\n useMemo(\n () => (\n xScale(xValue(d as ChartEntry)))\n .y1((d: unknown) => yScale(yValue(d as ChartEntry)))\n .y0(yScale(0))(\n series.filter((d) => {\n const value = xScale(xValue(d))\n return value > 0 && value <= window.innerWidth\n }) as Iterable<[number, number]>\n ) ?? undefined\n }\n />\n ),\n [fill, series, xScale, xValue, yScale, yValue]\n )\n","import { Axis as d3Axis, axisBottom, NumberValue, ScaleLinear, select } from 'd3'\nimport React, { useMemo } from 'react'\nimport styled from 'styled-components/macro'\n\nconst StyledGroup = styled.g`\n line {\n display: none;\n }\n\n text {\n color: ${({ theme }) => theme.text2};\n transform: translateY(5px);\n }\n`\n\nconst Axis = ({ axisGenerator }: { axisGenerator: d3Axis }) => {\n const axisRef = (axis: SVGGElement) => {\n axis &&\n select(axis)\n .call(axisGenerator)\n .call((g) => g.select('.domain').remove())\n }\n\n return \n}\n\nexport const AxisBottom = ({\n xScale,\n innerHeight,\n offset = 0,\n}: {\n xScale: ScaleLinear\n innerHeight: number\n offset?: number\n}) =>\n useMemo(\n () => (\n \n \n \n ),\n [innerHeight, offset, xScale]\n )\n","/*\n * Generates an SVG path for the east brush handle.\n * Apply `scale(-1, 1)` to generate west brush handle.\n *\n * |```````\\\n * | | | |\n * |______/\n * |\n * |\n * |\n * |\n * |\n *\n * https://medium.com/@dennismphil/one-side-rounded-rectangle-using-svg-fb31cf318d90\n */\nexport const brushHandlePath = (height: number) =>\n [\n // handle\n `M 0 0`, // move to origin\n `v ${height}`, // vertical line\n 'm 1 0', // move 1px to the right\n `V 0`, // second vertical line\n `M 0 1`, // move to origin\n\n // head\n 'h 12', // horizontal line\n 'q 2 0, 2 2', // rounded corner\n 'v 22', // vertical line\n 'q 0 2 -2 2', // rounded corner\n 'h -12', // horizontal line\n `z`, // close path\n ].join(' ')\n\nexport const brushHandleAccentPath = () =>\n [\n 'm 5 7', // move to first accent\n 'v 14', // vertical line\n 'M 0 0', // move to origin\n 'm 9 7', // move to second accent\n 'v 14', // vertical line\n 'z',\n ].join(' ')\n\nexport const OffScreenHandle = ({\n color,\n size = 10,\n margin = 10,\n}: {\n color: string\n size?: number\n margin?: number\n}) => (\n \n)\n","import { brushHandleAccentPath, brushHandlePath, OffScreenHandle } from 'components/LiquidityChartRangeInput/svg'\nimport { BrushBehavior, brushX, D3BrushEvent, ScaleLinear, select } from 'd3'\nimport usePrevious from 'hooks/usePrevious'\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport styled from 'styled-components/macro'\n\nconst Handle = styled.path<{ color: string }>`\n cursor: ew-resize;\n pointer-events: none;\n\n stroke-width: 3;\n stroke: ${({ color }) => color};\n fill: ${({ color }) => color};\n`\n\nconst HandleAccent = styled.path`\n cursor: ew-resize;\n pointer-events: none;\n\n stroke-width: 1.5;\n stroke: ${({ theme }) => theme.white};\n opacity: 0.6;\n`\n\nconst LabelGroup = styled.g<{ visible: boolean }>`\n opacity: ${({ visible }) => (visible ? '1' : '0')};\n transition: opacity 300ms;\n`\n\nconst TooltipBackground = styled.rect`\n fill: ${({ theme }) => theme.bg2};\n`\n\nconst Tooltip = styled.text`\n text-anchor: middle;\n font-size: 13px;\n fill: ${({ theme }) => theme.text1};\n`\n\n// flips the handles draggers when close to the container edges\nconst FLIP_HANDLE_THRESHOLD_PX = 20\n\n// margin to prevent tick snapping from putting the brush off screen\nconst BRUSH_EXTENT_MARGIN_PX = 2\n\n/**\n * Returns true if every element in `a` maps to the\n * same pixel coordinate as elements in `b`\n */\nconst compare = (a: [number, number], b: [number, number], xScale: ScaleLinear): boolean => {\n // normalize pixels to 1 decimals\n const aNorm = a.map((x) => xScale(x).toFixed(1))\n const bNorm = b.map((x) => xScale(x).toFixed(1))\n return aNorm.every((v, i) => v === bNorm[i])\n}\n\nexport const Brush = ({\n id,\n xScale,\n interactive,\n brushLabelValue,\n brushExtent,\n setBrushExtent,\n innerWidth,\n innerHeight,\n westHandleColor,\n eastHandleColor,\n}: {\n id: string\n xScale: ScaleLinear\n interactive: boolean\n brushLabelValue: (d: 'w' | 'e', x: number) => string\n brushExtent: [number, number]\n setBrushExtent: (extent: [number, number], mode: string | undefined) => void\n innerWidth: number\n innerHeight: number\n westHandleColor: string\n eastHandleColor: string\n}) => {\n const brushRef = useRef(null)\n const brushBehavior = useRef | null>(null)\n\n // only used to drag the handles on brush for performance\n const [localBrushExtent, setLocalBrushExtent] = useState<[number, number] | null>(brushExtent)\n const [showLabels, setShowLabels] = useState(false)\n const [hovering, setHovering] = useState(false)\n\n const previousBrushExtent = usePrevious(brushExtent)\n\n const brushed = useCallback(\n (event: D3BrushEvent) => {\n const { type, selection, mode } = event\n\n if (!selection) {\n setLocalBrushExtent(null)\n return\n }\n\n const scaled = (selection as [number, number]).map(xScale.invert) as [number, number]\n\n // avoid infinite render loop by checking for change\n if (type === 'end' && !compare(brushExtent, scaled, xScale)) {\n setBrushExtent(scaled, mode)\n }\n\n setLocalBrushExtent(scaled)\n },\n [xScale, brushExtent, setBrushExtent]\n )\n\n // keep local and external brush extent in sync\n // i.e. snap to ticks on bruhs end\n useEffect(() => {\n setLocalBrushExtent(brushExtent)\n }, [brushExtent])\n\n // initialize the brush\n useEffect(() => {\n if (!brushRef.current) return\n\n brushBehavior.current = brushX()\n .extent([\n [Math.max(0 + BRUSH_EXTENT_MARGIN_PX, xScale(0)), 0],\n [innerWidth - BRUSH_EXTENT_MARGIN_PX, innerHeight],\n ])\n .handleSize(30)\n .filter(() => interactive)\n .on('brush end', brushed)\n\n brushBehavior.current(select(brushRef.current))\n\n if (previousBrushExtent && compare(brushExtent, previousBrushExtent, xScale)) {\n select(brushRef.current)\n .transition()\n .call(brushBehavior.current.move as any, brushExtent.map(xScale))\n }\n\n // brush linear gradient\n select(brushRef.current)\n .selectAll('.selection')\n .attr('stroke', 'none')\n .attr('fill-opacity', '0.1')\n .attr('fill', `url(#${id}-gradient-selection)`)\n }, [brushExtent, brushed, id, innerHeight, innerWidth, interactive, previousBrushExtent, xScale])\n\n // respond to xScale changes only\n useEffect(() => {\n if (!brushRef.current || !brushBehavior.current) return\n\n brushBehavior.current.move(select(brushRef.current) as any, brushExtent.map(xScale) as any)\n }, [brushExtent, xScale])\n\n // show labels when local brush changes\n useEffect(() => {\n setShowLabels(true)\n const timeout = setTimeout(() => setShowLabels(false), 1500)\n return () => clearTimeout(timeout)\n }, [localBrushExtent])\n\n // variables to help render the SVGs\n const flipWestHandle = localBrushExtent && xScale(localBrushExtent[0]) > FLIP_HANDLE_THRESHOLD_PX\n const flipEastHandle = localBrushExtent && xScale(localBrushExtent[1]) > innerWidth - FLIP_HANDLE_THRESHOLD_PX\n\n const showWestArrow = localBrushExtent && (xScale(localBrushExtent[0]) < 0 || xScale(localBrushExtent[1]) < 0)\n const showEastArrow =\n localBrushExtent && (xScale(localBrushExtent[0]) > innerWidth || xScale(localBrushExtent[1]) > innerWidth)\n\n const westHandleInView =\n localBrushExtent && xScale(localBrushExtent[0]) >= 0 && xScale(localBrushExtent[0]) <= innerWidth\n const eastHandleInView =\n localBrushExtent && xScale(localBrushExtent[1]) >= 0 && xScale(localBrushExtent[1]) <= innerWidth\n\n return useMemo(\n () => (\n <>\n \n \n \n \n \n\n {/* clips at exactly the svg area */}\n \n \n \n \n\n {/* will host the d3 brush */}\n setHovering(true)}\n onMouseLeave={() => setHovering(false)}\n />\n\n {/* custom brush handles */}\n {localBrushExtent && (\n <>\n {/* west handle */}\n {westHandleInView ? (\n \n \n \n \n \n\n \n \n \n {brushLabelValue('w', localBrushExtent[0])}\n \n \n \n ) : null}\n\n {/* east handle */}\n {eastHandleInView ? (\n \n \n \n \n \n\n \n \n \n {brushLabelValue('e', localBrushExtent[1])}\n \n \n \n ) : null}\n\n {showWestArrow && }\n\n {showEastArrow && (\n \n \n \n )}\n \n )}\n \n ),\n [\n brushLabelValue,\n eastHandleColor,\n eastHandleInView,\n flipEastHandle,\n flipWestHandle,\n hovering,\n id,\n innerHeight,\n innerWidth,\n localBrushExtent,\n showEastArrow,\n showLabels,\n showWestArrow,\n westHandleColor,\n westHandleInView,\n xScale,\n ]\n )\n}\n","import { ScaleLinear } from 'd3'\nimport React, { useMemo } from 'react'\nimport styled from 'styled-components/macro'\n\nconst StyledLine = styled.line`\n opacity: 0.5;\n stroke-width: 2;\n stroke: ${({ theme }) => theme.text1};\n fill: none;\n`\n\nexport const Line = ({\n value,\n xScale,\n innerHeight,\n}: {\n value: number\n xScale: ScaleLinear\n innerHeight: number\n}) =>\n useMemo(\n () => ,\n [value, xScale, innerHeight]\n )\n","import { ButtonGray } from 'components/Button'\nimport { ScaleLinear, select, zoom, ZoomBehavior, zoomIdentity, ZoomTransform } from 'd3'\nimport React, { useEffect, useMemo, useRef } from 'react'\nimport { RefreshCcw, ZoomIn, ZoomOut } from 'react-feather'\nimport styled from 'styled-components/macro'\n\nimport { ZoomLevels } from './types'\n\nconst Wrapper = styled.div<{ count: number }>`\n display: grid;\n grid-template-columns: repeat(${({ count }) => count.toString()}, 1fr);\n grid-gap: 6px;\n\n position: absolute;\n top: -75px;\n right: 0;\n`\n\nconst Button = styled(ButtonGray)`\n &:hover {\n background-color: ${({ theme }) => theme.bg2};\n color: ${({ theme }) => theme.text1};\n }\n\n width: 32px;\n height: 32px;\n padding: 4px;\n`\n\nexport const ZoomOverlay = styled.rect`\n fill: transparent;\n cursor: grab;\n\n &:active {\n cursor: grabbing;\n }\n`\n\nexport default function Zoom({\n svg,\n xScale,\n setZoom,\n width,\n height,\n resetBrush,\n showResetButton,\n zoomLevels,\n}: {\n svg: SVGElement | null\n xScale: ScaleLinear\n setZoom: (transform: ZoomTransform) => void\n width: number\n height: number\n resetBrush: () => void\n showResetButton: boolean\n zoomLevels: ZoomLevels\n}) {\n const zoomBehavior = useRef>()\n\n const [zoomIn, zoomOut, zoomInitial, zoomReset] = useMemo(\n () => [\n () =>\n svg &&\n zoomBehavior.current &&\n select(svg as Element)\n .transition()\n .call(zoomBehavior.current.scaleBy, 2),\n () =>\n svg &&\n zoomBehavior.current &&\n select(svg as Element)\n .transition()\n .call(zoomBehavior.current.scaleBy, 0.5),\n () =>\n svg &&\n zoomBehavior.current &&\n select(svg as Element)\n .transition()\n .call(zoomBehavior.current.scaleTo, 0.5),\n () =>\n svg &&\n zoomBehavior.current &&\n select(svg as Element)\n .call(zoomBehavior.current.transform, zoomIdentity.translate(0, 0).scale(1))\n .transition()\n .call(zoomBehavior.current.scaleTo, 0.5),\n ],\n [svg]\n )\n\n useEffect(() => {\n if (!svg) return\n\n zoomBehavior.current = zoom()\n .scaleExtent([zoomLevels.min, zoomLevels.max])\n .extent([\n [0, 0],\n [width, height],\n ])\n .on('zoom', ({ transform }: { transform: ZoomTransform }) => setZoom(transform))\n\n select(svg as Element).call(zoomBehavior.current)\n }, [height, width, setZoom, svg, xScale, zoomBehavior, zoomLevels, zoomLevels.max, zoomLevels.min])\n\n useEffect(() => {\n // reset zoom to initial on zoomLevel change\n zoomInitial()\n }, [zoomInitial, zoomLevels])\n\n return (\n \n {showResetButton && (\n {\n resetBrush()\n zoomReset()\n }}\n disabled={false}\n >\n \n \n )}\n \n \n \n )\n}\n","import { max, scaleLinear, ZoomTransform } from 'd3'\nimport { useEffect, useMemo, useRef, useState } from 'react'\nimport { Bound } from 'state/mint/v3/actions'\n\nimport { Area } from './Area'\nimport { AxisBottom } from './AxisBottom'\nimport { Brush } from './Brush'\nimport { Line } from './Line'\nimport { ChartEntry, LiquidityChartRangeInputProps } from './types'\nimport Zoom, { ZoomOverlay } from './Zoom'\n\nexport const xAccessor = (d: ChartEntry) => d.price0\nexport const yAccessor = (d: ChartEntry) => d.activeLiquidity\n\nexport function Chart({\n id = 'liquidityChartRangeInput',\n data: { series, current },\n ticksAtLimit,\n styles,\n dimensions: { width, height },\n margins,\n interactive = true,\n brushDomain,\n brushLabels,\n onBrushDomainChange,\n zoomLevels,\n}: LiquidityChartRangeInputProps) {\n const zoomRef = useRef(null)\n\n const [zoom, setZoom] = useState(null)\n\n const [innerHeight, innerWidth] = useMemo(\n () => [height - margins.top - margins.bottom, width - margins.left - margins.right],\n [width, height, margins]\n )\n\n const { xScale, yScale } = useMemo(() => {\n const scales = {\n xScale: scaleLinear()\n .domain([current * zoomLevels.initialMin, current * zoomLevels.initialMax] as number[])\n .range([0, innerWidth]),\n yScale: scaleLinear()\n .domain([0, max(series, yAccessor)] as number[])\n .range([innerHeight, 0]),\n }\n\n if (zoom) {\n const newXscale = zoom.rescaleX(scales.xScale)\n scales.xScale.domain(newXscale.domain())\n }\n\n return scales\n }, [current, zoomLevels.initialMin, zoomLevels.initialMax, innerWidth, series, innerHeight, zoom])\n\n useEffect(() => {\n // reset zoom as necessary\n setZoom(null)\n }, [zoomLevels])\n\n useEffect(() => {\n if (!brushDomain) {\n onBrushDomainChange(xScale.domain() as [number, number], undefined)\n }\n }, [brushDomain, onBrushDomainChange, xScale])\n\n return (\n <>\n {\n onBrushDomainChange(\n [current * zoomLevels.initialMin, current * zoomLevels.initialMax] as [number, number],\n 'reset'\n )\n }}\n showResetButton={Boolean(ticksAtLimit[Bound.LOWER] || ticksAtLimit[Bound.UPPER])}\n zoomLevels={zoomLevels}\n />\n \n \n \n \n \n\n {brushDomain && (\n // mask to highlight selected area\n \n \n \n )}\n \n\n \n \n \n\n {brushDomain && (\n // duplicate area chart with mask for selected area\n \n \n \n )}\n\n \n\n \n \n\n \n\n \n \n \n \n )\n}\n","import { Token } from '@uniswap/sdk-core'\nimport { tickToPrice } from '@uniswap/v3-sdk'\nimport { TickData, TickProcessed } from 'hooks/usePoolTickData'\nimport JSBI from 'jsbi'\n\nconst PRICE_FIXED_DIGITS = 8\n\n// Computes the numSurroundingTicks above or below the active tick.\nexport default function computeSurroundingTicks(\n token0: Token,\n token1: Token,\n activeTickProcessed: TickProcessed,\n sortedTickData: TickData[],\n pivot: number,\n ascending: boolean\n): TickProcessed[] {\n let previousTickProcessed: TickProcessed = {\n ...activeTickProcessed,\n }\n // Iterate outwards (either up or down depending on direction) from the active tick,\n // building active liquidity for every tick.\n let processedTicks: TickProcessed[] = []\n for (let i = pivot + (ascending ? 1 : -1); ascending ? i < sortedTickData.length : i >= 0; ascending ? i++ : i--) {\n const tick = Number(sortedTickData[i].tick)\n const currentTickProcessed: TickProcessed = {\n liquidityActive: previousTickProcessed.liquidityActive,\n tick,\n liquidityNet: JSBI.BigInt(sortedTickData[i].liquidityNet),\n price0: tickToPrice(token0, token1, tick).toFixed(PRICE_FIXED_DIGITS),\n }\n\n // Update the active liquidity.\n // If we are iterating ascending and we found an initialized tick we immediately apply\n // it to the current processed tick we are building.\n // If we are iterating descending, we don't want to apply the net liquidity until the following tick.\n if (ascending) {\n currentTickProcessed.liquidityActive = JSBI.add(\n previousTickProcessed.liquidityActive,\n JSBI.BigInt(sortedTickData[i].liquidityNet)\n )\n } else if (!ascending && JSBI.notEqual(previousTickProcessed.liquidityNet, JSBI.BigInt(0))) {\n // We are iterating descending, so look at the previous tick and apply any net liquidity.\n currentTickProcessed.liquidityActive = JSBI.subtract(\n previousTickProcessed.liquidityActive,\n previousTickProcessed.liquidityNet\n )\n }\n\n processedTicks.push(currentTickProcessed)\n previousTickProcessed = currentTickProcessed\n }\n\n if (!ascending) {\n processedTicks = processedTicks.reverse()\n }\n\n return processedTicks\n}\n","import { skipToken } from '@reduxjs/toolkit/query/react'\nimport { Currency } from '@uniswap/sdk-core'\nimport { FeeAmount, nearestUsableTick, Pool, TICK_SPACINGS, tickToPrice } from '@uniswap/v3-sdk'\nimport { SupportedChainId } from 'constants/chains'\nimport { ZERO_ADDRESS } from 'constants/misc'\nimport JSBI from 'jsbi'\nimport { useSingleContractMultipleData } from 'lib/hooks/multicall'\nimport ms from 'ms.macro'\nimport { useEffect, useMemo, useState } from 'react'\nimport { useAllV3TicksQuery } from 'state/data/enhanced'\nimport computeSurroundingTicks from 'utils/computeSurroundingTicks'\n\nimport { useTickLens } from './useContract'\nimport { PoolState, usePool } from './usePools'\n\nconst PRICE_FIXED_DIGITS = 8\nconst CHAIN_IDS_MISSING_SUBGRAPH_DATA = [SupportedChainId.ARBITRUM_ONE, SupportedChainId.ARBITRUM_RINKEBY]\n\nexport interface TickData {\n tick: number\n liquidityNet: JSBI\n liquidityGross: JSBI\n}\n\n// Tick with fields parsed to JSBIs, and active liquidity computed.\nexport interface TickProcessed {\n tick: number\n liquidityActive: JSBI\n liquidityNet: JSBI\n price0: string\n}\n\nconst REFRESH_FREQUENCY = { blocksPerFetch: 2 }\n\nconst getActiveTick = (tickCurrent: number | undefined, feeAmount: FeeAmount | undefined) =>\n tickCurrent && feeAmount ? Math.floor(tickCurrent / TICK_SPACINGS[feeAmount]) * TICK_SPACINGS[feeAmount] : undefined\n\nconst bitmapIndex = (tick: number, tickSpacing: number) => {\n return Math.floor(tick / tickSpacing / 256)\n}\n\nfunction useTicksFromTickLens(\n currencyA: Currency | undefined,\n currencyB: Currency | undefined,\n feeAmount: FeeAmount | undefined,\n numSurroundingTicks: number | undefined = 125\n) {\n const [tickDataLatestSynced, setTickDataLatestSynced] = useState([])\n\n const [poolState, pool] = usePool(currencyA, currencyB, feeAmount)\n\n const tickSpacing = feeAmount && TICK_SPACINGS[feeAmount]\n\n // Find nearest valid tick for pool in case tick is not initialized.\n const activeTick = pool?.tickCurrent && tickSpacing ? nearestUsableTick(pool?.tickCurrent, tickSpacing) : undefined\n\n const poolAddress =\n currencyA && currencyB && feeAmount && poolState === PoolState.EXISTS\n ? Pool.getAddress(currencyA?.wrapped, currencyB?.wrapped, feeAmount)\n : undefined\n\n // it is also possible to grab all tick data but it is extremely slow\n // bitmapIndex(nearestUsableTick(TickMath.MIN_TICK, tickSpacing), tickSpacing)\n const minIndex = useMemo(\n () =>\n tickSpacing && activeTick ? bitmapIndex(activeTick - numSurroundingTicks * tickSpacing, tickSpacing) : undefined,\n [tickSpacing, activeTick, numSurroundingTicks]\n )\n\n const maxIndex = useMemo(\n () =>\n tickSpacing && activeTick ? bitmapIndex(activeTick + numSurroundingTicks * tickSpacing, tickSpacing) : undefined,\n [tickSpacing, activeTick, numSurroundingTicks]\n )\n\n const tickLensArgs: [string, number][] = useMemo(\n () =>\n maxIndex && minIndex && poolAddress && poolAddress !== ZERO_ADDRESS\n ? new Array(maxIndex - minIndex + 1)\n .fill(0)\n .map((_, i) => i + minIndex)\n .map((wordIndex) => [poolAddress, wordIndex])\n : [],\n [minIndex, maxIndex, poolAddress]\n )\n\n const tickLens = useTickLens()\n const callStates = useSingleContractMultipleData(\n tickLensArgs.length > 0 ? tickLens : undefined,\n 'getPopulatedTicksInWord',\n tickLensArgs,\n REFRESH_FREQUENCY\n )\n\n const isError = useMemo(() => callStates.some(({ error }) => error), [callStates])\n const isLoading = useMemo(() => callStates.some(({ loading }) => loading), [callStates])\n const IsSyncing = useMemo(() => callStates.some(({ syncing }) => syncing), [callStates])\n const isValid = useMemo(() => callStates.some(({ valid }) => valid), [callStates])\n\n const tickData: TickData[] = useMemo(\n () =>\n callStates\n .map(({ result }) => result?.populatedTicks)\n .reduce(\n (accumulator, current) => [\n ...accumulator,\n ...(current?.map((tickData: TickData) => {\n return {\n tick: tickData.tick,\n liquidityNet: JSBI.BigInt(tickData.liquidityNet),\n liquidityGross: JSBI.BigInt(tickData.liquidityGross),\n }\n }) ?? []),\n ],\n []\n ),\n [callStates]\n )\n\n // reset on input change\n useEffect(() => {\n setTickDataLatestSynced([])\n }, [currencyA, currencyB, feeAmount])\n\n // return the latest synced tickData even if we are still loading the newest data\n useEffect(() => {\n if (!IsSyncing && !isLoading && !isError && isValid) {\n setTickDataLatestSynced(tickData.sort((a, b) => a.tick - b.tick))\n }\n }, [isError, isLoading, IsSyncing, tickData, isValid])\n\n return useMemo(\n () => ({ isLoading, IsSyncing, isError, isValid, tickData: tickDataLatestSynced }),\n [isLoading, IsSyncing, isError, isValid, tickDataLatestSynced]\n )\n}\n\nfunction useTicksFromSubgraph(\n currencyA: Currency | undefined,\n currencyB: Currency | undefined,\n feeAmount: FeeAmount | undefined\n) {\n const poolAddress =\n currencyA && currencyB && feeAmount ? Pool.getAddress(currencyA?.wrapped, currencyB?.wrapped, feeAmount) : undefined\n\n return useAllV3TicksQuery(poolAddress ? { poolAddress: poolAddress?.toLowerCase(), skip: 0 } : skipToken, {\n pollingInterval: ms`30s`,\n })\n}\n\n// Fetches all ticks for a given pool\nfunction useAllV3Ticks(\n currencyA: Currency | undefined,\n currencyB: Currency | undefined,\n feeAmount: FeeAmount | undefined\n): {\n isLoading: boolean\n isUninitialized: boolean\n isError: boolean\n error: unknown\n ticks: TickData[] | undefined\n} {\n const useSubgraph = currencyA ? !CHAIN_IDS_MISSING_SUBGRAPH_DATA.includes(currencyA.chainId) : true\n\n const tickLensTickData = useTicksFromTickLens(!useSubgraph ? currencyA : undefined, currencyB, feeAmount)\n const subgraphTickData = useTicksFromSubgraph(useSubgraph ? currencyA : undefined, currencyB, feeAmount)\n\n return {\n isLoading: useSubgraph ? subgraphTickData.isLoading : tickLensTickData.isLoading,\n isUninitialized: useSubgraph ? subgraphTickData.isUninitialized : false,\n isError: useSubgraph ? subgraphTickData.isError : tickLensTickData.isError,\n error: useSubgraph ? subgraphTickData.error : tickLensTickData.isError,\n ticks: useSubgraph ? subgraphTickData.data?.ticks : tickLensTickData.tickData,\n }\n}\n\nexport function usePoolActiveLiquidity(\n currencyA: Currency | undefined,\n currencyB: Currency | undefined,\n feeAmount: FeeAmount | undefined\n): {\n isLoading: boolean\n isUninitialized: boolean\n isError: boolean\n error: any\n activeTick: number | undefined\n data: TickProcessed[] | undefined\n} {\n const pool = usePool(currencyA, currencyB, feeAmount)\n\n // Find nearest valid tick for pool in case tick is not initialized.\n const activeTick = useMemo(() => getActiveTick(pool[1]?.tickCurrent, feeAmount), [pool, feeAmount])\n\n const { isLoading, isUninitialized, isError, error, ticks } = useAllV3Ticks(currencyA, currencyB, feeAmount)\n\n return useMemo(() => {\n if (\n !currencyA ||\n !currencyB ||\n activeTick === undefined ||\n pool[0] !== PoolState.EXISTS ||\n !ticks ||\n ticks.length === 0 ||\n isLoading ||\n isUninitialized\n ) {\n return {\n isLoading: isLoading || pool[0] === PoolState.LOADING,\n isUninitialized,\n isError,\n error,\n activeTick,\n data: undefined,\n }\n }\n\n const token0 = currencyA?.wrapped\n const token1 = currencyB?.wrapped\n\n // find where the active tick would be to partition the array\n // if the active tick is initialized, the pivot will be an element\n // if not, take the previous tick as pivot\n const pivot = ticks.findIndex(({ tick }) => tick > activeTick) - 1\n\n if (pivot < 0) {\n // consider setting a local error\n console.error('TickData pivot not found')\n return {\n isLoading,\n isUninitialized,\n isError,\n error,\n activeTick,\n data: undefined,\n }\n }\n\n const activeTickProcessed: TickProcessed = {\n liquidityActive: JSBI.BigInt(pool[1]?.liquidity ?? 0),\n tick: activeTick,\n liquidityNet: Number(ticks[pivot].tick) === activeTick ? JSBI.BigInt(ticks[pivot].liquidityNet) : JSBI.BigInt(0),\n price0: tickToPrice(token0, token1, activeTick).toFixed(PRICE_FIXED_DIGITS),\n }\n\n const subsequentTicks = computeSurroundingTicks(token0, token1, activeTickProcessed, ticks, pivot, true)\n\n const previousTicks = computeSurroundingTicks(token0, token1, activeTickProcessed, ticks, pivot, false)\n\n const ticksProcessed = previousTicks.concat(activeTickProcessed).concat(subsequentTicks)\n\n return {\n isLoading,\n isUninitialized,\n isError,\n error,\n activeTick,\n data: ticksProcessed,\n }\n }, [currencyA, currencyB, activeTick, pool, ticks, isLoading, isUninitialized, isError, error])\n}\n","// @ts-nocheck\nimport { Currency, Price, Token } from '@uniswap/sdk-core'\nimport { FeeAmount } from '@uniswap/v3-sdk'\nimport { AutoColumn, ColumnCenter } from 'components/Column'\nimport Loader from 'components/Loader'\nimport { format } from 'd3'\nimport { useColor } from 'hooks/useColor'\nimport useTheme from 'hooks/useTheme'\nimport { saturate } from 'polished'\nimport React, { ReactNode, useCallback, useMemo } from 'react'\nimport { BarChart2, CloudOff, Inbox } from 'react-feather'\nimport ReactGA from 'react-ga4'\nimport { batch } from 'react-redux'\nimport { Bound } from 'state/mint/v3/actions'\nimport styled from 'styled-components/macro'\n\nimport { ThemedText } from '../../theme'\nimport { Chart } from './Chart'\nimport { useDensityChartData } from './hooks'\nimport { ZoomLevels } from './types'\n\nconst ZOOM_LEVELS: Record = {\n [FeeAmount.LOWEST]: {\n initialMin: 0.999,\n initialMax: 1.001,\n min: 0.00001,\n max: 1.5,\n },\n [FeeAmount.LOW]: {\n initialMin: 0.999,\n initialMax: 1.001,\n min: 0.00001,\n max: 1.5,\n },\n [FeeAmount.MEDIUM]: {\n initialMin: 0.5,\n initialMax: 2,\n min: 0.00001,\n max: 20,\n },\n [FeeAmount.HIGH]: {\n initialMin: 0.5,\n initialMax: 2,\n min: 0.00001,\n max: 20,\n },\n}\n\nconst ChartWrapper = styled.div`\n position: relative;\n\n justify-content: center;\n align-content: center;\n`\n\nfunction InfoBox({ message, icon }: { message?: ReactNode; icon: ReactNode }) {\n return (\n \n {icon}\n {message && (\n \n <>{message}\n \n )}\n \n )\n}\n\nexport default function LiquidityChartRangeInput({\n currencyA,\n currencyB,\n feeAmount,\n ticksAtLimit,\n price,\n priceLower,\n priceUpper,\n onLeftRangeInput,\n onRightRangeInput,\n interactive,\n}: {\n currencyA: Currency | undefined\n currencyB: Currency | undefined\n feeAmount?: FeeAmount\n ticksAtLimit: { [bound in Bound]?: boolean | undefined }\n price: number | undefined\n priceLower?: Price\n priceUpper?: Price\n onLeftRangeInput: (typedValue: string) => void\n onRightRangeInput: (typedValue: string) => void\n interactive: boolean\n}) {\n const theme = useTheme()\n\n const tokenAColor = useColor(currencyA?.wrapped)\n const tokenBColor = useColor(currencyB?.wrapped)\n\n const isSorted = currencyA && currencyB && currencyA?.wrapped.sortsBefore(currencyB?.wrapped)\n\n const { isLoading, isUninitialized, isError, error, formattedData } = useDensityChartData({\n currencyA,\n currencyB,\n feeAmount,\n })\n\n const onBrushDomainChangeEnded = useCallback(\n (domain, mode) => {\n let leftRangeValue = Number(domain[0])\n const rightRangeValue = Number(domain[1])\n\n if (leftRangeValue <= 0) {\n leftRangeValue = 1 / 10 ** 6\n }\n\n batch(() => {\n // simulate user input for auto-formatting and other validations\n if (\n (!ticksAtLimit[isSorted ? Bound.LOWER : Bound.UPPER] || mode === 'handle' || mode === 'reset') &&\n leftRangeValue > 0\n ) {\n onLeftRangeInput(leftRangeValue.toFixed(6))\n }\n\n if ((!ticksAtLimit[isSorted ? Bound.UPPER : Bound.LOWER] || mode === 'reset') && rightRangeValue > 0) {\n // todo: remove this check. Upper bound for large numbers\n // sometimes fails to parse to tick.\n if (rightRangeValue < 1e35) {\n onRightRangeInput(rightRangeValue.toFixed(6))\n }\n }\n })\n },\n [isSorted, onLeftRangeInput, onRightRangeInput, ticksAtLimit]\n )\n\n interactive = interactive && Boolean(formattedData?.length)\n\n const brushDomain: [number, number] | undefined = useMemo(() => {\n const leftPrice = isSorted ? priceLower : priceUpper?.invert()\n const rightPrice = isSorted ? priceUpper : priceLower?.invert()\n\n return leftPrice && rightPrice\n ? [parseFloat(leftPrice?.toSignificant(6)), parseFloat(rightPrice?.toSignificant(6))]\n : undefined\n }, [isSorted, priceLower, priceUpper])\n\n const brushLabelValue = useCallback(\n (d: 'w' | 'e', x: number) => {\n if (!price) return ''\n\n if (d === 'w' && ticksAtLimit[isSorted ? Bound.LOWER : Bound.UPPER]) return '0'\n if (d === 'e' && ticksAtLimit[isSorted ? Bound.UPPER : Bound.LOWER]) return '∞'\n\n const percent = (x < price ? -1 : 1) * ((Math.max(x, price) - Math.min(x, price)) / price) * 100\n\n return price ? `${format(Math.abs(percent) > 1 ? '.2~s' : '.2~f')(percent)}%` : ''\n },\n [isSorted, price, ticksAtLimit]\n )\n\n if (isError) {\n ReactGA.event('exception', { description: error.toString(), fatal: false })\n }\n\n return (\n \n {isUninitialized ? (\n Your position will appear here.}\n icon={}\n />\n ) : isLoading ? (\n } />\n ) : isError ? (\n Liquidity data not available.}\n icon={}\n />\n ) : !formattedData || formattedData === [] || !price ? (\n There is no liquidity data.}\n icon={}\n />\n ) : (\n \n \n \n )}\n \n )\n}\n","import { Currency } from '@uniswap/sdk-core'\nimport { FeeAmount } from '@uniswap/v3-sdk'\nimport { TickProcessed, usePoolActiveLiquidity } from 'hooks/usePoolTickData'\nimport { useCallback, useMemo } from 'react'\n\nimport { ChartEntry } from './types'\n\nexport function useDensityChartData({\n currencyA,\n currencyB,\n feeAmount,\n}: {\n currencyA: Currency | undefined\n currencyB: Currency | undefined\n feeAmount: FeeAmount | undefined\n}) {\n const { isLoading, isUninitialized, isError, error, data } = usePoolActiveLiquidity(currencyA, currencyB, feeAmount)\n\n const formatData = useCallback(() => {\n if (!data?.length) {\n return undefined\n }\n\n const newData: ChartEntry[] = []\n\n for (let i = 0; i < data.length; i++) {\n const t: TickProcessed = data[i]\n\n const chartEntry = {\n activeLiquidity: parseFloat(t.liquidityActive.toString()),\n price0: parseFloat(t.price0),\n }\n\n if (chartEntry.activeLiquidity > 0) {\n newData.push(chartEntry)\n }\n }\n\n return newData\n }, [data])\n\n return useMemo(() => {\n return {\n isLoading,\n isUninitialized,\n isError,\n error,\n formattedData: !isLoading && !isUninitialized ? formatData() : undefined,\n }\n }, [isLoading, isUninitialized, isError, error, formatData])\n}\n","import { ButtonOutlined } from 'components/Button'\nimport { AutoRow } from 'components/Row'\nimport React from 'react'\nimport ReactGA from 'react-ga4'\nimport styled from 'styled-components/macro'\nimport { ThemedText } from 'theme'\n\nconst Button = styled(ButtonOutlined).attrs(() => ({\n padding: '8px',\n $borderRadius: '8px',\n}))`\n color: ${({ theme }) => theme.text1};\n flex: 1;\n`\n\nexport default function PresetsButtons({ setFullRange }: { setFullRange: () => void }) {\n return (\n \n {\n setFullRange()\n ReactGA.event({\n category: 'Liquidity',\n action: 'Full Range Clicked',\n })\n }}\n >\n \n <>Full Range\n \n \n \n )\n}\n","import { Currency, CurrencyAmount, Price } from '@uniswap/sdk-core'\nimport { Position } from '@uniswap/v3-sdk'\nimport { AutoColumn } from 'components/Column'\nimport { PositionPreview } from 'components/PositionPreview'\nimport styled from 'styled-components/macro'\n\nimport { Bound, Field } from '../../state/mint/v3/actions'\n\nconst Wrapper = styled.div`\n padding-top: 12px;\n`\n\nexport function Review({\n position,\n outOfRange,\n ticksAtLimit,\n}: {\n position?: Position\n existingPosition?: Position\n parsedAmounts: { [field in Field]?: CurrencyAmount }\n priceLower?: Price\n priceUpper?: Price\n outOfRange: boolean\n ticksAtLimit: { [bound in Bound]?: boolean | undefined }\n}) {\n return (\n \n \n {position ? (\n \n ) : null}\n \n \n )\n}\n","// @ts-nocheck\nimport { BigNumber } from '@ethersproject/bignumber'\nimport type { TransactionResponse } from '@ethersproject/providers'\nimport { Currency, CurrencyAmount, Percent } from '@uniswap/sdk-core'\nimport { FeeAmount } from '@uniswap/v3-sdk'\nimport useActiveWeb3React from \"hooks/useActiveWeb3React\";\nimport UnsupportedCurrencyFooter from 'components/swap/UnsupportedCurrencyFooter'\nimport useClubManager from \"hooks/useClubManager\";\nimport { useCallback, useContext, useState } from 'react'\nimport { useHistory, useParams } from 'react-router-dom'\nimport CurrencyInputPanelAsset from \"../../components/CurrencyInputPanel/asset\";\nimport CurrencyInputPanelLimited from \"../../components/CurrencyInputPanel/limited\";\nimport { DEFAULT_TXN_DISMISS_MS } from \"../../constants/misc\";\nimport {\n useRangeHopCallbacks,\n useV3DerivedMintInfo,\n useV3MintActionHandlers,\n useV3MintState,\n} from 'state/mint/v3/hooks'\nimport {\n useAddPopup,\n useWalletModalToggle\n} from \"../../state/application/hooks\";\nimport { AutoColumn } from '../../components/Column'\nimport TransactionConfirmationModal, { ConfirmationModalContent } from '../../components/TransactionConfirmationModal'\nimport { WRAPPED_NATIVE_CURRENCY } from '../../constants/tokens'\nimport { useCurrency } from '../../hooks/Tokens'\nimport { ApprovalState, useApproveCallback } from '../../hooks/useApproveCallback'\nimport { useArgentWalletContract } from '../../hooks/useArgentWalletContract'\nimport { useDerivedPositionInfo } from '../../hooks/useDerivedPositionInfo'\nimport { useIsSwapUnsupported } from '../../hooks/useIsSwapUnsupported'\nimport { useUSDCValue } from \"../../hooks/useUSDCPrice\";\nimport useTransactionDeadline from '../../hooks/useTransactionDeadline'\nimport { useV3PositionFromTokenId } from '../../hooks/useV3Positions'\nimport useVaultManager from \"hooks/useVaultManager\";\nimport { Bound, Field } from '../../state/mint/v3/actions'\nimport { useTransactionAdder } from '../../state/transactions/hooks'\nimport { useVaultManagerContract } from \"../../hooks/useContract\";\nimport { TransactionType } from '../../state/transactions/types'\nimport { ExternalLink, ThemedText } from '../../theme'\nimport { useCurrencyBalance } from \"../../state/wallet/hooks\";\nimport { currencyId } from '../../utils/currencyId'\nimport { maxAmountSpend } from '../../utils/maxAmountSpend'\nimport {\n DynamicSection,\n HideMedium,\n MediumOnly,\n PageWrapper,\n RightContainer,\n ScrollablePage,\n StackedContainer,\n StackedItem,\n Wrapper\n} from \"./styled\";\nimport {\n AMM_VAULT_ADDRESSES,\n ASSET_VAULT_ADDRESSES\n} from \"../../constants/addresses\";\nimport { AddRemoveTabs } from 'components/NavigationTabs';\nimport Row, { AutoRow, RowBetween, RowFixed } from 'components/Row';\nimport { ButtonError, ButtonPrimary, ButtonText } from 'components/Button';\nimport RateToggle from 'components/RateToggle';\nimport FeeSelector from 'components/FeeSelector';\nimport HoverInlineText from 'components/HoverInlineText';\nimport { OutlineCard } from 'components/Card';\nimport RangeSelector from 'components/RangeSelector';\nimport { AlertTriangle } from 'react-feather';\nimport { PositionPreview } from 'components/PositionPreview';\nimport LiquidityChartRangeInput from 'components/LiquidityChartRangeInput';\nimport PresetsButtons from 'components/RangeSelector/PresetsButtons';\nimport { ThemeContext } from 'styled-components/macro';\nimport { Review } from './Review';\n\nconst DEFAULT_ADD_IN_RANGE_SLIPPAGE_TOLERANCE = new Percent(50, 10_000)\n\nexport default function AddLiquidityV3() {\n const history = useHistory()\n const theme = useContext(ThemeContext)\n const {\n currencyIdA,\n currencyIdB,\n feeAmount: feeAmountFromUrl,\n tokenId,\n } = useParams<{ currencyIdA?: string; currencyIdB?: string; feeAmount?: string; tokenId?: string }>()\n const { account, chainId, library } = useActiveWeb3React()\n\n const [waiting, setWaiting] = useState(false)\n const [invalidA, setInvalidA] = useState(false)\n const [invalidB, setInvalidB] = useState(false)\n const [showCapitalEfficiencyWarning, setShowCapitalEfficiencyWarning] = useState(false)\n\n const addTransaction = useTransactionAdder()\n const { supplyAllowance } = useClubManager();\n const poolType = window.localStorage.getItem('SELECT_POOL') || 'UniswapV2'\n const vaultManager = useVaultManagerContract(poolType.toLowerCase(), true)\n const addPopup = useAddPopup()\n // const positionManager = useV3NFTPositionManagerContract()\n // const parsedQs = useParsedQueryString()\n const showConnectAWallet = Boolean(!account)\n const toggleWalletModal = useWalletModalToggle()\n // check for existing position if tokenId in url\n const { position: existingPositionDetails, loading: positionLoading } = useV3PositionFromTokenId(\n tokenId ? BigNumber.from(tokenId) : undefined\n )\n const hasExistingPosition = !!existingPositionDetails && !positionLoading\n const { position: existingPosition } = useDerivedPositionInfo(existingPositionDetails)\n\n // fee selection from url\n const feeAmount: FeeAmount | undefined =\n feeAmountFromUrl && Object.values(FeeAmount).includes(parseFloat(feeAmountFromUrl))\n ? parseFloat(feeAmountFromUrl)\n : undefined\n // const feeAmount = FeeAmount.MEDIUM;\n const baseCurrency = useCurrency(currencyIdA)\n const currencyB = useCurrency(currencyIdB)\n // prevent an error if they input ETH/WETH\n const quoteCurrency =\n baseCurrency && currencyB && baseCurrency.wrapped.equals(currencyB.wrapped) ? undefined : currencyB\n\n // mint state\n const { independentField, typedValue, startPriceTypedValue } =\n useV3MintState()\n\n const {\n pool,\n ticks,\n dependentField,\n price,\n pricesAtTicks,\n parsedAmounts,\n currencyBalances,\n position,\n noLiquidity,\n currencies,\n errorMessage,\n invalidPool,\n invalidRange,\n outOfRange,\n depositADisabled,\n depositBDisabled,\n invertPrice,\n ticksAtLimit\n } = useV3DerivedMintInfo(\n baseCurrency ?? undefined,\n quoteCurrency ?? undefined,\n feeAmount,\n baseCurrency ?? undefined,\n existingPosition\n )\n\n const { onFieldAInput, onFieldBInput, onLeftRangeInput, onRightRangeInput } =\n useV3MintActionHandlers(noLiquidity)\n\n const isValid = !errorMessage && !invalidRange;\n // modal and loading\n const [showConfirm, setShowConfirm] = useState(false)\n const [attemptingTxn, setAttemptingTxn] = useState(false) // clicked confirm\n\n // txn values\n const deadline = useTransactionDeadline() // custom from users settings\n\n const [txHash, setTxHash] = useState('')\n\n // get formatted amounts\n const formattedAmounts = {\n [independentField]: typedValue,\n [dependentField]: parsedAmounts[dependentField]?.toSignificant(6) ?? '',\n }\n\n const usdcValues = {\n [Field.CURRENCY_A]: useUSDCValue(parsedAmounts[Field.CURRENCY_A]),\n [Field.CURRENCY_B]: useUSDCValue(parsedAmounts[Field.CURRENCY_B]),\n }\n\n // get the max amounts user can add\n const maxAmounts: { [field in Field]?: CurrencyAmount } = [Field.CURRENCY_A, Field.CURRENCY_B].reduce(\n (accumulator, field) => {\n return {\n ...accumulator,\n [field]: maxAmountSpend(currencyBalances[field]),\n }\n },\n {}\n )\n\n const assetMax = useCurrencyBalance(ASSET_VAULT_ADDRESSES[chainId!], currencies[Field.CURRENCY_B] ?? undefined);\n\n const argentWalletContract = useArgentWalletContract()\n\n // check whether the user has approved the router on the tokens\n const [approval, approveCallback] = useApproveCallback(\n argentWalletContract ? undefined : parsedAmounts[Field.CURRENCY_A],\n chainId ? AMM_VAULT_ADDRESSES[chainId][poolType.toLowerCase()] : undefined\n )\n async function onAdd() {\n if (!chainId || !library || !account) return\n\n if (!baseCurrency || !quoteCurrency) {\n return\n }\n console.log(tokenId);\n if (vaultManager && account && deadline) {\n try {\n setWaiting(true);\n console.log((parsedAmounts[Field.CURRENCY_A])?.quotient.toString());\n await vaultManager.addLiquidity(currencyId(baseCurrency), (parsedAmounts[Field.CURRENCY_A])?.quotient.toString(), currencyId(quoteCurrency), feeAmount, tickLower, tickUpper)\n .then(async (response: TransactionResponse) => {\n setTxHash(response.hash)\n addTransaction(response, {\n type: TransactionType.ADD_LIQUIDITY_V3_POOL,\n baseCurrencyId: currencyId(baseCurrency),\n quoteCurrencyId: currencyId(quoteCurrency),\n createPool: Boolean(noLiquidity),\n expectedAmountBaseRaw: parsedAmounts[Field.CURRENCY_A]?.quotient?.toString() ?? '0',\n expectedAmountQuoteRaw: parsedAmounts[Field.CURRENCY_B]?.quotient?.toString() ?? '0',\n feeAmount,\n })\n setShowConfirm(true)\n await response.wait();\n setAttemptingTxn(false)\n setWaiting(false);\n })\n\n ReactGA.event({\n category: 'Liquidity',\n action: 'Add',\n label: [currencies[Field.CURRENCY_A]?.symbol, currencies[Field.CURRENCY_B]?.symbol].join('/'),\n })\n }\n catch (error) {\n setWaiting(false);\n console.error('Failed to send transaction', error)\n if(error?.error) {\n addPopup(\n {\n reason: error?.error.message\n },\n Date.now(),\n DEFAULT_TXN_DISMISS_MS\n )\n }\n setAttemptingTxn(false)\n // we only care if the error is something _other_ than the user rejected the tx\n if (error?.code !== 4001) {\n console.error(error)\n }\n }\n }\n }\n\n const onUserInputA = (e) => {\n const decimal = currencies[Field.CURRENCY_A]?.decimals || 18;\n const removed = removeUnneededCharacter(e.toString())\n const splited = removed.toString().split('.')\n if (splited.length > 1) {\n setInvalidA(splited[1].length > decimal)\n } else {\n setInvalidA(false)\n }\n onFieldAInput(removed.toString())\n }\n\n const onUserInputB = (e) => {\n const decimal = currencies[Field.CURRENCY_B]?.decimals || 18;\n const removed = removeUnneededCharacter(e.toString())\n const splited = removed.toString().split('.')\n if (splited.length > 1) {\n setInvalidB(splited[1].length > decimal)\n } else {\n setInvalidB(false)\n }\n onFieldBInput(removed.toString())\n }\n\n const removeUnneededCharacter = (str: string) => {\n if (str.startsWith('0.')) {\n return str\n } else if (str.startsWith('00')) {\n return str.substring(2)\n } else if (str.length > 1 && str.startsWith('0')) {\n return str.substring(1)\n }\n return str\n }\n\n const handleFeePoolSelect = useCallback(\n (newFeeAmount: FeeAmount) => {\n onLeftRangeInput('')\n onRightRangeInput('')\n history.push(`/add/${currencyIdA}/${currencyIdB}/${newFeeAmount}`)\n },\n [currencyIdA, currencyIdB, history, onLeftRangeInput, onRightRangeInput]\n )\n\n const handleCurrencySelect = useCallback(\n (currencyNew: Currency, currencyIdOther?: string): (string | undefined)[] => {\n const currencyIdNew = currencyId(currencyNew)\n\n if (currencyIdNew === currencyIdOther) {\n // not ideal, but for now clobber the other if the currency ids are equal\n return [currencyIdNew, undefined]\n } else {\n // prevent weth + eth\n const isETHOrWETHNew =\n currencyIdNew === 'ETH' ||\n (chainId !== undefined && currencyIdNew === WRAPPED_NATIVE_CURRENCY[chainId]?.address)\n const isETHOrWETHOther =\n currencyIdOther !== undefined &&\n (currencyIdOther === 'ETH' ||\n (chainId !== undefined && currencyIdOther === WRAPPED_NATIVE_CURRENCY[chainId]?.address))\n\n if (isETHOrWETHNew && isETHOrWETHOther) {\n return [currencyIdNew, undefined]\n } else {\n return [currencyIdNew, currencyIdOther]\n }\n }\n },\n [chainId]\n )\n\n const handleDismissConfirmation = useCallback(() => {\n setShowConfirm(false)\n // if there was a tx hash, we want to clear the input\n if (txHash) {\n onFieldAInput('')\n // dont jump to pool page if creating\n history.push('/pool')\n }\n setTxHash('')\n }, [history, onFieldAInput, txHash])\n\n const addIsUnsupported = useIsSwapUnsupported(currencies?.CURRENCY_A, currencies?.CURRENCY_B)\n const clearAll = useCallback(() => {\n onFieldAInput('')\n onFieldBInput('')\n onLeftRangeInput('')\n onRightRangeInput('')\n history.push(`/add`)\n }, [history, onFieldAInput, onFieldBInput, onLeftRangeInput, onRightRangeInput])\n // get value and prices at ticks\n const { [Bound.LOWER]: tickLower, [Bound.UPPER]: tickUpper } = ticks\n const { [Bound.LOWER]: priceLower, [Bound.UPPER]: priceUpper } = pricesAtTicks\n \n const { getDecrementLower, getIncrementLower, getDecrementUpper, getIncrementUpper, getSetFullRange } =\n useRangeHopCallbacks(baseCurrency ?? undefined, quoteCurrency ?? undefined, feeAmount, tickLower, tickUpper, pool)\n const { capitalInUSD } = useVaultManager(currencies[Field.CURRENCY_A]?.address, (parsedAmounts[Field.CURRENCY_A])?.quotient.toString() ?? \"0\");\n const pendingText = `Supplying ${!depositADisabled ? parsedAmounts[Field.CURRENCY_A]?.toSignificant(6) : ''} ${!depositADisabled ? currencies[Field.CURRENCY_A]?.symbol : ''\n } ${!outOfRange ? 'and' : ''} ${!depositBDisabled ? parsedAmounts[Field.CURRENCY_B]?.toSignificant(6) : ''} ${!depositBDisabled ? currencies[Field.CURRENCY_B]?.symbol : ''\n }`\n\n const handleCurrencyASelect = useCallback(\n (currencyANew: Currency) => {\n const [idA, idB] = handleCurrencySelect(currencyANew, currencyIdB)\n if (idB === undefined) {\n history.push(`/add/${idA}`)\n } else {\n history.push(`/add/${idA}/${idB}`)\n }\n },\n [handleCurrencySelect, currencyIdB, history]\n )\n \n const handleCurrencyBSelect = useCallback(\n (currencyBNew: Currency) => {\n const [idB, idA] = handleCurrencySelect(currencyBNew, currencyIdA)\n if (idA === undefined) {\n history.push(`/add/${idB}`)\n } else {\n history.push(`/add/${idA}/${idB}`)\n }\n },\n [handleCurrencySelect, currencyIdA, history]\n )\n const Buttons = () =>\n addIsUnsupported ? (\n \n \n Unsupported Asset\n \n \n ) : showConnectAWallet ? (\n
\n \n
\n ) : (\n \n {(\n !isValid || noLiquidity\n ?\n
\n \n
\n :\n (\n (invalidA || invalidB)\n ?\n
\n \n
\n :\n
\n {\n approval === ApprovalState.NOT_APPROVED\n ?\n \n :\n (\n approval === ApprovalState.PENDING\n ?\n \n :\n (\n supplyAllowance.gt(capitalInUSD) ?\n {\n setShowConfirm(true)\n }}\n disabled={\n !isValid ||\n (!argentWalletContract && approval !== ApprovalState.APPROVED && !depositADisabled)\n }\n error={!isValid && !!parsedAmounts[Field.CURRENCY_A] && !!parsedAmounts[Field.CURRENCY_B]}\n >\n <>{errorMessage ? errorMessage : <>Preview}\n \n :\n
\n \n
\n )\n )\n }\n
\n )\n )}\n
\n )\n return (\n <>\n \n (\n Add Liquidity}\n onDismiss={handleDismissConfirmation}\n preview={true}\n topContent={() => (\n \n )}\n bottomContent={() => (\n
\n \n
\n )}\n />\n )}\n pendingText={pendingText}\n />\n
\n
\n \n {/* \n \n \n \n
\n \n
\n
\n
\n */}\n \n {!hasExistingPosition && (\n \n \n \n \n <>Clear All\n \n \n \n {baseCurrency && quoteCurrency ? (\n {\n if (!ticksAtLimit[Bound.LOWER] && !ticksAtLimit[Bound.UPPER]) {\n onLeftRangeInput((invertPrice ? priceLower : priceUpper?.invert())?.toSignificant(6) ?? '')\n onRightRangeInput((invertPrice ? priceUpper : priceLower?.invert())?.toSignificant(6) ?? '')\n onFieldAInput(formattedAmounts[Field.CURRENCY_B] ?? '')\n }\n history.push(\n `/add/${currencyIdB as string}/${currencyIdA as string}${feeAmount ? '/' + feeAmount : ''}`\n )\n }}\n />\n ) : null}\n \n )}\n \n \n \n {hasExistingPosition && existingPosition && (\n Selected Range}\n inRange={!outOfRange}\n ticksAtLimit={ticksAtLimit}\n />\n )}\n \n
\n \n \n \n Capital\n \n
\n {\n onFieldAInput(maxAmounts[Field.CURRENCY_A]?.toExact(6) ?? '')\n }}\n showMaxButton={false}\n onCurrencySelect={handleCurrencyASelect}\n currency={currencies[Field.CURRENCY_A] ?? null}\n id=\"add-liquidity-input-tokena\"\n fiatValue={usdcValues[Field.CURRENCY_A]}\n disabled={waiting || approval === ApprovalState.PENDING}\n showCommonBases\n locked={depositADisabled}\n />\n
\n \n Token\n \n
\n {\n onFieldBInput(assetMax?.toExact(6) ?? '')\n }}\n showMaxButton={false}\n fiatValue={usdcValues[Field.CURRENCY_B]}\n currency={currencies[Field.CURRENCY_B] ?? null}\n onCurrencySelect={handleCurrencyBSelect}\n id=\"add-liquidity-input-tokenb\"\n disabled={waiting || approval === ApprovalState.PENDING}\n showCommonBases\n />\n
\n
\n \n
\n\n {!hasExistingPosition ? (\n <>\n \n \n \n \n \n {!noLiquidity && (\n <>\n \n \n <>Set Price Range\n \n \n\n {price && baseCurrency && quoteCurrency && !noLiquidity && (\n \n <>\n \n Current Price:\n \n \n \n \n \n {quoteCurrency?.symbol} per {baseCurrency.symbol}\n \n \n \n )}\n\n \n \n )}\n \n\n \n \n \n \n {/* {noLiquidity && (\n \n \n <>Set Price Range\n \n \n )} */}\n {!noLiquidity && (\n <>\n \n {\n setShowCapitalEfficiencyWarning(true)\n }}\n />\n \n )}\n \n \n\n {showCapitalEfficiencyWarning && (\n \n \n \n \n \n \n <>Efficiency Comparison\n \n \n \n \n <>\n Full range positions may earn less fees than concentrated positions. Learn more{' '}\n \n here\n \n .\n \n \n \n \n {\n setShowCapitalEfficiencyWarning(false)\n getSetFullRange()\n }}\n >\n \n <>I understand\n \n \n \n \n \n \n )}\n \n\n {outOfRange ? (\n \n \n \n \n <>\n Your position will not earn fees or be used in trades until the market price moves into\n your range.\n \n \n \n \n ) : null}\n\n {invalidRange ? (\n \n \n \n \n <>Invalid range selected. The min price must be lower than the max price.\n \n \n \n ) : null}\n \n\n \n \n \n \n \n \n \n \n ) : (\n \n )}\n
\n
\n
\n
\n {addIsUnsupported && (\n \n )}\n
\n \n )\n}\n","import { Pool, Position } from '@uniswap/v3-sdk'\nimport { usePool } from 'hooks/usePools'\nimport { PositionDetails } from 'types/position'\n\nimport { useCurrency } from './Tokens'\n\nexport function useDerivedPositionInfo(positionDetails: PositionDetails | undefined): {\n position: Position | undefined\n pool: Pool | undefined\n} {\n const currency0 = useCurrency(positionDetails?.token0)\n const currency1 = useCurrency(positionDetails?.token1)\n\n // construct pool data\n const [, pool] = usePool(currency0 ?? undefined, currency1 ?? undefined, positionDetails?.fee)\n\n let position = undefined\n if (pool && positionDetails) {\n position = new Position({\n pool,\n liquidity: positionDetails.liquidity.toString(),\n tickLower: positionDetails.tickLower,\n tickUpper: positionDetails.tickUpper,\n })\n }\n\n return {\n position,\n pool: pool ?? undefined,\n }\n}\n","import useActiveWeb3React from 'hooks/useActiveWeb3React'\n\nimport ArgentWalletContractABI from '../abis/argent-wallet-contract.json'\nimport { ArgentWalletContract } from '../abis/types'\nimport { useContract } from './useContract'\nimport useIsArgentWallet from './useIsArgentWallet'\n\nexport function useArgentWalletContract(): ArgentWalletContract | null {\n const { account } = useActiveWeb3React()\n const isArgentWallet = useIsArgentWallet()\n return useContract(\n isArgentWallet ? account ?? undefined : undefined,\n ArgentWalletContractABI,\n true\n ) as ArgentWalletContract\n}\n","import useActiveWeb3React from 'hooks/useActiveWeb3React'\nimport { Redirect, RouteComponentProps } from 'react-router-dom'\n\nimport { WRAPPED_NATIVE_CURRENCY } from '../../constants/tokens'\nimport AddLiquidity from './index'\nimport AddLiquidityV3 from '../AddLiquidityV3/index'\n\nexport function RedirectDuplicateTokenIds(\n props: RouteComponentProps<{ currencyIdA: string; currencyIdB: string; feeAmount?: string }>\n) {\n const {\n match: {\n params: { currencyIdA, currencyIdB },\n },\n } = props\n\n const { chainId } = useActiveWeb3React()\n const pool = window.localStorage.getItem('SELECT_POOL') || 'Ubeswap';\n // prevent weth + eth\n const isETHOrWETHA =\n currencyIdA === 'ETH' || (chainId !== undefined && currencyIdA === WRAPPED_NATIVE_CURRENCY[chainId]?.address)\n const isETHOrWETHB =\n currencyIdB === 'ETH' || (chainId !== undefined && currencyIdB === WRAPPED_NATIVE_CURRENCY[chainId]?.address)\n\n if (\n currencyIdA &&\n currencyIdB &&\n (currencyIdA.toLowerCase() === currencyIdB.toLowerCase() || (isETHOrWETHA && isETHOrWETHB))\n ) {\n return \n }\n if(pool === 'UniswapV3') {\n return ;\n }\n return \n}\n","// @ts-nocheck\nimport { AutoColumn } from 'components/Column'\nimport CurrencyInputPanel from 'components/CurrencyInputPanel'\nimport Input from 'components/NumericalInput'\nimport { BodyWrapper } from 'pages/AppBody'\nimport styled from 'styled-components/macro'\n\nexport const PageWrapper = styled(BodyWrapper) <{ wide: boolean }>`\n \n \n padding: ${({ wide }) => (wide ? '10px' : '0')};\n padding: 58px 48px 32px 48px;\n max-width:512px;\n ${({ theme }) => theme.mediaWidth.upToMedium`\n max-width: 480px;\n `};\n ${({ theme }) => theme.mediaWidth.upToSmall`\n max-width: 350px;\n `};\n`\n\nexport const Wrapper = styled.div`\n position: relative;\n padding: 26px 16px;\n min-width: 400px;\n\n ${({ theme }) => theme.mediaWidth.upToMedium`\n min-width: 400px;\n `};\n\n ${({ theme }) => theme.mediaWidth.upToExtraSmall`\n min-width: 280px;\n`};\n`\n\nexport const ScrollablePage = styled.div`\n position: relative;\n display: flex;\n flex-direction: column;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n position: absolute;\n ${({ theme }) => theme.mediaWidth.upToMedium`\n max-width: 480px;\n margin: 0 auto;\n `};\n`\n\nexport const DynamicSection = styled(AutoColumn) <{ disabled?: boolean }>`\nopacity: 1 ;\n pointer-events: auto ;\n`\n\nexport const CurrencyDropdown = styled(CurrencyInputPanel)`\n width:100%;\n \n`\n\nexport const StyledInput = styled(Input)`\n background-color: ${({ theme }) => theme.bg0};\n text-align: left;\n font-size: 18px;\n width: 100%;\n`\n\n/* two-column layout where DepositAmount is moved at the very end on mobile. */\nexport const ResponsiveTwoColumns = styled.div<{ wide: boolean }>`\n display: grid;\n grid-column-gap: 50px;\n grid-row-gap: 15px;\n grid-template-columns: ${({ wide }) => (wide ? '1fr 1fr' : '1fr')};\n grid-template-rows: max-content;\n grid-auto-flow: row;\n\n padding-top: 20px;\n\n\n ${({ theme }) => theme.mediaWidth.upToMedium`\n grid-template-columns: 1fr;\n\n margin-top: 0;\n `};\n`\n\nexport const RightContainer = styled(AutoColumn)`\n grid-row: 1 / 3;\n grid-column: 2;\n height: fit-content;\n\n ${({ theme }) => theme.mediaWidth.upToMedium`\n grid-row: 2 / 3;\n grid-column: 1;\n `};\n`\n\nexport const StackedContainer = styled.div`\n display: grid;\n`\n\nexport const StackedItem = styled.div<{ zIndex?: number }>`\n grid-column: 1;\n grid-row: 1;\n height: 100%;\n z-index: ${({ zIndex }) => zIndex};\n`\n\nexport const MediumOnly = styled.div`\n ${({ theme }) => theme.mediaWidth.upToMedium`\n display: none;\n `};\n`\n\nexport const HideMedium = styled.div`\n display: none;\n\n ${({ theme }) => theme.mediaWidth.upToMedium`\n display: block;\n `};\n`\n","// @ts-nocheck\nimport \"./style.scss\";\n\nimport UnsupportedCurrencyFooter from \"components/swap/UnsupportedCurrencyFooter\";\nimport useActiveWeb3React from \"hooks/useActiveWeb3React\";\nimport { useCallback, useContext, useEffect, useState } from \"react\";\nimport ReactGA from \"react-ga4\";\nimport { RouteComponentProps } from \"react-router-dom\";\nimport { useDerivedMintInfo } from \"state/mint/hooks\";\nimport styled, { ThemeContext } from \"styled-components/macro\";\n\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { TransactionResponse } from \"@ethersproject/providers\";\nimport { Currency, CurrencyAmount, Percent } from \"@uniswap/sdk-core\";\nimport { FeeAmount } from \"@uniswap/v3-sdk\";\n\nimport { ButtonPrimary, ButtonText } from \"../../components/Button\";\nimport { AutoColumn } from \"../../components/Column\";\nimport CurrencyInputPanel from \"../../components/CurrencyInputPanel\";\nimport CurrencyInputPanelLimited from \"../../components/CurrencyInputPanel/limited\";\nimport DoubleCurrencyLogo from \"../../components/DoubleLogo\";\nimport FeeSelector from \"../../components/FeeSelector\";\nimport { AddRemoveTabs } from \"../../components/NavigationTabs\";\nimport { Input as NumericalInput } from \"../../components/NumericalInput\";\nimport RateToggle from \"../../components/RateToggle\";\nimport Row, { AutoRow, RowBetween, RowFixed } from \"../../components/Row\";\nimport TransactionConfirmationModal, { ConfirmationModalContent } from \"../../components/TransactionConfirmationModal\";\nimport { LP_MIGRATOR_ADDRESSES } from \"../../constants/addresses\";\nimport { WRAPPED_NATIVE_CURRENCY } from \"../../constants/tokens\";\nimport { useCurrency } from \"../../hooks/Tokens\";\nimport {\n ApprovalState,\n useApproveCallback\n} from \"../../hooks/useApproveCallback\";\nimport { useMigratorContract } from \"../../hooks/useContract\";\nimport { useIsSwapUnsupported } from \"../../hooks/useIsSwapUnsupported\";\nimport { useUSDCValue } from \"../../hooks/useUSDCPrice\";\nimport { useV3PositionFromTokenId } from \"../../hooks/useV3Positions\";\nimport { useWalletModalToggle } from \"../../state/application/hooks\";\nimport { Field } from \"../../state/mint/v3/actions\";\nimport { TransactionType } from \"../../state/transactions/actions\";\nimport { useTransactionAdder } from \"../../state/transactions/hooks\";\nimport { useTokenBalance } from \"../../state/wallet/hooks\";\nimport { ThemedText } from \"../../theme\";\nimport { currencyId } from \"../../utils/currencyId\";\nimport {\n DynamicSection,\n MediumOnly,\n PageWrapper,\n ResponsiveTwoColumns,\n ScrollablePage,\n Wrapper\n} from \"./styled\";\nimport { ethers } from \"ethers\";\n\nconst AmountNumericalInput = styled(NumericalInput)`\n \n text-align: left;\n`\n\nconst DEFAULT_ADD_IN_RANGE_SLIPPAGE_TOLERANCE = new Percent(50, 10_000)\n\nexport default function AddToken({\n match: {\n params: { currencyIdA, currencyIdB, feeAmount: feeAmountFromUrl, tokenId },\n },\n history,\n}: RouteComponentProps<{ currencyIdA?: string; currencyIdB?: string; feeAmount?: string; tokenId?: string }>) {\n const { account, chainId } = useActiveWeb3React()\n // @ts-ignore\n const theme = useContext(ThemeContext)\n const toggleWalletModal = useWalletModalToggle() // toggle wallet when disconnected\n\n // check for existing position if tokenId in url\n const { position: existingPositionDetails, loading: positionLoading } = useV3PositionFromTokenId(\n tokenId ? BigNumber.from(tokenId) : undefined\n )\n const hasExistingPosition = !!existingPositionDetails && !positionLoading\n // fee selection from url\n const feeAmount: FeeAmount | undefined =\n feeAmountFromUrl && Object.values(FeeAmount).includes(parseFloat(feeAmountFromUrl))\n ? parseFloat(feeAmountFromUrl)\n : undefined\n const baseCurrency = useCurrency(currencyIdA)\n const currencyB = useCurrency(currencyIdB)\n // prevent an error if they input ETH/WETH\n const quoteCurrency =\n baseCurrency && currencyB && baseCurrency.wrapped.equals(currencyB.wrapped) ? undefined : currencyB\n\n const {\n currencies,\n parsedAmounts,\n pair,\n } = useDerivedMintInfo(baseCurrency ?? undefined, currencyB ?? undefined, 'SELECT_POOL_MIGRATE')\n // modal and loading\n const [showConfirm, setShowConfirm] = useState(false)\n const [attemptingTxn, setAttemptingTxn] = useState(false) // clicked confirm\n const [waiting, setWaiting] = useState(false)\n const [clickable, setClickable] = useState(true)\n const [invalid, setInvalid] = useState(false)\n const [insufficient, setInsufficient] = useState(false)\n const pool = window.localStorage.getItem('SELECT_POOL_MIGRATE') || 'Ubeswap';\n // capital efficiency warning\n const [, setShowCapitalEfficiencyWarning] = useState(false)\n const migrateContract = useMigratorContract(pool.toLowerCase());\n\n const userPoolBalance = useTokenBalance(account ?? undefined, pair?.liquidityToken)\n let maxBalance = ethers.utils.formatUnits(userPoolBalance !== undefined ? userPoolBalance?.quotient.toString() : \"0\", pair?.liquidityToken.decimals);\n const temp = maxBalance.split(\".\");\n if(temp.length >= 2) {\n if(temp[1].length > 6) {\n maxBalance = temp[0] + \".\" + temp[1].slice(0, 6);\n }\n }\n\n let approveAmount: CurrencyAmount | undefined\n const [inputBalance, setInputBalance] = useState(\"\");\n if (inputBalance > 0 && pair?.liquidityToken) {\n approveAmount = CurrencyAmount.fromRawAmount(\n pair?.liquidityToken,\n ethers.utils.parseUnits(inputBalance, pair?.liquidityToken.decimals).toString()\n )\n }\n const [approval, approveCallback] = useApproveCallback(approveAmount, LP_MIGRATOR_ADDRESSES[chainId] ? LP_MIGRATOR_ADDRESSES[chainId][pool.toLowerCase()] : \"\");\n useEffect(() => setShowCapitalEfficiencyWarning(false), [baseCurrency, quoteCurrency, feeAmount])\n\n const [txHash, setTxHash] = useState('')\n\n const usdcValues = {\n [Field.CURRENCY_A]: useUSDCValue(parsedAmounts[Field.CURRENCY_A]),\n [Field.CURRENCY_B]: useUSDCValue(parsedAmounts[Field.CURRENCY_B]),\n }\n const addTransaction = useTransactionAdder()\n\n async function approveToken() {\n try {\n setWaiting(true);\n await approveCallback(); \n } catch (error) {\n console.log(error);\n }\n setWaiting(false);\n }\n\n async function onImport() {\n if(!clickable) return\n setClickable(false)\n if (!chainId || !account) return\n\n if (migrateContract && account) {\n try {\n await migrateContract.importLPTokens(pair?.liquidityToken.address, ethers.utils.parseUnits(inputBalance, pair?.liquidityToken.decimals))\n .then(async (response: TransactionResponse) => {\n setTxHash(response.hash)\n addTransaction(response, {\n type: TransactionType.MIGRATE_LIQUIDITY_V3,\n baseCurrencyId: currencyId(baseCurrency),\n quoteCurrencyId: currencyId(currencyB),\n isFork: true\n })\n setShowConfirm(true)\n await response.wait()\n setAttemptingTxn(false)\n setWaiting(false);\n })\n\n ReactGA.event({\n category: 'Liquidity',\n action: 'Import',\n label: [pair?.token0?.symbol, pair?.token1?.symbol].join('/'),\n })\n } catch (error) {\n setWaiting(false);\n console.error('Failed to send transaction', error)\n setAttemptingTxn(false)\n // we only care if the error is something _other_ than the user rejected the tx\n if (error?.code !== 4001) {\n console.error(error)\n }\n } finally {\n setClickable(true)\n }\n }\n }\n\n const showConnectAWallet = Boolean(!account)\n const handleCurrencySelect = useCallback(\n (currencyNew: Currency, currencyIdOther?: string): (string | undefined)[] => {\n const currencyIdNew = currencyId(currencyNew)\n\n if (currencyIdNew === currencyIdOther) {\n // not ideal, but for now clobber the other if the currency ids are equal\n return [currencyIdNew, undefined]\n } else {\n // prevent weth + eth\n const isETHOrWETHNew =\n currencyIdNew === 'ETH' ||\n (chainId !== undefined && currencyIdNew === WRAPPED_NATIVE_CURRENCY[chainId]?.address)\n const isETHOrWETHOther =\n currencyIdOther !== undefined &&\n (currencyIdOther === 'ETH' ||\n (chainId !== undefined && currencyIdOther === WRAPPED_NATIVE_CURRENCY[chainId]?.address))\n\n if (isETHOrWETHNew && isETHOrWETHOther) {\n return [currencyIdNew, undefined]\n } else {\n return [currencyIdNew, currencyIdOther]\n }\n }\n },\n [chainId]\n )\n\n const handleCurrencyASelect = useCallback(\n (currencyANew: Currency) => {\n const [idA, idB] = handleCurrencySelect(currencyANew, currencyIdB)\n if (idB === undefined) {\n history.push(`/migrate/import/${idA}`)\n } else {\n history.push(`/migrate/import/${idA}/${idB}`)\n }\n },\n [handleCurrencySelect, currencyIdB, history]\n )\n\n const handleCurrencyBSelect = useCallback(\n (currencyBNew: Currency) => {\n\t const feeamount = '3000'\n const [idB, idA] = handleCurrencySelect(currencyBNew, currencyIdA)\n if(currencyId(currencyBNew) === currencyIdA) {\n history.push(`/migrate/import/${idB}`)\n } else if (idA === undefined) {\n history.push(`/migrate/import/0x0/${idB}`)\n } else {\n history.push(`/migrate/import/${idA}/${idB}/${feeamount}`)\n }\n },\n [handleCurrencySelect, currencyIdA, history]\n )\n\n const handleDismissConfirmation = useCallback(() => {\n setShowConfirm(false)\n // if there was a tx hash, we want to clear the input\n if (txHash) {\n // dont jump to pool page if creating\n history.push('/migrate/v2')\n }\n setTxHash('')\n }, [history, txHash])\n\n const addIsUnsupported = useIsSwapUnsupported(currencies?.CURRENCY_A, currencies?.CURRENCY_B)\n\n const clearAll = useCallback(() => {\n history.push(`/add`)\n }, [history])\n const pendingText = (<>Migrating {inputBalance} {currencies[Field.CURRENCY_A]?.symbol} / {currencies[Field.CURRENCY_B]?.symbol});\n const Buttons = () =>\n addIsUnsupported ? (\n \n \n Unsupported Asset\n \n \n ) : (\n \n \n )\n\n const onUserInput = (e) => {\n const decimal = pair?.liquidityToken.decimals || 18;\n const removed = removeUnneededCharacter(e.toString())\n const splited = removed.toString().split('.')\n if (splited.length > 1) {\n setInvalid(splited[1].length > decimal)\n } else {\n setInvalid(false)\n }\n setInsufficient(parseFloat(removed) > parseFloat(maxBalance) || parseFloat(removed) < 0)\n setInputBalance(removed.toString())\n }\n\n const removeUnneededCharacter = (str: string) => {\n if (str.startsWith('0.')) {\n return str\n } else if (str.startsWith('00')) {\n return str.substring(2)\n } else if (str.length > 1 && str.startsWith('0')) {\n return str.substring(1)\n }\n return str\n }\n\n return (\n <>\n \n\n (\n (\n \n )}\n />\n )}\n pendingText={pendingText}\n />\n\n
\n
\n \n \n {!hasExistingPosition && (\n \n \n \n \n Clear All\n \n \n \n {baseCurrency && quoteCurrency ? (\n {\n history.push(\n `/add/${currencyIdB as string}/${currencyIdA as string}${feeAmount ? '/' + feeAmount : ''}`\n )\n }}\n />\n ) : null}\n \n )}\n \n \n \n \n {!hasExistingPosition && (\n <>\n \n \n \n Select Pair\n \n \n \n
\n \n\n \n {' '}\n \n )}\n \n
\n \n \n \n \n Select a Capital\n \n
\n \n
\n
\n \n \n Select a Token\n \n
\n \n
\n
\n {!showConnectAWallet && baseCurrency && quoteCurrency &&\n <>\n \n \n \n \n\n \n

{baseCurrency.symbol} / {quoteCurrency.symbol}

\n \n \n \n
\n
\n \n setInputBalance(maxBalance)}\n >\n\n Balance: {parseFloat(maxBalance).toFixed(6)}\n \n\n \n \n }\n
\n \n
\n \n \n \n {showConnectAWallet ? (\n
\n \n
\n ):(\n (invalid || insufficient)\n ?\n
\n \n
\n :\n
\n { approval === ApprovalState.NOT_APPROVED && !waiting ? \n : (\n (approval === ApprovalState.PENDING || waiting) && (approval !== ApprovalState.APPROVED)\n ?\n \n :\n
\n \n
\n )\n }\n
\n )\n }\n \n
\n
\n {addIsUnsupported && (\n \n )}\n \n \n )\n}\n","import { FeeAmount, nearestUsableTick, TICK_SPACINGS, TickMath } from '@uniswap/v3-sdk'\nimport { useMemo } from 'react'\nimport { Bound } from 'state/mint/v3/actions'\n\nexport default function useIsTickAtLimit(\n feeAmount: FeeAmount | undefined,\n tickLower: number | undefined,\n tickUpper: number | undefined\n) {\n return useMemo(\n () => ({\n [Bound.LOWER]:\n feeAmount && tickLower\n ? tickLower === nearestUsableTick(TickMath.MIN_TICK, TICK_SPACINGS[feeAmount as FeeAmount])\n : undefined,\n [Bound.UPPER]:\n feeAmount && tickUpper\n ? tickUpper === nearestUsableTick(TickMath.MAX_TICK, TICK_SPACINGS[feeAmount as FeeAmount])\n : undefined,\n }),\n [feeAmount, tickLower, tickUpper]\n )\n}\n","// @ts-nocheck\nimport { Percent, Price, Token } from '@uniswap/sdk-core'\nimport { Position } from '@uniswap/v3-sdk'\nimport Badge from 'components/Badge'\nimport RangeBadge from 'components/Badge/RangeBadge'\nimport DoubleCurrencyLogo from 'components/DoubleLogo'\nimport HoverInlineText from 'components/HoverInlineText'\nimport Loader from 'components/Loader'\nimport { RowBetween } from 'components/Row'\nimport { useToken } from 'hooks/Tokens'\nimport useIsTickAtLimit from 'hooks/useIsTickAtLimit'\nimport { usePool } from 'hooks/usePools'\nimport { useMemo } from 'react'\nimport { Bound } from 'state/mint/v3/actions'\nimport styled from 'styled-components/macro'\nimport { HideSmall, SmallOnly } from 'theme'\nimport { PositionDetails } from 'types/position'\nimport { formatTickPrice } from 'utils/formatTickPrice'\nimport { unwrappedToken } from 'utils/unwrappedToken'\n\nimport { DAI, USDC_MAINNET, USDT, WBTC, WRAPPED_NATIVE_CURRENCY } from '../../constants/tokens'\n\nconst LinkRow = styled.div<{ isSelected: boolean; }>`\n align-items: center;\n display: flex;\n cursor: pointer;\n user-select: none;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n padding: 16px;\n text-decoration: none;\n font-weight: 500;\n width: 100%;\n background-color: ${({ isSelected, theme }) => (isSelected ? theme.bg4 : theme.bg1)};\n & > div:not(:first-child) {\n text-align: center;\n }\n :hover {\n background-color: ${({ theme }) => theme.bg2};\n }\n\n @media screen and (min-width: 720px) {\n /* flex-direction: row; */\n }\n\n ${({ theme }) => theme.mediaWidth.upToSmall`\n flex-direction: column;\n row-gap: 8px;\n `};\n`\n\nconst BadgeText = styled.div`\n font-weight: 500;\n font-size: 14px;\n ${({ theme }) => theme.mediaWidth.upToSmall`\n font-size: 12px;\n `};\n`\n\nconst DataLineItem = styled.div`\n font-size: 14px;\n`\n\nconst RangeLineItem = styled(DataLineItem)`\n display: flex;\n flex-direction: row;\n align-items: center;\n margin-top: 4px;\n width: 100%;\n`\n\nconst DoubleArrow = styled.span`\n margin: 0 2px;\n color: ${({ theme }) => theme.text1};\n`\n\nconst RangeText = styled.span`\n padding: 0.25rem 0.25rem;\n border-radius: 8px;\n`\n\nconst ExtentsText = styled.span`\n color: ${({ theme }) => theme.text1};\n font-size: 14px;\n margin-right: 4px;\n ${({ theme }) => theme.mediaWidth.upToSmall`\n display: none;\n `};\n`\n\nconst PrimaryPositionIdData = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n > * {\n margin-right: 8px;\n }\n`\n\nconst DataText = styled.div`\n font-weight: 600;\n font-size: 18px;\n\n ${({ theme }) => theme.mediaWidth.upToSmall`\n font-size: 18px;\n `};\n`\n\ninterface PositionListItemProps {\n positionDetails: PositionDetails;\n setTokenId:(value: string) => void;\n activeTokenId: string;\n index:number;\n}\n\nexport function getPriceOrderingFromPositionForUI(position?: Position): {\n priceLower?: Price\n priceUpper?: Price\n quote?: Token\n base?: Token\n} {\n if (!position) {\n return {}\n }\n\n const token0 = position.amount0.currency\n const token1 = position.amount1.currency\n\n // if token0 is a dollar-stable asset, set it as the quote token\n const stables = [DAI, USDC_MAINNET, USDT]\n if (stables.some((stable) => stable.equals(token0))) {\n return {\n priceLower: position.token0PriceUpper.invert(),\n priceUpper: position.token0PriceLower.invert(),\n quote: token0,\n base: token1,\n }\n }\n\n // if token1 is an ETH-/BTC-stable asset, set it as the base token\n const bases = [...Object.values(WRAPPED_NATIVE_CURRENCY), WBTC]\n if (bases.some((base) => base && base.equals(token1))) {\n return {\n priceLower: position.token0PriceUpper.invert(),\n priceUpper: position.token0PriceLower.invert(),\n quote: token0,\n base: token1,\n }\n }\n\n // if both prices are below 1, invert\n if (position.token0PriceUpper.lessThan(1)) {\n return {\n priceLower: position.token0PriceUpper.invert(),\n priceUpper: position.token0PriceLower.invert(),\n quote: token0,\n base: token1,\n }\n }\n\n // otherwise, just return the default\n return {\n priceLower: position.token0PriceLower,\n priceUpper: position.token0PriceUpper,\n quote: token1,\n base: token0,\n }\n}\n\nexport default function PositionListItemV3({ setTokenId, activeTokenId, positionDetails, index }: PositionListItemProps) {\n const {\n token0: token0Address,\n token1: token1Address,\n fee: feeAmount,\n liquidity,\n tickLower,\n tickUpper,\n tokenId,\n } = positionDetails\n\n const token0 = useToken(token0Address)\n const token1 = useToken(token1Address)\n\n const currency0 = token0 ? unwrappedToken(token0) : undefined\n const currency1 = token1 ? unwrappedToken(token1) : undefined\n\n // construct Position from details returned\n const [, pool] = usePool(currency0 ?? undefined, currency1 ?? undefined, feeAmount)\n\n const position = useMemo(() => {\n if (pool) {\n return new Position({ pool, liquidity: liquidity.toString(), tickLower, tickUpper })\n }\n return undefined\n }, [liquidity, pool, tickLower, tickUpper])\n\n const tickAtLimit = useIsTickAtLimit(feeAmount, tickLower, tickUpper)\n\n // prices\n const { priceLower, priceUpper, quote, base } = getPriceOrderingFromPositionForUI(position)\n \n const currencyQuote = quote && unwrappedToken(quote)\n const currencyBase = base && unwrappedToken(base)\n // check if price is within range\n const outOfRange: boolean = pool ? pool.tickCurrent < tickLower || pool.tickCurrent >= tickUpper : false\n\n const removed = liquidity?.eq(0)\n return (\n setTokenId(tokenId.toString())}>\n \n \n \n \n  {currencyQuote?.symbol} / {currencyBase?.symbol}\n \n  \n \n \n {new Percent(feeAmount, 1_000_000).toSignificant()}%\n \n \n \n \n \n\n {priceLower && priceUpper ? (\n \n \n \n Min: \n \n {formatTickPrice(priceLower, tickAtLimit, Bound.LOWER)} {' '}\n per \n {' '}\n \n {' '}\n \n \n {' '}\n \n \n \n Max:\n \n {formatTickPrice(priceUpper, tickAtLimit, Bound.UPPER)} {' '}\n per \n \n \n ) : (\n \n )}\n \n )\n}\n","// @ts-nocheck\nimport useActiveWeb3React from \"hooks/useActiveWeb3React\";\nimport { useERC721Contract } from \"hooks/useContract\";\nimport { useCallback, useMemo } from \"react\";\nimport { calculateGasMargin } from \"utils/calculateGasMargin\";\n\nimport { MaxUint256 } from \"@ethersproject/constants\";\nimport { TransactionResponse } from \"@ethersproject/providers\";\nimport { useLiquiditySpender, ApprovalState } from \"hooks/useLiquiditySpender\";\n\nexport function useApprovalStateForSpender(\n token: string | undefined,\n tokenId: string | undefined,\n spender: string | undefined,\n useIsPendingApproval: (token?: string, spender?: string) => boolean\n): ApprovalState {\n const approvedUser = useLiquiditySpender(token, tokenId)\n const pendingApproval = useIsPendingApproval(tokenId, spender)\n\n return useMemo(() => {\n if (!approvedUser || !spender) return ApprovalState.UNKNOWN\n if (approvedUser === spender) return ApprovalState.APPROVED\n // we might not have enough data to know whether or not we need to approve\n if (!tokenId) return ApprovalState.UNKNOWN\n\n // amountToApprove will be defined if currentAllowance is\n return pendingApproval\n ? ApprovalState.PENDING\n : ApprovalState.NOT_APPROVED;\n }, [approvedUser, pendingApproval, spender, tokenId])\n}\n\nexport function useLiquidityApproval(\n token: string | undefined,\n tokenId: string | undefined,\n spender: string | undefined,\n useIsPendingApproval: (token?: string, spender?: string) => boolean\n): [\n ApprovalState,\n () => Promise<{ response: TransactionResponse; tokenAddress: string; spenderAddress: string } | undefined>\n] {\n const { chainId } = useActiveWeb3React()\n\n // check the current approval status\n const approvalState = useApprovalStateForSpender(token, tokenId, spender, useIsPendingApproval)\n\n const tokenContract = useERC721Contract(token, true)\n\n const approve = useCallback(async () => {\n function logFailure(error: Error | string): undefined {\n console.warn(`Liquidity Token approval failed:`, error)\n return\n }\n\n // Bail early if there is an issue.\n if (approvalState !== ApprovalState.NOT_APPROVED) {\n return logFailure('approve was called unnecessarily')\n } else if (!chainId) {\n return logFailure('no chainId')\n } else if (!token) {\n return logFailure('no token')\n } else if (!tokenContract) {\n return logFailure('tokenContract is null')\n } else if (!spender) {\n return logFailure('no spender')\n }\n\n let useExact = false\n const estimatedGas = await tokenContract.estimateGas.approve(spender, MaxUint256).catch(() => {\n // general fallback for tokens which restrict approval amounts\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n useExact = true\n return tokenContract.estimateGas.approve(spender, tokenId)\n })\n\n return tokenContract\n .approve(spender, tokenId, {\n gasLimit: calculateGasMargin(estimatedGas),\n })\n .then((response) => ({\n response,\n tokenAddress: token,\n spenderAddress: spender,\n }))\n .catch((error: Error) => {\n logFailure(error)\n throw error\n })\n }, [approvalState, chainId, token, tokenContract, spender, tokenId])\n\n return [approvalState, approve]\n}\n","import { useSingleCallResult } from 'lib/hooks/multicall'\nimport { useMemo, useCallback } from 'react'\nimport { useLiquidityApproval } from 'lib/hooks/useLiquidityApproval'\nimport { useHasPendingLiquidityApproval, useTransactionAdder } from '../state/transactions/hooks'\nimport { useERC721Contract } from './useContract'\nimport { TransactionType } from '../state/transactions/actions'\n\nexport enum ApprovalState {\n UNKNOWN = 'UNKNOWN',\n NOT_APPROVED = 'NOT_APPROVED',\n PENDING = 'PENDING',\n APPROVED = 'APPROVED',\n}\n\n\nfunction useGetAndTrackApproval(getApproval: ReturnType[1]) {\n const addTransaction = useTransactionAdder()\n return useCallback(() => {\n return getApproval().then((pending) => {\n if (pending) {\n const { response, tokenAddress, spenderAddress: spender } = pending\n addTransaction(response, { type: TransactionType.APPROVAL, tokenAddress, spender })\n }\n })\n }, [addTransaction, getApproval])\n}\n\nexport function useLiquiditySpender(token?: string, tokenId?: string): string | undefined {\n const contract = useERC721Contract(token, false)\n\n const inputs = useMemo(() => [tokenId], [tokenId])\n const spender = useSingleCallResult(contract, 'getApproved', inputs).result\n\n return useMemo(\n () => (token && spender ? spender.toString() : undefined),\n [token, spender]\n )\n}\n\nexport function useApproveCallback(\n token:string,\n tokenId: string,\n spender?: string\n): [ApprovalState, () => Promise] {\n const [approval, getApproval] = useLiquidityApproval(token, tokenId, spender, useHasPendingLiquidityApproval)\n return [approval, useGetAndTrackApproval(getApproval)]\n}\n","// @ts-nocheck\nimport { AutoColumn } from 'components/Column'\nimport CurrencyInputPanel from 'components/CurrencyInputPanel'\nimport Input from 'components/NumericalInput'\nimport { BodyWrapper } from 'pages/AppBody'\nimport styled from 'styled-components/macro'\n\nexport const PageWrapper = styled(BodyWrapper) <{ wide: boolean }>`\n \n \n padding: ${({ wide }) => (wide ? '10px' : '0')};\n padding: 58px 48px 32px 48px;\n max-width:512px;\n ${({ theme }) => theme.mediaWidth.upToMedium`\n max-width: 480px;\n `};\n ${({ theme }) => theme.mediaWidth.upToSmall`\n max-width: 350px;\n `};\n`\n\nexport const Wrapper = styled.div`\n position: relative;\n padding: 26px 16px;\n min-width: 400px;\n\n ${({ theme }) => theme.mediaWidth.upToMedium`\n min-width: 400px;\n `};\n\n ${({ theme }) => theme.mediaWidth.upToExtraSmall`\n min-width: 280px;\n`};\n`\n\nexport const ScrollablePage = styled.div`\n position: relative;\n display: flex;\n flex-direction: column;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n position: absolute;\n ${({ theme }) => theme.mediaWidth.upToMedium`\n max-width: 480px;\n margin: 0 auto;\n `};\n`\n\nexport const DynamicSection = styled(AutoColumn) <{ disabled?: boolean }>`\nopacity: 1 ;\n pointer-events: auto ;\n`\n\nexport const CurrencyDropdown = styled(CurrencyInputPanel)`\n width:100%;\n \n`\n\nexport const StyledInput = styled(Input)`\n background-color: ${({ theme }) => theme.bg0};\n text-align: left;\n font-size: 18px;\n width: 100%;\n`\n\n/* two-column layout where DepositAmount is moved at the very end on mobile. */\nexport const ResponsiveTwoColumns = styled.div<{ wide: boolean }>`\n display: grid;\n grid-column-gap: 50px;\n grid-row-gap: 15px;\n grid-template-columns: ${({ wide }) => (wide ? '1fr 1fr' : '1fr')};\n grid-template-rows: max-content;\n grid-auto-flow: row;\n\n padding-top: 20px;\n\n\n ${({ theme }) => theme.mediaWidth.upToMedium`\n grid-template-columns: 1fr;\n\n margin-top: 0;\n `};\n`\n\nexport const RightContainer = styled(AutoColumn)`\n grid-row: 1 / 3;\n grid-column: 2;\n height: fit-content;\n\n ${({ theme }) => theme.mediaWidth.upToMedium`\n grid-row: 2 / 3;\n grid-column: 1;\n `};\n`\n\nexport const StackedContainer = styled.div`\n display: grid;\n`\n\nexport const StackedItem = styled.div<{ zIndex?: number }>`\n grid-column: 1;\n grid-row: 1;\n height: 100%;\n z-index: ${({ zIndex }) => zIndex};\n`\n\nexport const MediumOnly = styled.div`\n ${({ theme }) => theme.mediaWidth.upToMedium`\n display: none;\n `};\n`\n\nexport const HideMedium = styled.div`\n display: none;\n\n ${({ theme }) => theme.mediaWidth.upToMedium`\n display: block;\n `};\n`\n","// @ts-nocheck\nimport \"./style.scss\";\n\nimport UnsupportedCurrencyFooter from \"components/swap/UnsupportedCurrencyFooter\";\nimport useActiveWeb3React from \"hooks/useActiveWeb3React\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport ReactGA from \"react-ga4\";\nimport { RouteComponentProps } from \"react-router-dom\";\nimport { useDerivedMintInfo } from \"state/mint/hooks\";\nimport { TransactionResponse } from \"@ethersproject/providers\";\nimport { formatUnits } from \"@ethersproject/units\";\nimport { Currency, Percent } from \"@uniswap/sdk-core\";\nimport { ButtonPrimary } from \"../../components/Button\";\nimport { AutoColumn } from \"../../components/Column\";\nimport PositionListItemV3 from 'components/PositionListItemV3'\nimport CurrencyInputPanel from \"../../components/CurrencyInputPanel\";\nimport CurrencyInputPanelLimited from \"../../components/CurrencyInputPanel/limited\";\nimport { AddRemoveTabs } from \"../../components/NavigationTabs\";\nimport { AutoRow, RowBetween } from \"../../components/Row\";\nimport TransactionConfirmationModal, { ConfirmationModalContent } from \"../../components/TransactionConfirmationModal\";\nimport { LP_MIGRATOR_ADDRESSES, NONFUNGIBLE_POSITION_MANAGER_ADDRESSES } from \"../../constants/addresses\";\nimport { WRAPPED_NATIVE_CURRENCY } from \"../../constants/tokens\";\nimport { useCurrency } from \"../../hooks/Tokens\";\nimport { useV3Positions } from 'hooks/useV3Positions'\nimport {\n ApprovalState,\n useApproveCallback\n} from \"../../hooks/useLiquiditySpender\";\nimport { useMigratorContract } from \"../../hooks/useContract\";\nimport { useIsSwapUnsupported } from \"../../hooks/useIsSwapUnsupported\";\nimport { useUSDCValue } from \"../../hooks/useUSDCPrice\";\nimport { useWalletModalToggle } from \"../../state/application/hooks\";\nimport { Field } from \"../../state/mint/v3/actions\";\nimport { TransactionType } from \"../../state/transactions/actions\";\nimport { useTransactionAdder } from \"../../state/transactions/hooks\";\nimport { useTokenBalance } from \"../../state/wallet/hooks\";\nimport { ThemedText } from \"../../theme\";\nimport { currencyId } from \"../../utils/currencyId\";\nimport {\n DynamicSection,\n PageWrapper,\n ResponsiveTwoColumns,\n ScrollablePage,\n Wrapper\n} from \"./styled\";\n\nconst DEFAULT_ADD_IN_RANGE_SLIPPAGE_TOLERANCE = new Percent(50, 10_000)\n\nexport default function AddTokenV3({\n match: {\n params: { currencyIdA, currencyIdB },\n },\n history,\n}: RouteComponentProps<{ currencyIdA?: string; currencyIdB?: string; }>) {\n const { account, chainId } = useActiveWeb3React()\n // @ts-ignore\n const toggleWalletModal = useWalletModalToggle() // toggle wallet when disconnected\n\n const { positions, loading: positionsLoading } = useV3Positions(account)\n const [filteredPostions, setFilteredPositions] = useState([])\n\n const baseCurrency = useCurrency(currencyIdA)\n const currencyB = useCurrency(currencyIdB)\n // prevent an error if they input ETH/WETH\n // const quoteCurrency =\n // baseCurrency && currencyB && baseCurrency.wrapped.equals(currencyB.wrapped) ? undefined : currencyB\n\n const {\n currencies,\n parsedAmounts,\n pair,\n } = useDerivedMintInfo(baseCurrency ?? undefined, currencyB ?? undefined, 'SELECT_POOL_MIGRATE')\n // modal and loading\n const [showConfirm, setShowConfirm] = useState(false)\n const [attemptingTxn, setAttemptingTxn] = useState(false) // clicked confirm\n const [waiting, setWaiting] = useState(false)\n const [clickable, setClickable] = useState(true)\n // const [invalid, setInvalid] = useState(false)\n // const [insufficient, setInsufficient] = useState(false)\n const pool = window.localStorage.getItem('SELECT_POOL_MIGRATE') || 'UniswapV2';\n const [tokenId, setTokenId] = useState('')\n // capital efficiency warning\n const migrateContract = useMigratorContract(pool.toLowerCase());\n\n const userPoolBalance = useTokenBalance(account ?? undefined, pair?.liquidityToken)\n let maxBalance = formatUnits(userPoolBalance !== undefined ? userPoolBalance?.quotient.toString() : \"0\", pair?.liquidityToken.decimals);\n const temp = maxBalance.split(\".\");\n if(temp.length >= 2) {\n if(temp[1].length > 6) {\n maxBalance = temp[0] + \".\" + temp[1].slice(0, 6);\n }\n }\n\n const [approval, approveCallback] = useApproveCallback(NONFUNGIBLE_POSITION_MANAGER_ADDRESSES[chainId], tokenId ? tokenId : 0, LP_MIGRATOR_ADDRESSES[chainId] ? LP_MIGRATOR_ADDRESSES[chainId][pool.toLowerCase()] : \"\");\n console.log(approval);\n const [txHash, setTxHash] = useState('')\n\n const usdcValues = {\n [Field.CURRENCY_A]: useUSDCValue(parsedAmounts[Field.CURRENCY_A]),\n [Field.CURRENCY_B]: useUSDCValue(parsedAmounts[Field.CURRENCY_B]),\n }\n\n useEffect(() => {\n if(currencyIdA && currencyIdB && positionsLoading ===false) {\n const [token0, token1] = currencyIdA.toLowerCase() < currencyIdB.toLowerCase() ? [currencyIdA.toLowerCase(), currencyIdB.toLowerCase()] : [currencyIdB.toLowerCase(), currencyIdA.toLowerCase()];\n const filtered = positions?.filter(position => position.token0.toLowerCase() === token0 && position.token1.toLowerCase() === token1);\n setFilteredPositions(filtered);\n }\n }, [currencyIdA, currencyIdB, chainId, positionsLoading, positions])\n\n const addTransaction = useTransactionAdder()\n async function onImport() {\n if(!clickable) return\n setClickable(false)\n if (!chainId || !account) return\n\n if (migrateContract && account) {\n try {\n await migrateContract.importLPTokens(tokenId)\n .then(async (response: TransactionResponse) => {\n setTxHash(response.hash)\n addTransaction(response, {\n type: TransactionType.MIGRATE_LIQUIDITY_V3,\n baseCurrencyId: currencyId(baseCurrency),\n quoteCurrencyId: currencyId(currencyB),\n isFork: true\n })\n setShowConfirm(true)\n await response.wait()\n setAttemptingTxn(false)\n setWaiting(false);\n })\n\n ReactGA.event({\n category: 'Liquidity',\n action: 'Import',\n label: [pair?.token0?.symbol, pair?.token1?.symbol].join('/'),\n })\n } catch (error) {\n setWaiting(false);\n console.error('Failed to send transaction', error)\n setAttemptingTxn(false)\n // we only care if the error is something _other_ than the user rejected the tx\n if (error?.code !== 4001) {\n console.error(error)\n }\n } finally {\n setClickable(true)\n }\n }\n }\n\n const showConnectAWallet = Boolean(!account)\n const handleCurrencySelect = useCallback(\n (currencyNew: Currency, currencyIdOther?: string): (string | undefined)[] => {\n const currencyIdNew = currencyId(currencyNew)\n\n if (currencyIdNew === currencyIdOther) {\n // not ideal, but for now clobber the other if the currency ids are equal\n return [currencyIdNew, undefined]\n } else {\n // prevent weth + eth\n const isETHOrWETHNew =\n currencyIdNew === 'ETH' ||\n (chainId !== undefined && currencyIdNew === WRAPPED_NATIVE_CURRENCY[chainId]?.address)\n const isETHOrWETHOther =\n currencyIdOther !== undefined &&\n (currencyIdOther === 'ETH' ||\n (chainId !== undefined && currencyIdOther === WRAPPED_NATIVE_CURRENCY[chainId]?.address))\n\n if (isETHOrWETHNew && isETHOrWETHOther) {\n return [currencyIdNew, undefined]\n } else {\n return [currencyIdNew, currencyIdOther]\n }\n }\n },\n [chainId]\n )\n\n const handleCurrencyASelect = useCallback(\n (currencyANew: Currency) => {\n const [idA, idB] = handleCurrencySelect(currencyANew, currencyIdB)\n if (idB === undefined) {\n history.push(`/migrate/import/${idA}`)\n } else {\n history.push(`/migrate/import/${idA}/${idB}`)\n }\n },\n [handleCurrencySelect, currencyIdB, history]\n )\n\n const handleCurrencyBSelect = useCallback(\n (currencyBNew: Currency) => {\n const [idB, idA] = handleCurrencySelect(currencyBNew, currencyIdA)\n if(currencyId(currencyBNew) === currencyIdA) {\n history.push(`/migrate/import/${idB}`)\n } else if (idA === undefined) {\n history.push(`/migrate/import/0x0/${idB}`)\n } else {\n history.push(`/migrate/import/${idA}/${idB}`)\n }\n },\n [handleCurrencySelect, currencyIdA, history]\n )\n\n const handleDismissConfirmation = useCallback(() => {\n setShowConfirm(false)\n // if there was a tx hash, we want to clear the input\n if (txHash) {\n // dont jump to pool page if creating\n history.push('/migrate/v2')\n }\n setTxHash('')\n }, [history, txHash])\n\n const addIsUnsupported = useIsSwapUnsupported(currencies?.CURRENCY_A, currencies?.CURRENCY_B)\n\n // const pendingText = (<>Migrating {inputBalance} {currencies[Field.CURRENCY_A]?.symbol} / {currencies[Field.CURRENCY_B]?.symbol});\n const pendingText = (<>Migrating {currencies[Field.CURRENCY_A]?.symbol} / {currencies[Field.CURRENCY_B]?.symbol});\n const Buttons = () =>\n addIsUnsupported ? (\n \n \n Unsupported Asset\n \n \n ) : (\n \n \n )\n\n return (\n <>\n \n\n (\n (\n \n )}\n />\n )}\n pendingText={pendingText}\n />\n\n
\n
\n \n \n \n \n
\n \n \n \n \n Select a Capital\n \n
\n \n
\n
\n \n \n Select a Token\n \n
\n \n
\n
\n {filteredPostions !== undefined && filteredPostions?.map((p, index) => {\n return \n })}\n
\n \n
\n \n
\n
\n {showConnectAWallet ? (\n
\n \n
\n ):(\n
\n { approval === ApprovalState.NOT_APPROVED ? \n : (\n approval === ApprovalState.PENDING\n ?\n \n :\n
\n \n
\n )\n }\n
\n )\n }\n
\n
\n
\n {addIsUnsupported && (\n \n )}\n
\n \n )\n}\n","import useActiveWeb3React from 'hooks/useActiveWeb3React'\nimport { Redirect, RouteComponentProps } from 'react-router-dom'\n\nimport { WRAPPED_NATIVE_CURRENCY } from '../../constants/tokens'\nimport AddToken from './index'\nimport AddTokenV3 from '../AddTokenV3/index'\n\nexport function RedirectMigrateTokenId(\n props: RouteComponentProps<{ currencyIdA: string; currencyIdB: string; feeAmount?: string }>\n) {\n const {\n match: {\n params: { currencyIdA, currencyIdB },\n },\n } = props\n\n const { chainId } = useActiveWeb3React()\n const pool = window.localStorage.getItem('SELECT_POOL_MIGRATE') || 'Ubeswap';\n // prevent weth + eth\n const isETHOrWETHA =\n currencyIdA === 'ETH' || (chainId !== undefined && currencyIdA === WRAPPED_NATIVE_CURRENCY[chainId]?.address)\n const isETHOrWETHB =\n currencyIdB === 'ETH' || (chainId !== undefined && currencyIdB === WRAPPED_NATIVE_CURRENCY[chainId]?.address)\n\n if (\n currencyIdA &&\n currencyIdB &&\n (currencyIdA.toLowerCase() === currencyIdB.toLowerCase() || (isETHOrWETHA && isETHOrWETHB))\n ) {\n return \n }\n if(pool === 'UniswapV3') {\n return ;\n }\n return \n}\n","// @ts-nocheck\nimport { AutoColumn } from 'components/Column'\nimport CurrencyInputPanel from 'components/CurrencyInputPanel'\nimport Input from 'components/NumericalInput'\nimport { BodyWrapper } from 'pages/AppBody'\nimport styled from 'styled-components/macro'\n\nexport const PageWrapper = styled(BodyWrapper) <{ wide: boolean }>`\n // padding: ${({ wide }) => (wide ? '10px' : '0')};\n padding: 32px;\n height: 100%;\n max-width:512px;\n ${({ theme }) => theme.mediaWidth.upToMedium`\n max-width: 480px;\n `};\n ${({ theme }) => theme.mediaWidth.upToSmall`\n max-width: 350px;\n `};\n`\n\nexport const Wrapper = styled.div`\n position: relative;\n padding: 26px 16px;\n \n ${({ theme }) => theme.mediaWidth.upToMedium`\n // min-width: 400px;\n `};\n\n ${({ theme }) => theme.mediaWidth.upToExtraSmall`\n min-width: 280px;\n`};\n`\n\nexport const ScrollablePage = styled.div`\n position: relative;\n display: flex;\n flex-direction: column;\n top: 50%;\n left: 50%;\n max-width: 512px;\n transform: translate(-50%, -50%);\n position: absolute;\n ${({ theme }) => theme.mediaWidth.upToMedium`\n max-width: 480px;\n margin: 0 auto;\n `};\n \n`\n\nexport const DynamicSection = styled(AutoColumn) <{ disabled?: boolean }>`\n opacity: 1;\n pointer-events: auto ;\n`\n\nexport const CurrencyDropdown = styled(CurrencyInputPanel)`\n width: fit-content;\n`\n\nexport const StyledInput = styled(Input)`\n background-color: ${({ theme }) => theme.bg0};\n text-align: left;\n font-size: 18px;\n width: 100%;\n`\n\n/* two-column layout where DepositAmount is moved at the very end on mobile. */\nexport const ResponsiveTwoColumns = styled.div<{ wide: boolean }>`\n display: grid;\n grid-column-gap: 50px;\n grid-row-gap: 15px;\n grid-template-columns: ${({ wide }) => (wide ? '1fr 1fr' : '1fr')};\n grid-template-rows: max-content;\n grid-auto-flow: row;\n\n padding-top: 20px;\n\n\n ${({ theme }) => theme.mediaWidth.upToMedium`\n grid-template-columns: 1fr;\n\n margin-top: 0;\n `};\n`\n\nexport const RightContainer = styled(AutoColumn)`\n grid-row: 1 / 3;\n grid-column: 2;\n height: fit-content;\n\n ${({ theme }) => theme.mediaWidth.upToMedium`\n grid-row: 2 / 3;\n grid-column: 1;\n `};\n`\n\nexport const StackedContainer = styled.div`\n display: grid;\n`\n\nexport const StackedItem = styled.div<{ zIndex?: number }>`\n grid-column: 1;\n grid-row: 1;\n height: 100%;\n z-index: ${({ zIndex }) => zIndex};\n`\n\nexport const MediumOnly = styled.div`\n ${({ theme }) => theme.mediaWidth.upToMedium`\n display: none;\n `};\n`\n\nexport const HideMedium = styled.div`\n display: none;\n\n ${({ theme }) => theme.mediaWidth.upToMedium`\n display: block;\n `};\n`\n","import useActiveWeb3React from \"hooks/useActiveWeb3React\";\nimport { useCallback, useState } from \"react\";\nimport { RouteComponentProps } from \"react-router-dom\";\nimport { TransactionResponse } from \"@ethersproject/providers\";\nimport { Currency, CurrencyAmount, Percent } from \"@uniswap/sdk-core\";\n\nimport { ButtonText } from \"../../components/Button\";\nimport { AutoColumn } from \"../../components/Column\";\nimport CurrencyInputPanel from \"../../components/CurrencyInputPanel\";\nimport { AddRemoveTabs } from \"../../components/NavigationTabs\";\nimport Row from \"../../components/Row\";\nimport TransactionConfirmationModal, { ConfirmationModalContent } from \"../../components/TransactionConfirmationModal\";\nimport { ASSET_VAULT_ADDRESSES } from \"../../constants/addresses\";\nimport { useCurrency } from \"../../hooks/Tokens\";\nimport {\n ApprovalState,\n useApproveCallback\n} from \"../../hooks/useApproveCallback\";\nimport { useAssetVaultContract } from \"../../hooks/useContract\";\nimport { useUSDCValue } from \"../../hooks/useUSDCPrice\";\nimport { useWalletModalToggle } from \"../../state/application/hooks\";\nimport { Field } from \"../../state/mint/v3/actions\";\nimport { TransactionType } from \"../../state/transactions/actions\";\nimport { useTransactionAdder } from \"../../state/transactions/hooks\";\nimport { ThemedText } from \"../../theme\";\nimport { currencyId } from \"../../utils/currencyId\";\nimport { maxAmountSpend } from \"../../utils/maxAmountSpend\";\nimport {\n DynamicSection,\n MediumOnly,\n PageWrapper,\n ResponsiveTwoColumns,\n ScrollablePage,\n Wrapper\n} from \"./styled\";\nimport { useMintActionHandlers } from \"state/mint/hooks\";\nimport { useDerivedMintInfo } from \"state/mint/hooks\";\nimport { useMintState } from \"state/mint/hooks\";\n\nrequire('./style.css')\n\nconst DEFAULT_ADD_IN_RANGE_SLIPPAGE_TOLERANCE = new Percent(50, 10_000)\n\nexport default function Deposit({\n match: {\n params: { currencyIdA }\n },\n history\n}: RouteComponentProps<{ currencyIdA?: string; }>) {\n const { account, chainId, library } = useActiveWeb3React()\n const addTransaction = useTransactionAdder()\n const toggleWalletModal = useWalletModalToggle() // toggle wallet when disconnected\n // fee selection from url\n const currencyA = useCurrency(currencyIdA)\n\n // mint state\n const { independentField, typedValue } = useMintState();\n \n const {\n dependentField,\n currencies,\n currencyBalances,\n parsedAmounts,\n noLiquidity\n } = useDerivedMintInfo(undefined, currencyA ?? undefined, 'SELECT_POOL')\n const { onFieldAInput, onFieldBInput } =\n useMintActionHandlers(noLiquidity)\n\n const usdcValues = {\n [Field.CURRENCY_B]: useUSDCValue(parsedAmounts[Field.CURRENCY_B])\n }\n const assetVault = useAssetVaultContract()\n const [approval, approveCallback] = useApproveCallback(\n parsedAmounts[Field.CURRENCY_B],\n chainId ? ASSET_VAULT_ADDRESSES[chainId] : undefined\n )\n\n // modal and loading\n const [showConfirm, setShowConfirm] = useState(false)\n const [attemptingTxn, setAttemptingTxn] = useState(false) // clicked confirm\n const [waiting, setWaiting] = useState(false) // clicked confirm\n const [invalid, setInvalid] = useState(false)\n const [insufficientBalance, setInsufficientBalance] = useState(false)\n const [txHash, setTxHash] = useState('')\n\n // get formatted amounts\n const formattedAmounts = {\n [independentField]: typedValue,\n [dependentField]: parsedAmounts[dependentField]?.toSignificant(6) ?? ''\n }\n // get the max amounts user can add\n const maxAmounts: { [field in Field]?: CurrencyAmount } = [Field.CURRENCY_A, Field.CURRENCY_B].reduce(\n (accumulator, field) => {\n return {\n ...accumulator,\n [field]: maxAmountSpend(currencyBalances[field])\n }\n },\n {}\n )\n\n const atMaxAmounts: { [field in Field]?: CurrencyAmount } = [Field.CURRENCY_A, Field.CURRENCY_B].reduce(\n (accumulator, field) => {\n return {\n ...accumulator,\n [field]: maxAmounts[field]?.equalTo(parsedAmounts[field] ?? '0')\n }\n },\n {}\n )\n async function approveToken() {\n try {\n setWaiting(true);\n await approveCallback(); \n } catch (error) {\n console.log(error);\n }\n setWaiting(false);\n }\n\n async function onDeposit() {\n // if(!clickable) return\n // setClickable(false)\n if (!chainId || !library || !account) return\n if (assetVault && account) {\n try {\n setWaiting(true)\n await assetVault.deposit(currencyIdA, (parsedAmounts[Field.CURRENCY_B])?.quotient.toString())\n .then(async (response: TransactionResponse) => {\n setTxHash(response.hash)\n addTransaction(response, {\n type: TransactionType.DEPOSIT_POSITION\n })\n setAttemptingTxn(false)\n setShowConfirm(true)\n await response.wait()\n setWaiting(false)\n })\n .catch((error: any) => {\n setWaiting(false)\n setAttemptingTxn(false)\n console.error('Failed to send transaction', error)\n })\n } catch (error) {\n setWaiting(false)\n console.error('Failed to send transaction', error)\n setAttemptingTxn(false)\n // we only care if the error is something _other_ than the user rejected the tx\n if (error?.code !== 4001) {\n console.error(error)\n }\n }\n }\n }\n\n const showConnectAWallet = Boolean(!account)\n\n const handleCurrencyBSelect = useCallback(\n (currencyANew: Currency) => {\n const idA = currencyId(currencyANew)\n history.push(`/lend/deposit/${idA}`)\n },\n [history]\n )\n\n const handleDismissConfirmation = useCallback(() => {\n setShowConfirm(false)\n // if there was a tx hash, we want to clear the input\n if (txHash) {\n onFieldAInput('')\n // dont jump to pool page if creating\n history.push('/lend')\n }\n setTxHash('')\n }, [history, onFieldAInput, txHash])\n\n const clearAll = useCallback(() => {\n onFieldAInput('')\n onFieldBInput('')\n history.push(`/add`)\n }, [history, onFieldAInput, onFieldBInput])\n\n const onUserInput = (e: any) => {\n const decimal = currencies[Field.CURRENCY_B]?.decimals || 18;\n const removed = removeUnneededCharacter(e.toString())\n const splited = removed.split('.')\n if (splited.length > 1) {\n setInvalid(splited[1].length > decimal)\n } else {\n setInvalid(false)\n }\n // @ts-ignore\n setInsufficientBalance(parseFloat(e) > parseFloat(maxAmounts[Field.CURRENCY_B]?.toExact()) || parseFloat(e) < 0)\n onFieldBInput(removed)\n }\n\n const removeUnneededCharacter = (str: string) => {\n if (str.startsWith('0.')) {\n return str\n } else if (str.startsWith('00')) {\n return str.substring(2)\n } else if (str.length > 1 && str.startsWith('0')) {\n return str.substring(1)\n }\n return str\n }\n\n return (\n <>\n \n (\n (\n \n )}\n />\n )}\n />\n\n
\n \n \n {true && (\n \n \n \n \n Clear All\n \n \n \n \n )}\n \n \n \n
\n \n \n
\n {\n onFieldBInput(maxAmounts[Field.CURRENCY_B]?.toExact() ?? '')\n }}\n showMaxButton={!atMaxAmounts[Field.CURRENCY_B]}\n fiatValue={usdcValues[Field.CURRENCY_B]}\n currency={currencies[Field.CURRENCY_B] ?? null}\n onCurrencySelect={handleCurrencyBSelect}\n disabled={waiting || approval === ApprovalState.PENDING}\n id='add-liquidity-input-tokenb'\n showCommonBases\n />\n
\n\n
\n \n
\n\n\n \n
\n
\n {\n showConnectAWallet ? (\n \n ) : (\n\n (invalid || insufficientBalance)\n ?\n \n :\n approval === ApprovalState.NOT_APPROVED && !waiting\n ?\n \n :\n (\n (approval === ApprovalState.PENDING || waiting) && (approval !== ApprovalState.APPROVED)\n ?\n \n :\n \n )\n )\n }\n
\n
\n
\n
\n \n )\n}","import { RouteComponentProps } from 'react-router-dom'\n\nimport Deposit from './index';\n\nexport function RedirectDepositTokenId(\n props: RouteComponentProps<{ currencyIdA: string; }>\n) {\n return \n}\n","import { SupportedChainId } from \"./chains\";\n\ninterface AMMInfo {\n logoUrl: string,\n label: string\n}\n\nexport const AMMS_INFO: { [key: string]: AMMInfo } = {\n// export const AMMS_INFO = {\n 'UniswapV2': {\n logoUrl: './images/UniswapV2.png',\n label: 'UniswapV2'\n },\n 'UniswapV3': {\n logoUrl: './images/UniswapV3.png',\n label: 'UniswapV3'\n },\n 'SushiSwap': {\n logoUrl: './images/SushiSwap.png',\n label: 'SushiSwap'\n },\n 'PancakeSwap': {\n logoUrl: './images/PancakeSwap.png',\n label: 'PancakeSwap'\n },\n 'Trisolaris': {\n logoUrl: './images/Trisolaris.png',\n label: 'Trisolaris'\n },\n 'Ubeswap': {\n logoUrl: './images/Ubeswap.png',\n label: 'Ubeswap'\n },\n}\n\nexport const AMMS_PER_NETWORK = {\n // [SupportedChainId.MAINNET]: ['UniswapV2', 'SushiSwap'],\n // [SupportedChainId.GOERLI]: ['UniswapV2', 'UniswapV3', 'SushiSwap'],\n // [SupportedChainId.KOVAN]: ['UniswapV2', 'SushiSwap'],\n [SupportedChainId.ALFAJORES]: ['Ubeswap', 'UniswapV3'],\n [SupportedChainId.CELO]: [],\n [SupportedChainId.AURORA]: ['Trisolaris'],\n // [SupportedChainId.AURORA_TEST]: ['Trisolaris'],\n // [SupportedChainId.OPTIMISM]: [],\n // [SupportedChainId.OPTIMISTIC_KOVAN]: [],\n // [SupportedChainId.ARBITRUM_ONE]: [],\n // [SupportedChainId.ARBITRUM_RINKEBY]: [],\n // [SupportedChainId.POLYGON]: ['Trisolaris'],\n // [SupportedChainId.POLYGON_MUMBAI]: ['PancakeSwap'],\n}\n\n\n","// @ts-nocheck\nimport React from \"react\";\nimport styled from \"styled-components/macro\";\nimport { MEDIA_WIDTHS } from \"theme\";\n\nimport { ReactComponent as DropDown } from \"../../assets/images/dropdown.svg\";\nimport { AMMS_INFO } from \"../../constants/amm\";\nimport { ActivatorButton, DropdownList, Wrapper } from \"./styles\";\n\nconst StyledDropDown = styled(DropDown)<{ selected: boolean }>`\n margin: 0 0.25rem 0 0.35rem;\n height: 35%;\n\n path {\n stroke: ${({ selected, theme }) => (selected ? theme.text1 : theme.white)};\n stroke-width: 1.5px;\n }\n`\nconst Logo = styled.img`\n height: 32px;\n width: 32px;\n margin-right: 8px;\n`\nconst SelectorLogo = styled(Logo) <{ interactive?: boolean }>`\n margin-right: ${({ interactive }) => (interactive ? 8 : 0)}px;\n @media screen and (min-width: ${MEDIA_WIDTHS.upToSmall}px) {\n margin-right: 8px;\n }\n\n`\nconst NetworkLabel = styled.div`\n flex: 1 1 auto;\n color: white;\n overflow: hidden;\n height: 24px;\n font-size: 16px;\n`\nconst SelectorLabel = styled(NetworkLabel)`\n display: none;\n font-size: 16px;\n font-weight: 600;\n line-height: 24px;\n color: white;\n @media screen and (min-width: ${MEDIA_WIDTHS.upToSmall}px) {\n display: block;\n margin-right: 8px;\n }\n`\nconst FlyoutRow = styled.button<{ active: boolean }>`\n align-items: center;\n\n background-color: ${({ active, theme }) => (active ? 'rgb(47 42 60)' : 'transparent')};\n border-radius: 8px;\n cursor: pointer;\n display: flex;\n font-weight: 600;\n justify-content: space-between;\n padding: 8px 8px;\n text-align: left;\n width: 100%;\n border: none;\n`\nconst ActiveRowWrapper = styled.div`\n\n background-color: 'rgb(47 42 60)';\n\n border-radius: 8px;\n cursor: pointer;\n padding: 0px;\n width: 100%;\n`\nconst FlyoutMenu = styled.div`\n background: linear-gradient(73.6deg, #85FFC4 2.11%, #5CC6FF 42.39%, #BC85FF 85.72%);\n border: none;\n padding: 1px;\n position: absolute;\n border-radius: 20px;\n min-width: 184px;\n z-index: 99;\n @media screen and (min-width: ${MEDIA_WIDTHS.upToSmall}px) {\n\n }\n`\nconst FlyoutMenuContents = styled.div`\n align-items: flex-start;\n background-color: rgb(31 30 34);\n box-shadow: 0px 0px 1px rgba(0, 0, 0, 0.01), 0px 4px 8px rgba(0, 0, 0, 0.04), 0px 16px 24px rgba(0, 0, 0, 0.04),\n 0px 24px 32px rgba(0, 0, 0, 0.01);\n border-radius: 20px;\n display: flex;\n flex-direction: column;\n font-size: 16px;\n overflow: auto;\n padding: 16px;\n\n & > *:not(:last-child) {\n margin-bottom: 12px;\n }\n`\n\ninterface AMMProps {\n onUserClick: (value: string) => void;\n items?: string[];\n textContent: string;\n}\n\nconst AMMs = ['UniswapV2']\n\nexport default function Dropdown({\n onUserClick,\n items = AMMs,\n textContent\n}: AMMProps) {\n const activatorRef = React.useRef(null)\n const listRef = React.useRef(null)\n const [isOpen, setIsOpen] = React.useState(false)\n // const [activeIndex, setActiveIndex] = React.useState(-1)\n const [,setActiveIndex] = React.useState(-1)\n const handleClick = () => {\n setIsOpen(!isOpen)\n }\n\n React.useEffect(() => {\n if (isOpen) {\n document.addEventListener('mouseup', handleClickOutside)\n } else {\n document.removeEventListener('mouseup', handleClickOutside)\n }\n return () => {\n document.removeEventListener('mouseup', handleClickOutside)\n }\n }, [isOpen])\n\n const handleClickOutside = (event: any) => {\n if (\n listRef.current!.contains(event.target) ||\n activatorRef.current!.contains(event.target)\n ) {\n return\n }\n setIsOpen(false)\n }\n\n const userClick = (text: string) => {\n onUserClick(text)\n setIsOpen(false)\n }\n\n function Row({\n active,\n logoUrl,\n label\n }: {\n active: boolean\n logoUrl: string\n label: string\n }) {\n const rowContent = (\n userClick(label)}>\n \n {label}\n \n )\n\n if (active) {\n return (\n \n {rowContent}\n \n )\n }\n return rowContent\n }\n\n React.useEffect(() => {\n if (!isOpen) {\n setActiveIndex(-1)\n }\n }, [isOpen])\n\n return (\n \n setActiveIndex(-1)}\n >\n \n {textContent}\n \n \n\n \n \n \n {\n items.map((name) => {\n return \n })\n }\n \n \n \n \n )\n};\n","// @ts-nocheck\nimport DoubleCurrencyLogo from \"components/DoubleLogo\";\nimport Modal from \"components/Modal\";\nimport { RowBetween } from \"components/Row\";\nimport TransactionConfirmationModal, { ConfirmationModalContent } from \"components/TransactionConfirmationModal\";\nimport { utils } from \"ethers\";\nimport { useToken } from \"hooks/Tokens\";\nimport { useTotalSupply } from \"hooks/useTotalSupply\";\nimport { useV2Pair } from \"hooks/useV2Pairs\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport { ArrowLeft } from \"react-feather\";\nimport ReactGA from \"react-ga4\";\nimport { useHistory } from \"react-router-dom\";\nimport styled from \"styled-components/macro\";\nimport { MigrationDetails } from \"types/position\";\nimport { unwrappedToken } from \"utils/unwrappedToken\";\n\nimport { TransactionResponse } from \"@ethersproject/providers\";\n\nimport { useMigratorContract } from \"../../hooks/useContract\";\nimport { TransactionType } from \"../../state/transactions/actions\";\nimport { useTransactionAdder } from \"../../state/transactions/hooks\";\nimport { currencyId } from \"../../utils/currencyId\";\n\nconst HideBackground = styled.div`\n position:fixed;\n top:65px;\n right:0;\n left:0;\n bottom:0;\n background-color: black;\n`\n\nconst RemoveLiquidityWarrap = styled.div`\n max-width: 512px;\n padding: 1px;\n background: linear-gradient(73.6deg, #85FFC4 2.11%, #5CC6FF 42.39%, #BC85FF 85.72%);\n border-radius: 40px;\n position: relative;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n`\n\nconst RemoveLiquidity = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n width: 100%;\n background: #000000;\n border-radius: 40px;\n padding-bottom: 30px;\n`\n\nconst PrimaryPositionIdData = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n > * {\n margin-right: 8px;\n }\n`\n\nconst DataText = styled.div`\n font-weight: 600;\n font-size: 18px;\n color:white;\n\n ${({ theme }) => theme.mediaWidth.upToSmall`\n font-size: 14px;\n `};\n`\n\ninterface PositionListItemProps {\n setActiveKey:(value: any) => void;\n activeKey: any;\n positionDetails: MigrationDetails;\n index:number;\n }\n\nexport default function PairListItem({ setActiveKey, activeKey, positionDetails , index}: PositionListItemProps) {\n const {\n capital: token0Address,\n asset: token1Address,\n lpAmount: liquidityRaw,\n capitalImported: token0AmountRaw,\n assetImported: token1AmountRaw,\n capitalReceived: token0RAmountRaw,\n assetReceived: token1RAmountRaw,\n fee: feeAmountRaw,\n bundle: bundleID,\n id,\n status\n } = positionDetails;\n const history = useHistory()\n const [waiting, setWaiting] = useState(false);\n const [collapse, setCollapse] = useState(true);\n const [removeClicked, setRemoveClicked] = useState(false);\n const pool = window.localStorage.getItem('SELECT_POOL_MIGRATE') || 'Ubeswap';\n const migrateContract = useMigratorContract(pool.toLowerCase());\n\n useEffect(()=>{\n\t if(id === activeKey){\n\t\t setCollapse(false)\n\t } else {\n\t\t setCollapse(true)\n\t }\n\n },[activeKey, id])\n\n\n const removeOnClick = () => {\n if (!removeClicked)\n setRemoveClicked(true);\n else setRemoveClicked(false);\n\n }\n const changeCollpase = () => {\n if (collapse){\n\n\t\t setActiveKey(id);\n }\n else{\n\n setActiveKey(\"\");\n }\n }\n\n const token0 = useToken(token0Address)\n const token1 = useToken(token1Address)\n\n const currency0 = token0 ? (token0?.tokenInfo ? token0?.tokenInfo : unwrappedToken(token0)) : undefined\n const currency1 = token1 ? (token1?.tokenInfo ? token1?.tokenInfo : unwrappedToken(token1)) : undefined\n const token0Amount = utils.formatUnits(token0AmountRaw, currency0?.decimals);\n const token1Amount = utils.formatUnits(token1AmountRaw, currency1?.decimals);\n\n const token0RAmount = utils.formatUnits(token0RAmountRaw, currency0?.decimals);\n const token1RAmount = utils.formatUnits(token1RAmountRaw, currency1?.decimals);\n const feeAmount = utils.formatUnits(feeAmountRaw, currency0?.decimals);\n\n const [, pair] = useV2Pair(currency0 ?? undefined, currency1 ?? undefined, 'SELECT_POOL_MIGRATE')\n const liquidity = utils.formatUnits(liquidityRaw, pair?.liquidityToken.decimals);\n const totalSupply = useTotalSupply(pair?.liquidityToken);\n const pairToken0Amount = pair?.token0.address === token0?.address ? pair?.tokenAmounts[0].quotient : pair?.tokenAmounts[1].quotient;\n const pairToken1Amount = pair?.token0.address === token0?.address ? pair?.tokenAmounts[1].quotient : pair?.tokenAmounts[0].quotient;\n const currentToken0AmountRaw = pairToken0Amount * (liquidityRaw / totalSupply?.quotient);\n const currentToken1AmountRaw = pairToken1Amount * (liquidityRaw / totalSupply?.quotient);\n const currentToken0Amount = utils.formatUnits(currentToken0AmountRaw ? currentToken0AmountRaw.toLocaleString('fullwide', {useGrouping:false}).split(\".\")[0] : 0, currency0?.decimals);\n const currentToken1Amount = utils.formatUnits(currentToken1AmountRaw ? currentToken1AmountRaw.toLocaleString('fullwide', {useGrouping:false}).split(\".\")[0] : 0, currency1?.decimals);\n const ROI = (((Math.sqrt(currentToken0Amount * currentToken1Amount) - Math.sqrt(token0Amount * token1Amount)) / (Math.sqrt(token0Amount * token1Amount))) * 100).toFixed(2);\n const [showConfirm, setShowConfirm] = useState(false)\n const [attemptingTxn, setAttemptingTxn] = useState(false) // clicked confirm\n const [txHash, setTxHash] = useState('')\n const addTransaction = useTransactionAdder()\n const handleDismissConfirmation = useCallback(() => {\n setShowConfirm(false)\n setRemoveClicked(false)\n if (txHash) {\n history.push('/migrate/v2');\n }\n // if there was a tx hash, we want to clear the input\n setTxHash('')\n }, [txHash, history])\n\n const confimrOnClick = async () => {\n if (migrateContract) {\n setWaiting(true);\n try {\n await migrateContract.migrateLPTokens(token0Address, token1Address, bundleID).then((response: TransactionResponse) => {\n setAttemptingTxn(false)\n addTransaction(response, {\n type: TransactionType.REMOVE_LIQUIDITY_V3,\n baseCurrencyId: currencyId(currency0),\n quoteCurrencyId: currencyId(currency1),\n expectedAmountBaseRaw: currentToken0AmountRaw ? currentToken0AmountRaw.toString() : \"0\",\n expectedAmountQuoteRaw: currentToken1AmountRaw ? currentToken1AmountRaw.toString() : \"0\",\n })\n setWaiting(false);\n setTxHash(response.hash)\n setShowConfirm(true);\n ReactGA.event({\n category: 'Liquidity',\n action: 'Migrate',\n label: [currency0?.symbol, currency1?.symbol].join('/'),\n })\n })\n\n }\n catch (error) {\n console.error('Failed to send transaction', error)\n setAttemptingTxn(false)\n // we only care if the error is something _other_ than the user rejected the tx\n if (error?.code !== 4001) {\n console.error(error)\n }\n }\n setWaiting(false);\n\n }\n }\n const StyledArrowLeft = styled(ArrowLeft)`\n color:white;\n `\n return (\n <>\n \n \n \n \n \n \n
\n

Migrate Liquidity

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

Capital in the Pool

\n

\n {(+currentToken0Amount).toFixed(6)}\n {currency0?.symbol}\n

\n
\n
\n

Token in the Pool

\n

\n {(+currentToken1Amount).toFixed(6)}\n {currency1?.symbol}\n

\n
\n
\n

Capital imported

\n

\n {(+token0Amount).toFixed(6)}\n {currency0?.symbol}\n

\n
\n
\n

Token imported

\n

\n {(+token1Amount).toFixed(6)}\n {currency1?.symbol}\n

\n
\n
\n

Return

\n

\n { ROI }%\n {'ROI'}\n

\n
\n\n
\n \n
\n
\n
\n
\n
\n\n
\n (\n (\n \n )}\n />\n )}\n />\n \n <>{!removeClicked ?\n <>\n
\n
\n
\n
\n \n {\n currency0 && currency1 &&\n <>\n
\n \n
\n \n  {currency0?.symbol} {(currency0 && currency1) ? \"/\" : \"\"} {currency1?.symbol}  \n (#{bundleID})  \n {status === \"Inactive\" ? \"(Closed)\": \"\"}\n \n  \n \n }\n
\n
\n
\n \"up\"\n \"down\"\n
\n
\n
\n
\n
\n

Pair imported

\n

\n {liquidity < 0.01 ? (+liquidity).toFixed(6) : (+liquidity).toFixed(6)}\n {\"LP\"}\n

\n
\n
\n

Capital imported

\n

\n {(+token0Amount).toFixed(6)}\n {currency0?.symbol}\n

\n
\n
\n

Token imported

\n

\n {(+token1Amount).toFixed(6)}\n {currency1?.symbol}\n

\n
\n {status === \"Inactive\" ?<>\n
\n

Protocol fee deducted

\n

\n {(+feeAmount).toFixed(6)}\n {currency0?.symbol}\n

\n
\n
\n

Captal received

\n

\n {(+token0RAmount).toFixed(6)}\n {currency0?.symbol}\n

\n
\n
\n

Token deposited

\n

\n {(+token1RAmount).toFixed(6)}\n {currency1?.symbol}\n

\n
\n :<>\n
\n

Pool share

\n

\n { (liquidityRaw / totalSupply?.quotient * 100).toFixed(4)} %\n {'Pool'}\n

\n
\n
\n

Pool capital amount

\n

\n {(+currentToken0Amount).toFixed(6)}\n {currency0?.symbol}\n

\n
\n
\n

Pool token amount

\n

\n {(+currentToken1Amount).toFixed(6)}\n {currency1?.symbol}\n

\n
}\n\n {status === \"Inactive\" ? <>\n :\n
\n \n
\n }\n\n
\n
\n \n :\n
\n\n
\n }\n \n
\n \n )\n}\n","// @ts-nocheck\nimport { ButtonText } from \"components/Button\";\nimport PairListItem from \"components/PairListItem\";\nimport React, { useState } from \"react\";\nimport styled from \"styled-components/macro\";\nimport { MEDIA_WIDTHS } from \"theme\";\nimport { PositionDetails } from \"types/position\";\n\nconst DesktopHeader = styled.div`\n display: none;\n font-size: 14px;\n font-weight: 600;\n padding: 8px;\n\n @media screen and (min-width: ${MEDIA_WIDTHS.upToSmall}px) {\n align-items: center;\n display: flex;\n justify-content: space-between;\n & > div:last-child {\n text-align: right;\n margin-right: 12px;\n }\n }\n`\n\nconst MobileHeader = styled.div`\n font-weight: medium;\n font-size: 16px;\n font-weight: 600;\n padding: 8px;\n @media screen and (min-width: ${MEDIA_WIDTHS.upToSmall}px) {\n display: none;\n }\n`\n\ntype PositionListProps = React.PropsWithChildren<{\n positions: PositionDetails[]\n setUserHideClosedPositions: any\n userHideClosedPositions: boolean\n}>\n \n \nexport default function PairList({\n positions,\n setUserHideClosedPositions,\n userHideClosedPositions,\n}: PositionListProps) {\n \n const [activeKey, setActiveKey] = useState(\"\");\n \n return (\n <>\n \n
\n Your positions\n {positions && ' (' + positions.length + ')'}\n
\n setUserHideClosedPositions(!userHideClosedPositions)}>\n {!userHideClosedPositions ? \"Hide\" : \"Show\"} closed positions\n \n
\n \n Your positions\n \n {positions.map((p,index) => {\n return \n })}\n \n )\n}\n","import { LoadingRows as BaseLoadingRows } from 'components/Loader/styled'\nimport { Text } from 'rebass'\nimport styled from 'styled-components/macro'\n\nexport const Wrapper = styled.div`\n position: relative;\n padding: 20px;\n`\n\nexport const ClickableText = styled(Text)`\n :hover {\n cursor: pointer;\n }\n color: ${({ theme }) => theme.primary1};\n`\nexport const MaxButton = styled.button<{ width: string }>`\n padding: 0.5rem 1rem;\n background-color: ${({ theme }) => theme.primary5};\n border: 1px solid ${({ theme }) => theme.primary5};\n border-radius: 0.5rem;\n font-size: 1rem;\n ${({ theme }) => theme.mediaWidth.upToSmall`\n padding: 0.25rem 0.5rem;\n `};\n font-weight: 600;\n cursor: pointer;\n margin: 0.25rem;\n overflow: hidden;\n color: ${({ theme }) => theme.primary1};\n :hover {\n border: 1px solid ${({ theme }) => theme.primary1};\n }\n :focus {\n border: 1px solid ${({ theme }) => theme.primary1};\n outline: none;\n }\n`\n\nexport const Dots = styled.span`\n &::after {\n display: inline-block;\n animation: ellipsis 1.25s infinite;\n content: '.';\n width: 1em;\n text-align: left;\n }\n @keyframes ellipsis {\n 0% {\n content: '.';\n }\n 33% {\n content: '..';\n }\n 66% {\n content: '...';\n }\n }\n`\n\nexport const LoadingRows = styled(BaseLoadingRows)`\n min-width: 75%;\n max-width: 960px;\n grid-column-gap: 0.5em;\n grid-row-gap: 0.8em;\n grid-template-columns: repeat(3, 1fr);\n\n & > div:nth-child(4n + 1) {\n grid-column: 1 / 3;\n }\n & > div:nth-child(4n) {\n grid-column: 3 / 4;\n margin-bottom: 2em;\n }\n`\n","// @ts-nocheck\n\nimport { ButtonPrimary, ButtonText } from \"components/Button\";\nimport { AutoColumn } from \"components/Column\";\nimport Dropdown from \"components/Dropdown\";\nimport { SwapPoolTabs } from \"components/NavigationTabs\";\nimport PairList from \"components/PairList\";\nimport { RowBetween, RowFixed } from \"components/Row\";\nimport { darken } from \"polished\";\nimport { useContext, useEffect, useState } from \"react\";\nimport { Activity } from \"react-feather\";\nimport { Link } from \"react-router-dom\";\nimport { useWalletModalToggle } from \"state/application/hooks\";\nimport styled, { ThemeContext } from \"styled-components/macro\";\nimport { ThemedText } from \"theme\";\nimport { UnsupportedChainIdError, useWeb3React } from \"packages/core\";\nimport { gql, useQuery } from \"@apollo/client\";\nimport { ButtonSecondary } from \"../../components/Button\";\nimport { AMMS_PER_NETWORK } from \"../../constants/amm\";\nimport useInterval from \"../../lib/hooks/useInterval\";\nimport { LoadingRows } from \"./styleds\";\nimport { ALL_SUPPORTED_CHAIN_IDS } from \"constants/chains\";\nrequire('./style.css');\n\n\nconst PageWrapper = styled(AutoColumn)`\n max-width: 870px;\n\n ${({ theme }) => theme.mediaWidth.upToMedium`\n max-width: 800px;\n `};\n\n ${({ theme }) => theme.mediaWidth.upToSmall`\n max-width: 500px;\n width:100%;\n `};\n`\nconst TitleRow = styled(RowBetween)`\n color: ${({ theme }) => theme.text2};\n width: 512px;\n ${({ theme }) => theme.mediaWidth.upToSmall`\n flex-wrap: wrap;\n gap: 12px;\n width: 100%;\n`};\n`\nconst ButtonRow = styled(RowFixed)`\n & > *:not(:last-child) {\n margin-left: 0px;\n }\n width: 100%;\n flex-direction: row;\n justify-content: space-between;\n`\nconst NoLiquidity = styled.div`\n align-items: center;\n display: flex;\n flex-direction: column;\n justify-content: center;\n margin: auto;\n width:416px;\n ${({ theme }) => theme.mediaWidth.upToSmall`\n width: 300px;\n `};\n`\nconst ResponsiveButtonPrimary = styled(ButtonPrimary)`\n border-radius: 100px;\n padding: 8px 8px;\n width: 184px;\n height:40px;\n border: none;\n font-size:16px;\n font-weight:600;\n ${({ theme }) => theme.mediaWidth.upToSmall`\n width: 48%;\n `};\n`\n\nconst MainContentWrapper = styled.main`\n background-color: ${({ theme }) => theme.bg0};\n\n display: flex;\n flex-direction: column;\n`\nconst Web3StatusGeneric = styled(ButtonSecondary)`\n ${({ theme }) => theme.flexRowNoWrap}\n width: 100%;\n align-items: center;\n padding: 0.5rem;\n border-radius: 100px;\n cursor: pointer;\n user-select: none;\n height: 36px;\n margin-right: 0px;\n margin-left: 0px;\n :focus {\n outline: none;\n }\n`\n\nconst Web3StatusError = styled(Web3StatusGeneric)`\n background-color: ${({ theme }) => theme.red1};\n color: ${({ theme }) => theme.white};\n border: none;\n font-weight: 600;\n margin-top: 2em;\n height: 40px;\n :hover,\n :focus {\n background-color: ${({ theme }) => darken(0.1, theme.red1)};\n }\n`\n\nconst NetworkIcon = styled(Activity)`\n margin-left: 0.25rem;\n margin-right: 0.5rem;\n width: 16px;\n height: 16px;\n`\n\nconst Text = styled.p`\n flex: 1 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n margin: 0 0.5rem 0 0.25rem;\n font-size: 1rem;\n width: fit-content;\n font-weight: 600;\n \n`\n\nfunction PositionsLoadingPlaceholder() {\n return (\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n )\n}\n\nconst MIGRATION_QUERY = gql`\n query GetMigrations($account: String, $amm: String) {\n actives: migrations(\n where: {owner: $account, ammType : $amm, status: \"Active\"}\n orderBy: asset\n orderDirection: asc\n orderBy: capital\n orderDirection: asc\n ) {\n id\n owner\n asset\n capital\n pair\n bundle\n capitalImported\n assetImported\n assetReceived\n capitalReceived\n fee\n lpAmount\n status\n }\n inactives: migrations(\n where: {owner: $account, ammType : $amm, status: \"Inactive\"}\n orderBy: asset\n orderDirection: asc\n orderBy: capital\n orderDirection: asc\n ) {\n id\n owner\n asset\n capital\n pair\n bundle\n capitalImported\n assetImported\n assetReceived\n capitalReceived\n fee\n lpAmount\n status\n }\n}\n`\n\nconst MIGRATION_QUERY_HIDE = gql`\n query GetMigrations($account: String, $amm: String) {\n migrations(where: {status: \"Active\", owner: $account, ammType : $amm}) {\n id\n owner\n asset\n capital\n pair\n bundle\n capitalImported\n assetImported\n assetReceived\n capitalReceived\n fee\n lpAmount\n status\n }\n }\n`\n\nexport default function Pair() {\n const { account, chainId, error } = useWeb3React()\n const toggleWalletModal = useWalletModalToggle()\n const theme = useContext(ThemeContext)\n const [userHideClosedPositions, setUserHideClosedPositions] = useState(false);\n const [textContent, setContent] = useState('Ubeswap')\n const [migrateQuery, setMigrateQuery] = useState(MIGRATION_QUERY)\n const showConnectAWallet = Boolean(!account)\n\n const [data, setData] = useState([])\n const { loading, data: queryData, refetch } = useQuery(migrateQuery, {\n pollInterval: 1000,\n variables: { account, amm: (textContent) },\n });\n\n useInterval(() => refetch({ account: account?.toLowerCase(), amm: (textContent) }), 1000)\n\n useEffect(() => {\n (async () => {\n setMigrateQuery(userHideClosedPositions ? MIGRATION_QUERY_HIDE : MIGRATION_QUERY)\n await refetch({ account: account?.toLowerCase(), amm: (textContent) })\n })()\n }, [userHideClosedPositions, textContent, account, refetch])\n\n useEffect(() => {\n const pool = window.localStorage.getItem('SELECT_POOL_MIGRATE') || 'Ubeswap'\n if(AMMS_PER_NETWORK[chainId] !== undefined && !AMMS_PER_NETWORK[chainId].includes(pool)) {\n window.localStorage.setItem('SELECT_POOL_MIGRATE', AMMS_PER_NETWORK[chainId][0])\n setContent(AMMS_PER_NETWORK[chainId][0]);\n } else {\n setContent(pool);\n }\n }, [setContent, chainId])\n\n useEffect(() => {\n if (userHideClosedPositions) {\n setData(queryData)\n } else {\n if (queryData) {\n setData({ migrations: queryData.actives ? [...queryData.actives, ...queryData.inactives] : queryData.inactives })\n }\n }\n }, [queryData, userHideClosedPositions])\n\n const onChangeContent = (value) => {\n setContent(value)\n window.localStorage.setItem('SELECT_POOL_MIGRATE', value)\n }\n\n return (\n <>\n \n \n \n \n \n \n \n \n {/* */}\n \n \n Import\n \n \n \n\n
\n \n {\n showConnectAWallet ?\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n setUserHideClosedPositions(!userHideClosedPositions)}\n >\n Your positions will appear here\n \n {\n error instanceof UnsupportedChainIdError ?\n \n \n {error instanceof UnsupportedChainIdError ? <>Wrong Network : Error}\n \n : showConnectAWallet && (\n\n \n Connect Wallet\n \n )\n }\n \n :\n loading ? (\n \n ) : (data && data.migrations && data.migrations.length > 0) ? (\n \n ) : (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n setUserHideClosedPositions(!userHideClosedPositions)}\n >\n Your positions will appear here\n \n {\n error instanceof UnsupportedChainIdError ?\n \n \n {error instanceof UnsupportedChainIdError ? <>Wrong Network : Error}\n \n : showConnectAWallet && (\n\n \n Connect Wallet\n \n )\n }\n \n\n )}\n \n
\n\n {/* \n \n */}\n
\n
\n
\n \n )\n}\n","// @ts-nocheck\nimport DoubleCurrencyLogo from \"components/DoubleLogo\";\nimport Modal from \"components/Modal\";\nimport { RowBetween } from \"components/Row\";\nimport TransactionConfirmationModal, { ConfirmationModalContent } from \"components/TransactionConfirmationModal\";\nimport { utils } from \"ethers\";\nimport { useToken } from \"hooks/Tokens\";\nimport useActiveWeb3React from \"hooks/useActiveWeb3React\";\nimport { useVaultManagerContract } from \"hooks/useContract\";\nimport { useTotalSupply } from \"hooks/useTotalSupply\";\nimport { useV2Pair } from \"hooks/useV2Pairs\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport { ArrowLeft } from \"react-feather\";\nimport ReactGA from \"react-ga4\";\nimport { useHistory } from \"react-router-dom\";\nimport styled from \"styled-components/macro\";\nimport { PositionDetails } from \"types/position\";\nimport { unwrappedToken } from \"utils/unwrappedToken\";\n\nimport { TransactionResponse } from \"@ethersproject/providers\";\nimport { CurrencyAmount, Price, Token } from \"@uniswap/sdk-core\";\nimport { Position } from \"@uniswap/v3-sdk\";\n\nimport {\n DAI,\n USDC_MAINNET,\n USDT,\n WBTC,\n WRAPPED_NATIVE_CURRENCY\n} from \"../../constants/tokens\";\nimport {\n ApprovalState,\n useApproveCallback\n} from \"../../hooks/useApproveCallback\";\nimport { TransactionType } from \"../../state/transactions/actions\";\nimport { useTransactionAdder } from \"../../state/transactions/hooks\";\nimport { useTokenBalance } from \"../../state/wallet/hooks\";\nimport { currencyId } from \"../../utils/currencyId\";\n\nconst HideBackground = styled.div`\n position:fixed;\n top:65px;\n right:0;\n left:0;\n bottom:0;\n background-color: black;\n`\n\nconst RemoveLiquidityWarrap = styled.div`\n max-width: 512px;\n padding: 1px;\n background: linear-gradient(73.6deg, #85FFC4 2.11%, #5CC6FF 42.39%, #BC85FF 85.72%);\n border-radius: 40px;\n position: relative;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n`\n\nconst RemoveLiquidity = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n width: 100%;\n background: #000000;\n border-radius: 40px;\n padding-bottom: 30px;\n`\n\nconst PrimaryPositionIdData = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n > * {\n margin-right: 8px;\n }\n`\n\nconst DataText = styled.div`\n font-weight: 600;\n font-size: 18px;\n color:white;\n\n ${({ theme }) => theme.mediaWidth.upToSmall`\n font-size: 14px;\n `};\n`\n\nexport function getPriceOrderingFromPositionForUI(position?: Position): {\n priceLower?: Price\n priceUpper?: Price\n quote?: Token\n base?: Token\n} {\n if (!position) {\n return {}\n }\n\n const token0 = position.amount0.currency\n const token1 = position.amount1.currency\n\n // if token0 is a dollar-stable asset, set it as the quote token\n const stables = [DAI, USDC_MAINNET, USDT]\n if (stables.some((stable) => stable.equals(token0))) {\n return {\n priceLower: position.token0PriceUpper.invert(),\n priceUpper: position.token0PriceLower.invert(),\n quote: token0,\n base: token1,\n }\n }\n\n // if token1 is an ETH-/BTC-stable asset, set it as the base token\n const bases = [...Object.values(WRAPPED_NATIVE_CURRENCY), WBTC]\n if (bases.some((base) => base && base.equals(token1))) {\n return {\n priceLower: position.token0PriceUpper.invert(),\n priceUpper: position.token0PriceLower.invert(),\n quote: token0,\n base: token1,\n }\n }\n\n // if both prices are below 1, invert\n if (position.token0PriceUpper.lessThan(1)) {\n return {\n priceLower: position.token0PriceUpper.invert(),\n priceUpper: position.token0PriceLower.invert(),\n quote: token0,\n base: token1,\n }\n }\n\n // otherwise, just return the default\n return {\n priceLower: position.token0PriceLower,\n priceUpper: position.token0PriceUpper,\n quote: token1,\n base: token0,\n }\n}\n\ninterface PositionListItemProps {\n setActiveKey:(value: string) => void;\n activeKey: string;\n positionDetails: PositionDetails;\n index:number;\n }\n\nexport default function PositionListItem({ setActiveKey, activeKey, positionDetails , index}: PositionListItemProps) {\n const {\n capital: token0Address,\n asset: token1Address,\n lpAmount: liquidityRaw,\n capitalAmount: token0AmountRaw,\n assetAmount: token1AmountRaw,\n bundle: bundleID,\n id,\n } = positionDetails;\n const { account } = useActiveWeb3React()\n const history = useHistory()\n const [collapse, setCollapse] = useState(true);\n const [waiting, setWaiting] = useState(false);\n const [removeClicked, setRemoveClicked] = useState(false);\n const pool = window.localStorage.getItem('SELECT_POOL') || 'Ubeswap'\n const vaultManager = useVaultManagerContract(pool.toLowerCase(), true);\n useEffect(()=>{\n\t if(id===activeKey){\n\t\t setCollapse(false)\n\t }else{\n\t\t setCollapse(true)\n\t }\n\t \n },[activeKey, id])\n\n \n const removeOnClick = () => {\n if (!removeClicked)\n setRemoveClicked(true);\n else setRemoveClicked(false);\n \n }\n const changeCollpase = () => {\n if (collapse){\n setActiveKey(id);\n } else{\n setActiveKey(\"\");\n }\n }\n\n const token0 = useToken(token0Address)\n const token1 = useToken(token1Address)\n\n const currency0 = token0 ? (token0.tokenInfo ? token0.tokenInfo : unwrappedToken(token0)) : undefined\n const currency1 = token1 ? (token1.tokenInfo ? token1.tokenInfo : unwrappedToken(token1)) : undefined\n \n const token0Amount = utils.formatUnits(token0AmountRaw, currency0?.decimals);\n const token1Amount = utils.formatUnits(token1AmountRaw, currency1?.decimals);\n const [, pair] = useV2Pair(currency0 ?? undefined, currency1 ?? undefined, 'SELECT_POOL')\n const liquidity = utils.formatUnits(liquidityRaw, pair?.liquidityToken.decimals);\n const totalSupply = useTotalSupply(pair?.liquidityToken);\n\n const pairToken0Amount = pair?.token0.address === token0?.address ? pair?.tokenAmounts[0].quotient : pair?.tokenAmounts[1].quotient;\n const pairToken1Amount = pair?.token0.address === token0?.address ? pair?.tokenAmounts[1].quotient : pair?.tokenAmounts[0].quotient;\n const currentToken0AmountRaw = pairToken0Amount * (liquidityRaw / totalSupply?.quotient);\n const currentToken1AmountRaw = pairToken1Amount * (liquidityRaw / totalSupply?.quotient);\n const currentToken0Amount = utils.formatUnits(currentToken0AmountRaw ? currentToken0AmountRaw.toLocaleString('fullwide', {useGrouping:false}).split(\".\")[0] : 0, currency0?.decimals);\n const currentToken1Amount = utils.formatUnits(currentToken1AmountRaw ? currentToken1AmountRaw.toLocaleString('fullwide', {useGrouping:false}).split(\".\")[0] : 0, currency1?.decimals);\n let repayAmount = parseFloat(token1Amount) - parseFloat(currentToken1Amount) > 0 ? (parseFloat(token1Amount) - (parseFloat(currentToken1Amount) * 0.999999)) : 0.000001;\n if (parseFloat(token1Amount) - parseFloat(currentToken1Amount) < 0) {\n repayAmount = 0;\n }\n const ROI = (((Math.sqrt(currentToken0Amount * currentToken1Amount) - Math.sqrt(token0Amount * token1Amount)) / (Math.sqrt(token0Amount * token1Amount))) * 200).toFixed(2);\n const [showConfirm, setShowConfirm] = useState(false)\n const [attemptingTxn, setAttemptingTxn] = useState(false) // clicked confirm\n const [txHash, setTxHash] = useState('')\n const handleDismissConfirmation = useCallback(() => {\n setShowConfirm(false)\n setRemoveClicked(false)\n // if there was a tx hash, we want to clear the input\n if (txHash) {\n history.push('/pool')\n }\n setTxHash('')\n }, [txHash, history])\n\n const userTokenBalance = useTokenBalance(account ?? undefined, token1);\n let approveAmount: CurrencyAmount | undefined\n if (token1) {\n approveAmount = CurrencyAmount.fromRawAmount(\n token1,\n utils.parseUnits((Math.ceil(repayAmount * 1000000) / 1000000).toString(), currency1?.decimals)\n )\n }\n\n const [approval, approveCallback] = useApproveCallback(approveAmount, vaultManager?.address);\n const addTransaction = useTransactionAdder()\n const confimrOnClick = async () => {\n if (vaultManager) {\n setWaiting(true);\n try {\n await vaultManager.removeLiquidity(token0Address, token1Address, bundleID, utils.parseUnits((Math.ceil(repayAmount * 1000000) / 1000000).toString(), currency1?.decimals))\n .then(async (response: TransactionResponse) => {\n setAttemptingTxn(false)\n addTransaction(response, {\n type: TransactionType.REMOVE_LIQUIDITY_V3,\n baseCurrencyId: currencyId(currency0),\n quoteCurrencyId: currencyId(currency1),\n expectedAmountBaseRaw: utils.parseUnits(currentToken0Amount, currency0?.decimals).toString(),\n expectedAmountQuoteRaw: utils.parseUnits(currentToken1Amount, currency1?.decimals).toString(),\n })\n setTxHash(response.hash)\n setShowConfirm(true);\n await response.wait()\n ReactGA.event({\n category: 'Liquidity',\n action: 'Remove',\n label: [currency0?.symbol, currency1?.symbol].join('/'),\n })\n setWaiting(false);\n })\n \n }\n catch (error) {\n console.error('Failed to send transaction', error)\n setAttemptingTxn(false)\n setWaiting(false);\n // we only care if the error is something _other_ than the user rejected the tx\n if (error?.code !== 4001) {\n console.error(error)\n }\n }\n }\n removeOnClick();\n }\n const StyledArrowLeft = styled(ArrowLeft)`\n\n color:white;\n` \n return (\n // \n <>\n \n \n \n \n \n \n
\n

Close Position

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

Capital to receive

\n

\n {(+currentToken0Amount).toFixed(6)}\n {currency0?.symbol} \n

\n
\n
\n

Token to receive

\n

\n {(+currentToken1Amount).toFixed(6)}\n {currency1?.symbol} \n

\n
\n
\n

LP supplied

\n

\n {(+liquidity).toFixed(6)}\n LP \n

\n
\n
\n

Pool Share

\n

\n {(liquidityRaw / totalSupply?.quotient * 100).toFixed(4)} %\n Pool\n

\n
\n
\n

Return

\n

\n {ROI} %\n ROI\n

\n
\n
\n {\n repayAmount > 0 ? \n <>\n
To close your position, you must send {repayAmount > 0 ? Math.ceil(repayAmount * 1000000) / 1000000 : 0} {currency1?.symbol}.\n Transactions will fail if too few tokens are received.
\n

{repayAmount > 0 ? Math.ceil(repayAmount * 1000000) / 1000000 : 0}

\n

Balance: {userTokenBalance?.toFixed(6)} {currency1?.symbol}

\n \n : <>\n }\n
\n { \n userTokenBalance && parseFloat(utils.formatEther(userTokenBalance?.quotient.toString())) >= parseFloat(utils.formatEther(approveAmount?.quotient.toString())) ? \n (approval === ApprovalState.NOT_APPROVED ? \n : approval === ApprovalState.PENDING ?
\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 <>{!removeClicked ? \n <>\n
\n
\n
\n
\n \n {\n currency0 && currency1 &&\n <>\n \n \n  {currency0?.symbol} / {currency1?.symbol}  \n (#{bundleID})  \n {liquidityRaw === 0 ? \"(Closed)\": \"\"}\n \n  \n \n }\n \n
\n
\n {\"up\"}\n {\"down\"}\n
\n
\n
\n
\n
\n

Capital supplied

\n

{(+token0Amount).toFixed(6)} {currency0?.symbol}

\n
\n
\n

Token matched

\n

{(+token1Amount).toFixed(6)} {currency1?.symbol}

\n
\n
\n

LP token amount

\n

{(+liquidity).toFixed(6)} {\"LP\"}

\n
\n
\n

Your pool share

\n

{ (liquidityRaw / totalSupply?.quotient * 100).toFixed(4)} %

\n
\n
\n

Pool capital amount

\n

{(+currentToken0Amount).toFixed(6)} {currency0?.symbol}

\n
\n
\n

Pool token amount

\n

{(+currentToken1Amount).toFixed(6)} {currency1?.symbol}

\n
\n \n
\n \n
\n
\n
\n \n :\n
\n \n
\n }\n \n
\n \n )\n}\n","// @ts-nocheck\nimport DoubleCurrencyLogo from \"components/DoubleLogo\";\nimport { RowBetween } from \"components/Row\";\nimport { utils } from \"ethers\";\nimport { useToken } from \"hooks/Tokens\";\nimport useActiveWeb3React from \"hooks/useActiveWeb3React\";\nimport { useEffect, useState } from \"react\";\nimport styled from \"styled-components/macro\";\nimport { PositionDetails } from \"types/position\";\nimport { unwrappedToken } from \"utils/unwrappedToken\";\n\nimport { gql, useQuery } from \"@apollo/client\";\n\nconst PrimaryPositionIdData = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n > * {\n margin-right: 8px;\n }\n`\n\nconst DataText = styled.div`\n font-weight: 600;\n font-size: 18px;\n color:white;\n\n ${({ theme }) => theme.mediaWidth.upToSmall`\n font-size: 14px;\n `};\n`\n\ninterface PositionListItemProps {\n setActiveKey:(value: bundleID) => void;\n activeKey: bundleID;\n key: string;\n index: number;\n positionDetails: PositionDetails;\n }\n\nconst IMPORT_HISTORY_QUERY = gql`\n query GetHistories($bundle: String, $owner: String, $capital: String, $asset: String) {\n histories(where: {bundle: $bundle, owner: $owner, capital: $capital, asset: $asset, action: \"AddLiquidity\"}) {\n lpAmount\n capitalAmount\n assetAmount\n action\n }\n }\n`\n\nconst EXPORT_HISTORY_QUERY = gql`\n query GetHistories($bundle: String, $owner: String, $capital: String, $asset: String) {\n histories(where: {bundle: $bundle, owner: $owner, capital: $capital, asset: $asset, action: \"RemoveLiquidity\"}) {\n lpAmount\n capitalAmount\n assetAmount\n action\n }\n }\n`\n\nexport default function PositionListItemClosed({ setActiveKey, activeKey, index, positionDetails }: PositionListItemProps) {\n const {\n capital: token0Address,\n asset: token1Address,\n bundle: bundleID,\n fee,\n id\n } = positionDetails;\n const { account } = useActiveWeb3React()\n const [collapse, setCollapse] = useState(true);\n const removeClicked = false;\n\n const { data: importedData } = useQuery(IMPORT_HISTORY_QUERY, {\n variables: { bundle: bundleID, owner: account.toLowerCase(), capital: token0Address, asset: token1Address },\n });\n const { data: exportedData } = useQuery(EXPORT_HISTORY_QUERY, {\n variables: { bundle: bundleID, owner: account.toLowerCase(), capital: token0Address, asset: token1Address },\n });\n\n useEffect(()=>{\n\t if(id===activeKey){\n\t\t setCollapse(false)\n\t }else{\n\t\t setCollapse(true)\n\t }\n\t \n },[activeKey, id])\n\n const changeCollpase = () => {\n if (collapse){\n setActiveKey(id);\n }\n else{\n setActiveKey(\"\");\n }\n }\n\n const token0 = useToken(token0Address)\n const token1 = useToken(token1Address)\n\n const currency0 = token0 ? (token0.tokenInfo ? token0.tokenInfo : unwrappedToken(token0)) : undefined\n const currency1 = token1 ? (token1.tokenInfo ? token1.tokenInfo : unwrappedToken(token1)) : undefined\n\n return (\n // \n <>\n \n <>{!removeClicked ? \n <>\n
\n
\n
\n
\n \n {\n currency0 && currency1 &&\n <>\n \n \n  {currency0?.symbol} {(currency0 && currency1) ? \"/\" : \"\"} {currency1?.symbol}  \n (#{bundleID})  \n {\"(Closed)\"}\n \n  \n \n }\n \n
\n
\n \"up\"\n \"down\"\n
\n
\n
\n
\n {/*
*/}\n {/*

Pair imported

*/}\n {/*

{(+(utils.formatUnits(importedData?.lpAmount ? importedData?.lpAmount : 0, 18))).toFixed(8)} LP

*/}\n {/*
*/}\n
\n

Capital supplied

\n

{(+utils.formatUnits(importedData?.histories[0]?.capitalAmount ? importedData?.histories[0]?.capitalAmount : 0, currency0?.decimals)).toFixed(6)} {currency0?.symbol}

\n
\n {/*
\n

Token imported

\n

{(+utils.formatUnits(importedData?.assetAmount ? importedData?.assetAmount : 0, currency1?.decimals)).toFixed(8)} {currency1?.symbol}

\n
*/}\n
\n

Capital Received

\n

{(+utils.formatUnits(exportedData?.histories[0]?.capitalAmount ? exportedData?.histories[0]?.capitalAmount : 0, currency0?.decimals)).toFixed(6)} {currency0?.symbol}

\n
\n
\n

Token received

\n

{(+utils.formatUnits(exportedData?.histories[0]?.assetAmount ? exportedData?.histories[0]?.assetAmount : 0, currency1?.decimals)).toFixed(6)} {currency1?.symbol}

\n
\n
\n

Protocol Fee

\n

{(+utils.formatUnits(fee ? fee : 0, currency0?.decimals)).toFixed(6)} {currency0?.symbol}

\n
\n
\n
\n \n :\n
\n \n
\n }\n \n
\n \n )\n}\n","// @ts-nocheck\nimport CurrencyLogo from \"components/CurrencyLogo\";\nimport { RowBetween } from \"components/Row\";\nimport TransactionConfirmationModal, { ConfirmationModalContent } from \"components/TransactionConfirmationModal\";\nimport { utils } from \"ethers\";\nimport { useToken } from \"hooks/Tokens\";\nimport { useAssetVaultContract } from \"hooks/useContract\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport styled from \"styled-components/macro\";\nimport { AssetDetails } from \"types/position\";\nimport { unwrappedToken } from \"utils/unwrappedToken\";\n\nimport { TransactionResponse } from \"@ethersproject/providers\";\n\nimport { TransactionType } from \"../../state/transactions/actions\";\nimport { useTransactionAdder } from \"../../state/transactions/hooks\";\nimport { useTokenBalance } from \"../../state/wallet/hooks\";\n\nconst PrimaryPositionIdData = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n\n > * {\n margin-right: 8px;\n }\n`\n\nconst DataText = styled.div`\n font-weight: 600;\n font-size: 18px;\n color: white;\n\n ${({ theme }) => theme.mediaWidth.upToSmall`\n font-size: 14px;\n `};\n`\n\ninterface AssetListItemProps {\n setActiveKey: (value: bundleID) => void;\n activeKey: bundleID;\n key: string;\n positionDetails: AssetDetails;\n index: number,\n}\n\nexport default function AssetListItem({ setActiveKey, activeKey, key, positionDetails, index }: AssetListItemProps) {\n const {\n asset: tokenAddress,\n amount: tokenAmountRaw\n } = positionDetails\n\n // const { chainId } = useActiveWeb3React()\n const assetManager = useAssetVaultContract()\n const addTransaction = useTransactionAdder()\n const token = useToken(tokenAddress)\n const currency = token ? (token.tokenInfo ? token.tokenInfo : unwrappedToken(token)) : undefined\n const tokenAmount = utils.formatUnits(tokenAmountRaw, currency?.decimals)\n const userTokenBalanceRaw = useTokenBalance(assetManager?.address ?? undefined, token)\n const userTokenBalance = utils.formatUnits(userTokenBalanceRaw ? userTokenBalanceRaw?.quotient.toString() : \"0\", currency?.decimals)\n // speed up popup dismisall time if on L2\n // const isL2 = Boolean(chainId && L2_CHAIN_IDS.includes(chainId))\n const [collapse, setCollapse] = useState(true)\n const history = useHistory()\n const [amount, setAmount] = useState('')\n const [showConfirm, setShowConfirm] = useState(false)\n const [attemptingTxn, setAttemptingTxn] = useState(false) // clicked confirm\n const [txHash, setTxHash] = useState('')\n const [loading, setLoading] = useState(false)\n const [invalid, setInvalid] = useState(false)\n const [insufficient, setInsufficient] = useState(false)\n\n useEffect(() => {\n if (tokenAddress === activeKey) {\n setCollapse(false)\n } else {\n setCollapse(true)\n }\n\n }, [activeKey, tokenAddress])\n\n const handleDismissConfirmation = useCallback(() => {\n setShowConfirm(false)\n // if there was a tx hash, we want to clear the input\n if (txHash) {\n setTxHash('')\n }\n history.go(0)\n }, [txHash, history])\n\n const onChangeCollapse = () => {\n if (collapse) {\n setActiveKey(tokenAddress)\n } else {\n setActiveKey('')\n }\n }\n\n const onConfirmClick = async () => {\n const value = parseFloat(amount)\n if (assetManager && value > 0 && value <= parseFloat(tokenAmount)) {\n try {\n setLoading(true)\n const withdrawAmount = utils.parseUnits(amount, currency?.decimals).toString();\n await assetManager.withdraw(tokenAddress, withdrawAmount)\n .then(async (response: TransactionResponse) => {\n addTransaction(response, {\n type: TransactionType.WITHDRAW_POSITION\n })\n setTxHash(response.hash)\n setAttemptingTxn(false)\n setShowConfirm(true);\n await response.wait()\n setLoading(false)\n // setShowConfirm(true)\n })\n } catch (error) {\n setLoading(false)\n console.error('Failed to send transaction', error)\n // we only care if the error is something _other_ than the user rejected the tx\n if (error?.code !== 4001) {\n console.error(error)\n }\n } finally {\n setAttemptingTxn(false)\n }\n } else {\n setInvalid(true)\n /*addPopup(\n {\n reason: 'Invalid Withdraw Amount'\n },\n Date.now(),\n isL2 ? L2_TXN_DISMISS_MS : DEFAULT_TXN_DISMISS_MS\n )*/\n }\n }\n\n const onAmountChange = (e) => {\n const value = e.target.value\n const splited = value.toString().split('.')\n if (splited.length > 1) {\n setInvalid(splited[1].length > 18)\n } else {\n setInvalid(false)\n }\n const maxAmount = (parseFloat(userTokenBalance) > parseFloat(tokenAmount) ? parseFloat(tokenAmount) : parseFloat(userTokenBalance));\n setInsufficient(parseFloat(value) > maxAmount || parseFloat(value) < 0)\n setAmount(value.toString())\n }\n\n const onMaxReached = () => {\n const maxValue = parseFloat(userTokenBalance) > parseFloat(tokenAmount) ? tokenAmount : userTokenBalance;\n setAmount(maxValue)\n }\n\n return (\n <>\n (\n (\n \n )}\n />\n )}\n />\n \n <>\n
\n
\n
\n
\n \n {\n currency &&\n <>\n \n \n  {currency?.symbol}  \n \n  \n \n }\n \n
\n
\n

{(+tokenAmount).toFixed(2)}

\n \"up\"\n\n \"down\"\n\n
\n
\n
\n
\n
\n [\"e\", \"E\", \"+\", \"-\"].includes(evt.key) && evt.preventDefault()}\n id='add-liquidity-input-tokena'\n className='changeWithdrawAmountInput'\n style={{opacity: (loading ? 0.45 : 1)}}\n disabled={loading}\n />\n

{\n if (loading) return\n onMaxReached()\n }}>\n Maximum: {(parseFloat(userTokenBalance) > parseFloat(tokenAmount) ? parseFloat(tokenAmount) : parseFloat(userTokenBalance)).toFixed(6)}\n

\n
\n
\n \n
\n
\n
\n \n
\n \n )\n}\n","// @ts-nocheck\nimport React, { useState } from 'react'\nimport { useLocation } from 'react-router-dom'\nimport { ButtonText } from 'components/Button'\nimport PositionListItem from 'components/PositionListItem'\nimport PositionListItemClosed from 'components/PositionListItemClosed'\nimport AssetListItem from 'components/AssetListItem'\nimport styled from 'styled-components/macro'\nimport { MEDIA_WIDTHS } from 'theme'\nimport { PositionDetails } from 'types/position'\n\nconst DesktopHeader = styled.div`\n display: none;\n font-size: 14px;\n font-weight: 600;\n padding: 8px;\n\n @media screen and (min-width: ${MEDIA_WIDTHS.upToSmall}px) {\n align-items: center;\n display: flex;\n justify-content: space-between;\n & > div:last-child {\n text-align: right;\n margin-right: 12px;\n }\n }\n`\n\nconst MobileHeader = styled.div`\n font-size: 16px;\n font-weight: 600;\n padding: 8px;\n @media screen and (min-width: ${MEDIA_WIDTHS.upToSmall}px) {\n display: none;\n }\n`\n\ntype PositionListProps = React.PropsWithChildren<{\n positions: PositionDetails[]\n setUserHideClosedPositions: any\n userHideClosedPositions: boolean,\n}>\n\nexport default function PositionList({\n positions,\n setUserHideClosedPositions,\n userHideClosedPositions,\n}: PositionListProps) {\n const location = useLocation()\n const [activeKey, setActiveKey] = useState('')\n return (\n <>\n {\n !location.pathname.includes('lend') &&\n \n
\n Your positions\n {positions && ' (' + positions.length + ')'}\n
\n setUserHideClosedPositions(!userHideClosedPositions)}>\n {!userHideClosedPositions ? 'Hide' : 'Show'} closed positions\n \n
\n }\n \n Your positions\n \n {positions.map((p, index) => {\n if (p.amount) {\n return \n } else {\n if (parseInt(p.lpAmount) !== 0) {\n return \n } else {\n return \n }\n }\n })}\n \n )\n}\n","import { LoadingRows as BaseLoadingRows } from 'components/Loader/styled'\nimport { Text } from 'rebass'\nimport styled from 'styled-components/macro'\n\nexport const Wrapper = styled.div`\n position: relative;\n padding: 20px;\n`\n\nexport const ClickableText = styled(Text)`\n :hover {\n cursor: pointer;\n }\n color: ${({ theme }) => theme.primary1};\n`\nexport const MaxButton = styled.button<{ width: string }>`\n padding: 0.5rem 1rem;\n background-color: ${({ theme }) => theme.primary5};\n border: 1px solid ${({ theme }) => theme.primary5};\n border-radius: 0.5rem;\n font-size: 1rem;\n ${({ theme }) => theme.mediaWidth.upToSmall`\n padding: 0.25rem 0.5rem;\n `};\n font-weight: 600;\n cursor: pointer;\n margin: 0.25rem;\n overflow: hidden;\n color: ${({ theme }) => theme.primary1};\n :hover {\n border: 1px solid ${({ theme }) => theme.primary1};\n }\n :focus {\n border: 1px solid ${({ theme }) => theme.primary1};\n outline: none;\n }\n`\n\nexport const Dots = styled.span`\n &::after {\n display: inline-block;\n animation: ellipsis 1.25s infinite;\n content: '.';\n width: 1em;\n text-align: left;\n }\n @keyframes ellipsis {\n 0% {\n content: '.';\n }\n 33% {\n content: '..';\n }\n 66% {\n content: '...';\n }\n }\n`\n\nexport const LoadingRows = styled(BaseLoadingRows)`\n min-width: 75%;\n max-width: 960px;\n grid-column-gap: 0.5em;\n grid-row-gap: 0.8em;\n grid-template-columns: repeat(3, 1fr);\n\n & > div:nth-child(4n + 1) {\n grid-column: 1 / 3;\n }\n & > div:nth-child(4n) {\n grid-column: 3 / 4;\n margin-bottom: 2em;\n }\n`\n","// @ts-nocheck\n\nimport { gql, useQuery } from '@apollo/client'\nimport { ButtonPrimary, ButtonText } from 'components/Button'\nimport { AutoColumn } from 'components/Column'\nimport { SwapPoolTabs } from 'components/NavigationTabs'\nimport PositionList from 'components/PositionList'\nimport { RowBetween, RowFixed } from 'components/Row'\nimport { Activity } from 'react-feather'\nimport { UnsupportedChainIdError, useWeb3React } from 'packages/core'\nimport { ButtonSecondary } from '../../components/Button'\nimport { darken } from 'polished'\nimport { useContext, useEffect } from 'react'\nimport { Link } from 'react-router-dom'\nimport { useWalletModalToggle } from 'state/application/hooks'\nimport { useUserHideClosedPositions } from 'state/user/hooks'\nimport styled, { ThemeContext } from 'styled-components/macro'\nimport { ThemedText } from 'theme'\nimport { LoadingRows } from './styleds'\nimport useInterval from '../../lib/hooks/useInterval'\nrequire('./style.css');\n\nconst PageWrapper = styled(AutoColumn)`\n max-width: 512px;\n \n ${({ theme }) => theme.mediaWidth.upToMedium`\n max-width: 512px;\n width:100%;\n `};\n\n ${({ theme }) => theme.mediaWidth.upToSmall`\n max-width: 500px;\n width:100%;\n `};\n`\nconst TitleRow = styled(RowBetween)`\n color: ${({ theme }) => theme.text2};\n width: 512px;\n height:50px;\n ${({ theme }) => theme.mediaWidth.upToSmall`\n flex-wrap: wrap;\n gap: 12px;\n width: 100%;\n `};\n`\nconst ButtonRow = styled(RowFixed)`\n & > *:not(:last-child) {\n margin-left: 8px;\n }\n\n ${({ theme }) => theme.mediaWidth.upToSmall`\n width: 100%;\n flex-direction: row;\n justify-content: space-between;\n flex-direction: row-reverse;\n `};\n`\nconst NoLiquidity = styled.div`\n align-items: center;\n display: flex;\n flex-direction: column;\n justify-content: center;\n margin: auto; \n width:416px;\n ${({ theme }) => theme.mediaWidth.upToSmall`\n width: 300px;\n `};\n`\nconst ResponsiveButtonPrimary = styled(ButtonPrimary)`\n border-radius: 100px;\n width: 184px;\n height:40px;\n border: none;\n font-size:16px;\n font-weight:600;\n ${({ theme }) => theme.mediaWidth.upToSmall`\n flex: 1 1 auto;\n width: 100%;\n `};\n padding: 0 8px !important;\n`\n\nconst MainContentWrapper = styled.main`\n background-color: ${({ theme }) => theme.bg0};\n\n display: flex;\n flex-direction: column;\n`\nconst Web3StatusGeneric = styled(ButtonSecondary)`\n ${({ theme }) => theme.flexRowNoWrap}\n width: 100%;\n align-items: center;\n padding: 0.5rem;\n border-radius: 100px;\n cursor: pointer;\n user-select: none;\n height: 36px;\n margin-right: 0px;\n margin-left: 0px;\n :focus {\n outline: none;\n }\n`\n\nconst Web3StatusError = styled(Web3StatusGeneric)`\n background-color: ${({ theme }) => theme.red1};\n border: none;\n color: ${({ theme }) => theme.white};\n font-weight: 600;\n margin-top: 2em;\n height: 40px;\n :hover,\n :focus {\n background-color: ${({ theme }) => darken(0.1, theme.red1)};\n }\n`\n\nconst NetworkIcon = styled(Activity)`\n margin-left: 0.25rem;\n margin-right: 0.5rem;\n width: 16px;\n height: 16px;\n`\n\nconst Text = styled.p`\n flex: 1 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n margin: 0 0.5rem 0 0.25rem;\n font-size: 1rem;\n width: fit-content;\n font-weight: 600;\n \n`\n\nfunction PositionsLoadingPlaceholder() {\n return (\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n )\n}\n\nconst tokensQuery = gql`\n query GetAssets($account: String) {\n assets(where: {owner: $account}) {\n id\n asset\n owner\n amount\n }\n }\n`\n\nexport default function Lend() {\n const { account, error } = useWeb3React()\n const toggleWalletModal = useWalletModalToggle()\n const { loading, data, refetch } = useQuery(tokensQuery, {\n pollInterval: 1000,\n variables: { account },\n });\n\n const theme = useContext(ThemeContext)\n const [userHideClosedPositions, setUserHideClosedPositions] = useUserHideClosedPositions()\n const showConnectAWallet = Boolean(!account)\n\n useInterval(() => refetch({ account: account?.toLowerCase() }), 1000)\n\n useEffect(() => {\n (async () => {\n if (account) {\n await refetch({variables: {account: account.toLowerCase()}})\n }\n })();\n }, [account, refetch])\n\n return (\n <>\n \n \n \n \n \n \n \n \n \n Deposit\n \n \n \n
\n \n {\n showConnectAWallet\n ?\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n {\"1\"}\n \n\n setUserHideClosedPositions(!userHideClosedPositions)}\n >\n Your positions will appear here\n \n {\n error instanceof UnsupportedChainIdError ?\n \n \n {error instanceof UnsupportedChainIdError ? <>Wrong Network : Error}\n \n : showConnectAWallet && (\n\n \n Connect Wallet\n \n )\n }\n \n :\n\n (loading ? (\n \n ) : (data && data.assets && data.assets.length > 0 ? (\n \n ) : (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n {\"1\"}\n \n\n setUserHideClosedPositions(!userHideClosedPositions)}\n >\n Your positions will appear here\n \n \n )))\n } \n \n
\n
\n
\n
\n \n )\n}\n","import { BigNumber } from 'ethers'\nimport { useSingleCallResult } from 'lib/hooks/multicall'\nimport { useMemo } from 'react'\nimport useActiveWeb3React from './useActiveWeb3React';\n\nimport { useDDJContract } from './useContract'\n\n/**\n * Does a lookup for an ENS name to find its address.\n */\nexport default function useDDJ(): { loading: boolean; balance: BigNumber } {\n const { account } = useActiveWeb3React()\n const inputs = useMemo(() => [account ?? undefined], [account])\n const ddjContract = useDDJContract(false)\n const balance = useSingleCallResult(ddjContract, 'balanceOf', inputs)\n\n return useMemo(\n () => ({\n balance: balance.result?.[0] ?? BigNumber.from('0'),\n loading: false,\n }),\n [balance.result]\n )\n}\n","import { ButtonPrimary, ButtonText } from 'components/Button'\nimport { AutoColumn } from 'components/Column'\nimport { SwapPoolTabs } from 'components/NavigationTabs'\nimport { Activity } from 'react-feather'\nimport { UnsupportedChainIdError, useWeb3React } from 'packages/core'\nimport { ButtonSecondary } from '../../components/Button'\nimport TransactionConfirmationModal, { ConfirmationModalContent } from \"../../components/TransactionConfirmationModal\";\nimport { TransactionResponse } from \"@ethersproject/providers\";\nimport { darken } from 'polished'\nimport { useContext, useState, useCallback, useMemo } from 'react'\nimport { useWalletModalToggle } from 'state/application/hooks'\nimport { useUserHideClosedPositions } from 'state/user/hooks'\nimport useRewardStorage from 'hooks/useRewardStorage'\nimport { useRewardStorageContract } from 'hooks/useContract'\nimport useDDJ from 'hooks/useDDJ'\nimport styled, { ThemeContext } from 'styled-components/macro'\nimport { ThemedText } from 'theme'\nimport { ethers } from 'ethers'\nimport { TransactionType } from 'state/transactions/actions'\nimport { useTransactionAdder } from \"state/transactions/hooks\";\n\nconst PageWrapper = styled(AutoColumn)`\n max-width: 870px;\n\n ${({ theme }) => theme.mediaWidth.upToMedium`\n max-width: 800px;\n `};\n\n ${({ theme }) => theme.mediaWidth.upToSmall`\n max-width: 500px;\n width:100%;\n `};\n`\n\nconst NoLiquidity = styled.div`\n align-items: center;\n display: flex;\n flex-direction: column;\n justify-content: center;\n margin: auto; \n width:416px;\n ${({ theme }) => theme.mediaWidth.upToSmall`\n width: 300px;\n `};\n`\n\nconst MainContentWrapper = styled.main`\n background-color: ${({ theme }) => theme.bg0};\n display: flex;\n flex-direction: column;\n`\nconst Web3StatusGeneric = styled(ButtonSecondary)`\n ${({ theme }) => theme.flexRowNoWrap}\n width: 100%;\n align-items: center;\n padding: 0.5rem;\n border-radius: 100px;\n cursor: pointer;\n user-select: none;\n height: 36px;\n margin-right: 0px;\n margin-left: 0px;\n :focus {\n outline: none;\n }\n`\n\nconst Web3StatusError = styled(Web3StatusGeneric)`\n background-color: ${({ theme }) => theme.red1};\n border: none;\n color: ${({ theme }) => theme.white};\n font-weight: 600;\n margin-top: 2em;\n height: 40px;\n :hover,\n :focus {\n background-color: ${({ theme }) => darken(0.1, theme.red1)};\n }\n`\n\nconst NetworkIcon = styled(Activity)`\n margin-left: 0.25rem;\n margin-right: 0.5rem;\n width: 16px;\n height: 16px;\n`\n\nconst Text = styled.p`\n flex: 1 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n margin: 0 0.5rem 0 0.25rem;\n font-size: 1rem;\n width: fit-content;\n font-weight: 600;\n \n`\n\nexport default function Claim() {\n const { account, error } = useWeb3React()\n const toggleWalletModal = useWalletModalToggle()\n const { threshold, reward } = useRewardStorage()\n const { balance } = useDDJ()\n const rewardStorageContract = useRewardStorageContract(true)\n const addTransaction = useTransactionAdder()\n\n const [loading, setLoading] = useState(false)\n const [showConfirm, setShowConfirm] = useState(false)\n const [attemptingTxn, setAttemptingTxn] = useState(false) // clicked confirm\n const [txHash, setTxHash] = useState('')\n\n const isEnough = useMemo(() => {\n return reward.gte(threshold)\n }, [reward, threshold])\n\n // @ts-ignore\n const theme = useContext(ThemeContext)\n const [userHideClosedPositions, setUserHideClosedPositions] = useUserHideClosedPositions()\n const showConnectAWallet = Boolean(!account)\n const pendingText = \"Pending Confirmation\";\n\n const onWithdraw = async () => {\n if (isEnough && rewardStorageContract) {\n try {\n setLoading(true)\n\n const response: TransactionResponse = await rewardStorageContract.withdrawRewards()\n addTransaction(response, {\n type: TransactionType.WITHDRAW_REWARD\n })\n setTxHash(response.hash)\n setShowConfirm(true);\n await response.wait()\n\n } catch (error) {\n console.error('Failed to send transaction', error)\n // we only care if the error is something _other_ than the user rejected the tx\n if (error?.code !== 4001) {\n console.error(error)\n }\n } finally {\n setLoading(false)\n setAttemptingTxn(false)\n }\n }\n }\n\n const formatedReward = useMemo(() => {\n const value = parseFloat(ethers.utils.formatUnits(reward, 36))\n return value === 0 ? 0 : value.toFixed(6);\n }, [reward])\n\n const formatedBalance = useMemo(() => {\n const value = parseFloat(ethers.utils.formatEther(balance))\n return value === 0 ? 0 : value.toFixed(6);\n }, [balance])\n\n const handleDismissConfirmation = useCallback(() => {\n setShowConfirm(false)\n // if there was a tx hash, we want to clear the input\n if (txHash) {\n setTxHash('')\n }\n }, [txHash])\n\n return (\n <>\n (\n (\n \n )}\n />\n )}\n pendingText={pendingText}\n />\n\n \n \n \n\n \n \n \n
\n \n {\n showConnectAWallet\n ?\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n {\"1\"}\n \n\n setUserHideClosedPositions(!userHideClosedPositions)}\n >\n Your positions will appear here\n \n {\n error instanceof UnsupportedChainIdError ?\n \n \n {error instanceof UnsupportedChainIdError ? <>Wrong Network : Error}\n \n : showConnectAWallet && (\n\n \n Connect Wallet\n \n )\n }\n \n :\n \n \n Rewards\n \n \n {formatedReward}\n \n \n Withdraw Threshold: {parseInt(ethers.utils.formatUnits(threshold, 36))}\n \n \n \n DDJ Balance\n \n \n {formatedBalance}\n \n \n }\n \n
\n
\n
\n
\n
\n
\n \n )\n}\n","import { BigNumber } from 'ethers'\nimport { useSingleCallResult } from 'lib/hooks/multicall'\nimport { useMemo } from 'react'\nimport useActiveWeb3React from './useActiveWeb3React';\n\nimport { useRewardStorageContract } from './useContract'\n\n/**\n * Does a lookup for an ENS name to find its address.\n */\nexport default function useRewardStorage(): { loading: boolean; threshold: BigNumber; reward: BigNumber } {\n const { account } = useActiveWeb3React()\n const inputs = useMemo(() => [account ?? undefined], [account])\n const rewardStorageContract = useRewardStorageContract(false)\n const threshold = useSingleCallResult(rewardStorageContract, 'rewardWithdrawThreshold')\n const reward = useSingleCallResult(rewardStorageContract, 'rewards', inputs)\n\n return useMemo(\n () => ({\n threshold: threshold.result?.[0] ?? BigNumber.from('0'),\n reward: reward.result?.[0] ?? BigNumber.from('0'),\n loading: false,\n }),\n [reward.result, threshold.result]\n )\n}\n","export enum CAPITAL_TYPE {\n DEPOSIT = 0,\n WITHDRAW = 1,\n DELEGATE = 2,\n UNDELEGATE = 3,\n}","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAgCAYAAAB3j6rJAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAOASURBVHgBzVjBahRBEK3u6ckaEZIcBSEb/AGDeE9OHsRD/iDiB8QFPyCreBHB5OB9vAvxIl485OY1f5AN/sCKhCTudJWvqntRwSQ7M4RYbG/Pzkx3V7+qV121RP+JuMG3I4mxIK4DRW2xEInBxbqgyKUwnvmJc2UkKidEc9pHkrmaXMg9mt6XoNfoy3yvzK0XaVSgD3lRESzs/lYkkNO7ggdC3gsJi4texHl8mPUJiS9IoID4NIkwOfa4jBiJCRktOnIFeklN9F3c1/ewIep79AQldTymdMS41t40wyawoHgsvnP3tqMrkk9vZDmGhI5LCydziCk9UsWCM7290BXKo+fu6LxnX16lpb3z+iVXhsalIsmaXo1lGF2TqNOq34TkqEzXJZJcl0JmCrWVZ3uyuEC0iMvxcMONqalgeVXFk1K1g2luBNqqHR1iU1vURhQPoy9Y44zk7aT25mJdQDVljDWKCrWVFLioq5d5mEUslrQUjZwaRWtqJy6HN2+m6eAjioSGRGpvXZNgZulgGUME5wa3VERy1Pd22HWIrFNE2iqijp4V6Wiajs4qmb6GSKcQ700Z6eIjGuZNEdeBvoqE7qota6YZQVKkI31tdFtnzfxNrGkQFp8eHO/F2i9KXRJzQfWE+gptIbQ5+CxrvZgSIE0V6x+0MXxy8fmjG/EYE4BII2fFeXAAHLcZG9C0kkE50FdR6QPavrGILHWsLlPCFMmIWD7SRJGaT3fBtLHPG1D/sMmm7PEWU8b4PZxlvulYr1liE2etVpfGzDwgzWEwzhbOCXSmsQMaO0gJRrPMJ3m8pQFNA1p1/1aFw3Jfx8kUhSkqnkavH7uZ0FCx/FALBW/gNmevRBm6VIb8Lilwf+Jou8k8nJTHvlSJFnGkejC/D+esSH01h3iQ6OO7h+59k3kUDXVuY3/rOFKUA5jnu86iOzkjGlBDyWmEeKtxWob4atWNYZgdtTTQqKr12Rz0T5FkUi2wyHzkRf31kBGkRIMU8j9GacZWE5f6e/T2zsr6vybyIezGGNfOfp5P15cfZA91cb/HNNb6GTUz9RDwCvRcJ/oHyQcgKLyMYlfd3/LHlFyrIM5ckNMqKujW6QJhzfI93WO2QEcFJZOoIurgAaU1KtKbK1YX6wtlagjSdHKK61OmSTFH7qRHXaSYp00+piWsvcAh/SvAWgerRvnw/wXKHLlJwk4nhAAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAiCAYAAAA+stv/AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAOQSURBVHgBvVjNahRBEK7qnXHFS4wIGnLYXfBg0FNewPgGPoCH5CKCoCuIiIi7QcxFDxE85GTyCp5FclU8mCCit91FxJ9LDILBTHeXVdU9O0lcSMTJfLs9XdPd01VT3fXTg8C4+WlAziXkshpyDT5LQGpnpaRgnKEjGSAXOOIg0EUN0l6X2gKl3Fa3AKnVNh1juAbkH4MvRKQEIkHTaCNKPyGidhCa2GaUlvHouc9zO9fopa2owYdCXp7mNrnXdnkucOVeELZywVwYQaKNyPMg4dMzp4cdh4mXC9Rj6RpCqwaMvJ9RxVQGiloIS2BwA1mJ7V7vOFQAXqu+LAkvb9wD4DeB17xWr49BFcDiagLpddNVCcSwKQsrqFgAihoIVkC0bgz2s61vm1ABKHAX2w8CPDp19hJUCPxrDxwQs2+pPCthK2BnGTSwH9rM+IfdbvvfcJ1vT0AZYD+QHESAq+82Zn76X8tgkgZ4D6WBduyBUWj3vjSzLF3OLFxA79lXeZBfWWAnVFjBbsbsDY3pekc3SGKNDOMAI7yNodJihVrCXg3c/vqxzXzu2wzGwYtv8BIMlbvngCXe8vJr10mskdALyTaHYH7gqNA21PUdNO+Z59eu4NpoCfYswd3N9x2XQRet4+AkMTk6J9RX54pUYhaoKwvBt0AindMunVKGONJJhYbEsM8HWBvBHPKQPBRgYezc/J3vHwbc3GEuDQnPQw8p4doEYYxJupoX1IIapfYu5AoyJdYCA8kJrIf1kW8fF9IW5G7c+jzoWIuz3iVNyYosFy8ZEmdKz6aP/fc+ePGQVnmSGYNcRg14PNmYB59e5LdfgWGckAyppJzBjCR3Y7E10X/SmpxLrW8x8z5bgAhSihXsnGVfV7w4NdFfmjrZ4m0wx9bQhxIQvYlq80CuWLB0fnyFqxUoATFp/fdgVBZidq1QDTywr1Y5/28mdZy5h9MDOGRQTP8tDVMyaHJe2ISKQPF8IXRcAjlCVJeSqScV9kl+LjBq41AV4iYsktIoE1SFeJRDmwuge6LCJYjnRkXhBwxUJoEy4qDFUT1oIIRmX8nBVODMHg2oRfDfue1ed+sNWp8S2QTD94G81DQaepcG2qXkeYzNamzQNU5QEPJvBVpsLK64z78hcDqsR3tOPQpPKPmFZECoauH8BzXaQ170KCXRMB7jVGPhWK/C686GuMFYJrH1aO85XXw3iN8OhO8fupa6+wWJWmQAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAiCAYAAAA+stv/AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAN8SURBVHgBvVgxaFRBEJ3Z/y+HlXba5QoLwUYFW0lrZyEWNjkbG5EkNkIQcioExMIELZVol85gI4iSsxMCgoX1XbCySlIF8nd3fLO7/+5QEnM/yX/J/tm/e393dmZ2ZnaZgLlffXGuIa7I2LmcfJGTUme1NMg4IxMFMQpNOIr1ISVtbyq1JA20NS1Rw4a28BsDSow/AA8RCRVmoZYJjazvwkpDxVDoBdW6/p49+jzaQdlr25CSj0W8fo02fQ/t+l2cFb2k0+qDS2YUeWhkjMPCr86fG3ScJL4sSg/cTWo9SMDo+kwQTG2QJIWoAsNbDCHO9npnqAZAV31VCdSbbID8DkHnWbN5muoAD58mVn0wujrBHI0y7QKpnQFJEoi7QOSHMdwvdn/vUA2QOLv6hsjA87MXblCN4H9sYAy01+V4dgp2ga3CAGR26W5Xevc+yzQdBfADeSUGKLjdSajx7cwn+f7wo7SoCmRkF4zNQIoNwGXvqTf/QVYW3o/HCJxQNRtQvYmJwaYMRKDTWM/6k1WZPew4pePPy4b5rZ8LFuHXowTqY93bCbwbsnuxTQrfErwrEw6iyDQiwo+JutWcXjxblZmGp86D2/zuYA5GtmFq6ZQOyaCEoC1KEejVYjQ0e/xrXwy1IQRLCrllOMZ7C4+Vlyuyef8Od/eZnMqQPGTAcEcVKyE5QG8G6jRr4PAFG4+nwc+o5VjaPsM0ceWaJ4jXun5iqAtOOpj8K+2HFPTtKAOLpy8+pkOgvVFMYYD2IBEpkxOifiE0t3CL1/43RhRAnDynCuC4+LATnNA2Vr3sHC0v3eTtQw2gpu9jtQIDUXAazLH6NW9pbuk698cZQXighfEZ0A8K6Bk677y5doCeD4Au3kRNjM/A66unuiBdOgKS76jmiI4DKbsOCBJ4ar+tI/9v5U2eesRXNumEISn9tzJIyeA8yLeoJkg6X2g9qSD5sJqQPGeQfzwXGPV0NTIQjXA0HHsaeIaaGFAVDDKiYBM1qqAMZoqRYES1cRAmyuBTTZJADM2+loOpwpm/JBB2hAYWt9fr7G6w9Q0Rm3O8HyhLRg73Bt41Yh33CUhY2BYZNnSGuwGm8q4gFJuKG76XdwhIh8PR3roRT6jph8Y3DmJB2sGaa5TG6eNRSk/Q6RgXJBaP9YH5YNmUDAw8hbTNpKQl1of3BunuQOf9AzAstw7A1xj+AAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAgCAYAAAB3j6rJAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAANeSURBVHgBzVdNalRBEK6q12+GiGBcCkImeAFzgsR17iCjeIAIQhYuJomIG0G9QKIrFxGyEjdCxlWO4QQvkI0kMK+7rJ9OMOjEmX6EsZie7vfT3d+rn6+qAf4Twac/jjnGClITIGqLFXMMGJsKYqo5yTMaI9YRoB4DdLSPwJ0GMORemt7noGPp63yvzq0bYVRJH/KmzLIxXgYSAPUuywMGIgZOjJGYkeSXkj4BpgpYADD5IpwAE8kwykxZMEmLCFhJz95Y35X7+p58EPRIehCQOl+WREgy1t6QyUfIhkyy+dt7dxCuST6/5qUYXDvoG7s52ECPFFhAw00M1yjrz/B40rOvL31rQtI/vjZt/FPYrUlqLNPRnESdVv0muKMmmJewu64ECnnEzBGJbU6godoSyOYB96BUVB/sPoJtgmbzCytHHA5agrGoUa1AoQg1DIS0loTQ9qCFkJiFjUsKZEO0ITP7xrgIq8/3eQ1mFMz05qYp9JFxF/aSU7wyEVYBdqFQzFlLTPP4kPuSftZSzi3JP215Z583ZlmHM+uTJbsSZg3iG6oNMhCW3NjbYLDHi9Mug+fhK2Q2s2keHsUtcc6egZC1snk494vVTRhMuxZfhG8uA6aV/tFpT94fWBmgvkGuFR1nIErbG68+Tu+4SvMGBGfwEerQwHgnb3oJhJQteh19PJVWziuCYEBmCV9KIwTasgJJtRHNYdcEwFDGw8zXZjP1le1HeHIlkIukp9pI05tmd2Vh+/frJ99Yq7NV4YHhu3XchhlFnZyim0adtbgeSU5mFjVF8zOjWT3SJukluvCVciBWnNFszvrHQtAOCDsPObO2KRUNiPNJ6XzdnSWDGxtAsQT3/GLTOA9JEaAgWpgGUvLzC5SJ5SmwiAcoLQNUKPgqxabx/MRkZ5xWpWLyFqBI1KzRmNUKNYad5uh7amrRUwVNQ8KYAZKdiWu9Hr25u/zgbwuR2Vg4sZm82YtPfCDn4l43wYmen+XMDF15v5Je5ll6CJwToITwkhx2NZasftTsjPmLka7wRGo+MIahYJ94mhN9LYr57os7KQtDBW4SBSI/CJKjRKE3lu1crC/U3uSUCqdnMj5LMK46gKfdiTjeryyMpBvBFVItQD/9hNuy960U3IqqQVREOfn/AloGqbHqvR0lAAAAAElFTkSuQmCC\"","import { ReactNode, useCallback } from 'react'\nimport styled from 'styled-components/macro'\nimport { AutoColumn } from '../Column'\n\nconst InputPanel = styled.div`\n ${({ theme }) => theme.flexColumnNoWrap}\n position: relative;\n border-radius: 100px;\n height: 40px;\n z-index: 1;\n padding: 1px;\n width: 225px;\n background: linear-gradient(73.6deg,#85FFC4 2.11%,#5CC6FF 42.39%,#BC85FF 85.72%);\n`\n\nconst ContainerRow = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n background: #2F2A3C;\n height: 40px;\n padding: 3px;\n border-radius: 100px;\n transition: border-color 300ms step-start,\n color 500ms step-start;\n`\n\nconst InputContainer = styled.div`\n padding: 0 10px;\n flex: 1;\n`\n\nconst Input = styled.input<{ error?: boolean }>`\n outline: none;\n font-size: 16px;\n line-height: 24px;\n border: none;\n flex: 1 1 auto;\n width: 0;\n transition: color 300ms ${({ error }) => (error ? 'step-end' : 'step-start')};\n background: none;\n color: ${({ error, theme }) => (error ? theme.red1 : 'white')};\n overflow: hidden;\n text-overflow: ellipsis;\n font-weight: 400;\n width: 100%;\n ::placeholder {\n color: ${({ theme }) => theme.text4};\n }\n padding: 0px;\n -webkit-appearance: textfield;\n\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n\n ::-webkit-outer-spin-button,\n ::-webkit-inner-spin-button {\n -webkit-appearance: none;\n }\n\n ::placeholder {\n color: ${({ theme }) => theme.text4};\n }\n`\n\nexport default function AddressStyledPanel({\n id,\n className = 'recipient-address-input',\n label,\n placeholder,\n value,\n onChange,\n}: {\n id?: string\n className?: string\n label?: ReactNode\n placeholder?: string\n // the typed string value\n value: string\n // triggers whenever the typed value changes\n onChange: (value: string) => void\n}) {\n const handleInput = useCallback(\n (event) => {\n const input = event.target.value\n const withoutSpaces = input.replace(/\\s+/g, '')\n onChange(withoutSpaces)\n },\n [onChange]\n )\n\n return (\n \n \n \n \n \n \n \n \n \n )\n}\n","import React, { ReactDOM } from \"react\";\nimport styled from \"styled-components/macro\";\nimport { MEDIA_WIDTHS } from \"theme\";\n\nimport { ReactComponent as DropDown } from \"../../assets/images/dropdown.svg\";\nimport { ActivatorButton, DropdownList, Wrapper } from \"./styles\";\n\nconst StyledDropDown = styled(DropDown) <{ selected: boolean }>`\n margin: 0 0.25rem 0 0.35rem;\n height: 35%;\n\n path {\n stroke: ${({ selected, theme }) => (selected ? theme.white : theme.white)};\n stroke-width: 1.5px;\n }\n`\n\nconst NetworkLabel = styled.div`\n flex: 1 1 auto;\n color: white;\n overflow: hidden;\n height: 21px;\n font-size: 16px;\n`\nconst SelectorLabel = styled(NetworkLabel)`\n font-size: 16px;\n font-weight: 600;\n line-height: 24px;\n height: 24px;\n color: white;\n @media screen and (min-width: ${MEDIA_WIDTHS.upToSmall}px) {\n display: block;\n margin-right: 8px;\n }\n`\nconst FlyoutRow = styled.button<{ active: boolean }>`\n align-items: center;\n\n background: ${({ active, theme }) => (active ? 'rgb(47 42 60)' : 'transparent')} !important;\n border-radius: 8px !important;\n cursor: pointer;\n display: flex;\n font-weight: 600;\n justify-content: space-between;\n padding: 6px 8px;\n text-align: left;\n width: 100%;\n border: none;\n`\nconst ActiveRowWrapper = styled.div`\n\n background-color: rgb(60, 60, 60);\n\n border-radius: 8px;\n cursor: pointer;\n padding: 0px;\n width: 100%;\n`\nconst FlyoutMenu = styled.div`\n background: linear-gradient(73.6deg, #85FFC4 2.11%, #5CC6FF 42.39%, #BC85FF 85.72%);\n border: none;\n padding: 1px;\n position: absolute;\n border-radius: 20px;\n min-width: 160px;\n z-index: 99;\n @media screen and (min-width: ${MEDIA_WIDTHS.upToSmall}px) {\n\n }\n`\nconst FlyoutMenuContents = styled.div`\n align-items: flex-start;\n background-color: rgb(31 30 34);\n box-shadow: 0px 0px 1px rgba(0, 0, 0, 0.01), 0px 4px 8px rgba(0, 0, 0, 0.04), 0px 16px 24px rgba(0, 0, 0, 0.04),\n 0px 24px 32px rgba(0, 0, 0, 0.01);\n border-radius: 20px;\n display: flex;\n flex-direction: column;\n font-size: 16px;\n overflow: auto;\n padding: 12px;\n\n & > *:not(:last-child) {\n margin-bottom: 12px;\n }\n`\n\ntype NFTItem = {\n id: number;\n logo: any;\n}\n\ninterface IProps {\n onUserClick: (item: NFTItem) => void\n selected?: NFTItem;\n children: ReactDOM;\n items: NFTItem[];\n disabled: boolean;\n}\n\nexport default function DDCDropdown({\n onUserClick,\n selected,\n items,\n children,\n disabled = false\n}: IProps) {\n const activatorRef = React.useRef(null)\n const listRef = React.useRef(null)\n const [isOpen, setIsOpen] = React.useState(false)\n const [activeIndex, setActiveIndex] = React.useState(-1)\n const handleClick = () => {\n if (disabled) return\n setIsOpen(!isOpen)\n }\n React.useEffect(() => {\n if (isOpen) {\n document.addEventListener('mouseup', handleClickOutside)\n } else {\n document.removeEventListener('mouseup', handleClickOutside)\n }\n return () => {\n document.removeEventListener('mouseup', handleClickOutside)\n }\n }, [isOpen])\n const keyHandler = (event: React.KeyboardEvent) => {\n if (isOpen) {\n switch (event.key) {\n case 'Escape':\n setIsOpen(false)\n break\n case 'ArrowDown':\n const nodeList = listRef.current!.querySelectorAll('a')\n if (activeIndex === items.length - 1) return\n nodeList[activeIndex + 1].focus()\n break\n case 'ArrowUp':\n const nodeList2 = listRef.current!.querySelectorAll('a')\n if (activeIndex === 0) return\n nodeList2[activeIndex - 1].focus()\n break\n }\n }\n }\n const handleClickOutside = (event: any) => {\n if (\n listRef.current!.contains(event.target) ||\n activatorRef.current!.contains(event.target)\n ) {\n return\n }\n setIsOpen(false)\n }\n const userClick = (item: NFTItem) => {\n onUserClick(item)\n setIsOpen(false)\n }\n\n function Row({\n active,\n item,\n }: {\n active: boolean\n item: NFTItem\n }) {\n const rowContent = (\n userClick(item)}>\n \"Logo\"\n {`ID: ${item.id}`}\n \n )\n if (active) {\n return (\n \n {rowContent}\n \n )\n }\n return rowContent\n }\n\n React.useEffect(() => {\n if (!isOpen) {\n setActiveIndex(-1)\n }\n }, [isOpen])\n\n\n return (\n \n setActiveIndex(-1)}\n style={{ width: \"160px\", textAlign: \"left\" }}\n >\n {!selected ?\n {\"Select an NFT\"}\n :\n <>\n \"Logo\"\n {`ID: ${selected.id}`}\n \n }\n \n \n\n \n \n \n {\n items.length > 0 &&\n items.map((indItem, index) => {\n return (\n \n )\n })\n }\n \n \n \n \n )\n};\n","// @ts-nocheck\nimport { BigNumber } from \"ethers\";\nimport { ReactNode, useEffect, useState } from \"react\";\nimport styled from \"styled-components/macro\";\nimport { useTokenURI } from \"../../hooks/useDoubleDownClub\";\nimport DDCDropdown from \"../Dropdown/DDCDropdown\";\n\nconst InputPanel = styled.div<{ hideInput?: boolean }>`\n ${({ theme }) => theme.flexColumnNoWrap}\n width: 100%;\n position: relative;\n border: none;\n border-radius: ${({ hideInput }) => (hideInput ? '16px' : '20px')};\n background-color: ${({ theme, hideInput }) => (hideInput ? 'transparent' : 'transparent')};\n z-index: 1;\n width: ${({ hideInput }) => (hideInput ? '100%' : 'initial')};\n transition: height 1s ease;\n will-change: height;\n`\n\nconst Container = styled.div`\n border-radius: 16px;\n background-color: transparent;\n width: 100%;\n :focus,\n :hover {\n }\n `\n\nconst InputRow = styled.div<{ selected: boolean }>`\n ${({ theme }) => theme.flexRowNoWrap}\n align-items: center;\n justify-content: space-between;\n padding: ${({ selected }) => (selected ? ' 1rem 1rem 0.75rem 1rem' : '1rem 1rem 1rem 1rem')};\n padding: 0px;\n padding-left: 0px;\n padding-top: 0px;\n`\n\ninterface DDCTokenProps {\n value: string\n onUserInput: (value: string) => void\n onMax?: () => void\n label?: ReactNode\n items: BigNumber[]\n onItemSelect: (item: NFTItem) => void\n nftItem?: NFTItem | null\n id: string\n loading?: boolean\n disabled?: boolean\n approved?: boolean\n}\n\nexport type NFTItem = {\n id: number;\n logo: any;\n}\n\nexport default function DDCTokenSelection({\n value,\n onUserInput,\n onMax,\n onItemSelect,\n nftItem,\n items,\n id,\n loading = false,\n disabled = false,\n approved,\n ...rest\n}: DDCTokenProps) {\n const [selectedItem, setSelectedItem] = useState()\n const { images } = useTokenURI(items);\n const [nftItems, setNftItems] = useState([]);\n\n useEffect(() => {\n if (nftItem) {\n setSelectedItem(nftItem)\n } else {\n setSelectedItem(undefined)\n }\n }, [nftItem])\n\n useEffect(() => {\n (async () => {\n const resp = [];\n if(images?.length > 0) {\n for(let i = 0 ; i < images.length ; i ++) {\n if(images[i]?.result !== undefined) {\n const base64Str = images[i]?.result[0];\n const json = atob(base64Str.substring(29));\n const result = JSON.parse(json.substring(1));\n resp.push({\n id : parseInt(items[i]),\n logo: result.image\n })\n }\n }\n setNftItems(resp);\n } else {\n setNftItems([]);\n }\n })()\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [images])\n\n return (\n \n \n \n \n
{JSON.stringify(selectedItem)}
\n \n
\n
\n
\n )\n}\n","// @ts-nocheck\nimport { BigNumber } from \"ethers\";\nimport {\n useSingleCallResult,\n useSingleContractMultipleData\n} from \"lib/hooks/multicall\";\nimport { useMemo } from \"react\";\n\nimport useActiveWeb3React from \"./useActiveWeb3React\";\nimport { useDoubleDownClubContract } from \"./useContract\";\n\n/**\n * Getting the current DoubleDownClub contract\n */\nexport default function useDoubleDownClub(): { loading: boolean; balance: BigNumber; tokenIds: BigNumber[] } {\n const { account } = useActiveWeb3React()\n const inputs = useMemo(() => [account ?? undefined], [account])\n const ddcContract = useDoubleDownClubContract(false)\n const balance = useSingleCallResult(ddcContract, 'balanceOf', inputs)\n const idList = useMemo(() => {\n const count = balance?.result?.length > 0 ? balance?.result[0] : 0;\n const resp = [];\n for(let i = 0 ; i < count ; i ++) {\n resp.push([\n account, i\n ])\n }\n return resp;\n }, [balance.result, account]);\n\n const tokenIds = useSingleContractMultipleData(ddcContract, 'tokenOfOwnerByIndex', idList)\n return useMemo(\n () => ({\n tokenIds: tokenIds.length > 0 ? tokenIds.map((token) => { return token.result?.length > 0 ? token.result[0] : null }) : BigNumber.from('0'),\n balance: balance.result?.[0] ?? BigNumber.from('0'),\n loading: false,\n }),\n [balance.result, tokenIds]\n )\n}\n\nexport function useTokenURI(tokenIds: BigNumber[]): { images: string[] } {\n const ddcContract = useDoubleDownClubContract(false)\n const idList = useMemo(() => {\n const resp = [];\n for(let i = 0 ; i < tokenIds.length ; i ++) {\n resp.push([\n tokenIds[i]\n ])\n }\n return resp;\n }, [tokenIds]);\n const metadata = useSingleContractMultipleData(ddcContract, 'tokenURI', idList)\n return useMemo(\n () => ({\n images: metadata,\n loading: false,\n }),\n [metadata]\n )\n}\n","import React from \"react\";\nimport styled from \"styled-components/macro\";\nimport { MEDIA_WIDTHS } from \"theme\";\n\nimport { ReactComponent as DropDown } from \"../../assets/images/dropdown.svg\";\nimport { ActivatorButton, DropdownList } from \"./styles\";\n\nconst Wrapper = styled.div`\n position: relative;\n background: linear-gradient(73.6deg, rgb(133, 255, 196) 2.11%, rgb(92, 198, 255) 42.39%, rgb(188, 133, 255) 85.72%);\n padding:1px;\n border-radius: 48px;\n \n width: 100%;\n height: 40px;\n\n border: none;\n \n ${({ theme }) => theme.mediaWidth.upToSmall`\n \n `};\n`;\nconst InnerWrapper = styled.div`\n background: #2F2A3C;\n border-radius: 48px;\n`;\n\nconst StyledDropDown = styled(DropDown) <{ selected: boolean }>`\n margin: 0 0.25rem 0 0.35rem;\n height: 35%;\n\n path {\n stroke: ${({ selected, theme }) => (selected ? theme.text1 : theme.white)};\n stroke-width: 1.5px;\n }\n`\n\nconst NetworkLabel = styled.div`\n flex: 1 1 auto;\n background: linear-gradient(73.6deg, rgb(133, 255, 196) 2.11%, rgb(92, 198, 255) 42.39%, rgb(188, 133, 255) 85.72%);\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n background-clip: text;\n text-fill-color: transparent;\n color: white;\n overflow: hidden;\n height: 24px;\n font-size: 20px;\n white-space: nowrap;\n display: inline-block;\n`\n\nconst TruncateEllipsis = styled.div`\n display: inline-block;\n font-family: 'Inter custom', sans-serif, monospace;\n vertical-align: bottom;\n white-space: nowrap;\n width: 100%;\n`\n\nconst SelectorLabel = styled(NetworkLabel)`\n display: none;\n font-size: 19px;\n font-weight: 600;\n line-height: 24px;\n color: white;\n padding-left: 15px;\n @media screen and (min-width: ${MEDIA_WIDTHS.upToSmall}px) {\n display: block;\n margin-right: 8px;\n }\n`\n\nconst PlaceholderLabel = styled.div`\n padding: 0 10px;\n flex: 1 1 auto;\n background: none;\n display: none;\n font-size: 16px;\n font-weight: 600;\n line-height: 24px;\n color: white;\n @media screen and (min-width: ${MEDIA_WIDTHS.upToSmall}px) {\n display: block;\n margin-right: 8px;\n }\n`\n\nconst FlyoutRow = styled.button<{ active: boolean }>`\n align-items: center;\n background: transparent !important;\n border-radius: 8px;\n cursor: pointer;\n display: flex;\n font-weight: 400;\n justify-content: space-between;\n padding: 8px 8px;\n text-align: left;\n width: 100%;\n border: none;\n`\nconst ActiveRowWrapper = styled.div`\n\n //background-color: 'rgb(47 42 60)';\n\n border-radius: 8px;\n cursor: pointer;\n padding: 0px;\n width: 100%;\n`\nconst FlyoutMenu = styled.div`\n border: none;\n padding: 1px;\n position: absolute;\n border-radius: 20px;\n min-width: 184px;\n z-index: 99;\n background: linear-gradient(73.6deg, rgb(133, 255, 196) 2.11%, rgb(92, 198, 255) 42.39%, rgb(188, 133, 255) 85.72%);\n @media screen and (min-width: ${MEDIA_WIDTHS.upToSmall}px) {\n\n }\n`\nconst FlyoutMenuContents = styled.div`\n align-items: flex-start;\n background-color: rgb(31 30 34);\n box-shadow: 0px 0px 1px rgba(0, 0, 0, 0.01), 0px 4px 8px rgba(0, 0, 0, 0.04), 0px 16px 24px rgba(0, 0, 0, 0.04),\n 0px 24px 32px rgba(0, 0, 0, 0.01);\n border-radius: 20px;\n display: flex;\n width: 255px;\n flex-direction: column;\n font-size: 16px;\n overflow: auto;\n padding: 16px;\n\n & > *:not(:last-child) {\n margin-bottom: 12px;\n }\n`\n\nconst truncate = (str: string) => {\n return str.substring(0, 12) + '...' + str.substring(str.length - 4)\n}\n\ninterface AddressDropdownProps {\n onUserClick: (value: string) => void;\n items?: string[];\n textContent: string;\n}\n\nexport default function AddressDropdown({\n onUserClick,\n items = [],\n textContent\n}: AddressDropdownProps) {\n const activatorRef = React.useRef(null)\n const listRef = React.useRef(null)\n const [isOpen, setIsOpen] = React.useState(false)\n const [, setActiveIndex] = React.useState(-1)\n const handleClick = () => {\n setIsOpen(!isOpen)\n }\n\n React.useEffect(() => {\n if (isOpen) {\n document.addEventListener('mouseup', handleClickOutside)\n } else {\n document.removeEventListener('mouseup', handleClickOutside)\n }\n return () => {\n document.removeEventListener('mouseup', handleClickOutside)\n }\n }, [isOpen])\n\n const handleClickOutside = (event: any) => {\n if (\n listRef.current!.contains(event.target) ||\n activatorRef.current!.contains(event.target)\n ) {\n return\n }\n setIsOpen(false)\n }\n\n const userClick = (text: string) => {\n onUserClick(text)\n setIsOpen(false)\n }\n\n function Row({\n active,\n label\n }: {\n active: boolean\n label: string\n }) {\n const rowContent = (\n userClick(label)}>\n \n {truncate(label)}\n \n \n )\n\n if (active) {\n return (\n \n {rowContent}\n \n )\n }\n return rowContent\n }\n\n React.useEffect(() => {\n if (!isOpen) {\n setActiveIndex(-1)\n }\n }, [isOpen])\n\n return (\n \n \n setActiveIndex(-1)}\n >\n {\n textContent === ''\n ?\n Select an Address\n :\n {truncate(textContent)}\n }\n \n \n\n \n \n \n {\n items.map((name) => {\n return \n })\n }\n \n \n \n \n \n )\n};\n","// @ts-nocheck\nimport positionDown from \"assets/images/positionDown.png\";\nimport positionLeft from \"assets/images/positionLeft.png\";\nimport positionRight from \"assets/images/positionRight.png\";\nimport positionUp from \"assets/images/positionUp.png\";\nimport AddressStyledPanel from \"components/AddressStyledPanel\";\nimport DDCTokenSelection, { NFTItem } from \"components/CurrencyInputPanel/ddcToken\";\nimport AddressDropdown from \"components/Dropdown/AddressDropdown\";\nimport { loadingOpacityMixin } from \"components/Loader/styled\";\nimport { RowBetween } from \"components/Row\";\nimport TransactionConfirmationModal, { ConfirmationModalContent } from \"components/TransactionConfirmationModal\";\nimport { BigNumber, ethers } from 'ethers'\nimport { useToken } from \"hooks/Tokens\";\nimport useActiveWeb3React from \"hooks/useActiveWeb3React\";\nimport { useCallback, useEffect, useMemo, useState } from 'react'\nimport { TransactionType } from \"state/transactions/actions\";\nimport { useTransactionAdder } from \"state/transactions/hooks\";\nimport styled from \"styled-components/macro\";\nimport { PositionType } from \"types/position\";\nimport { TransactionResponse } from \"@ethersproject/providers\";\nimport {\n useClubManagerContract,\n useDoubleDownClubContract\n} from \"../../hooks/useContract\";\nimport { Input as NumericalInput } from \"../NumericalInput\";\nimport { CAPITAL_TYPE } from \"./enums\";\nimport useClubManager from '../../hooks/useClubManager'\n\nconst PrimaryPositionIdData = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n\n > * {\n margin-right: 8px;\n }\n`\n\nconst SelectLabel = styled.div`\n font-weight: 600;\n font-size: 24px;\n line-height: 40px;\n color: white;\n`\n\nconst ListItemLabel = styled.p`\n font-size: 18px;\n line-height: 22px;\n height: 22px;\n font-weight: 600;\n`\n\nconst NumericalInputContainer = styled.div`\n max-width: 100px;\n background: linear-gradient(73.6deg,#85FFC4 2.11%,#5CC6FF 42.39%,#BC85FF 85.72%);\n border-radius: 100px;\n padding: 1px;\n`\n\nconst StyledNumericalInput = styled(NumericalInput) <{ $loading: boolean, disabled: boolean }>`\n ${loadingOpacityMixin};\n font-size: 20px;\n border-radius: 100px;\n line-height: 38px;\n font-weight: 400;\n opacity: ${({ disabled }) => (!disabled ? 1 : 0.45)};\n background: #2F2A3C;\n text-align: left;\n`\n\ninterface DDCListItemProps {\n setActiveKey: (value: CAPITAL_TYPE | null) => void;\n activeKey: CAPITAL_TYPE | null;\n key: string;\n positionDetails: PositionType;\n index: number,\n}\n\nexport default function DDCListItem({ setActiveKey, activeKey, positionDetails, index }: DDCListItemProps) {\n const {\n asset: tokenAddress,\n amount: positionAmount,\n type: positionType,\n tokenIds\n } = positionDetails\n const { supplyAllowance, capPerDDC } = useClubManager();\n const { account } = useActiveWeb3React()\n const token = useToken(tokenAddress)\n const [collapse, setCollapse] = useState(true)\n\n const [txHash, setTxHash] = useState('')\n const [loading, setLoading] = useState(false)\n const [showConfirm, setShowConfirm] = useState(false)\n const [attemptingTxn, setAttemptingTxn] = useState(false) // clicked confirm\n\n const [undelegateItems, setUndelegateItems] = useState([])\n const [nftItem, setNftItem] = useState(null)\n const [invalidAddress, setInvalidAddress] = useState(true)\n const [invalidAmount, setInvalidAmount] = useState(true)\n const addTransaction = useTransactionAdder()\n const ddcContract = useDoubleDownClubContract(true)!\n const managerContract = useClubManagerContract(true)!\n\n const [amount, setAmount] = useState('0')\n const [address, setAddress] = useState('')\n const [delegatedAllowance, setDelegatedAllowance] = useState(0);\n \n\n const onChangeAddress = (address: string) => {\n setAddress(address)\n setInvalidAddress(!ethers.utils.isAddress(address) || account?.toLowerCase() === address.toLowerCase())\n }\n\n const onUserInput = (value: string) => {\n if (value.length > 0) {\n setInvalidAmount(parseInt(value) === 0 ? true : parseInt(value) > positionAmount)\n setAmount(parseInt(value).toString())\n } else {\n setInvalidAmount(true)\n setAmount(\"0\")\n }\n }\n\n const parseNumber = (num : BigNumber) => {\n return num.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n }\n\n const notEnoughAllowance = useMemo(() => {\n return parseFloat(supplyAllowance) < parseFloat(capPerDDC)\n }, [supplyAllowance, capPerDDC]);\n\n useEffect(() => {\n if (positionType === activeKey) {\n setCollapse(false)\n } else {\n setCollapse(true)\n }\n }, [activeKey, positionType])\n\n useEffect(() => {\n if (positionType === CAPITAL_TYPE.UNDELEGATE) {\n const delegatorList = tokenIds.map((item) => {\n return item?.to;\n });\n setUndelegateItems(delegatorList);\n }\n }, [positionType, tokenIds])\n\n const handleDismissConfirmation = useCallback(() => {\n setShowConfirm(false)\n // if there was a tx hash, we want to clear the input\n if (txHash) {\n setTxHash('')\n }\n }, [txHash])\n\n const onChangeCollapse = () => {\n if (collapse) {\n setActiveKey(positionType)\n } else {\n setActiveKey(null)\n }\n }\n\n const onDeposit = async () => {\n try {\n if (positionAmount > 0) {\n setLoading(true)\n\n const response: TransactionResponse = await ddcContract['safeTransferFrom(address,address,uint256)'](account, managerContract.address, nftItem?.id)\n addTransaction(response, {\n type: TransactionType.DDC_DEPOSIT\n })\n setTxHash(response.hash)\n setShowConfirm(true);\n await response.wait()\n }\n } catch (error) {\n console.error('Failed to send transaction', error)\n // we only care if the error is something _other_ than the user rejected the tx\n if (error?.code !== 4001) {\n console.error(error)\n }\n } finally {\n setNftItem(null)\n setLoading(false)\n setAttemptingTxn(false)\n }\n }\n\n const onWithdraw = async () => {\n try {\n if (positionAmount > 0) {\n setLoading(true)\n\n const response: TransactionResponse = await managerContract.withdraw(nftItem?.id);\n addTransaction(response, {\n type: TransactionType.DDC_WITHDRAW\n })\n setTxHash(response.hash)\n setShowConfirm(true);\n await response.wait()\n }\n } catch (error) {\n console.error('Failed to send transaction', error)\n // we only care if the error is something _other_ than the user rejected the tx\n if (error?.code !== 4001) {\n console.error(error)\n }\n } finally {\n setNftItem(null)\n setLoading(false)\n setAttemptingTxn(false)\n }\n }\n\n const onDelegate = async () => {\n try {\n if (positionAmount > 0 && !invalidAddress && !invalidAmount && !notEnoughAllowance) {\n setLoading(true)\n\n const response: TransactionResponse = await managerContract.delegate(address, amount);\n addTransaction(response, {\n type: TransactionType.DDC_DELEGATE\n })\n setTxHash(response.hash)\n setShowConfirm(true);\n await response.wait()\n }\n } catch (error) {\n console.error('Failed to send transaction', error)\n // we only care if the error is something _other_ than the user rejected the tx\n if (error?.code !== 4001) {\n console.error(error)\n }\n } finally {\n setLoading(false)\n setAttemptingTxn(false)\n }\n }\n\n const onUndelegate = async () => {\n try {\n if (positionAmount > 0 && address && !invalidAmount && parseFloat(parseNumber(delegatedAllowance)) >= parseFloat(parseNumber(capPerDDC)) * amount) {\n setLoading(true)\n\n const response: TransactionResponse = await managerContract.undelegate(address, amount);\n addTransaction(response, {\n type: TransactionType.DDC_UNDELEGATE\n })\n setTxHash(response.hash)\n setShowConfirm(true);\n await response.wait()\n }\n } catch (error) {\n console.error('Failed to send transaction', error)\n // we only care if the error is something _other_ than the user rejected the tx\n if (error?.code !== 4001) {\n console.error(error)\n }\n } finally {\n setLoading(false)\n setAttemptingTxn(false)\n }\n }\n\n const handleItemSelect = (item: NFTItem) => {\n setNftItem(item)\n }\n\n const onChangeContent = async (value: string) => {\n setAddress(value);\n const amountList = tokenIds.filter((item) => {\n return item.to === value;\n })\n setAmount(amountList[0].amount);\n if(value)\n {\n const allowance = await managerContract.getSupplyAllowance(value);\n setDelegatedAllowance(allowance);\n }\n setInvalidAmount(false)\n }\n\n return (\n <>\n (\n (\n \n )}\n />\n )}\n />\n \n <>\n
\n
\n
\n
\n \n {\n token &&\n <>\n {\n (\n positionType === CAPITAL_TYPE.DEPOSIT\n ?\n \"logo\"\n :\n (\n positionType === CAPITAL_TYPE.WITHDRAW ?\n \"logo\"\n :\n (\n positionType === CAPITAL_TYPE.DELEGATE ?\n \"logo\"\n :\n \"logo\"\n )\n )\n )\n }\n \n {positionDetails.text}\n \n  \n \n }\n \n
\n
\n

{positionAmount}

\n \"up\"\n\n \"down\"\n\n
\n
\n
\n \n
\n \n {\n (positionType === CAPITAL_TYPE.DEPOSIT || positionType === CAPITAL_TYPE.WITHDRAW) &&\n <>\n \n DDC\n \n
\n {\n throw new Error(\"Function not implemented.\");\n }}\n />\n
\n \n }\n {\n (positionType === CAPITAL_TYPE.DELEGATE) &&\n
\n
\n \n Address:\n \n \n
\n
\n \n Amount:\n \n \n \n \n
\n
\n }\n {\n positionType === CAPITAL_TYPE.UNDELEGATE &&\n
\n
\n \n Address:\n \n
\n \n
\n
\n
\n \n Amount:\n \n \n \n \n
\n
\n }\n
\n
\n
\n {\n positionType === CAPITAL_TYPE.DEPOSIT &&\n \n }\n {\n positionType === CAPITAL_TYPE.WITHDRAW &&\n \n }\n {\n positionType === CAPITAL_TYPE.DELEGATE &&\n \n }\n {\n positionType === CAPITAL_TYPE.UNDELEGATE &&\n \n }\n
\n
\n
\n \n \n \n )\n}\n","// @ts-nocheck\nimport useActiveWeb3React from \"hooks/useActiveWeb3React\";\nimport useDoubleDownClub from \"hooks/useDoubleDownClub\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport { gql, useQuery } from \"@apollo/client\";\nimport useInterval from '../../lib/hooks/useInterval'\nimport { CAPITAL_TYPE } from \"./enums\";\nimport DDCListItem from \"./listitem\";\nimport { SupportedChainId } from \"constants/chains\";\n\nconst DEPOSIT_HISTORY_QUERY = gql`\n query DepositDDCHistories($owner: String, $status: Boolean) {\n depositDDCHistories(where: {owner: $owner, active: $status}) {\n tokenId\n owner\n }\n }\n`\n\nconst DELEGATE_HISTORY_QUERY = gql`\n query DelegateDDCHistories($owner: String) {\n delegateDDCHistories(where: {from: $owner, amount_gt: 0}) {\n from\n to\n amount\n }\n }\n`\n\nconst assetAddr = {\n [SupportedChainId.MAINNET]: '0x874069Fa1Eb16D44d622F2e0Ca25eeA172369bC1',\n [SupportedChainId.GOERLI]: '',\n [SupportedChainId.CELO]: '',\n [SupportedChainId.ALFAJORES]: '0x874069Fa1Eb16D44d622F2e0Ca25eeA172369bC1',\n [SupportedChainId.AURORA]: '',\n [SupportedChainId.AURORA_TEST]: '',\n [SupportedChainId.KOVAN]: '',\n [SupportedChainId.POLYGON]: '',\n [SupportedChainId.POLYGON_MUMBAI]: '',\n [SupportedChainId.ARBITRUM_ONE]: '',\n [SupportedChainId.ARBITRUM_RINKEBY]: '',\n [SupportedChainId.OPTIMISM]: '',\n [SupportedChainId.OPTIMISTIC_KOVAN]: '',\n}\n\nexport default function DDCPosition() {\n const [activeKey, setActiveKey] = useState(null)\n const { tokenIds, balance } = useDoubleDownClub();\n const { account, chainId } = useActiveWeb3React();\n const [tokenAddr, setTokenAddr] = useState(assetAddr[1]);\n\n const { data: depositResp, refetch } = useQuery(DEPOSIT_HISTORY_QUERY, {\n variables: { owner: account?.toLowerCase(), status: true },\n });\n const { data: delegateResp, refetch: refetchDelegate } = useQuery(DELEGATE_HISTORY_QUERY, {\n variables: { owner: account?.toLowerCase() },\n });\n\n useEffect(() => {\n if(chainId) {\n setTokenAddr(assetAddr[chainId]);\n }\n }, [chainId])\n\n useInterval(() => refetch({ owner: account?.toLowerCase(), status: true }), 2000)\n useInterval(() => refetchDelegate({ owner: account?.toLowerCase() }), 2000)\n\n const depositData = useMemo(() => depositResp?.depositDDCHistories ?? [], [depositResp])\n const delegateData = useMemo(() => delegateResp?.delegateDDCHistories ?? [], [delegateResp])\n const withdrawItems = useMemo(() => depositData?.map((nftItem: any) => {\n return nftItem.tokenId;\n }) , [depositData])\n\n const delegateCount = delegateData.reduce((total, obj) => {\n console.log(obj);\n return parseInt(obj.amount) + total;\n }, 0);\n\n const positions = [\n { id: 0, type: CAPITAL_TYPE.DEPOSIT, text: 'Deposit', asset: tokenAddr, amount: parseInt(balance.toString()), tokenIds },\n { id: 1, type: CAPITAL_TYPE.WITHDRAW, text: 'Withdraw', asset: tokenAddr, amount: depositData.length - delegateCount, tokenIds: withdrawItems},\n { id: 2, type: CAPITAL_TYPE.DELEGATE, text: 'Delegate', asset: tokenAddr, amount: depositData.length - delegateCount, tokenIds: []},\n { id: 3, type: CAPITAL_TYPE.UNDELEGATE, text: 'Undelegate', asset: tokenAddr, amount: delegateCount, tokenIds: delegateData}\n ]\n\n return (\n <>\n {positions.map((p, index) => {\n return setActiveKey(value)}\n activeKey={activeKey}\n key={p.id.toString()}\n index={index}\n positionDetails={p}\n />\n })}\n \n )\n}\n","import { ButtonPrimary, ButtonText } from \"components/Button\";\nimport { AutoColumn } from \"components/Column\";\nimport DDCPosition from \"components/DDCPosition\";\nimport { SwapPoolTabs } from \"components/NavigationTabs\";\nimport { BigNumber } from \"ethers\";\nimport useClubManager from \"hooks/useClubManager\";\nimport { darken } from \"polished\";\nimport { useContext } from \"react\";\nimport { Activity } from \"react-feather\";\nimport { useWalletModalToggle } from \"state/application/hooks\";\nimport { useUserHideClosedPositions } from \"state/user/hooks\";\nimport styled, { ThemeContext } from \"styled-components/macro\";\nimport { ThemedText } from \"theme\";\nimport { UnsupportedChainIdError, useWeb3React } from \"packages/core\";\n\nimport { ButtonSecondary } from \"../../components/Button\";\n// import TransactionConfirmationModal, { ConfirmationModalContent } from \"../../components/TransactionConfirmationModal\";\n\nconst PageWrapper = styled(AutoColumn)`\n max-width: 870px;\n\n ${({ theme }) => theme.mediaWidth.upToMedium`\n max-width: 800px;\n `};\n\n ${({ theme }) => theme.mediaWidth.upToSmall`\n max-width: 500px;\n width:100%;\n `};\n`\n\nconst NoLiquidity = styled.div`\n align-items: center;\n display: flex;\n flex-direction: column;\n justify-content: center;\n margin: auto; \n width:416px;\n ${({ theme }) => theme.mediaWidth.upToSmall`\n width: 300px;\n `};\n`\n\nconst MainContentWrapper = styled.main`\n background-color: ${({ theme }) => theme.bg0};\n display: flex;\n flex-direction: column;\n`\nconst Web3StatusGeneric = styled(ButtonSecondary)`\n ${({ theme }) => theme.flexRowNoWrap}\n width: 100%;\n align-items: center;\n padding: 0.5rem;\n border-radius: 100px;\n cursor: pointer;\n user-select: none;\n height: 36px;\n margin-right: 0px;\n margin-left: 0px;\n :focus {\n outline: none;\n }\n`\n\nconst Web3StatusError = styled(Web3StatusGeneric)`\n background-color: ${({ theme }) => theme.red1};\n border: none;\n color: ${({ theme }) => theme.white};\n font-weight: 600;\n margin-top: 2em;\n height: 40px;\n :hover,\n :focus {\n background-color: ${({ theme }) => darken(0.1, theme.red1)};\n }\n`\n\nconst NetworkIcon = styled(Activity)`\n margin-left: 0.25rem;\n margin-right: 0.5rem;\n width: 16px;\n height: 16px;\n`\n\nconst Text = styled.p`\n flex: 1 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n margin: 0 0.5rem 0 0.25rem;\n font-size: 1rem;\n width: fit-content;\n font-weight: 600;\n \n`\n\nexport default function Join() {\n const { account, error } = useWeb3React()\n const toggleWalletModal = useWalletModalToggle()\n\n // const [showConfirm, setShowConfirm] = useState(false)\n // const [attemptingTxn, setAttemptingTxn] = useState(false) // clicked confirm\n // const [txHash, setTxHash] = useState('')\n\n // @ts-ignore\n const theme = useContext(ThemeContext)\n const { supplyAllowance, capPerDDC } = useClubManager();\n const [userHideClosedPositions, setUserHideClosedPositions] = useUserHideClosedPositions()\n const showConnectAWallet = Boolean(!account)\n // const pendingText = \"Pending Confirmation\";\n // const handleDismissConfirmation = useCallback(() => {\n // setShowConfirm(false)\n\n // }, [])\n\n const parseNumber = (num : BigNumber) => {\n return num.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n }\n\n return (\n <>\n \n \n \n
\n {/* (\n (\n \n )}\n />\n )}\n pendingText={pendingText}\n /> */}\n\n \n \n \n
\n \n {\n showConnectAWallet\n ?\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n {\"1\"}\n \n\n setUserHideClosedPositions(!userHideClosedPositions)}\n >\n Your positions will appear here\n \n {\n error instanceof UnsupportedChainIdError ?\n \n \n {error instanceof UnsupportedChainIdError ? <>Wrong Network : Error}\n \n : showConnectAWallet && (\n \n Connect Wallet\n \n )\n }\n \n :\n \n \n Capital Supply Allowance\n \n \n {parseNumber(supplyAllowance)}\n \n \n ${parseNumber(capPerDDC)} in value per DDC\n \n \n \n }\n \n
\n
\n
\n
\n
\n
\n
\n \n )\n}\n","import { LoadingRows as BaseLoadingRows } from 'components/Loader/styled'\nimport { Text } from 'rebass'\nimport styled from 'styled-components/macro'\n\nexport const Wrapper = styled.div`\n position: relative;\n padding: 20px;\n`\n\nexport const ClickableText = styled(Text)`\n :hover {\n cursor: pointer;\n }\n color: ${({ theme }) => theme.primary1};\n`\nexport const MaxButton = styled.button<{ width: string }>`\n padding: 0.5rem 1rem;\n background-color: ${({ theme }) => theme.primary5};\n border: 1px solid ${({ theme }) => theme.primary5};\n border-radius: 0.5rem;\n font-size: 1rem;\n ${({ theme }) => theme.mediaWidth.upToSmall`\n padding: 0.25rem 0.5rem;\n `};\n font-weight: 600;\n cursor: pointer;\n margin: 0.25rem;\n overflow: hidden;\n color: ${({ theme }) => theme.primary1};\n :hover {\n border: 1px solid ${({ theme }) => theme.primary1};\n }\n :focus {\n border: 1px solid ${({ theme }) => theme.primary1};\n outline: none;\n }\n`\n\nexport const Dots = styled.span`\n &::after {\n display: inline-block;\n animation: ellipsis 1.25s infinite;\n content: '.';\n width: 1em;\n text-align: left;\n }\n @keyframes ellipsis {\n 0% {\n content: '.';\n }\n 33% {\n content: '..';\n }\n 66% {\n content: '...';\n }\n }\n`\n\nexport const LoadingRows = styled(BaseLoadingRows)`\n min-width: 75%;\n max-width: 960px;\n grid-column-gap: 0.5em;\n grid-row-gap: 0.8em;\n grid-template-columns: repeat(3, 1fr);\n\n & > div:nth-child(4n + 1) {\n grid-column: 1 / 3;\n }\n & > div:nth-child(4n) {\n grid-column: 3 / 4;\n margin-bottom: 2em;\n }\n`\n","// @ts-nocheck\nimport { ButtonPrimary, ButtonText } from \"components/Button\";\nimport { AutoColumn } from \"components/Column\";\nimport Dropdown from \"components/Dropdown\";\nimport { SwapPoolTabs } from \"components/NavigationTabs\";\nimport PositionList from \"components/PositionList\";\nimport { RowBetween, RowFixed } from \"components/Row\";\nimport { darken } from \"polished\";\nimport { useContext, useEffect, useState } from \"react\";\nimport { Activity } from \"react-feather\";\nimport { Link } from \"react-router-dom\";\nimport { useWalletModalToggle } from \"state/application/hooks\";\nimport styled, { ThemeContext } from \"styled-components/macro\";\nimport { ThemedText } from \"theme\";\nimport { UnsupportedChainIdError, useWeb3React } from \"packages/core\";\n\nimport { gql, useQuery } from \"@apollo/client\";\n\nimport { ButtonSecondary } from \"../../components/Button\";\nimport { AMMS_PER_NETWORK } from \"../../constants/amm\";\nimport useInterval from \"../../lib/hooks/useInterval\";\nimport { LoadingRows } from \"./styleds\";\nimport { ALL_SUPPORTED_CHAIN_IDS } from \"constants/chains\";\n\nrequire('./style.css');\n\n\nconst PageWrapper = styled(AutoColumn)`\n max-width: 870px;\n\n ${({ theme }) => theme.mediaWidth.upToMedium`\n max-width: 800px;\n `};\n\n ${({ theme }) => theme.mediaWidth.upToSmall`\n max-width: 500px;\n width:100%;\n `};\n`\nconst TitleRow = styled(RowBetween)`\n color: ${({ theme }) => theme.text2};\n flex-wrap: wrap;\n gap: 12px;\n ${({ theme }) => theme.mediaWidth.upToSmall`\n width: 100%;\n `};\n width:512px;\n`\nconst ButtonRow = styled(RowFixed)`\n & > *:not(:last-child) {\n margin-left: 0px;\n }\n width: 100%;\n flex-direction: row;\n justify-content: space-between;\n`\n\nconst NoLiquidity = styled.div`\n align-items: center;\n display: flex;\n flex-direction: column;\n justify-content: center;\n margin: auto; \n width:416px;\n ${({ theme }) => theme.mediaWidth.upToSmall`\n width: 300px;\n`};\n`\nconst ResponsiveButtonPrimary = styled(ButtonPrimary)`\n border-radius: 100px;\n padding: 8px 8px;\n width: 184px;\n height:40px;\n border: none;\n font-size:16px;\n font-weight:600;\n ${({ theme }) => theme.mediaWidth.upToSmall`\n width: 48%;\n `};\n`\n\nconst MainContentWrapper = styled.main`\n background-color: ${({ theme }) => theme.bg0};\n\n display: flex;\n flex-direction: column;\n`\nconst Web3StatusGeneric = styled(ButtonSecondary)`\n ${({ theme }) => theme.flexRowNoWrap}\n width: 100%;\n align-items: center;\n padding: 0.5rem;\n border-radius: 100px;\n cursor: pointer;\n user-select: none;\n height: 36px;\n margin-right: 0px;\n margin-left: 0px;\n :focus {\n outline: none;\n }\n`\n\nconst Web3StatusError = styled(Web3StatusGeneric)`\n background-color: ${({ theme }) => theme.red1};\n color: ${({ theme }) => theme.white};\n font-weight: 600;\n border: none;\n margin-top: 2em;\n height: 40px;\n :hover,\n :focus {\n background-color: ${({ theme }) => darken(0.1, theme.red1)};\n }\n`\n\nconst NetworkIcon = styled(Activity)`\n margin-left: 0.25rem;\n margin-right: 0.5rem;\n width: 16px;\n height: 16px;\n`\n\nconst Text = styled.p`\n flex: 1 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n margin: 0 0.5rem 0 0.25rem;\n font-size: 1rem;\n width: fit-content;\n font-weight: 600;\n`\n\nfunction PositionsLoadingPlaceholder() {\n return (\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n )\n}\n\nconst LIQUIDITY_QUERY = gql`\n query GetLiquidities($account: String, $amm: String) {\n exist: liquidities(\n where: {owner: $account, ammType: $amm, lpAmount_not:0}\n orderBy: asset\n orderDirection: asc\n ) {\n id\n asset\n capital\n lpAmount\n ammType\n owner\n capitalAmount\n assetAmount\n bundle\n fee\n },\n nonExist: liquidities(\n where: {owner: $account, ammType: $amm, lpAmount:0}\n orderBy: asset\n orderDirection: asc\n ) {\n id\n asset\n capital\n lpAmount\n ammType\n owner\n capitalAmount\n assetAmount\n bundle\n fee\n }\n}\n`\n\nconst LIQUIDITY_QUERY_HIDE = gql`\n query GetLiquiditiesHide($account: String, $amm: String) {\n liquidities(where: {lpAmount_gt: 0,owner: $account, ammType: $amm}) {\n id\n asset\n capital\n lpAmount\n ammType\n owner\n capitalAmount\n assetAmount\n bundle\n fee\n }\n }\n`\n\nexport default function Pool() {\n const { account, chainId, error } = useWeb3React()\n const toggleWalletModal = useWalletModalToggle()\n const theme = useContext(ThemeContext)\n const [userHideClosedPositions, setUserHideClosedPositions] = useState(false);\n const showConnectAWallet = Boolean(!account)\n const [textContent, setContent] = useState('Ubeswap')\n const [liquidityQuery, setLiquidityQuery] = useState(LIQUIDITY_QUERY)\n const [data, setData] = useState(null)\n const { loading, data: queryData, refetch } = useQuery(liquidityQuery, {\n pollInterval: 1000,\n variables: { account, amm: textContent, hide: false },\n });\n\n useInterval(() => refetch({ account: account?.toLowerCase(), amm: textContent }), 1000)\n\n useEffect(() => {\n (async () => {\n setLiquidityQuery(userHideClosedPositions ? LIQUIDITY_QUERY_HIDE : LIQUIDITY_QUERY)\n await refetch({ account: account?.toLowerCase(), amm: textContent })\n })()\n }, [userHideClosedPositions, textContent, account, refetch])\n\n useEffect(() => {\n if (userHideClosedPositions) {\n if (queryData && queryData.liquidities) {\n const liquidities = JSON.parse(JSON.stringify(queryData.liquidities))\n liquidities.sort((a, b) => a.capital > b.capital ? -1 : 1)\n setData({ liquidities })\n }\n } else {\n if (queryData && queryData.exist && queryData.nonExist) {\n const exist = JSON.parse(JSON.stringify(queryData.exist))\n const nonExist = JSON.parse(JSON.stringify(queryData.nonExist))\n exist.sort((a, b) => a.capital > b.capital ? -1 : 1)\n nonExist.sort((a, b) => (a.capital > b.capital ? -1 : 1))\n setData({ liquidities: exist.concat(nonExist) })\n }\n }\n }, [queryData, userHideClosedPositions])\n\n useEffect(() => {\n const pool = window.localStorage.getItem('SELECT_POOL') || 'Ubeswap'\n if(AMMS_PER_NETWORK[chainId] !== undefined && !AMMS_PER_NETWORK[chainId].includes(pool)) {\n window.localStorage.setItem('SELECT_POOL', AMMS_PER_NETWORK[chainId][0])\n setContent(AMMS_PER_NETWORK[chainId][0]);\n } else {\n setContent(pool);\n }\n }, [setContent, chainId])\n\n const onChangeContent = (value) => {\n setContent(value)\n window.localStorage.setItem('SELECT_POOL', value)\n }\n \n return (\n <>\n \n \n \n \n \n \n \n \n New Position\n \n \n \n\n
\n \n {\n showConnectAWallet ?\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n setUserHideClosedPositions(!userHideClosedPositions)}\n >\n Your positions will appear here\n \n {\n error instanceof UnsupportedChainIdError ?\n \n \n {error instanceof UnsupportedChainIdError ? <>Wrong Network : Error}\n \n : showConnectAWallet && (\n\n \n Connect Wallet\n \n )\n }\n \n :\n loading ? (\n \n ) : ((data && data.liquidities && data.liquidities.length > 0) ? (\n \n\n ) : (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n setUserHideClosedPositions(!userHideClosedPositions)}\n >\n Your positions will appear here\n \n \n ))}\n \n
\n
\n
\n
\n \n )\n}\n","// @ts-nocheck\nimport { darken } from 'polished'\nimport { ReactNode } from 'react'\nimport styled from 'styled-components/macro'\n\nconst ToggleElement = styled.span<{ isActive?: boolean; isOnSwitch?: boolean }>`\n padding: 0.25rem 0.6rem;\n border-radius: 9px;\n background: ${({ theme, isActive, isOnSwitch }) => (isActive ? (isOnSwitch ? theme.primary1 : theme.bg4) : 'none')};\n color: ${({ theme, isActive }) => (isActive ? theme.white : theme.text2)};\n font-size: 14px;\n font-weight: ${({ isOnSwitch }) => (isOnSwitch ? '500' : '400')};\n :hover {\n user-select: ${({ isOnSwitch }) => (isOnSwitch ? 'none' : 'initial')};\n background: ${({ theme, isActive, isOnSwitch }) =>\n isActive ? (isOnSwitch ? darken(0.05, theme.primary1) : darken(0.05, theme.bg4)) : 'none'};\n color: ${({ theme, isActive, isOnSwitch }) => (isActive ? (isOnSwitch ? theme.white : theme.white) : theme.text3)};\n }\n`\n\nconst StyledToggle = styled.button<{ isActive?: boolean; activeElement?: boolean }>`\n border-radius: 12px;\n border: none;\n background: ${({ theme }) => theme.bg0};\n display: flex;\n width: fit-content;\n cursor: pointer;\n outline: none;\n padding: 2px;\n`\n\ninterface ToggleProps {\n id?: string\n isActive: boolean\n toggle: () => void\n checked?: ReactNode\n unchecked?: ReactNode\n}\n\nexport default function Toggle({\n id,\n isActive,\n toggle,\n checked = On,\n unchecked = Off,\n}: ToggleProps) {\n return (\n \n \n {checked}\n \n \n {unchecked}\n \n \n )\n}\n","import { BigNumber } from '@ethersproject/bignumber'\nimport { Currency, CurrencyAmount } from '@uniswap/sdk-core'\nimport { Pool } from '@uniswap/v3-sdk'\nimport { useSingleCallResult } from 'lib/hooks/multicall'\nimport useBlockNumber from 'lib/hooks/useBlockNumber'\nimport { useEffect, useState } from 'react'\nimport { unwrappedToken } from 'utils/unwrappedToken'\n\nimport { useV3NFTPositionManagerContract } from './useContract'\n\nconst MAX_UINT128 = BigNumber.from(2).pow(128).sub(1)\n\n// compute current + counterfactual fees for a v3 position\nexport function useV3PositionFees(\n pool?: Pool,\n tokenId?: BigNumber,\n asWETH = false\n): [CurrencyAmount, CurrencyAmount] | [undefined, undefined] {\n const positionManager = useV3NFTPositionManagerContract(false)\n const owner: string | undefined = useSingleCallResult(tokenId ? positionManager : null, 'ownerOf', [tokenId])\n .result?.[0]\n\n const tokenIdHexString = tokenId?.toHexString()\n const latestBlockNumber = useBlockNumber()\n\n // TODO find a way to get this into multicall\n // latestBlockNumber is included to ensure data stays up-to-date every block\n const [amounts, setAmounts] = useState<[BigNumber, BigNumber]>()\n useEffect(() => {\n let stale = false\n\n if (positionManager && tokenIdHexString && owner && typeof latestBlockNumber === 'number') {\n positionManager.callStatic\n .collect(\n {\n tokenId: tokenIdHexString,\n recipient: owner, // some tokens might fail if transferred to address(0)\n amount0Max: MAX_UINT128,\n amount1Max: MAX_UINT128,\n },\n { from: owner } // need to simulate the call as the owner\n )\n .then((results) => {\n if (!stale) setAmounts([results.amount0, results.amount1])\n })\n }\n\n return () => {\n stale = true\n }\n }, [positionManager, tokenIdHexString, owner, latestBlockNumber])\n\n if (pool && amounts) {\n return [\n CurrencyAmount.fromRawAmount(!asWETH ? unwrappedToken(pool.token0) : pool.token0, amounts[0].toString()),\n CurrencyAmount.fromRawAmount(!asWETH ? unwrappedToken(pool.token1) : pool.token1, amounts[1].toString()),\n ]\n } else {\n return [undefined, undefined]\n }\n}\n","import { BigNumber } from '@ethersproject/bignumber'\nimport JSBI from 'jsbi'\nimport { NEVER_RELOAD, useSingleCallResult } from 'lib/hooks/multicall'\nimport { useMemo } from 'react'\n\nimport { useV3NFTPositionManagerContract } from './useContract'\n\ntype TokenId = number | JSBI | BigNumber\n\nconst STARTS_WITH = 'data:application/json;base64,'\n\ntype UsePositionTokenURIResult =\n | {\n valid: true\n loading: false\n result: {\n name: string\n description: string\n image: string\n }\n }\n | {\n valid: false\n loading: false\n }\n | {\n valid: true\n loading: true\n }\n\nexport function usePositionTokenURI(tokenId: TokenId | undefined): UsePositionTokenURIResult {\n const contract = useV3NFTPositionManagerContract()\n const inputs = useMemo(\n () => [tokenId instanceof BigNumber ? tokenId.toHexString() : tokenId?.toString(16)],\n [tokenId]\n )\n const { result, error, loading, valid } = useSingleCallResult(contract, 'tokenURI', inputs, {\n ...NEVER_RELOAD,\n gasRequired: 3_000_000,\n })\n\n return useMemo(() => {\n if (error || !valid || !tokenId) {\n return {\n valid: false,\n loading: false,\n }\n }\n if (loading) {\n return {\n valid: true,\n loading: true,\n }\n }\n if (!result) {\n return {\n valid: false,\n loading: false,\n }\n }\n const [tokenURI] = result as [string]\n if (!tokenURI || !tokenURI.startsWith(STARTS_WITH))\n return {\n valid: false,\n loading: false,\n }\n\n try {\n const json = JSON.parse(atob(tokenURI.slice(STARTS_WITH.length)))\n\n return {\n valid: true,\n loading: false,\n result: json,\n }\n } catch (error) {\n return { valid: false, loading: false }\n }\n }, [error, loading, result, tokenId, valid])\n}\n","// @ts-nocheck\nimport { BigNumber } from '@ethersproject/bignumber'\nimport { TransactionResponse } from '@ethersproject/providers'\nimport { Currency, CurrencyAmount, Fraction, Percent, Price, Token } from '@uniswap/sdk-core'\nimport { NonfungiblePositionManager, Pool, Position } from '@uniswap/v3-sdk'\nimport Badge from 'components/Badge'\nimport { ButtonConfirmed, ButtonGray, ButtonPrimary } from 'components/Button'\nimport { DarkCard, LightCard } from 'components/Card'\nimport { AutoColumn } from 'components/Column'\nimport CurrencyLogo from 'components/CurrencyLogo'\nimport DoubleCurrencyLogo from 'components/DoubleLogo'\nimport Loader from 'components/Loader'\nimport { RowBetween, RowFixed } from 'components/Row'\nimport { Dots } from 'components/swap/styleds'\nimport Toggle from 'components/Toggle'\nimport TransactionConfirmationModal, { ConfirmationModalContent } from 'components/TransactionConfirmationModal'\nimport { useToken } from 'hooks/Tokens'\nimport useActiveWeb3React from 'hooks/useActiveWeb3React'\nimport { useV3NFTPositionManagerContract } from 'hooks/useContract'\nimport useIsTickAtLimit from 'hooks/useIsTickAtLimit'\nimport { PoolState, usePool } from 'hooks/usePools'\nimport useUSDCPrice from 'hooks/useUSDCPrice'\nimport { useV3PositionFees } from 'hooks/useV3PositionFees'\nimport { useV3PositionFromTokenId } from 'hooks/useV3Positions'\nimport { useSingleCallResult } from 'lib/hooks/multicall'\nimport useNativeCurrency from 'lib/hooks/useNativeCurrency'\nimport { useCallback, useMemo, useRef, useState } from 'react'\nimport ReactGA from 'react-ga4'\nimport { Link, RouteComponentProps } from 'react-router-dom'\nimport { Bound } from 'state/mint/v3/actions'\nimport { useIsTransactionPending, useTransactionAdder } from 'state/transactions/hooks'\nimport styled from 'styled-components/macro'\nimport { ExternalLink, HideExtraSmall, ThemedText } from 'theme'\nimport { currencyId } from 'utils/currencyId'\nimport { formatCurrencyAmount } from 'utils/formatCurrencyAmount'\nimport { formatTickPrice } from 'utils/formatTickPrice'\nimport { unwrappedToken } from 'utils/unwrappedToken'\n\nimport RangeBadge from '../../components/Badge/RangeBadge'\nimport { getPriceOrderingFromPositionForUI } from '../../components/PositionListItem'\nimport RateToggle from '../../components/RateToggle'\nimport { usePositionTokenURI } from '../../hooks/usePositionTokenURI'\nimport useTheme from '../../hooks/useTheme'\nimport { TransactionType } from '../../state/transactions/actions'\nimport { calculateGasMargin } from '../../utils/calculateGasMargin'\nimport { ExplorerDataType, getExplorerLink } from '../../utils/getExplorerLink'\nimport { LoadingRows } from './styleds'\n\nconst PageWrapper = styled.div`\n min-width: 800px;\n max-width: 960px;\n\n ${({ theme }) => theme.mediaWidth.upToMedium`\n min-width: 680px;\n max-width: 680px;\n `};\n\n ${({ theme }) => theme.mediaWidth.upToSmall`\n min-width: 600px;\n max-width: 600px;\n `};\n\n @media only screen and (max-width: 620px) {\n min-width: 500px;\n max-width: 500px;\n }\n\n ${({ theme }) => theme.mediaWidth.upToExtraSmall`\n min-width: 340px;\n max-width: 340px;\n `};\n`\n\nconst BadgeText = styled.div`\n font-weight: 600;\n font-size: 14px;\n`\n\n// responsive text\n// disable the warning because we don't use the end prop, we just want to filter it out\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst Label = styled(({ end, ...props }) => )<{ end?: boolean }>`\n display: flex;\n font-size: 16px;\n justify-content: ${({ end }) => (end ? 'flex-end' : 'flex-start')};\n align-items: center;\n`\n\nconst ExtentsText = styled.span`\n color: ${({ theme }) => theme.text2};\n font-size: 14px;\n text-align: center;\n margin-right: 4px;\n font-weight: 600;\n`\n\nconst HoverText = styled(ThemedText.Main)`\n text-decoration: none;\n color: ${({ theme }) => theme.text3};\n :hover {\n color: ${({ theme }) => theme.text1};\n text-decoration: none;\n }\n`\n\nconst DoubleArrow = styled.span`\n color: ${({ theme }) => theme.text3};\n margin: 0 1rem;\n`\nconst ResponsiveRow = styled(RowBetween)`\n ${({ theme }) => theme.mediaWidth.upToSmall`\n flex-direction: column;\n align-items: flex-start;\n row-gap: 16px;\n width: 100%:\n `};\n`\n\nconst ResponsiveButtonPrimary = styled(ButtonPrimary)`\n border-radius: 12px;\n padding: 6px 8px;\n width: fit-content;\n ${({ theme }) => theme.mediaWidth.upToSmall`\n flex: 1 1 auto;\n width: 49%;\n `};\n`\n\nconst NFTGrid = styled.div`\n display: grid;\n grid-template: 'overlap';\n min-height: 400px;\n`\n\nconst NFTCanvas = styled.canvas`\n grid-area: overlap;\n`\n\nconst NFTImage = styled.img`\n grid-area: overlap;\n height: 400px;\n /* Ensures SVG appears on top of canvas. */\n z-index: 1;\n`\n\nfunction CurrentPriceCard({\n inverted,\n pool,\n currencyQuote,\n currencyBase,\n}: {\n inverted?: boolean\n pool?: Pool | null\n currencyQuote?: Currency\n currencyBase?: Currency\n}) {\n if (!pool || !currencyQuote || !currencyBase) {\n return null\n }\n\n return (\n \n \n \n Current price\n \n \n {(inverted ? pool.token1Price : pool.token0Price).toSignificant(6)}{' '}\n \n \n \n {currencyQuote?.symbol} per {currencyBase?.symbol}\n \n \n \n \n )\n}\n\nfunction LinkedCurrency({ chainId, currency }: { chainId?: number; currency?: Currency }) {\n const address = (currency as Token)?.address\n\n if (typeof chainId === 'number' && address) {\n return (\n \n \n \n {currency?.symbol} ↗\n \n \n )\n }\n\n return (\n \n \n {currency?.symbol}\n \n )\n}\n\nfunction getRatio(\n lower: Price,\n current: Price,\n upper: Price\n) {\n try {\n if (!current.greaterThan(lower)) {\n return 100\n } else if (!current.lessThan(upper)) {\n return 0\n }\n\n const a = Number.parseFloat(lower.toSignificant(15))\n const b = Number.parseFloat(upper.toSignificant(15))\n const c = Number.parseFloat(current.toSignificant(15))\n\n const ratio = Math.floor((1 / ((Math.sqrt(a * b) - Math.sqrt(b * c)) / (c - Math.sqrt(b * c)) + 1)) * 100)\n\n if (ratio < 0 || ratio > 100) {\n throw Error('Out of range')\n }\n\n return ratio\n } catch {\n return undefined\n }\n}\n\n// snapshots a src img into a canvas\nfunction getSnapshot(src: HTMLImageElement, canvas: HTMLCanvasElement, targetHeight: number) {\n const context = canvas.getContext('2d')\n\n if (context) {\n let { width, height } = src\n\n // src may be hidden and not have the target dimensions\n const ratio = width / height\n height = targetHeight\n width = Math.round(ratio * targetHeight)\n\n // Ensure crispness at high DPIs\n canvas.width = width * devicePixelRatio\n canvas.height = height * devicePixelRatio\n canvas.style.width = width + 'px'\n canvas.style.height = height + 'px'\n context.scale(devicePixelRatio, devicePixelRatio)\n\n context.clearRect(0, 0, width, height)\n context.drawImage(src, 0, 0, width, height)\n }\n}\n\nfunction NFT({ image, height: targetHeight }: { image: string; height: number }) {\n const [animate, setAnimate] = useState(false)\n\n const canvasRef = useRef(null)\n const imageRef = useRef(null)\n\n return (\n {\n setAnimate(true)\n }}\n onMouseLeave={() => {\n // snapshot the current frame so the transition to the canvas is smooth\n if (imageRef.current && canvasRef.current) {\n getSnapshot(imageRef.current, canvasRef.current, targetHeight)\n }\n setAnimate(false)\n }}\n >\n \n