ripple-binary-codec 2.8.0-smartcontract.0 → 2.8.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 (181) hide show
  1. package/dist/enums/definitions.json +3261 -302
  2. package/dist/enums/src/enums/definitions.json +3261 -307
  3. package/dist/serdes/binary-serializer.d.ts +1 -1
  4. package/dist/serdes/binary-serializer.js +2 -2
  5. package/dist/serdes/binary-serializer.js.map +1 -1
  6. package/dist/src/enums/definitions.json +3261 -302
  7. package/dist/src/serdes/binary-serializer.d.ts +1 -1
  8. package/dist/src/serdes/binary-serializer.js +2 -2
  9. package/dist/src/serdes/binary-serializer.js.map +1 -1
  10. package/dist/src/types/account-id.d.ts +0 -2
  11. package/dist/src/types/account-id.js +0 -4
  12. package/dist/src/types/account-id.js.map +1 -1
  13. package/dist/src/types/amount.d.ts +1 -2
  14. package/dist/src/types/amount.js +0 -3
  15. package/dist/src/types/amount.js.map +1 -1
  16. package/dist/src/types/blob.d.ts +1 -2
  17. package/dist/src/types/blob.js +0 -3
  18. package/dist/src/types/blob.js.map +1 -1
  19. package/dist/src/types/currency.d.ts +0 -2
  20. package/dist/src/types/currency.js +0 -4
  21. package/dist/src/types/currency.js.map +1 -1
  22. package/dist/src/types/hash-128.d.ts +0 -2
  23. package/dist/src/types/hash-128.js +0 -4
  24. package/dist/src/types/hash-128.js.map +1 -1
  25. package/dist/src/types/hash-160.d.ts +0 -2
  26. package/dist/src/types/hash-160.js +0 -4
  27. package/dist/src/types/hash-160.js.map +1 -1
  28. package/dist/src/types/hash-192.d.ts +0 -2
  29. package/dist/src/types/hash-192.js +0 -4
  30. package/dist/src/types/hash-192.js.map +1 -1
  31. package/dist/src/types/hash-256.d.ts +0 -2
  32. package/dist/src/types/hash-256.js +0 -4
  33. package/dist/src/types/hash-256.js.map +1 -1
  34. package/dist/src/types/index.d.ts +1 -3
  35. package/dist/src/types/index.js +1 -7
  36. package/dist/src/types/index.js.map +1 -1
  37. package/dist/src/types/issue.d.ts +1 -2
  38. package/dist/src/types/issue.js +0 -3
  39. package/dist/src/types/issue.js.map +1 -1
  40. package/dist/src/types/path-set.d.ts +1 -2
  41. package/dist/src/types/path-set.js +0 -3
  42. package/dist/src/types/path-set.js.map +1 -1
  43. package/dist/src/types/serialized-type.d.ts +0 -43
  44. package/dist/src/types/serialized-type.js +1 -63
  45. package/dist/src/types/serialized-type.js.map +1 -1
  46. package/dist/src/types/st-array.d.ts +1 -2
  47. package/dist/src/types/st-array.js +0 -3
  48. package/dist/src/types/st-array.js.map +1 -1
  49. package/dist/src/types/st-number.d.ts +1 -2
  50. package/dist/src/types/st-number.js +0 -3
  51. package/dist/src/types/st-number.js.map +1 -1
  52. package/dist/src/types/st-object.d.ts +1 -2
  53. package/dist/src/types/st-object.js +1 -9
  54. package/dist/src/types/st-object.js.map +1 -1
  55. package/dist/src/types/uint-16.d.ts +0 -2
  56. package/dist/src/types/uint-16.js +0 -4
  57. package/dist/src/types/uint-16.js.map +1 -1
  58. package/dist/src/types/uint-32.d.ts +0 -2
  59. package/dist/src/types/uint-32.js +0 -4
  60. package/dist/src/types/uint-32.js.map +1 -1
  61. package/dist/src/types/uint-64.d.ts +0 -2
  62. package/dist/src/types/uint-64.js +0 -4
  63. package/dist/src/types/uint-64.js.map +1 -1
  64. package/dist/src/types/uint-8.d.ts +0 -2
  65. package/dist/src/types/uint-8.js +0 -4
  66. package/dist/src/types/uint-8.js.map +1 -1
  67. package/dist/src/types/vector-256.d.ts +1 -2
  68. package/dist/src/types/vector-256.js +0 -3
  69. package/dist/src/types/vector-256.js.map +1 -1
  70. package/dist/src/types/xchain-bridge.d.ts +1 -2
  71. package/dist/src/types/xchain-bridge.js +0 -3
  72. package/dist/src/types/xchain-bridge.js.map +1 -1
  73. package/dist/tsconfig.tsbuildinfo +1 -1
  74. package/dist/types/account-id.d.ts +0 -2
  75. package/dist/types/account-id.js +0 -4
  76. package/dist/types/account-id.js.map +1 -1
  77. package/dist/types/amount.d.ts +1 -2
  78. package/dist/types/amount.js +0 -3
  79. package/dist/types/amount.js.map +1 -1
  80. package/dist/types/blob.d.ts +1 -2
  81. package/dist/types/blob.js +0 -3
  82. package/dist/types/blob.js.map +1 -1
  83. package/dist/types/currency.d.ts +0 -2
  84. package/dist/types/currency.js +0 -4
  85. package/dist/types/currency.js.map +1 -1
  86. package/dist/types/hash-128.d.ts +0 -2
  87. package/dist/types/hash-128.js +0 -4
  88. package/dist/types/hash-128.js.map +1 -1
  89. package/dist/types/hash-160.d.ts +0 -2
  90. package/dist/types/hash-160.js +0 -4
  91. package/dist/types/hash-160.js.map +1 -1
  92. package/dist/types/hash-192.d.ts +0 -2
  93. package/dist/types/hash-192.js +0 -4
  94. package/dist/types/hash-192.js.map +1 -1
  95. package/dist/types/hash-256.d.ts +0 -2
  96. package/dist/types/hash-256.js +0 -4
  97. package/dist/types/hash-256.js.map +1 -1
  98. package/dist/types/index.d.ts +1 -3
  99. package/dist/types/index.js +1 -7
  100. package/dist/types/index.js.map +1 -1
  101. package/dist/types/issue.d.ts +1 -2
  102. package/dist/types/issue.js +0 -3
  103. package/dist/types/issue.js.map +1 -1
  104. package/dist/types/path-set.d.ts +1 -2
  105. package/dist/types/path-set.js +0 -3
  106. package/dist/types/path-set.js.map +1 -1
  107. package/dist/types/serialized-type.d.ts +0 -43
  108. package/dist/types/serialized-type.js +1 -63
  109. package/dist/types/serialized-type.js.map +1 -1
  110. package/dist/types/st-array.d.ts +1 -2
  111. package/dist/types/st-array.js +0 -3
  112. package/dist/types/st-array.js.map +1 -1
  113. package/dist/types/st-number.d.ts +1 -2
  114. package/dist/types/st-number.js +0 -3
  115. package/dist/types/st-number.js.map +1 -1
  116. package/dist/types/st-object.d.ts +1 -2
  117. package/dist/types/st-object.js +1 -9
  118. package/dist/types/st-object.js.map +1 -1
  119. package/dist/types/uint-16.d.ts +0 -2
  120. package/dist/types/uint-16.js +0 -4
  121. package/dist/types/uint-16.js.map +1 -1
  122. package/dist/types/uint-32.d.ts +0 -2
  123. package/dist/types/uint-32.js +0 -4
  124. package/dist/types/uint-32.js.map +1 -1
  125. package/dist/types/uint-64.d.ts +0 -2
  126. package/dist/types/uint-64.js +0 -4
  127. package/dist/types/uint-64.js.map +1 -1
  128. package/dist/types/uint-8.d.ts +0 -2
  129. package/dist/types/uint-8.js +0 -4
  130. package/dist/types/uint-8.js.map +1 -1
  131. package/dist/types/vector-256.d.ts +1 -2
  132. package/dist/types/vector-256.js +0 -3
  133. package/dist/types/vector-256.js.map +1 -1
  134. package/dist/types/xchain-bridge.d.ts +1 -2
  135. package/dist/types/xchain-bridge.js +0 -3
  136. package/dist/types/xchain-bridge.js.map +1 -1
  137. package/package.json +3 -3
  138. package/src/enums/definitions.json +3261 -307
  139. package/src/serdes/binary-serializer.ts +2 -2
  140. package/src/types/account-id.ts +0 -5
  141. package/src/types/amount.ts +1 -5
  142. package/src/types/blob.ts +1 -5
  143. package/src/types/currency.ts +0 -5
  144. package/src/types/hash-128.ts +0 -5
  145. package/src/types/hash-160.ts +0 -5
  146. package/src/types/hash-192.ts +0 -5
  147. package/src/types/hash-256.ts +0 -5
  148. package/src/types/index.ts +0 -6
  149. package/src/types/issue.ts +1 -5
  150. package/src/types/path-set.ts +1 -5
  151. package/src/types/serialized-type.ts +0 -67
  152. package/src/types/st-array.ts +1 -5
  153. package/src/types/st-number.ts +1 -5
  154. package/src/types/st-object.ts +2 -12
  155. package/src/types/uint-16.ts +0 -5
  156. package/src/types/uint-32.ts +0 -5
  157. package/src/types/uint-64.ts +0 -5
  158. package/src/types/uint-8.ts +0 -5
  159. package/src/types/vector-256.ts +1 -5
  160. package/src/types/xchain-bridge.ts +1 -5
  161. package/dist/src/types/data.d.ts +0 -86
  162. package/dist/src/types/data.js +0 -252
  163. package/dist/src/types/data.js.map +0 -1
  164. package/dist/src/types/dataType.d.ts +0 -94
  165. package/dist/src/types/dataType.js +0 -145
  166. package/dist/src/types/dataType.js.map +0 -1
  167. package/dist/src/types/json.d.ts +0 -173
  168. package/dist/src/types/json.js +0 -531
  169. package/dist/src/types/json.js.map +0 -1
  170. package/dist/types/data.d.ts +0 -86
  171. package/dist/types/data.js +0 -252
  172. package/dist/types/data.js.map +0 -1
  173. package/dist/types/dataType.d.ts +0 -94
  174. package/dist/types/dataType.js +0 -145
  175. package/dist/types/dataType.js.map +0 -1
  176. package/dist/types/json.d.ts +0 -173
  177. package/dist/types/json.js +0 -531
  178. package/dist/types/json.js.map +0 -1
  179. package/src/types/data.ts +0 -294
  180. package/src/types/dataType.ts +0 -178
  181. package/src/types/json.ts +0 -650
@@ -1,252 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"data.js","sourceRoot":"","sources":["../../../src/types/data.ts"],"names":[],"mappings":"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"}
@@ -1,94 +0,0 @@
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 };
@@ -1,145 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"dataType.js","sourceRoot":"","sources":["../../../src/types/dataType.ts"],"names":[],"mappings":"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"}
@@ -1,173 +0,0 @@
1
- import { BinaryParser } from '../serdes/binary-parser';
2
- import { JsonObject, SerializedType, SerializedTypeID } from './serialized-type';
3
- import { BinarySerializer } from '../serdes/binary-serializer';
4
- /**
5
- * STJson: Serialized Type for JSON-like structures (objects or arrays).
6
- *
7
- * Supports two modes:
8
- * - Object: Key-value pairs where keys are VL-encoded strings
9
- * - Array: Ordered list of values
10
- *
11
- * Values are [SType marker][VL-encoded SType serialization].
12
- * Values can be any SType, including nested STJson.
13
- *
14
- * Serialization format: [type_byte][VL_length][data...]
15
- * - type_byte: 0x00 = Object, 0x01 = Array
16
- *
17
- * Depth constraint: Maximum nesting depth of 1 level
18
- */
19
- declare class STJson extends SerializedType {
20
- private static readonly JsonType;
21
- private data;
22
- private jsonType;
23
- private default_;
24
- /**
25
- * Construct STJson from bytes
26
- * @param bytes - Uint8Array containing serialized JSON
27
- */
28
- constructor(bytes: Uint8Array);
29
- /**
30
- * Create an empty STJson with the given type
31
- */
32
- private static createEmpty;
33
- /**
34
- * Parse STJson from BinaryParser
35
- *
36
- * @param parser - BinaryParser positioned at the start of STJson
37
- * @returns STJson instance
38
- */
39
- static fromParser(parser: BinaryParser): STJson;
40
- /**
41
- * Parse a single key-value pair from the parser
42
- */
43
- private static parsePair;
44
- /**
45
- * Factory for SType value from VL blob (with SType marker)
46
- */
47
- private static makeValueFromVLWithType;
48
- /**
49
- * Check if this is an array type
50
- */
51
- isArray(): boolean;
52
- /**
53
- * Check if this is an object type
54
- */
55
- isObject(): boolean;
56
- /**
57
- * Get the JSON type
58
- */
59
- getType(): number;
60
- /**
61
- * Get nesting depth (0 = no nesting, 1 = one level of nesting)
62
- */
63
- getDepth(): number;
64
- /**
65
- * Validate nesting depth (max 1 level)
66
- */
67
- private validateDepth;
68
- /**
69
- * Set a field in an object
70
- */
71
- setObjectField(key: string, value: SerializedType | null): void;
72
- /**
73
- * Get a field from an object
74
- */
75
- getObjectField(key: string): SerializedType | null | undefined;
76
- /**
77
- * Set a nested object field (one level deep)
78
- */
79
- setNestedObjectField(key: string, nestedKey: string, value: SerializedType | null): void;
80
- /**
81
- * Get a nested object field
82
- */
83
- getNestedObjectField(key: string, nestedKey: string): SerializedType | null | undefined;
84
- /**
85
- * Get the inner data as a Map (for objects)
86
- */
87
- getMap(): Map<string, SerializedType | null>;
88
- /**
89
- * Get the inner data as an array
90
- */
91
- getArray(): (SerializedType | null)[];
92
- /**
93
- * Push an element to an array
94
- */
95
- pushArrayElement(value: SerializedType | null): void;
96
- /**
97
- * Get an array element by index
98
- */
99
- getArrayElement(index: number): SerializedType | null | undefined;
100
- /**
101
- * Set an array element by index
102
- */
103
- setArrayElement(index: number, value: SerializedType | null): void;
104
- /**
105
- * Set a field within an array element (element must be an object)
106
- */
107
- setArrayElementField(index: number, key: string, value: SerializedType | null): void;
108
- /**
109
- * Get a field within an array element
110
- */
111
- getArrayElementField(index: number, key: string): SerializedType | null | undefined;
112
- /**
113
- * Get the size of the array
114
- */
115
- arraySize(): number;
116
- /**
117
- * Set a nested array element (array stored in object field)
118
- */
119
- setNestedArrayElement(key: string, index: number, value: SerializedType | null): void;
120
- /**
121
- * Set a field within a nested array element
122
- */
123
- setNestedArrayElementField(key: string, index: number, nestedKey: string, value: SerializedType | null): void;
124
- /**
125
- * Get a nested array element
126
- */
127
- getNestedArrayElement(key: string, index: number): SerializedType | null | undefined;
128
- /**
129
- * Get a field within a nested array element
130
- */
131
- getNestedArrayElementField(key: string, index: number, nestedKey: string): SerializedType | null | undefined;
132
- /**
133
- * Serialize to binary
134
- */
135
- add(s: BinarySerializer): void;
136
- /**
137
- * Encode a key as VL
138
- */
139
- private static addVLKey;
140
- /**
141
- * Encode a value as [SType marker][VL]
142
- */
143
- private static addVLValue;
144
- /**
145
- * Convert to JSON representation
146
- */
147
- toJSON(): JsonObject | JsonObject[];
148
- /**
149
- * Compare with another STJson for equivalence
150
- */
151
- isEquivalent(t: SerializedType): boolean;
152
- /**
153
- * Check if this is the default value
154
- */
155
- isDefault(): boolean;
156
- /**
157
- * Get blob representation
158
- */
159
- toBlob(): Uint8Array;
160
- /**
161
- * Get the size (number of bytes in serialized form)
162
- */
163
- size(): number;
164
- /**
165
- * Set the value from another STJson
166
- */
167
- setValue(v: STJson): void;
168
- /**
169
- * Get serialized type ID
170
- */
171
- getSType(): SerializedTypeID;
172
- }
173
- export { STJson };