@swapkit/core 1.0.0-rc.101 → 1.0.0-rc.103

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":["../../types/dist/index.es.js","../../helpers/dist/index.es.js","../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/thornode.ts","../src/client/old.ts"],"sourcesContent":["const O = [\n { inputs: [], stateMutability: \"nonpayable\", type: \"constructor\" },\n {\n anonymous: !1,\n inputs: [\n { indexed: !0, internalType: \"address\", name: \"owner\", type: \"address\" },\n { indexed: !0, internalType: \"address\", name: \"spender\", type: \"address\" },\n { indexed: !1, internalType: \"uint256\", name: \"value\", type: \"uint256\" }\n ],\n name: \"Approval\",\n type: \"event\"\n },\n {\n anonymous: !1,\n inputs: [\n { indexed: !0, internalType: \"address\", name: \"from\", type: \"address\" },\n { indexed: !0, internalType: \"address\", name: \"to\", type: \"address\" },\n { indexed: !1, internalType: \"uint256\", name: \"value\", type: \"uint256\" }\n ],\n name: \"Transfer\",\n type: \"event\"\n },\n {\n inputs: [\n { internalType: \"address\", name: \"\", type: \"address\" },\n { internalType: \"address\", name: \"\", type: \"address\" }\n ],\n name: \"allowance\",\n outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n { internalType: \"address\", name: \"spender\", type: \"address\" },\n { internalType: \"uint256\", name: \"value\", type: \"uint256\" }\n ],\n name: \"approve\",\n outputs: [{ internalType: \"bool\", name: \"success\", type: \"bool\" }],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n name: \"balanceOf\",\n outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"decimals\",\n outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"name\",\n outputs: [{ internalType: \"string\", name: \"\", type: \"string\" }],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"symbol\",\n outputs: [{ internalType: \"string\", name: \"\", type: \"string\" }],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"totalSupply\",\n outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"value\", type: \"uint256\" }\n ],\n name: \"transfer\",\n outputs: [{ internalType: \"bool\", name: \"success\", type: \"bool\" }],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n { internalType: \"address\", name: \"from\", type: \"address\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"value\", type: \"uint256\" }\n ],\n name: \"transferFrom\",\n outputs: [{ internalType: \"bool\", name: \"success\", type: \"bool\" }],\n stateMutability: \"nonpayable\",\n type: \"function\"\n }\n], h = [\n {\n inputs: [{ internalType: \"address\", name: \"rune\", type: \"address\" }],\n stateMutability: \"nonpayable\",\n type: \"constructor\"\n },\n {\n anonymous: !1,\n inputs: [\n { indexed: !0, internalType: \"address\", name: \"to\", type: \"address\" },\n { indexed: !0, internalType: \"address\", name: \"asset\", type: \"address\" },\n { indexed: !1, internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { indexed: !1, internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"Deposit\",\n type: \"event\"\n },\n {\n anonymous: !1,\n inputs: [\n { indexed: !0, internalType: \"address\", name: \"oldVault\", type: \"address\" },\n { indexed: !0, internalType: \"address\", name: \"newVault\", type: \"address\" },\n { indexed: !1, internalType: \"address\", name: \"asset\", type: \"address\" },\n { indexed: !1, internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { indexed: !1, internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"TransferAllowance\",\n type: \"event\"\n },\n {\n anonymous: !1,\n inputs: [\n { indexed: !0, internalType: \"address\", name: \"vault\", type: \"address\" },\n { indexed: !0, internalType: \"address\", name: \"to\", type: \"address\" },\n { indexed: !1, internalType: \"address\", name: \"asset\", type: \"address\" },\n { indexed: !1, internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { indexed: !1, internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"TransferOut\",\n type: \"event\"\n },\n {\n anonymous: !1,\n inputs: [\n { indexed: !0, internalType: \"address\", name: \"vault\", type: \"address\" },\n { indexed: !1, internalType: \"address\", name: \"target\", type: \"address\" },\n { indexed: !1, internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { indexed: !1, internalType: \"address\", name: \"finalAsset\", type: \"address\" },\n { indexed: !1, internalType: \"address\", name: \"to\", type: \"address\" },\n { indexed: !1, internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { indexed: !1, internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"TransferOutAndCall\",\n type: \"event\"\n },\n {\n anonymous: !1,\n inputs: [\n { indexed: !0, internalType: \"address\", name: \"oldVault\", type: \"address\" },\n { indexed: !0, internalType: \"address\", name: \"newVault\", type: \"address\" },\n {\n components: [\n { internalType: \"address\", name: \"asset\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" }\n ],\n indexed: !1,\n internalType: \"struct THORChain_Router.Coin[]\",\n name: \"coins\",\n type: \"tuple[]\"\n },\n { indexed: !1, internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"VaultTransfer\",\n type: \"event\"\n },\n {\n inputs: [],\n name: \"RUNE\",\n outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n { internalType: \"address payable\", name: \"vault\", type: \"address\" },\n { internalType: \"address\", name: \"asset\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"deposit\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\"\n },\n {\n inputs: [\n { internalType: \"address payable\", name: \"vault\", type: \"address\" },\n { internalType: \"address\", name: \"asset\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { internalType: \"string\", name: \"memo\", type: \"string\" },\n { internalType: \"uint256\", name: \"expiration\", type: \"uint256\" }\n ],\n name: \"depositWithExpiry\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\"\n },\n {\n inputs: [\n { internalType: \"address\", name: \"router\", type: \"address\" },\n { internalType: \"address payable\", name: \"asgard\", type: \"address\" },\n {\n components: [\n { internalType: \"address\", name: \"asset\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" }\n ],\n internalType: \"struct THORChain_Router.Coin[]\",\n name: \"coins\",\n type: \"tuple[]\"\n },\n { internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"returnVaultAssets\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\"\n },\n {\n inputs: [\n { internalType: \"address\", name: \"router\", type: \"address\" },\n { internalType: \"address\", name: \"newVault\", type: \"address\" },\n { internalType: \"address\", name: \"asset\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"transferAllowance\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n { internalType: \"address payable\", name: \"to\", type: \"address\" },\n { internalType: \"address\", name: \"asset\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"transferOut\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\"\n },\n {\n inputs: [\n { internalType: \"address payable\", name: \"aggregator\", type: \"address\" },\n { internalType: \"address\", name: \"finalToken\", type: \"address\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"transferOutAndCall\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\"\n },\n {\n inputs: [\n { internalType: \"address\", name: \"vault\", type: \"address\" },\n { internalType: \"address\", name: \"token\", type: \"address\" }\n ],\n name: \"vaultAllowance\",\n outputs: [{ internalType: \"uint256\", name: \"amount\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\"\n }\n], B = [\n { inputs: [], stateMutability: \"nonpayable\", type: \"constructor\" },\n {\n anonymous: !1,\n inputs: [\n { indexed: !0, internalType: \"address\", name: \"to\", type: \"address\" },\n { indexed: !0, internalType: \"address\", name: \"asset\", type: \"address\" },\n { indexed: !1, internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { indexed: !1, internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"Deposit\",\n type: \"event\"\n },\n {\n anonymous: !1,\n inputs: [\n { indexed: !0, internalType: \"address\", name: \"oldVault\", type: \"address\" },\n { indexed: !0, internalType: \"address\", name: \"newVault\", type: \"address\" },\n { indexed: !1, internalType: \"address\", name: \"asset\", type: \"address\" },\n { indexed: !1, internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { indexed: !1, internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"TransferAllowance\",\n type: \"event\"\n },\n {\n anonymous: !1,\n inputs: [\n { indexed: !0, internalType: \"address\", name: \"vault\", type: \"address\" },\n { indexed: !0, internalType: \"address\", name: \"to\", type: \"address\" },\n { indexed: !1, internalType: \"address\", name: \"asset\", type: \"address\" },\n { indexed: !1, internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { indexed: !1, internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"TransferOut\",\n type: \"event\"\n },\n {\n anonymous: !1,\n inputs: [\n { indexed: !0, internalType: \"address\", name: \"vault\", type: \"address\" },\n { indexed: !1, internalType: \"address\", name: \"target\", type: \"address\" },\n { indexed: !1, internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { indexed: !1, internalType: \"address\", name: \"finalAsset\", type: \"address\" },\n { indexed: !1, internalType: \"address\", name: \"to\", type: \"address\" },\n { indexed: !1, internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { indexed: !1, internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"TransferOutAndCall\",\n type: \"event\"\n },\n {\n anonymous: !1,\n inputs: [\n { indexed: !0, internalType: \"address\", name: \"oldVault\", type: \"address\" },\n { indexed: !0, internalType: \"address\", name: \"newVault\", type: \"address\" },\n {\n components: [\n { internalType: \"address\", name: \"asset\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" }\n ],\n indexed: !1,\n internalType: \"struct AvaxRouter.Coin[]\",\n name: \"coins\",\n type: \"tuple[]\"\n },\n { indexed: !1, internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"VaultTransfer\",\n type: \"event\"\n },\n {\n inputs: [\n { internalType: \"address payable\", name: \"vault\", type: \"address\" },\n { internalType: \"address\", name: \"asset\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"deposit\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\"\n },\n {\n inputs: [\n { internalType: \"address payable\", name: \"vault\", type: \"address\" },\n { internalType: \"address\", name: \"asset\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { internalType: \"string\", name: \"memo\", type: \"string\" },\n { internalType: \"uint256\", name: \"expiration\", type: \"uint256\" }\n ],\n name: \"depositWithExpiry\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\"\n },\n {\n inputs: [\n { internalType: \"address\", name: \"router\", type: \"address\" },\n { internalType: \"address payable\", name: \"asgard\", type: \"address\" },\n {\n components: [\n { internalType: \"address\", name: \"asset\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" }\n ],\n internalType: \"struct AvaxRouter.Coin[]\",\n name: \"coins\",\n type: \"tuple[]\"\n },\n { internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"returnVaultAssets\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\"\n },\n {\n inputs: [\n { internalType: \"address\", name: \"router\", type: \"address\" },\n { internalType: \"address\", name: \"newVault\", type: \"address\" },\n { internalType: \"address\", name: \"asset\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"transferAllowance\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n { internalType: \"address payable\", name: \"to\", type: \"address\" },\n { internalType: \"address\", name: \"asset\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"transferOut\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\"\n },\n {\n inputs: [\n { internalType: \"address payable\", name: \"target\", type: \"address\" },\n { internalType: \"address\", name: \"finalToken\", type: \"address\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"transferOutAndCall\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\"\n },\n {\n inputs: [\n { internalType: \"address\", name: \"vault\", type: \"address\" },\n { internalType: \"address\", name: \"token\", type: \"address\" }\n ],\n name: \"vaultAllowance\",\n outputs: [{ internalType: \"uint256\", name: \"amount\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\"\n }\n], R = [\n { inputs: [], stateMutability: \"nonpayable\", type: \"constructor\" },\n {\n anonymous: !1,\n inputs: [\n { indexed: !0, internalType: \"address\", name: \"to\", type: \"address\" },\n { indexed: !0, internalType: \"address\", name: \"asset\", type: \"address\" },\n { indexed: !1, internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { indexed: !1, internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"Deposit\",\n type: \"event\"\n },\n {\n anonymous: !1,\n inputs: [\n { indexed: !0, internalType: \"address\", name: \"oldVault\", type: \"address\" },\n { indexed: !0, internalType: \"address\", name: \"newVault\", type: \"address\" },\n { indexed: !1, internalType: \"address\", name: \"asset\", type: \"address\" },\n { indexed: !1, internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { indexed: !1, internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"TransferAllowance\",\n type: \"event\"\n },\n {\n anonymous: !1,\n inputs: [\n { indexed: !0, internalType: \"address\", name: \"vault\", type: \"address\" },\n { indexed: !0, internalType: \"address\", name: \"to\", type: \"address\" },\n { indexed: !1, internalType: \"address\", name: \"asset\", type: \"address\" },\n { indexed: !1, internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { indexed: !1, internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"TransferOut\",\n type: \"event\"\n },\n {\n anonymous: !1,\n inputs: [\n { indexed: !0, internalType: \"address\", name: \"vault\", type: \"address\" },\n { indexed: !1, internalType: \"address\", name: \"target\", type: \"address\" },\n { indexed: !1, internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { indexed: !1, internalType: \"address\", name: \"finalAsset\", type: \"address\" },\n { indexed: !1, internalType: \"address\", name: \"to\", type: \"address\" },\n { indexed: !1, internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { indexed: !1, internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"TransferOutAndCall\",\n type: \"event\"\n },\n {\n anonymous: !1,\n inputs: [\n { indexed: !0, internalType: \"address\", name: \"oldVault\", type: \"address\" },\n { indexed: !0, internalType: \"address\", name: \"newVault\", type: \"address\" },\n {\n components: [\n { internalType: \"address\", name: \"asset\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" }\n ],\n indexed: !1,\n internalType: \"struct THORChain_Router.Coin[]\",\n name: \"coins\",\n type: \"tuple[]\"\n },\n { indexed: !1, internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"VaultTransfer\",\n type: \"event\"\n },\n {\n inputs: [\n { internalType: \"address payable\", name: \"vault\", type: \"address\" },\n { internalType: \"address\", name: \"asset\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { internalType: \"string\", name: \"memo\", type: \"string\" },\n { internalType: \"uint256\", name: \"expiration\", type: \"uint256\" }\n ],\n name: \"depositWithExpiry\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\"\n },\n {\n inputs: [\n { internalType: \"address\", name: \"router\", type: \"address\" },\n { internalType: \"address payable\", name: \"asgard\", type: \"address\" },\n {\n components: [\n { internalType: \"address\", name: \"asset\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" }\n ],\n internalType: \"struct THORChain_Router.Coin[]\",\n name: \"coins\",\n type: \"tuple[]\"\n },\n { internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"returnVaultAssets\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\"\n },\n {\n inputs: [\n { internalType: \"address\", name: \"router\", type: \"address\" },\n { internalType: \"address\", name: \"newVault\", type: \"address\" },\n { internalType: \"address\", name: \"asset\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"transferAllowance\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n { internalType: \"address payable\", name: \"to\", type: \"address\" },\n { internalType: \"address\", name: \"asset\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"transferOut\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\"\n },\n {\n inputs: [\n { internalType: \"address payable\", name: \"target\", type: \"address\" },\n { internalType: \"address\", name: \"finalToken\", type: \"address\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"transferOutAndCall\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\"\n },\n {\n inputs: [\n { internalType: \"address\", name: \"vault\", type: \"address\" },\n { internalType: \"address\", name: \"token\", type: \"address\" }\n ],\n name: \"vaultAllowance\",\n outputs: [{ internalType: \"uint256\", name: \"amount\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\"\n }\n];\nvar y = /* @__PURE__ */ ((e) => (e.TC_SUPPORTED_TO_TC_SUPPORTED = \"TC-TC\", e.TC_SUPPORTED_TO_ETH = \"TC-ERC20\", e.TC_SUPPORTED_TO_AVAX = \"TC-ARC20\", e.TC_SUPPORTED_TO_BSC = \"TC-BEP20\", e.ETH_TO_TC_SUPPORTED = \"ERC20-TC\", e.ETH_TO_ETH = \"ERC20-ERC20\", e.ETH_TO_AVAX = \"ERC20-ARC20\", e.ETH_TO_BSC = \"ERC20-BEP20\", e.AVAX_TO_TC_SUPPORTED = \"ARC20-TC\", e.AVAX_TO_ETH = \"ARC20-ERC20\", e.AVAX_TO_AVAX = \"ARC20-ARC20\", e.AVAX_TO_BSC = \"ARC20-BEP20\", e.BSC_TO_TC_SUPPORTED = \"BEP20-TC\", e.BSC_TO_ETH = \"BEP20-ERC20\", e.BSC_TO_AVAX = \"BEP20-ARC20\", e.BSC_TO_BSC = \"BEP20-BEP20\", e))(y || {});\nconst v = [\n \"ERC20-ERC20\",\n \"ARC20-ARC20\",\n \"BEP20-BEP20\"\n /* BSC_TO_BSC */\n], H = [\n \"ERC20-TC\",\n \"ERC20-ARC20\",\n \"ERC20-BEP20\",\n \"ARC20-TC\",\n \"ARC20-ERC20\",\n \"ARC20-BEP20\",\n \"BEP20-TC\",\n \"BEP20-ERC20\",\n \"BEP20-ARC20\"\n /* BSC_TO_AVAX */\n], S = [\n \"TC-TC\",\n \"TC-ERC20\",\n \"TC-ARC20\",\n \"TC-BEP20\"\n /* TC_SUPPORTED_TO_BSC */\n];\nvar a = /* @__PURE__ */ ((e) => (e.Arbitrum = \"ARB\", e.Avalanche = \"AVAX\", e.Binance = \"BNB\", e.BinanceSmartChain = \"BSC\", e.Bitcoin = \"BTC\", e.BitcoinCash = \"BCH\", e.Cosmos = \"GAIA\", e.Dash = \"DASH\", e.Dogecoin = \"DOGE\", e.Ethereum = \"ETH\", e.Kujira = \"KUJI\", e.Litecoin = \"LTC\", e.Maya = \"MAYA\", e.Optimism = \"OP\", e.Polkadot = \"DOT\", e.Chainflip = \"FLIP\", e.Polygon = \"MATIC\", e.THORChain = \"THOR\", e))(a || {}), u = /* @__PURE__ */ ((e) => (e.ARB = \"0x0000000000000000000000000000000000000000\", e.AVAX = \"0x0000000000000000000000000000000000000000\", e.ETH = \"0x0000000000000000000000000000000000000000\", e.BSC = \"0x0000000000000000000000000000000000000000\", e.MATIC = \"0x0000000000000000000000000000000000001010\", e.OP = \"0x4200000000000000000000000000000000000042\", e))(u || {}), o = /* @__PURE__ */ ((e) => (e.ARB = \"m/44'/60'/0'/0\", e.AVAX = \"m/44'/60'/0'/0\", e.BCH = \"m/44'/145'/0'/0\", e.BNB = \"m/44'/714'/0'/0\", e.BSC = \"m/44'/60'/0'/0\", e.BTC = \"m/84'/0'/0'/0\", e.DASH = \"m/44'/5'/0'/0\", e.DOGE = \"m/44'/3'/0'/0\", e.DOT = \"////\", e.ETH = \"m/44'/60'/0'/0\", e.FLIP = \"////\", e.GAIA = \"m/44'/118'/0'/0\", e.KUJI = \"m/44'/118'/0'/0\", e.LTC = \"m/84'/2'/0'/0\", e.MATIC = \"m/44'/60'/0'/0\", e.MAYA = \"m/44'/931'/0'/0\", e.OP = \"m/44'/60'/0'/0\", e.THOR = \"m/44'/931'/0'/0\", e))(o || {});\nconst _ = {\n ARB: [44, 60, 0, 0, 0],\n AVAX: [44, 60, 0, 0, 0],\n BCH: [44, 145, 0, 0, 0],\n BNB: [44, 714, 0, 0, 0],\n BSC: [44, 60, 0, 0, 0],\n BTC: [84, 0, 0, 0, 0],\n DASH: [44, 5, 0, 0, 0],\n DOGE: [44, 3, 0, 0, 0],\n ETH: [44, 60, 0, 0, 0],\n GAIA: [44, 118, 0, 0, 0],\n KUJI: [44, 118, 0, 0, 0],\n LTC: [84, 2, 0, 0, 0],\n MATIC: [44, 60, 0, 0, 0],\n MAYA: [44, 931, 0, 0, 0],\n OP: [44, 60, 0, 0, 0],\n THOR: [44, 931, 0, 0, 0],\n // Polkadot and related network derivation path is not number based\n DOT: [0, 0, 0, 0, 0],\n FLIP: [0, 0, 0, 0, 0]\n};\nvar m = /* @__PURE__ */ ((e) => (e[e.ARB = 18] = \"ARB\", e[e.AVAX = 18] = \"AVAX\", e[e.BCH = 8] = \"BCH\", e[e.BNB = 8] = \"BNB\", e[e.BSC = 18] = \"BSC\", e[e.BTC = 8] = \"BTC\", e[e.DASH = 8] = \"DASH\", e[e.DOGE = 8] = \"DOGE\", e[e.DOT = 10] = \"DOT\", e[e.ETH = 18] = \"ETH\", e[e.FLIP = 18] = \"FLIP\", e[e.GAIA = 6] = \"GAIA\", e[e.KUJI = 6] = \"KUJI\", e[e.LTC = 8] = \"LTC\", e[e.MATIC = 18] = \"MATIC\", e[e.MAYA = 10] = \"MAYA\", e[e.OP = 18] = \"OP\", e[e.THOR = 8] = \"THOR\", e[e.ZEC = 8] = \"ZEC\", e))(m || {});\nconst w = [\n \"DOT\",\n \"FLIP\"\n /* Chainflip */\n], l = [\n \"ETH\",\n \"AVAX\",\n \"BSC\",\n \"ARB\",\n \"OP\",\n \"MATIC\"\n /* Polygon */\n], M = l, T = [\n \"BTC\",\n \"BCH\",\n \"DASH\",\n \"DOGE\",\n \"LTC\"\n /* Litecoin */\n], V = T, c = [\n \"GAIA\",\n \"THOR\",\n \"BNB\"\n /* Binance */\n], L = c, A = [\n \"AVAX\",\n \"BNB\",\n \"BSC\",\n \"BTC\",\n \"BCH\",\n \"GAIA\",\n \"DOGE\",\n \"ETH\",\n \"LTC\",\n \"THOR\"\n /* THORChain */\n], N = A;\nvar i = /* @__PURE__ */ ((e) => (e.Arbitrum = \"42161\", e.ArbitrumHex = \"0xa4b1\", e.Avalanche = \"43114\", e.AvalancheHex = \"0xa86a\", e.Binance = \"Binance-Chain-Tigris\", e.BinanceSmartChain = \"56\", e.BinanceSmartChainHex = \"0x38\", e.Bitcoin = \"bitcoin\", e.BitcoinCash = \"bitcoincash\", e.Chainflip = \"chainflip\", e.Cosmos = \"cosmoshub-4\", e.Dash = \"dash\", e.Dogecoin = \"dogecoin\", e.Kujira = \"kaiyo-1\", e.Ethereum = \"1\", e.EthereumHex = \"0x1\", e.Litecoin = \"litecoin\", e.Maya = \"mayachain-mainnet-v1\", e.MayaStagenet = \"mayachain-stagenet-v1\", e.Optimism = \"10\", e.OptimismHex = \"0xa\", e.Polkadot = \"polkadot\", e.Polygon = \"137\", e.PolygonHex = \"0x89\", e.THORChain = \"thorchain-mainnet-v1\", e.THORChainStagenet = \"thorchain-stagenet-v2\", e))(i || {}), p = /* @__PURE__ */ ((e) => (e.Arbitrum = \"https://arb1.arbitrum.io/rpc\", e.Avalanche = \"https://node-router.thorswap.net/avalanche-c\", e.Binance = \"\", e.BinanceSmartChain = \"https://bsc-dataseed.binance.org\", e.Bitcoin = \"https://node-router.thorswap.net/bitcoin\", e.BitcoinCash = \"https://node-router.thorswap.net/bitcoin-cash\", e.Chainflip = \"wss://mainnet-archive.chainflip.io\", e.Cosmos = \"https://node-router.thorswap.net/cosmos/rpc\", e.Dash = \"https://node-router.thorswap.net/dash\", e.Dogecoin = \"https://node-router.thorswap.net/dogecoin\", e.Ethereum = \"https://node-router.thorswap.net/ethereum\", e.Kujira = \"https://rpc-kujira.synergynodes.com/\", e.Litecoin = \"https://node-router.thorswap.net/litecoin\", e.Maya = \"https://tendermint.mayachain.info\", e.MayaStagenet = \"https://stagenet.tendermint.mayachain.info\", e.Optimism = \"https://mainnet.optimism.io\", e.Polkadot = \"wss://rpc.polkadot.io\", e.Polygon = \"https://polygon-rpc.com\", e.THORChain = \"https://rpc.thorswap.net\", e.THORChainStagenet = \"https://stagenet-rpc.ninerealms.com\", e))(p || {}), f = /* @__PURE__ */ ((e) => (e.Cosmos = \"https://node-router.thorswap.net/cosmos/rest\", e.Kujira = \"https://lcd-kujira.synergynodes.com/\", e.MayanodeMainnet = \"https://mayanode.mayachain.info\", e.MayanodeStagenet = \"https://stagenet.mayanode.mayachain.info\", e.ThornodeMainnet = \"https://thornode.thorswap.net\", e.ThornodeStagenet = \"https://stagenet-thornode.ninerealms.com\", e.ThorswapApi = \"https://api.thorswap.net\", e.ThorswapStatic = \"https://static.thorswap.net\", e))(f || {});\nconst s = Object.values(a), E = Object.keys(a), r = s.reduce(\n (e, n) => {\n const t = E.find((d) => a[d] === n);\n return t && (e[n] = t), e;\n },\n {}\n), k = s.reduce(\n (e, n) => (e[n] = i[r[n]], e),\n {}\n), P = s.reduce(\n (e, n) => (e[n] = p[r[n]], e),\n {}\n), X = s.reduce(\n (e, n) => {\n const t = `${r[n]}Hex`;\n return e[n] = i[t], e;\n },\n {}\n), I = {\n \"0xa4b1\": \"ARB\",\n 42161: \"ARB\",\n \"0xa86a\": \"AVAX\",\n 43114: \"AVAX\",\n \"0x38\": \"BSC\",\n 56: \"BSC\",\n \"Binance-Chain-Tigris\": \"BNB\",\n bitcoincash: \"BCH\",\n bitcoin: \"BTC\",\n chainflip: \"FLIP\",\n \"cosmoshub-4\": \"GAIA\",\n dash: \"DASH\",\n dogecoin: \"DOGE\",\n \"0x1\": \"ETH\",\n \"kaiyo-1\": \"KUJI\",\n 1: \"ETH\",\n litecoin: \"LTC\",\n \"mayachain-stagenet-v1\": \"MAYA\",\n \"mayachain-mainnet-v1\": \"MAYA\",\n \"0xa\": \"OP\",\n 10: \"OP\",\n polkadot: \"DOT\",\n \"0x89\": \"MATIC\",\n 137: \"MATIC\",\n \"thorchain-stagenet-v2\": \"THOR\",\n \"thorchain-mainnet-v1\": \"THOR\"\n /* THORChain */\n}, K = {\n ARB: \"https://arbiscan.io\",\n AVAX: \"https://snowtrace.io\",\n BSC: \"https://bscscan.com\",\n BNB: \"https://explorer.binance.org\",\n BCH: \"https://www.blockchair.com/bitcoin-cash\",\n BTC: \"https://blockchair.com/bitcoin\",\n FLIP: \"https://explorer.polkascan.io/polkadot\",\n GAIA: \"https://cosmos.bigdipper.live\",\n DASH: \"https://blockchair.com/dash\",\n DOGE: \"https://blockchair.com/dogecoin\",\n KUJI: \"https://finder.kujira.network/kaiyo-1\",\n ETH: \"https://etherscan.io\",\n LTC: \"https://blockchair.com/litecoin\",\n MAYA: \"https://www.mayascan.org\",\n OP: \"https://optimistic.etherscan.io\",\n DOT: \"https://explorer.polkascan.io/polkadot\",\n MATIC: \"https://polygonscan.com\",\n THOR: \"https://runescan.io\"\n};\nvar x = /* @__PURE__ */ ((e) => (e.BOND = \"BOND\", e.DEPOSIT = \"+\", e.LEAVE = \"LEAVE\", e.THORNAME_REGISTER = \"~\", e.UNBOND = \"UNBOND\", e.WITHDRAW = \"-\", e.OPEN_LOAN = \"$+\", e.CLOSE_LOAN = \"$-\", e))(x || {}), C = /* @__PURE__ */ ((e) => (e.Average = \"average\", e.Fast = \"fast\", e.Fastest = \"fastest\", e))(C || {}), b = /* @__PURE__ */ ((e) => (e.KEYSTORE = \"KEYSTORE\", e.KEEPKEY = \"KEEPKEY\", e.XDEFI = \"XDEFI\", e.METAMASK = \"METAMASK\", e.COINBASE_WEB = \"COINBASE_WEB\", e.TREZOR = \"TREZOR\", e.TRUSTWALLET_WEB = \"TRUSTWALLET_WEB\", e.LEDGER = \"LEDGER\", e.KEPLR = \"KEPLR\", e.OKX = \"OKX\", e.OKX_MOBILE = \"OKX_MOBILE\", e.BRAVE = \"BRAVE\", e.WALLETCONNECT = \"WALLETCONNECT\", e))(b || {}), g = /* @__PURE__ */ ((e) => (e[e.NoError = 36864] = \"NoError\", e[e.LockedDevice = 21781] = \"LockedDevice\", e[e.TC_NotFound = 65535] = \"TC_NotFound\", e))(g || {});\nexport {\n v as AGG_SWAP,\n f as ApiUrl,\n m as BaseDecimal,\n a as Chain,\n i as ChainId,\n I as ChainIdToChain,\n k as ChainToChainId,\n K as ChainToExplorerUrl,\n X as ChainToHexChainId,\n P as ChainToRPC,\n u as ContractAddress,\n L as CosmosChainList,\n c as CosmosChains,\n o as DerivationPath,\n M as EVMChainList,\n l as EVMChains,\n C as FeeOption,\n g as LedgerErrorCode,\n x as MemoType,\n _ as NetworkDerivationPath,\n y as QuoteMode,\n p as RPCUrl,\n H as SWAP_IN,\n S as SWAP_OUT,\n w as SubstrateChainList,\n B as TCAvalancheDepositABI,\n R as TCBscDepositABI,\n h as TCEthereumVaultAbi,\n N as TCSupportedChainList,\n A as TCSupportedChains,\n V as UTXOChainList,\n T as UTXOChains,\n b as WalletOption,\n O as erc20ABI\n};\n//# sourceMappingURL=index.es.js.map\n","var $e = Object.defineProperty;\nvar ve = (e, t, n) => t in e ? $e(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n;\nvar _ = (e, t, n) => (ve(e, typeof t != \"symbol\" ? t + \"\" : t, n), n), Ie = (e, t, n) => {\n if (!t.has(e))\n throw TypeError(\"Cannot \" + n);\n};\nvar R = (e, t, n) => {\n if (t.has(e))\n throw TypeError(\"Cannot add the same private member more than once\");\n t instanceof WeakSet ? t.add(e) : t.set(e, n);\n};\nvar p = (e, t, n) => (Ie(e, t, \"access private method\"), n);\nimport { FeeOption as K, BaseDecimal as d, Chain as l, EVMChains as Ne, ChainToRPC as Be, MemoType as C, ChainToChainId as De } from \"@swapkit/types\";\nvar F = /* @__PURE__ */ ((e) => (e.Arbitrum = \"ARB\", e.Avalanche = \"AVAX\", e.Binance = \"BNB\", e.BinanceSmartChain = \"BSC\", e.Bitcoin = \"BTC\", e.BitcoinCash = \"BCH\", e.Cosmos = \"GAIA\", e.Dash = \"DASH\", e.Dogecoin = \"DOGE\", e.Ethereum = \"ETH\", e.Kujira = \"KUJI\", e.Litecoin = \"LTC\", e.Maya = \"MAYA\", e.Optimism = \"OP\", e.Polkadot = \"DOT\", e.Chainflip = \"FLIP\", e.Polygon = \"MATIC\", e.THORChain = \"THOR\", e))(F || {}), ne = /* @__PURE__ */ ((e) => (e.Arbitrum = \"42161\", e.ArbitrumHex = \"0xa4b1\", e.Avalanche = \"43114\", e.AvalancheHex = \"0xa86a\", e.Binance = \"Binance-Chain-Tigris\", e.BinanceSmartChain = \"56\", e.BinanceSmartChainHex = \"0x38\", e.Bitcoin = \"bitcoin\", e.BitcoinCash = \"bitcoincash\", e.Chainflip = \"chainflip\", e.Cosmos = \"cosmoshub-4\", e.Dash = \"dash\", e.Dogecoin = \"dogecoin\", e.Kujira = \"kaiyo-1\", e.Ethereum = \"1\", e.EthereumHex = \"0x1\", e.Litecoin = \"litecoin\", e.Maya = \"mayachain-mainnet-v1\", e.MayaStagenet = \"mayachain-stagenet-v1\", e.Optimism = \"10\", e.OptimismHex = \"0xa\", e.Polkadot = \"polkadot\", e.Polygon = \"137\", e.PolygonHex = \"0x89\", e.THORChain = \"thorchain-mainnet-v1\", e.THORChainStagenet = \"thorchain-stagenet-v2\", e))(ne || {}), de = /* @__PURE__ */ ((e) => (e.Arbitrum = \"https://arb1.arbitrum.io/rpc\", e.Avalanche = \"https://node-router.thorswap.net/avalanche-c\", e.Binance = \"\", e.BinanceSmartChain = \"https://bsc-dataseed.binance.org\", e.Bitcoin = \"https://node-router.thorswap.net/bitcoin\", e.BitcoinCash = \"https://node-router.thorswap.net/bitcoin-cash\", e.Chainflip = \"wss://mainnet-archive.chainflip.io\", e.Cosmos = \"https://node-router.thorswap.net/cosmos/rpc\", e.Dash = \"https://node-router.thorswap.net/dash\", e.Dogecoin = \"https://node-router.thorswap.net/dogecoin\", e.Ethereum = \"https://node-router.thorswap.net/ethereum\", e.Kujira = \"https://rpc-kujira.synergynodes.com/\", e.Litecoin = \"https://node-router.thorswap.net/litecoin\", e.Maya = \"https://tendermint.mayachain.info\", e.MayaStagenet = \"https://stagenet.tendermint.mayachain.info\", e.Optimism = \"https://mainnet.optimism.io\", e.Polkadot = \"wss://rpc.polkadot.io\", e.Polygon = \"https://polygon-rpc.com\", e.THORChain = \"https://rpc.thorswap.net\", e.THORChainStagenet = \"https://stagenet-rpc.ninerealms.com\", e))(de || {}), S = /* @__PURE__ */ ((e) => (e.Cosmos = \"https://node-router.thorswap.net/cosmos/rest\", e.Kujira = \"https://lcd-kujira.synergynodes.com/\", e.MayanodeMainnet = \"https://mayanode.mayachain.info\", e.MayanodeStagenet = \"https://stagenet.mayanode.mayachain.info\", e.ThornodeMainnet = \"https://thornode.thorswap.net\", e.ThornodeStagenet = \"https://stagenet-thornode.ninerealms.com\", e.ThorswapApi = \"https://api.thorswap.net\", e.ThorswapStatic = \"https://static.thorswap.net\", e))(S || {});\nconst G = Object.values(F), Ve = Object.keys(F), re = G.reduce(\n (e, t) => {\n const n = Ve.find((r) => F[r] === t);\n return n && (e[t] = n), e;\n },\n {}\n);\nG.reduce(\n (e, t) => (e[t] = ne[re[t]], e),\n {}\n);\nG.reduce(\n (e, t) => (e[t] = de[re[t]], e),\n {}\n);\nG.reduce(\n (e, t) => {\n const n = `${re[t]}Hex`;\n return e[t] = ne[n], e;\n },\n {}\n);\nclass ae extends Error {\n constructor(t, n, r) {\n const s = t.status || t.status === 0 ? t.status : \"\", i = t.statusText || \"\", o = `${s} ${i}`.trim(), c = o ? `status code ${o}` : \"an unknown error\";\n super(`Request failed with ${c}`), Object.defineProperty(this, \"response\", {\n enumerable: !0,\n configurable: !0,\n writable: !0,\n value: void 0\n }), Object.defineProperty(this, \"request\", {\n enumerable: !0,\n configurable: !0,\n writable: !0,\n value: void 0\n }), Object.defineProperty(this, \"options\", {\n enumerable: !0,\n configurable: !0,\n writable: !0,\n value: void 0\n }), this.name = \"HTTPError\", this.response = t, this.request = n, this.options = r;\n }\n}\nclass pe extends Error {\n constructor(t) {\n super(\"Request timed out\"), Object.defineProperty(this, \"request\", {\n enumerable: !0,\n configurable: !0,\n writable: !0,\n value: void 0\n }), this.name = \"TimeoutError\", this.request = t;\n }\n}\nconst M = (e) => e !== null && typeof e == \"object\", x = (...e) => {\n for (const t of e)\n if ((!M(t) || Array.isArray(t)) && t !== void 0)\n throw new TypeError(\"The `options` argument must be an object\");\n return se({}, ...e);\n}, me = (e = {}, t = {}) => {\n const n = new globalThis.Headers(e), r = t instanceof globalThis.Headers, s = new globalThis.Headers(t);\n for (const [i, o] of s.entries())\n r && o === \"undefined\" || o === void 0 ? n.delete(i) : n.set(i, o);\n return n;\n}, se = (...e) => {\n let t = {}, n = {};\n for (const r of e)\n if (Array.isArray(r))\n Array.isArray(t) || (t = []), t = [...t, ...r];\n else if (M(r)) {\n for (let [s, i] of Object.entries(r))\n M(i) && s in t && (i = se(t[s], i)), t = { ...t, [s]: i };\n M(r.headers) && (n = me(n, r.headers), t.headers = n);\n }\n return t;\n}, He = (() => {\n let e = !1, t = !1;\n const n = typeof globalThis.ReadableStream == \"function\", r = typeof globalThis.Request == \"function\";\n return n && r && (t = new globalThis.Request(\"https://empty.invalid\", {\n body: new globalThis.ReadableStream(),\n method: \"POST\",\n // @ts-expect-error - Types are outdated.\n get duplex() {\n return e = !0, \"half\";\n }\n }).headers.has(\"Content-Type\")), e && !t;\n})(), xe = typeof globalThis.AbortController == \"function\", ke = typeof globalThis.ReadableStream == \"function\", Me = typeof globalThis.FormData == \"function\", _e = [\"get\", \"post\", \"put\", \"patch\", \"head\", \"delete\"], Le = {\n json: \"application/json\",\n text: \"text/*\",\n formData: \"multipart/form-data\",\n arrayBuffer: \"*/*\",\n blob: \"*/*\"\n}, J = 2147483647, Te = Symbol(\"stop\"), We = {\n json: !0,\n parseJson: !0,\n searchParams: !0,\n prefixUrl: !0,\n retry: !0,\n timeout: !0,\n hooks: !0,\n throwHttpErrors: !0,\n onDownloadProgress: !0,\n fetch: !0\n}, Ue = {\n method: !0,\n headers: !0,\n body: !0,\n mode: !0,\n credentials: !0,\n cache: !0,\n redirect: !0,\n referrer: !0,\n referrerPolicy: !0,\n integrity: !0,\n keepalive: !0,\n signal: !0,\n window: !0,\n dispatcher: !0,\n duplex: !0\n}, je = (e) => _e.includes(e) ? e.toUpperCase() : e, qe = [\"get\", \"put\", \"head\", \"delete\", \"options\", \"trace\"], Fe = [408, 413, 429, 500, 502, 503, 504], fe = [413, 429, 503], ce = {\n limit: 2,\n methods: qe,\n statusCodes: Fe,\n afterStatusCodes: fe,\n maxRetryAfter: Number.POSITIVE_INFINITY,\n backoffLimit: Number.POSITIVE_INFINITY,\n delay: (e) => 0.3 * 2 ** (e - 1) * 1e3\n}, Ge = (e = {}) => {\n if (typeof e == \"number\")\n return {\n ...ce,\n limit: e\n };\n if (e.methods && !Array.isArray(e.methods))\n throw new Error(\"retry.methods must be an array\");\n if (e.statusCodes && !Array.isArray(e.statusCodes))\n throw new Error(\"retry.statusCodes must be an array\");\n return {\n ...ce,\n ...e,\n afterStatusCodes: fe\n };\n};\nasync function Xe(e, t, n, r) {\n return new Promise((s, i) => {\n const o = setTimeout(() => {\n n && n.abort(), i(new pe(e));\n }, r.timeout);\n r.fetch(e, t).then(s).catch(i).then(() => {\n clearTimeout(o);\n });\n });\n}\nasync function Ke(e, { signal: t }) {\n return new Promise((n, r) => {\n t && (t.throwIfAborted(), t.addEventListener(\"abort\", s, { once: !0 }));\n function s() {\n clearTimeout(i), r(t.reason);\n }\n const i = setTimeout(() => {\n t == null || t.removeEventListener(\"abort\", s), n();\n }, e);\n });\n}\nconst Je = (e, t) => {\n const n = {};\n for (const r in t)\n !(r in Ue) && !(r in We) && !(r in e) && (n[r] = t[r]);\n return n;\n};\nclass W {\n static create(t, n) {\n const r = new W(t, n), s = async () => {\n if (typeof r._options.timeout == \"number\" && r._options.timeout > J)\n throw new RangeError(`The \\`timeout\\` option cannot be greater than ${J}`);\n await Promise.resolve();\n let o = await r._fetch();\n for (const c of r._options.hooks.afterResponse) {\n const a = await c(r.request, r._options, r._decorateResponse(o.clone()));\n a instanceof globalThis.Response && (o = a);\n }\n if (r._decorateResponse(o), !o.ok && r._options.throwHttpErrors) {\n let c = new ae(o, r.request, r._options);\n for (const a of r._options.hooks.beforeError)\n c = await a(c);\n throw c;\n }\n if (r._options.onDownloadProgress) {\n if (typeof r._options.onDownloadProgress != \"function\")\n throw new TypeError(\"The `onDownloadProgress` option must be a function\");\n if (!ke)\n throw new Error(\"Streams are not supported in your environment. `ReadableStream` is missing.\");\n return r._stream(o.clone(), r._options.onDownloadProgress);\n }\n return o;\n }, i = r._options.retry.methods.includes(r.request.method.toLowerCase()) ? r._retry(s) : s();\n for (const [o, c] of Object.entries(Le))\n i[o] = async () => {\n r.request.headers.set(\"accept\", r.request.headers.get(\"accept\") || c);\n const a = (await i).clone();\n if (o === \"json\") {\n if (a.status === 204 || (await a.clone().arrayBuffer()).byteLength === 0)\n return \"\";\n if (n.parseJson)\n return n.parseJson(await a.text());\n }\n return a[o]();\n };\n return i;\n }\n // eslint-disable-next-line complexity\n constructor(t, n = {}) {\n if (Object.defineProperty(this, \"request\", {\n enumerable: !0,\n configurable: !0,\n writable: !0,\n value: void 0\n }), Object.defineProperty(this, \"abortController\", {\n enumerable: !0,\n configurable: !0,\n writable: !0,\n value: void 0\n }), Object.defineProperty(this, \"_retryCount\", {\n enumerable: !0,\n configurable: !0,\n writable: !0,\n value: 0\n }), Object.defineProperty(this, \"_input\", {\n enumerable: !0,\n configurable: !0,\n writable: !0,\n value: void 0\n }), Object.defineProperty(this, \"_options\", {\n enumerable: !0,\n configurable: !0,\n writable: !0,\n value: void 0\n }), this._input = t, this._options = {\n // TODO: credentials can be removed when the spec change is implemented in all browsers. Context: https://www.chromestatus.com/feature/4539473312350208\n credentials: this._input.credentials || \"same-origin\",\n ...n,\n headers: me(this._input.headers, n.headers),\n hooks: se({\n beforeRequest: [],\n beforeRetry: [],\n beforeError: [],\n afterResponse: []\n }, n.hooks),\n method: je(n.method ?? this._input.method),\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n prefixUrl: String(n.prefixUrl || \"\"),\n retry: Ge(n.retry),\n throwHttpErrors: n.throwHttpErrors !== !1,\n timeout: n.timeout ?? 1e4,\n fetch: n.fetch ?? globalThis.fetch.bind(globalThis)\n }, typeof this._input != \"string\" && !(this._input instanceof URL || this._input instanceof globalThis.Request))\n throw new TypeError(\"`input` must be a string, URL, or Request\");\n if (this._options.prefixUrl && typeof this._input == \"string\") {\n if (this._input.startsWith(\"/\"))\n throw new Error(\"`input` must not begin with a slash when using `prefixUrl`\");\n this._options.prefixUrl.endsWith(\"/\") || (this._options.prefixUrl += \"/\"), this._input = this._options.prefixUrl + this._input;\n }\n if (xe) {\n if (this.abortController = new globalThis.AbortController(), this._options.signal) {\n const r = this._options.signal;\n this._options.signal.addEventListener(\"abort\", () => {\n this.abortController.abort(r.reason);\n });\n }\n this._options.signal = this.abortController.signal;\n }\n if (He && (this._options.duplex = \"half\"), this.request = new globalThis.Request(this._input, this._options), this._options.searchParams) {\n const r = \"?\" + (typeof this._options.searchParams == \"string\" ? this._options.searchParams.replace(/^\\?/, \"\") : new URLSearchParams(this._options.searchParams).toString()), s = this.request.url.replace(/(?:\\?.*?)?(?=#|$)/, r);\n (Me && this._options.body instanceof globalThis.FormData || this._options.body instanceof URLSearchParams) && !(this._options.headers && this._options.headers[\"content-type\"]) && this.request.headers.delete(\"content-type\"), this.request = new globalThis.Request(new globalThis.Request(s, { ...this.request }), this._options);\n }\n this._options.json !== void 0 && (this._options.body = JSON.stringify(this._options.json), this.request.headers.set(\"content-type\", this._options.headers.get(\"content-type\") ?? \"application/json\"), this.request = new globalThis.Request(this.request, { body: this._options.body }));\n }\n _calculateRetryDelay(t) {\n if (this._retryCount++, this._retryCount <= this._options.retry.limit && !(t instanceof pe)) {\n if (t instanceof ae) {\n if (!this._options.retry.statusCodes.includes(t.response.status))\n return 0;\n const r = t.response.headers.get(\"Retry-After\");\n if (r && this._options.retry.afterStatusCodes.includes(t.response.status)) {\n let s = Number(r);\n return Number.isNaN(s) ? s = Date.parse(r) - Date.now() : s *= 1e3, this._options.retry.maxRetryAfter !== void 0 && s > this._options.retry.maxRetryAfter ? 0 : s;\n }\n if (t.response.status === 413)\n return 0;\n }\n const n = this._options.retry.delay(this._retryCount);\n return Math.min(this._options.retry.backoffLimit, n);\n }\n return 0;\n }\n _decorateResponse(t) {\n return this._options.parseJson && (t.json = async () => this._options.parseJson(await t.text())), t;\n }\n async _retry(t) {\n try {\n return await t();\n } catch (n) {\n const r = Math.min(this._calculateRetryDelay(n), J);\n if (r !== 0 && this._retryCount > 0) {\n await Ke(r, { signal: this._options.signal });\n for (const s of this._options.hooks.beforeRetry)\n if (await s({\n request: this.request,\n options: this._options,\n error: n,\n retryCount: this._retryCount\n }) === Te)\n return;\n return this._retry(t);\n }\n throw n;\n }\n }\n async _fetch() {\n for (const n of this._options.hooks.beforeRequest) {\n const r = await n(this.request, this._options);\n if (r instanceof Request) {\n this.request = r;\n break;\n }\n if (r instanceof Response)\n return r;\n }\n const t = Je(this.request, this._options);\n return this._options.timeout === !1 ? this._options.fetch(this.request.clone(), t) : Xe(this.request.clone(), t, this.abortController, this._options);\n }\n /* istanbul ignore next */\n _stream(t, n) {\n const r = Number(t.headers.get(\"content-length\")) || 0;\n let s = 0;\n return t.status === 204 ? (n && n({ percent: 1, totalBytes: r, transferredBytes: s }, new Uint8Array()), new globalThis.Response(null, {\n status: t.status,\n statusText: t.statusText,\n headers: t.headers\n })) : new globalThis.Response(new globalThis.ReadableStream({\n async start(i) {\n const o = t.body.getReader();\n n && n({ percent: 0, transferredBytes: 0, totalBytes: r }, new Uint8Array());\n async function c() {\n const { done: a, value: u } = await o.read();\n if (a) {\n i.close();\n return;\n }\n if (n) {\n s += u.byteLength;\n const h = r === 0 ? 0 : s / r;\n n({ percent: h, transferredBytes: s, totalBytes: r }, u);\n }\n i.enqueue(u), await c();\n }\n await c();\n }\n }), {\n status: t.status,\n statusText: t.statusText,\n headers: t.headers\n });\n }\n}\n/*! MIT License © Sindre Sorhus */\nconst z = (e) => {\n const t = (n, r) => W.create(n, x(e, r));\n for (const n of _e)\n t[n] = (r, s) => W.create(r, x(e, s, { method: n }));\n return t.create = (n) => z(x(n)), t.extend = (n) => z(x(e, n)), t.stop = Te, t;\n}, ge = z();\nlet L;\nconst f = {\n CachedPrices: `${S.ThorswapApi}/tokenlist/cached-price`,\n GasRates: `${S.ThorswapApi}/resource-worker/gasPrice/getAll`,\n Quote: `${S.ThorswapApi}/aggregator/tokens/quote`,\n Txn: `${S.ThorswapApi}/apiusage/v2/txn`,\n TokenlistProviders: `${S.ThorswapApi}/tokenlist/providers`,\n TokenList: `${S.ThorswapStatic}/token-list`,\n Thorname: `${S.ThorswapApi}/thorname`\n}, Ae = typeof window < \"u\" ? {} : { referrer: \"https://sk.thorswap.net\", referer: \"https://sk.thorswap.net\" }, le = () => L || (L = ge.create({ headers: Ae }), L), ft = ({ apiKey: e, ...t }) => {\n L = ge.create({\n ...t,\n headers: { ...Ae, ...t.headers, \"x-api-key\": e }\n });\n}, T = {\n get: (e, t) => le().get(e, t).json(),\n post: (e, t) => le().post(e, t).json()\n}, Ye = ({ tokens: e, ...t }) => {\n const n = new URLSearchParams(), r = e.filter(\n (s, i, o) => o.findIndex((c) => c === s) === i\n );\n for (const s of r)\n n.append(\"tokens\", JSON.stringify(s));\n return t.metadata && n.append(\"metadata\", \"true\"), t.lookup && n.append(\"lookup\", \"true\"), t.sparkline && n.append(\"sparkline\", \"true\"), T.post(f.CachedPrices, {\n body: n.toString(),\n headers: { \"Content-Type\": \"application/x-www-form-urlencoded\" }\n });\n}, gt = {\n getCachedPrices: Ye,\n getQuote: (e) => T.get(f.Quote, { searchParams: e }),\n getGasRates: () => T.get(f.GasRates),\n getTxnDetails: (e) => T.get(f.Txn, { searchParams: e }),\n getTokenlistProviders: () => T.get(f.TokenlistProviders),\n getTokenList: (e) => T.get(`${f.TokenList}/${e}.json`),\n getThornameAddresses: (e) => T.get(`${f.Thorname}/${e}`),\n getThornameRegisteredChains: (e) => T.get(`${f.Thorname}/chains/${e}`),\n getThornameRlookup: (e, t) => T.get(`${f.Thorname}/rlookup`, { searchParams: { address: e, chain: t } })\n};\nvar Qe = /* @__PURE__ */ ((e) => (e.SWAP_TC_TO_TC = \"SWAP:TC-TC\", e.SWAP_ETH_TO_TC = \"SWAP:ERC20-TC\", e.SWAP_TC_TO_ETH = \"SWAP:TC-ERC20\", e.SWAP_ETH_TO_ETH = \"SWAP:ERC20-ERC20\", e.SWAP_AVAX_TO_TC = \"SWAP:AVAX-TC\", e.SWAP_TC_TO_AVAX = \"SWAP:TC-AVAX\", e.SWAP_AVAX_TO_AVAX = \"SWAP:AVAX-AVAX\", e.SWAP_ETH_TO_AVAX = \"SWAP:ETH-AVAX\", e.SWAP_AVAX_TO_ETH = \"SWAP:AVAX-ETH\", e.SWAP_TC_TO_GAIA = \"SWAP:TC-GAIA\", e.SWAP_GAIA_TO_TC = \"SWAP:GAIA-TC\", e.SWAP_TC_TO_BNB = \"SWAP:TC-BNB\", e.SWAP_BNB_TO_TC = \"SWAP:BNB-TC\", e.SWAP_TC_TO_BTC = \"SWAP:TC-BTC\", e.SWAP_BTC_TO_TC = \"SWAP:BTC-TC\", e.SWAP_TC_TO_BCH = \"SWAP:TC-BCH\", e.SWAP_BCH_TO_TC = \"SWAP:BCH-TC\", e.SWAP_TC_TO_LTC = \"SWAP:TC-LTC\", e.SWAP_LTC_TO_TC = \"SWAP:LTC-TC\", e.SWAP_TC_TO_DOGE = \"SWAP:TC-DOGE\", e.SWAP_DOGE_TO_TC = \"SWAP:DOGE-TC\", e.TC_STATUS = \"TC:STATUS\", e.TC_TRANSFER = \"TC:TRANSFER\", e.TC_DEPOSIT = \"TC:DEPOSIT\", e.TC_SEND = \"TC:SEND\", e.TC_SWITCH = \"TC:SWITCH\", e.TC_LP_ADD = \"TC:ADDLIQUIDITY\", e.TC_LP_WITHDRAW = \"TC:WITHDRAW\", e.TC_TNS_CREATE = \"TC:TNS-CREATE\", e.TC_TNS_EXTEND = \"TC:TNS-EXTEND\", e.TC_TNS_UPDATE = \"TC:TNS-UPDATE\", e.TC_SAVINGS_ADD = \"TC:ADDSAVINGS\", e.TC_SAVINGS_WITHDRAW = \"TC:WITHDRAWSAVINGS\", e.TC_LENDING_OPEN = \"TC:LENDINGOPEN\", e.TC_LENDING_CLOSE = \"TC:LENDINGCLOSE\", e.ETH_APPROVAL = \"ETH:APPROVAL\", e.ETH_STATUS = \"ETH:STATUS\", e.ETH_TRANSFER_TO_TC = \"ETH:TRANSFER:IN\", e.ETH_TRANSFER_FROM_TC = \"ETH:TRANSFER:OUT\", e.AVAX_APPROVAL = \"AVAX:APPROVAL\", e.AVAX_STATUS = \"AVAX:STATUS\", e.AVAX_TRANSFER_TO_TC = \"AVAX:TRANSFER:IN\", e.AVAX_TRANSFER_FROM_TC = \"AVAX:TRANSFER:OUT\", e.BSC_APPROVAL = \"BSC:APPROVAL\", e.BSC_STATUS = \"BSC:STATUS\", e.BSC_TRANSFER_TO_TC = \"BSC:TRANSFER:IN\", e.BSC_TRANSFER_FROM_TC = \"BSC:TRANSFER:OUT\", e.APPROVAL = \"APPROVAL\", e.STATUS = \"STATUS\", e.TRANSFER_TO_TC = \"TRANSFER:IN\", e.TRANSFER_FROM_TC = \"TRANSFER:OUT\", e.UNSUPPORTED = \"UNSUPPORTED\", e.TC_LENDING = \"TC:LENDING\", e))(Qe || {}), ze = /* @__PURE__ */ ((e) => (e.PENDING = \"pending\", e.SUCCESS = \"success\", e.CANCELLED = \"cancelled\", e.REFUNDED = \"refunded\", e.REPLACED = \"replaced\", e.ERROR = \"error\", e.UNKNOWN = \"unknown\", e.NOT_STARTED = \"not_started\", e.NOT_FOUND = \"not_found\", e.RETRIES_EXCEEDED = \"retries_exceeded\", e.STREAMING = \"streaming\", e))(ze || {}), Ze = /* @__PURE__ */ ((e) => (e[e.NOT_STARTED = 0] = \"NOT_STARTED\", e[e.SUCCESS = 1] = \"SUCCESS\", e[e.REFUNDED = 2] = \"REFUNDED\", e))(Ze || {});\nconst et = \"0x313ce567\", Ce = async ({ chain: e, to: t }) => {\n try {\n const { result: n } = await T.post(Be[e], {\n headers: {\n accept: \"*/*\",\n \"content-type\": \"application/json\",\n \"cache-control\": \"no-cache\"\n },\n body: JSON.stringify({\n id: 44,\n jsonrpc: \"2.0\",\n method: \"eth_call\",\n params: [{ to: t.toLowerCase(), data: et }, \"latest\"]\n })\n });\n return parseInt(BigInt(n).toString());\n } catch (n) {\n return console.error(n), d[e];\n }\n}, tt = (e) => {\n if (e === l.Ethereum)\n return d.ETH;\n const [, t] = e.split(\"-\");\n return t != null && t.startsWith(\"0x\") ? Ce({ chain: l.Ethereum, to: t }) : d.ETH;\n}, nt = (e) => {\n const [, t] = e.split(\"-\");\n return t != null && t.startsWith(\"0x\") ? Ce({ chain: l.Avalanche, to: t.toLowerCase() }) : d.AVAX;\n}, rt = (e) => e === l.BinanceSmartChain ? d.BSC : d.BSC, st = ({ chain: e, symbol: t }) => {\n switch (e) {\n case l.Ethereum:\n return tt(t);\n case l.Avalanche:\n return nt(t);\n case l.BinanceSmartChain:\n return rt(t);\n default:\n return d[e];\n }\n}, At = {\n [K.Average]: 1.2,\n [K.Fast]: 1.5,\n [K.Fastest]: 2\n}, Se = ({ chain: e, symbol: t }) => {\n switch (e) {\n case l.Arbitrum:\n case l.Optimism:\n return t === \"ETH\";\n case l.Maya:\n return t === \"CACAO\";\n case l.Kujira:\n return t === \"KUJI\";\n case l.Cosmos:\n return t === \"ATOM\";\n case l.Polygon:\n return t === \"MATIC\";\n case l.BinanceSmartChain:\n return t === \"BNB\";\n case l.THORChain:\n return t === \"RUNE\";\n default:\n return t === e;\n }\n}, it = (e) => {\n switch (e) {\n case `${l.Ethereum}.THOR`:\n return { identifier: \"ETH.THOR-0xa5f2211b9b8170f694421f2046281775e8468044\", decimal: 18 };\n case `${l.Ethereum}.vTHOR`:\n return { identifier: \"ETH.vTHOR-0x815c23eca83261b6ec689b60cc4a58b54bc24d8d\", decimal: 18 };\n case l.Cosmos:\n return { identifier: \"GAIA.ATOM\", decimal: d[e] };\n case l.THORChain:\n return { identifier: \"THOR.RUNE\", decimal: d[e] };\n case l.BinanceSmartChain:\n return { identifier: \"BSC.BNB\", decimal: d[e] };\n case l.Maya:\n return { identifier: \"MAYA.CACAO\", decimal: d.MAYA };\n case `${l.Maya}.MAYA`:\n return { identifier: \"MAYA.MAYA\", decimal: 4 };\n case `${l.Kujira}.USK`:\n return { identifier: `${l.Kujira}.USK`, decimal: 6 };\n default:\n return { identifier: `${e}.${e}`, decimal: d[e] };\n }\n}, ot = ({ chain: e, symbol: t }) => {\n if (t.includes(\"/\"))\n return \"Synth\";\n switch (e) {\n case l.Cosmos:\n return t === \"ATOM\" ? \"Native\" : l.Cosmos;\n case l.Kujira:\n return t === l.Kujira ? \"Native\" : l.Kujira;\n case l.Binance:\n return t === l.Binance ? \"Native\" : \"BEP2\";\n case l.BinanceSmartChain:\n return t === l.Binance ? \"Native\" : \"BEP20\";\n case l.Ethereum:\n return t === l.Ethereum ? \"Native\" : \"ERC20\";\n case l.Avalanche:\n return t === l.Avalanche ? \"Native\" : l.Avalanche;\n case l.Polygon:\n return t === l.Polygon ? \"Native\" : \"POLYGON\";\n case l.Arbitrum:\n return [l.Ethereum, l.Arbitrum].includes(t) ? \"Native\" : \"ARBITRUM\";\n case l.Optimism:\n return [l.Ethereum, l.Optimism].includes(t) ? \"Native\" : \"OPTIMISM\";\n default:\n return \"Native\";\n }\n}, Ct = (e) => {\n var o;\n const [t, ...n] = e.split(\".\"), r = e.includes(\"/\"), s = n.join(\".\"), i = (o = s == null ? void 0 : s.split(\"-\")) == null ? void 0 : o[0];\n return { chain: t, symbol: s, ticker: i, synth: r };\n}, at = new RegExp(\n /(.)\\1{6}|\\.ORG|\\.NET|\\.FINANCE|\\.COM|WWW|HTTP|\\\\\\\\|\\/\\/|[\\s$%:[\\]]/,\n \"gmi\"\n), ct = (e) => {\n const [t, n] = e.split(\".\");\n if (!Ne.includes(t))\n return !0;\n const [, r] = n.split(\"-\");\n return Se({ chain: t, symbol: n }) || !!r;\n}, St = (e) => e.filter(({ chain: t, value: n, symbol: r }) => {\n const s = `${t}.${r}`;\n return !at.test(s) && ct(s) && n !== \"0\";\n});\nfunction lt({\n liquidityUnits: e,\n poolUnits: t,\n runeDepth: n\n}) {\n const r = m(e), s = m(t), i = m(n), o = r.mul(i), c = s.mul(s).mul(2), a = s.mul(r).mul(2), u = r.mul(r), h = s.mul(s).mul(s);\n return o.mul(c.sub(a).add(u)).div(h);\n}\nfunction ut({\n liquidityUnits: e,\n poolUnits: t,\n assetDepth: n\n}) {\n const r = m(e), s = m(t), i = m(n), o = r.mul(i), c = s.mul(s).mul(2), a = s.mul(r).mul(2), u = r.mul(r), h = o.mul(c.sub(a).add(u)), $ = s.mul(s).mul(s);\n return h.div($);\n}\nfunction bt({\n percent: e,\n runeDepth: t,\n liquidityUnits: n,\n poolUnits: r\n}) {\n return lt({ runeDepth: t, liquidityUnits: n, poolUnits: r }).mul(e);\n}\nfunction yt({\n percent: e,\n assetDepth: t,\n liquidityUnits: n,\n poolUnits: r\n}) {\n return ut({ assetDepth: t, liquidityUnits: n, poolUnits: r }).mul(e);\n}\nfunction m(e) {\n return g.fromBigInt(BigInt(e), d.THOR);\n}\nfunction ht({\n liquidityUnits: e,\n poolUnits: t,\n runeDepth: n,\n assetDepth: r\n}) {\n return {\n assetAmount: m(r).mul(e).div(t),\n runeAmount: m(n).mul(e).div(t)\n };\n}\nfunction wt({\n liquidityUnits: e,\n poolUnits: t,\n runeDepth: n,\n assetDepth: r,\n percent: s\n}) {\n return Object.fromEntries(\n Object.entries(ht({ liquidityUnits: e, poolUnits: t, runeDepth: n, assetDepth: r })).map(\n ([i, o]) => [i, o.mul(s)]\n )\n );\n}\nfunction Rt({\n runeDepth: e,\n poolUnits: t,\n assetDepth: n,\n liquidityUnits: r,\n runeAmount: s,\n assetAmount: i\n}) {\n const o = new g({ value: e, decimal: 8 }), c = new g({ value: n, decimal: 8 }), a = new g({ value: t, decimal: 8 }), u = new g({ value: s, decimal: 8 }), h = new g({ value: i, decimal: 8 }), $ = u.mul(c), ie = h.mul(o), we = u.mul(h), Re = o.mul(c), Ee = a.mul($.add(ie.add(we.mul(2)))), Pe = $.add(ie.add(Re.mul(2))), oe = Ee.div(Pe), X = m(r).add(oe);\n if (oe.getBaseValue(\"number\") === 0)\n return X.div(a).getBaseValue(\"number\");\n const Oe = a.add(X);\n return X.div(Oe).getBaseValue(\"number\");\n}\nfunction Et({\n runeAmount: e,\n assetAmount: t,\n runeDepth: n,\n assetDepth: r\n}) {\n if (e === \"0\" || t === \"0\" || n === \"0\" || r === \"0\")\n return 0;\n const s = m(n), i = m(r), o = m(t), c = m(e), a = o.mul(s).sub(i.mul(c)), u = i.mul(c).add(s.mul(i));\n return Math.abs(a.div(u).getBaseValue(\"number\"));\n}\nconst Pt = (e, t) => {\n switch (e) {\n case C.LEAVE:\n case C.BOND: {\n const { address: n } = t;\n return `${e}:${n}`;\n }\n case C.UNBOND: {\n const { address: n, unbondAmount: r } = t;\n return `${e}:${n}:${r}`;\n }\n case C.THORNAME_REGISTER: {\n const { name: n, chain: r, address: s, owner: i } = t;\n return `${e}:${n}:${r}:${s}${i ? `:${i}` : \"\"}`;\n }\n case C.DEPOSIT: {\n const { chain: n, symbol: r, address: s, singleSide: i } = t;\n return i ? `${e}:${n}/${r}` : `${e}:${((c, a) => {\n switch (c) {\n case l.Litecoin:\n return \"l\";\n case l.Dogecoin:\n return \"d\";\n case l.BitcoinCash:\n return \"c\";\n default:\n return `${c}.${a}`;\n }\n })(n, r)}:${s || \"\"}`;\n }\n case C.WITHDRAW: {\n const { chain: n, ticker: r, symbol: s, basisPoints: i, targetAssetString: o, singleSide: c } = t, a = n === \"ETH\" && r !== \"ETH\" ? `${r}-${s.slice(-3)}` : s, u = !c && o ? `:${o}` : \"\";\n return `${e}:${n}${c ? \"/\" : \".\"}${a}:${i}${u}`;\n }\n case C.OPEN_LOAN:\n case C.CLOSE_LOAN: {\n const { asset: n, address: r } = t;\n return `${e}:${n}:${r}`;\n }\n default:\n return \"\";\n }\n};\nfunction Ot(e) {\n if (e < 0)\n throw new Error(\"Invalid number of year\");\n return 10 + e;\n}\nfunction $t(e) {\n if (e.length > 30)\n return !1;\n const t = /^[a-zA-Z0-9+_-]+$/g;\n return !!e.match(t);\n}\nfunction vt([e, t, n, r, s]) {\n return `${e}'/${t}'/${n}'/${r}${typeof s != \"number\" ? \"\" : `/${s}`}`;\n}\nconst ue = [...Object.values(l), \"TERRA\"];\nfunction dt(e = \"\") {\n const t = e.toUpperCase(), [n] = t.split(\".\");\n if (ue.includes(n))\n return !0;\n const [r] = t.split(\"/\");\n if (ue.includes(r))\n return !0;\n throw new Error(\n `Invalid identifier: ${e}. Expected format: <Chain>.<Ticker> or <Chain>.<Ticker>-<ContractAddress>`\n );\n}\nconst B = 8, y = (e) => 10n ** BigInt(e), v = (e) => Math.log10(parseFloat(e.toString()));\nfunction U({\n value: e,\n bigIntDecimal: t = B,\n decimal: n = B\n}) {\n if (n === 0)\n return e.toString();\n const r = e < 0n;\n let s = e.toString().substring(r ? 1 : 0);\n const i = n - (s.length - 1);\n i > 0 && (s = \"0\".repeat(i) + s);\n const o = s.length - n;\n let c = s.slice(-n);\n return parseInt(c[t]) >= 5 ? c = `${c.substring(0, t - 1)}${(parseInt(c[t - 1]) + 1).toString()}` : c = c.substring(0, t), `${r ? \"-\" : \"\"}${s.slice(0, o)}.${c}`.replace(\n /\\.?0*$/,\n \"\"\n );\n}\nvar w, I, b, E, j, be, V, Z, H, ee;\nconst q = class q {\n constructor(t) {\n R(this, w);\n R(this, b);\n R(this, j);\n R(this, V);\n R(this, H);\n _(this, \"decimalMultiplier\", 10n ** 8n);\n _(this, \"bigIntValue\", 0n);\n _(this, \"decimal\");\n const n = te(t), r = typeof t == \"object\";\n this.decimal = r ? t.decimal : void 0, this.decimalMultiplier = r && \"decimalMultiplier\" in t ? t.decimalMultiplier : y(Math.max(he(k(n)), this.decimal || 0)), p(this, j, be).call(this, n);\n }\n static fromBigInt(t, n) {\n return new q({\n decimal: n,\n value: U({ value: t, bigIntDecimal: n, decimal: n })\n });\n }\n static shiftDecimals({\n value: t,\n from: n,\n to: r\n }) {\n return q.fromBigInt(\n t.getBaseValue(\"bigint\") * y(r) / y(n),\n r\n );\n }\n set(t) {\n return new this.constructor({ decimal: this.decimal, value: t, identifier: this.toString() });\n }\n add(...t) {\n return p(this, w, I).call(this, \"add\", ...t);\n }\n sub(...t) {\n return p(this, w, I).call(this, \"sub\", ...t);\n }\n mul(...t) {\n return p(this, w, I).call(this, \"mul\", ...t);\n }\n div(...t) {\n return p(this, w, I).call(this, \"div\", ...t);\n }\n gt(t) {\n return p(this, b, E).call(this, \"gt\", t);\n }\n gte(t) {\n return p(this, b, E).call(this, \"gte\", t);\n }\n lt(t) {\n return p(this, b, E).call(this, \"lt\", t);\n }\n lte(t) {\n return p(this, b, E).call(this, \"lte\", t);\n }\n eqValue(t) {\n return p(this, b, E).call(this, \"eqValue\", t);\n }\n // @ts-expect-error False positive\n getValue(t) {\n const n = this.formatBigIntToSafeValue(\n this.bigIntValue,\n this.decimal || v(this.decimalMultiplier)\n );\n switch (t) {\n case \"number\":\n return Number(n);\n case \"string\":\n return n;\n case \"bigint\":\n return this.bigIntValue * 10n ** BigInt(this.decimal || 8n) / this.decimalMultiplier;\n }\n }\n // @ts-expect-error\n getBaseValue(t) {\n const n = this.decimalMultiplier / y(this.decimal || d.THOR), r = this.bigIntValue / n;\n switch (t) {\n case \"number\":\n return Number(r);\n case \"string\":\n return r.toString();\n case \"bigint\":\n return r;\n }\n }\n getBigIntValue(t, n) {\n if (!n && typeof t == \"object\")\n return t.bigIntValue;\n const r = te(t), s = k(r);\n return s === \"0\" || s === \"undefined\" ? 0n : p(this, H, ee).call(this, s, n);\n }\n toSignificant(t = 6) {\n const [n, r] = this.getValue(\"string\").split(\".\"), s = n || \"\", i = r || \"\";\n if ((parseInt(s) ? s.length + i.length : i.length) <= t)\n return this.getValue(\"string\");\n if (s.length >= t)\n return s.slice(0, t).padEnd(s.length, \"0\");\n if (parseInt(s))\n return `${s}.${i.slice(0, t - s.length)}`.padEnd(\n t - s.length,\n \"0\"\n );\n const c = parseInt(i), a = `${c}`.slice(0, t);\n return `0.${a.padStart(\n i.length - `${c}`.length + a.length,\n \"0\"\n )}`;\n }\n toFixed(t = 6) {\n const [n, r] = this.getValue(\"string\").split(\".\"), s = n || \"\", i = r || \"\";\n if (parseInt(s))\n return `${s}.${i.slice(0, t)}`.padEnd(t, \"0\");\n const o = parseInt(i), c = `${o}`.slice(0, t);\n return `0.${c.padStart(\n i.length - `${o}`.length + c.length,\n \"0\"\n )}`;\n }\n toAbbreviation(t = 2) {\n const n = this.getValue(\"number\"), r = [\"\", \"K\", \"M\", \"B\", \"T\", \"Q\", \"Qi\", \"S\"], s = Math.floor(Math.log10(Math.abs(n)) / 3), i = r[s];\n if (!i)\n return this.getValue(\"string\");\n const o = 10 ** (s * 3);\n return `${(n / o).toFixed(t)}${i}`;\n }\n toCurrency(t = \"$\", {\n currencyPosition: n = \"start\",\n decimal: r = 2,\n decimalSeparator: s = \".\",\n thousandSeparator: i = \",\"\n } = {}) {\n const o = this.getValue(\"number\"), [c, a = \"\"] = o.toFixed(6).split(\".\"), u = c.replace(/\\B(?=(\\d{3})+(?!\\d))/g, i), h = c || a ? c === \"0\" ? `${parseFloat(`0.${a}`)}`.replace(\".\", s) : `${u}${parseInt(a) ? `${s}${a.slice(0, r)}` : \"\"}` : \"0.00\";\n return `${n === \"start\" ? t : \"\"}${h}${n === \"end\" ? t : \"\"}`;\n }\n formatBigIntToSafeValue(t, n) {\n const r = n || this.decimal || B, s = Math.max(\n r,\n v(this.decimalMultiplier)\n ), i = t < 0n, o = t.toString().substring(i ? 1 : 0), c = s - (o.length - 1), a = c > 0 ? \"0\".repeat(c) + o : o, u = a.length - s;\n let h = a.slice(-s);\n return parseInt(h[r]) >= 5 ? h = `${h.substring(0, r - 1)}${(parseInt(h[r - 1]) + 1).toString()}` : h = h.substring(0, r), `${i ? \"-\" : \"\"}${a.slice(\n 0,\n u\n )}.${h}`.replace(/\\.?0*$/, \"\");\n }\n};\nw = new WeakSet(), I = function(t, ...n) {\n const r = p(this, V, Z).call(this, this, ...n), s = Math.max(r, v(this.decimalMultiplier)), i = y(s), o = n.reduce(\n (a, u) => {\n const h = this.getBigIntValue(u, s);\n switch (t) {\n case \"add\":\n return a + h;\n case \"sub\":\n return a - h;\n case \"mul\":\n return a * h / i;\n case \"div\": {\n if (h === 0n)\n throw new RangeError(\"Division by zero\");\n return a * i / h;\n }\n default:\n return a;\n }\n },\n //normalize is to precision multiplier base\n this.bigIntValue * i / this.decimalMultiplier\n ), c = U({\n bigIntDecimal: s,\n decimal: s,\n value: o\n });\n return new this.constructor({\n decimalMultiplier: y(s),\n decimal: this.decimal,\n value: c,\n identifier: this.toString()\n });\n}, b = new WeakSet(), E = function(t, ...n) {\n const r = p(this, V, Z).call(this, this, ...n), s = this.getBigIntValue(n[0], r), i = this.getBigIntValue(this, r);\n switch (t) {\n case \"gt\":\n return i > s;\n case \"gte\":\n return i >= s;\n case \"lt\":\n return i < s;\n case \"lte\":\n return i <= s;\n case \"eqValue\":\n return i === s;\n }\n}, j = new WeakSet(), be = function(t) {\n const n = k(t) || \"0\";\n this.bigIntValue = p(this, H, ee).call(this, n);\n}, V = new WeakSet(), Z = function(...t) {\n const n = t.map((r) => typeof r == \"object\" ? r.decimal || v(r.decimalMultiplier) : he(k(r))).filter(Boolean);\n return Math.max(...n, B);\n}, H = new WeakSet(), ee = function(t, n) {\n const r = n ? y(n) : this.decimalMultiplier, s = v(r), [i = \"\", o = \"\"] = t.split(\".\");\n return BigInt(`${i}${o.padEnd(s, \"0\")}`);\n};\nlet D = q;\nconst pt = Intl.NumberFormat(\"fullwide\", {\n useGrouping: !1,\n maximumFractionDigits: 20\n});\nfunction k(e) {\n const n = `${typeof e == \"number\" ? pt.format(e) : te(e)}`.replaceAll(\",\", \".\").split(\".\");\n return n.length > 1 ? `${n.slice(0, -1).join(\"\")}.${n.at(-1)}` : n[0];\n}\nfunction he(e) {\n var n;\n const t = ((n = e.split(\".\")[1]) == null ? void 0 : n.length) || 0;\n return Math.max(t, B);\n}\nfunction te(e) {\n return typeof e == \"object\" ? \"getValue\" in e ? e.getValue(\"string\") : e.value : e;\n}\nclass g extends D {\n eq(t) {\n return this.eqValue(t);\n }\n static fromBigInt(t, n) {\n return new g({\n decimal: n,\n value: U({ value: t, bigIntDecimal: n, decimal: n })\n });\n }\n}\nconst P = /* @__PURE__ */ new Map();\nclass A extends D {\n constructor({\n value: n,\n decimal: r,\n tax: s,\n chain: i,\n symbol: o,\n identifier: c\n }) {\n super(typeof n == \"object\" ? n : { decimal: r, value: n });\n _(this, \"address\");\n _(this, \"chain\");\n _(this, \"isGasAsset\", !1);\n _(this, \"isSynthetic\", !1);\n _(this, \"symbol\");\n _(this, \"tax\");\n _(this, \"ticker\");\n _(this, \"type\");\n const a = N(c || `${i}.${o}`);\n this.type = ot(a), this.tax = s, this.chain = a.chain, this.ticker = a.ticker, this.symbol = a.symbol, this.address = a.address, this.isSynthetic = a.isSynthetic, this.isGasAsset = a.isGasAsset;\n }\n toString() {\n return this.isSynthetic ? this.symbol : `${this.chain}.${this.symbol}`;\n }\n toUrl() {\n return this.isSynthetic ? `${this.chain}.${this.symbol.replace(\"/\", \".\")}` : this.toString();\n }\n eq({ chain: n, symbol: r }) {\n return this.chain === n && this.symbol === r;\n }\n chainId() {\n return De[this.chain];\n }\n // THOR.RUNE\n // THOR.ETH.ETH\n // ETH.THOR-0x1234567890\n static fromUrl(n, r = 0) {\n const [s, i, o] = n.split(\".\");\n if (!(s && i))\n throw new Error(\"Invalid asset url\");\n const c = s === l.THORChain && o ? `${s}.${i}/${o}` : n;\n return Y(c, r);\n }\n static fromString(n, r = 0) {\n return Y(n, r);\n }\n static fromIdentifier(n, r = 0) {\n return Y(n, r);\n }\n static fromStringSync(n, r = 0) {\n const { chain: s, isSynthetic: i } = N(n), o = P.get(n.toUpperCase());\n if (i)\n return Q(n, r);\n const { tax: c, decimal: a, identifier: u } = o || {\n decimal: d[s],\n identifier: n\n };\n return new A({\n tax: c,\n value: O(r, a),\n identifier: i ? n : u,\n decimal: i ? 8 : a\n });\n }\n static async fromStringWithBase(n, r = 0, s = d.THOR) {\n const i = D.shiftDecimals({\n value: g.fromBigInt(BigInt(r)),\n from: 0,\n to: s\n }).getBaseValue(\"string\");\n return (await A.fromString(n, r)).set(i);\n }\n static fromStringWithBaseSync(n, r = 0, s = d.THOR) {\n const { chain: i, isSynthetic: o } = N(n), c = P.get(n.toUpperCase());\n if (o)\n return Q(n, r);\n const { tax: a, decimal: u, identifier: h } = c || {\n decimal: d[i],\n identifier: n\n };\n return new A({\n tax: a,\n value: O(BigInt(r), s),\n identifier: h,\n decimal: u\n });\n }\n static fromIdentifierSync(n, r = 0) {\n const { chain: s, isSynthetic: i } = N(n), o = P.get(n);\n if (i)\n return Q(n, r);\n const { tax: c, decimal: a, identifier: u } = o || {\n decimal: d[s],\n identifier: n\n };\n return new A({ tax: c, decimal: a, identifier: u, value: O(r, a) });\n }\n static fromChainOrSignature(n, r = 0) {\n const { decimal: s, identifier: i } = it(n);\n return new A({ value: O(r, s), decimal: s, identifier: i });\n }\n static loadStaticAssets() {\n return new Promise(\n (n, r) => {\n try {\n import(\"@swapkit/tokens\").then((s) => {\n for (const i of Object.values(s))\n for (const { identifier: o, chain: c, ...a } of i.tokens)\n P.set(o.toUpperCase(), {\n identifier: o,\n decimal: \"decimals\" in a ? a.decimals : d[c]\n });\n n({ ok: !0 });\n });\n } catch (s) {\n console.error(s), r({\n ok: !1,\n error: s,\n message: \"Couldn't load static assets. Ensure you have installed @swapkit/tokens package\"\n });\n }\n }\n );\n }\n}\nfunction It(e) {\n const t = A.fromChainOrSignature(e);\n switch (e) {\n case l.Bitcoin:\n case l.Litecoin:\n case l.BitcoinCash:\n return t.set(10001e-8);\n case l.Dogecoin:\n return t.set(1.00000001);\n case l.Avalanche:\n case l.Ethereum:\n return t.set(1e-8);\n case l.THORChain:\n case l.Maya:\n return t.set(0);\n case l.Cosmos:\n return t.set(1e-6);\n default:\n return t.set(1e-8);\n }\n}\nasync function Y(e, t = 0) {\n dt(e);\n const n = P.get(e.toUpperCase()), r = (n == null ? void 0 : n.decimal) || await st(N(e));\n return n || P.set(e.toUpperCase(), { identifier: e, decimal: r }), new A({ decimal: r, value: O(t, r), identifier: e });\n}\nfunction Q(e, t = 0) {\n const [n, r] = e.split(\".\")[0].toUpperCase() === l.THORChain ? e.split(\".\").slice(1).join().split(\"/\") : e.split(\"/\");\n if (!(n && r))\n throw new Error(\"Invalid asset identifier\");\n return new A({\n decimal: 8,\n value: O(t, 8),\n identifier: `${l.THORChain}.${n}/${r}`\n });\n}\nfunction O(e, t) {\n return typeof e == \"bigint\" ? U({ value: e, bigIntDecimal: t, decimal: t }) : e;\n}\nfunction N(e) {\n const t = e.slice(0, 14).includes(\"/\"), [n, r] = e.split(\".\")[0].toUpperCase() === l.THORChain ? e.split(\".\").slice(1).join().split(\"/\") : e.split(\"/\");\n if (t && !(n && r))\n throw new Error(\"Invalid asset identifier\");\n const s = e.includes(\".\") && !t ? e : `${l.THORChain}.${r}`, [i, ...o] = s.split(\".\"), [c, a] = (t ? r : o.join(\".\")).split(\"-\"), u = t ? r : o.join(\".\");\n return {\n address: a == null ? void 0 : a.toLowerCase(),\n chain: i,\n isGasAsset: Se({ chain: i, symbol: u }),\n isSynthetic: t,\n symbol: (t ? `${n}/` : \"\") + (a ? `${c}-${(a == null ? void 0 : a.toLowerCase()) ?? \"\"}` : u),\n ticker: c\n };\n}\nconst mt = {\n /**\n * Core\n */\n core_wallet_connection_not_found: 10001,\n core_estimated_max_spendable_chain_not_supported: 10002,\n core_extend_error: 10003,\n core_inbound_data_not_found: 10004,\n core_approve_asset_address_or_from_not_found: 10005,\n core_chain_halted: 10099,\n /**\n * Core - Wallet Connection\n */\n core_wallet_xdefi_not_installed: 10101,\n core_wallet_evmwallet_not_installed: 10102,\n core_wallet_walletconnect_not_installed: 10103,\n core_wallet_keystore_not_installed: 10104,\n core_wallet_ledger_not_installed: 10105,\n core_wallet_trezor_not_installed: 10106,\n core_wallet_keplr_not_installed: 10107,\n core_wallet_okx_not_installed: 10108,\n core_wallet_keepkey_not_installed: 10109,\n /**\n * Core - Swap\n */\n core_swap_invalid_params: 10200,\n core_swap_route_not_complete: 10201,\n core_swap_asset_not_recognized: 10202,\n core_swap_contract_not_found: 10203,\n core_swap_route_transaction_not_found: 10204,\n core_swap_contract_not_supported: 10205,\n core_swap_transaction_error: 10206,\n core_swap_quote_mode_not_supported: 10207,\n core_swap_provider_not_found: 10208,\n /**\n * Core - Transaction\n */\n core_transaction_deposit_error: 10301,\n core_transaction_create_liquidity_rune_error: 10302,\n core_transaction_create_liquidity_asset_error: 10303,\n core_transaction_create_liquidity_invalid_params: 10304,\n core_transaction_add_liquidity_invalid_params: 10305,\n core_transaction_add_liquidity_no_rune_address: 10306,\n core_transaction_add_liquidity_rune_error: 10307,\n core_transaction_add_liquidity_asset_error: 10308,\n core_transaction_withdraw_error: 10309,\n core_transaction_deposit_to_pool_error: 10310,\n core_transaction_deposit_insufficient_funds_error: 10311,\n core_transaction_deposit_gas_error: 10312,\n core_transaction_invalid_sender_address: 10313,\n core_transaction_deposit_server_error: 10314,\n core_transaction_user_rejected: 10315,\n /**\n * Wallets\n */\n wallet_ledger_connection_error: 20001,\n wallet_ledger_connection_claimed: 20002,\n wallet_ledger_get_address_error: 20003,\n wallet_ledger_device_not_found: 20004,\n wallet_ledger_device_locked: 20005,\n /**\n * Chainflip\n */\n chainflip_channel_error: 30001,\n chainflip_broker_recipient_error: 30002,\n /**\n * THORChain\n */\n /**\n * Helpers\n */\n helpers_number_different_decimals: 99101\n};\nclass ye extends Error {\n constructor(t, n) {\n n && console.error(n, {\n stack: n == null ? void 0 : n.stack,\n message: n == null ? void 0 : n.message\n }), super(t, {\n cause: { code: mt[t], message: t }\n }), Object.setPrototypeOf(this, ye.prototype);\n }\n}\nexport {\n f as ApiEndpoints,\n A as AssetValue,\n D as BigIntArithmetics,\n T as RequestClient,\n Ze as StreamingSwapProgressStatus,\n gt as SwapKitApi,\n ye as SwapKitError,\n g as SwapKitNumber,\n Qe as TransactionType,\n ze as TxStatus,\n Ct as assetFromString,\n Ae as defaultRequestHeaders,\n vt as derivationPathToString,\n St as filterAssets,\n U as formatBigIntToSafeValue,\n At as gasFeeMultiplier,\n ot as getAssetType,\n ut as getAsymmetricAssetShare,\n yt as getAsymmetricAssetWithdrawAmount,\n lt as getAsymmetricRuneShare,\n bt as getAsymmetricRuneWithdrawAmount,\n it as getCommonAssetInfo,\n st as getDecimal,\n Rt as getEstimatedPoolShare,\n Et as getLiquiditySlippage,\n Pt as getMemoFor,\n It as getMinAmountByChain,\n ht as getSymmetricPoolShare,\n wt as getSymmetricWithdraw,\n Ot as getTHORNameCost,\n Se as isGasAsset,\n ft as setRequestClientConfig,\n $t as validateTHORName\n};\n//# sourceMappingURL=index.es.js.map\n","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.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.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 ProviderName = \"thorchain\" | \"chainflip\" | \"mayachain\";\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 SwapKitProviders = {\n [K in ProviderName]?: 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: ProviderName;\n config: Record<string, any>;\n };\n};\n\nexport type SwapKitReturnType = SwapKitProviders & {\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 ProviderName]?: ProviderMethods };\nexport type ProviderMethods = {\n swap: (swapParams: SwapParams) => Promise<string>;\n [key: string]: any;\n};\n\nexport type SwapKitProvider = ({ wallets, stagenet }: { wallets: Wallets; stagenet?: boolean }) => {\n name: ProviderName;\n methods: ProviderMethods;\n};\n\nexport type SwapKitWallet = {\n connectMethodName: string;\n connect: (params: ConnectWalletParams) => (connectParams: any) => void;\n};\n\nexport function SwapKit<\n ExtendedProviders extends {},\n ConnectWalletMethods extends Record<string, ReturnType<SwapKitWallet[\"connect\"]>>,\n>({\n stagenet,\n wallets,\n providers,\n config = {},\n apis,\n rpcUrls,\n}: {\n providers: SwapKitProvider[];\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 availableProviders: AvailableProviders<ExtendedProviders> = {};\n\n for (const provider of providers) {\n const { name, methods } = provider({ wallets: connectedWallets, stagenet });\n\n availableProviders[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 getProvider(providerName?: ProviderName) {\n const provider =\n (availableProviders as SwapKitProviders)[providerName as ProviderName] ||\n Object.values(availableProviders)[0];\n\n if (!provider) {\n throw new SwapKitError(\n \"core_swap_provider_not_found\",\n \"Could not find the requested provider\",\n );\n }\n\n return provider;\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: providerConfig, ...rest }: SwapParams) {\n const provider = getProvider(providerConfig?.name);\n\n return provider.swap({ provider: providerConfig, ...rest });\n }\n\n return {\n ...availableProviders,\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 getInboundData = (stagenet: boolean) => {\n const baseUrl = stagenet ? ApiUrl.ThornodeStagenet : ApiUrl.ThornodeMainnet;\n\n return RequestClient.get<InboundAddressData>(`${baseUrl}/thorchain/inbound_addresses`);\n};\n\nexport const getMimirData = (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 { getInboundData, getMimirData } 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 || 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 = 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 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/nursery/useAwait: Extended methods\n connectXDEFI = async (_chains: Chain[]): Promise<void> => {\n throw new SwapKitError(\"core_wallet_xdefi_not_installed\");\n };\n // biome-ignore lint/nursery/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/nursery/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/nursery/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/nursery/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/nursery/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/nursery/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/nursery/useAwait: Extended methods\n connectKeplr = async (_chain: Chain): Promise<void> => {\n throw new SwapKitError(\"core_wallet_keplr_not_installed\");\n };\n // biome-ignore lint/nursery/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 getInboundData(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 = (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 getMimirData(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":["O","h","B","R","y","v","H","S","a","u","o","_","m","w","l","M","T","V","c","L","A","N","i","p","f","s","E","r","n","t","d","k","P","X","I","K","x","C","b","g","$e","ve","Ie","F","ne","de","G","Ve","re","ae","pe","se","me","He","xe","ke","Me","_e","Le","J","Te","We","Ue","je","qe","Fe","fe","ce","Ge","Xe","Ke","Je","W","z","ge","Ae","le","ft","Ye","gt","Qe","ze","Ze","et","Ce","Be","tt","nt","rt","st","At","Se","it","ot","Ct","at","ct","Ne","St","lt","ut","$","bt","yt","ht","wt","Rt","ie","we","Re","Ee","Pe","oe","Oe","Et","Pt","Ot","$t","vt","ue","dt","U","j","be","Z","ee","q","te","he","D","pt","De","Y","Q","It","mt","ye","getExplorerTxUrl","chain","txHash","baseUrl","ChainToExplorerUrl","Chain","getExplorerAddressUrl","address","ApproveMode","SwapKit","stagenet","wallets","providers","config","apis","rpcUrls","connectedWallets","availableProviders","provider","name","methods","connectWalletMethods","acc","wallet","addChain","getProvider","providerName","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","providerConfig","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","getInboundData","ApiUrl","RequestClient","getMimirData","getEmptyWalletStructure","validateAddressType","_getInboundDataByChain","_addConnectedChain","_approve","_depositToPool","_thorchainTransfer","_prepareTxParams","SwapKitCore","__publicField","route","feeOptionKey","FeeOption","quoteMode","evmChain","AGG_SWAP","to","value","params","ChainToChainId","SWAP_OUT","asset","__privateGet","expiration","amountIn","SwapKitNumber","swapMemo","SWAP_IN","calldata","abi","tx","walletType","walletInstance","symbol","ticker","connectedWallet","getChecksumAddressFromAsset","TCAvalancheDepositABI","TCBscDepositABI","TCEthereumVaultAbi","errorMessage","isInsufficientFunds","isGas","isServer","isUserRejected","errorKey","runeAssetValue","runeTx","assetTx","getMemoFor","MemoType","runeAddr","assetAddr","isPendingSymmAsset","mode","isSym","runeTransfer","assetTransfer","includeRuneAddress","runeAddress","assetAddress","poolAddress","symmetric","percent","targetAsset","getMinAmountByChain","memoString","memoType","minAmount","param","estimateMaxSendableAmount","_chains","_wallet","_options","_derivationPath","_phrase","_chain","__privateAdd","chainAddressData","item","gas_rate","feeRate","gasFeeMultiplier","mimir","restTxParams"],"mappings":"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CjB,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;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;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EACR;A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"}
1
+ {"version":3,"file":"index.es.js","sources":["../../types/dist/index.es.js","../../helpers/dist/index.es.js","../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/thornode.ts","../src/client/old.ts"],"sourcesContent":["const O = [\n { inputs: [], stateMutability: \"nonpayable\", type: \"constructor\" },\n {\n anonymous: !1,\n inputs: [\n { indexed: !0, internalType: \"address\", name: \"owner\", type: \"address\" },\n { indexed: !0, internalType: \"address\", name: \"spender\", type: \"address\" },\n { indexed: !1, internalType: \"uint256\", name: \"value\", type: \"uint256\" }\n ],\n name: \"Approval\",\n type: \"event\"\n },\n {\n anonymous: !1,\n inputs: [\n { indexed: !0, internalType: \"address\", name: \"from\", type: \"address\" },\n { indexed: !0, internalType: \"address\", name: \"to\", type: \"address\" },\n { indexed: !1, internalType: \"uint256\", name: \"value\", type: \"uint256\" }\n ],\n name: \"Transfer\",\n type: \"event\"\n },\n {\n inputs: [\n { internalType: \"address\", name: \"\", type: \"address\" },\n { internalType: \"address\", name: \"\", type: \"address\" }\n ],\n name: \"allowance\",\n outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n { internalType: \"address\", name: \"spender\", type: \"address\" },\n { internalType: \"uint256\", name: \"value\", type: \"uint256\" }\n ],\n name: \"approve\",\n outputs: [{ internalType: \"bool\", name: \"success\", type: \"bool\" }],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n name: \"balanceOf\",\n outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"decimals\",\n outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"name\",\n outputs: [{ internalType: \"string\", name: \"\", type: \"string\" }],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"symbol\",\n outputs: [{ internalType: \"string\", name: \"\", type: \"string\" }],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"totalSupply\",\n outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"value\", type: \"uint256\" }\n ],\n name: \"transfer\",\n outputs: [{ internalType: \"bool\", name: \"success\", type: \"bool\" }],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n { internalType: \"address\", name: \"from\", type: \"address\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"value\", type: \"uint256\" }\n ],\n name: \"transferFrom\",\n outputs: [{ internalType: \"bool\", name: \"success\", type: \"bool\" }],\n stateMutability: \"nonpayable\",\n type: \"function\"\n }\n], h = [\n {\n inputs: [{ internalType: \"address\", name: \"rune\", type: \"address\" }],\n stateMutability: \"nonpayable\",\n type: \"constructor\"\n },\n {\n anonymous: !1,\n inputs: [\n { indexed: !0, internalType: \"address\", name: \"to\", type: \"address\" },\n { indexed: !0, internalType: \"address\", name: \"asset\", type: \"address\" },\n { indexed: !1, internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { indexed: !1, internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"Deposit\",\n type: \"event\"\n },\n {\n anonymous: !1,\n inputs: [\n { indexed: !0, internalType: \"address\", name: \"oldVault\", type: \"address\" },\n { indexed: !0, internalType: \"address\", name: \"newVault\", type: \"address\" },\n { indexed: !1, internalType: \"address\", name: \"asset\", type: \"address\" },\n { indexed: !1, internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { indexed: !1, internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"TransferAllowance\",\n type: \"event\"\n },\n {\n anonymous: !1,\n inputs: [\n { indexed: !0, internalType: \"address\", name: \"vault\", type: \"address\" },\n { indexed: !0, internalType: \"address\", name: \"to\", type: \"address\" },\n { indexed: !1, internalType: \"address\", name: \"asset\", type: \"address\" },\n { indexed: !1, internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { indexed: !1, internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"TransferOut\",\n type: \"event\"\n },\n {\n anonymous: !1,\n inputs: [\n { indexed: !0, internalType: \"address\", name: \"vault\", type: \"address\" },\n { indexed: !1, internalType: \"address\", name: \"target\", type: \"address\" },\n { indexed: !1, internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { indexed: !1, internalType: \"address\", name: \"finalAsset\", type: \"address\" },\n { indexed: !1, internalType: \"address\", name: \"to\", type: \"address\" },\n { indexed: !1, internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { indexed: !1, internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"TransferOutAndCall\",\n type: \"event\"\n },\n {\n anonymous: !1,\n inputs: [\n { indexed: !0, internalType: \"address\", name: \"oldVault\", type: \"address\" },\n { indexed: !0, internalType: \"address\", name: \"newVault\", type: \"address\" },\n {\n components: [\n { internalType: \"address\", name: \"asset\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" }\n ],\n indexed: !1,\n internalType: \"struct THORChain_Router.Coin[]\",\n name: \"coins\",\n type: \"tuple[]\"\n },\n { indexed: !1, internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"VaultTransfer\",\n type: \"event\"\n },\n {\n inputs: [],\n name: \"RUNE\",\n outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n { internalType: \"address payable\", name: \"vault\", type: \"address\" },\n { internalType: \"address\", name: \"asset\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"deposit\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\"\n },\n {\n inputs: [\n { internalType: \"address payable\", name: \"vault\", type: \"address\" },\n { internalType: \"address\", name: \"asset\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { internalType: \"string\", name: \"memo\", type: \"string\" },\n { internalType: \"uint256\", name: \"expiration\", type: \"uint256\" }\n ],\n name: \"depositWithExpiry\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\"\n },\n {\n inputs: [\n { internalType: \"address\", name: \"router\", type: \"address\" },\n { internalType: \"address payable\", name: \"asgard\", type: \"address\" },\n {\n components: [\n { internalType: \"address\", name: \"asset\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" }\n ],\n internalType: \"struct THORChain_Router.Coin[]\",\n name: \"coins\",\n type: \"tuple[]\"\n },\n { internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"returnVaultAssets\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\"\n },\n {\n inputs: [\n { internalType: \"address\", name: \"router\", type: \"address\" },\n { internalType: \"address\", name: \"newVault\", type: \"address\" },\n { internalType: \"address\", name: \"asset\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"transferAllowance\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n { internalType: \"address payable\", name: \"to\", type: \"address\" },\n { internalType: \"address\", name: \"asset\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"transferOut\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\"\n },\n {\n inputs: [\n { internalType: \"address payable\", name: \"aggregator\", type: \"address\" },\n { internalType: \"address\", name: \"finalToken\", type: \"address\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"transferOutAndCall\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\"\n },\n {\n inputs: [\n { internalType: \"address\", name: \"vault\", type: \"address\" },\n { internalType: \"address\", name: \"token\", type: \"address\" }\n ],\n name: \"vaultAllowance\",\n outputs: [{ internalType: \"uint256\", name: \"amount\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\"\n }\n], B = [\n { inputs: [], stateMutability: \"nonpayable\", type: \"constructor\" },\n {\n anonymous: !1,\n inputs: [\n { indexed: !0, internalType: \"address\", name: \"to\", type: \"address\" },\n { indexed: !0, internalType: \"address\", name: \"asset\", type: \"address\" },\n { indexed: !1, internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { indexed: !1, internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"Deposit\",\n type: \"event\"\n },\n {\n anonymous: !1,\n inputs: [\n { indexed: !0, internalType: \"address\", name: \"oldVault\", type: \"address\" },\n { indexed: !0, internalType: \"address\", name: \"newVault\", type: \"address\" },\n { indexed: !1, internalType: \"address\", name: \"asset\", type: \"address\" },\n { indexed: !1, internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { indexed: !1, internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"TransferAllowance\",\n type: \"event\"\n },\n {\n anonymous: !1,\n inputs: [\n { indexed: !0, internalType: \"address\", name: \"vault\", type: \"address\" },\n { indexed: !0, internalType: \"address\", name: \"to\", type: \"address\" },\n { indexed: !1, internalType: \"address\", name: \"asset\", type: \"address\" },\n { indexed: !1, internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { indexed: !1, internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"TransferOut\",\n type: \"event\"\n },\n {\n anonymous: !1,\n inputs: [\n { indexed: !0, internalType: \"address\", name: \"vault\", type: \"address\" },\n { indexed: !1, internalType: \"address\", name: \"target\", type: \"address\" },\n { indexed: !1, internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { indexed: !1, internalType: \"address\", name: \"finalAsset\", type: \"address\" },\n { indexed: !1, internalType: \"address\", name: \"to\", type: \"address\" },\n { indexed: !1, internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { indexed: !1, internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"TransferOutAndCall\",\n type: \"event\"\n },\n {\n anonymous: !1,\n inputs: [\n { indexed: !0, internalType: \"address\", name: \"oldVault\", type: \"address\" },\n { indexed: !0, internalType: \"address\", name: \"newVault\", type: \"address\" },\n {\n components: [\n { internalType: \"address\", name: \"asset\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" }\n ],\n indexed: !1,\n internalType: \"struct AvaxRouter.Coin[]\",\n name: \"coins\",\n type: \"tuple[]\"\n },\n { indexed: !1, internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"VaultTransfer\",\n type: \"event\"\n },\n {\n inputs: [\n { internalType: \"address payable\", name: \"vault\", type: \"address\" },\n { internalType: \"address\", name: \"asset\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"deposit\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\"\n },\n {\n inputs: [\n { internalType: \"address payable\", name: \"vault\", type: \"address\" },\n { internalType: \"address\", name: \"asset\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { internalType: \"string\", name: \"memo\", type: \"string\" },\n { internalType: \"uint256\", name: \"expiration\", type: \"uint256\" }\n ],\n name: \"depositWithExpiry\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\"\n },\n {\n inputs: [\n { internalType: \"address\", name: \"router\", type: \"address\" },\n { internalType: \"address payable\", name: \"asgard\", type: \"address\" },\n {\n components: [\n { internalType: \"address\", name: \"asset\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" }\n ],\n internalType: \"struct AvaxRouter.Coin[]\",\n name: \"coins\",\n type: \"tuple[]\"\n },\n { internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"returnVaultAssets\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\"\n },\n {\n inputs: [\n { internalType: \"address\", name: \"router\", type: \"address\" },\n { internalType: \"address\", name: \"newVault\", type: \"address\" },\n { internalType: \"address\", name: \"asset\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"transferAllowance\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n { internalType: \"address payable\", name: \"to\", type: \"address\" },\n { internalType: \"address\", name: \"asset\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"transferOut\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\"\n },\n {\n inputs: [\n { internalType: \"address payable\", name: \"target\", type: \"address\" },\n { internalType: \"address\", name: \"finalToken\", type: \"address\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"transferOutAndCall\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\"\n },\n {\n inputs: [\n { internalType: \"address\", name: \"vault\", type: \"address\" },\n { internalType: \"address\", name: \"token\", type: \"address\" }\n ],\n name: \"vaultAllowance\",\n outputs: [{ internalType: \"uint256\", name: \"amount\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\"\n }\n], R = [\n { inputs: [], stateMutability: \"nonpayable\", type: \"constructor\" },\n {\n anonymous: !1,\n inputs: [\n { indexed: !0, internalType: \"address\", name: \"to\", type: \"address\" },\n { indexed: !0, internalType: \"address\", name: \"asset\", type: \"address\" },\n { indexed: !1, internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { indexed: !1, internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"Deposit\",\n type: \"event\"\n },\n {\n anonymous: !1,\n inputs: [\n { indexed: !0, internalType: \"address\", name: \"oldVault\", type: \"address\" },\n { indexed: !0, internalType: \"address\", name: \"newVault\", type: \"address\" },\n { indexed: !1, internalType: \"address\", name: \"asset\", type: \"address\" },\n { indexed: !1, internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { indexed: !1, internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"TransferAllowance\",\n type: \"event\"\n },\n {\n anonymous: !1,\n inputs: [\n { indexed: !0, internalType: \"address\", name: \"vault\", type: \"address\" },\n { indexed: !0, internalType: \"address\", name: \"to\", type: \"address\" },\n { indexed: !1, internalType: \"address\", name: \"asset\", type: \"address\" },\n { indexed: !1, internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { indexed: !1, internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"TransferOut\",\n type: \"event\"\n },\n {\n anonymous: !1,\n inputs: [\n { indexed: !0, internalType: \"address\", name: \"vault\", type: \"address\" },\n { indexed: !1, internalType: \"address\", name: \"target\", type: \"address\" },\n { indexed: !1, internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { indexed: !1, internalType: \"address\", name: \"finalAsset\", type: \"address\" },\n { indexed: !1, internalType: \"address\", name: \"to\", type: \"address\" },\n { indexed: !1, internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { indexed: !1, internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"TransferOutAndCall\",\n type: \"event\"\n },\n {\n anonymous: !1,\n inputs: [\n { indexed: !0, internalType: \"address\", name: \"oldVault\", type: \"address\" },\n { indexed: !0, internalType: \"address\", name: \"newVault\", type: \"address\" },\n {\n components: [\n { internalType: \"address\", name: \"asset\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" }\n ],\n indexed: !1,\n internalType: \"struct THORChain_Router.Coin[]\",\n name: \"coins\",\n type: \"tuple[]\"\n },\n { indexed: !1, internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"VaultTransfer\",\n type: \"event\"\n },\n {\n inputs: [\n { internalType: \"address payable\", name: \"vault\", type: \"address\" },\n { internalType: \"address\", name: \"asset\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { internalType: \"string\", name: \"memo\", type: \"string\" },\n { internalType: \"uint256\", name: \"expiration\", type: \"uint256\" }\n ],\n name: \"depositWithExpiry\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\"\n },\n {\n inputs: [\n { internalType: \"address\", name: \"router\", type: \"address\" },\n { internalType: \"address payable\", name: \"asgard\", type: \"address\" },\n {\n components: [\n { internalType: \"address\", name: \"asset\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" }\n ],\n internalType: \"struct THORChain_Router.Coin[]\",\n name: \"coins\",\n type: \"tuple[]\"\n },\n { internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"returnVaultAssets\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\"\n },\n {\n inputs: [\n { internalType: \"address\", name: \"router\", type: \"address\" },\n { internalType: \"address\", name: \"newVault\", type: \"address\" },\n { internalType: \"address\", name: \"asset\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"transferAllowance\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n { internalType: \"address payable\", name: \"to\", type: \"address\" },\n { internalType: \"address\", name: \"asset\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n { internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"transferOut\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\"\n },\n {\n inputs: [\n { internalType: \"address payable\", name: \"target\", type: \"address\" },\n { internalType: \"address\", name: \"finalToken\", type: \"address\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"amountOutMin\", type: \"uint256\" },\n { internalType: \"string\", name: \"memo\", type: \"string\" }\n ],\n name: \"transferOutAndCall\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\"\n },\n {\n inputs: [\n { internalType: \"address\", name: \"vault\", type: \"address\" },\n { internalType: \"address\", name: \"token\", type: \"address\" }\n ],\n name: \"vaultAllowance\",\n outputs: [{ internalType: \"uint256\", name: \"amount\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\"\n }\n];\nvar y = /* @__PURE__ */ ((e) => (e.TC_SUPPORTED_TO_TC_SUPPORTED = \"TC-TC\", e.TC_SUPPORTED_TO_ETH = \"TC-ERC20\", e.TC_SUPPORTED_TO_AVAX = \"TC-ARC20\", e.TC_SUPPORTED_TO_BSC = \"TC-BEP20\", e.ETH_TO_TC_SUPPORTED = \"ERC20-TC\", e.ETH_TO_ETH = \"ERC20-ERC20\", e.ETH_TO_AVAX = \"ERC20-ARC20\", e.ETH_TO_BSC = \"ERC20-BEP20\", e.AVAX_TO_TC_SUPPORTED = \"ARC20-TC\", e.AVAX_TO_ETH = \"ARC20-ERC20\", e.AVAX_TO_AVAX = \"ARC20-ARC20\", e.AVAX_TO_BSC = \"ARC20-BEP20\", e.BSC_TO_TC_SUPPORTED = \"BEP20-TC\", e.BSC_TO_ETH = \"BEP20-ERC20\", e.BSC_TO_AVAX = \"BEP20-ARC20\", e.BSC_TO_BSC = \"BEP20-BEP20\", e))(y || {});\nconst v = [\n \"ERC20-ERC20\",\n \"ARC20-ARC20\",\n \"BEP20-BEP20\"\n /* BSC_TO_BSC */\n], H = [\n \"ERC20-TC\",\n \"ERC20-ARC20\",\n \"ERC20-BEP20\",\n \"ARC20-TC\",\n \"ARC20-ERC20\",\n \"ARC20-BEP20\",\n \"BEP20-TC\",\n \"BEP20-ERC20\",\n \"BEP20-ARC20\"\n /* BSC_TO_AVAX */\n], S = [\n \"TC-TC\",\n \"TC-ERC20\",\n \"TC-ARC20\",\n \"TC-BEP20\"\n /* TC_SUPPORTED_TO_BSC */\n];\nvar a = /* @__PURE__ */ ((e) => (e.Arbitrum = \"ARB\", e.Avalanche = \"AVAX\", e.Binance = \"BNB\", e.BinanceSmartChain = \"BSC\", e.Bitcoin = \"BTC\", e.BitcoinCash = \"BCH\", e.Cosmos = \"GAIA\", e.Dash = \"DASH\", e.Dogecoin = \"DOGE\", e.Ethereum = \"ETH\", e.Kujira = \"KUJI\", e.Litecoin = \"LTC\", e.Maya = \"MAYA\", e.Optimism = \"OP\", e.Polkadot = \"DOT\", e.Chainflip = \"FLIP\", e.Polygon = \"MATIC\", e.THORChain = \"THOR\", e))(a || {}), u = /* @__PURE__ */ ((e) => (e.ARB = \"0x0000000000000000000000000000000000000000\", e.AVAX = \"0x0000000000000000000000000000000000000000\", e.ETH = \"0x0000000000000000000000000000000000000000\", e.BSC = \"0x0000000000000000000000000000000000000000\", e.MATIC = \"0x0000000000000000000000000000000000001010\", e.OP = \"0x4200000000000000000000000000000000000042\", e))(u || {}), o = /* @__PURE__ */ ((e) => (e.ARB = \"m/44'/60'/0'/0\", e.AVAX = \"m/44'/60'/0'/0\", e.BCH = \"m/44'/145'/0'/0\", e.BNB = \"m/44'/714'/0'/0\", e.BSC = \"m/44'/60'/0'/0\", e.BTC = \"m/84'/0'/0'/0\", e.DASH = \"m/44'/5'/0'/0\", e.DOGE = \"m/44'/3'/0'/0\", e.DOT = \"////\", e.ETH = \"m/44'/60'/0'/0\", e.FLIP = \"////\", e.GAIA = \"m/44'/118'/0'/0\", e.KUJI = \"m/44'/118'/0'/0\", e.LTC = \"m/84'/2'/0'/0\", e.MATIC = \"m/44'/60'/0'/0\", e.MAYA = \"m/44'/931'/0'/0\", e.OP = \"m/44'/60'/0'/0\", e.THOR = \"m/44'/931'/0'/0\", e))(o || {});\nconst _ = {\n ARB: [44, 60, 0, 0, 0],\n AVAX: [44, 60, 0, 0, 0],\n BCH: [44, 145, 0, 0, 0],\n BNB: [44, 714, 0, 0, 0],\n BSC: [44, 60, 0, 0, 0],\n BTC: [84, 0, 0, 0, 0],\n DASH: [44, 5, 0, 0, 0],\n DOGE: [44, 3, 0, 0, 0],\n ETH: [44, 60, 0, 0, 0],\n GAIA: [44, 118, 0, 0, 0],\n KUJI: [44, 118, 0, 0, 0],\n LTC: [84, 2, 0, 0, 0],\n MATIC: [44, 60, 0, 0, 0],\n MAYA: [44, 931, 0, 0, 0],\n OP: [44, 60, 0, 0, 0],\n THOR: [44, 931, 0, 0, 0],\n // Polkadot and related network derivation path is not number based\n DOT: [0, 0, 0, 0, 0],\n FLIP: [0, 0, 0, 0, 0]\n};\nvar m = /* @__PURE__ */ ((e) => (e[e.ARB = 18] = \"ARB\", e[e.AVAX = 18] = \"AVAX\", e[e.BCH = 8] = \"BCH\", e[e.BNB = 8] = \"BNB\", e[e.BSC = 18] = \"BSC\", e[e.BTC = 8] = \"BTC\", e[e.DASH = 8] = \"DASH\", e[e.DOGE = 8] = \"DOGE\", e[e.DOT = 10] = \"DOT\", e[e.ETH = 18] = \"ETH\", e[e.FLIP = 18] = \"FLIP\", e[e.GAIA = 6] = \"GAIA\", e[e.KUJI = 6] = \"KUJI\", e[e.LTC = 8] = \"LTC\", e[e.MATIC = 18] = \"MATIC\", e[e.MAYA = 10] = \"MAYA\", e[e.OP = 18] = \"OP\", e[e.THOR = 8] = \"THOR\", e[e.ZEC = 8] = \"ZEC\", e))(m || {});\nconst w = [\n \"DOT\",\n \"FLIP\"\n /* Chainflip */\n], l = [\n \"ETH\",\n \"AVAX\",\n \"BSC\",\n \"ARB\",\n \"OP\",\n \"MATIC\"\n /* Polygon */\n], M = l, T = [\n \"BTC\",\n \"BCH\",\n \"DASH\",\n \"DOGE\",\n \"LTC\"\n /* Litecoin */\n], V = T, c = [\n \"GAIA\",\n \"THOR\",\n \"BNB\"\n /* Binance */\n], L = c, A = [\n \"AVAX\",\n \"BNB\",\n \"BSC\",\n \"BTC\",\n \"BCH\",\n \"GAIA\",\n \"DOGE\",\n \"ETH\",\n \"LTC\",\n \"THOR\"\n /* THORChain */\n], N = A;\nvar i = /* @__PURE__ */ ((e) => (e.Arbitrum = \"42161\", e.ArbitrumHex = \"0xa4b1\", e.Avalanche = \"43114\", e.AvalancheHex = \"0xa86a\", e.Binance = \"Binance-Chain-Tigris\", e.BinanceSmartChain = \"56\", e.BinanceSmartChainHex = \"0x38\", e.Bitcoin = \"bitcoin\", e.BitcoinCash = \"bitcoincash\", e.Chainflip = \"chainflip\", e.Cosmos = \"cosmoshub-4\", e.Dash = \"dash\", e.Dogecoin = \"dogecoin\", e.Kujira = \"kaiyo-1\", e.Ethereum = \"1\", e.EthereumHex = \"0x1\", e.Litecoin = \"litecoin\", e.Maya = \"mayachain-mainnet-v1\", e.MayaStagenet = \"mayachain-stagenet-v1\", e.Optimism = \"10\", e.OptimismHex = \"0xa\", e.Polkadot = \"polkadot\", e.Polygon = \"137\", e.PolygonHex = \"0x89\", e.THORChain = \"thorchain-mainnet-v1\", e.THORChainStagenet = \"thorchain-stagenet-v2\", e))(i || {}), p = /* @__PURE__ */ ((e) => (e.Arbitrum = \"https://arb1.arbitrum.io/rpc\", e.Avalanche = \"https://node-router.thorswap.net/avalanche-c\", e.Binance = \"\", e.BinanceSmartChain = \"https://bsc-dataseed.binance.org\", e.Bitcoin = \"https://node-router.thorswap.net/bitcoin\", e.BitcoinCash = \"https://node-router.thorswap.net/bitcoin-cash\", e.Chainflip = \"wss://mainnet-archive.chainflip.io\", e.Cosmos = \"https://node-router.thorswap.net/cosmos/rpc\", e.Dash = \"https://node-router.thorswap.net/dash\", e.Dogecoin = \"https://node-router.thorswap.net/dogecoin\", e.Ethereum = \"https://node-router.thorswap.net/ethereum\", e.Kujira = \"https://rpc-kujira.synergynodes.com/\", e.Litecoin = \"https://node-router.thorswap.net/litecoin\", e.Maya = \"https://tendermint.mayachain.info\", e.MayaStagenet = \"https://stagenet.tendermint.mayachain.info\", e.Optimism = \"https://mainnet.optimism.io\", e.Polkadot = \"wss://rpc.polkadot.io\", e.Polygon = \"https://polygon-rpc.com\", e.THORChain = \"https://rpc.thorswap.net\", e.THORChainStagenet = \"https://stagenet-rpc.ninerealms.com\", e))(p || {}), f = /* @__PURE__ */ ((e) => (e.Cosmos = \"https://node-router.thorswap.net/cosmos/rest\", e.Kujira = \"https://lcd-kujira.synergynodes.com/\", e.MayanodeMainnet = \"https://mayanode.mayachain.info\", e.MayanodeStagenet = \"https://stagenet.mayanode.mayachain.info\", e.ThornodeMainnet = \"https://thornode.thorswap.net\", e.ThornodeStagenet = \"https://stagenet-thornode.ninerealms.com\", e.ThorswapApi = \"https://api.thorswap.net\", e.ThorswapStatic = \"https://static.thorswap.net\", e))(f || {});\nconst s = Object.values(a), E = Object.keys(a), r = s.reduce(\n (e, n) => {\n const t = E.find((d) => a[d] === n);\n return t && (e[n] = t), e;\n },\n {}\n), P = s.reduce(\n (e, n) => (e[n] = i[r[n]], e),\n {}\n), k = s.reduce(\n (e, n) => (e[n] = p[r[n]], e),\n {}\n), X = s.reduce(\n (e, n) => {\n const t = `${r[n]}Hex`;\n return e[n] = i[t], e;\n },\n {}\n), I = {\n \"0xa4b1\": \"ARB\",\n 42161: \"ARB\",\n \"0xa86a\": \"AVAX\",\n 43114: \"AVAX\",\n \"0x38\": \"BSC\",\n 56: \"BSC\",\n \"Binance-Chain-Tigris\": \"BNB\",\n bitcoincash: \"BCH\",\n bitcoin: \"BTC\",\n chainflip: \"FLIP\",\n \"cosmoshub-4\": \"GAIA\",\n dash: \"DASH\",\n dogecoin: \"DOGE\",\n \"0x1\": \"ETH\",\n \"kaiyo-1\": \"KUJI\",\n 1: \"ETH\",\n litecoin: \"LTC\",\n \"mayachain-stagenet-v1\": \"MAYA\",\n \"mayachain-mainnet-v1\": \"MAYA\",\n \"0xa\": \"OP\",\n 10: \"OP\",\n polkadot: \"DOT\",\n \"0x89\": \"MATIC\",\n 137: \"MATIC\",\n \"thorchain-stagenet-v2\": \"THOR\",\n \"thorchain-mainnet-v1\": \"THOR\"\n /* THORChain */\n}, K = {\n ARB: \"https://arbiscan.io\",\n AVAX: \"https://snowtrace.io\",\n BSC: \"https://bscscan.com\",\n BNB: \"https://explorer.binance.org\",\n BCH: \"https://www.blockchair.com/bitcoin-cash\",\n BTC: \"https://blockchair.com/bitcoin\",\n FLIP: \"https://explorer.polkascan.io/polkadot\",\n GAIA: \"https://cosmos.bigdipper.live\",\n DASH: \"https://blockchair.com/dash\",\n DOGE: \"https://blockchair.com/dogecoin\",\n KUJI: \"https://finder.kujira.network/kaiyo-1\",\n ETH: \"https://etherscan.io\",\n LTC: \"https://blockchair.com/litecoin\",\n MAYA: \"https://www.mayascan.org\",\n OP: \"https://optimistic.etherscan.io\",\n DOT: \"https://polkadot.subscan.io/\",\n MATIC: \"https://polygonscan.com\",\n THOR: \"https://runescan.io\"\n};\nvar x = /* @__PURE__ */ ((e) => (e.BOND = \"BOND\", e.DEPOSIT = \"+\", e.LEAVE = \"LEAVE\", e.THORNAME_REGISTER = \"~\", e.UNBOND = \"UNBOND\", e.WITHDRAW = \"-\", e.OPEN_LOAN = \"$+\", e.CLOSE_LOAN = \"$-\", e))(x || {}), C = /* @__PURE__ */ ((e) => (e.Average = \"average\", e.Fast = \"fast\", e.Fastest = \"fastest\", e))(C || {}), b = /* @__PURE__ */ ((e) => (e.KEYSTORE = \"KEYSTORE\", e.KEEPKEY = \"KEEPKEY\", e.XDEFI = \"XDEFI\", e.METAMASK = \"METAMASK\", e.COINBASE_WEB = \"COINBASE_WEB\", e.TREZOR = \"TREZOR\", e.TRUSTWALLET_WEB = \"TRUSTWALLET_WEB\", e.LEDGER = \"LEDGER\", e.KEPLR = \"KEPLR\", e.OKX = \"OKX\", e.OKX_MOBILE = \"OKX_MOBILE\", e.BRAVE = \"BRAVE\", e.WALLETCONNECT = \"WALLETCONNECT\", e))(b || {}), g = /* @__PURE__ */ ((e) => (e[e.NoError = 36864] = \"NoError\", e[e.LockedDevice = 21781] = \"LockedDevice\", e[e.TC_NotFound = 65535] = \"TC_NotFound\", e))(g || {});\nexport {\n v as AGG_SWAP,\n f as ApiUrl,\n m as BaseDecimal,\n a as Chain,\n i as ChainId,\n I as ChainIdToChain,\n P as ChainToChainId,\n K as ChainToExplorerUrl,\n X as ChainToHexChainId,\n k as ChainToRPC,\n u as ContractAddress,\n L as CosmosChainList,\n c as CosmosChains,\n o as DerivationPath,\n M as EVMChainList,\n l as EVMChains,\n C as FeeOption,\n g as LedgerErrorCode,\n x as MemoType,\n _ as NetworkDerivationPath,\n y as QuoteMode,\n p as RPCUrl,\n H as SWAP_IN,\n S as SWAP_OUT,\n w as SubstrateChains,\n B as TCAvalancheDepositABI,\n R as TCBscDepositABI,\n h as TCEthereumVaultAbi,\n N as TCSupportedChainList,\n A as TCSupportedChains,\n V as UTXOChainList,\n T as UTXOChains,\n b as WalletOption,\n O as erc20ABI\n};\n//# sourceMappingURL=index.es.js.map\n","var $e = Object.defineProperty;\nvar ve = (e, t, n) => t in e ? $e(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n;\nvar _ = (e, t, n) => (ve(e, typeof t != \"symbol\" ? t + \"\" : t, n), n), Ie = (e, t, n) => {\n if (!t.has(e))\n throw TypeError(\"Cannot \" + n);\n};\nvar R = (e, t, n) => {\n if (t.has(e))\n throw TypeError(\"Cannot add the same private member more than once\");\n t instanceof WeakSet ? t.add(e) : t.set(e, n);\n};\nvar p = (e, t, n) => (Ie(e, t, \"access private method\"), n);\nimport { FeeOption as K, BaseDecimal as d, Chain as l, EVMChains as Ne, ChainToRPC as Be, MemoType as C, ChainToChainId as De } from \"@swapkit/types\";\nvar F = /* @__PURE__ */ ((e) => (e.Arbitrum = \"ARB\", e.Avalanche = \"AVAX\", e.Binance = \"BNB\", e.BinanceSmartChain = \"BSC\", e.Bitcoin = \"BTC\", e.BitcoinCash = \"BCH\", e.Cosmos = \"GAIA\", e.Dash = \"DASH\", e.Dogecoin = \"DOGE\", e.Ethereum = \"ETH\", e.Kujira = \"KUJI\", e.Litecoin = \"LTC\", e.Maya = \"MAYA\", e.Optimism = \"OP\", e.Polkadot = \"DOT\", e.Chainflip = \"FLIP\", e.Polygon = \"MATIC\", e.THORChain = \"THOR\", e))(F || {}), ne = /* @__PURE__ */ ((e) => (e.Arbitrum = \"42161\", e.ArbitrumHex = \"0xa4b1\", e.Avalanche = \"43114\", e.AvalancheHex = \"0xa86a\", e.Binance = \"Binance-Chain-Tigris\", e.BinanceSmartChain = \"56\", e.BinanceSmartChainHex = \"0x38\", e.Bitcoin = \"bitcoin\", e.BitcoinCash = \"bitcoincash\", e.Chainflip = \"chainflip\", e.Cosmos = \"cosmoshub-4\", e.Dash = \"dash\", e.Dogecoin = \"dogecoin\", e.Kujira = \"kaiyo-1\", e.Ethereum = \"1\", e.EthereumHex = \"0x1\", e.Litecoin = \"litecoin\", e.Maya = \"mayachain-mainnet-v1\", e.MayaStagenet = \"mayachain-stagenet-v1\", e.Optimism = \"10\", e.OptimismHex = \"0xa\", e.Polkadot = \"polkadot\", e.Polygon = \"137\", e.PolygonHex = \"0x89\", e.THORChain = \"thorchain-mainnet-v1\", e.THORChainStagenet = \"thorchain-stagenet-v2\", e))(ne || {}), de = /* @__PURE__ */ ((e) => (e.Arbitrum = \"https://arb1.arbitrum.io/rpc\", e.Avalanche = \"https://node-router.thorswap.net/avalanche-c\", e.Binance = \"\", e.BinanceSmartChain = \"https://bsc-dataseed.binance.org\", e.Bitcoin = \"https://node-router.thorswap.net/bitcoin\", e.BitcoinCash = \"https://node-router.thorswap.net/bitcoin-cash\", e.Chainflip = \"wss://mainnet-archive.chainflip.io\", e.Cosmos = \"https://node-router.thorswap.net/cosmos/rpc\", e.Dash = \"https://node-router.thorswap.net/dash\", e.Dogecoin = \"https://node-router.thorswap.net/dogecoin\", e.Ethereum = \"https://node-router.thorswap.net/ethereum\", e.Kujira = \"https://rpc-kujira.synergynodes.com/\", e.Litecoin = \"https://node-router.thorswap.net/litecoin\", e.Maya = \"https://tendermint.mayachain.info\", e.MayaStagenet = \"https://stagenet.tendermint.mayachain.info\", e.Optimism = \"https://mainnet.optimism.io\", e.Polkadot = \"wss://rpc.polkadot.io\", e.Polygon = \"https://polygon-rpc.com\", e.THORChain = \"https://rpc.thorswap.net\", e.THORChainStagenet = \"https://stagenet-rpc.ninerealms.com\", e))(de || {}), S = /* @__PURE__ */ ((e) => (e.Cosmos = \"https://node-router.thorswap.net/cosmos/rest\", e.Kujira = \"https://lcd-kujira.synergynodes.com/\", e.MayanodeMainnet = \"https://mayanode.mayachain.info\", e.MayanodeStagenet = \"https://stagenet.mayanode.mayachain.info\", e.ThornodeMainnet = \"https://thornode.thorswap.net\", e.ThornodeStagenet = \"https://stagenet-thornode.ninerealms.com\", e.ThorswapApi = \"https://api.thorswap.net\", e.ThorswapStatic = \"https://static.thorswap.net\", e))(S || {});\nconst G = Object.values(F), Ve = Object.keys(F), re = G.reduce(\n (e, t) => {\n const n = Ve.find((r) => F[r] === t);\n return n && (e[t] = n), e;\n },\n {}\n);\nG.reduce(\n (e, t) => (e[t] = ne[re[t]], e),\n {}\n);\nG.reduce(\n (e, t) => (e[t] = de[re[t]], e),\n {}\n);\nG.reduce(\n (e, t) => {\n const n = `${re[t]}Hex`;\n return e[t] = ne[n], e;\n },\n {}\n);\nclass ae extends Error {\n constructor(t, n, r) {\n const s = t.status || t.status === 0 ? t.status : \"\", i = t.statusText || \"\", o = `${s} ${i}`.trim(), c = o ? `status code ${o}` : \"an unknown error\";\n super(`Request failed with ${c}`), Object.defineProperty(this, \"response\", {\n enumerable: !0,\n configurable: !0,\n writable: !0,\n value: void 0\n }), Object.defineProperty(this, \"request\", {\n enumerable: !0,\n configurable: !0,\n writable: !0,\n value: void 0\n }), Object.defineProperty(this, \"options\", {\n enumerable: !0,\n configurable: !0,\n writable: !0,\n value: void 0\n }), this.name = \"HTTPError\", this.response = t, this.request = n, this.options = r;\n }\n}\nclass pe extends Error {\n constructor(t) {\n super(\"Request timed out\"), Object.defineProperty(this, \"request\", {\n enumerable: !0,\n configurable: !0,\n writable: !0,\n value: void 0\n }), this.name = \"TimeoutError\", this.request = t;\n }\n}\nconst M = (e) => e !== null && typeof e == \"object\", x = (...e) => {\n for (const t of e)\n if ((!M(t) || Array.isArray(t)) && t !== void 0)\n throw new TypeError(\"The `options` argument must be an object\");\n return se({}, ...e);\n}, me = (e = {}, t = {}) => {\n const n = new globalThis.Headers(e), r = t instanceof globalThis.Headers, s = new globalThis.Headers(t);\n for (const [i, o] of s.entries())\n r && o === \"undefined\" || o === void 0 ? n.delete(i) : n.set(i, o);\n return n;\n}, se = (...e) => {\n let t = {}, n = {};\n for (const r of e)\n if (Array.isArray(r))\n Array.isArray(t) || (t = []), t = [...t, ...r];\n else if (M(r)) {\n for (let [s, i] of Object.entries(r))\n M(i) && s in t && (i = se(t[s], i)), t = { ...t, [s]: i };\n M(r.headers) && (n = me(n, r.headers), t.headers = n);\n }\n return t;\n}, He = (() => {\n let e = !1, t = !1;\n const n = typeof globalThis.ReadableStream == \"function\", r = typeof globalThis.Request == \"function\";\n return n && r && (t = new globalThis.Request(\"https://empty.invalid\", {\n body: new globalThis.ReadableStream(),\n method: \"POST\",\n // @ts-expect-error - Types are outdated.\n get duplex() {\n return e = !0, \"half\";\n }\n }).headers.has(\"Content-Type\")), e && !t;\n})(), xe = typeof globalThis.AbortController == \"function\", ke = typeof globalThis.ReadableStream == \"function\", Me = typeof globalThis.FormData == \"function\", _e = [\"get\", \"post\", \"put\", \"patch\", \"head\", \"delete\"], Le = {\n json: \"application/json\",\n text: \"text/*\",\n formData: \"multipart/form-data\",\n arrayBuffer: \"*/*\",\n blob: \"*/*\"\n}, J = 2147483647, Te = Symbol(\"stop\"), We = {\n json: !0,\n parseJson: !0,\n searchParams: !0,\n prefixUrl: !0,\n retry: !0,\n timeout: !0,\n hooks: !0,\n throwHttpErrors: !0,\n onDownloadProgress: !0,\n fetch: !0\n}, Ue = {\n method: !0,\n headers: !0,\n body: !0,\n mode: !0,\n credentials: !0,\n cache: !0,\n redirect: !0,\n referrer: !0,\n referrerPolicy: !0,\n integrity: !0,\n keepalive: !0,\n signal: !0,\n window: !0,\n dispatcher: !0,\n duplex: !0\n}, je = (e) => _e.includes(e) ? e.toUpperCase() : e, qe = [\"get\", \"put\", \"head\", \"delete\", \"options\", \"trace\"], Fe = [408, 413, 429, 500, 502, 503, 504], fe = [413, 429, 503], ce = {\n limit: 2,\n methods: qe,\n statusCodes: Fe,\n afterStatusCodes: fe,\n maxRetryAfter: Number.POSITIVE_INFINITY,\n backoffLimit: Number.POSITIVE_INFINITY,\n delay: (e) => 0.3 * 2 ** (e - 1) * 1e3\n}, Ge = (e = {}) => {\n if (typeof e == \"number\")\n return {\n ...ce,\n limit: e\n };\n if (e.methods && !Array.isArray(e.methods))\n throw new Error(\"retry.methods must be an array\");\n if (e.statusCodes && !Array.isArray(e.statusCodes))\n throw new Error(\"retry.statusCodes must be an array\");\n return {\n ...ce,\n ...e,\n afterStatusCodes: fe\n };\n};\nasync function Xe(e, t, n, r) {\n return new Promise((s, i) => {\n const o = setTimeout(() => {\n n && n.abort(), i(new pe(e));\n }, r.timeout);\n r.fetch(e, t).then(s).catch(i).then(() => {\n clearTimeout(o);\n });\n });\n}\nasync function Ke(e, { signal: t }) {\n return new Promise((n, r) => {\n t && (t.throwIfAborted(), t.addEventListener(\"abort\", s, { once: !0 }));\n function s() {\n clearTimeout(i), r(t.reason);\n }\n const i = setTimeout(() => {\n t == null || t.removeEventListener(\"abort\", s), n();\n }, e);\n });\n}\nconst Je = (e, t) => {\n const n = {};\n for (const r in t)\n !(r in Ue) && !(r in We) && !(r in e) && (n[r] = t[r]);\n return n;\n};\nclass W {\n static create(t, n) {\n const r = new W(t, n), s = async () => {\n if (typeof r._options.timeout == \"number\" && r._options.timeout > J)\n throw new RangeError(`The \\`timeout\\` option cannot be greater than ${J}`);\n await Promise.resolve();\n let o = await r._fetch();\n for (const c of r._options.hooks.afterResponse) {\n const a = await c(r.request, r._options, r._decorateResponse(o.clone()));\n a instanceof globalThis.Response && (o = a);\n }\n if (r._decorateResponse(o), !o.ok && r._options.throwHttpErrors) {\n let c = new ae(o, r.request, r._options);\n for (const a of r._options.hooks.beforeError)\n c = await a(c);\n throw c;\n }\n if (r._options.onDownloadProgress) {\n if (typeof r._options.onDownloadProgress != \"function\")\n throw new TypeError(\"The `onDownloadProgress` option must be a function\");\n if (!ke)\n throw new Error(\"Streams are not supported in your environment. `ReadableStream` is missing.\");\n return r._stream(o.clone(), r._options.onDownloadProgress);\n }\n return o;\n }, i = r._options.retry.methods.includes(r.request.method.toLowerCase()) ? r._retry(s) : s();\n for (const [o, c] of Object.entries(Le))\n i[o] = async () => {\n r.request.headers.set(\"accept\", r.request.headers.get(\"accept\") || c);\n const a = (await i).clone();\n if (o === \"json\") {\n if (a.status === 204 || (await a.clone().arrayBuffer()).byteLength === 0)\n return \"\";\n if (n.parseJson)\n return n.parseJson(await a.text());\n }\n return a[o]();\n };\n return i;\n }\n // eslint-disable-next-line complexity\n constructor(t, n = {}) {\n if (Object.defineProperty(this, \"request\", {\n enumerable: !0,\n configurable: !0,\n writable: !0,\n value: void 0\n }), Object.defineProperty(this, \"abortController\", {\n enumerable: !0,\n configurable: !0,\n writable: !0,\n value: void 0\n }), Object.defineProperty(this, \"_retryCount\", {\n enumerable: !0,\n configurable: !0,\n writable: !0,\n value: 0\n }), Object.defineProperty(this, \"_input\", {\n enumerable: !0,\n configurable: !0,\n writable: !0,\n value: void 0\n }), Object.defineProperty(this, \"_options\", {\n enumerable: !0,\n configurable: !0,\n writable: !0,\n value: void 0\n }), this._input = t, this._options = {\n // TODO: credentials can be removed when the spec change is implemented in all browsers. Context: https://www.chromestatus.com/feature/4539473312350208\n credentials: this._input.credentials || \"same-origin\",\n ...n,\n headers: me(this._input.headers, n.headers),\n hooks: se({\n beforeRequest: [],\n beforeRetry: [],\n beforeError: [],\n afterResponse: []\n }, n.hooks),\n method: je(n.method ?? this._input.method),\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n prefixUrl: String(n.prefixUrl || \"\"),\n retry: Ge(n.retry),\n throwHttpErrors: n.throwHttpErrors !== !1,\n timeout: n.timeout ?? 1e4,\n fetch: n.fetch ?? globalThis.fetch.bind(globalThis)\n }, typeof this._input != \"string\" && !(this._input instanceof URL || this._input instanceof globalThis.Request))\n throw new TypeError(\"`input` must be a string, URL, or Request\");\n if (this._options.prefixUrl && typeof this._input == \"string\") {\n if (this._input.startsWith(\"/\"))\n throw new Error(\"`input` must not begin with a slash when using `prefixUrl`\");\n this._options.prefixUrl.endsWith(\"/\") || (this._options.prefixUrl += \"/\"), this._input = this._options.prefixUrl + this._input;\n }\n if (xe) {\n if (this.abortController = new globalThis.AbortController(), this._options.signal) {\n const r = this._options.signal;\n this._options.signal.addEventListener(\"abort\", () => {\n this.abortController.abort(r.reason);\n });\n }\n this._options.signal = this.abortController.signal;\n }\n if (He && (this._options.duplex = \"half\"), this.request = new globalThis.Request(this._input, this._options), this._options.searchParams) {\n const r = \"?\" + (typeof this._options.searchParams == \"string\" ? this._options.searchParams.replace(/^\\?/, \"\") : new URLSearchParams(this._options.searchParams).toString()), s = this.request.url.replace(/(?:\\?.*?)?(?=#|$)/, r);\n (Me && this._options.body instanceof globalThis.FormData || this._options.body instanceof URLSearchParams) && !(this._options.headers && this._options.headers[\"content-type\"]) && this.request.headers.delete(\"content-type\"), this.request = new globalThis.Request(new globalThis.Request(s, { ...this.request }), this._options);\n }\n this._options.json !== void 0 && (this._options.body = JSON.stringify(this._options.json), this.request.headers.set(\"content-type\", this._options.headers.get(\"content-type\") ?? \"application/json\"), this.request = new globalThis.Request(this.request, { body: this._options.body }));\n }\n _calculateRetryDelay(t) {\n if (this._retryCount++, this._retryCount <= this._options.retry.limit && !(t instanceof pe)) {\n if (t instanceof ae) {\n if (!this._options.retry.statusCodes.includes(t.response.status))\n return 0;\n const r = t.response.headers.get(\"Retry-After\");\n if (r && this._options.retry.afterStatusCodes.includes(t.response.status)) {\n let s = Number(r);\n return Number.isNaN(s) ? s = Date.parse(r) - Date.now() : s *= 1e3, this._options.retry.maxRetryAfter !== void 0 && s > this._options.retry.maxRetryAfter ? 0 : s;\n }\n if (t.response.status === 413)\n return 0;\n }\n const n = this._options.retry.delay(this._retryCount);\n return Math.min(this._options.retry.backoffLimit, n);\n }\n return 0;\n }\n _decorateResponse(t) {\n return this._options.parseJson && (t.json = async () => this._options.parseJson(await t.text())), t;\n }\n async _retry(t) {\n try {\n return await t();\n } catch (n) {\n const r = Math.min(this._calculateRetryDelay(n), J);\n if (r !== 0 && this._retryCount > 0) {\n await Ke(r, { signal: this._options.signal });\n for (const s of this._options.hooks.beforeRetry)\n if (await s({\n request: this.request,\n options: this._options,\n error: n,\n retryCount: this._retryCount\n }) === Te)\n return;\n return this._retry(t);\n }\n throw n;\n }\n }\n async _fetch() {\n for (const n of this._options.hooks.beforeRequest) {\n const r = await n(this.request, this._options);\n if (r instanceof Request) {\n this.request = r;\n break;\n }\n if (r instanceof Response)\n return r;\n }\n const t = Je(this.request, this._options);\n return this._options.timeout === !1 ? this._options.fetch(this.request.clone(), t) : Xe(this.request.clone(), t, this.abortController, this._options);\n }\n /* istanbul ignore next */\n _stream(t, n) {\n const r = Number(t.headers.get(\"content-length\")) || 0;\n let s = 0;\n return t.status === 204 ? (n && n({ percent: 1, totalBytes: r, transferredBytes: s }, new Uint8Array()), new globalThis.Response(null, {\n status: t.status,\n statusText: t.statusText,\n headers: t.headers\n })) : new globalThis.Response(new globalThis.ReadableStream({\n async start(i) {\n const o = t.body.getReader();\n n && n({ percent: 0, transferredBytes: 0, totalBytes: r }, new Uint8Array());\n async function c() {\n const { done: a, value: u } = await o.read();\n if (a) {\n i.close();\n return;\n }\n if (n) {\n s += u.byteLength;\n const h = r === 0 ? 0 : s / r;\n n({ percent: h, transferredBytes: s, totalBytes: r }, u);\n }\n i.enqueue(u), await c();\n }\n await c();\n }\n }), {\n status: t.status,\n statusText: t.statusText,\n headers: t.headers\n });\n }\n}\n/*! MIT License © Sindre Sorhus */\nconst z = (e) => {\n const t = (n, r) => W.create(n, x(e, r));\n for (const n of _e)\n t[n] = (r, s) => W.create(r, x(e, s, { method: n }));\n return t.create = (n) => z(x(n)), t.extend = (n) => z(x(e, n)), t.stop = Te, t;\n}, ge = z();\nlet L;\nconst f = {\n CachedPrices: `${S.ThorswapApi}/tokenlist/cached-price`,\n GasRates: `${S.ThorswapApi}/resource-worker/gasPrice/getAll`,\n Quote: `${S.ThorswapApi}/aggregator/tokens/quote`,\n Txn: `${S.ThorswapApi}/apiusage/v2/txn`,\n TokenlistProviders: `${S.ThorswapApi}/tokenlist/providers`,\n TokenList: `${S.ThorswapStatic}/token-list`,\n Thorname: `${S.ThorswapApi}/thorname`\n}, Ae = typeof window < \"u\" ? {} : { referrer: \"https://sk.thorswap.net\", referer: \"https://sk.thorswap.net\" }, le = () => L || (L = ge.create({ headers: Ae }), L), ft = ({ apiKey: e, ...t }) => {\n L = ge.create({\n ...t,\n headers: { ...Ae, ...t.headers, \"x-api-key\": e }\n });\n}, T = {\n get: (e, t) => le().get(e, t).json(),\n post: (e, t) => le().post(e, t).json()\n}, Ye = ({ tokens: e, ...t }) => {\n const n = new URLSearchParams(), r = e.filter(\n (s, i, o) => o.findIndex((c) => c === s) === i\n );\n for (const s of r)\n n.append(\"tokens\", JSON.stringify(s));\n return t.metadata && n.append(\"metadata\", \"true\"), t.lookup && n.append(\"lookup\", \"true\"), t.sparkline && n.append(\"sparkline\", \"true\"), T.post(f.CachedPrices, {\n body: n.toString(),\n headers: { \"Content-Type\": \"application/x-www-form-urlencoded\" }\n });\n}, gt = {\n getCachedPrices: Ye,\n getQuote: (e) => T.get(f.Quote, { searchParams: e }),\n getGasRates: () => T.get(f.GasRates),\n getTxnDetails: (e) => T.get(f.Txn, { searchParams: e }),\n getTokenlistProviders: () => T.get(f.TokenlistProviders),\n getTokenList: (e) => T.get(`${f.TokenList}/${e}.json`),\n getThornameAddresses: (e) => T.get(`${f.Thorname}/${e}`),\n getThornameRegisteredChains: (e) => T.get(`${f.Thorname}/chains/${e}`),\n getThornameRlookup: (e, t) => T.get(`${f.Thorname}/rlookup`, { searchParams: { address: e, chain: t } })\n};\nvar Qe = /* @__PURE__ */ ((e) => (e.SWAP_TC_TO_TC = \"SWAP:TC-TC\", e.SWAP_ETH_TO_TC = \"SWAP:ERC20-TC\", e.SWAP_TC_TO_ETH = \"SWAP:TC-ERC20\", e.SWAP_ETH_TO_ETH = \"SWAP:ERC20-ERC20\", e.SWAP_AVAX_TO_TC = \"SWAP:AVAX-TC\", e.SWAP_TC_TO_AVAX = \"SWAP:TC-AVAX\", e.SWAP_AVAX_TO_AVAX = \"SWAP:AVAX-AVAX\", e.SWAP_ETH_TO_AVAX = \"SWAP:ETH-AVAX\", e.SWAP_AVAX_TO_ETH = \"SWAP:AVAX-ETH\", e.SWAP_TC_TO_GAIA = \"SWAP:TC-GAIA\", e.SWAP_GAIA_TO_TC = \"SWAP:GAIA-TC\", e.SWAP_TC_TO_BNB = \"SWAP:TC-BNB\", e.SWAP_BNB_TO_TC = \"SWAP:BNB-TC\", e.SWAP_TC_TO_BTC = \"SWAP:TC-BTC\", e.SWAP_BTC_TO_TC = \"SWAP:BTC-TC\", e.SWAP_TC_TO_BCH = \"SWAP:TC-BCH\", e.SWAP_BCH_TO_TC = \"SWAP:BCH-TC\", e.SWAP_TC_TO_LTC = \"SWAP:TC-LTC\", e.SWAP_LTC_TO_TC = \"SWAP:LTC-TC\", e.SWAP_TC_TO_DOGE = \"SWAP:TC-DOGE\", e.SWAP_DOGE_TO_TC = \"SWAP:DOGE-TC\", e.TC_STATUS = \"TC:STATUS\", e.TC_TRANSFER = \"TC:TRANSFER\", e.TC_DEPOSIT = \"TC:DEPOSIT\", e.TC_SEND = \"TC:SEND\", e.TC_SWITCH = \"TC:SWITCH\", e.TC_LP_ADD = \"TC:ADDLIQUIDITY\", e.TC_LP_WITHDRAW = \"TC:WITHDRAW\", e.TC_TNS_CREATE = \"TC:TNS-CREATE\", e.TC_TNS_EXTEND = \"TC:TNS-EXTEND\", e.TC_TNS_UPDATE = \"TC:TNS-UPDATE\", e.TC_SAVINGS_ADD = \"TC:ADDSAVINGS\", e.TC_SAVINGS_WITHDRAW = \"TC:WITHDRAWSAVINGS\", e.TC_LENDING_OPEN = \"TC:LENDINGOPEN\", e.TC_LENDING_CLOSE = \"TC:LENDINGCLOSE\", e.ETH_APPROVAL = \"ETH:APPROVAL\", e.ETH_STATUS = \"ETH:STATUS\", e.ETH_TRANSFER_TO_TC = \"ETH:TRANSFER:IN\", e.ETH_TRANSFER_FROM_TC = \"ETH:TRANSFER:OUT\", e.AVAX_APPROVAL = \"AVAX:APPROVAL\", e.AVAX_STATUS = \"AVAX:STATUS\", e.AVAX_TRANSFER_TO_TC = \"AVAX:TRANSFER:IN\", e.AVAX_TRANSFER_FROM_TC = \"AVAX:TRANSFER:OUT\", e.BSC_APPROVAL = \"BSC:APPROVAL\", e.BSC_STATUS = \"BSC:STATUS\", e.BSC_TRANSFER_TO_TC = \"BSC:TRANSFER:IN\", e.BSC_TRANSFER_FROM_TC = \"BSC:TRANSFER:OUT\", e.APPROVAL = \"APPROVAL\", e.STATUS = \"STATUS\", e.TRANSFER_TO_TC = \"TRANSFER:IN\", e.TRANSFER_FROM_TC = \"TRANSFER:OUT\", e.UNSUPPORTED = \"UNSUPPORTED\", e.TC_LENDING = \"TC:LENDING\", e))(Qe || {}), ze = /* @__PURE__ */ ((e) => (e.PENDING = \"pending\", e.SUCCESS = \"success\", e.CANCELLED = \"cancelled\", e.REFUNDED = \"refunded\", e.REPLACED = \"replaced\", e.ERROR = \"error\", e.UNKNOWN = \"unknown\", e.NOT_STARTED = \"not_started\", e.NOT_FOUND = \"not_found\", e.RETRIES_EXCEEDED = \"retries_exceeded\", e.STREAMING = \"streaming\", e))(ze || {}), Ze = /* @__PURE__ */ ((e) => (e[e.NOT_STARTED = 0] = \"NOT_STARTED\", e[e.SUCCESS = 1] = \"SUCCESS\", e[e.REFUNDED = 2] = \"REFUNDED\", e))(Ze || {});\nconst et = \"0x313ce567\", Ce = async ({ chain: e, to: t }) => {\n try {\n const { result: n } = await T.post(Be[e], {\n headers: {\n accept: \"*/*\",\n \"content-type\": \"application/json\",\n \"cache-control\": \"no-cache\"\n },\n body: JSON.stringify({\n id: 44,\n jsonrpc: \"2.0\",\n method: \"eth_call\",\n params: [{ to: t.toLowerCase(), data: et }, \"latest\"]\n })\n });\n return parseInt(BigInt(n).toString());\n } catch (n) {\n return console.error(n), d[e];\n }\n}, tt = (e) => {\n if (e === l.Ethereum)\n return d.ETH;\n const [, t] = e.split(\"-\");\n return t != null && t.startsWith(\"0x\") ? Ce({ chain: l.Ethereum, to: t }) : d.ETH;\n}, nt = (e) => {\n const [, t] = e.split(\"-\");\n return t != null && t.startsWith(\"0x\") ? Ce({ chain: l.Avalanche, to: t.toLowerCase() }) : d.AVAX;\n}, rt = (e) => e === l.BinanceSmartChain ? d.BSC : d.BSC, st = ({ chain: e, symbol: t }) => {\n switch (e) {\n case l.Ethereum:\n return tt(t);\n case l.Avalanche:\n return nt(t);\n case l.BinanceSmartChain:\n return rt(t);\n default:\n return d[e];\n }\n}, At = {\n [K.Average]: 1.2,\n [K.Fast]: 1.5,\n [K.Fastest]: 2\n}, Se = ({ chain: e, symbol: t }) => {\n switch (e) {\n case l.Arbitrum:\n case l.Optimism:\n return t === \"ETH\";\n case l.Maya:\n return t === \"CACAO\";\n case l.Kujira:\n return t === \"KUJI\";\n case l.Cosmos:\n return t === \"ATOM\";\n case l.Polygon:\n return t === \"MATIC\";\n case l.BinanceSmartChain:\n return t === \"BNB\";\n case l.THORChain:\n return t === \"RUNE\";\n default:\n return t === e;\n }\n}, it = (e) => {\n switch (e) {\n case `${l.Ethereum}.THOR`:\n return { identifier: \"ETH.THOR-0xa5f2211b9b8170f694421f2046281775e8468044\", decimal: 18 };\n case `${l.Ethereum}.vTHOR`:\n return { identifier: \"ETH.vTHOR-0x815c23eca83261b6ec689b60cc4a58b54bc24d8d\", decimal: 18 };\n case l.Cosmos:\n return { identifier: \"GAIA.ATOM\", decimal: d[e] };\n case l.THORChain:\n return { identifier: \"THOR.RUNE\", decimal: d[e] };\n case l.BinanceSmartChain:\n return { identifier: \"BSC.BNB\", decimal: d[e] };\n case l.Maya:\n return { identifier: \"MAYA.CACAO\", decimal: d.MAYA };\n case `${l.Maya}.MAYA`:\n return { identifier: \"MAYA.MAYA\", decimal: 4 };\n case `${l.Kujira}.USK`:\n return { identifier: `${l.Kujira}.USK`, decimal: 6 };\n default:\n return { identifier: `${e}.${e}`, decimal: d[e] };\n }\n}, ot = ({ chain: e, symbol: t }) => {\n if (t.includes(\"/\"))\n return \"Synth\";\n switch (e) {\n case l.Cosmos:\n return t === \"ATOM\" ? \"Native\" : l.Cosmos;\n case l.Kujira:\n return t === l.Kujira ? \"Native\" : l.Kujira;\n case l.Binance:\n return t === l.Binance ? \"Native\" : \"BEP2\";\n case l.BinanceSmartChain:\n return t === l.Binance ? \"Native\" : \"BEP20\";\n case l.Ethereum:\n return t === l.Ethereum ? \"Native\" : \"ERC20\";\n case l.Avalanche:\n return t === l.Avalanche ? \"Native\" : l.Avalanche;\n case l.Polygon:\n return t === l.Polygon ? \"Native\" : \"POLYGON\";\n case l.Arbitrum:\n return [l.Ethereum, l.Arbitrum].includes(t) ? \"Native\" : \"ARBITRUM\";\n case l.Optimism:\n return [l.Ethereum, l.Optimism].includes(t) ? \"Native\" : \"OPTIMISM\";\n default:\n return \"Native\";\n }\n}, Ct = (e) => {\n var o;\n const [t, ...n] = e.split(\".\"), r = e.includes(\"/\"), s = n.join(\".\"), i = (o = s == null ? void 0 : s.split(\"-\")) == null ? void 0 : o[0];\n return { chain: t, symbol: s, ticker: i, synth: r };\n}, at = new RegExp(\n /(.)\\1{6}|\\.ORG|\\.NET|\\.FINANCE|\\.COM|WWW|HTTP|\\\\\\\\|\\/\\/|[\\s$%:[\\]]/,\n \"gmi\"\n), ct = (e) => {\n const [t, n] = e.split(\".\");\n if (!Ne.includes(t))\n return !0;\n const [, r] = n.split(\"-\");\n return Se({ chain: t, symbol: n }) || !!r;\n}, St = (e) => e.filter(({ chain: t, value: n, symbol: r }) => {\n const s = `${t}.${r}`;\n return !at.test(s) && ct(s) && n !== \"0\";\n});\nfunction lt({\n liquidityUnits: e,\n poolUnits: t,\n runeDepth: n\n}) {\n const r = m(e), s = m(t), i = m(n), o = r.mul(i), c = s.mul(s).mul(2), a = s.mul(r).mul(2), u = r.mul(r), h = s.mul(s).mul(s);\n return o.mul(c.sub(a).add(u)).div(h);\n}\nfunction ut({\n liquidityUnits: e,\n poolUnits: t,\n assetDepth: n\n}) {\n const r = m(e), s = m(t), i = m(n), o = r.mul(i), c = s.mul(s).mul(2), a = s.mul(r).mul(2), u = r.mul(r), h = o.mul(c.sub(a).add(u)), $ = s.mul(s).mul(s);\n return h.div($);\n}\nfunction bt({\n percent: e,\n runeDepth: t,\n liquidityUnits: n,\n poolUnits: r\n}) {\n return lt({ runeDepth: t, liquidityUnits: n, poolUnits: r }).mul(e);\n}\nfunction yt({\n percent: e,\n assetDepth: t,\n liquidityUnits: n,\n poolUnits: r\n}) {\n return ut({ assetDepth: t, liquidityUnits: n, poolUnits: r }).mul(e);\n}\nfunction m(e) {\n return g.fromBigInt(BigInt(e), d.THOR);\n}\nfunction ht({\n liquidityUnits: e,\n poolUnits: t,\n runeDepth: n,\n assetDepth: r\n}) {\n return {\n assetAmount: m(r).mul(e).div(t),\n runeAmount: m(n).mul(e).div(t)\n };\n}\nfunction wt({\n liquidityUnits: e,\n poolUnits: t,\n runeDepth: n,\n assetDepth: r,\n percent: s\n}) {\n return Object.fromEntries(\n Object.entries(ht({ liquidityUnits: e, poolUnits: t, runeDepth: n, assetDepth: r })).map(\n ([i, o]) => [i, o.mul(s)]\n )\n );\n}\nfunction Rt({\n runeDepth: e,\n poolUnits: t,\n assetDepth: n,\n liquidityUnits: r,\n runeAmount: s,\n assetAmount: i\n}) {\n const o = new g({ value: e, decimal: 8 }), c = new g({ value: n, decimal: 8 }), a = new g({ value: t, decimal: 8 }), u = new g({ value: s, decimal: 8 }), h = new g({ value: i, decimal: 8 }), $ = u.mul(c), ie = h.mul(o), we = u.mul(h), Re = o.mul(c), Ee = a.mul($.add(ie.add(we.mul(2)))), Pe = $.add(ie.add(Re.mul(2))), oe = Ee.div(Pe), X = m(r).add(oe);\n if (oe.getBaseValue(\"number\") === 0)\n return X.div(a).getBaseValue(\"number\");\n const Oe = a.add(X);\n return X.div(Oe).getBaseValue(\"number\");\n}\nfunction Et({\n runeAmount: e,\n assetAmount: t,\n runeDepth: n,\n assetDepth: r\n}) {\n if (e === \"0\" || t === \"0\" || n === \"0\" || r === \"0\")\n return 0;\n const s = m(n), i = m(r), o = m(t), c = m(e), a = o.mul(s).sub(i.mul(c)), u = i.mul(c).add(s.mul(i));\n return Math.abs(a.div(u).getBaseValue(\"number\"));\n}\nconst Pt = (e, t) => {\n switch (e) {\n case C.LEAVE:\n case C.BOND: {\n const { address: n } = t;\n return `${e}:${n}`;\n }\n case C.UNBOND: {\n const { address: n, unbondAmount: r } = t;\n return `${e}:${n}:${r}`;\n }\n case C.THORNAME_REGISTER: {\n const { name: n, chain: r, address: s, owner: i } = t;\n return `${e}:${n}:${r}:${s}${i ? `:${i}` : \"\"}`;\n }\n case C.DEPOSIT: {\n const { chain: n, symbol: r, address: s, singleSide: i } = t;\n return i ? `${e}:${n}/${r}` : `${e}:${((c, a) => {\n switch (c) {\n case l.Litecoin:\n return \"l\";\n case l.Dogecoin:\n return \"d\";\n case l.BitcoinCash:\n return \"c\";\n default:\n return `${c}.${a}`;\n }\n })(n, r)}:${s || \"\"}`;\n }\n case C.WITHDRAW: {\n const { chain: n, ticker: r, symbol: s, basisPoints: i, targetAssetString: o, singleSide: c } = t, a = n === \"ETH\" && r !== \"ETH\" ? `${r}-${s.slice(-3)}` : s, u = !c && o ? `:${o}` : \"\";\n return `${e}:${n}${c ? \"/\" : \".\"}${a}:${i}${u}`;\n }\n case C.OPEN_LOAN:\n case C.CLOSE_LOAN: {\n const { asset: n, address: r } = t;\n return `${e}:${n}:${r}`;\n }\n default:\n return \"\";\n }\n};\nfunction Ot(e) {\n if (e < 0)\n throw new Error(\"Invalid number of year\");\n return 10 + e;\n}\nfunction $t(e) {\n if (e.length > 30)\n return !1;\n const t = /^[a-zA-Z0-9+_-]+$/g;\n return !!e.match(t);\n}\nfunction vt([e, t, n, r, s]) {\n return `${e}'/${t}'/${n}'/${r}${typeof s != \"number\" ? \"\" : `/${s}`}`;\n}\nconst ue = [...Object.values(l), \"TERRA\"];\nfunction dt(e = \"\") {\n const t = e.toUpperCase(), [n] = t.split(\".\");\n if (ue.includes(n))\n return !0;\n const [r] = t.split(\"/\");\n if (ue.includes(r))\n return !0;\n throw new Error(\n `Invalid identifier: ${e}. Expected format: <Chain>.<Ticker> or <Chain>.<Ticker>-<ContractAddress>`\n );\n}\nconst B = 8, y = (e) => 10n ** BigInt(e), v = (e) => Math.log10(parseFloat(e.toString()));\nfunction U({\n value: e,\n bigIntDecimal: t = B,\n decimal: n = B\n}) {\n if (n === 0)\n return e.toString();\n const r = e < 0n;\n let s = e.toString().substring(r ? 1 : 0);\n const i = n - (s.length - 1);\n i > 0 && (s = \"0\".repeat(i) + s);\n const o = s.length - n;\n let c = s.slice(-n);\n return parseInt(c[t]) >= 5 ? c = `${c.substring(0, t - 1)}${(parseInt(c[t - 1]) + 1).toString()}` : c = c.substring(0, t), `${r ? \"-\" : \"\"}${s.slice(0, o)}.${c}`.replace(\n /\\.?0*$/,\n \"\"\n );\n}\nvar w, I, b, E, j, be, V, Z, H, ee;\nconst q = class q {\n constructor(t) {\n R(this, w);\n R(this, b);\n R(this, j);\n R(this, V);\n R(this, H);\n _(this, \"decimalMultiplier\", 10n ** 8n);\n _(this, \"bigIntValue\", 0n);\n _(this, \"decimal\");\n const n = te(t), r = typeof t == \"object\";\n this.decimal = r ? t.decimal : void 0, this.decimalMultiplier = r && \"decimalMultiplier\" in t ? t.decimalMultiplier : y(Math.max(he(k(n)), this.decimal || 0)), p(this, j, be).call(this, n);\n }\n static fromBigInt(t, n) {\n return new q({\n decimal: n,\n value: U({ value: t, bigIntDecimal: n, decimal: n })\n });\n }\n static shiftDecimals({\n value: t,\n from: n,\n to: r\n }) {\n return q.fromBigInt(\n t.getBaseValue(\"bigint\") * y(r) / y(n),\n r\n );\n }\n set(t) {\n return new this.constructor({ decimal: this.decimal, value: t, identifier: this.toString() });\n }\n add(...t) {\n return p(this, w, I).call(this, \"add\", ...t);\n }\n sub(...t) {\n return p(this, w, I).call(this, \"sub\", ...t);\n }\n mul(...t) {\n return p(this, w, I).call(this, \"mul\", ...t);\n }\n div(...t) {\n return p(this, w, I).call(this, \"div\", ...t);\n }\n gt(t) {\n return p(this, b, E).call(this, \"gt\", t);\n }\n gte(t) {\n return p(this, b, E).call(this, \"gte\", t);\n }\n lt(t) {\n return p(this, b, E).call(this, \"lt\", t);\n }\n lte(t) {\n return p(this, b, E).call(this, \"lte\", t);\n }\n eqValue(t) {\n return p(this, b, E).call(this, \"eqValue\", t);\n }\n // @ts-expect-error False positive\n getValue(t) {\n const n = this.formatBigIntToSafeValue(\n this.bigIntValue,\n this.decimal || v(this.decimalMultiplier)\n );\n switch (t) {\n case \"number\":\n return Number(n);\n case \"string\":\n return n;\n case \"bigint\":\n return this.bigIntValue * 10n ** BigInt(this.decimal || 8n) / this.decimalMultiplier;\n }\n }\n // @ts-expect-error\n getBaseValue(t) {\n const n = this.decimalMultiplier / y(this.decimal || d.THOR), r = this.bigIntValue / n;\n switch (t) {\n case \"number\":\n return Number(r);\n case \"string\":\n return r.toString();\n case \"bigint\":\n return r;\n }\n }\n getBigIntValue(t, n) {\n if (!n && typeof t == \"object\")\n return t.bigIntValue;\n const r = te(t), s = k(r);\n return s === \"0\" || s === \"undefined\" ? 0n : p(this, H, ee).call(this, s, n);\n }\n toSignificant(t = 6) {\n const [n, r] = this.getValue(\"string\").split(\".\"), s = n || \"\", i = r || \"\";\n if ((parseInt(s) ? s.length + i.length : i.length) <= t)\n return this.getValue(\"string\");\n if (s.length >= t)\n return s.slice(0, t).padEnd(s.length, \"0\");\n if (parseInt(s))\n return `${s}.${i.slice(0, t - s.length)}`.padEnd(\n t - s.length,\n \"0\"\n );\n const c = parseInt(i), a = `${c}`.slice(0, t);\n return `0.${a.padStart(\n i.length - `${c}`.length + a.length,\n \"0\"\n )}`;\n }\n toFixed(t = 6) {\n const [n, r] = this.getValue(\"string\").split(\".\"), s = n || \"\", i = r || \"\";\n if (parseInt(s))\n return `${s}.${i.slice(0, t)}`.padEnd(t, \"0\");\n const o = parseInt(i), c = `${o}`.slice(0, t);\n return `0.${c.padStart(\n i.length - `${o}`.length + c.length,\n \"0\"\n )}`;\n }\n toAbbreviation(t = 2) {\n const n = this.getValue(\"number\"), r = [\"\", \"K\", \"M\", \"B\", \"T\", \"Q\", \"Qi\", \"S\"], s = Math.floor(Math.log10(Math.abs(n)) / 3), i = r[s];\n if (!i)\n return this.getValue(\"string\");\n const o = 10 ** (s * 3);\n return `${(n / o).toFixed(t)}${i}`;\n }\n toCurrency(t = \"$\", {\n currencyPosition: n = \"start\",\n decimal: r = 2,\n decimalSeparator: s = \".\",\n thousandSeparator: i = \",\"\n } = {}) {\n const o = this.getValue(\"number\"), [c, a = \"\"] = o.toFixed(6).split(\".\"), u = c.replace(/\\B(?=(\\d{3})+(?!\\d))/g, i), h = c || a ? c === \"0\" ? `${parseFloat(`0.${a}`)}`.replace(\".\", s) : `${u}${parseInt(a) ? `${s}${a.slice(0, r)}` : \"\"}` : \"0.00\";\n return `${n === \"start\" ? t : \"\"}${h}${n === \"end\" ? t : \"\"}`;\n }\n formatBigIntToSafeValue(t, n) {\n const r = n || this.decimal || B, s = Math.max(\n r,\n v(this.decimalMultiplier)\n ), i = t < 0n, o = t.toString().substring(i ? 1 : 0), c = s - (o.length - 1), a = c > 0 ? \"0\".repeat(c) + o : o, u = a.length - s;\n let h = a.slice(-s);\n return parseInt(h[r]) >= 5 ? h = `${h.substring(0, r - 1)}${(parseInt(h[r - 1]) + 1).toString()}` : h = h.substring(0, r), `${i ? \"-\" : \"\"}${a.slice(\n 0,\n u\n )}.${h}`.replace(/\\.?0*$/, \"\");\n }\n};\nw = new WeakSet(), I = function(t, ...n) {\n const r = p(this, V, Z).call(this, this, ...n), s = Math.max(r, v(this.decimalMultiplier)), i = y(s), o = n.reduce(\n (a, u) => {\n const h = this.getBigIntValue(u, s);\n switch (t) {\n case \"add\":\n return a + h;\n case \"sub\":\n return a - h;\n case \"mul\":\n return a * h / i;\n case \"div\": {\n if (h === 0n)\n throw new RangeError(\"Division by zero\");\n return a * i / h;\n }\n default:\n return a;\n }\n },\n //normalize is to precision multiplier base\n this.bigIntValue * i / this.decimalMultiplier\n ), c = U({\n bigIntDecimal: s,\n decimal: s,\n value: o\n });\n return new this.constructor({\n decimalMultiplier: y(s),\n decimal: this.decimal,\n value: c,\n identifier: this.toString()\n });\n}, b = new WeakSet(), E = function(t, ...n) {\n const r = p(this, V, Z).call(this, this, ...n), s = this.getBigIntValue(n[0], r), i = this.getBigIntValue(this, r);\n switch (t) {\n case \"gt\":\n return i > s;\n case \"gte\":\n return i >= s;\n case \"lt\":\n return i < s;\n case \"lte\":\n return i <= s;\n case \"eqValue\":\n return i === s;\n }\n}, j = new WeakSet(), be = function(t) {\n const n = k(t) || \"0\";\n this.bigIntValue = p(this, H, ee).call(this, n);\n}, V = new WeakSet(), Z = function(...t) {\n const n = t.map((r) => typeof r == \"object\" ? r.decimal || v(r.decimalMultiplier) : he(k(r))).filter(Boolean);\n return Math.max(...n, B);\n}, H = new WeakSet(), ee = function(t, n) {\n const r = n ? y(n) : this.decimalMultiplier, s = v(r), [i = \"\", o = \"\"] = t.split(\".\");\n return BigInt(`${i}${o.padEnd(s, \"0\")}`);\n};\nlet D = q;\nconst pt = Intl.NumberFormat(\"fullwide\", {\n useGrouping: !1,\n maximumFractionDigits: 20\n});\nfunction k(e) {\n const n = `${typeof e == \"number\" ? pt.format(e) : te(e)}`.replaceAll(\",\", \".\").split(\".\");\n return n.length > 1 ? `${n.slice(0, -1).join(\"\")}.${n.at(-1)}` : n[0];\n}\nfunction he(e) {\n var n;\n const t = ((n = e.split(\".\")[1]) == null ? void 0 : n.length) || 0;\n return Math.max(t, B);\n}\nfunction te(e) {\n return typeof e == \"object\" ? \"getValue\" in e ? e.getValue(\"string\") : e.value : e;\n}\nclass g extends D {\n eq(t) {\n return this.eqValue(t);\n }\n static fromBigInt(t, n) {\n return new g({\n decimal: n,\n value: U({ value: t, bigIntDecimal: n, decimal: n })\n });\n }\n}\nconst P = /* @__PURE__ */ new Map();\nclass A extends D {\n constructor({\n value: n,\n decimal: r,\n tax: s,\n chain: i,\n symbol: o,\n identifier: c\n }) {\n super(typeof n == \"object\" ? n : { decimal: r, value: n });\n _(this, \"address\");\n _(this, \"chain\");\n _(this, \"isGasAsset\", !1);\n _(this, \"isSynthetic\", !1);\n _(this, \"symbol\");\n _(this, \"tax\");\n _(this, \"ticker\");\n _(this, \"type\");\n const a = N(c || `${i}.${o}`);\n this.type = ot(a), this.tax = s, this.chain = a.chain, this.ticker = a.ticker, this.symbol = a.symbol, this.address = a.address, this.isSynthetic = a.isSynthetic, this.isGasAsset = a.isGasAsset;\n }\n toString() {\n return this.isSynthetic ? this.symbol : `${this.chain}.${this.symbol}`;\n }\n toUrl() {\n return this.isSynthetic ? `${this.chain}.${this.symbol.replace(\"/\", \".\")}` : this.toString();\n }\n eq({ chain: n, symbol: r }) {\n return this.chain === n && this.symbol === r;\n }\n chainId() {\n return De[this.chain];\n }\n // THOR.RUNE\n // THOR.ETH.ETH\n // ETH.THOR-0x1234567890\n static fromUrl(n, r = 0) {\n const [s, i, o] = n.split(\".\");\n if (!(s && i))\n throw new Error(\"Invalid asset url\");\n const c = s === l.THORChain && o ? `${s}.${i}/${o}` : n;\n return Y(c, r);\n }\n static fromString(n, r = 0) {\n return Y(n, r);\n }\n static fromIdentifier(n, r = 0) {\n return Y(n, r);\n }\n static fromStringSync(n, r = 0) {\n const { chain: s, isSynthetic: i } = N(n), o = P.get(n.toUpperCase());\n if (i)\n return Q(n, r);\n const { tax: c, decimal: a, identifier: u } = o || {\n decimal: d[s],\n identifier: n\n };\n return new A({\n tax: c,\n value: O(r, a),\n identifier: i ? n : u,\n decimal: i ? 8 : a\n });\n }\n static async fromStringWithBase(n, r = 0, s = d.THOR) {\n const i = D.shiftDecimals({\n value: g.fromBigInt(BigInt(r)),\n from: 0,\n to: s\n }).getBaseValue(\"string\");\n return (await A.fromString(n, r)).set(i);\n }\n static fromStringWithBaseSync(n, r = 0, s = d.THOR) {\n const { chain: i, isSynthetic: o } = N(n), c = P.get(n.toUpperCase());\n if (o)\n return Q(n, r);\n const { tax: a, decimal: u, identifier: h } = c || {\n decimal: d[i],\n identifier: n\n };\n return new A({\n tax: a,\n value: O(BigInt(r), s),\n identifier: h,\n decimal: u\n });\n }\n static fromIdentifierSync(n, r = 0) {\n const { chain: s, isSynthetic: i } = N(n), o = P.get(n);\n if (i)\n return Q(n, r);\n const { tax: c, decimal: a, identifier: u } = o || {\n decimal: d[s],\n identifier: n\n };\n return new A({ tax: c, decimal: a, identifier: u, value: O(r, a) });\n }\n static fromChainOrSignature(n, r = 0) {\n const { decimal: s, identifier: i } = it(n);\n return new A({ value: O(r, s), decimal: s, identifier: i });\n }\n static loadStaticAssets() {\n return new Promise(\n (n, r) => {\n try {\n import(\"@swapkit/tokens\").then((s) => {\n for (const i of Object.values(s))\n for (const { identifier: o, chain: c, ...a } of i.tokens)\n P.set(o.toUpperCase(), {\n identifier: o,\n decimal: \"decimals\" in a ? a.decimals : d[c]\n });\n n({ ok: !0 });\n });\n } catch (s) {\n console.error(s), r({\n ok: !1,\n error: s,\n message: \"Couldn't load static assets. Ensure you have installed @swapkit/tokens package\"\n });\n }\n }\n );\n }\n}\nfunction It(e) {\n const t = A.fromChainOrSignature(e);\n switch (e) {\n case l.Bitcoin:\n case l.Litecoin:\n case l.BitcoinCash:\n return t.set(10001e-8);\n case l.Dogecoin:\n return t.set(1.00000001);\n case l.Avalanche:\n case l.Ethereum:\n return t.set(1e-8);\n case l.THORChain:\n case l.Maya:\n return t.set(0);\n case l.Cosmos:\n return t.set(1e-6);\n default:\n return t.set(1e-8);\n }\n}\nasync function Y(e, t = 0) {\n dt(e);\n const n = P.get(e.toUpperCase()), r = (n == null ? void 0 : n.decimal) || await st(N(e));\n return n || P.set(e.toUpperCase(), { identifier: e, decimal: r }), new A({ decimal: r, value: O(t, r), identifier: e });\n}\nfunction Q(e, t = 0) {\n const [n, r] = e.split(\".\")[0].toUpperCase() === l.THORChain ? e.split(\".\").slice(1).join().split(\"/\") : e.split(\"/\");\n if (!(n && r))\n throw new Error(\"Invalid asset identifier\");\n return new A({\n decimal: 8,\n value: O(t, 8),\n identifier: `${l.THORChain}.${n}/${r}`\n });\n}\nfunction O(e, t) {\n return typeof e == \"bigint\" ? U({ value: e, bigIntDecimal: t, decimal: t }) : e;\n}\nfunction N(e) {\n const t = e.slice(0, 14).includes(\"/\"), [n, r] = e.split(\".\")[0].toUpperCase() === l.THORChain ? e.split(\".\").slice(1).join().split(\"/\") : e.split(\"/\");\n if (t && !(n && r))\n throw new Error(\"Invalid asset identifier\");\n const s = e.includes(\".\") && !t ? e : `${l.THORChain}.${r}`, [i, ...o] = s.split(\".\"), [c, a] = (t ? r : o.join(\".\")).split(\"-\"), u = t ? r : o.join(\".\");\n return {\n address: a == null ? void 0 : a.toLowerCase(),\n chain: i,\n isGasAsset: Se({ chain: i, symbol: u }),\n isSynthetic: t,\n symbol: (t ? `${n}/` : \"\") + (a ? `${c}-${(a == null ? void 0 : a.toLowerCase()) ?? \"\"}` : u),\n ticker: c\n };\n}\nconst mt = {\n /**\n * Core\n */\n core_wallet_connection_not_found: 10001,\n core_estimated_max_spendable_chain_not_supported: 10002,\n core_extend_error: 10003,\n core_inbound_data_not_found: 10004,\n core_approve_asset_address_or_from_not_found: 10005,\n core_chain_halted: 10099,\n /**\n * Core - Wallet Connection\n */\n core_wallet_xdefi_not_installed: 10101,\n core_wallet_evmwallet_not_installed: 10102,\n core_wallet_walletconnect_not_installed: 10103,\n core_wallet_keystore_not_installed: 10104,\n core_wallet_ledger_not_installed: 10105,\n core_wallet_trezor_not_installed: 10106,\n core_wallet_keplr_not_installed: 10107,\n core_wallet_okx_not_installed: 10108,\n core_wallet_keepkey_not_installed: 10109,\n /**\n * Core - Swap\n */\n core_swap_invalid_params: 10200,\n core_swap_route_not_complete: 10201,\n core_swap_asset_not_recognized: 10202,\n core_swap_contract_not_found: 10203,\n core_swap_route_transaction_not_found: 10204,\n core_swap_contract_not_supported: 10205,\n core_swap_transaction_error: 10206,\n core_swap_quote_mode_not_supported: 10207,\n core_swap_provider_not_found: 10208,\n /**\n * Core - Transaction\n */\n core_transaction_deposit_error: 10301,\n core_transaction_create_liquidity_rune_error: 10302,\n core_transaction_create_liquidity_asset_error: 10303,\n core_transaction_create_liquidity_invalid_params: 10304,\n core_transaction_add_liquidity_invalid_params: 10305,\n core_transaction_add_liquidity_no_rune_address: 10306,\n core_transaction_add_liquidity_rune_error: 10307,\n core_transaction_add_liquidity_asset_error: 10308,\n core_transaction_withdraw_error: 10309,\n core_transaction_deposit_to_pool_error: 10310,\n core_transaction_deposit_insufficient_funds_error: 10311,\n core_transaction_deposit_gas_error: 10312,\n core_transaction_invalid_sender_address: 10313,\n core_transaction_deposit_server_error: 10314,\n core_transaction_user_rejected: 10315,\n /**\n * Wallets\n */\n wallet_ledger_connection_error: 20001,\n wallet_ledger_connection_claimed: 20002,\n wallet_ledger_get_address_error: 20003,\n wallet_ledger_device_not_found: 20004,\n wallet_ledger_device_locked: 20005,\n /**\n * Chainflip\n */\n chainflip_channel_error: 30001,\n chainflip_broker_recipient_error: 30002,\n /**\n * THORChain\n */\n /**\n * Helpers\n */\n helpers_number_different_decimals: 99101\n};\nclass ye extends Error {\n constructor(t, n) {\n n && console.error(n, {\n stack: n == null ? void 0 : n.stack,\n message: n == null ? void 0 : n.message\n }), super(t, {\n cause: { code: mt[t], message: t }\n }), Object.setPrototypeOf(this, ye.prototype);\n }\n}\nexport {\n f as ApiEndpoints,\n A as AssetValue,\n D as BigIntArithmetics,\n T as RequestClient,\n Ze as StreamingSwapProgressStatus,\n gt as SwapKitApi,\n ye as SwapKitError,\n g as SwapKitNumber,\n Qe as TransactionType,\n ze as TxStatus,\n Ct as assetFromString,\n Ae as defaultRequestHeaders,\n vt as derivationPathToString,\n St as filterAssets,\n U as formatBigIntToSafeValue,\n At as gasFeeMultiplier,\n ot as getAssetType,\n ut as getAsymmetricAssetShare,\n yt as getAsymmetricAssetWithdrawAmount,\n lt as getAsymmetricRuneShare,\n bt as getAsymmetricRuneWithdrawAmount,\n it as getCommonAssetInfo,\n st as getDecimal,\n Rt as getEstimatedPoolShare,\n Et as getLiquiditySlippage,\n Pt as getMemoFor,\n It as getMinAmountByChain,\n ht as getSymmetricPoolShare,\n wt as getSymmetricWithdraw,\n Ot as getTHORNameCost,\n Se as isGasAsset,\n ft as setRequestClientConfig,\n $t as validateTHORName\n};\n//# sourceMappingURL=index.es.js.map\n","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 ProviderName = \"thorchain\" | \"chainflip\" | \"mayachain\";\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 SwapKitProviders = {\n [K in ProviderName]?: 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: ProviderName;\n config: Record<string, any>;\n };\n};\n\nexport type SwapKitReturnType = SwapKitProviders & {\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 ProviderName]?: ProviderMethods };\nexport type ProviderMethods = {\n swap: (swapParams: SwapParams) => Promise<string>;\n [key: string]: any;\n};\n\nexport type SwapKitProvider = ({ wallets, stagenet }: { wallets: Wallets; stagenet?: boolean }) => {\n name: ProviderName;\n methods: ProviderMethods;\n};\n\nexport type SwapKitWallet = {\n connectMethodName: string;\n connect: (params: ConnectWalletParams) => (connectParams: any) => void;\n};\n\nexport function SwapKit<\n ExtendedProviders extends {},\n ConnectWalletMethods extends Record<string, ReturnType<SwapKitWallet[\"connect\"]>>,\n>({\n stagenet,\n wallets,\n providers,\n config = {},\n apis,\n rpcUrls,\n}: {\n providers: SwapKitProvider[];\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 availableProviders: AvailableProviders<ExtendedProviders> = {};\n\n for (const provider of providers) {\n const { name, methods } = provider({ wallets: connectedWallets, stagenet });\n\n availableProviders[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 getProvider(providerName?: ProviderName) {\n const provider =\n (availableProviders as SwapKitProviders)[providerName as ProviderName] ||\n Object.values(availableProviders)[0];\n\n if (!provider) {\n throw new SwapKitError(\n \"core_swap_provider_not_found\",\n \"Could not find the requested provider\",\n );\n }\n\n return provider;\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: providerConfig, ...rest }: SwapParams) {\n const provider = getProvider(providerConfig?.name);\n\n return provider.swap({ provider: providerConfig, ...rest });\n }\n\n return {\n ...availableProviders,\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 getInboundData = (stagenet: boolean) => {\n const baseUrl = stagenet ? ApiUrl.ThornodeStagenet : ApiUrl.ThornodeMainnet;\n\n return RequestClient.get<InboundAddressData>(`${baseUrl}/thorchain/inbound_addresses`);\n};\n\nexport const getMimirData = (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 { getInboundData, getMimirData } 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 || 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 = 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 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/nursery/useAwait: Extended methods\n connectXDEFI = async (_chains: Chain[]): Promise<void> => {\n throw new SwapKitError(\"core_wallet_xdefi_not_installed\");\n };\n // biome-ignore lint/nursery/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/nursery/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/nursery/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/nursery/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/nursery/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/nursery/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/nursery/useAwait: Extended methods\n connectKeplr = async (_chain: Chain): Promise<void> => {\n throw new SwapKitError(\"core_wallet_keplr_not_installed\");\n };\n // biome-ignore lint/nursery/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 getInboundData(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 = (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 getMimirData(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":["O","h","B","R","y","v","H","S","a","u","o","_","m","w","l","M","T","V","c","L","A","N","i","p","f","s","E","r","n","t","d","P","k","X","I","K","x","C","b","g","$e","ve","Ie","F","ne","de","G","Ve","re","ae","pe","se","me","He","xe","ke","Me","_e","Le","J","Te","We","Ue","je","qe","Fe","fe","ce","Ge","Xe","Ke","Je","W","z","ge","Ae","le","ft","Ye","gt","Qe","ze","Ze","et","Ce","Be","tt","nt","rt","st","At","Se","it","ot","Ct","at","ct","Ne","St","lt","ut","$","bt","yt","ht","wt","Rt","ie","we","Re","Ee","Pe","oe","Oe","Et","Pt","Ot","$t","vt","ue","dt","U","j","be","Z","ee","q","te","he","D","pt","De","Y","Q","It","mt","ye","getExplorerTxUrl","chain","txHash","baseUrl","ChainToExplorerUrl","Chain","getExplorerAddressUrl","address","ApproveMode","SwapKit","stagenet","wallets","providers","config","apis","rpcUrls","connectedWallets","availableProviders","provider","name","methods","connectWalletMethods","acc","wallet","addChain","getProvider","providerName","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","providerConfig","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","getInboundData","ApiUrl","RequestClient","getMimirData","getEmptyWalletStructure","validateAddressType","_getInboundDataByChain","_addConnectedChain","_approve","_depositToPool","_thorchainTransfer","_prepareTxParams","SwapKitCore","__publicField","route","feeOptionKey","FeeOption","quoteMode","evmChain","AGG_SWAP","to","value","params","ChainToChainId","SWAP_OUT","asset","__privateGet","expiration","amountIn","SwapKitNumber","swapMemo","SWAP_IN","calldata","abi","tx","walletType","walletInstance","symbol","ticker","connectedWallet","getChecksumAddressFromAsset","TCAvalancheDepositABI","TCBscDepositABI","TCEthereumVaultAbi","errorMessage","isInsufficientFunds","isGas","isServer","isUserRejected","errorKey","runeAssetValue","runeTx","assetTx","getMemoFor","MemoType","runeAddr","assetAddr","isPendingSymmAsset","mode","isSym","runeTransfer","assetTransfer","includeRuneAddress","runeAddress","assetAddress","poolAddress","symmetric","percent","targetAsset","getMinAmountByChain","memoString","memoType","minAmount","param","estimateMaxSendableAmount","_chains","_wallet","_options","_derivationPath","_phrase","_chain","__privateAdd","chainAddressData","item","gas_rate","feeRate","gasFeeMultiplier","mimir","restTxParams"],"mappings":"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,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;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ,CAAC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"}