@swapkit/core 1.0.0-rc.119 → 1.0.0-rc.120
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{index.es.js → index.js} +1072 -963
- package/dist/index.js.map +41 -0
- package/package.json +27 -36
- package/src/__tests__/helpers.test.ts +2 -26
- package/src/client/index.ts +21 -26
- package/src/client/old.ts +64 -76
- package/src/helpers/explorerUrls.ts +6 -31
- package/src/types.ts +2 -2
- package/LICENSE +0 -201
- package/dist/index.cjs +0 -2
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.ts +0 -353
- package/dist/index.es.js.map +0 -1
- package/src/helpers/mayanode.ts +0 -31
- package/src/helpers/thornode.ts +0 -31
package/dist/index.es.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":["../src/helpers/explorerUrls.ts","../src/client/index.ts","../src/aggregator/contracts/avaxGeneric.ts","../src/aggregator/contracts/avaxWoofi.ts","../src/aggregator/contracts/bscGeneric.ts","../src/aggregator/contracts/ethGeneric.ts","../src/aggregator/contracts/pancakeV2.ts","../src/aggregator/contracts/pangolin.ts","../src/aggregator/contracts/routers/kyber.ts","../src/aggregator/contracts/routers/oneinch.ts","../src/aggregator/contracts/routers/pancakeswap.ts","../src/aggregator/contracts/routers/pangolin.ts","../src/aggregator/contracts/routers/sushiswap.ts","../src/aggregator/contracts/routers/traderJoe.ts","../src/aggregator/contracts/routers/uniswapv2.ts","../src/aggregator/contracts/routers/uniswapv3.ts","../src/aggregator/contracts/routers/woofi.ts","../src/aggregator/contracts/routers/index.ts","../src/aggregator/contracts/sushiswap.ts","../src/aggregator/contracts/traderJoe.ts","../src/aggregator/contracts/uniswapV2.ts","../src/aggregator/contracts/uniswapV2Leg.ts","../src/aggregator/contracts/uniswapV3_100.ts","../src/aggregator/contracts/uniswapV3_500.ts","../src/aggregator/contracts/uniswapV3_3000.ts","../src/aggregator/contracts/uniswapV3_10000.ts","../src/aggregator/contracts/index.ts","../src/aggregator/getSwapParams.ts","../src/helpers/mayanode.ts","../src/helpers/thornode.ts","../src/client/old.ts"],"sourcesContent":["import { Chain, ChainToExplorerUrl } from \"@swapkit/types\";\n\nexport const getExplorerTxUrl = ({ chain, txHash }: { txHash: string; chain: Chain }) => {\n const baseUrl = ChainToExplorerUrl[chain];\n\n switch (chain) {\n case Chain.Binance:\n case Chain.Maya:\n case Chain.Kujira:\n case Chain.THORChain:\n return `${baseUrl}/tx/${txHash.startsWith(\"0x\") ? txHash.slice(2) : txHash}`;\n\n case Chain.Arbitrum:\n case Chain.Avalanche:\n case Chain.BinanceSmartChain:\n case Chain.Ethereum:\n case Chain.Optimism:\n case Chain.Polkadot:\n case Chain.Polygon:\n return `${baseUrl}/tx/${txHash.startsWith(\"0x\") ? txHash : `0x${txHash}`}`;\n\n case Chain.Cosmos:\n return `${baseUrl}/transactions/${txHash}`;\n\n case Chain.Litecoin:\n case Chain.Bitcoin:\n case Chain.BitcoinCash:\n case Chain.Dogecoin:\n return `${baseUrl}/transaction/${txHash.toLowerCase()}`;\n\n default:\n throw new Error(`Unsupported chain: ${chain}`);\n }\n};\n\nexport const getExplorerAddressUrl = ({ chain, address }: { address: string; chain: Chain }) => {\n const baseUrl = ChainToExplorerUrl[chain];\n\n switch (chain) {\n case Chain.Arbitrum:\n case Chain.Avalanche:\n case Chain.Binance:\n case Chain.BinanceSmartChain:\n case Chain.Bitcoin:\n case Chain.BitcoinCash:\n case Chain.Dogecoin:\n case Chain.Ethereum:\n case Chain.Kujira:\n case Chain.Litecoin:\n case Chain.Maya:\n case Chain.Optimism:\n case Chain.Polkadot:\n case Chain.Polygon:\n case Chain.THORChain:\n return `${baseUrl}/address/${address}`;\n\n case Chain.Cosmos:\n return `${baseUrl}/account/${address}`;\n\n default:\n throw new Error(`Unsupported chain: ${chain}`);\n }\n};\n","import { AssetValue, SwapKitError } from \"@swapkit/helpers\";\nimport { Chain } from \"@swapkit/types\";\nimport {\n getExplorerAddressUrl as getAddressUrl,\n getExplorerTxUrl as getTxUrl,\n} from \"../helpers/explorerUrls.ts\";\nimport type {\n ChainWallet,\n ConnectWalletParamsLocal as ConnectWalletParams,\n SwapWithRouteParams,\n} from \"../types.ts\";\n\nexport type PluginName = \"thorchain\" | \"chainflip\" | \"mayachain\";\n\nexport enum ApproveMode {\n Approve = \"approve\",\n CheckOnly = \"checkOnly\",\n}\n\nexport type ApproveReturnType<T extends ApproveMode> = T extends \"checkOnly\"\n ? Promise<boolean>\n : Promise<string>;\n\ntype SwapKitPlugins = {\n [K in PluginName]?: ProviderMethods;\n};\n\ntype GenericSwapParams = {\n buyAsset: AssetValue;\n sellAsset: AssetValue;\n recipient: string;\n};\n\nexport type SwapParams = (SwapWithRouteParams | GenericSwapParams) & {\n provider?: {\n name: PluginName;\n config: Record<string, any>;\n };\n};\n\nexport type SwapKitReturnType = SwapKitPlugins & {\n getAddress: (chain: Chain) => string;\n getWallet: (chain: Chain) => ChainWallet<Chain> | undefined;\n getWalletWithBalance: (\n chain: Chain,\n potentialScamFilter?: boolean,\n ) => Promise<ChainWallet<Chain>>;\n getBalance: (chain: Chain, potentialScamFilter?: boolean) => AssetValue[];\n getExplorerTxUrl: (chain: Chain, txHash: string) => string;\n getExplorerAddressUrl: (chain: Chain, address: string) => string;\n swap: (params: SwapParams) => Promise<string>;\n validateAddress: (params: { address: string; chain: Chain }) =>\n | boolean\n | Promise<boolean>\n | undefined;\n approveAssetValue: (assetValue: AssetValue, contractAddress: string) => boolean | Promise<string>;\n isAssetValueApproved: (\n assetValue: AssetValue,\n contractAddress: string,\n ) => boolean | Promise<boolean>;\n};\n\nexport type Wallets = { [K in Chain]?: ChainWallet<K> };\nexport type AvailableProviders<T> = T | { [K in PluginName]?: ProviderMethods };\nexport type ProviderMethods = {\n swap: (swapParams: SwapParams) => Promise<string>;\n [key: string]: any;\n};\n\nexport type SwapKitPlugin = ({ wallets, stagenet }: { wallets: Wallets; stagenet?: boolean }) => {\n name: PluginName;\n methods: ProviderMethods;\n};\n\nexport type SwapKitWallet = {\n connectMethodName: string;\n connect: (params: ConnectWalletParams) => (connectParams: any) => undefined | string;\n};\n\nexport function SwapKit<\n ExtendedProviders extends {},\n ConnectWalletMethods extends Record<string, ReturnType<SwapKitWallet[\"connect\"]>>,\n>({\n stagenet,\n wallets,\n plugins,\n config = {},\n apis,\n rpcUrls,\n}: {\n plugins: SwapKitPlugin[];\n stagenet: boolean;\n wallets: SwapKitWallet[];\n config?: Record<string, any>;\n apis: Record<string, any>;\n rpcUrls: Record<string, any>;\n}): SwapKitReturnType & ConnectWalletMethods & AvailableProviders<ExtendedProviders> {\n const connectedWallets: Wallets = {};\n const availablePlugins: AvailableProviders<ExtendedProviders> = {};\n\n for (const plugin of plugins) {\n const { name, methods } = plugin({ wallets: connectedWallets, stagenet });\n\n availablePlugins[name] = methods;\n }\n\n const connectWalletMethods = wallets.reduce((acc, wallet) => {\n (acc[wallet.connectMethodName] as ReturnType<SwapKitWallet[\"connect\"]>) = wallet.connect({\n addChain,\n config,\n apis,\n rpcUrls,\n });\n\n return acc;\n }, {} as ConnectWalletMethods);\n\n /**\n * @Private\n * Internal helpers\n */\n function getSwapKitPlugin(pluginName?: PluginName) {\n const plugin =\n (availablePlugins as SwapKitPlugins)[pluginName as PluginName] ||\n Object.values(availablePlugins)[0];\n\n if (!plugin) {\n throw new SwapKitError(\"core_plugin_not_found\", \"Could not find the requested plugin\");\n }\n\n return plugin;\n }\n\n function addChain(connectWallet: ChainWallet<Chain>) {\n (connectedWallets[connectWallet.chain as Chain] as ChainWallet<Chain>) = connectWallet;\n }\n\n /**\n * @Private\n * Wallet interaction helpers\n */\n function approve<T extends ApproveMode>({\n assetValue,\n type = \"checkOnly\" as T,\n contractAddress,\n }: {\n type: T;\n assetValue: AssetValue;\n contractAddress: string;\n }): ApproveReturnType<T> {\n const { address, chain, isGasAsset, isSynthetic } = assetValue;\n const isEVMChain = [Chain.Ethereum, Chain.Avalanche, Chain.BinanceSmartChain].includes(chain);\n const isNativeEVM = isEVMChain && isGasAsset;\n\n if (isNativeEVM || !isEVMChain || isSynthetic) {\n return Promise.resolve(type === \"checkOnly\" ? true : \"approved\") as ApproveReturnType<T>;\n }\n\n const walletMethods =\n connectedWallets[chain as Chain.Ethereum | Chain.BinanceSmartChain | Chain.Avalanche];\n\n const walletAction = type === \"checkOnly\" ? walletMethods?.isApproved : walletMethods?.approve;\n\n if (!walletAction) throw new SwapKitError(\"core_wallet_connection_not_found\");\n\n const from = getAddress(chain);\n\n if (!(address && from)) throw new SwapKitError(\"core_approve_asset_address_or_from_not_found\");\n\n const spenderAddress = contractAddress;\n\n return walletAction({\n amount: assetValue.getBaseValue(\"bigint\"),\n assetAddress: address,\n from,\n spenderAddress,\n }) as ApproveReturnType<T>;\n }\n\n /**\n * @Public\n * Wallet helpers\n */\n function getWallet(chain: Chain) {\n return connectedWallets[chain];\n }\n function getAddress(chain: Chain) {\n return getWallet(chain)?.address || \"\";\n }\n function getBalance(chain: Chain) {\n return getWallet(chain)?.balance || [];\n }\n function getExplorerTxUrl(chain: Chain, txHash: string) {\n return getTxUrl({ chain, txHash });\n }\n function getExplorerAddressUrl(chain: Chain, address: string) {\n return getAddressUrl({ chain, address });\n }\n /**\n * TODO: Figure out validation without connecting to wallet\n */\n function validateAddress({ address, chain }: { address: string; chain: Chain }) {\n return getWallet(chain)?.validateAddress?.(address);\n }\n\n async function getWalletWithBalance(chain: Chain, potentialScamFilter?: boolean) {\n const defaultBalance = [AssetValue.fromChainOrSignature(chain)];\n const wallet = getWallet(chain);\n\n try {\n if (!wallet) throw new SwapKitError(\"core_wallet_connection_not_found\");\n const balance = await wallet?.getBalance(wallet.address, potentialScamFilter);\n\n wallet.balance = balance?.length ? balance : defaultBalance;\n\n return wallet;\n } catch (error) {\n throw new SwapKitError(\"core_wallet_connection_not_found\", error);\n }\n }\n\n /**\n * @Public\n * Wallet interaction methods\n */\n function approveAssetValue(assetValue: AssetValue, contractAddress: string) {\n return approve({ assetValue, contractAddress, type: ApproveMode.Approve });\n }\n\n function isAssetValueApproved(assetValue: AssetValue, contractAddress: string) {\n return approve({ assetValue, contractAddress, type: ApproveMode.CheckOnly });\n }\n\n function swap({ provider, ...rest }: SwapParams) {\n const plugin = getSwapKitPlugin(provider?.name);\n\n return plugin.swap({ provider, ...rest });\n }\n\n return {\n ...availablePlugins,\n ...connectWalletMethods,\n approveAssetValue,\n getAddress,\n getBalance,\n getExplorerAddressUrl,\n getExplorerTxUrl,\n getWallet,\n getWalletWithBalance,\n isAssetValueApproved,\n swap,\n validateAddress,\n };\n}\n","export const avaxGeneric = [\n {\n inputs: [{ internalType: \"address\", name: \"_ttp\", type: \"address\" }],\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n anonymous: false,\n inputs: [\n { indexed: false, internalType: \"uint256\", name: \"fee\", type: \"uint256\" },\n { indexed: false, internalType: \"address\", name: \"feeRecipient\", type: \"address\" },\n ],\n name: \"FeeSet\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, internalType: \"address\", name: \"owner\", type: \"address\" },\n { indexed: false, internalType: \"bool\", name: \"active\", type: \"bool\" },\n ],\n name: \"OwnerSet\",\n type: \"event\",\n },\n {\n inputs: [],\n name: \"fee\",\n outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"feeRecipient\",\n outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n name: \"owners\",\n outputs: [{ internalType: \"bool\", name: \"\", type: \"bool\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"_fee\", type: \"uint256\" },\n { internalType: \"address\", name: \"_feeRecipient\", type: \"address\" },\n ],\n name: \"setFee\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"owner\", type: \"address\" },\n { internalType: \"bool\", name: \"active\", type: \"bool\" },\n ],\n name: \"setOwner\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"tcRouter\", type: \"address\" },\n { internalType: \"address\", name: \"tcVault\", type: \"address\" },\n { internalType: \"string\", name: \"tcMemo\", type: \"string\" },\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { internalType: \"address\", name: \"router\", type: \"address\" },\n { internalType: \"bytes\", name: \"data\", type: \"bytes\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapIn\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"tokenTransferProxy\",\n outputs: [\n { internalType: \"contract TSAggregatorTokenTransferProxy\", name: \"\", type: \"address\" },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n { stateMutability: \"payable\", type: \"receive\" },\n];\n","export const avaxWoofi = [\n {\n inputs: [\n { internalType: \"address\", name: \"_ttp\", type: \"address\" },\n { internalType: \"address\", name: \"_weth\", type: \"address\" },\n { internalType: \"address\", name: \"_swapRouter\", type: \"address\" },\n ],\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n anonymous: false,\n inputs: [\n { indexed: false, internalType: \"uint256\", name: \"fee\", type: \"uint256\" },\n { indexed: false, internalType: \"address\", name: \"feeRecipient\", type: \"address\" },\n ],\n name: \"FeeSet\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, internalType: \"address\", name: \"owner\", type: \"address\" },\n { indexed: false, internalType: \"bool\", name: \"active\", type: \"bool\" },\n ],\n name: \"OwnerSet\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n { indexed: false, internalType: \"address\", name: \"from\", type: \"address\" },\n { indexed: false, internalType: \"address\", name: \"token\", type: \"address\" },\n { indexed: false, internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { indexed: false, internalType: \"uint256\", name: \"out\", type: \"uint256\" },\n { indexed: false, internalType: \"uint256\", name: \"fee\", type: \"uint256\" },\n { indexed: false, internalType: \"address\", name: \"vault\", type: \"address\" },\n { indexed: false, internalType: \"string\", name: \"memo\", type: \"string\" },\n ],\n name: \"SwapIn\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n { indexed: false, internalType: \"address\", name: \"to\", type: \"address\" },\n { indexed: false, internalType: \"address\", name: \"token\", type: \"address\" },\n { indexed: false, internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { indexed: false, internalType: \"uint256\", name: \"fee\", type: \"uint256\" },\n ],\n name: \"SwapOut\",\n type: \"event\",\n },\n {\n inputs: [],\n name: \"fee\",\n outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"feeRecipient\",\n outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n name: \"owners\",\n outputs: [{ internalType: \"bool\", name: \"\", type: \"bool\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"_fee\", type: \"uint256\" },\n { internalType: \"address\", name: \"_feeRecipient\", type: \"address\" },\n ],\n name: \"setFee\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"owner\", type: \"address\" },\n { internalType: \"bool\", name: \"active\", type: \"bool\" },\n ],\n name: \"setOwner\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"router\", type: \"address\" },\n { internalType: \"address\", name: \"vault\", type: \"address\" },\n { internalType: \"string\", name: \"memo\", type: \"string\" },\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapIn\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n ],\n name: \"swapOut\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"swapRouter\",\n outputs: [{ internalType: \"contract IWoofi\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"tokenTransferProxy\",\n outputs: [\n { internalType: \"contract TSAggregatorTokenTransferProxy\", name: \"\", type: \"address\" },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"weth\",\n outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n { stateMutability: \"payable\", type: \"receive\" },\n];\n","export const bscGeneric = [\n {\n inputs: [{ internalType: \"address\", name: \"_ttp\", type: \"address\" }],\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n anonymous: false,\n inputs: [\n { indexed: false, internalType: \"uint256\", name: \"fee\", type: \"uint256\" },\n { indexed: false, internalType: \"address\", name: \"feeRecipient\", type: \"address\" },\n ],\n name: \"FeeSet\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, internalType: \"address\", name: \"owner\", type: \"address\" },\n { indexed: false, internalType: \"bool\", name: \"active\", type: \"bool\" },\n ],\n name: \"OwnerSet\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n { indexed: false, internalType: \"address\", name: \"from\", type: \"address\" },\n { indexed: false, internalType: \"address\", name: \"token\", type: \"address\" },\n { indexed: false, internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { indexed: false, internalType: \"uint256\", name: \"out\", type: \"uint256\" },\n { indexed: false, internalType: \"uint256\", name: \"fee\", type: \"uint256\" },\n { indexed: false, internalType: \"address\", name: \"vault\", type: \"address\" },\n { indexed: false, internalType: \"string\", name: \"memo\", type: \"string\" },\n ],\n name: \"SwapIn\",\n type: \"event\",\n },\n {\n inputs: [],\n name: \"fee\",\n outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"feeRecipient\",\n outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n name: \"owners\",\n outputs: [{ internalType: \"bool\", name: \"\", type: \"bool\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"_fee\", type: \"uint256\" },\n { internalType: \"address\", name: \"_feeRecipient\", type: \"address\" },\n ],\n name: \"setFee\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"owner\", type: \"address\" },\n { internalType: \"bool\", name: \"active\", type: \"bool\" },\n ],\n name: \"setOwner\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"router\", type: \"address\" },\n { internalType: \"address\", name: \"vault\", type: \"address\" },\n { internalType: \"string\", name: \"memo\", type: \"string\" },\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { internalType: \"address\", name: \"swapRouter\", type: \"address\" },\n { internalType: \"bytes\", name: \"data\", type: \"bytes\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapIn\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"tokenTransferProxy\",\n outputs: [\n { internalType: \"contract TSAggregatorTokenTransferProxy\", name: \"\", type: \"address\" },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n { stateMutability: \"payable\", type: \"receive\" },\n];\n","export const ethGeneric = [\n {\n inputs: [{ internalType: \"address\", name: \"_ttp\", type: \"address\" }],\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n anonymous: false,\n inputs: [\n { indexed: false, internalType: \"uint256\", name: \"fee\", type: \"uint256\" },\n { indexed: false, internalType: \"address\", name: \"feeRecipient\", type: \"address\" },\n ],\n name: \"FeeSet\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, internalType: \"address\", name: \"owner\", type: \"address\" },\n { indexed: false, internalType: \"bool\", name: \"active\", type: \"bool\" },\n ],\n name: \"OwnerSet\",\n type: \"event\",\n },\n {\n inputs: [],\n name: \"fee\",\n outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"feeRecipient\",\n outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n name: \"owners\",\n outputs: [{ internalType: \"bool\", name: \"\", type: \"bool\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"_fee\", type: \"uint256\" },\n { internalType: \"address\", name: \"_feeRecipient\", type: \"address\" },\n ],\n name: \"setFee\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"owner\", type: \"address\" },\n { internalType: \"bool\", name: \"active\", type: \"bool\" },\n ],\n name: \"setOwner\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"tcRouter\", type: \"address\" },\n { internalType: \"address\", name: \"tcVault\", type: \"address\" },\n { internalType: \"string\", name: \"tcMemo\", type: \"string\" },\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { internalType: \"address\", name: \"router\", type: \"address\" },\n { internalType: \"bytes\", name: \"data\", type: \"bytes\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapIn\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"tokenTransferProxy\",\n outputs: [\n { internalType: \"contract TSAggregatorTokenTransferProxy\", name: \"\", type: \"address\" },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n { stateMutability: \"payable\", type: \"receive\" },\n];\n","export const pancakeV2 = [\n {\n inputs: [\n { internalType: \"address\", name: \"_ttp\", type: \"address\" },\n { internalType: \"address\", name: \"_wbnb\", type: \"address\" },\n { internalType: \"address\", name: \"_swapRouter\", type: \"address\" },\n ],\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n anonymous: false,\n inputs: [\n { indexed: false, internalType: \"uint256\", name: \"fee\", type: \"uint256\" },\n { indexed: false, internalType: \"address\", name: \"feeRecipient\", type: \"address\" },\n ],\n name: \"FeeSet\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, internalType: \"address\", name: \"owner\", type: \"address\" },\n { indexed: false, internalType: \"bool\", name: \"active\", type: \"bool\" },\n ],\n name: \"OwnerSet\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n { indexed: false, internalType: \"address\", name: \"from\", type: \"address\" },\n { indexed: false, internalType: \"address\", name: \"token\", type: \"address\" },\n { indexed: false, internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { indexed: false, internalType: \"uint256\", name: \"out\", type: \"uint256\" },\n { indexed: false, internalType: \"uint256\", name: \"fee\", type: \"uint256\" },\n { indexed: false, internalType: \"address\", name: \"vault\", type: \"address\" },\n { indexed: false, internalType: \"string\", name: \"memo\", type: \"string\" },\n ],\n name: \"SwapIn\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n { indexed: false, internalType: \"address\", name: \"to\", type: \"address\" },\n { indexed: false, internalType: \"address\", name: \"token\", type: \"address\" },\n { indexed: false, internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { indexed: false, internalType: \"uint256\", name: \"fee\", type: \"uint256\" },\n ],\n name: \"SwapOut\",\n type: \"event\",\n },\n {\n inputs: [],\n name: \"fee\",\n outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"feeRecipient\",\n outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n name: \"owners\",\n outputs: [{ internalType: \"bool\", name: \"\", type: \"bool\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"_fee\", type: \"uint256\" },\n { internalType: \"address\", name: \"_feeRecipient\", type: \"address\" },\n ],\n name: \"setFee\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"owner\", type: \"address\" },\n { internalType: \"bool\", name: \"active\", type: \"bool\" },\n ],\n name: \"setOwner\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"router\", type: \"address\" },\n { internalType: \"address\", name: \"vault\", type: \"address\" },\n { internalType: \"string\", name: \"memo\", type: \"string\" },\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapIn\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n ],\n name: \"swapOut\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"swapRouter\",\n outputs: [{ internalType: \"contract IPancakeRouterV2\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"tokenTransferProxy\",\n outputs: [\n { internalType: \"contract TSAggregatorTokenTransferProxy\", name: \"\", type: \"address\" },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"wbnb\",\n outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n { stateMutability: \"payable\", type: \"receive\" },\n];\n","export const pangolin = [\n {\n inputs: [\n { internalType: \"address\", name: \"_ttp\", type: \"address\" },\n { internalType: \"address\", name: \"_weth\", type: \"address\" },\n { internalType: \"address\", name: \"_swapRouter\", type: \"address\" },\n ],\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n anonymous: false,\n inputs: [\n { indexed: false, internalType: \"uint256\", name: \"fee\", type: \"uint256\" },\n { indexed: false, internalType: \"address\", name: \"feeRecipient\", type: \"address\" },\n ],\n name: \"FeeSet\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, internalType: \"address\", name: \"owner\", type: \"address\" },\n { indexed: false, internalType: \"bool\", name: \"active\", type: \"bool\" },\n ],\n name: \"OwnerSet\",\n type: \"event\",\n },\n {\n inputs: [],\n name: \"fee\",\n outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"feeRecipient\",\n outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n name: \"owners\",\n outputs: [{ internalType: \"bool\", name: \"\", type: \"bool\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"_fee\", type: \"uint256\" },\n { internalType: \"address\", name: \"_feeRecipient\", type: \"address\" },\n ],\n name: \"setFee\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"owner\", type: \"address\" },\n { internalType: \"bool\", name: \"active\", type: \"bool\" },\n ],\n name: \"setOwner\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"tcRouter\", type: \"address\" },\n { internalType: \"address\", name: \"tcVault\", type: \"address\" },\n { internalType: \"string\", name: \"tcMemo\", type: \"string\" },\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapIn\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n ],\n name: \"swapOut\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"swapRouter\",\n outputs: [{ internalType: \"contract IUniswapRouterV2AVAX\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"tokenTransferProxy\",\n outputs: [\n { internalType: \"contract TSAggregatorTokenTransferProxy\", name: \"\", type: \"address\" },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"weth\",\n outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n { stateMutability: \"payable\", type: \"receive\" },\n];\n","export const kyberRouter = [\n {\n inputs: [{ internalType: \"address\", name: \"_WETH\", type: \"address\" }],\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"bytes\",\n name: \"clientData\",\n type: \"bytes\",\n },\n ],\n name: \"ClientData\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"string\",\n name: \"reason\",\n type: \"string\",\n },\n ],\n name: \"Error\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"address\",\n name: \"pair\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amountOut\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"output\",\n type: \"address\",\n },\n ],\n name: \"Exchange\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"address\",\n name: \"token\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"totalAmount\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"totalFee\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"address[]\",\n name: \"recipients\",\n type: \"address[]\",\n },\n {\n indexed: false,\n internalType: \"uint256[]\",\n name: \"amounts\",\n type: \"uint256[]\",\n },\n { indexed: false, internalType: \"bool\", name: \"isBps\", type: \"bool\" },\n ],\n name: \"Fee\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"previousOwner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"OwnershipTransferred\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"address\",\n name: \"sender\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"contract IERC20\",\n name: \"srcToken\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"contract IERC20\",\n name: \"dstToken\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"dstReceiver\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"spentAmount\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"returnAmount\",\n type: \"uint256\",\n },\n ],\n name: \"Swapped\",\n type: \"event\",\n },\n {\n inputs: [],\n name: \"WETH\",\n outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n name: \"isWhitelist\",\n outputs: [{ internalType: \"bool\", name: \"\", type: \"bool\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"owner\",\n outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"renounceOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n ],\n name: \"rescueFunds\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n { internalType: \"address\", name: \"callTarget\", type: \"address\" },\n { internalType: \"address\", name: \"approveTarget\", type: \"address\" },\n { internalType: \"bytes\", name: \"targetData\", type: \"bytes\" },\n {\n components: [\n {\n internalType: \"contract IERC20\",\n name: \"srcToken\",\n type: \"address\",\n },\n {\n internalType: \"contract IERC20\",\n name: \"dstToken\",\n type: \"address\",\n },\n {\n internalType: \"address[]\",\n name: \"srcReceivers\",\n type: \"address[]\",\n },\n {\n internalType: \"uint256[]\",\n name: \"srcAmounts\",\n type: \"uint256[]\",\n },\n {\n internalType: \"address[]\",\n name: \"feeReceivers\",\n type: \"address[]\",\n },\n {\n internalType: \"uint256[]\",\n name: \"feeAmounts\",\n type: \"uint256[]\",\n },\n { internalType: \"address\", name: \"dstReceiver\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n {\n internalType: \"uint256\",\n name: \"minReturnAmount\",\n type: \"uint256\",\n },\n { internalType: \"uint256\", name: \"flags\", type: \"uint256\" },\n { internalType: \"bytes\", name: \"permit\", type: \"bytes\" },\n ],\n internalType: \"struct MetaAggregationRouterV2.SwapDescriptionV2\",\n name: \"desc\",\n type: \"tuple\",\n },\n { internalType: \"bytes\", name: \"clientData\", type: \"bytes\" },\n ],\n internalType: \"struct MetaAggregationRouterV2.SwapExecutionParams\",\n name: \"execution\",\n type: \"tuple\",\n },\n ],\n name: \"swap\",\n outputs: [\n { internalType: \"uint256\", name: \"returnAmount\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"gasUsed\", type: \"uint256\" },\n ],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n { internalType: \"address\", name: \"callTarget\", type: \"address\" },\n { internalType: \"address\", name: \"approveTarget\", type: \"address\" },\n { internalType: \"bytes\", name: \"targetData\", type: \"bytes\" },\n {\n components: [\n {\n internalType: \"contract IERC20\",\n name: \"srcToken\",\n type: \"address\",\n },\n {\n internalType: \"contract IERC20\",\n name: \"dstToken\",\n type: \"address\",\n },\n {\n internalType: \"address[]\",\n name: \"srcReceivers\",\n type: \"address[]\",\n },\n {\n internalType: \"uint256[]\",\n name: \"srcAmounts\",\n type: \"uint256[]\",\n },\n {\n internalType: \"address[]\",\n name: \"feeReceivers\",\n type: \"address[]\",\n },\n {\n internalType: \"uint256[]\",\n name: \"feeAmounts\",\n type: \"uint256[]\",\n },\n { internalType: \"address\", name: \"dstReceiver\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n {\n internalType: \"uint256\",\n name: \"minReturnAmount\",\n type: \"uint256\",\n },\n { internalType: \"uint256\", name: \"flags\", type: \"uint256\" },\n { internalType: \"bytes\", name: \"permit\", type: \"bytes\" },\n ],\n internalType: \"struct MetaAggregationRouterV2.SwapDescriptionV2\",\n name: \"desc\",\n type: \"tuple\",\n },\n { internalType: \"bytes\", name: \"clientData\", type: \"bytes\" },\n ],\n internalType: \"struct MetaAggregationRouterV2.SwapExecutionParams\",\n name: \"execution\",\n type: \"tuple\",\n },\n ],\n name: \"swapGeneric\",\n outputs: [\n { internalType: \"uint256\", name: \"returnAmount\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"gasUsed\", type: \"uint256\" },\n ],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IAggregationExecutor\",\n name: \"caller\",\n type: \"address\",\n },\n {\n components: [\n {\n internalType: \"contract IERC20\",\n name: \"srcToken\",\n type: \"address\",\n },\n {\n internalType: \"contract IERC20\",\n name: \"dstToken\",\n type: \"address\",\n },\n {\n internalType: \"address[]\",\n name: \"srcReceivers\",\n type: \"address[]\",\n },\n { internalType: \"uint256[]\", name: \"srcAmounts\", type: \"uint256[]\" },\n {\n internalType: \"address[]\",\n name: \"feeReceivers\",\n type: \"address[]\",\n },\n { internalType: \"uint256[]\", name: \"feeAmounts\", type: \"uint256[]\" },\n { internalType: \"address\", name: \"dstReceiver\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"minReturnAmount\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"flags\", type: \"uint256\" },\n { internalType: \"bytes\", name: \"permit\", type: \"bytes\" },\n ],\n internalType: \"struct MetaAggregationRouterV2.SwapDescriptionV2\",\n name: \"desc\",\n type: \"tuple\",\n },\n { internalType: \"bytes\", name: \"executorData\", type: \"bytes\" },\n { internalType: \"bytes\", name: \"clientData\", type: \"bytes\" },\n ],\n name: \"swapSimpleMode\",\n outputs: [\n { internalType: \"uint256\", name: \"returnAmount\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"gasUsed\", type: \"uint256\" },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"address\", name: \"newOwner\", type: \"address\" }],\n name: \"transferOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address[]\", name: \"addr\", type: \"address[]\" },\n { internalType: \"bool[]\", name: \"value\", type: \"bool[]\" },\n ],\n name: \"updateWhitelist\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n { stateMutability: \"payable\", type: \"receive\" },\n];\n","export const oneInchRouter = [\n {\n inputs: [\n {\n internalType: \"contract IWETH\",\n name: \"weth\",\n type: \"address\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n inputs: [],\n name: \"AccessDenied\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"AdvanceNonceFailed\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"AlreadyFilled\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"ArbitraryStaticCallFailed\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"BadPool\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"BadSignature\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"ETHTransferFailed\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"ETHTransferFailed\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"EmptyPools\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"EthDepositRejected\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"GetAmountCallFailed\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"IncorrectDataLength\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"InsufficientBalance\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"InvalidMsgValue\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"InvalidMsgValue\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"InvalidatedOrder\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"MakingAmountExceeded\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"MakingAmountTooLow\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"OnlyOneAmountShouldBeZero\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"OrderExpired\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"PermitLengthTooLow\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"PredicateIsNotTrue\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"PrivateOrder\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"RFQBadSignature\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"RFQPrivateOrder\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"RFQSwapWithZeroAmount\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"RFQZeroTargetIsForbidden\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"ReentrancyDetected\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"RemainingAmountIsZero\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"ReservesCallFailed\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"ReturnAmountIsNotEnough\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"SafePermitBadLength\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"SafeTransferFailed\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"SafeTransferFromFailed\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"bool\",\n name: \"success\",\n type: \"bool\",\n },\n {\n internalType: \"bytes\",\n name: \"res\",\n type: \"bytes\",\n },\n ],\n name: \"SimulationResults\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"SwapAmountTooLarge\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"SwapWithZeroAmount\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"TakingAmountExceeded\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"TakingAmountIncreased\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"TakingAmountTooHigh\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"TransferFromMakerToTakerFailed\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"TransferFromTakerToMakerFailed\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"UnknownOrder\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"WrongAmount\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"WrongGetter\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"ZeroAddress\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"ZeroMinReturn\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"ZeroReturnAmount\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"ZeroTargetIsForbidden\",\n type: \"error\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"maker\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"newNonce\",\n type: \"uint256\",\n },\n ],\n name: \"NonceIncreased\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"maker\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"bytes32\",\n name: \"orderHash\",\n type: \"bytes32\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"remainingRaw\",\n type: \"uint256\",\n },\n ],\n name: \"OrderCanceled\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"maker\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"bytes32\",\n name: \"orderHash\",\n type: \"bytes32\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"remaining\",\n type: \"uint256\",\n },\n ],\n name: \"OrderFilled\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"bytes32\",\n name: \"orderHash\",\n type: \"bytes32\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"makingAmount\",\n type: \"uint256\",\n },\n ],\n name: \"OrderFilledRFQ\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"previousOwner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"OwnershipTransferred\",\n type: \"event\",\n },\n {\n inputs: [\n {\n internalType: \"uint8\",\n name: \"amount\",\n type: \"uint8\",\n },\n ],\n name: \"advanceNonce\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"offsets\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes\",\n name: \"data\",\n type: \"bytes\",\n },\n ],\n name: \"and\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"target\",\n type: \"address\",\n },\n {\n internalType: \"bytes\",\n name: \"data\",\n type: \"bytes\",\n },\n ],\n name: \"arbitraryStaticCall\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"uint256\",\n name: \"salt\",\n type: \"uint256\",\n },\n {\n internalType: \"address\",\n name: \"makerAsset\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"takerAsset\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"maker\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"receiver\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"allowedSender\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"makingAmount\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"takingAmount\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"offsets\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes\",\n name: \"interactions\",\n type: \"bytes\",\n },\n ],\n internalType: \"struct OrderLib.Order\",\n name: \"order\",\n type: \"tuple\",\n },\n ],\n name: \"cancelOrder\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"orderRemaining\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes32\",\n name: \"orderHash\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"orderInfo\",\n type: \"uint256\",\n },\n ],\n name: \"cancelOrderRFQ\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"orderInfo\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"additionalMask\",\n type: \"uint256\",\n },\n ],\n name: \"cancelOrderRFQ\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"uint256\",\n name: \"salt\",\n type: \"uint256\",\n },\n {\n internalType: \"address\",\n name: \"makerAsset\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"takerAsset\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"maker\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"receiver\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"allowedSender\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"makingAmount\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"takingAmount\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"offsets\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes\",\n name: \"interactions\",\n type: \"bytes\",\n },\n ],\n internalType: \"struct OrderLib.Order\",\n name: \"order\",\n type: \"tuple\",\n },\n ],\n name: \"checkPredicate\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IClipperExchangeInterface\",\n name: \"clipperExchange\",\n type: \"address\",\n },\n {\n internalType: \"contract IERC20\",\n name: \"srcToken\",\n type: \"address\",\n },\n {\n internalType: \"contract IERC20\",\n name: \"dstToken\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"inputAmount\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"outputAmount\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"goodUntil\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes32\",\n name: \"r\",\n type: \"bytes32\",\n },\n {\n internalType: \"bytes32\",\n name: \"vs\",\n type: \"bytes32\",\n },\n ],\n name: \"clipperSwap\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"returnAmount\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IClipperExchangeInterface\",\n name: \"clipperExchange\",\n type: \"address\",\n },\n {\n internalType: \"address payable\",\n name: \"recipient\",\n type: \"address\",\n },\n {\n internalType: \"contract IERC20\",\n name: \"srcToken\",\n type: \"address\",\n },\n {\n internalType: \"contract IERC20\",\n name: \"dstToken\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"inputAmount\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"outputAmount\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"goodUntil\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes32\",\n name: \"r\",\n type: \"bytes32\",\n },\n {\n internalType: \"bytes32\",\n name: \"vs\",\n type: \"bytes32\",\n },\n ],\n name: \"clipperSwapTo\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"returnAmount\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IClipperExchangeInterface\",\n name: \"clipperExchange\",\n type: \"address\",\n },\n {\n internalType: \"address payable\",\n name: \"recipient\",\n type: \"address\",\n },\n {\n internalType: \"contract IERC20\",\n name: \"srcToken\",\n type: \"address\",\n },\n {\n internalType: \"contract IERC20\",\n name: \"dstToken\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"inputAmount\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"outputAmount\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"goodUntil\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes32\",\n name: \"r\",\n type: \"bytes32\",\n },\n {\n internalType: \"bytes32\",\n name: \"vs\",\n type: \"bytes32\",\n },\n {\n internalType: \"bytes\",\n name: \"permit\",\n type: \"bytes\",\n },\n ],\n name: \"clipperSwapToWithPermit\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"returnAmount\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"destroy\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"value\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes\",\n name: \"data\",\n type: \"bytes\",\n },\n ],\n name: \"eq\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"uint256\",\n name: \"salt\",\n type: \"uint256\",\n },\n {\n internalType: \"address\",\n name: \"makerAsset\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"takerAsset\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"maker\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"receiver\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"allowedSender\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"makingAmount\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"takingAmount\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"offsets\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes\",\n name: \"interactions\",\n type: \"bytes\",\n },\n ],\n internalType: \"struct OrderLib.Order\",\n name: \"order\",\n type: \"tuple\",\n },\n {\n internalType: \"bytes\",\n name: \"signature\",\n type: \"bytes\",\n },\n {\n internalType: \"bytes\",\n name: \"interaction\",\n type: \"bytes\",\n },\n {\n internalType: \"uint256\",\n name: \"makingAmount\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"takingAmount\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"skipPermitAndThresholdAmount\",\n type: \"uint256\",\n },\n ],\n name: \"fillOrder\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes32\",\n name: \"\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"uint256\",\n name: \"info\",\n type: \"uint256\",\n },\n {\n internalType: \"address\",\n name: \"makerAsset\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"takerAsset\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"maker\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"allowedSender\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"makingAmount\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"takingAmount\",\n type: \"uint256\",\n },\n ],\n internalType: \"struct OrderRFQLib.OrderRFQ\",\n name: \"order\",\n type: \"tuple\",\n },\n {\n internalType: \"bytes\",\n name: \"signature\",\n type: \"bytes\",\n },\n {\n internalType: \"uint256\",\n name: \"flagsAndAmount\",\n type: \"uint256\",\n },\n ],\n name: \"fillOrderRFQ\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes32\",\n name: \"\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"uint256\",\n name: \"info\",\n type: \"uint256\",\n },\n {\n internalType: \"address\",\n name: \"makerAsset\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"takerAsset\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"maker\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"allowedSender\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"makingAmount\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"takingAmount\",\n type: \"uint256\",\n },\n ],\n internalType: \"struct OrderRFQLib.OrderRFQ\",\n name: \"order\",\n type: \"tuple\",\n },\n {\n internalType: \"bytes32\",\n name: \"r\",\n type: \"bytes32\",\n },\n {\n internalType: \"bytes32\",\n name: \"vs\",\n type: \"bytes32\",\n },\n {\n internalType: \"uint256\",\n name: \"flagsAndAmount\",\n type: \"uint256\",\n },\n ],\n name: \"fillOrderRFQCompact\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"filledMakingAmount\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"filledTakingAmount\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes32\",\n name: \"orderHash\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"uint256\",\n name: \"info\",\n type: \"uint256\",\n },\n {\n internalType: \"address\",\n name: \"makerAsset\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"takerAsset\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"maker\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"allowedSender\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"makingAmount\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"takingAmount\",\n type: \"uint256\",\n },\n ],\n internalType: \"struct OrderRFQLib.OrderRFQ\",\n name: \"order\",\n type: \"tuple\",\n },\n {\n internalType: \"bytes\",\n name: \"signature\",\n type: \"bytes\",\n },\n {\n internalType: \"uint256\",\n name: \"flagsAndAmount\",\n type: \"uint256\",\n },\n {\n internalType: \"address\",\n name: \"target\",\n type: \"address\",\n },\n ],\n name: \"fillOrderRFQTo\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"filledMakingAmount\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"filledTakingAmount\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes32\",\n name: \"orderHash\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"uint256\",\n name: \"info\",\n type: \"uint256\",\n },\n {\n internalType: \"address\",\n name: \"makerAsset\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"takerAsset\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"maker\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"allowedSender\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"makingAmount\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"takingAmount\",\n type: \"uint256\",\n },\n ],\n internalType: \"struct OrderRFQLib.OrderRFQ\",\n name: \"order\",\n type: \"tuple\",\n },\n {\n internalType: \"bytes\",\n name: \"signature\",\n type: \"bytes\",\n },\n {\n internalType: \"uint256\",\n name: \"flagsAndAmount\",\n type: \"uint256\",\n },\n {\n internalType: \"address\",\n name: \"target\",\n type: \"address\",\n },\n {\n internalType: \"bytes\",\n name: \"permit\",\n type: \"bytes\",\n },\n ],\n name: \"fillOrderRFQToWithPermit\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes32\",\n name: \"\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"uint256\",\n name: \"salt\",\n type: \"uint256\",\n },\n {\n internalType: \"address\",\n name: \"makerAsset\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"takerAsset\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"maker\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"receiver\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"allowedSender\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"makingAmount\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"takingAmount\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"offsets\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes\",\n name: \"interactions\",\n type: \"bytes\",\n },\n ],\n internalType: \"struct OrderLib.Order\",\n name: \"order_\",\n type: \"tuple\",\n },\n {\n internalType: \"bytes\",\n name: \"signature\",\n type: \"bytes\",\n },\n {\n internalType: \"bytes\",\n name: \"interaction\",\n type: \"bytes\",\n },\n {\n internalType: \"uint256\",\n name: \"makingAmount\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"takingAmount\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"skipPermitAndThresholdAmount\",\n type: \"uint256\",\n },\n {\n internalType: \"address\",\n name: \"target\",\n type: \"address\",\n },\n ],\n name: \"fillOrderTo\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"actualMakingAmount\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"actualTakingAmount\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes32\",\n name: \"orderHash\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"uint256\",\n name: \"salt\",\n type: \"uint256\",\n },\n {\n internalType: \"address\",\n name: \"makerAsset\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"takerAsset\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"maker\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"receiver\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"allowedSender\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"makingAmount\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"takingAmount\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"offsets\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes\",\n name: \"interactions\",\n type: \"bytes\",\n },\n ],\n internalType: \"struct OrderLib.Order\",\n name: \"order\",\n type: \"tuple\",\n },\n {\n internalType: \"bytes\",\n name: \"signature\",\n type: \"bytes\",\n },\n {\n internalType: \"bytes\",\n name: \"interaction\",\n type: \"bytes\",\n },\n {\n internalType: \"uint256\",\n name: \"makingAmount\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"takingAmount\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"skipPermitAndThresholdAmount\",\n type: \"uint256\",\n },\n {\n internalType: \"address\",\n name: \"target\",\n type: \"address\",\n },\n {\n internalType: \"bytes\",\n name: \"permit\",\n type: \"bytes\",\n },\n ],\n name: \"fillOrderToWithPermit\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes32\",\n name: \"\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"value\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes\",\n name: \"data\",\n type: \"bytes\",\n },\n ],\n name: \"gt\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"uint256\",\n name: \"salt\",\n type: \"uint256\",\n },\n {\n internalType: \"address\",\n name: \"makerAsset\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"takerAsset\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"maker\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"receiver\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"allowedSender\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"makingAmount\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"takingAmount\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"offsets\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes\",\n name: \"interactions\",\n type: \"bytes\",\n },\n ],\n internalType: \"struct OrderLib.Order\",\n name: \"order\",\n type: \"tuple\",\n },\n ],\n name: \"hashOrder\",\n outputs: [\n {\n internalType: \"bytes32\",\n name: \"\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"increaseNonce\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"maker\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"slot\",\n type: \"uint256\",\n },\n ],\n name: \"invalidatorForOrderRFQ\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"value\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes\",\n name: \"data\",\n type: \"bytes\",\n },\n ],\n name: \"lt\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n name: \"nonce\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"makerAddress\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"makerNonce\",\n type: \"uint256\",\n },\n ],\n name: \"nonceEquals\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"offsets\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes\",\n name: \"data\",\n type: \"bytes\",\n },\n ],\n name: \"or\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"owner\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"bytes32\",\n name: \"orderHash\",\n type: \"bytes32\",\n },\n ],\n name: \"remaining\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"bytes32\",\n name: \"orderHash\",\n type: \"bytes32\",\n },\n ],\n name: \"remainingRaw\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"bytes32[]\",\n name: \"orderHashes\",\n type: \"bytes32[]\",\n },\n ],\n name: \"remainingsRaw\",\n outputs: [\n {\n internalType: \"uint256[]\",\n name: \"\",\n type: \"uint256[]\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"renounceOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IERC20\",\n name: \"token\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"rescueFunds\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"target\",\n type: \"address\",\n },\n {\n internalType: \"bytes\",\n name: \"data\",\n type: \"bytes\",\n },\n ],\n name: \"simulate\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IAggregationExecutor\",\n name: \"executor\",\n type: \"address\",\n },\n {\n components: [\n {\n internalType: \"contract IERC20\",\n name: \"srcToken\",\n type: \"address\",\n },\n {\n internalType: \"contract IERC20\",\n name: \"dstToken\",\n type: \"address\",\n },\n {\n internalType: \"address payable\",\n name: \"srcReceiver\",\n type: \"address\",\n },\n {\n internalType: \"address payable\",\n name: \"dstReceiver\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"minReturnAmount\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"flags\",\n type: \"uint256\",\n },\n ],\n internalType: \"struct GenericRouter.SwapDescription\",\n name: \"desc\",\n type: \"tuple\",\n },\n {\n internalType: \"bytes\",\n name: \"permit\",\n type: \"bytes\",\n },\n {\n internalType: \"bytes\",\n name: \"data\",\n type: \"bytes\",\n },\n ],\n name: \"swap\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"returnAmount\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"spentAmount\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"time\",\n type: \"uint256\",\n },\n ],\n name: \"timestampBelow\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"timeNonceAccount\",\n type: \"uint256\",\n },\n ],\n name: \"timestampBelowAndNonceEquals\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"transferOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"minReturn\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256[]\",\n name: \"pools\",\n type: \"uint256[]\",\n },\n ],\n name: \"uniswapV3Swap\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"returnAmount\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"int256\",\n name: \"amount0Delta\",\n type: \"int256\",\n },\n {\n internalType: \"int256\",\n name: \"amount1Delta\",\n type: \"int256\",\n },\n {\n internalType: \"bytes\",\n name: \"\",\n type: \"bytes\",\n },\n ],\n name: \"uniswapV3SwapCallback\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address payable\",\n name: \"recipient\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"minReturn\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256[]\",\n name: \"pools\",\n type: \"uint256[]\",\n },\n ],\n name: \"uniswapV3SwapTo\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"returnAmount\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address payable\",\n name: \"recipient\",\n type: \"address\",\n },\n {\n internalType: \"contract IERC20\",\n name: \"srcToken\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"minReturn\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256[]\",\n name: \"pools\",\n type: \"uint256[]\",\n },\n {\n internalType: \"bytes\",\n name: \"permit\",\n type: \"bytes\",\n },\n ],\n name: \"uniswapV3SwapToWithPermit\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"returnAmount\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract IERC20\",\n name: \"srcToken\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"minReturn\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256[]\",\n name: \"pools\",\n type: \"uint256[]\",\n },\n ],\n name: \"unoswap\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"returnAmount\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address payable\",\n name: \"recipient\",\n type: \"address\",\n },\n {\n internalType: \"contract IERC20\",\n name: \"srcToken\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"minReturn\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256[]\",\n name: \"pools\",\n type: \"uint256[]\",\n },\n ],\n name: \"unoswapTo\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"returnAmount\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address payable\",\n name: \"recipient\",\n type: \"address\",\n },\n {\n internalType: \"contract IERC20\",\n name: \"srcToken\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"minReturn\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256[]\",\n name: \"pools\",\n type: \"uint256[]\",\n },\n {\n internalType: \"bytes\",\n name: \"permit\",\n type: \"bytes\",\n },\n ],\n name: \"unoswapToWithPermit\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"returnAmount\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n stateMutability: \"payable\",\n type: \"receive\",\n },\n];\n","export const pancakeSwapRouter = [\n {\n inputs: [\n { internalType: \"address\", name: \"_factory\", type: \"address\" },\n { internalType: \"address\", name: \"_WETH\", type: \"address\" },\n ],\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n inputs: [],\n name: \"WETH\",\n outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"tokenA\", type: \"address\" },\n { internalType: \"address\", name: \"tokenB\", type: \"address\" },\n { internalType: \"uint256\", name: \"amountADesired\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountBDesired\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountAMin\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountBMin\", type: \"uint256\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"addLiquidity\",\n outputs: [\n { internalType: \"uint256\", name: \"amountA\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountB\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"liquidity\", type: \"uint256\" },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"uint256\", name: \"amountTokenDesired\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountTokenMin\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountETHMin\", type: \"uint256\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"addLiquidityETH\",\n outputs: [\n { internalType: \"uint256\", name: \"amountToken\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountETH\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"liquidity\", type: \"uint256\" },\n ],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"factory\",\n outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountOut\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"reserveIn\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"reserveOut\", type: \"uint256\" },\n ],\n name: \"getAmountIn\",\n outputs: [{ internalType: \"uint256\", name: \"amountIn\", type: \"uint256\" }],\n stateMutability: \"pure\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountIn\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"reserveIn\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"reserveOut\", type: \"uint256\" },\n ],\n name: \"getAmountOut\",\n outputs: [{ internalType: \"uint256\", name: \"amountOut\", type: \"uint256\" }],\n stateMutability: \"pure\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountOut\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n ],\n name: \"getAmountsIn\",\n outputs: [{ internalType: \"uint256[]\", name: \"amounts\", type: \"uint256[]\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountIn\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n ],\n name: \"getAmountsOut\",\n outputs: [{ internalType: \"uint256[]\", name: \"amounts\", type: \"uint256[]\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountA\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"reserveA\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"reserveB\", type: \"uint256\" },\n ],\n name: \"quote\",\n outputs: [{ internalType: \"uint256\", name: \"amountB\", type: \"uint256\" }],\n stateMutability: \"pure\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"tokenA\", type: \"address\" },\n { internalType: \"address\", name: \"tokenB\", type: \"address\" },\n { internalType: \"uint256\", name: \"liquidity\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountAMin\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountBMin\", type: \"uint256\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"removeLiquidity\",\n outputs: [\n { internalType: \"uint256\", name: \"amountA\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountB\", type: \"uint256\" },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"uint256\", name: \"liquidity\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountTokenMin\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountETHMin\", type: \"uint256\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"removeLiquidityETH\",\n outputs: [\n { internalType: \"uint256\", name: \"amountToken\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountETH\", type: \"uint256\" },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"uint256\", name: \"liquidity\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountTokenMin\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountETHMin\", type: \"uint256\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"removeLiquidityETHSupportingFeeOnTransferTokens\",\n outputs: [{ internalType: \"uint256\", name: \"amountETH\", type: \"uint256\" }],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"uint256\", name: \"liquidity\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountTokenMin\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountETHMin\", type: \"uint256\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n { internalType: \"bool\", name: \"approveMax\", type: \"bool\" },\n { internalType: \"uint8\", name: \"v\", type: \"uint8\" },\n { internalType: \"bytes32\", name: \"r\", type: \"bytes32\" },\n { internalType: \"bytes32\", name: \"s\", type: \"bytes32\" },\n ],\n name: \"removeLiquidityETHWithPermit\",\n outputs: [\n { internalType: \"uint256\", name: \"amountToken\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountETH\", type: \"uint256\" },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"uint256\", name: \"liquidity\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountTokenMin\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountETHMin\", type: \"uint256\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n { internalType: \"bool\", name: \"approveMax\", type: \"bool\" },\n { internalType: \"uint8\", name: \"v\", type: \"uint8\" },\n { internalType: \"bytes32\", name: \"r\", type: \"bytes32\" },\n { internalType: \"bytes32\", name: \"s\", type: \"bytes32\" },\n ],\n name: \"removeLiquidityETHWithPermitSupportingFeeOnTransferTokens\",\n outputs: [{ internalType: \"uint256\", name: \"amountETH\", type: \"uint256\" }],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"tokenA\", type: \"address\" },\n { internalType: \"address\", name: \"tokenB\", type: \"address\" },\n { internalType: \"uint256\", name: \"liquidity\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountAMin\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountBMin\", type: \"uint256\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n { internalType: \"bool\", name: \"approveMax\", type: \"bool\" },\n { internalType: \"uint8\", name: \"v\", type: \"uint8\" },\n { internalType: \"bytes32\", name: \"r\", type: \"bytes32\" },\n { internalType: \"bytes32\", name: \"s\", type: \"bytes32\" },\n ],\n name: \"removeLiquidityWithPermit\",\n outputs: [\n { internalType: \"uint256\", name: \"amountA\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountB\", type: \"uint256\" },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountOut\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapETHForExactTokens\",\n outputs: [{ internalType: \"uint256[]\", name: \"amounts\", type: \"uint256[]\" }],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapExactETHForTokens\",\n outputs: [{ internalType: \"uint256[]\", name: \"amounts\", type: \"uint256[]\" }],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapExactETHForTokensSupportingFeeOnTransferTokens\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountIn\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapExactTokensForETH\",\n outputs: [{ internalType: \"uint256[]\", name: \"amounts\", type: \"uint256[]\" }],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountIn\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapExactTokensForETHSupportingFeeOnTransferTokens\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountIn\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapExactTokensForTokens\",\n outputs: [{ internalType: \"uint256[]\", name: \"amounts\", type: \"uint256[]\" }],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountIn\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapExactTokensForTokensSupportingFeeOnTransferTokens\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountOut\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountInMax\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapTokensForExactETH\",\n outputs: [{ internalType: \"uint256[]\", name: \"amounts\", type: \"uint256[]\" }],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountOut\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountInMax\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapTokensForExactTokens\",\n outputs: [{ internalType: \"uint256[]\", name: \"amounts\", type: \"uint256[]\" }],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n { stateMutability: \"payable\", type: \"receive\" },\n];\n","export const pangolinRouter = [\n {\n inputs: [\n { internalType: \"address\", name: \"_factory\", type: \"address\" },\n { internalType: \"address\", name: \"_WAVAX\", type: \"address\" },\n ],\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n inputs: [],\n name: \"WAVAX\",\n outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"tokenA\", type: \"address\" },\n { internalType: \"address\", name: \"tokenB\", type: \"address\" },\n { internalType: \"uint256\", name: \"amountADesired\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountBDesired\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountAMin\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountBMin\", type: \"uint256\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"addLiquidity\",\n outputs: [\n { internalType: \"uint256\", name: \"amountA\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountB\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"liquidity\", type: \"uint256\" },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"uint256\", name: \"amountTokenDesired\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountTokenMin\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountAVAXMin\", type: \"uint256\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"addLiquidityAVAX\",\n outputs: [\n { internalType: \"uint256\", name: \"amountToken\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountAVAX\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"liquidity\", type: \"uint256\" },\n ],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"factory\",\n outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountOut\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"reserveIn\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"reserveOut\", type: \"uint256\" },\n ],\n name: \"getAmountIn\",\n outputs: [{ internalType: \"uint256\", name: \"amountIn\", type: \"uint256\" }],\n stateMutability: \"pure\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountIn\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"reserveIn\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"reserveOut\", type: \"uint256\" },\n ],\n name: \"getAmountOut\",\n outputs: [{ internalType: \"uint256\", name: \"amountOut\", type: \"uint256\" }],\n stateMutability: \"pure\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountOut\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n ],\n name: \"getAmountsIn\",\n outputs: [{ internalType: \"uint256[]\", name: \"amounts\", type: \"uint256[]\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountIn\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n ],\n name: \"getAmountsOut\",\n outputs: [{ internalType: \"uint256[]\", name: \"amounts\", type: \"uint256[]\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountA\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"reserveA\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"reserveB\", type: \"uint256\" },\n ],\n name: \"quote\",\n outputs: [{ internalType: \"uint256\", name: \"amountB\", type: \"uint256\" }],\n stateMutability: \"pure\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"tokenA\", type: \"address\" },\n { internalType: \"address\", name: \"tokenB\", type: \"address\" },\n { internalType: \"uint256\", name: \"liquidity\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountAMin\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountBMin\", type: \"uint256\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"removeLiquidity\",\n outputs: [\n { internalType: \"uint256\", name: \"amountA\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountB\", type: \"uint256\" },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"uint256\", name: \"liquidity\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountTokenMin\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountAVAXMin\", type: \"uint256\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"removeLiquidityAVAX\",\n outputs: [\n { internalType: \"uint256\", name: \"amountToken\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountAVAX\", type: \"uint256\" },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"uint256\", name: \"liquidity\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountTokenMin\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountAVAXMin\", type: \"uint256\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"removeLiquidityAVAXSupportingFeeOnTransferTokens\",\n outputs: [{ internalType: \"uint256\", name: \"amountAVAX\", type: \"uint256\" }],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"uint256\", name: \"liquidity\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountTokenMin\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountAVAXMin\", type: \"uint256\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n { internalType: \"bool\", name: \"approveMax\", type: \"bool\" },\n { internalType: \"uint8\", name: \"v\", type: \"uint8\" },\n { internalType: \"bytes32\", name: \"r\", type: \"bytes32\" },\n { internalType: \"bytes32\", name: \"s\", type: \"bytes32\" },\n ],\n name: \"removeLiquidityAVAXWithPermit\",\n outputs: [\n { internalType: \"uint256\", name: \"amountToken\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountAVAX\", type: \"uint256\" },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"uint256\", name: \"liquidity\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountTokenMin\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountAVAXMin\", type: \"uint256\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n { internalType: \"bool\", name: \"approveMax\", type: \"bool\" },\n { internalType: \"uint8\", name: \"v\", type: \"uint8\" },\n { internalType: \"bytes32\", name: \"r\", type: \"bytes32\" },\n { internalType: \"bytes32\", name: \"s\", type: \"bytes32\" },\n ],\n name: \"removeLiquidityAVAXWithPermitSupportingFeeOnTransferTokens\",\n outputs: [{ internalType: \"uint256\", name: \"amountAVAX\", type: \"uint256\" }],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"tokenA\", type: \"address\" },\n { internalType: \"address\", name: \"tokenB\", type: \"address\" },\n { internalType: \"uint256\", name: \"liquidity\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountAMin\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountBMin\", type: \"uint256\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n { internalType: \"bool\", name: \"approveMax\", type: \"bool\" },\n { internalType: \"uint8\", name: \"v\", type: \"uint8\" },\n { internalType: \"bytes32\", name: \"r\", type: \"bytes32\" },\n { internalType: \"bytes32\", name: \"s\", type: \"bytes32\" },\n ],\n name: \"removeLiquidityWithPermit\",\n outputs: [\n { internalType: \"uint256\", name: \"amountA\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountB\", type: \"uint256\" },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountOut\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapAVAXForExactTokens\",\n outputs: [{ internalType: \"uint256[]\", name: \"amounts\", type: \"uint256[]\" }],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapExactAVAXForTokens\",\n outputs: [{ internalType: \"uint256[]\", name: \"amounts\", type: \"uint256[]\" }],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapExactAVAXForTokensSupportingFeeOnTransferTokens\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountIn\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapExactTokensForAVAX\",\n outputs: [{ internalType: \"uint256[]\", name: \"amounts\", type: \"uint256[]\" }],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountIn\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapExactTokensForAVAXSupportingFeeOnTransferTokens\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountIn\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapExactTokensForTokens\",\n outputs: [{ internalType: \"uint256[]\", name: \"amounts\", type: \"uint256[]\" }],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountIn\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapExactTokensForTokensSupportingFeeOnTransferTokens\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountOut\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountInMax\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapTokensForExactAVAX\",\n outputs: [{ internalType: \"uint256[]\", name: \"amounts\", type: \"uint256[]\" }],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountOut\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountInMax\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapTokensForExactTokens\",\n outputs: [{ internalType: \"uint256[]\", name: \"amounts\", type: \"uint256[]\" }],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n { stateMutability: \"payable\", type: \"receive\" },\n];\n","export const sushiswapRouter = [\n {\n inputs: [\n { internalType: \"address\", name: \"_factory\", type: \"address\" },\n { internalType: \"address\", name: \"_WETH\", type: \"address\" },\n ],\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n inputs: [],\n name: \"WETH\",\n outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"tokenA\", type: \"address\" },\n { internalType: \"address\", name: \"tokenB\", type: \"address\" },\n { internalType: \"uint256\", name: \"amountADesired\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountBDesired\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountAMin\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountBMin\", type: \"uint256\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"addLiquidity\",\n outputs: [\n { internalType: \"uint256\", name: \"amountA\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountB\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"liquidity\", type: \"uint256\" },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"uint256\", name: \"amountTokenDesired\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountTokenMin\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountETHMin\", type: \"uint256\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"addLiquidityETH\",\n outputs: [\n { internalType: \"uint256\", name: \"amountToken\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountETH\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"liquidity\", type: \"uint256\" },\n ],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"factory\",\n outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountOut\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"reserveIn\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"reserveOut\", type: \"uint256\" },\n ],\n name: \"getAmountIn\",\n outputs: [{ internalType: \"uint256\", name: \"amountIn\", type: \"uint256\" }],\n stateMutability: \"pure\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountIn\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"reserveIn\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"reserveOut\", type: \"uint256\" },\n ],\n name: \"getAmountOut\",\n outputs: [{ internalType: \"uint256\", name: \"amountOut\", type: \"uint256\" }],\n stateMutability: \"pure\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountOut\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n ],\n name: \"getAmountsIn\",\n outputs: [{ internalType: \"uint256[]\", name: \"amounts\", type: \"uint256[]\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountIn\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n ],\n name: \"getAmountsOut\",\n outputs: [{ internalType: \"uint256[]\", name: \"amounts\", type: \"uint256[]\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountA\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"reserveA\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"reserveB\", type: \"uint256\" },\n ],\n name: \"quote\",\n outputs: [{ internalType: \"uint256\", name: \"amountB\", type: \"uint256\" }],\n stateMutability: \"pure\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"tokenA\", type: \"address\" },\n { internalType: \"address\", name: \"tokenB\", type: \"address\" },\n { internalType: \"uint256\", name: \"liquidity\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountAMin\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountBMin\", type: \"uint256\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"removeLiquidity\",\n outputs: [\n { internalType: \"uint256\", name: \"amountA\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountB\", type: \"uint256\" },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"uint256\", name: \"liquidity\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountTokenMin\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountETHMin\", type: \"uint256\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"removeLiquidityETH\",\n outputs: [\n { internalType: \"uint256\", name: \"amountToken\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountETH\", type: \"uint256\" },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"uint256\", name: \"liquidity\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountTokenMin\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountETHMin\", type: \"uint256\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"removeLiquidityETHSupportingFeeOnTransferTokens\",\n outputs: [{ internalType: \"uint256\", name: \"amountETH\", type: \"uint256\" }],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"uint256\", name: \"liquidity\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountTokenMin\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountETHMin\", type: \"uint256\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n { internalType: \"bool\", name: \"approveMax\", type: \"bool\" },\n { internalType: \"uint8\", name: \"v\", type: \"uint8\" },\n { internalType: \"bytes32\", name: \"r\", type: \"bytes32\" },\n { internalType: \"bytes32\", name: \"s\", type: \"bytes32\" },\n ],\n name: \"removeLiquidityETHWithPermit\",\n outputs: [\n { internalType: \"uint256\", name: \"amountToken\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountETH\", type: \"uint256\" },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"uint256\", name: \"liquidity\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountTokenMin\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountETHMin\", type: \"uint256\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n { internalType: \"bool\", name: \"approveMax\", type: \"bool\" },\n { internalType: \"uint8\", name: \"v\", type: \"uint8\" },\n { internalType: \"bytes32\", name: \"r\", type: \"bytes32\" },\n { internalType: \"bytes32\", name: \"s\", type: \"bytes32\" },\n ],\n name: \"removeLiquidityETHWithPermitSupportingFeeOnTransferTokens\",\n outputs: [{ internalType: \"uint256\", name: \"amountETH\", type: \"uint256\" }],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"tokenA\", type: \"address\" },\n { internalType: \"address\", name: \"tokenB\", type: \"address\" },\n { internalType: \"uint256\", name: \"liquidity\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountAMin\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountBMin\", type: \"uint256\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n { internalType: \"bool\", name: \"approveMax\", type: \"bool\" },\n { internalType: \"uint8\", name: \"v\", type: \"uint8\" },\n { internalType: \"bytes32\", name: \"r\", type: \"bytes32\" },\n { internalType: \"bytes32\", name: \"s\", type: \"bytes32\" },\n ],\n name: \"removeLiquidityWithPermit\",\n outputs: [\n { internalType: \"uint256\", name: \"amountA\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountB\", type: \"uint256\" },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountOut\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapETHForExactTokens\",\n outputs: [{ internalType: \"uint256[]\", name: \"amounts\", type: \"uint256[]\" }],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapExactETHForTokens\",\n outputs: [{ internalType: \"uint256[]\", name: \"amounts\", type: \"uint256[]\" }],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapExactETHForTokensSupportingFeeOnTransferTokens\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountIn\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapExactTokensForETH\",\n outputs: [{ internalType: \"uint256[]\", name: \"amounts\", type: \"uint256[]\" }],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountIn\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapExactTokensForETHSupportingFeeOnTransferTokens\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountIn\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapExactTokensForTokens\",\n outputs: [{ internalType: \"uint256[]\", name: \"amounts\", type: \"uint256[]\" }],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountIn\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapExactTokensForTokensSupportingFeeOnTransferTokens\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountOut\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountInMax\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapTokensForExactETH\",\n outputs: [{ internalType: \"uint256[]\", name: \"amounts\", type: \"uint256[]\" }],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountOut\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountInMax\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapTokensForExactTokens\",\n outputs: [{ internalType: \"uint256[]\", name: \"amounts\", type: \"uint256[]\" }],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n { stateMutability: \"payable\", type: \"receive\" },\n];\n","export const traderJoeRouter = [\n {\n inputs: [\n { internalType: \"address\", name: \"_factory\", type: \"address\" },\n { internalType: \"address\", name: \"_WAVAX\", type: \"address\" },\n ],\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n inputs: [],\n name: \"WAVAX\",\n outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"tokenA\", type: \"address\" },\n { internalType: \"address\", name: \"tokenB\", type: \"address\" },\n { internalType: \"uint256\", name: \"amountADesired\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountBDesired\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountAMin\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountBMin\", type: \"uint256\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"addLiquidity\",\n outputs: [\n { internalType: \"uint256\", name: \"amountA\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountB\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"liquidity\", type: \"uint256\" },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"uint256\", name: \"amountTokenDesired\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountTokenMin\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountAVAXMin\", type: \"uint256\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"addLiquidityAVAX\",\n outputs: [\n { internalType: \"uint256\", name: \"amountToken\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountAVAX\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"liquidity\", type: \"uint256\" },\n ],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"factory\",\n outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountOut\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"reserveIn\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"reserveOut\", type: \"uint256\" },\n ],\n name: \"getAmountIn\",\n outputs: [{ internalType: \"uint256\", name: \"amountIn\", type: \"uint256\" }],\n stateMutability: \"pure\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountIn\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"reserveIn\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"reserveOut\", type: \"uint256\" },\n ],\n name: \"getAmountOut\",\n outputs: [{ internalType: \"uint256\", name: \"amountOut\", type: \"uint256\" }],\n stateMutability: \"pure\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountOut\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n ],\n name: \"getAmountsIn\",\n outputs: [{ internalType: \"uint256[]\", name: \"amounts\", type: \"uint256[]\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountIn\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n ],\n name: \"getAmountsOut\",\n outputs: [{ internalType: \"uint256[]\", name: \"amounts\", type: \"uint256[]\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountA\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"reserveA\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"reserveB\", type: \"uint256\" },\n ],\n name: \"quote\",\n outputs: [{ internalType: \"uint256\", name: \"amountB\", type: \"uint256\" }],\n stateMutability: \"pure\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"tokenA\", type: \"address\" },\n { internalType: \"address\", name: \"tokenB\", type: \"address\" },\n { internalType: \"uint256\", name: \"liquidity\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountAMin\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountBMin\", type: \"uint256\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"removeLiquidity\",\n outputs: [\n { internalType: \"uint256\", name: \"amountA\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountB\", type: \"uint256\" },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"uint256\", name: \"liquidity\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountTokenMin\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountAVAXMin\", type: \"uint256\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"removeLiquidityAVAX\",\n outputs: [\n { internalType: \"uint256\", name: \"amountToken\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountAVAX\", type: \"uint256\" },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"uint256\", name: \"liquidity\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountTokenMin\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountAVAXMin\", type: \"uint256\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"removeLiquidityAVAXSupportingFeeOnTransferTokens\",\n outputs: [{ internalType: \"uint256\", name: \"amountAVAX\", type: \"uint256\" }],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"uint256\", name: \"liquidity\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountTokenMin\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountAVAXMin\", type: \"uint256\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n { internalType: \"bool\", name: \"approveMax\", type: \"bool\" },\n { internalType: \"uint8\", name: \"v\", type: \"uint8\" },\n { internalType: \"bytes32\", name: \"r\", type: \"bytes32\" },\n { internalType: \"bytes32\", name: \"s\", type: \"bytes32\" },\n ],\n name: \"removeLiquidityAVAXWithPermit\",\n outputs: [\n { internalType: \"uint256\", name: \"amountToken\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountAVAX\", type: \"uint256\" },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"uint256\", name: \"liquidity\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountTokenMin\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountAVAXMin\", type: \"uint256\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n { internalType: \"bool\", name: \"approveMax\", type: \"bool\" },\n { internalType: \"uint8\", name: \"v\", type: \"uint8\" },\n { internalType: \"bytes32\", name: \"r\", type: \"bytes32\" },\n { internalType: \"bytes32\", name: \"s\", type: \"bytes32\" },\n ],\n name: \"removeLiquidityAVAXWithPermitSupportingFeeOnTransferTokens\",\n outputs: [{ internalType: \"uint256\", name: \"amountAVAX\", type: \"uint256\" }],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"tokenA\", type: \"address\" },\n { internalType: \"address\", name: \"tokenB\", type: \"address\" },\n { internalType: \"uint256\", name: \"liquidity\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountAMin\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountBMin\", type: \"uint256\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n { internalType: \"bool\", name: \"approveMax\", type: \"bool\" },\n { internalType: \"uint8\", name: \"v\", type: \"uint8\" },\n { internalType: \"bytes32\", name: \"r\", type: \"bytes32\" },\n { internalType: \"bytes32\", name: \"s\", type: \"bytes32\" },\n ],\n name: \"removeLiquidityWithPermit\",\n outputs: [\n { internalType: \"uint256\", name: \"amountA\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountB\", type: \"uint256\" },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountOut\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapAVAXForExactTokens\",\n outputs: [{ internalType: \"uint256[]\", name: \"amounts\", type: \"uint256[]\" }],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapExactAVAXForTokens\",\n outputs: [{ internalType: \"uint256[]\", name: \"amounts\", type: \"uint256[]\" }],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapExactAVAXForTokensSupportingFeeOnTransferTokens\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountIn\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapExactTokensForAVAX\",\n outputs: [{ internalType: \"uint256[]\", name: \"amounts\", type: \"uint256[]\" }],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountIn\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapExactTokensForAVAXSupportingFeeOnTransferTokens\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountIn\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapExactTokensForTokens\",\n outputs: [{ internalType: \"uint256[]\", name: \"amounts\", type: \"uint256[]\" }],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountIn\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapExactTokensForTokensSupportingFeeOnTransferTokens\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountOut\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountInMax\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapTokensForExactAVAX\",\n outputs: [{ internalType: \"uint256[]\", name: \"amounts\", type: \"uint256[]\" }],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountOut\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountInMax\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapTokensForExactTokens\",\n outputs: [{ internalType: \"uint256[]\", name: \"amounts\", type: \"uint256[]\" }],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n { stateMutability: \"payable\", type: \"receive\" },\n];\n","export const uniswapv2Router = [\n {\n inputs: [\n { internalType: \"address\", name: \"_factory\", type: \"address\" },\n { internalType: \"address\", name: \"_WETH\", type: \"address\" },\n ],\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n inputs: [],\n name: \"WETH\",\n outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"tokenA\", type: \"address\" },\n { internalType: \"address\", name: \"tokenB\", type: \"address\" },\n { internalType: \"uint256\", name: \"amountADesired\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountBDesired\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountAMin\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountBMin\", type: \"uint256\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"addLiquidity\",\n outputs: [\n { internalType: \"uint256\", name: \"amountA\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountB\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"liquidity\", type: \"uint256\" },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"uint256\", name: \"amountTokenDesired\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountTokenMin\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountETHMin\", type: \"uint256\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"addLiquidityETH\",\n outputs: [\n { internalType: \"uint256\", name: \"amountToken\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountETH\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"liquidity\", type: \"uint256\" },\n ],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"factory\",\n outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountOut\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"reserveIn\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"reserveOut\", type: \"uint256\" },\n ],\n name: \"getAmountIn\",\n outputs: [{ internalType: \"uint256\", name: \"amountIn\", type: \"uint256\" }],\n stateMutability: \"pure\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountIn\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"reserveIn\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"reserveOut\", type: \"uint256\" },\n ],\n name: \"getAmountOut\",\n outputs: [{ internalType: \"uint256\", name: \"amountOut\", type: \"uint256\" }],\n stateMutability: \"pure\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountOut\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n ],\n name: \"getAmountsIn\",\n outputs: [{ internalType: \"uint256[]\", name: \"amounts\", type: \"uint256[]\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountIn\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n ],\n name: \"getAmountsOut\",\n outputs: [{ internalType: \"uint256[]\", name: \"amounts\", type: \"uint256[]\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountA\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"reserveA\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"reserveB\", type: \"uint256\" },\n ],\n name: \"quote\",\n outputs: [{ internalType: \"uint256\", name: \"amountB\", type: \"uint256\" }],\n stateMutability: \"pure\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"tokenA\", type: \"address\" },\n { internalType: \"address\", name: \"tokenB\", type: \"address\" },\n { internalType: \"uint256\", name: \"liquidity\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountAMin\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountBMin\", type: \"uint256\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"removeLiquidity\",\n outputs: [\n { internalType: \"uint256\", name: \"amountA\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountB\", type: \"uint256\" },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"uint256\", name: \"liquidity\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountTokenMin\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountETHMin\", type: \"uint256\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"removeLiquidityETH\",\n outputs: [\n { internalType: \"uint256\", name: \"amountToken\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountETH\", type: \"uint256\" },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"uint256\", name: \"liquidity\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountTokenMin\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountETHMin\", type: \"uint256\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"removeLiquidityETHSupportingFeeOnTransferTokens\",\n outputs: [{ internalType: \"uint256\", name: \"amountETH\", type: \"uint256\" }],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"uint256\", name: \"liquidity\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountTokenMin\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountETHMin\", type: \"uint256\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n { internalType: \"bool\", name: \"approveMax\", type: \"bool\" },\n { internalType: \"uint8\", name: \"v\", type: \"uint8\" },\n { internalType: \"bytes32\", name: \"r\", type: \"bytes32\" },\n { internalType: \"bytes32\", name: \"s\", type: \"bytes32\" },\n ],\n name: \"removeLiquidityETHWithPermit\",\n outputs: [\n { internalType: \"uint256\", name: \"amountToken\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountETH\", type: \"uint256\" },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"uint256\", name: \"liquidity\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountTokenMin\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountETHMin\", type: \"uint256\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n { internalType: \"bool\", name: \"approveMax\", type: \"bool\" },\n { internalType: \"uint8\", name: \"v\", type: \"uint8\" },\n { internalType: \"bytes32\", name: \"r\", type: \"bytes32\" },\n { internalType: \"bytes32\", name: \"s\", type: \"bytes32\" },\n ],\n name: \"removeLiquidityETHWithPermitSupportingFeeOnTransferTokens\",\n outputs: [{ internalType: \"uint256\", name: \"amountETH\", type: \"uint256\" }],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"tokenA\", type: \"address\" },\n { internalType: \"address\", name: \"tokenB\", type: \"address\" },\n { internalType: \"uint256\", name: \"liquidity\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountAMin\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountBMin\", type: \"uint256\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n { internalType: \"bool\", name: \"approveMax\", type: \"bool\" },\n { internalType: \"uint8\", name: \"v\", type: \"uint8\" },\n { internalType: \"bytes32\", name: \"r\", type: \"bytes32\" },\n { internalType: \"bytes32\", name: \"s\", type: \"bytes32\" },\n ],\n name: \"removeLiquidityWithPermit\",\n outputs: [\n { internalType: \"uint256\", name: \"amountA\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountB\", type: \"uint256\" },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountOut\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapETHForExactTokens\",\n outputs: [{ internalType: \"uint256[]\", name: \"amounts\", type: \"uint256[]\" }],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapExactETHForTokens\",\n outputs: [{ internalType: \"uint256[]\", name: \"amounts\", type: \"uint256[]\" }],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapExactETHForTokensSupportingFeeOnTransferTokens\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountIn\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapExactTokensForETH\",\n outputs: [{ internalType: \"uint256[]\", name: \"amounts\", type: \"uint256[]\" }],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountIn\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapExactTokensForETHSupportingFeeOnTransferTokens\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountIn\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapExactTokensForTokens\",\n outputs: [{ internalType: \"uint256[]\", name: \"amounts\", type: \"uint256[]\" }],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountIn\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapExactTokensForTokensSupportingFeeOnTransferTokens\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountOut\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountInMax\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapTokensForExactETH\",\n outputs: [{ internalType: \"uint256[]\", name: \"amounts\", type: \"uint256[]\" }],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountOut\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountInMax\", type: \"uint256\" },\n { internalType: \"address[]\", name: \"path\", type: \"address[]\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapTokensForExactTokens\",\n outputs: [{ internalType: \"uint256[]\", name: \"amounts\", type: \"uint256[]\" }],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n { stateMutability: \"payable\", type: \"receive\" },\n];\n","export const uniswapv3Router = [\n {\n inputs: [\n { internalType: \"address\", name: \"_factory\", type: \"address\" },\n { internalType: \"address\", name: \"_WETH9\", type: \"address\" },\n ],\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n inputs: [],\n name: \"WETH9\",\n outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n { internalType: \"bytes\", name: \"path\", type: \"bytes\" },\n { internalType: \"address\", name: \"recipient\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountIn\", type: \"uint256\" },\n {\n internalType: \"uint256\",\n name: \"amountOutMinimum\",\n type: \"uint256\",\n },\n ],\n internalType: \"struct ISwapRouter.ExactInputParams\",\n name: \"params\",\n type: \"tuple\",\n },\n ],\n name: \"exactInput\",\n outputs: [{ internalType: \"uint256\", name: \"amountOut\", type: \"uint256\" }],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n { internalType: \"address\", name: \"tokenIn\", type: \"address\" },\n { internalType: \"address\", name: \"tokenOut\", type: \"address\" },\n { internalType: \"uint24\", name: \"fee\", type: \"uint24\" },\n { internalType: \"address\", name: \"recipient\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountIn\", type: \"uint256\" },\n {\n internalType: \"uint256\",\n name: \"amountOutMinimum\",\n type: \"uint256\",\n },\n {\n internalType: \"uint160\",\n name: \"sqrtPriceLimitX96\",\n type: \"uint160\",\n },\n ],\n internalType: \"struct ISwapRouter.ExactInputSingleParams\",\n name: \"params\",\n type: \"tuple\",\n },\n ],\n name: \"exactInputSingle\",\n outputs: [{ internalType: \"uint256\", name: \"amountOut\", type: \"uint256\" }],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n { internalType: \"bytes\", name: \"path\", type: \"bytes\" },\n { internalType: \"address\", name: \"recipient\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountOut\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountInMaximum\", type: \"uint256\" },\n ],\n internalType: \"struct ISwapRouter.ExactOutputParams\",\n name: \"params\",\n type: \"tuple\",\n },\n ],\n name: \"exactOutput\",\n outputs: [{ internalType: \"uint256\", name: \"amountIn\", type: \"uint256\" }],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n { internalType: \"address\", name: \"tokenIn\", type: \"address\" },\n { internalType: \"address\", name: \"tokenOut\", type: \"address\" },\n { internalType: \"uint24\", name: \"fee\", type: \"uint24\" },\n { internalType: \"address\", name: \"recipient\", type: \"address\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountOut\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountInMaximum\", type: \"uint256\" },\n {\n internalType: \"uint160\",\n name: \"sqrtPriceLimitX96\",\n type: \"uint160\",\n },\n ],\n internalType: \"struct ISwapRouter.ExactOutputSingleParams\",\n name: \"params\",\n type: \"tuple\",\n },\n ],\n name: \"exactOutputSingle\",\n outputs: [{ internalType: \"uint256\", name: \"amountIn\", type: \"uint256\" }],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"factory\",\n outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"bytes[]\", name: \"data\", type: \"bytes[]\" }],\n name: \"multicall\",\n outputs: [{ internalType: \"bytes[]\", name: \"results\", type: \"bytes[]\" }],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"refundETH\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"uint256\", name: \"value\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n { internalType: \"uint8\", name: \"v\", type: \"uint8\" },\n { internalType: \"bytes32\", name: \"r\", type: \"bytes32\" },\n { internalType: \"bytes32\", name: \"s\", type: \"bytes32\" },\n ],\n name: \"selfPermit\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"uint256\", name: \"nonce\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"expiry\", type: \"uint256\" },\n { internalType: \"uint8\", name: \"v\", type: \"uint8\" },\n { internalType: \"bytes32\", name: \"r\", type: \"bytes32\" },\n { internalType: \"bytes32\", name: \"s\", type: \"bytes32\" },\n ],\n name: \"selfPermitAllowed\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"uint256\", name: \"nonce\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"expiry\", type: \"uint256\" },\n { internalType: \"uint8\", name: \"v\", type: \"uint8\" },\n { internalType: \"bytes32\", name: \"r\", type: \"bytes32\" },\n { internalType: \"bytes32\", name: \"s\", type: \"bytes32\" },\n ],\n name: \"selfPermitAllowedIfNecessary\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"uint256\", name: \"value\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n { internalType: \"uint8\", name: \"v\", type: \"uint8\" },\n { internalType: \"bytes32\", name: \"r\", type: \"bytes32\" },\n { internalType: \"bytes32\", name: \"s\", type: \"bytes32\" },\n ],\n name: \"selfPermitIfNecessary\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"uint256\", name: \"amountMinimum\", type: \"uint256\" },\n { internalType: \"address\", name: \"recipient\", type: \"address\" },\n ],\n name: \"sweepToken\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"uint256\", name: \"amountMinimum\", type: \"uint256\" },\n { internalType: \"address\", name: \"recipient\", type: \"address\" },\n { internalType: \"uint256\", name: \"feeBips\", type: \"uint256\" },\n { internalType: \"address\", name: \"feeRecipient\", type: \"address\" },\n ],\n name: \"sweepTokenWithFee\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"int256\", name: \"amount0Delta\", type: \"int256\" },\n { internalType: \"int256\", name: \"amount1Delta\", type: \"int256\" },\n { internalType: \"bytes\", name: \"_data\", type: \"bytes\" },\n ],\n name: \"uniswapV3SwapCallback\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountMinimum\", type: \"uint256\" },\n { internalType: \"address\", name: \"recipient\", type: \"address\" },\n ],\n name: \"unwrapWETH9\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"amountMinimum\", type: \"uint256\" },\n { internalType: \"address\", name: \"recipient\", type: \"address\" },\n { internalType: \"uint256\", name: \"feeBips\", type: \"uint256\" },\n { internalType: \"address\", name: \"feeRecipient\", type: \"address\" },\n ],\n name: \"unwrapWETH9WithFee\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\",\n },\n { stateMutability: \"payable\", type: \"receive\" },\n];\n","export const woofiRouter = [\n {\n inputs: [\n { internalType: \"address\", name: \"_weth\", type: \"address\" },\n { internalType: \"address\", name: \"_pool\", type: \"address\" },\n ],\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, internalType: \"address\", name: \"previousOwner\", type: \"address\" },\n { indexed: true, internalType: \"address\", name: \"newOwner\", type: \"address\" },\n ],\n name: \"OwnershipTransferred\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [{ indexed: false, internalType: \"address\", name: \"newPool\", type: \"address\" }],\n name: \"WooPoolChanged\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"enum IWooRouterV2.SwapType\",\n name: \"swapType\",\n type: \"uint8\",\n },\n { indexed: true, internalType: \"address\", name: \"fromToken\", type: \"address\" },\n { indexed: true, internalType: \"address\", name: \"toToken\", type: \"address\" },\n { indexed: false, internalType: \"uint256\", name: \"fromAmount\", type: \"uint256\" },\n { indexed: false, internalType: \"uint256\", name: \"toAmount\", type: \"uint256\" },\n { indexed: false, internalType: \"address\", name: \"from\", type: \"address\" },\n { indexed: true, internalType: \"address\", name: \"to\", type: \"address\" },\n { indexed: false, internalType: \"address\", name: \"rebateTo\", type: \"address\" },\n ],\n name: \"WooRouterSwap\",\n type: \"event\",\n },\n {\n inputs: [],\n name: \"WETH\",\n outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"approveTarget\", type: \"address\" },\n { internalType: \"address\", name: \"swapTarget\", type: \"address\" },\n { internalType: \"address\", name: \"fromToken\", type: \"address\" },\n { internalType: \"address\", name: \"toToken\", type: \"address\" },\n { internalType: \"uint256\", name: \"fromAmount\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"minToAmount\", type: \"uint256\" },\n { internalType: \"address payable\", name: \"to\", type: \"address\" },\n { internalType: \"bytes\", name: \"data\", type: \"bytes\" },\n ],\n name: \"externalSwap\",\n outputs: [{ internalType: \"uint256\", name: \"realToAmount\", type: \"uint256\" }],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"address\", name: \"stuckToken\", type: \"address\" }],\n name: \"inCaseTokenGotStuck\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n name: \"isWhitelisted\",\n outputs: [{ internalType: \"bool\", name: \"\", type: \"bool\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"owner\",\n outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"fromToken\", type: \"address\" },\n { internalType: \"address\", name: \"toToken\", type: \"address\" },\n { internalType: \"uint256\", name: \"fromAmount\", type: \"uint256\" },\n ],\n name: \"querySwap\",\n outputs: [{ internalType: \"uint256\", name: \"toAmount\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"quoteToken\",\n outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"renounceOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"address\", name: \"newPool\", type: \"address\" }],\n name: \"setPool\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"target\", type: \"address\" },\n { internalType: \"bool\", name: \"whitelisted\", type: \"bool\" },\n ],\n name: \"setWhitelisted\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"fromToken\", type: \"address\" },\n { internalType: \"address\", name: \"toToken\", type: \"address\" },\n { internalType: \"uint256\", name: \"fromAmount\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"minToAmount\", type: \"uint256\" },\n { internalType: \"address payable\", name: \"to\", type: \"address\" },\n { internalType: \"address\", name: \"rebateTo\", type: \"address\" },\n ],\n name: \"swap\",\n outputs: [{ internalType: \"uint256\", name: \"realToAmount\", type: \"uint256\" }],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"address\", name: \"newOwner\", type: \"address\" }],\n name: \"transferOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"fromToken\", type: \"address\" },\n { internalType: \"address\", name: \"toToken\", type: \"address\" },\n { internalType: \"uint256\", name: \"fromAmount\", type: \"uint256\" },\n ],\n name: \"tryQuerySwap\",\n outputs: [{ internalType: \"uint256\", name: \"toAmount\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"wooPool\",\n outputs: [{ internalType: \"contract IWooPPV2\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n { stateMutability: \"payable\", type: \"receive\" },\n];\n","import { kyberRouter } from \"./kyber.ts\";\nimport { oneInchRouter } from \"./oneinch.ts\";\nimport { pancakeSwapRouter } from \"./pancakeswap.ts\";\nimport { pangolinRouter } from \"./pangolin.ts\";\nimport { sushiswapRouter } from \"./sushiswap.ts\";\nimport { traderJoeRouter } from \"./traderJoe.ts\";\nimport { uniswapv2Router } from \"./uniswapv2.ts\";\nimport { uniswapv3Router } from \"./uniswapv3.ts\";\nimport { woofiRouter } from \"./woofi.ts\";\n\ntype AbiTypes =\n | typeof kyberRouter\n | typeof oneInchRouter\n | typeof pancakeSwapRouter\n | typeof pangolinRouter\n | typeof sushiswapRouter\n | typeof traderJoeRouter\n | typeof uniswapv2Router\n | typeof uniswapv3Router\n | typeof woofiRouter;\n\nexport enum DEX_CONTRACT_ADDRESS {\n // AVAX\n TRADERJOE = \"0x60aE616a2155Ee3d9A68541Ba4544862310933d4\",\n PANGOLIN = \"0xE54Ca86531e17Ef3616d22Ca28b0D458b6C89106\",\n WOOFI = \"0xC22FBb3133dF781E6C25ea6acebe2D2Bb8CeA2f9\",\n ONEINCH_AVAX = \"0x1111111254fb6c44bAC0beD2854e76F90643097d\",\n KYBER_AVAX = \"0x6131B5fae19EA4f9D964eAc0408E4408b66337b5\",\n\n // BSC\n PANCAKESWAP_BSC = \"0x10ED43C718714eb63d5aA57B78B54704E256024E\",\n\n // ETH\n ONEINCH_ETH = \"0x1111111254fb6c44bac0bed2854e76f90643097d\",\n PANCAKESWAP_ETH = \"0xEfF92A263d31888d860bD50809A8D171709b7b1c\",\n KYBER_ETH = \"0x6131B5fae19EA4f9D964eAc0408E4408b66337b5\",\n SUSHISWAP = \"0xd9e1ce17f2641f24ae83637ab66a2cca9c378b9f\",\n UNISWAP_V2 = \"0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D\",\n UNISWAP_V3 = \"0xE592427A0AEce92De3Edee1F18E0157C05861564\",\n}\n\nexport const lowercasedRouterAbiMapping = {\n // AVAX\n [DEX_CONTRACT_ADDRESS.PANGOLIN.toLowerCase()]: pangolinRouter,\n [DEX_CONTRACT_ADDRESS.WOOFI.toLowerCase()]: woofiRouter,\n [DEX_CONTRACT_ADDRESS.TRADERJOE.toLowerCase()]: traderJoeRouter,\n [DEX_CONTRACT_ADDRESS.ONEINCH_AVAX.toLowerCase()]: oneInchRouter,\n [DEX_CONTRACT_ADDRESS.KYBER_AVAX.toLowerCase()]: kyberRouter,\n // BSC\n [DEX_CONTRACT_ADDRESS.PANCAKESWAP_BSC.toLowerCase()]: pancakeSwapRouter,\n // ETH\n [DEX_CONTRACT_ADDRESS.KYBER_ETH.toLowerCase()]: kyberRouter,\n [DEX_CONTRACT_ADDRESS.SUSHISWAP.toLowerCase()]: sushiswapRouter,\n [DEX_CONTRACT_ADDRESS.PANCAKESWAP_ETH.toLowerCase()]: pancakeSwapRouter,\n [DEX_CONTRACT_ADDRESS.UNISWAP_V2.toLowerCase()]: uniswapv2Router,\n [DEX_CONTRACT_ADDRESS.UNISWAP_V3.toLowerCase()]: uniswapv3Router,\n [DEX_CONTRACT_ADDRESS.ONEINCH_ETH.toLowerCase()]: oneInchRouter,\n} as Record<string, AbiTypes>;\n","export const sushiswap = [\n {\n inputs: [\n { internalType: \"address\", name: \"_ttp\", type: \"address\" },\n { internalType: \"address\", name: \"_weth\", type: \"address\" },\n { internalType: \"address\", name: \"_swapRouter\", type: \"address\" },\n ],\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n anonymous: false,\n inputs: [\n { indexed: false, internalType: \"uint256\", name: \"fee\", type: \"uint256\" },\n { indexed: false, internalType: \"address\", name: \"feeRecipient\", type: \"address\" },\n ],\n name: \"FeeSet\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, internalType: \"address\", name: \"owner\", type: \"address\" },\n { indexed: false, internalType: \"bool\", name: \"active\", type: \"bool\" },\n ],\n name: \"OwnerSet\",\n type: \"event\",\n },\n {\n inputs: [],\n name: \"fee\",\n outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"feeRecipient\",\n outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n name: \"owners\",\n outputs: [{ internalType: \"bool\", name: \"\", type: \"bool\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"_fee\", type: \"uint256\" },\n { internalType: \"address\", name: \"_feeRecipient\", type: \"address\" },\n ],\n name: \"setFee\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"owner\", type: \"address\" },\n { internalType: \"bool\", name: \"active\", type: \"bool\" },\n ],\n name: \"setOwner\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"tcRouter\", type: \"address\" },\n { internalType: \"address\", name: \"tcVault\", type: \"address\" },\n { internalType: \"string\", name: \"tcMemo\", type: \"string\" },\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapIn\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n ],\n name: \"swapOut\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"swapRouter\",\n outputs: [{ internalType: \"contract IUniswapRouterV2\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"tokenTransferProxy\",\n outputs: [\n { internalType: \"contract TSAggregatorTokenTransferProxy\", name: \"\", type: \"address\" },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"weth\",\n outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n { stateMutability: \"payable\", type: \"receive\" },\n];\n","export const traderJoe = [\n {\n inputs: [\n { internalType: \"address\", name: \"_ttp\", type: \"address\" },\n { internalType: \"address\", name: \"_weth\", type: \"address\" },\n { internalType: \"address\", name: \"_swapRouter\", type: \"address\" },\n ],\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n anonymous: false,\n inputs: [\n { indexed: false, internalType: \"uint256\", name: \"fee\", type: \"uint256\" },\n { indexed: false, internalType: \"address\", name: \"feeRecipient\", type: \"address\" },\n ],\n name: \"FeeSet\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, internalType: \"address\", name: \"owner\", type: \"address\" },\n { indexed: false, internalType: \"bool\", name: \"active\", type: \"bool\" },\n ],\n name: \"OwnerSet\",\n type: \"event\",\n },\n {\n inputs: [],\n name: \"fee\",\n outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"feeRecipient\",\n outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n name: \"owners\",\n outputs: [{ internalType: \"bool\", name: \"\", type: \"bool\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"_fee\", type: \"uint256\" },\n { internalType: \"address\", name: \"_feeRecipient\", type: \"address\" },\n ],\n name: \"setFee\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"owner\", type: \"address\" },\n { internalType: \"bool\", name: \"active\", type: \"bool\" },\n ],\n name: \"setOwner\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"tcRouter\", type: \"address\" },\n { internalType: \"address\", name: \"tcVault\", type: \"address\" },\n { internalType: \"string\", name: \"tcMemo\", type: \"string\" },\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapIn\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n ],\n name: \"swapOut\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"swapRouter\",\n outputs: [{ internalType: \"contract IUniswapRouterV2AVAX\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"tokenTransferProxy\",\n outputs: [\n { internalType: \"contract TSAggregatorTokenTransferProxy\", name: \"\", type: \"address\" },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"weth\",\n outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n { stateMutability: \"payable\", type: \"receive\" },\n];\n","export const uniswapV2 = [\n {\n inputs: [\n { internalType: \"address\", name: \"_ttp\", type: \"address\" },\n { internalType: \"address\", name: \"_weth\", type: \"address\" },\n { internalType: \"address\", name: \"_swapRouter\", type: \"address\" },\n ],\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n anonymous: false,\n inputs: [\n { indexed: false, internalType: \"uint256\", name: \"fee\", type: \"uint256\" },\n { indexed: false, internalType: \"address\", name: \"feeRecipient\", type: \"address\" },\n ],\n name: \"FeeSet\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, internalType: \"address\", name: \"owner\", type: \"address\" },\n { indexed: false, internalType: \"bool\", name: \"active\", type: \"bool\" },\n ],\n name: \"OwnerSet\",\n type: \"event\",\n },\n {\n inputs: [],\n name: \"fee\",\n outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"feeRecipient\",\n outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n name: \"owners\",\n outputs: [{ internalType: \"bool\", name: \"\", type: \"bool\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"_fee\", type: \"uint256\" },\n { internalType: \"address\", name: \"_feeRecipient\", type: \"address\" },\n ],\n name: \"setFee\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"owner\", type: \"address\" },\n { internalType: \"bool\", name: \"active\", type: \"bool\" },\n ],\n name: \"setOwner\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"tcRouter\", type: \"address\" },\n { internalType: \"address\", name: \"tcVault\", type: \"address\" },\n { internalType: \"string\", name: \"tcMemo\", type: \"string\" },\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapIn\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n ],\n name: \"swapOut\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"swapRouter\",\n outputs: [{ internalType: \"contract IUniswapRouterV2\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"tokenTransferProxy\",\n outputs: [\n { internalType: \"contract TSAggregatorTokenTransferProxy\", name: \"\", type: \"address\" },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"weth\",\n outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n { stateMutability: \"payable\", type: \"receive\" },\n];\n","export const uniswapV2Leg = [\n {\n inputs: [\n { internalType: \"address\", name: \"_ttp\", type: \"address\" },\n { internalType: \"address\", name: \"_weth\", type: \"address\" },\n { internalType: \"address\", name: \"_swapRouter\", type: \"address\" },\n { internalType: \"address\", name: \"_legToken\", type: \"address\" },\n ],\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n anonymous: false,\n inputs: [\n { indexed: false, internalType: \"uint256\", name: \"fee\", type: \"uint256\" },\n { indexed: false, internalType: \"address\", name: \"feeRecipient\", type: \"address\" },\n ],\n name: \"FeeSet\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, internalType: \"address\", name: \"owner\", type: \"address\" },\n { indexed: false, internalType: \"bool\", name: \"active\", type: \"bool\" },\n ],\n name: \"OwnerSet\",\n type: \"event\",\n },\n {\n inputs: [],\n name: \"fee\",\n outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"feeRecipient\",\n outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"legToken\",\n outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n name: \"owners\",\n outputs: [{ internalType: \"bool\", name: \"\", type: \"bool\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"_fee\", type: \"uint256\" },\n { internalType: \"address\", name: \"_feeRecipient\", type: \"address\" },\n ],\n name: \"setFee\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"owner\", type: \"address\" },\n { internalType: \"bool\", name: \"active\", type: \"bool\" },\n ],\n name: \"setOwner\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"tcRouter\", type: \"address\" },\n { internalType: \"address\", name: \"tcVault\", type: \"address\" },\n { internalType: \"string\", name: \"tcMemo\", type: \"string\" },\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapIn\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n ],\n name: \"swapOut\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"swapRouter\",\n outputs: [{ internalType: \"contract IUniswapRouterV2\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"tokenTransferProxy\",\n outputs: [\n { internalType: \"contract TSAggregatorTokenTransferProxy\", name: \"\", type: \"address\" },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"weth\",\n outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n { stateMutability: \"payable\", type: \"receive\" },\n];\n","export const uniswapV3_100 = [\n {\n inputs: [\n { internalType: \"address\", name: \"_ttp\", type: \"address\" },\n { internalType: \"address\", name: \"_weth\", type: \"address\" },\n { internalType: \"address\", name: \"_swapRouter\", type: \"address\" },\n { internalType: \"uint24\", name: \"_poolFee\", type: \"uint24\" },\n ],\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n anonymous: false,\n inputs: [\n { indexed: false, internalType: \"uint256\", name: \"fee\", type: \"uint256\" },\n { indexed: false, internalType: \"address\", name: \"feeRecipient\", type: \"address\" },\n ],\n name: \"FeeSet\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, internalType: \"address\", name: \"owner\", type: \"address\" },\n { indexed: false, internalType: \"bool\", name: \"active\", type: \"bool\" },\n ],\n name: \"OwnerSet\",\n type: \"event\",\n },\n {\n inputs: [],\n name: \"fee\",\n outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"feeRecipient\",\n outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n name: \"owners\",\n outputs: [{ internalType: \"bool\", name: \"\", type: \"bool\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"poolFee\",\n outputs: [{ internalType: \"uint24\", name: \"\", type: \"uint24\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"_fee\", type: \"uint256\" },\n { internalType: \"address\", name: \"_feeRecipient\", type: \"address\" },\n ],\n name: \"setFee\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"owner\", type: \"address\" },\n { internalType: \"bool\", name: \"active\", type: \"bool\" },\n ],\n name: \"setOwner\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"tcRouter\", type: \"address\" },\n { internalType: \"address\", name: \"tcVault\", type: \"address\" },\n { internalType: \"string\", name: \"tcMemo\", type: \"string\" },\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapIn\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n ],\n name: \"swapOut\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"swapRouter\",\n outputs: [{ internalType: \"contract IUniswapRouterV3\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"tokenTransferProxy\",\n outputs: [\n { internalType: \"contract TSAggregatorTokenTransferProxy\", name: \"\", type: \"address\" },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"weth\",\n outputs: [{ internalType: \"contract IWETH9\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n { stateMutability: \"payable\", type: \"receive\" },\n];\n","export const uniswapV3_500 = [\n {\n inputs: [\n { internalType: \"address\", name: \"_ttp\", type: \"address\" },\n { internalType: \"address\", name: \"_weth\", type: \"address\" },\n { internalType: \"address\", name: \"_swapRouter\", type: \"address\" },\n { internalType: \"uint24\", name: \"_poolFee\", type: \"uint24\" },\n ],\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n anonymous: false,\n inputs: [\n { indexed: false, internalType: \"uint256\", name: \"fee\", type: \"uint256\" },\n { indexed: false, internalType: \"address\", name: \"feeRecipient\", type: \"address\" },\n ],\n name: \"FeeSet\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, internalType: \"address\", name: \"owner\", type: \"address\" },\n { indexed: false, internalType: \"bool\", name: \"active\", type: \"bool\" },\n ],\n name: \"OwnerSet\",\n type: \"event\",\n },\n {\n inputs: [],\n name: \"fee\",\n outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"feeRecipient\",\n outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n name: \"owners\",\n outputs: [{ internalType: \"bool\", name: \"\", type: \"bool\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"poolFee\",\n outputs: [{ internalType: \"uint24\", name: \"\", type: \"uint24\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"_fee\", type: \"uint256\" },\n { internalType: \"address\", name: \"_feeRecipient\", type: \"address\" },\n ],\n name: \"setFee\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"owner\", type: \"address\" },\n { internalType: \"bool\", name: \"active\", type: \"bool\" },\n ],\n name: \"setOwner\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"tcRouter\", type: \"address\" },\n { internalType: \"address\", name: \"tcVault\", type: \"address\" },\n { internalType: \"string\", name: \"tcMemo\", type: \"string\" },\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapIn\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n ],\n name: \"swapOut\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"swapRouter\",\n outputs: [{ internalType: \"contract IUniswapRouterV3\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"tokenTransferProxy\",\n outputs: [\n { internalType: \"contract TSAggregatorTokenTransferProxy\", name: \"\", type: \"address\" },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"weth\",\n outputs: [{ internalType: \"contract IWETH9\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n { stateMutability: \"payable\", type: \"receive\" },\n];\n","export const uniswapV3_3000 = [\n {\n inputs: [\n { internalType: \"address\", name: \"_ttp\", type: \"address\" },\n { internalType: \"address\", name: \"_weth\", type: \"address\" },\n { internalType: \"address\", name: \"_swapRouter\", type: \"address\" },\n { internalType: \"uint24\", name: \"_poolFee\", type: \"uint24\" },\n ],\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n anonymous: false,\n inputs: [\n { indexed: false, internalType: \"uint256\", name: \"fee\", type: \"uint256\" },\n { indexed: false, internalType: \"address\", name: \"feeRecipient\", type: \"address\" },\n ],\n name: \"FeeSet\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, internalType: \"address\", name: \"owner\", type: \"address\" },\n { indexed: false, internalType: \"bool\", name: \"active\", type: \"bool\" },\n ],\n name: \"OwnerSet\",\n type: \"event\",\n },\n {\n inputs: [],\n name: \"fee\",\n outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"feeRecipient\",\n outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n name: \"owners\",\n outputs: [{ internalType: \"bool\", name: \"\", type: \"bool\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"poolFee\",\n outputs: [{ internalType: \"uint24\", name: \"\", type: \"uint24\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"_fee\", type: \"uint256\" },\n { internalType: \"address\", name: \"_feeRecipient\", type: \"address\" },\n ],\n name: \"setFee\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"owner\", type: \"address\" },\n { internalType: \"bool\", name: \"active\", type: \"bool\" },\n ],\n name: \"setOwner\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"tcRouter\", type: \"address\" },\n { internalType: \"address\", name: \"tcVault\", type: \"address\" },\n { internalType: \"string\", name: \"tcMemo\", type: \"string\" },\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapIn\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n ],\n name: \"swapOut\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"swapRouter\",\n outputs: [{ internalType: \"contract IUniswapRouterV3\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"tokenTransferProxy\",\n outputs: [\n { internalType: \"contract TSAggregatorTokenTransferProxy\", name: \"\", type: \"address\" },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"weth\",\n outputs: [{ internalType: \"contract IWETH9\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n { stateMutability: \"payable\", type: \"receive\" },\n];\n","export const uniswapV3_10000 = [\n {\n inputs: [\n { internalType: \"address\", name: \"_ttp\", type: \"address\" },\n { internalType: \"address\", name: \"_weth\", type: \"address\" },\n { internalType: \"address\", name: \"_swapRouter\", type: \"address\" },\n { internalType: \"uint24\", name: \"_poolFee\", type: \"uint24\" },\n ],\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n anonymous: false,\n inputs: [\n { indexed: false, internalType: \"uint256\", name: \"fee\", type: \"uint256\" },\n { indexed: false, internalType: \"address\", name: \"feeRecipient\", type: \"address\" },\n ],\n name: \"FeeSet\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, internalType: \"address\", name: \"owner\", type: \"address\" },\n { indexed: false, internalType: \"bool\", name: \"active\", type: \"bool\" },\n ],\n name: \"OwnerSet\",\n type: \"event\",\n },\n {\n inputs: [],\n name: \"fee\",\n outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"feeRecipient\",\n outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n name: \"owners\",\n outputs: [{ internalType: \"bool\", name: \"\", type: \"bool\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"poolFee\",\n outputs: [{ internalType: \"uint24\", name: \"\", type: \"uint24\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"_fee\", type: \"uint256\" },\n { internalType: \"address\", name: \"_feeRecipient\", type: \"address\" },\n ],\n name: \"setFee\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"owner\", type: \"address\" },\n { internalType: \"bool\", name: \"active\", type: \"bool\" },\n ],\n name: \"setOwner\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"tcRouter\", type: \"address\" },\n { internalType: \"address\", name: \"tcVault\", type: \"address\" },\n { internalType: \"string\", name: \"tcMemo\", type: \"string\" },\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n name: \"swapIn\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n ],\n name: \"swapOut\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"swapRouter\",\n outputs: [{ internalType: \"contract IUniswapRouterV3\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"tokenTransferProxy\",\n outputs: [\n { internalType: \"contract TSAggregatorTokenTransferProxy\", name: \"\", type: \"address\" },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"weth\",\n outputs: [{ internalType: \"contract IWETH9\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n { stateMutability: \"payable\", type: \"receive\" },\n];\n","import { avaxGeneric } from \"./avaxGeneric.ts\";\nimport { avaxWoofi } from \"./avaxWoofi.ts\";\nimport { bscGeneric } from \"./bscGeneric.ts\";\nimport { ethGeneric } from \"./ethGeneric.ts\";\nimport { pancakeV2 } from \"./pancakeV2.ts\";\nimport { pangolin } from \"./pangolin.ts\";\nimport { lowercasedRouterAbiMapping } from \"./routers/index.ts\";\nimport { sushiswap } from \"./sushiswap.ts\";\nimport { traderJoe } from \"./traderJoe.ts\";\nimport { uniswapV2 } from \"./uniswapV2.ts\";\nimport { uniswapV2Leg } from \"./uniswapV2Leg.ts\";\nimport { uniswapV3_100 } from \"./uniswapV3_100.ts\";\nimport { uniswapV3_500 } from \"./uniswapV3_500.ts\";\nimport { uniswapV3_3000 } from \"./uniswapV3_3000.ts\";\nimport { uniswapV3_10000 } from \"./uniswapV3_10000.ts\";\n\ntype AbiTypes =\n | typeof avaxGeneric\n | typeof avaxWoofi\n | typeof bscGeneric\n | typeof ethGeneric\n | typeof sushiswap\n | typeof uniswapV2\n | typeof pancakeV2\n | typeof uniswapV2Leg\n | typeof uniswapV3_100\n | typeof uniswapV3_10000\n | typeof uniswapV3_3000\n | typeof uniswapV3_500;\n\nexport enum AGG_CONTRACT_ADDRESS {\n // AVAX\n PANGOLIN = \"0x942c6dA485FD6cEf255853ef83a149d43A73F18a\",\n AVAX_GENERIC = \"0x7C38b8B2efF28511ECc14a621e263857Fb5771d3\",\n AVAX_WOOFI = \"0x5505BE604dFA8A1ad402A71f8A357fba47F9bf5a\",\n AVAX_TRADER_JOE = \"0x3b7DbdD635B99cEa39D3d95Dbd0217F05e55B212\",\n\n // BSC\n BSC_GENERIC = \"0xB6fA6f1DcD686F4A573Fd243a6FABb4ba36Ba98c\",\n BSC_PANCAKE_V2 = \"0x30912B38618D3D37De3191A4FFE982C65a9aEC2E\",\n\n // ETH\n ETH_GENERIC = \"0xd31f7e39afECEc4855fecc51b693F9A0Cec49fd2\",\n UNISWAP_V2 = \"0x86904Eb2b3c743400D03f929F2246EfA80B91215\",\n SUSHISWAP = \"0xbf365e79aA44A2164DA135100C57FDB6635ae870\",\n UNISWAP_V3_100 = \"0xBd68cBe6c247e2c3a0e36B8F0e24964914f26Ee8\",\n UNISWAP_V3_500 = \"0xe4ddca21881bac219af7f217703db0475d2a9f02\",\n UNISWAP_V3_3000 = \"0x11733abf0cdb43298f7e949c930188451a9a9ef2\",\n UNISWAP_V3_10000 = \"0xb33874810e5395eb49d8bd7e912631db115d5a03\",\n UNISWAP_V2_LEG = \"0x3660dE6C56cFD31998397652941ECe42118375DA\",\n}\n\nexport const lowercasedGenericAbiMappings = {\n [AGG_CONTRACT_ADDRESS.AVAX_GENERIC.toLowerCase()]: avaxGeneric,\n [AGG_CONTRACT_ADDRESS.BSC_GENERIC.toLowerCase()]: bscGeneric,\n [AGG_CONTRACT_ADDRESS.ETH_GENERIC.toLowerCase()]: ethGeneric,\n};\n\nexport const lowercasedContractAbiMapping = {\n ...lowercasedRouterAbiMapping,\n ...lowercasedGenericAbiMappings,\n // AVAX\n [AGG_CONTRACT_ADDRESS.PANGOLIN.toLowerCase()]: pangolin,\n [AGG_CONTRACT_ADDRESS.AVAX_WOOFI.toLowerCase()]: avaxWoofi,\n [AGG_CONTRACT_ADDRESS.AVAX_TRADER_JOE.toLowerCase()]: traderJoe,\n // BSC\n [AGG_CONTRACT_ADDRESS.BSC_PANCAKE_V2.toLowerCase()]: pancakeV2,\n // ETH\n [AGG_CONTRACT_ADDRESS.SUSHISWAP.toLowerCase()]: sushiswap,\n [AGG_CONTRACT_ADDRESS.UNISWAP_V2.toLowerCase()]: uniswapV2,\n [AGG_CONTRACT_ADDRESS.UNISWAP_V2_LEG.toLowerCase()]: uniswapV2Leg,\n [AGG_CONTRACT_ADDRESS.UNISWAP_V3_100.toLowerCase()]: uniswapV3_100,\n [AGG_CONTRACT_ADDRESS.UNISWAP_V3_500.toLowerCase()]: uniswapV3_500,\n [AGG_CONTRACT_ADDRESS.UNISWAP_V3_3000.toLowerCase()]: uniswapV3_3000,\n [AGG_CONTRACT_ADDRESS.UNISWAP_V3_10000.toLowerCase()]: uniswapV3_10000,\n} as Record<string, AbiTypes>;\n","import type { QuoteRoute } from \"@swapkit/helpers\";\n\nimport type { AGG_CONTRACT_ADDRESS } from \"./contracts/index.ts\";\nimport { lowercasedGenericAbiMappings } from \"./contracts/index.ts\";\n\ntype SwapInParams = {\n calldata: QuoteRoute[\"calldata\"];\n recipient: string;\n streamSwap?: boolean;\n contractAddress: AGG_CONTRACT_ADDRESS;\n toChecksumAddress: (address: string) => string;\n};\n\nexport const getSwapInParams = ({\n streamSwap,\n contractAddress,\n recipient,\n toChecksumAddress,\n calldata: {\n amount,\n amountOutMin = \"\",\n data = \"\",\n deadline,\n memo,\n router,\n memoStreamingSwap,\n tcMemo,\n tcRouter,\n tcVault,\n vault,\n token,\n },\n}: SwapInParams) => {\n const isGeneric = !!lowercasedGenericAbiMappings[contractAddress.toLowerCase()];\n\n if (isGeneric && !router) {\n throw new Error(\"Router is required on calldata for swapIn with GenericContract\");\n }\n\n /**\n * Data structure for contract calls\n * GENERIC: tcRouter, tcVault, tcMemo, token, amount, router, data, deadline\n * ETH_UNISWAP: tcRouter, tcVault, tcMemo, token, amount, amountOutMin, deadline\n * AVAX_PANGOLIN: tcRouter, tcVault, tcMemo, token, amount, amountOutMin, deadline\n * AVAX_WOOFI: router, vault, memo, token, amount, amountOutMin, deadline\n */\n\n const baseMemo = tcMemo || memo;\n const transactionMemo = streamSwap ? memoStreamingSwap || baseMemo : baseMemo;\n\n if (!(tcVault || vault)) throw new Error(\"TC Vault is required on calldata\");\n if (!(tcRouter || router)) throw new Error(\"TC Router is required on calldata\");\n if (!transactionMemo) throw new Error(\"TC Memo is required on calldata\");\n if (!token) throw new Error(\"Token is required on calldata\");\n\n const baseParams = [\n // v2 contracts don't have tcVault, tcRouter, tcMemo but vault, router, memo\n toChecksumAddress((tcRouter || router) as string),\n toChecksumAddress((tcVault || vault) as string),\n transactionMemo.replace(\"{recipientAddress}\", recipient),\n toChecksumAddress(token),\n amount,\n ];\n\n const contractParams = isGeneric\n ? [toChecksumAddress(router as string), data, deadline]\n : [amountOutMin, deadline];\n\n return [...baseParams, ...contractParams];\n};\n","import { RequestClient } from \"@swapkit/helpers\";\nimport type { Chain } from \"@swapkit/types\";\nimport { ApiUrl } from \"@swapkit/types\";\n\ntype InboundAddressData = {\n address: string;\n chain: Chain;\n chain_lp_actions_paused: boolean;\n chain_trading_paused: boolean;\n dust_threshold: string;\n gas_rate: string;\n gas_rate_units: string;\n global_trading_paused: boolean;\n halted: boolean;\n outbound_fee: string;\n outbound_tx_size: string;\n pub_key: string;\n router: string;\n}[];\n\nexport const getMayaInboundData = (stagenet: boolean) => {\n const baseUrl = stagenet ? ApiUrl.MayanodeStagenet : ApiUrl.MayanodeMainnet;\n\n return RequestClient.get<InboundAddressData>(`${baseUrl}/mayachain/inbound_addresses`);\n};\n\nexport const getMayaMimirData = (stagenet: boolean) => {\n const baseUrl = stagenet ? ApiUrl.MayanodeStagenet : ApiUrl.MayanodeMainnet;\n\n return RequestClient.get<Record<string, number>>(`${baseUrl}/mayachain/mimir`);\n};\n","import { RequestClient } from \"@swapkit/helpers\";\nimport type { Chain } from \"@swapkit/types\";\nimport { ApiUrl } from \"@swapkit/types\";\n\ntype InboundAddressData = {\n address: string;\n chain: Chain;\n chain_lp_actions_paused: boolean;\n chain_trading_paused: boolean;\n dust_threshold: string;\n gas_rate: string;\n gas_rate_units: string;\n global_trading_paused: boolean;\n halted: boolean;\n outbound_fee: string;\n outbound_tx_size: string;\n pub_key: string;\n router: string;\n}[];\n\nexport const getThorInboundData = (stagenet: boolean) => {\n const baseUrl = stagenet ? ApiUrl.ThornodeStagenet : ApiUrl.ThornodeMainnet;\n\n return RequestClient.get<InboundAddressData>(`${baseUrl}/thorchain/inbound_addresses`);\n};\n\nexport const getThorMimirData = (stagenet: boolean) => {\n const baseUrl = stagenet ? ApiUrl.ThornodeStagenet : ApiUrl.ThornodeMainnet;\n\n return RequestClient.get<Record<string, number>>(`${baseUrl}/thorchain/mimir`);\n};\n","import type { ErrorKeys, QuoteRoute, ThornameRegisterParam } from \"@swapkit/helpers\";\nimport {\n AssetValue,\n SwapKitError,\n SwapKitNumber,\n gasFeeMultiplier,\n getMemoFor,\n getMinAmountByChain,\n} from \"@swapkit/helpers\";\nimport type { CosmosLikeToolbox } from \"@swapkit/toolbox-cosmos\";\nimport type { AVAXToolbox, BSCToolbox, ETHToolbox, EVMToolbox } from \"@swapkit/toolbox-evm\";\nimport type { UTXOToolbox } from \"@swapkit/toolbox-utxo\";\nimport type {\n AddChainWalletParams,\n EVMChain,\n EVMWalletOptions,\n ExtendParams,\n WalletOption,\n} from \"@swapkit/types\";\nimport {\n AGG_SWAP,\n Chain,\n ChainToChainId,\n FeeOption,\n MemoType,\n SWAP_IN,\n SWAP_OUT,\n TCAvalancheDepositABI,\n TCBscDepositABI,\n TCEthereumVaultAbi,\n} from \"@swapkit/types\";\n\nimport type { AGG_CONTRACT_ADDRESS } from \"../aggregator/contracts/index.ts\";\nimport { lowercasedContractAbiMapping } from \"../aggregator/contracts/index.ts\";\nimport { getSwapInParams } from \"../aggregator/getSwapParams.ts\";\n\nimport { getExplorerAddressUrl, getExplorerTxUrl } from \"../helpers/explorerUrls.ts\";\nimport { getMayaMimirData } from \"../helpers/mayanode.js\";\nimport { getThorInboundData, getThorMimirData } from \"../helpers/thornode.ts\";\nimport type {\n CoreTxParams,\n EVMWallet,\n OldWallet,\n SwapWithRouteParams,\n ThorchainWallet,\n WalletMethods,\n} from \"../types.ts\";\n\nconst getEmptyWalletStructure = () =>\n (Object.values(Chain) as Chain[]).reduce(\n (acc, chain) => {\n acc[chain] = null;\n return acc;\n },\n {} as Record<Chain, null>,\n );\n\nconst validateAddressType = ({\n chain,\n address,\n}: {\n chain: Chain;\n address?: string;\n}) => {\n if (!address) return false;\n\n switch (chain) {\n case Chain.Bitcoin:\n // filter out taproot addresses\n return !address.startsWith(\"bc1p\");\n default:\n return true;\n }\n};\n\n/**\n * @deprecated Use SwapKit instead (import { SwapKit } from \"@swapkit/core\")\n */\nexport class SwapKitCore<T = \"\"> {\n public connectedChains: OldWallet = getEmptyWalletStructure();\n public connectedWallets: WalletMethods = getEmptyWalletStructure();\n public readonly stagenet: boolean = false;\n\n constructor({ stagenet }: { stagenet?: boolean } | undefined = {}) {\n this.stagenet = !!stagenet;\n }\n\n getAddress = (chain: Chain) => this.connectedChains[chain]?.address || \"\";\n getExplorerTxUrl = (chain: Chain, txHash: string) => getExplorerTxUrl({ chain, txHash });\n getWallet = <T extends Chain>(chain: Chain) => this.connectedWallets[chain] as WalletMethods[T];\n getExplorerAddressUrl = (chain: Chain, address: string) =>\n getExplorerAddressUrl({ chain, address });\n getBalance = async (chain: Chain, potentialScamFilter?: boolean) => {\n const wallet = await this.getWalletByChain(chain, potentialScamFilter);\n\n return wallet?.balance || [];\n };\n\n swap = async ({\n streamSwap,\n recipient,\n route,\n feeOptionKey = FeeOption.Average,\n // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: <explanation>\n }: SwapWithRouteParams) => {\n const {\n meta: { quoteMode },\n // evmTransactionDetails: contractCallParams,\n } = route as QuoteRoute;\n const evmChain = quoteMode.startsWith(\"ERC20-\")\n ? Chain.Ethereum\n : quoteMode.startsWith(\"ARC20-\")\n ? Chain.Avalanche\n : quoteMode.startsWith(\"BEP20-\")\n ? Chain.BinanceSmartChain\n : undefined;\n\n if (!(route as QuoteRoute).complete) throw new SwapKitError(\"core_swap_route_not_complete\");\n\n // TODO enable when BE is ready\n // if (contractCallParams && evmChain) {\n // const walletMethods = this.connectedWallets[evmChain];\n\n // if (!walletMethods?.call) {\n // throw new SwapKitError('core_wallet_connection_not_found');\n // }\n\n // const { contractAddress, contractMethod, contractParams, contractParamsStreaming } =\n // contractCallParams;\n\n // if (!(streamSwap ? contractParamsStreaming : contractParams)) {\n // throw new SwapKitError('core_swap_route_transaction_not_found');\n // }\n\n // return await walletMethods.call<string>({\n // contractAddress,\n // abi: lowercasedContractAbiMapping[contractAddress.toLowerCase()],\n // funcName: contractMethod,\n // funcParams: streamSwap ? contractParamsStreaming : contractParams,\n // });\n // }\n\n if (AGG_SWAP.includes(quoteMode) && evmChain) {\n const walletMethods = this.connectedWallets[evmChain];\n if (!walletMethods?.sendTransaction) {\n throw new SwapKitError(\"core_wallet_connection_not_found\");\n }\n\n const transaction = streamSwap\n ? (route as QuoteRoute)?.streamingSwap?.transaction\n : (route as QuoteRoute)?.transaction;\n if (!transaction) throw new SwapKitError(\"core_swap_route_transaction_not_found\");\n\n const { data, from, to, value } = (route as QuoteRoute).transaction;\n\n const params = {\n data,\n from,\n to: to.toLowerCase(),\n chainId: BigInt(ChainToChainId[evmChain]),\n value: value ? BigInt(value) : 0n,\n };\n\n return walletMethods.sendTransaction(params, feeOptionKey) as Promise<string>;\n }\n\n if (SWAP_OUT.includes(quoteMode)) {\n if (!(route as QuoteRoute).calldata.fromAsset)\n throw new SwapKitError(\"core_swap_asset_not_recognized\");\n // @ts-expect-error\n const asset = await AssetValue.fromString((route as QuoteRoute).calldata.fromAsset);\n if (!asset) throw new SwapKitError(\"core_swap_asset_not_recognized\");\n\n const { address: recipient } = await this.#getInboundDataByChain(asset.chain);\n const {\n contract: router,\n calldata: { expiration, amountIn, memo, memoStreamingSwap },\n } = route as QuoteRoute;\n\n const assetValue = asset.add(SwapKitNumber.fromBigInt(BigInt(amountIn), asset.decimal));\n const swapMemo = (streamSwap ? memoStreamingSwap || memo : memo) as string;\n\n return this.deposit({\n expiration,\n assetValue,\n memo: swapMemo,\n feeOptionKey,\n router,\n recipient,\n });\n }\n\n if (SWAP_IN.includes(quoteMode) && evmChain) {\n const { calldata, contract: contractAddress } = route as QuoteRoute;\n if (!contractAddress) throw new SwapKitError(\"core_swap_contract_not_found\");\n\n const walletMethods = this.connectedWallets[evmChain];\n const from = this.getAddress(evmChain);\n\n if (!(walletMethods?.sendTransaction && from)) {\n throw new SwapKitError(\"core_wallet_connection_not_found\");\n }\n\n const { getProvider, toChecksumAddress } = await import(\"@swapkit/toolbox-evm\");\n const provider = getProvider(evmChain);\n const abi = lowercasedContractAbiMapping[contractAddress.toLowerCase()];\n\n if (!abi)\n throw new SwapKitError(\"core_swap_contract_not_supported\", {\n contractAddress,\n });\n\n const contract = await walletMethods.createContract?.(contractAddress, abi, provider);\n\n const tx = await contract.getFunction(\"swapIn\").populateTransaction(\n ...getSwapInParams({\n streamSwap,\n toChecksumAddress,\n contractAddress: contractAddress as AGG_CONTRACT_ADDRESS,\n recipient,\n calldata,\n }),\n { from },\n );\n\n return walletMethods.sendTransaction(tx, feeOptionKey) as Promise<string>;\n }\n\n throw new SwapKitError(\"core_swap_quote_mode_not_supported\", { quoteMode });\n };\n\n getWalletByChain = async (chain: Chain, potentialScamFilter?: boolean) => {\n const address = this.getAddress(chain);\n if (!address) return null;\n const defaultBalance = [AssetValue.fromChainOrSignature(chain)];\n const walletType = this.connectedChains[chain]?.walletType as WalletOption;\n\n try {\n const balance = await this.getWallet(chain)?.getBalance(address, potentialScamFilter);\n\n this.connectedChains[chain] = {\n address,\n balance: balance?.length ? balance : defaultBalance,\n walletType,\n };\n\n return { ...this.connectedChains[chain] };\n } catch (error) {\n console.error(error);\n\n return { address, balance: defaultBalance, walletType };\n }\n };\n\n approveAssetValue = (assetValue: AssetValue, contractAddress?: string) =>\n this.#approve({ assetValue, type: \"approve\", contractAddress });\n\n isAssetValueApproved = (assetValue: AssetValue, contractAddress?: string) =>\n this.#approve<boolean>({ assetValue, contractAddress, type: \"checkOnly\" });\n\n validateAddress = ({ address, chain }: { address: string; chain: Chain }) =>\n this.getWallet(chain)?.validateAddress?.(address);\n\n transfer = async (params: CoreTxParams & { router?: string }) => {\n const walletInstance = this.connectedWallets[params.assetValue.chain];\n if (!walletInstance) throw new SwapKitError(\"core_wallet_connection_not_found\");\n\n try {\n return await walletInstance.transfer(this.#prepareTxParams(params));\n } catch (error) {\n throw new SwapKitError(\"core_swap_transaction_error\", error);\n }\n };\n\n deposit = async ({\n assetValue,\n recipient,\n router,\n ...rest\n }: // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: TODO: Refactor\n CoreTxParams & { router?: string }) => {\n const { chain, symbol, ticker } = assetValue;\n const walletInstance = this.connectedWallets[chain];\n const connectedWallet = this.connectedChains[chain];\n const isAddressValidated = await validateAddressType({\n address: connectedWallet?.address,\n chain,\n });\n\n if (!isAddressValidated) {\n throw new SwapKitError(\"core_transaction_invalid_sender_address\");\n }\n\n if (!walletInstance) throw new SwapKitError(\"core_wallet_connection_not_found\");\n\n const params = this.#prepareTxParams({\n assetValue,\n recipient,\n router,\n ...rest,\n });\n\n try {\n switch (chain) {\n case Chain.THORChain:\n case Chain.Maya: {\n const wallet = walletInstance as ThorchainWallet;\n return await (recipient === \"\" ? wallet.deposit(params) : wallet.transfer(params));\n }\n\n case Chain.Ethereum:\n case Chain.BinanceSmartChain:\n case Chain.Avalanche: {\n const { getChecksumAddressFromAsset } = await import(\"@swapkit/toolbox-evm\");\n\n const abi =\n chain === Chain.Avalanche\n ? TCAvalancheDepositABI\n : chain === Chain.BinanceSmartChain\n ? TCBscDepositABI\n : TCEthereumVaultAbi;\n\n const response = await (\n walletInstance as EVMWallet<typeof AVAXToolbox | typeof ETHToolbox | typeof BSCToolbox>\n ).call({\n abi,\n contractAddress:\n router || ((await this.#getInboundDataByChain(chain as EVMChain)).router as string),\n funcName: \"depositWithExpiry\",\n funcParams: [\n recipient,\n getChecksumAddressFromAsset({ chain, symbol, ticker }, chain),\n assetValue.getBaseValue(\"string\"),\n params.memo,\n rest.expiration ||\n Number.parseInt(`${(new Date().getTime() + 15 * 60 * 1000) / 1000}`),\n ],\n txOverrides: {\n from: params.from,\n value: assetValue.isGasAsset ? assetValue.getBaseValue(\"bigint\") : undefined,\n },\n });\n\n return response as string;\n }\n\n default: {\n return await walletInstance.transfer(params);\n }\n }\n } catch (error: any) {\n const errorMessage =\n typeof error === \"string\" ? error.toLowerCase() : error?.message.toLowerCase();\n const isInsufficientFunds = errorMessage?.includes(\"insufficient funds\");\n const isGas = errorMessage?.includes(\"gas\");\n const isServer = errorMessage?.includes(\"server\");\n const isUserRejected = errorMessage?.includes(\"user rejected\");\n const errorKey: ErrorKeys = isInsufficientFunds\n ? \"core_transaction_deposit_insufficient_funds_error\"\n : isGas\n ? \"core_transaction_deposit_gas_error\"\n : isServer\n ? \"core_transaction_deposit_server_error\"\n : isUserRejected\n ? \"core_transaction_user_rejected\"\n : \"core_transaction_deposit_error\";\n\n throw new SwapKitError(errorKey, error);\n }\n };\n\n /**\n * TC related Methods\n */\n createLiquidity = async ({\n runeAssetValue,\n assetValue,\n }: {\n runeAssetValue: AssetValue;\n assetValue: AssetValue;\n }) => {\n if (runeAssetValue.lte(0) || assetValue.lte(0)) {\n throw new SwapKitError(\"core_transaction_create_liquidity_invalid_params\");\n }\n\n let runeTx = \"\";\n let assetTx = \"\";\n\n try {\n runeTx = await this.#depositToPool({\n assetValue: runeAssetValue,\n memo: getMemoFor(MemoType.DEPOSIT, {\n ...assetValue,\n address: this.getAddress(assetValue.chain),\n }),\n });\n } catch (error) {\n throw new SwapKitError(\"core_transaction_create_liquidity_rune_error\", error);\n }\n\n try {\n assetTx = await this.#depositToPool({\n assetValue,\n memo: getMemoFor(MemoType.DEPOSIT, {\n ...assetValue,\n address: this.getAddress(Chain.THORChain),\n }),\n });\n } catch (error) {\n throw new SwapKitError(\"core_transaction_create_liquidity_asset_error\", error);\n }\n\n return { runeTx, assetTx };\n };\n\n addLiquidity = async ({\n runeAssetValue,\n assetValue,\n runeAddr,\n assetAddr,\n isPendingSymmAsset,\n mode = \"sym\",\n }: {\n runeAssetValue: AssetValue;\n assetValue: AssetValue;\n isPendingSymmAsset?: boolean;\n runeAddr?: string;\n assetAddr?: string;\n mode?: \"sym\" | \"rune\" | \"asset\";\n // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: TODO: Refactor\n }) => {\n const { chain, symbol } = assetValue;\n const isSym = mode === \"sym\";\n const runeTransfer = runeAssetValue?.gt(0) && (isSym || mode === \"rune\");\n const assetTransfer = assetValue?.gt(0) && (isSym || mode === \"asset\");\n const includeRuneAddress = isPendingSymmAsset || runeTransfer;\n const runeAddress = includeRuneAddress ? runeAddr || this.getAddress(Chain.THORChain) : \"\";\n const assetAddress = isSym || mode === \"asset\" ? assetAddr || this.getAddress(chain) : \"\";\n\n if (!(runeTransfer || assetTransfer)) {\n throw new SwapKitError(\"core_transaction_add_liquidity_invalid_params\");\n }\n if (includeRuneAddress && !runeAddress) {\n throw new SwapKitError(\"core_transaction_add_liquidity_no_rune_address\");\n }\n\n let runeTx: string | undefined;\n let assetTx: string | undefined;\n\n if (runeTransfer && runeAssetValue) {\n try {\n runeTx = await this.#depositToPool({\n assetValue: runeAssetValue,\n memo: getMemoFor(MemoType.DEPOSIT, {\n chain,\n symbol,\n address: assetAddress,\n }),\n });\n } catch (error) {\n throw new SwapKitError(\"core_transaction_add_liquidity_rune_error\", error);\n }\n }\n\n if (assetTransfer && assetValue) {\n try {\n assetTx = await this.#depositToPool({\n assetValue,\n memo: getMemoFor(MemoType.DEPOSIT, {\n chain,\n symbol,\n address: runeAddress,\n }),\n });\n } catch (error) {\n throw new SwapKitError(\"core_transaction_add_liquidity_asset_error\", error);\n }\n }\n\n return { runeTx, assetTx };\n };\n\n addLiquidityPart = ({\n assetValue,\n poolAddress,\n address,\n symmetric,\n }: {\n assetValue: AssetValue;\n address?: string;\n poolAddress: string;\n symmetric: boolean;\n }) => {\n if (symmetric && !address) {\n throw new SwapKitError(\"core_transaction_add_liquidity_invalid_params\");\n }\n const memo = getMemoFor(MemoType.DEPOSIT, {\n chain: poolAddress.split(\".\")[0] as Chain,\n symbol: poolAddress.split(\".\")[1],\n address: symmetric ? address : \"\",\n });\n\n return this.#depositToPool({ assetValue, memo });\n };\n\n withdraw = ({\n memo,\n assetValue,\n percent,\n from,\n to,\n }: {\n memo?: string;\n assetValue: AssetValue;\n percent: number;\n from: \"sym\" | \"rune\" | \"asset\";\n to: \"sym\" | \"rune\" | \"asset\";\n }) => {\n const targetAsset =\n to === \"rune\" && from !== \"rune\"\n ? AssetValue.fromChainOrSignature(Chain.THORChain)\n : (from === \"sym\" && to === \"sym\") || from === \"rune\" || from === \"asset\"\n ? undefined\n : assetValue;\n\n const value = getMinAmountByChain(from === \"asset\" ? assetValue.chain : Chain.THORChain);\n const memoString =\n memo ||\n getMemoFor(MemoType.WITHDRAW, {\n symbol: assetValue.symbol,\n chain: assetValue.chain,\n ticker: assetValue.ticker,\n basisPoints: Math.min(10000, Math.round(percent * 100)),\n targetAssetString: targetAsset?.toString(),\n singleSide: false,\n });\n\n return this.#depositToPool({ assetValue: value, memo: memoString });\n };\n\n savings = ({\n assetValue,\n memo,\n percent,\n type,\n }: { assetValue: AssetValue; memo?: string } & (\n | { type: \"add\"; percent?: undefined }\n | { type: \"withdraw\"; percent: number }\n )) => {\n const memoType = type === \"add\" ? MemoType.DEPOSIT : MemoType.WITHDRAW;\n const memoString =\n memo ||\n getMemoFor(memoType, {\n ticker: assetValue.ticker,\n symbol: assetValue.symbol,\n chain: assetValue.chain,\n singleSide: true,\n basisPoints: percent ? Math.min(10000, Math.round(percent * 100)) : undefined,\n });\n\n const value =\n memoType === MemoType.DEPOSIT ? assetValue : getMinAmountByChain(assetValue.chain);\n\n return this.#depositToPool({ memo: memoString, assetValue: value });\n };\n\n loan = ({\n assetValue,\n memo,\n minAmount,\n type,\n }: {\n assetValue: AssetValue;\n memo?: string;\n minAmount: AssetValue;\n type: \"open\" | \"close\";\n }) =>\n this.#depositToPool({\n assetValue,\n memo:\n memo ||\n getMemoFor(type === \"open\" ? MemoType.OPEN_LOAN : MemoType.CLOSE_LOAN, {\n asset: assetValue.toString(),\n minAmount: minAmount.toString(),\n address: this.getAddress(assetValue.chain),\n }),\n });\n\n nodeAction = ({\n type,\n assetValue,\n address,\n }: { address: string } & (\n | { type: \"bond\" | \"unbond\"; assetValue: AssetValue }\n | { type: \"leave\"; assetValue?: undefined }\n )) => {\n const memoType =\n type === \"bond\" ? MemoType.BOND : type === \"unbond\" ? MemoType.UNBOND : MemoType.LEAVE;\n const memo = getMemoFor(memoType, {\n address,\n unbondAmount: type === \"unbond\" ? assetValue.getBaseValue(\"number\") : undefined,\n });\n\n return this.#thorchainTransfer({\n memo,\n assetValue: type === \"bond\" ? assetValue : getMinAmountByChain(Chain.THORChain),\n });\n };\n\n registerThorname = ({\n assetValue,\n ...param\n }: ThornameRegisterParam & { assetValue: AssetValue }) =>\n this.#thorchainTransfer({\n assetValue,\n memo: getMemoFor(MemoType.THORNAME_REGISTER, param),\n });\n\n registerMayaname = ({\n assetValue,\n ...param\n }: ThornameRegisterParam & { assetValue: AssetValue }) =>\n this.#mayachainTransfer({\n assetValue,\n memo: getMemoFor(MemoType.THORNAME_REGISTER, param),\n });\n\n extend = ({ wallets, config, apis = {}, rpcUrls = {} }: ExtendParams<T>) => {\n try {\n for (const wallet of wallets) {\n // @ts-expect-error - this is fine as we are extending the class\n this[wallet.connectMethodName] = wallet.connect({\n addChain: this.#addConnectedChain,\n config: config || {},\n apis,\n rpcUrls,\n });\n }\n } catch (error) {\n throw new SwapKitError(\"core_extend_error\", error);\n }\n };\n\n estimateMaxSendableAmount = async ({\n chain,\n params,\n }: {\n chain: Chain;\n params: { from: string; recipient: string; assetValue: AssetValue };\n }) => {\n const walletMethods = this.getWallet<typeof chain>(chain);\n\n switch (chain) {\n case Chain.Arbitrum:\n case Chain.Avalanche:\n case Chain.BinanceSmartChain:\n case Chain.Ethereum:\n case Chain.Optimism:\n case Chain.Polygon: {\n const { estimateMaxSendableAmount } = await import(\"@swapkit/toolbox-evm\");\n return estimateMaxSendableAmount({\n ...params,\n toolbox: walletMethods as EVMToolbox,\n });\n }\n\n case Chain.Bitcoin:\n case Chain.BitcoinCash:\n case Chain.Dogecoin:\n case Chain.Litecoin:\n return (walletMethods as UTXOToolbox).estimateMaxSendableAmount(params);\n\n case Chain.Binance:\n case Chain.THORChain:\n case Chain.Cosmos: {\n const { estimateMaxSendableAmount } = await import(\"@swapkit/toolbox-cosmos\");\n return estimateMaxSendableAmount({\n ...params,\n toolbox: walletMethods as CosmosLikeToolbox,\n });\n }\n\n default:\n throw new SwapKitError(\"core_estimated_max_spendable_chain_not_supported\");\n }\n };\n\n /**\n * Wallet connection methods\n */\n // biome-ignore lint/suspicious/useAwait: Extended methods\n connectXDEFI = async (_chains: Chain[]): Promise<void> => {\n throw new SwapKitError(\"core_wallet_xdefi_not_installed\");\n };\n // biome-ignore lint/suspicious/useAwait: Extended methods\n connectEVMWallet = async (_chains: Chain[] | Chain, _wallet: EVMWalletOptions): Promise<void> => {\n throw new SwapKitError(\"core_wallet_evmwallet_not_installed\");\n };\n // biome-ignore lint/suspicious/useAwait: Extended methods\n connectWalletconnect = async (_chains: Chain[], _options?: any): Promise<void> => {\n throw new SwapKitError(\"core_wallet_walletconnect_not_installed\");\n };\n // biome-ignore lint/suspicious/useAwait: Extended methods\n connectKeepkey = async (_chains: Chain[], _derivationPath: number[][]): Promise<string> => {\n throw new SwapKitError(\"core_wallet_keepkey_not_installed\");\n };\n // biome-ignore lint/suspicious/useAwait: Extended methods\n connectKeystore = async (_chains: Chain[], _phrase: string): Promise<void> => {\n throw new SwapKitError(\"core_wallet_keystore_not_installed\");\n };\n // biome-ignore lint/suspicious/useAwait: Extended methods\n connectLedger = async (_chains: Chain, _derivationPath: number[]): Promise<void> => {\n throw new SwapKitError(\"core_wallet_ledger_not_installed\");\n };\n // biome-ignore lint/suspicious/useAwait: Extended methods\n connectTrezor = async (_chains: Chain, _derivationPath: number[]): Promise<void> => {\n throw new SwapKitError(\"core_wallet_trezor_not_installed\");\n };\n // biome-ignore lint/suspicious/useAwait: Extended methods\n connectKeplr = async (_chain: Chain): Promise<void> => {\n throw new SwapKitError(\"core_wallet_keplr_not_installed\");\n };\n // biome-ignore lint/suspicious/useAwait: Extended methods\n connectOkx = async (_chains: Chain[]): Promise<void> => {\n throw new SwapKitError(\"core_wallet_okx_not_installed\");\n };\n\n disconnectChain = (chain: Chain) => {\n this.connectedChains[chain] = null;\n this.connectedWallets[chain] = null;\n };\n\n #getInboundDataByChain = async (chain: Chain) => {\n switch (chain) {\n case Chain.Maya:\n case Chain.THORChain:\n return { gas_rate: \"0\", router: \"\", address: \"\", halted: false, chain };\n\n default: {\n const inboundData = await getThorInboundData(this.stagenet);\n const chainAddressData = inboundData.find((item) => item.chain === chain);\n\n if (!chainAddressData) throw new SwapKitError(\"core_inbound_data_not_found\");\n if (chainAddressData?.halted) throw new SwapKitError(\"core_chain_halted\");\n\n return chainAddressData;\n }\n }\n };\n\n #addConnectedChain = ({\n chain,\n address,\n balance,\n walletType,\n ...rest\n }: AddChainWalletParams<any>) => {\n this.connectedChains[chain as Chain] = {\n address: address || \"\",\n balance: balance || [],\n walletType: walletType || \"unknown\",\n };\n this.connectedWallets[chain as Chain] = { ...rest } as any;\n };\n\n #approve = async <T = string>({\n assetValue,\n type = \"checkOnly\",\n contractAddress,\n }: {\n assetValue: AssetValue;\n type?: \"checkOnly\" | \"approve\";\n contractAddress?: string;\n }) => {\n const { address, chain, isGasAsset, isSynthetic } = assetValue;\n const isEVMChain = [Chain.Ethereum, Chain.Avalanche, Chain.BinanceSmartChain].includes(chain);\n const isNativeEVM = isEVMChain && isGasAsset;\n\n if (isNativeEVM || !isEVMChain || isSynthetic) return true;\n\n const walletMethods = this.connectedWallets[chain as EVMChain];\n const walletAction = type === \"checkOnly\" ? walletMethods?.isApproved : walletMethods?.approve;\n\n if (!walletAction) throw new SwapKitError(\"core_wallet_connection_not_found\");\n\n const from = this.getAddress(chain);\n\n if (!(address && from)) throw new SwapKitError(\"core_approve_asset_address_or_from_not_found\");\n\n const spenderAddress =\n contractAddress || ((await this.#getInboundDataByChain(chain)).router as string);\n\n return walletAction({\n amount: assetValue.getBaseValue(\"bigint\"),\n assetAddress: address,\n from,\n spenderAddress,\n }) as Promise<T>;\n };\n\n #depositToPool = async ({\n assetValue,\n memo,\n feeOptionKey = FeeOption.Fast,\n }: {\n assetValue: AssetValue;\n memo: string;\n feeOptionKey?: FeeOption;\n }) => {\n const {\n gas_rate,\n router,\n address: poolAddress,\n } = await this.#getInboundDataByChain(assetValue.chain);\n const feeRate = (Number.parseInt(gas_rate) || 0) * gasFeeMultiplier[feeOptionKey];\n\n return this.deposit({\n assetValue,\n recipient: poolAddress,\n memo,\n router,\n feeRate,\n });\n };\n\n #thorchainTransfer = async ({\n memo,\n assetValue,\n }: {\n assetValue: AssetValue;\n memo: string;\n }) => {\n const mimir = await getThorMimirData(this.stagenet);\n\n // check if trading is halted or not\n if (mimir.HALTCHAINGLOBAL >= 1 || mimir.HALTTHORCHAIN >= 1) {\n throw new SwapKitError(\"core_chain_halted\");\n }\n\n return this.deposit({ assetValue, recipient: \"\", memo });\n };\n\n #mayachainTransfer = async ({\n memo,\n assetValue,\n }: {\n assetValue: AssetValue;\n memo: string;\n }) => {\n const mimir = await getMayaMimirData(this.stagenet);\n\n // check if trading is halted or not\n if (mimir.HALTCHAINGLOBAL >= 1 || mimir.HALTTHORCHAIN >= 1) {\n throw new SwapKitError(\"core_chain_halted\");\n }\n\n return this.deposit({ assetValue, recipient: \"\", memo });\n };\n\n #prepareTxParams = ({ assetValue, ...restTxParams }: CoreTxParams & { router?: string }) => ({\n ...restTxParams,\n memo: restTxParams.memo || \"\",\n from: this.getAddress(assetValue.chain),\n assetValue,\n });\n}\n"],"names":["getExplorerTxUrl","chain","txHash","baseUrl","ChainToExplorerUrl","Chain","getExplorerAddressUrl","address","ApproveMode","SwapKit","stagenet","wallets","plugins","config","apis","rpcUrls","connectedWallets","availablePlugins","plugin","name","methods","connectWalletMethods","acc","wallet","addChain","getSwapKitPlugin","pluginName","SwapKitError","connectWallet","approve","assetValue","type","contractAddress","isGasAsset","isSynthetic","isEVMChain","walletMethods","walletAction","from","getAddress","spenderAddress","getWallet","_a","getBalance","getTxUrl","getAddressUrl","validateAddress","_b","getWalletWithBalance","potentialScamFilter","defaultBalance","AssetValue","balance","error","approveAssetValue","isAssetValueApproved","swap","provider","rest","avaxGeneric","avaxWoofi","bscGeneric","ethGeneric","pancakeV2","pangolin","kyberRouter","oneInchRouter","pancakeSwapRouter","pangolinRouter","sushiswapRouter","traderJoeRouter","uniswapv2Router","uniswapv3Router","woofiRouter","lowercasedRouterAbiMapping","sushiswap","traderJoe","uniswapV2","uniswapV2Leg","uniswapV3_100","uniswapV3_500","uniswapV3_3000","uniswapV3_10000","lowercasedGenericAbiMappings","lowercasedContractAbiMapping","getSwapInParams","streamSwap","recipient","toChecksumAddress","amount","amountOutMin","data","deadline","memo","router","memoStreamingSwap","tcMemo","tcRouter","tcVault","vault","token","isGeneric","baseMemo","transactionMemo","baseParams","contractParams","getMayaMimirData","ApiUrl","RequestClient","getThorInboundData","getThorMimirData","getEmptyWalletStructure","validateAddressType","SwapKitCore","__publicField","route","feeOptionKey","FeeOption","quoteMode","evmChain","AGG_SWAP","to","value","params","ChainToChainId","SWAP_OUT","asset","__privateGet","_getInboundDataByChain","expiration","amountIn","SwapKitNumber","swapMemo","SWAP_IN","calldata","getProvider","abi","tx","walletType","_approve","walletInstance","_prepareTxParams","symbol","ticker","connectedWallet","getChecksumAddressFromAsset","TCAvalancheDepositABI","TCBscDepositABI","TCEthereumVaultAbi","errorMessage","isInsufficientFunds","isGas","isServer","isUserRejected","errorKey","runeAssetValue","runeTx","assetTx","_depositToPool","getMemoFor","MemoType","runeAddr","assetAddr","isPendingSymmAsset","mode","isSym","runeTransfer","assetTransfer","includeRuneAddress","runeAddress","assetAddress","poolAddress","symmetric","percent","targetAsset","getMinAmountByChain","memoString","memoType","minAmount","_thorchainTransfer","param","_mayachainTransfer","_addConnectedChain","estimateMaxSendableAmount","_chains","_wallet","_options","_derivationPath","_phrase","_chain","__privateAdd","chainAddressData","item","gas_rate","feeRate","gasFeeMultiplier","mimir","restTxParams"],"mappings":"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AAQ,CAAC;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ,CAAC;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ,CAAC;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ,CAAC;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ,CAAC;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ,CAAC;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ,CAAC;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ,CAAC;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ,CAAC;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ,CAAC;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ,CAAC;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ,CAAC;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ,CAAC;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ,CAAC;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ,CAAC;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ,CAAC;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ,CAAC;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ,CAAC;A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"}
|