This is a Ledger devices wallet app for Waves Enterprise.
This application uses the official libraries ledger-nanos-sdk and ledger-nanos-ui.
This project will try to build nanos-secure-sdk, so you will need:
- A standard ARM gcc (
sudo apt-get install gcc-arm-none-eabi binutils-arm-none-eabi
) - Cross compilation headers (
sudo apt-get install gcc-multilib
) - Python3 (
sudo apt-get install python3
) - Pip3 (
sudo apt-get install python3-pip
)
- install Clang
- install an ARM GCC toolchain
- Python
Other things you will need:
- Cargo-ledger
- Speculos (make sure you add speculos.py to your PATH by running
export PATH=/path/to/speculos:$PATH
) - The correct target for rustc:
rustup target add thumbv6m-none-eabi
You can build on either Windows or Linux with a simple cargo build-nanos
.
It currently builds on stable.
You can use cargo-ledger which builds, outputs a hex
file and a manifest file for ledgerctl
, and loads it on a device in a single cargo ledger nanos --load
command in your app directory.
Some options of the manifest file can be configured directly in Cargo.toml
under a custom section:
[package.metadata.nanos]
curve = "secp256k1"
flags = "0x40"
icon = "btc.gif"
icon_small = ""
path = ""
One can for example use speculos
cargo run-nanos
defaults to running speculos on the generated binary with the appropriate flags, if speculos.py
is in your PATH
.
There is a test script that sends some of the available commands in test/test_cmds.py
. For the script to work correctly, you must install the python dependencies with the command pip3 install -r test/requirements.txt
.
There are also raw APDUs that can be used with ledgerctl
.
To run unit tests, use the cargo test-nanos
command.