* Fix easy warnings for sdk 2.0 * Add attribute unused to bagl_elemt_t in callback functions * Add attribute unused to io_event function * Clang-format * Use elfs from CI in tests (#167) * Add Nano X build * Use CI's build artifacts for CI's tests * Add network display (#152) * Add network name display instead of chainID * Add display of correct ticker along with network * Add FTM * Clang-format * Add comment in python script * Rename SIZE_MAX to MAX_SIZE * Change %u to %d in printf * Remove needless PIC * Update comment about get_chain_id() * Update example script to follow EIP155 * Remove unused PIC calls * Add whitespace between ticker and amount when using EIP155 * Remove decimal config per network, set back 18 everywhere * Adapt u32_from_BE to swith cases * Remove chainid from signTx.py * Switch to switch in stead of if in get_chain_id * Revert "Remove chainid from signTx.py" This reverts commit 454e09f280ec3e3ec1c7d7cc0027247ef4390088. * Change Ethereum chainid to 1 * Rename chainid_step to network_step * Adapt finalizeParsing to new chainid for Ethereum * Update snapshots * clang-format * Fix network display logic for clones * Fix tests * Add clone tests Co-authored-by: TamtamHero <10632523+TamtamHero@users.noreply.github.com> Co-authored-by: Jean P <10632523+TamtamHero@users.noreply.github.com>
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/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!
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.