diff --git a/.github/workflows/codeql_checks.yml b/.github/workflows/codeql_checks.yml index 2494182f5..73c3f438b 100644 --- a/.github/workflows/codeql_checks.yml +++ b/.github/workflows/codeql_checks.yml @@ -18,7 +18,7 @@ jobs: name: Analyse strategy: matrix: - sdk: [ "$NANOS_SDK", "$NANOX_SDK", "$NANOSP_SDK" ] + sdk: ["$NANOX_SDK", "$NANOSP_SDK", "$STAX_SDK", "$FLEX_SDK"] #'cpp' covers C and C++ language: [ 'cpp' ] runs-on: ubuntu-latest diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json index 7fdbf7f3b..d12fae67d 100644 --- a/.vscode/c_cpp_properties.json +++ b/.vscode/c_cpp_properties.json @@ -1,11 +1,11 @@ { "env": { - "BOLOS_SDK": "/opt/nanos-secure-sdk", + "BOLOS_SDK": "/opt/nanosplus-secure-sdk", "BOLOS_ENV": "/opt/bolos-devenv" }, "configurations": [ { - "name": "Nano S", + "name": "Nano S+", "includePath": [ "/usr/include", "${workspaceFolder}/src", @@ -13,7 +13,7 @@ "${env:BOLOS_SDK}/lib_ux/include/*" ], "defines": [ - "TARGET_NANOS", + "TARGET_NANOS2", "OS_IO_SEPROXYHAL", "HAVE_BAGL", "HAVE_SPRINTF", diff --git a/Makefile b/Makefile index c461ec1fe..1df5e2e73 100644 --- a/Makefile +++ b/Makefile @@ -38,7 +38,6 @@ APP_SOURCE_PATH += src # Application icons following guidelines: # https://developers.ledger.com/docs/embedded-app/design-requirements/#device-icon -ICON_NANOS = icons/app_boilerplate_16px.gif ICON_NANOX = icons/app_boilerplate_14px.gif ICON_NANOSP = icons/app_boilerplate_14px.gif ICON_STAX = icons/app_boilerplate_32px.gif diff --git a/README.md b/README.md index 24033db37..3ea826c1a 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ # Ledger Boilerplate Application -This is a boilerplate application which can be forked to start a new project for the Ledger Nano S/X/SP and Stax. +This is a boilerplate application which can be forked to start a new project for the Ledger Nano X/SP, Stax and Flex. ## Quick start guide @@ -77,12 +77,11 @@ make DEBUG=1 # compile optionally with PRINTF You can choose which device to compile and load for by setting the `BOLOS_SDK` environment variable to the following values : -* `BOLOS_SDK=$NANOS_SDK` * `BOLOS_SDK=$NANOX_SDK` * `BOLOS_SDK=$NANOSP_SDK` * `BOLOS_SDK=$STAX_SDK` -By default this variable is set to build/load for Nano S. +By default this variable is set to build/load for Nano S+. ### Loading on a physical device @@ -105,7 +104,7 @@ Then once you have [opened a terminal](#with-a-terminal) in the `app-builder` im ```shell # Run this command from the app-builder container terminal. -make load # load the app on a Nano S by default +make load # load the app on a Nano S+ by default ``` [Setting the BOLOS_SDK environment variable](#compilation-and-load) will allow you to load on whichever supported device you want. @@ -168,16 +167,16 @@ pip install -r tests/requirements.txt Then you can : -Run the functional tests (here for nanos but available for any device once you have built the binaries) : +Run the functional tests (here for nanos+ but available for any device once you have built the binaries) : ```shell -pytest tests/ --tb=short -v --device nanos +pytest tests/ --tb=short -v --device nanosp ``` Or run your app directly with Speculos ```shell -speculos --model nanos build/nanos/bin/app.elf +speculos --model nanosp build/nanos2/bin/app.elf ``` ## Documentation @@ -207,7 +206,7 @@ It outputs 3 artifacts: - `code-coverage` within HTML details of code coverage - `documentation` within HTML auto-generated documentation -## Are you developing a Nano S, S Plus, X application? +## Are you developing an application for Ledger devices? If so, This boilerplate will help you get started. diff --git a/ledger_app.toml b/ledger_app.toml index 27f2fade2..3ca01d306 100644 --- a/ledger_app.toml +++ b/ledger_app.toml @@ -1,7 +1,7 @@ [app] build_directory = "./" sdk = "C" -devices = ["nanos", "nanox", "nanos+", "stax", "flex"] +devices = ["nanox", "nanos+", "stax", "flex"] [tests] unit_directory = "./unit-tests/" diff --git a/tests/snapshots/nanos/test_app_mainmenu/00000.png b/tests/snapshots/nanos/test_app_mainmenu/00000.png deleted file mode 100644 index f15be1a6b..000000000 Binary files a/tests/snapshots/nanos/test_app_mainmenu/00000.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_app_mainmenu/00001.png b/tests/snapshots/nanos/test_app_mainmenu/00001.png deleted file mode 100644 index cd7ac6516..000000000 Binary files a/tests/snapshots/nanos/test_app_mainmenu/00001.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_app_mainmenu/00002.png b/tests/snapshots/nanos/test_app_mainmenu/00002.png deleted file mode 100644 index 3476b972a..000000000 Binary files a/tests/snapshots/nanos/test_app_mainmenu/00002.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_app_mainmenu/00003.png b/tests/snapshots/nanos/test_app_mainmenu/00003.png deleted file mode 100644 index e2279803e..000000000 Binary files a/tests/snapshots/nanos/test_app_mainmenu/00003.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_get_public_key_confirm_accepted/00000.png b/tests/snapshots/nanos/test_get_public_key_confirm_accepted/00000.png deleted file mode 100644 index 0e6472326..000000000 Binary files a/tests/snapshots/nanos/test_get_public_key_confirm_accepted/00000.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_get_public_key_confirm_accepted/00001.png b/tests/snapshots/nanos/test_get_public_key_confirm_accepted/00001.png deleted file mode 100644 index 0b6744526..000000000 Binary files a/tests/snapshots/nanos/test_get_public_key_confirm_accepted/00001.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_get_public_key_confirm_accepted/00002.png b/tests/snapshots/nanos/test_get_public_key_confirm_accepted/00002.png deleted file mode 100644 index 02c301f35..000000000 Binary files a/tests/snapshots/nanos/test_get_public_key_confirm_accepted/00002.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_get_public_key_confirm_accepted/00003.png b/tests/snapshots/nanos/test_get_public_key_confirm_accepted/00003.png deleted file mode 100644 index f7de3fbe2..000000000 Binary files a/tests/snapshots/nanos/test_get_public_key_confirm_accepted/00003.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_get_public_key_confirm_accepted/00004.png b/tests/snapshots/nanos/test_get_public_key_confirm_accepted/00004.png deleted file mode 100644 index 66c411c2e..000000000 Binary files a/tests/snapshots/nanos/test_get_public_key_confirm_accepted/00004.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_get_public_key_confirm_accepted/00005.png b/tests/snapshots/nanos/test_get_public_key_confirm_accepted/00005.png deleted file mode 100644 index f15be1a6b..000000000 Binary files a/tests/snapshots/nanos/test_get_public_key_confirm_accepted/00005.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_get_public_key_confirm_refused/00000.png b/tests/snapshots/nanos/test_get_public_key_confirm_refused/00000.png deleted file mode 100644 index 0e6472326..000000000 Binary files a/tests/snapshots/nanos/test_get_public_key_confirm_refused/00000.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_get_public_key_confirm_refused/00001.png b/tests/snapshots/nanos/test_get_public_key_confirm_refused/00001.png deleted file mode 100644 index 0b6744526..000000000 Binary files a/tests/snapshots/nanos/test_get_public_key_confirm_refused/00001.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_get_public_key_confirm_refused/00002.png b/tests/snapshots/nanos/test_get_public_key_confirm_refused/00002.png deleted file mode 100644 index 02c301f35..000000000 Binary files a/tests/snapshots/nanos/test_get_public_key_confirm_refused/00002.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_get_public_key_confirm_refused/00003.png b/tests/snapshots/nanos/test_get_public_key_confirm_refused/00003.png deleted file mode 100644 index f7de3fbe2..000000000 Binary files a/tests/snapshots/nanos/test_get_public_key_confirm_refused/00003.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_get_public_key_confirm_refused/00004.png b/tests/snapshots/nanos/test_get_public_key_confirm_refused/00004.png deleted file mode 100644 index 66c411c2e..000000000 Binary files a/tests/snapshots/nanos/test_get_public_key_confirm_refused/00004.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_get_public_key_confirm_refused/00005.png b/tests/snapshots/nanos/test_get_public_key_confirm_refused/00005.png deleted file mode 100644 index 9c7e7049c..000000000 Binary files a/tests/snapshots/nanos/test_get_public_key_confirm_refused/00005.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_get_public_key_confirm_refused/00006.png b/tests/snapshots/nanos/test_get_public_key_confirm_refused/00006.png deleted file mode 100644 index f15be1a6b..000000000 Binary files a/tests/snapshots/nanos/test_get_public_key_confirm_refused/00006.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_sign_tx_long_tx/00000.png b/tests/snapshots/nanos/test_sign_tx_long_tx/00000.png deleted file mode 100644 index 88429892f..000000000 Binary files a/tests/snapshots/nanos/test_sign_tx_long_tx/00000.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_sign_tx_long_tx/00001.png b/tests/snapshots/nanos/test_sign_tx_long_tx/00001.png deleted file mode 100644 index 8f03279ed..000000000 Binary files a/tests/snapshots/nanos/test_sign_tx_long_tx/00001.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_sign_tx_long_tx/00002.png b/tests/snapshots/nanos/test_sign_tx_long_tx/00002.png deleted file mode 100644 index 43bebaffe..000000000 Binary files a/tests/snapshots/nanos/test_sign_tx_long_tx/00002.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_sign_tx_long_tx/00003.png b/tests/snapshots/nanos/test_sign_tx_long_tx/00003.png deleted file mode 100644 index b8ef4352e..000000000 Binary files a/tests/snapshots/nanos/test_sign_tx_long_tx/00003.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_sign_tx_long_tx/00004.png b/tests/snapshots/nanos/test_sign_tx_long_tx/00004.png deleted file mode 100644 index 0b799b750..000000000 Binary files a/tests/snapshots/nanos/test_sign_tx_long_tx/00004.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_sign_tx_long_tx/00005.png b/tests/snapshots/nanos/test_sign_tx_long_tx/00005.png deleted file mode 100644 index 66c411c2e..000000000 Binary files a/tests/snapshots/nanos/test_sign_tx_long_tx/00005.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_sign_tx_long_tx/00006.png b/tests/snapshots/nanos/test_sign_tx_long_tx/00006.png deleted file mode 100644 index f15be1a6b..000000000 Binary files a/tests/snapshots/nanos/test_sign_tx_long_tx/00006.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_sign_tx_refused/00000.png b/tests/snapshots/nanos/test_sign_tx_refused/00000.png deleted file mode 100644 index 88429892f..000000000 Binary files a/tests/snapshots/nanos/test_sign_tx_refused/00000.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_sign_tx_refused/00001.png b/tests/snapshots/nanos/test_sign_tx_refused/00001.png deleted file mode 100644 index 8f03279ed..000000000 Binary files a/tests/snapshots/nanos/test_sign_tx_refused/00001.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_sign_tx_refused/00002.png b/tests/snapshots/nanos/test_sign_tx_refused/00002.png deleted file mode 100644 index 43bebaffe..000000000 Binary files a/tests/snapshots/nanos/test_sign_tx_refused/00002.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_sign_tx_refused/00003.png b/tests/snapshots/nanos/test_sign_tx_refused/00003.png deleted file mode 100644 index b8ef4352e..000000000 Binary files a/tests/snapshots/nanos/test_sign_tx_refused/00003.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_sign_tx_refused/00004.png b/tests/snapshots/nanos/test_sign_tx_refused/00004.png deleted file mode 100644 index 0b799b750..000000000 Binary files a/tests/snapshots/nanos/test_sign_tx_refused/00004.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_sign_tx_refused/00005.png b/tests/snapshots/nanos/test_sign_tx_refused/00005.png deleted file mode 100644 index 66c411c2e..000000000 Binary files a/tests/snapshots/nanos/test_sign_tx_refused/00005.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_sign_tx_refused/00006.png b/tests/snapshots/nanos/test_sign_tx_refused/00006.png deleted file mode 100644 index 9c7e7049c..000000000 Binary files a/tests/snapshots/nanos/test_sign_tx_refused/00006.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_sign_tx_refused/00007.png b/tests/snapshots/nanos/test_sign_tx_refused/00007.png deleted file mode 100644 index f15be1a6b..000000000 Binary files a/tests/snapshots/nanos/test_sign_tx_refused/00007.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_sign_tx_short_tx/00000.png b/tests/snapshots/nanos/test_sign_tx_short_tx/00000.png deleted file mode 100644 index 88429892f..000000000 Binary files a/tests/snapshots/nanos/test_sign_tx_short_tx/00000.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_sign_tx_short_tx/00001.png b/tests/snapshots/nanos/test_sign_tx_short_tx/00001.png deleted file mode 100644 index 8f03279ed..000000000 Binary files a/tests/snapshots/nanos/test_sign_tx_short_tx/00001.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_sign_tx_short_tx/00002.png b/tests/snapshots/nanos/test_sign_tx_short_tx/00002.png deleted file mode 100644 index 43bebaffe..000000000 Binary files a/tests/snapshots/nanos/test_sign_tx_short_tx/00002.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_sign_tx_short_tx/00003.png b/tests/snapshots/nanos/test_sign_tx_short_tx/00003.png deleted file mode 100644 index b8ef4352e..000000000 Binary files a/tests/snapshots/nanos/test_sign_tx_short_tx/00003.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_sign_tx_short_tx/00004.png b/tests/snapshots/nanos/test_sign_tx_short_tx/00004.png deleted file mode 100644 index 0b799b750..000000000 Binary files a/tests/snapshots/nanos/test_sign_tx_short_tx/00004.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_sign_tx_short_tx/00005.png b/tests/snapshots/nanos/test_sign_tx_short_tx/00005.png deleted file mode 100644 index 66c411c2e..000000000 Binary files a/tests/snapshots/nanos/test_sign_tx_short_tx/00005.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_sign_tx_short_tx/00006.png b/tests/snapshots/nanos/test_sign_tx_short_tx/00006.png deleted file mode 100644 index f15be1a6b..000000000 Binary files a/tests/snapshots/nanos/test_sign_tx_short_tx/00006.png and /dev/null differ diff --git a/tests/usage.md b/tests/usage.md index be8890f71..f24d63c6d 100644 --- a/tests/usage.md +++ b/tests/usage.md @@ -20,7 +20,7 @@ You can use for this the container `ghcr.io/ledgerhq/ledger-app-builder/ledger-a docker pull ghcr.io/ledgerhq/ledger-app-builder/ledger-app-builder-lite:latest cd # replace with the name of your app, (eg boilerplate) docker run --user "$(id -u)":"$(id -g)" --rm -ti -v "$(realpath .):/app" --privileged -v "/dev/bus/usb:/dev/bus/usb" ledger-app-builder-lite:latest -make clean && make BOLOS_SDK=$_SDK # replace with one of [NANOS, NANOX, NANOSP, STAX] +make clean && make BOLOS_SDK=$_SDK # replace with one of [NANOX, NANOSP, STAX, FLEX] exit ``` @@ -41,7 +41,7 @@ You can use for this the container `ghcr.io/ledgerhq/ledger-app-builder/ledger-a docker pull ghcr.io/ledgerhq/ledger-app-builder/ledger-app-builder-lite:latest cd app-/ # replace with the name of your app, (eg boilerplate) docker run --user "$(id -u)":"$(id -g)" --rm -ti -v "$(realpath .):/app" --privileged -v "/dev/bus/usb:/dev/bus/usb" ledger-app-builder-lite:latest -make clean && make BOLOS_SDK=$_SDK load # replace with one of [NANOS, NANOX, NANOSP, STAX] +make clean && make BOLOS_SDK=$_SDK load # replace with one of [NANOX, NANOSP, STAX, FLEX] exit ``` @@ -65,7 +65,7 @@ Standard useful pytest options Custom pytest options ``` - --device run the test on the specified device [nanos,nanox,nanosp,stax,all]. This parameter is mandatory + --device run the test on the specified device [nanox,nanosp,stax,flex,all]. This parameter is mandatory --backend run the tests against the backend [speculos, ledgercomm, ledgerwallet]. Speculos is the default --display on Speculos, enables the display of the app screen using QT --golden_run on Speculos, screen comparison functions will save the current screen instead of comparing