ripple-binary-codec 1.0.4-beta.1 → 1.0.4-mpt-beta

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 (336) hide show
  1. package/README.md +3 -3
  2. package/dist/binary.d.ts +34 -20
  3. package/dist/binary.js +51 -36
  4. package/dist/binary.js.map +1 -1
  5. package/dist/coretypes.d.ts +9 -9
  6. package/dist/coretypes.js +33 -9
  7. package/dist/coretypes.js.map +1 -1
  8. package/dist/enums/bytes.d.ts +25 -0
  9. package/dist/enums/bytes.js +63 -0
  10. package/dist/enums/bytes.js.map +1 -0
  11. package/dist/enums/constants.d.ts +4 -0
  12. package/dist/enums/constants.js +8 -0
  13. package/dist/enums/constants.js.map +1 -0
  14. package/dist/enums/definitions.json +3066 -1780
  15. package/dist/enums/field.d.ts +28 -0
  16. package/dist/enums/field.js +58 -0
  17. package/dist/enums/field.js.map +1 -0
  18. package/dist/enums/index.d.ts +12 -46
  19. package/dist/enums/index.js +22 -111
  20. package/dist/enums/index.js.map +1 -1
  21. package/dist/enums/src/enums/definitions.json +3073 -0
  22. package/dist/enums/utils-renumber.js +20 -20
  23. package/dist/enums/utils-renumber.js.map +1 -1
  24. package/dist/enums/xrpl-definitions-base.d.ts +44 -0
  25. package/dist/enums/xrpl-definitions-base.js +59 -0
  26. package/dist/enums/xrpl-definitions-base.js.map +1 -0
  27. package/dist/enums/xrpl-definitions.d.ts +21 -0
  28. package/dist/enums/xrpl-definitions.js +29 -0
  29. package/dist/enums/xrpl-definitions.js.map +1 -0
  30. package/dist/hash-prefixes.d.ts +1 -2
  31. package/dist/hash-prefixes.js +7 -7
  32. package/dist/hash-prefixes.js.map +1 -1
  33. package/dist/hashes.d.ts +7 -8
  34. package/dist/hashes.js +23 -44
  35. package/dist/hashes.js.map +1 -1
  36. package/dist/index.d.ts +16 -17
  37. package/dist/index.js +65 -40
  38. package/dist/index.js.map +1 -1
  39. package/dist/ledger-hashes.d.ts +7 -5
  40. package/dist/ledger-hashes.js +40 -34
  41. package/dist/ledger-hashes.js.map +1 -1
  42. package/dist/quality.d.ts +3 -4
  43. package/dist/quality.js +20 -21
  44. package/dist/quality.js.map +1 -1
  45. package/dist/serdes/binary-parser.d.ts +8 -6
  46. package/dist/serdes/binary-parser.js +74 -65
  47. package/dist/serdes/binary-parser.js.map +1 -1
  48. package/dist/serdes/binary-serializer.d.ts +10 -11
  49. package/dist/serdes/binary-serializer.js +50 -49
  50. package/dist/serdes/binary-serializer.js.map +1 -1
  51. package/dist/shamap.d.ts +6 -7
  52. package/dist/shamap.js +74 -98
  53. package/dist/shamap.js.map +1 -1
  54. package/dist/src/binary.d.ts +90 -0
  55. package/dist/src/binary.js +128 -0
  56. package/dist/src/binary.js.map +1 -0
  57. package/dist/src/coretypes.d.ts +9 -0
  58. package/dist/src/coretypes.js +48 -0
  59. package/dist/src/coretypes.js.map +1 -0
  60. package/dist/src/enums/bytes.d.ts +25 -0
  61. package/dist/src/enums/bytes.js +63 -0
  62. package/dist/src/enums/bytes.js.map +1 -0
  63. package/dist/src/enums/constants.d.ts +4 -0
  64. package/dist/src/enums/constants.js +8 -0
  65. package/dist/src/enums/constants.js.map +1 -0
  66. package/dist/src/enums/definitions.json +3068 -0
  67. package/dist/src/enums/field.d.ts +28 -0
  68. package/dist/src/enums/field.js +58 -0
  69. package/dist/src/enums/field.js.map +1 -0
  70. package/dist/src/enums/index.d.ts +12 -0
  71. package/dist/src/enums/index.js +31 -0
  72. package/dist/src/enums/index.js.map +1 -0
  73. package/dist/src/enums/utils-renumber.d.ts +101 -0
  74. package/dist/src/enums/utils-renumber.js +127 -0
  75. package/dist/src/enums/utils-renumber.js.map +1 -0
  76. package/dist/src/enums/xrpl-definitions-base.d.ts +44 -0
  77. package/dist/src/enums/xrpl-definitions-base.js +59 -0
  78. package/dist/src/enums/xrpl-definitions-base.js.map +1 -0
  79. package/dist/src/enums/xrpl-definitions.d.ts +21 -0
  80. package/dist/src/enums/xrpl-definitions.js +29 -0
  81. package/dist/src/enums/xrpl-definitions.js.map +1 -0
  82. package/dist/src/hash-prefixes.d.ts +5 -0
  83. package/dist/src/hash-prefixes.js +41 -0
  84. package/dist/src/hash-prefixes.js.map +1 -0
  85. package/dist/src/hashes.d.ts +50 -0
  86. package/dist/src/hashes.js +76 -0
  87. package/dist/src/hashes.js.map +1 -0
  88. package/dist/src/index.d.ts +64 -0
  89. package/dist/src/index.js +123 -0
  90. package/dist/src/index.js.map +1 -0
  91. package/dist/src/ledger-hashes.d.ts +48 -0
  92. package/dist/src/ledger-hashes.js +141 -0
  93. package/dist/src/ledger-hashes.js.map +1 -0
  94. package/dist/src/quality.d.ts +21 -0
  95. package/dist/src/quality.js +42 -0
  96. package/dist/src/quality.js.map +1 -0
  97. package/dist/src/serdes/binary-parser.d.ts +100 -0
  98. package/dist/src/serdes/binary-parser.js +194 -0
  99. package/dist/src/serdes/binary-parser.js.map +1 -0
  100. package/dist/src/serdes/binary-serializer.d.ts +81 -0
  101. package/dist/src/serdes/binary-serializer.js +149 -0
  102. package/dist/src/serdes/binary-serializer.js.map +1 -0
  103. package/dist/src/shamap.d.ts +102 -0
  104. package/dist/src/shamap.js +172 -0
  105. package/dist/src/shamap.js.map +1 -0
  106. package/dist/src/types/account-id.d.ts +35 -0
  107. package/dist/src/types/account-id.js +69 -0
  108. package/dist/src/types/account-id.js.map +1 -0
  109. package/dist/src/types/amount.d.ts +91 -0
  110. package/dist/src/types/amount.js +289 -0
  111. package/dist/src/types/amount.js.map +1 -0
  112. package/dist/src/types/blob.d.ts +24 -0
  113. package/dist/src/types/blob.js +43 -0
  114. package/dist/src/types/blob.js.map +1 -0
  115. package/dist/src/types/currency.d.ts +28 -0
  116. package/dist/src/types/currency.js +127 -0
  117. package/dist/src/types/currency.js.map +1 -0
  118. package/dist/src/types/hash-128.d.ts +16 -0
  119. package/dist/src/types/hash-128.js +32 -0
  120. package/dist/src/types/hash-128.js.map +1 -0
  121. package/dist/src/types/hash-160.d.ts +10 -0
  122. package/dist/src/types/hash-160.js +19 -0
  123. package/dist/src/types/hash-160.js.map +1 -0
  124. package/dist/src/types/hash-192.d.ts +10 -0
  125. package/dist/src/types/hash-192.js +19 -0
  126. package/dist/src/types/hash-192.js.map +1 -0
  127. package/dist/src/types/hash-256.d.ts +10 -0
  128. package/dist/src/types/hash-256.js +16 -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 +73 -0
  132. package/dist/src/types/hash.js.map +1 -0
  133. package/dist/src/types/index.d.ts +19 -0
  134. package/dist/src/types/index.js +64 -0
  135. package/dist/src/types/index.js.map +1 -0
  136. package/dist/src/types/issue.d.ts +38 -0
  137. package/dist/src/types/issue.js +81 -0
  138. package/dist/src/types/issue.js.map +1 -0
  139. package/dist/src/types/path-set.d.ts +36 -0
  140. package/dist/src/types/path-set.js +233 -0
  141. package/dist/src/types/path-set.js.map +1 -0
  142. package/dist/src/types/serialized-type.d.ts +70 -0
  143. package/dist/src/types/serialized-type.js +105 -0
  144. package/dist/src/types/serialized-type.js.map +1 -0
  145. package/dist/src/types/st-array.d.ts +31 -0
  146. package/dist/src/types/st-array.js +86 -0
  147. package/dist/src/types/st-array.js.map +1 -0
  148. package/dist/src/types/st-object.d.ts +32 -0
  149. package/dist/src/types/st-object.js +155 -0
  150. package/dist/src/types/st-object.js.map +1 -0
  151. package/dist/src/types/uint-16.d.ts +24 -0
  152. package/dist/src/types/uint-16.js +45 -0
  153. package/dist/src/types/uint-16.js.map +1 -0
  154. package/dist/src/types/uint-32.d.ts +24 -0
  155. package/dist/src/types/uint-32.js +50 -0
  156. package/dist/src/types/uint-32.js.map +1 -0
  157. package/dist/src/types/uint-64.d.ts +37 -0
  158. package/dist/src/types/uint-64.js +86 -0
  159. package/dist/src/types/uint-64.js.map +1 -0
  160. package/dist/src/types/uint-8.d.ts +24 -0
  161. package/dist/src/types/uint-8.js +46 -0
  162. package/dist/src/types/uint-8.js.map +1 -0
  163. package/dist/src/types/uint.d.ts +29 -0
  164. package/dist/src/types/uint.js +47 -0
  165. package/dist/src/types/uint.js.map +1 -0
  166. package/dist/src/types/vector-256.d.ts +30 -0
  167. package/dist/src/types/vector-256.js +73 -0
  168. package/dist/src/types/vector-256.js.map +1 -0
  169. package/dist/src/types/xchain-bridge.d.ts +44 -0
  170. package/dist/src/types/xchain-bridge.js +102 -0
  171. package/dist/src/types/xchain-bridge.js.map +1 -0
  172. package/dist/src/utils.d.ts +47 -0
  173. package/dist/src/utils.js +137 -0
  174. package/dist/src/utils.js.map +1 -0
  175. package/dist/tsconfig.tsbuildinfo +1 -0
  176. package/dist/types/account-id.d.ts +2 -3
  177. package/dist/types/account-id.js +29 -40
  178. package/dist/types/account-id.js.map +1 -1
  179. package/dist/types/amount.d.ts +33 -10
  180. package/dist/types/amount.js +181 -114
  181. package/dist/types/amount.js.map +1 -1
  182. package/dist/types/blob.d.ts +3 -4
  183. package/dist/types/blob.js +16 -28
  184. package/dist/types/blob.js.map +1 -1
  185. package/dist/types/currency.d.ts +5 -13
  186. package/dist/types/currency.js +53 -67
  187. package/dist/types/currency.js.map +1 -1
  188. package/dist/types/hash-128.d.ts +8 -3
  189. package/dist/types/hash-128.js +23 -23
  190. package/dist/types/hash-128.js.map +1 -1
  191. package/dist/types/hash-160.d.ts +2 -3
  192. package/dist/types/hash-160.js +7 -25
  193. package/dist/types/hash-160.js.map +1 -1
  194. package/dist/types/hash-192.d.ts +10 -0
  195. package/dist/types/hash-192.js +19 -0
  196. package/dist/types/hash-192.js.map +1 -0
  197. package/dist/types/hash-256.d.ts +2 -3
  198. package/dist/types/hash-256.js +7 -23
  199. package/dist/types/hash-256.js.map +1 -1
  200. package/dist/types/hash.d.ts +4 -5
  201. package/dist/types/hash.js +25 -40
  202. package/dist/types/hash.js.map +1 -1
  203. package/dist/types/index.d.ts +19 -33
  204. package/dist/types/index.js +44 -24
  205. package/dist/types/index.js.map +1 -1
  206. package/dist/types/issue.d.ts +38 -0
  207. package/dist/types/issue.js +81 -0
  208. package/dist/types/issue.js.map +1 -0
  209. package/dist/types/path-set.d.ts +2 -2
  210. package/dist/types/path-set.js +73 -95
  211. package/dist/types/path-set.js.map +1 -1
  212. package/dist/types/serialized-type.d.ts +27 -20
  213. package/dist/types/serialized-type.js +50 -61
  214. package/dist/types/serialized-type.js.map +1 -1
  215. package/dist/types/st-array.d.ts +7 -4
  216. package/dist/types/st-array.js +36 -48
  217. package/dist/types/st-array.js.map +1 -1
  218. package/dist/types/st-object.d.ts +8 -5
  219. package/dist/types/st-object.js +73 -75
  220. package/dist/types/st-object.js.map +1 -1
  221. package/dist/types/uint-16.d.ts +3 -4
  222. package/dist/types/uint-16.js +20 -34
  223. package/dist/types/uint-16.js.map +1 -1
  224. package/dist/types/uint-32.d.ts +3 -4
  225. package/dist/types/uint-32.js +23 -37
  226. package/dist/types/uint-32.js.map +1 -1
  227. package/dist/types/uint-64.d.ts +6 -8
  228. package/dist/types/uint-64.js +43 -58
  229. package/dist/types/uint-64.js.map +1 -1
  230. package/dist/types/uint-8.d.ts +3 -4
  231. package/dist/types/uint-8.js +21 -34
  232. package/dist/types/uint-8.js.map +1 -1
  233. package/dist/types/uint.d.ts +6 -7
  234. package/dist/types/uint.js +16 -26
  235. package/dist/types/uint.js.map +1 -1
  236. package/dist/types/vector-256.d.ts +3 -4
  237. package/dist/types/vector-256.js +28 -45
  238. package/dist/types/vector-256.js.map +1 -1
  239. package/dist/types/xchain-bridge.d.ts +44 -0
  240. package/dist/types/xchain-bridge.js +102 -0
  241. package/dist/types/xchain-bridge.js.map +1 -0
  242. package/dist/utils.d.ts +47 -0
  243. package/dist/utils.js +137 -0
  244. package/dist/utils.js.map +1 -0
  245. package/package.json +23 -36
  246. package/src/README.md +5 -0
  247. package/src/binary.ts +194 -0
  248. package/src/coretypes.ts +31 -0
  249. package/src/enums/README.md +144 -0
  250. package/src/enums/bytes.ts +74 -0
  251. package/src/enums/constants.ts +4 -0
  252. package/src/enums/definitions.json +3073 -0
  253. package/src/enums/field.ts +84 -0
  254. package/src/enums/index.ts +34 -0
  255. package/src/enums/utils-renumber.ts +134 -0
  256. package/src/enums/xrpl-definitions-base.ts +111 -0
  257. package/src/enums/xrpl-definitions.ts +32 -0
  258. package/src/hash-prefixes.ts +40 -0
  259. package/src/hashes.ts +75 -0
  260. package/src/index.ts +153 -0
  261. package/src/ledger-hashes.ts +191 -0
  262. package/src/quality.ts +38 -0
  263. package/src/serdes/binary-parser.ts +228 -0
  264. package/src/serdes/binary-serializer.ts +166 -0
  265. package/src/shamap.ts +186 -0
  266. package/src/types/account-id.ts +86 -0
  267. package/src/types/amount.ts +362 -0
  268. package/src/types/blob.ts +46 -0
  269. package/src/types/currency.ts +140 -0
  270. package/src/types/hash-128.ts +33 -0
  271. package/src/types/hash-160.ts +19 -0
  272. package/src/types/hash-192.ts +19 -0
  273. package/src/types/hash-256.ts +15 -0
  274. package/src/types/hash.ts +83 -0
  275. package/src/types/index.ts +66 -0
  276. package/src/types/issue.ts +96 -0
  277. package/src/types/path-set.ts +290 -0
  278. package/src/types/serialized-type.ts +122 -0
  279. package/src/types/st-array.ts +113 -0
  280. package/src/types/st-object.ts +192 -0
  281. package/src/types/uint-16.ts +53 -0
  282. package/src/types/uint-32.ts +59 -0
  283. package/src/types/uint-64.ts +104 -0
  284. package/src/types/uint-8.ts +52 -0
  285. package/src/types/uint.ts +60 -0
  286. package/src/types/vector-256.ts +79 -0
  287. package/src/types/xchain-bridge.ts +128 -0
  288. package/src/utils.ts +152 -0
  289. package/HISTORY.md +0 -74
  290. package/dist/index.js.LICENSE.txt +0 -17
  291. package/test/amount.test.js +0 -43
  292. package/test/binary-json.test.js +0 -47
  293. package/test/binary-parser.test.js +0 -398
  294. package/test/binary-serializer.test.js +0 -264
  295. package/test/fixtures/account-tx-transactions.db +0 -0
  296. package/test/fixtures/codec-fixtures.json +0 -4466
  297. package/test/fixtures/data-driven-tests.json +0 -3721
  298. package/test/fixtures/delivermin-tx-binary.json +0 -1
  299. package/test/fixtures/delivermin-tx.json +0 -98
  300. package/test/fixtures/deposit-preauth-tx-binary.json +0 -1
  301. package/test/fixtures/deposit-preauth-tx-meta-binary.json +0 -1
  302. package/test/fixtures/deposit-preauth-tx.json +0 -58
  303. package/test/fixtures/escrow-cancel-binary.json +0 -1
  304. package/test/fixtures/escrow-cancel-tx.json +0 -6
  305. package/test/fixtures/escrow-create-binary.json +0 -1
  306. package/test/fixtures/escrow-create-tx.json +0 -10
  307. package/test/fixtures/escrow-finish-binary.json +0 -1
  308. package/test/fixtures/escrow-finish-meta-binary.json +0 -1
  309. package/test/fixtures/escrow-finish-tx.json +0 -95
  310. package/test/fixtures/ledger-full-38129.json +0 -1
  311. package/test/fixtures/ledger-full-40000.json +0 -1
  312. package/test/fixtures/negative-unl.json +0 -12
  313. package/test/fixtures/payment-channel-claim-binary.json +0 -1
  314. package/test/fixtures/payment-channel-claim-tx.json +0 -8
  315. package/test/fixtures/payment-channel-create-binary.json +0 -1
  316. package/test/fixtures/payment-channel-create-tx.json +0 -11
  317. package/test/fixtures/payment-channel-fund-binary.json +0 -1
  318. package/test/fixtures/payment-channel-fund-tx.json +0 -7
  319. package/test/fixtures/signerlistset-tx-binary.json +0 -1
  320. package/test/fixtures/signerlistset-tx-meta-binary.json +0 -1
  321. package/test/fixtures/signerlistset-tx.json +0 -94
  322. package/test/fixtures/ticket-create-binary.json +0 -1
  323. package/test/fixtures/ticket-create-tx.json +0 -7
  324. package/test/fixtures/x-codec-fixtures.json +0 -188
  325. package/test/hash.test.js +0 -83
  326. package/test/ledger.test.js +0 -29
  327. package/test/lower-case-hex.test.js +0 -45
  328. package/test/pseudo-transaction.test.js +0 -38
  329. package/test/quality.test.js +0 -15
  330. package/test/shamap.test.js +0 -89
  331. package/test/signing-data-encoding.test.js +0 -129
  332. package/test/tx-encode-decode.test.js +0 -97
  333. package/test/types.test.js +0 -34
  334. package/test/uint.test.js +0 -40
  335. package/test/utils.js +0 -30
  336. package/test/x-address.test.js +0 -147
package/dist/shamap.js CHANGED
@@ -1,161 +1,139 @@
1
1
  "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- extendStatics(d, b);
11
- function __() { this.constructor = d; }
12
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
13
- };
14
- })();
15
2
  Object.defineProperty(exports, "__esModule", { value: true });
16
3
  exports.ShaMapLeaf = exports.ShaMapNode = exports.ShaMap = void 0;
17
- var assert_1 = require("assert");
18
- var types_1 = require("./types");
19
- var hash_prefixes_1 = require("./hash-prefixes");
20
- var hashes_1 = require("./hashes");
21
- var buffer_1 = require("buffer/");
4
+ const types_1 = require("./types");
5
+ const hash_prefixes_1 = require("./hash-prefixes");
6
+ const hashes_1 = require("./hashes");
22
7
  /**
23
8
  * Abstract class describing a SHAMapNode
24
9
  */
25
- var ShaMapNode = /** @class */ (function () {
26
- function ShaMapNode() {
27
- }
28
- return ShaMapNode;
29
- }());
10
+ class ShaMapNode {
11
+ }
30
12
  exports.ShaMapNode = ShaMapNode;
31
13
  /**
32
14
  * Class describing a Leaf of SHAMap
33
15
  */
34
- var ShaMapLeaf = /** @class */ (function (_super) {
35
- __extends(ShaMapLeaf, _super);
36
- function ShaMapLeaf(index, item) {
37
- var _this = _super.call(this) || this;
38
- _this.index = index;
39
- _this.item = item;
40
- return _this;
16
+ class ShaMapLeaf extends ShaMapNode {
17
+ constructor(index, item) {
18
+ super();
19
+ this.index = index;
20
+ this.item = item;
41
21
  }
42
22
  /**
43
23
  * @returns true as ShaMapLeaf is a leaf node
44
24
  */
45
- ShaMapLeaf.prototype.isLeaf = function () {
25
+ isLeaf() {
46
26
  return true;
47
- };
27
+ }
48
28
  /**
49
29
  * @returns false as ShaMapLeaf is not an inner node
50
30
  */
51
- ShaMapLeaf.prototype.isInner = function () {
31
+ isInner() {
52
32
  return false;
53
- };
33
+ }
54
34
  /**
55
35
  * Get the prefix of the this.item
56
36
  *
57
- * @returns The hash prefix, unless this.item is undefined, then it returns an empty Buffer
37
+ * @returns The hash prefix, unless this.item is undefined, then it returns an empty Uint8Array
58
38
  */
59
- ShaMapLeaf.prototype.hashPrefix = function () {
60
- return this.item === undefined ? buffer_1.Buffer.alloc(0) : this.item.hashPrefix();
61
- };
39
+ hashPrefix() {
40
+ return this.item === undefined ? new Uint8Array(0) : this.item.hashPrefix();
41
+ }
62
42
  /**
63
43
  * Hash the bytes representation of this
64
44
  *
65
45
  * @returns hash of this.item concatenated with this.index
66
46
  */
67
- ShaMapLeaf.prototype.hash = function () {
68
- var hash = hashes_1.Sha512Half.put(this.hashPrefix());
47
+ hash() {
48
+ const hash = hashes_1.Sha512Half.put(this.hashPrefix());
69
49
  this.toBytesSink(hash);
70
50
  return hash.finish();
71
- };
51
+ }
72
52
  /**
73
53
  * Write the bytes representation of this to a BytesList
74
54
  * @param list BytesList to write bytes to
75
55
  */
76
- ShaMapLeaf.prototype.toBytesSink = function (list) {
56
+ toBytesSink(list) {
77
57
  if (this.item !== undefined) {
78
58
  this.item.toBytesSink(list);
79
59
  }
80
60
  this.index.toBytesSink(list);
81
- };
82
- return ShaMapLeaf;
83
- }(ShaMapNode));
61
+ }
62
+ }
84
63
  exports.ShaMapLeaf = ShaMapLeaf;
85
64
  /**
86
65
  * Class defining an Inner Node of a SHAMap
87
66
  */
88
- var ShaMapInner = /** @class */ (function (_super) {
89
- __extends(ShaMapInner, _super);
90
- function ShaMapInner(depth) {
91
- if (depth === void 0) { depth = 0; }
92
- var _this = _super.call(this) || this;
93
- _this.depth = depth;
94
- _this.slotBits = 0;
95
- _this.branches = Array(16);
96
- return _this;
67
+ class ShaMapInner extends ShaMapNode {
68
+ constructor(depth = 0) {
69
+ super();
70
+ this.depth = depth;
71
+ this.slotBits = 0;
72
+ this.branches = Array(16);
97
73
  }
98
74
  /**
99
75
  * @returns true as ShaMapInner is an inner node
100
76
  */
101
- ShaMapInner.prototype.isInner = function () {
77
+ isInner() {
102
78
  return true;
103
- };
79
+ }
104
80
  /**
105
81
  * @returns false as ShaMapInner is not a leaf node
106
82
  */
107
- ShaMapInner.prototype.isLeaf = function () {
83
+ isLeaf() {
108
84
  return false;
109
- };
85
+ }
110
86
  /**
111
87
  * Get the hash prefix for this node
112
88
  *
113
89
  * @returns hash prefix describing an inner node
114
90
  */
115
- ShaMapInner.prototype.hashPrefix = function () {
91
+ hashPrefix() {
116
92
  return hash_prefixes_1.HashPrefix.innerNode;
117
- };
93
+ }
118
94
  /**
119
95
  * Set a branch of this node to be another node
120
96
  *
121
97
  * @param slot Slot to add branch to this.branches
122
98
  * @param branch Branch to add
123
99
  */
124
- ShaMapInner.prototype.setBranch = function (slot, branch) {
100
+ setBranch(slot, branch) {
125
101
  this.slotBits = this.slotBits | (1 << slot);
126
102
  this.branches[slot] = branch;
127
- };
103
+ }
128
104
  /**
129
105
  * @returns true if node is empty
130
106
  */
131
- ShaMapInner.prototype.empty = function () {
107
+ empty() {
132
108
  return this.slotBits === 0;
133
- };
109
+ }
134
110
  /**
135
111
  * Compute the hash of this node
136
112
  *
137
113
  * @returns The hash of this node
138
114
  */
139
- ShaMapInner.prototype.hash = function () {
115
+ hash() {
140
116
  if (this.empty()) {
141
117
  return types_1.coreTypes.Hash256.ZERO_256;
142
118
  }
143
- var hash = hashes_1.Sha512Half.put(this.hashPrefix());
119
+ const hash = hashes_1.Sha512Half.put(this.hashPrefix());
144
120
  this.toBytesSink(hash);
145
121
  return hash.finish();
146
- };
122
+ }
147
123
  /**
148
124
  * Writes the bytes representation of this node to a BytesList
149
125
  *
150
126
  * @param list BytesList to write bytes to
151
127
  */
152
- ShaMapInner.prototype.toBytesSink = function (list) {
153
- for (var i = 0; i < this.branches.length; i++) {
154
- var branch = this.branches[i];
155
- var hash = branch ? branch.hash() : types_1.coreTypes.Hash256.ZERO_256;
128
+ toBytesSink(list) {
129
+ for (let i = 0; i < this.branches.length; i++) {
130
+ const branch = this.branches[i];
131
+ const hash = branch
132
+ ? branch.hash()
133
+ : types_1.coreTypes.Hash256.ZERO_256;
156
134
  hash.toBytesSink(list);
157
135
  }
158
- };
136
+ }
159
137
  /**
160
138
  * Add item to the SHAMap
161
139
  *
@@ -163,34 +141,32 @@ var ShaMapInner = /** @class */ (function (_super) {
163
141
  * @param item Item to insert in the map
164
142
  * @param leaf Leaf node to insert when branch doesn't exist
165
143
  */
166
- ShaMapInner.prototype.addItem = function (index, item, leaf) {
167
- assert_1.strict(index !== undefined);
168
- var nibble = index.nibblet(this.depth);
169
- var existing = this.branches[nibble];
170
- if (existing === undefined) {
171
- this.setBranch(nibble, leaf || new ShaMapLeaf(index, item));
172
- }
173
- else if (existing instanceof ShaMapLeaf) {
174
- var newInner = new ShaMapInner(this.depth + 1);
175
- newInner.addItem(existing.index, undefined, existing);
176
- newInner.addItem(index, item, leaf);
177
- this.setBranch(nibble, newInner);
178
- }
179
- else if (existing instanceof ShaMapInner) {
180
- existing.addItem(index, item, leaf);
144
+ addItem(index, item, leaf) {
145
+ if (index === undefined) {
146
+ throw new Error();
181
147
  }
182
- else {
183
- throw new Error("invalid ShaMap.addItem call");
148
+ if (index !== undefined) {
149
+ const nibble = index.nibblet(this.depth);
150
+ const existing = this.branches[nibble];
151
+ if (existing === undefined) {
152
+ this.setBranch(nibble, leaf || new ShaMapLeaf(index, item));
153
+ }
154
+ else if (existing instanceof ShaMapLeaf) {
155
+ const newInner = new ShaMapInner(this.depth + 1);
156
+ newInner.addItem(existing.index, undefined, existing);
157
+ newInner.addItem(index, item, leaf);
158
+ this.setBranch(nibble, newInner);
159
+ }
160
+ else if (existing instanceof ShaMapInner) {
161
+ existing.addItem(index, item, leaf);
162
+ }
163
+ else {
164
+ throw new Error('invalid ShaMap.addItem call');
165
+ }
184
166
  }
185
- };
186
- return ShaMapInner;
187
- }(ShaMapNode));
188
- var ShaMap = /** @class */ (function (_super) {
189
- __extends(ShaMap, _super);
190
- function ShaMap() {
191
- return _super !== null && _super.apply(this, arguments) || this;
192
167
  }
193
- return ShaMap;
194
- }(ShaMapInner));
168
+ }
169
+ class ShaMap extends ShaMapInner {
170
+ }
195
171
  exports.ShaMap = ShaMap;
196
172
  //# sourceMappingURL=shamap.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shamap.js","sourceRoot":"","sources":["../src/shamap.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iCAA0C;AAC1C,iCAAoC;AACpC,iDAA6C;AAC7C,mCAAsC;AAGtC,kCAAiC;AAEjC;;GAEG;AACH;IAAA;IAMA,CAAC;IAAD,iBAAC;AAAD,CAAC,AAND,IAMC;AAoKgB,gCAAU;AAlK3B;;GAEG;AACH;IAAyB,8BAAU;IACjC,oBAAmB,KAAc,EAAS,IAAiB;QAA3D,YACE,iBAAO,SACR;QAFkB,WAAK,GAAL,KAAK,CAAS;QAAS,UAAI,GAAJ,IAAI,CAAa;;IAE3D,CAAC;IAED;;OAEG;IACH,2BAAM,GAAN;QACE,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,4BAAO,GAAP;QACE,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;OAIG;IACH,+BAAU,GAAV;QACE,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,eAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;IAC5E,CAAC;IAED;;;;OAIG;IACH,yBAAI,GAAJ;QACE,IAAM,IAAI,GAAG,mBAAU,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;IAED;;;OAGG;IACH,gCAAW,GAAX,UAAY,IAAe;QACzB,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;YAC3B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SAC7B;QACD,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IACH,iBAAC;AAAD,CAAC,AAjDD,CAAyB,UAAU,GAiDlC;AA8G4B,gCAAU;AA5GvC;;GAEG;AACH;IAA0B,+BAAU;IAIlC,qBAAoB,KAAiB;QAAjB,sBAAA,EAAA,SAAiB;QAArC,YACE,iBAAO,SACR;QAFmB,WAAK,GAAL,KAAK,CAAY;QAH7B,cAAQ,GAAG,CAAC,CAAC;QACb,cAAQ,GAAsB,KAAK,CAAC,EAAE,CAAC,CAAC;;IAIhD,CAAC;IAED;;OAEG;IACH,6BAAO,GAAP;QACE,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,4BAAM,GAAN;QACE,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;OAIG;IACH,gCAAU,GAAV;QACE,OAAO,0BAAU,CAAC,SAAS,CAAC;IAC9B,CAAC;IAED;;;;;OAKG;IACH,+BAAS,GAAT,UAAU,IAAY,EAAE,MAAkB;QACxC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,2BAAK,GAAL;QACE,OAAO,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACH,0BAAI,GAAJ;QACE,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE;YAChB,OAAO,iBAAS,CAAC,OAAO,CAAC,QAAQ,CAAC;SACnC;QACD,IAAM,IAAI,GAAG,mBAAU,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACH,iCAAW,GAAX,UAAY,IAAe;QACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC7C,IAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAChC,IAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,iBAAS,CAAC,OAAO,CAAC,QAAQ,CAAC;YACjE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SACxB;IACH,CAAC;IAED;;;;;;OAMG;IACH,6BAAO,GAAP,UAAQ,KAAe,EAAE,IAAiB,EAAE,IAAiB;QAC3D,eAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;QAC5B,IAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAEvC,IAAI,QAAQ,KAAK,SAAS,EAAE;YAC1B,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,IAAI,IAAI,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;SAC7D;aAAM,IAAI,QAAQ,YAAY,UAAU,EAAE;YACzC,IAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YACjD,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;YACtD,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YACpC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;SAClC;aAAM,IAAI,QAAQ,YAAY,WAAW,EAAE;YAC1C,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;SACrC;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;SAChD;IACH,CAAC;IACH,kBAAC;AAAD,CAAC,AArGD,CAA0B,UAAU,GAqGnC;AAED;IAAqB,0BAAW;IAAhC;;IAAkC,CAAC;IAAD,aAAC;AAAD,CAAC,AAAnC,CAAqB,WAAW,GAAG;AAE1B,wBAAM"}
1
+ {"version":3,"file":"shamap.js","sourceRoot":"","sources":["../src/shamap.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,90 @@
1
+ import { BinaryParser } from './serdes/binary-parser';
2
+ import { AccountID } from './types/account-id';
3
+ import { BinarySerializer, BytesList } from './serdes/binary-serializer';
4
+ import { sha512Half, transactionID } from './hashes';
5
+ import { type XrplDefinitionsBase } from './enums';
6
+ import { JsonObject } from './types/serialized-type';
7
+ /**
8
+ * Construct a BinaryParser
9
+ *
10
+ * @param bytes hex-string or Uint8Array to construct BinaryParser from
11
+ * @param definitions rippled definitions used to parse the values of transaction types and such.
12
+ * Can be customized for sidechains and amendments.
13
+ * @returns BinaryParser
14
+ */
15
+ declare const makeParser: (bytes: string | Uint8Array, definitions?: XrplDefinitionsBase) => BinaryParser;
16
+ /**
17
+ * Parse BinaryParser into JSON
18
+ *
19
+ * @param parser BinaryParser object
20
+ * @param definitions rippled definitions used to parse the values of transaction types and such.
21
+ * Can be customized for sidechains and amendments.
22
+ * @returns JSON for the bytes in the BinaryParser
23
+ */
24
+ declare const readJSON: (parser: BinaryParser, definitions?: XrplDefinitionsBase) => JsonObject;
25
+ /**
26
+ * Parse a hex-string into its JSON interpretation
27
+ *
28
+ * @param bytes hex-string to parse into JSON
29
+ * @param definitions rippled definitions used to parse the values of transaction types and such.
30
+ * Can be customized for sidechains and amendments.
31
+ * @returns JSON
32
+ */
33
+ declare const binaryToJSON: (bytes: string, definitions?: XrplDefinitionsBase) => JsonObject;
34
+ /**
35
+ * Interface for passing parameters to SerializeObject
36
+ *
37
+ * @field set signingFieldOnly to true if you want to serialize only signing fields
38
+ */
39
+ interface OptionObject {
40
+ prefix?: Uint8Array;
41
+ suffix?: Uint8Array;
42
+ signingFieldsOnly?: boolean;
43
+ definitions?: XrplDefinitionsBase;
44
+ }
45
+ /**
46
+ * Function to serialize JSON object representing a transaction
47
+ *
48
+ * @param object JSON object to serialize
49
+ * @param opts options for serializing, including optional prefix, suffix, signingFieldOnly, and definitions
50
+ * @returns A Uint8Array containing the serialized object
51
+ */
52
+ declare function serializeObject(object: JsonObject, opts?: OptionObject): Uint8Array;
53
+ /**
54
+ * Serialize an object for signing
55
+ *
56
+ * @param transaction Transaction to serialize
57
+ * @param prefix Prefix bytes to put before the serialized object
58
+ * @param opts.definitions Custom rippled types to use instead of the default. Used for sidechains and amendments.
59
+ * @returns A Uint8Array with the serialized object
60
+ */
61
+ declare function signingData(transaction: JsonObject, prefix?: Uint8Array, opts?: {
62
+ definitions?: XrplDefinitionsBase;
63
+ }): Uint8Array;
64
+ /**
65
+ * Interface describing fields required for a Claim
66
+ */
67
+ interface ClaimObject extends JsonObject {
68
+ channel: string;
69
+ amount: string | number;
70
+ }
71
+ /**
72
+ * Serialize a signingClaim
73
+ *
74
+ * @param claim A claim object to serialize
75
+ * @param opts.definitions Custom rippled types to use instead of the default. Used for sidechains and amendments.
76
+ * @returns the serialized object with appropriate prefix
77
+ */
78
+ declare function signingClaimData(claim: ClaimObject): Uint8Array;
79
+ /**
80
+ * Serialize a transaction object for multiSigning
81
+ *
82
+ * @param transaction transaction to serialize
83
+ * @param signingAccount Account to sign the transaction with
84
+ * @param opts.definitions Custom rippled types to use instead of the default. Used for sidechains and amendments.
85
+ * @returns serialized transaction with appropriate prefix and suffix
86
+ */
87
+ declare function multiSigningData(transaction: JsonObject, signingAccount: string | AccountID, opts?: {
88
+ definitions: XrplDefinitionsBase;
89
+ }): Uint8Array;
90
+ export { BinaryParser, BinarySerializer, BytesList, ClaimObject, makeParser, serializeObject, readJSON, multiSigningData, signingData, signingClaimData, binaryToJSON, sha512Half, transactionID, };
@@ -0,0 +1,128 @@
1
+ "use strict";
2
+ /* eslint-disable func-style */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.transactionID = exports.sha512Half = exports.binaryToJSON = exports.signingClaimData = exports.signingData = exports.multiSigningData = exports.readJSON = exports.serializeObject = exports.makeParser = exports.BytesList = exports.BinarySerializer = exports.BinaryParser = void 0;
5
+ const utils_1 = require("@xrplf/isomorphic/utils");
6
+ const types_1 = require("./types");
7
+ const binary_parser_1 = require("./serdes/binary-parser");
8
+ Object.defineProperty(exports, "BinaryParser", { enumerable: true, get: function () { return binary_parser_1.BinaryParser; } });
9
+ const hash_prefixes_1 = require("./hash-prefixes");
10
+ const binary_serializer_1 = require("./serdes/binary-serializer");
11
+ Object.defineProperty(exports, "BinarySerializer", { enumerable: true, get: function () { return binary_serializer_1.BinarySerializer; } });
12
+ Object.defineProperty(exports, "BytesList", { enumerable: true, get: function () { return binary_serializer_1.BytesList; } });
13
+ const hashes_1 = require("./hashes");
14
+ Object.defineProperty(exports, "sha512Half", { enumerable: true, get: function () { return hashes_1.sha512Half; } });
15
+ Object.defineProperty(exports, "transactionID", { enumerable: true, get: function () { return hashes_1.transactionID; } });
16
+ const enums_1 = require("./enums");
17
+ /**
18
+ * Construct a BinaryParser
19
+ *
20
+ * @param bytes hex-string or Uint8Array to construct BinaryParser from
21
+ * @param definitions rippled definitions used to parse the values of transaction types and such.
22
+ * Can be customized for sidechains and amendments.
23
+ * @returns BinaryParser
24
+ */
25
+ const makeParser = (bytes, definitions) => new binary_parser_1.BinaryParser(bytes instanceof Uint8Array ? (0, utils_1.bytesToHex)(bytes) : bytes, definitions);
26
+ exports.makeParser = makeParser;
27
+ /**
28
+ * Parse BinaryParser into JSON
29
+ *
30
+ * @param parser BinaryParser object
31
+ * @param definitions rippled definitions used to parse the values of transaction types and such.
32
+ * Can be customized for sidechains and amendments.
33
+ * @returns JSON for the bytes in the BinaryParser
34
+ */
35
+ const readJSON = (parser, definitions = enums_1.DEFAULT_DEFINITIONS) => parser.readType(types_1.coreTypes.STObject).toJSON(definitions);
36
+ exports.readJSON = readJSON;
37
+ /**
38
+ * Parse a hex-string into its JSON interpretation
39
+ *
40
+ * @param bytes hex-string to parse into JSON
41
+ * @param definitions rippled definitions used to parse the values of transaction types and such.
42
+ * Can be customized for sidechains and amendments.
43
+ * @returns JSON
44
+ */
45
+ const binaryToJSON = (bytes, definitions) => readJSON(makeParser(bytes, definitions), definitions);
46
+ exports.binaryToJSON = binaryToJSON;
47
+ /**
48
+ * Function to serialize JSON object representing a transaction
49
+ *
50
+ * @param object JSON object to serialize
51
+ * @param opts options for serializing, including optional prefix, suffix, signingFieldOnly, and definitions
52
+ * @returns A Uint8Array containing the serialized object
53
+ */
54
+ function serializeObject(object, opts = {}) {
55
+ const { prefix, suffix, signingFieldsOnly = false, definitions } = opts;
56
+ const bytesList = new binary_serializer_1.BytesList();
57
+ if (prefix) {
58
+ bytesList.put(prefix);
59
+ }
60
+ const filter = signingFieldsOnly
61
+ ? (f) => f.isSigningField
62
+ : undefined;
63
+ types_1.coreTypes.STObject
64
+ .from(object, filter, definitions)
65
+ .toBytesSink(bytesList);
66
+ if (suffix) {
67
+ bytesList.put(suffix);
68
+ }
69
+ return bytesList.toBytes();
70
+ }
71
+ exports.serializeObject = serializeObject;
72
+ /**
73
+ * Serialize an object for signing
74
+ *
75
+ * @param transaction Transaction to serialize
76
+ * @param prefix Prefix bytes to put before the serialized object
77
+ * @param opts.definitions Custom rippled types to use instead of the default. Used for sidechains and amendments.
78
+ * @returns A Uint8Array with the serialized object
79
+ */
80
+ function signingData(transaction, prefix = hash_prefixes_1.HashPrefix.transactionSig, opts = {}) {
81
+ return serializeObject(transaction, {
82
+ prefix,
83
+ signingFieldsOnly: true,
84
+ definitions: opts.definitions,
85
+ });
86
+ }
87
+ exports.signingData = signingData;
88
+ /**
89
+ * Serialize a signingClaim
90
+ *
91
+ * @param claim A claim object to serialize
92
+ * @param opts.definitions Custom rippled types to use instead of the default. Used for sidechains and amendments.
93
+ * @returns the serialized object with appropriate prefix
94
+ */
95
+ function signingClaimData(claim) {
96
+ const num = BigInt(String(claim.amount));
97
+ const prefix = hash_prefixes_1.HashPrefix.paymentChannelClaim;
98
+ const channel = types_1.coreTypes.Hash256.from(claim.channel).toBytes();
99
+ const amount = types_1.coreTypes.UInt64.from(num).toBytes();
100
+ const bytesList = new binary_serializer_1.BytesList();
101
+ bytesList.put(prefix);
102
+ bytesList.put(channel);
103
+ bytesList.put(amount);
104
+ return bytesList.toBytes();
105
+ }
106
+ exports.signingClaimData = signingClaimData;
107
+ /**
108
+ * Serialize a transaction object for multiSigning
109
+ *
110
+ * @param transaction transaction to serialize
111
+ * @param signingAccount Account to sign the transaction with
112
+ * @param opts.definitions Custom rippled types to use instead of the default. Used for sidechains and amendments.
113
+ * @returns serialized transaction with appropriate prefix and suffix
114
+ */
115
+ function multiSigningData(transaction, signingAccount, opts = {
116
+ definitions: enums_1.DEFAULT_DEFINITIONS,
117
+ }) {
118
+ const prefix = hash_prefixes_1.HashPrefix.transactionMultiSig;
119
+ const suffix = types_1.coreTypes.AccountID.from(signingAccount).toBytes();
120
+ return serializeObject(transaction, {
121
+ prefix,
122
+ suffix,
123
+ signingFieldsOnly: true,
124
+ definitions: opts.definitions,
125
+ });
126
+ }
127
+ exports.multiSigningData = multiSigningData;
128
+ //# sourceMappingURL=binary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binary.js","sourceRoot":"","sources":["../../src/binary.ts"],"names":[],"mappings":";AAAA,+BAA+B;;;AAE/B,mDAAoD;AACpD,mCAAmC;AACnC,0DAAqD;AAgLnD,6FAhLO,4BAAY,OAgLP;AA9Kd,mDAA4C;AAC5C,kEAAwE;AA8KtE,iGA9KO,oCAAgB,OA8KP;AAChB,0FA/KyB,6BAAS,OA+KzB;AA9KX,qCAAoD;AAuLlD,2FAvLO,mBAAU,OAuLP;AACV,8FAxLmB,sBAAa,OAwLnB;AAvLf,mCAIgB;AAIhB;;;;;;;GAOG;AACH,MAAM,UAAU,GAAG,CACjB,KAA0B,EAC1B,WAAiC,EACnB,EAAE,CAChB,IAAI,4BAAY,CACd,KAAK,YAAY,UAAU,CAAC,CAAC,CAAC,IAAA,kBAAU,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EACvD,WAAW,CACZ,CAAA;AAwJD,gCAAU;AAtJZ;;;;;;;GAOG;AACH,MAAM,QAAQ,GAAG,CACf,MAAoB,EACpB,cAAmC,2BAAmB,EAC1C,EAAE,CACb,MAAM,CAAC,QAAQ,CAAC,iBAAS,CAAC,QAAQ,CAAc,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;AA4IrE,4BAAQ;AA1IV;;;;;;;GAOG;AACH,MAAM,YAAY,GAAG,CACnB,KAAa,EACb,WAAiC,EACrB,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,CAAA;AAmIpE,oCAAY;AArHd;;;;;;GAMG;AACH,SAAS,eAAe,CACtB,MAAkB,EAClB,OAAqB,EAAE;IAEvB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,KAAK,EAAE,WAAW,EAAE,GAAG,IAAI,CAAA;IACvE,MAAM,SAAS,GAAG,IAAI,6BAAS,EAAE,CAAA;IAEjC,IAAI,MAAM,EAAE;QACV,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;KACtB;IAED,MAAM,MAAM,GAAG,iBAAiB;QAC9B,CAAC,CAAC,CAAC,CAAgB,EAAW,EAAE,CAAC,CAAC,CAAC,cAAc;QACjD,CAAC,CAAC,SAAS,CACZ;IAAC,iBAAS,CAAC,QAA4B;SACrC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC;SACjC,WAAW,CAAC,SAAS,CAAC,CAAA;IAEzB,IAAI,MAAM,EAAE;QACV,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;KACtB;IAED,OAAO,SAAS,CAAC,OAAO,EAAE,CAAA;AAC5B,CAAC;AAkFC,0CAAe;AAhFjB;;;;;;;GAOG;AACH,SAAS,WAAW,CAClB,WAAuB,EACvB,SAAqB,0BAAU,CAAC,cAAc,EAC9C,OAA8C,EAAE;IAEhD,OAAO,eAAe,CAAC,WAAW,EAAE;QAClC,MAAM;QACN,iBAAiB,EAAE,IAAI;QACvB,WAAW,EAAE,IAAI,CAAC,WAAW;KAC9B,CAAC,CAAA;AACJ,CAAC;AAiEC,kCAAW;AAvDb;;;;;;GAMG;AACH,SAAS,gBAAgB,CAAC,KAAkB;IAC1C,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;IACxC,MAAM,MAAM,GAAG,0BAAU,CAAC,mBAAmB,CAAA;IAC7C,MAAM,OAAO,GAAG,iBAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAA;IAC/D,MAAM,MAAM,GAAG,iBAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAA;IAEnD,MAAM,SAAS,GAAG,IAAI,6BAAS,EAAE,CAAA;IAEjC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACrB,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IACtB,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACrB,OAAO,SAAS,CAAC,OAAO,EAAE,CAAA;AAC5B,CAAC;AAqCC,4CAAgB;AAnClB;;;;;;;GAOG;AACH,SAAS,gBAAgB,CACvB,WAAuB,EACvB,cAAkC,EAClC,OAA6C;IAC3C,WAAW,EAAE,2BAAmB;CACjC;IAED,MAAM,MAAM,GAAG,0BAAU,CAAC,mBAAmB,CAAA;IAC7C,MAAM,MAAM,GAAG,iBAAS,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE,CAAA;IACjE,OAAO,eAAe,CAAC,WAAW,EAAE;QAClC,MAAM;QACN,MAAM;QACN,iBAAiB,EAAE,IAAI;QACvB,WAAW,EAAE,IAAI,CAAC,WAAW;KAC9B,CAAC,CAAA;AACJ,CAAC;AAUC,4CAAgB"}
@@ -0,0 +1,9 @@
1
+ import { DEFAULT_DEFINITIONS, Field, TransactionType, LedgerEntryType, Type, TransactionResult } from './enums';
2
+ import * as types from './types';
3
+ import * as binary from './binary';
4
+ import { ShaMap } from './shamap';
5
+ import * as ledgerHashes from './ledger-hashes';
6
+ import * as hashes from './hashes';
7
+ import { quality } from './quality';
8
+ import { HashPrefix } from './hash-prefixes';
9
+ export { hashes, binary, ledgerHashes, DEFAULT_DEFINITIONS, Field, TransactionType, LedgerEntryType, Type, TransactionResult, quality, HashPrefix, ShaMap, types, };
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.types = exports.ShaMap = exports.HashPrefix = exports.quality = exports.TransactionResult = exports.Type = exports.LedgerEntryType = exports.TransactionType = exports.Field = exports.DEFAULT_DEFINITIONS = exports.ledgerHashes = exports.binary = exports.hashes = void 0;
27
+ const enums_1 = require("./enums");
28
+ Object.defineProperty(exports, "DEFAULT_DEFINITIONS", { enumerable: true, get: function () { return enums_1.DEFAULT_DEFINITIONS; } });
29
+ Object.defineProperty(exports, "Field", { enumerable: true, get: function () { return enums_1.Field; } });
30
+ Object.defineProperty(exports, "TransactionType", { enumerable: true, get: function () { return enums_1.TransactionType; } });
31
+ Object.defineProperty(exports, "LedgerEntryType", { enumerable: true, get: function () { return enums_1.LedgerEntryType; } });
32
+ Object.defineProperty(exports, "Type", { enumerable: true, get: function () { return enums_1.Type; } });
33
+ Object.defineProperty(exports, "TransactionResult", { enumerable: true, get: function () { return enums_1.TransactionResult; } });
34
+ const types = __importStar(require("./types"));
35
+ exports.types = types;
36
+ const binary = __importStar(require("./binary"));
37
+ exports.binary = binary;
38
+ const shamap_1 = require("./shamap");
39
+ Object.defineProperty(exports, "ShaMap", { enumerable: true, get: function () { return shamap_1.ShaMap; } });
40
+ const ledgerHashes = __importStar(require("./ledger-hashes"));
41
+ exports.ledgerHashes = ledgerHashes;
42
+ const hashes = __importStar(require("./hashes"));
43
+ exports.hashes = hashes;
44
+ const quality_1 = require("./quality");
45
+ Object.defineProperty(exports, "quality", { enumerable: true, get: function () { return quality_1.quality; } });
46
+ const hash_prefixes_1 = require("./hash-prefixes");
47
+ Object.defineProperty(exports, "HashPrefix", { enumerable: true, get: function () { return hash_prefixes_1.HashPrefix; } });
48
+ //# sourceMappingURL=coretypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coretypes.js","sourceRoot":"","sources":["../../src/coretypes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mCAOgB;AAad,oGAnBA,2BAAmB,OAmBA;AACnB,sFAnBA,aAAK,OAmBA;AACL,gGAnBA,uBAAe,OAmBA;AACf,gGAnBA,uBAAe,OAmBA;AACf,qFAnBA,YAAI,OAmBA;AACJ,kGAnBA,yBAAiB,OAmBA;AAjBnB,+CAAgC;AAqB9B,sBAAK;AApBP,iDAAkC;AAShC,wBAAM;AARR,qCAAiC;AAkB/B,uFAlBO,eAAM,OAkBP;AAjBR,8DAA+C;AAQ7C,oCAAY;AAPd,iDAAkC;AAKhC,wBAAM;AAJR,uCAAmC;AAajC,wFAbO,iBAAO,OAaP;AAZT,mDAA4C;AAa1C,2FAbO,0BAAU,OAaP"}
@@ -0,0 +1,25 @@
1
+ import { BytesList, BinaryParser } from '../binary';
2
+ export declare class Bytes {
3
+ readonly name: string;
4
+ readonly ordinal: number;
5
+ readonly ordinalWidth: number;
6
+ readonly bytes: Uint8Array;
7
+ constructor(name: string, ordinal: number, ordinalWidth: number);
8
+ toJSON(): string;
9
+ toBytesSink(sink: BytesList): void;
10
+ toBytes(): Uint8Array;
11
+ }
12
+ export declare class BytesLookup {
13
+ readonly ordinalWidth: number;
14
+ constructor(types: Record<string, number>, ordinalWidth: number);
15
+ /**
16
+ * Add a new name value pair to the BytesLookup.
17
+ *
18
+ * @param name - A human readable name for the field.
19
+ * @param value - The numeric value for the field.
20
+ * @throws if the name or value already exist in the lookup because it's unclear how to decode.
21
+ */
22
+ add(name: string, value: number): void;
23
+ from(value: Bytes | string): Bytes;
24
+ fromParser(parser: BinaryParser): Bytes;
25
+ }