ripple-binary-codec 1.0.4-beta.1 → 1.0.4-mpt-beta
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/binary.d.ts +34 -20
- package/dist/binary.js +51 -36
- package/dist/binary.js.map +1 -1
- package/dist/coretypes.d.ts +9 -9
- package/dist/coretypes.js +33 -9
- package/dist/coretypes.js.map +1 -1
- package/dist/enums/bytes.d.ts +25 -0
- package/dist/enums/bytes.js +63 -0
- package/dist/enums/bytes.js.map +1 -0
- package/dist/enums/constants.d.ts +4 -0
- package/dist/enums/constants.js +8 -0
- package/dist/enums/constants.js.map +1 -0
- package/dist/enums/definitions.json +3066 -1780
- package/dist/enums/field.d.ts +28 -0
- package/dist/enums/field.js +58 -0
- package/dist/enums/field.js.map +1 -0
- package/dist/enums/index.d.ts +12 -46
- package/dist/enums/index.js +22 -111
- 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 -7
- package/dist/hash-prefixes.js.map +1 -1
- package/dist/hashes.d.ts +7 -8
- package/dist/hashes.js +23 -44
- package/dist/hashes.js.map +1 -1
- package/dist/index.d.ts +16 -17
- package/dist/index.js +65 -40
- package/dist/index.js.map +1 -1
- package/dist/ledger-hashes.d.ts +7 -5
- package/dist/ledger-hashes.js +40 -34
- package/dist/ledger-hashes.js.map +1 -1
- package/dist/quality.d.ts +3 -4
- package/dist/quality.js +20 -21
- package/dist/quality.js.map +1 -1
- package/dist/serdes/binary-parser.d.ts +8 -6
- package/dist/serdes/binary-parser.js +74 -65
- 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 -49
- package/dist/serdes/binary-serializer.js.map +1 -1
- package/dist/shamap.d.ts +6 -7
- package/dist/shamap.js +74 -98
- 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 -40
- package/dist/types/account-id.js.map +1 -1
- package/dist/types/amount.d.ts +33 -10
- package/dist/types/amount.js +181 -114
- package/dist/types/amount.js.map +1 -1
- package/dist/types/blob.d.ts +3 -4
- package/dist/types/blob.js +16 -28
- package/dist/types/blob.js.map +1 -1
- package/dist/types/currency.d.ts +5 -13
- package/dist/types/currency.js +53 -67
- package/dist/types/currency.js.map +1 -1
- package/dist/types/hash-128.d.ts +8 -3
- package/dist/types/hash-128.js +23 -23
- 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 -25
- 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 -23
- package/dist/types/hash-256.js.map +1 -1
- package/dist/types/hash.d.ts +4 -5
- package/dist/types/hash.js +25 -40
- 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 -95
- package/dist/types/path-set.js.map +1 -1
- package/dist/types/serialized-type.d.ts +27 -20
- package/dist/types/serialized-type.js +50 -61
- 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 -48
- 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 -75
- 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 -34
- 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 -37
- package/dist/types/uint-32.js.map +1 -1
- package/dist/types/uint-64.d.ts +6 -8
- package/dist/types/uint-64.js +43 -58
- 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 -34
- package/dist/types/uint-8.js.map +1 -1
- package/dist/types/uint.d.ts +6 -7
- package/dist/types/uint.js +16 -26
- package/dist/types/uint.js.map +1 -1
- package/dist/types/vector-256.d.ts +3 -4
- package/dist/types/vector-256.js +28 -45
- package/dist/types/vector-256.js.map +1 -1
- package/dist/types/xchain-bridge.d.ts +44 -0
- package/dist/types/xchain-bridge.js +102 -0
- package/dist/types/xchain-bridge.js.map +1 -0
- package/dist/utils.d.ts +47 -0
- package/dist/utils.js +137 -0
- package/dist/utils.js.map +1 -0
- package/package.json +23 -36
- 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/dist/index.js.LICENSE.txt +0 -17
- package/test/amount.test.js +0 -43
- package/test/binary-json.test.js +0 -47
- package/test/binary-parser.test.js +0 -398
- package/test/binary-serializer.test.js +0 -264
- package/test/fixtures/account-tx-transactions.db +0 -0
- package/test/fixtures/codec-fixtures.json +0 -4466
- package/test/fixtures/data-driven-tests.json +0 -3721
- package/test/fixtures/delivermin-tx-binary.json +0 -1
- package/test/fixtures/delivermin-tx.json +0 -98
- package/test/fixtures/deposit-preauth-tx-binary.json +0 -1
- package/test/fixtures/deposit-preauth-tx-meta-binary.json +0 -1
- package/test/fixtures/deposit-preauth-tx.json +0 -58
- package/test/fixtures/escrow-cancel-binary.json +0 -1
- package/test/fixtures/escrow-cancel-tx.json +0 -6
- package/test/fixtures/escrow-create-binary.json +0 -1
- package/test/fixtures/escrow-create-tx.json +0 -10
- package/test/fixtures/escrow-finish-binary.json +0 -1
- package/test/fixtures/escrow-finish-meta-binary.json +0 -1
- package/test/fixtures/escrow-finish-tx.json +0 -95
- package/test/fixtures/ledger-full-38129.json +0 -1
- package/test/fixtures/ledger-full-40000.json +0 -1
- package/test/fixtures/negative-unl.json +0 -12
- package/test/fixtures/payment-channel-claim-binary.json +0 -1
- package/test/fixtures/payment-channel-claim-tx.json +0 -8
- package/test/fixtures/payment-channel-create-binary.json +0 -1
- package/test/fixtures/payment-channel-create-tx.json +0 -11
- package/test/fixtures/payment-channel-fund-binary.json +0 -1
- package/test/fixtures/payment-channel-fund-tx.json +0 -7
- package/test/fixtures/signerlistset-tx-binary.json +0 -1
- package/test/fixtures/signerlistset-tx-meta-binary.json +0 -1
- package/test/fixtures/signerlistset-tx.json +0 -94
- package/test/fixtures/ticket-create-binary.json +0 -1
- package/test/fixtures/ticket-create-tx.json +0 -7
- package/test/fixtures/x-codec-fixtures.json +0 -188
- package/test/hash.test.js +0 -83
- 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 -89
- package/test/signing-data-encoding.test.js +0 -129
- package/test/tx-encode-decode.test.js +0 -97
- package/test/types.test.js +0 -34
- package/test/uint.test.js +0 -40
- package/test/utils.js +0 -30
- package/test/x-address.test.js +0 -147
package/dist/shamap.js
CHANGED
|
@@ -1,161 +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");
|
|
21
|
-
var buffer_1 = require("buffer/");
|
|
4
|
+
const types_1 = require("./types");
|
|
5
|
+
const hash_prefixes_1 = require("./hash-prefixes");
|
|
6
|
+
const hashes_1 = require("./hashes");
|
|
22
7
|
/**
|
|
23
8
|
* Abstract class describing a SHAMapNode
|
|
24
9
|
*/
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
}
|
|
28
|
-
return ShaMapNode;
|
|
29
|
-
}());
|
|
10
|
+
class ShaMapNode {
|
|
11
|
+
}
|
|
30
12
|
exports.ShaMapNode = ShaMapNode;
|
|
31
13
|
/**
|
|
32
14
|
* Class describing a Leaf of SHAMap
|
|
33
15
|
*/
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
_this.item = item;
|
|
40
|
-
return _this;
|
|
16
|
+
class ShaMapLeaf extends ShaMapNode {
|
|
17
|
+
constructor(index, item) {
|
|
18
|
+
super();
|
|
19
|
+
this.index = index;
|
|
20
|
+
this.item = item;
|
|
41
21
|
}
|
|
42
22
|
/**
|
|
43
23
|
* @returns true as ShaMapLeaf is a leaf node
|
|
44
24
|
*/
|
|
45
|
-
|
|
25
|
+
isLeaf() {
|
|
46
26
|
return true;
|
|
47
|
-
}
|
|
27
|
+
}
|
|
48
28
|
/**
|
|
49
29
|
* @returns false as ShaMapLeaf is not an inner node
|
|
50
30
|
*/
|
|
51
|
-
|
|
31
|
+
isInner() {
|
|
52
32
|
return false;
|
|
53
|
-
}
|
|
33
|
+
}
|
|
54
34
|
/**
|
|
55
35
|
* Get the prefix of the this.item
|
|
56
36
|
*
|
|
57
|
-
* @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
|
|
58
38
|
*/
|
|
59
|
-
|
|
60
|
-
return this.item === undefined ?
|
|
61
|
-
}
|
|
39
|
+
hashPrefix() {
|
|
40
|
+
return this.item === undefined ? new Uint8Array(0) : this.item.hashPrefix();
|
|
41
|
+
}
|
|
62
42
|
/**
|
|
63
43
|
* Hash the bytes representation of this
|
|
64
44
|
*
|
|
65
45
|
* @returns hash of this.item concatenated with this.index
|
|
66
46
|
*/
|
|
67
|
-
|
|
68
|
-
|
|
47
|
+
hash() {
|
|
48
|
+
const hash = hashes_1.Sha512Half.put(this.hashPrefix());
|
|
69
49
|
this.toBytesSink(hash);
|
|
70
50
|
return hash.finish();
|
|
71
|
-
}
|
|
51
|
+
}
|
|
72
52
|
/**
|
|
73
53
|
* Write the bytes representation of this to a BytesList
|
|
74
54
|
* @param list BytesList to write bytes to
|
|
75
55
|
*/
|
|
76
|
-
|
|
56
|
+
toBytesSink(list) {
|
|
77
57
|
if (this.item !== undefined) {
|
|
78
58
|
this.item.toBytesSink(list);
|
|
79
59
|
}
|
|
80
60
|
this.index.toBytesSink(list);
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
}(ShaMapNode));
|
|
61
|
+
}
|
|
62
|
+
}
|
|
84
63
|
exports.ShaMapLeaf = ShaMapLeaf;
|
|
85
64
|
/**
|
|
86
65
|
* Class defining an Inner Node of a SHAMap
|
|
87
66
|
*/
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
_this.slotBits = 0;
|
|
95
|
-
_this.branches = Array(16);
|
|
96
|
-
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);
|
|
97
73
|
}
|
|
98
74
|
/**
|
|
99
75
|
* @returns true as ShaMapInner is an inner node
|
|
100
76
|
*/
|
|
101
|
-
|
|
77
|
+
isInner() {
|
|
102
78
|
return true;
|
|
103
|
-
}
|
|
79
|
+
}
|
|
104
80
|
/**
|
|
105
81
|
* @returns false as ShaMapInner is not a leaf node
|
|
106
82
|
*/
|
|
107
|
-
|
|
83
|
+
isLeaf() {
|
|
108
84
|
return false;
|
|
109
|
-
}
|
|
85
|
+
}
|
|
110
86
|
/**
|
|
111
87
|
* Get the hash prefix for this node
|
|
112
88
|
*
|
|
113
89
|
* @returns hash prefix describing an inner node
|
|
114
90
|
*/
|
|
115
|
-
|
|
91
|
+
hashPrefix() {
|
|
116
92
|
return hash_prefixes_1.HashPrefix.innerNode;
|
|
117
|
-
}
|
|
93
|
+
}
|
|
118
94
|
/**
|
|
119
95
|
* Set a branch of this node to be another node
|
|
120
96
|
*
|
|
121
97
|
* @param slot Slot to add branch to this.branches
|
|
122
98
|
* @param branch Branch to add
|
|
123
99
|
*/
|
|
124
|
-
|
|
100
|
+
setBranch(slot, branch) {
|
|
125
101
|
this.slotBits = this.slotBits | (1 << slot);
|
|
126
102
|
this.branches[slot] = branch;
|
|
127
|
-
}
|
|
103
|
+
}
|
|
128
104
|
/**
|
|
129
105
|
* @returns true if node is empty
|
|
130
106
|
*/
|
|
131
|
-
|
|
107
|
+
empty() {
|
|
132
108
|
return this.slotBits === 0;
|
|
133
|
-
}
|
|
109
|
+
}
|
|
134
110
|
/**
|
|
135
111
|
* Compute the hash of this node
|
|
136
112
|
*
|
|
137
113
|
* @returns The hash of this node
|
|
138
114
|
*/
|
|
139
|
-
|
|
115
|
+
hash() {
|
|
140
116
|
if (this.empty()) {
|
|
141
117
|
return types_1.coreTypes.Hash256.ZERO_256;
|
|
142
118
|
}
|
|
143
|
-
|
|
119
|
+
const hash = hashes_1.Sha512Half.put(this.hashPrefix());
|
|
144
120
|
this.toBytesSink(hash);
|
|
145
121
|
return hash.finish();
|
|
146
|
-
}
|
|
122
|
+
}
|
|
147
123
|
/**
|
|
148
124
|
* Writes the bytes representation of this node to a BytesList
|
|
149
125
|
*
|
|
150
126
|
* @param list BytesList to write bytes to
|
|
151
127
|
*/
|
|
152
|
-
|
|
153
|
-
for (
|
|
154
|
-
|
|
155
|
-
|
|
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;
|
|
156
134
|
hash.toBytesSink(list);
|
|
157
135
|
}
|
|
158
|
-
}
|
|
136
|
+
}
|
|
159
137
|
/**
|
|
160
138
|
* Add item to the SHAMap
|
|
161
139
|
*
|
|
@@ -163,34 +141,32 @@ var ShaMapInner = /** @class */ (function (_super) {
|
|
|
163
141
|
* @param item Item to insert in the map
|
|
164
142
|
* @param leaf Leaf node to insert when branch doesn't exist
|
|
165
143
|
*/
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
var existing = this.branches[nibble];
|
|
170
|
-
if (existing === undefined) {
|
|
171
|
-
this.setBranch(nibble, leaf || new ShaMapLeaf(index, item));
|
|
172
|
-
}
|
|
173
|
-
else if (existing instanceof ShaMapLeaf) {
|
|
174
|
-
var newInner = new ShaMapInner(this.depth + 1);
|
|
175
|
-
newInner.addItem(existing.index, undefined, existing);
|
|
176
|
-
newInner.addItem(index, item, leaf);
|
|
177
|
-
this.setBranch(nibble, newInner);
|
|
178
|
-
}
|
|
179
|
-
else if (existing instanceof ShaMapInner) {
|
|
180
|
-
existing.addItem(index, item, leaf);
|
|
144
|
+
addItem(index, item, leaf) {
|
|
145
|
+
if (index === undefined) {
|
|
146
|
+
throw new Error();
|
|
181
147
|
}
|
|
182
|
-
|
|
183
|
-
|
|
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
|
+
}
|
|
184
166
|
}
|
|
185
|
-
};
|
|
186
|
-
return ShaMapInner;
|
|
187
|
-
}(ShaMapNode));
|
|
188
|
-
var ShaMap = /** @class */ (function (_super) {
|
|
189
|
-
__extends(ShaMap, _super);
|
|
190
|
-
function ShaMap() {
|
|
191
|
-
return _super !== null && _super.apply(this, arguments) || this;
|
|
192
167
|
}
|
|
193
|
-
|
|
194
|
-
|
|
168
|
+
}
|
|
169
|
+
class ShaMap extends ShaMapInner {
|
|
170
|
+
}
|
|
195
171
|
exports.ShaMap = ShaMap;
|
|
196
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":";;;AAAA,mCAAmC;AACnC,mDAA4C;AAC5C,qCAAqC;AAIrC;;GAEG;AACH,MAAe,UAAU;CAMxB;AA0KgB,gCAAU;AAxK3B;;GAEG;AACH,MAAM,UAAW,SAAQ,UAAU;IACjC,YAAmB,KAAc,EAAS,IAAiB;QACzD,KAAK,EAAE,CAAA;QADU,UAAK,GAAL,KAAK,CAAS;QAAS,SAAI,GAAJ,IAAI,CAAa;IAE3D,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,KAAK,CAAA;IACd,CAAC;IAED;;;;OAIG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAA;IAC7E,CAAC;IAED;;;;OAIG;IACH,IAAI;QACF,MAAM,IAAI,GAAG,mBAAU,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;QAC9C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QACtB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAA;IACtB,CAAC;IAED;;;OAGG;IACH,WAAW,CAAC,IAAe;QACzB,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;YAC3B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;SAC5B;QACD,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;IAC9B,CAAC;CACF;AAoH4B,gCAAU;AAlHvC;;GAEG;AACH,MAAM,WAAY,SAAQ,UAAU;IAIlC,YAAoB,QAAgB,CAAC;QACnC,KAAK,EAAE,CAAA;QADW,UAAK,GAAL,KAAK,CAAY;QAH7B,aAAQ,GAAG,CAAC,CAAA;QACZ,aAAQ,GAAsB,KAAK,CAAC,EAAE,CAAC,CAAA;IAI/C,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO,KAAK,CAAA;IACd,CAAC;IAED;;;;OAIG;IACH,UAAU;QACR,OAAO,0BAAU,CAAC,SAAS,CAAA;IAC7B,CAAC;IAED;;;;;OAKG;IACH,SAAS,CAAC,IAAY,EAAE,MAAkB;QACxC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAA;QAC3C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAA;IAC9B,CAAC;IAED;;OAEG;IACH,KAAK;QACH,OAAO,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAA;IAC5B,CAAC;IAED;;;;OAIG;IACH,IAAI;QACF,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE;YAChB,OAAQ,iBAAS,CAAC,OAA0B,CAAC,QAAQ,CAAA;SACtD;QACD,MAAM,IAAI,GAAG,mBAAU,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;QAC9C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QACtB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAA;IACtB,CAAC;IAED;;;;OAIG;IACH,WAAW,CAAC,IAAe;QACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;YAC/B,MAAM,IAAI,GAAG,MAAM;gBACjB,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE;gBACf,CAAC,CAAE,iBAAS,CAAC,OAA0B,CAAC,QAAQ,CAAA;YAClD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;SACvB;IACH,CAAC;IAED;;;;;;OAMG;IACH,OAAO,CAAC,KAAe,EAAE,IAAiB,EAAE,IAAiB;QAC3D,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,MAAM,IAAI,KAAK,EAAE,CAAA;SAClB;QACD,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;YAEtC,IAAI,QAAQ,KAAK,SAAS,EAAE;gBAC1B,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,IAAI,IAAI,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAA;aAC5D;iBAAM,IAAI,QAAQ,YAAY,UAAU,EAAE;gBACzC,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;gBAChD,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;gBACrD,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;gBACnC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;aACjC;iBAAM,IAAI,QAAQ,YAAY,WAAW,EAAE;gBAC1C,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;aACpC;iBAAM;gBACL,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;aAC/C;SACF;IACH,CAAC;CACF;AAED,MAAM,MAAO,SAAQ,WAAW;CAAG;AAE1B,wBAAM"}
|
|
@@ -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
|
+
}
|