diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 00000000..f2fb620f --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,8 @@ +# Checklist + +- [ ] App update process has been followed +- [ ] Target branch is `develop` +- [ ] Application version has been bumped + + diff --git a/.github/workflows/ci-workflow.yml b/.github/workflows/ci-workflow.yml index 062e4d27..ff64cc82 100644 --- a/.github/workflows/ci-workflow.yml +++ b/.github/workflows/ci-workflow.yml @@ -2,11 +2,11 @@ name: Compilation & tests on: workflow_dispatch: - push: - branches: - - master - - develop - pull_request: + # push: + # branches: + # - master + # - develop + # pull_request: jobs: build_application: @@ -21,4 +21,3 @@ jobs: uses: LedgerHQ/ledger-app-workflows/.github/workflows/reusable_ragger_tests.yml@v1 with: download_app_binaries_artifact: compiled_app_binaries - test_dir: tests diff --git a/.github/workflows/guidelines_enforcer.yml b/.github/workflows/guidelines_enforcer.yml index fdaf9f27..215c34f1 100644 --- a/.github/workflows/guidelines_enforcer.yml +++ b/.github/workflows/guidelines_enforcer.yml @@ -10,12 +10,12 @@ name: Ensure compliance with Ledger guidelines on: workflow_dispatch: - push: - branches: - - master - - main - - develop - pull_request: + # push: + # branches: + # - master + # - main + # - develop + # pull_request: jobs: guidelines_enforcer: diff --git a/.github/workflows/lint-workflow.yml b/.github/workflows/lint-workflow.yml index ae475657..63f68b01 100644 --- a/.github/workflows/lint-workflow.yml +++ b/.github/workflows/lint-workflow.yml @@ -2,11 +2,11 @@ name: Code style check on: workflow_dispatch: - push: - branches: - - master - - develop - pull_request: + # push: + # branches: + # - master + # - develop + # pull_request: jobs: job_lint: @@ -18,7 +18,7 @@ jobs: uses: actions/checkout@v3 - name: Lint - uses: DoozyX/clang-format-lint-action@v0.11 + uses: DoozyX/clang-format-lint-action@v0.18.2 with: source: './src' extensions: 'h,c' diff --git a/Makefile b/Makefile index 999c55e9..6ffb6642 100644 --- a/Makefile +++ b/Makefile @@ -32,8 +32,8 @@ APP_LOAD_PARAMS += $(COMMON_LOAD_PARAMS) APPNAME = "MultiversX" APPVERSION_M = 1 -APPVERSION_N = 0 -APPVERSION_P = 23 +APPVERSION_N = 1 +APPVERSION_P = 0 APPVERSION = $(APPVERSION_M).$(APPVERSION_N).$(APPVERSION_P) ifeq ($(TARGET_NAME),TARGET_NANOS) diff --git a/README.md b/README.md index a1231cc7..eaa6fdd2 100644 --- a/README.md +++ b/README.md @@ -90,9 +90,9 @@ Or this to remove it: ```$ make delete``` If you want to check the build process for a specific device: -- Nano S: `$make load && make BOLOS_SDK=$NANOS_SDK` -- Nano X `$make load && make BOLOS_SDK=$NANOX_SDK` -- Stax: `$make load && make BOLOS_SDK=$STAX_SDK` +- Nano S: `make && BOLOS_SDK=$NANOS_SDK make load` +- Nano X `make && BOLOS_SDK=$NANOX_SDK make load` +- Stax: `make && BOLOS_SDK=$STAX_SDK make load` Reference: https://github.com/LedgerHQ/ledger-app-builder diff --git a/ledger_app.toml b/ledger_app.toml new file mode 100644 index 00000000..e557cc8f --- /dev/null +++ b/ledger_app.toml @@ -0,0 +1,8 @@ +[app] +build_directory = "./" +sdk = "C" +devices = ["nanos", "nanox", "nanos+", "stax"] + +[tests] +unit_directory = "./unit-tests/" +pytest_directory = "./tests/" diff --git a/src/constants.h b/src/constants.h index 15a86142..df4f36d4 100644 --- a/src/constants.h +++ b/src/constants.h @@ -58,7 +58,9 @@ typedef enum { CONTRACT_DATA_ENABLED = true, CONTRACT_DATA_DISABLED = false } co #ifdef HAVE_BAGL #define MAX_DISPLAY_DATA_SIZE 64UL // must be multiple of 4 #else -#define MAX_DISPLAY_DATA_SIZE 256UL // must be multiple of 4 +// must be multiple of 4 +// must be <= MAX_VALUE_LEN +#define MAX_DISPLAY_DATA_SIZE 128UL #endif #define DATA_SIZE_LEN 17 #define MAX_CHAINID_LEN 4 @@ -88,8 +90,8 @@ typedef enum { CONTRACT_DATA_ENABLED = true, CONTRACT_DATA_DISABLED = false } co #define SHA3_KECCAK_BITS 256 #define PUBLIC_KEY_LEN 32 #define BASE_10 10 -#define TX_SIGN_FLOW_SIZE 9 -#define ESDT_TRANSFER_FLOW_SIZE 9 +#define TX_SIGN_FLOW_SIZE 10 +#define ESDT_TRANSFER_FLOW_SIZE 10 #define BASE_64_INVALID_CHAR '?' #define SC_ARGS_SEPARATOR '@' #define MAX_ESDT_VALUE_HEX_COUNT 32 diff --git a/src/get_address.c b/src/get_address.c index d35b263a..b511e257 100644 --- a/src/get_address.c +++ b/src/get_address.c @@ -44,17 +44,13 @@ static void callback_choice(bool match) { } } -static void display_addr(void) { - nbgl_useCaseAddressConfirmation(address, callback_choice); -} - static void ui_get_public_key_nbgl(void) { - nbgl_useCaseReviewStart(&C_icon_multiversx_logo_64x64, - "Verify " APPNAME "\naddress", - NULL, - "Cancel", - display_addr, - address_verification_cancelled); + nbgl_useCaseAddressReview(address, + NULL, + &C_icon_multiversx_logo_64x64, + "Verify " APPNAME "\naddress", + NULL, + callback_choice); } #else diff --git a/src/menu.c b/src/menu.c index 92fa8bb6..0413a7de 100644 --- a/src/menu.c +++ b/src/menu.c @@ -25,27 +25,9 @@ enum { }; #define SETTINGS_PAGE_NUMBER 2 -static bool settings_nav_callback(uint8_t page, nbgl_pageContent_t* content) { - if (page == 0) { - content->type = INFOS_LIST; - content->infosList.nbInfos = ARRAY_COUNT(info_types); - content->infosList.infoTypes = info_types; - content->infosList.infoContents = info_contents; - } else if (page == 1) { - content->type = SWITCHES_LIST; - content->switchesList.nbSwitches = NB_SETTINGS_SWITCHES; - content->switchesList.switches = G_switches; - } else { - return false; - } - return true; -} - -static void ui_menu_main(void); -static void ui_menu_settings(void); - -static void settings_controls_callback(int token, uint8_t index) { +static void settings_controls_callback(int token, uint8_t index, int action) { + UNUSED(action); uint8_t new_setting; UNUSED(index); switch (token) { @@ -64,7 +46,28 @@ static void settings_controls_callback(int token, uint8_t index) { } } -static void ui_menu_settings(void) { +static void ui_menu_main(void); + +nbgl_contentInfoList_t app_info; +nbgl_content_t settings_page_content; +nbgl_genericContents_t settings_contents; + +static void initialize_settings_contents(void) { + app_info.nbInfos = ARRAY_COUNT(info_types); + app_info.infoTypes = info_types; + app_info.infoContents = info_contents; + + settings_page_content.type = SWITCHES_LIST; + settings_page_content.content.switchesList.nbSwitches = NB_SETTINGS_SWITCHES; + settings_page_content.content.switchesList.switches = G_switches; + settings_page_content.contentActionCallback = settings_controls_callback; + + settings_contents.callbackCallNeeded = false; + settings_contents.contentsList = &settings_page_content; + settings_contents.nbContents = NB_SETTINGS_SWITCHES; +} + +static void ui_menu_main(void) { G_switches[CONTRACT_DATA_IDX].text = "Contract data"; G_switches[CONTRACT_DATA_IDX].subText = "Enable contract data"; G_switches[CONTRACT_DATA_IDX].token = SWITCH_CONTRACT_DATA_SET_TOKEN; @@ -74,22 +77,17 @@ static void ui_menu_settings(void) { } else { G_switches[CONTRACT_DATA_IDX].initState = ON_STATE; } - nbgl_useCaseSettings(APPNAME " settings", - 0, - SETTINGS_PAGE_NUMBER, - false, - ui_menu_main, - settings_nav_callback, - settings_controls_callback); -} -static void ui_menu_main(void) { - nbgl_useCaseHome(APPNAME, - &C_icon_multiversx_logo_64x64, - NULL, - true, - ui_menu_settings, - quit_app_callback); + initialize_settings_contents(); + + nbgl_useCaseHomeAndSettings(APPNAME, + &C_icon_multiversx_logo_64x64, + NULL, + INIT_HOME_PAGE, + &settings_contents, + &app_info, + NULL, + quit_app_callback); } #else diff --git a/src/parse_tx.c b/src/parse_tx.c index 583eeed3..5d9b8222 100644 --- a/src/parse_tx.c +++ b/src/parse_tx.c @@ -406,6 +406,19 @@ uint16_t verify_guardian(bool *valid) { return MSG_OK; } +uint16_t verify_relayer(bool *valid) { + if (strncmp(tx_hash_context.current_field, RELAYER_FIELD, strlen(RELAYER_FIELD)) == 0) { + if (tx_hash_context.current_value_len >= sizeof(tx_context.relayer)) { + return ERR_INVALID_MESSAGE; + } + memmove(tx_context.relayer, + tx_hash_context.current_value, + tx_hash_context.current_value_len); + *valid = true; + } + return MSG_OK; +} + // verifies if the field and value are valid and stores them uint16_t process_field(void) { if (tx_hash_context.current_field_len == 0 || tx_hash_context.current_value_len == 0) { @@ -452,6 +465,10 @@ uint16_t process_field(void) { if (err != MSG_OK) { return err; } + err = verify_relayer(&valid_field); + if (err != MSG_OK) { + return err; + } // verify the rest of the fields that are not displayed valid_field |= strncmp(tx_hash_context.current_field, NONCE_FIELD, strlen(NONCE_FIELD)) == 0; diff --git a/src/parse_tx.h b/src/parse_tx.h index 9529620c..4a6b8214 100644 --- a/src/parse_tx.h +++ b/src/parse_tx.h @@ -17,6 +17,7 @@ typedef struct { char esdt_value[MAX_ESDT_VALUE_HEX_COUNT + PRETTY_SIZE]; char network[8]; char guardian[FULL_ADDRESS_LENGTH]; + char relayer[FULL_ADDRESS_LENGTH]; } tx_context_t; extern tx_context_t tx_context; diff --git a/src/provide_ESDT_info.c b/src/provide_ESDT_info.c index 1ad6b0e5..6abb321f 100644 --- a/src/provide_ESDT_info.c +++ b/src/provide_ESDT_info.c @@ -11,23 +11,28 @@ static bool verify_signature(const uint8_t *data_buffer, uint8_t hash[HASH_LEN]; cx_sha256_t sha256; cx_ecfp_public_key_t tokenKey; + int err; cx_sha256_init(&sha256); - cx_hash_no_throw((cx_hash_t *) &sha256, CX_LAST, data_buffer, required_len, hash, 32); + err = cx_hash_no_throw((cx_hash_t *) &sha256, CX_LAST, data_buffer, required_len, hash, 32); + if (err != CX_OK) { + return false; + } - cx_ecfp_init_public_key_no_throw(CX_CURVE_256K1, - LEDGER_SIGNATURE_PUBLIC_KEY, - sizeof(LEDGER_SIGNATURE_PUBLIC_KEY), - &tokenKey); + err = cx_ecfp_init_public_key_no_throw(CX_CURVE_256K1, + LEDGER_SIGNATURE_PUBLIC_KEY, + sizeof(LEDGER_SIGNATURE_PUBLIC_KEY), + &tokenKey); + if (err != CX_OK) { + return false; + } int signature_size = data_length - required_len; - return cx_ecdsa_verify(&tokenKey, - CX_LAST, - CX_SHA256, - hash, - 32, - data_buffer + required_len, - signature_size); + return cx_ecdsa_verify_no_throw(&tokenKey, + hash, + 32, + data_buffer + required_len, + signature_size); } #endif diff --git a/src/sign_msg.c b/src/sign_msg.c index 037a84a3..06ee3da3 100644 --- a/src/sign_msg.c +++ b/src/sign_msg.c @@ -145,9 +145,10 @@ void handle_sign_msg(uint8_t p1, the message length is computed in the first bulk, while the entire message can come in multiple bulks */ + int err; + if (p1 == P1_FIRST) { char message_length_str[11]; - // first 4 bytes from data_buffer should be the message length (big endian // uint32) if (data_length < 4) { @@ -158,25 +159,34 @@ void handle_sign_msg(uint8_t p1, data_buffer += 4; data_length -= 4; // initialize hash with the constant string to prepend - cx_keccak_init_no_throw(&sha3_context, SHA3_KECCAK_BITS); - cx_hash_no_throw((cx_hash_t *) &sha3_context, - 0, - (uint8_t *) PREPEND, - sizeof(PREPEND) - 1, - NULL, - 0); + err = cx_keccak_init_no_throw(&sha3_context, SHA3_KECCAK_BITS); + if (err != CX_OK) { + THROW(err); + } + err = cx_hash_no_throw((cx_hash_t *) &sha3_context, + 0, + (uint8_t *) PREPEND, + sizeof(PREPEND) - 1, + NULL, + 0); + if (err != CX_OK) { + THROW(err); + } // convert message length to string and store it in the variable // `message_length_str` uint32_t_to_char_array(msg_context.len, message_length_str); // add the message length to the hash - cx_hash_no_throw((cx_hash_t *) &sha3_context, - 0, - (uint8_t *) message_length_str, - strlen(message_length_str), - NULL, - 0); + err = cx_hash_no_throw((cx_hash_t *) &sha3_context, + 0, + (uint8_t *) message_length_str, + strlen(message_length_str), + NULL, + 0); + if (err != CX_OK) { + THROW(err); + } } else { if (p1 != P1_MORE) { THROW(ERR_INVALID_P1); @@ -190,19 +200,26 @@ void handle_sign_msg(uint8_t p1, } // add the received message part to the hash and decrease the remaining length - cx_hash_no_throw((cx_hash_t *) &sha3_context, 0, data_buffer, data_length, NULL, 0); + err = cx_hash_no_throw((cx_hash_t *) &sha3_context, 0, data_buffer, data_length, NULL, 0); + if (err != CX_OK) { + THROW(err); + } msg_context.len -= data_length; if (msg_context.len != 0) { THROW(MSG_OK); } // finalize hash, compute it and store it in `msg_context.strhash` for display - cx_hash_no_throw((cx_hash_t *) &sha3_context, - CX_LAST, - data_buffer, - 0, - msg_context.hash, - HASH_LEN); + err = cx_hash_no_throw((cx_hash_t *) &sha3_context, + CX_LAST, + data_buffer, + 0, + msg_context.hash, + HASH_LEN); + if (err != CX_OK) { + THROW(err); + } + convert_to_hex_str(msg_context.strhash, sizeof(msg_context.strhash), msg_context.hash, diff --git a/src/sign_msg_auth_token.c b/src/sign_msg_auth_token.c index e294f3ec..6339dbc8 100644 --- a/src/sign_msg_auth_token.c +++ b/src/sign_msg_auth_token.c @@ -300,6 +300,8 @@ void handle_auth_token(uint8_t p1, the account and address indexes, alongside token length are computed in the first bulk, while the entire token can come in multiple bulks */ + int err; + if (p1 == P1_FIRST) { clean_token_fields(); token_auth_context.token[0] = '\0'; @@ -336,33 +338,46 @@ void handle_auth_token(uint8_t p1, update_token_display_data(data_buffer, data_length); // initialize hash with the constant string to prepend - cx_keccak_init_no_throw(&sha3_context, SHA3_KECCAK_BITS); - cx_hash_no_throw((cx_hash_t *) &sha3_context, - 0, - (uint8_t *) PREPEND, - sizeof(PREPEND) - 1, - NULL, - 0); + err = cx_keccak_init_no_throw(&sha3_context, SHA3_KECCAK_BITS); + if (err != CX_OK) { + THROW(err); + } + + err = cx_hash_no_throw((cx_hash_t *) &sha3_context, + 0, + (uint8_t *) PREPEND, + sizeof(PREPEND) - 1, + NULL, + 0); + if (err != CX_OK) { + THROW(err); + } // convert message length to string and store it in the variable `tmp` uint32_t full_message_len = token_auth_context.len + BECH32_ADDRESS_LEN; uint32_t_to_char_array(full_message_len, token_length_str); // add the message length to the hash - cx_hash_no_throw((cx_hash_t *) &sha3_context, - 0, - (uint8_t *) token_length_str, - strlen(token_length_str), - NULL, - 0); + err = cx_hash_no_throw((cx_hash_t *) &sha3_context, + 0, + (uint8_t *) token_length_str, + strlen(token_length_str), + NULL, + 0); + if (err != CX_OK) { + THROW(err); + } // add the message length to the hash - cx_hash_no_throw((cx_hash_t *) &sha3_context, - 0, - (uint8_t *) token_auth_context.address, - strlen(token_auth_context.address), - NULL, - 0); + err = cx_hash_no_throw((cx_hash_t *) &sha3_context, + 0, + (uint8_t *) token_auth_context.address, + strlen(token_auth_context.address), + NULL, + 0); + if (err != CX_OK) { + THROW(err); + } } else { if (p1 != P1_MORE) { THROW(ERR_INVALID_P1); @@ -376,7 +391,10 @@ void handle_auth_token(uint8_t p1, } // add the received message part to the hash and decrease the remaining length - cx_hash_no_throw((cx_hash_t *) &sha3_context, 0, data_buffer, data_length, NULL, 0); + err = cx_hash_no_throw((cx_hash_t *) &sha3_context, 0, data_buffer, data_length, NULL, 0); + if (err != CX_OK) { + THROW(err); + } token_auth_context.len -= data_length; if (token_auth_context.len != 0) { @@ -384,12 +402,15 @@ void handle_auth_token(uint8_t p1, } // finalize hash and compute it - cx_hash_no_throw((cx_hash_t *) &sha3_context, - CX_LAST, - data_buffer, - 0, - token_auth_context.hash, - HASH_LEN); + err = cx_hash_no_throw((cx_hash_t *) &sha3_context, + CX_LAST, + data_buffer, + 0, + token_auth_context.hash, + HASH_LEN); + if (err != CX_OK) { + THROW(err); + } // sign the hash if (!sign_auth_token()) { diff --git a/src/sign_tx_hash.c b/src/sign_tx_hash.c index 8ddc6168..04b73756 100644 --- a/src/sign_tx_hash.c +++ b/src/sign_tx_hash.c @@ -34,12 +34,15 @@ static bool sign_tx_hash(uint8_t *data_buffer) { return false; } - cx_hash_no_throw((cx_hash_t *) &sha3_context, - CX_LAST, - data_buffer, - 0, - tx_hash_context.hash, - 32); + ret_code = cx_hash_no_throw((cx_hash_t *) &sha3_context, + CX_LAST, + data_buffer, + 0, + tx_hash_context.hash, + 32); + if (ret_code != CX_OK) { + success = false; + } ret_code = cx_eddsa_sign_no_throw(&private_key, CX_SHA512, tx_hash_context.hash, @@ -91,7 +94,7 @@ static bool is_esdt_transfer() { #if defined(TARGET_STAX) static nbgl_layoutTagValueList_t layout; -static nbgl_layoutTagValue_t pairs_list[6]; // 6 info max for ESDT and 6 info max for EGLD +static nbgl_layoutTagValue_t pairs_list[7]; // 7 info max for ESDT and 7 info max for EGLD static const nbgl_pageInfoLongPress_t review_final_long_press = { .text = "Sign transaction on\n" APPNAME " network?", @@ -127,6 +130,9 @@ static void start_review(void) { if (strlen(tx_context.guardian) > 0) { update_pair(&pairs_list[step++], "Guardian", tx_context.guardian); } + if (strlen(tx_context.relayer) > 0) { + update_pair(&pairs_list[step++], "Relayer", tx_context.relayer); + } update_pair(&pairs_list[step++], "Network", tx_context.network); } else { update_pair(&pairs_list[step++], "Receiver", tx_context.receiver); @@ -138,6 +144,9 @@ static void start_review(void) { if (strlen(tx_context.guardian) > 0) { update_pair(&pairs_list[step++], "Guardian", tx_context.guardian); } + if (strlen(tx_context.relayer) > 0) { + update_pair(&pairs_list[step++], "Relayer", tx_context.relayer); + } update_pair(&pairs_list[step++], "Network", tx_context.network); } @@ -207,6 +216,12 @@ UX_STEP_NOCB(ux_transfer_esdt_flow_31_step, .title = "Guardian", .text = tx_context.guardian, }); +UX_STEP_NOCB(ux_transfer_esdt_flow_32_step, + bnnn_paging, + { + .title = "Relayer", + .text = tx_context.relayer, + }); UX_STEP_NOCB(ux_transfer_esdt_flow_28_step, bnnn_paging, { @@ -259,6 +274,12 @@ UX_STEP_NOCB(ux_sign_tx_hash_flow_24_step, .title = "Guardian", .text = tx_context.guardian, }); +UX_STEP_NOCB(ux_sign_tx_hash_flow_25_step, + bnnn_paging, + { + .title = "Relayer", + .text = tx_context.relayer, + }); UX_STEP_NOCB(ux_sign_tx_hash_flow_21_step, bnnn_paging, { @@ -292,6 +313,9 @@ static void display_tx_sign_flow() { if (strlen(tx_context.guardian) > 0) { tx_flow[step++] = &ux_sign_tx_hash_flow_24_step; } + if (strlen(tx_context.relayer) > 0) { + tx_flow[step++] = &ux_sign_tx_hash_flow_25_step; + } tx_flow[step++] = &ux_sign_tx_hash_flow_21_step; tx_flow[step++] = &ux_sign_tx_hash_flow_22_step; tx_flow[step++] = &ux_sign_tx_hash_flow_23_step; @@ -310,6 +334,9 @@ static void display_esdt_flow() { if (strlen(tx_context.guardian) > 0) { esdt_flow[step++] = &ux_transfer_esdt_flow_31_step; } + if (strlen(tx_context.relayer) > 0) { + esdt_flow[step++] = &ux_transfer_esdt_flow_32_step; + } esdt_flow[step++] = &ux_transfer_esdt_flow_28_step; esdt_flow[step++] = &ux_transfer_esdt_flow_29_step; esdt_flow[step++] = &ux_transfer_esdt_flow_30_step; @@ -332,8 +359,12 @@ void init_tx_context() { tx_context.esdt_value[0] = 0; tx_context.network[0] = 0; tx_context.guardian[0] = 0; + tx_context.relayer[0] = 0; tx_hash_context.status = JSON_IDLE; - cx_keccak_init_no_throw(&sha3_context, SHA3_KECCAK_BITS); + int err = cx_keccak_init_no_throw(&sha3_context, SHA3_KECCAK_BITS); + if (err != CX_OK) { + THROW(err); + } app_state = APP_STATE_IDLE; } @@ -354,13 +385,18 @@ void handle_sign_tx_hash(uint8_t p1, } } - cx_hash_no_throw((cx_hash_t *) &sha3_context, 0, data_buffer, data_length, NULL, 0); - uint16_t err = parse_data(data_buffer, data_length); - if (err != MSG_OK) { + int err = cx_hash_no_throw((cx_hash_t *) &sha3_context, 0, data_buffer, data_length, NULL, 0); + if (err != CX_OK) { init_tx_context(); THROW(err); } + uint16_t parse_err = parse_data(data_buffer, data_length); + if (parse_err != MSG_OK) { + init_tx_context(); + THROW(parse_err); + } + if (tx_hash_context.status != JSON_IDLE) { THROW(MSG_OK); } diff --git a/src/sign_tx_hash.h b/src/sign_tx_hash.h index d9678dc9..c43f6c75 100644 --- a/src/sign_tx_hash.h +++ b/src/sign_tx_hash.h @@ -16,6 +16,7 @@ #define SENDER_USERNAME_FIELD "senderUsername" #define RECEIVER_USERNAME_FIELD "receiverUsername" #define GUARDIAN_ADDR_FIELD "guardian" +#define RELAYER_FIELD "relayer" #define MAX_FIELD_LEN 16 #define MAX_VALUE_LEN 128UL diff --git a/tests/snapshots/nanos/test_menu/00011.png b/tests/snapshots/nanos/test_menu/00011.png index 4b51d82f..ca1ae6e1 100644 Binary files a/tests/snapshots/nanos/test_menu/00011.png and b/tests/snapshots/nanos/test_menu/00011.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_guardian/00006.png b/tests/snapshots/nanos/test_sign_tx_valid_with_guardian/00006.png deleted file mode 100644 index 2b563f14..00000000 Binary files a/tests/snapshots/nanos/test_sign_tx_valid_with_guardian/00006.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_guardian/00007.png b/tests/snapshots/nanos/test_sign_tx_valid_with_guardian/00007.png deleted file mode 100644 index b69f9a02..00000000 Binary files a/tests/snapshots/nanos/test_sign_tx_valid_with_guardian/00007.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_guardian/00008.png b/tests/snapshots/nanos/test_sign_tx_valid_with_guardian/00008.png deleted file mode 100644 index 1fa3a304..00000000 Binary files a/tests/snapshots/nanos/test_sign_tx_valid_with_guardian/00008.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_guardian/00009.png b/tests/snapshots/nanos/test_sign_tx_valid_with_guardian/00009.png deleted file mode 100644 index 9ecb58a0..00000000 Binary files a/tests/snapshots/nanos/test_sign_tx_valid_with_guardian/00009.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_guardian/00000.png b/tests/snapshots/nanos/test_sign_tx_valid_with_guardian_confirmed/00000.png similarity index 100% rename from tests/snapshots/nanos/test_sign_tx_valid_with_guardian/00000.png rename to tests/snapshots/nanos/test_sign_tx_valid_with_guardian_confirmed/00000.png diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_guardian/00001.png b/tests/snapshots/nanos/test_sign_tx_valid_with_guardian_confirmed/00001.png similarity index 100% rename from tests/snapshots/nanos/test_sign_tx_valid_with_guardian/00001.png rename to tests/snapshots/nanos/test_sign_tx_valid_with_guardian_confirmed/00001.png diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_guardian/00002.png b/tests/snapshots/nanos/test_sign_tx_valid_with_guardian_confirmed/00002.png similarity index 100% rename from tests/snapshots/nanos/test_sign_tx_valid_with_guardian/00002.png rename to tests/snapshots/nanos/test_sign_tx_valid_with_guardian_confirmed/00002.png diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_guardian/00003.png b/tests/snapshots/nanos/test_sign_tx_valid_with_guardian_confirmed/00003.png similarity index 100% rename from tests/snapshots/nanos/test_sign_tx_valid_with_guardian/00003.png rename to tests/snapshots/nanos/test_sign_tx_valid_with_guardian_confirmed/00003.png diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_guardian/00004.png b/tests/snapshots/nanos/test_sign_tx_valid_with_guardian_confirmed/00004.png similarity index 100% rename from tests/snapshots/nanos/test_sign_tx_valid_with_guardian/00004.png rename to tests/snapshots/nanos/test_sign_tx_valid_with_guardian_confirmed/00004.png diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_guardian/00005.png b/tests/snapshots/nanos/test_sign_tx_valid_with_guardian_confirmed/00005.png similarity index 100% rename from tests/snapshots/nanos/test_sign_tx_valid_with_guardian/00005.png rename to tests/snapshots/nanos/test_sign_tx_valid_with_guardian_confirmed/00005.png diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_guardian_confirmed/00006.png b/tests/snapshots/nanos/test_sign_tx_valid_with_guardian_confirmed/00006.png new file mode 100644 index 00000000..ae378959 Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_guardian_confirmed/00006.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_guardian/00010.png b/tests/snapshots/nanos/test_sign_tx_valid_with_guardian_confirmed/00007.png similarity index 100% rename from tests/snapshots/nanos/test_sign_tx_valid_with_guardian/00010.png rename to tests/snapshots/nanos/test_sign_tx_valid_with_guardian_confirmed/00007.png diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_guardian/00011.png b/tests/snapshots/nanos/test_sign_tx_valid_with_guardian_confirmed/00008.png similarity index 100% rename from tests/snapshots/nanos/test_sign_tx_valid_with_guardian/00011.png rename to tests/snapshots/nanos/test_sign_tx_valid_with_guardian_confirmed/00008.png diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_guardian/00012.png b/tests/snapshots/nanos/test_sign_tx_valid_with_guardian_confirmed/00009.png similarity index 100% rename from tests/snapshots/nanos/test_sign_tx_valid_with_guardian/00012.png rename to tests/snapshots/nanos/test_sign_tx_valid_with_guardian_confirmed/00009.png diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_guardian_rejected/00000.png b/tests/snapshots/nanos/test_sign_tx_valid_with_guardian_rejected/00000.png new file mode 100644 index 00000000..9da03aaf Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_guardian_rejected/00000.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_guardian_rejected/00001.png b/tests/snapshots/nanos/test_sign_tx_valid_with_guardian_rejected/00001.png new file mode 100644 index 00000000..6f7ddb7e Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_guardian_rejected/00001.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_guardian_rejected/00002.png b/tests/snapshots/nanos/test_sign_tx_valid_with_guardian_rejected/00002.png new file mode 100644 index 00000000..fefdce33 Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_guardian_rejected/00002.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_guardian_rejected/00003.png b/tests/snapshots/nanos/test_sign_tx_valid_with_guardian_rejected/00003.png new file mode 100644 index 00000000..860e808f Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_guardian_rejected/00003.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_guardian_rejected/00004.png b/tests/snapshots/nanos/test_sign_tx_valid_with_guardian_rejected/00004.png new file mode 100644 index 00000000..e8b267cd Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_guardian_rejected/00004.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_guardian_rejected/00005.png b/tests/snapshots/nanos/test_sign_tx_valid_with_guardian_rejected/00005.png new file mode 100644 index 00000000..cfb85921 Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_guardian_rejected/00005.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_guardian_rejected/00006.png b/tests/snapshots/nanos/test_sign_tx_valid_with_guardian_rejected/00006.png new file mode 100644 index 00000000..ae378959 Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_guardian_rejected/00006.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_guardian_rejected/00007.png b/tests/snapshots/nanos/test_sign_tx_valid_with_guardian_rejected/00007.png new file mode 100644 index 00000000..47dfbce6 Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_guardian_rejected/00007.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_guardian_rejected/00008.png b/tests/snapshots/nanos/test_sign_tx_valid_with_guardian_rejected/00008.png new file mode 100644 index 00000000..e66f6628 Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_guardian_rejected/00008.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_guardian_rejected/00009.png b/tests/snapshots/nanos/test_sign_tx_valid_with_guardian_rejected/00009.png new file mode 100644 index 00000000..9c7e7049 Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_guardian_rejected/00009.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_guardian_rejected/00010.png b/tests/snapshots/nanos/test_sign_tx_valid_with_guardian_rejected/00010.png new file mode 100644 index 00000000..25144c30 Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_guardian_rejected/00010.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00000.png b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00000.png new file mode 100644 index 00000000..9da03aaf Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00000.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00001.png b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00001.png new file mode 100644 index 00000000..6f7ddb7e Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00001.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00002.png b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00002.png new file mode 100644 index 00000000..fefdce33 Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00002.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00003.png b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00003.png new file mode 100644 index 00000000..860e808f Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00003.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00004.png b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00004.png new file mode 100644 index 00000000..e8b267cd Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00004.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00005.png b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00005.png new file mode 100644 index 00000000..cfb85921 Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00005.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00006.png b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00006.png new file mode 100644 index 00000000..43ea4824 Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00006.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00007.png b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00007.png new file mode 100644 index 00000000..fecc15b3 Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00007.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00008.png b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00008.png new file mode 100644 index 00000000..47dfbce6 Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00008.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00009.png b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00009.png new file mode 100644 index 00000000..e66f6628 Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00009.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00010.png b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00010.png new file mode 100644 index 00000000..25144c30 Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00010.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_rejected/00000.png b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_rejected/00000.png new file mode 100644 index 00000000..9da03aaf Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_rejected/00000.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_rejected/00001.png b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_rejected/00001.png new file mode 100644 index 00000000..6f7ddb7e Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_rejected/00001.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_rejected/00002.png b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_rejected/00002.png new file mode 100644 index 00000000..fefdce33 Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_rejected/00002.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_rejected/00003.png b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_rejected/00003.png new file mode 100644 index 00000000..860e808f Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_rejected/00003.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_rejected/00004.png b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_rejected/00004.png new file mode 100644 index 00000000..e8b267cd Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_rejected/00004.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_rejected/00005.png b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_rejected/00005.png new file mode 100644 index 00000000..cfb85921 Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_rejected/00005.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_rejected/00006.png b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_rejected/00006.png new file mode 100644 index 00000000..43ea4824 Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_rejected/00006.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_rejected/00007.png b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_rejected/00007.png new file mode 100644 index 00000000..fecc15b3 Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_rejected/00007.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_rejected/00008.png b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_rejected/00008.png new file mode 100644 index 00000000..47dfbce6 Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_rejected/00008.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_rejected/00009.png b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_rejected/00009.png new file mode 100644 index 00000000..e66f6628 Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_rejected/00009.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_rejected/00010.png b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_rejected/00010.png new file mode 100644 index 00000000..9c7e7049 Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_rejected/00010.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_rejected/00011.png b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_rejected/00011.png new file mode 100644 index 00000000..25144c30 Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_and_guardian_rejected/00011.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_confirmed/00000.png b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_confirmed/00000.png new file mode 100644 index 00000000..9da03aaf Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_confirmed/00000.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_confirmed/00001.png b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_confirmed/00001.png new file mode 100644 index 00000000..6f7ddb7e Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_confirmed/00001.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_confirmed/00002.png b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_confirmed/00002.png new file mode 100644 index 00000000..fefdce33 Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_confirmed/00002.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_confirmed/00003.png b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_confirmed/00003.png new file mode 100644 index 00000000..860e808f Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_confirmed/00003.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_confirmed/00004.png b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_confirmed/00004.png new file mode 100644 index 00000000..e8b267cd Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_confirmed/00004.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_confirmed/00005.png b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_confirmed/00005.png new file mode 100644 index 00000000..cfb85921 Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_confirmed/00005.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_confirmed/00006.png b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_confirmed/00006.png new file mode 100644 index 00000000..fecc15b3 Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_confirmed/00006.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_confirmed/00007.png b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_confirmed/00007.png new file mode 100644 index 00000000..47dfbce6 Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_confirmed/00007.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_confirmed/00008.png b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_confirmed/00008.png new file mode 100644 index 00000000..e66f6628 Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_confirmed/00008.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_confirmed/00009.png b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_confirmed/00009.png new file mode 100644 index 00000000..25144c30 Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_confirmed/00009.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_rejected/00000.png b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_rejected/00000.png new file mode 100644 index 00000000..9da03aaf Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_rejected/00000.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_rejected/00001.png b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_rejected/00001.png new file mode 100644 index 00000000..6f7ddb7e Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_rejected/00001.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_rejected/00002.png b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_rejected/00002.png new file mode 100644 index 00000000..fefdce33 Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_rejected/00002.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_rejected/00003.png b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_rejected/00003.png new file mode 100644 index 00000000..860e808f Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_rejected/00003.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_rejected/00004.png b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_rejected/00004.png new file mode 100644 index 00000000..e8b267cd Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_rejected/00004.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_rejected/00005.png b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_rejected/00005.png new file mode 100644 index 00000000..cfb85921 Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_rejected/00005.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_rejected/00006.png b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_rejected/00006.png new file mode 100644 index 00000000..fecc15b3 Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_rejected/00006.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_rejected/00007.png b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_rejected/00007.png new file mode 100644 index 00000000..47dfbce6 Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_rejected/00007.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_rejected/00008.png b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_rejected/00008.png new file mode 100644 index 00000000..e66f6628 Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_rejected/00008.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_rejected/00009.png b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_rejected/00009.png new file mode 100644 index 00000000..9c7e7049 Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_rejected/00009.png differ diff --git a/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_rejected/00010.png b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_rejected/00010.png new file mode 100644 index 00000000..25144c30 Binary files /dev/null and b/tests/snapshots/nanos/test_sign_tx_valid_with_relayer_rejected/00010.png differ diff --git a/tests/snapshots/nanosp/test_get_addr_confirm_refused/00003.png b/tests/snapshots/nanosp/test_get_addr_confirm_refused/00003.png index c9222461..c4c84cf4 100644 Binary files a/tests/snapshots/nanosp/test_get_addr_confirm_refused/00003.png and b/tests/snapshots/nanosp/test_get_addr_confirm_refused/00003.png differ diff --git a/tests/snapshots/nanosp/test_menu/00001.png b/tests/snapshots/nanosp/test_menu/00001.png index b6fa0279..fb61cfc4 100644 Binary files a/tests/snapshots/nanosp/test_menu/00001.png and b/tests/snapshots/nanosp/test_menu/00001.png differ diff --git a/tests/snapshots/nanosp/test_menu/00008.png b/tests/snapshots/nanosp/test_menu/00008.png index b6fa0279..fb61cfc4 100644 Binary files a/tests/snapshots/nanosp/test_menu/00008.png and b/tests/snapshots/nanosp/test_menu/00008.png differ diff --git a/tests/snapshots/nanosp/test_menu/00011.png b/tests/snapshots/nanosp/test_menu/00011.png index 5e75995a..e894a006 100644 Binary files a/tests/snapshots/nanosp/test_menu/00011.png and b/tests/snapshots/nanosp/test_menu/00011.png differ diff --git a/tests/snapshots/nanosp/test_menu/00013.png b/tests/snapshots/nanosp/test_menu/00013.png index b6fa0279..fb61cfc4 100644 Binary files a/tests/snapshots/nanosp/test_menu/00013.png and b/tests/snapshots/nanosp/test_menu/00013.png differ diff --git a/tests/snapshots/nanosp/test_sign_msg_auth_token_refused/00004.png b/tests/snapshots/nanosp/test_sign_msg_auth_token_refused/00004.png index c9222461..c4c84cf4 100644 Binary files a/tests/snapshots/nanosp/test_sign_msg_auth_token_refused/00004.png and b/tests/snapshots/nanosp/test_sign_msg_auth_token_refused/00004.png differ diff --git a/tests/snapshots/nanosp/test_sign_msg_auth_token_too_long_origin_regular_text_ok/00002.png b/tests/snapshots/nanosp/test_sign_msg_auth_token_too_long_origin_regular_text_ok/00002.png index 91543393..a0936b4f 100644 Binary files a/tests/snapshots/nanosp/test_sign_msg_auth_token_too_long_origin_regular_text_ok/00002.png and b/tests/snapshots/nanosp/test_sign_msg_auth_token_too_long_origin_regular_text_ok/00002.png differ diff --git a/tests/snapshots/nanosp/test_sign_msg_auth_token_too_long_origin_regular_text_ok/00003.png b/tests/snapshots/nanosp/test_sign_msg_auth_token_too_long_origin_regular_text_ok/00003.png index 4d1faf4d..c5e17cb4 100644 Binary files a/tests/snapshots/nanosp/test_sign_msg_auth_token_too_long_origin_regular_text_ok/00003.png and b/tests/snapshots/nanosp/test_sign_msg_auth_token_too_long_origin_regular_text_ok/00003.png differ diff --git a/tests/snapshots/nanosp/test_sign_msg_long/00002.png b/tests/snapshots/nanosp/test_sign_msg_long/00002.png index ae1752c1..9648b027 100644 Binary files a/tests/snapshots/nanosp/test_sign_msg_long/00002.png and b/tests/snapshots/nanosp/test_sign_msg_long/00002.png differ diff --git a/tests/snapshots/nanosp/test_sign_msg_short_ok/00002.png b/tests/snapshots/nanosp/test_sign_msg_short_ok/00002.png index ae1752c1..9648b027 100644 Binary files a/tests/snapshots/nanosp/test_sign_msg_short_ok/00002.png and b/tests/snapshots/nanosp/test_sign_msg_short_ok/00002.png differ diff --git a/tests/snapshots/nanosp/test_sign_msg_short_rejected/00002.png b/tests/snapshots/nanosp/test_sign_msg_short_rejected/00002.png index ae1752c1..9648b027 100644 Binary files a/tests/snapshots/nanosp/test_sign_msg_short_rejected/00002.png and b/tests/snapshots/nanosp/test_sign_msg_short_rejected/00002.png differ diff --git a/tests/snapshots/nanosp/test_sign_msg_short_rejected/00003.png b/tests/snapshots/nanosp/test_sign_msg_short_rejected/00003.png index c9222461..c4c84cf4 100644 Binary files a/tests/snapshots/nanosp/test_sign_msg_short_rejected/00003.png and b/tests/snapshots/nanosp/test_sign_msg_short_rejected/00003.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_large_amount/00004.png b/tests/snapshots/nanosp/test_sign_tx_valid_large_amount/00004.png index 8ed90905..63db7647 100644 Binary files a/tests/snapshots/nanosp/test_sign_tx_valid_large_amount/00004.png and b/tests/snapshots/nanosp/test_sign_tx_valid_large_amount/00004.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_large_nonce/00004.png b/tests/snapshots/nanosp/test_sign_tx_valid_large_nonce/00004.png index 8ed90905..63db7647 100644 Binary files a/tests/snapshots/nanosp/test_sign_tx_valid_large_nonce/00004.png and b/tests/snapshots/nanosp/test_sign_tx_valid_large_nonce/00004.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_large_receiver/00004.png b/tests/snapshots/nanosp/test_sign_tx_valid_large_receiver/00004.png index 8ed90905..63db7647 100644 Binary files a/tests/snapshots/nanosp/test_sign_tx_valid_large_receiver/00004.png and b/tests/snapshots/nanosp/test_sign_tx_valid_large_receiver/00004.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_simple_data_confirmed/00005.png b/tests/snapshots/nanosp/test_sign_tx_valid_simple_data_confirmed/00005.png index 8ed90905..63db7647 100644 Binary files a/tests/snapshots/nanosp/test_sign_tx_valid_simple_data_confirmed/00005.png and b/tests/snapshots/nanosp/test_sign_tx_valid_simple_data_confirmed/00005.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_simple_no_data_confirmed/00004.png b/tests/snapshots/nanosp/test_sign_tx_valid_simple_no_data_confirmed/00004.png index 8ed90905..63db7647 100644 Binary files a/tests/snapshots/nanosp/test_sign_tx_valid_simple_no_data_confirmed/00004.png and b/tests/snapshots/nanosp/test_sign_tx_valid_simple_no_data_confirmed/00004.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_simple_no_data_rejected/00004.png b/tests/snapshots/nanosp/test_sign_tx_valid_simple_no_data_rejected/00004.png index 8ed90905..63db7647 100644 Binary files a/tests/snapshots/nanosp/test_sign_tx_valid_simple_no_data_rejected/00004.png and b/tests/snapshots/nanosp/test_sign_tx_valid_simple_no_data_rejected/00004.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_simple_no_data_rejected/00005.png b/tests/snapshots/nanosp/test_sign_tx_valid_simple_no_data_rejected/00005.png index c9222461..c4c84cf4 100644 Binary files a/tests/snapshots/nanosp/test_sign_tx_valid_simple_no_data_rejected/00005.png and b/tests/snapshots/nanosp/test_sign_tx_valid_simple_no_data_rejected/00005.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian/00004.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian/00004.png index fb53ab61..0e0fde9b 100644 Binary files a/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian/00004.png and b/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian/00004.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian/00007.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian/00007.png index 8ed90905..63db7647 100644 Binary files a/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian/00007.png and b/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian/00007.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian_confirmed/00000.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian_confirmed/00000.png new file mode 100644 index 00000000..4b0f5780 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian_confirmed/00000.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian_confirmed/00001.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian_confirmed/00001.png new file mode 100644 index 00000000..cf2864f8 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian_confirmed/00001.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian_confirmed/00002.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian_confirmed/00002.png new file mode 100644 index 00000000..5427b0bf Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian_confirmed/00002.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian_confirmed/00003.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian_confirmed/00003.png new file mode 100644 index 00000000..0ff7d350 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian_confirmed/00003.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian_confirmed/00004.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian_confirmed/00004.png new file mode 100644 index 00000000..fdb5d811 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian_confirmed/00004.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian_confirmed/00005.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian_confirmed/00005.png new file mode 100644 index 00000000..dfaacb2f Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian_confirmed/00005.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian_confirmed/00006.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian_confirmed/00006.png new file mode 100644 index 00000000..63db7647 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian_confirmed/00006.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian_confirmed/00007.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian_confirmed/00007.png new file mode 100644 index 00000000..4c3028cc Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian_confirmed/00007.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian_rejected/00000.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian_rejected/00000.png new file mode 100644 index 00000000..4b0f5780 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian_rejected/00000.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian_rejected/00001.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian_rejected/00001.png new file mode 100644 index 00000000..cf2864f8 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian_rejected/00001.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian_rejected/00002.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian_rejected/00002.png new file mode 100644 index 00000000..5427b0bf Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian_rejected/00002.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian_rejected/00003.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian_rejected/00003.png new file mode 100644 index 00000000..0ff7d350 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian_rejected/00003.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian_rejected/00004.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian_rejected/00004.png new file mode 100644 index 00000000..fdb5d811 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian_rejected/00004.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian_rejected/00005.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian_rejected/00005.png new file mode 100644 index 00000000..dfaacb2f Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian_rejected/00005.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian_rejected/00006.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian_rejected/00006.png new file mode 100644 index 00000000..63db7647 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian_rejected/00006.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian_rejected/00007.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian_rejected/00007.png new file mode 100644 index 00000000..c4c84cf4 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian_rejected/00007.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian_rejected/00008.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian_rejected/00008.png new file mode 100644 index 00000000..4c3028cc Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_guardian_rejected/00008.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00000.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00000.png new file mode 100644 index 00000000..4b0f5780 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00000.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00001.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00001.png new file mode 100644 index 00000000..cf2864f8 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00001.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00002.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00002.png new file mode 100644 index 00000000..5427b0bf Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00002.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00003.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00003.png new file mode 100644 index 00000000..0ff7d350 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00003.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00004.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00004.png new file mode 100644 index 00000000..d0573815 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00004.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00005.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00005.png new file mode 100644 index 00000000..e098d53b Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00005.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00006.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00006.png new file mode 100644 index 00000000..dfaacb2f Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00006.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00007.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00007.png new file mode 100644 index 00000000..63db7647 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00007.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00008.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00008.png new file mode 100644 index 00000000..4c3028cc Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00008.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_rejected/00000.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_rejected/00000.png new file mode 100644 index 00000000..4b0f5780 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_rejected/00000.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_rejected/00001.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_rejected/00001.png new file mode 100644 index 00000000..cf2864f8 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_rejected/00001.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_rejected/00002.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_rejected/00002.png new file mode 100644 index 00000000..5427b0bf Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_rejected/00002.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_rejected/00003.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_rejected/00003.png new file mode 100644 index 00000000..0ff7d350 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_rejected/00003.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_rejected/00004.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_rejected/00004.png new file mode 100644 index 00000000..d0573815 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_rejected/00004.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_rejected/00005.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_rejected/00005.png new file mode 100644 index 00000000..e098d53b Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_rejected/00005.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_rejected/00006.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_rejected/00006.png new file mode 100644 index 00000000..dfaacb2f Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_rejected/00006.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_rejected/00007.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_rejected/00007.png new file mode 100644 index 00000000..63db7647 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_rejected/00007.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_rejected/00008.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_rejected/00008.png new file mode 100644 index 00000000..c4c84cf4 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_rejected/00008.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_rejected/00009.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_rejected/00009.png new file mode 100644 index 00000000..4c3028cc Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_and_guardian_rejected/00009.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_confirmed/00000.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_confirmed/00000.png new file mode 100644 index 00000000..4b0f5780 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_confirmed/00000.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_confirmed/00001.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_confirmed/00001.png new file mode 100644 index 00000000..cf2864f8 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_confirmed/00001.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_confirmed/00002.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_confirmed/00002.png new file mode 100644 index 00000000..5427b0bf Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_confirmed/00002.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_confirmed/00003.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_confirmed/00003.png new file mode 100644 index 00000000..0ff7d350 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_confirmed/00003.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_confirmed/00004.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_confirmed/00004.png new file mode 100644 index 00000000..e098d53b Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_confirmed/00004.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_confirmed/00005.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_confirmed/00005.png new file mode 100644 index 00000000..dfaacb2f Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_confirmed/00005.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_confirmed/00006.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_confirmed/00006.png new file mode 100644 index 00000000..63db7647 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_confirmed/00006.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_confirmed/00007.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_confirmed/00007.png new file mode 100644 index 00000000..4c3028cc Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_confirmed/00007.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_rejected/00000.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_rejected/00000.png new file mode 100644 index 00000000..4b0f5780 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_rejected/00000.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_rejected/00001.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_rejected/00001.png new file mode 100644 index 00000000..cf2864f8 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_rejected/00001.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_rejected/00002.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_rejected/00002.png new file mode 100644 index 00000000..5427b0bf Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_rejected/00002.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_rejected/00003.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_rejected/00003.png new file mode 100644 index 00000000..0ff7d350 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_rejected/00003.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_rejected/00004.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_rejected/00004.png new file mode 100644 index 00000000..e098d53b Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_rejected/00004.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_rejected/00005.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_rejected/00005.png new file mode 100644 index 00000000..dfaacb2f Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_rejected/00005.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_rejected/00006.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_rejected/00006.png new file mode 100644 index 00000000..63db7647 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_rejected/00006.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_rejected/00007.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_rejected/00007.png new file mode 100644 index 00000000..c4c84cf4 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_rejected/00007.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_rejected/00008.png b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_rejected/00008.png new file mode 100644 index 00000000..4c3028cc Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_valid_with_relayer_rejected/00008.png differ diff --git a/tests/snapshots/nanosp/test_toggle_contract_data_0/00001.png b/tests/snapshots/nanosp/test_toggle_contract_data_0/00001.png index b6fa0279..fb61cfc4 100644 Binary files a/tests/snapshots/nanosp/test_toggle_contract_data_0/00001.png and b/tests/snapshots/nanosp/test_toggle_contract_data_0/00001.png differ diff --git a/tests/snapshots/nanosp/test_toggle_contract_data_1/00001.png b/tests/snapshots/nanosp/test_toggle_contract_data_1/00001.png index b6fa0279..fb61cfc4 100644 Binary files a/tests/snapshots/nanosp/test_toggle_contract_data_1/00001.png and b/tests/snapshots/nanosp/test_toggle_contract_data_1/00001.png differ diff --git a/tests/snapshots/nanox/test_get_addr_confirm_ok/00000.png b/tests/snapshots/nanox/test_get_addr_confirm_ok/00000.png index 34b8a71b..c723f6d9 100644 Binary files a/tests/snapshots/nanox/test_get_addr_confirm_ok/00000.png and b/tests/snapshots/nanox/test_get_addr_confirm_ok/00000.png differ diff --git a/tests/snapshots/nanox/test_get_addr_confirm_ok/00001.png b/tests/snapshots/nanox/test_get_addr_confirm_ok/00001.png index 3f372c61..408ff6f4 100644 Binary files a/tests/snapshots/nanox/test_get_addr_confirm_ok/00001.png and b/tests/snapshots/nanox/test_get_addr_confirm_ok/00001.png differ diff --git a/tests/snapshots/nanox/test_get_addr_confirm_refused/00000.png b/tests/snapshots/nanox/test_get_addr_confirm_refused/00000.png index 34b8a71b..c723f6d9 100644 Binary files a/tests/snapshots/nanox/test_get_addr_confirm_refused/00000.png and b/tests/snapshots/nanox/test_get_addr_confirm_refused/00000.png differ diff --git a/tests/snapshots/nanox/test_get_addr_confirm_refused/00001.png b/tests/snapshots/nanox/test_get_addr_confirm_refused/00001.png index 3f372c61..408ff6f4 100644 Binary files a/tests/snapshots/nanox/test_get_addr_confirm_refused/00001.png and b/tests/snapshots/nanox/test_get_addr_confirm_refused/00001.png differ diff --git a/tests/snapshots/nanox/test_get_addr_confirm_refused/00003.png b/tests/snapshots/nanox/test_get_addr_confirm_refused/00003.png index e90cd9db..c4c84cf4 100644 Binary files a/tests/snapshots/nanox/test_get_addr_confirm_refused/00003.png and b/tests/snapshots/nanox/test_get_addr_confirm_refused/00003.png differ diff --git a/tests/snapshots/nanox/test_menu/00002.png b/tests/snapshots/nanox/test_menu/00002.png index e43c1d0a..b21b5df1 100644 Binary files a/tests/snapshots/nanox/test_menu/00002.png and b/tests/snapshots/nanox/test_menu/00002.png differ diff --git a/tests/snapshots/nanox/test_menu/00005.png b/tests/snapshots/nanox/test_menu/00005.png index e43c1d0a..b21b5df1 100644 Binary files a/tests/snapshots/nanox/test_menu/00005.png and b/tests/snapshots/nanox/test_menu/00005.png differ diff --git a/tests/snapshots/nanox/test_menu/00006.png b/tests/snapshots/nanox/test_menu/00006.png index b70c9b68..f7d36d27 100644 Binary files a/tests/snapshots/nanox/test_menu/00006.png and b/tests/snapshots/nanox/test_menu/00006.png differ diff --git a/tests/snapshots/nanox/test_menu/00010.png b/tests/snapshots/nanox/test_menu/00010.png index f4138398..9eab1b89 100644 Binary files a/tests/snapshots/nanox/test_menu/00010.png and b/tests/snapshots/nanox/test_menu/00010.png differ diff --git a/tests/snapshots/nanox/test_menu/00011.png b/tests/snapshots/nanox/test_menu/00011.png index 0662d3ff..e894a006 100644 Binary files a/tests/snapshots/nanox/test_menu/00011.png and b/tests/snapshots/nanox/test_menu/00011.png differ diff --git a/tests/snapshots/nanox/test_sign_msg_auth_token_invalid_ttl/00000.png b/tests/snapshots/nanox/test_sign_msg_auth_token_invalid_ttl/00000.png index 22ed7eb7..980fe71b 100644 Binary files a/tests/snapshots/nanox/test_sign_msg_auth_token_invalid_ttl/00000.png and b/tests/snapshots/nanox/test_sign_msg_auth_token_invalid_ttl/00000.png differ diff --git a/tests/snapshots/nanox/test_sign_msg_auth_token_invalid_ttl/00001.png b/tests/snapshots/nanox/test_sign_msg_auth_token_invalid_ttl/00001.png index 87dc6ca3..4aa07176 100644 Binary files a/tests/snapshots/nanox/test_sign_msg_auth_token_invalid_ttl/00001.png and b/tests/snapshots/nanox/test_sign_msg_auth_token_invalid_ttl/00001.png differ diff --git a/tests/snapshots/nanox/test_sign_msg_auth_token_invalid_ttl/00002.png b/tests/snapshots/nanox/test_sign_msg_auth_token_invalid_ttl/00002.png index 5b75aff1..6899a460 100644 Binary files a/tests/snapshots/nanox/test_sign_msg_auth_token_invalid_ttl/00002.png and b/tests/snapshots/nanox/test_sign_msg_auth_token_invalid_ttl/00002.png differ diff --git a/tests/snapshots/nanox/test_sign_msg_auth_token_localhost_5min_ok/00000.png b/tests/snapshots/nanox/test_sign_msg_auth_token_localhost_5min_ok/00000.png index 22ed7eb7..980fe71b 100644 Binary files a/tests/snapshots/nanox/test_sign_msg_auth_token_localhost_5min_ok/00000.png and b/tests/snapshots/nanox/test_sign_msg_auth_token_localhost_5min_ok/00000.png differ diff --git a/tests/snapshots/nanox/test_sign_msg_auth_token_localhost_5min_ok/00001.png b/tests/snapshots/nanox/test_sign_msg_auth_token_localhost_5min_ok/00001.png index 87dc6ca3..4aa07176 100644 Binary files a/tests/snapshots/nanox/test_sign_msg_auth_token_localhost_5min_ok/00001.png and b/tests/snapshots/nanox/test_sign_msg_auth_token_localhost_5min_ok/00001.png differ diff --git a/tests/snapshots/nanox/test_sign_msg_auth_token_localhost_5min_ok/00002.png b/tests/snapshots/nanox/test_sign_msg_auth_token_localhost_5min_ok/00002.png index 47a0b3e4..a036b6d0 100644 Binary files a/tests/snapshots/nanox/test_sign_msg_auth_token_localhost_5min_ok/00002.png and b/tests/snapshots/nanox/test_sign_msg_auth_token_localhost_5min_ok/00002.png differ diff --git a/tests/snapshots/nanox/test_sign_msg_auth_token_long_origin_should_trim_ok/00000.png b/tests/snapshots/nanox/test_sign_msg_auth_token_long_origin_should_trim_ok/00000.png index 22ed7eb7..980fe71b 100644 Binary files a/tests/snapshots/nanox/test_sign_msg_auth_token_long_origin_should_trim_ok/00000.png and b/tests/snapshots/nanox/test_sign_msg_auth_token_long_origin_should_trim_ok/00000.png differ diff --git a/tests/snapshots/nanox/test_sign_msg_auth_token_long_origin_should_trim_ok/00001.png b/tests/snapshots/nanox/test_sign_msg_auth_token_long_origin_should_trim_ok/00001.png index 87dc6ca3..4aa07176 100644 Binary files a/tests/snapshots/nanox/test_sign_msg_auth_token_long_origin_should_trim_ok/00001.png and b/tests/snapshots/nanox/test_sign_msg_auth_token_long_origin_should_trim_ok/00001.png differ diff --git a/tests/snapshots/nanox/test_sign_msg_auth_token_long_origin_should_trim_ok/00002.png b/tests/snapshots/nanox/test_sign_msg_auth_token_long_origin_should_trim_ok/00002.png index 98bbe020..f7cab4f0 100644 Binary files a/tests/snapshots/nanox/test_sign_msg_auth_token_long_origin_should_trim_ok/00002.png and b/tests/snapshots/nanox/test_sign_msg_auth_token_long_origin_should_trim_ok/00002.png differ diff --git a/tests/snapshots/nanox/test_sign_msg_auth_token_long_ttl/00000.png b/tests/snapshots/nanox/test_sign_msg_auth_token_long_ttl/00000.png index 22ed7eb7..980fe71b 100644 Binary files a/tests/snapshots/nanox/test_sign_msg_auth_token_long_ttl/00000.png and b/tests/snapshots/nanox/test_sign_msg_auth_token_long_ttl/00000.png differ diff --git a/tests/snapshots/nanox/test_sign_msg_auth_token_long_ttl/00001.png b/tests/snapshots/nanox/test_sign_msg_auth_token_long_ttl/00001.png index 87dc6ca3..4aa07176 100644 Binary files a/tests/snapshots/nanox/test_sign_msg_auth_token_long_ttl/00001.png and b/tests/snapshots/nanox/test_sign_msg_auth_token_long_ttl/00001.png differ diff --git a/tests/snapshots/nanox/test_sign_msg_auth_token_ok/00000.png b/tests/snapshots/nanox/test_sign_msg_auth_token_ok/00000.png index 22ed7eb7..980fe71b 100644 Binary files a/tests/snapshots/nanox/test_sign_msg_auth_token_ok/00000.png and b/tests/snapshots/nanox/test_sign_msg_auth_token_ok/00000.png differ diff --git a/tests/snapshots/nanox/test_sign_msg_auth_token_ok/00001.png b/tests/snapshots/nanox/test_sign_msg_auth_token_ok/00001.png index 87dc6ca3..4aa07176 100644 Binary files a/tests/snapshots/nanox/test_sign_msg_auth_token_ok/00001.png and b/tests/snapshots/nanox/test_sign_msg_auth_token_ok/00001.png differ diff --git a/tests/snapshots/nanox/test_sign_msg_auth_token_refused/00000.png b/tests/snapshots/nanox/test_sign_msg_auth_token_refused/00000.png index 22ed7eb7..980fe71b 100644 Binary files a/tests/snapshots/nanox/test_sign_msg_auth_token_refused/00000.png and b/tests/snapshots/nanox/test_sign_msg_auth_token_refused/00000.png differ diff --git a/tests/snapshots/nanox/test_sign_msg_auth_token_refused/00001.png b/tests/snapshots/nanox/test_sign_msg_auth_token_refused/00001.png index 87dc6ca3..4aa07176 100644 Binary files a/tests/snapshots/nanox/test_sign_msg_auth_token_refused/00001.png and b/tests/snapshots/nanox/test_sign_msg_auth_token_refused/00001.png differ diff --git a/tests/snapshots/nanox/test_sign_msg_auth_token_refused/00004.png b/tests/snapshots/nanox/test_sign_msg_auth_token_refused/00004.png index e90cd9db..c4c84cf4 100644 Binary files a/tests/snapshots/nanox/test_sign_msg_auth_token_refused/00004.png and b/tests/snapshots/nanox/test_sign_msg_auth_token_refused/00004.png differ diff --git a/tests/snapshots/nanox/test_sign_msg_auth_token_too_long_origin_regular_text_ok/00000.png b/tests/snapshots/nanox/test_sign_msg_auth_token_too_long_origin_regular_text_ok/00000.png index 22ed7eb7..980fe71b 100644 Binary files a/tests/snapshots/nanox/test_sign_msg_auth_token_too_long_origin_regular_text_ok/00000.png and b/tests/snapshots/nanox/test_sign_msg_auth_token_too_long_origin_regular_text_ok/00000.png differ diff --git a/tests/snapshots/nanox/test_sign_msg_auth_token_too_long_origin_regular_text_ok/00001.png b/tests/snapshots/nanox/test_sign_msg_auth_token_too_long_origin_regular_text_ok/00001.png index 87dc6ca3..4aa07176 100644 Binary files a/tests/snapshots/nanox/test_sign_msg_auth_token_too_long_origin_regular_text_ok/00001.png and b/tests/snapshots/nanox/test_sign_msg_auth_token_too_long_origin_regular_text_ok/00001.png differ diff --git a/tests/snapshots/nanox/test_sign_msg_auth_token_too_long_origin_regular_text_ok/00002.png b/tests/snapshots/nanox/test_sign_msg_auth_token_too_long_origin_regular_text_ok/00002.png index 44aa8832..a0936b4f 100644 Binary files a/tests/snapshots/nanox/test_sign_msg_auth_token_too_long_origin_regular_text_ok/00002.png and b/tests/snapshots/nanox/test_sign_msg_auth_token_too_long_origin_regular_text_ok/00002.png differ diff --git a/tests/snapshots/nanox/test_sign_msg_auth_token_too_long_payload/00000.png b/tests/snapshots/nanox/test_sign_msg_auth_token_too_long_payload/00000.png index 22ed7eb7..980fe71b 100644 Binary files a/tests/snapshots/nanox/test_sign_msg_auth_token_too_long_payload/00000.png and b/tests/snapshots/nanox/test_sign_msg_auth_token_too_long_payload/00000.png differ diff --git a/tests/snapshots/nanox/test_sign_msg_auth_token_too_long_payload/00001.png b/tests/snapshots/nanox/test_sign_msg_auth_token_too_long_payload/00001.png index 87dc6ca3..4aa07176 100644 Binary files a/tests/snapshots/nanox/test_sign_msg_auth_token_too_long_payload/00001.png and b/tests/snapshots/nanox/test_sign_msg_auth_token_too_long_payload/00001.png differ diff --git a/tests/snapshots/nanox/test_sign_msg_auth_token_too_long_ttl_ok/00000.png b/tests/snapshots/nanox/test_sign_msg_auth_token_too_long_ttl_ok/00000.png index 22ed7eb7..980fe71b 100644 Binary files a/tests/snapshots/nanox/test_sign_msg_auth_token_too_long_ttl_ok/00000.png and b/tests/snapshots/nanox/test_sign_msg_auth_token_too_long_ttl_ok/00000.png differ diff --git a/tests/snapshots/nanox/test_sign_msg_auth_token_too_long_ttl_ok/00001.png b/tests/snapshots/nanox/test_sign_msg_auth_token_too_long_ttl_ok/00001.png index 87dc6ca3..4aa07176 100644 Binary files a/tests/snapshots/nanox/test_sign_msg_auth_token_too_long_ttl_ok/00001.png and b/tests/snapshots/nanox/test_sign_msg_auth_token_too_long_ttl_ok/00001.png differ diff --git a/tests/snapshots/nanox/test_sign_msg_auth_token_too_long_ttl_ok/00002.png b/tests/snapshots/nanox/test_sign_msg_auth_token_too_long_ttl_ok/00002.png index 5b75aff1..6899a460 100644 Binary files a/tests/snapshots/nanox/test_sign_msg_auth_token_too_long_ttl_ok/00002.png and b/tests/snapshots/nanox/test_sign_msg_auth_token_too_long_ttl_ok/00002.png differ diff --git a/tests/snapshots/nanox/test_sign_msg_auth_token_xexchange_24h_ok/00000.png b/tests/snapshots/nanox/test_sign_msg_auth_token_xexchange_24h_ok/00000.png index 22ed7eb7..980fe71b 100644 Binary files a/tests/snapshots/nanox/test_sign_msg_auth_token_xexchange_24h_ok/00000.png and b/tests/snapshots/nanox/test_sign_msg_auth_token_xexchange_24h_ok/00000.png differ diff --git a/tests/snapshots/nanox/test_sign_msg_auth_token_xexchange_24h_ok/00001.png b/tests/snapshots/nanox/test_sign_msg_auth_token_xexchange_24h_ok/00001.png index 87dc6ca3..4aa07176 100644 Binary files a/tests/snapshots/nanox/test_sign_msg_auth_token_xexchange_24h_ok/00001.png and b/tests/snapshots/nanox/test_sign_msg_auth_token_xexchange_24h_ok/00001.png differ diff --git a/tests/snapshots/nanox/test_sign_msg_short_rejected/00003.png b/tests/snapshots/nanox/test_sign_msg_short_rejected/00003.png index e90cd9db..c4c84cf4 100644 Binary files a/tests/snapshots/nanox/test_sign_msg_short_rejected/00003.png and b/tests/snapshots/nanox/test_sign_msg_short_rejected/00003.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_simple_no_data_rejected/00005.png b/tests/snapshots/nanox/test_sign_tx_valid_simple_no_data_rejected/00005.png index e90cd9db..c4c84cf4 100644 Binary files a/tests/snapshots/nanox/test_sign_tx_valid_simple_no_data_rejected/00005.png and b/tests/snapshots/nanox/test_sign_tx_valid_simple_no_data_rejected/00005.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_guardian_confirmed/00000.png b/tests/snapshots/nanox/test_sign_tx_valid_with_guardian_confirmed/00000.png new file mode 100644 index 00000000..4b0f5780 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_guardian_confirmed/00000.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_guardian_confirmed/00001.png b/tests/snapshots/nanox/test_sign_tx_valid_with_guardian_confirmed/00001.png new file mode 100644 index 00000000..cf2864f8 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_guardian_confirmed/00001.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_guardian_confirmed/00002.png b/tests/snapshots/nanox/test_sign_tx_valid_with_guardian_confirmed/00002.png new file mode 100644 index 00000000..5427b0bf Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_guardian_confirmed/00002.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_guardian_confirmed/00003.png b/tests/snapshots/nanox/test_sign_tx_valid_with_guardian_confirmed/00003.png new file mode 100644 index 00000000..0ff7d350 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_guardian_confirmed/00003.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_guardian_confirmed/00004.png b/tests/snapshots/nanox/test_sign_tx_valid_with_guardian_confirmed/00004.png new file mode 100644 index 00000000..fdb5d811 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_guardian_confirmed/00004.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_guardian_confirmed/00005.png b/tests/snapshots/nanox/test_sign_tx_valid_with_guardian_confirmed/00005.png new file mode 100644 index 00000000..dfaacb2f Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_guardian_confirmed/00005.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_guardian_confirmed/00006.png b/tests/snapshots/nanox/test_sign_tx_valid_with_guardian_confirmed/00006.png new file mode 100644 index 00000000..63db7647 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_guardian_confirmed/00006.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_guardian_confirmed/00007.png b/tests/snapshots/nanox/test_sign_tx_valid_with_guardian_confirmed/00007.png new file mode 100644 index 00000000..4c3028cc Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_guardian_confirmed/00007.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_guardian_rejected/00000.png b/tests/snapshots/nanox/test_sign_tx_valid_with_guardian_rejected/00000.png new file mode 100644 index 00000000..4b0f5780 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_guardian_rejected/00000.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_guardian_rejected/00001.png b/tests/snapshots/nanox/test_sign_tx_valid_with_guardian_rejected/00001.png new file mode 100644 index 00000000..cf2864f8 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_guardian_rejected/00001.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_guardian_rejected/00002.png b/tests/snapshots/nanox/test_sign_tx_valid_with_guardian_rejected/00002.png new file mode 100644 index 00000000..5427b0bf Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_guardian_rejected/00002.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_guardian_rejected/00003.png b/tests/snapshots/nanox/test_sign_tx_valid_with_guardian_rejected/00003.png new file mode 100644 index 00000000..0ff7d350 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_guardian_rejected/00003.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_guardian_rejected/00004.png b/tests/snapshots/nanox/test_sign_tx_valid_with_guardian_rejected/00004.png new file mode 100644 index 00000000..fdb5d811 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_guardian_rejected/00004.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_guardian_rejected/00005.png b/tests/snapshots/nanox/test_sign_tx_valid_with_guardian_rejected/00005.png new file mode 100644 index 00000000..dfaacb2f Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_guardian_rejected/00005.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_guardian_rejected/00006.png b/tests/snapshots/nanox/test_sign_tx_valid_with_guardian_rejected/00006.png new file mode 100644 index 00000000..63db7647 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_guardian_rejected/00006.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_guardian_rejected/00007.png b/tests/snapshots/nanox/test_sign_tx_valid_with_guardian_rejected/00007.png new file mode 100644 index 00000000..c4c84cf4 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_guardian_rejected/00007.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_guardian_rejected/00008.png b/tests/snapshots/nanox/test_sign_tx_valid_with_guardian_rejected/00008.png new file mode 100644 index 00000000..4c3028cc Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_guardian_rejected/00008.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00000.png b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00000.png new file mode 100644 index 00000000..4b0f5780 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00000.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00001.png b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00001.png new file mode 100644 index 00000000..cf2864f8 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00001.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00002.png b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00002.png new file mode 100644 index 00000000..5427b0bf Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00002.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00003.png b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00003.png new file mode 100644 index 00000000..0ff7d350 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00003.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00004.png b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00004.png new file mode 100644 index 00000000..d0573815 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00004.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00005.png b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00005.png new file mode 100644 index 00000000..e098d53b Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00005.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00006.png b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00006.png new file mode 100644 index 00000000..dfaacb2f Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00006.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00007.png b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00007.png new file mode 100644 index 00000000..63db7647 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00007.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00008.png b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00008.png new file mode 100644 index 00000000..4c3028cc Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00008.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_rejected/00000.png b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_rejected/00000.png new file mode 100644 index 00000000..4b0f5780 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_rejected/00000.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_rejected/00001.png b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_rejected/00001.png new file mode 100644 index 00000000..cf2864f8 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_rejected/00001.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_rejected/00002.png b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_rejected/00002.png new file mode 100644 index 00000000..5427b0bf Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_rejected/00002.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_rejected/00003.png b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_rejected/00003.png new file mode 100644 index 00000000..0ff7d350 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_rejected/00003.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_rejected/00004.png b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_rejected/00004.png new file mode 100644 index 00000000..d0573815 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_rejected/00004.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_rejected/00005.png b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_rejected/00005.png new file mode 100644 index 00000000..e098d53b Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_rejected/00005.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_rejected/00006.png b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_rejected/00006.png new file mode 100644 index 00000000..dfaacb2f Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_rejected/00006.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_rejected/00007.png b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_rejected/00007.png new file mode 100644 index 00000000..63db7647 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_rejected/00007.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_rejected/00008.png b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_rejected/00008.png new file mode 100644 index 00000000..c4c84cf4 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_rejected/00008.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_rejected/00009.png b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_rejected/00009.png new file mode 100644 index 00000000..4c3028cc Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_and_guardian_rejected/00009.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_confirmed/00000.png b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_confirmed/00000.png new file mode 100644 index 00000000..4b0f5780 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_confirmed/00000.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_confirmed/00001.png b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_confirmed/00001.png new file mode 100644 index 00000000..cf2864f8 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_confirmed/00001.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_confirmed/00002.png b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_confirmed/00002.png new file mode 100644 index 00000000..5427b0bf Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_confirmed/00002.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_confirmed/00003.png b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_confirmed/00003.png new file mode 100644 index 00000000..0ff7d350 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_confirmed/00003.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_confirmed/00004.png b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_confirmed/00004.png new file mode 100644 index 00000000..e098d53b Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_confirmed/00004.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_confirmed/00005.png b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_confirmed/00005.png new file mode 100644 index 00000000..dfaacb2f Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_confirmed/00005.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_confirmed/00006.png b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_confirmed/00006.png new file mode 100644 index 00000000..63db7647 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_confirmed/00006.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_confirmed/00007.png b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_confirmed/00007.png new file mode 100644 index 00000000..4c3028cc Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_confirmed/00007.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_rejected/00000.png b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_rejected/00000.png new file mode 100644 index 00000000..4b0f5780 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_rejected/00000.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_rejected/00001.png b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_rejected/00001.png new file mode 100644 index 00000000..cf2864f8 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_rejected/00001.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_rejected/00002.png b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_rejected/00002.png new file mode 100644 index 00000000..5427b0bf Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_rejected/00002.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_rejected/00003.png b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_rejected/00003.png new file mode 100644 index 00000000..0ff7d350 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_rejected/00003.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_rejected/00004.png b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_rejected/00004.png new file mode 100644 index 00000000..e098d53b Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_rejected/00004.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_rejected/00005.png b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_rejected/00005.png new file mode 100644 index 00000000..dfaacb2f Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_rejected/00005.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_rejected/00006.png b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_rejected/00006.png new file mode 100644 index 00000000..63db7647 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_rejected/00006.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_rejected/00007.png b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_rejected/00007.png new file mode 100644 index 00000000..c4c84cf4 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_rejected/00007.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_rejected/00008.png b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_rejected/00008.png new file mode 100644 index 00000000..4c3028cc Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_valid_with_relayer_rejected/00008.png differ diff --git a/tests/snapshots/nanox/test_toggle_contract_data_0/00002.png b/tests/snapshots/nanox/test_toggle_contract_data_0/00002.png index e43c1d0a..b21b5df1 100644 Binary files a/tests/snapshots/nanox/test_toggle_contract_data_0/00002.png and b/tests/snapshots/nanox/test_toggle_contract_data_0/00002.png differ diff --git a/tests/snapshots/nanox/test_toggle_contract_data_1/00002.png b/tests/snapshots/nanox/test_toggle_contract_data_1/00002.png index e43c1d0a..b21b5df1 100644 Binary files a/tests/snapshots/nanox/test_toggle_contract_data_1/00002.png and b/tests/snapshots/nanox/test_toggle_contract_data_1/00002.png differ diff --git a/tests/snapshots/stax/test_get_addr_confirm_ok/00000.png b/tests/snapshots/stax/test_get_addr_confirm_ok/00000.png index 022b6234..3740dc33 100644 Binary files a/tests/snapshots/stax/test_get_addr_confirm_ok/00000.png and b/tests/snapshots/stax/test_get_addr_confirm_ok/00000.png differ diff --git a/tests/snapshots/stax/test_get_addr_confirm_ok/00001.png b/tests/snapshots/stax/test_get_addr_confirm_ok/00001.png index 070a5dfa..0b96cbf9 100644 Binary files a/tests/snapshots/stax/test_get_addr_confirm_ok/00001.png and b/tests/snapshots/stax/test_get_addr_confirm_ok/00001.png differ diff --git a/tests/snapshots/stax/test_get_addr_confirm_ok/00002.png b/tests/snapshots/stax/test_get_addr_confirm_ok/00002.png index 617b1202..d7a3b666 100644 Binary files a/tests/snapshots/stax/test_get_addr_confirm_ok/00002.png and b/tests/snapshots/stax/test_get_addr_confirm_ok/00002.png differ diff --git a/tests/snapshots/stax/test_get_addr_confirm_ok/00003.png b/tests/snapshots/stax/test_get_addr_confirm_ok/00003.png index 070a5dfa..0b96cbf9 100644 Binary files a/tests/snapshots/stax/test_get_addr_confirm_ok/00003.png and b/tests/snapshots/stax/test_get_addr_confirm_ok/00003.png differ diff --git a/tests/snapshots/stax/test_get_addr_confirm_ok/00004.png b/tests/snapshots/stax/test_get_addr_confirm_ok/00004.png index f59899e9..8d924006 100644 Binary files a/tests/snapshots/stax/test_get_addr_confirm_ok/00004.png and b/tests/snapshots/stax/test_get_addr_confirm_ok/00004.png differ diff --git a/tests/snapshots/stax/test_get_addr_confirm_ok/00005.png b/tests/snapshots/stax/test_get_addr_confirm_ok/00005.png index 1ae99303..1154fea6 100644 Binary files a/tests/snapshots/stax/test_get_addr_confirm_ok/00005.png and b/tests/snapshots/stax/test_get_addr_confirm_ok/00005.png differ diff --git a/tests/snapshots/stax/test_get_addr_confirm_refused/00000.png b/tests/snapshots/stax/test_get_addr_confirm_refused/00000.png index 022b6234..3740dc33 100644 Binary files a/tests/snapshots/stax/test_get_addr_confirm_refused/00000.png and b/tests/snapshots/stax/test_get_addr_confirm_refused/00000.png differ diff --git a/tests/snapshots/stax/test_get_addr_confirm_refused/00001.png b/tests/snapshots/stax/test_get_addr_confirm_refused/00001.png index 070a5dfa..0b96cbf9 100644 Binary files a/tests/snapshots/stax/test_get_addr_confirm_refused/00001.png and b/tests/snapshots/stax/test_get_addr_confirm_refused/00001.png differ diff --git a/tests/snapshots/stax/test_get_addr_confirm_refused/00002.png b/tests/snapshots/stax/test_get_addr_confirm_refused/00002.png index b0eba3f0..94c91bb6 100644 Binary files a/tests/snapshots/stax/test_get_addr_confirm_refused/00002.png and b/tests/snapshots/stax/test_get_addr_confirm_refused/00002.png differ diff --git a/tests/snapshots/stax/test_get_addr_confirm_refused/00003.png b/tests/snapshots/stax/test_get_addr_confirm_refused/00003.png index 1ae99303..1154fea6 100644 Binary files a/tests/snapshots/stax/test_get_addr_confirm_refused/00003.png and b/tests/snapshots/stax/test_get_addr_confirm_refused/00003.png differ diff --git a/tests/snapshots/stax/test_menu/00000.png b/tests/snapshots/stax/test_menu/00000.png index 1ae99303..1154fea6 100644 Binary files a/tests/snapshots/stax/test_menu/00000.png and b/tests/snapshots/stax/test_menu/00000.png differ diff --git a/tests/snapshots/stax/test_menu/00001.png b/tests/snapshots/stax/test_menu/00001.png index 73191bdd..ef49d3eb 100644 Binary files a/tests/snapshots/stax/test_menu/00001.png and b/tests/snapshots/stax/test_menu/00001.png differ diff --git a/tests/snapshots/stax/test_menu/00002.png b/tests/snapshots/stax/test_menu/00002.png index a3cf59d3..6e0fb957 100644 Binary files a/tests/snapshots/stax/test_menu/00002.png and b/tests/snapshots/stax/test_menu/00002.png differ diff --git a/tests/snapshots/stax/test_menu/00003.png b/tests/snapshots/stax/test_menu/00003.png index 73191bdd..ef49d3eb 100644 Binary files a/tests/snapshots/stax/test_menu/00003.png and b/tests/snapshots/stax/test_menu/00003.png differ diff --git a/tests/snapshots/stax/test_menu/00004.png b/tests/snapshots/stax/test_menu/00004.png index 1ae99303..1154fea6 100644 Binary files a/tests/snapshots/stax/test_menu/00004.png and b/tests/snapshots/stax/test_menu/00004.png differ diff --git a/tests/snapshots/stax/test_sign_msg_auth_token_invalid_ttl/00000.png b/tests/snapshots/stax/test_sign_msg_auth_token_invalid_ttl/00000.png index 3493385b..92091824 100644 Binary files a/tests/snapshots/stax/test_sign_msg_auth_token_invalid_ttl/00000.png and b/tests/snapshots/stax/test_sign_msg_auth_token_invalid_ttl/00000.png differ diff --git a/tests/snapshots/stax/test_sign_msg_auth_token_invalid_ttl/00001.png b/tests/snapshots/stax/test_sign_msg_auth_token_invalid_ttl/00001.png index dfcd4d67..28a1c47d 100644 Binary files a/tests/snapshots/stax/test_sign_msg_auth_token_invalid_ttl/00001.png and b/tests/snapshots/stax/test_sign_msg_auth_token_invalid_ttl/00001.png differ diff --git a/tests/snapshots/stax/test_sign_msg_auth_token_invalid_ttl/00002.png b/tests/snapshots/stax/test_sign_msg_auth_token_invalid_ttl/00002.png index f3e2ef99..997ea8fb 100644 Binary files a/tests/snapshots/stax/test_sign_msg_auth_token_invalid_ttl/00002.png and b/tests/snapshots/stax/test_sign_msg_auth_token_invalid_ttl/00002.png differ diff --git a/tests/snapshots/stax/test_sign_msg_auth_token_invalid_ttl/00003.png b/tests/snapshots/stax/test_sign_msg_auth_token_invalid_ttl/00003.png index c1a8fd4e..3ecf0b85 100644 Binary files a/tests/snapshots/stax/test_sign_msg_auth_token_invalid_ttl/00003.png and b/tests/snapshots/stax/test_sign_msg_auth_token_invalid_ttl/00003.png differ diff --git a/tests/snapshots/stax/test_sign_msg_auth_token_localhost_5min_ok/00000.png b/tests/snapshots/stax/test_sign_msg_auth_token_localhost_5min_ok/00000.png index 3493385b..92091824 100644 Binary files a/tests/snapshots/stax/test_sign_msg_auth_token_localhost_5min_ok/00000.png and b/tests/snapshots/stax/test_sign_msg_auth_token_localhost_5min_ok/00000.png differ diff --git a/tests/snapshots/stax/test_sign_msg_auth_token_localhost_5min_ok/00001.png b/tests/snapshots/stax/test_sign_msg_auth_token_localhost_5min_ok/00001.png index d4fb18b5..157c205d 100644 Binary files a/tests/snapshots/stax/test_sign_msg_auth_token_localhost_5min_ok/00001.png and b/tests/snapshots/stax/test_sign_msg_auth_token_localhost_5min_ok/00001.png differ diff --git a/tests/snapshots/stax/test_sign_msg_auth_token_localhost_5min_ok/00002.png b/tests/snapshots/stax/test_sign_msg_auth_token_localhost_5min_ok/00002.png index f3e2ef99..997ea8fb 100644 Binary files a/tests/snapshots/stax/test_sign_msg_auth_token_localhost_5min_ok/00002.png and b/tests/snapshots/stax/test_sign_msg_auth_token_localhost_5min_ok/00002.png differ diff --git a/tests/snapshots/stax/test_sign_msg_auth_token_localhost_5min_ok/00003.png b/tests/snapshots/stax/test_sign_msg_auth_token_localhost_5min_ok/00003.png index c1a8fd4e..3ecf0b85 100644 Binary files a/tests/snapshots/stax/test_sign_msg_auth_token_localhost_5min_ok/00003.png and b/tests/snapshots/stax/test_sign_msg_auth_token_localhost_5min_ok/00003.png differ diff --git a/tests/snapshots/stax/test_sign_msg_auth_token_long_origin_should_trim_ok/00000.png b/tests/snapshots/stax/test_sign_msg_auth_token_long_origin_should_trim_ok/00000.png index 3493385b..92091824 100644 Binary files a/tests/snapshots/stax/test_sign_msg_auth_token_long_origin_should_trim_ok/00000.png and b/tests/snapshots/stax/test_sign_msg_auth_token_long_origin_should_trim_ok/00000.png differ diff --git a/tests/snapshots/stax/test_sign_msg_auth_token_long_origin_should_trim_ok/00001.png b/tests/snapshots/stax/test_sign_msg_auth_token_long_origin_should_trim_ok/00001.png index 83587076..0eb71be4 100644 Binary files a/tests/snapshots/stax/test_sign_msg_auth_token_long_origin_should_trim_ok/00001.png and b/tests/snapshots/stax/test_sign_msg_auth_token_long_origin_should_trim_ok/00001.png differ diff --git a/tests/snapshots/stax/test_sign_msg_auth_token_long_origin_should_trim_ok/00002.png b/tests/snapshots/stax/test_sign_msg_auth_token_long_origin_should_trim_ok/00002.png index f3e2ef99..997ea8fb 100644 Binary files a/tests/snapshots/stax/test_sign_msg_auth_token_long_origin_should_trim_ok/00002.png and b/tests/snapshots/stax/test_sign_msg_auth_token_long_origin_should_trim_ok/00002.png differ diff --git a/tests/snapshots/stax/test_sign_msg_auth_token_long_origin_should_trim_ok/00003.png b/tests/snapshots/stax/test_sign_msg_auth_token_long_origin_should_trim_ok/00003.png index c1a8fd4e..3ecf0b85 100644 Binary files a/tests/snapshots/stax/test_sign_msg_auth_token_long_origin_should_trim_ok/00003.png and b/tests/snapshots/stax/test_sign_msg_auth_token_long_origin_should_trim_ok/00003.png differ diff --git a/tests/snapshots/stax/test_sign_msg_auth_token_long_ttl/00000.png b/tests/snapshots/stax/test_sign_msg_auth_token_long_ttl/00000.png index 3493385b..92091824 100644 Binary files a/tests/snapshots/stax/test_sign_msg_auth_token_long_ttl/00000.png and b/tests/snapshots/stax/test_sign_msg_auth_token_long_ttl/00000.png differ diff --git a/tests/snapshots/stax/test_sign_msg_auth_token_long_ttl/00001.png b/tests/snapshots/stax/test_sign_msg_auth_token_long_ttl/00001.png index e02b32cc..0e546eed 100644 Binary files a/tests/snapshots/stax/test_sign_msg_auth_token_long_ttl/00001.png and b/tests/snapshots/stax/test_sign_msg_auth_token_long_ttl/00001.png differ diff --git a/tests/snapshots/stax/test_sign_msg_auth_token_long_ttl/00002.png b/tests/snapshots/stax/test_sign_msg_auth_token_long_ttl/00002.png index f3e2ef99..997ea8fb 100644 Binary files a/tests/snapshots/stax/test_sign_msg_auth_token_long_ttl/00002.png and b/tests/snapshots/stax/test_sign_msg_auth_token_long_ttl/00002.png differ diff --git a/tests/snapshots/stax/test_sign_msg_auth_token_long_ttl/00003.png b/tests/snapshots/stax/test_sign_msg_auth_token_long_ttl/00003.png index c1a8fd4e..3ecf0b85 100644 Binary files a/tests/snapshots/stax/test_sign_msg_auth_token_long_ttl/00003.png and b/tests/snapshots/stax/test_sign_msg_auth_token_long_ttl/00003.png differ diff --git a/tests/snapshots/stax/test_sign_msg_auth_token_ok/00000.png b/tests/snapshots/stax/test_sign_msg_auth_token_ok/00000.png index 3493385b..92091824 100644 Binary files a/tests/snapshots/stax/test_sign_msg_auth_token_ok/00000.png and b/tests/snapshots/stax/test_sign_msg_auth_token_ok/00000.png differ diff --git a/tests/snapshots/stax/test_sign_msg_auth_token_ok/00001.png b/tests/snapshots/stax/test_sign_msg_auth_token_ok/00001.png index 4cf04cec..4407ef4e 100644 Binary files a/tests/snapshots/stax/test_sign_msg_auth_token_ok/00001.png and b/tests/snapshots/stax/test_sign_msg_auth_token_ok/00001.png differ diff --git a/tests/snapshots/stax/test_sign_msg_auth_token_ok/00002.png b/tests/snapshots/stax/test_sign_msg_auth_token_ok/00002.png index f3e2ef99..997ea8fb 100644 Binary files a/tests/snapshots/stax/test_sign_msg_auth_token_ok/00002.png and b/tests/snapshots/stax/test_sign_msg_auth_token_ok/00002.png differ diff --git a/tests/snapshots/stax/test_sign_msg_auth_token_ok/00003.png b/tests/snapshots/stax/test_sign_msg_auth_token_ok/00003.png index c1a8fd4e..3ecf0b85 100644 Binary files a/tests/snapshots/stax/test_sign_msg_auth_token_ok/00003.png and b/tests/snapshots/stax/test_sign_msg_auth_token_ok/00003.png differ diff --git a/tests/snapshots/stax/test_sign_msg_auth_token_ok/00004.png b/tests/snapshots/stax/test_sign_msg_auth_token_ok/00004.png index 1ae99303..1154fea6 100644 Binary files a/tests/snapshots/stax/test_sign_msg_auth_token_ok/00004.png and b/tests/snapshots/stax/test_sign_msg_auth_token_ok/00004.png differ diff --git a/tests/snapshots/stax/test_sign_msg_auth_token_refused/00000.png b/tests/snapshots/stax/test_sign_msg_auth_token_refused/00000.png index 3493385b..92091824 100644 Binary files a/tests/snapshots/stax/test_sign_msg_auth_token_refused/00000.png and b/tests/snapshots/stax/test_sign_msg_auth_token_refused/00000.png differ diff --git a/tests/snapshots/stax/test_sign_msg_auth_token_refused/00001.png b/tests/snapshots/stax/test_sign_msg_auth_token_refused/00001.png index 5f5d3b33..7cd9ec9f 100644 Binary files a/tests/snapshots/stax/test_sign_msg_auth_token_refused/00001.png and b/tests/snapshots/stax/test_sign_msg_auth_token_refused/00001.png differ diff --git a/tests/snapshots/stax/test_sign_msg_auth_token_refused/00002.png b/tests/snapshots/stax/test_sign_msg_auth_token_refused/00002.png index f3e2ef99..997ea8fb 100644 Binary files a/tests/snapshots/stax/test_sign_msg_auth_token_refused/00002.png and b/tests/snapshots/stax/test_sign_msg_auth_token_refused/00002.png differ diff --git a/tests/snapshots/stax/test_sign_msg_auth_token_refused/00003.png b/tests/snapshots/stax/test_sign_msg_auth_token_refused/00003.png index d4cf6afb..45414d55 100644 Binary files a/tests/snapshots/stax/test_sign_msg_auth_token_refused/00003.png and b/tests/snapshots/stax/test_sign_msg_auth_token_refused/00003.png differ diff --git a/tests/snapshots/stax/test_sign_msg_auth_token_refused/00004.png b/tests/snapshots/stax/test_sign_msg_auth_token_refused/00004.png index 6ff73111..852c74d1 100644 Binary files a/tests/snapshots/stax/test_sign_msg_auth_token_refused/00004.png and b/tests/snapshots/stax/test_sign_msg_auth_token_refused/00004.png differ diff --git a/tests/snapshots/stax/test_sign_msg_auth_token_refused/00005.png b/tests/snapshots/stax/test_sign_msg_auth_token_refused/00005.png index 1ae99303..1154fea6 100644 Binary files a/tests/snapshots/stax/test_sign_msg_auth_token_refused/00005.png and b/tests/snapshots/stax/test_sign_msg_auth_token_refused/00005.png differ diff --git a/tests/snapshots/stax/test_sign_msg_auth_token_too_long_origin_regular_text_ok/00000.png b/tests/snapshots/stax/test_sign_msg_auth_token_too_long_origin_regular_text_ok/00000.png index 3493385b..92091824 100644 Binary files a/tests/snapshots/stax/test_sign_msg_auth_token_too_long_origin_regular_text_ok/00000.png and b/tests/snapshots/stax/test_sign_msg_auth_token_too_long_origin_regular_text_ok/00000.png differ diff --git a/tests/snapshots/stax/test_sign_msg_auth_token_too_long_origin_regular_text_ok/00001.png b/tests/snapshots/stax/test_sign_msg_auth_token_too_long_origin_regular_text_ok/00001.png index 2ba118ae..03b3b205 100644 Binary files a/tests/snapshots/stax/test_sign_msg_auth_token_too_long_origin_regular_text_ok/00001.png and b/tests/snapshots/stax/test_sign_msg_auth_token_too_long_origin_regular_text_ok/00001.png differ diff --git a/tests/snapshots/stax/test_sign_msg_auth_token_too_long_origin_regular_text_ok/00002.png b/tests/snapshots/stax/test_sign_msg_auth_token_too_long_origin_regular_text_ok/00002.png index ef358fec..997ea8fb 100644 Binary files a/tests/snapshots/stax/test_sign_msg_auth_token_too_long_origin_regular_text_ok/00002.png and b/tests/snapshots/stax/test_sign_msg_auth_token_too_long_origin_regular_text_ok/00002.png differ diff --git a/tests/snapshots/stax/test_sign_msg_auth_token_too_long_origin_regular_text_ok/00003.png b/tests/snapshots/stax/test_sign_msg_auth_token_too_long_origin_regular_text_ok/00003.png index 1da82aeb..3ecf0b85 100644 Binary files a/tests/snapshots/stax/test_sign_msg_auth_token_too_long_origin_regular_text_ok/00003.png and b/tests/snapshots/stax/test_sign_msg_auth_token_too_long_origin_regular_text_ok/00003.png differ diff --git a/tests/snapshots/stax/test_sign_msg_auth_token_too_long_origin_regular_text_ok/00004.png b/tests/snapshots/stax/test_sign_msg_auth_token_too_long_origin_regular_text_ok/00004.png index c1a8fd4e..1c2d6cd4 100644 Binary files a/tests/snapshots/stax/test_sign_msg_auth_token_too_long_origin_regular_text_ok/00004.png and b/tests/snapshots/stax/test_sign_msg_auth_token_too_long_origin_regular_text_ok/00004.png differ diff --git a/tests/snapshots/stax/test_sign_msg_auth_token_too_long_payload/00000.png b/tests/snapshots/stax/test_sign_msg_auth_token_too_long_payload/00000.png index 3493385b..92091824 100644 Binary files a/tests/snapshots/stax/test_sign_msg_auth_token_too_long_payload/00000.png and b/tests/snapshots/stax/test_sign_msg_auth_token_too_long_payload/00000.png differ diff --git a/tests/snapshots/stax/test_sign_msg_auth_token_too_long_payload/00001.png b/tests/snapshots/stax/test_sign_msg_auth_token_too_long_payload/00001.png index 2ba118ae..f912660c 100644 Binary files a/tests/snapshots/stax/test_sign_msg_auth_token_too_long_payload/00001.png and b/tests/snapshots/stax/test_sign_msg_auth_token_too_long_payload/00001.png differ diff --git a/tests/snapshots/stax/test_sign_msg_auth_token_too_long_payload/00002.png b/tests/snapshots/stax/test_sign_msg_auth_token_too_long_payload/00002.png index adf0238e..997ea8fb 100644 Binary files a/tests/snapshots/stax/test_sign_msg_auth_token_too_long_payload/00002.png and b/tests/snapshots/stax/test_sign_msg_auth_token_too_long_payload/00002.png differ diff --git a/tests/snapshots/stax/test_sign_msg_auth_token_too_long_payload/00003.png b/tests/snapshots/stax/test_sign_msg_auth_token_too_long_payload/00003.png index 1da82aeb..3ecf0b85 100644 Binary files a/tests/snapshots/stax/test_sign_msg_auth_token_too_long_payload/00003.png and b/tests/snapshots/stax/test_sign_msg_auth_token_too_long_payload/00003.png differ diff --git a/tests/snapshots/stax/test_sign_msg_auth_token_too_long_payload/00004.png b/tests/snapshots/stax/test_sign_msg_auth_token_too_long_payload/00004.png index c1a8fd4e..1c2d6cd4 100644 Binary files a/tests/snapshots/stax/test_sign_msg_auth_token_too_long_payload/00004.png and b/tests/snapshots/stax/test_sign_msg_auth_token_too_long_payload/00004.png differ diff --git a/tests/snapshots/stax/test_sign_msg_auth_token_too_long_ttl_ok/00000.png b/tests/snapshots/stax/test_sign_msg_auth_token_too_long_ttl_ok/00000.png index 3493385b..92091824 100644 Binary files a/tests/snapshots/stax/test_sign_msg_auth_token_too_long_ttl_ok/00000.png and b/tests/snapshots/stax/test_sign_msg_auth_token_too_long_ttl_ok/00000.png differ diff --git a/tests/snapshots/stax/test_sign_msg_auth_token_too_long_ttl_ok/00001.png b/tests/snapshots/stax/test_sign_msg_auth_token_too_long_ttl_ok/00001.png index dfcd4d67..28a1c47d 100644 Binary files a/tests/snapshots/stax/test_sign_msg_auth_token_too_long_ttl_ok/00001.png and b/tests/snapshots/stax/test_sign_msg_auth_token_too_long_ttl_ok/00001.png differ diff --git a/tests/snapshots/stax/test_sign_msg_auth_token_too_long_ttl_ok/00002.png b/tests/snapshots/stax/test_sign_msg_auth_token_too_long_ttl_ok/00002.png index f3e2ef99..997ea8fb 100644 Binary files a/tests/snapshots/stax/test_sign_msg_auth_token_too_long_ttl_ok/00002.png and b/tests/snapshots/stax/test_sign_msg_auth_token_too_long_ttl_ok/00002.png differ diff --git a/tests/snapshots/stax/test_sign_msg_auth_token_too_long_ttl_ok/00003.png b/tests/snapshots/stax/test_sign_msg_auth_token_too_long_ttl_ok/00003.png index c1a8fd4e..3ecf0b85 100644 Binary files a/tests/snapshots/stax/test_sign_msg_auth_token_too_long_ttl_ok/00003.png and b/tests/snapshots/stax/test_sign_msg_auth_token_too_long_ttl_ok/00003.png differ diff --git a/tests/snapshots/stax/test_sign_msg_auth_token_xexchange_24h_ok/00000.png b/tests/snapshots/stax/test_sign_msg_auth_token_xexchange_24h_ok/00000.png index 3493385b..92091824 100644 Binary files a/tests/snapshots/stax/test_sign_msg_auth_token_xexchange_24h_ok/00000.png and b/tests/snapshots/stax/test_sign_msg_auth_token_xexchange_24h_ok/00000.png differ diff --git a/tests/snapshots/stax/test_sign_msg_auth_token_xexchange_24h_ok/00001.png b/tests/snapshots/stax/test_sign_msg_auth_token_xexchange_24h_ok/00001.png index 2ecb2568..0f8660df 100644 Binary files a/tests/snapshots/stax/test_sign_msg_auth_token_xexchange_24h_ok/00001.png and b/tests/snapshots/stax/test_sign_msg_auth_token_xexchange_24h_ok/00001.png differ diff --git a/tests/snapshots/stax/test_sign_msg_auth_token_xexchange_24h_ok/00002.png b/tests/snapshots/stax/test_sign_msg_auth_token_xexchange_24h_ok/00002.png index f3e2ef99..997ea8fb 100644 Binary files a/tests/snapshots/stax/test_sign_msg_auth_token_xexchange_24h_ok/00002.png and b/tests/snapshots/stax/test_sign_msg_auth_token_xexchange_24h_ok/00002.png differ diff --git a/tests/snapshots/stax/test_sign_msg_auth_token_xexchange_24h_ok/00003.png b/tests/snapshots/stax/test_sign_msg_auth_token_xexchange_24h_ok/00003.png index c1a8fd4e..3ecf0b85 100644 Binary files a/tests/snapshots/stax/test_sign_msg_auth_token_xexchange_24h_ok/00003.png and b/tests/snapshots/stax/test_sign_msg_auth_token_xexchange_24h_ok/00003.png differ diff --git a/tests/snapshots/stax/test_sign_msg_long/00000.png b/tests/snapshots/stax/test_sign_msg_long/00000.png index eb0230f3..8d57630e 100644 Binary files a/tests/snapshots/stax/test_sign_msg_long/00000.png and b/tests/snapshots/stax/test_sign_msg_long/00000.png differ diff --git a/tests/snapshots/stax/test_sign_msg_long/00001.png b/tests/snapshots/stax/test_sign_msg_long/00001.png index c053cf11..d5e673da 100644 Binary files a/tests/snapshots/stax/test_sign_msg_long/00001.png and b/tests/snapshots/stax/test_sign_msg_long/00001.png differ diff --git a/tests/snapshots/stax/test_sign_msg_long/00002.png b/tests/snapshots/stax/test_sign_msg_long/00002.png index f3e2ef99..997ea8fb 100644 Binary files a/tests/snapshots/stax/test_sign_msg_long/00002.png and b/tests/snapshots/stax/test_sign_msg_long/00002.png differ diff --git a/tests/snapshots/stax/test_sign_msg_long/00003.png b/tests/snapshots/stax/test_sign_msg_long/00003.png index c1a8fd4e..3ecf0b85 100644 Binary files a/tests/snapshots/stax/test_sign_msg_long/00003.png and b/tests/snapshots/stax/test_sign_msg_long/00003.png differ diff --git a/tests/snapshots/stax/test_sign_msg_long/00004.png b/tests/snapshots/stax/test_sign_msg_long/00004.png index 1ae99303..1154fea6 100644 Binary files a/tests/snapshots/stax/test_sign_msg_long/00004.png and b/tests/snapshots/stax/test_sign_msg_long/00004.png differ diff --git a/tests/snapshots/stax/test_sign_msg_short_ok/00000.png b/tests/snapshots/stax/test_sign_msg_short_ok/00000.png index eb0230f3..8d57630e 100644 Binary files a/tests/snapshots/stax/test_sign_msg_short_ok/00000.png and b/tests/snapshots/stax/test_sign_msg_short_ok/00000.png differ diff --git a/tests/snapshots/stax/test_sign_msg_short_ok/00001.png b/tests/snapshots/stax/test_sign_msg_short_ok/00001.png index d4cf6afb..45414d55 100644 Binary files a/tests/snapshots/stax/test_sign_msg_short_ok/00001.png and b/tests/snapshots/stax/test_sign_msg_short_ok/00001.png differ diff --git a/tests/snapshots/stax/test_sign_msg_short_ok/00002.png b/tests/snapshots/stax/test_sign_msg_short_ok/00002.png index eb0230f3..8d57630e 100644 Binary files a/tests/snapshots/stax/test_sign_msg_short_ok/00002.png and b/tests/snapshots/stax/test_sign_msg_short_ok/00002.png differ diff --git a/tests/snapshots/stax/test_sign_msg_short_ok/00003.png b/tests/snapshots/stax/test_sign_msg_short_ok/00003.png index db2b233c..9e2959ba 100644 Binary files a/tests/snapshots/stax/test_sign_msg_short_ok/00003.png and b/tests/snapshots/stax/test_sign_msg_short_ok/00003.png differ diff --git a/tests/snapshots/stax/test_sign_msg_short_ok/00004.png b/tests/snapshots/stax/test_sign_msg_short_ok/00004.png index f3e2ef99..997ea8fb 100644 Binary files a/tests/snapshots/stax/test_sign_msg_short_ok/00004.png and b/tests/snapshots/stax/test_sign_msg_short_ok/00004.png differ diff --git a/tests/snapshots/stax/test_sign_msg_short_ok/00005.png b/tests/snapshots/stax/test_sign_msg_short_ok/00005.png index db2b233c..9e2959ba 100644 Binary files a/tests/snapshots/stax/test_sign_msg_short_ok/00005.png and b/tests/snapshots/stax/test_sign_msg_short_ok/00005.png differ diff --git a/tests/snapshots/stax/test_sign_msg_short_ok/00006.png b/tests/snapshots/stax/test_sign_msg_short_ok/00006.png index d4cf6afb..45414d55 100644 Binary files a/tests/snapshots/stax/test_sign_msg_short_ok/00006.png and b/tests/snapshots/stax/test_sign_msg_short_ok/00006.png differ diff --git a/tests/snapshots/stax/test_sign_msg_short_ok/00007.png b/tests/snapshots/stax/test_sign_msg_short_ok/00007.png index db2b233c..9e2959ba 100644 Binary files a/tests/snapshots/stax/test_sign_msg_short_ok/00007.png and b/tests/snapshots/stax/test_sign_msg_short_ok/00007.png differ diff --git a/tests/snapshots/stax/test_sign_msg_short_ok/00008.png b/tests/snapshots/stax/test_sign_msg_short_ok/00008.png index f3e2ef99..997ea8fb 100644 Binary files a/tests/snapshots/stax/test_sign_msg_short_ok/00008.png and b/tests/snapshots/stax/test_sign_msg_short_ok/00008.png differ diff --git a/tests/snapshots/stax/test_sign_msg_short_ok/00009.png b/tests/snapshots/stax/test_sign_msg_short_ok/00009.png index c1a8fd4e..3ecf0b85 100644 Binary files a/tests/snapshots/stax/test_sign_msg_short_ok/00009.png and b/tests/snapshots/stax/test_sign_msg_short_ok/00009.png differ diff --git a/tests/snapshots/stax/test_sign_msg_short_rejected/00000.png b/tests/snapshots/stax/test_sign_msg_short_rejected/00000.png index eb0230f3..8d57630e 100644 Binary files a/tests/snapshots/stax/test_sign_msg_short_rejected/00000.png and b/tests/snapshots/stax/test_sign_msg_short_rejected/00000.png differ diff --git a/tests/snapshots/stax/test_sign_msg_short_rejected/00001.png b/tests/snapshots/stax/test_sign_msg_short_rejected/00001.png index db2b233c..9e2959ba 100644 Binary files a/tests/snapshots/stax/test_sign_msg_short_rejected/00001.png and b/tests/snapshots/stax/test_sign_msg_short_rejected/00001.png differ diff --git a/tests/snapshots/stax/test_sign_msg_short_rejected/00002.png b/tests/snapshots/stax/test_sign_msg_short_rejected/00002.png index f3e2ef99..997ea8fb 100644 Binary files a/tests/snapshots/stax/test_sign_msg_short_rejected/00002.png and b/tests/snapshots/stax/test_sign_msg_short_rejected/00002.png differ diff --git a/tests/snapshots/stax/test_sign_msg_short_rejected/00003.png b/tests/snapshots/stax/test_sign_msg_short_rejected/00003.png index d4cf6afb..45414d55 100644 Binary files a/tests/snapshots/stax/test_sign_msg_short_rejected/00003.png and b/tests/snapshots/stax/test_sign_msg_short_rejected/00003.png differ diff --git a/tests/snapshots/stax/test_sign_msg_short_rejected/00004.png b/tests/snapshots/stax/test_sign_msg_short_rejected/00004.png index 6ff73111..852c74d1 100644 Binary files a/tests/snapshots/stax/test_sign_msg_short_rejected/00004.png and b/tests/snapshots/stax/test_sign_msg_short_rejected/00004.png differ diff --git a/tests/snapshots/stax/test_sign_msg_short_rejected/00005.png b/tests/snapshots/stax/test_sign_msg_short_rejected/00005.png index 1ae99303..1154fea6 100644 Binary files a/tests/snapshots/stax/test_sign_msg_short_rejected/00005.png and b/tests/snapshots/stax/test_sign_msg_short_rejected/00005.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_esdt_transfer/00000.png b/tests/snapshots/stax/test_sign_tx_valid_esdt_transfer/00000.png index 74c1c28a..8a361087 100644 Binary files a/tests/snapshots/stax/test_sign_tx_valid_esdt_transfer/00000.png and b/tests/snapshots/stax/test_sign_tx_valid_esdt_transfer/00000.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_esdt_transfer/00001.png b/tests/snapshots/stax/test_sign_tx_valid_esdt_transfer/00001.png index 60664192..4f879322 100644 Binary files a/tests/snapshots/stax/test_sign_tx_valid_esdt_transfer/00001.png and b/tests/snapshots/stax/test_sign_tx_valid_esdt_transfer/00001.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_esdt_transfer/00002.png b/tests/snapshots/stax/test_sign_tx_valid_esdt_transfer/00002.png index a663eba1..2a5879a6 100644 Binary files a/tests/snapshots/stax/test_sign_tx_valid_esdt_transfer/00002.png and b/tests/snapshots/stax/test_sign_tx_valid_esdt_transfer/00002.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_esdt_transfer/00003.png b/tests/snapshots/stax/test_sign_tx_valid_esdt_transfer/00003.png index 4d5f5bad..a24543af 100644 Binary files a/tests/snapshots/stax/test_sign_tx_valid_esdt_transfer/00003.png and b/tests/snapshots/stax/test_sign_tx_valid_esdt_transfer/00003.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_esdt_transfer/00004.png b/tests/snapshots/stax/test_sign_tx_valid_esdt_transfer/00004.png index cd2f5275..a21279c8 100644 Binary files a/tests/snapshots/stax/test_sign_tx_valid_esdt_transfer/00004.png and b/tests/snapshots/stax/test_sign_tx_valid_esdt_transfer/00004.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_esdt_with_guardian/00000.png b/tests/snapshots/stax/test_sign_tx_valid_esdt_with_guardian/00000.png index 74c1c28a..8a361087 100644 Binary files a/tests/snapshots/stax/test_sign_tx_valid_esdt_with_guardian/00000.png and b/tests/snapshots/stax/test_sign_tx_valid_esdt_with_guardian/00000.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_esdt_with_guardian/00001.png b/tests/snapshots/stax/test_sign_tx_valid_esdt_with_guardian/00001.png index 60664192..b6de6574 100644 Binary files a/tests/snapshots/stax/test_sign_tx_valid_esdt_with_guardian/00001.png and b/tests/snapshots/stax/test_sign_tx_valid_esdt_with_guardian/00001.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_esdt_with_guardian/00002.png b/tests/snapshots/stax/test_sign_tx_valid_esdt_with_guardian/00002.png index bc61ed27..37cc7e7c 100644 Binary files a/tests/snapshots/stax/test_sign_tx_valid_esdt_with_guardian/00002.png and b/tests/snapshots/stax/test_sign_tx_valid_esdt_with_guardian/00002.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_esdt_with_guardian/00003.png b/tests/snapshots/stax/test_sign_tx_valid_esdt_with_guardian/00003.png index 4d5f5bad..56d7c77b 100644 Binary files a/tests/snapshots/stax/test_sign_tx_valid_esdt_with_guardian/00003.png and b/tests/snapshots/stax/test_sign_tx_valid_esdt_with_guardian/00003.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_esdt_with_guardian/00004.png b/tests/snapshots/stax/test_sign_tx_valid_esdt_with_guardian/00004.png index cd2f5275..a24543af 100644 Binary files a/tests/snapshots/stax/test_sign_tx_valid_esdt_with_guardian/00004.png and b/tests/snapshots/stax/test_sign_tx_valid_esdt_with_guardian/00004.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_large_amount/00000.png b/tests/snapshots/stax/test_sign_tx_valid_large_amount/00000.png index 71495660..6a4b96f0 100644 Binary files a/tests/snapshots/stax/test_sign_tx_valid_large_amount/00000.png and b/tests/snapshots/stax/test_sign_tx_valid_large_amount/00000.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_large_amount/00001.png b/tests/snapshots/stax/test_sign_tx_valid_large_amount/00001.png index f66d6691..df9c9719 100644 Binary files a/tests/snapshots/stax/test_sign_tx_valid_large_amount/00001.png and b/tests/snapshots/stax/test_sign_tx_valid_large_amount/00001.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_large_amount/00002.png b/tests/snapshots/stax/test_sign_tx_valid_large_amount/00002.png index e6d1ff99..2a5879a6 100644 Binary files a/tests/snapshots/stax/test_sign_tx_valid_large_amount/00002.png and b/tests/snapshots/stax/test_sign_tx_valid_large_amount/00002.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_large_amount/00003.png b/tests/snapshots/stax/test_sign_tx_valid_large_amount/00003.png index 4d5f5bad..a24543af 100644 Binary files a/tests/snapshots/stax/test_sign_tx_valid_large_amount/00003.png and b/tests/snapshots/stax/test_sign_tx_valid_large_amount/00003.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_large_amount/00004.png b/tests/snapshots/stax/test_sign_tx_valid_large_amount/00004.png index cd2f5275..1154fea6 100644 Binary files a/tests/snapshots/stax/test_sign_tx_valid_large_amount/00004.png and b/tests/snapshots/stax/test_sign_tx_valid_large_amount/00004.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_large_nonce/00000.png b/tests/snapshots/stax/test_sign_tx_valid_large_nonce/00000.png index 71495660..6a4b96f0 100644 Binary files a/tests/snapshots/stax/test_sign_tx_valid_large_nonce/00000.png and b/tests/snapshots/stax/test_sign_tx_valid_large_nonce/00000.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_large_nonce/00001.png b/tests/snapshots/stax/test_sign_tx_valid_large_nonce/00001.png index 554910b5..3b14d634 100644 Binary files a/tests/snapshots/stax/test_sign_tx_valid_large_nonce/00001.png and b/tests/snapshots/stax/test_sign_tx_valid_large_nonce/00001.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_large_nonce/00002.png b/tests/snapshots/stax/test_sign_tx_valid_large_nonce/00002.png index e6d1ff99..2a5879a6 100644 Binary files a/tests/snapshots/stax/test_sign_tx_valid_large_nonce/00002.png and b/tests/snapshots/stax/test_sign_tx_valid_large_nonce/00002.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_large_nonce/00003.png b/tests/snapshots/stax/test_sign_tx_valid_large_nonce/00003.png index 4d5f5bad..a24543af 100644 Binary files a/tests/snapshots/stax/test_sign_tx_valid_large_nonce/00003.png and b/tests/snapshots/stax/test_sign_tx_valid_large_nonce/00003.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_large_nonce/00004.png b/tests/snapshots/stax/test_sign_tx_valid_large_nonce/00004.png index cd2f5275..1154fea6 100644 Binary files a/tests/snapshots/stax/test_sign_tx_valid_large_nonce/00004.png and b/tests/snapshots/stax/test_sign_tx_valid_large_nonce/00004.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_large_receiver/00000.png b/tests/snapshots/stax/test_sign_tx_valid_large_receiver/00000.png index 71495660..6a4b96f0 100644 Binary files a/tests/snapshots/stax/test_sign_tx_valid_large_receiver/00000.png and b/tests/snapshots/stax/test_sign_tx_valid_large_receiver/00000.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_large_receiver/00001.png b/tests/snapshots/stax/test_sign_tx_valid_large_receiver/00001.png index eeb59a79..91de4c0b 100644 Binary files a/tests/snapshots/stax/test_sign_tx_valid_large_receiver/00001.png and b/tests/snapshots/stax/test_sign_tx_valid_large_receiver/00001.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_large_receiver/00002.png b/tests/snapshots/stax/test_sign_tx_valid_large_receiver/00002.png index 95a304ac..2a5879a6 100644 Binary files a/tests/snapshots/stax/test_sign_tx_valid_large_receiver/00002.png and b/tests/snapshots/stax/test_sign_tx_valid_large_receiver/00002.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_large_receiver/00003.png b/tests/snapshots/stax/test_sign_tx_valid_large_receiver/00003.png index 4d5f5bad..a24543af 100644 Binary files a/tests/snapshots/stax/test_sign_tx_valid_large_receiver/00003.png and b/tests/snapshots/stax/test_sign_tx_valid_large_receiver/00003.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_large_receiver/00004.png b/tests/snapshots/stax/test_sign_tx_valid_large_receiver/00004.png index cd2f5275..1154fea6 100644 Binary files a/tests/snapshots/stax/test_sign_tx_valid_large_receiver/00004.png and b/tests/snapshots/stax/test_sign_tx_valid_large_receiver/00004.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_simple_data_confirmed/00000.png b/tests/snapshots/stax/test_sign_tx_valid_simple_data_confirmed/00000.png index 71495660..6a4b96f0 100644 Binary files a/tests/snapshots/stax/test_sign_tx_valid_simple_data_confirmed/00000.png and b/tests/snapshots/stax/test_sign_tx_valid_simple_data_confirmed/00000.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_simple_data_confirmed/00001.png b/tests/snapshots/stax/test_sign_tx_valid_simple_data_confirmed/00001.png index 554910b5..53401b0d 100644 Binary files a/tests/snapshots/stax/test_sign_tx_valid_simple_data_confirmed/00001.png and b/tests/snapshots/stax/test_sign_tx_valid_simple_data_confirmed/00001.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_simple_data_confirmed/00002.png b/tests/snapshots/stax/test_sign_tx_valid_simple_data_confirmed/00002.png index 37e491ee..2a5879a6 100644 Binary files a/tests/snapshots/stax/test_sign_tx_valid_simple_data_confirmed/00002.png and b/tests/snapshots/stax/test_sign_tx_valid_simple_data_confirmed/00002.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_simple_data_confirmed/00003.png b/tests/snapshots/stax/test_sign_tx_valid_simple_data_confirmed/00003.png index 4d5f5bad..a24543af 100644 Binary files a/tests/snapshots/stax/test_sign_tx_valid_simple_data_confirmed/00003.png and b/tests/snapshots/stax/test_sign_tx_valid_simple_data_confirmed/00003.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_simple_data_confirmed/00004.png b/tests/snapshots/stax/test_sign_tx_valid_simple_data_confirmed/00004.png index cd2f5275..a21279c8 100644 Binary files a/tests/snapshots/stax/test_sign_tx_valid_simple_data_confirmed/00004.png and b/tests/snapshots/stax/test_sign_tx_valid_simple_data_confirmed/00004.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_simple_no_data_confirmed/00000.png b/tests/snapshots/stax/test_sign_tx_valid_simple_no_data_confirmed/00000.png index 71495660..6a4b96f0 100644 Binary files a/tests/snapshots/stax/test_sign_tx_valid_simple_no_data_confirmed/00000.png and b/tests/snapshots/stax/test_sign_tx_valid_simple_no_data_confirmed/00000.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_simple_no_data_confirmed/00001.png b/tests/snapshots/stax/test_sign_tx_valid_simple_no_data_confirmed/00001.png index 554910b5..3b14d634 100644 Binary files a/tests/snapshots/stax/test_sign_tx_valid_simple_no_data_confirmed/00001.png and b/tests/snapshots/stax/test_sign_tx_valid_simple_no_data_confirmed/00001.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_simple_no_data_confirmed/00002.png b/tests/snapshots/stax/test_sign_tx_valid_simple_no_data_confirmed/00002.png index e6d1ff99..2a5879a6 100644 Binary files a/tests/snapshots/stax/test_sign_tx_valid_simple_no_data_confirmed/00002.png and b/tests/snapshots/stax/test_sign_tx_valid_simple_no_data_confirmed/00002.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_simple_no_data_confirmed/00003.png b/tests/snapshots/stax/test_sign_tx_valid_simple_no_data_confirmed/00003.png index 4d5f5bad..a24543af 100644 Binary files a/tests/snapshots/stax/test_sign_tx_valid_simple_no_data_confirmed/00003.png and b/tests/snapshots/stax/test_sign_tx_valid_simple_no_data_confirmed/00003.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_simple_no_data_confirmed/00004.png b/tests/snapshots/stax/test_sign_tx_valid_simple_no_data_confirmed/00004.png index cd2f5275..1154fea6 100644 Binary files a/tests/snapshots/stax/test_sign_tx_valid_simple_no_data_confirmed/00004.png and b/tests/snapshots/stax/test_sign_tx_valid_simple_no_data_confirmed/00004.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_simple_no_data_rejected/00000.png b/tests/snapshots/stax/test_sign_tx_valid_simple_no_data_rejected/00000.png index 71495660..6a4b96f0 100644 Binary files a/tests/snapshots/stax/test_sign_tx_valid_simple_no_data_rejected/00000.png and b/tests/snapshots/stax/test_sign_tx_valid_simple_no_data_rejected/00000.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_simple_no_data_rejected/00001.png b/tests/snapshots/stax/test_sign_tx_valid_simple_no_data_rejected/00001.png index 554910b5..3b14d634 100644 Binary files a/tests/snapshots/stax/test_sign_tx_valid_simple_no_data_rejected/00001.png and b/tests/snapshots/stax/test_sign_tx_valid_simple_no_data_rejected/00001.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_simple_no_data_rejected/00002.png b/tests/snapshots/stax/test_sign_tx_valid_simple_no_data_rejected/00002.png index e6d1ff99..2a5879a6 100644 Binary files a/tests/snapshots/stax/test_sign_tx_valid_simple_no_data_rejected/00002.png and b/tests/snapshots/stax/test_sign_tx_valid_simple_no_data_rejected/00002.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_simple_no_data_rejected/00003.png b/tests/snapshots/stax/test_sign_tx_valid_simple_no_data_rejected/00003.png index 4d5f5bad..abc9677f 100644 Binary files a/tests/snapshots/stax/test_sign_tx_valid_simple_no_data_rejected/00003.png and b/tests/snapshots/stax/test_sign_tx_valid_simple_no_data_rejected/00003.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_simple_no_data_rejected/00004.png b/tests/snapshots/stax/test_sign_tx_valid_simple_no_data_rejected/00004.png index 9d261148..867db644 100644 Binary files a/tests/snapshots/stax/test_sign_tx_valid_simple_no_data_rejected/00004.png and b/tests/snapshots/stax/test_sign_tx_valid_simple_no_data_rejected/00004.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_simple_no_data_rejected/00005.png b/tests/snapshots/stax/test_sign_tx_valid_simple_no_data_rejected/00005.png index 17d33d6e..1154fea6 100644 Binary files a/tests/snapshots/stax/test_sign_tx_valid_simple_no_data_rejected/00005.png and b/tests/snapshots/stax/test_sign_tx_valid_simple_no_data_rejected/00005.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_with_guardian/00004.png b/tests/snapshots/stax/test_sign_tx_valid_with_guardian/00004.png index cd2f5275..a21279c8 100644 Binary files a/tests/snapshots/stax/test_sign_tx_valid_with_guardian/00004.png and b/tests/snapshots/stax/test_sign_tx_valid_with_guardian/00004.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_with_guardian_confirmed/00000.png b/tests/snapshots/stax/test_sign_tx_valid_with_guardian_confirmed/00000.png new file mode 100644 index 00000000..6a4b96f0 Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_valid_with_guardian_confirmed/00000.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_with_guardian_confirmed/00001.png b/tests/snapshots/stax/test_sign_tx_valid_with_guardian_confirmed/00001.png new file mode 100644 index 00000000..e7d5d6b0 Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_valid_with_guardian_confirmed/00001.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_with_guardian_confirmed/00002.png b/tests/snapshots/stax/test_sign_tx_valid_with_guardian_confirmed/00002.png new file mode 100644 index 00000000..022a8fd9 Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_valid_with_guardian_confirmed/00002.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_with_guardian_confirmed/00003.png b/tests/snapshots/stax/test_sign_tx_valid_with_guardian_confirmed/00003.png new file mode 100644 index 00000000..56d7c77b Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_valid_with_guardian_confirmed/00003.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_with_guardian_confirmed/00004.png b/tests/snapshots/stax/test_sign_tx_valid_with_guardian_confirmed/00004.png new file mode 100644 index 00000000..a24543af Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_valid_with_guardian_confirmed/00004.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_with_guardian_confirmed/00005.png b/tests/snapshots/stax/test_sign_tx_valid_with_guardian_confirmed/00005.png new file mode 100644 index 00000000..1154fea6 Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_valid_with_guardian_confirmed/00005.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_with_guardian_rejected/00000.png b/tests/snapshots/stax/test_sign_tx_valid_with_guardian_rejected/00000.png new file mode 100644 index 00000000..6a4b96f0 Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_valid_with_guardian_rejected/00000.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_with_guardian_rejected/00001.png b/tests/snapshots/stax/test_sign_tx_valid_with_guardian_rejected/00001.png new file mode 100644 index 00000000..e7d5d6b0 Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_valid_with_guardian_rejected/00001.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_with_guardian_rejected/00002.png b/tests/snapshots/stax/test_sign_tx_valid_with_guardian_rejected/00002.png new file mode 100644 index 00000000..022a8fd9 Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_valid_with_guardian_rejected/00002.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_with_guardian_rejected/00003.png b/tests/snapshots/stax/test_sign_tx_valid_with_guardian_rejected/00003.png new file mode 100644 index 00000000..56d7c77b Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_valid_with_guardian_rejected/00003.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_with_guardian_rejected/00004.png b/tests/snapshots/stax/test_sign_tx_valid_with_guardian_rejected/00004.png new file mode 100644 index 00000000..abc9677f Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_valid_with_guardian_rejected/00004.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_with_guardian_rejected/00005.png b/tests/snapshots/stax/test_sign_tx_valid_with_guardian_rejected/00005.png new file mode 100644 index 00000000..867db644 Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_valid_with_guardian_rejected/00005.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_with_guardian_rejected/00006.png b/tests/snapshots/stax/test_sign_tx_valid_with_guardian_rejected/00006.png new file mode 100644 index 00000000..1154fea6 Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_valid_with_guardian_rejected/00006.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00000.png b/tests/snapshots/stax/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00000.png new file mode 100644 index 00000000..6a4b96f0 Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00000.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00001.png b/tests/snapshots/stax/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00001.png new file mode 100644 index 00000000..93ae3f27 Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00001.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00002.png b/tests/snapshots/stax/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00002.png new file mode 100644 index 00000000..26b16cf9 Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00002.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00003.png b/tests/snapshots/stax/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00003.png new file mode 100644 index 00000000..56d7c77b Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00003.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00004.png b/tests/snapshots/stax/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00004.png new file mode 100644 index 00000000..a24543af Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00004.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00005.png b/tests/snapshots/stax/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00005.png new file mode 100644 index 00000000..1154fea6 Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_valid_with_relayer_and_guardian_confirmed/00005.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_with_relayer_and_guardian_rejected/00000.png b/tests/snapshots/stax/test_sign_tx_valid_with_relayer_and_guardian_rejected/00000.png new file mode 100644 index 00000000..6a4b96f0 Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_valid_with_relayer_and_guardian_rejected/00000.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_with_relayer_and_guardian_rejected/00001.png b/tests/snapshots/stax/test_sign_tx_valid_with_relayer_and_guardian_rejected/00001.png new file mode 100644 index 00000000..93ae3f27 Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_valid_with_relayer_and_guardian_rejected/00001.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_with_relayer_and_guardian_rejected/00002.png b/tests/snapshots/stax/test_sign_tx_valid_with_relayer_and_guardian_rejected/00002.png new file mode 100644 index 00000000..26b16cf9 Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_valid_with_relayer_and_guardian_rejected/00002.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_with_relayer_and_guardian_rejected/00003.png b/tests/snapshots/stax/test_sign_tx_valid_with_relayer_and_guardian_rejected/00003.png new file mode 100644 index 00000000..56d7c77b Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_valid_with_relayer_and_guardian_rejected/00003.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_with_relayer_and_guardian_rejected/00004.png b/tests/snapshots/stax/test_sign_tx_valid_with_relayer_and_guardian_rejected/00004.png new file mode 100644 index 00000000..abc9677f Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_valid_with_relayer_and_guardian_rejected/00004.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_with_relayer_and_guardian_rejected/00005.png b/tests/snapshots/stax/test_sign_tx_valid_with_relayer_and_guardian_rejected/00005.png new file mode 100644 index 00000000..867db644 Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_valid_with_relayer_and_guardian_rejected/00005.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_with_relayer_and_guardian_rejected/00006.png b/tests/snapshots/stax/test_sign_tx_valid_with_relayer_and_guardian_rejected/00006.png new file mode 100644 index 00000000..1154fea6 Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_valid_with_relayer_and_guardian_rejected/00006.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_with_relayer_confirmed/00000.png b/tests/snapshots/stax/test_sign_tx_valid_with_relayer_confirmed/00000.png new file mode 100644 index 00000000..6a4b96f0 Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_valid_with_relayer_confirmed/00000.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_with_relayer_confirmed/00001.png b/tests/snapshots/stax/test_sign_tx_valid_with_relayer_confirmed/00001.png new file mode 100644 index 00000000..a605c628 Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_valid_with_relayer_confirmed/00001.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_with_relayer_confirmed/00002.png b/tests/snapshots/stax/test_sign_tx_valid_with_relayer_confirmed/00002.png new file mode 100644 index 00000000..022a8fd9 Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_valid_with_relayer_confirmed/00002.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_with_relayer_confirmed/00003.png b/tests/snapshots/stax/test_sign_tx_valid_with_relayer_confirmed/00003.png new file mode 100644 index 00000000..56d7c77b Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_valid_with_relayer_confirmed/00003.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_with_relayer_confirmed/00004.png b/tests/snapshots/stax/test_sign_tx_valid_with_relayer_confirmed/00004.png new file mode 100644 index 00000000..a24543af Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_valid_with_relayer_confirmed/00004.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_with_relayer_confirmed/00005.png b/tests/snapshots/stax/test_sign_tx_valid_with_relayer_confirmed/00005.png new file mode 100644 index 00000000..1154fea6 Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_valid_with_relayer_confirmed/00005.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_with_relayer_rejected/00000.png b/tests/snapshots/stax/test_sign_tx_valid_with_relayer_rejected/00000.png new file mode 100644 index 00000000..6a4b96f0 Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_valid_with_relayer_rejected/00000.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_with_relayer_rejected/00001.png b/tests/snapshots/stax/test_sign_tx_valid_with_relayer_rejected/00001.png new file mode 100644 index 00000000..a605c628 Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_valid_with_relayer_rejected/00001.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_with_relayer_rejected/00002.png b/tests/snapshots/stax/test_sign_tx_valid_with_relayer_rejected/00002.png new file mode 100644 index 00000000..022a8fd9 Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_valid_with_relayer_rejected/00002.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_with_relayer_rejected/00003.png b/tests/snapshots/stax/test_sign_tx_valid_with_relayer_rejected/00003.png new file mode 100644 index 00000000..56d7c77b Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_valid_with_relayer_rejected/00003.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_with_relayer_rejected/00004.png b/tests/snapshots/stax/test_sign_tx_valid_with_relayer_rejected/00004.png new file mode 100644 index 00000000..abc9677f Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_valid_with_relayer_rejected/00004.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_with_relayer_rejected/00005.png b/tests/snapshots/stax/test_sign_tx_valid_with_relayer_rejected/00005.png new file mode 100644 index 00000000..867db644 Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_valid_with_relayer_rejected/00005.png differ diff --git a/tests/snapshots/stax/test_sign_tx_valid_with_relayer_rejected/00006.png b/tests/snapshots/stax/test_sign_tx_valid_with_relayer_rejected/00006.png new file mode 100644 index 00000000..1154fea6 Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_valid_with_relayer_rejected/00006.png differ diff --git a/tests/snapshots/stax/test_toggle_contract_data_0/00000.png b/tests/snapshots/stax/test_toggle_contract_data_0/00000.png index 1ae99303..1154fea6 100644 Binary files a/tests/snapshots/stax/test_toggle_contract_data_0/00000.png and b/tests/snapshots/stax/test_toggle_contract_data_0/00000.png differ diff --git a/tests/snapshots/stax/test_toggle_contract_data_0/00001.png b/tests/snapshots/stax/test_toggle_contract_data_0/00001.png index 73191bdd..ef49d3eb 100644 Binary files a/tests/snapshots/stax/test_toggle_contract_data_0/00001.png and b/tests/snapshots/stax/test_toggle_contract_data_0/00001.png differ diff --git a/tests/snapshots/stax/test_toggle_contract_data_0/00002.png b/tests/snapshots/stax/test_toggle_contract_data_0/00002.png index a3cf59d3..6c21e3a2 100644 Binary files a/tests/snapshots/stax/test_toggle_contract_data_0/00002.png and b/tests/snapshots/stax/test_toggle_contract_data_0/00002.png differ diff --git a/tests/snapshots/stax/test_toggle_contract_data_0/00003.png b/tests/snapshots/stax/test_toggle_contract_data_0/00003.png index 10e69aa2..1154fea6 100644 Binary files a/tests/snapshots/stax/test_toggle_contract_data_0/00003.png and b/tests/snapshots/stax/test_toggle_contract_data_0/00003.png differ diff --git a/tests/snapshots/stax/test_toggle_contract_data_0/00004.png b/tests/snapshots/stax/test_toggle_contract_data_0/00004.png deleted file mode 100644 index 1ae99303..00000000 Binary files a/tests/snapshots/stax/test_toggle_contract_data_0/00004.png and /dev/null differ diff --git a/tests/snapshots/stax/test_toggle_contract_data_1/00000.png b/tests/snapshots/stax/test_toggle_contract_data_1/00000.png index 1ae99303..1154fea6 100644 Binary files a/tests/snapshots/stax/test_toggle_contract_data_1/00000.png and b/tests/snapshots/stax/test_toggle_contract_data_1/00000.png differ diff --git a/tests/snapshots/stax/test_toggle_contract_data_1/00001.png b/tests/snapshots/stax/test_toggle_contract_data_1/00001.png index 73191bdd..6c21e3a2 100644 Binary files a/tests/snapshots/stax/test_toggle_contract_data_1/00001.png and b/tests/snapshots/stax/test_toggle_contract_data_1/00001.png differ diff --git a/tests/snapshots/stax/test_toggle_contract_data_1/00002.png b/tests/snapshots/stax/test_toggle_contract_data_1/00002.png index 10e69aa2..ef49d3eb 100644 Binary files a/tests/snapshots/stax/test_toggle_contract_data_1/00002.png and b/tests/snapshots/stax/test_toggle_contract_data_1/00002.png differ diff --git a/tests/snapshots/stax/test_toggle_contract_data_1/00003.png b/tests/snapshots/stax/test_toggle_contract_data_1/00003.png index a3cf59d3..1154fea6 100644 Binary files a/tests/snapshots/stax/test_toggle_contract_data_1/00003.png and b/tests/snapshots/stax/test_toggle_contract_data_1/00003.png differ diff --git a/tests/snapshots/stax/test_toggle_contract_data_1/00004.png b/tests/snapshots/stax/test_toggle_contract_data_1/00004.png deleted file mode 100644 index 1ae99303..00000000 Binary files a/tests/snapshots/stax/test_toggle_contract_data_1/00004.png and /dev/null differ diff --git a/tests/test_multiversx.py b/tests/test_multiversx.py index acb44cd5..bcd1277d 100755 --- a/tests/test_multiversx.py +++ b/tests/test_multiversx.py @@ -33,46 +33,51 @@ LEDGER_MAJOR_VERSION, LEDGER_MINOR_VERSION, LEDGER_PATCH_VERSION = get_version_from_makefile() + class Ins(IntEnum): - GET_APP_VERSION = 0x01 + GET_APP_VERSION = 0x01 GET_APP_CONFIGURATION = 0x02 - GET_ADDR = 0x03 - SIGN_TX = 0x04 - SET_ADDR = 0x05 - SIGN_MSG = 0x06 - SIGN_TX_HASH = 0x07 - PROVIDE_ESDT_INFO = 0x08 # TODO add test for this APDU - SIGN_MSG_AUTH_TOKEN = 0x09 + GET_ADDR = 0x03 + SIGN_TX = 0x04 + SET_ADDR = 0x05 + SIGN_MSG = 0x06 + SIGN_TX_HASH = 0x07 + PROVIDE_ESDT_INFO = 0x08 # TODO add test for this APDU + SIGN_MSG_AUTH_TOKEN = 0x09 + class P1(IntEnum): - CONFIRM = 0x01 + CONFIRM = 0x01 NON_CONFIRM = 0x00 - FIRST = 0x00 - MORE = 0x80 + FIRST = 0x00 + MORE = 0x80 + class P2(IntEnum): DISPLAY_BECH32 = 0x00 - DISPLAY_HEX = 0x01 + DISPLAY_HEX = 0x01 + class Error(IntEnum): - USER_DENIED = 0x6985 - UNKNOWN_INSTRUCTION = 0x6D00 - WRONG_CLA = 0x6E00 - SIGNATURE_FAILED = 0x6E10 - SIGN_TX_DEPRECATED = 0x6E11 - INVALID_ARGUMENTS = 0x6E01 - INVALID_MESSAGE = 0x6E02 - INVALID_P1 = 0x6E03 - MESSAGE_TOO_LONG = 0x6E04 - RECEIVER_TOO_LONG = 0x6E05 - AMOUNT_TOO_LONG = 0x6E06 + USER_DENIED = 0x6985 + UNKNOWN_INSTRUCTION = 0x6D00 + WRONG_CLA = 0x6E00 + SIGNATURE_FAILED = 0x6E10 + SIGN_TX_DEPRECATED = 0x6E11 + INVALID_ARGUMENTS = 0x6E01 + INVALID_MESSAGE = 0x6E02 + INVALID_P1 = 0x6E03 + MESSAGE_TOO_LONG = 0x6E04 + RECEIVER_TOO_LONG = 0x6E05 + AMOUNT_TOO_LONG = 0x6E06 CONTRACT_DATA_DISABLED = 0x6E07 - MESSAGE_INCOMPLETE = 0x6E08 - WRONG_TX_VERSION = 0x6E09 - NONCE_TOO_LONG = 0x6E0A - INVALID_AMOUNT = 0x6E0B - INVALID_FEE = 0x6E0C - PRETTY_FAILED = 0x6E0D + MESSAGE_INCOMPLETE = 0x6E08 + WRONG_TX_VERSION = 0x6E09 + NONCE_TOO_LONG = 0x6E0A + INVALID_AMOUNT = 0x6E0B + INVALID_FEE = 0x6E0C + PRETTY_FAILED = 0x6E0D + MAX_SIZE = 251 ROOT_SCREENSHOT_PATH = Path(__file__).parent.resolve() @@ -118,12 +123,13 @@ def test_menu(self, backend, navigator, test_name): elif backend.firmware.device == "stax": nav_ins = [NavInsID.USE_CASE_HOME_SETTINGS, NavInsID.USE_CASE_SETTINGS_NEXT, - NavInsID.USE_CASE_SETTINGS_PREVIOUS, + NavInsID.SWIPE_CENTER_TO_RIGHT, NavInsID.USE_CASE_SETTINGS_MULTI_PAGE_EXIT, NavInsID.USE_CASE_HOME_QUIT] with pytest.raises(exceptions.ConnectionError): - navigator.navigate_and_compare(ROOT_SCREENSHOT_PATH, test_name, nav_ins, screen_change_before_first_instruction=False) + navigator.navigate_and_compare(ROOT_SCREENSHOT_PATH, test_name, nav_ins, + screen_change_before_first_instruction=False) class TestGetAppVersion: @@ -141,12 +147,12 @@ class TestGetAppConfiguration: def test_get_app_configuration(self, backend): data = backend.exchange(CLA, Ins.GET_APP_CONFIGURATION, P1.FIRST, 0, b"").data assert len(data) == 14 - assert data[0] == 0 or data[0] == 1 # N_storage.setting_contract_data + assert data[0] == 0 or data[0] == 1 # N_storage.setting_contract_data # data[1] is not to be taken into account anymore # data[2] is not to be taken into account anymore - assert data[3] == LEDGER_MAJOR_VERSION # LEDGER_MAJOR_VERSION - assert data[4] == LEDGER_MINOR_VERSION # LEDGER_MINOR_VERSION - assert data[5] == LEDGER_PATCH_VERSION # LEDGER_PATCH_VERSION + assert data[3] == LEDGER_MAJOR_VERSION # LEDGER_MAJOR_VERSION + assert data[4] == LEDGER_MINOR_VERSION # LEDGER_MINOR_VERSION + assert data[5] == LEDGER_PATCH_VERSION # LEDGER_PATCH_VERSION # data[6:10] is the bip32_account # data[10:14] is the bip32_address_index @@ -163,11 +169,11 @@ def test_toggle_contract_data(self, backend, navigator, test_name): NavInsID.BOTH_CLICK] elif backend.firmware.device == "stax": nav_ins = [NavInsID.USE_CASE_HOME_SETTINGS, - NavInsID.USE_CASE_SETTINGS_NEXT, - NavIns(NavInsID.TOUCH, (350,115)), + NavIns(NavInsID.TOUCH, (350, 115)), NavInsID.USE_CASE_SETTINGS_MULTI_PAGE_EXIT] - navigator.navigate_and_compare(ROOT_SCREENSHOT_PATH, test_name + "_0", nav_ins, screen_change_before_first_instruction=False) + navigator.navigate_and_compare(ROOT_SCREENSHOT_PATH, test_name + "_0", nav_ins, + screen_change_before_first_instruction=False) assert backend.exchange(CLA, Ins.GET_APP_CONFIGURATION, P1.FIRST, 0, b"").data[0] == 0 # switch back to enabled @@ -179,11 +185,11 @@ def test_toggle_contract_data(self, backend, navigator, test_name): NavInsID.BOTH_CLICK] elif backend.firmware.device == "stax": nav_ins = [NavInsID.USE_CASE_HOME_SETTINGS, - NavInsID.USE_CASE_SETTINGS_NEXT, - NavIns(NavInsID.TOUCH, (350,115)), + NavIns(NavInsID.TOUCH, (350, 115)), NavInsID.USE_CASE_SETTINGS_MULTI_PAGE_EXIT] - navigator.navigate_and_compare(ROOT_SCREENSHOT_PATH, test_name + "_1", nav_ins, screen_change_before_first_instruction=False) + navigator.navigate_and_compare(ROOT_SCREENSHOT_PATH, test_name + "_1", nav_ins, + screen_change_before_first_instruction=False) assert backend.exchange(CLA, Ins.GET_APP_CONFIGURATION, P1.FIRST, 0, b"").data[0] == 1 @@ -209,11 +215,11 @@ def test_get_addr_confirm_ok(self, backend, navigator, test_name): test_name) elif backend.firmware.device == "stax": nav_ins = [ - NavInsID.USE_CASE_REVIEW_TAP, - NavIns(NavInsID.TOUCH, (200,346)), - NavInsID.USE_CASE_ADDRESS_CONFIRMATION_EXIT_QR, - NavInsID.USE_CASE_ADDRESS_CONFIRMATION_CONFIRM, - NavInsID.USE_CASE_STATUS_DISMISS] + NavInsID.SWIPE_CENTER_TO_LEFT, + NavIns(NavInsID.TOUCH, (64, 520)), + NavInsID.USE_CASE_ADDRESS_CONFIRMATION_EXIT_QR, + NavInsID.USE_CASE_ADDRESS_CONFIRMATION_CONFIRM, + NavInsID.USE_CASE_STATUS_DISMISS] navigator.navigate_and_compare(ROOT_SCREENSHOT_PATH, test_name, nav_ins) assert re.match("^@[0-9a-f]{64}$", backend.last_async_response.data.decode("ascii")) @@ -231,9 +237,9 @@ def test_get_addr_confirm_refused(self, backend, navigator, test_name): test_name) elif backend.firmware.device == "stax": nav_ins = [ - NavInsID.USE_CASE_REVIEW_TAP, - NavInsID.USE_CASE_ADDRESS_CONFIRMATION_CANCEL, - NavInsID.USE_CASE_STATUS_DISMISS] + NavInsID.SWIPE_CENTER_TO_LEFT, + NavInsID.USE_CASE_ADDRESS_CONFIRMATION_CANCEL, + NavInsID.USE_CASE_STATUS_DISMISS] navigator.navigate_and_compare(ROOT_SCREENSHOT_PATH, test_name, nav_ins) assert backend.last_async_response.status == Error.USER_DENIED @@ -269,14 +275,14 @@ def test_sign_msg_short_ok(self, backend, navigator, test_name): test_name) elif backend.firmware.device == "stax": # Navigate a bit through rejection screens before confirming - nav_ins = [NavInsID.USE_CASE_REVIEW_REJECT, + nav_ins = [NavIns(NavInsID.TOUCH, (80, 625)), NavInsID.USE_CASE_CHOICE_REJECT, - NavInsID.USE_CASE_REVIEW_TAP, - NavInsID.USE_CASE_REVIEW_TAP, - NavInsID.USE_CASE_REVIEW_PREVIOUS, - NavInsID.USE_CASE_REVIEW_REJECT, + NavInsID.SWIPE_CENTER_TO_LEFT, + NavInsID.SWIPE_CENTER_TO_LEFT, + NavInsID.USE_CASE_VIEW_DETAILS_PREVIOUS, + NavIns(NavInsID.TOUCH, (80, 625)), NavInsID.USE_CASE_CHOICE_REJECT, - NavInsID.USE_CASE_REVIEW_TAP, + NavInsID.SWIPE_CENTER_TO_LEFT, NavInsID.USE_CASE_REVIEW_CONFIRM] navigator.navigate_and_compare(ROOT_SCREENSHOT_PATH, test_name, nav_ins) @@ -292,8 +298,8 @@ def test_sign_msg_short_rejected(self, backend, navigator, test_name): ROOT_SCREENSHOT_PATH, test_name) elif backend.firmware.device == "stax": - navigator.navigate_until_text_and_compare(NavInsID.USE_CASE_REVIEW_TAP, - [NavInsID.USE_CASE_REVIEW_REJECT, + navigator.navigate_until_text_and_compare(NavInsID.SWIPE_CENTER_TO_LEFT, + [NavIns(NavInsID.TOUCH, (80, 625)), NavInsID.USE_CASE_CHOICE_CONFIRM, NavInsID.USE_CASE_STATUS_DISMISS], "Hold to sign", @@ -312,7 +318,7 @@ def test_sign_msg_long(self, backend, navigator, test_name): ROOT_SCREENSHOT_PATH, test_name) elif backend.firmware.device == "stax": - navigator.navigate_until_text_and_compare(NavInsID.USE_CASE_REVIEW_TAP, + navigator.navigate_until_text_and_compare(NavInsID.SWIPE_CENTER_TO_LEFT, [NavInsID.USE_CASE_REVIEW_CONFIRM, NavInsID.USE_CASE_STATUS_DISMISS], "Hold to sign", @@ -339,7 +345,7 @@ def test_sign_tx_valid_simple_no_data_confirmed(self, backend, navigator, test_n ROOT_SCREENSHOT_PATH, test_name) elif backend.firmware.device == "stax": - navigator.navigate_until_text_and_compare(NavInsID.USE_CASE_REVIEW_TAP, + navigator.navigate_until_text_and_compare(NavInsID.SWIPE_CENTER_TO_LEFT, [NavInsID.USE_CASE_REVIEW_CONFIRM, NavInsID.USE_CASE_STATUS_DISMISS], "Hold to sign", @@ -357,8 +363,8 @@ def test_sign_tx_valid_simple_no_data_rejected(self, backend, navigator, test_na ROOT_SCREENSHOT_PATH, test_name) elif backend.firmware.device == "stax": - navigator.navigate_until_text_and_compare(NavInsID.USE_CASE_REVIEW_TAP, - [NavInsID.USE_CASE_REVIEW_REJECT, + navigator.navigate_until_text_and_compare(NavInsID.SWIPE_CENTER_TO_LEFT, + [NavIns(NavInsID.TOUCH, (80, 625)), NavInsID.USE_CASE_CHOICE_CONFIRM, NavInsID.USE_CASE_STATUS_DISMISS], "Hold to sign", @@ -377,14 +383,87 @@ def test_sign_tx_valid_simple_data_confirmed(self, backend, navigator, test_name ROOT_SCREENSHOT_PATH, test_name) elif backend.firmware.device == "stax": - nav_ins = [NavInsID.USE_CASE_REVIEW_TAP, - NavInsID.USE_CASE_REVIEW_TAP, - NavInsID.USE_CASE_REVIEW_TAP, + nav_ins = [NavInsID.SWIPE_CENTER_TO_LEFT, + NavInsID.SWIPE_CENTER_TO_LEFT, NavInsID.USE_CASE_REVIEW_CONFIRM] navigator.navigate_and_compare(ROOT_SCREENSHOT_PATH, test_name, nav_ins) - def test_sign_tx_valid_with_guardian(self, backend, navigator, test_name): - payload = b'{"nonce":1234,"value":"5678","receiver":"efgh","sender":"abcd","gasPrice":50000,"gasLimit":20,"chainID":"1","guardian":"erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th","version":2,"options":2,"data":"test"}' + def test_sign_tx_valid_with_guardian_confirmed(self, backend, navigator, test_name): + payload = b'{"nonce":1234,"value":"5678","receiver":"efgh","sender":"abcd","gasPrice":50000,"gasLimit":20,"chainID":"1","guardian":"ijkl","version":2,"options":2,"data":"test"}' + with send_async_sign_message(backend, Ins.SIGN_TX_HASH, payload): + if backend.firmware.device.startswith("nano"): + navigator.navigate_until_text_and_compare(NavInsID.RIGHT_CLICK, + [NavInsID.BOTH_CLICK], + "Sign transaction", + ROOT_SCREENSHOT_PATH, + test_name) + elif backend.firmware.device == "stax": + navigator.navigate_until_text_and_compare(NavInsID.SWIPE_CENTER_TO_LEFT, + [NavInsID.USE_CASE_REVIEW_CONFIRM, + NavInsID.USE_CASE_STATUS_DISMISS], + "Hold to sign", + ROOT_SCREENSHOT_PATH, + test_name) + + def test_sign_tx_valid_with_guardian_rejected(self, backend, navigator, test_name): + payload = b'{"nonce":1234,"value":"5678","receiver":"efgh","sender":"abcd","gasPrice":50000,"gasLimit":20,"chainID":"1","guardian":"ijkl","version":2,"options":2,"data":"test"}' + backend.raise_policy = RaisePolicy.RAISE_NOTHING + with send_async_sign_message(backend, Ins.SIGN_TX_HASH, payload): + if backend.firmware.device.startswith("nano"): + navigator.navigate_until_text_and_compare(NavInsID.RIGHT_CLICK, + [NavInsID.BOTH_CLICK], + "Reject", + ROOT_SCREENSHOT_PATH, + test_name) + elif backend.firmware.device == "stax": + navigator.navigate_until_text_and_compare(NavInsID.SWIPE_CENTER_TO_LEFT, + [NavIns(NavInsID.TOUCH, (80, 625)), + NavInsID.USE_CASE_CHOICE_CONFIRM, + NavInsID.USE_CASE_STATUS_DISMISS], + "Hold to sign", + ROOT_SCREENSHOT_PATH, + test_name) + assert backend.last_async_response.status == Error.USER_DENIED + + def test_sign_tx_valid_with_relayer_confirmed(self, backend, navigator, test_name): + payload = b'{"nonce":1234,"value":"5678","receiver":"efgh","sender":"abcd","gasPrice":50000,"gasLimit":20,"chainID":"1","relayer":"ijkl","version":2,"options":2,"data":"test"}' + with send_async_sign_message(backend, Ins.SIGN_TX_HASH, payload): + if backend.firmware.device.startswith("nano"): + navigator.navigate_until_text_and_compare(NavInsID.RIGHT_CLICK, + [NavInsID.BOTH_CLICK], + "Sign transaction", + ROOT_SCREENSHOT_PATH, + test_name) + elif backend.firmware.device == "stax": + navigator.navigate_until_text_and_compare(NavInsID.SWIPE_CENTER_TO_LEFT, + [NavInsID.USE_CASE_REVIEW_CONFIRM, + NavInsID.USE_CASE_STATUS_DISMISS], + "Hold to sign", + ROOT_SCREENSHOT_PATH, + test_name) + + def test_sign_tx_valid_with_relayer_rejected(self, backend, navigator, test_name): + payload = b'{"nonce":1234,"value":"5678","receiver":"efgh","sender":"abcd","gasPrice":50000,"gasLimit":20,"chainID":"1","relayer":"ijkl","version":2,"options":2,"data":"test"}' + backend.raise_policy = RaisePolicy.RAISE_NOTHING + with send_async_sign_message(backend, Ins.SIGN_TX_HASH, payload): + if backend.firmware.device.startswith("nano"): + navigator.navigate_until_text_and_compare(NavInsID.RIGHT_CLICK, + [NavInsID.BOTH_CLICK], + "Reject", + ROOT_SCREENSHOT_PATH, + test_name) + elif backend.firmware.device == "stax": + navigator.navigate_until_text_and_compare(NavInsID.SWIPE_CENTER_TO_LEFT, + [NavIns(NavInsID.TOUCH, (80, 625)), + NavInsID.USE_CASE_CHOICE_CONFIRM, + NavInsID.USE_CASE_STATUS_DISMISS], + "Hold to sign", + ROOT_SCREENSHOT_PATH, + test_name) + assert backend.last_async_response.status == Error.USER_DENIED + + def test_sign_tx_valid_with_relayer_and_guardian_confirmed(self, backend, navigator, test_name): + payload = b'{"nonce":1234,"value":"5678","receiver":"efgh","sender":"abcd","gasPrice":50000,"gasLimit":20,"chainID":"1","relayer":"ijkl","guardian":"mnop","version":2,"options":2,"data":"test"}' with send_async_sign_message(backend, Ins.SIGN_TX_HASH, payload): if backend.firmware.device.startswith("nano"): navigator.navigate_until_text_and_compare(NavInsID.RIGHT_CLICK, @@ -393,43 +472,65 @@ def test_sign_tx_valid_with_guardian(self, backend, navigator, test_name): ROOT_SCREENSHOT_PATH, test_name) elif backend.firmware.device == "stax": - navigator.navigate_until_text_and_compare(NavInsID.USE_CASE_REVIEW_TAP, + navigator.navigate_until_text_and_compare(NavInsID.SWIPE_CENTER_TO_LEFT, [NavInsID.USE_CASE_REVIEW_CONFIRM, NavInsID.USE_CASE_STATUS_DISMISS], "Hold to sign", ROOT_SCREENSHOT_PATH, test_name) + def test_sign_tx_valid_with_relayer_and_guardian_rejected(self, backend, navigator, test_name): + payload = b'{"nonce":1234,"value":"5678","receiver":"efgh","sender":"abcd","gasPrice":50000,"gasLimit":20,"chainID":"1","relayer":"ijkl","guardian":"mnop","version":2,"options":2,"data":"test"}' + backend.raise_policy = RaisePolicy.RAISE_NOTHING + with send_async_sign_message(backend, Ins.SIGN_TX_HASH, payload): + if backend.firmware.device.startswith("nano"): + navigator.navigate_until_text_and_compare(NavInsID.RIGHT_CLICK, + [NavInsID.BOTH_CLICK], + "Reject", + ROOT_SCREENSHOT_PATH, + test_name) + elif backend.firmware.device == "stax": + navigator.navigate_until_text_and_compare(NavInsID.SWIPE_CENTER_TO_LEFT, + [NavIns(NavInsID.TOUCH, (80, 625)), + NavInsID.USE_CASE_CHOICE_CONFIRM, + NavInsID.USE_CASE_STATUS_DISMISS], + "Hold to sign", + ROOT_SCREENSHOT_PATH, + test_name) + assert backend.last_async_response.status == Error.USER_DENIED + def test_sign_tx_valid_esdt_transfer(self, backend, navigator, test_name): token_ticker = "BUSD" num_decimals = 18 token_identifier = "425553442d663263343664" chain_id = "T" - signature = bytes.fromhex("304402207d2e749601bcec748ceb80bdc107cdde2bcb2f69fd8a82ceeb94fb088d90b1cc022032e008de068fe6eafc4b0a88e45c2b0b9f4ba62db9c0499d23e85df053295708") + signature = bytes.fromhex( + "304402207d2e749601bcec748ceb80bdc107cdde2bcb2f69fd8a82ceeb94fb088d90b1cc022032e008de068fe6eafc4b0a88e45c2b0b9f4ba62db9c0499d23e85df053295708") # ticker len, ticker, id_len, id, decimals, chain_id_len, chain_id, signature - to_hash_str = chr(len(token_ticker)) + token_ticker + chr(len(token_identifier)) + token_identifier + chr(num_decimals) + chr(len(chain_id)) + chain_id + to_hash_str = chr(len(token_ticker)) + token_ticker + chr(len(token_identifier)) + token_identifier + chr( + num_decimals) + chr(len(chain_id)) + chain_id payload = bytes(to_hash_str, "utf-8") + signature rapdu = backend.exchange(CLA, Ins.PROVIDE_ESDT_INFO, P1.FIRST, 0, payload) assert rapdu.status == 0x9000 payload = b'{"nonce":1234,"value":"5678","receiver":"efgh","sender":"abcd","gasPrice":50000,"gasLimit":20,"chainID":"T","version":2,"options":2,' payload += b'"data":"' - payload += bytes("RVNEVFRyYW5zZmVyQDQyNTU1MzQ0MmQ2NjMyNjMzNDM2NjRAMDIwNjljZTkwMTU4NTkwMDAw", 'utf-8') # ESDTTransfer@425553442d663263343664@02069ce90158590000 base64 encoded + payload += bytes("RVNEVFRyYW5zZmVyQDQyNTU1MzQ0MmQ2NjMyNjMzNDM2NjRAMDIwNjljZTkwMTU4NTkwMDAw", + 'utf-8') # ESDTTransfer@425553442d663263343664@02069ce90158590000 base64 encoded payload += b'"}' with send_async_sign_message(backend, Ins.SIGN_TX_HASH, payload): if backend.firmware.device.startswith("nano"): navigator.navigate_until_text_and_compare(NavInsID.RIGHT_CLICK, - [NavInsID.BOTH_CLICK], - "Confirm transfer", - ROOT_SCREENSHOT_PATH, - test_name) + [NavInsID.BOTH_CLICK], + "Confirm transfer", + ROOT_SCREENSHOT_PATH, + test_name) elif backend.firmware.device == "stax": - nav_ins = [NavInsID.USE_CASE_REVIEW_TAP, - NavInsID.USE_CASE_REVIEW_TAP, - NavInsID.USE_CASE_REVIEW_TAP, - NavInsID.USE_CASE_REVIEW_CONFIRM] + nav_ins = [NavInsID.SWIPE_CENTER_TO_LEFT, + NavInsID.SWIPE_CENTER_TO_LEFT, + NavInsID.USE_CASE_REVIEW_CONFIRM] navigator.navigate_and_compare(ROOT_SCREENSHOT_PATH, test_name, nav_ins) def test_sign_tx_valid_esdt_with_guardian(self, backend, navigator, test_name): @@ -437,17 +538,20 @@ def test_sign_tx_valid_esdt_with_guardian(self, backend, navigator, test_name): num_decimals = 18 token_identifier = "425553442d663263343664" chain_id = "T" - signature = bytes.fromhex("304402207d2e749601bcec748ceb80bdc107cdde2bcb2f69fd8a82ceeb94fb088d90b1cc022032e008de068fe6eafc4b0a88e45c2b0b9f4ba62db9c0499d23e85df053295708") + signature = bytes.fromhex( + "304402207d2e749601bcec748ceb80bdc107cdde2bcb2f69fd8a82ceeb94fb088d90b1cc022032e008de068fe6eafc4b0a88e45c2b0b9f4ba62db9c0499d23e85df053295708") # ticker len, ticker, id_len, id, decimals, chain_id_len, chain_id, signature - to_hash_str = chr(len(token_ticker)) + token_ticker + chr(len(token_identifier)) + token_identifier + chr(num_decimals) + chr(len(chain_id)) + chain_id + to_hash_str = chr(len(token_ticker)) + token_ticker + chr(len(token_identifier)) + token_identifier + chr( + num_decimals) + chr(len(chain_id)) + chain_id payload = bytes(to_hash_str, "utf-8") + signature rapdu = backend.exchange(CLA, Ins.PROVIDE_ESDT_INFO, P1.FIRST, 0, payload) assert rapdu.status == 0x9000 payload = b'{"nonce":1234,"value":"5678","receiver":"efgh","sender":"abcd","gasPrice":50000,"gasLimit":20,"chainID":"T","guardian":"g","version":2,"options":2,' payload += b'"data":"' - payload += bytes("RVNEVFRyYW5zZmVyQDQyNTU1MzQ0MmQ2NjMyNjMzNDM2NjRAMDIwNjljZTkwMTU4NTkwMDAw", 'utf-8') # ESDTTransfer@425553442d663263343664@02069ce90158590000 base64 encoded + payload += bytes("RVNEVFRyYW5zZmVyQDQyNTU1MzQ0MmQ2NjMyNjMzNDM2NjRAMDIwNjljZTkwMTU4NTkwMDAw", + 'utf-8') # ESDTTransfer@425553442d663263343664@02069ce90158590000 base64 encoded payload += b'"}' with send_async_sign_message(backend, Ins.SIGN_TX_HASH, payload): @@ -458,14 +562,14 @@ def test_sign_tx_valid_esdt_with_guardian(self, backend, navigator, test_name): ROOT_SCREENSHOT_PATH, test_name) elif backend.firmware.device == "stax": - nav_ins = [NavInsID.USE_CASE_REVIEW_TAP, - NavInsID.USE_CASE_REVIEW_TAP, - NavInsID.USE_CASE_REVIEW_TAP, + nav_ins = [NavInsID.SWIPE_CENTER_TO_LEFT, + NavInsID.SWIPE_CENTER_TO_LEFT, + NavInsID.SWIPE_CENTER_TO_LEFT, NavInsID.USE_CASE_REVIEW_CONFIRM] navigator.navigate_and_compare(ROOT_SCREENSHOT_PATH, test_name, nav_ins) def test_sign_tx_valid_large_receiver(self, backend, navigator, test_name): - payload = b'{"nonce":1234,"value":"' + payload = b'{"nonce":1234,"value":"' payload += b'1' * 31 payload += b'","receiver":"' payload += b'r' * 63 @@ -480,7 +584,7 @@ def test_sign_tx_valid_large_receiver(self, backend, navigator, test_name): ROOT_SCREENSHOT_PATH, test_name) elif backend.firmware.device == "stax": - navigator.navigate_until_text_and_compare(NavInsID.USE_CASE_REVIEW_TAP, + navigator.navigate_until_text_and_compare(NavInsID.SWIPE_CENTER_TO_LEFT, [NavInsID.USE_CASE_REVIEW_CONFIRM, NavInsID.USE_CASE_STATUS_DISMISS], "Hold to sign", @@ -498,7 +602,7 @@ def test_sign_tx_valid_large_nonce(self, backend, navigator, test_name): ROOT_SCREENSHOT_PATH, test_name) elif backend.firmware.device == "stax": - navigator.navigate_until_text_and_compare(NavInsID.USE_CASE_REVIEW_TAP, + navigator.navigate_until_text_and_compare(NavInsID.SWIPE_CENTER_TO_LEFT, [NavInsID.USE_CASE_REVIEW_CONFIRM, NavInsID.USE_CASE_STATUS_DISMISS], "Hold to sign", @@ -515,7 +619,7 @@ def test_sign_tx_valid_large_amount(self, backend, navigator, test_name): ROOT_SCREENSHOT_PATH, test_name) elif backend.firmware.device == "stax": - navigator.navigate_until_text_and_compare(NavInsID.USE_CASE_REVIEW_TAP, + navigator.navigate_until_text_and_compare(NavInsID.SWIPE_CENTER_TO_LEFT, [NavInsID.USE_CASE_REVIEW_CONFIRM, NavInsID.USE_CASE_STATUS_DISMISS], "Hold to sign", @@ -550,9 +654,9 @@ def test_sign_tx_invalid_fee(self, backend): class TestSignMsgAuthToken: def test_sign_msg_auth_token_ok(self, backend, navigator, test_name): - payload:bytes = b"" - payload += (0).to_bytes(4, "big") # account index - payload += (0).to_bytes(4, "big") # address index + payload: bytes = b"" + payload += (0).to_bytes(4, "big") # account index + payload += (0).to_bytes(4, "big") # address index token = b"aHEOcHM6Ly93YWxsZXQubXVsdGI2ZXJzeC5jb20.726757b8ca0b552199af4f0697eacd95940916044f21824f9ef8767e654b95cb.86400.eyJ0aW1lc3RhbXAiOjE2ODM3OTQzMjJ9{}" payload += (len(token)).to_bytes(4, "big") payload += token @@ -564,7 +668,7 @@ def test_sign_msg_auth_token_ok(self, backend, navigator, test_name): ROOT_SCREENSHOT_PATH, test_name) elif backend.firmware.device == "stax": - navigator.navigate_until_text_and_compare(NavInsID.USE_CASE_REVIEW_TAP, + navigator.navigate_until_text_and_compare(NavInsID.SWIPE_CENTER_TO_LEFT, [NavInsID.USE_CASE_REVIEW_CONFIRM, NavInsID.USE_CASE_STATUS_DISMISS], "Hold to sign", @@ -572,9 +676,9 @@ def test_sign_msg_auth_token_ok(self, backend, navigator, test_name): test_name) def test_sign_msg_auth_token_refused(self, backend, navigator, test_name): - payload:bytes = b"" - payload += (0).to_bytes(4, "big") # account index - payload += (0).to_bytes(4, "big") # address index + payload: bytes = b"" + payload += (0).to_bytes(4, "big") # account index + payload += (0).to_bytes(4, "big") # address index token = b"BLOB" payload += (len(token)).to_bytes(4, "big") payload += token @@ -587,8 +691,8 @@ def test_sign_msg_auth_token_refused(self, backend, navigator, test_name): ROOT_SCREENSHOT_PATH, test_name) elif backend.firmware.device == "stax": - navigator.navigate_until_text_and_compare(NavInsID.USE_CASE_REVIEW_TAP, - [NavInsID.USE_CASE_REVIEW_REJECT, + navigator.navigate_until_text_and_compare(NavInsID.SWIPE_CENTER_TO_LEFT, + [NavIns(NavInsID.TOUCH, (80, 625)), NavInsID.USE_CASE_CHOICE_CONFIRM, NavInsID.USE_CASE_STATUS_DISMISS], "Hold to sign", @@ -597,49 +701,49 @@ def test_sign_msg_auth_token_refused(self, backend, navigator, test_name): assert backend.last_async_response.status == Error.USER_DENIED def test_sign_msg_auth_token_localhost_5min_ok(self, backend, navigator, test_name): - payload:bytes = b"" - payload += (0).to_bytes(4, "big") # account index - payload += (0).to_bytes(4, "big") # address index + payload: bytes = b"" + payload += (0).to_bytes(4, "big") # account index + payload += (0).to_bytes(4, "big") # address index token = b"bG9jYWxob3N0.f68177510756edce45eca84b94544a6eacdfa36e69dfd3b8f24c4010d1990751.300.eyJ0aW1lc3RhbXAiOjE2NzM5NzIyNDR9" payload += (len(token)).to_bytes(4, "big") payload += token with send_async_sign_message(backend, Ins.SIGN_MSG_AUTH_TOKEN, payload): if backend.firmware.device.startswith("nano"): navigator.navigate_until_text_and_compare(NavIns(NavInsID.RIGHT_CLICK), - [NavIns(NavInsID.BOTH_CLICK)], - "Authorize", - ROOT_SCREENSHOT_PATH, - test_name) + [NavIns(NavInsID.BOTH_CLICK)], + "Authorize", + ROOT_SCREENSHOT_PATH, + test_name) elif backend.firmware.device == "stax": - nav_ins = [NavInsID.USE_CASE_REVIEW_TAP, - NavInsID.USE_CASE_REVIEW_TAP, + nav_ins = [NavInsID.SWIPE_CENTER_TO_LEFT, + NavInsID.SWIPE_CENTER_TO_LEFT, NavInsID.USE_CASE_REVIEW_CONFIRM] navigator.navigate_and_compare(ROOT_SCREENSHOT_PATH, test_name, nav_ins) def test_sign_msg_auth_token_xexchange_24h_ok(self, backend, navigator, test_name): - payload:bytes = b"" - payload += (0).to_bytes(4, "big") # account index - payload += (0).to_bytes(4, "big") # address index + payload: bytes = b"" + payload += (0).to_bytes(4, "big") # account index + payload += (0).to_bytes(4, "big") # address index token = b"eGV4Y2hhbmdlLmNvbQ.f68177510756edce45eca84b94544a6eacdfa36e69dfd3b8f24c4010d1990751.86400.eyJ0aW1lc3RhbXAiOjE2NzM5NzIyNDR9" payload += (len(token)).to_bytes(4, "big") payload += token with send_async_sign_message(backend, Ins.SIGN_MSG_AUTH_TOKEN, payload): if backend.firmware.device.startswith("nano"): navigator.navigate_until_text_and_compare(NavIns(NavInsID.RIGHT_CLICK), - [NavIns(NavInsID.BOTH_CLICK)], - "Authorize", - ROOT_SCREENSHOT_PATH, - test_name) + [NavIns(NavInsID.BOTH_CLICK)], + "Authorize", + ROOT_SCREENSHOT_PATH, + test_name) elif backend.firmware.device == "stax": - nav_ins = [NavInsID.USE_CASE_REVIEW_TAP, - NavInsID.USE_CASE_REVIEW_TAP, + nav_ins = [NavInsID.SWIPE_CENTER_TO_LEFT, + NavInsID.SWIPE_CENTER_TO_LEFT, NavInsID.USE_CASE_REVIEW_CONFIRM] navigator.navigate_and_compare(ROOT_SCREENSHOT_PATH, test_name, nav_ins) def test_sign_msg_auth_token_too_long_origin_regular_text_ok(self, backend, navigator, test_name): - payload:bytes = b"" - payload += (0).to_bytes(4, "big") # account index - payload += (0).to_bytes(4, "big") # address index + payload: bytes = b"" + payload += (0).to_bytes(4, "big") # account index + payload += (0).to_bytes(4, "big") # address index # The origin is too long, so the original token will be displayed token = b"eGV4Y2hhbmdlLmNvbXhleGNoYW5nZS5jb214ZXhjaGFuZ2UuY29teGV4Y2hhbmdlLmNvbQeGV4Y2hhbmdlLmNvbXhleGNoYW5nZS5jb214ZXhjaGFuZ2UuY29teGV4Y2hhbmdlLmNvbQ.f68177510756edce45eca84b94544a6eacdfa36e69dfd3b8f24c4010d1990751.127.eyJ0aW1lc3RhbXAiOjE2NzM5NzIyNDR9" payload += (len(token)).to_bytes(4, "big") @@ -647,21 +751,20 @@ def test_sign_msg_auth_token_too_long_origin_regular_text_ok(self, backend, navi with send_async_sign_message(backend, Ins.SIGN_MSG_AUTH_TOKEN, payload): if backend.firmware.device.startswith("nano"): navigator.navigate_until_text_and_compare(NavIns(NavInsID.RIGHT_CLICK), - [NavIns(NavInsID.BOTH_CLICK)], - "Authorize", - ROOT_SCREENSHOT_PATH, - test_name) + [NavIns(NavInsID.BOTH_CLICK)], + "Authorize", + ROOT_SCREENSHOT_PATH, + test_name) elif backend.firmware.device == "stax": - nav_ins = [NavInsID.USE_CASE_REVIEW_TAP, - NavInsID.USE_CASE_REVIEW_TAP, - NavInsID.USE_CASE_REVIEW_TAP, + nav_ins = [NavInsID.SWIPE_CENTER_TO_LEFT, + NavInsID.SWIPE_CENTER_TO_LEFT, NavInsID.USE_CASE_REVIEW_CONFIRM] navigator.navigate_and_compare(ROOT_SCREENSHOT_PATH, test_name, nav_ins) def test_sign_msg_auth_token_long_origin_should_trim_ok(self, backend, navigator, test_name): - payload:bytes = b"" - payload += (0).to_bytes(4, "big") # account index - payload += (0).to_bytes(4, "big") # address index + payload: bytes = b"" + payload += (0).to_bytes(4, "big") # account index + payload += (0).to_bytes(4, "big") # address index # The origin is too long, so the original token will be displayed token = b"bG9uZ2xvbmdsb25nbG9uZ2xvbmdsb25nbG9uZ2xvbmdsb25nbG9uZ2xvbmdsb25nbG9uZ2xvbmdsb25nbG9uZ2xvbmc.f68177510756edce45eca84b94544a6eacdfa36e69dfd3b8f24c4010d1990751.127.eyJ0aW1lc3RhbXAiOjE2NzM5NzIyNDR9" payload += (len(token)).to_bytes(4, "big") @@ -669,20 +772,20 @@ def test_sign_msg_auth_token_long_origin_should_trim_ok(self, backend, navigator with send_async_sign_message(backend, Ins.SIGN_MSG_AUTH_TOKEN, payload): if backend.firmware.device.startswith("nano"): navigator.navigate_until_text_and_compare(NavIns(NavInsID.RIGHT_CLICK), - [NavIns(NavInsID.BOTH_CLICK)], - "Authorize", - ROOT_SCREENSHOT_PATH, - test_name) + [NavIns(NavInsID.BOTH_CLICK)], + "Authorize", + ROOT_SCREENSHOT_PATH, + test_name) elif backend.firmware.device == "stax": - nav_ins = [NavInsID.USE_CASE_REVIEW_TAP, - NavInsID.USE_CASE_REVIEW_TAP, + nav_ins = [NavInsID.SWIPE_CENTER_TO_LEFT, + NavInsID.SWIPE_CENTER_TO_LEFT, NavInsID.USE_CASE_REVIEW_CONFIRM] navigator.navigate_and_compare(ROOT_SCREENSHOT_PATH, test_name, nav_ins) def test_sign_msg_auth_token_too_long_ttl_ok(self, backend, navigator, test_name): - payload:bytes = b"" - payload += (0).to_bytes(4, "big") # account index - payload += (0).to_bytes(4, "big") # address index + payload: bytes = b"" + payload += (0).to_bytes(4, "big") # account index + payload += (0).to_bytes(4, "big") # address index # The origin is too long, so the original token will be displayed token = b"eGV4Y2hhbmdlLmNvbQ.f68177510756edce45eca84b94544a6eacdfa36e69dfd3b8f24c4010d1990751.60000000000000000.eyJ0aW1lc3RhbXAiOjE2NzM5NzIyNDR9" payload += (len(token)).to_bytes(4, "big") @@ -690,42 +793,41 @@ def test_sign_msg_auth_token_too_long_ttl_ok(self, backend, navigator, test_name with send_async_sign_message(backend, Ins.SIGN_MSG_AUTH_TOKEN, payload): if backend.firmware.device.startswith("nano"): navigator.navigate_until_text_and_compare(NavIns(NavInsID.RIGHT_CLICK), - [NavIns(NavInsID.BOTH_CLICK)], - "Authorize", - ROOT_SCREENSHOT_PATH, - test_name) + [NavIns(NavInsID.BOTH_CLICK)], + "Authorize", + ROOT_SCREENSHOT_PATH, + test_name) elif backend.firmware.device == "stax": - nav_ins = [NavInsID.USE_CASE_REVIEW_TAP, - NavInsID.USE_CASE_REVIEW_TAP, + nav_ins = [NavInsID.SWIPE_CENTER_TO_LEFT, + NavInsID.SWIPE_CENTER_TO_LEFT, NavInsID.USE_CASE_REVIEW_CONFIRM] navigator.navigate_and_compare(ROOT_SCREENSHOT_PATH, test_name, nav_ins) def test_sign_msg_auth_token_too_long_payload(self, backend, navigator, test_name): - payload:bytes = b"" - payload += (0).to_bytes(4, "big") # account index - payload += (0).to_bytes(4, "big") # address index + payload: bytes = b"" + payload += (0).to_bytes(4, "big") # account index + payload += (0).to_bytes(4, "big") # address index - token = b"a"*1024 + token = b"a" * 1024 payload += (len(token)).to_bytes(4, "big") payload += token with send_async_sign_message(backend, Ins.SIGN_MSG_AUTH_TOKEN, payload): if backend.firmware.device.startswith("nano"): navigator.navigate_until_text_and_compare(NavIns(NavInsID.RIGHT_CLICK), - [NavIns(NavInsID.BOTH_CLICK)], - "Authorize", - ROOT_SCREENSHOT_PATH, - test_name) + [NavIns(NavInsID.BOTH_CLICK)], + "Authorize", + ROOT_SCREENSHOT_PATH, + test_name) elif backend.firmware.device == "stax": - nav_ins = [NavInsID.USE_CASE_REVIEW_TAP, - NavInsID.USE_CASE_REVIEW_TAP, - NavInsID.USE_CASE_REVIEW_TAP, + nav_ins = [NavInsID.SWIPE_CENTER_TO_LEFT, + NavInsID.SWIPE_CENTER_TO_LEFT, NavInsID.USE_CASE_REVIEW_CONFIRM] navigator.navigate_and_compare(ROOT_SCREENSHOT_PATH, test_name, nav_ins) def test_sign_msg_auth_token_invalid_ttl(self, backend, navigator, test_name): - payload:bytes = b"" - payload += (0).to_bytes(4, "big") # account index - payload += (0).to_bytes(4, "big") # address index + payload: bytes = b"" + payload += (0).to_bytes(4, "big") # account index + payload += (0).to_bytes(4, "big") # address index token = b"eGV4Y2hhbmdlLmNvbQ.f68177510756edce45eca84b94544a6eacdfa36e69dfd3b8f24c4010d1990751.invalid.eyJ0aW1lc3RhbXAiOjE2NzM5NzIyNDR9" payload += (len(token)).to_bytes(4, "big") @@ -733,20 +835,20 @@ def test_sign_msg_auth_token_invalid_ttl(self, backend, navigator, test_name): with send_async_sign_message(backend, Ins.SIGN_MSG_AUTH_TOKEN, payload): if backend.firmware.device.startswith("nano"): navigator.navigate_until_text_and_compare(NavIns(NavInsID.RIGHT_CLICK), - [NavIns(NavInsID.BOTH_CLICK)], - "Authorize", - ROOT_SCREENSHOT_PATH, - test_name) + [NavIns(NavInsID.BOTH_CLICK)], + "Authorize", + ROOT_SCREENSHOT_PATH, + test_name) elif backend.firmware.device == "stax": - nav_ins = [NavInsID.USE_CASE_REVIEW_TAP, - NavInsID.USE_CASE_REVIEW_TAP, + nav_ins = [NavInsID.SWIPE_CENTER_TO_LEFT, + NavInsID.SWIPE_CENTER_TO_LEFT, NavInsID.USE_CASE_REVIEW_CONFIRM] navigator.navigate_and_compare(ROOT_SCREENSHOT_PATH, test_name, nav_ins) def test_sign_msg_auth_token_long_ttl(self, backend, navigator, test_name): - payload:bytes = b"" - payload += (0).to_bytes(4, "big") # account index - payload += (0).to_bytes(4, "big") # address index + payload: bytes = b"" + payload += (0).to_bytes(4, "big") # account index + payload += (0).to_bytes(4, "big") # address index token = b"eGV4Y2hhbmdlLmNvbQ.f68177510756edce45eca84b94544a6eacdfa36e69dfd3b8f24c4010d1990751.606060657.eyJ0aW1lc3RhbXAiOjE2NzM5NzIyNDR9" payload += (len(token)).to_bytes(4, "big") @@ -754,21 +856,20 @@ def test_sign_msg_auth_token_long_ttl(self, backend, navigator, test_name): with send_async_sign_message(backend, Ins.SIGN_MSG_AUTH_TOKEN, payload): if backend.firmware.device.startswith("nano"): navigator.navigate_until_text_and_compare(NavIns(NavInsID.RIGHT_CLICK), - [NavIns(NavInsID.BOTH_CLICK)], - "Authorize", - ROOT_SCREENSHOT_PATH, - test_name) + [NavIns(NavInsID.BOTH_CLICK)], + "Authorize", + ROOT_SCREENSHOT_PATH, + test_name) elif backend.firmware.device == "stax": - nav_ins = [NavInsID.USE_CASE_REVIEW_TAP, - NavInsID.USE_CASE_REVIEW_TAP, + nav_ins = [NavInsID.SWIPE_CENTER_TO_LEFT, + NavInsID.SWIPE_CENTER_TO_LEFT, NavInsID.USE_CASE_REVIEW_CONFIRM] navigator.navigate_and_compare(ROOT_SCREENSHOT_PATH, test_name, nav_ins) - def test_sign_msg_auth_token_invalid_prefix(self, backend): - payload:bytes = b"" - payload += (0).to_bytes(4, "big") # account index - payload += (0).to_bytes(4, "big") # address index + payload: bytes = b"" + payload += (0).to_bytes(4, "big") # account index + payload += (0).to_bytes(4, "big") # address index token = b"bXVsdGl2ZXJzeDovL29yaWdpbg.f68177510756edce45eca84b94544a6eacdfa36e69dfd3b8f24c4010d1990751.606060657.eyJ0aW1lc3RhbXAiOjE2NzM5NzIyNDR9" payload += (len(token)).to_bytes(4, "big") @@ -779,6 +880,7 @@ def test_sign_msg_auth_token_invalid_prefix(self, backend): pass assert backend.last_async_response.status == Error.INVALID_MESSAGE + class TestState: def test_invalid_state(self, backend): diff --git a/tests/usage.md b/tests/usage.md index 88fc5a95..6243104e 100644 --- a/tests/usage.md +++ b/tests/usage.md @@ -19,7 +19,7 @@ You can use for this the container `ghcr.io/ledgerhq/ledger-app-builder/ledger-a ``` docker pull ghcr.io/ledgerhq/ledger-app-builder/ledger-app-builder:latest cd # replace with the name of your app, (eg boilerplate) -docker run --user "$(id -u)":"$(id -g)" --rm -ti -v "$(realpath .):/app" --privileged -v "/dev/bus/usb:/dev/bus/usb" ghcr.io/ledgerhq/ledger-app-builder:latest +docker run --user "$(id -u)":"$(id -g)" --rm -ti -v "$(realpath .):/app" --privileged -v "/dev/bus/usb:/dev/bus/usb" ghcr.io/ledgerhq/ledger-app-builder/ledger-app-builder:latest make clean && make BOLOS_SDK=$_SDK # replace with one of [NANOS, NANOX, NANOSP, STAX] exit ``` @@ -42,8 +42,9 @@ You can use for this the container `ghcr.io/ledgerhq/ledger-app-builder/ledger-a ``` docker pull ghcr.io/ledgerhq/ledger-app-builder/ledger-app-builder:latest cd app-/ # replace with the name of your app, (eg boilerplate) -docker run --user "$(id -u)":"$(id -g)" --rm -ti -v "$(realpath .):/app" --privileged -v "/dev/bus/usb:/dev/bus/usb" ghcr.io/ledgerhq/ledger-app-builder:latest -make clean && make BOLOS_SDK=$_SDK load # replace with one of [NANOS, NANOX, NANOSP] +docker run --user "$(id -u)":"$(id -g)" --rm -ti -v "$(realpath .):/app" --privileged -v "/dev/bus/usb:/dev/bus/usb" ghcr.io/ledgerhq/ledger-app-builder/ledger-app-builder:latest +make clean && make BOLOS_SDK=$_SDK # replace with one of [NANOS, NANOX, NANOSP, STAX] +make load # load the application on the device, only works with NANOS exit ```