Socket
Socket
Sign inDemoInstall

@ledgerhq/hw-transport-webusb

Package Overview
Dependencies
Maintainers
11
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.61.0 to 4.62.0

14

package.json
{
"name": "@ledgerhq/hw-transport-webusb",
"version": "4.61.0",
"version": "4.62.0",
"description": "Ledger Hardware Wallet WebUSB implementation of the communication layer",

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

"dependencies": {
"@ledgerhq/devices": "^4.61.0",
"@ledgerhq/errors": "^4.61.0",
"@ledgerhq/hw-transport": "^4.61.0",
"@ledgerhq/logs": "^4.61.0"
"@ledgerhq/devices": "^4.62.0",
"@ledgerhq/errors": "^4.62.0",
"@ledgerhq/hw-transport": "^4.62.0",
"@ledgerhq/logs": "^4.62.0"
},
"devDependencies": {
"flow-bin": "^0.100.0"
"flow-bin": "^0.101.0"
},

@@ -43,3 +43,3 @@ "scripts": {

},
"gitHead": "bc020f847a15d1d82ff006d03545c907291be8b2"
"gitHead": "a378877d4f7b86f29b5a640e5c03bd12f2beb07d"
}

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

Important: The transport functions `create()` and `listen()` must be in the context of an user interaction (like a **"click"** event), otherwise it will fails with DOM Exception.
### FAQ: "DOM Exception" is triggered when creating the transport
The transport functions `create()` and `listen()` must be called in the context of an user interaction (like a **"click"** event), otherwise it fails with DOM Exception. This is by WebUSB design. You also must run on HTTPS.
### How to use this transport regarding WebUSB paradigm?
In WebUSB, we have a "permission native" modal that appears when we need to "request" a device. This is required at-least-once for the user to accept, and then we can open the transport without triggering this modal. However, in both cases, it must happen in context of a click like explain above. Our current implementation tradeoff is to abstract this out and only trigger the permission modal if no device are listed. This might change in the future.
In term of UX, there are two classical usecases:
1. you only need the device at key times, like once to get the address. once to sign a transaction,...
2. your app lifecycle requires that you need to access the device at the beginning and/or at any time (like you want to ping with getAddress to get the wallet address)
in (1) case, you can just do your logic in each button (Get Address / Sign Transaction) time (create it, do the logic, close it).
in (2) case, you will need to have a Connect button that appear when you don’t have the connection yet. and you need to hook to the “disconnect” event to potentially make the UI reflect that and require user to click again on that Connect button, because you can’t automatically `create()`/`open()` again.
### Support status
WebUSB is currently only supported on Google Chrome / Chromium.
- In Linux, user need to install the [specific udev rules](https://raw.githubusercontent.com/LedgerHQ/udev-rules/master/add_udev_rules.sh)
- In Mac, it should work.
- In Windows, [WebUSB does not work out of the box](https://github.com/WICG/webusb/issues/143) but you can fix it with [Zadig](https://zadig.akeo.ie/).
- In Android Chrome it works.
## API

@@ -16,0 +39,0 @@

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