@swapkit/core 1.0.0-rc.94 → 1.0.0-rc.96

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/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/client/explorerUrls.ts","../src/client/thornode.ts","../src/client/index.ts"],"sourcesContent":["var O = Object.defineProperty;\nvar h = (e, a, n) => a in e ? O(e, a, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[a] = n;\nvar s = (e, a, n) => (h(e, typeof a != \"symbol\" ? a + \"\" : a, n), n);\nconst G = [\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], w = [\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], U = [\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], F = [\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 P = /* @__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))(P || {});\nconst X = [\n \"ERC20-ERC20\",\n \"ARC20-ARC20\",\n \"BEP20-BEP20\"\n /* BSC_TO_BSC */\n], k = [\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], K = [\n \"TC-TC\",\n \"TC-ERC20\",\n \"TC-ARC20\",\n \"TC-BEP20\"\n /* TC_SUPPORTED_TO_BSC */\n];\nvar m = /* @__PURE__ */ ((e) => (e.VALIDATION_ERROR = \"VALIDATION_ERROR\", e.REQUEST_PARAMETER_ERROR = \"REQUEST_PARAMETER_ERROR\", e.RESPONSE_PARSING_ERROR = \"RESPONSE_PARSING_ERROR\", e.UNSUPPORTED = \"UNSUPPORTED\", e.NOT_IMPLEMENTED = \"NOT_IMPLEMENTED\", e.INCOMPATIBLE_ASSETS_OPERATIONS = \"INCOMPATIBLE_ASSETS_OPERATIONS\", e.SERVICE_UNAVAILABLE = \"SERVICE_UNAVAILABLE\", e.DOWN_FOR_MAINTENANCE = \"DOWN_FOR_MAINTENANCE\", e.MISSING_INBOUND_INFO = \"MISSING_INBOUND_INFO\", e.QUOTE_FETCHING_ERROR = \"QUOTE_FETCHING_ERROR\", e.AIRDROP_ERROR = \"AIRDROP_ERROR\", e.UNHANDLED_ERROR = \"UNHANDLED_ERROR\", e))(m || {}), C = /* @__PURE__ */ ((e) => (e.HEALTH_CONTROLLER = \"1000\", e.LIQUIDITY_CONTROLLER = \"1001\", e.PROVIDER_CONTROLLER = \"1002\", e.QUOTE_CONTROLLER = \"1003\", e.SWAP_CONTROLLER = \"1004\", e.UTIL_CONTROLLER = \"1005\", e.AIRDROP_CONTROLLER = \"1006\", e.PROVIDER = \"2000\", e.ASSET = \"2001\", e.TOKEN_LIST = \"2002\", e.QUOTE = \"2100\", e.QUOTE_TXN_DETAILS = \"2101\", e.THORCHAIN_PROVIDER = \"3000\", e.UNISWAPV2_ETH_PROVIDER = \"3001\", e.UNISWAPV3_ETH_PROVIDER = \"3002\", e.SUSHISWAP_ETH_PROVIDER = \"3003\", e.PANCAKESWAP_BSC_PROVIDER = \"3004\", e.PANCAKESWAP_ETH_PROVIDER = \"3005\", e.ONEINCH_ETH_PROVIDER = \"3006\", e.ONEINCH_BSC_PROVIDER = \"3007\", e.ONEINCH_AVAX_PROVIDER = \"3008\", e.ZEROX_ETH_PROVIDER = \"3009\", e.WOOFI_AVAX_PROVIDER = \"3010\", e.PANGOLIN_AVAX_PROVIDER = \"3011\", e.TRADERJOE_AVAX_PROVIDER = \"3012\", e.KYBER_ETH_PROVIDER = \"3013\", e.KYBER_AVAX_PROVIDER = \"3014\", e.WOOFI_BSC_PROVIDER = \"3015\", e.STARGATE_PROVIDER = \"3016\", e.PROVIDER_UTIL = \"4000\", e.TXN_DETAILS = \"5000\", e.AIRDROP_UTIL = \"6000\", e))(C || {}), t = /* @__PURE__ */ ((e) => (e.INVALID_INPUT_PARAMETERS = \"1000\", e.UNKNOWN_PROVIDERS = \"1001\", e.CANNOT_FIND_INBOUND_ADDRESS = \"1002\", e.NO_INBOUND_ADDRESSES = \"1003\", e.CHAIN_HALTED_OR_UNSUPPORTED = \"1004\", e.MISSING_INPUT_PARAMETER = \"1005\", e.INVALID_TYPE_GENERIC = \"1100\", e.INVALID_NUMBER_STRING = \"1101\", e.INVALID_NUMBER = \"1102\", e.INVALID_BOOLEAN = \"1103\", e.INVALID_OBJECT = \"1104\", e.INVALID_ARRAY = \"1105\", e.SELL_AMOUNT_MUST_BE_POSITIVE_INTEGER = \"2000\", e.SELL_BUY_ASSETS_ARE_THE_SAME = \"2001\", e.MISSING_SOURCE_ADDRESS_FOR_SYNTH = \"2002\", e.AFF_ADDRESS_AND_BPS_OR_NEITHER = \"2003\", e.AFF_ADDRESS_TOO_LONG = \"2004\", e.AFF_BPS_INTEGER_MAX_500 = \"2005\", e.SOURCE_ADDRESS_INVALID_FOR_SELL_CHAIN = \"2006\", e.DESTINATION_ADDRESS_INVALID_FOR_BUY_CHAIN = \"2007\", e.PREFERRED_PROVIDER_NOT_SUPPORTED = \"2008\", e.DESTINATION_ADDRESS_SMART_CONTRACT = \"2009\", e.BUY_AMOUNT_MUST_BE_POSITIVE_INTEGER = \"2010\", e.SOURCE_ADDRESS_SMART_CONTRACT = \"2011\", e.SWAP_AMOUNT_TOO_LOW = \"2012\", e.INVALID_PROVIDER = \"2100\", e.MISSING_CROSS_CHAIN_PROVIDER = \"2101\", e.MISSING_AVAX_PROVIDER = \"2102\", e.MISSING_BSC_PROVIDER = \"2103\", e.MISSING_ETH_PROVIDER = \"2104\", e.INVALID_PROVIDER_FOR_SWAP_OUT = \"2105\", e.MISSING_ARB_PROVIDER = \"2106\", e.INVALID_CHAIN = \"2200\", e.INVALID_ASSET = \"2201\", e.INVALID_ASSET_IDENTIFIER = \"2202\", e.UNSUPPORTED_CHAIN = \"2204\", e.UNSUPPORTED_ASSET = \"2203\", e.UNSUPPORTED_ASSET_FOR_SWAPOUT = \"2205\", e.INVALID_SOURCE_ADDRESS = \"2300\", e.INVALID_DESTINATION_ADDRESS = \"2301\", e.THORNODE_QUOTE_GENERIC_ERROR = \"3000\", e.NOT_ENOUGH_SYNTH_BALANCE = \"3001\", e.SYNTH_MINTING_CAP_REACHED = \"3002\", e.INVALID_QUOTE_MODE = \"4000\", e.NO_QUOTES = \"4001\", e.SERVICE_UNAVAILABLE_GENERIC = \"5000\", e.MISSING_GAS_DATA_GENERIC = \"5100\", e.MISSING_TOKEN_INFO_GENERIC = \"5200\", e.CANT_FIND_TOKEN_LIST = \"5201\", e.NO_PRICE = \"5202\", e.PRICE_IS_STALE = \"5203\", e.ADDRESS_NOT_WHITELISTED = \"6000\", e.ADDRESS_ALREADY_CLAIMED = \"6001\", e.TEMPORARY_ERROR = \"9999\", e))(t || {});\nconst g = {\n [t.INVALID_INPUT_PARAMETERS]: \"Invalid input parameters: {0}.\",\n [t.UNKNOWN_PROVIDERS]: \"Unknown providers: {0}.\",\n [t.CANNOT_FIND_INBOUND_ADDRESS]: \"Cannot find inbound address.\",\n [t.NO_INBOUND_ADDRESSES]: \"No inbound addresses.\",\n [t.CHAIN_HALTED_OR_UNSUPPORTED]: \"Chain {0} halted or unsupported.\",\n [t.MISSING_INPUT_PARAMETER]: \"Missing input parameter: {0}.\",\n [t.INVALID_TYPE_GENERIC]: \"Invalid type\",\n [t.INVALID_NUMBER_STRING]: \"Invalid number string.\",\n [t.INVALID_NUMBER]: \"Invalid number.\",\n [t.INVALID_BOOLEAN]: \"Invalid boolean.\",\n [t.INVALID_OBJECT]: \"Invalid object.\",\n [t.INVALID_ARRAY]: \"Invalid array.\",\n [t.SELL_AMOUNT_MUST_BE_POSITIVE_INTEGER]: \"Sell amount must be a positive integer.\",\n [t.SELL_BUY_ASSETS_ARE_THE_SAME]: \"Sell and buy assets are the same.\",\n [t.MISSING_SOURCE_ADDRESS_FOR_SYNTH]: \"Source address is required for synth quote.\",\n [t.AFF_ADDRESS_AND_BPS_OR_NEITHER]: \"Must provide affiliateAddress and affiliateBasisPoints params, or neither.\",\n [t.AFF_ADDRESS_TOO_LONG]: \"affiliateAddress too long: 4 characters max.\",\n [t.AFF_BPS_INTEGER_MAX_500]: \"affiliateBasisPoints must be an integer between 0 and 100.\",\n [t.SOURCE_ADDRESS_INVALID_FOR_SELL_CHAIN]: \"Source address {0} invalid for sell chain.\",\n [t.DESTINATION_ADDRESS_INVALID_FOR_BUY_CHAIN]: \"Destination address {0} invalid for buy chain.\",\n [t.PREFERRED_PROVIDER_NOT_SUPPORTED]: \"Preferred provider not supported.\",\n [t.SOURCE_ADDRESS_SMART_CONTRACT]: \"Source address is a smart contract.\",\n [t.SWAP_AMOUNT_TOO_LOW]: \"Swap amount too low for this pair.\",\n [t.DESTINATION_ADDRESS_SMART_CONTRACT]: \"Destination address is a smart contract.\",\n [t.BUY_AMOUNT_MUST_BE_POSITIVE_INTEGER]: \"Buy amount must be a positive integer.\",\n [t.INVALID_PROVIDER]: \"Invalid provider {0}.\",\n [t.MISSING_CROSS_CHAIN_PROVIDER]: \"Missing cross-chain provider.\",\n [t.MISSING_AVAX_PROVIDER]: \"Missing AVAX provider.\",\n [t.MISSING_BSC_PROVIDER]: \"Missing BSC provider.\",\n [t.MISSING_ETH_PROVIDER]: \"Missing ETH provider.\",\n [t.MISSING_ARB_PROVIDER]: \"Missing ARB provider.\",\n [t.INVALID_PROVIDER_FOR_SWAP_OUT]: \"Invalid provider for swap out.\",\n [t.INVALID_CHAIN]: \"Invalid chain {0}.\",\n [t.INVALID_ASSET]: \"Invalid asset {0}.\",\n [t.UNSUPPORTED_CHAIN]: \"Unsupported chain {0}.\",\n [t.UNSUPPORTED_ASSET]: \"Unsupported asset {0}.\",\n [t.UNSUPPORTED_ASSET_FOR_SWAPOUT]: \"Unsupported asset {0} for swap out.\",\n [t.THORNODE_QUOTE_GENERIC_ERROR]: \"ThorNode quote generic error.\",\n [t.INVALID_SOURCE_ADDRESS]: \"Invalid source address {0}\",\n [t.INVALID_DESTINATION_ADDRESS]: \"Invalid destination address {0}\",\n [t.NOT_ENOUGH_SYNTH_BALANCE]: \"Source address doesn't have enough synth balance for this quote.\",\n [t.SYNTH_MINTING_CAP_REACHED]: \"Synth minting cap reached.\",\n [t.INVALID_QUOTE_MODE]: \"Invalid quote mode.\",\n [t.NO_QUOTES]: \"No quotes to service this request.\",\n [t.SERVICE_UNAVAILABLE_GENERIC]: \"Service unavailable.\",\n [t.MISSING_GAS_DATA_GENERIC]: \"Missing gas data.\",\n [t.MISSING_TOKEN_INFO_GENERIC]: \"Missing token info.\",\n [t.CANT_FIND_TOKEN_LIST]: \"Can't find tokenlist {0}.\",\n [t.NO_PRICE]: \"No price for asset {0}.\",\n [t.PRICE_IS_STALE]: \"Price is stale for asset {0}.\",\n [t.ADDRESS_NOT_WHITELISTED]: \"Address {0} not whitelisted for airdrop.\",\n [t.ADDRESS_ALREADY_CLAIMED]: \"Address {0} already claimed the airdrop.\"\n}, o = (e, a) => {\n let n = g[e];\n if (!n)\n return \"\";\n for (let i = 0; i < a.length; i++)\n n = (n == null ? void 0 : n.replace(`{${i}}`, a[i])) ?? \"\";\n return n;\n};\nclass A extends Error {\n constructor({\n status: n,\n revision: i,\n module: S,\n code: d,\n message: _,\n type: N,\n options: { shouldLog: E, shouldThrow: c, shouldTrace: f } = {\n shouldLog: !0,\n shouldThrow: !0,\n shouldTrace: !0\n },\n displayMessageParams: y\n }) {\n const l = _ || o(d, y || []) || \"\";\n super(l);\n s(this, \"status\");\n s(this, \"revision\");\n s(this, \"type\");\n s(this, \"module\");\n s(this, \"code\");\n s(this, \"message\");\n s(this, \"display\");\n s(this, \"stack\");\n s(this, \"options\");\n s(this, \"displayMessageParams\");\n this.status = n, this.revision = i || \"NO_REVISION\", this.module = S, this.message = l, this.display = o(d, y || []), this.code = d, this.type = N || m.UNHANDLED_ERROR, this.options = {\n shouldLog: E || !0,\n shouldTrace: f || !0,\n shouldThrow: c || !1\n }, this.displayMessageParams = y || [], this.options.shouldTrace && Error.captureStackTrace(this);\n }\n static fromErrorInfo(n) {\n return new A(n);\n }\n toErrorInfo() {\n return { ...this, identifier: this.identifier };\n }\n get identifier() {\n return `${this.revision}-${this.type || \"NO_TYPE\"}-${this.module}-${this.code}`;\n }\n get displayMessage() {\n return o(this.code, this.displayMessageParams || []);\n }\n handle() {\n const n = `[${this.identifier}]: ${this.message}`;\n if (this.options.shouldLog && console.error(n, `\n`, this.stack || \"\"), this.options.shouldThrow)\n throw Error(n, { cause: this.stack });\n return this.toErrorInfo();\n }\n}\nvar r = /* @__PURE__ */ ((e) => (e.Arbitrum = \"ARB\", e.Avalanche = \"AVAX\", e.Binance = \"BNB\", e.BinanceSmartChain = \"BSC\", e.Bitcoin = \"BTC\", e.BitcoinCash = \"BCH\", e.Cosmos = \"GAIA\", 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))(r || {}), V = /* @__PURE__ */ ((e) => (e.ARB = \"0x0000000000000000000000000000000000000000\", e.AVAX = \"0x0000000000000000000000000000000000000000\", e.ETH = \"0x0000000000000000000000000000000000000000\", e.BSC = \"0x0000000000000000000000000000000000000000\", e.MATIC = \"0x0000000000000000000000000000000000001010\", e.OP = \"0x4200000000000000000000000000000000000042\", e))(V || {}), B = /* @__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.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))(B || {});\nconst W = {\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 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 b = /* @__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))(b || {});\nconst Y = [\n \"DOT\",\n \"FLIP\"\n /* Chainflip */\n], j = [\n \"ETH\",\n \"AVAX\",\n \"BSC\",\n \"ARB\",\n \"OP\",\n \"MATIC\"\n /* Polygon */\n], J = [\n \"BTC\",\n \"BCH\",\n \"DOGE\",\n \"LTC\"\n /* Litecoin */\n], $ = [\n \"GAIA\",\n \"THOR\",\n \"BNB\"\n /* Binance */\n], q = [\n \"AVAX\",\n \"BNB\",\n \"BSC\",\n \"BTC\",\n \"BCH\",\n \"GAIA\",\n \"DOGE\",\n \"ETH\",\n \"LTC\",\n \"THOR\"\n /* THORChain */\n];\nvar u = /* @__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.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))(u || {}), I = /* @__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.Kujira = \"https://rpc-kujira.synergynodes.com/\", e.Dogecoin = \"https://node-router.thorswap.net/dogecoin\", e.Ethereum = \"https://node-router.thorswap.net/ethereum\", 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))(I || {}), x = /* @__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))(x || {});\nconst p = Object.values(r), L = Object.keys(r), T = p.reduce(\n (e, a) => {\n const n = L.find((i) => r[i] === a);\n return n && (e[a] = n), e;\n },\n {}\n), Z = p.reduce(\n (e, a) => (e[a] = u[T[a]], e),\n {}\n), z = p.reduce(\n (e, a) => (e[a] = I[T[a]], e),\n {}\n), Q = p.reduce(\n (e, a) => {\n const n = `${T[a]}Hex`;\n return e[a] = u[n], e;\n },\n {}\n), ee = {\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 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}, te = {\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 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 H = /* @__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))(H || {}), v = /* @__PURE__ */ ((e) => (e.Average = \"average\", e.Fast = \"fast\", e.Fastest = \"fastest\", e))(v || {}), D = /* @__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))(D || {}), M = /* @__PURE__ */ ((e) => (e[e.NoError = 36864] = \"NoError\", e[e.LockedDevice = 21781] = \"LockedDevice\", e[e.TC_NotFound = 65535] = \"TC_NotFound\", e))(M || {});\nexport {\n X as AGG_SWAP,\n A as ApiError,\n x as ApiUrl,\n b as BaseDecimal,\n r as Chain,\n u as ChainId,\n ee as ChainIdToChain,\n Z as ChainToChainId,\n te as ChainToExplorerUrl,\n Q as ChainToHexChainId,\n z as ChainToRPC,\n V as ContractAddress,\n $ as CosmosChainList,\n B as DerivationPath,\n t as ERROR_CODE,\n C as ERROR_MODULE,\n m as ERROR_TYPE,\n j as EVMChainList,\n v as FeeOption,\n M as LedgerErrorCode,\n H as MemoType,\n W as NetworkDerivationPath,\n P as QuoteMode,\n I as RPCUrl,\n k as SWAP_IN,\n K as SWAP_OUT,\n Y as SubstrateChainList,\n U as TCAvalancheDepositABI,\n F as TCBscDepositABI,\n w as TCEthereumVaultAbi,\n q as TCSupportedChainList,\n J as UTXOChainList,\n D as WalletOption,\n G as erc20ABI\n};\n//# sourceMappingURL=index.es.js.map\n","var ye = Object.defineProperty;\nvar we = (e, t, n) => t in e ? ye(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n;\nvar p = (e, t, n) => (we(e, typeof t != \"symbol\" ? t + \"\" : t, n), n), Ve = (e, t, n) => {\n if (!t.has(e))\n throw TypeError(\"Cannot \" + n);\n};\nvar O = (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 T = (e, t, n) => (Ve(e, t, \"access private method\"), n);\nimport { FeeOption as Y, BaseDecimal as d, Chain as a, EVMChainList as Be, ChainToRPC as Le, MemoType as E, ChainToChainId as Ue } from \"@swapkit/types\";\nvar u = /* @__PURE__ */ ((e) => (e.INVALID_INPUT_PARAMETERS = \"1000\", e.UNKNOWN_PROVIDERS = \"1001\", e.CANNOT_FIND_INBOUND_ADDRESS = \"1002\", e.NO_INBOUND_ADDRESSES = \"1003\", e.CHAIN_HALTED_OR_UNSUPPORTED = \"1004\", e.MISSING_INPUT_PARAMETER = \"1005\", e.INVALID_TYPE_GENERIC = \"1100\", e.INVALID_NUMBER_STRING = \"1101\", e.INVALID_NUMBER = \"1102\", e.INVALID_BOOLEAN = \"1103\", e.INVALID_OBJECT = \"1104\", e.INVALID_ARRAY = \"1105\", e.SELL_AMOUNT_MUST_BE_POSITIVE_INTEGER = \"2000\", e.SELL_BUY_ASSETS_ARE_THE_SAME = \"2001\", e.MISSING_SOURCE_ADDRESS_FOR_SYNTH = \"2002\", e.AFF_ADDRESS_AND_BPS_OR_NEITHER = \"2003\", e.AFF_ADDRESS_TOO_LONG = \"2004\", e.AFF_BPS_INTEGER_MAX_500 = \"2005\", e.SOURCE_ADDRESS_INVALID_FOR_SELL_CHAIN = \"2006\", e.DESTINATION_ADDRESS_INVALID_FOR_BUY_CHAIN = \"2007\", e.PREFERRED_PROVIDER_NOT_SUPPORTED = \"2008\", e.DESTINATION_ADDRESS_SMART_CONTRACT = \"2009\", e.BUY_AMOUNT_MUST_BE_POSITIVE_INTEGER = \"2010\", e.SOURCE_ADDRESS_SMART_CONTRACT = \"2011\", e.SWAP_AMOUNT_TOO_LOW = \"2012\", e.INVALID_PROVIDER = \"2100\", e.MISSING_CROSS_CHAIN_PROVIDER = \"2101\", e.MISSING_AVAX_PROVIDER = \"2102\", e.MISSING_BSC_PROVIDER = \"2103\", e.MISSING_ETH_PROVIDER = \"2104\", e.INVALID_PROVIDER_FOR_SWAP_OUT = \"2105\", e.MISSING_ARB_PROVIDER = \"2106\", e.INVALID_CHAIN = \"2200\", e.INVALID_ASSET = \"2201\", e.INVALID_ASSET_IDENTIFIER = \"2202\", e.UNSUPPORTED_CHAIN = \"2204\", e.UNSUPPORTED_ASSET = \"2203\", e.UNSUPPORTED_ASSET_FOR_SWAPOUT = \"2205\", e.INVALID_SOURCE_ADDRESS = \"2300\", e.INVALID_DESTINATION_ADDRESS = \"2301\", e.THORNODE_QUOTE_GENERIC_ERROR = \"3000\", e.NOT_ENOUGH_SYNTH_BALANCE = \"3001\", e.SYNTH_MINTING_CAP_REACHED = \"3002\", e.INVALID_QUOTE_MODE = \"4000\", e.NO_QUOTES = \"4001\", e.SERVICE_UNAVAILABLE_GENERIC = \"5000\", e.MISSING_GAS_DATA_GENERIC = \"5100\", e.MISSING_TOKEN_INFO_GENERIC = \"5200\", e.CANT_FIND_TOKEN_LIST = \"5201\", e.NO_PRICE = \"5202\", e.PRICE_IS_STALE = \"5203\", e.ADDRESS_NOT_WHITELISTED = \"6000\", e.ADDRESS_ALREADY_CLAIMED = \"6001\", e.TEMPORARY_ERROR = \"9999\", e))(u || {});\nu.INVALID_INPUT_PARAMETERS + \"\", u.UNKNOWN_PROVIDERS + \"\", u.CANNOT_FIND_INBOUND_ADDRESS + \"\", u.NO_INBOUND_ADDRESSES + \"\", u.CHAIN_HALTED_OR_UNSUPPORTED + \"\", u.MISSING_INPUT_PARAMETER + \"\", u.INVALID_TYPE_GENERIC + \"\", u.INVALID_NUMBER_STRING + \"\", u.INVALID_NUMBER + \"\", u.INVALID_BOOLEAN + \"\", u.INVALID_OBJECT + \"\", u.INVALID_ARRAY + \"\", u.SELL_AMOUNT_MUST_BE_POSITIVE_INTEGER + \"\", u.SELL_BUY_ASSETS_ARE_THE_SAME + \"\", u.MISSING_SOURCE_ADDRESS_FOR_SYNTH + \"\", u.AFF_ADDRESS_AND_BPS_OR_NEITHER + \"\", u.AFF_ADDRESS_TOO_LONG + \"\", u.AFF_BPS_INTEGER_MAX_500 + \"\", u.SOURCE_ADDRESS_INVALID_FOR_SELL_CHAIN + \"\", u.DESTINATION_ADDRESS_INVALID_FOR_BUY_CHAIN + \"\", u.PREFERRED_PROVIDER_NOT_SUPPORTED + \"\", u.SOURCE_ADDRESS_SMART_CONTRACT + \"\", u.SWAP_AMOUNT_TOO_LOW + \"\", u.DESTINATION_ADDRESS_SMART_CONTRACT + \"\", u.BUY_AMOUNT_MUST_BE_POSITIVE_INTEGER + \"\", u.INVALID_PROVIDER + \"\", u.MISSING_CROSS_CHAIN_PROVIDER + \"\", u.MISSING_AVAX_PROVIDER + \"\", u.MISSING_BSC_PROVIDER + \"\", u.MISSING_ETH_PROVIDER + \"\", u.MISSING_ARB_PROVIDER + \"\", u.INVALID_PROVIDER_FOR_SWAP_OUT + \"\", u.INVALID_CHAIN + \"\", u.INVALID_ASSET + \"\", u.UNSUPPORTED_CHAIN + \"\", u.UNSUPPORTED_ASSET + \"\", u.UNSUPPORTED_ASSET_FOR_SWAPOUT + \"\", u.THORNODE_QUOTE_GENERIC_ERROR + \"\", u.INVALID_SOURCE_ADDRESS + \"\", u.INVALID_DESTINATION_ADDRESS + \"\", u.NOT_ENOUGH_SYNTH_BALANCE + \"\", u.SYNTH_MINTING_CAP_REACHED + \"\", u.INVALID_QUOTE_MODE + \"\", u.NO_QUOTES + \"\", u.SERVICE_UNAVAILABLE_GENERIC + \"\", u.MISSING_GAS_DATA_GENERIC + \"\", u.MISSING_TOKEN_INFO_GENERIC + \"\", u.CANT_FIND_TOKEN_LIST + \"\", u.NO_PRICE + \"\", u.PRICE_IS_STALE + \"\", u.ADDRESS_NOT_WHITELISTED + \"\", u.ADDRESS_ALREADY_CLAIMED + \"\";\nvar j = /* @__PURE__ */ ((e) => (e.Arbitrum = \"ARB\", e.Avalanche = \"AVAX\", e.Binance = \"BNB\", e.BinanceSmartChain = \"BSC\", e.Bitcoin = \"BTC\", e.BitcoinCash = \"BCH\", e.Cosmos = \"GAIA\", 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))(j || {}), te = /* @__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.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))(te || {}), 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.Kujira = \"https://rpc-kujira.synergynodes.com/\", e.Dogecoin = \"https://node-router.thorswap.net/dogecoin\", e.Ethereum = \"https://node-router.thorswap.net/ethereum\", 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 || {}), R = /* @__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))(R || {});\nconst q = Object.values(j), ve = Object.keys(j), ne = q.reduce(\n (e, t) => {\n const n = ve.find((s) => j[s] === t);\n return n && (e[t] = n), e;\n },\n {}\n);\nq.reduce(\n (e, t) => (e[t] = te[ne[t]], e),\n {}\n);\nq.reduce(\n (e, t) => (e[t] = de[ne[t]], e),\n {}\n);\nq.reduce(\n (e, t) => {\n const n = `${ne[t]}Hex`;\n return e[t] = te[n], e;\n },\n {}\n);\nclass oe extends Error {\n constructor(t, n, s) {\n const r = t.status || t.status === 0 ? t.status : \"\", i = t.statusText || \"\", o = `${r} ${i}`.trim(), l = o ? `status code ${o}` : \"an unknown error\";\n super(`Request failed with ${l}`), 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 = s;\n }\n}\nclass Te 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\", v = (...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}, Ae = (e = {}, t = {}) => {\n const n = new globalThis.Headers(e), s = t instanceof globalThis.Headers, r = new globalThis.Headers(t);\n for (const [i, o] of r.entries())\n s && 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 s of e)\n if (Array.isArray(s))\n Array.isArray(t) || (t = []), t = [...t, ...s];\n else if (M(s)) {\n for (let [r, i] of Object.entries(s))\n M(i) && r in t && (i = se(t[r], i)), t = { ...t, [r]: i };\n M(s.headers) && (n = Ae(n, s.headers), t.headers = n);\n }\n return t;\n}, $e = (() => {\n let e = !1, t = !1;\n const n = typeof globalThis.ReadableStream == \"function\", s = typeof globalThis.Request == \"function\";\n return n && s && (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})(), Me = typeof globalThis.AbortController == \"function\", He = typeof globalThis.ReadableStream == \"function\", Fe = typeof globalThis.FormData == \"function\", pe = [\"get\", \"post\", \"put\", \"patch\", \"head\", \"delete\"], xe = {\n json: \"application/json\",\n text: \"text/*\",\n formData: \"multipart/form-data\",\n arrayBuffer: \"*/*\",\n blob: \"*/*\"\n}, K = 2147483647, Se = Symbol(\"stop\"), Ge = {\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}, We = {\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}, ke = (e) => pe.includes(e) ? e.toUpperCase() : e, je = [\"get\", \"put\", \"head\", \"delete\", \"options\", \"trace\"], qe = [408, 413, 429, 500, 502, 503, 504], me = [413, 429, 503], ce = {\n limit: 2,\n methods: je,\n statusCodes: qe,\n afterStatusCodes: me,\n maxRetryAfter: Number.POSITIVE_INFINITY,\n backoffLimit: Number.POSITIVE_INFINITY,\n delay: (e) => 0.3 * 2 ** (e - 1) * 1e3\n}, Xe = (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: me\n };\n};\nasync function Ye(e, t, n, s) {\n return new Promise((r, i) => {\n const o = setTimeout(() => {\n n && n.abort(), i(new Te(e));\n }, s.timeout);\n s.fetch(e, t).then(r).catch(i).then(() => {\n clearTimeout(o);\n });\n });\n}\nasync function Ke(e, { signal: t }) {\n return new Promise((n, s) => {\n t && (t.throwIfAborted(), t.addEventListener(\"abort\", r, { once: !0 }));\n function r() {\n clearTimeout(i), s(t.reason);\n }\n const i = setTimeout(() => {\n t == null || t.removeEventListener(\"abort\", r), n();\n }, e);\n });\n}\nconst Je = (e, t) => {\n const n = {};\n for (const s in t)\n !(s in We) && !(s in Ge) && !(s in e) && (n[s] = t[s]);\n return n;\n};\nclass x {\n static create(t, n) {\n const s = new x(t, n), r = async () => {\n if (typeof s._options.timeout == \"number\" && s._options.timeout > K)\n throw new RangeError(`The \\`timeout\\` option cannot be greater than ${K}`);\n await Promise.resolve();\n let o = await s._fetch();\n for (const l of s._options.hooks.afterResponse) {\n const c = await l(s.request, s._options, s._decorateResponse(o.clone()));\n c instanceof globalThis.Response && (o = c);\n }\n if (s._decorateResponse(o), !o.ok && s._options.throwHttpErrors) {\n let l = new oe(o, s.request, s._options);\n for (const c of s._options.hooks.beforeError)\n l = await c(l);\n throw l;\n }\n if (s._options.onDownloadProgress) {\n if (typeof s._options.onDownloadProgress != \"function\")\n throw new TypeError(\"The `onDownloadProgress` option must be a function\");\n if (!He)\n throw new Error(\"Streams are not supported in your environment. `ReadableStream` is missing.\");\n return s._stream(o.clone(), s._options.onDownloadProgress);\n }\n return o;\n }, i = s._options.retry.methods.includes(s.request.method.toLowerCase()) ? s._retry(r) : r();\n for (const [o, l] of Object.entries(xe))\n i[o] = async () => {\n s.request.headers.set(\"accept\", s.request.headers.get(\"accept\") || l);\n const c = (await i).clone();\n if (o === \"json\") {\n if (c.status === 204 || (await c.clone().arrayBuffer()).byteLength === 0)\n return \"\";\n if (n.parseJson)\n return n.parseJson(await c.text());\n }\n return c[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: Ae(this._input.headers, n.headers),\n hooks: se({\n beforeRequest: [],\n beforeRetry: [],\n beforeError: [],\n afterResponse: []\n }, n.hooks),\n method: ke(n.method ?? this._input.method),\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n prefixUrl: String(n.prefixUrl || \"\"),\n retry: Xe(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 (Me) {\n if (this.abortController = new globalThis.AbortController(), this._options.signal) {\n const s = this._options.signal;\n this._options.signal.addEventListener(\"abort\", () => {\n this.abortController.abort(s.reason);\n });\n }\n this._options.signal = this.abortController.signal;\n }\n if ($e && (this._options.duplex = \"half\"), this.request = new globalThis.Request(this._input, this._options), this._options.searchParams) {\n const s = \"?\" + (typeof this._options.searchParams == \"string\" ? this._options.searchParams.replace(/^\\?/, \"\") : new URLSearchParams(this._options.searchParams).toString()), r = this.request.url.replace(/(?:\\?.*?)?(?=#|$)/, s);\n (Fe && 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(r, { ...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 Te)) {\n if (t instanceof oe) {\n if (!this._options.retry.statusCodes.includes(t.response.status))\n return 0;\n const s = t.response.headers.get(\"Retry-After\");\n if (s && this._options.retry.afterStatusCodes.includes(t.response.status)) {\n let r = Number(s);\n return Number.isNaN(r) ? r = Date.parse(s) - Date.now() : r *= 1e3, this._options.retry.maxRetryAfter !== void 0 && r > this._options.retry.maxRetryAfter ? 0 : r;\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 s = Math.min(this._calculateRetryDelay(n), K);\n if (s !== 0 && this._retryCount > 0) {\n await Ke(s, { signal: this._options.signal });\n for (const r of this._options.hooks.beforeRetry)\n if (await r({\n request: this.request,\n options: this._options,\n error: n,\n retryCount: this._retryCount\n }) === Se)\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 s = await n(this.request, this._options);\n if (s instanceof Request) {\n this.request = s;\n break;\n }\n if (s instanceof Response)\n return s;\n }\n const t = Je(this.request, this._options);\n return this._options.timeout === !1 ? this._options.fetch(this.request.clone(), t) : Ye(this.request.clone(), t, this.abortController, this._options);\n }\n /* istanbul ignore next */\n _stream(t, n) {\n const s = Number(t.headers.get(\"content-length\")) || 0;\n let r = 0;\n return t.status === 204 ? (n && n({ percent: 1, totalBytes: s, transferredBytes: r }, 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: s }, new Uint8Array());\n async function l() {\n const { done: c, value: _ } = await o.read();\n if (c) {\n i.close();\n return;\n }\n if (n) {\n r += _.byteLength;\n const h = s === 0 ? 0 : r / s;\n n({ percent: h, transferredBytes: r, totalBytes: s }, _);\n }\n i.enqueue(_), await l();\n }\n await l();\n }\n }), {\n status: t.status,\n statusText: t.statusText,\n headers: t.headers\n });\n }\n}\n/*! MIT License © Sindre Sorhus */\nconst Q = (e) => {\n const t = (n, s) => x.create(n, v(e, s));\n for (const n of pe)\n t[n] = (s, r) => x.create(s, v(e, r, { method: n }));\n return t.create = (n) => Q(v(n)), t.extend = (n) => Q(v(e, n)), t.stop = Se, t;\n}, Ee = Q();\nlet H;\nconst m = {\n CachedPrices: `${R.ThorswapApi}/tokenlist/cached-price`,\n GasRates: `${R.ThorswapApi}/resource-worker/gasPrice/getAll`,\n Quote: `${R.ThorswapApi}/aggregator/tokens/quote`,\n Txn: `${R.ThorswapApi}/apiusage/v2/txn`,\n TokenlistProviders: `${R.ThorswapApi}/tokenlist/providers`,\n TokenList: `${R.ThorswapStatic}/token-list`,\n Thorname: `${R.ThorswapApi}/thorname`\n}, Re = typeof window < \"u\" ? {} : { referrer: \"https://sk.thorswap.net\", referer: \"https://sk.thorswap.net\" }, le = () => H || (H = Ee.create({ headers: Re }), H), mt = ({ apiKey: e, ...t }) => {\n H = Ee.create({\n ...t,\n headers: { ...Re, ...t.headers, \"x-api-key\": e }\n });\n}, S = {\n get: (e, t) => le().get(e, t).json(),\n post: (e, t) => le().post(e, t).json()\n}, Qe = ({ tokens: e, ...t }) => {\n const n = new URLSearchParams();\n return e.filter((s, r, i) => i.findIndex((o) => o === s) === r).forEach((s) => n.append(\"tokens\", JSON.stringify(s))), t.metadata && n.append(\"metadata\", \"true\"), t.lookup && n.append(\"lookup\", \"true\"), t.sparkline && n.append(\"sparkline\", \"true\"), S.post(m.CachedPrices, {\n body: n.toString(),\n headers: { \"Content-Type\": \"application/x-www-form-urlencoded\" }\n });\n}, Et = {\n getCachedPrices: Qe,\n getQuote: (e) => S.get(m.Quote, { searchParams: e }),\n getGasRates: () => S.get(m.GasRates),\n getTxnDetails: (e) => S.get(m.Txn, { searchParams: e }),\n getTokenlistProviders: () => S.get(m.TokenlistProviders),\n getTokenList: (e) => S.get(`${m.TokenList}/${e}.json`),\n getThornameAddresses: (e) => S.get(`${m.Thorname}/${e}`),\n getThornameRegisteredChains: (e) => S.get(`${m.Thorname}/chains/${e}`),\n getThornameRlookup: (e, t) => S.get(`${m.Thorname}/rlookup`, { searchParams: { address: e, chain: t } })\n};\nvar ze = /* @__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))(ze || {}), 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 || {}), et = /* @__PURE__ */ ((e) => (e[e.NOT_STARTED = 0] = \"NOT_STARTED\", e[e.SUCCESS = 1] = \"SUCCESS\", e[e.REFUNDED = 2] = \"REFUNDED\", e))(et || {});\nconst tt = \"0x313ce567\", Ie = async ({ chain: e, to: t }) => {\n try {\n const { result: n } = await S.post(Le[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: tt }, \"latest\"]\n })\n });\n return parseInt(BigInt(n).toString());\n } catch (n) {\n return console.error(n), d[e];\n }\n}, nt = async (e) => {\n if (e === a.Ethereum)\n return d.ETH;\n const [, t] = e.split(\"-\");\n return t != null && t.startsWith(\"0x\") ? Ie({ chain: a.Ethereum, to: t }) : d.ETH;\n}, st = async (e) => {\n const [, t] = e.split(\"-\");\n return t != null && t.startsWith(\"0x\") ? Ie({ chain: a.Avalanche, to: t.toLowerCase() }) : d.AVAX;\n}, rt = async (e) => e === a.BinanceSmartChain ? d.BSC : d.BSC, it = async ({ chain: e, symbol: t }) => {\n switch (e) {\n case a.Ethereum:\n return nt(t);\n case a.Avalanche:\n return st(t);\n case a.BinanceSmartChain:\n return rt(t);\n default:\n return d[e];\n }\n}, Rt = {\n [Y.Average]: 1.2,\n [Y.Fast]: 1.5,\n [Y.Fastest]: 2\n}, fe = ({ chain: e, symbol: t }) => {\n switch (e) {\n case a.Bitcoin:\n case a.BitcoinCash:\n case a.Litecoin:\n case a.Dogecoin:\n case a.Binance:\n case a.Ethereum:\n case a.Avalanche:\n case a.Polkadot:\n case a.Chainflip:\n return t === e;\n case a.Arbitrum:\n case a.Optimism:\n return t === \"ETH\";\n case a.Maya:\n return t === \"CACAO\";\n case a.Kujira:\n return t === \"KUJI\";\n case a.Cosmos:\n return t === \"ATOM\";\n case a.Polygon:\n return t === \"MATIC\";\n case a.BinanceSmartChain:\n return t === \"BNB\";\n case a.THORChain:\n return t === \"RUNE\";\n }\n}, at = (e) => {\n switch (e) {\n case `${a.Ethereum}.THOR`:\n return { identifier: \"ETH.THOR-0xa5f2211b9b8170f694421f2046281775e8468044\", decimal: 18 };\n case `${a.Ethereum}.vTHOR`:\n return { identifier: \"ETH.vTHOR-0x815c23eca83261b6ec689b60cc4a58b54bc24d8d\", decimal: 18 };\n case a.Cosmos:\n return { identifier: \"GAIA.ATOM\", decimal: d[e] };\n case a.THORChain:\n return { identifier: \"THOR.RUNE\", decimal: d[e] };\n case a.BinanceSmartChain:\n return { identifier: \"BSC.BNB\", decimal: d[e] };\n case a.Maya:\n return { identifier: \"MAYA.CACAO\", decimal: d.MAYA };\n case `${a.Maya}.MAYA`:\n return { identifier: \"MAYA.MAYA\", decimal: 4 };\n case `${a.Kujira}.USK`:\n return { identifier: `${a.Kujira}.USK`, decimal: 6 };\n case a.Kujira:\n case a.Arbitrum:\n case a.Optimism:\n case a.BitcoinCash:\n case a.Litecoin:\n case a.Dogecoin:\n case a.Binance:\n case a.Avalanche:\n case a.Chainflip:\n case a.Polygon:\n case a.Polkadot:\n case a.Bitcoin:\n case a.Ethereum:\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 a.Bitcoin:\n case a.BitcoinCash:\n case a.Dogecoin:\n case a.Litecoin:\n case a.Maya:\n case a.THORChain:\n case a.Polkadot:\n case a.Chainflip:\n return \"Native\";\n case a.Cosmos:\n return t === \"ATOM\" ? \"Native\" : a.Cosmos;\n case a.Kujira:\n return t === a.Kujira ? \"Native\" : a.Kujira;\n case a.Binance:\n return t === a.Binance ? \"Native\" : \"BEP2\";\n case a.BinanceSmartChain:\n return t === a.Binance ? \"Native\" : \"BEP20\";\n case a.Ethereum:\n return t === a.Ethereum ? \"Native\" : \"ERC20\";\n case a.Avalanche:\n return t === a.Avalanche ? \"Native\" : a.Avalanche;\n case a.Polygon:\n return t === a.Polygon ? \"Native\" : \"POLYGON\";\n case a.Arbitrum:\n return [a.Ethereum, a.Arbitrum].includes(t) ? \"Native\" : \"ARBITRUM\";\n case a.Optimism:\n return [a.Ethereum, a.Optimism].includes(t) ? \"Native\" : \"OPTIMISM\";\n }\n}, It = (e) => {\n var o;\n const [t, ...n] = e.split(\".\"), s = e.includes(\"/\"), r = n.join(\".\"), i = (o = r == null ? void 0 : r.split(\"-\")) == null ? void 0 : o[0];\n return { chain: t, symbol: r, ticker: i, synth: s };\n}, ct = new RegExp(\n /(.)\\1{6}|\\.ORG|\\.NET|\\.FINANCE|\\.COM|WWW|HTTP|\\\\\\\\|\\/\\/|[\\s$%:[\\]]/,\n \"gmi\"\n), lt = (e) => {\n const [t, n] = e.split(\".\");\n if (!Be.includes(t))\n return !0;\n const [, s] = n.split(\"-\");\n return fe({ chain: t, symbol: n }) || !!s;\n}, ft = (e) => e.filter((t) => {\n const n = `${t.chain}.${t.symbol}`;\n return !ct.test(n) && lt(n) && t.value !== \"0\";\n});\nfunction ut({\n liquidityUnits: e,\n poolUnits: t,\n runeDepth: n\n}) {\n const s = A(e), r = A(t), i = A(n), o = s.mul(i), l = r.mul(r).mul(2), c = r.mul(s).mul(2), _ = s.mul(s), h = r.mul(r).mul(r);\n return o.mul(l.sub(c).add(_)).div(h);\n}\nfunction _t({\n liquidityUnits: e,\n poolUnits: t,\n assetDepth: n\n}) {\n const s = A(e), r = A(t), i = A(n), o = s.mul(i), l = r.mul(r).mul(2), c = r.mul(s).mul(2), _ = s.mul(s), h = o.mul(l.sub(c).add(_)), P = r.mul(r).mul(r);\n return h.div(P);\n}\nfunction Ct({\n percent: e,\n runeDepth: t,\n liquidityUnits: n,\n poolUnits: s\n}) {\n return ut({ runeDepth: t, liquidityUnits: n, poolUnits: s }).mul(e);\n}\nfunction Nt({\n percent: e,\n assetDepth: t,\n liquidityUnits: n,\n poolUnits: s\n}) {\n return _t({ assetDepth: t, liquidityUnits: n, poolUnits: s }).mul(e);\n}\nfunction A(e) {\n return I.fromBigInt(BigInt(e), d.THOR);\n}\nfunction ht({\n liquidityUnits: e,\n poolUnits: t,\n runeDepth: n,\n assetDepth: s\n}) {\n return {\n assetAmount: A(s).mul(e).div(t),\n runeAmount: A(n).mul(e).div(t)\n };\n}\nfunction gt({\n liquidityUnits: e,\n poolUnits: t,\n runeDepth: n,\n assetDepth: s,\n percent: r\n}) {\n return Object.fromEntries(\n Object.entries(ht({ liquidityUnits: e, poolUnits: t, runeDepth: n, assetDepth: s })).map(\n ([i, o]) => [i, o.mul(r)]\n )\n );\n}\nfunction Ot({\n runeDepth: e,\n poolUnits: t,\n assetDepth: n,\n liquidityUnits: s,\n runeAmount: r,\n assetAmount: i\n}) {\n const o = new I({ value: e, decimal: 8 }), l = new I({ value: n, decimal: 8 }), c = new I({ value: t, decimal: 8 }), _ = new I({ value: r, decimal: 8 }), h = new I({ value: i, decimal: 8 }), P = _.mul(l), ie = h.mul(o), ge = _.mul(h), Oe = o.mul(l), De = c.mul(P.add(ie.add(ge.mul(2)))), Pe = P.add(ie.add(Oe.mul(2))), ae = De.div(Pe), X = A(s).add(ae);\n if (ae.getBaseValue(\"number\") === 0)\n return X.div(c).getBaseValue(\"number\");\n const be = c.add(X);\n return X.div(be).getBaseValue(\"number\");\n}\nfunction Dt({\n runeAmount: e,\n assetAmount: t,\n runeDepth: n,\n assetDepth: s\n}) {\n if (e === \"0\" || t === \"0\" || n === \"0\" || s === \"0\")\n return 0;\n const r = A(n), i = A(s), o = A(t), l = A(e), c = o.mul(r).sub(i.mul(l)), _ = i.mul(l).add(r.mul(i));\n return Math.abs(c.div(_).getBaseValue(\"number\"));\n}\nconst Pt = (e, t) => {\n switch (e) {\n case E.LEAVE:\n case E.BOND: {\n const { address: n } = t;\n return `${e}:${n}`;\n }\n case E.UNBOND: {\n const { address: n, unbondAmount: s } = t;\n return `${e}:${n}:${s}`;\n }\n case E.THORNAME_REGISTER: {\n const { name: n, chain: s, address: r, owner: i } = t;\n return `${e}:${n}:${s}:${r}${i ? `:${i}` : \"\"}`;\n }\n case E.DEPOSIT: {\n const { chain: n, symbol: s, address: r, singleSide: i } = t;\n return i ? `${e}:${n}/${s}::t:0` : `${e}:${((l, c) => {\n switch (l) {\n case a.Litecoin:\n return \"l\";\n case a.Dogecoin:\n return \"d\";\n case a.BitcoinCash:\n return \"c\";\n default:\n return `${l}.${c}`;\n }\n })(n, s)}:${r || \"\"}:t:0`;\n }\n case E.WITHDRAW: {\n const { chain: n, ticker: s, symbol: r, basisPoints: i, targetAssetString: o, singleSide: l } = t, c = n === \"ETH\" && s !== \"ETH\" ? `${s}-${r.slice(-3)}` : r, _ = !l && o ? `:${o}` : \"\";\n return `${e}:${n}${l ? \"/\" : \".\"}${c}:${i}${_}`;\n }\n case E.OPEN_LOAN:\n case E.CLOSE_LOAN: {\n const { asset: n, address: s } = t;\n return `${e}:${n}:${s}`;\n }\n default:\n return \"\";\n }\n};\nfunction bt(e) {\n if (e < 0)\n throw new Error(\"Invalid number of year\");\n return 10 + e;\n}\nfunction yt(e) {\n if (e.length > 30)\n return !1;\n const t = /^[a-zA-Z0-9+_-]+$/g;\n return !!e.match(t);\n}\nfunction wt([e, t, n, s, r]) {\n return `${e}'/${t}'/${n}'/${s}${typeof r != \"number\" ? \"\" : `/${r}`}`;\n}\nconst ue = [...Object.values(a), \"TERRA\"];\nfunction dt(e = \"\") {\n const t = e.toUpperCase(), [n] = t.split(\".\");\n if (ue.includes(n))\n return !0;\n const [s] = t.split(\"/\");\n if (ue.includes(s))\n return !0;\n throw new Error(\n `Invalid identifier: ${e}. Expected format: <Chain>.<Ticker> or <Chain>.<Ticker>-<ContractAddress>`\n );\n}\nconst B = 8, C = (e) => 10n ** BigInt(e), b = (e) => Math.log10(parseFloat(e.toString()));\nfunction G({\n value: e,\n bigIntDecimal: t = B,\n decimal: n = B\n}) {\n if (n === 0)\n return e.toString();\n const s = e < 0n;\n let r = e.toString().substring(s ? 1 : 0);\n const i = n - (r.length - 1);\n i > 0 && (r = \"0\".repeat(i) + r);\n const o = r.length - n;\n let l = r.slice(-n);\n return parseInt(l[t]) >= 5 ? l = `${l.substring(0, t - 1)}${(parseInt(l[t - 1]) + 1).toString()}` : l = l.substring(0, t), `${s ? \"-\" : \"\"}${r.slice(0, o)}.${l}`.replace(\n /\\.?0*$/,\n \"\"\n );\n}\nvar N, y, f, D, k, Ce, L, z, U, Z;\nconst re = class re {\n constructor(t) {\n O(this, N);\n O(this, f);\n O(this, k);\n O(this, L);\n O(this, U);\n p(this, \"decimalMultiplier\", 10n ** 8n);\n p(this, \"bigIntValue\", 0n);\n p(this, \"decimal\");\n const n = ee(t), s = typeof t == \"object\";\n this.decimal = s ? t.decimal : void 0, this.decimalMultiplier = s && \"decimalMultiplier\" in t ? t.decimalMultiplier : C(Math.max(_e($(n)), this.decimal || 0)), T(this, k, Ce).call(this, n);\n }\n static fromBigInt(t, n) {\n return new re({\n decimal: n,\n value: G({ value: t, bigIntDecimal: n, decimal: n })\n });\n }\n static shiftDecimals({\n value: t,\n from: n,\n to: s\n }) {\n return this.fromBigInt(\n t.getBaseValue(\"bigint\") * C(s) / C(n),\n s\n );\n }\n set(t) {\n return new this.constructor({ decimal: this.decimal, value: t, identifier: this.toString() });\n }\n add(...t) {\n return T(this, N, y).call(this, \"add\", ...t);\n }\n sub(...t) {\n return T(this, N, y).call(this, \"sub\", ...t);\n }\n mul(...t) {\n return T(this, N, y).call(this, \"mul\", ...t);\n }\n div(...t) {\n return T(this, N, y).call(this, \"div\", ...t);\n }\n gt(t) {\n return T(this, f, D).call(this, \"gt\", t);\n }\n gte(t) {\n return T(this, f, D).call(this, \"gte\", t);\n }\n lt(t) {\n return T(this, f, D).call(this, \"lt\", t);\n }\n lte(t) {\n return T(this, f, D).call(this, \"lte\", t);\n }\n eqValue(t) {\n return T(this, f, D).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 || b(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 / C(this.decimal || d.THOR), s = this.bigIntValue / n;\n switch (t) {\n case \"number\":\n return Number(s);\n case \"string\":\n return s.toString();\n case \"bigint\":\n return s;\n }\n }\n getBigIntValue(t, n) {\n if (!n && typeof t == \"object\")\n return t.bigIntValue;\n const s = ee(t), r = $(s);\n return r === \"0\" || r === \"undefined\" ? 0n : T(this, U, Z).call(this, r, n);\n }\n toSignificant(t = 6) {\n const [n, s] = this.getValue(\"string\").split(\".\"), r = n || \"\", i = s || \"\";\n if ((parseInt(r) ? r.length + i.length : i.length) <= t)\n return this.getValue(\"string\");\n if (r.length >= t)\n return r.slice(0, t).padEnd(r.length, \"0\");\n if (parseInt(r))\n return `${r}.${i.slice(0, t - r.length)}`.padEnd(\n t - r.length,\n \"0\"\n );\n const l = parseInt(i), c = `${l}`.slice(0, t);\n return `0.${c.padStart(\n i.length - `${l}`.length + c.length,\n \"0\"\n )}`;\n }\n toFixed(t = 6) {\n const [n, s] = this.getValue(\"string\").split(\".\"), r = n || \"\", i = s || \"\";\n if (parseInt(r))\n return `${r}.${i.slice(0, t)}`.padEnd(t, \"0\");\n const o = parseInt(i), l = `${o}`.slice(0, t);\n return `0.${l.padStart(\n i.length - `${o}`.length + l.length,\n \"0\"\n )}`;\n }\n toAbbreviation(t = 2) {\n const n = this.getValue(\"number\"), s = [\"\", \"K\", \"M\", \"B\", \"T\", \"Q\", \"Qi\", \"S\"], r = Math.floor(Math.log10(Math.abs(n)) / 3), i = s[r];\n if (!i)\n return this.getValue(\"string\");\n const o = 10 ** (r * 3);\n return `${(n / o).toFixed(t)}${i}`;\n }\n toCurrency(t = \"$\", {\n currencyPosition: n = \"start\",\n decimal: s = 2,\n decimalSeparator: r = \".\",\n thousandSeparator: i = \",\"\n } = {}) {\n const o = this.getValue(\"number\"), [l, c = \"\"] = o.toFixed(6).split(\".\"), _ = l.replace(/\\B(?=(\\d{3})+(?!\\d))/g, i), h = !l && !c ? \"0.00\" : l === \"0\" ? `${parseFloat(`0.${c}`)}`.replace(\".\", r) : `${_}${parseInt(c) ? `${r}${c.slice(0, s)}` : \"\"}`;\n return `${n === \"start\" ? t : \"\"}${h}${n === \"end\" ? t : \"\"}`;\n }\n formatBigIntToSafeValue(t, n) {\n const s = n || this.decimal || B, r = Math.max(\n s,\n b(this.decimalMultiplier)\n ), i = t < 0n, o = t.toString().substring(i ? 1 : 0), l = r - (o.length - 1), c = l > 0 ? \"0\".repeat(l) + o : o, _ = c.length - r;\n let h = c.slice(-r);\n return parseInt(h[s]) >= 5 ? h = `${h.substring(0, s - 1)}${(parseInt(h[s - 1]) + 1).toString()}` : h = h.substring(0, s), `${i ? \"-\" : \"\"}${c.slice(\n 0,\n _\n )}.${h}`.replace(/\\.?0*$/, \"\");\n }\n};\nN = new WeakSet(), y = function(t, ...n) {\n const s = T(this, L, z).call(this, this, ...n), r = Math.max(s, b(this.decimalMultiplier)), i = C(r), o = n.reduce(\n (c, _) => {\n const h = this.getBigIntValue(_, r);\n switch (t) {\n case \"add\":\n return c + h;\n case \"sub\":\n return c - h;\n case \"mul\":\n return c * h / i;\n case \"div\": {\n if (h === 0n)\n throw new RangeError(\"Division by zero\");\n return c * i / h;\n }\n default:\n return c;\n }\n },\n //normalize is to precision multiplier base\n this.bigIntValue * i / this.decimalMultiplier\n ), l = G({\n bigIntDecimal: r,\n decimal: r,\n value: o\n });\n return new this.constructor({\n decimalMultiplier: C(r),\n decimal: this.decimal,\n value: l,\n identifier: this.toString()\n });\n}, f = new WeakSet(), D = function(t, ...n) {\n const s = T(this, L, z).call(this, this, ...n), r = this.getBigIntValue(n[0], s), i = this.getBigIntValue(this, s);\n switch (t) {\n case \"gt\":\n return i > r;\n case \"gte\":\n return i >= r;\n case \"lt\":\n return i < r;\n case \"lte\":\n return i <= r;\n case \"eqValue\":\n return i === r;\n }\n}, k = new WeakSet(), Ce = function(t) {\n const n = $(t) || \"0\";\n this.bigIntValue = T(this, U, Z).call(this, n);\n}, L = new WeakSet(), z = function(...t) {\n const n = t.map((s) => typeof s == \"object\" ? s.decimal || b(s.decimalMultiplier) : _e($(s))).filter(Boolean);\n return Math.max(...n, B);\n}, U = new WeakSet(), Z = function(t, n) {\n const s = n ? C(n) : this.decimalMultiplier, r = b(s), [i = \"\", o = \"\"] = t.split(\".\");\n return BigInt(`${i}${o.padEnd(r, \"0\")}`);\n};\nlet W = re;\nconst Tt = Intl.NumberFormat(\"fullwide\", {\n useGrouping: !1,\n maximumFractionDigits: 20\n});\nfunction $(e) {\n const n = `${typeof e == \"number\" ? Tt.format(e) : ee(e)}`.replaceAll(\",\", \".\").split(\".\");\n return n.length > 1 ? `${n.slice(0, -1).join(\"\")}.${n.at(-1)}` : n[0];\n}\nfunction _e(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 ee(e) {\n return typeof e == \"object\" ? \"getValue\" in e ? e.getValue(\"string\") : e.value : e;\n}\nconst w = /* @__PURE__ */ new Map();\nclass g extends W {\n constructor({\n value: n,\n decimal: s,\n tax: r,\n chain: i,\n symbol: o,\n identifier: l\n }) {\n super(typeof n == \"object\" ? n : { decimal: s, value: n });\n p(this, \"address\");\n p(this, \"chain\");\n p(this, \"isGasAsset\", !1);\n p(this, \"isSynthetic\", !1);\n p(this, \"symbol\");\n p(this, \"tax\");\n p(this, \"ticker\");\n p(this, \"type\");\n const c = F(l || `${i}.${o}`);\n this.type = ot(c), this.tax = r, this.chain = c.chain, this.ticker = c.ticker, this.symbol = c.symbol, this.address = c.address, this.isSynthetic = c.isSynthetic, this.isGasAsset = c.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: s }) {\n return this.chain === n && this.symbol === s;\n }\n chainId() {\n return Ue[this.chain];\n }\n // THOR.RUNE\n // THOR.ETH.ETH\n // ETH.THOR-0x1234567890\n static fromUrl(n, s = 0) {\n const [r, i, o] = n.split(\".\");\n if (!r || !i)\n throw new Error(\"Invalid asset url\");\n const l = r === a.THORChain && o ? `${r}.${i}/${o}` : n;\n return J(l, s);\n }\n static fromString(n, s = 0) {\n return J(n, s);\n }\n static fromIdentifier(n, s = 0) {\n return J(n, s);\n }\n static fromStringSync(n, s = 0) {\n const { chain: r, isSynthetic: i } = F(n), o = w.get(n.toUpperCase());\n if (i)\n return he(n, s);\n const { tax: l, decimal: c, identifier: _ } = o || {\n decimal: d[r],\n identifier: n\n };\n return new g({\n tax: l,\n value: V(s, c),\n identifier: i ? n : _,\n decimal: i ? 8 : c\n });\n }\n static fromIdentifierSync(n, s = 0) {\n const { chain: r, isSynthetic: i } = F(n), o = w.get(n);\n if (i)\n return he(n, s);\n const { tax: l, decimal: c, identifier: _ } = o || {\n decimal: d[r],\n identifier: n\n };\n return new g({ tax: l, decimal: c, identifier: _, value: V(s, c) });\n }\n static fromChainOrSignature(n, s = 0) {\n const { decimal: r, identifier: i } = at(n);\n return new g({ value: V(s, r), decimal: r, identifier: i });\n }\n static loadStaticAssets() {\n return new Promise(\n async (n, s) => {\n try {\n const r = await import(\"@swapkit/tokens\");\n Object.values(r).forEach((i) => {\n var o;\n (o = i == null ? void 0 : i.tokens) == null || o.forEach(({ identifier: l, chain: c, ..._ }) => {\n w.set(l.toUpperCase(), {\n identifier: l,\n decimal: \"decimals\" in _ ? _.decimals : d[c]\n });\n });\n }), n({ ok: !0 });\n } catch (r) {\n console.error(r), s({\n ok: !1,\n error: r,\n message: \"Couldn't load static assets. Ensure you have installed @swapkit/tokens package\"\n });\n }\n }\n );\n }\n}\nfunction Vt(e) {\n const t = g.fromChainOrSignature(e);\n switch (e) {\n case a.Bitcoin:\n case a.Litecoin:\n case a.BitcoinCash:\n return t.set(10001e-8);\n case a.Dogecoin:\n return t.set(1.00000001);\n case a.Avalanche:\n case a.Ethereum:\n return t.set(1e-8);\n case a.THORChain:\n case a.Maya:\n return t.set(0);\n case a.Cosmos:\n return t.set(1e-6);\n default:\n return t.set(1e-8);\n }\n}\nasync function J(e, t = 0) {\n dt(e);\n const n = w.get(e.toUpperCase()), s = (n == null ? void 0 : n.decimal) || await it(F(e));\n return n || w.set(e.toUpperCase(), { identifier: e, decimal: s }), new g({ decimal: s, value: V(t, s), identifier: e });\n}\nfunction he(e, t = 0) {\n const [n, s] = e.split(\".\")[0].toUpperCase() === a.THORChain ? e.split(\".\").slice(1).join().split(\"/\") : e.split(\"/\");\n if (!n || !s)\n throw new Error(\"Invalid asset identifier\");\n return new g({\n decimal: 8,\n value: V(t, 8),\n identifier: `${a.THORChain}.${n}/${s}`\n });\n}\nfunction V(e, t) {\n return typeof e == \"bigint\" ? G({ value: e, bigIntDecimal: t, decimal: t }) : e;\n}\nfunction F(e) {\n const t = e.slice(0, 14).includes(\"/\"), [n, s] = e.split(\".\")[0].toUpperCase() === a.THORChain ? e.split(\".\").slice(1).join().split(\"/\") : e.split(\"/\");\n if (t && (!n || !s))\n throw new Error(\"Invalid asset identifier\");\n const r = e.includes(\".\") && !t ? e : `${a.THORChain}.${s}`, [i, ...o] = r.split(\".\"), [l, c] = (t ? s : o.join(\".\")).split(\"-\"), _ = t ? s : o.join(\".\");\n return {\n address: c == null ? void 0 : c.toLowerCase(),\n chain: i,\n isGasAsset: fe({ chain: i, symbol: _ }),\n isSynthetic: t,\n symbol: (t ? `${n}/` : \"\") + (c ? `${l}-${(c == null ? void 0 : c.toLowerCase()) ?? \"\"}` : _),\n ticker: l\n };\n}\nconst At = {\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 /**\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 * Helpers\n */\n helpers_number_different_decimals: 99101\n};\nclass Ne extends Error {\n constructor(t, n) {\n n && console.error(n, { stack: n == null ? void 0 : n.stack, message: n == null ? void 0 : n.message }), super(t, { cause: { code: At[t], message: t } }), Object.setPrototypeOf(this, Ne.prototype);\n }\n}\nclass I extends W {\n eq(t) {\n return this.eqValue(t);\n }\n static fromBigInt(t, n) {\n return new I({\n decimal: n,\n value: G({ value: t, bigIntDecimal: n, decimal: n })\n });\n }\n}\nexport {\n m as ApiEndpoints,\n g as AssetValue,\n W as BigIntArithmetics,\n S as RequestClient,\n et as StreamingSwapProgressStatus,\n Et as SwapKitApi,\n Ne as SwapKitError,\n I as SwapKitNumber,\n ze as TransactionType,\n Ze as TxStatus,\n It as assetFromString,\n Re as defaultRequestHeaders,\n wt as derivationPathToString,\n ft as filterAssets,\n G as formatBigIntToSafeValue,\n Rt as gasFeeMultiplier,\n ot as getAssetType,\n _t as getAsymmetricAssetShare,\n Nt as getAsymmetricAssetWithdrawAmount,\n ut as getAsymmetricRuneShare,\n Ct as getAsymmetricRuneWithdrawAmount,\n at as getCommonAssetInfo,\n it as getDecimal,\n Ot as getEstimatedPoolShare,\n Dt as getLiquiditySlippage,\n Pt as getMemoFor,\n Vt as getMinAmountByChain,\n ht as getSymmetricPoolShare,\n gt as getSymmetricWithdraw,\n bt as getTHORNameCost,\n fe as isGasAsset,\n mt as setRequestClientConfig,\n yt as validateTHORName\n};\n//# sourceMappingURL=index.es.js.map\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 { 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 { 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, ThornameRegisterParam } from '@swapkit/helpers';\nimport {\n AssetValue,\n gasFeeMultiplier,\n getMemoFor,\n getMinAmountByChain,\n SwapKitError,\n SwapKitNumber,\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 './explorerUrls.ts';\nimport { getInboundData, getMimirData } from './thornode.ts';\nimport type {\n CoreTxParams,\n EVMWallet,\n SwapParams,\n ThorchainWallet,\n Wallet,\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 = async ({ chain, address }: { chain: Chain; address?: string }) => {\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\nexport class SwapKitCore<T = ''> {\n public connectedChains: Wallet = 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 ({ streamSwap, recipient, route, feeOptionKey }: SwapParams) => {\n const {\n meta: { quoteMode },\n // evmTransactionDetails: contractCallParams,\n } = route;\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.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 ? route?.streamingSwap?.transaction : route?.transaction;\n if (!transaction) throw new SwapKitError('core_swap_route_transaction_not_found');\n\n const { data, from, to, value } = route.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.calldata.fromAsset) throw new SwapKitError('core_swap_asset_not_recognized');\n const asset = await AssetValue.fromString(route.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;\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;\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) throw new SwapKitError('core_swap_contract_not_supported', { contractAddress });\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 }: CoreTxParams & { router?: string }) => {\n const { chain, symbol, ticker } = assetValue;\n const walletInstance = this.connectedWallets[chain];\n const isAddressValidated = await validateAddressType({\n address: await walletInstance?.getAddress(),\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({ assetValue, recipient, router, ...rest });\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 || error?.toString()).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 }) => {\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, assetTx;\n\n if (runeTransfer && runeAssetValue) {\n try {\n runeTx = await this.#depositToPool({\n assetValue: runeAssetValue,\n memo: getMemoFor(MemoType.DEPOSIT, { chain, symbol, address: assetAddress }),\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, { chain, symbol, address: runeAddress }),\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 = async ({\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 = async ({\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({ assetValue, memo: getMemoFor(MemoType.THORNAME_REGISTER, param) });\n\n extend = ({ wallets, config, apis = {}, rpcUrls = {} }: ExtendParams<T>) => {\n try {\n wallets.forEach((wallet) => {\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 connectXDEFI = async (_chains: Chain[]): Promise<void> => {\n throw new SwapKitError('core_wallet_xdefi_not_installed');\n };\n connectEVMWallet = async (_chains: Chain[] | Chain, _wallet: EVMWalletOptions): Promise<void> => {\n throw new SwapKitError('core_wallet_evmwallet_not_installed');\n };\n connectWalletconnect = async (_chains: Chain[], _options?: any): Promise<void> => {\n throw new SwapKitError('core_wallet_walletconnect_not_installed');\n };\n connectKeepkey = async (_chains: Chain[], _derivationPath: number[][]): Promise<string> => {\n throw new SwapKitError('core_wallet_keepkey_not_installed');\n };\n connectKeystore = async (_chains: Chain[], _phrase: string): Promise<void> => {\n throw new SwapKitError('core_wallet_keystore_not_installed');\n };\n connectLedger = async (_chains: Chain, _derivationPath: number[]): Promise<void> => {\n throw new SwapKitError('core_wallet_ledger_not_installed');\n };\n connectTrezor = async (_chains: Chain, _derivationPath: number[]): Promise<void> => {\n throw new SwapKitError('core_wallet_trezor_not_installed');\n };\n connectKeplr = async (_chain: Chain): Promise<void> => {\n throw new SwapKitError('core_wallet_keplr_not_installed');\n };\n connectOkx = async (_chains: Chain[]): Promise<void> => {\n throw new SwapKitError('core_wallet_okx_not_installed');\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 = ({ chain, wallet, walletMethods }: AddChainWalletParams) => {\n this.connectedChains[chain] = wallet;\n this.connectedWallets[chain] = walletMethods;\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 ({ memo, assetValue }: { assetValue: AssetValue; memo: string }) => {\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","a","s","G","w","U","F","P","X","k","K","m","C","t","g","o","i","A","n","S","d","_","N","E","c","f","y","l","r","V","B","W","b","Y","j","J","$","q","u","I","x","p","L","T","Z","z","Q","ee","te","H","v","D","M","ye","we","Ve","de","R","ve","ne","oe","Te","se","Ae","$e","Me","He","Fe","pe","xe","Se","Ge","We","ke","je","qe","me","ce","Xe","Ye","Ke","Je","Ee","Re","le","mt","Qe","Et","ze","Ze","et","tt","Ie","Le","nt","st","rt","it","Rt","fe","at","ot","It","ct","lt","Be","ft","ut","_t","Ct","Nt","ht","gt","Ot","ie","ge","Oe","De","Pe","ae","be","Dt","Pt","bt","yt","wt","ue","dt","Ce","re","_e","Tt","Ue","he","Vt","At","Ne","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","contractAddress","recipient","toChecksumAddress","amount","amountOutMin","data","deadline","memo","router","memoStreamingSwap","tcMemo","tcRouter","tcVault","vault","token","isGeneric","baseMemo","transactionMemo","baseParams","contractParams","getExplorerTxUrl","chain","txHash","baseUrl","ChainToExplorerUrl","Chain","getExplorerAddressUrl","address","getInboundData","stagenet","ApiUrl","RequestClient","getMimirData","getEmptyWalletStructure","acc","validateAddressType","_getInboundDataByChain","_addConnectedChain","_approve","_depositToPool","_thorchainTransfer","_prepareTxParams","SwapKitCore","__publicField","_a","potentialScamFilter","wallet","route","feeOptionKey","_b","quoteMode","evmChain","SwapKitError","AGG_SWAP","walletMethods","from","to","value","params","ChainToChainId","SWAP_OUT","asset","AssetValue","__privateGet","expiration","amountIn","assetValue","SwapKitNumber","swapMemo","SWAP_IN","calldata","getProvider","provider","abi","tx","defaultBalance","walletType","balance","error","walletInstance","rest","symbol","ticker","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","type","memoType","minAmount","param","wallets","config","apis","rpcUrls","estimateMaxSendableAmount","_chains","_wallet","_options","_derivationPath","_phrase","_chain","__privateAdd","chainAddressData","item","isGasAsset","isSynthetic","isEVMChain","walletAction","spenderAddress","FeeOption","gas_rate","feeRate","gasFeeMultiplier","mimir","restTxParams"],"mappings":"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AQ,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;AA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"}
1
+ {"version":3,"file":"index.es.js","sources":["../../types/dist/index.es.js","../../helpers/dist/index.es.js","../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/client/explorerUrls.ts","../src/client/thornode.ts","../src/client/index.ts"],"sourcesContent":["var h = Object.defineProperty;\nvar O = (e, a, n) => a in e ? h(e, a, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[a] = n;\nvar s = (e, a, n) => (O(e, typeof a != \"symbol\" ? a + \"\" : a, n), n);\nconst X = [\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], k = [\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], K = [\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], W = [\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 C = /* @__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))(C || {});\nconst Y = [\n \"ERC20-ERC20\",\n \"ARC20-ARC20\",\n \"BEP20-BEP20\"\n /* BSC_TO_BSC */\n], j = [\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], J = [\n \"TC-TC\",\n \"TC-ERC20\",\n \"TC-ARC20\",\n \"TC-BEP20\"\n /* TC_SUPPORTED_TO_BSC */\n];\nvar m = /* @__PURE__ */ ((e) => (e.VALIDATION_ERROR = \"VALIDATION_ERROR\", e.REQUEST_PARAMETER_ERROR = \"REQUEST_PARAMETER_ERROR\", e.RESPONSE_PARSING_ERROR = \"RESPONSE_PARSING_ERROR\", e.UNSUPPORTED = \"UNSUPPORTED\", e.NOT_IMPLEMENTED = \"NOT_IMPLEMENTED\", e.INCOMPATIBLE_ASSETS_OPERATIONS = \"INCOMPATIBLE_ASSETS_OPERATIONS\", e.SERVICE_UNAVAILABLE = \"SERVICE_UNAVAILABLE\", e.DOWN_FOR_MAINTENANCE = \"DOWN_FOR_MAINTENANCE\", e.MISSING_INBOUND_INFO = \"MISSING_INBOUND_INFO\", e.QUOTE_FETCHING_ERROR = \"QUOTE_FETCHING_ERROR\", e.AIRDROP_ERROR = \"AIRDROP_ERROR\", e.UNHANDLED_ERROR = \"UNHANDLED_ERROR\", e))(m || {}), P = /* @__PURE__ */ ((e) => (e.HEALTH_CONTROLLER = \"1000\", e.LIQUIDITY_CONTROLLER = \"1001\", e.PROVIDER_CONTROLLER = \"1002\", e.QUOTE_CONTROLLER = \"1003\", e.SWAP_CONTROLLER = \"1004\", e.UTIL_CONTROLLER = \"1005\", e.AIRDROP_CONTROLLER = \"1006\", e.PROVIDER = \"2000\", e.ASSET = \"2001\", e.TOKEN_LIST = \"2002\", e.QUOTE = \"2100\", e.QUOTE_TXN_DETAILS = \"2101\", e.THORCHAIN_PROVIDER = \"3000\", e.UNISWAPV2_ETH_PROVIDER = \"3001\", e.UNISWAPV3_ETH_PROVIDER = \"3002\", e.SUSHISWAP_ETH_PROVIDER = \"3003\", e.PANCAKESWAP_BSC_PROVIDER = \"3004\", e.PANCAKESWAP_ETH_PROVIDER = \"3005\", e.ONEINCH_ETH_PROVIDER = \"3006\", e.ONEINCH_BSC_PROVIDER = \"3007\", e.ONEINCH_AVAX_PROVIDER = \"3008\", e.ZEROX_ETH_PROVIDER = \"3009\", e.WOOFI_AVAX_PROVIDER = \"3010\", e.PANGOLIN_AVAX_PROVIDER = \"3011\", e.TRADERJOE_AVAX_PROVIDER = \"3012\", e.KYBER_ETH_PROVIDER = \"3013\", e.KYBER_AVAX_PROVIDER = \"3014\", e.WOOFI_BSC_PROVIDER = \"3015\", e.STARGATE_PROVIDER = \"3016\", e.PROVIDER_UTIL = \"4000\", e.TXN_DETAILS = \"5000\", e.AIRDROP_UTIL = \"6000\", e))(P || {}), t = /* @__PURE__ */ ((e) => (e.INVALID_INPUT_PARAMETERS = \"1000\", e.UNKNOWN_PROVIDERS = \"1001\", e.CANNOT_FIND_INBOUND_ADDRESS = \"1002\", e.NO_INBOUND_ADDRESSES = \"1003\", e.CHAIN_HALTED_OR_UNSUPPORTED = \"1004\", e.MISSING_INPUT_PARAMETER = \"1005\", e.INVALID_TYPE_GENERIC = \"1100\", e.INVALID_NUMBER_STRING = \"1101\", e.INVALID_NUMBER = \"1102\", e.INVALID_BOOLEAN = \"1103\", e.INVALID_OBJECT = \"1104\", e.INVALID_ARRAY = \"1105\", e.SELL_AMOUNT_MUST_BE_POSITIVE_INTEGER = \"2000\", e.SELL_BUY_ASSETS_ARE_THE_SAME = \"2001\", e.MISSING_SOURCE_ADDRESS_FOR_SYNTH = \"2002\", e.AFF_ADDRESS_AND_BPS_OR_NEITHER = \"2003\", e.AFF_ADDRESS_TOO_LONG = \"2004\", e.AFF_BPS_INTEGER_MAX_500 = \"2005\", e.SOURCE_ADDRESS_INVALID_FOR_SELL_CHAIN = \"2006\", e.DESTINATION_ADDRESS_INVALID_FOR_BUY_CHAIN = \"2007\", e.PREFERRED_PROVIDER_NOT_SUPPORTED = \"2008\", e.DESTINATION_ADDRESS_SMART_CONTRACT = \"2009\", e.BUY_AMOUNT_MUST_BE_POSITIVE_INTEGER = \"2010\", e.SOURCE_ADDRESS_SMART_CONTRACT = \"2011\", e.SWAP_AMOUNT_TOO_LOW = \"2012\", e.INVALID_PROVIDER = \"2100\", e.MISSING_CROSS_CHAIN_PROVIDER = \"2101\", e.MISSING_AVAX_PROVIDER = \"2102\", e.MISSING_BSC_PROVIDER = \"2103\", e.MISSING_ETH_PROVIDER = \"2104\", e.INVALID_PROVIDER_FOR_SWAP_OUT = \"2105\", e.MISSING_ARB_PROVIDER = \"2106\", e.INVALID_CHAIN = \"2200\", e.INVALID_ASSET = \"2201\", e.INVALID_ASSET_IDENTIFIER = \"2202\", e.UNSUPPORTED_CHAIN = \"2204\", e.UNSUPPORTED_ASSET = \"2203\", e.UNSUPPORTED_ASSET_FOR_SWAPOUT = \"2205\", e.INVALID_SOURCE_ADDRESS = \"2300\", e.INVALID_DESTINATION_ADDRESS = \"2301\", e.THORNODE_QUOTE_GENERIC_ERROR = \"3000\", e.NOT_ENOUGH_SYNTH_BALANCE = \"3001\", e.SYNTH_MINTING_CAP_REACHED = \"3002\", e.INVALID_QUOTE_MODE = \"4000\", e.NO_QUOTES = \"4001\", e.SERVICE_UNAVAILABLE_GENERIC = \"5000\", e.MISSING_GAS_DATA_GENERIC = \"5100\", e.MISSING_TOKEN_INFO_GENERIC = \"5200\", e.CANT_FIND_TOKEN_LIST = \"5201\", e.NO_PRICE = \"5202\", e.PRICE_IS_STALE = \"5203\", e.ADDRESS_NOT_WHITELISTED = \"6000\", e.ADDRESS_ALREADY_CLAIMED = \"6001\", e.TEMPORARY_ERROR = \"9999\", e))(t || {});\nconst V = {\n [t.INVALID_INPUT_PARAMETERS]: \"Invalid input parameters: {0}.\",\n [t.UNKNOWN_PROVIDERS]: \"Unknown providers: {0}.\",\n [t.CANNOT_FIND_INBOUND_ADDRESS]: \"Cannot find inbound address.\",\n [t.NO_INBOUND_ADDRESSES]: \"No inbound addresses.\",\n [t.CHAIN_HALTED_OR_UNSUPPORTED]: \"Chain {0} halted or unsupported.\",\n [t.MISSING_INPUT_PARAMETER]: \"Missing input parameter: {0}.\",\n [t.INVALID_TYPE_GENERIC]: \"Invalid type\",\n [t.INVALID_NUMBER_STRING]: \"Invalid number string.\",\n [t.INVALID_NUMBER]: \"Invalid number.\",\n [t.INVALID_BOOLEAN]: \"Invalid boolean.\",\n [t.INVALID_OBJECT]: \"Invalid object.\",\n [t.INVALID_ARRAY]: \"Invalid array.\",\n [t.SELL_AMOUNT_MUST_BE_POSITIVE_INTEGER]: \"Sell amount must be a positive integer.\",\n [t.SELL_BUY_ASSETS_ARE_THE_SAME]: \"Sell and buy assets are the same.\",\n [t.MISSING_SOURCE_ADDRESS_FOR_SYNTH]: \"Source address is required for synth quote.\",\n [t.AFF_ADDRESS_AND_BPS_OR_NEITHER]: \"Must provide affiliateAddress and affiliateBasisPoints params, or neither.\",\n [t.AFF_ADDRESS_TOO_LONG]: \"affiliateAddress too long: 4 characters max.\",\n [t.AFF_BPS_INTEGER_MAX_500]: \"affiliateBasisPoints must be an integer between 0 and 100.\",\n [t.SOURCE_ADDRESS_INVALID_FOR_SELL_CHAIN]: \"Source address {0} invalid for sell chain.\",\n [t.DESTINATION_ADDRESS_INVALID_FOR_BUY_CHAIN]: \"Destination address {0} invalid for buy chain.\",\n [t.PREFERRED_PROVIDER_NOT_SUPPORTED]: \"Preferred provider not supported.\",\n [t.SOURCE_ADDRESS_SMART_CONTRACT]: \"Source address is a smart contract.\",\n [t.SWAP_AMOUNT_TOO_LOW]: \"Swap amount too low for this pair.\",\n [t.DESTINATION_ADDRESS_SMART_CONTRACT]: \"Destination address is a smart contract.\",\n [t.BUY_AMOUNT_MUST_BE_POSITIVE_INTEGER]: \"Buy amount must be a positive integer.\",\n [t.INVALID_PROVIDER]: \"Invalid provider {0}.\",\n [t.MISSING_CROSS_CHAIN_PROVIDER]: \"Missing cross-chain provider.\",\n [t.MISSING_AVAX_PROVIDER]: \"Missing AVAX provider.\",\n [t.MISSING_BSC_PROVIDER]: \"Missing BSC provider.\",\n [t.MISSING_ETH_PROVIDER]: \"Missing ETH provider.\",\n [t.MISSING_ARB_PROVIDER]: \"Missing ARB provider.\",\n [t.INVALID_PROVIDER_FOR_SWAP_OUT]: \"Invalid provider for swap out.\",\n [t.INVALID_CHAIN]: \"Invalid chain {0}.\",\n [t.INVALID_ASSET]: \"Invalid asset {0}.\",\n [t.UNSUPPORTED_CHAIN]: \"Unsupported chain {0}.\",\n [t.UNSUPPORTED_ASSET]: \"Unsupported asset {0}.\",\n [t.UNSUPPORTED_ASSET_FOR_SWAPOUT]: \"Unsupported asset {0} for swap out.\",\n [t.THORNODE_QUOTE_GENERIC_ERROR]: \"ThorNode quote generic error.\",\n [t.INVALID_SOURCE_ADDRESS]: \"Invalid source address {0}\",\n [t.INVALID_DESTINATION_ADDRESS]: \"Invalid destination address {0}\",\n [t.NOT_ENOUGH_SYNTH_BALANCE]: \"Source address doesn't have enough synth balance for this quote.\",\n [t.SYNTH_MINTING_CAP_REACHED]: \"Synth minting cap reached.\",\n [t.INVALID_QUOTE_MODE]: \"Invalid quote mode.\",\n [t.NO_QUOTES]: \"No quotes to service this request.\",\n [t.SERVICE_UNAVAILABLE_GENERIC]: \"Service unavailable.\",\n [t.MISSING_GAS_DATA_GENERIC]: \"Missing gas data.\",\n [t.MISSING_TOKEN_INFO_GENERIC]: \"Missing token info.\",\n [t.CANT_FIND_TOKEN_LIST]: \"Can't find tokenlist {0}.\",\n [t.NO_PRICE]: \"No price for asset {0}.\",\n [t.PRICE_IS_STALE]: \"Price is stale for asset {0}.\",\n [t.ADDRESS_NOT_WHITELISTED]: \"Address {0} not whitelisted for airdrop.\",\n [t.ADDRESS_ALREADY_CLAIMED]: \"Address {0} already claimed the airdrop.\"\n}, o = (e, a) => {\n let n = V[e];\n if (!n)\n return \"\";\n for (let r = 0; r < a.length; r++)\n n = (n == null ? void 0 : n.replace(`{${r}}`, a[r])) ?? \"\";\n return n;\n};\nclass A extends Error {\n constructor({\n status: n,\n revision: r,\n module: S,\n code: d,\n message: _,\n type: N,\n options: { shouldLog: E, shouldThrow: c, shouldTrace: f } = {\n shouldLog: !0,\n shouldThrow: !0,\n shouldTrace: !0\n },\n displayMessageParams: y\n }) {\n const l = _ || o(d, y || []) || \"\";\n super(l);\n s(this, \"status\");\n s(this, \"revision\");\n s(this, \"type\");\n s(this, \"module\");\n s(this, \"code\");\n s(this, \"message\");\n s(this, \"display\");\n s(this, \"stack\");\n s(this, \"options\");\n s(this, \"displayMessageParams\");\n this.status = n, this.revision = r || \"NO_REVISION\", this.module = S, this.message = l, this.display = o(d, y || []), this.code = d, this.type = N || m.UNHANDLED_ERROR, this.options = {\n shouldLog: E || !0,\n shouldTrace: f || !0,\n shouldThrow: c || !1\n }, this.displayMessageParams = y || [], this.options.shouldTrace && Error.captureStackTrace(this);\n }\n static fromErrorInfo(n) {\n return new A(n);\n }\n toErrorInfo() {\n return { ...this, identifier: this.identifier };\n }\n get identifier() {\n return `${this.revision}-${this.type || \"NO_TYPE\"}-${this.module}-${this.code}`;\n }\n get displayMessage() {\n return o(this.code, this.displayMessageParams || []);\n }\n handle() {\n const n = `[${this.identifier}]: ${this.message}`;\n if (this.options.shouldLog && console.error(n, `\n`, this.stack || \"\"), this.options.shouldThrow)\n throw Error(n, { cause: this.stack });\n return this.toErrorInfo();\n }\n}\nvar i = /* @__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))(i || {}), g = /* @__PURE__ */ ((e) => (e.ARB = \"0x0000000000000000000000000000000000000000\", e.AVAX = \"0x0000000000000000000000000000000000000000\", e.ETH = \"0x0000000000000000000000000000000000000000\", e.BSC = \"0x0000000000000000000000000000000000000000\", e.MATIC = \"0x0000000000000000000000000000000000001010\", e.OP = \"0x4200000000000000000000000000000000000042\", e))(g || {}), b = /* @__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))(b || {});\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 B = /* @__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))(B || {});\nconst q = [\n \"DOT\",\n \"FLIP\"\n /* Chainflip */\n], x = [\n \"ETH\",\n \"AVAX\",\n \"BSC\",\n \"ARB\",\n \"OP\",\n \"MATIC\"\n /* Polygon */\n], Z = x, H = [\n \"BTC\",\n \"BCH\",\n \"DASH\",\n \"DOGE\",\n \"LTC\"\n /* Litecoin */\n], z = H, L = [\n \"GAIA\",\n \"THOR\",\n \"BNB\"\n /* Binance */\n], Q = L, D = [\n \"AVAX\",\n \"BNB\",\n \"BSC\",\n \"BTC\",\n \"BCH\",\n \"GAIA\",\n \"DOGE\",\n \"ETH\",\n \"LTC\",\n \"THOR\"\n /* THORChain */\n], ee = D;\nvar u = /* @__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))(u || {}), I = /* @__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))(I || {}), v = /* @__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))(v || {});\nconst p = Object.values(i), M = Object.keys(i), T = p.reduce(\n (e, a) => {\n const n = M.find((r) => i[r] === a);\n return n && (e[a] = n), e;\n },\n {}\n), te = p.reduce(\n (e, a) => (e[a] = u[T[a]], e),\n {}\n), ne = p.reduce(\n (e, a) => (e[a] = I[T[a]], e),\n {}\n), ae = p.reduce(\n (e, a) => {\n const n = `${T[a]}Hex`;\n return e[a] = u[n], e;\n },\n {}\n), se = {\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}, re = {\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 R = /* @__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))(R || {}), G = /* @__PURE__ */ ((e) => (e.Average = \"average\", e.Fast = \"fast\", e.Fastest = \"fastest\", e))(G || {}), w = /* @__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))(w || {}), U = /* @__PURE__ */ ((e) => (e[e.NoError = 36864] = \"NoError\", e[e.LockedDevice = 21781] = \"LockedDevice\", e[e.TC_NotFound = 65535] = \"TC_NotFound\", e))(U || {});\nexport {\n Y as AGG_SWAP,\n A as ApiError,\n v as ApiUrl,\n B as BaseDecimal,\n i as Chain,\n u as ChainId,\n se as ChainIdToChain,\n te as ChainToChainId,\n re as ChainToExplorerUrl,\n ae as ChainToHexChainId,\n ne as ChainToRPC,\n g as ContractAddress,\n Q as CosmosChainList,\n L as CosmosChains,\n b as DerivationPath,\n t as ERROR_CODE,\n P as ERROR_MODULE,\n m as ERROR_TYPE,\n Z as EVMChainList,\n x as EVMChains,\n G as FeeOption,\n U as LedgerErrorCode,\n R as MemoType,\n $ as NetworkDerivationPath,\n C as QuoteMode,\n I as RPCUrl,\n j as SWAP_IN,\n J as SWAP_OUT,\n q as SubstrateChainList,\n K as TCAvalancheDepositABI,\n W as TCBscDepositABI,\n k as TCEthereumVaultAbi,\n ee as TCSupportedChainList,\n D as TCSupportedChains,\n z as UTXOChainList,\n H as UTXOChains,\n w as WalletOption,\n X as erc20ABI\n};\n//# sourceMappingURL=index.es.js.map\n","var ye = Object.defineProperty;\nvar we = (e, t, n) => t in e ? ye(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n;\nvar p = (e, t, n) => (we(e, typeof t != \"symbol\" ? t + \"\" : t, n), n), Ve = (e, t, n) => {\n if (!t.has(e))\n throw TypeError(\"Cannot \" + n);\n};\nvar O = (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 T = (e, t, n) => (Ve(e, t, \"access private method\"), n);\nimport { FeeOption as Y, BaseDecimal as d, Chain as l, EVMChainList as Be, ChainToRPC as Ue, MemoType as E, ChainToChainId as Le } from \"@swapkit/types\";\nvar u = /* @__PURE__ */ ((e) => (e.INVALID_INPUT_PARAMETERS = \"1000\", e.UNKNOWN_PROVIDERS = \"1001\", e.CANNOT_FIND_INBOUND_ADDRESS = \"1002\", e.NO_INBOUND_ADDRESSES = \"1003\", e.CHAIN_HALTED_OR_UNSUPPORTED = \"1004\", e.MISSING_INPUT_PARAMETER = \"1005\", e.INVALID_TYPE_GENERIC = \"1100\", e.INVALID_NUMBER_STRING = \"1101\", e.INVALID_NUMBER = \"1102\", e.INVALID_BOOLEAN = \"1103\", e.INVALID_OBJECT = \"1104\", e.INVALID_ARRAY = \"1105\", e.SELL_AMOUNT_MUST_BE_POSITIVE_INTEGER = \"2000\", e.SELL_BUY_ASSETS_ARE_THE_SAME = \"2001\", e.MISSING_SOURCE_ADDRESS_FOR_SYNTH = \"2002\", e.AFF_ADDRESS_AND_BPS_OR_NEITHER = \"2003\", e.AFF_ADDRESS_TOO_LONG = \"2004\", e.AFF_BPS_INTEGER_MAX_500 = \"2005\", e.SOURCE_ADDRESS_INVALID_FOR_SELL_CHAIN = \"2006\", e.DESTINATION_ADDRESS_INVALID_FOR_BUY_CHAIN = \"2007\", e.PREFERRED_PROVIDER_NOT_SUPPORTED = \"2008\", e.DESTINATION_ADDRESS_SMART_CONTRACT = \"2009\", e.BUY_AMOUNT_MUST_BE_POSITIVE_INTEGER = \"2010\", e.SOURCE_ADDRESS_SMART_CONTRACT = \"2011\", e.SWAP_AMOUNT_TOO_LOW = \"2012\", e.INVALID_PROVIDER = \"2100\", e.MISSING_CROSS_CHAIN_PROVIDER = \"2101\", e.MISSING_AVAX_PROVIDER = \"2102\", e.MISSING_BSC_PROVIDER = \"2103\", e.MISSING_ETH_PROVIDER = \"2104\", e.INVALID_PROVIDER_FOR_SWAP_OUT = \"2105\", e.MISSING_ARB_PROVIDER = \"2106\", e.INVALID_CHAIN = \"2200\", e.INVALID_ASSET = \"2201\", e.INVALID_ASSET_IDENTIFIER = \"2202\", e.UNSUPPORTED_CHAIN = \"2204\", e.UNSUPPORTED_ASSET = \"2203\", e.UNSUPPORTED_ASSET_FOR_SWAPOUT = \"2205\", e.INVALID_SOURCE_ADDRESS = \"2300\", e.INVALID_DESTINATION_ADDRESS = \"2301\", e.THORNODE_QUOTE_GENERIC_ERROR = \"3000\", e.NOT_ENOUGH_SYNTH_BALANCE = \"3001\", e.SYNTH_MINTING_CAP_REACHED = \"3002\", e.INVALID_QUOTE_MODE = \"4000\", e.NO_QUOTES = \"4001\", e.SERVICE_UNAVAILABLE_GENERIC = \"5000\", e.MISSING_GAS_DATA_GENERIC = \"5100\", e.MISSING_TOKEN_INFO_GENERIC = \"5200\", e.CANT_FIND_TOKEN_LIST = \"5201\", e.NO_PRICE = \"5202\", e.PRICE_IS_STALE = \"5203\", e.ADDRESS_NOT_WHITELISTED = \"6000\", e.ADDRESS_ALREADY_CLAIMED = \"6001\", e.TEMPORARY_ERROR = \"9999\", e))(u || {});\nu.INVALID_INPUT_PARAMETERS + \"\", u.UNKNOWN_PROVIDERS + \"\", u.CANNOT_FIND_INBOUND_ADDRESS + \"\", u.NO_INBOUND_ADDRESSES + \"\", u.CHAIN_HALTED_OR_UNSUPPORTED + \"\", u.MISSING_INPUT_PARAMETER + \"\", u.INVALID_TYPE_GENERIC + \"\", u.INVALID_NUMBER_STRING + \"\", u.INVALID_NUMBER + \"\", u.INVALID_BOOLEAN + \"\", u.INVALID_OBJECT + \"\", u.INVALID_ARRAY + \"\", u.SELL_AMOUNT_MUST_BE_POSITIVE_INTEGER + \"\", u.SELL_BUY_ASSETS_ARE_THE_SAME + \"\", u.MISSING_SOURCE_ADDRESS_FOR_SYNTH + \"\", u.AFF_ADDRESS_AND_BPS_OR_NEITHER + \"\", u.AFF_ADDRESS_TOO_LONG + \"\", u.AFF_BPS_INTEGER_MAX_500 + \"\", u.SOURCE_ADDRESS_INVALID_FOR_SELL_CHAIN + \"\", u.DESTINATION_ADDRESS_INVALID_FOR_BUY_CHAIN + \"\", u.PREFERRED_PROVIDER_NOT_SUPPORTED + \"\", u.SOURCE_ADDRESS_SMART_CONTRACT + \"\", u.SWAP_AMOUNT_TOO_LOW + \"\", u.DESTINATION_ADDRESS_SMART_CONTRACT + \"\", u.BUY_AMOUNT_MUST_BE_POSITIVE_INTEGER + \"\", u.INVALID_PROVIDER + \"\", u.MISSING_CROSS_CHAIN_PROVIDER + \"\", u.MISSING_AVAX_PROVIDER + \"\", u.MISSING_BSC_PROVIDER + \"\", u.MISSING_ETH_PROVIDER + \"\", u.MISSING_ARB_PROVIDER + \"\", u.INVALID_PROVIDER_FOR_SWAP_OUT + \"\", u.INVALID_CHAIN + \"\", u.INVALID_ASSET + \"\", u.UNSUPPORTED_CHAIN + \"\", u.UNSUPPORTED_ASSET + \"\", u.UNSUPPORTED_ASSET_FOR_SWAPOUT + \"\", u.THORNODE_QUOTE_GENERIC_ERROR + \"\", u.INVALID_SOURCE_ADDRESS + \"\", u.INVALID_DESTINATION_ADDRESS + \"\", u.NOT_ENOUGH_SYNTH_BALANCE + \"\", u.SYNTH_MINTING_CAP_REACHED + \"\", u.INVALID_QUOTE_MODE + \"\", u.NO_QUOTES + \"\", u.SERVICE_UNAVAILABLE_GENERIC + \"\", u.MISSING_GAS_DATA_GENERIC + \"\", u.MISSING_TOKEN_INFO_GENERIC + \"\", u.CANT_FIND_TOKEN_LIST + \"\", u.NO_PRICE + \"\", u.PRICE_IS_STALE + \"\", u.ADDRESS_NOT_WHITELISTED + \"\", u.ADDRESS_ALREADY_CLAIMED + \"\";\nvar j = /* @__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))(j || {}), te = /* @__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))(te || {}), 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 || {}), R = /* @__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))(R || {});\nconst q = Object.values(j), $e = Object.keys(j), ne = q.reduce(\n (e, t) => {\n const n = $e.find((r) => j[r] === t);\n return n && (e[t] = n), e;\n },\n {}\n);\nq.reduce(\n (e, t) => (e[t] = te[ne[t]], e),\n {}\n);\nq.reduce(\n (e, t) => (e[t] = de[ne[t]], e),\n {}\n);\nq.reduce(\n (e, t) => {\n const n = `${ne[t]}Hex`;\n return e[t] = te[n], e;\n },\n {}\n);\nclass oe extends Error {\n constructor(t, n, r) {\n const s = t.status || t.status === 0 ? t.status : \"\", i = t.statusText || \"\", a = `${s} ${i}`.trim(), c = a ? `status code ${a}` : \"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 Te 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\", $ = (...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 re({}, ...e);\n}, Ae = (e = {}, t = {}) => {\n const n = new globalThis.Headers(e), r = t instanceof globalThis.Headers, s = new globalThis.Headers(t);\n for (const [i, a] of s.entries())\n r && a === \"undefined\" || a === void 0 ? n.delete(i) : n.set(i, a);\n return n;\n}, re = (...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 = re(t[s], i)), t = { ...t, [s]: i };\n M(r.headers) && (n = Ae(n, r.headers), t.headers = n);\n }\n return t;\n}, ve = (() => {\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})(), Me = typeof globalThis.AbortController == \"function\", He = typeof globalThis.ReadableStream == \"function\", Fe = typeof globalThis.FormData == \"function\", pe = [\"get\", \"post\", \"put\", \"patch\", \"head\", \"delete\"], xe = {\n json: \"application/json\",\n text: \"text/*\",\n formData: \"multipart/form-data\",\n arrayBuffer: \"*/*\",\n blob: \"*/*\"\n}, K = 2147483647, Se = Symbol(\"stop\"), Ge = {\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}, We = {\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}, ke = (e) => pe.includes(e) ? e.toUpperCase() : e, je = [\"get\", \"put\", \"head\", \"delete\", \"options\", \"trace\"], qe = [408, 413, 429, 500, 502, 503, 504], me = [413, 429, 503], ce = {\n limit: 2,\n methods: je,\n statusCodes: qe,\n afterStatusCodes: me,\n maxRetryAfter: Number.POSITIVE_INFINITY,\n backoffLimit: Number.POSITIVE_INFINITY,\n delay: (e) => 0.3 * 2 ** (e - 1) * 1e3\n}, Xe = (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: me\n };\n};\nasync function Ye(e, t, n, r) {\n return new Promise((s, i) => {\n const a = setTimeout(() => {\n n && n.abort(), i(new Te(e));\n }, r.timeout);\n r.fetch(e, t).then(s).catch(i).then(() => {\n clearTimeout(a);\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 We) && !(r in Ge) && !(r in e) && (n[r] = t[r]);\n return n;\n};\nclass x {\n static create(t, n) {\n const r = new x(t, n), s = async () => {\n if (typeof r._options.timeout == \"number\" && r._options.timeout > K)\n throw new RangeError(`The \\`timeout\\` option cannot be greater than ${K}`);\n await Promise.resolve();\n let a = await r._fetch();\n for (const c of r._options.hooks.afterResponse) {\n const o = await c(r.request, r._options, r._decorateResponse(a.clone()));\n o instanceof globalThis.Response && (a = o);\n }\n if (r._decorateResponse(a), !a.ok && r._options.throwHttpErrors) {\n let c = new oe(a, r.request, r._options);\n for (const o of r._options.hooks.beforeError)\n c = await o(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 (!He)\n throw new Error(\"Streams are not supported in your environment. `ReadableStream` is missing.\");\n return r._stream(a.clone(), r._options.onDownloadProgress);\n }\n return a;\n }, i = r._options.retry.methods.includes(r.request.method.toLowerCase()) ? r._retry(s) : s();\n for (const [a, c] of Object.entries(xe))\n i[a] = async () => {\n r.request.headers.set(\"accept\", r.request.headers.get(\"accept\") || c);\n const o = (await i).clone();\n if (a === \"json\") {\n if (o.status === 204 || (await o.clone().arrayBuffer()).byteLength === 0)\n return \"\";\n if (n.parseJson)\n return n.parseJson(await o.text());\n }\n return o[a]();\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: Ae(this._input.headers, n.headers),\n hooks: re({\n beforeRequest: [],\n beforeRetry: [],\n beforeError: [],\n afterResponse: []\n }, n.hooks),\n method: ke(n.method ?? this._input.method),\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n prefixUrl: String(n.prefixUrl || \"\"),\n retry: Xe(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 (Me) {\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 (ve && (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 (Fe && 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 Te)) {\n if (t instanceof oe) {\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), K);\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 }) === Se)\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) : Ye(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 a = t.body.getReader();\n n && n({ percent: 0, transferredBytes: 0, totalBytes: r }, new Uint8Array());\n async function c() {\n const { done: o, value: _ } = await a.read();\n if (o) {\n i.close();\n return;\n }\n if (n) {\n s += _.byteLength;\n const h = r === 0 ? 0 : s / r;\n n({ percent: h, transferredBytes: s, totalBytes: r }, _);\n }\n i.enqueue(_), 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 Q = (e) => {\n const t = (n, r) => x.create(n, $(e, r));\n for (const n of pe)\n t[n] = (r, s) => x.create(r, $(e, s, { method: n }));\n return t.create = (n) => Q($(n)), t.extend = (n) => Q($(e, n)), t.stop = Se, t;\n}, Ee = Q();\nlet H;\nconst m = {\n CachedPrices: `${R.ThorswapApi}/tokenlist/cached-price`,\n GasRates: `${R.ThorswapApi}/resource-worker/gasPrice/getAll`,\n Quote: `${R.ThorswapApi}/aggregator/tokens/quote`,\n Txn: `${R.ThorswapApi}/apiusage/v2/txn`,\n TokenlistProviders: `${R.ThorswapApi}/tokenlist/providers`,\n TokenList: `${R.ThorswapStatic}/token-list`,\n Thorname: `${R.ThorswapApi}/thorname`\n}, Re = typeof window < \"u\" ? {} : { referrer: \"https://sk.thorswap.net\", referer: \"https://sk.thorswap.net\" }, le = () => H || (H = Ee.create({ headers: Re }), H), mt = ({ apiKey: e, ...t }) => {\n H = Ee.create({\n ...t,\n headers: { ...Re, ...t.headers, \"x-api-key\": e }\n });\n}, S = {\n get: (e, t) => le().get(e, t).json(),\n post: (e, t) => le().post(e, t).json()\n}, Qe = ({ tokens: e, ...t }) => {\n const n = new URLSearchParams();\n return e.filter((r, s, i) => i.findIndex((a) => a === r) === s).forEach((r) => n.append(\"tokens\", JSON.stringify(r))), t.metadata && n.append(\"metadata\", \"true\"), t.lookup && n.append(\"lookup\", \"true\"), t.sparkline && n.append(\"sparkline\", \"true\"), S.post(m.CachedPrices, {\n body: n.toString(),\n headers: { \"Content-Type\": \"application/x-www-form-urlencoded\" }\n });\n}, Et = {\n getCachedPrices: Qe,\n getQuote: (e) => S.get(m.Quote, { searchParams: e }),\n getGasRates: () => S.get(m.GasRates),\n getTxnDetails: (e) => S.get(m.Txn, { searchParams: e }),\n getTokenlistProviders: () => S.get(m.TokenlistProviders),\n getTokenList: (e) => S.get(`${m.TokenList}/${e}.json`),\n getThornameAddresses: (e) => S.get(`${m.Thorname}/${e}`),\n getThornameRegisteredChains: (e) => S.get(`${m.Thorname}/chains/${e}`),\n getThornameRlookup: (e, t) => S.get(`${m.Thorname}/rlookup`, { searchParams: { address: e, chain: t } })\n};\nvar ze = /* @__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))(ze || {}), 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 || {}), et = /* @__PURE__ */ ((e) => (e[e.NOT_STARTED = 0] = \"NOT_STARTED\", e[e.SUCCESS = 1] = \"SUCCESS\", e[e.REFUNDED = 2] = \"REFUNDED\", e))(et || {});\nconst tt = \"0x313ce567\", Ie = async ({ chain: e, to: t }) => {\n try {\n const { result: n } = await S.post(Ue[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: tt }, \"latest\"]\n })\n });\n return parseInt(BigInt(n).toString());\n } catch (n) {\n return console.error(n), d[e];\n }\n}, nt = async (e) => {\n if (e === l.Ethereum)\n return d.ETH;\n const [, t] = e.split(\"-\");\n return t != null && t.startsWith(\"0x\") ? Ie({ chain: l.Ethereum, to: t }) : d.ETH;\n}, rt = async (e) => {\n const [, t] = e.split(\"-\");\n return t != null && t.startsWith(\"0x\") ? Ie({ chain: l.Avalanche, to: t.toLowerCase() }) : d.AVAX;\n}, st = async (e) => e === l.BinanceSmartChain ? d.BSC : d.BSC, it = async ({ chain: e, symbol: t }) => {\n switch (e) {\n case l.Ethereum:\n return nt(t);\n case l.Avalanche:\n return rt(t);\n case l.BinanceSmartChain:\n return st(t);\n default:\n return d[e];\n }\n}, Rt = {\n [Y.Average]: 1.2,\n [Y.Fast]: 1.5,\n [Y.Fastest]: 2\n}, fe = ({ 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}, at = (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}, It = (e) => {\n var a;\n const [t, ...n] = e.split(\".\"), r = e.includes(\"/\"), s = n.join(\".\"), i = (a = s == null ? void 0 : s.split(\"-\")) == null ? void 0 : a[0];\n return { chain: t, symbol: s, ticker: i, synth: r };\n}, ct = new RegExp(\n /(.)\\1{6}|\\.ORG|\\.NET|\\.FINANCE|\\.COM|WWW|HTTP|\\\\\\\\|\\/\\/|[\\s$%:[\\]]/,\n \"gmi\"\n), lt = (e) => {\n const [t, n] = e.split(\".\");\n if (!Be.includes(t))\n return !0;\n const [, r] = n.split(\"-\");\n return fe({ chain: t, symbol: n }) || !!r;\n}, ft = (e) => e.filter(({ chain: t, value: n, symbol: r }) => {\n const s = `${t}.${r}`;\n return !ct.test(s) && lt(s) && n !== \"0\";\n});\nfunction ut({\n liquidityUnits: e,\n poolUnits: t,\n runeDepth: n\n}) {\n const r = A(e), s = A(t), i = A(n), a = r.mul(i), c = s.mul(s).mul(2), o = s.mul(r).mul(2), _ = r.mul(r), h = s.mul(s).mul(s);\n return a.mul(c.sub(o).add(_)).div(h);\n}\nfunction _t({\n liquidityUnits: e,\n poolUnits: t,\n assetDepth: n\n}) {\n const r = A(e), s = A(t), i = A(n), a = r.mul(i), c = s.mul(s).mul(2), o = s.mul(r).mul(2), _ = r.mul(r), h = a.mul(c.sub(o).add(_)), P = s.mul(s).mul(s);\n return h.div(P);\n}\nfunction Nt({\n percent: e,\n runeDepth: t,\n liquidityUnits: n,\n poolUnits: r\n}) {\n return ut({ runeDepth: t, liquidityUnits: n, poolUnits: r }).mul(e);\n}\nfunction Ct({\n percent: e,\n assetDepth: t,\n liquidityUnits: n,\n poolUnits: r\n}) {\n return _t({ assetDepth: t, liquidityUnits: n, poolUnits: r }).mul(e);\n}\nfunction A(e) {\n return I.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: A(r).mul(e).div(t),\n runeAmount: A(n).mul(e).div(t)\n };\n}\nfunction gt({\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, a]) => [i, a.mul(s)]\n )\n );\n}\nfunction Ot({\n runeDepth: e,\n poolUnits: t,\n assetDepth: n,\n liquidityUnits: r,\n runeAmount: s,\n assetAmount: i\n}) {\n const a = new I({ value: e, decimal: 8 }), c = new I({ value: n, decimal: 8 }), o = new I({ value: t, decimal: 8 }), _ = new I({ value: s, decimal: 8 }), h = new I({ value: i, decimal: 8 }), P = _.mul(c), ie = h.mul(a), ge = _.mul(h), Oe = a.mul(c), De = o.mul(P.add(ie.add(ge.mul(2)))), Pe = P.add(ie.add(Oe.mul(2))), ae = De.div(Pe), X = A(r).add(ae);\n if (ae.getBaseValue(\"number\") === 0)\n return X.div(o).getBaseValue(\"number\");\n const be = o.add(X);\n return X.div(be).getBaseValue(\"number\");\n}\nfunction Dt({\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 = A(n), i = A(r), a = A(t), c = A(e), o = a.mul(s).sub(i.mul(c)), _ = i.mul(c).add(s.mul(i));\n return Math.abs(o.div(_).getBaseValue(\"number\"));\n}\nconst Pt = (e, t) => {\n switch (e) {\n case E.LEAVE:\n case E.BOND: {\n const { address: n } = t;\n return `${e}:${n}`;\n }\n case E.UNBOND: {\n const { address: n, unbondAmount: r } = t;\n return `${e}:${n}:${r}`;\n }\n case E.THORNAME_REGISTER: {\n const { name: n, chain: r, address: s, owner: i } = t;\n return `${e}:${n}:${r}:${s}${i ? `:${i}` : \"\"}`;\n }\n case E.DEPOSIT: {\n const { chain: n, symbol: r, address: s, singleSide: i } = t;\n return i ? `${e}:${n}/${r}::t:0` : `${e}:${((c, o) => {\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}.${o}`;\n }\n })(n, r)}:${s || \"\"}:t:0`;\n }\n case E.WITHDRAW: {\n const { chain: n, ticker: r, symbol: s, basisPoints: i, targetAssetString: a, singleSide: c } = t, o = n === \"ETH\" && r !== \"ETH\" ? `${r}-${s.slice(-3)}` : s, _ = !c && a ? `:${a}` : \"\";\n return `${e}:${n}${c ? \"/\" : \".\"}${o}:${i}${_}`;\n }\n case E.OPEN_LOAN:\n case E.CLOSE_LOAN: {\n const { asset: n, address: r } = t;\n return `${e}:${n}:${r}`;\n }\n default:\n return \"\";\n }\n};\nfunction bt(e) {\n if (e < 0)\n throw new Error(\"Invalid number of year\");\n return 10 + e;\n}\nfunction yt(e) {\n if (e.length > 30)\n return !1;\n const t = /^[a-zA-Z0-9+_-]+$/g;\n return !!e.match(t);\n}\nfunction wt([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, N = (e) => 10n ** BigInt(e), b = (e) => Math.log10(parseFloat(e.toString()));\nfunction G({\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 a = 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, a)}.${c}`.replace(\n /\\.?0*$/,\n \"\"\n );\n}\nvar C, y, f, D, k, Ne, U, z, L, Z;\nconst se = class se {\n constructor(t) {\n O(this, C);\n O(this, f);\n O(this, k);\n O(this, U);\n O(this, L);\n p(this, \"decimalMultiplier\", 10n ** 8n);\n p(this, \"bigIntValue\", 0n);\n p(this, \"decimal\");\n const n = ee(t), r = typeof t == \"object\";\n this.decimal = r ? t.decimal : void 0, this.decimalMultiplier = r && \"decimalMultiplier\" in t ? t.decimalMultiplier : N(Math.max(_e(v(n)), this.decimal || 0)), T(this, k, Ne).call(this, n);\n }\n static fromBigInt(t, n) {\n return new se({\n decimal: n,\n value: G({ value: t, bigIntDecimal: n, decimal: n })\n });\n }\n static shiftDecimals({\n value: t,\n from: n,\n to: r\n }) {\n return this.fromBigInt(\n t.getBaseValue(\"bigint\") * N(r) / N(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 T(this, C, y).call(this, \"add\", ...t);\n }\n sub(...t) {\n return T(this, C, y).call(this, \"sub\", ...t);\n }\n mul(...t) {\n return T(this, C, y).call(this, \"mul\", ...t);\n }\n div(...t) {\n return T(this, C, y).call(this, \"div\", ...t);\n }\n gt(t) {\n return T(this, f, D).call(this, \"gt\", t);\n }\n gte(t) {\n return T(this, f, D).call(this, \"gte\", t);\n }\n lt(t) {\n return T(this, f, D).call(this, \"lt\", t);\n }\n lte(t) {\n return T(this, f, D).call(this, \"lte\", t);\n }\n eqValue(t) {\n return T(this, f, D).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 || b(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 / N(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 = ee(t), s = v(r);\n return s === \"0\" || s === \"undefined\" ? 0n : T(this, L, Z).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), o = `${c}`.slice(0, t);\n return `0.${o.padStart(\n i.length - `${c}`.length + o.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 a = parseInt(i), c = `${a}`.slice(0, t);\n return `0.${c.padStart(\n i.length - `${a}`.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 a = 10 ** (s * 3);\n return `${(n / a).toFixed(t)}${i}`;\n }\n toCurrency(t = \"$\", {\n currencyPosition: n = \"start\",\n decimal: r = 2,\n decimalSeparator: s = \".\",\n thousandSeparator: i = \",\"\n } = {}) {\n const a = this.getValue(\"number\"), [c, o = \"\"] = a.toFixed(6).split(\".\"), _ = c.replace(/\\B(?=(\\d{3})+(?!\\d))/g, i), h = !c && !o ? \"0.00\" : c === \"0\" ? `${parseFloat(`0.${o}`)}`.replace(\".\", s) : `${_}${parseInt(o) ? `${s}${o.slice(0, r)}` : \"\"}`;\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 b(this.decimalMultiplier)\n ), i = t < 0n, a = t.toString().substring(i ? 1 : 0), c = s - (a.length - 1), o = c > 0 ? \"0\".repeat(c) + a : a, _ = o.length - s;\n let h = o.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 ? \"-\" : \"\"}${o.slice(\n 0,\n _\n )}.${h}`.replace(/\\.?0*$/, \"\");\n }\n};\nC = new WeakSet(), y = function(t, ...n) {\n const r = T(this, U, z).call(this, this, ...n), s = Math.max(r, b(this.decimalMultiplier)), i = N(s), a = n.reduce(\n (o, _) => {\n const h = this.getBigIntValue(_, s);\n switch (t) {\n case \"add\":\n return o + h;\n case \"sub\":\n return o - h;\n case \"mul\":\n return o * h / i;\n case \"div\": {\n if (h === 0n)\n throw new RangeError(\"Division by zero\");\n return o * i / h;\n }\n default:\n return o;\n }\n },\n //normalize is to precision multiplier base\n this.bigIntValue * i / this.decimalMultiplier\n ), c = G({\n bigIntDecimal: s,\n decimal: s,\n value: a\n });\n return new this.constructor({\n decimalMultiplier: N(s),\n decimal: this.decimal,\n value: c,\n identifier: this.toString()\n });\n}, f = new WeakSet(), D = function(t, ...n) {\n const r = T(this, U, 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}, k = new WeakSet(), Ne = function(t) {\n const n = v(t) || \"0\";\n this.bigIntValue = T(this, L, Z).call(this, n);\n}, U = new WeakSet(), z = function(...t) {\n const n = t.map((r) => typeof r == \"object\" ? r.decimal || b(r.decimalMultiplier) : _e(v(r))).filter(Boolean);\n return Math.max(...n, B);\n}, L = new WeakSet(), Z = function(t, n) {\n const r = n ? N(n) : this.decimalMultiplier, s = b(r), [i = \"\", a = \"\"] = t.split(\".\");\n return BigInt(`${i}${a.padEnd(s, \"0\")}`);\n};\nlet W = se;\nconst Tt = Intl.NumberFormat(\"fullwide\", {\n useGrouping: !1,\n maximumFractionDigits: 20\n});\nfunction v(e) {\n const n = `${typeof e == \"number\" ? Tt.format(e) : ee(e)}`.replaceAll(\",\", \".\").split(\".\");\n return n.length > 1 ? `${n.slice(0, -1).join(\"\")}.${n.at(-1)}` : n[0];\n}\nfunction _e(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 ee(e) {\n return typeof e == \"object\" ? \"getValue\" in e ? e.getValue(\"string\") : e.value : e;\n}\nconst w = /* @__PURE__ */ new Map();\nclass g extends W {\n constructor({\n value: n,\n decimal: r,\n tax: s,\n chain: i,\n symbol: a,\n identifier: c\n }) {\n super(typeof n == \"object\" ? n : { decimal: r, value: n });\n p(this, \"address\");\n p(this, \"chain\");\n p(this, \"isGasAsset\", !1);\n p(this, \"isSynthetic\", !1);\n p(this, \"symbol\");\n p(this, \"tax\");\n p(this, \"ticker\");\n p(this, \"type\");\n const o = F(c || `${i}.${a}`);\n this.type = ot(o), this.tax = s, this.chain = o.chain, this.ticker = o.ticker, this.symbol = o.symbol, this.address = o.address, this.isSynthetic = o.isSynthetic, this.isGasAsset = o.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 Le[this.chain];\n }\n // THOR.RUNE\n // THOR.ETH.ETH\n // ETH.THOR-0x1234567890\n static fromUrl(n, r = 0) {\n const [s, i, a] = n.split(\".\");\n if (!s || !i)\n throw new Error(\"Invalid asset url\");\n const c = s === l.THORChain && a ? `${s}.${i}/${a}` : n;\n return J(c, r);\n }\n static fromString(n, r = 0) {\n return J(n, r);\n }\n static fromIdentifier(n, r = 0) {\n return J(n, r);\n }\n static fromStringSync(n, r = 0) {\n const { chain: s, isSynthetic: i } = F(n), a = w.get(n.toUpperCase());\n if (i)\n return he(n, r);\n const { tax: c, decimal: o, identifier: _ } = a || {\n decimal: d[s],\n identifier: n\n };\n return new g({\n tax: c,\n value: V(r, o),\n identifier: i ? n : _,\n decimal: i ? 8 : o\n });\n }\n static fromIdentifierSync(n, r = 0) {\n const { chain: s, isSynthetic: i } = F(n), a = w.get(n);\n if (i)\n return he(n, r);\n const { tax: c, decimal: o, identifier: _ } = a || {\n decimal: d[s],\n identifier: n\n };\n return new g({ tax: c, decimal: o, identifier: _, value: V(r, o) });\n }\n static fromChainOrSignature(n, r = 0) {\n const { decimal: s, identifier: i } = at(n);\n return new g({ value: V(r, s), decimal: s, identifier: i });\n }\n static loadStaticAssets() {\n return new Promise(\n async (n, r) => {\n try {\n const s = await import(\"@swapkit/tokens\");\n Object.values(s).forEach((i) => {\n var a;\n (a = i == null ? void 0 : i.tokens) == null || a.forEach(({ identifier: c, chain: o, ..._ }) => {\n w.set(c.toUpperCase(), {\n identifier: c,\n decimal: \"decimals\" in _ ? _.decimals : d[o]\n });\n });\n }), n({ ok: !0 });\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 Vt(e) {\n const t = g.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 J(e, t = 0) {\n dt(e);\n const n = w.get(e.toUpperCase()), r = (n == null ? void 0 : n.decimal) || await it(F(e));\n return n || w.set(e.toUpperCase(), { identifier: e, decimal: r }), new g({ decimal: r, value: V(t, r), identifier: e });\n}\nfunction he(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 g({\n decimal: 8,\n value: V(t, 8),\n identifier: `${l.THORChain}.${n}/${r}`\n });\n}\nfunction V(e, t) {\n return typeof e == \"bigint\" ? G({ value: e, bigIntDecimal: t, decimal: t }) : e;\n}\nfunction F(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, ...a] = s.split(\".\"), [c, o] = (t ? r : a.join(\".\")).split(\"-\"), _ = t ? r : a.join(\".\");\n return {\n address: o == null ? void 0 : o.toLowerCase(),\n chain: i,\n isGasAsset: fe({ chain: i, symbol: _ }),\n isSynthetic: t,\n symbol: (t ? `${n}/` : \"\") + (o ? `${c}-${(o == null ? void 0 : o.toLowerCase()) ?? \"\"}` : _),\n ticker: c\n };\n}\nconst At = {\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 /**\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 * Helpers\n */\n helpers_number_different_decimals: 99101\n};\nclass Ce extends Error {\n constructor(t, n) {\n n && console.error(n, { stack: n == null ? void 0 : n.stack, message: n == null ? void 0 : n.message }), super(t, { cause: { code: At[t], message: t } }), Object.setPrototypeOf(this, Ce.prototype);\n }\n}\nclass I extends W {\n eq(t) {\n return this.eqValue(t);\n }\n static fromBigInt(t, n) {\n return new I({\n decimal: n,\n value: G({ value: t, bigIntDecimal: n, decimal: n })\n });\n }\n}\nexport {\n m as ApiEndpoints,\n g as AssetValue,\n W as BigIntArithmetics,\n S as RequestClient,\n et as StreamingSwapProgressStatus,\n Et as SwapKitApi,\n Ce as SwapKitError,\n I as SwapKitNumber,\n ze as TransactionType,\n Ze as TxStatus,\n It as assetFromString,\n Re as defaultRequestHeaders,\n wt as derivationPathToString,\n ft as filterAssets,\n G as formatBigIntToSafeValue,\n Rt as gasFeeMultiplier,\n ot as getAssetType,\n _t as getAsymmetricAssetShare,\n Ct as getAsymmetricAssetWithdrawAmount,\n ut as getAsymmetricRuneShare,\n Nt as getAsymmetricRuneWithdrawAmount,\n at as getCommonAssetInfo,\n it as getDecimal,\n Ot as getEstimatedPoolShare,\n Dt as getLiquiditySlippage,\n Pt as getMemoFor,\n Vt as getMinAmountByChain,\n ht as getSymmetricPoolShare,\n gt as getSymmetricWithdraw,\n bt as getTHORNameCost,\n fe as isGasAsset,\n mt as setRequestClientConfig,\n yt as validateTHORName\n};\n//# sourceMappingURL=index.es.js.map\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 { 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 { 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, ThornameRegisterParam } from '@swapkit/helpers';\nimport {\n AssetValue,\n gasFeeMultiplier,\n getMemoFor,\n getMinAmountByChain,\n SwapKitError,\n SwapKitNumber,\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 './explorerUrls.ts';\nimport { getInboundData, getMimirData } from './thornode.ts';\nimport type {\n CoreTxParams,\n EVMWallet,\n SwapParams,\n ThorchainWallet,\n Wallet,\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 = async ({ chain, address }: { chain: Chain; address?: string }) => {\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\nexport class SwapKitCore<T = ''> {\n public connectedChains: Wallet = 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 ({ streamSwap, recipient, route, feeOptionKey }: SwapParams) => {\n const {\n meta: { quoteMode },\n // evmTransactionDetails: contractCallParams,\n } = route;\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.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 ? route?.streamingSwap?.transaction : route?.transaction;\n if (!transaction) throw new SwapKitError('core_swap_route_transaction_not_found');\n\n const { data, from, to, value } = route.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.calldata.fromAsset) throw new SwapKitError('core_swap_asset_not_recognized');\n const asset = await AssetValue.fromString(route.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;\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;\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) throw new SwapKitError('core_swap_contract_not_supported', { contractAddress });\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 }: CoreTxParams & { router?: string }) => {\n const { chain, symbol, ticker } = assetValue;\n const walletInstance = this.connectedWallets[chain];\n const isAddressValidated = await validateAddressType({\n address: await walletInstance?.getAddress(),\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({ assetValue, recipient, router, ...rest });\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 || error?.toString()).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 }) => {\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, assetTx;\n\n if (runeTransfer && runeAssetValue) {\n try {\n runeTx = await this.#depositToPool({\n assetValue: runeAssetValue,\n memo: getMemoFor(MemoType.DEPOSIT, { chain, symbol, address: assetAddress }),\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, { chain, symbol, address: runeAddress }),\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 = async ({\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 = async ({\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({ assetValue, memo: getMemoFor(MemoType.THORNAME_REGISTER, param) });\n\n extend = ({ wallets, config, apis = {}, rpcUrls = {} }: ExtendParams<T>) => {\n try {\n wallets.forEach((wallet) => {\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 connectXDEFI = async (_chains: Chain[]): Promise<void> => {\n throw new SwapKitError('core_wallet_xdefi_not_installed');\n };\n connectEVMWallet = async (_chains: Chain[] | Chain, _wallet: EVMWalletOptions): Promise<void> => {\n throw new SwapKitError('core_wallet_evmwallet_not_installed');\n };\n connectWalletconnect = async (_chains: Chain[], _options?: any): Promise<void> => {\n throw new SwapKitError('core_wallet_walletconnect_not_installed');\n };\n connectKeepkey = async (_chains: Chain[], _derivationPath: number[][]): Promise<string> => {\n throw new SwapKitError('core_wallet_keepkey_not_installed');\n };\n connectKeystore = async (_chains: Chain[], _phrase: string): Promise<void> => {\n throw new SwapKitError('core_wallet_keystore_not_installed');\n };\n connectLedger = async (_chains: Chain, _derivationPath: number[]): Promise<void> => {\n throw new SwapKitError('core_wallet_ledger_not_installed');\n };\n connectTrezor = async (_chains: Chain, _derivationPath: number[]): Promise<void> => {\n throw new SwapKitError('core_wallet_trezor_not_installed');\n };\n connectKeplr = async (_chain: Chain): Promise<void> => {\n throw new SwapKitError('core_wallet_keplr_not_installed');\n };\n connectOkx = async (_chains: Chain[]): Promise<void> => {\n throw new SwapKitError('core_wallet_okx_not_installed');\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 = ({ chain, wallet, walletMethods }: AddChainWalletParams) => {\n this.connectedChains[chain] = wallet;\n this.connectedWallets[chain] = walletMethods;\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 ({ memo, assetValue }: { assetValue: AssetValue; memo: string }) => {\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":["h","O","a","s","X","k","K","W","C","Y","j","J","m","P","t","V","o","r","A","n","S","d","_","N","E","c","f","y","l","i","g","b","$","B","q","x","Z","H","z","L","Q","D","ee","u","I","v","p","M","T","te","ne","ae","se","re","R","G","w","U","ye","we","Ve","de","$e","oe","Te","Ae","ve","Me","He","Fe","pe","xe","Se","Ge","We","ke","je","qe","me","ce","Xe","Ye","Ke","Je","Ee","Re","le","mt","Qe","Et","ze","Ze","et","tt","Ie","Ue","nt","rt","st","it","Rt","fe","at","ot","It","ct","lt","Be","ft","ut","_t","Nt","Ct","ht","gt","Ot","ie","ge","Oe","De","Pe","be","Dt","Pt","bt","yt","wt","ue","dt","Ne","_e","Tt","F","Le","he","Vt","At","Ce","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","contractAddress","recipient","toChecksumAddress","amount","amountOutMin","data","deadline","memo","router","memoStreamingSwap","tcMemo","tcRouter","tcVault","vault","token","isGeneric","baseMemo","transactionMemo","baseParams","contractParams","getExplorerTxUrl","chain","txHash","baseUrl","ChainToExplorerUrl","Chain","getExplorerAddressUrl","address","getInboundData","stagenet","ApiUrl","RequestClient","getMimirData","getEmptyWalletStructure","acc","validateAddressType","_getInboundDataByChain","_addConnectedChain","_approve","_depositToPool","_thorchainTransfer","_prepareTxParams","SwapKitCore","__publicField","_a","potentialScamFilter","wallet","route","feeOptionKey","_b","quoteMode","evmChain","SwapKitError","AGG_SWAP","walletMethods","from","to","value","params","ChainToChainId","SWAP_OUT","asset","AssetValue","__privateGet","expiration","amountIn","assetValue","SwapKitNumber","swapMemo","SWAP_IN","calldata","getProvider","provider","abi","tx","defaultBalance","walletType","balance","error","walletInstance","rest","symbol","ticker","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","type","memoType","minAmount","param","wallets","config","apis","rpcUrls","estimateMaxSendableAmount","_chains","_wallet","_options","_derivationPath","_phrase","_chain","__privateAdd","chainAddressData","item","isGasAsset","isSynthetic","isEVMChain","walletAction","spenderAddress","FeeOption","gas_rate","feeRate","gasFeeMultiplier","mimir","restTxParams"],"mappings":"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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,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"}