@swapkit/helpers 1.0.0-rc.72 → 1.0.0-rc.74

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../api/dist/index.es.js","../src/helpers/asset.ts","../src/helpers/liquidity.ts","../src/helpers/memo.ts","../src/helpers/others.ts","../src/helpers/validators.ts","../src/modules/bigIntArithmetics.ts","../src/modules/swapKitNumber.ts","../src/modules/assetValue.ts","../src/modules/swapKitError.ts"],"sourcesContent":["var C = /* @__PURE__ */ ((t) => (t.Arbitrum = \"ARB\", t.Avalanche = \"AVAX\", t.Binance = \"BNB\", t.BinanceSmartChain = \"BSC\", t.Bitcoin = \"BTC\", t.BitcoinCash = \"BCH\", t.Cosmos = \"GAIA\", t.Dash = \"DASH\", t.Dogecoin = \"DOGE\", t.Ethereum = \"ETH\", t.Kujira = \"KUJI\", t.Litecoin = \"LTC\", t.Maya = \"MAYA\", t.Optimism = \"OP\", t.Polkadot = \"DOT\", t.Chainflip = \"FLIP\", t.Polygon = \"MATIC\", t.THORChain = \"THOR\", t))(C || {}), b = /* @__PURE__ */ ((t) => (t.Arbitrum = \"42161\", t.ArbitrumHex = \"0xa4b1\", t.Avalanche = \"43114\", t.AvalancheHex = \"0xa86a\", t.Binance = \"Binance-Chain-Tigris\", t.BinanceSmartChain = \"56\", t.BinanceSmartChainHex = \"0x38\", t.Bitcoin = \"bitcoin\", t.BitcoinCash = \"bitcoincash\", t.Chainflip = \"chainflip\", t.Cosmos = \"cosmoshub-4\", t.Dash = \"dash\", t.Dogecoin = \"dogecoin\", t.Kujira = \"kaiyo-1\", t.Ethereum = \"1\", t.EthereumHex = \"0x1\", t.Litecoin = \"litecoin\", t.Maya = \"mayachain-mainnet-v1\", t.MayaStagenet = \"mayachain-stagenet-v1\", t.Optimism = \"10\", t.OptimismHex = \"0xa\", t.Polkadot = \"polkadot\", t.Polygon = \"137\", t.PolygonHex = \"0x89\", t.THORChain = \"thorchain-mainnet-v1\", t.THORChainStagenet = \"thorchain-stagenet-v2\", t))(b || {}), O = /* @__PURE__ */ ((t) => (t.Arbitrum = \"https://arb1.arbitrum.io/rpc\", t.Avalanche = \"https://node-router.thorswap.net/avalanche-c\", t.Binance = \"\", t.BinanceSmartChain = \"https://bsc-dataseed.binance.org\", t.Bitcoin = \"https://node-router.thorswap.net/bitcoin\", t.BitcoinCash = \"https://node-router.thorswap.net/bitcoin-cash\", t.Chainflip = \"wss://mainnet-archive.chainflip.io\", t.Cosmos = \"https://node-router.thorswap.net/cosmos/rpc\", t.Dash = \"https://node-router.thorswap.net/dash\", t.Dogecoin = \"https://node-router.thorswap.net/dogecoin\", t.Ethereum = \"https://node-router.thorswap.net/ethereum\", t.Kujira = \"https://rpc-kujira.synergynodes.com/\", t.Litecoin = \"https://node-router.thorswap.net/litecoin\", t.Maya = \"https://tendermint.mayachain.info\", t.MayaStagenet = \"https://stagenet.tendermint.mayachain.info\", t.Optimism = \"https://mainnet.optimism.io\", t.Polkadot = \"wss://rpc.polkadot.io\", t.Polygon = \"https://polygon-rpc.com\", t.THORChain = \"https://rpc.thorswap.net\", t.THORChainStagenet = \"https://stagenet-rpc.ninerealms.com\", t))(O || {}), d = /* @__PURE__ */ ((t) => (t.Cosmos = \"https://node-router.thorswap.net/cosmos/rest\", t.Kujira = \"https://lcd-kujira.synergynodes.com/\", t.MayanodeMainnet = \"https://mayanode.mayachain.info\", t.MayanodeStagenet = \"https://stagenet.mayanode.mayachain.info\", t.ThornodeMainnet = \"https://thornode.thorswap.net\", t.ThornodeStagenet = \"https://stagenet-thornode.ninerealms.com\", t.ThorswapApi = \"https://api.thorswap.net\", t.ThorswapStatic = \"https://static.thorswap.net\", t))(d || {});\nconst m = Object.values(C), v = Object.keys(C), E = m.reduce(\n (t, e) => {\n const s = v.find((r) => C[r] === e);\n return s && (t[e] = s), t;\n },\n {}\n);\nm.reduce(\n (t, e) => (t[e] = b[E[e]], t),\n {}\n);\nm.reduce(\n (t, e) => (t[e] = O[E[e]], t),\n {}\n);\nm.reduce(\n (t, e) => {\n const s = `${E[e]}Hex`;\n return t[e] = b[s], t;\n },\n {}\n);\nclass g extends Error {\n constructor(e, s, r) {\n const o = e.status || e.status === 0 ? e.status : \"\", n = e.statusText || \"\", a = `${o} ${n}`.trim(), i = a ? `status code ${a}` : \"an unknown error\";\n super(`Request failed with ${i}`), 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 = e, this.request = s, this.options = r;\n }\n}\nclass N extends Error {\n constructor(e) {\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 = e;\n }\n}\nconst A = (t) => t !== null && typeof t == \"object\", _ = (...t) => {\n for (const e of t)\n if ((!A(e) || Array.isArray(e)) && e !== void 0)\n throw new TypeError(\"The `options` argument must be an object\");\n return P({}, ...t);\n}, D = (t = {}, e = {}) => {\n const s = new globalThis.Headers(t), r = e instanceof globalThis.Headers, o = new globalThis.Headers(e);\n for (const [n, a] of o.entries())\n r && a === \"undefined\" || a === void 0 ? s.delete(n) : s.set(n, a);\n return s;\n}, P = (...t) => {\n let e = {}, s = {};\n for (const r of t)\n if (Array.isArray(r))\n Array.isArray(e) || (e = []), e = [...e, ...r];\n else if (A(r)) {\n for (let [o, n] of Object.entries(r))\n A(n) && o in e && (n = P(e[o], n)), e = { ...e, [o]: n };\n A(r.headers) && (s = D(s, r.headers), e.headers = s);\n }\n return e;\n}, q = (() => {\n let t = !1, e = !1;\n const s = typeof globalThis.ReadableStream == \"function\", r = typeof globalThis.Request == \"function\";\n return s && r && (e = 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 t = !0, \"half\";\n }\n }).headers.has(\"Content-Type\")), t && !e;\n})(), L = typeof globalThis.AbortController == \"function\", U = typeof globalThis.ReadableStream == \"function\", x = typeof globalThis.FormData == \"function\", k = [\"get\", \"post\", \"put\", \"patch\", \"head\", \"delete\"], V = {\n json: \"application/json\",\n text: \"text/*\",\n formData: \"multipart/form-data\",\n arrayBuffer: \"*/*\",\n blob: \"*/*\"\n}, S = 2147483647, H = Symbol(\"stop\"), j = {\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}, F = {\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}, G = (t) => k.includes(t) ? t.toUpperCase() : t, M = [\"get\", \"put\", \"head\", \"delete\", \"options\", \"trace\"], X = [408, 413, 429, 500, 502, 503, 504], W = [413, 429, 503], w = {\n limit: 2,\n methods: M,\n statusCodes: X,\n afterStatusCodes: W,\n maxRetryAfter: Number.POSITIVE_INFINITY,\n backoffLimit: Number.POSITIVE_INFINITY,\n delay: (t) => 0.3 * 2 ** (t - 1) * 1e3\n}, $ = (t = {}) => {\n if (typeof t == \"number\")\n return {\n ...w,\n limit: t\n };\n if (t.methods && !Array.isArray(t.methods))\n throw new Error(\"retry.methods must be an array\");\n if (t.statusCodes && !Array.isArray(t.statusCodes))\n throw new Error(\"retry.statusCodes must be an array\");\n return {\n ...w,\n ...t,\n afterStatusCodes: W\n };\n};\nasync function K(t, e, s, r) {\n return new Promise((o, n) => {\n const a = setTimeout(() => {\n s && s.abort(), n(new N(t));\n }, r.timeout);\n r.fetch(t, e).then(o).catch(n).then(() => {\n clearTimeout(a);\n });\n });\n}\nasync function J(t, { signal: e }) {\n return new Promise((s, r) => {\n e && (e.throwIfAborted(), e.addEventListener(\"abort\", o, { once: !0 }));\n function o() {\n clearTimeout(n), r(e.reason);\n }\n const n = setTimeout(() => {\n e == null || e.removeEventListener(\"abort\", o), s();\n }, t);\n });\n}\nconst z = (t, e) => {\n const s = {};\n for (const r in e)\n !(r in F) && !(r in j) && !(r in t) && (s[r] = e[r]);\n return s;\n};\nclass T {\n static create(e, s) {\n const r = new T(e, s), o = async () => {\n if (typeof r._options.timeout == \"number\" && r._options.timeout > S)\n throw new RangeError(`The \\`timeout\\` option cannot be greater than ${S}`);\n await Promise.resolve();\n let i = await r._fetch();\n for (const h of r._options.hooks.afterResponse) {\n const u = await h(r.request, r._options, r._decorateResponse(i.clone()));\n u instanceof globalThis.Response && (i = u);\n }\n if (r._decorateResponse(i), !i.ok && r._options.throwHttpErrors) {\n let h = new g(i, r.request, r._options);\n for (const u of r._options.hooks.beforeError)\n h = await u(h);\n throw h;\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 (!U)\n throw new Error(\"Streams are not supported in your environment. `ReadableStream` is missing.\");\n return r._stream(i.clone(), r._options.onDownloadProgress);\n }\n return i;\n }, a = r._options.retry.methods.includes(r.request.method.toLowerCase()) ? r._retry(o) : o();\n for (const [i, h] of Object.entries(V))\n a[i] = async () => {\n r.request.headers.set(\"accept\", r.request.headers.get(\"accept\") || h);\n const p = (await a).clone();\n if (i === \"json\") {\n if (p.status === 204 || (await p.clone().arrayBuffer()).byteLength === 0)\n return \"\";\n if (s.parseJson)\n return s.parseJson(await p.text());\n }\n return p[i]();\n };\n return a;\n }\n // eslint-disable-next-line complexity\n constructor(e, s = {}) {\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 = e, 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 ...s,\n headers: D(this._input.headers, s.headers),\n hooks: P({\n beforeRequest: [],\n beforeRetry: [],\n beforeError: [],\n afterResponse: []\n }, s.hooks),\n method: G(s.method ?? this._input.method),\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n prefixUrl: String(s.prefixUrl || \"\"),\n retry: $(s.retry),\n throwHttpErrors: s.throwHttpErrors !== !1,\n timeout: s.timeout ?? 1e4,\n fetch: s.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 (L) {\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 (q && (this._options.duplex = \"half\"), this.request = new globalThis.Request(this._input, this._options), this._options.searchParams) {\n const o = \"?\" + (typeof this._options.searchParams == \"string\" ? this._options.searchParams.replace(/^\\?/, \"\") : new URLSearchParams(this._options.searchParams).toString()), n = this.request.url.replace(/(?:\\?.*?)?(?=#|$)/, o);\n (x && 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(n, { ...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(e) {\n if (this._retryCount++, this._retryCount <= this._options.retry.limit && !(e instanceof N)) {\n if (e instanceof g) {\n if (!this._options.retry.statusCodes.includes(e.response.status))\n return 0;\n const r = e.response.headers.get(\"Retry-After\");\n if (r && this._options.retry.afterStatusCodes.includes(e.response.status)) {\n let o = Number(r);\n return Number.isNaN(o) ? o = Date.parse(r) - Date.now() : o *= 1e3, this._options.retry.maxRetryAfter !== void 0 && o > this._options.retry.maxRetryAfter ? 0 : o;\n }\n if (e.response.status === 413)\n return 0;\n }\n const s = this._options.retry.delay(this._retryCount);\n return Math.min(this._options.retry.backoffLimit, s);\n }\n return 0;\n }\n _decorateResponse(e) {\n return this._options.parseJson && (e.json = async () => this._options.parseJson(await e.text())), e;\n }\n async _retry(e) {\n try {\n return await e();\n } catch (s) {\n const r = Math.min(this._calculateRetryDelay(s), S);\n if (r !== 0 && this._retryCount > 0) {\n await J(r, { signal: this._options.signal });\n for (const o of this._options.hooks.beforeRetry)\n if (await o({\n request: this.request,\n options: this._options,\n error: s,\n retryCount: this._retryCount\n }) === H)\n return;\n return this._retry(e);\n }\n throw s;\n }\n }\n async _fetch() {\n for (const s of this._options.hooks.beforeRequest) {\n const r = await s(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 e = z(this.request, this._options);\n return this._options.timeout === !1 ? this._options.fetch(this.request.clone(), e) : K(this.request.clone(), e, this.abortController, this._options);\n }\n /* istanbul ignore next */\n _stream(e, s) {\n const r = Number(e.headers.get(\"content-length\")) || 0;\n let o = 0;\n return e.status === 204 ? (s && s({ percent: 1, totalBytes: r, transferredBytes: o }, new Uint8Array()), new globalThis.Response(null, {\n status: e.status,\n statusText: e.statusText,\n headers: e.headers\n })) : new globalThis.Response(new globalThis.ReadableStream({\n async start(n) {\n const a = e.body.getReader();\n s && s({ percent: 0, transferredBytes: 0, totalBytes: r }, new Uint8Array());\n async function i() {\n const { done: h, value: u } = await a.read();\n if (h) {\n n.close();\n return;\n }\n if (s) {\n o += u.byteLength;\n const p = r === 0 ? 0 : o / r;\n s({ percent: p, transferredBytes: o, totalBytes: r }, u);\n }\n n.enqueue(u), await i();\n }\n await i();\n }\n }), {\n status: e.status,\n statusText: e.statusText,\n headers: e.headers\n });\n }\n}\n/*! MIT License © Sindre Sorhus */\nconst R = (t) => {\n const e = (s, r) => T.create(s, _(t, r));\n for (const s of k)\n e[s] = (r, o) => T.create(r, _(t, o, { method: s }));\n return e.create = (s) => R(_(s)), e.extend = (s) => R(_(t, s)), e.stop = H, e;\n}, I = R();\nlet f;\nconst c = {\n CachedPrices: `${d.ThorswapApi}/tokenlist/cached-price`,\n GasRates: `${d.ThorswapApi}/resource-worker/gasPrice/getAll`,\n Quote: `${d.ThorswapApi}/aggregator/tokens/quote`,\n Txn: `${d.ThorswapApi}/apiusage/v2/txn`,\n TokenlistProviders: `${d.ThorswapApi}/tokenlist/providers`,\n TokenList: `${d.ThorswapStatic}/token-list`,\n Thorname: `${d.ThorswapApi}/thorname`\n}, B = typeof window < \"u\" ? {} : { referrer: \"https://sk.thorswap.net\", referer: \"https://sk.thorswap.net\" }, y = () => f || (f = I.create({ headers: B }), f), st = ({ apiKey: t, ...e }) => {\n f = I.create({\n ...e,\n headers: { ...B, ...e.headers, \"x-api-key\": t }\n });\n}, l = {\n get: (t, e) => y().get(t, e).json(),\n post: (t, e) => y().post(t, e).json()\n}, Q = ({ tokens: t, ...e }) => {\n const s = new URLSearchParams(), r = t.filter(\n (o, n, a) => a.findIndex((i) => i === o) === n\n );\n for (const o of r)\n s.append(\"tokens\", JSON.stringify(o));\n return e.metadata && s.append(\"metadata\", \"true\"), e.lookup && s.append(\"lookup\", \"true\"), e.sparkline && s.append(\"sparkline\", \"true\"), l.post(c.CachedPrices, {\n body: s.toString(),\n headers: { \"Content-Type\": \"application/x-www-form-urlencoded\" }\n });\n}, ot = {\n getCachedPrices: Q,\n getQuote: (t) => l.get(c.Quote, { searchParams: t }),\n getGasRates: () => l.get(c.GasRates),\n getTxnDetails: (t) => l.get(c.Txn, { searchParams: t }),\n getTokenlistProviders: () => l.get(c.TokenlistProviders),\n getTokenList: (t) => l.get(`${c.TokenList}/${t}.json`),\n getThornameAddresses: (t) => l.get(`${c.Thorname}/${t}`),\n getThornameRegisteredChains: (t) => l.get(`${c.Thorname}/chains/${t}`),\n getThornameRlookup: (t, e) => l.get(`${c.Thorname}/rlookup`, { searchParams: { address: t, chain: e } })\n};\nvar Y = /* @__PURE__ */ ((t) => (t.SWAP_TC_TO_TC = \"SWAP:TC-TC\", t.SWAP_ETH_TO_TC = \"SWAP:ERC20-TC\", t.SWAP_TC_TO_ETH = \"SWAP:TC-ERC20\", t.SWAP_ETH_TO_ETH = \"SWAP:ERC20-ERC20\", t.SWAP_AVAX_TO_TC = \"SWAP:AVAX-TC\", t.SWAP_TC_TO_AVAX = \"SWAP:TC-AVAX\", t.SWAP_AVAX_TO_AVAX = \"SWAP:AVAX-AVAX\", t.SWAP_ETH_TO_AVAX = \"SWAP:ETH-AVAX\", t.SWAP_AVAX_TO_ETH = \"SWAP:AVAX-ETH\", t.SWAP_TC_TO_GAIA = \"SWAP:TC-GAIA\", t.SWAP_GAIA_TO_TC = \"SWAP:GAIA-TC\", t.SWAP_TC_TO_BNB = \"SWAP:TC-BNB\", t.SWAP_BNB_TO_TC = \"SWAP:BNB-TC\", t.SWAP_TC_TO_BTC = \"SWAP:TC-BTC\", t.SWAP_BTC_TO_TC = \"SWAP:BTC-TC\", t.SWAP_TC_TO_BCH = \"SWAP:TC-BCH\", t.SWAP_BCH_TO_TC = \"SWAP:BCH-TC\", t.SWAP_TC_TO_LTC = \"SWAP:TC-LTC\", t.SWAP_LTC_TO_TC = \"SWAP:LTC-TC\", t.SWAP_TC_TO_DOGE = \"SWAP:TC-DOGE\", t.SWAP_DOGE_TO_TC = \"SWAP:DOGE-TC\", t.TC_STATUS = \"TC:STATUS\", t.TC_TRANSFER = \"TC:TRANSFER\", t.TC_DEPOSIT = \"TC:DEPOSIT\", t.TC_SEND = \"TC:SEND\", t.TC_SWITCH = \"TC:SWITCH\", t.TC_LP_ADD = \"TC:ADDLIQUIDITY\", t.TC_LP_WITHDRAW = \"TC:WITHDRAW\", t.TC_TNS_CREATE = \"TC:TNS-CREATE\", t.TC_TNS_EXTEND = \"TC:TNS-EXTEND\", t.TC_TNS_UPDATE = \"TC:TNS-UPDATE\", t.TC_SAVINGS_ADD = \"TC:ADDSAVINGS\", t.TC_SAVINGS_WITHDRAW = \"TC:WITHDRAWSAVINGS\", t.TC_LENDING_OPEN = \"TC:LENDINGOPEN\", t.TC_LENDING_CLOSE = \"TC:LENDINGCLOSE\", t.ETH_APPROVAL = \"ETH:APPROVAL\", t.ETH_STATUS = \"ETH:STATUS\", t.ETH_TRANSFER_TO_TC = \"ETH:TRANSFER:IN\", t.ETH_TRANSFER_FROM_TC = \"ETH:TRANSFER:OUT\", t.AVAX_APPROVAL = \"AVAX:APPROVAL\", t.AVAX_STATUS = \"AVAX:STATUS\", t.AVAX_TRANSFER_TO_TC = \"AVAX:TRANSFER:IN\", t.AVAX_TRANSFER_FROM_TC = \"AVAX:TRANSFER:OUT\", t.BSC_APPROVAL = \"BSC:APPROVAL\", t.BSC_STATUS = \"BSC:STATUS\", t.BSC_TRANSFER_TO_TC = \"BSC:TRANSFER:IN\", t.BSC_TRANSFER_FROM_TC = \"BSC:TRANSFER:OUT\", t.APPROVAL = \"APPROVAL\", t.STATUS = \"STATUS\", t.TRANSFER_TO_TC = \"TRANSFER:IN\", t.TRANSFER_FROM_TC = \"TRANSFER:OUT\", t.UNSUPPORTED = \"UNSUPPORTED\", t.TC_LENDING = \"TC:LENDING\", t))(Y || {}), Z = /* @__PURE__ */ ((t) => (t.PENDING = \"pending\", t.SUCCESS = \"success\", t.CANCELLED = \"cancelled\", t.REFUNDED = \"refunded\", t.REPLACED = \"replaced\", t.ERROR = \"error\", t.UNKNOWN = \"unknown\", t.NOT_STARTED = \"not_started\", t.NOT_FOUND = \"not_found\", t.RETRIES_EXCEEDED = \"retries_exceeded\", t.STREAMING = \"streaming\", t))(Z || {}), tt = /* @__PURE__ */ ((t) => (t[t.NOT_STARTED = 0] = \"NOT_STARTED\", t[t.SUCCESS = 1] = \"SUCCESS\", t[t.REFUNDED = 2] = \"REFUNDED\", t))(tt || {});\nexport {\n c as ApiEndpoints,\n l as RequestClient,\n tt as StreamingSwapProgressStatus,\n ot as SwapKitApi,\n Y as TransactionType,\n Z as TxStatus,\n B as defaultRequestHeaders,\n st as setRequestClientConfig\n};\n//# sourceMappingURL=index.es.js.map\n","import { RequestClient } from \"@swapkit/api\";\nimport type { EVMChain } from \"@swapkit/types\";\nimport { BaseDecimal, Chain, ChainToRPC, EVMChains, FeeOption } from \"@swapkit/types\";\n\nconst getDecimalMethodHex = \"0x313ce567\";\n\nexport type CommonAssetString =\n | `${Chain.Maya}.MAYA`\n | `${Chain.Ethereum}.THOR`\n | `${Chain.Ethereum}.vTHOR`\n | `${Chain.Kujira}.USK`\n | Chain;\n\nconst getContractDecimals = async ({ chain, to }: { chain: EVMChain; to: string }) => {\n try {\n const { result } = await RequestClient.post<{ result: string }>(ChainToRPC[chain], {\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: to.toLowerCase(), data: getDecimalMethodHex }, \"latest\"],\n }),\n });\n\n return parseInt(BigInt(result).toString());\n } catch (error) {\n console.error(error);\n return BaseDecimal[chain];\n }\n};\n\nconst getETHAssetDecimal = (symbol: string) => {\n if (symbol === Chain.Ethereum) return BaseDecimal.ETH;\n const [, address] = symbol.split(\"-\");\n\n return address?.startsWith(\"0x\")\n ? getContractDecimals({ chain: Chain.Ethereum, to: address })\n : BaseDecimal.ETH;\n};\n\nconst getAVAXAssetDecimal = (symbol: string) => {\n const [, address] = symbol.split(\"-\");\n\n return address?.startsWith(\"0x\")\n ? getContractDecimals({ chain: Chain.Avalanche, to: address.toLowerCase() })\n : BaseDecimal.AVAX;\n};\n\nconst getBSCAssetDecimal = (symbol: string) => {\n if (symbol === Chain.BinanceSmartChain) return BaseDecimal.BSC;\n\n return BaseDecimal.BSC;\n};\n\nexport const getDecimal = ({ chain, symbol }: { chain: Chain; symbol: string }) => {\n switch (chain) {\n case Chain.Ethereum:\n return getETHAssetDecimal(symbol);\n case Chain.Avalanche:\n return getAVAXAssetDecimal(symbol);\n case Chain.BinanceSmartChain:\n return getBSCAssetDecimal(symbol);\n default:\n return BaseDecimal[chain];\n }\n};\n\nexport const gasFeeMultiplier: Record<FeeOption, number> = {\n [FeeOption.Average]: 1.2,\n [FeeOption.Fast]: 1.5,\n [FeeOption.Fastest]: 2,\n};\n\nexport const isGasAsset = ({ chain, symbol }: { chain: Chain; symbol: string }) => {\n switch (chain) {\n case Chain.Arbitrum:\n case Chain.Optimism:\n return symbol === \"ETH\";\n case Chain.Maya:\n return symbol === \"CACAO\";\n case Chain.Kujira:\n return symbol === \"KUJI\";\n case Chain.Cosmos:\n return symbol === \"ATOM\";\n case Chain.Polygon:\n return symbol === \"MATIC\";\n case Chain.BinanceSmartChain:\n return symbol === \"BNB\";\n case Chain.THORChain:\n return symbol === \"RUNE\";\n\n default:\n return symbol === chain;\n }\n};\n\nexport const getCommonAssetInfo = (\n assetString: CommonAssetString,\n): { identifier: string; decimal: number } => {\n switch (assetString) {\n case `${Chain.Ethereum}.THOR`:\n return { identifier: \"ETH.THOR-0xa5f2211b9b8170f694421f2046281775e8468044\", decimal: 18 };\n case `${Chain.Ethereum}.vTHOR`:\n return { identifier: \"ETH.vTHOR-0x815c23eca83261b6ec689b60cc4a58b54bc24d8d\", decimal: 18 };\n\n case Chain.Cosmos:\n return { identifier: \"GAIA.ATOM\", decimal: BaseDecimal[assetString] };\n case Chain.THORChain:\n return { identifier: \"THOR.RUNE\", decimal: BaseDecimal[assetString] };\n case Chain.BinanceSmartChain:\n return { identifier: \"BSC.BNB\", decimal: BaseDecimal[assetString] };\n case Chain.Maya:\n return { identifier: \"MAYA.CACAO\", decimal: BaseDecimal.MAYA };\n case `${Chain.Maya}.MAYA`:\n return { identifier: \"MAYA.MAYA\", decimal: 4 };\n\n case `${Chain.Kujira}.USK`:\n return { identifier: `${Chain.Kujira}.USK`, decimal: 6 };\n\n default:\n return { identifier: `${assetString}.${assetString}`, decimal: BaseDecimal[assetString] };\n }\n};\n\n// biome-ignore lint/complexity/noExcessiveCognitiveComplexity: TODO: Refactor\nexport const getAssetType = ({ chain, symbol }: { chain: Chain; symbol: string }) => {\n if (symbol.includes(\"/\")) return \"Synth\";\n\n switch (chain) {\n case Chain.Cosmos:\n return symbol === \"ATOM\" ? \"Native\" : Chain.Cosmos;\n case Chain.Kujira:\n return symbol === Chain.Kujira ? \"Native\" : Chain.Kujira;\n case Chain.Binance:\n return symbol === Chain.Binance ? \"Native\" : \"BEP2\";\n case Chain.BinanceSmartChain:\n return symbol === Chain.Binance ? \"Native\" : \"BEP20\";\n case Chain.Ethereum:\n return symbol === Chain.Ethereum ? \"Native\" : \"ERC20\";\n case Chain.Avalanche:\n return symbol === Chain.Avalanche ? \"Native\" : Chain.Avalanche;\n case Chain.Polygon:\n return symbol === Chain.Polygon ? \"Native\" : \"POLYGON\";\n\n case Chain.Arbitrum:\n return [Chain.Ethereum, Chain.Arbitrum].includes(symbol as Chain) ? \"Native\" : \"ARBITRUM\";\n case Chain.Optimism:\n return [Chain.Ethereum, Chain.Optimism].includes(symbol as Chain) ? \"Native\" : \"OPTIMISM\";\n\n default:\n return \"Native\";\n }\n};\n\nexport const assetFromString = (assetString: string) => {\n const [chain, ...symbolArray] = assetString.split(\".\") as [Chain, ...(string | undefined)[]];\n const synth = assetString.includes(\"/\");\n const symbol = symbolArray.join(\".\");\n const ticker = symbol?.split(\"-\")?.[0];\n\n return { chain, symbol, ticker, synth };\n};\n\nconst potentialScamRegex = new RegExp(\n /(.)\\1{6}|\\.ORG|\\.NET|\\.FINANCE|\\.COM|WWW|HTTP|\\\\\\\\|\\/\\/|[\\s$%:[\\]]/,\n \"gmi\",\n);\n\nconst evmAssetHasAddress = (assetString: string) => {\n const [chain, symbol] = assetString.split(\".\") as [EVMChain, string];\n if (!EVMChains.includes(chain as EVMChain)) return true;\n const [, address] = symbol.split(\"-\") as [string, string?];\n\n return isGasAsset({ chain: chain as Chain, symbol }) || !!address;\n};\n\nexport const filterAssets = (\n tokens: {\n value: string;\n decimal: number;\n chain: Chain;\n symbol: string;\n }[],\n) =>\n tokens.filter(({ chain, value, symbol }) => {\n const assetString = `${chain}.${symbol}`;\n\n return (\n !potentialScamRegex.test(assetString) && evmAssetHasAddress(assetString) && value !== \"0\"\n );\n });\n","import { BaseDecimal } from \"@swapkit/types\";\n\nimport { SwapKitNumber } from \"../index.ts\";\n\ntype ShareParams<T extends {}> = T & {\n liquidityUnits: string;\n poolUnits: string;\n};\n\ntype PoolParams = {\n runeAmount: string;\n assetAmount: string;\n runeDepth: string;\n assetDepth: string;\n};\n\n/**\n * Ref: https://gitlab.com/thorchain/thornode/-/issues/657\n * share = (s * A * (2 * T^2 - 2 * T * s + s^2))/T^3\n * s = stakeUnits for member (after factoring in withdrawBasisPoints)\n * T = totalPoolUnits for pool\n * A = assetDepth to be withdrawn\n *\n * Formula:\n * share = (s * A * (2 * T^2 - 2 * T * s + s^2))/T^3\n * (part1 * (part2 - part3 + part4)) / part5\n */\nexport function getAsymmetricRuneShare({\n liquidityUnits,\n poolUnits,\n runeDepth,\n}: ShareParams<{ runeDepth: string }>) {\n const s = toTCSwapKitNumber(liquidityUnits);\n const T = toTCSwapKitNumber(poolUnits);\n const A = toTCSwapKitNumber(runeDepth);\n\n const part1 = s.mul(A);\n const part2 = T.mul(T).mul(2);\n const part3 = T.mul(s).mul(2);\n const part4 = s.mul(s);\n const part5 = T.mul(T).mul(T);\n\n const numerator = part1.mul(part2.sub(part3).add(part4));\n\n return numerator.div(part5);\n}\n\nexport function getAsymmetricAssetShare({\n liquidityUnits,\n poolUnits,\n assetDepth,\n}: ShareParams<{ assetDepth: string }>) {\n const s = toTCSwapKitNumber(liquidityUnits);\n const T = toTCSwapKitNumber(poolUnits);\n const A = toTCSwapKitNumber(assetDepth);\n\n const part1 = s.mul(A);\n const part2 = T.mul(T).mul(2);\n const part3 = T.mul(s).mul(2);\n const part4 = s.mul(s);\n const numerator = part1.mul(part2.sub(part3).add(part4));\n const part5 = T.mul(T).mul(T);\n\n return numerator.div(part5);\n}\n\nexport function getAsymmetricRuneWithdrawAmount({\n percent,\n runeDepth,\n liquidityUnits,\n poolUnits,\n}: ShareParams<{ percent: number; runeDepth: string }>) {\n return getAsymmetricRuneShare({ runeDepth, liquidityUnits, poolUnits }).mul(percent);\n}\n\nexport function getAsymmetricAssetWithdrawAmount({\n percent,\n assetDepth,\n liquidityUnits,\n poolUnits,\n}: ShareParams<{ percent: number; assetDepth: string }>) {\n return getAsymmetricAssetShare({ assetDepth, liquidityUnits, poolUnits }).mul(percent);\n}\n\nfunction toTCSwapKitNumber(value: string) {\n return SwapKitNumber.fromBigInt(BigInt(value), BaseDecimal.THOR);\n}\n\nexport function getSymmetricPoolShare({\n liquidityUnits,\n poolUnits,\n runeDepth,\n assetDepth,\n}: ShareParams<{\n runeDepth: string;\n assetDepth: string;\n}>) {\n return {\n assetAmount: toTCSwapKitNumber(assetDepth).mul(liquidityUnits).div(poolUnits),\n runeAmount: toTCSwapKitNumber(runeDepth).mul(liquidityUnits).div(poolUnits),\n };\n}\n\nexport function getSymmetricWithdraw({\n liquidityUnits,\n poolUnits,\n runeDepth,\n assetDepth,\n percent,\n}: ShareParams<{\n runeDepth: string;\n assetDepth: string;\n percent: number;\n}>) {\n return Object.fromEntries(\n Object.entries(getSymmetricPoolShare({ liquidityUnits, poolUnits, runeDepth, assetDepth })).map(\n ([name, value]) => [name, value.mul(percent)],\n ),\n );\n}\n\nexport function getEstimatedPoolShare({\n runeDepth,\n poolUnits,\n assetDepth,\n liquidityUnits,\n runeAmount,\n assetAmount,\n}: ShareParams<{\n runeAmount: string;\n assetAmount: string;\n runeDepth: string;\n assetDepth: string;\n}>) {\n const R = new SwapKitNumber({ value: runeDepth, decimal: 8 });\n const A = new SwapKitNumber({ value: assetDepth, decimal: 8 });\n const P = new SwapKitNumber({ value: poolUnits, decimal: 8 });\n const runeAddAmount = new SwapKitNumber({ value: runeAmount, decimal: 8 });\n const assetAddAmount = new SwapKitNumber({ value: assetAmount, decimal: 8 });\n\n // liquidityUnits = P * (r*A + a*R + 2*r*a) / (r*A + a*R + 2*R*A)\n const rA = runeAddAmount.mul(A);\n const aR = assetAddAmount.mul(R);\n const ra = runeAddAmount.mul(assetAddAmount);\n const RA = R.mul(A);\n const numerator = P.mul(rA.add(aR.add(ra.mul(2))));\n const denominator = rA.add(aR.add(RA.mul(2)));\n const liquidityUnitsAfterAdd = numerator.div(denominator);\n const estimatedLiquidityUnits = toTCSwapKitNumber(liquidityUnits).add(liquidityUnitsAfterAdd);\n\n if (liquidityUnitsAfterAdd.getBaseValue(\"number\") === 0) {\n return estimatedLiquidityUnits.div(P).getBaseValue(\"number\");\n }\n\n // get pool units after add\n const newPoolUnits = P.add(estimatedLiquidityUnits);\n\n return estimatedLiquidityUnits.div(newPoolUnits).getBaseValue(\"number\");\n}\n\nexport function getLiquiditySlippage({\n runeAmount,\n assetAmount,\n runeDepth,\n assetDepth,\n}: PoolParams) {\n if (runeAmount === \"0\" || assetAmount === \"0\" || runeDepth === \"0\" || assetDepth === \"0\")\n return 0;\n // formula: (t * R - T * r)/ (T*r + R*T)\n const R = toTCSwapKitNumber(runeDepth);\n const T = toTCSwapKitNumber(assetDepth);\n const assetAddAmount = toTCSwapKitNumber(assetAmount);\n const runeAddAmount = toTCSwapKitNumber(runeAmount);\n\n const numerator = assetAddAmount.mul(R).sub(T.mul(runeAddAmount));\n const denominator = T.mul(runeAddAmount).add(R.mul(T));\n\n // set absolute value of percent, no negative allowed\n return Math.abs(numerator.div(denominator).getBaseValue(\"number\"));\n}\n","import { Chain, MemoType } from \"@swapkit/types\";\n\nexport type ThornameRegisterParam = {\n name: string;\n chain: string;\n address: string;\n owner?: string;\n preferredAsset?: string;\n expiryBlock?: string;\n};\n\ntype WithChain<T extends {}> = T & { chain: Chain };\n\nexport type MemoOptions<T extends MemoType> = {\n [MemoType.BOND]: { address: string };\n [MemoType.LEAVE]: { address: string };\n [MemoType.CLOSE_LOAN]: { address: string; asset: string; minAmount?: string };\n [MemoType.OPEN_LOAN]: { address: string; asset: string; minAmount?: string };\n [MemoType.UNBOND]: { address: string; unbondAmount: number };\n [MemoType.DEPOSIT]: WithChain<{ symbol: string; address?: string; singleSide?: boolean }>;\n [MemoType.WITHDRAW]: WithChain<{\n ticker: string;\n symbol: string;\n basisPoints: number;\n targetAssetString?: string;\n singleSide?: boolean;\n }>;\n [MemoType.THORNAME_REGISTER]: Omit<ThornameRegisterParam, \"preferredAsset\" | \"expiryBlock\">;\n}[T];\n\nexport const getMemoFor = <T extends MemoType>(memoType: T, options: MemoOptions<T>) => {\n switch (memoType) {\n case MemoType.LEAVE:\n case MemoType.BOND: {\n const { address } = options as MemoOptions<MemoType.BOND>;\n return `${memoType}:${address}`;\n }\n\n case MemoType.UNBOND: {\n const { address, unbondAmount } = options as MemoOptions<MemoType.UNBOND>;\n return `${memoType}:${address}:${unbondAmount}`;\n }\n\n case MemoType.THORNAME_REGISTER: {\n const { name, chain, address, owner } = options as MemoOptions<MemoType.THORNAME_REGISTER>;\n return `${memoType}:${name}:${chain}:${address}${owner ? `:${owner}` : \"\"}`;\n }\n\n case MemoType.DEPOSIT: {\n const { chain, symbol, address, singleSide } = options as MemoOptions<MemoType.DEPOSIT>;\n\n const getPoolIdentifier = (chain: Chain, symbol: string): string => {\n switch (chain) {\n case Chain.Litecoin:\n return \"l\";\n case Chain.Dogecoin:\n return \"d\";\n case Chain.BitcoinCash:\n return \"c\";\n default:\n return `${chain}.${symbol}`;\n }\n };\n\n return singleSide\n ? `${memoType}:${chain}/${symbol}`\n : `${memoType}:${getPoolIdentifier(chain, symbol)}:${address || \"\"}`;\n }\n\n case MemoType.WITHDRAW: {\n const { chain, ticker, symbol, basisPoints, targetAssetString, singleSide } =\n options as MemoOptions<MemoType.WITHDRAW>;\n\n const shortenedSymbol =\n chain === \"ETH\" && ticker !== \"ETH\" ? `${ticker}-${symbol.slice(-3)}` : symbol;\n const target = !singleSide && targetAssetString ? `:${targetAssetString}` : \"\";\n const assetDivider = singleSide ? \"/\" : \".\";\n\n return `${memoType}:${chain}${assetDivider}${shortenedSymbol}:${basisPoints}${target}`;\n }\n\n case MemoType.OPEN_LOAN:\n case MemoType.CLOSE_LOAN: {\n const { asset, address } = options as MemoOptions<MemoType.OPEN_LOAN>;\n\n return `${memoType}:${asset}:${address}`; //:${minAmount ? `${minAmount}` : ''}:t:0`;\n }\n\n default:\n return \"\";\n }\n};\n","// 10 rune for register, 1 rune per year\n// MINIMUM_REGISTRATION_FEE = 11\nexport function getTHORNameCost(year: number) {\n if (year < 0) throw new Error(\"Invalid number of year\");\n return 10 + year;\n}\n\nexport function validateTHORName(name: string) {\n if (name.length > 30) return false;\n\n const regex = /^[a-zA-Z0-9+_-]+$/g;\n\n return !!name.match(regex);\n}\n\nexport function derivationPathToString([network, chainId, account, change, index]: number[]) {\n const shortPath = typeof index !== \"number\";\n\n return `${network}'/${chainId}'/${account}'/${change}${shortPath ? \"\" : `/${index}`}`;\n}\n","import { Chain } from \"@swapkit/types\";\n\n// Backward compatibility\nconst supportedChains = [...Object.values(Chain), \"TERRA\"];\n\nexport function validateIdentifier(identifier = \"\") {\n const uppercasedIdentifier = identifier.toUpperCase();\n\n const [chain] = uppercasedIdentifier.split(\".\") as [Chain, string];\n if (supportedChains.includes(chain)) return true;\n\n const [synthChain] = uppercasedIdentifier.split(\"/\") as [Chain, string];\n if (supportedChains.includes(synthChain)) return true;\n\n throw new Error(\n `Invalid identifier: ${identifier}. Expected format: <Chain>.<Ticker> or <Chain>.<Ticker>-<ContractAddress>`,\n );\n}\n","import { BaseDecimal } from \"@swapkit/types\";\n\nimport type { SwapKitNumber } from \"./swapKitNumber.ts\";\n\ntype NumberPrimitivesType = {\n bigint: bigint;\n number: number;\n string: string;\n};\nexport type NumberPrimitives = bigint | number | string;\ntype InitialisationValueType = NumberPrimitives | BigIntArithmetics | SwapKitNumber;\n\ntype SKBigIntParams = InitialisationValueType | { decimal?: number; value: number | string };\ntype AllowedNumberTypes = \"bigint\" | \"number\" | \"string\";\n\nconst DEFAULT_DECIMAL = 8;\nconst toMultiplier = (decimal: number) => 10n ** BigInt(decimal);\nconst decimalFromMultiplier = (multiplier: bigint) => Math.log10(parseFloat(multiplier.toString()));\n\nexport function formatBigIntToSafeValue({\n value,\n bigIntDecimal = DEFAULT_DECIMAL,\n decimal = DEFAULT_DECIMAL,\n}: {\n value: bigint;\n bigIntDecimal?: number;\n decimal?: number;\n}) {\n if (decimal === 0) return value.toString();\n const isNegative = value < 0n;\n let valueString = value.toString().substring(isNegative ? 1 : 0);\n\n const padLength = decimal - (valueString.length - 1);\n\n if (padLength > 0) {\n valueString = \"0\".repeat(padLength) + valueString;\n }\n\n const decimalIndex = valueString.length - decimal;\n let decimalString = valueString.slice(-decimal);\n\n // Check if we need to round up\n if (parseInt(decimalString[bigIntDecimal]) >= 5) {\n // Increment the last decimal place and slice off the rest\n decimalString = `${decimalString.substring(0, bigIntDecimal - 1)}${(\n parseInt(decimalString[bigIntDecimal - 1]) + 1\n ).toString()}`;\n } else {\n // Just slice off the extra digits\n decimalString = decimalString.substring(0, bigIntDecimal);\n }\n\n return `${isNegative ? \"-\" : \"\"}${valueString.slice(0, decimalIndex)}.${decimalString}`.replace(\n /\\.?0*$/,\n \"\",\n );\n}\n\nexport class BigIntArithmetics {\n decimalMultiplier: bigint = 10n ** 8n;\n bigIntValue = 0n;\n decimal?: number;\n\n static fromBigInt(value: bigint, decimal?: number) {\n return new BigIntArithmetics({\n decimal,\n value: formatBigIntToSafeValue({ value, bigIntDecimal: decimal, decimal }),\n });\n }\n\n static shiftDecimals({\n value,\n from,\n to,\n }: {\n value: InstanceType<typeof SwapKitNumber>;\n from: number;\n to: number;\n }) {\n return BigIntArithmetics.fromBigInt(\n (value.getBaseValue(\"bigint\") * toMultiplier(to)) / toMultiplier(from),\n to,\n );\n }\n\n constructor(params: SKBigIntParams) {\n const value = getStringValue(params);\n const isComplex = typeof params === \"object\";\n this.decimal = isComplex ? params.decimal : undefined;\n\n // use the multiplier to keep track of decimal point - defaults to 8 if lower than 8\n this.decimalMultiplier =\n isComplex && \"decimalMultiplier\" in params\n ? params.decimalMultiplier\n : toMultiplier(Math.max(getFloatDecimals(toSafeValue(value)), this.decimal || 0));\n this.#setValue(value);\n }\n\n set(value: SKBigIntParams): this {\n // @ts-expect-error False positive\n return new this.constructor({ decimal: this.decimal, value, identifier: this.toString() });\n }\n add(...args: InitialisationValueType[]) {\n return this.#arithmetics(\"add\", ...args);\n }\n sub(...args: InitialisationValueType[]) {\n return this.#arithmetics(\"sub\", ...args);\n }\n mul(...args: InitialisationValueType[]) {\n return this.#arithmetics(\"mul\", ...args);\n }\n div(...args: InitialisationValueType[]) {\n return this.#arithmetics(\"div\", ...args);\n }\n gt(value: InitialisationValueType) {\n return this.#comparison(\"gt\", value);\n }\n gte(value: InitialisationValueType) {\n return this.#comparison(\"gte\", value);\n }\n lt(value: InitialisationValueType) {\n return this.#comparison(\"lt\", value);\n }\n lte(value: InitialisationValueType) {\n return this.#comparison(\"lte\", value);\n }\n eqValue(value: InitialisationValueType) {\n return this.#comparison(\"eqValue\", value);\n }\n\n // @ts-expect-error False positive\n getValue<T extends AllowedNumberTypes>(type: T): NumberPrimitivesType[T] {\n const value = this.formatBigIntToSafeValue(\n this.bigIntValue,\n this.decimal || decimalFromMultiplier(this.decimalMultiplier),\n );\n\n switch (type) {\n case \"number\":\n return Number(value) as NumberPrimitivesType[T];\n case \"string\":\n return value as NumberPrimitivesType[T];\n case \"bigint\":\n return ((this.bigIntValue * 10n ** BigInt(this.decimal || 8n)) /\n this.decimalMultiplier) as NumberPrimitivesType[T];\n }\n }\n\n // @ts-expect-error\n getBaseValue<T extends AllowedNumberTypes>(type: T): NumberPrimitivesType[T] {\n const divisor = this.decimalMultiplier / toMultiplier(this.decimal || BaseDecimal.THOR);\n const baseValue = this.bigIntValue / divisor;\n\n switch (type) {\n case \"number\":\n return Number(baseValue) as NumberPrimitivesType[T];\n case \"string\":\n return baseValue.toString() as NumberPrimitivesType[T];\n case \"bigint\":\n return baseValue as NumberPrimitivesType[T];\n }\n }\n\n getBigIntValue(value: InitialisationValueType, decimal?: number) {\n if (!decimal && typeof value === \"object\") return value.bigIntValue;\n\n const stringValue = getStringValue(value);\n const safeValue = toSafeValue(stringValue);\n\n if (safeValue === \"0\" || safeValue === \"undefined\") return 0n;\n return this.#toBigInt(safeValue, decimal);\n }\n\n toSignificant(significantDigits = 6) {\n const [int, dec] = this.getValue(\"string\").split(\".\");\n const integer = int || \"\";\n const decimal = dec || \"\";\n const valueLength = parseInt(integer) ? integer.length + decimal.length : decimal.length;\n\n if (valueLength <= significantDigits) {\n return this.getValue(\"string\");\n }\n\n if (integer.length >= significantDigits) {\n return integer.slice(0, significantDigits).padEnd(integer.length, \"0\");\n }\n\n if (parseInt(integer)) {\n return `${integer}.${decimal.slice(0, significantDigits - integer.length)}`.padEnd(\n significantDigits - integer.length,\n \"0\",\n );\n }\n\n const trimmedDecimal = parseInt(decimal);\n const slicedDecimal = `${trimmedDecimal}`.slice(0, significantDigits);\n\n return `0.${slicedDecimal.padStart(\n decimal.length - `${trimmedDecimal}`.length + slicedDecimal.length,\n \"0\",\n )}`;\n }\n\n toFixed(fixedDigits = 6) {\n const [int, dec] = this.getValue(\"string\").split(\".\");\n const integer = int || \"\";\n const decimal = dec || \"\";\n\n if (parseInt(integer)) {\n return `${integer}.${decimal.slice(0, fixedDigits)}`.padEnd(fixedDigits, \"0\");\n }\n\n const trimmedDecimal = parseInt(decimal);\n const slicedDecimal = `${trimmedDecimal}`.slice(0, fixedDigits);\n\n return `0.${slicedDecimal.padStart(\n decimal.length - `${trimmedDecimal}`.length + slicedDecimal.length,\n \"0\",\n )}`;\n }\n\n toAbbreviation(digits = 2) {\n const value = this.getValue(\"number\");\n const abbreviations = [\"\", \"K\", \"M\", \"B\", \"T\", \"Q\", \"Qi\", \"S\"];\n const tier = Math.floor(Math.log10(Math.abs(value)) / 3);\n const suffix = abbreviations[tier];\n\n if (!suffix) return this.getValue(\"string\");\n\n const scale = 10 ** (tier * 3);\n const scaled = value / scale;\n\n return `${scaled.toFixed(digits)}${suffix}`;\n }\n\n toCurrency(\n currency = \"$\",\n {\n currencyPosition = \"start\",\n decimal = 2,\n decimalSeparator = \".\",\n thousandSeparator = \",\",\n } = {},\n ) {\n const value = this.getValue(\"number\");\n const [int, dec = \"\"] = value.toFixed(6).split(\".\");\n const integer = int.replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandSeparator);\n\n const parsedValue =\n int || dec\n ? int === \"0\"\n ? `${parseFloat(`0.${dec}`)}`.replace(\".\", decimalSeparator)\n : `${integer}${parseInt(dec) ? `${decimalSeparator}${dec.slice(0, decimal)}` : \"\"}`\n : \"0.00\";\n\n return `${currencyPosition === \"start\" ? currency : \"\"}${parsedValue}${\n currencyPosition === \"end\" ? currency : \"\"\n }`;\n }\n\n formatBigIntToSafeValue(value: bigint, decimal?: number) {\n const bigIntDecimal = decimal || this.decimal || DEFAULT_DECIMAL;\n const decimalToUseForConversion = Math.max(\n bigIntDecimal,\n decimalFromMultiplier(this.decimalMultiplier),\n );\n const isNegative = value < 0n;\n\n const valueString = value.toString().substring(isNegative ? 1 : 0);\n const padLength = decimalToUseForConversion - (valueString.length - 1);\n\n const parsedValueString = padLength > 0 ? \"0\".repeat(padLength) + valueString : valueString;\n\n const decimalIndex = parsedValueString.length - decimalToUseForConversion;\n let decimalString = parsedValueString.slice(-decimalToUseForConversion);\n\n // Check if we need to round up\n if (parseInt(decimalString[bigIntDecimal]) >= 5) {\n // Increment the last decimal place and slice off the rest\n decimalString = `${decimalString.substring(0, bigIntDecimal - 1)}${(\n parseInt(decimalString[bigIntDecimal - 1]) + 1\n ).toString()}`;\n } else {\n // Just slice off the extra digits\n decimalString = decimalString.substring(0, bigIntDecimal);\n }\n\n return `${isNegative ? \"-\" : \"\"}${parsedValueString.slice(\n 0,\n decimalIndex,\n )}.${decimalString}`.replace(/\\.?0*$/, \"\");\n }\n\n #arithmetics(method: \"add\" | \"sub\" | \"mul\" | \"div\", ...args: InitialisationValueType[]): this {\n const precisionDecimal = this.#retrievePrecisionDecimal(this, ...args);\n const decimal = Math.max(precisionDecimal, decimalFromMultiplier(this.decimalMultiplier));\n const precisionDecimalMultiplier = toMultiplier(decimal);\n\n const result = args.reduce(\n (acc: bigint, arg) => {\n const value = this.getBigIntValue(arg, decimal);\n\n switch (method) {\n case \"add\":\n return acc + value;\n case \"sub\":\n return acc - value;\n /**\n * Multiplication & division would end up with wrong result if we don't adjust the value\n * 200000000n * 200000000n => 40000000000000000n\n * 200000000n / 200000000n => 1n\n * So we do the following:\n * 200000000n * 200000000n = 40000000000000000n / 100000000n (decimals) => 400000000n\n * (200000000n * 100000000n (decimals)) / 200000000n => 100000000n\n */\n case \"mul\":\n return (acc * value) / precisionDecimalMultiplier;\n case \"div\": {\n if (value === 0n) throw new RangeError(\"Division by zero\");\n return (acc * precisionDecimalMultiplier) / value;\n }\n default:\n return acc;\n }\n },\n //normalize is to precision multiplier base\n (this.bigIntValue * precisionDecimalMultiplier) / this.decimalMultiplier,\n );\n\n const value = formatBigIntToSafeValue({\n bigIntDecimal: decimal,\n decimal,\n value: result,\n });\n\n // @ts-expect-error False positive\n return new this.constructor({\n decimalMultiplier: toMultiplier(decimal),\n decimal: this.decimal,\n value,\n identifier: this.toString(),\n });\n }\n\n #comparison(method: \"gt\" | \"gte\" | \"lt\" | \"lte\" | \"eqValue\", ...args: InitialisationValueType[]) {\n const decimal = this.#retrievePrecisionDecimal(this, ...args);\n const value = this.getBigIntValue(args[0], decimal);\n const compareToValue = this.getBigIntValue(this, decimal);\n\n switch (method) {\n case \"gt\":\n return compareToValue > value;\n case \"gte\":\n return compareToValue >= value;\n case \"lt\":\n return compareToValue < value;\n case \"lte\":\n return compareToValue <= value;\n case \"eqValue\":\n return compareToValue === value;\n }\n }\n\n #setValue(value: InitialisationValueType) {\n const safeValue = toSafeValue(value) || \"0\";\n this.bigIntValue = this.#toBigInt(safeValue);\n }\n\n #retrievePrecisionDecimal(...args: InitialisationValueType[]) {\n const decimals = args\n .map((arg) => {\n const isObject = typeof arg === \"object\";\n const value = isObject\n ? arg.decimal || decimalFromMultiplier(arg.decimalMultiplier)\n : getFloatDecimals(toSafeValue(arg));\n\n return value;\n })\n .filter(Boolean) as number[];\n\n return Math.max(...decimals, DEFAULT_DECIMAL);\n }\n\n #toBigInt(value: string, decimal?: number) {\n const multiplier = decimal ? toMultiplier(decimal) : this.decimalMultiplier;\n const padDecimal = decimalFromMultiplier(multiplier);\n const [integerPart = \"\", decimalPart = \"\"] = value.split(\".\");\n\n return BigInt(`${integerPart}${decimalPart.padEnd(padDecimal, \"0\")}`);\n }\n}\n\nconst numberFormatter = Intl.NumberFormat(\"fullwide\", {\n useGrouping: false,\n maximumFractionDigits: 20,\n});\n\nfunction toSafeValue(value: InitialisationValueType) {\n const parsedValue =\n typeof value === \"number\" ? numberFormatter.format(value) : getStringValue(value);\n const splitValue = `${parsedValue}`.replaceAll(\",\", \".\").split(\".\");\n\n return splitValue.length > 1\n ? `${splitValue.slice(0, -1).join(\"\")}.${splitValue.at(-1)}`\n : splitValue[0];\n}\n\nfunction getFloatDecimals(value: string) {\n const decimals = value.split(\".\")[1]?.length || 0;\n return Math.max(decimals, DEFAULT_DECIMAL);\n}\n\nfunction getStringValue(param: SKBigIntParams) {\n return typeof param === \"object\"\n ? \"getValue\" in param\n ? param.getValue(\"string\")\n : param.value\n : param;\n}\n","import { BigIntArithmetics, formatBigIntToSafeValue } from \"./bigIntArithmetics.ts\";\n\nexport type SwapKitValueType = BigIntArithmetics | string | number;\n\nexport class SwapKitNumber extends BigIntArithmetics {\n eq(value: SwapKitValueType) {\n return this.eqValue(value);\n }\n\n static fromBigInt(value: bigint, decimal?: number) {\n return new SwapKitNumber({\n decimal,\n value: formatBigIntToSafeValue({ value, bigIntDecimal: decimal, decimal }),\n });\n }\n}\n","import { BaseDecimal, Chain, ChainToChainId } from \"@swapkit/types\";\n\nimport type { CommonAssetString } from \"../helpers/asset.ts\";\nimport { getAssetType, getCommonAssetInfo, getDecimal, isGasAsset } from \"../helpers/asset.ts\";\nimport { validateIdentifier } from \"../helpers/validators.ts\";\nimport type { TokenNames, TokenTax } from \"../types.ts\";\n\nimport type { NumberPrimitives } from \"./bigIntArithmetics.ts\";\nimport { BigIntArithmetics, formatBigIntToSafeValue } from \"./bigIntArithmetics.ts\";\nimport { SwapKitNumber, type SwapKitValueType } from \"./swapKitNumber.ts\";\n\nconst staticTokensMap = new Map<\n TokenNames,\n { tax?: TokenTax; decimal: number; identifier: string }\n>();\n\nexport class AssetValue extends BigIntArithmetics {\n address?: string;\n chain: Chain;\n isGasAsset = false;\n isSynthetic = false;\n symbol: string;\n tax?: TokenTax;\n ticker: string;\n type: ReturnType<typeof getAssetType>;\n\n constructor({\n value,\n decimal,\n tax,\n chain,\n symbol,\n identifier,\n }: { decimal: number; value: SwapKitValueType; tax?: TokenTax } & (\n | { chain: Chain; symbol: string; identifier?: never }\n | { identifier: string; chain?: never; symbol?: never }\n )) {\n super(typeof value === \"object\" ? value : { decimal, value });\n\n const assetInfo = getAssetInfo(identifier || `${chain}.${symbol}`);\n\n this.type = getAssetType(assetInfo);\n this.tax = tax;\n this.chain = assetInfo.chain;\n this.ticker = assetInfo.ticker;\n this.symbol = assetInfo.symbol;\n this.address = assetInfo.address;\n this.isSynthetic = assetInfo.isSynthetic;\n this.isGasAsset = assetInfo.isGasAsset;\n }\n\n toString() {\n return this.isSynthetic ? this.symbol : `${this.chain}.${this.symbol}`;\n }\n\n toUrl() {\n return this.isSynthetic ? `${this.chain}.${this.symbol.replace(\"/\", \".\")}` : this.toString();\n }\n\n eq({ chain, symbol }: { chain: Chain; symbol: string }) {\n return this.chain === chain && this.symbol === symbol;\n }\n\n chainId() {\n return ChainToChainId[this.chain];\n }\n\n // THOR.RUNE\n // THOR.ETH.ETH\n // ETH.THOR-0x1234567890\n static fromUrl(urlAsset: string, value: NumberPrimitives = 0) {\n const [chain, ticker, symbol] = urlAsset.split(\".\");\n if (!(chain && ticker)) throw new Error(\"Invalid asset url\");\n\n const assetString =\n chain === Chain.THORChain && symbol ? `${chain}.${ticker}/${symbol}` : urlAsset;\n\n return createAssetValue(assetString, value);\n }\n\n static fromString(assetString: string, value: NumberPrimitives = 0) {\n return createAssetValue(assetString, value);\n }\n static fromIdentifier(\n assetString:\n | `${Chain}.${string}`\n | `${Chain}/${string}`\n | `${Chain}.${string}-${string}`\n | TokenNames,\n value: NumberPrimitives = 0,\n ) {\n return createAssetValue(assetString, value);\n }\n\n static fromStringSync(assetString: string, value: NumberPrimitives = 0) {\n const { chain, isSynthetic } = getAssetInfo(assetString);\n const tokenInfo = staticTokensMap.get(assetString.toUpperCase() as TokenNames);\n\n if (isSynthetic) return createSyntheticAssetValue(assetString, value);\n // TODO: write logger that will only run in dev mode with some flag\n // if (!tokenInfo) {\n // console.error(\n // `Asset ${assetString} is not loaded. Use AssetValue.loadStaticAssets() to load it`,\n // );\n // }\n\n const { tax, decimal, identifier } = tokenInfo || {\n decimal: BaseDecimal[chain],\n identifier: assetString,\n };\n\n return new AssetValue({\n tax,\n value: safeValue(value, decimal),\n identifier: isSynthetic ? assetString : identifier,\n decimal: isSynthetic ? 8 : decimal,\n });\n }\n\n static async fromStringWithBase(\n assetString: string,\n value: NumberPrimitives = 0,\n baseDecimal: number = BaseDecimal.THOR,\n ) {\n const shiftedAmount = BigIntArithmetics.shiftDecimals({\n value: SwapKitNumber.fromBigInt(BigInt(value)),\n from: 0,\n to: baseDecimal,\n }).getBaseValue(\"string\");\n const assetValue = await AssetValue.fromString(assetString, value);\n\n return assetValue.set(shiftedAmount);\n }\n\n static fromStringWithBaseSync(\n assetString: string,\n value: NumberPrimitives = 0,\n baseDecimal: number = BaseDecimal.THOR,\n ) {\n const { chain, isSynthetic } = getAssetInfo(assetString);\n const tokenInfo = staticTokensMap.get(assetString.toUpperCase() as TokenNames);\n\n if (isSynthetic) return createSyntheticAssetValue(assetString, value);\n\n const { tax, decimal, identifier } = tokenInfo || {\n decimal: BaseDecimal[chain],\n identifier: assetString,\n };\n\n return new AssetValue({\n tax,\n value: safeValue(BigInt(value), baseDecimal),\n identifier,\n decimal,\n });\n }\n\n static fromIdentifierSync(assetString: TokenNames, value: NumberPrimitives = 0) {\n const { chain, isSynthetic } = getAssetInfo(assetString);\n const tokenInfo = staticTokensMap.get(assetString);\n\n if (isSynthetic) return createSyntheticAssetValue(assetString, value);\n // TODO: write logger that will only run in dev mode with some flag\n // if (!tokenInfo) {\n // console.error(\n // `Asset ${assetString} is not loaded. - Loading with base Chain. Use AssetValue.loadStaticAssets() to load it`,\n // );\n // }\n\n const { tax, decimal, identifier } = tokenInfo || {\n decimal: BaseDecimal[chain],\n identifier: assetString,\n };\n return new AssetValue({ tax, decimal, identifier, value: safeValue(value, decimal) });\n }\n\n static fromChainOrSignature(assetString: CommonAssetString, value: NumberPrimitives = 0) {\n const { decimal, identifier } = getCommonAssetInfo(assetString);\n return new AssetValue({ value: safeValue(value, decimal), decimal, identifier });\n }\n\n static loadStaticAssets() {\n return new Promise<{ ok: true } | { ok: false; message: string; error: any }>(\n (resolve, reject) => {\n try {\n import(\"@swapkit/tokens\").then((tokenPackages) => {\n for (const tokenList of Object.values(tokenPackages)) {\n for (const { identifier, chain, ...rest } of tokenList.tokens) {\n staticTokensMap.set(identifier.toUpperCase() as TokenNames, {\n identifier,\n decimal: \"decimals\" in rest ? rest.decimals : BaseDecimal[chain as Chain],\n });\n }\n }\n\n resolve({ ok: true });\n });\n } catch (error) {\n console.error(error);\n reject({\n ok: false,\n error,\n message:\n \"Couldn't load static assets. Ensure you have installed @swapkit/tokens package\",\n });\n }\n },\n );\n }\n}\n\nexport function getMinAmountByChain(chain: Chain) {\n const asset = AssetValue.fromChainOrSignature(chain);\n\n switch (chain) {\n case Chain.Bitcoin:\n case Chain.Litecoin:\n case Chain.BitcoinCash:\n return asset.set(0.00010001);\n\n case Chain.Dogecoin:\n return asset.set(1.00000001);\n\n case Chain.Avalanche:\n case Chain.Ethereum:\n return asset.set(0.00000001);\n\n case Chain.THORChain:\n case Chain.Maya:\n return asset.set(0);\n\n case Chain.Cosmos:\n return asset.set(0.000001);\n\n default:\n return asset.set(0.00000001);\n }\n}\n\nasync function createAssetValue(identifier: string, value: NumberPrimitives = 0) {\n validateIdentifier(identifier);\n\n const staticToken = staticTokensMap.get(identifier.toUpperCase() as TokenNames);\n const decimal = staticToken?.decimal || (await getDecimal(getAssetInfo(identifier)));\n if (!staticToken) {\n staticTokensMap.set(identifier.toUpperCase() as TokenNames, { identifier, decimal });\n }\n\n return new AssetValue({ decimal, value: safeValue(value, decimal), identifier });\n}\n\nfunction createSyntheticAssetValue(identifier: string, value: NumberPrimitives = 0) {\n const [synthChain, symbol] =\n identifier.split(\".\")[0].toUpperCase() === Chain.THORChain\n ? identifier.split(\".\").slice(1).join().split(\"/\")\n : identifier.split(\"/\");\n\n if (!(synthChain && symbol)) throw new Error(\"Invalid asset identifier\");\n\n return new AssetValue({\n decimal: 8,\n value: safeValue(value, 8),\n identifier: `${Chain.THORChain}.${synthChain}/${symbol}`,\n });\n}\n\nfunction safeValue(value: NumberPrimitives, decimal: number) {\n return typeof value === \"bigint\"\n ? formatBigIntToSafeValue({ value, bigIntDecimal: decimal, decimal })\n : value;\n}\n\n// TODO refactor & split into smaller functions\nfunction getAssetInfo(identifier: string) {\n const isSynthetic = identifier.slice(0, 14).includes(\"/\");\n\n const [synthChain, synthSymbol] =\n identifier.split(\".\")[0].toUpperCase() === Chain.THORChain\n ? identifier.split(\".\").slice(1).join().split(\"/\")\n : identifier.split(\"/\");\n\n if (isSynthetic && !(synthChain && synthSymbol)) throw new Error(\"Invalid asset identifier\");\n\n const adjustedIdentifier =\n identifier.includes(\".\") && !isSynthetic ? identifier : `${Chain.THORChain}.${synthSymbol}`;\n\n const [chain, ...rest] = adjustedIdentifier.split(\".\") as [Chain, string];\n const [ticker, address] = (isSynthetic ? synthSymbol : rest.join(\".\")).split(\"-\") as [\n string,\n string?,\n ];\n const symbol = isSynthetic ? synthSymbol : rest.join(\".\");\n\n return {\n address: address?.toLowerCase(),\n chain,\n isGasAsset: isGasAsset({ chain, symbol }),\n isSynthetic,\n symbol:\n (isSynthetic ? `${synthChain}/` : \"\") +\n (address ? `${ticker}-${address?.toLowerCase() ?? \"\"}` : symbol),\n ticker,\n };\n}\n","const errorMessages = {\n /**\n * Core\n */\n core_wallet_connection_not_found: 10001,\n core_estimated_max_spendable_chain_not_supported: 10002,\n core_extend_error: 10003,\n core_inbound_data_not_found: 10004,\n core_approve_asset_address_or_from_not_found: 10005,\n core_chain_halted: 10099,\n /**\n * Core - Wallet Connection\n */\n core_wallet_xdefi_not_installed: 10101,\n core_wallet_evmwallet_not_installed: 10102,\n core_wallet_walletconnect_not_installed: 10103,\n core_wallet_keystore_not_installed: 10104,\n core_wallet_ledger_not_installed: 10105,\n core_wallet_trezor_not_installed: 10106,\n core_wallet_keplr_not_installed: 10107,\n core_wallet_okx_not_installed: 10108,\n core_wallet_keepkey_not_installed: 10109,\n /**\n * Core - Swap\n */\n core_swap_invalid_params: 10200,\n core_swap_route_not_complete: 10201,\n core_swap_asset_not_recognized: 10202,\n core_swap_contract_not_found: 10203,\n core_swap_route_transaction_not_found: 10204,\n core_swap_contract_not_supported: 10205,\n core_swap_transaction_error: 10206,\n core_swap_quote_mode_not_supported: 10207,\n core_swap_provider_not_found: 10208,\n /**\n * Core - Transaction\n */\n core_transaction_deposit_error: 10301,\n core_transaction_create_liquidity_rune_error: 10302,\n core_transaction_create_liquidity_asset_error: 10303,\n core_transaction_create_liquidity_invalid_params: 10304,\n core_transaction_add_liquidity_invalid_params: 10305,\n core_transaction_add_liquidity_no_rune_address: 10306,\n core_transaction_add_liquidity_rune_error: 10307,\n core_transaction_add_liquidity_asset_error: 10308,\n core_transaction_withdraw_error: 10309,\n core_transaction_deposit_to_pool_error: 10310,\n core_transaction_deposit_insufficient_funds_error: 10311,\n core_transaction_deposit_gas_error: 10312,\n core_transaction_invalid_sender_address: 10313,\n core_transaction_deposit_server_error: 10314,\n core_transaction_user_rejected: 10315,\n\n /**\n * Wallets\n */\n wallet_ledger_connection_error: 20001,\n wallet_ledger_connection_claimed: 20002,\n wallet_ledger_get_address_error: 20003,\n wallet_ledger_device_not_found: 20004,\n wallet_ledger_device_locked: 20005,\n\n /**\n * Chainflip\n */\n chainflip_channel_error: 30001,\n\n /**\n * THORChain\n */\n\n /**\n * Helpers\n */\n helpers_number_different_decimals: 99101,\n} as const;\n\nexport type ErrorKeys = keyof typeof errorMessages;\n\nexport class SwapKitError extends Error {\n constructor(errorKey: ErrorKeys, sourceError?: any) {\n if (sourceError) {\n console.error(sourceError, {\n stack: sourceError?.stack,\n message: sourceError?.message,\n });\n }\n\n super(errorKey, {\n cause: { code: errorMessages[errorKey], message: errorKey },\n });\n Object.setPrototypeOf(this, SwapKitError.prototype);\n }\n}\n"],"names":["C","t","b","O","d","m","v","E","e","s","g","o","n","a","i","N","A","_","P","D","q","L","U","x","k","V","S","H","j","F","G","M","X","W","w","$","K","J","z","T","h","u","p","R","I","f","c","B","y","st","l","Q","ot","Y","Z","tt","getDecimalMethodHex","getContractDecimals","chain","to","result","RequestClient","ChainToRPC","error","BaseDecimal","getETHAssetDecimal","symbol","Chain","address","getAVAXAssetDecimal","getBSCAssetDecimal","getDecimal","gasFeeMultiplier","FeeOption","isGasAsset","getCommonAssetInfo","assetString","getAssetType","assetFromString","symbolArray","synth","ticker","_a","potentialScamRegex","evmAssetHasAddress","EVMChains","filterAssets","tokens","value","getAsymmetricRuneShare","liquidityUnits","poolUnits","runeDepth","toTCSwapKitNumber","part1","part2","part3","part4","part5","getAsymmetricAssetShare","assetDepth","numerator","getAsymmetricRuneWithdrawAmount","percent","getAsymmetricAssetWithdrawAmount","SwapKitNumber","getSymmetricPoolShare","getSymmetricWithdraw","name","getEstimatedPoolShare","runeAmount","assetAmount","runeAddAmount","assetAddAmount","rA","aR","ra","RA","denominator","liquidityUnitsAfterAdd","estimatedLiquidityUnits","newPoolUnits","getLiquiditySlippage","getMemoFor","memoType","options","MemoType","unbondAmount","owner","singleSide","basisPoints","targetAssetString","shortenedSymbol","target","asset","getTHORNameCost","year","validateTHORName","regex","derivationPathToString","network","chainId","account","change","index","supportedChains","validateIdentifier","identifier","uppercasedIdentifier","synthChain","DEFAULT_DECIMAL","toMultiplier","decimal","decimalFromMultiplier","multiplier","formatBigIntToSafeValue","bigIntDecimal","isNegative","valueString","padLength","decimalIndex","decimalString","_BigIntArithmetics","params","__privateAdd","_arithmetics","_comparison","_setValue","_retrievePrecisionDecimal","_toBigInt","__publicField","getStringValue","isComplex","getFloatDecimals","toSafeValue","__privateMethod","setValue_fn","from","args","arithmetics_fn","comparison_fn","type","divisor","baseValue","stringValue","safeValue","toBigInt_fn","significantDigits","int","dec","integer","trimmedDecimal","slicedDecimal","fixedDigits","digits","abbreviations","tier","suffix","scale","currency","currencyPosition","decimalSeparator","thousandSeparator","parsedValue","decimalToUseForConversion","parsedValueString","method","precisionDecimal","retrievePrecisionDecimal_fn","precisionDecimalMultiplier","acc","arg","compareToValue","decimals","padDecimal","integerPart","decimalPart","BigIntArithmetics","numberFormatter","splitValue","param","staticTokensMap","AssetValue","tax","assetInfo","getAssetInfo","ChainToChainId","urlAsset","createAssetValue","isSynthetic","tokenInfo","createSyntheticAssetValue","baseDecimal","shiftedAmount","resolve","reject","tokenPackages","tokenList","rest","getMinAmountByChain","staticToken","synthSymbol","adjustedIdentifier","errorMessages","SwapKitError","errorKey","sourceError"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../../api/dist/index.es.js","../src/helpers/asset.ts","../src/helpers/liquidity.ts","../src/helpers/memo.ts","../src/helpers/others.ts","../src/helpers/validators.ts","../src/modules/bigIntArithmetics.ts","../src/modules/swapKitNumber.ts","../src/modules/assetValue.ts","../src/modules/swapKitError.ts"],"sourcesContent":["var C = /* @__PURE__ */ ((t) => (t.Arbitrum = \"ARB\", t.Avalanche = \"AVAX\", t.Binance = \"BNB\", t.BinanceSmartChain = \"BSC\", t.Bitcoin = \"BTC\", t.BitcoinCash = \"BCH\", t.Cosmos = \"GAIA\", t.Dash = \"DASH\", t.Dogecoin = \"DOGE\", t.Ethereum = \"ETH\", t.Kujira = \"KUJI\", t.Litecoin = \"LTC\", t.Maya = \"MAYA\", t.Optimism = \"OP\", t.Polkadot = \"DOT\", t.Chainflip = \"FLIP\", t.Polygon = \"MATIC\", t.THORChain = \"THOR\", t))(C || {}), b = /* @__PURE__ */ ((t) => (t.Arbitrum = \"42161\", t.ArbitrumHex = \"0xa4b1\", t.Avalanche = \"43114\", t.AvalancheHex = \"0xa86a\", t.Binance = \"Binance-Chain-Tigris\", t.BinanceSmartChain = \"56\", t.BinanceSmartChainHex = \"0x38\", t.Bitcoin = \"bitcoin\", t.BitcoinCash = \"bitcoincash\", t.Chainflip = \"chainflip\", t.Cosmos = \"cosmoshub-4\", t.Dash = \"dash\", t.Dogecoin = \"dogecoin\", t.Kujira = \"kaiyo-1\", t.Ethereum = \"1\", t.EthereumHex = \"0x1\", t.Litecoin = \"litecoin\", t.Maya = \"mayachain-mainnet-v1\", t.MayaStagenet = \"mayachain-stagenet-v1\", t.Optimism = \"10\", t.OptimismHex = \"0xa\", t.Polkadot = \"polkadot\", t.Polygon = \"137\", t.PolygonHex = \"0x89\", t.THORChain = \"thorchain-mainnet-v1\", t.THORChainStagenet = \"thorchain-stagenet-v2\", t))(b || {}), O = /* @__PURE__ */ ((t) => (t.Arbitrum = \"https://arb1.arbitrum.io/rpc\", t.Avalanche = \"https://node-router.thorswap.net/avalanche-c\", t.Binance = \"\", t.BinanceSmartChain = \"https://bsc-dataseed.binance.org\", t.Bitcoin = \"https://node-router.thorswap.net/bitcoin\", t.BitcoinCash = \"https://node-router.thorswap.net/bitcoin-cash\", t.Chainflip = \"wss://mainnet-archive.chainflip.io\", t.Cosmos = \"https://node-router.thorswap.net/cosmos/rpc\", t.Dash = \"https://node-router.thorswap.net/dash\", t.Dogecoin = \"https://node-router.thorswap.net/dogecoin\", t.Ethereum = \"https://node-router.thorswap.net/ethereum\", t.Kujira = \"https://rpc-kujira.synergynodes.com/\", t.Litecoin = \"https://node-router.thorswap.net/litecoin\", t.Maya = \"https://tendermint.mayachain.info\", t.MayaStagenet = \"https://stagenet.tendermint.mayachain.info\", t.Optimism = \"https://mainnet.optimism.io\", t.Polkadot = \"wss://rpc.polkadot.io\", t.Polygon = \"https://polygon-rpc.com\", t.THORChain = \"https://rpc.thorswap.net\", t.THORChainStagenet = \"https://stagenet-rpc.ninerealms.com\", t))(O || {}), d = /* @__PURE__ */ ((t) => (t.Cosmos = \"https://node-router.thorswap.net/cosmos/rest\", t.Kujira = \"https://lcd-kujira.synergynodes.com/\", t.MayanodeMainnet = \"https://mayanode.mayachain.info\", t.MayanodeStagenet = \"https://stagenet.mayanode.mayachain.info\", t.ThornodeMainnet = \"https://thornode.thorswap.net\", t.ThornodeStagenet = \"https://stagenet-thornode.ninerealms.com\", t.ThorswapApi = \"https://api.thorswap.net\", t.ThorswapStatic = \"https://static.thorswap.net\", t))(d || {});\nconst m = Object.values(C), v = Object.keys(C), E = m.reduce(\n (t, e) => {\n const s = v.find((r) => C[r] === e);\n return s && (t[e] = s), t;\n },\n {}\n);\nm.reduce(\n (t, e) => (t[e] = b[E[e]], t),\n {}\n);\nm.reduce(\n (t, e) => (t[e] = O[E[e]], t),\n {}\n);\nm.reduce(\n (t, e) => {\n const s = `${E[e]}Hex`;\n return t[e] = b[s], t;\n },\n {}\n);\nclass g extends Error {\n constructor(e, s, r) {\n const o = e.status || e.status === 0 ? e.status : \"\", n = e.statusText || \"\", a = `${o} ${n}`.trim(), i = a ? `status code ${a}` : \"an unknown error\";\n super(`Request failed with ${i}`), 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 = e, this.request = s, this.options = r;\n }\n}\nclass N extends Error {\n constructor(e) {\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 = e;\n }\n}\nconst A = (t) => t !== null && typeof t == \"object\", _ = (...t) => {\n for (const e of t)\n if ((!A(e) || Array.isArray(e)) && e !== void 0)\n throw new TypeError(\"The `options` argument must be an object\");\n return P({}, ...t);\n}, D = (t = {}, e = {}) => {\n const s = new globalThis.Headers(t), r = e instanceof globalThis.Headers, o = new globalThis.Headers(e);\n for (const [n, a] of o.entries())\n r && a === \"undefined\" || a === void 0 ? s.delete(n) : s.set(n, a);\n return s;\n}, P = (...t) => {\n let e = {}, s = {};\n for (const r of t)\n if (Array.isArray(r))\n Array.isArray(e) || (e = []), e = [...e, ...r];\n else if (A(r)) {\n for (let [o, n] of Object.entries(r))\n A(n) && o in e && (n = P(e[o], n)), e = { ...e, [o]: n };\n A(r.headers) && (s = D(s, r.headers), e.headers = s);\n }\n return e;\n}, q = (() => {\n let t = !1, e = !1;\n const s = typeof globalThis.ReadableStream == \"function\", r = typeof globalThis.Request == \"function\";\n return s && r && (e = 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 t = !0, \"half\";\n }\n }).headers.has(\"Content-Type\")), t && !e;\n})(), L = typeof globalThis.AbortController == \"function\", U = typeof globalThis.ReadableStream == \"function\", x = typeof globalThis.FormData == \"function\", k = [\"get\", \"post\", \"put\", \"patch\", \"head\", \"delete\"], V = {\n json: \"application/json\",\n text: \"text/*\",\n formData: \"multipart/form-data\",\n arrayBuffer: \"*/*\",\n blob: \"*/*\"\n}, S = 2147483647, H = Symbol(\"stop\"), j = {\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}, F = {\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}, G = (t) => k.includes(t) ? t.toUpperCase() : t, M = [\"get\", \"put\", \"head\", \"delete\", \"options\", \"trace\"], X = [408, 413, 429, 500, 502, 503, 504], W = [413, 429, 503], w = {\n limit: 2,\n methods: M,\n statusCodes: X,\n afterStatusCodes: W,\n maxRetryAfter: Number.POSITIVE_INFINITY,\n backoffLimit: Number.POSITIVE_INFINITY,\n delay: (t) => 0.3 * 2 ** (t - 1) * 1e3\n}, $ = (t = {}) => {\n if (typeof t == \"number\")\n return {\n ...w,\n limit: t\n };\n if (t.methods && !Array.isArray(t.methods))\n throw new Error(\"retry.methods must be an array\");\n if (t.statusCodes && !Array.isArray(t.statusCodes))\n throw new Error(\"retry.statusCodes must be an array\");\n return {\n ...w,\n ...t,\n afterStatusCodes: W\n };\n};\nasync function K(t, e, s, r) {\n return new Promise((o, n) => {\n const a = setTimeout(() => {\n s && s.abort(), n(new N(t));\n }, r.timeout);\n r.fetch(t, e).then(o).catch(n).then(() => {\n clearTimeout(a);\n });\n });\n}\nasync function J(t, { signal: e }) {\n return new Promise((s, r) => {\n e && (e.throwIfAborted(), e.addEventListener(\"abort\", o, { once: !0 }));\n function o() {\n clearTimeout(n), r(e.reason);\n }\n const n = setTimeout(() => {\n e == null || e.removeEventListener(\"abort\", o), s();\n }, t);\n });\n}\nconst z = (t, e) => {\n const s = {};\n for (const r in e)\n !(r in F) && !(r in j) && !(r in t) && (s[r] = e[r]);\n return s;\n};\nclass T {\n static create(e, s) {\n const r = new T(e, s), o = async () => {\n if (typeof r._options.timeout == \"number\" && r._options.timeout > S)\n throw new RangeError(`The \\`timeout\\` option cannot be greater than ${S}`);\n await Promise.resolve();\n let i = await r._fetch();\n for (const h of r._options.hooks.afterResponse) {\n const u = await h(r.request, r._options, r._decorateResponse(i.clone()));\n u instanceof globalThis.Response && (i = u);\n }\n if (r._decorateResponse(i), !i.ok && r._options.throwHttpErrors) {\n let h = new g(i, r.request, r._options);\n for (const u of r._options.hooks.beforeError)\n h = await u(h);\n throw h;\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 (!U)\n throw new Error(\"Streams are not supported in your environment. `ReadableStream` is missing.\");\n return r._stream(i.clone(), r._options.onDownloadProgress);\n }\n return i;\n }, a = r._options.retry.methods.includes(r.request.method.toLowerCase()) ? r._retry(o) : o();\n for (const [i, h] of Object.entries(V))\n a[i] = async () => {\n r.request.headers.set(\"accept\", r.request.headers.get(\"accept\") || h);\n const p = (await a).clone();\n if (i === \"json\") {\n if (p.status === 204 || (await p.clone().arrayBuffer()).byteLength === 0)\n return \"\";\n if (s.parseJson)\n return s.parseJson(await p.text());\n }\n return p[i]();\n };\n return a;\n }\n // eslint-disable-next-line complexity\n constructor(e, s = {}) {\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 = e, 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 ...s,\n headers: D(this._input.headers, s.headers),\n hooks: P({\n beforeRequest: [],\n beforeRetry: [],\n beforeError: [],\n afterResponse: []\n }, s.hooks),\n method: G(s.method ?? this._input.method),\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n prefixUrl: String(s.prefixUrl || \"\"),\n retry: $(s.retry),\n throwHttpErrors: s.throwHttpErrors !== !1,\n timeout: s.timeout ?? 1e4,\n fetch: s.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 (L) {\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 (q && (this._options.duplex = \"half\"), this.request = new globalThis.Request(this._input, this._options), this._options.searchParams) {\n const o = \"?\" + (typeof this._options.searchParams == \"string\" ? this._options.searchParams.replace(/^\\?/, \"\") : new URLSearchParams(this._options.searchParams).toString()), n = this.request.url.replace(/(?:\\?.*?)?(?=#|$)/, o);\n (x && 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(n, { ...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(e) {\n if (this._retryCount++, this._retryCount <= this._options.retry.limit && !(e instanceof N)) {\n if (e instanceof g) {\n if (!this._options.retry.statusCodes.includes(e.response.status))\n return 0;\n const r = e.response.headers.get(\"Retry-After\");\n if (r && this._options.retry.afterStatusCodes.includes(e.response.status)) {\n let o = Number(r);\n return Number.isNaN(o) ? o = Date.parse(r) - Date.now() : o *= 1e3, this._options.retry.maxRetryAfter !== void 0 && o > this._options.retry.maxRetryAfter ? 0 : o;\n }\n if (e.response.status === 413)\n return 0;\n }\n const s = this._options.retry.delay(this._retryCount);\n return Math.min(this._options.retry.backoffLimit, s);\n }\n return 0;\n }\n _decorateResponse(e) {\n return this._options.parseJson && (e.json = async () => this._options.parseJson(await e.text())), e;\n }\n async _retry(e) {\n try {\n return await e();\n } catch (s) {\n const r = Math.min(this._calculateRetryDelay(s), S);\n if (r !== 0 && this._retryCount > 0) {\n await J(r, { signal: this._options.signal });\n for (const o of this._options.hooks.beforeRetry)\n if (await o({\n request: this.request,\n options: this._options,\n error: s,\n retryCount: this._retryCount\n }) === H)\n return;\n return this._retry(e);\n }\n throw s;\n }\n }\n async _fetch() {\n for (const s of this._options.hooks.beforeRequest) {\n const r = await s(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 e = z(this.request, this._options);\n return this._options.timeout === !1 ? this._options.fetch(this.request.clone(), e) : K(this.request.clone(), e, this.abortController, this._options);\n }\n /* istanbul ignore next */\n _stream(e, s) {\n const r = Number(e.headers.get(\"content-length\")) || 0;\n let o = 0;\n return e.status === 204 ? (s && s({ percent: 1, totalBytes: r, transferredBytes: o }, new Uint8Array()), new globalThis.Response(null, {\n status: e.status,\n statusText: e.statusText,\n headers: e.headers\n })) : new globalThis.Response(new globalThis.ReadableStream({\n async start(n) {\n const a = e.body.getReader();\n s && s({ percent: 0, transferredBytes: 0, totalBytes: r }, new Uint8Array());\n async function i() {\n const { done: h, value: u } = await a.read();\n if (h) {\n n.close();\n return;\n }\n if (s) {\n o += u.byteLength;\n const p = r === 0 ? 0 : o / r;\n s({ percent: p, transferredBytes: o, totalBytes: r }, u);\n }\n n.enqueue(u), await i();\n }\n await i();\n }\n }), {\n status: e.status,\n statusText: e.statusText,\n headers: e.headers\n });\n }\n}\n/*! MIT License © Sindre Sorhus */\nconst R = (t) => {\n const e = (s, r) => T.create(s, _(t, r));\n for (const s of k)\n e[s] = (r, o) => T.create(r, _(t, o, { method: s }));\n return e.create = (s) => R(_(s)), e.extend = (s) => R(_(t, s)), e.stop = H, e;\n}, I = R();\nlet f;\nconst c = {\n CachedPrices: `${d.ThorswapApi}/tokenlist/cached-price`,\n GasRates: `${d.ThorswapApi}/resource-worker/gasPrice/getAll`,\n Quote: `${d.ThorswapApi}/aggregator/tokens/quote`,\n Txn: `${d.ThorswapApi}/apiusage/v2/txn`,\n TokenlistProviders: `${d.ThorswapApi}/tokenlist/providers`,\n TokenList: `${d.ThorswapStatic}/token-list`,\n Thorname: `${d.ThorswapApi}/thorname`\n}, B = typeof window < \"u\" ? {} : { referrer: \"https://sk.thorswap.net\", referer: \"https://sk.thorswap.net\" }, y = () => f || (f = I.create({ headers: B }), f), st = ({ apiKey: t, ...e }) => {\n f = I.create({\n ...e,\n headers: { ...B, ...e.headers, \"x-api-key\": t }\n });\n}, l = {\n get: (t, e) => y().get(t, e).json(),\n post: (t, e) => y().post(t, e).json()\n}, Q = ({ tokens: t, ...e }) => {\n const s = new URLSearchParams(), r = t.filter(\n (o, n, a) => a.findIndex((i) => i === o) === n\n );\n for (const o of r)\n s.append(\"tokens\", JSON.stringify(o));\n return e.metadata && s.append(\"metadata\", \"true\"), e.lookup && s.append(\"lookup\", \"true\"), e.sparkline && s.append(\"sparkline\", \"true\"), l.post(c.CachedPrices, {\n body: s.toString(),\n headers: { \"Content-Type\": \"application/x-www-form-urlencoded\" }\n });\n}, ot = {\n getCachedPrices: Q,\n getQuote: (t) => l.get(c.Quote, { searchParams: t }),\n getGasRates: () => l.get(c.GasRates),\n getTxnDetails: (t) => l.get(c.Txn, { searchParams: t }),\n getTokenlistProviders: () => l.get(c.TokenlistProviders),\n getTokenList: (t) => l.get(`${c.TokenList}/${t}.json`),\n getThornameAddresses: (t) => l.get(`${c.Thorname}/${t}`),\n getThornameRegisteredChains: (t) => l.get(`${c.Thorname}/chains/${t}`),\n getThornameRlookup: (t, e) => l.get(`${c.Thorname}/rlookup`, { searchParams: { address: t, chain: e } })\n};\nvar Y = /* @__PURE__ */ ((t) => (t.SWAP_TC_TO_TC = \"SWAP:TC-TC\", t.SWAP_ETH_TO_TC = \"SWAP:ERC20-TC\", t.SWAP_TC_TO_ETH = \"SWAP:TC-ERC20\", t.SWAP_ETH_TO_ETH = \"SWAP:ERC20-ERC20\", t.SWAP_AVAX_TO_TC = \"SWAP:AVAX-TC\", t.SWAP_TC_TO_AVAX = \"SWAP:TC-AVAX\", t.SWAP_AVAX_TO_AVAX = \"SWAP:AVAX-AVAX\", t.SWAP_ETH_TO_AVAX = \"SWAP:ETH-AVAX\", t.SWAP_AVAX_TO_ETH = \"SWAP:AVAX-ETH\", t.SWAP_TC_TO_GAIA = \"SWAP:TC-GAIA\", t.SWAP_GAIA_TO_TC = \"SWAP:GAIA-TC\", t.SWAP_TC_TO_BNB = \"SWAP:TC-BNB\", t.SWAP_BNB_TO_TC = \"SWAP:BNB-TC\", t.SWAP_TC_TO_BTC = \"SWAP:TC-BTC\", t.SWAP_BTC_TO_TC = \"SWAP:BTC-TC\", t.SWAP_TC_TO_BCH = \"SWAP:TC-BCH\", t.SWAP_BCH_TO_TC = \"SWAP:BCH-TC\", t.SWAP_TC_TO_LTC = \"SWAP:TC-LTC\", t.SWAP_LTC_TO_TC = \"SWAP:LTC-TC\", t.SWAP_TC_TO_DOGE = \"SWAP:TC-DOGE\", t.SWAP_DOGE_TO_TC = \"SWAP:DOGE-TC\", t.TC_STATUS = \"TC:STATUS\", t.TC_TRANSFER = \"TC:TRANSFER\", t.TC_DEPOSIT = \"TC:DEPOSIT\", t.TC_SEND = \"TC:SEND\", t.TC_SWITCH = \"TC:SWITCH\", t.TC_LP_ADD = \"TC:ADDLIQUIDITY\", t.TC_LP_WITHDRAW = \"TC:WITHDRAW\", t.TC_TNS_CREATE = \"TC:TNS-CREATE\", t.TC_TNS_EXTEND = \"TC:TNS-EXTEND\", t.TC_TNS_UPDATE = \"TC:TNS-UPDATE\", t.TC_SAVINGS_ADD = \"TC:ADDSAVINGS\", t.TC_SAVINGS_WITHDRAW = \"TC:WITHDRAWSAVINGS\", t.TC_LENDING_OPEN = \"TC:LENDINGOPEN\", t.TC_LENDING_CLOSE = \"TC:LENDINGCLOSE\", t.ETH_APPROVAL = \"ETH:APPROVAL\", t.ETH_STATUS = \"ETH:STATUS\", t.ETH_TRANSFER_TO_TC = \"ETH:TRANSFER:IN\", t.ETH_TRANSFER_FROM_TC = \"ETH:TRANSFER:OUT\", t.AVAX_APPROVAL = \"AVAX:APPROVAL\", t.AVAX_STATUS = \"AVAX:STATUS\", t.AVAX_TRANSFER_TO_TC = \"AVAX:TRANSFER:IN\", t.AVAX_TRANSFER_FROM_TC = \"AVAX:TRANSFER:OUT\", t.BSC_APPROVAL = \"BSC:APPROVAL\", t.BSC_STATUS = \"BSC:STATUS\", t.BSC_TRANSFER_TO_TC = \"BSC:TRANSFER:IN\", t.BSC_TRANSFER_FROM_TC = \"BSC:TRANSFER:OUT\", t.APPROVAL = \"APPROVAL\", t.STATUS = \"STATUS\", t.TRANSFER_TO_TC = \"TRANSFER:IN\", t.TRANSFER_FROM_TC = \"TRANSFER:OUT\", t.UNSUPPORTED = \"UNSUPPORTED\", t.TC_LENDING = \"TC:LENDING\", t))(Y || {}), Z = /* @__PURE__ */ ((t) => (t.PENDING = \"pending\", t.SUCCESS = \"success\", t.CANCELLED = \"cancelled\", t.REFUNDED = \"refunded\", t.REPLACED = \"replaced\", t.ERROR = \"error\", t.UNKNOWN = \"unknown\", t.NOT_STARTED = \"not_started\", t.NOT_FOUND = \"not_found\", t.RETRIES_EXCEEDED = \"retries_exceeded\", t.STREAMING = \"streaming\", t))(Z || {}), tt = /* @__PURE__ */ ((t) => (t[t.NOT_STARTED = 0] = \"NOT_STARTED\", t[t.SUCCESS = 1] = \"SUCCESS\", t[t.REFUNDED = 2] = \"REFUNDED\", t))(tt || {});\nexport {\n c as ApiEndpoints,\n l as RequestClient,\n tt as StreamingSwapProgressStatus,\n ot as SwapKitApi,\n Y as TransactionType,\n Z as TxStatus,\n B as defaultRequestHeaders,\n st as setRequestClientConfig\n};\n//# sourceMappingURL=index.es.js.map\n","import { RequestClient } from \"@swapkit/api\";\nimport type { EVMChain } from \"@swapkit/types\";\nimport { BaseDecimal, Chain, ChainToRPC, EVMChains, FeeOption } from \"@swapkit/types\";\n\nconst getDecimalMethodHex = \"0x313ce567\";\n\nexport type CommonAssetString =\n | `${Chain.Maya}.MAYA`\n | `${Chain.Ethereum}.THOR`\n | `${Chain.Ethereum}.vTHOR`\n | `${Chain.Kujira}.USK`\n | Chain;\n\nconst getContractDecimals = async ({ chain, to }: { chain: EVMChain; to: string }) => {\n try {\n const { result } = await RequestClient.post<{ result: string }>(ChainToRPC[chain], {\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: to.toLowerCase(), data: getDecimalMethodHex }, \"latest\"],\n }),\n });\n\n return parseInt(BigInt(result).toString());\n } catch (error) {\n console.error(error);\n return BaseDecimal[chain];\n }\n};\n\nconst getETHAssetDecimal = (symbol: string) => {\n if (symbol === Chain.Ethereum) return BaseDecimal.ETH;\n const [, address] = symbol.split(\"-\");\n\n return address?.startsWith(\"0x\")\n ? getContractDecimals({ chain: Chain.Ethereum, to: address })\n : BaseDecimal.ETH;\n};\n\nconst getAVAXAssetDecimal = (symbol: string) => {\n const [, address] = symbol.split(\"-\");\n\n return address?.startsWith(\"0x\")\n ? getContractDecimals({ chain: Chain.Avalanche, to: address.toLowerCase() })\n : BaseDecimal.AVAX;\n};\n\nconst getBSCAssetDecimal = (symbol: string) => {\n if (symbol === Chain.BinanceSmartChain) return BaseDecimal.BSC;\n\n return BaseDecimal.BSC;\n};\n\nexport const getDecimal = ({ chain, symbol }: { chain: Chain; symbol: string }) => {\n switch (chain) {\n case Chain.Ethereum:\n return getETHAssetDecimal(symbol);\n case Chain.Avalanche:\n return getAVAXAssetDecimal(symbol);\n case Chain.BinanceSmartChain:\n return getBSCAssetDecimal(symbol);\n default:\n return BaseDecimal[chain];\n }\n};\n\nexport const gasFeeMultiplier: Record<FeeOption, number> = {\n [FeeOption.Average]: 1.2,\n [FeeOption.Fast]: 1.5,\n [FeeOption.Fastest]: 2,\n};\n\nexport const isGasAsset = ({ chain, symbol }: { chain: Chain; symbol: string }) => {\n switch (chain) {\n case Chain.Arbitrum:\n case Chain.Optimism:\n return symbol === \"ETH\";\n case Chain.Maya:\n return symbol === \"CACAO\";\n case Chain.Kujira:\n return symbol === \"KUJI\";\n case Chain.Cosmos:\n return symbol === \"ATOM\";\n case Chain.Polygon:\n return symbol === \"MATIC\";\n case Chain.BinanceSmartChain:\n return symbol === \"BNB\";\n case Chain.THORChain:\n return symbol === \"RUNE\";\n\n default:\n return symbol === chain;\n }\n};\n\nexport const getCommonAssetInfo = (\n assetString: CommonAssetString,\n): { identifier: string; decimal: number } => {\n switch (assetString) {\n case `${Chain.Ethereum}.THOR`:\n return { identifier: \"ETH.THOR-0xa5f2211b9b8170f694421f2046281775e8468044\", decimal: 18 };\n case `${Chain.Ethereum}.vTHOR`:\n return { identifier: \"ETH.vTHOR-0x815c23eca83261b6ec689b60cc4a58b54bc24d8d\", decimal: 18 };\n\n case Chain.Cosmos:\n return { identifier: \"GAIA.ATOM\", decimal: BaseDecimal[assetString] };\n case Chain.THORChain:\n return { identifier: \"THOR.RUNE\", decimal: BaseDecimal[assetString] };\n case Chain.BinanceSmartChain:\n return { identifier: \"BSC.BNB\", decimal: BaseDecimal[assetString] };\n case Chain.Maya:\n return { identifier: \"MAYA.CACAO\", decimal: BaseDecimal.MAYA };\n case `${Chain.Maya}.MAYA`:\n return { identifier: \"MAYA.MAYA\", decimal: 4 };\n\n case `${Chain.Kujira}.USK`:\n return { identifier: `${Chain.Kujira}.USK`, decimal: 6 };\n\n default:\n return { identifier: `${assetString}.${assetString}`, decimal: BaseDecimal[assetString] };\n }\n};\n\n// biome-ignore lint/complexity/noExcessiveCognitiveComplexity: TODO: Refactor\nexport const getAssetType = ({ chain, symbol }: { chain: Chain; symbol: string }) => {\n if (symbol.includes(\"/\")) return \"Synth\";\n\n switch (chain) {\n case Chain.Cosmos:\n return symbol === \"ATOM\" ? \"Native\" : Chain.Cosmos;\n case Chain.Kujira:\n return symbol === Chain.Kujira ? \"Native\" : Chain.Kujira;\n case Chain.Binance:\n return symbol === Chain.Binance ? \"Native\" : \"BEP2\";\n case Chain.BinanceSmartChain:\n return symbol === Chain.Binance ? \"Native\" : \"BEP20\";\n case Chain.Ethereum:\n return symbol === Chain.Ethereum ? \"Native\" : \"ERC20\";\n case Chain.Avalanche:\n return symbol === Chain.Avalanche ? \"Native\" : Chain.Avalanche;\n case Chain.Polygon:\n return symbol === Chain.Polygon ? \"Native\" : \"POLYGON\";\n\n case Chain.Arbitrum:\n return [Chain.Ethereum, Chain.Arbitrum].includes(symbol as Chain) ? \"Native\" : \"ARBITRUM\";\n case Chain.Optimism:\n return [Chain.Ethereum, Chain.Optimism].includes(symbol as Chain) ? \"Native\" : \"OPTIMISM\";\n\n default:\n return \"Native\";\n }\n};\n\nexport const assetFromString = (assetString: string) => {\n const [chain, ...symbolArray] = assetString.split(\".\") as [Chain, ...(string | undefined)[]];\n const synth = assetString.includes(\"/\");\n const symbol = symbolArray.join(\".\");\n const ticker = symbol?.split(\"-\")?.[0];\n\n return { chain, symbol, ticker, synth };\n};\n\nconst potentialScamRegex = new RegExp(\n /(.)\\1{6}|\\.ORG|\\.NET|\\.FINANCE|\\.COM|WWW|HTTP|\\\\\\\\|\\/\\/|[\\s$%:[\\]]/,\n \"gmi\",\n);\n\nconst evmAssetHasAddress = (assetString: string) => {\n const [chain, symbol] = assetString.split(\".\") as [EVMChain, string];\n if (!EVMChains.includes(chain as EVMChain)) return true;\n const [, address] = symbol.split(\"-\") as [string, string?];\n\n return isGasAsset({ chain: chain as Chain, symbol }) || !!address;\n};\n\nexport const filterAssets = (\n tokens: {\n value: string;\n decimal: number;\n chain: Chain;\n symbol: string;\n }[],\n) =>\n tokens.filter(({ chain, value, symbol }) => {\n const assetString = `${chain}.${symbol}`;\n\n return (\n !potentialScamRegex.test(assetString) && evmAssetHasAddress(assetString) && value !== \"0\"\n );\n });\n","import { BaseDecimal } from \"@swapkit/types\";\n\nimport { SwapKitNumber } from \"../index.ts\";\n\ntype ShareParams<T extends {}> = T & {\n liquidityUnits: string;\n poolUnits: string;\n};\n\ntype PoolParams = {\n runeAmount: string;\n assetAmount: string;\n runeDepth: string;\n assetDepth: string;\n};\n\n/**\n * Ref: https://gitlab.com/thorchain/thornode/-/issues/657\n * share = (s * A * (2 * T^2 - 2 * T * s + s^2))/T^3\n * s = stakeUnits for member (after factoring in withdrawBasisPoints)\n * T = totalPoolUnits for pool\n * A = assetDepth to be withdrawn\n *\n * Formula:\n * share = (s * A * (2 * T^2 - 2 * T * s + s^2))/T^3\n * (part1 * (part2 - part3 + part4)) / part5\n */\nexport function getAsymmetricRuneShare({\n liquidityUnits,\n poolUnits,\n runeDepth,\n}: ShareParams<{ runeDepth: string }>) {\n const s = toTCSwapKitNumber(liquidityUnits);\n const T = toTCSwapKitNumber(poolUnits);\n const A = toTCSwapKitNumber(runeDepth);\n\n const part1 = s.mul(A);\n const part2 = T.mul(T).mul(2);\n const part3 = T.mul(s).mul(2);\n const part4 = s.mul(s);\n const part5 = T.mul(T).mul(T);\n\n const numerator = part1.mul(part2.sub(part3).add(part4));\n\n return numerator.div(part5);\n}\n\nexport function getAsymmetricAssetShare({\n liquidityUnits,\n poolUnits,\n assetDepth,\n}: ShareParams<{ assetDepth: string }>) {\n const s = toTCSwapKitNumber(liquidityUnits);\n const T = toTCSwapKitNumber(poolUnits);\n const A = toTCSwapKitNumber(assetDepth);\n\n const part1 = s.mul(A);\n const part2 = T.mul(T).mul(2);\n const part3 = T.mul(s).mul(2);\n const part4 = s.mul(s);\n const numerator = part1.mul(part2.sub(part3).add(part4));\n const part5 = T.mul(T).mul(T);\n\n return numerator.div(part5);\n}\n\nexport function getAsymmetricRuneWithdrawAmount({\n percent,\n runeDepth,\n liquidityUnits,\n poolUnits,\n}: ShareParams<{ percent: number; runeDepth: string }>) {\n return getAsymmetricRuneShare({ runeDepth, liquidityUnits, poolUnits }).mul(percent);\n}\n\nexport function getAsymmetricAssetWithdrawAmount({\n percent,\n assetDepth,\n liquidityUnits,\n poolUnits,\n}: ShareParams<{ percent: number; assetDepth: string }>) {\n return getAsymmetricAssetShare({ assetDepth, liquidityUnits, poolUnits }).mul(percent);\n}\n\nfunction toTCSwapKitNumber(value: string) {\n return SwapKitNumber.fromBigInt(BigInt(value), BaseDecimal.THOR);\n}\n\nexport function getSymmetricPoolShare({\n liquidityUnits,\n poolUnits,\n runeDepth,\n assetDepth,\n}: ShareParams<{\n runeDepth: string;\n assetDepth: string;\n}>) {\n return {\n assetAmount: toTCSwapKitNumber(assetDepth).mul(liquidityUnits).div(poolUnits),\n runeAmount: toTCSwapKitNumber(runeDepth).mul(liquidityUnits).div(poolUnits),\n };\n}\n\nexport function getSymmetricWithdraw({\n liquidityUnits,\n poolUnits,\n runeDepth,\n assetDepth,\n percent,\n}: ShareParams<{\n runeDepth: string;\n assetDepth: string;\n percent: number;\n}>) {\n return Object.fromEntries(\n Object.entries(getSymmetricPoolShare({ liquidityUnits, poolUnits, runeDepth, assetDepth })).map(\n ([name, value]) => [name, value.mul(percent)],\n ),\n );\n}\n\nexport function getEstimatedPoolShare({\n runeDepth,\n poolUnits,\n assetDepth,\n liquidityUnits,\n runeAmount,\n assetAmount,\n}: ShareParams<{\n runeAmount: string;\n assetAmount: string;\n runeDepth: string;\n assetDepth: string;\n}>) {\n const R = new SwapKitNumber({ value: runeDepth, decimal: 8 });\n const A = new SwapKitNumber({ value: assetDepth, decimal: 8 });\n const P = new SwapKitNumber({ value: poolUnits, decimal: 8 });\n const runeAddAmount = new SwapKitNumber({ value: runeAmount, decimal: 8 });\n const assetAddAmount = new SwapKitNumber({ value: assetAmount, decimal: 8 });\n\n // liquidityUnits = P * (r*A + a*R + 2*r*a) / (r*A + a*R + 2*R*A)\n const rA = runeAddAmount.mul(A);\n const aR = assetAddAmount.mul(R);\n const ra = runeAddAmount.mul(assetAddAmount);\n const RA = R.mul(A);\n const numerator = P.mul(rA.add(aR.add(ra.mul(2))));\n const denominator = rA.add(aR.add(RA.mul(2)));\n const liquidityUnitsAfterAdd = numerator.div(denominator);\n const estimatedLiquidityUnits = toTCSwapKitNumber(liquidityUnits).add(liquidityUnitsAfterAdd);\n\n if (liquidityUnitsAfterAdd.getBaseValue(\"number\") === 0) {\n return estimatedLiquidityUnits.div(P).getBaseValue(\"number\");\n }\n\n // get pool units after add\n const newPoolUnits = P.add(estimatedLiquidityUnits);\n\n return estimatedLiquidityUnits.div(newPoolUnits).getBaseValue(\"number\");\n}\n\nexport function getLiquiditySlippage({\n runeAmount,\n assetAmount,\n runeDepth,\n assetDepth,\n}: PoolParams) {\n if (runeAmount === \"0\" || assetAmount === \"0\" || runeDepth === \"0\" || assetDepth === \"0\")\n return 0;\n // formula: (t * R - T * r)/ (T*r + R*T)\n const R = toTCSwapKitNumber(runeDepth);\n const T = toTCSwapKitNumber(assetDepth);\n const assetAddAmount = toTCSwapKitNumber(assetAmount);\n const runeAddAmount = toTCSwapKitNumber(runeAmount);\n\n const numerator = assetAddAmount.mul(R).sub(T.mul(runeAddAmount));\n const denominator = T.mul(runeAddAmount).add(R.mul(T));\n\n // set absolute value of percent, no negative allowed\n return Math.abs(numerator.div(denominator).getBaseValue(\"number\"));\n}\n","import { Chain, MemoType } from \"@swapkit/types\";\n\nexport type ThornameRegisterParam = {\n name: string;\n chain: string;\n address: string;\n owner?: string;\n preferredAsset?: string;\n expiryBlock?: string;\n};\n\ntype WithChain<T extends {}> = T & { chain: Chain };\n\nexport type MemoOptions<T extends MemoType> = {\n [MemoType.BOND]: { address: string };\n [MemoType.LEAVE]: { address: string };\n [MemoType.CLOSE_LOAN]: { address: string; asset: string; minAmount?: string };\n [MemoType.OPEN_LOAN]: { address: string; asset: string; minAmount?: string };\n [MemoType.UNBOND]: { address: string; unbondAmount: number };\n [MemoType.DEPOSIT]: WithChain<{ symbol: string; address?: string; singleSide?: boolean }>;\n [MemoType.WITHDRAW]: WithChain<{\n ticker: string;\n symbol: string;\n basisPoints: number;\n targetAssetString?: string;\n singleSide?: boolean;\n }>;\n [MemoType.THORNAME_REGISTER]: Omit<ThornameRegisterParam, \"preferredAsset\" | \"expiryBlock\">;\n}[T];\n\nexport const getMemoFor = <T extends MemoType>(memoType: T, options: MemoOptions<T>) => {\n switch (memoType) {\n case MemoType.LEAVE:\n case MemoType.BOND: {\n const { address } = options as MemoOptions<MemoType.BOND>;\n return `${memoType}:${address}`;\n }\n\n case MemoType.UNBOND: {\n const { address, unbondAmount } = options as MemoOptions<MemoType.UNBOND>;\n return `${memoType}:${address}:${unbondAmount}`;\n }\n\n case MemoType.THORNAME_REGISTER: {\n const { name, chain, address, owner } = options as MemoOptions<MemoType.THORNAME_REGISTER>;\n return `${memoType}:${name}:${chain}:${address}${owner ? `:${owner}` : \"\"}`;\n }\n\n case MemoType.DEPOSIT: {\n const { chain, symbol, address, singleSide } = options as MemoOptions<MemoType.DEPOSIT>;\n\n const getPoolIdentifier = (chain: Chain, symbol: string): string => {\n switch (chain) {\n case Chain.Litecoin:\n return \"l\";\n case Chain.Dogecoin:\n return \"d\";\n case Chain.BitcoinCash:\n return \"c\";\n default:\n return `${chain}.${symbol}`;\n }\n };\n\n return singleSide\n ? `${memoType}:${chain}/${symbol}`\n : `${memoType}:${getPoolIdentifier(chain, symbol)}:${address || \"\"}`;\n }\n\n case MemoType.WITHDRAW: {\n const { chain, ticker, symbol, basisPoints, targetAssetString, singleSide } =\n options as MemoOptions<MemoType.WITHDRAW>;\n\n const shortenedSymbol =\n chain === \"ETH\" && ticker !== \"ETH\" ? `${ticker}-${symbol.slice(-3)}` : symbol;\n const target = !singleSide && targetAssetString ? `:${targetAssetString}` : \"\";\n const assetDivider = singleSide ? \"/\" : \".\";\n\n return `${memoType}:${chain}${assetDivider}${shortenedSymbol}:${basisPoints}${target}`;\n }\n\n case MemoType.OPEN_LOAN:\n case MemoType.CLOSE_LOAN: {\n const { asset, address } = options as MemoOptions<MemoType.OPEN_LOAN>;\n\n return `${memoType}:${asset}:${address}`; //:${minAmount ? `${minAmount}` : ''}:t:0`;\n }\n\n default:\n return \"\";\n }\n};\n","// 10 rune for register, 1 rune per year\n// MINIMUM_REGISTRATION_FEE = 11\nexport function getTHORNameCost(year: number) {\n if (year < 0) throw new Error(\"Invalid number of year\");\n return 10 + year;\n}\n\nexport function validateTHORName(name: string) {\n if (name.length > 30) return false;\n\n const regex = /^[a-zA-Z0-9+_-]+$/g;\n\n return !!name.match(regex);\n}\n\nexport function derivationPathToString([network, chainId, account, change, index]: number[]) {\n const shortPath = typeof index !== \"number\";\n\n return `${network}'/${chainId}'/${account}'/${change}${shortPath ? \"\" : `/${index}`}`;\n}\n","import { Chain } from \"@swapkit/types\";\n\n// Backward compatibility\nconst supportedChains = [...Object.values(Chain), \"TERRA\"];\n\nexport function validateIdentifier(identifier = \"\") {\n const uppercasedIdentifier = identifier.toUpperCase();\n\n const [chain] = uppercasedIdentifier.split(\".\") as [Chain, string];\n if (supportedChains.includes(chain)) return true;\n\n const [synthChain] = uppercasedIdentifier.split(\"/\") as [Chain, string];\n if (supportedChains.includes(synthChain)) return true;\n\n throw new Error(\n `Invalid identifier: ${identifier}. Expected format: <Chain>.<Ticker> or <Chain>.<Ticker>-<ContractAddress>`,\n );\n}\n","import { BaseDecimal } from \"@swapkit/types\";\n\nimport type { SwapKitNumber } from \"./swapKitNumber.ts\";\n\ntype NumberPrimitivesType = {\n bigint: bigint;\n number: number;\n string: string;\n};\nexport type NumberPrimitives = bigint | number | string;\ntype InitialisationValueType = NumberPrimitives | BigIntArithmetics | SwapKitNumber;\n\ntype SKBigIntParams = InitialisationValueType | { decimal?: number; value: number | string };\ntype AllowedNumberTypes = \"bigint\" | \"number\" | \"string\";\n\nconst DEFAULT_DECIMAL = 8;\nconst toMultiplier = (decimal: number) => 10n ** BigInt(decimal);\nconst decimalFromMultiplier = (multiplier: bigint) => Math.log10(parseFloat(multiplier.toString()));\n\nexport function formatBigIntToSafeValue({\n value,\n bigIntDecimal = DEFAULT_DECIMAL,\n decimal = DEFAULT_DECIMAL,\n}: {\n value: bigint;\n bigIntDecimal?: number;\n decimal?: number;\n}) {\n if (decimal === 0) return value.toString();\n const isNegative = value < 0n;\n let valueString = value.toString().substring(isNegative ? 1 : 0);\n\n const padLength = decimal - (valueString.length - 1);\n\n if (padLength > 0) {\n valueString = \"0\".repeat(padLength) + valueString;\n }\n\n const decimalIndex = valueString.length - decimal;\n let decimalString = valueString.slice(-decimal);\n\n // Check if we need to round up\n if (parseInt(decimalString[bigIntDecimal]) >= 5) {\n // Increment the last decimal place and slice off the rest\n decimalString = `${decimalString.substring(0, bigIntDecimal - 1)}${(\n parseInt(decimalString[bigIntDecimal - 1]) + 1\n ).toString()}`;\n } else {\n // Just slice off the extra digits\n decimalString = decimalString.substring(0, bigIntDecimal);\n }\n\n return `${isNegative ? \"-\" : \"\"}${valueString.slice(0, decimalIndex)}.${decimalString}`.replace(\n /\\.?0*$/,\n \"\",\n );\n}\n\nexport class BigIntArithmetics {\n decimalMultiplier: bigint = 10n ** 8n;\n bigIntValue = 0n;\n decimal?: number;\n\n static fromBigInt(value: bigint, decimal?: number) {\n return new BigIntArithmetics({\n decimal,\n value: formatBigIntToSafeValue({ value, bigIntDecimal: decimal, decimal }),\n });\n }\n\n static shiftDecimals({\n value,\n from,\n to,\n }: {\n value: InstanceType<typeof SwapKitNumber>;\n from: number;\n to: number;\n }) {\n return BigIntArithmetics.fromBigInt(\n (value.getBaseValue(\"bigint\") * toMultiplier(to)) / toMultiplier(from),\n to,\n );\n }\n\n constructor(params: SKBigIntParams) {\n const value = getStringValue(params);\n const isComplex = typeof params === \"object\";\n this.decimal = isComplex ? params.decimal : undefined;\n\n // use the multiplier to keep track of decimal point - defaults to 8 if lower than 8\n this.decimalMultiplier =\n isComplex && \"decimalMultiplier\" in params\n ? params.decimalMultiplier\n : toMultiplier(Math.max(getFloatDecimals(toSafeValue(value)), this.decimal || 0));\n this.#setValue(value);\n }\n\n set(value: SKBigIntParams): this {\n // @ts-expect-error False positive\n return new this.constructor({ decimal: this.decimal, value, identifier: this.toString() });\n }\n add(...args: InitialisationValueType[]) {\n return this.#arithmetics(\"add\", ...args);\n }\n sub(...args: InitialisationValueType[]) {\n return this.#arithmetics(\"sub\", ...args);\n }\n mul(...args: InitialisationValueType[]) {\n return this.#arithmetics(\"mul\", ...args);\n }\n div(...args: InitialisationValueType[]) {\n return this.#arithmetics(\"div\", ...args);\n }\n gt(value: InitialisationValueType) {\n return this.#comparison(\"gt\", value);\n }\n gte(value: InitialisationValueType) {\n return this.#comparison(\"gte\", value);\n }\n lt(value: InitialisationValueType) {\n return this.#comparison(\"lt\", value);\n }\n lte(value: InitialisationValueType) {\n return this.#comparison(\"lte\", value);\n }\n eqValue(value: InitialisationValueType) {\n return this.#comparison(\"eqValue\", value);\n }\n\n // @ts-expect-error False positive\n getValue<T extends AllowedNumberTypes>(type: T): NumberPrimitivesType[T] {\n const value = this.formatBigIntToSafeValue(\n this.bigIntValue,\n this.decimal || decimalFromMultiplier(this.decimalMultiplier),\n );\n\n switch (type) {\n case \"number\":\n return Number(value) as NumberPrimitivesType[T];\n case \"string\":\n return value as NumberPrimitivesType[T];\n case \"bigint\":\n return ((this.bigIntValue * 10n ** BigInt(this.decimal || 8n)) /\n this.decimalMultiplier) as NumberPrimitivesType[T];\n }\n }\n\n // @ts-expect-error\n getBaseValue<T extends AllowedNumberTypes>(type: T): NumberPrimitivesType[T] {\n const divisor = this.decimalMultiplier / toMultiplier(this.decimal || BaseDecimal.THOR);\n const baseValue = this.bigIntValue / divisor;\n\n switch (type) {\n case \"number\":\n return Number(baseValue) as NumberPrimitivesType[T];\n case \"string\":\n return baseValue.toString() as NumberPrimitivesType[T];\n case \"bigint\":\n return baseValue as NumberPrimitivesType[T];\n }\n }\n\n getBigIntValue(value: InitialisationValueType, decimal?: number) {\n if (!decimal && typeof value === \"object\") return value.bigIntValue;\n\n const stringValue = getStringValue(value);\n const safeValue = toSafeValue(stringValue);\n\n if (safeValue === \"0\" || safeValue === \"undefined\") return 0n;\n return this.#toBigInt(safeValue, decimal);\n }\n\n toSignificant(significantDigits = 6) {\n const [int, dec] = this.getValue(\"string\").split(\".\");\n const integer = int || \"\";\n const decimal = dec || \"\";\n const valueLength = parseInt(integer) ? integer.length + decimal.length : decimal.length;\n\n if (valueLength <= significantDigits) {\n return this.getValue(\"string\");\n }\n\n if (integer.length >= significantDigits) {\n return integer.slice(0, significantDigits).padEnd(integer.length, \"0\");\n }\n\n if (parseInt(integer)) {\n return `${integer}.${decimal.slice(0, significantDigits - integer.length)}`.padEnd(\n significantDigits - integer.length,\n \"0\",\n );\n }\n\n const trimmedDecimal = parseInt(decimal);\n const slicedDecimal = `${trimmedDecimal}`.slice(0, significantDigits);\n\n return `0.${slicedDecimal.padStart(\n decimal.length - `${trimmedDecimal}`.length + slicedDecimal.length,\n \"0\",\n )}`;\n }\n\n toFixed(fixedDigits = 6) {\n const [int, dec] = this.getValue(\"string\").split(\".\");\n const integer = int || \"\";\n const decimal = dec || \"\";\n\n if (parseInt(integer)) {\n return `${integer}.${decimal.slice(0, fixedDigits)}`.padEnd(fixedDigits, \"0\");\n }\n\n const trimmedDecimal = parseInt(decimal);\n const slicedDecimal = `${trimmedDecimal}`.slice(0, fixedDigits);\n\n return `0.${slicedDecimal.padStart(\n decimal.length - `${trimmedDecimal}`.length + slicedDecimal.length,\n \"0\",\n )}`;\n }\n\n toAbbreviation(digits = 2) {\n const value = this.getValue(\"number\");\n const abbreviations = [\"\", \"K\", \"M\", \"B\", \"T\", \"Q\", \"Qi\", \"S\"];\n const tier = Math.floor(Math.log10(Math.abs(value)) / 3);\n const suffix = abbreviations[tier];\n\n if (!suffix) return this.getValue(\"string\");\n\n const scale = 10 ** (tier * 3);\n const scaled = value / scale;\n\n return `${scaled.toFixed(digits)}${suffix}`;\n }\n\n toCurrency(\n currency = \"$\",\n {\n currencyPosition = \"start\",\n decimal = 2,\n decimalSeparator = \".\",\n thousandSeparator = \",\",\n } = {},\n ) {\n const value = this.getValue(\"number\");\n const [int, dec = \"\"] = value.toFixed(6).split(\".\");\n const integer = int.replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandSeparator);\n\n const parsedValue =\n int || dec\n ? int === \"0\"\n ? `${parseFloat(`0.${dec}`)}`.replace(\".\", decimalSeparator)\n : `${integer}${parseInt(dec) ? `${decimalSeparator}${dec.slice(0, decimal)}` : \"\"}`\n : \"0.00\";\n\n return `${currencyPosition === \"start\" ? currency : \"\"}${parsedValue}${\n currencyPosition === \"end\" ? currency : \"\"\n }`;\n }\n\n formatBigIntToSafeValue(value: bigint, decimal?: number) {\n const bigIntDecimal = decimal || this.decimal || DEFAULT_DECIMAL;\n const decimalToUseForConversion = Math.max(\n bigIntDecimal,\n decimalFromMultiplier(this.decimalMultiplier),\n );\n const isNegative = value < 0n;\n\n const valueString = value.toString().substring(isNegative ? 1 : 0);\n const padLength = decimalToUseForConversion - (valueString.length - 1);\n\n const parsedValueString = padLength > 0 ? \"0\".repeat(padLength) + valueString : valueString;\n\n const decimalIndex = parsedValueString.length - decimalToUseForConversion;\n let decimalString = parsedValueString.slice(-decimalToUseForConversion);\n\n // Check if we need to round up\n if (parseInt(decimalString[bigIntDecimal]) >= 5) {\n // Increment the last decimal place and slice off the rest\n decimalString = `${decimalString.substring(0, bigIntDecimal - 1)}${(\n parseInt(decimalString[bigIntDecimal - 1]) + 1\n ).toString()}`;\n } else {\n // Just slice off the extra digits\n decimalString = decimalString.substring(0, bigIntDecimal);\n }\n\n return `${isNegative ? \"-\" : \"\"}${parsedValueString.slice(\n 0,\n decimalIndex,\n )}.${decimalString}`.replace(/\\.?0*$/, \"\");\n }\n\n #arithmetics(method: \"add\" | \"sub\" | \"mul\" | \"div\", ...args: InitialisationValueType[]): this {\n const precisionDecimal = this.#retrievePrecisionDecimal(this, ...args);\n const decimal = Math.max(precisionDecimal, decimalFromMultiplier(this.decimalMultiplier));\n const precisionDecimalMultiplier = toMultiplier(decimal);\n\n const result = args.reduce(\n (acc: bigint, arg) => {\n const value = this.getBigIntValue(arg, decimal);\n\n switch (method) {\n case \"add\":\n return acc + value;\n case \"sub\":\n return acc - value;\n /**\n * Multiplication & division would end up with wrong result if we don't adjust the value\n * 200000000n * 200000000n => 40000000000000000n\n * 200000000n / 200000000n => 1n\n * So we do the following:\n * 200000000n * 200000000n = 40000000000000000n / 100000000n (decimals) => 400000000n\n * (200000000n * 100000000n (decimals)) / 200000000n => 100000000n\n */\n case \"mul\":\n return (acc * value) / precisionDecimalMultiplier;\n case \"div\": {\n if (value === 0n) throw new RangeError(\"Division by zero\");\n return (acc * precisionDecimalMultiplier) / value;\n }\n default:\n return acc;\n }\n },\n //normalize is to precision multiplier base\n (this.bigIntValue * precisionDecimalMultiplier) / this.decimalMultiplier,\n );\n\n const value = formatBigIntToSafeValue({\n bigIntDecimal: decimal,\n decimal,\n value: result,\n });\n\n // @ts-expect-error False positive\n return new this.constructor({\n decimalMultiplier: toMultiplier(decimal),\n decimal: this.decimal,\n value,\n identifier: this.toString(),\n });\n }\n\n #comparison(method: \"gt\" | \"gte\" | \"lt\" | \"lte\" | \"eqValue\", ...args: InitialisationValueType[]) {\n const decimal = this.#retrievePrecisionDecimal(this, ...args);\n const value = this.getBigIntValue(args[0], decimal);\n const compareToValue = this.getBigIntValue(this, decimal);\n\n switch (method) {\n case \"gt\":\n return compareToValue > value;\n case \"gte\":\n return compareToValue >= value;\n case \"lt\":\n return compareToValue < value;\n case \"lte\":\n return compareToValue <= value;\n case \"eqValue\":\n return compareToValue === value;\n }\n }\n\n #setValue(value: InitialisationValueType) {\n const safeValue = toSafeValue(value) || \"0\";\n this.bigIntValue = this.#toBigInt(safeValue);\n }\n\n #retrievePrecisionDecimal(...args: InitialisationValueType[]) {\n const decimals = args\n .map((arg) => {\n const isObject = typeof arg === \"object\";\n const value = isObject\n ? arg.decimal || decimalFromMultiplier(arg.decimalMultiplier)\n : getFloatDecimals(toSafeValue(arg));\n\n return value;\n })\n .filter(Boolean) as number[];\n\n return Math.max(...decimals, DEFAULT_DECIMAL);\n }\n\n #toBigInt(value: string, decimal?: number) {\n const multiplier = decimal ? toMultiplier(decimal) : this.decimalMultiplier;\n const padDecimal = decimalFromMultiplier(multiplier);\n const [integerPart = \"\", decimalPart = \"\"] = value.split(\".\");\n\n return BigInt(`${integerPart}${decimalPart.padEnd(padDecimal, \"0\")}`);\n }\n}\n\nconst numberFormatter = Intl.NumberFormat(\"fullwide\", {\n useGrouping: false,\n maximumFractionDigits: 20,\n});\n\nfunction toSafeValue(value: InitialisationValueType) {\n const parsedValue =\n typeof value === \"number\" ? numberFormatter.format(value) : getStringValue(value);\n const splitValue = `${parsedValue}`.replaceAll(\",\", \".\").split(\".\");\n\n return splitValue.length > 1\n ? `${splitValue.slice(0, -1).join(\"\")}.${splitValue.at(-1)}`\n : splitValue[0];\n}\n\nfunction getFloatDecimals(value: string) {\n const decimals = value.split(\".\")[1]?.length || 0;\n return Math.max(decimals, DEFAULT_DECIMAL);\n}\n\nfunction getStringValue(param: SKBigIntParams) {\n return typeof param === \"object\"\n ? \"getValue\" in param\n ? param.getValue(\"string\")\n : param.value\n : param;\n}\n","import { BigIntArithmetics, formatBigIntToSafeValue } from \"./bigIntArithmetics.ts\";\n\nexport type SwapKitValueType = BigIntArithmetics | string | number;\n\nexport class SwapKitNumber extends BigIntArithmetics {\n eq(value: SwapKitValueType) {\n return this.eqValue(value);\n }\n\n static fromBigInt(value: bigint, decimal?: number) {\n return new SwapKitNumber({\n decimal,\n value: formatBigIntToSafeValue({ value, bigIntDecimal: decimal, decimal }),\n });\n }\n}\n","import { BaseDecimal, Chain, ChainToChainId } from \"@swapkit/types\";\n\nimport type { CommonAssetString } from \"../helpers/asset.ts\";\nimport { getAssetType, getCommonAssetInfo, getDecimal, isGasAsset } from \"../helpers/asset.ts\";\nimport { validateIdentifier } from \"../helpers/validators.ts\";\nimport type { TokenNames, TokenTax } from \"../types.ts\";\n\nimport type { NumberPrimitives } from \"./bigIntArithmetics.ts\";\nimport { BigIntArithmetics, formatBigIntToSafeValue } from \"./bigIntArithmetics.ts\";\nimport { SwapKitNumber, type SwapKitValueType } from \"./swapKitNumber.ts\";\n\nconst staticTokensMap = new Map<\n TokenNames,\n { tax?: TokenTax; decimal: number; identifier: string }\n>();\n\nexport class AssetValue extends BigIntArithmetics {\n address?: string;\n chain: Chain;\n isGasAsset = false;\n isSynthetic = false;\n symbol: string;\n tax?: TokenTax;\n ticker: string;\n type: ReturnType<typeof getAssetType>;\n\n constructor({\n value,\n decimal,\n tax,\n chain,\n symbol,\n identifier,\n }: { decimal: number; value: SwapKitValueType; tax?: TokenTax } & (\n | { chain: Chain; symbol: string; identifier?: never }\n | { identifier: string; chain?: never; symbol?: never }\n )) {\n super(typeof value === \"object\" ? value : { decimal, value });\n\n const assetInfo = getAssetInfo(identifier || `${chain}.${symbol}`);\n\n this.type = getAssetType(assetInfo);\n this.tax = tax;\n this.chain = assetInfo.chain;\n this.ticker = assetInfo.ticker;\n this.symbol = assetInfo.symbol;\n this.address = assetInfo.address;\n this.isSynthetic = assetInfo.isSynthetic;\n this.isGasAsset = assetInfo.isGasAsset;\n }\n\n toString() {\n return this.isSynthetic ? this.symbol : `${this.chain}.${this.symbol}`;\n }\n\n toUrl() {\n return this.isSynthetic ? `${this.chain}.${this.symbol.replace(\"/\", \".\")}` : this.toString();\n }\n\n eq({ chain, symbol }: { chain: Chain; symbol: string }) {\n return this.chain === chain && this.symbol === symbol;\n }\n\n chainId() {\n return ChainToChainId[this.chain];\n }\n\n // THOR.RUNE\n // THOR.ETH.ETH\n // ETH.THOR-0x1234567890\n static fromUrl(urlAsset: string, value: NumberPrimitives = 0) {\n const [chain, ticker, symbol] = urlAsset.split(\".\");\n if (!(chain && ticker)) throw new Error(\"Invalid asset url\");\n\n const assetString =\n chain === Chain.THORChain && symbol ? `${chain}.${ticker}/${symbol}` : urlAsset;\n\n return createAssetValue(assetString, value);\n }\n\n static fromString(assetString: string, value: NumberPrimitives = 0) {\n return createAssetValue(assetString, value);\n }\n static fromIdentifier(\n assetString:\n | `${Chain}.${string}`\n | `${Chain}/${string}`\n | `${Chain}.${string}-${string}`\n | TokenNames,\n value: NumberPrimitives = 0,\n ) {\n return createAssetValue(assetString, value);\n }\n\n static fromStringSync(assetString: string, value: NumberPrimitives = 0) {\n const { chain, isSynthetic } = getAssetInfo(assetString);\n const tokenInfo = staticTokensMap.get(assetString.toUpperCase() as TokenNames);\n\n if (isSynthetic) return createSyntheticAssetValue(assetString, value);\n // TODO: write logger that will only run in dev mode with some flag\n // if (!tokenInfo) {\n // console.error(\n // `Asset ${assetString} is not loaded. Use AssetValue.loadStaticAssets() to load it`,\n // );\n // }\n\n const { tax, decimal, identifier } = tokenInfo || {\n decimal: BaseDecimal[chain],\n identifier: assetString,\n };\n\n return new AssetValue({\n tax,\n value: safeValue(value, decimal),\n identifier: isSynthetic ? assetString : identifier,\n decimal: isSynthetic ? 8 : decimal,\n });\n }\n\n static async fromStringWithBase(\n assetString: string,\n value: NumberPrimitives = 0,\n baseDecimal: number = BaseDecimal.THOR,\n ) {\n const shiftedAmount = BigIntArithmetics.shiftDecimals({\n value: SwapKitNumber.fromBigInt(BigInt(value)),\n from: 0,\n to: baseDecimal,\n }).getBaseValue(\"string\");\n const assetValue = await AssetValue.fromString(assetString, value);\n\n return assetValue.set(shiftedAmount);\n }\n\n static fromStringWithBaseSync(\n assetString: string,\n value: NumberPrimitives = 0,\n baseDecimal: number = BaseDecimal.THOR,\n ) {\n const { chain, isSynthetic } = getAssetInfo(assetString);\n const tokenInfo = staticTokensMap.get(assetString.toUpperCase() as TokenNames);\n\n if (isSynthetic) return createSyntheticAssetValue(assetString, value);\n\n const { tax, decimal, identifier } = tokenInfo || {\n decimal: BaseDecimal[chain],\n identifier: assetString,\n };\n\n return new AssetValue({\n tax,\n value: safeValue(BigInt(value), baseDecimal),\n identifier,\n decimal,\n });\n }\n\n static fromIdentifierSync(assetString: TokenNames, value: NumberPrimitives = 0) {\n const { chain, isSynthetic } = getAssetInfo(assetString);\n const tokenInfo = staticTokensMap.get(assetString);\n\n if (isSynthetic) return createSyntheticAssetValue(assetString, value);\n // TODO: write logger that will only run in dev mode with some flag\n // if (!tokenInfo) {\n // console.error(\n // `Asset ${assetString} is not loaded. - Loading with base Chain. Use AssetValue.loadStaticAssets() to load it`,\n // );\n // }\n\n const { tax, decimal, identifier } = tokenInfo || {\n decimal: BaseDecimal[chain],\n identifier: assetString,\n };\n return new AssetValue({ tax, decimal, identifier, value: safeValue(value, decimal) });\n }\n\n static fromChainOrSignature(assetString: CommonAssetString, value: NumberPrimitives = 0) {\n const { decimal, identifier } = getCommonAssetInfo(assetString);\n return new AssetValue({ value: safeValue(value, decimal), decimal, identifier });\n }\n\n static loadStaticAssets() {\n return new Promise<{ ok: true } | { ok: false; message: string; error: any }>(\n (resolve, reject) => {\n try {\n import(\"@swapkit/tokens\").then((tokenPackages) => {\n for (const tokenList of Object.values(tokenPackages)) {\n for (const { identifier, chain, ...rest } of tokenList.tokens) {\n staticTokensMap.set(identifier.toUpperCase() as TokenNames, {\n identifier,\n decimal: \"decimals\" in rest ? rest.decimals : BaseDecimal[chain as Chain],\n });\n }\n }\n\n resolve({ ok: true });\n });\n } catch (error) {\n console.error(error);\n reject({\n ok: false,\n error,\n message:\n \"Couldn't load static assets. Ensure you have installed @swapkit/tokens package\",\n });\n }\n },\n );\n }\n}\n\nexport function getMinAmountByChain(chain: Chain) {\n const asset = AssetValue.fromChainOrSignature(chain);\n\n switch (chain) {\n case Chain.Bitcoin:\n case Chain.Litecoin:\n case Chain.BitcoinCash:\n return asset.set(0.00010001);\n\n case Chain.Dogecoin:\n return asset.set(1.00000001);\n\n case Chain.Avalanche:\n case Chain.Ethereum:\n return asset.set(0.00000001);\n\n case Chain.THORChain:\n case Chain.Maya:\n return asset.set(0);\n\n case Chain.Cosmos:\n return asset.set(0.000001);\n\n default:\n return asset.set(0.00000001);\n }\n}\n\nasync function createAssetValue(identifier: string, value: NumberPrimitives = 0) {\n validateIdentifier(identifier);\n\n const staticToken = staticTokensMap.get(identifier.toUpperCase() as TokenNames);\n const decimal = staticToken?.decimal || (await getDecimal(getAssetInfo(identifier)));\n if (!staticToken) {\n staticTokensMap.set(identifier.toUpperCase() as TokenNames, { identifier, decimal });\n }\n\n return new AssetValue({ decimal, value: safeValue(value, decimal), identifier });\n}\n\nfunction createSyntheticAssetValue(identifier: string, value: NumberPrimitives = 0) {\n const [synthChain, symbol] =\n identifier.split(\".\")[0].toUpperCase() === Chain.THORChain\n ? identifier.split(\".\").slice(1).join().split(\"/\")\n : identifier.split(\"/\");\n\n if (!(synthChain && symbol)) throw new Error(\"Invalid asset identifier\");\n\n return new AssetValue({\n decimal: 8,\n value: safeValue(value, 8),\n identifier: `${Chain.THORChain}.${synthChain}/${symbol}`,\n });\n}\n\nfunction safeValue(value: NumberPrimitives, decimal: number) {\n return typeof value === \"bigint\"\n ? formatBigIntToSafeValue({ value, bigIntDecimal: decimal, decimal })\n : value;\n}\n\n// TODO refactor & split into smaller functions\nfunction getAssetInfo(identifier: string) {\n const isSynthetic = identifier.slice(0, 14).includes(\"/\");\n\n const [synthChain, synthSymbol] =\n identifier.split(\".\")[0].toUpperCase() === Chain.THORChain\n ? identifier.split(\".\").slice(1).join().split(\"/\")\n : identifier.split(\"/\");\n\n if (isSynthetic && !(synthChain && synthSymbol)) throw new Error(\"Invalid asset identifier\");\n\n const adjustedIdentifier =\n identifier.includes(\".\") && !isSynthetic ? identifier : `${Chain.THORChain}.${synthSymbol}`;\n\n const [chain, ...rest] = adjustedIdentifier.split(\".\") as [Chain, string];\n const [ticker, address] = (isSynthetic ? synthSymbol : rest.join(\".\")).split(\"-\") as [\n string,\n string?,\n ];\n const symbol = isSynthetic ? synthSymbol : rest.join(\".\");\n\n return {\n address: address?.toLowerCase(),\n chain,\n isGasAsset: isGasAsset({ chain, symbol }),\n isSynthetic,\n symbol:\n (isSynthetic ? `${synthChain}/` : \"\") +\n (address ? `${ticker}-${address?.toLowerCase() ?? \"\"}` : symbol),\n ticker,\n };\n}\n","const errorMessages = {\n /**\n * Core\n */\n core_wallet_connection_not_found: 10001,\n core_estimated_max_spendable_chain_not_supported: 10002,\n core_extend_error: 10003,\n core_inbound_data_not_found: 10004,\n core_approve_asset_address_or_from_not_found: 10005,\n core_chain_halted: 10099,\n /**\n * Core - Wallet Connection\n */\n core_wallet_xdefi_not_installed: 10101,\n core_wallet_evmwallet_not_installed: 10102,\n core_wallet_walletconnect_not_installed: 10103,\n core_wallet_keystore_not_installed: 10104,\n core_wallet_ledger_not_installed: 10105,\n core_wallet_trezor_not_installed: 10106,\n core_wallet_keplr_not_installed: 10107,\n core_wallet_okx_not_installed: 10108,\n core_wallet_keepkey_not_installed: 10109,\n /**\n * Core - Swap\n */\n core_swap_invalid_params: 10200,\n core_swap_route_not_complete: 10201,\n core_swap_asset_not_recognized: 10202,\n core_swap_contract_not_found: 10203,\n core_swap_route_transaction_not_found: 10204,\n core_swap_contract_not_supported: 10205,\n core_swap_transaction_error: 10206,\n core_swap_quote_mode_not_supported: 10207,\n core_swap_provider_not_found: 10208,\n /**\n * Core - Transaction\n */\n core_transaction_deposit_error: 10301,\n core_transaction_create_liquidity_rune_error: 10302,\n core_transaction_create_liquidity_asset_error: 10303,\n core_transaction_create_liquidity_invalid_params: 10304,\n core_transaction_add_liquidity_invalid_params: 10305,\n core_transaction_add_liquidity_no_rune_address: 10306,\n core_transaction_add_liquidity_rune_error: 10307,\n core_transaction_add_liquidity_asset_error: 10308,\n core_transaction_withdraw_error: 10309,\n core_transaction_deposit_to_pool_error: 10310,\n core_transaction_deposit_insufficient_funds_error: 10311,\n core_transaction_deposit_gas_error: 10312,\n core_transaction_invalid_sender_address: 10313,\n core_transaction_deposit_server_error: 10314,\n core_transaction_user_rejected: 10315,\n\n /**\n * Wallets\n */\n wallet_ledger_connection_error: 20001,\n wallet_ledger_connection_claimed: 20002,\n wallet_ledger_get_address_error: 20003,\n wallet_ledger_device_not_found: 20004,\n wallet_ledger_device_locked: 20005,\n\n /**\n * Chainflip\n */\n chainflip_channel_error: 30001,\n chainflip_broker_recipient_error: 30002,\n\n /**\n * THORChain\n */\n\n /**\n * Helpers\n */\n helpers_number_different_decimals: 99101,\n} as const;\n\nexport type ErrorKeys = keyof typeof errorMessages;\n\nexport class SwapKitError extends Error {\n constructor(errorKey: ErrorKeys, sourceError?: any) {\n if (sourceError) {\n console.error(sourceError, {\n stack: sourceError?.stack,\n message: sourceError?.message,\n });\n }\n\n super(errorKey, {\n cause: { code: errorMessages[errorKey], message: errorKey },\n });\n Object.setPrototypeOf(this, SwapKitError.prototype);\n }\n}\n"],"names":["C","t","b","O","d","m","v","E","e","s","g","o","n","a","i","N","A","_","P","D","q","L","U","x","k","V","S","H","j","F","G","M","X","W","w","$","K","J","z","T","h","u","p","R","I","f","c","B","y","st","l","Q","ot","Y","Z","tt","getDecimalMethodHex","getContractDecimals","chain","to","result","RequestClient","ChainToRPC","error","BaseDecimal","getETHAssetDecimal","symbol","Chain","address","getAVAXAssetDecimal","getBSCAssetDecimal","getDecimal","gasFeeMultiplier","FeeOption","isGasAsset","getCommonAssetInfo","assetString","getAssetType","assetFromString","symbolArray","synth","ticker","_a","potentialScamRegex","evmAssetHasAddress","EVMChains","filterAssets","tokens","value","getAsymmetricRuneShare","liquidityUnits","poolUnits","runeDepth","toTCSwapKitNumber","part1","part2","part3","part4","part5","getAsymmetricAssetShare","assetDepth","numerator","getAsymmetricRuneWithdrawAmount","percent","getAsymmetricAssetWithdrawAmount","SwapKitNumber","getSymmetricPoolShare","getSymmetricWithdraw","name","getEstimatedPoolShare","runeAmount","assetAmount","runeAddAmount","assetAddAmount","rA","aR","ra","RA","denominator","liquidityUnitsAfterAdd","estimatedLiquidityUnits","newPoolUnits","getLiquiditySlippage","getMemoFor","memoType","options","MemoType","unbondAmount","owner","singleSide","basisPoints","targetAssetString","shortenedSymbol","target","asset","getTHORNameCost","year","validateTHORName","regex","derivationPathToString","network","chainId","account","change","index","supportedChains","validateIdentifier","identifier","uppercasedIdentifier","synthChain","DEFAULT_DECIMAL","toMultiplier","decimal","decimalFromMultiplier","multiplier","formatBigIntToSafeValue","bigIntDecimal","isNegative","valueString","padLength","decimalIndex","decimalString","_BigIntArithmetics","params","__privateAdd","_arithmetics","_comparison","_setValue","_retrievePrecisionDecimal","_toBigInt","__publicField","getStringValue","isComplex","getFloatDecimals","toSafeValue","__privateMethod","setValue_fn","from","args","arithmetics_fn","comparison_fn","type","divisor","baseValue","stringValue","safeValue","toBigInt_fn","significantDigits","int","dec","integer","trimmedDecimal","slicedDecimal","fixedDigits","digits","abbreviations","tier","suffix","scale","currency","currencyPosition","decimalSeparator","thousandSeparator","parsedValue","decimalToUseForConversion","parsedValueString","method","precisionDecimal","retrievePrecisionDecimal_fn","precisionDecimalMultiplier","acc","arg","compareToValue","decimals","padDecimal","integerPart","decimalPart","BigIntArithmetics","numberFormatter","splitValue","param","staticTokensMap","AssetValue","tax","assetInfo","getAssetInfo","ChainToChainId","urlAsset","createAssetValue","isSynthetic","tokenInfo","createSyntheticAssetValue","baseDecimal","shiftedAmount","resolve","reject","tokenPackages","tokenList","rest","getMinAmountByChain","staticToken","synthSymbol","adjustedIdentifier","errorMessages","SwapKitError","errorKey","sourceError"],"mappings":"88BAAA,IAAIA,GAAsBC,IAAOA,EAAE,SAAW,MAAOA,EAAE,UAAY,OAAQA,EAAE,QAAU,MAAOA,EAAE,kBAAoB,MAAOA,EAAE,QAAU,MAAOA,EAAE,YAAc,MAAOA,EAAE,OAAS,OAAQA,EAAE,KAAO,OAAQA,EAAE,SAAW,OAAQA,EAAE,SAAW,MAAOA,EAAE,OAAS,OAAQA,EAAE,SAAW,MAAOA,EAAE,KAAO,OAAQA,EAAE,SAAW,KAAMA,EAAE,SAAW,MAAOA,EAAE,UAAY,OAAQA,EAAE,QAAU,QAASA,EAAE,UAAY,OAAQA,IAAID,GAAK,CAAA,CAAE,EAAGE,IAAsBD,IAAOA,EAAE,SAAW,QAASA,EAAE,YAAc,SAAUA,EAAE,UAAY,QAASA,EAAE,aAAe,SAAUA,EAAE,QAAU,uBAAwBA,EAAE,kBAAoB,KAAMA,EAAE,qBAAuB,OAAQA,EAAE,QAAU,UAAWA,EAAE,YAAc,cAAeA,EAAE,UAAY,YAAaA,EAAE,OAAS,cAAeA,EAAE,KAAO,OAAQA,EAAE,SAAW,WAAYA,EAAE,OAAS,UAAWA,EAAE,SAAW,IAAKA,EAAE,YAAc,MAAOA,EAAE,SAAW,WAAYA,EAAE,KAAO,uBAAwBA,EAAE,aAAe,wBAAyBA,EAAE,SAAW,KAAMA,EAAE,YAAc,MAAOA,EAAE,SAAW,WAAYA,EAAE,QAAU,MAAOA,EAAE,WAAa,OAAQA,EAAE,UAAY,uBAAwBA,EAAE,kBAAoB,wBAAyBA,IAAIC,IAAK,CAAA,CAAE,EAAGC,IAAsBF,IAAOA,EAAE,SAAW,+BAAgCA,EAAE,UAAY,+CAAgDA,EAAE,QAAU,GAAIA,EAAE,kBAAoB,mCAAoCA,EAAE,QAAU,2CAA4CA,EAAE,YAAc,gDAAiDA,EAAE,UAAY,qCAAsCA,EAAE,OAAS,8CAA+CA,EAAE,KAAO,wCAAyCA,EAAE,SAAW,4CAA6CA,EAAE,SAAW,4CAA6CA,EAAE,OAAS,uCAAwCA,EAAE,SAAW,4CAA6CA,EAAE,KAAO,oCAAqCA,EAAE,aAAe,6CAA8CA,EAAE,SAAW,8BAA+BA,EAAE,SAAW,wBAAyBA,EAAE,QAAU,0BAA2BA,EAAE,UAAY,2BAA4BA,EAAE,kBAAoB,sCAAuCA,IAAIE,IAAK,CAAE,CAAA,EAAGC,GAAsBH,IAAOA,EAAE,OAAS,+CAAgDA,EAAE,OAAS,uCAAwCA,EAAE,gBAAkB,kCAAmCA,EAAE,iBAAmB,2CAA4CA,EAAE,gBAAkB,gCAAiCA,EAAE,iBAAmB,2CAA4CA,EAAE,YAAc,2BAA4BA,EAAE,eAAiB,8BAA+BA,IAAIG,GAAK,CAAE,CAAA,EACjpF,MAAMC,EAAI,OAAO,OAAOL,CAAC,EAAGM,GAAI,OAAO,KAAKN,CAAC,EAAGO,GAAIF,EAAE,OACpD,CAACJ,EAAGO,IAAM,CACR,MAAMC,EAAIH,GAAE,KAAM,GAAMN,EAAE,CAAC,IAAMQ,CAAC,EAClC,OAAOC,IAAMR,EAAEO,CAAC,EAAIC,GAAIR,CACzB,EACD,CAAE,CACJ,EACAI,EAAE,OACA,CAACJ,EAAGO,KAAOP,EAAEO,CAAC,EAAIN,GAAEK,GAAEC,CAAC,CAAC,EAAGP,GAC3B,CAAE,CACJ,EACAI,EAAE,OACA,CAACJ,EAAGO,KAAOP,EAAEO,CAAC,EAAIL,GAAEI,GAAEC,CAAC,CAAC,EAAGP,GAC3B,CAAE,CACJ,EACAI,EAAE,OACA,CAACJ,EAAGO,IAAM,CACR,MAAMC,EAAI,GAAGF,GAAEC,CAAC,CAAC,MACjB,OAAOP,EAAEO,CAAC,EAAIN,GAAEO,CAAC,EAAGR,CACrB,EACD,CAAE,CACJ,EACA,MAAMS,WAAU,KAAM,CACpB,YAAYF,EAAGC,EAAG,EAAG,CACnB,MAAME,EAAIH,EAAE,QAAUA,EAAE,SAAW,EAAIA,EAAE,OAAS,GAAII,EAAIJ,EAAE,YAAc,GAAIK,EAAI,GAAGF,CAAC,IAAIC,CAAC,GAAG,KAAI,EAAIE,EAAID,EAAI,eAAeA,CAAC,GAAK,mBACnI,MAAM,uBAAuBC,CAAC,EAAE,EAAG,OAAO,eAAe,KAAM,WAAY,CACzE,WAAY,GACZ,aAAc,GACd,SAAU,GACV,MAAO,MACR,CAAA,EAAG,OAAO,eAAe,KAAM,UAAW,CACzC,WAAY,GACZ,aAAc,GACd,SAAU,GACV,MAAO,MACR,CAAA,EAAG,OAAO,eAAe,KAAM,UAAW,CACzC,WAAY,GACZ,aAAc,GACd,SAAU,GACV,MAAO,MACR,CAAA,EAAG,KAAK,KAAO,YAAa,KAAK,SAAWN,EAAG,KAAK,QAAUC,EAAG,KAAK,QAAU,CAClF,CACH,CACA,MAAMM,WAAU,KAAM,CACpB,YAAYP,EAAG,CACb,MAAM,mBAAmB,EAAG,OAAO,eAAe,KAAM,UAAW,CACjE,WAAY,GACZ,aAAc,GACd,SAAU,GACV,MAAO,MACb,CAAK,EAAG,KAAK,KAAO,eAAgB,KAAK,QAAUA,CAChD,CACH,CACA,MAAMQ,EAAKf,GAAMA,IAAM,MAAQ,OAAOA,GAAK,SAAUgB,EAAI,IAAIhB,IAAM,CACjE,UAAWO,KAAKP,EACd,IAAK,CAACe,EAAER,CAAC,GAAK,MAAM,QAAQA,CAAC,IAAMA,IAAM,OACvC,MAAM,IAAI,UAAU,0CAA0C,EAClE,OAAOU,GAAE,CAAA,EAAI,GAAGjB,CAAC,CACnB,EAAGkB,GAAI,CAAClB,EAAI,CAAA,EAAIO,EAAI,CAAA,IAAO,CACzB,MAAMC,EAAI,IAAI,WAAW,QAAQR,CAAC,EAAG,EAAIO,aAAa,WAAW,QAASG,EAAI,IAAI,WAAW,QAAQH,CAAC,EACtG,SAAW,CAACI,EAAGC,CAAC,IAAKF,EAAE,QAAS,EAC9B,GAAKE,IAAM,aAAeA,IAAM,OAASJ,EAAE,OAAOG,CAAC,EAAIH,EAAE,IAAIG,EAAGC,CAAC,EACnE,OAAOJ,CACT,EAAGS,GAAI,IAAIjB,IAAM,CACf,IAAIO,EAAI,CAAA,EAAIC,EAAI,GAChB,UAAW,KAAKR,EACd,GAAI,MAAM,QAAQ,CAAC,EACjB,MAAM,QAAQO,CAAC,IAAMA,EAAI,CAAA,GAAKA,EAAI,CAAC,GAAGA,EAAG,GAAG,CAAC,UACtCQ,EAAE,CAAC,EAAG,CACb,OAAS,CAACL,EAAGC,CAAC,IAAK,OAAO,QAAQ,CAAC,EACjCI,EAAEJ,CAAC,GAAKD,KAAKH,IAAMI,EAAIM,GAAEV,EAAEG,CAAC,EAAGC,CAAC,GAAIJ,EAAI,CAAE,GAAGA,EAAG,CAACG,CAAC,EAAGC,GACvDI,EAAE,EAAE,OAAO,IAAMP,EAAIU,GAAEV,EAAG,EAAE,OAAO,EAAGD,EAAE,QAAUC,EACnD,CACH,OAAOD,CACT,EAAGY,IAAK,IAAM,CACZ,IAAInB,EAAI,GAAIO,EAAI,GAChB,MAAMC,EAAI,OAAO,WAAW,gBAAkB,WAAY,EAAI,OAAO,WAAW,SAAW,WAC3F,OAAOA,GAAK,IAAMD,EAAI,IAAI,WAAW,QAAQ,wBAAyB,CACpE,KAAM,IAAI,WAAW,eACrB,OAAQ,OAER,IAAI,QAAS,CACX,OAAOP,EAAI,GAAI,MAChB,CACL,CAAG,EAAE,QAAQ,IAAI,cAAc,GAAIA,GAAK,CAACO,CACzC,GAAC,EAAKa,GAAI,OAAO,WAAW,iBAAmB,WAAYC,GAAI,OAAO,WAAW,gBAAkB,WAAYC,GAAI,OAAO,WAAW,UAAY,WAAYC,GAAI,CAAC,MAAO,OAAQ,MAAO,QAAS,OAAQ,QAAQ,EAAGC,GAAI,CACtN,KAAM,mBACN,KAAM,SACN,SAAU,sBACV,YAAa,MACb,KAAM,KACR,EAAGC,EAAI,WAAYC,GAAI,OAAO,MAAM,EAAGC,GAAI,CACzC,KAAM,GACN,UAAW,GACX,aAAc,GACd,UAAW,GACX,MAAO,GACP,QAAS,GACT,MAAO,GACP,gBAAiB,GACjB,mBAAoB,GACpB,MAAO,EACT,EAAGC,GAAI,CACL,OAAQ,GACR,QAAS,GACT,KAAM,GACN,KAAM,GACN,YAAa,GACb,MAAO,GACP,SAAU,GACV,SAAU,GACV,eAAgB,GAChB,UAAW,GACX,UAAW,GACX,OAAQ,GACR,OAAQ,GACR,WAAY,GACZ,OAAQ,EACV,EAAGC,GAAK7B,GAAMuB,GAAE,SAASvB,CAAC,EAAIA,EAAE,YAAW,EAAKA,EAAG8B,GAAI,CAAC,MAAO,MAAO,OAAQ,SAAU,UAAW,OAAO,EAAGC,GAAI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EAAGC,GAAI,CAAC,IAAK,IAAK,GAAG,EAAGC,GAAI,CAC7K,MAAO,EACP,QAASH,GACT,YAAaC,GACb,iBAAkBC,GAClB,cAAe,OAAO,kBACtB,aAAc,OAAO,kBACrB,MAAQhC,GAAM,GAAM,IAAMA,EAAI,GAAK,GACrC,EAAGkC,GAAI,CAAClC,EAAI,KAAO,CACjB,GAAI,OAAOA,GAAK,SACd,MAAO,CACL,GAAGiC,GACH,MAAOjC,CACb,EACE,GAAIA,EAAE,SAAW,CAAC,MAAM,QAAQA,EAAE,OAAO,EACvC,MAAM,IAAI,MAAM,gCAAgC,EAClD,GAAIA,EAAE,aAAe,CAAC,MAAM,QAAQA,EAAE,WAAW,EAC/C,MAAM,IAAI,MAAM,oCAAoC,EACtD,MAAO,CACL,GAAGiC,GACH,GAAGjC,EACH,iBAAkBgC,EACtB,CACA,EACA,eAAeG,GAAEnC,EAAGO,EAAGC,EAAG,EAAG,CAC3B,OAAO,IAAI,QAAQ,CAACE,EAAGC,IAAM,CAC3B,MAAMC,EAAI,WAAW,IAAM,CACzBJ,GAAKA,EAAE,MAAO,EAAEG,EAAE,IAAIG,GAAEd,CAAC,CAAC,CAChC,EAAO,EAAE,OAAO,EACZ,EAAE,MAAMA,EAAGO,CAAC,EAAE,KAAKG,CAAC,EAAE,MAAMC,CAAC,EAAE,KAAK,IAAM,CACxC,aAAaC,CAAC,CACpB,CAAK,CACL,CAAG,CACH,CACA,eAAewB,GAAEpC,EAAG,CAAE,OAAQO,CAAC,EAAI,CACjC,OAAO,IAAI,QAAQ,CAACC,EAAG,IAAM,CAC3BD,IAAMA,EAAE,eAAgB,EAAEA,EAAE,iBAAiB,QAASG,EAAG,CAAE,KAAM,EAAE,CAAE,GACrE,SAASA,GAAI,CACX,aAAaC,CAAC,EAAG,EAAEJ,EAAE,MAAM,CAC5B,CACD,MAAMI,EAAI,WAAW,IAAM,CACzBJ,GAAK,MAAQA,EAAE,oBAAoB,QAASG,CAAC,EAAGF,GACjD,EAAER,CAAC,CACR,CAAG,CACH,CACA,MAAMqC,GAAI,CAACrC,EAAGO,IAAM,CAClB,MAAMC,EAAI,CAAA,EACV,UAAW,KAAKD,EACd,EAAE,KAAKqB,KAAM,EAAE,KAAKD,KAAM,EAAE,KAAK3B,KAAOQ,EAAE,CAAC,EAAID,EAAE,CAAC,GACpD,OAAOC,CACT,EACA,MAAM8B,CAAE,CACN,OAAO,OAAO/B,EAAGC,EAAG,CAClB,MAAM,EAAI,IAAI8B,EAAE/B,EAAGC,CAAC,EAAGE,EAAI,SAAY,CACrC,GAAI,OAAO,EAAE,SAAS,SAAW,UAAY,EAAE,SAAS,QAAUe,EAChE,MAAM,IAAI,WAAW,iDAAiDA,CAAC,EAAE,EAC3E,MAAM,QAAQ,UACd,IAAIZ,EAAI,MAAM,EAAE,SAChB,UAAW0B,KAAK,EAAE,SAAS,MAAM,cAAe,CAC9C,MAAMC,EAAI,MAAMD,EAAE,EAAE,QAAS,EAAE,SAAU,EAAE,kBAAkB1B,EAAE,MAAK,CAAE,CAAC,EACvE2B,aAAa,WAAW,WAAa3B,EAAI2B,EAC1C,CACD,GAAI,EAAE,kBAAkB3B,CAAC,EAAG,CAACA,EAAE,IAAM,EAAE,SAAS,gBAAiB,CAC/D,IAAI0B,EAAI,IAAI9B,GAAEI,EAAG,EAAE,QAAS,EAAE,QAAQ,EACtC,UAAW2B,KAAK,EAAE,SAAS,MAAM,YAC/BD,EAAI,MAAMC,EAAED,CAAC,EACf,MAAMA,CACP,CACD,GAAI,EAAE,SAAS,mBAAoB,CACjC,GAAI,OAAO,EAAE,SAAS,oBAAsB,WAC1C,MAAM,IAAI,UAAU,oDAAoD,EAC1E,GAAI,CAAClB,GACH,MAAM,IAAI,MAAM,6EAA6E,EAC/F,OAAO,EAAE,QAAQR,EAAE,MAAO,EAAE,EAAE,SAAS,kBAAkB,CAC1D,CACD,OAAOA,CACb,EAAOD,EAAI,EAAE,SAAS,MAAM,QAAQ,SAAS,EAAE,QAAQ,OAAO,YAAa,CAAA,EAAI,EAAE,OAAOF,CAAC,EAAIA,IACzF,SAAW,CAACG,EAAG0B,CAAC,IAAK,OAAO,QAAQf,EAAC,EACnCZ,EAAEC,CAAC,EAAI,SAAY,CACjB,EAAE,QAAQ,QAAQ,IAAI,SAAU,EAAE,QAAQ,QAAQ,IAAI,QAAQ,GAAK0B,CAAC,EACpE,MAAME,GAAK,MAAM7B,GAAG,MAAK,EACzB,GAAIC,IAAM,OAAQ,CAChB,GAAI4B,EAAE,SAAW,MAAQ,MAAMA,EAAE,QAAQ,eAAe,aAAe,EACrE,MAAO,GACT,GAAIjC,EAAE,UACJ,OAAOA,EAAE,UAAU,MAAMiC,EAAE,KAAM,CAAA,CACpC,CACD,OAAOA,EAAE5B,CAAC,GAClB,EACI,OAAOD,CACR,CAED,YAAYL,EAAGC,EAAI,GAAI,CACrB,GAAI,OAAO,eAAe,KAAM,UAAW,CACzC,WAAY,GACZ,aAAc,GACd,SAAU,GACV,MAAO,MACR,CAAA,EAAG,OAAO,eAAe,KAAM,kBAAmB,CACjD,WAAY,GACZ,aAAc,GACd,SAAU,GACV,MAAO,MACR,CAAA,EAAG,OAAO,eAAe,KAAM,cAAe,CAC7C,WAAY,GACZ,aAAc,GACd,SAAU,GACV,MAAO,CACR,CAAA,EAAG,OAAO,eAAe,KAAM,SAAU,CACxC,WAAY,GACZ,aAAc,GACd,SAAU,GACV,MAAO,MACR,CAAA,EAAG,OAAO,eAAe,KAAM,WAAY,CAC1C,WAAY,GACZ,aAAc,GACd,SAAU,GACV,MAAO,MACR,CAAA,EAAG,KAAK,OAASD,EAAG,KAAK,SAAW,CAEnC,YAAa,KAAK,OAAO,aAAe,cACxC,GAAGC,EACH,QAASU,GAAE,KAAK,OAAO,QAASV,EAAE,OAAO,EACzC,MAAOS,GAAE,CACP,cAAe,CAAE,EACjB,YAAa,CAAE,EACf,YAAa,CAAE,EACf,cAAe,CAAE,CACzB,EAAST,EAAE,KAAK,EACV,OAAQqB,GAAErB,EAAE,QAAU,KAAK,OAAO,MAAM,EAExC,UAAW,OAAOA,EAAE,WAAa,EAAE,EACnC,MAAO0B,GAAE1B,EAAE,KAAK,EAChB,gBAAiBA,EAAE,kBAAoB,GACvC,QAASA,EAAE,SAAW,IACtB,MAAOA,EAAE,OAAS,WAAW,MAAM,KAAK,UAAU,CACnD,EAAE,OAAO,KAAK,QAAU,UAAY,EAAE,KAAK,kBAAkB,KAAO,KAAK,kBAAkB,WAAW,SACrG,MAAM,IAAI,UAAU,2CAA2C,EACjE,GAAI,KAAK,SAAS,WAAa,OAAO,KAAK,QAAU,SAAU,CAC7D,GAAI,KAAK,OAAO,WAAW,GAAG,EAC5B,MAAM,IAAI,MAAM,4DAA4D,EAC9E,KAAK,SAAS,UAAU,SAAS,GAAG,IAAM,KAAK,SAAS,WAAa,KAAM,KAAK,OAAS,KAAK,SAAS,UAAY,KAAK,MACzH,CACD,GAAIY,GAAG,CACL,GAAI,KAAK,gBAAkB,IAAI,WAAW,gBAAmB,KAAK,SAAS,OAAQ,CACjF,MAAM,EAAI,KAAK,SAAS,OACxB,KAAK,SAAS,OAAO,iBAAiB,QAAS,IAAM,CACnD,KAAK,gBAAgB,MAAM,EAAE,MAAM,CAC7C,CAAS,CACF,CACD,KAAK,SAAS,OAAS,KAAK,gBAAgB,MAC7C,CACD,GAAID,KAAM,KAAK,SAAS,OAAS,QAAS,KAAK,QAAU,IAAI,WAAW,QAAQ,KAAK,OAAQ,KAAK,QAAQ,EAAG,KAAK,SAAS,aAAc,CACvI,MAAMT,EAAI,KAAO,OAAO,KAAK,SAAS,cAAgB,SAAW,KAAK,SAAS,aAAa,QAAQ,MAAO,EAAE,EAAI,IAAI,gBAAgB,KAAK,SAAS,YAAY,EAAE,SAAU,GAAGC,EAAI,KAAK,QAAQ,IAAI,QAAQ,oBAAqBD,CAAC,GAChOY,IAAK,KAAK,SAAS,gBAAgB,WAAW,UAAY,KAAK,SAAS,gBAAgB,kBAAoB,EAAE,KAAK,SAAS,SAAW,KAAK,SAAS,QAAQ,cAAc,IAAM,KAAK,QAAQ,QAAQ,OAAO,cAAc,EAAG,KAAK,QAAU,IAAI,WAAW,QAAQ,IAAI,WAAW,QAAQX,EAAG,CAAE,GAAG,KAAK,QAAS,EAAG,KAAK,QAAQ,CACnU,CACD,KAAK,SAAS,OAAS,SAAW,KAAK,SAAS,KAAO,KAAK,UAAU,KAAK,SAAS,IAAI,EAAG,KAAK,QAAQ,QAAQ,IAAI,eAAgB,KAAK,SAAS,QAAQ,IAAI,cAAc,GAAK,kBAAkB,EAAG,KAAK,QAAU,IAAI,WAAW,QAAQ,KAAK,QAAS,CAAE,KAAM,KAAK,SAAS,IAAM,CAAA,EACvR,CACD,qBAAqBJ,EAAG,CACtB,GAAI,KAAK,cAAe,KAAK,aAAe,KAAK,SAAS,MAAM,OAAS,EAAEA,aAAaO,IAAI,CAC1F,GAAIP,aAAaE,GAAG,CAClB,GAAI,CAAC,KAAK,SAAS,MAAM,YAAY,SAASF,EAAE,SAAS,MAAM,EAC7D,MAAO,GACT,MAAM,EAAIA,EAAE,SAAS,QAAQ,IAAI,aAAa,EAC9C,GAAI,GAAK,KAAK,SAAS,MAAM,iBAAiB,SAASA,EAAE,SAAS,MAAM,EAAG,CACzE,IAAIG,EAAI,OAAO,CAAC,EAChB,OAAO,OAAO,MAAMA,CAAC,EAAIA,EAAI,KAAK,MAAM,CAAC,EAAI,KAAK,IAAG,EAAKA,GAAK,IAAK,KAAK,SAAS,MAAM,gBAAkB,QAAUA,EAAI,KAAK,SAAS,MAAM,cAAgB,EAAIA,CACjK,CACD,GAAIH,EAAE,SAAS,SAAW,IACxB,MAAO,EACV,CACD,MAAMC,EAAI,KAAK,SAAS,MAAM,MAAM,KAAK,WAAW,EACpD,OAAO,KAAK,IAAI,KAAK,SAAS,MAAM,aAAcA,CAAC,CACpD,CACD,MAAO,EACR,CACD,kBAAkBD,EAAG,CACnB,OAAO,KAAK,SAAS,YAAcA,EAAE,KAAO,SAAY,KAAK,SAAS,UAAU,MAAMA,EAAE,KAAI,CAAE,GAAIA,CACnG,CACD,MAAM,OAAOA,EAAG,CACd,GAAI,CACF,OAAO,MAAMA,EAAC,CACf,OAAQC,EAAG,CACV,MAAM,EAAI,KAAK,IAAI,KAAK,qBAAqBA,CAAC,EAAGiB,CAAC,EAClD,GAAI,IAAM,GAAK,KAAK,YAAc,EAAG,CACnC,MAAMW,GAAE,EAAG,CAAE,OAAQ,KAAK,SAAS,MAAM,CAAE,EAC3C,UAAW1B,KAAK,KAAK,SAAS,MAAM,YAClC,GAAI,MAAMA,EAAE,CACV,QAAS,KAAK,QACd,QAAS,KAAK,SACd,MAAOF,EACP,WAAY,KAAK,WAClB,CAAA,IAAMkB,GACL,OACJ,OAAO,KAAK,OAAOnB,CAAC,CACrB,CACD,MAAMC,CACP,CACF,CACD,MAAM,QAAS,CACb,UAAWA,KAAK,KAAK,SAAS,MAAM,cAAe,CACjD,MAAM,EAAI,MAAMA,EAAE,KAAK,QAAS,KAAK,QAAQ,EAC7C,GAAI,aAAa,QAAS,CACxB,KAAK,QAAU,EACf,KACD,CACD,GAAI,aAAa,SACf,OAAO,CACV,CACD,MAAMD,EAAI8B,GAAE,KAAK,QAAS,KAAK,QAAQ,EACvC,OAAO,KAAK,SAAS,UAAY,GAAK,KAAK,SAAS,MAAM,KAAK,QAAQ,MAAK,EAAI9B,CAAC,EAAI4B,GAAE,KAAK,QAAQ,MAAK,EAAI5B,EAAG,KAAK,gBAAiB,KAAK,QAAQ,CACpJ,CAED,QAAQA,EAAGC,EAAG,CACZ,MAAM,EAAI,OAAOD,EAAE,QAAQ,IAAI,gBAAgB,CAAC,GAAK,EACrD,IAAIG,EAAI,EACR,OAAOH,EAAE,SAAW,KAAOC,GAAKA,EAAE,CAAE,QAAS,EAAG,WAAY,EAAG,iBAAkBE,CAAG,EAAE,IAAI,UAAY,EAAG,IAAI,WAAW,SAAS,KAAM,CACrI,OAAQH,EAAE,OACV,WAAYA,EAAE,WACd,QAASA,EAAE,OACZ,CAAA,GAAK,IAAI,WAAW,SAAS,IAAI,WAAW,eAAe,CAC1D,MAAM,MAAMI,EAAG,CACb,MAAMC,EAAIL,EAAE,KAAK,UAAS,EAC1BC,GAAKA,EAAE,CAAE,QAAS,EAAG,iBAAkB,EAAG,WAAY,CAAC,EAAI,IAAI,UAAY,EAC3E,eAAeK,GAAI,CACjB,KAAM,CAAE,KAAM0B,EAAG,MAAO,CAAC,EAAK,MAAM3B,EAAE,OACtC,GAAI2B,EAAG,CACL5B,EAAE,MAAK,EACP,MACD,CACD,GAAIH,EAAG,CACLE,GAAK,EAAE,WACP,MAAM+B,EAAI,IAAM,EAAI,EAAI/B,EAAI,EAC5BF,EAAE,CAAE,QAASiC,EAAG,iBAAkB/B,EAAG,WAAY,GAAK,CAAC,CACxD,CACDC,EAAE,QAAQ,CAAC,EAAG,MAAME,EAAC,CACtB,CACD,MAAMA,EAAC,CACR,CACP,CAAK,EAAG,CACF,OAAQN,EAAE,OACV,WAAYA,EAAE,WACd,QAASA,EAAE,OACjB,CAAK,CACF,CACH,CACA,kCACA,MAAMmC,EAAK1C,GAAM,CACf,MAAMO,EAAI,CAACC,EAAG,IAAM8B,EAAE,OAAO9B,EAAGQ,EAAEhB,EAAG,CAAC,CAAC,EACvC,UAAWQ,KAAKe,GACdhB,EAAEC,CAAC,EAAI,CAAC,EAAGE,IAAM4B,EAAE,OAAO,EAAGtB,EAAEhB,EAAGU,EAAG,CAAE,OAAQF,CAAG,CAAA,CAAC,EACrD,OAAOD,EAAE,OAAUC,GAAMkC,EAAE1B,EAAER,CAAC,CAAC,EAAGD,EAAE,OAAUC,GAAMkC,EAAE1B,EAAEhB,EAAGQ,CAAC,CAAC,EAAGD,EAAE,KAAOmB,GAAGnB,CAC9E,EAAGoC,GAAID,IACP,IAAIE,EACC,MAACC,EAAI,CACR,aAAc,GAAG1C,EAAE,WAAW,0BAC9B,SAAU,GAAGA,EAAE,WAAW,mCAC1B,MAAO,GAAGA,EAAE,WAAW,2BACvB,IAAK,GAAGA,EAAE,WAAW,mBACrB,mBAAoB,GAAGA,EAAE,WAAW,uBACpC,UAAW,GAAGA,EAAE,cAAc,cAC9B,SAAU,GAAGA,EAAE,WAAW,WAC5B,EAAG2C,GAAI,OAAO,OAAS,IAAM,CAAA,EAAK,CAAE,SAAU,0BAA2B,QAAS,yBAA2B,EAAEC,GAAI,IAAMH,IAAMA,EAAID,GAAE,OAAO,CAAE,QAASG,EAAC,CAAE,EAAGF,GAAII,GAAK,CAAC,CAAE,OAAQhD,EAAG,GAAGO,CAAC,IAAO,CAC7LqC,EAAID,GAAE,OAAO,CACX,GAAGpC,EACH,QAAS,CAAE,GAAGuC,GAAG,GAAGvC,EAAE,QAAS,YAAaP,CAAG,CACnD,CAAG,CACH,EAAGiD,EAAI,CACL,IAAK,CAACjD,EAAGO,IAAMwC,GAAC,EAAG,IAAI/C,EAAGO,CAAC,EAAE,KAAM,EACnC,KAAM,CAACP,EAAGO,IAAMwC,GAAC,EAAG,KAAK/C,EAAGO,CAAC,EAAE,KAAM,CACvC,EAAG2C,GAAI,CAAC,CAAE,OAAQlD,EAAG,GAAGO,KAAQ,CAC9B,MAAMC,EAAI,IAAI,gBAAmB,EAAIR,EAAE,OACrC,CAACU,EAAGC,EAAGC,IAAMA,EAAE,UAAWC,GAAMA,IAAMH,CAAC,IAAMC,CACjD,EACE,UAAWD,KAAK,EACdF,EAAE,OAAO,SAAU,KAAK,UAAUE,CAAC,CAAC,EACtC,OAAOH,EAAE,UAAYC,EAAE,OAAO,WAAY,MAAM,EAAGD,EAAE,QAAUC,EAAE,OAAO,SAAU,MAAM,EAAGD,EAAE,WAAaC,EAAE,OAAO,YAAa,MAAM,EAAGyC,EAAE,KAAKJ,EAAE,aAAc,CAC9J,KAAMrC,EAAE,SAAU,EAClB,QAAS,CAAE,eAAgB,mCAAqC,CACpE,CAAG,CACH,EAAG2C,GAAK,CACN,gBAAiBD,GACjB,SAAWlD,GAAMiD,EAAE,IAAIJ,EAAE,MAAO,CAAE,aAAc7C,EAAG,EACnD,YAAa,IAAMiD,EAAE,IAAIJ,EAAE,QAAQ,EACnC,cAAgB7C,GAAMiD,EAAE,IAAIJ,EAAE,IAAK,CAAE,aAAc7C,EAAG,EACtD,sBAAuB,IAAMiD,EAAE,IAAIJ,EAAE,kBAAkB,EACvD,aAAe7C,GAAMiD,EAAE,IAAI,GAAGJ,EAAE,SAAS,IAAI7C,CAAC,OAAO,EACrD,qBAAuBA,GAAMiD,EAAE,IAAI,GAAGJ,EAAE,QAAQ,IAAI7C,CAAC,EAAE,EACvD,4BAA8BA,GAAMiD,EAAE,IAAI,GAAGJ,EAAE,QAAQ,WAAW7C,CAAC,EAAE,EACrE,mBAAoB,CAACA,EAAGO,IAAM0C,EAAE,IAAI,GAAGJ,EAAE,QAAQ,WAAY,CAAE,aAAc,CAAE,QAAS7C,EAAG,MAAOO,CAAC,EAAI,CACzG,EACG,IAAC6C,IAAsBpD,IAAOA,EAAE,cAAgB,aAAcA,EAAE,eAAiB,gBAAiBA,EAAE,eAAiB,gBAAiBA,EAAE,gBAAkB,mBAAoBA,EAAE,gBAAkB,eAAgBA,EAAE,gBAAkB,eAAgBA,EAAE,kBAAoB,iBAAkBA,EAAE,iBAAmB,gBAAiBA,EAAE,iBAAmB,gBAAiBA,EAAE,gBAAkB,eAAgBA,EAAE,gBAAkB,eAAgBA,EAAE,eAAiB,cAAeA,EAAE,eAAiB,cAAeA,EAAE,eAAiB,cAAeA,EAAE,eAAiB,cAAeA,EAAE,eAAiB,cAAeA,EAAE,eAAiB,cAAeA,EAAE,eAAiB,cAAeA,EAAE,eAAiB,cAAeA,EAAE,gBAAkB,eAAgBA,EAAE,gBAAkB,eAAgBA,EAAE,UAAY,YAAaA,EAAE,YAAc,cAAeA,EAAE,WAAa,aAAcA,EAAE,QAAU,UAAWA,EAAE,UAAY,YAAaA,EAAE,UAAY,kBAAmBA,EAAE,eAAiB,cAAeA,EAAE,cAAgB,gBAAiBA,EAAE,cAAgB,gBAAiBA,EAAE,cAAgB,gBAAiBA,EAAE,eAAiB,gBAAiBA,EAAE,oBAAsB,qBAAsBA,EAAE,gBAAkB,iBAAkBA,EAAE,iBAAmB,kBAAmBA,EAAE,aAAe,eAAgBA,EAAE,WAAa,aAAcA,EAAE,mBAAqB,kBAAmBA,EAAE,qBAAuB,mBAAoBA,EAAE,cAAgB,gBAAiBA,EAAE,YAAc,cAAeA,EAAE,oBAAsB,mBAAoBA,EAAE,sBAAwB,oBAAqBA,EAAE,aAAe,eAAgBA,EAAE,WAAa,aAAcA,EAAE,mBAAqB,kBAAmBA,EAAE,qBAAuB,mBAAoBA,EAAE,SAAW,WAAYA,EAAE,OAAS,SAAUA,EAAE,eAAiB,cAAeA,EAAE,iBAAmB,eAAgBA,EAAE,YAAc,cAAeA,EAAE,WAAa,aAAcA,IAAIoD,IAAK,EAAE,EAAGC,IAAsBrD,IAAOA,EAAE,QAAU,UAAWA,EAAE,QAAU,UAAWA,EAAE,UAAY,YAAaA,EAAE,SAAW,WAAYA,EAAE,SAAW,WAAYA,EAAE,MAAQ,QAASA,EAAE,QAAU,UAAWA,EAAE,YAAc,cAAeA,EAAE,UAAY,YAAaA,EAAE,iBAAmB,mBAAoBA,EAAE,UAAY,YAAaA,IAAIqD,IAAK,CAAE,CAAA,EAAGC,IAAuBtD,IAAOA,EAAEA,EAAE,YAAc,CAAC,EAAI,cAAeA,EAAEA,EAAE,QAAU,CAAC,EAAI,UAAWA,EAAEA,EAAE,SAAW,CAAC,EAAI,WAAYA,IAAIsD,IAAM,CAAE,CAAA,ECtZp0E,MAAMC,GAAsB,aAStBC,GAAsB,MAAO,CAAE,MAAAC,EAAO,GAAAC,KAA0C,CAChF,GAAA,CACI,KAAA,CAAE,OAAAC,GAAW,MAAMC,EAAc,KAAyBC,EAAAA,WAAWJ,CAAK,EAAG,CACjF,QAAS,CACP,OAAQ,MACR,eAAgB,mBAChB,gBAAiB,UACnB,EACA,KAAM,KAAK,UAAU,CACnB,GAAI,GACJ,QAAS,MACT,OAAQ,WACR,OAAQ,CAAC,CAAE,GAAIC,EAAG,cAAe,KAAMH,EAAoB,EAAG,QAAQ,CAAA,CACvE,CAAA,CACF,EAED,OAAO,SAAS,OAAOI,CAAM,EAAE,SAAU,CAAA,QAClCG,EAAO,CACd,eAAQ,MAAMA,CAAK,EACZC,EAAAA,YAAYN,CAAK,CAC1B,CACF,EAEMO,GAAsBC,GAAmB,CAC7C,GAAIA,IAAWC,EAAAA,MAAM,SAAU,OAAOH,EAAAA,YAAY,IAClD,KAAM,CAAG,CAAAI,CAAO,EAAIF,EAAO,MAAM,GAAG,EAEpC,OAAOE,GAAA,MAAAA,EAAS,WAAW,MACvBX,GAAoB,CAAE,MAAOU,QAAM,SAAU,GAAIC,CAAS,CAAA,EAC1DJ,EAAAA,YAAY,GAClB,EAEMK,GAAuBH,GAAmB,CAC9C,KAAM,CAAG,CAAAE,CAAO,EAAIF,EAAO,MAAM,GAAG,EAEpC,OAAOE,GAAA,MAAAA,EAAS,WAAW,MACvBX,GAAoB,CAAE,MAAOU,EAAAA,MAAM,UAAW,GAAIC,EAAQ,YAAc,CAAA,CAAC,EACzEJ,EAAY,YAAA,IAClB,EAEMM,GAAsBJ,IACtBA,IAAWC,EAAAA,MAAM,kBAA0BH,EAAAA,YAAY,KAKhDO,GAAa,CAAC,CAAE,MAAAb,EAAO,OAAAQ,KAA+C,CACjF,OAAQR,EAAO,CACb,KAAKS,EAAM,MAAA,SACT,OAAOF,GAAmBC,CAAM,EAClC,KAAKC,EAAM,MAAA,UACT,OAAOE,GAAoBH,CAAM,EACnC,KAAKC,EAAM,MAAA,kBACT,OAAOG,GAAmBJ,CAAM,EAClC,QACE,OAAOF,EAAAA,YAAYN,CAAK,CAC5B,CACF,EAEac,GAA8C,CACzD,CAACC,EAAAA,UAAU,OAAO,EAAG,IACrB,CAACA,EAAAA,UAAU,IAAI,EAAG,IAClB,CAACA,EAAAA,UAAU,OAAO,EAAG,CACvB,EAEaC,GAAa,CAAC,CAAE,MAAAhB,EAAO,OAAAQ,KAA+C,CACjF,OAAQR,EAAO,CACb,KAAKS,EAAAA,MAAM,SACX,KAAKA,EAAM,MAAA,SACT,OAAOD,IAAW,MACpB,KAAKC,EAAM,MAAA,KACT,OAAOD,IAAW,QACpB,KAAKC,EAAM,MAAA,OACT,OAAOD,IAAW,OACpB,KAAKC,EAAM,MAAA,OACT,OAAOD,IAAW,OACpB,KAAKC,EAAM,MAAA,QACT,OAAOD,IAAW,QACpB,KAAKC,EAAM,MAAA,kBACT,OAAOD,IAAW,MACpB,KAAKC,EAAM,MAAA,UACT,OAAOD,IAAW,OAEpB,QACE,OAAOA,IAAWR,CACtB,CACF,EAEaiB,GACXC,GAC4C,CAC5C,OAAQA,EAAa,CACnB,IAAK,GAAGT,EAAAA,MAAM,QAAQ,QACpB,MAAO,CAAE,WAAY,sDAAuD,QAAS,EAAG,EAC1F,IAAK,GAAGA,EAAAA,MAAM,QAAQ,SACpB,MAAO,CAAE,WAAY,uDAAwD,QAAS,EAAG,EAE3F,KAAKA,EAAM,MAAA,OACT,MAAO,CAAE,WAAY,YAAa,QAASH,EAAA,YAAYY,CAAW,GACpE,KAAKT,EAAM,MAAA,UACT,MAAO,CAAE,WAAY,YAAa,QAASH,EAAA,YAAYY,CAAW,GACpE,KAAKT,EAAM,MAAA,kBACT,MAAO,CAAE,WAAY,UAAW,QAASH,EAAA,YAAYY,CAAW,GAClE,KAAKT,EAAM,MAAA,KACT,MAAO,CAAE,WAAY,aAAc,QAASH,cAAY,IAAK,EAC/D,IAAK,GAAGG,EAAAA,MAAM,IAAI,QAChB,MAAO,CAAE,WAAY,YAAa,QAAS,CAAE,EAE/C,IAAK,GAAGA,EAAAA,MAAM,MAAM,OAClB,MAAO,CAAE,WAAY,GAAGA,QAAM,MAAM,OAAQ,QAAS,GAEvD,QACS,MAAA,CAAE,WAAY,GAAGS,CAAW,IAAIA,CAAW,GAAI,QAASZ,cAAYY,CAAW,CAAE,CAC5F,CACF,EAGaC,GAAe,CAAC,CAAE,MAAAnB,EAAO,OAAAQ,KAA+C,CAC/E,GAAAA,EAAO,SAAS,GAAG,EAAU,MAAA,QAEjC,OAAQR,EAAO,CACb,KAAKS,EAAM,MAAA,OACF,OAAAD,IAAW,OAAS,SAAWC,EAAAA,MAAM,OAC9C,KAAKA,EAAM,MAAA,OACT,OAAOD,IAAWC,EAAAA,MAAM,OAAS,SAAWA,EAAAA,MAAM,OACpD,KAAKA,EAAM,MAAA,QACF,OAAAD,IAAWC,EAAM,MAAA,QAAU,SAAW,OAC/C,KAAKA,EAAM,MAAA,kBACF,OAAAD,IAAWC,EAAM,MAAA,QAAU,SAAW,QAC/C,KAAKA,EAAM,MAAA,SACF,OAAAD,IAAWC,EAAM,MAAA,SAAW,SAAW,QAChD,KAAKA,EAAM,MAAA,UACT,OAAOD,IAAWC,EAAAA,MAAM,UAAY,SAAWA,EAAAA,MAAM,UACvD,KAAKA,EAAM,MAAA,QACF,OAAAD,IAAWC,EAAM,MAAA,QAAU,SAAW,UAE/C,KAAKA,EAAM,MAAA,SACF,MAAA,CAACA,EAAAA,MAAM,SAAUA,QAAM,QAAQ,EAAE,SAASD,CAAe,EAAI,SAAW,WACjF,KAAKC,EAAM,MAAA,SACF,MAAA,CAACA,EAAAA,MAAM,SAAUA,QAAM,QAAQ,EAAE,SAASD,CAAe,EAAI,SAAW,WAEjF,QACS,MAAA,QACX,CACF,EAEaY,GAAmBF,GAAwB,OACtD,KAAM,CAAClB,EAAO,GAAGqB,CAAW,EAAIH,EAAY,MAAM,GAAG,EAC/CI,EAAQJ,EAAY,SAAS,GAAG,EAChCV,EAASa,EAAY,KAAK,GAAG,EAC7BE,GAASC,EAAAhB,GAAA,YAAAA,EAAQ,MAAM,OAAd,YAAAgB,EAAqB,GAEpC,MAAO,CAAE,MAAAxB,EAAO,OAAAQ,EAAQ,OAAAe,EAAQ,MAAAD,CAAM,CACxC,EAEMG,GAAqB,IAAI,OAC7B,qEACA,KACF,EAEMC,GAAsBR,GAAwB,CAClD,KAAM,CAAClB,EAAOQ,CAAM,EAAIU,EAAY,MAAM,GAAG,EACzC,GAAA,CAACS,EAAAA,UAAU,SAAS3B,CAAiB,EAAU,MAAA,GACnD,KAAM,CAAG,CAAAU,CAAO,EAAIF,EAAO,MAAM,GAAG,EAEpC,OAAOQ,GAAW,CAAE,MAAAhB,EAAuB,OAAAQ,EAAQ,GAAK,CAAC,CAACE,CAC5D,EAEakB,GACXC,GAOAA,EAAO,OAAO,CAAC,CAAE,MAAA7B,EAAO,MAAA8B,EAAO,OAAAtB,KAAa,CAC1C,MAAMU,EAAc,GAAGlB,CAAK,IAAIQ,CAAM,GAGpC,MAAA,CAACiB,GAAmB,KAAKP,CAAW,GAAKQ,GAAmBR,CAAW,GAAKY,IAAU,GAE1F,CAAC,ECxKI,SAASC,GAAuB,CACrC,eAAAC,EACA,UAAAC,EACA,UAAAC,CACF,EAAuC,CAC/B,MAAAnF,EAAIoF,EAAkBH,CAAc,EACpCnD,EAAIsD,EAAkBF,CAAS,EAC/B3E,EAAI6E,EAAkBD,CAAS,EAE/BE,EAAQrF,EAAE,IAAIO,CAAC,EACf+E,EAAQxD,EAAE,IAAIA,CAAC,EAAE,IAAI,CAAC,EACtByD,EAAQzD,EAAE,IAAI9B,CAAC,EAAE,IAAI,CAAC,EACtBwF,EAAQxF,EAAE,IAAIA,CAAC,EACfyF,EAAQ3D,EAAE,IAAIA,CAAC,EAAE,IAAIA,CAAC,EAIrB,OAFWuD,EAAM,IAAIC,EAAM,IAAIC,CAAK,EAAE,IAAIC,CAAK,CAAC,EAEtC,IAAIC,CAAK,CAC5B,CAEO,SAASC,GAAwB,CACtC,eAAAT,EACA,UAAAC,EACA,WAAAS,CACF,EAAwC,CAChC,MAAA3F,EAAIoF,EAAkBH,CAAc,EACpCnD,EAAIsD,EAAkBF,CAAS,EAC/B3E,EAAI6E,EAAkBO,CAAU,EAEhCN,EAAQrF,EAAE,IAAIO,CAAC,EACf+E,EAAQxD,EAAE,IAAIA,CAAC,EAAE,IAAI,CAAC,EACtByD,EAAQzD,EAAE,IAAI9B,CAAC,EAAE,IAAI,CAAC,EACtBwF,EAAQxF,EAAE,IAAIA,CAAC,EACf4F,EAAYP,EAAM,IAAIC,EAAM,IAAIC,CAAK,EAAE,IAAIC,CAAK,CAAC,EACjDC,EAAQ3D,EAAE,IAAIA,CAAC,EAAE,IAAIA,CAAC,EAErB,OAAA8D,EAAU,IAAIH,CAAK,CAC5B,CAEO,SAASI,GAAgC,CAC9C,QAAAC,EACA,UAAAX,EACA,eAAAF,EACA,UAAAC,CACF,EAAwD,CAC/C,OAAAF,GAAuB,CAAE,UAAAG,EAAW,eAAAF,EAAgB,UAAAC,EAAW,EAAE,IAAIY,CAAO,CACrF,CAEO,SAASC,GAAiC,CAC/C,QAAAD,EACA,WAAAH,EACA,eAAAV,EACA,UAAAC,CACF,EAAyD,CAChD,OAAAQ,GAAwB,CAAE,WAAAC,EAAY,eAAAV,EAAgB,UAAAC,EAAW,EAAE,IAAIY,CAAO,CACvF,CAEA,SAASV,EAAkBL,EAAe,CACxC,OAAOiB,EAAc,WAAW,OAAOjB,CAAK,EAAGxB,EAAAA,YAAY,IAAI,CACjE,CAEO,SAAS0C,GAAsB,CACpC,eAAAhB,EACA,UAAAC,EACA,UAAAC,EACA,WAAAQ,CACF,EAGI,CACK,MAAA,CACL,YAAaP,EAAkBO,CAAU,EAAE,IAAIV,CAAc,EAAE,IAAIC,CAAS,EAC5E,WAAYE,EAAkBD,CAAS,EAAE,IAAIF,CAAc,EAAE,IAAIC,CAAS,CAAA,CAE9E,CAEO,SAASgB,GAAqB,CACnC,eAAAjB,EACA,UAAAC,EACA,UAAAC,EACA,WAAAQ,EACA,QAAAG,CACF,EAII,CACF,OAAO,OAAO,YACZ,OAAO,QAAQG,GAAsB,CAAE,eAAAhB,EAAgB,UAAAC,EAAW,UAAAC,EAAW,WAAAQ,EAAY,CAAC,EAAE,IAC1F,CAAC,CAACQ,EAAMpB,CAAK,IAAM,CAACoB,EAAMpB,EAAM,IAAIe,CAAO,CAAC,CAC9C,CAAA,CAEJ,CAEO,SAASM,GAAsB,CACpC,UAAAjB,EACA,UAAAD,EACA,WAAAS,EACA,eAAAV,EACA,WAAAoB,EACA,YAAAC,CACF,EAKI,CACI,MAAApE,EAAI,IAAI8D,EAAc,CAAE,MAAOb,EAAW,QAAS,EAAG,EACtD5E,EAAI,IAAIyF,EAAc,CAAE,MAAOL,EAAY,QAAS,EAAG,EACvDlF,EAAI,IAAIuF,EAAc,CAAE,MAAOd,EAAW,QAAS,EAAG,EACtDqB,EAAgB,IAAIP,EAAc,CAAE,MAAOK,EAAY,QAAS,EAAG,EACnEG,EAAiB,IAAIR,EAAc,CAAE,MAAOM,EAAa,QAAS,EAAG,EAGrEG,EAAKF,EAAc,IAAIhG,CAAC,EACxBmG,GAAKF,EAAe,IAAItE,CAAC,EACzByE,GAAKJ,EAAc,IAAIC,CAAc,EACrCI,GAAK1E,EAAE,IAAI3B,CAAC,EACZqF,GAAYnF,EAAE,IAAIgG,EAAG,IAAIC,GAAG,IAAIC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAC3CE,GAAcJ,EAAG,IAAIC,GAAG,IAAIE,GAAG,IAAI,CAAC,CAAC,CAAC,EACtCE,GAAyBlB,GAAU,IAAIiB,EAAW,EAClDE,EAA0B3B,EAAkBH,CAAc,EAAE,IAAI6B,EAAsB,EAE5F,GAAIA,GAAuB,aAAa,QAAQ,IAAM,EACpD,OAAOC,EAAwB,IAAItG,CAAC,EAAE,aAAa,QAAQ,EAIvD,MAAAuG,GAAevG,EAAE,IAAIsG,CAAuB,EAElD,OAAOA,EAAwB,IAAIC,EAAY,EAAE,aAAa,QAAQ,CACxE,CAEO,SAASC,GAAqB,CACnC,WAAAZ,EACA,YAAAC,EACA,UAAAnB,EACA,WAAAQ,CACF,EAAe,CACb,GAAIU,IAAe,KAAOC,IAAgB,KAAOnB,IAAc,KAAOQ,IAAe,IAC5E,MAAA,GAEH,MAAAzD,EAAIkD,EAAkBD,CAAS,EAC/BrD,EAAIsD,EAAkBO,CAAU,EAChCa,EAAiBpB,EAAkBkB,CAAW,EAC9CC,EAAgBnB,EAAkBiB,CAAU,EAE5CT,EAAYY,EAAe,IAAItE,CAAC,EAAE,IAAIJ,EAAE,IAAIyE,CAAa,CAAC,EAC1DM,EAAc/E,EAAE,IAAIyE,CAAa,EAAE,IAAIrE,EAAE,IAAIJ,CAAC,CAAC,EAG9C,OAAA,KAAK,IAAI8D,EAAU,IAAIiB,CAAW,EAAE,aAAa,QAAQ,CAAC,CACnE,CCrJa,MAAAK,GAAa,CAAqBC,EAAaC,IAA4B,CACtF,OAAQD,EAAU,CAChB,KAAKE,EAAAA,SAAS,MACd,KAAKA,EAAAA,SAAS,KAAM,CACZ,KAAA,CAAE,QAAA1D,CAAY,EAAAyD,EACb,MAAA,GAAGD,CAAQ,IAAIxD,CAAO,EAC/B,CAEA,KAAK0D,EAAAA,SAAS,OAAQ,CACd,KAAA,CAAE,QAAA1D,EAAS,aAAA2D,CAAiB,EAAAF,EAClC,MAAO,GAAGD,CAAQ,IAAIxD,CAAO,IAAI2D,CAAY,EAC/C,CAEA,KAAKD,EAAAA,SAAS,kBAAmB,CAC/B,KAAM,CAAE,KAAAlB,EAAM,MAAAlD,EAAO,QAAAU,EAAS,MAAA4D,GAAUH,EACxC,MAAO,GAAGD,CAAQ,IAAIhB,CAAI,IAAIlD,CAAK,IAAIU,CAAO,GAAG4D,EAAQ,IAAIA,CAAK,GAAK,EAAE,EAC3E,CAEA,KAAKF,EAAAA,SAAS,QAAS,CACrB,KAAM,CAAE,MAAApE,EAAO,OAAAQ,EAAQ,QAAAE,EAAS,WAAA6D,GAAeJ,EAe/C,OAAOI,EACH,GAAGL,CAAQ,IAAIlE,CAAK,IAAIQ,CAAM,GAC9B,GAAG0D,CAAQ,KAfW,CAAClE,EAAcQ,IAA2B,CAClE,OAAQR,EAAO,CACb,KAAKS,EAAM,MAAA,SACF,MAAA,IACT,KAAKA,EAAM,MAAA,SACF,MAAA,IACT,KAAKA,EAAM,MAAA,YACF,MAAA,IACT,QACS,MAAA,GAAGT,CAAK,IAAIQ,CAAM,EAC7B,CAAA,GAKmCR,EAAOQ,CAAM,CAAC,IAAIE,GAAW,EAAE,EACtE,CAEA,KAAK0D,EAAAA,SAAS,SAAU,CACtB,KAAM,CAAE,MAAApE,EAAO,OAAAuB,EAAQ,OAAAf,EAAQ,YAAAgE,EAAa,kBAAAC,EAAmB,WAAAF,CAC7D,EAAAJ,EAEIO,EACJ1E,IAAU,OAASuB,IAAW,MAAQ,GAAGA,CAAM,IAAIf,EAAO,MAAM,EAAE,CAAC,GAAKA,EACpEmE,EAAS,CAACJ,GAAcE,EAAoB,IAAIA,CAAiB,GAAK,GAGrE,MAAA,GAAGP,CAAQ,IAAIlE,CAAK,GAFNuE,EAAa,IAAM,GAEE,GAAGG,CAAe,IAAIF,CAAW,GAAGG,CAAM,EACtF,CAEA,KAAKP,EAAAA,SAAS,UACd,KAAKA,EAAAA,SAAS,WAAY,CAClB,KAAA,CAAE,MAAAQ,EAAO,QAAAlE,CAAY,EAAAyD,EAE3B,MAAO,GAAGD,CAAQ,IAAIU,CAAK,IAAIlE,CAAO,EACxC,CAEA,QACS,MAAA,EACX,CACF,ECzFO,SAASmE,GAAgBC,EAAc,CAC5C,GAAIA,EAAO,EAAS,MAAA,IAAI,MAAM,wBAAwB,EACtD,MAAO,IAAKA,CACd,CAEO,SAASC,GAAiB7B,EAAc,CAC7C,GAAIA,EAAK,OAAS,GAAW,MAAA,GAE7B,MAAM8B,EAAQ,qBAEd,MAAO,CAAC,CAAC9B,EAAK,MAAM8B,CAAK,CAC3B,CAEO,SAASC,GAAuB,CAACC,EAASC,EAASC,EAASC,EAAQC,CAAK,EAAa,CAG3F,MAAO,GAAGJ,CAAO,KAAKC,CAAO,KAAKC,CAAO,KAAKC,CAAM,GAFlC,OAAOC,GAAU,SAEgC,GAAK,IAAIA,CAAK,EAAE,EACrF,CChBA,MAAMC,GAAkB,CAAC,GAAG,OAAO,OAAO9E,EAAK,KAAA,EAAG,OAAO,EAEzC,SAAA+E,GAAmBC,EAAa,GAAI,CAC5C,MAAAC,EAAuBD,EAAW,cAElC,CAACzF,CAAK,EAAI0F,EAAqB,MAAM,GAAG,EAC1C,GAAAH,GAAgB,SAASvF,CAAK,EAAU,MAAA,GAE5C,KAAM,CAAC2F,CAAU,EAAID,EAAqB,MAAM,GAAG,EAC/C,GAAAH,GAAgB,SAASI,CAAU,EAAU,MAAA,GAEjD,MAAM,IAAI,MACR,uBAAuBF,CAAU,2EAAA,CAErC,CCFA,MAAMG,EAAkB,EAClBC,EAAgBC,GAAoB,KAAO,OAAOA,CAAO,EACzDC,EAAyBC,GAAuB,KAAK,MAAM,WAAWA,EAAW,SAAU,CAAA,CAAC,EAE3F,SAASC,EAAwB,CACtC,MAAAnE,EACA,cAAAoE,EAAgBN,EAChB,QAAAE,EAAUF,CACZ,EAIG,CACD,GAAIE,IAAY,EAAG,OAAOhE,EAAM,WAChC,MAAMqE,EAAarE,EAAQ,GAC3B,IAAIsE,EAActE,EAAM,WAAW,UAAUqE,EAAa,EAAI,CAAC,EAEzD,MAAAE,EAAYP,GAAWM,EAAY,OAAS,GAE9CC,EAAY,IACAD,EAAA,IAAI,OAAOC,CAAS,EAAID,GAGlC,MAAAE,EAAeF,EAAY,OAASN,EAC1C,IAAIS,EAAgBH,EAAY,MAAM,CAACN,CAAO,EAG9C,OAAI,SAASS,EAAcL,CAAa,CAAC,GAAK,EAE5CK,EAAgB,GAAGA,EAAc,UAAU,EAAGL,EAAgB,CAAC,CAAC,IAC9D,SAASK,EAAcL,EAAgB,CAAC,CAAC,EAAI,GAC7C,SAAU,CAAA,GAGIK,EAAAA,EAAc,UAAU,EAAGL,CAAa,EAGnD,GAAGC,EAAa,IAAM,EAAE,GAAGC,EAAY,MAAM,EAAGE,CAAY,CAAC,IAAIC,CAAa,GAAG,QACtF,SACA,EAAA,CAEJ,0BAEO,MAAMC,EAAN,MAAMA,CAAkB,CA2B7B,YAAYC,EAAwB,CAgNpCC,EAAA,KAAAC,GAmDAD,EAAA,KAAAE,GAmBAF,EAAA,KAAAG,GAKAH,EAAA,KAAAI,GAeAJ,EAAA,KAAAK,GApUAC,EAAA,yBAA4B,KAAO,IACnCA,EAAA,mBAAc,IACdA,EAAA,gBAyBQ,MAAAlF,EAAQmF,EAAeR,CAAM,EAC7BS,EAAY,OAAOT,GAAW,SAC/B,KAAA,QAAUS,EAAYT,EAAO,QAAU,OAG5C,KAAK,kBACHS,GAAa,sBAAuBT,EAChCA,EAAO,kBACPZ,EAAa,KAAK,IAAIsB,GAAiBC,EAAYtF,CAAK,CAAC,EAAG,KAAK,SAAW,CAAC,CAAC,EACpFuF,EAAA,KAAKR,EAAAS,IAAL,UAAexF,EACjB,CAjCA,OAAO,WAAWA,EAAegE,EAAkB,CACjD,OAAO,IAAIU,EAAkB,CAC3B,QAAAV,EACA,MAAOG,EAAwB,CAAE,MAAAnE,EAAO,cAAegE,EAAS,QAAAA,EAAS,CAAA,CAC1E,CACH,CAEA,OAAO,cAAc,CACnB,MAAAhE,EACA,KAAAyF,EACA,GAAAtH,CAAA,EAKC,CACD,OAAOuG,EAAkB,WACtB1E,EAAM,aAAa,QAAQ,EAAI+D,EAAa5F,CAAE,EAAK4F,EAAa0B,CAAI,EACrEtH,CAAA,CAEJ,CAeA,IAAI6B,EAA6B,CAE/B,OAAO,IAAI,KAAK,YAAY,CAAE,QAAS,KAAK,QAAS,MAAAA,EAAO,WAAY,KAAK,SAAS,CAAG,CAAA,CAC3F,CACA,OAAO0F,EAAiC,CACtC,OAAOH,EAAA,KAAKV,EAAAc,GAAL,UAAkB,MAAO,GAAGD,EACrC,CACA,OAAOA,EAAiC,CACtC,OAAOH,EAAA,KAAKV,EAAAc,GAAL,UAAkB,MAAO,GAAGD,EACrC,CACA,OAAOA,EAAiC,CACtC,OAAOH,EAAA,KAAKV,EAAAc,GAAL,UAAkB,MAAO,GAAGD,EACrC,CACA,OAAOA,EAAiC,CACtC,OAAOH,EAAA,KAAKV,EAAAc,GAAL,UAAkB,MAAO,GAAGD,EACrC,CACA,GAAG1F,EAAgC,CAC1B,OAAAuF,EAAA,KAAKT,EAAAc,GAAL,UAAiB,KAAM5F,EAChC,CACA,IAAIA,EAAgC,CAC3B,OAAAuF,EAAA,KAAKT,EAAAc,GAAL,UAAiB,MAAO5F,EACjC,CACA,GAAGA,EAAgC,CAC1B,OAAAuF,EAAA,KAAKT,EAAAc,GAAL,UAAiB,KAAM5F,EAChC,CACA,IAAIA,EAAgC,CAC3B,OAAAuF,EAAA,KAAKT,EAAAc,GAAL,UAAiB,MAAO5F,EACjC,CACA,QAAQA,EAAgC,CAC/B,OAAAuF,EAAA,KAAKT,EAAAc,GAAL,UAAiB,UAAW5F,EACrC,CAGA,SAAuC6F,EAAkC,CACvE,MAAM7F,EAAQ,KAAK,wBACjB,KAAK,YACL,KAAK,SAAWiE,EAAsB,KAAK,iBAAiB,CAAA,EAG9D,OAAQ4B,EAAM,CACZ,IAAK,SACH,OAAO,OAAO7F,CAAK,EACrB,IAAK,SACI,OAAAA,EACT,IAAK,SACM,OAAA,KAAK,YAAc,KAAO,OAAO,KAAK,SAAW,EAAE,EAC1D,KAAK,iBACX,CACF,CAGA,aAA2C6F,EAAkC,CAC3E,MAAMC,EAAU,KAAK,kBAAoB/B,EAAa,KAAK,SAAWvF,cAAY,IAAI,EAChFuH,EAAY,KAAK,YAAcD,EAErC,OAAQD,EAAM,CACZ,IAAK,SACH,OAAO,OAAOE,CAAS,EACzB,IAAK,SACH,OAAOA,EAAU,WACnB,IAAK,SACI,OAAAA,CACX,CACF,CAEA,eAAe/F,EAAgCgE,EAAkB,CAC3D,GAAA,CAACA,GAAW,OAAOhE,GAAU,SAAU,OAAOA,EAAM,YAElD,MAAAgG,EAAcb,EAAenF,CAAK,EAClCiG,EAAYX,EAAYU,CAAW,EAErC,OAAAC,IAAc,KAAOA,IAAc,YAAoB,GACpDV,EAAA,KAAKN,EAAAiB,GAAL,UAAeD,EAAWjC,EACnC,CAEA,cAAcmC,EAAoB,EAAG,CAC7B,KAAA,CAACC,EAAKC,CAAG,EAAI,KAAK,SAAS,QAAQ,EAAE,MAAM,GAAG,EAC9CC,EAAUF,GAAO,GACjBpC,EAAUqC,GAAO,GAGvB,IAFoB,SAASC,CAAO,EAAIA,EAAQ,OAAStC,EAAQ,OAASA,EAAQ,SAE/DmC,EACV,OAAA,KAAK,SAAS,QAAQ,EAG3B,GAAAG,EAAQ,QAAUH,EACb,OAAAG,EAAQ,MAAM,EAAGH,CAAiB,EAAE,OAAOG,EAAQ,OAAQ,GAAG,EAGnE,GAAA,SAASA,CAAO,EACX,MAAA,GAAGA,CAAO,IAAItC,EAAQ,MAAM,EAAGmC,EAAoBG,EAAQ,MAAM,CAAC,GAAG,OAC1EH,EAAoBG,EAAQ,OAC5B,GAAA,EAIE,MAAAC,EAAiB,SAASvC,CAAO,EACjCwC,EAAgB,GAAGD,CAAc,GAAG,MAAM,EAAGJ,CAAiB,EAEpE,MAAO,KAAKK,EAAc,SACxBxC,EAAQ,OAAS,GAAGuC,CAAc,GAAG,OAASC,EAAc,OAC5D,GACD,CAAA,EACH,CAEA,QAAQC,EAAc,EAAG,CACjB,KAAA,CAACL,EAAKC,CAAG,EAAI,KAAK,SAAS,QAAQ,EAAE,MAAM,GAAG,EAC9CC,EAAUF,GAAO,GACjBpC,EAAUqC,GAAO,GAEnB,GAAA,SAASC,CAAO,EACX,MAAA,GAAGA,CAAO,IAAItC,EAAQ,MAAM,EAAGyC,CAAW,CAAC,GAAG,OAAOA,EAAa,GAAG,EAGxE,MAAAF,EAAiB,SAASvC,CAAO,EACjCwC,EAAgB,GAAGD,CAAc,GAAG,MAAM,EAAGE,CAAW,EAE9D,MAAO,KAAKD,EAAc,SACxBxC,EAAQ,OAAS,GAAGuC,CAAc,GAAG,OAASC,EAAc,OAC5D,GACD,CAAA,EACH,CAEA,eAAeE,EAAS,EAAG,CACnB,MAAA1G,EAAQ,KAAK,SAAS,QAAQ,EAC9B2G,EAAgB,CAAC,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,GAAG,EACvDC,EAAO,KAAK,MAAM,KAAK,MAAM,KAAK,IAAI5G,CAAK,CAAC,EAAI,CAAC,EACjD6G,EAASF,EAAcC,CAAI,EAEjC,GAAI,CAACC,EAAe,OAAA,KAAK,SAAS,QAAQ,EAEpC,MAAAC,EAAQ,KAAOF,EAAO,GAG5B,MAAO,IAFQ5G,EAAQ8G,GAEN,QAAQJ,CAAM,CAAC,GAAGG,CAAM,EAC3C,CAEA,WACEE,EAAW,IACX,CACE,iBAAAC,EAAmB,QACnB,QAAAhD,EAAU,EACV,iBAAAiD,EAAmB,IACnB,kBAAAC,EAAoB,GACtB,EAAI,GACJ,CACM,MAAAlH,EAAQ,KAAK,SAAS,QAAQ,EAC9B,CAACoG,EAAKC,EAAM,EAAE,EAAIrG,EAAM,QAAQ,CAAC,EAAE,MAAM,GAAG,EAC5CsG,EAAUF,EAAI,QAAQ,wBAAyBc,CAAiB,EAEhEC,EACJf,GAAOC,EACHD,IAAQ,IACN,GAAG,WAAW,KAAKC,CAAG,EAAE,CAAC,GAAG,QAAQ,IAAKY,CAAgB,EACzD,GAAGX,CAAO,GAAG,SAASD,CAAG,EAAI,GAAGY,CAAgB,GAAGZ,EAAI,MAAM,EAAGrC,CAAO,CAAC,GAAK,EAAE,GACjF,OAEC,MAAA,GAAGgD,IAAqB,QAAUD,EAAW,EAAE,GAAGI,CAAW,GAClEH,IAAqB,MAAQD,EAAW,EAC1C,EACF,CAEA,wBAAwB/G,EAAegE,EAAkB,CACjD,MAAAI,EAAgBJ,GAAW,KAAK,SAAWF,EAC3CsD,EAA4B,KAAK,IACrChD,EACAH,EAAsB,KAAK,iBAAiB,CAAA,EAExCI,EAAarE,EAAQ,GAErBsE,EAActE,EAAM,WAAW,UAAUqE,EAAa,EAAI,CAAC,EAC3DE,EAAY6C,GAA6B9C,EAAY,OAAS,GAE9D+C,EAAoB9C,EAAY,EAAI,IAAI,OAAOA,CAAS,EAAID,EAAcA,EAE1EE,EAAe6C,EAAkB,OAASD,EAChD,IAAI3C,EAAgB4C,EAAkB,MAAM,CAACD,CAAyB,EAGtE,OAAI,SAAS3C,EAAcL,CAAa,CAAC,GAAK,EAE5CK,EAAgB,GAAGA,EAAc,UAAU,EAAGL,EAAgB,CAAC,CAAC,IAC9D,SAASK,EAAcL,EAAgB,CAAC,CAAC,EAAI,GAC7C,SAAU,CAAA,GAGIK,EAAAA,EAAc,UAAU,EAAGL,CAAa,EAGnD,GAAGC,EAAa,IAAM,EAAE,GAAGgD,EAAkB,MAClD,EACA7C,CAAA,CACD,IAAIC,CAAa,GAAG,QAAQ,SAAU,EAAE,CAC3C,CAmGF,EAjGEI,EAAA,YAAAc,EAAA,SAAa2B,KAA0C5B,EAAuC,CAC5F,MAAM6B,EAAmBhC,EAAA,KAAKP,EAAAwC,GAAL,UAA+B,KAAM,GAAG9B,GAC3D1B,EAAU,KAAK,IAAIuD,EAAkBtD,EAAsB,KAAK,iBAAiB,CAAC,EAClFwD,EAA6B1D,EAAaC,CAAO,EAEjD5F,EAASsH,EAAK,OAClB,CAACgC,EAAaC,IAAQ,CACpB,MAAM3H,EAAQ,KAAK,eAAe2H,EAAK3D,CAAO,EAE9C,OAAQsD,EAAQ,CACd,IAAK,MACH,OAAOI,EAAM1H,EACf,IAAK,MACH,OAAO0H,EAAM1H,EASf,IAAK,MACH,OAAQ0H,EAAM1H,EAASyH,EACzB,IAAK,MAAO,CACV,GAAIzH,IAAU,GAAU,MAAA,IAAI,WAAW,kBAAkB,EACzD,OAAQ0H,EAAMD,EAA8BzH,CAC9C,CACA,QACS,OAAA0H,CACX,CACF,EAEC,KAAK,YAAcD,EAA8B,KAAK,iBAAA,EAGnDzH,EAAQmE,EAAwB,CACpC,cAAeH,EACf,QAAAA,EACA,MAAO5F,CAAA,CACR,EAGM,OAAA,IAAI,KAAK,YAAY,CAC1B,kBAAmB2F,EAAaC,CAAO,EACvC,QAAS,KAAK,QACd,MAAAhE,EACA,WAAY,KAAK,SAAS,CAAA,CAC3B,CACH,EAEA8E,EAAA,YAAAc,EAAA,SAAY0B,KAAoD5B,EAAiC,CAC/F,MAAM1B,EAAUuB,EAAA,KAAKP,EAAAwC,GAAL,UAA+B,KAAM,GAAG9B,GAClD1F,EAAQ,KAAK,eAAe0F,EAAK,CAAC,EAAG1B,CAAO,EAC5C4D,EAAiB,KAAK,eAAe,KAAM5D,CAAO,EAExD,OAAQsD,EAAQ,CACd,IAAK,KACH,OAAOM,EAAiB5H,EAC1B,IAAK,MACH,OAAO4H,GAAkB5H,EAC3B,IAAK,KACH,OAAO4H,EAAiB5H,EAC1B,IAAK,MACH,OAAO4H,GAAkB5H,EAC3B,IAAK,UACH,OAAO4H,IAAmB5H,CAC9B,CACF,EAEA+E,EAAA,YAAAS,YAAUxF,EAAgC,CAClC,MAAAiG,EAAYX,EAAYtF,CAAK,GAAK,IACnC,KAAA,YAAcuF,EAAA,KAAKN,EAAAiB,GAAL,UAAeD,EACpC,EAEAjB,EAAA,YAAAwC,cAA6B9B,EAAiC,CAC5D,MAAMmC,EAAWnC,EACd,IAAKiC,GACa,OAAOA,GAAQ,SAE5BA,EAAI,SAAW1D,EAAsB0D,EAAI,iBAAiB,EAC1DtC,GAAiBC,EAAYqC,CAAG,CAAC,CAGtC,EACA,OAAO,OAAO,EAEjB,OAAO,KAAK,IAAI,GAAGE,EAAU/D,CAAe,CAC9C,EAEAmB,EAAA,YAAAiB,EAAA,SAAUlG,EAAegE,EAAkB,CACzC,MAAME,EAAaF,EAAUD,EAAaC,CAAO,EAAI,KAAK,kBACpD8D,EAAa7D,EAAsBC,CAAU,EAC7C,CAAC6D,EAAc,GAAIC,EAAc,EAAE,EAAIhI,EAAM,MAAM,GAAG,EAErD,OAAA,OAAO,GAAG+H,CAAW,GAAGC,EAAY,OAAOF,EAAY,GAAG,CAAC,EAAE,CACtE,EA3UK,IAAMG,EAANvD,EA8UP,MAAMwD,GAAkB,KAAK,aAAa,WAAY,CACpD,YAAa,GACb,sBAAuB,EACzB,CAAC,EAED,SAAS5C,EAAYtF,EAAgC,CAG7C,MAAAmI,EAAa,GADjB,OAAOnI,GAAU,SAAWkI,GAAgB,OAAOlI,CAAK,EAAImF,EAAenF,CAAK,CACjD,GAAG,WAAW,IAAK,GAAG,EAAE,MAAM,GAAG,EAElE,OAAOmI,EAAW,OAAS,EACvB,GAAGA,EAAW,MAAM,EAAG,EAAE,EAAE,KAAK,EAAE,CAAC,IAAIA,EAAW,GAAG,EAAE,CAAC,GACxDA,EAAW,CAAC,CAClB,CAEA,SAAS9C,GAAiBrF,EAAe,OACvC,MAAM6H,IAAWnI,EAAAM,EAAM,MAAM,GAAG,EAAE,CAAC,IAAlB,YAAAN,EAAqB,SAAU,EACzC,OAAA,KAAK,IAAImI,EAAU/D,CAAe,CAC3C,CAEA,SAASqB,EAAeiD,EAAuB,CACtC,OAAA,OAAOA,GAAU,SACpB,aAAcA,EACZA,EAAM,SAAS,QAAQ,EACvBA,EAAM,MACRA,CACN,CC9ZO,MAAMnH,UAAsBgH,CAAkB,CACnD,GAAGjI,EAAyB,CACnB,OAAA,KAAK,QAAQA,CAAK,CAC3B,CAEA,OAAO,WAAWA,EAAegE,EAAkB,CACjD,OAAO,IAAI/C,EAAc,CACvB,QAAA+C,EACA,MAAOG,EAAwB,CAAE,MAAAnE,EAAO,cAAegE,EAAS,QAAAA,EAAS,CAAA,CAC1E,CACH,CACF,CCJA,MAAMqE,MAAsB,IAKrB,MAAMC,UAAmBL,CAAkB,CAUhD,YAAY,CACV,MAAAjI,EACA,QAAAgE,EACA,IAAAuE,EACA,MAAArK,EACA,OAAAQ,EACA,WAAAiF,CAAA,EAIC,CACD,MAAM,OAAO3D,GAAU,SAAWA,EAAQ,CAAE,QAAAgE,EAAS,MAAAhE,EAAO,EApB9DkF,EAAA,gBACAA,EAAA,cACAA,EAAA,kBAAa,IACbA,EAAA,mBAAc,IACdA,EAAA,eACAA,EAAA,YACAA,EAAA,eACAA,EAAA,aAeE,MAAMsD,EAAYC,EAAa9E,GAAc,GAAGzF,CAAK,IAAIQ,CAAM,EAAE,EAE5D,KAAA,KAAOW,GAAamJ,CAAS,EAClC,KAAK,IAAMD,EACX,KAAK,MAAQC,EAAU,MACvB,KAAK,OAASA,EAAU,OACxB,KAAK,OAASA,EAAU,OACxB,KAAK,QAAUA,EAAU,QACzB,KAAK,YAAcA,EAAU,YAC7B,KAAK,WAAaA,EAAU,UAC9B,CAEA,UAAW,CACF,OAAA,KAAK,YAAc,KAAK,OAAS,GAAG,KAAK,KAAK,IAAI,KAAK,MAAM,EACtE,CAEA,OAAQ,CACN,OAAO,KAAK,YAAc,GAAG,KAAK,KAAK,IAAI,KAAK,OAAO,QAAQ,IAAK,GAAG,CAAC,GAAK,KAAK,UACpF,CAEA,GAAG,CAAE,MAAAtK,EAAO,OAAAQ,GAA4C,CACtD,OAAO,KAAK,QAAUR,GAAS,KAAK,SAAWQ,CACjD,CAEA,SAAU,CACD,OAAAgK,EAAA,eAAe,KAAK,KAAK,CAClC,CAKA,OAAO,QAAQC,EAAkB3I,EAA0B,EAAG,CAC5D,KAAM,CAAC9B,EAAOuB,EAAQf,CAAM,EAAIiK,EAAS,MAAM,GAAG,EAClD,GAAI,EAAEzK,GAASuB,GAAe,MAAA,IAAI,MAAM,mBAAmB,EAErD,MAAAL,EACJlB,IAAUS,EAAA,MAAM,WAAaD,EAAS,GAAGR,CAAK,IAAIuB,CAAM,IAAIf,CAAM,GAAKiK,EAElE,OAAAC,EAAiBxJ,EAAaY,CAAK,CAC5C,CAEA,OAAO,WAAWZ,EAAqBY,EAA0B,EAAG,CAC3D,OAAA4I,EAAiBxJ,EAAaY,CAAK,CAC5C,CACA,OAAO,eACLZ,EAKAY,EAA0B,EAC1B,CACO,OAAA4I,EAAiBxJ,EAAaY,CAAK,CAC5C,CAEA,OAAO,eAAeZ,EAAqBY,EAA0B,EAAG,CACtE,KAAM,CAAE,MAAA9B,EAAO,YAAA2K,CAAY,EAAIJ,EAAarJ,CAAW,EACjD0J,EAAYT,EAAgB,IAAIjJ,EAAY,YAA2B,CAAA,EAEzE,GAAAyJ,EAAoB,OAAAE,EAA0B3J,EAAaY,CAAK,EAQpE,KAAM,CAAE,IAAAuI,EAAK,QAAAvE,EAAS,WAAAL,CAAA,EAAemF,GAAa,CAChD,QAAStK,cAAYN,CAAK,EAC1B,WAAYkB,CAAA,EAGd,OAAO,IAAIkJ,EAAW,CACpB,IAAAC,EACA,MAAOtC,EAAUjG,EAAOgE,CAAO,EAC/B,WAAY6E,EAAczJ,EAAcuE,EACxC,QAASkF,EAAc,EAAI7E,CAAA,CAC5B,CACH,CAEA,aAAa,mBACX5E,EACAY,EAA0B,EAC1BgJ,EAAsBxK,cAAY,KAClC,CACM,MAAAyK,EAAgBhB,EAAkB,cAAc,CACpD,MAAOhH,EAAc,WAAW,OAAOjB,CAAK,CAAC,EAC7C,KAAM,EACN,GAAIgJ,CAAA,CACL,EAAE,aAAa,QAAQ,EAGjB,OAFY,MAAMV,EAAW,WAAWlJ,EAAaY,CAAK,GAE/C,IAAIiJ,CAAa,CACrC,CAEA,OAAO,uBACL7J,EACAY,EAA0B,EAC1BgJ,EAAsBxK,cAAY,KAClC,CACA,KAAM,CAAE,MAAAN,EAAO,YAAA2K,CAAY,EAAIJ,EAAarJ,CAAW,EACjD0J,EAAYT,EAAgB,IAAIjJ,EAAY,YAA2B,CAAA,EAEzE,GAAAyJ,EAAoB,OAAAE,EAA0B3J,EAAaY,CAAK,EAEpE,KAAM,CAAE,IAAAuI,EAAK,QAAAvE,EAAS,WAAAL,CAAA,EAAemF,GAAa,CAChD,QAAStK,cAAYN,CAAK,EAC1B,WAAYkB,CAAA,EAGd,OAAO,IAAIkJ,EAAW,CACpB,IAAAC,EACA,MAAOtC,EAAU,OAAOjG,CAAK,EAAGgJ,CAAW,EAC3C,WAAArF,EACA,QAAAK,CAAA,CACD,CACH,CAEA,OAAO,mBAAmB5E,EAAyBY,EAA0B,EAAG,CAC9E,KAAM,CAAE,MAAA9B,EAAO,YAAA2K,CAAY,EAAIJ,EAAarJ,CAAW,EACjD0J,EAAYT,EAAgB,IAAIjJ,CAAW,EAE7C,GAAAyJ,EAAoB,OAAAE,EAA0B3J,EAAaY,CAAK,EAQpE,KAAM,CAAE,IAAAuI,EAAK,QAAAvE,EAAS,WAAAL,CAAA,EAAemF,GAAa,CAChD,QAAStK,cAAYN,CAAK,EAC1B,WAAYkB,CAAA,EAEP,OAAA,IAAIkJ,EAAW,CAAE,IAAAC,EAAK,QAAAvE,EAAS,WAAAL,EAAY,MAAOsC,EAAUjG,EAAOgE,CAAO,CAAG,CAAA,CACtF,CAEA,OAAO,qBAAqB5E,EAAgCY,EAA0B,EAAG,CACvF,KAAM,CAAE,QAAAgE,EAAS,WAAAL,CAAW,EAAIxE,GAAmBC,CAAW,EACvD,OAAA,IAAIkJ,EAAW,CAAE,MAAOrC,EAAUjG,EAAOgE,CAAO,EAAG,QAAAA,EAAS,WAAAL,CAAA,CAAY,CACjF,CAEA,OAAO,kBAAmB,CACxB,OAAO,IAAI,QACT,CAACuF,EAASC,IAAW,CACf,GAAA,CACF,OAAO,iBAAiB,EAAE,KAAMC,GAAkB,CAChD,UAAWC,KAAa,OAAO,OAAOD,CAAa,EACjD,SAAW,CAAE,WAAAzF,EAAY,MAAAzF,EAAO,GAAGoL,CAAK,IAAKD,EAAU,OACrChB,EAAA,IAAI1E,EAAW,cAA6B,CAC1D,WAAAA,EACA,QAAS,aAAc2F,EAAOA,EAAK,SAAW9K,cAAYN,CAAc,CAAA,CACzE,EAIGgL,EAAA,CAAE,GAAI,EAAA,CAAM,CAAA,CACrB,QACM3K,EAAO,CACd,QAAQ,MAAMA,CAAK,EACZ4K,EAAA,CACL,GAAI,GACJ,MAAA5K,EACA,QACE,gFAAA,CACH,CACH,CACF,CAAA,CAEJ,CACF,CAEO,SAASgL,GAAoBrL,EAAc,CAC1C,MAAA4E,EAAQwF,EAAW,qBAAqBpK,CAAK,EAEnD,OAAQA,EAAO,CACb,KAAKS,EAAAA,MAAM,QACX,KAAKA,EAAAA,MAAM,SACX,KAAKA,EAAM,MAAA,YACF,OAAAmE,EAAM,IAAI,QAAU,EAE7B,KAAKnE,EAAM,MAAA,SACF,OAAAmE,EAAM,IAAI,UAAU,EAE7B,KAAKnE,EAAAA,MAAM,UACX,KAAKA,EAAM,MAAA,SACF,OAAAmE,EAAM,IAAI,IAAU,EAE7B,KAAKnE,EAAAA,MAAM,UACX,KAAKA,EAAM,MAAA,KACF,OAAAmE,EAAM,IAAI,CAAC,EAEpB,KAAKnE,EAAM,MAAA,OACF,OAAAmE,EAAM,IAAI,IAAQ,EAE3B,QACS,OAAAA,EAAM,IAAI,IAAU,CAC/B,CACF,CAEA,eAAe8F,EAAiBjF,EAAoB3D,EAA0B,EAAG,CAC/E0D,GAAmBC,CAAU,EAE7B,MAAM6F,EAAcnB,EAAgB,IAAI1E,EAAW,YAA2B,CAAA,EACxEK,GAAUwF,GAAA,YAAAA,EAAa,UAAY,MAAMzK,GAAW0J,EAAa9E,CAAU,CAAC,EAClF,OAAK6F,GACHnB,EAAgB,IAAI1E,EAAW,cAA6B,CAAE,WAAAA,EAAY,QAAAK,EAAS,EAG9E,IAAIsE,EAAW,CAAE,QAAAtE,EAAS,MAAOiC,EAAUjG,EAAOgE,CAAO,EAAG,WAAAL,CAAA,CAAY,CACjF,CAEA,SAASoF,EAA0BpF,EAAoB3D,EAA0B,EAAG,CAClF,KAAM,CAAC6D,EAAYnF,CAAM,EACvBiF,EAAW,MAAM,GAAG,EAAE,CAAC,EAAE,gBAAkBhF,EAAAA,MAAM,UAC7CgF,EAAW,MAAM,GAAG,EAAE,MAAM,CAAC,EAAE,KAAA,EAAO,MAAM,GAAG,EAC/CA,EAAW,MAAM,GAAG,EAE1B,GAAI,EAAEE,GAAcnF,GAAe,MAAA,IAAI,MAAM,0BAA0B,EAEvE,OAAO,IAAI4J,EAAW,CACpB,QAAS,EACT,MAAOrC,EAAUjG,EAAO,CAAC,EACzB,WAAY,GAAGrB,EAAAA,MAAM,SAAS,IAAIkF,CAAU,IAAInF,CAAM,EAAA,CACvD,CACH,CAEA,SAASuH,EAAUjG,EAAyBgE,EAAiB,CACpD,OAAA,OAAOhE,GAAU,SACpBmE,EAAwB,CAAE,MAAAnE,EAAO,cAAegE,EAAS,QAAAA,EAAS,EAClEhE,CACN,CAGA,SAASyI,EAAa9E,EAAoB,CACxC,MAAMkF,EAAclF,EAAW,MAAM,EAAG,EAAE,EAAE,SAAS,GAAG,EAElD,CAACE,EAAY4F,CAAW,EAC5B9F,EAAW,MAAM,GAAG,EAAE,CAAC,EAAE,gBAAkBhF,EAAAA,MAAM,UAC7CgF,EAAW,MAAM,GAAG,EAAE,MAAM,CAAC,EAAE,KAAA,EAAO,MAAM,GAAG,EAC/CA,EAAW,MAAM,GAAG,EAEtB,GAAAkF,GAAe,EAAEhF,GAAc4F,GAAoB,MAAA,IAAI,MAAM,0BAA0B,EAE3F,MAAMC,EACJ/F,EAAW,SAAS,GAAG,GAAK,CAACkF,EAAclF,EAAa,GAAGhF,EAAAA,MAAM,SAAS,IAAI8K,CAAW,GAErF,CAACvL,EAAO,GAAGoL,CAAI,EAAII,EAAmB,MAAM,GAAG,EAC/C,CAACjK,EAAQb,CAAO,GAAKiK,EAAcY,EAAcH,EAAK,KAAK,GAAG,GAAG,MAAM,GAAG,EAI1E5K,EAASmK,EAAcY,EAAcH,EAAK,KAAK,GAAG,EAEjD,MAAA,CACL,QAAS1K,GAAA,YAAAA,EAAS,cAClB,MAAAV,EACA,WAAYgB,GAAW,CAAE,MAAAhB,EAAO,OAAAQ,EAAQ,EACxC,YAAAmK,EACA,QACGA,EAAc,GAAGhF,CAAU,IAAM,KACjCjF,EAAU,GAAGa,CAAM,KAAIb,GAAA,YAAAA,EAAS,gBAAiB,EAAE,GAAKF,GAC3D,OAAAe,CAAA,CAEJ,CC/SA,MAAMkK,GAAgB,CAIpB,iCAAkC,MAClC,iDAAkD,MAClD,kBAAmB,MACnB,4BAA6B,MAC7B,6CAA8C,MAC9C,kBAAmB,MAInB,gCAAiC,MACjC,oCAAqC,MACrC,wCAAyC,MACzC,mCAAoC,MACpC,iCAAkC,MAClC,iCAAkC,MAClC,gCAAiC,MACjC,8BAA+B,MAC/B,kCAAmC,MAInC,yBAA0B,MAC1B,6BAA8B,MAC9B,+BAAgC,MAChC,6BAA8B,MAC9B,sCAAuC,MACvC,iCAAkC,MAClC,4BAA6B,MAC7B,mCAAoC,MACpC,6BAA8B,MAI9B,+BAAgC,MAChC,6CAA8C,MAC9C,8CAA+C,MAC/C,iDAAkD,MAClD,8CAA+C,MAC/C,+CAAgD,MAChD,0CAA2C,MAC3C,2CAA4C,MAC5C,gCAAiC,MACjC,uCAAwC,MACxC,kDAAmD,MACnD,mCAAoC,MACpC,wCAAyC,MACzC,sCAAuC,MACvC,+BAAgC,MAKhC,+BAAgC,MAChC,iCAAkC,MAClC,gCAAiC,MACjC,+BAAgC,MAChC,4BAA6B,MAK7B,wBAAyB,MACzB,iCAAkC,MASlC,kCAAmC,KACrC,EAIO,MAAMC,WAAqB,KAAM,CACtC,YAAYC,EAAqBC,EAAmB,CAC9CA,GACF,QAAQ,MAAMA,EAAa,CACzB,MAAOA,GAAA,YAAAA,EAAa,MACpB,QAASA,GAAA,YAAAA,EAAa,OAAA,CACvB,EAGH,MAAMD,EAAU,CACd,MAAO,CAAE,KAAMF,GAAcE,CAAQ,EAAG,QAASA,CAAS,CAAA,CAC3D,EACM,OAAA,eAAe,KAAMD,GAAa,SAAS,CACpD,CACF"}
package/dist/index.d.ts CHANGED
@@ -178,6 +178,7 @@ declare const errorMessages: {
178
178
  * Chainflip
179
179
  */
180
180
  readonly chainflip_channel_error: 30001;
181
+ readonly chainflip_broker_recipient_error: 30002;
181
182
  /**
182
183
  * THORChain
183
184
  */