@swapkit/helpers 1.0.0-rc.0 → 1.0.0-rc.10
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.d.ts +76 -47
- package/dist/index.es.js +816 -403
- package/package.json +8 -4
- package/src/helpers/asset.ts +25 -13
- package/src/helpers/liquidity.ts +19 -4
- package/src/helpers/others.ts +0 -39
- package/src/helpers/request.ts +16 -0
- package/src/index.ts +5 -4
- package/src/modules/__tests__/assetValue.test.ts +24 -8
- package/src/modules/__tests__/swapKitNumber.test.ts +155 -76
- package/src/modules/assetValue.ts +46 -40
- package/src/modules/bigIntArithmetics.ts +210 -99
- package/src/modules/swapKitNumber.ts +0 -4
- package/dist/index.es-8503fb04.js +0 -34669
- package/dist/index.es-903b9173.cjs +0 -1
- package/src/helpers/number.ts +0 -40
package/dist/index.es.js
CHANGED
|
@@ -1,303 +1,661 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var
|
|
4
|
-
if (!t.has(
|
|
1
|
+
var _t = Object.defineProperty;
|
|
2
|
+
var gt = (s, t, e) => t in s ? _t(s, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : s[t] = e;
|
|
3
|
+
var p = (s, t, e) => (gt(s, typeof t != "symbol" ? t + "" : t, e), e), bt = (s, t, e) => {
|
|
4
|
+
if (!t.has(s))
|
|
5
5
|
throw TypeError("Cannot " + e);
|
|
6
6
|
};
|
|
7
|
-
var
|
|
8
|
-
if (t.has(
|
|
7
|
+
var y = (s, t, e) => {
|
|
8
|
+
if (t.has(s))
|
|
9
9
|
throw TypeError("Cannot add the same private member more than once");
|
|
10
|
-
t instanceof WeakSet ? t.add(
|
|
10
|
+
t instanceof WeakSet ? t.add(s) : t.set(s, e);
|
|
11
11
|
};
|
|
12
|
-
var
|
|
13
|
-
import { FeeOption as
|
|
14
|
-
const
|
|
15
|
-
if (n < 0)
|
|
16
|
-
throw new Error("Invalid number of year");
|
|
17
|
-
return 10 + n;
|
|
18
|
-
}, St = (n) => {
|
|
19
|
-
if (n.length > 30)
|
|
20
|
-
return !1;
|
|
21
|
-
const t = /^[a-zA-Z0-9+_-]+$/g;
|
|
22
|
-
return !!n.match(t);
|
|
23
|
-
}, Ct = ([n, t, e, r, s]) => `${n}'/${t}'/${e}'/${r}${typeof s != "number" ? "" : `/${s}`}`, Tt = async (n, t) => {
|
|
24
|
-
const e = Object.entries(t || {}).reduce(
|
|
25
|
-
(s, [a, c]) => (c && (s[a] = c), s),
|
|
26
|
-
{}
|
|
27
|
-
);
|
|
28
|
-
return (await fetch(
|
|
29
|
-
`${n}${t ? `?${new URLSearchParams(e).toString()}` : ""}`,
|
|
30
|
-
{ method: "GET", mode: "cors", credentials: "omit", referrer: "https://sk.thorswap.net" }
|
|
31
|
-
)).json();
|
|
32
|
-
}, ct = async (n, t, e, r = !1) => {
|
|
33
|
-
const s = await fetch(`${n}`, {
|
|
34
|
-
body: t,
|
|
35
|
-
headers: e,
|
|
36
|
-
method: "POST",
|
|
37
|
-
referrer: "https://sk.thorswap.net"
|
|
38
|
-
});
|
|
39
|
-
return r ? s.text() : s.json();
|
|
40
|
-
}, ot = "0x313ce567", z = async ({ chain: n, to: t }) => {
|
|
12
|
+
var f = (s, t, e) => (bt(s, t, "access private method"), e);
|
|
13
|
+
import { FeeOption as H, BaseDecimal as m, Chain as o, ChainToRPC as yt, MemoType as g } from "@swapkit/types";
|
|
14
|
+
const wt = "0x313ce567", rt = async ({ chain: s, to: t }) => {
|
|
41
15
|
try {
|
|
42
|
-
const e = await
|
|
43
|
-
|
|
44
|
-
JSON.stringify({
|
|
45
|
-
method: "eth_call",
|
|
46
|
-
params: [{ to: t.toLowerCase(), data: ot }, "latest"],
|
|
16
|
+
const { result: e } = await zt.post(yt[s], {
|
|
17
|
+
headers: { accept: "*/*", "cache-control": "no-cache" },
|
|
18
|
+
body: JSON.stringify({
|
|
47
19
|
id: 44,
|
|
48
|
-
jsonrpc: "2.0"
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
return parseInt(BigInt(
|
|
20
|
+
jsonrpc: "2.0",
|
|
21
|
+
method: "eth_call",
|
|
22
|
+
params: [{ to: t.toLowerCase(), data: wt }, "latest"]
|
|
23
|
+
})
|
|
24
|
+
});
|
|
25
|
+
return parseInt(BigInt(e).toString());
|
|
54
26
|
} catch (e) {
|
|
55
|
-
return console.error(e),
|
|
56
|
-
}
|
|
57
|
-
},
|
|
58
|
-
if (
|
|
59
|
-
return
|
|
60
|
-
const [, t] =
|
|
61
|
-
return t != null && t.startsWith("0x") ?
|
|
62
|
-
},
|
|
63
|
-
const [, t] =
|
|
64
|
-
return t != null && t.startsWith("0x") ?
|
|
65
|
-
},
|
|
66
|
-
switch (
|
|
67
|
-
case
|
|
68
|
-
return
|
|
69
|
-
case
|
|
70
|
-
return
|
|
71
|
-
case
|
|
72
|
-
return
|
|
27
|
+
return console.error(e), m[s];
|
|
28
|
+
}
|
|
29
|
+
}, At = async (s) => {
|
|
30
|
+
if (s === o.Ethereum)
|
|
31
|
+
return m.ETH;
|
|
32
|
+
const [, t] = s.split("-");
|
|
33
|
+
return t != null && t.startsWith("0x") ? rt({ chain: o.Ethereum, to: t }) : m.ETH;
|
|
34
|
+
}, Tt = async (s) => {
|
|
35
|
+
const [, t] = s.split("-");
|
|
36
|
+
return t != null && t.startsWith("0x") ? rt({ chain: o.Avalanche, to: t.toLowerCase() }) : m.AVAX;
|
|
37
|
+
}, Rt = async (s) => s === o.BinanceSmartChain ? m.BSC : m.BSC, st = async ({ chain: s, symbol: t }) => {
|
|
38
|
+
switch (s) {
|
|
39
|
+
case o.Ethereum:
|
|
40
|
+
return At(t);
|
|
41
|
+
case o.Avalanche:
|
|
42
|
+
return Tt(t);
|
|
43
|
+
case o.BinanceSmartChain:
|
|
44
|
+
return Rt(t);
|
|
73
45
|
default:
|
|
74
|
-
return
|
|
75
|
-
}
|
|
76
|
-
},
|
|
77
|
-
[
|
|
78
|
-
[
|
|
79
|
-
[
|
|
80
|
-
},
|
|
81
|
-
switch (
|
|
82
|
-
case
|
|
83
|
-
case
|
|
84
|
-
case
|
|
85
|
-
case
|
|
86
|
-
case
|
|
87
|
-
case
|
|
88
|
-
case
|
|
89
|
-
return t ===
|
|
90
|
-
case
|
|
91
|
-
case
|
|
46
|
+
return m[s];
|
|
47
|
+
}
|
|
48
|
+
}, te = {
|
|
49
|
+
[H.Average]: 1.2,
|
|
50
|
+
[H.Fast]: 1.5,
|
|
51
|
+
[H.Fastest]: 2
|
|
52
|
+
}, St = ({ chain: s, symbol: t }) => {
|
|
53
|
+
switch (s) {
|
|
54
|
+
case o.Bitcoin:
|
|
55
|
+
case o.BitcoinCash:
|
|
56
|
+
case o.Litecoin:
|
|
57
|
+
case o.Dogecoin:
|
|
58
|
+
case o.Binance:
|
|
59
|
+
case o.Ethereum:
|
|
60
|
+
case o.Avalanche:
|
|
61
|
+
return t === s;
|
|
62
|
+
case o.Arbitrum:
|
|
63
|
+
case o.Optimism:
|
|
92
64
|
return t === "ETH";
|
|
93
|
-
case
|
|
65
|
+
case o.Maya:
|
|
94
66
|
return t === "CACAO";
|
|
95
|
-
case
|
|
67
|
+
case o.Kujira:
|
|
68
|
+
return t === "KUJI";
|
|
69
|
+
case o.Cosmos:
|
|
96
70
|
return t === "ATOM";
|
|
97
|
-
case
|
|
71
|
+
case o.Polygon:
|
|
98
72
|
return t === "MATIC";
|
|
99
|
-
case
|
|
73
|
+
case o.BinanceSmartChain:
|
|
100
74
|
return t === "BNB";
|
|
101
|
-
case
|
|
75
|
+
case o.THORChain:
|
|
102
76
|
return t === "RUNE";
|
|
103
77
|
}
|
|
104
|
-
},
|
|
105
|
-
switch (
|
|
78
|
+
}, vt = (s) => {
|
|
79
|
+
switch (s) {
|
|
106
80
|
case "ETH.THOR":
|
|
107
81
|
return { identifier: "ETH.THOR-0xa5f2211b9b8170f694421f2046281775e8468044", decimal: 18 };
|
|
108
82
|
case "ETH.vTHOR":
|
|
109
83
|
return { identifier: "ETH.vTHOR-0x815c23eca83261b6ec689b60cc4a58b54bc24d8d", decimal: 18 };
|
|
110
|
-
case
|
|
111
|
-
return { identifier: "GAIA.ATOM", decimal:
|
|
112
|
-
case
|
|
113
|
-
return { identifier: "THOR.RUNE", decimal:
|
|
114
|
-
case
|
|
115
|
-
return { identifier: "BSC.BNB", decimal:
|
|
116
|
-
case
|
|
117
|
-
return { identifier: "MAYA.CACAO", decimal:
|
|
84
|
+
case o.Cosmos:
|
|
85
|
+
return { identifier: "GAIA.ATOM", decimal: m[s] };
|
|
86
|
+
case o.THORChain:
|
|
87
|
+
return { identifier: "THOR.RUNE", decimal: m[s] };
|
|
88
|
+
case o.BinanceSmartChain:
|
|
89
|
+
return { identifier: "BSC.BNB", decimal: m[s] };
|
|
90
|
+
case o.Maya:
|
|
91
|
+
return { identifier: "MAYA.CACAO", decimal: m.MAYA };
|
|
118
92
|
case "MAYA.MAYA":
|
|
119
93
|
return { identifier: "MAYA.MAYA", decimal: 4 };
|
|
120
|
-
case
|
|
121
|
-
case
|
|
122
|
-
case
|
|
123
|
-
case
|
|
124
|
-
case
|
|
125
|
-
case
|
|
126
|
-
case
|
|
127
|
-
case
|
|
128
|
-
case
|
|
129
|
-
case
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
}
|
|
94
|
+
case o.Kujira:
|
|
95
|
+
case o.Arbitrum:
|
|
96
|
+
case o.Optimism:
|
|
97
|
+
case o.BitcoinCash:
|
|
98
|
+
case o.Litecoin:
|
|
99
|
+
case o.Dogecoin:
|
|
100
|
+
case o.Binance:
|
|
101
|
+
case o.Avalanche:
|
|
102
|
+
case o.Polygon:
|
|
103
|
+
case o.Bitcoin:
|
|
104
|
+
case o.Ethereum:
|
|
105
|
+
return { identifier: `${s}.${s}`, decimal: m[s] };
|
|
106
|
+
}
|
|
107
|
+
}, Ct = ({ chain: s, symbol: t }) => {
|
|
133
108
|
if (t.includes("/"))
|
|
134
109
|
return "Synth";
|
|
135
|
-
switch (
|
|
136
|
-
case
|
|
137
|
-
case
|
|
138
|
-
case
|
|
139
|
-
case
|
|
140
|
-
case
|
|
141
|
-
case
|
|
110
|
+
switch (s) {
|
|
111
|
+
case o.Bitcoin:
|
|
112
|
+
case o.BitcoinCash:
|
|
113
|
+
case o.Dogecoin:
|
|
114
|
+
case o.Litecoin:
|
|
115
|
+
case o.Maya:
|
|
116
|
+
case o.THORChain:
|
|
142
117
|
return "Native";
|
|
143
|
-
case
|
|
144
|
-
return t === "ATOM" ? "Native" :
|
|
145
|
-
case
|
|
146
|
-
return t ===
|
|
147
|
-
case
|
|
148
|
-
return t ===
|
|
149
|
-
case
|
|
150
|
-
return t ===
|
|
151
|
-
case
|
|
152
|
-
return t ===
|
|
153
|
-
case
|
|
154
|
-
return t ===
|
|
155
|
-
case
|
|
156
|
-
return
|
|
157
|
-
case
|
|
158
|
-
return [
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
118
|
+
case o.Cosmos:
|
|
119
|
+
return t === "ATOM" ? "Native" : o.Cosmos;
|
|
120
|
+
case o.Kujira:
|
|
121
|
+
return t === o.Kujira ? "Native" : o.Kujira;
|
|
122
|
+
case o.Binance:
|
|
123
|
+
return t === o.Binance ? "Native" : "BEP2";
|
|
124
|
+
case o.BinanceSmartChain:
|
|
125
|
+
return t === o.Binance ? "Native" : "BEP20";
|
|
126
|
+
case o.Ethereum:
|
|
127
|
+
return t === o.Ethereum ? "Native" : "ERC20";
|
|
128
|
+
case o.Avalanche:
|
|
129
|
+
return t === o.Avalanche ? "Native" : o.Avalanche;
|
|
130
|
+
case o.Polygon:
|
|
131
|
+
return t === o.Polygon ? "Native" : "POLYGON";
|
|
132
|
+
case o.Arbitrum:
|
|
133
|
+
return [o.Ethereum, o.Arbitrum].includes(t) ? "Native" : "ARBITRUM";
|
|
134
|
+
case o.Optimism:
|
|
135
|
+
return [o.Ethereum, o.Optimism].includes(t) ? "Native" : "OPTIMISM";
|
|
136
|
+
}
|
|
137
|
+
}, ee = (s) => {
|
|
138
|
+
var a;
|
|
139
|
+
const [t, ...e] = s.split("."), r = s.includes("/"), n = e.join("."), i = (a = n == null ? void 0 : n.split("-")) == null ? void 0 : a[0];
|
|
140
|
+
return { chain: t, symbol: n, ticker: i, synth: r };
|
|
141
|
+
}, $t = new RegExp(
|
|
142
|
+
/(.)\1{6}|\.ORG|\.NET|\.FINANCE|\.COM|WWW|HTTP|\\\\|\/\/|[\s$%:[\]]/,
|
|
143
|
+
"gmi"
|
|
144
|
+
), re = (s) => s.filter(
|
|
145
|
+
(t) => !$t.test(t.toString()) && !t.toString().includes("undefined")
|
|
146
|
+
), It = ({
|
|
147
|
+
liquidityUnits: s,
|
|
166
148
|
poolUnits: t,
|
|
167
149
|
runeDepth: e
|
|
168
150
|
}) => {
|
|
169
|
-
const r =
|
|
170
|
-
return
|
|
171
|
-
},
|
|
172
|
-
liquidityUnits:
|
|
151
|
+
const r = d(s), n = d(t), i = d(e), a = r.mul(i), c = n.mul(n).mul(2), u = n.mul(r).mul(2), l = r.mul(r), h = n.mul(n).mul(n);
|
|
152
|
+
return a.mul(c.sub(u).add(l)).div(h);
|
|
153
|
+
}, Et = ({
|
|
154
|
+
liquidityUnits: s,
|
|
173
155
|
poolUnits: t,
|
|
174
156
|
assetDepth: e
|
|
175
157
|
}) => {
|
|
176
|
-
const r =
|
|
177
|
-
return
|
|
178
|
-
},
|
|
179
|
-
percent:
|
|
158
|
+
const r = d(s), n = d(t), i = d(e), a = r.mul(i), c = n.mul(n).mul(2), u = n.mul(r).mul(2), l = r.mul(r), h = a.mul(c.sub(u).add(l)), _ = n.mul(n).mul(n);
|
|
159
|
+
return h.div(_);
|
|
160
|
+
}, se = ({
|
|
161
|
+
percent: s,
|
|
180
162
|
runeDepth: t,
|
|
181
163
|
liquidityUnits: e,
|
|
182
164
|
poolUnits: r
|
|
183
|
-
}) =>
|
|
184
|
-
percent:
|
|
165
|
+
}) => It({ runeDepth: t, liquidityUnits: e, poolUnits: r }).mul(s), ne = ({
|
|
166
|
+
percent: s,
|
|
185
167
|
assetDepth: t,
|
|
186
168
|
liquidityUnits: e,
|
|
187
169
|
poolUnits: r
|
|
188
|
-
}) =>
|
|
189
|
-
liquidityUnits:
|
|
170
|
+
}) => Et({ assetDepth: t, liquidityUnits: e, poolUnits: r }).mul(s), d = (s) => new Qt({ value: s, decimal: m.THOR }), Ot = ({
|
|
171
|
+
liquidityUnits: s,
|
|
190
172
|
poolUnits: t,
|
|
191
173
|
runeDepth: e,
|
|
192
|
-
assetDepth: r
|
|
193
|
-
percent: s
|
|
174
|
+
assetDepth: r
|
|
194
175
|
}) => ({
|
|
195
|
-
assetAmount:
|
|
196
|
-
runeAmount:
|
|
197
|
-
}),
|
|
198
|
-
|
|
176
|
+
assetAmount: d(r).mul(s).div(t),
|
|
177
|
+
runeAmount: d(e).mul(s).div(t)
|
|
178
|
+
}), ie = ({
|
|
179
|
+
liquidityUnits: s,
|
|
180
|
+
poolUnits: t,
|
|
181
|
+
runeDepth: e,
|
|
182
|
+
assetDepth: r,
|
|
183
|
+
percent: n
|
|
184
|
+
}) => Object.fromEntries(
|
|
185
|
+
Object.entries(Ot({ liquidityUnits: s, poolUnits: t, runeDepth: e, assetDepth: r })).map(
|
|
186
|
+
([i, a]) => [i, a.mul(n)]
|
|
187
|
+
)
|
|
188
|
+
), oe = ({
|
|
189
|
+
runeDepth: s,
|
|
199
190
|
poolUnits: t,
|
|
200
191
|
assetDepth: e,
|
|
201
192
|
liquidityUnits: r,
|
|
202
|
-
runeAmount: s,
|
|
203
|
-
assetAmount: a
|
|
204
|
-
}) => {
|
|
205
|
-
const c = m(n), o = m(e), l = m(t), u = m(s), g = m(a), $ = u.mul(o), S = g.mul(c), D = u.mul(g), K = c.mul(o), tt = l.mul($.add(S.add(D.mul(2)))), et = $.add(S.add(K.mul(2))), G = tt.div(et), H = m(r).add(G);
|
|
206
|
-
if (G.baseValueNumber === 0)
|
|
207
|
-
return H.div(l).baseValueNumber;
|
|
208
|
-
const nt = l.add(H);
|
|
209
|
-
return H.div(nt).baseValueNumber;
|
|
210
|
-
}, Nt = ({
|
|
211
193
|
runeAmount: n,
|
|
194
|
+
assetAmount: i
|
|
195
|
+
}) => {
|
|
196
|
+
const a = d(s), c = d(e), u = d(t), l = d(n), h = d(i), _ = l.mul(c), T = h.mul(a), P = l.mul(h), dt = a.mul(c), mt = u.mul(_.add(T.add(P.mul(2)))), ft = _.add(T.add(dt.mul(2))), J = mt.div(ft), N = d(r).add(J);
|
|
197
|
+
if (J.baseValueNumber === 0)
|
|
198
|
+
return N.div(u).baseValueNumber;
|
|
199
|
+
const pt = u.add(N);
|
|
200
|
+
return N.div(pt).baseValueNumber;
|
|
201
|
+
}, ae = ({
|
|
202
|
+
runeAmount: s,
|
|
212
203
|
assetAmount: t,
|
|
213
204
|
runeDepth: e,
|
|
214
205
|
assetDepth: r
|
|
215
206
|
}) => {
|
|
216
|
-
const
|
|
217
|
-
return Math.abs(
|
|
218
|
-
},
|
|
219
|
-
symbol:
|
|
207
|
+
const n = d(e), i = d(r), a = d(t), c = d(s), u = a.mul(n).sub(i.mul(c)), l = i.mul(c).add(n.mul(i));
|
|
208
|
+
return Math.abs(u.div(l).baseValueNumber);
|
|
209
|
+
}, kt = ({
|
|
210
|
+
symbol: s,
|
|
220
211
|
ticker: t,
|
|
221
212
|
chain: e
|
|
222
|
-
}) => e === "ETH" && t !== "ETH" ? `${t}-${
|
|
223
|
-
switch (
|
|
224
|
-
case
|
|
225
|
-
case
|
|
213
|
+
}) => e === "ETH" && t !== "ETH" ? `${t}-${s.slice(-3)}` : s, ce = (s, t) => {
|
|
214
|
+
switch (s) {
|
|
215
|
+
case g.LEAVE:
|
|
216
|
+
case g.BOND: {
|
|
226
217
|
const { address: e } = t;
|
|
227
|
-
return `${
|
|
218
|
+
return `${s}:${e}`;
|
|
228
219
|
}
|
|
229
|
-
case
|
|
220
|
+
case g.UNBOND: {
|
|
230
221
|
const { address: e, unbondAmount: r } = t;
|
|
231
|
-
return `${
|
|
222
|
+
return `${s}:${e}:${r * 10 ** 8}`;
|
|
232
223
|
}
|
|
233
|
-
case
|
|
234
|
-
const { name: e, chain: r, address:
|
|
235
|
-
return `${
|
|
224
|
+
case g.THORNAME_REGISTER: {
|
|
225
|
+
const { name: e, chain: r, address: n, owner: i } = t;
|
|
226
|
+
return `${s}:${e}:${r}:${n}${i ? `:${i}` : ""}`;
|
|
236
227
|
}
|
|
237
|
-
case
|
|
238
|
-
const { chain: e, symbol: r, address:
|
|
239
|
-
return
|
|
228
|
+
case g.DEPOSIT: {
|
|
229
|
+
const { chain: e, symbol: r, address: n, singleSide: i } = t;
|
|
230
|
+
return i ? `${s}:${e}/${r}::t:0` : `${s}:${e}.${r}:${n || ""}:t:0`;
|
|
240
231
|
}
|
|
241
|
-
case
|
|
242
|
-
const { chain: e, ticker: r, symbol:
|
|
243
|
-
return `${
|
|
232
|
+
case g.WITHDRAW: {
|
|
233
|
+
const { chain: e, ticker: r, symbol: n, basisPoints: i, targetAssetString: a, singleSide: c } = t, u = !c && a ? `:${a}` : "", l = kt({ chain: e, symbol: n, ticker: r });
|
|
234
|
+
return `${s}:${e}${c ? "/" : "."}${l}:${i}${u}`;
|
|
244
235
|
}
|
|
245
|
-
case
|
|
246
|
-
case
|
|
236
|
+
case g.OPEN_LOAN:
|
|
237
|
+
case g.CLOSE_LOAN: {
|
|
247
238
|
const { asset: e, address: r } = t;
|
|
248
|
-
return `${
|
|
239
|
+
return `${s}:${e}:${r}`;
|
|
249
240
|
}
|
|
250
241
|
default:
|
|
251
242
|
return "";
|
|
252
243
|
}
|
|
253
|
-
},
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
}) => {
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
const
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
""
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
244
|
+
}, ue = (s) => {
|
|
245
|
+
if (s < 0)
|
|
246
|
+
throw new Error("Invalid number of year");
|
|
247
|
+
return 10 + s;
|
|
248
|
+
}, le = (s) => {
|
|
249
|
+
if (s.length > 30)
|
|
250
|
+
return !1;
|
|
251
|
+
const t = /^[a-zA-Z0-9+_-]+$/g;
|
|
252
|
+
return !!s.match(t);
|
|
253
|
+
}, he = ([s, t, e, r, n]) => `${s}'/${t}'/${e}'/${r}${typeof n != "number" ? "" : `/${n}`}`;
|
|
254
|
+
class K extends Error {
|
|
255
|
+
constructor(t, e, r) {
|
|
256
|
+
const n = t.status || t.status === 0 ? t.status : "", i = t.statusText || "", a = `${n} ${i}`.trim(), c = a ? `status code ${a}` : "an unknown error";
|
|
257
|
+
super(`Request failed with ${c}`), Object.defineProperty(this, "response", {
|
|
258
|
+
enumerable: !0,
|
|
259
|
+
configurable: !0,
|
|
260
|
+
writable: !0,
|
|
261
|
+
value: void 0
|
|
262
|
+
}), Object.defineProperty(this, "request", {
|
|
263
|
+
enumerable: !0,
|
|
264
|
+
configurable: !0,
|
|
265
|
+
writable: !0,
|
|
266
|
+
value: void 0
|
|
267
|
+
}), Object.defineProperty(this, "options", {
|
|
268
|
+
enumerable: !0,
|
|
269
|
+
configurable: !0,
|
|
270
|
+
writable: !0,
|
|
271
|
+
value: void 0
|
|
272
|
+
}), this.name = "HTTPError", this.response = t, this.request = e, this.options = r;
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
class nt extends Error {
|
|
276
|
+
constructor(t) {
|
|
277
|
+
super("Request timed out"), Object.defineProperty(this, "request", {
|
|
278
|
+
enumerable: !0,
|
|
279
|
+
configurable: !0,
|
|
280
|
+
writable: !0,
|
|
281
|
+
value: void 0
|
|
282
|
+
}), this.name = "TimeoutError", this.request = t;
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
const V = (s) => s !== null && typeof s == "object", B = (...s) => {
|
|
286
|
+
for (const t of s)
|
|
287
|
+
if ((!V(t) || Array.isArray(t)) && t !== void 0)
|
|
288
|
+
throw new TypeError("The `options` argument must be an object");
|
|
289
|
+
return z({}, ...s);
|
|
290
|
+
}, it = (s = {}, t = {}) => {
|
|
291
|
+
const e = new globalThis.Headers(s), r = t instanceof globalThis.Headers, n = new globalThis.Headers(t);
|
|
292
|
+
for (const [i, a] of n.entries())
|
|
293
|
+
r && a === "undefined" || a === void 0 ? e.delete(i) : e.set(i, a);
|
|
294
|
+
return e;
|
|
295
|
+
}, z = (...s) => {
|
|
296
|
+
let t = {}, e = {};
|
|
297
|
+
for (const r of s)
|
|
298
|
+
if (Array.isArray(r))
|
|
299
|
+
Array.isArray(t) || (t = []), t = [...t, ...r];
|
|
300
|
+
else if (V(r)) {
|
|
301
|
+
for (let [n, i] of Object.entries(r))
|
|
302
|
+
V(i) && n in t && (i = z(t[n], i)), t = { ...t, [n]: i };
|
|
303
|
+
V(r.headers) && (e = it(e, r.headers), t.headers = e);
|
|
304
|
+
}
|
|
305
|
+
return t;
|
|
306
|
+
}, Bt = (() => {
|
|
307
|
+
let s = !1, t = !1;
|
|
308
|
+
const e = typeof globalThis.ReadableStream == "function", r = typeof globalThis.Request == "function";
|
|
309
|
+
return e && r && (t = new globalThis.Request("https://empty.invalid", {
|
|
310
|
+
body: new globalThis.ReadableStream(),
|
|
311
|
+
method: "POST",
|
|
312
|
+
// @ts-expect-error - Types are outdated.
|
|
313
|
+
get duplex() {
|
|
314
|
+
return s = !0, "half";
|
|
315
|
+
}
|
|
316
|
+
}).headers.has("Content-Type")), s && !t;
|
|
317
|
+
})(), Vt = typeof globalThis.AbortController == "function", qt = typeof globalThis.ReadableStream == "function", Mt = typeof globalThis.FormData == "function", ot = ["get", "post", "put", "patch", "head", "delete"], xt = {
|
|
318
|
+
json: "application/json",
|
|
319
|
+
text: "text/*",
|
|
320
|
+
formData: "multipart/form-data",
|
|
321
|
+
arrayBuffer: "*/*",
|
|
322
|
+
blob: "*/*"
|
|
323
|
+
}, j = 2147483647, at = Symbol("stop"), Pt = {
|
|
324
|
+
json: !0,
|
|
325
|
+
parseJson: !0,
|
|
326
|
+
searchParams: !0,
|
|
327
|
+
prefixUrl: !0,
|
|
328
|
+
retry: !0,
|
|
329
|
+
timeout: !0,
|
|
330
|
+
hooks: !0,
|
|
331
|
+
throwHttpErrors: !0,
|
|
332
|
+
onDownloadProgress: !0,
|
|
333
|
+
fetch: !0
|
|
334
|
+
}, Nt = {
|
|
335
|
+
method: !0,
|
|
336
|
+
headers: !0,
|
|
337
|
+
body: !0,
|
|
338
|
+
mode: !0,
|
|
339
|
+
credentials: !0,
|
|
340
|
+
cache: !0,
|
|
341
|
+
redirect: !0,
|
|
342
|
+
referrer: !0,
|
|
343
|
+
referrerPolicy: !0,
|
|
344
|
+
integrity: !0,
|
|
345
|
+
keepalive: !0,
|
|
346
|
+
signal: !0,
|
|
347
|
+
window: !0,
|
|
348
|
+
dispatcher: !0,
|
|
349
|
+
duplex: !0
|
|
350
|
+
}, Ht = (s) => ot.includes(s) ? s.toUpperCase() : s, jt = ["get", "put", "head", "delete", "options", "trace"], Lt = [408, 413, 429, 500, 502, 503, 504], ct = [413, 429, 503], Q = {
|
|
351
|
+
limit: 2,
|
|
352
|
+
methods: jt,
|
|
353
|
+
statusCodes: Lt,
|
|
354
|
+
afterStatusCodes: ct,
|
|
355
|
+
maxRetryAfter: Number.POSITIVE_INFINITY,
|
|
356
|
+
backoffLimit: Number.POSITIVE_INFINITY,
|
|
357
|
+
delay: (s) => 0.3 * 2 ** (s - 1) * 1e3
|
|
358
|
+
}, Dt = (s = {}) => {
|
|
359
|
+
if (typeof s == "number")
|
|
360
|
+
return {
|
|
361
|
+
...Q,
|
|
362
|
+
limit: s
|
|
363
|
+
};
|
|
364
|
+
if (s.methods && !Array.isArray(s.methods))
|
|
365
|
+
throw new Error("retry.methods must be an array");
|
|
366
|
+
if (s.statusCodes && !Array.isArray(s.statusCodes))
|
|
367
|
+
throw new Error("retry.statusCodes must be an array");
|
|
368
|
+
return {
|
|
369
|
+
...Q,
|
|
370
|
+
...s,
|
|
371
|
+
afterStatusCodes: ct
|
|
372
|
+
};
|
|
373
|
+
};
|
|
374
|
+
async function Ut(s, t, e, r) {
|
|
375
|
+
return new Promise((n, i) => {
|
|
376
|
+
const a = setTimeout(() => {
|
|
377
|
+
e && e.abort(), i(new nt(s));
|
|
378
|
+
}, r.timeout);
|
|
379
|
+
r.fetch(s, t).then(n).catch(i).then(() => {
|
|
380
|
+
clearTimeout(a);
|
|
381
|
+
});
|
|
382
|
+
});
|
|
383
|
+
}
|
|
384
|
+
async function Ft(s, { signal: t }) {
|
|
385
|
+
return new Promise((e, r) => {
|
|
386
|
+
t && (t.throwIfAborted(), t.addEventListener("abort", n, { once: !0 }));
|
|
387
|
+
function n() {
|
|
388
|
+
clearTimeout(i), r(t.reason);
|
|
389
|
+
}
|
|
390
|
+
const i = setTimeout(() => {
|
|
391
|
+
t == null || t.removeEventListener("abort", n), e();
|
|
392
|
+
}, s);
|
|
393
|
+
});
|
|
394
|
+
}
|
|
395
|
+
const Wt = (s, t) => {
|
|
396
|
+
const e = {};
|
|
397
|
+
for (const r in t)
|
|
398
|
+
!(r in Nt) && !(r in Pt) && !(r in s) && (e[r] = t[r]);
|
|
399
|
+
return e;
|
|
400
|
+
};
|
|
401
|
+
class q {
|
|
402
|
+
static create(t, e) {
|
|
403
|
+
const r = new q(t, e), n = async () => {
|
|
404
|
+
if (typeof r._options.timeout == "number" && r._options.timeout > j)
|
|
405
|
+
throw new RangeError(`The \`timeout\` option cannot be greater than ${j}`);
|
|
406
|
+
await Promise.resolve();
|
|
407
|
+
let c = await r._fetch();
|
|
408
|
+
for (const u of r._options.hooks.afterResponse) {
|
|
409
|
+
const l = await u(r.request, r._options, r._decorateResponse(c.clone()));
|
|
410
|
+
l instanceof globalThis.Response && (c = l);
|
|
411
|
+
}
|
|
412
|
+
if (r._decorateResponse(c), !c.ok && r._options.throwHttpErrors) {
|
|
413
|
+
let u = new K(c, r.request, r._options);
|
|
414
|
+
for (const l of r._options.hooks.beforeError)
|
|
415
|
+
u = await l(u);
|
|
416
|
+
throw u;
|
|
417
|
+
}
|
|
418
|
+
if (r._options.onDownloadProgress) {
|
|
419
|
+
if (typeof r._options.onDownloadProgress != "function")
|
|
420
|
+
throw new TypeError("The `onDownloadProgress` option must be a function");
|
|
421
|
+
if (!qt)
|
|
422
|
+
throw new Error("Streams are not supported in your environment. `ReadableStream` is missing.");
|
|
423
|
+
return r._stream(c.clone(), r._options.onDownloadProgress);
|
|
424
|
+
}
|
|
425
|
+
return c;
|
|
426
|
+
}, a = r._options.retry.methods.includes(r.request.method.toLowerCase()) ? r._retry(n) : n();
|
|
427
|
+
for (const [c, u] of Object.entries(xt))
|
|
428
|
+
a[c] = async () => {
|
|
429
|
+
r.request.headers.set("accept", r.request.headers.get("accept") || u);
|
|
430
|
+
const h = (await a).clone();
|
|
431
|
+
if (c === "json") {
|
|
432
|
+
if (h.status === 204 || (await h.clone().arrayBuffer()).byteLength === 0)
|
|
433
|
+
return "";
|
|
434
|
+
if (e.parseJson)
|
|
435
|
+
return e.parseJson(await h.text());
|
|
436
|
+
}
|
|
437
|
+
return h[c]();
|
|
438
|
+
};
|
|
439
|
+
return a;
|
|
440
|
+
}
|
|
441
|
+
// eslint-disable-next-line complexity
|
|
442
|
+
constructor(t, e = {}) {
|
|
443
|
+
if (Object.defineProperty(this, "request", {
|
|
444
|
+
enumerable: !0,
|
|
445
|
+
configurable: !0,
|
|
446
|
+
writable: !0,
|
|
447
|
+
value: void 0
|
|
448
|
+
}), Object.defineProperty(this, "abortController", {
|
|
449
|
+
enumerable: !0,
|
|
450
|
+
configurable: !0,
|
|
451
|
+
writable: !0,
|
|
452
|
+
value: void 0
|
|
453
|
+
}), Object.defineProperty(this, "_retryCount", {
|
|
454
|
+
enumerable: !0,
|
|
455
|
+
configurable: !0,
|
|
456
|
+
writable: !0,
|
|
457
|
+
value: 0
|
|
458
|
+
}), Object.defineProperty(this, "_input", {
|
|
459
|
+
enumerable: !0,
|
|
460
|
+
configurable: !0,
|
|
461
|
+
writable: !0,
|
|
462
|
+
value: void 0
|
|
463
|
+
}), Object.defineProperty(this, "_options", {
|
|
464
|
+
enumerable: !0,
|
|
465
|
+
configurable: !0,
|
|
466
|
+
writable: !0,
|
|
467
|
+
value: void 0
|
|
468
|
+
}), this._input = t, this._options = {
|
|
469
|
+
// TODO: credentials can be removed when the spec change is implemented in all browsers. Context: https://www.chromestatus.com/feature/4539473312350208
|
|
470
|
+
credentials: this._input.credentials || "same-origin",
|
|
471
|
+
...e,
|
|
472
|
+
headers: it(this._input.headers, e.headers),
|
|
473
|
+
hooks: z({
|
|
474
|
+
beforeRequest: [],
|
|
475
|
+
beforeRetry: [],
|
|
476
|
+
beforeError: [],
|
|
477
|
+
afterResponse: []
|
|
478
|
+
}, e.hooks),
|
|
479
|
+
method: Ht(e.method ?? this._input.method),
|
|
480
|
+
// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
|
|
481
|
+
prefixUrl: String(e.prefixUrl || ""),
|
|
482
|
+
retry: Dt(e.retry),
|
|
483
|
+
throwHttpErrors: e.throwHttpErrors !== !1,
|
|
484
|
+
timeout: e.timeout ?? 1e4,
|
|
485
|
+
fetch: e.fetch ?? globalThis.fetch.bind(globalThis)
|
|
486
|
+
}, typeof this._input != "string" && !(this._input instanceof URL || this._input instanceof globalThis.Request))
|
|
487
|
+
throw new TypeError("`input` must be a string, URL, or Request");
|
|
488
|
+
if (this._options.prefixUrl && typeof this._input == "string") {
|
|
489
|
+
if (this._input.startsWith("/"))
|
|
490
|
+
throw new Error("`input` must not begin with a slash when using `prefixUrl`");
|
|
491
|
+
this._options.prefixUrl.endsWith("/") || (this._options.prefixUrl += "/"), this._input = this._options.prefixUrl + this._input;
|
|
492
|
+
}
|
|
493
|
+
if (Vt) {
|
|
494
|
+
if (this.abortController = new globalThis.AbortController(), this._options.signal) {
|
|
495
|
+
const r = this._options.signal;
|
|
496
|
+
this._options.signal.addEventListener("abort", () => {
|
|
497
|
+
this.abortController.abort(r.reason);
|
|
498
|
+
});
|
|
499
|
+
}
|
|
500
|
+
this._options.signal = this.abortController.signal;
|
|
501
|
+
}
|
|
502
|
+
if (Bt && (this._options.duplex = "half"), this.request = new globalThis.Request(this._input, this._options), this._options.searchParams) {
|
|
503
|
+
const n = "?" + (typeof this._options.searchParams == "string" ? this._options.searchParams.replace(/^\?/, "") : new URLSearchParams(this._options.searchParams).toString()), i = this.request.url.replace(/(?:\?.*?)?(?=#|$)/, n);
|
|
504
|
+
(Mt && this._options.body instanceof globalThis.FormData || this._options.body instanceof URLSearchParams) && !(this._options.headers && this._options.headers["content-type"]) && this.request.headers.delete("content-type"), this.request = new globalThis.Request(new globalThis.Request(i, { ...this.request }), this._options);
|
|
505
|
+
}
|
|
506
|
+
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 }));
|
|
507
|
+
}
|
|
508
|
+
_calculateRetryDelay(t) {
|
|
509
|
+
if (this._retryCount++, this._retryCount < this._options.retry.limit && !(t instanceof nt)) {
|
|
510
|
+
if (t instanceof K) {
|
|
511
|
+
if (!this._options.retry.statusCodes.includes(t.response.status))
|
|
512
|
+
return 0;
|
|
513
|
+
const r = t.response.headers.get("Retry-After");
|
|
514
|
+
if (r && this._options.retry.afterStatusCodes.includes(t.response.status)) {
|
|
515
|
+
let n = Number(r);
|
|
516
|
+
return Number.isNaN(n) ? n = Date.parse(r) - Date.now() : n *= 1e3, this._options.retry.maxRetryAfter !== void 0 && n > this._options.retry.maxRetryAfter ? 0 : n;
|
|
517
|
+
}
|
|
518
|
+
if (t.response.status === 413)
|
|
519
|
+
return 0;
|
|
520
|
+
}
|
|
521
|
+
const e = this._options.retry.delay(this._retryCount);
|
|
522
|
+
return Math.min(this._options.retry.backoffLimit, e);
|
|
523
|
+
}
|
|
524
|
+
return 0;
|
|
525
|
+
}
|
|
526
|
+
_decorateResponse(t) {
|
|
527
|
+
return this._options.parseJson && (t.json = async () => this._options.parseJson(await t.text())), t;
|
|
528
|
+
}
|
|
529
|
+
async _retry(t) {
|
|
530
|
+
try {
|
|
531
|
+
return await t();
|
|
532
|
+
} catch (e) {
|
|
533
|
+
const r = Math.min(this._calculateRetryDelay(e), j);
|
|
534
|
+
if (r !== 0 && this._retryCount > 0) {
|
|
535
|
+
await Ft(r, { signal: this._options.signal });
|
|
536
|
+
for (const n of this._options.hooks.beforeRetry)
|
|
537
|
+
if (await n({
|
|
538
|
+
request: this.request,
|
|
539
|
+
options: this._options,
|
|
540
|
+
error: e,
|
|
541
|
+
retryCount: this._retryCount
|
|
542
|
+
}) === at)
|
|
543
|
+
return;
|
|
544
|
+
return this._retry(t);
|
|
545
|
+
}
|
|
546
|
+
throw e;
|
|
547
|
+
}
|
|
548
|
+
}
|
|
549
|
+
async _fetch() {
|
|
550
|
+
for (const e of this._options.hooks.beforeRequest) {
|
|
551
|
+
const r = await e(this.request, this._options);
|
|
552
|
+
if (r instanceof Request) {
|
|
553
|
+
this.request = r;
|
|
554
|
+
break;
|
|
555
|
+
}
|
|
556
|
+
if (r instanceof Response)
|
|
557
|
+
return r;
|
|
558
|
+
}
|
|
559
|
+
const t = Wt(this.request, this._options);
|
|
560
|
+
return this._options.timeout === !1 ? this._options.fetch(this.request.clone(), t) : Ut(this.request.clone(), t, this.abortController, this._options);
|
|
561
|
+
}
|
|
562
|
+
/* istanbul ignore next */
|
|
563
|
+
_stream(t, e) {
|
|
564
|
+
const r = Number(t.headers.get("content-length")) || 0;
|
|
565
|
+
let n = 0;
|
|
566
|
+
return t.status === 204 ? (e && e({ percent: 1, totalBytes: r, transferredBytes: n }, new Uint8Array()), new globalThis.Response(null, {
|
|
567
|
+
status: t.status,
|
|
568
|
+
statusText: t.statusText,
|
|
569
|
+
headers: t.headers
|
|
570
|
+
})) : new globalThis.Response(new globalThis.ReadableStream({
|
|
571
|
+
async start(i) {
|
|
572
|
+
const a = t.body.getReader();
|
|
573
|
+
e && e({ percent: 0, transferredBytes: 0, totalBytes: r }, new Uint8Array());
|
|
574
|
+
async function c() {
|
|
575
|
+
const { done: u, value: l } = await a.read();
|
|
576
|
+
if (u) {
|
|
577
|
+
i.close();
|
|
578
|
+
return;
|
|
579
|
+
}
|
|
580
|
+
if (e) {
|
|
581
|
+
n += l.byteLength;
|
|
582
|
+
const h = r === 0 ? 0 : n / r;
|
|
583
|
+
e({ percent: h, transferredBytes: n, totalBytes: r }, l);
|
|
584
|
+
}
|
|
585
|
+
i.enqueue(l), await c();
|
|
586
|
+
}
|
|
587
|
+
await c();
|
|
588
|
+
}
|
|
589
|
+
}), {
|
|
590
|
+
status: t.status,
|
|
591
|
+
statusText: t.statusText,
|
|
592
|
+
headers: t.headers
|
|
593
|
+
});
|
|
594
|
+
}
|
|
595
|
+
}
|
|
596
|
+
/*! MIT License © Sindre Sorhus */
|
|
597
|
+
const U = (s) => {
|
|
598
|
+
const t = (e, r) => q.create(e, B(s, r));
|
|
599
|
+
for (const e of ot)
|
|
600
|
+
t[e] = (r, n) => q.create(r, B(s, n, { method: e }));
|
|
601
|
+
return t.create = (e) => U(B(e)), t.extend = (e) => U(B(s, e)), t.stop = at, t;
|
|
602
|
+
}, Gt = U(), Yt = Gt, X = Yt.create({
|
|
603
|
+
headers: {
|
|
604
|
+
referrer: "https://sk.thorswap.net",
|
|
605
|
+
referer: "https://sk.thorswap.net",
|
|
606
|
+
"Content-Type": "application/json"
|
|
607
|
+
}
|
|
608
|
+
}), zt = {
|
|
609
|
+
get: (s, t) => X.get(s, t).json(),
|
|
610
|
+
post: (s, t) => X.post(s, t).json()
|
|
611
|
+
}, Z = Object.values(o), Jt = (s = "") => {
|
|
612
|
+
const t = s.toUpperCase(), [e] = t.split(".");
|
|
613
|
+
if (Z.includes(e))
|
|
271
614
|
return !0;
|
|
272
615
|
const [r] = t.split("/");
|
|
273
|
-
if (
|
|
616
|
+
if (Z.includes(r))
|
|
274
617
|
return !0;
|
|
275
618
|
throw new Error(
|
|
276
|
-
`Invalid identifier: ${
|
|
619
|
+
`Invalid identifier: ${s}. Expected format: <Chain>.<Ticker> or <Chain>.<Ticker>-<ContractAddress>`
|
|
277
620
|
);
|
|
278
|
-
},
|
|
279
|
-
|
|
280
|
-
|
|
621
|
+
}, $ = 8, R = (s) => 10n ** BigInt(s), S = (s) => Math.log10(parseFloat(s.toString()));
|
|
622
|
+
function tt({
|
|
623
|
+
value: s,
|
|
624
|
+
bigIntDecimal: t = $,
|
|
625
|
+
decimal: e = $
|
|
626
|
+
}) {
|
|
627
|
+
const r = s < 0n;
|
|
628
|
+
let n = s.toString().substring(r ? 1 : 0);
|
|
629
|
+
const i = e - (n.length - 1);
|
|
630
|
+
i > 0 && (n = "0".repeat(i) + n);
|
|
631
|
+
const a = n.length - e;
|
|
632
|
+
let c = n.slice(-e);
|
|
633
|
+
return parseInt(c[t]) >= 5 ? c = `${c.substring(0, t - 1)}${(parseInt(c[t - 1]) + 1).toString()}` : c = c.substring(0, t), `${r ? "-" : ""}${n.slice(0, a)}.${c}`.replace(
|
|
634
|
+
/\.?0*$/,
|
|
635
|
+
""
|
|
636
|
+
);
|
|
637
|
+
}
|
|
638
|
+
var w, v, M, ut, x, lt, O, F, A, C, k, W;
|
|
639
|
+
const I = class I {
|
|
281
640
|
constructor(t) {
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
p(this,
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
), d(this, R, J).call(this, r);
|
|
641
|
+
y(this, w);
|
|
642
|
+
y(this, M);
|
|
643
|
+
y(this, x);
|
|
644
|
+
y(this, O);
|
|
645
|
+
y(this, A);
|
|
646
|
+
y(this, k);
|
|
647
|
+
p(this, "decimalMultiplier", 10n ** 8n);
|
|
648
|
+
p(this, "bigIntValue", 0n);
|
|
649
|
+
p(this, "decimal");
|
|
650
|
+
const e = L(t);
|
|
651
|
+
this.decimal = typeof t == "object" ? t.decimal : void 0, this.decimalMultiplier = R(
|
|
652
|
+
Math.max(f(this, k, W).call(this, f(this, A, C).call(this, e)), this.decimal || 0)
|
|
653
|
+
), f(this, M, ut).call(this, e);
|
|
296
654
|
}
|
|
297
655
|
static fromBigInt(t, e) {
|
|
298
|
-
return new
|
|
656
|
+
return new I({
|
|
299
657
|
decimal: e,
|
|
300
|
-
value:
|
|
658
|
+
value: tt({ value: t, bigIntDecimal: e, decimal: e })
|
|
301
659
|
});
|
|
302
660
|
}
|
|
303
661
|
static shiftDecimals({
|
|
@@ -305,40 +663,43 @@ const M = class M {
|
|
|
305
663
|
from: e,
|
|
306
664
|
to: r
|
|
307
665
|
}) {
|
|
308
|
-
return
|
|
309
|
-
new
|
|
666
|
+
return I.fromBigInt(
|
|
667
|
+
new I(t).bigIntValue * R(r) / R(e),
|
|
310
668
|
r
|
|
311
669
|
);
|
|
312
670
|
}
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
671
|
+
/**
|
|
672
|
+
* @deprecated Use `getBaseValue('string')` instead
|
|
673
|
+
*/
|
|
316
674
|
get baseValue() {
|
|
317
|
-
return
|
|
675
|
+
return this.getBaseValue("string");
|
|
318
676
|
}
|
|
677
|
+
/**
|
|
678
|
+
* @deprecated Use `getBaseValue('number')` instead
|
|
679
|
+
*/
|
|
319
680
|
get baseValueNumber() {
|
|
320
|
-
return
|
|
681
|
+
return this.getBaseValue("number");
|
|
321
682
|
}
|
|
683
|
+
/**
|
|
684
|
+
* @deprecated Use `getBaseValue('bigint')` instead
|
|
685
|
+
*/
|
|
322
686
|
get baseValueBigInt() {
|
|
323
|
-
return
|
|
687
|
+
return this.getBaseValue("bigint");
|
|
324
688
|
}
|
|
325
|
-
|
|
326
|
-
return this.
|
|
327
|
-
this.bigIntValue,
|
|
328
|
-
this.decimal || C(this.decimalMultiplier)
|
|
329
|
-
);
|
|
689
|
+
set(t) {
|
|
690
|
+
return new this.constructor({ decimal: this.decimal, value: t, identifier: this.toString() });
|
|
330
691
|
}
|
|
331
692
|
add(...t) {
|
|
332
|
-
return
|
|
693
|
+
return f(this, w, v).call(this, "add", ...t);
|
|
333
694
|
}
|
|
334
695
|
sub(...t) {
|
|
335
|
-
return
|
|
696
|
+
return f(this, w, v).call(this, "sub", ...t);
|
|
336
697
|
}
|
|
337
698
|
mul(...t) {
|
|
338
|
-
return
|
|
699
|
+
return f(this, w, v).call(this, "mul", ...t);
|
|
339
700
|
}
|
|
340
701
|
div(...t) {
|
|
341
|
-
return
|
|
702
|
+
return f(this, w, v).call(this, "div", ...t);
|
|
342
703
|
}
|
|
343
704
|
gt(t) {
|
|
344
705
|
return this.bigIntValue > this.getBigIntValue(t);
|
|
@@ -355,136 +716,199 @@ const M = class M {
|
|
|
355
716
|
eqValue(t) {
|
|
356
717
|
return this.bigIntValue === this.getBigIntValue(t);
|
|
357
718
|
}
|
|
719
|
+
getValue(t) {
|
|
720
|
+
const e = this.formatBigIntToSafeValue(
|
|
721
|
+
this.bigIntValue,
|
|
722
|
+
this.decimal || S(this.decimalMultiplier)
|
|
723
|
+
);
|
|
724
|
+
switch (t) {
|
|
725
|
+
case "number":
|
|
726
|
+
return Number(e);
|
|
727
|
+
case "string":
|
|
728
|
+
return e;
|
|
729
|
+
default:
|
|
730
|
+
return this.bigIntValue * BigInt(this.decimal || 8n) / this.decimalMultiplier;
|
|
731
|
+
}
|
|
732
|
+
}
|
|
733
|
+
getBaseValue(t) {
|
|
734
|
+
const e = this.decimalMultiplier / R(this.decimal || m.THOR), r = this.bigIntValue / e;
|
|
735
|
+
switch (t) {
|
|
736
|
+
case "number":
|
|
737
|
+
return Number(r);
|
|
738
|
+
case "string":
|
|
739
|
+
return r.toString();
|
|
740
|
+
default:
|
|
741
|
+
return r;
|
|
742
|
+
}
|
|
743
|
+
}
|
|
358
744
|
getBigIntValue(t, e) {
|
|
359
|
-
|
|
745
|
+
if (!e && typeof t == "object")
|
|
746
|
+
return t.bigIntValue;
|
|
747
|
+
const r = L(t), n = f(this, A, C).call(this, r);
|
|
748
|
+
return n === "0" || n === "undefined" ? 0n : f(this, O, F).call(this, n, e);
|
|
360
749
|
}
|
|
361
750
|
formatBigIntToSafeValue(t, e) {
|
|
362
|
-
const r = e || this.decimal ||
|
|
751
|
+
const r = e || this.decimal || $, n = Math.max(
|
|
363
752
|
r,
|
|
364
|
-
|
|
365
|
-
),
|
|
366
|
-
let
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
)
|
|
753
|
+
S(this.decimalMultiplier)
|
|
754
|
+
), i = t < 0n, a = t.toString().substring(i ? 1 : 0), c = n - (a.length - 1), u = c > 0 ? "0".repeat(c) + a : a, l = u.length - n;
|
|
755
|
+
let h = u.slice(-n);
|
|
756
|
+
return parseInt(h[r]) >= 5 ? h = `${h.substring(0, r - 1)}${(parseInt(h[r - 1]) + 1).toString()}` : h = h.substring(0, r), `${i ? "-" : ""}${u.slice(
|
|
757
|
+
0,
|
|
758
|
+
l
|
|
759
|
+
)}.${h}`.replace(/\.?0*$/, "");
|
|
760
|
+
}
|
|
761
|
+
toSignificant(t = 6) {
|
|
762
|
+
const [e, r] = this.getValue("string").split("."), n = e || "", i = r || "", a = parseInt(n) ? n.length + i.length : i.length;
|
|
763
|
+
if (a <= t)
|
|
764
|
+
return this.getValue("string");
|
|
765
|
+
if (n.length >= t)
|
|
766
|
+
return n.slice(0, t).padEnd(n.length, "0");
|
|
767
|
+
if (parseInt(n))
|
|
768
|
+
return `${n}.${i.slice(0, t - n.length)}`.padEnd(
|
|
769
|
+
a - t,
|
|
770
|
+
"0"
|
|
771
|
+
);
|
|
772
|
+
const c = parseInt(i), u = `${c}`.slice(0, t);
|
|
773
|
+
return `0.${u.padStart(
|
|
774
|
+
i.length - `${c}`.length + u.length,
|
|
775
|
+
"0"
|
|
776
|
+
)}`;
|
|
375
777
|
}
|
|
376
|
-
|
|
377
|
-
const e = this.
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
778
|
+
toFixed(t = 6) {
|
|
779
|
+
const [e, r] = this.getValue("string").split("."), n = e || "", i = r || "";
|
|
780
|
+
if (parseInt(n))
|
|
781
|
+
return `${n}.${i.slice(0, t)}`.padEnd(t, "0");
|
|
782
|
+
const a = parseInt(i), c = `${a}`.slice(0, t);
|
|
783
|
+
return `0.${c.padStart(
|
|
784
|
+
i.length - `${a}`.length + c.length,
|
|
785
|
+
"0"
|
|
786
|
+
)}`;
|
|
382
787
|
}
|
|
383
788
|
};
|
|
384
|
-
w = new WeakSet(),
|
|
385
|
-
const r =
|
|
386
|
-
(
|
|
387
|
-
const
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
789
|
+
w = new WeakSet(), v = function(t, ...e) {
|
|
790
|
+
const r = f(this, x, lt).call(this, this, ...e), n = R(r), i = e.reduce(
|
|
791
|
+
(c, u) => {
|
|
792
|
+
const l = this.getBigIntValue(u, r);
|
|
793
|
+
switch (t) {
|
|
794
|
+
case "add":
|
|
795
|
+
return c + l;
|
|
796
|
+
case "sub":
|
|
797
|
+
return c - l;
|
|
798
|
+
case "mul":
|
|
799
|
+
return c * l / n;
|
|
800
|
+
case "div": {
|
|
801
|
+
if (l === 0n)
|
|
802
|
+
throw new RangeError("Division by zero");
|
|
803
|
+
return c * n / l;
|
|
804
|
+
}
|
|
805
|
+
default:
|
|
806
|
+
return c;
|
|
807
|
+
}
|
|
391
808
|
},
|
|
392
809
|
//normalize is to precision multiplier base
|
|
393
|
-
this.bigIntValue *
|
|
394
|
-
),
|
|
810
|
+
this.bigIntValue * n / this.decimalMultiplier
|
|
811
|
+
), a = tt({
|
|
395
812
|
bigIntDecimal: r,
|
|
396
|
-
decimal: Math.max(r,
|
|
397
|
-
value:
|
|
813
|
+
decimal: Math.max(r, S(this.decimalMultiplier)),
|
|
814
|
+
value: i
|
|
398
815
|
});
|
|
399
|
-
return new this.constructor({ decimal: this.decimal, value:
|
|
400
|
-
},
|
|
401
|
-
const
|
|
402
|
-
this.bigIntValue =
|
|
403
|
-
},
|
|
816
|
+
return new this.constructor({ decimal: this.decimal, value: a, identifier: this.toString() });
|
|
817
|
+
}, M = new WeakSet(), ut = function(t) {
|
|
818
|
+
const e = f(this, A, C).call(this, t) || "0";
|
|
819
|
+
this.bigIntValue = f(this, O, F).call(this, e);
|
|
820
|
+
}, x = new WeakSet(), lt = function(...t) {
|
|
404
821
|
const e = t.map(
|
|
405
|
-
(r) => typeof r == "object" ? r.decimal ||
|
|
822
|
+
(r) => typeof r == "object" ? r.decimal || S(r.decimalMultiplier) : f(this, k, W).call(this, f(this, A, C).call(this, r))
|
|
406
823
|
).filter(Boolean);
|
|
407
|
-
return Math.max(...e,
|
|
408
|
-
},
|
|
409
|
-
const r = e ?
|
|
410
|
-
return BigInt(`${
|
|
411
|
-
},
|
|
824
|
+
return Math.max(...e, $);
|
|
825
|
+
}, O = new WeakSet(), F = function(t, e) {
|
|
826
|
+
const r = e ? R(e) : this.decimalMultiplier, n = S(r), [i = "", a = ""] = t.split(".");
|
|
827
|
+
return BigInt(`${i}${a.padEnd(n, "0")}`);
|
|
828
|
+
}, A = new WeakSet(), C = function(t) {
|
|
412
829
|
const r = `${typeof t == "number" ? Number(t).toLocaleString("fullwide", {
|
|
413
830
|
useGrouping: !1,
|
|
414
831
|
maximumFractionDigits: 20
|
|
415
|
-
}) : t}`.replaceAll(",", ".").split(".");
|
|
832
|
+
}) : L(t)}`.replaceAll(",", ".").split(".");
|
|
416
833
|
return r.length > 1 ? `${r.slice(0, -1).join("")}.${r.at(-1)}` : r[0];
|
|
417
|
-
},
|
|
834
|
+
}, k = new WeakSet(), W = function(t) {
|
|
418
835
|
var r;
|
|
419
836
|
const e = ((r = t.split(".")[1]) == null ? void 0 : r.length) || 0;
|
|
420
|
-
return Math.max(e,
|
|
421
|
-
}, v = new WeakSet(), N = function(t) {
|
|
422
|
-
const e = this.decimalMultiplier / I(this.decimal || 0), r = this.bigIntValue / e;
|
|
423
|
-
switch (t) {
|
|
424
|
-
case "number":
|
|
425
|
-
return Number(r);
|
|
426
|
-
case "string":
|
|
427
|
-
return r.toString();
|
|
428
|
-
default:
|
|
429
|
-
return r;
|
|
430
|
-
}
|
|
837
|
+
return Math.max(e, $);
|
|
431
838
|
};
|
|
432
|
-
let E =
|
|
433
|
-
|
|
434
|
-
|
|
839
|
+
let E = I;
|
|
840
|
+
function L(s) {
|
|
841
|
+
return typeof s == "object" ? "getValue" in s ? s.getValue("string") : s.value : s;
|
|
842
|
+
}
|
|
843
|
+
let G;
|
|
844
|
+
const D = (s) => {
|
|
845
|
+
if (!G)
|
|
435
846
|
throw new Error("Static assets not loaded, call await AssetValue.loadStaticAssets() first");
|
|
436
|
-
return
|
|
437
|
-
},
|
|
438
|
-
|
|
439
|
-
const e = await
|
|
440
|
-
return new
|
|
847
|
+
return G.get(s.toUpperCase()) || { decimal: m.THOR, identifier: "" };
|
|
848
|
+
}, et = async (s, t = 0) => {
|
|
849
|
+
Jt(s);
|
|
850
|
+
const e = await st(Y(s));
|
|
851
|
+
return new b({ decimal: e, value: t, identifier: s });
|
|
441
852
|
};
|
|
442
|
-
class
|
|
853
|
+
class b extends E {
|
|
443
854
|
constructor(e) {
|
|
444
855
|
super(
|
|
445
856
|
e.value instanceof E ? e.value : { decimal: e.decimal, value: e.value }
|
|
446
857
|
);
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
const r = "identifier" in e ? e.identifier : `${e.chain}.${e.symbol}`,
|
|
455
|
-
this.type =
|
|
858
|
+
p(this, "address");
|
|
859
|
+
p(this, "chain");
|
|
860
|
+
p(this, "isSynthetic", !1);
|
|
861
|
+
p(this, "isGasAsset", !1);
|
|
862
|
+
p(this, "symbol");
|
|
863
|
+
p(this, "ticker");
|
|
864
|
+
p(this, "type");
|
|
865
|
+
const r = "identifier" in e ? e.identifier : `${e.chain}.${e.symbol}`, n = Y(r);
|
|
866
|
+
this.type = Ct(n), this.chain = n.chain, this.ticker = n.ticker, this.symbol = n.symbol, this.address = n.address, this.isSynthetic = n.isSynthetic, this.isGasAsset = n.isGasAsset;
|
|
867
|
+
}
|
|
868
|
+
get assetValue() {
|
|
869
|
+
return `${this.getValue("string")} ${this.ticker}`;
|
|
870
|
+
}
|
|
871
|
+
toString(e = !1) {
|
|
872
|
+
const r = this.isSynthetic ? this.ticker : `${this.chain}.${this.ticker}`;
|
|
873
|
+
return e ? r : (
|
|
874
|
+
// THOR.ETH/ETH | ETH.USDT-0x1234567890
|
|
875
|
+
`${this.chain}.${this.symbol}`
|
|
876
|
+
);
|
|
877
|
+
}
|
|
878
|
+
eq({ chain: e, symbol: r }) {
|
|
879
|
+
return this.chain === e && this.symbol === r;
|
|
456
880
|
}
|
|
457
881
|
static async fromString(e, r = 0) {
|
|
458
|
-
return
|
|
882
|
+
return et(e, r);
|
|
459
883
|
}
|
|
460
884
|
static fromStringSync(e, r = 0) {
|
|
461
|
-
const { decimal:
|
|
885
|
+
const { decimal: n, identifier: i } = D(
|
|
462
886
|
e
|
|
463
887
|
);
|
|
464
|
-
return
|
|
888
|
+
return i ? new b({ decimal: n, identifier: i, value: r }) : void 0;
|
|
465
889
|
}
|
|
466
890
|
static async fromIdentifier(e, r = 0) {
|
|
467
|
-
return
|
|
891
|
+
return et(e, r);
|
|
468
892
|
}
|
|
469
893
|
static fromIdentifierSync(e, r = 0) {
|
|
470
|
-
const { decimal:
|
|
471
|
-
return new
|
|
894
|
+
const { decimal: n, identifier: i } = D(e);
|
|
895
|
+
return new b({ decimal: n, identifier: i, value: r });
|
|
472
896
|
}
|
|
473
897
|
static fromChainOrSignature(e, r = 0) {
|
|
474
|
-
const { decimal:
|
|
475
|
-
return new
|
|
898
|
+
const { decimal: n, identifier: i } = vt(e);
|
|
899
|
+
return new b({ value: r, decimal: n, identifier: i });
|
|
476
900
|
}
|
|
477
901
|
static async fromTCQuote(e, r = 0) {
|
|
478
|
-
const
|
|
479
|
-
return new
|
|
902
|
+
const n = await st(Y(e)), i = this.shiftDecimals({ value: r, from: m.THOR, to: n });
|
|
903
|
+
return new b({ value: i, identifier: e, decimal: n });
|
|
480
904
|
}
|
|
481
905
|
static fromTCQuoteStatic(e, r = 0) {
|
|
482
|
-
const
|
|
906
|
+
const n = D(e), i = this.shiftDecimals({
|
|
483
907
|
value: r,
|
|
484
|
-
from:
|
|
485
|
-
to:
|
|
908
|
+
from: m.THOR,
|
|
909
|
+
to: n.decimal
|
|
486
910
|
});
|
|
487
|
-
return new
|
|
911
|
+
return new b({ ...n, value: i });
|
|
488
912
|
}
|
|
489
913
|
static async loadStaticAssets() {
|
|
490
914
|
return new Promise(
|
|
@@ -493,66 +917,57 @@ class A extends E {
|
|
|
493
917
|
const {
|
|
494
918
|
// Omit ThorchainList from import to avoid decimals conflict (TC uses 8 for all)
|
|
495
919
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
496
|
-
ThorchainList:
|
|
497
|
-
NativeList:
|
|
498
|
-
...
|
|
499
|
-
} = await import("
|
|
500
|
-
|
|
501
|
-
(
|
|
502
|
-
const
|
|
503
|
-
|
|
504
|
-
}),
|
|
920
|
+
ThorchainList: n,
|
|
921
|
+
NativeList: i,
|
|
922
|
+
...a
|
|
923
|
+
} = await import("@swapkit/tokens");
|
|
924
|
+
G = [i, ...Object.values(a)].reduce(
|
|
925
|
+
(u, { tokens: l }) => (l.forEach(({ identifier: h, chain: _, ...T }) => {
|
|
926
|
+
const P = "decimals" in T ? T.decimals : m[_];
|
|
927
|
+
u.set(h, { identifier: h, decimal: P });
|
|
928
|
+
}), u),
|
|
505
929
|
/* @__PURE__ */ new Map()
|
|
506
930
|
), e({ ok: !0 });
|
|
507
|
-
} catch (
|
|
508
|
-
console.error(
|
|
931
|
+
} catch (n) {
|
|
932
|
+
console.error(n), r({
|
|
509
933
|
ok: !1,
|
|
510
|
-
error:
|
|
934
|
+
error: n,
|
|
511
935
|
message: "Couldn't load static assets. Ensure you have installed @swapkit/tokens package"
|
|
512
936
|
});
|
|
513
937
|
}
|
|
514
938
|
}
|
|
515
939
|
);
|
|
516
940
|
}
|
|
517
|
-
get assetValue() {
|
|
518
|
-
return `${this.value} ${this.ticker}`;
|
|
519
|
-
}
|
|
520
|
-
toString() {
|
|
521
|
-
return `${this.chain}.${this.symbol}`;
|
|
522
|
-
}
|
|
523
|
-
eq({ chain: e, symbol: r }) {
|
|
524
|
-
return this.chain === e && this.symbol === r;
|
|
525
|
-
}
|
|
526
941
|
}
|
|
527
|
-
const
|
|
528
|
-
const t =
|
|
529
|
-
switch (
|
|
530
|
-
case
|
|
531
|
-
case
|
|
532
|
-
case
|
|
942
|
+
const de = (s) => {
|
|
943
|
+
const t = b.fromChainOrSignature(s);
|
|
944
|
+
switch (s) {
|
|
945
|
+
case o.Bitcoin:
|
|
946
|
+
case o.Litecoin:
|
|
947
|
+
case o.BitcoinCash:
|
|
533
948
|
return t.add(10001);
|
|
534
|
-
case
|
|
949
|
+
case o.Dogecoin:
|
|
535
950
|
return t.add(100000001);
|
|
536
|
-
case
|
|
537
|
-
case
|
|
951
|
+
case o.Avalanche:
|
|
952
|
+
case o.Ethereum:
|
|
538
953
|
return t.add(10 * 10 ** 9);
|
|
539
|
-
case
|
|
540
|
-
case
|
|
954
|
+
case o.THORChain:
|
|
955
|
+
case o.Maya:
|
|
541
956
|
return t.add(0);
|
|
542
957
|
default:
|
|
543
958
|
return t.add(1);
|
|
544
959
|
}
|
|
545
|
-
},
|
|
546
|
-
const t =
|
|
960
|
+
}, Y = (s) => {
|
|
961
|
+
const t = s.slice(0, 14).includes("/"), e = s.includes(".") ? s : `${o.THORChain}.${s}`, [r, n] = e.split("."), [i, a] = n.split("-");
|
|
547
962
|
return {
|
|
548
|
-
address:
|
|
963
|
+
address: a == null ? void 0 : a.toLowerCase(),
|
|
549
964
|
chain: r,
|
|
550
|
-
isGasAsset:
|
|
965
|
+
isGasAsset: St({ chain: r, symbol: n }),
|
|
551
966
|
isSynthetic: t,
|
|
552
|
-
symbol:
|
|
553
|
-
ticker: t ?
|
|
967
|
+
symbol: a ? `${i}-${(a == null ? void 0 : a.toLowerCase()) ?? ""}` : n,
|
|
968
|
+
ticker: t ? n : i
|
|
554
969
|
};
|
|
555
|
-
},
|
|
970
|
+
}, Kt = {
|
|
556
971
|
/**
|
|
557
972
|
* Core
|
|
558
973
|
*/
|
|
@@ -609,43 +1024,41 @@ const kt = (n) => {
|
|
|
609
1024
|
*/
|
|
610
1025
|
helpers_number_different_decimals: 99101
|
|
611
1026
|
};
|
|
612
|
-
class
|
|
1027
|
+
class ht extends Error {
|
|
613
1028
|
constructor(t, e) {
|
|
614
|
-
console.error(e), super(t, { cause: { code:
|
|
1029
|
+
console.error(e), super(t, { cause: { code: Kt[t], message: t } }), Object.setPrototypeOf(this, ht.prototype);
|
|
615
1030
|
}
|
|
616
1031
|
}
|
|
617
|
-
class
|
|
1032
|
+
class Qt extends E {
|
|
618
1033
|
eq(t) {
|
|
619
1034
|
return this.eqValue(t);
|
|
620
1035
|
}
|
|
621
|
-
toString() {
|
|
622
|
-
return this.value;
|
|
623
|
-
}
|
|
624
1036
|
}
|
|
625
1037
|
export {
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
St as
|
|
1038
|
+
b as AssetValue,
|
|
1039
|
+
E as BigIntArithmetics,
|
|
1040
|
+
zt as RequestClient,
|
|
1041
|
+
ht as SwapKitError,
|
|
1042
|
+
Qt as SwapKitNumber,
|
|
1043
|
+
ee as assetFromString,
|
|
1044
|
+
he as derivationPathToString,
|
|
1045
|
+
re as filterAssets,
|
|
1046
|
+
tt as formatBigIntToSafeValue,
|
|
1047
|
+
te as gasFeeMultiplier,
|
|
1048
|
+
Ct as getAssetType,
|
|
1049
|
+
Et as getAsymmetricAssetShare,
|
|
1050
|
+
ne as getAsymmetricAssetWithdrawAmount,
|
|
1051
|
+
It as getAsymmetricRuneShare,
|
|
1052
|
+
se as getAsymmetricRuneWithdrawAmount,
|
|
1053
|
+
vt as getCommonAssetInfo,
|
|
1054
|
+
st as getDecimal,
|
|
1055
|
+
oe as getEstimatedPoolShare,
|
|
1056
|
+
ae as getLiquiditySlippage,
|
|
1057
|
+
ce as getMemoFor,
|
|
1058
|
+
de as getMinAmountByChain,
|
|
1059
|
+
Ot as getSymmetricPoolShare,
|
|
1060
|
+
ie as getSymmetricWithdraw,
|
|
1061
|
+
ue as getTHORNameCost,
|
|
1062
|
+
St as isGasAsset,
|
|
1063
|
+
le as validateTHORName
|
|
651
1064
|
};
|