Ledger Hardware Wallet WebHID implementation of the communication layer
npm install @ledgerhq/hw-transport-webhid
GitHub,
Ledger Devs Discord,
Developer Portal
Allows to communicate with Ledger Hardware Wallets.
\[Web] (WebHID) – WebHID check browser support.
*
You may be using this package to open a USB connection between your web application and the device.
For a smooth and quick integration:
* See the developers’ documentation on the Developer Portal and
* Go on Discord to chat with developer support and the developer community.
*
The transport functions create() and listen() must be called in the context of a user interaction (like a "click" event), otherwise it fails with DOM Exception. This is by WebUSB design. You also must run on HTTPS.
Please check @ledgerhq/hw-transport-webusb documentation because it is very similar paradigm.
WebUSB is currently only supported on Google Chrome / Chromium DEV version and by explicitly enabling chrome://flags/#enable-experimental-web-platform-features
#### Table of Contents
* TransportWebHID
* Parameters
* Examples
* close
* exchange
* Parameters
* isSupported
* list
* listen
* Parameters
* request
* openConnected
* open
* Parameters
Extends Transport
WebHID Transport implementation
#### Parameters
* device HIDDevice
#### Examples
``javascript`
import TransportWebHID from "@ledgerhq/hw-transport-webhid";
...
TransportWebHID.create().then(transport => ...)
#### close
Release the transport device
Returns Promise\
#### exchange
Exchange with the device using APDU protocol.
##### Parameters
* apdu Buffer
Returns Promise<Buffer> a promise of apdu response
#### isSupported
Check if WebUSB transport is supported.
#### list
List the WebUSB devices that was previously authorized by the user.
#### listen
Actively listen to WebUSB devices and emit ONE device
that was either accepted before, if not it will trigger the native permission UI.
Important: it must be called in the context of a UI click!
##### Parameters
* observer Observer\
Returns Subscription
#### request
Similar to create() except it will always display the device permission (even if some devices are already accepted).
#### openConnected
Similar to create() except it will never display the device permission (it returns a Promise\, null if it fails to find a device).
#### open
Create a Ledger transport with a HIDDevice
##### Parameters
* device` HIDDevice