@transia/ripple-binary-codec 1.4.6-alpha.9 → 2.5.1-quantum.0
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 +1 -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 +1535 -919
- 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 +1537 -921
- 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 +6 -7
- package/dist/serdes/binary-serializer.js +12 -35
- 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 +63 -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 +3385 -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 +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 +76 -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 +66 -0
- package/dist/src/types/index.js.map +1 -0
- package/dist/src/types/issue.d.ts +48 -0
- package/dist/src/types/issue.js +104 -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-number.d.ts +54 -0
- package/dist/src/types/st-number.js +208 -0
- package/dist/src/types/st-number.js.map +1 -0
- package/dist/src/types/st-object.d.ts +32 -0
- package/dist/src/types/st-object.js +173 -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 +38 -0
- package/dist/src/types/uint-64.js +107 -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 +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 +1 -2
- package/dist/types/account-id.js +4 -6
- package/dist/types/account-id.js.map +1 -1
- package/dist/types/amount.d.ts +31 -8
- package/dist/types/amount.js +125 -43
- package/dist/types/amount.js.map +1 -1
- package/dist/types/blob.d.ts +1 -2
- package/dist/types/blob.js +5 -2
- package/dist/types/blob.js.map +1 -1
- package/dist/types/currency.d.ts +1 -2
- package/dist/types/currency.js +13 -13
- package/dist/types/currency.js.map +1 -1
- package/dist/types/hash-128.d.ts +1 -2
- package/dist/types/hash-128.js +3 -3
- package/dist/types/hash-128.js.map +1 -1
- package/dist/types/hash-160.d.ts +1 -2
- package/dist/types/hash-160.js +1 -2
- 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 +1 -2
- package/dist/types/hash-256.js +1 -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 +2 -1
- package/dist/types/index.js +11 -2
- package/dist/types/index.js.map +1 -1
- package/dist/types/issue.d.ts +48 -0
- package/dist/types/issue.js +104 -0
- package/dist/types/issue.js.map +1 -0
- package/dist/types/path-set.js +12 -12
- package/dist/types/path-set.js.map +1 -1
- package/dist/types/serialized-type.d.ts +23 -16
- package/dist/types/serialized-type.js +15 -7
- package/dist/types/serialized-type.js.map +1 -1
- package/dist/types/st-array.d.ts +5 -2
- package/dist/types/st-array.js +17 -11
- package/dist/types/st-array.js.map +1 -1
- package/dist/types/st-number.d.ts +54 -0
- package/dist/types/st-number.js +208 -0
- package/dist/types/st-number.js.map +1 -0
- package/dist/types/st-object.js +32 -8
- package/dist/types/st-object.js.map +1 -1
- package/dist/types/uint-16.d.ts +1 -2
- package/dist/types/uint-16.js +6 -5
- package/dist/types/uint-16.js.map +1 -1
- package/dist/types/uint-32.d.ts +1 -2
- package/dist/types/uint-32.js +7 -6
- package/dist/types/uint-32.js.map +1 -1
- package/dist/types/uint-64.d.ts +6 -7
- package/dist/types/uint-64.js +44 -24
- package/dist/types/uint-64.js.map +1 -1
- package/dist/types/uint-8.d.ts +1 -2
- package/dist/types/uint-8.js +7 -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 +1 -2
- package/dist/types/vector-256.js +2 -4
- 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 +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 +74 -0
- package/src/enums/constants.ts +5 -0
- package/src/enums/definitions.json +3390 -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 +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 +86 -0
- package/src/types/index.ts +68 -0
- package/src/types/issue.ts +136 -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-number.ts +233 -0
- package/src/types/st-object.ts +215 -0
- package/src/types/uint-16.ts +53 -0
- package/src/types/uint-32.ts +59 -0
- package/src/types/uint-64.ts +135 -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 +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
package/dist/quality.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { Buffer } from 'buffer/';
|
|
1
|
+
import BigNumber from 'bignumber.js';
|
|
3
2
|
/**
|
|
4
3
|
* class for encoding and decoding quality
|
|
5
4
|
*/
|
|
@@ -10,13 +9,13 @@ declare class quality {
|
|
|
10
9
|
* @param arg string representation of an amount
|
|
11
10
|
* @returns Serialized quality
|
|
12
11
|
*/
|
|
13
|
-
static encode(quality: string):
|
|
12
|
+
static encode(quality: string): Uint8Array;
|
|
14
13
|
/**
|
|
15
14
|
* Decode quality amount
|
|
16
15
|
*
|
|
17
16
|
* @param arg hex-string denoting serialized quality
|
|
18
17
|
* @returns deserialized quality
|
|
19
18
|
*/
|
|
20
|
-
static decode(quality: string):
|
|
19
|
+
static decode(quality: string): BigNumber;
|
|
21
20
|
}
|
|
22
21
|
export { quality };
|
package/dist/quality.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.quality = void 0;
|
|
4
7
|
const types_1 = require("./types");
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const buffer_1 = require("buffer/");
|
|
8
|
+
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
9
|
+
const utils_1 = require("@transia/isomorphic/utils");
|
|
8
10
|
/**
|
|
9
11
|
* class for encoding and decoding quality
|
|
10
12
|
*/
|
|
@@ -16,10 +18,10 @@ class quality {
|
|
|
16
18
|
* @returns Serialized quality
|
|
17
19
|
*/
|
|
18
20
|
static encode(quality) {
|
|
19
|
-
const decimal =
|
|
20
|
-
const exponent = decimal.e - 15;
|
|
21
|
+
const decimal = (0, bignumber_js_1.default)(quality);
|
|
22
|
+
const exponent = ((decimal === null || decimal === void 0 ? void 0 : decimal.e) || 0) - 15;
|
|
21
23
|
const qualityString = decimal.times(`1e${-exponent}`).abs().toString();
|
|
22
|
-
const bytes = types_1.coreTypes.UInt64.from(
|
|
24
|
+
const bytes = types_1.coreTypes.UInt64.from(BigInt(qualityString)).toBytes();
|
|
23
25
|
bytes[0] = exponent + 100;
|
|
24
26
|
return bytes;
|
|
25
27
|
}
|
|
@@ -30,9 +32,9 @@ class quality {
|
|
|
30
32
|
* @returns deserialized quality
|
|
31
33
|
*/
|
|
32
34
|
static decode(quality) {
|
|
33
|
-
const bytes =
|
|
35
|
+
const bytes = (0, utils_1.hexToBytes)(quality).slice(-8);
|
|
34
36
|
const exponent = bytes[0] - 100;
|
|
35
|
-
const mantissa = new
|
|
37
|
+
const mantissa = new bignumber_js_1.default(`0x${(0, utils_1.bytesToHex)(bytes.slice(1))}`);
|
|
36
38
|
return mantissa.times(`1e${exponent}`);
|
|
37
39
|
}
|
|
38
40
|
}
|
package/dist/quality.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quality.js","sourceRoot":"","sources":["../src/quality.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"quality.js","sourceRoot":"","sources":["../src/quality.ts"],"names":[],"mappings":";;;;;;AAAA,mCAAmC;AACnC,gEAAoC;AACpC,qDAAkE;AAElE;;GAEG;AACH,MAAM,OAAO;IACX;;;;;OAKG;IACH,MAAM,CAAC,MAAM,CAAC,OAAe;QAC3B,MAAM,OAAO,GAAG,IAAA,sBAAS,EAAC,OAAO,CAAC,CAAA;QAClC,MAAM,QAAQ,GAAG,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,CAAC,KAAI,CAAC,CAAC,GAAG,EAAE,CAAA;QACvC,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAA;QACtE,MAAM,KAAK,GAAG,iBAAS,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,EAAE,CAAA;QACpE,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,GAAG,CAAA;QACzB,OAAO,KAAK,CAAA;IACd,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,MAAM,CAAC,OAAe;QAC3B,MAAM,KAAK,GAAG,IAAA,kBAAU,EAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QAC3C,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAA;QAC/B,MAAM,QAAQ,GAAG,IAAI,sBAAS,CAAC,KAAK,IAAA,kBAAU,EAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;QACjE,OAAO,QAAQ,CAAC,KAAK,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAA;IACxC,CAAC;CACF;AAEQ,0BAAO"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { XrplDefinitionsBase, FieldInstance } from '../enums';
|
|
2
2
|
import { type SerializedType } from '../types/serialized-type';
|
|
3
|
-
import { Buffer } from 'buffer/';
|
|
4
3
|
/**
|
|
5
4
|
* BinaryParser is used to compute fields and values from a HexString
|
|
6
5
|
*/
|
|
@@ -33,7 +32,7 @@ declare class BinaryParser {
|
|
|
33
32
|
* @param n The number of bytes to read
|
|
34
33
|
* @return The bytes
|
|
35
34
|
*/
|
|
36
|
-
read(n: number):
|
|
35
|
+
read(n: number): Uint8Array;
|
|
37
36
|
/**
|
|
38
37
|
* Read an integer of given size
|
|
39
38
|
*
|
|
@@ -51,7 +50,7 @@ declare class BinaryParser {
|
|
|
51
50
|
*
|
|
52
51
|
* @return The variable length bytes
|
|
53
52
|
*/
|
|
54
|
-
readVariableLength():
|
|
53
|
+
readVariableLength(): Uint8Array;
|
|
55
54
|
/**
|
|
56
55
|
* Reads the length of the variable length encoded bytes
|
|
57
56
|
*
|
|
@@ -1,32 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
3
|
exports.BinaryParser = void 0;
|
|
27
|
-
const assert = __importStar(require("assert"));
|
|
28
4
|
const enums_1 = require("../enums");
|
|
29
|
-
const
|
|
5
|
+
const utils_1 = require("@transia/isomorphic/utils");
|
|
30
6
|
/**
|
|
31
7
|
* BinaryParser is used to compute fields and values from a HexString
|
|
32
8
|
*/
|
|
@@ -39,7 +15,7 @@ class BinaryParser {
|
|
|
39
15
|
* Can be customized for sidechains and amendments.
|
|
40
16
|
*/
|
|
41
17
|
constructor(hexBytes, definitions = enums_1.DEFAULT_DEFINITIONS) {
|
|
42
|
-
this.bytes =
|
|
18
|
+
this.bytes = (0, utils_1.hexToBytes)(hexBytes);
|
|
43
19
|
this.definitions = definitions;
|
|
44
20
|
}
|
|
45
21
|
/**
|
|
@@ -48,7 +24,9 @@ class BinaryParser {
|
|
|
48
24
|
* @returns The first byte of the BinaryParser
|
|
49
25
|
*/
|
|
50
26
|
peek() {
|
|
51
|
-
|
|
27
|
+
if (this.bytes.byteLength === 0) {
|
|
28
|
+
throw new Error();
|
|
29
|
+
}
|
|
52
30
|
return this.bytes[0];
|
|
53
31
|
}
|
|
54
32
|
/**
|
|
@@ -57,7 +35,9 @@ class BinaryParser {
|
|
|
57
35
|
* @param n the number of bytes to skip
|
|
58
36
|
*/
|
|
59
37
|
skip(n) {
|
|
60
|
-
|
|
38
|
+
if (n > this.bytes.byteLength) {
|
|
39
|
+
throw new Error();
|
|
40
|
+
}
|
|
61
41
|
this.bytes = this.bytes.slice(n);
|
|
62
42
|
}
|
|
63
43
|
/**
|
|
@@ -67,7 +47,9 @@ class BinaryParser {
|
|
|
67
47
|
* @return The bytes
|
|
68
48
|
*/
|
|
69
49
|
read(n) {
|
|
70
|
-
|
|
50
|
+
if (n > this.bytes.byteLength) {
|
|
51
|
+
throw new Error();
|
|
52
|
+
}
|
|
71
53
|
const slice = this.bytes.slice(0, n);
|
|
72
54
|
this.skip(n);
|
|
73
55
|
return slice;
|
|
@@ -79,7 +61,9 @@ class BinaryParser {
|
|
|
79
61
|
* @return The number represented by those bytes
|
|
80
62
|
*/
|
|
81
63
|
readUIntN(n) {
|
|
82
|
-
|
|
64
|
+
if (0 >= n || n > 4) {
|
|
65
|
+
throw new Error('invalid n');
|
|
66
|
+
}
|
|
83
67
|
return this.read(n).reduce((a, b) => (a << 8) | b) >>> 0;
|
|
84
68
|
}
|
|
85
69
|
readUInt8() {
|
|
@@ -139,13 +123,13 @@ class BinaryParser {
|
|
|
139
123
|
if (type === 0) {
|
|
140
124
|
type = this.readUInt8();
|
|
141
125
|
if (type === 0 || type < 16) {
|
|
142
|
-
throw new Error(
|
|
126
|
+
throw new Error(`Cannot read FieldOrdinal, type_code ${type} out of range`);
|
|
143
127
|
}
|
|
144
128
|
}
|
|
145
129
|
if (nth === 0) {
|
|
146
130
|
nth = this.readUInt8();
|
|
147
131
|
if (nth === 0 || nth < 16) {
|
|
148
|
-
throw new Error(
|
|
132
|
+
throw new Error(`Cannot read FieldOrdinal, field_code ${nth} out of range`);
|
|
149
133
|
}
|
|
150
134
|
}
|
|
151
135
|
return (type << 16) | nth;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binary-parser.js","sourceRoot":"","sources":["../../src/serdes/binary-parser.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"binary-parser.js","sourceRoot":"","sources":["../../src/serdes/binary-parser.ts"],"names":[],"mappings":";;;AAAA,oCAIiB;AAEjB,qDAAsD;AAEtD;;GAEG;AACH,MAAM,YAAY;IAIhB;;;;;;OAMG;IACH,YACE,QAAgB,EAChB,cAAmC,2BAAmB;QAEtD,IAAI,CAAC,KAAK,GAAG,IAAA,kBAAU,EAAC,QAAQ,CAAC,CAAA;QACjC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;IAChC,CAAC;IAED;;;;OAIG;IACH,IAAI;QACF,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,EAAE;YAC/B,MAAM,IAAI,KAAK,EAAE,CAAA;SAClB;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACtB,CAAC;IAED;;;;OAIG;IACH,IAAI,CAAC,CAAS;QACZ,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;YAC7B,MAAM,IAAI,KAAK,EAAE,CAAA;SAClB;QACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAClC,CAAC;IAED;;;;;OAKG;IACH,IAAI,CAAC,CAAS;QACZ,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;YAC7B,MAAM,IAAI,KAAK,EAAE,CAAA;SAClB;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QACpC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACZ,OAAO,KAAK,CAAA;IACd,CAAC;IAED;;;;;OAKG;IACH,SAAS,CAAC,CAAS;QACjB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACnB,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAA;SAC7B;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAA;IAC1D,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;IAC1B,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;IAC1B,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;IAC1B,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAA;IAC9B,CAAC;IAED,GAAG,CAAC,SAAkB;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAA;QACpC,OAAO,MAAM,KAAK,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,MAAM,IAAI,SAAS,CAAC,CAAA;IACzE,CAAC;IAED;;;;OAIG;IACH,kBAAkB;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAAA;IACnD,CAAC;IAED;;;;OAIG;IACH,wBAAwB;QACtB,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;QAC3B,IAAI,EAAE,IAAI,GAAG,EAAE;YACb,OAAO,EAAE,CAAA;SACV;aAAM,IAAI,EAAE,IAAI,GAAG,EAAE;YACpB,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;YAC3B,OAAO,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAA;SACnC;aAAM,IAAI,EAAE,IAAI,GAAG,EAAE;YACpB,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;YAC3B,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;YAC3B,OAAO,KAAK,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,KAAK,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CAAA;SAClD;QACD,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;IACtD,CAAC;IAED;;;;OAIG;IACH,gBAAgB;QACd,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;QAC3B,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,CAAA;QACnB,IAAI,KAAK,CAAC,CAAA;QAEV,IAAI,IAAI,KAAK,CAAC,EAAE;YACd,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;YACvB,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,GAAG,EAAE,EAAE;gBAC3B,MAAM,IAAI,KAAK,CACb,uCAAuC,IAAI,eAAe,CAC3D,CAAA;aACF;SACF;QAED,IAAI,GAAG,KAAK,CAAC,EAAE;YACb,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;YACtB,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,GAAG,EAAE,EAAE;gBACzB,MAAM,IAAI,KAAK,CACb,wCAAwC,GAAG,eAAe,CAC3D,CAAA;aACF;SACF;QAED,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,GAAG,CAAA;IAC3B,CAAC;IAED;;;;OAIG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC9E,CAAC;IAED;;;;;OAKG;IACH,QAAQ,CAAC,IAA2B;QAClC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IAC9B,CAAC;IAED;;;;;OAKG;IACH,YAAY,CAAC,KAAoB;QAC/B,OAAO,KAAK,CAAC,cAAc,CAAA;IAC7B,CAAC;IAED;;;;;OAKG;IACH,cAAc,CAAC,KAAoB;QACjC,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;QACrC,IAAI,CAAC,IAAI,EAAE;YACT,MAAM,IAAI,KAAK,CAAC,iBAAiB,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAA;SACpE;QACD,MAAM,QAAQ,GAAG,KAAK,CAAC,uBAAuB;YAC5C,CAAC,CAAC,IAAI,CAAC,wBAAwB,EAAE;YACjC,CAAC,CAAC,SAAS,CAAA;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;QAC7C,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,MAAM,IAAI,KAAK,CACb,mBAAmB,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,iBAAiB,CACnE,CAAA;SACF;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED;;;;OAIG;IACH,iBAAiB;QACf,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;QAC9B,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAA;IAC5C,CAAC;CACF;AAEQ,oCAAY"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { FieldInstance } from '../enums';
|
|
2
2
|
import { type SerializedType } from '../types/serialized-type';
|
|
3
|
-
import { Buffer } from 'buffer/';
|
|
4
3
|
/**
|
|
5
|
-
* Bytes list is a collection of
|
|
4
|
+
* Bytes list is a collection of Uint8Array objects
|
|
6
5
|
*/
|
|
7
6
|
declare class BytesList {
|
|
8
7
|
private bytesArray;
|
|
@@ -15,21 +14,21 @@ declare class BytesList {
|
|
|
15
14
|
/**
|
|
16
15
|
* Put bytes in the BytesList
|
|
17
16
|
*
|
|
18
|
-
* @param bytesArg A
|
|
17
|
+
* @param bytesArg A Uint8Array
|
|
19
18
|
* @return this BytesList
|
|
20
19
|
*/
|
|
21
|
-
put(bytesArg:
|
|
20
|
+
put(bytesArg: Uint8Array): BytesList;
|
|
22
21
|
/**
|
|
23
22
|
* Write this BytesList to the back of another bytes list
|
|
24
23
|
*
|
|
25
24
|
* @param list The BytesList to write to
|
|
26
25
|
*/
|
|
27
26
|
toBytesSink(list: BytesList): void;
|
|
28
|
-
toBytes():
|
|
27
|
+
toBytes(): Uint8Array;
|
|
29
28
|
toHex(): string;
|
|
30
29
|
}
|
|
31
30
|
/**
|
|
32
|
-
* BinarySerializer is used to write fields and values to
|
|
31
|
+
* BinarySerializer is used to write fields and values to Uint8Arrays
|
|
33
32
|
*/
|
|
34
33
|
declare class BinarySerializer {
|
|
35
34
|
private sink;
|
|
@@ -45,7 +44,7 @@ declare class BinarySerializer {
|
|
|
45
44
|
*
|
|
46
45
|
* @param bytes the bytes to write
|
|
47
46
|
*/
|
|
48
|
-
put(bytes:
|
|
47
|
+
put(bytes: Uint8Array): void;
|
|
49
48
|
/**
|
|
50
49
|
* Write a value of a given type to this BinarySerializer
|
|
51
50
|
*
|
|
@@ -1,33 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
3
|
exports.BinarySerializer = exports.BytesList = void 0;
|
|
27
|
-
const
|
|
28
|
-
const buffer_1 = require("buffer/");
|
|
4
|
+
const utils_1 = require("@transia/isomorphic/utils");
|
|
29
5
|
/**
|
|
30
|
-
* Bytes list is a collection of
|
|
6
|
+
* Bytes list is a collection of Uint8Array objects
|
|
31
7
|
*/
|
|
32
8
|
class BytesList {
|
|
33
9
|
constructor() {
|
|
@@ -39,16 +15,16 @@ class BytesList {
|
|
|
39
15
|
* @return the number of bytes
|
|
40
16
|
*/
|
|
41
17
|
getLength() {
|
|
42
|
-
return
|
|
18
|
+
return (0, utils_1.concat)(this.bytesArray).byteLength;
|
|
43
19
|
}
|
|
44
20
|
/**
|
|
45
21
|
* Put bytes in the BytesList
|
|
46
22
|
*
|
|
47
|
-
* @param bytesArg A
|
|
23
|
+
* @param bytesArg A Uint8Array
|
|
48
24
|
* @return this BytesList
|
|
49
25
|
*/
|
|
50
26
|
put(bytesArg) {
|
|
51
|
-
const bytes =
|
|
27
|
+
const bytes = Uint8Array.from(bytesArg); // Temporary, to catch instances of Uint8Array being passed in
|
|
52
28
|
this.bytesArray.push(bytes);
|
|
53
29
|
return this;
|
|
54
30
|
}
|
|
@@ -61,15 +37,15 @@ class BytesList {
|
|
|
61
37
|
list.put(this.toBytes());
|
|
62
38
|
}
|
|
63
39
|
toBytes() {
|
|
64
|
-
return
|
|
40
|
+
return (0, utils_1.concat)(this.bytesArray);
|
|
65
41
|
}
|
|
66
42
|
toHex() {
|
|
67
|
-
return this.toBytes()
|
|
43
|
+
return (0, utils_1.bytesToHex)(this.toBytes());
|
|
68
44
|
}
|
|
69
45
|
}
|
|
70
46
|
exports.BytesList = BytesList;
|
|
71
47
|
/**
|
|
72
|
-
* BinarySerializer is used to write fields and values to
|
|
48
|
+
* BinarySerializer is used to write fields and values to Uint8Arrays
|
|
73
49
|
*/
|
|
74
50
|
class BinarySerializer {
|
|
75
51
|
constructor(sink) {
|
|
@@ -115,7 +91,7 @@ class BinarySerializer {
|
|
|
115
91
|
* @param length the length of the bytes
|
|
116
92
|
*/
|
|
117
93
|
encodeVariableLength(length) {
|
|
118
|
-
const lenBytes =
|
|
94
|
+
const lenBytes = new Uint8Array(3);
|
|
119
95
|
if (length <= 192) {
|
|
120
96
|
lenBytes[0] = length;
|
|
121
97
|
return lenBytes.slice(0, 1);
|
|
@@ -143,8 +119,9 @@ class BinarySerializer {
|
|
|
143
119
|
*/
|
|
144
120
|
writeFieldAndValue(field, value, isUnlModifyWorkaround = false) {
|
|
145
121
|
const associatedValue = field.associatedType.from(value);
|
|
146
|
-
|
|
147
|
-
|
|
122
|
+
if (associatedValue.toBytesSink === undefined || field.name === undefined) {
|
|
123
|
+
throw new Error();
|
|
124
|
+
}
|
|
148
125
|
this.sink.put(field.header);
|
|
149
126
|
if (field.isVariableLengthEncoded) {
|
|
150
127
|
this.writeLengthEncoded(associatedValue, isUnlModifyWorkaround);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binary-serializer.js","sourceRoot":"","sources":["../../src/serdes/binary-serializer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"binary-serializer.js","sourceRoot":"","sources":["../../src/serdes/binary-serializer.ts"],"names":[],"mappings":"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"}
|
package/dist/shamap.d.ts
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { Hash256 } from './types/hash-256';
|
|
2
2
|
import { BytesList } from './serdes/binary-serializer';
|
|
3
|
-
import { Buffer } from 'buffer/';
|
|
4
3
|
/**
|
|
5
4
|
* Abstract class describing a SHAMapNode
|
|
6
5
|
*/
|
|
7
6
|
declare abstract class ShaMapNode {
|
|
8
|
-
abstract hashPrefix():
|
|
7
|
+
abstract hashPrefix(): Uint8Array;
|
|
9
8
|
abstract isLeaf(): boolean;
|
|
10
9
|
abstract isInner(): boolean;
|
|
11
10
|
abstract toBytesSink(list: BytesList): void;
|
|
@@ -29,9 +28,9 @@ declare class ShaMapLeaf extends ShaMapNode {
|
|
|
29
28
|
/**
|
|
30
29
|
* Get the prefix of the this.item
|
|
31
30
|
*
|
|
32
|
-
* @returns The hash prefix, unless this.item is undefined, then it returns an empty
|
|
31
|
+
* @returns The hash prefix, unless this.item is undefined, then it returns an empty Uint8Array
|
|
33
32
|
*/
|
|
34
|
-
hashPrefix():
|
|
33
|
+
hashPrefix(): Uint8Array;
|
|
35
34
|
/**
|
|
36
35
|
* Hash the bytes representation of this
|
|
37
36
|
*
|
|
@@ -65,7 +64,7 @@ declare class ShaMapInner extends ShaMapNode {
|
|
|
65
64
|
*
|
|
66
65
|
* @returns hash prefix describing an inner node
|
|
67
66
|
*/
|
|
68
|
-
hashPrefix():
|
|
67
|
+
hashPrefix(): Uint8Array;
|
|
69
68
|
/**
|
|
70
69
|
* Set a branch of this node to be another node
|
|
71
70
|
*
|
package/dist/shamap.js
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ShaMapLeaf = exports.ShaMapNode = exports.ShaMap = void 0;
|
|
4
|
-
const assert_1 = require("assert");
|
|
5
4
|
const types_1 = require("./types");
|
|
6
5
|
const hash_prefixes_1 = require("./hash-prefixes");
|
|
7
6
|
const hashes_1 = require("./hashes");
|
|
8
|
-
const buffer_1 = require("buffer/");
|
|
9
7
|
/**
|
|
10
8
|
* Abstract class describing a SHAMapNode
|
|
11
9
|
*/
|
|
@@ -36,10 +34,10 @@ class ShaMapLeaf extends ShaMapNode {
|
|
|
36
34
|
/**
|
|
37
35
|
* Get the prefix of the this.item
|
|
38
36
|
*
|
|
39
|
-
* @returns The hash prefix, unless this.item is undefined, then it returns an empty
|
|
37
|
+
* @returns The hash prefix, unless this.item is undefined, then it returns an empty Uint8Array
|
|
40
38
|
*/
|
|
41
39
|
hashPrefix() {
|
|
42
|
-
return this.item === undefined ?
|
|
40
|
+
return this.item === undefined ? new Uint8Array(0) : this.item.hashPrefix();
|
|
43
41
|
}
|
|
44
42
|
/**
|
|
45
43
|
* Hash the bytes representation of this
|
|
@@ -144,7 +142,9 @@ class ShaMapInner extends ShaMapNode {
|
|
|
144
142
|
* @param leaf Leaf node to insert when branch doesn't exist
|
|
145
143
|
*/
|
|
146
144
|
addItem(index, item, leaf) {
|
|
147
|
-
|
|
145
|
+
if (index === undefined) {
|
|
146
|
+
throw new Error();
|
|
147
|
+
}
|
|
148
148
|
if (index !== undefined) {
|
|
149
149
|
const nibble = index.nibblet(this.depth);
|
|
150
150
|
const existing = this.branches[nibble];
|
package/dist/shamap.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shamap.js","sourceRoot":"","sources":["../src/shamap.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"shamap.js","sourceRoot":"","sources":["../src/shamap.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { BinaryParser } from './serdes/binary-parser';
|
|
2
|
+
import { AccountID } from './types/account-id';
|
|
3
|
+
import { BinarySerializer, BytesList } from './serdes/binary-serializer';
|
|
4
|
+
import { sha512Half, transactionID } from './hashes';
|
|
5
|
+
import { type XrplDefinitionsBase } from './enums';
|
|
6
|
+
import { JsonObject } from './types/serialized-type';
|
|
7
|
+
/**
|
|
8
|
+
* Construct a BinaryParser
|
|
9
|
+
*
|
|
10
|
+
* @param bytes hex-string or Uint8Array to construct BinaryParser from
|
|
11
|
+
* @param definitions rippled definitions used to parse the values of transaction types and such.
|
|
12
|
+
* Can be customized for sidechains and amendments.
|
|
13
|
+
* @returns BinaryParser
|
|
14
|
+
*/
|
|
15
|
+
declare const makeParser: (bytes: string | Uint8Array, definitions?: XrplDefinitionsBase) => BinaryParser;
|
|
16
|
+
/**
|
|
17
|
+
* Parse BinaryParser into JSON
|
|
18
|
+
*
|
|
19
|
+
* @param parser BinaryParser object
|
|
20
|
+
* @param definitions rippled definitions used to parse the values of transaction types and such.
|
|
21
|
+
* Can be customized for sidechains and amendments.
|
|
22
|
+
* @returns JSON for the bytes in the BinaryParser
|
|
23
|
+
*/
|
|
24
|
+
declare const readJSON: (parser: BinaryParser, definitions?: XrplDefinitionsBase) => JsonObject;
|
|
25
|
+
/**
|
|
26
|
+
* Parse a hex-string into its JSON interpretation
|
|
27
|
+
*
|
|
28
|
+
* @param bytes hex-string to parse into JSON
|
|
29
|
+
* @param definitions rippled definitions used to parse the values of transaction types and such.
|
|
30
|
+
* Can be customized for sidechains and amendments.
|
|
31
|
+
* @returns JSON
|
|
32
|
+
*/
|
|
33
|
+
declare const binaryToJSON: (bytes: string, definitions?: XrplDefinitionsBase) => JsonObject;
|
|
34
|
+
/**
|
|
35
|
+
* Interface for passing parameters to SerializeObject
|
|
36
|
+
*
|
|
37
|
+
* @field set signingFieldOnly to true if you want to serialize only signing fields
|
|
38
|
+
*/
|
|
39
|
+
interface OptionObject {
|
|
40
|
+
prefix?: Uint8Array;
|
|
41
|
+
suffix?: Uint8Array;
|
|
42
|
+
signingFieldsOnly?: boolean;
|
|
43
|
+
definitions?: XrplDefinitionsBase;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Function to serialize JSON object representing a transaction
|
|
47
|
+
*
|
|
48
|
+
* @param object JSON object to serialize
|
|
49
|
+
* @param opts options for serializing, including optional prefix, suffix, signingFieldOnly, and definitions
|
|
50
|
+
* @returns A Uint8Array containing the serialized object
|
|
51
|
+
*/
|
|
52
|
+
declare function serializeObject(object: JsonObject, opts?: OptionObject): Uint8Array;
|
|
53
|
+
/**
|
|
54
|
+
* Serialize an object for signing
|
|
55
|
+
*
|
|
56
|
+
* @param transaction Transaction to serialize
|
|
57
|
+
* @param prefix Prefix bytes to put before the serialized object
|
|
58
|
+
* @param opts.definitions Custom rippled types to use instead of the default. Used for sidechains and amendments.
|
|
59
|
+
* @returns A Uint8Array with the serialized object
|
|
60
|
+
*/
|
|
61
|
+
declare function signingData(transaction: JsonObject, prefix?: Uint8Array, opts?: {
|
|
62
|
+
definitions?: XrplDefinitionsBase;
|
|
63
|
+
}): Uint8Array;
|
|
64
|
+
/**
|
|
65
|
+
* Interface describing fields required for a Claim
|
|
66
|
+
*/
|
|
67
|
+
interface ClaimObject extends JsonObject {
|
|
68
|
+
channel: string;
|
|
69
|
+
amount: string | number;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Serialize a signingClaim
|
|
73
|
+
*
|
|
74
|
+
* @param claim A claim object to serialize
|
|
75
|
+
* @param opts.definitions Custom rippled types to use instead of the default. Used for sidechains and amendments.
|
|
76
|
+
* @returns the serialized object with appropriate prefix
|
|
77
|
+
*/
|
|
78
|
+
declare function signingClaimData(claim: ClaimObject): Uint8Array;
|
|
79
|
+
/**
|
|
80
|
+
* Serialize a transaction object for multiSigning
|
|
81
|
+
*
|
|
82
|
+
* @param transaction transaction to serialize
|
|
83
|
+
* @param signingAccount Account to sign the transaction with
|
|
84
|
+
* @param opts.definitions Custom rippled types to use instead of the default. Used for sidechains and amendments.
|
|
85
|
+
* @returns serialized transaction with appropriate prefix and suffix
|
|
86
|
+
*/
|
|
87
|
+
declare function multiSigningData(transaction: JsonObject, signingAccount: string | AccountID, opts?: {
|
|
88
|
+
definitions: XrplDefinitionsBase;
|
|
89
|
+
}): Uint8Array;
|
|
90
|
+
/**
|
|
91
|
+
* Interface describing fields required for a Batch signer
|
|
92
|
+
* @property flags - Flags indicating Batch transaction properties
|
|
93
|
+
* @property txIDs - Array of transaction IDs included in the Batch
|
|
94
|
+
*/
|
|
95
|
+
interface BatchObject extends JsonObject {
|
|
96
|
+
flags: number;
|
|
97
|
+
txIDs: string[];
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Serialize a signingClaim
|
|
101
|
+
*
|
|
102
|
+
* @param batch A Batch object to serialize.
|
|
103
|
+
* @returns the serialized object with appropriate prefix
|
|
104
|
+
*/
|
|
105
|
+
declare function signingBatchData(batch: BatchObject): Uint8Array;
|
|
106
|
+
export { BinaryParser, BinarySerializer, BytesList, ClaimObject, BatchObject, makeParser, serializeObject, readJSON, multiSigningData, signingData, signingClaimData, binaryToJSON, sha512Half, transactionID, signingBatchData, };
|