@swapkit/core 1.0.0-rc.76 → 1.0.0-rc.77
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 +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.es.js +1 -1
- package/dist/index.es.js.map +1 -1
- package/package.json +1 -1
- package/src/client/index.ts +1 -1
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/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, n, a) => n in e ? C(e, n, { enumerable: !0, configurable: !0, writable: !0, value: a }) : e[n] = a;\nvar s = (e, n, a) => (g(e, typeof n != \"symbol\" ? n + \"\" : n, a), a);\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 h = /* @__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))(h || {});\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 || {}), O = /* @__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))(O || {}), 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.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, n) => {\n let a = V[e];\n for (let r = 0; r < n.length; r++)\n a = a.replace(`{${r}}`, n[r]);\n return n.length === 0 ? a.replace(\"{0}\", \"\") : a;\n};\nclass A extends Error {\n constructor({\n status: a,\n revision: r,\n module: S,\n code: d,\n message: _,\n type: N,\n options: { shouldLog: E, shouldThrow: c, shouldTrace: f } = {\n shouldLog: !0,\n shouldThrow: !0,\n shouldTrace: !0\n },\n displayMessageParams: y\n }) {\n const l = _ || u(d, y || []) || \"\";\n super(l);\n s(this, \"status\");\n s(this, \"revision\");\n s(this, \"type\");\n s(this, \"module\");\n s(this, \"code\");\n s(this, \"message\");\n s(this, \"display\");\n s(this, \"stack\");\n s(this, \"options\");\n s(this, \"displayMessageParams\");\n this.status = a, this.revision = r || \"NO_REVISION\", this.module = S, this.message = l, this.display = u(d, y || []), this.code = d, this.type = N || m.UNHANDLED_ERROR, this.options = {\n shouldLog: E || !0,\n shouldTrace: f || !0,\n shouldThrow: c || !1\n }, this.displayMessageParams = y || [], this.options.shouldTrace && Error.captureStackTrace(this);\n }\n static fromErrorInfo(a) {\n return new A(a);\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 a = `[${this.identifier}]: ${this.message}`;\n if (this.options.shouldLog && console.error(a, `\n`, this.stack || \"\"), this.options.shouldThrow)\n throw Error(a, { 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 W = {\n ARB: [44, 60, 0, 0, 0],\n AVAX: [44, 60, 0, 0, 0],\n BCH: [44, 145, 0, 0, 0],\n BNB: [44, 714, 0, 0, 0],\n BSC: [44, 60, 0, 0, 0],\n BTC: [84, 0, 0, 0, 0],\n DOGE: [44, 3, 0, 0, 0],\n ETH: [44, 60, 0, 0, 0],\n GAIA: [44, 118, 0, 0, 0],\n KUJI: [44, 118, 0, 0, 0],\n LTC: [84, 2, 0, 0, 0],\n MATIC: [44, 60, 0, 0, 0],\n MAYA: [44, 931, 0, 0, 0],\n OP: [44, 60, 0, 0, 0],\n THOR: [44, 931, 0, 0, 0]\n};\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 Y = [\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 p = Object.values(i), H = Object.keys(i), o = p.reduce(\n (e, n) => {\n const a = H.find((r) => i[r] === n);\n return a && (e[n] = a), e;\n },\n {}\n), q = p.reduce(\n (e, n) => (e[n] = T[o[n]], e),\n {}\n), Z = p.reduce(\n (e, n) => (e[n] = I[o[n]], e),\n {}\n), z = p.reduce(\n (e, n) => {\n const a = `${o[n]}Hex`;\n return e[n] = T[a], 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.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 O as ERROR_MODULE,\n m as ERROR_TYPE,\n Y as EVMChainList,\n L as ErrorCode,\n D as FeeOption,\n v as MemoType,\n W as NetworkDerivationPath,\n h 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 U, BaseDecimal as d, Chain as o, EVMChainList as At, ChainToRPC as $t, MemoType as _ } from \"@swapkit/types\";\nconst vt = \"0x313ce567\", nt = async ({ chain: s, to: t }) => {\n try {\n const { result: e } = await Xt.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: vt }, \"latest\"]\n })\n });\n return parseInt(BigInt(e).toString());\n } catch (e) {\n return console.error(e), d[s];\n }\n}, Tt = 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}, Ct = async (s) => {\n const [, t] = s.split(\"-\");\n return t != null && t.startsWith(\"0x\") ? nt({ chain: o.Avalanche, to: t.toLowerCase() }) : d.AVAX;\n}, Rt = async (s) => s === o.BinanceSmartChain ? d.BSC : d.BSC, St = async ({ chain: s, symbol: t }) => {\n switch (s) {\n case o.Ethereum:\n return Tt(t);\n case o.Avalanche:\n return Ct(t);\n case o.BinanceSmartChain:\n return Rt(t);\n default:\n return d[s];\n }\n}, ne = {\n [U.Average]: 1.2,\n [U.Fast]: 1.5,\n [U.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}, It = (s) => {\n switch (s) {\n case \"ETH.THOR\":\n return { identifier: \"ETH.THOR-0xa5f2211b9b8170f694421f2046281775e8468044\", decimal: 18 };\n case \"ETH.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 \"MAYA.MAYA\":\n return { identifier: \"MAYA.MAYA\", decimal: 4 };\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}, Ot = ({ 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}, ie = (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}, Et = new RegExp(\n /(.)\\1{6}|\\.ORG|\\.NET|\\.FINANCE|\\.COM|WWW|HTTP|\\\\\\\\|\\/\\/|[\\s$%:[\\]]/,\n \"gmi\"\n), Bt = (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}, oe = (s) => s.filter((t) => {\n const e = `${t.chain}.${t.symbol}`;\n return !Et.test(e) && Bt(e) && t.value !== \"0\";\n});\nfunction Mt({\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 xt({\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 ae({\n percent: s,\n runeDepth: t,\n liquidityUnits: e,\n poolUnits: r\n}) {\n return Mt({ runeDepth: t, liquidityUnits: e, poolUnits: r }).mul(s);\n}\nfunction ce({\n percent: s,\n assetDepth: t,\n liquidityUnits: e,\n poolUnits: r\n}) {\n return xt({ assetDepth: t, liquidityUnits: e, poolUnits: r }).mul(s);\n}\nfunction p(s) {\n return g.fromBigInt(BigInt(s), d.THOR);\n}\nfunction qt({\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 ue({\n liquidityUnits: s,\n poolUnits: t,\n runeDepth: e,\n assetDepth: r,\n percent: n\n}) {\n return Object.fromEntries(\n Object.entries(qt({ liquidityUnits: s, poolUnits: t, runeDepth: e, assetDepth: r })).map(\n ([i, c]) => [i, c.mul(n)]\n )\n );\n}\nfunction le({\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), D = p(r).add(Q);\n if (Q.getBaseValue(\"number\") === 0)\n return D.div(u).getBaseValue(\"number\");\n const gt = u.add(D);\n return D.div(gt).getBaseValue(\"number\");\n}\nfunction he({\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 de = (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 me(s) {\n if (s < 0)\n throw new Error(\"Invalid number of year\");\n return 10 + s;\n}\nfunction pe(s) {\n if (s.length > 30)\n return !1;\n const t = /^[a-zA-Z0-9+_-]+$/g;\n return !!s.match(t);\n}\nfunction fe([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}, Pt = (() => {\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})(), Vt = typeof globalThis.AbortController == \"function\", kt = typeof globalThis.ReadableStream == \"function\", jt = typeof globalThis.FormData == \"function\", ct = [\"get\", \"post\", \"put\", \"patch\", \"head\", \"delete\"], Nt = {\n json: \"application/json\",\n text: \"text/*\",\n formData: \"multipart/form-data\",\n arrayBuffer: \"*/*\",\n blob: \"*/*\"\n}, L = 2147483647, ut = Symbol(\"stop\"), Ht = {\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}, Ut = (s) => ct.includes(s) ? s.toUpperCase() : s, Lt = [\"get\", \"put\", \"head\", \"delete\", \"options\", \"trace\"], Ft = [408, 413, 429, 500, 502, 503, 504], lt = [413, 429, 503], Z = {\n limit: 2,\n methods: Lt,\n statusCodes: Ft,\n afterStatusCodes: lt,\n maxRetryAfter: Number.POSITIVE_INFINITY,\n backoffLimit: Number.POSITIVE_INFINITY,\n delay: (s) => 0.3 * 2 ** (s - 1) * 1e3\n}, Wt = (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 Yt(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 zt = (s, t) => {\n const e = {};\n for (const r in t)\n !(r in Dt) && !(r in Ht) && !(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 (!kt)\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(Nt))\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: Ut(e.method ?? this._input.method),\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n prefixUrl: String(e.prefixUrl || \"\"),\n retry: Wt(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 (Vt) {\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 (Pt && (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 (jt && 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 Yt(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 = zt(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}, Jt = W(), Kt = Jt, Qt = typeof window < \"u\" ? {} : { referrer: \"https://sk.thorswap.net\", referer: \"https://sk.thorswap.net\" }, tt = Kt.create({ headers: Qt }), Xt = {\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 Zt(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, G, B, Y;\nconst K = class K {\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 K({\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, Y).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, G).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, G).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, Y).call(this, e);\n}, E = new WeakSet(), G = 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(), Y = 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 = K;\nconst te = Intl.NumberFormat(\"fullwide\", {\n useGrouping: !1,\n maximumFractionDigits: 20\n});\nfunction x(s) {\n const e = `${typeof s == \"number\" ? te.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 = Ot(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 // 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 } = It(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 _e(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 Zt(s);\n const e = S.get(s.toUpperCase()), r = (e == null ? void 0 : e.decimal) || await St(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 ee = {\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 /**\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: ee[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 Xt as RequestClient,\n dt as SwapKitError,\n g as SwapKitNumber,\n ie as assetFromString,\n fe as derivationPathToString,\n oe as filterAssets,\n k as formatBigIntToSafeValue,\n ne as gasFeeMultiplier,\n Ot as getAssetType,\n xt as getAsymmetricAssetShare,\n ce as getAsymmetricAssetWithdrawAmount,\n Mt as getAsymmetricRuneShare,\n ae as getAsymmetricRuneWithdrawAmount,\n It as getCommonAssetInfo,\n St as getDecimal,\n le as getEstimatedPoolShare,\n he as getLiquiditySlippage,\n de as getMemoFor,\n _e as getMinAmountByChain,\n qt as getSymmetricPoolShare,\n ue as getSymmetricWithdraw,\n me as getTHORNameCost,\n it as isGasAsset,\n pe 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 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 { 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 ...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 { quoteMode } = route.meta;\n const evmChain = quoteMode.startsWith('ERC20-')\n ? Chain.Ethereum\n : quoteMode.startsWith('ARC20-')\n ? Chain.Avalanche\n : Chain.BinanceSmartChain;\n\n if (!route.complete) throw new SwapKitError('core_swap_route_not_complete');\n\n try {\n if (AGG_SWAP.includes(quoteMode)) {\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)) {\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'\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 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","n","a","s","G","U","w","F","h","X","K","k","m","O","t","V","u","r","A","S","d","_","N","E","c","f","y","l","P","B","W","b","Y","j","J","$","T","I","x","p","H","o","q","Z","z","Q","ee","L","v","D","R","bt","yt","e","wt","vt","nt","Xt","$t","Tt","Ct","Rt","St","ne","it","It","Ot","ie","i","Et","Bt","At","oe","Mt","xt","ae","ce","qt","ue","le","mt","pt","ft","_t","gt","he","de","me","pe","fe","ot","M","at","Pt","Vt","kt","jt","ct","Nt","ut","Ht","Dt","Ut","Ft","lt","Wt","Gt","Yt","zt","Jt","Kt","Qt","tt","et","Zt","ht","rt","te","st","_e","dt","avaxGeneric","avaxWoofi","bscGeneric","ethGeneric","pancakeV2","pangolin","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","_phrase","_derivationPath","_chain","__privateAdd","chainAddressData","item","isGasAsset","isSynthetic","isEVMChain","walletAction","spenderAddress","FeeOption","gas_rate","feeRate","gasFeeMultiplier","mimir","restTxParams"],"mappings":"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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/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, n, a) => n in e ? C(e, n, { enumerable: !0, configurable: !0, writable: !0, value: a }) : e[n] = a;\nvar s = (e, n, a) => (g(e, typeof n != \"symbol\" ? n + \"\" : n, a), a);\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 h = /* @__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))(h || {});\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 || {}), O = /* @__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))(O || {}), 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.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, n) => {\n let a = V[e];\n for (let r = 0; r < n.length; r++)\n a = a.replace(`{${r}}`, n[r]);\n return n.length === 0 ? a.replace(\"{0}\", \"\") : a;\n};\nclass A extends Error {\n constructor({\n status: a,\n revision: r,\n module: S,\n code: d,\n message: _,\n type: N,\n options: { shouldLog: E, shouldThrow: c, shouldTrace: f } = {\n shouldLog: !0,\n shouldThrow: !0,\n shouldTrace: !0\n },\n displayMessageParams: y\n }) {\n const l = _ || u(d, y || []) || \"\";\n super(l);\n s(this, \"status\");\n s(this, \"revision\");\n s(this, \"type\");\n s(this, \"module\");\n s(this, \"code\");\n s(this, \"message\");\n s(this, \"display\");\n s(this, \"stack\");\n s(this, \"options\");\n s(this, \"displayMessageParams\");\n this.status = a, this.revision = r || \"NO_REVISION\", this.module = S, this.message = l, this.display = u(d, y || []), this.code = d, this.type = N || m.UNHANDLED_ERROR, this.options = {\n shouldLog: E || !0,\n shouldTrace: f || !0,\n shouldThrow: c || !1\n }, this.displayMessageParams = y || [], this.options.shouldTrace && Error.captureStackTrace(this);\n }\n static fromErrorInfo(a) {\n return new A(a);\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 a = `[${this.identifier}]: ${this.message}`;\n if (this.options.shouldLog && console.error(a, `\n`, this.stack || \"\"), this.options.shouldThrow)\n throw Error(a, { 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 W = {\n ARB: [44, 60, 0, 0, 0],\n AVAX: [44, 60, 0, 0, 0],\n BCH: [44, 145, 0, 0, 0],\n BNB: [44, 714, 0, 0, 0],\n BSC: [44, 60, 0, 0, 0],\n BTC: [84, 0, 0, 0, 0],\n DOGE: [44, 3, 0, 0, 0],\n ETH: [44, 60, 0, 0, 0],\n GAIA: [44, 118, 0, 0, 0],\n KUJI: [44, 118, 0, 0, 0],\n LTC: [84, 2, 0, 0, 0],\n MATIC: [44, 60, 0, 0, 0],\n MAYA: [44, 931, 0, 0, 0],\n OP: [44, 60, 0, 0, 0],\n THOR: [44, 931, 0, 0, 0]\n};\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 Y = [\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 p = Object.values(i), H = Object.keys(i), o = p.reduce(\n (e, n) => {\n const a = H.find((r) => i[r] === n);\n return a && (e[n] = a), e;\n },\n {}\n), q = p.reduce(\n (e, n) => (e[n] = T[o[n]], e),\n {}\n), Z = p.reduce(\n (e, n) => (e[n] = I[o[n]], e),\n {}\n), z = p.reduce(\n (e, n) => {\n const a = `${o[n]}Hex`;\n return e[n] = T[a], 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.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 O as ERROR_MODULE,\n m as ERROR_TYPE,\n Y as EVMChainList,\n L as ErrorCode,\n D as FeeOption,\n v as MemoType,\n W as NetworkDerivationPath,\n h 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 U, BaseDecimal as d, Chain as o, EVMChainList as At, ChainToRPC as $t, MemoType as _ } from \"@swapkit/types\";\nconst vt = \"0x313ce567\", nt = async ({ chain: s, to: t }) => {\n try {\n const { result: e } = await Xt.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: vt }, \"latest\"]\n })\n });\n return parseInt(BigInt(e).toString());\n } catch (e) {\n return console.error(e), d[s];\n }\n}, Tt = 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}, Ct = async (s) => {\n const [, t] = s.split(\"-\");\n return t != null && t.startsWith(\"0x\") ? nt({ chain: o.Avalanche, to: t.toLowerCase() }) : d.AVAX;\n}, Rt = async (s) => s === o.BinanceSmartChain ? d.BSC : d.BSC, St = async ({ chain: s, symbol: t }) => {\n switch (s) {\n case o.Ethereum:\n return Tt(t);\n case o.Avalanche:\n return Ct(t);\n case o.BinanceSmartChain:\n return Rt(t);\n default:\n return d[s];\n }\n}, ne = {\n [U.Average]: 1.2,\n [U.Fast]: 1.5,\n [U.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}, It = (s) => {\n switch (s) {\n case \"ETH.THOR\":\n return { identifier: \"ETH.THOR-0xa5f2211b9b8170f694421f2046281775e8468044\", decimal: 18 };\n case \"ETH.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 \"MAYA.MAYA\":\n return { identifier: \"MAYA.MAYA\", decimal: 4 };\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}, Ot = ({ 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}, ie = (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}, Et = new RegExp(\n /(.)\\1{6}|\\.ORG|\\.NET|\\.FINANCE|\\.COM|WWW|HTTP|\\\\\\\\|\\/\\/|[\\s$%:[\\]]/,\n \"gmi\"\n), Bt = (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}, oe = (s) => s.filter((t) => {\n const e = `${t.chain}.${t.symbol}`;\n return !Et.test(e) && Bt(e) && t.value !== \"0\";\n});\nfunction Mt({\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 xt({\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 ae({\n percent: s,\n runeDepth: t,\n liquidityUnits: e,\n poolUnits: r\n}) {\n return Mt({ runeDepth: t, liquidityUnits: e, poolUnits: r }).mul(s);\n}\nfunction ce({\n percent: s,\n assetDepth: t,\n liquidityUnits: e,\n poolUnits: r\n}) {\n return xt({ assetDepth: t, liquidityUnits: e, poolUnits: r }).mul(s);\n}\nfunction p(s) {\n return g.fromBigInt(BigInt(s), d.THOR);\n}\nfunction qt({\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 ue({\n liquidityUnits: s,\n poolUnits: t,\n runeDepth: e,\n assetDepth: r,\n percent: n\n}) {\n return Object.fromEntries(\n Object.entries(qt({ liquidityUnits: s, poolUnits: t, runeDepth: e, assetDepth: r })).map(\n ([i, c]) => [i, c.mul(n)]\n )\n );\n}\nfunction le({\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), D = p(r).add(Q);\n if (Q.getBaseValue(\"number\") === 0)\n return D.div(u).getBaseValue(\"number\");\n const gt = u.add(D);\n return D.div(gt).getBaseValue(\"number\");\n}\nfunction he({\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 de = (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 me(s) {\n if (s < 0)\n throw new Error(\"Invalid number of year\");\n return 10 + s;\n}\nfunction pe(s) {\n if (s.length > 30)\n return !1;\n const t = /^[a-zA-Z0-9+_-]+$/g;\n return !!s.match(t);\n}\nfunction fe([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}, Pt = (() => {\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})(), Vt = typeof globalThis.AbortController == \"function\", kt = typeof globalThis.ReadableStream == \"function\", jt = typeof globalThis.FormData == \"function\", ct = [\"get\", \"post\", \"put\", \"patch\", \"head\", \"delete\"], Nt = {\n json: \"application/json\",\n text: \"text/*\",\n formData: \"multipart/form-data\",\n arrayBuffer: \"*/*\",\n blob: \"*/*\"\n}, L = 2147483647, ut = Symbol(\"stop\"), Ht = {\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}, Ut = (s) => ct.includes(s) ? s.toUpperCase() : s, Lt = [\"get\", \"put\", \"head\", \"delete\", \"options\", \"trace\"], Ft = [408, 413, 429, 500, 502, 503, 504], lt = [413, 429, 503], Z = {\n limit: 2,\n methods: Lt,\n statusCodes: Ft,\n afterStatusCodes: lt,\n maxRetryAfter: Number.POSITIVE_INFINITY,\n backoffLimit: Number.POSITIVE_INFINITY,\n delay: (s) => 0.3 * 2 ** (s - 1) * 1e3\n}, Wt = (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 Yt(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 zt = (s, t) => {\n const e = {};\n for (const r in t)\n !(r in Dt) && !(r in Ht) && !(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 (!kt)\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(Nt))\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: Ut(e.method ?? this._input.method),\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n prefixUrl: String(e.prefixUrl || \"\"),\n retry: Wt(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 (Vt) {\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 (Pt && (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 (jt && 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 Yt(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 = zt(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}, Jt = W(), Kt = Jt, Qt = typeof window < \"u\" ? {} : { referrer: \"https://sk.thorswap.net\", referer: \"https://sk.thorswap.net\" }, tt = Kt.create({ headers: Qt }), Xt = {\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 Zt(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, G, B, Y;\nconst K = class K {\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 K({\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, Y).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, G).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, G).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, Y).call(this, e);\n}, E = new WeakSet(), G = 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(), Y = 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 = K;\nconst te = Intl.NumberFormat(\"fullwide\", {\n useGrouping: !1,\n maximumFractionDigits: 20\n});\nfunction x(s) {\n const e = `${typeof s == \"number\" ? te.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 = Ot(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 // 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 } = It(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 _e(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 Zt(s);\n const e = S.get(s.toUpperCase()), r = (e == null ? void 0 : e.decimal) || await St(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 ee = {\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 /**\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: ee[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 Xt as RequestClient,\n dt as SwapKitError,\n g as SwapKitNumber,\n ie as assetFromString,\n fe as derivationPathToString,\n oe as filterAssets,\n k as formatBigIntToSafeValue,\n ne as gasFeeMultiplier,\n Ot as getAssetType,\n xt as getAsymmetricAssetShare,\n ce as getAsymmetricAssetWithdrawAmount,\n Mt as getAsymmetricRuneShare,\n ae as getAsymmetricRuneWithdrawAmount,\n It as getCommonAssetInfo,\n St as getDecimal,\n le as getEstimatedPoolShare,\n he as getLiquiditySlippage,\n de as getMemoFor,\n _e as getMinAmountByChain,\n qt as getSymmetricPoolShare,\n ue as getSymmetricWithdraw,\n me as getTHORNameCost,\n it as isGasAsset,\n pe 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 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 { 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 ...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 { quoteMode } = route.meta;\n const evmChain = quoteMode.startsWith('ERC20-')\n ? Chain.Ethereum\n : quoteMode.startsWith('ARC20-')\n ? Chain.Avalanche\n : Chain.BinanceSmartChain;\n\n if (!route.complete) throw new SwapKitError('core_swap_route_not_complete');\n\n try {\n if (AGG_SWAP.includes(quoteMode)) {\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)) {\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 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","n","a","s","G","U","w","F","h","X","K","k","m","O","t","V","u","r","A","S","d","_","N","E","c","f","y","l","P","B","W","b","Y","j","J","$","T","I","x","p","H","o","q","Z","z","Q","ee","L","v","D","R","bt","yt","e","wt","vt","nt","Xt","$t","Tt","Ct","Rt","St","ne","it","It","Ot","ie","i","Et","Bt","At","oe","Mt","xt","ae","ce","qt","ue","le","mt","pt","ft","_t","gt","he","de","me","pe","fe","ot","M","at","Pt","Vt","kt","jt","ct","Nt","ut","Ht","Dt","Ut","Ft","lt","Wt","Gt","Yt","zt","Jt","Kt","Qt","tt","et","Zt","ht","rt","te","st","_e","dt","avaxGeneric","avaxWoofi","bscGeneric","ethGeneric","pancakeV2","pangolin","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","_phrase","_derivationPath","_chain","__privateAdd","chainAddressData","item","isGasAsset","isSynthetic","isEVMChain","walletAction","spenderAddress","FeeOption","gas_rate","feeRate","gasFeeMultiplier","mimir","restTxParams"],"mappings":"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"}
|