diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index 98b720fe..00000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,8 +0,0 @@ -# Checklist - -- [ ] App update process has been followed -- [ ] Target branch is `develop` -- [ ] Application version has been bumped - - diff --git a/.github/workflows/guidelines_enforcer.yml b/.github/workflows/guidelines_enforcer.yml index 0b958e52..fdaf9f27 100644 --- a/.github/workflows/guidelines_enforcer.yml +++ b/.github/workflows/guidelines_enforcer.yml @@ -21,5 +21,3 @@ jobs: guidelines_enforcer: name: Call Ledger guidelines_enforcer uses: LedgerHQ/ledger-app-workflows/.github/workflows/reusable_guidelines_enforcer.yml@v1 - with: - relative_app_directory: 'app' diff --git a/README.md b/README.md index 3d9d5426..d89ed074 100644 --- a/README.md +++ b/README.md @@ -9,11 +9,13 @@ _Please visit our website at [zondax.ch](zondax.ch)_ +You can also visit [Zondax Hub](https://hub.zondax.ch/cosmos) to test any of the versions of the app + --- -This project contains the Cosmos app for Ledger Nano S and X. +This project contains the Cosmos app for Ledger Nano S, Nano S+, X and Stax. -- Ledger Nano S/X Cosmos app +- Ledger Nano S/S+/X/Stax Cosmos app - Specs / Documentation - C++ unit tests - Zemu tests diff --git a/app/Makefile b/app/Makefile index e60abb9c..247db685 100755 --- a/app/Makefile +++ b/app/Makefile @@ -52,7 +52,6 @@ endif APP_LOAD_PARAMS = --curve secp256k1 $(COMMON_LOAD_PARAMS) --path $(APPPATH) -NANOS_STACK_SIZE:=1815 include $(CURDIR)/../deps/ledger-zxlib/makefiles/Makefile.devices $(info TARGET_NAME = [$(TARGET_NAME)]) diff --git a/app/Makefile.version b/app/Makefile.version index 8b54b0ef..438ccf4e 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=13 +APPVERSION_P=17 diff --git a/app/glyphs/icon_stax_32.gif b/app/glyphs/icon_stax_32.gif index c33ae718..bd338188 100644 Binary files a/app/glyphs/icon_stax_32.gif and b/app/glyphs/icon_stax_32.gif differ diff --git a/app/glyphs/icon_stax_64.gif b/app/glyphs/icon_stax_64.gif index 72cef217..64dee01b 100644 Binary files a/app/glyphs/icon_stax_64.gif and b/app/glyphs/icon_stax_64.gif differ diff --git a/app/src/crypto.c b/app/src/crypto.c index eb3c280e..edf40803 100644 --- a/app/src/crypto.c +++ b/app/src/crypto.c @@ -51,11 +51,11 @@ static zxerr_t crypto_extractUncompressedPublicKey(uint8_t *pubKey, uint16_t pub privateKeyData, NULL, NULL, - 0)) + 0)); - CATCH_CXERROR(cx_ecfp_init_private_key_no_throw(CX_CURVE_256K1, privateKeyData, 32, &cx_privateKey)) - CATCH_CXERROR(cx_ecfp_init_public_key_no_throw(CX_CURVE_256K1, NULL, 0, &cx_publicKey)) - CATCH_CXERROR(cx_ecfp_generate_pair_no_throw(CX_CURVE_256K1, &cx_publicKey, &cx_privateKey, 1)) + CATCH_CXERROR(cx_ecfp_init_private_key_no_throw(CX_CURVE_256K1, privateKeyData, 32, &cx_privateKey)); + CATCH_CXERROR(cx_ecfp_init_public_key_no_throw(CX_CURVE_256K1, NULL, 0, &cx_publicKey)); + CATCH_CXERROR(cx_ecfp_generate_pair_no_throw(CX_CURVE_256K1, &cx_publicKey, &cx_privateKey, 1)); memcpy(pubKey, cx_publicKey.W, PK_LEN_SECP256K1_UNCOMPRESSED); error = zxerr_ok; @@ -122,7 +122,7 @@ zxerr_t crypto_sign(uint8_t *output, const uint8_t *message = tx_get_buffer(); const uint16_t messageLen = tx_get_buffer_length(); - CHECK_ZXERR(crypto_hashBuffer(message, messageLen, messageDigest, CX_SHA256_SIZE)) + CHECK_ZXERR(crypto_hashBuffer(message, messageLen, messageDigest, CX_SHA256_SIZE)); CHECK_APP_CANARY() cx_ecfp_private_key_t cx_privateKey; @@ -140,15 +140,15 @@ zxerr_t crypto_sign(uint8_t *output, privateKeyData, NULL, NULL, - 0)) - CATCH_CXERROR(cx_ecfp_init_private_key_no_throw(CX_CURVE_256K1, privateKeyData, 32, &cx_privateKey)) + 0)); + CATCH_CXERROR(cx_ecfp_init_private_key_no_throw(CX_CURVE_256K1, privateKeyData, 32, &cx_privateKey)); CATCH_CXERROR(cx_ecdsa_sign_no_throw(&cx_privateKey, CX_RND_RFC6979 | CX_LAST, CX_SHA256, messageDigest, CX_SHA256_SIZE, output, - &signatureLength, &tmpInfo)) + &signatureLength, &tmpInfo)); *sigSize = signatureLength; error = zxerr_ok; @@ -163,10 +163,11 @@ zxerr_t crypto_sign(uint8_t *output, return error; } -void ripemd160_32(uint8_t *out, uint8_t *in) { +static zxerr_t ripemd160_32(uint8_t *out, uint8_t *in) { cx_ripemd160_t rip160; - cx_ripemd160_init(&rip160); - cx_hash_no_throw(&rip160.header, CX_LAST, in, CX_SHA256_SIZE, out, CX_RIPEMD160_SIZE); + CHECK_CX_OK(cx_ripemd160_init_no_throw(&rip160)); + CHECK_CX_OK(cx_hash_no_throw(&rip160.header, CX_LAST, in, CX_SHA256_SIZE, out, CX_RIPEMD160_SIZE)); + return zxerr_ok; } zxerr_t crypto_fillAddress(uint8_t *buffer, uint16_t buffer_len, uint16_t *addrResponseLen) { @@ -176,8 +177,8 @@ zxerr_t crypto_fillAddress(uint8_t *buffer, uint16_t buffer_len, uint16_t *addrR // extract pubkey uint8_t uncompressedPubkey [PK_LEN_SECP256K1_UNCOMPRESSED] = {0}; - CHECK_ZXERR(crypto_extractUncompressedPublicKey(uncompressedPubkey, sizeof(uncompressedPubkey))) - CHECK_ZXERR(compressPubkey(uncompressedPubkey, sizeof(uncompressedPubkey), buffer, buffer_len)) + CHECK_ZXERR(crypto_extractUncompressedPublicKey(uncompressedPubkey, sizeof(uncompressedPubkey))); + CHECK_ZXERR(compressPubkey(uncompressedPubkey, sizeof(uncompressedPubkey), buffer, buffer_len)); char *addr = (char *) (buffer + PK_LEN_SECP256K1); uint8_t hashed1_pk[CX_SHA256_SIZE] = {0}; @@ -187,8 +188,8 @@ zxerr_t crypto_fillAddress(uint8_t *buffer, uint16_t buffer_len, uint16_t *addrR // Hash it cx_hash_sha256(buffer, PK_LEN_SECP256K1, hashed1_pk, CX_SHA256_SIZE); uint8_t hashed2_pk[CX_RIPEMD160_SIZE] = {0}; - ripemd160_32(hashed2_pk, hashed1_pk); - CHECK_ZXERR(bech32EncodeFromBytes(addr, buffer_len - PK_LEN_SECP256K1, bech32_hrp, hashed2_pk, CX_RIPEMD160_SIZE, 1, BECH32_ENCODING_BECH32)) + CHECK_ZXERR(ripemd160_32(hashed2_pk, hashed1_pk)); + CHECK_ZXERR(bech32EncodeFromBytes(addr, buffer_len - PK_LEN_SECP256K1, bech32_hrp, hashed2_pk, CX_RIPEMD160_SIZE, 1, BECH32_ENCODING_BECH32)); break; } @@ -197,8 +198,8 @@ zxerr_t crypto_fillAddress(uint8_t *buffer, uint16_t buffer_len, uint16_t *addrR if (cx_keccak_init_no_throw(&ctx, 256) != CX_OK) { return zxerr_unknown; } - cx_hash_no_throw((cx_hash_t *)&ctx, CX_LAST, uncompressedPubkey+1, sizeof(uncompressedPubkey)-1, hashed1_pk, sizeof(hashed1_pk)); - CHECK_ZXERR(bech32EncodeFromBytes(addr, buffer_len - PK_LEN_SECP256K1, bech32_hrp, hashed1_pk + 12, sizeof(hashed1_pk) - 12, 1, BECH32_ENCODING_BECH32)) + CHECK_CX_OK(cx_hash_no_throw((cx_hash_t *)&ctx, CX_LAST, uncompressedPubkey+1, sizeof(uncompressedPubkey)-1, hashed1_pk, sizeof(hashed1_pk))); + CHECK_ZXERR(bech32EncodeFromBytes(addr, buffer_len - PK_LEN_SECP256K1, bech32_hrp, hashed1_pk + 12, sizeof(hashed1_pk) - 12, 1, BECH32_ENCODING_BECH32)); break; } diff --git a/app/stax_icon.gif b/app/stax_icon.gif index 361019ee..bd338188 100644 Binary files a/app/stax_icon.gif and b/app/stax_icon.gif differ diff --git a/deps/ledger-zxlib b/deps/ledger-zxlib index 3ffe6488..df81cb76 160000 --- a/deps/ledger-zxlib +++ b/deps/ledger-zxlib @@ -1 +1 @@ -Subproject commit 3ffe64882bece4e6a17895ce306c0129862681c6 +Subproject commit df81cb767d464995327218f0fb92eaa2dd3b4db3 diff --git a/deps/nanos-secure-sdk b/deps/nanos-secure-sdk index 40a60bc8..0532bf20 160000 --- a/deps/nanos-secure-sdk +++ b/deps/nanos-secure-sdk @@ -1 +1 @@ -Subproject commit 40a60bc83c6b1422e047c36beb4018891bc34b12 +Subproject commit 0532bf20fbbb11dd08dada62060f8337097b6078 diff --git a/deps/nanosplus-secure-sdk b/deps/nanosplus-secure-sdk index a80708f9..86e20d8d 160000 --- a/deps/nanosplus-secure-sdk +++ b/deps/nanosplus-secure-sdk @@ -1 +1 @@ -Subproject commit a80708f93fdbbc447bc7506aee314fe41a093068 +Subproject commit 86e20d8dbcee181e11bc2ad7ac3f638eb7dc7b08 diff --git a/deps/nanox-secure-sdk b/deps/nanox-secure-sdk index a80708f9..86e20d8d 160000 --- a/deps/nanox-secure-sdk +++ b/deps/nanox-secure-sdk @@ -1 +1 @@ -Subproject commit a80708f93fdbbc447bc7506aee314fe41a093068 +Subproject commit 86e20d8dbcee181e11bc2ad7ac3f638eb7dc7b08 diff --git a/deps/tinycbor/src/open_memstream.c b/deps/tinycbor/src/open_memstream.c deleted file mode 100644 index 33653784..00000000 --- a/deps/tinycbor/src/open_memstream.c +++ /dev/null @@ -1,114 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2015 Intel Corporation -** -** Permission is hereby granted, free of charge, to any person obtaining a copy -** of this software and associated documentation files (the "Software"), to deal -** in the Software without restriction, including without limitation the rights -** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -** copies of the Software, and to permit persons to whom the Software is -** furnished to do so, subject to the following conditions: -** -** The above copyright notice and this permission notice shall be included in -** all copies or substantial portions of the Software. -** -** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -** OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -** THE SOFTWARE. -** -****************************************************************************/ - -#define _BSD_SOURCE 1 -#define _DEFAULT_SOURCE 1 -#define _GNU_SOURCE 1 - -#include -#include -#include -#include -#include - -#if defined(__unix__) || defined(__APPLE__) -# include -#endif -#ifdef __APPLE__ -typedef int RetType; -typedef int LenType; -#elif __linux__ -typedef ssize_t RetType; -typedef size_t LenType; -#else -# error "Cannot implement open_memstream!" -#endif - -#include "compilersupport_p.h" - -struct Buffer -{ - char **ptr; - size_t *len; - size_t alloc; -}; - -static RetType write_to_buffer(void *cookie, const char *data, LenType len) -{ - struct Buffer *b = (struct Buffer *)cookie; - char *ptr = *b->ptr; - size_t newsize; - - errno = EFBIG; - if (unlikely(add_check_overflow(*b->len, len, &newsize))) - return -1; - - if (newsize >= b->alloc) { // NB! one extra byte is needed to avoid buffer overflow at close_buffer - // make room - size_t newalloc = newsize + newsize / 2 + 1; // give 50% more room - ptr = realloc(ptr, newalloc); - if (ptr == NULL) - return -1; - b->alloc = newalloc; - *b->ptr = ptr; - } - - memcpy(ptr + *b->len, data, len); - *b->len = newsize; - return len; -} - -static int close_buffer(void *cookie) -{ - struct Buffer *b = (struct Buffer *)cookie; - if (*b->ptr) - (*b->ptr)[*b->len] = '\0'; - free(b); - return 0; -} - -FILE *open_memstream(char **bufptr, size_t *lenptr) -{ - struct Buffer *b = (struct Buffer *)malloc(sizeof(struct Buffer)); - if (b == NULL) - return NULL; - b->alloc = 0; - b->len = lenptr; - b->ptr = bufptr; - *bufptr = NULL; - *lenptr = 0; - -#ifdef __APPLE__ - return funopen(b, NULL, write_to_buffer, NULL, close_buffer); -#elif __linux__ - static const cookie_io_functions_t vtable = { - NULL, - write_to_buffer, - NULL, - close_buffer - }; - return fopencookie(b, "w", vtable); -#endif -} - diff --git a/ledger_app.toml b/ledger_app.toml new file mode 100644 index 00000000..3e4cbb1f --- /dev/null +++ b/ledger_app.toml @@ -0,0 +1,7 @@ +[app] +build_directory = "./app/" +sdk = "C" +devices = ["nanos", "nanox", "nanos+", "stax"] + +[tests] +unit_directory = "./tests/" diff --git a/tests_zemu/package.json b/tests_zemu/package.json index f91257ce..bd8feec2 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.44.0" + "@zondax/zemu": "^0.46.0" }, "devDependencies": { - "@types/jest": "^29.5.3", - "@types/ledgerhq__hw-transport": "^4.21.4", - "@typescript-eslint/eslint-plugin": "^6.0.0", - "@typescript-eslint/parser": "^6.0.0", + "@types/jest": "^29.5.11", + "@types/ledgerhq__hw-transport": "^4.21.8", + "@typescript-eslint/eslint-plugin": "^6.16.0", + "@typescript-eslint/parser": "^6.16.0", "bech32": "^2.0.0", "blakejs": "^1.1.1", - "crypto-js": "4.1.1", - "eslint": "^8.44.0", - "eslint-config-prettier": "^9.0.0", - "eslint-plugin-import": "^2.25.4", - "eslint-plugin-jest": "^27.2.1", - "eslint-plugin-prettier": "^5.0.0", - "jest": "29.6.2", + "crypto-js": "4.2.0", + "eslint": "^8.56.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-import": "^2.29.1", + "eslint-plugin-jest": "^27.6.0", + "eslint-plugin-prettier": "^5.1.2", + "jest": "29.7.0", "jest-serial-runner": "^1.1.0", - "js-sha3": "0.8.0", + "js-sha3": "0.9.3", "jssha": "^3.2.0", "keccak256": "^1.0.6", - "prettier": "^3.0.0", + "prettier": "^3.1.1", "secp256k1": "^5.0.0", "ts-jest": "^29.1.1", - "ts-node": "^10.9.1", - "typescript": "^5.0.4" + "ts-node": "^10.9.2", + "typescript": "^5.3.3" } } diff --git a/tests_zemu/snapshots/s-mainmenu/00004.png b/tests_zemu/snapshots/s-mainmenu/00004.png index 7ff378c8..ddbc4c55 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 7ff378c8..ddbc4c55 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 cfc9da13..7e2cf019 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 cfc9da13..7e2cf019 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 a99b458a..c1874b1e 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/00004.png b/tests_zemu/snapshots/st-govDeposit/00004.png index 411107f8..7da083e4 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-govDeposit/00005.png b/tests_zemu/snapshots/st-govDeposit/00005.png index 364600bb..ba2e8a92 100644 Binary files a/tests_zemu/snapshots/st-govDeposit/00005.png and b/tests_zemu/snapshots/st-govDeposit/00005.png differ diff --git a/tests_zemu/snapshots/st-ibc_denoms/00000.png b/tests_zemu/snapshots/st-ibc_denoms/00000.png index a99b458a..c1874b1e 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/00004.png b/tests_zemu/snapshots/st-ibc_denoms/00004.png index 411107f8..7da083e4 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-ibc_denoms/00005.png b/tests_zemu/snapshots/st-ibc_denoms/00005.png index 364600bb..ba2e8a92 100644 Binary files a/tests_zemu/snapshots/st-ibc_denoms/00005.png and b/tests_zemu/snapshots/st-ibc_denoms/00005.png differ diff --git a/tests_zemu/snapshots/st-mainmenu/00000.png b/tests_zemu/snapshots/st-mainmenu/00000.png index 364600bb..ba2e8a92 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 f9c99325..416afe49 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/00005.png b/tests_zemu/snapshots/st-mainmenu/00005.png index 364600bb..ba2e8a92 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-msgMultiSend/00000.png b/tests_zemu/snapshots/st-msgMultiSend/00000.png index a99b458a..c1874b1e 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/00007.png b/tests_zemu/snapshots/st-msgMultiSend/00007.png index 254d887f..f618d705 100644 Binary files a/tests_zemu/snapshots/st-msgMultiSend/00007.png and b/tests_zemu/snapshots/st-msgMultiSend/00007.png differ diff --git a/tests_zemu/snapshots/st-msgMultiSend/00008.png b/tests_zemu/snapshots/st-msgMultiSend/00008.png index 364600bb..ba2e8a92 100644 Binary files a/tests_zemu/snapshots/st-msgMultiSend/00008.png and b/tests_zemu/snapshots/st-msgMultiSend/00008.png differ diff --git a/tests_zemu/snapshots/st-setWithdrawAddress-eth/00000.png b/tests_zemu/snapshots/st-setWithdrawAddress-eth/00000.png index a99b458a..c1874b1e 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/00005.png b/tests_zemu/snapshots/st-setWithdrawAddress-eth/00005.png index f5a56e6d..fe642927 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-eth/00006.png b/tests_zemu/snapshots/st-setWithdrawAddress-eth/00006.png index 364600bb..ba2e8a92 100644 Binary files a/tests_zemu/snapshots/st-setWithdrawAddress-eth/00006.png and b/tests_zemu/snapshots/st-setWithdrawAddress-eth/00006.png differ diff --git a/tests_zemu/snapshots/st-setWithdrawAddress/00000.png b/tests_zemu/snapshots/st-setWithdrawAddress/00000.png index a99b458a..c1874b1e 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/00005.png b/tests_zemu/snapshots/st-setWithdrawAddress/00005.png index f5a56e6d..fe642927 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-setWithdrawAddress/00006.png b/tests_zemu/snapshots/st-setWithdrawAddress/00006.png index 364600bb..ba2e8a92 100644 Binary files a/tests_zemu/snapshots/st-setWithdrawAddress/00006.png and b/tests_zemu/snapshots/st-setWithdrawAddress/00006.png differ diff --git a/tests_zemu/snapshots/st-show_address/00000.png b/tests_zemu/snapshots/st-show_address/00000.png index 6779246a..c10c1fb7 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/00002.png b/tests_zemu/snapshots/st-show_address/00002.png index 364600bb..ba2e8a92 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 6779246a..c10c1fb7 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/00003.png b/tests_zemu/snapshots/st-show_address_huge/00003.png index 364600bb..ba2e8a92 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 6779246a..c10c1fb7 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/00003.png b/tests_zemu/snapshots/st-show_eth_address/00003.png index 364600bb..ba2e8a92 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 a99b458a..c1874b1e 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/00003.png b/tests_zemu/snapshots/st-sign_basic/00003.png index 1ca1ef4e..f384cce6 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 364600bb..ba2e8a92 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 a99b458a..c1874b1e 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/00003.png b/tests_zemu/snapshots/st-sign_basic2/00003.png index 1ca1ef4e..f384cce6 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 364600bb..ba2e8a92 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 a99b458a..c1874b1e 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/00005.png b/tests_zemu/snapshots/st-sign_basic_eth/00005.png index f5a56e6d..fe642927 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/00006.png b/tests_zemu/snapshots/st-sign_basic_eth/00006.png index 364600bb..ba2e8a92 100644 Binary files a/tests_zemu/snapshots/st-sign_basic_eth/00006.png and b/tests_zemu/snapshots/st-sign_basic_eth/00006.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 364600bb..ba2e8a92 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 a99b458a..c1874b1e 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/00003.png b/tests_zemu/snapshots/st-sign_basic_extra_fields/00003.png index 1ca1ef4e..f384cce6 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 364600bb..ba2e8a92 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 a99b458a..c1874b1e 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/00005.png b/tests_zemu/snapshots/st-textual-sign_basic/00005.png index f5a56e6d..fe642927 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/00006.png b/tests_zemu/snapshots/st-textual-sign_basic/00006.png index 364600bb..ba2e8a92 100644 Binary files a/tests_zemu/snapshots/st-textual-sign_basic/00006.png and b/tests_zemu/snapshots/st-textual-sign_basic/00006.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 a99b458a..c1874b1e 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/00008.png b/tests_zemu/snapshots/st-textual-sign_basic_eth/00008.png index d5d1f8e3..bcafe5ca 100644 Binary files a/tests_zemu/snapshots/st-textual-sign_basic_eth/00008.png and b/tests_zemu/snapshots/st-textual-sign_basic_eth/00008.png differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic_eth/00009.png b/tests_zemu/snapshots/st-textual-sign_basic_eth/00009.png index 364600bb..ba2e8a92 100644 Binary files a/tests_zemu/snapshots/st-textual-sign_basic_eth/00009.png and b/tests_zemu/snapshots/st-textual-sign_basic_eth/00009.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 364600bb..ba2e8a92 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 a99b458a..c1874b1e 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/00008.png b/tests_zemu/snapshots/st-textual-sign_basic_expert/00008.png index d5d1f8e3..bcafe5ca 100644 Binary files a/tests_zemu/snapshots/st-textual-sign_basic_expert/00008.png and b/tests_zemu/snapshots/st-textual-sign_basic_expert/00008.png differ diff --git a/tests_zemu/snapshots/st-textual-sign_basic_expert/00009.png b/tests_zemu/snapshots/st-textual-sign_basic_expert/00009.png index 364600bb..ba2e8a92 100644 Binary files a/tests_zemu/snapshots/st-textual-sign_basic_expert/00009.png and b/tests_zemu/snapshots/st-textual-sign_basic_expert/00009.png differ diff --git a/tests_zemu/snapshots/x-mainmenu/00004.png b/tests_zemu/snapshots/x-mainmenu/00004.png index cfc9da13..7e2cf019 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 cfc9da13..7e2cf019 100644 Binary files a/tests_zemu/snapshots/x-mainmenu/00010.png and b/tests_zemu/snapshots/x-mainmenu/00010.png differ