@transia/ripple-binary-codec 2.5.4-alpha.0 → 2.5.5-alpha.2
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 +1308 -974
- package/dist/enums/src/enums/definitions.json +1313 -974
- package/dist/index.js +0 -3
- package/dist/index.js.map +1 -1
- package/dist/src/enums/definitions.json +1308 -974
- package/dist/src/index.js +0 -3
- package/dist/src/index.js.map +1 -1
- package/dist/src/types/hash-128.js +1 -1
- package/dist/src/types/hash-128.js.map +1 -1
- package/dist/src/types/hash-160.js +1 -1
- package/dist/src/types/hash-160.js.map +1 -1
- package/dist/src/types/hash-192.js +1 -1
- package/dist/src/types/hash-192.js.map +1 -1
- 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/int-32.d.ts +33 -0
- package/dist/src/types/int-32.js +64 -0
- package/dist/src/types/int-32.js.map +1 -0
- package/dist/src/types/int.d.ts +38 -0
- package/dist/src/types/int.js +57 -0
- package/dist/src/types/int.js.map +1 -0
- package/dist/src/types/issue.d.ts +10 -13
- package/dist/src/types/issue.js +42 -29
- package/dist/src/types/issue.js.map +1 -1
- package/dist/src/types/st-number.js +88 -33
- package/dist/src/types/st-number.js.map +1 -1
- package/dist/src/types/st-object.d.ts +3 -3
- package/dist/src/types/st-object.js +12 -12
- package/dist/src/types/st-object.js.map +1 -1
- package/dist/src/types/uint-16.js +2 -2
- package/dist/src/types/uint-16.js.map +1 -1
- package/dist/src/types/uint-32.js +1 -1
- package/dist/src/types/uint-32.js.map +1 -1
- package/dist/src/types/uint-64.js +1 -1
- package/dist/src/types/uint-64.js.map +1 -1
- package/dist/src/types/uint-8.js +1 -1
- package/dist/src/types/uint-8.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/hash-128.js +1 -1
- package/dist/types/hash-128.js.map +1 -1
- package/dist/types/hash-160.js +1 -1
- package/dist/types/hash-160.js.map +1 -1
- package/dist/types/hash-192.js +1 -1
- package/dist/types/hash-192.js.map +1 -1
- 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/int-32.d.ts +33 -0
- package/dist/types/int-32.js +64 -0
- package/dist/types/int-32.js.map +1 -0
- package/dist/types/int.d.ts +38 -0
- package/dist/types/int.js +57 -0
- package/dist/types/int.js.map +1 -0
- package/dist/types/issue.d.ts +10 -13
- package/dist/types/issue.js +42 -29
- package/dist/types/issue.js.map +1 -1
- package/dist/types/st-number.js +88 -33
- package/dist/types/st-number.js.map +1 -1
- package/dist/types/st-object.d.ts +3 -3
- package/dist/types/st-object.js +12 -12
- package/dist/types/st-object.js.map +1 -1
- package/dist/types/uint-16.js +2 -2
- package/dist/types/uint-16.js.map +1 -1
- package/dist/types/uint-32.js +1 -1
- package/dist/types/uint-32.js.map +1 -1
- package/dist/types/uint-64.js +1 -1
- package/dist/types/uint-64.js.map +1 -1
- package/dist/types/uint-8.js +1 -1
- package/dist/types/uint-8.js.map +1 -1
- package/package.json +8 -5
- package/src/enums/definitions.json +1313 -974
- package/src/index.ts +1 -3
- package/src/types/hash-128.ts +1 -1
- package/src/types/hash-160.ts +1 -1
- package/src/types/hash-192.ts +1 -1
- package/src/types/index.ts +3 -0
- package/src/types/int-32.ts +72 -0
- package/src/types/int.ts +75 -0
- package/src/types/issue.ts +90 -57
- package/src/types/st-number.ts +107 -31
- package/src/types/st-object.ts +77 -73
- package/src/types/uint-16.ts +2 -2
- package/src/types/uint-32.ts +1 -1
- package/src/types/uint-64.ts +1 -1
- package/src/types/uint-8.ts +1 -1
package/dist/types/issue.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { BinaryParser } from
|
|
2
|
-
import { JsonObject, SerializedType, SerializedTypeID } from
|
|
1
|
+
import { BinaryParser } from "../serdes/binary-parser";
|
|
2
|
+
import { JsonObject, SerializedType, SerializedTypeID } from "./serialized-type";
|
|
3
3
|
interface XRPIssue extends JsonObject {
|
|
4
4
|
currency: string;
|
|
5
5
|
}
|
|
@@ -15,31 +15,28 @@ interface MPTIssue extends JsonObject {
|
|
|
15
15
|
*/
|
|
16
16
|
type IssueObject = XRPIssue | IOUIssue | MPTIssue;
|
|
17
17
|
/**
|
|
18
|
-
* Class for serializing/Deserializing
|
|
18
|
+
* Class for serializing/Deserializing Issue
|
|
19
19
|
*/
|
|
20
20
|
declare class Issue extends SerializedType {
|
|
21
|
-
static readonly
|
|
21
|
+
static readonly XRP_ISSUE: Issue;
|
|
22
22
|
constructor(bytes: Uint8Array);
|
|
23
23
|
/**
|
|
24
|
-
* Construct
|
|
24
|
+
* Construct Issue from XRPIssue, IOUIssue or MPTIssue
|
|
25
25
|
*
|
|
26
|
-
* @param value An
|
|
27
|
-
* representing an integer amount
|
|
26
|
+
* @param value An object representing an XRPIssue, IOUIssue or MPTIssue
|
|
28
27
|
* @returns An Issue object
|
|
29
28
|
*/
|
|
30
29
|
static from<T extends Issue | IssueObject>(value: T): Issue;
|
|
31
30
|
/**
|
|
32
|
-
* Read
|
|
31
|
+
* Read Issue from a BinaryParser
|
|
33
32
|
*
|
|
34
|
-
* @param parser BinaryParser to read the
|
|
35
|
-
* @param hint The number of bytes to consume from the parser.
|
|
36
|
-
* For an MPT amount, pass 24 (the fixed length for Hash192).
|
|
33
|
+
* @param parser BinaryParser to read the Issue from
|
|
37
34
|
*
|
|
38
35
|
* @returns An Issue object
|
|
39
36
|
*/
|
|
40
|
-
static fromParser(parser: BinaryParser
|
|
37
|
+
static fromParser(parser: BinaryParser): Issue;
|
|
41
38
|
/**
|
|
42
|
-
* Get the JSON representation of this
|
|
39
|
+
* Get the JSON representation of this IssueObject
|
|
43
40
|
*
|
|
44
41
|
* @returns the JSON interpretation of this.bytes
|
|
45
42
|
*/
|
package/dist/types/issue.js
CHANGED
|
@@ -7,28 +7,30 @@ const account_id_1 = require("./account-id");
|
|
|
7
7
|
const currency_1 = require("./currency");
|
|
8
8
|
const serialized_type_1 = require("./serialized-type");
|
|
9
9
|
const hash_192_1 = require("./hash-192");
|
|
10
|
+
const utils_2 = require("../utils");
|
|
10
11
|
/**
|
|
11
12
|
* Type guard for Issue Object
|
|
12
13
|
*/
|
|
13
14
|
function isIssueObject(arg) {
|
|
14
15
|
const keys = Object.keys(arg).sort();
|
|
15
|
-
const isXRP = keys.length === 1 && keys[0] ===
|
|
16
|
-
const isIOU = keys.length === 2 && keys[0] ===
|
|
17
|
-
const isMPT = keys.length === 1 && keys[0] ===
|
|
16
|
+
const isXRP = keys.length === 1 && keys[0] === "currency";
|
|
17
|
+
const isIOU = keys.length === 2 && keys[0] === "currency" && keys[1] === "issuer";
|
|
18
|
+
const isMPT = keys.length === 1 && keys[0] === "mpt_issuance_id";
|
|
18
19
|
return isXRP || isIOU || isMPT;
|
|
19
20
|
}
|
|
21
|
+
const MPT_WIDTH = 44;
|
|
22
|
+
const NO_ACCOUNT = account_id_1.AccountID.from("0000000000000000000000000000000000000001");
|
|
20
23
|
/**
|
|
21
|
-
* Class for serializing/Deserializing
|
|
24
|
+
* Class for serializing/Deserializing Issue
|
|
22
25
|
*/
|
|
23
26
|
class Issue extends serialized_type_1.SerializedType {
|
|
24
27
|
constructor(bytes) {
|
|
25
|
-
super(bytes !== null && bytes !== void 0 ? bytes : Issue.
|
|
28
|
+
super(bytes !== null && bytes !== void 0 ? bytes : Issue.XRP_ISSUE.bytes);
|
|
26
29
|
}
|
|
27
30
|
/**
|
|
28
|
-
* Construct
|
|
31
|
+
* Construct Issue from XRPIssue, IOUIssue or MPTIssue
|
|
29
32
|
*
|
|
30
|
-
* @param value An
|
|
31
|
-
* representing an integer amount
|
|
33
|
+
* @param value An object representing an XRPIssue, IOUIssue or MPTIssue
|
|
32
34
|
* @returns An Issue object
|
|
33
35
|
*/
|
|
34
36
|
static from(value) {
|
|
@@ -49,47 +51,58 @@ class Issue extends serialized_type_1.SerializedType {
|
|
|
49
51
|
// MPT case
|
|
50
52
|
if (value.mpt_issuance_id) {
|
|
51
53
|
const mptIssuanceIdBytes = hash_192_1.Hash192.from(value.mpt_issuance_id.toString()).toBytes();
|
|
52
|
-
|
|
54
|
+
const issuerAccount = mptIssuanceIdBytes.slice(4);
|
|
55
|
+
const sequence = Number((0, utils_2.readUInt32BE)(mptIssuanceIdBytes.slice(0, 4), 0)); // sequence is in Big-endian format in mpt_issuance_id
|
|
56
|
+
// Convert to Little-endian
|
|
57
|
+
const sequenceBuffer = new Uint8Array(4);
|
|
58
|
+
new DataView(sequenceBuffer.buffer).setUint32(0, sequence, true);
|
|
59
|
+
return new Issue((0, utils_1.concat)([issuerAccount, NO_ACCOUNT.toBytes(), sequenceBuffer]));
|
|
53
60
|
}
|
|
54
61
|
}
|
|
55
|
-
throw new Error(
|
|
62
|
+
throw new Error("Invalid type to construct an Issue");
|
|
56
63
|
}
|
|
57
64
|
/**
|
|
58
|
-
* Read
|
|
65
|
+
* Read Issue from a BinaryParser
|
|
59
66
|
*
|
|
60
|
-
* @param parser BinaryParser to read the
|
|
61
|
-
* @param hint The number of bytes to consume from the parser.
|
|
62
|
-
* For an MPT amount, pass 24 (the fixed length for Hash192).
|
|
67
|
+
* @param parser BinaryParser to read the Issue from
|
|
63
68
|
*
|
|
64
69
|
* @returns An Issue object
|
|
65
70
|
*/
|
|
66
|
-
static fromParser(parser
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
71
|
+
static fromParser(parser) {
|
|
72
|
+
// XRP
|
|
73
|
+
const currencyOrAccount = parser.read(20);
|
|
74
|
+
if (new currency_1.Currency(currencyOrAccount).toJSON() === "XRP") {
|
|
75
|
+
return new Issue(currencyOrAccount);
|
|
70
76
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
77
|
+
// MPT
|
|
78
|
+
const issuerAccountId = new account_id_1.AccountID(parser.read(20));
|
|
79
|
+
if (NO_ACCOUNT.toHex() === issuerAccountId.toHex()) {
|
|
80
|
+
const sequence = parser.read(4);
|
|
81
|
+
return new Issue((0, utils_1.concat)([currencyOrAccount, NO_ACCOUNT.toBytes(), sequence]));
|
|
74
82
|
}
|
|
75
|
-
|
|
76
|
-
return new Issue((0, utils_1.concat)(
|
|
83
|
+
// IOU
|
|
84
|
+
return new Issue((0, utils_1.concat)([currencyOrAccount, issuerAccountId.toBytes()]));
|
|
77
85
|
}
|
|
78
86
|
/**
|
|
79
|
-
* Get the JSON representation of this
|
|
87
|
+
* Get the JSON representation of this IssueObject
|
|
80
88
|
*
|
|
81
89
|
* @returns the JSON interpretation of this.bytes
|
|
82
90
|
*/
|
|
83
91
|
toJSON() {
|
|
84
|
-
// If the buffer is exactly
|
|
85
|
-
if (this.toBytes().length ===
|
|
92
|
+
// If the buffer is exactly 44 bytes, treat it as an MPTIssue.
|
|
93
|
+
if (this.toBytes().length === MPT_WIDTH) {
|
|
94
|
+
const issuerAccount = this.toBytes().slice(0, 20);
|
|
95
|
+
const sequence = new DataView(this.toBytes().slice(40).buffer).getUint32(0, true);
|
|
96
|
+
// sequence part of mpt_issuance_id should be in Big-endian
|
|
97
|
+
const sequenceBuffer = new Uint8Array(4);
|
|
98
|
+
(0, utils_2.writeUInt32BE)(sequenceBuffer, sequence, 0);
|
|
86
99
|
return {
|
|
87
|
-
mpt_issuance_id:
|
|
100
|
+
mpt_issuance_id: (0, utils_1.bytesToHex)((0, utils_1.concat)([sequenceBuffer, issuerAccount])),
|
|
88
101
|
};
|
|
89
102
|
}
|
|
90
103
|
const parser = new binary_parser_1.BinaryParser(this.toString());
|
|
91
104
|
const currency = currency_1.Currency.fromParser(parser);
|
|
92
|
-
if (currency.toJSON() ===
|
|
105
|
+
if (currency.toJSON() === "XRP") {
|
|
93
106
|
return { currency: currency.toJSON() };
|
|
94
107
|
}
|
|
95
108
|
const issuer = account_id_1.AccountID.fromParser(parser);
|
|
@@ -103,5 +116,5 @@ class Issue extends serialized_type_1.SerializedType {
|
|
|
103
116
|
}
|
|
104
117
|
}
|
|
105
118
|
exports.Issue = Issue;
|
|
106
|
-
Issue.
|
|
119
|
+
Issue.XRP_ISSUE = new Issue(new Uint8Array(20));
|
|
107
120
|
//# sourceMappingURL=issue.js.map
|
package/dist/types/issue.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"issue.js","sourceRoot":"","sources":["../../src/types/issue.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"issue.js","sourceRoot":"","sources":["../../src/types/issue.ts"],"names":[],"mappings":"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"}
|
package/dist/types/st-number.js
CHANGED
|
@@ -7,8 +7,9 @@ const utils_1 = require("../utils");
|
|
|
7
7
|
* Constants for mantissa and exponent normalization per XRPL Number spec.
|
|
8
8
|
* These define allowed magnitude for mantissa and exponent after normalization.
|
|
9
9
|
*/
|
|
10
|
-
const MIN_MANTISSA = BigInt('
|
|
11
|
-
const MAX_MANTISSA = BigInt('
|
|
10
|
+
const MIN_MANTISSA = BigInt('1000000000000000000'); // 10^18
|
|
11
|
+
const MAX_MANTISSA = BigInt('9999999999999999999'); // 10^19 - 1
|
|
12
|
+
const MAX_INT64 = BigInt('9223372036854775807'); // 2^63 - 1, max signed 64-bit integer
|
|
12
13
|
const MIN_EXPONENT = -32768;
|
|
13
14
|
const MAX_EXPONENT = 32768;
|
|
14
15
|
const DEFAULT_VALUE_EXPONENT = -2147483648;
|
|
@@ -56,6 +57,11 @@ function extractNumberPartsFromString(val) {
|
|
|
56
57
|
}
|
|
57
58
|
if (expPart)
|
|
58
59
|
exponent += parseInt(expPart, 10);
|
|
60
|
+
// Remove trailing zeros from mantissa and adjust exponent
|
|
61
|
+
while (mantissaStr.length > 1 && mantissaStr.endsWith('0')) {
|
|
62
|
+
mantissaStr = mantissaStr.slice(0, -1);
|
|
63
|
+
exponent += 1;
|
|
64
|
+
}
|
|
59
65
|
let mantissa = BigInt(mantissaStr);
|
|
60
66
|
if (sign === '-')
|
|
61
67
|
mantissa = -mantissa;
|
|
@@ -65,7 +71,7 @@ function extractNumberPartsFromString(val) {
|
|
|
65
71
|
/**
|
|
66
72
|
* Normalize the mantissa and exponent to XRPL constraints.
|
|
67
73
|
*
|
|
68
|
-
* Ensures that after normalization, the mantissa is between MIN_MANTISSA and
|
|
74
|
+
* Ensures that after normalization, the mantissa is between MIN_MANTISSA and MAX_INT64.
|
|
69
75
|
* Adjusts the exponent as needed by shifting the mantissa left/right (multiplying/dividing by 10).
|
|
70
76
|
*
|
|
71
77
|
* @param mantissa - The unnormalized mantissa (BigInt).
|
|
@@ -76,16 +82,57 @@ function extractNumberPartsFromString(val) {
|
|
|
76
82
|
function normalize(mantissa, exponent) {
|
|
77
83
|
let m = mantissa < BigInt(0) ? -mantissa : mantissa;
|
|
78
84
|
const isNegative = mantissa < BigInt(0);
|
|
79
|
-
|
|
85
|
+
// Handle zero
|
|
86
|
+
if (m === BigInt(0)) {
|
|
87
|
+
return { mantissa: BigInt(0), exponent: DEFAULT_VALUE_EXPONENT };
|
|
88
|
+
}
|
|
89
|
+
// Grow mantissa until it reaches MIN_MANTISSA
|
|
90
|
+
while (m < MIN_MANTISSA && exponent > MIN_EXPONENT) {
|
|
80
91
|
exponent -= 1;
|
|
81
92
|
m *= BigInt(10);
|
|
82
93
|
}
|
|
94
|
+
let lastDigit = null;
|
|
95
|
+
// Shrink mantissa until it fits within MAX_MANTISSA
|
|
83
96
|
while (m > MAX_MANTISSA) {
|
|
84
|
-
if (exponent >= MAX_EXPONENT)
|
|
97
|
+
if (exponent >= MAX_EXPONENT) {
|
|
85
98
|
throw new Error('Mantissa and exponent are too large');
|
|
99
|
+
}
|
|
86
100
|
exponent += 1;
|
|
101
|
+
lastDigit = m % BigInt(10);
|
|
87
102
|
m /= BigInt(10);
|
|
88
103
|
}
|
|
104
|
+
// Handle underflow: if exponent too small or mantissa too small, throw error
|
|
105
|
+
if (exponent < MIN_EXPONENT || m < MIN_MANTISSA) {
|
|
106
|
+
throw new Error('Underflow: value too small to represent');
|
|
107
|
+
}
|
|
108
|
+
// Handle overflow: if exponent exceeds MAX_EXPONENT after growing.
|
|
109
|
+
if (exponent > MAX_EXPONENT) {
|
|
110
|
+
throw new Error('Exponent overflow: value too large to represent');
|
|
111
|
+
}
|
|
112
|
+
// Handle overflow: if mantissa exceeds MAX_INT64 (2^63-1) after growing.
|
|
113
|
+
if (m > MAX_INT64) {
|
|
114
|
+
if (exponent >= MAX_EXPONENT) {
|
|
115
|
+
throw new Error('Exponent overflow: value too large to represent');
|
|
116
|
+
}
|
|
117
|
+
exponent += 1;
|
|
118
|
+
lastDigit = m % BigInt(10);
|
|
119
|
+
m /= BigInt(10);
|
|
120
|
+
}
|
|
121
|
+
if (lastDigit != null && lastDigit >= BigInt(5)) {
|
|
122
|
+
m += BigInt(1);
|
|
123
|
+
// After rounding, mantissa may exceed MAX_INT64 again
|
|
124
|
+
if (m > MAX_INT64) {
|
|
125
|
+
if (exponent >= MAX_EXPONENT) {
|
|
126
|
+
throw new Error('Exponent overflow: value too large to represent');
|
|
127
|
+
}
|
|
128
|
+
lastDigit = m % BigInt(10);
|
|
129
|
+
exponent += 1;
|
|
130
|
+
m /= BigInt(10);
|
|
131
|
+
if (lastDigit >= BigInt(5)) {
|
|
132
|
+
m += BigInt(1);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
89
136
|
if (isNegative)
|
|
90
137
|
m = -m;
|
|
91
138
|
return { mantissa: m, exponent };
|
|
@@ -139,18 +186,8 @@ class STNumber extends serialized_type_1.SerializedType {
|
|
|
139
186
|
* @throws Error if val is not a valid number string.
|
|
140
187
|
*/
|
|
141
188
|
static fromValue(val) {
|
|
142
|
-
const { mantissa, exponent
|
|
143
|
-
|
|
144
|
-
let normalizedExponent;
|
|
145
|
-
if (mantissa === BigInt(0) && exponent === 0 && !isNegative) {
|
|
146
|
-
normalizedMantissa = BigInt(0);
|
|
147
|
-
normalizedExponent = DEFAULT_VALUE_EXPONENT;
|
|
148
|
-
}
|
|
149
|
-
else {
|
|
150
|
-
;
|
|
151
|
-
({ mantissa: normalizedMantissa, exponent: normalizedExponent } =
|
|
152
|
-
normalize(mantissa, exponent));
|
|
153
|
-
}
|
|
189
|
+
const { mantissa, exponent } = extractNumberPartsFromString(val);
|
|
190
|
+
const { mantissa: normalizedMantissa, exponent: normalizedExponent } = normalize(mantissa, exponent);
|
|
154
191
|
const bytes = new Uint8Array(12);
|
|
155
192
|
(0, utils_1.writeInt64BE)(bytes, normalizedMantissa, 0);
|
|
156
193
|
(0, utils_1.writeInt32BE)(bytes, normalizedExponent, 8);
|
|
@@ -171,35 +208,53 @@ class STNumber extends serialized_type_1.SerializedType {
|
|
|
171
208
|
*
|
|
172
209
|
* @returns String representation of the value
|
|
173
210
|
*/
|
|
174
|
-
// eslint-disable-next-line complexity -- required
|
|
175
211
|
toJSON() {
|
|
176
212
|
const b = this.bytes;
|
|
177
|
-
if (!b || b.length !== 12)
|
|
213
|
+
if (!b || (b === null || b === void 0 ? void 0 : b.length) !== 12)
|
|
178
214
|
throw new Error('STNumber internal bytes not set or wrong length');
|
|
179
215
|
// Signed 64-bit mantissa
|
|
180
216
|
const mantissa = (0, utils_1.readInt64BE)(b, 0);
|
|
181
217
|
// Signed 32-bit exponent
|
|
182
|
-
|
|
218
|
+
let exponent = (0, utils_1.readInt32BE)(b, 8);
|
|
183
219
|
// Special zero: XRPL encodes canonical zero as mantissa=0, exponent=DEFAULT_VALUE_EXPONENT.
|
|
184
220
|
if (mantissa === BigInt(0) && exponent === DEFAULT_VALUE_EXPONENT) {
|
|
185
221
|
return '0';
|
|
186
222
|
}
|
|
187
|
-
if (exponent === 0)
|
|
188
|
-
return mantissa.toString();
|
|
189
|
-
// Use scientific notation for small/large exponents, decimal otherwise
|
|
190
|
-
if (exponent < -25 || exponent > -5) {
|
|
191
|
-
return `${mantissa}e${exponent}`;
|
|
192
|
-
}
|
|
193
|
-
// Decimal rendering for -25 <= exp <= -5
|
|
194
223
|
const isNegative = mantissa < BigInt(0);
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
224
|
+
let mantissaAbs = isNegative ? -mantissa : mantissa;
|
|
225
|
+
// If mantissa < MIN_MANTISSA, it was shrunk for int64 serialization (mantissa > 2^63-1).
|
|
226
|
+
// Restore it for proper string rendering to match rippled's internal representation.
|
|
227
|
+
if (mantissaAbs !== BigInt(0) && mantissaAbs < MIN_MANTISSA) {
|
|
228
|
+
mantissaAbs *= BigInt(10);
|
|
229
|
+
exponent -= 1;
|
|
230
|
+
}
|
|
231
|
+
// For large mantissa range (default), rangeLog = 18
|
|
232
|
+
const rangeLog = 18;
|
|
233
|
+
// Use scientific notation for exponents that are too small or too large
|
|
234
|
+
// Condition from rippled: exponent != 0 AND (exponent < -(rangeLog + 10) OR exponent > -(rangeLog - 10))
|
|
235
|
+
// For rangeLog = 18: exponent != 0 AND (exponent < -28 OR exponent > -8)
|
|
236
|
+
if (exponent !== 0 &&
|
|
237
|
+
(exponent < -(rangeLog + 10) || exponent > -(rangeLog - 10))) {
|
|
238
|
+
// Strip trailing zeros from mantissa (matches rippled behavior)
|
|
239
|
+
let exp = exponent;
|
|
240
|
+
while (mantissaAbs !== BigInt(0) &&
|
|
241
|
+
mantissaAbs % BigInt(10) === BigInt(0) &&
|
|
242
|
+
exp < MAX_EXPONENT) {
|
|
243
|
+
mantissaAbs /= BigInt(10);
|
|
244
|
+
exp += 1;
|
|
245
|
+
}
|
|
246
|
+
const sign = isNegative ? '-' : '';
|
|
247
|
+
return `${sign}${mantissaAbs}e${exp}`;
|
|
248
|
+
}
|
|
249
|
+
// Decimal rendering for -(rangeLog + 10) <= exponent <= -(rangeLog - 10)
|
|
250
|
+
// i.e., -28 <= exponent <= -8, or exponent == 0
|
|
251
|
+
const padPrefix = rangeLog + 12; // 30
|
|
252
|
+
const padSuffix = rangeLog + 8; // 26
|
|
198
253
|
const mantissaStr = mantissaAbs.toString();
|
|
199
254
|
const rawValue = '0'.repeat(padPrefix) + mantissaStr + '0'.repeat(padSuffix);
|
|
200
|
-
const
|
|
201
|
-
const integerPart = rawValue.slice(0,
|
|
202
|
-
const fractionPart = rawValue.slice(
|
|
255
|
+
const offset = exponent + padPrefix + rangeLog + 1; // exponent + 49
|
|
256
|
+
const integerPart = rawValue.slice(0, offset).replace(/^0+/, '') || '0';
|
|
257
|
+
const fractionPart = rawValue.slice(offset).replace(/0+$/, '');
|
|
203
258
|
return `${isNegative ? '-' : ''}${integerPart}${fractionPart ? '.' + fractionPart : ''}`;
|
|
204
259
|
}
|
|
205
260
|
getSType() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"st-number.js","sourceRoot":"","sources":["../../src/types/st-number.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"st-number.js","sourceRoot":"","sources":["../../src/types/st-number.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { XrplDefinitionsBase } from
|
|
2
|
-
import { SerializedType, JsonObject, SerializedTypeID } from
|
|
3
|
-
import { BinaryParser } from
|
|
1
|
+
import { XrplDefinitionsBase } from "../enums";
|
|
2
|
+
import { SerializedType, JsonObject, SerializedTypeID } from "./serialized-type";
|
|
3
|
+
import { BinaryParser } from "../serdes/binary-parser";
|
|
4
4
|
/**
|
|
5
5
|
* Class for Serializing/Deserializing objects
|
|
6
6
|
*/
|
package/dist/types/st-object.js
CHANGED
|
@@ -9,12 +9,12 @@ const binary_serializer_1 = require("../serdes/binary-serializer");
|
|
|
9
9
|
const st_array_1 = require("./st-array");
|
|
10
10
|
const uint_64_1 = require("./uint-64");
|
|
11
11
|
const OBJECT_END_MARKER_BYTE = Uint8Array.from([0xe1]);
|
|
12
|
-
const OBJECT_END_MARKER =
|
|
13
|
-
const ST_OBJECT =
|
|
14
|
-
const DESTINATION =
|
|
15
|
-
const ACCOUNT =
|
|
16
|
-
const SOURCE_TAG =
|
|
17
|
-
const DEST_TAG =
|
|
12
|
+
const OBJECT_END_MARKER = "ObjectEndMarker";
|
|
13
|
+
const ST_OBJECT = "STObject";
|
|
14
|
+
const DESTINATION = "Destination";
|
|
15
|
+
const ACCOUNT = "Account";
|
|
16
|
+
const SOURCE_TAG = "SourceTag";
|
|
17
|
+
const DEST_TAG = "DestinationTag";
|
|
18
18
|
/**
|
|
19
19
|
* Break down an X-Address into an account and a tag
|
|
20
20
|
*
|
|
@@ -43,9 +43,9 @@ function handleXAddress(field, xAddress) {
|
|
|
43
43
|
*/
|
|
44
44
|
function checkForDuplicateTags(obj1, obj2) {
|
|
45
45
|
if (!(obj1[SOURCE_TAG] === undefined || obj2[SOURCE_TAG] === undefined))
|
|
46
|
-
throw new Error(
|
|
46
|
+
throw new Error("Cannot have Account X-Address and SourceTag");
|
|
47
47
|
if (!(obj1[DEST_TAG] === undefined || obj2[DEST_TAG] === undefined))
|
|
48
|
-
throw new Error(
|
|
48
|
+
throw new Error("Cannot have Destination X-Address and DestinationTag");
|
|
49
49
|
}
|
|
50
50
|
/**
|
|
51
51
|
* Class for Serializing/Deserializing objects
|
|
@@ -121,9 +121,9 @@ class STObject extends serialized_type_1.SerializedType {
|
|
|
121
121
|
var _a;
|
|
122
122
|
const associatedValue = field.type.name === ST_OBJECT
|
|
123
123
|
? this.from(xAddressDecoded[field.name], undefined, definitions)
|
|
124
|
-
: field.type.name ===
|
|
124
|
+
: field.type.name === "STArray"
|
|
125
125
|
? st_array_1.STArray.from(xAddressDecoded[field.name], definitions)
|
|
126
|
-
: field.type.name ===
|
|
126
|
+
: field.type.name === "UInt64"
|
|
127
127
|
? uint_64_1.UInt64.from(xAddressDecoded[field.name], field.name)
|
|
128
128
|
: ((_a = field.associatedType) === null || _a === void 0 ? void 0 : _a.from)
|
|
129
129
|
? field.associatedType.from(xAddressDecoded[field.name])
|
|
@@ -133,14 +133,14 @@ class STObject extends serialized_type_1.SerializedType {
|
|
|
133
133
|
if (associatedValue == undefined) {
|
|
134
134
|
throw new TypeError(`Unable to interpret "${field.name}: ${xAddressDecoded[field.name]}".`);
|
|
135
135
|
}
|
|
136
|
-
if (associatedValue.name ===
|
|
136
|
+
if (associatedValue.name === "UNLModify") {
|
|
137
137
|
// triggered when the TransactionType field has a value of 'UNLModify'
|
|
138
138
|
isUnlModify = true;
|
|
139
139
|
}
|
|
140
140
|
// true when in the UNLModify pseudotransaction (after the transaction type has been processed) and working with the
|
|
141
141
|
// Account field
|
|
142
142
|
// The Account field must not be a part of the UNLModify pseudotransaction encoding, due to a bug in rippled
|
|
143
|
-
const isUnlModifyWorkaround = field.name ==
|
|
143
|
+
const isUnlModifyWorkaround = field.name == "Account" && isUnlModify;
|
|
144
144
|
bytes.writeFieldAndValue(field, associatedValue, isUnlModifyWorkaround);
|
|
145
145
|
if (field.type.name === ST_OBJECT) {
|
|
146
146
|
bytes.put(OBJECT_END_MARKER_BYTE);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"st-object.js","sourceRoot":"","sources":["../../src/types/st-object.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"st-object.js","sourceRoot":"","sources":["../../src/types/st-object.ts"],"names":[],"mappings":"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"}
|
package/dist/types/uint-16.js
CHANGED
|
@@ -23,13 +23,13 @@ class UInt16 extends uint_1.UInt {
|
|
|
23
23
|
if (val instanceof UInt16) {
|
|
24
24
|
return val;
|
|
25
25
|
}
|
|
26
|
-
if (typeof val === 'number') {
|
|
26
|
+
if (typeof val === 'number' && Number.isInteger(val)) {
|
|
27
27
|
UInt16.checkUintRange(val, 0, 0xffff);
|
|
28
28
|
const buf = new Uint8Array(UInt16.width);
|
|
29
29
|
(0, utils_1.writeUInt16BE)(buf, val, 0);
|
|
30
30
|
return new UInt16(buf);
|
|
31
31
|
}
|
|
32
|
-
throw new Error('
|
|
32
|
+
throw new Error('Cannot construct UInt16 from given value');
|
|
33
33
|
}
|
|
34
34
|
/**
|
|
35
35
|
* get the value of a UInt16 object
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uint-16.js","sourceRoot":"","sources":["../../src/types/uint-16.ts"],"names":[],"mappings":";;;AAAA,iCAA6B;AAE7B,oCAAsD;AACtD,uDAAoD;AAEpD;;GAEG;AACH,MAAM,MAAO,SAAQ,WAAI;IAMvB,YAAY,KAAiB;QAC3B,KAAK,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;IAC5C,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,MAAoB;QACpC,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IAC9C,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,IAAI,CAA4B,GAAM;QAC3C,IAAI,GAAG,YAAY,MAAM,EAAE;YACzB,OAAO,GAAG,CAAA;SACX;QAED,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;
|
|
1
|
+
{"version":3,"file":"uint-16.js","sourceRoot":"","sources":["../../src/types/uint-16.ts"],"names":[],"mappings":";;;AAAA,iCAA6B;AAE7B,oCAAsD;AACtD,uDAAoD;AAEpD;;GAEG;AACH,MAAM,MAAO,SAAQ,WAAI;IAMvB,YAAY,KAAiB;QAC3B,KAAK,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;IAC5C,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,MAAoB;QACpC,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IAC9C,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,IAAI,CAA4B,GAAM;QAC3C,IAAI,GAAG,YAAY,MAAM,EAAE;YACzB,OAAO,GAAG,CAAA;SACX;QAED,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YACpD,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC,CAAA;YAErC,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACxC,IAAA,qBAAa,EAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;YAC1B,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAA;SACvB;QAED,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;IAC7D,CAAC;IAED;;;;OAIG;IACH,OAAO;QACL,OAAO,QAAQ,CAAC,IAAA,oBAAY,EAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAA;IAC9C,CAAC;IAED,QAAQ;QACN,OAAO,kCAAgB,CAAC,UAAU,CAAA;IACpC,CAAC;;AAGM,wBAAM;AAhDa,YAAK,GAAW,EAAE,GAAG,CAAC,CAAA,CAAC,IAAI;AACrC,oBAAa,GAAW,IAAI,MAAM,CAChD,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAC7B,CAAA"}
|
package/dist/types/uint-32.js
CHANGED
|
@@ -29,7 +29,7 @@ class UInt32 extends uint_1.UInt {
|
|
|
29
29
|
(0, utils_1.writeUInt32BE)(buf, num, 0);
|
|
30
30
|
return new UInt32(buf);
|
|
31
31
|
}
|
|
32
|
-
if (typeof val === 'number') {
|
|
32
|
+
if (typeof val === 'number' && Number.isInteger(val)) {
|
|
33
33
|
UInt32.checkUintRange(val, 0, 0xffffffff);
|
|
34
34
|
(0, utils_1.writeUInt32BE)(buf, val, 0);
|
|
35
35
|
return new UInt32(buf);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uint-32.js","sourceRoot":"","sources":["../../src/types/uint-32.ts"],"names":[],"mappings":";;;AAAA,iCAA6B;AAE7B,oCAAsD;AACtD,uDAAoD;AAEpD;;GAEG;AACH,MAAM,MAAO,SAAQ,WAAI;IAMvB,YAAY,KAAiB;QAC3B,KAAK,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;IAC5C,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,MAAoB;QACpC,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IAC9C,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,IAAI,CAAqC,GAAM;QACpD,IAAI,GAAG,YAAY,MAAM,EAAE;YACzB,OAAO,GAAG,CAAA;SACX;QAED,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAExC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;YAChC,IAAA,qBAAa,EAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;YAC1B,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAA;SACvB;QAED,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;
|
|
1
|
+
{"version":3,"file":"uint-32.js","sourceRoot":"","sources":["../../src/types/uint-32.ts"],"names":[],"mappings":";;;AAAA,iCAA6B;AAE7B,oCAAsD;AACtD,uDAAoD;AAEpD;;GAEG;AACH,MAAM,MAAO,SAAQ,WAAI;IAMvB,YAAY,KAAiB;QAC3B,KAAK,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;IAC5C,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,MAAoB;QACpC,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IAC9C,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,IAAI,CAAqC,GAAM;QACpD,IAAI,GAAG,YAAY,MAAM,EAAE;YACzB,OAAO,GAAG,CAAA;SACX;QAED,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAExC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;YAChC,IAAA,qBAAa,EAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;YAC1B,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAA;SACvB;QAED,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YACpD,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,EAAE,UAAU,CAAC,CAAA;YACzC,IAAA,qBAAa,EAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;YAC1B,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAA;SACvB;QAED,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;IAC7D,CAAC;IAED;;;;OAIG;IACH,OAAO;QACL,OAAO,QAAQ,CAAC,IAAA,oBAAY,EAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAClD,CAAC;IAED,QAAQ;QACN,OAAO,kCAAgB,CAAC,UAAU,CAAA;IACpC,CAAC;;AAGM,wBAAM;AAtDa,YAAK,GAAW,EAAE,GAAG,CAAC,CAAA,CAAC,IAAI;AACrC,oBAAa,GAAW,IAAI,MAAM,CAChD,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAC7B,CAAA"}
|
package/dist/types/uint-64.js
CHANGED
|
@@ -40,7 +40,7 @@ class UInt64 extends uint_1.UInt {
|
|
|
40
40
|
return val;
|
|
41
41
|
}
|
|
42
42
|
let buf = new Uint8Array(UInt64.width);
|
|
43
|
-
if (typeof val === 'number') {
|
|
43
|
+
if (typeof val === 'number' && Number.isInteger(val)) {
|
|
44
44
|
if (val < 0) {
|
|
45
45
|
throw new Error('value must be an unsigned integer');
|
|
46
46
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uint-64.js","sourceRoot":"","sources":["../../src/types/uint-64.ts"],"names":[],"mappings":";;;AAAA,iCAA6B;AAE7B,qDAA0E;AAC1E,oCAAsD;AACtD,oCAAmE;AACnE,uDAAoD;AAEpD,MAAM,SAAS,GAAG,qBAAqB,CAAA;AACvC,MAAM,YAAY,GAAG,eAAe,CAAA;AACpC,MAAM,IAAI,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAA;AAEvC,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC;IACnC,eAAe;IACf,mBAAmB;IACnB,WAAW;IACX,cAAc;CACf,CAAC,CAAA;AAEF,SAAS,QAAQ,CAAC,SAAiB;IACjC,OAAO,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;AAC5C,CAAC;AAED;;GAEG;AACH,MAAM,MAAO,SAAQ,WAAI;IAMvB,YAAY,KAAiB;QAC3B,KAAK,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;IAC5C,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,MAAoB;QACpC,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IAC9C,CAAC;IAED;;;;;OAKG;IACH,sCAAsC;IACtC,MAAM,CAAC,IAAI,CACT,GAAM,EACN,SAAS,GAAG,EAAE;QAEd,IAAI,GAAG,YAAY,MAAM,EAAE;YACzB,OAAO,GAAG,CAAA;SACX;QAED,IAAI,GAAG,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAEtC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;
|
|
1
|
+
{"version":3,"file":"uint-64.js","sourceRoot":"","sources":["../../src/types/uint-64.ts"],"names":[],"mappings":"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"}
|
package/dist/types/uint-8.js
CHANGED
|
@@ -24,7 +24,7 @@ class UInt8 extends uint_1.UInt {
|
|
|
24
24
|
if (val instanceof UInt8) {
|
|
25
25
|
return val;
|
|
26
26
|
}
|
|
27
|
-
if (typeof val === 'number') {
|
|
27
|
+
if (typeof val === 'number' && Number.isInteger(val)) {
|
|
28
28
|
UInt8.checkUintRange(val, 0, 0xff);
|
|
29
29
|
const buf = new Uint8Array(UInt8.width);
|
|
30
30
|
(0, utils_2.writeUInt8)(buf, val, 0);
|
package/dist/types/uint-8.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uint-8.js","sourceRoot":"","sources":["../../src/types/uint-8.ts"],"names":[],"mappings":";;;AAAA,iCAA6B;AAE7B,qDAAsD;AACtD,oCAAqC;AACrC,uDAAoD;AAEpD;;GAEG;AACH,MAAM,KAAM,SAAQ,WAAI;IAItB,YAAY,KAAiB;QAC3B,KAAK,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;IAC1C,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,MAAoB;QACpC,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;IAC5C,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,IAAI,CAA2B,GAAM;QAC1C,IAAI,GAAG,YAAY,KAAK,EAAE;YACxB,OAAO,GAAG,CAAA;SACX;QAED,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;
|
|
1
|
+
{"version":3,"file":"uint-8.js","sourceRoot":"","sources":["../../src/types/uint-8.ts"],"names":[],"mappings":";;;AAAA,iCAA6B;AAE7B,qDAAsD;AACtD,oCAAqC;AACrC,uDAAoD;AAEpD;;GAEG;AACH,MAAM,KAAM,SAAQ,WAAI;IAItB,YAAY,KAAiB;QAC3B,KAAK,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;IAC1C,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,MAAoB;QACpC,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;IAC5C,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,IAAI,CAA2B,GAAM;QAC1C,IAAI,GAAG,YAAY,KAAK,EAAE;YACxB,OAAO,GAAG,CAAA;SACX;QAED,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YACpD,KAAK,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA;YAElC,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YACvC,IAAA,kBAAU,EAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;YACvB,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,CAAA;SACtB;QAED,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;IAC5D,CAAC;IAED;;;;OAIG;IACH,OAAO;QACL,OAAO,QAAQ,CAAC,IAAA,kBAAU,EAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAA;IAC7C,CAAC;IAED,QAAQ;QACN,OAAO,kCAAgB,CAAC,SAAS,CAAA;IACnC,CAAC;;AAGM,sBAAK;AA9Cc,WAAK,GAAW,CAAC,GAAG,CAAC,CAAA,CAAC,IAAI;AACpC,kBAAY,GAAU,IAAI,KAAK,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA"}
|