import { Currency, CurrencyAmount } from "@uniswap/sdk-core"; import JSBI from "jsbi"; import { MIN_ETH } from "../constants/misc"; /** * Given some token amount, return the max that can be spent of it * @param currencyAmount to return max of */ export function maxAmountSpend( currencyAmount?: CurrencyAmount ): CurrencyAmount | undefined { if (!currencyAmount) return undefined; if (currencyAmount.currency.isNative) { if (JSBI.greaterThan(currencyAmount.quotient, MIN_ETH)) { return CurrencyAmount.fromRawAmount( currencyAmount.currency, JSBI.subtract(currencyAmount.quotient, MIN_ETH) ); } else { return CurrencyAmount.fromRawAmount( currencyAmount.currency, JSBI.BigInt(0) ); } } return currencyAmount; }