ripple-binary-codec 1.4.2 → 1.4.3
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.js +25 -29
- package/dist/binary.js.map +1 -1
- package/dist/coretypes.js +31 -8
- package/dist/coretypes.js.map +1 -1
- package/dist/enums/bytes.d.ts +26 -0
- package/dist/enums/bytes.js +64 -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 +2330 -1971
- package/dist/enums/field.d.ts +29 -0
- package/dist/enums/field.js +59 -0
- package/dist/enums/field.js.map +1 -0
- package/dist/enums/index.js +69 -60
- package/dist/enums/index.js.map +1 -1
- package/dist/enums/src/enums/definitions.json +2337 -0
- package/dist/enums/utils-renumber.js +14 -14
- 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 +64 -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 +28 -0
- package/dist/enums/xrpl-definitions.js.map +1 -0
- package/dist/hash-prefixes.js +3 -3
- package/dist/hash-prefixes.js.map +1 -1
- package/dist/hashes.js +21 -43
- package/dist/hashes.js.map +1 -1
- package/dist/index.d.ts +2 -12
- package/dist/index.js +39 -16
- package/dist/index.js.map +1 -1
- package/dist/ledger-hashes.d.ts +1 -1
- package/dist/ledger-hashes.js +51 -28
- package/dist/ledger-hashes.js.map +1 -1
- package/dist/quality.js +18 -21
- package/dist/quality.js.map +1 -1
- package/dist/serdes/binary-parser.js +78 -56
- package/dist/serdes/binary-parser.js.map +1 -1
- package/dist/serdes/binary-serializer.js +59 -40
- package/dist/serdes/binary-serializer.js.map +1 -1
- package/dist/shamap.js +70 -98
- package/dist/shamap.js.map +1 -1
- package/dist/types/account-id.js +18 -35
- package/dist/types/account-id.js.map +1 -1
- package/dist/types/amount.js +71 -88
- package/dist/types/amount.js.map +1 -1
- package/dist/types/blob.js +10 -27
- package/dist/types/blob.js.map +1 -1
- package/dist/types/currency.js +26 -44
- package/dist/types/currency.js.map +1 -1
- package/dist/types/hash-128.d.ts +6 -0
- package/dist/types/hash-128.js +23 -25
- package/dist/types/hash-128.js.map +1 -1
- package/dist/types/hash-160.js +8 -25
- package/dist/types/hash-160.js.map +1 -1
- package/dist/types/hash-256.js +8 -25
- package/dist/types/hash-256.js.map +1 -1
- package/dist/types/hash.js +20 -38
- package/dist/types/hash.js.map +1 -1
- package/dist/types/index.js +18 -18
- package/dist/types/index.js.map +1 -1
- package/dist/types/path-set.js +57 -87
- package/dist/types/path-set.js.map +1 -1
- package/dist/types/serialized-type.d.ts +3 -3
- package/dist/types/serialized-type.js +35 -56
- package/dist/types/serialized-type.js.map +1 -1
- package/dist/types/st-array.js +26 -46
- package/dist/types/st-array.js.map +1 -1
- package/dist/types/st-object.js +49 -73
- package/dist/types/st-object.js.map +1 -1
- package/dist/types/uint-16.js +15 -32
- package/dist/types/uint-16.js.map +1 -1
- package/dist/types/uint-32.js +16 -33
- package/dist/types/uint-32.js.map +1 -1
- package/dist/types/uint-64.d.ts +1 -1
- package/dist/types/uint-64.js +30 -47
- package/dist/types/uint-64.js.map +1 -1
- package/dist/types/uint-8.js +15 -32
- package/dist/types/uint-8.js.map +1 -1
- package/dist/types/uint.d.ts +1 -1
- package/dist/types/uint.js +10 -27
- package/dist/types/uint.js.map +1 -1
- package/dist/types/vector-256.js +23 -40
- package/dist/types/vector-256.js.map +1 -1
- package/package.json +6 -8
- package/test/amount.test.js +1 -1
- package/test/binary-json.test.js +1 -1
- package/test/binary-parser.test.js +4 -4
- package/test/binary-serializer.test.js +3 -3
- package/test/fixtures/data-driven-tests.json +0 -14
- package/test/hash.test.js +28 -2
- package/test/ledger.test.js +1 -1
- package/test/lower-case-hex.test.js +1 -1
- package/test/pseudo-transaction.test.js +1 -1
- package/test/quality.test.js +1 -1
- package/test/shamap.test.js +3 -3
- package/test/signing-data-encoding.test.js +1 -1
- package/test/tx-encode-decode.test.js +1 -1
- package/test/types.test.js +2 -2
- package/test/uint.test.js +2 -2
- package/test/x-address.test.js +1 -1
package/dist/binary.js
CHANGED
|
@@ -2,24 +2,24 @@
|
|
|
2
2
|
/* eslint-disable func-style */
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
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
|
-
|
|
6
|
-
|
|
5
|
+
const types_1 = require("./types");
|
|
6
|
+
const binary_parser_1 = require("./serdes/binary-parser");
|
|
7
7
|
Object.defineProperty(exports, "BinaryParser", { enumerable: true, get: function () { return binary_parser_1.BinaryParser; } });
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
const hash_prefixes_1 = require("./hash-prefixes");
|
|
9
|
+
const binary_serializer_1 = require("./serdes/binary-serializer");
|
|
10
10
|
Object.defineProperty(exports, "BinarySerializer", { enumerable: true, get: function () { return binary_serializer_1.BinarySerializer; } });
|
|
11
11
|
Object.defineProperty(exports, "BytesList", { enumerable: true, get: function () { return binary_serializer_1.BytesList; } });
|
|
12
|
-
|
|
12
|
+
const hashes_1 = require("./hashes");
|
|
13
13
|
Object.defineProperty(exports, "sha512Half", { enumerable: true, get: function () { return hashes_1.sha512Half; } });
|
|
14
14
|
Object.defineProperty(exports, "transactionID", { enumerable: true, get: function () { return hashes_1.transactionID; } });
|
|
15
|
-
|
|
15
|
+
const bigInt = require("big-integer");
|
|
16
16
|
/**
|
|
17
17
|
* Construct a BinaryParser
|
|
18
18
|
*
|
|
19
19
|
* @param bytes hex-string to construct BinaryParser from
|
|
20
20
|
* @returns A BinaryParser
|
|
21
21
|
*/
|
|
22
|
-
|
|
22
|
+
const makeParser = (bytes) => new binary_parser_1.BinaryParser(bytes);
|
|
23
23
|
exports.makeParser = makeParser;
|
|
24
24
|
/**
|
|
25
25
|
* Parse BinaryParser into JSON
|
|
@@ -27,9 +27,7 @@ exports.makeParser = makeParser;
|
|
|
27
27
|
* @param parser BinaryParser object
|
|
28
28
|
* @returns JSON for the bytes in the BinaryParser
|
|
29
29
|
*/
|
|
30
|
-
|
|
31
|
-
return parser.readType(types_1.coreTypes.STObject).toJSON();
|
|
32
|
-
};
|
|
30
|
+
const readJSON = (parser) => parser.readType(types_1.coreTypes.STObject).toJSON();
|
|
33
31
|
exports.readJSON = readJSON;
|
|
34
32
|
/**
|
|
35
33
|
* Parse a hex-string into its JSON interpretation
|
|
@@ -37,7 +35,7 @@ exports.readJSON = readJSON;
|
|
|
37
35
|
* @param bytes hex-string to parse into JSON
|
|
38
36
|
* @returns JSON
|
|
39
37
|
*/
|
|
40
|
-
|
|
38
|
+
const binaryToJSON = (bytes) => readJSON(makeParser(bytes));
|
|
41
39
|
exports.binaryToJSON = binaryToJSON;
|
|
42
40
|
/**
|
|
43
41
|
* Function to serialize JSON object representing a transaction
|
|
@@ -46,15 +44,14 @@ exports.binaryToJSON = binaryToJSON;
|
|
|
46
44
|
* @param opts options for serializing, including optional prefix, suffix, and signingFieldOnly
|
|
47
45
|
* @returns A Buffer containing the serialized object
|
|
48
46
|
*/
|
|
49
|
-
function serializeObject(object, opts) {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
var bytesList = new binary_serializer_1.BytesList();
|
|
47
|
+
function serializeObject(object, opts = {}) {
|
|
48
|
+
const { prefix, suffix, signingFieldsOnly = false } = opts;
|
|
49
|
+
const bytesList = new binary_serializer_1.BytesList();
|
|
53
50
|
if (prefix) {
|
|
54
51
|
bytesList.put(prefix);
|
|
55
52
|
}
|
|
56
|
-
|
|
57
|
-
?
|
|
53
|
+
const filter = signingFieldsOnly
|
|
54
|
+
? (f) => f.isSigningField
|
|
58
55
|
: undefined;
|
|
59
56
|
types_1.coreTypes.STObject.from(object, filter).toBytesSink(bytesList);
|
|
60
57
|
if (suffix) {
|
|
@@ -70,9 +67,8 @@ exports.serializeObject = serializeObject;
|
|
|
70
67
|
* @param prefix Prefix bytes to put before the serialized object
|
|
71
68
|
* @returns A Buffer with the serialized object
|
|
72
69
|
*/
|
|
73
|
-
function signingData(transaction, prefix) {
|
|
74
|
-
|
|
75
|
-
return serializeObject(transaction, { prefix: prefix, signingFieldsOnly: true });
|
|
70
|
+
function signingData(transaction, prefix = hash_prefixes_1.HashPrefix.transactionSig) {
|
|
71
|
+
return serializeObject(transaction, { prefix, signingFieldsOnly: true });
|
|
76
72
|
}
|
|
77
73
|
exports.signingData = signingData;
|
|
78
74
|
/**
|
|
@@ -82,11 +78,11 @@ exports.signingData = signingData;
|
|
|
82
78
|
* @returns the serialized object with appropriate prefix
|
|
83
79
|
*/
|
|
84
80
|
function signingClaimData(claim) {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
81
|
+
const num = bigInt(String(claim.amount));
|
|
82
|
+
const prefix = hash_prefixes_1.HashPrefix.paymentChannelClaim;
|
|
83
|
+
const channel = types_1.coreTypes.Hash256.from(claim.channel).toBytes();
|
|
84
|
+
const amount = types_1.coreTypes.UInt64.from(num).toBytes();
|
|
85
|
+
const bytesList = new binary_serializer_1.BytesList();
|
|
90
86
|
bytesList.put(prefix);
|
|
91
87
|
bytesList.put(channel);
|
|
92
88
|
bytesList.put(amount);
|
|
@@ -101,11 +97,11 @@ exports.signingClaimData = signingClaimData;
|
|
|
101
97
|
* @returns serialized transaction with appropriate prefix and suffix
|
|
102
98
|
*/
|
|
103
99
|
function multiSigningData(transaction, signingAccount) {
|
|
104
|
-
|
|
105
|
-
|
|
100
|
+
const prefix = hash_prefixes_1.HashPrefix.transactionMultiSig;
|
|
101
|
+
const suffix = types_1.coreTypes.AccountID.from(signingAccount).toBytes();
|
|
106
102
|
return serializeObject(transaction, {
|
|
107
|
-
prefix
|
|
108
|
-
suffix
|
|
103
|
+
prefix,
|
|
104
|
+
suffix,
|
|
109
105
|
signingFieldsOnly: true,
|
|
110
106
|
});
|
|
111
107
|
}
|
package/dist/binary.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binary.js","sourceRoot":"","sources":["../src/binary.ts"],"names":[],"mappings":";AAAA,+BAA+B;;;AAE/B,
|
|
1
|
+
{"version":3,"file":"binary.js","sourceRoot":"","sources":["../src/binary.ts"],"names":[],"mappings":"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"}
|
package/dist/coretypes.js
CHANGED
|
@@ -1,24 +1,47 @@
|
|
|
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
|
+
};
|
|
2
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
26
|
exports.types = exports.ShaMap = exports.HashPrefix = exports.quality = exports.TransactionResult = exports.Type = exports.LedgerEntryType = exports.TransactionType = exports.Field = exports.ledgerHashes = exports.binary = exports.hashes = void 0;
|
|
4
|
-
|
|
27
|
+
const enums_1 = require("./enums");
|
|
5
28
|
Object.defineProperty(exports, "Field", { enumerable: true, get: function () { return enums_1.Field; } });
|
|
6
29
|
Object.defineProperty(exports, "TransactionType", { enumerable: true, get: function () { return enums_1.TransactionType; } });
|
|
7
30
|
Object.defineProperty(exports, "LedgerEntryType", { enumerable: true, get: function () { return enums_1.LedgerEntryType; } });
|
|
8
31
|
Object.defineProperty(exports, "Type", { enumerable: true, get: function () { return enums_1.Type; } });
|
|
9
32
|
Object.defineProperty(exports, "TransactionResult", { enumerable: true, get: function () { return enums_1.TransactionResult; } });
|
|
10
|
-
|
|
33
|
+
const types = __importStar(require("./types"));
|
|
11
34
|
exports.types = types;
|
|
12
|
-
|
|
35
|
+
const binary = __importStar(require("./binary"));
|
|
13
36
|
exports.binary = binary;
|
|
14
|
-
|
|
37
|
+
const shamap_1 = require("./shamap");
|
|
15
38
|
Object.defineProperty(exports, "ShaMap", { enumerable: true, get: function () { return shamap_1.ShaMap; } });
|
|
16
|
-
|
|
39
|
+
const ledgerHashes = __importStar(require("./ledger-hashes"));
|
|
17
40
|
exports.ledgerHashes = ledgerHashes;
|
|
18
|
-
|
|
41
|
+
const hashes = __importStar(require("./hashes"));
|
|
19
42
|
exports.hashes = hashes;
|
|
20
|
-
|
|
43
|
+
const quality_1 = require("./quality");
|
|
21
44
|
Object.defineProperty(exports, "quality", { enumerable: true, get: function () { return quality_1.quality; } });
|
|
22
|
-
|
|
45
|
+
const hash_prefixes_1 = require("./hash-prefixes");
|
|
23
46
|
Object.defineProperty(exports, "HashPrefix", { enumerable: true, get: function () { return hash_prefixes_1.HashPrefix; } });
|
|
24
47
|
//# sourceMappingURL=coretypes.js.map
|
package/dist/coretypes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coretypes.js","sourceRoot":"","sources":["../src/coretypes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"coretypes.js","sourceRoot":"","sources":["../src/coretypes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mCAMgB;AAad,sFAlBA,aAAK,OAkBA;AACL,gGAlBA,uBAAe,OAkBA;AACf,gGAlBA,uBAAe,OAkBA;AACf,qFAlBA,YAAI,OAkBA;AACJ,kGAlBA,yBAAiB,OAkBA;AAhBnB,+CAAgC;AAoB9B,sBAAK;AAnBP,iDAAkC;AAShC,wBAAM;AARR,qCAAiC;AAiB/B,uFAjBO,eAAM,OAiBP;AAhBR,8DAA+C;AAQ7C,oCAAY;AAPd,iDAAkC;AAKhC,wBAAM;AAJR,uCAAmC;AAYjC,wFAZO,iBAAO,OAYP;AAXT,mDAA4C;AAY1C,2FAZO,0BAAU,OAYP"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { BytesList, BinaryParser } from '../binary';
|
|
2
|
+
import { Buffer } from 'buffer/';
|
|
3
|
+
export declare class Bytes {
|
|
4
|
+
readonly name: string;
|
|
5
|
+
readonly ordinal: number;
|
|
6
|
+
readonly ordinalWidth: number;
|
|
7
|
+
readonly bytes: Buffer;
|
|
8
|
+
constructor(name: string, ordinal: number, ordinalWidth: number);
|
|
9
|
+
toJSON(): string;
|
|
10
|
+
toBytesSink(sink: BytesList): void;
|
|
11
|
+
toBytes(): Uint8Array;
|
|
12
|
+
}
|
|
13
|
+
export declare class BytesLookup {
|
|
14
|
+
readonly ordinalWidth: number;
|
|
15
|
+
constructor(types: Record<string, number>, ordinalWidth: number);
|
|
16
|
+
/**
|
|
17
|
+
* Add a new name value pair to the BytesLookup.
|
|
18
|
+
*
|
|
19
|
+
* @param name - A human readable name for the field.
|
|
20
|
+
* @param value - The numeric value for the field.
|
|
21
|
+
* @throws if the name or value already exist in the lookup because it's unclear how to decode.
|
|
22
|
+
*/
|
|
23
|
+
add(name: string, value: number): void;
|
|
24
|
+
from(value: Bytes | string): Bytes;
|
|
25
|
+
fromParser(parser: BinaryParser): Bytes;
|
|
26
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BytesLookup = exports.Bytes = void 0;
|
|
4
|
+
const buffer_1 = require("buffer/");
|
|
5
|
+
/*
|
|
6
|
+
* @brief: Bytes, name, and ordinal representing one type, ledger_type, transaction type, or result
|
|
7
|
+
*/
|
|
8
|
+
class Bytes {
|
|
9
|
+
constructor(name, ordinal, ordinalWidth) {
|
|
10
|
+
this.name = name;
|
|
11
|
+
this.ordinal = ordinal;
|
|
12
|
+
this.ordinalWidth = ordinalWidth;
|
|
13
|
+
this.bytes = buffer_1.Buffer.alloc(ordinalWidth);
|
|
14
|
+
for (let i = 0; i < ordinalWidth; i++) {
|
|
15
|
+
this.bytes[ordinalWidth - i - 1] = (ordinal >>> (i * 8)) & 0xff;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
toJSON() {
|
|
19
|
+
return this.name;
|
|
20
|
+
}
|
|
21
|
+
toBytesSink(sink) {
|
|
22
|
+
sink.put(this.bytes);
|
|
23
|
+
}
|
|
24
|
+
toBytes() {
|
|
25
|
+
return this.bytes;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.Bytes = Bytes;
|
|
29
|
+
/*
|
|
30
|
+
* @brief: Collection of Bytes objects, mapping bidirectionally
|
|
31
|
+
*/
|
|
32
|
+
class BytesLookup {
|
|
33
|
+
constructor(types, ordinalWidth) {
|
|
34
|
+
this.ordinalWidth = ordinalWidth;
|
|
35
|
+
Object.entries(types).forEach(([k, v]) => {
|
|
36
|
+
this.add(k, v);
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Add a new name value pair to the BytesLookup.
|
|
41
|
+
*
|
|
42
|
+
* @param name - A human readable name for the field.
|
|
43
|
+
* @param value - The numeric value for the field.
|
|
44
|
+
* @throws if the name or value already exist in the lookup because it's unclear how to decode.
|
|
45
|
+
*/
|
|
46
|
+
add(name, value) {
|
|
47
|
+
if (this[name]) {
|
|
48
|
+
throw new SyntaxError(`Attempted to add a value with a duplicate name "${name}". This is not allowed because it is unclear how to decode.`);
|
|
49
|
+
}
|
|
50
|
+
if (this[value.toString()]) {
|
|
51
|
+
throw new SyntaxError(`Attempted to add a duplicate value under a different name (Given name: "${name}" and previous name: "${this[value.toString()]}. This is not allowed because it is unclear how to decode.\nGiven value: ${value.toString()}`);
|
|
52
|
+
}
|
|
53
|
+
this[name] = new Bytes(name, value, this.ordinalWidth);
|
|
54
|
+
this[value.toString()] = this[name];
|
|
55
|
+
}
|
|
56
|
+
from(value) {
|
|
57
|
+
return value instanceof Bytes ? value : this[value];
|
|
58
|
+
}
|
|
59
|
+
fromParser(parser) {
|
|
60
|
+
return this.from(parser.readUIntN(this.ordinalWidth).toString());
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
exports.BytesLookup = BytesLookup;
|
|
64
|
+
//# sourceMappingURL=bytes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bytes.js","sourceRoot":"","sources":["../../src/enums/bytes.ts"],"names":[],"mappings":";;;AACA,oCAAgC;AAEhC;;GAEG;AACH,MAAa,KAAK;IAGhB,YACW,IAAY,EACZ,OAAe,EACf,YAAoB;QAFpB,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAQ;QACf,iBAAY,GAAZ,YAAY,CAAQ;QAE7B,IAAI,CAAC,KAAK,GAAG,eAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;QACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,EAAE,EAAE;YACrC,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;SAChE;IACH,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;IAED,WAAW,CAAC,IAAe;QACzB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACtB,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;CACF;AAzBD,sBAyBC;AAED;;GAEG;AACH,MAAa,WAAW;IACtB,YAAY,KAA6B,EAAW,YAAoB;QAApB,iBAAY,GAAZ,YAAY,CAAQ;QACtE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;YACvC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAChB,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;;;;;OAMG;IACH,GAAG,CAAC,IAAY,EAAE,KAAa;QAC7B,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE;YACd,MAAM,IAAI,WAAW,CACnB,mDAAmD,IAAI,6DAA6D,CACrH,CAAA;SACF;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE;YAC1B,MAAM,IAAI,WAAW,CACnB,2EAA2E,IAAI,yBAC7E,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CACvB,4EAA4E,KAAK,CAAC,QAAQ,EAAE,EAAE,CAC/F,CAAA;SACF;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;QACtD,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAA;IACrC,CAAC;IAED,IAAI,CAAC,KAAqB;QACxB,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAW,CAAA;IAChE,CAAC;IAED,UAAU,CAAC,MAAoB;QAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;IAClE,CAAC;CACF;AAtCD,kCAsCC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TRANSACTION_RESULT_WIDTH = exports.TRANSACTION_TYPE_WIDTH = exports.LEDGER_ENTRY_WIDTH = exports.TYPE_WIDTH = void 0;
|
|
4
|
+
exports.TYPE_WIDTH = 2;
|
|
5
|
+
exports.LEDGER_ENTRY_WIDTH = 2;
|
|
6
|
+
exports.TRANSACTION_TYPE_WIDTH = 2;
|
|
7
|
+
exports.TRANSACTION_RESULT_WIDTH = 1;
|
|
8
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/enums/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,UAAU,GAAG,CAAC,CAAA;AACd,QAAA,kBAAkB,GAAG,CAAC,CAAA;AACtB,QAAA,sBAAsB,GAAG,CAAC,CAAA;AAC1B,QAAA,wBAAwB,GAAG,CAAC,CAAA"}
|