@ledgerhq/wallet-api-simulator 0.1.0
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/.eslintcache +1 -0
- package/.eslintrc.js +14 -0
- package/.turbo/turbo-build.log +21 -0
- package/.turbo/turbo-lint.log +5 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.global.js +3188 -0
- package/dist/index.js +28 -0
- package/dist/index.mjs +8 -0
- package/package.json +25 -0
- package/src/index.ts +10 -0
- package/tsconfig.json +9 -0
|
@@ -0,0 +1,3188 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
(() => {
|
|
3
|
+
var __create = Object.create;
|
|
4
|
+
var __defProp = Object.defineProperty;
|
|
5
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
8
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
|
+
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
10
|
+
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
11
|
+
}) : x)(function(x) {
|
|
12
|
+
if (typeof require !== "undefined")
|
|
13
|
+
return require.apply(this, arguments);
|
|
14
|
+
throw new Error('Dynamic require of "' + x + '" is not supported');
|
|
15
|
+
});
|
|
16
|
+
var __commonJS = (cb, mod) => function __require2() {
|
|
17
|
+
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
18
|
+
};
|
|
19
|
+
var __copyProps = (to, from, except, desc) => {
|
|
20
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
21
|
+
for (let key of __getOwnPropNames(from))
|
|
22
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
23
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
24
|
+
}
|
|
25
|
+
return to;
|
|
26
|
+
};
|
|
27
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
28
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
29
|
+
mod
|
|
30
|
+
));
|
|
31
|
+
|
|
32
|
+
// ../../node_modules/.pnpm/bignumber.js@9.1.0/node_modules/bignumber.js/bignumber.js
|
|
33
|
+
var require_bignumber = __commonJS({
|
|
34
|
+
"../../node_modules/.pnpm/bignumber.js@9.1.0/node_modules/bignumber.js/bignumber.js"(exports, module) {
|
|
35
|
+
(function(globalObject) {
|
|
36
|
+
"use strict";
|
|
37
|
+
var BigNumber, isNumeric = /^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i, mathceil = Math.ceil, mathfloor = Math.floor, bignumberError = "[BigNumber Error] ", tooManyDigits = bignumberError + "Number primitive has more than 15 significant digits: ", BASE = 1e14, LOG_BASE = 14, MAX_SAFE_INTEGER = 9007199254740991, POWS_TEN = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13], SQRT_BASE = 1e7, MAX = 1e9;
|
|
38
|
+
function clone(configObject) {
|
|
39
|
+
var div, convertBase, parseNumeric, P = BigNumber2.prototype = { constructor: BigNumber2, toString: null, valueOf: null }, ONE = new BigNumber2(1), DECIMAL_PLACES = 20, ROUNDING_MODE = 4, TO_EXP_NEG = -7, TO_EXP_POS = 21, MIN_EXP = -1e7, MAX_EXP = 1e7, CRYPTO = false, MODULO_MODE = 1, POW_PRECISION = 0, FORMAT = {
|
|
40
|
+
prefix: "",
|
|
41
|
+
groupSize: 3,
|
|
42
|
+
secondaryGroupSize: 0,
|
|
43
|
+
groupSeparator: ",",
|
|
44
|
+
decimalSeparator: ".",
|
|
45
|
+
fractionGroupSize: 0,
|
|
46
|
+
fractionGroupSeparator: "\xA0",
|
|
47
|
+
suffix: ""
|
|
48
|
+
}, ALPHABET = "0123456789abcdefghijklmnopqrstuvwxyz", alphabetHasNormalDecimalDigits = true;
|
|
49
|
+
function BigNumber2(v, b) {
|
|
50
|
+
var alphabet, c, caseChanged, e, i, isNum, len, str, x = this;
|
|
51
|
+
if (!(x instanceof BigNumber2))
|
|
52
|
+
return new BigNumber2(v, b);
|
|
53
|
+
if (b == null) {
|
|
54
|
+
if (v && v._isBigNumber === true) {
|
|
55
|
+
x.s = v.s;
|
|
56
|
+
if (!v.c || v.e > MAX_EXP) {
|
|
57
|
+
x.c = x.e = null;
|
|
58
|
+
} else if (v.e < MIN_EXP) {
|
|
59
|
+
x.c = [x.e = 0];
|
|
60
|
+
} else {
|
|
61
|
+
x.e = v.e;
|
|
62
|
+
x.c = v.c.slice();
|
|
63
|
+
}
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
if ((isNum = typeof v == "number") && v * 0 == 0) {
|
|
67
|
+
x.s = 1 / v < 0 ? (v = -v, -1) : 1;
|
|
68
|
+
if (v === ~~v) {
|
|
69
|
+
for (e = 0, i = v; i >= 10; i /= 10, e++)
|
|
70
|
+
;
|
|
71
|
+
if (e > MAX_EXP) {
|
|
72
|
+
x.c = x.e = null;
|
|
73
|
+
} else {
|
|
74
|
+
x.e = e;
|
|
75
|
+
x.c = [v];
|
|
76
|
+
}
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
str = String(v);
|
|
80
|
+
} else {
|
|
81
|
+
if (!isNumeric.test(str = String(v)))
|
|
82
|
+
return parseNumeric(x, str, isNum);
|
|
83
|
+
x.s = str.charCodeAt(0) == 45 ? (str = str.slice(1), -1) : 1;
|
|
84
|
+
}
|
|
85
|
+
if ((e = str.indexOf(".")) > -1)
|
|
86
|
+
str = str.replace(".", "");
|
|
87
|
+
if ((i = str.search(/e/i)) > 0) {
|
|
88
|
+
if (e < 0)
|
|
89
|
+
e = i;
|
|
90
|
+
e += +str.slice(i + 1);
|
|
91
|
+
str = str.substring(0, i);
|
|
92
|
+
} else if (e < 0) {
|
|
93
|
+
e = str.length;
|
|
94
|
+
}
|
|
95
|
+
} else {
|
|
96
|
+
intCheck(b, 2, ALPHABET.length, "Base");
|
|
97
|
+
if (b == 10 && alphabetHasNormalDecimalDigits) {
|
|
98
|
+
x = new BigNumber2(v);
|
|
99
|
+
return round(x, DECIMAL_PLACES + x.e + 1, ROUNDING_MODE);
|
|
100
|
+
}
|
|
101
|
+
str = String(v);
|
|
102
|
+
if (isNum = typeof v == "number") {
|
|
103
|
+
if (v * 0 != 0)
|
|
104
|
+
return parseNumeric(x, str, isNum, b);
|
|
105
|
+
x.s = 1 / v < 0 ? (str = str.slice(1), -1) : 1;
|
|
106
|
+
if (BigNumber2.DEBUG && str.replace(/^0\.0*|\./, "").length > 15) {
|
|
107
|
+
throw Error(tooManyDigits + v);
|
|
108
|
+
}
|
|
109
|
+
} else {
|
|
110
|
+
x.s = str.charCodeAt(0) === 45 ? (str = str.slice(1), -1) : 1;
|
|
111
|
+
}
|
|
112
|
+
alphabet = ALPHABET.slice(0, b);
|
|
113
|
+
e = i = 0;
|
|
114
|
+
for (len = str.length; i < len; i++) {
|
|
115
|
+
if (alphabet.indexOf(c = str.charAt(i)) < 0) {
|
|
116
|
+
if (c == ".") {
|
|
117
|
+
if (i > e) {
|
|
118
|
+
e = len;
|
|
119
|
+
continue;
|
|
120
|
+
}
|
|
121
|
+
} else if (!caseChanged) {
|
|
122
|
+
if (str == str.toUpperCase() && (str = str.toLowerCase()) || str == str.toLowerCase() && (str = str.toUpperCase())) {
|
|
123
|
+
caseChanged = true;
|
|
124
|
+
i = -1;
|
|
125
|
+
e = 0;
|
|
126
|
+
continue;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return parseNumeric(x, String(v), isNum, b);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
isNum = false;
|
|
133
|
+
str = convertBase(str, b, 10, x.s);
|
|
134
|
+
if ((e = str.indexOf(".")) > -1)
|
|
135
|
+
str = str.replace(".", "");
|
|
136
|
+
else
|
|
137
|
+
e = str.length;
|
|
138
|
+
}
|
|
139
|
+
for (i = 0; str.charCodeAt(i) === 48; i++)
|
|
140
|
+
;
|
|
141
|
+
for (len = str.length; str.charCodeAt(--len) === 48; )
|
|
142
|
+
;
|
|
143
|
+
if (str = str.slice(i, ++len)) {
|
|
144
|
+
len -= i;
|
|
145
|
+
if (isNum && BigNumber2.DEBUG && len > 15 && (v > MAX_SAFE_INTEGER || v !== mathfloor(v))) {
|
|
146
|
+
throw Error(tooManyDigits + x.s * v);
|
|
147
|
+
}
|
|
148
|
+
if ((e = e - i - 1) > MAX_EXP) {
|
|
149
|
+
x.c = x.e = null;
|
|
150
|
+
} else if (e < MIN_EXP) {
|
|
151
|
+
x.c = [x.e = 0];
|
|
152
|
+
} else {
|
|
153
|
+
x.e = e;
|
|
154
|
+
x.c = [];
|
|
155
|
+
i = (e + 1) % LOG_BASE;
|
|
156
|
+
if (e < 0)
|
|
157
|
+
i += LOG_BASE;
|
|
158
|
+
if (i < len) {
|
|
159
|
+
if (i)
|
|
160
|
+
x.c.push(+str.slice(0, i));
|
|
161
|
+
for (len -= LOG_BASE; i < len; ) {
|
|
162
|
+
x.c.push(+str.slice(i, i += LOG_BASE));
|
|
163
|
+
}
|
|
164
|
+
i = LOG_BASE - (str = str.slice(i)).length;
|
|
165
|
+
} else {
|
|
166
|
+
i -= len;
|
|
167
|
+
}
|
|
168
|
+
for (; i--; str += "0")
|
|
169
|
+
;
|
|
170
|
+
x.c.push(+str);
|
|
171
|
+
}
|
|
172
|
+
} else {
|
|
173
|
+
x.c = [x.e = 0];
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
BigNumber2.clone = clone;
|
|
177
|
+
BigNumber2.ROUND_UP = 0;
|
|
178
|
+
BigNumber2.ROUND_DOWN = 1;
|
|
179
|
+
BigNumber2.ROUND_CEIL = 2;
|
|
180
|
+
BigNumber2.ROUND_FLOOR = 3;
|
|
181
|
+
BigNumber2.ROUND_HALF_UP = 4;
|
|
182
|
+
BigNumber2.ROUND_HALF_DOWN = 5;
|
|
183
|
+
BigNumber2.ROUND_HALF_EVEN = 6;
|
|
184
|
+
BigNumber2.ROUND_HALF_CEIL = 7;
|
|
185
|
+
BigNumber2.ROUND_HALF_FLOOR = 8;
|
|
186
|
+
BigNumber2.EUCLID = 9;
|
|
187
|
+
BigNumber2.config = BigNumber2.set = function(obj) {
|
|
188
|
+
var p, v;
|
|
189
|
+
if (obj != null) {
|
|
190
|
+
if (typeof obj == "object") {
|
|
191
|
+
if (obj.hasOwnProperty(p = "DECIMAL_PLACES")) {
|
|
192
|
+
v = obj[p];
|
|
193
|
+
intCheck(v, 0, MAX, p);
|
|
194
|
+
DECIMAL_PLACES = v;
|
|
195
|
+
}
|
|
196
|
+
if (obj.hasOwnProperty(p = "ROUNDING_MODE")) {
|
|
197
|
+
v = obj[p];
|
|
198
|
+
intCheck(v, 0, 8, p);
|
|
199
|
+
ROUNDING_MODE = v;
|
|
200
|
+
}
|
|
201
|
+
if (obj.hasOwnProperty(p = "EXPONENTIAL_AT")) {
|
|
202
|
+
v = obj[p];
|
|
203
|
+
if (v && v.pop) {
|
|
204
|
+
intCheck(v[0], -MAX, 0, p);
|
|
205
|
+
intCheck(v[1], 0, MAX, p);
|
|
206
|
+
TO_EXP_NEG = v[0];
|
|
207
|
+
TO_EXP_POS = v[1];
|
|
208
|
+
} else {
|
|
209
|
+
intCheck(v, -MAX, MAX, p);
|
|
210
|
+
TO_EXP_NEG = -(TO_EXP_POS = v < 0 ? -v : v);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
if (obj.hasOwnProperty(p = "RANGE")) {
|
|
214
|
+
v = obj[p];
|
|
215
|
+
if (v && v.pop) {
|
|
216
|
+
intCheck(v[0], -MAX, -1, p);
|
|
217
|
+
intCheck(v[1], 1, MAX, p);
|
|
218
|
+
MIN_EXP = v[0];
|
|
219
|
+
MAX_EXP = v[1];
|
|
220
|
+
} else {
|
|
221
|
+
intCheck(v, -MAX, MAX, p);
|
|
222
|
+
if (v) {
|
|
223
|
+
MIN_EXP = -(MAX_EXP = v < 0 ? -v : v);
|
|
224
|
+
} else {
|
|
225
|
+
throw Error(bignumberError + p + " cannot be zero: " + v);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
if (obj.hasOwnProperty(p = "CRYPTO")) {
|
|
230
|
+
v = obj[p];
|
|
231
|
+
if (v === !!v) {
|
|
232
|
+
if (v) {
|
|
233
|
+
if (typeof crypto != "undefined" && crypto && (crypto.getRandomValues || crypto.randomBytes)) {
|
|
234
|
+
CRYPTO = v;
|
|
235
|
+
} else {
|
|
236
|
+
CRYPTO = !v;
|
|
237
|
+
throw Error(bignumberError + "crypto unavailable");
|
|
238
|
+
}
|
|
239
|
+
} else {
|
|
240
|
+
CRYPTO = v;
|
|
241
|
+
}
|
|
242
|
+
} else {
|
|
243
|
+
throw Error(bignumberError + p + " not true or false: " + v);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
if (obj.hasOwnProperty(p = "MODULO_MODE")) {
|
|
247
|
+
v = obj[p];
|
|
248
|
+
intCheck(v, 0, 9, p);
|
|
249
|
+
MODULO_MODE = v;
|
|
250
|
+
}
|
|
251
|
+
if (obj.hasOwnProperty(p = "POW_PRECISION")) {
|
|
252
|
+
v = obj[p];
|
|
253
|
+
intCheck(v, 0, MAX, p);
|
|
254
|
+
POW_PRECISION = v;
|
|
255
|
+
}
|
|
256
|
+
if (obj.hasOwnProperty(p = "FORMAT")) {
|
|
257
|
+
v = obj[p];
|
|
258
|
+
if (typeof v == "object")
|
|
259
|
+
FORMAT = v;
|
|
260
|
+
else
|
|
261
|
+
throw Error(bignumberError + p + " not an object: " + v);
|
|
262
|
+
}
|
|
263
|
+
if (obj.hasOwnProperty(p = "ALPHABET")) {
|
|
264
|
+
v = obj[p];
|
|
265
|
+
if (typeof v == "string" && !/^.?$|[+\-.\s]|(.).*\1/.test(v)) {
|
|
266
|
+
alphabetHasNormalDecimalDigits = v.slice(0, 10) == "0123456789";
|
|
267
|
+
ALPHABET = v;
|
|
268
|
+
} else {
|
|
269
|
+
throw Error(bignumberError + p + " invalid: " + v);
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
} else {
|
|
273
|
+
throw Error(bignumberError + "Object expected: " + obj);
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
return {
|
|
277
|
+
DECIMAL_PLACES,
|
|
278
|
+
ROUNDING_MODE,
|
|
279
|
+
EXPONENTIAL_AT: [TO_EXP_NEG, TO_EXP_POS],
|
|
280
|
+
RANGE: [MIN_EXP, MAX_EXP],
|
|
281
|
+
CRYPTO,
|
|
282
|
+
MODULO_MODE,
|
|
283
|
+
POW_PRECISION,
|
|
284
|
+
FORMAT,
|
|
285
|
+
ALPHABET
|
|
286
|
+
};
|
|
287
|
+
};
|
|
288
|
+
BigNumber2.isBigNumber = function(v) {
|
|
289
|
+
if (!v || v._isBigNumber !== true)
|
|
290
|
+
return false;
|
|
291
|
+
if (!BigNumber2.DEBUG)
|
|
292
|
+
return true;
|
|
293
|
+
var i, n, c = v.c, e = v.e, s = v.s;
|
|
294
|
+
out:
|
|
295
|
+
if ({}.toString.call(c) == "[object Array]") {
|
|
296
|
+
if ((s === 1 || s === -1) && e >= -MAX && e <= MAX && e === mathfloor(e)) {
|
|
297
|
+
if (c[0] === 0) {
|
|
298
|
+
if (e === 0 && c.length === 1)
|
|
299
|
+
return true;
|
|
300
|
+
break out;
|
|
301
|
+
}
|
|
302
|
+
i = (e + 1) % LOG_BASE;
|
|
303
|
+
if (i < 1)
|
|
304
|
+
i += LOG_BASE;
|
|
305
|
+
if (String(c[0]).length == i) {
|
|
306
|
+
for (i = 0; i < c.length; i++) {
|
|
307
|
+
n = c[i];
|
|
308
|
+
if (n < 0 || n >= BASE || n !== mathfloor(n))
|
|
309
|
+
break out;
|
|
310
|
+
}
|
|
311
|
+
if (n !== 0)
|
|
312
|
+
return true;
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
} else if (c === null && e === null && (s === null || s === 1 || s === -1)) {
|
|
316
|
+
return true;
|
|
317
|
+
}
|
|
318
|
+
throw Error(bignumberError + "Invalid BigNumber: " + v);
|
|
319
|
+
};
|
|
320
|
+
BigNumber2.maximum = BigNumber2.max = function() {
|
|
321
|
+
return maxOrMin(arguments, P.lt);
|
|
322
|
+
};
|
|
323
|
+
BigNumber2.minimum = BigNumber2.min = function() {
|
|
324
|
+
return maxOrMin(arguments, P.gt);
|
|
325
|
+
};
|
|
326
|
+
BigNumber2.random = function() {
|
|
327
|
+
var pow2_53 = 9007199254740992;
|
|
328
|
+
var random53bitInt = Math.random() * pow2_53 & 2097151 ? function() {
|
|
329
|
+
return mathfloor(Math.random() * pow2_53);
|
|
330
|
+
} : function() {
|
|
331
|
+
return (Math.random() * 1073741824 | 0) * 8388608 + (Math.random() * 8388608 | 0);
|
|
332
|
+
};
|
|
333
|
+
return function(dp) {
|
|
334
|
+
var a, b, e, k, v, i = 0, c = [], rand = new BigNumber2(ONE);
|
|
335
|
+
if (dp == null)
|
|
336
|
+
dp = DECIMAL_PLACES;
|
|
337
|
+
else
|
|
338
|
+
intCheck(dp, 0, MAX);
|
|
339
|
+
k = mathceil(dp / LOG_BASE);
|
|
340
|
+
if (CRYPTO) {
|
|
341
|
+
if (crypto.getRandomValues) {
|
|
342
|
+
a = crypto.getRandomValues(new Uint32Array(k *= 2));
|
|
343
|
+
for (; i < k; ) {
|
|
344
|
+
v = a[i] * 131072 + (a[i + 1] >>> 11);
|
|
345
|
+
if (v >= 9e15) {
|
|
346
|
+
b = crypto.getRandomValues(new Uint32Array(2));
|
|
347
|
+
a[i] = b[0];
|
|
348
|
+
a[i + 1] = b[1];
|
|
349
|
+
} else {
|
|
350
|
+
c.push(v % 1e14);
|
|
351
|
+
i += 2;
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
i = k / 2;
|
|
355
|
+
} else if (crypto.randomBytes) {
|
|
356
|
+
a = crypto.randomBytes(k *= 7);
|
|
357
|
+
for (; i < k; ) {
|
|
358
|
+
v = (a[i] & 31) * 281474976710656 + a[i + 1] * 1099511627776 + a[i + 2] * 4294967296 + a[i + 3] * 16777216 + (a[i + 4] << 16) + (a[i + 5] << 8) + a[i + 6];
|
|
359
|
+
if (v >= 9e15) {
|
|
360
|
+
crypto.randomBytes(7).copy(a, i);
|
|
361
|
+
} else {
|
|
362
|
+
c.push(v % 1e14);
|
|
363
|
+
i += 7;
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
i = k / 7;
|
|
367
|
+
} else {
|
|
368
|
+
CRYPTO = false;
|
|
369
|
+
throw Error(bignumberError + "crypto unavailable");
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
if (!CRYPTO) {
|
|
373
|
+
for (; i < k; ) {
|
|
374
|
+
v = random53bitInt();
|
|
375
|
+
if (v < 9e15)
|
|
376
|
+
c[i++] = v % 1e14;
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
k = c[--i];
|
|
380
|
+
dp %= LOG_BASE;
|
|
381
|
+
if (k && dp) {
|
|
382
|
+
v = POWS_TEN[LOG_BASE - dp];
|
|
383
|
+
c[i] = mathfloor(k / v) * v;
|
|
384
|
+
}
|
|
385
|
+
for (; c[i] === 0; c.pop(), i--)
|
|
386
|
+
;
|
|
387
|
+
if (i < 0) {
|
|
388
|
+
c = [e = 0];
|
|
389
|
+
} else {
|
|
390
|
+
for (e = -1; c[0] === 0; c.splice(0, 1), e -= LOG_BASE)
|
|
391
|
+
;
|
|
392
|
+
for (i = 1, v = c[0]; v >= 10; v /= 10, i++)
|
|
393
|
+
;
|
|
394
|
+
if (i < LOG_BASE)
|
|
395
|
+
e -= LOG_BASE - i;
|
|
396
|
+
}
|
|
397
|
+
rand.e = e;
|
|
398
|
+
rand.c = c;
|
|
399
|
+
return rand;
|
|
400
|
+
};
|
|
401
|
+
}();
|
|
402
|
+
BigNumber2.sum = function() {
|
|
403
|
+
var i = 1, args = arguments, sum = new BigNumber2(args[0]);
|
|
404
|
+
for (; i < args.length; )
|
|
405
|
+
sum = sum.plus(args[i++]);
|
|
406
|
+
return sum;
|
|
407
|
+
};
|
|
408
|
+
convertBase = function() {
|
|
409
|
+
var decimal = "0123456789";
|
|
410
|
+
function toBaseOut(str, baseIn, baseOut, alphabet) {
|
|
411
|
+
var j, arr = [0], arrL, i = 0, len = str.length;
|
|
412
|
+
for (; i < len; ) {
|
|
413
|
+
for (arrL = arr.length; arrL--; arr[arrL] *= baseIn)
|
|
414
|
+
;
|
|
415
|
+
arr[0] += alphabet.indexOf(str.charAt(i++));
|
|
416
|
+
for (j = 0; j < arr.length; j++) {
|
|
417
|
+
if (arr[j] > baseOut - 1) {
|
|
418
|
+
if (arr[j + 1] == null)
|
|
419
|
+
arr[j + 1] = 0;
|
|
420
|
+
arr[j + 1] += arr[j] / baseOut | 0;
|
|
421
|
+
arr[j] %= baseOut;
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
return arr.reverse();
|
|
426
|
+
}
|
|
427
|
+
return function(str, baseIn, baseOut, sign, callerIsToString) {
|
|
428
|
+
var alphabet, d, e, k, r, x, xc, y, i = str.indexOf("."), dp = DECIMAL_PLACES, rm = ROUNDING_MODE;
|
|
429
|
+
if (i >= 0) {
|
|
430
|
+
k = POW_PRECISION;
|
|
431
|
+
POW_PRECISION = 0;
|
|
432
|
+
str = str.replace(".", "");
|
|
433
|
+
y = new BigNumber2(baseIn);
|
|
434
|
+
x = y.pow(str.length - i);
|
|
435
|
+
POW_PRECISION = k;
|
|
436
|
+
y.c = toBaseOut(
|
|
437
|
+
toFixedPoint(coeffToString(x.c), x.e, "0"),
|
|
438
|
+
10,
|
|
439
|
+
baseOut,
|
|
440
|
+
decimal
|
|
441
|
+
);
|
|
442
|
+
y.e = y.c.length;
|
|
443
|
+
}
|
|
444
|
+
xc = toBaseOut(str, baseIn, baseOut, callerIsToString ? (alphabet = ALPHABET, decimal) : (alphabet = decimal, ALPHABET));
|
|
445
|
+
e = k = xc.length;
|
|
446
|
+
for (; xc[--k] == 0; xc.pop())
|
|
447
|
+
;
|
|
448
|
+
if (!xc[0])
|
|
449
|
+
return alphabet.charAt(0);
|
|
450
|
+
if (i < 0) {
|
|
451
|
+
--e;
|
|
452
|
+
} else {
|
|
453
|
+
x.c = xc;
|
|
454
|
+
x.e = e;
|
|
455
|
+
x.s = sign;
|
|
456
|
+
x = div(x, y, dp, rm, baseOut);
|
|
457
|
+
xc = x.c;
|
|
458
|
+
r = x.r;
|
|
459
|
+
e = x.e;
|
|
460
|
+
}
|
|
461
|
+
d = e + dp + 1;
|
|
462
|
+
i = xc[d];
|
|
463
|
+
k = baseOut / 2;
|
|
464
|
+
r = r || d < 0 || xc[d + 1] != null;
|
|
465
|
+
r = rm < 4 ? (i != null || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2)) : i > k || i == k && (rm == 4 || r || rm == 6 && xc[d - 1] & 1 || rm == (x.s < 0 ? 8 : 7));
|
|
466
|
+
if (d < 1 || !xc[0]) {
|
|
467
|
+
str = r ? toFixedPoint(alphabet.charAt(1), -dp, alphabet.charAt(0)) : alphabet.charAt(0);
|
|
468
|
+
} else {
|
|
469
|
+
xc.length = d;
|
|
470
|
+
if (r) {
|
|
471
|
+
for (--baseOut; ++xc[--d] > baseOut; ) {
|
|
472
|
+
xc[d] = 0;
|
|
473
|
+
if (!d) {
|
|
474
|
+
++e;
|
|
475
|
+
xc = [1].concat(xc);
|
|
476
|
+
}
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
for (k = xc.length; !xc[--k]; )
|
|
480
|
+
;
|
|
481
|
+
for (i = 0, str = ""; i <= k; str += alphabet.charAt(xc[i++]))
|
|
482
|
+
;
|
|
483
|
+
str = toFixedPoint(str, e, alphabet.charAt(0));
|
|
484
|
+
}
|
|
485
|
+
return str;
|
|
486
|
+
};
|
|
487
|
+
}();
|
|
488
|
+
div = function() {
|
|
489
|
+
function multiply(x, k, base) {
|
|
490
|
+
var m, temp, xlo, xhi, carry = 0, i = x.length, klo = k % SQRT_BASE, khi = k / SQRT_BASE | 0;
|
|
491
|
+
for (x = x.slice(); i--; ) {
|
|
492
|
+
xlo = x[i] % SQRT_BASE;
|
|
493
|
+
xhi = x[i] / SQRT_BASE | 0;
|
|
494
|
+
m = khi * xlo + xhi * klo;
|
|
495
|
+
temp = klo * xlo + m % SQRT_BASE * SQRT_BASE + carry;
|
|
496
|
+
carry = (temp / base | 0) + (m / SQRT_BASE | 0) + khi * xhi;
|
|
497
|
+
x[i] = temp % base;
|
|
498
|
+
}
|
|
499
|
+
if (carry)
|
|
500
|
+
x = [carry].concat(x);
|
|
501
|
+
return x;
|
|
502
|
+
}
|
|
503
|
+
function compare2(a, b, aL, bL) {
|
|
504
|
+
var i, cmp;
|
|
505
|
+
if (aL != bL) {
|
|
506
|
+
cmp = aL > bL ? 1 : -1;
|
|
507
|
+
} else {
|
|
508
|
+
for (i = cmp = 0; i < aL; i++) {
|
|
509
|
+
if (a[i] != b[i]) {
|
|
510
|
+
cmp = a[i] > b[i] ? 1 : -1;
|
|
511
|
+
break;
|
|
512
|
+
}
|
|
513
|
+
}
|
|
514
|
+
}
|
|
515
|
+
return cmp;
|
|
516
|
+
}
|
|
517
|
+
function subtract(a, b, aL, base) {
|
|
518
|
+
var i = 0;
|
|
519
|
+
for (; aL--; ) {
|
|
520
|
+
a[aL] -= i;
|
|
521
|
+
i = a[aL] < b[aL] ? 1 : 0;
|
|
522
|
+
a[aL] = i * base + a[aL] - b[aL];
|
|
523
|
+
}
|
|
524
|
+
for (; !a[0] && a.length > 1; a.splice(0, 1))
|
|
525
|
+
;
|
|
526
|
+
}
|
|
527
|
+
return function(x, y, dp, rm, base) {
|
|
528
|
+
var cmp, e, i, more, n, prod, prodL, q, qc, rem, remL, rem0, xi, xL, yc0, yL, yz, s = x.s == y.s ? 1 : -1, xc = x.c, yc = y.c;
|
|
529
|
+
if (!xc || !xc[0] || !yc || !yc[0]) {
|
|
530
|
+
return new BigNumber2(
|
|
531
|
+
!x.s || !y.s || (xc ? yc && xc[0] == yc[0] : !yc) ? NaN : xc && xc[0] == 0 || !yc ? s * 0 : s / 0
|
|
532
|
+
);
|
|
533
|
+
}
|
|
534
|
+
q = new BigNumber2(s);
|
|
535
|
+
qc = q.c = [];
|
|
536
|
+
e = x.e - y.e;
|
|
537
|
+
s = dp + e + 1;
|
|
538
|
+
if (!base) {
|
|
539
|
+
base = BASE;
|
|
540
|
+
e = bitFloor(x.e / LOG_BASE) - bitFloor(y.e / LOG_BASE);
|
|
541
|
+
s = s / LOG_BASE | 0;
|
|
542
|
+
}
|
|
543
|
+
for (i = 0; yc[i] == (xc[i] || 0); i++)
|
|
544
|
+
;
|
|
545
|
+
if (yc[i] > (xc[i] || 0))
|
|
546
|
+
e--;
|
|
547
|
+
if (s < 0) {
|
|
548
|
+
qc.push(1);
|
|
549
|
+
more = true;
|
|
550
|
+
} else {
|
|
551
|
+
xL = xc.length;
|
|
552
|
+
yL = yc.length;
|
|
553
|
+
i = 0;
|
|
554
|
+
s += 2;
|
|
555
|
+
n = mathfloor(base / (yc[0] + 1));
|
|
556
|
+
if (n > 1) {
|
|
557
|
+
yc = multiply(yc, n, base);
|
|
558
|
+
xc = multiply(xc, n, base);
|
|
559
|
+
yL = yc.length;
|
|
560
|
+
xL = xc.length;
|
|
561
|
+
}
|
|
562
|
+
xi = yL;
|
|
563
|
+
rem = xc.slice(0, yL);
|
|
564
|
+
remL = rem.length;
|
|
565
|
+
for (; remL < yL; rem[remL++] = 0)
|
|
566
|
+
;
|
|
567
|
+
yz = yc.slice();
|
|
568
|
+
yz = [0].concat(yz);
|
|
569
|
+
yc0 = yc[0];
|
|
570
|
+
if (yc[1] >= base / 2)
|
|
571
|
+
yc0++;
|
|
572
|
+
do {
|
|
573
|
+
n = 0;
|
|
574
|
+
cmp = compare2(yc, rem, yL, remL);
|
|
575
|
+
if (cmp < 0) {
|
|
576
|
+
rem0 = rem[0];
|
|
577
|
+
if (yL != remL)
|
|
578
|
+
rem0 = rem0 * base + (rem[1] || 0);
|
|
579
|
+
n = mathfloor(rem0 / yc0);
|
|
580
|
+
if (n > 1) {
|
|
581
|
+
if (n >= base)
|
|
582
|
+
n = base - 1;
|
|
583
|
+
prod = multiply(yc, n, base);
|
|
584
|
+
prodL = prod.length;
|
|
585
|
+
remL = rem.length;
|
|
586
|
+
while (compare2(prod, rem, prodL, remL) == 1) {
|
|
587
|
+
n--;
|
|
588
|
+
subtract(prod, yL < prodL ? yz : yc, prodL, base);
|
|
589
|
+
prodL = prod.length;
|
|
590
|
+
cmp = 1;
|
|
591
|
+
}
|
|
592
|
+
} else {
|
|
593
|
+
if (n == 0) {
|
|
594
|
+
cmp = n = 1;
|
|
595
|
+
}
|
|
596
|
+
prod = yc.slice();
|
|
597
|
+
prodL = prod.length;
|
|
598
|
+
}
|
|
599
|
+
if (prodL < remL)
|
|
600
|
+
prod = [0].concat(prod);
|
|
601
|
+
subtract(rem, prod, remL, base);
|
|
602
|
+
remL = rem.length;
|
|
603
|
+
if (cmp == -1) {
|
|
604
|
+
while (compare2(yc, rem, yL, remL) < 1) {
|
|
605
|
+
n++;
|
|
606
|
+
subtract(rem, yL < remL ? yz : yc, remL, base);
|
|
607
|
+
remL = rem.length;
|
|
608
|
+
}
|
|
609
|
+
}
|
|
610
|
+
} else if (cmp === 0) {
|
|
611
|
+
n++;
|
|
612
|
+
rem = [0];
|
|
613
|
+
}
|
|
614
|
+
qc[i++] = n;
|
|
615
|
+
if (rem[0]) {
|
|
616
|
+
rem[remL++] = xc[xi] || 0;
|
|
617
|
+
} else {
|
|
618
|
+
rem = [xc[xi]];
|
|
619
|
+
remL = 1;
|
|
620
|
+
}
|
|
621
|
+
} while ((xi++ < xL || rem[0] != null) && s--);
|
|
622
|
+
more = rem[0] != null;
|
|
623
|
+
if (!qc[0])
|
|
624
|
+
qc.splice(0, 1);
|
|
625
|
+
}
|
|
626
|
+
if (base == BASE) {
|
|
627
|
+
for (i = 1, s = qc[0]; s >= 10; s /= 10, i++)
|
|
628
|
+
;
|
|
629
|
+
round(q, dp + (q.e = i + e * LOG_BASE - 1) + 1, rm, more);
|
|
630
|
+
} else {
|
|
631
|
+
q.e = e;
|
|
632
|
+
q.r = +more;
|
|
633
|
+
}
|
|
634
|
+
return q;
|
|
635
|
+
};
|
|
636
|
+
}();
|
|
637
|
+
function format(n, i, rm, id) {
|
|
638
|
+
var c0, e, ne, len, str;
|
|
639
|
+
if (rm == null)
|
|
640
|
+
rm = ROUNDING_MODE;
|
|
641
|
+
else
|
|
642
|
+
intCheck(rm, 0, 8);
|
|
643
|
+
if (!n.c)
|
|
644
|
+
return n.toString();
|
|
645
|
+
c0 = n.c[0];
|
|
646
|
+
ne = n.e;
|
|
647
|
+
if (i == null) {
|
|
648
|
+
str = coeffToString(n.c);
|
|
649
|
+
str = id == 1 || id == 2 && (ne <= TO_EXP_NEG || ne >= TO_EXP_POS) ? toExponential(str, ne) : toFixedPoint(str, ne, "0");
|
|
650
|
+
} else {
|
|
651
|
+
n = round(new BigNumber2(n), i, rm);
|
|
652
|
+
e = n.e;
|
|
653
|
+
str = coeffToString(n.c);
|
|
654
|
+
len = str.length;
|
|
655
|
+
if (id == 1 || id == 2 && (i <= e || e <= TO_EXP_NEG)) {
|
|
656
|
+
for (; len < i; str += "0", len++)
|
|
657
|
+
;
|
|
658
|
+
str = toExponential(str, e);
|
|
659
|
+
} else {
|
|
660
|
+
i -= ne;
|
|
661
|
+
str = toFixedPoint(str, e, "0");
|
|
662
|
+
if (e + 1 > len) {
|
|
663
|
+
if (--i > 0)
|
|
664
|
+
for (str += "."; i--; str += "0")
|
|
665
|
+
;
|
|
666
|
+
} else {
|
|
667
|
+
i += e - len;
|
|
668
|
+
if (i > 0) {
|
|
669
|
+
if (e + 1 == len)
|
|
670
|
+
str += ".";
|
|
671
|
+
for (; i--; str += "0")
|
|
672
|
+
;
|
|
673
|
+
}
|
|
674
|
+
}
|
|
675
|
+
}
|
|
676
|
+
}
|
|
677
|
+
return n.s < 0 && c0 ? "-" + str : str;
|
|
678
|
+
}
|
|
679
|
+
function maxOrMin(args, method) {
|
|
680
|
+
var n, i = 1, m = new BigNumber2(args[0]);
|
|
681
|
+
for (; i < args.length; i++) {
|
|
682
|
+
n = new BigNumber2(args[i]);
|
|
683
|
+
if (!n.s) {
|
|
684
|
+
m = n;
|
|
685
|
+
break;
|
|
686
|
+
} else if (method.call(m, n)) {
|
|
687
|
+
m = n;
|
|
688
|
+
}
|
|
689
|
+
}
|
|
690
|
+
return m;
|
|
691
|
+
}
|
|
692
|
+
function normalise(n, c, e) {
|
|
693
|
+
var i = 1, j = c.length;
|
|
694
|
+
for (; !c[--j]; c.pop())
|
|
695
|
+
;
|
|
696
|
+
for (j = c[0]; j >= 10; j /= 10, i++)
|
|
697
|
+
;
|
|
698
|
+
if ((e = i + e * LOG_BASE - 1) > MAX_EXP) {
|
|
699
|
+
n.c = n.e = null;
|
|
700
|
+
} else if (e < MIN_EXP) {
|
|
701
|
+
n.c = [n.e = 0];
|
|
702
|
+
} else {
|
|
703
|
+
n.e = e;
|
|
704
|
+
n.c = c;
|
|
705
|
+
}
|
|
706
|
+
return n;
|
|
707
|
+
}
|
|
708
|
+
parseNumeric = function() {
|
|
709
|
+
var basePrefix = /^(-?)0([xbo])(?=\w[\w.]*$)/i, dotAfter = /^([^.]+)\.$/, dotBefore = /^\.([^.]+)$/, isInfinityOrNaN = /^-?(Infinity|NaN)$/, whitespaceOrPlus = /^\s*\+(?=[\w.])|^\s+|\s+$/g;
|
|
710
|
+
return function(x, str, isNum, b) {
|
|
711
|
+
var base, s = isNum ? str : str.replace(whitespaceOrPlus, "");
|
|
712
|
+
if (isInfinityOrNaN.test(s)) {
|
|
713
|
+
x.s = isNaN(s) ? null : s < 0 ? -1 : 1;
|
|
714
|
+
} else {
|
|
715
|
+
if (!isNum) {
|
|
716
|
+
s = s.replace(basePrefix, function(m, p1, p2) {
|
|
717
|
+
base = (p2 = p2.toLowerCase()) == "x" ? 16 : p2 == "b" ? 2 : 8;
|
|
718
|
+
return !b || b == base ? p1 : m;
|
|
719
|
+
});
|
|
720
|
+
if (b) {
|
|
721
|
+
base = b;
|
|
722
|
+
s = s.replace(dotAfter, "$1").replace(dotBefore, "0.$1");
|
|
723
|
+
}
|
|
724
|
+
if (str != s)
|
|
725
|
+
return new BigNumber2(s, base);
|
|
726
|
+
}
|
|
727
|
+
if (BigNumber2.DEBUG) {
|
|
728
|
+
throw Error(bignumberError + "Not a" + (b ? " base " + b : "") + " number: " + str);
|
|
729
|
+
}
|
|
730
|
+
x.s = null;
|
|
731
|
+
}
|
|
732
|
+
x.c = x.e = null;
|
|
733
|
+
};
|
|
734
|
+
}();
|
|
735
|
+
function round(x, sd, rm, r) {
|
|
736
|
+
var d, i, j, k, n, ni, rd, xc = x.c, pows10 = POWS_TEN;
|
|
737
|
+
if (xc) {
|
|
738
|
+
out: {
|
|
739
|
+
for (d = 1, k = xc[0]; k >= 10; k /= 10, d++)
|
|
740
|
+
;
|
|
741
|
+
i = sd - d;
|
|
742
|
+
if (i < 0) {
|
|
743
|
+
i += LOG_BASE;
|
|
744
|
+
j = sd;
|
|
745
|
+
n = xc[ni = 0];
|
|
746
|
+
rd = n / pows10[d - j - 1] % 10 | 0;
|
|
747
|
+
} else {
|
|
748
|
+
ni = mathceil((i + 1) / LOG_BASE);
|
|
749
|
+
if (ni >= xc.length) {
|
|
750
|
+
if (r) {
|
|
751
|
+
for (; xc.length <= ni; xc.push(0))
|
|
752
|
+
;
|
|
753
|
+
n = rd = 0;
|
|
754
|
+
d = 1;
|
|
755
|
+
i %= LOG_BASE;
|
|
756
|
+
j = i - LOG_BASE + 1;
|
|
757
|
+
} else {
|
|
758
|
+
break out;
|
|
759
|
+
}
|
|
760
|
+
} else {
|
|
761
|
+
n = k = xc[ni];
|
|
762
|
+
for (d = 1; k >= 10; k /= 10, d++)
|
|
763
|
+
;
|
|
764
|
+
i %= LOG_BASE;
|
|
765
|
+
j = i - LOG_BASE + d;
|
|
766
|
+
rd = j < 0 ? 0 : n / pows10[d - j - 1] % 10 | 0;
|
|
767
|
+
}
|
|
768
|
+
}
|
|
769
|
+
r = r || sd < 0 || xc[ni + 1] != null || (j < 0 ? n : n % pows10[d - j - 1]);
|
|
770
|
+
r = rm < 4 ? (rd || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2)) : rd > 5 || rd == 5 && (rm == 4 || r || rm == 6 && (i > 0 ? j > 0 ? n / pows10[d - j] : 0 : xc[ni - 1]) % 10 & 1 || rm == (x.s < 0 ? 8 : 7));
|
|
771
|
+
if (sd < 1 || !xc[0]) {
|
|
772
|
+
xc.length = 0;
|
|
773
|
+
if (r) {
|
|
774
|
+
sd -= x.e + 1;
|
|
775
|
+
xc[0] = pows10[(LOG_BASE - sd % LOG_BASE) % LOG_BASE];
|
|
776
|
+
x.e = -sd || 0;
|
|
777
|
+
} else {
|
|
778
|
+
xc[0] = x.e = 0;
|
|
779
|
+
}
|
|
780
|
+
return x;
|
|
781
|
+
}
|
|
782
|
+
if (i == 0) {
|
|
783
|
+
xc.length = ni;
|
|
784
|
+
k = 1;
|
|
785
|
+
ni--;
|
|
786
|
+
} else {
|
|
787
|
+
xc.length = ni + 1;
|
|
788
|
+
k = pows10[LOG_BASE - i];
|
|
789
|
+
xc[ni] = j > 0 ? mathfloor(n / pows10[d - j] % pows10[j]) * k : 0;
|
|
790
|
+
}
|
|
791
|
+
if (r) {
|
|
792
|
+
for (; ; ) {
|
|
793
|
+
if (ni == 0) {
|
|
794
|
+
for (i = 1, j = xc[0]; j >= 10; j /= 10, i++)
|
|
795
|
+
;
|
|
796
|
+
j = xc[0] += k;
|
|
797
|
+
for (k = 1; j >= 10; j /= 10, k++)
|
|
798
|
+
;
|
|
799
|
+
if (i != k) {
|
|
800
|
+
x.e++;
|
|
801
|
+
if (xc[0] == BASE)
|
|
802
|
+
xc[0] = 1;
|
|
803
|
+
}
|
|
804
|
+
break;
|
|
805
|
+
} else {
|
|
806
|
+
xc[ni] += k;
|
|
807
|
+
if (xc[ni] != BASE)
|
|
808
|
+
break;
|
|
809
|
+
xc[ni--] = 0;
|
|
810
|
+
k = 1;
|
|
811
|
+
}
|
|
812
|
+
}
|
|
813
|
+
}
|
|
814
|
+
for (i = xc.length; xc[--i] === 0; xc.pop())
|
|
815
|
+
;
|
|
816
|
+
}
|
|
817
|
+
if (x.e > MAX_EXP) {
|
|
818
|
+
x.c = x.e = null;
|
|
819
|
+
} else if (x.e < MIN_EXP) {
|
|
820
|
+
x.c = [x.e = 0];
|
|
821
|
+
}
|
|
822
|
+
}
|
|
823
|
+
return x;
|
|
824
|
+
}
|
|
825
|
+
function valueOf(n) {
|
|
826
|
+
var str, e = n.e;
|
|
827
|
+
if (e === null)
|
|
828
|
+
return n.toString();
|
|
829
|
+
str = coeffToString(n.c);
|
|
830
|
+
str = e <= TO_EXP_NEG || e >= TO_EXP_POS ? toExponential(str, e) : toFixedPoint(str, e, "0");
|
|
831
|
+
return n.s < 0 ? "-" + str : str;
|
|
832
|
+
}
|
|
833
|
+
P.absoluteValue = P.abs = function() {
|
|
834
|
+
var x = new BigNumber2(this);
|
|
835
|
+
if (x.s < 0)
|
|
836
|
+
x.s = 1;
|
|
837
|
+
return x;
|
|
838
|
+
};
|
|
839
|
+
P.comparedTo = function(y, b) {
|
|
840
|
+
return compare(this, new BigNumber2(y, b));
|
|
841
|
+
};
|
|
842
|
+
P.decimalPlaces = P.dp = function(dp, rm) {
|
|
843
|
+
var c, n, v, x = this;
|
|
844
|
+
if (dp != null) {
|
|
845
|
+
intCheck(dp, 0, MAX);
|
|
846
|
+
if (rm == null)
|
|
847
|
+
rm = ROUNDING_MODE;
|
|
848
|
+
else
|
|
849
|
+
intCheck(rm, 0, 8);
|
|
850
|
+
return round(new BigNumber2(x), dp + x.e + 1, rm);
|
|
851
|
+
}
|
|
852
|
+
if (!(c = x.c))
|
|
853
|
+
return null;
|
|
854
|
+
n = ((v = c.length - 1) - bitFloor(this.e / LOG_BASE)) * LOG_BASE;
|
|
855
|
+
if (v = c[v])
|
|
856
|
+
for (; v % 10 == 0; v /= 10, n--)
|
|
857
|
+
;
|
|
858
|
+
if (n < 0)
|
|
859
|
+
n = 0;
|
|
860
|
+
return n;
|
|
861
|
+
};
|
|
862
|
+
P.dividedBy = P.div = function(y, b) {
|
|
863
|
+
return div(this, new BigNumber2(y, b), DECIMAL_PLACES, ROUNDING_MODE);
|
|
864
|
+
};
|
|
865
|
+
P.dividedToIntegerBy = P.idiv = function(y, b) {
|
|
866
|
+
return div(this, new BigNumber2(y, b), 0, 1);
|
|
867
|
+
};
|
|
868
|
+
P.exponentiatedBy = P.pow = function(n, m) {
|
|
869
|
+
var half, isModExp, i, k, more, nIsBig, nIsNeg, nIsOdd, y, x = this;
|
|
870
|
+
n = new BigNumber2(n);
|
|
871
|
+
if (n.c && !n.isInteger()) {
|
|
872
|
+
throw Error(bignumberError + "Exponent not an integer: " + valueOf(n));
|
|
873
|
+
}
|
|
874
|
+
if (m != null)
|
|
875
|
+
m = new BigNumber2(m);
|
|
876
|
+
nIsBig = n.e > 14;
|
|
877
|
+
if (!x.c || !x.c[0] || x.c[0] == 1 && !x.e && x.c.length == 1 || !n.c || !n.c[0]) {
|
|
878
|
+
y = new BigNumber2(Math.pow(+valueOf(x), nIsBig ? 2 - isOdd(n) : +valueOf(n)));
|
|
879
|
+
return m ? y.mod(m) : y;
|
|
880
|
+
}
|
|
881
|
+
nIsNeg = n.s < 0;
|
|
882
|
+
if (m) {
|
|
883
|
+
if (m.c ? !m.c[0] : !m.s)
|
|
884
|
+
return new BigNumber2(NaN);
|
|
885
|
+
isModExp = !nIsNeg && x.isInteger() && m.isInteger();
|
|
886
|
+
if (isModExp)
|
|
887
|
+
x = x.mod(m);
|
|
888
|
+
} else if (n.e > 9 && (x.e > 0 || x.e < -1 || (x.e == 0 ? x.c[0] > 1 || nIsBig && x.c[1] >= 24e7 : x.c[0] < 8e13 || nIsBig && x.c[0] <= 9999975e7))) {
|
|
889
|
+
k = x.s < 0 && isOdd(n) ? -0 : 0;
|
|
890
|
+
if (x.e > -1)
|
|
891
|
+
k = 1 / k;
|
|
892
|
+
return new BigNumber2(nIsNeg ? 1 / k : k);
|
|
893
|
+
} else if (POW_PRECISION) {
|
|
894
|
+
k = mathceil(POW_PRECISION / LOG_BASE + 2);
|
|
895
|
+
}
|
|
896
|
+
if (nIsBig) {
|
|
897
|
+
half = new BigNumber2(0.5);
|
|
898
|
+
if (nIsNeg)
|
|
899
|
+
n.s = 1;
|
|
900
|
+
nIsOdd = isOdd(n);
|
|
901
|
+
} else {
|
|
902
|
+
i = Math.abs(+valueOf(n));
|
|
903
|
+
nIsOdd = i % 2;
|
|
904
|
+
}
|
|
905
|
+
y = new BigNumber2(ONE);
|
|
906
|
+
for (; ; ) {
|
|
907
|
+
if (nIsOdd) {
|
|
908
|
+
y = y.times(x);
|
|
909
|
+
if (!y.c)
|
|
910
|
+
break;
|
|
911
|
+
if (k) {
|
|
912
|
+
if (y.c.length > k)
|
|
913
|
+
y.c.length = k;
|
|
914
|
+
} else if (isModExp) {
|
|
915
|
+
y = y.mod(m);
|
|
916
|
+
}
|
|
917
|
+
}
|
|
918
|
+
if (i) {
|
|
919
|
+
i = mathfloor(i / 2);
|
|
920
|
+
if (i === 0)
|
|
921
|
+
break;
|
|
922
|
+
nIsOdd = i % 2;
|
|
923
|
+
} else {
|
|
924
|
+
n = n.times(half);
|
|
925
|
+
round(n, n.e + 1, 1);
|
|
926
|
+
if (n.e > 14) {
|
|
927
|
+
nIsOdd = isOdd(n);
|
|
928
|
+
} else {
|
|
929
|
+
i = +valueOf(n);
|
|
930
|
+
if (i === 0)
|
|
931
|
+
break;
|
|
932
|
+
nIsOdd = i % 2;
|
|
933
|
+
}
|
|
934
|
+
}
|
|
935
|
+
x = x.times(x);
|
|
936
|
+
if (k) {
|
|
937
|
+
if (x.c && x.c.length > k)
|
|
938
|
+
x.c.length = k;
|
|
939
|
+
} else if (isModExp) {
|
|
940
|
+
x = x.mod(m);
|
|
941
|
+
}
|
|
942
|
+
}
|
|
943
|
+
if (isModExp)
|
|
944
|
+
return y;
|
|
945
|
+
if (nIsNeg)
|
|
946
|
+
y = ONE.div(y);
|
|
947
|
+
return m ? y.mod(m) : k ? round(y, POW_PRECISION, ROUNDING_MODE, more) : y;
|
|
948
|
+
};
|
|
949
|
+
P.integerValue = function(rm) {
|
|
950
|
+
var n = new BigNumber2(this);
|
|
951
|
+
if (rm == null)
|
|
952
|
+
rm = ROUNDING_MODE;
|
|
953
|
+
else
|
|
954
|
+
intCheck(rm, 0, 8);
|
|
955
|
+
return round(n, n.e + 1, rm);
|
|
956
|
+
};
|
|
957
|
+
P.isEqualTo = P.eq = function(y, b) {
|
|
958
|
+
return compare(this, new BigNumber2(y, b)) === 0;
|
|
959
|
+
};
|
|
960
|
+
P.isFinite = function() {
|
|
961
|
+
return !!this.c;
|
|
962
|
+
};
|
|
963
|
+
P.isGreaterThan = P.gt = function(y, b) {
|
|
964
|
+
return compare(this, new BigNumber2(y, b)) > 0;
|
|
965
|
+
};
|
|
966
|
+
P.isGreaterThanOrEqualTo = P.gte = function(y, b) {
|
|
967
|
+
return (b = compare(this, new BigNumber2(y, b))) === 1 || b === 0;
|
|
968
|
+
};
|
|
969
|
+
P.isInteger = function() {
|
|
970
|
+
return !!this.c && bitFloor(this.e / LOG_BASE) > this.c.length - 2;
|
|
971
|
+
};
|
|
972
|
+
P.isLessThan = P.lt = function(y, b) {
|
|
973
|
+
return compare(this, new BigNumber2(y, b)) < 0;
|
|
974
|
+
};
|
|
975
|
+
P.isLessThanOrEqualTo = P.lte = function(y, b) {
|
|
976
|
+
return (b = compare(this, new BigNumber2(y, b))) === -1 || b === 0;
|
|
977
|
+
};
|
|
978
|
+
P.isNaN = function() {
|
|
979
|
+
return !this.s;
|
|
980
|
+
};
|
|
981
|
+
P.isNegative = function() {
|
|
982
|
+
return this.s < 0;
|
|
983
|
+
};
|
|
984
|
+
P.isPositive = function() {
|
|
985
|
+
return this.s > 0;
|
|
986
|
+
};
|
|
987
|
+
P.isZero = function() {
|
|
988
|
+
return !!this.c && this.c[0] == 0;
|
|
989
|
+
};
|
|
990
|
+
P.minus = function(y, b) {
|
|
991
|
+
var i, j, t, xLTy, x = this, a = x.s;
|
|
992
|
+
y = new BigNumber2(y, b);
|
|
993
|
+
b = y.s;
|
|
994
|
+
if (!a || !b)
|
|
995
|
+
return new BigNumber2(NaN);
|
|
996
|
+
if (a != b) {
|
|
997
|
+
y.s = -b;
|
|
998
|
+
return x.plus(y);
|
|
999
|
+
}
|
|
1000
|
+
var xe = x.e / LOG_BASE, ye = y.e / LOG_BASE, xc = x.c, yc = y.c;
|
|
1001
|
+
if (!xe || !ye) {
|
|
1002
|
+
if (!xc || !yc)
|
|
1003
|
+
return xc ? (y.s = -b, y) : new BigNumber2(yc ? x : NaN);
|
|
1004
|
+
if (!xc[0] || !yc[0]) {
|
|
1005
|
+
return yc[0] ? (y.s = -b, y) : new BigNumber2(xc[0] ? x : ROUNDING_MODE == 3 ? -0 : 0);
|
|
1006
|
+
}
|
|
1007
|
+
}
|
|
1008
|
+
xe = bitFloor(xe);
|
|
1009
|
+
ye = bitFloor(ye);
|
|
1010
|
+
xc = xc.slice();
|
|
1011
|
+
if (a = xe - ye) {
|
|
1012
|
+
if (xLTy = a < 0) {
|
|
1013
|
+
a = -a;
|
|
1014
|
+
t = xc;
|
|
1015
|
+
} else {
|
|
1016
|
+
ye = xe;
|
|
1017
|
+
t = yc;
|
|
1018
|
+
}
|
|
1019
|
+
t.reverse();
|
|
1020
|
+
for (b = a; b--; t.push(0))
|
|
1021
|
+
;
|
|
1022
|
+
t.reverse();
|
|
1023
|
+
} else {
|
|
1024
|
+
j = (xLTy = (a = xc.length) < (b = yc.length)) ? a : b;
|
|
1025
|
+
for (a = b = 0; b < j; b++) {
|
|
1026
|
+
if (xc[b] != yc[b]) {
|
|
1027
|
+
xLTy = xc[b] < yc[b];
|
|
1028
|
+
break;
|
|
1029
|
+
}
|
|
1030
|
+
}
|
|
1031
|
+
}
|
|
1032
|
+
if (xLTy) {
|
|
1033
|
+
t = xc;
|
|
1034
|
+
xc = yc;
|
|
1035
|
+
yc = t;
|
|
1036
|
+
y.s = -y.s;
|
|
1037
|
+
}
|
|
1038
|
+
b = (j = yc.length) - (i = xc.length);
|
|
1039
|
+
if (b > 0)
|
|
1040
|
+
for (; b--; xc[i++] = 0)
|
|
1041
|
+
;
|
|
1042
|
+
b = BASE - 1;
|
|
1043
|
+
for (; j > a; ) {
|
|
1044
|
+
if (xc[--j] < yc[j]) {
|
|
1045
|
+
for (i = j; i && !xc[--i]; xc[i] = b)
|
|
1046
|
+
;
|
|
1047
|
+
--xc[i];
|
|
1048
|
+
xc[j] += BASE;
|
|
1049
|
+
}
|
|
1050
|
+
xc[j] -= yc[j];
|
|
1051
|
+
}
|
|
1052
|
+
for (; xc[0] == 0; xc.splice(0, 1), --ye)
|
|
1053
|
+
;
|
|
1054
|
+
if (!xc[0]) {
|
|
1055
|
+
y.s = ROUNDING_MODE == 3 ? -1 : 1;
|
|
1056
|
+
y.c = [y.e = 0];
|
|
1057
|
+
return y;
|
|
1058
|
+
}
|
|
1059
|
+
return normalise(y, xc, ye);
|
|
1060
|
+
};
|
|
1061
|
+
P.modulo = P.mod = function(y, b) {
|
|
1062
|
+
var q, s, x = this;
|
|
1063
|
+
y = new BigNumber2(y, b);
|
|
1064
|
+
if (!x.c || !y.s || y.c && !y.c[0]) {
|
|
1065
|
+
return new BigNumber2(NaN);
|
|
1066
|
+
} else if (!y.c || x.c && !x.c[0]) {
|
|
1067
|
+
return new BigNumber2(x);
|
|
1068
|
+
}
|
|
1069
|
+
if (MODULO_MODE == 9) {
|
|
1070
|
+
s = y.s;
|
|
1071
|
+
y.s = 1;
|
|
1072
|
+
q = div(x, y, 0, 3);
|
|
1073
|
+
y.s = s;
|
|
1074
|
+
q.s *= s;
|
|
1075
|
+
} else {
|
|
1076
|
+
q = div(x, y, 0, MODULO_MODE);
|
|
1077
|
+
}
|
|
1078
|
+
y = x.minus(q.times(y));
|
|
1079
|
+
if (!y.c[0] && MODULO_MODE == 1)
|
|
1080
|
+
y.s = x.s;
|
|
1081
|
+
return y;
|
|
1082
|
+
};
|
|
1083
|
+
P.multipliedBy = P.times = function(y, b) {
|
|
1084
|
+
var c, e, i, j, k, m, xcL, xlo, xhi, ycL, ylo, yhi, zc, base, sqrtBase, x = this, xc = x.c, yc = (y = new BigNumber2(y, b)).c;
|
|
1085
|
+
if (!xc || !yc || !xc[0] || !yc[0]) {
|
|
1086
|
+
if (!x.s || !y.s || xc && !xc[0] && !yc || yc && !yc[0] && !xc) {
|
|
1087
|
+
y.c = y.e = y.s = null;
|
|
1088
|
+
} else {
|
|
1089
|
+
y.s *= x.s;
|
|
1090
|
+
if (!xc || !yc) {
|
|
1091
|
+
y.c = y.e = null;
|
|
1092
|
+
} else {
|
|
1093
|
+
y.c = [0];
|
|
1094
|
+
y.e = 0;
|
|
1095
|
+
}
|
|
1096
|
+
}
|
|
1097
|
+
return y;
|
|
1098
|
+
}
|
|
1099
|
+
e = bitFloor(x.e / LOG_BASE) + bitFloor(y.e / LOG_BASE);
|
|
1100
|
+
y.s *= x.s;
|
|
1101
|
+
xcL = xc.length;
|
|
1102
|
+
ycL = yc.length;
|
|
1103
|
+
if (xcL < ycL) {
|
|
1104
|
+
zc = xc;
|
|
1105
|
+
xc = yc;
|
|
1106
|
+
yc = zc;
|
|
1107
|
+
i = xcL;
|
|
1108
|
+
xcL = ycL;
|
|
1109
|
+
ycL = i;
|
|
1110
|
+
}
|
|
1111
|
+
for (i = xcL + ycL, zc = []; i--; zc.push(0))
|
|
1112
|
+
;
|
|
1113
|
+
base = BASE;
|
|
1114
|
+
sqrtBase = SQRT_BASE;
|
|
1115
|
+
for (i = ycL; --i >= 0; ) {
|
|
1116
|
+
c = 0;
|
|
1117
|
+
ylo = yc[i] % sqrtBase;
|
|
1118
|
+
yhi = yc[i] / sqrtBase | 0;
|
|
1119
|
+
for (k = xcL, j = i + k; j > i; ) {
|
|
1120
|
+
xlo = xc[--k] % sqrtBase;
|
|
1121
|
+
xhi = xc[k] / sqrtBase | 0;
|
|
1122
|
+
m = yhi * xlo + xhi * ylo;
|
|
1123
|
+
xlo = ylo * xlo + m % sqrtBase * sqrtBase + zc[j] + c;
|
|
1124
|
+
c = (xlo / base | 0) + (m / sqrtBase | 0) + yhi * xhi;
|
|
1125
|
+
zc[j--] = xlo % base;
|
|
1126
|
+
}
|
|
1127
|
+
zc[j] = c;
|
|
1128
|
+
}
|
|
1129
|
+
if (c) {
|
|
1130
|
+
++e;
|
|
1131
|
+
} else {
|
|
1132
|
+
zc.splice(0, 1);
|
|
1133
|
+
}
|
|
1134
|
+
return normalise(y, zc, e);
|
|
1135
|
+
};
|
|
1136
|
+
P.negated = function() {
|
|
1137
|
+
var x = new BigNumber2(this);
|
|
1138
|
+
x.s = -x.s || null;
|
|
1139
|
+
return x;
|
|
1140
|
+
};
|
|
1141
|
+
P.plus = function(y, b) {
|
|
1142
|
+
var t, x = this, a = x.s;
|
|
1143
|
+
y = new BigNumber2(y, b);
|
|
1144
|
+
b = y.s;
|
|
1145
|
+
if (!a || !b)
|
|
1146
|
+
return new BigNumber2(NaN);
|
|
1147
|
+
if (a != b) {
|
|
1148
|
+
y.s = -b;
|
|
1149
|
+
return x.minus(y);
|
|
1150
|
+
}
|
|
1151
|
+
var xe = x.e / LOG_BASE, ye = y.e / LOG_BASE, xc = x.c, yc = y.c;
|
|
1152
|
+
if (!xe || !ye) {
|
|
1153
|
+
if (!xc || !yc)
|
|
1154
|
+
return new BigNumber2(a / 0);
|
|
1155
|
+
if (!xc[0] || !yc[0])
|
|
1156
|
+
return yc[0] ? y : new BigNumber2(xc[0] ? x : a * 0);
|
|
1157
|
+
}
|
|
1158
|
+
xe = bitFloor(xe);
|
|
1159
|
+
ye = bitFloor(ye);
|
|
1160
|
+
xc = xc.slice();
|
|
1161
|
+
if (a = xe - ye) {
|
|
1162
|
+
if (a > 0) {
|
|
1163
|
+
ye = xe;
|
|
1164
|
+
t = yc;
|
|
1165
|
+
} else {
|
|
1166
|
+
a = -a;
|
|
1167
|
+
t = xc;
|
|
1168
|
+
}
|
|
1169
|
+
t.reverse();
|
|
1170
|
+
for (; a--; t.push(0))
|
|
1171
|
+
;
|
|
1172
|
+
t.reverse();
|
|
1173
|
+
}
|
|
1174
|
+
a = xc.length;
|
|
1175
|
+
b = yc.length;
|
|
1176
|
+
if (a - b < 0) {
|
|
1177
|
+
t = yc;
|
|
1178
|
+
yc = xc;
|
|
1179
|
+
xc = t;
|
|
1180
|
+
b = a;
|
|
1181
|
+
}
|
|
1182
|
+
for (a = 0; b; ) {
|
|
1183
|
+
a = (xc[--b] = xc[b] + yc[b] + a) / BASE | 0;
|
|
1184
|
+
xc[b] = BASE === xc[b] ? 0 : xc[b] % BASE;
|
|
1185
|
+
}
|
|
1186
|
+
if (a) {
|
|
1187
|
+
xc = [a].concat(xc);
|
|
1188
|
+
++ye;
|
|
1189
|
+
}
|
|
1190
|
+
return normalise(y, xc, ye);
|
|
1191
|
+
};
|
|
1192
|
+
P.precision = P.sd = function(sd, rm) {
|
|
1193
|
+
var c, n, v, x = this;
|
|
1194
|
+
if (sd != null && sd !== !!sd) {
|
|
1195
|
+
intCheck(sd, 1, MAX);
|
|
1196
|
+
if (rm == null)
|
|
1197
|
+
rm = ROUNDING_MODE;
|
|
1198
|
+
else
|
|
1199
|
+
intCheck(rm, 0, 8);
|
|
1200
|
+
return round(new BigNumber2(x), sd, rm);
|
|
1201
|
+
}
|
|
1202
|
+
if (!(c = x.c))
|
|
1203
|
+
return null;
|
|
1204
|
+
v = c.length - 1;
|
|
1205
|
+
n = v * LOG_BASE + 1;
|
|
1206
|
+
if (v = c[v]) {
|
|
1207
|
+
for (; v % 10 == 0; v /= 10, n--)
|
|
1208
|
+
;
|
|
1209
|
+
for (v = c[0]; v >= 10; v /= 10, n++)
|
|
1210
|
+
;
|
|
1211
|
+
}
|
|
1212
|
+
if (sd && x.e + 1 > n)
|
|
1213
|
+
n = x.e + 1;
|
|
1214
|
+
return n;
|
|
1215
|
+
};
|
|
1216
|
+
P.shiftedBy = function(k) {
|
|
1217
|
+
intCheck(k, -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER);
|
|
1218
|
+
return this.times("1e" + k);
|
|
1219
|
+
};
|
|
1220
|
+
P.squareRoot = P.sqrt = function() {
|
|
1221
|
+
var m, n, r, rep, t, x = this, c = x.c, s = x.s, e = x.e, dp = DECIMAL_PLACES + 4, half = new BigNumber2("0.5");
|
|
1222
|
+
if (s !== 1 || !c || !c[0]) {
|
|
1223
|
+
return new BigNumber2(!s || s < 0 && (!c || c[0]) ? NaN : c ? x : 1 / 0);
|
|
1224
|
+
}
|
|
1225
|
+
s = Math.sqrt(+valueOf(x));
|
|
1226
|
+
if (s == 0 || s == 1 / 0) {
|
|
1227
|
+
n = coeffToString(c);
|
|
1228
|
+
if ((n.length + e) % 2 == 0)
|
|
1229
|
+
n += "0";
|
|
1230
|
+
s = Math.sqrt(+n);
|
|
1231
|
+
e = bitFloor((e + 1) / 2) - (e < 0 || e % 2);
|
|
1232
|
+
if (s == 1 / 0) {
|
|
1233
|
+
n = "5e" + e;
|
|
1234
|
+
} else {
|
|
1235
|
+
n = s.toExponential();
|
|
1236
|
+
n = n.slice(0, n.indexOf("e") + 1) + e;
|
|
1237
|
+
}
|
|
1238
|
+
r = new BigNumber2(n);
|
|
1239
|
+
} else {
|
|
1240
|
+
r = new BigNumber2(s + "");
|
|
1241
|
+
}
|
|
1242
|
+
if (r.c[0]) {
|
|
1243
|
+
e = r.e;
|
|
1244
|
+
s = e + dp;
|
|
1245
|
+
if (s < 3)
|
|
1246
|
+
s = 0;
|
|
1247
|
+
for (; ; ) {
|
|
1248
|
+
t = r;
|
|
1249
|
+
r = half.times(t.plus(div(x, t, dp, 1)));
|
|
1250
|
+
if (coeffToString(t.c).slice(0, s) === (n = coeffToString(r.c)).slice(0, s)) {
|
|
1251
|
+
if (r.e < e)
|
|
1252
|
+
--s;
|
|
1253
|
+
n = n.slice(s - 3, s + 1);
|
|
1254
|
+
if (n == "9999" || !rep && n == "4999") {
|
|
1255
|
+
if (!rep) {
|
|
1256
|
+
round(t, t.e + DECIMAL_PLACES + 2, 0);
|
|
1257
|
+
if (t.times(t).eq(x)) {
|
|
1258
|
+
r = t;
|
|
1259
|
+
break;
|
|
1260
|
+
}
|
|
1261
|
+
}
|
|
1262
|
+
dp += 4;
|
|
1263
|
+
s += 4;
|
|
1264
|
+
rep = 1;
|
|
1265
|
+
} else {
|
|
1266
|
+
if (!+n || !+n.slice(1) && n.charAt(0) == "5") {
|
|
1267
|
+
round(r, r.e + DECIMAL_PLACES + 2, 1);
|
|
1268
|
+
m = !r.times(r).eq(x);
|
|
1269
|
+
}
|
|
1270
|
+
break;
|
|
1271
|
+
}
|
|
1272
|
+
}
|
|
1273
|
+
}
|
|
1274
|
+
}
|
|
1275
|
+
return round(r, r.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m);
|
|
1276
|
+
};
|
|
1277
|
+
P.toExponential = function(dp, rm) {
|
|
1278
|
+
if (dp != null) {
|
|
1279
|
+
intCheck(dp, 0, MAX);
|
|
1280
|
+
dp++;
|
|
1281
|
+
}
|
|
1282
|
+
return format(this, dp, rm, 1);
|
|
1283
|
+
};
|
|
1284
|
+
P.toFixed = function(dp, rm) {
|
|
1285
|
+
if (dp != null) {
|
|
1286
|
+
intCheck(dp, 0, MAX);
|
|
1287
|
+
dp = dp + this.e + 1;
|
|
1288
|
+
}
|
|
1289
|
+
return format(this, dp, rm);
|
|
1290
|
+
};
|
|
1291
|
+
P.toFormat = function(dp, rm, format2) {
|
|
1292
|
+
var str, x = this;
|
|
1293
|
+
if (format2 == null) {
|
|
1294
|
+
if (dp != null && rm && typeof rm == "object") {
|
|
1295
|
+
format2 = rm;
|
|
1296
|
+
rm = null;
|
|
1297
|
+
} else if (dp && typeof dp == "object") {
|
|
1298
|
+
format2 = dp;
|
|
1299
|
+
dp = rm = null;
|
|
1300
|
+
} else {
|
|
1301
|
+
format2 = FORMAT;
|
|
1302
|
+
}
|
|
1303
|
+
} else if (typeof format2 != "object") {
|
|
1304
|
+
throw Error(bignumberError + "Argument not an object: " + format2);
|
|
1305
|
+
}
|
|
1306
|
+
str = x.toFixed(dp, rm);
|
|
1307
|
+
if (x.c) {
|
|
1308
|
+
var i, arr = str.split("."), g1 = +format2.groupSize, g2 = +format2.secondaryGroupSize, groupSeparator = format2.groupSeparator || "", intPart = arr[0], fractionPart = arr[1], isNeg = x.s < 0, intDigits = isNeg ? intPart.slice(1) : intPart, len = intDigits.length;
|
|
1309
|
+
if (g2) {
|
|
1310
|
+
i = g1;
|
|
1311
|
+
g1 = g2;
|
|
1312
|
+
g2 = i;
|
|
1313
|
+
len -= i;
|
|
1314
|
+
}
|
|
1315
|
+
if (g1 > 0 && len > 0) {
|
|
1316
|
+
i = len % g1 || g1;
|
|
1317
|
+
intPart = intDigits.substr(0, i);
|
|
1318
|
+
for (; i < len; i += g1)
|
|
1319
|
+
intPart += groupSeparator + intDigits.substr(i, g1);
|
|
1320
|
+
if (g2 > 0)
|
|
1321
|
+
intPart += groupSeparator + intDigits.slice(i);
|
|
1322
|
+
if (isNeg)
|
|
1323
|
+
intPart = "-" + intPart;
|
|
1324
|
+
}
|
|
1325
|
+
str = fractionPart ? intPart + (format2.decimalSeparator || "") + ((g2 = +format2.fractionGroupSize) ? fractionPart.replace(
|
|
1326
|
+
new RegExp("\\d{" + g2 + "}\\B", "g"),
|
|
1327
|
+
"$&" + (format2.fractionGroupSeparator || "")
|
|
1328
|
+
) : fractionPart) : intPart;
|
|
1329
|
+
}
|
|
1330
|
+
return (format2.prefix || "") + str + (format2.suffix || "");
|
|
1331
|
+
};
|
|
1332
|
+
P.toFraction = function(md) {
|
|
1333
|
+
var d, d0, d1, d2, e, exp, n, n0, n1, q, r, s, x = this, xc = x.c;
|
|
1334
|
+
if (md != null) {
|
|
1335
|
+
n = new BigNumber2(md);
|
|
1336
|
+
if (!n.isInteger() && (n.c || n.s !== 1) || n.lt(ONE)) {
|
|
1337
|
+
throw Error(bignumberError + "Argument " + (n.isInteger() ? "out of range: " : "not an integer: ") + valueOf(n));
|
|
1338
|
+
}
|
|
1339
|
+
}
|
|
1340
|
+
if (!xc)
|
|
1341
|
+
return new BigNumber2(x);
|
|
1342
|
+
d = new BigNumber2(ONE);
|
|
1343
|
+
n1 = d0 = new BigNumber2(ONE);
|
|
1344
|
+
d1 = n0 = new BigNumber2(ONE);
|
|
1345
|
+
s = coeffToString(xc);
|
|
1346
|
+
e = d.e = s.length - x.e - 1;
|
|
1347
|
+
d.c[0] = POWS_TEN[(exp = e % LOG_BASE) < 0 ? LOG_BASE + exp : exp];
|
|
1348
|
+
md = !md || n.comparedTo(d) > 0 ? e > 0 ? d : n1 : n;
|
|
1349
|
+
exp = MAX_EXP;
|
|
1350
|
+
MAX_EXP = 1 / 0;
|
|
1351
|
+
n = new BigNumber2(s);
|
|
1352
|
+
n0.c[0] = 0;
|
|
1353
|
+
for (; ; ) {
|
|
1354
|
+
q = div(n, d, 0, 1);
|
|
1355
|
+
d2 = d0.plus(q.times(d1));
|
|
1356
|
+
if (d2.comparedTo(md) == 1)
|
|
1357
|
+
break;
|
|
1358
|
+
d0 = d1;
|
|
1359
|
+
d1 = d2;
|
|
1360
|
+
n1 = n0.plus(q.times(d2 = n1));
|
|
1361
|
+
n0 = d2;
|
|
1362
|
+
d = n.minus(q.times(d2 = d));
|
|
1363
|
+
n = d2;
|
|
1364
|
+
}
|
|
1365
|
+
d2 = div(md.minus(d0), d1, 0, 1);
|
|
1366
|
+
n0 = n0.plus(d2.times(n1));
|
|
1367
|
+
d0 = d0.plus(d2.times(d1));
|
|
1368
|
+
n0.s = n1.s = x.s;
|
|
1369
|
+
e = e * 2;
|
|
1370
|
+
r = div(n1, d1, e, ROUNDING_MODE).minus(x).abs().comparedTo(
|
|
1371
|
+
div(n0, d0, e, ROUNDING_MODE).minus(x).abs()
|
|
1372
|
+
) < 1 ? [n1, d1] : [n0, d0];
|
|
1373
|
+
MAX_EXP = exp;
|
|
1374
|
+
return r;
|
|
1375
|
+
};
|
|
1376
|
+
P.toNumber = function() {
|
|
1377
|
+
return +valueOf(this);
|
|
1378
|
+
};
|
|
1379
|
+
P.toPrecision = function(sd, rm) {
|
|
1380
|
+
if (sd != null)
|
|
1381
|
+
intCheck(sd, 1, MAX);
|
|
1382
|
+
return format(this, sd, rm, 2);
|
|
1383
|
+
};
|
|
1384
|
+
P.toString = function(b) {
|
|
1385
|
+
var str, n = this, s = n.s, e = n.e;
|
|
1386
|
+
if (e === null) {
|
|
1387
|
+
if (s) {
|
|
1388
|
+
str = "Infinity";
|
|
1389
|
+
if (s < 0)
|
|
1390
|
+
str = "-" + str;
|
|
1391
|
+
} else {
|
|
1392
|
+
str = "NaN";
|
|
1393
|
+
}
|
|
1394
|
+
} else {
|
|
1395
|
+
if (b == null) {
|
|
1396
|
+
str = e <= TO_EXP_NEG || e >= TO_EXP_POS ? toExponential(coeffToString(n.c), e) : toFixedPoint(coeffToString(n.c), e, "0");
|
|
1397
|
+
} else if (b === 10 && alphabetHasNormalDecimalDigits) {
|
|
1398
|
+
n = round(new BigNumber2(n), DECIMAL_PLACES + e + 1, ROUNDING_MODE);
|
|
1399
|
+
str = toFixedPoint(coeffToString(n.c), n.e, "0");
|
|
1400
|
+
} else {
|
|
1401
|
+
intCheck(b, 2, ALPHABET.length, "Base");
|
|
1402
|
+
str = convertBase(toFixedPoint(coeffToString(n.c), e, "0"), 10, b, s, true);
|
|
1403
|
+
}
|
|
1404
|
+
if (s < 0 && n.c[0])
|
|
1405
|
+
str = "-" + str;
|
|
1406
|
+
}
|
|
1407
|
+
return str;
|
|
1408
|
+
};
|
|
1409
|
+
P.valueOf = P.toJSON = function() {
|
|
1410
|
+
return valueOf(this);
|
|
1411
|
+
};
|
|
1412
|
+
P._isBigNumber = true;
|
|
1413
|
+
if (configObject != null)
|
|
1414
|
+
BigNumber2.set(configObject);
|
|
1415
|
+
return BigNumber2;
|
|
1416
|
+
}
|
|
1417
|
+
function bitFloor(n) {
|
|
1418
|
+
var i = n | 0;
|
|
1419
|
+
return n > 0 || n === i ? i : i - 1;
|
|
1420
|
+
}
|
|
1421
|
+
function coeffToString(a) {
|
|
1422
|
+
var s, z, i = 1, j = a.length, r = a[0] + "";
|
|
1423
|
+
for (; i < j; ) {
|
|
1424
|
+
s = a[i++] + "";
|
|
1425
|
+
z = LOG_BASE - s.length;
|
|
1426
|
+
for (; z--; s = "0" + s)
|
|
1427
|
+
;
|
|
1428
|
+
r += s;
|
|
1429
|
+
}
|
|
1430
|
+
for (j = r.length; r.charCodeAt(--j) === 48; )
|
|
1431
|
+
;
|
|
1432
|
+
return r.slice(0, j + 1 || 1);
|
|
1433
|
+
}
|
|
1434
|
+
function compare(x, y) {
|
|
1435
|
+
var a, b, xc = x.c, yc = y.c, i = x.s, j = y.s, k = x.e, l = y.e;
|
|
1436
|
+
if (!i || !j)
|
|
1437
|
+
return null;
|
|
1438
|
+
a = xc && !xc[0];
|
|
1439
|
+
b = yc && !yc[0];
|
|
1440
|
+
if (a || b)
|
|
1441
|
+
return a ? b ? 0 : -j : i;
|
|
1442
|
+
if (i != j)
|
|
1443
|
+
return i;
|
|
1444
|
+
a = i < 0;
|
|
1445
|
+
b = k == l;
|
|
1446
|
+
if (!xc || !yc)
|
|
1447
|
+
return b ? 0 : !xc ^ a ? 1 : -1;
|
|
1448
|
+
if (!b)
|
|
1449
|
+
return k > l ^ a ? 1 : -1;
|
|
1450
|
+
j = (k = xc.length) < (l = yc.length) ? k : l;
|
|
1451
|
+
for (i = 0; i < j; i++)
|
|
1452
|
+
if (xc[i] != yc[i])
|
|
1453
|
+
return xc[i] > yc[i] ^ a ? 1 : -1;
|
|
1454
|
+
return k == l ? 0 : k > l ^ a ? 1 : -1;
|
|
1455
|
+
}
|
|
1456
|
+
function intCheck(n, min, max, name) {
|
|
1457
|
+
if (n < min || n > max || n !== mathfloor(n)) {
|
|
1458
|
+
throw Error(bignumberError + (name || "Argument") + (typeof n == "number" ? n < min || n > max ? " out of range: " : " not an integer: " : " not a primitive number: ") + String(n));
|
|
1459
|
+
}
|
|
1460
|
+
}
|
|
1461
|
+
function isOdd(n) {
|
|
1462
|
+
var k = n.c.length - 1;
|
|
1463
|
+
return bitFloor(n.e / LOG_BASE) == k && n.c[k] % 2 != 0;
|
|
1464
|
+
}
|
|
1465
|
+
function toExponential(str, e) {
|
|
1466
|
+
return (str.length > 1 ? str.charAt(0) + "." + str.slice(1) : str) + (e < 0 ? "e" : "e+") + e;
|
|
1467
|
+
}
|
|
1468
|
+
function toFixedPoint(str, e, z) {
|
|
1469
|
+
var len, zs;
|
|
1470
|
+
if (e < 0) {
|
|
1471
|
+
for (zs = z + "."; ++e; zs += z)
|
|
1472
|
+
;
|
|
1473
|
+
str = zs + str;
|
|
1474
|
+
} else {
|
|
1475
|
+
len = str.length;
|
|
1476
|
+
if (++e > len) {
|
|
1477
|
+
for (zs = z, e -= len; --e; zs += z)
|
|
1478
|
+
;
|
|
1479
|
+
str += zs;
|
|
1480
|
+
} else if (e < len) {
|
|
1481
|
+
str = str.slice(0, e) + "." + str.slice(e);
|
|
1482
|
+
}
|
|
1483
|
+
}
|
|
1484
|
+
return str;
|
|
1485
|
+
}
|
|
1486
|
+
BigNumber = clone();
|
|
1487
|
+
BigNumber["default"] = BigNumber.BigNumber = BigNumber;
|
|
1488
|
+
if (typeof define == "function" && define.amd) {
|
|
1489
|
+
define(function() {
|
|
1490
|
+
return BigNumber;
|
|
1491
|
+
});
|
|
1492
|
+
} else if (typeof module != "undefined" && module.exports) {
|
|
1493
|
+
module.exports = BigNumber;
|
|
1494
|
+
} else {
|
|
1495
|
+
if (!globalObject) {
|
|
1496
|
+
globalObject = typeof self != "undefined" && self ? self : window;
|
|
1497
|
+
}
|
|
1498
|
+
globalObject.BigNumber = BigNumber;
|
|
1499
|
+
}
|
|
1500
|
+
})(exports);
|
|
1501
|
+
}
|
|
1502
|
+
});
|
|
1503
|
+
|
|
1504
|
+
// ../core/dist/index.js
|
|
1505
|
+
var require_dist = __commonJS({
|
|
1506
|
+
"../core/dist/index.js"(exports, module) {
|
|
1507
|
+
"use strict";
|
|
1508
|
+
var __create2 = Object.create;
|
|
1509
|
+
var __defProp2 = Object.defineProperty;
|
|
1510
|
+
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
1511
|
+
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
1512
|
+
var __getProtoOf2 = Object.getPrototypeOf;
|
|
1513
|
+
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
1514
|
+
var __export = (target, all) => {
|
|
1515
|
+
for (var name in all)
|
|
1516
|
+
__defProp2(target, name, { get: all[name], enumerable: true });
|
|
1517
|
+
};
|
|
1518
|
+
var __copyProps2 = (to, from, except, desc) => {
|
|
1519
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
1520
|
+
for (let key of __getOwnPropNames2(from))
|
|
1521
|
+
if (!__hasOwnProp2.call(to, key) && key !== except)
|
|
1522
|
+
__defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
1523
|
+
}
|
|
1524
|
+
return to;
|
|
1525
|
+
};
|
|
1526
|
+
var __toESM2 = (mod, isNodeMode, target) => (target = mod != null ? __create2(__getProtoOf2(mod)) : {}, __copyProps2(
|
|
1527
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp2(target, "default", { value: mod, enumerable: true }) : target,
|
|
1528
|
+
mod
|
|
1529
|
+
));
|
|
1530
|
+
var __toCommonJS = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod);
|
|
1531
|
+
var src_exports = {};
|
|
1532
|
+
__export(src_exports, {
|
|
1533
|
+
CurrencyType: () => CurrencyType,
|
|
1534
|
+
DeviceModel: () => DeviceModel,
|
|
1535
|
+
ExchangeType: () => ExchangeType,
|
|
1536
|
+
FAMILIES: () => FAMILIES,
|
|
1537
|
+
FeesLevel: () => FeesLevel,
|
|
1538
|
+
LedgerPlatformApduTransport: () => LedgerPlatformApduTransport,
|
|
1539
|
+
Logger: () => Logger,
|
|
1540
|
+
TokenStandard: () => TokenStandard,
|
|
1541
|
+
WindowMessageTransport: () => WindowMessageTransport2,
|
|
1542
|
+
deserializeAccount: () => deserializeAccount,
|
|
1543
|
+
deserializeTransaction: () => deserializeTransaction,
|
|
1544
|
+
serializeAccount: () => serializeAccount,
|
|
1545
|
+
serializeTransaction: () => serializeTransaction
|
|
1546
|
+
});
|
|
1547
|
+
module.exports = __toCommonJS(src_exports);
|
|
1548
|
+
var import_bignumber = __toESM2(require_bignumber());
|
|
1549
|
+
function serializeAccount({
|
|
1550
|
+
id,
|
|
1551
|
+
name,
|
|
1552
|
+
address,
|
|
1553
|
+
currency,
|
|
1554
|
+
balance,
|
|
1555
|
+
spendableBalance,
|
|
1556
|
+
blockHeight,
|
|
1557
|
+
lastSyncDate
|
|
1558
|
+
}) {
|
|
1559
|
+
return {
|
|
1560
|
+
id,
|
|
1561
|
+
name,
|
|
1562
|
+
address,
|
|
1563
|
+
currency,
|
|
1564
|
+
balance: balance.toString(),
|
|
1565
|
+
spendableBalance: spendableBalance.toString(),
|
|
1566
|
+
blockHeight,
|
|
1567
|
+
lastSyncDate: lastSyncDate.toISOString()
|
|
1568
|
+
};
|
|
1569
|
+
}
|
|
1570
|
+
function deserializeAccount({
|
|
1571
|
+
id,
|
|
1572
|
+
name,
|
|
1573
|
+
address,
|
|
1574
|
+
currency,
|
|
1575
|
+
balance,
|
|
1576
|
+
spendableBalance,
|
|
1577
|
+
blockHeight,
|
|
1578
|
+
lastSyncDate
|
|
1579
|
+
}) {
|
|
1580
|
+
return {
|
|
1581
|
+
id,
|
|
1582
|
+
name,
|
|
1583
|
+
address,
|
|
1584
|
+
currency,
|
|
1585
|
+
balance: new import_bignumber.default(balance),
|
|
1586
|
+
spendableBalance: new import_bignumber.default(spendableBalance),
|
|
1587
|
+
blockHeight,
|
|
1588
|
+
lastSyncDate: new Date(lastSyncDate)
|
|
1589
|
+
};
|
|
1590
|
+
}
|
|
1591
|
+
var import_bignumber2 = __toESM2(require_bignumber());
|
|
1592
|
+
var serializeAlgorandTransaction = ({
|
|
1593
|
+
family,
|
|
1594
|
+
mode,
|
|
1595
|
+
fees,
|
|
1596
|
+
assetId,
|
|
1597
|
+
memo,
|
|
1598
|
+
amount,
|
|
1599
|
+
recipient
|
|
1600
|
+
}) => {
|
|
1601
|
+
return {
|
|
1602
|
+
family,
|
|
1603
|
+
amount: amount.toString(),
|
|
1604
|
+
recipient,
|
|
1605
|
+
fees: fees ? fees.toString() : void 0,
|
|
1606
|
+
memo,
|
|
1607
|
+
mode,
|
|
1608
|
+
assetId
|
|
1609
|
+
};
|
|
1610
|
+
};
|
|
1611
|
+
var deserializeAlgorandTransaction = ({
|
|
1612
|
+
family,
|
|
1613
|
+
mode,
|
|
1614
|
+
fees,
|
|
1615
|
+
assetId,
|
|
1616
|
+
memo,
|
|
1617
|
+
amount,
|
|
1618
|
+
recipient
|
|
1619
|
+
}) => {
|
|
1620
|
+
return {
|
|
1621
|
+
family,
|
|
1622
|
+
amount: new import_bignumber2.default(amount),
|
|
1623
|
+
recipient,
|
|
1624
|
+
fees: fees ? new import_bignumber2.default(fees) : void 0,
|
|
1625
|
+
memo,
|
|
1626
|
+
mode,
|
|
1627
|
+
assetId
|
|
1628
|
+
};
|
|
1629
|
+
};
|
|
1630
|
+
var import_bignumber3 = __toESM2(require_bignumber());
|
|
1631
|
+
function serializeBitcoinTransaction({
|
|
1632
|
+
family,
|
|
1633
|
+
amount,
|
|
1634
|
+
recipient,
|
|
1635
|
+
feePerByte
|
|
1636
|
+
}) {
|
|
1637
|
+
return {
|
|
1638
|
+
family,
|
|
1639
|
+
amount: amount.toString(),
|
|
1640
|
+
recipient,
|
|
1641
|
+
feePerByte: feePerByte ? feePerByte.toString() : void 0
|
|
1642
|
+
};
|
|
1643
|
+
}
|
|
1644
|
+
function deserializeBitcoinTransaction({
|
|
1645
|
+
family,
|
|
1646
|
+
amount,
|
|
1647
|
+
recipient,
|
|
1648
|
+
feePerByte
|
|
1649
|
+
}) {
|
|
1650
|
+
return {
|
|
1651
|
+
family,
|
|
1652
|
+
amount: new import_bignumber3.default(amount),
|
|
1653
|
+
recipient,
|
|
1654
|
+
feePerByte: feePerByte ? new import_bignumber3.default(feePerByte) : void 0
|
|
1655
|
+
};
|
|
1656
|
+
}
|
|
1657
|
+
var import_bignumber4 = __toESM2(require_bignumber());
|
|
1658
|
+
var serializeCosmosTransaction = ({
|
|
1659
|
+
amount,
|
|
1660
|
+
recipient,
|
|
1661
|
+
family,
|
|
1662
|
+
mode,
|
|
1663
|
+
fees,
|
|
1664
|
+
gas,
|
|
1665
|
+
memo
|
|
1666
|
+
}) => {
|
|
1667
|
+
return {
|
|
1668
|
+
amount: amount.toString(),
|
|
1669
|
+
recipient,
|
|
1670
|
+
family,
|
|
1671
|
+
mode,
|
|
1672
|
+
fees: fees ? fees.toString() : void 0,
|
|
1673
|
+
gas: gas ? gas.toString() : void 0,
|
|
1674
|
+
memo
|
|
1675
|
+
};
|
|
1676
|
+
};
|
|
1677
|
+
var deserializeCosmosTransaction = ({
|
|
1678
|
+
amount,
|
|
1679
|
+
recipient,
|
|
1680
|
+
family,
|
|
1681
|
+
mode,
|
|
1682
|
+
fees,
|
|
1683
|
+
gas,
|
|
1684
|
+
memo
|
|
1685
|
+
}) => {
|
|
1686
|
+
return {
|
|
1687
|
+
amount: new import_bignumber4.default(amount),
|
|
1688
|
+
recipient,
|
|
1689
|
+
family,
|
|
1690
|
+
mode,
|
|
1691
|
+
fees: fees ? new import_bignumber4.default(fees) : void 0,
|
|
1692
|
+
gas: gas ? new import_bignumber4.default(gas) : void 0,
|
|
1693
|
+
memo
|
|
1694
|
+
};
|
|
1695
|
+
};
|
|
1696
|
+
var import_bignumber5 = __toESM2(require_bignumber());
|
|
1697
|
+
var serializeCryptoOrgTransaction = ({
|
|
1698
|
+
family,
|
|
1699
|
+
mode,
|
|
1700
|
+
fees,
|
|
1701
|
+
amount,
|
|
1702
|
+
recipient
|
|
1703
|
+
}) => {
|
|
1704
|
+
return {
|
|
1705
|
+
family,
|
|
1706
|
+
amount: amount.toString(),
|
|
1707
|
+
recipient,
|
|
1708
|
+
fees: fees ? fees.toString() : void 0,
|
|
1709
|
+
mode
|
|
1710
|
+
};
|
|
1711
|
+
};
|
|
1712
|
+
var deserializeCryptoOrgTransaction = ({
|
|
1713
|
+
family,
|
|
1714
|
+
mode,
|
|
1715
|
+
fees,
|
|
1716
|
+
amount,
|
|
1717
|
+
recipient
|
|
1718
|
+
}) => {
|
|
1719
|
+
return {
|
|
1720
|
+
family,
|
|
1721
|
+
amount: new import_bignumber5.default(amount),
|
|
1722
|
+
recipient,
|
|
1723
|
+
fees: fees ? new import_bignumber5.default(fees) : void 0,
|
|
1724
|
+
mode
|
|
1725
|
+
};
|
|
1726
|
+
};
|
|
1727
|
+
var import_bignumber6 = __toESM2(require_bignumber());
|
|
1728
|
+
function serializeEthereumTransaction({
|
|
1729
|
+
family,
|
|
1730
|
+
amount,
|
|
1731
|
+
recipient,
|
|
1732
|
+
nonce,
|
|
1733
|
+
data,
|
|
1734
|
+
gasPrice,
|
|
1735
|
+
gasLimit
|
|
1736
|
+
}) {
|
|
1737
|
+
return {
|
|
1738
|
+
family,
|
|
1739
|
+
amount: amount.toString(),
|
|
1740
|
+
recipient,
|
|
1741
|
+
nonce,
|
|
1742
|
+
data: data ? data.toString("hex") : void 0,
|
|
1743
|
+
gasPrice: gasPrice ? gasPrice.toString() : void 0,
|
|
1744
|
+
gasLimit: gasLimit ? gasLimit.toString() : void 0
|
|
1745
|
+
};
|
|
1746
|
+
}
|
|
1747
|
+
function deserializeEthereumTransaction({
|
|
1748
|
+
family,
|
|
1749
|
+
amount,
|
|
1750
|
+
recipient,
|
|
1751
|
+
nonce,
|
|
1752
|
+
data,
|
|
1753
|
+
gasPrice,
|
|
1754
|
+
gasLimit
|
|
1755
|
+
}) {
|
|
1756
|
+
return {
|
|
1757
|
+
family,
|
|
1758
|
+
amount: new import_bignumber6.default(amount),
|
|
1759
|
+
recipient,
|
|
1760
|
+
nonce,
|
|
1761
|
+
data: data ? Buffer.from(data, "hex") : void 0,
|
|
1762
|
+
gasPrice: gasPrice ? new import_bignumber6.default(gasPrice) : void 0,
|
|
1763
|
+
gasLimit: gasLimit ? new import_bignumber6.default(gasLimit) : void 0
|
|
1764
|
+
};
|
|
1765
|
+
}
|
|
1766
|
+
var import_bignumber7 = __toESM2(require_bignumber());
|
|
1767
|
+
var serializePolkadotTransaction = ({
|
|
1768
|
+
amount,
|
|
1769
|
+
recipient,
|
|
1770
|
+
family,
|
|
1771
|
+
mode,
|
|
1772
|
+
fee,
|
|
1773
|
+
era
|
|
1774
|
+
}) => {
|
|
1775
|
+
return {
|
|
1776
|
+
amount: amount.toString(),
|
|
1777
|
+
recipient,
|
|
1778
|
+
family,
|
|
1779
|
+
mode,
|
|
1780
|
+
fee: fee ? fee.toString() : void 0,
|
|
1781
|
+
era
|
|
1782
|
+
};
|
|
1783
|
+
};
|
|
1784
|
+
var deserializePolkadotTransaction = ({
|
|
1785
|
+
amount,
|
|
1786
|
+
recipient,
|
|
1787
|
+
family,
|
|
1788
|
+
mode,
|
|
1789
|
+
fee,
|
|
1790
|
+
era
|
|
1791
|
+
}) => {
|
|
1792
|
+
return {
|
|
1793
|
+
amount: new import_bignumber7.default(amount),
|
|
1794
|
+
recipient,
|
|
1795
|
+
family,
|
|
1796
|
+
mode,
|
|
1797
|
+
fee: fee ? new import_bignumber7.default(fee) : void 0,
|
|
1798
|
+
era
|
|
1799
|
+
};
|
|
1800
|
+
};
|
|
1801
|
+
var import_bignumber8 = __toESM2(require_bignumber());
|
|
1802
|
+
var serializeRippleTransaction = ({
|
|
1803
|
+
family,
|
|
1804
|
+
fee,
|
|
1805
|
+
tag,
|
|
1806
|
+
amount,
|
|
1807
|
+
recipient
|
|
1808
|
+
}) => {
|
|
1809
|
+
return {
|
|
1810
|
+
family,
|
|
1811
|
+
amount: amount.toString(),
|
|
1812
|
+
recipient,
|
|
1813
|
+
fee: fee ? fee.toString() : void 0,
|
|
1814
|
+
tag
|
|
1815
|
+
};
|
|
1816
|
+
};
|
|
1817
|
+
var deserializeRippleTransaction = ({
|
|
1818
|
+
family,
|
|
1819
|
+
fee,
|
|
1820
|
+
tag,
|
|
1821
|
+
amount,
|
|
1822
|
+
recipient
|
|
1823
|
+
}) => {
|
|
1824
|
+
return {
|
|
1825
|
+
family,
|
|
1826
|
+
amount: new import_bignumber8.default(amount),
|
|
1827
|
+
recipient,
|
|
1828
|
+
fee: fee ? new import_bignumber8.default(fee) : void 0,
|
|
1829
|
+
tag
|
|
1830
|
+
};
|
|
1831
|
+
};
|
|
1832
|
+
var import_bignumber9 = __toESM2(require_bignumber());
|
|
1833
|
+
var serializeStellarTransaction = ({
|
|
1834
|
+
amount,
|
|
1835
|
+
recipient,
|
|
1836
|
+
family,
|
|
1837
|
+
fees,
|
|
1838
|
+
memoType,
|
|
1839
|
+
memoValue
|
|
1840
|
+
}) => {
|
|
1841
|
+
return {
|
|
1842
|
+
amount: amount.toString(),
|
|
1843
|
+
recipient,
|
|
1844
|
+
family,
|
|
1845
|
+
fees: fees ? fees.toString() : void 0,
|
|
1846
|
+
memoType,
|
|
1847
|
+
memoValue
|
|
1848
|
+
};
|
|
1849
|
+
};
|
|
1850
|
+
var deserializeStellarTransaction = ({
|
|
1851
|
+
amount,
|
|
1852
|
+
recipient,
|
|
1853
|
+
family,
|
|
1854
|
+
fees,
|
|
1855
|
+
memoType,
|
|
1856
|
+
memoValue
|
|
1857
|
+
}) => {
|
|
1858
|
+
return {
|
|
1859
|
+
amount: new import_bignumber9.default(amount),
|
|
1860
|
+
recipient,
|
|
1861
|
+
family,
|
|
1862
|
+
fees: fees ? new import_bignumber9.default(fees) : void 0,
|
|
1863
|
+
memoType,
|
|
1864
|
+
memoValue
|
|
1865
|
+
};
|
|
1866
|
+
};
|
|
1867
|
+
var import_bignumber10 = __toESM2(require_bignumber());
|
|
1868
|
+
var serializeTezosTransaction = ({
|
|
1869
|
+
amount,
|
|
1870
|
+
recipient,
|
|
1871
|
+
family,
|
|
1872
|
+
mode,
|
|
1873
|
+
fees,
|
|
1874
|
+
gasLimit
|
|
1875
|
+
}) => {
|
|
1876
|
+
return {
|
|
1877
|
+
amount: amount.toString(),
|
|
1878
|
+
recipient,
|
|
1879
|
+
family,
|
|
1880
|
+
mode,
|
|
1881
|
+
fees: fees ? fees.toString() : void 0,
|
|
1882
|
+
gasLimit: gasLimit ? gasLimit.toString() : void 0
|
|
1883
|
+
};
|
|
1884
|
+
};
|
|
1885
|
+
var deserializeTezosTransaction = ({
|
|
1886
|
+
amount,
|
|
1887
|
+
recipient,
|
|
1888
|
+
family,
|
|
1889
|
+
mode,
|
|
1890
|
+
fees,
|
|
1891
|
+
gasLimit
|
|
1892
|
+
}) => {
|
|
1893
|
+
return {
|
|
1894
|
+
amount: new import_bignumber10.default(amount),
|
|
1895
|
+
recipient,
|
|
1896
|
+
family,
|
|
1897
|
+
mode,
|
|
1898
|
+
fees: fees ? new import_bignumber10.default(fees) : void 0,
|
|
1899
|
+
gasLimit: gasLimit ? new import_bignumber10.default(gasLimit) : void 0
|
|
1900
|
+
};
|
|
1901
|
+
};
|
|
1902
|
+
var import_bignumber11 = __toESM2(require_bignumber());
|
|
1903
|
+
var serializeTronTransaction = ({
|
|
1904
|
+
amount,
|
|
1905
|
+
recipient,
|
|
1906
|
+
family,
|
|
1907
|
+
mode,
|
|
1908
|
+
resource,
|
|
1909
|
+
duration
|
|
1910
|
+
}) => {
|
|
1911
|
+
return {
|
|
1912
|
+
amount: amount.toString(),
|
|
1913
|
+
recipient,
|
|
1914
|
+
family,
|
|
1915
|
+
mode,
|
|
1916
|
+
resource,
|
|
1917
|
+
duration
|
|
1918
|
+
};
|
|
1919
|
+
};
|
|
1920
|
+
var deserializeTronTransaction = ({
|
|
1921
|
+
amount,
|
|
1922
|
+
recipient,
|
|
1923
|
+
family,
|
|
1924
|
+
mode,
|
|
1925
|
+
resource,
|
|
1926
|
+
duration
|
|
1927
|
+
}) => {
|
|
1928
|
+
return {
|
|
1929
|
+
amount: new import_bignumber11.default(amount),
|
|
1930
|
+
recipient,
|
|
1931
|
+
family,
|
|
1932
|
+
mode,
|
|
1933
|
+
resource,
|
|
1934
|
+
duration
|
|
1935
|
+
};
|
|
1936
|
+
};
|
|
1937
|
+
var FAMILIES = /* @__PURE__ */ ((FAMILIES2) => {
|
|
1938
|
+
FAMILIES2["Bitcoin"] = "bitcoin";
|
|
1939
|
+
FAMILIES2["Ethereum"] = "ethereum";
|
|
1940
|
+
FAMILIES2["Algorand"] = "algorand";
|
|
1941
|
+
FAMILIES2["CryptoOrg"] = "crypto_org";
|
|
1942
|
+
FAMILIES2["Ripple"] = "ripple";
|
|
1943
|
+
FAMILIES2["Cosmos"] = "cosmos";
|
|
1944
|
+
FAMILIES2["Tezos"] = "tezos";
|
|
1945
|
+
FAMILIES2["Polkadot"] = "polkadot";
|
|
1946
|
+
FAMILIES2["Stellar"] = "stellar";
|
|
1947
|
+
FAMILIES2["Tron"] = "tron";
|
|
1948
|
+
return FAMILIES2;
|
|
1949
|
+
})(FAMILIES || {});
|
|
1950
|
+
function serializeTransaction(transaction) {
|
|
1951
|
+
switch (transaction.family) {
|
|
1952
|
+
case "ethereum":
|
|
1953
|
+
return serializeEthereumTransaction(transaction);
|
|
1954
|
+
case "bitcoin":
|
|
1955
|
+
return serializeBitcoinTransaction(transaction);
|
|
1956
|
+
case "algorand":
|
|
1957
|
+
return serializeAlgorandTransaction(transaction);
|
|
1958
|
+
case "crypto_org":
|
|
1959
|
+
return serializeCryptoOrgTransaction(transaction);
|
|
1960
|
+
case "ripple":
|
|
1961
|
+
return serializeRippleTransaction(transaction);
|
|
1962
|
+
case "cosmos":
|
|
1963
|
+
return serializeCosmosTransaction(transaction);
|
|
1964
|
+
case "tezos":
|
|
1965
|
+
return serializeTezosTransaction(transaction);
|
|
1966
|
+
case "polkadot":
|
|
1967
|
+
return serializePolkadotTransaction(transaction);
|
|
1968
|
+
case "stellar":
|
|
1969
|
+
return serializeStellarTransaction(transaction);
|
|
1970
|
+
case "tron":
|
|
1971
|
+
return serializeTronTransaction(transaction);
|
|
1972
|
+
default: {
|
|
1973
|
+
const exhaustiveCheck = transaction;
|
|
1974
|
+
return exhaustiveCheck;
|
|
1975
|
+
}
|
|
1976
|
+
}
|
|
1977
|
+
}
|
|
1978
|
+
function deserializeTransaction(rawTransaction) {
|
|
1979
|
+
switch (rawTransaction.family) {
|
|
1980
|
+
case "ethereum":
|
|
1981
|
+
return deserializeEthereumTransaction(rawTransaction);
|
|
1982
|
+
case "bitcoin":
|
|
1983
|
+
return deserializeBitcoinTransaction(rawTransaction);
|
|
1984
|
+
case "algorand":
|
|
1985
|
+
return deserializeAlgorandTransaction(rawTransaction);
|
|
1986
|
+
case "crypto_org":
|
|
1987
|
+
return deserializeCryptoOrgTransaction(rawTransaction);
|
|
1988
|
+
case "ripple":
|
|
1989
|
+
return deserializeRippleTransaction(rawTransaction);
|
|
1990
|
+
case "cosmos":
|
|
1991
|
+
return deserializeCosmosTransaction(rawTransaction);
|
|
1992
|
+
case "tezos":
|
|
1993
|
+
return deserializeTezosTransaction(rawTransaction);
|
|
1994
|
+
case "polkadot":
|
|
1995
|
+
return deserializePolkadotTransaction(rawTransaction);
|
|
1996
|
+
case "stellar":
|
|
1997
|
+
return deserializeStellarTransaction(rawTransaction);
|
|
1998
|
+
case "tron":
|
|
1999
|
+
return deserializeTronTransaction(rawTransaction);
|
|
2000
|
+
default: {
|
|
2001
|
+
const exhaustiveCheck = rawTransaction;
|
|
2002
|
+
return exhaustiveCheck;
|
|
2003
|
+
}
|
|
2004
|
+
}
|
|
2005
|
+
}
|
|
2006
|
+
var Logger = class {
|
|
2007
|
+
constructor(namespace) {
|
|
2008
|
+
this.prefix = "";
|
|
2009
|
+
this.prefix = namespace ? `[${namespace}] ` : "";
|
|
2010
|
+
}
|
|
2011
|
+
log(message, ...args) {
|
|
2012
|
+
console.log(
|
|
2013
|
+
`%c${this.prefix}${message}`,
|
|
2014
|
+
"background: #6490f1; color: #fff",
|
|
2015
|
+
...args
|
|
2016
|
+
);
|
|
2017
|
+
}
|
|
2018
|
+
warn(message, ...args) {
|
|
2019
|
+
console.warn(
|
|
2020
|
+
`%c${this.prefix}${message}`,
|
|
2021
|
+
"background: #6490f1; color: #f80",
|
|
2022
|
+
...args
|
|
2023
|
+
);
|
|
2024
|
+
}
|
|
2025
|
+
debug(message, ...args) {
|
|
2026
|
+
console.debug(
|
|
2027
|
+
`%c${this.prefix}${message}`,
|
|
2028
|
+
"background: #6490f1; color: #777",
|
|
2029
|
+
...args
|
|
2030
|
+
);
|
|
2031
|
+
}
|
|
2032
|
+
error(message, ...args) {
|
|
2033
|
+
console.error(
|
|
2034
|
+
`%c${this.prefix}${message}`,
|
|
2035
|
+
"background: #6490f1; color: #f00",
|
|
2036
|
+
...args
|
|
2037
|
+
);
|
|
2038
|
+
}
|
|
2039
|
+
};
|
|
2040
|
+
var import_events = __toESM2(__require("events"));
|
|
2041
|
+
var LedgerPlatformApduTransport = class {
|
|
2042
|
+
constructor() {
|
|
2043
|
+
this._events = new import_events.default();
|
|
2044
|
+
}
|
|
2045
|
+
exchange(_apdu) {
|
|
2046
|
+
throw new Error("Function is not implemented yet");
|
|
2047
|
+
}
|
|
2048
|
+
setScrambleKey(_key) {
|
|
2049
|
+
throw new Error("Function is not implemented yet");
|
|
2050
|
+
}
|
|
2051
|
+
close() {
|
|
2052
|
+
throw new Error("Function is not implemented yet");
|
|
2053
|
+
}
|
|
2054
|
+
on(eventName, cb) {
|
|
2055
|
+
this._events.on(eventName, cb);
|
|
2056
|
+
}
|
|
2057
|
+
off(eventName, cb) {
|
|
2058
|
+
this._events.removeListener(eventName, cb);
|
|
2059
|
+
}
|
|
2060
|
+
setDebugMode() {
|
|
2061
|
+
throw new Error("Function is not implemented yet");
|
|
2062
|
+
}
|
|
2063
|
+
setExchangeTimeout(_exchangeTimeout) {
|
|
2064
|
+
throw new Error("Function is not implemented yet");
|
|
2065
|
+
}
|
|
2066
|
+
setExchangeUnresponsiveTimeout(_unresponsiveTimeout) {
|
|
2067
|
+
throw new Error("Function is not implemented yet");
|
|
2068
|
+
}
|
|
2069
|
+
async send(_cla, _ins, _p1, _p2, _data = Buffer.alloc(0), _statusList = [36864]) {
|
|
2070
|
+
throw new Error("Function is not implemented yet");
|
|
2071
|
+
}
|
|
2072
|
+
};
|
|
2073
|
+
var defaultLogger = new Logger("WindowMessage");
|
|
2074
|
+
var WindowMessageTransport2 = class {
|
|
2075
|
+
constructor(target = window, logger = defaultLogger) {
|
|
2076
|
+
this.connect = () => {
|
|
2077
|
+
this.target.addEventListener("message", this._onMessageEvent, false);
|
|
2078
|
+
this.logger.debug("event listeners registered");
|
|
2079
|
+
};
|
|
2080
|
+
this.disconnect = () => {
|
|
2081
|
+
this.target.removeEventListener("message", this._onMessageEvent, false);
|
|
2082
|
+
this.logger.debug("event listeners unregistered");
|
|
2083
|
+
};
|
|
2084
|
+
this._onMessageEvent = (event) => {
|
|
2085
|
+
if (this._onMessage) {
|
|
2086
|
+
this.logger.debug("received message event", event);
|
|
2087
|
+
if (event.origin !== this.target.location.origin && event.data && typeof event.data === "string") {
|
|
2088
|
+
try {
|
|
2089
|
+
const payload = JSON.parse(event.data.toString());
|
|
2090
|
+
if (payload.jsonrpc) {
|
|
2091
|
+
this.logger.log("received message", payload);
|
|
2092
|
+
this._onMessage(payload);
|
|
2093
|
+
} else {
|
|
2094
|
+
this.logger.debug("not a jsonrpc message");
|
|
2095
|
+
}
|
|
2096
|
+
} catch (error) {
|
|
2097
|
+
this.logger.warn("parse error");
|
|
2098
|
+
this._onMessage(error);
|
|
2099
|
+
}
|
|
2100
|
+
} else {
|
|
2101
|
+
this.logger.debug("ignoring message same origin");
|
|
2102
|
+
}
|
|
2103
|
+
} else {
|
|
2104
|
+
this.logger.debug("no handler registered");
|
|
2105
|
+
}
|
|
2106
|
+
};
|
|
2107
|
+
this.send = (response) => {
|
|
2108
|
+
try {
|
|
2109
|
+
if (this.target.ReactNativeWebView) {
|
|
2110
|
+
this.logger.log("sending message (ReactNativeWebview)", response);
|
|
2111
|
+
this.target.ReactNativeWebView.postMessage(JSON.stringify(response));
|
|
2112
|
+
} else if (this.target.ElectronWebview) {
|
|
2113
|
+
this.logger.log("sending message (ElectronWebview)", response);
|
|
2114
|
+
this.target.ElectronWebview.postMessage(JSON.stringify(response));
|
|
2115
|
+
} else {
|
|
2116
|
+
this.logger.log("sending message", response);
|
|
2117
|
+
this.target.top.postMessage(JSON.stringify(response), "*");
|
|
2118
|
+
}
|
|
2119
|
+
return Promise.resolve();
|
|
2120
|
+
} catch (error) {
|
|
2121
|
+
this.logger.error("unexpected error on send", error);
|
|
2122
|
+
return Promise.reject(error);
|
|
2123
|
+
}
|
|
2124
|
+
};
|
|
2125
|
+
this.target = target;
|
|
2126
|
+
this.logger = logger;
|
|
2127
|
+
}
|
|
2128
|
+
set onMessage(handler) {
|
|
2129
|
+
this._onMessage = handler;
|
|
2130
|
+
}
|
|
2131
|
+
get onMessage() {
|
|
2132
|
+
return this._onMessage;
|
|
2133
|
+
}
|
|
2134
|
+
};
|
|
2135
|
+
var FeesLevel = /* @__PURE__ */ ((FeesLevel2) => {
|
|
2136
|
+
FeesLevel2["Slow"] = "slow";
|
|
2137
|
+
FeesLevel2["Medium"] = "medium";
|
|
2138
|
+
FeesLevel2["Fast"] = "fast";
|
|
2139
|
+
return FeesLevel2;
|
|
2140
|
+
})(FeesLevel || {});
|
|
2141
|
+
var CurrencyType = /* @__PURE__ */ ((CurrencyType2) => {
|
|
2142
|
+
CurrencyType2["CryptoCurrency"] = "CryptoCurrency";
|
|
2143
|
+
CurrencyType2["TokenCurrency"] = "TokenCurrency";
|
|
2144
|
+
return CurrencyType2;
|
|
2145
|
+
})(CurrencyType || {});
|
|
2146
|
+
var TokenStandard = /* @__PURE__ */ ((TokenStandard2) => {
|
|
2147
|
+
TokenStandard2["ERC20"] = "ERC20";
|
|
2148
|
+
return TokenStandard2;
|
|
2149
|
+
})(TokenStandard || {});
|
|
2150
|
+
var DeviceModel = /* @__PURE__ */ ((DeviceModel2) => {
|
|
2151
|
+
DeviceModel2["Blue"] = "blue";
|
|
2152
|
+
DeviceModel2["NanoS"] = "nanoS";
|
|
2153
|
+
DeviceModel2["NanoX"] = "nanoX";
|
|
2154
|
+
return DeviceModel2;
|
|
2155
|
+
})(DeviceModel || {});
|
|
2156
|
+
var ExchangeType = /* @__PURE__ */ ((ExchangeType2) => {
|
|
2157
|
+
ExchangeType2[ExchangeType2["SWAP"] = 0] = "SWAP";
|
|
2158
|
+
ExchangeType2[ExchangeType2["SELL"] = 1] = "SELL";
|
|
2159
|
+
ExchangeType2[ExchangeType2["FUND"] = 2] = "FUND";
|
|
2160
|
+
return ExchangeType2;
|
|
2161
|
+
})(ExchangeType || {});
|
|
2162
|
+
}
|
|
2163
|
+
});
|
|
2164
|
+
|
|
2165
|
+
// ../../node_modules/.pnpm/json-rpc-2.0@1.4.1/node_modules/json-rpc-2.0/dist/models.js
|
|
2166
|
+
var require_models = __commonJS({
|
|
2167
|
+
"../../node_modules/.pnpm/json-rpc-2.0@1.4.1/node_modules/json-rpc-2.0/dist/models.js"(exports) {
|
|
2168
|
+
"use strict";
|
|
2169
|
+
var __extends = exports && exports.__extends || function() {
|
|
2170
|
+
var extendStatics = function(d, b) {
|
|
2171
|
+
extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
|
|
2172
|
+
d2.__proto__ = b2;
|
|
2173
|
+
} || function(d2, b2) {
|
|
2174
|
+
for (var p in b2)
|
|
2175
|
+
if (Object.prototype.hasOwnProperty.call(b2, p))
|
|
2176
|
+
d2[p] = b2[p];
|
|
2177
|
+
};
|
|
2178
|
+
return extendStatics(d, b);
|
|
2179
|
+
};
|
|
2180
|
+
return function(d, b) {
|
|
2181
|
+
if (typeof b !== "function" && b !== null)
|
|
2182
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
2183
|
+
extendStatics(d, b);
|
|
2184
|
+
function __() {
|
|
2185
|
+
this.constructor = d;
|
|
2186
|
+
}
|
|
2187
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
2188
|
+
};
|
|
2189
|
+
}();
|
|
2190
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2191
|
+
exports.createJSONRPCNotification = exports.createJSONRPCRequest = exports.createJSONRPCSuccessResponse = exports.createJSONRPCErrorResponse = exports.JSONRPCErrorCode = exports.JSONRPCErrorException = exports.isJSONRPCResponses = exports.isJSONRPCResponse = exports.isJSONRPCRequests = exports.isJSONRPCRequest = exports.isJSONRPCID = exports.JSONRPC = void 0;
|
|
2192
|
+
exports.JSONRPC = "2.0";
|
|
2193
|
+
var isJSONRPCID = function(id) {
|
|
2194
|
+
return typeof id === "string" || typeof id === "number" || id === null;
|
|
2195
|
+
};
|
|
2196
|
+
exports.isJSONRPCID = isJSONRPCID;
|
|
2197
|
+
var isJSONRPCRequest = function(payload) {
|
|
2198
|
+
return payload.jsonrpc === exports.JSONRPC && payload.method !== void 0 && payload.result === void 0 && payload.error === void 0;
|
|
2199
|
+
};
|
|
2200
|
+
exports.isJSONRPCRequest = isJSONRPCRequest;
|
|
2201
|
+
var isJSONRPCRequests = function(payload) {
|
|
2202
|
+
return Array.isArray(payload) && payload.every(exports.isJSONRPCRequest);
|
|
2203
|
+
};
|
|
2204
|
+
exports.isJSONRPCRequests = isJSONRPCRequests;
|
|
2205
|
+
var isJSONRPCResponse = function(payload) {
|
|
2206
|
+
return payload.jsonrpc === exports.JSONRPC && payload.id !== void 0 && (payload.result !== void 0 || payload.error !== void 0);
|
|
2207
|
+
};
|
|
2208
|
+
exports.isJSONRPCResponse = isJSONRPCResponse;
|
|
2209
|
+
var isJSONRPCResponses = function(payload) {
|
|
2210
|
+
return Array.isArray(payload) && payload.every(exports.isJSONRPCResponse);
|
|
2211
|
+
};
|
|
2212
|
+
exports.isJSONRPCResponses = isJSONRPCResponses;
|
|
2213
|
+
var createJSONRPCError = function(code, message, data) {
|
|
2214
|
+
var error = { code, message };
|
|
2215
|
+
if (data != null) {
|
|
2216
|
+
error.data = data;
|
|
2217
|
+
}
|
|
2218
|
+
return error;
|
|
2219
|
+
};
|
|
2220
|
+
var JSONRPCErrorException = function(_super) {
|
|
2221
|
+
__extends(JSONRPCErrorException2, _super);
|
|
2222
|
+
function JSONRPCErrorException2(message, code, data) {
|
|
2223
|
+
var _this = _super.call(this, message) || this;
|
|
2224
|
+
Object.setPrototypeOf(_this, JSONRPCErrorException2.prototype);
|
|
2225
|
+
_this.code = code;
|
|
2226
|
+
_this.data = data;
|
|
2227
|
+
return _this;
|
|
2228
|
+
}
|
|
2229
|
+
JSONRPCErrorException2.prototype.toObject = function() {
|
|
2230
|
+
return createJSONRPCError(this.code, this.message, this.data);
|
|
2231
|
+
};
|
|
2232
|
+
return JSONRPCErrorException2;
|
|
2233
|
+
}(Error);
|
|
2234
|
+
exports.JSONRPCErrorException = JSONRPCErrorException;
|
|
2235
|
+
var JSONRPCErrorCode;
|
|
2236
|
+
(function(JSONRPCErrorCode2) {
|
|
2237
|
+
JSONRPCErrorCode2[JSONRPCErrorCode2["ParseError"] = -32700] = "ParseError";
|
|
2238
|
+
JSONRPCErrorCode2[JSONRPCErrorCode2["InvalidRequest"] = -32600] = "InvalidRequest";
|
|
2239
|
+
JSONRPCErrorCode2[JSONRPCErrorCode2["MethodNotFound"] = -32601] = "MethodNotFound";
|
|
2240
|
+
JSONRPCErrorCode2[JSONRPCErrorCode2["InvalidParams"] = -32602] = "InvalidParams";
|
|
2241
|
+
JSONRPCErrorCode2[JSONRPCErrorCode2["InternalError"] = -32603] = "InternalError";
|
|
2242
|
+
})(JSONRPCErrorCode = exports.JSONRPCErrorCode || (exports.JSONRPCErrorCode = {}));
|
|
2243
|
+
var createJSONRPCErrorResponse = function(id, code, message, data) {
|
|
2244
|
+
return {
|
|
2245
|
+
jsonrpc: exports.JSONRPC,
|
|
2246
|
+
id,
|
|
2247
|
+
error: createJSONRPCError(code, message, data)
|
|
2248
|
+
};
|
|
2249
|
+
};
|
|
2250
|
+
exports.createJSONRPCErrorResponse = createJSONRPCErrorResponse;
|
|
2251
|
+
var createJSONRPCSuccessResponse = function(id, result) {
|
|
2252
|
+
return {
|
|
2253
|
+
jsonrpc: exports.JSONRPC,
|
|
2254
|
+
id,
|
|
2255
|
+
result: result !== null && result !== void 0 ? result : null
|
|
2256
|
+
};
|
|
2257
|
+
};
|
|
2258
|
+
exports.createJSONRPCSuccessResponse = createJSONRPCSuccessResponse;
|
|
2259
|
+
var createJSONRPCRequest = function(id, method, params) {
|
|
2260
|
+
return {
|
|
2261
|
+
jsonrpc: exports.JSONRPC,
|
|
2262
|
+
id,
|
|
2263
|
+
method,
|
|
2264
|
+
params
|
|
2265
|
+
};
|
|
2266
|
+
};
|
|
2267
|
+
exports.createJSONRPCRequest = createJSONRPCRequest;
|
|
2268
|
+
var createJSONRPCNotification = function(method, params) {
|
|
2269
|
+
return {
|
|
2270
|
+
jsonrpc: exports.JSONRPC,
|
|
2271
|
+
method,
|
|
2272
|
+
params
|
|
2273
|
+
};
|
|
2274
|
+
};
|
|
2275
|
+
exports.createJSONRPCNotification = createJSONRPCNotification;
|
|
2276
|
+
}
|
|
2277
|
+
});
|
|
2278
|
+
|
|
2279
|
+
// ../../node_modules/.pnpm/json-rpc-2.0@1.4.1/node_modules/json-rpc-2.0/dist/internal.js
|
|
2280
|
+
var require_internal = __commonJS({
|
|
2281
|
+
"../../node_modules/.pnpm/json-rpc-2.0@1.4.1/node_modules/json-rpc-2.0/dist/internal.js"(exports) {
|
|
2282
|
+
"use strict";
|
|
2283
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2284
|
+
exports.DefaultErrorCode = void 0;
|
|
2285
|
+
exports.DefaultErrorCode = 0;
|
|
2286
|
+
}
|
|
2287
|
+
});
|
|
2288
|
+
|
|
2289
|
+
// ../../node_modules/.pnpm/json-rpc-2.0@1.4.1/node_modules/json-rpc-2.0/dist/client.js
|
|
2290
|
+
var require_client = __commonJS({
|
|
2291
|
+
"../../node_modules/.pnpm/json-rpc-2.0@1.4.1/node_modules/json-rpc-2.0/dist/client.js"(exports) {
|
|
2292
|
+
"use strict";
|
|
2293
|
+
var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
|
|
2294
|
+
function adopt(value) {
|
|
2295
|
+
return value instanceof P ? value : new P(function(resolve) {
|
|
2296
|
+
resolve(value);
|
|
2297
|
+
});
|
|
2298
|
+
}
|
|
2299
|
+
return new (P || (P = Promise))(function(resolve, reject) {
|
|
2300
|
+
function fulfilled(value) {
|
|
2301
|
+
try {
|
|
2302
|
+
step(generator.next(value));
|
|
2303
|
+
} catch (e) {
|
|
2304
|
+
reject(e);
|
|
2305
|
+
}
|
|
2306
|
+
}
|
|
2307
|
+
function rejected(value) {
|
|
2308
|
+
try {
|
|
2309
|
+
step(generator["throw"](value));
|
|
2310
|
+
} catch (e) {
|
|
2311
|
+
reject(e);
|
|
2312
|
+
}
|
|
2313
|
+
}
|
|
2314
|
+
function step(result) {
|
|
2315
|
+
result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
|
|
2316
|
+
}
|
|
2317
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
2318
|
+
});
|
|
2319
|
+
};
|
|
2320
|
+
var __generator = exports && exports.__generator || function(thisArg, body) {
|
|
2321
|
+
var _ = { label: 0, sent: function() {
|
|
2322
|
+
if (t[0] & 1)
|
|
2323
|
+
throw t[1];
|
|
2324
|
+
return t[1];
|
|
2325
|
+
}, trys: [], ops: [] }, f, y, t, g;
|
|
2326
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
|
|
2327
|
+
return this;
|
|
2328
|
+
}), g;
|
|
2329
|
+
function verb(n) {
|
|
2330
|
+
return function(v) {
|
|
2331
|
+
return step([n, v]);
|
|
2332
|
+
};
|
|
2333
|
+
}
|
|
2334
|
+
function step(op) {
|
|
2335
|
+
if (f)
|
|
2336
|
+
throw new TypeError("Generator is already executing.");
|
|
2337
|
+
while (_)
|
|
2338
|
+
try {
|
|
2339
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
|
|
2340
|
+
return t;
|
|
2341
|
+
if (y = 0, t)
|
|
2342
|
+
op = [op[0] & 2, t.value];
|
|
2343
|
+
switch (op[0]) {
|
|
2344
|
+
case 0:
|
|
2345
|
+
case 1:
|
|
2346
|
+
t = op;
|
|
2347
|
+
break;
|
|
2348
|
+
case 4:
|
|
2349
|
+
_.label++;
|
|
2350
|
+
return { value: op[1], done: false };
|
|
2351
|
+
case 5:
|
|
2352
|
+
_.label++;
|
|
2353
|
+
y = op[1];
|
|
2354
|
+
op = [0];
|
|
2355
|
+
continue;
|
|
2356
|
+
case 7:
|
|
2357
|
+
op = _.ops.pop();
|
|
2358
|
+
_.trys.pop();
|
|
2359
|
+
continue;
|
|
2360
|
+
default:
|
|
2361
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
2362
|
+
_ = 0;
|
|
2363
|
+
continue;
|
|
2364
|
+
}
|
|
2365
|
+
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
2366
|
+
_.label = op[1];
|
|
2367
|
+
break;
|
|
2368
|
+
}
|
|
2369
|
+
if (op[0] === 6 && _.label < t[1]) {
|
|
2370
|
+
_.label = t[1];
|
|
2371
|
+
t = op;
|
|
2372
|
+
break;
|
|
2373
|
+
}
|
|
2374
|
+
if (t && _.label < t[2]) {
|
|
2375
|
+
_.label = t[2];
|
|
2376
|
+
_.ops.push(op);
|
|
2377
|
+
break;
|
|
2378
|
+
}
|
|
2379
|
+
if (t[2])
|
|
2380
|
+
_.ops.pop();
|
|
2381
|
+
_.trys.pop();
|
|
2382
|
+
continue;
|
|
2383
|
+
}
|
|
2384
|
+
op = body.call(thisArg, _);
|
|
2385
|
+
} catch (e) {
|
|
2386
|
+
op = [6, e];
|
|
2387
|
+
y = 0;
|
|
2388
|
+
} finally {
|
|
2389
|
+
f = t = 0;
|
|
2390
|
+
}
|
|
2391
|
+
if (op[0] & 5)
|
|
2392
|
+
throw op[1];
|
|
2393
|
+
return { value: op[0] ? op[1] : void 0, done: true };
|
|
2394
|
+
}
|
|
2395
|
+
};
|
|
2396
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2397
|
+
exports.JSONRPCClient = void 0;
|
|
2398
|
+
var models_1 = require_models();
|
|
2399
|
+
var internal_1 = require_internal();
|
|
2400
|
+
var JSONRPCClient = function() {
|
|
2401
|
+
function JSONRPCClient2(_send, createID) {
|
|
2402
|
+
this._send = _send;
|
|
2403
|
+
this.createID = createID;
|
|
2404
|
+
this.idToResolveMap = /* @__PURE__ */ new Map();
|
|
2405
|
+
this.id = 0;
|
|
2406
|
+
}
|
|
2407
|
+
JSONRPCClient2.prototype._createID = function() {
|
|
2408
|
+
if (this.createID) {
|
|
2409
|
+
return this.createID();
|
|
2410
|
+
} else {
|
|
2411
|
+
return ++this.id;
|
|
2412
|
+
}
|
|
2413
|
+
};
|
|
2414
|
+
JSONRPCClient2.prototype.timeout = function(delay, overrideCreateJSONRPCErrorResponse) {
|
|
2415
|
+
var _this = this;
|
|
2416
|
+
if (overrideCreateJSONRPCErrorResponse === void 0) {
|
|
2417
|
+
overrideCreateJSONRPCErrorResponse = function(id) {
|
|
2418
|
+
return (0, models_1.createJSONRPCErrorResponse)(id, internal_1.DefaultErrorCode, "Request timeout");
|
|
2419
|
+
};
|
|
2420
|
+
}
|
|
2421
|
+
var timeoutRequest = function(ids, request) {
|
|
2422
|
+
var timeoutID = setTimeout(function() {
|
|
2423
|
+
ids.forEach(function(id) {
|
|
2424
|
+
var resolve = _this.idToResolveMap.get(id);
|
|
2425
|
+
if (resolve) {
|
|
2426
|
+
_this.idToResolveMap.delete(id);
|
|
2427
|
+
resolve(overrideCreateJSONRPCErrorResponse(id));
|
|
2428
|
+
}
|
|
2429
|
+
});
|
|
2430
|
+
}, delay);
|
|
2431
|
+
return request().then(function(result) {
|
|
2432
|
+
clearTimeout(timeoutID);
|
|
2433
|
+
return result;
|
|
2434
|
+
}, function(error) {
|
|
2435
|
+
clearTimeout(timeoutID);
|
|
2436
|
+
return Promise.reject(error);
|
|
2437
|
+
});
|
|
2438
|
+
};
|
|
2439
|
+
var requestAdvanced = function(request, clientParams) {
|
|
2440
|
+
var ids = (!Array.isArray(request) ? [request] : request).map(function(request2) {
|
|
2441
|
+
return request2.id;
|
|
2442
|
+
}).filter(isDefinedAndNonNull);
|
|
2443
|
+
return timeoutRequest(ids, function() {
|
|
2444
|
+
return _this.requestAdvanced(request, clientParams);
|
|
2445
|
+
});
|
|
2446
|
+
};
|
|
2447
|
+
return {
|
|
2448
|
+
request: function(method, params, clientParams) {
|
|
2449
|
+
var id = _this._createID();
|
|
2450
|
+
return timeoutRequest([id], function() {
|
|
2451
|
+
return _this.requestWithID(method, params, clientParams, id);
|
|
2452
|
+
});
|
|
2453
|
+
},
|
|
2454
|
+
requestAdvanced: function(request, clientParams) {
|
|
2455
|
+
return requestAdvanced(request, clientParams);
|
|
2456
|
+
}
|
|
2457
|
+
};
|
|
2458
|
+
};
|
|
2459
|
+
JSONRPCClient2.prototype.request = function(method, params, clientParams) {
|
|
2460
|
+
return this.requestWithID(method, params, clientParams, this._createID());
|
|
2461
|
+
};
|
|
2462
|
+
JSONRPCClient2.prototype.requestWithID = function(method, params, clientParams, id) {
|
|
2463
|
+
return __awaiter(this, void 0, void 0, function() {
|
|
2464
|
+
var request, response;
|
|
2465
|
+
return __generator(this, function(_a) {
|
|
2466
|
+
switch (_a.label) {
|
|
2467
|
+
case 0:
|
|
2468
|
+
request = (0, models_1.createJSONRPCRequest)(id, method, params);
|
|
2469
|
+
return [4, this.requestAdvanced(request, clientParams)];
|
|
2470
|
+
case 1:
|
|
2471
|
+
response = _a.sent();
|
|
2472
|
+
if (response.result !== void 0 && !response.error) {
|
|
2473
|
+
return [2, response.result];
|
|
2474
|
+
} else if (response.result === void 0 && response.error) {
|
|
2475
|
+
return [2, Promise.reject(new models_1.JSONRPCErrorException(response.error.message, response.error.code, response.error.data))];
|
|
2476
|
+
} else {
|
|
2477
|
+
return [2, Promise.reject(new Error("An unexpected error occurred"))];
|
|
2478
|
+
}
|
|
2479
|
+
return [2];
|
|
2480
|
+
}
|
|
2481
|
+
});
|
|
2482
|
+
});
|
|
2483
|
+
};
|
|
2484
|
+
JSONRPCClient2.prototype.requestAdvanced = function(requests, clientParams) {
|
|
2485
|
+
var _this = this;
|
|
2486
|
+
var areRequestsOriginallyArray = Array.isArray(requests);
|
|
2487
|
+
if (!Array.isArray(requests)) {
|
|
2488
|
+
requests = [requests];
|
|
2489
|
+
}
|
|
2490
|
+
var requestsWithID = requests.filter(function(request) {
|
|
2491
|
+
return isDefinedAndNonNull(request.id);
|
|
2492
|
+
});
|
|
2493
|
+
var promises = requestsWithID.map(function(request) {
|
|
2494
|
+
return new Promise(function(resolve) {
|
|
2495
|
+
return _this.idToResolveMap.set(request.id, resolve);
|
|
2496
|
+
});
|
|
2497
|
+
});
|
|
2498
|
+
var promise = Promise.all(promises).then(function(responses) {
|
|
2499
|
+
if (areRequestsOriginallyArray || !responses.length) {
|
|
2500
|
+
return responses;
|
|
2501
|
+
} else {
|
|
2502
|
+
return responses[0];
|
|
2503
|
+
}
|
|
2504
|
+
});
|
|
2505
|
+
return this.send(areRequestsOriginallyArray ? requests : requests[0], clientParams).then(function() {
|
|
2506
|
+
return promise;
|
|
2507
|
+
}, function(error) {
|
|
2508
|
+
requestsWithID.forEach(function(request) {
|
|
2509
|
+
_this.receive((0, models_1.createJSONRPCErrorResponse)(request.id, internal_1.DefaultErrorCode, error && error.message || "Failed to send a request"));
|
|
2510
|
+
});
|
|
2511
|
+
return promise;
|
|
2512
|
+
});
|
|
2513
|
+
};
|
|
2514
|
+
JSONRPCClient2.prototype.notify = function(method, params, clientParams) {
|
|
2515
|
+
var request = (0, models_1.createJSONRPCNotification)(method, params);
|
|
2516
|
+
this.send(request, clientParams).then(void 0, function() {
|
|
2517
|
+
return void 0;
|
|
2518
|
+
});
|
|
2519
|
+
};
|
|
2520
|
+
JSONRPCClient2.prototype.send = function(payload, clientParams) {
|
|
2521
|
+
return this._send(payload, clientParams);
|
|
2522
|
+
};
|
|
2523
|
+
JSONRPCClient2.prototype.rejectAllPendingRequests = function(message) {
|
|
2524
|
+
this.idToResolveMap.forEach(function(resolve, id) {
|
|
2525
|
+
return resolve((0, models_1.createJSONRPCErrorResponse)(id, internal_1.DefaultErrorCode, message));
|
|
2526
|
+
});
|
|
2527
|
+
this.idToResolveMap.clear();
|
|
2528
|
+
};
|
|
2529
|
+
JSONRPCClient2.prototype.receive = function(responses) {
|
|
2530
|
+
var _this = this;
|
|
2531
|
+
if (!Array.isArray(responses)) {
|
|
2532
|
+
responses = [responses];
|
|
2533
|
+
}
|
|
2534
|
+
responses.forEach(function(response) {
|
|
2535
|
+
var resolve = _this.idToResolveMap.get(response.id);
|
|
2536
|
+
if (resolve) {
|
|
2537
|
+
_this.idToResolveMap.delete(response.id);
|
|
2538
|
+
resolve(response);
|
|
2539
|
+
}
|
|
2540
|
+
});
|
|
2541
|
+
};
|
|
2542
|
+
return JSONRPCClient2;
|
|
2543
|
+
}();
|
|
2544
|
+
exports.JSONRPCClient = JSONRPCClient;
|
|
2545
|
+
var isDefinedAndNonNull = function(value) {
|
|
2546
|
+
return value !== void 0 && value !== null;
|
|
2547
|
+
};
|
|
2548
|
+
}
|
|
2549
|
+
});
|
|
2550
|
+
|
|
2551
|
+
// ../../node_modules/.pnpm/json-rpc-2.0@1.4.1/node_modules/json-rpc-2.0/dist/server.js
|
|
2552
|
+
var require_server = __commonJS({
|
|
2553
|
+
"../../node_modules/.pnpm/json-rpc-2.0@1.4.1/node_modules/json-rpc-2.0/dist/server.js"(exports) {
|
|
2554
|
+
"use strict";
|
|
2555
|
+
var __assign = exports && exports.__assign || function() {
|
|
2556
|
+
__assign = Object.assign || function(t) {
|
|
2557
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
2558
|
+
s = arguments[i];
|
|
2559
|
+
for (var p in s)
|
|
2560
|
+
if (Object.prototype.hasOwnProperty.call(s, p))
|
|
2561
|
+
t[p] = s[p];
|
|
2562
|
+
}
|
|
2563
|
+
return t;
|
|
2564
|
+
};
|
|
2565
|
+
return __assign.apply(this, arguments);
|
|
2566
|
+
};
|
|
2567
|
+
var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
|
|
2568
|
+
function adopt(value) {
|
|
2569
|
+
return value instanceof P ? value : new P(function(resolve) {
|
|
2570
|
+
resolve(value);
|
|
2571
|
+
});
|
|
2572
|
+
}
|
|
2573
|
+
return new (P || (P = Promise))(function(resolve, reject) {
|
|
2574
|
+
function fulfilled(value) {
|
|
2575
|
+
try {
|
|
2576
|
+
step(generator.next(value));
|
|
2577
|
+
} catch (e) {
|
|
2578
|
+
reject(e);
|
|
2579
|
+
}
|
|
2580
|
+
}
|
|
2581
|
+
function rejected(value) {
|
|
2582
|
+
try {
|
|
2583
|
+
step(generator["throw"](value));
|
|
2584
|
+
} catch (e) {
|
|
2585
|
+
reject(e);
|
|
2586
|
+
}
|
|
2587
|
+
}
|
|
2588
|
+
function step(result) {
|
|
2589
|
+
result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
|
|
2590
|
+
}
|
|
2591
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
2592
|
+
});
|
|
2593
|
+
};
|
|
2594
|
+
var __generator = exports && exports.__generator || function(thisArg, body) {
|
|
2595
|
+
var _ = { label: 0, sent: function() {
|
|
2596
|
+
if (t[0] & 1)
|
|
2597
|
+
throw t[1];
|
|
2598
|
+
return t[1];
|
|
2599
|
+
}, trys: [], ops: [] }, f, y, t, g;
|
|
2600
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
|
|
2601
|
+
return this;
|
|
2602
|
+
}), g;
|
|
2603
|
+
function verb(n) {
|
|
2604
|
+
return function(v) {
|
|
2605
|
+
return step([n, v]);
|
|
2606
|
+
};
|
|
2607
|
+
}
|
|
2608
|
+
function step(op) {
|
|
2609
|
+
if (f)
|
|
2610
|
+
throw new TypeError("Generator is already executing.");
|
|
2611
|
+
while (_)
|
|
2612
|
+
try {
|
|
2613
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
|
|
2614
|
+
return t;
|
|
2615
|
+
if (y = 0, t)
|
|
2616
|
+
op = [op[0] & 2, t.value];
|
|
2617
|
+
switch (op[0]) {
|
|
2618
|
+
case 0:
|
|
2619
|
+
case 1:
|
|
2620
|
+
t = op;
|
|
2621
|
+
break;
|
|
2622
|
+
case 4:
|
|
2623
|
+
_.label++;
|
|
2624
|
+
return { value: op[1], done: false };
|
|
2625
|
+
case 5:
|
|
2626
|
+
_.label++;
|
|
2627
|
+
y = op[1];
|
|
2628
|
+
op = [0];
|
|
2629
|
+
continue;
|
|
2630
|
+
case 7:
|
|
2631
|
+
op = _.ops.pop();
|
|
2632
|
+
_.trys.pop();
|
|
2633
|
+
continue;
|
|
2634
|
+
default:
|
|
2635
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
2636
|
+
_ = 0;
|
|
2637
|
+
continue;
|
|
2638
|
+
}
|
|
2639
|
+
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
2640
|
+
_.label = op[1];
|
|
2641
|
+
break;
|
|
2642
|
+
}
|
|
2643
|
+
if (op[0] === 6 && _.label < t[1]) {
|
|
2644
|
+
_.label = t[1];
|
|
2645
|
+
t = op;
|
|
2646
|
+
break;
|
|
2647
|
+
}
|
|
2648
|
+
if (t && _.label < t[2]) {
|
|
2649
|
+
_.label = t[2];
|
|
2650
|
+
_.ops.push(op);
|
|
2651
|
+
break;
|
|
2652
|
+
}
|
|
2653
|
+
if (t[2])
|
|
2654
|
+
_.ops.pop();
|
|
2655
|
+
_.trys.pop();
|
|
2656
|
+
continue;
|
|
2657
|
+
}
|
|
2658
|
+
op = body.call(thisArg, _);
|
|
2659
|
+
} catch (e) {
|
|
2660
|
+
op = [6, e];
|
|
2661
|
+
y = 0;
|
|
2662
|
+
} finally {
|
|
2663
|
+
f = t = 0;
|
|
2664
|
+
}
|
|
2665
|
+
if (op[0] & 5)
|
|
2666
|
+
throw op[1];
|
|
2667
|
+
return { value: op[0] ? op[1] : void 0, done: true };
|
|
2668
|
+
}
|
|
2669
|
+
};
|
|
2670
|
+
var __spreadArray = exports && exports.__spreadArray || function(to, from, pack) {
|
|
2671
|
+
if (pack || arguments.length === 2)
|
|
2672
|
+
for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
2673
|
+
if (ar || !(i in from)) {
|
|
2674
|
+
if (!ar)
|
|
2675
|
+
ar = Array.prototype.slice.call(from, 0, i);
|
|
2676
|
+
ar[i] = from[i];
|
|
2677
|
+
}
|
|
2678
|
+
}
|
|
2679
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
2680
|
+
};
|
|
2681
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2682
|
+
exports.JSONRPCServer = void 0;
|
|
2683
|
+
var models_1 = require_models();
|
|
2684
|
+
var internal_1 = require_internal();
|
|
2685
|
+
var createParseErrorResponse = function() {
|
|
2686
|
+
return (0, models_1.createJSONRPCErrorResponse)(null, models_1.JSONRPCErrorCode.ParseError, "Parse error");
|
|
2687
|
+
};
|
|
2688
|
+
var createInvalidRequestResponse = function(request) {
|
|
2689
|
+
return (0, models_1.createJSONRPCErrorResponse)((0, models_1.isJSONRPCID)(request.id) ? request.id : null, models_1.JSONRPCErrorCode.InvalidRequest, "Invalid Request");
|
|
2690
|
+
};
|
|
2691
|
+
var createMethodNotFoundResponse = function(id) {
|
|
2692
|
+
return (0, models_1.createJSONRPCErrorResponse)(id, models_1.JSONRPCErrorCode.MethodNotFound, "Method not found");
|
|
2693
|
+
};
|
|
2694
|
+
var JSONRPCServer = function() {
|
|
2695
|
+
function JSONRPCServer2(options) {
|
|
2696
|
+
if (options === void 0) {
|
|
2697
|
+
options = {};
|
|
2698
|
+
}
|
|
2699
|
+
var _a;
|
|
2700
|
+
this.mapErrorToJSONRPCErrorResponse = defaultMapErrorToJSONRPCErrorResponse;
|
|
2701
|
+
this.nameToMethodDictionary = {};
|
|
2702
|
+
this.middleware = null;
|
|
2703
|
+
this.errorListener = (_a = options.errorListener) !== null && _a !== void 0 ? _a : console.warn;
|
|
2704
|
+
}
|
|
2705
|
+
JSONRPCServer2.prototype.hasMethod = function(name) {
|
|
2706
|
+
return !!this.nameToMethodDictionary[name];
|
|
2707
|
+
};
|
|
2708
|
+
JSONRPCServer2.prototype.addMethod = function(name, method) {
|
|
2709
|
+
this.addMethodAdvanced(name, this.toJSONRPCMethod(method));
|
|
2710
|
+
};
|
|
2711
|
+
JSONRPCServer2.prototype.toJSONRPCMethod = function(method) {
|
|
2712
|
+
return function(request, serverParams) {
|
|
2713
|
+
var response = method(request.params, serverParams);
|
|
2714
|
+
return Promise.resolve(response).then(function(result) {
|
|
2715
|
+
return mapResultToJSONRPCResponse(request.id, result);
|
|
2716
|
+
});
|
|
2717
|
+
};
|
|
2718
|
+
};
|
|
2719
|
+
JSONRPCServer2.prototype.addMethodAdvanced = function(name, method) {
|
|
2720
|
+
var _a;
|
|
2721
|
+
this.nameToMethodDictionary = __assign(__assign({}, this.nameToMethodDictionary), (_a = {}, _a[name] = method, _a));
|
|
2722
|
+
};
|
|
2723
|
+
JSONRPCServer2.prototype.receiveJSON = function(json, serverParams) {
|
|
2724
|
+
var request = this.tryParseRequestJSON(json);
|
|
2725
|
+
if (request) {
|
|
2726
|
+
return this.receive(request, serverParams);
|
|
2727
|
+
} else {
|
|
2728
|
+
return Promise.resolve(createParseErrorResponse());
|
|
2729
|
+
}
|
|
2730
|
+
};
|
|
2731
|
+
JSONRPCServer2.prototype.tryParseRequestJSON = function(json) {
|
|
2732
|
+
try {
|
|
2733
|
+
return JSON.parse(json);
|
|
2734
|
+
} catch (_a) {
|
|
2735
|
+
return null;
|
|
2736
|
+
}
|
|
2737
|
+
};
|
|
2738
|
+
JSONRPCServer2.prototype.receive = function(request, serverParams) {
|
|
2739
|
+
if (Array.isArray(request)) {
|
|
2740
|
+
return this.receiveMultiple(request, serverParams);
|
|
2741
|
+
} else {
|
|
2742
|
+
return this.receiveSingle(request, serverParams);
|
|
2743
|
+
}
|
|
2744
|
+
};
|
|
2745
|
+
JSONRPCServer2.prototype.receiveMultiple = function(requests, serverParams) {
|
|
2746
|
+
return __awaiter(this, void 0, void 0, function() {
|
|
2747
|
+
var responses;
|
|
2748
|
+
var _this = this;
|
|
2749
|
+
return __generator(this, function(_a) {
|
|
2750
|
+
switch (_a.label) {
|
|
2751
|
+
case 0:
|
|
2752
|
+
return [4, Promise.all(requests.map(function(request) {
|
|
2753
|
+
return _this.receiveSingle(request, serverParams);
|
|
2754
|
+
}))];
|
|
2755
|
+
case 1:
|
|
2756
|
+
responses = _a.sent().filter(isNonNull);
|
|
2757
|
+
if (responses.length === 1) {
|
|
2758
|
+
return [2, responses[0]];
|
|
2759
|
+
} else if (responses.length) {
|
|
2760
|
+
return [2, responses];
|
|
2761
|
+
} else {
|
|
2762
|
+
return [2, null];
|
|
2763
|
+
}
|
|
2764
|
+
return [2];
|
|
2765
|
+
}
|
|
2766
|
+
});
|
|
2767
|
+
});
|
|
2768
|
+
};
|
|
2769
|
+
JSONRPCServer2.prototype.receiveSingle = function(request, serverParams) {
|
|
2770
|
+
return __awaiter(this, void 0, void 0, function() {
|
|
2771
|
+
var method, response;
|
|
2772
|
+
return __generator(this, function(_a) {
|
|
2773
|
+
switch (_a.label) {
|
|
2774
|
+
case 0:
|
|
2775
|
+
method = this.nameToMethodDictionary[request.method];
|
|
2776
|
+
if (!!(0, models_1.isJSONRPCRequest)(request))
|
|
2777
|
+
return [3, 1];
|
|
2778
|
+
return [2, createInvalidRequestResponse(request)];
|
|
2779
|
+
case 1:
|
|
2780
|
+
return [4, this.callMethod(method, request, serverParams)];
|
|
2781
|
+
case 2:
|
|
2782
|
+
response = _a.sent();
|
|
2783
|
+
return [2, mapResponse(request, response)];
|
|
2784
|
+
}
|
|
2785
|
+
});
|
|
2786
|
+
});
|
|
2787
|
+
};
|
|
2788
|
+
JSONRPCServer2.prototype.applyMiddleware = function() {
|
|
2789
|
+
var middlewares = [];
|
|
2790
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
2791
|
+
middlewares[_i] = arguments[_i];
|
|
2792
|
+
}
|
|
2793
|
+
if (this.middleware) {
|
|
2794
|
+
this.middleware = this.combineMiddlewares(__spreadArray([
|
|
2795
|
+
this.middleware
|
|
2796
|
+
], middlewares, true));
|
|
2797
|
+
} else {
|
|
2798
|
+
this.middleware = this.combineMiddlewares(middlewares);
|
|
2799
|
+
}
|
|
2800
|
+
};
|
|
2801
|
+
JSONRPCServer2.prototype.combineMiddlewares = function(middlewares) {
|
|
2802
|
+
if (!middlewares.length) {
|
|
2803
|
+
return null;
|
|
2804
|
+
} else {
|
|
2805
|
+
return middlewares.reduce(this.middlewareReducer);
|
|
2806
|
+
}
|
|
2807
|
+
};
|
|
2808
|
+
JSONRPCServer2.prototype.middlewareReducer = function(prevMiddleware, nextMiddleware) {
|
|
2809
|
+
return function(next, request, serverParams) {
|
|
2810
|
+
return prevMiddleware(function(request2, serverParams2) {
|
|
2811
|
+
return nextMiddleware(next, request2, serverParams2);
|
|
2812
|
+
}, request, serverParams);
|
|
2813
|
+
};
|
|
2814
|
+
};
|
|
2815
|
+
JSONRPCServer2.prototype.callMethod = function(method, request, serverParams) {
|
|
2816
|
+
var _this = this;
|
|
2817
|
+
var callMethod = function(request2, serverParams2) {
|
|
2818
|
+
if (method) {
|
|
2819
|
+
return method(request2, serverParams2);
|
|
2820
|
+
} else if (request2.id !== void 0) {
|
|
2821
|
+
return Promise.resolve(createMethodNotFoundResponse(request2.id));
|
|
2822
|
+
} else {
|
|
2823
|
+
return Promise.resolve(null);
|
|
2824
|
+
}
|
|
2825
|
+
};
|
|
2826
|
+
var onError = function(error) {
|
|
2827
|
+
_this.errorListener('An unexpected error occurred while executing "'.concat(request.method, '" JSON-RPC method:'), error);
|
|
2828
|
+
return Promise.resolve(_this.mapErrorToJSONRPCErrorResponseIfNecessary(request.id, error));
|
|
2829
|
+
};
|
|
2830
|
+
try {
|
|
2831
|
+
return (this.middleware || noopMiddleware)(callMethod, request, serverParams).then(void 0, onError);
|
|
2832
|
+
} catch (error) {
|
|
2833
|
+
return onError(error);
|
|
2834
|
+
}
|
|
2835
|
+
};
|
|
2836
|
+
JSONRPCServer2.prototype.mapErrorToJSONRPCErrorResponseIfNecessary = function(id, error) {
|
|
2837
|
+
if (id !== void 0) {
|
|
2838
|
+
return this.mapErrorToJSONRPCErrorResponse(id, error);
|
|
2839
|
+
} else {
|
|
2840
|
+
return null;
|
|
2841
|
+
}
|
|
2842
|
+
};
|
|
2843
|
+
return JSONRPCServer2;
|
|
2844
|
+
}();
|
|
2845
|
+
exports.JSONRPCServer = JSONRPCServer;
|
|
2846
|
+
var isNonNull = function(value) {
|
|
2847
|
+
return value !== null;
|
|
2848
|
+
};
|
|
2849
|
+
var noopMiddleware = function(next, request, serverParams) {
|
|
2850
|
+
return next(request, serverParams);
|
|
2851
|
+
};
|
|
2852
|
+
var mapResultToJSONRPCResponse = function(id, result) {
|
|
2853
|
+
if (id !== void 0) {
|
|
2854
|
+
return (0, models_1.createJSONRPCSuccessResponse)(id, result);
|
|
2855
|
+
} else {
|
|
2856
|
+
return null;
|
|
2857
|
+
}
|
|
2858
|
+
};
|
|
2859
|
+
var defaultMapErrorToJSONRPCErrorResponse = function(id, error) {
|
|
2860
|
+
var _a;
|
|
2861
|
+
var message = (_a = error === null || error === void 0 ? void 0 : error.message) !== null && _a !== void 0 ? _a : "An unexpected error occurred";
|
|
2862
|
+
var code = internal_1.DefaultErrorCode;
|
|
2863
|
+
var data;
|
|
2864
|
+
if (error instanceof models_1.JSONRPCErrorException) {
|
|
2865
|
+
code = error.code;
|
|
2866
|
+
data = error.data;
|
|
2867
|
+
}
|
|
2868
|
+
return (0, models_1.createJSONRPCErrorResponse)(id, code, message, data);
|
|
2869
|
+
};
|
|
2870
|
+
var mapResponse = function(request, response) {
|
|
2871
|
+
if (response) {
|
|
2872
|
+
return response;
|
|
2873
|
+
} else if (request.id !== void 0) {
|
|
2874
|
+
return (0, models_1.createJSONRPCErrorResponse)(request.id, models_1.JSONRPCErrorCode.InternalError, "Internal error");
|
|
2875
|
+
} else {
|
|
2876
|
+
return null;
|
|
2877
|
+
}
|
|
2878
|
+
};
|
|
2879
|
+
}
|
|
2880
|
+
});
|
|
2881
|
+
|
|
2882
|
+
// ../../node_modules/.pnpm/json-rpc-2.0@1.4.1/node_modules/json-rpc-2.0/dist/server-and-client.js
|
|
2883
|
+
var require_server_and_client = __commonJS({
|
|
2884
|
+
"../../node_modules/.pnpm/json-rpc-2.0@1.4.1/node_modules/json-rpc-2.0/dist/server-and-client.js"(exports) {
|
|
2885
|
+
"use strict";
|
|
2886
|
+
var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
|
|
2887
|
+
function adopt(value) {
|
|
2888
|
+
return value instanceof P ? value : new P(function(resolve) {
|
|
2889
|
+
resolve(value);
|
|
2890
|
+
});
|
|
2891
|
+
}
|
|
2892
|
+
return new (P || (P = Promise))(function(resolve, reject) {
|
|
2893
|
+
function fulfilled(value) {
|
|
2894
|
+
try {
|
|
2895
|
+
step(generator.next(value));
|
|
2896
|
+
} catch (e) {
|
|
2897
|
+
reject(e);
|
|
2898
|
+
}
|
|
2899
|
+
}
|
|
2900
|
+
function rejected(value) {
|
|
2901
|
+
try {
|
|
2902
|
+
step(generator["throw"](value));
|
|
2903
|
+
} catch (e) {
|
|
2904
|
+
reject(e);
|
|
2905
|
+
}
|
|
2906
|
+
}
|
|
2907
|
+
function step(result) {
|
|
2908
|
+
result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
|
|
2909
|
+
}
|
|
2910
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
2911
|
+
});
|
|
2912
|
+
};
|
|
2913
|
+
var __generator = exports && exports.__generator || function(thisArg, body) {
|
|
2914
|
+
var _ = { label: 0, sent: function() {
|
|
2915
|
+
if (t[0] & 1)
|
|
2916
|
+
throw t[1];
|
|
2917
|
+
return t[1];
|
|
2918
|
+
}, trys: [], ops: [] }, f, y, t, g;
|
|
2919
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
|
|
2920
|
+
return this;
|
|
2921
|
+
}), g;
|
|
2922
|
+
function verb(n) {
|
|
2923
|
+
return function(v) {
|
|
2924
|
+
return step([n, v]);
|
|
2925
|
+
};
|
|
2926
|
+
}
|
|
2927
|
+
function step(op) {
|
|
2928
|
+
if (f)
|
|
2929
|
+
throw new TypeError("Generator is already executing.");
|
|
2930
|
+
while (_)
|
|
2931
|
+
try {
|
|
2932
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
|
|
2933
|
+
return t;
|
|
2934
|
+
if (y = 0, t)
|
|
2935
|
+
op = [op[0] & 2, t.value];
|
|
2936
|
+
switch (op[0]) {
|
|
2937
|
+
case 0:
|
|
2938
|
+
case 1:
|
|
2939
|
+
t = op;
|
|
2940
|
+
break;
|
|
2941
|
+
case 4:
|
|
2942
|
+
_.label++;
|
|
2943
|
+
return { value: op[1], done: false };
|
|
2944
|
+
case 5:
|
|
2945
|
+
_.label++;
|
|
2946
|
+
y = op[1];
|
|
2947
|
+
op = [0];
|
|
2948
|
+
continue;
|
|
2949
|
+
case 7:
|
|
2950
|
+
op = _.ops.pop();
|
|
2951
|
+
_.trys.pop();
|
|
2952
|
+
continue;
|
|
2953
|
+
default:
|
|
2954
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
2955
|
+
_ = 0;
|
|
2956
|
+
continue;
|
|
2957
|
+
}
|
|
2958
|
+
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
2959
|
+
_.label = op[1];
|
|
2960
|
+
break;
|
|
2961
|
+
}
|
|
2962
|
+
if (op[0] === 6 && _.label < t[1]) {
|
|
2963
|
+
_.label = t[1];
|
|
2964
|
+
t = op;
|
|
2965
|
+
break;
|
|
2966
|
+
}
|
|
2967
|
+
if (t && _.label < t[2]) {
|
|
2968
|
+
_.label = t[2];
|
|
2969
|
+
_.ops.push(op);
|
|
2970
|
+
break;
|
|
2971
|
+
}
|
|
2972
|
+
if (t[2])
|
|
2973
|
+
_.ops.pop();
|
|
2974
|
+
_.trys.pop();
|
|
2975
|
+
continue;
|
|
2976
|
+
}
|
|
2977
|
+
op = body.call(thisArg, _);
|
|
2978
|
+
} catch (e) {
|
|
2979
|
+
op = [6, e];
|
|
2980
|
+
y = 0;
|
|
2981
|
+
} finally {
|
|
2982
|
+
f = t = 0;
|
|
2983
|
+
}
|
|
2984
|
+
if (op[0] & 5)
|
|
2985
|
+
throw op[1];
|
|
2986
|
+
return { value: op[0] ? op[1] : void 0, done: true };
|
|
2987
|
+
}
|
|
2988
|
+
};
|
|
2989
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2990
|
+
exports.JSONRPCServerAndClient = void 0;
|
|
2991
|
+
var models_1 = require_models();
|
|
2992
|
+
var JSONRPCServerAndClient = function() {
|
|
2993
|
+
function JSONRPCServerAndClient2(server2, client, options) {
|
|
2994
|
+
if (options === void 0) {
|
|
2995
|
+
options = {};
|
|
2996
|
+
}
|
|
2997
|
+
var _a;
|
|
2998
|
+
this.server = server2;
|
|
2999
|
+
this.client = client;
|
|
3000
|
+
this.errorListener = (_a = options.errorListener) !== null && _a !== void 0 ? _a : console.warn;
|
|
3001
|
+
}
|
|
3002
|
+
JSONRPCServerAndClient2.prototype.applyServerMiddleware = function() {
|
|
3003
|
+
var _a;
|
|
3004
|
+
var middlewares = [];
|
|
3005
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
3006
|
+
middlewares[_i] = arguments[_i];
|
|
3007
|
+
}
|
|
3008
|
+
(_a = this.server).applyMiddleware.apply(_a, middlewares);
|
|
3009
|
+
};
|
|
3010
|
+
JSONRPCServerAndClient2.prototype.hasMethod = function(name) {
|
|
3011
|
+
return this.server.hasMethod(name);
|
|
3012
|
+
};
|
|
3013
|
+
JSONRPCServerAndClient2.prototype.addMethod = function(name, method) {
|
|
3014
|
+
this.server.addMethod(name, method);
|
|
3015
|
+
};
|
|
3016
|
+
JSONRPCServerAndClient2.prototype.addMethodAdvanced = function(name, method) {
|
|
3017
|
+
this.server.addMethodAdvanced(name, method);
|
|
3018
|
+
};
|
|
3019
|
+
JSONRPCServerAndClient2.prototype.timeout = function(delay) {
|
|
3020
|
+
return this.client.timeout(delay);
|
|
3021
|
+
};
|
|
3022
|
+
JSONRPCServerAndClient2.prototype.request = function(method, params, clientParams) {
|
|
3023
|
+
return this.client.request(method, params, clientParams);
|
|
3024
|
+
};
|
|
3025
|
+
JSONRPCServerAndClient2.prototype.requestAdvanced = function(jsonRPCRequest, clientParams) {
|
|
3026
|
+
return this.client.requestAdvanced(jsonRPCRequest, clientParams);
|
|
3027
|
+
};
|
|
3028
|
+
JSONRPCServerAndClient2.prototype.notify = function(method, params, clientParams) {
|
|
3029
|
+
this.client.notify(method, params, clientParams);
|
|
3030
|
+
};
|
|
3031
|
+
JSONRPCServerAndClient2.prototype.rejectAllPendingRequests = function(message) {
|
|
3032
|
+
this.client.rejectAllPendingRequests(message);
|
|
3033
|
+
};
|
|
3034
|
+
JSONRPCServerAndClient2.prototype.receiveAndSend = function(payload, serverParams, clientParams) {
|
|
3035
|
+
return __awaiter(this, void 0, void 0, function() {
|
|
3036
|
+
var response, message;
|
|
3037
|
+
return __generator(this, function(_a) {
|
|
3038
|
+
switch (_a.label) {
|
|
3039
|
+
case 0:
|
|
3040
|
+
if (!((0, models_1.isJSONRPCResponse)(payload) || (0, models_1.isJSONRPCResponses)(payload)))
|
|
3041
|
+
return [3, 1];
|
|
3042
|
+
this.client.receive(payload);
|
|
3043
|
+
return [3, 4];
|
|
3044
|
+
case 1:
|
|
3045
|
+
if (!((0, models_1.isJSONRPCRequest)(payload) || (0, models_1.isJSONRPCRequests)(payload)))
|
|
3046
|
+
return [3, 3];
|
|
3047
|
+
return [4, this.server.receive(payload, serverParams)];
|
|
3048
|
+
case 2:
|
|
3049
|
+
response = _a.sent();
|
|
3050
|
+
if (response) {
|
|
3051
|
+
return [2, this.client.send(response, clientParams)];
|
|
3052
|
+
}
|
|
3053
|
+
return [3, 4];
|
|
3054
|
+
case 3:
|
|
3055
|
+
message = "Received an invalid JSON-RPC message";
|
|
3056
|
+
this.errorListener(message, payload);
|
|
3057
|
+
return [2, Promise.reject(new Error(message))];
|
|
3058
|
+
case 4:
|
|
3059
|
+
return [2];
|
|
3060
|
+
}
|
|
3061
|
+
});
|
|
3062
|
+
});
|
|
3063
|
+
};
|
|
3064
|
+
return JSONRPCServerAndClient2;
|
|
3065
|
+
}();
|
|
3066
|
+
exports.JSONRPCServerAndClient = JSONRPCServerAndClient;
|
|
3067
|
+
}
|
|
3068
|
+
});
|
|
3069
|
+
|
|
3070
|
+
// ../../node_modules/.pnpm/json-rpc-2.0@1.4.1/node_modules/json-rpc-2.0/dist/index.js
|
|
3071
|
+
var require_dist2 = __commonJS({
|
|
3072
|
+
"../../node_modules/.pnpm/json-rpc-2.0@1.4.1/node_modules/json-rpc-2.0/dist/index.js"(exports) {
|
|
3073
|
+
"use strict";
|
|
3074
|
+
var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
|
|
3075
|
+
if (k2 === void 0)
|
|
3076
|
+
k2 = k;
|
|
3077
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
3078
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
3079
|
+
desc = { enumerable: true, get: function() {
|
|
3080
|
+
return m[k];
|
|
3081
|
+
} };
|
|
3082
|
+
}
|
|
3083
|
+
Object.defineProperty(o, k2, desc);
|
|
3084
|
+
} : function(o, m, k, k2) {
|
|
3085
|
+
if (k2 === void 0)
|
|
3086
|
+
k2 = k;
|
|
3087
|
+
o[k2] = m[k];
|
|
3088
|
+
});
|
|
3089
|
+
var __exportStar = exports && exports.__exportStar || function(m, exports2) {
|
|
3090
|
+
for (var p in m)
|
|
3091
|
+
if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports2, p))
|
|
3092
|
+
__createBinding(exports2, m, p);
|
|
3093
|
+
};
|
|
3094
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3095
|
+
__exportStar(require_client(), exports);
|
|
3096
|
+
__exportStar(require_models(), exports);
|
|
3097
|
+
__exportStar(require_server(), exports);
|
|
3098
|
+
__exportStar(require_server_and_client(), exports);
|
|
3099
|
+
}
|
|
3100
|
+
});
|
|
3101
|
+
|
|
3102
|
+
// ../server/dist/index.js
|
|
3103
|
+
var require_dist3 = __commonJS({
|
|
3104
|
+
"../server/dist/index.js"(exports, module) {
|
|
3105
|
+
"use strict";
|
|
3106
|
+
var __defProp2 = Object.defineProperty;
|
|
3107
|
+
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
3108
|
+
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
3109
|
+
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
3110
|
+
var __export = (target, all) => {
|
|
3111
|
+
for (var name in all)
|
|
3112
|
+
__defProp2(target, name, { get: all[name], enumerable: true });
|
|
3113
|
+
};
|
|
3114
|
+
var __copyProps2 = (to, from, except, desc) => {
|
|
3115
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
3116
|
+
for (let key of __getOwnPropNames2(from))
|
|
3117
|
+
if (!__hasOwnProp2.call(to, key) && key !== except)
|
|
3118
|
+
__defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
3119
|
+
}
|
|
3120
|
+
return to;
|
|
3121
|
+
};
|
|
3122
|
+
var __toCommonJS = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod);
|
|
3123
|
+
var src_exports = {};
|
|
3124
|
+
__export(src_exports, {
|
|
3125
|
+
default: () => Server2,
|
|
3126
|
+
logMiddleware: () => logMiddleware,
|
|
3127
|
+
permissionMiddleware: () => permissionMiddleware
|
|
3128
|
+
});
|
|
3129
|
+
module.exports = __toCommonJS(src_exports);
|
|
3130
|
+
var import_wallet_api_core2 = require_dist();
|
|
3131
|
+
var import_json_rpc_2 = require_dist2();
|
|
3132
|
+
var logMiddleware = (next, request, serverParams) => {
|
|
3133
|
+
serverParams == null ? void 0 : serverParams.logger.log(`Received ${JSON.stringify(request)}`);
|
|
3134
|
+
return next(request, serverParams).then((response) => {
|
|
3135
|
+
serverParams == null ? void 0 : serverParams.logger.log(`Responding ${JSON.stringify(response)}`);
|
|
3136
|
+
return response;
|
|
3137
|
+
});
|
|
3138
|
+
};
|
|
3139
|
+
var permissionMiddleware = async (next, request, serverParams) => {
|
|
3140
|
+
serverParams == null ? void 0 : serverParams.logger.error("To be implemented");
|
|
3141
|
+
return next(request, serverParams);
|
|
3142
|
+
};
|
|
3143
|
+
var defaultLogger = new import_wallet_api_core2.Logger("Wallet-API-Server");
|
|
3144
|
+
var Server2 = class {
|
|
3145
|
+
constructor(transport2, logger = defaultLogger) {
|
|
3146
|
+
this.transport = transport2;
|
|
3147
|
+
this.logger = logger;
|
|
3148
|
+
}
|
|
3149
|
+
connect({
|
|
3150
|
+
middlewares
|
|
3151
|
+
} = {}) {
|
|
3152
|
+
const serverAndClient = new import_json_rpc_2.JSONRPCServerAndClient(
|
|
3153
|
+
new import_json_rpc_2.JSONRPCServer(),
|
|
3154
|
+
new import_json_rpc_2.JSONRPCClient((payload) => this.transport.send(payload))
|
|
3155
|
+
);
|
|
3156
|
+
if (middlewares) {
|
|
3157
|
+
serverAndClient.applyServerMiddleware(...middlewares);
|
|
3158
|
+
}
|
|
3159
|
+
this.transport.onMessage = (payload) => serverAndClient.receiveAndSend(payload, { logger: this.logger });
|
|
3160
|
+
this.transport.connect();
|
|
3161
|
+
this.serverAndClient = serverAndClient;
|
|
3162
|
+
this.logger.log("connected", this.transport);
|
|
3163
|
+
}
|
|
3164
|
+
disconnect() {
|
|
3165
|
+
delete this.serverAndClient;
|
|
3166
|
+
this.transport.disconnect();
|
|
3167
|
+
this.logger.log("disconnected", this.transport);
|
|
3168
|
+
}
|
|
3169
|
+
addMethod(method, handler) {
|
|
3170
|
+
if (!this.serverAndClient) {
|
|
3171
|
+
this.logger.error(`not connected - addMethod(${method})`);
|
|
3172
|
+
throw new Error("Client not connected");
|
|
3173
|
+
}
|
|
3174
|
+
this.serverAndClient.addMethod(method, handler);
|
|
3175
|
+
}
|
|
3176
|
+
};
|
|
3177
|
+
}
|
|
3178
|
+
});
|
|
3179
|
+
|
|
3180
|
+
// src/index.ts
|
|
3181
|
+
var import_wallet_api_core = __toESM(require_dist());
|
|
3182
|
+
var import_wallet_api_server = __toESM(require_dist3());
|
|
3183
|
+
var transport = new import_wallet_api_core.WindowMessageTransport(window);
|
|
3184
|
+
var server = new import_wallet_api_server.default(transport);
|
|
3185
|
+
server.connect();
|
|
3186
|
+
server.addMethod("account.list", () => {
|
|
3187
|
+
});
|
|
3188
|
+
})();
|