ripple-binary-codec 1.4.0 → 1.5.0-beta.0

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 (36) hide show
  1. package/dist/enums/definitions.json +985 -284
  2. package/dist/types/bridge.d.ts +45 -0
  3. package/dist/types/bridge.js +104 -0
  4. package/dist/types/bridge.js.map +1 -0
  5. package/dist/types/currency.js +1 -1
  6. package/dist/types/currency.js.map +1 -1
  7. package/dist/types/hash-160.js +1 -3
  8. package/dist/types/hash-160.js.map +1 -1
  9. package/dist/types/index.d.ts +6 -0
  10. package/dist/types/index.js +6 -0
  11. package/dist/types/index.js.map +1 -1
  12. package/dist/types/issued-currency.d.ts +46 -0
  13. package/dist/types/issued-currency.js +108 -0
  14. package/dist/types/issued-currency.js.map +1 -0
  15. package/dist/types/sidechain.d.ts +45 -0
  16. package/dist/types/sidechain.js +104 -0
  17. package/dist/types/sidechain.js.map +1 -0
  18. package/dist/types/signature.d.ts +39 -0
  19. package/dist/types/signature.js +125 -0
  20. package/dist/types/signature.js.map +1 -0
  21. package/dist/types/st-object.js +3 -0
  22. package/dist/types/st-object.js.map +1 -1
  23. package/dist/types/xchain-attestation-batch.d.ts +44 -0
  24. package/dist/types/xchain-attestation-batch.js +107 -0
  25. package/dist/types/xchain-attestation-batch.js.map +1 -0
  26. package/dist/types/xchain-bridge.d.ts +45 -0
  27. package/dist/types/xchain-bridge.js +119 -0
  28. package/dist/types/xchain-bridge.js.map +1 -0
  29. package/dist/types/xchain-claim-proof.d.ts +55 -0
  30. package/dist/types/xchain-claim-proof.js +115 -0
  31. package/dist/types/xchain-claim-proof.js.map +1 -0
  32. package/package.json +5 -5
  33. package/test/fixtures/codec-fixtures.json +261 -14
  34. package/test/fixtures/data-driven-tests.json +0 -14
  35. package/test/hash.test.js +11 -7
  36. package/test/signing-data-encoding.test.js +11 -0
@@ -0,0 +1,125 @@
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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.Signature = void 0;
19
+ var binary_parser_1 = require("../serdes/binary-parser");
20
+ var serialized_type_1 = require("./serialized-type");
21
+ var buffer_1 = require("buffer/");
22
+ var blob_1 = require("./blob");
23
+ var ripple_address_codec_1 = require("ripple-address-codec");
24
+ /**
25
+ * Type guard for AmountObject
26
+ */
27
+ function isSignatureObject(arg) {
28
+ var keys = Object.keys(arg).sort();
29
+ return (keys.length === 2 && keys[0] === 'signature' && keys[1] === 'signing_key');
30
+ }
31
+ function encodeVariableLength(length) {
32
+ var lenBytes = buffer_1.Buffer.alloc(3);
33
+ if (length <= 192) {
34
+ lenBytes[0] = length;
35
+ return lenBytes.slice(0, 1);
36
+ }
37
+ else if (length <= 12480) {
38
+ length -= 193;
39
+ lenBytes[0] = 193 + (length >>> 8);
40
+ lenBytes[1] = length & 0xff;
41
+ return lenBytes.slice(0, 2);
42
+ }
43
+ else if (length <= 918744) {
44
+ length -= 12481;
45
+ lenBytes[0] = 241 + (length >>> 16);
46
+ lenBytes[1] = (length >> 8) & 0xff;
47
+ lenBytes[2] = length & 0xff;
48
+ return lenBytes.slice(0, 3);
49
+ }
50
+ throw new Error('Overflow error');
51
+ }
52
+ /**
53
+ * Class for serializing/Deserializing Amounts
54
+ */
55
+ var Signature = /** @class */ (function (_super) {
56
+ __extends(Signature, _super);
57
+ function Signature(bytes) {
58
+ return _super.call(this, bytes !== null && bytes !== void 0 ? bytes : Signature.ZERO_SIGNATURE.bytes) || this;
59
+ }
60
+ /**
61
+ * Construct an amount from an IOU or string amount
62
+ *
63
+ * @param value An Amount, object representing an IOU, or a string
64
+ * representing an integer amount
65
+ * @returns An Amount object
66
+ */
67
+ Signature.from = function (value) {
68
+ if (value instanceof Signature) {
69
+ return value;
70
+ }
71
+ if (isSignatureObject(value)) {
72
+ var signature = blob_1.Blob.from(value.signature).toBytes();
73
+ var signing_key = new blob_1.Blob(buffer_1.Buffer.from((0, ripple_address_codec_1.decodeAccountPublic)(value.signing_key))).toBytes();
74
+ return new Signature(buffer_1.Buffer.concat([
75
+ encodeVariableLength(signing_key.length),
76
+ signing_key,
77
+ encodeVariableLength(signature.length),
78
+ signature,
79
+ ]));
80
+ }
81
+ throw new Error('Invalid type to construct a Signature');
82
+ };
83
+ /**
84
+ * Read an amount from a BinaryParser
85
+ *
86
+ * @param parser BinaryParser to read the Amount from
87
+ * @returns An Amount object
88
+ */
89
+ Signature.fromParser = function (parser) {
90
+ var bytes = [];
91
+ console.log(parser.bytes);
92
+ var signatureLength = parser.readVariableLengthLength();
93
+ bytes.push(encodeVariableLength(signatureLength));
94
+ console.log(buffer_1.Buffer.concat(bytes).toString('hex'));
95
+ bytes.push(blob_1.Blob.fromParser(parser, signatureLength).toBytes());
96
+ console.log(buffer_1.Buffer.concat(bytes).toString('hex'));
97
+ var signingKeyLength = parser.readVariableLengthLength();
98
+ bytes.push(encodeVariableLength(signingKeyLength));
99
+ console.log(buffer_1.Buffer.concat(bytes).toString('hex'));
100
+ bytes.push(blob_1.Blob.fromParser(parser, signingKeyLength).toBytes());
101
+ console.log(buffer_1.Buffer.concat(bytes).toString('hex'));
102
+ return new Signature(buffer_1.Buffer.concat(bytes));
103
+ };
104
+ /**
105
+ * Get the JSON representation of this Amount
106
+ *
107
+ * @returns the JSON interpretation of this.bytes
108
+ */
109
+ Signature.prototype.toJSON = function () {
110
+ var parser = new binary_parser_1.BinaryParser(this.toString());
111
+ var signingKeyLength = parser.readVariableLengthLength();
112
+ var signingKey = blob_1.Blob.fromParser(parser, signingKeyLength);
113
+ var signatureLength = parser.readVariableLengthLength();
114
+ var signature = blob_1.Blob.fromParser(parser, signatureLength).toJSON();
115
+ return {
116
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- this is fine, they're both different bytes
117
+ signing_key: (0, ripple_address_codec_1.encodeAccountPublic)(signingKey.toBytes()),
118
+ signature: signature,
119
+ };
120
+ };
121
+ Signature.ZERO_SIGNATURE = new Signature(buffer_1.Buffer.concat([buffer_1.Buffer.alloc(1), buffer_1.Buffer.from([33]), buffer_1.Buffer.alloc(33)]));
122
+ return Signature;
123
+ }(serialized_type_1.SerializedType));
124
+ exports.Signature = Signature;
125
+ //# sourceMappingURL=signature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signature.js","sourceRoot":"","sources":["../../src/types/signature.ts"],"names":[],"mappings":"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"}
@@ -130,6 +130,9 @@ var STObject = /** @class */ (function (_super) {
130
130
  }
131
131
  sorted.forEach(function (field) {
132
132
  var associatedValue = field.associatedType.from(xAddressDecoded[field.name]);
133
+ if (associatedValue == undefined) {
134
+ throw new TypeError("Unable to interpret \"".concat(field.name, ": ").concat(xAddressDecoded[field.name], "\"."));
135
+ }
133
136
  if (associatedValue.name === 'UNLModify') {
134
137
  // triggered when the TransactionType field has a value of 'UNLModify'
135
138
  isUnlModify = true;
@@ -1 +1 @@
1
- {"version":3,"file":"st-object.js","sourceRoot":"","sources":["../../src/types/st-object.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"st-object.js","sourceRoot":"","sources":["../../src/types/st-object.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import { BinaryParser } from '../serdes/binary-parser';
2
+ import { JsonObject, SerializedType } from './serialized-type';
3
+ import { Buffer } from 'buffer/';
4
+ import { XChainBridgeObject } from './xchain-bridge';
5
+ /**
6
+ * Interface for JSON objects that represent cross-chain attestations
7
+ */
8
+ interface XChainAttestationBatchObject extends JsonObject {
9
+ XChainBridge: XChainBridgeObject;
10
+ XChainClaimAttestationBatch: JsonObject[];
11
+ XChainCreateAccountAttestationBatch: JsonObject[];
12
+ }
13
+ /**
14
+ * Class for serializing/deserializing XChainAttestationBatchs
15
+ */
16
+ declare class XChainAttestationBatch extends SerializedType {
17
+ static readonly ZERO_XCHAIN_ATTESTATION_BATCH: XChainAttestationBatch;
18
+ static readonly TYPE_ORDER: {
19
+ name: string;
20
+ type: typeof SerializedType;
21
+ }[];
22
+ constructor(bytes: Buffer);
23
+ /**
24
+ * Construct a cross-chain bridge from a JSON
25
+ *
26
+ * @param value XChainAttestationBatch or JSON to parse into a XChainAttestationBatch
27
+ * @returns A XChainAttestationBatch object
28
+ */
29
+ static from<T extends XChainAttestationBatch | XChainAttestationBatchObject>(value: T): XChainAttestationBatch;
30
+ /**
31
+ * Read a XChainAttestationBatch from a BinaryParser
32
+ *
33
+ * @param parser BinaryParser to read the XChainAttestationBatch from
34
+ * @returns A XChainAttestationBatch object
35
+ */
36
+ static fromParser(parser: BinaryParser): XChainAttestationBatch;
37
+ /**
38
+ * Get the JSON representation of this XChainAttestationBatch
39
+ *
40
+ * @returns the JSON interpretation of this.bytes
41
+ */
42
+ toJSON(): XChainAttestationBatchObject;
43
+ }
44
+ export { XChainAttestationBatch, XChainAttestationBatchObject };
@@ -0,0 +1,107 @@
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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.XChainAttestationBatch = void 0;
19
+ var binary_parser_1 = require("../serdes/binary-parser");
20
+ var serialized_type_1 = require("./serialized-type");
21
+ var buffer_1 = require("buffer/");
22
+ var xchain_bridge_1 = require("./xchain-bridge");
23
+ var st_array_1 = require("./st-array");
24
+ /**
25
+ * Type guard for XChainAttestationBatchObject
26
+ */
27
+ function isXChainAttestationBatchObject(arg) {
28
+ var keys = Object.keys(arg).sort();
29
+ return (keys.length === 3 &&
30
+ keys[0] === 'XChainBridge' &&
31
+ keys[1] === 'XChainClaimAttestationBatch' &&
32
+ keys[2] === 'XChainCreateAccountAttestationBatch');
33
+ }
34
+ /**
35
+ * Class for serializing/deserializing XChainAttestationBatchs
36
+ */
37
+ var XChainAttestationBatch = /** @class */ (function (_super) {
38
+ __extends(XChainAttestationBatch, _super);
39
+ function XChainAttestationBatch(bytes) {
40
+ return _super.call(this, bytes !== null && bytes !== void 0 ? bytes : XChainAttestationBatch.ZERO_XCHAIN_ATTESTATION_BATCH.bytes) || this;
41
+ }
42
+ /**
43
+ * Construct a cross-chain bridge from a JSON
44
+ *
45
+ * @param value XChainAttestationBatch or JSON to parse into a XChainAttestationBatch
46
+ * @returns A XChainAttestationBatch object
47
+ */
48
+ XChainAttestationBatch.from = function (value) {
49
+ if (value instanceof XChainAttestationBatch) {
50
+ return value;
51
+ }
52
+ if (isXChainAttestationBatchObject(value)) {
53
+ var bytes_1 = [];
54
+ this.TYPE_ORDER.forEach(function (item) {
55
+ var name = item.name, type = item.type;
56
+ var object = type.from(value[name]);
57
+ bytes_1.push(object.toBytes());
58
+ });
59
+ return new XChainAttestationBatch(buffer_1.Buffer.concat(bytes_1));
60
+ }
61
+ throw new Error('Invalid type to construct a XChainAttestationBatch');
62
+ };
63
+ /**
64
+ * Read a XChainAttestationBatch from a BinaryParser
65
+ *
66
+ * @param parser BinaryParser to read the XChainAttestationBatch from
67
+ * @returns A XChainAttestationBatch object
68
+ */
69
+ XChainAttestationBatch.fromParser = function (parser) {
70
+ var bytes = [];
71
+ this.TYPE_ORDER.forEach(function (item) {
72
+ var type = item.type;
73
+ var object = type.fromParser(parser);
74
+ bytes.push(object.toBytes());
75
+ });
76
+ return new XChainAttestationBatch(buffer_1.Buffer.concat(bytes));
77
+ };
78
+ /**
79
+ * Get the JSON representation of this XChainAttestationBatch
80
+ *
81
+ * @returns the JSON interpretation of this.bytes
82
+ */
83
+ XChainAttestationBatch.prototype.toJSON = function () {
84
+ var parser = new binary_parser_1.BinaryParser(this.toString());
85
+ var json = {};
86
+ XChainAttestationBatch.TYPE_ORDER.forEach(function (item) {
87
+ var name = item.name, type = item.type;
88
+ var object = type.fromParser(parser).toJSON();
89
+ json[name] = object;
90
+ });
91
+ return json;
92
+ };
93
+ XChainAttestationBatch.ZERO_XCHAIN_ATTESTATION_BATCH = new XChainAttestationBatch(buffer_1.Buffer.concat([
94
+ buffer_1.Buffer.from([0x14]),
95
+ buffer_1.Buffer.alloc(40),
96
+ buffer_1.Buffer.from([0x14]),
97
+ buffer_1.Buffer.alloc(40),
98
+ ]));
99
+ XChainAttestationBatch.TYPE_ORDER = [
100
+ { name: 'XChainBridge', type: xchain_bridge_1.XChainBridge },
101
+ { name: 'XChainClaimAttestationBatch', type: st_array_1.STArray },
102
+ { name: 'XChainCreateAccountAttestationBatch', type: st_array_1.STArray },
103
+ ];
104
+ return XChainAttestationBatch;
105
+ }(serialized_type_1.SerializedType));
106
+ exports.XChainAttestationBatch = XChainAttestationBatch;
107
+ //# sourceMappingURL=xchain-attestation-batch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xchain-attestation-batch.js","sourceRoot":"","sources":["../../src/types/xchain-attestation-batch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import { BinaryParser } from '../serdes/binary-parser';
2
+ import { JsonObject, SerializedType } from './serialized-type';
3
+ import { Buffer } from 'buffer/';
4
+ import { IssuedCurrencyObject } from './issued-currency';
5
+ /**
6
+ * Interface for JSON objects that represent cross-chain bridges
7
+ */
8
+ interface XChainBridgeObject extends JsonObject {
9
+ LockingChainDoor: string;
10
+ LockingChainIssue: IssuedCurrencyObject | string;
11
+ IssuingChainDoor: string;
12
+ IssuingChainIssue: IssuedCurrencyObject | string;
13
+ }
14
+ /**
15
+ * Class for serializing/deserializing XChainBridges
16
+ */
17
+ declare class XChainBridge extends SerializedType {
18
+ static readonly ZERO_XCHAIN_BRIDGE: XChainBridge;
19
+ static readonly TYPE_ORDER: {
20
+ name: string;
21
+ type: typeof SerializedType;
22
+ }[];
23
+ constructor(bytes: Buffer);
24
+ /**
25
+ * Construct a cross-chain bridge from a JSON
26
+ *
27
+ * @param value XChainBridge or JSON to parse into a XChainBridge
28
+ * @returns A XChainBridge object
29
+ */
30
+ static from<T extends XChainBridge | XChainBridgeObject>(value: T): XChainBridge;
31
+ /**
32
+ * Read a XChainBridge from a BinaryParser
33
+ *
34
+ * @param parser BinaryParser to read the XChainBridge from
35
+ * @returns A XChainBridge object
36
+ */
37
+ static fromParser(parser: BinaryParser): XChainBridge;
38
+ /**
39
+ * Get the JSON representation of this XChainBridge
40
+ *
41
+ * @returns the JSON interpretation of this.bytes
42
+ */
43
+ toJSON(): XChainBridgeObject;
44
+ }
45
+ export { XChainBridge, XChainBridgeObject };
@@ -0,0 +1,119 @@
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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.XChainBridge = void 0;
19
+ var binary_parser_1 = require("../serdes/binary-parser");
20
+ var account_id_1 = require("./account-id");
21
+ var serialized_type_1 = require("./serialized-type");
22
+ var buffer_1 = require("buffer/");
23
+ var issued_currency_1 = require("./issued-currency");
24
+ /**
25
+ * Type guard for XChainBridgeObject
26
+ */
27
+ function isXChainBridgeObject(arg) {
28
+ var keys = Object.keys(arg).sort();
29
+ return (keys.length === 4 &&
30
+ keys[0] === 'IssuingChainDoor' &&
31
+ keys[1] === 'IssuingChainIssue' &&
32
+ keys[2] === 'LockingChainDoor' &&
33
+ keys[3] === 'LockingChainIssue');
34
+ }
35
+ /**
36
+ * Class for serializing/deserializing XChainBridges
37
+ */
38
+ var XChainBridge = /** @class */ (function (_super) {
39
+ __extends(XChainBridge, _super);
40
+ function XChainBridge(bytes) {
41
+ return _super.call(this, bytes !== null && bytes !== void 0 ? bytes : XChainBridge.ZERO_XCHAIN_BRIDGE.bytes) || this;
42
+ }
43
+ /**
44
+ * Construct a cross-chain bridge from a JSON
45
+ *
46
+ * @param value XChainBridge or JSON to parse into a XChainBridge
47
+ * @returns A XChainBridge object
48
+ */
49
+ XChainBridge.from = function (value) {
50
+ if (value instanceof XChainBridge) {
51
+ return value;
52
+ }
53
+ if (isXChainBridgeObject(value)) {
54
+ var bytes_1 = [];
55
+ this.TYPE_ORDER.forEach(function (item) {
56
+ var name = item.name, type = item.type;
57
+ if (type === account_id_1.AccountID) {
58
+ bytes_1.push(buffer_1.Buffer.from([0x14]));
59
+ }
60
+ var object = type.from(value[name]);
61
+ bytes_1.push(object.toBytes());
62
+ });
63
+ return new XChainBridge(buffer_1.Buffer.concat(bytes_1));
64
+ }
65
+ throw new Error('Invalid type to construct a XChainBridge');
66
+ };
67
+ /**
68
+ * Read a XChainBridge from a BinaryParser
69
+ *
70
+ * @param parser BinaryParser to read the XChainBridge from
71
+ * @returns A XChainBridge object
72
+ */
73
+ XChainBridge.fromParser = function (parser) {
74
+ var bytes = [];
75
+ this.TYPE_ORDER.forEach(function (item) {
76
+ var type = item.type;
77
+ if (type === account_id_1.AccountID) {
78
+ parser.skip(1);
79
+ bytes.push(buffer_1.Buffer.from([0x14]));
80
+ }
81
+ var object = type.fromParser(parser);
82
+ bytes.push(object.toBytes());
83
+ });
84
+ return new XChainBridge(buffer_1.Buffer.concat(bytes));
85
+ };
86
+ /**
87
+ * Get the JSON representation of this XChainBridge
88
+ *
89
+ * @returns the JSON interpretation of this.bytes
90
+ */
91
+ XChainBridge.prototype.toJSON = function () {
92
+ var parser = new binary_parser_1.BinaryParser(this.toString());
93
+ var json = {};
94
+ XChainBridge.TYPE_ORDER.forEach(function (item) {
95
+ var name = item.name, type = item.type;
96
+ if (type === account_id_1.AccountID) {
97
+ parser.skip(1);
98
+ }
99
+ var object = type.fromParser(parser).toJSON();
100
+ json[name] = object;
101
+ });
102
+ return json;
103
+ };
104
+ XChainBridge.ZERO_XCHAIN_BRIDGE = new XChainBridge(buffer_1.Buffer.concat([
105
+ buffer_1.Buffer.from([0x14]),
106
+ buffer_1.Buffer.alloc(40),
107
+ buffer_1.Buffer.from([0x14]),
108
+ buffer_1.Buffer.alloc(40),
109
+ ]));
110
+ XChainBridge.TYPE_ORDER = [
111
+ { name: 'LockingChainDoor', type: account_id_1.AccountID },
112
+ { name: 'LockingChainIssue', type: issued_currency_1.IssuedCurrency },
113
+ { name: 'IssuingChainDoor', type: account_id_1.AccountID },
114
+ { name: 'IssuingChainIssue', type: issued_currency_1.IssuedCurrency },
115
+ ];
116
+ return XChainBridge;
117
+ }(serialized_type_1.SerializedType));
118
+ exports.XChainBridge = XChainBridge;
119
+ //# sourceMappingURL=xchain-bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xchain-bridge.js","sourceRoot":"","sources":["../../src/types/xchain-bridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ import { BinaryParser } from '../serdes/binary-parser';
2
+ import { JsonObject, SerializedType } from './serialized-type';
3
+ import { Buffer } from 'buffer/';
4
+ import { SidechainObject } from './sidechain';
5
+ /**
6
+ * Interface for JSON objects that represent signatures
7
+ */
8
+ interface SignatureObject extends JsonObject {
9
+ XChainProofSig: {
10
+ Signature: string;
11
+ PublicKey: string;
12
+ };
13
+ }
14
+ /**
15
+ * Interface for JSON objects that represent XChainClaimProofs
16
+ */
17
+ interface XChainClaimProofObject extends JsonObject {
18
+ amount: string;
19
+ sidechain: SidechainObject;
20
+ signatures: SignatureObject[];
21
+ was_src_chain_send: boolean;
22
+ xchain_seq: number;
23
+ }
24
+ /**
25
+ * Class for serializing/Deserializing XChainClaimProofs
26
+ */
27
+ declare class XChainClaimProof extends SerializedType {
28
+ static readonly ZERO_PROOF: XChainClaimProof;
29
+ static readonly TYPE_ORDER: {
30
+ name: string;
31
+ type: typeof SerializedType;
32
+ }[];
33
+ constructor(bytes: Buffer);
34
+ /**
35
+ * Construct a XChainClaimProof from a JSON
36
+ *
37
+ * @param value XChainClaimProof or JSON to parse into an XChainClaimProof
38
+ * @returns A XChainClaimProof object
39
+ */
40
+ static from<T extends XChainClaimProof | XChainClaimProofObject>(value: T): XChainClaimProof;
41
+ /**
42
+ * Read a XChainClaimProof from a BinaryParser
43
+ *
44
+ * @param parser BinaryParser to read the XChainClaimProof from
45
+ * @returns A XChainClaimProof object
46
+ */
47
+ static fromParser(parser: BinaryParser): XChainClaimProof;
48
+ /**
49
+ * Get the JSON representation of this XChainClaimProof
50
+ *
51
+ * @returns the JSON interpretation of this.bytes
52
+ */
53
+ toJSON(): XChainClaimProofObject;
54
+ }
55
+ export { XChainClaimProof, XChainClaimProofObject };
@@ -0,0 +1,115 @@
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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.XChainClaimProof = void 0;
19
+ var binary_parser_1 = require("../serdes/binary-parser");
20
+ var serialized_type_1 = require("./serialized-type");
21
+ var buffer_1 = require("buffer/");
22
+ var sidechain_1 = require("./sidechain");
23
+ var amount_1 = require("./amount");
24
+ var uint_8_1 = require("./uint-8");
25
+ var uint_32_1 = require("./uint-32");
26
+ var st_array_1 = require("./st-array");
27
+ /**
28
+ * Type guard for XChainClaimProofObject
29
+ */
30
+ function isProofObject(arg) {
31
+ var keys = Object.keys(arg).sort();
32
+ return (keys.length === 5 &&
33
+ keys[0] === 'amount' &&
34
+ keys[1] === 'sidechain' &&
35
+ keys[2] === 'signatures' &&
36
+ keys[3] === 'was_src_chain_send' &&
37
+ keys[4] === 'xchain_seq');
38
+ }
39
+ /**
40
+ * Class for serializing/Deserializing XChainClaimProofs
41
+ */
42
+ var XChainClaimProof = /** @class */ (function (_super) {
43
+ __extends(XChainClaimProof, _super);
44
+ function XChainClaimProof(bytes) {
45
+ return _super.call(this, bytes !== null && bytes !== void 0 ? bytes : XChainClaimProof.ZERO_PROOF.bytes) || this;
46
+ }
47
+ /**
48
+ * Construct a XChainClaimProof from a JSON
49
+ *
50
+ * @param value XChainClaimProof or JSON to parse into an XChainClaimProof
51
+ * @returns A XChainClaimProof object
52
+ */
53
+ XChainClaimProof.from = function (value) {
54
+ if (value instanceof XChainClaimProof) {
55
+ return value;
56
+ }
57
+ if (isProofObject(value)) {
58
+ var bytes_1 = [];
59
+ this.TYPE_ORDER.forEach(function (item) {
60
+ var name = item.name, type = item.type;
61
+ var object = type.from(value[name]);
62
+ bytes_1.push(object.toBytes());
63
+ });
64
+ return new XChainClaimProof(buffer_1.Buffer.concat(bytes_1));
65
+ }
66
+ throw new Error('Invalid type to construct a XChainClaimProof');
67
+ };
68
+ /**
69
+ * Read a XChainClaimProof from a BinaryParser
70
+ *
71
+ * @param parser BinaryParser to read the XChainClaimProof from
72
+ * @returns A XChainClaimProof object
73
+ */
74
+ XChainClaimProof.fromParser = function (parser) {
75
+ var bytes = [];
76
+ this.TYPE_ORDER.forEach(function (item) {
77
+ var type = item.type;
78
+ var object = type.fromParser(parser);
79
+ bytes.push(object.toBytes());
80
+ });
81
+ return new XChainClaimProof(buffer_1.Buffer.concat(bytes));
82
+ };
83
+ /**
84
+ * Get the JSON representation of this XChainClaimProof
85
+ *
86
+ * @returns the JSON interpretation of this.bytes
87
+ */
88
+ XChainClaimProof.prototype.toJSON = function () {
89
+ var parser = new binary_parser_1.BinaryParser(this.toString());
90
+ var json = {};
91
+ XChainClaimProof.TYPE_ORDER.forEach(function (item) {
92
+ var name = item.name, type = item.type;
93
+ var object = type.fromParser(parser).toJSON();
94
+ json[name] = object;
95
+ });
96
+ json['was_src_chain_send'] = Boolean(json['was_src_chain_send']);
97
+ return json;
98
+ };
99
+ XChainClaimProof.ZERO_PROOF = new XChainClaimProof(buffer_1.Buffer.concat([
100
+ sidechain_1.Sidechain.ZERO_SIDECHAIN.toBytes(),
101
+ amount_1.Amount.defaultAmount.toBytes(),
102
+ uint_32_1.UInt32.defaultUInt32.toBytes(),
103
+ uint_8_1.UInt8.defaultUInt8.toBytes(),
104
+ ]));
105
+ XChainClaimProof.TYPE_ORDER = [
106
+ { name: 'sidechain', type: sidechain_1.Sidechain },
107
+ { name: 'amount', type: amount_1.Amount },
108
+ { name: 'xchain_seq', type: uint_32_1.UInt32 },
109
+ { name: 'was_src_chain_send', type: uint_8_1.UInt8 },
110
+ { name: 'signatures', type: st_array_1.STArray },
111
+ ];
112
+ return XChainClaimProof;
113
+ }(serialized_type_1.SerializedType));
114
+ exports.XChainClaimProof = XChainClaimProof;
115
+ //# sourceMappingURL=xchain-claim-proof.js.map