Be sure to have your environment correctly set up (see Getting Started) and ledgerblue installed.
If you want to benefit from vscode integration, it's recommended to move the toolchain in /opt
and set BOLOS_ENV
environment variable as follows
BOLOS_ENV=/opt/bolos-devenv
and do the same with BOLOS_SDK
environment variable
BOLOS_SDK=/opt/nanos-secure-sdk
make DEBUG=1 # compile optionally with PRINTF
make load # load the app on the Nano using ledgerblue
High level documentation on the architecture and interface of the app:
- bitcoin.md: specifications of application commands.
- wallet.md: supported wallet signing policies.
- merkle.md: rationale and specifications for the usage of Merkle trees.
Additional documentation can be generated with doxygen
doxygen .doxygen/Doxyfile
the process outputs HTML and LaTeX documentations in doc/html
and doc/latex
folders.
A Python client library and a TypeScript client library are available in this repository.
The flow processed in GitHub Actions is the following:
- Code formatting with clang-format
- Compilation of the application for Ledger Nano S in ledger-app-builder
- Unit tests of C functions with cmocka (see unit-tests/)
- End-to-end tests with Speculos emulator (see tests/)
- Code coverage with gcov/lcov and upload to codecov.io
- Documentation generation with doxygen
It outputs 4 artifacts:
bitcoin-app-debug
within output files of the compilation process in debug modecode-coverage
within HTML details of code coveragedocumentation
within HTML auto-generated documentation