@shapeshiftoss/hdwallet-keepkey-webusb 1.55.2-alpha.0 → 1.55.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/dist/adapter.d.ts +0 -1
- package/dist/adapter.d.ts.map +1 -1
- package/dist/adapter.js +37 -81
- package/dist/adapter.js.map +1 -1
- package/dist/index.js +3 -19
- package/dist/index.js.map +1 -1
- package/dist/transport.d.ts +0 -1
- package/dist/transport.d.ts.map +1 -1
- package/dist/transport.js +62 -113
- package/dist/transport.js.map +1 -1
- package/dist/utils.js +3 -6
- package/dist/utils.js.map +1 -1
- package/package.json +4 -4
package/dist/adapter.d.ts
CHANGED
package/dist/adapter.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,iCAAiC,CAAC;AAE3D,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAWxD,eAAO,MAAM,eAAe;kBACN,OAAO,CAAC,MAAM,EAAE,CAAC;6BAKN,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;iCAepB,MAAM;qCAGR,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,oBAAoB,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,GAAG,IAAI;CAanH,CAAC;AAEF,eAAO,MAAM,OAAO;kBAtCE,OAAO,CAAC,MAAM,EAAE,CAAC;6BAKN,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;iCAepB,MAAM;qCAGR,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,oBAAoB,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,GAAG,IAAI;EAehD,CAAC;AACrE,eAAO,MAAM,oBAAoB;kBAvCX,OAAO,CAAC,MAAM,EAAE,CAAC;6BAKN,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;iCAepB,MAAM;qCAGR,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,oBAAoB,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,GAAG,IAAI;EAgBzE,CAAC"}
|
package/dist/adapter.js
CHANGED
|
@@ -1,97 +1,53 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
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
|
-
};
|
|
25
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
-
});
|
|
33
|
-
};
|
|
34
|
-
var _a;
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.WebUSBKeepKeyAdapter = exports.Adapter = exports.AdapterDelegate = void 0;
|
|
37
|
-
const core = __importStar(require("@shapeshiftoss/hdwallet-core"));
|
|
38
|
-
const keepkey = __importStar(require("@shapeshiftoss/hdwallet-keepkey"));
|
|
39
|
-
const transport_1 = require("./transport");
|
|
40
|
-
const utils_1 = require("./utils");
|
|
1
|
+
import * as core from "@shapeshiftoss/hdwallet-core";
|
|
2
|
+
import * as keepkey from "@shapeshiftoss/hdwallet-keepkey";
|
|
3
|
+
import { TransportDelegate } from "./transport";
|
|
4
|
+
import { HID_PRODUCT_ID, VENDOR_ID, WEBUSB_PRODUCT_ID } from "./utils";
|
|
41
5
|
// This avoids a prompt ReferenceError if the module is imported outside a browser.
|
|
42
|
-
const webUSB = typeof window === "object" &&
|
|
6
|
+
const webUSB = typeof window === "object" && window?.navigator?.usb;
|
|
43
7
|
function assertWebUSB(x) {
|
|
44
8
|
if (!x)
|
|
45
9
|
throw new core.WebUSBNotAvailable();
|
|
46
10
|
}
|
|
47
|
-
|
|
48
|
-
getDevices() {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
return devices.filter((x) => x.vendorId === utils_1.VENDOR_ID && [utils_1.WEBUSB_PRODUCT_ID, utils_1.HID_PRODUCT_ID].includes(x.productId));
|
|
53
|
-
});
|
|
11
|
+
export const AdapterDelegate = {
|
|
12
|
+
async getDevices() {
|
|
13
|
+
assertWebUSB(webUSB);
|
|
14
|
+
const devices = (await webUSB.getDevices()).filter((d) => d.serialNumber !== undefined);
|
|
15
|
+
return devices.filter((x) => x.vendorId === VENDOR_ID && [WEBUSB_PRODUCT_ID, HID_PRODUCT_ID].includes(x.productId));
|
|
54
16
|
},
|
|
55
|
-
getDevice(serialNumber) {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
}
|
|
72
|
-
});
|
|
17
|
+
async getDevice(serialNumber) {
|
|
18
|
+
assertWebUSB(webUSB);
|
|
19
|
+
try {
|
|
20
|
+
const out = await webUSB.requestDevice({
|
|
21
|
+
filters: [
|
|
22
|
+
{ vendorId: VENDOR_ID, productId: WEBUSB_PRODUCT_ID, serialNumber },
|
|
23
|
+
{ vendorId: VENDOR_ID, productId: HID_PRODUCT_ID, serialNumber },
|
|
24
|
+
],
|
|
25
|
+
});
|
|
26
|
+
if (out.serialNumber === undefined)
|
|
27
|
+
throw new Error("expected serial number");
|
|
28
|
+
return out;
|
|
29
|
+
}
|
|
30
|
+
catch (e) {
|
|
31
|
+
throw new core.WebUSBCouldNotPair("KeepKey", String(core.isIndexable(e) ? e.message : e));
|
|
32
|
+
}
|
|
73
33
|
},
|
|
74
|
-
getTransportDelegate(device) {
|
|
75
|
-
return
|
|
76
|
-
return new transport_1.TransportDelegate(device);
|
|
77
|
-
});
|
|
34
|
+
async getTransportDelegate(device) {
|
|
35
|
+
return new TransportDelegate(device);
|
|
78
36
|
},
|
|
79
37
|
registerCallbacks(handleConnect, handleDisconnect) {
|
|
80
38
|
assertWebUSB(webUSB);
|
|
81
|
-
function handleUSBEvent(connecting, e) {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
return (connecting ? handleConnect : handleDisconnect)(device);
|
|
89
|
-
});
|
|
39
|
+
async function handleUSBEvent(connecting, e) {
|
|
40
|
+
const device = e.device;
|
|
41
|
+
if (device.vendorId !== VENDOR_ID)
|
|
42
|
+
return;
|
|
43
|
+
if (device.productId !== WEBUSB_PRODUCT_ID)
|
|
44
|
+
return;
|
|
45
|
+
return (connecting ? handleConnect : handleDisconnect)(device);
|
|
90
46
|
}
|
|
91
47
|
webUSB.addEventListener("connect", handleUSBEvent.bind(null, true));
|
|
92
48
|
webUSB.addEventListener("disconnect", handleUSBEvent.bind(null, false));
|
|
93
49
|
},
|
|
94
50
|
};
|
|
95
|
-
|
|
96
|
-
|
|
51
|
+
export const Adapter = keepkey.Adapter.fromDelegate(AdapterDelegate);
|
|
52
|
+
export const WebUSBKeepKeyAdapter = Adapter;
|
|
97
53
|
//# sourceMappingURL=adapter.js.map
|
package/dist/adapter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,8BAA8B,CAAC;AACrD,OAAO,KAAK,OAAO,MAAM,iCAAiC,CAAC;AAE3D,OAAO,EAAU,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEvE,mFAAmF;AACnF,MAAM,MAAM,GAAG,OAAO,MAAM,KAAK,QAAQ,IAAK,MAAM,EAAE,SAAS,EAAE,GAAe,CAAC;AAGjF,SAAS,YAAY,CAAC,CAAM;IAC1B,IAAI,CAAC,CAAC;QAAE,MAAM,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,KAAK,CAAC,UAAU;QACd,YAAY,CAAC,MAAM,CAAC,CAAC;QACrB,MAAM,OAAO,GAAG,CAAC,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,SAAS,CAAa,CAAC;QACpG,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IACtH,CAAC;IACD,KAAK,CAAC,SAAS,CAAC,YAAqB;QACnC,YAAY,CAAC,MAAM,CAAC,CAAC;QACrB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC;gBACrC,OAAO,EAAE;oBACP,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,iBAAiB,EAAE,YAAY,EAAE;oBACnE,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE;iBACjE;aACF,CAAC,CAAC;YACH,IAAI,GAAG,CAAC,YAAY,KAAK,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAC9E,OAAO,GAAa,CAAC;QACvB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5F,CAAC;IACH,CAAC;IACD,KAAK,CAAC,oBAAoB,CAAC,MAAc;QACvC,OAAO,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IACD,iBAAiB,CAAC,aAA0C,EAAE,gBAA6C;QACzG,YAAY,CAAC,MAAM,CAAC,CAAC;QAErB,KAAK,UAAU,cAAc,CAAC,UAAmB,EAAE,CAAqB;YACtE,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;YACxB,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;gBAAE,OAAO;YAC1C,IAAI,MAAM,CAAC,SAAS,KAAK,iBAAiB;gBAAE,OAAO;YACnD,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;QACjE,CAAC;QAED,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QACpE,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAC1E,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;AACrE,MAAM,CAAC,MAAM,oBAAoB,GAAG,OAAO,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,20 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./adapter"), exports);
|
|
18
|
-
__exportStar(require("./transport"), exports);
|
|
19
|
-
__exportStar(require("./utils"), exports);
|
|
1
|
+
export * from "./adapter";
|
|
2
|
+
export * from "./transport";
|
|
3
|
+
export * from "./utils";
|
|
20
4
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC"}
|
package/dist/transport.d.ts
CHANGED
package/dist/transport.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,iCAAiC,CAAC;AAI3D,MAAM,MAAM,MAAM,GAAG,SAAS,GAAG;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC;AAC1D,qBAAa,iBAAkB,YAAW,OAAO,CAAC,iBAAiB;IACjE,SAAS,EAAE,MAAM,CAAC;gBAEN,SAAS,EAAE,MAAM;WAMhB,MAAM,CAAC,MAAM,EAAE,MAAM;IAK5B,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAI9B,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;IAI5B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBxB,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC;IAWvC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAU3B,UAAU,CAAC,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAO9D,SAAS,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;CAUzD"}
|
package/dist/transport.js
CHANGED
|
@@ -1,128 +1,77 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
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
|
-
};
|
|
25
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
-
});
|
|
33
|
-
};
|
|
34
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
-
exports.TransportDelegate = void 0;
|
|
36
|
-
const core = __importStar(require("@shapeshiftoss/hdwallet-core"));
|
|
37
|
-
const keepkey = __importStar(require("@shapeshiftoss/hdwallet-keepkey"));
|
|
38
|
-
const utils_1 = require("./utils");
|
|
39
|
-
class TransportDelegate {
|
|
1
|
+
import * as core from "@shapeshiftoss/hdwallet-core";
|
|
2
|
+
import * as keepkey from "@shapeshiftoss/hdwallet-keepkey";
|
|
3
|
+
import { VENDOR_ID, WEBUSB_PRODUCT_ID } from "./utils";
|
|
4
|
+
export class TransportDelegate {
|
|
5
|
+
usbDevice;
|
|
40
6
|
constructor(usbDevice) {
|
|
41
|
-
if (usbDevice.vendorId !==
|
|
7
|
+
if (usbDevice.vendorId !== VENDOR_ID)
|
|
42
8
|
throw new core.WebUSBCouldNotPair("KeepKey", "bad vendor id");
|
|
43
|
-
if (usbDevice.productId !==
|
|
9
|
+
if (usbDevice.productId !== WEBUSB_PRODUCT_ID)
|
|
44
10
|
throw new core.FirmwareUpdateRequired("KeepKey", "6.1.0");
|
|
45
11
|
this.usbDevice = usbDevice;
|
|
46
12
|
}
|
|
47
|
-
static create(device) {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
return new TransportDelegate(device);
|
|
52
|
-
});
|
|
13
|
+
static async create(device) {
|
|
14
|
+
if (device.vendorId !== VENDOR_ID)
|
|
15
|
+
return null;
|
|
16
|
+
return new TransportDelegate(device);
|
|
53
17
|
}
|
|
54
|
-
getDeviceID() {
|
|
55
|
-
return
|
|
56
|
-
return this.usbDevice.serialNumber;
|
|
57
|
-
});
|
|
18
|
+
async getDeviceID() {
|
|
19
|
+
return this.usbDevice.serialNumber;
|
|
58
20
|
}
|
|
59
|
-
isOpened() {
|
|
60
|
-
return
|
|
61
|
-
return this.usbDevice.opened;
|
|
62
|
-
});
|
|
21
|
+
async isOpened() {
|
|
22
|
+
return this.usbDevice.opened;
|
|
63
23
|
}
|
|
64
|
-
connect() {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
}
|
|
82
|
-
});
|
|
24
|
+
async connect() {
|
|
25
|
+
await this.usbDevice.open();
|
|
26
|
+
if (this.usbDevice.configuration === null)
|
|
27
|
+
await this.usbDevice.selectConfiguration(1);
|
|
28
|
+
try {
|
|
29
|
+
await this.usbDevice.claimInterface(0);
|
|
30
|
+
}
|
|
31
|
+
catch (e) {
|
|
32
|
+
console.error("Could not claim interface 0", this.usbDevice, { e });
|
|
33
|
+
if (core.isIndexable(e) && e.code === 18)
|
|
34
|
+
// "The requested interface implements a protected class"
|
|
35
|
+
throw new core.FirmwareUpdateRequired("KeepKey", "6.1.0");
|
|
36
|
+
if (core.isIndexable(e) && e.code === 19)
|
|
37
|
+
// "Unable to claim interface"
|
|
38
|
+
throw new core.ConflictingApp("KeepKey");
|
|
39
|
+
throw e;
|
|
40
|
+
}
|
|
83
41
|
}
|
|
84
|
-
tryConnectDebugLink() {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
}
|
|
95
|
-
});
|
|
42
|
+
async tryConnectDebugLink() {
|
|
43
|
+
// We have to use "guess & check" here because the browser doesn't give us a
|
|
44
|
+
// way to inspect the descriptors :(
|
|
45
|
+
try {
|
|
46
|
+
await this.usbDevice.claimInterface(1);
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
catch (e) {
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
96
52
|
}
|
|
97
|
-
disconnect() {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
}
|
|
108
|
-
});
|
|
53
|
+
async disconnect() {
|
|
54
|
+
if (!this.usbDevice.opened)
|
|
55
|
+
return;
|
|
56
|
+
try {
|
|
57
|
+
// If the device is disconnected, this will fail and throw, which is fine.
|
|
58
|
+
await this.usbDevice.close();
|
|
59
|
+
}
|
|
60
|
+
catch (e) {
|
|
61
|
+
console.warn("Error closing connection with usbDevice");
|
|
62
|
+
}
|
|
109
63
|
}
|
|
110
|
-
writeChunk(buf, debugLink) {
|
|
111
|
-
|
|
112
|
-
yield this.usbDevice.transferOut(debugLink ? 2 : 1, buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength));
|
|
113
|
-
});
|
|
64
|
+
async writeChunk(buf, debugLink) {
|
|
65
|
+
await this.usbDevice.transferOut(debugLink ? 2 : 1, buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength));
|
|
114
66
|
}
|
|
115
|
-
readChunk(debugLink) {
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
return new Uint8Array(core.toArrayBuffer(data));
|
|
124
|
-
});
|
|
67
|
+
async readChunk(debugLink) {
|
|
68
|
+
const { status, data } = await this.usbDevice.transferIn(debugLink ? 2 : 1, keepkey.SEGMENT_SIZE + 1);
|
|
69
|
+
if (status === "stall") {
|
|
70
|
+
await this.usbDevice.clearHalt("out", debugLink ? 2 : 1);
|
|
71
|
+
}
|
|
72
|
+
if (data === undefined)
|
|
73
|
+
throw new Error("bad read");
|
|
74
|
+
return new Uint8Array(core.toArrayBuffer(data));
|
|
125
75
|
}
|
|
126
76
|
}
|
|
127
|
-
exports.TransportDelegate = TransportDelegate;
|
|
128
77
|
//# sourceMappingURL=transport.js.map
|
package/dist/transport.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"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"}
|
package/dist/utils.js
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
exports.VENDOR_ID = 0x2b24;
|
|
5
|
-
exports.WEBUSB_PRODUCT_ID = 0x0002;
|
|
6
|
-
exports.HID_PRODUCT_ID = 0x0001;
|
|
1
|
+
export const VENDOR_ID = 0x2b24;
|
|
2
|
+
export const WEBUSB_PRODUCT_ID = 0x0002;
|
|
3
|
+
export const HID_PRODUCT_ID = 0x0001;
|
|
7
4
|
//# sourceMappingURL=utils.js.map
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC;AAChC,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC;AACxC,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shapeshiftoss/hdwallet-keepkey-webusb",
|
|
3
|
-
"version": "1.55.
|
|
3
|
+
"version": "1.55.3",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -14,11 +14,11 @@
|
|
|
14
14
|
"prepublishOnly": "yarn clean && yarn build"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@shapeshiftoss/hdwallet-core": "1.55.
|
|
18
|
-
"@shapeshiftoss/hdwallet-keepkey": "1.55.
|
|
17
|
+
"@shapeshiftoss/hdwallet-core": "1.55.3",
|
|
18
|
+
"@shapeshiftoss/hdwallet-keepkey": "1.55.3"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
21
|
"@types/w3c-web-usb": "^1.0.4"
|
|
22
22
|
},
|
|
23
|
-
"gitHead": "
|
|
23
|
+
"gitHead": "139e31e9d61b2d8d63488101c6227a50f4fad061"
|
|
24
24
|
}
|