ripple-binary-codec 1.0.4-beta.0 → 1.0.4-mpt-beta
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/binary.d.ts +34 -20
- package/dist/binary.js +51 -36
- package/dist/binary.js.map +1 -1
- package/dist/coretypes.d.ts +9 -9
- package/dist/coretypes.js +33 -9
- package/dist/coretypes.js.map +1 -1
- package/dist/enums/bytes.d.ts +25 -0
- package/dist/enums/bytes.js +63 -0
- package/dist/enums/bytes.js.map +1 -0
- package/dist/enums/constants.d.ts +4 -0
- package/dist/enums/constants.js +8 -0
- package/dist/enums/constants.js.map +1 -0
- package/dist/enums/definitions.json +3066 -1780
- package/dist/enums/field.d.ts +28 -0
- package/dist/enums/field.js +58 -0
- package/dist/enums/field.js.map +1 -0
- package/dist/enums/index.d.ts +12 -46
- package/dist/enums/index.js +22 -110
- package/dist/enums/index.js.map +1 -1
- package/dist/enums/src/enums/definitions.json +3073 -0
- package/dist/enums/utils-renumber.js +20 -20
- package/dist/enums/utils-renumber.js.map +1 -1
- package/dist/enums/xrpl-definitions-base.d.ts +44 -0
- package/dist/enums/xrpl-definitions-base.js +59 -0
- package/dist/enums/xrpl-definitions-base.js.map +1 -0
- package/dist/enums/xrpl-definitions.d.ts +21 -0
- package/dist/enums/xrpl-definitions.js +29 -0
- package/dist/enums/xrpl-definitions.js.map +1 -0
- package/dist/hash-prefixes.d.ts +1 -2
- package/dist/hash-prefixes.js +7 -6
- package/dist/hash-prefixes.js.map +1 -1
- package/dist/hashes.d.ts +7 -8
- package/dist/hashes.js +23 -44
- package/dist/hashes.js.map +1 -1
- package/dist/index.d.ts +16 -17
- package/dist/index.js +65 -40
- package/dist/index.js.map +1 -1
- package/dist/ledger-hashes.d.ts +7 -5
- package/dist/ledger-hashes.js +40 -34
- package/dist/ledger-hashes.js.map +1 -1
- package/dist/quality.d.ts +3 -4
- package/dist/quality.js +20 -20
- package/dist/quality.js.map +1 -1
- package/dist/serdes/binary-parser.d.ts +8 -6
- package/dist/serdes/binary-parser.js +74 -64
- package/dist/serdes/binary-parser.js.map +1 -1
- package/dist/serdes/binary-serializer.d.ts +10 -11
- package/dist/serdes/binary-serializer.js +50 -48
- package/dist/serdes/binary-serializer.js.map +1 -1
- package/dist/shamap.d.ts +6 -7
- package/dist/shamap.js +74 -97
- package/dist/shamap.js.map +1 -1
- package/dist/src/binary.d.ts +90 -0
- package/dist/src/binary.js +128 -0
- package/dist/src/binary.js.map +1 -0
- package/dist/src/coretypes.d.ts +9 -0
- package/dist/src/coretypes.js +48 -0
- package/dist/src/coretypes.js.map +1 -0
- package/dist/src/enums/bytes.d.ts +25 -0
- package/dist/src/enums/bytes.js +63 -0
- package/dist/src/enums/bytes.js.map +1 -0
- package/dist/src/enums/constants.d.ts +4 -0
- package/dist/src/enums/constants.js +8 -0
- package/dist/src/enums/constants.js.map +1 -0
- package/dist/src/enums/definitions.json +3068 -0
- package/dist/src/enums/field.d.ts +28 -0
- package/dist/src/enums/field.js +58 -0
- package/dist/src/enums/field.js.map +1 -0
- package/dist/src/enums/index.d.ts +12 -0
- package/dist/src/enums/index.js +31 -0
- package/dist/src/enums/index.js.map +1 -0
- package/dist/src/enums/utils-renumber.d.ts +101 -0
- package/dist/src/enums/utils-renumber.js +127 -0
- package/dist/src/enums/utils-renumber.js.map +1 -0
- package/dist/src/enums/xrpl-definitions-base.d.ts +44 -0
- package/dist/src/enums/xrpl-definitions-base.js +59 -0
- package/dist/src/enums/xrpl-definitions-base.js.map +1 -0
- package/dist/src/enums/xrpl-definitions.d.ts +21 -0
- package/dist/src/enums/xrpl-definitions.js +29 -0
- package/dist/src/enums/xrpl-definitions.js.map +1 -0
- package/dist/src/hash-prefixes.d.ts +5 -0
- package/dist/src/hash-prefixes.js +41 -0
- package/dist/src/hash-prefixes.js.map +1 -0
- package/dist/src/hashes.d.ts +50 -0
- package/dist/src/hashes.js +76 -0
- package/dist/src/hashes.js.map +1 -0
- package/dist/src/index.d.ts +64 -0
- package/dist/src/index.js +123 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/ledger-hashes.d.ts +48 -0
- package/dist/src/ledger-hashes.js +141 -0
- package/dist/src/ledger-hashes.js.map +1 -0
- package/dist/src/quality.d.ts +21 -0
- package/dist/src/quality.js +42 -0
- package/dist/src/quality.js.map +1 -0
- package/dist/src/serdes/binary-parser.d.ts +100 -0
- package/dist/src/serdes/binary-parser.js +194 -0
- package/dist/src/serdes/binary-parser.js.map +1 -0
- package/dist/src/serdes/binary-serializer.d.ts +81 -0
- package/dist/src/serdes/binary-serializer.js +149 -0
- package/dist/src/serdes/binary-serializer.js.map +1 -0
- package/dist/src/shamap.d.ts +102 -0
- package/dist/src/shamap.js +172 -0
- package/dist/src/shamap.js.map +1 -0
- package/dist/src/types/account-id.d.ts +35 -0
- package/dist/src/types/account-id.js +69 -0
- package/dist/src/types/account-id.js.map +1 -0
- package/dist/src/types/amount.d.ts +91 -0
- package/dist/src/types/amount.js +289 -0
- package/dist/src/types/amount.js.map +1 -0
- package/dist/src/types/blob.d.ts +24 -0
- package/dist/src/types/blob.js +43 -0
- package/dist/src/types/blob.js.map +1 -0
- package/dist/src/types/currency.d.ts +28 -0
- package/dist/src/types/currency.js +127 -0
- package/dist/src/types/currency.js.map +1 -0
- package/dist/src/types/hash-128.d.ts +16 -0
- package/dist/src/types/hash-128.js +32 -0
- package/dist/src/types/hash-128.js.map +1 -0
- package/dist/src/types/hash-160.d.ts +10 -0
- package/dist/src/types/hash-160.js +19 -0
- package/dist/src/types/hash-160.js.map +1 -0
- package/dist/src/types/hash-192.d.ts +10 -0
- package/dist/src/types/hash-192.js +19 -0
- package/dist/src/types/hash-192.js.map +1 -0
- package/dist/src/types/hash-256.d.ts +10 -0
- package/dist/src/types/hash-256.js +16 -0
- package/dist/src/types/hash-256.js.map +1 -0
- package/dist/src/types/hash.d.ts +40 -0
- package/dist/src/types/hash.js +73 -0
- package/dist/src/types/hash.js.map +1 -0
- package/dist/src/types/index.d.ts +19 -0
- package/dist/src/types/index.js +64 -0
- package/dist/src/types/index.js.map +1 -0
- package/dist/src/types/issue.d.ts +38 -0
- package/dist/src/types/issue.js +81 -0
- package/dist/src/types/issue.js.map +1 -0
- package/dist/src/types/path-set.d.ts +36 -0
- package/dist/src/types/path-set.js +233 -0
- package/dist/src/types/path-set.js.map +1 -0
- package/dist/src/types/serialized-type.d.ts +70 -0
- package/dist/src/types/serialized-type.js +105 -0
- package/dist/src/types/serialized-type.js.map +1 -0
- package/dist/src/types/st-array.d.ts +31 -0
- package/dist/src/types/st-array.js +86 -0
- package/dist/src/types/st-array.js.map +1 -0
- package/dist/src/types/st-object.d.ts +32 -0
- package/dist/src/types/st-object.js +155 -0
- package/dist/src/types/st-object.js.map +1 -0
- package/dist/src/types/uint-16.d.ts +24 -0
- package/dist/src/types/uint-16.js +45 -0
- package/dist/src/types/uint-16.js.map +1 -0
- package/dist/src/types/uint-32.d.ts +24 -0
- package/dist/src/types/uint-32.js +50 -0
- package/dist/src/types/uint-32.js.map +1 -0
- package/dist/src/types/uint-64.d.ts +37 -0
- package/dist/src/types/uint-64.js +86 -0
- package/dist/src/types/uint-64.js.map +1 -0
- package/dist/src/types/uint-8.d.ts +24 -0
- package/dist/src/types/uint-8.js +46 -0
- package/dist/src/types/uint-8.js.map +1 -0
- package/dist/src/types/uint.d.ts +29 -0
- package/dist/src/types/uint.js +47 -0
- package/dist/src/types/uint.js.map +1 -0
- package/dist/src/types/vector-256.d.ts +30 -0
- package/dist/src/types/vector-256.js +73 -0
- package/dist/src/types/vector-256.js.map +1 -0
- package/dist/src/types/xchain-bridge.d.ts +44 -0
- package/dist/src/types/xchain-bridge.js +102 -0
- package/dist/src/types/xchain-bridge.js.map +1 -0
- package/dist/src/utils.d.ts +47 -0
- package/dist/src/utils.js +137 -0
- package/dist/src/utils.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/types/account-id.d.ts +2 -3
- package/dist/types/account-id.js +29 -37
- package/dist/types/account-id.js.map +1 -1
- package/dist/types/amount.d.ts +33 -10
- package/dist/types/amount.js +181 -113
- package/dist/types/amount.js.map +1 -1
- package/dist/types/blob.d.ts +3 -4
- package/dist/types/blob.js +16 -27
- package/dist/types/blob.js.map +1 -1
- package/dist/types/currency.d.ts +5 -13
- package/dist/types/currency.js +53 -66
- package/dist/types/currency.js.map +1 -1
- package/dist/types/hash-128.d.ts +8 -3
- package/dist/types/hash-128.js +23 -22
- package/dist/types/hash-128.js.map +1 -1
- package/dist/types/hash-160.d.ts +2 -3
- package/dist/types/hash-160.js +7 -24
- package/dist/types/hash-160.js.map +1 -1
- package/dist/types/hash-192.d.ts +10 -0
- package/dist/types/hash-192.js +19 -0
- package/dist/types/hash-192.js.map +1 -0
- package/dist/types/hash-256.d.ts +2 -3
- package/dist/types/hash-256.js +7 -22
- package/dist/types/hash-256.js.map +1 -1
- package/dist/types/hash.d.ts +4 -5
- package/dist/types/hash.js +25 -39
- package/dist/types/hash.js.map +1 -1
- package/dist/types/index.d.ts +19 -33
- package/dist/types/index.js +44 -24
- package/dist/types/index.js.map +1 -1
- package/dist/types/issue.d.ts +38 -0
- package/dist/types/issue.js +81 -0
- package/dist/types/issue.js.map +1 -0
- package/dist/types/path-set.d.ts +2 -2
- package/dist/types/path-set.js +73 -94
- package/dist/types/path-set.js.map +1 -1
- package/dist/types/serialized-type.d.ts +27 -20
- package/dist/types/serialized-type.js +50 -60
- package/dist/types/serialized-type.js.map +1 -1
- package/dist/types/st-array.d.ts +7 -4
- package/dist/types/st-array.js +36 -47
- package/dist/types/st-array.js.map +1 -1
- package/dist/types/st-object.d.ts +8 -5
- package/dist/types/st-object.js +73 -74
- package/dist/types/st-object.js.map +1 -1
- package/dist/types/uint-16.d.ts +3 -4
- package/dist/types/uint-16.js +20 -33
- package/dist/types/uint-16.js.map +1 -1
- package/dist/types/uint-32.d.ts +3 -4
- package/dist/types/uint-32.js +23 -36
- package/dist/types/uint-32.js.map +1 -1
- package/dist/types/uint-64.d.ts +6 -8
- package/dist/types/uint-64.js +43 -57
- package/dist/types/uint-64.js.map +1 -1
- package/dist/types/uint-8.d.ts +3 -4
- package/dist/types/uint-8.js +21 -33
- package/dist/types/uint-8.js.map +1 -1
- package/dist/types/uint.d.ts +6 -7
- package/dist/types/uint.js +16 -26
- package/dist/types/uint.js.map +1 -1
- package/dist/types/vector-256.d.ts +3 -4
- package/dist/types/vector-256.js +28 -45
- package/dist/types/vector-256.js.map +1 -1
- package/dist/types/xchain-bridge.d.ts +44 -0
- package/dist/types/xchain-bridge.js +102 -0
- package/dist/types/xchain-bridge.js.map +1 -0
- package/dist/utils.d.ts +47 -0
- package/dist/utils.js +137 -0
- package/dist/utils.js.map +1 -0
- package/package.json +23 -34
- package/src/README.md +5 -0
- package/src/binary.ts +194 -0
- package/src/coretypes.ts +31 -0
- package/src/enums/README.md +144 -0
- package/src/enums/bytes.ts +74 -0
- package/src/enums/constants.ts +4 -0
- package/src/enums/definitions.json +3073 -0
- package/src/enums/field.ts +84 -0
- package/src/enums/index.ts +34 -0
- package/src/enums/utils-renumber.ts +134 -0
- package/src/enums/xrpl-definitions-base.ts +111 -0
- package/src/enums/xrpl-definitions.ts +32 -0
- package/src/hash-prefixes.ts +40 -0
- package/src/hashes.ts +75 -0
- package/src/index.ts +153 -0
- package/src/ledger-hashes.ts +191 -0
- package/src/quality.ts +38 -0
- package/src/serdes/binary-parser.ts +228 -0
- package/src/serdes/binary-serializer.ts +166 -0
- package/src/shamap.ts +186 -0
- package/src/types/account-id.ts +86 -0
- package/src/types/amount.ts +362 -0
- package/src/types/blob.ts +46 -0
- package/src/types/currency.ts +140 -0
- package/src/types/hash-128.ts +33 -0
- package/src/types/hash-160.ts +19 -0
- package/src/types/hash-192.ts +19 -0
- package/src/types/hash-256.ts +15 -0
- package/src/types/hash.ts +83 -0
- package/src/types/index.ts +66 -0
- package/src/types/issue.ts +96 -0
- package/src/types/path-set.ts +290 -0
- package/src/types/serialized-type.ts +122 -0
- package/src/types/st-array.ts +113 -0
- package/src/types/st-object.ts +192 -0
- package/src/types/uint-16.ts +53 -0
- package/src/types/uint-32.ts +59 -0
- package/src/types/uint-64.ts +104 -0
- package/src/types/uint-8.ts +52 -0
- package/src/types/uint.ts +60 -0
- package/src/types/vector-256.ts +79 -0
- package/src/types/xchain-bridge.ts +128 -0
- package/src/utils.ts +152 -0
- package/HISTORY.md +0 -74
- package/test/amount.test.js +0 -43
- package/test/binary-json.test.js +0 -47
- package/test/binary-parser.test.js +0 -397
- package/test/binary-serializer.test.js +0 -263
- package/test/fixtures/account-tx-transactions.db +0 -0
- package/test/fixtures/codec-fixtures.json +0 -4466
- package/test/fixtures/data-driven-tests.json +0 -3721
- package/test/fixtures/delivermin-tx-binary.json +0 -1
- package/test/fixtures/delivermin-tx.json +0 -98
- package/test/fixtures/deposit-preauth-tx-binary.json +0 -1
- package/test/fixtures/deposit-preauth-tx-meta-binary.json +0 -1
- package/test/fixtures/deposit-preauth-tx.json +0 -58
- package/test/fixtures/escrow-cancel-binary.json +0 -1
- package/test/fixtures/escrow-cancel-tx.json +0 -6
- package/test/fixtures/escrow-create-binary.json +0 -1
- package/test/fixtures/escrow-create-tx.json +0 -10
- package/test/fixtures/escrow-finish-binary.json +0 -1
- package/test/fixtures/escrow-finish-meta-binary.json +0 -1
- package/test/fixtures/escrow-finish-tx.json +0 -95
- package/test/fixtures/ledger-full-38129.json +0 -1
- package/test/fixtures/ledger-full-40000.json +0 -1
- package/test/fixtures/negative-unl.json +0 -12
- package/test/fixtures/payment-channel-claim-binary.json +0 -1
- package/test/fixtures/payment-channel-claim-tx.json +0 -8
- package/test/fixtures/payment-channel-create-binary.json +0 -1
- package/test/fixtures/payment-channel-create-tx.json +0 -11
- package/test/fixtures/payment-channel-fund-binary.json +0 -1
- package/test/fixtures/payment-channel-fund-tx.json +0 -7
- package/test/fixtures/signerlistset-tx-binary.json +0 -1
- package/test/fixtures/signerlistset-tx-meta-binary.json +0 -1
- package/test/fixtures/signerlistset-tx.json +0 -94
- package/test/fixtures/ticket-create-binary.json +0 -1
- package/test/fixtures/ticket-create-tx.json +0 -7
- package/test/fixtures/x-codec-fixtures.json +0 -188
- package/test/hash.test.js +0 -82
- package/test/ledger.test.js +0 -29
- package/test/lower-case-hex.test.js +0 -45
- package/test/pseudo-transaction.test.js +0 -38
- package/test/quality.test.js +0 -15
- package/test/shamap.test.js +0 -88
- package/test/signing-data-encoding.test.js +0 -129
- package/test/tx-encode-decode.test.js +0 -97
- package/test/types.test.js +0 -34
- package/test/uint.test.js +0 -40
- package/test/utils.js +0 -29
- package/test/x-address.test.js +0 -147
package/dist/types/account-id.js
CHANGED
|
@@ -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
|
-
|
|
18
|
-
|
|
19
|
-
|
|
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
|
-
|
|
24
|
-
|
|
25
|
-
|
|
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
|
-
|
|
21
|
+
static from(value) {
|
|
35
22
|
if (value instanceof AccountID) {
|
|
36
23
|
return value;
|
|
37
24
|
}
|
|
38
|
-
if (typeof value ===
|
|
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(
|
|
30
|
+
? new AccountID((0, utils_1.hexToBytes)(value))
|
|
44
31
|
: this.fromBase58(value);
|
|
45
32
|
}
|
|
46
|
-
throw new Error(
|
|
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
|
-
|
|
55
|
-
|
|
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
|
-
|
|
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
|
-
|
|
71
|
-
return ripple_address_codec_1.encodeAccountID(this.bytes);
|
|
72
|
-
}
|
|
73
|
-
|
|
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":"
|
|
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"}
|
package/dist/types/amount.d.ts
CHANGED
|
@@ -1,22 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
|
|
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:
|
|
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
|
|
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 };
|
package/dist/types/amount.js
CHANGED
|
@@ -1,152 +1,169 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
3
|
-
|
|
4
|
-
|
|
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
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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");
|
|
23
15
|
/**
|
|
24
16
|
* Constants for validating amounts
|
|
25
17
|
*/
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
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);
|
|
32
25
|
/**
|
|
33
|
-
*
|
|
26
|
+
* BigNumber configuration for Amount IOUs
|
|
34
27
|
*/
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
28
|
+
bignumber_js_1.default.config({
|
|
29
|
+
EXPONENTIAL_AT: [
|
|
30
|
+
MIN_IOU_EXPONENT - MAX_IOU_PRECISION,
|
|
31
|
+
MAX_IOU_EXPONENT + MAX_IOU_PRECISION,
|
|
32
|
+
],
|
|
38
33
|
});
|
|
39
34
|
/**
|
|
40
|
-
* Type guard for
|
|
35
|
+
* Type guard for AmountObjectIOU
|
|
41
36
|
*/
|
|
42
|
-
function
|
|
43
|
-
|
|
37
|
+
function isAmountObjectIOU(arg) {
|
|
38
|
+
const keys = Object.keys(arg).sort();
|
|
44
39
|
return (keys.length === 3 &&
|
|
45
|
-
keys[0] ===
|
|
46
|
-
keys[1] ===
|
|
47
|
-
keys[2] ===
|
|
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');
|
|
48
50
|
}
|
|
49
51
|
/**
|
|
50
52
|
* Class for serializing/Deserializing Amounts
|
|
51
53
|
*/
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
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);
|
|
56
57
|
}
|
|
57
58
|
/**
|
|
58
|
-
* Construct an amount from an IOU or string amount
|
|
59
|
+
* Construct an amount from an IOU, MPT or string amount
|
|
59
60
|
*
|
|
60
61
|
* @param value An Amount, object representing an IOU, or a string
|
|
61
62
|
* representing an integer amount
|
|
62
63
|
* @returns An Amount object
|
|
63
64
|
*/
|
|
64
|
-
|
|
65
|
+
static from(value) {
|
|
65
66
|
if (value instanceof Amount) {
|
|
66
67
|
return value;
|
|
67
68
|
}
|
|
68
|
-
|
|
69
|
-
if (typeof value ===
|
|
69
|
+
let amount = new Uint8Array(8);
|
|
70
|
+
if (typeof value === 'string') {
|
|
70
71
|
Amount.assertXrpIsValid(value);
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
intBuf[0]
|
|
74
|
-
intBuf[1]
|
|
75
|
-
amount =
|
|
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);
|
|
76
77
|
amount[0] |= 0x40;
|
|
77
78
|
return new Amount(amount);
|
|
78
79
|
}
|
|
79
|
-
if (
|
|
80
|
-
|
|
80
|
+
if (isAmountObjectIOU(value)) {
|
|
81
|
+
const number = new bignumber_js_1.default(value.value);
|
|
81
82
|
Amount.assertIouIsValid(number);
|
|
82
83
|
if (number.isZero()) {
|
|
83
84
|
amount[0] |= 0x80;
|
|
84
85
|
}
|
|
85
86
|
else {
|
|
86
|
-
|
|
87
|
-
.times(
|
|
87
|
+
const integerNumberString = number
|
|
88
|
+
.times(`1e${-((number.e || 0) - 15)}`)
|
|
88
89
|
.abs()
|
|
89
90
|
.toString();
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
intBuf[0]
|
|
93
|
-
intBuf[1]
|
|
94
|
-
amount =
|
|
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);
|
|
95
96
|
amount[0] |= 0x80;
|
|
96
|
-
if (number.gt(new
|
|
97
|
+
if (number.gt(new bignumber_js_1.default(0))) {
|
|
97
98
|
amount[0] |= 0x40;
|
|
98
99
|
}
|
|
99
|
-
|
|
100
|
-
|
|
100
|
+
const exponent = (number.e || 0) - 15;
|
|
101
|
+
const exponentByte = 97 + exponent;
|
|
101
102
|
amount[0] |= exponentByte >>> 2;
|
|
102
103
|
amount[1] |= (exponentByte & 0x03) << 6;
|
|
103
104
|
}
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
return new Amount(
|
|
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]));
|
|
107
108
|
}
|
|
108
|
-
|
|
109
|
-
|
|
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
|
+
}
|
|
110
123
|
/**
|
|
111
124
|
* Read an amount from a BinaryParser
|
|
112
125
|
*
|
|
113
126
|
* @param parser BinaryParser to read the Amount from
|
|
114
127
|
* @returns An Amount object
|
|
115
128
|
*/
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
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;
|
|
119
136
|
return new Amount(parser.read(numBytes));
|
|
120
|
-
}
|
|
137
|
+
}
|
|
121
138
|
/**
|
|
122
139
|
* Get the JSON representation of this Amount
|
|
123
140
|
*
|
|
124
141
|
* @returns the JSON interpretation of this.bytes
|
|
125
142
|
*/
|
|
126
|
-
|
|
143
|
+
toJSON() {
|
|
127
144
|
if (this.isNative()) {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
145
|
+
const bytes = this.bytes;
|
|
146
|
+
const isPositive = bytes[0] & 0x40;
|
|
147
|
+
const sign = isPositive ? '' : '-';
|
|
131
148
|
bytes[0] &= 0x3f;
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
return
|
|
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()}`;
|
|
136
153
|
}
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
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;
|
|
147
164
|
mantissa[0] = 0;
|
|
148
165
|
mantissa[1] &= 0x3f;
|
|
149
|
-
|
|
166
|
+
const value = new bignumber_js_1.default(`${sign}0x${(0, utils_1.bytesToHex)(mantissa)}`).times(`1e${exponent}`);
|
|
150
167
|
Amount.assertIouIsValid(value);
|
|
151
168
|
return {
|
|
152
169
|
value: value.toString(),
|
|
@@ -154,42 +171,78 @@ var Amount = /** @class */ (function (_super) {
|
|
|
154
171
|
issuer: issuer.toJSON(),
|
|
155
172
|
};
|
|
156
173
|
}
|
|
157
|
-
|
|
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
|
+
}
|
|
158
191
|
/**
|
|
159
192
|
* Validate XRP amount
|
|
160
193
|
*
|
|
161
194
|
* @param amount String representing XRP amount
|
|
162
195
|
* @returns void, but will throw if invalid amount
|
|
163
196
|
*/
|
|
164
|
-
|
|
165
|
-
if (amount.indexOf(
|
|
166
|
-
throw new Error(amount.toString()
|
|
197
|
+
static assertXrpIsValid(amount) {
|
|
198
|
+
if (amount.indexOf('.') !== -1) {
|
|
199
|
+
throw new Error(`${amount.toString()} is an illegal amount`);
|
|
167
200
|
}
|
|
168
|
-
|
|
201
|
+
const decimal = new bignumber_js_1.default(amount);
|
|
169
202
|
if (!decimal.isZero()) {
|
|
170
203
|
if (decimal.lt(MIN_XRP) || decimal.gt(MAX_DROPS)) {
|
|
171
|
-
throw new Error(amount.toString()
|
|
204
|
+
throw new Error(`${amount.toString()} is an illegal amount`);
|
|
172
205
|
}
|
|
173
206
|
}
|
|
174
|
-
}
|
|
207
|
+
}
|
|
175
208
|
/**
|
|
176
209
|
* Validate IOU.value amount
|
|
177
210
|
*
|
|
178
|
-
* @param decimal
|
|
211
|
+
* @param decimal BigNumber object representing IOU.value
|
|
179
212
|
* @returns void, but will throw if invalid amount
|
|
180
213
|
*/
|
|
181
|
-
|
|
214
|
+
static assertIouIsValid(decimal) {
|
|
182
215
|
if (!decimal.isZero()) {
|
|
183
|
-
|
|
184
|
-
|
|
216
|
+
const p = decimal.precision();
|
|
217
|
+
const e = (decimal.e || 0) - 15;
|
|
185
218
|
if (p > MAX_IOU_PRECISION ||
|
|
186
219
|
e > MAX_IOU_EXPONENT ||
|
|
187
220
|
e < MIN_IOU_EXPONENT) {
|
|
188
|
-
throw new Error(
|
|
221
|
+
throw new Error('Decimal precision out of range');
|
|
189
222
|
}
|
|
190
223
|
this.verifyNoDecimal(decimal);
|
|
191
224
|
}
|
|
192
|
-
}
|
|
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
|
+
}
|
|
193
246
|
/**
|
|
194
247
|
* Ensure that the value after being multiplied by the exponent does not
|
|
195
248
|
* contain a decimal.
|
|
@@ -197,25 +250,40 @@ var Amount = /** @class */ (function (_super) {
|
|
|
197
250
|
* @param decimal a Decimal object
|
|
198
251
|
* @returns a string of the object without a decimal
|
|
199
252
|
*/
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
.times(
|
|
253
|
+
static verifyNoDecimal(decimal) {
|
|
254
|
+
const integerNumberString = decimal
|
|
255
|
+
.times(`1e${-((decimal.e || 0) - 15)}`)
|
|
203
256
|
.abs()
|
|
204
257
|
.toString();
|
|
205
|
-
if (integerNumberString.indexOf(
|
|
206
|
-
throw new Error(
|
|
258
|
+
if (integerNumberString.indexOf('.') !== -1) {
|
|
259
|
+
throw new Error('Decimal place found in integerNumberString');
|
|
207
260
|
}
|
|
208
|
-
}
|
|
261
|
+
}
|
|
209
262
|
/**
|
|
210
263
|
* Test if this amount is in units of Native Currency(XRP)
|
|
211
264
|
*
|
|
212
265
|
* @returns true if Native (XRP)
|
|
213
266
|
*/
|
|
214
|
-
|
|
215
|
-
return (this.bytes[0] & 0x80) === 0;
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
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
|
+
}
|
|
220
287
|
exports.Amount = Amount;
|
|
288
|
+
Amount.defaultAmount = new Amount((0, utils_1.hexToBytes)('4000000000000000'));
|
|
221
289
|
//# sourceMappingURL=amount.js.map
|
package/dist/types/amount.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"amount.js","sourceRoot":"","sources":["../../src/types/amount.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"amount.js","sourceRoot":"","sources":["../../src/types/amount.ts"],"names":[],"mappings":"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"}
|