@taquito/ledger-signer 11.1.0 → 11.2.0-beta-RC.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.
- package/dist/lib/taquito-ledger-signer.js +101 -182
- package/dist/lib/taquito-ledger-signer.js.map +1 -1
- package/dist/lib/utils.js +21 -21
- package/dist/lib/utils.js.map +1 -1
- package/dist/lib/version.js +2 -4
- package/dist/lib/version.js.map +1 -1
- package/dist/taquito-ledger-signer.es6.js +330 -0
- package/dist/taquito-ledger-signer.es6.js.map +1 -0
- package/dist/taquito-ledger-signer.umd.js +123 -206
- package/dist/taquito-ledger-signer.umd.js.map +1 -1
- package/dist/types/taquito-ledger-signer.d.ts +3 -4
- package/package.json +23 -25
- package/src/taquito-ledger-signer.ts +58 -37
- package/src/utils.ts +77 -77
- package/src/version.ts +2 -4
- package/dist/taquito-ledger-signer.es5.js +0 -413
- package/dist/taquito-ledger-signer.es5.js.map +0 -1
- package/src/types.d.ts +0 -1
- package/tslint.json +0 -4
|
@@ -12,47 +12,19 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
12
12
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
13
13
|
});
|
|
14
14
|
};
|
|
15
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
16
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
17
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
18
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
19
|
-
function step(op) {
|
|
20
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
21
|
-
while (_) try {
|
|
22
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
23
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
24
|
-
switch (op[0]) {
|
|
25
|
-
case 0: case 1: t = op; break;
|
|
26
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
27
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
28
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
29
|
-
default:
|
|
30
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
31
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
32
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
33
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
34
|
-
if (t[2]) _.ops.pop();
|
|
35
|
-
_.trys.pop(); continue;
|
|
36
|
-
}
|
|
37
|
-
op = body.call(thisArg, _);
|
|
38
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
39
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
40
|
-
}
|
|
41
|
-
};
|
|
42
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
16
|
exports.LedgerSigner = exports.VERSION = exports.HDPathTemplate = exports.DerivationType = void 0;
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
17
|
+
const utils_1 = require("@taquito/utils");
|
|
18
|
+
const utils_2 = require("./utils");
|
|
19
|
+
const libsodium_wrappers_1 = require("libsodium-wrappers");
|
|
47
20
|
var DerivationType;
|
|
48
21
|
(function (DerivationType) {
|
|
49
22
|
DerivationType[DerivationType["ED25519"] = 0] = "ED25519";
|
|
50
23
|
DerivationType[DerivationType["SECP256K1"] = 1] = "SECP256K1";
|
|
51
|
-
DerivationType[DerivationType["P256"] = 2] = "P256";
|
|
24
|
+
DerivationType[DerivationType["P256"] = 2] = "P256";
|
|
52
25
|
})(DerivationType = exports.DerivationType || (exports.DerivationType = {}));
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
return "44'/1729'/" + account + "'/0'";
|
|
26
|
+
const HDPathTemplate = (account) => {
|
|
27
|
+
return `44'/1729'/${account}'/0'`;
|
|
56
28
|
};
|
|
57
29
|
exports.HDPathTemplate = HDPathTemplate;
|
|
58
30
|
var version_1 = require("./version");
|
|
@@ -80,11 +52,8 @@ Object.defineProperty(exports, "VERSION", { enumerable: true, get: function () {
|
|
|
80
52
|
* const ledgerSigner = new LedgerSigner(transport, "44'/1729'/0'/0'", true, DerivationType.SECP256K1);
|
|
81
53
|
* ```
|
|
82
54
|
*/
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
if (path === void 0) { path = "44'/1729'/0'/0'"; }
|
|
86
|
-
if (prompt === void 0) { prompt = true; }
|
|
87
|
-
if (derivationType === void 0) { derivationType = DerivationType.ED25519; }
|
|
55
|
+
class LedgerSigner {
|
|
56
|
+
constructor(transport, path = "44'/1729'/0'/0'", prompt = true, derivationType = DerivationType.ED25519) {
|
|
88
57
|
this.transport = transport;
|
|
89
58
|
this.path = path;
|
|
90
59
|
this.prompt = prompt;
|
|
@@ -94,181 +63,131 @@ var LedgerSigner = /** @class */ (function () {
|
|
|
94
63
|
this.INS_GET_PUBLIC_KEY = 0x02; // Instruction code to get the ledger’s internal public key without prompt
|
|
95
64
|
this.INS_PROMPT_PUBLIC_KEY = 0x03; // Instruction code to get the ledger’s internal public key with prompt
|
|
96
65
|
this.INS_SIGN = 0x04; // Sign a message with the ledger’s key
|
|
97
|
-
this.FIRST_MESSAGE_SEQUENCE =
|
|
98
|
-
this.LAST_MESSAGE_SEQUENCE =
|
|
99
|
-
this.OTHER_MESSAGE_SEQUENCE =
|
|
66
|
+
this.FIRST_MESSAGE_SEQUENCE = 0x00;
|
|
67
|
+
this.LAST_MESSAGE_SEQUENCE = 0x81;
|
|
68
|
+
this.OTHER_MESSAGE_SEQUENCE = 0x01;
|
|
100
69
|
this.transport.setScrambleKey('XTZ');
|
|
101
70
|
if (!path.startsWith("44'/1729'")) {
|
|
102
71
|
throw new Error("The derivation path must start with 44'/1729'");
|
|
103
72
|
}
|
|
104
73
|
if (!Object.values(DerivationType).includes(derivationType)) {
|
|
105
|
-
throw new Error(
|
|
74
|
+
throw new Error('The derivation type must be DerivationType.ED25519, DerivationType.SECP256K1 or DerivationType.P256');
|
|
106
75
|
}
|
|
107
76
|
}
|
|
108
|
-
|
|
109
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
_a.label = 2;
|
|
118
|
-
case 2:
|
|
119
|
-
if (this._publicKeyHash) {
|
|
120
|
-
return [2 /*return*/, this._publicKeyHash];
|
|
121
|
-
}
|
|
122
|
-
throw new Error("Unable to get the public key hash.");
|
|
123
|
-
}
|
|
124
|
-
});
|
|
77
|
+
publicKeyHash() {
|
|
78
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
79
|
+
if (!this._publicKeyHash) {
|
|
80
|
+
yield this.publicKey();
|
|
81
|
+
}
|
|
82
|
+
if (this._publicKeyHash) {
|
|
83
|
+
return this._publicKeyHash;
|
|
84
|
+
}
|
|
85
|
+
throw new Error(`Unable to get the public key hash.`);
|
|
125
86
|
});
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
publicKey = utils_1.b58cencode(compressedPublicKey, prefixes.prefPk);
|
|
144
|
-
return [4 /*yield*/, libsodium_wrappers_1.default.ready];
|
|
145
|
-
case 2:
|
|
146
|
-
_a.sent();
|
|
147
|
-
publicKeyHash = utils_1.b58cencode(libsodium_wrappers_1.default.crypto_generichash(20, compressedPublicKey), prefixes.prefPkh);
|
|
148
|
-
this._publicKey = publicKey;
|
|
149
|
-
this._publicKeyHash = publicKeyHash;
|
|
150
|
-
return [2 /*return*/, publicKey];
|
|
151
|
-
}
|
|
152
|
-
});
|
|
87
|
+
}
|
|
88
|
+
publicKey() {
|
|
89
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
90
|
+
if (this._publicKey) {
|
|
91
|
+
return this._publicKey;
|
|
92
|
+
}
|
|
93
|
+
const responseLedger = yield this.getLedgerpublicKey();
|
|
94
|
+
const publicKeyLength = responseLedger[0];
|
|
95
|
+
const rawPublicKey = responseLedger.slice(1, 1 + publicKeyLength);
|
|
96
|
+
const compressedPublicKey = utils_2.compressPublicKey(rawPublicKey, this.derivationType);
|
|
97
|
+
const prefixes = this.getPrefixes();
|
|
98
|
+
const publicKey = utils_1.b58cencode(compressedPublicKey, prefixes.prefPk);
|
|
99
|
+
yield libsodium_wrappers_1.default.ready;
|
|
100
|
+
const publicKeyHash = utils_1.b58cencode(libsodium_wrappers_1.default.crypto_generichash(20, compressedPublicKey), prefixes.prefPkh);
|
|
101
|
+
this._publicKey = publicKey;
|
|
102
|
+
this._publicKeyHash = publicKeyHash;
|
|
103
|
+
return publicKey;
|
|
153
104
|
});
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
_a.trys.push([0, 2, , 3]);
|
|
162
|
-
ins = this.INS_PROMPT_PUBLIC_KEY;
|
|
163
|
-
if (this.prompt === false) {
|
|
164
|
-
ins = this.INS_GET_PUBLIC_KEY;
|
|
165
|
-
}
|
|
166
|
-
return [4 /*yield*/, this.transport.send(this.CLA, ins, this.FIRST_MESSAGE_SEQUENCE, this.derivationType, utils_2.transformPathToBuffer(this.path))];
|
|
167
|
-
case 1:
|
|
168
|
-
responseLedger = _a.sent();
|
|
169
|
-
return [2 /*return*/, responseLedger];
|
|
170
|
-
case 2:
|
|
171
|
-
error_1 = _a.sent();
|
|
172
|
-
throw new Error("Unable to retrieve public key");
|
|
173
|
-
case 3: return [2 /*return*/];
|
|
105
|
+
}
|
|
106
|
+
getLedgerpublicKey() {
|
|
107
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
108
|
+
try {
|
|
109
|
+
let ins = this.INS_PROMPT_PUBLIC_KEY;
|
|
110
|
+
if (this.prompt === false) {
|
|
111
|
+
ins = this.INS_GET_PUBLIC_KEY;
|
|
174
112
|
}
|
|
175
|
-
|
|
113
|
+
const responseLedger = yield this.transport.send(this.CLA, ins, this.FIRST_MESSAGE_SEQUENCE, this.derivationType, utils_2.transformPathToBuffer(this.path));
|
|
114
|
+
return responseLedger;
|
|
115
|
+
}
|
|
116
|
+
catch (error) {
|
|
117
|
+
throw new Error('Unable to retrieve public key');
|
|
118
|
+
}
|
|
176
119
|
});
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
180
|
-
|
|
181
|
-
throw new Error('Secret key cannot be exposed');
|
|
182
|
-
});
|
|
120
|
+
}
|
|
121
|
+
secretKey() {
|
|
122
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
123
|
+
throw new Error('Secret key cannot be exposed');
|
|
183
124
|
});
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
signature = ledgerResponse.slice(0, ledgerResponse.length - 2).toString('hex');
|
|
201
|
-
}
|
|
202
|
-
else {
|
|
203
|
-
if (!utils_2.validateResponse(ledgerResponse)) {
|
|
204
|
-
throw new Error('Cannot parse ledger response.');
|
|
205
|
-
}
|
|
206
|
-
idxLengthRVal = 3;
|
|
207
|
-
rValue = utils_2.extractValue(idxLengthRVal, ledgerResponse);
|
|
208
|
-
idxLengthSVal = rValue.idxValueStart + rValue.length + 1;
|
|
209
|
-
sValue = utils_2.extractValue(idxLengthSVal, ledgerResponse);
|
|
210
|
-
signatureBuffer = Buffer.concat([rValue.buffer, sValue.buffer]);
|
|
211
|
-
signature = signatureBuffer.toString('hex');
|
|
212
|
-
}
|
|
213
|
-
return [2 /*return*/, {
|
|
214
|
-
bytes: bytes,
|
|
215
|
-
sig: utils_1.b58cencode(signature, utils_1.prefix[utils_1.Prefix.SIG]),
|
|
216
|
-
prefixSig: utils_1.b58cencode(signature, this.getPrefixes().prefSig),
|
|
217
|
-
sbytes: bytes + signature
|
|
218
|
-
}];
|
|
125
|
+
}
|
|
126
|
+
sign(bytes, watermark) {
|
|
127
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
128
|
+
const watermarkedBytes = utils_2.appendWatermark(bytes, watermark);
|
|
129
|
+
const watermarkedBytes2buff = Buffer.from(watermarkedBytes, 'hex');
|
|
130
|
+
let messageToSend = [];
|
|
131
|
+
messageToSend.push(utils_2.transformPathToBuffer(this.path));
|
|
132
|
+
messageToSend = utils_2.chunkOperation(messageToSend, watermarkedBytes2buff);
|
|
133
|
+
const ledgerResponse = yield this.signWithLedger(messageToSend);
|
|
134
|
+
let signature;
|
|
135
|
+
if (this.derivationType === DerivationType.ED25519) {
|
|
136
|
+
signature = ledgerResponse.slice(0, ledgerResponse.length - 2).toString('hex');
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
if (!utils_2.validateResponse(ledgerResponse)) {
|
|
140
|
+
throw new Error('Cannot parse ledger response.');
|
|
219
141
|
}
|
|
220
|
-
|
|
142
|
+
const idxLengthRVal = 3; // Third element of response is length of r value
|
|
143
|
+
const rValue = utils_2.extractValue(idxLengthRVal, ledgerResponse);
|
|
144
|
+
const idxLengthSVal = rValue.idxValueStart + rValue.length + 1;
|
|
145
|
+
const sValue = utils_2.extractValue(idxLengthSVal, ledgerResponse);
|
|
146
|
+
const signatureBuffer = Buffer.concat([rValue.buffer, sValue.buffer]);
|
|
147
|
+
signature = signatureBuffer.toString('hex');
|
|
148
|
+
}
|
|
149
|
+
return {
|
|
150
|
+
bytes,
|
|
151
|
+
sig: utils_1.b58cencode(signature, utils_1.prefix[utils_1.Prefix.SIG]),
|
|
152
|
+
prefixSig: utils_1.b58cencode(signature, this.getPrefixes().prefSig),
|
|
153
|
+
sbytes: bytes + signature,
|
|
154
|
+
};
|
|
221
155
|
});
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
_a.label = 2;
|
|
233
|
-
case 2:
|
|
234
|
-
if (!(i < message.length)) return [3 /*break*/, 5];
|
|
235
|
-
p1 = (i === message.length - 1) ? this.LAST_MESSAGE_SEQUENCE : this.OTHER_MESSAGE_SEQUENCE;
|
|
236
|
-
return [4 /*yield*/, this.transport.send(this.CLA, this.INS_SIGN, p1, this.derivationType, message[i])];
|
|
237
|
-
case 3:
|
|
238
|
-
ledgerResponse = _a.sent();
|
|
239
|
-
_a.label = 4;
|
|
240
|
-
case 4:
|
|
241
|
-
i++;
|
|
242
|
-
return [3 /*break*/, 2];
|
|
243
|
-
case 5: return [2 /*return*/, ledgerResponse];
|
|
244
|
-
}
|
|
245
|
-
});
|
|
156
|
+
}
|
|
157
|
+
signWithLedger(message) {
|
|
158
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
159
|
+
// first element of the message represents the path
|
|
160
|
+
let ledgerResponse = yield this.transport.send(this.CLA, this.INS_SIGN, this.FIRST_MESSAGE_SEQUENCE, this.derivationType, message[0]);
|
|
161
|
+
for (let i = 1; i < message.length; i++) {
|
|
162
|
+
const p1 = i === message.length - 1 ? this.LAST_MESSAGE_SEQUENCE : this.OTHER_MESSAGE_SEQUENCE;
|
|
163
|
+
ledgerResponse = yield this.transport.send(this.CLA, this.INS_SIGN, p1, this.derivationType, message[i]);
|
|
164
|
+
}
|
|
165
|
+
return ledgerResponse;
|
|
246
166
|
});
|
|
247
|
-
}
|
|
248
|
-
|
|
167
|
+
}
|
|
168
|
+
getPrefixes() {
|
|
249
169
|
if (this.derivationType === DerivationType.ED25519) {
|
|
250
170
|
return {
|
|
251
171
|
prefPk: utils_1.prefix[utils_1.Prefix.EDPK],
|
|
252
172
|
prefPkh: utils_1.prefix[utils_1.Prefix.TZ1],
|
|
253
|
-
prefSig: utils_1.prefix[utils_1.Prefix.EDSIG]
|
|
173
|
+
prefSig: utils_1.prefix[utils_1.Prefix.EDSIG],
|
|
254
174
|
};
|
|
255
175
|
}
|
|
256
176
|
else if (this.derivationType === DerivationType.SECP256K1) {
|
|
257
177
|
return {
|
|
258
178
|
prefPk: utils_1.prefix[utils_1.Prefix.SPPK],
|
|
259
179
|
prefPkh: utils_1.prefix[utils_1.Prefix.TZ2],
|
|
260
|
-
prefSig: utils_1.prefix[utils_1.Prefix.SPSIG]
|
|
180
|
+
prefSig: utils_1.prefix[utils_1.Prefix.SPSIG],
|
|
261
181
|
};
|
|
262
182
|
}
|
|
263
183
|
else {
|
|
264
184
|
return {
|
|
265
185
|
prefPk: utils_1.prefix[utils_1.Prefix.P2PK],
|
|
266
186
|
prefPkh: utils_1.prefix[utils_1.Prefix.TZ3],
|
|
267
|
-
prefSig: utils_1.prefix[utils_1.Prefix.P2SIG]
|
|
187
|
+
prefSig: utils_1.prefix[utils_1.Prefix.P2SIG],
|
|
268
188
|
};
|
|
269
189
|
}
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
}());
|
|
190
|
+
}
|
|
191
|
+
}
|
|
273
192
|
exports.LedgerSigner = LedgerSigner;
|
|
274
193
|
//# sourceMappingURL=taquito-ledger-signer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taquito-ledger-signer.js","sourceRoot":"","sources":["../../src/taquito-ledger-signer.ts"],"names":[],"mappings":";AAAA;;;GAGG
|
|
1
|
+
{"version":3,"file":"taquito-ledger-signer.js","sourceRoot":"","sources":["../../src/taquito-ledger-signer.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/utils.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.extractValue = exports.validateResponse = exports.chunkOperation = exports.appendWatermark = exports.compressPublicKey = exports.transformPathToBuffer = void 0;
|
|
8
|
-
|
|
8
|
+
const MAX_CHUNK_SIZE = 230;
|
|
9
9
|
/**
|
|
10
10
|
*
|
|
11
11
|
* @description Convert the path to a buffer that will be used as LC and CDATA in the APDU send to the ledger device (https://github.com/obsidiansystems/ledger-app-tezos/blob/master/APDUs.md)
|
|
@@ -14,10 +14,10 @@ var MAX_CHUNK_SIZE = 230;
|
|
|
14
14
|
* @returns A buffer where the first element is the length of the path (default is 4), then 3 bytes for each number of the path to which is added 0x8000000
|
|
15
15
|
*/
|
|
16
16
|
function transformPathToBuffer(path) {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
components.forEach(
|
|
20
|
-
|
|
17
|
+
const result = [];
|
|
18
|
+
const components = path.split('/');
|
|
19
|
+
components.forEach((element) => {
|
|
20
|
+
let toNumber = parseInt(element, 10);
|
|
21
21
|
if (Number.isNaN(toNumber)) {
|
|
22
22
|
return;
|
|
23
23
|
}
|
|
@@ -26,9 +26,9 @@ function transformPathToBuffer(path) {
|
|
|
26
26
|
}
|
|
27
27
|
result.push(toNumber);
|
|
28
28
|
});
|
|
29
|
-
|
|
29
|
+
const buffer = Buffer.alloc(1 + result.length * 4);
|
|
30
30
|
buffer[0] = result.length;
|
|
31
|
-
result.forEach(
|
|
31
|
+
result.forEach((element, index) => {
|
|
32
32
|
buffer.writeUInt32BE(element, 1 + 4 * index);
|
|
33
33
|
});
|
|
34
34
|
return buffer;
|
|
@@ -50,9 +50,9 @@ function compressPublicKey(publicKey, curve) {
|
|
|
50
50
|
}
|
|
51
51
|
exports.compressPublicKey = compressPublicKey;
|
|
52
52
|
function appendWatermark(bytes, watermark) {
|
|
53
|
-
|
|
53
|
+
let transactionHex = bytes;
|
|
54
54
|
if (typeof watermark !== 'undefined') {
|
|
55
|
-
|
|
55
|
+
const hexWatermark = Buffer.from(watermark).toString('hex');
|
|
56
56
|
transactionHex = hexWatermark.concat(bytes);
|
|
57
57
|
}
|
|
58
58
|
return transactionHex;
|
|
@@ -66,10 +66,10 @@ exports.appendWatermark = appendWatermark;
|
|
|
66
66
|
* @returns The instruction to send to the Ledger device
|
|
67
67
|
*/
|
|
68
68
|
function chunkOperation(messageToSend, operation) {
|
|
69
|
-
|
|
69
|
+
let offset = 0;
|
|
70
70
|
while (offset !== operation.length) {
|
|
71
|
-
|
|
72
|
-
|
|
71
|
+
const chunkSize = offset + MAX_CHUNK_SIZE >= operation.length ? operation.length - offset : MAX_CHUNK_SIZE;
|
|
72
|
+
const buff = Buffer.alloc(chunkSize);
|
|
73
73
|
operation.copy(buff, 0, offset, offset + chunkSize);
|
|
74
74
|
messageToSend.push(buff);
|
|
75
75
|
offset += chunkSize;
|
|
@@ -84,7 +84,7 @@ exports.chunkOperation = chunkOperation;
|
|
|
84
84
|
* @returns True if valid, false otherwise
|
|
85
85
|
*/
|
|
86
86
|
function validateResponse(response) {
|
|
87
|
-
|
|
87
|
+
let valid = true;
|
|
88
88
|
if (response[0] !== 0x31 && response[0] !== 0x30) {
|
|
89
89
|
valid = false;
|
|
90
90
|
}
|
|
@@ -94,13 +94,13 @@ function validateResponse(response) {
|
|
|
94
94
|
if (response[2] !== 0x02) {
|
|
95
95
|
valid = false;
|
|
96
96
|
}
|
|
97
|
-
|
|
97
|
+
const rLength = response[3];
|
|
98
98
|
if (response[4 + rLength] !== 0x02) {
|
|
99
99
|
valid = false;
|
|
100
100
|
}
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
if (
|
|
101
|
+
const idxLengthSVal = 5 + rLength;
|
|
102
|
+
const sLength = response[idxLengthSVal];
|
|
103
|
+
if (idxLengthSVal + 1 + sLength + 2 !== response.length) {
|
|
104
104
|
valid = false;
|
|
105
105
|
}
|
|
106
106
|
return valid;
|
|
@@ -114,16 +114,16 @@ exports.validateResponse = validateResponse;
|
|
|
114
114
|
* @returns An object that contains the extracted buffer, the index where it starts in the response and the length of the extracted part
|
|
115
115
|
*/
|
|
116
116
|
function extractValue(idxLength, response) {
|
|
117
|
-
|
|
117
|
+
const buffer = Buffer.alloc(32);
|
|
118
118
|
buffer.fill(0);
|
|
119
|
-
|
|
120
|
-
|
|
119
|
+
let length = response[idxLength];
|
|
120
|
+
let idxValueStart = idxLength + 1;
|
|
121
121
|
if (length > 32) {
|
|
122
122
|
idxValueStart += length - 32;
|
|
123
123
|
length = 32;
|
|
124
124
|
}
|
|
125
125
|
response.copy(buffer, 32 - length, idxValueStart, idxValueStart + length);
|
|
126
|
-
return { buffer
|
|
126
|
+
return { buffer, idxValueStart, length };
|
|
127
127
|
}
|
|
128
128
|
exports.extractValue = extractValue;
|
|
129
129
|
//# sourceMappingURL=utils.js.map
|
package/dist/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAIH,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/version.js
CHANGED
|
@@ -2,10 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.VERSION = void 0;
|
|
4
4
|
// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!
|
|
5
|
-
/* tslint:disable */
|
|
6
5
|
exports.VERSION = {
|
|
7
|
-
"commitHash": "
|
|
8
|
-
"version": "11.
|
|
6
|
+
"commitHash": "e03d983c780c7f96d8291ddd1251ea82f4581858",
|
|
7
|
+
"version": "11.2.0-beta-RC.0"
|
|
9
8
|
};
|
|
10
|
-
/* tslint:enable */
|
|
11
9
|
//# sourceMappingURL=version.js.map
|
package/dist/lib/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":";;;AACA,2EAA2E;
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":";;;AACA,2EAA2E;AAC9D,QAAA,OAAO,GAAG;IACnB,YAAY,EAAE,0CAA0C;IACxD,SAAS,EAAE,kBAAkB;CAChC,CAAC"}
|