ripple-binary-codec 1.0.2 → 1.0.3-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 (333) hide show
  1. package/README.md +3 -3
  2. package/dist/binary.d.ts +34 -20
  3. package/dist/binary.js +51 -34
  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 -1760
  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 -110
  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 -6
  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 +6 -3
  40. package/dist/ledger-hashes.js +40 -33
  41. package/dist/ledger-hashes.js.map +1 -1
  42. package/dist/quality.d.ts +3 -4
  43. package/dist/quality.js +20 -19
  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 -64
  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 -48
  50. package/dist/serdes/binary-serializer.js.map +1 -1
  51. package/dist/shamap.d.ts +6 -7
  52. package/dist/shamap.js +74 -97
  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 -37
  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 -101
  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 -27
  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 -66
  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 -22
  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 -24
  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 -22
  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 -39
  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 -94
  211. package/dist/types/path-set.js.map +1 -1
  212. package/dist/types/serialized-type.d.ts +26 -18
  213. package/dist/types/serialized-type.js +50 -60
  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 -47
  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 -74
  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 -33
  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 -36
  226. package/dist/types/uint-32.js.map +1 -1
  227. package/dist/types/uint-64.d.ts +5 -6
  228. package/dist/types/uint-64.js +44 -48
  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 -33
  232. package/dist/types/uint-8.js.map +1 -1
  233. package/dist/types/uint.d.ts +5 -5
  234. package/dist/types/uint.js +17 -27
  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 -33
  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/test/amount.test.js +0 -43
  291. package/test/binary-json.test.js +0 -47
  292. package/test/binary-parser.test.js +0 -397
  293. package/test/binary-serializer.test.js +0 -248
  294. package/test/fixtures/account-tx-transactions.db +0 -0
  295. package/test/fixtures/codec-fixtures.json +0 -4466
  296. package/test/fixtures/data-driven-tests.json +0 -3721
  297. package/test/fixtures/delivermin-tx-binary.json +0 -1
  298. package/test/fixtures/delivermin-tx.json +0 -98
  299. package/test/fixtures/deposit-preauth-tx-binary.json +0 -1
  300. package/test/fixtures/deposit-preauth-tx-meta-binary.json +0 -1
  301. package/test/fixtures/deposit-preauth-tx.json +0 -58
  302. package/test/fixtures/escrow-cancel-binary.json +0 -1
  303. package/test/fixtures/escrow-cancel-tx.json +0 -6
  304. package/test/fixtures/escrow-create-binary.json +0 -1
  305. package/test/fixtures/escrow-create-tx.json +0 -10
  306. package/test/fixtures/escrow-finish-binary.json +0 -1
  307. package/test/fixtures/escrow-finish-meta-binary.json +0 -1
  308. package/test/fixtures/escrow-finish-tx.json +0 -95
  309. package/test/fixtures/ledger-full-38129.json +0 -1
  310. package/test/fixtures/ledger-full-40000.json +0 -1
  311. package/test/fixtures/negative-unl.json +0 -12
  312. package/test/fixtures/payment-channel-claim-binary.json +0 -1
  313. package/test/fixtures/payment-channel-claim-tx.json +0 -8
  314. package/test/fixtures/payment-channel-create-binary.json +0 -1
  315. package/test/fixtures/payment-channel-create-tx.json +0 -11
  316. package/test/fixtures/payment-channel-fund-binary.json +0 -1
  317. package/test/fixtures/payment-channel-fund-tx.json +0 -7
  318. package/test/fixtures/signerlistset-tx-binary.json +0 -1
  319. package/test/fixtures/signerlistset-tx-meta-binary.json +0 -1
  320. package/test/fixtures/signerlistset-tx.json +0 -94
  321. package/test/fixtures/x-codec-fixtures.json +0 -188
  322. package/test/hash.test.js +0 -82
  323. package/test/ledger.test.js +0 -29
  324. package/test/lower-case-hex.test.js +0 -45
  325. package/test/pseudo-transaction.test.js +0 -38
  326. package/test/quality.test.js +0 -15
  327. package/test/shamap.test.js +0 -88
  328. package/test/signing-data-encoding.test.js +0 -129
  329. package/test/tx-encode-decode.test.js +0 -80
  330. package/test/types.test.js +0 -34
  331. package/test/uint.test.js +0 -40
  332. package/test/utils.js +0 -29
  333. package/test/x-address.test.js +0 -147
package/dist/shamap.js CHANGED
@@ -1,160 +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");
4
+ const types_1 = require("./types");
5
+ const hash_prefixes_1 = require("./hash-prefixes");
6
+ const hashes_1 = require("./hashes");
21
7
  /**
22
8
  * Abstract class describing a SHAMapNode
23
9
  */
24
- var ShaMapNode = /** @class */ (function () {
25
- function ShaMapNode() {
26
- }
27
- return ShaMapNode;
28
- }());
10
+ class ShaMapNode {
11
+ }
29
12
  exports.ShaMapNode = ShaMapNode;
30
13
  /**
31
14
  * Class describing a Leaf of SHAMap
32
15
  */
33
- var ShaMapLeaf = /** @class */ (function (_super) {
34
- __extends(ShaMapLeaf, _super);
35
- function ShaMapLeaf(index, item) {
36
- var _this = _super.call(this) || this;
37
- _this.index = index;
38
- _this.item = item;
39
- return _this;
16
+ class ShaMapLeaf extends ShaMapNode {
17
+ constructor(index, item) {
18
+ super();
19
+ this.index = index;
20
+ this.item = item;
40
21
  }
41
22
  /**
42
23
  * @returns true as ShaMapLeaf is a leaf node
43
24
  */
44
- ShaMapLeaf.prototype.isLeaf = function () {
25
+ isLeaf() {
45
26
  return true;
46
- };
27
+ }
47
28
  /**
48
29
  * @returns false as ShaMapLeaf is not an inner node
49
30
  */
50
- ShaMapLeaf.prototype.isInner = function () {
31
+ isInner() {
51
32
  return false;
52
- };
33
+ }
53
34
  /**
54
35
  * Get the prefix of the this.item
55
36
  *
56
- * @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
57
38
  */
58
- ShaMapLeaf.prototype.hashPrefix = function () {
59
- return this.item === undefined ? Buffer.alloc(0) : this.item.hashPrefix();
60
- };
39
+ hashPrefix() {
40
+ return this.item === undefined ? new Uint8Array(0) : this.item.hashPrefix();
41
+ }
61
42
  /**
62
43
  * Hash the bytes representation of this
63
44
  *
64
45
  * @returns hash of this.item concatenated with this.index
65
46
  */
66
- ShaMapLeaf.prototype.hash = function () {
67
- var hash = hashes_1.Sha512Half.put(this.hashPrefix());
47
+ hash() {
48
+ const hash = hashes_1.Sha512Half.put(this.hashPrefix());
68
49
  this.toBytesSink(hash);
69
50
  return hash.finish();
70
- };
51
+ }
71
52
  /**
72
53
  * Write the bytes representation of this to a BytesList
73
54
  * @param list BytesList to write bytes to
74
55
  */
75
- ShaMapLeaf.prototype.toBytesSink = function (list) {
56
+ toBytesSink(list) {
76
57
  if (this.item !== undefined) {
77
58
  this.item.toBytesSink(list);
78
59
  }
79
60
  this.index.toBytesSink(list);
80
- };
81
- return ShaMapLeaf;
82
- }(ShaMapNode));
61
+ }
62
+ }
83
63
  exports.ShaMapLeaf = ShaMapLeaf;
84
64
  /**
85
65
  * Class defining an Inner Node of a SHAMap
86
66
  */
87
- var ShaMapInner = /** @class */ (function (_super) {
88
- __extends(ShaMapInner, _super);
89
- function ShaMapInner(depth) {
90
- if (depth === void 0) { depth = 0; }
91
- var _this = _super.call(this) || this;
92
- _this.depth = depth;
93
- _this.slotBits = 0;
94
- _this.branches = Array(16);
95
- 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);
96
73
  }
97
74
  /**
98
75
  * @returns true as ShaMapInner is an inner node
99
76
  */
100
- ShaMapInner.prototype.isInner = function () {
77
+ isInner() {
101
78
  return true;
102
- };
79
+ }
103
80
  /**
104
81
  * @returns false as ShaMapInner is not a leaf node
105
82
  */
106
- ShaMapInner.prototype.isLeaf = function () {
83
+ isLeaf() {
107
84
  return false;
108
- };
85
+ }
109
86
  /**
110
87
  * Get the hash prefix for this node
111
88
  *
112
89
  * @returns hash prefix describing an inner node
113
90
  */
114
- ShaMapInner.prototype.hashPrefix = function () {
91
+ hashPrefix() {
115
92
  return hash_prefixes_1.HashPrefix.innerNode;
116
- };
93
+ }
117
94
  /**
118
95
  * Set a branch of this node to be another node
119
96
  *
120
97
  * @param slot Slot to add branch to this.branches
121
98
  * @param branch Branch to add
122
99
  */
123
- ShaMapInner.prototype.setBranch = function (slot, branch) {
100
+ setBranch(slot, branch) {
124
101
  this.slotBits = this.slotBits | (1 << slot);
125
102
  this.branches[slot] = branch;
126
- };
103
+ }
127
104
  /**
128
105
  * @returns true if node is empty
129
106
  */
130
- ShaMapInner.prototype.empty = function () {
107
+ empty() {
131
108
  return this.slotBits === 0;
132
- };
109
+ }
133
110
  /**
134
111
  * Compute the hash of this node
135
112
  *
136
113
  * @returns The hash of this node
137
114
  */
138
- ShaMapInner.prototype.hash = function () {
115
+ hash() {
139
116
  if (this.empty()) {
140
117
  return types_1.coreTypes.Hash256.ZERO_256;
141
118
  }
142
- var hash = hashes_1.Sha512Half.put(this.hashPrefix());
119
+ const hash = hashes_1.Sha512Half.put(this.hashPrefix());
143
120
  this.toBytesSink(hash);
144
121
  return hash.finish();
145
- };
122
+ }
146
123
  /**
147
124
  * Writes the bytes representation of this node to a BytesList
148
125
  *
149
126
  * @param list BytesList to write bytes to
150
127
  */
151
- ShaMapInner.prototype.toBytesSink = function (list) {
152
- for (var i = 0; i < this.branches.length; i++) {
153
- var branch = this.branches[i];
154
- 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;
155
134
  hash.toBytesSink(list);
156
135
  }
157
- };
136
+ }
158
137
  /**
159
138
  * Add item to the SHAMap
160
139
  *
@@ -162,34 +141,32 @@ var ShaMapInner = /** @class */ (function (_super) {
162
141
  * @param item Item to insert in the map
163
142
  * @param leaf Leaf node to insert when branch doesn't exist
164
143
  */
165
- ShaMapInner.prototype.addItem = function (index, item, leaf) {
166
- assert_1.strict(index !== undefined);
167
- var nibble = index.nibblet(this.depth);
168
- var existing = this.branches[nibble];
169
- if (existing === undefined) {
170
- this.setBranch(nibble, leaf || new ShaMapLeaf(index, item));
171
- }
172
- else if (existing instanceof ShaMapLeaf) {
173
- var newInner = new ShaMapInner(this.depth + 1);
174
- newInner.addItem(existing.index, undefined, existing);
175
- newInner.addItem(index, item, leaf);
176
- this.setBranch(nibble, newInner);
177
- }
178
- else if (existing instanceof ShaMapInner) {
179
- existing.addItem(index, item, leaf);
144
+ addItem(index, item, leaf) {
145
+ if (index === undefined) {
146
+ throw new Error();
180
147
  }
181
- else {
182
- 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
+ }
183
166
  }
184
- };
185
- return ShaMapInner;
186
- }(ShaMapNode));
187
- var ShaMap = /** @class */ (function (_super) {
188
- __extends(ShaMap, _super);
189
- function ShaMap() {
190
- return _super !== null && _super.apply(this, arguments) || this;
191
167
  }
192
- return ShaMap;
193
- }(ShaMapInner));
168
+ }
169
+ class ShaMap extends ShaMapInner {
170
+ }
194
171
  exports.ShaMap = ShaMap;
195
172
  //# sourceMappingURL=shamap.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shamap.js","sourceRoot":"","sources":["../src/shamap.ts"],"names":[],"mappings":"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"}
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":"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"}
@@ -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
+ }