ripple-binary-codec 1.5.0-beta.3 → 1.5.0-beta.4

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.
Files changed (54) hide show
  1. package/dist/binary.d.ts +21 -6
  2. package/dist/binary.js +28 -9
  3. package/dist/binary.js.map +1 -1
  4. package/dist/coretypes.d.ts +2 -2
  5. package/dist/coretypes.js +2 -1
  6. package/dist/coretypes.js.map +1 -1
  7. package/dist/enums/bytes.d.ts +1 -1
  8. package/dist/enums/bytes.js +24 -28
  9. package/dist/enums/bytes.js.map +1 -1
  10. package/dist/enums/definitions.json +78 -37
  11. package/dist/enums/field.d.ts +0 -1
  12. package/dist/enums/field.js +16 -22
  13. package/dist/enums/field.js.map +1 -1
  14. package/dist/enums/index.d.ts +12 -48
  15. package/dist/enums/index.js +18 -109
  16. package/dist/enums/index.js.map +1 -1
  17. package/dist/enums/src/enums/definitions.json +78 -37
  18. package/dist/enums/xrpl-definitions-base.d.ts +44 -0
  19. package/dist/enums/xrpl-definitions-base.js +59 -0
  20. package/dist/enums/xrpl-definitions-base.js.map +1 -0
  21. package/dist/enums/xrpl-definitions.d.ts +7 -30
  22. package/dist/enums/xrpl-definitions.js +12 -52
  23. package/dist/enums/xrpl-definitions.js.map +1 -1
  24. package/dist/index.d.ts +14 -6
  25. package/dist/index.js +24 -9
  26. package/dist/index.js.map +1 -1
  27. package/dist/ledger-hashes.d.ts +4 -1
  28. package/dist/ledger-hashes.js +4 -2
  29. package/dist/ledger-hashes.js.map +1 -1
  30. package/dist/serdes/binary-parser.d.ts +6 -3
  31. package/dist/serdes/binary-parser.js +5 -2
  32. package/dist/serdes/binary-parser.js.map +1 -1
  33. package/dist/serdes/binary-serializer.d.ts +1 -1
  34. package/dist/shamap.js +3 -1
  35. package/dist/shamap.js.map +1 -1
  36. package/dist/types/index.d.ts +3 -22
  37. package/dist/types/index.js +21 -8
  38. package/dist/types/index.js.map +1 -1
  39. package/dist/types/st-object.d.ts +6 -3
  40. package/dist/types/st-object.js +7 -5
  41. package/dist/types/st-object.js.map +1 -1
  42. package/package.json +6 -5
  43. package/test/definitions.test.js +100 -0
  44. package/test/fixtures/codec-fixtures.json +78 -78
  45. package/test/signing-data-encoding.test.js +103 -1
  46. package/dist/serdes/bytes-list.d.ts +0 -29
  47. package/dist/serdes/bytes-list.js +0 -48
  48. package/dist/serdes/bytes-list.js.map +0 -1
  49. package/dist/types/issued-currency.d.ts +0 -46
  50. package/dist/types/issued-currency.js +0 -108
  51. package/dist/types/issued-currency.js.map +0 -1
  52. package/dist/types/xchain-attestation-batch.d.ts +0 -44
  53. package/dist/types/xchain-attestation-batch.js +0 -90
  54. package/dist/types/xchain-attestation-batch.js.map +0 -1
@@ -1,15 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FieldLookup = void 0;
4
- var bytes_1 = require("./bytes");
5
- var serialized_type_1 = require("../types/serialized-type");
6
- var constants_1 = require("./constants");
7
- var buffer_1 = require("buffer/");
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
8
  /*
9
9
  * @brief: Serialize a field based on type_code and Field.nth
10
10
  */
11
11
  function fieldHeader(type, nth) {
12
- var header = [];
12
+ const header = [];
13
13
  if (type < 16) {
14
14
  if (nth < 16) {
15
15
  header.push((type << 4) | nth);
@@ -26,9 +26,8 @@ function fieldHeader(type, nth) {
26
26
  }
27
27
  return buffer_1.Buffer.from(header);
28
28
  }
29
- function buildField(_a, typeOrdinal) {
30
- var name = _a[0], info = _a[1];
31
- var field = fieldHeader(typeOrdinal, info.nth);
29
+ function buildField([name, info], typeOrdinal) {
30
+ const field = fieldHeader(typeOrdinal, info.nth);
32
31
  return {
33
32
  name: name,
34
33
  nth: info.nth,
@@ -44,22 +43,17 @@ function buildField(_a, typeOrdinal) {
44
43
  /*
45
44
  * @brief: The collection of all fields as defined in definitions.json
46
45
  */
47
- var FieldLookup = /** @class */ (function () {
48
- function FieldLookup(fields, types) {
49
- var _this = this;
50
- fields.forEach(function (_a) {
51
- var k = _a[0], v = _a[1];
52
- _this.add(k, v, types[v.type]);
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];
53
52
  });
54
53
  }
55
- FieldLookup.prototype.add = function (name, field_info, typeOrdinal) {
56
- this[name] = buildField([name, field_info], typeOrdinal);
57
- this[this[name].ordinal.toString()] = this[name];
58
- };
59
- FieldLookup.prototype.fromString = function (value) {
54
+ fromString(value) {
60
55
  return this[value];
61
- };
62
- return FieldLookup;
63
- }());
56
+ }
57
+ }
64
58
  exports.FieldLookup = FieldLookup;
65
59
  //# sourceMappingURL=field.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"field.js","sourceRoot":"","sources":["../../src/enums/field.ts"],"names":[],"mappings":";;;AAAA,iCAA+B;AAC/B,4DAAyD;AACzD,yCAAwC;AACxC,kCAAgC;AA0BhC;;GAEG;AACH,SAAS,WAAW,CAAC,IAAY,EAAE,GAAW;IAC5C,IAAM,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,EAAiC,EACjC,WAAmB;QADlB,IAAI,QAAA,EAAE,IAAI,QAAA;IAGX,IAAM,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;IACE,qBACE,MAAkC,EAClC,KAA6B;QAF/B,iBAOC;QAHC,MAAM,CAAC,OAAO,CAAC,UAAC,EAAM;gBAAL,CAAC,QAAA,EAAE,CAAC,QAAA;YACnB,KAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;QAC/B,CAAC,CAAC,CAAA;IACJ,CAAC;IAEM,yBAAG,GAAV,UAAW,IAAY,EAAE,UAAqB,EAAE,WAAmB;QACjE,IAAI,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,CAAA;QACxD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAA;IAClD,CAAC;IAED,gCAAU,GAAV,UAAW,KAAa;QACtB,OAAO,IAAI,CAAC,KAAK,CAAkB,CAAA;IACrC,CAAC;IACH,kBAAC;AAAD,CAAC,AAlBD,IAkBC;AAlBY,kCAAW"}
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"}
@@ -1,48 +1,12 @@
1
- import { SerializedType } from '../types/serialized-type';
2
- import { Buffer } from 'buffer/';
3
- import { BytesList } from '../binary';
4
- export declare const TRANSACTION_TYPES: string[];
5
- export declare class Bytes {
6
- readonly name: string;
7
- readonly ordinal: number;
8
- readonly ordinalWidth: number;
9
- readonly bytes: Buffer;
10
- constructor(name: string, ordinal: number, ordinalWidth: number);
11
- toJSON(): string;
12
- toBytesSink(sink: BytesList): void;
13
- toBytes(): Uint8Array;
14
- }
15
- declare class BytesLookup {
16
- readonly ordinalWidth: number;
17
- constructor(types: Record<string, number>, ordinalWidth: number);
18
- from(value: Bytes | string): Bytes;
19
- fromParser(parser: any): Bytes;
20
- }
21
- interface FieldInfo {
22
- nth: number;
23
- isVLEncoded: boolean;
24
- isSerialized: boolean;
25
- isSigningField: boolean;
26
- type: string;
27
- }
28
- interface FieldInstance {
29
- readonly nth: number;
30
- readonly isVariableLengthEncoded: boolean;
31
- readonly isSerialized: boolean;
32
- readonly isSigningField: boolean;
33
- readonly type: Bytes;
34
- readonly ordinal: number;
35
- readonly name: string;
36
- readonly header: Buffer;
37
- readonly associatedType: typeof SerializedType;
38
- }
39
- declare class FieldLookup {
40
- constructor(fields: Array<[string, FieldInfo]>);
41
- fromString(value: string): FieldInstance;
42
- }
43
- declare const Type: BytesLookup;
44
- declare const LedgerEntryType: BytesLookup;
45
- declare const TransactionType: BytesLookup;
46
- declare const TransactionResult: BytesLookup;
47
- declare const Field: FieldLookup;
48
- export { Field, FieldInstance, Type, LedgerEntryType, TransactionResult, TransactionType, };
1
+ import { XrplDefinitionsBase, FieldInstance, Bytes } from './xrpl-definitions-base';
2
+ /**
3
+ * By default, coreTypes from the `types` folder is where known type definitions are initialized to avoid import cycles.
4
+ */
5
+ declare const DEFAULT_DEFINITIONS: XrplDefinitionsBase;
6
+ declare const Type: import("./bytes").BytesLookup;
7
+ declare const LedgerEntryType: import("./bytes").BytesLookup;
8
+ declare const TransactionType: import("./bytes").BytesLookup;
9
+ declare const TransactionResult: import("./bytes").BytesLookup;
10
+ declare const Field: import("./field").FieldLookup;
11
+ declare const TRANSACTION_TYPES: string[];
12
+ export { Bytes, XrplDefinitionsBase, DEFAULT_DEFINITIONS, Field, FieldInstance, Type, LedgerEntryType, TransactionResult, TransactionType, TRANSACTION_TYPES, };
@@ -23,120 +23,29 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.TransactionType = exports.TransactionResult = exports.LedgerEntryType = exports.Type = exports.Field = exports.Bytes = exports.TRANSACTION_TYPES = void 0;
26
+ exports.TRANSACTION_TYPES = exports.TransactionType = exports.TransactionResult = exports.LedgerEntryType = exports.Type = exports.Field = exports.DEFAULT_DEFINITIONS = exports.XrplDefinitionsBase = exports.Bytes = void 0;
27
27
  const enums = __importStar(require("./definitions.json"));
28
- const serialized_type_1 = require("../types/serialized-type");
29
- const buffer_1 = require("buffer/");
30
- /*
31
- * @brief: All valid transaction types
32
- */
33
- exports.TRANSACTION_TYPES = Object.entries(enums.TRANSACTION_TYPES)
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;
40
- /*
41
- * @brief: Serialize a field based on type_code and Field.nth
28
+ const xrpl_definitions_base_1 = require("./xrpl-definitions-base");
29
+ Object.defineProperty(exports, "XrplDefinitionsBase", { enumerable: true, get: function () { return xrpl_definitions_base_1.XrplDefinitionsBase; } });
30
+ Object.defineProperty(exports, "Bytes", { enumerable: true, get: function () { return xrpl_definitions_base_1.Bytes; } });
31
+ /**
32
+ * By default, coreTypes from the `types` folder is where known type definitions are initialized to avoid import cycles.
42
33
  */
43
- function fieldHeader(type, nth) {
44
- const header = [];
45
- if (type < 16) {
46
- if (nth < 16) {
47
- header.push((type << 4) | nth);
48
- }
49
- else {
50
- header.push(type << 4, nth);
51
- }
52
- }
53
- else if (nth < 16) {
54
- header.push(nth, type);
55
- }
56
- else {
57
- header.push(0, type, nth);
58
- }
59
- return buffer_1.Buffer.from(header);
60
- }
61
- /*
62
- * @brief: Bytes, name, and ordinal representing one type, ledger_type, transaction type, or result
63
- */
64
- class Bytes {
65
- constructor(name, ordinal, ordinalWidth) {
66
- this.name = name;
67
- this.ordinal = ordinal;
68
- this.ordinalWidth = ordinalWidth;
69
- this.bytes = buffer_1.Buffer.alloc(ordinalWidth);
70
- for (let i = 0; i < ordinalWidth; i++) {
71
- this.bytes[ordinalWidth - i - 1] = (ordinal >>> (i * 8)) & 0xff;
72
- }
73
- }
74
- toJSON() {
75
- return this.name;
76
- }
77
- toBytesSink(sink) {
78
- sink.put(this.bytes);
79
- }
80
- toBytes() {
81
- return this.bytes;
82
- }
83
- }
84
- exports.Bytes = Bytes;
85
- /*
86
- * @brief: Collection of Bytes objects, mapping bidirectionally
87
- */
88
- class BytesLookup {
89
- constructor(types, ordinalWidth) {
90
- this.ordinalWidth = ordinalWidth;
91
- Object.entries(types).forEach(([k, v]) => {
92
- this[k] = new Bytes(k, v, ordinalWidth);
93
- this[v.toString()] = this[k];
94
- });
95
- }
96
- from(value) {
97
- return value instanceof Bytes ? value : this[value];
98
- }
99
- fromParser(parser) {
100
- return this.from(parser.readUIntN(this.ordinalWidth).toString());
101
- }
102
- }
103
- function buildField([name, info]) {
104
- const typeOrdinal = enums.TYPES[info.type];
105
- const field = fieldHeader(typeOrdinal, info.nth);
106
- return {
107
- name: name,
108
- nth: info.nth,
109
- isVariableLengthEncoded: info.isVLEncoded,
110
- isSerialized: info.isSerialized,
111
- isSigningField: info.isSigningField,
112
- ordinal: (typeOrdinal << 16) | info.nth,
113
- type: new Bytes(info.type, typeOrdinal, TYPE_WIDTH),
114
- header: field,
115
- associatedType: serialized_type_1.SerializedType, // For later assignment in ./types/index.js
116
- };
117
- }
118
- /*
119
- * @brief: The collection of all fields as defined in definitions.json
120
- */
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];
126
- });
127
- }
128
- fromString(value) {
129
- return this[value];
130
- }
131
- }
132
- const Type = new BytesLookup(enums.TYPES, TYPE_WIDTH);
34
+ const DEFAULT_DEFINITIONS = new xrpl_definitions_base_1.XrplDefinitionsBase(enums, {});
35
+ exports.DEFAULT_DEFINITIONS = DEFAULT_DEFINITIONS;
36
+ const Type = DEFAULT_DEFINITIONS.type;
133
37
  exports.Type = Type;
134
- const LedgerEntryType = new BytesLookup(enums.LEDGER_ENTRY_TYPES, LEDGER_ENTRY_WIDTH);
38
+ const LedgerEntryType = DEFAULT_DEFINITIONS.ledgerEntryType;
135
39
  exports.LedgerEntryType = LedgerEntryType;
136
- const TransactionType = new BytesLookup(enums.TRANSACTION_TYPES, TRANSACTION_TYPE_WIDTH);
40
+ const TransactionType = DEFAULT_DEFINITIONS.transactionType;
137
41
  exports.TransactionType = TransactionType;
138
- const TransactionResult = new BytesLookup(enums.TRANSACTION_RESULTS, TRANSACTION_RESULT_WIDTH);
42
+ const TransactionResult = DEFAULT_DEFINITIONS.transactionResult;
139
43
  exports.TransactionResult = TransactionResult;
140
- const Field = new FieldLookup(enums.FIELDS);
44
+ const Field = DEFAULT_DEFINITIONS.field;
141
45
  exports.Field = Field;
46
+ /*
47
+ * @brief: All valid transaction types
48
+ */
49
+ const TRANSACTION_TYPES = DEFAULT_DEFINITIONS.transactionNames;
50
+ exports.TRANSACTION_TYPES = TRANSACTION_TYPES;
142
51
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/enums/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/enums/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAA2C;AAC3C,mEAIgC;AAmB9B,oGAtBA,2CAAmB,OAsBA;AADnB,sFAnBA,6BAAK,OAmBA;AAjBP;;GAEG;AACH,MAAM,mBAAmB,GAAG,IAAI,2CAAmB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;AAgB5D,kDAAmB;AAdrB,MAAM,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAA;AAiBnC,oBAAI;AAhBN,MAAM,eAAe,GAAG,mBAAmB,CAAC,eAAe,CAAA;AAiBzD,0CAAe;AAhBjB,MAAM,eAAe,GAAG,mBAAmB,CAAC,eAAe,CAAA;AAkBzD,0CAAe;AAjBjB,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,iBAAiB,CAAA;AAgB7D,8CAAiB;AAfnB,MAAM,KAAK,GAAG,mBAAmB,CAAC,KAAK,CAAA;AAWrC,sBAAK;AATP;;GAEG;AACH,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,gBAAgB,CAAA;AAY5D,8CAAiB"}
@@ -297,6 +297,16 @@
297
297
  "type": "UInt16"
298
298
  }
299
299
  ],
300
+ [
301
+ "DiscountedFee",
302
+ {
303
+ "nth": 6,
304
+ "isVLEncoded": false,
305
+ "isSerialized": true,
306
+ "isSigningField": true,
307
+ "type": "UInt16"
308
+ }
309
+ ],
300
310
  [
301
311
  "Version",
302
312
  {
@@ -347,6 +357,16 @@
347
357
  "type": "UInt16"
348
358
  }
349
359
  ],
360
+ [
361
+ "NetworkID",
362
+ {
363
+ "nth": 1,
364
+ "isVLEncoded": false,
365
+ "isSerialized": true,
366
+ "isSigningField": true,
367
+ "type": "UInt32"
368
+ }
369
+ ],
350
370
  [
351
371
  "Flags",
352
372
  {
@@ -788,7 +808,7 @@
788
808
  }
789
809
  ],
790
810
  [
791
- "VoteWeight",
811
+ "LockCount",
792
812
  {
793
813
  "nth": 47,
794
814
  "isVLEncoded": false,
@@ -798,7 +818,7 @@
798
818
  }
799
819
  ],
800
820
  [
801
- "DiscountedFee",
821
+ "VoteWeight",
802
822
  {
803
823
  "nth": 48,
804
824
  "isVLEncoded": false,
@@ -808,9 +828,9 @@
808
828
  }
809
829
  ],
810
830
  [
811
- "LockCount",
831
+ "FirstNFTokenSequence",
812
832
  {
813
- "nth": 49,
833
+ "nth": 50,
814
834
  "isVLEncoded": false,
815
835
  "isSerialized": true,
816
836
  "isSigningField": true,
@@ -1548,9 +1568,9 @@
1548
1568
  }
1549
1569
  ],
1550
1570
  [
1551
- "LPTokenOut",
1571
+ "LockedBalance",
1552
1572
  {
1553
- "nth": 20,
1573
+ "nth": 21,
1554
1574
  "isVLEncoded": false,
1555
1575
  "isSerialized": true,
1556
1576
  "isSigningField": true,
@@ -1558,9 +1578,9 @@
1558
1578
  }
1559
1579
  ],
1560
1580
  [
1561
- "LPTokenIn",
1581
+ "BaseFeeDrops",
1562
1582
  {
1563
- "nth": 21,
1583
+ "nth": 22,
1564
1584
  "isVLEncoded": false,
1565
1585
  "isSerialized": true,
1566
1586
  "isSigningField": true,
@@ -1568,9 +1588,9 @@
1568
1588
  }
1569
1589
  ],
1570
1590
  [
1571
- "EPrice",
1591
+ "ReserveBaseDrops",
1572
1592
  {
1573
- "nth": 22,
1593
+ "nth": 23,
1574
1594
  "isVLEncoded": false,
1575
1595
  "isSerialized": true,
1576
1596
  "isSigningField": true,
@@ -1578,9 +1598,9 @@
1578
1598
  }
1579
1599
  ],
1580
1600
  [
1581
- "Price",
1601
+ "ReserveIncrementDrops",
1582
1602
  {
1583
- "nth": 23,
1603
+ "nth": 24,
1584
1604
  "isVLEncoded": false,
1585
1605
  "isSerialized": true,
1586
1606
  "isSigningField": true,
@@ -1588,9 +1608,39 @@
1588
1608
  }
1589
1609
  ],
1590
1610
  [
1591
- "LPTokenBalance",
1611
+ "LPTokenOut",
1592
1612
  {
1593
- "nth": 24,
1613
+ "nth": 25,
1614
+ "isVLEncoded": false,
1615
+ "isSerialized": true,
1616
+ "isSigningField": true,
1617
+ "type": "Amount"
1618
+ }
1619
+ ],
1620
+ [
1621
+ "LPTokenIn",
1622
+ {
1623
+ "nth": 26,
1624
+ "isVLEncoded": false,
1625
+ "isSerialized": true,
1626
+ "isSigningField": true,
1627
+ "type": "Amount"
1628
+ }
1629
+ ],
1630
+ [
1631
+ "EPrice",
1632
+ {
1633
+ "nth": 27,
1634
+ "isVLEncoded": false,
1635
+ "isSerialized": true,
1636
+ "isSigningField": true,
1637
+ "type": "Amount"
1638
+ }
1639
+ ],
1640
+ [
1641
+ "Price",
1642
+ {
1643
+ "nth": 28,
1594
1644
  "isVLEncoded": false,
1595
1645
  "isSerialized": true,
1596
1646
  "isSigningField": true,
@@ -1618,7 +1668,7 @@
1618
1668
  }
1619
1669
  ],
1620
1670
  [
1621
- "LockedBalance",
1671
+ "LPTokenBalance",
1622
1672
  {
1623
1673
  "nth": 31,
1624
1674
  "isVLEncoded": false,
@@ -1957,16 +2007,6 @@
1957
2007
  "type": "AccountID"
1958
2008
  }
1959
2009
  ],
1960
- [
1961
- "AMMAccount",
1962
- {
1963
- "nth": 11,
1964
- "isVLEncoded": true,
1965
- "isSerialized": true,
1966
- "isSigningField": true,
1967
- "type": "AccountID"
1968
- }
1969
- ],
1970
2010
  [
1971
2011
  "HookAccount",
1972
2012
  {
@@ -2360,7 +2400,7 @@
2360
2400
  [
2361
2401
  "AuctionSlot",
2362
2402
  {
2363
- "nth": 27,
2403
+ "nth": 26,
2364
2404
  "isVLEncoded": false,
2365
2405
  "isSerialized": true,
2366
2406
  "isSigningField": true,
@@ -2370,7 +2410,7 @@
2370
2410
  [
2371
2411
  "AuthAccount",
2372
2412
  {
2373
- "nth": 28,
2413
+ "nth": 27,
2374
2414
  "isVLEncoded": false,
2375
2415
  "isSerialized": true,
2376
2416
  "isSigningField": true,
@@ -2510,7 +2550,7 @@
2510
2550
  [
2511
2551
  "VoteSlots",
2512
2552
  {
2513
- "nth": 14,
2553
+ "nth": 12,
2514
2554
  "isVLEncoded": false,
2515
2555
  "isSerialized": true,
2516
2556
  "isSigningField": true,
@@ -2610,7 +2650,7 @@
2610
2650
  [
2611
2651
  "AuthAccounts",
2612
2652
  {
2613
- "nth": 26,
2653
+ "nth": 25,
2614
2654
  "isVLEncoded": false,
2615
2655
  "isSerialized": true,
2616
2656
  "isSigningField": true,
@@ -2632,6 +2672,9 @@
2632
2672
  "telCAN_NOT_QUEUE_BLOCKED": -389,
2633
2673
  "telCAN_NOT_QUEUE_FEE": -388,
2634
2674
  "telCAN_NOT_QUEUE_FULL": -387,
2675
+ "telWRONG_NETWORK": -386,
2676
+ "telREQUIRES_NETWORK_ID": -385,
2677
+ "telNETWORK_ID_MAKES_TX_NON_CANONICAL": -384,
2635
2678
 
2636
2679
  "temMALFORMED": -299,
2637
2680
  "temBAD_AMOUNT": -298,
@@ -2671,7 +2714,7 @@
2671
2714
  "temUNKNOWN": -264,
2672
2715
  "temSEQ_AND_TICKET": -263,
2673
2716
  "temBAD_NFTOKEN_TRANSFER_FEE": -262,
2674
- "temAMM_BAD_TOKENS": -261,
2717
+ "temBAD_AMM_TOKENS": -261,
2675
2718
  "temEQUAL_DOOR_ACCOUNTS": -259,
2676
2719
  "temBAD_XCHAIN_PROOF": -258,
2677
2720
  "temSIDECHAIN_BAD_ISSUES": -257,
@@ -2764,13 +2807,10 @@
2764
2807
  "tecINSUFFICIENT_FUNDS": 159,
2765
2808
  "tecOBJECT_NOT_FOUND": 160,
2766
2809
  "tecINSUFFICIENT_PAYMENT": 161,
2767
- "tecAMM_UNFUNDED": 162,
2810
+ "tecUNFUNDED_AMM": 162,
2768
2811
  "tecAMM_BALANCE": 163,
2769
- "tecAMM_FAILED_DEPOSIT": 164,
2770
- "tecAMM_FAILED_WITHDRAW": 165,
2771
- "tecAMM_INVALID_TOKENS": 166,
2772
- "tecAMM_FAILED_BID": 167,
2773
- "tecAMM_FAILED_VOTE": 168,
2812
+ "tecAMM_FAILED": 164,
2813
+ "tecAMM_INVALID_TOKENS": 165,
2774
2814
  "tecBAD_XCHAIN_TRANSFER_ISSUE": 171,
2775
2815
  "tecXCHAIN_NO_CLAIM_ID": 172,
2776
2816
  "tecXCHAIN_BAD_CLAIM_ID": 173,
@@ -2787,7 +2827,8 @@
2787
2827
  "tecXCHAIN_PAYMENT_FAILED": 184,
2788
2828
  "tecXCHAIN_SELF_COMMIT": 185,
2789
2829
  "tecXCHAIN_BAD_PUBLIC_KEY_ACCOUNT_PAIR": 186,
2790
- "tecPRECISION_LOSS": 187
2830
+ "tecREQUIRES_FLAG": 187,
2831
+ "tecPRECISION_LOSS": 188
2791
2832
  },
2792
2833
  "TRANSACTION_TYPES": {
2793
2834
  "Invalid": -1,
@@ -0,0 +1,44 @@
1
+ import { SerializedType } from '../types/serialized-type';
2
+ import { Bytes, BytesLookup } from './bytes';
3
+ import { FieldInfo, FieldLookup, FieldInstance } from './field';
4
+ interface DefinitionsData {
5
+ TYPES: Record<string, number>;
6
+ LEDGER_ENTRY_TYPES: Record<string, number>;
7
+ FIELDS: (string | FieldInfo)[][];
8
+ TRANSACTION_RESULTS: Record<string, number>;
9
+ TRANSACTION_TYPES: Record<string, number>;
10
+ }
11
+ /**
12
+ * Stores the various types and fields for rippled to be used to encode/decode information later on.
13
+ * XrplDefinitions should be instantiated instead of this class.
14
+ */
15
+ declare class XrplDefinitionsBase {
16
+ field: FieldLookup;
17
+ ledgerEntryType: BytesLookup;
18
+ type: BytesLookup;
19
+ transactionResult: BytesLookup;
20
+ transactionType: BytesLookup;
21
+ transactionNames: string[];
22
+ dataTypes: Record<string, typeof SerializedType>;
23
+ /**
24
+ * Present rippled types in a typed and updatable format.
25
+ * For an example of the input format see `definitions.json`
26
+ * To generate a new definitions file from rippled source code, use this tool: https://github.com/RichardAH/xrpl-codec-gen
27
+ *
28
+ * See the definitions.test.js file for examples of how to create your own updated definitions.json.
29
+ *
30
+ * @param enums - A json encoding of the core types, transaction types, transaction results, transaction names, and fields.
31
+ * @param types - A list of type objects with the same name as the fields defined.
32
+ * You can use the coreTypes object if you are not adding new types.
33
+ */
34
+ constructor(enums: DefinitionsData, types: Record<string, typeof SerializedType>);
35
+ /**
36
+ * Associates each Field to a corresponding class that TypeScript can recognize.
37
+ *
38
+ * @param types a list of type objects with the same name as the fields defined.
39
+ * Defaults to xrpl.js's core type definitions.
40
+ */
41
+ associateTypes(types: Record<string, typeof SerializedType>): void;
42
+ getAssociatedTypes(): Record<string, typeof SerializedType>;
43
+ }
44
+ export { DefinitionsData, XrplDefinitionsBase, FieldLookup, FieldInfo, FieldInstance, Bytes, BytesLookup, };
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BytesLookup = exports.Bytes = exports.FieldLookup = exports.XrplDefinitionsBase = void 0;
4
+ const bytes_1 = require("./bytes");
5
+ Object.defineProperty(exports, "Bytes", { enumerable: true, get: function () { return bytes_1.Bytes; } });
6
+ Object.defineProperty(exports, "BytesLookup", { enumerable: true, get: function () { return bytes_1.BytesLookup; } });
7
+ const field_1 = require("./field");
8
+ Object.defineProperty(exports, "FieldLookup", { enumerable: true, get: function () { return field_1.FieldLookup; } });
9
+ const constants_1 = require("./constants");
10
+ /**
11
+ * Stores the various types and fields for rippled to be used to encode/decode information later on.
12
+ * XrplDefinitions should be instantiated instead of this class.
13
+ */
14
+ class XrplDefinitionsBase {
15
+ /**
16
+ * Present rippled types in a typed and updatable format.
17
+ * For an example of the input format see `definitions.json`
18
+ * To generate a new definitions file from rippled source code, use this tool: https://github.com/RichardAH/xrpl-codec-gen
19
+ *
20
+ * See the definitions.test.js file for examples of how to create your own updated definitions.json.
21
+ *
22
+ * @param enums - A json encoding of the core types, transaction types, transaction results, transaction names, and fields.
23
+ * @param types - A list of type objects with the same name as the fields defined.
24
+ * You can use the coreTypes object if you are not adding new types.
25
+ */
26
+ constructor(enums, types) {
27
+ this.type = new bytes_1.BytesLookup(enums.TYPES, constants_1.TYPE_WIDTH);
28
+ this.ledgerEntryType = new bytes_1.BytesLookup(enums.LEDGER_ENTRY_TYPES, constants_1.LEDGER_ENTRY_WIDTH);
29
+ this.transactionType = new bytes_1.BytesLookup(enums.TRANSACTION_TYPES, constants_1.TRANSACTION_TYPE_WIDTH);
30
+ this.transactionResult = new bytes_1.BytesLookup(enums.TRANSACTION_RESULTS, constants_1.TRANSACTION_RESULT_WIDTH);
31
+ this.field = new field_1.FieldLookup(enums.FIELDS, enums.TYPES);
32
+ this.transactionNames = Object.entries(enums.TRANSACTION_TYPES)
33
+ .filter(([_key, value]) => value >= 0)
34
+ .map(([key, _value]) => key);
35
+ this.dataTypes = {}; // Filled in via associateTypes
36
+ this.associateTypes(types);
37
+ }
38
+ /**
39
+ * Associates each Field to a corresponding class that TypeScript can recognize.
40
+ *
41
+ * @param types a list of type objects with the same name as the fields defined.
42
+ * Defaults to xrpl.js's core type definitions.
43
+ */
44
+ associateTypes(types) {
45
+ // Overwrite any existing type definitions with the given types
46
+ this.dataTypes = Object.assign({}, this.dataTypes, types);
47
+ Object.values(this.field).forEach((field) => {
48
+ field.associatedType = this.dataTypes[field.type.name];
49
+ });
50
+ this.field['TransactionType'].associatedType = this.transactionType;
51
+ this.field['TransactionResult'].associatedType = this.transactionResult;
52
+ this.field['LedgerEntryType'].associatedType = this.ledgerEntryType;
53
+ }
54
+ getAssociatedTypes() {
55
+ return this.dataTypes;
56
+ }
57
+ }
58
+ exports.XrplDefinitionsBase = XrplDefinitionsBase;
59
+ //# sourceMappingURL=xrpl-definitions-base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xrpl-definitions-base.js","sourceRoot":"","sources":["../../src/enums/xrpl-definitions-base.ts"],"names":[],"mappings":";;;AACA,mCAA4C;AA2G1C,sFA3GO,aAAK,OA2GP;AACL,4FA5Gc,mBAAW,OA4Gd;AA3Gb,mCAA+D;AAuG7D,4FAvGkB,mBAAW,OAuGlB;AAtGb,2CAKoB;AAUpB;;;GAGG;AACH,MAAM,mBAAmB;IAgBvB;;;;;;;;;;OAUG;IACH,YACE,KAAsB,EACtB,KAA4C;QAE5C,IAAI,CAAC,IAAI,GAAG,IAAI,mBAAW,CAAC,KAAK,CAAC,KAAK,EAAE,sBAAU,CAAC,CAAA;QACpD,IAAI,CAAC,eAAe,GAAG,IAAI,mBAAW,CACpC,KAAK,CAAC,kBAAkB,EACxB,8BAAkB,CACnB,CAAA;QACD,IAAI,CAAC,eAAe,GAAG,IAAI,mBAAW,CACpC,KAAK,CAAC,iBAAiB,EACvB,kCAAsB,CACvB,CAAA;QACD,IAAI,CAAC,iBAAiB,GAAG,IAAI,mBAAW,CACtC,KAAK,CAAC,mBAAmB,EACzB,oCAAwB,CACzB,CAAA;QACD,IAAI,CAAC,KAAK,GAAG,IAAI,mBAAW,CAC1B,KAAK,CAAC,MAAoC,EAC1C,KAAK,CAAC,KAAK,CACZ,CAAA;QACD,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC;aAC5D,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC;aACrC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAA;QAE9B,IAAI,CAAC,SAAS,GAAG,EAAE,CAAA,CAAC,+BAA+B;QACnD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;IAC5B,CAAC;IAED;;;;;OAKG;IACI,cAAc,CAAC,KAA4C;QAChE,+DAA+D;QAC/D,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;QAEzD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC1C,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACxD,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,cAAc,GAAG,IAAI,CAAC,eAAe,CAAA;QACnE,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAA;QACvE,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,cAAc,GAAG,IAAI,CAAC,eAAe,CAAA;IACrE,CAAC;IAEM,kBAAkB;QACvB,OAAO,IAAI,CAAC,SAAS,CAAA;IACvB,CAAC;CACF;AAIC,kDAAmB"}