ripple-binary-codec 0.2.7 → 1.0.0-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 (364) hide show
  1. package/README.md +104 -2
  2. package/dist/binary.d.ts +90 -0
  3. package/dist/binary.js +128 -0
  4. package/dist/binary.js.map +1 -0
  5. package/dist/coretypes.d.ts +9 -0
  6. package/dist/coretypes.js +48 -0
  7. package/dist/coretypes.js.map +1 -0
  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 +2956 -0
  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 -0
  19. package/dist/enums/index.js +31 -0
  20. package/dist/enums/index.js.map +1 -0
  21. package/{distrib/npm → dist/enums/src}/enums/definitions.json +1709 -438
  22. package/dist/enums/utils-renumber.d.ts +101 -0
  23. package/dist/enums/utils-renumber.js +127 -0
  24. package/dist/enums/utils-renumber.js.map +1 -0
  25. package/dist/enums/xrpl-definitions-base.d.ts +44 -0
  26. package/dist/enums/xrpl-definitions-base.js +59 -0
  27. package/dist/enums/xrpl-definitions-base.js.map +1 -0
  28. package/dist/enums/xrpl-definitions.d.ts +21 -0
  29. package/dist/enums/xrpl-definitions.js +29 -0
  30. package/dist/enums/xrpl-definitions.js.map +1 -0
  31. package/dist/hash-prefixes.d.ts +5 -0
  32. package/dist/hash-prefixes.js +41 -0
  33. package/dist/hash-prefixes.js.map +1 -0
  34. package/dist/hashes.d.ts +50 -0
  35. package/dist/hashes.js +76 -0
  36. package/dist/hashes.js.map +1 -0
  37. package/dist/index.d.ts +64 -0
  38. package/dist/index.js +123 -0
  39. package/dist/index.js.map +1 -0
  40. package/dist/ledger-hashes.d.ts +48 -0
  41. package/dist/ledger-hashes.js +141 -0
  42. package/dist/ledger-hashes.js.map +1 -0
  43. package/dist/quality.d.ts +21 -0
  44. package/dist/quality.js +42 -0
  45. package/dist/quality.js.map +1 -0
  46. package/dist/serdes/binary-parser.d.ts +100 -0
  47. package/dist/serdes/binary-parser.js +194 -0
  48. package/dist/serdes/binary-parser.js.map +1 -0
  49. package/dist/serdes/binary-serializer.d.ts +81 -0
  50. package/dist/serdes/binary-serializer.js +149 -0
  51. package/dist/serdes/binary-serializer.js.map +1 -0
  52. package/dist/shamap.d.ts +102 -0
  53. package/dist/shamap.js +172 -0
  54. package/dist/shamap.js.map +1 -0
  55. package/dist/src/binary.d.ts +90 -0
  56. package/dist/src/binary.js +128 -0
  57. package/dist/src/binary.js.map +1 -0
  58. package/dist/src/coretypes.d.ts +9 -0
  59. package/dist/src/coretypes.js +48 -0
  60. package/dist/src/coretypes.js.map +1 -0
  61. package/dist/src/enums/bytes.d.ts +25 -0
  62. package/dist/src/enums/bytes.js +63 -0
  63. package/dist/src/enums/bytes.js.map +1 -0
  64. package/dist/src/enums/constants.d.ts +4 -0
  65. package/dist/src/enums/constants.js +8 -0
  66. package/dist/src/enums/constants.js.map +1 -0
  67. package/dist/src/enums/definitions.json +2956 -0
  68. package/dist/src/enums/field.d.ts +28 -0
  69. package/dist/src/enums/field.js +58 -0
  70. package/dist/src/enums/field.js.map +1 -0
  71. package/dist/src/enums/index.d.ts +12 -0
  72. package/dist/src/enums/index.js +31 -0
  73. package/dist/src/enums/index.js.map +1 -0
  74. package/dist/src/enums/utils-renumber.d.ts +101 -0
  75. package/dist/src/enums/utils-renumber.js +127 -0
  76. package/dist/src/enums/utils-renumber.js.map +1 -0
  77. package/dist/src/enums/xrpl-definitions-base.d.ts +44 -0
  78. package/dist/src/enums/xrpl-definitions-base.js +59 -0
  79. package/dist/src/enums/xrpl-definitions-base.js.map +1 -0
  80. package/dist/src/enums/xrpl-definitions.d.ts +21 -0
  81. package/dist/src/enums/xrpl-definitions.js +29 -0
  82. package/dist/src/enums/xrpl-definitions.js.map +1 -0
  83. package/dist/src/hash-prefixes.d.ts +5 -0
  84. package/dist/src/hash-prefixes.js +41 -0
  85. package/dist/src/hash-prefixes.js.map +1 -0
  86. package/dist/src/hashes.d.ts +50 -0
  87. package/dist/src/hashes.js +76 -0
  88. package/dist/src/hashes.js.map +1 -0
  89. package/dist/src/index.d.ts +64 -0
  90. package/dist/src/index.js +123 -0
  91. package/dist/src/index.js.map +1 -0
  92. package/dist/src/ledger-hashes.d.ts +48 -0
  93. package/dist/src/ledger-hashes.js +141 -0
  94. package/dist/src/ledger-hashes.js.map +1 -0
  95. package/dist/src/quality.d.ts +21 -0
  96. package/dist/src/quality.js +42 -0
  97. package/dist/src/quality.js.map +1 -0
  98. package/dist/src/serdes/binary-parser.d.ts +100 -0
  99. package/dist/src/serdes/binary-parser.js +194 -0
  100. package/dist/src/serdes/binary-parser.js.map +1 -0
  101. package/dist/src/serdes/binary-serializer.d.ts +81 -0
  102. package/dist/src/serdes/binary-serializer.js +149 -0
  103. package/dist/src/serdes/binary-serializer.js.map +1 -0
  104. package/dist/src/shamap.d.ts +102 -0
  105. package/dist/src/shamap.js +172 -0
  106. package/dist/src/shamap.js.map +1 -0
  107. package/dist/src/types/account-id.d.ts +35 -0
  108. package/dist/src/types/account-id.js +69 -0
  109. package/dist/src/types/account-id.js.map +1 -0
  110. package/dist/src/types/amount.d.ts +91 -0
  111. package/dist/src/types/amount.js +289 -0
  112. package/dist/src/types/amount.js.map +1 -0
  113. package/dist/src/types/blob.d.ts +24 -0
  114. package/dist/src/types/blob.js +40 -0
  115. package/dist/src/types/blob.js.map +1 -0
  116. package/dist/src/types/currency.d.ts +28 -0
  117. package/dist/src/types/currency.js +127 -0
  118. package/dist/src/types/currency.js.map +1 -0
  119. package/dist/src/types/hash-128.d.ts +16 -0
  120. package/dist/src/types/hash-128.js +32 -0
  121. package/dist/src/types/hash-128.js.map +1 -0
  122. package/dist/src/types/hash-160.d.ts +10 -0
  123. package/dist/src/types/hash-160.js +19 -0
  124. package/dist/src/types/hash-160.js.map +1 -0
  125. package/dist/src/types/hash-192.d.ts +10 -0
  126. package/dist/src/types/hash-192.js +19 -0
  127. package/dist/src/types/hash-192.js.map +1 -0
  128. package/dist/src/types/hash-256.d.ts +10 -0
  129. package/dist/src/types/hash-256.js +16 -0
  130. package/dist/src/types/hash-256.js.map +1 -0
  131. package/dist/src/types/hash.d.ts +40 -0
  132. package/dist/src/types/hash.js +73 -0
  133. package/dist/src/types/hash.js.map +1 -0
  134. package/dist/src/types/index.d.ts +19 -0
  135. package/dist/src/types/index.js +64 -0
  136. package/dist/src/types/index.js.map +1 -0
  137. package/dist/src/types/issue.d.ts +38 -0
  138. package/dist/src/types/issue.js +81 -0
  139. package/dist/src/types/issue.js.map +1 -0
  140. package/dist/src/types/path-set.d.ts +36 -0
  141. package/dist/src/types/path-set.js +233 -0
  142. package/dist/src/types/path-set.js.map +1 -0
  143. package/dist/src/types/serialized-type.d.ts +70 -0
  144. package/dist/src/types/serialized-type.js +105 -0
  145. package/dist/src/types/serialized-type.js.map +1 -0
  146. package/dist/src/types/st-array.d.ts +31 -0
  147. package/dist/src/types/st-array.js +83 -0
  148. package/dist/src/types/st-array.js.map +1 -0
  149. package/dist/src/types/st-object.d.ts +32 -0
  150. package/dist/src/types/st-object.js +155 -0
  151. package/dist/src/types/st-object.js.map +1 -0
  152. package/dist/src/types/uint-16.d.ts +24 -0
  153. package/dist/src/types/uint-16.js +45 -0
  154. package/dist/src/types/uint-16.js.map +1 -0
  155. package/dist/src/types/uint-32.d.ts +24 -0
  156. package/dist/src/types/uint-32.js +50 -0
  157. package/dist/src/types/uint-32.js.map +1 -0
  158. package/dist/src/types/uint-64.d.ts +37 -0
  159. package/dist/src/types/uint-64.js +86 -0
  160. package/dist/src/types/uint-64.js.map +1 -0
  161. package/dist/src/types/uint-8.d.ts +24 -0
  162. package/dist/src/types/uint-8.js +46 -0
  163. package/dist/src/types/uint-8.js.map +1 -0
  164. package/dist/src/types/uint.d.ts +29 -0
  165. package/dist/src/types/uint.js +47 -0
  166. package/dist/src/types/uint.js.map +1 -0
  167. package/dist/src/types/vector-256.d.ts +30 -0
  168. package/dist/src/types/vector-256.js +73 -0
  169. package/dist/src/types/vector-256.js.map +1 -0
  170. package/dist/src/types/xchain-bridge.d.ts +44 -0
  171. package/dist/src/types/xchain-bridge.js +102 -0
  172. package/dist/src/types/xchain-bridge.js.map +1 -0
  173. package/dist/src/utils.d.ts +47 -0
  174. package/dist/src/utils.js +137 -0
  175. package/dist/src/utils.js.map +1 -0
  176. package/dist/tsconfig.tsbuildinfo +1 -0
  177. package/dist/types/account-id.d.ts +35 -0
  178. package/dist/types/account-id.js +69 -0
  179. package/dist/types/account-id.js.map +1 -0
  180. package/dist/types/amount.d.ts +91 -0
  181. package/dist/types/amount.js +289 -0
  182. package/dist/types/amount.js.map +1 -0
  183. package/dist/types/blob.d.ts +24 -0
  184. package/dist/types/blob.js +40 -0
  185. package/dist/types/blob.js.map +1 -0
  186. package/dist/types/currency.d.ts +28 -0
  187. package/dist/types/currency.js +127 -0
  188. package/dist/types/currency.js.map +1 -0
  189. package/dist/types/hash-128.d.ts +16 -0
  190. package/dist/types/hash-128.js +32 -0
  191. package/dist/types/hash-128.js.map +1 -0
  192. package/dist/types/hash-160.d.ts +10 -0
  193. package/dist/types/hash-160.js +19 -0
  194. package/dist/types/hash-160.js.map +1 -0
  195. package/dist/types/hash-192.d.ts +10 -0
  196. package/dist/types/hash-192.js +19 -0
  197. package/dist/types/hash-192.js.map +1 -0
  198. package/dist/types/hash-256.d.ts +10 -0
  199. package/dist/types/hash-256.js +16 -0
  200. package/dist/types/hash-256.js.map +1 -0
  201. package/dist/types/hash.d.ts +40 -0
  202. package/dist/types/hash.js +73 -0
  203. package/dist/types/hash.js.map +1 -0
  204. package/dist/types/index.d.ts +19 -0
  205. package/dist/types/index.js +64 -0
  206. package/dist/types/index.js.map +1 -0
  207. package/dist/types/issue.d.ts +38 -0
  208. package/dist/types/issue.js +81 -0
  209. package/dist/types/issue.js.map +1 -0
  210. package/dist/types/path-set.d.ts +36 -0
  211. package/dist/types/path-set.js +233 -0
  212. package/dist/types/path-set.js.map +1 -0
  213. package/dist/types/serialized-type.d.ts +70 -0
  214. package/dist/types/serialized-type.js +105 -0
  215. package/dist/types/serialized-type.js.map +1 -0
  216. package/dist/types/st-array.d.ts +31 -0
  217. package/dist/types/st-array.js +83 -0
  218. package/dist/types/st-array.js.map +1 -0
  219. package/dist/types/st-object.d.ts +32 -0
  220. package/dist/types/st-object.js +155 -0
  221. package/dist/types/st-object.js.map +1 -0
  222. package/dist/types/uint-16.d.ts +24 -0
  223. package/dist/types/uint-16.js +45 -0
  224. package/dist/types/uint-16.js.map +1 -0
  225. package/dist/types/uint-32.d.ts +24 -0
  226. package/dist/types/uint-32.js +50 -0
  227. package/dist/types/uint-32.js.map +1 -0
  228. package/dist/types/uint-64.d.ts +37 -0
  229. package/dist/types/uint-64.js +86 -0
  230. package/dist/types/uint-64.js.map +1 -0
  231. package/dist/types/uint-8.d.ts +24 -0
  232. package/dist/types/uint-8.js +46 -0
  233. package/dist/types/uint-8.js.map +1 -0
  234. package/dist/types/uint.d.ts +29 -0
  235. package/dist/types/uint.js +47 -0
  236. package/dist/types/uint.js.map +1 -0
  237. package/dist/types/vector-256.d.ts +30 -0
  238. package/dist/types/vector-256.js +73 -0
  239. package/dist/types/vector-256.js.map +1 -0
  240. package/dist/types/xchain-bridge.d.ts +44 -0
  241. package/dist/types/xchain-bridge.js +102 -0
  242. package/dist/types/xchain-bridge.js.map +1 -0
  243. package/dist/utils.d.ts +47 -0
  244. package/dist/utils.js +137 -0
  245. package/dist/utils.js.map +1 -0
  246. package/package.json +28 -33
  247. package/src/README.md +5 -0
  248. package/src/binary.ts +194 -0
  249. package/src/coretypes.ts +31 -0
  250. package/src/enums/README.md +144 -0
  251. package/src/enums/bytes.ts +74 -0
  252. package/src/enums/constants.ts +4 -0
  253. package/src/enums/definitions.json +2961 -0
  254. package/src/enums/field.ts +84 -0
  255. package/src/enums/index.ts +34 -0
  256. package/src/enums/utils-renumber.ts +134 -0
  257. package/src/enums/xrpl-definitions-base.ts +111 -0
  258. package/src/enums/xrpl-definitions.ts +32 -0
  259. package/src/hash-prefixes.ts +40 -0
  260. package/src/hashes.ts +75 -0
  261. package/src/index.ts +153 -0
  262. package/src/ledger-hashes.ts +191 -0
  263. package/src/quality.ts +38 -0
  264. package/src/serdes/binary-parser.ts +224 -0
  265. package/src/serdes/binary-serializer.ts +166 -0
  266. package/src/shamap.ts +186 -0
  267. package/src/types/account-id.ts +86 -0
  268. package/src/types/amount.ts +362 -0
  269. package/src/types/blob.ts +43 -0
  270. package/src/types/currency.ts +140 -0
  271. package/src/types/hash-128.ts +33 -0
  272. package/src/types/hash-160.ts +19 -0
  273. package/src/types/hash-192.ts +19 -0
  274. package/src/types/hash-256.ts +15 -0
  275. package/src/types/hash.ts +83 -0
  276. package/src/types/index.ts +66 -0
  277. package/src/types/issue.ts +96 -0
  278. package/src/types/path-set.ts +290 -0
  279. package/src/types/serialized-type.ts +122 -0
  280. package/src/types/st-array.ts +107 -0
  281. package/src/types/st-object.ts +192 -0
  282. package/src/types/uint-16.ts +53 -0
  283. package/src/types/uint-32.ts +59 -0
  284. package/src/types/uint-64.ts +104 -0
  285. package/src/types/uint-8.ts +52 -0
  286. package/src/types/uint.ts +60 -0
  287. package/src/types/vector-256.ts +79 -0
  288. package/src/types/xchain-bridge.ts +128 -0
  289. package/src/utils.ts +152 -0
  290. package/HISTORY.md +0 -66
  291. package/distrib/npm/binary.js +0 -68
  292. package/distrib/npm/coretypes.js +0 -22
  293. package/distrib/npm/enums/index.js +0 -125
  294. package/distrib/npm/enums/utils-renumber.js +0 -134
  295. package/distrib/npm/hash-prefixes.js +0 -30
  296. package/distrib/npm/hashes.js +0 -42
  297. package/distrib/npm/index.js +0 -72
  298. package/distrib/npm/ledger-hashes.js +0 -71
  299. package/distrib/npm/quality.js +0 -20
  300. package/distrib/npm/serdes/binary-parser.js +0 -98
  301. package/distrib/npm/serdes/binary-serializer.js +0 -106
  302. package/distrib/npm/shamap.js +0 -107
  303. package/distrib/npm/types/account-id.js +0 -41
  304. package/distrib/npm/types/amount.js +0 -215
  305. package/distrib/npm/types/blob.js +0 -28
  306. package/distrib/npm/types/currency.js +0 -91
  307. package/distrib/npm/types/hash-128.js +0 -10
  308. package/distrib/npm/types/hash-160.js +0 -10
  309. package/distrib/npm/types/hash-256.js +0 -15
  310. package/distrib/npm/types/hash.js +0 -45
  311. package/distrib/npm/types/index.js +0 -45
  312. package/distrib/npm/types/path-set.js +0 -112
  313. package/distrib/npm/types/serialized-type.js +0 -63
  314. package/distrib/npm/types/st-array.js +0 -37
  315. package/distrib/npm/types/st-object.js +0 -65
  316. package/distrib/npm/types/uint-16.js +0 -10
  317. package/distrib/npm/types/uint-32.js +0 -10
  318. package/distrib/npm/types/uint-64.js +0 -49
  319. package/distrib/npm/types/uint-8.js +0 -10
  320. package/distrib/npm/types/uint.js +0 -60
  321. package/distrib/npm/types/vector-256.js +0 -31
  322. package/distrib/npm/utils/bytes-utils.js +0 -112
  323. package/distrib/npm/utils/make-class.js +0 -83
  324. package/test/amount-test.js +0 -43
  325. package/test/binary-json-test.js +0 -43
  326. package/test/binary-parser-test.js +0 -341
  327. package/test/binary-serializer-test.js +0 -194
  328. package/test/bytes-utils-test.js +0 -72
  329. package/test/fixtures/account-tx-transactions.db +0 -0
  330. package/test/fixtures/codec-fixtures.json +0 -4466
  331. package/test/fixtures/data-driven-tests.json +0 -3721
  332. package/test/fixtures/delivermin-tx-binary.json +0 -1
  333. package/test/fixtures/delivermin-tx.json +0 -98
  334. package/test/fixtures/deposit-preauth-tx-binary.json +0 -1
  335. package/test/fixtures/deposit-preauth-tx-meta-binary.json +0 -1
  336. package/test/fixtures/deposit-preauth-tx.json +0 -58
  337. package/test/fixtures/escrow-cancel-binary.json +0 -1
  338. package/test/fixtures/escrow-cancel-tx.json +0 -6
  339. package/test/fixtures/escrow-create-binary.json +0 -1
  340. package/test/fixtures/escrow-create-tx.json +0 -10
  341. package/test/fixtures/escrow-finish-binary.json +0 -1
  342. package/test/fixtures/escrow-finish-meta-binary.json +0 -1
  343. package/test/fixtures/escrow-finish-tx.json +0 -95
  344. package/test/fixtures/ledger-full-38129.json +0 -1
  345. package/test/fixtures/ledger-full-40000.json +0 -1
  346. package/test/fixtures/payment-channel-claim-binary.json +0 -1
  347. package/test/fixtures/payment-channel-claim-tx.json +0 -8
  348. package/test/fixtures/payment-channel-create-binary.json +0 -1
  349. package/test/fixtures/payment-channel-create-tx.json +0 -11
  350. package/test/fixtures/payment-channel-fund-binary.json +0 -1
  351. package/test/fixtures/payment-channel-fund-tx.json +0 -7
  352. package/test/fixtures/signerlistset-tx-binary.json +0 -1
  353. package/test/fixtures/signerlistset-tx-meta-binary.json +0 -1
  354. package/test/fixtures/signerlistset-tx.json +0 -94
  355. package/test/hash-test.js +0 -58
  356. package/test/ledger-test.js +0 -26
  357. package/test/mocha.opts +0 -1
  358. package/test/quality-test.js +0 -16
  359. package/test/shamap-test.js +0 -88
  360. package/test/signing-data-encoding-test.js +0 -120
  361. package/test/tx-encode-decode-test.js +0 -124
  362. package/test/types-test.js +0 -38
  363. package/test/uint-test.js +0 -38
  364. package/test/utils.js +0 -93
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Vector256 = void 0;
4
+ const serialized_type_1 = require("./serialized-type");
5
+ const hash_256_1 = require("./hash-256");
6
+ const binary_serializer_1 = require("../serdes/binary-serializer");
7
+ const utils_1 = require("@xrplf/isomorphic/utils");
8
+ /**
9
+ * TypeGuard for Array<string>
10
+ */
11
+ function isStrings(arg) {
12
+ return Array.isArray(arg) && (arg.length === 0 || typeof arg[0] === 'string');
13
+ }
14
+ /**
15
+ * Class for serializing and deserializing vectors of Hash256
16
+ */
17
+ class Vector256 extends serialized_type_1.SerializedType {
18
+ constructor(bytes) {
19
+ super(bytes);
20
+ }
21
+ /**
22
+ * Construct a Vector256 from a BinaryParser
23
+ *
24
+ * @param parser BinaryParser to
25
+ * @param hint length of the vector, in bytes, optional
26
+ * @returns a Vector256 object
27
+ */
28
+ static fromParser(parser, hint) {
29
+ const bytesList = new binary_serializer_1.BytesList();
30
+ const bytes = hint !== null && hint !== void 0 ? hint : parser.size();
31
+ const hashes = bytes / 32;
32
+ for (let i = 0; i < hashes; i++) {
33
+ hash_256_1.Hash256.fromParser(parser).toBytesSink(bytesList);
34
+ }
35
+ return new Vector256(bytesList.toBytes());
36
+ }
37
+ /**
38
+ * Construct a Vector256 object from an array of hashes
39
+ *
40
+ * @param value A Vector256 object or array of hex-strings representing Hash256's
41
+ * @returns a Vector256 object
42
+ */
43
+ static from(value) {
44
+ if (value instanceof Vector256) {
45
+ return value;
46
+ }
47
+ if (isStrings(value)) {
48
+ const bytesList = new binary_serializer_1.BytesList();
49
+ value.forEach((hash) => {
50
+ hash_256_1.Hash256.from(hash).toBytesSink(bytesList);
51
+ });
52
+ return new Vector256(bytesList.toBytes());
53
+ }
54
+ throw new Error('Cannot construct Vector256 from given value');
55
+ }
56
+ /**
57
+ * Return an Array of hex-strings represented by this.bytes
58
+ *
59
+ * @returns An Array of strings representing the Hash256 objects
60
+ */
61
+ toJSON() {
62
+ if (this.bytes.byteLength % 32 !== 0) {
63
+ throw new Error('Invalid bytes for Vector256');
64
+ }
65
+ const result = [];
66
+ for (let i = 0; i < this.bytes.byteLength; i += 32) {
67
+ result.push((0, utils_1.bytesToHex)(this.bytes.slice(i, i + 32)));
68
+ }
69
+ return result;
70
+ }
71
+ }
72
+ exports.Vector256 = Vector256;
73
+ //# sourceMappingURL=vector-256.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vector-256.js","sourceRoot":"","sources":["../../src/types/vector-256.ts"],"names":[],"mappings":";;;AAAA,uDAAkD;AAElD,yCAAoC;AACpC,mEAAuD;AACvD,mDAAoD;AAEpD;;GAEG;AACH,SAAS,SAAS,CAAC,GAAG;IACpB,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAA;AAC/E,CAAC;AAED;;GAEG;AACH,MAAM,SAAU,SAAQ,gCAAc;IACpC,YAAY,KAAiB;QAC3B,KAAK,CAAC,KAAK,CAAC,CAAA;IACd,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,UAAU,CAAC,MAAoB,EAAE,IAAa;QACnD,MAAM,SAAS,GAAG,IAAI,6BAAS,EAAE,CAAA;QACjC,MAAM,KAAK,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,MAAM,CAAC,IAAI,EAAE,CAAA;QACnC,MAAM,MAAM,GAAG,KAAK,GAAG,EAAE,CAAA;QACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;YAC/B,kBAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;SAClD;QACD,OAAO,IAAI,SAAS,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAA;IAC3C,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,IAAI,CAAsC,KAAQ;QACvD,IAAI,KAAK,YAAY,SAAS,EAAE;YAC9B,OAAO,KAAK,CAAA;SACb;QAED,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE;YACpB,MAAM,SAAS,GAAG,IAAI,6BAAS,EAAE,CAAA;YACjC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBACrB,kBAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;YAC3C,CAAC,CAAC,CAAA;YACF,OAAO,IAAI,SAAS,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAA;SAC1C;QAED,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;IAChE,CAAC;IAED;;;;OAIG;IACH,MAAM;QACJ,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,KAAK,CAAC,EAAE;YACpC,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;SAC/C;QAED,MAAM,MAAM,GAAkB,EAAE,CAAA;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE;YAClD,MAAM,CAAC,IAAI,CAAC,IAAA,kBAAU,EAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAA;SACrD;QACD,OAAO,MAAM,CAAA;IACf,CAAC;CACF;AAEQ,8BAAS"}
@@ -0,0 +1,44 @@
1
+ import { BinaryParser } from '../serdes/binary-parser';
2
+ import { JsonObject, SerializedType } from './serialized-type';
3
+ import { IssueObject } from './issue';
4
+ /**
5
+ * Interface for JSON objects that represent cross-chain bridges
6
+ */
7
+ interface XChainBridgeObject extends JsonObject {
8
+ LockingChainDoor: string;
9
+ LockingChainIssue: IssueObject | string;
10
+ IssuingChainDoor: string;
11
+ IssuingChainIssue: IssueObject | string;
12
+ }
13
+ /**
14
+ * Class for serializing/deserializing XChainBridges
15
+ */
16
+ declare class XChainBridge extends SerializedType {
17
+ static readonly ZERO_XCHAIN_BRIDGE: XChainBridge;
18
+ static readonly TYPE_ORDER: {
19
+ name: string;
20
+ type: typeof SerializedType;
21
+ }[];
22
+ constructor(bytes: Uint8Array);
23
+ /**
24
+ * Construct a cross-chain bridge from a JSON
25
+ *
26
+ * @param value XChainBridge or JSON to parse into an XChainBridge
27
+ * @returns An XChainBridge object
28
+ */
29
+ static from<T extends XChainBridge | XChainBridgeObject>(value: T): XChainBridge;
30
+ /**
31
+ * Read an XChainBridge from a BinaryParser
32
+ *
33
+ * @param parser BinaryParser to read the XChainBridge from
34
+ * @returns An XChainBridge object
35
+ */
36
+ static fromParser(parser: BinaryParser): XChainBridge;
37
+ /**
38
+ * Get the JSON representation of this XChainBridge
39
+ *
40
+ * @returns the JSON interpretation of this.bytes
41
+ */
42
+ toJSON(): XChainBridgeObject;
43
+ }
44
+ export { XChainBridge, XChainBridgeObject };
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.XChainBridge = void 0;
4
+ const binary_parser_1 = require("../serdes/binary-parser");
5
+ const account_id_1 = require("./account-id");
6
+ const serialized_type_1 = require("./serialized-type");
7
+ const issue_1 = require("./issue");
8
+ const utils_1 = require("@xrplf/isomorphic/utils");
9
+ /**
10
+ * Type guard for XChainBridgeObject
11
+ */
12
+ function isXChainBridgeObject(arg) {
13
+ const keys = Object.keys(arg).sort();
14
+ return (keys.length === 4 &&
15
+ keys[0] === 'IssuingChainDoor' &&
16
+ keys[1] === 'IssuingChainIssue' &&
17
+ keys[2] === 'LockingChainDoor' &&
18
+ keys[3] === 'LockingChainIssue');
19
+ }
20
+ /**
21
+ * Class for serializing/deserializing XChainBridges
22
+ */
23
+ class XChainBridge extends serialized_type_1.SerializedType {
24
+ constructor(bytes) {
25
+ super(bytes !== null && bytes !== void 0 ? bytes : XChainBridge.ZERO_XCHAIN_BRIDGE.bytes);
26
+ }
27
+ /**
28
+ * Construct a cross-chain bridge from a JSON
29
+ *
30
+ * @param value XChainBridge or JSON to parse into an XChainBridge
31
+ * @returns An XChainBridge object
32
+ */
33
+ static from(value) {
34
+ if (value instanceof XChainBridge) {
35
+ return value;
36
+ }
37
+ if (!isXChainBridgeObject(value)) {
38
+ throw new Error('Invalid type to construct an XChainBridge');
39
+ }
40
+ const bytes = [];
41
+ this.TYPE_ORDER.forEach((item) => {
42
+ const { name, type } = item;
43
+ if (type === account_id_1.AccountID) {
44
+ bytes.push(Uint8Array.from([0x14]));
45
+ }
46
+ const object = type.from(value[name]);
47
+ bytes.push(object.toBytes());
48
+ });
49
+ return new XChainBridge((0, utils_1.concat)(bytes));
50
+ }
51
+ /**
52
+ * Read an XChainBridge from a BinaryParser
53
+ *
54
+ * @param parser BinaryParser to read the XChainBridge from
55
+ * @returns An XChainBridge object
56
+ */
57
+ static fromParser(parser) {
58
+ const bytes = [];
59
+ this.TYPE_ORDER.forEach((item) => {
60
+ const { type } = item;
61
+ if (type === account_id_1.AccountID) {
62
+ parser.skip(1);
63
+ bytes.push(Uint8Array.from([0x14]));
64
+ }
65
+ const object = type.fromParser(parser);
66
+ bytes.push(object.toBytes());
67
+ });
68
+ return new XChainBridge((0, utils_1.concat)(bytes));
69
+ }
70
+ /**
71
+ * Get the JSON representation of this XChainBridge
72
+ *
73
+ * @returns the JSON interpretation of this.bytes
74
+ */
75
+ toJSON() {
76
+ const parser = new binary_parser_1.BinaryParser(this.toString());
77
+ const json = {};
78
+ XChainBridge.TYPE_ORDER.forEach((item) => {
79
+ const { name, type } = item;
80
+ if (type === account_id_1.AccountID) {
81
+ parser.skip(1);
82
+ }
83
+ const object = type.fromParser(parser).toJSON();
84
+ json[name] = object;
85
+ });
86
+ return json;
87
+ }
88
+ }
89
+ exports.XChainBridge = XChainBridge;
90
+ XChainBridge.ZERO_XCHAIN_BRIDGE = new XChainBridge((0, utils_1.concat)([
91
+ Uint8Array.from([0x14]),
92
+ new Uint8Array(40),
93
+ Uint8Array.from([0x14]),
94
+ new Uint8Array(40),
95
+ ]));
96
+ XChainBridge.TYPE_ORDER = [
97
+ { name: 'LockingChainDoor', type: account_id_1.AccountID },
98
+ { name: 'LockingChainIssue', type: issue_1.Issue },
99
+ { name: 'IssuingChainDoor', type: account_id_1.AccountID },
100
+ { name: 'IssuingChainIssue', type: issue_1.Issue },
101
+ ];
102
+ //# sourceMappingURL=xchain-bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xchain-bridge.js","sourceRoot":"","sources":["../../src/types/xchain-bridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ /// <reference types="node" />
2
+ import TypedArray = NodeJS.TypedArray;
3
+ /**
4
+ * Writes value to array at the specified offset. The value must be a valid unsigned 8-bit integer.
5
+ * @param array Uint8Array to be written to
6
+ * @param value Number to be written to array.
7
+ * @param offset plus the number of bytes written.
8
+ */
9
+ export declare function writeUInt8(array: Uint8Array, value: number, offset: number): void;
10
+ /**
11
+ * Writes value to array at the specified offset as big-endian. The value must be a valid unsigned 16-bit integer.
12
+ * @param array Uint8Array to be written to
13
+ * @param value Number to be written to array.
14
+ * @param offset plus the number of bytes written.
15
+ */
16
+ export declare function writeUInt16BE(array: Uint8Array, value: number, offset: number): void;
17
+ /**
18
+ * Writes value to array at the specified offset as big-endian. The value must be a valid unsigned 32-bit integer.
19
+ * @param array Uint8Array to be written to
20
+ * @param value Number to be written to array.
21
+ * @param offset plus the number of bytes written.
22
+ */
23
+ export declare function writeUInt32BE(array: Uint8Array, value: number, offset: number): void;
24
+ /**
25
+ * Reads an unsigned, big-endian 16-bit integer from the array at the specified offset.
26
+ * @param array Uint8Array to read
27
+ * @param offset Number of bytes to skip before starting to read. Must satisfy 0 <= offset <= buf.length - 2
28
+ */
29
+ export declare function readUInt16BE(array: Uint8Array, offset: number): string;
30
+ /**
31
+ * Reads an unsigned, big-endian 16-bit integer from the array at the specified offset.
32
+ * @param array Uint8Array to read
33
+ * @param offset Number of bytes to skip before starting to read. Must satisfy 0 <= offset <= buf.length - 4
34
+ */
35
+ export declare function readUInt32BE(array: Uint8Array, offset: number): string;
36
+ /**
37
+ * Compares two Uint8Array or ArrayBuffers
38
+ * @param a first array to compare
39
+ * @param b second array to compare
40
+ */
41
+ export declare function equal(a: Uint8Array | ArrayBuffer, b: Uint8Array | ArrayBuffer): boolean;
42
+ /**
43
+ * Compare two TypedArrays
44
+ * @param a first array to compare
45
+ * @param b second array to compare
46
+ */
47
+ export declare function compare(a: TypedArray, b: TypedArray): 1 | -1 | 0;
package/dist/utils.js ADDED
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.compare = exports.equal = exports.readUInt32BE = exports.readUInt16BE = exports.writeUInt32BE = exports.writeUInt16BE = exports.writeUInt8 = void 0;
4
+ /**
5
+ * Writes value to array at the specified offset. The value must be a valid unsigned 8-bit integer.
6
+ * @param array Uint8Array to be written to
7
+ * @param value Number to be written to array.
8
+ * @param offset plus the number of bytes written.
9
+ */
10
+ function writeUInt8(array, value, offset) {
11
+ value = Number(value);
12
+ array[offset] = value;
13
+ }
14
+ exports.writeUInt8 = writeUInt8;
15
+ /**
16
+ * Writes value to array at the specified offset as big-endian. The value must be a valid unsigned 16-bit integer.
17
+ * @param array Uint8Array to be written to
18
+ * @param value Number to be written to array.
19
+ * @param offset plus the number of bytes written.
20
+ */
21
+ function writeUInt16BE(array, value, offset) {
22
+ value = Number(value);
23
+ array[offset] = value >>> 8;
24
+ array[offset + 1] = value;
25
+ }
26
+ exports.writeUInt16BE = writeUInt16BE;
27
+ /**
28
+ * Writes value to array at the specified offset as big-endian. The value must be a valid unsigned 32-bit integer.
29
+ * @param array Uint8Array to be written to
30
+ * @param value Number to be written to array.
31
+ * @param offset plus the number of bytes written.
32
+ */
33
+ function writeUInt32BE(array, value, offset) {
34
+ array[offset] = (value >>> 24) & 0xff;
35
+ array[offset + 1] = (value >>> 16) & 0xff;
36
+ array[offset + 2] = (value >>> 8) & 0xff;
37
+ array[offset + 3] = value & 0xff;
38
+ }
39
+ exports.writeUInt32BE = writeUInt32BE;
40
+ /**
41
+ * Reads an unsigned, big-endian 16-bit integer from the array at the specified offset.
42
+ * @param array Uint8Array to read
43
+ * @param offset Number of bytes to skip before starting to read. Must satisfy 0 <= offset <= buf.length - 2
44
+ */
45
+ function readUInt16BE(array, offset) {
46
+ return new DataView(array.buffer).getUint16(offset, false).toString(10);
47
+ }
48
+ exports.readUInt16BE = readUInt16BE;
49
+ /**
50
+ * Reads an unsigned, big-endian 16-bit integer from the array at the specified offset.
51
+ * @param array Uint8Array to read
52
+ * @param offset Number of bytes to skip before starting to read. Must satisfy 0 <= offset <= buf.length - 4
53
+ */
54
+ function readUInt32BE(array, offset) {
55
+ return new DataView(array.buffer).getUint32(offset, false).toString(10);
56
+ }
57
+ exports.readUInt32BE = readUInt32BE;
58
+ /**
59
+ * Compares two Uint8Array or ArrayBuffers
60
+ * @param a first array to compare
61
+ * @param b second array to compare
62
+ */
63
+ function equal(a, b) {
64
+ const aUInt = a instanceof ArrayBuffer ? new Uint8Array(a, 0) : a;
65
+ const bUInt = b instanceof ArrayBuffer ? new Uint8Array(b, 0) : b;
66
+ if (aUInt.byteLength != bUInt.byteLength)
67
+ return false;
68
+ if (aligned32(aUInt) && aligned32(bUInt))
69
+ return compare32(aUInt, bUInt) === 0;
70
+ if (aligned16(aUInt) && aligned16(bUInt))
71
+ return compare16(aUInt, bUInt) === 0;
72
+ return compare8(aUInt, bUInt) === 0;
73
+ }
74
+ exports.equal = equal;
75
+ /**
76
+ * Compares two 8 bit aligned arrays
77
+ * @param a first array to compare
78
+ * @param b second array to compare
79
+ */
80
+ function compare8(a, b) {
81
+ const ua = new Uint8Array(a.buffer, a.byteOffset, a.byteLength);
82
+ const ub = new Uint8Array(b.buffer, b.byteOffset, b.byteLength);
83
+ return compare(ua, ub);
84
+ }
85
+ /**
86
+ * Compares two 16 bit aligned arrays
87
+ * @param a first array to compare
88
+ * @param b second array to compare
89
+ */
90
+ function compare16(a, b) {
91
+ const ua = new Uint16Array(a.buffer, a.byteOffset, a.byteLength / 2);
92
+ const ub = new Uint16Array(b.buffer, b.byteOffset, b.byteLength / 2);
93
+ return compare(ua, ub);
94
+ }
95
+ /**
96
+ * Compares two 32 bit aligned arrays
97
+ * @param a first array to compare
98
+ * @param b second array to compare
99
+ */
100
+ function compare32(a, b) {
101
+ const ua = new Uint32Array(a.buffer, a.byteOffset, a.byteLength / 4);
102
+ const ub = new Uint32Array(b.buffer, b.byteOffset, b.byteLength / 4);
103
+ return compare(ua, ub);
104
+ }
105
+ /**
106
+ * Compare two TypedArrays
107
+ * @param a first array to compare
108
+ * @param b second array to compare
109
+ */
110
+ function compare(a, b) {
111
+ if (a.byteLength !== b.byteLength) {
112
+ throw new Error('Cannot compare arrays of different length');
113
+ }
114
+ for (let i = 0; i < a.length - 1; i += 1) {
115
+ if (a[i] > b[i])
116
+ return 1;
117
+ if (a[i] < b[i])
118
+ return -1;
119
+ }
120
+ return 0;
121
+ }
122
+ exports.compare = compare;
123
+ /**
124
+ * Determine if TypedArray is 16 bit aligned
125
+ * @param array The array to check
126
+ */
127
+ function aligned16(array) {
128
+ return array.byteOffset % 2 === 0 && array.byteLength % 2 === 0;
129
+ }
130
+ /**
131
+ * Determine if TypedArray is 32 bit aligned
132
+ * @param array The array to check
133
+ */
134
+ function aligned32(array) {
135
+ return array.byteOffset % 4 === 0 && array.byteLength % 4 === 0;
136
+ }
137
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,52 +1,47 @@
1
1
  {
2
2
  "name": "ripple-binary-codec",
3
- "version": "0.2.7",
3
+ "version": "1.0.0-mpt-beta",
4
4
  "description": "XRP Ledger binary codec",
5
5
  "files": [
6
- "distrib/npm/*",
7
- "bin/*",
8
- "test/*"
6
+ "dist/*",
7
+ "src/*"
9
8
  ],
10
- "main": "distrib/npm/",
9
+ "main": "dist/",
11
10
  "directories": {
12
11
  "test": "test"
13
12
  },
14
13
  "dependencies": {
15
- "babel-runtime": "^6.26.0",
16
- "bn.js": "^5.1.1",
17
- "create-hash": "^1.2.0",
18
- "decimal.js": "^10.2.0",
19
- "inherits": "^2.0.4",
20
- "lodash": "^4.17.15",
21
- "ripple-address-codec": "^4.1.0"
22
- },
23
- "devDependencies": {
24
- "babel-cli": "^6.8.0",
25
- "babel-core": "^6.8.0",
26
- "babel-eslint": "^10.0.2",
27
- "babel-loader": "^6.2.4",
28
- "babel-preset-es2015": "^6.6.0",
29
- "babel-register": "^6.8.0",
30
- "eslint": "^7.0.0",
31
- "fs-extra": "^9.0.0",
32
- "intercept-stdout": "^0.1.2",
33
- "istanbul": "~0.4.3",
34
- "mocha": "~7.1.2"
14
+ "@xrplf/isomorphic": "^1.0.0",
15
+ "bignumber.js": "^9.0.0",
16
+ "ripple-address-codec": "^5.0.0"
35
17
  },
36
18
  "scripts": {
37
- "compile": "babel --optional runtime -d distrib/npm/ src/ && cp src/enums/definitions.json distrib/npm/enums",
38
- "prepublish": "npm test && npm run lint && npm run compile",
39
- "test": "istanbul test _mocha",
40
- "lint": "if ! [ -f eslintrc ]; then curl -o eslintrc 'https://raw.githubusercontent.com/ripple/javascript-style-guide/es6/eslintrc'; echo 'parser: babel-eslint' >> eslintrc; fi; eslint -c eslintrc src/**/*.js test/*.js"
19
+ "build": "tsc --build tsconfig.build.json && copyfiles ./src/enums/definitions.json ./dist/enums/",
20
+ "clean": "rm -rf ./dist ./coverage ./test/testCompiledForWeb tsconfig.build.tsbuildinfo",
21
+ "prepublishOnly": "npm test",
22
+ "test": "npm run build && jest --verbose false --silent=false ./test/*.test.ts",
23
+ "test:browser": "npm run build && karma start ./karma.config.js",
24
+ "lint": "eslint . --ext .ts --ext .test.js"
41
25
  },
26
+ "keywords": [
27
+ "ripple",
28
+ "xrp",
29
+ "xrp ledger",
30
+ "xrpl"
31
+ ],
42
32
  "repository": {
43
33
  "type": "git",
44
- "url": "git://github.com/ripple/ripple-binary-codec.git"
34
+ "url": "git@github.com:XRPLF/xrpl.js.git"
45
35
  },
46
36
  "bugs": {
47
- "url": "https://github.com/ripple/ripple-binary-codec/issues"
37
+ "url": "https://github.com/XRPLF/xrpl.js/issues"
48
38
  },
49
- "homepage": "https://github.com/ripple/ripple-binary-codec#readme",
39
+ "homepage": "https://github.com/XRPLF/xrpl.js/tree/main/packages/ripple-binary-codec#readme",
50
40
  "license": "ISC",
51
- "readmeFilename": "README.md"
41
+ "readmeFilename": "README.md",
42
+ "prettier": "@xrplf/prettier-config",
43
+ "engines": {
44
+ "node": ">= 16"
45
+ },
46
+ "gitHead": "a9d5a9bf98cc25ebd788f6c02a64f82c20b5b06a"
52
47
  }
package/src/README.md ADDED
@@ -0,0 +1,5 @@
1
+ # ripple-binary-codec
2
+
3
+ Serialize and deserialize transactions according to the XRP Ledger protocol.
4
+
5
+ If you'd like to add a new transaction, data type, or generally modify this library, please read the [CONTRIBUTING.md](CONTRIBUTING.md)