@transia/ripple-binary-codec 1.4.6-alpha.9 → 2.5.1-quantum.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 (340) hide show
  1. package/dist/binary.d.ts +30 -16
  2. package/dist/binary.js +36 -16
  3. package/dist/binary.js.map +1 -1
  4. package/dist/enums/bytes.d.ts +1 -2
  5. package/dist/enums/bytes.js +1 -2
  6. package/dist/enums/bytes.js.map +1 -1
  7. package/dist/enums/constants.d.ts +1 -0
  8. package/dist/enums/constants.js +6 -5
  9. package/dist/enums/constants.js.map +1 -1
  10. package/dist/enums/definitions.json +1535 -919
  11. package/dist/enums/field.d.ts +1 -2
  12. package/dist/enums/field.js +1 -2
  13. package/dist/enums/field.js.map +1 -1
  14. package/dist/enums/index.d.ts +1 -2
  15. package/dist/enums/index.js +5 -27
  16. package/dist/enums/index.js.map +1 -1
  17. package/dist/enums/src/enums/definitions.json +1537 -921
  18. package/dist/enums/xrpl-definitions-base.d.ts +5 -3
  19. package/dist/enums/xrpl-definitions-base.js +26 -6
  20. package/dist/enums/xrpl-definitions-base.js.map +1 -1
  21. package/dist/enums/xrpl-definitions.d.ts +2 -1
  22. package/dist/enums/xrpl-definitions.js +2 -1
  23. package/dist/enums/xrpl-definitions.js.map +1 -1
  24. package/dist/hash-prefixes.d.ts +1 -2
  25. package/dist/hash-prefixes.js +8 -6
  26. package/dist/hash-prefixes.js.map +1 -1
  27. package/dist/hashes.d.ts +6 -7
  28. package/dist/hashes.js +6 -7
  29. package/dist/hashes.js.map +1 -1
  30. package/dist/index.d.ts +16 -11
  31. package/dist/index.js +53 -58
  32. package/dist/index.js.map +1 -1
  33. package/dist/ledger-hashes.d.ts +1 -2
  34. package/dist/ledger-hashes.js +11 -30
  35. package/dist/ledger-hashes.js.map +1 -1
  36. package/dist/quality.d.ts +3 -4
  37. package/dist/quality.js +10 -8
  38. package/dist/quality.js.map +1 -1
  39. package/dist/serdes/binary-parser.d.ts +2 -3
  40. package/dist/serdes/binary-parser.js +16 -32
  41. package/dist/serdes/binary-parser.js.map +1 -1
  42. package/dist/serdes/binary-serializer.d.ts +6 -7
  43. package/dist/serdes/binary-serializer.js +12 -35
  44. package/dist/serdes/binary-serializer.js.map +1 -1
  45. package/dist/shamap.d.ts +4 -5
  46. package/dist/shamap.js +5 -5
  47. package/dist/shamap.js.map +1 -1
  48. package/dist/src/binary.d.ts +106 -0
  49. package/dist/src/binary.js +154 -0
  50. package/dist/src/binary.js.map +1 -0
  51. package/dist/src/coretypes.d.ts +9 -0
  52. package/dist/src/coretypes.js +48 -0
  53. package/dist/src/coretypes.js.map +1 -0
  54. package/dist/src/enums/bytes.d.ts +25 -0
  55. package/dist/src/enums/bytes.js +63 -0
  56. package/dist/src/enums/bytes.js.map +1 -0
  57. package/dist/src/enums/constants.d.ts +5 -0
  58. package/dist/src/enums/constants.js +9 -0
  59. package/dist/src/enums/constants.js.map +1 -0
  60. package/dist/src/enums/definitions.json +3385 -0
  61. package/dist/src/enums/field.d.ts +28 -0
  62. package/dist/src/enums/field.js +58 -0
  63. package/dist/src/enums/field.js.map +1 -0
  64. package/dist/src/enums/index.d.ts +12 -0
  65. package/dist/src/enums/index.js +31 -0
  66. package/dist/src/enums/index.js.map +1 -0
  67. package/dist/src/enums/utils-renumber.d.ts +101 -0
  68. package/dist/src/enums/utils-renumber.js +127 -0
  69. package/dist/src/enums/utils-renumber.js.map +1 -0
  70. package/dist/src/enums/xrpl-definitions-base.d.ts +47 -0
  71. package/dist/src/enums/xrpl-definitions-base.js +83 -0
  72. package/dist/src/enums/xrpl-definitions-base.js.map +1 -0
  73. package/dist/src/enums/xrpl-definitions.d.ts +22 -0
  74. package/dist/src/enums/xrpl-definitions.js +30 -0
  75. package/dist/src/enums/xrpl-definitions.js.map +1 -0
  76. package/dist/src/hash-prefixes.d.ts +5 -0
  77. package/dist/src/hash-prefixes.js +43 -0
  78. package/dist/src/hash-prefixes.js.map +1 -0
  79. package/dist/src/hashes.d.ts +50 -0
  80. package/dist/src/hashes.js +76 -0
  81. package/dist/src/hashes.js.map +1 -0
  82. package/dist/src/index.d.ts +69 -0
  83. package/dist/src/index.js +134 -0
  84. package/dist/src/index.js.map +1 -0
  85. package/dist/src/ledger-hashes.d.ts +48 -0
  86. package/dist/src/ledger-hashes.js +141 -0
  87. package/dist/src/ledger-hashes.js.map +1 -0
  88. package/dist/src/quality.d.ts +21 -0
  89. package/dist/src/quality.js +42 -0
  90. package/dist/src/quality.js.map +1 -0
  91. package/dist/src/serdes/binary-parser.d.ts +100 -0
  92. package/dist/src/serdes/binary-parser.js +194 -0
  93. package/dist/src/serdes/binary-parser.js.map +1 -0
  94. package/dist/src/serdes/binary-serializer.d.ts +81 -0
  95. package/dist/src/serdes/binary-serializer.js +149 -0
  96. package/dist/src/serdes/binary-serializer.js.map +1 -0
  97. package/dist/src/shamap.d.ts +102 -0
  98. package/dist/src/shamap.js +172 -0
  99. package/dist/src/shamap.js.map +1 -0
  100. package/dist/src/types/account-id.d.ts +35 -0
  101. package/dist/src/types/account-id.js +69 -0
  102. package/dist/src/types/account-id.js.map +1 -0
  103. package/dist/src/types/amount.d.ts +91 -0
  104. package/dist/src/types/amount.js +289 -0
  105. package/dist/src/types/amount.js.map +1 -0
  106. package/dist/src/types/blob.d.ts +24 -0
  107. package/dist/src/types/blob.js +43 -0
  108. package/dist/src/types/blob.js.map +1 -0
  109. package/dist/src/types/currency.d.ts +28 -0
  110. package/dist/src/types/currency.js +127 -0
  111. package/dist/src/types/currency.js.map +1 -0
  112. package/dist/src/types/hash-128.d.ts +16 -0
  113. package/dist/src/types/hash-128.js +32 -0
  114. package/dist/src/types/hash-128.js.map +1 -0
  115. package/dist/src/types/hash-160.d.ts +10 -0
  116. package/dist/src/types/hash-160.js +19 -0
  117. package/dist/src/types/hash-160.js.map +1 -0
  118. package/dist/src/types/hash-192.d.ts +10 -0
  119. package/dist/src/types/hash-192.js +19 -0
  120. package/dist/src/types/hash-192.js.map +1 -0
  121. package/dist/src/types/hash-256.d.ts +10 -0
  122. package/dist/src/types/hash-256.js +16 -0
  123. package/dist/src/types/hash-256.js.map +1 -0
  124. package/dist/src/types/hash.d.ts +40 -0
  125. package/dist/src/types/hash.js +76 -0
  126. package/dist/src/types/hash.js.map +1 -0
  127. package/dist/src/types/index.d.ts +19 -0
  128. package/dist/src/types/index.js +66 -0
  129. package/dist/src/types/index.js.map +1 -0
  130. package/dist/src/types/issue.d.ts +48 -0
  131. package/dist/src/types/issue.js +104 -0
  132. package/dist/src/types/issue.js.map +1 -0
  133. package/dist/src/types/path-set.d.ts +36 -0
  134. package/dist/src/types/path-set.js +233 -0
  135. package/dist/src/types/path-set.js.map +1 -0
  136. package/dist/src/types/serialized-type.d.ts +70 -0
  137. package/dist/src/types/serialized-type.js +105 -0
  138. package/dist/src/types/serialized-type.js.map +1 -0
  139. package/dist/src/types/st-array.d.ts +31 -0
  140. package/dist/src/types/st-array.js +86 -0
  141. package/dist/src/types/st-array.js.map +1 -0
  142. package/dist/src/types/st-number.d.ts +54 -0
  143. package/dist/src/types/st-number.js +208 -0
  144. package/dist/src/types/st-number.js.map +1 -0
  145. package/dist/src/types/st-object.d.ts +32 -0
  146. package/dist/src/types/st-object.js +173 -0
  147. package/dist/src/types/st-object.js.map +1 -0
  148. package/dist/src/types/uint-16.d.ts +24 -0
  149. package/dist/src/types/uint-16.js +45 -0
  150. package/dist/src/types/uint-16.js.map +1 -0
  151. package/dist/src/types/uint-32.d.ts +24 -0
  152. package/dist/src/types/uint-32.js +50 -0
  153. package/dist/src/types/uint-32.js.map +1 -0
  154. package/dist/src/types/uint-64.d.ts +38 -0
  155. package/dist/src/types/uint-64.js +107 -0
  156. package/dist/src/types/uint-64.js.map +1 -0
  157. package/dist/src/types/uint-8.d.ts +24 -0
  158. package/dist/src/types/uint-8.js +46 -0
  159. package/dist/src/types/uint-8.js.map +1 -0
  160. package/dist/src/types/uint.d.ts +29 -0
  161. package/dist/src/types/uint.js +47 -0
  162. package/dist/src/types/uint.js.map +1 -0
  163. package/dist/src/types/vector-256.d.ts +30 -0
  164. package/dist/src/types/vector-256.js +73 -0
  165. package/dist/src/types/vector-256.js.map +1 -0
  166. package/dist/src/types/xchain-bridge.d.ts +44 -0
  167. package/dist/src/types/xchain-bridge.js +102 -0
  168. package/dist/src/types/xchain-bridge.js.map +1 -0
  169. package/dist/src/utils.d.ts +79 -0
  170. package/dist/src/utils.js +181 -0
  171. package/dist/src/utils.js.map +1 -0
  172. package/dist/tsconfig.tsbuildinfo +1 -0
  173. package/dist/types/account-id.d.ts +1 -2
  174. package/dist/types/account-id.js +4 -6
  175. package/dist/types/account-id.js.map +1 -1
  176. package/dist/types/amount.d.ts +31 -8
  177. package/dist/types/amount.js +125 -43
  178. package/dist/types/amount.js.map +1 -1
  179. package/dist/types/blob.d.ts +1 -2
  180. package/dist/types/blob.js +5 -2
  181. package/dist/types/blob.js.map +1 -1
  182. package/dist/types/currency.d.ts +1 -2
  183. package/dist/types/currency.js +13 -13
  184. package/dist/types/currency.js.map +1 -1
  185. package/dist/types/hash-128.d.ts +1 -2
  186. package/dist/types/hash-128.js +3 -3
  187. package/dist/types/hash-128.js.map +1 -1
  188. package/dist/types/hash-160.d.ts +1 -2
  189. package/dist/types/hash-160.js +1 -2
  190. package/dist/types/hash-160.js.map +1 -1
  191. package/dist/types/hash-192.d.ts +10 -0
  192. package/dist/types/hash-192.js +19 -0
  193. package/dist/types/hash-192.js.map +1 -0
  194. package/dist/types/hash-256.d.ts +1 -2
  195. package/dist/types/hash-256.js +1 -2
  196. package/dist/types/hash-256.js.map +1 -1
  197. package/dist/types/hash.d.ts +2 -3
  198. package/dist/types/hash.js +8 -4
  199. package/dist/types/hash.js.map +1 -1
  200. package/dist/types/index.d.ts +2 -1
  201. package/dist/types/index.js +11 -2
  202. package/dist/types/index.js.map +1 -1
  203. package/dist/types/issue.d.ts +48 -0
  204. package/dist/types/issue.js +104 -0
  205. package/dist/types/issue.js.map +1 -0
  206. package/dist/types/path-set.js +12 -12
  207. package/dist/types/path-set.js.map +1 -1
  208. package/dist/types/serialized-type.d.ts +23 -16
  209. package/dist/types/serialized-type.js +15 -7
  210. package/dist/types/serialized-type.js.map +1 -1
  211. package/dist/types/st-array.d.ts +5 -2
  212. package/dist/types/st-array.js +17 -11
  213. package/dist/types/st-array.js.map +1 -1
  214. package/dist/types/st-number.d.ts +54 -0
  215. package/dist/types/st-number.js +208 -0
  216. package/dist/types/st-number.js.map +1 -0
  217. package/dist/types/st-object.js +32 -8
  218. package/dist/types/st-object.js.map +1 -1
  219. package/dist/types/uint-16.d.ts +1 -2
  220. package/dist/types/uint-16.js +6 -5
  221. package/dist/types/uint-16.js.map +1 -1
  222. package/dist/types/uint-32.d.ts +1 -2
  223. package/dist/types/uint-32.js +7 -6
  224. package/dist/types/uint-32.js.map +1 -1
  225. package/dist/types/uint-64.d.ts +6 -7
  226. package/dist/types/uint-64.js +44 -24
  227. package/dist/types/uint-64.js.map +1 -1
  228. package/dist/types/uint-8.d.ts +1 -2
  229. package/dist/types/uint-8.js +7 -5
  230. package/dist/types/uint-8.js.map +1 -1
  231. package/dist/types/uint.d.ts +5 -6
  232. package/dist/types/uint.js +5 -0
  233. package/dist/types/uint.js.map +1 -1
  234. package/dist/types/vector-256.d.ts +1 -2
  235. package/dist/types/vector-256.js +2 -4
  236. package/dist/types/vector-256.js.map +1 -1
  237. package/dist/types/xchain-bridge.d.ts +44 -0
  238. package/dist/types/xchain-bridge.js +102 -0
  239. package/dist/types/xchain-bridge.js.map +1 -0
  240. package/dist/utils.d.ts +79 -0
  241. package/dist/utils.js +181 -0
  242. package/dist/utils.js.map +1 -0
  243. package/package.json +21 -17
  244. package/src/README.md +5 -0
  245. package/src/binary.ts +235 -0
  246. package/src/coretypes.ts +31 -0
  247. package/src/enums/README.md +144 -0
  248. package/src/enums/bytes.ts +74 -0
  249. package/src/enums/constants.ts +5 -0
  250. package/src/enums/definitions.json +3390 -0
  251. package/src/enums/field.ts +84 -0
  252. package/src/enums/index.ts +34 -0
  253. package/src/enums/utils-renumber.ts +134 -0
  254. package/src/enums/xrpl-definitions-base.ts +150 -0
  255. package/src/enums/xrpl-definitions.ts +33 -0
  256. package/src/hash-prefixes.ts +42 -0
  257. package/src/hashes.ts +75 -0
  258. package/src/index.ts +166 -0
  259. package/src/ledger-hashes.ts +191 -0
  260. package/src/quality.ts +38 -0
  261. package/src/serdes/binary-parser.ts +228 -0
  262. package/src/serdes/binary-serializer.ts +166 -0
  263. package/src/shamap.ts +186 -0
  264. package/src/types/account-id.ts +86 -0
  265. package/src/types/amount.ts +362 -0
  266. package/src/types/blob.ts +46 -0
  267. package/src/types/currency.ts +140 -0
  268. package/src/types/hash-128.ts +33 -0
  269. package/src/types/hash-160.ts +19 -0
  270. package/src/types/hash-192.ts +19 -0
  271. package/src/types/hash-256.ts +15 -0
  272. package/src/types/hash.ts +86 -0
  273. package/src/types/index.ts +68 -0
  274. package/src/types/issue.ts +136 -0
  275. package/src/types/path-set.ts +290 -0
  276. package/src/types/serialized-type.ts +122 -0
  277. package/src/types/st-array.ts +113 -0
  278. package/src/types/st-number.ts +233 -0
  279. package/src/types/st-object.ts +215 -0
  280. package/src/types/uint-16.ts +53 -0
  281. package/src/types/uint-32.ts +59 -0
  282. package/src/types/uint-64.ts +135 -0
  283. package/src/types/uint-8.ts +52 -0
  284. package/src/types/uint.ts +60 -0
  285. package/src/types/vector-256.ts +79 -0
  286. package/src/types/xchain-bridge.ts +128 -0
  287. package/src/utils.ts +220 -0
  288. package/test/amount.test.js +0 -43
  289. package/test/binary-json.test.js +0 -45
  290. package/test/binary-parser.test.js +0 -396
  291. package/test/binary-serializer.test.js +0 -319
  292. package/test/definitions.test.js +0 -100
  293. package/test/fixtures/account-tx-transactions.db +0 -0
  294. package/test/fixtures/codec-fixtures.json +0 -4466
  295. package/test/fixtures/data-driven-tests.json +0 -2919
  296. package/test/fixtures/delivermin-tx-binary.json +0 -1
  297. package/test/fixtures/delivermin-tx.json +0 -98
  298. package/test/fixtures/deposit-preauth-tx-binary.json +0 -1
  299. package/test/fixtures/deposit-preauth-tx-meta-binary.json +0 -1
  300. package/test/fixtures/deposit-preauth-tx.json +0 -58
  301. package/test/fixtures/escrow-cancel-binary.json +0 -1
  302. package/test/fixtures/escrow-cancel-tx.json +0 -6
  303. package/test/fixtures/escrow-create-binary.json +0 -1
  304. package/test/fixtures/escrow-create-tx.json +0 -10
  305. package/test/fixtures/escrow-finish-binary.json +0 -1
  306. package/test/fixtures/escrow-finish-meta-binary.json +0 -1
  307. package/test/fixtures/escrow-finish-tx.json +0 -95
  308. package/test/fixtures/ledger-full-38129.json +0 -1
  309. package/test/fixtures/ledger-full-40000.json +0 -1
  310. package/test/fixtures/negative-unl.json +0 -12
  311. package/test/fixtures/nf-token.json +0 -547
  312. package/test/fixtures/payment-channel-claim-binary.json +0 -1
  313. package/test/fixtures/payment-channel-claim-tx.json +0 -8
  314. package/test/fixtures/payment-channel-create-binary.json +0 -1
  315. package/test/fixtures/payment-channel-create-tx.json +0 -11
  316. package/test/fixtures/payment-channel-fund-binary.json +0 -1
  317. package/test/fixtures/payment-channel-fund-tx.json +0 -7
  318. package/test/fixtures/remit-binary.json +0 -1
  319. package/test/fixtures/remit-tx.json +0 -39
  320. package/test/fixtures/signerlistset-tx-binary.json +0 -1
  321. package/test/fixtures/signerlistset-tx-meta-binary.json +0 -1
  322. package/test/fixtures/signerlistset-tx.json +0 -94
  323. package/test/fixtures/ticket-create-binary.json +0 -1
  324. package/test/fixtures/ticket-create-tx.json +0 -7
  325. package/test/fixtures/unl-report-binary.json +0 -1
  326. package/test/fixtures/unl-report-meta-binary.json +0 -1
  327. package/test/fixtures/unl-report.json +0 -89
  328. package/test/fixtures/x-codec-fixtures.json +0 -188
  329. package/test/hash.test.js +0 -135
  330. package/test/ledger.test.js +0 -29
  331. package/test/lower-case-hex.test.js +0 -46
  332. package/test/pseudo-transaction.test.js +0 -38
  333. package/test/quality.test.js +0 -15
  334. package/test/shamap.test.js +0 -89
  335. package/test/signing-data-encoding.test.js +0 -213
  336. package/test/tx-encode-decode.test.js +0 -119
  337. package/test/types.test.js +0 -34
  338. package/test/uint.test.js +0 -148
  339. package/test/utils.js +0 -30
  340. package/test/x-address.test.js +0 -181
@@ -0,0 +1,24 @@
1
+ import { SerializedType } from './serialized-type';
2
+ import { BinaryParser } from '../serdes/binary-parser';
3
+ /**
4
+ * Variable length encoded type
5
+ */
6
+ declare class Blob extends SerializedType {
7
+ constructor(bytes: Uint8Array);
8
+ /**
9
+ * Defines how to read a Blob from a BinaryParser
10
+ *
11
+ * @param parser The binary parser to read the Blob from
12
+ * @param hint The length of the blob, computed by readVariableLengthLength() and passed in
13
+ * @returns A Blob object
14
+ */
15
+ static fromParser(parser: BinaryParser, hint: number): Blob;
16
+ /**
17
+ * Create a Blob object from a hex-string
18
+ *
19
+ * @param value existing Blob object or a hex-string
20
+ * @returns A Blob object
21
+ */
22
+ static from<T extends Blob | string>(value: T): Blob;
23
+ }
24
+ export { Blob };
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Blob = void 0;
4
+ const serialized_type_1 = require("./serialized-type");
5
+ const utils_1 = require("@transia/isomorphic/utils");
6
+ /**
7
+ * Variable length encoded type
8
+ */
9
+ class Blob extends serialized_type_1.SerializedType {
10
+ constructor(bytes) {
11
+ super(bytes);
12
+ }
13
+ /**
14
+ * Defines how to read a Blob from a BinaryParser
15
+ *
16
+ * @param parser The binary parser to read the Blob from
17
+ * @param hint The length of the blob, computed by readVariableLengthLength() and passed in
18
+ * @returns A Blob object
19
+ */
20
+ static fromParser(parser, hint) {
21
+ return new Blob(parser.read(hint));
22
+ }
23
+ /**
24
+ * Create a Blob object from a hex-string
25
+ *
26
+ * @param value existing Blob object or a hex-string
27
+ * @returns A Blob object
28
+ */
29
+ static from(value) {
30
+ if (value instanceof Blob) {
31
+ return value;
32
+ }
33
+ if (typeof value === 'string') {
34
+ if (!/^[A-F0-9]*$/iu.test(value)) {
35
+ throw new Error('Cannot construct Blob from a non-hex string');
36
+ }
37
+ return new Blob((0, utils_1.hexToBytes)(value));
38
+ }
39
+ throw new Error('Cannot construct Blob from value given');
40
+ }
41
+ }
42
+ exports.Blob = Blob;
43
+ //# sourceMappingURL=blob.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blob.js","sourceRoot":"","sources":["../../../src/types/blob.ts"],"names":[],"mappings":";;;AAAA,uDAAkD;AAElD,qDAAsD;AAEtD;;GAEG;AACH,MAAM,IAAK,SAAQ,gCAAc;IAC/B,YAAY,KAAiB;QAC3B,KAAK,CAAC,KAAK,CAAC,CAAA;IACd,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,UAAU,CAAC,MAAoB,EAAE,IAAY;QAClD,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IACpC,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,IAAI,CAA0B,KAAQ;QAC3C,IAAI,KAAK,YAAY,IAAI,EAAE;YACzB,OAAO,KAAK,CAAA;SACb;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBAChC,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;aAC/D;YACD,OAAO,IAAI,IAAI,CAAC,IAAA,kBAAU,EAAC,KAAK,CAAC,CAAC,CAAA;SACnC;QAED,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAA;IAC3D,CAAC;CACF;AAEQ,oBAAI"}
@@ -0,0 +1,28 @@
1
+ import { Hash160 } from './hash-160';
2
+ /**
3
+ * Class defining how to encode and decode Currencies
4
+ */
5
+ declare class Currency extends Hash160 {
6
+ static readonly XRP: Currency;
7
+ private readonly _iso;
8
+ constructor(byteBuf: Uint8Array);
9
+ /**
10
+ * Return the ISO code of this currency
11
+ *
12
+ * @returns ISO code if it exists, else null
13
+ */
14
+ iso(): string | null;
15
+ /**
16
+ * Constructs a Currency object
17
+ *
18
+ * @param val Currency object or a string representation of a currency
19
+ */
20
+ static from<T extends Hash160 | string>(value: T): Currency;
21
+ /**
22
+ * Gets the JSON representation of a currency
23
+ *
24
+ * @returns JSON representation
25
+ */
26
+ toJSON(): string;
27
+ }
28
+ export { Currency };
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Currency = void 0;
4
+ const hash_160_1 = require("./hash-160");
5
+ const utils_1 = require("@transia/isomorphic/utils");
6
+ const XRP_HEX_REGEX = /^0{40}$/;
7
+ const ISO_REGEX = /^[A-Z0-9a-z?!@#$%^&*(){}[\]|]{3}$/;
8
+ const HEX_REGEX = /^[A-F0-9]{40}$/;
9
+ // eslint-disable-next-line no-control-regex
10
+ const STANDARD_FORMAT_HEX_REGEX = /^0{24}[\x00-\x7F]{6}0{10}$/;
11
+ /**
12
+ * Convert an ISO code to a currency bytes representation
13
+ */
14
+ function isoToBytes(iso) {
15
+ const bytes = new Uint8Array(20);
16
+ if (iso !== 'XRP') {
17
+ const isoBytes = iso.split('').map((c) => c.charCodeAt(0));
18
+ bytes.set(isoBytes, 12);
19
+ }
20
+ return bytes;
21
+ }
22
+ /**
23
+ * Tests if ISO is a valid iso code
24
+ */
25
+ function isIsoCode(iso) {
26
+ return ISO_REGEX.test(iso);
27
+ }
28
+ function isoCodeFromHex(code) {
29
+ const iso = (0, utils_1.hexToString)((0, utils_1.bytesToHex)(code));
30
+ if (iso === 'XRP') {
31
+ return null;
32
+ }
33
+ if (isIsoCode(iso)) {
34
+ return iso;
35
+ }
36
+ return null;
37
+ }
38
+ /**
39
+ * Tests if hex is a valid hex-string
40
+ */
41
+ function isHex(hex) {
42
+ return HEX_REGEX.test(hex);
43
+ }
44
+ /**
45
+ * Tests if a string is a valid representation of a currency
46
+ */
47
+ function isStringRepresentation(input) {
48
+ return input.length === 3 || isHex(input);
49
+ }
50
+ /**
51
+ * Tests if a Uint8Array is a valid representation of a currency
52
+ */
53
+ function isBytesArray(bytes) {
54
+ return bytes.byteLength === 20;
55
+ }
56
+ /**
57
+ * Ensures that a value is a valid representation of a currency
58
+ */
59
+ function isValidRepresentation(input) {
60
+ return input instanceof Uint8Array
61
+ ? isBytesArray(input)
62
+ : isStringRepresentation(input);
63
+ }
64
+ /**
65
+ * Generate bytes from a string or UInt8Array representation of a currency
66
+ */
67
+ function bytesFromRepresentation(input) {
68
+ if (!isValidRepresentation(input)) {
69
+ throw new Error(`Unsupported Currency representation: ${input}`);
70
+ }
71
+ return input.length === 3 ? isoToBytes(input) : (0, utils_1.hexToBytes)(input);
72
+ }
73
+ /**
74
+ * Class defining how to encode and decode Currencies
75
+ */
76
+ class Currency extends hash_160_1.Hash160 {
77
+ constructor(byteBuf) {
78
+ super(byteBuf !== null && byteBuf !== void 0 ? byteBuf : Currency.XRP.bytes);
79
+ const hex = (0, utils_1.bytesToHex)(this.bytes);
80
+ if (XRP_HEX_REGEX.test(hex)) {
81
+ this._iso = 'XRP';
82
+ }
83
+ else if (STANDARD_FORMAT_HEX_REGEX.test(hex)) {
84
+ this._iso = isoCodeFromHex(this.bytes.slice(12, 15));
85
+ }
86
+ else {
87
+ this._iso = null;
88
+ }
89
+ }
90
+ /**
91
+ * Return the ISO code of this currency
92
+ *
93
+ * @returns ISO code if it exists, else null
94
+ */
95
+ iso() {
96
+ return this._iso;
97
+ }
98
+ /**
99
+ * Constructs a Currency object
100
+ *
101
+ * @param val Currency object or a string representation of a currency
102
+ */
103
+ static from(value) {
104
+ if (value instanceof Currency) {
105
+ return value;
106
+ }
107
+ if (typeof value === 'string') {
108
+ return new Currency(bytesFromRepresentation(value));
109
+ }
110
+ throw new Error('Cannot construct Currency from value given');
111
+ }
112
+ /**
113
+ * Gets the JSON representation of a currency
114
+ *
115
+ * @returns JSON representation
116
+ */
117
+ toJSON() {
118
+ const iso = this.iso();
119
+ if (iso !== null) {
120
+ return iso;
121
+ }
122
+ return (0, utils_1.bytesToHex)(this.bytes);
123
+ }
124
+ }
125
+ exports.Currency = Currency;
126
+ Currency.XRP = new Currency(new Uint8Array(20));
127
+ //# sourceMappingURL=currency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"currency.js","sourceRoot":"","sources":["../../../src/types/currency.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { Hash } from './hash';
2
+ /**
3
+ * Hash with a width of 128 bits
4
+ */
5
+ declare class Hash128 extends Hash {
6
+ static readonly width = 16;
7
+ static readonly ZERO_128: Hash128;
8
+ constructor(bytes: Uint8Array);
9
+ /**
10
+ * Get the hex representation of a hash-128 bytes, allowing unset
11
+ *
12
+ * @returns hex String of this.bytes
13
+ */
14
+ toHex(): string;
15
+ }
16
+ export { Hash128 };
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Hash128 = void 0;
4
+ const hash_1 = require("./hash");
5
+ const utils_1 = require("@transia/isomorphic/utils");
6
+ /**
7
+ * Hash with a width of 128 bits
8
+ */
9
+ class Hash128 extends hash_1.Hash {
10
+ constructor(bytes) {
11
+ if (bytes && bytes.byteLength === 0) {
12
+ bytes = Hash128.ZERO_128.bytes;
13
+ }
14
+ super(bytes !== null && bytes !== void 0 ? bytes : Hash128.ZERO_128.bytes);
15
+ }
16
+ /**
17
+ * Get the hex representation of a hash-128 bytes, allowing unset
18
+ *
19
+ * @returns hex String of this.bytes
20
+ */
21
+ toHex() {
22
+ const hex = (0, utils_1.bytesToHex)(this.toBytes());
23
+ if (/^0+$/.exec(hex)) {
24
+ return '';
25
+ }
26
+ return hex;
27
+ }
28
+ }
29
+ exports.Hash128 = Hash128;
30
+ Hash128.width = 16;
31
+ Hash128.ZERO_128 = new Hash128(new Uint8Array(Hash128.width));
32
+ //# sourceMappingURL=hash-128.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hash-128.js","sourceRoot":"","sources":["../../../src/types/hash-128.ts"],"names":[],"mappings":";;;AAAA,iCAA6B;AAC7B,qDAAsD;AAEtD;;GAEG;AACH,MAAM,OAAQ,SAAQ,WAAI;IAIxB,YAAY,KAAiB;QAC3B,IAAI,KAAK,IAAI,KAAK,CAAC,UAAU,KAAK,CAAC,EAAE;YACnC,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAA;SAC/B;QAED,KAAK,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACxC,CAAC;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"}
@@ -0,0 +1,10 @@
1
+ import { Hash } from './hash';
2
+ /**
3
+ * Hash with a width of 160 bits
4
+ */
5
+ declare class Hash160 extends Hash {
6
+ static readonly width = 20;
7
+ static readonly ZERO_160: Hash160;
8
+ constructor(bytes?: Uint8Array);
9
+ }
10
+ export { Hash160 };
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Hash160 = void 0;
4
+ const hash_1 = require("./hash");
5
+ /**
6
+ * Hash with a width of 160 bits
7
+ */
8
+ class Hash160 extends hash_1.Hash {
9
+ constructor(bytes) {
10
+ if (bytes && bytes.byteLength === 0) {
11
+ bytes = Hash160.ZERO_160.bytes;
12
+ }
13
+ super(bytes !== null && bytes !== void 0 ? bytes : Hash160.ZERO_160.bytes);
14
+ }
15
+ }
16
+ exports.Hash160 = Hash160;
17
+ Hash160.width = 20;
18
+ Hash160.ZERO_160 = new Hash160(new Uint8Array(Hash160.width));
19
+ //# sourceMappingURL=hash-160.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hash-160.js","sourceRoot":"","sources":["../../../src/types/hash-160.ts"],"names":[],"mappings":";;;AAAA,iCAA6B;AAE7B;;GAEG;AACH,MAAM,OAAQ,SAAQ,WAAI;IAIxB,YAAY,KAAkB;QAC5B,IAAI,KAAK,IAAI,KAAK,CAAC,UAAU,KAAK,CAAC,EAAE;YACnC,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAA;SAC/B;QAED,KAAK,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACxC,CAAC;;AAGM,0BAAO;AAZE,aAAK,GAAG,EAAE,CAAA;AACV,gBAAQ,GAAY,IAAI,OAAO,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA"}
@@ -0,0 +1,10 @@
1
+ import { Hash } from './hash';
2
+ /**
3
+ * Hash with a width of 192 bits
4
+ */
5
+ declare class Hash192 extends Hash {
6
+ static readonly width = 24;
7
+ static readonly ZERO_192: Hash192;
8
+ constructor(bytes?: Uint8Array);
9
+ }
10
+ export { Hash192 };
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Hash192 = void 0;
4
+ const hash_1 = require("./hash");
5
+ /**
6
+ * Hash with a width of 192 bits
7
+ */
8
+ class Hash192 extends hash_1.Hash {
9
+ constructor(bytes) {
10
+ if (bytes && bytes.byteLength === 0) {
11
+ bytes = Hash192.ZERO_192.bytes;
12
+ }
13
+ super(bytes !== null && bytes !== void 0 ? bytes : Hash192.ZERO_192.bytes);
14
+ }
15
+ }
16
+ exports.Hash192 = Hash192;
17
+ Hash192.width = 24;
18
+ Hash192.ZERO_192 = new Hash192(new Uint8Array(Hash192.width));
19
+ //# sourceMappingURL=hash-192.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hash-192.js","sourceRoot":"","sources":["../../../src/types/hash-192.ts"],"names":[],"mappings":";;;AAAA,iCAA6B;AAE7B;;GAEG;AACH,MAAM,OAAQ,SAAQ,WAAI;IAIxB,YAAY,KAAkB;QAC5B,IAAI,KAAK,IAAI,KAAK,CAAC,UAAU,KAAK,CAAC,EAAE;YACnC,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAA;SAC/B;QAED,KAAK,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACxC,CAAC;;AAGM,0BAAO;AAZE,aAAK,GAAG,EAAE,CAAA;AACV,gBAAQ,GAAY,IAAI,OAAO,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA"}
@@ -0,0 +1,10 @@
1
+ import { Hash } from './hash';
2
+ /**
3
+ * Hash with a width of 256 bits
4
+ */
5
+ declare class Hash256 extends Hash {
6
+ static readonly width = 32;
7
+ static readonly ZERO_256: Hash256;
8
+ constructor(bytes: Uint8Array);
9
+ }
10
+ export { Hash256 };
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Hash256 = void 0;
4
+ const hash_1 = require("./hash");
5
+ /**
6
+ * Hash with a width of 256 bits
7
+ */
8
+ class Hash256 extends hash_1.Hash {
9
+ constructor(bytes) {
10
+ super(bytes !== null && bytes !== void 0 ? bytes : Hash256.ZERO_256.bytes);
11
+ }
12
+ }
13
+ exports.Hash256 = Hash256;
14
+ Hash256.width = 32;
15
+ Hash256.ZERO_256 = new Hash256(new Uint8Array(Hash256.width));
16
+ //# sourceMappingURL=hash-256.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hash-256.js","sourceRoot":"","sources":["../../../src/types/hash-256.ts"],"names":[],"mappings":";;;AAAA,iCAA6B;AAE7B;;GAEG;AACH,MAAM,OAAQ,SAAQ,WAAI;IAIxB,YAAY,KAAiB;QAC3B,KAAK,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACxC,CAAC;;AAGM,0BAAO;AARE,aAAK,GAAG,EAAE,CAAA;AACV,gBAAQ,GAAG,IAAI,OAAO,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA"}
@@ -0,0 +1,40 @@
1
+ import { Comparable } from './serialized-type';
2
+ import { BinaryParser } from '../serdes/binary-parser';
3
+ /**
4
+ * Base class defining how to encode and decode hashes
5
+ */
6
+ declare class Hash extends Comparable<Hash | string> {
7
+ static readonly width: number;
8
+ constructor(bytes: Uint8Array);
9
+ /**
10
+ * Construct a Hash object from an existing Hash object or a hex-string
11
+ *
12
+ * @param value A hash object or hex-string of a hash
13
+ */
14
+ static from<T extends Hash | string>(value: T): Hash;
15
+ /**
16
+ * Read a Hash object from a BinaryParser
17
+ *
18
+ * @param parser BinaryParser to read the hash from
19
+ * @param hint length of the bytes to read, optional
20
+ */
21
+ static fromParser(parser: BinaryParser, hint?: number): Hash;
22
+ /**
23
+ * Overloaded operator for comparing two hash objects
24
+ *
25
+ * @param other The Hash to compare this to
26
+ */
27
+ compareTo(other: Hash): number;
28
+ /**
29
+ * @returns the hex-string representation of this Hash
30
+ */
31
+ toString(): string;
32
+ /**
33
+ * Returns four bits at the specified depth within a hash
34
+ *
35
+ * @param depth The depth of the four bits
36
+ * @returns The number represented by the four bits
37
+ */
38
+ nibblet(depth: number): number;
39
+ }
40
+ export { Hash };
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Hash = void 0;
4
+ const serialized_type_1 = require("./serialized-type");
5
+ const utils_1 = require("@transia/isomorphic/utils");
6
+ const utils_2 = require("../utils");
7
+ /**
8
+ * Base class defining how to encode and decode hashes
9
+ */
10
+ class Hash extends serialized_type_1.Comparable {
11
+ constructor(bytes) {
12
+ super(bytes);
13
+ if (this.bytes.length !== this.constructor.width) {
14
+ throw new Error(`Invalid Hash length ${this.bytes.byteLength}`);
15
+ }
16
+ }
17
+ /**
18
+ * Construct a Hash object from an existing Hash object or a hex-string
19
+ *
20
+ * @param value A hash object or hex-string of a hash
21
+ */
22
+ static from(value) {
23
+ if (value instanceof this) {
24
+ return value;
25
+ }
26
+ if (typeof value === 'string') {
27
+ if (!utils_1.HEX_REGEX.test(value)) {
28
+ throw new Error(`Invalid hash string ${value}`);
29
+ }
30
+ return new this((0, utils_1.hexToBytes)(value));
31
+ }
32
+ throw new Error('Cannot construct Hash from given value');
33
+ }
34
+ /**
35
+ * Read a Hash object from a BinaryParser
36
+ *
37
+ * @param parser BinaryParser to read the hash from
38
+ * @param hint length of the bytes to read, optional
39
+ */
40
+ static fromParser(parser, hint) {
41
+ return new this(parser.read(hint !== null && hint !== void 0 ? hint : this.width));
42
+ }
43
+ /**
44
+ * Overloaded operator for comparing two hash objects
45
+ *
46
+ * @param other The Hash to compare this to
47
+ */
48
+ compareTo(other) {
49
+ return (0, utils_2.compare)(this.bytes, this.constructor.from(other).bytes);
50
+ }
51
+ /**
52
+ * @returns the hex-string representation of this Hash
53
+ */
54
+ toString() {
55
+ return this.toHex();
56
+ }
57
+ /**
58
+ * Returns four bits at the specified depth within a hash
59
+ *
60
+ * @param depth The depth of the four bits
61
+ * @returns The number represented by the four bits
62
+ */
63
+ nibblet(depth) {
64
+ const byteIx = depth > 0 ? (depth / 2) | 0 : 0;
65
+ let b = this.bytes[byteIx];
66
+ if (depth % 2 === 0) {
67
+ b = (b & 0xf0) >>> 4;
68
+ }
69
+ else {
70
+ b = b & 0x0f;
71
+ }
72
+ return b;
73
+ }
74
+ }
75
+ exports.Hash = Hash;
76
+ //# sourceMappingURL=hash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hash.js","sourceRoot":"","sources":["../../../src/types/hash.ts"],"names":[],"mappings":";;;AAAA,uDAA8C;AAE9C,qDAAiE;AACjE,oCAAkC;AAElC;;GAEG;AACH,MAAM,IAAK,SAAQ,4BAAyB;IAG1C,YAAY,KAAiB;QAC3B,KAAK,CAAC,KAAK,CAAC,CAAA;QACZ,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAM,IAAI,CAAC,WAA2B,CAAC,KAAK,EAAE;YACjE,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAA;SAChE;IACH,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,IAAI,CAA0B,KAAQ;QAC3C,IAAI,KAAK,YAAY,IAAI,EAAE;YACzB,OAAO,KAAK,CAAA;SACb;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,IAAI,CAAC,iBAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBAC1B,MAAM,IAAI,KAAK,CAAC,uBAAuB,KAAK,EAAE,CAAC,CAAA;aAChD;YACD,OAAO,IAAI,IAAI,CAAC,IAAA,kBAAU,EAAC,KAAK,CAAC,CAAC,CAAA;SACnC;QAED,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAA;IAC3D,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,UAAU,CAAC,MAAoB,EAAE,IAAa;QACnD,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IAClD,CAAC;IAED;;;;OAIG;IACH,SAAS,CAAC,KAAW;QACnB,OAAO,IAAA,eAAO,EACZ,IAAI,CAAC,KAAK,EACT,IAAI,CAAC,WAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CACpD,CAAA;IACH,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,EAAE,CAAA;IACrB,CAAC;IAED;;;;;OAKG;IACH,OAAO,CAAC,KAAa;QACnB,MAAM,MAAM,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC9C,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAC1B,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC,EAAE;YACnB,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAA;SACrB;aAAM;YACL,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;SACb;QACD,OAAO,CAAC,CAAA;IACV,CAAC;CACF;AAEQ,oBAAI"}
@@ -0,0 +1,19 @@
1
+ import { AccountID } from './account-id';
2
+ import { Amount } from './amount';
3
+ import { Blob } from './blob';
4
+ import { Currency } from './currency';
5
+ import { Hash128 } from './hash-128';
6
+ import { Hash160 } from './hash-160';
7
+ import { Hash192 } from './hash-192';
8
+ import { Hash256 } from './hash-256';
9
+ import { PathSet } from './path-set';
10
+ import { STArray } from './st-array';
11
+ import { STObject } from './st-object';
12
+ import { UInt16 } from './uint-16';
13
+ import { UInt32 } from './uint-32';
14
+ import { UInt64 } from './uint-64';
15
+ import { UInt8 } from './uint-8';
16
+ import { Vector256 } from './vector-256';
17
+ import { type SerializedType } from './serialized-type';
18
+ declare const coreTypes: Record<string, typeof SerializedType>;
19
+ export { coreTypes, AccountID, Amount, Blob, Currency, Hash128, Hash160, Hash192, Hash256, PathSet, STArray, STObject, UInt8, UInt16, UInt32, UInt64, Vector256, };
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Vector256 = exports.UInt64 = exports.UInt32 = exports.UInt16 = exports.UInt8 = exports.STObject = exports.STArray = exports.PathSet = exports.Hash256 = exports.Hash192 = exports.Hash160 = exports.Hash128 = exports.Currency = exports.Blob = exports.Amount = exports.AccountID = exports.coreTypes = void 0;
4
+ const account_id_1 = require("./account-id");
5
+ Object.defineProperty(exports, "AccountID", { enumerable: true, get: function () { return account_id_1.AccountID; } });
6
+ const amount_1 = require("./amount");
7
+ Object.defineProperty(exports, "Amount", { enumerable: true, get: function () { return amount_1.Amount; } });
8
+ const blob_1 = require("./blob");
9
+ Object.defineProperty(exports, "Blob", { enumerable: true, get: function () { return blob_1.Blob; } });
10
+ const currency_1 = require("./currency");
11
+ Object.defineProperty(exports, "Currency", { enumerable: true, get: function () { return currency_1.Currency; } });
12
+ const hash_128_1 = require("./hash-128");
13
+ Object.defineProperty(exports, "Hash128", { enumerable: true, get: function () { return hash_128_1.Hash128; } });
14
+ const hash_160_1 = require("./hash-160");
15
+ Object.defineProperty(exports, "Hash160", { enumerable: true, get: function () { return hash_160_1.Hash160; } });
16
+ const hash_192_1 = require("./hash-192");
17
+ Object.defineProperty(exports, "Hash192", { enumerable: true, get: function () { return hash_192_1.Hash192; } });
18
+ const hash_256_1 = require("./hash-256");
19
+ Object.defineProperty(exports, "Hash256", { enumerable: true, get: function () { return hash_256_1.Hash256; } });
20
+ const issue_1 = require("./issue");
21
+ const st_number_1 = require("./st-number");
22
+ const path_set_1 = require("./path-set");
23
+ Object.defineProperty(exports, "PathSet", { enumerable: true, get: function () { return path_set_1.PathSet; } });
24
+ const st_array_1 = require("./st-array");
25
+ Object.defineProperty(exports, "STArray", { enumerable: true, get: function () { return st_array_1.STArray; } });
26
+ const st_object_1 = require("./st-object");
27
+ Object.defineProperty(exports, "STObject", { enumerable: true, get: function () { return st_object_1.STObject; } });
28
+ const uint_16_1 = require("./uint-16");
29
+ Object.defineProperty(exports, "UInt16", { enumerable: true, get: function () { return uint_16_1.UInt16; } });
30
+ const uint_32_1 = require("./uint-32");
31
+ Object.defineProperty(exports, "UInt32", { enumerable: true, get: function () { return uint_32_1.UInt32; } });
32
+ const uint_64_1 = require("./uint-64");
33
+ Object.defineProperty(exports, "UInt64", { enumerable: true, get: function () { return uint_64_1.UInt64; } });
34
+ const uint_8_1 = require("./uint-8");
35
+ Object.defineProperty(exports, "UInt8", { enumerable: true, get: function () { return uint_8_1.UInt8; } });
36
+ const vector_256_1 = require("./vector-256");
37
+ Object.defineProperty(exports, "Vector256", { enumerable: true, get: function () { return vector_256_1.Vector256; } });
38
+ const xchain_bridge_1 = require("./xchain-bridge");
39
+ const enums_1 = require("../enums");
40
+ const coreTypes = {
41
+ AccountID: account_id_1.AccountID,
42
+ Amount: amount_1.Amount,
43
+ Blob: blob_1.Blob,
44
+ Currency: currency_1.Currency,
45
+ Hash128: hash_128_1.Hash128,
46
+ Hash160: hash_160_1.Hash160,
47
+ Hash192: hash_192_1.Hash192,
48
+ Hash256: hash_256_1.Hash256,
49
+ Issue: issue_1.Issue,
50
+ Number: st_number_1.STNumber,
51
+ PathSet: path_set_1.PathSet,
52
+ STArray: st_array_1.STArray,
53
+ STObject: st_object_1.STObject,
54
+ UInt8: uint_8_1.UInt8,
55
+ UInt16: uint_16_1.UInt16,
56
+ UInt32: uint_32_1.UInt32,
57
+ UInt64: uint_64_1.UInt64,
58
+ Vector256: vector_256_1.Vector256,
59
+ XChainBridge: xchain_bridge_1.XChainBridge,
60
+ };
61
+ exports.coreTypes = coreTypes;
62
+ // Ensures that the DEFAULT_DEFINITIONS object connects these types to fields for serializing/deserializing
63
+ // This is done here instead of in enums/index.ts to avoid a circular dependency
64
+ // because some of the above types depend on BinarySerializer which depends on enums/index.ts.
65
+ enums_1.DEFAULT_DEFINITIONS.associateTypes(coreTypes);
66
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":";;;AAAA,6CAAwC;AAmDtC,0FAnDO,sBAAS,OAmDP;AAlDX,qCAAiC;AAmD/B,uFAnDO,eAAM,OAmDP;AAlDR,iCAA6B;AAmD3B,qFAnDO,WAAI,OAmDP;AAlDN,yCAAqC;AAmDnC,yFAnDO,mBAAQ,OAmDP;AAlDV,yCAAoC;AAmDlC,wFAnDO,kBAAO,OAmDP;AAlDT,yCAAoC;AAmDlC,wFAnDO,kBAAO,OAmDP;AAlDT,yCAAoC;AAmDlC,wFAnDO,kBAAO,OAmDP;AAlDT,yCAAoC;AAmDlC,wFAnDO,kBAAO,OAmDP;AAlDT,mCAA+B;AAC/B,2CAAsC;AACtC,yCAAoC;AAiDlC,wFAjDO,kBAAO,OAiDP;AAhDT,yCAAoC;AAiDlC,wFAjDO,kBAAO,OAiDP;AAhDT,2CAAsC;AAiDpC,yFAjDO,oBAAQ,OAiDP;AAhDV,uCAAkC;AAkDhC,uFAlDO,gBAAM,OAkDP;AAjDR,uCAAkC;AAkDhC,uFAlDO,gBAAM,OAkDP;AAjDR,uCAAkC;AAkDhC,uFAlDO,gBAAM,OAkDP;AAjDR,qCAAgC;AA8C9B,sFA9CO,cAAK,OA8CP;AA7CP,6CAAwC;AAiDtC,0FAjDO,sBAAS,OAiDP;AAhDX,mDAA8C;AAE9C,oCAA8C;AAE9C,MAAM,SAAS,GAA0C;IACvD,SAAS,EAAT,sBAAS;IACT,MAAM,EAAN,eAAM;IACN,IAAI,EAAJ,WAAI;IACJ,QAAQ,EAAR,mBAAQ;IACR,OAAO,EAAP,kBAAO;IACP,OAAO,EAAP,kBAAO;IACP,OAAO,EAAP,kBAAO;IACP,OAAO,EAAP,kBAAO;IACP,KAAK,EAAL,aAAK;IACL,MAAM,EAAE,oBAAQ;IAChB,OAAO,EAAP,kBAAO;IACP,OAAO,EAAP,kBAAO;IACP,QAAQ,EAAR,oBAAQ;IACR,KAAK,EAAL,cAAK;IACL,MAAM,EAAN,gBAAM;IACN,MAAM,EAAN,gBAAM;IACN,MAAM,EAAN,gBAAM;IACN,SAAS,EAAT,sBAAS;IACT,YAAY,EAAZ,4BAAY;CACb,CAAA;AAQC,8BAAS;AANX,2GAA2G;AAC3G,gFAAgF;AAChF,8FAA8F;AAC9F,2BAAmB,CAAC,cAAc,CAAC,SAAS,CAAC,CAAA"}
@@ -0,0 +1,48 @@
1
+ import { BinaryParser } from '../serdes/binary-parser';
2
+ import { JsonObject, SerializedType } from './serialized-type';
3
+ interface XRPIssue extends JsonObject {
4
+ currency: string;
5
+ }
6
+ interface IOUIssue extends JsonObject {
7
+ currency: string;
8
+ issuer: string;
9
+ }
10
+ interface MPTIssue extends JsonObject {
11
+ mpt_issuance_id: string;
12
+ }
13
+ /**
14
+ * Interface for JSON objects that represent issues
15
+ */
16
+ type IssueObject = XRPIssue | IOUIssue | MPTIssue;
17
+ /**
18
+ * Class for serializing/Deserializing Amounts
19
+ */
20
+ declare class Issue extends SerializedType {
21
+ static readonly ZERO_ISSUED_CURRENCY: Issue;
22
+ constructor(bytes: Uint8Array);
23
+ /**
24
+ * Construct an amount from an IOU or string amount
25
+ *
26
+ * @param value An Amount, object representing an IOU, MPTAmount, or a string
27
+ * representing an integer amount
28
+ * @returns An Issue object
29
+ */
30
+ static from<T extends Issue | IssueObject>(value: T): Issue;
31
+ /**
32
+ * Read an amount from a BinaryParser
33
+ *
34
+ * @param parser BinaryParser to read the Amount from
35
+ * @param hint The number of bytes to consume from the parser.
36
+ * For an MPT amount, pass 24 (the fixed length for Hash192).
37
+ *
38
+ * @returns An Issue object
39
+ */
40
+ static fromParser(parser: BinaryParser, hint?: number): Issue;
41
+ /**
42
+ * Get the JSON representation of this Amount
43
+ *
44
+ * @returns the JSON interpretation of this.bytes
45
+ */
46
+ toJSON(): IssueObject;
47
+ }
48
+ export { Issue, IssueObject };