@airgap/serializer 0.13.45-beta.1 → 0.13.45-beta.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/index.js +8 -8
- package/index.js.map +1 -1
- package/package.json +2 -2
- package/v2/inter-app-communication-protocol.d.ts +2 -2
- package/v2/inter-app-communication-protocol.js +57 -55
- package/v2/inter-app-communication-protocol.js.map +1 -1
- package/v2/interfaces.js +1 -1
- package/v2/interfaces.js.map +1 -1
- package/v2/message.d.ts +1 -2
- package/v2/message.js +51 -57
- package/v2/message.js.map +1 -1
- package/v2/payloads/chunked-payload.d.ts +0 -1
- package/v2/payloads/chunked-payload.js +17 -18
- package/v2/payloads/chunked-payload.js.map +1 -1
- package/v2/payloads/full-payload.d.ts +0 -1
- package/v2/payloads/full-payload.js +38 -33
- package/v2/payloads/full-payload.js.map +1 -1
- package/v2/schemas/definitions/hex-string.d.ts +1 -1
- package/v2/schemas/schema.d.ts +1 -1
- package/v2/schemas/schema.js +1 -1
- package/v2/schemas/schema.js.map +1 -1
- package/v2/serializer.js +70 -122
- package/v2/serializer.js.map +1 -1
- package/v2/utils/generateId.js +5 -6
- package/v2/utils/generateId.js.map +1 -1
- package/v2/utils/json-to-rlp.js +45 -52
- package/v2/utils/json-to-rlp.js.map +1 -1
- package/v2/utils/toBuffer.d.ts +1 -2
- package/v2/utils/toBuffer.js +2 -3
- package/v2/utils/toBuffer.js.map +1 -1
- package/v2/validators/validators.js +37 -79
- package/v2/validators/validators.js.map +1 -1
- package/v3/iac-message-wrapper.d.ts +3 -3
- package/v3/iac-message-wrapper.js +50 -43
- package/v3/iac-message-wrapper.js.map +1 -1
- package/v3/interfaces.d.ts +1 -1
- package/v3/interfaces.js +6 -6
- package/v3/interfaces.js.map +1 -1
- package/v3/message.d.ts +2 -2
- package/v3/message.js +53 -61
- package/v3/message.js.map +1 -1
- package/v3/payload.js +19 -25
- package/v3/payload.js.map +1 -1
- package/v3/schemas/definitions/hex-string.d.ts +1 -1
- package/v3/schemas/schema.d.ts +1 -1
- package/v3/schemas/schema.js +1 -1
- package/v3/schemas/schema.js.map +1 -1
- package/v3/serializer.js +69 -120
- package/v3/serializer.js.map +1 -1
- package/v3/utils/generateId.js +7 -8
- package/v3/utils/generateId.js.map +1 -1
- package/v3/utils/json-to-rlp.js +51 -58
- package/v3/utils/json-to-rlp.js.map +1 -1
- package/v3/utils/toBuffer.d.ts +1 -2
- package/v3/validators/validators.js +35 -77
- package/v3/validators/validators.js.map +1 -1
package/index.js
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.validateSyncSchemeV2 = exports.validateSyncScheme = exports.generateIdV2 = exports.generateId = exports.Message = exports.SerializerV3 = exports.Serializer = exports.IACMessageType = void 0;
|
|
4
|
-
|
|
4
|
+
const interfaces_1 = require("./v2/interfaces");
|
|
5
5
|
Object.defineProperty(exports, "IACMessageType", { enumerable: true, get: function () { return interfaces_1.IACMessageType; } });
|
|
6
|
-
|
|
6
|
+
const message_1 = require("./v2/message");
|
|
7
7
|
Object.defineProperty(exports, "Message", { enumerable: true, get: function () { return message_1.Message; } });
|
|
8
|
-
|
|
8
|
+
const serializer_1 = require("./v2/serializer");
|
|
9
9
|
Object.defineProperty(exports, "Serializer", { enumerable: true, get: function () { return serializer_1.Serializer; } });
|
|
10
|
-
|
|
10
|
+
const generateId_1 = require("./v2/utils/generateId");
|
|
11
11
|
Object.defineProperty(exports, "generateIdV2", { enumerable: true, get: function () { return generateId_1.generateIdV2; } });
|
|
12
|
-
|
|
12
|
+
const validators_1 = require("./v2/validators/validators");
|
|
13
13
|
Object.defineProperty(exports, "validateSyncSchemeV2", { enumerable: true, get: function () { return validators_1.validateSyncScheme; } });
|
|
14
|
-
|
|
14
|
+
const serializer_2 = require("./v3/serializer");
|
|
15
15
|
Object.defineProperty(exports, "SerializerV3", { enumerable: true, get: function () { return serializer_2.SerializerV3; } });
|
|
16
|
-
|
|
16
|
+
const generateId_2 = require("./v3/utils/generateId");
|
|
17
17
|
Object.defineProperty(exports, "generateId", { enumerable: true, get: function () { return generateId_2.generateId; } });
|
|
18
|
-
|
|
18
|
+
const validators_2 = require("./v3/validators/validators");
|
|
19
19
|
Object.defineProperty(exports, "validateSyncScheme", { enumerable: true, get: function () { return validators_2.validateSyncScheme; } });
|
|
20
20
|
//# sourceMappingURL=index.js.map
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,gDAAgD;AA2B9C,+FA3BO,2BAAc,OA2BP;AA1BhB,0CAAgG;AAoC9F,wFApCiE,iBAAO,OAoCjE;AA/BT,gDAA4C;AA6B1C,2FA7BO,uBAAU,OA6BP;AA1BZ,sDAAoD;AAwC/B,6FAxCZ,yBAAY,OAwCY;AAnCjC,2DAAuF;AAmChC,qGAnCxB,+BAAoB,OAmCwB;AA9B3E,gDAA8C;AAiB5C,6FAjBO,yBAAY,OAiBP;AAdd,sDAAkD;AA2BzC,2FA3BA,uBAAU,OA2BA;AAzBnB,2DAA+D;AAyB5B,mGAzB1B,+BAAkB,OAyB0B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@airgap/serializer",
|
|
3
|
-
"version": "0.13.45-beta.
|
|
3
|
+
"version": "0.13.45-beta.3",
|
|
4
4
|
"description": "The @airgap/serializer provides serializers used in AirGap applications.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"airgap",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
},
|
|
38
38
|
"author": "Papers AG <contact@papers.ch> (https://papers.ch)",
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@airgap/coinlib-core": "^0.13.45-beta.
|
|
40
|
+
"@airgap/coinlib-core": "^0.13.45-beta.3"
|
|
41
41
|
},
|
|
42
42
|
"localDependencies": {},
|
|
43
43
|
"nyc": {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { IACMessageDefinitionObject } from './message';
|
|
2
2
|
import { Payload } from './payloads/payload';
|
|
3
3
|
import { IACPayloadType, Serializer } from './serializer';
|
|
4
|
-
export
|
|
5
|
-
export
|
|
4
|
+
export type IACProtocolVersion = number;
|
|
5
|
+
export type IACProtocolType = [IACProtocolVersion, IACPayloadType, Payload];
|
|
6
6
|
export declare class IACProtocol {
|
|
7
7
|
readonly version: number;
|
|
8
8
|
readonly payloadType: IACPayloadType;
|
|
@@ -15,27 +15,37 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
25
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
36
|
exports.IACProtocol = void 0;
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
37
|
+
const bs58check = __importStar(require("@airgap/coinlib-core/dependencies/src/bs58check-2.1.2/index"));
|
|
38
|
+
const rlp = __importStar(require("@airgap/coinlib-core/dependencies/src/rlp-2.2.3/index"));
|
|
39
|
+
const errors_1 = require("@airgap/coinlib-core/errors");
|
|
40
|
+
const chunked_payload_1 = require("./payloads/chunked-payload");
|
|
41
|
+
const full_payload_1 = require("./payloads/full-payload");
|
|
42
|
+
const serializer_1 = require("./serializer");
|
|
33
43
|
function sortByPage(a, b) {
|
|
34
44
|
return a.currentPage - b.currentPage;
|
|
35
45
|
}
|
|
36
46
|
// IACProtocolMessage instead of IACProtocol?
|
|
37
|
-
|
|
38
|
-
|
|
47
|
+
class IACProtocol {
|
|
48
|
+
constructor(data) {
|
|
39
49
|
this.version = 2;
|
|
40
50
|
if (data instanceof full_payload_1.FullPayload) {
|
|
41
51
|
this.payloadType = serializer_1.IACPayloadType.FULL;
|
|
@@ -46,69 +56,62 @@ var IACProtocol = /** @class */ (function () {
|
|
|
46
56
|
this.payload = data;
|
|
47
57
|
}
|
|
48
58
|
else {
|
|
49
|
-
throw new errors_1.SerializerError(errors_1.SerializerErrorType.PAYLOAD_TYPE_UNKNOWN,
|
|
59
|
+
throw new errors_1.SerializerError(errors_1.SerializerErrorType.PAYLOAD_TYPE_UNKNOWN, `Is neither "Full" nor "Chunked".`);
|
|
50
60
|
}
|
|
51
61
|
}
|
|
52
|
-
|
|
62
|
+
decoded() {
|
|
53
63
|
return [this.version, this.payloadType, this.payload];
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
if (serializer === void 0) { serializer = serializer_1.Serializer.getInstance(); }
|
|
64
|
+
}
|
|
65
|
+
encoded(serializer = serializer_1.Serializer.getInstance()) {
|
|
57
66
|
return bs58check.encode(rlp.encode([this.version.toString(), this.payloadType.toString(), this.payload.asArray(serializer)]));
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
if (serializer === void 0) { serializer = serializer_1.Serializer.getInstance(); }
|
|
63
|
-
var payload = full_payload_1.FullPayload.fromDecoded(data);
|
|
64
|
-
var rawPayload = payload.asBuffer(serializer);
|
|
67
|
+
}
|
|
68
|
+
static fromDecoded(data, singleChunkSize = 0, multiChunkSize = 0, serializer = serializer_1.Serializer.getInstance()) {
|
|
69
|
+
const payload = full_payload_1.FullPayload.fromDecoded(data);
|
|
70
|
+
const rawPayload = payload.asBuffer(serializer);
|
|
65
71
|
if (singleChunkSize > 0 && rawPayload.length > singleChunkSize) {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
72
|
+
const chunks = [];
|
|
73
|
+
const nodeBuffer = rawPayload;
|
|
74
|
+
const bufferLength = rawPayload.length;
|
|
75
|
+
let i = 0;
|
|
70
76
|
while (i < bufferLength) {
|
|
71
|
-
|
|
77
|
+
chunks.push(nodeBuffer.slice(i, (i += multiChunkSize)));
|
|
72
78
|
}
|
|
73
|
-
return
|
|
74
|
-
return new IACProtocol(chunked_payload_1.ChunkedPayload.fromDecoded({ currentPage: index, total: chunks_1.length, payload: chunk }));
|
|
75
|
-
});
|
|
79
|
+
return chunks.map((chunk, index) => new IACProtocol(chunked_payload_1.ChunkedPayload.fromDecoded({ currentPage: index, total: chunks.length, payload: chunk })));
|
|
76
80
|
}
|
|
77
81
|
else {
|
|
78
82
|
return [new IACProtocol(payload)];
|
|
79
83
|
}
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
var finalPayload;
|
|
84
|
+
}
|
|
85
|
+
static fromEncoded(data, serializer = serializer_1.Serializer.getInstance()) {
|
|
86
|
+
const chunked = [];
|
|
87
|
+
let finalPayload;
|
|
85
88
|
// make sure that all are the same type
|
|
86
|
-
|
|
87
|
-
data.forEach(
|
|
88
|
-
|
|
89
|
+
let globalType;
|
|
90
|
+
data.forEach((entry) => {
|
|
91
|
+
const decoded = rlp.decode(bs58check.decode(entry));
|
|
89
92
|
// const version: string = decoded[0].toString()
|
|
90
|
-
|
|
91
|
-
globalType = globalType
|
|
93
|
+
const type = parseInt(decoded[1].toString(), 10);
|
|
94
|
+
globalType = globalType ?? type;
|
|
92
95
|
if (globalType !== type) {
|
|
93
96
|
throw new errors_1.SerializerError(errors_1.SerializerErrorType.PAYLOAD_TYPE_MISMATCH, 'All types within a group must either be "full" or "chunked".');
|
|
94
97
|
}
|
|
95
98
|
if (type === serializer_1.IACPayloadType.FULL) {
|
|
96
|
-
|
|
99
|
+
const payload = decoded[2];
|
|
97
100
|
finalPayload = full_payload_1.FullPayload.fromEncoded(payload, serializer);
|
|
98
101
|
}
|
|
99
102
|
else if (type === serializer_1.IACPayloadType.CHUNKED) {
|
|
100
|
-
|
|
103
|
+
const payload = decoded[2];
|
|
101
104
|
chunked.push(chunked_payload_1.ChunkedPayload.fromEncoded(payload));
|
|
102
105
|
}
|
|
103
106
|
else {
|
|
104
|
-
throw new errors_1.SerializerError(errors_1.SerializerErrorType.PAYLOAD_TYPE_NOT_SUPPORTED,
|
|
107
|
+
throw new errors_1.SerializerError(errors_1.SerializerErrorType.PAYLOAD_TYPE_NOT_SUPPORTED, `Type "${type}" is unknown.`);
|
|
105
108
|
}
|
|
106
109
|
});
|
|
107
110
|
if (!finalPayload) {
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
availablePages: sortedChunks.map(
|
|
111
|
+
const sortedChunks = chunked.sort(sortByPage);
|
|
112
|
+
const arr = sortedChunks.map((chunk) => chunk.buffer);
|
|
113
|
+
const result = {
|
|
114
|
+
availablePages: sortedChunks.map((a) => a.currentPage),
|
|
112
115
|
totalPages: sortedChunks[0].total
|
|
113
116
|
};
|
|
114
117
|
if (result.availablePages.length < result.totalPages) {
|
|
@@ -117,8 +120,7 @@ var IACProtocol = /** @class */ (function () {
|
|
|
117
120
|
finalPayload = full_payload_1.FullPayload.fromEncoded(rlp.decode(Buffer.concat(arr)), serializer);
|
|
118
121
|
}
|
|
119
122
|
return [new IACProtocol(finalPayload)];
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
}());
|
|
123
|
+
}
|
|
124
|
+
}
|
|
123
125
|
exports.IACProtocol = IACProtocol;
|
|
124
126
|
//# sourceMappingURL=inter-app-communication-protocol.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inter-app-communication-protocol.js","sourceRoot":"","sources":["../../src/v2/inter-app-communication-protocol.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"inter-app-communication-protocol.js","sourceRoot":"","sources":["../../src/v2/inter-app-communication-protocol.ts"],"names":[],"mappings":"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"}
|
package/v2/interfaces.js
CHANGED
|
@@ -27,5 +27,5 @@ var IACMessageType;
|
|
|
27
27
|
// MultisigResponse = 22,
|
|
28
28
|
// SocialRecoveryShareRequest = 23,
|
|
29
29
|
// SocialRecoveryShareResponse = 24
|
|
30
|
-
})(IACMessageType
|
|
30
|
+
})(IACMessageType || (exports.IACMessageType = IACMessageType = {}));
|
|
31
31
|
//# sourceMappingURL=interfaces.js.map
|
package/v2/interfaces.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/v2/interfaces.ts"],"names":[],"mappings":";;;AAAA,IAAY,cAyBX;AAzBD,WAAY,cAAc;IACxB,mBAAmB;IACnB,oBAAoB;IACpB,iFAAuB,CAAA;IACvB,mFAAwB,CAAA;IACxB,uFAA0B,CAAA;IAC1B,yFAA2B,CAAA;IAC3B,+EAAsB,CAAA;IACtB,iFAAuB,CAAA;IACvB,4BAA4B;IAC5B,8BAA8B;IAC9B,8BAA8B;IAC9B,+BAA+B;IAC/B,8BAA8B;IAC9B,+BAA+B;IAC/B,yBAAyB;IACzB,0BAA0B;IAC1B,4BAA4B;IAC5B,6BAA6B;IAC7B,yBAAyB;IACzB,0BAA0B;IAC1B,wBAAwB;IACxB,yBAAyB;IACzB,mCAAmC;IACnC,mCAAmC;AACrC,CAAC,EAzBW,cAAc,
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/v2/interfaces.ts"],"names":[],"mappings":";;;AAAA,IAAY,cAyBX;AAzBD,WAAY,cAAc;IACxB,mBAAmB;IACnB,oBAAoB;IACpB,iFAAuB,CAAA;IACvB,mFAAwB,CAAA;IACxB,uFAA0B,CAAA;IAC1B,yFAA2B,CAAA;IAC3B,+EAAsB,CAAA;IACtB,iFAAuB,CAAA;IACvB,4BAA4B;IAC5B,8BAA8B;IAC9B,8BAA8B;IAC9B,+BAA+B;IAC/B,8BAA8B;IAC9B,+BAA+B;IAC/B,yBAAyB;IACzB,0BAA0B;IAC1B,4BAA4B;IAC5B,6BAA6B;IAC7B,yBAAyB;IACzB,0BAA0B;IAC1B,wBAAwB;IACxB,yBAAyB;IACzB,mCAAmC;IACnC,mCAAmC;AACrC,CAAC,EAzBW,cAAc,8BAAd,cAAc,QAyBzB"}
|
package/v2/message.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
1
|
import { ProtocolSymbols } from '@airgap/coinlib-core/utils/ProtocolSymbols';
|
|
3
2
|
import { IACMessageType } from './interfaces';
|
|
4
3
|
import { AccountShareResponse } from './schemas/definitions/account-share-response';
|
|
@@ -8,7 +7,7 @@ import { Serializer } from './serializer';
|
|
|
8
7
|
import { TransactionSignRequest } from './transactions/transaction-sign-request';
|
|
9
8
|
import { TransactionSignResponse } from './transactions/transaction-sign-response';
|
|
10
9
|
import { RLPData } from './utils/toBuffer';
|
|
11
|
-
export
|
|
10
|
+
export type IACMessages = AccountShareResponse | MessageSignRequest | MessageSignResponse | TransactionSignRequest | TransactionSignResponse;
|
|
12
11
|
export interface IACMessageDefinitionObject {
|
|
13
12
|
id: string;
|
|
14
13
|
type: IACMessageType;
|
package/v2/message.js
CHANGED
|
@@ -1,85 +1,79 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Message = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
if (id === void 0) { id = (0, generateId_1.generateIdV2)(ID_LENGTH); }
|
|
14
|
-
if (version === void 0) { version = '1'; }
|
|
15
|
-
if (serializer === void 0) { serializer = serializer_1.Serializer.getInstance(); }
|
|
4
|
+
const errors_1 = require("@airgap/coinlib-core/errors");
|
|
5
|
+
const ProtocolSymbols_1 = require("@airgap/coinlib-core/utils/ProtocolSymbols");
|
|
6
|
+
const interfaces_1 = require("./interfaces");
|
|
7
|
+
const serializer_1 = require("./serializer");
|
|
8
|
+
const generateId_1 = require("./utils/generateId");
|
|
9
|
+
const json_to_rlp_1 = require("./utils/json-to-rlp");
|
|
10
|
+
const ID_LENGTH = 10;
|
|
11
|
+
class Message {
|
|
12
|
+
constructor(type, protocol, payload, id = (0, generateId_1.generateIdV2)(ID_LENGTH), version = '1', serializer = serializer_1.Serializer.getInstance()) {
|
|
16
13
|
this.id = id;
|
|
17
14
|
this.type = type;
|
|
18
15
|
this.protocol = protocol;
|
|
19
16
|
this.payload = payload;
|
|
20
17
|
this.version = version;
|
|
21
|
-
|
|
18
|
+
const schemaInfo = serializer.getSchema(this.type, this.protocol);
|
|
22
19
|
this.schema = (0, json_to_rlp_1.unwrapSchema)(schemaInfo.schema);
|
|
23
20
|
}
|
|
24
|
-
|
|
21
|
+
asJson() {
|
|
25
22
|
return {
|
|
26
23
|
type: this.type,
|
|
27
24
|
protocol: this.protocol,
|
|
28
25
|
id: this.id,
|
|
29
26
|
payload: this.payload
|
|
30
27
|
};
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
|
|
28
|
+
}
|
|
29
|
+
asArray() {
|
|
30
|
+
const array = (0, json_to_rlp_1.jsonToArray)('root', this.schema, this.payload);
|
|
34
31
|
return [this.version, this.type.toString(), this.protocol, array, this.id];
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
if (serializer === void 0) { serializer = serializer_1.Serializer.getInstance(); }
|
|
32
|
+
}
|
|
33
|
+
static fromDecoded(object, serializer = serializer_1.Serializer.getInstance()) {
|
|
38
34
|
return new Message(object.type, object.protocol, object.payload, object.id, undefined, serializer);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
var protocol = this.parseProtocol(buf[2]);
|
|
35
|
+
}
|
|
36
|
+
static fromEncoded(buf, serializer = serializer_1.Serializer.getInstance()) {
|
|
37
|
+
const version = this.parseVersion(buf[0]);
|
|
38
|
+
const type = this.parseType(buf[1]);
|
|
39
|
+
const protocol = this.parseProtocol(buf[2]);
|
|
45
40
|
// Backwards compatiblity for version 0, before we had an ID
|
|
46
|
-
|
|
41
|
+
const idBuf = version === '0' ? Buffer.from((0, generateId_1.generateIdV2)(ID_LENGTH)) : buf[4];
|
|
47
42
|
// End Backwards compatibility
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
43
|
+
const id = this.parseId(idBuf);
|
|
44
|
+
const encodedPayload = this.parsePayload(buf[3]);
|
|
45
|
+
const schemaInfo = serializer_1.Serializer.getSchema(type, protocol);
|
|
46
|
+
const schema = (0, json_to_rlp_1.unwrapSchema)(schemaInfo.schema);
|
|
47
|
+
const schemaTransformer = schemaInfo.transformer;
|
|
48
|
+
const json = (0, json_to_rlp_1.rlpArrayToJson)(schema, encodedPayload);
|
|
49
|
+
const payload = schemaTransformer ? schemaTransformer(json) : json;
|
|
55
50
|
return new Message(type, protocol, payload, id, version, serializer);
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
return this.validateProperty('Version', buffer,
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
return this.validateProperty('Type', buffer,
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
return this.validateProperty('Protocol', buffer,
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
return this.validateProperty('Id', buffer,
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
return this.validateProperty('Payload', buffer,
|
|
71
|
-
}
|
|
72
|
-
|
|
51
|
+
}
|
|
52
|
+
static parseVersion(buffer) {
|
|
53
|
+
return this.validateProperty('Version', buffer, (buf) => buf.toString(), (val) => val === '0' || val === '1');
|
|
54
|
+
}
|
|
55
|
+
static parseType(buffer) {
|
|
56
|
+
return this.validateProperty('Type', buffer, (buf) => parseInt(buf.toString(), 10), (val) => Object.values(interfaces_1.IACMessageType).includes(val));
|
|
57
|
+
}
|
|
58
|
+
static parseProtocol(buffer) {
|
|
59
|
+
return this.validateProperty('Protocol', buffer, (buf) => buf.toString(), (val) => val.length === 0 || Object.values(ProtocolSymbols_1.MainProtocolSymbols).some((value) => val.split('-')[0] === value));
|
|
60
|
+
}
|
|
61
|
+
static parseId(buffer) {
|
|
62
|
+
return this.validateProperty('Id', buffer, (buf) => buf.toString(), (val) => val.length === ID_LENGTH);
|
|
63
|
+
}
|
|
64
|
+
static parsePayload(buffer) {
|
|
65
|
+
return this.validateProperty('Payload', buffer, (buf) => buf, () => true);
|
|
66
|
+
}
|
|
67
|
+
static validateProperty(property, buffer, parse, validate) {
|
|
73
68
|
if (typeof buffer === 'undefined') {
|
|
74
|
-
throw new errors_1.SerializerError(errors_1.SerializerErrorType.PROPERTY_IS_EMPTY,
|
|
69
|
+
throw new errors_1.SerializerError(errors_1.SerializerErrorType.PROPERTY_IS_EMPTY, `${property} is empty`);
|
|
75
70
|
}
|
|
76
|
-
|
|
71
|
+
const parsed = parse(buffer);
|
|
77
72
|
if (validate(parsed)) {
|
|
78
73
|
return parsed; // TODO: Use type guard?
|
|
79
74
|
}
|
|
80
|
-
throw new errors_1.SerializerError(errors_1.SerializerErrorType.PROPERTY_IS_EMPTY,
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
}());
|
|
75
|
+
throw new errors_1.SerializerError(errors_1.SerializerErrorType.PROPERTY_IS_EMPTY, `${property} is invalid: "${parsed}"`);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
84
78
|
exports.Message = Message;
|
|
85
79
|
//# sourceMappingURL=message.js.map
|
package/v2/message.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/v2/message.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/v2/message.ts"],"names":[],"mappings":";;;AAAA,wDAAkF;AAClF,gFAAiG;AAEjG,6CAA6C;AAK7C,6CAAyC;AAGzC,mDAAiD;AACjD,qDAA+E;AAG/E,MAAM,SAAS,GAAW,EAAE,CAAA;AAoB5B,MAAa,OAAO;IASlB,YACE,IAAoB,EACpB,QAAyB,EACzB,OAAoB,EACpB,KAAa,IAAA,yBAAY,EAAC,SAAS,CAAC,EACpC,UAAkB,GAAG,EACrB,aAAyB,uBAAU,CAAC,WAAW,EAAE;QAEjD,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;QACZ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QAEtB,MAAM,UAAU,GAAe,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC7E,IAAI,CAAC,MAAM,GAAG,IAAA,0BAAY,EAAC,UAAU,CAAC,MAAM,CAAC,CAAA;IAC/C,CAAC;IAEM,MAAM;QACX,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAA;IACH,CAAC;IAEM,OAAO;QACZ,MAAM,KAAK,GAAY,IAAA,yBAAW,EAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;QAErE,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;IAC5E,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,MAAkC,EAAE,aAAyB,uBAAU,CAAC,WAAW,EAAE;QAC7G,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,CAAA;IACpG,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,GAA2B,EAAE,aAAyB,uBAAU,CAAC,WAAW,EAAE;QACtG,MAAM,OAAO,GAAW,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QACjD,MAAM,IAAI,GAAmB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QACnD,MAAM,QAAQ,GAAoB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAE5D,4DAA4D;QAC5D,MAAM,KAAK,GAAuB,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAA,yBAAY,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QACjG,8BAA8B;QAE9B,MAAM,EAAE,GAAW,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACtC,MAAM,cAAc,GAAY,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAEzD,MAAM,UAAU,GAAe,uBAAU,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;QACnE,MAAM,MAAM,GAAe,IAAA,0BAAY,EAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QAC1D,MAAM,iBAAiB,GAAkC,UAAU,CAAC,WAAW,CAAA;QAC/E,MAAM,IAAI,GAAiB,IAAA,4BAAc,EAAC,MAAM,EAAE,cAAc,CAAwB,CAAA;QACxF,MAAM,OAAO,GAAgB,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAE/E,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA;IACtE,CAAC;IAEO,MAAM,CAAC,YAAY,CAAC,MAAc;QACxC,OAAO,IAAI,CAAC,gBAAgB,CAC1B,SAAS,EACT,MAAM,EACN,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,EAC/B,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,CAC5C,CAAA;IACH,CAAC;IAEO,MAAM,CAAC,SAAS,CAAC,MAAc;QACrC,OAAO,IAAI,CAAC,gBAAgB,CAC1B,MAAM,EACN,MAAM,EACN,CAAC,GAAW,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC,EAC7C,CAAC,GAAW,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,2BAAc,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAC7D,CAAA;IACH,CAAC;IAEO,MAAM,CAAC,aAAa,CAAC,MAAc;QACzC,OAAO,IAAI,CAAC,gBAAgB,CAC1B,UAAU,EACV,MAAM,EACN,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,EAC/B,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,qCAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,KAAa,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAC7H,CAAA;IACH,CAAC;IAEO,MAAM,CAAC,OAAO,CAAC,MAAc;QACnC,OAAO,IAAI,CAAC,gBAAgB,CAC1B,IAAI,EACJ,MAAM,EACN,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,EAC/B,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,CAC1C,CAAA;IACH,CAAC;IAEO,MAAM,CAAC,YAAY,CAAC,MAAc;QACxC,OAAO,IAAI,CAAC,gBAAgB,CAC1B,SAAS,EACT,MAAM,EACN,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,EACpB,GAAG,EAAE,CAAC,IAAI,CACX,CAAA;IACH,CAAC;IAEO,MAAM,CAAC,gBAAgB,CAC7B,QAAgB,EAChB,MAAc,EACd,KAA4B,EAC5B,QAA+B;QAE/B,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,MAAM,IAAI,wBAAe,CAAC,4BAAmB,CAAC,iBAAiB,EAAE,GAAG,QAAQ,WAAW,CAAC,CAAA;QAC1F,CAAC;QAED,MAAM,MAAM,GAAM,KAAK,CAAC,MAAM,CAAC,CAAA;QAE/B,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACrB,OAAQ,MAAuB,CAAA,CAAC,wBAAwB;QAC1D,CAAC;QAED,MAAM,IAAI,wBAAe,CAAC,4BAAmB,CAAC,iBAAiB,EAAE,GAAG,QAAQ,iBAAiB,MAAM,GAAG,CAAC,CAAA;IACzG,CAAC;CACF;AAlID,0BAkIC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ChunkedPayload = void 0;
|
|
4
|
-
|
|
4
|
+
const errors_1 = require("@airgap/coinlib-core/errors");
|
|
5
5
|
function isBufferArray(arg) {
|
|
6
|
-
return Array.isArray(arg) && arg.every(
|
|
6
|
+
return Array.isArray(arg) && arg.every((el) => el instanceof Buffer);
|
|
7
7
|
}
|
|
8
8
|
function isDecodedChunkedPayload(arg) {
|
|
9
9
|
// TODO: How can we detect if the interface changed?
|
|
@@ -21,36 +21,35 @@ function isObject(arg) {
|
|
|
21
21
|
function getIntFromBuffer(buffer) {
|
|
22
22
|
return parseInt(buffer.toString(), 10);
|
|
23
23
|
}
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
class ChunkedPayload {
|
|
25
|
+
constructor(currentPage, total, buffer) {
|
|
26
26
|
this.currentPage = currentPage;
|
|
27
27
|
this.total = total;
|
|
28
28
|
this.buffer = buffer;
|
|
29
29
|
}
|
|
30
|
-
|
|
30
|
+
static fromDecoded(object) {
|
|
31
31
|
if (!isDecodedChunkedPayload(object)) {
|
|
32
|
-
throw new errors_1.SerializerError(errors_1.SerializerErrorType.UNEXPECTED_PAYLOAD,
|
|
32
|
+
throw new errors_1.SerializerError(errors_1.SerializerErrorType.UNEXPECTED_PAYLOAD, `Object does not match "Chunked serializer" interface`);
|
|
33
33
|
}
|
|
34
34
|
return new ChunkedPayload(object.currentPage, object.total, object.payload);
|
|
35
|
-
}
|
|
36
|
-
|
|
35
|
+
}
|
|
36
|
+
static fromEncoded(buf) {
|
|
37
37
|
if (!isBufferArray(buf)) {
|
|
38
|
-
throw new errors_1.SerializerError(errors_1.SerializerErrorType.UNEXPECTED_PAYLOAD,
|
|
38
|
+
throw new errors_1.SerializerError(errors_1.SerializerErrorType.UNEXPECTED_PAYLOAD, `Input value is not a buffer array`);
|
|
39
39
|
}
|
|
40
40
|
if (buf.length !== 3) {
|
|
41
|
-
throw new errors_1.SerializerError(errors_1.SerializerErrorType.UNEXPECTED_PAYLOAD,
|
|
41
|
+
throw new errors_1.SerializerError(errors_1.SerializerErrorType.UNEXPECTED_PAYLOAD, `Input value does not have the right length`);
|
|
42
42
|
}
|
|
43
43
|
// We know here that the buffer has the following signature
|
|
44
44
|
// [currentPage, totalPages, payload]: [Buffer, Buffer, Buffer]
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
45
|
+
const currentPage = getIntFromBuffer(buf[0]);
|
|
46
|
+
const total = getIntFromBuffer(buf[1]);
|
|
47
|
+
const payload = buf[2];
|
|
48
48
|
return new ChunkedPayload(currentPage, total, payload);
|
|
49
|
-
}
|
|
50
|
-
|
|
49
|
+
}
|
|
50
|
+
asArray() {
|
|
51
51
|
return [this.currentPage.toString(), this.total.toString(), this.buffer];
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
}());
|
|
52
|
+
}
|
|
53
|
+
}
|
|
55
54
|
exports.ChunkedPayload = ChunkedPayload;
|
|
56
55
|
//# sourceMappingURL=chunked-payload.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunked-payload.js","sourceRoot":"","sources":["../../../src/v2/payloads/chunked-payload.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"chunked-payload.js","sourceRoot":"","sources":["../../../src/v2/payloads/chunked-payload.ts"],"names":[],"mappings":";;;AAAA,wDAAkF;AAYlF,SAAS,aAAa,CAAC,GAAY;IACjC,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,EAAW,EAAE,EAAE,CAAC,EAAE,YAAY,MAAM,CAAC,CAAA;AAC/E,CAAC;AAED,SAAS,uBAAuB,CAAC,GAAY;IAC3C,oDAAoD;IACpD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACnB,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,GAAG,CAAC,WAAW,KAAK,SAAS,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1F,OAAO,KAAK,CAAA;IACd,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,QAAQ,CAAC,GAAY;IAC5B,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAA;AAChC,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAc;IACtC,OAAO,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAA;AACxC,CAAC;AAED,MAAa,cAAc;IAKzB,YAAY,WAAmB,EAAE,KAAa,EAAE,MAAc;QAC5D,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,MAA6B;QACrD,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,wBAAe,CAAC,4BAAmB,CAAC,kBAAkB,EAAE,sDAAsD,CAAC,CAAA;QAC3H,CAAC;QAED,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;IAC7E,CAAC;IACM,MAAM,CAAC,WAAW,CAAC,GAA6B;QACrD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,wBAAe,CAAC,4BAAmB,CAAC,kBAAkB,EAAE,mCAAmC,CAAC,CAAA;QACxG,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,wBAAe,CAAC,4BAAmB,CAAC,kBAAkB,EAAE,4CAA4C,CAAC,CAAA;QACjH,CAAC;QAED,2DAA2D;QAC3D,+DAA+D;QAE/D,MAAM,WAAW,GAAW,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QACpD,MAAM,KAAK,GAAW,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAC9C,MAAM,OAAO,GAAW,GAAG,CAAC,CAAC,CAAC,CAAA;QAE9B,OAAO,IAAI,cAAc,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;IACxD,CAAC;IAEM,OAAO;QACZ,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IAC1E,CAAC;CACF;AAvCD,wCAuCC"}
|