{"version":3,"file":"static/chunks/pages/remove-liquidity-6911170a7c66ad29.js","mappings":"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","sources":["webpack://_N_E/./node_modules/date-fns/esm/addDays/index.js","webpack://_N_E/./node_modules/date-fns/esm/addMonths/index.js","webpack://_N_E/./node_modules/date-fns/esm/add/index.js","webpack://_N_E/?31a0","webpack://_N_E/./src/components/DebouncedInput/DebouncedInput.tsx","webpack://_N_E/./src/components/DebouncedInput/index.ts","webpack://_N_E/./src/components/Swap/components/HeaderControls/HeaderControls.tsx","webpack://_N_E/./src/components/Swap/components/HeaderControls/index.ts","webpack://_N_E/./src/components/Toast/Toast.tsx","webpack://_N_E/./src/components/Toast/index.ts","webpack://_N_E/./src/hooks/pair/usePairDetails.ts","webpack://_N_E/./src/constants/swap.ts","webpack://_N_E/./src/hooks/swap/useSwapSettings.ts","webpack://_N_E/./src/hooks/token/useTokenBalance.ts","webpack://_N_E/./src/components/Swap/components/QuickAmountButtons/QuickAmountButtons.tsx","webpack://_N_E/./src/components/Swap/components/QuickAmountButtons/index.ts","webpack://_N_E/./src/hooks/liquidity/useWithdrawLiquidity.ts","webpack://_N_E/./src/hooks/liquidity/useWithdrawLiquidityOutput.ts","webpack://_N_E/./src/screens/pair-details/WithdrawLiquiditySubmitButton/WithdrawLiquiditySubmitButton.tsx","webpack://_N_E/./src/screens/pair-details/WithdrawLiquiditySubmitButton/index.ts","webpack://_N_E/./src/components/WithdrawLiquidity/WithdrawLiquidity.tsx","webpack://_N_E/./src/components/WithdrawLiquidity/index.ts","webpack://_N_E/./src/hooks/liquidity/useWithdrawLiquidityAvailability.ts","webpack://_N_E/./src/pages/remove-liquidity/index.tsx","webpack://_N_E/./src/components/DebouncedInput/DebouncedInput.module.scss","webpack://_N_E/./src/components/Swap/Swap.module.scss","webpack://_N_E/./src/components/Swap/components/HeaderControls/HeaderControls.module.scss","webpack://_N_E/./src/components/Swap/components/QuickAmountButtons/QuickAmountButtons.module.scss","webpack://_N_E/./src/components/Toast/Toast.module.scss","webpack://_N_E/"],"sourcesContent":["import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} - the new date with the days added\n * @throws {TypeError} - 2 arguments required\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\nexport default function addDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n if (!amount) {\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n date.setDate(date.getDate() + amount);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMonths\n * @category Month Helpers\n * @summary Add the specified number of months to the given date.\n *\n * @description\n * Add the specified number of months to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the months added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 5 months to 1 September 2014:\n * const result = addMonths(new Date(2014, 8, 1), 5)\n * //=> Sun Feb 01 2015 00:00:00\n */\nexport default function addMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n if (!amount) {\n // If 0 months, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n var dayOfMonth = date.getDate();\n\n // The JS Date object supports date math by accepting out-of-bounds values for\n // month, day, etc. For example, new Date(2020, 0, 0) returns 31 Dec 2019 and\n // new Date(2020, 13, 1) returns 1 Feb 2021. This is *almost* the behavior we\n // want except that dates will wrap around the end of a month, meaning that\n // new Date(2020, 13, 31) will return 3 Mar 2021 not 28 Feb 2021 as desired. So\n // we'll default to the end of the desired month by adding 1 to the desired\n // month and using a date of 0 to back up one day to the end of the desired\n // month.\n var endOfDesiredMonth = new Date(date.getTime());\n endOfDesiredMonth.setMonth(date.getMonth() + amount + 1, 0);\n var daysInMonth = endOfDesiredMonth.getDate();\n if (dayOfMonth >= daysInMonth) {\n // If we're already at the end of the month, then this is the correct date\n // and we're done.\n return endOfDesiredMonth;\n } else {\n // Otherwise, we now know that setting the original day-of-month value won't\n // cause an overflow, so set the desired day-of-month. Note that we can't\n // just set the date of `endOfDesiredMonth` because that object may have had\n // its time changed in the unusual case where where a DST transition was on\n // the last day of the month and its local time was in the hour skipped or\n // repeated next to a DST transition. So we use `date` instead which is\n // guaranteed to still have the original time.\n date.setFullYear(endOfDesiredMonth.getFullYear(), endOfDesiredMonth.getMonth(), dayOfMonth);\n return date;\n }\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport addDays from \"../addDays/index.js\";\nimport addMonths from \"../addMonths/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name add\n * @category Common Helpers\n * @summary Add the specified years, months, weeks, days, hours, minutes and seconds to the given date.\n *\n * @description\n * Add the specified years, months, weeks, days, hours, minutes and seconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Duration} duration - the object with years, months, weeks, days, hours, minutes and seconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n *\n * | Key | Description |\n * |----------------|------------------------------------|\n * | years | Amount of years to be added |\n * | months | Amount of months to be added |\n * | weeks | Amount of weeks to be added |\n * | days | Amount of days to be added |\n * | hours | Amount of hours to be added |\n * | minutes | Amount of minutes to be added |\n * | seconds | Amount of seconds to be added |\n *\n * All values default to 0\n *\n * @returns {Date} the new date with the seconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add the following duration to 1 September 2014, 10:19:50\n * const result = add(new Date(2014, 8, 1, 10, 19, 50), {\n * years: 2,\n * months: 9,\n * weeks: 1,\n * days: 7,\n * hours: 5,\n * minutes: 9,\n * seconds: 30,\n * })\n * //=> Thu Jun 15 2017 15:29:20\n */\nexport default function add(dirtyDate, duration) {\n requiredArgs(2, arguments);\n if (!duration || _typeof(duration) !== 'object') return new Date(NaN);\n var years = duration.years ? toInteger(duration.years) : 0;\n var months = duration.months ? toInteger(duration.months) : 0;\n var weeks = duration.weeks ? toInteger(duration.weeks) : 0;\n var days = duration.days ? toInteger(duration.days) : 0;\n var hours = duration.hours ? toInteger(duration.hours) : 0;\n var minutes = duration.minutes ? toInteger(duration.minutes) : 0;\n var seconds = duration.seconds ? toInteger(duration.seconds) : 0;\n\n // Add years and months\n var date = toDate(dirtyDate);\n var dateWithMonths = months || years ? addMonths(date, months + years * 12) : date;\n\n // Add weeks and days\n var dateWithDays = days || weeks ? addDays(dateWithMonths, days + weeks * 7) : dateWithMonths;\n\n // Add days, hours, minutes and seconds\n var minutesToAdd = minutes + hours * 60;\n var secondsToAdd = seconds + minutesToAdd * 60;\n var msToAdd = secondsToAdd * 1000;\n var finalDate = new Date(dateWithDays.getTime() + msToAdd);\n return finalDate;\n}","\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/remove-liquidity\",\n function () {\n return require(\"private-next-pages/remove-liquidity/index.tsx\");\n }\n ]);\n if(module.hot) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/remove-liquidity\"])\n });\n }\n ","import { Input } from '@chakra-ui/react';\nimport fromExponential from 'from-exponential';\nimport { debounce } from 'lodash';\nimport React, {\n FC,\n KeyboardEventHandler,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState\n} from 'react';\n\nimport s from './DebouncedInput.module.scss';\nimport clsx from 'clsx';\n\ninterface Props {\n amount: string;\n onChange?: (val: string) => void;\n readOnlyValue?: string;\n disabled?: boolean;\n textAlign?: 'left' | 'right';\n placeholder?: string;\n type?: 'text' | 'number';\n isError?: boolean;\n}\n\nconst useDebounce = (callback: () => void) => {\n /* eslint-disable */\n // @ts-ignore\n const ref = useRef();\n\n useEffect(() => {\n ref.current = callback;\n }, [callback]);\n\n return useMemo(() => {\n const func = () => {\n ref.current?.();\n };\n\n return debounce(func, 700);\n }, []);\n};\n\nexport const DebouncedInput: FC = ({\n amount,\n onChange,\n disabled,\n readOnlyValue,\n textAlign = 'right',\n placeholder,\n type = 'number',\n isError\n}) => {\n const [value, setValue] = useState(amount);\n\n const onChangeHandler = () => {\n onChange?.(value);\n };\n\n const debouncedOnChange = useDebounce(onChangeHandler);\n\n const handleSearchKeyup = useCallback(\n e => {\n if (e.key === 'Enter') {\n debouncedOnChange.flush();\n } else if (e.key === 'Escape') {\n debouncedOnChange.cancel();\n setValue('');\n onChange?.('');\n }\n },\n [debouncedOnChange]\n );\n\n useEffect(() => {\n if (value !== amount) {\n setValue(amount);\n }\n }, [amount]);\n\n return (\n {\n debouncedOnChange();\n setValue(e.target.value);\n }}\n disabled={disabled || !onChange}\n placeholder={placeholder ?? '0.00'}\n _placeholder={{ color: 'neutral.400' }}\n className={clsx(s.input, {\n [s.error]: isError\n })}\n />\n );\n};\n","export * from './DebouncedInput';\n","import { RepeatIcon } from '@chakra-ui/icons';\nimport {\n HStack,\n IconButton,\n Input,\n useDisclosure,\n PopoverBody,\n PopoverTrigger,\n PopoverContent,\n Popover\n} from '@chakra-ui/react';\nimport React, { FC, useState, useEffect } from 'react';\n\nimport { useSwapSettings } from '@app/hooks/swap/useSwapSettings';\nimport { Icon } from '@app/components/Icon';\n\nimport s from './HeaderControls.module.scss';\n\ninterface Props {\n onRefresh?: () => void;\n}\n\nexport const HeaderControls: FC = ({ onRefresh }) => {\n const { isOpen, onOpen, onClose } = useDisclosure();\n const [slippage, setSlippage] = useState('');\n const [deadline, setDeadline] = useState('');\n\n const { settings, updateSettings } = useSwapSettings();\n\n useEffect(() => {\n if (settings) {\n setSlippage(settings.slippage.toString());\n setDeadline(settings.deadline.toString());\n }\n }, [settings]);\n\n return (\n \n {onRefresh && (\n \n }\n onClick={onRefresh}\n />\n )}\n \n \n \n }\n onClick={onOpen}\n />\n \n \n \n
\n
MAX slippage
\n \n {\n setSlippage(e.target.value);\n await updateSettings({\n slippage: Number(e.target.value),\n deadline: Number(deadline)\n });\n }}\n placeholder=\"0\"\n />\n
%
\n
\n
\n\n
\n\n
\n
Transaction deadline
\n \n {\n setDeadline(e.target.value);\n await updateSettings({\n deadline: Number(e.target.value),\n slippage: Number(slippage)\n });\n }}\n placeholder=\"0\"\n />\n
minutes
\n
\n
\n \n \n \n \n );\n};\n","export * from './HeaderControls';\n","import { Box, Button, VStack } from '@chakra-ui/react';\nimport cn from 'clsx';\nimport React, { FC, PropsWithChildren, ReactNode } from 'react';\nimport { cssTransition, toast } from 'react-toastify';\n\nimport { Icon, IconName } from '@app/components/Icon';\n\nimport s from './Toast.module.scss';\n\ninterface Props extends PropsWithChildren {\n status: 'info' | 'error' | 'warning' | 'success';\n text: string;\n closeToast?: () => void;\n}\n\nexport const backInOut = cssTransition({\n enter: 'animate__animated animate__backInDown',\n exit: 'animate__animated animate__backOutRight'\n});\n\nexport const Toast: FC = ({ status, text, closeToast, children }) => {\n let iconName;\n let title;\n\n switch (status) {\n case 'warning': {\n title = 'Warning';\n iconName = 'toastWarning';\n break;\n }\n case 'error': {\n title = 'Error';\n iconName = 'toastError';\n break;\n }\n default: {\n title = 'Success';\n iconName = 'toastSuccess';\n }\n }\n\n return (\n \n \n\n \n {text}\n {children}\n \n\n \n \n );\n};\n\nexport function showSuccessToast(msg: string, children?: ReactNode) {\n toast(\n \n {children}\n ,\n {\n transition: backInOut\n }\n );\n}\n\nexport function showErrorToast(msg: string) {\n toast(, {\n transition: backInOut\n });\n}\n","export * from './Toast';\n","import { useQuery, UseQueryOptions } from '@tanstack/react-query';\nimport { request, gql, Variables } from 'graphql-request';\n\nimport { QueryKeys } from 'src/constants/queryKeys';\n\nimport { config } from '@app/config';\nimport { Pair } from '@app/types/pool';\n\nexport const fetcher = (baseUrl: string, params: Variables) => {\n return request<{ pair: Pair }>(\n `${baseUrl}`,\n gql`\n query {\n pair(\n id: \"${params.id}\"\n )\n {\n id\n token0 {\n id\n totalSupply\n symbol\n name\n decimals\n tradeVolumeUSD\n tradeVolume\n totalLiquidity\n txCount\n derivedETH\n }\n token1 {\n id\n totalSupply\n symbol\n name\n decimals\n tradeVolumeUSD\n tradeVolume\n totalLiquidity\n txCount\n derivedETH\n }\n isStable\n reserve0\n reserve1\n reserveETH\n reserveUSD\n token0Price\n token1Price\n volumeUSD\n totalSupply\n liquidityPositions {\n liquidityTokenBalance\n user {\n id\n }\n }\n }\n }\n `,\n params\n );\n};\n\nexport const usePairDetails = (\n params: Variables = {},\n options: UseQueryOptions = {}\n) => {\n return useQuery(\n [QueryKeys.PAIR_DETAILS, { params }],\n async () => {\n const response = await fetcher(config.subgraphUrl as string, {\n ...params\n });\n\n return response.pair;\n },\n {\n enabled: !!params.id,\n staleTime: 60000,\n ...options\n }\n );\n};\n","export const DEFAULT_SETTINGS = {\n deadline: 20,\n slippage: 0.5\n};\n\nexport const SETTINGS_STORAGE_KEY = 'core_app_settings';\n","import localforage from 'localforage';\nimport { useCallback } from 'react';\nimport { useAsync } from 'react-use';\n\nimport { DEFAULT_SETTINGS, SETTINGS_STORAGE_KEY } from '@app/constants/swap';\n\nexport type SwapSetting = {\n deadline: number;\n slippage: number;\n};\n\nexport async function getSwapSettings() {\n const settings = await localforage.getItem(SETTINGS_STORAGE_KEY);\n\n return (settings ?? DEFAULT_SETTINGS) as SwapSetting;\n}\n\nexport function useSwapSettings(): {\n settings: SwapSetting | undefined;\n updateSettings: (values: SwapSetting) => Promise;\n} {\n const { value } = useAsync(async () => {\n return getSwapSettings();\n });\n\n const updateSettings = useCallback(async (values: SwapSetting) => {\n return localforage.setItem(SETTINGS_STORAGE_KEY, values);\n }, []);\n\n return {\n settings: value,\n updateSettings\n };\n}\n","import { useAsync } from 'react-use';\nimport { useContract } from '@thirdweb-dev/react-core';\nimport { bigNumberToDecimal } from '@app/helpers/format';\n\nexport function useTokenBalance(tokenContractAddress: string, address: string) {\n const { contract } = useContract(tokenContractAddress);\n\n const { value } = useAsync(async () => {\n if (!contract) {\n return;\n }\n\n const balance = await contract.call('balanceOf', [address]);\n const decimals = await contract.call('decimals');\n\n return bigNumberToDecimal(balance, decimals);\n }, [contract, address]);\n\n return {\n balance: value\n };\n}\n","import { Button, HStack } from '@chakra-ui/react';\nimport React, { FC } from 'react';\n\nimport s from './QuickAmountButtons.module.scss';\n\ninterface Props {\n onUpdate: (val: string) => void;\n balance: number | undefined;\n amount?: number | string;\n}\n\nexport const QuickAmountButtons: FC = ({\n balance,\n onUpdate,\n amount\n}) => {\n function renderButton(label: string, value: number, transparent?: boolean) {\n const isActive = amount && balance ? balance * value === +amount : false;\n\n if (transparent) {\n return (\n {\n if (balance !== undefined) {\n onUpdate((balance * value).toString());\n }\n }}\n >\n {label}\n \n );\n }\n\n return (\n {\n if (balance !== undefined) {\n onUpdate((balance * value).toString());\n }\n }}\n >\n {label}\n \n );\n }\n\n return (\n \n
\n {renderButton('25%', 0.25)}\n {renderButton('50%', 0.5)}\n {renderButton('75%', 0.75)}\n
\n {renderButton('MAX', 1, true)}\n
\n );\n};\n","export * from './QuickAmountButtons';\n","import { useAddress, useContract } from '@thirdweb-dev/react';\nimport { NATIVE_TOKEN_ADDRESS } from '@thirdweb-dev/sdk';\nimport { add } from 'date-fns';\nimport { useRouter } from 'next/router';\nimport { useEffect } from 'react';\nimport { useAsync, useAsyncFn } from 'react-use';\n\nimport { config } from '@app/config';\nimport {\n bigNumberToDecimal,\n numberToBigNumberFixed\n} from '@app/helpers/format';\nimport { getSwapSettings } from '@app/hooks/swap/useSwapSettings';\nimport { Pair } from '@app/types/pool';\n\nexport function useWithdrawLiquidity(pair: Pair | undefined, amount: string) {\n const { query } = useRouter();\n const address = useAddress();\n const { contract } = useContract(config.contracts.router);\n const { contract: pairContract } = useContract(\n pair?.id ?? (query.id as string)\n );\n\n const { value: pairDecimals } = useAsync(async () => {\n if (!pairContract) {\n return;\n }\n\n return pairContract.call('decimals');\n }, [pairContract]);\n\n const [{ loading: approvingWithdraw }, approveWithdraw] =\n useAsyncFn(async () => {\n if (\n !pairContract ||\n !config.contracts.router ||\n !amount ||\n !pairDecimals\n ) {\n return;\n }\n\n const _amount = numberToBigNumberFixed(+amount, pairDecimals);\n\n const res = await pairContract.call('approve', [\n config.contracts.router,\n _amount\n ]);\n\n await getAllowance();\n\n return res;\n }, [amount, pairContract, pairDecimals]);\n\n const [{ value: allowance, loading: fetchingAllowance }, getAllowance] =\n useAsyncFn(async () => {\n if (\n !pairContract ||\n !address ||\n !config.contracts.router ||\n !amount ||\n !pairDecimals\n ) {\n return;\n }\n\n try {\n const res = await pairContract.call('allowance', [\n address,\n config.contracts.router\n ]);\n\n return bigNumberToDecimal(res, pairDecimals);\n } catch (e) {\n // do nothing\n }\n }, [pairContract, address, amount, pairDecimals]);\n\n const [{ loading: withdrawingLiquidity, error }, withdrawLiquidity] =\n useAsyncFn(async () => {\n if (!pair || !amount || !contract || !pairDecimals) {\n return;\n }\n\n const settings = await getSwapSettings();\n\n const token0 = pair.token0;\n const token1 = pair.token1;\n\n if (token0.id === NATIVE_TOKEN_ADDRESS) {\n // eth => erc20\n return contract.call(\n 'removeLiquidityETHSupportingFeeOnTransferTokens',\n [\n token1.id,\n numberToBigNumberFixed(+amount, +pairDecimals),\n 0,\n 0,\n address,\n add(new Date(), { minutes: settings.deadline }).getTime()\n ]\n );\n } else if (token1.id === NATIVE_TOKEN_ADDRESS) {\n // erc20 => eth\n return contract.call(\n 'removeLiquidityETHSupportingFeeOnTransferTokens',\n [\n token0.id,\n numberToBigNumberFixed(+amount, +pairDecimals),\n 0,\n 0,\n address,\n add(new Date(), { minutes: settings.deadline }).getTime()\n ]\n );\n } else {\n return contract.call('removeLiquidity', [\n token0.id,\n token1.id,\n numberToBigNumberFixed(+amount, +pairDecimals),\n 0,\n 0,\n address,\n add(new Date(), { minutes: settings.deadline }).getTime()\n ]);\n }\n }, [contract, amount, pair, allowance, approveWithdraw, pairDecimals]);\n\n useEffect(() => {\n getAllowance();\n }, [getAllowance]);\n\n return {\n error,\n allowance,\n getAllowance,\n withdrawingLiquidity,\n fetchingAllowance,\n approvingWithdraw,\n withdrawLiquidity,\n approveWithdraw,\n pairDecimals\n };\n}\n","import { useContract } from '@thirdweb-dev/react';\nimport { useAsync } from 'react-use';\n\nimport { bigNumberToDecimal } from '@app/helpers/format';\nimport { Pair } from '@app/types/pool';\n\nexport function useWithdrawLiquidityOutput(\n pairAddress: string,\n amount: string,\n pair: Pair\n) {\n const { contract } = useContract(pairAddress);\n const { contract: token0Contract } = useContract(pair.token0.id);\n const { contract: token1Contract } = useContract(pair.token1.id);\n\n const { value, loading: loadingPair } = useAsync(async () => {\n if (!contract || !amount) {\n return;\n }\n\n const res = await contract.call('balanceOf', [pairAddress]);\n\n const decimals = await contract.call('decimals');\n\n const pairBalance = bigNumberToDecimal(res.toString(), decimals);\n\n const newPairBalance = pairBalance + +amount;\n\n const totalSupplyRes = await contract.call('totalSupply');\n\n const totalSupply = bigNumberToDecimal(totalSupplyRes.toString(), decimals);\n\n return {\n totalSupply,\n newPairBalance\n };\n }, [contract, pairAddress, amount]);\n\n const { value: balance0, loading: loadingBalance0 } = useAsync(async () => {\n if (!token0Contract) {\n return;\n }\n\n const res = await token0Contract.call('balanceOf', [pairAddress]);\n\n return bigNumberToDecimal(res.toString(), +pair.token0.decimals);\n }, [token0Contract, pairAddress, pair.token0]);\n\n const { value: balance1, loading: loadingBalance1 } = useAsync(async () => {\n if (!token1Contract) {\n return;\n }\n\n const res = await token1Contract.call('balanceOf', [pairAddress]);\n\n return bigNumberToDecimal(res.toString(), +pair.token1.decimals);\n }, [token1Contract, pairAddress, pair.token1]);\n\n const { value: output, loading } = useAsync(async () => {\n if (!value || !balance0 || !balance1) {\n return;\n }\n\n const { newPairBalance: liquidity, totalSupply } = value;\n\n const amount0 = (liquidity * balance0) / totalSupply;\n const amount1 = (liquidity * balance1) / totalSupply;\n\n return {\n amount0,\n amount1\n };\n }, [value, balance0, balance1]);\n\n return {\n output,\n loading: loading || loadingPair || loadingBalance0 || loadingBalance1\n };\n}\n","import { TransactionError } from '@thirdweb-dev/react';\nimport React, { FC } from 'react';\n\nimport { ExternalLink } from '@app/components/ExternalLink';\nimport { SubmitButton } from '@app/components/SubmitButton';\nimport { showErrorToast, showSuccessToast } from '@app/components/Toast';\n\ninterface Props {\n allowance: number | undefined;\n amount: string;\n isWithdrawInProgress: boolean;\n isApproveInProgress: boolean;\n withdrawLiquidity: () => Promise;\n approveWithdraw: () => Promise;\n onClose: () => void;\n balance: number;\n getWithdrawBalance: () => Promise;\n}\n\nexport const WithdrawLiquiditySubmitButton: FC = ({\n onClose,\n approveWithdraw,\n withdrawLiquidity,\n allowance,\n amount,\n isWithdrawInProgress,\n isApproveInProgress,\n balance,\n getWithdrawBalance\n}) => {\n if (allowance !== undefined && +allowance >= +amount) {\n return (\n balance}\n isLoading={isWithdrawInProgress}\n onClick={async () => {\n try {\n const res = await withdrawLiquidity();\n\n if (res['reason'] !== undefined) {\n showErrorToast(res.reason);\n } else {\n const txHash = res?.receipt?.transactionHash;\n\n showSuccessToast(\n `Successfully withdrawn ${amount} from pair`,\n \n );\n\n await getWithdrawBalance();\n\n onClose();\n }\n } catch (e) {\n if (e instanceof TransactionError) {\n showErrorToast(e.reason);\n } else {\n showErrorToast(`Error withdraw ${amount} from pair`);\n }\n }\n }}\n label=\"Remove\"\n loadingText=\"Processing...\"\n />\n );\n }\n\n return (\n +amount || +amount > balance\n }\n isLoading={isApproveInProgress}\n onClick={async () => {\n try {\n const res = await approveWithdraw();\n\n if (res['reason'] !== undefined) {\n showErrorToast(res.reason);\n } else {\n const txHash = res?.receipt?.transactionHash;\n\n showSuccessToast(\n `Successfully approved withdraw ${amount} from pair`,\n \n );\n }\n } catch (e) {\n if (e instanceof TransactionError) {\n showErrorToast(e.reason);\n } else {\n showErrorToast(`Error approving withdraw ${amount} from pair`);\n }\n }\n }}\n label=\"Approve\"\n loadingText=\"Processing...\"\n />\n );\n};\n","export * from './WithdrawLiquiditySubmitButton';\n","import { Alert, AlertDescription, AlertIcon } from '@chakra-ui/alert';\nimport {\n Box,\n HStack,\n IconButton,\n Skeleton,\n Text,\n VStack\n} from '@chakra-ui/react';\nimport React, { FC, useCallback, useMemo, useState } from 'react';\n\nimport { CopyButton } from '@app/components/CopyButton';\nimport { DebouncedInput } from '@app/components/DebouncedInput';\nimport { QuickAmountButtons } from '@app/components/Swap/components/QuickAmountButtons';\nimport {\n formatWalletAddress,\n kFormatter,\n toOptionalFixed\n} from '@app/helpers/format';\nimport { useWithdrawLiquidity } from '@app/hooks/liquidity/useWithdrawLiquidity';\nimport { useWithdrawLiquidityOutput } from '@app/hooks/liquidity/useWithdrawLiquidityOutput';\nimport { WithdrawLiquiditySubmitButton } from '@app/screens/pair-details/WithdrawLiquiditySubmitButton';\nimport { Pair } from '@app/types/pool';\nimport s from '@app/components/Swap/Swap.module.scss';\nimport { APP_ROUTES } from '@app/constants/routes';\nimport { Icon } from '@app/components/Icon';\nimport { HeaderControls } from '@app/components/Swap/components/HeaderControls';\nimport { useRouter } from 'next/router';\nimport { TokenIcon } from '@app/components/TokenIcon';\nimport { useTokenBalance } from '@app/hooks/token/useTokenBalance';\nimport { useAddress } from '@thirdweb-dev/react';\nimport { useTokenPriceV3 } from '@app/hooks/token/useTokenPriceV3';\nimport { EMPTY_ADDRESS } from '@app/constants/common';\n\ninterface Props {\n pair: Pair;\n balance: number;\n getWithdrawBalance: () => Promise;\n onClose?: () => void;\n}\n\nexport const WithdrawLiquidity: FC = ({\n pair,\n balance,\n getWithdrawBalance,\n onClose\n}) => {\n const router = useRouter();\n const address = useAddress();\n const [amount, setAmountValue] = useState('');\n\n const setAmount = useCallback((newValue: string) => {\n setAmountValue((+newValue).toFixed(18));\n }, []);\n\n const {\n token0,\n token1,\n totalSupply,\n reserveETH,\n reserve0,\n reserve1,\n id,\n token1Price,\n token0Price,\n liquidityPositions\n } = pair;\n\n const {\n withdrawLiquidity,\n withdrawingLiquidity,\n allowance,\n approveWithdraw,\n approvingWithdraw\n } = useWithdrawLiquidity(pair, amount);\n\n const { output, loading } = useWithdrawLiquidityOutput(pair.id, amount, pair);\n\n const { balance: balance0 } = useTokenBalance(token0.id, id);\n const { balance: balance1 } = useTokenBalance(token1.id, id);\n\n const liquidityTokenBalance = liquidityPositions.find(\n item => item.user.id.toLowerCase() === address?.toLowerCase()\n )?.liquidityTokenBalance;\n\n const composition = useMemo(() => {\n if (\n balance0 === undefined ||\n balance1 === undefined ||\n !liquidityTokenBalance\n ) {\n return;\n }\n\n const amount0 = (+liquidityTokenBalance * balance0) / +totalSupply;\n const amount1 = (+liquidityTokenBalance * balance1) / +totalSupply;\n\n return {\n amount0,\n amount1\n };\n }, [liquidityTokenBalance, balance0, balance1, totalSupply]);\n\n const { data: price, isLoading: loadingPrice } = useTokenPriceV3({\n id: 'weth'\n });\n\n const poolShare = useMemo(() => {\n if (!totalSupply || !liquidityTokenBalance) {\n return 0;\n }\n\n return (+liquidityTokenBalance * 100) / +totalSupply;\n }, [totalSupply, liquidityTokenBalance]);\n\n const amountValueUSD = useMemo(() => {\n if (!price || !liquidityTokenBalance) {\n return null;\n }\n\n const liqBalancePercent = (+liquidityTokenBalance * 100) / +totalSupply;\n const liqBalanceEth = (+reserveETH * liqBalancePercent) / 100;\n\n return kFormatter(liqBalanceEth * +price, 2);\n }, [liquidityTokenBalance, price, totalSupply, reserveETH]);\n\n function renderInfoRow(\n label: string,\n value: string | number,\n loading?: boolean,\n copyValue?: boolean,\n rawValue?: string\n ) {\n function renderContent() {\n if (loading) {\n return (\n \n );\n }\n\n return copyValue && rawValue ? (\n \n {value}\n \n \n ) : (\n {value}\n );\n }\n\n return (\n \n \n {label}\n \n {renderContent()}\n \n );\n }\n\n return (\n \n \n router.push(APP_ROUTES.positions)}\n >\n \n \n Remove liquidity\n \n \n\n \n
\n
\n
My Position
\n \n
My Share
\n
{toOptionalFixed(poolShare, 5)}%
\n
\n \n
Pooled {token0.symbol}
\n
\n {composition ? (\n toOptionalFixed(composition.amount0, 5)\n ) : (\n \n )}\n \n
\n
\n \n
Pooled {token1.symbol}
\n
\n {composition ? (\n toOptionalFixed(composition.amount1, 5)\n ) : (\n \n )}\n \n
\n
\n
\n
\n
\n
Remove Amount
\n
\n {\n setAmount(val);\n }}\n />\n \n \n \n Balance:\n \n {balance}\n \n \n
\n\n setAmount(val)}\n />\n\n {output && (\n <>\n
\n \n
\n\n
\n
\n \n \n {output?.amount0 !== undefined\n ? toOptionalFixed(Number(output?.amount0), 5)\n : 'n/a'}\n \n {token0.symbol}\n
\n
\n \n \n {output?.amount1 !== undefined\n ? toOptionalFixed(Number(output?.amount1), 5)\n : 'n/a'}\n \n {token1.symbol}\n
\n
\n \n )}\n
\n \n \n {\n onClose?.();\n }}\n getWithdrawBalance={getWithdrawBalance}\n />\n \n \n );\n};\n","export * from './WithdrawLiquidity';\n","import { useAddress, useContract } from '@thirdweb-dev/react';\nimport { useRouter } from 'next/router';\nimport { useEffect } from 'react';\nimport { useAsyncFn } from 'react-use';\n\nimport { bigNumberToDecimal } from '@app/helpers/format';\n\nexport function useWithdrawLiquidityAvailability(_pairAddress?: string) {\n const address = useAddress();\n const { query } = useRouter();\n const pairAddress = _pairAddress ?? (query.id as string);\n\n const { contract: pairContract, isLoading } = useContract(pairAddress);\n\n const [{ value, loading }, getWithdrawBalance] = useAsyncFn(async () => {\n if (!pairContract) {\n return;\n }\n\n const decimals = await pairContract.call('decimals');\n\n const res = await pairContract.call('balanceOf', [address]);\n\n return res && decimals ? bigNumberToDecimal(res, decimals) : undefined;\n }, [pairContract, address]);\n\n useEffect(() => {\n getWithdrawBalance();\n }, [getWithdrawBalance]);\n\n return {\n isAllowedToWithdraw: value !== undefined && value > 0,\n balance: value,\n getWithdrawBalance,\n loading: isLoading || loading\n };\n}\n","import { NextPage } from 'next';\nimport React, { useMemo } from 'react';\n\nimport MainLayout from '@app/components/MainLayout';\nimport { usePairDetails } from '@app/hooks/pair/usePairDetails';\nimport { APP_NAME } from '@app/constants/common';\nimport { WithdrawLiquidity } from '@app/components/WithdrawLiquidity';\nimport { useWithdrawLiquidityAvailability } from '@app/hooks/liquidity/useWithdrawLiquidityAvailability';\nimport { useRouter } from 'next/router';\nimport { Center, Flex, Spinner } from '@chakra-ui/react';\n\nexport const RemoveLiquidityPage: NextPage = () => {\n const { query } = useRouter();\n const { pairId } = query;\n\n const { balance, getWithdrawBalance, loading } =\n useWithdrawLiquidityAvailability(pairId as string);\n\n const { data: pair, isLoading: isLoadingPair } = usePairDetails({\n id: (pairId as string)?.toLowerCase()\n });\n\n const isLoading = loading || isLoadingPair;\n\n const initialData = useMemo(() => {\n if (!pair) {\n return null;\n }\n\n return pair ? { pair } : null;\n }, [pair]);\n\n return (\n \n {isLoading && (\n \n
\n \n
\n \n )}\n {initialData && balance && !isLoading ? (\n \n ) : null}\n
\n );\n};\n\nexport default RemoveLiquidityPage;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"input\":\"DebouncedInput_input__NRGKZ\",\"error\":\"DebouncedInput_error__FWuUh\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"title\":\"Swap_title___AM0H\",\"outputWrapper\":\"Swap_outputWrapper__DUYlw\",\"row\":\"Swap_row__bTDwt\",\"value\":\"Swap_value__fBdnC\",\"share\":\"Swap_share___QZvK\",\"label\":\"Swap_label__O_UVg\",\"caption\":\"Swap_caption__gXDA4\",\"header\":\"Swap_header__cwyVC\",\"body\":\"Swap_body__y_PBA\",\"info\":\"Swap_info__nlUkB\",\"footer\":\"Swap_footer__asEDQ\",\"content\":\"Swap_content__67OjV\",\"divider\":\"Swap_divider__lJTv3\",\"pointer\":\"Swap_pointer__MCAje\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"suffix\":\"HeaderControls_suffix__Dnc_j\",\"blockTitle\":\"HeaderControls_blockTitle__fMlKe\",\"panel\":\"HeaderControls_panel__Nd_fZ\",\"block\":\"HeaderControls_block__AxLph\",\"divider\":\"HeaderControls_divider__HF04c\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"QuickAmountButtons_wrapper__YtTcl\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"body\":\"Toast_body__ixxvf\",\"root\":\"Toast_root__18K5j\",\"success\":\"Toast_success__b8tDo\",\"warning\":\"Toast_warning__ZY_a6\",\"error\":\"Toast_error___pYo0\",\"header\":\"Toast_header__A3r_o\",\"info\":\"Toast_info__FCkWI\",\"icon\":\"Toast_icon__Jo95v\",\"titleWrapper\":\"Toast_titleWrapper__sgB_4\",\"closeBtn\":\"Toast_closeBtn___kvUJ\"};"],"names":["add","dirtyDate","duration","requiredArgs","Z","arguments","esm_typeof","Date","NaN","years","toInteger","months","weeks","days","hours","minutes","seconds","date","toDate","dateWithMonths","addMonths","dirtyAmount","amount","isNaN","dayOfMonth","getDate","endOfDesiredMonth","getTime","setMonth","getMonth","setFullYear","getFullYear","dateWithDays","addDays","setDate","secondsToAdd","minutesToAdd","window","__NEXT_P","push","__webpack_require__","useDebounce","ref","useRef","useEffect","current","callback","useMemo","debounce","DebouncedInput","onChange","disabled","readOnlyValue","textAlign","placeholder","type","isError","param","value","setValue","useState","debouncedOnChange","handleSearchKeyup","useCallback","e","key","flush","cancel","jsx_runtime","jsx","Input","variant","borderRadius","w","px","formNoValidate","lang","step","min","undefined","fromExponential","Number","onKeyUp","target","_placeholder","color","className","clsx","s","HeaderControls","onRefresh","isOpen","onOpen","onClose","useDisclosure","slippage","setSlippage","deadline","setDeadline","settings","updateSettings","useSwapSettings","toString","jsxs","HStack","justify","mb","gap","IconButton","aria-label","icon","RepeatIcon","h","transition","_hover","cursor","onClick","Popover","placement","PopoverTrigger","Icon","name","style","width","height","PopoverContent","rootProps","zIndex","PopoverBody","div","bg","fontSize","p","border","borderColor","padding","size","gridArea","_focus","outline","backInOut","cssTransition","enter","exit","Toast","iconName","status","text","closeToast","children","Box","cn","VStack","Button","showSuccessToast","msg","toast","showErrorToast","fetcher","baseUrl","params","request","concat","gql","id","usePairDetails","options","useQuery","QueryKeys","PAIR_DETAILS","response","config","subgraphUrl","pair","enabled","staleTime","DEFAULT_SETTINGS","SETTINGS_STORAGE_KEY","getSwapSettings","localforage","useAsync","values","useTokenBalance","tokenContractAddress","address","contract","useContract","balance","call","decimals","bigNumberToDecimal","QuickAmountButtons","onUpdate","renderButton","label","transparent","isActive","mt","WithdrawLiquiditySubmitButton","approveWithdraw","withdrawLiquidity","allowance","isWithdrawInProgress","isApproveInProgress","getWithdrawBalance","SubmitButton","isLoading","res","reason","txHash","receipt","transactionHash","ExternalLink","TransactionError","loadingText","WithdrawLiquidity","liquidityPositions","router","useRouter","useAddress","setAmountValue","setAmount","newValue","toFixed","token0","token1","totalSupply","reserveETH","reserve0","reserve1","token1Price","token0Price","withdrawingLiquidity","approvingWithdraw","useWithdrawLiquidity","query","contracts","pairContract","pairDecimals","loading","useAsyncFn","_amount","numberToBigNumberFixed","getAllowance","fetchingAllowance","error","NATIVE_TOKEN_ADDRESS","output","useWithdrawLiquidityOutput","pairAddress","token0Contract","token1Contract","loadingPair","pairBalance","newPairBalance","totalSupplyRes","balance0","loadingBalance0","balance1","loadingBalance1","liquidity","amount0","amount1","liquidityTokenBalance","find","item","user","toLowerCase","composition","data","price","loadingPrice","useTokenPriceV3","poolShare","liqBalancePercent","liqBalanceEth","kFormatter","maxWidth","mx","sx","boxShadow","justifyContent","APP_ROUTES","positions","Text","toOptionalFixed","symbol","Skeleton","startColor","endColor","TokenIcon","display","val","fontWeight","lineHeight","letterSpacing","Fragment","span","RemoveLiquidityPage","pairId","useWithdrawLiquidityAvailability","_pairAddress","isAllowedToWithdraw","isLoadingPair","_pairId","initialData","MainLayout","metadata","title","APP_NAME","Flex","minHeight","Center","Spinner","remove_liquidity","module","exports"],"sourceRoot":""}