ripple-binary-codec 0.3.0-rc1 → 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 (365) 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 -44
  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/signing.js +0 -66
  304. package/distrib/npm/types/account-id.js +0 -41
  305. package/distrib/npm/types/amount.js +0 -215
  306. package/distrib/npm/types/blob.js +0 -28
  307. package/distrib/npm/types/currency.js +0 -91
  308. package/distrib/npm/types/hash-128.js +0 -10
  309. package/distrib/npm/types/hash-160.js +0 -10
  310. package/distrib/npm/types/hash-256.js +0 -15
  311. package/distrib/npm/types/hash.js +0 -45
  312. package/distrib/npm/types/index.js +0 -45
  313. package/distrib/npm/types/path-set.js +0 -112
  314. package/distrib/npm/types/serialized-type.js +0 -63
  315. package/distrib/npm/types/st-array.js +0 -37
  316. package/distrib/npm/types/st-object.js +0 -65
  317. package/distrib/npm/types/uint-16.js +0 -10
  318. package/distrib/npm/types/uint-32.js +0 -10
  319. package/distrib/npm/types/uint-64.js +0 -49
  320. package/distrib/npm/types/uint-8.js +0 -10
  321. package/distrib/npm/types/uint.js +0 -60
  322. package/distrib/npm/types/vector-256.js +0 -31
  323. package/distrib/npm/utils/bytes-utils.js +0 -112
  324. package/distrib/npm/utils/make-class.js +0 -83
  325. package/test/amount-test.js +0 -43
  326. package/test/binary-json-test.js +0 -43
  327. package/test/binary-parser-test.js +0 -341
  328. package/test/binary-serializer-test.js +0 -194
  329. package/test/bytes-utils-test.js +0 -72
  330. package/test/fixtures/account-tx-transactions.db +0 -0
  331. package/test/fixtures/codec-fixtures.json +0 -4466
  332. package/test/fixtures/data-driven-tests.json +0 -3721
  333. package/test/fixtures/delivermin-tx-binary.json +0 -1
  334. package/test/fixtures/delivermin-tx.json +0 -98
  335. package/test/fixtures/deposit-preauth-tx-binary.json +0 -1
  336. package/test/fixtures/deposit-preauth-tx-meta-binary.json +0 -1
  337. package/test/fixtures/deposit-preauth-tx.json +0 -58
  338. package/test/fixtures/escrow-cancel-binary.json +0 -1
  339. package/test/fixtures/escrow-cancel-tx.json +0 -6
  340. package/test/fixtures/escrow-create-binary.json +0 -1
  341. package/test/fixtures/escrow-create-tx.json +0 -10
  342. package/test/fixtures/escrow-finish-binary.json +0 -1
  343. package/test/fixtures/escrow-finish-meta-binary.json +0 -1
  344. package/test/fixtures/escrow-finish-tx.json +0 -95
  345. package/test/fixtures/ledger-full-38129.json +0 -1
  346. package/test/fixtures/ledger-full-40000.json +0 -1
  347. package/test/fixtures/payment-channel-claim-binary.json +0 -1
  348. package/test/fixtures/payment-channel-claim-tx.json +0 -8
  349. package/test/fixtures/payment-channel-create-binary.json +0 -1
  350. package/test/fixtures/payment-channel-create-tx.json +0 -11
  351. package/test/fixtures/payment-channel-fund-binary.json +0 -1
  352. package/test/fixtures/payment-channel-fund-tx.json +0 -7
  353. package/test/fixtures/signerlistset-tx-binary.json +0 -1
  354. package/test/fixtures/signerlistset-tx-meta-binary.json +0 -1
  355. package/test/fixtures/signerlistset-tx.json +0 -94
  356. package/test/hash-test.js +0 -58
  357. package/test/ledger-test.js +0 -26
  358. package/test/mocha.opts +0 -1
  359. package/test/quality-test.js +0 -16
  360. package/test/shamap-test.js +0 -88
  361. package/test/signing-data-encoding-test.js +0 -120
  362. package/test/tx-encode-decode-test.js +0 -124
  363. package/test/types-test.js +0 -38
  364. package/test/uint-test.js +0 -38
  365. package/test/utils.js +0 -93
@@ -1,194 +0,0 @@
1
- /* eslint-disable func-style */
2
-
3
- const BN = require('bn.js');
4
- const assert = require('assert');
5
- const lib = require('../src/coretypes');
6
- const encode = require('../src').encode;
7
- const {binary: {makeParser, BytesList, BinarySerializer}} = lib;
8
- const {UInt8, UInt16, UInt32, UInt64, STObject} = lib;
9
- const {loadFixture} = require('./utils');
10
- const fixtures = loadFixture('data-driven-tests.json');
11
- const deliverMinTx = require('./fixtures/delivermin-tx.json');
12
- const deliverMinTxBinary = require('./fixtures/delivermin-tx-binary.json');
13
- const SignerListSet = {
14
- tx: require('./fixtures/signerlistset-tx.json'),
15
- binary: require('./fixtures/signerlistset-tx-binary.json'),
16
- meta: require('./fixtures/signerlistset-tx-meta-binary.json')
17
- };
18
- const DepositPreauth = {
19
- tx: require('./fixtures/deposit-preauth-tx.json'),
20
- binary: require('./fixtures/deposit-preauth-tx-binary.json'),
21
- meta: require('./fixtures/deposit-preauth-tx-meta-binary.json')
22
- };
23
- const Escrow = {
24
- create: {
25
- tx: require('./fixtures/escrow-create-tx.json'),
26
- binary: require('./fixtures/escrow-create-binary.json')
27
- },
28
- finish: {
29
- tx: require('./fixtures/escrow-finish-tx.json'),
30
- binary: require('./fixtures/escrow-finish-binary.json'),
31
- meta: require('./fixtures/escrow-finish-meta-binary.json')
32
- },
33
- cancel: {
34
- tx: require('./fixtures/escrow-cancel-tx.json'),
35
- binary: require('./fixtures/escrow-cancel-binary.json')
36
- }
37
- }
38
- const PaymentChannel = {
39
- create: {
40
- tx: require('./fixtures/payment-channel-create-tx.json'),
41
- binary: require('./fixtures/payment-channel-create-binary.json')
42
- },
43
- fund: {
44
- tx: require('./fixtures/payment-channel-fund-tx.json'),
45
- binary: require('./fixtures/payment-channel-fund-binary.json')
46
- },
47
- claim: {
48
- tx: require('./fixtures/payment-channel-claim-tx.json'),
49
- binary: require('./fixtures/payment-channel-claim-binary.json')
50
- }
51
- }
52
-
53
- function bytesListTest() {
54
- const list = new BytesList().put([0]).put([2, 3]).put([4, 5]);
55
- it('is an Array<Uint8Array>', function() {
56
- assert(Array.isArray(list.arrays));
57
- assert(list.arrays[0] instanceof Uint8Array);
58
- });
59
- it('keeps track of the length itself', function() {
60
- assert.equal(list.length, 5);
61
- });
62
- it('can join all arrays into one via toBytes', function() {
63
- const joined = list.toBytes();
64
- assert(joined.length, 5);
65
- assert.deepEqual(joined, Uint8Array.from([0, 2, 3, 4, 5]));
66
- });
67
- }
68
-
69
- function assertRecycles(blob) {
70
- const parser = makeParser(blob);
71
- const so = parser.readType(STObject);
72
- const out = new BytesList();
73
- so.toBytesSink(out);
74
- const hex = out.toHex();
75
- assert.equal(hex, blob);
76
- assert.notEqual(hex + ':', blob);
77
- }
78
-
79
- function nestedObjectTests() {
80
- fixtures.whole_objects.forEach((f, i) => {
81
- it(`whole_objects[${i}]: can parse blob and dump out same blob`,
82
- /* */ () => {
83
- assertRecycles(f.blob_with_no_signing);
84
- });
85
- });
86
- }
87
-
88
- function UIntTest() {
89
- function check(type, n, expected) {
90
- it(`Uint${type.width * 8} serializes ${n} as ${expected}`, function() {
91
- const bl = new BytesList();
92
- const serializer = new BinarySerializer(bl);
93
- if (expected === 'throws') {
94
- assert.throws(() => serializer.writeType(type, n));
95
- return;
96
- }
97
- serializer.writeType(type, n);
98
- assert.deepEqual(bl.toBytes(), Uint8Array.from(expected));
99
- });
100
- }
101
-
102
- check(UInt8, 5, [5]);
103
- check(UInt16, 5, [0, 5]);
104
- check(UInt32, 5, [0, 0, 0, 5]);
105
- check(UInt32, 0xFFFFFFFF, [255, 255, 255, 255]);
106
- check(UInt8, 0xFEFFFFFF, 'throws');
107
- check(UInt16, 0xFEFFFFFF, 'throws');
108
- check(UInt16, 0xFEFFFFFF, 'throws');
109
- check(UInt64, 0xFEFFFFFF, [0, 0, 0, 0, 254, 255, 255, 255]);
110
- check(UInt64, -1, 'throws');
111
- check(UInt64, 0, [0, 0, 0, 0, 0, 0, 0, 0]);
112
- check(UInt64, 1, [0, 0, 0, 0, 0, 0, 0, 1]);
113
- check(UInt64, new BN(1), [0, 0, 0, 0, 0, 0, 0, 1]);
114
- }
115
-
116
-
117
- function parseLedger4320278() {
118
- it('can parse object', done => {
119
- this.timeout(30e3);
120
- const json = loadFixture('as-ledger-4320278.json');
121
- json.forEach(e => {
122
- assertRecycles(e.binary);
123
- });
124
- done();
125
- });
126
- }
127
-
128
- function deliverMinTest() {
129
- it('can serialize DeliverMin', () => {
130
- assert.strictEqual(encode(deliverMinTx), deliverMinTxBinary);
131
- });
132
- }
133
-
134
- function SignerListSetTest() {
135
- it('can serialize SignerListSet', () => {
136
- assert.strictEqual(encode(SignerListSet.tx), SignerListSet.binary);
137
- });
138
- it('can serialize SignerListSet metadata', () => {
139
- assert.strictEqual(encode(SignerListSet.tx.meta), SignerListSet.meta);
140
- });
141
- }
142
-
143
- function DepositPreauthTest() {
144
- it('can serialize DepositPreauth', () => {
145
- assert.strictEqual(encode(DepositPreauth.tx), DepositPreauth.binary);
146
- });
147
- it('can serialize DepositPreauth metadata', () => {
148
- assert.strictEqual(encode(DepositPreauth.tx.meta), DepositPreauth.meta);
149
- });
150
- }
151
-
152
- function EscrowTest() {
153
- it('can serialize EscrowCreate', () => {
154
- assert.strictEqual(encode(Escrow.create.tx),
155
- Escrow.create.binary);
156
- });
157
- it('can serialize EscrowFinish', () => {
158
- assert.strictEqual(encode(Escrow.finish.tx),
159
- Escrow.finish.binary);
160
- assert.strictEqual(encode(Escrow.finish.tx.meta),
161
- Escrow.finish.meta);
162
- });
163
- it('can serialize EscrowCancel', () => {
164
- assert.strictEqual(encode(Escrow.cancel.tx),
165
- Escrow.cancel.binary);
166
- });
167
- }
168
-
169
- function PaymentChannelTest() {
170
- it('can serialize PaymentChannelCreate', () => {
171
- assert.strictEqual(encode(PaymentChannel.create.tx),
172
- PaymentChannel.create.binary);
173
- });
174
- it('can serialize PaymentChannelFund', () => {
175
- assert.strictEqual(encode(PaymentChannel.fund.tx),
176
- PaymentChannel.fund.binary);
177
- });
178
- it('can serialize PaymentChannelClaim', () => {
179
- assert.strictEqual(encode(PaymentChannel.claim.tx),
180
- PaymentChannel.claim.binary);
181
- });
182
- }
183
-
184
- describe('Binary Serialization', function() {
185
- describe.skip('parseLedger4320278', parseLedger4320278);
186
- describe('nestedObjectTests', nestedObjectTests);
187
- describe('UIntTest', UIntTest);
188
- describe('BytesList', bytesListTest);
189
- describe('DeliverMin', deliverMinTest);
190
- describe('DepositPreauth', DepositPreauthTest);
191
- describe('SignerListSet', SignerListSetTest);
192
- describe('Escrow', EscrowTest);
193
- describe('PaymentChannel', PaymentChannelTest);
194
- });
@@ -1,72 +0,0 @@
1
- const assert = require('assert');
2
- const bytesUtils = require('../src/utils/bytes-utils');
3
- const {slice, compareBytes, parseBytes, bytesToHex} = bytesUtils;
4
-
5
- describe('bytes-utils', function() {
6
- describe('parseBytes', function() {
7
- it('can decode hex', function() {
8
- assert.deepEqual(parseBytes('0012'), [0x00, 0x12]);
9
- assert.deepEqual(parseBytes('0012'), [0x00, 0x12]);
10
- assert.deepEqual(parseBytes('00AA'), [0x00, 0xaa]);
11
- });
12
- it('can decode hex to a Uint8Array', function() {
13
- const result = parseBytes('0012', Uint8Array);
14
- assert(result instanceof Uint8Array);
15
- assert.deepEqual(result, Uint8Array.from([0x00, 0x12]));
16
- });
17
- it('can convert a list to a Uint8Array', function() {
18
- const result = parseBytes([0x00, 0x12], Uint8Array);
19
- assert(result instanceof Uint8Array);
20
- assert.deepEqual(result, Uint8Array.from([0x00, 0x12]));
21
- });
22
- it('can decode hex to a Buffer', function() {
23
- const result = parseBytes('0012', Buffer);
24
- assert(result instanceof Buffer);
25
- assert.deepEqual(result.toJSON().data, [0x00, 0x12]);
26
- });
27
- });
28
-
29
- describe('bytesToHex', function() {
30
- it('can encode an array as hex', function() {
31
- assert.deepEqual(bytesToHex([0x00, 0xaa]), '00AA');
32
- assert.deepEqual(bytesToHex([0xaa]), 'AA');
33
- });
34
- it('can encode Uint8Array as hex', function() {
35
- assert.deepEqual(bytesToHex(new Uint8Array([0x00, 0xaa])), '00AA');
36
- assert.deepEqual(bytesToHex(new Uint8Array([0xaa])), 'AA');
37
- });
38
- });
39
-
40
- describe('compareBytes', function() {
41
- it('compares the bytes sequence as big endian number', function() {
42
- assert.equal(compareBytes([0, 1, 2], [1, 2, 3]), -1);
43
- });
44
- it('throws when the bytes sequences are of unlike length', function() {
45
- assert.throws(() => compareBytes([0, 1], [1]));
46
- });
47
- });
48
-
49
- describe('slice', function() {
50
- const val = [1, 2, 3, 4, 5];
51
- it('creates a slice of the same type as first arg', function() {
52
- assert(Array.isArray(slice(val)));
53
- });
54
- it('the 2nd arg is the start position [2:]', function() {
55
- assert.deepEqual(val.slice(2), [3, 4, 5]);
56
- assert.deepEqual(slice(val, 2), [3, 4, 5]);
57
- });
58
- it('the 3rd arg is the end position [2:4]', function() {
59
- assert.deepEqual(slice(val, 2, 4), [3, 4]);
60
- });
61
- it('can slice using negative numbers [-3:]', function() {
62
- assert.deepEqual(slice(val, -3), [3, 4, 5]);
63
- });
64
- it('can slice using negative numbers [-3:-1]', function() {
65
- assert.deepEqual(slice(val, -3, -1), [3, 4]);
66
- });
67
- it('the 4th arg is the output class type', function() {
68
- assert.deepEqual(slice(val, 2, 4, Buffer).toJSON().data, [3, 4]);
69
- assert.deepEqual(slice(val, 2, 4, Uint8Array), Uint8Array.from([3, 4]));
70
- });
71
- });
72
- });