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/shamap.js
CHANGED
|
@@ -1,160 +1,139 @@
|
|
|
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.ShaMapLeaf = exports.ShaMapNode = exports.ShaMap = void 0;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
var hashes_1 = require("./hashes");
|
|
4
|
+
const types_1 = require("./types");
|
|
5
|
+
const hash_prefixes_1 = require("./hash-prefixes");
|
|
6
|
+
const hashes_1 = require("./hashes");
|
|
21
7
|
/**
|
|
22
8
|
* Abstract class describing a SHAMapNode
|
|
23
9
|
*/
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}
|
|
27
|
-
return ShaMapNode;
|
|
28
|
-
}());
|
|
10
|
+
class ShaMapNode {
|
|
11
|
+
}
|
|
29
12
|
exports.ShaMapNode = ShaMapNode;
|
|
30
13
|
/**
|
|
31
14
|
* Class describing a Leaf of SHAMap
|
|
32
15
|
*/
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
_this.item = item;
|
|
39
|
-
return _this;
|
|
16
|
+
class ShaMapLeaf extends ShaMapNode {
|
|
17
|
+
constructor(index, item) {
|
|
18
|
+
super();
|
|
19
|
+
this.index = index;
|
|
20
|
+
this.item = item;
|
|
40
21
|
}
|
|
41
22
|
/**
|
|
42
23
|
* @returns true as ShaMapLeaf is a leaf node
|
|
43
24
|
*/
|
|
44
|
-
|
|
25
|
+
isLeaf() {
|
|
45
26
|
return true;
|
|
46
|
-
}
|
|
27
|
+
}
|
|
47
28
|
/**
|
|
48
29
|
* @returns false as ShaMapLeaf is not an inner node
|
|
49
30
|
*/
|
|
50
|
-
|
|
31
|
+
isInner() {
|
|
51
32
|
return false;
|
|
52
|
-
}
|
|
33
|
+
}
|
|
53
34
|
/**
|
|
54
35
|
* Get the prefix of the this.item
|
|
55
36
|
*
|
|
56
|
-
* @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
|
|
57
38
|
*/
|
|
58
|
-
|
|
59
|
-
return this.item === undefined ?
|
|
60
|
-
}
|
|
39
|
+
hashPrefix() {
|
|
40
|
+
return this.item === undefined ? new Uint8Array(0) : this.item.hashPrefix();
|
|
41
|
+
}
|
|
61
42
|
/**
|
|
62
43
|
* Hash the bytes representation of this
|
|
63
44
|
*
|
|
64
45
|
* @returns hash of this.item concatenated with this.index
|
|
65
46
|
*/
|
|
66
|
-
|
|
67
|
-
|
|
47
|
+
hash() {
|
|
48
|
+
const hash = hashes_1.Sha512Half.put(this.hashPrefix());
|
|
68
49
|
this.toBytesSink(hash);
|
|
69
50
|
return hash.finish();
|
|
70
|
-
}
|
|
51
|
+
}
|
|
71
52
|
/**
|
|
72
53
|
* Write the bytes representation of this to a BytesList
|
|
73
54
|
* @param list BytesList to write bytes to
|
|
74
55
|
*/
|
|
75
|
-
|
|
56
|
+
toBytesSink(list) {
|
|
76
57
|
if (this.item !== undefined) {
|
|
77
58
|
this.item.toBytesSink(list);
|
|
78
59
|
}
|
|
79
60
|
this.index.toBytesSink(list);
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
}(ShaMapNode));
|
|
61
|
+
}
|
|
62
|
+
}
|
|
83
63
|
exports.ShaMapLeaf = ShaMapLeaf;
|
|
84
64
|
/**
|
|
85
65
|
* Class defining an Inner Node of a SHAMap
|
|
86
66
|
*/
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
_this.slotBits = 0;
|
|
94
|
-
_this.branches = Array(16);
|
|
95
|
-
return _this;
|
|
67
|
+
class ShaMapInner extends ShaMapNode {
|
|
68
|
+
constructor(depth = 0) {
|
|
69
|
+
super();
|
|
70
|
+
this.depth = depth;
|
|
71
|
+
this.slotBits = 0;
|
|
72
|
+
this.branches = Array(16);
|
|
96
73
|
}
|
|
97
74
|
/**
|
|
98
75
|
* @returns true as ShaMapInner is an inner node
|
|
99
76
|
*/
|
|
100
|
-
|
|
77
|
+
isInner() {
|
|
101
78
|
return true;
|
|
102
|
-
}
|
|
79
|
+
}
|
|
103
80
|
/**
|
|
104
81
|
* @returns false as ShaMapInner is not a leaf node
|
|
105
82
|
*/
|
|
106
|
-
|
|
83
|
+
isLeaf() {
|
|
107
84
|
return false;
|
|
108
|
-
}
|
|
85
|
+
}
|
|
109
86
|
/**
|
|
110
87
|
* Get the hash prefix for this node
|
|
111
88
|
*
|
|
112
89
|
* @returns hash prefix describing an inner node
|
|
113
90
|
*/
|
|
114
|
-
|
|
91
|
+
hashPrefix() {
|
|
115
92
|
return hash_prefixes_1.HashPrefix.innerNode;
|
|
116
|
-
}
|
|
93
|
+
}
|
|
117
94
|
/**
|
|
118
95
|
* Set a branch of this node to be another node
|
|
119
96
|
*
|
|
120
97
|
* @param slot Slot to add branch to this.branches
|
|
121
98
|
* @param branch Branch to add
|
|
122
99
|
*/
|
|
123
|
-
|
|
100
|
+
setBranch(slot, branch) {
|
|
124
101
|
this.slotBits = this.slotBits | (1 << slot);
|
|
125
102
|
this.branches[slot] = branch;
|
|
126
|
-
}
|
|
103
|
+
}
|
|
127
104
|
/**
|
|
128
105
|
* @returns true if node is empty
|
|
129
106
|
*/
|
|
130
|
-
|
|
107
|
+
empty() {
|
|
131
108
|
return this.slotBits === 0;
|
|
132
|
-
}
|
|
109
|
+
}
|
|
133
110
|
/**
|
|
134
111
|
* Compute the hash of this node
|
|
135
112
|
*
|
|
136
113
|
* @returns The hash of this node
|
|
137
114
|
*/
|
|
138
|
-
|
|
115
|
+
hash() {
|
|
139
116
|
if (this.empty()) {
|
|
140
117
|
return types_1.coreTypes.Hash256.ZERO_256;
|
|
141
118
|
}
|
|
142
|
-
|
|
119
|
+
const hash = hashes_1.Sha512Half.put(this.hashPrefix());
|
|
143
120
|
this.toBytesSink(hash);
|
|
144
121
|
return hash.finish();
|
|
145
|
-
}
|
|
122
|
+
}
|
|
146
123
|
/**
|
|
147
124
|
* Writes the bytes representation of this node to a BytesList
|
|
148
125
|
*
|
|
149
126
|
* @param list BytesList to write bytes to
|
|
150
127
|
*/
|
|
151
|
-
|
|
152
|
-
for (
|
|
153
|
-
|
|
154
|
-
|
|
128
|
+
toBytesSink(list) {
|
|
129
|
+
for (let i = 0; i < this.branches.length; i++) {
|
|
130
|
+
const branch = this.branches[i];
|
|
131
|
+
const hash = branch
|
|
132
|
+
? branch.hash()
|
|
133
|
+
: types_1.coreTypes.Hash256.ZERO_256;
|
|
155
134
|
hash.toBytesSink(list);
|
|
156
135
|
}
|
|
157
|
-
}
|
|
136
|
+
}
|
|
158
137
|
/**
|
|
159
138
|
* Add item to the SHAMap
|
|
160
139
|
*
|
|
@@ -162,34 +141,32 @@ var ShaMapInner = /** @class */ (function (_super) {
|
|
|
162
141
|
* @param item Item to insert in the map
|
|
163
142
|
* @param leaf Leaf node to insert when branch doesn't exist
|
|
164
143
|
*/
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
var existing = this.branches[nibble];
|
|
169
|
-
if (existing === undefined) {
|
|
170
|
-
this.setBranch(nibble, leaf || new ShaMapLeaf(index, item));
|
|
171
|
-
}
|
|
172
|
-
else if (existing instanceof ShaMapLeaf) {
|
|
173
|
-
var newInner = new ShaMapInner(this.depth + 1);
|
|
174
|
-
newInner.addItem(existing.index, undefined, existing);
|
|
175
|
-
newInner.addItem(index, item, leaf);
|
|
176
|
-
this.setBranch(nibble, newInner);
|
|
177
|
-
}
|
|
178
|
-
else if (existing instanceof ShaMapInner) {
|
|
179
|
-
existing.addItem(index, item, leaf);
|
|
144
|
+
addItem(index, item, leaf) {
|
|
145
|
+
if (index === undefined) {
|
|
146
|
+
throw new Error();
|
|
180
147
|
}
|
|
181
|
-
|
|
182
|
-
|
|
148
|
+
if (index !== undefined) {
|
|
149
|
+
const nibble = index.nibblet(this.depth);
|
|
150
|
+
const existing = this.branches[nibble];
|
|
151
|
+
if (existing === undefined) {
|
|
152
|
+
this.setBranch(nibble, leaf || new ShaMapLeaf(index, item));
|
|
153
|
+
}
|
|
154
|
+
else if (existing instanceof ShaMapLeaf) {
|
|
155
|
+
const newInner = new ShaMapInner(this.depth + 1);
|
|
156
|
+
newInner.addItem(existing.index, undefined, existing);
|
|
157
|
+
newInner.addItem(index, item, leaf);
|
|
158
|
+
this.setBranch(nibble, newInner);
|
|
159
|
+
}
|
|
160
|
+
else if (existing instanceof ShaMapInner) {
|
|
161
|
+
existing.addItem(index, item, leaf);
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
throw new Error('invalid ShaMap.addItem call');
|
|
165
|
+
}
|
|
183
166
|
}
|
|
184
|
-
};
|
|
185
|
-
return ShaMapInner;
|
|
186
|
-
}(ShaMapNode));
|
|
187
|
-
var ShaMap = /** @class */ (function (_super) {
|
|
188
|
-
__extends(ShaMap, _super);
|
|
189
|
-
function ShaMap() {
|
|
190
|
-
return _super !== null && _super.apply(this, arguments) || this;
|
|
191
167
|
}
|
|
192
|
-
|
|
193
|
-
|
|
168
|
+
}
|
|
169
|
+
class ShaMap extends ShaMapInner {
|
|
170
|
+
}
|
|
194
171
|
exports.ShaMap = ShaMap;
|
|
195
172
|
//# sourceMappingURL=shamap.js.map
|
package/dist/shamap.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shamap.js","sourceRoot":"","sources":["../src/shamap.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"shamap.js","sourceRoot":"","sources":["../src/shamap.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,90 @@
|
|
|
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
|
+
export { BinaryParser, BinarySerializer, BytesList, ClaimObject, makeParser, serializeObject, readJSON, multiSigningData, signingData, signingClaimData, binaryToJSON, sha512Half, transactionID, };
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* eslint-disable func-style */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.transactionID = exports.sha512Half = exports.binaryToJSON = exports.signingClaimData = exports.signingData = exports.multiSigningData = exports.readJSON = exports.serializeObject = exports.makeParser = exports.BytesList = exports.BinarySerializer = exports.BinaryParser = void 0;
|
|
5
|
+
const utils_1 = require("@xrplf/isomorphic/utils");
|
|
6
|
+
const types_1 = require("./types");
|
|
7
|
+
const binary_parser_1 = require("./serdes/binary-parser");
|
|
8
|
+
Object.defineProperty(exports, "BinaryParser", { enumerable: true, get: function () { return binary_parser_1.BinaryParser; } });
|
|
9
|
+
const hash_prefixes_1 = require("./hash-prefixes");
|
|
10
|
+
const binary_serializer_1 = require("./serdes/binary-serializer");
|
|
11
|
+
Object.defineProperty(exports, "BinarySerializer", { enumerable: true, get: function () { return binary_serializer_1.BinarySerializer; } });
|
|
12
|
+
Object.defineProperty(exports, "BytesList", { enumerable: true, get: function () { return binary_serializer_1.BytesList; } });
|
|
13
|
+
const hashes_1 = require("./hashes");
|
|
14
|
+
Object.defineProperty(exports, "sha512Half", { enumerable: true, get: function () { return hashes_1.sha512Half; } });
|
|
15
|
+
Object.defineProperty(exports, "transactionID", { enumerable: true, get: function () { return hashes_1.transactionID; } });
|
|
16
|
+
const enums_1 = require("./enums");
|
|
17
|
+
/**
|
|
18
|
+
* Construct a BinaryParser
|
|
19
|
+
*
|
|
20
|
+
* @param bytes hex-string or Uint8Array to construct BinaryParser from
|
|
21
|
+
* @param definitions rippled definitions used to parse the values of transaction types and such.
|
|
22
|
+
* Can be customized for sidechains and amendments.
|
|
23
|
+
* @returns BinaryParser
|
|
24
|
+
*/
|
|
25
|
+
const makeParser = (bytes, definitions) => new binary_parser_1.BinaryParser(bytes instanceof Uint8Array ? (0, utils_1.bytesToHex)(bytes) : bytes, definitions);
|
|
26
|
+
exports.makeParser = makeParser;
|
|
27
|
+
/**
|
|
28
|
+
* Parse BinaryParser into JSON
|
|
29
|
+
*
|
|
30
|
+
* @param parser BinaryParser object
|
|
31
|
+
* @param definitions rippled definitions used to parse the values of transaction types and such.
|
|
32
|
+
* Can be customized for sidechains and amendments.
|
|
33
|
+
* @returns JSON for the bytes in the BinaryParser
|
|
34
|
+
*/
|
|
35
|
+
const readJSON = (parser, definitions = enums_1.DEFAULT_DEFINITIONS) => parser.readType(types_1.coreTypes.STObject).toJSON(definitions);
|
|
36
|
+
exports.readJSON = readJSON;
|
|
37
|
+
/**
|
|
38
|
+
* Parse a hex-string into its JSON interpretation
|
|
39
|
+
*
|
|
40
|
+
* @param bytes hex-string to parse into JSON
|
|
41
|
+
* @param definitions rippled definitions used to parse the values of transaction types and such.
|
|
42
|
+
* Can be customized for sidechains and amendments.
|
|
43
|
+
* @returns JSON
|
|
44
|
+
*/
|
|
45
|
+
const binaryToJSON = (bytes, definitions) => readJSON(makeParser(bytes, definitions), definitions);
|
|
46
|
+
exports.binaryToJSON = binaryToJSON;
|
|
47
|
+
/**
|
|
48
|
+
* Function to serialize JSON object representing a transaction
|
|
49
|
+
*
|
|
50
|
+
* @param object JSON object to serialize
|
|
51
|
+
* @param opts options for serializing, including optional prefix, suffix, signingFieldOnly, and definitions
|
|
52
|
+
* @returns A Uint8Array containing the serialized object
|
|
53
|
+
*/
|
|
54
|
+
function serializeObject(object, opts = {}) {
|
|
55
|
+
const { prefix, suffix, signingFieldsOnly = false, definitions } = opts;
|
|
56
|
+
const bytesList = new binary_serializer_1.BytesList();
|
|
57
|
+
if (prefix) {
|
|
58
|
+
bytesList.put(prefix);
|
|
59
|
+
}
|
|
60
|
+
const filter = signingFieldsOnly
|
|
61
|
+
? (f) => f.isSigningField
|
|
62
|
+
: undefined;
|
|
63
|
+
types_1.coreTypes.STObject
|
|
64
|
+
.from(object, filter, definitions)
|
|
65
|
+
.toBytesSink(bytesList);
|
|
66
|
+
if (suffix) {
|
|
67
|
+
bytesList.put(suffix);
|
|
68
|
+
}
|
|
69
|
+
return bytesList.toBytes();
|
|
70
|
+
}
|
|
71
|
+
exports.serializeObject = serializeObject;
|
|
72
|
+
/**
|
|
73
|
+
* Serialize an object for signing
|
|
74
|
+
*
|
|
75
|
+
* @param transaction Transaction to serialize
|
|
76
|
+
* @param prefix Prefix bytes to put before the serialized object
|
|
77
|
+
* @param opts.definitions Custom rippled types to use instead of the default. Used for sidechains and amendments.
|
|
78
|
+
* @returns A Uint8Array with the serialized object
|
|
79
|
+
*/
|
|
80
|
+
function signingData(transaction, prefix = hash_prefixes_1.HashPrefix.transactionSig, opts = {}) {
|
|
81
|
+
return serializeObject(transaction, {
|
|
82
|
+
prefix,
|
|
83
|
+
signingFieldsOnly: true,
|
|
84
|
+
definitions: opts.definitions,
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
exports.signingData = signingData;
|
|
88
|
+
/**
|
|
89
|
+
* Serialize a signingClaim
|
|
90
|
+
*
|
|
91
|
+
* @param claim A claim object to serialize
|
|
92
|
+
* @param opts.definitions Custom rippled types to use instead of the default. Used for sidechains and amendments.
|
|
93
|
+
* @returns the serialized object with appropriate prefix
|
|
94
|
+
*/
|
|
95
|
+
function signingClaimData(claim) {
|
|
96
|
+
const num = BigInt(String(claim.amount));
|
|
97
|
+
const prefix = hash_prefixes_1.HashPrefix.paymentChannelClaim;
|
|
98
|
+
const channel = types_1.coreTypes.Hash256.from(claim.channel).toBytes();
|
|
99
|
+
const amount = types_1.coreTypes.UInt64.from(num).toBytes();
|
|
100
|
+
const bytesList = new binary_serializer_1.BytesList();
|
|
101
|
+
bytesList.put(prefix);
|
|
102
|
+
bytesList.put(channel);
|
|
103
|
+
bytesList.put(amount);
|
|
104
|
+
return bytesList.toBytes();
|
|
105
|
+
}
|
|
106
|
+
exports.signingClaimData = signingClaimData;
|
|
107
|
+
/**
|
|
108
|
+
* Serialize a transaction object for multiSigning
|
|
109
|
+
*
|
|
110
|
+
* @param transaction transaction to serialize
|
|
111
|
+
* @param signingAccount Account to sign the transaction with
|
|
112
|
+
* @param opts.definitions Custom rippled types to use instead of the default. Used for sidechains and amendments.
|
|
113
|
+
* @returns serialized transaction with appropriate prefix and suffix
|
|
114
|
+
*/
|
|
115
|
+
function multiSigningData(transaction, signingAccount, opts = {
|
|
116
|
+
definitions: enums_1.DEFAULT_DEFINITIONS,
|
|
117
|
+
}) {
|
|
118
|
+
const prefix = hash_prefixes_1.HashPrefix.transactionMultiSig;
|
|
119
|
+
const suffix = types_1.coreTypes.AccountID.from(signingAccount).toBytes();
|
|
120
|
+
return serializeObject(transaction, {
|
|
121
|
+
prefix,
|
|
122
|
+
suffix,
|
|
123
|
+
signingFieldsOnly: true,
|
|
124
|
+
definitions: opts.definitions,
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
exports.multiSigningData = multiSigningData;
|
|
128
|
+
//# sourceMappingURL=binary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"binary.js","sourceRoot":"","sources":["../../src/binary.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { DEFAULT_DEFINITIONS, Field, TransactionType, LedgerEntryType, Type, TransactionResult } from './enums';
|
|
2
|
+
import * as types from './types';
|
|
3
|
+
import * as binary from './binary';
|
|
4
|
+
import { ShaMap } from './shamap';
|
|
5
|
+
import * as ledgerHashes from './ledger-hashes';
|
|
6
|
+
import * as hashes from './hashes';
|
|
7
|
+
import { quality } from './quality';
|
|
8
|
+
import { HashPrefix } from './hash-prefixes';
|
|
9
|
+
export { hashes, binary, ledgerHashes, DEFAULT_DEFINITIONS, Field, TransactionType, LedgerEntryType, Type, TransactionResult, quality, HashPrefix, ShaMap, types, };
|
|
@@ -0,0 +1,48 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.types = exports.ShaMap = exports.HashPrefix = exports.quality = exports.TransactionResult = exports.Type = exports.LedgerEntryType = exports.TransactionType = exports.Field = exports.DEFAULT_DEFINITIONS = exports.ledgerHashes = exports.binary = exports.hashes = void 0;
|
|
27
|
+
const enums_1 = require("./enums");
|
|
28
|
+
Object.defineProperty(exports, "DEFAULT_DEFINITIONS", { enumerable: true, get: function () { return enums_1.DEFAULT_DEFINITIONS; } });
|
|
29
|
+
Object.defineProperty(exports, "Field", { enumerable: true, get: function () { return enums_1.Field; } });
|
|
30
|
+
Object.defineProperty(exports, "TransactionType", { enumerable: true, get: function () { return enums_1.TransactionType; } });
|
|
31
|
+
Object.defineProperty(exports, "LedgerEntryType", { enumerable: true, get: function () { return enums_1.LedgerEntryType; } });
|
|
32
|
+
Object.defineProperty(exports, "Type", { enumerable: true, get: function () { return enums_1.Type; } });
|
|
33
|
+
Object.defineProperty(exports, "TransactionResult", { enumerable: true, get: function () { return enums_1.TransactionResult; } });
|
|
34
|
+
const types = __importStar(require("./types"));
|
|
35
|
+
exports.types = types;
|
|
36
|
+
const binary = __importStar(require("./binary"));
|
|
37
|
+
exports.binary = binary;
|
|
38
|
+
const shamap_1 = require("./shamap");
|
|
39
|
+
Object.defineProperty(exports, "ShaMap", { enumerable: true, get: function () { return shamap_1.ShaMap; } });
|
|
40
|
+
const ledgerHashes = __importStar(require("./ledger-hashes"));
|
|
41
|
+
exports.ledgerHashes = ledgerHashes;
|
|
42
|
+
const hashes = __importStar(require("./hashes"));
|
|
43
|
+
exports.hashes = hashes;
|
|
44
|
+
const quality_1 = require("./quality");
|
|
45
|
+
Object.defineProperty(exports, "quality", { enumerable: true, get: function () { return quality_1.quality; } });
|
|
46
|
+
const hash_prefixes_1 = require("./hash-prefixes");
|
|
47
|
+
Object.defineProperty(exports, "HashPrefix", { enumerable: true, get: function () { return hash_prefixes_1.HashPrefix; } });
|
|
48
|
+
//# sourceMappingURL=coretypes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coretypes.js","sourceRoot":"","sources":["../../src/coretypes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mCAOgB;AAad,oGAnBA,2BAAmB,OAmBA;AACnB,sFAnBA,aAAK,OAmBA;AACL,gGAnBA,uBAAe,OAmBA;AACf,gGAnBA,uBAAe,OAmBA;AACf,qFAnBA,YAAI,OAmBA;AACJ,kGAnBA,yBAAiB,OAmBA;AAjBnB,+CAAgC;AAqB9B,sBAAK;AApBP,iDAAkC;AAShC,wBAAM;AARR,qCAAiC;AAkB/B,uFAlBO,eAAM,OAkBP;AAjBR,8DAA+C;AAQ7C,oCAAY;AAPd,iDAAkC;AAKhC,wBAAM;AAJR,uCAAmC;AAajC,wFAbO,iBAAO,OAaP;AAZT,mDAA4C;AAa1C,2FAbO,0BAAU,OAaP"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { BytesList, BinaryParser } from '../binary';
|
|
2
|
+
export declare class Bytes {
|
|
3
|
+
readonly name: string;
|
|
4
|
+
readonly ordinal: number;
|
|
5
|
+
readonly ordinalWidth: number;
|
|
6
|
+
readonly bytes: Uint8Array;
|
|
7
|
+
constructor(name: string, ordinal: number, ordinalWidth: number);
|
|
8
|
+
toJSON(): string;
|
|
9
|
+
toBytesSink(sink: BytesList): void;
|
|
10
|
+
toBytes(): Uint8Array;
|
|
11
|
+
}
|
|
12
|
+
export declare class BytesLookup {
|
|
13
|
+
readonly ordinalWidth: number;
|
|
14
|
+
constructor(types: Record<string, number>, ordinalWidth: number);
|
|
15
|
+
/**
|
|
16
|
+
* Add a new name value pair to the BytesLookup.
|
|
17
|
+
*
|
|
18
|
+
* @param name - A human readable name for the field.
|
|
19
|
+
* @param value - The numeric value for the field.
|
|
20
|
+
* @throws if the name or value already exist in the lookup because it's unclear how to decode.
|
|
21
|
+
*/
|
|
22
|
+
add(name: string, value: number): void;
|
|
23
|
+
from(value: Bytes | string): Bytes;
|
|
24
|
+
fromParser(parser: BinaryParser): Bytes;
|
|
25
|
+
}
|