ripple-binary-codec 2.7.0-smartescrow.0 → 2.8.0-smartcontract.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 (210) hide show
  1. package/dist/enums/definitions.json +173 -270
  2. package/dist/enums/src/enums/definitions.json +173 -270
  3. package/dist/quality.js +15 -3
  4. package/dist/quality.js.map +1 -1
  5. package/dist/serdes/binary-parser.js +8 -2
  6. package/dist/serdes/binary-parser.js.map +1 -1
  7. package/dist/serdes/binary-serializer.d.ts +1 -1
  8. package/dist/serdes/binary-serializer.js +2 -2
  9. package/dist/serdes/binary-serializer.js.map +1 -1
  10. package/dist/src/enums/definitions.json +173 -270
  11. package/dist/src/quality.js +15 -3
  12. package/dist/src/quality.js.map +1 -1
  13. package/dist/src/serdes/binary-parser.js +8 -2
  14. package/dist/src/serdes/binary-parser.js.map +1 -1
  15. package/dist/src/serdes/binary-serializer.d.ts +1 -1
  16. package/dist/src/serdes/binary-serializer.js +2 -2
  17. package/dist/src/serdes/binary-serializer.js.map +1 -1
  18. package/dist/src/types/account-id.d.ts +2 -0
  19. package/dist/src/types/account-id.js +4 -0
  20. package/dist/src/types/account-id.js.map +1 -1
  21. package/dist/src/types/amount.d.ts +2 -1
  22. package/dist/src/types/amount.js +25 -4
  23. package/dist/src/types/amount.js.map +1 -1
  24. package/dist/src/types/blob.d.ts +2 -1
  25. package/dist/src/types/blob.js +3 -0
  26. package/dist/src/types/blob.js.map +1 -1
  27. package/dist/src/types/currency.d.ts +2 -0
  28. package/dist/src/types/currency.js +4 -0
  29. package/dist/src/types/currency.js.map +1 -1
  30. package/dist/src/types/data.d.ts +86 -0
  31. package/dist/src/types/data.js +252 -0
  32. package/dist/src/types/data.js.map +1 -0
  33. package/dist/src/types/dataType.d.ts +94 -0
  34. package/dist/src/types/dataType.js +145 -0
  35. package/dist/src/types/dataType.js.map +1 -0
  36. package/dist/src/types/hash-128.d.ts +2 -0
  37. package/dist/src/types/hash-128.js +4 -0
  38. package/dist/src/types/hash-128.js.map +1 -1
  39. package/dist/src/types/hash-160.d.ts +2 -0
  40. package/dist/src/types/hash-160.js +4 -0
  41. package/dist/src/types/hash-160.js.map +1 -1
  42. package/dist/src/types/hash-192.d.ts +2 -0
  43. package/dist/src/types/hash-192.js +4 -0
  44. package/dist/src/types/hash-192.js.map +1 -1
  45. package/dist/src/types/hash-256.d.ts +2 -0
  46. package/dist/src/types/hash-256.js +4 -0
  47. package/dist/src/types/hash-256.js.map +1 -1
  48. package/dist/src/types/index.d.ts +3 -1
  49. package/dist/src/types/index.js +7 -1
  50. package/dist/src/types/index.js.map +1 -1
  51. package/dist/src/types/int-32.d.ts +17 -8
  52. package/dist/src/types/int-32.js +25 -11
  53. package/dist/src/types/int-32.js.map +1 -1
  54. package/dist/src/types/int.d.ts +38 -0
  55. package/dist/src/types/int.js +57 -0
  56. package/dist/src/types/int.js.map +1 -0
  57. package/dist/src/types/issue.d.ts +2 -1
  58. package/dist/src/types/issue.js +3 -0
  59. package/dist/src/types/issue.js.map +1 -1
  60. package/dist/src/types/json.d.ts +173 -0
  61. package/dist/src/types/json.js +531 -0
  62. package/dist/src/types/json.js.map +1 -0
  63. package/dist/src/types/path-set.d.ts +2 -1
  64. package/dist/src/types/path-set.js +3 -0
  65. package/dist/src/types/path-set.js.map +1 -1
  66. package/dist/src/types/serialized-type.d.ts +43 -0
  67. package/dist/src/types/serialized-type.js +63 -1
  68. package/dist/src/types/serialized-type.js.map +1 -1
  69. package/dist/src/types/st-array.d.ts +2 -1
  70. package/dist/src/types/st-array.js +3 -0
  71. package/dist/src/types/st-array.js.map +1 -1
  72. package/dist/src/types/st-number.d.ts +2 -1
  73. package/dist/src/types/st-number.js +3 -0
  74. package/dist/src/types/st-number.js.map +1 -1
  75. package/dist/src/types/st-object.d.ts +2 -1
  76. package/dist/src/types/st-object.js +9 -1
  77. package/dist/src/types/st-object.js.map +1 -1
  78. package/dist/src/types/uint-16.d.ts +2 -0
  79. package/dist/src/types/uint-16.js +4 -0
  80. package/dist/src/types/uint-16.js.map +1 -1
  81. package/dist/src/types/uint-32.d.ts +2 -0
  82. package/dist/src/types/uint-32.js +4 -0
  83. package/dist/src/types/uint-32.js.map +1 -1
  84. package/dist/src/types/uint-64.d.ts +2 -0
  85. package/dist/src/types/uint-64.js +4 -0
  86. package/dist/src/types/uint-64.js.map +1 -1
  87. package/dist/src/types/uint-8.d.ts +2 -0
  88. package/dist/src/types/uint-8.js +4 -0
  89. package/dist/src/types/uint-8.js.map +1 -1
  90. package/dist/src/types/vector-256.d.ts +2 -1
  91. package/dist/src/types/vector-256.js +3 -0
  92. package/dist/src/types/vector-256.js.map +1 -1
  93. package/dist/src/types/xchain-bridge.d.ts +2 -1
  94. package/dist/src/types/xchain-bridge.js +3 -0
  95. package/dist/src/types/xchain-bridge.js.map +1 -1
  96. package/dist/src/utils.js +1 -1
  97. package/dist/src/utils.js.map +1 -1
  98. package/dist/tsconfig.tsbuildinfo +1 -1
  99. package/dist/types/account-id.d.ts +2 -0
  100. package/dist/types/account-id.js +4 -0
  101. package/dist/types/account-id.js.map +1 -1
  102. package/dist/types/amount.d.ts +2 -1
  103. package/dist/types/amount.js +25 -4
  104. package/dist/types/amount.js.map +1 -1
  105. package/dist/types/blob.d.ts +2 -1
  106. package/dist/types/blob.js +3 -0
  107. package/dist/types/blob.js.map +1 -1
  108. package/dist/types/currency.d.ts +2 -0
  109. package/dist/types/currency.js +4 -0
  110. package/dist/types/currency.js.map +1 -1
  111. package/dist/types/data.d.ts +86 -0
  112. package/dist/types/data.js +252 -0
  113. package/dist/types/data.js.map +1 -0
  114. package/dist/types/dataType.d.ts +94 -0
  115. package/dist/types/dataType.js +145 -0
  116. package/dist/types/dataType.js.map +1 -0
  117. package/dist/types/hash-128.d.ts +2 -0
  118. package/dist/types/hash-128.js +4 -0
  119. package/dist/types/hash-128.js.map +1 -1
  120. package/dist/types/hash-160.d.ts +2 -0
  121. package/dist/types/hash-160.js +4 -0
  122. package/dist/types/hash-160.js.map +1 -1
  123. package/dist/types/hash-192.d.ts +2 -0
  124. package/dist/types/hash-192.js +4 -0
  125. package/dist/types/hash-192.js.map +1 -1
  126. package/dist/types/hash-256.d.ts +2 -0
  127. package/dist/types/hash-256.js +4 -0
  128. package/dist/types/hash-256.js.map +1 -1
  129. package/dist/types/index.d.ts +3 -1
  130. package/dist/types/index.js +7 -1
  131. package/dist/types/index.js.map +1 -1
  132. package/dist/types/int-32.d.ts +17 -8
  133. package/dist/types/int-32.js +25 -11
  134. package/dist/types/int-32.js.map +1 -1
  135. package/dist/types/int.d.ts +38 -0
  136. package/dist/types/int.js +57 -0
  137. package/dist/types/int.js.map +1 -0
  138. package/dist/types/issue.d.ts +2 -1
  139. package/dist/types/issue.js +3 -0
  140. package/dist/types/issue.js.map +1 -1
  141. package/dist/types/json.d.ts +173 -0
  142. package/dist/types/json.js +531 -0
  143. package/dist/types/json.js.map +1 -0
  144. package/dist/types/path-set.d.ts +2 -1
  145. package/dist/types/path-set.js +3 -0
  146. package/dist/types/path-set.js.map +1 -1
  147. package/dist/types/serialized-type.d.ts +43 -0
  148. package/dist/types/serialized-type.js +63 -1
  149. package/dist/types/serialized-type.js.map +1 -1
  150. package/dist/types/st-array.d.ts +2 -1
  151. package/dist/types/st-array.js +3 -0
  152. package/dist/types/st-array.js.map +1 -1
  153. package/dist/types/st-number.d.ts +2 -1
  154. package/dist/types/st-number.js +3 -0
  155. package/dist/types/st-number.js.map +1 -1
  156. package/dist/types/st-object.d.ts +2 -1
  157. package/dist/types/st-object.js +9 -1
  158. package/dist/types/st-object.js.map +1 -1
  159. package/dist/types/uint-16.d.ts +2 -0
  160. package/dist/types/uint-16.js +4 -0
  161. package/dist/types/uint-16.js.map +1 -1
  162. package/dist/types/uint-32.d.ts +2 -0
  163. package/dist/types/uint-32.js +4 -0
  164. package/dist/types/uint-32.js.map +1 -1
  165. package/dist/types/uint-64.d.ts +2 -0
  166. package/dist/types/uint-64.js +4 -0
  167. package/dist/types/uint-64.js.map +1 -1
  168. package/dist/types/uint-8.d.ts +2 -0
  169. package/dist/types/uint-8.js +4 -0
  170. package/dist/types/uint-8.js.map +1 -1
  171. package/dist/types/vector-256.d.ts +2 -1
  172. package/dist/types/vector-256.js +3 -0
  173. package/dist/types/vector-256.js.map +1 -1
  174. package/dist/types/xchain-bridge.d.ts +2 -1
  175. package/dist/types/xchain-bridge.js +3 -0
  176. package/dist/types/xchain-bridge.js.map +1 -1
  177. package/dist/utils.js +1 -1
  178. package/dist/utils.js.map +1 -1
  179. package/package.json +2 -2
  180. package/src/enums/definitions.json +173 -270
  181. package/src/quality.ts +13 -3
  182. package/src/serdes/binary-parser.ts +12 -2
  183. package/src/serdes/binary-serializer.ts +2 -2
  184. package/src/types/account-id.ts +5 -0
  185. package/src/types/amount.ts +25 -6
  186. package/src/types/blob.ts +5 -1
  187. package/src/types/currency.ts +5 -0
  188. package/src/types/data.ts +294 -0
  189. package/src/types/dataType.ts +178 -0
  190. package/src/types/hash-128.ts +5 -0
  191. package/src/types/hash-160.ts +5 -0
  192. package/src/types/hash-192.ts +5 -0
  193. package/src/types/hash-256.ts +5 -0
  194. package/src/types/index.ts +6 -0
  195. package/src/types/int-32.ts +27 -12
  196. package/src/types/int.ts +75 -0
  197. package/src/types/issue.ts +5 -1
  198. package/src/types/json.ts +650 -0
  199. package/src/types/path-set.ts +5 -1
  200. package/src/types/serialized-type.ts +67 -0
  201. package/src/types/st-array.ts +5 -1
  202. package/src/types/st-number.ts +5 -1
  203. package/src/types/st-object.ts +12 -2
  204. package/src/types/uint-16.ts +5 -0
  205. package/src/types/uint-32.ts +5 -0
  206. package/src/types/uint-64.ts +6 -1
  207. package/src/types/uint-8.ts +5 -0
  208. package/src/types/vector-256.ts +5 -1
  209. package/src/types/xchain-bridge.ts +5 -1
  210. package/src/utils.ts +1 -1
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Currency = void 0;
4
4
  const hash_160_1 = require("./hash-160");
5
5
  const utils_1 = require("@xrplf/isomorphic/utils");
6
+ const serialized_type_1 = require("./serialized-type");
6
7
  const XRP_HEX_REGEX = /^0{40}$/;
7
8
  const ISO_REGEX = /^[A-Z0-9a-z?!@#$%^&*(){}[\]|]{3}$/;
8
9
  const HEX_REGEX = /^[A-F0-9]{40}$/;
@@ -121,6 +122,9 @@ class Currency extends hash_160_1.Hash160 {
121
122
  }
122
123
  return (0, utils_1.bytesToHex)(this.bytes);
123
124
  }
125
+ getSType() {
126
+ return serialized_type_1.SerializedTypeID.STI_CURRENCY;
127
+ }
124
128
  }
125
129
  exports.Currency = Currency;
126
130
  Currency.XRP = new Currency(new Uint8Array(20));
@@ -1 +1 @@
1
- {"version":3,"file":"currency.js","sourceRoot":"","sources":["../../src/types/currency.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"currency.js","sourceRoot":"","sources":["../../src/types/currency.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ import { BinaryParser } from '../serdes/binary-parser';
2
+ import { JsonObject, SerializedType, SerializedTypeID } from './serialized-type';
3
+ /**
4
+ * Interface for Data JSON representation
5
+ */
6
+ interface DataJSON extends JsonObject {
7
+ type: string;
8
+ value: string | number | JsonObject;
9
+ }
10
+ /**
11
+ * STData: Encodes XRPL's "Data" type.
12
+ *
13
+ * This type wraps both a SerializedTypeID and the actual data value.
14
+ * It's encoded as a 2-byte type ID followed by the serialized data.
15
+ *
16
+ * Usage:
17
+ * Data.from({ type: "Amount", value: "1000000" })
18
+ * Data.from({ type: "UInt64", value: "123456789" })
19
+ * Data.fromParser(parser)
20
+ */
21
+ declare class Data extends SerializedType {
22
+ static readonly ZERO_DATA: Data;
23
+ /**
24
+ * Construct Data from bytes
25
+ * @param bytes - Uint8Array containing type ID and data
26
+ */
27
+ constructor(bytes: Uint8Array);
28
+ /**
29
+ * Create Data from various input types
30
+ *
31
+ * @param value - Can be:
32
+ * - Data instance (returns as-is)
33
+ * - DataJSON object with 'type' and 'value' fields
34
+ * @returns Data instance
35
+ * @throws Error if value type is not supported
36
+ */
37
+ static from(value: unknown): Data;
38
+ /**
39
+ * Create Data from JSON representation
40
+ *
41
+ * @param json - Object with 'type' and 'value' fields
42
+ * @returns Data instance
43
+ * @throws Error if type is not supported
44
+ */
45
+ static fromJSON(json: DataJSON): Data;
46
+ /**
47
+ * Read Data from a BinaryParser stream
48
+ *
49
+ * @param parser - BinaryParser positioned at the start of Data
50
+ * @returns Data instance
51
+ */
52
+ static fromParser(parser: BinaryParser): Data;
53
+ /**
54
+ * Get the inner SerializedTypeID
55
+ *
56
+ * @returns The inner type ID
57
+ */
58
+ getInnerType(): SerializedTypeID;
59
+ /**
60
+ * Get the string representation of the inner type
61
+ *
62
+ * @returns String name of the type
63
+ */
64
+ getInnerTypeString(): string;
65
+ /**
66
+ * Get the data value
67
+ *
68
+ * @returns The stored data value
69
+ */
70
+ getValue(): SerializedType;
71
+ /**
72
+ * Convert to JSON representation
73
+ *
74
+ * @returns JSON object with 'type' and 'value' fields
75
+ */
76
+ toJSON(): DataJSON;
77
+ /**
78
+ * Compare with another Data for equality
79
+ *
80
+ * @param other - Another Data to compare with
81
+ * @returns true if both have the same inner type and data
82
+ */
83
+ equals(other: Data): boolean;
84
+ getSType(): SerializedTypeID;
85
+ }
86
+ export { Data };
@@ -0,0 +1,252 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Data = void 0;
4
+ const binary_parser_1 = require("../serdes/binary-parser");
5
+ const serialized_type_1 = require("./serialized-type");
6
+ const utils_1 = require("../utils");
7
+ const utils_2 = require("@xrplf/isomorphic/utils");
8
+ const hash_128_1 = require("./hash-128");
9
+ const hash_160_1 = require("./hash-160");
10
+ const hash_192_1 = require("./hash-192");
11
+ const hash_256_1 = require("./hash-256");
12
+ const account_id_1 = require("./account-id");
13
+ const amount_1 = require("./amount");
14
+ const blob_1 = require("./blob");
15
+ const currency_1 = require("./currency");
16
+ const st_number_1 = require("./st-number");
17
+ const issue_1 = require("./issue");
18
+ const uint_8_1 = require("./uint-8");
19
+ const uint_16_1 = require("./uint-16");
20
+ const uint_32_1 = require("./uint-32");
21
+ const uint_64_1 = require("./uint-64");
22
+ const binary_1 = require("../binary");
23
+ /**
24
+ * Map from SerializedTypeID to the corresponding type class.
25
+ * Types listed here use standard from()/fromParser()/toBytes() without
26
+ * any extra framing (unlike VL and Account which need length prefixes).
27
+ */
28
+ const SIMPLE_TYPE_MAP = {
29
+ [serialized_type_1.SerializedTypeID.STI_UINT8]: uint_8_1.UInt8,
30
+ [serialized_type_1.SerializedTypeID.STI_UINT16]: uint_16_1.UInt16,
31
+ [serialized_type_1.SerializedTypeID.STI_UINT32]: uint_32_1.UInt32,
32
+ [serialized_type_1.SerializedTypeID.STI_UINT64]: uint_64_1.UInt64,
33
+ [serialized_type_1.SerializedTypeID.STI_UINT128]: hash_128_1.Hash128,
34
+ [serialized_type_1.SerializedTypeID.STI_UINT160]: hash_160_1.Hash160,
35
+ [serialized_type_1.SerializedTypeID.STI_UINT192]: hash_192_1.Hash192,
36
+ [serialized_type_1.SerializedTypeID.STI_UINT256]: hash_256_1.Hash256,
37
+ [serialized_type_1.SerializedTypeID.STI_AMOUNT]: amount_1.Amount,
38
+ [serialized_type_1.SerializedTypeID.STI_ISSUE]: issue_1.Issue,
39
+ [serialized_type_1.SerializedTypeID.STI_CURRENCY]: currency_1.Currency,
40
+ [serialized_type_1.SerializedTypeID.STI_NUMBER]: st_number_1.STNumber,
41
+ };
42
+ /**
43
+ * Types whose from() method expects a numeric argument.
44
+ * For these, json.value is coerced to a number before calling from().
45
+ */
46
+ const NUMERIC_TYPES = new Set([
47
+ serialized_type_1.SerializedTypeID.STI_UINT8,
48
+ serialized_type_1.SerializedTypeID.STI_UINT16,
49
+ serialized_type_1.SerializedTypeID.STI_UINT32,
50
+ ]);
51
+ /**
52
+ * STData: Encodes XRPL's "Data" type.
53
+ *
54
+ * This type wraps both a SerializedTypeID and the actual data value.
55
+ * It's encoded as a 2-byte type ID followed by the serialized data.
56
+ *
57
+ * Usage:
58
+ * Data.from({ type: "Amount", value: "1000000" })
59
+ * Data.from({ type: "UInt64", value: "123456789" })
60
+ * Data.fromParser(parser)
61
+ */
62
+ class Data extends serialized_type_1.SerializedType {
63
+ /**
64
+ * Construct Data from bytes
65
+ * @param bytes - Uint8Array containing type ID and data
66
+ */
67
+ constructor(bytes) {
68
+ super(bytes !== null && bytes !== void 0 ? bytes : Data.ZERO_DATA.bytes);
69
+ }
70
+ /**
71
+ * Create Data from various input types
72
+ *
73
+ * @param value - Can be:
74
+ * - Data instance (returns as-is)
75
+ * - DataJSON object with 'type' and 'value' fields
76
+ * @returns Data instance
77
+ * @throws Error if value type is not supported
78
+ */
79
+ static from(value) {
80
+ if (value instanceof Data) {
81
+ return value;
82
+ }
83
+ if (typeof value === 'object' &&
84
+ value !== null &&
85
+ 'type' in value &&
86
+ 'value' in value) {
87
+ const json = value;
88
+ return Data.fromJSON(json);
89
+ }
90
+ throw new Error('Data.from: value must be Data instance or DataJSON object');
91
+ }
92
+ /**
93
+ * Create Data from JSON representation
94
+ *
95
+ * @param json - Object with 'type' and 'value' fields
96
+ * @returns Data instance
97
+ * @throws Error if type is not supported
98
+ */
99
+ static fromJSON(json) {
100
+ const typeId = serialized_type_1.TYPE_STRING_TO_ID[json.type];
101
+ if (typeId === undefined) {
102
+ throw new Error(`Data: unsupported type string: ${json.type}`);
103
+ }
104
+ let dataBytes;
105
+ const TypeClass = SIMPLE_TYPE_MAP[typeId];
106
+ if (TypeClass) {
107
+ // For UInt8/16/32, coerce value to number; all others pass through
108
+ const coercedValue = NUMERIC_TYPES.has(typeId)
109
+ ? typeof json.value === 'string'
110
+ ? parseInt(json.value, 10)
111
+ : Number(json.value)
112
+ : json.value;
113
+ dataBytes = TypeClass.from(coercedValue).toBytes();
114
+ }
115
+ else if (typeId === serialized_type_1.SerializedTypeID.STI_VL) {
116
+ const val = typeof json.value === 'string' ? json.value : json.value.toString();
117
+ dataBytes = blob_1.Blob.from(val).toBytes();
118
+ dataBytes = (0, utils_2.concat)([
119
+ binary_1.BinarySerializer.encodeVariableLength(dataBytes.length),
120
+ dataBytes,
121
+ ]);
122
+ }
123
+ else if (typeId === serialized_type_1.SerializedTypeID.STI_ACCOUNT) {
124
+ const val = typeof json.value === 'string' ? json.value : json.value.toString();
125
+ dataBytes = (0, utils_2.concat)([
126
+ new Uint8Array([0x14]),
127
+ account_id_1.AccountID.from(val).toBytes(),
128
+ ]);
129
+ }
130
+ else {
131
+ throw new Error(`Data.fromJSON(): unsupported type ID: ${typeId}`);
132
+ }
133
+ // Combine type header with data bytes
134
+ const typeBytes = new Uint8Array(2);
135
+ (0, utils_1.writeUInt16BE)(typeBytes, typeId, 0);
136
+ return new Data((0, utils_2.concat)([typeBytes, dataBytes]));
137
+ }
138
+ /**
139
+ * Read Data from a BinaryParser stream
140
+ *
141
+ * @param parser - BinaryParser positioned at the start of Data
142
+ * @returns Data instance
143
+ */
144
+ static fromParser(parser) {
145
+ // Read the 2-byte type ID
146
+ const typeBytes = parser.read(2);
147
+ const typeId = serialized_type_1.TYPE_NUMBER_TO_ID[(0, utils_1.readUInt16BE)(typeBytes, 0)];
148
+ let dataBytes;
149
+ const TypeClass = SIMPLE_TYPE_MAP[typeId];
150
+ if (TypeClass) {
151
+ dataBytes = TypeClass.fromParser(parser).toBytes();
152
+ }
153
+ else if (typeId === serialized_type_1.SerializedTypeID.STI_VL) {
154
+ const valueVL = parser.readVariableLength();
155
+ dataBytes = (0, utils_2.concat)([
156
+ binary_1.BinarySerializer.encodeVariableLength(valueVL.length),
157
+ valueVL,
158
+ ]);
159
+ }
160
+ else if (typeId === serialized_type_1.SerializedTypeID.STI_ACCOUNT) {
161
+ parser.skip(1);
162
+ dataBytes = (0, utils_2.concat)([
163
+ new Uint8Array([0x14]),
164
+ account_id_1.AccountID.fromParser(parser).toBytes(),
165
+ ]);
166
+ }
167
+ else {
168
+ throw new Error(`Data: unsupported type ID when parsing: ${typeId}`);
169
+ }
170
+ return new Data((0, utils_2.concat)([typeBytes, dataBytes]));
171
+ }
172
+ /**
173
+ * Get the inner SerializedTypeID
174
+ *
175
+ * @returns The inner type ID
176
+ */
177
+ getInnerType() {
178
+ return serialized_type_1.TYPE_NUMBER_TO_ID[(0, utils_1.readUInt16BE)(this.bytes, 0)];
179
+ }
180
+ /**
181
+ * Get the string representation of the inner type
182
+ *
183
+ * @returns String name of the type
184
+ */
185
+ getInnerTypeString() {
186
+ const innerType = this.getInnerType();
187
+ return serialized_type_1.TYPE_ID_TO_STRING[innerType] || innerType.toString();
188
+ }
189
+ /**
190
+ * Get the data value
191
+ *
192
+ * @returns The stored data value
193
+ */
194
+ getValue() {
195
+ const innerType = this.getInnerType();
196
+ const parser = new binary_parser_1.BinaryParser((0, utils_2.bytesToHex)(this.bytes.slice(2)));
197
+ const TypeClass = SIMPLE_TYPE_MAP[innerType];
198
+ if (TypeClass) {
199
+ return TypeClass.fromParser(parser);
200
+ }
201
+ if (innerType === serialized_type_1.SerializedTypeID.STI_VL) {
202
+ const vlLength = parser.readVariableLengthLength();
203
+ return blob_1.Blob.fromParser(parser, vlLength);
204
+ }
205
+ if (innerType === serialized_type_1.SerializedTypeID.STI_ACCOUNT) {
206
+ parser.skip(1);
207
+ return account_id_1.AccountID.fromParser(parser);
208
+ }
209
+ throw new Error(`Data.getValue(): unsupported type ID: ${typeof innerType}`);
210
+ }
211
+ /**
212
+ * Convert to JSON representation
213
+ *
214
+ * @returns JSON object with 'type' and 'value' fields
215
+ */
216
+ toJSON() {
217
+ return {
218
+ type: this.getInnerTypeString(),
219
+ value: this.getValue().toJSON(),
220
+ };
221
+ }
222
+ /**
223
+ * Compare with another Data for equality
224
+ *
225
+ * @param other - Another Data to compare with
226
+ * @returns true if both have the same inner type and data
227
+ */
228
+ equals(other) {
229
+ if (!(other instanceof Data)) {
230
+ return false;
231
+ }
232
+ // Compare bytes directly
233
+ if (this.bytes.length !== other.bytes.length) {
234
+ return false;
235
+ }
236
+ for (let i = 0; i < this.bytes.length; i++) {
237
+ if (this.bytes[i] !== other.bytes[i]) {
238
+ return false;
239
+ }
240
+ }
241
+ return true;
242
+ }
243
+ getSType() {
244
+ return serialized_type_1.SerializedTypeID.STI_DATA;
245
+ }
246
+ }
247
+ exports.Data = Data;
248
+ Data.ZERO_DATA = new Data((0, utils_2.concat)([
249
+ new Uint8Array([0x00, 0x01]),
250
+ new Uint8Array([0x00, 0x00]), // Value: two zero bytes for UINT16
251
+ ]));
252
+ //# sourceMappingURL=data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data.js","sourceRoot":"","sources":["../../src/types/data.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,94 @@
1
+ import { BinaryParser } from '../serdes/binary-parser';
2
+ import { JsonObject, SerializedType, SerializedTypeID } from './serialized-type';
3
+ /**
4
+ * Interface for DataType JSON representation
5
+ */
6
+ interface DataTypeJSON extends JsonObject {
7
+ type: string;
8
+ }
9
+ /**
10
+ * STDataType: Encodes XRPL's "DataType" type.
11
+ *
12
+ * This type wraps an inner SerializedTypeID to indicate what type of data
13
+ * a field contains. It's encoded as a 2-byte unsigned integer representing
14
+ * the inner type.
15
+ *
16
+ * Usage:
17
+ * DataType.from({ type: "Amount" })
18
+ * DataType.from("UInt64")
19
+ * DataType.fromParser(parser)
20
+ */
21
+ declare class DataType extends SerializedType {
22
+ private innerType;
23
+ /**
24
+ * Default bytes for DataType (STI_NOTPRESENT)
25
+ */
26
+ static readonly defaultBytes: Uint8Array;
27
+ /**
28
+ * Construct a DataType from bytes
29
+ * @param bytes - 2-byte Uint8Array containing the inner type ID
30
+ * @param innerType - Optional explicit inner type (used when constructing from value)
31
+ * @throws Error if bytes is not a 2-byte Uint8Array
32
+ */
33
+ constructor(bytes?: Uint8Array, innerType?: SerializedTypeID);
34
+ /**
35
+ * Construct from various input types
36
+ *
37
+ * @param value - Can be:
38
+ * - DataType instance (returns as-is)
39
+ * - DataTypeJSON object with 'type' field
40
+ * - String type name (e.g., "Amount", "UInt64")
41
+ * - SerializedTypeID enum value
42
+ * @returns DataType instance
43
+ * @throws Error if value type is not supported or type string is unknown
44
+ */
45
+ static from(value: unknown): DataType;
46
+ /**
47
+ * Construct from a type string
48
+ *
49
+ * @param typeStr - Type string like "Amount", "UInt64", etc.
50
+ * @returns DataType instance
51
+ * @throws Error if type string is not recognized
52
+ */
53
+ static fromTypeString(typeStr: string): DataType;
54
+ /**
55
+ * Construct from a SerializedTypeID
56
+ *
57
+ * @param typeId - The SerializedTypeID enum value
58
+ * @returns DataType instance
59
+ */
60
+ static fromTypeId(typeId: SerializedTypeID): DataType;
61
+ /**
62
+ * Read a DataType from a BinaryParser stream (2 bytes)
63
+ *
64
+ * @param parser - BinaryParser positioned at the start of a DataType
65
+ * @returns DataType instance
66
+ */
67
+ static fromParser(parser: BinaryParser): DataType;
68
+ /**
69
+ * Get the inner SerializedTypeID
70
+ *
71
+ * @returns The inner type ID
72
+ */
73
+ getInnerType(): SerializedTypeID;
74
+ /**
75
+ * Set the inner SerializedTypeID
76
+ *
77
+ * @param typeId - The new inner type ID
78
+ */
79
+ setInnerType(typeId: SerializedTypeID): void;
80
+ /**
81
+ * Get the string representation of the inner type
82
+ *
83
+ * @returns String name of the type, or numeric string if unknown
84
+ */
85
+ getInnerTypeString(): string;
86
+ /**
87
+ * Convert to JSON representation
88
+ *
89
+ * @returns JSON object with 'type' field
90
+ */
91
+ toJSON(): DataTypeJSON;
92
+ getSType(): SerializedTypeID;
93
+ }
94
+ export { DataType };
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DataType = void 0;
4
+ const serialized_type_1 = require("./serialized-type");
5
+ const utils_1 = require("../utils");
6
+ /**
7
+ * STDataType: Encodes XRPL's "DataType" type.
8
+ *
9
+ * This type wraps an inner SerializedTypeID to indicate what type of data
10
+ * a field contains. It's encoded as a 2-byte unsigned integer representing
11
+ * the inner type.
12
+ *
13
+ * Usage:
14
+ * DataType.from({ type: "Amount" })
15
+ * DataType.from("UInt64")
16
+ * DataType.fromParser(parser)
17
+ */
18
+ class DataType extends serialized_type_1.SerializedType {
19
+ /**
20
+ * Construct a DataType from bytes
21
+ * @param bytes - 2-byte Uint8Array containing the inner type ID
22
+ * @param innerType - Optional explicit inner type (used when constructing from value)
23
+ * @throws Error if bytes is not a 2-byte Uint8Array
24
+ */
25
+ constructor(bytes, innerType) {
26
+ const used = bytes !== null && bytes !== void 0 ? bytes : DataType.defaultBytes;
27
+ if (!(used instanceof Uint8Array) || used.length !== 2) {
28
+ throw new Error(`DataType must be constructed from a 2-byte Uint8Array, got ${used === null || used === void 0 ? void 0 : used.length} bytes`);
29
+ }
30
+ super(used);
31
+ // If innerType is explicitly provided, use it; otherwise read from bytes
32
+ if (innerType !== undefined) {
33
+ this.innerType = innerType;
34
+ }
35
+ else {
36
+ this.innerType = (0, utils_1.readUInt16BE)(used, 0);
37
+ }
38
+ }
39
+ /**
40
+ * Construct from various input types
41
+ *
42
+ * @param value - Can be:
43
+ * - DataType instance (returns as-is)
44
+ * - DataTypeJSON object with 'type' field
45
+ * - String type name (e.g., "Amount", "UInt64")
46
+ * - SerializedTypeID enum value
47
+ * @returns DataType instance
48
+ * @throws Error if value type is not supported or type string is unknown
49
+ */
50
+ static from(value) {
51
+ if (value instanceof DataType) {
52
+ return value;
53
+ }
54
+ if (typeof value === 'object' && value !== null && 'type' in value) {
55
+ const json = value;
56
+ return DataType.fromTypeString(json.type);
57
+ }
58
+ if (typeof value === 'string') {
59
+ return DataType.fromTypeString(value);
60
+ }
61
+ if (typeof value === 'number') {
62
+ return DataType.fromTypeId(value);
63
+ }
64
+ throw new Error('DataType.from: value must be DataType, DataTypeJSON, string, or SerializedTypeID');
65
+ }
66
+ /**
67
+ * Construct from a type string
68
+ *
69
+ * @param typeStr - Type string like "Amount", "UInt64", etc.
70
+ * @returns DataType instance
71
+ * @throws Error if type string is not recognized
72
+ */
73
+ static fromTypeString(typeStr) {
74
+ const typeId = serialized_type_1.TYPE_STRING_TO_ID[typeStr];
75
+ if (typeId === undefined) {
76
+ throw new Error(`DataType: unsupported type string: ${typeStr}`);
77
+ }
78
+ return DataType.fromTypeId(typeId);
79
+ }
80
+ /**
81
+ * Construct from a SerializedTypeID
82
+ *
83
+ * @param typeId - The SerializedTypeID enum value
84
+ * @returns DataType instance
85
+ */
86
+ static fromTypeId(typeId) {
87
+ const bytes = new Uint8Array(2);
88
+ (0, utils_1.writeUInt16BE)(bytes, typeId, 0);
89
+ return new DataType(bytes, typeId);
90
+ }
91
+ /**
92
+ * Read a DataType from a BinaryParser stream (2 bytes)
93
+ *
94
+ * @param parser - BinaryParser positioned at the start of a DataType
95
+ * @returns DataType instance
96
+ */
97
+ static fromParser(parser) {
98
+ const bytes = parser.read(2);
99
+ return new DataType(bytes);
100
+ }
101
+ /**
102
+ * Get the inner SerializedTypeID
103
+ *
104
+ * @returns The inner type ID
105
+ */
106
+ getInnerType() {
107
+ return this.innerType;
108
+ }
109
+ /**
110
+ * Set the inner SerializedTypeID
111
+ *
112
+ * @param typeId - The new inner type ID
113
+ */
114
+ setInnerType(typeId) {
115
+ this.innerType = typeId;
116
+ (0, utils_1.writeUInt16BE)(this.bytes, typeId, 0);
117
+ }
118
+ /**
119
+ * Get the string representation of the inner type
120
+ *
121
+ * @returns String name of the type, or numeric string if unknown
122
+ */
123
+ getInnerTypeString() {
124
+ return serialized_type_1.TYPE_ID_TO_STRING[this.innerType] || this.innerType.toString();
125
+ }
126
+ /**
127
+ * Convert to JSON representation
128
+ *
129
+ * @returns JSON object with 'type' field
130
+ */
131
+ toJSON() {
132
+ return {
133
+ type: this.getInnerTypeString(),
134
+ };
135
+ }
136
+ getSType() {
137
+ return serialized_type_1.SerializedTypeID.STI_DATATYPE;
138
+ }
139
+ }
140
+ exports.DataType = DataType;
141
+ /**
142
+ * Default bytes for DataType (STI_NOTPRESENT)
143
+ */
144
+ DataType.defaultBytes = new Uint8Array([0x00, 0x01]);
145
+ //# sourceMappingURL=dataType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataType.js","sourceRoot":"","sources":["../../src/types/dataType.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { Hash } from './hash';
2
+ import { SerializedTypeID } from './serialized-type';
2
3
  /**
3
4
  * Hash with a width of 128 bits
4
5
  */
@@ -12,5 +13,6 @@ declare class Hash128 extends Hash {
12
13
  * @returns hex String of this.bytes
13
14
  */
14
15
  toHex(): string;
16
+ getSType(): SerializedTypeID;
15
17
  }
16
18
  export { Hash128 };
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Hash128 = void 0;
4
4
  const hash_1 = require("./hash");
5
5
  const utils_1 = require("@xrplf/isomorphic/utils");
6
+ const serialized_type_1 = require("./serialized-type");
6
7
  /**
7
8
  * Hash with a width of 128 bits
8
9
  */
@@ -25,6 +26,9 @@ class Hash128 extends hash_1.Hash {
25
26
  }
26
27
  return hex;
27
28
  }
29
+ getSType() {
30
+ return serialized_type_1.SerializedTypeID.STI_UINT128;
31
+ }
28
32
  }
29
33
  exports.Hash128 = Hash128;
30
34
  Hash128.width = 16;
@@ -1 +1 @@
1
- {"version":3,"file":"hash-128.js","sourceRoot":"","sources":["../../src/types/hash-128.ts"],"names":[],"mappings":";;;AAAA,iCAA6B;AAC7B,mDAAoD;AAEpD;;GAEG;AACH,MAAM,OAAQ,SAAQ,WAAI;IAIxB,YAAY,KAAiB;QAC3B,IAAI,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,UAAU,MAAK,CAAC,EAAE;YAC3B,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;IAED;;;;OAIG;IACH,KAAK;QACH,MAAM,GAAG,GAAG,IAAA,kBAAU,EAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;QACtC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACpB,OAAO,EAAE,CAAA;SACV;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;;AAGM,0BAAO;AAzBE,aAAK,GAAG,EAAE,CAAA;AACV,gBAAQ,GAAY,IAAI,OAAO,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"hash-128.js","sourceRoot":"","sources":["../../src/types/hash-128.ts"],"names":[],"mappings":";;;AAAA,iCAA6B;AAC7B,mDAAoD;AACpD,uDAAoD;AAEpD;;GAEG;AACH,MAAM,OAAQ,SAAQ,WAAI;IAIxB,YAAY,KAAiB;QAC3B,IAAI,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,UAAU,MAAK,CAAC,EAAE;YAC3B,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;IAED;;;;OAIG;IACH,KAAK;QACH,MAAM,GAAG,GAAG,IAAA,kBAAU,EAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;QACtC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACpB,OAAO,EAAE,CAAA;SACV;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,QAAQ;QACN,OAAO,kCAAgB,CAAC,WAAW,CAAA;IACrC,CAAC;;AAGM,0BAAO;AA7BE,aAAK,GAAG,EAAE,CAAA;AACV,gBAAQ,GAAY,IAAI,OAAO,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA"}
@@ -1,4 +1,5 @@
1
1
  import { Hash } from './hash';
2
+ import { SerializedTypeID } from './serialized-type';
2
3
  /**
3
4
  * Hash with a width of 160 bits
4
5
  */
@@ -6,5 +7,6 @@ declare class Hash160 extends Hash {
6
7
  static readonly width = 20;
7
8
  static readonly ZERO_160: Hash160;
8
9
  constructor(bytes?: Uint8Array);
10
+ getSType(): SerializedTypeID;
9
11
  }
10
12
  export { Hash160 };