pscott d541f1f524 Add pointer to msg_sender in Eth_plugin_finalize (#170)
* Add some PRINTF debug statements and fir additional screens init

* Memzero struture and use two pointers less

* Clang-format

* Use ADDRESS_LENGTH where possible; Add printf statements when failing to compare contracts

* clang-format

* Remove 'token1' and 'token2' locals

* Fix typo

* apply clang-format

* Add bip32path to sharedRO for plugins

* Change getEthAddressStringFromKey to accept char instead of uint8_t

* Update ethereum plugin sdk

* Add BYPASS_SIGNATURES compilation option

* Remove bip32path and pathLength from sharedRO; add msg_sender pointer to pluginFinalize.address

* clang format eth_plugin_interface

* Update submodule

* Set address BEFORE making the finalize call

* Update SDK

Co-authored-by: TamtamHero <10632523+TamtamHero@users.noreply.github.com>
2021-07-09 11:46:36 +02:00
2021-07-02 18:46:23 +02:00
2021-01-11 13:51:09 +01:00
2021-06-03 19:23:16 +02:00
2021-07-02 18:46:23 +02:00
2020-12-01 16:19:54 +01:00
2021-06-18 12:43:29 +02:00
2021-06-18 14:20:11 +02:00
2021-07-05 11:46:30 +02:00
2016-05-28 01:12:59 +02:00

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, please check out our developer portal.

Plugins

This app support external plugins. More info in doc/ethapp_plugin.asc. If you wish to have a look at an existing plugin, feel free to check out the ParaSwap plugin.

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.

Description
No description provided
Readme 17 MiB
Languages
C 77.2%
Python 20.2%
Makefile 2.3%
CMake 0.3%