A library for interacting with hardware wallets from JS/TS. Supports KeepKey, Trezor, and Ledger. Intended for use in web apps, chrome apps/extensions, and electron/node apps.
After setting up a Keyring, and plugging various transport adapters into it, the next step is to pair a device:
let wallet =awaitkeepkeyAdapter.pairDevice();wallet.getLabel().then((result) => {console.log(result);});
Building
It is expected that this take quite some time (around 10 minutes), due to the large size of the compiled KeepKey protobuf encoder/decoder.
yarncleanyarnyarnbuild
Developing
To compile and watch the browser bundle, run:
yarndev:sandbox
This will launch an ssl webserver that runs at https://localhost:1234, with a small demo app that shows how to use various HDWallet functionality.
We use Zeit Now for continuous deployment of this sandbox app. On pull requests, the builder will publish a new version of that app with the changes included (for example #68). Try out the latest build here: https://hdwallet.shapeshift.now.sh/
Tests
yarnyarnbuildyarntest
The integration tests have been set up to run either against a physical KeepKey with debug firmware on it, or in CI pointed at a dockerized version of the emulator. Trezor and Ledger tests run against mocks of their respective transport layers.