NEO3 Application
This is the NEO3 ledger application for the Nano S/X. It is based on Ledgers Boilerplate app.
Prerequisite
You can follow Ledgers Getting Started guide to setup your environment to build and load the app onto your device. At the time of writing their setup documentation was found to be convoluted, outdated and at times missing steps. The setup environment document hopefully solves this.
BOLOS_ENV=/opt/bolos-devenv
and do the same with BOLOS_SDK
environment variable
BOLOS_SDK=/opt/nanos-secure-sdk
Compilation
make DEBUG=1 # compile optionally with PRINTF
make load # load the app on the Nano using ledgerblue
Documentation
High level documentation such as APDU, commands and transaction serialization are included in developer documentation which can be generated with doxygen
doxygen .doxygen/Doxyfile
the process outputs HTML and LaTeX documentations in doc/html
and doc/latex
folders.
Tests & Continuous Integration
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:
boilerplate-app-debug
within output files of the compilation process in debug modespeculos-log
within APDU command/response when executing end-to-end testscode-coverage
within HTML details of code coveragedocumentation
within HTML auto-generated documentation
Special thanks
A special thanks goes out to Edouard Merle of Ledger for answering support questions, follow up to bug reports and assisting in tracking down an issue