@swapkit/helpers 1.0.0-rc.74 → 1.0.0-rc.75
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.es.js +91 -78
- package/dist/index.es.js.map +1 -1
- package/package.json +6 -6
- package/src/helpers/__tests__/memo.test.ts +11 -1
- package/src/helpers/others.ts +16 -0
package/dist/index.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","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":"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"}
|
|
1
|
+
{"version":3,"file":"index.es.js","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\n// 10 CACAO for register\n// 1.0512 CACAO per year\nexport function getMAYANameCost(year: number) {\n if (year < 0) throw new Error(\"Invalid number of year\");\n // round to max 10 decimals\n return Math.round((10 + year * 1.0512) * 1e10) / 1e10;\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 validateMAYAName(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","getMAYANameCost","validateTHORName","regex","validateMAYAName","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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"}
|
package/package.json
CHANGED
|
@@ -2,18 +2,18 @@
|
|
|
2
2
|
"author": "swapkit-oss",
|
|
3
3
|
"description": "SwapKit Lib swapkit-helpers",
|
|
4
4
|
"dependencies": {
|
|
5
|
-
"@swapkit/api": "1.0.0-rc.
|
|
5
|
+
"@swapkit/api": "1.0.0-rc.42"
|
|
6
6
|
},
|
|
7
7
|
"devDependencies": {
|
|
8
8
|
"@vitest/coverage-istanbul": "1.3.1",
|
|
9
9
|
"vite": "5.1.3",
|
|
10
10
|
"vitest": "1.3.1",
|
|
11
|
-
"@swapkit/tokens": "1.0.0-rc.
|
|
12
|
-
"@swapkit/types": "1.0.0-rc.
|
|
11
|
+
"@swapkit/tokens": "1.0.0-rc.37",
|
|
12
|
+
"@swapkit/types": "1.0.0-rc.41"
|
|
13
13
|
},
|
|
14
14
|
"peerDependencies": {
|
|
15
|
-
"@swapkit/tokens": "1.0.0-rc.
|
|
16
|
-
"@swapkit/types": "1.0.0-rc.
|
|
15
|
+
"@swapkit/tokens": "1.0.0-rc.37",
|
|
16
|
+
"@swapkit/types": "1.0.0-rc.41"
|
|
17
17
|
},
|
|
18
18
|
"exports": {
|
|
19
19
|
".": {
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
},
|
|
39
39
|
"type": "module",
|
|
40
40
|
"types": "./dist/index.d.ts",
|
|
41
|
-
"version": "1.0.0-rc.
|
|
41
|
+
"version": "1.0.0-rc.75",
|
|
42
42
|
"scripts": {
|
|
43
43
|
"build": "vite build",
|
|
44
44
|
"clean": "rm -rf dist vite.config.ts.* node_modules",
|