@swapkit/core 1.0.0-rc.87 → 1.0.0-rc.89
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +2 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.es.js +830 -766
- package/dist/index.es.js.map +1 -1
- package/package.json +15 -17
- package/src/aggregator/getSwapParams.ts +1 -1
- package/src/client/types.ts +1 -2
package/dist/index.es.js.map
CHANGED
|
@@ -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 C = Object.defineProperty;\nvar g = (e, a, n) => a in e ? C(e, a, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[a] = n;\nvar s = (e, a, n) => (g(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], U = [\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], 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 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 O = /* @__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))(O || {});\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 || {}), h = /* @__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))(h || {}), 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.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: 3 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.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}, u = (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: p,\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 = _ || u(p, 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 = u(p, y || []), this.code = p, 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 u(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.Dogecoin = \"DOGE\", e.Ethereum = \"ETH\", e.Kujira = \"KUJI\", e.Litecoin = \"LTC\", e.Maya = \"MAYA\", e.Optimism = \"OP\", e.Polygon = \"MATIC\", e.THORChain = \"THOR\", e))(i || {}), P = /* @__PURE__ */ ((e) => (e.ARB = \"0x0000000000000000000000000000000000000000\", e.AVAX = \"0x0000000000000000000000000000000000000000\", e.ETH = \"0x0000000000000000000000000000000000000000\", e.BSC = \"0x0000000000000000000000000000000000000000\", e.MATIC = \"0x0000000000000000000000000000000000001010\", e.OP = \"0x4200000000000000000000000000000000000042\", e))(P || {}), 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.ETH = \"m/44'/60'/0'/0\", 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 Y = {\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};\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.ETH = 18] = \"ETH\", 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 W = [\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], J = [\n \"GAIA\",\n \"THOR\",\n \"BNB\"\n /* Binance */\n], $ = [\n \"AVAX\",\n \"BNB\",\n \"BSC\",\n \"BTC\",\n \"BCH\",\n \"GAIA\",\n \"DOGE\",\n \"ETH\",\n \"LTC\",\n \"THOR\"\n /* THORChain */\n];\nvar T = /* @__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.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.Polygon = \"137\", e.PolygonHex = \"0x89\", e.THORChain = \"thorchain-mainnet-v1\", e.THORChainStagenet = \"thorchain-stagenet-v2\", e))(T || {}), 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.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.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 d = Object.values(i), H = Object.keys(i), o = d.reduce(\n (e, a) => {\n const n = H.find((r) => i[r] === a);\n return n && (e[a] = n), e;\n },\n {}\n), q = d.reduce(\n (e, a) => (e[a] = T[o[a]], e),\n {}\n), Z = d.reduce(\n (e, a) => (e[a] = I[o[a]], e),\n {}\n), z = d.reduce(\n (e, a) => {\n const n = `${o[a]}Hex`;\n return e[a] = T[n], e;\n },\n {}\n), Q = {\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 \"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 \"0x89\": \"MATIC\",\n 137: \"MATIC\",\n \"thorchain-stagenet-v2\": \"THOR\",\n \"thorchain-mainnet-v1\": \"THOR\"\n /* THORChain */\n}, ee = {\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 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 MATIC: \"https://polygonscan.com\",\n THOR: \"https://runescan.io\"\n};\nvar L = /* @__PURE__ */ ((e) => (e[e.NoError = 36864] = \"NoError\", e))(L || {}), v = /* @__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))(v || {}), D = /* @__PURE__ */ ((e) => (e.Average = \"average\", e.Fast = \"fast\", e.Fastest = \"fastest\", e))(D || {}), R = /* @__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))(R || {});\nexport {\n X as AGG_SWAP,\n A as ApiError,\n x as ApiUrl,\n b as BaseDecimal,\n i as Chain,\n T as ChainId,\n Q as ChainIdToChain,\n q as ChainToChainId,\n ee as ChainToExplorerUrl,\n z as ChainToHexChainId,\n Z as ChainToRPC,\n P as ContractAddress,\n J as CosmosChainList,\n B as DerivationPath,\n t as ERROR_CODE,\n h as ERROR_MODULE,\n m as ERROR_TYPE,\n W as EVMChainList,\n L as ErrorCode,\n D as FeeOption,\n v as MemoType,\n Y as NetworkDerivationPath,\n O as QuoteMode,\n I as RPCUrl,\n K as SWAP_IN,\n k as SWAP_OUT,\n w as TCAvalancheDepositABI,\n F as TCBscDepositABI,\n U as TCEthereumVaultAbi,\n $ as TCSupportedChainList,\n j as UTXOChainList,\n R as WalletOption,\n G as erc20ABI\n};\n//# sourceMappingURL=index.es.js.map\n","var bt = Object.defineProperty;\nvar yt = (s, t, e) => t in s ? bt(s, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : s[t] = e;\nvar f = (s, t, e) => (yt(s, typeof t != \"symbol\" ? t + \"\" : t, e), e), wt = (s, t, e) => {\n if (!t.has(s))\n throw TypeError(\"Cannot \" + e);\n};\nvar v = (s, t, e) => {\n if (t.has(s))\n throw TypeError(\"Cannot add the same private member more than once\");\n t instanceof WeakSet ? t.add(s) : t.set(s, e);\n};\nvar m = (s, t, e) => (wt(s, t, \"access private method\"), e);\nimport { FeeOption as D, BaseDecimal as d, Chain as o, EVMChainList as At, ChainToRPC as $t, MemoType as _, ChainToChainId as vt } from \"@swapkit/types\";\nconst Tt = \"0x313ce567\", nt = async ({ chain: s, to: t }) => {\n try {\n const { result: e } = await Zt.post($t[s], {\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(e).toString());\n } catch (e) {\n return console.error(e), d[s];\n }\n}, Ct = async (s) => {\n if (s === o.Ethereum)\n return d.ETH;\n const [, t] = s.split(\"-\");\n return t != null && t.startsWith(\"0x\") ? nt({ chain: o.Ethereum, to: t }) : d.ETH;\n}, Rt = async (s) => {\n const [, t] = s.split(\"-\");\n return t != null && t.startsWith(\"0x\") ? nt({ chain: o.Avalanche, to: t.toLowerCase() }) : d.AVAX;\n}, St = async (s) => s === o.BinanceSmartChain ? d.BSC : d.BSC, It = async ({ chain: s, symbol: t }) => {\n switch (s) {\n case o.Ethereum:\n return Ct(t);\n case o.Avalanche:\n return Rt(t);\n case o.BinanceSmartChain:\n return St(t);\n default:\n return d[s];\n }\n}, ie = {\n [D.Average]: 1.2,\n [D.Fast]: 1.5,\n [D.Fastest]: 2\n}, it = ({ chain: s, symbol: t }) => {\n switch (s) {\n case o.Bitcoin:\n case o.BitcoinCash:\n case o.Litecoin:\n case o.Dogecoin:\n case o.Binance:\n case o.Ethereum:\n case o.Avalanche:\n return t === s;\n case o.Arbitrum:\n case o.Optimism:\n return t === \"ETH\";\n case o.Maya:\n return t === \"CACAO\";\n case o.Kujira:\n return t === \"KUJI\";\n case o.Cosmos:\n return t === \"ATOM\";\n case o.Polygon:\n return t === \"MATIC\";\n case o.BinanceSmartChain:\n return t === \"BNB\";\n case o.THORChain:\n return t === \"RUNE\";\n }\n}, Ot = (s) => {\n switch (s) {\n case `${o.Ethereum}.THOR`:\n return { identifier: \"ETH.THOR-0xa5f2211b9b8170f694421f2046281775e8468044\", decimal: 18 };\n case `${o.Ethereum}.vTHOR`:\n return { identifier: \"ETH.vTHOR-0x815c23eca83261b6ec689b60cc4a58b54bc24d8d\", decimal: 18 };\n case o.Cosmos:\n return { identifier: \"GAIA.ATOM\", decimal: d[s] };\n case o.THORChain:\n return { identifier: \"THOR.RUNE\", decimal: d[s] };\n case o.BinanceSmartChain:\n return { identifier: \"BSC.BNB\", decimal: d[s] };\n case o.Maya:\n return { identifier: \"MAYA.CACAO\", decimal: d.MAYA };\n case `${o.Maya}.MAYA`:\n return { identifier: \"MAYA.MAYA\", decimal: 4 };\n case `${o.Kujira}.USK`:\n return { identifier: `${o.Kujira}.USK`, decimal: 6 };\n case o.Kujira:\n case o.Arbitrum:\n case o.Optimism:\n case o.BitcoinCash:\n case o.Litecoin:\n case o.Dogecoin:\n case o.Binance:\n case o.Avalanche:\n case o.Polygon:\n case o.Bitcoin:\n case o.Ethereum:\n return { identifier: `${s}.${s}`, decimal: d[s] };\n }\n}, Et = ({ chain: s, symbol: t }) => {\n if (t.includes(\"/\"))\n return \"Synth\";\n switch (s) {\n case o.Bitcoin:\n case o.BitcoinCash:\n case o.Dogecoin:\n case o.Litecoin:\n case o.Maya:\n case o.THORChain:\n return \"Native\";\n case o.Cosmos:\n return t === \"ATOM\" ? \"Native\" : o.Cosmos;\n case o.Kujira:\n return t === o.Kujira ? \"Native\" : o.Kujira;\n case o.Binance:\n return t === o.Binance ? \"Native\" : \"BEP2\";\n case o.BinanceSmartChain:\n return t === o.Binance ? \"Native\" : \"BEP20\";\n case o.Ethereum:\n return t === o.Ethereum ? \"Native\" : \"ERC20\";\n case o.Avalanche:\n return t === o.Avalanche ? \"Native\" : o.Avalanche;\n case o.Polygon:\n return t === o.Polygon ? \"Native\" : \"POLYGON\";\n case o.Arbitrum:\n return [o.Ethereum, o.Arbitrum].includes(t) ? \"Native\" : \"ARBITRUM\";\n case o.Optimism:\n return [o.Ethereum, o.Optimism].includes(t) ? \"Native\" : \"OPTIMISM\";\n }\n}, oe = (s) => {\n var c;\n const [t, ...e] = s.split(\".\"), r = s.includes(\"/\"), n = e.join(\".\"), i = (c = n == null ? void 0 : n.split(\"-\")) == null ? void 0 : c[0];\n return { chain: t, symbol: n, ticker: i, synth: r };\n}, Bt = new RegExp(\n /(.)\\1{6}|\\.ORG|\\.NET|\\.FINANCE|\\.COM|WWW|HTTP|\\\\\\\\|\\/\\/|[\\s$%:[\\]]/,\n \"gmi\"\n), Mt = (s) => {\n const [t, e] = s.split(\".\");\n if (!At.includes(t))\n return !0;\n const [, r] = e.split(\"-\");\n return it({ chain: t, symbol: e }) || !!r;\n}, ae = (s) => s.filter((t) => {\n const e = `${t.chain}.${t.symbol}`;\n return !Bt.test(e) && Mt(e) && t.value !== \"0\";\n});\nfunction xt({\n liquidityUnits: s,\n poolUnits: t,\n runeDepth: e\n}) {\n const r = p(s), n = p(t), i = p(e), c = r.mul(i), a = n.mul(n).mul(2), u = n.mul(r).mul(2), l = r.mul(r), h = n.mul(n).mul(n);\n return c.mul(a.sub(u).add(l)).div(h);\n}\nfunction qt({\n liquidityUnits: s,\n poolUnits: t,\n assetDepth: e\n}) {\n const r = p(s), n = p(t), i = p(e), c = r.mul(i), a = n.mul(n).mul(2), u = n.mul(r).mul(2), l = r.mul(r), h = c.mul(a.sub(u).add(l)), $ = n.mul(n).mul(n);\n return h.div($);\n}\nfunction ce({\n percent: s,\n runeDepth: t,\n liquidityUnits: e,\n poolUnits: r\n}) {\n return xt({ runeDepth: t, liquidityUnits: e, poolUnits: r }).mul(s);\n}\nfunction ue({\n percent: s,\n assetDepth: t,\n liquidityUnits: e,\n poolUnits: r\n}) {\n return qt({ assetDepth: t, liquidityUnits: e, poolUnits: r }).mul(s);\n}\nfunction p(s) {\n return g.fromBigInt(BigInt(s), d.THOR);\n}\nfunction Pt({\n liquidityUnits: s,\n poolUnits: t,\n runeDepth: e,\n assetDepth: r\n}) {\n return {\n assetAmount: p(r).mul(s).div(t),\n runeAmount: p(e).mul(s).div(t)\n };\n}\nfunction le({\n liquidityUnits: s,\n poolUnits: t,\n runeDepth: e,\n assetDepth: r,\n percent: n\n}) {\n return Object.fromEntries(\n Object.entries(Pt({ liquidityUnits: s, poolUnits: t, runeDepth: e, assetDepth: r })).map(\n ([i, c]) => [i, c.mul(n)]\n )\n );\n}\nfunction he({\n runeDepth: s,\n poolUnits: t,\n assetDepth: e,\n liquidityUnits: r,\n runeAmount: n,\n assetAmount: i\n}) {\n const c = new g({ value: s, decimal: 8 }), a = new g({ value: e, decimal: 8 }), u = new g({ value: t, decimal: 8 }), l = new g({ value: n, decimal: 8 }), h = new g({ value: i, decimal: 8 }), $ = l.mul(a), H = h.mul(c), mt = l.mul(h), pt = c.mul(a), ft = u.mul($.add(H.add(mt.mul(2)))), _t = $.add(H.add(pt.mul(2))), Q = ft.div(_t), U = p(r).add(Q);\n if (Q.getBaseValue(\"number\") === 0)\n return U.div(u).getBaseValue(\"number\");\n const gt = u.add(U);\n return U.div(gt).getBaseValue(\"number\");\n}\nfunction de({\n runeAmount: s,\n assetAmount: t,\n runeDepth: e,\n assetDepth: r\n}) {\n if (s === \"0\" || t === \"0\" || e === \"0\" || r === \"0\")\n return 0;\n const n = p(e), i = p(r), c = p(t), a = p(s), u = c.mul(n).sub(i.mul(a)), l = i.mul(a).add(n.mul(i));\n return Math.abs(u.div(l).getBaseValue(\"number\"));\n}\nconst me = (s, t) => {\n switch (s) {\n case _.LEAVE:\n case _.BOND: {\n const { address: e } = t;\n return `${s}:${e}`;\n }\n case _.UNBOND: {\n const { address: e, unbondAmount: r } = t;\n return `${s}:${e}:${r}`;\n }\n case _.THORNAME_REGISTER: {\n const { name: e, chain: r, address: n, owner: i } = t;\n return `${s}:${e}:${r}:${n}${i ? `:${i}` : \"\"}`;\n }\n case _.DEPOSIT: {\n const { chain: e, symbol: r, address: n, singleSide: i } = t;\n return i ? `${s}:${e}/${r}::t:0` : `${s}:${((a, u) => {\n switch (a) {\n case o.Litecoin:\n return \"l\";\n case o.Dogecoin:\n return \"d\";\n case o.BitcoinCash:\n return \"c\";\n default:\n return `${a}.${u}`;\n }\n })(e, r)}:${n || \"\"}:t:0`;\n }\n case _.WITHDRAW: {\n const { chain: e, ticker: r, symbol: n, basisPoints: i, targetAssetString: c, singleSide: a } = t, u = e === \"ETH\" && r !== \"ETH\" ? `${r}-${n.slice(-3)}` : n, l = !a && c ? `:${c}` : \"\";\n return `${s}:${e}${a ? \"/\" : \".\"}${u}:${i}${l}`;\n }\n case _.OPEN_LOAN:\n case _.CLOSE_LOAN: {\n const { asset: e, address: r } = t;\n return `${s}:${e}:${r}`;\n }\n default:\n return \"\";\n }\n};\nfunction pe(s) {\n if (s < 0)\n throw new Error(\"Invalid number of year\");\n return 10 + s;\n}\nfunction fe(s) {\n if (s.length > 30)\n return !1;\n const t = /^[a-zA-Z0-9+_-]+$/g;\n return !!s.match(t);\n}\nfunction _e([s, t, e, r, n]) {\n return `${s}'/${t}'/${e}'/${r}${typeof n != \"number\" ? \"\" : `/${n}`}`;\n}\nclass X extends Error {\n constructor(t, e, r) {\n const n = t.status || t.status === 0 ? t.status : \"\", i = t.statusText || \"\", c = `${n} ${i}`.trim(), a = c ? `status code ${c}` : \"an unknown error\";\n super(`Request failed with ${a}`), 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 = e, this.options = r;\n }\n}\nclass ot 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 q = (s) => s !== null && typeof s == \"object\", M = (...s) => {\n for (const t of s)\n if ((!q(t) || Array.isArray(t)) && t !== void 0)\n throw new TypeError(\"The `options` argument must be an object\");\n return J({}, ...s);\n}, at = (s = {}, t = {}) => {\n const e = new globalThis.Headers(s), r = t instanceof globalThis.Headers, n = new globalThis.Headers(t);\n for (const [i, c] of n.entries())\n r && c === \"undefined\" || c === void 0 ? e.delete(i) : e.set(i, c);\n return e;\n}, J = (...s) => {\n let t = {}, e = {};\n for (const r of s)\n if (Array.isArray(r))\n Array.isArray(t) || (t = []), t = [...t, ...r];\n else if (q(r)) {\n for (let [n, i] of Object.entries(r))\n q(i) && n in t && (i = J(t[n], i)), t = { ...t, [n]: i };\n q(r.headers) && (e = at(e, r.headers), t.headers = e);\n }\n return t;\n}, Vt = (() => {\n let s = !1, t = !1;\n const e = typeof globalThis.ReadableStream == \"function\", r = typeof globalThis.Request == \"function\";\n return e && 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 s = !0, \"half\";\n }\n }).headers.has(\"Content-Type\")), s && !t;\n})(), kt = typeof globalThis.AbortController == \"function\", jt = typeof globalThis.ReadableStream == \"function\", Nt = typeof globalThis.FormData == \"function\", ct = [\"get\", \"post\", \"put\", \"patch\", \"head\", \"delete\"], Ht = {\n json: \"application/json\",\n text: \"text/*\",\n formData: \"multipart/form-data\",\n arrayBuffer: \"*/*\",\n blob: \"*/*\"\n}, L = 2147483647, ut = Symbol(\"stop\"), Ut = {\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}, Dt = {\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}, Lt = (s) => ct.includes(s) ? s.toUpperCase() : s, Ft = [\"get\", \"put\", \"head\", \"delete\", \"options\", \"trace\"], Wt = [408, 413, 429, 500, 502, 503, 504], lt = [413, 429, 503], Z = {\n limit: 2,\n methods: Ft,\n statusCodes: Wt,\n afterStatusCodes: lt,\n maxRetryAfter: Number.POSITIVE_INFINITY,\n backoffLimit: Number.POSITIVE_INFINITY,\n delay: (s) => 0.3 * 2 ** (s - 1) * 1e3\n}, Kt = (s = {}) => {\n if (typeof s == \"number\")\n return {\n ...Z,\n limit: s\n };\n if (s.methods && !Array.isArray(s.methods))\n throw new Error(\"retry.methods must be an array\");\n if (s.statusCodes && !Array.isArray(s.statusCodes))\n throw new Error(\"retry.statusCodes must be an array\");\n return {\n ...Z,\n ...s,\n afterStatusCodes: lt\n };\n};\nasync function Gt(s, t, e, r) {\n return new Promise((n, i) => {\n const c = setTimeout(() => {\n e && e.abort(), i(new ot(s));\n }, r.timeout);\n r.fetch(s, t).then(n).catch(i).then(() => {\n clearTimeout(c);\n });\n });\n}\nasync function zt(s, { signal: t }) {\n return new Promise((e, r) => {\n t && (t.throwIfAborted(), t.addEventListener(\"abort\", n, { once: !0 }));\n function n() {\n clearTimeout(i), r(t.reason);\n }\n const i = setTimeout(() => {\n t == null || t.removeEventListener(\"abort\", n), e();\n }, s);\n });\n}\nconst Jt = (s, t) => {\n const e = {};\n for (const r in t)\n !(r in Dt) && !(r in Ut) && !(r in s) && (e[r] = t[r]);\n return e;\n};\nclass V {\n static create(t, e) {\n const r = new V(t, e), n = async () => {\n if (typeof r._options.timeout == \"number\" && r._options.timeout > L)\n throw new RangeError(`The \\`timeout\\` option cannot be greater than ${L}`);\n await Promise.resolve();\n let a = await r._fetch();\n for (const u of r._options.hooks.afterResponse) {\n const l = await u(r.request, r._options, r._decorateResponse(a.clone()));\n l instanceof globalThis.Response && (a = l);\n }\n if (r._decorateResponse(a), !a.ok && r._options.throwHttpErrors) {\n let u = new X(a, r.request, r._options);\n for (const l of r._options.hooks.beforeError)\n u = await l(u);\n throw u;\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 (!jt)\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 }, c = r._options.retry.methods.includes(r.request.method.toLowerCase()) ? r._retry(n) : n();\n for (const [a, u] of Object.entries(Ht))\n c[a] = async () => {\n r.request.headers.set(\"accept\", r.request.headers.get(\"accept\") || u);\n const h = (await c).clone();\n if (a === \"json\") {\n if (h.status === 204 || (await h.clone().arrayBuffer()).byteLength === 0)\n return \"\";\n if (e.parseJson)\n return e.parseJson(await h.text());\n }\n return h[a]();\n };\n return c;\n }\n // eslint-disable-next-line complexity\n constructor(t, e = {}) {\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 ...e,\n headers: at(this._input.headers, e.headers),\n hooks: J({\n beforeRequest: [],\n beforeRetry: [],\n beforeError: [],\n afterResponse: []\n }, e.hooks),\n method: Lt(e.method ?? this._input.method),\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n prefixUrl: String(e.prefixUrl || \"\"),\n retry: Kt(e.retry),\n throwHttpErrors: e.throwHttpErrors !== !1,\n timeout: e.timeout ?? 1e4,\n fetch: e.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 (kt) {\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 (Vt && (this._options.duplex = \"half\"), this.request = new globalThis.Request(this._input, this._options), this._options.searchParams) {\n const n = \"?\" + (typeof this._options.searchParams == \"string\" ? this._options.searchParams.replace(/^\\?/, \"\") : new URLSearchParams(this._options.searchParams).toString()), i = this.request.url.replace(/(?:\\?.*?)?(?=#|$)/, n);\n (Nt && 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(i, { ...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 ot)) {\n if (t instanceof X) {\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 n = Number(r);\n return Number.isNaN(n) ? n = Date.parse(r) - Date.now() : n *= 1e3, this._options.retry.maxRetryAfter !== void 0 && n > this._options.retry.maxRetryAfter ? 0 : n;\n }\n if (t.response.status === 413)\n return 0;\n }\n const e = this._options.retry.delay(this._retryCount);\n return Math.min(this._options.retry.backoffLimit, e);\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 (e) {\n const r = Math.min(this._calculateRetryDelay(e), L);\n if (r !== 0 && this._retryCount > 0) {\n await zt(r, { signal: this._options.signal });\n for (const n of this._options.hooks.beforeRetry)\n if (await n({\n request: this.request,\n options: this._options,\n error: e,\n retryCount: this._retryCount\n }) === ut)\n return;\n return this._retry(t);\n }\n throw e;\n }\n }\n async _fetch() {\n for (const e of this._options.hooks.beforeRequest) {\n const r = await e(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 = Jt(this.request, this._options);\n return this._options.timeout === !1 ? this._options.fetch(this.request.clone(), t) : Gt(this.request.clone(), t, this.abortController, this._options);\n }\n /* istanbul ignore next */\n _stream(t, e) {\n const r = Number(t.headers.get(\"content-length\")) || 0;\n let n = 0;\n return t.status === 204 ? (e && e({ percent: 1, totalBytes: r, transferredBytes: n }, 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 c = t.body.getReader();\n e && e({ percent: 0, transferredBytes: 0, totalBytes: r }, new Uint8Array());\n async function a() {\n const { done: u, value: l } = await c.read();\n if (u) {\n i.close();\n return;\n }\n if (e) {\n n += l.byteLength;\n const h = r === 0 ? 0 : n / r;\n e({ percent: h, transferredBytes: n, totalBytes: r }, l);\n }\n i.enqueue(l), await a();\n }\n await a();\n }\n }), {\n status: t.status,\n statusText: t.statusText,\n headers: t.headers\n });\n }\n}\n/*! MIT License © Sindre Sorhus */\nconst W = (s) => {\n const t = (e, r) => V.create(e, M(s, r));\n for (const e of ct)\n t[e] = (r, n) => V.create(r, M(s, n, { method: e }));\n return t.create = (e) => W(M(e)), t.extend = (e) => W(M(s, e)), t.stop = ut, t;\n}, Yt = W(), Qt = Yt, Xt = typeof window < \"u\" ? {} : { referrer: \"https://sk.thorswap.net\", referer: \"https://sk.thorswap.net\" }, tt = Qt.create({ headers: Xt }), Zt = {\n get: (s, t) => tt.get(s, t).json(),\n post: (s, t) => tt.post(s, t).json()\n}, et = [...Object.values(o), \"TERRA\"];\nfunction te(s = \"\") {\n const t = s.toUpperCase(), [e] = t.split(\".\");\n if (et.includes(e))\n return !0;\n const [r] = t.split(\"/\");\n if (et.includes(r))\n return !0;\n throw new Error(\n `Invalid identifier: ${s}. Expected format: <Chain>.<Ticker> or <Chain>.<Ticker>-<ContractAddress>`\n );\n}\nconst O = 8, y = (s) => 10n ** BigInt(s), C = (s) => Math.log10(parseFloat(s.toString()));\nfunction k({\n value: s,\n bigIntDecimal: t = O,\n decimal: e = O\n}) {\n if (e === 0)\n return s.toString();\n const r = s < 0n;\n let n = s.toString().substring(r ? 1 : 0);\n const i = e - (n.length - 1);\n i > 0 && (n = \"0\".repeat(i) + n);\n const c = n.length - e;\n let a = n.slice(-e);\n return parseInt(a[t]) >= 5 ? a = `${a.substring(0, t - 1)}${(parseInt(a[t - 1]) + 1).toString()}` : a = a.substring(0, t), `${r ? \"-\" : \"\"}${n.slice(0, c)}.${a}`.replace(\n /\\.?0*$/,\n \"\"\n );\n}\nvar w, R, b, T, N, ht, E, K, B, G;\nconst Y = class Y {\n constructor(t) {\n v(this, w);\n v(this, b);\n v(this, N);\n v(this, E);\n v(this, B);\n f(this, \"decimalMultiplier\", 10n ** 8n);\n f(this, \"bigIntValue\", 0n);\n f(this, \"decimal\");\n const e = z(t), r = typeof t == \"object\";\n this.decimal = r ? t.decimal : void 0, this.decimalMultiplier = r && \"decimalMultiplier\" in t ? t.decimalMultiplier : y(Math.max(rt(x(e)), this.decimal || 0)), m(this, N, ht).call(this, e);\n }\n static fromBigInt(t, e) {\n return new Y({\n decimal: e,\n value: k({ value: t, bigIntDecimal: e, decimal: e })\n });\n }\n static shiftDecimals({\n value: t,\n from: e,\n to: r\n }) {\n return this.fromBigInt(\n t.getBaseValue(\"bigint\") * y(r) / y(e),\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 m(this, w, R).call(this, \"add\", ...t);\n }\n sub(...t) {\n return m(this, w, R).call(this, \"sub\", ...t);\n }\n mul(...t) {\n return m(this, w, R).call(this, \"mul\", ...t);\n }\n div(...t) {\n return m(this, w, R).call(this, \"div\", ...t);\n }\n gt(t) {\n return m(this, b, T).call(this, \"gt\", t);\n }\n gte(t) {\n return m(this, b, T).call(this, \"gte\", t);\n }\n lt(t) {\n return m(this, b, T).call(this, \"lt\", t);\n }\n lte(t) {\n return m(this, b, T).call(this, \"lte\", t);\n }\n eqValue(t) {\n return m(this, b, T).call(this, \"eqValue\", t);\n }\n // @ts-expect-error False positive\n getValue(t) {\n const e = this.formatBigIntToSafeValue(\n this.bigIntValue,\n this.decimal || C(this.decimalMultiplier)\n );\n switch (t) {\n case \"number\":\n return Number(e);\n case \"string\":\n return e;\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 e = this.decimalMultiplier / y(this.decimal || d.THOR), r = this.bigIntValue / e;\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, e) {\n if (!e && typeof t == \"object\")\n return t.bigIntValue;\n const r = z(t), n = x(r);\n return n === \"0\" || n === \"undefined\" ? 0n : m(this, B, G).call(this, n, e);\n }\n toSignificant(t = 6) {\n const [e, r] = this.getValue(\"string\").split(\".\"), n = e || \"\", i = r || \"\";\n if ((parseInt(n) ? n.length + i.length : i.length) <= t)\n return this.getValue(\"string\");\n if (n.length >= t)\n return n.slice(0, t).padEnd(n.length, \"0\");\n if (parseInt(n))\n return `${n}.${i.slice(0, t - n.length)}`.padEnd(\n t - n.length,\n \"0\"\n );\n const a = parseInt(i), u = `${a}`.slice(0, t);\n return `0.${u.padStart(\n i.length - `${a}`.length + u.length,\n \"0\"\n )}`;\n }\n toFixed(t = 6) {\n const [e, r] = this.getValue(\"string\").split(\".\"), n = e || \"\", i = r || \"\";\n if (parseInt(n))\n return `${n}.${i.slice(0, t)}`.padEnd(t, \"0\");\n const c = parseInt(i), a = `${c}`.slice(0, t);\n return `0.${a.padStart(\n i.length - `${c}`.length + a.length,\n \"0\"\n )}`;\n }\n toAbbreviation(t = 2) {\n const e = this.getValue(\"number\"), r = [\"\", \"K\", \"M\", \"B\", \"T\", \"Q\", \"Qi\", \"S\"], n = Math.floor(Math.log10(Math.abs(e)) / 3), i = r[n];\n if (!i)\n return this.getValue(\"string\");\n const c = 10 ** (n * 3);\n return `${(e / c).toFixed(t)}${i}`;\n }\n toCurrency(t = \"$\", {\n currencyPosition: e = \"start\",\n decimal: r = 2,\n decimalSeparator: n = \".\",\n thousandSeparator: i = \",\"\n } = {}) {\n const c = this.getValue(\"number\"), [a, u = \"\"] = c.toFixed(6).split(\".\"), l = a.replace(/\\B(?=(\\d{3})+(?!\\d))/g, i), h = !a && !u ? \"0.00\" : a === \"0\" ? `${parseFloat(`0.${u}`)}`.replace(\".\", n) : `${l}${parseInt(u) ? `${n}${u.slice(0, r)}` : \"\"}`;\n return `${e === \"start\" ? t : \"\"}${h}${e === \"end\" ? t : \"\"}`;\n }\n formatBigIntToSafeValue(t, e) {\n const r = e || this.decimal || O, n = Math.max(\n r,\n C(this.decimalMultiplier)\n ), i = t < 0n, c = t.toString().substring(i ? 1 : 0), a = n - (c.length - 1), u = a > 0 ? \"0\".repeat(a) + c : c, l = u.length - n;\n let h = u.slice(-n);\n return parseInt(h[r]) >= 5 ? h = `${h.substring(0, r - 1)}${(parseInt(h[r - 1]) + 1).toString()}` : h = h.substring(0, r), `${i ? \"-\" : \"\"}${u.slice(\n 0,\n l\n )}.${h}`.replace(/\\.?0*$/, \"\");\n }\n};\nw = new WeakSet(), R = function(t, ...e) {\n const r = m(this, E, K).call(this, this, ...e), n = Math.max(r, C(this.decimalMultiplier)), i = y(n), c = e.reduce(\n (u, l) => {\n const h = this.getBigIntValue(l, n);\n switch (t) {\n case \"add\":\n return u + h;\n case \"sub\":\n return u - h;\n case \"mul\":\n return u * h / i;\n case \"div\": {\n if (h === 0n)\n throw new RangeError(\"Division by zero\");\n return u * i / h;\n }\n default:\n return u;\n }\n },\n //normalize is to precision multiplier base\n this.bigIntValue * i / this.decimalMultiplier\n ), a = k({\n bigIntDecimal: n,\n decimal: n,\n value: c\n });\n return new this.constructor({\n decimalMultiplier: y(n),\n decimal: this.decimal,\n value: a,\n identifier: this.toString()\n });\n}, b = new WeakSet(), T = function(t, ...e) {\n const r = m(this, E, K).call(this, this, ...e), n = this.getBigIntValue(e[0], r), i = this.getBigIntValue(this, r);\n switch (t) {\n case \"gt\":\n return i > n;\n case \"gte\":\n return i >= n;\n case \"lt\":\n return i < n;\n case \"lte\":\n return i <= n;\n case \"eqValue\":\n return i === n;\n }\n}, N = new WeakSet(), ht = function(t) {\n const e = x(t) || \"0\";\n this.bigIntValue = m(this, B, G).call(this, e);\n}, E = new WeakSet(), K = function(...t) {\n const e = t.map((r) => typeof r == \"object\" ? r.decimal || C(r.decimalMultiplier) : rt(x(r))).filter(Boolean);\n return Math.max(...e, O);\n}, B = new WeakSet(), G = function(t, e) {\n const r = e ? y(e) : this.decimalMultiplier, n = C(r), [i = \"\", c = \"\"] = t.split(\".\");\n return BigInt(`${i}${c.padEnd(n, \"0\")}`);\n};\nlet j = Y;\nconst ee = Intl.NumberFormat(\"fullwide\", {\n useGrouping: !1,\n maximumFractionDigits: 20\n});\nfunction x(s) {\n const e = `${typeof s == \"number\" ? ee.format(s) : z(s)}`.replaceAll(\",\", \".\").split(\".\");\n return e.length > 1 ? `${e.slice(0, -1).join(\"\")}.${e.at(-1)}` : e[0];\n}\nfunction rt(s) {\n var e;\n const t = ((e = s.split(\".\")[1]) == null ? void 0 : e.length) || 0;\n return Math.max(t, O);\n}\nfunction z(s) {\n return typeof s == \"object\" ? \"getValue\" in s ? s.getValue(\"string\") : s.value : s;\n}\nconst S = /* @__PURE__ */ new Map();\nclass A extends j {\n constructor({\n value: e,\n decimal: r,\n tax: n,\n chain: i,\n symbol: c,\n identifier: a\n }) {\n super(typeof e == \"object\" ? e : { decimal: r, value: e });\n f(this, \"address\");\n f(this, \"chain\");\n f(this, \"isGasAsset\", !1);\n f(this, \"isSynthetic\", !1);\n f(this, \"symbol\");\n f(this, \"tax\");\n f(this, \"ticker\");\n f(this, \"type\");\n const u = P(a || `${i}.${c}`);\n this.type = Et(u), this.tax = n, this.chain = u.chain, this.ticker = u.ticker, this.symbol = u.symbol, this.address = u.address, this.isSynthetic = u.isSynthetic, this.isGasAsset = u.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: e, symbol: r }) {\n return this.chain === e && this.symbol === r;\n }\n chainId() {\n return vt[this.chain];\n }\n // THOR.RUNE\n // THOR.ETH.ETH\n // ETH.THOR-0x1234567890\n static fromUrl(e, r = 0) {\n const [n, i, c] = e.split(\".\");\n if (!n || !i)\n throw new Error(\"Invalid asset url\");\n const a = n === o.THORChain && c ? `${n}.${i}/${c}` : e;\n return F(a, r);\n }\n static fromString(e, r = 0) {\n return F(e, r);\n }\n static fromIdentifier(e, r = 0) {\n return F(e, r);\n }\n static fromStringSync(e, r = 0) {\n const { chain: n, isSynthetic: i } = P(e), c = S.get(e.toUpperCase());\n if (i)\n return st(e, r);\n const { tax: a, decimal: u, identifier: l } = c || {\n decimal: d[n],\n identifier: e\n };\n return new A({\n tax: a,\n value: I(r, u),\n identifier: i ? e : l,\n decimal: i ? 8 : u\n });\n }\n static fromIdentifierSync(e, r = 0) {\n const { chain: n, isSynthetic: i } = P(e), c = S.get(e);\n if (i)\n return st(e, r);\n const { tax: a, decimal: u, identifier: l } = c || {\n decimal: d[n],\n identifier: e\n };\n return new A({ tax: a, decimal: u, identifier: l, value: I(r, u) });\n }\n static fromChainOrSignature(e, r = 0) {\n const { decimal: n, identifier: i } = Ot(e);\n return new A({ value: I(r, n), decimal: n, identifier: i });\n }\n static loadStaticAssets() {\n return new Promise(\n async (e, r) => {\n try {\n const n = await import(\"@swapkit/tokens\");\n Object.values(n).forEach((i) => {\n var c;\n (c = i == null ? void 0 : i.tokens) == null || c.forEach(({ identifier: a, chain: u, ...l }) => {\n S.set(a.toUpperCase(), {\n identifier: a,\n decimal: \"decimals\" in l ? l.decimals : d[u]\n });\n });\n }), e({ ok: !0 });\n } catch (n) {\n console.error(n), r({\n ok: !1,\n error: n,\n message: \"Couldn't load static assets. Ensure you have installed @swapkit/tokens package\"\n });\n }\n }\n );\n }\n}\nfunction ge(s) {\n const t = A.fromChainOrSignature(s);\n switch (s) {\n case o.Bitcoin:\n case o.Litecoin:\n case o.BitcoinCash:\n return t.set(10001e-8);\n case o.Dogecoin:\n return t.set(1.00000001);\n case o.Avalanche:\n case o.Ethereum:\n return t.set(1e-8);\n case o.THORChain:\n case o.Maya:\n return t.set(0);\n case o.Cosmos:\n return t.set(1e-6);\n default:\n return t.set(1e-8);\n }\n}\nasync function F(s, t = 0) {\n te(s);\n const e = S.get(s.toUpperCase()), r = (e == null ? void 0 : e.decimal) || await It(P(s));\n return e || S.set(s.toUpperCase(), { identifier: s, decimal: r }), new A({ decimal: r, value: I(t, r), identifier: s });\n}\nfunction st(s, t = 0) {\n const [e, r] = s.split(\".\")[0].toUpperCase() === o.THORChain ? s.split(\".\").slice(1).join().split(\"/\") : s.split(\"/\");\n if (!e || !r)\n throw new Error(\"Invalid asset identifier\");\n return new A({\n decimal: 8,\n value: I(t, 8),\n identifier: `${o.THORChain}.${e}/${r}`\n });\n}\nfunction I(s, t) {\n return typeof s == \"bigint\" ? k({ value: s, bigIntDecimal: t, decimal: t }) : s;\n}\nfunction P(s) {\n const t = s.slice(0, 14).includes(\"/\"), [e, r] = s.split(\".\")[0].toUpperCase() === o.THORChain ? s.split(\".\").slice(1).join().split(\"/\") : s.split(\"/\");\n if (t && (!e || !r))\n throw new Error(\"Invalid asset identifier\");\n const n = s.includes(\".\") && !t ? s : `${o.THORChain}.${r}`, [i, c] = n.split(\".\"), [a, u] = (t ? r : c).split(\"-\");\n return {\n address: u == null ? void 0 : u.toLowerCase(),\n chain: i,\n isGasAsset: it({ chain: i, symbol: c }),\n isSynthetic: t,\n symbol: (t ? `${e}/` : \"\") + (u ? `${a}-${(u == null ? void 0 : u.toLowerCase()) ?? \"\"}` : c),\n ticker: a\n };\n}\nconst re = {\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: 10313,\n /**\n * Wallets\n */\n wallet_ledger_connection_error: 20001,\n /**\n * Helpers\n */\n helpers_number_different_decimals: 99101\n};\nclass dt extends Error {\n constructor(t, e) {\n console.error(e, { stack: e == null ? void 0 : e.stack, message: e == null ? void 0 : e.message }), super(t, { cause: { code: re[t], message: t } }), Object.setPrototypeOf(this, dt.prototype);\n }\n}\nclass g extends j {\n eq(t) {\n return this.eqValue(t);\n }\n static fromBigInt(t, e) {\n return new g({\n decimal: e,\n value: k({ value: t, bigIntDecimal: e, decimal: e })\n });\n }\n}\nexport {\n A as AssetValue,\n j as BigIntArithmetics,\n Zt as RequestClient,\n dt as SwapKitError,\n g as SwapKitNumber,\n oe as assetFromString,\n _e as derivationPathToString,\n ae as filterAssets,\n k as formatBigIntToSafeValue,\n ie as gasFeeMultiplier,\n Et as getAssetType,\n qt as getAsymmetricAssetShare,\n ue as getAsymmetricAssetWithdrawAmount,\n xt as getAsymmetricRuneShare,\n ce as getAsymmetricRuneWithdrawAmount,\n Ot as getCommonAssetInfo,\n It as getDecimal,\n he as getEstimatedPoolShare,\n de as getLiquiditySlippage,\n me as getMemoFor,\n ge as getMinAmountByChain,\n Pt as getSymmetricPoolShare,\n le as getSymmetricWithdraw,\n pe as getTHORNameCost,\n it as isGasAsset,\n fe 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/api';\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 { Keys, 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 try {\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 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 } catch (error) {\n throw new SwapKitError('core_swap_transaction_error', error);\n }\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 if (!(await validateAddressType({ address: await walletInstance?.getAddress(), chain })))\n throw new SwapKitError('core_transaction_invalid_sender_address');\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 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 errorKey: Keys = 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 : '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 if (chain === Chain.THORChain) {\n return {\n gas_rate: '0',\n router: '0',\n address: '',\n halted: false,\n chain: Chain.THORChain,\n };\n }\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 #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":["C","g","a","s","G","U","w","F","O","X","K","k","m","h","t","V","u","r","A","n","S","p","_","N","E","c","f","y","l","i","P","B","Y","b","W","j","J","$","T","I","x","d","H","o","q","Z","z","Q","ee","L","v","D","R","bt","yt","e","wt","Tt","nt","Zt","$t","Ct","Rt","St","It","ie","it","Ot","Et","oe","Bt","Mt","At","ae","xt","qt","ce","ue","Pt","le","he","mt","pt","ft","_t","gt","de","me","pe","fe","_e","ot","M","at","Vt","jt","Nt","ct","Ht","ut","Ut","Dt","Lt","Ft","Wt","lt","Kt","Gt","zt","Jt","Yt","Qt","Xt","tt","et","te","ht","rt","vt","st","ge","re","dt","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","error","defaultBalance","walletType","balance","walletInstance","rest","symbol","ticker","getChecksumAddressFromAsset","TCAvalancheDepositABI","TCBscDepositABI","TCEthereumVaultAbi","errorMessage","isInsufficientFunds","isGas","isServer","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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MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ,CAAC;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ,CAAC;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ,CAAC;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ,CAAC;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ,CAAC;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ,CAAC;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ,CAAC;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ,CAAC;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ,CAAC;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ,CAAC;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ,CAAC;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ,CAAC;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ,CAAC;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ,CAAC;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ,CAAC;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ,CAAC;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ,CAAC;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,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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 C = Object.defineProperty;\nvar g = (e, a, n) => a in e ? C(e, a, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[a] = n;\nvar s = (e, a, n) => (g(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], U = [\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], 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 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 O = /* @__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))(O || {});\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 || {}), h = /* @__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))(h || {}), 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.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: 3 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.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}, u = (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: p,\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 = _ || u(p, 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 = u(p, y || []), this.code = p, 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 u(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.Dogecoin = \"DOGE\", e.Ethereum = \"ETH\", e.Kujira = \"KUJI\", e.Litecoin = \"LTC\", e.Maya = \"MAYA\", e.Optimism = \"OP\", e.Polygon = \"MATIC\", e.THORChain = \"THOR\", e))(i || {}), P = /* @__PURE__ */ ((e) => (e.ARB = \"0x0000000000000000000000000000000000000000\", e.AVAX = \"0x0000000000000000000000000000000000000000\", e.ETH = \"0x0000000000000000000000000000000000000000\", e.BSC = \"0x0000000000000000000000000000000000000000\", e.MATIC = \"0x0000000000000000000000000000000000001010\", e.OP = \"0x4200000000000000000000000000000000000042\", e))(P || {}), 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.ETH = \"m/44'/60'/0'/0\", 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 Y = {\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};\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.ETH = 18] = \"ETH\", 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 W = [\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], J = [\n \"GAIA\",\n \"THOR\",\n \"BNB\"\n /* Binance */\n], $ = [\n \"AVAX\",\n \"BNB\",\n \"BSC\",\n \"BTC\",\n \"BCH\",\n \"GAIA\",\n \"DOGE\",\n \"ETH\",\n \"LTC\",\n \"THOR\"\n /* THORChain */\n];\nvar T = /* @__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.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.Polygon = \"137\", e.PolygonHex = \"0x89\", e.THORChain = \"thorchain-mainnet-v1\", e.THORChainStagenet = \"thorchain-stagenet-v2\", e))(T || {}), 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.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.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 d = Object.values(i), H = Object.keys(i), o = d.reduce(\n (e, a) => {\n const n = H.find((r) => i[r] === a);\n return n && (e[a] = n), e;\n },\n {}\n), q = d.reduce(\n (e, a) => (e[a] = T[o[a]], e),\n {}\n), Z = d.reduce(\n (e, a) => (e[a] = I[o[a]], e),\n {}\n), z = d.reduce(\n (e, a) => {\n const n = `${o[a]}Hex`;\n return e[a] = T[n], e;\n },\n {}\n), Q = {\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 \"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 \"0x89\": \"MATIC\",\n 137: \"MATIC\",\n \"thorchain-stagenet-v2\": \"THOR\",\n \"thorchain-mainnet-v1\": \"THOR\"\n /* THORChain */\n}, ee = {\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 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 MATIC: \"https://polygonscan.com\",\n THOR: \"https://runescan.io\"\n};\nvar L = /* @__PURE__ */ ((e) => (e[e.NoError = 36864] = \"NoError\", e))(L || {}), v = /* @__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))(v || {}), D = /* @__PURE__ */ ((e) => (e.Average = \"average\", e.Fast = \"fast\", e.Fastest = \"fastest\", e))(D || {}), R = /* @__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))(R || {});\nexport {\n X as AGG_SWAP,\n A as ApiError,\n x as ApiUrl,\n b as BaseDecimal,\n i as Chain,\n T as ChainId,\n Q as ChainIdToChain,\n q as ChainToChainId,\n ee as ChainToExplorerUrl,\n z as ChainToHexChainId,\n Z as ChainToRPC,\n P as ContractAddress,\n J as CosmosChainList,\n B as DerivationPath,\n t as ERROR_CODE,\n h as ERROR_MODULE,\n m as ERROR_TYPE,\n W as EVMChainList,\n L as ErrorCode,\n D as FeeOption,\n v as MemoType,\n Y as NetworkDerivationPath,\n O as QuoteMode,\n I as RPCUrl,\n K as SWAP_IN,\n k as SWAP_OUT,\n w as TCAvalancheDepositABI,\n F as TCBscDepositABI,\n U as TCEthereumVaultAbi,\n $ as TCSupportedChainList,\n j as UTXOChainList,\n R 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 Ue, MemoType as E, ChainToChainId as Le } from \"@swapkit/types\";\nvar l = /* @__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.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))(l || {});\nl.INVALID_INPUT_PARAMETERS + \"\", l.UNKNOWN_PROVIDERS + \"\", l.CANNOT_FIND_INBOUND_ADDRESS + \"\", l.NO_INBOUND_ADDRESSES + \"\", l.CHAIN_HALTED_OR_UNSUPPORTED + \"\", l.MISSING_INPUT_PARAMETER + \"\", l.INVALID_TYPE_GENERIC + \"\", l.INVALID_NUMBER_STRING + \"\", l.INVALID_NUMBER + \"\", l.INVALID_BOOLEAN + \"\", l.INVALID_OBJECT + \"\", l.INVALID_ARRAY + \"\", l.SELL_AMOUNT_MUST_BE_POSITIVE_INTEGER + \"\", l.SELL_BUY_ASSETS_ARE_THE_SAME + \"\", l.MISSING_SOURCE_ADDRESS_FOR_SYNTH + \"\", l.AFF_ADDRESS_AND_BPS_OR_NEITHER + \"\", l.AFF_ADDRESS_TOO_LONG + \"\", l.AFF_BPS_INTEGER_MAX_500 + \"\", l.SOURCE_ADDRESS_INVALID_FOR_SELL_CHAIN + \"\", l.DESTINATION_ADDRESS_INVALID_FOR_BUY_CHAIN + \"\", l.PREFERRED_PROVIDER_NOT_SUPPORTED + \"\", l.SOURCE_ADDRESS_SMART_CONTRACT + \"\", l.DESTINATION_ADDRESS_SMART_CONTRACT + \"\", l.BUY_AMOUNT_MUST_BE_POSITIVE_INTEGER + \"\", l.INVALID_PROVIDER + \"\", l.MISSING_CROSS_CHAIN_PROVIDER + \"\", l.MISSING_AVAX_PROVIDER + \"\", l.MISSING_BSC_PROVIDER + \"\", l.MISSING_ETH_PROVIDER + \"\", l.MISSING_ARB_PROVIDER + \"\", l.INVALID_PROVIDER_FOR_SWAP_OUT + \"\", l.INVALID_CHAIN + \"\", l.INVALID_ASSET + \"\", l.UNSUPPORTED_CHAIN + \"\", l.UNSUPPORTED_ASSET + \"\", l.UNSUPPORTED_ASSET_FOR_SWAPOUT + \"\", l.THORNODE_QUOTE_GENERIC_ERROR + \"\", l.INVALID_SOURCE_ADDRESS + \"\", l.INVALID_DESTINATION_ADDRESS + \"\", l.NOT_ENOUGH_SYNTH_BALANCE + \"\", l.SYNTH_MINTING_CAP_REACHED + \"\", l.INVALID_QUOTE_MODE + \"\", l.NO_QUOTES + \"\", l.SERVICE_UNAVAILABLE_GENERIC + \"\", l.MISSING_GAS_DATA_GENERIC + \"\", l.MISSING_TOKEN_INFO_GENERIC + \"\", l.CANT_FIND_TOKEN_LIST + \"\", l.NO_PRICE + \"\", l.PRICE_IS_STALE + \"\", l.ADDRESS_NOT_WHITELISTED + \"\", l.ADDRESS_ALREADY_CLAIMED + \"\";\nvar q = /* @__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.Polygon = \"MATIC\", e.THORChain = \"THOR\", e))(q || {}), 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.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.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.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.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 j = Object.values(q), $e = Object.keys(q), ne = j.reduce(\n (e, t) => {\n const n = $e.find((s) => q[s] === t);\n return n && (e[t] = n), e;\n },\n {}\n);\nj.reduce(\n (e, t) => (e[t] = te[ne[t]], e),\n {}\n);\nj.reduce(\n (e, t) => (e[t] = de[ne[t]], e),\n {}\n);\nj.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(), u = o ? `status code ${o}` : \"an unknown error\";\n super(`Request failed with ${u}`), 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\", $ = (...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}, ve = (() => {\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\", xe = typeof globalThis.FormData == \"function\", pe = [\"get\", \"post\", \"put\", \"patch\", \"head\", \"delete\"], Fe = {\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, qe = [\"get\", \"put\", \"head\", \"delete\", \"options\", \"trace\"], je = [408, 413, 429, 500, 502, 503, 504], me = [413, 429, 503], ce = {\n limit: 2,\n methods: qe,\n statusCodes: je,\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 F {\n static create(t, n) {\n const s = new F(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 u of s._options.hooks.afterResponse) {\n const c = await u(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 u = new oe(o, s.request, s._options);\n for (const c of s._options.hooks.beforeError)\n u = await c(u);\n throw u;\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, u] of Object.entries(Fe))\n i[o] = async () => {\n s.request.headers.set(\"accept\", s.request.headers.get(\"accept\") || u);\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 (ve && (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 (xe && 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 u() {\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 u();\n }\n await u();\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) => F.create(n, $(e, s));\n for (const n of pe)\n t[n] = (s, r) => F.create(s, $(e, r, { 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\" }, ue = () => 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) => ue().get(e, t).json(),\n post: (e, t) => ue().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(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 === 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 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.Polygon:\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 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), ut = (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) && ut(n) && t.value !== \"0\";\n});\nfunction lt({\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), u = r.mul(r).mul(2), c = r.mul(s).mul(2), _ = s.mul(s), h = r.mul(r).mul(r);\n return o.mul(u.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), u = r.mul(r).mul(2), c = r.mul(s).mul(2), _ = s.mul(s), h = o.mul(u.sub(c).add(_)), P = r.mul(r).mul(r);\n return h.div(P);\n}\nfunction Nt({\n percent: e,\n runeDepth: t,\n liquidityUnits: n,\n poolUnits: s\n}) {\n return lt({ runeDepth: t, liquidityUnits: n, poolUnits: s }).mul(e);\n}\nfunction Ct({\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 }), u = 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(u), ie = h.mul(o), ge = _.mul(h), Oe = o.mul(u), 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), u = A(e), c = o.mul(r).sub(i.mul(u)), _ = i.mul(u).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}:${((u, c) => {\n switch (u) {\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 `${u}.${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: u } = t, c = n === \"ETH\" && s !== \"ETH\" ? `${s}-${r.slice(-3)}` : r, _ = !u && o ? `:${o}` : \"\";\n return `${e}:${n}${u ? \"/\" : \".\"}${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 le = [...Object.values(a), \"TERRA\"];\nfunction dt(e = \"\") {\n const t = e.toUpperCase(), [n] = t.split(\".\");\n if (le.includes(n))\n return !0;\n const [s] = t.split(\"/\");\n if (le.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, 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 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 u = r.slice(-n);\n return parseInt(u[t]) >= 5 ? u = `${u.substring(0, t - 1)}${(parseInt(u[t - 1]) + 1).toString()}` : u = u.substring(0, t), `${s ? \"-\" : \"\"}${r.slice(0, o)}.${u}`.replace(\n /\\.?0*$/,\n \"\"\n );\n}\nvar C, y, f, D, k, Ne, U, z, L, Z;\nconst re = class re {\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), s = typeof t == \"object\";\n this.decimal = s ? t.decimal : void 0, this.decimalMultiplier = s && \"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 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\") * N(s) / N(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, 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), 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 = v(s);\n return r === \"0\" || r === \"undefined\" ? 0n : T(this, L, 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 u = parseInt(i), c = `${u}`.slice(0, t);\n return `0.${c.padStart(\n i.length - `${u}`.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), u = `${o}`.slice(0, t);\n return `0.${u.padStart(\n i.length - `${o}`.length + u.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\"), [u, c = \"\"] = o.toFixed(6).split(\".\"), _ = u.replace(/\\B(?=(\\d{3})+(?!\\d))/g, i), h = !u && !c ? \"0.00\" : u === \"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), u = r - (o.length - 1), c = u > 0 ? \"0\".repeat(u) + 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};\nC = new WeakSet(), y = function(t, ...n) {\n const s = T(this, U, z).call(this, this, ...n), r = Math.max(s, b(this.decimalMultiplier)), i = N(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 ), u = G({\n bigIntDecimal: r,\n decimal: r,\n value: o\n });\n return new this.constructor({\n decimalMultiplier: N(r),\n decimal: this.decimal,\n value: u,\n identifier: this.toString()\n });\n}, f = new WeakSet(), D = function(t, ...n) {\n const s = T(this, U, 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(), 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((s) => typeof s == \"object\" ? s.decimal || b(s.decimalMultiplier) : _e(v(s))).filter(Boolean);\n return Math.max(...n, B);\n}, L = new WeakSet(), Z = function(t, n) {\n const s = n ? N(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 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: s,\n tax: r,\n chain: i,\n symbol: o,\n identifier: u\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 = x(u || `${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 Le[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 u = r === a.THORChain && o ? `${r}.${i}/${o}` : n;\n return J(u, 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 } = x(n), o = w.get(n.toUpperCase());\n if (i)\n return he(n, s);\n const { tax: u, decimal: c, identifier: _ } = o || {\n decimal: d[r],\n identifier: n\n };\n return new g({\n tax: u,\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 } = x(n), o = w.get(n);\n if (i)\n return he(n, s);\n const { tax: u, decimal: c, identifier: _ } = o || {\n decimal: d[r],\n identifier: n\n };\n return new g({ tax: u, 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: u, chain: c, ..._ }) => {\n w.set(u.toUpperCase(), {\n identifier: u,\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(x(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 x(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(\".\"), [u, c] = (t ? s : o).split(\"-\");\n return {\n address: c == null ? void 0 : c.toLowerCase(),\n chain: i,\n isGasAsset: fe({ chain: i, symbol: o }),\n isSynthetic: t,\n symbol: (t ? `${n}/` : \"\") + (c ? `${u}-${(c == null ? void 0 : c.toLowerCase()) ?? \"\"}` : o),\n ticker: u\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: 10313,\n /**\n * Wallets\n */\n wallet_ledger_connection_error: 20001,\n /**\n * Helpers\n */\n helpers_number_different_decimals: 99101\n};\nclass Ce extends Error {\n constructor(t, 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 lt 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 { Keys, 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 try {\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 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 } catch (error) {\n throw new SwapKitError('core_swap_transaction_error', error);\n }\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 if (!(await validateAddressType({ address: await walletInstance?.getAddress(), chain })))\n throw new SwapKitError('core_transaction_invalid_sender_address');\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 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 errorKey: Keys = 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 : '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 if (chain === Chain.THORChain) {\n return {\n gas_rate: '0',\n router: '0',\n address: '',\n halted: false,\n chain: Chain.THORChain,\n };\n }\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 #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":["C","g","a","s","G","U","w","F","O","X","K","k","m","h","t","V","u","r","A","n","S","p","_","N","E","c","f","y","l","i","P","B","Y","b","W","j","J","$","T","I","x","d","H","o","q","Z","z","Q","ee","L","v","D","R","ye","we","Ve","te","de","$e","ne","oe","Te","M","se","Ae","ve","Me","He","xe","pe","Fe","Se","Ge","We","ke","qe","je","me","ce","Xe","Ye","Ke","Je","Ee","Re","ue","mt","Qe","Et","ze","Ze","et","tt","Ie","Ue","nt","st","rt","it","Rt","fe","at","ot","It","ct","ut","Be","ft","lt","_t","Nt","Ct","ht","gt","Ot","ie","ge","Oe","De","Pe","ae","be","Dt","Pt","bt","yt","wt","le","dt","Ne","re","_e","Tt","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","error","defaultBalance","walletType","balance","walletInstance","rest","symbol","ticker","getChecksumAddressFromAsset","TCAvalancheDepositABI","TCBscDepositABI","TCEthereumVaultAbi","errorMessage","isInsufficientFunds","isGas","isServer","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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,EACR;AAAA,EACA;AAAA,IACE,QAAQ,CAAC;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ,CAAC;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ,CAAC;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ,CAAC;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ,CAAC;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ,CAAC;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ,CAAC;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ,CAAC;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ,CAAC;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ,CAAC;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ,CAAC;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ,CAAC;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ,CAAC;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ,CAAC;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ,CAAC;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ,CAAC;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ,CAAC;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA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"}
|