@shapeshiftoss/hdwallet-ledger-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 +30 -75
- package/dist/adapter.js.map +1 -1
- package/dist/index.js +2 -18
- 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 +124 -172
- package/dist/transport.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":"AAAA,OAAO,eAAe,MAAM,+BAA+B,CAAC;AAC5D,OAAO,KAAK,IAAI,MAAM,8BAA8B,CAAC;AACrD,OAAO,KAAK,MAAM,MAAM,gCAAgC,CAAC;AAIzD,eAAO,MAAM,SAAS,QAAQ,CAAC;AAE/B,qBAAa,mBAAmB;IAC9B,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC;gBAEV,OAAO,EAAE,IAAI,CAAC,OAAO;WASnB,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO;YAIhC,yBAAyB;YAgBzB,4BAA4B;IASnC,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAAC,cAAc;IAKvC,UAAU,CAAC,eAAe,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;IAY9D,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC;CAS1D"}
|
package/dist/adapter.js
CHANGED
|
@@ -1,43 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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.WebUSBLedgerAdapter = exports.VENDOR_ID = void 0;
|
|
36
|
-
const core = __importStar(require("@shapeshiftoss/hdwallet-core"));
|
|
37
|
-
const ledger = __importStar(require("@shapeshiftoss/hdwallet-ledger"));
|
|
38
|
-
const transport_1 = require("./transport");
|
|
39
|
-
exports.VENDOR_ID = 11415;
|
|
40
|
-
class WebUSBLedgerAdapter {
|
|
1
|
+
import * as core from "@shapeshiftoss/hdwallet-core";
|
|
2
|
+
import * as ledger from "@shapeshiftoss/hdwallet-ledger";
|
|
3
|
+
import { getLedgerTransport, LedgerWebUsbTransport } from "./transport";
|
|
4
|
+
export const VENDOR_ID = 11415;
|
|
5
|
+
export class WebUSBLedgerAdapter {
|
|
6
|
+
keyring;
|
|
41
7
|
constructor(keyring) {
|
|
42
8
|
this.keyring = keyring;
|
|
43
9
|
if (window && window.navigator.usb) {
|
|
@@ -48,47 +14,36 @@ class WebUSBLedgerAdapter {
|
|
|
48
14
|
static useKeyring(keyring) {
|
|
49
15
|
return new WebUSBLedgerAdapter(keyring);
|
|
50
16
|
}
|
|
51
|
-
handleConnectWebUSBLedger(e) {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
this.keyring.emit([(_c = e.device.manufacturerName) !== null && _c !== void 0 ? _c : "", (_d = e.device.productName) !== null && _d !== void 0 ? _d : "", core.Events.FAILURE], [e.device.serialNumber, { message: Object.assign({ code: error.type }, error) }]);
|
|
61
|
-
}
|
|
62
|
-
});
|
|
17
|
+
async handleConnectWebUSBLedger(e) {
|
|
18
|
+
if (e.device.vendorId !== VENDOR_ID)
|
|
19
|
+
return;
|
|
20
|
+
try {
|
|
21
|
+
this.keyring.emit([e.device.manufacturerName ?? "", e.device.productName ?? "", core.Events.CONNECT], e.device.serialNumber);
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
this.keyring.emit([e.device.manufacturerName ?? "", e.device.productName ?? "", core.Events.FAILURE], [e.device.serialNumber, { message: { code: error.type, ...error } }]);
|
|
25
|
+
}
|
|
63
26
|
}
|
|
64
|
-
handleDisconnectWebUSBLedger(e) {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
return;
|
|
69
|
-
this.keyring.emit([(_a = e.device.manufacturerName) !== null && _a !== void 0 ? _a : "", (_b = e.device.productName) !== null && _b !== void 0 ? _b : "", core.Events.DISCONNECT], e.device.serialNumber);
|
|
70
|
-
});
|
|
27
|
+
async handleDisconnectWebUSBLedger(e) {
|
|
28
|
+
if (e.device.vendorId !== VENDOR_ID)
|
|
29
|
+
return;
|
|
30
|
+
this.keyring.emit([e.device.manufacturerName ?? "", e.device.productName ?? "", core.Events.DISCONNECT], e.device.serialNumber);
|
|
71
31
|
}
|
|
72
32
|
get(device) {
|
|
73
33
|
return core.mustBeDefined(this.keyring.get(device.serialNumber));
|
|
74
34
|
}
|
|
75
35
|
// without unique device identifiers, we should only ever have one ledger device on the keyring at a time
|
|
76
|
-
initialize(ledgerTransport) {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
const device = ledgerTransport.device;
|
|
88
|
-
yield this.initialize(ledgerTransport);
|
|
89
|
-
return core.mustBeDefined(this.keyring.get(device.serialNumber));
|
|
90
|
-
});
|
|
36
|
+
async initialize(ledgerTransport) {
|
|
37
|
+
const transport = ledgerTransport ?? (await getLedgerTransport());
|
|
38
|
+
const wallet = ledger.create(new LedgerWebUsbTransport(transport.device, transport, this.keyring));
|
|
39
|
+
this.keyring.add(wallet, transport.device.serialNumber);
|
|
40
|
+
return Object.keys(this.keyring.wallets).length;
|
|
41
|
+
}
|
|
42
|
+
async pairDevice() {
|
|
43
|
+
const ledgerTransport = await getLedgerTransport();
|
|
44
|
+
const device = ledgerTransport.device;
|
|
45
|
+
await this.initialize(ledgerTransport);
|
|
46
|
+
return core.mustBeDefined(this.keyring.get(device.serialNumber));
|
|
91
47
|
}
|
|
92
48
|
}
|
|
93
|
-
exports.WebUSBLedgerAdapter = WebUSBLedgerAdapter;
|
|
94
49
|
//# 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":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,19 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
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);
|
|
1
|
+
export * from "./adapter";
|
|
2
|
+
export * from "./transport";
|
|
19
3
|
//# 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"}
|
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":"AAIA,OAAO,eAAe,MAAM,+BAA+B,CAAC;AAI5D,OAAO,KAAK,IAAI,MAAM,8BAA8B,CAAC;AACrD,OAAO,EAAE,eAAe,EAAa,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,qBAAqB,EACrB,yBAAyB,EAC1B,MAAM,+BAA+B,CAAC;AASvC,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,SAAS,CAAC,CAoB/D;AAED,eAAO,MAAM,kBAAkB,QAAa,OAAO,CAAC,eAAe,CA6BlE,CAAC;AAEF,wBAAsB,sBAAsB,CAAC,CAAC,SAAS,uBAAuB,EAAE,CAAC,SAAS,yBAAyB,CAAC,CAAC,CAAC,EACpH,SAAS,EAAE,eAAe,EAC1B,IAAI,EAAE,CAAC,EACP,MAAM,EAAE,CAAC,GACR,OAAO,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAwDtC;AAED,qBAAa,qBAAsB,SAAQ,eAAe;IACxD,MAAM,EAAE,SAAS,CAAC;gBAEN,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO;IAKnE,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAI9B,IAAI,CAAC,CAAC,SAAS,uBAAuB,EAAE,CAAC,SAAS,yBAAyB,CAAC,CAAC,CAAC,EACzF,IAAI,EAAE,CAAC,EACP,MAAM,EAAE,CAAC,EACT,GAAG,IAAI,EAAE,UAAU,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAC/C,OAAO,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CA8CjC"}
|
package/dist/transport.js
CHANGED
|
@@ -1,86 +1,45 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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 __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
-
};
|
|
37
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
-
exports.LedgerWebUsbTransport = exports.translateCoinAndMethod = exports.getLedgerTransport = exports.getFirstLedgerDevice = void 0;
|
|
39
|
-
const hw_app_btc_1 = __importDefault(require("@ledgerhq/hw-app-btc"));
|
|
40
|
-
const hw_app_cosmos_1 = __importDefault(require("@ledgerhq/hw-app-cosmos"));
|
|
41
|
-
const hw_app_eth_1 = __importDefault(require("@ledgerhq/hw-app-eth"));
|
|
42
|
-
const hw_transport_webusb_1 = __importDefault(require("@ledgerhq/hw-transport-webusb"));
|
|
43
|
-
const getAppAndVersion_1 = __importDefault(require("@ledgerhq/live-common/lib/hw/getAppAndVersion"));
|
|
44
|
-
const getDeviceInfo_1 = __importDefault(require("@ledgerhq/live-common/lib/hw/getDeviceInfo"));
|
|
45
|
-
const openApp_1 = __importDefault(require("@ledgerhq/live-common/lib/hw/openApp"));
|
|
46
|
-
const core = __importStar(require("@shapeshiftoss/hdwallet-core"));
|
|
47
|
-
const hdwallet_ledger_1 = require("@shapeshiftoss/hdwallet-ledger");
|
|
48
|
-
const dist_1 = __importDefault(require("p-queue/dist"));
|
|
49
|
-
const adapter_1 = require("./adapter");
|
|
1
|
+
import Btc from "@ledgerhq/hw-app-btc";
|
|
2
|
+
import Cosmos from "@ledgerhq/hw-app-cosmos";
|
|
3
|
+
import Eth from "@ledgerhq/hw-app-eth";
|
|
4
|
+
import TransportWebUSB from "@ledgerhq/hw-transport-webusb";
|
|
5
|
+
import getAppAndVersion from "@ledgerhq/live-common/lib/hw/getAppAndVersion";
|
|
6
|
+
import getDeviceInfo from "@ledgerhq/live-common/lib/hw/getDeviceInfo";
|
|
7
|
+
import openApp from "@ledgerhq/live-common/lib/hw/openApp";
|
|
8
|
+
import * as core from "@shapeshiftoss/hdwallet-core";
|
|
9
|
+
import { LedgerTransport, Thorchain } from "@shapeshiftoss/hdwallet-ledger";
|
|
10
|
+
import PQueue from "p-queue/dist";
|
|
11
|
+
import { VENDOR_ID } from "./adapter";
|
|
50
12
|
const RECORD_CONFORMANCE_MOCKS = false;
|
|
51
|
-
const callsQueue = new
|
|
52
|
-
function getFirstLedgerDevice() {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
throw new core.ConflictingApp("Ledger");
|
|
69
|
-
}
|
|
70
|
-
throw new core.WebUSBCouldNotInitialize("Ledger", String(core.isIndexable(err) ? err.message : err));
|
|
13
|
+
const callsQueue = new PQueue({ concurrency: 1, interval: 1000 });
|
|
14
|
+
export async function getFirstLedgerDevice() {
|
|
15
|
+
if (!(window && window.navigator.usb))
|
|
16
|
+
throw new core.WebUSBNotAvailable();
|
|
17
|
+
try {
|
|
18
|
+
const existingDevices = await TransportWebUSB.list();
|
|
19
|
+
const maybeExistingDevice = existingDevices?.[0];
|
|
20
|
+
if (maybeExistingDevice)
|
|
21
|
+
return maybeExistingDevice;
|
|
22
|
+
const requestedDevice = await window.navigator.usb.requestDevice({
|
|
23
|
+
filters: [{ vendorId: VENDOR_ID }],
|
|
24
|
+
});
|
|
25
|
+
return requestedDevice;
|
|
26
|
+
}
|
|
27
|
+
catch (err) {
|
|
28
|
+
if (core.isIndexable(err) && err.name === "TransportInterfaceNotAvailable") {
|
|
29
|
+
throw new core.ConflictingApp("Ledger");
|
|
71
30
|
}
|
|
72
|
-
|
|
31
|
+
throw new core.WebUSBCouldNotInitialize("Ledger", String(core.isIndexable(err) ? err.message : err));
|
|
32
|
+
}
|
|
73
33
|
}
|
|
74
|
-
|
|
75
|
-
const
|
|
76
|
-
const device = yield getFirstLedgerDevice();
|
|
34
|
+
export const getLedgerTransport = async () => {
|
|
35
|
+
const device = await getFirstLedgerDevice();
|
|
77
36
|
if (!device)
|
|
78
37
|
throw new Error("No device found");
|
|
79
|
-
|
|
38
|
+
await device.open();
|
|
80
39
|
if (device.configuration === null)
|
|
81
|
-
|
|
40
|
+
await device.selectConfiguration(1);
|
|
82
41
|
try {
|
|
83
|
-
|
|
42
|
+
await device.reset();
|
|
84
43
|
}
|
|
85
44
|
catch (err) {
|
|
86
45
|
console.warn(err);
|
|
@@ -89,117 +48,110 @@ const getLedgerTransport = () => __awaiter(void 0, void 0, void 0, function* ()
|
|
|
89
48
|
if (!usbInterface)
|
|
90
49
|
throw new Error("No Ledger device found");
|
|
91
50
|
try {
|
|
92
|
-
|
|
51
|
+
await device.claimInterface(usbInterface.interfaceNumber);
|
|
93
52
|
}
|
|
94
53
|
catch (error) {
|
|
95
|
-
|
|
54
|
+
await device.close();
|
|
96
55
|
console.error(error);
|
|
97
56
|
throw new Error(error.message);
|
|
98
57
|
}
|
|
99
|
-
return new
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
default: {
|
|
144
|
-
throw new TypeError("method");
|
|
145
|
-
}
|
|
58
|
+
return new TransportWebUSB(device, usbInterface.interfaceNumber);
|
|
59
|
+
};
|
|
60
|
+
export async function translateCoinAndMethod(transport, coin, method) {
|
|
61
|
+
switch (coin) {
|
|
62
|
+
case "Btc": {
|
|
63
|
+
const btc = new Btc({ transport: transport });
|
|
64
|
+
const methodInstance = btc[method].bind(btc);
|
|
65
|
+
return methodInstance;
|
|
66
|
+
}
|
|
67
|
+
case "Eth": {
|
|
68
|
+
const eth = new Eth(transport);
|
|
69
|
+
const methodInstance = eth[method].bind(eth);
|
|
70
|
+
return methodInstance;
|
|
71
|
+
}
|
|
72
|
+
case "Thorchain": {
|
|
73
|
+
const thorchain = new Thorchain(transport);
|
|
74
|
+
const methodInstance = thorchain[method].bind(thorchain);
|
|
75
|
+
return methodInstance;
|
|
76
|
+
}
|
|
77
|
+
case "Cosmos": {
|
|
78
|
+
const cosmos = new Cosmos(transport);
|
|
79
|
+
const methodInstance = cosmos[method].bind(cosmos);
|
|
80
|
+
return methodInstance;
|
|
81
|
+
}
|
|
82
|
+
case null: {
|
|
83
|
+
switch (method) {
|
|
84
|
+
case "decorateAppAPIMethods": {
|
|
85
|
+
const out = transport.decorateAppAPIMethods.bind(transport);
|
|
86
|
+
return out;
|
|
87
|
+
}
|
|
88
|
+
case "getAppAndVersion": {
|
|
89
|
+
const out = getAppAndVersion.bind(undefined, transport);
|
|
90
|
+
return out;
|
|
91
|
+
}
|
|
92
|
+
case "getDeviceInfo": {
|
|
93
|
+
const out = getDeviceInfo.bind(undefined, transport);
|
|
94
|
+
return out;
|
|
95
|
+
}
|
|
96
|
+
case "openApp": {
|
|
97
|
+
const out = openApp.bind(undefined, transport);
|
|
98
|
+
return out;
|
|
99
|
+
}
|
|
100
|
+
default: {
|
|
101
|
+
throw new TypeError("method");
|
|
146
102
|
}
|
|
147
103
|
}
|
|
148
|
-
default: {
|
|
149
|
-
throw new TypeError("coin");
|
|
150
|
-
}
|
|
151
104
|
}
|
|
152
|
-
|
|
105
|
+
default: {
|
|
106
|
+
throw new TypeError("coin");
|
|
107
|
+
}
|
|
108
|
+
}
|
|
153
109
|
}
|
|
154
|
-
|
|
155
|
-
|
|
110
|
+
export class LedgerWebUsbTransport extends LedgerTransport {
|
|
111
|
+
device;
|
|
156
112
|
constructor(device, transport, keyring) {
|
|
157
113
|
super(transport, keyring);
|
|
158
114
|
this.device = device;
|
|
159
115
|
}
|
|
160
|
-
getDeviceID() {
|
|
161
|
-
return
|
|
162
|
-
return core.mustBeDefined(this.device.serialNumber);
|
|
163
|
-
});
|
|
116
|
+
async getDeviceID() {
|
|
117
|
+
return core.mustBeDefined(this.device.serialNumber);
|
|
164
118
|
}
|
|
165
|
-
call(coin, method, ...args) {
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
// May need a slight amount of cleanup on escaping `'`s.
|
|
188
|
-
console.info(`this.memoize('${coin}', '${method}',\n JSON.parse('${JSON.stringify(args)}'),\n JSON.parse('${JSON.stringify(result)}'))`);
|
|
189
|
-
}
|
|
190
|
-
return result;
|
|
191
|
-
}
|
|
192
|
-
catch (e) {
|
|
193
|
-
console.error(e);
|
|
194
|
-
return {
|
|
195
|
-
success: false,
|
|
196
|
-
payload: { error: String(e) },
|
|
197
|
-
coin,
|
|
198
|
-
method,
|
|
199
|
-
};
|
|
119
|
+
async call(coin, method, ...args) {
|
|
120
|
+
this.emit(`ledger.${coin}.${method}.call`, core.makeEvent({
|
|
121
|
+
message_type: method,
|
|
122
|
+
from_wallet: false,
|
|
123
|
+
message: {},
|
|
124
|
+
}));
|
|
125
|
+
try {
|
|
126
|
+
const transport = await getLedgerTransport();
|
|
127
|
+
const methodInstance = await translateCoinAndMethod(transport, coin, method);
|
|
128
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
129
|
+
// @ts-ignore ts is drunk, stop pls
|
|
130
|
+
const response = await callsQueue.add(() => methodInstance(...args));
|
|
131
|
+
await transport.close();
|
|
132
|
+
const result = {
|
|
133
|
+
success: true,
|
|
134
|
+
payload: response,
|
|
135
|
+
coin,
|
|
136
|
+
method,
|
|
137
|
+
};
|
|
138
|
+
if (RECORD_CONFORMANCE_MOCKS) {
|
|
139
|
+
// May need a slight amount of cleanup on escaping `'`s.
|
|
140
|
+
console.info(`this.memoize('${coin}', '${method}',\n JSON.parse('${JSON.stringify(args)}'),\n JSON.parse('${JSON.stringify(result)}'))`);
|
|
200
141
|
}
|
|
201
|
-
|
|
142
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
143
|
+
// @ts-ignore ts is drunk, stop pls
|
|
144
|
+
return result;
|
|
145
|
+
}
|
|
146
|
+
catch (e) {
|
|
147
|
+
console.error(e);
|
|
148
|
+
return {
|
|
149
|
+
success: false,
|
|
150
|
+
payload: { error: String(e) },
|
|
151
|
+
coin,
|
|
152
|
+
method,
|
|
153
|
+
};
|
|
154
|
+
}
|
|
202
155
|
}
|
|
203
156
|
}
|
|
204
|
-
exports.LedgerWebUsbTransport = LedgerWebUsbTransport;
|
|
205
157
|
//# 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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shapeshiftoss/hdwallet-ledger-webusb",
|
|
3
|
-
"version": "1.55.
|
|
3
|
+
"version": "1.55.3",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -20,8 +20,8 @@
|
|
|
20
20
|
"@ledgerhq/hw-transport-webusb": "^6.7.0",
|
|
21
21
|
"@ledgerhq/live-common": "^21.8.2",
|
|
22
22
|
"@ledgerhq/logs": "^6.10.1",
|
|
23
|
-
"@shapeshiftoss/hdwallet-core": "1.55.
|
|
24
|
-
"@shapeshiftoss/hdwallet-ledger": "1.55.
|
|
23
|
+
"@shapeshiftoss/hdwallet-core": "1.55.3",
|
|
24
|
+
"@shapeshiftoss/hdwallet-ledger": "1.55.3",
|
|
25
25
|
"@types/w3c-web-usb": "^1.0.4",
|
|
26
26
|
"p-queue": "^7.4.1"
|
|
27
27
|
},
|
|
@@ -29,5 +29,5 @@
|
|
|
29
29
|
"@types/ledgerhq__hw-transport": "^4.21.3",
|
|
30
30
|
"@types/w3c-web-usb": "^1.0.6"
|
|
31
31
|
},
|
|
32
|
-
"gitHead": "
|
|
32
|
+
"gitHead": "139e31e9d61b2d8d63488101c6227a50f4fad061"
|
|
33
33
|
}
|