Detalhes do pacote

@ledgerhq/hw-transport-node-speculos

LedgerHQ2.2kApache-2.06.29.7

Ledger Hardware Wallet communication layer with speculos Nano simulator

Ledger, LedgerWallet, proxy, http

readme (leia-me)

@ledgerhq/hw-transport-node-speculos

A transport for https://github.com/LedgerHQ/speculos Nano simulator.

GitHub, Ledger Devs Discord, Developer Portal

Getting started

import SpeculosTransport from "@ledgerhq/hw-transport-node-speculos";

const apduPort = 40000;

async function exampleSimple() {
  const transport = await SpeculosTransport.open({ apduPort });
  const res = await transport.send(0xE0, 0x01, 0x00, 0x00);
}

async function exampleAdvanced() {
  const transport = await SpeculosTransport.open({ apduPort });
  setTimeout(() => {
    // in 1s i'll click on right button and release
    transport.button("Rr");
  }, 1000); // 1s is a tradeoff here. In future, we need to be able to "await & expect a text" but that will need a feature from speculos to notify us when text changes.
  // derivate btc address and ask for device verification
  const res = await transport.send(0xE0, 0x40, 0x01, 0x00, Buffer.from("058000002c8000000080000000000000000000000f"));
}

With ledger-live CLI

It's working with SPECULOS_APDU_PORT and SPECULOS_HOST envs.

SPECULOS_APDU_PORT=40000 ledger-live sync -c btc

# starts an http proxy with speculos (http proxy that works with LLD and LLM)
SPECULOS_APDU_PORT=40000 ledger-live proxy

To make it work with Docker, I had to expose some port and do this:

docker run -it -p 40000:40000 -v "$(pwd)"/apps:/speculos/apps speculos /bin/bash

$ pipenv shell
$ ./speculos.py -m nanos ./apps/btc.elf --sdk 1.6 --seed "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about" --display headless --apdu-port 40000

API

Table of Contents

SpeculosTransportOpts

Type: {apduPort: number, buttonPort: number?, automationPort: number?, host: string?}

Properties

SpeculosTransport

Extends Transport

Speculos TCP transport implementation

Parameters

Examples

import SpeculosTransport from "@ledgerhq/hw-transport-node-speculos";
const transport = await SpeculosTransport.open({ apduPort });
const res = await transport.send(0xE0, 0x01, 0, 0);

button

Send a speculos button command typically "Ll" would press and release the left button typically "Rr" would press and release the right button

Parameters
  • command any

Returns Promise\<void>

open

Parameters

Returns Promise<SpeculosTransport>

changelog (log de mudanças)

@ledgerhq/hw-transport-node-speculos

6.29.7

Patch Changes

  • Updated dependencies [b5e3217]:
    • @ledgerhq/errors@6.22.0
    • @ledgerhq/hw-transport@6.31.7

6.29.7-next.0

Patch Changes

  • Updated dependencies [b5e3217]:
    • @ledgerhq/errors@6.22.0-next.0
    • @ledgerhq/hw-transport@6.31.7-next.0

6.29.6

Patch Changes

  • Updated dependencies [ebbbd47, f29e4ba]:
    • @ledgerhq/logs@6.13.0
    • @ledgerhq/hw-transport@6.31.6

6.29.6-next.1

Patch Changes

  • Updated dependencies [ebbbd47]:
    • @ledgerhq/logs@6.13.0-next.1
    • @ledgerhq/hw-transport@6.31.6-next.1

6.29.6-next.0

Patch Changes

  • Updated dependencies [f29e4ba]:
    • @ledgerhq/logs@6.13.0-next.0
    • @ledgerhq/hw-transport@6.31.6-next.0

6.29.5

Patch Changes

  • Updated dependencies [107f35a, 9081c26]:
    • @ledgerhq/errors@6.21.0
    • @ledgerhq/hw-transport@6.31.5

6.29.5-next.0

Patch Changes

  • Updated dependencies [107f35a, 9081c26]:
    • @ledgerhq/errors@6.21.0-next.0
    • @ledgerhq/hw-transport@6.31.5-next.0

6.29.4

Patch Changes

  • Updated dependencies [0a71c43]:
    • @ledgerhq/errors@6.19.1
    • @ledgerhq/hw-transport@6.31.4

6.29.4-next.0

Patch Changes

  • Updated dependencies [0a71c43]:
    • @ledgerhq/errors@6.19.1-next.0
    • @ledgerhq/hw-transport@6.31.4-next.0

6.29.3

Patch Changes

  • Updated dependencies [5c738cb, fb9466a, a3fd728]:
    • @ledgerhq/errors@6.19.0
    • @ledgerhq/hw-transport@6.31.3

6.29.3-next.0

Patch Changes

  • Updated dependencies [5c738cb, fb9466a, a3fd728]:
    • @ledgerhq/errors@6.19.0-next.0
    • @ledgerhq/hw-transport@6.31.3-next.0

6.29.2

Patch Changes

  • Updated dependencies []:
    • @ledgerhq/hw-transport@6.31.2

6.29.2-hotfix.0

Patch Changes

  • Updated dependencies []:
    • @ledgerhq/hw-transport@6.31.2-hotfix.0

6.29.1

Patch Changes

  • Updated dependencies [e78f3b7, f979216, c1d2bb0]:
    • @ledgerhq/errors@6.18.0
    • @ledgerhq/hw-transport@6.31.1

6.29.1-next.0

Patch Changes

  • Updated dependencies [e78f3b7, f979216, c1d2bb0]:
    • @ledgerhq/errors@6.18.0-next.0
    • @ledgerhq/hw-transport@6.31.1-next.0

6.29.0

Minor Changes

Patch Changes

  • Updated dependencies [77fa530, 815ae3d, cec1599]:
    • @ledgerhq/hw-transport@6.31.0
    • @ledgerhq/errors@6.17.0

6.29.0-next.0

Minor Changes

Patch Changes

  • Updated dependencies [77fa530, 815ae3d, cec1599]:
    • @ledgerhq/hw-transport@6.31.0-next.0
    • @ledgerhq/errors@6.17.0-next.0

6.28.6

Patch Changes

  • Updated dependencies [fc4f83e, dd1d17f, 26b3a5d]:
    • @ledgerhq/errors@6.16.4
    • @ledgerhq/hw-transport@6.30.6

6.28.6-next.0

Patch Changes

  • Updated dependencies [fc4f83e, dd1d17f, 26b3a5d]:
    • @ledgerhq/errors@6.16.4-next.0
    • @ledgerhq/hw-transport@6.30.6-next.0

6.28.5

Patch Changes

  • Updated dependencies [f456d69]:
    • @ledgerhq/errors@6.16.3
    • @ledgerhq/hw-transport@6.30.5

6.28.5-next.0

Patch Changes

  • Updated dependencies [f456d69]:
    • @ledgerhq/errors@6.16.3-next.0
    • @ledgerhq/hw-transport@6.30.5-next.0

6.28.4

Patch Changes

  • Updated dependencies [ee88785]:
    • @ledgerhq/errors@6.16.2
    • @ledgerhq/hw-transport@6.30.4

6.28.4-next.0

Patch Changes

  • Updated dependencies [f456d69]:
    • @ledgerhq/errors@6.16.2-next.0
    • @ledgerhq/hw-transport@6.30.4-next.0

6.28.3

Patch Changes

  • Updated dependencies [eadebff]:
    • @ledgerhq/hw-transport@6.30.3

6.28.3-next.0

Patch Changes

  • Updated dependencies [eadebff]:
    • @ledgerhq/hw-transport@6.30.3-next.0

6.28.2

Patch Changes

  • Updated dependencies [16b4d7a]:
    • @ledgerhq/hw-transport@6.30.2

6.28.2-next.0

Patch Changes

  • Updated dependencies [16b4d7a]:
    • @ledgerhq/hw-transport@6.30.2-next.0

6.28.1

Patch Changes

  • Updated dependencies [52a3732, 4d1aade]:
    • @ledgerhq/hw-transport@6.30.1
    • @ledgerhq/errors@6.16.1

6.28.1-next.0

Patch Changes

  • Updated dependencies [52a3732, 4d1aade]:
    • @ledgerhq/hw-transport@6.30.1-next.0
    • @ledgerhq/errors@6.16.1-next.0

6.28.0

Minor Changes

Patch Changes

6.28.0-next.0

Minor Changes

Patch Changes

6.27.20

Patch Changes

6.27.20-next.0

Patch Changes

6.27.19

Patch Changes

  • Updated dependencies [a61a43fc47, 3455944496]:
    • @ledgerhq/errors@6.14.0
    • @ledgerhq/hw-transport@6.28.8

6.27.19-next.0

Patch Changes

  • Updated dependencies [a61a43fc47, 3455944496]:
    • @ledgerhq/errors@6.14.0-next.0
    • @ledgerhq/hw-transport@6.28.8-next.0

6.27.18

Patch Changes

  • Updated dependencies [c7c484acf0]:
    • @ledgerhq/errors@6.13.1
    • @ledgerhq/hw-transport@6.28.7

6.27.18-next.0

Patch Changes

  • Updated dependencies [c7c484acf0]:
    • @ledgerhq/errors@6.13.1-next.0
    • @ledgerhq/hw-transport@6.28.7-next.0

6.27.17

Patch Changes

  • Updated dependencies [0f4293e9bf]:
    • @ledgerhq/errors@6.13.0
    • @ledgerhq/hw-transport@6.28.6

6.27.17-next.0

Patch Changes

  • Updated dependencies [0f4293e9bf]:
    • @ledgerhq/errors@6.13.0-next.0
    • @ledgerhq/hw-transport@6.28.6-next.0

6.27.16

Patch Changes

  • Updated dependencies [9adc1862dd]:
    • @ledgerhq/errors@6.12.7
    • @ledgerhq/hw-transport@6.28.5

6.27.16-next.0

Patch Changes

  • Updated dependencies [9adc1862dd]:
    • @ledgerhq/errors@6.12.7-next.0
    • @ledgerhq/hw-transport@6.28.5-next.0

6.27.15

Patch Changes

  • Updated dependencies [77f990e207]:
    • @ledgerhq/errors@6.12.6
    • @ledgerhq/hw-transport@6.28.4

6.27.15-next.0

Patch Changes

  • Updated dependencies [77f990e207]:
    • @ledgerhq/errors@6.12.6-next.0
    • @ledgerhq/hw-transport@6.28.4-next.0

6.27.14

Patch Changes

  • Updated dependencies [87d2349fd8]:
    • @ledgerhq/errors@6.12.5
    • @ledgerhq/hw-transport@6.28.3

6.27.14-next.0

Patch Changes

  • Updated dependencies [87d2349fd8]:
    • @ledgerhq/errors@6.12.5-next.0
    • @ledgerhq/hw-transport@6.28.3-next.0

6.27.13

Patch Changes

6.27.13-next.0

Patch Changes

6.27.12

Patch Changes

  • Updated dependencies []:
    • @ledgerhq/hw-transport@6.28.1

6.27.12-next.0

Patch Changes

  • Updated dependencies []:
    • @ledgerhq/hw-transport@6.28.1-next.0

6.27.11

Patch Changes

  • Updated dependencies [c2779b1cab]:
    • @ledgerhq/hw-transport@6.28.0

6.27.11-next.0

Patch Changes

  • Updated dependencies [c2779b1cab]:
    • @ledgerhq/hw-transport@6.28.0-next.0

6.27.10

Patch Changes

  • Updated dependencies [3df451dafb, 20c5c5e109]:
    • @ledgerhq/errors@6.12.3
    • @ledgerhq/hw-transport@6.27.10

6.27.10-next.0

Patch Changes

  • Updated dependencies [3df451dafb, 20c5c5e109]:
    • @ledgerhq/errors@6.12.3-next.0
    • @ledgerhq/hw-transport@6.27.10-next.0

6.27.9

Patch Changes

  • Updated dependencies [f1c15446da]:
    • @ledgerhq/errors@6.12.2
    • @ledgerhq/hw-transport@6.27.9

6.27.9-next.0

Patch Changes

  • Updated dependencies [f1c15446da]:
    • @ledgerhq/errors@6.12.2-next.0
    • @ledgerhq/hw-transport@6.27.9-next.0

6.27.8

Patch Changes

  • Updated dependencies [856f49374e, 77056e3692]:
    • @ledgerhq/errors@6.12.1
    • @ledgerhq/hw-transport@6.27.8

6.27.8-next.0

Patch Changes

  • Updated dependencies [856f49374e, 77056e3692]:
    • @ledgerhq/errors@6.12.1-next.0
    • @ledgerhq/hw-transport@6.27.8-next.0

6.27.7

Patch Changes

6.27.7-next.0

Patch Changes

6.27.6

Patch Changes

6.27.6-next.0

Patch Changes

  • #1356 ecac411d7a Thanks @juan-cortes! - Updated readme.md of packages

  • Updated dependencies [ecac411d7a]:

    • @ledgerhq/errors@6.11.1-next.0
    • @ledgerhq/hw-transport@6.27.6-next.0
    • @ledgerhq/logs@6.10.1-next.0

6.27.5

Patch Changes

  • Updated dependencies [1a94cbf28a]:
    • @ledgerhq/errors@6.11.0
    • @ledgerhq/hw-transport@6.27.5

6.27.5-next.0

Patch Changes

  • Updated dependencies [1a94cbf28a]:
    • @ledgerhq/errors@6.11.0-next.0
    • @ledgerhq/hw-transport@6.27.5-next.0

6.27.4

Patch Changes

  • Updated dependencies [ae5e33e15e]:
    • @ledgerhq/errors@6.10.2
    • @ledgerhq/hw-transport@6.27.4

6.27.4-next.0

Patch Changes

  • Updated dependencies [ae5e33e15]:
    • @ledgerhq/errors@6.10.2-next.0
    • @ledgerhq/hw-transport@6.27.4-next.0

6.27.3

Patch Changes

  • Updated dependencies [ecfdd1ebd8]:
    • @ledgerhq/hw-transport@6.27.3

6.27.3-next.0

Patch Changes

  • Updated dependencies [ecfdd1ebd]:
    • @ledgerhq/hw-transport@6.27.3-next.0

6.27.2

Patch Changes

  • Updated dependencies [203b927b4]:
    • @ledgerhq/errors@6.10.1
    • @ledgerhq/hw-transport@6.27.2

6.27.2-next.0

Patch Changes

  • Updated dependencies [203b927b4]:
    • @ledgerhq/errors@6.10.1-next.0
    • @ledgerhq/hw-transport@6.27.2-next.0