@transia/ripple-binary-codec 1.4.6-alpha.8 → 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 (361) 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 +1650 -964
  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 +1652 -966
  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 -307
  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/signerlistset-tx-binary.json +0 -1
  342. package/test/fixtures/signerlistset-tx-meta-binary.json +0 -1
  343. package/test/fixtures/signerlistset-tx.json +0 -94
  344. package/test/fixtures/ticket-create-binary.json +0 -1
  345. package/test/fixtures/ticket-create-tx.json +0 -7
  346. package/test/fixtures/unl-report-binary.json +0 -1
  347. package/test/fixtures/unl-report-meta-binary.json +0 -1
  348. package/test/fixtures/unl-report.json +0 -89
  349. package/test/fixtures/x-codec-fixtures.json +0 -188
  350. package/test/hash.test.js +0 -135
  351. package/test/ledger.test.js +0 -29
  352. package/test/lower-case-hex.test.js +0 -46
  353. package/test/pseudo-transaction.test.js +0 -38
  354. package/test/quality.test.js +0 -15
  355. package/test/shamap.test.js +0 -89
  356. package/test/signing-data-encoding.test.js +0 -213
  357. package/test/tx-encode-decode.test.js +0 -119
  358. package/test/types.test.js +0 -34
  359. package/test/uint.test.js +0 -148
  360. package/test/utils.js +0 -30
  361. package/test/x-address.test.js +0 -181
@@ -0,0 +1,36 @@
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
+ const serialized_type_1 = require("./serialized-type");
7
+ /**
8
+ * Hash with a width of 128 bits
9
+ */
10
+ class Hash128 extends hash_1.Hash {
11
+ constructor(bytes) {
12
+ if (bytes && bytes.byteLength === 0) {
13
+ bytes = Hash128.ZERO_128.bytes;
14
+ }
15
+ super(bytes !== null && bytes !== void 0 ? bytes : Hash128.ZERO_128.bytes);
16
+ }
17
+ /**
18
+ * Get the hex representation of a hash-128 bytes, allowing unset
19
+ *
20
+ * @returns hex String of this.bytes
21
+ */
22
+ toHex() {
23
+ const hex = (0, utils_1.bytesToHex)(this.toBytes());
24
+ if (/^0+$/.exec(hex)) {
25
+ return '';
26
+ }
27
+ return hex;
28
+ }
29
+ getSType() {
30
+ return serialized_type_1.SerializedTypeID.STI_UINT128;
31
+ }
32
+ }
33
+ exports.Hash128 = Hash128;
34
+ Hash128.width = 16;
35
+ Hash128.ZERO_128 = new Hash128(new Uint8Array(Hash128.width));
36
+ //# 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;AACtD,uDAAoD;AAEpD;;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;IAED,QAAQ;QACN,OAAO,kCAAgB,CAAC,WAAW,CAAA;IACrC,CAAC;;AAGM,0BAAO;AA7BE,aAAK,GAAG,EAAE,CAAA;AACV,gBAAQ,GAAY,IAAI,OAAO,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA"}
@@ -0,0 +1,12 @@
1
+ import { Hash } from './hash';
2
+ import { SerializedTypeID } from './serialized-type';
3
+ /**
4
+ * Hash with a width of 160 bits
5
+ */
6
+ declare class Hash160 extends Hash {
7
+ static readonly width = 20;
8
+ static readonly ZERO_160: Hash160;
9
+ constructor(bytes?: Uint8Array);
10
+ getSType(): SerializedTypeID;
11
+ }
12
+ export { Hash160 };
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Hash160 = void 0;
4
+ const hash_1 = require("./hash");
5
+ const serialized_type_1 = require("./serialized-type");
6
+ /**
7
+ * Hash with a width of 160 bits
8
+ */
9
+ class Hash160 extends hash_1.Hash {
10
+ constructor(bytes) {
11
+ if (bytes && bytes.byteLength === 0) {
12
+ bytes = Hash160.ZERO_160.bytes;
13
+ }
14
+ super(bytes !== null && bytes !== void 0 ? bytes : Hash160.ZERO_160.bytes);
15
+ }
16
+ getSType() {
17
+ return serialized_type_1.SerializedTypeID.STI_UINT160;
18
+ }
19
+ }
20
+ exports.Hash160 = Hash160;
21
+ Hash160.width = 20;
22
+ Hash160.ZERO_160 = new Hash160(new Uint8Array(Hash160.width));
23
+ //# 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;AAC7B,uDAAoD;AAEpD;;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;IAED,QAAQ;QACN,OAAO,kCAAgB,CAAC,WAAW,CAAA;IACrC,CAAC;;AAGM,0BAAO;AAhBE,aAAK,GAAG,EAAE,CAAA;AACV,gBAAQ,GAAY,IAAI,OAAO,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA"}
@@ -0,0 +1,12 @@
1
+ import { Hash } from './hash';
2
+ import { SerializedTypeID } from './serialized-type';
3
+ /**
4
+ * Hash with a width of 192 bits
5
+ */
6
+ declare class Hash192 extends Hash {
7
+ static readonly width = 24;
8
+ static readonly ZERO_192: Hash192;
9
+ constructor(bytes?: Uint8Array);
10
+ getSType(): SerializedTypeID;
11
+ }
12
+ export { Hash192 };
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Hash192 = void 0;
4
+ const hash_1 = require("./hash");
5
+ const serialized_type_1 = require("./serialized-type");
6
+ /**
7
+ * Hash with a width of 192 bits
8
+ */
9
+ class Hash192 extends hash_1.Hash {
10
+ constructor(bytes) {
11
+ if (bytes && bytes.byteLength === 0) {
12
+ bytes = Hash192.ZERO_192.bytes;
13
+ }
14
+ super(bytes !== null && bytes !== void 0 ? bytes : Hash192.ZERO_192.bytes);
15
+ }
16
+ getSType() {
17
+ return serialized_type_1.SerializedTypeID.STI_UINT192;
18
+ }
19
+ }
20
+ exports.Hash192 = Hash192;
21
+ Hash192.width = 24;
22
+ Hash192.ZERO_192 = new Hash192(new Uint8Array(Hash192.width));
23
+ //# 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;AAC7B,uDAAoD;AAEpD;;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;IAED,QAAQ;QACN,OAAO,kCAAgB,CAAC,WAAW,CAAA;IACrC,CAAC;;AAGM,0BAAO;AAhBE,aAAK,GAAG,EAAE,CAAA;AACV,gBAAQ,GAAY,IAAI,OAAO,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA"}
@@ -0,0 +1,12 @@
1
+ import { Hash } from './hash';
2
+ import { SerializedTypeID } from './serialized-type';
3
+ /**
4
+ * Hash with a width of 256 bits
5
+ */
6
+ declare class Hash256 extends Hash {
7
+ static readonly width = 32;
8
+ static readonly ZERO_256: Hash256;
9
+ constructor(bytes: Uint8Array);
10
+ getSType(): SerializedTypeID;
11
+ }
12
+ export { Hash256 };
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Hash256 = void 0;
4
+ const hash_1 = require("./hash");
5
+ const serialized_type_1 = require("./serialized-type");
6
+ /**
7
+ * Hash with a width of 256 bits
8
+ */
9
+ class Hash256 extends hash_1.Hash {
10
+ constructor(bytes) {
11
+ super(bytes !== null && bytes !== void 0 ? bytes : Hash256.ZERO_256.bytes);
12
+ }
13
+ getSType() {
14
+ return serialized_type_1.SerializedTypeID.STI_UINT256;
15
+ }
16
+ }
17
+ exports.Hash256 = Hash256;
18
+ Hash256.width = 32;
19
+ Hash256.ZERO_256 = new Hash256(new Uint8Array(Hash256.width));
20
+ //# 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;AAC7B,uDAAoD;AAEpD;;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;IAED,QAAQ;QACN,OAAO,kCAAgB,CAAC,WAAW,CAAA;IACrC,CAAC;;AAGM,0BAAO;AAZE,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,21 @@
1
+ import { AccountID } from './account-id';
2
+ import { Amount } from './amount';
3
+ import { Blob } from './blob';
4
+ import { Currency } from './currency';
5
+ import { Data } from './data';
6
+ import { DataType } from './dataType';
7
+ import { Hash128 } from './hash-128';
8
+ import { Hash160 } from './hash-160';
9
+ import { Hash192 } from './hash-192';
10
+ import { Hash256 } from './hash-256';
11
+ import { PathSet } from './path-set';
12
+ import { STArray } from './st-array';
13
+ import { STObject } from './st-object';
14
+ import { UInt16 } from './uint-16';
15
+ import { UInt32 } from './uint-32';
16
+ import { UInt64 } from './uint-64';
17
+ import { UInt8 } from './uint-8';
18
+ import { Vector256 } from './vector-256';
19
+ import { type SerializedType } from './serialized-type';
20
+ declare const coreTypes: Record<string, typeof SerializedType>;
21
+ export { coreTypes, AccountID, Amount, Blob, Currency, Data, DataType, Hash128, Hash160, Hash192, Hash256, PathSet, STArray, STObject, UInt8, UInt16, UInt32, UInt64, Vector256, };
@@ -0,0 +1,72 @@
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.DataType = exports.Data = 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 data_1 = require("./data");
13
+ Object.defineProperty(exports, "Data", { enumerable: true, get: function () { return data_1.Data; } });
14
+ const dataType_1 = require("./dataType");
15
+ Object.defineProperty(exports, "DataType", { enumerable: true, get: function () { return dataType_1.DataType; } });
16
+ const hash_128_1 = require("./hash-128");
17
+ Object.defineProperty(exports, "Hash128", { enumerable: true, get: function () { return hash_128_1.Hash128; } });
18
+ const hash_160_1 = require("./hash-160");
19
+ Object.defineProperty(exports, "Hash160", { enumerable: true, get: function () { return hash_160_1.Hash160; } });
20
+ const hash_192_1 = require("./hash-192");
21
+ Object.defineProperty(exports, "Hash192", { enumerable: true, get: function () { return hash_192_1.Hash192; } });
22
+ const hash_256_1 = require("./hash-256");
23
+ Object.defineProperty(exports, "Hash256", { enumerable: true, get: function () { return hash_256_1.Hash256; } });
24
+ const issue_1 = require("./issue");
25
+ const st_number_1 = require("./st-number");
26
+ const path_set_1 = require("./path-set");
27
+ Object.defineProperty(exports, "PathSet", { enumerable: true, get: function () { return path_set_1.PathSet; } });
28
+ const st_array_1 = require("./st-array");
29
+ Object.defineProperty(exports, "STArray", { enumerable: true, get: function () { return st_array_1.STArray; } });
30
+ const st_object_1 = require("./st-object");
31
+ Object.defineProperty(exports, "STObject", { enumerable: true, get: function () { return st_object_1.STObject; } });
32
+ const uint_16_1 = require("./uint-16");
33
+ Object.defineProperty(exports, "UInt16", { enumerable: true, get: function () { return uint_16_1.UInt16; } });
34
+ const uint_32_1 = require("./uint-32");
35
+ Object.defineProperty(exports, "UInt32", { enumerable: true, get: function () { return uint_32_1.UInt32; } });
36
+ const uint_64_1 = require("./uint-64");
37
+ Object.defineProperty(exports, "UInt64", { enumerable: true, get: function () { return uint_64_1.UInt64; } });
38
+ const uint_8_1 = require("./uint-8");
39
+ Object.defineProperty(exports, "UInt8", { enumerable: true, get: function () { return uint_8_1.UInt8; } });
40
+ const vector_256_1 = require("./vector-256");
41
+ Object.defineProperty(exports, "Vector256", { enumerable: true, get: function () { return vector_256_1.Vector256; } });
42
+ const xchain_bridge_1 = require("./xchain-bridge");
43
+ const enums_1 = require("../enums");
44
+ const coreTypes = {
45
+ AccountID: account_id_1.AccountID,
46
+ Amount: amount_1.Amount,
47
+ Blob: blob_1.Blob,
48
+ Currency: currency_1.Currency,
49
+ Data: data_1.Data,
50
+ DataType: dataType_1.DataType,
51
+ Hash128: hash_128_1.Hash128,
52
+ Hash160: hash_160_1.Hash160,
53
+ Hash192: hash_192_1.Hash192,
54
+ Hash256: hash_256_1.Hash256,
55
+ Issue: issue_1.Issue,
56
+ Number: st_number_1.STNumber,
57
+ PathSet: path_set_1.PathSet,
58
+ STArray: st_array_1.STArray,
59
+ STObject: st_object_1.STObject,
60
+ UInt8: uint_8_1.UInt8,
61
+ UInt16: uint_16_1.UInt16,
62
+ UInt32: uint_32_1.UInt32,
63
+ UInt64: uint_64_1.UInt64,
64
+ Vector256: vector_256_1.Vector256,
65
+ XChainBridge: xchain_bridge_1.XChainBridge,
66
+ };
67
+ exports.coreTypes = coreTypes;
68
+ // Ensures that the DEFAULT_DEFINITIONS object connects these types to fields for serializing/deserializing
69
+ // This is done here instead of in enums/index.ts to avoid a circular dependency
70
+ // because some of the above types depend on BinarySerializer which depends on enums/index.ts.
71
+ enums_1.DEFAULT_DEFINITIONS.associateTypes(coreTypes);
72
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":";;;AAAA,6CAAwC;AAuDtC,0FAvDO,sBAAS,OAuDP;AAtDX,qCAAiC;AAuD/B,uFAvDO,eAAM,OAuDP;AAtDR,iCAA6B;AAuD3B,qFAvDO,WAAI,OAuDP;AAtDN,yCAAqC;AAuDnC,yFAvDO,mBAAQ,OAuDP;AAtDV,iCAA6B;AAuD3B,qFAvDO,WAAI,OAuDP;AAtDN,yCAAqC;AAuDnC,yFAvDO,mBAAQ,OAuDP;AAtDV,yCAAoC;AAuDlC,wFAvDO,kBAAO,OAuDP;AAtDT,yCAAoC;AAuDlC,wFAvDO,kBAAO,OAuDP;AAtDT,yCAAoC;AAuDlC,wFAvDO,kBAAO,OAuDP;AAtDT,yCAAoC;AAuDlC,wFAvDO,kBAAO,OAuDP;AAtDT,mCAA+B;AAC/B,2CAAsC;AACtC,yCAAoC;AAqDlC,wFArDO,kBAAO,OAqDP;AApDT,yCAAoC;AAqDlC,wFArDO,kBAAO,OAqDP;AApDT,2CAAsC;AAqDpC,yFArDO,oBAAQ,OAqDP;AApDV,uCAAkC;AAsDhC,uFAtDO,gBAAM,OAsDP;AArDR,uCAAkC;AAsDhC,uFAtDO,gBAAM,OAsDP;AArDR,uCAAkC;AAsDhC,uFAtDO,gBAAM,OAsDP;AArDR,qCAAgC;AAkD9B,sFAlDO,cAAK,OAkDP;AAjDP,6CAAwC;AAqDtC,0FArDO,sBAAS,OAqDP;AApDX,mDAA8C;AAE9C,oCAA8C;AAE9C,MAAM,SAAS,GAA0C;IACvD,SAAS,EAAT,sBAAS;IACT,MAAM,EAAN,eAAM;IACN,IAAI,EAAJ,WAAI;IACJ,QAAQ,EAAR,mBAAQ;IACR,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,49 @@
1
+ import { BinaryParser } from '../serdes/binary-parser';
2
+ import { JsonObject, SerializedType, SerializedTypeID } 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
+ getSType(): SerializedTypeID;
48
+ }
49
+ export { Issue, IssueObject };
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Issue = void 0;
4
+ const utils_1 = require("@transia/isomorphic/utils");
5
+ const binary_parser_1 = require("../serdes/binary-parser");
6
+ const account_id_1 = require("./account-id");
7
+ const currency_1 = require("./currency");
8
+ const serialized_type_1 = require("./serialized-type");
9
+ const hash_192_1 = require("./hash-192");
10
+ /**
11
+ * Type guard for Issue Object
12
+ */
13
+ function isIssueObject(arg) {
14
+ const keys = Object.keys(arg).sort();
15
+ const isXRP = keys.length === 1 && keys[0] === 'currency';
16
+ const isIOU = keys.length === 2 && keys[0] === 'currency' && keys[1] === 'issuer';
17
+ const isMPT = keys.length === 1 && keys[0] === 'mpt_issuance_id';
18
+ return isXRP || isIOU || isMPT;
19
+ }
20
+ /**
21
+ * Class for serializing/Deserializing Amounts
22
+ */
23
+ class Issue extends serialized_type_1.SerializedType {
24
+ constructor(bytes) {
25
+ super(bytes !== null && bytes !== void 0 ? bytes : Issue.ZERO_ISSUED_CURRENCY.bytes);
26
+ }
27
+ /**
28
+ * Construct an amount from an IOU or string amount
29
+ *
30
+ * @param value An Amount, object representing an IOU, MPTAmount, or a string
31
+ * representing an integer amount
32
+ * @returns An Issue object
33
+ */
34
+ static from(value) {
35
+ if (value instanceof Issue) {
36
+ return value;
37
+ }
38
+ if (isIssueObject(value)) {
39
+ if (value.currency) {
40
+ const currency = currency_1.Currency.from(value.currency.toString()).toBytes();
41
+ //IOU case
42
+ if (value.issuer) {
43
+ const issuer = account_id_1.AccountID.from(value.issuer.toString()).toBytes();
44
+ return new Issue((0, utils_1.concat)([currency, issuer]));
45
+ }
46
+ //XRP case
47
+ return new Issue(currency);
48
+ }
49
+ // MPT case
50
+ if (value.mpt_issuance_id) {
51
+ const mptIssuanceIdBytes = hash_192_1.Hash192.from(value.mpt_issuance_id.toString()).toBytes();
52
+ return new Issue(mptIssuanceIdBytes);
53
+ }
54
+ }
55
+ throw new Error('Invalid type to construct an Amount');
56
+ }
57
+ /**
58
+ * Read an amount from a BinaryParser
59
+ *
60
+ * @param parser BinaryParser to read the Amount from
61
+ * @param hint The number of bytes to consume from the parser.
62
+ * For an MPT amount, pass 24 (the fixed length for Hash192).
63
+ *
64
+ * @returns An Issue object
65
+ */
66
+ static fromParser(parser, hint) {
67
+ if (hint === hash_192_1.Hash192.width) {
68
+ const mptBytes = parser.read(hash_192_1.Hash192.width);
69
+ return new Issue(mptBytes);
70
+ }
71
+ const currency = parser.read(20);
72
+ if (new currency_1.Currency(currency).toJSON() === 'XRP') {
73
+ return new Issue(currency);
74
+ }
75
+ const currencyAndIssuer = [currency, parser.read(20)];
76
+ return new Issue((0, utils_1.concat)(currencyAndIssuer));
77
+ }
78
+ /**
79
+ * Get the JSON representation of this Amount
80
+ *
81
+ * @returns the JSON interpretation of this.bytes
82
+ */
83
+ toJSON() {
84
+ // If the buffer is exactly 24 bytes, treat it as an MPT amount.
85
+ if (this.toBytes().length === hash_192_1.Hash192.width) {
86
+ return {
87
+ mpt_issuance_id: this.toHex().toUpperCase(),
88
+ };
89
+ }
90
+ const parser = new binary_parser_1.BinaryParser(this.toString());
91
+ const currency = currency_1.Currency.fromParser(parser);
92
+ if (currency.toJSON() === 'XRP') {
93
+ return { currency: currency.toJSON() };
94
+ }
95
+ const issuer = account_id_1.AccountID.fromParser(parser);
96
+ return {
97
+ currency: currency.toJSON(),
98
+ issuer: issuer.toJSON(),
99
+ };
100
+ }
101
+ getSType() {
102
+ return serialized_type_1.SerializedTypeID.STI_ISSUE;
103
+ }
104
+ }
105
+ exports.Issue = Issue;
106
+ Issue.ZERO_ISSUED_CURRENCY = new Issue(new Uint8Array(20));
107
+ //# sourceMappingURL=issue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issue.js","sourceRoot":"","sources":["../../../src/types/issue.ts"],"names":[],"mappings":"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"}