Skip to content

jnicoulaud-ledger/app-ethereum

This branch is 996 commits behind LedgerHQ/app-ethereum:develop.

Folders and files

NameName
Last commit message
Last commit date
Nov 17, 2022
Nov 8, 2022
Jan 24, 2023
Nov 17, 2022
Jan 11, 2021
Nov 16, 2022
Feb 3, 2023
Feb 9, 2023
Feb 9, 2023
Feb 6, 2023
Feb 9, 2023
Jan 10, 2023
Jan 10, 2023
Nov 15, 2022
Dec 1, 2020
Jun 28, 2022
Jun 8, 2021
Feb 9, 2023
May 27, 2016
Feb 3, 2023
Mar 4, 2022

Repository files navigation


app-ethereum

Ethereum wallet application for Ledger Blue, Nano S and Nano X
« Explore the docs »

Report Bug · Request Feature · Request New Network


Table of Contents

About the project

Ethereum wallet application framework for Nano S 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.

Documentation

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.

Plugins

We have the concept of plugins in the ETH app.
Find the documentations here:

Testing

Testing is done via the open-source framework zemu.

Requirements

Build the applications required by the test suite

  1. Add your BOLOS SDKs path to:

    • NANOS_SDK and NANOX_SDK
  2. Go to the tests folder 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

Running all tests

With Makefile

  1. Then you can install and run tests by simply running on the root of the repo:
    •   make test
    • This will run make install_tests and make run_tests

With yarn

  1. Go to the tests folder and run:
    •   yarn test

Running a specific tests

  1. Go to the tests folder and run:
    •   yarn jest --runInBand --detectOpenHandles {YourTestFile}
  2. For example with the send test:
    •   yarn jest --runInBand --detectOpenHandles src/send.test.js

Adding tests

Zemu

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/snapshots with the name of the test you're performing.
  • Then adapt the ORIGINAL_SNAPSHOT_PATH_PREFIX with the name of the folder you just created.
  • To create the snapshots, modify the SNAPSHOT_PATH_PREFIX and set it to be equal to ORIGINAL_SNAPSHOT_PATH_PREFIX.
  • Run the tests once, this will create all the snapshots in the folder you created.
  • Put back your SNAPSHOT_PATH_PREFIX to snapshots/tmp/.

Finally make sure you adapt the expected signature!

Update binaries

Don't forget to update the binaries in the test folder. To do so, compile with those environement variables:

make DEBUG=1 ALLOW_DATA=1

Then copy the binary to the tests/elfs folder (in this case, compiled with SDK for nanoS):

cp bin/app.elf tests/elfs/ethereum_nanos.elf

Repeat the operation for a binary compiled with nanoX SDK and change for ethereum_nanox.elf.

Contributing

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.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/my-feature)
  3. Commit your Changes (git commit -m 'feat: my new feature)
  4. Push to the Branch (git push origin feature/my-feature)
  5. Open a Pull Request

Please try to follow Conventional Commits.

About

Ethereum wallet application for Ledger devices

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 74.0%
  • Python 18.9%
  • JavaScript 3.9%
  • Makefile 2.7%
  • Other 0.5%