 
  
  
  
    Ethereum wallet application for Ledger Blue, Nano S, Nano S Plus and Nano X
    
    « Explore the docs »
    
    
    Report Bug
    · Request Feature
    · Request New Network
  
Table of Contents
Ethereum wallet application framework for Nano S, Nano S Plus and Nano X.
Ledger Blue is not maintained anymore, but the app can still be compiled for this target using the branch blue-final-release.
This app follows the specification available in the doc/ folder.
To compile it and load it on a device, please check out our developer portal.
We have the concept of plugins in the ETH app.
Find the documentations here:
- Blog Ethereum plugins
- Ethereum application Plugins : Technical Specifications
- Plugin guide
- Boilerplate plugin
Testing is done via the open-source framework zemu.
- 
Add your BOLOS SDKs path to: - NANOS_SDKand- NANOX_SDK
 
- 
Go to the testsfolder and run./build_local_test_elfs.sh- 
cd tests # This helper script will build the applications required by the test suite and move them at the right place. yarn install ./build_local_test_elfs.sh 
 
- 
- Then you can install and run tests by simply running on the rootof the repo:- 
make test
- This will run make install_testsandmake run_tests
 
- 
- Go to the testsfolder and run:- 
yarn test
 
- 
- Go to the testsfolder and run:- 
yarn jest --runInBand --detectOpenHandles {YourTestFile}
 
- 
- For example with the send test:- 
yarn jest --runInBand --detectOpenHandles src/send.test.js 
 
- 
To add tests, copy one of the already existing test files in tests/src/.
You then need to adapt the buffer and tx variables to adapt to the APDU you wish to send.
- Adapt the expected screen flow. Please create a folder under tests/snapshotswith the name of the test you're performing.
- Then adapt the ORIGINAL_SNAPSHOT_PATH_PREFIXwith the name of the folder you just created.
- To create the snapshots, modify the SNAPSHOT_PATH_PREFIXand set it to be equal toORIGINAL_SNAPSHOT_PATH_PREFIX.
- Run the tests once, this will create all the snapshots in the folder you created.
- Put back your SNAPSHOT_PATH_PREFIXtosnapshots/tmp/.
Finally make sure you adapt the expected signature!
Don't forget to update the binaries in the test folder. To do so, compile with those environement variables:
make DEBUG=1 ALLOW_DATA=1Then copy the binary to the tests/elfs folder (in this case, compiled with SDK for nanoS):
cp bin/app.elf tests/elfs/ethereum_nanos.elfRepeat the operation for a binary compiled with nanoX SDK and change for ethereum_nanox.elf.
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag enhancement.
- Fork the Project
- Create your Feature Branch (git checkout -b feature/my-feature)
- Commit your Changes (git commit -m 'feat: my new feature)
- Push to the Branch (git push origin feature/my-feature)
- Open a Pull Request
Please try to follow Conventional Commits.