@transia/ripple-binary-codec 1.4.6-alpha.9 → 2.5.1
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/dist/binary.d.ts +30 -16
- package/dist/binary.js +36 -16
- package/dist/binary.js.map +1 -1
- package/dist/enums/bytes.d.ts +1 -2
- package/dist/enums/bytes.js +3 -2
- package/dist/enums/bytes.js.map +1 -1
- package/dist/enums/constants.d.ts +1 -0
- package/dist/enums/constants.js +6 -5
- package/dist/enums/constants.js.map +1 -1
- package/dist/enums/definitions.json +1604 -969
- package/dist/enums/field.d.ts +1 -2
- package/dist/enums/field.js +1 -2
- package/dist/enums/field.js.map +1 -1
- package/dist/enums/index.d.ts +1 -2
- package/dist/enums/index.js +5 -27
- package/dist/enums/index.js.map +1 -1
- package/dist/enums/src/enums/definitions.json +1606 -971
- package/dist/enums/xrpl-definitions-base.d.ts +5 -3
- package/dist/enums/xrpl-definitions-base.js +26 -6
- package/dist/enums/xrpl-definitions-base.js.map +1 -1
- package/dist/enums/xrpl-definitions.d.ts +2 -1
- package/dist/enums/xrpl-definitions.js +2 -1
- package/dist/enums/xrpl-definitions.js.map +1 -1
- package/dist/hash-prefixes.d.ts +1 -2
- package/dist/hash-prefixes.js +8 -6
- package/dist/hash-prefixes.js.map +1 -1
- package/dist/hashes.d.ts +6 -7
- package/dist/hashes.js +6 -7
- package/dist/hashes.js.map +1 -1
- package/dist/index.d.ts +16 -11
- package/dist/index.js +53 -58
- package/dist/index.js.map +1 -1
- package/dist/ledger-hashes.d.ts +1 -2
- package/dist/ledger-hashes.js +11 -30
- package/dist/ledger-hashes.js.map +1 -1
- package/dist/quality.d.ts +3 -4
- package/dist/quality.js +10 -8
- package/dist/quality.js.map +1 -1
- package/dist/serdes/binary-parser.d.ts +2 -3
- package/dist/serdes/binary-parser.js +16 -32
- package/dist/serdes/binary-parser.js.map +1 -1
- package/dist/serdes/binary-serializer.d.ts +7 -8
- package/dist/serdes/binary-serializer.js +14 -37
- package/dist/serdes/binary-serializer.js.map +1 -1
- package/dist/shamap.d.ts +4 -5
- package/dist/shamap.js +5 -5
- package/dist/shamap.js.map +1 -1
- package/dist/src/binary.d.ts +106 -0
- package/dist/src/binary.js +154 -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 +65 -0
- package/dist/src/enums/bytes.js.map +1 -0
- package/dist/src/enums/constants.d.ts +5 -0
- package/dist/src/enums/constants.js +9 -0
- package/dist/src/enums/constants.js.map +1 -0
- package/dist/src/enums/definitions.json +3404 -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 +47 -0
- package/dist/src/enums/xrpl-definitions-base.js +83 -0
- package/dist/src/enums/xrpl-definitions-base.js.map +1 -0
- package/dist/src/enums/xrpl-definitions.d.ts +22 -0
- package/dist/src/enums/xrpl-definitions.js +30 -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 +43 -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 +69 -0
- package/dist/src/index.js +134 -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 +37 -0
- package/dist/src/types/account-id.js +73 -0
- package/dist/src/types/account-id.js.map +1 -0
- package/dist/src/types/amount.d.ts +92 -0
- package/dist/src/types/amount.js +292 -0
- package/dist/src/types/amount.js.map +1 -0
- package/dist/src/types/blob.d.ts +25 -0
- package/dist/src/types/blob.js +46 -0
- package/dist/src/types/blob.js.map +1 -0
- package/dist/src/types/currency.d.ts +30 -0
- package/dist/src/types/currency.js +131 -0
- package/dist/src/types/currency.js.map +1 -0
- package/dist/src/types/data.d.ts +104 -0
- package/dist/src/types/data.js +387 -0
- package/dist/src/types/data.js.map +1 -0
- package/dist/src/types/dataType.d.ts +94 -0
- package/dist/src/types/dataType.js +145 -0
- package/dist/src/types/dataType.js.map +1 -0
- package/dist/src/types/hash-128.d.ts +18 -0
- package/dist/src/types/hash-128.js +36 -0
- package/dist/src/types/hash-128.js.map +1 -0
- package/dist/src/types/hash-160.d.ts +12 -0
- package/dist/src/types/hash-160.js +23 -0
- package/dist/src/types/hash-160.js.map +1 -0
- package/dist/src/types/hash-192.d.ts +12 -0
- package/dist/src/types/hash-192.js +23 -0
- package/dist/src/types/hash-192.js.map +1 -0
- package/dist/src/types/hash-256.d.ts +12 -0
- package/dist/src/types/hash-256.js +20 -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 +76 -0
- package/dist/src/types/hash.js.map +1 -0
- package/dist/src/types/index.d.ts +21 -0
- package/dist/src/types/index.js +72 -0
- package/dist/src/types/index.js.map +1 -0
- package/dist/src/types/issue.d.ts +49 -0
- package/dist/src/types/issue.js +107 -0
- package/dist/src/types/issue.js.map +1 -0
- package/dist/src/types/json.d.ts +169 -0
- package/dist/src/types/json.js +529 -0
- package/dist/src/types/json.js.map +1 -0
- package/dist/src/types/path-set.d.ts +37 -0
- package/dist/src/types/path-set.js +236 -0
- package/dist/src/types/path-set.js.map +1 -0
- package/dist/src/types/serialized-type.d.ts +117 -0
- package/dist/src/types/serialized-type.js +242 -0
- package/dist/src/types/serialized-type.js.map +1 -0
- package/dist/src/types/st-array.d.ts +32 -0
- package/dist/src/types/st-array.js +89 -0
- package/dist/src/types/st-array.js.map +1 -0
- package/dist/src/types/st-number.d.ts +55 -0
- package/dist/src/types/st-number.js +212 -0
- package/dist/src/types/st-number.js.map +1 -0
- package/dist/src/types/st-object.d.ts +33 -0
- package/dist/src/types/st-object.js +176 -0
- package/dist/src/types/st-object.js.map +1 -0
- package/dist/src/types/uint-16.d.ts +26 -0
- package/dist/src/types/uint-16.js +49 -0
- package/dist/src/types/uint-16.js.map +1 -0
- package/dist/src/types/uint-32.d.ts +26 -0
- package/dist/src/types/uint-32.js +54 -0
- package/dist/src/types/uint-32.js.map +1 -0
- package/dist/src/types/uint-64.d.ts +40 -0
- package/dist/src/types/uint-64.js +112 -0
- package/dist/src/types/uint-64.js.map +1 -0
- package/dist/src/types/uint-8.d.ts +26 -0
- package/dist/src/types/uint-8.js +50 -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 +31 -0
- package/dist/src/types/vector-256.js +76 -0
- package/dist/src/types/vector-256.js.map +1 -0
- package/dist/src/types/xchain-bridge.d.ts +45 -0
- package/dist/src/types/xchain-bridge.js +105 -0
- package/dist/src/types/xchain-bridge.js.map +1 -0
- package/dist/src/utils.d.ts +79 -0
- package/dist/src/utils.js +181 -0
- package/dist/src/utils.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/types/account-id.d.ts +3 -2
- package/dist/types/account-id.js +8 -6
- package/dist/types/account-id.js.map +1 -1
- package/dist/types/amount.d.ts +33 -9
- package/dist/types/amount.js +128 -43
- package/dist/types/amount.js.map +1 -1
- package/dist/types/blob.d.ts +3 -3
- package/dist/types/blob.js +8 -2
- package/dist/types/blob.js.map +1 -1
- package/dist/types/currency.d.ts +3 -2
- package/dist/types/currency.js +17 -13
- package/dist/types/currency.js.map +1 -1
- package/dist/types/data.d.ts +104 -0
- package/dist/types/data.js +387 -0
- package/dist/types/data.js.map +1 -0
- package/dist/types/dataType.d.ts +94 -0
- package/dist/types/dataType.js +145 -0
- package/dist/types/dataType.js.map +1 -0
- package/dist/types/hash-128.d.ts +3 -2
- package/dist/types/hash-128.js +7 -3
- package/dist/types/hash-128.js.map +1 -1
- package/dist/types/hash-160.d.ts +3 -2
- package/dist/types/hash-160.js +5 -2
- package/dist/types/hash-160.js.map +1 -1
- package/dist/types/hash-192.d.ts +12 -0
- package/dist/types/hash-192.js +23 -0
- package/dist/types/hash-192.js.map +1 -0
- package/dist/types/hash-256.d.ts +3 -2
- package/dist/types/hash-256.js +5 -2
- package/dist/types/hash-256.js.map +1 -1
- package/dist/types/hash.d.ts +2 -3
- package/dist/types/hash.js +8 -4
- package/dist/types/hash.js.map +1 -1
- package/dist/types/index.d.ts +4 -1
- package/dist/types/index.js +17 -2
- package/dist/types/index.js.map +1 -1
- package/dist/types/issue.d.ts +49 -0
- package/dist/types/issue.js +107 -0
- package/dist/types/issue.js.map +1 -0
- package/dist/types/json.d.ts +169 -0
- package/dist/types/json.js +529 -0
- package/dist/types/json.js.map +1 -0
- package/dist/types/path-set.d.ts +2 -1
- package/dist/types/path-set.js +15 -12
- package/dist/types/path-set.js.map +1 -1
- package/dist/types/serialized-type.d.ts +70 -16
- package/dist/types/serialized-type.js +153 -8
- package/dist/types/serialized-type.js.map +1 -1
- package/dist/types/st-array.d.ts +7 -3
- package/dist/types/st-array.js +20 -11
- package/dist/types/st-array.js.map +1 -1
- package/dist/types/st-number.d.ts +55 -0
- package/dist/types/st-number.js +212 -0
- package/dist/types/st-number.js.map +1 -0
- package/dist/types/st-object.d.ts +2 -1
- package/dist/types/st-object.js +35 -8
- package/dist/types/st-object.js.map +1 -1
- package/dist/types/uint-16.d.ts +3 -2
- package/dist/types/uint-16.js +10 -5
- package/dist/types/uint-16.js.map +1 -1
- package/dist/types/uint-32.d.ts +3 -2
- package/dist/types/uint-32.js +11 -6
- package/dist/types/uint-32.js.map +1 -1
- package/dist/types/uint-64.d.ts +8 -7
- package/dist/types/uint-64.js +49 -24
- package/dist/types/uint-64.js.map +1 -1
- package/dist/types/uint-8.d.ts +3 -2
- package/dist/types/uint-8.js +11 -5
- package/dist/types/uint-8.js.map +1 -1
- package/dist/types/uint.d.ts +5 -6
- package/dist/types/uint.js +5 -0
- package/dist/types/uint.js.map +1 -1
- package/dist/types/vector-256.d.ts +3 -3
- package/dist/types/vector-256.js +5 -4
- package/dist/types/vector-256.js.map +1 -1
- package/dist/types/xchain-bridge.d.ts +45 -0
- package/dist/types/xchain-bridge.js +105 -0
- package/dist/types/xchain-bridge.js.map +1 -0
- package/dist/utils.d.ts +79 -0
- package/dist/utils.js +181 -0
- package/dist/utils.js.map +1 -0
- package/package.json +21 -17
- package/src/README.md +5 -0
- package/src/binary.ts +235 -0
- package/src/coretypes.ts +31 -0
- package/src/enums/README.md +144 -0
- package/src/enums/bytes.ts +80 -0
- package/src/enums/constants.ts +5 -0
- package/src/enums/definitions.json +3409 -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 +150 -0
- package/src/enums/xrpl-definitions.ts +33 -0
- package/src/hash-prefixes.ts +42 -0
- package/src/hashes.ts +75 -0
- package/src/index.ts +166 -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 +189 -0
- package/src/types/account-id.ts +91 -0
- package/src/types/amount.ts +366 -0
- package/src/types/blob.ts +50 -0
- package/src/types/currency.ts +145 -0
- package/src/types/data.ts +496 -0
- package/src/types/dataType.ts +178 -0
- package/src/types/hash-128.ts +38 -0
- package/src/types/hash-160.ts +24 -0
- package/src/types/hash-192.ts +24 -0
- package/src/types/hash-256.ts +20 -0
- package/src/types/hash.ts +86 -0
- package/src/types/index.ts +74 -0
- package/src/types/issue.ts +140 -0
- package/src/types/json.ts +641 -0
- package/src/types/path-set.ts +294 -0
- package/src/types/serialized-type.ts +271 -0
- package/src/types/st-array.ts +117 -0
- package/src/types/st-number.ts +238 -0
- package/src/types/st-object.ts +219 -0
- package/src/types/uint-16.ts +58 -0
- package/src/types/uint-32.ts +64 -0
- package/src/types/uint-64.ts +141 -0
- package/src/types/uint-8.ts +57 -0
- package/src/types/uint.ts +60 -0
- package/src/types/vector-256.ts +83 -0
- package/src/types/xchain-bridge.ts +132 -0
- package/src/utils.ts +220 -0
- package/test/amount.test.js +0 -43
- package/test/binary-json.test.js +0 -45
- package/test/binary-parser.test.js +0 -396
- package/test/binary-serializer.test.js +0 -319
- package/test/definitions.test.js +0 -100
- 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 -2919
- 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/nf-token.json +0 -547
- 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/remit-binary.json +0 -1
- package/test/fixtures/remit-tx.json +0 -39
- 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/unl-report-binary.json +0 -1
- package/test/fixtures/unl-report-meta-binary.json +0 -1
- package/test/fixtures/unl-report.json +0 -89
- package/test/fixtures/x-codec-fixtures.json +0 -188
- package/test/hash.test.js +0 -135
- package/test/ledger.test.js +0 -29
- package/test/lower-case-hex.test.js +0 -46
- package/test/pseudo-transaction.test.js +0 -38
- package/test/quality.test.js +0 -15
- package/test/shamap.test.js +0 -89
- package/test/signing-data-encoding.test.js +0 -213
- package/test/tx-encode-decode.test.js +0 -119
- package/test/types.test.js +0 -34
- package/test/uint.test.js +0 -148
- package/test/utils.js +0 -30
- package/test/x-address.test.js +0 -181
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Issue = void 0;
|
|
4
|
+
const utils_1 = require("@transia/isomorphic/utils");
|
|
5
|
+
const binary_parser_1 = require("../serdes/binary-parser");
|
|
6
|
+
const account_id_1 = require("./account-id");
|
|
7
|
+
const currency_1 = require("./currency");
|
|
8
|
+
const serialized_type_1 = require("./serialized-type");
|
|
9
|
+
const hash_192_1 = require("./hash-192");
|
|
10
|
+
/**
|
|
11
|
+
* Type guard for Issue Object
|
|
12
|
+
*/
|
|
13
|
+
function isIssueObject(arg) {
|
|
14
|
+
const keys = Object.keys(arg).sort();
|
|
15
|
+
const isXRP = keys.length === 1 && keys[0] === 'currency';
|
|
16
|
+
const isIOU = keys.length === 2 && keys[0] === 'currency' && keys[1] === 'issuer';
|
|
17
|
+
const isMPT = keys.length === 1 && keys[0] === 'mpt_issuance_id';
|
|
18
|
+
return isXRP || isIOU || isMPT;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Class for serializing/Deserializing Amounts
|
|
22
|
+
*/
|
|
23
|
+
class Issue extends serialized_type_1.SerializedType {
|
|
24
|
+
constructor(bytes) {
|
|
25
|
+
super(bytes !== null && bytes !== void 0 ? bytes : Issue.ZERO_ISSUED_CURRENCY.bytes);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Construct an amount from an IOU or string amount
|
|
29
|
+
*
|
|
30
|
+
* @param value An Amount, object representing an IOU, MPTAmount, or a string
|
|
31
|
+
* representing an integer amount
|
|
32
|
+
* @returns An Issue object
|
|
33
|
+
*/
|
|
34
|
+
static from(value) {
|
|
35
|
+
if (value instanceof Issue) {
|
|
36
|
+
return value;
|
|
37
|
+
}
|
|
38
|
+
if (isIssueObject(value)) {
|
|
39
|
+
if (value.currency) {
|
|
40
|
+
const currency = currency_1.Currency.from(value.currency.toString()).toBytes();
|
|
41
|
+
//IOU case
|
|
42
|
+
if (value.issuer) {
|
|
43
|
+
const issuer = account_id_1.AccountID.from(value.issuer.toString()).toBytes();
|
|
44
|
+
return new Issue((0, utils_1.concat)([currency, issuer]));
|
|
45
|
+
}
|
|
46
|
+
//XRP case
|
|
47
|
+
return new Issue(currency);
|
|
48
|
+
}
|
|
49
|
+
// MPT case
|
|
50
|
+
if (value.mpt_issuance_id) {
|
|
51
|
+
const mptIssuanceIdBytes = hash_192_1.Hash192.from(value.mpt_issuance_id.toString()).toBytes();
|
|
52
|
+
return new Issue(mptIssuanceIdBytes);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
throw new Error('Invalid type to construct an Amount');
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Read an amount from a BinaryParser
|
|
59
|
+
*
|
|
60
|
+
* @param parser BinaryParser to read the Amount from
|
|
61
|
+
* @param hint The number of bytes to consume from the parser.
|
|
62
|
+
* For an MPT amount, pass 24 (the fixed length for Hash192).
|
|
63
|
+
*
|
|
64
|
+
* @returns An Issue object
|
|
65
|
+
*/
|
|
66
|
+
static fromParser(parser, hint) {
|
|
67
|
+
if (hint === hash_192_1.Hash192.width) {
|
|
68
|
+
const mptBytes = parser.read(hash_192_1.Hash192.width);
|
|
69
|
+
return new Issue(mptBytes);
|
|
70
|
+
}
|
|
71
|
+
const currency = parser.read(20);
|
|
72
|
+
if (new currency_1.Currency(currency).toJSON() === 'XRP') {
|
|
73
|
+
return new Issue(currency);
|
|
74
|
+
}
|
|
75
|
+
const currencyAndIssuer = [currency, parser.read(20)];
|
|
76
|
+
return new Issue((0, utils_1.concat)(currencyAndIssuer));
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Get the JSON representation of this Amount
|
|
80
|
+
*
|
|
81
|
+
* @returns the JSON interpretation of this.bytes
|
|
82
|
+
*/
|
|
83
|
+
toJSON() {
|
|
84
|
+
// If the buffer is exactly 24 bytes, treat it as an MPT amount.
|
|
85
|
+
if (this.toBytes().length === hash_192_1.Hash192.width) {
|
|
86
|
+
return {
|
|
87
|
+
mpt_issuance_id: this.toHex().toUpperCase(),
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
const parser = new binary_parser_1.BinaryParser(this.toString());
|
|
91
|
+
const currency = currency_1.Currency.fromParser(parser);
|
|
92
|
+
if (currency.toJSON() === 'XRP') {
|
|
93
|
+
return { currency: currency.toJSON() };
|
|
94
|
+
}
|
|
95
|
+
const issuer = account_id_1.AccountID.fromParser(parser);
|
|
96
|
+
return {
|
|
97
|
+
currency: currency.toJSON(),
|
|
98
|
+
issuer: issuer.toJSON(),
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
getSType() {
|
|
102
|
+
return serialized_type_1.SerializedTypeID.STI_ISSUE;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
exports.Issue = Issue;
|
|
106
|
+
Issue.ZERO_ISSUED_CURRENCY = new Issue(new Uint8Array(20));
|
|
107
|
+
//# sourceMappingURL=issue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"issue.js","sourceRoot":"","sources":["../../src/types/issue.ts"],"names":[],"mappings":";;;AAAA,qDAAkD;AAClD,2DAAsD;AAEtD,6CAAwC;AACxC,yCAAqC;AACrC,uDAAgF;AAChF,yCAAoC;AAkBpC;;GAEG;AACH,SAAS,aAAa,CAAC,GAAG;IACxB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;IACpC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU,CAAA;IACzD,MAAM,KAAK,GACT,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAA;IACrE,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,iBAAiB,CAAA;IAEhE,OAAO,KAAK,IAAI,KAAK,IAAI,KAAK,CAAA;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,KAAM,SAAQ,gCAAc;IAGhC,YAAY,KAAiB;QAC3B,KAAK,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,KAAK,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAA;IAClD,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,IAAI,CAAgC,KAAQ;QACjD,IAAI,KAAK,YAAY,KAAK,EAAE;YAC1B,OAAO,KAAK,CAAA;SACb;QAED,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE;YACxB,IAAI,KAAK,CAAC,QAAQ,EAAE;gBAClB,MAAM,QAAQ,GAAG,mBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAA;gBAEnE,UAAU;gBACV,IAAI,KAAK,CAAC,MAAM,EAAE;oBAChB,MAAM,MAAM,GAAG,sBAAS,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAA;oBAChE,OAAO,IAAI,KAAK,CAAC,IAAA,cAAM,EAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;iBAC7C;gBAED,UAAU;gBACV,OAAO,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAA;aAC3B;YAED,WAAW;YACX,IAAI,KAAK,CAAC,eAAe,EAAE;gBACzB,MAAM,kBAAkB,GAAG,kBAAO,CAAC,IAAI,CACrC,KAAK,CAAC,eAAe,CAAC,QAAQ,EAAE,CACjC,CAAC,OAAO,EAAE,CAAA;gBACX,OAAO,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;aACrC;SACF;QAED,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;IACxD,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM,CAAC,UAAU,CAAC,MAAoB,EAAE,IAAa;QACnD,IAAI,IAAI,KAAK,kBAAO,CAAC,KAAK,EAAE;YAC1B,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAO,CAAC,KAAK,CAAC,CAAA;YAC3C,OAAO,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAA;SAC3B;QACD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAChC,IAAI,IAAI,mBAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,KAAK,KAAK,EAAE;YAC7C,OAAO,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAA;SAC3B;QACD,MAAM,iBAAiB,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;QACrD,OAAO,IAAI,KAAK,CAAC,IAAA,cAAM,EAAC,iBAAiB,CAAC,CAAC,CAAA;IAC7C,CAAC;IAED;;;;OAIG;IACH,MAAM;QACJ,gEAAgE;QAChE,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,KAAK,kBAAO,CAAC,KAAK,EAAE;YAC3C,OAAO;gBACL,eAAe,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE;aAC5C,CAAA;SACF;QAED,MAAM,MAAM,GAAG,IAAI,4BAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;QAEhD,MAAM,QAAQ,GAAG,mBAAQ,CAAC,UAAU,CAAC,MAAM,CAAa,CAAA;QACxD,IAAI,QAAQ,CAAC,MAAM,EAAE,KAAK,KAAK,EAAE;YAC/B,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAA;SACvC;QACD,MAAM,MAAM,GAAG,sBAAS,CAAC,UAAU,CAAC,MAAM,CAAc,CAAA;QAExD,OAAO;YACL,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE;YAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;SACxB,CAAA;IACH,CAAC;IAED,QAAQ;QACN,OAAO,kCAAgB,CAAC,SAAS,CAAA;IACnC,CAAC;;AAGM,sBAAK;AAlGI,0BAAoB,GAAU,IAAI,KAAK,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import { BinaryParser } from '../serdes/binary-parser';
|
|
2
|
+
import { JsonObject, SerializedType, SerializedTypeID } from './serialized-type';
|
|
3
|
+
import { BinarySerializer } from '../serdes/binary-serializer';
|
|
4
|
+
/**
|
|
5
|
+
* STJson: Serialized Type for JSON-like structures (objects or arrays).
|
|
6
|
+
*
|
|
7
|
+
* Supports two modes:
|
|
8
|
+
* - Object: Key-value pairs where keys are VL-encoded strings
|
|
9
|
+
* - Array: Ordered list of values
|
|
10
|
+
*
|
|
11
|
+
* Values are [SType marker][VL-encoded SType serialization].
|
|
12
|
+
* Values can be any SType, including nested STJson.
|
|
13
|
+
*
|
|
14
|
+
* Serialization format: [type_byte][VL_length][data...]
|
|
15
|
+
* - type_byte: 0x00 = Object, 0x01 = Array
|
|
16
|
+
*
|
|
17
|
+
* Depth constraint: Maximum nesting depth of 1 level
|
|
18
|
+
*/
|
|
19
|
+
declare class STJson extends SerializedType {
|
|
20
|
+
private static readonly JsonType;
|
|
21
|
+
private data;
|
|
22
|
+
private jsonType;
|
|
23
|
+
private default_;
|
|
24
|
+
/**
|
|
25
|
+
* Construct STJson from bytes
|
|
26
|
+
* @param bytes - Uint8Array containing serialized JSON
|
|
27
|
+
*/
|
|
28
|
+
constructor(bytes: Uint8Array);
|
|
29
|
+
/**
|
|
30
|
+
* Parse STJson from BinaryParser
|
|
31
|
+
*
|
|
32
|
+
* @param parser - BinaryParser positioned at the start of STJson
|
|
33
|
+
* @returns STJson instance
|
|
34
|
+
*/
|
|
35
|
+
static fromParser(parser: BinaryParser): STJson;
|
|
36
|
+
/**
|
|
37
|
+
* Parse a single key-value pair from the parser
|
|
38
|
+
*/
|
|
39
|
+
private static parsePair;
|
|
40
|
+
/**
|
|
41
|
+
* Factory for SType value from VL blob (with SType marker)
|
|
42
|
+
*/
|
|
43
|
+
private static makeValueFromVLWithType;
|
|
44
|
+
/**
|
|
45
|
+
* Check if this is an array type
|
|
46
|
+
*/
|
|
47
|
+
isArray(): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Check if this is an object type
|
|
50
|
+
*/
|
|
51
|
+
isObject(): boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Get the JSON type
|
|
54
|
+
*/
|
|
55
|
+
getType(): number;
|
|
56
|
+
/**
|
|
57
|
+
* Get nesting depth (0 = no nesting, 1 = one level of nesting)
|
|
58
|
+
*/
|
|
59
|
+
getDepth(): number;
|
|
60
|
+
/**
|
|
61
|
+
* Validate nesting depth (max 1 level)
|
|
62
|
+
*/
|
|
63
|
+
private validateDepth;
|
|
64
|
+
/**
|
|
65
|
+
* Set a field in an object
|
|
66
|
+
*/
|
|
67
|
+
setObjectField(key: string, value: SerializedType | null): void;
|
|
68
|
+
/**
|
|
69
|
+
* Get a field from an object
|
|
70
|
+
*/
|
|
71
|
+
getObjectField(key: string): SerializedType | null | undefined;
|
|
72
|
+
/**
|
|
73
|
+
* Set a nested object field (one level deep)
|
|
74
|
+
*/
|
|
75
|
+
setNestedObjectField(key: string, nestedKey: string, value: SerializedType | null): void;
|
|
76
|
+
/**
|
|
77
|
+
* Get a nested object field
|
|
78
|
+
*/
|
|
79
|
+
getNestedObjectField(key: string, nestedKey: string): SerializedType | null | undefined;
|
|
80
|
+
/**
|
|
81
|
+
* Get the inner data as a Map (for objects)
|
|
82
|
+
*/
|
|
83
|
+
getMap(): Map<string, SerializedType | null>;
|
|
84
|
+
/**
|
|
85
|
+
* Get the inner data as an array
|
|
86
|
+
*/
|
|
87
|
+
getArray(): (SerializedType | null)[];
|
|
88
|
+
/**
|
|
89
|
+
* Push an element to an array
|
|
90
|
+
*/
|
|
91
|
+
pushArrayElement(value: SerializedType | null): void;
|
|
92
|
+
/**
|
|
93
|
+
* Get an array element by index
|
|
94
|
+
*/
|
|
95
|
+
getArrayElement(index: number): SerializedType | null | undefined;
|
|
96
|
+
/**
|
|
97
|
+
* Set an array element by index
|
|
98
|
+
*/
|
|
99
|
+
setArrayElement(index: number, value: SerializedType | null): void;
|
|
100
|
+
/**
|
|
101
|
+
* Set a field within an array element (element must be an object)
|
|
102
|
+
*/
|
|
103
|
+
setArrayElementField(index: number, key: string, value: SerializedType | null): void;
|
|
104
|
+
/**
|
|
105
|
+
* Get a field within an array element
|
|
106
|
+
*/
|
|
107
|
+
getArrayElementField(index: number, key: string): SerializedType | null | undefined;
|
|
108
|
+
/**
|
|
109
|
+
* Get the size of the array
|
|
110
|
+
*/
|
|
111
|
+
arraySize(): number;
|
|
112
|
+
/**
|
|
113
|
+
* Set a nested array element (array stored in object field)
|
|
114
|
+
*/
|
|
115
|
+
setNestedArrayElement(key: string, index: number, value: SerializedType | null): void;
|
|
116
|
+
/**
|
|
117
|
+
* Set a field within a nested array element
|
|
118
|
+
*/
|
|
119
|
+
setNestedArrayElementField(key: string, index: number, nestedKey: string, value: SerializedType | null): void;
|
|
120
|
+
/**
|
|
121
|
+
* Get a nested array element
|
|
122
|
+
*/
|
|
123
|
+
getNestedArrayElement(key: string, index: number): SerializedType | null | undefined;
|
|
124
|
+
/**
|
|
125
|
+
* Get a field within a nested array element
|
|
126
|
+
*/
|
|
127
|
+
getNestedArrayElementField(key: string, index: number, nestedKey: string): SerializedType | null | undefined;
|
|
128
|
+
/**
|
|
129
|
+
* Serialize to binary
|
|
130
|
+
*/
|
|
131
|
+
add(s: BinarySerializer): void;
|
|
132
|
+
/**
|
|
133
|
+
* Encode a key as VL
|
|
134
|
+
*/
|
|
135
|
+
private static addVLKey;
|
|
136
|
+
/**
|
|
137
|
+
* Encode a value as [SType marker][VL]
|
|
138
|
+
*/
|
|
139
|
+
private static addVLValue;
|
|
140
|
+
/**
|
|
141
|
+
* Convert to JSON representation
|
|
142
|
+
*/
|
|
143
|
+
toJSON(): JsonObject | JsonObject[];
|
|
144
|
+
/**
|
|
145
|
+
* Compare with another STJson for equivalence
|
|
146
|
+
*/
|
|
147
|
+
isEquivalent(t: SerializedType): boolean;
|
|
148
|
+
/**
|
|
149
|
+
* Check if this is the default value
|
|
150
|
+
*/
|
|
151
|
+
isDefault(): boolean;
|
|
152
|
+
/**
|
|
153
|
+
* Get blob representation
|
|
154
|
+
*/
|
|
155
|
+
toBlob(): Uint8Array;
|
|
156
|
+
/**
|
|
157
|
+
* Get the size (number of bytes in serialized form)
|
|
158
|
+
*/
|
|
159
|
+
size(): number;
|
|
160
|
+
/**
|
|
161
|
+
* Set the value from another STJson
|
|
162
|
+
*/
|
|
163
|
+
setValue(v: STJson): void;
|
|
164
|
+
/**
|
|
165
|
+
* Get serialized type ID
|
|
166
|
+
*/
|
|
167
|
+
getSType(): SerializedTypeID;
|
|
168
|
+
}
|
|
169
|
+
export { STJson };
|