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