@airgap/serializer 0.13.45-beta.3 → 0.13.45-beta.5
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 +55 -57
- 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 +2 -1
- package/v2/message.js +57 -51
- package/v2/message.js.map +1 -1
- package/v2/payloads/chunked-payload.d.ts +1 -0
- package/v2/payloads/chunked-payload.js +18 -17
- package/v2/payloads/chunked-payload.js.map +1 -1
- package/v2/payloads/full-payload.d.ts +1 -0
- package/v2/payloads/full-payload.js +33 -38
- 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 +122 -70
- package/v2/serializer.js.map +1 -1
- package/v2/utils/generateId.js +6 -5
- package/v2/utils/generateId.js.map +1 -1
- package/v2/utils/json-to-rlp.js +52 -45
- package/v2/utils/json-to-rlp.js.map +1 -1
- package/v2/utils/toBuffer.d.ts +2 -1
- package/v2/utils/toBuffer.js +3 -2
- package/v2/utils/toBuffer.js.map +1 -1
- package/v2/validators/validators.js +79 -37
- package/v2/validators/validators.js.map +1 -1
- package/v3/iac-message-wrapper.d.ts +3 -3
- package/v3/iac-message-wrapper.js +43 -50
- 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 +61 -53
- package/v3/message.js.map +1 -1
- package/v3/payload.js +25 -19
- 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 +120 -69
- package/v3/serializer.js.map +1 -1
- package/v3/utils/generateId.js +8 -7
- package/v3/utils/generateId.js.map +1 -1
- package/v3/utils/json-to-rlp.js +58 -51
- package/v3/utils/json-to-rlp.js.map +1 -1
- package/v3/utils/toBuffer.d.ts +2 -1
- package/v3/validators/validators.js +77 -35
- 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
|
+
var interfaces_1 = require("./v2/interfaces");
|
|
5
5
|
Object.defineProperty(exports, "IACMessageType", { enumerable: true, get: function () { return interfaces_1.IACMessageType; } });
|
|
6
|
-
|
|
6
|
+
var message_1 = require("./v2/message");
|
|
7
7
|
Object.defineProperty(exports, "Message", { enumerable: true, get: function () { return message_1.Message; } });
|
|
8
|
-
|
|
8
|
+
var serializer_1 = require("./v2/serializer");
|
|
9
9
|
Object.defineProperty(exports, "Serializer", { enumerable: true, get: function () { return serializer_1.Serializer; } });
|
|
10
|
-
|
|
10
|
+
var generateId_1 = require("./v2/utils/generateId");
|
|
11
11
|
Object.defineProperty(exports, "generateIdV2", { enumerable: true, get: function () { return generateId_1.generateIdV2; } });
|
|
12
|
-
|
|
12
|
+
var validators_1 = require("./v2/validators/validators");
|
|
13
13
|
Object.defineProperty(exports, "validateSyncSchemeV2", { enumerable: true, get: function () { return validators_1.validateSyncScheme; } });
|
|
14
|
-
|
|
14
|
+
var serializer_2 = require("./v3/serializer");
|
|
15
15
|
Object.defineProperty(exports, "SerializerV3", { enumerable: true, get: function () { return serializer_2.SerializerV3; } });
|
|
16
|
-
|
|
16
|
+
var generateId_2 = require("./v3/utils/generateId");
|
|
17
17
|
Object.defineProperty(exports, "generateId", { enumerable: true, get: function () { return generateId_2.generateId; } });
|
|
18
|
-
|
|
18
|
+
var 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,8CAAgD;AA2B9C,+FA3BO,2BAAc,OA2BP;AA1BhB,wCAAgG;AAoC9F,wFApCiE,iBAAO,OAoCjE;AA/BT,8CAA4C;AA6B1C,2FA7BO,uBAAU,OA6BP;AA1BZ,oDAAoD;AAwC/B,6FAxCZ,yBAAY,OAwCY;AAnCjC,yDAAuF;AAmChC,qGAnCxB,+BAAoB,OAmCwB;AA9B3E,8CAA8C;AAiB5C,6FAjBO,yBAAY,OAiBP;AAdd,oDAAkD;AA2BzC,2FA3BA,uBAAU,OA2BA;AAzBnB,yDAA+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.5",
|
|
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.5"
|
|
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 type IACProtocolVersion = number;
|
|
5
|
-
export type IACProtocolType = [IACProtocolVersion, IACPayloadType, Payload];
|
|
4
|
+
export declare type IACProtocolVersion = number;
|
|
5
|
+
export declare type IACProtocolType = [IACProtocolVersion, IACPayloadType, Payload];
|
|
6
6
|
export declare class IACProtocol {
|
|
7
7
|
readonly version: number;
|
|
8
8
|
readonly payloadType: IACPayloadType;
|
|
@@ -15,37 +15,27 @@ 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) ||
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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
|
-
})();
|
|
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
|
+
};
|
|
35
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
26
|
exports.IACProtocol = void 0;
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
27
|
+
var bs58check = __importStar(require("@airgap/coinlib-core/dependencies/src/bs58check-2.1.2/index"));
|
|
28
|
+
var rlp = __importStar(require("@airgap/coinlib-core/dependencies/src/rlp-2.2.3/index"));
|
|
29
|
+
var errors_1 = require("@airgap/coinlib-core/errors");
|
|
30
|
+
var chunked_payload_1 = require("./payloads/chunked-payload");
|
|
31
|
+
var full_payload_1 = require("./payloads/full-payload");
|
|
32
|
+
var serializer_1 = require("./serializer");
|
|
43
33
|
function sortByPage(a, b) {
|
|
44
34
|
return a.currentPage - b.currentPage;
|
|
45
35
|
}
|
|
46
36
|
// IACProtocolMessage instead of IACProtocol?
|
|
47
|
-
|
|
48
|
-
|
|
37
|
+
var IACProtocol = /** @class */ (function () {
|
|
38
|
+
function IACProtocol(data) {
|
|
49
39
|
this.version = 2;
|
|
50
40
|
if (data instanceof full_payload_1.FullPayload) {
|
|
51
41
|
this.payloadType = serializer_1.IACPayloadType.FULL;
|
|
@@ -56,62 +46,69 @@ class IACProtocol {
|
|
|
56
46
|
this.payload = data;
|
|
57
47
|
}
|
|
58
48
|
else {
|
|
59
|
-
throw new errors_1.SerializerError(errors_1.SerializerErrorType.PAYLOAD_TYPE_UNKNOWN,
|
|
49
|
+
throw new errors_1.SerializerError(errors_1.SerializerErrorType.PAYLOAD_TYPE_UNKNOWN, "Is neither \"Full\" nor \"Chunked\".");
|
|
60
50
|
}
|
|
61
51
|
}
|
|
62
|
-
decoded() {
|
|
52
|
+
IACProtocol.prototype.decoded = function () {
|
|
63
53
|
return [this.version, this.payloadType, this.payload];
|
|
64
|
-
}
|
|
65
|
-
encoded
|
|
54
|
+
};
|
|
55
|
+
IACProtocol.prototype.encoded = function (serializer) {
|
|
56
|
+
if (serializer === void 0) { serializer = serializer_1.Serializer.getInstance(); }
|
|
66
57
|
return bs58check.encode(rlp.encode([this.version.toString(), this.payloadType.toString(), this.payload.asArray(serializer)]));
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
58
|
+
};
|
|
59
|
+
IACProtocol.fromDecoded = function (data, singleChunkSize, multiChunkSize, serializer) {
|
|
60
|
+
if (singleChunkSize === void 0) { singleChunkSize = 0; }
|
|
61
|
+
if (multiChunkSize === void 0) { multiChunkSize = 0; }
|
|
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);
|
|
71
65
|
if (singleChunkSize > 0 && rawPayload.length > singleChunkSize) {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
66
|
+
var chunks_1 = [];
|
|
67
|
+
var nodeBuffer = rawPayload;
|
|
68
|
+
var bufferLength = rawPayload.length;
|
|
69
|
+
var i = 0;
|
|
76
70
|
while (i < bufferLength) {
|
|
77
|
-
|
|
71
|
+
chunks_1.push(nodeBuffer.slice(i, (i += multiChunkSize)));
|
|
78
72
|
}
|
|
79
|
-
return
|
|
73
|
+
return chunks_1.map(function (chunk, index) {
|
|
74
|
+
return new IACProtocol(chunked_payload_1.ChunkedPayload.fromDecoded({ currentPage: index, total: chunks_1.length, payload: chunk }));
|
|
75
|
+
});
|
|
80
76
|
}
|
|
81
77
|
else {
|
|
82
78
|
return [new IACProtocol(payload)];
|
|
83
79
|
}
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
80
|
+
};
|
|
81
|
+
IACProtocol.fromEncoded = function (data, serializer) {
|
|
82
|
+
if (serializer === void 0) { serializer = serializer_1.Serializer.getInstance(); }
|
|
83
|
+
var chunked = [];
|
|
84
|
+
var finalPayload;
|
|
88
85
|
// make sure that all are the same type
|
|
89
|
-
|
|
90
|
-
data.forEach((entry)
|
|
91
|
-
|
|
86
|
+
var globalType;
|
|
87
|
+
data.forEach(function (entry) {
|
|
88
|
+
var decoded = rlp.decode(bs58check.decode(entry));
|
|
92
89
|
// const version: string = decoded[0].toString()
|
|
93
|
-
|
|
94
|
-
globalType = globalType
|
|
90
|
+
var type = parseInt(decoded[1].toString(), 10);
|
|
91
|
+
globalType = globalType !== null && globalType !== void 0 ? globalType : type;
|
|
95
92
|
if (globalType !== type) {
|
|
96
93
|
throw new errors_1.SerializerError(errors_1.SerializerErrorType.PAYLOAD_TYPE_MISMATCH, 'All types within a group must either be "full" or "chunked".');
|
|
97
94
|
}
|
|
98
95
|
if (type === serializer_1.IACPayloadType.FULL) {
|
|
99
|
-
|
|
96
|
+
var payload = decoded[2];
|
|
100
97
|
finalPayload = full_payload_1.FullPayload.fromEncoded(payload, serializer);
|
|
101
98
|
}
|
|
102
99
|
else if (type === serializer_1.IACPayloadType.CHUNKED) {
|
|
103
|
-
|
|
100
|
+
var payload = decoded[2];
|
|
104
101
|
chunked.push(chunked_payload_1.ChunkedPayload.fromEncoded(payload));
|
|
105
102
|
}
|
|
106
103
|
else {
|
|
107
|
-
throw new errors_1.SerializerError(errors_1.SerializerErrorType.PAYLOAD_TYPE_NOT_SUPPORTED,
|
|
104
|
+
throw new errors_1.SerializerError(errors_1.SerializerErrorType.PAYLOAD_TYPE_NOT_SUPPORTED, "Type \"".concat(type, "\" is unknown."));
|
|
108
105
|
}
|
|
109
106
|
});
|
|
110
107
|
if (!finalPayload) {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
availablePages: sortedChunks.map((a)
|
|
108
|
+
var sortedChunks = chunked.sort(sortByPage);
|
|
109
|
+
var arr = sortedChunks.map(function (chunk) { return chunk.buffer; });
|
|
110
|
+
var result = {
|
|
111
|
+
availablePages: sortedChunks.map(function (a) { return a.currentPage; }),
|
|
115
112
|
totalPages: sortedChunks[0].total
|
|
116
113
|
};
|
|
117
114
|
if (result.availablePages.length < result.totalPages) {
|
|
@@ -120,7 +117,8 @@ class IACProtocol {
|
|
|
120
117
|
finalPayload = full_payload_1.FullPayload.fromEncoded(rlp.decode(Buffer.concat(arr)), serializer);
|
|
121
118
|
}
|
|
122
119
|
return [new IACProtocol(finalPayload)];
|
|
123
|
-
}
|
|
124
|
-
|
|
120
|
+
};
|
|
121
|
+
return IACProtocol;
|
|
122
|
+
}());
|
|
125
123
|
exports.IACProtocol = IACProtocol;
|
|
126
124
|
//# 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":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qGAAwF;AACxF,yFAA4E;AAC5E,sDAAkF;AAGlF,8DAA2D;AAC3D,wDAAqD;AAErD,2CAAyD;AAKzD,SAAS,UAAU,CAAC,CAAiB,EAAE,CAAiB;IACtD,OAAO,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAA;AACtC,CAAC;AAED,6CAA6C;AAC7C;IAKE,qBAAY,IAAa;QAJT,YAAO,GAAW,CAAC,CAAA;QAKjC,IAAI,IAAI,YAAY,0BAAW,EAAE;YAC/B,IAAI,CAAC,WAAW,GAAG,2BAAc,CAAC,IAAI,CAAA;YACtC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;SACpB;aAAM,IAAI,IAAI,YAAY,gCAAc,EAAE;YACzC,IAAI,CAAC,WAAW,GAAG,2BAAc,CAAC,OAAO,CAAA;YACzC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;SACpB;aAAM;YACL,MAAM,IAAI,wBAAe,CAAC,4BAAmB,CAAC,oBAAoB,EAAE,sCAAkC,CAAC,CAAA;SACxG;IACH,CAAC;IAEM,6BAAO,GAAd;QACE,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;IACvD,CAAC;IAEM,6BAAO,GAAd,UAAe,UAAiD;QAAjD,2BAAA,EAAA,aAAyB,uBAAU,CAAC,WAAW,EAAE;QAC9D,OAAO,SAAS,CAAC,MAAM,CACrB,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAQ,CAAC,CAAQ,CACnH,CAAA;IACH,CAAC;IAEa,uBAAW,GAAzB,UACE,IAAkC,EAClC,eAA2B,EAC3B,cAA0B,EAC1B,UAAiD;QAFjD,gCAAA,EAAA,mBAA2B;QAC3B,+BAAA,EAAA,kBAA0B;QAC1B,2BAAA,EAAA,aAAyB,uBAAU,CAAC,WAAW,EAAE;QAEjD,IAAM,OAAO,GAAgB,0BAAW,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QAC1D,IAAM,UAAU,GAAW,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;QACvD,IAAI,eAAe,GAAG,CAAC,IAAI,UAAU,CAAC,MAAM,GAAG,eAAe,EAAE;YAC9D,IAAM,QAAM,GAAa,EAAE,CAAA;YAC3B,IAAM,UAAU,GAAW,UAAU,CAAA;YACrC,IAAM,YAAY,GAAW,UAAU,CAAC,MAAM,CAAA;YAE9C,IAAI,CAAC,GAAW,CAAC,CAAA;YACjB,OAAO,CAAC,GAAG,YAAY,EAAE;gBACvB,QAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,CAAA;aACxD;YAED,OAAO,QAAM,CAAC,GAAG,CACf,UAAC,KAAa,EAAE,KAAa;gBAC3B,OAAA,IAAI,WAAW,CAAC,gCAAc,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,QAAM,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YAAzG,CAAyG,CAC5G,CAAA;SACF;aAAM;YACL,OAAO,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC,CAAA;SAClC;IACH,CAAC;IAEa,uBAAW,GAAzB,UAA0B,IAAc,EAAE,UAAiD;QAAjD,2BAAA,EAAA,aAAyB,uBAAU,CAAC,WAAW,EAAE;QACzF,IAAM,OAAO,GAAqB,EAAE,CAAA;QACpC,IAAI,YAAiC,CAAA;QAErC,uCAAuC;QACvC,IAAI,UAA8B,CAAA;QAClC,IAAI,CAAC,OAAO,CAAC,UAAC,KAAa;YACzB,IAAM,OAAO,GAAa,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;YAC7D,gDAAgD;YAChD,IAAM,IAAI,GAAW,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAA;YAExD,UAAU,GAAG,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,IAAI,CAAA;YAC/B,IAAI,UAAU,KAAK,IAAI,EAAE;gBACvB,MAAM,IAAI,wBAAe,CAAC,4BAAmB,CAAC,qBAAqB,EAAE,8DAA8D,CAAC,CAAA;aACrI;YAED,IAAI,IAAI,KAAK,2BAAc,CAAC,IAAI,EAAE;gBAChC,IAAM,OAAO,GAAc,OAAO,CAAC,CAAC,CAAqB,CAAA;gBACzD,YAAY,GAAG,0BAAW,CAAC,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;aAC5D;iBAAM,IAAI,IAAI,KAAK,2BAAc,CAAC,OAAO,EAAE;gBAC1C,IAAM,OAAO,GAA8B,OAAO,CAAC,CAAC,CAAqC,CAAA;gBACzF,OAAO,CAAC,IAAI,CAAC,gCAAc,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAA;aAClD;iBAAM;gBACL,MAAM,IAAI,wBAAe,CAAC,4BAAmB,CAAC,0BAA0B,EAAE,iBAAS,IAAI,mBAAe,CAAC,CAAA;aACxG;QACH,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,YAAY,EAAE;YACjB,IAAM,YAAY,GAAqB,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YAC/D,IAAM,GAAG,GAAa,YAAY,CAAC,GAAG,CAAC,UAAC,KAAqB,IAAK,OAAA,KAAK,CAAC,MAAM,EAAZ,CAAY,CAAC,CAAA;YAE/E,IAAM,MAAM,GAAqD;gBAC/D,cAAc,EAAE,YAAY,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,WAAW,EAAb,CAAa,CAAC;gBACtD,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK;aAClC,CAAA;YAED,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE;gBACpD,MAAM,MAAM,CAAA;aACb;YAED,YAAY,GAAG,0BAAW,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;SACnF;QAED,OAAO,CAAC,IAAI,WAAW,CAAC,YAAY,CAAC,CAAC,CAAA;IACxC,CAAC;IACH,kBAAC;AAAD,CAAC,AAnGD,IAmGC;AAnGY,kCAAW"}
|
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 || (exports.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,GAAd,sBAAc,KAAd,sBAAc,QAyBzB"}
|
package/v2/message.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
1
2
|
import { ProtocolSymbols } from '@airgap/coinlib-core/utils/ProtocolSymbols';
|
|
2
3
|
import { IACMessageType } from './interfaces';
|
|
3
4
|
import { AccountShareResponse } from './schemas/definitions/account-share-response';
|
|
@@ -7,7 +8,7 @@ import { Serializer } from './serializer';
|
|
|
7
8
|
import { TransactionSignRequest } from './transactions/transaction-sign-request';
|
|
8
9
|
import { TransactionSignResponse } from './transactions/transaction-sign-response';
|
|
9
10
|
import { RLPData } from './utils/toBuffer';
|
|
10
|
-
export type IACMessages = AccountShareResponse | MessageSignRequest | MessageSignResponse | TransactionSignRequest | TransactionSignResponse;
|
|
11
|
+
export declare type IACMessages = AccountShareResponse | MessageSignRequest | MessageSignResponse | TransactionSignRequest | TransactionSignResponse;
|
|
11
12
|
export interface IACMessageDefinitionObject {
|
|
12
13
|
id: string;
|
|
13
14
|
type: IACMessageType;
|
package/v2/message.js
CHANGED
|
@@ -1,79 +1,85 @@
|
|
|
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
|
-
|
|
4
|
+
var errors_1 = require("@airgap/coinlib-core/errors");
|
|
5
|
+
var ProtocolSymbols_1 = require("@airgap/coinlib-core/utils/ProtocolSymbols");
|
|
6
|
+
var interfaces_1 = require("./interfaces");
|
|
7
|
+
var serializer_1 = require("./serializer");
|
|
8
|
+
var generateId_1 = require("./utils/generateId");
|
|
9
|
+
var json_to_rlp_1 = require("./utils/json-to-rlp");
|
|
10
|
+
var ID_LENGTH = 10;
|
|
11
|
+
var Message = /** @class */ (function () {
|
|
12
|
+
function Message(type, protocol, payload, id, version, serializer) {
|
|
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(); }
|
|
13
16
|
this.id = id;
|
|
14
17
|
this.type = type;
|
|
15
18
|
this.protocol = protocol;
|
|
16
19
|
this.payload = payload;
|
|
17
20
|
this.version = version;
|
|
18
|
-
|
|
21
|
+
var schemaInfo = serializer.getSchema(this.type, this.protocol);
|
|
19
22
|
this.schema = (0, json_to_rlp_1.unwrapSchema)(schemaInfo.schema);
|
|
20
23
|
}
|
|
21
|
-
asJson() {
|
|
24
|
+
Message.prototype.asJson = function () {
|
|
22
25
|
return {
|
|
23
26
|
type: this.type,
|
|
24
27
|
protocol: this.protocol,
|
|
25
28
|
id: this.id,
|
|
26
29
|
payload: this.payload
|
|
27
30
|
};
|
|
28
|
-
}
|
|
29
|
-
asArray() {
|
|
30
|
-
|
|
31
|
+
};
|
|
32
|
+
Message.prototype.asArray = function () {
|
|
33
|
+
var array = (0, json_to_rlp_1.jsonToArray)('root', this.schema, this.payload);
|
|
31
34
|
return [this.version, this.type.toString(), this.protocol, array, this.id];
|
|
32
|
-
}
|
|
33
|
-
|
|
35
|
+
};
|
|
36
|
+
Message.fromDecoded = function (object, serializer) {
|
|
37
|
+
if (serializer === void 0) { serializer = serializer_1.Serializer.getInstance(); }
|
|
34
38
|
return new Message(object.type, object.protocol, object.payload, object.id, undefined, serializer);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
39
|
+
};
|
|
40
|
+
Message.fromEncoded = function (buf, serializer) {
|
|
41
|
+
if (serializer === void 0) { serializer = serializer_1.Serializer.getInstance(); }
|
|
42
|
+
var version = this.parseVersion(buf[0]);
|
|
43
|
+
var type = this.parseType(buf[1]);
|
|
44
|
+
var protocol = this.parseProtocol(buf[2]);
|
|
40
45
|
// Backwards compatiblity for version 0, before we had an ID
|
|
41
|
-
|
|
46
|
+
var idBuf = version === '0' ? Buffer.from((0, generateId_1.generateIdV2)(ID_LENGTH)) : buf[4];
|
|
42
47
|
// End Backwards compatibility
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
var id = this.parseId(idBuf);
|
|
49
|
+
var encodedPayload = this.parsePayload(buf[3]);
|
|
50
|
+
var schemaInfo = serializer_1.Serializer.getSchema(type, protocol);
|
|
51
|
+
var schema = (0, json_to_rlp_1.unwrapSchema)(schemaInfo.schema);
|
|
52
|
+
var schemaTransformer = schemaInfo.transformer;
|
|
53
|
+
var json = (0, json_to_rlp_1.rlpArrayToJson)(schema, encodedPayload);
|
|
54
|
+
var payload = schemaTransformer ? schemaTransformer(json) : json;
|
|
50
55
|
return new Message(type, protocol, payload, id, version, serializer);
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
return this.validateProperty('Version', buffer, (buf)
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
return this.validateProperty('Type', buffer, (buf)
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
return this.validateProperty('Protocol', buffer, (buf)
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
return this.validateProperty('Id', buffer, (buf)
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
return this.validateProperty('Payload', buffer, (buf)
|
|
66
|
-
}
|
|
67
|
-
|
|
56
|
+
};
|
|
57
|
+
Message.parseVersion = function (buffer) {
|
|
58
|
+
return this.validateProperty('Version', buffer, function (buf) { return buf.toString(); }, function (val) { return val === '0' || val === '1'; });
|
|
59
|
+
};
|
|
60
|
+
Message.parseType = function (buffer) {
|
|
61
|
+
return this.validateProperty('Type', buffer, function (buf) { return parseInt(buf.toString(), 10); }, function (val) { return Object.values(interfaces_1.IACMessageType).includes(val); });
|
|
62
|
+
};
|
|
63
|
+
Message.parseProtocol = function (buffer) {
|
|
64
|
+
return this.validateProperty('Protocol', buffer, function (buf) { return buf.toString(); }, function (val) { return val.length === 0 || Object.values(ProtocolSymbols_1.MainProtocolSymbols).some(function (value) { return val.split('-')[0] === value; }); });
|
|
65
|
+
};
|
|
66
|
+
Message.parseId = function (buffer) {
|
|
67
|
+
return this.validateProperty('Id', buffer, function (buf) { return buf.toString(); }, function (val) { return val.length === ID_LENGTH; });
|
|
68
|
+
};
|
|
69
|
+
Message.parsePayload = function (buffer) {
|
|
70
|
+
return this.validateProperty('Payload', buffer, function (buf) { return buf; }, function () { return true; });
|
|
71
|
+
};
|
|
72
|
+
Message.validateProperty = function (property, buffer, parse, validate) {
|
|
68
73
|
if (typeof buffer === 'undefined') {
|
|
69
|
-
throw new errors_1.SerializerError(errors_1.SerializerErrorType.PROPERTY_IS_EMPTY,
|
|
74
|
+
throw new errors_1.SerializerError(errors_1.SerializerErrorType.PROPERTY_IS_EMPTY, "".concat(property, " is empty"));
|
|
70
75
|
}
|
|
71
|
-
|
|
76
|
+
var parsed = parse(buffer);
|
|
72
77
|
if (validate(parsed)) {
|
|
73
78
|
return parsed; // TODO: Use type guard?
|
|
74
79
|
}
|
|
75
|
-
throw new errors_1.SerializerError(errors_1.SerializerErrorType.PROPERTY_IS_EMPTY,
|
|
76
|
-
}
|
|
77
|
-
|
|
80
|
+
throw new errors_1.SerializerError(errors_1.SerializerErrorType.PROPERTY_IS_EMPTY, "".concat(property, " is invalid: \"").concat(parsed, "\""));
|
|
81
|
+
};
|
|
82
|
+
return Message;
|
|
83
|
+
}());
|
|
78
84
|
exports.Message = Message;
|
|
79
85
|
//# 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":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ChunkedPayload = void 0;
|
|
4
|
-
|
|
4
|
+
var errors_1 = require("@airgap/coinlib-core/errors");
|
|
5
5
|
function isBufferArray(arg) {
|
|
6
|
-
return Array.isArray(arg) && arg.every((el)
|
|
6
|
+
return Array.isArray(arg) && arg.every(function (el) { return el instanceof Buffer; });
|
|
7
7
|
}
|
|
8
8
|
function isDecodedChunkedPayload(arg) {
|
|
9
9
|
// TODO: How can we detect if the interface changed?
|
|
@@ -21,35 +21,36 @@ function isObject(arg) {
|
|
|
21
21
|
function getIntFromBuffer(buffer) {
|
|
22
22
|
return parseInt(buffer.toString(), 10);
|
|
23
23
|
}
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
var ChunkedPayload = /** @class */ (function () {
|
|
25
|
+
function ChunkedPayload(currentPage, total, buffer) {
|
|
26
26
|
this.currentPage = currentPage;
|
|
27
27
|
this.total = total;
|
|
28
28
|
this.buffer = buffer;
|
|
29
29
|
}
|
|
30
|
-
|
|
30
|
+
ChunkedPayload.fromDecoded = function (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
|
+
ChunkedPayload.fromEncoded = function (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
|
+
var currentPage = getIntFromBuffer(buf[0]);
|
|
46
|
+
var total = getIntFromBuffer(buf[1]);
|
|
47
|
+
var payload = buf[2];
|
|
48
48
|
return new ChunkedPayload(currentPage, total, payload);
|
|
49
|
-
}
|
|
50
|
-
asArray() {
|
|
49
|
+
};
|
|
50
|
+
ChunkedPayload.prototype.asArray = function () {
|
|
51
51
|
return [this.currentPage.toString(), this.total.toString(), this.buffer];
|
|
52
|
-
}
|
|
53
|
-
|
|
52
|
+
};
|
|
53
|
+
return ChunkedPayload;
|
|
54
|
+
}());
|
|
54
55
|
exports.ChunkedPayload = ChunkedPayload;
|
|
55
56
|
//# 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,sDAAkF;AAYlF,SAAS,aAAa,CAAC,GAAY;IACjC,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,UAAC,EAAW,IAAK,OAAA,EAAE,YAAY,MAAM,EAApB,CAAoB,CAAC,CAAA;AAC/E,CAAC;AAED,SAAS,uBAAuB,CAAC,GAAY;IAC3C,oDAAoD;IACpD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QAClB,OAAO,KAAK,CAAA;KACb;IAED,IAAI,GAAG,CAAC,WAAW,KAAK,SAAS,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,EAAE;QACzF,OAAO,KAAK,CAAA;KACb;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;IAKE,wBAAY,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;IAEa,0BAAW,GAAzB,UAA0B,MAA6B;QACrD,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,EAAE;YACpC,MAAM,IAAI,wBAAe,CAAC,4BAAmB,CAAC,kBAAkB,EAAE,wDAAsD,CAAC,CAAA;SAC1H;QAED,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;IAC7E,CAAC;IACa,0BAAW,GAAzB,UAA0B,GAA6B;QACrD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE;YACvB,MAAM,IAAI,wBAAe,CAAC,4BAAmB,CAAC,kBAAkB,EAAE,mCAAmC,CAAC,CAAA;SACvG;QACD,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;YACpB,MAAM,IAAI,wBAAe,CAAC,4BAAmB,CAAC,kBAAkB,EAAE,4CAA4C,CAAC,CAAA;SAChH;QAED,2DAA2D;QAC3D,+DAA+D;QAE/D,IAAM,WAAW,GAAW,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QACpD,IAAM,KAAK,GAAW,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAC9C,IAAM,OAAO,GAAW,GAAG,CAAC,CAAC,CAAC,CAAA;QAE9B,OAAO,IAAI,cAAc,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;IACxD,CAAC;IAEM,gCAAO,GAAd;QACE,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IAC1E,CAAC;IACH,qBAAC;AAAD,CAAC,AAvCD,IAuCC;AAvCY,wCAAc"}
|