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
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Bytes } from './bytes';
|
|
2
|
+
import { SerializedType } from '../types/serialized-type';
|
|
3
|
+
import { Buffer } from 'buffer/';
|
|
4
|
+
/**
|
|
5
|
+
* Encoding information for a rippled field, often used in transactions.
|
|
6
|
+
* See the enums [README.md](https://github.com/XRPLF/xrpl.js/tree/main/packages/ripple-binary-codec/src/enums) for more details on what each means.
|
|
7
|
+
*/
|
|
8
|
+
export interface FieldInfo {
|
|
9
|
+
nth: number;
|
|
10
|
+
isVLEncoded: boolean;
|
|
11
|
+
isSerialized: boolean;
|
|
12
|
+
isSigningField: boolean;
|
|
13
|
+
type: string;
|
|
14
|
+
}
|
|
15
|
+
export interface FieldInstance {
|
|
16
|
+
readonly nth: number;
|
|
17
|
+
readonly isVariableLengthEncoded: boolean;
|
|
18
|
+
readonly isSerialized: boolean;
|
|
19
|
+
readonly isSigningField: boolean;
|
|
20
|
+
readonly type: Bytes;
|
|
21
|
+
readonly ordinal: number;
|
|
22
|
+
readonly name: string;
|
|
23
|
+
readonly header: Buffer;
|
|
24
|
+
readonly associatedType: typeof SerializedType;
|
|
25
|
+
}
|
|
26
|
+
export declare class FieldLookup {
|
|
27
|
+
constructor(fields: Array<[string, FieldInfo]>, types: Record<string, number>);
|
|
28
|
+
fromString(value: string): FieldInstance;
|
|
29
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FieldLookup = void 0;
|
|
4
|
+
const bytes_1 = require("./bytes");
|
|
5
|
+
const serialized_type_1 = require("../types/serialized-type");
|
|
6
|
+
const constants_1 = require("./constants");
|
|
7
|
+
const buffer_1 = require("buffer/");
|
|
8
|
+
/*
|
|
9
|
+
* @brief: Serialize a field based on type_code and Field.nth
|
|
10
|
+
*/
|
|
11
|
+
function fieldHeader(type, nth) {
|
|
12
|
+
const header = [];
|
|
13
|
+
if (type < 16) {
|
|
14
|
+
if (nth < 16) {
|
|
15
|
+
header.push((type << 4) | nth);
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
header.push(type << 4, nth);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
else if (nth < 16) {
|
|
22
|
+
header.push(nth, type);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
header.push(0, type, nth);
|
|
26
|
+
}
|
|
27
|
+
return buffer_1.Buffer.from(header);
|
|
28
|
+
}
|
|
29
|
+
function buildField([name, info], typeOrdinal) {
|
|
30
|
+
const field = fieldHeader(typeOrdinal, info.nth);
|
|
31
|
+
return {
|
|
32
|
+
name: name,
|
|
33
|
+
nth: info.nth,
|
|
34
|
+
isVariableLengthEncoded: info.isVLEncoded,
|
|
35
|
+
isSerialized: info.isSerialized,
|
|
36
|
+
isSigningField: info.isSigningField,
|
|
37
|
+
ordinal: (typeOrdinal << 16) | info.nth,
|
|
38
|
+
type: new bytes_1.Bytes(info.type, typeOrdinal, constants_1.TYPE_WIDTH),
|
|
39
|
+
header: field,
|
|
40
|
+
associatedType: serialized_type_1.SerializedType, // For later assignment in ./types/index.js or Definitions.updateAll(...)
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
/*
|
|
44
|
+
* @brief: The collection of all fields as defined in definitions.json
|
|
45
|
+
*/
|
|
46
|
+
class FieldLookup {
|
|
47
|
+
constructor(fields, types) {
|
|
48
|
+
fields.forEach(([name, field_info]) => {
|
|
49
|
+
const typeOrdinal = types[field_info.type];
|
|
50
|
+
this[name] = buildField([name, field_info], typeOrdinal);
|
|
51
|
+
this[this[name].ordinal.toString()] = this[name];
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
fromString(value) {
|
|
55
|
+
return this[value];
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
exports.FieldLookup = FieldLookup;
|
|
59
|
+
//# sourceMappingURL=field.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field.js","sourceRoot":"","sources":["../../src/enums/field.ts"],"names":[],"mappings":";;;AAAA,mCAA+B;AAC/B,8DAAyD;AACzD,2CAAwC;AACxC,oCAAgC;AA0BhC;;GAEG;AACH,SAAS,WAAW,CAAC,IAAY,EAAE,GAAW;IAC5C,MAAM,MAAM,GAAkB,EAAE,CAAA;IAChC,IAAI,IAAI,GAAG,EAAE,EAAE;QACb,IAAI,GAAG,GAAG,EAAE,EAAE;YACZ,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAA;SAC/B;aAAM;YACL,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAA;SAC5B;KACF;SAAM,IAAI,GAAG,GAAG,EAAE,EAAE;QACnB,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;KACvB;SAAM;QACL,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,CAAA;KAC1B;IACD,OAAO,eAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;AAC5B,CAAC;AAED,SAAS,UAAU,CACjB,CAAC,IAAI,EAAE,IAAI,CAAsB,EACjC,WAAmB;IAEnB,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;IAChD,OAAO;QACL,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,uBAAuB,EAAE,IAAI,CAAC,WAAW;QACzC,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,OAAO,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG;QACvC,IAAI,EAAE,IAAI,aAAK,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,sBAAU,CAAC;QACnD,MAAM,EAAE,KAAK;QACb,cAAc,EAAE,gCAAc,EAAE,yEAAyE;KAC1G,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAa,WAAW;IACtB,YACE,MAAkC,EAClC,KAA6B;QAE7B,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,EAAE;YACpC,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;YAC1C,IAAI,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,CAAA;YACxD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAA;QAClD,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,UAAU,CAAC,KAAa;QACtB,OAAO,IAAI,CAAC,KAAK,CAAkB,CAAA;IACrC,CAAC;CACF;AAfD,kCAeC"}
|
package/dist/enums/index.js
CHANGED
|
@@ -1,30 +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.TransactionType = exports.TransactionResult = exports.LedgerEntryType = exports.Type = exports.Field = exports.Bytes = exports.TRANSACTION_TYPES = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
27
|
+
const enums = __importStar(require("./definitions.json"));
|
|
28
|
+
const serialized_type_1 = require("../types/serialized-type");
|
|
29
|
+
const buffer_1 = require("buffer/");
|
|
7
30
|
/*
|
|
8
31
|
* @brief: All valid transaction types
|
|
9
32
|
*/
|
|
10
33
|
exports.TRANSACTION_TYPES = Object.entries(enums.TRANSACTION_TYPES)
|
|
11
|
-
.filter(
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
return key;
|
|
18
|
-
});
|
|
19
|
-
var TYPE_WIDTH = 2;
|
|
20
|
-
var LEDGER_ENTRY_WIDTH = 2;
|
|
21
|
-
var TRANSACTION_TYPE_WIDTH = 2;
|
|
22
|
-
var TRANSACTION_RESULT_WIDTH = 1;
|
|
34
|
+
.filter(([_key, value]) => value >= 0)
|
|
35
|
+
.map(([key, _value]) => key);
|
|
36
|
+
const TYPE_WIDTH = 2;
|
|
37
|
+
const LEDGER_ENTRY_WIDTH = 2;
|
|
38
|
+
const TRANSACTION_TYPE_WIDTH = 2;
|
|
39
|
+
const TRANSACTION_RESULT_WIDTH = 1;
|
|
23
40
|
/*
|
|
24
41
|
* @brief: Serialize a field based on type_code and Field.nth
|
|
25
42
|
*/
|
|
26
43
|
function fieldHeader(type, nth) {
|
|
27
|
-
|
|
44
|
+
const header = [];
|
|
28
45
|
if (type < 16) {
|
|
29
46
|
if (nth < 16) {
|
|
30
47
|
header.push((type << 4) | nth);
|
|
@@ -44,53 +61,48 @@ function fieldHeader(type, nth) {
|
|
|
44
61
|
/*
|
|
45
62
|
* @brief: Bytes, name, and ordinal representing one type, ledger_type, transaction type, or result
|
|
46
63
|
*/
|
|
47
|
-
|
|
48
|
-
|
|
64
|
+
class Bytes {
|
|
65
|
+
constructor(name, ordinal, ordinalWidth) {
|
|
49
66
|
this.name = name;
|
|
50
67
|
this.ordinal = ordinal;
|
|
51
68
|
this.ordinalWidth = ordinalWidth;
|
|
52
69
|
this.bytes = buffer_1.Buffer.alloc(ordinalWidth);
|
|
53
|
-
for (
|
|
70
|
+
for (let i = 0; i < ordinalWidth; i++) {
|
|
54
71
|
this.bytes[ordinalWidth - i - 1] = (ordinal >>> (i * 8)) & 0xff;
|
|
55
72
|
}
|
|
56
73
|
}
|
|
57
|
-
|
|
74
|
+
toJSON() {
|
|
58
75
|
return this.name;
|
|
59
|
-
}
|
|
60
|
-
|
|
76
|
+
}
|
|
77
|
+
toBytesSink(sink) {
|
|
61
78
|
sink.put(this.bytes);
|
|
62
|
-
}
|
|
63
|
-
|
|
79
|
+
}
|
|
80
|
+
toBytes() {
|
|
64
81
|
return this.bytes;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
}());
|
|
82
|
+
}
|
|
83
|
+
}
|
|
68
84
|
exports.Bytes = Bytes;
|
|
69
85
|
/*
|
|
70
86
|
* @brief: Collection of Bytes objects, mapping bidirectionally
|
|
71
87
|
*/
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
var _this = this;
|
|
88
|
+
class BytesLookup {
|
|
89
|
+
constructor(types, ordinalWidth) {
|
|
75
90
|
this.ordinalWidth = ordinalWidth;
|
|
76
|
-
Object.entries(types).forEach(
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
_this[v.toString()] = _this[k];
|
|
91
|
+
Object.entries(types).forEach(([k, v]) => {
|
|
92
|
+
this[k] = new Bytes(k, v, ordinalWidth);
|
|
93
|
+
this[v.toString()] = this[k];
|
|
80
94
|
});
|
|
81
95
|
}
|
|
82
|
-
|
|
96
|
+
from(value) {
|
|
83
97
|
return value instanceof Bytes ? value : this[value];
|
|
84
|
-
}
|
|
85
|
-
|
|
98
|
+
}
|
|
99
|
+
fromParser(parser) {
|
|
86
100
|
return this.from(parser.readUIntN(this.ordinalWidth).toString());
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
var typeOrdinal = enums.TYPES[info.type];
|
|
93
|
-
var field = fieldHeader(typeOrdinal, info.nth);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
function buildField([name, info]) {
|
|
104
|
+
const typeOrdinal = enums.TYPES[info.type];
|
|
105
|
+
const field = fieldHeader(typeOrdinal, info.nth);
|
|
94
106
|
return {
|
|
95
107
|
name: name,
|
|
96
108
|
nth: info.nth,
|
|
@@ -106,28 +118,25 @@ function buildField(_a) {
|
|
|
106
118
|
/*
|
|
107
119
|
* @brief: The collection of all fields as defined in definitions.json
|
|
108
120
|
*/
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
_this[k] = buildField([k, v]);
|
|
115
|
-
_this[_this[k].ordinal.toString()] = _this[k];
|
|
121
|
+
class FieldLookup {
|
|
122
|
+
constructor(fields) {
|
|
123
|
+
fields.forEach(([k, v]) => {
|
|
124
|
+
this[k] = buildField([k, v]);
|
|
125
|
+
this[this[k].ordinal.toString()] = this[k];
|
|
116
126
|
});
|
|
117
127
|
}
|
|
118
|
-
|
|
128
|
+
fromString(value) {
|
|
119
129
|
return this[value];
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
var Type = new BytesLookup(enums.TYPES, TYPE_WIDTH);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
const Type = new BytesLookup(enums.TYPES, TYPE_WIDTH);
|
|
124
133
|
exports.Type = Type;
|
|
125
|
-
|
|
134
|
+
const LedgerEntryType = new BytesLookup(enums.LEDGER_ENTRY_TYPES, LEDGER_ENTRY_WIDTH);
|
|
126
135
|
exports.LedgerEntryType = LedgerEntryType;
|
|
127
|
-
|
|
136
|
+
const TransactionType = new BytesLookup(enums.TRANSACTION_TYPES, TRANSACTION_TYPE_WIDTH);
|
|
128
137
|
exports.TransactionType = TransactionType;
|
|
129
|
-
|
|
138
|
+
const TransactionResult = new BytesLookup(enums.TRANSACTION_RESULTS, TRANSACTION_RESULT_WIDTH);
|
|
130
139
|
exports.TransactionResult = TransactionResult;
|
|
131
|
-
|
|
140
|
+
const Field = new FieldLookup(enums.FIELDS);
|
|
132
141
|
exports.Field = Field;
|
|
133
142
|
//# sourceMappingURL=index.js.map
|
package/dist/enums/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/enums/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/enums/index.ts"],"names":[],"mappings":"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"}
|