ripple-binary-codec 2.6.0 → 2.7.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.
Files changed (67) hide show
  1. package/dist/enums/definitions.json +1 -1
  2. package/dist/enums/src/enums/definitions.json +6 -1
  3. package/dist/src/enums/definitions.json +1 -1
  4. package/dist/src/types/hash-128.js +1 -1
  5. package/dist/src/types/hash-128.js.map +1 -1
  6. package/dist/src/types/hash-160.js +1 -1
  7. package/dist/src/types/hash-160.js.map +1 -1
  8. package/dist/src/types/hash-192.js +1 -1
  9. package/dist/src/types/hash-192.js.map +1 -1
  10. package/dist/src/types/index.d.ts +2 -1
  11. package/dist/src/types/index.js +4 -1
  12. package/dist/src/types/index.js.map +1 -1
  13. package/dist/src/types/int-32.d.ts +33 -0
  14. package/dist/src/types/int-32.js +64 -0
  15. package/dist/src/types/int-32.js.map +1 -0
  16. package/dist/src/types/int.d.ts +38 -0
  17. package/dist/src/types/int.js +57 -0
  18. package/dist/src/types/int.js.map +1 -0
  19. package/dist/src/types/st-number.js +88 -33
  20. package/dist/src/types/st-number.js.map +1 -1
  21. package/dist/src/types/uint-16.js +2 -2
  22. package/dist/src/types/uint-16.js.map +1 -1
  23. package/dist/src/types/uint-32.js +1 -1
  24. package/dist/src/types/uint-32.js.map +1 -1
  25. package/dist/src/types/uint-64.js +1 -1
  26. package/dist/src/types/uint-64.js.map +1 -1
  27. package/dist/src/types/uint-8.js +1 -1
  28. package/dist/src/types/uint-8.js.map +1 -1
  29. package/dist/tsconfig.tsbuildinfo +1 -1
  30. package/dist/types/hash-128.js +1 -1
  31. package/dist/types/hash-128.js.map +1 -1
  32. package/dist/types/hash-160.js +1 -1
  33. package/dist/types/hash-160.js.map +1 -1
  34. package/dist/types/hash-192.js +1 -1
  35. package/dist/types/hash-192.js.map +1 -1
  36. package/dist/types/index.d.ts +2 -1
  37. package/dist/types/index.js +4 -1
  38. package/dist/types/index.js.map +1 -1
  39. package/dist/types/int-32.d.ts +33 -0
  40. package/dist/types/int-32.js +64 -0
  41. package/dist/types/int-32.js.map +1 -0
  42. package/dist/types/int.d.ts +38 -0
  43. package/dist/types/int.js +57 -0
  44. package/dist/types/int.js.map +1 -0
  45. package/dist/types/st-number.js +88 -33
  46. package/dist/types/st-number.js.map +1 -1
  47. package/dist/types/uint-16.js +2 -2
  48. package/dist/types/uint-16.js.map +1 -1
  49. package/dist/types/uint-32.js +1 -1
  50. package/dist/types/uint-32.js.map +1 -1
  51. package/dist/types/uint-64.js +1 -1
  52. package/dist/types/uint-64.js.map +1 -1
  53. package/dist/types/uint-8.js +1 -1
  54. package/dist/types/uint-8.js.map +1 -1
  55. package/package.json +1 -1
  56. package/src/enums/definitions.json +6 -1
  57. package/src/types/hash-128.ts +1 -1
  58. package/src/types/hash-160.ts +1 -1
  59. package/src/types/hash-192.ts +1 -1
  60. package/src/types/index.ts +3 -0
  61. package/src/types/int-32.ts +72 -0
  62. package/src/types/int.ts +75 -0
  63. package/src/types/st-number.ts +107 -31
  64. package/src/types/uint-16.ts +2 -2
  65. package/src/types/uint-32.ts +1 -1
  66. package/src/types/uint-64.ts +1 -1
  67. package/src/types/uint-8.ts +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"int.js","sourceRoot":"","sources":["../../src/types/int.ts"],"names":[],"mappings":";;;AAAA,uDAA8C;AAE9C;;;;;;GAMG;AACH,SAAS,OAAO,CAAC,EAAmB,EAAE,EAAmB;IACvD,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACxC,CAAC;AAED;;GAEG;AACH,MAAe,GAAI,SAAQ,4BAAwB;IAGjD,YAAY,KAAiB;QAC3B,KAAK,CAAC,KAAK,CAAC,CAAA;IACd,CAAC;IAED;;;;;OAKG;IACH,SAAS,CAAC,KAAmB;QAC3B,OAAO,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;IACjD,CAAC;IAED;;;;OAIG;IACH,MAAM;QACJ,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;QAC1B,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;IACvD,CAAC;IASD;;;;;;;;OAQG;IACH,uEAAuE;IACvE,MAAM,CAAC,aAAa,CAClB,QAAgB,EAChB,GAAoB,EACpB,GAAoB,EACpB,GAAoB;QAEpB,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE;YAC1B,MAAM,IAAI,KAAK,CACb,WAAW,QAAQ,KAAK,GAAG,eAAe,GAAG,WAAW,GAAG,EAAE,CAC9D,CAAA;SACF;IACH,CAAC;CACF;AAEQ,kBAAG"}
@@ -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('1000000000000000');
11
- const MAX_MANTISSA = BigInt('9999999999999999');
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 MAX_MANTISSA (unless zero).
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
- while (m !== BigInt(0) && m < MIN_MANTISSA && exponent > MIN_EXPONENT) {
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, isNegative } = extractNumberPartsFromString(val);
143
- let normalizedMantissa;
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
- const exponent = (0, utils_1.readInt32BE)(b, 8);
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
- const mantissaAbs = mantissa < BigInt(0) ? -mantissa : mantissa;
196
- const padPrefix = 27;
197
- const padSuffix = 23;
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 OFFSET = exponent + 43;
201
- const integerPart = rawValue.slice(0, OFFSET).replace(/^0+/, '') || '0';
202
- const fractionPart = rawValue.slice(OFFSET).replace(/0+$/, '');
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
  }
@@ -1 +1 @@
1
- {"version":3,"file":"st-number.js","sourceRoot":"","sources":["../../src/types/st-number.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"st-number.js","sourceRoot":"","sources":["../../src/types/st-number.ts"],"names":[],"mappings":"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"}
@@ -22,13 +22,13 @@ class UInt16 extends uint_1.UInt {
22
22
  if (val instanceof UInt16) {
23
23
  return val;
24
24
  }
25
- if (typeof val === 'number') {
25
+ if (typeof val === 'number' && Number.isInteger(val)) {
26
26
  UInt16.checkUintRange(val, 0, 0xffff);
27
27
  const buf = new Uint8Array(UInt16.width);
28
28
  (0, utils_1.writeUInt16BE)(buf, val, 0);
29
29
  return new UInt16(buf);
30
30
  }
31
- throw new Error('Can not construct UInt16 with given value');
31
+ throw new Error('Cannot construct UInt16 from given value');
32
32
  }
33
33
  /**
34
34
  * 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;AAEtD;;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;YAC3B,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,2CAA2C,CAAC,CAAA;IAC9D,CAAC;IAED;;;;OAIG;IACH,OAAO;QACL,OAAO,QAAQ,CAAC,IAAA,oBAAY,EAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAA;IAC9C,CAAC;;AAGM,wBAAM;AA5Ca,YAAK,GAAW,EAAE,GAAG,CAAC,CAAA,CAAC,IAAI;AACrC,oBAAa,GAAW,IAAI,MAAM,CAChD,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAC7B,CAAA"}
1
+ {"version":3,"file":"uint-16.js","sourceRoot":"","sources":["../../src/types/uint-16.ts"],"names":[],"mappings":";;;AAAA,iCAA6B;AAE7B,oCAAsD;AAEtD;;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;;AAGM,wBAAM;AA5Ca,YAAK,GAAW,EAAE,GAAG,CAAC,CAAA,CAAC,IAAI;AACrC,oBAAa,GAAW,IAAI,MAAM,CAChD,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAC7B,CAAA"}
@@ -28,7 +28,7 @@ class UInt32 extends uint_1.UInt {
28
28
  (0, utils_1.writeUInt32BE)(buf, num, 0);
29
29
  return new UInt32(buf);
30
30
  }
31
- if (typeof val === 'number') {
31
+ if (typeof val === 'number' && Number.isInteger(val)) {
32
32
  UInt32.checkUintRange(val, 0, 0xffffffff);
33
33
  (0, utils_1.writeUInt32BE)(buf, val, 0);
34
34
  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;AAEtD;;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;YAC3B,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;;AAGM,wBAAM;AAlDa,YAAK,GAAW,EAAE,GAAG,CAAC,CAAA,CAAC,IAAI;AACrC,oBAAa,GAAW,IAAI,MAAM,CAChD,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAC7B,CAAA"}
1
+ {"version":3,"file":"uint-32.js","sourceRoot":"","sources":["../../src/types/uint-32.ts"],"names":[],"mappings":";;;AAAA,iCAA6B;AAE7B,oCAAsD;AAEtD;;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;;AAGM,wBAAM;AAlDa,YAAK,GAAW,EAAE,GAAG,CAAC,CAAA,CAAC,IAAI;AACrC,oBAAa,GAAW,IAAI,MAAM,CAChD,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAC7B,CAAA"}
@@ -39,7 +39,7 @@ class UInt64 extends uint_1.UInt {
39
39
  return val;
40
40
  }
41
41
  let buf = new Uint8Array(UInt64.width);
42
- if (typeof val === 'number') {
42
+ if (typeof val === 'number' && Number.isInteger(val)) {
43
43
  if (val < 0) {
44
44
  throw new Error('value must be an unsigned integer');
45
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"uint-64.js","sourceRoot":"","sources":["../../src/types/uint-64.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"uint-64.js","sourceRoot":"","sources":["../../src/types/uint-64.ts"],"names":[],"mappings":"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"}
@@ -23,7 +23,7 @@ class UInt8 extends uint_1.UInt {
23
23
  if (val instanceof UInt8) {
24
24
  return val;
25
25
  }
26
- if (typeof val === 'number') {
26
+ if (typeof val === 'number' && Number.isInteger(val)) {
27
27
  UInt8.checkUintRange(val, 0, 0xff);
28
28
  const buf = new Uint8Array(UInt8.width);
29
29
  (0, utils_2.writeUInt8)(buf, val, 0);
@@ -1 +1 @@
1
- {"version":3,"file":"uint-8.js","sourceRoot":"","sources":["../../src/types/uint-8.ts"],"names":[],"mappings":";;;AAAA,iCAA6B;AAE7B,mDAAoD;AACpD,oCAAqC;AAErC;;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;YAC3B,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;;AAGM,sBAAK;AA1Cc,WAAK,GAAW,CAAC,GAAG,CAAC,CAAA,CAAC,IAAI;AACpC,kBAAY,GAAU,IAAI,KAAK,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"uint-8.js","sourceRoot":"","sources":["../../src/types/uint-8.ts"],"names":[],"mappings":";;;AAAA,iCAA6B;AAE7B,mDAAoD;AACpD,oCAAqC;AAErC;;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;;AAGM,sBAAK;AA1Cc,WAAK,GAAW,CAAC,GAAG,CAAC,CAAA,CAAC,IAAI;AACpC,kBAAY,GAAU,IAAI,KAAK,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ripple-binary-codec",
3
- "version": "2.6.0",
3
+ "version": "2.7.0",
4
4
  "description": "XRP Ledger binary codec",
5
5
  "files": [
6
6
  "dist/*",
@@ -731,7 +731,7 @@
731
731
  }
732
732
  ],
733
733
  [
734
- "PreviousPaymentDate",
734
+ "PreviousPaymentDueDate",
735
735
  {
736
736
  "isSerialized": true,
737
737
  "isSigningField": true,
@@ -3549,6 +3549,7 @@
3549
3549
  "tecXCHAIN_SELF_COMMIT": 184,
3550
3550
  "tecXCHAIN_SENDING_ACCOUNT_MISMATCH": 179,
3551
3551
  "tecXCHAIN_WRONG_CHAIN": 176,
3552
+
3552
3553
  "tefALREADY": -198,
3553
3554
  "tefBAD_ADD_AUTH": -197,
3554
3555
  "tefBAD_AUTH": -196,
@@ -3571,6 +3572,7 @@
3571
3572
  "tefPAST_SEQ": -190,
3572
3573
  "tefTOO_BIG": -181,
3573
3574
  "tefWRONG_PRIOR": -189,
3575
+
3574
3576
  "telBAD_DOMAIN": -398,
3575
3577
  "telBAD_PATH_COUNT": -397,
3576
3578
  "telBAD_PUBLIC_KEY": -396,
@@ -3588,6 +3590,7 @@
3588
3590
  "telNO_DST_PARTIAL": -393,
3589
3591
  "telREQUIRES_NETWORK_ID": -385,
3590
3592
  "telWRONG_NETWORK": -386,
3593
+
3591
3594
  "temARRAY_EMPTY": -253,
3592
3595
  "temARRAY_TOO_LARGE": -252,
3593
3596
  "temBAD_AMM_TOKENS": -261,
@@ -3638,6 +3641,7 @@
3638
3641
  "temXCHAIN_BRIDGE_BAD_REWARD_AMOUNT": -255,
3639
3642
  "temXCHAIN_BRIDGE_NONDOOR_OWNER": -257,
3640
3643
  "temXCHAIN_EQUAL_DOOR_ACCOUNTS": -260,
3644
+
3641
3645
  "terADDRESS_COLLISION": -86,
3642
3646
  "terFUNDS_SPENT": -98,
3643
3647
  "terINSUF_FEE_B": -97,
@@ -3653,6 +3657,7 @@
3653
3657
  "terPRE_TICKET": -88,
3654
3658
  "terQUEUED": -89,
3655
3659
  "terRETRY": -99,
3660
+
3656
3661
  "tesSUCCESS": 0
3657
3662
  },
3658
3663
  "TRANSACTION_TYPES": {
@@ -9,7 +9,7 @@ class Hash128 extends Hash {
9
9
  static readonly ZERO_128: Hash128 = new Hash128(new Uint8Array(Hash128.width))
10
10
 
11
11
  constructor(bytes: Uint8Array) {
12
- if (bytes && bytes.byteLength === 0) {
12
+ if (bytes?.byteLength === 0) {
13
13
  bytes = Hash128.ZERO_128.bytes
14
14
  }
15
15
 
@@ -8,7 +8,7 @@ class Hash160 extends Hash {
8
8
  static readonly ZERO_160: Hash160 = new Hash160(new Uint8Array(Hash160.width))
9
9
 
10
10
  constructor(bytes?: Uint8Array) {
11
- if (bytes && bytes.byteLength === 0) {
11
+ if (bytes?.byteLength === 0) {
12
12
  bytes = Hash160.ZERO_160.bytes
13
13
  }
14
14
 
@@ -8,7 +8,7 @@ class Hash192 extends Hash {
8
8
  static readonly ZERO_192: Hash192 = new Hash192(new Uint8Array(Hash192.width))
9
9
 
10
10
  constructor(bytes?: Uint8Array) {
11
- if (bytes && bytes.byteLength === 0) {
11
+ if (bytes?.byteLength === 0) {
12
12
  bytes = Hash192.ZERO_192.bytes
13
13
  }
14
14
 
@@ -6,6 +6,7 @@ import { Hash128 } from './hash-128'
6
6
  import { Hash160 } from './hash-160'
7
7
  import { Hash192 } from './hash-192'
8
8
  import { Hash256 } from './hash-256'
9
+ import { Int32 } from './int-32'
9
10
  import { Issue } from './issue'
10
11
  import { STNumber } from './st-number'
11
12
  import { PathSet } from './path-set'
@@ -29,6 +30,7 @@ const coreTypes: Record<string, typeof SerializedType> = {
29
30
  Hash160,
30
31
  Hash192,
31
32
  Hash256,
33
+ Int32,
32
34
  Issue,
33
35
  Number: STNumber,
34
36
  PathSet,
@@ -57,6 +59,7 @@ export {
57
59
  Hash160,
58
60
  Hash192,
59
61
  Hash256,
62
+ Int32,
60
63
  PathSet,
61
64
  STArray,
62
65
  STObject,
@@ -0,0 +1,72 @@
1
+ import { Int } from './int'
2
+ import { BinaryParser } from '../serdes/binary-parser'
3
+ import { readInt32BE, writeInt32BE } from '../utils'
4
+
5
+ /**
6
+ * Derived Int class for serializing/deserializing signed 32-bit integers.
7
+ */
8
+ class Int32 extends Int {
9
+ protected static readonly width: number = 32 / 8 // 4 bytes
10
+ static readonly defaultInt32: Int32 = new Int32(new Uint8Array(Int32.width))
11
+
12
+ // Signed 32-bit integer range
13
+ static readonly MIN_VALUE: number = -2147483648 // -2^31
14
+ static readonly MAX_VALUE: number = 2147483647 // 2^31 - 1
15
+
16
+ constructor(bytes: Uint8Array) {
17
+ super(bytes ?? Int32.defaultInt32.bytes)
18
+ }
19
+
20
+ /**
21
+ * Construct an Int32 from a BinaryParser
22
+ *
23
+ * @param parser BinaryParser to read Int32 from
24
+ * @returns An Int32 object
25
+ */
26
+ static fromParser(parser: BinaryParser): Int {
27
+ return new Int32(parser.read(Int32.width))
28
+ }
29
+
30
+ /**
31
+ * Construct an Int32 object from a number or string
32
+ *
33
+ * @param val Int32 object, number, or string
34
+ * @returns An Int32 object
35
+ */
36
+ static from<T extends Int32 | number | string>(val: T): Int32 {
37
+ if (val instanceof Int32) {
38
+ return val
39
+ }
40
+
41
+ const buf = new Uint8Array(Int32.width)
42
+
43
+ if (typeof val === 'string') {
44
+ const num = Number(val)
45
+ if (!Number.isFinite(num) || !Number.isInteger(num)) {
46
+ throw new Error(`Cannot construct Int32 from string: ${val}`)
47
+ }
48
+ Int32.checkIntRange('Int32', num, Int32.MIN_VALUE, Int32.MAX_VALUE)
49
+ writeInt32BE(buf, num, 0)
50
+ return new Int32(buf)
51
+ }
52
+
53
+ if (typeof val === 'number' && Number.isInteger(val)) {
54
+ Int32.checkIntRange('Int32', val, Int32.MIN_VALUE, Int32.MAX_VALUE)
55
+ writeInt32BE(buf, val, 0)
56
+ return new Int32(buf)
57
+ }
58
+
59
+ throw new Error('Cannot construct Int32 from given value')
60
+ }
61
+
62
+ /**
63
+ * Get the value of the Int32 object
64
+ *
65
+ * @returns the signed 32-bit integer represented by this.bytes
66
+ */
67
+ valueOf(): number {
68
+ return readInt32BE(this.bytes, 0)
69
+ }
70
+ }
71
+
72
+ export { Int32 }
@@ -0,0 +1,75 @@
1
+ import { Comparable } from './serialized-type'
2
+
3
+ /**
4
+ * Compare numbers and bigInts n1 and n2
5
+ *
6
+ * @param n1 First object to compare
7
+ * @param n2 Second object to compare
8
+ * @returns -1, 0, or 1, depending on how the two objects compare
9
+ */
10
+ function compare(n1: number | bigint, n2: number | bigint): number {
11
+ return n1 < n2 ? -1 : n1 == n2 ? 0 : 1
12
+ }
13
+
14
+ /**
15
+ * Base class for serializing and deserializing signed integers.
16
+ */
17
+ abstract class Int extends Comparable<Int | number> {
18
+ protected static width: number
19
+
20
+ constructor(bytes: Uint8Array) {
21
+ super(bytes)
22
+ }
23
+
24
+ /**
25
+ * Overload of compareTo for Comparable
26
+ *
27
+ * @param other other Int to compare this to
28
+ * @returns -1, 0, or 1 depending on how the objects relate to each other
29
+ */
30
+ compareTo(other: Int | number): number {
31
+ return compare(this.valueOf(), other.valueOf())
32
+ }
33
+
34
+ /**
35
+ * Convert an Int object to JSON
36
+ *
37
+ * @returns number or string represented by this.bytes
38
+ */
39
+ toJSON(): number | string {
40
+ const val = this.valueOf()
41
+ return typeof val === 'number' ? val : val.toString()
42
+ }
43
+
44
+ /**
45
+ * Get the value of the Int represented by this.bytes
46
+ *
47
+ * @returns the value
48
+ */
49
+ abstract valueOf(): number | bigint
50
+
51
+ /**
52
+ * Validate that a number is within the specified signed integer range
53
+ *
54
+ * @param typeName The name of the type (for error messages)
55
+ * @param val The number to validate
56
+ * @param min The minimum allowed value
57
+ * @param max The maximum allowed value
58
+ * @throws Error if the value is out of range
59
+ */
60
+ // eslint-disable-next-line max-params -- for error clarity in browsers
61
+ static checkIntRange(
62
+ typeName: string,
63
+ val: number | bigint,
64
+ min: number | bigint,
65
+ max: number | bigint,
66
+ ): void {
67
+ if (val < min || val > max) {
68
+ throw new Error(
69
+ `Invalid ${typeName}: ${val} must be >= ${min} and <= ${max}`,
70
+ )
71
+ }
72
+ }
73
+ }
74
+
75
+ export { Int }