import { z } from 'zod'; import { WalletClient, PublicActions, Address as Address$1, Transport, Chain, Account, PublicClient } from 'viem'; import { QuoteResults, EnrichedOrder } from '@cowprotocol/cow-sdk'; import { gnosis } from 'viem/chains'; /** * The address of the native token on the Ethereum chain */ declare const NATIVE_TOKEN_ADDRESS: "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"; type NativeCurrencyParamsType = { chainId: number; decimals: number; symbol: string; name: string; }; /** * Represents the native currency of the chain on which it resides, e.g. */ declare abstract class NativeCurrency extends BaseCurrency { readonly address: "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"; readonly isNative: true; readonly isToken: false; constructor(params: NativeCurrencyParamsType); } declare function nativeCurrencyToSerializableErc20TokenType(currency: NativeCurrency): SerializableErc20TokenType; /** * Parameters for creating a token */ type TokenParams = BaseCurrencyParams & { address: `0x${string}`; }; /** * Represents an ERC20 token with a unique address and some metadata. */ declare class Token extends BaseCurrency { readonly isNative: false; readonly isToken: true; /** * The contract address on the chain on which this token lives */ readonly address: `0x${string}`; /** * @param chainId {@link BaseCurrency#chainId} * @param address The contract address on the chain on which this token lives * @param decimals {@link BaseCurrency#decimals} * @param symbol {@link BaseCurrency#symbol} * @param name {@link BaseCurrency#name} * @param bypassChecksum If true it only checks for length === 42, startsWith 0x and contains only hex characters */ constructor(params: TokenParams); /** * Returns true if the two tokens are equivalent, i.e. have the same chainId and address. * @param other other token to compare */ equals(other: Currency): boolean; /** * Returns true if the address of this token sorts before the address of the other token * @param other other token to compare * @throws if the tokens have the same address * @throws if the tokens are on different chains */ sortsBefore(other: Token): boolean; /** * Return this token, which does not need to be wrapped */ get wrapped(): Token; /** * Returns a serializable object representation of the token */ toObject(): SerializableErc20TokenType; static fromObject(object: SerializableErc20TokenType): Token; } type Currency = NativeCurrency | Token; type BaseCurrencyParams = { chainId: number; decimals: number; symbol: string; name: string; }; declare const SerializableErc20TokenTypeSchema: z.ZodObject<{ address: z.ZodEffects; chainId: z.ZodEffects; decimals: z.ZodEffects; name: z.ZodEffects; symbol: z.ZodEffects; }, "strip", z.ZodTypeAny, { symbol: string; chainId: number; decimals: number; name: string; address?: any; }, { symbol: string; address: string; chainId: number; decimals: number; name: string; }>; type SerializableErc20TokenType = z.infer; /** * A currency is any fungible financial instrument, including Ether, all ERC20 tokens, and other chain-native currencies */ declare abstract class BaseCurrency { /** * Returns whether the currency is native to the chain and must be wrapped (e.g. Ether) */ abstract readonly isNative: boolean; /** * Returns whether the currency is a token that is usable in Uniswap without wrapping */ abstract readonly isToken: boolean; /** * The chain ID on which this currency resides */ readonly chainId: number; /** * The decimals used in representing currency amounts */ readonly decimals: number; /** * The symbol of the currency, i.e. a short textual non-unique identifier */ readonly symbol: string; /** * The name of the currency, i.e. a descriptive textual non-unique identifier */ readonly name: string; /** * Constructs an instance of the base class `BaseCurrency`. * @param chainId the chain ID on which this currency resides * @param decimals decimals of the currency * @param symbol symbol of the currency * @param name of the currency */ protected constructor(params: BaseCurrencyParams); /** * Returns whether this currency is functionally equivalent to the other currency * @param other the other currency */ abstract equals(other: Currency): boolean; /** * Return the wrapped version of this currency that can be used with the Uniswap contracts. Currencies must * implement this to be used in Uniswap */ abstract get wrapped(): Token; /** * Return the object representation of the currency */ abstract toObject(): SerializableErc20TokenType; } type TokenOrCurrency = Token | Currency; /** * Serializable currency amount schema */ declare const SerializableCurrencyAmountTypeSchema: z.ZodObject<{ amount: z.ZodObject<{ raw: z.ZodBigInt; humanReadable: z.ZodNumber; }, "strip", z.ZodTypeAny, { raw: bigint; humanReadable: number; }, { raw: bigint; humanReadable: number; }>; currency: z.ZodObject<{ address: z.ZodEffects; chainId: z.ZodEffects; decimals: z.ZodEffects; name: z.ZodEffects; symbol: z.ZodEffects; }, "strip", z.ZodTypeAny, { symbol: string; chainId: number; decimals: number; name: string; address?: any; }, { symbol: string; address: string; chainId: number; decimals: number; name: string; }>; }, "strip", z.ZodTypeAny, { amount: { raw: bigint; humanReadable: number; }; currency: { symbol: string; chainId: number; decimals: number; name: string; address?: any; }; }, { amount: { raw: bigint; humanReadable: number; }; currency: { symbol: string; address: string; chainId: number; decimals: number; name: string; }; }>; /** * A serializable currency amount */ type SerializableCurrencyAmountType = z.infer; declare class Amount { readonly currency: T; readonly rawAmount: bigint; private constructor(); static fromRawAmount(currency: T, rawAmount: bigint): Amount; /** * Create an amount from a human readable amount * @param currency - The currency to create the amount for * @param humanReadableAmount - The human readable amount, can be a number or a string * @returns The amount */ static fromHumanReadableAmount(currency: T, humanReadableAmount: number | string): Amount; toRawAmount(): bigint; /** * Convert the amount to a human readable format * @returns Human readable amount */ toHumanReadableAmountString(): string; /** * Convert the amount to a human readable format * @returns Human readable amount */ toHumanReadableAmount(): number; get humanAmount(): number; toObject(): SerializableCurrencyAmountType; static fromObject(object: SerializableCurrencyAmountType): Amount; } /** * Ether is the main usage of a 'native' currency, i.e. for Ethereum mainnet and all testnets */ declare class Ether extends NativeCurrency { protected constructor(chainId: number); get wrapped(): Token; private static _etherCache; static onChain(chainId: number): Ether; /** * Returns true if the two tokens are equivalent, i.e. have the same chainId and address. * @param other other token to compare */ equals(other: Currency): boolean; toObject(): SerializableErc20TokenType; } /** * xDAI is the native currency of the Gnosis Chain chain */ declare class xDAICurrency extends NativeCurrency { constructor(); get wrapped(): Token; /** * Returns true if the two tokens are equivalent, i.e. have the same chainId and address. * @param other other token to compare */ equals(other: Currency): boolean; toObject(): SerializableErc20TokenType; } declare const xDAI: xDAICurrency; declare const USDC: Readonly>; declare const USDT: Readonly>; declare const SETH2: Token; declare const RETH2: Token; declare const WETH: Readonly>; declare const wstETH: Readonly>; declare const WXDAI: Token; declare const DAI: Token; declare const GNO: Readonly>; declare const OLAS: Record; declare const COW: Readonly>; declare const SAFE: Readonly>; declare const sDAI: Readonly>; /** * USDCe is the USDC token on the Gnosis chain. * It is bridged from the Ethereum chain. */ declare const USDCe: Token; declare const legacyEURe: Token; /** * Monerium EURe */ declare const moneriumEURe: Readonly>; /** * Monerium GBPe */ declare const moneriumGBPe: Readonly>; declare const osGNO: Token; declare const BRLA: Token; declare const bTSLA: Token; declare const bNVDA: Token; declare const bCSPX: Token; declare const bMSTR: Token; declare const bCOIN: Token; declare const BAL: Readonly>; declare const backedTokens: { bCSPX: Token; bTSLA: Token; bCOIN: Token; bMSTR: Token; bNVDA: Token; }; declare const commonTokens_BAL: typeof BAL; declare const commonTokens_BRLA: typeof BRLA; declare const commonTokens_COW: typeof COW; declare const commonTokens_DAI: typeof DAI; declare const commonTokens_GNO: typeof GNO; declare const commonTokens_OLAS: typeof OLAS; declare const commonTokens_RETH2: typeof RETH2; declare const commonTokens_SAFE: typeof SAFE; declare const commonTokens_SETH2: typeof SETH2; declare const commonTokens_USDC: typeof USDC; declare const commonTokens_USDCe: typeof USDCe; declare const commonTokens_USDT: typeof USDT; declare const commonTokens_WETH: typeof WETH; declare const commonTokens_WXDAI: typeof WXDAI; declare const commonTokens_bCOIN: typeof bCOIN; declare const commonTokens_bCSPX: typeof bCSPX; declare const commonTokens_bMSTR: typeof bMSTR; declare const commonTokens_bNVDA: typeof bNVDA; declare const commonTokens_bTSLA: typeof bTSLA; declare const commonTokens_backedTokens: typeof backedTokens; declare const commonTokens_legacyEURe: typeof legacyEURe; declare const commonTokens_moneriumEURe: typeof moneriumEURe; declare const commonTokens_moneriumGBPe: typeof moneriumGBPe; declare const commonTokens_osGNO: typeof osGNO; declare const commonTokens_sDAI: typeof sDAI; declare const commonTokens_wstETH: typeof wstETH; declare namespace commonTokens { export { commonTokens_BAL as BAL, commonTokens_BRLA as BRLA, commonTokens_COW as COW, commonTokens_DAI as DAI, commonTokens_GNO as GNO, commonTokens_OLAS as OLAS, commonTokens_RETH2 as RETH2, commonTokens_SAFE as SAFE, commonTokens_SETH2 as SETH2, commonTokens_USDC as USDC, commonTokens_USDCe as USDCe, commonTokens_USDT as USDT, commonTokens_WETH as WETH, commonTokens_WXDAI as WXDAI, commonTokens_bCOIN as bCOIN, commonTokens_bCSPX as bCSPX, commonTokens_bMSTR as bMSTR, commonTokens_bNVDA as bNVDA, commonTokens_bTSLA as bTSLA, commonTokens_backedTokens as backedTokens, commonTokens_legacyEURe as legacyEURe, commonTokens_moneriumEURe as moneriumEURe, commonTokens_moneriumGBPe as moneriumGBPe, commonTokens_osGNO as osGNO, commonTokens_sDAI as sDAI, commonTokens_wstETH as wstETH, }; } type EnsureTokenApprovalDependencies = { client: WalletClient & PublicActions; }; type EnsureTokenApprovalParams = { tokenAddress: Address$1; spenderAddress: Address$1; amount: bigint; }; type EnsureTokenApprovalReturnType = { spenderAddress: Address$1; approved: boolean; transactionHash?: `0x${string}`; previousAllowance: bigint; newAllowance: bigint; wasAlreadyApproved: boolean; }; /** * Ensures that the token is approved for the spender to spend the amount. * If the token is already approved for the amount, this function does nothing. * If the token is not approved for the amount, this function approves the token for the spender to spend the amount. * * @param dependencies - The dependencies for the function. * @param params - The parameters for the function. * @returns A promise that resolves with the approval result details. */ declare function ensureTokenApproval(dependencies: EnsureTokenApprovalDependencies, params: EnsureTokenApprovalParams): Promise; type CreateCoWSellTradeDeps = { walletClient: WalletClient & PublicActions; }; type CreateCoWSellTradeParams = { sellTokenAmount: number; sellToken: SerializableErc20TokenType; buyToken: SerializableErc20TokenType; }; type CreateCoWSellTradeReturnType = { quote: QuoteResults; execute(): Promise; }; declare function createCowSellTrade(deps: CreateCoWSellTradeDeps, params: CreateCoWSellTradeParams): Promise; type GnosisChainPublicClient = PublicClient; /** * The address of the SDAI rate provider on the Gnosis chain. */ declare const SDAI_RATE_PROVIDER: "0x89C80A4540A00b5270347E02e2E144c71da2EceD"; declare const GNOSIS_CHAIN_SDAI_ADAPTER_ADDRESS: "0xd499b51fcfc66bd31248ef4b28d656d67e591a94"; declare const GNOSIS_CHAIN_SDAI_ADAPTER_ABI: readonly [{ readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "interestReceiver_"; readonly type: "address"; }, { readonly internalType: "address payable"; readonly name: "sDAI_"; readonly type: "address"; }]; readonly stateMutability: "nonpayable"; readonly type: "constructor"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "assets"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "receiver"; readonly type: "address"; }]; readonly name: "deposit"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "receiver"; readonly type: "address"; }]; readonly name: "depositXDAI"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "payable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "interestReceiver"; readonly outputs: readonly [{ readonly internalType: "contract IBridgeInterestReceiver"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "shares"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "receiver"; readonly type: "address"; }]; readonly name: "mint"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "shares"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "receiver"; readonly type: "address"; }]; readonly name: "redeem"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "receiver"; readonly type: "address"; }]; readonly name: "redeemAll"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "receiver"; readonly type: "address"; }]; readonly name: "redeemAllXDAI"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "payable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "shares"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "receiver"; readonly type: "address"; }]; readonly name: "redeemXDAI"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "payable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "sDAI"; readonly outputs: readonly [{ readonly internalType: "contract SavingsXDai"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "vaultAPY"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "assets"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "receiver"; readonly type: "address"; }]; readonly name: "withdraw"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "assets"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "receiver"; readonly type: "address"; }]; readonly name: "withdrawXDAI"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "payable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "wxdai"; readonly outputs: readonly [{ readonly internalType: "contract IWXDAI"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly stateMutability: "payable"; readonly type: "receive"; }]; declare const SDAI_RATE_PROVIDER_ABI: readonly [{ readonly inputs: readonly [{ readonly internalType: "contract IERC4626"; readonly name: "_erc4626"; readonly type: "address"; }]; readonly stateMutability: "nonpayable"; readonly type: "constructor"; }, { readonly inputs: readonly []; readonly name: "baseDecimals"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "erc4626"; readonly outputs: readonly [{ readonly internalType: "contract IERC4626"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getRate"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }]; declare function getSdaiRate({ client }: { client: GnosisChainPublicClient; }): Promise>; /** * Get token price information from LiFi with caching * @param chainId - The chain ID * @param tokenAddress - The token address * @returns The token price information */ declare function getTokenPrice(chainId: number, tokenAddress: Address$1): Promise; declare const CURVE_POOL_GAUGE_ABI: readonly [{ readonly name: "Approval"; readonly inputs: readonly [{ readonly name: "_owner"; readonly type: "address"; readonly indexed: true; }, { readonly name: "_spender"; readonly type: "address"; readonly indexed: true; }, { readonly name: "_value"; readonly type: "uint256"; readonly indexed: false; }]; readonly anonymous: false; readonly type: "event"; }, { readonly name: "Transfer"; readonly inputs: readonly [{ readonly name: "_from"; readonly type: "address"; readonly indexed: true; }, { readonly name: "_to"; readonly type: "address"; readonly indexed: true; }, { readonly name: "_value"; readonly type: "uint256"; readonly indexed: false; }]; readonly anonymous: false; readonly type: "event"; }, { readonly name: "Deposit"; readonly inputs: readonly [{ readonly name: "_user"; readonly type: "address"; readonly indexed: true; }, { readonly name: "_value"; readonly type: "uint256"; readonly indexed: false; }]; readonly anonymous: false; readonly type: "event"; }, { readonly name: "Withdraw"; readonly inputs: readonly [{ readonly name: "_user"; readonly type: "address"; readonly indexed: true; }, { readonly name: "_value"; readonly type: "uint256"; readonly indexed: false; }]; readonly anonymous: false; readonly type: "event"; }, { readonly name: "UpdateLiquidityLimit"; readonly inputs: readonly [{ readonly name: "_user"; readonly type: "address"; readonly indexed: true; }, { readonly name: "_original_balance"; readonly type: "uint256"; readonly indexed: false; }, { readonly name: "_original_supply"; readonly type: "uint256"; readonly indexed: false; }, { readonly name: "_working_balance"; readonly type: "uint256"; readonly indexed: false; }, { readonly name: "_working_supply"; readonly type: "uint256"; readonly indexed: false; }]; readonly anonymous: false; readonly type: "event"; }, { readonly stateMutability: "nonpayable"; readonly type: "constructor"; readonly inputs: readonly [{ readonly name: "_crv_token"; readonly type: "address"; }, { readonly name: "_factory"; readonly type: "address"; }]; readonly outputs: readonly []; }, { readonly stateMutability: "nonpayable"; readonly type: "function"; readonly name: "deposit"; readonly inputs: readonly [{ readonly name: "_value"; readonly type: "uint256"; }]; readonly outputs: readonly []; }, { readonly stateMutability: "nonpayable"; readonly type: "function"; readonly name: "deposit"; readonly inputs: readonly [{ readonly name: "_value"; readonly type: "uint256"; }, { readonly name: "_user"; readonly type: "address"; }]; readonly outputs: readonly []; }, { readonly stateMutability: "nonpayable"; readonly type: "function"; readonly name: "deposit"; readonly inputs: readonly [{ readonly name: "_value"; readonly type: "uint256"; }, { readonly name: "_user"; readonly type: "address"; }, { readonly name: "_claim_rewards"; readonly type: "bool"; }]; readonly outputs: readonly []; }, { readonly stateMutability: "nonpayable"; readonly type: "function"; readonly name: "withdraw"; readonly inputs: readonly [{ readonly name: "_value"; readonly type: "uint256"; }]; readonly outputs: readonly []; }, { readonly stateMutability: "nonpayable"; readonly type: "function"; readonly name: "withdraw"; readonly inputs: readonly [{ readonly name: "_value"; readonly type: "uint256"; }, { readonly name: "_user"; readonly type: "address"; }]; readonly outputs: readonly []; }, { readonly stateMutability: "nonpayable"; readonly type: "function"; readonly name: "withdraw"; readonly inputs: readonly [{ readonly name: "_value"; readonly type: "uint256"; }, { readonly name: "_user"; readonly type: "address"; }, { readonly name: "_claim_rewards"; readonly type: "bool"; }]; readonly outputs: readonly []; }, { readonly stateMutability: "nonpayable"; readonly type: "function"; readonly name: "transferFrom"; readonly inputs: readonly [{ readonly name: "_from"; readonly type: "address"; }, { readonly name: "_to"; readonly type: "address"; }, { readonly name: "_value"; readonly type: "uint256"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "bool"; }]; }, { readonly stateMutability: "nonpayable"; readonly type: "function"; readonly name: "approve"; readonly inputs: readonly [{ readonly name: "_spender"; readonly type: "address"; }, { readonly name: "_value"; readonly type: "uint256"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "bool"; }]; }, { readonly stateMutability: "nonpayable"; readonly type: "function"; readonly name: "permit"; readonly inputs: readonly [{ readonly name: "_owner"; readonly type: "address"; }, { readonly name: "_spender"; readonly type: "address"; }, { readonly name: "_value"; readonly type: "uint256"; }, { readonly name: "_deadline"; readonly type: "uint256"; }, { readonly name: "_v"; readonly type: "uint8"; }, { readonly name: "_r"; readonly type: "bytes32"; }, { readonly name: "_s"; readonly type: "bytes32"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "bool"; }]; }, { readonly stateMutability: "nonpayable"; readonly type: "function"; readonly name: "transfer"; readonly inputs: readonly [{ readonly name: "_to"; readonly type: "address"; }, { readonly name: "_value"; readonly type: "uint256"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "bool"; }]; }, { readonly stateMutability: "nonpayable"; readonly type: "function"; readonly name: "increaseAllowance"; readonly inputs: readonly [{ readonly name: "_spender"; readonly type: "address"; }, { readonly name: "_added_value"; readonly type: "uint256"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "bool"; }]; }, { readonly stateMutability: "nonpayable"; readonly type: "function"; readonly name: "decreaseAllowance"; readonly inputs: readonly [{ readonly name: "_spender"; readonly type: "address"; }, { readonly name: "_subtracted_value"; readonly type: "uint256"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "bool"; }]; }, { readonly stateMutability: "nonpayable"; readonly type: "function"; readonly name: "user_checkpoint"; readonly inputs: readonly [{ readonly name: "addr"; readonly type: "address"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "bool"; }]; }, { readonly stateMutability: "nonpayable"; readonly type: "function"; readonly name: "claimable_tokens"; readonly inputs: readonly [{ readonly name: "addr"; readonly type: "address"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; }, { readonly stateMutability: "view"; readonly type: "function"; readonly name: "claimed_reward"; readonly inputs: readonly [{ readonly name: "_addr"; readonly type: "address"; }, { readonly name: "_token"; readonly type: "address"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; }, { readonly stateMutability: "view"; readonly type: "function"; readonly name: "claimable_reward"; readonly inputs: readonly [{ readonly name: "_user"; readonly type: "address"; }, { readonly name: "_reward_token"; readonly type: "address"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; }, { readonly stateMutability: "nonpayable"; readonly type: "function"; readonly name: "set_rewards_receiver"; readonly inputs: readonly [{ readonly name: "_receiver"; readonly type: "address"; }]; readonly outputs: readonly []; }, { readonly stateMutability: "nonpayable"; readonly type: "function"; readonly name: "claim_rewards"; readonly inputs: readonly []; readonly outputs: readonly []; }, { readonly stateMutability: "nonpayable"; readonly type: "function"; readonly name: "claim_rewards"; readonly inputs: readonly [{ readonly name: "_addr"; readonly type: "address"; }]; readonly outputs: readonly []; }, { readonly stateMutability: "nonpayable"; readonly type: "function"; readonly name: "claim_rewards"; readonly inputs: readonly [{ readonly name: "_addr"; readonly type: "address"; }, { readonly name: "_receiver"; readonly type: "address"; }]; readonly outputs: readonly []; }, { readonly stateMutability: "nonpayable"; readonly type: "function"; readonly name: "add_reward"; readonly inputs: readonly [{ readonly name: "_reward_token"; readonly type: "address"; }, { readonly name: "_distributor"; readonly type: "address"; }]; readonly outputs: readonly []; }, { readonly stateMutability: "nonpayable"; readonly type: "function"; readonly name: "set_reward_distributor"; readonly inputs: readonly [{ readonly name: "_reward_token"; readonly type: "address"; }, { readonly name: "_distributor"; readonly type: "address"; }]; readonly outputs: readonly []; }, { readonly stateMutability: "nonpayable"; readonly type: "function"; readonly name: "deposit_reward_token"; readonly inputs: readonly [{ readonly name: "_reward_token"; readonly type: "address"; }, { readonly name: "_amount"; readonly type: "uint256"; }]; readonly outputs: readonly []; }, { readonly stateMutability: "nonpayable"; readonly type: "function"; readonly name: "set_manager"; readonly inputs: readonly [{ readonly name: "_manager"; readonly type: "address"; }]; readonly outputs: readonly []; }, { readonly stateMutability: "nonpayable"; readonly type: "function"; readonly name: "update_voting_escrow"; readonly inputs: readonly []; readonly outputs: readonly []; }, { readonly stateMutability: "nonpayable"; readonly type: "function"; readonly name: "set_killed"; readonly inputs: readonly [{ readonly name: "_is_killed"; readonly type: "bool"; }]; readonly outputs: readonly []; }, { readonly stateMutability: "view"; readonly type: "function"; readonly name: "decimals"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; }, { readonly stateMutability: "view"; readonly type: "function"; readonly name: "integrate_checkpoint"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; }, { readonly stateMutability: "view"; readonly type: "function"; readonly name: "version"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "string"; }]; }, { readonly stateMutability: "view"; readonly type: "function"; readonly name: "factory"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; }]; }, { readonly stateMutability: "nonpayable"; readonly type: "function"; readonly name: "initialize"; readonly inputs: readonly [{ readonly name: "_lp_token"; readonly type: "address"; }, { readonly name: "_manager"; readonly type: "address"; }]; readonly outputs: readonly []; }, { readonly stateMutability: "view"; readonly type: "function"; readonly name: "DOMAIN_SEPARATOR"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "bytes32"; }]; }, { readonly stateMutability: "view"; readonly type: "function"; readonly name: "nonces"; readonly inputs: readonly [{ readonly name: "arg0"; readonly type: "address"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; }, { readonly stateMutability: "view"; readonly type: "function"; readonly name: "name"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "string"; }]; }, { readonly stateMutability: "view"; readonly type: "function"; readonly name: "symbol"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "string"; }]; }, { readonly stateMutability: "view"; readonly type: "function"; readonly name: "allowance"; readonly inputs: readonly [{ readonly name: "arg0"; readonly type: "address"; }, { readonly name: "arg1"; readonly type: "address"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; }, { readonly stateMutability: "view"; readonly type: "function"; readonly name: "balanceOf"; readonly inputs: readonly [{ readonly name: "arg0"; readonly type: "address"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; }, { readonly stateMutability: "view"; readonly type: "function"; readonly name: "totalSupply"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; }, { readonly stateMutability: "view"; readonly type: "function"; readonly name: "lp_token"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; }]; }, { readonly stateMutability: "view"; readonly type: "function"; readonly name: "manager"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; }]; }, { readonly stateMutability: "view"; readonly type: "function"; readonly name: "voting_escrow"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; }]; }, { readonly stateMutability: "view"; readonly type: "function"; readonly name: "working_balances"; readonly inputs: readonly [{ readonly name: "arg0"; readonly type: "address"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; }, { readonly stateMutability: "view"; readonly type: "function"; readonly name: "working_supply"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; }, { readonly stateMutability: "view"; readonly type: "function"; readonly name: "period"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; }, { readonly stateMutability: "view"; readonly type: "function"; readonly name: "period_timestamp"; readonly inputs: readonly [{ readonly name: "arg0"; readonly type: "uint256"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; }, { readonly stateMutability: "view"; readonly type: "function"; readonly name: "integrate_checkpoint_of"; readonly inputs: readonly [{ readonly name: "arg0"; readonly type: "address"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; }, { readonly stateMutability: "view"; readonly type: "function"; readonly name: "integrate_fraction"; readonly inputs: readonly [{ readonly name: "arg0"; readonly type: "address"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; }, { readonly stateMutability: "view"; readonly type: "function"; readonly name: "integrate_inv_supply"; readonly inputs: readonly [{ readonly name: "arg0"; readonly type: "uint256"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; }, { readonly stateMutability: "view"; readonly type: "function"; readonly name: "integrate_inv_supply_of"; readonly inputs: readonly [{ readonly name: "arg0"; readonly type: "address"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; }, { readonly stateMutability: "view"; readonly type: "function"; readonly name: "reward_count"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; }, { readonly stateMutability: "view"; readonly type: "function"; readonly name: "reward_tokens"; readonly inputs: readonly [{ readonly name: "arg0"; readonly type: "uint256"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; }]; }, { readonly stateMutability: "view"; readonly type: "function"; readonly name: "reward_data"; readonly inputs: readonly [{ readonly name: "arg0"; readonly type: "address"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "tuple"; readonly components: readonly [{ readonly name: "distributor"; readonly type: "address"; }, { readonly name: "period_finish"; readonly type: "uint256"; }, { readonly name: "rate"; readonly type: "uint256"; }, { readonly name: "last_update"; readonly type: "uint256"; }, { readonly name: "integral"; readonly type: "uint256"; }]; }]; }, { readonly stateMutability: "view"; readonly type: "function"; readonly name: "rewards_receiver"; readonly inputs: readonly [{ readonly name: "arg0"; readonly type: "address"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; }]; }, { readonly stateMutability: "view"; readonly type: "function"; readonly name: "reward_integral_for"; readonly inputs: readonly [{ readonly name: "arg0"; readonly type: "address"; }, { readonly name: "arg1"; readonly type: "address"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; }, { readonly stateMutability: "view"; readonly type: "function"; readonly name: "is_killed"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "bool"; }]; }, { readonly stateMutability: "view"; readonly type: "function"; readonly name: "inflation_rate"; readonly inputs: readonly [{ readonly name: "arg0"; readonly type: "uint256"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; }]; }]; declare const uniswapPermit2Address: "0x000000000022D473030F116dDEE9F6B43aC78BA3"; declare const uniswapPermit2Abi: readonly [{ readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }]; readonly name: "AllowanceExpired"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "ExcessiveInvalidation"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "InsufficientAllowance"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "maxAmount"; readonly type: "uint256"; }]; readonly name: "InvalidAmount"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "InvalidContractSignature"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "InvalidNonce"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "InvalidSignature"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "InvalidSignatureLength"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "InvalidSigner"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LengthMismatch"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "signatureDeadline"; readonly type: "uint256"; }]; readonly name: "SignatureExpired"; readonly type: "error"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "owner"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "token"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "spender"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint160"; readonly name: "amount"; readonly type: "uint160"; }, { readonly indexed: false; readonly internalType: "uint48"; readonly name: "expiration"; readonly type: "uint48"; }]; readonly name: "Approval"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "owner"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "token"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "spender"; readonly type: "address"; }]; readonly name: "Lockdown"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "owner"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "token"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "spender"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint48"; readonly name: "newNonce"; readonly type: "uint48"; }, { readonly indexed: false; readonly internalType: "uint48"; readonly name: "oldNonce"; readonly type: "uint48"; }]; readonly name: "NonceInvalidation"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "owner"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "token"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "spender"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint160"; readonly name: "amount"; readonly type: "uint160"; }, { readonly indexed: false; readonly internalType: "uint48"; readonly name: "expiration"; readonly type: "uint48"; }, { readonly indexed: false; readonly internalType: "uint48"; readonly name: "nonce"; readonly type: "uint48"; }]; readonly name: "Permit"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "owner"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "word"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "mask"; readonly type: "uint256"; }]; readonly name: "UnorderedNonceInvalidation"; readonly type: "event"; }, { readonly inputs: readonly []; readonly name: "DOMAIN_SEPARATOR"; readonly outputs: readonly [{ readonly internalType: "bytes32"; readonly name: ""; readonly type: "bytes32"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }, { readonly internalType: "address"; readonly name: ""; readonly type: "address"; }, { readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly name: "allowance"; readonly outputs: readonly [{ readonly internalType: "uint160"; readonly name: "amount"; readonly type: "uint160"; }, { readonly internalType: "uint48"; readonly name: "expiration"; readonly type: "uint48"; }, { readonly internalType: "uint48"; readonly name: "nonce"; readonly type: "uint48"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "token"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "spender"; readonly type: "address"; }, { readonly internalType: "uint160"; readonly name: "amount"; readonly type: "uint160"; }, { readonly internalType: "uint48"; readonly name: "expiration"; readonly type: "uint48"; }]; readonly name: "approve"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "token"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "spender"; readonly type: "address"; }, { readonly internalType: "uint48"; readonly name: "newNonce"; readonly type: "uint48"; }]; readonly name: "invalidateNonces"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "wordPos"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "mask"; readonly type: "uint256"; }]; readonly name: "invalidateUnorderedNonces"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly components: readonly [{ readonly internalType: "address"; readonly name: "token"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "spender"; readonly type: "address"; }]; readonly internalType: "struct IAllowanceTransfer.TokenSpenderPair[]"; readonly name: "approvals"; readonly type: "tuple[]"; }]; readonly name: "lockdown"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly name: "nonceBitmap"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "owner"; readonly type: "address"; }, { readonly components: readonly [{ readonly components: readonly [{ readonly internalType: "address"; readonly name: "token"; readonly type: "address"; }, { readonly internalType: "uint160"; readonly name: "amount"; readonly type: "uint160"; }, { readonly internalType: "uint48"; readonly name: "expiration"; readonly type: "uint48"; }, { readonly internalType: "uint48"; readonly name: "nonce"; readonly type: "uint48"; }]; readonly internalType: "struct IAllowanceTransfer.PermitDetails[]"; readonly name: "details"; readonly type: "tuple[]"; }, { readonly internalType: "address"; readonly name: "spender"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "sigDeadline"; readonly type: "uint256"; }]; readonly internalType: "struct IAllowanceTransfer.PermitBatch"; readonly name: "permitBatch"; readonly type: "tuple"; }, { readonly internalType: "bytes"; readonly name: "signature"; readonly type: "bytes"; }]; readonly name: "permit"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "owner"; readonly type: "address"; }, { readonly components: readonly [{ readonly components: readonly [{ readonly internalType: "address"; readonly name: "token"; readonly type: "address"; }, { readonly internalType: "uint160"; readonly name: "amount"; readonly type: "uint160"; }, { readonly internalType: "uint48"; readonly name: "expiration"; readonly type: "uint48"; }, { readonly internalType: "uint48"; readonly name: "nonce"; readonly type: "uint48"; }]; readonly internalType: "struct IAllowanceTransfer.PermitDetails"; readonly name: "details"; readonly type: "tuple"; }, { readonly internalType: "address"; readonly name: "spender"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "sigDeadline"; readonly type: "uint256"; }]; readonly internalType: "struct IAllowanceTransfer.PermitSingle"; readonly name: "permitSingle"; readonly type: "tuple"; }, { readonly internalType: "bytes"; readonly name: "signature"; readonly type: "bytes"; }]; readonly name: "permit"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly components: readonly [{ readonly components: readonly [{ readonly internalType: "address"; readonly name: "token"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly internalType: "struct ISignatureTransfer.TokenPermissions"; readonly name: "permitted"; readonly type: "tuple"; }, { readonly internalType: "uint256"; readonly name: "nonce"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }]; readonly internalType: "struct ISignatureTransfer.PermitTransferFrom"; readonly name: "permit"; readonly type: "tuple"; }, { readonly components: readonly [{ readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "requestedAmount"; readonly type: "uint256"; }]; readonly internalType: "struct ISignatureTransfer.SignatureTransferDetails"; readonly name: "transferDetails"; readonly type: "tuple"; }, { readonly internalType: "address"; readonly name: "owner"; readonly type: "address"; }, { readonly internalType: "bytes"; readonly name: "signature"; readonly type: "bytes"; }]; readonly name: "permitTransferFrom"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly components: readonly [{ readonly components: readonly [{ readonly internalType: "address"; readonly name: "token"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly internalType: "struct ISignatureTransfer.TokenPermissions[]"; readonly name: "permitted"; readonly type: "tuple[]"; }, { readonly internalType: "uint256"; readonly name: "nonce"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }]; readonly internalType: "struct ISignatureTransfer.PermitBatchTransferFrom"; readonly name: "permit"; readonly type: "tuple"; }, { readonly components: readonly [{ readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "requestedAmount"; readonly type: "uint256"; }]; readonly internalType: "struct ISignatureTransfer.SignatureTransferDetails[]"; readonly name: "transferDetails"; readonly type: "tuple[]"; }, { readonly internalType: "address"; readonly name: "owner"; readonly type: "address"; }, { readonly internalType: "bytes"; readonly name: "signature"; readonly type: "bytes"; }]; readonly name: "permitTransferFrom"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly components: readonly [{ readonly components: readonly [{ readonly internalType: "address"; readonly name: "token"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly internalType: "struct ISignatureTransfer.TokenPermissions"; readonly name: "permitted"; readonly type: "tuple"; }, { readonly internalType: "uint256"; readonly name: "nonce"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }]; readonly internalType: "struct ISignatureTransfer.PermitTransferFrom"; readonly name: "permit"; readonly type: "tuple"; }, { readonly components: readonly [{ readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "requestedAmount"; readonly type: "uint256"; }]; readonly internalType: "struct ISignatureTransfer.SignatureTransferDetails"; readonly name: "transferDetails"; readonly type: "tuple"; }, { readonly internalType: "address"; readonly name: "owner"; readonly type: "address"; }, { readonly internalType: "bytes32"; readonly name: "witness"; readonly type: "bytes32"; }, { readonly internalType: "string"; readonly name: "witnessTypeString"; readonly type: "string"; }, { readonly internalType: "bytes"; readonly name: "signature"; readonly type: "bytes"; }]; readonly name: "permitWitnessTransferFrom"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly components: readonly [{ readonly components: readonly [{ readonly internalType: "address"; readonly name: "token"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly internalType: "struct ISignatureTransfer.TokenPermissions[]"; readonly name: "permitted"; readonly type: "tuple[]"; }, { readonly internalType: "uint256"; readonly name: "nonce"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }]; readonly internalType: "struct ISignatureTransfer.PermitBatchTransferFrom"; readonly name: "permit"; readonly type: "tuple"; }, { readonly components: readonly [{ readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "requestedAmount"; readonly type: "uint256"; }]; readonly internalType: "struct ISignatureTransfer.SignatureTransferDetails[]"; readonly name: "transferDetails"; readonly type: "tuple[]"; }, { readonly internalType: "address"; readonly name: "owner"; readonly type: "address"; }, { readonly internalType: "bytes32"; readonly name: "witness"; readonly type: "bytes32"; }, { readonly internalType: "string"; readonly name: "witnessTypeString"; readonly type: "string"; }, { readonly internalType: "bytes"; readonly name: "signature"; readonly type: "bytes"; }]; readonly name: "permitWitnessTransferFrom"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly components: readonly [{ readonly internalType: "address"; readonly name: "from"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint160"; readonly name: "amount"; readonly type: "uint160"; }, { readonly internalType: "address"; readonly name: "token"; readonly type: "address"; }]; readonly internalType: "struct IAllowanceTransfer.AllowanceTransferDetails[]"; readonly name: "transferDetails"; readonly type: "tuple[]"; }]; readonly name: "transferFrom"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "from"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint160"; readonly name: "amount"; readonly type: "uint160"; }, { readonly internalType: "address"; readonly name: "token"; readonly type: "address"; }]; readonly name: "transferFrom"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }]; export { Amount, BaseCurrency, BaseCurrencyParams, CURVE_POOL_GAUGE_ABI, Currency, Ether, GNOSIS_CHAIN_SDAI_ADAPTER_ABI, GNOSIS_CHAIN_SDAI_ADAPTER_ADDRESS, GnosisChainPublicClient, NATIVE_TOKEN_ADDRESS, NativeCurrency, SDAI_RATE_PROVIDER, SDAI_RATE_PROVIDER_ABI, SerializableCurrencyAmountType, SerializableCurrencyAmountTypeSchema, SerializableErc20TokenType, SerializableErc20TokenTypeSchema, Token, TokenOrCurrency, commonTokens, createCowSellTrade, ensureTokenApproval, getSdaiRate, getTokenPrice, nativeCurrencyToSerializableErc20TokenType, uniswapPermit2Abi, uniswapPermit2Address, xDAI };