ripple-binary-codec 2.0.0 → 2.2.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/dist/enums/definitions.json +1248 -973
- package/dist/enums/src/enums/definitions.json +1248 -978
- package/dist/serdes/binary-parser.js +2 -2
- package/dist/serdes/binary-parser.js.map +1 -1
- package/dist/src/enums/definitions.json +1248 -973
- package/dist/src/serdes/binary-parser.js +2 -2
- package/dist/src/serdes/binary-parser.js.map +1 -1
- package/dist/src/types/amount.d.ts +29 -5
- package/dist/src/types/amount.js +85 -8
- package/dist/src/types/amount.js.map +1 -1
- package/dist/src/types/blob.js +3 -0
- package/dist/src/types/blob.js.map +1 -1
- package/dist/src/types/hash-192.d.ts +10 -0
- package/dist/src/types/hash-192.js +19 -0
- package/dist/src/types/hash-192.js.map +1 -0
- package/dist/src/types/index.d.ts +2 -1
- package/dist/src/types/index.js +4 -1
- package/dist/src/types/index.js.map +1 -1
- package/dist/src/types/serialized-type.d.ts +1 -1
- package/dist/src/types/serialized-type.js +1 -1
- package/dist/src/types/serialized-type.js.map +1 -1
- package/dist/src/types/st-array.js +4 -1
- package/dist/src/types/st-array.js.map +1 -1
- package/dist/src/types/st-object.js +5 -2
- package/dist/src/types/st-object.js.map +1 -1
- package/dist/src/types/uint-64.d.ts +3 -2
- package/dist/src/types/uint-64.js +21 -4
- package/dist/src/types/uint-64.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/amount.d.ts +29 -5
- package/dist/types/amount.js +85 -8
- package/dist/types/amount.js.map +1 -1
- package/dist/types/blob.js +3 -0
- package/dist/types/blob.js.map +1 -1
- package/dist/types/hash-192.d.ts +10 -0
- package/dist/types/hash-192.js +19 -0
- package/dist/types/hash-192.js.map +1 -0
- package/dist/types/index.d.ts +2 -1
- package/dist/types/index.js +4 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/serialized-type.d.ts +1 -1
- package/dist/types/serialized-type.js +1 -1
- package/dist/types/serialized-type.js.map +1 -1
- package/dist/types/st-array.js +4 -1
- package/dist/types/st-array.js.map +1 -1
- package/dist/types/st-object.js +5 -2
- package/dist/types/st-object.js.map +1 -1
- package/dist/types/uint-64.d.ts +3 -2
- package/dist/types/uint-64.js +21 -4
- package/dist/types/uint-64.js.map +1 -1
- package/package.json +4 -4
- package/src/enums/definitions.json +1248 -978
- package/src/serdes/binary-parser.ts +6 -2
- package/src/types/amount.ts +119 -12
- package/src/types/blob.ts +3 -0
- package/src/types/hash-192.ts +19 -0
- package/src/types/index.ts +3 -0
- package/src/types/serialized-type.ts +1 -1
- package/src/types/st-array.ts +7 -1
- package/src/types/st-object.ts +4 -1
- package/src/types/uint-64.ts +33 -5
|
@@ -123,13 +123,13 @@ class BinaryParser {
|
|
|
123
123
|
if (type === 0) {
|
|
124
124
|
type = this.readUInt8();
|
|
125
125
|
if (type === 0 || type < 16) {
|
|
126
|
-
throw new Error(
|
|
126
|
+
throw new Error(`Cannot read FieldOrdinal, type_code ${type} out of range`);
|
|
127
127
|
}
|
|
128
128
|
}
|
|
129
129
|
if (nth === 0) {
|
|
130
130
|
nth = this.readUInt8();
|
|
131
131
|
if (nth === 0 || nth < 16) {
|
|
132
|
-
throw new Error(
|
|
132
|
+
throw new Error(`Cannot read FieldOrdinal, field_code ${nth} out of range`);
|
|
133
133
|
}
|
|
134
134
|
}
|
|
135
135
|
return (type << 16) | nth;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binary-parser.js","sourceRoot":"","sources":["../../../src/serdes/binary-parser.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"binary-parser.js","sourceRoot":"","sources":["../../../src/serdes/binary-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
import { BinaryParser } from '../serdes/binary-parser';
|
|
2
2
|
import { JsonObject, SerializedType } from './serialized-type';
|
|
3
|
-
|
|
4
|
-
* Interface for JSON objects that represent amounts
|
|
5
|
-
*/
|
|
6
|
-
interface AmountObject extends JsonObject {
|
|
3
|
+
interface AmountObjectIOU extends JsonObject {
|
|
7
4
|
value: string;
|
|
8
5
|
currency: string;
|
|
9
6
|
issuer: string;
|
|
10
7
|
}
|
|
8
|
+
interface AmountObjectMPT extends JsonObject {
|
|
9
|
+
value: string;
|
|
10
|
+
mpt_issuance_id: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Interface for JSON objects that represent amounts
|
|
14
|
+
*/
|
|
15
|
+
type AmountObject = AmountObjectIOU | AmountObjectMPT;
|
|
11
16
|
/**
|
|
12
17
|
* Class for serializing/Deserializing Amounts
|
|
13
18
|
*/
|
|
@@ -15,7 +20,7 @@ declare class Amount extends SerializedType {
|
|
|
15
20
|
static defaultAmount: Amount;
|
|
16
21
|
constructor(bytes: Uint8Array);
|
|
17
22
|
/**
|
|
18
|
-
* Construct an amount from an IOU or string amount
|
|
23
|
+
* Construct an amount from an IOU, MPT or string amount
|
|
19
24
|
*
|
|
20
25
|
* @param value An Amount, object representing an IOU, or a string
|
|
21
26
|
* representing an integer amount
|
|
@@ -49,6 +54,13 @@ declare class Amount extends SerializedType {
|
|
|
49
54
|
* @returns void, but will throw if invalid amount
|
|
50
55
|
*/
|
|
51
56
|
private static assertIouIsValid;
|
|
57
|
+
/**
|
|
58
|
+
* Validate MPT.value amount
|
|
59
|
+
*
|
|
60
|
+
* @param decimal BigNumber object representing MPT.value
|
|
61
|
+
* @returns void, but will throw if invalid amount
|
|
62
|
+
*/
|
|
63
|
+
private static assertMptIsValid;
|
|
52
64
|
/**
|
|
53
65
|
* Ensure that the value after being multiplied by the exponent does not
|
|
54
66
|
* contain a decimal.
|
|
@@ -63,5 +75,17 @@ declare class Amount extends SerializedType {
|
|
|
63
75
|
* @returns true if Native (XRP)
|
|
64
76
|
*/
|
|
65
77
|
private isNative;
|
|
78
|
+
/**
|
|
79
|
+
* Test if this amount is in units of MPT
|
|
80
|
+
*
|
|
81
|
+
* @returns true if MPT
|
|
82
|
+
*/
|
|
83
|
+
private isMPT;
|
|
84
|
+
/**
|
|
85
|
+
* Test if this amount is in units of IOU
|
|
86
|
+
*
|
|
87
|
+
* @returns true if IOU
|
|
88
|
+
*/
|
|
89
|
+
private isIOU;
|
|
66
90
|
}
|
|
67
91
|
export { Amount, AmountObject };
|
package/dist/src/types/amount.js
CHANGED
|
@@ -11,6 +11,7 @@ const serialized_type_1 = require("./serialized-type");
|
|
|
11
11
|
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
12
12
|
const utils_1 = require("@xrplf/isomorphic/utils");
|
|
13
13
|
const utils_2 = require("../utils");
|
|
14
|
+
const hash_192_1 = require("./hash-192");
|
|
14
15
|
/**
|
|
15
16
|
* Constants for validating amounts
|
|
16
17
|
*/
|
|
@@ -20,6 +21,7 @@ const MAX_IOU_PRECISION = 16;
|
|
|
20
21
|
const MAX_DROPS = new bignumber_js_1.default('1e17');
|
|
21
22
|
const MIN_XRP = new bignumber_js_1.default('1e-6');
|
|
22
23
|
const mask = BigInt(0x00000000ffffffff);
|
|
24
|
+
const mptMask = BigInt(0x8000000000000000);
|
|
23
25
|
/**
|
|
24
26
|
* BigNumber configuration for Amount IOUs
|
|
25
27
|
*/
|
|
@@ -30,15 +32,22 @@ bignumber_js_1.default.config({
|
|
|
30
32
|
],
|
|
31
33
|
});
|
|
32
34
|
/**
|
|
33
|
-
* Type guard for
|
|
35
|
+
* Type guard for AmountObjectIOU
|
|
34
36
|
*/
|
|
35
|
-
function
|
|
37
|
+
function isAmountObjectIOU(arg) {
|
|
36
38
|
const keys = Object.keys(arg).sort();
|
|
37
39
|
return (keys.length === 3 &&
|
|
38
40
|
keys[0] === 'currency' &&
|
|
39
41
|
keys[1] === 'issuer' &&
|
|
40
42
|
keys[2] === 'value');
|
|
41
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* Type guard for AmountObjectMPT
|
|
46
|
+
*/
|
|
47
|
+
function isAmountObjectMPT(arg) {
|
|
48
|
+
const keys = Object.keys(arg).sort();
|
|
49
|
+
return (keys.length === 2 && keys[0] === 'mpt_issuance_id' && keys[1] === 'value');
|
|
50
|
+
}
|
|
42
51
|
/**
|
|
43
52
|
* Class for serializing/Deserializing Amounts
|
|
44
53
|
*/
|
|
@@ -47,7 +56,7 @@ class Amount extends serialized_type_1.SerializedType {
|
|
|
47
56
|
super(bytes !== null && bytes !== void 0 ? bytes : Amount.defaultAmount.bytes);
|
|
48
57
|
}
|
|
49
58
|
/**
|
|
50
|
-
* Construct an amount from an IOU or string amount
|
|
59
|
+
* Construct an amount from an IOU, MPT or string amount
|
|
51
60
|
*
|
|
52
61
|
* @param value An Amount, object representing an IOU, or a string
|
|
53
62
|
* representing an integer amount
|
|
@@ -68,7 +77,7 @@ class Amount extends serialized_type_1.SerializedType {
|
|
|
68
77
|
amount[0] |= 0x40;
|
|
69
78
|
return new Amount(amount);
|
|
70
79
|
}
|
|
71
|
-
if (
|
|
80
|
+
if (isAmountObjectIOU(value)) {
|
|
72
81
|
const number = new bignumber_js_1.default(value.value);
|
|
73
82
|
Amount.assertIouIsValid(number);
|
|
74
83
|
if (number.isZero()) {
|
|
@@ -97,6 +106,18 @@ class Amount extends serialized_type_1.SerializedType {
|
|
|
97
106
|
const issuer = account_id_1.AccountID.from(value.issuer).toBytes();
|
|
98
107
|
return new Amount((0, utils_1.concat)([amount, currency, issuer]));
|
|
99
108
|
}
|
|
109
|
+
if (isAmountObjectMPT(value)) {
|
|
110
|
+
Amount.assertMptIsValid(value.value);
|
|
111
|
+
let leadingByte = new Uint8Array(1);
|
|
112
|
+
leadingByte[0] |= 0x60;
|
|
113
|
+
const num = BigInt(value.value);
|
|
114
|
+
const intBuf = [new Uint8Array(4), new Uint8Array(4)];
|
|
115
|
+
(0, utils_2.writeUInt32BE)(intBuf[0], Number(num >> BigInt(32)), 0);
|
|
116
|
+
(0, utils_2.writeUInt32BE)(intBuf[1], Number(num & BigInt(mask)), 0);
|
|
117
|
+
amount = (0, utils_1.concat)(intBuf);
|
|
118
|
+
const mptIssuanceID = hash_192_1.Hash192.from(value.mpt_issuance_id).toBytes();
|
|
119
|
+
return new Amount((0, utils_1.concat)([leadingByte, amount, mptIssuanceID]));
|
|
120
|
+
}
|
|
100
121
|
throw new Error('Invalid type to construct an Amount');
|
|
101
122
|
}
|
|
102
123
|
/**
|
|
@@ -106,8 +127,12 @@ class Amount extends serialized_type_1.SerializedType {
|
|
|
106
127
|
* @returns An Amount object
|
|
107
128
|
*/
|
|
108
129
|
static fromParser(parser) {
|
|
109
|
-
const
|
|
110
|
-
|
|
130
|
+
const isIOU = parser.peek() & 0x80;
|
|
131
|
+
if (isIOU)
|
|
132
|
+
return new Amount(parser.read(48));
|
|
133
|
+
// the amount can be either MPT or XRP at this point
|
|
134
|
+
const isMPT = parser.peek() & 0x20;
|
|
135
|
+
const numBytes = isMPT ? 33 : 8;
|
|
111
136
|
return new Amount(parser.read(numBytes));
|
|
112
137
|
}
|
|
113
138
|
/**
|
|
@@ -126,7 +151,7 @@ class Amount extends serialized_type_1.SerializedType {
|
|
|
126
151
|
const num = (msb << BigInt(32)) | lsb;
|
|
127
152
|
return `${sign}${num.toString()}`;
|
|
128
153
|
}
|
|
129
|
-
|
|
154
|
+
if (this.isIOU()) {
|
|
130
155
|
const parser = new binary_parser_1.BinaryParser(this.toString());
|
|
131
156
|
const mantissa = parser.read(8);
|
|
132
157
|
const currency = currency_1.Currency.fromParser(parser);
|
|
@@ -146,6 +171,22 @@ class Amount extends serialized_type_1.SerializedType {
|
|
|
146
171
|
issuer: issuer.toJSON(),
|
|
147
172
|
};
|
|
148
173
|
}
|
|
174
|
+
if (this.isMPT()) {
|
|
175
|
+
const parser = new binary_parser_1.BinaryParser(this.toString());
|
|
176
|
+
const leadingByte = parser.read(1);
|
|
177
|
+
const amount = parser.read(8);
|
|
178
|
+
const mptID = hash_192_1.Hash192.fromParser(parser);
|
|
179
|
+
const isPositive = leadingByte[0] & 0x40;
|
|
180
|
+
const sign = isPositive ? '' : '-';
|
|
181
|
+
const msb = BigInt((0, utils_2.readUInt32BE)(amount.slice(0, 4), 0));
|
|
182
|
+
const lsb = BigInt((0, utils_2.readUInt32BE)(amount.slice(4), 0));
|
|
183
|
+
const num = (msb << BigInt(32)) | lsb;
|
|
184
|
+
return {
|
|
185
|
+
value: `${sign}${num.toString()}`,
|
|
186
|
+
mpt_issuance_id: mptID.toString(),
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
throw new Error('Invalid amount to construct JSON');
|
|
149
190
|
}
|
|
150
191
|
/**
|
|
151
192
|
* Validate XRP amount
|
|
@@ -182,6 +223,26 @@ class Amount extends serialized_type_1.SerializedType {
|
|
|
182
223
|
this.verifyNoDecimal(decimal);
|
|
183
224
|
}
|
|
184
225
|
}
|
|
226
|
+
/**
|
|
227
|
+
* Validate MPT.value amount
|
|
228
|
+
*
|
|
229
|
+
* @param decimal BigNumber object representing MPT.value
|
|
230
|
+
* @returns void, but will throw if invalid amount
|
|
231
|
+
*/
|
|
232
|
+
static assertMptIsValid(amount) {
|
|
233
|
+
if (amount.indexOf('.') !== -1) {
|
|
234
|
+
throw new Error(`${amount.toString()} is an illegal amount`);
|
|
235
|
+
}
|
|
236
|
+
const decimal = new bignumber_js_1.default(amount);
|
|
237
|
+
if (!decimal.isZero()) {
|
|
238
|
+
if (decimal < (0, bignumber_js_1.default)(0)) {
|
|
239
|
+
throw new Error(`${amount.toString()} is an illegal amount`);
|
|
240
|
+
}
|
|
241
|
+
if (Number(BigInt(amount) & BigInt(mptMask)) != 0) {
|
|
242
|
+
throw new Error(`${amount.toString()} is an illegal amount`);
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
}
|
|
185
246
|
/**
|
|
186
247
|
* Ensure that the value after being multiplied by the exponent does not
|
|
187
248
|
* contain a decimal.
|
|
@@ -204,7 +265,23 @@ class Amount extends serialized_type_1.SerializedType {
|
|
|
204
265
|
* @returns true if Native (XRP)
|
|
205
266
|
*/
|
|
206
267
|
isNative() {
|
|
207
|
-
return (this.bytes[0] & 0x80) === 0;
|
|
268
|
+
return (this.bytes[0] & 0x80) === 0 && (this.bytes[0] & 0x20) === 0;
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Test if this amount is in units of MPT
|
|
272
|
+
*
|
|
273
|
+
* @returns true if MPT
|
|
274
|
+
*/
|
|
275
|
+
isMPT() {
|
|
276
|
+
return (this.bytes[0] & 0x80) === 0 && (this.bytes[0] & 0x20) !== 0;
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Test if this amount is in units of IOU
|
|
280
|
+
*
|
|
281
|
+
* @returns true if IOU
|
|
282
|
+
*/
|
|
283
|
+
isIOU() {
|
|
284
|
+
return (this.bytes[0] & 0x80) !== 0;
|
|
208
285
|
}
|
|
209
286
|
}
|
|
210
287
|
exports.Amount = Amount;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"amount.js","sourceRoot":"","sources":["../../../src/types/amount.ts"],"names":[],"mappings":";;;;;;AAAA,2DAAsD;AAEtD,6CAAwC;AACxC,yCAAqC;AACrC,uDAA8D;AAC9D,gEAAoC;AACpC,mDAAwE;AACxE,oCAAsD;
|
|
1
|
+
{"version":3,"file":"amount.js","sourceRoot":"","sources":["../../../src/types/amount.ts"],"names":[],"mappings":"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"}
|
package/dist/src/types/blob.js
CHANGED
|
@@ -31,6 +31,9 @@ class Blob extends serialized_type_1.SerializedType {
|
|
|
31
31
|
return value;
|
|
32
32
|
}
|
|
33
33
|
if (typeof value === 'string') {
|
|
34
|
+
if (!/^[A-F0-9]*$/iu.test(value)) {
|
|
35
|
+
throw new Error('Cannot construct Blob from a non-hex string');
|
|
36
|
+
}
|
|
34
37
|
return new Blob((0, utils_1.hexToBytes)(value));
|
|
35
38
|
}
|
|
36
39
|
throw new Error('Cannot construct Blob from value given');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blob.js","sourceRoot":"","sources":["../../../src/types/blob.ts"],"names":[],"mappings":";;;AAAA,uDAAkD;AAElD,mDAAoD;AAEpD;;GAEG;AACH,MAAM,IAAK,SAAQ,gCAAc;IAC/B,YAAY,KAAiB;QAC3B,KAAK,CAAC,KAAK,CAAC,CAAA;IACd,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,UAAU,CAAC,MAAoB,EAAE,IAAY;QAClD,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IACpC,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,IAAI,CAA0B,KAAQ;QAC3C,IAAI,KAAK,YAAY,IAAI,EAAE;YACzB,OAAO,KAAK,CAAA;SACb;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,OAAO,IAAI,IAAI,CAAC,IAAA,kBAAU,EAAC,KAAK,CAAC,CAAC,CAAA;SACnC;QAED,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAA;IAC3D,CAAC;CACF;AAEQ,oBAAI"}
|
|
1
|
+
{"version":3,"file":"blob.js","sourceRoot":"","sources":["../../../src/types/blob.ts"],"names":[],"mappings":";;;AAAA,uDAAkD;AAElD,mDAAoD;AAEpD;;GAEG;AACH,MAAM,IAAK,SAAQ,gCAAc;IAC/B,YAAY,KAAiB;QAC3B,KAAK,CAAC,KAAK,CAAC,CAAA;IACd,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,UAAU,CAAC,MAAoB,EAAE,IAAY;QAClD,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IACpC,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,IAAI,CAA0B,KAAQ;QAC3C,IAAI,KAAK,YAAY,IAAI,EAAE;YACzB,OAAO,KAAK,CAAA;SACb;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBAChC,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;aAC/D;YACD,OAAO,IAAI,IAAI,CAAC,IAAA,kBAAU,EAAC,KAAK,CAAC,CAAC,CAAA;SACnC;QAED,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAA;IAC3D,CAAC;CACF;AAEQ,oBAAI"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Hash192 = void 0;
|
|
4
|
+
const hash_1 = require("./hash");
|
|
5
|
+
/**
|
|
6
|
+
* Hash with a width of 192 bits
|
|
7
|
+
*/
|
|
8
|
+
class Hash192 extends hash_1.Hash {
|
|
9
|
+
constructor(bytes) {
|
|
10
|
+
if (bytes && bytes.byteLength === 0) {
|
|
11
|
+
bytes = Hash192.ZERO_192.bytes;
|
|
12
|
+
}
|
|
13
|
+
super(bytes !== null && bytes !== void 0 ? bytes : Hash192.ZERO_192.bytes);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.Hash192 = Hash192;
|
|
17
|
+
Hash192.width = 24;
|
|
18
|
+
Hash192.ZERO_192 = new Hash192(new Uint8Array(Hash192.width));
|
|
19
|
+
//# sourceMappingURL=hash-192.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hash-192.js","sourceRoot":"","sources":["../../../src/types/hash-192.ts"],"names":[],"mappings":";;;AAAA,iCAA6B;AAE7B;;GAEG;AACH,MAAM,OAAQ,SAAQ,WAAI;IAIxB,YAAY,KAAkB;QAC5B,IAAI,KAAK,IAAI,KAAK,CAAC,UAAU,KAAK,CAAC,EAAE;YACnC,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAA;SAC/B;QAED,KAAK,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACxC,CAAC;;AAGM,0BAAO;AAZE,aAAK,GAAG,EAAE,CAAA;AACV,gBAAQ,GAAY,IAAI,OAAO,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA"}
|
|
@@ -4,6 +4,7 @@ import { Blob } from './blob';
|
|
|
4
4
|
import { Currency } from './currency';
|
|
5
5
|
import { Hash128 } from './hash-128';
|
|
6
6
|
import { Hash160 } from './hash-160';
|
|
7
|
+
import { Hash192 } from './hash-192';
|
|
7
8
|
import { Hash256 } from './hash-256';
|
|
8
9
|
import { PathSet } from './path-set';
|
|
9
10
|
import { STArray } from './st-array';
|
|
@@ -15,4 +16,4 @@ import { UInt8 } from './uint-8';
|
|
|
15
16
|
import { Vector256 } from './vector-256';
|
|
16
17
|
import { type SerializedType } from './serialized-type';
|
|
17
18
|
declare const coreTypes: Record<string, typeof SerializedType>;
|
|
18
|
-
export { coreTypes, AccountID, Amount, Blob, Currency, Hash128, Hash160, Hash256, PathSet, STArray, STObject, UInt8, UInt16, UInt32, UInt64, Vector256, };
|
|
19
|
+
export { coreTypes, AccountID, Amount, Blob, Currency, Hash128, Hash160, Hash192, Hash256, PathSet, STArray, STObject, UInt8, UInt16, UInt32, UInt64, Vector256, };
|
package/dist/src/types/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Vector256 = exports.UInt64 = exports.UInt32 = exports.UInt16 = exports.UInt8 = exports.STObject = exports.STArray = exports.PathSet = exports.Hash256 = exports.Hash160 = exports.Hash128 = exports.Currency = exports.Blob = exports.Amount = exports.AccountID = exports.coreTypes = void 0;
|
|
3
|
+
exports.Vector256 = exports.UInt64 = exports.UInt32 = exports.UInt16 = exports.UInt8 = exports.STObject = exports.STArray = exports.PathSet = exports.Hash256 = exports.Hash192 = exports.Hash160 = exports.Hash128 = exports.Currency = exports.Blob = exports.Amount = exports.AccountID = exports.coreTypes = void 0;
|
|
4
4
|
const account_id_1 = require("./account-id");
|
|
5
5
|
Object.defineProperty(exports, "AccountID", { enumerable: true, get: function () { return account_id_1.AccountID; } });
|
|
6
6
|
const amount_1 = require("./amount");
|
|
@@ -13,6 +13,8 @@ const hash_128_1 = require("./hash-128");
|
|
|
13
13
|
Object.defineProperty(exports, "Hash128", { enumerable: true, get: function () { return hash_128_1.Hash128; } });
|
|
14
14
|
const hash_160_1 = require("./hash-160");
|
|
15
15
|
Object.defineProperty(exports, "Hash160", { enumerable: true, get: function () { return hash_160_1.Hash160; } });
|
|
16
|
+
const hash_192_1 = require("./hash-192");
|
|
17
|
+
Object.defineProperty(exports, "Hash192", { enumerable: true, get: function () { return hash_192_1.Hash192; } });
|
|
16
18
|
const hash_256_1 = require("./hash-256");
|
|
17
19
|
Object.defineProperty(exports, "Hash256", { enumerable: true, get: function () { return hash_256_1.Hash256; } });
|
|
18
20
|
const issue_1 = require("./issue");
|
|
@@ -41,6 +43,7 @@ const coreTypes = {
|
|
|
41
43
|
Currency: currency_1.Currency,
|
|
42
44
|
Hash128: hash_128_1.Hash128,
|
|
43
45
|
Hash160: hash_160_1.Hash160,
|
|
46
|
+
Hash192: hash_192_1.Hash192,
|
|
44
47
|
Hash256: hash_256_1.Hash256,
|
|
45
48
|
Issue: issue_1.Issue,
|
|
46
49
|
PathSet: path_set_1.PathSet,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":";;;AAAA,6CAAwC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":";;;AAAA,6CAAwC;AAiDtC,0FAjDO,sBAAS,OAiDP;AAhDX,qCAAiC;AAiD/B,uFAjDO,eAAM,OAiDP;AAhDR,iCAA6B;AAiD3B,qFAjDO,WAAI,OAiDP;AAhDN,yCAAqC;AAiDnC,yFAjDO,mBAAQ,OAiDP;AAhDV,yCAAoC;AAiDlC,wFAjDO,kBAAO,OAiDP;AAhDT,yCAAoC;AAiDlC,wFAjDO,kBAAO,OAiDP;AAhDT,yCAAoC;AAiDlC,wFAjDO,kBAAO,OAiDP;AAhDT,yCAAoC;AAiDlC,wFAjDO,kBAAO,OAiDP;AAhDT,mCAA+B;AAC/B,yCAAoC;AAgDlC,wFAhDO,kBAAO,OAgDP;AA/CT,yCAAoC;AAgDlC,wFAhDO,kBAAO,OAgDP;AA/CT,2CAAsC;AAgDpC,yFAhDO,oBAAQ,OAgDP;AA/CV,uCAAkC;AAiDhC,uFAjDO,gBAAM,OAiDP;AAhDR,uCAAkC;AAiDhC,uFAjDO,gBAAM,OAiDP;AAhDR,uCAAkC;AAiDhC,uFAjDO,gBAAM,OAiDP;AAhDR,qCAAgC;AA6C9B,sFA7CO,cAAK,OA6CP;AA5CP,6CAAwC;AAgDtC,0FAhDO,sBAAS,OAgDP;AA/CX,mDAA8C;AAE9C,oCAA8C;AAE9C,MAAM,SAAS,GAA0C;IACvD,SAAS,EAAT,sBAAS;IACT,MAAM,EAAN,eAAM;IACN,IAAI,EAAJ,WAAI;IACJ,QAAQ,EAAR,mBAAQ;IACR,OAAO,EAAP,kBAAO;IACP,OAAO,EAAP,kBAAO;IACP,OAAO,EAAP,kBAAO;IACP,OAAO,EAAP,kBAAO;IACP,KAAK,EAAL,aAAK;IACL,OAAO,EAAP,kBAAO;IACP,OAAO,EAAP,kBAAO;IACP,QAAQ,EAAR,oBAAQ;IACR,KAAK,EAAL,cAAK;IACL,MAAM,EAAN,gBAAM;IACN,MAAM,EAAN,gBAAM;IACN,MAAM,EAAN,gBAAM;IACN,SAAS,EAAT,sBAAS;IACT,YAAY,EAAZ,4BAAY;CACb,CAAA;AAQC,8BAAS;AANX,2GAA2G;AAC3G,gFAAgF;AAChF,8FAA8F;AAC9F,2BAAmB,CAAC,cAAc,CAAC,SAAS,CAAC,CAAA"}
|
|
@@ -39,7 +39,7 @@ declare class SerializedType {
|
|
|
39
39
|
* Can be customized for sidechains and amendments.
|
|
40
40
|
* @returns any type, if not overloaded returns hexString representation of bytes
|
|
41
41
|
*/
|
|
42
|
-
toJSON(_definitions?: XrplDefinitionsBase): JSON;
|
|
42
|
+
toJSON(_definitions?: XrplDefinitionsBase, _fieldName?: string): JSON;
|
|
43
43
|
/**
|
|
44
44
|
* @returns hexString representation of this.bytes
|
|
45
45
|
*/
|
|
@@ -56,7 +56,7 @@ class SerializedType {
|
|
|
56
56
|
* Can be customized for sidechains and amendments.
|
|
57
57
|
* @returns any type, if not overloaded returns hexString representation of bytes
|
|
58
58
|
*/
|
|
59
|
-
toJSON(_definitions) {
|
|
59
|
+
toJSON(_definitions, _fieldName) {
|
|
60
60
|
return this.toHex();
|
|
61
61
|
}
|
|
62
62
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialized-type.js","sourceRoot":"","sources":["../../../src/types/serialized-type.ts"],"names":[],"mappings":";;;AAAA,mEAAuD;AAGvD,mDAAoD;AAMpD;;GAEG;AACH,MAAM,cAAc;IAGlB,YAAY,KAAkB;QAFX,UAAK,GAAe,IAAI,UAAU,CAAC,CAAC,CAAC,CAAA;QAGtD,IAAI,CAAC,KAAK,GAAG,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,IAAI,UAAU,CAAC,CAAC,CAAC,CAAA;IACzC,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,MAAoB,EAAE,IAAa;QACnD,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;QAC7C,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IACtC,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,KAAqC;QAC/C,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;QACvC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACzB,CAAC;IAED;;;;OAIG;IACH,WAAW,CAAC,IAAe;QACzB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACtB,CAAC;IAED;;;;OAIG;IACH,KAAK;QACH,OAAO,IAAA,kBAAU,EAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;IACnC,CAAC;IAED;;;;OAIG;IACH,OAAO;QACL,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,OAAO,IAAI,CAAC,KAAK,CAAA;SAClB;QACD,MAAM,KAAK,GAAG,IAAI,6BAAS,EAAE,CAAA;QAC7B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QACvB,OAAO,KAAK,CAAC,OAAO,EAAE,CAAA;IACxB,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,YAAkC;
|
|
1
|
+
{"version":3,"file":"serialized-type.js","sourceRoot":"","sources":["../../../src/types/serialized-type.ts"],"names":[],"mappings":";;;AAAA,mEAAuD;AAGvD,mDAAoD;AAMpD;;GAEG;AACH,MAAM,cAAc;IAGlB,YAAY,KAAkB;QAFX,UAAK,GAAe,IAAI,UAAU,CAAC,CAAC,CAAC,CAAA;QAGtD,IAAI,CAAC,KAAK,GAAG,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,IAAI,UAAU,CAAC,CAAC,CAAC,CAAA;IACzC,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,MAAoB,EAAE,IAAa;QACnD,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;QAC7C,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IACtC,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,KAAqC;QAC/C,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;QACvC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACzB,CAAC;IAED;;;;OAIG;IACH,WAAW,CAAC,IAAe;QACzB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACtB,CAAC;IAED;;;;OAIG;IACH,KAAK;QACH,OAAO,IAAA,kBAAU,EAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;IACnC,CAAC;IAED;;;;OAIG;IACH,OAAO;QACL,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,OAAO,IAAI,CAAC,KAAK,CAAA;SAClB;QACD,MAAM,KAAK,GAAG,IAAI,6BAAS,EAAE,CAAA;QAC7B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QACvB,OAAO,KAAK,CAAC,OAAO,EAAE,CAAA;IACxB,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,YAAkC,EAAE,UAAmB;QAC5D,OAAO,IAAI,CAAC,KAAK,EAAE,CAAA;IACrB,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,EAAE,CAAA;IACrB,CAAC;CACF;AA0CQ,wCAAc;AAxCvB;;;;;;;GAOG;AACH,MAAM,UAA6B,SAAQ,cAAc;IACvD,EAAE,CAAC,KAAQ;QACT,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAClC,CAAC;IAED,EAAE,CAAC,KAAQ;QACT,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACpC,CAAC;IAED,EAAE,CAAC,KAAQ;QACT,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAClC,CAAC;IAED,GAAG,CAAC,KAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;IACnC,CAAC;IAED,GAAG,CAAC,KAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAClC,CAAC;IAED;;;;;OAKG;IACH,SAAS,CAAC,KAAQ;QAChB,MAAM,IAAI,KAAK,CAAC,kBAAkB,IAAI,CAAC,QAAQ,EAAE,QAAQ,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;IAC9E,CAAC;CACF;AAEwB,gCAAU"}
|
|
@@ -13,7 +13,10 @@ const OBJECT_END_MARKER = Uint8Array.from([0xe1]);
|
|
|
13
13
|
* TypeGuard for Array<JsonObject>
|
|
14
14
|
*/
|
|
15
15
|
function isObjects(args) {
|
|
16
|
-
return (Array.isArray(args) &&
|
|
16
|
+
return (Array.isArray(args) &&
|
|
17
|
+
args.every((arg) => typeof arg === 'object' &&
|
|
18
|
+
Object.keys(arg).length === 1 &&
|
|
19
|
+
typeof Object.values(arg)[0] === 'object'));
|
|
17
20
|
}
|
|
18
21
|
/**
|
|
19
22
|
* Class for serializing and deserializing Arrays of Objects
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"st-array.js","sourceRoot":"","sources":["../../../src/types/st-array.ts"],"names":[],"mappings":";;;AAAA,oCAAmE;AACnE,uDAA8D;AAC9D,2CAAsC;AACtC,2DAAsD;AACtD,mDAAgD;AAEhD,MAAM,gBAAgB,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;AAChD,MAAM,qBAAqB,GAAG,gBAAgB,CAAA;AAE9C,MAAM,iBAAiB,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;AAEjD;;GAEG;AACH,SAAS,SAAS,CAAC,IAAI;IACrB,OAAO,CACL,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"st-array.js","sourceRoot":"","sources":["../../../src/types/st-array.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ const ripple_address_codec_1 = require("ripple-address-codec");
|
|
|
7
7
|
const binary_parser_1 = require("../serdes/binary-parser");
|
|
8
8
|
const binary_serializer_1 = require("../serdes/binary-serializer");
|
|
9
9
|
const st_array_1 = require("./st-array");
|
|
10
|
+
const uint_64_1 = require("./uint-64");
|
|
10
11
|
const OBJECT_END_MARKER_BYTE = Uint8Array.from([0xe1]);
|
|
11
12
|
const OBJECT_END_MARKER = 'ObjectEndMarker';
|
|
12
13
|
const ST_OBJECT = 'STObject';
|
|
@@ -111,7 +112,9 @@ class STObject extends serialized_type_1.SerializedType {
|
|
|
111
112
|
? this.from(xAddressDecoded[field.name], undefined, definitions)
|
|
112
113
|
: field.type.name === 'STArray'
|
|
113
114
|
? st_array_1.STArray.from(xAddressDecoded[field.name], definitions)
|
|
114
|
-
: field.
|
|
115
|
+
: field.type.name === 'UInt64'
|
|
116
|
+
? uint_64_1.UInt64.from(xAddressDecoded[field.name], field.name)
|
|
117
|
+
: field.associatedType.from(xAddressDecoded[field.name]);
|
|
115
118
|
if (associatedValue == undefined) {
|
|
116
119
|
throw new TypeError(`Unable to interpret "${field.name}: ${xAddressDecoded[field.name]}".`);
|
|
117
120
|
}
|
|
@@ -146,7 +149,7 @@ class STObject extends serialized_type_1.SerializedType {
|
|
|
146
149
|
}
|
|
147
150
|
accumulator[field.name] = objectParser
|
|
148
151
|
.readFieldValue(field)
|
|
149
|
-
.toJSON(definitions);
|
|
152
|
+
.toJSON(definitions, field.name);
|
|
150
153
|
}
|
|
151
154
|
return accumulator;
|
|
152
155
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"st-object.js","sourceRoot":"","sources":["../../../src/types/st-object.ts"],"names":[],"mappings":";;;AAAA,oCAKiB;AACjB,uDAA8D;AAC9D,+DAAgF;AAChF,2DAAsD;AACtD,mEAAyE;AAEzE,yCAAoC;
|
|
1
|
+
{"version":3,"file":"st-object.js","sourceRoot":"","sources":["../../../src/types/st-object.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { UInt } from './uint';
|
|
2
2
|
import { BinaryParser } from '../serdes/binary-parser';
|
|
3
|
+
import { XrplDefinitionsBase } from '../enums';
|
|
3
4
|
/**
|
|
4
5
|
* Derived UInt class for serializing/deserializing 64 bit UInt
|
|
5
6
|
*/
|
|
@@ -14,13 +15,13 @@ declare class UInt64 extends UInt {
|
|
|
14
15
|
* @param val A UInt64, hex-string, bigInt, or number
|
|
15
16
|
* @returns A UInt64 object
|
|
16
17
|
*/
|
|
17
|
-
static from<T extends UInt64 | string | bigint | number>(val: T): UInt64;
|
|
18
|
+
static from<T extends UInt64 | string | bigint | number>(val: T, fieldName?: string): UInt64;
|
|
18
19
|
/**
|
|
19
20
|
* The JSON representation of a UInt64 object
|
|
20
21
|
*
|
|
21
22
|
* @returns a hex-string
|
|
22
23
|
*/
|
|
23
|
-
toJSON(): string;
|
|
24
|
+
toJSON(_definitions?: XrplDefinitionsBase, fieldName?: string): string;
|
|
24
25
|
/**
|
|
25
26
|
* Get the value of the UInt64
|
|
26
27
|
*
|
|
@@ -4,8 +4,15 @@ exports.UInt64 = void 0;
|
|
|
4
4
|
const uint_1 = require("./uint");
|
|
5
5
|
const utils_1 = require("@xrplf/isomorphic/utils");
|
|
6
6
|
const utils_2 = require("../utils");
|
|
7
|
+
const enums_1 = require("../enums");
|
|
7
8
|
const HEX_REGEX = /^[a-fA-F0-9]{1,16}$/;
|
|
9
|
+
const BASE10_REGEX = /^[0-9]{1,20}$/;
|
|
8
10
|
const mask = BigInt(0x00000000ffffffff);
|
|
11
|
+
function useBase10(fieldName) {
|
|
12
|
+
return (fieldName === 'MaximumAmount' ||
|
|
13
|
+
fieldName === 'OutstandingAmount' ||
|
|
14
|
+
fieldName === 'MPTAmount');
|
|
15
|
+
}
|
|
9
16
|
/**
|
|
10
17
|
* Derived UInt class for serializing/deserializing 64 bit UInt
|
|
11
18
|
*/
|
|
@@ -22,7 +29,7 @@ class UInt64 extends uint_1.UInt {
|
|
|
22
29
|
* @param val A UInt64, hex-string, bigInt, or number
|
|
23
30
|
* @returns A UInt64 object
|
|
24
31
|
*/
|
|
25
|
-
static from(val) {
|
|
32
|
+
static from(val, fieldName = '') {
|
|
26
33
|
if (val instanceof UInt64) {
|
|
27
34
|
return val;
|
|
28
35
|
}
|
|
@@ -38,7 +45,13 @@ class UInt64 extends uint_1.UInt {
|
|
|
38
45
|
return new UInt64((0, utils_1.concat)(intBuf));
|
|
39
46
|
}
|
|
40
47
|
if (typeof val === 'string') {
|
|
41
|
-
if (
|
|
48
|
+
if (useBase10(fieldName)) {
|
|
49
|
+
if (!BASE10_REGEX.test(val)) {
|
|
50
|
+
throw new Error(`${fieldName} ${val} is not a valid base 10 string`);
|
|
51
|
+
}
|
|
52
|
+
val = BigInt(val).toString(16);
|
|
53
|
+
}
|
|
54
|
+
if (typeof val === 'string' && !HEX_REGEX.test(val)) {
|
|
42
55
|
throw new Error(`${val} is not a valid hex-string`);
|
|
43
56
|
}
|
|
44
57
|
const strBuf = val.padStart(16, '0');
|
|
@@ -58,8 +71,12 @@ class UInt64 extends uint_1.UInt {
|
|
|
58
71
|
*
|
|
59
72
|
* @returns a hex-string
|
|
60
73
|
*/
|
|
61
|
-
toJSON() {
|
|
62
|
-
|
|
74
|
+
toJSON(_definitions = enums_1.DEFAULT_DEFINITIONS, fieldName = '') {
|
|
75
|
+
const hexString = (0, utils_1.bytesToHex)(this.bytes);
|
|
76
|
+
if (useBase10(fieldName)) {
|
|
77
|
+
return BigInt('0x' + hexString).toString(10);
|
|
78
|
+
}
|
|
79
|
+
return hexString;
|
|
63
80
|
}
|
|
64
81
|
/**
|
|
65
82
|
* Get the value of the UInt64
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uint-64.js","sourceRoot":"","sources":["../../../src/types/uint-64.ts"],"names":[],"mappings":";;;AAAA,iCAA6B;AAE7B,mDAAwE;AACxE,oCAAsD;
|
|
1
|
+
{"version":3,"file":"uint-64.js","sourceRoot":"","sources":["../../../src/types/uint-64.ts"],"names":[],"mappings":"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"}
|