Socket
Socket
Sign inDemoInstall

@ledgerhq/hw-transport-webusb

Package Overview
Dependencies
Maintainers
12
Versions
288
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@ledgerhq/hw-transport-webusb - npm Package Compare versions

Comparing version 4.70.3 to 4.71.0

50

lib/TransportWebUSB.js

@@ -36,3 +36,2 @@ "use strict";

var configurationValue = 1;
var interfaceNumber = 2;
var endpointNumber = 3;

@@ -51,3 +50,3 @@

function TransportWebUSB(device) {
function TransportWebUSB(device, interfaceNumber) {
_classCallCheck(this, TransportWebUSB);

@@ -60,2 +59,3 @@

_this.device = device;
_this.interfaceNumber = interfaceNumber;
_this.deviceModel = (0, _devices.identifyUSBProductId)(device.productId);

@@ -101,3 +101,3 @@ return _this;

_context.next = 4;
return this.device.releaseInterface(interfaceNumber);
return this.device.releaseInterface(this.interfaceNumber);

@@ -224,3 +224,3 @@ case 4:

var _ref4 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4(device) {
var transport, onDisconnect;
var iface, interfaceNumber, transport, onDisconnect;
return regeneratorRuntime.wrap(function _callee4$(_context4) {

@@ -247,21 +247,37 @@ while (1) {

case 7:
_context4.prev = 7;
_context4.next = 10;
iface = device.configurations[0].interfaces.find(function (_ref5) {
var alternates = _ref5.alternates;
return alternates.some(function (a) {
return a.interfaceClass === 255;
});
});
if (iface) {
_context4.next = 10;
break;
}
throw new _errors.TransportInterfaceNotAvailable("No WebUSB interface found for your Ledger device. Please upgrade firmware or contact techsupport.");
case 10:
interfaceNumber = iface.interfaceNumber;
_context4.prev = 11;
_context4.next = 14;
return device.claimInterface(interfaceNumber);
case 10:
_context4.next = 17;
case 14:
_context4.next = 21;
break;
case 12:
_context4.prev = 12;
_context4.t0 = _context4["catch"](7);
_context4.next = 16;
case 16:
_context4.prev = 16;
_context4.t0 = _context4["catch"](11);
_context4.next = 20;
return device.close();
case 16:
case 20:
throw new _errors.TransportInterfaceNotAvailable(_context4.t0.message);
case 17:
transport = new TransportWebUSB(device);
case 21:
transport = new TransportWebUSB(device, interfaceNumber);

@@ -281,3 +297,3 @@ onDisconnect = function onDisconnect(e) {

case 21:
case 25:
case "end":

@@ -287,3 +303,3 @@ return _context4.stop();

}
}, _callee4, this, [[7, 12]]);
}, _callee4, this, [[11, 16]]);
}));

@@ -290,0 +306,0 @@

{
"name": "@ledgerhq/hw-transport-webusb",
"version": "4.70.3",
"version": "4.71.0",
"description": "Ledger Hardware Wallet WebUSB implementation of the communication layer",

@@ -27,5 +27,5 @@ "keywords": [

"dependencies": {
"@ledgerhq/devices": "^4.70.3",
"@ledgerhq/errors": "^4.70.3",
"@ledgerhq/hw-transport": "^4.70.3",
"@ledgerhq/devices": "^4.71.0",
"@ledgerhq/errors": "^4.71.0",
"@ledgerhq/hw-transport": "^4.71.0",
"@ledgerhq/logs": "^4.70.0"

@@ -43,3 +43,3 @@ },

},
"gitHead": "d636a666ed8e61d1704a7e957fbf5276c100334c"
"gitHead": "2cbdd987d71668ee93ad14f2d19b205423defa60"
}

@@ -67,2 +67,3 @@ <img src="https://user-images.githubusercontent.com/211411/34776833-6f1ef4da-f618-11e7-8b13-f0697901d6a8.png" height="100" />

- `device` **USBDevice**
- `interfaceNumber` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)**

@@ -69,0 +70,0 @@ #### Examples

@@ -27,3 +27,2 @@ //@flow

const configurationValue = 1;
const interfaceNumber = 2;
const endpointNumber = 3;

@@ -43,6 +42,8 @@

packetSize = 64;
interfaceNumber: number;
constructor(device: USBDevice) {
constructor(device: USBDevice, interfaceNumber: number) {
super();
this.device = device;
this.interfaceNumber = interfaceNumber;
this.deviceModel = identifyUSBProductId(device.productId);

@@ -123,2 +124,11 @@ }

await device.reset();
const iface = device.configurations[0].interfaces.find(({ alternates }) =>
alternates.some(a => a.interfaceClass === 255)
);
if (!iface) {
throw new TransportInterfaceNotAvailable(
"No WebUSB interface found for your Ledger device. Please upgrade firmware or contact techsupport."
);
}
const interfaceNumber = iface.interfaceNumber;
try {

@@ -130,3 +140,3 @@ await device.claimInterface(interfaceNumber);

}
const transport = new TransportWebUSB(device);
const transport = new TransportWebUSB(device, interfaceNumber);
const onDisconnect = e => {

@@ -156,3 +166,3 @@ if (device === e.device) {

await this.exchangeBusyPromise;
await this.device.releaseInterface(interfaceNumber);
await this.device.releaseInterface(this.interfaceNumber);
await this.device.reset();

@@ -159,0 +169,0 @@ await this.device.close();

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc