hw-transport-node-speculos-http
v6.27.17
Published
Ledger Hardware Wallet communication layer with speculos Nano simulator using the http api
Downloads
26
Maintainers
Readme
@ledgerhq/hw-transport-node-speculos-http
A transport for https://github.com/LedgerHQ/speculos Nano simulator using its HTTP API.
GitHub, Ledger Devs Discord, Developer Portal
Getting started
- Install https://github.com/LedgerHQ/speculos
- Make sure to have a speculos running with an API port (default port is 5000).
import SpeculosTransport from "@ledgerhq/hw-transport-node-speculos-http";
async function exampleSimple() {
const transport = await SpeculosTransport.open();
const res = await transport.send(0xE0, 0x01, 0x00, 0x00);
}
async function exampleAdvanced() {
const transport = await SpeculosTransport.open({ baseURL: "http://localhost:5000" });
transport.eventStream.once("data", {
// we will click right when the display changes
transport.button("right");
});
// we can also use eventStream.on and match the data buffer with the expected display before taking action
// derivate btc address and ask for device verification
const res = await transport.send(0xE0, 0x40, 0x01, 0x00, Buffer.from("058000002c8000000080000000000000000000000f"));
}
API
Table of Contents
SpeculosHttpTransport
Extends Transport
Speculos TCP transport implementation
Parameters
instance
AxiosInstanceopts
SpeculosHttpTransportOpts
Examples
import SpeculosHttpTransport from "@ledgerhq/hw-transport-node-speculos-http";
const transport = await SpeculosHttpTransport.open();
const res = await transport.send(0xE0, 0x01, 0, 0);
button
Press and release button buttons available: left, right, both
Parameters
but
any
Returns Promise<void>