https://github.com/ergoplatform/ledger-app-ergo
ERGO Ledger Nano S, S+ & X application
https://github.com/ergoplatform/ledger-app-ergo
Last synced: 7 days ago
JSON representation
ERGO Ledger Nano S, S+ & X application
- Host: GitHub
- URL: https://github.com/ergoplatform/ledger-app-ergo
- Owner: ergoplatform
- License: apache-2.0
- Created: 2021-07-19T18:50:15.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2025-04-04T12:33:31.000Z (about 1 month ago)
- Last Synced: 2025-04-04T13:21:31.623Z (about 1 month ago)
- Language: C
- Homepage:
- Size: 755 KB
- Stars: 22
- Watchers: 5
- Forks: 8
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome-ergo - Ledger App for Ergo (Tesseract Fork) - maintained fork of the Ledger app, often incorporating newer features or fixes. [`C`] *(Active)* (⛏️ Mining <a id="mining"></a> / 🔐 Hardware Wallet Support <a id="hardware-wallet-support"></a>)
README
# Ledger Ergo Application
This is a Ergo application for the Ledger Nano S+/X/Stax/Flex.
## Prerequisite
Be sure to have your environment correctly set up (see [Getting Started](https://developers.ledger.com/docs/nano-app/introduction/)) and [ledgerblue](https://pypi.org/project/ledgerblue/) and installed.
If you want to benefit from [vscode](https://code.visualstudio.com/) 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/bolos-sdk/nanosplus-secure-sdk
```## Compilation
```
make DEBUG=1 # compile optionally with PRINTF
make load # load the app on the Nano using ledgerblue
```## Documentation
API documentation can be found in the [doc](doc/README.md) folder.
Ledger app developer documentation which can be generated with [doxygen](https://www.doxygen.nl)
```
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](https://github.com/features/actions) is the following:
- Code formatting with [clang-format](http://clang.llvm.org/docs/ClangFormat.html)
- Compilation of the application for Ledger Nano S+ in [ledger-app-builder](https://github.com/LedgerHQ/ledger-app-builder)
- Unit tests of C functions with [cmocka](https://cmocka.org/) (see [unit-tests/](unit-tests/))
- End-to-end tests with [Speculos](https://github.com/LedgerHQ/speculos) emulator (see [tests/](tests/))
- Code coverage with [gcov](https://gcc.gnu.org/onlinedocs/gcc/Gcov.html)/[lcov](http://ltp.sourceforge.net/coverage/lcov.php) and upload to [codecov.io](https://about.codecov.io)
- Documentation generation with [doxygen](https://www.doxygen.nl)It outputs 4 artifacts:
- `ergo-app-debug` within output files of the compilation process in debug mode
- `speculos-log` within APDU command/response when executing end-to-end tests
- `code-coverage` within HTML details of code coverage
- `documentation` within HTML auto-generated documentation