@ledgerhq/hw-app-tezos 6.27.13 → 6.27.14-next.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/CHANGELOG.md +7 -0
- package/lib/Tezos.d.ts +4 -4
- package/lib/Tezos.d.ts.map +1 -1
- package/lib/Tezos.js +119 -196
- package/lib/Tezos.js.map +1 -1
- package/lib-es/Tezos.d.ts +4 -4
- package/lib-es/Tezos.d.ts.map +1 -1
- package/lib-es/Tezos.js +114 -192
- package/lib-es/Tezos.js.map +1 -1
- package/package.json +4 -5
package/CHANGELOG.md
CHANGED
package/lib/Tezos.d.ts
CHANGED
|
@@ -4,15 +4,15 @@ export declare const TezosCurves: {
|
|
|
4
4
|
SECP256K1: number;
|
|
5
5
|
SECP256R1: number;
|
|
6
6
|
};
|
|
7
|
-
export
|
|
8
|
-
export
|
|
7
|
+
export type Curve = typeof TezosCurves[keyof typeof TezosCurves];
|
|
8
|
+
export type GetAddressResult = {
|
|
9
9
|
address: string;
|
|
10
10
|
publicKey: string;
|
|
11
11
|
};
|
|
12
|
-
export
|
|
12
|
+
export type SignOperationResult = {
|
|
13
13
|
signature: string;
|
|
14
14
|
};
|
|
15
|
-
export
|
|
15
|
+
export type GetVersionResult = {
|
|
16
16
|
major: number;
|
|
17
17
|
minor: number;
|
|
18
18
|
patch: number;
|
package/lib/Tezos.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tezos.d.ts","sourceRoot":"","sources":["../src/Tezos.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,SAAS,MAAM,wBAAwB,CAAC;AACpD,eAAO,MAAM,WAAW;;;;CAIvB,CAAC;AACF,
|
|
1
|
+
{"version":3,"file":"Tezos.d.ts","sourceRoot":"","sources":["../src/Tezos.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,SAAS,MAAM,wBAAwB,CAAC;AACpD,eAAO,MAAM,WAAW;;;;CAIvB,CAAC;AACF,MAAM,MAAM,KAAK,GAAG,OAAO,WAAW,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC;AACjE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AACF,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AACF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AACF;;;;;;GAMG;AAEH,MAAM,CAAC,OAAO,OAAO,KAAK;IACxB,SAAS,EAAE,SAAS,CAAC;gBAET,SAAS,EAAE,SAAS;IAShC;;;;;;;;;;;;OAYG;IACG,UAAU,CACd,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;QACP,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,KAAK,CAAC,EAAE,KAAK,CAAC;QACd,GAAG,CAAC,EAAE,MAAM,CAAC;KACT,GACL,OAAO,CAAC,gBAAgB,CAAC;IAkCtB,aAAa,CACjB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;QACP,KAAK,CAAC,EAAE,KAAK,CAAC;KACV,GACL,OAAO,CAAC,mBAAmB,CAAC;IAsDzB,UAAU,IAAI,OAAO,CAAC,gBAAgB,CAAC;CAgB9C"}
|
package/lib/Tezos.js
CHANGED
|
@@ -8,53 +8,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
18
|
-
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;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
39
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
40
|
-
if (!m) return o;
|
|
41
|
-
var i = m.call(o), r, ar = [], e;
|
|
42
|
-
try {
|
|
43
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
44
|
-
}
|
|
45
|
-
catch (error) { e = { error: error }; }
|
|
46
|
-
finally {
|
|
47
|
-
try {
|
|
48
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
49
|
-
}
|
|
50
|
-
finally { if (e) throw e.error; }
|
|
51
|
-
}
|
|
52
|
-
return ar;
|
|
53
|
-
};
|
|
54
11
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
55
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
56
13
|
};
|
|
57
|
-
exports
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
58
15
|
exports.TezosCurves = void 0;
|
|
59
16
|
/********************************************************************************
|
|
60
17
|
* Ledger Node JS API
|
|
@@ -72,13 +29,13 @@ exports.TezosCurves = void 0;
|
|
|
72
29
|
* See the License for the specific language governing permissions and
|
|
73
30
|
* limitations under the License.
|
|
74
31
|
********************************************************************************/
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
32
|
+
const invariant_1 = __importDefault(require("invariant"));
|
|
33
|
+
const bs58check_1 = __importDefault(require("bs58check"));
|
|
34
|
+
const blake2b_1 = __importDefault(require("blake2b"));
|
|
78
35
|
exports.TezosCurves = {
|
|
79
36
|
ED25519: 0x00,
|
|
80
37
|
SECP256K1: 0x01,
|
|
81
|
-
SECP256R1: 0x02
|
|
38
|
+
SECP256R1: 0x02,
|
|
82
39
|
};
|
|
83
40
|
/**
|
|
84
41
|
* Tezos API
|
|
@@ -87,8 +44,8 @@ exports.TezosCurves = {
|
|
|
87
44
|
* import Tezos from "@ledgerhq/hw-app-tezos";
|
|
88
45
|
* const tez = new Tezos(transport)
|
|
89
46
|
*/
|
|
90
|
-
|
|
91
|
-
|
|
47
|
+
class Tezos {
|
|
48
|
+
constructor(transport) {
|
|
92
49
|
this.transport = transport;
|
|
93
50
|
transport.decorateAppAPIMethods(this, ["getAddress", "signOperation", "getVersion"], "XTZ");
|
|
94
51
|
}
|
|
@@ -105,141 +62,109 @@ var Tezos = /** @class */ (function () {
|
|
|
105
62
|
* tez.getAddress("44'/1729'/0'/0'").then(o => o.address)
|
|
106
63
|
* tez.getAddress("44'/1729'/0'/0'", { verify: true })
|
|
107
64
|
*/
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
cla = 0x80;
|
|
116
|
-
ins = options.ins;
|
|
117
|
-
if (!ins) {
|
|
118
|
-
if (options.verify) {
|
|
119
|
-
ins = 0x03;
|
|
120
|
-
}
|
|
121
|
-
else {
|
|
122
|
-
ins = 0x02;
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
p1 = 0;
|
|
126
|
-
p2 = options.curve || 0;
|
|
127
|
-
paths = splitPath(path);
|
|
128
|
-
buffer = Buffer.alloc(1 + paths.length * 4);
|
|
129
|
-
buffer[0] = paths.length;
|
|
130
|
-
paths.forEach(function (element, index) {
|
|
131
|
-
buffer.writeUInt32BE(element, 1 + 4 * index);
|
|
132
|
-
});
|
|
133
|
-
return [4 /*yield*/, this.transport.send(cla, ins, p1, p2, buffer)];
|
|
134
|
-
case 1:
|
|
135
|
-
payload = _a.sent();
|
|
136
|
-
publicKeyLength = payload[0];
|
|
137
|
-
if (!publicKeyLength) {
|
|
138
|
-
// it seems to be a bug that apps returns empty answer
|
|
139
|
-
throw new Error("invalid public key");
|
|
140
|
-
}
|
|
141
|
-
publicKey = payload.slice(1, 1 + publicKeyLength);
|
|
142
|
-
res = {
|
|
143
|
-
publicKey: publicKey.toString("hex"),
|
|
144
|
-
address: encodeAddress(publicKey, p2)
|
|
145
|
-
};
|
|
146
|
-
return [2 /*return*/, res];
|
|
65
|
+
getAddress(path, options = {}) {
|
|
66
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
67
|
+
const cla = 0x80;
|
|
68
|
+
let ins = options.ins;
|
|
69
|
+
if (!ins) {
|
|
70
|
+
if (options.verify) {
|
|
71
|
+
ins = 0x03;
|
|
147
72
|
}
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
};
|
|
151
|
-
Tezos.prototype.signOperation = function (path, rawTxHex, options) {
|
|
152
|
-
if (options === void 0) { options = {}; }
|
|
153
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
154
|
-
var curve, paths, offset, rawTx, toSend, buffer_1, maxChunkSize, chunkSize, buffer, response, i, data, code, signature;
|
|
155
|
-
return __generator(this, function (_a) {
|
|
156
|
-
switch (_a.label) {
|
|
157
|
-
case 0:
|
|
158
|
-
curve = options.curve || 0;
|
|
159
|
-
paths = splitPath(path);
|
|
160
|
-
offset = 0;
|
|
161
|
-
rawTx = Buffer.from(rawTxHex, "hex");
|
|
162
|
-
toSend = [];
|
|
163
|
-
// Initial key setting
|
|
164
|
-
{
|
|
165
|
-
buffer_1 = Buffer.alloc(paths.length * 4 + 1);
|
|
166
|
-
buffer_1[0] = paths.length;
|
|
167
|
-
paths.forEach(function (element, index) {
|
|
168
|
-
buffer_1.writeUInt32BE(element, 1 + 4 * index);
|
|
169
|
-
});
|
|
170
|
-
toSend.push(buffer_1);
|
|
171
|
-
}
|
|
172
|
-
while (offset !== rawTx.length) {
|
|
173
|
-
maxChunkSize = 230;
|
|
174
|
-
chunkSize = void 0;
|
|
175
|
-
if (offset + maxChunkSize >= rawTx.length) {
|
|
176
|
-
chunkSize = rawTx.length - offset;
|
|
177
|
-
}
|
|
178
|
-
else {
|
|
179
|
-
chunkSize = maxChunkSize;
|
|
180
|
-
}
|
|
181
|
-
buffer = Buffer.alloc(chunkSize);
|
|
182
|
-
rawTx.copy(buffer, 0, offset, offset + chunkSize);
|
|
183
|
-
toSend.push(buffer);
|
|
184
|
-
offset += chunkSize;
|
|
185
|
-
}
|
|
186
|
-
i = 0;
|
|
187
|
-
_a.label = 1;
|
|
188
|
-
case 1:
|
|
189
|
-
if (!(i < toSend.length)) return [3 /*break*/, 4];
|
|
190
|
-
data = toSend[i];
|
|
191
|
-
code = 0x01;
|
|
192
|
-
if (i === 0) {
|
|
193
|
-
code = 0x00;
|
|
194
|
-
}
|
|
195
|
-
else if (i === toSend.length - 1) {
|
|
196
|
-
code = 0x81;
|
|
197
|
-
}
|
|
198
|
-
return [4 /*yield*/, this.transport.send(0x80, 0x04, code, curve, data)];
|
|
199
|
-
case 2:
|
|
200
|
-
response = _a.sent();
|
|
201
|
-
_a.label = 3;
|
|
202
|
-
case 3:
|
|
203
|
-
i++;
|
|
204
|
-
return [3 /*break*/, 1];
|
|
205
|
-
case 4:
|
|
206
|
-
(0, invariant_1["default"])(response, "hw-app-xtz: response is set");
|
|
207
|
-
signature = response.slice(0, response.length - 2).toString("hex");
|
|
208
|
-
return [2 /*return*/, {
|
|
209
|
-
signature: signature
|
|
210
|
-
}];
|
|
73
|
+
else {
|
|
74
|
+
ins = 0x02;
|
|
211
75
|
}
|
|
76
|
+
}
|
|
77
|
+
const p1 = 0;
|
|
78
|
+
const p2 = options.curve || 0;
|
|
79
|
+
const paths = splitPath(path);
|
|
80
|
+
const buffer = Buffer.alloc(1 + paths.length * 4);
|
|
81
|
+
buffer[0] = paths.length;
|
|
82
|
+
paths.forEach((element, index) => {
|
|
83
|
+
buffer.writeUInt32BE(element, 1 + 4 * index);
|
|
212
84
|
});
|
|
85
|
+
const payload = yield this.transport.send(cla, ins, p1, p2, buffer);
|
|
86
|
+
const publicKeyLength = payload[0];
|
|
87
|
+
if (!publicKeyLength) {
|
|
88
|
+
// it seems to be a bug that apps returns empty answer
|
|
89
|
+
throw new Error("invalid public key");
|
|
90
|
+
}
|
|
91
|
+
const publicKey = payload.slice(1, 1 + publicKeyLength);
|
|
92
|
+
const res = {
|
|
93
|
+
publicKey: publicKey.toString("hex"),
|
|
94
|
+
address: encodeAddress(publicKey, p2),
|
|
95
|
+
};
|
|
96
|
+
return res;
|
|
213
97
|
});
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
98
|
+
}
|
|
99
|
+
signOperation(path, rawTxHex, options = {}) {
|
|
100
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
101
|
+
const curve = options.curve || 0;
|
|
102
|
+
const paths = splitPath(path);
|
|
103
|
+
let offset = 0;
|
|
104
|
+
const rawTx = Buffer.from(rawTxHex, "hex");
|
|
105
|
+
const toSend = [];
|
|
106
|
+
// Initial key setting
|
|
107
|
+
{
|
|
108
|
+
const buffer = Buffer.alloc(paths.length * 4 + 1);
|
|
109
|
+
buffer[0] = paths.length;
|
|
110
|
+
paths.forEach((element, index) => {
|
|
111
|
+
buffer.writeUInt32BE(element, 1 + 4 * index);
|
|
112
|
+
});
|
|
113
|
+
toSend.push(buffer);
|
|
114
|
+
}
|
|
115
|
+
while (offset !== rawTx.length) {
|
|
116
|
+
const maxChunkSize = 230;
|
|
117
|
+
let chunkSize;
|
|
118
|
+
if (offset + maxChunkSize >= rawTx.length) {
|
|
119
|
+
chunkSize = rawTx.length - offset;
|
|
230
120
|
}
|
|
231
|
-
|
|
121
|
+
else {
|
|
122
|
+
chunkSize = maxChunkSize;
|
|
123
|
+
}
|
|
124
|
+
const buffer = Buffer.alloc(chunkSize);
|
|
125
|
+
rawTx.copy(buffer, 0, offset, offset + chunkSize);
|
|
126
|
+
toSend.push(buffer);
|
|
127
|
+
offset += chunkSize;
|
|
128
|
+
}
|
|
129
|
+
let response;
|
|
130
|
+
for (let i = 0; i < toSend.length; i++) {
|
|
131
|
+
const data = toSend[i];
|
|
132
|
+
let code = 0x01;
|
|
133
|
+
if (i === 0) {
|
|
134
|
+
code = 0x00;
|
|
135
|
+
}
|
|
136
|
+
else if (i === toSend.length - 1) {
|
|
137
|
+
code = 0x81;
|
|
138
|
+
}
|
|
139
|
+
response = yield this.transport.send(0x80, 0x04, code, curve, data);
|
|
140
|
+
}
|
|
141
|
+
(0, invariant_1.default)(response, "hw-app-xtz: response is set");
|
|
142
|
+
const signature = response.slice(0, response.length - 2).toString("hex");
|
|
143
|
+
return {
|
|
144
|
+
signature,
|
|
145
|
+
};
|
|
232
146
|
});
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
147
|
+
}
|
|
148
|
+
getVersion() {
|
|
149
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
150
|
+
const [appFlag, major, minor, patch] = yield this.transport.send(0x80, 0x00, 0x00, 0x00, Buffer.alloc(0));
|
|
151
|
+
const bakingApp = appFlag === 1;
|
|
152
|
+
return {
|
|
153
|
+
major,
|
|
154
|
+
minor,
|
|
155
|
+
patch,
|
|
156
|
+
bakingApp,
|
|
157
|
+
};
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
exports.default = Tezos;
|
|
237
162
|
// TODO use bip32-path library
|
|
238
163
|
function splitPath(path) {
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
components.forEach(
|
|
242
|
-
|
|
164
|
+
const result = [];
|
|
165
|
+
const components = path.split("/");
|
|
166
|
+
components.forEach((element) => {
|
|
167
|
+
let number = parseInt(element, 10);
|
|
243
168
|
if (isNaN(number)) {
|
|
244
169
|
return; // FIXME shouldn't it throws instead?
|
|
245
170
|
}
|
|
@@ -250,43 +175,41 @@ function splitPath(path) {
|
|
|
250
175
|
});
|
|
251
176
|
return result;
|
|
252
177
|
}
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
};
|
|
259
|
-
var curves = [
|
|
178
|
+
const compressPublicKeySECP256 = (publicKey, curve) => Buffer.concat([
|
|
179
|
+
Buffer.from([curve, 0x02 + (publicKey[64] & 0x01)]),
|
|
180
|
+
publicKey.slice(1, 33),
|
|
181
|
+
]);
|
|
182
|
+
const curves = [
|
|
260
183
|
{
|
|
261
184
|
pkB58Prefix: Buffer.from([13, 15, 37, 217]),
|
|
262
185
|
pkhB58Prefix: Buffer.from([6, 161, 159]),
|
|
263
|
-
compressPublicKey:
|
|
186
|
+
compressPublicKey: (publicKey, curve) => {
|
|
264
187
|
publicKey = publicKey.slice(0);
|
|
265
188
|
publicKey[0] = curve;
|
|
266
189
|
return publicKey;
|
|
267
|
-
}
|
|
190
|
+
},
|
|
268
191
|
},
|
|
269
192
|
{
|
|
270
193
|
pkB58Prefix: Buffer.from([3, 254, 226, 86]),
|
|
271
194
|
pkhB58Prefix: Buffer.from([6, 161, 161]),
|
|
272
|
-
compressPublicKey: compressPublicKeySECP256
|
|
195
|
+
compressPublicKey: compressPublicKeySECP256,
|
|
273
196
|
},
|
|
274
197
|
{
|
|
275
198
|
pkB58Prefix: Buffer.from([3, 178, 139, 127]),
|
|
276
199
|
pkhB58Prefix: Buffer.from([6, 161, 164]),
|
|
277
|
-
compressPublicKey: compressPublicKeySECP256
|
|
200
|
+
compressPublicKey: compressPublicKeySECP256,
|
|
278
201
|
},
|
|
279
202
|
];
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
(0, invariant_1
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
203
|
+
const encodeAddress = (publicKey, curve) => {
|
|
204
|
+
const curveData = curves[curve];
|
|
205
|
+
(0, invariant_1.default)(curveData, "%s curve not supported", curve);
|
|
206
|
+
const publicKeyBuf = curveData.compressPublicKey(publicKey, curve);
|
|
207
|
+
const key = publicKeyBuf.slice(1);
|
|
208
|
+
const keyHashSize = 20;
|
|
209
|
+
let hash = (0, blake2b_1.default)(keyHashSize);
|
|
287
210
|
hash.update(key);
|
|
288
211
|
hash.digest((hash = Buffer.alloc(keyHashSize)));
|
|
289
|
-
|
|
212
|
+
const address = bs58check_1.default.encode(Buffer.concat([curveData.pkhB58Prefix, hash]));
|
|
290
213
|
return address;
|
|
291
214
|
};
|
|
292
215
|
//# sourceMappingURL=Tezos.js.map
|
package/lib/Tezos.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tezos.js","sourceRoot":"","sources":["../src/Tezos.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Tezos.js","sourceRoot":"","sources":["../src/Tezos.ts"],"names":[],"mappings":"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"}
|
package/lib-es/Tezos.d.ts
CHANGED
|
@@ -4,15 +4,15 @@ export declare const TezosCurves: {
|
|
|
4
4
|
SECP256K1: number;
|
|
5
5
|
SECP256R1: number;
|
|
6
6
|
};
|
|
7
|
-
export
|
|
8
|
-
export
|
|
7
|
+
export type Curve = typeof TezosCurves[keyof typeof TezosCurves];
|
|
8
|
+
export type GetAddressResult = {
|
|
9
9
|
address: string;
|
|
10
10
|
publicKey: string;
|
|
11
11
|
};
|
|
12
|
-
export
|
|
12
|
+
export type SignOperationResult = {
|
|
13
13
|
signature: string;
|
|
14
14
|
};
|
|
15
|
-
export
|
|
15
|
+
export type GetVersionResult = {
|
|
16
16
|
major: number;
|
|
17
17
|
minor: number;
|
|
18
18
|
patch: number;
|
package/lib-es/Tezos.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tezos.d.ts","sourceRoot":"","sources":["../src/Tezos.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,SAAS,MAAM,wBAAwB,CAAC;AACpD,eAAO,MAAM,WAAW;;;;CAIvB,CAAC;AACF,
|
|
1
|
+
{"version":3,"file":"Tezos.d.ts","sourceRoot":"","sources":["../src/Tezos.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,SAAS,MAAM,wBAAwB,CAAC;AACpD,eAAO,MAAM,WAAW;;;;CAIvB,CAAC;AACF,MAAM,MAAM,KAAK,GAAG,OAAO,WAAW,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC;AACjE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AACF,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AACF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AACF;;;;;;GAMG;AAEH,MAAM,CAAC,OAAO,OAAO,KAAK;IACxB,SAAS,EAAE,SAAS,CAAC;gBAET,SAAS,EAAE,SAAS;IAShC;;;;;;;;;;;;OAYG;IACG,UAAU,CACd,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;QACP,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,KAAK,CAAC,EAAE,KAAK,CAAC;QACd,GAAG,CAAC,EAAE,MAAM,CAAC;KACT,GACL,OAAO,CAAC,gBAAgB,CAAC;IAkCtB,aAAa,CACjB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;QACP,KAAK,CAAC,EAAE,KAAK,CAAC;KACV,GACL,OAAO,CAAC,mBAAmB,CAAC;IAsDzB,UAAU,IAAI,OAAO,CAAC,gBAAgB,CAAC;CAgB9C"}
|
package/lib-es/Tezos.js
CHANGED
|
@@ -7,49 +7,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
7
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
11
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
12
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
13
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
14
|
-
function step(op) {
|
|
15
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
16
|
-
while (_) try {
|
|
17
|
-
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;
|
|
18
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
19
|
-
switch (op[0]) {
|
|
20
|
-
case 0: case 1: t = op; break;
|
|
21
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
22
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
23
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
24
|
-
default:
|
|
25
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
26
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
27
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
28
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
29
|
-
if (t[2]) _.ops.pop();
|
|
30
|
-
_.trys.pop(); continue;
|
|
31
|
-
}
|
|
32
|
-
op = body.call(thisArg, _);
|
|
33
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
34
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
38
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
39
|
-
if (!m) return o;
|
|
40
|
-
var i = m.call(o), r, ar = [], e;
|
|
41
|
-
try {
|
|
42
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
43
|
-
}
|
|
44
|
-
catch (error) { e = { error: error }; }
|
|
45
|
-
finally {
|
|
46
|
-
try {
|
|
47
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
48
|
-
}
|
|
49
|
-
finally { if (e) throw e.error; }
|
|
50
|
-
}
|
|
51
|
-
return ar;
|
|
52
|
-
};
|
|
53
10
|
/********************************************************************************
|
|
54
11
|
* Ledger Node JS API
|
|
55
12
|
* (c) 2016-2017 Ledger
|
|
@@ -69,10 +26,10 @@ var __read = (this && this.__read) || function (o, n) {
|
|
|
69
26
|
import invariant from "invariant";
|
|
70
27
|
import bs58check from "bs58check";
|
|
71
28
|
import blake2b from "blake2b";
|
|
72
|
-
export
|
|
29
|
+
export const TezosCurves = {
|
|
73
30
|
ED25519: 0x00,
|
|
74
31
|
SECP256K1: 0x01,
|
|
75
|
-
SECP256R1: 0x02
|
|
32
|
+
SECP256R1: 0x02,
|
|
76
33
|
};
|
|
77
34
|
/**
|
|
78
35
|
* Tezos API
|
|
@@ -81,8 +38,8 @@ export var TezosCurves = {
|
|
|
81
38
|
* import Tezos from "@ledgerhq/hw-app-tezos";
|
|
82
39
|
* const tez = new Tezos(transport)
|
|
83
40
|
*/
|
|
84
|
-
|
|
85
|
-
|
|
41
|
+
export default class Tezos {
|
|
42
|
+
constructor(transport) {
|
|
86
43
|
this.transport = transport;
|
|
87
44
|
transport.decorateAppAPIMethods(this, ["getAddress", "signOperation", "getVersion"], "XTZ");
|
|
88
45
|
}
|
|
@@ -99,141 +56,108 @@ var Tezos = /** @class */ (function () {
|
|
|
99
56
|
* tez.getAddress("44'/1729'/0'/0'").then(o => o.address)
|
|
100
57
|
* tez.getAddress("44'/1729'/0'/0'", { verify: true })
|
|
101
58
|
*/
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
cla = 0x80;
|
|
110
|
-
ins = options.ins;
|
|
111
|
-
if (!ins) {
|
|
112
|
-
if (options.verify) {
|
|
113
|
-
ins = 0x03;
|
|
114
|
-
}
|
|
115
|
-
else {
|
|
116
|
-
ins = 0x02;
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
p1 = 0;
|
|
120
|
-
p2 = options.curve || 0;
|
|
121
|
-
paths = splitPath(path);
|
|
122
|
-
buffer = Buffer.alloc(1 + paths.length * 4);
|
|
123
|
-
buffer[0] = paths.length;
|
|
124
|
-
paths.forEach(function (element, index) {
|
|
125
|
-
buffer.writeUInt32BE(element, 1 + 4 * index);
|
|
126
|
-
});
|
|
127
|
-
return [4 /*yield*/, this.transport.send(cla, ins, p1, p2, buffer)];
|
|
128
|
-
case 1:
|
|
129
|
-
payload = _a.sent();
|
|
130
|
-
publicKeyLength = payload[0];
|
|
131
|
-
if (!publicKeyLength) {
|
|
132
|
-
// it seems to be a bug that apps returns empty answer
|
|
133
|
-
throw new Error("invalid public key");
|
|
134
|
-
}
|
|
135
|
-
publicKey = payload.slice(1, 1 + publicKeyLength);
|
|
136
|
-
res = {
|
|
137
|
-
publicKey: publicKey.toString("hex"),
|
|
138
|
-
address: encodeAddress(publicKey, p2)
|
|
139
|
-
};
|
|
140
|
-
return [2 /*return*/, res];
|
|
59
|
+
getAddress(path, options = {}) {
|
|
60
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
61
|
+
const cla = 0x80;
|
|
62
|
+
let ins = options.ins;
|
|
63
|
+
if (!ins) {
|
|
64
|
+
if (options.verify) {
|
|
65
|
+
ins = 0x03;
|
|
141
66
|
}
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
};
|
|
145
|
-
Tezos.prototype.signOperation = function (path, rawTxHex, options) {
|
|
146
|
-
if (options === void 0) { options = {}; }
|
|
147
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
148
|
-
var curve, paths, offset, rawTx, toSend, buffer_1, maxChunkSize, chunkSize, buffer, response, i, data, code, signature;
|
|
149
|
-
return __generator(this, function (_a) {
|
|
150
|
-
switch (_a.label) {
|
|
151
|
-
case 0:
|
|
152
|
-
curve = options.curve || 0;
|
|
153
|
-
paths = splitPath(path);
|
|
154
|
-
offset = 0;
|
|
155
|
-
rawTx = Buffer.from(rawTxHex, "hex");
|
|
156
|
-
toSend = [];
|
|
157
|
-
// Initial key setting
|
|
158
|
-
{
|
|
159
|
-
buffer_1 = Buffer.alloc(paths.length * 4 + 1);
|
|
160
|
-
buffer_1[0] = paths.length;
|
|
161
|
-
paths.forEach(function (element, index) {
|
|
162
|
-
buffer_1.writeUInt32BE(element, 1 + 4 * index);
|
|
163
|
-
});
|
|
164
|
-
toSend.push(buffer_1);
|
|
165
|
-
}
|
|
166
|
-
while (offset !== rawTx.length) {
|
|
167
|
-
maxChunkSize = 230;
|
|
168
|
-
chunkSize = void 0;
|
|
169
|
-
if (offset + maxChunkSize >= rawTx.length) {
|
|
170
|
-
chunkSize = rawTx.length - offset;
|
|
171
|
-
}
|
|
172
|
-
else {
|
|
173
|
-
chunkSize = maxChunkSize;
|
|
174
|
-
}
|
|
175
|
-
buffer = Buffer.alloc(chunkSize);
|
|
176
|
-
rawTx.copy(buffer, 0, offset, offset + chunkSize);
|
|
177
|
-
toSend.push(buffer);
|
|
178
|
-
offset += chunkSize;
|
|
179
|
-
}
|
|
180
|
-
i = 0;
|
|
181
|
-
_a.label = 1;
|
|
182
|
-
case 1:
|
|
183
|
-
if (!(i < toSend.length)) return [3 /*break*/, 4];
|
|
184
|
-
data = toSend[i];
|
|
185
|
-
code = 0x01;
|
|
186
|
-
if (i === 0) {
|
|
187
|
-
code = 0x00;
|
|
188
|
-
}
|
|
189
|
-
else if (i === toSend.length - 1) {
|
|
190
|
-
code = 0x81;
|
|
191
|
-
}
|
|
192
|
-
return [4 /*yield*/, this.transport.send(0x80, 0x04, code, curve, data)];
|
|
193
|
-
case 2:
|
|
194
|
-
response = _a.sent();
|
|
195
|
-
_a.label = 3;
|
|
196
|
-
case 3:
|
|
197
|
-
i++;
|
|
198
|
-
return [3 /*break*/, 1];
|
|
199
|
-
case 4:
|
|
200
|
-
invariant(response, "hw-app-xtz: response is set");
|
|
201
|
-
signature = response.slice(0, response.length - 2).toString("hex");
|
|
202
|
-
return [2 /*return*/, {
|
|
203
|
-
signature: signature
|
|
204
|
-
}];
|
|
67
|
+
else {
|
|
68
|
+
ins = 0x02;
|
|
205
69
|
}
|
|
70
|
+
}
|
|
71
|
+
const p1 = 0;
|
|
72
|
+
const p2 = options.curve || 0;
|
|
73
|
+
const paths = splitPath(path);
|
|
74
|
+
const buffer = Buffer.alloc(1 + paths.length * 4);
|
|
75
|
+
buffer[0] = paths.length;
|
|
76
|
+
paths.forEach((element, index) => {
|
|
77
|
+
buffer.writeUInt32BE(element, 1 + 4 * index);
|
|
206
78
|
});
|
|
79
|
+
const payload = yield this.transport.send(cla, ins, p1, p2, buffer);
|
|
80
|
+
const publicKeyLength = payload[0];
|
|
81
|
+
if (!publicKeyLength) {
|
|
82
|
+
// it seems to be a bug that apps returns empty answer
|
|
83
|
+
throw new Error("invalid public key");
|
|
84
|
+
}
|
|
85
|
+
const publicKey = payload.slice(1, 1 + publicKeyLength);
|
|
86
|
+
const res = {
|
|
87
|
+
publicKey: publicKey.toString("hex"),
|
|
88
|
+
address: encodeAddress(publicKey, p2),
|
|
89
|
+
};
|
|
90
|
+
return res;
|
|
207
91
|
});
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
92
|
+
}
|
|
93
|
+
signOperation(path, rawTxHex, options = {}) {
|
|
94
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
95
|
+
const curve = options.curve || 0;
|
|
96
|
+
const paths = splitPath(path);
|
|
97
|
+
let offset = 0;
|
|
98
|
+
const rawTx = Buffer.from(rawTxHex, "hex");
|
|
99
|
+
const toSend = [];
|
|
100
|
+
// Initial key setting
|
|
101
|
+
{
|
|
102
|
+
const buffer = Buffer.alloc(paths.length * 4 + 1);
|
|
103
|
+
buffer[0] = paths.length;
|
|
104
|
+
paths.forEach((element, index) => {
|
|
105
|
+
buffer.writeUInt32BE(element, 1 + 4 * index);
|
|
106
|
+
});
|
|
107
|
+
toSend.push(buffer);
|
|
108
|
+
}
|
|
109
|
+
while (offset !== rawTx.length) {
|
|
110
|
+
const maxChunkSize = 230;
|
|
111
|
+
let chunkSize;
|
|
112
|
+
if (offset + maxChunkSize >= rawTx.length) {
|
|
113
|
+
chunkSize = rawTx.length - offset;
|
|
224
114
|
}
|
|
225
|
-
|
|
115
|
+
else {
|
|
116
|
+
chunkSize = maxChunkSize;
|
|
117
|
+
}
|
|
118
|
+
const buffer = Buffer.alloc(chunkSize);
|
|
119
|
+
rawTx.copy(buffer, 0, offset, offset + chunkSize);
|
|
120
|
+
toSend.push(buffer);
|
|
121
|
+
offset += chunkSize;
|
|
122
|
+
}
|
|
123
|
+
let response;
|
|
124
|
+
for (let i = 0; i < toSend.length; i++) {
|
|
125
|
+
const data = toSend[i];
|
|
126
|
+
let code = 0x01;
|
|
127
|
+
if (i === 0) {
|
|
128
|
+
code = 0x00;
|
|
129
|
+
}
|
|
130
|
+
else if (i === toSend.length - 1) {
|
|
131
|
+
code = 0x81;
|
|
132
|
+
}
|
|
133
|
+
response = yield this.transport.send(0x80, 0x04, code, curve, data);
|
|
134
|
+
}
|
|
135
|
+
invariant(response, "hw-app-xtz: response is set");
|
|
136
|
+
const signature = response.slice(0, response.length - 2).toString("hex");
|
|
137
|
+
return {
|
|
138
|
+
signature,
|
|
139
|
+
};
|
|
226
140
|
});
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
141
|
+
}
|
|
142
|
+
getVersion() {
|
|
143
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
144
|
+
const [appFlag, major, minor, patch] = yield this.transport.send(0x80, 0x00, 0x00, 0x00, Buffer.alloc(0));
|
|
145
|
+
const bakingApp = appFlag === 1;
|
|
146
|
+
return {
|
|
147
|
+
major,
|
|
148
|
+
minor,
|
|
149
|
+
patch,
|
|
150
|
+
bakingApp,
|
|
151
|
+
};
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
}
|
|
231
155
|
// TODO use bip32-path library
|
|
232
156
|
function splitPath(path) {
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
components.forEach(
|
|
236
|
-
|
|
157
|
+
const result = [];
|
|
158
|
+
const components = path.split("/");
|
|
159
|
+
components.forEach((element) => {
|
|
160
|
+
let number = parseInt(element, 10);
|
|
237
161
|
if (isNaN(number)) {
|
|
238
162
|
return; // FIXME shouldn't it throws instead?
|
|
239
163
|
}
|
|
@@ -244,43 +168,41 @@ function splitPath(path) {
|
|
|
244
168
|
});
|
|
245
169
|
return result;
|
|
246
170
|
}
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
};
|
|
253
|
-
var curves = [
|
|
171
|
+
const compressPublicKeySECP256 = (publicKey, curve) => Buffer.concat([
|
|
172
|
+
Buffer.from([curve, 0x02 + (publicKey[64] & 0x01)]),
|
|
173
|
+
publicKey.slice(1, 33),
|
|
174
|
+
]);
|
|
175
|
+
const curves = [
|
|
254
176
|
{
|
|
255
177
|
pkB58Prefix: Buffer.from([13, 15, 37, 217]),
|
|
256
178
|
pkhB58Prefix: Buffer.from([6, 161, 159]),
|
|
257
|
-
compressPublicKey:
|
|
179
|
+
compressPublicKey: (publicKey, curve) => {
|
|
258
180
|
publicKey = publicKey.slice(0);
|
|
259
181
|
publicKey[0] = curve;
|
|
260
182
|
return publicKey;
|
|
261
|
-
}
|
|
183
|
+
},
|
|
262
184
|
},
|
|
263
185
|
{
|
|
264
186
|
pkB58Prefix: Buffer.from([3, 254, 226, 86]),
|
|
265
187
|
pkhB58Prefix: Buffer.from([6, 161, 161]),
|
|
266
|
-
compressPublicKey: compressPublicKeySECP256
|
|
188
|
+
compressPublicKey: compressPublicKeySECP256,
|
|
267
189
|
},
|
|
268
190
|
{
|
|
269
191
|
pkB58Prefix: Buffer.from([3, 178, 139, 127]),
|
|
270
192
|
pkhB58Prefix: Buffer.from([6, 161, 164]),
|
|
271
|
-
compressPublicKey: compressPublicKeySECP256
|
|
193
|
+
compressPublicKey: compressPublicKeySECP256,
|
|
272
194
|
},
|
|
273
195
|
];
|
|
274
|
-
|
|
275
|
-
|
|
196
|
+
const encodeAddress = (publicKey, curve) => {
|
|
197
|
+
const curveData = curves[curve];
|
|
276
198
|
invariant(curveData, "%s curve not supported", curve);
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
199
|
+
const publicKeyBuf = curveData.compressPublicKey(publicKey, curve);
|
|
200
|
+
const key = publicKeyBuf.slice(1);
|
|
201
|
+
const keyHashSize = 20;
|
|
202
|
+
let hash = blake2b(keyHashSize);
|
|
281
203
|
hash.update(key);
|
|
282
204
|
hash.digest((hash = Buffer.alloc(keyHashSize)));
|
|
283
|
-
|
|
205
|
+
const address = bs58check.encode(Buffer.concat([curveData.pkhB58Prefix, hash]));
|
|
284
206
|
return address;
|
|
285
207
|
};
|
|
286
208
|
//# sourceMappingURL=Tezos.js.map
|
package/lib-es/Tezos.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tezos.js","sourceRoot":"","sources":["../src/Tezos.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Tezos.js","sourceRoot":"","sources":["../src/Tezos.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ledgerhq/hw-app-tezos",
|
|
3
|
-
"version": "6.27.
|
|
3
|
+
"version": "6.27.14-next.0",
|
|
4
4
|
"description": "Ledger Hardware Wallet Tezos Application API",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Ledger",
|
|
@@ -30,19 +30,18 @@
|
|
|
30
30
|
"blake2b": "^2.1.4",
|
|
31
31
|
"bs58check": "^2.1.2",
|
|
32
32
|
"invariant": "^2.2.4",
|
|
33
|
-
"@ledgerhq/hw-transport": "^6.28.
|
|
33
|
+
"@ledgerhq/hw-transport": "^6.28.3-next.0"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@types/jest": "^29.5.0",
|
|
37
37
|
"@types/node": "^18.15.3",
|
|
38
38
|
"documentation": "13.2.4",
|
|
39
39
|
"jest": "^28.1.1",
|
|
40
|
-
"rimraf": "^4.1
|
|
40
|
+
"rimraf": "^4.4.1",
|
|
41
41
|
"source-map-support": "^0.5.21",
|
|
42
42
|
"ts-jest": "^28.0.5",
|
|
43
43
|
"ts-node": "^10.4.0",
|
|
44
|
-
"
|
|
45
|
-
"@ledgerhq/hw-transport-mocker": "^6.27.13"
|
|
44
|
+
"@ledgerhq/hw-transport-mocker": "^6.27.14-next.0"
|
|
46
45
|
},
|
|
47
46
|
"gitHead": "dd0dea64b58e5a9125c8a422dcffd29e5ef6abec",
|
|
48
47
|
"scripts": {
|