{"version":3,"file":"static/chunks/pages/farm-19040b83e89b6113.js","mappings":"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","sources":["webpack://_N_E/./src/components/CurrencyInputPanel/FiatValue.tsx","webpack://_N_E/./src/features/legacy/liquidity/ConfirmAddModalBottom.tsx","webpack://_N_E/./src/hooks/useSortableData.ts","webpack://_N_E/./src/hooks/useUSDCPrice.ts","webpack://_N_E/./src/features/onsen/CurrencyInputPanel.tsx","webpack://_N_E/./src/features/onsen/PoolAddLiquidity.tsx","webpack://_N_E/./src/features/onsen/PoolRemoveLiquidity.tsx","webpack://_N_E/./src/features/onsen/ManageSwapPair.tsx","webpack://_N_E/./src/features/onsen/KashiDeposit.tsx","webpack://_N_E/./src/features/onsen/KashiWithdraw.tsx","webpack://_N_E/./src/features/onsen/ManageKashiPair.tsx","webpack://_N_E/./src/features/onsen/InformationDisclosure.tsx","webpack://_N_E/./src/features/onsen/usePendingReward.ts","webpack://_N_E/./src/features/onsen/useMasterChef.ts","webpack://_N_E/./src/features/onsen/InvestmentDetails.tsx","webpack://_N_E/./src/features/onsen/ManageBar.tsx","webpack://_N_E/./src/features/onsen/FarmListItemDetails.tsx","webpack://_N_E/./src/features/onsen/FarmListItem.tsx","webpack://_N_E/./src/features/onsen/FarmList.tsx","webpack://_N_E/./src/features/onsen/FarmMenu.tsx","webpack://_N_E/./src/pages/farm/index.tsx","webpack://_N_E/./src/state/mint/hooks.ts","webpack://_N_E/?286d"],"sourcesContent":["import { Currency, CurrencyAmount, Percent } from '@sushiswap/core-sdk'\nimport React, { useMemo } from 'react'\n\nimport { t } from '@lingui/macro'\nimport { warningSeverity } from '../../functions/prices'\n\nexport function FiatValue({\n fiatValue,\n priceImpact,\n}: {\n fiatValue: CurrencyAmount | null | undefined\n priceImpact?: Percent\n}) {\n const priceImpactClassName = useMemo(() => {\n if (!priceImpact) return undefined\n if (priceImpact.lessThan('0')) return 'text-green'\n const severity = warningSeverity(priceImpact)\n if (severity < 1) return 'text-secondary'\n if (severity < 3) return 'text-yellow'\n return 'text-red'\n }, [priceImpact])\n\n return (\n
\n {fiatValue ? (\n <>\n ≈$
{fiatValue?.toSignificant(6, { groupSeparator: ',' })}
\n \n ) : (\n ''\n )}\n {priceImpact ? {priceImpact.multiply(-1).toSignificant(3)}% : null}\n
\n )\n}\n","import { Currency, CurrencyAmount, Fraction, Percent } from '@sushiswap/core-sdk'\n\nimport Button from '../../../components/Button'\nimport { Field } from '../../../state/mint/actions'\nimport React from 'react'\nimport { t } from '@lingui/macro'\nimport { useLingui } from '@lingui/react'\n\nexport function ConfirmAddModalBottom({\n noLiquidity,\n price,\n currencies,\n parsedAmounts,\n poolTokenPercentage,\n onAdd,\n}: {\n noLiquidity?: boolean\n price?: Fraction\n currencies: { [field in Field]?: Currency }\n parsedAmounts: { [field in Field]?: CurrencyAmount }\n poolTokenPercentage?: Percent\n onAdd: () => void\n}) {\n const { i18n } = useLingui()\n return (\n
\n
\n
\n
{i18n._(t`Rates`)}
\n
\n {`1 ${parsedAmounts[Field.CURRENCY_A]?.currency.symbol} = ${price?.toSignificant(4)} ${\n parsedAmounts[Field.CURRENCY_B]?.currency.symbol\n }`}\n
\n
\n
\n
\n {`1 ${parsedAmounts[Field.CURRENCY_B]?.currency.symbol} = ${price?.invert()?.toSignificant(4)} ${\n parsedAmounts[Field.CURRENCY_A]?.currency.symbol\n }`}\n
\n
\n
\n
\n
\n
\n
{i18n._(t`${currencies[Field.CURRENCY_A]?.symbol} Deposited`)}
\n
\n
{parsedAmounts[Field.CURRENCY_A]?.toSignificant(6)}
\n {parsedAmounts[Field.CURRENCY_A]?.currency.symbol}\n
\n
\n
\n
{i18n._(t`${currencies[Field.CURRENCY_B]?.symbol} Deposited`)}
\n
\n
{parsedAmounts[Field.CURRENCY_B]?.toSignificant(6)}
\n {parsedAmounts[Field.CURRENCY_B]?.currency.symbol}\n
\n
\n
\n
{i18n._(t`Share of Pool:`)}
\n
\n {noLiquidity ? '100' : poolTokenPercentage?.toSignificant(4)}%\n
\n
\n
\n\n \n
\n )\n}\n\nexport default ConfirmAddModalBottom\n","import { useMemo, useState } from 'react'\n\nimport { BigNumber } from '@ethersproject/bignumber'\n\nfunction getNested(theObject: any, path: string, separator = '.') {\n try {\n return path\n .replace('[', separator)\n .replace(']', '')\n .split(separator)\n .reduce((obj, property) => {\n return obj[property]\n }, theObject)\n } catch (err) {\n return undefined\n }\n}\n\nconst useSortableData = (items: any, config: any = null) => {\n const [sortConfig, setSortConfig] = useState(config)\n\n const sortedItems = useMemo(() => {\n if (items && items.length > 0) {\n const sortableItems = [...items]\n if (sortConfig !== null) {\n sortableItems.sort((a, b) => {\n const aValue = getNested(a, sortConfig.key)\n const bValue = getNested(b, sortConfig.key)\n if (aValue instanceof BigNumber && bValue instanceof BigNumber) {\n if (aValue.lt(bValue)) {\n return sortConfig.direction === 'ascending' ? -1 : 1\n }\n if (aValue.gt(bValue)) {\n return sortConfig.direction === 'ascending' ? 1 : -1\n }\n } else if (aValue === Infinity) {\n return sortConfig.direction === 'ascending' ? -1 : 1\n } else if (bValue === Infinity) {\n return sortConfig.direction === 'ascending' ? 1 : -1\n } else {\n if (aValue < bValue) {\n return sortConfig.direction === 'ascending' ? -1 : 1\n }\n if (aValue > bValue) {\n return sortConfig.direction === 'ascending' ? 1 : -1\n }\n }\n return 0\n })\n }\n return sortableItems\n }\n return []\n }, [items, sortConfig])\n\n const requestSort = (key: any, direction = 'ascending') => {\n if (sortConfig && sortConfig.key === key && sortConfig.direction === 'ascending') {\n direction = 'descending'\n } else if (sortConfig && sortConfig.key === key && sortConfig.direction === 'descending') {\n direction = 'ascending'\n }\n setSortConfig({ key, direction })\n }\n\n return { items: sortedItems, requestSort, sortConfig }\n}\n\nexport default useSortableData\n","import { ChainId, Currency, CurrencyAmount, Price, Token, USD } from '@sushiswap/core-sdk'\n\nimport { useActiveWeb3React } from '../services/web3'\nimport { useMemo } from 'react'\nimport { useV2TradeExactOut } from './useV2Trades'\n\n// import { wrappedCurrency } from \"../functions/currency/wrappedCurrency\";\n\n// Stablecoin amounts used when calculating spot price for a given currency.\n// The amount is large enough to filter low liquidity pairs.\nconst STABLECOIN_AMOUNT_OUT: { [chainId: number]: CurrencyAmount } = {\n [ChainId.ETHEREUM]: CurrencyAmount.fromRawAmount(USD[ChainId.ETHEREUM], 100_000e6),\n [ChainId.ROPSTEN]: CurrencyAmount.fromRawAmount(USD[ChainId.ROPSTEN], 100_000e6),\n [ChainId.KOVAN]: CurrencyAmount.fromRawAmount(USD[ChainId.KOVAN], 100_000e6),\n [ChainId.MATIC]: CurrencyAmount.fromRawAmount(USD[ChainId.MATIC], 100_000e6),\n [ChainId.FANTOM]: CurrencyAmount.fromRawAmount(USD[ChainId.FANTOM], 100_000e6),\n [ChainId.BSC]: CurrencyAmount.fromRawAmount(USD[ChainId.BSC], 100_000e18),\n [ChainId.HARMONY]: CurrencyAmount.fromRawAmount(USD[ChainId.HARMONY], 100_000e6),\n [ChainId.HECO]: CurrencyAmount.fromRawAmount(USD[ChainId.HECO], 100_000e6),\n [ChainId.OKEX]: CurrencyAmount.fromRawAmount(USD[ChainId.OKEX], 100_000e18),\n [ChainId.XDAI]: CurrencyAmount.fromRawAmount(USD[ChainId.XDAI], 100_000e6),\n [ChainId.ARBITRUM]: CurrencyAmount.fromRawAmount(USD[ChainId.ARBITRUM], 100_000e6),\n [ChainId.CELO]: CurrencyAmount.fromRawAmount(USD[ChainId.CELO], 100_000e18),\n [ChainId.MOONRIVER]: CurrencyAmount.fromRawAmount(USD[ChainId.MOONRIVER], 100_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 } = useActiveWeb3React()\n\n const amountOut = chainId ? STABLECOIN_AMOUNT_OUT[chainId] : undefined\n const stablecoin = amountOut?.currency\n\n const v2USDCTrade = useV2TradeExactOut(currency, amountOut, {\n maxHops: 3,\n })\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\n if (v2USDCTrade) {\n const { numerator, denominator } = v2USDCTrade.route.midPrice\n return new Price(currency, stablecoin, denominator, numerator)\n }\n\n return undefined\n }, [currency, stablecoin, v2USDCTrade])\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","import { Currency, CurrencyAmount, Percent, Token } from '@sushiswap/core-sdk'\nimport React, { ReactNode } from 'react'\nimport { classNames, formatCurrencyAmount } from '../../functions'\nimport Lottie from 'lottie-react'\nimport selectCoinAnimation from '../../animation/select-coin.json'\nimport { t } from '@lingui/macro'\nimport { useLingui } from '@lingui/react'\nimport CurrencyLogo from '../../components/CurrencyLogo'\nimport Button from '../../components/Button'\nimport { FiatValue } from '../../components/CurrencyInputPanel/FiatValue'\nimport Input from '../../components/Input'\n\ninterface CurrencyInputPanelProps {\n value?: string\n onUserInput?: (value: string) => void\n onMax?: () => void\n showMaxButton: boolean\n currencyBalance: CurrencyAmount | null\n fiatValue?: CurrencyAmount | null\n currency?: Currency | null\n hideBalance?: boolean\n hideInput?: boolean\n hideIcon?: boolean\n priceImpact?: Percent\n id: string\n showCommonBases?: boolean\n renderBalance?: (amount: CurrencyAmount) => ReactNode\n}\n\nexport default function CurrencyInputPanel({\n value,\n onUserInput,\n onMax,\n showMaxButton,\n currency,\n id,\n currencyBalance,\n fiatValue,\n priceImpact,\n hideBalance = false,\n hideInput = false,\n hideIcon = false,\n}: CurrencyInputPanelProps) {\n const { i18n } = useLingui()\n\n return (\n
\n
\n {!hideIcon && (\n
\n {currency ? (\n
\n \n
\n ) : (\n
\n
\n \n
\n
\n )}\n
\n )}\n {!hideInput && (\n
\n <>\n {showMaxButton && currencyBalance && (\n \n {i18n._(t`Max`)}\n \n )}\n {\n onUserInput(val)\n }}\n />\n {!hideBalance && currency && currencyBalance ? (\n
\n
\n {formatCurrencyAmount(currencyBalance, 4)} {currency?.symbol}\n
\n \n
\n ) : null}\n \n
\n )}\n
\n
\n )\n}\n","import { BigNumber } from '@ethersproject/bignumber'\nimport { TransactionResponse } from '@ethersproject/providers'\nimport { t } from '@lingui/macro'\nimport { useLingui } from '@lingui/react'\nimport { ChainId, Currency, CurrencyAmount, currencyEquals, NATIVE, Percent, WNATIVE } from '@sushiswap/core-sdk'\nimport React, { useCallback, useState } from 'react'\nimport ReactGA from 'react-ga'\nimport Button, { ButtonError } from '../../components/Button'\nimport Dots from '../../components/Dots'\nimport DoubleCurrencyLogo from '../../components/DoubleLogo'\nimport Web3Connect from '../../components/Web3Connect'\nimport { ZERO_PERCENT } from '../../constants'\nimport { calculateGasMargin, calculateSlippageAmount, maxAmountSpend } from '../../functions'\nimport { ApprovalState, useApproveCallback } from '../../hooks/useApproveCallback'\nimport { useRouterContract } from '../../hooks/useContract'\nimport { useActiveWeb3React } from '../../services/web3'\nimport useTransactionDeadline from '../../hooks/useTransactionDeadline'\nimport { useUSDCValue } from '../../hooks/useUSDCPrice'\nimport TransactionConfirmationModal, { ConfirmationModalContent } from '../../modals/TransactionConfirmationModal'\nimport { Field } from '../../state/mint/actions'\nimport { useDerivedMintInfo, useMintActionHandlers, useMintState } from '../../state/mint/hooks'\nimport { useTransactionAdder } from '../../state/transactions/hooks'\nimport { useExpertModeManager, useUserSlippageToleranceWithDefault } from '../../state/user/hooks'\nimport { ConfirmAddModalBottom } from '../legacy/liquidity/ConfirmAddModalBottom'\nimport CurrencyInputPanel from './CurrencyInputPanel'\n\nconst DEFAULT_ADD_V2_SLIPPAGE_TOLERANCE = new Percent(50, 10_000)\n\nconst PoolDeposit = ({ currencyA, currencyB }) => {\n const { i18n } = useLingui()\n const { account, chainId, library } = useActiveWeb3React()\n\n const [useETH, setUseETH] = useState(chainId !== ChainId.CELO)\n\n chainId && useETH && currencyA && currencyEquals(currencyA, WNATIVE[chainId]) && (currencyA = NATIVE[chainId])\n chainId && useETH && currencyB && currencyEquals(currencyB, WNATIVE[chainId]) && (currencyB = NATIVE[chainId])\n\n const oneCurrencyIsETH = currencyA?.isNative || currencyB?.isNative\n\n const oneCurrencyIsWETH = Boolean(\n chainId &&\n ((currencyA && currencyEquals(currencyA, WNATIVE[chainId])) ||\n (currencyB && currencyEquals(currencyB, WNATIVE[chainId])))\n )\n\n const [isExpertMode] = useExpertModeManager()\n\n // mint state\n const { independentField, typedValue, otherTypedValue } = useMintState()\n const {\n dependentField,\n currencies,\n currencyBalances,\n parsedAmounts,\n price,\n noLiquidity,\n liquidityMinted,\n poolTokenPercentage,\n error,\n } = useDerivedMintInfo(currencyA ?? undefined, currencyB ?? undefined)\n\n const { onFieldAInput, onFieldBInput } = useMintActionHandlers(noLiquidity)\n\n const isValid = !error\n\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 allowedSlippage = useUserSlippageToleranceWithDefault(DEFAULT_ADD_V2_SLIPPAGE_TOLERANCE) // custom from users\n\n const [txHash, setTxHash] = useState('')\n\n // get formatted amounts\n const formattedAmounts = {\n [independentField]: typedValue,\n [dependentField]: noLiquidity ? otherTypedValue : parsedAmounts[dependentField]?.toSignificant(6) ?? '',\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 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\n const routerContract = useRouterContract()\n\n // check whether the user has approved the router on the tokens\n const [approvalA, approveACallback] = useApproveCallback(parsedAmounts[Field.CURRENCY_A], routerContract?.address)\n const [approvalB, approveBCallback] = useApproveCallback(parsedAmounts[Field.CURRENCY_B], routerContract?.address)\n\n const currencyAFiatValue = useUSDCValue(parsedAmounts[Field.CURRENCY_A] ?? currencyBalances[Field.CURRENCY_A])\n const currencyBFiatValue = useUSDCValue(parsedAmounts[Field.CURRENCY_B] ?? currencyBalances[Field.CURRENCY_B])\n\n const addTransaction = useTransactionAdder()\n\n async function onAdd() {\n if (!chainId || !library || !account || !routerContract) return\n\n const { [Field.CURRENCY_A]: parsedAmountA, [Field.CURRENCY_B]: parsedAmountB } = parsedAmounts\n\n console.log({ parsedAmountA, parsedAmountB, currencyA, currencyB, deadline })\n\n if (!parsedAmountA || !parsedAmountB || !currencyA || !currencyB || !deadline) {\n return\n }\n\n const amountsMin = {\n [Field.CURRENCY_A]: calculateSlippageAmount(parsedAmountA, noLiquidity ? ZERO_PERCENT : allowedSlippage)[0],\n [Field.CURRENCY_B]: calculateSlippageAmount(parsedAmountB, noLiquidity ? ZERO_PERCENT : allowedSlippage)[0],\n }\n\n let estimate,\n method: (...args: any) => Promise,\n args: Array,\n value: BigNumber | null\n if (currencyA.isNative || currencyB.isNative) {\n const tokenBIsETH = currencyB.isNative\n estimate = routerContract.estimateGas.addLiquidityETH\n method = routerContract.addLiquidityETH\n args = [\n (tokenBIsETH ? currencyA : currencyB)?.wrapped?.address ?? '', // token\n (tokenBIsETH ? parsedAmountA : parsedAmountB).quotient.toString(), // token desired\n amountsMin[tokenBIsETH ? Field.CURRENCY_A : Field.CURRENCY_B].toString(), // token min\n amountsMin[tokenBIsETH ? Field.CURRENCY_B : Field.CURRENCY_A].toString(), // eth min\n account,\n deadline.toHexString(),\n ]\n value = BigNumber.from((tokenBIsETH ? parsedAmountB : parsedAmountA).quotient.toString())\n } else {\n estimate = routerContract.estimateGas.addLiquidity\n method = routerContract.addLiquidity\n args = [\n currencyA?.wrapped?.address ?? '',\n currencyB?.wrapped?.address ?? '',\n parsedAmountA.quotient.toString(),\n parsedAmountB.quotient.toString(),\n amountsMin[Field.CURRENCY_A].toString(),\n amountsMin[Field.CURRENCY_B].toString(),\n account,\n deadline.toHexString(),\n ]\n value = null\n }\n\n setAttemptingTxn(true)\n await estimate(...args, value ? { value } : {})\n .then((estimatedGasLimit) =>\n method(...args, {\n ...(value ? { value } : {}),\n gasLimit: calculateGasMargin(estimatedGasLimit),\n }).then((response) => {\n setAttemptingTxn(false)\n\n addTransaction(response, {\n summary: i18n._(\n t`Add ${parsedAmounts[Field.CURRENCY_A]?.toSignificant(3)} ${\n currencies[Field.CURRENCY_A]?.symbol\n } and ${parsedAmounts[Field.CURRENCY_B]?.toSignificant(3)} ${currencies[Field.CURRENCY_B]?.symbol}`\n ),\n })\n\n setTxHash(response.hash)\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 )\n .catch((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 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 }\n setTxHash('')\n }, [onFieldAInput, txHash])\n\n const modalHeader = () => {\n return noLiquidity ? (\n
\n
\n
\n {currencies[Field.CURRENCY_A]?.symbol + '/' + currencies[Field.CURRENCY_B]?.symbol}\n
\n \n
\n
\n ) : (\n
\n
\n
{liquidityMinted?.toSignificant(6)}
\n
\n \n
\n
\n
\n {currencies[Field.CURRENCY_A]?.symbol}/{currencies[Field.CURRENCY_B]?.symbol}\n  {i18n._(t`Pool Tokens`)}\n
\n
\n {i18n._(\n t`Output is estimated. If the price changes by more than ${allowedSlippage.toSignificant(\n 4\n )}% your transaction will revert.`\n )}\n
\n
\n )\n }\n\n const modalBottom = () => {\n return (\n \n )\n }\n\n const pendingText = i18n._(\n t`Supplying ${parsedAmounts[Field.CURRENCY_A]?.toSignificant(6)} ${\n currencies[Field.CURRENCY_A]?.symbol\n } and ${parsedAmounts[Field.CURRENCY_B]?.toSignificant(6)} ${currencies[Field.CURRENCY_B]?.symbol}`\n )\n\n return (\n
\n (\n \n )}\n pendingText={pendingText}\n />\n
\n {\n onFieldAInput(maxAmounts[Field.CURRENCY_A]?.toExact() ?? '')\n }}\n currencyBalance={currencyBalances[Field.CURRENCY_A]}\n fiatValue={currencyAFiatValue}\n />\n
\n {\n onFieldBInput(maxAmounts[Field.CURRENCY_B]?.toExact() ?? '')\n }}\n currencyBalance={currencyBalances[Field.CURRENCY_B]}\n fiatValue={currencyBFiatValue}\n />\n {(oneCurrencyIsETH || oneCurrencyIsWETH) && chainId != ChainId.CELO && (\n setUseETH(!useETH)}\n >\n {i18n._(t`Use`)} {useETH && 'W'}\n {NATIVE[chainId].symbol}\n \n )}\n
\n
\n {!account ? (\n \n ) : isValid &&\n (approvalA === ApprovalState.NOT_APPROVED ||\n approvalA === ApprovalState.PENDING ||\n approvalB === ApprovalState.NOT_APPROVED ||\n approvalB === ApprovalState.PENDING) ? (\n
\n {approvalA !== ApprovalState.APPROVED && (\n \n {approvalA === ApprovalState.PENDING ? (\n {i18n._(t`Approving ${currencies[Field.CURRENCY_A]?.symbol}`)}\n ) : (\n i18n._(t`Approve ${currencies[Field.CURRENCY_A]?.symbol}`)\n )}\n \n )}\n {approvalB !== ApprovalState.APPROVED && (\n \n {approvalB === ApprovalState.PENDING ? (\n {i18n._(t`Approving ${currencies[Field.CURRENCY_B]?.symbol}`)}\n ) : (\n i18n._(t`Approve ${currencies[Field.CURRENCY_B]?.symbol}`)\n )}\n \n )}\n
\n ) : (\n {\n isExpertMode ? onAdd() : setShowConfirm(true)\n }}\n disabled={!isValid || attemptingTxn}\n error={!isValid && !!parsedAmounts[Field.CURRENCY_A] && !!parsedAmounts[Field.CURRENCY_B]}\n >\n {error ?? i18n._(t`Confirm Adding Liquidity`)}\n \n )}\n
\n
\n
\n )\n}\n\nexport default PoolDeposit\n","import { TransactionResponse } from '@ethersproject/abstract-provider'\nimport ReactGA from 'react-ga'\nimport { BigNumber } from '@ethersproject/bignumber'\nimport { Contract } from '@ethersproject/contracts'\nimport { t } from '@lingui/macro'\nimport { useLingui } from '@lingui/react'\nimport { ChainId, currencyEquals, NATIVE, Percent, WNATIVE, ZERO } from '@sushiswap/core-sdk'\nimport React, { useCallback, useMemo, useState } from 'react'\nimport { calculateSlippageAmount, calculateGasMargin, classNames } from '../../functions'\nimport { ApprovalState, useApproveCallback } from '../../hooks/useApproveCallback'\nimport { usePairContract, useRouterContract } from '../../hooks/useContract'\nimport { useActiveWeb3React } from '../../services/web3'\nimport { useV2LiquidityTokenPermit } from '../../hooks/useERC20Permit'\nimport useTransactionDeadline from '../../hooks/useTransactionDeadline'\nimport { Field } from '../../state/burn/actions'\nimport { useBurnActionHandlers, useBurnState, useDerivedBurnInfo } from '../../state/burn/hooks'\nimport { useTransactionAdder } from '../../state/transactions/hooks'\nimport { useUserSlippageToleranceWithDefault } from '../../state/user/hooks'\nimport useDebouncedChangeHandler from '../../hooks/useDebouncedChangeHandler'\nimport Button, { ButtonError } from '../../components/Button'\nimport CurrencyLogo from '../../components/CurrencyLogo'\nimport { Plus } from 'react-feather'\nimport Web3Connect from '../../components/Web3Connect'\nimport Dots from '../../components/Dots'\nimport TransactionConfirmationModal, { ConfirmationModalContent } from '../../modals/TransactionConfirmationModal'\nimport { FiatValue } from '../../components/CurrencyInputPanel/FiatValue'\nimport { useUSDCValue } from '../../hooks/useUSDCPrice'\nimport Alert from '../../components/Alert'\nimport Typography from '../../components/Typography'\nimport Input from '../../components/Input'\n\nconst DEFAULT_REMOVE_LIQUIDITY_SLIPPAGE_TOLERANCE = new Percent(5, 100)\n\nconst PoolWithdraw = ({ currencyA, currencyB }) => {\n const { i18n } = useLingui()\n const { account, chainId, library } = useActiveWeb3React()\n\n const [useETH, setUseETH] = useState(false)\n useETH && currencyA && currencyEquals(currencyA, WNATIVE[chainId]) && (currencyA = NATIVE[chainId])\n useETH && currencyB && currencyEquals(currencyB, WNATIVE[chainId]) && (currencyB = NATIVE[chainId])\n\n const [tokenA, tokenB] = useMemo(() => [currencyA?.wrapped, currencyB?.wrapped], [currencyA, currencyB])\n\n // burn state\n const { independentField, typedValue } = useBurnState()\n const { pair, parsedAmounts, error, userLiquidity } = useDerivedBurnInfo(\n currencyA ?? undefined,\n currencyB ?? undefined\n )\n const { onUserInput: _onUserInput } = useBurnActionHandlers()\n const isValid = !error\n\n // modal and loading\n const [showConfirm, setShowConfirm] = useState(false)\n const [showDetailed, setShowDetailed] = useState(false)\n const [attemptingTxn, setAttemptingTxn] = useState(false) // clicked confirm\n\n // txn values\n const [txHash, setTxHash] = useState('')\n const deadline = useTransactionDeadline()\n const allowedSlippage = useUserSlippageToleranceWithDefault(DEFAULT_REMOVE_LIQUIDITY_SLIPPAGE_TOLERANCE)\n\n const formattedAmounts = {\n [Field.LIQUIDITY_PERCENT]: parsedAmounts[Field.LIQUIDITY_PERCENT].equalTo('0')\n ? '0'\n : parsedAmounts[Field.LIQUIDITY_PERCENT].lessThan(new Percent('1', '100'))\n ? '<1'\n : parsedAmounts[Field.LIQUIDITY_PERCENT].toFixed(0),\n [Field.LIQUIDITY]:\n independentField === Field.LIQUIDITY ? typedValue : parsedAmounts[Field.LIQUIDITY]?.toSignificant(6) ?? '',\n [Field.CURRENCY_A]:\n independentField === Field.CURRENCY_A ? typedValue : parsedAmounts[Field.CURRENCY_A]?.toSignificant(6) ?? '',\n [Field.CURRENCY_B]:\n independentField === Field.CURRENCY_B ? typedValue : parsedAmounts[Field.CURRENCY_B]?.toSignificant(6) ?? '',\n }\n\n const currencyAFiatValue = useUSDCValue(parsedAmounts[Field.CURRENCY_A])\n const currencyBFiatValue = useUSDCValue(parsedAmounts[Field.CURRENCY_B])\n\n const atMaxAmount = parsedAmounts[Field.LIQUIDITY_PERCENT]?.equalTo(new Percent('1'))\n\n // pair contract\n const pairContract: Contract | null = usePairContract(pair?.liquidityToken?.address)\n\n // router contract\n const routerContract = useRouterContract()\n\n // allowance handling\n const { gatherPermitSignature, signatureData } = useV2LiquidityTokenPermit(\n parsedAmounts[Field.LIQUIDITY],\n routerContract?.address\n )\n const [approval, approveCallback] = useApproveCallback(parsedAmounts[Field.LIQUIDITY], routerContract?.address)\n\n async function onAttemptToApprove() {\n if (!pairContract || !pair || !library || !deadline) throw new Error('missing dependencies')\n const liquidityAmount = parsedAmounts[Field.LIQUIDITY]\n if (!liquidityAmount) throw new Error('missing liquidity amount')\n\n if (chainId !== ChainId.HARMONY && gatherPermitSignature) {\n try {\n await gatherPermitSignature()\n } catch (error) {\n // try to approve if gatherPermitSignature failed for any reason other than the user rejecting it\n if (error?.code !== 4001) {\n await approveCallback()\n }\n }\n } else {\n await approveCallback()\n }\n }\n\n // wrapped onUserInput to clear signatures\n const onUserInput = useCallback(\n (field: Field, typedValue: string) => {\n return _onUserInput(field, typedValue)\n },\n [_onUserInput]\n )\n\n const onLiquidityInput = useCallback(\n (typedValue: string): void => onUserInput(Field.LIQUIDITY, typedValue),\n [onUserInput]\n )\n const onCurrencyAInput = useCallback(\n (typedValue: string): void => onUserInput(Field.CURRENCY_A, typedValue),\n [onUserInput]\n )\n const onCurrencyBInput = useCallback(\n (typedValue: string): void => onUserInput(Field.CURRENCY_B, typedValue),\n [onUserInput]\n )\n\n // tx sending\n const addTransaction = useTransactionAdder()\n\n async function onRemove() {\n if (!chainId || !library || !account || !deadline || !routerContract) throw new Error('missing dependencies')\n const { [Field.CURRENCY_A]: currencyAmountA, [Field.CURRENCY_B]: currencyAmountB } = parsedAmounts\n if (!currencyAmountA || !currencyAmountB) {\n throw new Error('missing currency amounts')\n }\n\n const amountsMin = {\n [Field.CURRENCY_A]: calculateSlippageAmount(currencyAmountA, allowedSlippage)[0],\n [Field.CURRENCY_B]: calculateSlippageAmount(currencyAmountB, allowedSlippage)[0],\n }\n\n if (!currencyA || !currencyB) throw new Error('missing tokens')\n const liquidityAmount = parsedAmounts[Field.LIQUIDITY]\n if (!liquidityAmount) throw new Error('missing liquidity amount')\n\n const currencyBIsETH = currencyB.isNative\n const oneCurrencyIsETH = currencyA.isNative || currencyBIsETH\n\n if (!tokenA || !tokenB) throw new Error('could not wrap')\n\n let methodNames: string[], args: Array\n // we have approval, use normal remove liquidity\n if (approval === ApprovalState.APPROVED) {\n // removeLiquidityETH\n if (oneCurrencyIsETH) {\n methodNames = ['removeLiquidityETH', 'removeLiquidityETHSupportingFeeOnTransferTokens']\n args = [\n currencyBIsETH ? tokenA.address : tokenB.address,\n liquidityAmount.quotient.toString(),\n amountsMin[currencyBIsETH ? Field.CURRENCY_A : Field.CURRENCY_B].toString(),\n amountsMin[currencyBIsETH ? Field.CURRENCY_B : Field.CURRENCY_A].toString(),\n account,\n deadline.toHexString(),\n ]\n }\n // removeLiquidity\n else {\n methodNames = ['removeLiquidity']\n args = [\n tokenA.address,\n tokenB.address,\n liquidityAmount.quotient.toString(),\n amountsMin[Field.CURRENCY_A].toString(),\n amountsMin[Field.CURRENCY_B].toString(),\n account,\n deadline.toHexString(),\n ]\n }\n }\n // we have a signature, use permit versions of remove liquidity\n else if (signatureData !== null) {\n // removeLiquidityETHWithPermit\n if (oneCurrencyIsETH) {\n methodNames = ['removeLiquidityETHWithPermit', 'removeLiquidityETHWithPermitSupportingFeeOnTransferTokens']\n args = [\n currencyBIsETH ? tokenA.address : tokenB.address,\n liquidityAmount.quotient.toString(),\n amountsMin[currencyBIsETH ? Field.CURRENCY_A : Field.CURRENCY_B].toString(),\n amountsMin[currencyBIsETH ? Field.CURRENCY_B : Field.CURRENCY_A].toString(),\n account,\n signatureData.deadline,\n false,\n signatureData.v,\n signatureData.r,\n signatureData.s,\n ]\n }\n // removeLiquidityETHWithPermit\n else {\n methodNames = ['removeLiquidityWithPermit']\n args = [\n tokenA.address,\n tokenB.address,\n liquidityAmount.quotient.toString(),\n amountsMin[Field.CURRENCY_A].toString(),\n amountsMin[Field.CURRENCY_B].toString(),\n account,\n signatureData.deadline,\n false,\n signatureData.v,\n signatureData.r,\n signatureData.s,\n ]\n }\n } else {\n throw new Error('Attempting to confirm without approval or a signature. Please contact support.')\n }\n\n const safeGasEstimates: (BigNumber | undefined)[] = await Promise.all(\n methodNames.map((methodName) =>\n routerContract.estimateGas[methodName](...args)\n .then(calculateGasMargin)\n .catch((error) => {\n console.error(`estimateGas failed`, methodName, args, error)\n return undefined\n })\n )\n )\n\n const indexOfSuccessfulEstimation = safeGasEstimates.findIndex((safeGasEstimate) =>\n BigNumber.isBigNumber(safeGasEstimate)\n )\n\n // all estimations failed...\n if (indexOfSuccessfulEstimation === -1) {\n console.error('This transaction would fail. Please contact support.')\n } else {\n const methodName = methodNames[indexOfSuccessfulEstimation]\n const safeGasEstimate = safeGasEstimates[indexOfSuccessfulEstimation]\n\n setAttemptingTxn(true)\n await routerContract[methodName](...args, {\n gasLimit: safeGasEstimate,\n })\n .then((response: TransactionResponse) => {\n setAttemptingTxn(false)\n\n addTransaction(response, {\n summary: t`Remove ${parsedAmounts[Field.CURRENCY_A]?.toSignificant(3)} ${\n currencyA?.symbol\n } and ${parsedAmounts[Field.CURRENCY_B]?.toSignificant(3)} ${currencyB?.symbol}`,\n })\n\n setTxHash(response.hash)\n\n ReactGA.event({\n category: 'Liquidity',\n action: 'Remove',\n label: [currencyA?.symbol, currencyB?.symbol].join('/'),\n })\n })\n .catch((error: Error) => {\n setAttemptingTxn(false)\n // we only care if the error is something _other_ than the user rejected the tx\n console.error(error)\n })\n }\n }\n\n function modalHeader() {\n return (\n
\n
\n
\n
\n \n
\n {parsedAmounts[Field.CURRENCY_A]?.toSignificant(6)}\n
\n
\n
{currencyA?.symbol}
\n
\n
\n \n
\n
\n
\n \n
\n {parsedAmounts[Field.CURRENCY_B]?.toSignificant(6)}\n
\n
\n
{currencyB?.symbol}
\n
\n
\n
\n {t`Output is estimated. If the price changes by more than ${allowedSlippage.toSignificant(\n 4\n )}% your transaction will revert.`}\n
\n
\n )\n }\n\n function modalBottom() {\n return (\n
\n {pair && (\n <>\n
\n
\n
{i18n._(t`Rates`)}
\n
\n {`1 ${currencyA?.symbol} = ${tokenA ? pair.priceOf(tokenA).toSignificant(6) : '-'} ${\n currencyB?.symbol\n }`}\n
\n
\n
\n
\n {`1 ${currencyB?.symbol} = ${tokenB ? pair.priceOf(tokenB).toSignificant(6) : '-'} ${\n currencyA?.symbol\n }`}\n
\n
\n
\n
\n \n )}\n
\n
\n
\n {currencyA?.symbol}/{currencyB?.symbol} {i18n._(t`Burned`)}\n
\n
\n {parsedAmounts[Field.LIQUIDITY]?.toSignificant(6)}\n
\n
\n
\n \n {i18n._(t`Confirm`)}\n \n
\n )\n }\n\n const pendingText = i18n._(\n t`Removing ${parsedAmounts[Field.CURRENCY_A]?.toSignificant(6)} ${currencyA?.symbol} and ${parsedAmounts[\n Field.CURRENCY_B\n ]?.toSignificant(6)} ${currencyB?.symbol}`\n )\n\n const liquidityPercentChangeCallback = useCallback(\n (value: string) => {\n onUserInput(Field.LIQUIDITY_PERCENT, value)\n },\n [onUserInput]\n )\n\n const oneCurrencyIsETH = currencyA?.isNative || currencyB?.isNative\n\n const oneCurrencyIsWETH = Boolean(\n chainId && WNATIVE[chainId] && (currencyA?.equals(WNATIVE[chainId]) || currencyB?.equals(WNATIVE[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 onUserInput(Field.LIQUIDITY_PERCENT, '0')\n }\n setTxHash('')\n }, [onUserInput, txHash])\n\n const [innerLiquidityPercentage, setInnerLiquidityPercentage] = useDebouncedChangeHandler(\n parsedAmounts[Field.LIQUIDITY_PERCENT].toFixed(0),\n liquidityPercentChangeCallback\n )\n\n return (\n
\n (\n \n )}\n pendingText={pendingText}\n />\n
\n
\n
\n
\n
\n
{i18n._(t`Amount to Remove`)}
\n
\n {\n setInnerLiquidityPercentage(val)\n }}\n align=\"right\"\n />\n %\n
\n
\n
\n {['25', '50', '75', '100'].map((multipler, i) => (\n {\n setInnerLiquidityPercentage(multipler)\n }}\n className={classNames(\n 'text-md border border-opacity-50 border-pink focus:ring-pink',\n multipler === '100' ? '' : 'hidden sm:block'\n )}\n >\n {multipler === '100' ? 'MAX' : multipler + '%'}\n \n ))}\n
\n
\n
\n
\n
{i18n._(t`You'll Receive:`)}
\n {(oneCurrencyIsETH || oneCurrencyIsWETH) && (\n setUseETH(!useETH)}\n >\n {i18n._(t`Receive`)} {useETH && 'W'}\n {NATIVE[chainId].symbol}\n \n )}\n
\n
\n
\n
\n
\n {formattedAmounts[Field.CURRENCY_A] || '-'} {currencyA?.symbol}\n \n
\n
\n \n
\n
\n
\n {formattedAmounts[Field.CURRENCY_B] || '-'} {currencyB?.symbol}\n \n
\n \n
\n
\n
\n {userLiquidity?.equalTo(ZERO) && (\n \n )}\n {!account ? (\n \n ) : isValid && approval !== ApprovalState.APPROVED && signatureData === null ? (\n \n {approval === ApprovalState.PENDING ? {i18n._(t`Approving`)} : i18n._(t`Approve`)}\n \n ) : (\n {\n setShowConfirm(true)\n }}\n disabled={!isValid || (signatureData === null && approval !== ApprovalState.APPROVED)}\n error={!isValid && !!parsedAmounts[Field.CURRENCY_A] && !!parsedAmounts[Field.CURRENCY_B]}\n >\n {error || i18n._(t`Confirm Withdrawal`)}\n \n )}\n
\n
\n )\n}\n\nexport default PoolWithdraw\n","import React, { useState } from 'react'\nimport { Switch } from '@headlessui/react'\nimport { MinusIcon, PlusIcon } from '@heroicons/react/solid'\nimport { i18n } from '@lingui/core'\nimport { t } from '@lingui/macro'\nimport Settings from '../../components/Settings'\nimport PoolAddLiquidity from './PoolAddLiquidity'\nimport PoolRemoveLiquidity from './PoolRemoveLiquidity'\nimport { useCurrency } from '../../hooks/Tokens'\n\nconst ManageSwapPair = ({ farm }) => {\n const [toggle, setToggle] = useState(true)\n\n const token0 = useCurrency(farm.pair.token0.id)\n const token1 = useCurrency(farm.pair.token1.id)\n\n return (\n
\n
\n \n
\n setToggle(!toggle)}\n className={`${\n toggle ? 'bg-blue border-blue' : 'bg-pink border-pink'\n } bg-opacity-60 border border-opacity-80 relative inline-flex items-center h-[32px] rounded-full w-[54px] transition-colors focus:outline-none`}\n >\n \n {toggle ? : }\n \n \n \n {toggle ? i18n._(t`Add Liquidity`) : i18n._(t`Remove Liquidity`)}\n \n
\n
\n \n
\n {toggle ? (\n \n ) : (\n \n )}\n
\n )\n}\n\nexport default ManageSwapPair\n","import { t } from '@lingui/macro'\nimport { useLingui } from '@lingui/react'\nimport { BENTOBOX_ADDRESS, CurrencyAmount, WNATIVE } from '@sushiswap/core-sdk'\nimport React, { useState } from 'react'\nimport Button, { ButtonError } from '../../components/Button'\nimport Dots from '../../components/Dots'\nimport Web3Connect from '../../components/Web3Connect'\nimport { KashiCooker } from '../../entities'\nimport { ZERO } from '../../functions/math'\nimport { useActiveWeb3React } from '../../services/web3'\nimport { ApprovalState, useApproveCallback } from '../../hooks/useApproveCallback'\nimport { useCurrency } from '../../hooks/Tokens'\nimport useKashiApproveCallback, { BentoApprovalState } from '../../hooks/useKashiApproveCallback'\nimport CurrencyInputPanel from './CurrencyInputPanel'\nimport Provider, { useKashiInfo } from '../kashi/context'\nimport { tryParseAmount } from '../../functions'\nimport Alert from '../../components/Alert'\nimport { useUSDCValue } from '../../hooks/useUSDCPrice'\nimport { BigNumber } from '@ethersproject/bignumber'\n\nconst KashiDeposit = ({ pair, useBento }) => {\n const { i18n } = useLingui()\n const { account, chainId } = useActiveWeb3React()\n\n const assetToken = useCurrency(pair?.asset.address) || undefined\n const info = useKashiInfo()\n\n const [depositValue, setDepositValue] = useState('')\n\n const assetNative = WNATIVE[chainId || 1].address === pair?.asset.address\n\n const balanceAmount = useBento ? pair?.asset.bentoBalance : assetNative ? info?.ethBalance : pair?.asset.balance\n const balance =\n assetToken &&\n balanceAmount &&\n CurrencyAmount.fromRawAmount(assetNative ? WNATIVE[chainId || 1] : assetToken, balanceAmount)\n\n const maxAmount = balance\n\n const parsedDepositValue = tryParseAmount(depositValue, assetToken)\n\n const fiatValue = useUSDCValue(parsedDepositValue ?? balance)\n\n const [kashiApprovalState, approveKashiFallback, kashiPermit, onApproveKashi, onCook] = useKashiApproveCallback()\n\n const [tokenApprovalState, onApproveToken] = useApproveCallback(\n parsedDepositValue,\n chainId && BENTOBOX_ADDRESS[chainId]\n )\n\n async function onDeposit(cooker: KashiCooker): Promise {\n if (pair?.currentExchangeRate.isZero()) {\n cooker.updateExchangeRate(false, ZERO, ZERO)\n }\n cooker.addAsset(BigNumber.from(parsedDepositValue.quotient.toString()), useBento)\n return `${i18n._(t`Deposit`)} ${pair?.asset.tokenInfo.symbol}`\n }\n\n const error = !parsedDepositValue\n ? 'Enter an amount'\n : balance.lessThan(parsedDepositValue)\n ? 'Insufficient balance'\n : undefined\n\n const isValid = !error\n\n return (\n
\n setDepositValue(value)}\n showMaxButton\n onMax={() => {\n setDepositValue(maxAmount?.toExact() ?? '')\n }}\n currencyBalance={balance}\n fiatValue={fiatValue}\n />\n {approveKashiFallback && (\n \n )}\n {!account ? (\n \n ) : isValid &&\n !kashiPermit &&\n (kashiApprovalState === BentoApprovalState.NOT_APPROVED ||\n kashiApprovalState === BentoApprovalState.PENDING) ? (\n \n {kashiApprovalState === BentoApprovalState.PENDING ? (\n {i18n._(t`Approving Kashi`)}\n ) : (\n i18n._(t`Approve Kashi`)\n )}\n \n ) : isValid &&\n !useBento &&\n (tokenApprovalState === ApprovalState.NOT_APPROVED || tokenApprovalState === ApprovalState.PENDING) ? (\n \n {tokenApprovalState === ApprovalState.PENDING ? (\n \n {i18n._(t`Approving`)} {assetToken?.symbol}\n \n ) : (\n `${i18n._(t`Approve`)} ${assetToken?.symbol}`\n )}\n \n ) : (\n onCook(pair, onDeposit)}\n disabled={!isValid}\n error={!isValid && !!parsedDepositValue}\n >\n {error || i18n._(t`Confirm Deposit`)}\n \n )}\n
\n )\n}\n\nKashiDeposit.Provider = Provider\n\nexport default KashiDeposit\n","import { BigNumber } from '@ethersproject/bignumber'\nimport { t } from '@lingui/macro'\nimport { useLingui } from '@lingui/react'\nimport { CurrencyAmount } from '@sushiswap/core-sdk'\nimport React, { useState } from 'react'\nimport Alert from '../../components/Alert'\nimport Button, { ButtonError } from '../../components/Button'\nimport Dots from '../../components/Dots'\nimport Web3Connect from '../../components/Web3Connect'\nimport { KashiCooker } from '../../entities'\nimport { tryParseAmount } from '../../functions'\nimport { minimum, ZERO } from '../../functions/math'\nimport { useActiveWeb3React } from '../../services/web3'\nimport { useCurrency } from '../../hooks/Tokens'\nimport useKashiApproveCallback, { BentoApprovalState } from '../../hooks/useKashiApproveCallback'\nimport { useUSDCValue } from '../../hooks/useUSDCPrice'\nimport CurrencyInputPanel from './CurrencyInputPanel'\n\nconst KashiWithdraw = ({ pair, useBento }) => {\n const { i18n } = useLingui()\n const { account } = useActiveWeb3React()\n\n const assetToken = useCurrency(pair?.asset?.address) || undefined\n\n const [withdrawValue, setWithdrawValue] = useState('')\n\n const [kashiApprovalState, approveKashiFallback, kashiPermit, onApproveKashi, onCook] = useKashiApproveCallback()\n\n const amountAvailable = minimum(pair?.maxAssetAvailable ?? ZERO, pair?.currentUserAssetAmount.value ?? ZERO)\n const available =\n assetToken && amountAvailable && CurrencyAmount.fromRawAmount(assetToken, amountAvailable.toString())\n\n const availableFiatValue = useUSDCValue(available)\n\n const maxAmount = available\n\n const parsedWithdrawValue = tryParseAmount(withdrawValue, assetToken)\n\n async function onWithdraw(cooker: KashiCooker): Promise {\n const maxFraction = minimum(pair.userAssetFraction, pair.maxAssetAvailableFraction)\n const fraction = BigNumber.from(parsedWithdrawValue.quotient.toString()).mulDiv(\n pair.currentTotalAsset.base,\n pair.currentAllAssets.value\n )\n console.log('max', maxFraction.toString())\n console.log(minimum(fraction, maxFraction).toString())\n cooker.removeAsset(minimum(fraction, maxFraction), useBento)\n return `${i18n._(t`Withdraw`)} ${pair.asset.tokenInfo.symbol}`\n }\n\n const error = !parsedWithdrawValue\n ? 'Enter an amount'\n : available?.lessThan(parsedWithdrawValue)\n ? 'Insufficient balance'\n : undefined\n\n const isValid = !error\n\n return (\n
\n {\n setWithdrawValue(maxAmount?.toExact() ?? '')\n }}\n onUserInput={(value) => setWithdrawValue(value)}\n currencyBalance={available}\n fiatValue={availableFiatValue}\n />\n {approveKashiFallback && (\n \n )}\n {amountAvailable?.eq(0) && (\n \n )}\n {!account ? (\n \n ) : isValid &&\n !kashiPermit &&\n (kashiApprovalState === BentoApprovalState.NOT_APPROVED ||\n kashiApprovalState === BentoApprovalState.PENDING) ? (\n \n {kashiApprovalState === BentoApprovalState.PENDING ? (\n {i18n._(t`Approving Kashi`)}\n ) : (\n i18n._(t`Approve Kashi`)\n )}\n \n ) : (\n onCook(pair, onWithdraw)}\n disabled={!isValid}\n error={!isValid && !!parsedWithdrawValue}\n >\n {error || i18n._(t`Confirm Withdraw`)}\n \n )}\n
\n )\n}\n\nexport default KashiWithdraw\n","import { Popover, Switch } from '@headlessui/react'\nimport { MinusIcon, PlusIcon } from '@heroicons/react/solid'\nimport { t } from '@lingui/macro'\nimport { useLingui } from '@lingui/react'\nimport React, { useState } from 'react'\nimport { useKashiPair } from '../kashi/context'\nimport KashiDeposit from './KashiDeposit'\nimport { ChevronDownIcon } from '@heroicons/react/solid'\nimport KashiWithdraw from './KashiWithdraw'\n\nconst ManageKashiPair = ({ farm }) => {\n const { i18n } = useLingui()\n\n const kashiPair = useKashiPair(farm.pair.id)\n\n const [toggle, setToggle] = useState(true)\n const [useBento, setUseBento] = useState(false)\n\n return (\n
\n
\n \n
\n setToggle(!toggle)}\n className={`${\n toggle ? 'bg-blue border-blue' : 'bg-pink border-pink'\n } bg-opacity-60 border border-opacity-80 relative inline-flex items-center h-[32px] rounded-full w-[54px] transition-colors focus:outline-none`}\n >\n \n {toggle ? : }\n \n \n {toggle ? i18n._(t`Deposit`) : i18n._(t`Withdraw`)}\n
\n
{toggle ? i18n._(t`From:`) : i18n._(t`To:`)}
\n \n \n
\n
{useBento ? 'BentoBox' : i18n._(t`Wallet`)}
\n \n
\n
\n \n \n
setUseBento(!useBento)}>{useBento ? i18n._(t`Wallet`) : 'BentoBox'}
\n
\n
\n
\n
\n
\n
\n
{toggle ? i18n._(t`Balance`) : i18n._(t`Available to Withdraw`)}
\n
\n {toggle ? (\n \n ) : (\n \n )}\n
\n )\n}\n\nexport default ManageKashiPair\n","import React, { Fragment } from 'react'\nimport { Disclosure, Transition } from '@headlessui/react'\nimport { QuestionMarkCircleIcon } from '@heroicons/react/solid'\nimport { XCircle } from 'react-feather'\nimport { useLingui } from '@lingui/react'\nimport { t } from '@lingui/macro'\nimport Typography from '../../components/Typography'\nimport { PairType } from './enum'\nimport NavLink from '../../components/NavLink'\n\nconst InformationDisclosure = ({ farm }) => {\n const { i18n } = useLingui()\n\n return (\n \n {({ open }) => (\n <>\n {!open && (\n \n \n \n )}\n \n \n
\n {i18n._(t`How to Participate`)}\n \n \n \n
\n
\n
\n \n {i18n._(t`Step One`)}\n \n {farm.pair.type === PairType.SWAP && (\n <>\n \n {i18n._(t`Provide liquidity to the`)}\n {` `}\n \n \n {farm.pair.token0.symbol}/{farm.pair.token1.symbol}\n \n \n {` `}\n {i18n._(t`pool (or`)}\n {` `}\n \n migrate liquidity\n \n {i18n._(t`) to receive SLP tokens.`)}\n \n \n )}\n {farm.pair.type === PairType.KASHI && (\n \n {i18n._(t`Lend`)}\n {` `}\n {farm.pair.token0.symbol}\n {` `}\n {i18n._(t`to the`)}\n {` `}\n \n \n {farm.pair.token0.symbol}/{farm.pair.token1.symbol}\n \n \n {` `}\n {i18n._(t`Kashi market to get KMP (Kashi Medium-risk Pair) tokens.`)}\n \n )}\n
\n
\n \n {i18n._(t`Step Two`)}\n \n \n {i18n._(t`Approve and then deposit your`)}\n {` `}\n {farm.pair.type === PairType.KASHI ? `KMP` : `SLP`}\n {` `}\n {i18n._(t`tokens into the farm to start earning rewards.`)}\n \n
\n
\n \n {i18n._(t`Step Three`)}\n \n {farm.pair.type === PairType.SWAP && (\n \n {i18n._(\n t`Harvest rewards and unstake your SLP tokens at any time. You can then remove your liquidity to receive your base investment tokens back in your wallet.`\n )}\n \n )}\n {farm.pair.type === PairType.KASHI && (\n \n {i18n._(\n t`Harvest rewards and unstake your KMP tokens at any time. You can then withdraw your lent`\n )}\n {` `}\n {farm.pair.token0.symbol}\n {` `}\n {i18n._(t`into your wallet or BentoBox.`)}\n \n )}\n
\n \n \n \n )}\n \n )\n}\n\nexport default InformationDisclosure\n","import { useEffect, useMemo, useState } from 'react'\nimport { useCloneRewarderContract, useComplexRewarderContract } from '../../hooks/useContract'\nimport { BigNumber } from '@ethersproject/bignumber'\nimport { ChainId } from '@sushiswap/core-sdk'\nimport { Chef } from './enum'\nimport Fraction from '../../entities/Fraction'\nimport { useActiveWeb3React } from '../../services/web3'\nimport { useBlockNumber } from '../../state/application/hooks'\n\nconst usePending = (farm) => {\n const [balance, setBalance] = useState('0')\n\n const { chainId, account, library } = useActiveWeb3React()\n const currentBlockNumber = useBlockNumber()\n\n const cloneRewarder = useCloneRewarderContract(farm?.rewarder?.id)\n\n const complexRewarder = useComplexRewarderContract(farm?.rewarder?.id)\n\n const contract = useMemo(\n () => ({\n [ChainId.ETHEREUM]: cloneRewarder,\n [ChainId.MATIC]: complexRewarder,\n [ChainId.XDAI]: complexRewarder,\n [ChainId.HARMONY]: complexRewarder,\n [ChainId.ARBITRUM]: cloneRewarder,\n [ChainId.CELO]: complexRewarder,\n [ChainId.MOONRIVER]: complexRewarder,\n }),\n [complexRewarder, cloneRewarder]\n )\n\n useEffect(() => {\n async function fetchPendingReward() {\n try {\n const pending = await contract[chainId]?.pendingTokens(farm.id, account, '0')\n // console.log({ farm })\n // todo: do not assume [0] or that rewardToken has 18 decimals (only works w/ mastechefv2 currently)\n const formatted = farm.rewardToken\n ? Fraction.from(\n BigNumber.from(pending?.rewardAmounts[0]),\n BigNumber.from(10).pow(farm.rewardToken.decimals || 18)\n ).toString(farm.rewardToken.decimals || 18)\n : Fraction.from(BigNumber.from(pending?.rewardAmounts[0]), BigNumber.from(10).pow(18)).toString(18)\n setBalance(formatted)\n } catch (error) {\n console.error(error)\n }\n }\n // id = 0 is evaluated as false\n if (\n account &&\n cloneRewarder &&\n farm &&\n library &&\n (farm.chef === Chef.MASTERCHEF_V2 || farm.chef === Chef.MINICHEF)\n ) {\n fetchPendingReward()\n }\n }, [account, currentBlockNumber, cloneRewarder, complexRewarder, farm, library, contract, chainId])\n\n return balance\n}\n\nexport default usePending\n","import { useSushiContract } from '../../hooks/useContract'\nimport { useActiveWeb3React } from '../../services/web3'\nimport { BigNumber } from '@ethersproject/bignumber'\nimport { Chef } from './enum'\nimport { Zero } from '@ethersproject/constants'\nimport { useCallback } from 'react'\nimport { useChefContract } from './hooks'\n\nexport default function useMasterChef(chef: Chef) {\n const { account } = useActiveWeb3React()\n\n const sushi = useSushiContract()\n\n const contract = useChefContract(chef)\n\n // Deposit\n const deposit = useCallback(\n async (pid: number, amount: BigNumber) => {\n try {\n let tx\n\n if (chef === Chef.MASTERCHEF) {\n tx = await contract?.deposit(pid, amount)\n } else {\n tx = await contract?.deposit(pid, amount, account)\n }\n\n return tx\n } catch (e) {\n console.error(e)\n return e\n }\n },\n [account, chef, contract]\n )\n\n // Withdraw\n const withdraw = useCallback(\n async (pid: number, amount: BigNumber) => {\n try {\n let tx\n\n if (chef === Chef.MASTERCHEF) {\n tx = await contract?.withdraw(pid, amount)\n } else if (chef === Chef.MINICHEF) {\n tx = await contract?.withdrawAndHarvest(pid, amount, account)\n } else {\n tx = await contract?.withdraw(pid, amount, account)\n }\n\n return tx\n } catch (e) {\n console.error(e)\n return e\n }\n },\n [account, chef, contract]\n )\n\n const harvest = useCallback(\n async (pid: number) => {\n try {\n let tx\n\n if (chef === Chef.MASTERCHEF) {\n tx = await contract?.deposit(pid, Zero)\n } else if (chef === Chef.MASTERCHEF_V2) {\n const pendingSushi = await contract?.pendingSushi(pid, account)\n\n const balanceOf = await sushi?.balanceOf(contract?.address)\n\n // If MasterChefV2 doesn't have enough sushi to harvest, batch in a harvest.\n if (pendingSushi.gt(balanceOf)) {\n tx = await contract?.batch(\n [\n contract?.interface?.encodeFunctionData('harvestFromMasterChef'),\n contract?.interface?.encodeFunctionData('harvest', [pid, account]),\n ],\n true\n )\n } else {\n tx = await contract?.harvest(pid, account)\n }\n } else if (chef === Chef.MINICHEF) {\n tx = await contract?.harvest(pid, account)\n }\n\n return tx\n } catch (e) {\n console.error(e)\n return e\n }\n },\n [account, chef, contract, sushi]\n )\n\n return { deposit, withdraw, harvest }\n}\n","import { t } from '@lingui/macro'\nimport { useLingui } from '@lingui/react'\nimport Image from '../../components/Image'\nimport React, { useState } from 'react'\nimport { useActiveWeb3React } from '../../services/web3'\nimport { CurrencyAmount, JSBI, Token, USD, ZERO } from '@sushiswap/core-sdk'\nimport { getAddress } from '@ethersproject/address'\nimport { PairType } from './enum'\nimport { usePendingSushi, useUserInfo } from './hooks'\nimport { easyAmount, formatNumber } from '../../functions'\nimport { BigNumber } from '@ethersproject/bignumber'\nimport usePendingReward from './usePendingReward'\nimport CurrencyLogo from '../../components/CurrencyLogo'\nimport useMasterChef from './useMasterChef'\nimport { useTransactionAdder } from '../../state/transactions/hooks'\nimport { useRouter } from 'next/router'\nimport Button from '../../components/Button'\nimport { useCurrency } from '../../hooks/Tokens'\nimport Typography from '../../components/Typography'\nimport { useKashiPair } from '../kashi/context'\n\nconst InvestmentDetails = ({ farm }) => {\n const { i18n } = useLingui()\n\n const { chainId } = useActiveWeb3React()\n\n const { harvest } = useMasterChef(farm.chef)\n\n const router = useRouter()\n\n const addTransaction = useTransactionAdder()\n\n const kashiPair = useKashiPair(farm.pair.id)\n\n const [pendingTx, setPendingTx] = useState(false)\n\n const token0 = useCurrency(farm.pair.token0.id)\n const token1 = useCurrency(farm.pair.token1.id)\n\n const liquidityToken = new Token(\n chainId,\n getAddress(farm.pair.id),\n farm.pair.type === PairType.KASHI ? Number(farm.pair.asset.decimals) : 18,\n farm.pair.symbol ?? farm.pair.type === PairType.KASHI ? 'KMP' : 'SLP',\n farm.pair.name\n )\n\n const stakedAmount = useUserInfo(farm, liquidityToken)\n\n const kashiAssetAmount =\n kashiPair &&\n stakedAmount &&\n easyAmount(\n BigNumber.from(stakedAmount.quotient.toString()).mulDiv(\n kashiPair.currentAllAssets.value,\n kashiPair.totalAsset.base\n ),\n kashiPair.asset\n )\n\n const pendingReward = usePendingReward(farm)\n const pendingSushi = usePendingSushi(farm)\n\n const positionFiatValue = CurrencyAmount.fromRawAmount(\n USD[chainId],\n farm.pair.type === PairType.KASHI\n ? kashiAssetAmount?.usdValue.toString() ?? ZERO\n : JSBI.BigInt(\n ((Number(stakedAmount?.toExact() ?? '0') * farm.pair.reserveUSD) / farm.pair.totalSupply)\n .toFixed(USD[chainId].decimals)\n .toBigNumber(USD[chainId].decimals)\n )\n )\n\n const rewardValue =\n (farm?.rewards?.[0]?.rewardPrice ?? 0) * Number(pendingSushi?.toExact() ?? 0) +\n (farm?.rewards?.[1]?.rewardPrice ?? 0) * Number(pendingReward ?? 0)\n\n async function onHarvest() {\n setPendingTx(true)\n try {\n const tx = await harvest(farm.id)\n addTransaction(tx, {\n summary: i18n._(t`Harvest ${farm.pair.token0.name}/${farm.pair.token1.name}`),\n })\n } catch (error) {\n console.error(error)\n }\n setPendingTx(false)\n }\n\n return (\n
\n
\n
\n
{i18n._(t`Your Deposits`)}:
\n \n {formatNumber(stakedAmount?.toSignificant(6) ?? 0)} {farm.pair.token0.symbol}-{farm.pair.token1.symbol}{' '}\n {liquidityToken.symbol}\n \n
\n
\n
\n
\n
\n \n {farm.pair.type === PairType.KASHI && (\n \n {formatNumber(kashiAssetAmount?.value.toFixed(kashiPair.asset.tokenInfo.decimals) ?? 0)}\n \n )}\n {farm.pair.type === PairType.SWAP && (\n \n {formatNumber((farm.pair.reserve0 * Number(stakedAmount?.toExact() ?? 0)) / farm.pair.totalSupply)}\n \n )}\n {token0?.symbol}\n
\n {farm.pair.type === PairType.SWAP && (\n
\n \n \n {formatNumber((farm.pair.reserve1 * Number(stakedAmount?.toExact() ?? 0)) / farm.pair.totalSupply)}\n \n {token1?.symbol}\n
\n )}\n
\n {formatNumber(positionFiatValue?.toSignificant(6) ?? 0, true)}\n
\n
\n
\n
\n
{i18n._(t`Your Rewards`)}:
\n {((pendingSushi && pendingSushi.greaterThan(ZERO)) || (pendingReward && Number(pendingReward) > 0)) && (\n \n {i18n._(t`Harvest Rewards`)}\n \n )}\n
\n
\n
\n
\n {farm?.rewards?.map((reward, i) => (\n
\n \n {i === 0 && {formatNumber(pendingSushi?.toSignificant(6) ?? 0)}}\n {i === 1 && {formatNumber(pendingReward)}}\n {reward.token}\n
\n ))}\n
\n {formatNumber(rewardValue, true)}\n
\n
\n {farm.pair.type === PairType.KASHI && (\n router.push(`/lend/${farm.pair.id}`)}\n >\n {i18n._(t`View Details on Kashi`)}\n \n )}\n
\n )\n}\n\nexport default InvestmentDetails\n","import React, { useState } from 'react'\nimport { Switch } from '@headlessui/react'\nimport { MinusIcon, PlusIcon } from '@heroicons/react/solid'\nimport { i18n } from '@lingui/core'\nimport { t } from '@lingui/macro'\nimport Button, { ButtonError } from '../../components/Button'\nimport { classNames, getUSDValue, tryParseAmount } from '../../functions'\nimport CurrencyInputPanel from './CurrencyInputPanel'\nimport Web3Connect from '../../components/Web3Connect'\nimport { ApprovalState, useApproveCallback } from '../../hooks/useApproveCallback'\nimport { useActiveWeb3React } from '../../services/web3'\nimport Dots from '../../components/Dots'\nimport { BigNumber } from '@ethersproject/bignumber'\nimport useMasterChef from './useMasterChef'\nimport { useTransactionAdder } from '../../state/transactions/hooks'\nimport {\n ChainId,\n CurrencyAmount,\n JSBI,\n MASTERCHEF_ADDRESS,\n MASTERCHEF_V2_ADDRESS,\n MINICHEF_ADDRESS,\n Token,\n USDC,\n USD,\n ZERO,\n} from '@sushiswap/core-sdk'\nimport { getAddress } from '@ethersproject/address'\nimport { Chef, PairType } from './enum'\nimport { useKashiPair } from '../kashi/context'\nimport { useCurrencyBalance } from '../../state/wallet/hooks'\nimport { useUserInfo } from './hooks'\n\nconst ManageBar = ({ farm }) => {\n const { account, chainId } = useActiveWeb3React()\n\n const [toggle, setToggle] = useState(true)\n\n const [depositValue, setDepositValue] = useState('')\n const [withdrawValue, setWithdrawValue] = useState('')\n\n const { deposit, withdraw } = useMasterChef(farm.chef)\n\n const addTransaction = useTransactionAdder()\n\n const liquidityToken = new Token(\n chainId,\n getAddress(farm.pair.id),\n farm.pair.type === PairType.KASHI ? Number(farm.pair.asset.decimals) : 18,\n farm.pair.type === PairType.KASHI ? 'KMP' : 'SLP'\n )\n\n const kashiPair = useKashiPair(farm.pair.id)\n\n const balance = useCurrencyBalance(account, liquidityToken)\n\n const stakedAmount = useUserInfo(farm, liquidityToken)\n\n const balanceFiatValue = CurrencyAmount.fromRawAmount(\n USD[chainId],\n farm.pair.type === PairType.KASHI\n ? kashiPair && balance\n ? getUSDValue(\n BigNumber.from(balance.quotient.toString()).mulDiv(\n kashiPair.currentAllAssets.value,\n kashiPair.totalAsset.base\n ),\n kashiPair.asset\n ).toString()\n : ZERO\n : JSBI.BigInt(\n ((Number(balance?.toExact() ?? '0') * farm.pair.reserveUSD) / farm.pair.totalSupply)\n .toFixed(USD[chainId].decimals)\n .toBigNumber(USD[chainId].decimals)\n )\n )\n\n const stakedAmountFiatValue = CurrencyAmount.fromRawAmount(\n USD[chainId],\n farm.pair.type === PairType.KASHI\n ? kashiPair && stakedAmount\n ? getUSDValue(\n BigNumber.from(stakedAmount.quotient.toString()).mulDiv(\n kashiPair.currentAllAssets.value,\n kashiPair.totalAsset.base\n ),\n kashiPair.asset\n ).toString()\n : ZERO\n : JSBI.BigInt(\n ((Number(stakedAmount?.toExact() ?? '0') * farm.pair.reserveUSD) / farm.pair.totalSupply)\n .toFixed(USD[chainId].decimals)\n .toBigNumber(USD[chainId].decimals)\n )\n )\n\n const parsedDepositValue = tryParseAmount(depositValue, liquidityToken)\n const parsedWithdrawValue = tryParseAmount(withdrawValue, liquidityToken)\n\n const APPROVAL_ADDRESSES = {\n [Chef.MASTERCHEF]: { [ChainId.ETHEREUM]: MASTERCHEF_ADDRESS[ChainId.ETHEREUM] },\n [Chef.MASTERCHEF_V2]: { [ChainId.ETHEREUM]: MASTERCHEF_V2_ADDRESS[ChainId.ETHEREUM] },\n [Chef.MINICHEF]: {\n [ChainId.MATIC]: MINICHEF_ADDRESS[ChainId.MATIC],\n [ChainId.XDAI]: MINICHEF_ADDRESS[ChainId.XDAI],\n [ChainId.HARMONY]: MINICHEF_ADDRESS[ChainId.HARMONY],\n [ChainId.ARBITRUM]: MINICHEF_ADDRESS[ChainId.ARBITRUM],\n [ChainId.CELO]: MINICHEF_ADDRESS[ChainId.CELO],\n [ChainId.MOONRIVER]: MINICHEF_ADDRESS[ChainId.MOONRIVER],\n },\n }\n\n const [approvalState, approve] = useApproveCallback(parsedDepositValue, APPROVAL_ADDRESSES[farm.chef][chainId])\n\n const depositError = !parsedDepositValue\n ? 'Enter an amount'\n : balance?.lessThan(parsedDepositValue)\n ? 'Insufficient balance'\n : undefined\n\n const isDepositValid = !depositError\n\n const withdrawError = !parsedWithdrawValue\n ? 'Enter an amount'\n : stakedAmount.lessThan(parsedWithdrawValue)\n ? 'Insufficient balance'\n : undefined\n\n const isWithdrawValid = !withdrawError\n\n return (\n
\n
\n \n
\n setToggle(!toggle)}\n className={`${\n toggle ? 'bg-blue border-blue' : 'bg-pink border-pink'\n } bg-opacity-60 border border-opacity-80 relative inline-flex items-center h-[32px] rounded-full w-[54px] transition-colors focus:outline-none`}\n >\n \n {toggle ? : }\n \n \n {toggle ? i18n._(t`Deposit`) : i18n._(t`Withdraw`)}\n
\n
\n
\n {['25', '50', '75', '100'].map((multipler, i) => (\n {\n toggle\n ? setDepositValue(balance.multiply(multipler).divide(100).toExact())\n : setWithdrawValue(stakedAmount.multiply(multipler).divide(100).toExact())\n }}\n className={classNames(\n 'text-md border border-opacity-50',\n toggle ? 'focus:ring-blue border-blue' : 'focus:ring-pink border-pink',\n multipler === '25' || multipler === '75' ? 'hidden sm:block' : ''\n )}\n >\n {multipler === '100' ? 'MAX' : multipler + '%'}\n \n ))}\n
\n
\n {toggle ? (\n
\n setDepositValue(value)}\n currencyBalance={balance}\n fiatValue={balanceFiatValue}\n showMaxButton={false}\n />\n {!account ? (\n \n ) : isDepositValid &&\n (approvalState === ApprovalState.NOT_APPROVED || approvalState === ApprovalState.PENDING) ? (\n \n {approvalState === ApprovalState.PENDING ? {i18n._(t`Approving`)} : i18n._(t`Approve`)}\n \n ) : (\n {\n try {\n // KMP decimals depend on asset, SLP is always 18\n const tx = await deposit(farm.id, BigNumber.from(parsedDepositValue.quotient.toString()))\n addTransaction(tx, {\n summary: `Deposit ${farm.pair.token0.name}/${farm.pair.token1.name}`,\n })\n } catch (error) {\n console.error(error)\n }\n }}\n disabled={!isDepositValid}\n error={!isDepositValid && !!parsedDepositValue}\n >\n {depositError || i18n._(t`Confirm Deposit`)}\n \n )}\n
\n ) : (\n
\n setWithdrawValue(value)}\n currencyBalance={stakedAmount}\n fiatValue={stakedAmountFiatValue}\n showMaxButton={false}\n />\n {!account ? (\n \n ) : (\n {\n try {\n // KMP decimals depend on asset, SLP is always 18\n const tx = await withdraw(farm.id, BigNumber.from(parsedWithdrawValue.quotient.toString()))\n addTransaction(tx, {\n summary: `Withdraw ${farm.pair.token0.name}/${farm.pair.token1.name}`,\n })\n } catch (error) {\n console.error(error)\n }\n }}\n disabled={!isWithdrawValid}\n error={!isWithdrawValid && !!parsedWithdrawValue}\n >\n {withdrawError || i18n._(t`Confirm Withdraw`)}\n \n )}\n
\n )}\n
\n )\n}\n\nexport default ManageBar\n","import React, { useState } from 'react'\nimport { PairType } from './enum'\nimport { Disclosure, Tab, Transition } from '@headlessui/react'\nimport { t } from '@lingui/macro'\nimport { useLingui } from '@lingui/react'\nimport { useActiveWeb3React } from '../../services/web3'\nimport { Token, ZERO } from '@sushiswap/core-sdk'\nimport { getAddress } from '@ethersproject/address'\nimport { useUserInfo } from './hooks'\nimport ManageSwapPair from './ManageSwapPair'\nimport ManageKashiPair from './ManageKashiPair'\nimport InformationDisclosure from './InformationDisclosure'\nimport InvestmentDetails from './InvestmentDetails'\nimport ManageBar from './ManageBar'\n\nconst FarmListItemDetails = ({ farm }) => {\n const { i18n } = useLingui()\n\n const { chainId } = useActiveWeb3React()\n\n const liquidityToken = new Token(\n chainId,\n getAddress(farm.pair.id),\n farm.pair.type === PairType.KASHI ? Number(farm.pair.asset.decimals) : 18,\n farm.pair.type === PairType.KASHI ? 'KMP' : 'SLP'\n )\n\n const stakedAmount = useUserInfo(farm, liquidityToken)\n\n const [toggleView, setToggleView] = useState(stakedAmount?.greaterThan(ZERO))\n\n return (\n \n \n \n
\n
\n
\n {toggleView ? i18n._(t`Investment Details`) : i18n._(t`Manage Position`)}\n
\n setToggleView(!toggleView)}\n >\n {toggleView ? i18n._(t`Manage Position`) : i18n._(t`Investment Details`)}\n \n
\n
\n {toggleView ? (\n \n ) : (\n \n \n \n `${\n selected\n ? 'text-high-emphesis bg-gradient-to-r from-opaque-blue to-opaque-pink hover:from-blue hover:to-pink'\n : 'text-secondary'\n } flex items-center justify-center flex-1 px-2 py-2 text-lg rounded cursor-pointer select-none`\n }\n >\n {farm.pair.type === PairType.KASHI ? i18n._(t`Lending`) : i18n._(t`Liquidity`)}\n \n \n `${\n selected\n ? 'text-high-emphesis bg-gradient-to-r from-opaque-blue to-opaque-pink hover:from-blue hover:to-pink'\n : 'text-secondary'\n } flex items-center justify-center flex-1 px-2 py-2 text-lg rounded cursor-pointer select-none`\n }\n >\n {i18n._(t`Staking`)}\n \n \n \n {farm.pair.type === PairType.KASHI ? : }\n \n \n \n \n \n )}\n
\n \n \n )\n}\n\nexport default FarmListItemDetails\n","import { classNames, formatNumber, formatPercent } from '../../functions'\n\nimport { Disclosure } from '@headlessui/react'\nimport DoubleLogo from '../../components/DoubleLogo'\nimport FarmListItemDetails from './FarmListItemDetails'\nimport Image from '../../components/Image'\nimport { PairType } from './enum'\nimport QuestionHelper from '../../components/QuestionHelper'\nimport React from 'react'\nimport { useCurrency } from '../../hooks/Tokens'\n\nconst FarmListItem = ({ farm, ...rest }) => {\n const token0 = useCurrency(farm.pair.token0.id)\n const token1 = useCurrency(farm.pair.token1.id)\n\n return (\n \n {({ open }) => (\n
\n \n
\n
\n \n
\n
\n {farm?.pair?.token0?.symbol}/\n \n {farm?.pair?.token1?.symbol}\n \n
\n {farm?.pair?.type === PairType.SWAP && (\n
SushiSwap Farm
\n )}\n {farm?.pair?.type === PairType.KASHI && (\n
Kashi Farm
\n )}\n
\n
\n
{formatNumber(farm.tvl, true)}
\n \n
\n
\n {farm?.tvl !== 0\n ? farm?.roiPerYear > 10000\n ? '>10,000%'\n : formatPercent(farm?.roiPerYear * 100)\n : 'Infinite'}\n {!!farm?.feeApyPerYear && (\n \n
\n Reward APR:{' '}\n {farm?.tvl !== 0\n ? farm?.rewardAprPerYear > 10000\n ? '>10,000%'\n : formatPercent(farm?.rewardAprPerYear * 100)\n : 'Infinite'}\n
\n
\n Fee APR:{' '}\n {farm?.feeApyPerYear < 10000 ? formatPercent(farm?.feeApyPerYear * 100) : '>10,000%'}\n
\n
\n }\n />\n )}\n
\n
annualized
\n
\n
\n \n {open && }\n
\n )}\n \n )\n}\n\nexport default FarmListItem\n","import { ChevronDownIcon, ChevronUpIcon } from '@heroicons/react/outline'\nimport { useInfiniteScroll } from './hooks'\nimport Dots from '../../components/Dots'\nimport FarmListItem from './FarmListItem'\nimport InfiniteScroll from 'react-infinite-scroll-component'\nimport React from 'react'\nimport { t } from '@lingui/macro'\nimport { useLingui } from '@lingui/react'\nimport useSortableData from '../../hooks/useSortableData'\n\nconst FarmList = ({ farms, term }) => {\n const { items, requestSort, sortConfig } = useSortableData(farms, { key: 'roiPerYear' })\n const { i18n } = useLingui()\n const [numDisplayed, setNumDisplayed] = useInfiniteScroll(items)\n\n return items ? (\n <>\n
\n requestSort('symbol')}\n >\n
{i18n._(t`Pool`)}
\n {sortConfig &&\n sortConfig.key === 'symbol' &&\n ((sortConfig.direction === 'ascending' && ) ||\n (sortConfig.direction === 'descending' && ))}\n
\n requestSort('tvl')}\n >\n {i18n._(t`TVL`)}\n {sortConfig &&\n sortConfig.key === 'tvl' &&\n ((sortConfig.direction === 'ascending' && ) ||\n (sortConfig.direction === 'descending' && ))}\n
\n \n requestSort('roiPerYear')}\n >\n {i18n._(t`APR`)}\n {sortConfig &&\n sortConfig.key === 'roiPerYear' &&\n ((sortConfig.direction === 'ascending' && ) ||\n (sortConfig.direction === 'descending' && ))}\n
\n
\n setNumDisplayed(numDisplayed + 5)}\n hasMore={true}\n loader={null}\n >\n
\n {items.slice(0, numDisplayed).map((farm, index) => (\n \n ))}\n
\n \n \n ) : (\n
{term ? No Results. : Loading}
\n )\n}\n\nexport default FarmList\n","import { ChainId } from '@sushiswap/core-sdk'\nimport NavLink from '../../components/NavLink'\nimport React from 'react'\nimport { useActiveWeb3React } from '../../services/web3'\nimport { useWalletModalToggle } from '../../state/application/hooks'\n\nconst Menu = ({ positionsLength }) => {\n const { account, chainId } = useActiveWeb3React()\n const toggleWalletModal = useWalletModalToggle()\n return (\n
\n {account ? (\n \n \n Your Farms\n \n \n ) : (\n \n Your Farms\n \n )}\n\n
\n\n \n \n All Farms\n \n \n\n {[ChainId.ETHEREUM, ChainId.ARBITRUM].includes(chainId) && (\n <>\n \n \n Kashi Farms\n \n \n \n \n SushiSwap Farms\n \n \n \n )}\n\n {(chainId === ChainId.ETHEREUM || chainId === ChainId.MATIC) && (\n \n \n 2x Reward Farms\n \n \n )}\n
\n )\n}\n\nexport default Menu\n","import { Chef, PairType } from '../../features/onsen/enum'\nimport { useActiveWeb3React } from '../../services/web3'\nimport useFuse from '../../hooks/useFuse'\nimport Container from '../../components/Container'\nimport FarmList from '../../features/onsen/FarmList'\nimport Head from 'next/head'\nimport Menu from '../../features/onsen/FarmMenu'\nimport React from 'react'\nimport Search from '../../components/Search'\nimport { classNames } from '../../functions'\nimport useFarmRewards from '../../hooks/useFarmRewards'\nimport { usePositions } from '../../features/onsen/hooks'\nimport { useRouter } from 'next/router'\nimport Provider from '../../features/kashi/context'\n\nexport default function Farm(): JSX.Element {\n const { chainId } = useActiveWeb3React()\n\n const router = useRouter()\n const type = router.query.filter === null ? 'all' : (router.query.filter as string)\n\n const positions = usePositions(chainId)\n\n const FILTER = {\n all: (farm) => farm.allocPoint !== '0',\n portfolio: (farm) => farm?.amount && !farm.amount.isZero(),\n sushi: (farm) => farm.pair.type === PairType.SWAP && farm.allocPoint !== '0',\n kashi: (farm) => farm.pair.type === PairType.KASHI && farm.allocPoint !== '0',\n '2x': (farm) =>\n (farm.chef === Chef.MASTERCHEF_V2 || farm.chef === Chef.MINICHEF) &&\n farm.rewards.length > 1 &&\n farm.allocPoint !== '0',\n }\n\n const rewards = useFarmRewards()\n\n const data = rewards.filter((farm) => {\n return type in FILTER ? FILTER[type](farm) : true\n })\n\n const options = {\n keys: ['pair.id', 'pair.token0.symbol', 'pair.token1.symbol'],\n threshold: 0.4,\n }\n\n const { result, term, search } = useFuse({\n data,\n options,\n })\n\n return (\n \n \n Farm | Sushi\n \n \n \n
\n \n {/*
\n Ready to Stake{' '}\n
\n
\n */}\n
\n Farms{' '}\n
\n
\n\n \n
\n
\n )\n}\n\nFarm.Provider = Provider\n","import { AppDispatch, AppState } from '../index'\nimport { Currency, CurrencyAmount, JSBI, Pair, Percent, Price, Token } from '@sushiswap/core-sdk'\nimport { Field, typeInput } from './actions'\nimport { PairState, useV2Pair } from '../../hooks/useV2Pairs'\nimport { useCallback, useMemo } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\n\nimport { t } from '@lingui/macro'\nimport { tryParseAmount } from '../../functions/parse'\nimport { useActiveWeb3React } from '../../services/web3'\nimport { useCurrencyBalances } from '../wallet/hooks'\nimport { useLingui } from '@lingui/react'\nimport { useTotalSupply } from '../../hooks/useTotalSupply'\n\nconst ZERO = JSBI.BigInt(0)\n\nexport function useMintState(): AppState['mint'] {\n return useSelector((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 = useDispatch()\n\n const onFieldAInput = useCallback(\n (typedValue: string) => {\n dispatch(\n typeInput({\n field: Field.CURRENCY_A,\n typedValue,\n noLiquidity: noLiquidity === true,\n })\n )\n },\n [dispatch, noLiquidity]\n )\n const onFieldBInput = useCallback(\n (typedValue: string) => {\n dispatch(\n typeInput({\n field: Field.CURRENCY_B,\n typedValue,\n noLiquidity: noLiquidity === true,\n })\n )\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): {\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?: string\n} {\n const { i18n } = useLingui()\n const { account } = 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])\n const totalSupply = useTotalSupply(pair?.liquidityToken)\n\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(account ?? undefined, [\n currencies[Field.CURRENCY_A],\n currencies[Field.CURRENCY_B],\n ])\n const currencyBalances: { [field in Field]?: CurrencyAmount } = {\n [Field.CURRENCY_A]: balances[0],\n [Field.CURRENCY_B]: balances[1],\n }\n\n // amounts\n const independentAmount: CurrencyAmount | undefined = tryParseAmount(\n typedValue,\n currencies[independentField]\n )\n const dependentAmount: CurrencyAmount | undefined = useMemo(() => {\n if (noLiquidity) {\n if (otherTypedValue && currencies[dependentField]) {\n return tryParseAmount(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: {\n [field in Field]: CurrencyAmount | undefined\n } = 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 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\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: string | undefined\n if (!account) {\n error = i18n._(t`Connect Wallet`)\n }\n\n if (pairState === PairState.INVALID) {\n error = error ?? i18n._(t`Invalid pair`)\n }\n\n if (!parsedAmounts[Field.CURRENCY_A] || !parsedAmounts[Field.CURRENCY_B]) {\n error = error ?? i18n._(t`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 error = i18n._(t`Insufficient ${currencies[Field.CURRENCY_A]?.symbol} balance`)\n }\n\n if (currencyBAmount && currencyBalances?.[Field.CURRENCY_B]?.lessThan(currencyBAmount)) {\n error = i18n._(t`Insufficient ${currencies[Field.CURRENCY_B]?.symbol} balance`)\n }\n\n return {\n dependentField,\n currencies,\n pair,\n pairState,\n currencyBalances,\n parsedAmounts,\n price,\n noLiquidity,\n liquidityMinted,\n poolTokenPercentage,\n error,\n }\n}\n","\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/farm\",\n function () {\n return require(\"private-next-pages/farm/index.tsx\");\n }\n ]);\n if(module.hot) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/farm\"])\n });\n }\n "],"names":["FiatValue","fiatValue","priceImpact","priceImpactClassName","useMemo","lessThan","severity","warningSeverity","className","toSignificant","groupSeparator","multiply","ConfirmAddModalBottom","noLiquidity","price","currencies","parsedAmounts","poolTokenPercentage","onAdd","i18n","useLingui","_","Field","currency","symbol","invert","color","size","onClick","getNested","theObject","path","separator","replace","split","reduce","obj","property","err","items","config","sortConfig","setSortConfig","useState","length","sortableItems","sort","a","b","aValue","key","bValue","BigNumber","lt","direction","gt","Infinity","requestSort","STABLECOIN_AMOUNT_OUT","ChainId","CurrencyAmount","USD","useUSDCPrice","chainId","useActiveWeb3React","amountOut","undefined","stablecoin","v2USDCTrade","useV2TradeExactOut","maxHops","wrapped","equals","Price","numerator","denominator","route","midPrice","useUSDCValue","currencyAmount","quote","error","CurrencyInputPanel","value","onUserInput","onMax","showMaxButton","id","currencyBalance","hideBalance","hideInput","hideIcon","classNames","CurrencyLogo","style","maxWidth","maxHeight","width","height","animationData","selectCoinAnimation","autoplay","loop","Button","Input","val","formatCurrencyAmount","DEFAULT_ADD_V2_SLIPPAGE_TOLERANCE","Percent","currencyA","currencyB","account","library","useETH","setUseETH","currencyEquals","WNATIVE","NATIVE","oneCurrencyIsETH","isNative","oneCurrencyIsWETH","Boolean","isExpertMode","useExpertModeManager","independentField","typedValue","otherTypedValue","useMintState","dependentField","currencyBalances","liquidityMinted","useDerivedMintInfo","onFieldAInput","onFieldBInput","useMintActionHandlers","isValid","showConfirm","setShowConfirm","attemptingTxn","setAttemptingTxn","deadline","useTransactionDeadline","allowedSlippage","useUserSlippageToleranceWithDefault","txHash","setTxHash","formattedAmounts","maxAmounts","accumulator","field","maxAmountSpend","routerContract","equalTo","useRouterContract","approvalA","approveACallback","useApproveCallback","address","approvalB","approveBCallback","currencyAFiatValue","currencyBFiatValue","addTransaction","useTransactionAdder","async","parsedAmountA","parsedAmountB","console","log","amountsMin","calculateSlippageAmount","ZERO_PERCENT","estimate","method","args","tokenBIsETH","estimateGas","addLiquidityETH","quotient","toString","toHexString","addLiquidity","then","estimatedGasLimit","gasLimit","calculateGasMargin","response","summary","hash","ReactGA","category","action","label","join","catch","code","handleDismissConfirmation","useCallback","modalHeader","currency0","currency1","modalBottom","pendingText","TransactionConfirmationModal","isOpen","onDismiss","content","title","topContent","bottomContent","toExact","ApprovalState","disabled","Dots","Web3Connect","DEFAULT_REMOVE_LIQUIDITY_SLIPPAGE_TOLERANCE","tokenA","tokenB","useBurnState","pair","userLiquidity","useDerivedBurnInfo","_onUserInput","useBurnActionHandlers","showDetailed","setShowDetailed","toFixed","pairContract","usePairContract","liquidityToken","gatherPermitSignature","signatureData","useV2LiquidityTokenPermit","approval","approveCallback","onRemove","Error","currencyAmountA","currencyAmountB","liquidityAmount","currencyBIsETH","methodNames","v","r","s","safeGasEstimates","Promise","all","map","methodName","indexOfSuccessfulEstimation","findIndex","safeGasEstimate","priceOf","liquidityPercentChangeCallback","innerLiquidityPercentage","setInnerLiquidityPercentage","useDebouncedChangeHandler","align","Typography","multipler","i","variant","ZERO","Alert","message","type","farm","toggle","setToggle","token0","useCurrency","token1","checked","onChange","Settings","PoolAddLiquidity","PoolRemoveLiquidity","KashiDeposit","useBento","assetToken","asset","info","useKashiInfo","depositValue","setDepositValue","assetNative","balanceAmount","bentoBalance","ethBalance","balance","maxAmount","parsedDepositValue","tryParseAmount","kashiApprovalState","approveKashiFallback","kashiPermit","onApproveKashi","onCook","useKashiApproveCallback","tokenApprovalState","onApproveToken","BENTOBOX_ADDRESS","onDeposit","cooker","currentExchangeRate","isZero","updateExchangeRate","addAsset","tokenInfo","BentoApprovalState","Provider","withdrawValue","setWithdrawValue","amountAvailable","minimum","maxAssetAvailable","currentUserAssetAmount","available","availableFiatValue","parsedWithdrawValue","onWithdraw","maxFraction","userAssetFraction","maxAssetAvailableFraction","fraction","mulDiv","currentTotalAsset","base","currentAllAssets","removeAsset","eq","kashiPair","useKashiPair","setUseBento","open","show","as","Fragment","enter","enterFrom","enterTo","static","weight","PairType","NavLink","href","setBalance","currentBlockNumber","useBlockNumber","cloneRewarder","useCloneRewarderContract","rewarder","complexRewarder","useComplexRewarderContract","contract","useEffect","chef","Chef","pending","pendingTokens","formatted","rewardToken","Fraction","rewardAmounts","pow","decimals","fetchPendingReward","useMasterChef","sushi","useSushiContract","useChefContract","deposit","pid","amount","tx","e","withdraw","withdrawAndHarvest","harvest","Zero","pendingSushi","balanceOf","batch","interface","encodeFunctionData","router","useRouter","pendingTx","setPendingTx","Token","getAddress","Number","name","stakedAmount","useUserInfo","kashiAssetAmount","easyAmount","totalAsset","pendingReward","usePendingReward","usePendingSushi","positionFiatValue","usdValue","JSBI","reserveUSD","totalSupply","toBigNumber","rewardValue","rewards","rewardPrice","formatNumber","reserve0","reserve1","greaterThan","reward","Image","src","icon","layout","alt","token","push","useCurrencyBalance","balanceFiatValue","getUSDValue","stakedAmountFiatValue","APPROVAL_ADDRESSES","MASTERCHEF_ADDRESS","MASTERCHEF_V2_ADDRESS","MINICHEF_ADDRESS","approvalState","approve","depositError","isDepositValid","withdrawError","isWithdrawValid","divide","toggleView","setToggleView","leave","leaveFrom","leaveTo","selected","rest","DoubleLogo","tvl","rewardPerDay","roiPerYear","formatPercent","feeApyPerYear","QuestionHelper","text","rewardAprPerYear","farms","term","useSortableData","numDisplayed","setNumDisplayed","useInfiniteScroll","dataLength","next","hasMore","loader","slice","index","positionsLength","toggleWalletModal","useWalletModalToggle","exact","activeClassName","includes","Farm","query","filter","positions","usePositions","FILTER","allocPoint","portfolio","kashi","data","useFarmRewards","result","search","useFuse","options","keys","threshold","Container","Search","inputProps","useSelector","state","mint","dispatch","useDispatch","typeInput","pairState","useV2Pair","useTotalSupply","PairState","balances","useCurrencyBalances","independentAmount","dependentAmount","wrappedIndependentAmount","dependentCurrency","dependentTokenAmount","wrappedCurrencyA","currencyAAmount","currencyBAmount","tokenAmountA","tokenAmountB","getLiquidityMinted","add","window","__NEXT_P"],"sourceRoot":""}