Git Product home page Git Product logo

app-ethereum's Introduction

app-ethereum

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.

This app follows the specification available in the doc/ folder

To compile it and load it on a device, have a look here: https://ledger.readthedocs.io/en/latest/userspace/getting_started.html

Testing

Testing is done via the open-source framework zemu.

Running tests

First install yarn. Then you can install the project by simply running:

make test

This will run make install_tests and make run_tests

To run a specific tests (here the send test):

cd tests
sudo jest --runInBand --detectOpenHandles src/send.test.js

Make sure you're in the tests folder before running jest or yarn test.

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.

app-ethereum's People

Contributors

pscott avatar tamtamhero avatar clementperon avatar mkrufky avatar thanhson1085 avatar jibeee avatar bigspider avatar artall64 avatar oto-ledger avatar raredata avatar ortegaalfredo avatar jingxu85 avatar hackmod avatar grydz avatar jarig avatar nicemanss avatar kingofpayne avatar petertheone avatar eatdostacos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.