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
@@ -1,185 +1,194 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BinaryParser = void 0;
4
- var assert = require("assert");
5
- var enums_1 = require("../enums");
6
- var buffer_1 = require("buffer/");
4
+ const enums_1 = require("../enums");
5
+ const utils_1 = require("@xrplf/isomorphic/utils");
7
6
  /**
8
7
  * BinaryParser is used to compute fields and values from a HexString
9
8
  */
10
- var BinaryParser = /** @class */ (function () {
9
+ class BinaryParser {
11
10
  /**
12
11
  * Initialize bytes to a hex string
13
12
  *
14
13
  * @param hexBytes a hex string
14
+ * @param definitions Rippled definitions used to parse the values of transaction types and such.
15
+ * Can be customized for sidechains and amendments.
15
16
  */
16
- function BinaryParser(hexBytes) {
17
- this.bytes = buffer_1.Buffer.from(hexBytes, "hex");
17
+ constructor(hexBytes, definitions = enums_1.DEFAULT_DEFINITIONS) {
18
+ this.bytes = (0, utils_1.hexToBytes)(hexBytes);
19
+ this.definitions = definitions;
18
20
  }
19
21
  /**
20
22
  * Peek the first byte of the BinaryParser
21
23
  *
22
24
  * @returns The first byte of the BinaryParser
23
25
  */
24
- BinaryParser.prototype.peek = function () {
25
- assert(this.bytes.byteLength !== 0);
26
+ peek() {
27
+ if (this.bytes.byteLength === 0) {
28
+ throw new Error();
29
+ }
26
30
  return this.bytes[0];
27
- };
31
+ }
28
32
  /**
29
33
  * Consume the first n bytes of the BinaryParser
30
34
  *
31
35
  * @param n the number of bytes to skip
32
36
  */
33
- BinaryParser.prototype.skip = function (n) {
34
- assert(n <= this.bytes.byteLength);
37
+ skip(n) {
38
+ if (n > this.bytes.byteLength) {
39
+ throw new Error();
40
+ }
35
41
  this.bytes = this.bytes.slice(n);
36
- };
42
+ }
37
43
  /**
38
44
  * read the first n bytes from the BinaryParser
39
45
  *
40
46
  * @param n The number of bytes to read
41
47
  * @return The bytes
42
48
  */
43
- BinaryParser.prototype.read = function (n) {
44
- assert(n <= this.bytes.byteLength);
45
- var slice = this.bytes.slice(0, n);
49
+ read(n) {
50
+ if (n > this.bytes.byteLength) {
51
+ throw new Error();
52
+ }
53
+ const slice = this.bytes.slice(0, n);
46
54
  this.skip(n);
47
55
  return slice;
48
- };
56
+ }
49
57
  /**
50
58
  * Read an integer of given size
51
59
  *
52
60
  * @param n The number of bytes to read
53
61
  * @return The number represented by those bytes
54
62
  */
55
- BinaryParser.prototype.readUIntN = function (n) {
56
- assert(0 < n && n <= 4, "invalid n");
57
- return this.read(n).reduce(function (a, b) { return (a << 8) | b; }) >>> 0;
58
- };
59
- BinaryParser.prototype.readUInt8 = function () {
63
+ readUIntN(n) {
64
+ if (0 >= n || n > 4) {
65
+ throw new Error('invalid n');
66
+ }
67
+ return this.read(n).reduce((a, b) => (a << 8) | b) >>> 0;
68
+ }
69
+ readUInt8() {
60
70
  return this.readUIntN(1);
61
- };
62
- BinaryParser.prototype.readUInt16 = function () {
71
+ }
72
+ readUInt16() {
63
73
  return this.readUIntN(2);
64
- };
65
- BinaryParser.prototype.readUInt32 = function () {
74
+ }
75
+ readUInt32() {
66
76
  return this.readUIntN(4);
67
- };
68
- BinaryParser.prototype.size = function () {
77
+ }
78
+ size() {
69
79
  return this.bytes.byteLength;
70
- };
71
- BinaryParser.prototype.end = function (customEnd) {
72
- var length = this.bytes.byteLength;
80
+ }
81
+ end(customEnd) {
82
+ const length = this.bytes.byteLength;
73
83
  return length === 0 || (customEnd !== undefined && length <= customEnd);
74
- };
84
+ }
75
85
  /**
76
86
  * Reads variable length encoded bytes
77
87
  *
78
88
  * @return The variable length bytes
79
89
  */
80
- BinaryParser.prototype.readVariableLength = function () {
90
+ readVariableLength() {
81
91
  return this.read(this.readVariableLengthLength());
82
- };
92
+ }
83
93
  /**
84
94
  * Reads the length of the variable length encoded bytes
85
95
  *
86
96
  * @return The length of the variable length encoded bytes
87
97
  */
88
- BinaryParser.prototype.readVariableLengthLength = function () {
89
- var b1 = this.readUInt8();
98
+ readVariableLengthLength() {
99
+ const b1 = this.readUInt8();
90
100
  if (b1 <= 192) {
91
101
  return b1;
92
102
  }
93
103
  else if (b1 <= 240) {
94
- var b2 = this.readUInt8();
104
+ const b2 = this.readUInt8();
95
105
  return 193 + (b1 - 193) * 256 + b2;
96
106
  }
97
107
  else if (b1 <= 254) {
98
- var b2 = this.readUInt8();
99
- var b3 = this.readUInt8();
108
+ const b2 = this.readUInt8();
109
+ const b3 = this.readUInt8();
100
110
  return 12481 + (b1 - 241) * 65536 + b2 * 256 + b3;
101
111
  }
102
- throw new Error("Invalid variable length indicator");
103
- };
112
+ throw new Error('Invalid variable length indicator');
113
+ }
104
114
  /**
105
115
  * Reads the field ordinal from the BinaryParser
106
116
  *
107
117
  * @return Field ordinal
108
118
  */
109
- BinaryParser.prototype.readFieldOrdinal = function () {
110
- var type = this.readUInt8();
111
- var nth = type & 15;
119
+ readFieldOrdinal() {
120
+ let type = this.readUInt8();
121
+ let nth = type & 15;
112
122
  type >>= 4;
113
123
  if (type === 0) {
114
124
  type = this.readUInt8();
115
125
  if (type === 0 || type < 16) {
116
- throw new Error("Cannot read FieldOrdinal, type_code out of range");
126
+ throw new Error(`Cannot read FieldOrdinal, type_code ${type} out of range`);
117
127
  }
118
128
  }
119
129
  if (nth === 0) {
120
130
  nth = this.readUInt8();
121
131
  if (nth === 0 || nth < 16) {
122
- throw new Error("Cannot read FieldOrdinal, field_code out of range");
132
+ throw new Error(`Cannot read FieldOrdinal, field_code ${nth} out of range`);
123
133
  }
124
134
  }
125
135
  return (type << 16) | nth;
126
- };
136
+ }
127
137
  /**
128
138
  * Read the field from the BinaryParser
129
139
  *
130
140
  * @return The field represented by the bytes at the head of the BinaryParser
131
141
  */
132
- BinaryParser.prototype.readField = function () {
133
- return enums_1.Field.fromString(this.readFieldOrdinal().toString());
134
- };
142
+ readField() {
143
+ return this.definitions.field.fromString(this.readFieldOrdinal().toString());
144
+ }
135
145
  /**
136
146
  * Read a given type from the BinaryParser
137
147
  *
138
148
  * @param type The type that you want to read from the BinaryParser
139
149
  * @return The instance of that type read from the BinaryParser
140
150
  */
141
- BinaryParser.prototype.readType = function (type) {
151
+ readType(type) {
142
152
  return type.fromParser(this);
143
- };
153
+ }
144
154
  /**
145
155
  * Get the type associated with a given field
146
156
  *
147
157
  * @param field The field that you wan to get the type of
148
158
  * @return The type associated with the given field
149
159
  */
150
- BinaryParser.prototype.typeForField = function (field) {
160
+ typeForField(field) {
151
161
  return field.associatedType;
152
- };
162
+ }
153
163
  /**
154
164
  * Read value of the type specified by field from the BinaryParser
155
165
  *
156
166
  * @param field The field that you want to get the associated value for
157
167
  * @return The value associated with the given field
158
168
  */
159
- BinaryParser.prototype.readFieldValue = function (field) {
160
- var type = this.typeForField(field);
169
+ readFieldValue(field) {
170
+ const type = this.typeForField(field);
161
171
  if (!type) {
162
- throw new Error("unsupported: (" + field.name + ", " + field.type.name + ")");
172
+ throw new Error(`unsupported: (${field.name}, ${field.type.name})`);
163
173
  }
164
- var sizeHint = field.isVariableLengthEncoded
174
+ const sizeHint = field.isVariableLengthEncoded
165
175
  ? this.readVariableLengthLength()
166
176
  : undefined;
167
- var value = type.fromParser(this, sizeHint);
177
+ const value = type.fromParser(this, sizeHint);
168
178
  if (value === undefined) {
169
- throw new Error("fromParser for (" + field.name + ", " + field.type.name + ") -> undefined ");
179
+ throw new Error(`fromParser for (${field.name}, ${field.type.name}) -> undefined `);
170
180
  }
171
181
  return value;
172
- };
182
+ }
173
183
  /**
174
184
  * Get the next field and value from the BinaryParser
175
185
  *
176
186
  * @return The field and value
177
187
  */
178
- BinaryParser.prototype.readFieldAndValue = function () {
179
- var field = this.readField();
188
+ readFieldAndValue() {
189
+ const field = this.readField();
180
190
  return [field, this.readFieldValue(field)];
181
- };
182
- return BinaryParser;
183
- }());
191
+ }
192
+ }
184
193
  exports.BinaryParser = BinaryParser;
185
194
  //# sourceMappingURL=binary-parser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"binary-parser.js","sourceRoot":"","sources":["../../src/serdes/binary-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"binary-parser.js","sourceRoot":"","sources":["../../src/serdes/binary-parser.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,7 @@
1
- import { FieldInstance } from "../enums";
2
- import { SerializedType } from "../types/serialized-type";
3
- import { Buffer } from "buffer/";
1
+ import { FieldInstance } from '../enums';
2
+ import { type SerializedType } from '../types/serialized-type';
4
3
  /**
5
- * Bytes list is a collection of buffer objects
4
+ * Bytes list is a collection of Uint8Array objects
6
5
  */
7
6
  declare class BytesList {
8
7
  private bytesArray;
@@ -15,21 +14,21 @@ declare class BytesList {
15
14
  /**
16
15
  * Put bytes in the BytesList
17
16
  *
18
- * @param bytesArg A Buffer
17
+ * @param bytesArg A Uint8Array
19
18
  * @return this BytesList
20
19
  */
21
- put(bytesArg: Buffer): BytesList;
20
+ put(bytesArg: Uint8Array): BytesList;
22
21
  /**
23
22
  * Write this BytesList to the back of another bytes list
24
23
  *
25
24
  * @param list The BytesList to write to
26
25
  */
27
26
  toBytesSink(list: BytesList): void;
28
- toBytes(): Buffer;
27
+ toBytes(): Uint8Array;
29
28
  toHex(): string;
30
29
  }
31
30
  /**
32
- * BinarySerializer is used to write fields and values to buffers
31
+ * BinarySerializer is used to write fields and values to Uint8Arrays
33
32
  */
34
33
  declare class BinarySerializer {
35
34
  private sink;
@@ -45,7 +44,7 @@ declare class BinarySerializer {
45
44
  *
46
45
  * @param bytes the bytes to write
47
46
  */
48
- put(bytes: Buffer): void;
47
+ put(bytes: Uint8Array): void;
49
48
  /**
50
49
  * Write a value of a given type to this BinarySerializer
51
50
  *
@@ -71,12 +70,12 @@ declare class BinarySerializer {
71
70
  * @param field field to write to BinarySerializer
72
71
  * @param value value to write to BinarySerializer
73
72
  */
74
- writeFieldAndValue(field: FieldInstance, value: SerializedType): void;
73
+ writeFieldAndValue(field: FieldInstance, value: SerializedType, isUnlModifyWorkaround?: boolean): void;
75
74
  /**
76
75
  * Write a variable length encoded value to the BinarySerializer
77
76
  *
78
77
  * @param value length encoded value to write to BytesList
79
78
  */
80
- writeLengthEncoded(value: SerializedType): void;
79
+ writeLengthEncoded(value: SerializedType, isUnlModifyWorkaround?: boolean): void;
81
80
  }
82
81
  export { BytesList, BinarySerializer };
@@ -1,13 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BinarySerializer = exports.BytesList = void 0;
4
- var assert = require("assert");
5
- var buffer_1 = require("buffer/");
4
+ const utils_1 = require("@xrplf/isomorphic/utils");
6
5
  /**
7
- * Bytes list is a collection of buffer objects
6
+ * Bytes list is a collection of Uint8Array objects
8
7
  */
9
- var BytesList = /** @class */ (function () {
10
- function BytesList() {
8
+ class BytesList {
9
+ constructor() {
11
10
  this.bytesArray = [];
12
11
  }
13
12
  /**
@@ -15,42 +14,41 @@ var BytesList = /** @class */ (function () {
15
14
  *
16
15
  * @return the number of bytes
17
16
  */
18
- BytesList.prototype.getLength = function () {
19
- return buffer_1.Buffer.concat(this.bytesArray).byteLength;
20
- };
17
+ getLength() {
18
+ return (0, utils_1.concat)(this.bytesArray).byteLength;
19
+ }
21
20
  /**
22
21
  * Put bytes in the BytesList
23
22
  *
24
- * @param bytesArg A Buffer
23
+ * @param bytesArg A Uint8Array
25
24
  * @return this BytesList
26
25
  */
27
- BytesList.prototype.put = function (bytesArg) {
28
- var bytes = buffer_1.Buffer.from(bytesArg); // Temporary, to catch instances of Uint8Array being passed in
26
+ put(bytesArg) {
27
+ const bytes = Uint8Array.from(bytesArg); // Temporary, to catch instances of Uint8Array being passed in
29
28
  this.bytesArray.push(bytes);
30
29
  return this;
31
- };
30
+ }
32
31
  /**
33
32
  * Write this BytesList to the back of another bytes list
34
33
  *
35
34
  * @param list The BytesList to write to
36
35
  */
37
- BytesList.prototype.toBytesSink = function (list) {
36
+ toBytesSink(list) {
38
37
  list.put(this.toBytes());
39
- };
40
- BytesList.prototype.toBytes = function () {
41
- return buffer_1.Buffer.concat(this.bytesArray);
42
- };
43
- BytesList.prototype.toHex = function () {
44
- return this.toBytes().toString("hex").toUpperCase();
45
- };
46
- return BytesList;
47
- }());
38
+ }
39
+ toBytes() {
40
+ return (0, utils_1.concat)(this.bytesArray);
41
+ }
42
+ toHex() {
43
+ return (0, utils_1.bytesToHex)(this.toBytes());
44
+ }
45
+ }
48
46
  exports.BytesList = BytesList;
49
47
  /**
50
- * BinarySerializer is used to write fields and values to buffers
48
+ * BinarySerializer is used to write fields and values to Uint8Arrays
51
49
  */
52
- var BinarySerializer = /** @class */ (function () {
53
- function BinarySerializer(sink) {
50
+ class BinarySerializer {
51
+ constructor(sink) {
54
52
  this.sink = new BytesList();
55
53
  this.sink = sink;
56
54
  }
@@ -59,41 +57,41 @@ var BinarySerializer = /** @class */ (function () {
59
57
  *
60
58
  * @param value a SerializedType value
61
59
  */
62
- BinarySerializer.prototype.write = function (value) {
60
+ write(value) {
63
61
  value.toBytesSink(this.sink);
64
- };
62
+ }
65
63
  /**
66
64
  * Write bytes to this BinarySerializer
67
65
  *
68
66
  * @param bytes the bytes to write
69
67
  */
70
- BinarySerializer.prototype.put = function (bytes) {
68
+ put(bytes) {
71
69
  this.sink.put(bytes);
72
- };
70
+ }
73
71
  /**
74
72
  * Write a value of a given type to this BinarySerializer
75
73
  *
76
74
  * @param type the type to write
77
75
  * @param value a value of that type
78
76
  */
79
- BinarySerializer.prototype.writeType = function (type, value) {
77
+ writeType(type, value) {
80
78
  this.write(type.from(value));
81
- };
79
+ }
82
80
  /**
83
81
  * Write BytesList to this BinarySerializer
84
82
  *
85
83
  * @param bl BytesList to write to BinarySerializer
86
84
  */
87
- BinarySerializer.prototype.writeBytesList = function (bl) {
85
+ writeBytesList(bl) {
88
86
  bl.toBytesSink(this.sink);
89
- };
87
+ }
90
88
  /**
91
89
  * Calculate the header of Variable Length encoded bytes
92
90
  *
93
91
  * @param length the length of the bytes
94
92
  */
95
- BinarySerializer.prototype.encodeVariableLength = function (length) {
96
- var lenBytes = buffer_1.Buffer.alloc(3);
93
+ encodeVariableLength(length) {
94
+ const lenBytes = new Uint8Array(3);
97
95
  if (length <= 192) {
98
96
  lenBytes[0] = length;
99
97
  return lenBytes.slice(0, 1);
@@ -111,38 +109,41 @@ var BinarySerializer = /** @class */ (function () {
111
109
  lenBytes[2] = length & 0xff;
112
110
  return lenBytes.slice(0, 3);
113
111
  }
114
- throw new Error("Overflow error");
115
- };
112
+ throw new Error('Overflow error');
113
+ }
116
114
  /**
117
115
  * Write field and value to BinarySerializer
118
116
  *
119
117
  * @param field field to write to BinarySerializer
120
118
  * @param value value to write to BinarySerializer
121
119
  */
122
- BinarySerializer.prototype.writeFieldAndValue = function (field, value) {
123
- var associatedValue = field.associatedType.from(value);
124
- assert(associatedValue.toBytesSink !== undefined);
125
- assert(field.name !== undefined);
120
+ writeFieldAndValue(field, value, isUnlModifyWorkaround = false) {
121
+ const associatedValue = field.associatedType.from(value);
122
+ if (associatedValue.toBytesSink === undefined || field.name === undefined) {
123
+ throw new Error();
124
+ }
126
125
  this.sink.put(field.header);
127
126
  if (field.isVariableLengthEncoded) {
128
- this.writeLengthEncoded(associatedValue);
127
+ this.writeLengthEncoded(associatedValue, isUnlModifyWorkaround);
129
128
  }
130
129
  else {
131
130
  associatedValue.toBytesSink(this.sink);
132
131
  }
133
- };
132
+ }
134
133
  /**
135
134
  * Write a variable length encoded value to the BinarySerializer
136
135
  *
137
136
  * @param value length encoded value to write to BytesList
138
137
  */
139
- BinarySerializer.prototype.writeLengthEncoded = function (value) {
140
- var bytes = new BytesList();
141
- value.toBytesSink(bytes);
138
+ writeLengthEncoded(value, isUnlModifyWorkaround = false) {
139
+ const bytes = new BytesList();
140
+ if (!isUnlModifyWorkaround) {
141
+ // this part doesn't happen for the Account field in a UNLModify transaction
142
+ value.toBytesSink(bytes);
143
+ }
142
144
  this.put(this.encodeVariableLength(bytes.getLength()));
143
145
  this.writeBytesList(bytes);
144
- };
145
- return BinarySerializer;
146
- }());
146
+ }
147
+ }
147
148
  exports.BinarySerializer = BinarySerializer;
148
149
  //# sourceMappingURL=binary-serializer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"binary-serializer.js","sourceRoot":"","sources":["../../src/serdes/binary-serializer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"binary-serializer.js","sourceRoot":"","sources":["../../src/serdes/binary-serializer.ts"],"names":[],"mappings":"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"}
package/dist/shamap.d.ts CHANGED
@@ -1,11 +1,10 @@
1
- import { Hash256 } from "./types/hash-256";
2
- import { BytesList } from "./serdes/binary-serializer";
3
- import { Buffer } from "buffer/";
1
+ import { Hash256 } from './types/hash-256';
2
+ import { BytesList } from './serdes/binary-serializer';
4
3
  /**
5
4
  * Abstract class describing a SHAMapNode
6
5
  */
7
6
  declare abstract class ShaMapNode {
8
- abstract hashPrefix(): Buffer;
7
+ abstract hashPrefix(): Uint8Array;
9
8
  abstract isLeaf(): boolean;
10
9
  abstract isInner(): boolean;
11
10
  abstract toBytesSink(list: BytesList): void;
@@ -29,9 +28,9 @@ declare class ShaMapLeaf extends ShaMapNode {
29
28
  /**
30
29
  * Get the prefix of the this.item
31
30
  *
32
- * @returns The hash prefix, unless this.item is undefined, then it returns an empty Buffer
31
+ * @returns The hash prefix, unless this.item is undefined, then it returns an empty Uint8Array
33
32
  */
34
- hashPrefix(): Buffer;
33
+ hashPrefix(): Uint8Array;
35
34
  /**
36
35
  * Hash the bytes representation of this
37
36
  *
@@ -65,7 +64,7 @@ declare class ShaMapInner extends ShaMapNode {
65
64
  *
66
65
  * @returns hash prefix describing an inner node
67
66
  */
68
- hashPrefix(): Buffer;
67
+ hashPrefix(): Uint8Array;
69
68
  /**
70
69
  * Set a branch of this node to be another node
71
70
  *