diff --git a/.github/workflows/check_version.yml b/.github/workflows/check_version.yml index b9b512ae..160eeb36 100644 --- a/.github/workflows/check_version.yml +++ b/.github/workflows/check_version.yml @@ -31,7 +31,7 @@ jobs: version: ${{ steps.store-version.outputs.version }} steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: submodules: true - run: make version diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index c9fd3208..78c4c870 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -20,7 +20,7 @@ jobs: steps: - name: Clone - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: submodules: recursive diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index da6d771a..96ca1265 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -20,7 +20,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: submodules: true - name: Install deps @@ -41,7 +41,7 @@ jobs: size: ${{steps.build.outputs.size}} steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: submodules: true - name: Build Standard app @@ -70,7 +70,7 @@ jobs: echo $HOME echo $DISPLAY - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: submodules: true - run: sudo apt-get update -y && sudo apt-get install -y libusb-1.0.0 libudev-dev @@ -103,7 +103,7 @@ jobs: BOLOS_SDK: /opt/nanos-secure-sdk steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: submodules: true - name: Install deps @@ -139,7 +139,7 @@ jobs: BOLOS_SDK: /opt/nanosplus-secure-sdk steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: submodules: true - name: Install deps @@ -163,3 +163,75 @@ jobs: tag_name: ${{ steps.nanosp.outputs.tag_name }} draft: false prerelease: false + + build_package_stax: + needs: [configure, build, build_ledger, test_zemu] + if: ${{ github.ref == 'refs/heads/main' }} + runs-on: ubuntu-latest + container: + image: zondax/ledger-app-builder:latest + options: --user ${{ needs.configure.outputs.uid_gid }} + env: + BOLOS_SDK: /opt/stax-secure-sdk + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + submodules: true + - name: Install deps + run: pip install ledgerblue + + - name: Build Stax + shell: bash -l {0} + run: | + PRODUCTION_BUILD=0 make + - name: Set tag + id: stax + run: echo "tag_name=$(./app/pkg/installer_stax.sh version)" >> $GITHUB_OUTPUT + - name: Update Release + id: update_release_2 + uses: softprops/action-gh-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token + with: + files: | + ./app/pkg/installer_stax.sh + tag_name: ${{ steps.stax.outputs.tag_name }} + draft: false + prerelease: false + + build_package_flex: + needs: [configure, build, build_ledger, test_zemu] + if: ${{ github.ref == 'refs/heads/main' }} + runs-on: ubuntu-latest + container: + image: zondax/ledger-app-builder:latest + options: --user ${{ needs.configure.outputs.uid_gid }} + env: + BOLOS_SDK: /opt/flex-secure-sdk + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + submodules: true + - name: Install deps + run: pip install ledgerblue + + - name: Build Flex + shell: bash -l {0} + run: | + PRODUCTION_BUILD=0 make + - name: Set tag + id: flex + run: echo "tag_name=$(./app/pkg/installer_flex.sh version)" >> $GITHUB_OUTPUT + - name: Update Release + id: update_release_2 + uses: softprops/action-gh-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token + with: + files: | + ./app/pkg/installer_flex.sh + tag_name: ${{ steps.flex.outputs.tag_name }} + draft: false + prerelease: false diff --git a/.gitmodules b/.gitmodules index f944d5e0..168786d1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -13,3 +13,6 @@ [submodule "deps/stax-secure-sdk"] path = deps/stax-secure-sdk url = https://github.com/LedgerHQ/ledger-secure-sdk +[submodule "deps/ledger-secure-sdk"] + path = deps/ledger-secure-sdk + url = https://github.com/LedgerHQ/ledger-secure-sdk diff --git a/Makefile b/Makefile index 74ff1e13..9ae329e1 100644 --- a/Makefile +++ b/Makefile @@ -19,7 +19,7 @@ # BOLOS_SDK NOT DEFINED We use a containerized build approach ifeq ($(BOLOS_SDK),) -ZXLIB_COMPILE_STAX ?= 1 +PRODUCTION_BUILD ?= 1 include $(CURDIR)/deps/ledger-zxlib/dockerized_build.mk else default: diff --git a/app/Makefile b/app/Makefile index aba35df4..1ffb0280 100755 --- a/app/Makefile +++ b/app/Makefile @@ -27,8 +27,20 @@ include $(CURDIR)/../deps/ledger-zxlib/makefiles/Makefile.installer_script include $(BOLOS_SDK)/Makefile.defines include $(CURDIR)/Makefile.version +PRODUCTION_BUILD ?= 1 + +# Display the target name $(info ************ TARGET_NAME = [$(TARGET_NAME)]) +# Display whether this is a production build or for internal use +ifeq ($(PRODUCTION_BUILD), 1) + $(info ************ PRODUCTION_BUILD = [PRODUCTION BUILD]) +else + $(info ************ PRODUCTION_BUILD = [INTERNAL USE]) +endif +# Add the PRODUCTION_BUILD definition to the compiler flags +DEFINES += PRODUCTION_BUILD=$(PRODUCTION_BUILD) + include $(CURDIR)/../deps/ledger-zxlib/makefiles/Makefile.app_testing ifndef COIN @@ -61,7 +73,7 @@ ifndef ICONNAME $(error ICONNAME is not set) endif -# Compile textual mode for all devices excetpt Nano S, +# Compile textual mode for all devices excetpt Nano S, # and define a Min stack size for Nano S with some margin # to get an error if app grows too much ifneq ($(TARGET_NAME),TARGET_NANOS) @@ -71,7 +83,7 @@ endif ifeq ($(TARGET_NAME),TARGET_NANOS) APP_STACK_MIN_SIZE := 1600 else - APP_STACK_MIN_SIZE := 3800 + APP_STACK_MIN_SIZE := 1850 endif include $(CURDIR)/../deps/ledger-zxlib/makefiles/Makefile.platform diff --git a/app/Makefile.version b/app/Makefile.version index cbfcb90d..ade301ef 100644 --- a/app/Makefile.version +++ b/app/Makefile.version @@ -3,4 +3,4 @@ APPVERSION_M=2 # This is the `spec_version` field of `Runtime` APPVERSION_N=35 # This is the patch version of this release -APPVERSION_P=22 +APPVERSION_P=24 diff --git a/app/flex_icon.gif b/app/flex_icon.gif new file mode 100644 index 00000000..55fb747d Binary files /dev/null and b/app/flex_icon.gif differ diff --git a/app/src/common/tx.c b/app/src/common/tx.c index 06af1e1a..764c2f9b 100644 --- a/app/src/common/tx.c +++ b/app/src/common/tx.c @@ -21,11 +21,11 @@ #include #include "zxmacros.h" -#if defined(TARGET_NANOS2) || defined(TARGET_STAX) +#if defined(TARGET_NANOS2) || defined(TARGET_STAX) || defined(TARGET_FLEX) #define RAM_BUFFER_SIZE 8192 #define FLASH_BUFFER_SIZE 16384 #elif defined(TARGET_NANOX) -#define RAM_BUFFER_SIZE 8158 +#define RAM_BUFFER_SIZE 7168 #define FLASH_BUFFER_SIZE 16384 #elif defined(TARGET_NANOS) #define RAM_BUFFER_SIZE 0 @@ -41,7 +41,7 @@ typedef struct uint8_t buffer[FLASH_BUFFER_SIZE]; } storage_t; -#if defined(TARGET_NANOS) || defined(TARGET_NANOX) || defined(TARGET_NANOS2) || defined(TARGET_STAX) +#if defined(TARGET_NANOS) || defined(TARGET_NANOX) || defined(TARGET_NANOS2) || defined(TARGET_STAX) || defined(TARGET_FLEX) storage_t NV_CONST N_appdata_impl __attribute__((aligned(64))); #define N_appdata (*(NV_VOLATILE storage_t *)PIC(&N_appdata_impl)) #endif @@ -85,7 +85,7 @@ const char *tx_parse(tx_type_e type) if (type != tx_json && type != tx_textual) { return parser_getErrorDescription(parser_value_out_of_range); } -#else +#else if (type != tx_json) { return parser_getErrorDescription(parser_value_out_of_range); } diff --git a/app/src/json/json_parser.h b/app/src/json/json_parser.h index 2fd1e36e..d329f651 100644 --- a/app/src/json/json_parser.h +++ b/app/src/json/json_parser.h @@ -39,7 +39,7 @@ extern "C" { #define MAX_NUMBER_OF_TOKENS 96 #endif -#if defined(TARGET_STAX) +#if defined(TARGET_STAX) || defined(TARGET_FLEX) #undef MAX_NUMBER_OF_TOKENS #define MAX_NUMBER_OF_TOKENS 600 #endif diff --git a/deps/ledger-secure-sdk b/deps/ledger-secure-sdk new file mode 160000 index 00000000..b46b4b51 --- /dev/null +++ b/deps/ledger-secure-sdk @@ -0,0 +1 @@ +Subproject commit b46b4b516650c08dfe913054dc7535dd52e2503a diff --git a/deps/ledger-zxlib b/deps/ledger-zxlib index a669ab07..271f40ce 160000 --- a/deps/ledger-zxlib +++ b/deps/ledger-zxlib @@ -1 +1 @@ -Subproject commit a669ab077a3acbf80dd27d9563c2b5d35620d67a +Subproject commit 271f40ce03219eac8396a309ce9704977cf59caa diff --git a/deps/nanos-secure-sdk b/deps/nanos-secure-sdk deleted file mode 160000 index e0d514f4..00000000 --- a/deps/nanos-secure-sdk +++ /dev/null @@ -1 +0,0 @@ -Subproject commit e0d514f4e4b063226b09cdb239d8daa67601fc70 diff --git a/deps/nanosplus-secure-sdk b/deps/nanosplus-secure-sdk deleted file mode 160000 index e0d514f4..00000000 --- a/deps/nanosplus-secure-sdk +++ /dev/null @@ -1 +0,0 @@ -Subproject commit e0d514f4e4b063226b09cdb239d8daa67601fc70 diff --git a/deps/nanox-secure-sdk b/deps/nanox-secure-sdk deleted file mode 160000 index e0d514f4..00000000 --- a/deps/nanox-secure-sdk +++ /dev/null @@ -1 +0,0 @@ -Subproject commit e0d514f4e4b063226b09cdb239d8daa67601fc70 diff --git a/ledger_app.toml b/ledger_app.toml index 3e4cbb1f..7f63dfec 100644 --- a/ledger_app.toml +++ b/ledger_app.toml @@ -1,7 +1,7 @@ [app] build_directory = "./app/" sdk = "C" -devices = ["nanos", "nanox", "nanos+", "stax"] +devices = ["nanos", "nanox", "nanos+", "stax", "flex"] [tests] unit_directory = "./tests/" diff --git a/tests_zemu/package.json b/tests_zemu/package.json index 9d37bcb5..92640893 100644 --- a/tests_zemu/package.json +++ b/tests_zemu/package.json @@ -19,30 +19,30 @@ }, "dependencies": { "@zondax/ledger-cosmos-js": "^3.0.3", - "@zondax/zemu": "^0.49.0" + "@zondax/zemu": "^0.50.2" }, "devDependencies": { "@types/jest": "^29.5.12", "@types/ledgerhq__hw-transport": "^4.21.8", - "@typescript-eslint/eslint-plugin": "^6.16.0", - "@typescript-eslint/parser": "^6.16.0", + "@typescript-eslint/eslint-plugin": "^7.17.0", + "@typescript-eslint/parser": "^7.17.0", "bech32": "^2.0.0", "blakejs": "^1.1.1", "crypto-js": "4.2.0", - "eslint": "^8.57.0", + "eslint": "^9.7.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-import": "^2.29.1", - "eslint-plugin-jest": "^27.9.0", - "eslint-plugin-prettier": "^5.1.2", + "eslint-plugin-jest": "^28.6.0", + "eslint-plugin-prettier": "^5.2.1", "jest": "29.7.0", "jest-serial-runner": "^1.1.0", "js-sha3": "0.9.3", "jssha": "^3.2.0", "keccak256": "^1.0.6", - "prettier": "^3.2.5", + "prettier": "^3.3.3", "secp256k1": "^5.0.0", - "ts-jest": "^29.1.1", + "ts-jest": "^29.2.3", "ts-node": "^10.9.2", - "typescript": "^5.3.3" + "typescript": "^5.5.4" } } diff --git a/tests_zemu/snapshots/fl-govDeposit/00000.png b/tests_zemu/snapshots/fl-govDeposit/00000.png new file mode 100644 index 00000000..6fbdcee5 Binary files /dev/null and b/tests_zemu/snapshots/fl-govDeposit/00000.png differ diff --git a/tests_zemu/snapshots/fl-govDeposit/00001.png b/tests_zemu/snapshots/fl-govDeposit/00001.png new file mode 100644 index 00000000..dff5b4b7 Binary files /dev/null and b/tests_zemu/snapshots/fl-govDeposit/00001.png differ diff --git a/tests_zemu/snapshots/fl-govDeposit/00002.png b/tests_zemu/snapshots/fl-govDeposit/00002.png new file mode 100644 index 00000000..411bf834 Binary files /dev/null and b/tests_zemu/snapshots/fl-govDeposit/00002.png differ diff --git a/tests_zemu/snapshots/fl-govDeposit/00003.png b/tests_zemu/snapshots/fl-govDeposit/00003.png new file mode 100644 index 00000000..7aadf5bf Binary files /dev/null and b/tests_zemu/snapshots/fl-govDeposit/00003.png differ diff --git a/tests_zemu/snapshots/fl-govDeposit/00004.png b/tests_zemu/snapshots/fl-govDeposit/00004.png new file mode 100644 index 00000000..c40b6ce8 Binary files /dev/null and b/tests_zemu/snapshots/fl-govDeposit/00004.png differ diff --git a/tests_zemu/snapshots/fl-govDeposit/00005.png b/tests_zemu/snapshots/fl-govDeposit/00005.png new file mode 100644 index 00000000..a5a57fb4 Binary files /dev/null and b/tests_zemu/snapshots/fl-govDeposit/00005.png differ diff --git a/tests_zemu/snapshots/fl-ibc_denoms/00000.png b/tests_zemu/snapshots/fl-ibc_denoms/00000.png new file mode 100644 index 00000000..6fbdcee5 Binary files /dev/null and b/tests_zemu/snapshots/fl-ibc_denoms/00000.png differ diff --git a/tests_zemu/snapshots/fl-ibc_denoms/00001.png b/tests_zemu/snapshots/fl-ibc_denoms/00001.png new file mode 100644 index 00000000..5e1a6829 Binary files /dev/null and b/tests_zemu/snapshots/fl-ibc_denoms/00001.png differ diff --git a/tests_zemu/snapshots/fl-ibc_denoms/00002.png b/tests_zemu/snapshots/fl-ibc_denoms/00002.png new file mode 100644 index 00000000..ed8262d0 Binary files /dev/null and b/tests_zemu/snapshots/fl-ibc_denoms/00002.png differ diff --git a/tests_zemu/snapshots/fl-ibc_denoms/00003.png b/tests_zemu/snapshots/fl-ibc_denoms/00003.png new file mode 100644 index 00000000..14f88baa Binary files /dev/null and b/tests_zemu/snapshots/fl-ibc_denoms/00003.png differ diff --git a/tests_zemu/snapshots/fl-ibc_denoms/00004.png b/tests_zemu/snapshots/fl-ibc_denoms/00004.png new file mode 100644 index 00000000..c40b6ce8 Binary files /dev/null and b/tests_zemu/snapshots/fl-ibc_denoms/00004.png differ diff --git a/tests_zemu/snapshots/fl-ibc_denoms/00005.png b/tests_zemu/snapshots/fl-ibc_denoms/00005.png new file mode 100644 index 00000000..a5a57fb4 Binary files /dev/null and b/tests_zemu/snapshots/fl-ibc_denoms/00005.png differ diff --git a/tests_zemu/snapshots/fl-mainmenu/00000.png b/tests_zemu/snapshots/fl-mainmenu/00000.png new file mode 100644 index 00000000..a5a57fb4 Binary files /dev/null and b/tests_zemu/snapshots/fl-mainmenu/00000.png differ diff --git a/tests_zemu/snapshots/fl-mainmenu/00001.png b/tests_zemu/snapshots/fl-mainmenu/00001.png new file mode 100644 index 00000000..24c14920 Binary files /dev/null and b/tests_zemu/snapshots/fl-mainmenu/00001.png differ diff --git a/tests_zemu/snapshots/fl-mainmenu/00002.png b/tests_zemu/snapshots/fl-mainmenu/00002.png new file mode 100644 index 00000000..c1fe13e1 Binary files /dev/null and b/tests_zemu/snapshots/fl-mainmenu/00002.png differ diff --git a/tests_zemu/snapshots/fl-mainmenu/00003.png b/tests_zemu/snapshots/fl-mainmenu/00003.png new file mode 100644 index 00000000..24c14920 Binary files /dev/null and b/tests_zemu/snapshots/fl-mainmenu/00003.png differ diff --git a/tests_zemu/snapshots/fl-mainmenu/00004.png b/tests_zemu/snapshots/fl-mainmenu/00004.png new file mode 100644 index 00000000..7750dc1a Binary files /dev/null and b/tests_zemu/snapshots/fl-mainmenu/00004.png differ diff --git a/tests_zemu/snapshots/fl-mainmenu/00005.png b/tests_zemu/snapshots/fl-mainmenu/00005.png new file mode 100644 index 00000000..d9da0f4b Binary files /dev/null and b/tests_zemu/snapshots/fl-mainmenu/00005.png differ diff --git a/tests_zemu/snapshots/fl-mainmenu/00006.png b/tests_zemu/snapshots/fl-mainmenu/00006.png new file mode 100644 index 00000000..a5a57fb4 Binary files /dev/null and b/tests_zemu/snapshots/fl-mainmenu/00006.png differ diff --git a/tests_zemu/snapshots/fl-msgMultiSend/00000.png b/tests_zemu/snapshots/fl-msgMultiSend/00000.png new file mode 100644 index 00000000..23f111b1 Binary files /dev/null and b/tests_zemu/snapshots/fl-msgMultiSend/00000.png differ diff --git a/tests_zemu/snapshots/fl-msgMultiSend/00001.png b/tests_zemu/snapshots/fl-msgMultiSend/00001.png new file mode 100644 index 00000000..c3cbc558 Binary files /dev/null and b/tests_zemu/snapshots/fl-msgMultiSend/00001.png differ diff --git a/tests_zemu/snapshots/fl-msgMultiSend/00002.png b/tests_zemu/snapshots/fl-msgMultiSend/00002.png new file mode 100644 index 00000000..fe31367c Binary files /dev/null and b/tests_zemu/snapshots/fl-msgMultiSend/00002.png differ diff --git a/tests_zemu/snapshots/fl-msgMultiSend/00003.png b/tests_zemu/snapshots/fl-msgMultiSend/00003.png new file mode 100644 index 00000000..28e00837 Binary files /dev/null and b/tests_zemu/snapshots/fl-msgMultiSend/00003.png differ diff --git a/tests_zemu/snapshots/fl-msgMultiSend/00004.png b/tests_zemu/snapshots/fl-msgMultiSend/00004.png new file mode 100644 index 00000000..643aadee Binary files /dev/null and b/tests_zemu/snapshots/fl-msgMultiSend/00004.png differ diff --git a/tests_zemu/snapshots/fl-msgMultiSend/00005.png b/tests_zemu/snapshots/fl-msgMultiSend/00005.png new file mode 100644 index 00000000..f801cadb Binary files /dev/null and b/tests_zemu/snapshots/fl-msgMultiSend/00005.png differ diff --git a/tests_zemu/snapshots/fl-msgMultiSend/00006.png b/tests_zemu/snapshots/fl-msgMultiSend/00006.png new file mode 100644 index 00000000..24fdd01e Binary files /dev/null and b/tests_zemu/snapshots/fl-msgMultiSend/00006.png differ diff --git a/tests_zemu/snapshots/fl-msgMultiSend/00007.png b/tests_zemu/snapshots/fl-msgMultiSend/00007.png new file mode 100644 index 00000000..a5a57fb4 Binary files /dev/null and b/tests_zemu/snapshots/fl-msgMultiSend/00007.png differ diff --git a/tests_zemu/snapshots/fl-setWithdrawAddress-eth/00000.png b/tests_zemu/snapshots/fl-setWithdrawAddress-eth/00000.png new file mode 100644 index 00000000..1258956b Binary files /dev/null and b/tests_zemu/snapshots/fl-setWithdrawAddress-eth/00000.png differ diff --git a/tests_zemu/snapshots/fl-setWithdrawAddress-eth/00001.png b/tests_zemu/snapshots/fl-setWithdrawAddress-eth/00001.png new file mode 100644 index 00000000..b848cae6 Binary files /dev/null and b/tests_zemu/snapshots/fl-setWithdrawAddress-eth/00001.png differ diff --git a/tests_zemu/snapshots/fl-setWithdrawAddress-eth/00002.png b/tests_zemu/snapshots/fl-setWithdrawAddress-eth/00002.png new file mode 100644 index 00000000..05adce76 Binary files /dev/null and b/tests_zemu/snapshots/fl-setWithdrawAddress-eth/00002.png differ diff --git a/tests_zemu/snapshots/fl-setWithdrawAddress-eth/00003.png b/tests_zemu/snapshots/fl-setWithdrawAddress-eth/00003.png new file mode 100644 index 00000000..727fac7a Binary files /dev/null and b/tests_zemu/snapshots/fl-setWithdrawAddress-eth/00003.png differ diff --git a/tests_zemu/snapshots/fl-setWithdrawAddress-eth/00004.png b/tests_zemu/snapshots/fl-setWithdrawAddress-eth/00004.png new file mode 100644 index 00000000..12cb13d0 Binary files /dev/null and b/tests_zemu/snapshots/fl-setWithdrawAddress-eth/00004.png differ diff --git a/tests_zemu/snapshots/fl-setWithdrawAddress-eth/00005.png b/tests_zemu/snapshots/fl-setWithdrawAddress-eth/00005.png new file mode 100644 index 00000000..6e2b29c3 Binary files /dev/null and b/tests_zemu/snapshots/fl-setWithdrawAddress-eth/00005.png differ diff --git a/tests_zemu/snapshots/fl-setWithdrawAddress-eth/00006.png b/tests_zemu/snapshots/fl-setWithdrawAddress-eth/00006.png new file mode 100644 index 00000000..a5a57fb4 Binary files /dev/null and b/tests_zemu/snapshots/fl-setWithdrawAddress-eth/00006.png differ diff --git a/tests_zemu/snapshots/fl-setWithdrawAddress/00000.png b/tests_zemu/snapshots/fl-setWithdrawAddress/00000.png new file mode 100644 index 00000000..1258956b Binary files /dev/null and b/tests_zemu/snapshots/fl-setWithdrawAddress/00000.png differ diff --git a/tests_zemu/snapshots/fl-setWithdrawAddress/00001.png b/tests_zemu/snapshots/fl-setWithdrawAddress/00001.png new file mode 100644 index 00000000..b848cae6 Binary files /dev/null and b/tests_zemu/snapshots/fl-setWithdrawAddress/00001.png differ diff --git a/tests_zemu/snapshots/fl-setWithdrawAddress/00002.png b/tests_zemu/snapshots/fl-setWithdrawAddress/00002.png new file mode 100644 index 00000000..05adce76 Binary files /dev/null and b/tests_zemu/snapshots/fl-setWithdrawAddress/00002.png differ diff --git a/tests_zemu/snapshots/fl-setWithdrawAddress/00003.png b/tests_zemu/snapshots/fl-setWithdrawAddress/00003.png new file mode 100644 index 00000000..727fac7a Binary files /dev/null and b/tests_zemu/snapshots/fl-setWithdrawAddress/00003.png differ diff --git a/tests_zemu/snapshots/fl-setWithdrawAddress/00004.png b/tests_zemu/snapshots/fl-setWithdrawAddress/00004.png new file mode 100644 index 00000000..12cb13d0 Binary files /dev/null and b/tests_zemu/snapshots/fl-setWithdrawAddress/00004.png differ diff --git a/tests_zemu/snapshots/fl-setWithdrawAddress/00005.png b/tests_zemu/snapshots/fl-setWithdrawAddress/00005.png new file mode 100644 index 00000000..6e2b29c3 Binary files /dev/null and b/tests_zemu/snapshots/fl-setWithdrawAddress/00005.png differ diff --git a/tests_zemu/snapshots/fl-setWithdrawAddress/00006.png b/tests_zemu/snapshots/fl-setWithdrawAddress/00006.png new file mode 100644 index 00000000..a5a57fb4 Binary files /dev/null and b/tests_zemu/snapshots/fl-setWithdrawAddress/00006.png differ diff --git a/tests_zemu/snapshots/fl-show_address/00000.png b/tests_zemu/snapshots/fl-show_address/00000.png new file mode 100644 index 00000000..c2c331c9 Binary files /dev/null and b/tests_zemu/snapshots/fl-show_address/00000.png differ diff --git a/tests_zemu/snapshots/fl-show_address/00001.png b/tests_zemu/snapshots/fl-show_address/00001.png new file mode 100644 index 00000000..c3602912 Binary files /dev/null and b/tests_zemu/snapshots/fl-show_address/00001.png differ diff --git a/tests_zemu/snapshots/fl-show_address/00002.png b/tests_zemu/snapshots/fl-show_address/00002.png new file mode 100644 index 00000000..a5a57fb4 Binary files /dev/null and b/tests_zemu/snapshots/fl-show_address/00002.png differ diff --git a/tests_zemu/snapshots/fl-show_address_huge/00000.png b/tests_zemu/snapshots/fl-show_address_huge/00000.png new file mode 100644 index 00000000..05d89efb Binary files /dev/null and b/tests_zemu/snapshots/fl-show_address_huge/00000.png differ diff --git a/tests_zemu/snapshots/fl-show_address_huge/00001.png b/tests_zemu/snapshots/fl-show_address_huge/00001.png new file mode 100644 index 00000000..dfd33a6b Binary files /dev/null and b/tests_zemu/snapshots/fl-show_address_huge/00001.png differ diff --git a/tests_zemu/snapshots/fl-show_address_huge/00002.png b/tests_zemu/snapshots/fl-show_address_huge/00002.png new file mode 100644 index 00000000..0b85821e Binary files /dev/null and b/tests_zemu/snapshots/fl-show_address_huge/00002.png differ diff --git a/tests_zemu/snapshots/fl-show_address_huge/00003.png b/tests_zemu/snapshots/fl-show_address_huge/00003.png new file mode 100644 index 00000000..a5a57fb4 Binary files /dev/null and b/tests_zemu/snapshots/fl-show_address_huge/00003.png differ diff --git a/tests_zemu/snapshots/fl-show_eth_address/00000.png b/tests_zemu/snapshots/fl-show_eth_address/00000.png new file mode 100644 index 00000000..05d89efb Binary files /dev/null and b/tests_zemu/snapshots/fl-show_eth_address/00000.png differ diff --git a/tests_zemu/snapshots/fl-show_eth_address/00001.png b/tests_zemu/snapshots/fl-show_eth_address/00001.png new file mode 100644 index 00000000..6485f97e Binary files /dev/null and b/tests_zemu/snapshots/fl-show_eth_address/00001.png differ diff --git a/tests_zemu/snapshots/fl-show_eth_address/00002.png b/tests_zemu/snapshots/fl-show_eth_address/00002.png new file mode 100644 index 00000000..98331a1e Binary files /dev/null and b/tests_zemu/snapshots/fl-show_eth_address/00002.png differ diff --git a/tests_zemu/snapshots/fl-show_eth_address/00003.png b/tests_zemu/snapshots/fl-show_eth_address/00003.png new file mode 100644 index 00000000..a5a57fb4 Binary files /dev/null and b/tests_zemu/snapshots/fl-show_eth_address/00003.png differ diff --git a/tests_zemu/snapshots/fl-sign_basic/00000.png b/tests_zemu/snapshots/fl-sign_basic/00000.png new file mode 100644 index 00000000..c524445c Binary files /dev/null and b/tests_zemu/snapshots/fl-sign_basic/00000.png differ diff --git a/tests_zemu/snapshots/fl-sign_basic/00001.png b/tests_zemu/snapshots/fl-sign_basic/00001.png new file mode 100644 index 00000000..e9221082 Binary files /dev/null and b/tests_zemu/snapshots/fl-sign_basic/00001.png differ diff --git a/tests_zemu/snapshots/fl-sign_basic/00002.png b/tests_zemu/snapshots/fl-sign_basic/00002.png new file mode 100644 index 00000000..9fffb964 Binary files /dev/null and b/tests_zemu/snapshots/fl-sign_basic/00002.png differ diff --git a/tests_zemu/snapshots/fl-sign_basic/00003.png b/tests_zemu/snapshots/fl-sign_basic/00003.png new file mode 100644 index 00000000..7fd9d19e Binary files /dev/null and b/tests_zemu/snapshots/fl-sign_basic/00003.png differ diff --git a/tests_zemu/snapshots/fl-sign_basic/00004.png b/tests_zemu/snapshots/fl-sign_basic/00004.png new file mode 100644 index 00000000..a5a57fb4 Binary files /dev/null and b/tests_zemu/snapshots/fl-sign_basic/00004.png differ diff --git a/tests_zemu/snapshots/fl-sign_basic2/00000.png b/tests_zemu/snapshots/fl-sign_basic2/00000.png new file mode 100644 index 00000000..c524445c Binary files /dev/null and b/tests_zemu/snapshots/fl-sign_basic2/00000.png differ diff --git a/tests_zemu/snapshots/fl-sign_basic2/00001.png b/tests_zemu/snapshots/fl-sign_basic2/00001.png new file mode 100644 index 00000000..b086b9ea Binary files /dev/null and b/tests_zemu/snapshots/fl-sign_basic2/00001.png differ diff --git a/tests_zemu/snapshots/fl-sign_basic2/00002.png b/tests_zemu/snapshots/fl-sign_basic2/00002.png new file mode 100644 index 00000000..fe487d0a Binary files /dev/null and b/tests_zemu/snapshots/fl-sign_basic2/00002.png differ diff --git a/tests_zemu/snapshots/fl-sign_basic2/00003.png b/tests_zemu/snapshots/fl-sign_basic2/00003.png new file mode 100644 index 00000000..7fd9d19e Binary files /dev/null and b/tests_zemu/snapshots/fl-sign_basic2/00003.png differ diff --git a/tests_zemu/snapshots/fl-sign_basic2/00004.png b/tests_zemu/snapshots/fl-sign_basic2/00004.png new file mode 100644 index 00000000..a5a57fb4 Binary files /dev/null and b/tests_zemu/snapshots/fl-sign_basic2/00004.png differ diff --git a/tests_zemu/snapshots/fl-sign_basic_eth/00000.png b/tests_zemu/snapshots/fl-sign_basic_eth/00000.png new file mode 100644 index 00000000..1258956b Binary files /dev/null and b/tests_zemu/snapshots/fl-sign_basic_eth/00000.png differ diff --git a/tests_zemu/snapshots/fl-sign_basic_eth/00001.png b/tests_zemu/snapshots/fl-sign_basic_eth/00001.png new file mode 100644 index 00000000..884013b1 Binary files /dev/null and b/tests_zemu/snapshots/fl-sign_basic_eth/00001.png differ diff --git a/tests_zemu/snapshots/fl-sign_basic_eth/00002.png b/tests_zemu/snapshots/fl-sign_basic_eth/00002.png new file mode 100644 index 00000000..4bf2b364 Binary files /dev/null and b/tests_zemu/snapshots/fl-sign_basic_eth/00002.png differ diff --git a/tests_zemu/snapshots/fl-sign_basic_eth/00003.png b/tests_zemu/snapshots/fl-sign_basic_eth/00003.png new file mode 100644 index 00000000..dd6cceb3 Binary files /dev/null and b/tests_zemu/snapshots/fl-sign_basic_eth/00003.png differ diff --git a/tests_zemu/snapshots/fl-sign_basic_eth/00004.png b/tests_zemu/snapshots/fl-sign_basic_eth/00004.png new file mode 100644 index 00000000..12cb13d0 Binary files /dev/null and b/tests_zemu/snapshots/fl-sign_basic_eth/00004.png differ diff --git a/tests_zemu/snapshots/fl-sign_basic_eth/00005.png b/tests_zemu/snapshots/fl-sign_basic_eth/00005.png new file mode 100644 index 00000000..6e2b29c3 Binary files /dev/null and b/tests_zemu/snapshots/fl-sign_basic_eth/00005.png differ diff --git a/tests_zemu/snapshots/fl-sign_basic_eth/00006.png b/tests_zemu/snapshots/fl-sign_basic_eth/00006.png new file mode 100644 index 00000000..a5a57fb4 Binary files /dev/null and b/tests_zemu/snapshots/fl-sign_basic_eth/00006.png differ diff --git a/tests_zemu/snapshots/fl-sign_basic_eth_warning/00000.png b/tests_zemu/snapshots/fl-sign_basic_eth_warning/00000.png new file mode 100644 index 00000000..ba6049c0 Binary files /dev/null and b/tests_zemu/snapshots/fl-sign_basic_eth_warning/00000.png differ diff --git a/tests_zemu/snapshots/fl-sign_basic_eth_warning/00001.png b/tests_zemu/snapshots/fl-sign_basic_eth_warning/00001.png new file mode 100644 index 00000000..a5a57fb4 Binary files /dev/null and b/tests_zemu/snapshots/fl-sign_basic_eth_warning/00001.png differ diff --git a/tests_zemu/snapshots/fl-sign_basic_extra_fields/00000.png b/tests_zemu/snapshots/fl-sign_basic_extra_fields/00000.png new file mode 100644 index 00000000..c524445c Binary files /dev/null and b/tests_zemu/snapshots/fl-sign_basic_extra_fields/00000.png differ diff --git a/tests_zemu/snapshots/fl-sign_basic_extra_fields/00001.png b/tests_zemu/snapshots/fl-sign_basic_extra_fields/00001.png new file mode 100644 index 00000000..e9221082 Binary files /dev/null and b/tests_zemu/snapshots/fl-sign_basic_extra_fields/00001.png differ diff --git a/tests_zemu/snapshots/fl-sign_basic_extra_fields/00002.png b/tests_zemu/snapshots/fl-sign_basic_extra_fields/00002.png new file mode 100644 index 00000000..9fffb964 Binary files /dev/null and b/tests_zemu/snapshots/fl-sign_basic_extra_fields/00002.png differ diff --git a/tests_zemu/snapshots/fl-sign_basic_extra_fields/00003.png b/tests_zemu/snapshots/fl-sign_basic_extra_fields/00003.png new file mode 100644 index 00000000..7fd9d19e Binary files /dev/null and b/tests_zemu/snapshots/fl-sign_basic_extra_fields/00003.png differ diff --git a/tests_zemu/snapshots/fl-sign_basic_extra_fields/00004.png b/tests_zemu/snapshots/fl-sign_basic_extra_fields/00004.png new file mode 100644 index 00000000..a5a57fb4 Binary files /dev/null and b/tests_zemu/snapshots/fl-sign_basic_extra_fields/00004.png differ diff --git a/tests_zemu/snapshots/fl-textual-sign_basic/00000.png b/tests_zemu/snapshots/fl-textual-sign_basic/00000.png new file mode 100644 index 00000000..1258956b Binary files /dev/null and b/tests_zemu/snapshots/fl-textual-sign_basic/00000.png differ diff --git a/tests_zemu/snapshots/fl-textual-sign_basic/00001.png b/tests_zemu/snapshots/fl-textual-sign_basic/00001.png new file mode 100644 index 00000000..281bc24e Binary files /dev/null and b/tests_zemu/snapshots/fl-textual-sign_basic/00001.png differ diff --git a/tests_zemu/snapshots/fl-textual-sign_basic/00002.png b/tests_zemu/snapshots/fl-textual-sign_basic/00002.png new file mode 100644 index 00000000..74e7b876 Binary files /dev/null and b/tests_zemu/snapshots/fl-textual-sign_basic/00002.png differ diff --git a/tests_zemu/snapshots/fl-textual-sign_basic/00003.png b/tests_zemu/snapshots/fl-textual-sign_basic/00003.png new file mode 100644 index 00000000..0e5c7db1 Binary files /dev/null and b/tests_zemu/snapshots/fl-textual-sign_basic/00003.png differ diff --git a/tests_zemu/snapshots/fl-textual-sign_basic/00004.png b/tests_zemu/snapshots/fl-textual-sign_basic/00004.png new file mode 100644 index 00000000..e6fb0105 Binary files /dev/null and b/tests_zemu/snapshots/fl-textual-sign_basic/00004.png differ diff --git a/tests_zemu/snapshots/fl-textual-sign_basic/00005.png b/tests_zemu/snapshots/fl-textual-sign_basic/00005.png new file mode 100644 index 00000000..6e2b29c3 Binary files /dev/null and b/tests_zemu/snapshots/fl-textual-sign_basic/00005.png differ diff --git a/tests_zemu/snapshots/fl-textual-sign_basic/00006.png b/tests_zemu/snapshots/fl-textual-sign_basic/00006.png new file mode 100644 index 00000000..a5a57fb4 Binary files /dev/null and b/tests_zemu/snapshots/fl-textual-sign_basic/00006.png differ diff --git a/tests_zemu/snapshots/fl-textual-sign_basic_eth/00000.png b/tests_zemu/snapshots/fl-textual-sign_basic_eth/00000.png new file mode 100644 index 00000000..0537df54 Binary files /dev/null and b/tests_zemu/snapshots/fl-textual-sign_basic_eth/00000.png differ diff --git a/tests_zemu/snapshots/fl-textual-sign_basic_eth/00001.png b/tests_zemu/snapshots/fl-textual-sign_basic_eth/00001.png new file mode 100644 index 00000000..48c66a66 Binary files /dev/null and b/tests_zemu/snapshots/fl-textual-sign_basic_eth/00001.png differ diff --git a/tests_zemu/snapshots/fl-textual-sign_basic_eth/00002.png b/tests_zemu/snapshots/fl-textual-sign_basic_eth/00002.png new file mode 100644 index 00000000..f9ec9c1d Binary files /dev/null and b/tests_zemu/snapshots/fl-textual-sign_basic_eth/00002.png differ diff --git a/tests_zemu/snapshots/fl-textual-sign_basic_eth/00003.png b/tests_zemu/snapshots/fl-textual-sign_basic_eth/00003.png new file mode 100644 index 00000000..16094955 Binary files /dev/null and b/tests_zemu/snapshots/fl-textual-sign_basic_eth/00003.png differ diff --git a/tests_zemu/snapshots/fl-textual-sign_basic_eth/00004.png b/tests_zemu/snapshots/fl-textual-sign_basic_eth/00004.png new file mode 100644 index 00000000..e89b91c1 Binary files /dev/null and b/tests_zemu/snapshots/fl-textual-sign_basic_eth/00004.png differ diff --git a/tests_zemu/snapshots/fl-textual-sign_basic_eth/00005.png b/tests_zemu/snapshots/fl-textual-sign_basic_eth/00005.png new file mode 100644 index 00000000..3cdbdc41 Binary files /dev/null and b/tests_zemu/snapshots/fl-textual-sign_basic_eth/00005.png differ diff --git a/tests_zemu/snapshots/fl-textual-sign_basic_eth/00006.png b/tests_zemu/snapshots/fl-textual-sign_basic_eth/00006.png new file mode 100644 index 00000000..8898d3fe Binary files /dev/null and b/tests_zemu/snapshots/fl-textual-sign_basic_eth/00006.png differ diff --git a/tests_zemu/snapshots/fl-textual-sign_basic_eth/00007.png b/tests_zemu/snapshots/fl-textual-sign_basic_eth/00007.png new file mode 100644 index 00000000..d149f474 Binary files /dev/null and b/tests_zemu/snapshots/fl-textual-sign_basic_eth/00007.png differ diff --git a/tests_zemu/snapshots/fl-textual-sign_basic_eth/00008.png b/tests_zemu/snapshots/fl-textual-sign_basic_eth/00008.png new file mode 100644 index 00000000..ba80dd64 Binary files /dev/null and b/tests_zemu/snapshots/fl-textual-sign_basic_eth/00008.png differ diff --git a/tests_zemu/snapshots/fl-textual-sign_basic_eth/00009.png b/tests_zemu/snapshots/fl-textual-sign_basic_eth/00009.png new file mode 100644 index 00000000..a5a57fb4 Binary files /dev/null and b/tests_zemu/snapshots/fl-textual-sign_basic_eth/00009.png differ diff --git a/tests_zemu/snapshots/fl-textual-sign_basic_eth_warning/00000.png b/tests_zemu/snapshots/fl-textual-sign_basic_eth_warning/00000.png new file mode 100644 index 00000000..ba6049c0 Binary files /dev/null and b/tests_zemu/snapshots/fl-textual-sign_basic_eth_warning/00000.png differ diff --git a/tests_zemu/snapshots/fl-textual-sign_basic_eth_warning/00001.png b/tests_zemu/snapshots/fl-textual-sign_basic_eth_warning/00001.png new file mode 100644 index 00000000..a5a57fb4 Binary files /dev/null and b/tests_zemu/snapshots/fl-textual-sign_basic_eth_warning/00001.png differ diff --git a/tests_zemu/snapshots/fl-textual-sign_basic_expert/00000.png b/tests_zemu/snapshots/fl-textual-sign_basic_expert/00000.png new file mode 100644 index 00000000..0537df54 Binary files /dev/null and b/tests_zemu/snapshots/fl-textual-sign_basic_expert/00000.png differ diff --git a/tests_zemu/snapshots/fl-textual-sign_basic_expert/00001.png b/tests_zemu/snapshots/fl-textual-sign_basic_expert/00001.png new file mode 100644 index 00000000..48c66a66 Binary files /dev/null and b/tests_zemu/snapshots/fl-textual-sign_basic_expert/00001.png differ diff --git a/tests_zemu/snapshots/fl-textual-sign_basic_expert/00002.png b/tests_zemu/snapshots/fl-textual-sign_basic_expert/00002.png new file mode 100644 index 00000000..f9ec9c1d Binary files /dev/null and b/tests_zemu/snapshots/fl-textual-sign_basic_expert/00002.png differ diff --git a/tests_zemu/snapshots/fl-textual-sign_basic_expert/00003.png b/tests_zemu/snapshots/fl-textual-sign_basic_expert/00003.png new file mode 100644 index 00000000..16094955 Binary files /dev/null and b/tests_zemu/snapshots/fl-textual-sign_basic_expert/00003.png differ diff --git a/tests_zemu/snapshots/fl-textual-sign_basic_expert/00004.png b/tests_zemu/snapshots/fl-textual-sign_basic_expert/00004.png new file mode 100644 index 00000000..e89b91c1 Binary files /dev/null and b/tests_zemu/snapshots/fl-textual-sign_basic_expert/00004.png differ diff --git a/tests_zemu/snapshots/fl-textual-sign_basic_expert/00005.png b/tests_zemu/snapshots/fl-textual-sign_basic_expert/00005.png new file mode 100644 index 00000000..3cdbdc41 Binary files /dev/null and b/tests_zemu/snapshots/fl-textual-sign_basic_expert/00005.png differ diff --git a/tests_zemu/snapshots/fl-textual-sign_basic_expert/00006.png b/tests_zemu/snapshots/fl-textual-sign_basic_expert/00006.png new file mode 100644 index 00000000..8898d3fe Binary files /dev/null and b/tests_zemu/snapshots/fl-textual-sign_basic_expert/00006.png differ diff --git a/tests_zemu/snapshots/fl-textual-sign_basic_expert/00007.png b/tests_zemu/snapshots/fl-textual-sign_basic_expert/00007.png new file mode 100644 index 00000000..d149f474 Binary files /dev/null and b/tests_zemu/snapshots/fl-textual-sign_basic_expert/00007.png differ diff --git a/tests_zemu/snapshots/fl-textual-sign_basic_expert/00008.png b/tests_zemu/snapshots/fl-textual-sign_basic_expert/00008.png new file mode 100644 index 00000000..ba80dd64 Binary files /dev/null and b/tests_zemu/snapshots/fl-textual-sign_basic_expert/00008.png differ diff --git a/tests_zemu/snapshots/fl-textual-sign_basic_expert/00009.png b/tests_zemu/snapshots/fl-textual-sign_basic_expert/00009.png new file mode 100644 index 00000000..a5a57fb4 Binary files /dev/null and b/tests_zemu/snapshots/fl-textual-sign_basic_expert/00009.png differ diff --git a/tests_zemu/snapshots/s-mainmenu/00004.png b/tests_zemu/snapshots/s-mainmenu/00004.png index 44954afe..9399f8f0 100644 Binary files a/tests_zemu/snapshots/s-mainmenu/00004.png and b/tests_zemu/snapshots/s-mainmenu/00004.png differ diff --git a/tests_zemu/snapshots/s-mainmenu/00010.png b/tests_zemu/snapshots/s-mainmenu/00010.png index 44954afe..9399f8f0 100644 Binary files a/tests_zemu/snapshots/s-mainmenu/00010.png and b/tests_zemu/snapshots/s-mainmenu/00010.png differ diff --git a/tests_zemu/snapshots/sp-mainmenu/00004.png b/tests_zemu/snapshots/sp-mainmenu/00004.png index 2ff8585b..d6bbafe3 100644 Binary files a/tests_zemu/snapshots/sp-mainmenu/00004.png and b/tests_zemu/snapshots/sp-mainmenu/00004.png differ diff --git a/tests_zemu/snapshots/sp-mainmenu/00010.png b/tests_zemu/snapshots/sp-mainmenu/00010.png index 2ff8585b..d6bbafe3 100644 Binary files a/tests_zemu/snapshots/sp-mainmenu/00010.png and b/tests_zemu/snapshots/sp-mainmenu/00010.png differ diff --git a/tests_zemu/snapshots/st-govDeposit/00000.png b/tests_zemu/snapshots/st-govDeposit/00000.png index c1874b1e..6e1f7cb4 100644 Binary files a/tests_zemu/snapshots/st-govDeposit/00000.png and b/tests_zemu/snapshots/st-govDeposit/00000.png differ diff --git a/tests_zemu/snapshots/st-govDeposit/00001.png b/tests_zemu/snapshots/st-govDeposit/00001.png index 2a5ad8a8..43b520de 100644 Binary files a/tests_zemu/snapshots/st-govDeposit/00001.png and b/tests_zemu/snapshots/st-govDeposit/00001.png differ diff --git a/tests_zemu/snapshots/st-govDeposit/00002.png b/tests_zemu/snapshots/st-govDeposit/00002.png index 524b0425..80996b3c 100644 Binary files a/tests_zemu/snapshots/st-govDeposit/00002.png and b/tests_zemu/snapshots/st-govDeposit/00002.png differ diff --git a/tests_zemu/snapshots/st-govDeposit/00003.png b/tests_zemu/snapshots/st-govDeposit/00003.png index 9bfecf27..9b7862ad 100644 Binary files a/tests_zemu/snapshots/st-govDeposit/00003.png and b/tests_zemu/snapshots/st-govDeposit/00003.png differ diff --git a/tests_zemu/snapshots/st-govDeposit/00004.png b/tests_zemu/snapshots/st-govDeposit/00004.png index 7da083e4..c58dadca 100644 Binary files a/tests_zemu/snapshots/st-govDeposit/00004.png and b/tests_zemu/snapshots/st-govDeposit/00004.png differ diff --git a/tests_zemu/snapshots/st-ibc_denoms/00000.png b/tests_zemu/snapshots/st-ibc_denoms/00000.png index c1874b1e..6e1f7cb4 100644 Binary files a/tests_zemu/snapshots/st-ibc_denoms/00000.png and b/tests_zemu/snapshots/st-ibc_denoms/00000.png differ diff --git a/tests_zemu/snapshots/st-ibc_denoms/00001.png b/tests_zemu/snapshots/st-ibc_denoms/00001.png index ff5a113d..3ec9d4bc 100644 Binary files a/tests_zemu/snapshots/st-ibc_denoms/00001.png and b/tests_zemu/snapshots/st-ibc_denoms/00001.png differ diff --git a/tests_zemu/snapshots/st-ibc_denoms/00002.png b/tests_zemu/snapshots/st-ibc_denoms/00002.png index 493649b3..b32f06c7 100644 Binary files a/tests_zemu/snapshots/st-ibc_denoms/00002.png and b/tests_zemu/snapshots/st-ibc_denoms/00002.png differ diff --git a/tests_zemu/snapshots/st-ibc_denoms/00003.png b/tests_zemu/snapshots/st-ibc_denoms/00003.png index 49d196c0..9b7862ad 100644 Binary files a/tests_zemu/snapshots/st-ibc_denoms/00003.png and b/tests_zemu/snapshots/st-ibc_denoms/00003.png differ diff --git a/tests_zemu/snapshots/st-ibc_denoms/00004.png b/tests_zemu/snapshots/st-ibc_denoms/00004.png index 7da083e4..c58dadca 100644 Binary files a/tests_zemu/snapshots/st-ibc_denoms/00004.png and b/tests_zemu/snapshots/st-ibc_denoms/00004.png differ diff --git a/tests_zemu/snapshots/st-mainmenu/00000.png b/tests_zemu/snapshots/st-mainmenu/00000.png index ba2e8a92..c58dadca 100644 Binary files a/tests_zemu/snapshots/st-mainmenu/00000.png and b/tests_zemu/snapshots/st-mainmenu/00000.png differ diff --git a/tests_zemu/snapshots/st-mainmenu/00001.png b/tests_zemu/snapshots/st-mainmenu/00001.png index db957736..702d88c6 100644 Binary files a/tests_zemu/snapshots/st-mainmenu/00001.png and b/tests_zemu/snapshots/st-mainmenu/00001.png differ diff --git a/tests_zemu/snapshots/st-mainmenu/00002.png b/tests_zemu/snapshots/st-mainmenu/00002.png index bda73c86..df09f16e 100644 Binary files a/tests_zemu/snapshots/st-mainmenu/00002.png and b/tests_zemu/snapshots/st-mainmenu/00002.png differ diff --git a/tests_zemu/snapshots/st-mainmenu/00003.png b/tests_zemu/snapshots/st-mainmenu/00003.png index 874e8ef7..702d88c6 100644 Binary files a/tests_zemu/snapshots/st-mainmenu/00003.png and b/tests_zemu/snapshots/st-mainmenu/00003.png differ diff --git a/tests_zemu/snapshots/st-mainmenu/00004.png b/tests_zemu/snapshots/st-mainmenu/00004.png index bda73c86..c87b962e 100644 Binary files a/tests_zemu/snapshots/st-mainmenu/00004.png and b/tests_zemu/snapshots/st-mainmenu/00004.png differ diff --git a/tests_zemu/snapshots/st-mainmenu/00005.png b/tests_zemu/snapshots/st-mainmenu/00005.png index ba2e8a92..de384616 100644 Binary files a/tests_zemu/snapshots/st-mainmenu/00005.png and b/tests_zemu/snapshots/st-mainmenu/00005.png differ diff --git a/tests_zemu/snapshots/st-mainmenu/00006.png b/tests_zemu/snapshots/st-mainmenu/00006.png new file mode 100644 index 00000000..c58dadca Binary files /dev/null and b/tests_zemu/snapshots/st-mainmenu/00006.png differ diff --git a/tests_zemu/snapshots/st-msgMultiSend/00000.png b/tests_zemu/snapshots/st-msgMultiSend/00000.png index c1874b1e..d74fd956 100644 Binary files a/tests_zemu/snapshots/st-msgMultiSend/00000.png and b/tests_zemu/snapshots/st-msgMultiSend/00000.png differ diff --git a/tests_zemu/snapshots/st-msgMultiSend/00001.png b/tests_zemu/snapshots/st-msgMultiSend/00001.png index ea564414..cb6d36bf 100644 Binary files a/tests_zemu/snapshots/st-msgMultiSend/00001.png and b/tests_zemu/snapshots/st-msgMultiSend/00001.png differ diff --git a/tests_zemu/snapshots/st-msgMultiSend/00002.png b/tests_zemu/snapshots/st-msgMultiSend/00002.png index 5f7e2fdd..8035e45c 100644 Binary files a/tests_zemu/snapshots/st-msgMultiSend/00002.png and b/tests_zemu/snapshots/st-msgMultiSend/00002.png differ diff --git a/tests_zemu/snapshots/st-msgMultiSend/00003.png b/tests_zemu/snapshots/st-msgMultiSend/00003.png index 4e7f82c1..a42c95f2 100644 Binary files a/tests_zemu/snapshots/st-msgMultiSend/00003.png and b/tests_zemu/snapshots/st-msgMultiSend/00003.png differ diff --git a/tests_zemu/snapshots/st-msgMultiSend/00004.png b/tests_zemu/snapshots/st-msgMultiSend/00004.png index 5b392f6e..e850f48e 100644 Binary files a/tests_zemu/snapshots/st-msgMultiSend/00004.png and b/tests_zemu/snapshots/st-msgMultiSend/00004.png differ diff --git a/tests_zemu/snapshots/st-msgMultiSend/00005.png b/tests_zemu/snapshots/st-msgMultiSend/00005.png index ec8695b4..c58dadca 100644 Binary files a/tests_zemu/snapshots/st-msgMultiSend/00005.png and b/tests_zemu/snapshots/st-msgMultiSend/00005.png differ diff --git a/tests_zemu/snapshots/st-setWithdrawAddress-eth/00000.png b/tests_zemu/snapshots/st-setWithdrawAddress-eth/00000.png index c1874b1e..d74fd956 100644 Binary files a/tests_zemu/snapshots/st-setWithdrawAddress-eth/00000.png and b/tests_zemu/snapshots/st-setWithdrawAddress-eth/00000.png differ diff --git a/tests_zemu/snapshots/st-setWithdrawAddress-eth/00001.png b/tests_zemu/snapshots/st-setWithdrawAddress-eth/00001.png index 66ffedaf..2e97fb41 100644 Binary files a/tests_zemu/snapshots/st-setWithdrawAddress-eth/00001.png and b/tests_zemu/snapshots/st-setWithdrawAddress-eth/00001.png differ diff --git a/tests_zemu/snapshots/st-setWithdrawAddress-eth/00002.png b/tests_zemu/snapshots/st-setWithdrawAddress-eth/00002.png index 3d7f5c46..98def1bc 100644 Binary files a/tests_zemu/snapshots/st-setWithdrawAddress-eth/00002.png and b/tests_zemu/snapshots/st-setWithdrawAddress-eth/00002.png differ diff --git a/tests_zemu/snapshots/st-setWithdrawAddress-eth/00003.png b/tests_zemu/snapshots/st-setWithdrawAddress-eth/00003.png index 265f2286..ced93fbe 100644 Binary files a/tests_zemu/snapshots/st-setWithdrawAddress-eth/00003.png and b/tests_zemu/snapshots/st-setWithdrawAddress-eth/00003.png differ diff --git a/tests_zemu/snapshots/st-setWithdrawAddress-eth/00004.png b/tests_zemu/snapshots/st-setWithdrawAddress-eth/00004.png index 80170bf5..e850f48e 100644 Binary files a/tests_zemu/snapshots/st-setWithdrawAddress-eth/00004.png and b/tests_zemu/snapshots/st-setWithdrawAddress-eth/00004.png differ diff --git a/tests_zemu/snapshots/st-setWithdrawAddress-eth/00005.png b/tests_zemu/snapshots/st-setWithdrawAddress-eth/00005.png index fe642927..c58dadca 100644 Binary files a/tests_zemu/snapshots/st-setWithdrawAddress-eth/00005.png and b/tests_zemu/snapshots/st-setWithdrawAddress-eth/00005.png differ diff --git a/tests_zemu/snapshots/st-setWithdrawAddress/00000.png b/tests_zemu/snapshots/st-setWithdrawAddress/00000.png index c1874b1e..d74fd956 100644 Binary files a/tests_zemu/snapshots/st-setWithdrawAddress/00000.png and b/tests_zemu/snapshots/st-setWithdrawAddress/00000.png differ diff --git a/tests_zemu/snapshots/st-setWithdrawAddress/00001.png b/tests_zemu/snapshots/st-setWithdrawAddress/00001.png index 66ffedaf..2e97fb41 100644 Binary files a/tests_zemu/snapshots/st-setWithdrawAddress/00001.png and b/tests_zemu/snapshots/st-setWithdrawAddress/00001.png differ diff --git a/tests_zemu/snapshots/st-setWithdrawAddress/00002.png b/tests_zemu/snapshots/st-setWithdrawAddress/00002.png index 3d7f5c46..98def1bc 100644 Binary files a/tests_zemu/snapshots/st-setWithdrawAddress/00002.png and b/tests_zemu/snapshots/st-setWithdrawAddress/00002.png differ diff --git a/tests_zemu/snapshots/st-setWithdrawAddress/00003.png b/tests_zemu/snapshots/st-setWithdrawAddress/00003.png index 265f2286..ced93fbe 100644 Binary files a/tests_zemu/snapshots/st-setWithdrawAddress/00003.png and b/tests_zemu/snapshots/st-setWithdrawAddress/00003.png differ diff --git a/tests_zemu/snapshots/st-setWithdrawAddress/00004.png b/tests_zemu/snapshots/st-setWithdrawAddress/00004.png index 80170bf5..e850f48e 100644 Binary files a/tests_zemu/snapshots/st-setWithdrawAddress/00004.png and b/tests_zemu/snapshots/st-setWithdrawAddress/00004.png differ diff --git a/tests_zemu/snapshots/st-setWithdrawAddress/00005.png b/tests_zemu/snapshots/st-setWithdrawAddress/00005.png index fe642927..c58dadca 100644 Binary files a/tests_zemu/snapshots/st-setWithdrawAddress/00005.png and b/tests_zemu/snapshots/st-setWithdrawAddress/00005.png differ diff --git a/tests_zemu/snapshots/st-show_address/00000.png b/tests_zemu/snapshots/st-show_address/00000.png index c10c1fb7..adbc0379 100644 Binary files a/tests_zemu/snapshots/st-show_address/00000.png and b/tests_zemu/snapshots/st-show_address/00000.png differ diff --git a/tests_zemu/snapshots/st-show_address/00001.png b/tests_zemu/snapshots/st-show_address/00001.png index 8b119985..ed8db411 100644 Binary files a/tests_zemu/snapshots/st-show_address/00001.png and b/tests_zemu/snapshots/st-show_address/00001.png differ diff --git a/tests_zemu/snapshots/st-show_address/00002.png b/tests_zemu/snapshots/st-show_address/00002.png index ba2e8a92..c58dadca 100644 Binary files a/tests_zemu/snapshots/st-show_address/00002.png and b/tests_zemu/snapshots/st-show_address/00002.png differ diff --git a/tests_zemu/snapshots/st-show_address_huge/00000.png b/tests_zemu/snapshots/st-show_address_huge/00000.png index c10c1fb7..0ab9ae33 100644 Binary files a/tests_zemu/snapshots/st-show_address_huge/00000.png and b/tests_zemu/snapshots/st-show_address_huge/00000.png differ diff --git a/tests_zemu/snapshots/st-show_address_huge/00001.png b/tests_zemu/snapshots/st-show_address_huge/00001.png index 02dfca11..b8352d9a 100644 Binary files a/tests_zemu/snapshots/st-show_address_huge/00001.png and b/tests_zemu/snapshots/st-show_address_huge/00001.png differ diff --git a/tests_zemu/snapshots/st-show_address_huge/00002.png b/tests_zemu/snapshots/st-show_address_huge/00002.png index 38861a7f..7d8719e5 100644 Binary files a/tests_zemu/snapshots/st-show_address_huge/00002.png and b/tests_zemu/snapshots/st-show_address_huge/00002.png differ diff --git a/tests_zemu/snapshots/st-show_address_huge/00003.png b/tests_zemu/snapshots/st-show_address_huge/00003.png index ba2e8a92..c58dadca 100644 Binary files a/tests_zemu/snapshots/st-show_address_huge/00003.png and b/tests_zemu/snapshots/st-show_address_huge/00003.png differ diff --git a/tests_zemu/snapshots/st-show_eth_address/00000.png b/tests_zemu/snapshots/st-show_eth_address/00000.png index c10c1fb7..0ab9ae33 100644 Binary files a/tests_zemu/snapshots/st-show_eth_address/00000.png and b/tests_zemu/snapshots/st-show_eth_address/00000.png differ diff --git a/tests_zemu/snapshots/st-show_eth_address/00001.png b/tests_zemu/snapshots/st-show_eth_address/00001.png index e0c21f9c..2acffd9f 100644 Binary files a/tests_zemu/snapshots/st-show_eth_address/00001.png and b/tests_zemu/snapshots/st-show_eth_address/00001.png differ diff --git a/tests_zemu/snapshots/st-show_eth_address/00002.png b/tests_zemu/snapshots/st-show_eth_address/00002.png index b134010b..0f9b1bbf 100644 Binary files a/tests_zemu/snapshots/st-show_eth_address/00002.png and b/tests_zemu/snapshots/st-show_eth_address/00002.png differ diff --git a/tests_zemu/snapshots/st-show_eth_address/00003.png b/tests_zemu/snapshots/st-show_eth_address/00003.png index ba2e8a92..c58dadca 100644 Binary files a/tests_zemu/snapshots/st-show_eth_address/00003.png and b/tests_zemu/snapshots/st-show_eth_address/00003.png differ diff --git a/tests_zemu/snapshots/st-sign_basic/00000.png b/tests_zemu/snapshots/st-sign_basic/00000.png index c1874b1e..6e1f7cb4 100644 Binary files a/tests_zemu/snapshots/st-sign_basic/00000.png and b/tests_zemu/snapshots/st-sign_basic/00000.png differ diff --git a/tests_zemu/snapshots/st-sign_basic/00001.png b/tests_zemu/snapshots/st-sign_basic/00001.png index e3f499c1..a4cafc30 100644 Binary files a/tests_zemu/snapshots/st-sign_basic/00001.png and b/tests_zemu/snapshots/st-sign_basic/00001.png differ diff --git a/tests_zemu/snapshots/st-sign_basic/00002.png b/tests_zemu/snapshots/st-sign_basic/00002.png index ed9f206f..d4fc13d5 100644 Binary files a/tests_zemu/snapshots/st-sign_basic/00002.png and b/tests_zemu/snapshots/st-sign_basic/00002.png differ diff --git a/tests_zemu/snapshots/st-sign_basic/00003.png b/tests_zemu/snapshots/st-sign_basic/00003.png index c78dbcd7..9b7862ad 100644 Binary files a/tests_zemu/snapshots/st-sign_basic/00003.png and b/tests_zemu/snapshots/st-sign_basic/00003.png differ diff --git a/tests_zemu/snapshots/st-sign_basic/00004.png b/tests_zemu/snapshots/st-sign_basic/00004.png index 7da083e4..c58dadca 100644 Binary files a/tests_zemu/snapshots/st-sign_basic/00004.png and b/tests_zemu/snapshots/st-sign_basic/00004.png differ diff --git a/tests_zemu/snapshots/st-sign_basic2/00000.png b/tests_zemu/snapshots/st-sign_basic2/00000.png index c1874b1e..6e1f7cb4 100644 Binary files a/tests_zemu/snapshots/st-sign_basic2/00000.png and b/tests_zemu/snapshots/st-sign_basic2/00000.png differ diff --git a/tests_zemu/snapshots/st-sign_basic2/00001.png b/tests_zemu/snapshots/st-sign_basic2/00001.png index 2abb6f8d..19cc47f3 100644 Binary files a/tests_zemu/snapshots/st-sign_basic2/00001.png and b/tests_zemu/snapshots/st-sign_basic2/00001.png differ diff --git a/tests_zemu/snapshots/st-sign_basic2/00002.png b/tests_zemu/snapshots/st-sign_basic2/00002.png index c229b26d..62a1258e 100644 Binary files a/tests_zemu/snapshots/st-sign_basic2/00002.png and b/tests_zemu/snapshots/st-sign_basic2/00002.png differ diff --git a/tests_zemu/snapshots/st-sign_basic2/00003.png b/tests_zemu/snapshots/st-sign_basic2/00003.png index f384cce6..9b7862ad 100644 Binary files a/tests_zemu/snapshots/st-sign_basic2/00003.png and b/tests_zemu/snapshots/st-sign_basic2/00003.png differ diff --git a/tests_zemu/snapshots/st-sign_basic2/00004.png b/tests_zemu/snapshots/st-sign_basic2/00004.png index ba2e8a92..c58dadca 100644 Binary files a/tests_zemu/snapshots/st-sign_basic2/00004.png and b/tests_zemu/snapshots/st-sign_basic2/00004.png differ diff --git a/tests_zemu/snapshots/st-sign_basic_eth/00000.png b/tests_zemu/snapshots/st-sign_basic_eth/00000.png index c1874b1e..d74fd956 100644 Binary files a/tests_zemu/snapshots/st-sign_basic_eth/00000.png and b/tests_zemu/snapshots/st-sign_basic_eth/00000.png differ diff --git a/tests_zemu/snapshots/st-sign_basic_eth/00001.png b/tests_zemu/snapshots/st-sign_basic_eth/00001.png index fc500d3a..1b55db72 100644 Binary files a/tests_zemu/snapshots/st-sign_basic_eth/00001.png and b/tests_zemu/snapshots/st-sign_basic_eth/00001.png differ diff --git a/tests_zemu/snapshots/st-sign_basic_eth/00002.png b/tests_zemu/snapshots/st-sign_basic_eth/00002.png index 24fbff89..362a5ac2 100644 Binary files a/tests_zemu/snapshots/st-sign_basic_eth/00002.png and b/tests_zemu/snapshots/st-sign_basic_eth/00002.png differ diff --git a/tests_zemu/snapshots/st-sign_basic_eth/00003.png b/tests_zemu/snapshots/st-sign_basic_eth/00003.png index b57125f1..9054c462 100644 Binary files a/tests_zemu/snapshots/st-sign_basic_eth/00003.png and b/tests_zemu/snapshots/st-sign_basic_eth/00003.png differ diff --git a/tests_zemu/snapshots/st-sign_basic_eth/00004.png b/tests_zemu/snapshots/st-sign_basic_eth/00004.png index a1bda4ee..e850f48e 100644 Binary files a/tests_zemu/snapshots/st-sign_basic_eth/00004.png and b/tests_zemu/snapshots/st-sign_basic_eth/00004.png differ diff --git a/tests_zemu/snapshots/st-sign_basic_eth/00005.png b/tests_zemu/snapshots/st-sign_basic_eth/00005.png index fe642927..c58dadca 100644 Binary files a/tests_zemu/snapshots/st-sign_basic_eth/00005.png and b/tests_zemu/snapshots/st-sign_basic_eth/00005.png differ diff --git a/tests_zemu/snapshots/st-sign_basic_eth_warning/00000.png b/tests_zemu/snapshots/st-sign_basic_eth_warning/00000.png index ec85a9bb..529300ab 100644 Binary files a/tests_zemu/snapshots/st-sign_basic_eth_warning/00000.png and b/tests_zemu/snapshots/st-sign_basic_eth_warning/00000.png differ diff --git a/tests_zemu/snapshots/st-sign_basic_eth_warning/00001.png b/tests_zemu/snapshots/st-sign_basic_eth_warning/00001.png index ba2e8a92..c58dadca 100644 Binary files a/tests_zemu/snapshots/st-sign_basic_eth_warning/00001.png and b/tests_zemu/snapshots/st-sign_basic_eth_warning/00001.png differ diff --git a/tests_zemu/snapshots/st-sign_basic_extra_fields/00000.png b/tests_zemu/snapshots/st-sign_basic_extra_fields/00000.png index c1874b1e..6e1f7cb4 100644 Binary files a/tests_zemu/snapshots/st-sign_basic_extra_fields/00000.png and b/tests_zemu/snapshots/st-sign_basic_extra_fields/00000.png differ diff --git a/tests_zemu/snapshots/st-sign_basic_extra_fields/00001.png b/tests_zemu/snapshots/st-sign_basic_extra_fields/00001.png index e3f499c1..a4cafc30 100644 Binary files a/tests_zemu/snapshots/st-sign_basic_extra_fields/00001.png and b/tests_zemu/snapshots/st-sign_basic_extra_fields/00001.png differ diff --git a/tests_zemu/snapshots/st-sign_basic_extra_fields/00002.png b/tests_zemu/snapshots/st-sign_basic_extra_fields/00002.png index ed9f206f..d4fc13d5 100644 Binary files a/tests_zemu/snapshots/st-sign_basic_extra_fields/00002.png and b/tests_zemu/snapshots/st-sign_basic_extra_fields/00002.png differ diff --git a/tests_zemu/snapshots/st-sign_basic_extra_fields/00003.png b/tests_zemu/snapshots/st-sign_basic_extra_fields/00003.png index c78dbcd7..9b7862ad 100644 Binary files a/tests_zemu/snapshots/st-sign_basic_extra_fields/00003.png and b/tests_zemu/snapshots/st-sign_basic_extra_fields/00003.png differ diff --git a/tests_zemu/snapshots/st-sign_basic_extra_fields/00004.png b/tests_zemu/snapshots/st-sign_basic_extra_fields/00004.png index 7da083e4..c58dadca 100644 Binary files a/tests_zemu/snapshots/st-sign_basic_extra_fields/00004.png and b/tests_zemu/snapshots/st-sign_basic_extra_fields/00004.png differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic/00000.png b/tests_zemu/snapshots/st-textual-sign_basic/00000.png index c1874b1e..d74fd956 100644 Binary files a/tests_zemu/snapshots/st-textual-sign_basic/00000.png and b/tests_zemu/snapshots/st-textual-sign_basic/00000.png differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic/00001.png b/tests_zemu/snapshots/st-textual-sign_basic/00001.png index 60bd1e9b..625eca89 100644 Binary files a/tests_zemu/snapshots/st-textual-sign_basic/00001.png and b/tests_zemu/snapshots/st-textual-sign_basic/00001.png differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic/00002.png b/tests_zemu/snapshots/st-textual-sign_basic/00002.png index 7a6a5ac3..ea122b6f 100644 Binary files a/tests_zemu/snapshots/st-textual-sign_basic/00002.png and b/tests_zemu/snapshots/st-textual-sign_basic/00002.png differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic/00003.png b/tests_zemu/snapshots/st-textual-sign_basic/00003.png index a9c25d2b..4059af8b 100644 Binary files a/tests_zemu/snapshots/st-textual-sign_basic/00003.png and b/tests_zemu/snapshots/st-textual-sign_basic/00003.png differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic/00004.png b/tests_zemu/snapshots/st-textual-sign_basic/00004.png index e54582a5..e850f48e 100644 Binary files a/tests_zemu/snapshots/st-textual-sign_basic/00004.png and b/tests_zemu/snapshots/st-textual-sign_basic/00004.png differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic/00005.png b/tests_zemu/snapshots/st-textual-sign_basic/00005.png index fe642927..c58dadca 100644 Binary files a/tests_zemu/snapshots/st-textual-sign_basic/00005.png and b/tests_zemu/snapshots/st-textual-sign_basic/00005.png differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic_eth/00000.png b/tests_zemu/snapshots/st-textual-sign_basic_eth/00000.png index c1874b1e..879f679f 100644 Binary files a/tests_zemu/snapshots/st-textual-sign_basic_eth/00000.png and b/tests_zemu/snapshots/st-textual-sign_basic_eth/00000.png differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic_eth/00001.png b/tests_zemu/snapshots/st-textual-sign_basic_eth/00001.png index a68d599f..cf939231 100644 Binary files a/tests_zemu/snapshots/st-textual-sign_basic_eth/00001.png and b/tests_zemu/snapshots/st-textual-sign_basic_eth/00001.png differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic_eth/00002.png b/tests_zemu/snapshots/st-textual-sign_basic_eth/00002.png index 9aaa234b..75c585fe 100644 Binary files a/tests_zemu/snapshots/st-textual-sign_basic_eth/00002.png and b/tests_zemu/snapshots/st-textual-sign_basic_eth/00002.png differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic_eth/00003.png b/tests_zemu/snapshots/st-textual-sign_basic_eth/00003.png index 276bf01b..c5d1ec18 100644 Binary files a/tests_zemu/snapshots/st-textual-sign_basic_eth/00003.png and b/tests_zemu/snapshots/st-textual-sign_basic_eth/00003.png differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic_eth/00004.png b/tests_zemu/snapshots/st-textual-sign_basic_eth/00004.png index 62d2fbd5..1920f9e4 100644 Binary files a/tests_zemu/snapshots/st-textual-sign_basic_eth/00004.png and b/tests_zemu/snapshots/st-textual-sign_basic_eth/00004.png differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic_eth/00005.png b/tests_zemu/snapshots/st-textual-sign_basic_eth/00005.png index c62a1df2..4e528f4b 100644 Binary files a/tests_zemu/snapshots/st-textual-sign_basic_eth/00005.png and b/tests_zemu/snapshots/st-textual-sign_basic_eth/00005.png differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic_eth/00006.png b/tests_zemu/snapshots/st-textual-sign_basic_eth/00006.png index 6d397962..c5df35c4 100644 Binary files a/tests_zemu/snapshots/st-textual-sign_basic_eth/00006.png and b/tests_zemu/snapshots/st-textual-sign_basic_eth/00006.png differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic_eth/00007.png b/tests_zemu/snapshots/st-textual-sign_basic_eth/00007.png index 0733415b..c58dadca 100644 Binary files a/tests_zemu/snapshots/st-textual-sign_basic_eth/00007.png and b/tests_zemu/snapshots/st-textual-sign_basic_eth/00007.png differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic_eth_warning/00000.png b/tests_zemu/snapshots/st-textual-sign_basic_eth_warning/00000.png index ec85a9bb..529300ab 100644 Binary files a/tests_zemu/snapshots/st-textual-sign_basic_eth_warning/00000.png and b/tests_zemu/snapshots/st-textual-sign_basic_eth_warning/00000.png differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic_eth_warning/00001.png b/tests_zemu/snapshots/st-textual-sign_basic_eth_warning/00001.png index ba2e8a92..c58dadca 100644 Binary files a/tests_zemu/snapshots/st-textual-sign_basic_eth_warning/00001.png and b/tests_zemu/snapshots/st-textual-sign_basic_eth_warning/00001.png differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic_expert/00000.png b/tests_zemu/snapshots/st-textual-sign_basic_expert/00000.png index c1874b1e..879f679f 100644 Binary files a/tests_zemu/snapshots/st-textual-sign_basic_expert/00000.png and b/tests_zemu/snapshots/st-textual-sign_basic_expert/00000.png differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic_expert/00001.png b/tests_zemu/snapshots/st-textual-sign_basic_expert/00001.png index a68d599f..cf939231 100644 Binary files a/tests_zemu/snapshots/st-textual-sign_basic_expert/00001.png and b/tests_zemu/snapshots/st-textual-sign_basic_expert/00001.png differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic_expert/00002.png b/tests_zemu/snapshots/st-textual-sign_basic_expert/00002.png index 9aaa234b..75c585fe 100644 Binary files a/tests_zemu/snapshots/st-textual-sign_basic_expert/00002.png and b/tests_zemu/snapshots/st-textual-sign_basic_expert/00002.png differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic_expert/00003.png b/tests_zemu/snapshots/st-textual-sign_basic_expert/00003.png index 276bf01b..c5d1ec18 100644 Binary files a/tests_zemu/snapshots/st-textual-sign_basic_expert/00003.png and b/tests_zemu/snapshots/st-textual-sign_basic_expert/00003.png differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic_expert/00004.png b/tests_zemu/snapshots/st-textual-sign_basic_expert/00004.png index 62d2fbd5..1920f9e4 100644 Binary files a/tests_zemu/snapshots/st-textual-sign_basic_expert/00004.png and b/tests_zemu/snapshots/st-textual-sign_basic_expert/00004.png differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic_expert/00005.png b/tests_zemu/snapshots/st-textual-sign_basic_expert/00005.png index c62a1df2..4e528f4b 100644 Binary files a/tests_zemu/snapshots/st-textual-sign_basic_expert/00005.png and b/tests_zemu/snapshots/st-textual-sign_basic_expert/00005.png differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic_expert/00006.png b/tests_zemu/snapshots/st-textual-sign_basic_expert/00006.png index 6d397962..c5df35c4 100644 Binary files a/tests_zemu/snapshots/st-textual-sign_basic_expert/00006.png and b/tests_zemu/snapshots/st-textual-sign_basic_expert/00006.png differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic_expert/00007.png b/tests_zemu/snapshots/st-textual-sign_basic_expert/00007.png index 0733415b..c58dadca 100644 Binary files a/tests_zemu/snapshots/st-textual-sign_basic_expert/00007.png and b/tests_zemu/snapshots/st-textual-sign_basic_expert/00007.png differ diff --git a/tests_zemu/snapshots/x-mainmenu/00004.png b/tests_zemu/snapshots/x-mainmenu/00004.png index 2ff8585b..d6bbafe3 100644 Binary files a/tests_zemu/snapshots/x-mainmenu/00004.png and b/tests_zemu/snapshots/x-mainmenu/00004.png differ diff --git a/tests_zemu/snapshots/x-mainmenu/00010.png b/tests_zemu/snapshots/x-mainmenu/00010.png index 2ff8585b..d6bbafe3 100644 Binary files a/tests_zemu/snapshots/x-mainmenu/00010.png and b/tests_zemu/snapshots/x-mainmenu/00010.png differ diff --git a/tests_zemu/tests/amino.test.ts b/tests_zemu/tests/amino.test.ts index 9bc28d0f..7dc50337 100644 --- a/tests_zemu/tests/amino.test.ts +++ b/tests_zemu/tests/amino.test.ts @@ -1,5 +1,5 @@ /** ****************************************************************************** - * (c) 2018-2022 Zondax GmbH + * (c) 2018 - 2024 Zondax AG * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,7 +14,7 @@ * limitations under the License. ******************************************************************************* */ -import Zemu, { ClickNavigation, TouchNavigation } from '@zondax/zemu' +import Zemu, { ClickNavigation, TouchNavigation, isTouchDevice } from '@zondax/zemu' // @ts-ignore import { CosmosApp } from '@zondax/ledger-cosmos-js' import { @@ -33,7 +33,7 @@ import { import secp256k1 from 'secp256k1/elliptic' // @ts-ignore import crypto from 'crypto' -import { ButtonKind, IButton } from '@zondax/zemu/dist/types' +import { ButtonKind, IButton, SwipeDirection } from '@zondax/zemu/dist/types' jest.setTimeout(120000) @@ -496,13 +496,14 @@ describe('Amino', function () { // Wait until we are not in the main menu await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()) let nav = undefined; - if (m.name === 'stax') { + if (isTouchDevice(m.name)) { const okButton: IButton = { x: 200, y: 540, delay: 0.25, + direction: SwipeDirection.NoSwipe, }; - nav = new TouchNavigation([ + nav = new TouchNavigation(m.name, [ ButtonKind.ConfirmYesButton, ]); nav.schedule[0].button = okButton; diff --git a/tests_zemu/tests/common.ts b/tests_zemu/tests/common.ts index 722cae2a..ec158cae 100644 --- a/tests_zemu/tests/common.ts +++ b/tests_zemu/tests/common.ts @@ -25,6 +25,7 @@ const APP_PATH_S = Resolve('../app/output/app_s.elf') const APP_PATH_X = Resolve('../app/output/app_x.elf') const APP_PATH_SP = Resolve('../app/output/app_s2.elf') const APP_PATH_ST = Resolve('../app/output/app_stax.elf') +const APP_PATH_FL = Resolve('../app/output/app_flex.elf') export const defaultOptions = { ...DEFAULT_START_OPTIONS, @@ -38,66 +39,67 @@ export const DEVICE_MODELS: IDeviceModel[] = [ { name: 'nanox', prefix: 'X', path: APP_PATH_X }, { name: 'nanosp', prefix: 'SP', path: APP_PATH_SP }, { name: 'stax', prefix: 'ST', path: APP_PATH_ST }, + { name: 'flex', prefix: 'FL', path: APP_PATH_FL }, ] export const tx_sign_textual = 'a10192a20168436861696e20696402686d792d636861696ea2016e4163636f756e74206e756d626572026131a2016853657175656e6365026132a301674164647265737302782d636f736d6f7331756c6176336873656e7570737771666b77327933737570356b677471776e767161386579687304f5a3016a5075626c6963206b657902781f2f636f736d6f732e63727970746f2e736563703235366b312e5075624b657904f5a3026d5075624b6579206f626a656374030104f5a401634b657902785230324542204444374620453446442045423736204443384120323035452046363544203739304320443330452038413337203541354320323532382045423341203932334120463146422034443739203444030204f5a102781e54686973207472616e73616374696f6e206861732031204d657373616765a3016d4d6573736167652028312f312902781c2f636f736d6f732e62616e6b2e763162657461312e4d736753656e640301a2026e4d736753656e64206f626a6563740302a3016c46726f6d206164647265737302782d636f736d6f7331756c6176336873656e7570737771666b77327933737570356b677471776e76716138657968730303a3016a546f206164647265737302782d636f736d6f7331656a726634637572327779366b667572673966326a707070326833616665356836706b6835740303a30166416d6f756e74026731302041544f4d0303a1026e456e64206f66204d657373616765a201644d656d6f0278193e20e29a9befb88f5c7532363942e29a9befb88f2020202020a2016446656573026a302e3030322041544f4da30169476173206c696d697402673130302730303004f5a3017148617368206f66207261772062797465730278403963303433323930313039633237306232666661396633633066613535613039306330313235656265663838316637646135333937386462663933663733383504f5' export const example_tx_str_msgMultiSend = { - "account_number":"10", - "chain_id":"chain-WiONzW", - "fee":{ - "amount":[], - "gas":"200000" - }, - "memo":"", - "msgs":[ - { - "type":"cosmos-sdk/MsgMultiSend", - "value": { - "inputs":[ + "account_number": "10", + "chain_id": "chain-WiONzW", + "fee": { + "amount": [], + "gas": "200000" + }, + "memo": "", + "msgs": [ + { + "type": "cosmos-sdk/MsgMultiSend", + "value": { + "inputs": [ + { + "address": "cosmos1w4efqfklkezgyt6lncjdwxncrzyzpr2efzcqal", + "coins": [ { - "address":"cosmos1w4efqfklkezgyt6lncjdwxncrzyzpr2efzcqal", - "coins":[ - { - "amount":"30", - "denom":"stake" - } - ] + "amount": "30", + "denom": "stake" } - ], - "outputs":[ + ] + } + ], + "outputs": [ + { + "address": "cosmos184hgxlzat3qhm7p28563w4jyw4aa3wcgnj6gtv", + "coins": [ { - "address":"cosmos184hgxlzat3qhm7p28563w4jyw4aa3wcgnj6gtv", - "coins":[ - { - "amount":"10", - "denom":"stake" - } - ] - }, + "amount": "10", + "denom": "stake" + } + ] + }, + { + "address": "cosmos1pfyz36qx8z8dm8ktd75mwx5j5vsmkzfn7wrgp9", + "coins": [ { - "address":"cosmos1pfyz36qx8z8dm8ktd75mwx5j5vsmkzfn7wrgp9", - "coins":[ - { - "amount":"10", - "denom":"stake" - } - ] - }, + "amount": "10", + "denom": "stake" + } + ] + }, + { + "address": "cosmos1xu388ml6krya3ysmlrup2ylxjtzhl4hlaem3ng", + "coins": [ { - "address":"cosmos1xu388ml6krya3ysmlrup2ylxjtzhl4hlaem3ng", - "coins":[ - { - "amount":"10", - "denom":"stake" - } - ] + "amount": "10", + "denom": "stake" } ] } - } - ], - "sequence":"16", + ] + } + } + ], + "sequence": "16", } export const example_tx_str_basic = { @@ -304,57 +306,57 @@ export const ibc_denoms = { } export const setWithdrawAddress = { - account_number: '8', - chain_id: 'testing', - fee: { - amount: [ - { - amount: '5000', - denom: 'uatom' - } - ], - gas: '200000' - }, - memo: '', - msgs: [ - { - type: 'cosmos-sdk/MsgSetWithdrawAddress', - value: { - delegator_address: 'cosmos1hr9x0sjvel6z3vt9qny8sdd5gnnlgk0p69d6cv', - withdraw_address: 'cosmos12d64j98tjjpqkx70r08aspc4nvntqp2w6wr2de' - } - }, + account_number: '8', + chain_id: 'testing', + fee: { + amount: [ { - type: 'cosmos-sdk/MsgWithdrawDelegationReward', - value: { - delegator_address: 'cosmos1hr9x0sjvel6z3vt9qny8sdd5gnnlgk0p69d6cv', - validator_address: 'cosmosvaloper13dr26wdygna3s8fdl5tlc45m2le2ydyddxzj49' - } + amount: '5000', + denom: 'uatom' } ], - sequence: '7' - } + gas: '200000' + }, + memo: '', + msgs: [ + { + type: 'cosmos-sdk/MsgSetWithdrawAddress', + value: { + delegator_address: 'cosmos1hr9x0sjvel6z3vt9qny8sdd5gnnlgk0p69d6cv', + withdraw_address: 'cosmos12d64j98tjjpqkx70r08aspc4nvntqp2w6wr2de' + } + }, + { + type: 'cosmos-sdk/MsgWithdrawDelegationReward', + value: { + delegator_address: 'cosmos1hr9x0sjvel6z3vt9qny8sdd5gnnlgk0p69d6cv', + validator_address: 'cosmosvaloper13dr26wdygna3s8fdl5tlc45m2le2ydyddxzj49' + } + } + ], + sequence: '7' +} - export const cliGovDeposit = { - account_number: '8', - chain_id: 'my-chain', - fee: { - amount: [], - gas: '200000' +export const cliGovDeposit = { + account_number: '8', + chain_id: 'my-chain', + fee: { + amount: [], + gas: '200000' + }, + memo: 'A B C', + msgs: [ + { + type: 'cosmos-sdk/MsgDeposit', + value: { + amount: [{ + amount: '10', + denom: 'stake', + }], + depositor: 'cosmos1xl2256vdh0j68khz9wq88hnyqcq0f5f4za2480', + proposal_id: '1' + } }, - memo: 'A B C', - msgs: [ - { - type: 'cosmos-sdk/MsgDeposit', - value: { - amount: [{ - amount: '10', - denom: 'stake', - }], - depositor: 'cosmos1xl2256vdh0j68khz9wq88hnyqcq0f5f4za2480', - proposal_id: '1' - } - }, - ], - sequence: '2' - } + ], + sequence: '2' +} diff --git a/tests_zemu/tests/standard.test.ts b/tests_zemu/tests/standard.test.ts index 9ec51ca4..2983ddef 100644 --- a/tests_zemu/tests/standard.test.ts +++ b/tests_zemu/tests/standard.test.ts @@ -1,5 +1,5 @@ /** ****************************************************************************** - * (c) 2018 - 2023 Zondax AG + * (c) 2018 - 2024 Zondax AG * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,15 +14,12 @@ * limitations under the License. ******************************************************************************* */ -import Zemu, { zondaxMainmenuNavigation, ButtonKind, ClickNavigation, TouchNavigation } from '@zondax/zemu' +import Zemu, { zondaxMainmenuNavigation, ButtonKind, isTouchDevice } from '@zondax/zemu' import { CosmosApp } from '@zondax/ledger-cosmos-js' -import { defaultOptions, DEVICE_MODELS, example_tx_str_basic, example_tx_str_basic2, ibc_denoms } from './common' +import { defaultOptions, DEVICE_MODELS } from './common' // @ts-ignore -import secp256k1 from 'secp256k1/elliptic' -// @ts-ignore -import crypto from 'crypto' -import { ActionKind, IButton, INavElement } from '@zondax/zemu/dist/types' +// import secp256k1 from 'secp256k1/elliptic' jest.setTimeout(90000) @@ -99,8 +96,8 @@ describe('Standard', function () { await sim.start({ ...defaultOptions, model: m.name, - approveKeyword: m.name === 'stax' ? 'QR' : '', - approveAction: ButtonKind.ApproveTapButton, + approveKeyword: isTouchDevice(m.name) ? 'Confirm' : '', + approveAction: ButtonKind.DynamicTapButton, }) const app = new CosmosApp(sim.getTransport()) @@ -128,14 +125,14 @@ describe('Standard', function () { } }) - test.concurrent.each(DEVICE_MODELS)('show Eth address', async function (m) { + test.concurrent.each(DEVICE_MODELS)('show Eth address', async function (m) { const sim = new Zemu(m.path) try { await sim.start({ ...defaultOptions, model: m.name, - approveKeyword: m.name === 'stax' ? 'Path' : '', - approveAction: ButtonKind.ApproveTapButton, + approveKeyword: isTouchDevice(m.name) ? 'Confirm' : '', + approveAction: ButtonKind.DynamicTapButton, }) const app = new CosmosApp(sim.getTransport()) @@ -187,8 +184,8 @@ describe('Standard', function () { await sim.start({ ...defaultOptions, model: m.name, - approveKeyword: m.name === 'stax' ? 'QR' : '', - approveAction: ButtonKind.ApproveTapButton, + approveKeyword: isTouchDevice(m.name) ? 'Confirm' : '', + approveAction: ButtonKind.DynamicTapButton, }) const app = new CosmosApp(sim.getTransport()) @@ -210,8 +207,8 @@ describe('Standard', function () { await sim.start({ ...defaultOptions, model: m.name, - approveKeyword: m.name === 'stax' ? 'Path' : '', - approveAction: ButtonKind.ApproveTapButton, + approveKeyword: isTouchDevice(m.name) ? 'Confirm' : '', + approveAction: ButtonKind.DynamicTapButton, }) const app = new CosmosApp(sim.getTransport()) diff --git a/tests_zemu/tests/textual.test.ts b/tests_zemu/tests/textual.test.ts index 495d2a17..06a26816 100644 --- a/tests_zemu/tests/textual.test.ts +++ b/tests_zemu/tests/textual.test.ts @@ -1,5 +1,5 @@ /** ****************************************************************************** - * (c) 2018-2022 Zondax GmbH + * (c) 2018 - 2024 Zondax AG * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,7 +14,7 @@ * limitations under the License. ******************************************************************************* */ -import Zemu, { ClickNavigation, TouchNavigation } from '@zondax/zemu' +import Zemu, { ClickNavigation, TouchNavigation, isTouchDevice } from '@zondax/zemu' // @ts-ignore import { CosmosApp } from '@zondax/ledger-cosmos-js' import { defaultOptions, DEVICE_MODELS, tx_sign_textual, TEXTUAL_TX } from './common' @@ -22,13 +22,16 @@ import { defaultOptions, DEVICE_MODELS, tx_sign_textual, TEXTUAL_TX } from './co import secp256k1 from 'secp256k1/elliptic' // @ts-ignore import crypto from 'crypto' -import { ButtonKind, IButton } from '@zondax/zemu/dist/types' +import { ButtonKind, IButton, SwipeDirection } from '@zondax/zemu/dist/types' jest.setTimeout(90000) +// Textual mode is not available for NanoS +const TEXTUAL_MODELS = DEVICE_MODELS.filter(m => m.name !== 'nanos') + describe('Textual', function () { // eslint-disable-next-line jest/expect-expect - test.concurrent.each(DEVICE_MODELS.slice(1))('can start and stop container', async function (m) { + test.concurrent.each(TEXTUAL_MODELS)('can start and stop container', async function (m) { const sim = new Zemu(m.path) try { await sim.start({ ...defaultOptions, model: m.name }) @@ -37,7 +40,7 @@ describe('Textual', function () { } }) - test.concurrent.each(DEVICE_MODELS.slice(1))('sign basic textual', async function (m) { + test.concurrent.each(TEXTUAL_MODELS)('sign basic textual', async function (m) { const sim = new Zemu(m.path) try { await sim.start({ ...defaultOptions, model: m.name }) @@ -83,7 +86,7 @@ describe('Textual', function () { } }) - test.concurrent.each(DEVICE_MODELS.slice(1))('sign basic textual expert', async function (m) { + test.concurrent.each(TEXTUAL_MODELS)('sign basic textual expert', async function (m) { const sim = new Zemu(m.path) try { await sim.start({ ...defaultOptions, model: m.name }) @@ -132,7 +135,7 @@ describe('Textual', function () { } }) - test.concurrent.each(DEVICE_MODELS.slice(1))('sign basic textual eth ', async function (m) { + test.concurrent.each(TEXTUAL_MODELS)('sign basic textual eth ', async function (m) { const sim = new Zemu(m.path) try { await sim.start({ ...defaultOptions, model: m.name }) @@ -181,7 +184,7 @@ describe('Textual', function () { } }) - test.concurrent.each(DEVICE_MODELS.slice(1))('sign basic textual eth warning ', async function (m) { + test.concurrent.each(TEXTUAL_MODELS)('sign basic textual eth warning ', async function (m) { const sim = new Zemu(m.path) try { await sim.start({ ...defaultOptions, model: m.name }) @@ -203,13 +206,14 @@ describe('Textual', function () { // Wait until we are not in the main menu await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()) let nav = undefined; - if (m.name === 'stax') { + if (isTouchDevice(m.name)) { const okButton: IButton = { x: 200, y: 540, delay: 0.25, + direction: SwipeDirection.NoSwipe, }; - nav = new TouchNavigation([ + nav = new TouchNavigation(m.name, [ ButtonKind.ConfirmYesButton, ]); nav.schedule[0].button = okButton; @@ -227,7 +231,7 @@ describe('Textual', function () { } }) - test.concurrent.each(DEVICE_MODELS.slice(1))('sign basic textual evmos ', async function (m) { + test.concurrent.each(TEXTUAL_MODELS)('sign basic textual evmos ', async function (m) { const sim = new Zemu(m.path) try { await sim.start({ ...defaultOptions, model: m.name })