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,29 +1,16 @@
1
1
  "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- extendStatics(d, b);
11
- function __() { this.constructor = d; }
12
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
13
- };
14
- })();
15
2
  Object.defineProperty(exports, "__esModule", { value: true });
16
3
  exports.AccountID = void 0;
17
- var ripple_address_codec_1 = require("ripple-address-codec");
18
- var hash_160_1 = require("./hash-160");
19
- var HEX_REGEX = /^[A-F0-9]{40}$/;
4
+ const ripple_address_codec_1 = require("ripple-address-codec");
5
+ const hash_160_1 = require("./hash-160");
6
+ const utils_1 = require("@xrplf/isomorphic/utils");
7
+ const HEX_REGEX = /^[A-F0-9]{40}$/;
20
8
  /**
21
9
  * Class defining how to encode and decode an AccountID
22
10
  */
23
- var AccountID = /** @class */ (function (_super) {
24
- __extends(AccountID, _super);
25
- function AccountID(bytes) {
26
- return _super.call(this, bytes !== null && bytes !== void 0 ? bytes : AccountID.defaultAccountID.bytes) || this;
11
+ class AccountID extends hash_160_1.Hash160 {
12
+ constructor(bytes) {
13
+ super(bytes !== null && bytes !== void 0 ? bytes : AccountID.defaultAccountID.bytes);
27
14
  }
28
15
  /**
29
16
  * Defines how to construct an AccountID
@@ -31,47 +18,52 @@ var AccountID = /** @class */ (function (_super) {
31
18
  * @param value either an existing AccountID, a hex-string, or a base58 r-Address
32
19
  * @returns an AccountID object
33
20
  */
34
- AccountID.from = function (value) {
21
+ static from(value) {
35
22
  if (value instanceof AccountID) {
36
23
  return value;
37
24
  }
38
- if (typeof value === "string") {
39
- if (value === "") {
25
+ if (typeof value === 'string') {
26
+ if (value === '') {
40
27
  return new AccountID();
41
28
  }
42
29
  return HEX_REGEX.test(value)
43
- ? new AccountID(Buffer.from(value, "hex"))
30
+ ? new AccountID((0, utils_1.hexToBytes)(value))
44
31
  : this.fromBase58(value);
45
32
  }
46
- throw new Error("Cannot construct AccountID from value given");
47
- };
33
+ throw new Error('Cannot construct AccountID from value given');
34
+ }
48
35
  /**
49
36
  * Defines how to build an AccountID from a base58 r-Address
50
37
  *
51
38
  * @param value a base58 r-Address
52
39
  * @returns an AccountID object
53
40
  */
54
- AccountID.fromBase58 = function (value) {
55
- return new AccountID(ripple_address_codec_1.decodeAccountID(value));
56
- };
41
+ static fromBase58(value) {
42
+ if ((0, ripple_address_codec_1.isValidXAddress)(value)) {
43
+ const classic = (0, ripple_address_codec_1.xAddressToClassicAddress)(value);
44
+ if (classic.tag !== false)
45
+ throw new Error('Only allowed to have tag on Account or Destination');
46
+ value = classic.classicAddress;
47
+ }
48
+ return new AccountID(Uint8Array.from((0, ripple_address_codec_1.decodeAccountID)(value)));
49
+ }
57
50
  /**
58
51
  * Overload of toJSON
59
52
  *
60
53
  * @returns the base58 string for this AccountID
61
54
  */
62
- AccountID.prototype.toJSON = function () {
55
+ toJSON() {
63
56
  return this.toBase58();
64
- };
57
+ }
65
58
  /**
66
59
  * Defines how to encode AccountID into a base58 address
67
60
  *
68
61
  * @returns the base58 string defined by this.bytes
69
62
  */
70
- AccountID.prototype.toBase58 = function () {
71
- return ripple_address_codec_1.encodeAccountID(this.bytes);
72
- };
73
- AccountID.defaultAccountID = new AccountID(Buffer.alloc(20));
74
- return AccountID;
75
- }(hash_160_1.Hash160));
63
+ toBase58() {
64
+ return (0, ripple_address_codec_1.encodeAccountID)(this.bytes);
65
+ }
66
+ }
76
67
  exports.AccountID = AccountID;
68
+ AccountID.defaultAccountID = new AccountID(new Uint8Array(20));
77
69
  //# sourceMappingURL=account-id.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"account-id.js","sourceRoot":"","sources":["../../src/types/account-id.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAAwE;AACxE,uCAAqC;AAErC,IAAM,SAAS,GAAG,gBAAgB,CAAC;AAEnC;;GAEG;AACH;IAAwB,6BAAO;IAG7B,mBAAY,KAAc;eACxB,kBAAM,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,SAAS,CAAC,gBAAgB,CAAC,KAAK,CAAC;IAClD,CAAC;IAED;;;;;OAKG;IACI,cAAI,GAAX,UAAwC,KAAQ;QAC9C,IAAI,KAAK,YAAY,SAAS,EAAE;YAC9B,OAAO,KAAK,CAAC;SACd;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,IAAI,KAAK,KAAK,EAAE,EAAE;gBAChB,OAAO,IAAI,SAAS,EAAE,CAAC;aACxB;YAED,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;gBAC1B,CAAC,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBAC1C,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;SAC5B;QAED,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IAED;;;;;OAKG;IACI,oBAAU,GAAjB,UAAkB,KAAa;QAC7B,OAAO,IAAI,SAAS,CAAC,sCAAe,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED;;;;OAIG;IACH,0BAAM,GAAN;QACE,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACH,4BAAQ,GAAR;QACE,OAAO,sCAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAxDe,0BAAgB,GAAc,IAAI,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAyDhF,gBAAC;CAAA,AA1DD,CAAwB,kBAAO,GA0D9B;AAEQ,8BAAS"}
1
+ {"version":3,"file":"account-id.js","sourceRoot":"","sources":["../../src/types/account-id.ts"],"names":[],"mappings":";;;AAAA,+DAK6B;AAC7B,yCAAoC;AACpC,mDAAoD;AAEpD,MAAM,SAAS,GAAG,gBAAgB,CAAA;AAElC;;GAEG;AACH,MAAM,SAAU,SAAQ,kBAAO;IAK7B,YAAY,KAAkB;QAC5B,KAAK,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,SAAS,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAA;IAClD,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,IAAI,CAA6B,KAAQ;QAC9C,IAAI,KAAK,YAAY,SAAS,EAAE;YAC9B,OAAO,KAAK,CAAA;SACb;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,IAAI,KAAK,KAAK,EAAE,EAAE;gBAChB,OAAO,IAAI,SAAS,EAAE,CAAA;aACvB;YAED,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;gBAC1B,CAAC,CAAC,IAAI,SAAS,CAAC,IAAA,kBAAU,EAAC,KAAK,CAAC,CAAC;gBAClC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;SAC3B;QAED,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;IAChE,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,UAAU,CAAC,KAAa;QAC7B,IAAI,IAAA,sCAAe,EAAC,KAAK,CAAC,EAAE;YAC1B,MAAM,OAAO,GAAG,IAAA,+CAAwB,EAAC,KAAK,CAAC,CAAA;YAE/C,IAAI,OAAO,CAAC,GAAG,KAAK,KAAK;gBACvB,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAA;YAEvE,KAAK,GAAG,OAAO,CAAC,cAAc,CAAA;SAC/B;QAED,OAAO,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,IAAA,sCAAe,EAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC/D,CAAC;IAED;;;;OAIG;IACH,MAAM;QACJ,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAA;IACxB,CAAC;IAED;;;;OAIG;IACH,QAAQ;QACN,OAAO,IAAA,sCAAe,EAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACpC,CAAC;;AAGM,8BAAS;AAtEA,0BAAgB,GAAc,IAAI,SAAS,CACzD,IAAI,UAAU,CAAC,EAAE,CAAC,CACnB,CAAA"}
@@ -1,22 +1,26 @@
1
- /// <reference types="node" />
2
- import { BinaryParser } from "../serdes/binary-parser";
3
- import { JsonObject, SerializedType } from "./serialized-type";
4
- /**
5
- * Interface for JSON objects that represent amounts
6
- */
7
- interface AmountObject extends JsonObject {
1
+ import { BinaryParser } from '../serdes/binary-parser';
2
+ import { JsonObject, SerializedType } from './serialized-type';
3
+ interface AmountObjectIOU extends JsonObject {
8
4
  value: string;
9
5
  currency: string;
10
6
  issuer: string;
11
7
  }
8
+ interface AmountObjectMPT extends JsonObject {
9
+ value: string;
10
+ mpt_issuance_id: string;
11
+ }
12
+ /**
13
+ * Interface for JSON objects that represent amounts
14
+ */
15
+ type AmountObject = AmountObjectIOU | AmountObjectMPT;
12
16
  /**
13
17
  * Class for serializing/Deserializing Amounts
14
18
  */
15
19
  declare class Amount extends SerializedType {
16
20
  static defaultAmount: Amount;
17
- constructor(bytes: Buffer);
21
+ constructor(bytes: Uint8Array);
18
22
  /**
19
- * Construct an amount from an IOU or string amount
23
+ * Construct an amount from an IOU, MPT or string amount
20
24
  *
21
25
  * @param value An Amount, object representing an IOU, or a string
22
26
  * representing an integer amount
@@ -46,10 +50,17 @@ declare class Amount extends SerializedType {
46
50
  /**
47
51
  * Validate IOU.value amount
48
52
  *
49
- * @param decimal Decimal.js object representing IOU.value
53
+ * @param decimal BigNumber object representing IOU.value
50
54
  * @returns void, but will throw if invalid amount
51
55
  */
52
56
  private static assertIouIsValid;
57
+ /**
58
+ * Validate MPT.value amount
59
+ *
60
+ * @param decimal BigNumber object representing MPT.value
61
+ * @returns void, but will throw if invalid amount
62
+ */
63
+ private static assertMptIsValid;
53
64
  /**
54
65
  * Ensure that the value after being multiplied by the exponent does not
55
66
  * contain a decimal.
@@ -64,5 +75,17 @@ declare class Amount extends SerializedType {
64
75
  * @returns true if Native (XRP)
65
76
  */
66
77
  private isNative;
78
+ /**
79
+ * Test if this amount is in units of MPT
80
+ *
81
+ * @returns true if MPT
82
+ */
83
+ private isMPT;
84
+ /**
85
+ * Test if this amount is in units of IOU
86
+ *
87
+ * @returns true if IOU
88
+ */
89
+ private isIOU;
67
90
  }
68
91
  export { Amount, AmountObject };
@@ -1,140 +1,169 @@
1
1
  "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- extendStatics(d, b);
11
- function __() { this.constructor = d; }
12
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
13
- };
14
- })();
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
15
5
  Object.defineProperty(exports, "__esModule", { value: true });
16
6
  exports.Amount = void 0;
17
- var decimal_js_1 = require("decimal.js");
18
- var binary_parser_1 = require("../serdes/binary-parser");
19
- var account_id_1 = require("./account-id");
20
- var currency_1 = require("./currency");
21
- var serialized_type_1 = require("./serialized-type");
7
+ const binary_parser_1 = require("../serdes/binary-parser");
8
+ const account_id_1 = require("./account-id");
9
+ const currency_1 = require("./currency");
10
+ const serialized_type_1 = require("./serialized-type");
11
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
12
+ const utils_1 = require("@xrplf/isomorphic/utils");
13
+ const utils_2 = require("../utils");
14
+ const hash_192_1 = require("./hash-192");
22
15
  /**
23
16
  * Constants for validating amounts
24
17
  */
25
- var MIN_IOU_EXPONENT = -96;
26
- var MAX_IOU_EXPONENT = 80;
27
- var MAX_IOU_PRECISION = 16;
28
- var MAX_DROPS = new decimal_js_1.Decimal("1e17");
29
- var MIN_XRP = new decimal_js_1.Decimal("1e-6");
18
+ const MIN_IOU_EXPONENT = -96;
19
+ const MAX_IOU_EXPONENT = 80;
20
+ const MAX_IOU_PRECISION = 16;
21
+ const MAX_DROPS = new bignumber_js_1.default('1e17');
22
+ const MIN_XRP = new bignumber_js_1.default('1e-6');
23
+ const mask = BigInt(0x00000000ffffffff);
24
+ const mptMask = BigInt(0x8000000000000000);
30
25
  /**
31
- * decimal.js configuration for Amount IOUs
26
+ * BigNumber configuration for Amount IOUs
32
27
  */
33
- decimal_js_1.Decimal.config({
34
- toExpPos: MAX_IOU_EXPONENT + MAX_IOU_PRECISION,
35
- toExpNeg: MIN_IOU_EXPONENT - MAX_IOU_PRECISION,
28
+ bignumber_js_1.default.config({
29
+ EXPONENTIAL_AT: [
30
+ MIN_IOU_EXPONENT - MAX_IOU_PRECISION,
31
+ MAX_IOU_EXPONENT + MAX_IOU_PRECISION,
32
+ ],
36
33
  });
37
34
  /**
38
- * Type guard for AmountObject
35
+ * Type guard for AmountObjectIOU
39
36
  */
40
- function isAmountObject(arg) {
41
- var keys = Object.keys(arg).sort();
37
+ function isAmountObjectIOU(arg) {
38
+ const keys = Object.keys(arg).sort();
42
39
  return (keys.length === 3 &&
43
- keys[0] === "currency" &&
44
- keys[1] === "issuer" &&
45
- keys[2] === "value");
40
+ keys[0] === 'currency' &&
41
+ keys[1] === 'issuer' &&
42
+ keys[2] === 'value');
43
+ }
44
+ /**
45
+ * Type guard for AmountObjectMPT
46
+ */
47
+ function isAmountObjectMPT(arg) {
48
+ const keys = Object.keys(arg).sort();
49
+ return (keys.length === 2 && keys[0] === 'mpt_issuance_id' && keys[1] === 'value');
46
50
  }
47
51
  /**
48
52
  * Class for serializing/Deserializing Amounts
49
53
  */
50
- var Amount = /** @class */ (function (_super) {
51
- __extends(Amount, _super);
52
- function Amount(bytes) {
53
- return _super.call(this, bytes !== null && bytes !== void 0 ? bytes : Amount.defaultAmount.bytes) || this;
54
+ class Amount extends serialized_type_1.SerializedType {
55
+ constructor(bytes) {
56
+ super(bytes !== null && bytes !== void 0 ? bytes : Amount.defaultAmount.bytes);
54
57
  }
55
58
  /**
56
- * Construct an amount from an IOU or string amount
59
+ * Construct an amount from an IOU, MPT or string amount
57
60
  *
58
61
  * @param value An Amount, object representing an IOU, or a string
59
62
  * representing an integer amount
60
63
  * @returns An Amount object
61
64
  */
62
- Amount.from = function (value) {
65
+ static from(value) {
63
66
  if (value instanceof Amount) {
64
67
  return value;
65
68
  }
66
- var amount = Buffer.alloc(8);
67
- if (typeof value === "string") {
69
+ let amount = new Uint8Array(8);
70
+ if (typeof value === 'string') {
68
71
  Amount.assertXrpIsValid(value);
69
- var number = BigInt(value);
70
- amount.writeBigUInt64BE(number);
72
+ const number = BigInt(value);
73
+ const intBuf = [new Uint8Array(4), new Uint8Array(4)];
74
+ (0, utils_2.writeUInt32BE)(intBuf[0], Number(number >> BigInt(32)), 0);
75
+ (0, utils_2.writeUInt32BE)(intBuf[1], Number(number & BigInt(mask)), 0);
76
+ amount = (0, utils_1.concat)(intBuf);
71
77
  amount[0] |= 0x40;
72
78
  return new Amount(amount);
73
79
  }
74
- if (isAmountObject(value)) {
75
- var number = new decimal_js_1.Decimal(value.value);
80
+ if (isAmountObjectIOU(value)) {
81
+ const number = new bignumber_js_1.default(value.value);
76
82
  Amount.assertIouIsValid(number);
77
83
  if (number.isZero()) {
78
84
  amount[0] |= 0x80;
79
85
  }
80
86
  else {
81
- var integerNumberString = number
82
- .times("1e" + -(number.e - 15))
87
+ const integerNumberString = number
88
+ .times(`1e${-((number.e || 0) - 15)}`)
83
89
  .abs()
84
90
  .toString();
85
- amount.writeBigUInt64BE(BigInt(integerNumberString));
91
+ const num = BigInt(integerNumberString);
92
+ const intBuf = [new Uint8Array(4), new Uint8Array(4)];
93
+ (0, utils_2.writeUInt32BE)(intBuf[0], Number(num >> BigInt(32)), 0);
94
+ (0, utils_2.writeUInt32BE)(intBuf[1], Number(num & BigInt(mask)), 0);
95
+ amount = (0, utils_1.concat)(intBuf);
86
96
  amount[0] |= 0x80;
87
- if (number.gt(new decimal_js_1.Decimal(0))) {
97
+ if (number.gt(new bignumber_js_1.default(0))) {
88
98
  amount[0] |= 0x40;
89
99
  }
90
- var exponent = number.e - 15;
91
- var exponentByte = 97 + exponent;
100
+ const exponent = (number.e || 0) - 15;
101
+ const exponentByte = 97 + exponent;
92
102
  amount[0] |= exponentByte >>> 2;
93
103
  amount[1] |= (exponentByte & 0x03) << 6;
94
104
  }
95
- var currency = currency_1.Currency.from(value.currency).toBytes();
96
- var issuer = account_id_1.AccountID.from(value.issuer).toBytes();
97
- return new Amount(Buffer.concat([amount, currency, issuer]));
105
+ const currency = currency_1.Currency.from(value.currency).toBytes();
106
+ const issuer = account_id_1.AccountID.from(value.issuer).toBytes();
107
+ return new Amount((0, utils_1.concat)([amount, currency, issuer]));
98
108
  }
99
- throw new Error("Invalid type to construct an Amount");
100
- };
109
+ if (isAmountObjectMPT(value)) {
110
+ Amount.assertMptIsValid(value.value);
111
+ let leadingByte = new Uint8Array(1);
112
+ leadingByte[0] |= 0x60;
113
+ const num = BigInt(value.value);
114
+ const intBuf = [new Uint8Array(4), new Uint8Array(4)];
115
+ (0, utils_2.writeUInt32BE)(intBuf[0], Number(num >> BigInt(32)), 0);
116
+ (0, utils_2.writeUInt32BE)(intBuf[1], Number(num & BigInt(mask)), 0);
117
+ amount = (0, utils_1.concat)(intBuf);
118
+ const mptIssuanceID = hash_192_1.Hash192.from(value.mpt_issuance_id).toBytes();
119
+ return new Amount((0, utils_1.concat)([leadingByte, amount, mptIssuanceID]));
120
+ }
121
+ throw new Error('Invalid type to construct an Amount');
122
+ }
101
123
  /**
102
124
  * Read an amount from a BinaryParser
103
125
  *
104
126
  * @param parser BinaryParser to read the Amount from
105
127
  * @returns An Amount object
106
128
  */
107
- Amount.fromParser = function (parser) {
108
- var isXRP = parser.peek() & 0x80;
109
- var numBytes = isXRP ? 48 : 8;
129
+ static fromParser(parser) {
130
+ const isIOU = parser.peek() & 0x80;
131
+ if (isIOU)
132
+ return new Amount(parser.read(48));
133
+ // the amount can be either MPT or XRP at this point
134
+ const isMPT = parser.peek() & 0x20;
135
+ const numBytes = isMPT ? 33 : 8;
110
136
  return new Amount(parser.read(numBytes));
111
- };
137
+ }
112
138
  /**
113
139
  * Get the JSON representation of this Amount
114
140
  *
115
141
  * @returns the JSON interpretation of this.bytes
116
142
  */
117
- Amount.prototype.toJSON = function () {
143
+ toJSON() {
118
144
  if (this.isNative()) {
119
- var bytes = this.bytes;
120
- var isPositive = bytes[0] & 0x40;
121
- var sign = isPositive ? "" : "-";
145
+ const bytes = this.bytes;
146
+ const isPositive = bytes[0] & 0x40;
147
+ const sign = isPositive ? '' : '-';
122
148
  bytes[0] &= 0x3f;
123
- return "" + sign + bytes.readBigUInt64BE().toString();
149
+ const msb = BigInt((0, utils_2.readUInt32BE)(bytes.slice(0, 4), 0));
150
+ const lsb = BigInt((0, utils_2.readUInt32BE)(bytes.slice(4), 0));
151
+ const num = (msb << BigInt(32)) | lsb;
152
+ return `${sign}${num.toString()}`;
124
153
  }
125
- else {
126
- var parser = new binary_parser_1.BinaryParser(this.toString());
127
- var mantissa = parser.read(8);
128
- var currency = currency_1.Currency.fromParser(parser);
129
- var issuer = account_id_1.AccountID.fromParser(parser);
130
- var b1 = mantissa[0];
131
- var b2 = mantissa[1];
132
- var isPositive = b1 & 0x40;
133
- var sign = isPositive ? "" : "-";
134
- var exponent = ((b1 & 0x3f) << 2) + ((b2 & 0xff) >> 6) - 97;
154
+ if (this.isIOU()) {
155
+ const parser = new binary_parser_1.BinaryParser(this.toString());
156
+ const mantissa = parser.read(8);
157
+ const currency = currency_1.Currency.fromParser(parser);
158
+ const issuer = account_id_1.AccountID.fromParser(parser);
159
+ const b1 = mantissa[0];
160
+ const b2 = mantissa[1];
161
+ const isPositive = b1 & 0x40;
162
+ const sign = isPositive ? '' : '-';
163
+ const exponent = ((b1 & 0x3f) << 2) + ((b2 & 0xff) >> 6) - 97;
135
164
  mantissa[0] = 0;
136
165
  mantissa[1] &= 0x3f;
137
- var value = new decimal_js_1.Decimal(sign + "0x" + mantissa.toString("hex")).times("1e" + exponent);
166
+ const value = new bignumber_js_1.default(`${sign}0x${(0, utils_1.bytesToHex)(mantissa)}`).times(`1e${exponent}`);
138
167
  Amount.assertIouIsValid(value);
139
168
  return {
140
169
  value: value.toString(),
@@ -142,42 +171,78 @@ var Amount = /** @class */ (function (_super) {
142
171
  issuer: issuer.toJSON(),
143
172
  };
144
173
  }
145
- };
174
+ if (this.isMPT()) {
175
+ const parser = new binary_parser_1.BinaryParser(this.toString());
176
+ const leadingByte = parser.read(1);
177
+ const amount = parser.read(8);
178
+ const mptID = hash_192_1.Hash192.fromParser(parser);
179
+ const isPositive = leadingByte[0] & 0x40;
180
+ const sign = isPositive ? '' : '-';
181
+ const msb = BigInt((0, utils_2.readUInt32BE)(amount.slice(0, 4), 0));
182
+ const lsb = BigInt((0, utils_2.readUInt32BE)(amount.slice(4), 0));
183
+ const num = (msb << BigInt(32)) | lsb;
184
+ return {
185
+ value: `${sign}${num.toString()}`,
186
+ mpt_issuance_id: mptID.toString(),
187
+ };
188
+ }
189
+ throw new Error('Invalid amount to construct JSON');
190
+ }
146
191
  /**
147
192
  * Validate XRP amount
148
193
  *
149
194
  * @param amount String representing XRP amount
150
195
  * @returns void, but will throw if invalid amount
151
196
  */
152
- Amount.assertXrpIsValid = function (amount) {
153
- if (amount.indexOf(".") !== -1) {
154
- throw new Error(amount.toString() + " is an illegal amount");
197
+ static assertXrpIsValid(amount) {
198
+ if (amount.indexOf('.') !== -1) {
199
+ throw new Error(`${amount.toString()} is an illegal amount`);
155
200
  }
156
- var decimal = new decimal_js_1.Decimal(amount);
201
+ const decimal = new bignumber_js_1.default(amount);
157
202
  if (!decimal.isZero()) {
158
203
  if (decimal.lt(MIN_XRP) || decimal.gt(MAX_DROPS)) {
159
- throw new Error(amount.toString() + " is an illegal amount");
204
+ throw new Error(`${amount.toString()} is an illegal amount`);
160
205
  }
161
206
  }
162
- };
207
+ }
163
208
  /**
164
209
  * Validate IOU.value amount
165
210
  *
166
- * @param decimal Decimal.js object representing IOU.value
211
+ * @param decimal BigNumber object representing IOU.value
167
212
  * @returns void, but will throw if invalid amount
168
213
  */
169
- Amount.assertIouIsValid = function (decimal) {
214
+ static assertIouIsValid(decimal) {
170
215
  if (!decimal.isZero()) {
171
- var p = decimal.precision();
172
- var e = decimal.e - 15;
216
+ const p = decimal.precision();
217
+ const e = (decimal.e || 0) - 15;
173
218
  if (p > MAX_IOU_PRECISION ||
174
219
  e > MAX_IOU_EXPONENT ||
175
220
  e < MIN_IOU_EXPONENT) {
176
- throw new Error("Decimal precision out of range");
221
+ throw new Error('Decimal precision out of range');
177
222
  }
178
223
  this.verifyNoDecimal(decimal);
179
224
  }
180
- };
225
+ }
226
+ /**
227
+ * Validate MPT.value amount
228
+ *
229
+ * @param decimal BigNumber object representing MPT.value
230
+ * @returns void, but will throw if invalid amount
231
+ */
232
+ static assertMptIsValid(amount) {
233
+ if (amount.indexOf('.') !== -1) {
234
+ throw new Error(`${amount.toString()} is an illegal amount`);
235
+ }
236
+ const decimal = new bignumber_js_1.default(amount);
237
+ if (!decimal.isZero()) {
238
+ if (decimal < (0, bignumber_js_1.default)(0)) {
239
+ throw new Error(`${amount.toString()} is an illegal amount`);
240
+ }
241
+ if (Number(BigInt(amount) & BigInt(mptMask)) != 0) {
242
+ throw new Error(`${amount.toString()} is an illegal amount`);
243
+ }
244
+ }
245
+ }
181
246
  /**
182
247
  * Ensure that the value after being multiplied by the exponent does not
183
248
  * contain a decimal.
@@ -185,25 +250,40 @@ var Amount = /** @class */ (function (_super) {
185
250
  * @param decimal a Decimal object
186
251
  * @returns a string of the object without a decimal
187
252
  */
188
- Amount.verifyNoDecimal = function (decimal) {
189
- var integerNumberString = decimal
190
- .times("1e" + -(decimal.e - 15))
253
+ static verifyNoDecimal(decimal) {
254
+ const integerNumberString = decimal
255
+ .times(`1e${-((decimal.e || 0) - 15)}`)
191
256
  .abs()
192
257
  .toString();
193
- if (integerNumberString.indexOf(".") !== -1) {
194
- throw new Error("Decimal place found in integerNumberString");
258
+ if (integerNumberString.indexOf('.') !== -1) {
259
+ throw new Error('Decimal place found in integerNumberString');
195
260
  }
196
- };
261
+ }
197
262
  /**
198
263
  * Test if this amount is in units of Native Currency(XRP)
199
264
  *
200
265
  * @returns true if Native (XRP)
201
266
  */
202
- Amount.prototype.isNative = function () {
203
- return (this.bytes[0] & 0x80) === 0;
204
- };
205
- Amount.defaultAmount = new Amount(Buffer.from("4000000000000000", "hex"));
206
- return Amount;
207
- }(serialized_type_1.SerializedType));
267
+ isNative() {
268
+ return (this.bytes[0] & 0x80) === 0 && (this.bytes[0] & 0x20) === 0;
269
+ }
270
+ /**
271
+ * Test if this amount is in units of MPT
272
+ *
273
+ * @returns true if MPT
274
+ */
275
+ isMPT() {
276
+ return (this.bytes[0] & 0x80) === 0 && (this.bytes[0] & 0x20) !== 0;
277
+ }
278
+ /**
279
+ * Test if this amount is in units of IOU
280
+ *
281
+ * @returns true if IOU
282
+ */
283
+ isIOU() {
284
+ return (this.bytes[0] & 0x80) !== 0;
285
+ }
286
+ }
208
287
  exports.Amount = Amount;
288
+ Amount.defaultAmount = new Amount((0, utils_1.hexToBytes)('4000000000000000'));
209
289
  //# sourceMappingURL=amount.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"amount.js","sourceRoot":"","sources":["../../src/types/amount.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"amount.js","sourceRoot":"","sources":["../../src/types/amount.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,10 @@
1
- /// <reference types="node" />
2
- import { SerializedType } from "./serialized-type";
3
- import { BinaryParser } from "../serdes/binary-parser";
1
+ import { SerializedType } from './serialized-type';
2
+ import { BinaryParser } from '../serdes/binary-parser';
4
3
  /**
5
4
  * Variable length encoded type
6
5
  */
7
6
  declare class Blob extends SerializedType {
8
- constructor(bytes: Buffer);
7
+ constructor(bytes: Uint8Array);
9
8
  /**
10
9
  * Defines how to read a Blob from a BinaryParser
11
10
  *