ripple-binary-codec 1.0.2 → 1.0.3-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 -34
- 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 -1760
- 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 +6 -3
- package/dist/ledger-hashes.js +40 -33
- package/dist/ledger-hashes.js.map +1 -1
- package/dist/quality.d.ts +3 -4
- package/dist/quality.js +20 -19
- 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 -101
- 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 +26 -18
- 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 +5 -6
- package/dist/types/uint-64.js +44 -48
- 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 +5 -5
- package/dist/types/uint.js +17 -27
- 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 -33
- 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 -248
- 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/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 -80
- 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/st-array.js
CHANGED
|
@@ -1,97 +1,86 @@
|
|
|
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.STArray = void 0;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
4
|
+
const enums_1 = require("../enums");
|
|
5
|
+
const serialized_type_1 = require("./serialized-type");
|
|
6
|
+
const st_object_1 = require("./st-object");
|
|
7
|
+
const binary_parser_1 = require("../serdes/binary-parser");
|
|
8
|
+
const utils_1 = require("@xrplf/isomorphic/utils");
|
|
9
|
+
const ARRAY_END_MARKER = Uint8Array.from([0xf1]);
|
|
10
|
+
const ARRAY_END_MARKER_NAME = 'ArrayEndMarker';
|
|
11
|
+
const OBJECT_END_MARKER = Uint8Array.from([0xe1]);
|
|
23
12
|
/**
|
|
24
13
|
* TypeGuard for Array<JsonObject>
|
|
25
14
|
*/
|
|
26
15
|
function isObjects(args) {
|
|
27
|
-
return (Array.isArray(args) &&
|
|
16
|
+
return (Array.isArray(args) &&
|
|
17
|
+
args.every((arg) => typeof arg === 'object' &&
|
|
18
|
+
Object.keys(arg).length === 1 &&
|
|
19
|
+
typeof Object.values(arg)[0] === 'object'));
|
|
28
20
|
}
|
|
29
21
|
/**
|
|
30
22
|
* Class for serializing and deserializing Arrays of Objects
|
|
31
23
|
*/
|
|
32
|
-
|
|
33
|
-
__extends(STArray, _super);
|
|
34
|
-
function STArray() {
|
|
35
|
-
return _super !== null && _super.apply(this, arguments) || this;
|
|
36
|
-
}
|
|
24
|
+
class STArray extends serialized_type_1.SerializedType {
|
|
37
25
|
/**
|
|
38
26
|
* Construct an STArray from a BinaryParser
|
|
39
27
|
*
|
|
40
28
|
* @param parser BinaryParser to parse an STArray from
|
|
41
29
|
* @returns An STArray Object
|
|
42
30
|
*/
|
|
43
|
-
|
|
44
|
-
|
|
31
|
+
static fromParser(parser) {
|
|
32
|
+
const bytes = [];
|
|
45
33
|
while (!parser.end()) {
|
|
46
|
-
|
|
34
|
+
const field = parser.readField();
|
|
47
35
|
if (field.name === ARRAY_END_MARKER_NAME) {
|
|
48
36
|
break;
|
|
49
37
|
}
|
|
50
38
|
bytes.push(field.header, parser.readFieldValue(field).toBytes(), OBJECT_END_MARKER);
|
|
51
39
|
}
|
|
52
40
|
bytes.push(ARRAY_END_MARKER);
|
|
53
|
-
return new STArray(
|
|
54
|
-
}
|
|
41
|
+
return new STArray((0, utils_1.concat)(bytes));
|
|
42
|
+
}
|
|
55
43
|
/**
|
|
56
44
|
* Construct an STArray from an Array of JSON Objects
|
|
57
45
|
*
|
|
58
46
|
* @param value STArray or Array of Objects to parse into an STArray
|
|
47
|
+
* @param definitions optional, types and values to use to encode/decode a transaction
|
|
59
48
|
* @returns An STArray object
|
|
60
49
|
*/
|
|
61
|
-
|
|
50
|
+
static from(value, definitions = enums_1.DEFAULT_DEFINITIONS) {
|
|
62
51
|
if (value instanceof STArray) {
|
|
63
52
|
return value;
|
|
64
53
|
}
|
|
65
54
|
if (isObjects(value)) {
|
|
66
|
-
|
|
67
|
-
value.forEach(
|
|
68
|
-
|
|
55
|
+
const bytes = [];
|
|
56
|
+
value.forEach((obj) => {
|
|
57
|
+
bytes.push(st_object_1.STObject.from(obj, undefined, definitions).toBytes());
|
|
69
58
|
});
|
|
70
|
-
|
|
71
|
-
return new STArray(
|
|
59
|
+
bytes.push(ARRAY_END_MARKER);
|
|
60
|
+
return new STArray((0, utils_1.concat)(bytes));
|
|
72
61
|
}
|
|
73
|
-
throw new Error(
|
|
74
|
-
}
|
|
62
|
+
throw new Error('Cannot construct STArray from value given');
|
|
63
|
+
}
|
|
75
64
|
/**
|
|
76
65
|
* Return the JSON representation of this.bytes
|
|
77
66
|
*
|
|
67
|
+
* @param definitions optional, types and values to use to encode/decode a transaction
|
|
78
68
|
* @returns An Array of JSON objects
|
|
79
69
|
*/
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
70
|
+
toJSON(definitions = enums_1.DEFAULT_DEFINITIONS) {
|
|
71
|
+
const result = [];
|
|
72
|
+
const arrayParser = new binary_parser_1.BinaryParser(this.toString(), definitions);
|
|
83
73
|
while (!arrayParser.end()) {
|
|
84
|
-
|
|
74
|
+
const field = arrayParser.readField();
|
|
85
75
|
if (field.name === ARRAY_END_MARKER_NAME) {
|
|
86
76
|
break;
|
|
87
77
|
}
|
|
88
|
-
|
|
89
|
-
outer[field.name] = st_object_1.STObject.fromParser(arrayParser).toJSON();
|
|
78
|
+
const outer = {};
|
|
79
|
+
outer[field.name] = st_object_1.STObject.fromParser(arrayParser).toJSON(definitions);
|
|
90
80
|
result.push(outer);
|
|
91
81
|
}
|
|
92
82
|
return result;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
}(serialized_type_1.SerializedType));
|
|
83
|
+
}
|
|
84
|
+
}
|
|
96
85
|
exports.STArray = STArray;
|
|
97
86
|
//# sourceMappingURL=st-array.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"st-array.js","sourceRoot":"","sources":["../../src/types/st-array.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"st-array.js","sourceRoot":"","sources":["../../src/types/st-array.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { XrplDefinitionsBase } from '../enums';
|
|
2
|
+
import { SerializedType, JsonObject } from './serialized-type';
|
|
3
|
+
import { BinaryParser } from '../serdes/binary-parser';
|
|
3
4
|
/**
|
|
4
5
|
* Class for Serializing/Deserializing objects
|
|
5
6
|
*/
|
|
@@ -16,14 +17,16 @@ declare class STObject extends SerializedType {
|
|
|
16
17
|
*
|
|
17
18
|
* @param value An object to include
|
|
18
19
|
* @param filter optional, denote which field to include in serialized object
|
|
20
|
+
* @param definitions optional, types and values to use to encode/decode a transaction
|
|
19
21
|
* @returns a STObject object
|
|
20
22
|
*/
|
|
21
|
-
static from<T extends STObject | JsonObject>(value: T, filter?: (...any: any[]) => boolean): STObject;
|
|
23
|
+
static from<T extends STObject | JsonObject>(value: T, filter?: (...any: any[]) => boolean, definitions?: XrplDefinitionsBase): STObject;
|
|
22
24
|
/**
|
|
23
25
|
* Get the JSON interpretation of this.bytes
|
|
24
|
-
*
|
|
26
|
+
* @param definitions rippled definitions used to parse the values of transaction types and such.
|
|
27
|
+
* Can be customized for sidechains and amendments.
|
|
25
28
|
* @returns a JSON object
|
|
26
29
|
*/
|
|
27
|
-
toJSON(): JsonObject;
|
|
30
|
+
toJSON(definitions?: XrplDefinitionsBase): JsonObject;
|
|
28
31
|
}
|
|
29
32
|
export { STObject };
|
package/dist/types/st-object.js
CHANGED
|
@@ -1,31 +1,19 @@
|
|
|
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.STObject = void 0;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
4
|
+
const enums_1 = require("../enums");
|
|
5
|
+
const serialized_type_1 = require("./serialized-type");
|
|
6
|
+
const ripple_address_codec_1 = require("ripple-address-codec");
|
|
7
|
+
const binary_parser_1 = require("../serdes/binary-parser");
|
|
8
|
+
const binary_serializer_1 = require("../serdes/binary-serializer");
|
|
9
|
+
const st_array_1 = require("./st-array");
|
|
10
|
+
const OBJECT_END_MARKER_BYTE = Uint8Array.from([0xe1]);
|
|
11
|
+
const OBJECT_END_MARKER = 'ObjectEndMarker';
|
|
12
|
+
const ST_OBJECT = 'STObject';
|
|
13
|
+
const DESTINATION = 'Destination';
|
|
14
|
+
const ACCOUNT = 'Account';
|
|
15
|
+
const SOURCE_TAG = 'SourceTag';
|
|
16
|
+
const DEST_TAG = 'DestinationTag';
|
|
29
17
|
/**
|
|
30
18
|
* Break down an X-Address into an account and a tag
|
|
31
19
|
*
|
|
@@ -33,17 +21,17 @@ var DEST_TAG = "DestinationTag";
|
|
|
33
21
|
* @param xAddress X-Address corresponding to the field
|
|
34
22
|
*/
|
|
35
23
|
function handleXAddress(field, xAddress) {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
var tagName;
|
|
24
|
+
const decoded = (0, ripple_address_codec_1.xAddressToClassicAddress)(xAddress);
|
|
25
|
+
let tagName;
|
|
39
26
|
if (field === DESTINATION)
|
|
40
27
|
tagName = DEST_TAG;
|
|
41
28
|
else if (field === ACCOUNT)
|
|
42
29
|
tagName = SOURCE_TAG;
|
|
43
30
|
else if (decoded.tag !== false)
|
|
44
|
-
throw new Error(field
|
|
31
|
+
throw new Error(`${field} cannot have an associated tag`);
|
|
45
32
|
return decoded.tag !== false
|
|
46
|
-
?
|
|
33
|
+
? { [field]: decoded.classicAddress, [tagName]: decoded.tag }
|
|
34
|
+
: { [field]: decoded.classicAddress };
|
|
47
35
|
}
|
|
48
36
|
/**
|
|
49
37
|
* Validate that two objects don't both have the same tag fields
|
|
@@ -54,103 +42,114 @@ function handleXAddress(field, xAddress) {
|
|
|
54
42
|
*/
|
|
55
43
|
function checkForDuplicateTags(obj1, obj2) {
|
|
56
44
|
if (!(obj1[SOURCE_TAG] === undefined || obj2[SOURCE_TAG] === undefined))
|
|
57
|
-
throw new Error(
|
|
45
|
+
throw new Error('Cannot have Account X-Address and SourceTag');
|
|
58
46
|
if (!(obj1[DEST_TAG] === undefined || obj2[DEST_TAG] === undefined))
|
|
59
|
-
throw new Error(
|
|
47
|
+
throw new Error('Cannot have Destination X-Address and DestinationTag');
|
|
60
48
|
}
|
|
61
49
|
/**
|
|
62
50
|
* Class for Serializing/Deserializing objects
|
|
63
51
|
*/
|
|
64
|
-
|
|
65
|
-
__extends(STObject, _super);
|
|
66
|
-
function STObject() {
|
|
67
|
-
return _super !== null && _super.apply(this, arguments) || this;
|
|
68
|
-
}
|
|
52
|
+
class STObject extends serialized_type_1.SerializedType {
|
|
69
53
|
/**
|
|
70
54
|
* Construct a STObject from a BinaryParser
|
|
71
55
|
*
|
|
72
56
|
* @param parser BinaryParser to read STObject from
|
|
73
57
|
* @returns A STObject object
|
|
74
58
|
*/
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
59
|
+
static fromParser(parser) {
|
|
60
|
+
const list = new binary_serializer_1.BytesList();
|
|
61
|
+
const bytes = new binary_serializer_1.BinarySerializer(list);
|
|
78
62
|
while (!parser.end()) {
|
|
79
|
-
|
|
63
|
+
const field = parser.readField();
|
|
80
64
|
if (field.name === OBJECT_END_MARKER) {
|
|
81
65
|
break;
|
|
82
66
|
}
|
|
83
|
-
|
|
67
|
+
const associatedValue = parser.readFieldValue(field);
|
|
84
68
|
bytes.writeFieldAndValue(field, associatedValue);
|
|
85
69
|
if (field.type.name === ST_OBJECT) {
|
|
86
70
|
bytes.put(OBJECT_END_MARKER_BYTE);
|
|
87
71
|
}
|
|
88
72
|
}
|
|
89
73
|
return new STObject(list.toBytes());
|
|
90
|
-
}
|
|
74
|
+
}
|
|
91
75
|
/**
|
|
92
76
|
* Construct a STObject from a JSON object
|
|
93
77
|
*
|
|
94
78
|
* @param value An object to include
|
|
95
79
|
* @param filter optional, denote which field to include in serialized object
|
|
80
|
+
* @param definitions optional, types and values to use to encode/decode a transaction
|
|
96
81
|
* @returns a STObject object
|
|
97
82
|
*/
|
|
98
|
-
|
|
83
|
+
static from(value, filter, definitions = enums_1.DEFAULT_DEFINITIONS) {
|
|
99
84
|
if (value instanceof STObject) {
|
|
100
85
|
return value;
|
|
101
86
|
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
handled = handleXAddress(key, val);
|
|
87
|
+
const list = new binary_serializer_1.BytesList();
|
|
88
|
+
const bytes = new binary_serializer_1.BinarySerializer(list);
|
|
89
|
+
let isUnlModify = false;
|
|
90
|
+
const xAddressDecoded = Object.entries(value).reduce((acc, [key, val]) => {
|
|
91
|
+
let handled = undefined;
|
|
92
|
+
if (val && (0, ripple_address_codec_1.isValidXAddress)(val.toString())) {
|
|
93
|
+
handled = handleXAddress(key, val.toString());
|
|
110
94
|
checkForDuplicateTags(handled, value);
|
|
111
95
|
}
|
|
112
|
-
return Object.assign(acc, handled !== null && handled !== void 0 ? handled :
|
|
96
|
+
return Object.assign(acc, handled !== null && handled !== void 0 ? handled : { [key]: val });
|
|
113
97
|
}, {});
|
|
114
|
-
|
|
115
|
-
.map(
|
|
116
|
-
.filter(
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
})
|
|
121
|
-
.sort(function (a, b) {
|
|
98
|
+
let sorted = Object.keys(xAddressDecoded)
|
|
99
|
+
.map((f) => definitions.field[f])
|
|
100
|
+
.filter((f) => f !== undefined &&
|
|
101
|
+
xAddressDecoded[f.name] !== undefined &&
|
|
102
|
+
f.isSerialized)
|
|
103
|
+
.sort((a, b) => {
|
|
122
104
|
return a.ordinal - b.ordinal;
|
|
123
105
|
});
|
|
124
106
|
if (filter !== undefined) {
|
|
125
107
|
sorted = sorted.filter(filter);
|
|
126
108
|
}
|
|
127
|
-
sorted.forEach(
|
|
128
|
-
|
|
129
|
-
|
|
109
|
+
sorted.forEach((field) => {
|
|
110
|
+
const associatedValue = field.type.name === ST_OBJECT
|
|
111
|
+
? this.from(xAddressDecoded[field.name], undefined, definitions)
|
|
112
|
+
: field.type.name === 'STArray'
|
|
113
|
+
? st_array_1.STArray.from(xAddressDecoded[field.name], definitions)
|
|
114
|
+
: field.associatedType.from(xAddressDecoded[field.name]);
|
|
115
|
+
if (associatedValue == undefined) {
|
|
116
|
+
throw new TypeError(`Unable to interpret "${field.name}: ${xAddressDecoded[field.name]}".`);
|
|
117
|
+
}
|
|
118
|
+
if (associatedValue.name === 'UNLModify') {
|
|
119
|
+
// triggered when the TransactionType field has a value of 'UNLModify'
|
|
120
|
+
isUnlModify = true;
|
|
121
|
+
}
|
|
122
|
+
// true when in the UNLModify pseudotransaction (after the transaction type has been processed) and working with the
|
|
123
|
+
// Account field
|
|
124
|
+
// The Account field must not be a part of the UNLModify pseudotransaction encoding, due to a bug in rippled
|
|
125
|
+
const isUnlModifyWorkaround = field.name == 'Account' && isUnlModify;
|
|
126
|
+
bytes.writeFieldAndValue(field, associatedValue, isUnlModifyWorkaround);
|
|
130
127
|
if (field.type.name === ST_OBJECT) {
|
|
131
128
|
bytes.put(OBJECT_END_MARKER_BYTE);
|
|
132
129
|
}
|
|
133
130
|
});
|
|
134
131
|
return new STObject(list.toBytes());
|
|
135
|
-
}
|
|
132
|
+
}
|
|
136
133
|
/**
|
|
137
134
|
* Get the JSON interpretation of this.bytes
|
|
138
|
-
*
|
|
135
|
+
* @param definitions rippled definitions used to parse the values of transaction types and such.
|
|
136
|
+
* Can be customized for sidechains and amendments.
|
|
139
137
|
* @returns a JSON object
|
|
140
138
|
*/
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
139
|
+
toJSON(definitions) {
|
|
140
|
+
const objectParser = new binary_parser_1.BinaryParser(this.toString(), definitions);
|
|
141
|
+
const accumulator = {};
|
|
144
142
|
while (!objectParser.end()) {
|
|
145
|
-
|
|
143
|
+
const field = objectParser.readField();
|
|
146
144
|
if (field.name === OBJECT_END_MARKER) {
|
|
147
145
|
break;
|
|
148
146
|
}
|
|
149
|
-
accumulator[field.name] = objectParser
|
|
147
|
+
accumulator[field.name] = objectParser
|
|
148
|
+
.readFieldValue(field)
|
|
149
|
+
.toJSON(definitions);
|
|
150
150
|
}
|
|
151
151
|
return accumulator;
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
}(serialized_type_1.SerializedType));
|
|
152
|
+
}
|
|
153
|
+
}
|
|
155
154
|
exports.STObject = STObject;
|
|
156
155
|
//# sourceMappingURL=st-object.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"st-object.js","sourceRoot":"","sources":["../../src/types/st-object.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"st-object.js","sourceRoot":"","sources":["../../src/types/st-object.ts"],"names":[],"mappings":"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"}
|
package/dist/types/uint-16.d.ts
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
import { BinaryParser } from "../serdes/binary-parser";
|
|
1
|
+
import { UInt } from './uint';
|
|
2
|
+
import { BinaryParser } from '../serdes/binary-parser';
|
|
4
3
|
/**
|
|
5
4
|
* Derived UInt class for serializing/deserializing 16 bit UInt
|
|
6
5
|
*/
|
|
7
6
|
declare class UInt16 extends UInt {
|
|
8
7
|
protected static readonly width: number;
|
|
9
8
|
static readonly defaultUInt16: UInt16;
|
|
10
|
-
constructor(bytes:
|
|
9
|
+
constructor(bytes: Uint8Array);
|
|
11
10
|
static fromParser(parser: BinaryParser): UInt;
|
|
12
11
|
/**
|
|
13
12
|
* Construct a UInt16 object from a number
|
package/dist/types/uint-16.js
CHANGED
|
@@ -1,58 +1,45 @@
|
|
|
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.UInt16 = void 0;
|
|
17
|
-
|
|
4
|
+
const uint_1 = require("./uint");
|
|
5
|
+
const utils_1 = require("../utils");
|
|
18
6
|
/**
|
|
19
7
|
* Derived UInt class for serializing/deserializing 16 bit UInt
|
|
20
8
|
*/
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
return _super.call(this, bytes !== null && bytes !== void 0 ? bytes : UInt16.defaultUInt16.bytes) || this;
|
|
9
|
+
class UInt16 extends uint_1.UInt {
|
|
10
|
+
constructor(bytes) {
|
|
11
|
+
super(bytes !== null && bytes !== void 0 ? bytes : UInt16.defaultUInt16.bytes);
|
|
25
12
|
}
|
|
26
|
-
|
|
13
|
+
static fromParser(parser) {
|
|
27
14
|
return new UInt16(parser.read(UInt16.width));
|
|
28
|
-
}
|
|
15
|
+
}
|
|
29
16
|
/**
|
|
30
17
|
* Construct a UInt16 object from a number
|
|
31
18
|
*
|
|
32
19
|
* @param val UInt16 object or number
|
|
33
20
|
*/
|
|
34
|
-
|
|
21
|
+
static from(val) {
|
|
35
22
|
if (val instanceof UInt16) {
|
|
36
23
|
return val;
|
|
37
24
|
}
|
|
38
|
-
if (typeof val ===
|
|
39
|
-
|
|
40
|
-
buf.
|
|
25
|
+
if (typeof val === 'number') {
|
|
26
|
+
UInt16.checkUintRange(val, 0, 0xffff);
|
|
27
|
+
const buf = new Uint8Array(UInt16.width);
|
|
28
|
+
(0, utils_1.writeUInt16BE)(buf, val, 0);
|
|
41
29
|
return new UInt16(buf);
|
|
42
30
|
}
|
|
43
|
-
throw new Error(
|
|
44
|
-
}
|
|
31
|
+
throw new Error('Can not construct UInt16 with given value');
|
|
32
|
+
}
|
|
45
33
|
/**
|
|
46
34
|
* get the value of a UInt16 object
|
|
47
35
|
*
|
|
48
36
|
* @returns the number represented by this.bytes
|
|
49
37
|
*/
|
|
50
|
-
|
|
51
|
-
return this.bytes
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
UInt16.defaultUInt16 = new UInt16(Buffer.alloc(UInt16.width));
|
|
55
|
-
return UInt16;
|
|
56
|
-
}(uint_1.UInt));
|
|
38
|
+
valueOf() {
|
|
39
|
+
return parseInt((0, utils_1.readUInt16BE)(this.bytes, 0));
|
|
40
|
+
}
|
|
41
|
+
}
|
|
57
42
|
exports.UInt16 = UInt16;
|
|
43
|
+
UInt16.width = 16 / 8; // 2
|
|
44
|
+
UInt16.defaultUInt16 = new UInt16(new Uint8Array(UInt16.width));
|
|
58
45
|
//# sourceMappingURL=uint-16.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uint-16.js","sourceRoot":"","sources":["../../src/types/uint-16.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"uint-16.js","sourceRoot":"","sources":["../../src/types/uint-16.ts"],"names":[],"mappings":";;;AAAA,iCAA6B;AAE7B,oCAAsD;AAEtD;;GAEG;AACH,MAAM,MAAO,SAAQ,WAAI;IAMvB,YAAY,KAAiB;QAC3B,KAAK,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;IAC5C,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,MAAoB;QACpC,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IAC9C,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,IAAI,CAA4B,GAAM;QAC3C,IAAI,GAAG,YAAY,MAAM,EAAE;YACzB,OAAO,GAAG,CAAA;SACX;QAED,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YAC3B,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC,CAAA;YAErC,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACxC,IAAA,qBAAa,EAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;YAC1B,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAA;SACvB;QAED,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;IAC9D,CAAC;IAED;;;;OAIG;IACH,OAAO;QACL,OAAO,QAAQ,CAAC,IAAA,oBAAY,EAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAA;IAC9C,CAAC;;AAGM,wBAAM;AA5Ca,YAAK,GAAW,EAAE,GAAG,CAAC,CAAA,CAAC,IAAI;AACrC,oBAAa,GAAW,IAAI,MAAM,CAChD,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAC7B,CAAA"}
|
package/dist/types/uint-32.d.ts
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
import { BinaryParser } from "../serdes/binary-parser";
|
|
1
|
+
import { UInt } from './uint';
|
|
2
|
+
import { BinaryParser } from '../serdes/binary-parser';
|
|
4
3
|
/**
|
|
5
4
|
* Derived UInt class for serializing/deserializing 32 bit UInt
|
|
6
5
|
*/
|
|
7
6
|
declare class UInt32 extends UInt {
|
|
8
7
|
protected static readonly width: number;
|
|
9
8
|
static readonly defaultUInt32: UInt32;
|
|
10
|
-
constructor(bytes:
|
|
9
|
+
constructor(bytes: Uint8Array);
|
|
11
10
|
static fromParser(parser: BinaryParser): UInt;
|
|
12
11
|
/**
|
|
13
12
|
* Construct a UInt32 object from a number
|