@transia/ripple-binary-codec 1.4.6-alpha.9 → 2.5.1

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 (363) 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 +3 -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 +1604 -969
  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 +1606 -971
  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 +7 -8
  43. package/dist/serdes/binary-serializer.js +14 -37
  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 +65 -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 +3404 -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 +37 -0
  101. package/dist/src/types/account-id.js +73 -0
  102. package/dist/src/types/account-id.js.map +1 -0
  103. package/dist/src/types/amount.d.ts +92 -0
  104. package/dist/src/types/amount.js +292 -0
  105. package/dist/src/types/amount.js.map +1 -0
  106. package/dist/src/types/blob.d.ts +25 -0
  107. package/dist/src/types/blob.js +46 -0
  108. package/dist/src/types/blob.js.map +1 -0
  109. package/dist/src/types/currency.d.ts +30 -0
  110. package/dist/src/types/currency.js +131 -0
  111. package/dist/src/types/currency.js.map +1 -0
  112. package/dist/src/types/data.d.ts +104 -0
  113. package/dist/src/types/data.js +387 -0
  114. package/dist/src/types/data.js.map +1 -0
  115. package/dist/src/types/dataType.d.ts +94 -0
  116. package/dist/src/types/dataType.js +145 -0
  117. package/dist/src/types/dataType.js.map +1 -0
  118. package/dist/src/types/hash-128.d.ts +18 -0
  119. package/dist/src/types/hash-128.js +36 -0
  120. package/dist/src/types/hash-128.js.map +1 -0
  121. package/dist/src/types/hash-160.d.ts +12 -0
  122. package/dist/src/types/hash-160.js +23 -0
  123. package/dist/src/types/hash-160.js.map +1 -0
  124. package/dist/src/types/hash-192.d.ts +12 -0
  125. package/dist/src/types/hash-192.js +23 -0
  126. package/dist/src/types/hash-192.js.map +1 -0
  127. package/dist/src/types/hash-256.d.ts +12 -0
  128. package/dist/src/types/hash-256.js +20 -0
  129. package/dist/src/types/hash-256.js.map +1 -0
  130. package/dist/src/types/hash.d.ts +40 -0
  131. package/dist/src/types/hash.js +76 -0
  132. package/dist/src/types/hash.js.map +1 -0
  133. package/dist/src/types/index.d.ts +21 -0
  134. package/dist/src/types/index.js +72 -0
  135. package/dist/src/types/index.js.map +1 -0
  136. package/dist/src/types/issue.d.ts +49 -0
  137. package/dist/src/types/issue.js +107 -0
  138. package/dist/src/types/issue.js.map +1 -0
  139. package/dist/src/types/json.d.ts +169 -0
  140. package/dist/src/types/json.js +529 -0
  141. package/dist/src/types/json.js.map +1 -0
  142. package/dist/src/types/path-set.d.ts +37 -0
  143. package/dist/src/types/path-set.js +236 -0
  144. package/dist/src/types/path-set.js.map +1 -0
  145. package/dist/src/types/serialized-type.d.ts +117 -0
  146. package/dist/src/types/serialized-type.js +242 -0
  147. package/dist/src/types/serialized-type.js.map +1 -0
  148. package/dist/src/types/st-array.d.ts +32 -0
  149. package/dist/src/types/st-array.js +89 -0
  150. package/dist/src/types/st-array.js.map +1 -0
  151. package/dist/src/types/st-number.d.ts +55 -0
  152. package/dist/src/types/st-number.js +212 -0
  153. package/dist/src/types/st-number.js.map +1 -0
  154. package/dist/src/types/st-object.d.ts +33 -0
  155. package/dist/src/types/st-object.js +176 -0
  156. package/dist/src/types/st-object.js.map +1 -0
  157. package/dist/src/types/uint-16.d.ts +26 -0
  158. package/dist/src/types/uint-16.js +49 -0
  159. package/dist/src/types/uint-16.js.map +1 -0
  160. package/dist/src/types/uint-32.d.ts +26 -0
  161. package/dist/src/types/uint-32.js +54 -0
  162. package/dist/src/types/uint-32.js.map +1 -0
  163. package/dist/src/types/uint-64.d.ts +40 -0
  164. package/dist/src/types/uint-64.js +112 -0
  165. package/dist/src/types/uint-64.js.map +1 -0
  166. package/dist/src/types/uint-8.d.ts +26 -0
  167. package/dist/src/types/uint-8.js +50 -0
  168. package/dist/src/types/uint-8.js.map +1 -0
  169. package/dist/src/types/uint.d.ts +29 -0
  170. package/dist/src/types/uint.js +47 -0
  171. package/dist/src/types/uint.js.map +1 -0
  172. package/dist/src/types/vector-256.d.ts +31 -0
  173. package/dist/src/types/vector-256.js +76 -0
  174. package/dist/src/types/vector-256.js.map +1 -0
  175. package/dist/src/types/xchain-bridge.d.ts +45 -0
  176. package/dist/src/types/xchain-bridge.js +105 -0
  177. package/dist/src/types/xchain-bridge.js.map +1 -0
  178. package/dist/src/utils.d.ts +79 -0
  179. package/dist/src/utils.js +181 -0
  180. package/dist/src/utils.js.map +1 -0
  181. package/dist/tsconfig.tsbuildinfo +1 -0
  182. package/dist/types/account-id.d.ts +3 -2
  183. package/dist/types/account-id.js +8 -6
  184. package/dist/types/account-id.js.map +1 -1
  185. package/dist/types/amount.d.ts +33 -9
  186. package/dist/types/amount.js +128 -43
  187. package/dist/types/amount.js.map +1 -1
  188. package/dist/types/blob.d.ts +3 -3
  189. package/dist/types/blob.js +8 -2
  190. package/dist/types/blob.js.map +1 -1
  191. package/dist/types/currency.d.ts +3 -2
  192. package/dist/types/currency.js +17 -13
  193. package/dist/types/currency.js.map +1 -1
  194. package/dist/types/data.d.ts +104 -0
  195. package/dist/types/data.js +387 -0
  196. package/dist/types/data.js.map +1 -0
  197. package/dist/types/dataType.d.ts +94 -0
  198. package/dist/types/dataType.js +145 -0
  199. package/dist/types/dataType.js.map +1 -0
  200. package/dist/types/hash-128.d.ts +3 -2
  201. package/dist/types/hash-128.js +7 -3
  202. package/dist/types/hash-128.js.map +1 -1
  203. package/dist/types/hash-160.d.ts +3 -2
  204. package/dist/types/hash-160.js +5 -2
  205. package/dist/types/hash-160.js.map +1 -1
  206. package/dist/types/hash-192.d.ts +12 -0
  207. package/dist/types/hash-192.js +23 -0
  208. package/dist/types/hash-192.js.map +1 -0
  209. package/dist/types/hash-256.d.ts +3 -2
  210. package/dist/types/hash-256.js +5 -2
  211. package/dist/types/hash-256.js.map +1 -1
  212. package/dist/types/hash.d.ts +2 -3
  213. package/dist/types/hash.js +8 -4
  214. package/dist/types/hash.js.map +1 -1
  215. package/dist/types/index.d.ts +4 -1
  216. package/dist/types/index.js +17 -2
  217. package/dist/types/index.js.map +1 -1
  218. package/dist/types/issue.d.ts +49 -0
  219. package/dist/types/issue.js +107 -0
  220. package/dist/types/issue.js.map +1 -0
  221. package/dist/types/json.d.ts +169 -0
  222. package/dist/types/json.js +529 -0
  223. package/dist/types/json.js.map +1 -0
  224. package/dist/types/path-set.d.ts +2 -1
  225. package/dist/types/path-set.js +15 -12
  226. package/dist/types/path-set.js.map +1 -1
  227. package/dist/types/serialized-type.d.ts +70 -16
  228. package/dist/types/serialized-type.js +153 -8
  229. package/dist/types/serialized-type.js.map +1 -1
  230. package/dist/types/st-array.d.ts +7 -3
  231. package/dist/types/st-array.js +20 -11
  232. package/dist/types/st-array.js.map +1 -1
  233. package/dist/types/st-number.d.ts +55 -0
  234. package/dist/types/st-number.js +212 -0
  235. package/dist/types/st-number.js.map +1 -0
  236. package/dist/types/st-object.d.ts +2 -1
  237. package/dist/types/st-object.js +35 -8
  238. package/dist/types/st-object.js.map +1 -1
  239. package/dist/types/uint-16.d.ts +3 -2
  240. package/dist/types/uint-16.js +10 -5
  241. package/dist/types/uint-16.js.map +1 -1
  242. package/dist/types/uint-32.d.ts +3 -2
  243. package/dist/types/uint-32.js +11 -6
  244. package/dist/types/uint-32.js.map +1 -1
  245. package/dist/types/uint-64.d.ts +8 -7
  246. package/dist/types/uint-64.js +49 -24
  247. package/dist/types/uint-64.js.map +1 -1
  248. package/dist/types/uint-8.d.ts +3 -2
  249. package/dist/types/uint-8.js +11 -5
  250. package/dist/types/uint-8.js.map +1 -1
  251. package/dist/types/uint.d.ts +5 -6
  252. package/dist/types/uint.js +5 -0
  253. package/dist/types/uint.js.map +1 -1
  254. package/dist/types/vector-256.d.ts +3 -3
  255. package/dist/types/vector-256.js +5 -4
  256. package/dist/types/vector-256.js.map +1 -1
  257. package/dist/types/xchain-bridge.d.ts +45 -0
  258. package/dist/types/xchain-bridge.js +105 -0
  259. package/dist/types/xchain-bridge.js.map +1 -0
  260. package/dist/utils.d.ts +79 -0
  261. package/dist/utils.js +181 -0
  262. package/dist/utils.js.map +1 -0
  263. package/package.json +21 -17
  264. package/src/README.md +5 -0
  265. package/src/binary.ts +235 -0
  266. package/src/coretypes.ts +31 -0
  267. package/src/enums/README.md +144 -0
  268. package/src/enums/bytes.ts +80 -0
  269. package/src/enums/constants.ts +5 -0
  270. package/src/enums/definitions.json +3409 -0
  271. package/src/enums/field.ts +84 -0
  272. package/src/enums/index.ts +34 -0
  273. package/src/enums/utils-renumber.ts +134 -0
  274. package/src/enums/xrpl-definitions-base.ts +150 -0
  275. package/src/enums/xrpl-definitions.ts +33 -0
  276. package/src/hash-prefixes.ts +42 -0
  277. package/src/hashes.ts +75 -0
  278. package/src/index.ts +166 -0
  279. package/src/ledger-hashes.ts +191 -0
  280. package/src/quality.ts +38 -0
  281. package/src/serdes/binary-parser.ts +228 -0
  282. package/src/serdes/binary-serializer.ts +166 -0
  283. package/src/shamap.ts +189 -0
  284. package/src/types/account-id.ts +91 -0
  285. package/src/types/amount.ts +366 -0
  286. package/src/types/blob.ts +50 -0
  287. package/src/types/currency.ts +145 -0
  288. package/src/types/data.ts +496 -0
  289. package/src/types/dataType.ts +178 -0
  290. package/src/types/hash-128.ts +38 -0
  291. package/src/types/hash-160.ts +24 -0
  292. package/src/types/hash-192.ts +24 -0
  293. package/src/types/hash-256.ts +20 -0
  294. package/src/types/hash.ts +86 -0
  295. package/src/types/index.ts +74 -0
  296. package/src/types/issue.ts +140 -0
  297. package/src/types/json.ts +641 -0
  298. package/src/types/path-set.ts +294 -0
  299. package/src/types/serialized-type.ts +271 -0
  300. package/src/types/st-array.ts +117 -0
  301. package/src/types/st-number.ts +238 -0
  302. package/src/types/st-object.ts +219 -0
  303. package/src/types/uint-16.ts +58 -0
  304. package/src/types/uint-32.ts +64 -0
  305. package/src/types/uint-64.ts +141 -0
  306. package/src/types/uint-8.ts +57 -0
  307. package/src/types/uint.ts +60 -0
  308. package/src/types/vector-256.ts +83 -0
  309. package/src/types/xchain-bridge.ts +132 -0
  310. package/src/utils.ts +220 -0
  311. package/test/amount.test.js +0 -43
  312. package/test/binary-json.test.js +0 -45
  313. package/test/binary-parser.test.js +0 -396
  314. package/test/binary-serializer.test.js +0 -319
  315. package/test/definitions.test.js +0 -100
  316. package/test/fixtures/account-tx-transactions.db +0 -0
  317. package/test/fixtures/codec-fixtures.json +0 -4466
  318. package/test/fixtures/data-driven-tests.json +0 -2919
  319. package/test/fixtures/delivermin-tx-binary.json +0 -1
  320. package/test/fixtures/delivermin-tx.json +0 -98
  321. package/test/fixtures/deposit-preauth-tx-binary.json +0 -1
  322. package/test/fixtures/deposit-preauth-tx-meta-binary.json +0 -1
  323. package/test/fixtures/deposit-preauth-tx.json +0 -58
  324. package/test/fixtures/escrow-cancel-binary.json +0 -1
  325. package/test/fixtures/escrow-cancel-tx.json +0 -6
  326. package/test/fixtures/escrow-create-binary.json +0 -1
  327. package/test/fixtures/escrow-create-tx.json +0 -10
  328. package/test/fixtures/escrow-finish-binary.json +0 -1
  329. package/test/fixtures/escrow-finish-meta-binary.json +0 -1
  330. package/test/fixtures/escrow-finish-tx.json +0 -95
  331. package/test/fixtures/ledger-full-38129.json +0 -1
  332. package/test/fixtures/ledger-full-40000.json +0 -1
  333. package/test/fixtures/negative-unl.json +0 -12
  334. package/test/fixtures/nf-token.json +0 -547
  335. package/test/fixtures/payment-channel-claim-binary.json +0 -1
  336. package/test/fixtures/payment-channel-claim-tx.json +0 -8
  337. package/test/fixtures/payment-channel-create-binary.json +0 -1
  338. package/test/fixtures/payment-channel-create-tx.json +0 -11
  339. package/test/fixtures/payment-channel-fund-binary.json +0 -1
  340. package/test/fixtures/payment-channel-fund-tx.json +0 -7
  341. package/test/fixtures/remit-binary.json +0 -1
  342. package/test/fixtures/remit-tx.json +0 -39
  343. package/test/fixtures/signerlistset-tx-binary.json +0 -1
  344. package/test/fixtures/signerlistset-tx-meta-binary.json +0 -1
  345. package/test/fixtures/signerlistset-tx.json +0 -94
  346. package/test/fixtures/ticket-create-binary.json +0 -1
  347. package/test/fixtures/ticket-create-tx.json +0 -7
  348. package/test/fixtures/unl-report-binary.json +0 -1
  349. package/test/fixtures/unl-report-meta-binary.json +0 -1
  350. package/test/fixtures/unl-report.json +0 -89
  351. package/test/fixtures/x-codec-fixtures.json +0 -188
  352. package/test/hash.test.js +0 -135
  353. package/test/ledger.test.js +0 -29
  354. package/test/lower-case-hex.test.js +0 -46
  355. package/test/pseudo-transaction.test.js +0 -38
  356. package/test/quality.test.js +0 -15
  357. package/test/shamap.test.js +0 -89
  358. package/test/signing-data-encoding.test.js +0 -213
  359. package/test/tx-encode-decode.test.js +0 -119
  360. package/test/types.test.js +0 -34
  361. package/test/uint.test.js +0 -148
  362. package/test/utils.js +0 -30
  363. package/test/x-address.test.js +0 -181
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.js","sourceRoot":"","sources":["../../../src/types/json.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import { BinaryParser } from '../serdes/binary-parser';
2
+ import { SerializedType, JsonObject, SerializedTypeID } from './serialized-type';
3
+ /**
4
+ * The object representation of a Hop, an issuer AccountID, an account AccountID, and a Currency
5
+ */
6
+ interface HopObject extends JsonObject {
7
+ issuer?: string;
8
+ account?: string;
9
+ currency?: string;
10
+ }
11
+ /**
12
+ * Deserialize and Serialize the PathSet type
13
+ */
14
+ declare class PathSet extends SerializedType {
15
+ /**
16
+ * Construct a PathSet from an Array of Arrays representing paths
17
+ *
18
+ * @param value A PathSet or Array of Array of HopObjects
19
+ * @returns the PathSet constructed from value
20
+ */
21
+ static from<T extends PathSet | Array<Array<HopObject>>>(value: T): PathSet;
22
+ /**
23
+ * Construct a PathSet from a BinaryParser
24
+ *
25
+ * @param parser A BinaryParser to read PathSet from
26
+ * @returns the PathSet read from parser
27
+ */
28
+ static fromParser(parser: BinaryParser): PathSet;
29
+ /**
30
+ * Get the JSON representation of this PathSet
31
+ *
32
+ * @returns an Array of Array of HopObjects, representing this PathSet
33
+ */
34
+ toJSON(): Array<Array<HopObject>>;
35
+ getSType(): SerializedTypeID;
36
+ }
37
+ export { PathSet };
@@ -0,0 +1,236 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PathSet = void 0;
4
+ const account_id_1 = require("./account-id");
5
+ const currency_1 = require("./currency");
6
+ const binary_parser_1 = require("../serdes/binary-parser");
7
+ const serialized_type_1 = require("./serialized-type");
8
+ const utils_1 = require("@transia/isomorphic/utils");
9
+ /**
10
+ * Constants for separating Paths in a PathSet
11
+ */
12
+ const PATHSET_END_BYTE = 0x00;
13
+ const PATH_SEPARATOR_BYTE = 0xff;
14
+ /**
15
+ * Constant for masking types of a Hop
16
+ */
17
+ const TYPE_ACCOUNT = 0x01;
18
+ const TYPE_CURRENCY = 0x10;
19
+ const TYPE_ISSUER = 0x20;
20
+ /**
21
+ * TypeGuard for HopObject
22
+ */
23
+ function isHopObject(arg) {
24
+ return (arg.issuer !== undefined ||
25
+ arg.account !== undefined ||
26
+ arg.currency !== undefined);
27
+ }
28
+ /**
29
+ * TypeGuard for PathSet
30
+ */
31
+ function isPathSet(arg) {
32
+ return ((Array.isArray(arg) && arg.length === 0) ||
33
+ (Array.isArray(arg) && Array.isArray(arg[0]) && arg[0].length === 0) ||
34
+ (Array.isArray(arg) && Array.isArray(arg[0]) && isHopObject(arg[0][0])));
35
+ }
36
+ /**
37
+ * Serialize and Deserialize a Hop
38
+ */
39
+ class Hop extends serialized_type_1.SerializedType {
40
+ /**
41
+ * Create a Hop from a HopObject
42
+ *
43
+ * @param value Either a hop or HopObject to create a hop with
44
+ * @returns a Hop
45
+ */
46
+ static from(value) {
47
+ if (value instanceof Hop) {
48
+ return value;
49
+ }
50
+ const bytes = [Uint8Array.from([0])];
51
+ if (value.account) {
52
+ bytes.push(account_id_1.AccountID.from(value.account).toBytes());
53
+ bytes[0][0] |= TYPE_ACCOUNT;
54
+ }
55
+ if (value.currency) {
56
+ bytes.push(currency_1.Currency.from(value.currency).toBytes());
57
+ bytes[0][0] |= TYPE_CURRENCY;
58
+ }
59
+ if (value.issuer) {
60
+ bytes.push(account_id_1.AccountID.from(value.issuer).toBytes());
61
+ bytes[0][0] |= TYPE_ISSUER;
62
+ }
63
+ return new Hop((0, utils_1.concat)(bytes));
64
+ }
65
+ /**
66
+ * Construct a Hop from a BinaryParser
67
+ *
68
+ * @param parser BinaryParser to read the Hop from
69
+ * @returns a Hop
70
+ */
71
+ static fromParser(parser) {
72
+ const type = parser.readUInt8();
73
+ const bytes = [Uint8Array.from([type])];
74
+ if (type & TYPE_ACCOUNT) {
75
+ bytes.push(parser.read(account_id_1.AccountID.width));
76
+ }
77
+ if (type & TYPE_CURRENCY) {
78
+ bytes.push(parser.read(currency_1.Currency.width));
79
+ }
80
+ if (type & TYPE_ISSUER) {
81
+ bytes.push(parser.read(account_id_1.AccountID.width));
82
+ }
83
+ return new Hop((0, utils_1.concat)(bytes));
84
+ }
85
+ /**
86
+ * Get the JSON interpretation of this hop
87
+ *
88
+ * @returns a HopObject, an JS object with optional account, issuer, and currency
89
+ */
90
+ toJSON() {
91
+ const hopParser = new binary_parser_1.BinaryParser((0, utils_1.bytesToHex)(this.bytes));
92
+ const type = hopParser.readUInt8();
93
+ let account, currency, issuer;
94
+ if (type & TYPE_ACCOUNT) {
95
+ account = account_id_1.AccountID.fromParser(hopParser).toJSON();
96
+ }
97
+ if (type & TYPE_CURRENCY) {
98
+ currency = currency_1.Currency.fromParser(hopParser).toJSON();
99
+ }
100
+ if (type & TYPE_ISSUER) {
101
+ issuer = account_id_1.AccountID.fromParser(hopParser).toJSON();
102
+ }
103
+ const result = {};
104
+ if (account) {
105
+ result.account = account;
106
+ }
107
+ if (issuer) {
108
+ result.issuer = issuer;
109
+ }
110
+ if (currency) {
111
+ result.currency = currency;
112
+ }
113
+ return result;
114
+ }
115
+ /**
116
+ * get a number representing the type of this hop
117
+ *
118
+ * @returns a number to be bitwise and-ed with TYPE_ constants to describe the types in the hop
119
+ */
120
+ type() {
121
+ return this.bytes[0];
122
+ }
123
+ }
124
+ /**
125
+ * Class for serializing/deserializing Paths
126
+ */
127
+ class Path extends serialized_type_1.SerializedType {
128
+ /**
129
+ * construct a Path from an array of Hops
130
+ *
131
+ * @param value Path or array of HopObjects to construct a Path
132
+ * @returns the Path
133
+ */
134
+ static from(value) {
135
+ if (value instanceof Path) {
136
+ return value;
137
+ }
138
+ const bytes = [];
139
+ value.forEach((hop) => {
140
+ bytes.push(Hop.from(hop).toBytes());
141
+ });
142
+ return new Path((0, utils_1.concat)(bytes));
143
+ }
144
+ /**
145
+ * Read a Path from a BinaryParser
146
+ *
147
+ * @param parser BinaryParser to read Path from
148
+ * @returns the Path represented by the bytes read from the BinaryParser
149
+ */
150
+ static fromParser(parser) {
151
+ const bytes = [];
152
+ while (!parser.end()) {
153
+ bytes.push(Hop.fromParser(parser).toBytes());
154
+ if (parser.peek() === PATHSET_END_BYTE ||
155
+ parser.peek() === PATH_SEPARATOR_BYTE) {
156
+ break;
157
+ }
158
+ }
159
+ return new Path((0, utils_1.concat)(bytes));
160
+ }
161
+ /**
162
+ * Get the JSON representation of this Path
163
+ *
164
+ * @returns an Array of HopObject constructed from this.bytes
165
+ */
166
+ toJSON() {
167
+ const json = [];
168
+ const pathParser = new binary_parser_1.BinaryParser(this.toString());
169
+ while (!pathParser.end()) {
170
+ json.push(Hop.fromParser(pathParser).toJSON());
171
+ }
172
+ return json;
173
+ }
174
+ }
175
+ /**
176
+ * Deserialize and Serialize the PathSet type
177
+ */
178
+ class PathSet extends serialized_type_1.SerializedType {
179
+ /**
180
+ * Construct a PathSet from an Array of Arrays representing paths
181
+ *
182
+ * @param value A PathSet or Array of Array of HopObjects
183
+ * @returns the PathSet constructed from value
184
+ */
185
+ static from(value) {
186
+ if (value instanceof PathSet) {
187
+ return value;
188
+ }
189
+ if (isPathSet(value)) {
190
+ const bytes = [];
191
+ value.forEach((path) => {
192
+ bytes.push(Path.from(path).toBytes());
193
+ bytes.push(Uint8Array.from([PATH_SEPARATOR_BYTE]));
194
+ });
195
+ bytes[bytes.length - 1] = Uint8Array.from([PATHSET_END_BYTE]);
196
+ return new PathSet((0, utils_1.concat)(bytes));
197
+ }
198
+ throw new Error('Cannot construct PathSet from given value');
199
+ }
200
+ /**
201
+ * Construct a PathSet from a BinaryParser
202
+ *
203
+ * @param parser A BinaryParser to read PathSet from
204
+ * @returns the PathSet read from parser
205
+ */
206
+ static fromParser(parser) {
207
+ const bytes = [];
208
+ while (!parser.end()) {
209
+ bytes.push(Path.fromParser(parser).toBytes());
210
+ bytes.push(parser.read(1));
211
+ if (bytes[bytes.length - 1][0] == PATHSET_END_BYTE) {
212
+ break;
213
+ }
214
+ }
215
+ return new PathSet((0, utils_1.concat)(bytes));
216
+ }
217
+ /**
218
+ * Get the JSON representation of this PathSet
219
+ *
220
+ * @returns an Array of Array of HopObjects, representing this PathSet
221
+ */
222
+ toJSON() {
223
+ const json = [];
224
+ const pathParser = new binary_parser_1.BinaryParser(this.toString());
225
+ while (!pathParser.end()) {
226
+ json.push(Path.fromParser(pathParser).toJSON());
227
+ pathParser.skip(1);
228
+ }
229
+ return json;
230
+ }
231
+ getSType() {
232
+ return serialized_type_1.SerializedTypeID.STI_PATHSET;
233
+ }
234
+ }
235
+ exports.PathSet = PathSet;
236
+ //# sourceMappingURL=path-set.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-set.js","sourceRoot":"","sources":["../../../src/types/path-set.ts"],"names":[],"mappings":";;;AAAA,6CAAwC;AACxC,yCAAqC;AACrC,2DAAsD;AACtD,uDAAgF;AAChF,qDAA8D;AAE9D;;GAEG;AACH,MAAM,gBAAgB,GAAG,IAAI,CAAA;AAC7B,MAAM,mBAAmB,GAAG,IAAI,CAAA;AAEhC;;GAEG;AACH,MAAM,YAAY,GAAG,IAAI,CAAA;AACzB,MAAM,aAAa,GAAG,IAAI,CAAA;AAC1B,MAAM,WAAW,GAAG,IAAI,CAAA;AAWxB;;GAEG;AACH,SAAS,WAAW,CAAC,GAAG;IACtB,OAAO,CACL,GAAG,CAAC,MAAM,KAAK,SAAS;QACxB,GAAG,CAAC,OAAO,KAAK,SAAS;QACzB,GAAG,CAAC,QAAQ,KAAK,SAAS,CAC3B,CAAA;AACH,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,GAAG;IACpB,OAAO,CACL,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC;QACxC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;QACpE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACxE,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,GAAI,SAAQ,gCAAc;IAC9B;;;;;OAKG;IACH,MAAM,CAAC,IAAI,CAAC,KAAsB;QAChC,IAAI,KAAK,YAAY,GAAG,EAAE;YACxB,OAAO,KAAK,CAAA;SACb;QAED,MAAM,KAAK,GAAsB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAEvD,IAAI,KAAK,CAAC,OAAO,EAAE;YACjB,KAAK,CAAC,IAAI,CAAC,sBAAS,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;YACnD,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,YAAY,CAAA;SAC5B;QAED,IAAI,KAAK,CAAC,QAAQ,EAAE;YAClB,KAAK,CAAC,IAAI,CAAC,mBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;YACnD,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,aAAa,CAAA;SAC7B;QAED,IAAI,KAAK,CAAC,MAAM,EAAE;YAChB,KAAK,CAAC,IAAI,CAAC,sBAAS,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;YAClD,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,CAAA;SAC3B;QAED,OAAO,IAAI,GAAG,CAAC,IAAA,cAAM,EAAC,KAAK,CAAC,CAAC,CAAA;IAC/B,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,UAAU,CAAC,MAAoB;QACpC,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,EAAE,CAAA;QAC/B,MAAM,KAAK,GAAsB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAE1D,IAAI,IAAI,GAAG,YAAY,EAAE;YACvB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAS,CAAC,KAAK,CAAC,CAAC,CAAA;SACzC;QAED,IAAI,IAAI,GAAG,aAAa,EAAE;YACxB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;SACxC;QAED,IAAI,IAAI,GAAG,WAAW,EAAE;YACtB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAS,CAAC,KAAK,CAAC,CAAC,CAAA;SACzC;QAED,OAAO,IAAI,GAAG,CAAC,IAAA,cAAM,EAAC,KAAK,CAAC,CAAC,CAAA;IAC/B,CAAC;IAED;;;;OAIG;IACH,MAAM;QACJ,MAAM,SAAS,GAAG,IAAI,4BAAY,CAAC,IAAA,kBAAU,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;QAC1D,MAAM,IAAI,GAAG,SAAS,CAAC,SAAS,EAAE,CAAA;QAElC,IAAI,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAA;QAC7B,IAAI,IAAI,GAAG,YAAY,EAAE;YACvB,OAAO,GAAI,sBAAS,CAAC,UAAU,CAAC,SAAS,CAAe,CAAC,MAAM,EAAE,CAAA;SAClE;QAED,IAAI,IAAI,GAAG,aAAa,EAAE;YACxB,QAAQ,GAAI,mBAAQ,CAAC,UAAU,CAAC,SAAS,CAAc,CAAC,MAAM,EAAE,CAAA;SACjE;QAED,IAAI,IAAI,GAAG,WAAW,EAAE;YACtB,MAAM,GAAI,sBAAS,CAAC,UAAU,CAAC,SAAS,CAAe,CAAC,MAAM,EAAE,CAAA;SACjE;QAED,MAAM,MAAM,GAAc,EAAE,CAAA;QAC5B,IAAI,OAAO,EAAE;YACX,MAAM,CAAC,OAAO,GAAG,OAAO,CAAA;SACzB;QAED,IAAI,MAAM,EAAE;YACV,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;SACvB;QAED,IAAI,QAAQ,EAAE;YACZ,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAA;SAC3B;QAED,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;;OAIG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACtB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,IAAK,SAAQ,gCAAc;IAC/B;;;;;OAKG;IACH,MAAM,CAAC,IAAI,CAAC,KAA8B;QACxC,IAAI,KAAK,YAAY,IAAI,EAAE;YACzB,OAAO,KAAK,CAAA;SACb;QAED,MAAM,KAAK,GAAsB,EAAE,CAAA;QACnC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAc,EAAE,EAAE;YAC/B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;QACrC,CAAC,CAAC,CAAA;QAEF,OAAO,IAAI,IAAI,CAAC,IAAA,cAAM,EAAC,KAAK,CAAC,CAAC,CAAA;IAChC,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,UAAU,CAAC,MAAoB;QACpC,MAAM,KAAK,GAAsB,EAAE,CAAA;QACnC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE;YACpB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;YAE5C,IACE,MAAM,CAAC,IAAI,EAAE,KAAK,gBAAgB;gBAClC,MAAM,CAAC,IAAI,EAAE,KAAK,mBAAmB,EACrC;gBACA,MAAK;aACN;SACF;QACD,OAAO,IAAI,IAAI,CAAC,IAAA,cAAM,EAAC,KAAK,CAAC,CAAC,CAAA;IAChC,CAAC;IAED;;;;OAIG;IACH,MAAM;QACJ,MAAM,IAAI,GAAqB,EAAE,CAAA;QACjC,MAAM,UAAU,GAAG,IAAI,4BAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;QAEpD,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE;YACxB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,CAAC,CAAA;SAC/C;QAED,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAQ,SAAQ,gCAAc;IAClC;;;;;OAKG;IACH,MAAM,CAAC,IAAI,CAA8C,KAAQ;QAC/D,IAAI,KAAK,YAAY,OAAO,EAAE;YAC5B,OAAO,KAAK,CAAA;SACb;QAED,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE;YACpB,MAAM,KAAK,GAAsB,EAAE,CAAA;YAEnC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAsB,EAAE,EAAE;gBACvC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;gBACrC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAA;YACpD,CAAC,CAAC,CAAA;YAEF,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAA;YAE7D,OAAO,IAAI,OAAO,CAAC,IAAA,cAAM,EAAC,KAAK,CAAC,CAAC,CAAA;SAClC;QAED,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;IAC9D,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,UAAU,CAAC,MAAoB;QACpC,MAAM,KAAK,GAAsB,EAAE,CAAA;QAEnC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE;YACpB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;YAC7C,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;YAE1B,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,gBAAgB,EAAE;gBAClD,MAAK;aACN;SACF;QAED,OAAO,IAAI,OAAO,CAAC,IAAA,cAAM,EAAC,KAAK,CAAC,CAAC,CAAA;IACnC,CAAC;IAED;;;;OAIG;IACH,MAAM;QACJ,MAAM,IAAI,GAA4B,EAAE,CAAA;QACxC,MAAM,UAAU,GAAG,IAAI,4BAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;QAEpD,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE;YACxB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,CAAC,CAAA;YAC/C,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;SACnB;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAED,QAAQ;QACN,OAAO,kCAAgB,CAAC,WAAW,CAAA;IACrC,CAAC;CACF;AAEQ,0BAAO"}
@@ -0,0 +1,117 @@
1
+ import { BytesList } from '../serdes/binary-serializer';
2
+ import { BinaryParser } from '../serdes/binary-parser';
3
+ import { XrplDefinitionsBase } from '../enums';
4
+ /**
5
+ * Enum for SerializedTypeID values used in XRPL
6
+ * These match the C++ implementation's STI_ constants
7
+ */
8
+ export declare enum SerializedTypeID {
9
+ STI_NOTPRESENT = 0,
10
+ STI_UINT16 = 1,
11
+ STI_UINT32 = 2,
12
+ STI_UINT64 = 3,
13
+ STI_UINT128 = 4,
14
+ STI_UINT256 = 5,
15
+ STI_AMOUNT = 6,
16
+ STI_VL = 7,
17
+ STI_ACCOUNT = 8,
18
+ STI_NUMBER = 9,
19
+ STI_INT32 = 10,
20
+ STI_INT64 = 11,
21
+ STI_OBJECT = 14,
22
+ STI_ARRAY = 15,
23
+ STI_UINT8 = 16,
24
+ STI_UINT160 = 17,
25
+ STI_PATHSET = 18,
26
+ STI_VECTOR256 = 19,
27
+ STI_UINT96 = 20,
28
+ STI_UINT192 = 21,
29
+ STI_UINT384 = 22,
30
+ STI_UINT512 = 23,
31
+ STI_ISSUE = 24,
32
+ STI_XCHAIN_BRIDGE = 25,
33
+ STI_CURRENCY = 26,
34
+ STI_DATA = 27,
35
+ STI_DATATYPE = 28,
36
+ STI_JSON = 29
37
+ }
38
+ /**
39
+ * Map of type strings to SerializedTypeID values
40
+ */
41
+ export declare const TYPE_STRING_TO_ID: Record<string, SerializedTypeID>;
42
+ /**
43
+ * Map of type strings to SerializedTypeID values
44
+ */
45
+ export declare const TYPE_NUMBER_TO_ID: Record<number, SerializedTypeID>;
46
+ /**
47
+ * Map of SerializedTypeID values to type strings
48
+ */
49
+ export declare const TYPE_ID_TO_STRING: Record<SerializedTypeID, string>;
50
+ type JSON = string | number | boolean | null | undefined | JSON[] | JsonObject;
51
+ type JsonObject = {
52
+ [key: string]: JSON;
53
+ };
54
+ /**
55
+ * The base class for all binary-codec types
56
+ */
57
+ declare class SerializedType {
58
+ protected readonly bytes: Uint8Array;
59
+ constructor(bytes?: Uint8Array);
60
+ static fromParser(parser: BinaryParser, hint?: number): SerializedType;
61
+ static from(value: SerializedType | JSON | bigint): SerializedType;
62
+ /**
63
+ * Write the bytes representation of a SerializedType to a BytesList
64
+ *
65
+ * @param list The BytesList to write SerializedType bytes to
66
+ */
67
+ toBytesSink(list: BytesList): void;
68
+ /**
69
+ * Get the hex representation of a SerializedType's bytes
70
+ *
71
+ * @returns hex String of this.bytes
72
+ */
73
+ toHex(): string;
74
+ /**
75
+ * Get the bytes representation of a SerializedType
76
+ *
77
+ * @returns A Uint8Array of the bytes
78
+ */
79
+ toBytes(): Uint8Array;
80
+ /**
81
+ * Return the JSON representation of a SerializedType
82
+ *
83
+ * @param _definitions rippled definitions used to parse the values of transaction types and such.
84
+ * Unused in default, but used in STObject, STArray
85
+ * Can be customized for sidechains and amendments.
86
+ * @returns any type, if not overloaded returns hexString representation of bytes
87
+ */
88
+ toJSON(_definitions?: XrplDefinitionsBase, _fieldName?: string): JSON;
89
+ /**
90
+ * @returns hexString representation of this.bytes
91
+ */
92
+ toString(): string;
93
+ getSType(): SerializedTypeID;
94
+ }
95
+ /**
96
+ * Base class for SerializedTypes that are comparable.
97
+ *
98
+ * @template T - What types you want to allow comparisons between. You must specify all types. Primarily used to allow
99
+ * comparisons between built-in types (like `string`) and SerializedType subclasses (like `Hash`).
100
+ *
101
+ * Ex. `class Hash extends Comparable<Hash | string>`
102
+ */
103
+ declare class Comparable<T extends Object> extends SerializedType {
104
+ lt(other: T): boolean;
105
+ eq(other: T): boolean;
106
+ gt(other: T): boolean;
107
+ gte(other: T): boolean;
108
+ lte(other: T): boolean;
109
+ /**
110
+ * Overload this method to define how two Comparable SerializedTypes are compared
111
+ *
112
+ * @param other The comparable object to compare this to
113
+ * @returns A number denoting the relationship of this and other
114
+ */
115
+ compareTo(other: T): number;
116
+ }
117
+ export { SerializedType, Comparable, JSON, JsonObject };
@@ -0,0 +1,242 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Comparable = exports.SerializedType = exports.TYPE_ID_TO_STRING = exports.TYPE_NUMBER_TO_ID = exports.TYPE_STRING_TO_ID = exports.SerializedTypeID = void 0;
4
+ const binary_serializer_1 = require("../serdes/binary-serializer");
5
+ const utils_1 = require("@transia/isomorphic/utils");
6
+ /**
7
+ * Enum for SerializedTypeID values used in XRPL
8
+ * These match the C++ implementation's STI_ constants
9
+ */
10
+ var SerializedTypeID;
11
+ (function (SerializedTypeID) {
12
+ SerializedTypeID[SerializedTypeID["STI_NOTPRESENT"] = 0] = "STI_NOTPRESENT";
13
+ SerializedTypeID[SerializedTypeID["STI_UINT16"] = 1] = "STI_UINT16";
14
+ SerializedTypeID[SerializedTypeID["STI_UINT32"] = 2] = "STI_UINT32";
15
+ SerializedTypeID[SerializedTypeID["STI_UINT64"] = 3] = "STI_UINT64";
16
+ SerializedTypeID[SerializedTypeID["STI_UINT128"] = 4] = "STI_UINT128";
17
+ SerializedTypeID[SerializedTypeID["STI_UINT256"] = 5] = "STI_UINT256";
18
+ SerializedTypeID[SerializedTypeID["STI_AMOUNT"] = 6] = "STI_AMOUNT";
19
+ SerializedTypeID[SerializedTypeID["STI_VL"] = 7] = "STI_VL";
20
+ SerializedTypeID[SerializedTypeID["STI_ACCOUNT"] = 8] = "STI_ACCOUNT";
21
+ SerializedTypeID[SerializedTypeID["STI_NUMBER"] = 9] = "STI_NUMBER";
22
+ SerializedTypeID[SerializedTypeID["STI_INT32"] = 10] = "STI_INT32";
23
+ SerializedTypeID[SerializedTypeID["STI_INT64"] = 11] = "STI_INT64";
24
+ SerializedTypeID[SerializedTypeID["STI_OBJECT"] = 14] = "STI_OBJECT";
25
+ SerializedTypeID[SerializedTypeID["STI_ARRAY"] = 15] = "STI_ARRAY";
26
+ SerializedTypeID[SerializedTypeID["STI_UINT8"] = 16] = "STI_UINT8";
27
+ SerializedTypeID[SerializedTypeID["STI_UINT160"] = 17] = "STI_UINT160";
28
+ SerializedTypeID[SerializedTypeID["STI_PATHSET"] = 18] = "STI_PATHSET";
29
+ SerializedTypeID[SerializedTypeID["STI_VECTOR256"] = 19] = "STI_VECTOR256";
30
+ SerializedTypeID[SerializedTypeID["STI_UINT96"] = 20] = "STI_UINT96";
31
+ SerializedTypeID[SerializedTypeID["STI_UINT192"] = 21] = "STI_UINT192";
32
+ SerializedTypeID[SerializedTypeID["STI_UINT384"] = 22] = "STI_UINT384";
33
+ SerializedTypeID[SerializedTypeID["STI_UINT512"] = 23] = "STI_UINT512";
34
+ SerializedTypeID[SerializedTypeID["STI_ISSUE"] = 24] = "STI_ISSUE";
35
+ SerializedTypeID[SerializedTypeID["STI_XCHAIN_BRIDGE"] = 25] = "STI_XCHAIN_BRIDGE";
36
+ SerializedTypeID[SerializedTypeID["STI_CURRENCY"] = 26] = "STI_CURRENCY";
37
+ SerializedTypeID[SerializedTypeID["STI_DATA"] = 27] = "STI_DATA";
38
+ SerializedTypeID[SerializedTypeID["STI_DATATYPE"] = 28] = "STI_DATATYPE";
39
+ SerializedTypeID[SerializedTypeID["STI_JSON"] = 29] = "STI_JSON";
40
+ })(SerializedTypeID || (exports.SerializedTypeID = SerializedTypeID = {}));
41
+ /**
42
+ * Map of type strings to SerializedTypeID values
43
+ */
44
+ exports.TYPE_STRING_TO_ID = {
45
+ NOTPRESENT: SerializedTypeID.STI_NOTPRESENT,
46
+ UINT16: SerializedTypeID.STI_UINT16,
47
+ UINT32: SerializedTypeID.STI_UINT32,
48
+ UINT64: SerializedTypeID.STI_UINT64,
49
+ UINT128: SerializedTypeID.STI_UINT128,
50
+ UINT256: SerializedTypeID.STI_UINT256,
51
+ AMOUNT: SerializedTypeID.STI_AMOUNT,
52
+ VL: SerializedTypeID.STI_VL,
53
+ ACCOUNT: SerializedTypeID.STI_ACCOUNT,
54
+ NUMBER: SerializedTypeID.STI_NUMBER,
55
+ INT32: SerializedTypeID.STI_INT32,
56
+ INT64: SerializedTypeID.STI_INT64,
57
+ OBJECT: SerializedTypeID.STI_OBJECT,
58
+ ARRAY: SerializedTypeID.STI_ARRAY,
59
+ UINT8: SerializedTypeID.STI_UINT8,
60
+ UINT160: SerializedTypeID.STI_UINT160,
61
+ PATHSET: SerializedTypeID.STI_PATHSET,
62
+ VECTOR256: SerializedTypeID.STI_VECTOR256,
63
+ UINT96: SerializedTypeID.STI_UINT96,
64
+ UINT192: SerializedTypeID.STI_UINT192,
65
+ UINT384: SerializedTypeID.STI_UINT384,
66
+ UINT512: SerializedTypeID.STI_UINT512,
67
+ ISSUE: SerializedTypeID.STI_ISSUE,
68
+ XCHAIN_BRIDGE: SerializedTypeID.STI_XCHAIN_BRIDGE,
69
+ CURRENCY: SerializedTypeID.STI_CURRENCY,
70
+ DATA: SerializedTypeID.STI_DATA,
71
+ DATATYPE: SerializedTypeID.STI_DATATYPE,
72
+ JSON: SerializedTypeID.STI_JSON,
73
+ };
74
+ /**
75
+ * Map of type strings to SerializedTypeID values
76
+ */
77
+ exports.TYPE_NUMBER_TO_ID = {
78
+ 0: SerializedTypeID.STI_NOTPRESENT,
79
+ 1: SerializedTypeID.STI_UINT16,
80
+ 2: SerializedTypeID.STI_UINT32,
81
+ 3: SerializedTypeID.STI_UINT64,
82
+ 4: SerializedTypeID.STI_UINT128,
83
+ 5: SerializedTypeID.STI_UINT256,
84
+ 6: SerializedTypeID.STI_AMOUNT,
85
+ 7: SerializedTypeID.STI_VL,
86
+ 8: SerializedTypeID.STI_ACCOUNT,
87
+ 9: SerializedTypeID.STI_NUMBER,
88
+ 10: SerializedTypeID.STI_INT32,
89
+ 11: SerializedTypeID.STI_INT64,
90
+ 14: SerializedTypeID.STI_OBJECT,
91
+ 15: SerializedTypeID.STI_ARRAY,
92
+ 16: SerializedTypeID.STI_UINT8,
93
+ 17: SerializedTypeID.STI_UINT160,
94
+ 18: SerializedTypeID.STI_PATHSET,
95
+ 19: SerializedTypeID.STI_VECTOR256,
96
+ 20: SerializedTypeID.STI_UINT96,
97
+ 21: SerializedTypeID.STI_UINT192,
98
+ 22: SerializedTypeID.STI_UINT384,
99
+ 23: SerializedTypeID.STI_UINT512,
100
+ 24: SerializedTypeID.STI_ISSUE,
101
+ 25: SerializedTypeID.STI_XCHAIN_BRIDGE,
102
+ 26: SerializedTypeID.STI_CURRENCY,
103
+ 27: SerializedTypeID.STI_DATA,
104
+ 28: SerializedTypeID.STI_DATATYPE,
105
+ 29: SerializedTypeID.STI_JSON,
106
+ };
107
+ /**
108
+ * Map of SerializedTypeID values to type strings
109
+ */
110
+ exports.TYPE_ID_TO_STRING = {
111
+ [SerializedTypeID.STI_NOTPRESENT]: '',
112
+ [SerializedTypeID.STI_UINT16]: 'UINT16',
113
+ [SerializedTypeID.STI_UINT32]: 'UINT32',
114
+ [SerializedTypeID.STI_UINT64]: 'UINT64',
115
+ [SerializedTypeID.STI_UINT128]: 'UINT128',
116
+ [SerializedTypeID.STI_UINT256]: 'UINT256',
117
+ [SerializedTypeID.STI_AMOUNT]: 'AMOUNT',
118
+ [SerializedTypeID.STI_VL]: 'VL',
119
+ [SerializedTypeID.STI_ACCOUNT]: 'ACCOUNT',
120
+ [SerializedTypeID.STI_NUMBER]: 'NUMBER',
121
+ [SerializedTypeID.STI_INT32]: 'INT32',
122
+ [SerializedTypeID.STI_INT64]: 'INT64',
123
+ [SerializedTypeID.STI_OBJECT]: 'OBJECT',
124
+ [SerializedTypeID.STI_ARRAY]: 'ARRAY',
125
+ [SerializedTypeID.STI_UINT8]: 'UINT8',
126
+ [SerializedTypeID.STI_UINT160]: 'UINT160',
127
+ [SerializedTypeID.STI_PATHSET]: 'PATHSET',
128
+ [SerializedTypeID.STI_VECTOR256]: 'VECTOR256',
129
+ [SerializedTypeID.STI_UINT96]: 'UINT96',
130
+ [SerializedTypeID.STI_UINT192]: 'UINT192',
131
+ [SerializedTypeID.STI_UINT384]: 'UINT384',
132
+ [SerializedTypeID.STI_UINT512]: 'UINT512',
133
+ [SerializedTypeID.STI_ISSUE]: 'ISSUE',
134
+ [SerializedTypeID.STI_XCHAIN_BRIDGE]: 'XCHAIN_BRIDGE',
135
+ [SerializedTypeID.STI_CURRENCY]: 'CURRENCY',
136
+ [SerializedTypeID.STI_DATA]: 'DATA',
137
+ [SerializedTypeID.STI_DATATYPE]: 'DATATYPE',
138
+ [SerializedTypeID.STI_JSON]: 'JSON',
139
+ };
140
+ /**
141
+ * The base class for all binary-codec types
142
+ */
143
+ class SerializedType {
144
+ constructor(bytes) {
145
+ this.bytes = new Uint8Array(0);
146
+ this.bytes = bytes !== null && bytes !== void 0 ? bytes : new Uint8Array(0);
147
+ }
148
+ static fromParser(parser, hint) {
149
+ throw new Error('fromParser not implemented');
150
+ return this.fromParser(parser, hint);
151
+ }
152
+ static from(value) {
153
+ throw new Error('from not implemented');
154
+ return this.from(value);
155
+ }
156
+ /**
157
+ * Write the bytes representation of a SerializedType to a BytesList
158
+ *
159
+ * @param list The BytesList to write SerializedType bytes to
160
+ */
161
+ toBytesSink(list) {
162
+ list.put(this.bytes);
163
+ }
164
+ /**
165
+ * Get the hex representation of a SerializedType's bytes
166
+ *
167
+ * @returns hex String of this.bytes
168
+ */
169
+ toHex() {
170
+ return (0, utils_1.bytesToHex)(this.toBytes());
171
+ }
172
+ /**
173
+ * Get the bytes representation of a SerializedType
174
+ *
175
+ * @returns A Uint8Array of the bytes
176
+ */
177
+ toBytes() {
178
+ if (this.bytes) {
179
+ return this.bytes;
180
+ }
181
+ const bytes = new binary_serializer_1.BytesList();
182
+ this.toBytesSink(bytes);
183
+ return bytes.toBytes();
184
+ }
185
+ /**
186
+ * Return the JSON representation of a SerializedType
187
+ *
188
+ * @param _definitions rippled definitions used to parse the values of transaction types and such.
189
+ * Unused in default, but used in STObject, STArray
190
+ * Can be customized for sidechains and amendments.
191
+ * @returns any type, if not overloaded returns hexString representation of bytes
192
+ */
193
+ toJSON(_definitions, _fieldName) {
194
+ return this.toHex();
195
+ }
196
+ /**
197
+ * @returns hexString representation of this.bytes
198
+ */
199
+ toString() {
200
+ return this.toHex();
201
+ }
202
+ getSType() {
203
+ return this.getSType();
204
+ }
205
+ }
206
+ exports.SerializedType = SerializedType;
207
+ /**
208
+ * Base class for SerializedTypes that are comparable.
209
+ *
210
+ * @template T - What types you want to allow comparisons between. You must specify all types. Primarily used to allow
211
+ * comparisons between built-in types (like `string`) and SerializedType subclasses (like `Hash`).
212
+ *
213
+ * Ex. `class Hash extends Comparable<Hash | string>`
214
+ */
215
+ class Comparable extends SerializedType {
216
+ lt(other) {
217
+ return this.compareTo(other) < 0;
218
+ }
219
+ eq(other) {
220
+ return this.compareTo(other) === 0;
221
+ }
222
+ gt(other) {
223
+ return this.compareTo(other) > 0;
224
+ }
225
+ gte(other) {
226
+ return this.compareTo(other) > -1;
227
+ }
228
+ lte(other) {
229
+ return this.compareTo(other) < 1;
230
+ }
231
+ /**
232
+ * Overload this method to define how two Comparable SerializedTypes are compared
233
+ *
234
+ * @param other The comparable object to compare this to
235
+ * @returns A number denoting the relationship of this and other
236
+ */
237
+ compareTo(other) {
238
+ throw new Error(`cannot compare ${this.toString()} and ${other.toString()}`);
239
+ }
240
+ }
241
+ exports.Comparable = Comparable;
242
+ //# sourceMappingURL=serialized-type.js.map