diff --git a/.gitignore b/.gitignore index 7739fdddd..48a898826 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +/build /_build /app/.target /app/bin diff --git a/app/Makefile b/app/Makefile index 380b501aa..a7f94e55d 100644 --- a/app/Makefile +++ b/app/Makefile @@ -43,7 +43,7 @@ APPNAME = "Tezos Wallet" # Application version APPVERSION_M=3 APPVERSION_N=0 -APPVERSION_P=4 +APPVERSION_P=5 APPVERSION=$(APPVERSION_M).$(APPVERSION_N).$(APPVERSION_P) # COMMIT diff --git a/app/glyphs/tezos_16px.gif b/app/glyphs/tezos_16px.gif new file mode 100644 index 000000000..8aa134eaa Binary files /dev/null and b/app/glyphs/tezos_16px.gif differ diff --git a/app/src/apdu_sign.c b/app/src/apdu_sign.c index 358bd843f..e82143179 100644 --- a/app/src/apdu_sign.c +++ b/app/src/apdu_sign.c @@ -36,6 +36,7 @@ #include "apdu.h" #include "apdu_sign.h" +#include "format.h" #include "globals.h" #include "handle_swap.h" #include "keys.h" @@ -55,6 +56,7 @@ static void send_reject(int error_code); static void send_continue(void); static void send_cancel(void); static void refill(void); +static void refill_all(void); static void stream_cb(tz_ui_cb_type_t cb_type); static void handle_first_apdu(command_t *cmd); static void handle_first_apdu_clear(command_t *cmd); @@ -62,6 +64,15 @@ static void init_blind_stream(void); static void handle_data_apdu(command_t *cmd); static void handle_data_apdu_clear(command_t *cmd); static void handle_data_apdu_blind(void); +static void pass_from_clear_to_summary(void); +#ifdef HAVE_BAGL +static void init_too_many_screens_stream(void); +#endif +#ifdef HAVE_NBGL +static void continue_blindsign_cb(void); +static void pass_from_summary_to_blind(void); +#endif +static void init_summary_stream(void); /* Macros */ @@ -77,6 +88,10 @@ static void handle_data_apdu_blind(void); #define APDU_SIGN_ASSERT_STEP(x) \ APDU_SIGN_ASSERT(global.keys.apdu.sign.step == (x)) +#ifdef HAVE_BAGL +#define SCREEN_DISPLAYED global.keys.apdu.sign.u.clear.screen_displayed +#endif + #ifdef HAVE_BAGL void tz_ui_stream_push_accept_reject(void) @@ -93,6 +108,54 @@ tz_ui_stream_push_accept_reject(void) TZ_UI_LAYOUT_HOME_PB, TZ_UI_ICON_CROSS); FUNC_LEAVE(); } + +void +tz_ui_stream_push_risky_accept_reject(tz_ui_cb_type_t accept_cb_type, + tz_ui_cb_type_t reject_cb_type) +{ + FUNC_ENTER(("void")); + tz_ui_stream_push(accept_cb_type, "Accept risk", "", TZ_UI_LAYOUT_HOME_PB, + TZ_UI_ICON_TICK); + tz_ui_stream_push(reject_cb_type, "Reject", "", TZ_UI_LAYOUT_HOME_PB, + TZ_UI_ICON_CROSS); + FUNC_LEAVE(); +} + +static void +tz_ui_stream_push_warning_not_trusted(const char *title_reason, + const char *value_reason) +{ + FUNC_ENTER(("void")); +#ifdef TARGET_NANOS + tz_ui_stream_push(TZ_UI_STREAM_CB_NOCB, "The transaction", + "cannot be trusted.", TZ_UI_LAYOUT_HOME_B, + TZ_UI_ICON_NONE); +#else + tz_ui_stream_push(TZ_UI_STREAM_CB_NOCB, "The transaction", + "cannot be trusted.", TZ_UI_LAYOUT_HOME_PB, + TZ_UI_ICON_WARNING); +#endif + if ((title_reason != NULL) && (value_reason != NULL)) { + tz_ui_stream_push(TZ_UI_STREAM_CB_NOCB, title_reason, value_reason, + TZ_UI_LAYOUT_HOME_N, TZ_UI_ICON_NONE); + } +#ifndef TARGET_NANOS + tz_ui_stream_push(TZ_UI_STREAM_CB_NOCB, "It may not be safe", + "to sign this\ntransaction.", TZ_UI_LAYOUT_HOME_N, + TZ_UI_ICON_NONE); +#endif + FUNC_LEAVE(); +} + +void +tz_ui_stream_push_learn_more(void) +{ + FUNC_ENTER(("void")); + tz_ui_stream_push(TZ_UI_STREAM_CB_NOCB, + "Learn More:", "bit.ly/ledger-tez", + TZ_UI_LAYOUT_HOME_BN, TZ_UI_ICON_NONE); + FUNC_LEAVE(); +} #endif static void @@ -123,7 +186,6 @@ sign_packet(void) io_send_response_buffers(bufs, 2, SW_OK); global.step = ST_IDLE; - TZ_POSTAMBLE; } @@ -133,7 +195,6 @@ send_reject(int error_code) TZ_PREAMBLE(("void")); APDU_SIGN_ASSERT_STEP(SIGN_ST_WAIT_USER_INPUT); - APDU_SIGN_ASSERT(global.keys.apdu.sign.received_last_msg); TZ_FAIL(error_code); TZ_POSTAMBLE; } @@ -164,16 +225,25 @@ refill_blo_im_full(void) size_t wrote = 0; TZ_PREAMBLE(("void")); + // No display for Swap or Summary flow + if ( #ifdef HAVE_SWAP - if (G_called_from_swap) { + G_called_from_swap || +#endif + global.step == ST_SUMMARY_SIGN) { tz_parser_flush(st, global.line_buf, TZ_UI_STREAM_CONTENTS_SIZE); // invoke refill until we consume entire msg. TZ_SUCCEED(); } -#endif global.keys.apdu.sign.step = SIGN_ST_WAIT_USER_INPUT; #ifdef HAVE_BAGL + if (N_settings.blindsigning + && (SCREEN_DISPLAYED >= NB_MAX_SCREEN_ALLOWED)) { + pass_from_clear_to_summary(); + TZ_SUCCEED(); + } + if (st->field_info.is_field_complex && !N_settings.expert_mode) { tz_ui_stream_push(TZ_UI_STREAM_CB_NOCB, st->field_info.field_name, "Needs Expert mode", TZ_UI_LAYOUT_HOME_B, @@ -184,27 +254,30 @@ refill_blo_im_full(void) goto end; } else { if (st->field_info.is_field_complex - && (global.keys.apdu.sign.u.clear.last_field_index - != st->field_info.field_index)) { + && !global.keys.apdu.sign.u.clear.displayed_expert_warning) { + SCREEN_DISPLAYED++; tz_ui_stream_push(TZ_UI_STREAM_CB_NOCB, "Next field requires", "careful review", TZ_UI_LAYOUT_HOME_B, TZ_UI_ICON_NONE); global.keys.apdu.sign.u.clear.last_field_index = st->field_info.field_index; + global.keys.apdu.sign.u.clear.displayed_expert_warning = true; } } + SCREEN_DISPLAYED++; wrote = tz_ui_stream_push(TZ_UI_STREAM_CB_NOCB, st->field_info.field_name, global.line_buf, TZ_UI_LAYOUT_BN, TZ_UI_ICON_NONE); + #elif HAVE_NBGL PRINTF("[DEBUG] field=%s complex=%d\n", st->field_info.field_name, st->field_info.is_field_complex); if (st->field_info.is_field_complex - && (global.keys.apdu.sign.u.clear.last_field_index - != st->field_info.field_index)) { + && !global.keys.apdu.sign.u.clear.displayed_expert_warning) { global.keys.apdu.sign.u.clear.last_field_index = st->field_info.field_index; + global.keys.apdu.sign.u.clear.displayed_expert_warning = true; if (!N_settings.expert_mode) { tz_ui_stream_push_all(TZ_UI_STREAM_CB_EXPERT_MODE_ENABLE, st->field_info.field_name, "complex", @@ -247,11 +320,23 @@ refill_blo_done(void) TZ_CHECK(sign_packet()); TZ_SUCCEED(); } + #ifdef HAVE_BAGL + if (global.step == ST_SUMMARY_SIGN) { + init_too_many_screens_stream(); + TZ_SUCCEED(); + } tz_ui_stream_push_accept_reject(); #endif - tz_ui_stream_close(); +#ifdef HAVE_NBGL + if (global.step == ST_SUMMARY_SIGN) { + init_summary_stream(); + TZ_SUCCEED(); + } +#endif + + tz_ui_stream_close(); TZ_POSTAMBLE; } @@ -273,57 +358,51 @@ refill_error(void) #ifdef HAVE_BAGL tz_ui_stream_init(stream_cb); - tz_ui_stream_push(TZ_UI_STREAM_CB_NOCB, - "The transaction", - "cannot be trusted.", #ifdef TARGET_NANOS - TZ_UI_LAYOUT_HOME_B, - TZ_UI_ICON_NONE); + tz_ui_stream_push_warning_not_trusted(NULL, NULL); #else - TZ_UI_LAYOUT_HOME_PB, - TZ_UI_ICON_WARNING); - tz_ui_stream_push(TZ_UI_STREAM_CB_NOCB, - "This transaction", - "could not be\ndecoded correctly.", - TZ_UI_LAYOUT_HOME_N, - TZ_UI_ICON_NONE); - tz_ui_stream_push(TZ_UI_STREAM_CB_NOCB, - "It may not be safe", - "to sign this\ntransaction.", - TZ_UI_LAYOUT_HOME_N, - TZ_UI_ICON_NONE); + tz_ui_stream_push_warning_not_trusted("This transaction", + "could not be\ndecoded correctly."); #endif + tz_ui_stream_push_all(TZ_UI_STREAM_CB_NOCB, "Parsing error", tz_parser_result_name(st->errno), TZ_UI_LAYOUT_HOME_BN, TZ_UI_ICON_NONE); - tz_ui_stream_push(TZ_UI_STREAM_CB_NOCB, - "Learn More:", - "bit.ly/ledger-tez", - TZ_UI_LAYOUT_HOME_BN, - TZ_UI_ICON_NONE); - tz_ui_stream_push(TZ_UI_STREAM_CB_BLINDSIGN, - "Accept risk", - "", - TZ_UI_LAYOUT_HOME_PB, - TZ_UI_ICON_TICK); - tz_ui_stream_push(TZ_UI_STREAM_CB_CANCEL, - "Reject", - "", - TZ_UI_LAYOUT_HOME_PB, - TZ_UI_ICON_CROSS); + tz_ui_stream_push_learn_more(); + tz_ui_stream_push_risky_accept_reject( + TZ_UI_STREAM_CB_BLINDSIGN, TZ_UI_STREAM_CB_CANCEL); #elif HAVE_NBGL - tz_ui_stream_push_all(TZ_UI_STREAM_CB_CANCEL, - "Parsing error", - tz_parser_result_name(st->errno), - TZ_UI_LAYOUT_BN, - TZ_UI_ICON_NONE); + global.blindsign_reason = REASON_PARSING_ERROR; + strncpy(global.error_code, tz_parser_result_name(st->errno), ERROR_CODE_SIZE); + if(global.step == ST_SUMMARY_SIGN) { + pass_from_summary_to_blind(); + TZ_SUCCEED(); + } + else if(global.step == ST_CLEAR_SIGN){ + // The following call is just to invoke switch_to_blindsigning + // with TZ_UI_STREAM_CB_CANCEL callback type in function tz_ui_nav_cb() + // The text will not be shown. + tz_ui_stream_push_all(TZ_UI_STREAM_CB_CANCEL, + "Parsing error", + tz_parser_result_name(st->errno), + TZ_UI_LAYOUT_BN, + TZ_UI_ICON_NONE); + } + else{ + TZ_FAIL(EXC_UNEXPECTED_STATE); // Only two states can lead to refill error. ST_CLEAR_SIGN and ST_SUMMARY_SIGN + } #endif // clang-format on tz_ui_stream_close(); + +#ifdef HAVE_BAGL + tz_ui_stream_start(); +#endif + TZ_POSTAMBLE; } @@ -339,15 +418,56 @@ refill(void) PRINTF("[DEBUG] refill(errno: %s)\n", tz_parser_result_name(st->errno)); // clang-format off switch (st->errno) { - case TZ_BLO_IM_FULL: TZ_CHECK(refill_blo_im_full()); break; - case TZ_BLO_FEED_ME: TZ_CHECK(send_continue()); break; - case TZ_BLO_DONE: TZ_CHECK(refill_blo_done()); break; - default: TZ_CHECK(refill_error()); break; + case TZ_BLO_IM_FULL: TZ_CHECK(refill_blo_im_full()); + break; + case TZ_BLO_FEED_ME: TZ_CHECK(send_continue()); + break; + case TZ_BLO_DONE: TZ_CHECK(refill_blo_done()); + break; + default: TZ_CHECK(refill_error()); + break; } // clang-format on TZ_POSTAMBLE; } +/** + * @brief Parse until there is nothing left to parse or user input is + * required. + */ +static void +refill_all(void) +{ + TZ_PREAMBLE(("void")); + + while (global.keys.apdu.sign.u.clear.received_msg) { + TZ_CHECK(refill()); + if ((global.step == ST_SUMMARY_SIGN) + && (global.keys.apdu.sign.step == SIGN_ST_WAIT_USER_INPUT)) { + break; + } + } + + TZ_POSTAMBLE; +} + +static void +pass_from_clear_to_summary(void) +{ + TZ_PREAMBLE(("void")); + + APDU_SIGN_ASSERT_STEP(SIGN_ST_WAIT_USER_INPUT); + + global.step = ST_SUMMARY_SIGN; + global.keys.apdu.sign.step = SIGN_ST_WAIT_DATA; +#ifdef HAVE_NBGL + init_blind_stream(); +#endif + TZ_CHECK(refill_all()); + + TZ_POSTAMBLE; +} + static void send_cancel(void) { @@ -399,32 +519,172 @@ stream_cb(tz_ui_cb_type_t cb_type) // clang-format off switch (cb_type) { - case TZ_UI_STREAM_CB_ACCEPT: TZ_CHECK(sign_packet()); break; - case TZ_UI_STREAM_CB_REFILL: TZ_CHECK(refill()); break; - case TZ_UI_STREAM_CB_REJECT: send_reject(EXC_REJECT); break; - case TZ_UI_STREAM_CB_BLINDSIGN_REJECT: send_reject(EXC_PARSE_ERROR); break; - case TZ_UI_STREAM_CB_CANCEL: TZ_CHECK(send_cancel()); break; - case TZ_UI_STREAM_CB_BLINDSIGN: TZ_CHECK(pass_from_clear_to_blind()); break; - default: TZ_FAIL(EXC_UNKNOWN); break; + case TZ_UI_STREAM_CB_ACCEPT: TZ_CHECK(sign_packet()); break; + case TZ_UI_STREAM_CB_REFILL: TZ_CHECK(refill()); break; + case TZ_UI_STREAM_CB_REJECT: send_reject(EXC_REJECT); break; + case TZ_UI_STREAM_CB_BLINDSIGN_REJECT: send_reject(EXC_PARSE_ERROR); break; + case TZ_UI_STREAM_CB_CANCEL: TZ_CHECK(send_cancel()); break; + case TZ_UI_STREAM_CB_BLINDSIGN: TZ_CHECK(pass_from_clear_to_blind()); break; +#ifdef HAVE_NBGL + case TZ_UI_STREAM_CB_SUMMARY: TZ_CHECK(pass_from_clear_to_summary()); break; +#endif + default: TZ_FAIL(EXC_UNKNOWN); break; + } + // clang-format on + + TZ_POSTAMBLE; +} + +#ifdef HAVE_BAGL +static void +push_next_summary_screen(void) +{ +#define FINAL_HASH global.keys.apdu.hash.final_hash +#define SUMMARYSIGN_STEP global.keys.apdu.sign.u.summary.step + + char num_buffer[TZ_DECIMAL_BUFFER_SIZE(TZ_NUM_BUFFER_SIZE / 8)] = {0}; + char hash_buffer[TZ_BASE58_BUFFER_SIZE(sizeof(FINAL_HASH))] = {0}; + tz_operation_state *op + = &global.keys.apdu.sign.u.clear.parser_state.operation; + + TZ_PREAMBLE(("void")); + + switch (SUMMARYSIGN_STEP) { + case SUMMARYSIGN_ST_OPERATION: + SUMMARYSIGN_STEP = SUMMARYSIGN_ST_NB_TX; + + snprintf(num_buffer, sizeof(num_buffer), "%d", op->batch_index); + tz_ui_stream_push(TZ_UI_STREAM_CB_NOCB, "Number of Tx", num_buffer, + TZ_UI_LAYOUT_BN, TZ_UI_ICON_NONE); + break; + case SUMMARYSIGN_ST_NB_TX: + SUMMARYSIGN_STEP = SUMMARYSIGN_ST_AMOUNT; + + tz_mutez_to_string(num_buffer, sizeof(num_buffer), op->total_amount); + tz_ui_stream_push(TZ_UI_STREAM_CB_NOCB, "Total amount", num_buffer, + TZ_UI_LAYOUT_BN, TZ_UI_ICON_NONE); + break; + case SUMMARYSIGN_ST_AMOUNT: + SUMMARYSIGN_STEP = SUMMARYSIGN_ST_FEE; + + tz_mutez_to_string(num_buffer, sizeof(num_buffer), op->total_fee); + tz_ui_stream_push(TZ_UI_STREAM_CB_NOCB, "Total fee", num_buffer, + TZ_UI_LAYOUT_BN, TZ_UI_ICON_NONE); + break; + case SUMMARYSIGN_ST_FEE: + SUMMARYSIGN_STEP = SUMMARYSIGN_ST_HASH; + + if (tz_format_base58(FINAL_HASH, sizeof(FINAL_HASH), hash_buffer, + sizeof(hash_buffer))) { + TZ_FAIL(EXC_UNKNOWN); + } + tz_ui_stream_push_all(TZ_UI_STREAM_CB_NOCB, "Hash", hash_buffer, + TZ_UI_LAYOUT_BN, TZ_UI_ICON_NONE); + break; + case SUMMARYSIGN_ST_HASH: + SUMMARYSIGN_STEP = SUMMARYSIGN_ST_ACCEPT_REJECT; + + tz_ui_stream_push_accept_reject(); + tz_ui_stream_close(); + break; + default: + PRINTF("Unexpected summary state: %d\n", (int)SUMMARYSIGN_STEP); + TZ_FAIL(EXC_UNEXPECTED_STATE); + }; + + TZ_POSTAMBLE; + +#undef SUMMARYSIGN_STEP +#undef FINAL_HASH +} + +static void +summary_stream_cb(tz_ui_cb_type_t cb_type) +{ + TZ_PREAMBLE(("cb_type=%u", cb_type)); + + // clang-format off + switch (cb_type) { + case TZ_UI_STREAM_CB_ACCEPT: TZ_CHECK(sign_packet()); break; + case TZ_UI_STREAM_CB_REJECT: send_reject(EXC_REJECT); break; + case TZ_UI_STREAM_CB_REFILL: TZ_CHECK(push_next_summary_screen()); break; + default: TZ_FAIL(EXC_UNKNOWN); + break; } // clang-format on TZ_POSTAMBLE; } +#endif + +static void +init_summary_stream(void) +{ + TZ_PREAMBLE(("void")); +#ifdef HAVE_BAGL + tz_ui_stream_init(summary_stream_cb); + global.keys.apdu.sign.u.summary.step = SUMMARYSIGN_ST_OPERATION; + push_next_summary_screen(); + tz_ui_stream(); +#elif defined(HAVE_NBGL) + continue_blindsign_cb(); +#endif + + TZ_POSTAMBLE; +} + #define FINAL_HASH global.keys.apdu.hash.final_hash + #ifdef HAVE_BAGL +static void +pass_to_summary_stream_cb(tz_ui_cb_type_t cb_type) +{ + TZ_PREAMBLE(("cb_type=%u", cb_type)); + + // clang-format off + switch (cb_type) { + case TZ_UI_STREAM_CB_VALIDATE: TZ_CHECK(init_summary_stream()); break; + case TZ_UI_STREAM_CB_REJECT: send_reject(EXC_REJECT); break; + default: TZ_FAIL(EXC_UNKNOWN); break; + } + // clang-format on + + TZ_POSTAMBLE; +} + +static void +init_too_many_screens_stream(void) +{ + tz_ui_stream_init(pass_to_summary_stream_cb); + +#ifdef TARGET_NANOS + tz_ui_stream_push_warning_not_trusted("Operation too long", + "Accept blindsign"); +#else + tz_ui_stream_push_warning_not_trusted("Operation too long", + "Proceed to\nblindsign."); +#endif + tz_ui_stream_push_risky_accept_reject(TZ_UI_STREAM_CB_VALIDATE, + TZ_UI_STREAM_CB_REJECT); + + tz_ui_stream_close(); + + tz_ui_stream(); +} + static void bs_push_next(void) { - char obuf[TZ_BASE58_BUFFER_SIZE(sizeof(FINAL_HASH))]; - blindsign_step_t *step = &global.keys.apdu.sign.u.blind.step; +#define BLINDSIGN_STEP global.keys.apdu.sign.u.blind.step + + char obuf[TZ_BASE58_BUFFER_SIZE(sizeof(FINAL_HASH))]; TZ_PREAMBLE(("void")); - switch (*step) { + switch (BLINDSIGN_STEP) { case BLINDSIGN_ST_OPERATION: - *step = BLINDSIGN_ST_HASH; + BLINDSIGN_STEP = BLINDSIGN_ST_HASH; if (tz_format_base58(FINAL_HASH, sizeof(FINAL_HASH), obuf, sizeof(obuf))) { @@ -435,17 +695,19 @@ bs_push_next(void) TZ_UI_LAYOUT_BN, TZ_UI_ICON_NONE); break; case BLINDSIGN_ST_HASH: - *step = BLINDSIGN_ST_ACCEPT_REJECT; + BLINDSIGN_STEP = BLINDSIGN_ST_ACCEPT_REJECT; tz_ui_stream_push_accept_reject(); tz_ui_stream_close(); break; default: - PRINTF("Unexpected blindsign state: %d\n", (int)*step); + PRINTF("Unexpected blindsign state: %d\n", (int)BLINDSIGN_STEP); TZ_FAIL(EXC_UNEXPECTED_STATE); }; TZ_POSTAMBLE; + +#undef BLINDSIGN_STEP } static void @@ -455,11 +717,15 @@ bs_stream_cb(tz_ui_cb_type_t cb_type) // clang-format off switch (cb_type) { - case TZ_UI_STREAM_CB_ACCEPT: return sign_packet(); - case TZ_UI_STREAM_CB_REFILL: return bs_push_next(); - case TZ_UI_STREAM_CB_REJECT: return send_reject(EXC_REJECT); - case TZ_UI_STREAM_CB_CANCEL: return send_cancel(); - default: TZ_FAIL(EXC_UNKNOWN); + case TZ_UI_STREAM_CB_ACCEPT: + return sign_packet(); + case TZ_UI_STREAM_CB_REFILL: + return bs_push_next(); + case TZ_UI_STREAM_CB_REJECT: + return send_reject(EXC_REJECT); + case TZ_UI_STREAM_CB_CANCEL: + return send_cancel(); + default: TZ_FAIL(EXC_UNKNOWN); } // clang-format on @@ -513,12 +779,14 @@ handle_first_apdu_clear(__attribute__((unused)) command_t *cmd) tz_ui_stream_init(stream_cb); global.step = ST_CLEAR_SIGN; +#ifdef HAVE_BAGL #ifdef TARGET_NANOS tz_ui_stream_push(TZ_UI_STREAM_CB_NOCB, "Review operation", "", TZ_UI_LAYOUT_HOME_PB, TZ_UI_ICON_EYE); -#elif defined(HAVE_BAGL) - tz_ui_stream_push(TZ_UI_STREAM_CB_NOCB, "Review", "operation", - TZ_UI_LAYOUT_HOME_PB, TZ_UI_ICON_EYE); +#else + tz_ui_stream_push(TZ_UI_STREAM_CB_NOCB, "Review", "operation", + TZ_UI_LAYOUT_HOME_PB, TZ_UI_ICON_EYE); +#endif #endif #ifdef HAVE_SWAP } else { @@ -570,9 +838,13 @@ handle_data_apdu(command_t *cmd) switch (global.step) { case ST_CLEAR_SIGN: case ST_SWAP_SIGN: - TZ_CHECK(handle_data_apdu_clear(cmd)); break; - case ST_BLIND_SIGN: TZ_CHECK(handle_data_apdu_blind()); break; - default: TZ_FAIL(EXC_UNEXPECTED_STATE); break; + case ST_SUMMARY_SIGN: + TZ_CHECK(handle_data_apdu_clear(cmd)); + break; + case ST_BLIND_SIGN: TZ_CHECK(handle_data_apdu_blind()); + break; + default: TZ_FAIL(EXC_UNEXPECTED_STATE); + break; } // clang-format on @@ -600,43 +872,77 @@ handle_data_apdu_clear(command_t *cmd) tz_operation_parser_set_size( st, global.keys.apdu.sign.u.clear.total_length); } - if (global.step == ST_SWAP_SIGN) { - do { - TZ_CHECK(refill()); - } while (global.keys.apdu.sign.u.clear.received_msg); - } else { + + switch (global.step) { + case ST_CLEAR_SIGN: TZ_CHECK(refill()); - if ((global.keys.apdu.sign.step == SIGN_ST_WAIT_USER_INPUT) - && (global.step != ST_SWAP_SIGN)) { + if (global.keys.apdu.sign.step == SIGN_ST_WAIT_USER_INPUT) { tz_ui_stream(); } + break; + case ST_SWAP_SIGN: + case ST_SUMMARY_SIGN: + TZ_CHECK(refill_all()); + break; + default: + TZ_FAIL(EXC_UNEXPECTED_SIGN_STATE); + break; } + TZ_POSTAMBLE; } -#ifdef HAVE_NBGL -static nbgl_layoutTagValueList_t useCaseTagValueList; +#define OPERATION_TYPE_STR_LENGTH 22 -void -reject_blindsign_cb(void) +static void +get_blindsign_type(char *type, size_t type_size) { - FUNC_ENTER(("void")); - - stream_cb(TZ_UI_STREAM_CB_BLINDSIGN_REJECT); - global.step = ST_IDLE; - ui_home_init(); - - FUNC_LEAVE(); + TZ_PREAMBLE(("type=%s", type)); + TZ_ASSERT(EXC_MEMORY_ERROR, type_size >= OPERATION_TYPE_STR_LENGTH); + // clang-format off + switch (global.keys.apdu.sign.tag) { + case 0x01: + case 0x11: + memcpy(type,"Block\nproposal", OPERATION_TYPE_STR_LENGTH); + break; + case 0x03: + memcpy(type,"Manager\noperation", OPERATION_TYPE_STR_LENGTH); + break; + case 0x02: + case 0x12: + case 0x13: + memcpy(type,"Consensus\noperation", OPERATION_TYPE_STR_LENGTH); + break; + case 0x05: + memcpy(type,"Micheline\nexpression", OPERATION_TYPE_STR_LENGTH); + break; + default: + break; + } + // clang-format on + TZ_POSTAMBLE; } -void -reject_blindsign_review_cb(void) +#ifdef HAVE_NBGL +static void +pass_from_summary_to_blind(void) { - FUNC_ENTER(("void")); - nbgl_useCaseStatus("Transaction rejected", false, reject_blindsign_cb); - FUNC_LEAVE(); + TZ_PREAMBLE(("void")); + + TZ_ASSERT(global.step == ST_SUMMARY_SIGN, EXC_UNEXPECTED_STATE); + + global.step = ST_BLIND_SIGN; + global.keys.apdu.sign.step = SIGN_ST_WAIT_DATA; + global.keys.apdu.sign.u.blind.step = BLINDSIGN_ST_OPERATION; + + init_blind_stream(); + handle_data_apdu_blind(); + + TZ_POSTAMBLE; } +static nbgl_layoutTagValueList_t useCaseTagValueList; + void accept_blindsign_cb(void) { @@ -654,7 +960,8 @@ reviewChoice(bool confirm) FUNC_ENTER(("confirm=%d", confirm)); if (confirm) { - nbgl_useCaseStatus("TRANSACTION\nSIGNED", true, accept_blindsign_cb); + nbgl_useCaseReviewStatus(STATUS_TYPE_TRANSACTION_SIGNED, + accept_blindsign_cb); } else { tz_reject(); } @@ -662,25 +969,85 @@ reviewChoice(bool confirm) FUNC_LEAVE(); } -static const char *transaction_type; -static char - hash[TZ_BASE58_BUFFER_SIZE(sizeof(global.keys.apdu.hash.final_hash))]; +typedef enum { + SUMMARY_INDEX_NB_OF_TX = 0, + SUMMARY_INDEX_TOTAL_AMOUNT, + SUMMARY_INDEX_TOTAL_FEES, + SUMMARY_INDEX_TYPE, + SUMMARY_INDEX_HASH, + SUMMARY_INDEX_MAX +} summary_index_t; + +#define DECIMAL_SIZE TZ_DECIMAL_BUFFER_SIZE((TZ_NUM_BUFFER_SIZE / 8)) + static nbgl_layoutTagValue_t pair; + static nbgl_layoutTagValue_t * getTagValuePair(uint8_t pairIndex) { + TZ_PREAMBLE(("pairIndex=%u", pairIndex)); + // Reuse the buffer for tag value pair list. + tz_operation_state *op + = &global.keys.apdu.sign.u.clear.parser_state.operation; + + /// Following condition is setup because startIndex in useCaseTagValueList + /// is not being used by the SDK. + if (global.step == ST_BLIND_SIGN && useCaseTagValueList.nbPairs == 2) { + if (pairIndex < SUMMARY_INDEX_TOTAL_FEES) { + pairIndex += SUMMARY_INDEX_TYPE; + } + } + + char num_buffer[DECIMAL_SIZE] = {0}; + char type[OPERATION_TYPE_STR_LENGTH] = "Unknown types"; + char + hash[TZ_BASE58_BUFFER_SIZE(sizeof(global.keys.apdu.hash.final_hash))]; + + pair.value = NULL; // A requirement for ui_strings_push switch (pairIndex) { - case 0: - pair.item = "Type"; - pair.value = transaction_type; - break; - case 1: - pair.item = "Hash"; - pair.value = hash; - break; + case SUMMARY_INDEX_NB_OF_TX: { + pair.item = "Number of Tx"; + + snprintf(num_buffer, sizeof(num_buffer), "%d", op->batch_index); + ui_strings_push(num_buffer, strlen(num_buffer), + (char **)&(pair.value)); + } break; + case SUMMARY_INDEX_TOTAL_AMOUNT: { + pair.item = "Total amount"; + + tz_mutez_to_string(num_buffer, sizeof(num_buffer), op->total_amount); + ui_strings_push(num_buffer, strlen(num_buffer), + (char **)&(pair.value)); + + } break; + case SUMMARY_INDEX_TOTAL_FEES: { + pair.item = "Total Fees"; + + tz_mutez_to_string(num_buffer, sizeof(num_buffer), op->total_fee); + ui_strings_push(num_buffer, strlen(num_buffer), + (char **)&(pair.value)); + } break; + case SUMMARY_INDEX_TYPE: { + get_blindsign_type(type, sizeof(type)); + pair.item = "Type"; + ui_strings_push(type, strlen(type), (char **)&(pair.value)); + } + + break; + case SUMMARY_INDEX_HASH: { + if (tz_format_base58(FINAL_HASH, sizeof(FINAL_HASH), hash, + sizeof(hash))) { + TZ_FAIL(EXC_UNKNOWN); + } + + pair.item = "Hash"; + ui_strings_push(hash, strlen(hash), (char **)&(pair.value)); + } break; default: return NULL; } + + TZ_POSTAMBLE; return &pair; } @@ -688,18 +1055,29 @@ void continue_blindsign_cb(void) { FUNC_ENTER(("void")); + + ui_strings_init(); + nbgl_operationType_t op = TYPE_TRANSACTION; - op |= BLIND_OPERATION; - useCaseTagValueList.pairs = NULL; - useCaseTagValueList.callback = getTagValuePair; - useCaseTagValueList.startIndex = 0; - useCaseTagValueList.nbPairs = 2; + useCaseTagValueList.pairs = NULL; + useCaseTagValueList.callback = getTagValuePair; + useCaseTagValueList.startIndex = 3; + useCaseTagValueList.nbPairs = 2; + if (global.step == ST_SUMMARY_SIGN) { + PRINTF("[DEBUG] SUMMARY_SIGN start_index %d\n", + useCaseTagValueList.startIndex); + useCaseTagValueList.startIndex = 0; + useCaseTagValueList.nbPairs = 5; + } + PRINTF("[DEBUG] SIGN Status: %d, start_index %d Number of pairs:%d ", + global.step, useCaseTagValueList.startIndex, + useCaseTagValueList.nbPairs); useCaseTagValueList.smallCaseForValue = false; useCaseTagValueList.wrapping = false; - nbgl_useCaseReview(op, &useCaseTagValueList, &C_tezos, - REVIEW("Transaction"), NULL, SIGN("Transaction"), - reviewChoice); + nbgl_useCaseReviewBlindSigning(op, &useCaseTagValueList, &C_tezos, + REVIEW("Transaction"), NULL, + SIGN("Transaction"), NULL, reviewChoice); FUNC_LEAVE(); } @@ -716,35 +1094,17 @@ handle_data_apdu_blind(void) TZ_SUCCEED(); } - const char *type = "unknown type"; - global.keys.apdu.sign.step = SIGN_ST_WAIT_USER_INPUT; - // clang-format off - switch(global.keys.apdu.sign.tag) { - case 0x01: case 0x11: type = "Block\nproposal"; break; - case 0x03: type = "Manager\noperation"; break; - case 0x02: - case 0x12: case 0x13: type = "Consensus\noperation"; break; - case 0x05: type = "Micheline\nexpression"; break; - default: break; - } - // clang-format on - #ifdef HAVE_BAGL + + char type[OPERATION_TYPE_STR_LENGTH] = "Unknown type"; + get_blindsign_type(type, sizeof(type)); tz_ui_stream_push_all(TZ_UI_STREAM_CB_NOCB, "Sign Hash", type, TZ_UI_LAYOUT_BN, TZ_UI_ICON_NONE); tz_ui_stream(); #elif HAVE_NBGL - char obuf[TZ_BASE58_BUFFER_SIZE(sizeof(FINAL_HASH))]; - if (tz_format_base58(FINAL_HASH, sizeof(FINAL_HASH), obuf, - sizeof(obuf))) { - TZ_FAIL(EXC_UNKNOWN); - } - - transaction_type = type; - STRLCPY(hash, obuf); continue_blindsign_cb(); #endif TZ_POSTAMBLE; @@ -755,7 +1115,7 @@ void handle_apdu_sign(command_t *cmd) { bool return_hash = cmd->ins == INS_SIGN_WITH_HASH; - TZ_PREAMBLE(("cmd=0x%p", cmd)); + TZ_PREAMBLE(("cmd=0x%p, \nglobal.step: %d", cmd, global.step)); TZ_ASSERT(EXC_WRONG_LENGTH_FOR_INS, cmd->lc <= MAX_APDU_SIZE); @@ -771,6 +1131,7 @@ handle_apdu_sign(command_t *cmd) TZ_ASSERT(EXC_UNEXPECTED_STATE, (global.step == ST_BLIND_SIGN) || (global.step == ST_CLEAR_SIGN) + || (global.step == ST_SUMMARY_SIGN) || (global.step == ST_SWAP_SIGN)); TZ_ASSERT(EXC_INVALID_INS, return_hash == global.keys.apdu.sign.return_hash); diff --git a/app/src/apdu_sign.h b/app/src/apdu_sign.h index 1b6dbd84c..6def43fb2 100644 --- a/app/src/apdu_sign.h +++ b/app/src/apdu_sign.h @@ -59,6 +59,19 @@ typedef enum { BLINDSIGN_ST_ACCEPT_REJECT, } blindsign_step_t; +/** + * @brief Steps to display summary. + * + */ +typedef enum { + SUMMARYSIGN_ST_OPERATION, + SUMMARYSIGN_ST_NB_TX, + SUMMARYSIGN_ST_AMOUNT, + SUMMARYSIGN_ST_FEE, + SUMMARYSIGN_ST_HASH, + SUMMARYSIGN_ST_ACCEPT_REJECT, +} summarysign_step_t; + /** * @brief Struct to track state/info about current sign operation. * @@ -74,14 +87,21 @@ typedef struct { union { /// @brief clear signing state info. struct { - size_t total_length; tz_parser_state parser_state; + size_t total_length; uint8_t last_field_index; - bool received_msg; +#ifdef HAVE_BAGL + uint8_t screen_displayed; +#endif + bool received_msg; + bool displayed_expert_warning; } clear; /// @brief blindsigning state info. struct { blindsign_step_t step; } blind; + struct { + summarysign_step_t step; + } summary; } u; } apdu_sign_state_t; diff --git a/app/src/app_main.c b/app/src/app_main.c index 5d163733f..e3bf03342 100644 --- a/app/src/app_main.c +++ b/app/src/app_main.c @@ -80,11 +80,6 @@ dispatch(command_t *cmd) TZ_FAIL(EXC_CLASS); } - if (tz_ui_stream_get_cb_type() == SCREEN_QUIT) { - PRINTF("[ERROR] received instruction whilst on Quit screen\n"); - TZ_FAIL(EXC_UNEXPECTED_STATE); - } - // clang-format off switch (cmd->ins) { case INS_VERSION: f = handle_apdu_version; break; diff --git a/app/src/format.c b/app/src/format.c new file mode 100644 index 000000000..69bab1090 --- /dev/null +++ b/app/src/format.c @@ -0,0 +1,35 @@ +/* Tezos Ledger application - Tezos-specific formatting function set + + Copyright 2024 Functori + + With code excerpts from: + - Legacy Tezos app, Copyright 2019 Obsidian Systems + - Ledger Blue sample apps, Copyright 2016 Ledger + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. */ + +#include + +#include "format.h" + +bool +tz_mutez_to_string(char *obuf, size_t olen, uint64_t amount) +{ + if (!format_fpu64_trimmed(obuf, olen, amount, 6 /*DECIMALS*/)) { + memset(obuf, '\0', olen); + return false; + } + + strlcat(obuf, " XTZ", olen); + return true; +} diff --git a/app/src/format.h b/app/src/format.h new file mode 100644 index 000000000..17cb4e640 --- /dev/null +++ b/app/src/format.h @@ -0,0 +1,34 @@ +/* Tezos Ledger application - Tezos-specific formatting function set + + Copyright 2024 Functori + + With code excerpts from: + - Legacy Tezos app, Copyright 2019 Obsidian Systems + - Ledger Blue sample apps, Copyright 2016 Ledger + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. */ + +#pragma once +#include +#include +#include + +/** + * @brief Prints mutez as XTZ + * + * @param obuf: output buffer + * @param olen: length of the output buffer + * @param amount: amount in mutez + * @return bool: true on success + */ +bool tz_mutez_to_string(char *obuf, size_t olen, uint64_t amount); diff --git a/app/src/globals.c b/app/src/globals.c index 5f19ac788..7740d8287 100644 --- a/app/src/globals.c +++ b/app/src/globals.c @@ -45,3 +45,12 @@ toggle_expert_mode(void) tmp.expert_mode = !N_settings.expert_mode; nvm_write((void *)&N_settings, (void *)&tmp, sizeof(N_settings)); } + +void +toggle_blindsigning(void) +{ + settings_t tmp; + memcpy(&tmp, (void *)&N_settings, sizeof(tmp)); + tmp.blindsigning = !N_settings.blindsigning; + nvm_write((void *)&N_settings, (void *)&tmp, sizeof(N_settings)); +} diff --git a/app/src/globals.h b/app/src/globals.h index d852ed245..534ddad6c 100644 --- a/app/src/globals.h +++ b/app/src/globals.h @@ -39,51 +39,45 @@ #include "ui_commons.h" #include "ui_stream.h" #include "ui_home.h" -#include "ui_settings.h" #include "utils.h" -#include "parser/parser_state.h" -/** - * @brief Zeros out all application-specific globals and SDK-specific - * UI/exchange buffers. - */ -void init_globals(void); +#ifdef HAVE_BAGL +#include "ui_settings.h" +#endif -/// Toggles the persisted expert_mode setting -void toggle_expert_mode(void); +#include "parser/parser_state.h" #define MAX_APDU_SIZE 235 #define MAX_SIGNATURE_SIZE 100 #define ERROR_CODE_SIZE 15 -/** - * @brief Home screen pages in order - * - */ -typedef enum { -#ifdef HAVE_BAGL - SCREEN_HOME = 0, -#else - SCREEN_CLEAR_SIGN = 0, - SCREEN_BLIND_SIGN, -#endif - SCREEN_VERSION, - SCREEN_SETTINGS, - SCREEN_QUIT, -} screen_t; /** * @brief State of the app * */ typedef enum { - ST_IDLE, /// Idle state - ST_CLEAR_SIGN, /// Clearsigning an operation - ST_BLIND_SIGN, /// blindisigning an operation - ST_PROMPT, /// Waiting for user prompt - ST_SWAP_SIGN, /// Performing swap operations - ST_ERROR /// In error state. + ST_IDLE, /// Idle state + ST_CLEAR_SIGN, /// Clear signing an operation + ST_BLIND_SIGN, /// Blind signing an operation + ST_SUMMARY_SIGN, /// Summary signing an operation + ST_PROMPT, /// Waiting for user prompt + ST_SWAP_SIGN, /// Performing swap operations + ST_ERROR /// In error state. } main_step_t; +#ifdef TARGET_NANOS +#define NB_MAX_SCREEN_ALLOWED 20 +#elif defined(HAVE_BAGL) +#define NB_MAX_SCREEN_ALLOWED 12 +#endif + +#ifdef HAVE_NBGL +typedef enum { + REASON_NONE = 0, + REASON_PARSING_ERROR = 1 +} blindsign_reason_t; +#endif + /** * @brief Global structure holding state of operations and buffer of the data * to be processed. @@ -91,7 +85,6 @@ typedef enum { */ typedef struct { /* State */ - main_step_t step; /// Current operational state of app. tz_ui_stream_t stream; /// UX and display related information bip32_path_with_curve_t path_with_curve; /// Derivation path union { @@ -112,18 +105,24 @@ typedef struct { struct { bagl_element_t bagls[4 + TZ_SCREEN_LINES_11PX]; } ux; /// Config for history screens for nano devices. + char expert_mode_state[10]; /// Expert mode text: "ENAELED", "DISABLED" + char blindsign_state_desc[14]; /// Blindsigning text: "For Large Tx", + /// "ON" , "OFF" #endif #ifdef HAVE_NBGL - char error_code[ERROR_CODE_SIZE]; /// Error codes to be displayed in - /// blindsigning. + blindsign_reason_t + blindsign_reason; /// Blindsigning flow Summary or parsing error. + char error_code[ERROR_CODE_SIZE]; /// Error code for parsing error. #endif + main_step_t step; /// Current operational state of app. } globals_t; /* Settings */ typedef struct { - bool expert_mode; /// enable expert mode -} settings_t; /// Special settings available in the app. + bool expert_mode; /// enable expert mode + bool blindsigning; /// Blindsign status +} settings_t; /// Special settings available in the app. extern globals_t global; @@ -136,3 +135,16 @@ extern unsigned int app_stack_canary; // From SDK * */ extern unsigned char G_io_seproxyhal_spi_buffer[IO_SEPROXYHAL_BUFFER_SIZE_B]; + +/** + * @brief Zeros out all application-specific globals and SDK-specific + * UI/exchange buffers. + */ +void init_globals(void); + +/// Toggles the persisted expert_mode setting +void toggle_expert_mode(void); + +/// Toggles the persisted blindsign setting between "ON", +/// "OFF". +void toggle_blindsigning(void); diff --git a/app/src/handle_swap.c b/app/src/handle_swap.c index 9f7a8a48d..daaa9f879 100644 --- a/app/src/handle_swap.c +++ b/app/src/handle_swap.c @@ -122,7 +122,7 @@ swap_handle_get_printable_amount(get_printable_amount_parameters_t *params) typedef struct { uint64_t amount; - uint64_t fee; + uint64_t fee; /// Contains transaction fees plus reveal fees, if any. char destination_address[ADDRESS_MAX_SIZE]; } swap_transaction_parameters_t; @@ -204,8 +204,8 @@ swap_check_validity(void) TZ_ASSERT(EXC_REJECT, op->nb_reveal <= 1); TZ_ASSERT(EXC_REJECT, (op->batch_index - op->nb_reveal) == 1); TZ_ASSERT(EXC_REJECT, op->last_tag == TZ_OPERATION_TAG_TRANSACTION); - TZ_ASSERT(EXC_REJECT, op->last_amount == G_swap_params.amount); - TZ_ASSERT(EXC_REJECT, op->last_fee == G_swap_params.fee); + TZ_ASSERT(EXC_REJECT, op->total_amount == G_swap_params.amount); + TZ_ASSERT(EXC_REJECT, op->total_fee == G_swap_params.fee); tz_format_address(op->destination, 22, dstaddr, sizeof(dstaddr)); diff --git a/app/src/parser/micheline_parser.c b/app/src/parser/micheline_parser.c index a7209c77c..0b33a9d83 100644 --- a/app/src/parser/micheline_parser.c +++ b/app/src/parser/micheline_parser.c @@ -47,6 +47,7 @@ tz_micheline_parser_init(tz_parser_state *state) m->frame = m->stack; m->stack[0].step = TZ_MICHELINE_STEP_TAG; + m->is_unit = false; } /** @@ -373,6 +374,12 @@ tz_micheline_parser_step(tz_parser_state *state) } m->frame->step = TZ_MICHELINE_STEP_PRIM_NAME; m->frame->step_prim.op = op; + // clang-format off + m->is_unit = ((m->frame == m->stack) + && (op == TZ_MICHELSON_OP_Unit) + && (m->frame->step_prim.nargs == 0) + && (!m->frame->step_prim.annot)); + // clang-format on break; case TZ_MICHELINE_STEP_PRIM_NAME: if (m->frame->step_prim.wrap && m->frame->step_prim.first) { diff --git a/app/src/parser/micheline_state.h b/app/src/parser/micheline_state.h index d77ddaf5a..6584396d7 100644 --- a/app/src/parser/micheline_state.h +++ b/app/src/parser/micheline_state.h @@ -129,4 +129,5 @@ typedef struct { stack[TZ_MICHELINE_STACK_DEPTH]; /// stack of frames tz_micheline_parser_frame *frame; /// current frame /// init == stack, NULL when done + bool is_unit; /// indicates whether the micheline read is a unit } tz_micheline_state; diff --git a/app/src/parser/operation_parser.c b/app/src/parser/operation_parser.c index 9703d2ca6..9dab46834 100644 --- a/app/src/parser/operation_parser.c +++ b/app/src/parser/operation_parser.c @@ -319,11 +319,11 @@ tz_operation_parser_init(tz_parser_state *state, uint16_t size, memset(&state->operation.destination, 0, 22); op->batch_index = 0; #ifdef HAVE_SWAP - op->last_tag = TZ_OPERATION_TAG_END; - op->nb_reveal = 0; - op->last_fee = 0; - op->last_amount = 0; + op->last_tag = TZ_OPERATION_TAG_END; + op->nb_reveal = 0; #endif // HAVE_SWAP + op->total_fee = 0; + op->total_amount = 0; op->frame = op->stack; op->stack[0].stop = size; if (!skip_magic) { @@ -573,6 +573,9 @@ tz_step_read_micheline(tz_parser_state *state) } tz_micheline_parser_step(state); if (state->errno == TZ_BLO_DONE) { + if (state->micheline.is_unit) { + state->field_info.is_field_complex = false; + } if ((op->frame->stop != 0) && (state->ofs != op->frame->stop)) { tz_raise(TOO_LARGE); } @@ -662,22 +665,20 @@ tz_step_read_num(tz_parser_state *state) &op->frame->step_read_num.state, b, op->frame->step_read_num.natural)); if (op->frame->step_read_num.state.stop) { -#ifdef HAVE_SWAP uint64_t value; if (!tz_string_to_mutez(state->buffers.num.decimal, &value)) { tz_raise(INVALID_DATA); } switch (op->frame->step_read_num.kind) { case TZ_OPERATION_FIELD_AMOUNT: - op->last_amount = value; + op->total_amount += value; break; case TZ_OPERATION_FIELD_FEE: - op->last_fee = value; + op->total_fee += value; break; default: break; } -#endif // HAVE_SWAP if (op->frame->step_read_num.skip) { tz_must(pop_frame(state)); tz_continue; diff --git a/app/src/parser/operation_state.h b/app/src/parser/operation_state.h index f741f1bb9..cd2a1e81c 100644 --- a/app/src/parser/operation_state.h +++ b/app/src/parser/operation_state.h @@ -243,9 +243,9 @@ typedef struct { uint8_t destination[22]; /// saved for entrypoint dispatch uint16_t batch_index; /// to print a sequence number #ifdef HAVE_SWAP - tz_operation_tag last_tag; /// last operations tag encountered - uint16_t nb_reveal; /// number of reveal encountered - uint64_t last_fee; /// last fee encountered - uint64_t last_amount; /// last amount encountered -#endif // HAVE_SWAP + tz_operation_tag last_tag; /// last operations tag encountered + uint16_t nb_reveal; /// number of reveal encountered +#endif // HAVE_SWAP + uint64_t total_fee; /// last fee encountered + uint64_t total_amount; /// last amount encountered } tz_operation_state; diff --git a/app/src/parser/parser_state.h b/app/src/parser/parser_state.h index 891c65c92..425405623 100644 --- a/app/src/parser/parser_state.h +++ b/app/src/parser/parser_state.h @@ -90,7 +90,6 @@ typedef struct { tz_parser_regs regs; /// parser register /// common fields to communicate with caller - tz_parser_result errno; /// current parser result struct { char field_name[TZ_FIELD_NAME_SIZE]; /// name of the last field /// parsed @@ -100,14 +99,15 @@ typedef struct { } field_info; /// information of the last field parsed // common singleton buffers int ofs; /// offset for the parser + /// input type specific state + tz_micheline_state micheline; /// micheline parser state + tz_operation_state operation; /// operation parser state struct { tz_num_parser_buffer num; /// number parser buffer uint8_t capture[TZ_CAPTURE_BUFFER_SIZE]; /// capture buffer is used /// to store string values } buffers; - /// input type specific state - tz_micheline_state micheline; /// micheline parser state - tz_operation_state operation; /// operation parser state + tz_parser_result errno; /// current parser result } tz_parser_state; /** diff --git a/app/src/ui_home.c b/app/src/ui_home.c index 5b2d145ad..b118c86cb 100644 --- a/app/src/ui_home.c +++ b/app/src/ui_home.c @@ -22,56 +22,48 @@ #include "app_main.h" #include "globals.h" #include "ui_home_nbgl.h" +#include "os.h" +#include "ux.h" #ifdef HAVE_BAGL -/* Prototypes */ +#include "glyphs.h" -static void cb(tz_ui_cb_type_t cb_type); +UX_STEP_NOCB(ux_menu_ready_step, pnn, + {&C_tezos_16px, "Application", "is ready"}); +UX_STEP_NOCB(ux_menu_version_step, bn, {"Version", APPVERSION}); +UX_STEP_CB(ux_menu_settings_step, pb, ui_settings_init(SETTINGS_HOME_PAGE), + {&C_icon_coggle, "Settings"}); +UX_STEP_CB(ux_menu_exit_step, pb, app_exit(), {&C_icon_dashboard_x, "Quit"}); -/** - * @brief Callback for home screen stream. - * - * @param cb_type one of the 4 home screens (HOME, VERSION, SETTINGS, QUIT) */ -static void -cb(tz_ui_cb_type_t cb_type) -{ - FUNC_ENTER(("cb_type=%u", cb_type)); +// FLOW for the main menu: +// #1 screen: ready +// #2 screen: version of the app +// #3 screen: Settings menu +// #4 screen: quit +UX_FLOW(ux_menu_main_flow, &ux_menu_ready_step, &ux_menu_version_step, + &ux_menu_settings_step, &ux_menu_exit_step, FLOW_LOOP); - switch (cb_type) { - case SCREEN_HOME: - case SCREEN_VERSION: - break; - case SCREEN_SETTINGS: - ui_settings_init(SETTINGS_HOME_PAGE); - break; - case SCREEN_QUIT: - app_exit(); +void +ui_home_init(void) +{ + FUNC_ENTER(("void")); + // reserve a display stack slot if none yet + if (G_ux.stack_count == 0) { + ux_stack_push(); } + ux_flow_init(0, ux_menu_main_flow, NULL); + FUNC_LEAVE(); } - #endif // HAVE_BAGL +#ifdef HAVE_NBGL void ui_home_init(void) { FUNC_ENTER(("void")); -#ifdef HAVE_BAGL - tz_ui_stream_init(cb); - tz_ui_stream_push(SCREEN_HOME, "Application", "is ready", - TZ_UI_LAYOUT_HOME_N, TZ_UI_ICON_NONE); - tz_ui_stream_push(SCREEN_VERSION, "Version", APPVERSION, - TZ_UI_LAYOUT_HOME_BN, TZ_UI_ICON_NONE); - tz_ui_stream_push(SCREEN_SETTINGS, "Settings", "", TZ_UI_LAYOUT_HOME_PB, - TZ_UI_ICON_SETTINGS); - tz_ui_stream_push(SCREEN_QUIT, "Quit?", "", TZ_UI_LAYOUT_HOME_PB, - TZ_UI_ICON_DASHBOARD); - tz_ui_stream_close(); - tz_ui_stream_start(); -#elif defined(HAVE_NBGL) - tz_ui_home_redisplay(); -#endif - + tz_ui_home_redisplay(INIT_HOME_PAGE); FUNC_LEAVE(); } +#endif // HAVE_NBGL diff --git a/app/src/ui_home_nbgl.c b/app/src/ui_home_nbgl.c index cf718b653..44d740ad8 100644 --- a/app/src/ui_home_nbgl.c +++ b/app/src/ui_home_nbgl.c @@ -33,16 +33,19 @@ void tz_ui_home_redisplay(void); // ----------------------------------------------------------- // --------------------- SETTINGS MENU ----------------------- // ----------------------------------------------------------- -#define SETTING_INFO_NB 2 -static const char *const infoTypes[] = {"Version", "Developer"}; -static const char *const infoContents[] - = {APPVERSION, "Trilitech Kanvas Limited et al."}; +#define SETTING_INFO_NB 3 + +static const char *const infoTypes[] = {"Version", "Developer", "Contact"}; +static const char *const infoContents[] = { + APPVERSION, "Trilitech Kanvas Limited et al.", "ledger-tezos@trili.tech"}; enum { EXPERT_MODE_TOKEN = FIRST_USER_TOKEN, + BLIND_SIGNING_TOKEN }; enum { EXPERT_MODE_TOKEN_ID = 0, + BLIND_SIGNING_TOKEN_ID, SETTINGS_SWITCHES_NB }; @@ -57,7 +60,12 @@ controls_callback(int token, __attribute__((unused)) uint8_t index, __attribute__((unused)) int page) { uint8_t switch_value; - if (token == EXPERT_MODE_TOKEN) { + if (token == BLIND_SIGNING_TOKEN) { + switch_value = !N_settings.blindsigning; + toggle_blindsigning(); + switches[BLIND_SIGNING_TOKEN_ID].initState + = (nbgl_state_t)(switch_value); + } else if (token == EXPERT_MODE_TOKEN) { switch_value = !N_settings.expert_mode; toggle_expert_mode(); switches[EXPERT_MODE_TOKEN_ID].initState @@ -89,6 +97,14 @@ initSettings(void) switches[EXPERT_MODE_TOKEN_ID].subText = "Enable expert mode signing"; switches[EXPERT_MODE_TOKEN_ID].token = EXPERT_MODE_TOKEN; switches[EXPERT_MODE_TOKEN_ID].tuneId = TUNE_TAP_CASUAL; + + switches[BLIND_SIGNING_TOKEN_ID].initState + = (nbgl_state_t)(N_settings.blindsigning); + switches[BLIND_SIGNING_TOKEN_ID].text = "Blind signing"; + switches[BLIND_SIGNING_TOKEN_ID].subText + = "Enable transaction blind signing"; + switches[BLIND_SIGNING_TOKEN_ID].token = BLIND_SIGNING_TOKEN; + switches[BLIND_SIGNING_TOKEN_ID].tuneId = TUNE_TAP_CASUAL; } void diff --git a/app/src/ui_home_nbgl.h b/app/src/ui_home_nbgl.h index cd9eaeb5d..b57104761 100644 --- a/app/src/ui_home_nbgl.h +++ b/app/src/ui_home_nbgl.h @@ -22,6 +22,6 @@ #ifdef HAVE_NBGL -void tz_ui_home_redisplay(void); +void tz_ui_home_redisplay(uint8_t page); #endif diff --git a/app/src/ui_settings.c b/app/src/ui_settings.c index b6ff5c9de..6b5906f65 100644 --- a/app/src/ui_settings.c +++ b/app/src/ui_settings.c @@ -19,46 +19,64 @@ See the License for the specific language governing permissions and limitations under the License. */ +#ifdef HAVE_BAGL #include "globals.h" -static void cb(tz_ui_cb_type_t cb_type); - -#define EXPERT_MODE 0x01 -#define BACK 0x02 +static void +expert_mode_toggle() +{ + FUNC_ENTER(); + toggle_expert_mode(); + ui_settings_init(SETTINGS_HOME_PAGE); + FUNC_LEAVE(); +} static void -cb(tz_ui_cb_type_t cb_type) +blindsign_toggle() { - FUNC_ENTER(("cb_type=%u", cb_type)); - switch (cb_type) { - case EXPERT_MODE: - toggle_expert_mode(); - ui_settings_init(SETTINGS_HOME_PAGE); - break; - case BACK: - ui_home_init(); - break; - } + FUNC_ENTER(); + toggle_blindsigning(); + ui_settings_init(SETTINGS_BLINDSIGN_PAGE); + FUNC_LEAVE(); } +UX_STEP_CB(ux_expert_mode_step, bn, expert_mode_toggle(), + {"Expert mode", global.expert_mode_state}); +UX_STEP_CB(ux_blindsign_step, bn, blindsign_toggle(), + {"Allow Blindsigning", global.blindsign_state_desc}); +UX_STEP_CB(ux_back_step, pb, ui_home_init(), {&C_icon_back, "Back"}); + +UX_FLOW(ux_expert_mode_flow, &ux_expert_mode_step, &ux_blindsign_step, + &ux_back_step, FLOW_LOOP); + void ui_settings_init(int16_t page) { - const char *exp_mode = "DISABLED"; - - FUNC_ENTER(("void")); + FUNC_ENTER(("%d, Expert Mode: %d, BlindSigning Mode: %d", page, + N_settings.expert_mode, N_settings.blindsigning)); if (N_settings.expert_mode) { - exp_mode = "ENABLED"; + strncpy(global.expert_mode_state, "ENABLED", + sizeof(global.expert_mode_state)); + } else { + strncpy(global.expert_mode_state, "DISABLED", + sizeof(global.expert_mode_state)); } - tz_ui_stream_init(cb); - tz_ui_stream_push(EXPERT_MODE, "Expert mode", exp_mode, - TZ_UI_LAYOUT_HOME_BN, TZ_UI_ICON_NONE); - tz_ui_stream_push(BACK, "Back", "", TZ_UI_LAYOUT_HOME_PB, - TZ_UI_ICON_BACK); - tz_ui_stream_close(); - global.stream.current = page; - tz_ui_stream_start(); + if (N_settings.blindsigning) { + strncpy(global.blindsign_state_desc, "ON", + sizeof(global.blindsign_state_desc)); + } else { + strncpy(global.blindsign_state_desc, "OFF", + sizeof(global.blindsign_state_desc)); + } + + if (page == SETTINGS_HOME_PAGE) { + ux_flow_init(0, ux_expert_mode_flow, &ux_expert_mode_step); + } else if (page == SETTINGS_BLINDSIGN_PAGE) { + ux_flow_init(0, ux_expert_mode_flow, &ux_blindsign_step); + } FUNC_LEAVE(); } + +#endif diff --git a/app/src/ui_settings.h b/app/src/ui_settings.h index 97efc6d64..37ccf05e7 100644 --- a/app/src/ui_settings.h +++ b/app/src/ui_settings.h @@ -1,10 +1,29 @@ -/* - * - */ +/* Tezos Ledger application - Initialize Nano settings + + Copyright 2023 TriliTech + + With code excerpts from: + - Legacy Tezos app, Copyright 2019 Obsidian Systems + - Legacy Tezos app, Copyright 2023 Ledger + - Ledger Blue sample apps, Copyright 2016 Ledger + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. */ +#ifdef HAVE_BAGL #pragma once -#define SETTINGS_HOME_PAGE 0 +#define SETTINGS_HOME_PAGE 0 +#define SETTINGS_BLINDSIGN_PAGE 1 /** * @brief Initialize settings screen for nano devices. Displays status of @@ -14,3 +33,4 @@ * Settings. */ void ui_settings_init(int16_t page); +#endif // HAVE_BAGL diff --git a/app/src/ui_stream.c b/app/src/ui_stream.c index 1a7334b3d..e3501ed08 100644 --- a/app/src/ui_stream.c +++ b/app/src/ui_stream.c @@ -35,14 +35,7 @@ static void change_screen_right(void); static void redisplay(void); const bagl_icon_details_t C_icon_rien = {0, 0, 1, NULL, NULL}; -#endif // HAVE_BAGL -void drop_last_screen(void); -void push_str(const char *text, size_t len, char **out); - -// Model - -#ifdef HAVE_BAGL void tz_ui_stream_init(void (*cb)(tz_ui_cb_type_t cb_type)) { @@ -61,62 +54,7 @@ tz_ui_stream_init(void (*cb)(tz_ui_cb_type_t cb_type)) FUNC_LEAVE(); } -#endif - -#ifdef HAVE_BAGL -void -tz_ui_stream_close(void) -{ - tz_ui_stream_t *s = &global.stream; - - FUNC_ENTER(("void")); - if (s->full) { - PRINTF("trying to close already closed stream display"); - THROW(EXC_UNKNOWN); - } - s->full = true; - FUNC_LEAVE(); -} -#endif // HAVE_BAGL - -size_t -tz_ui_stream_push_all(tz_ui_cb_type_t cb_type, const char *title, - const char *value, tz_ui_layout_type_t layout_type, - tz_ui_icon_t icon) -{ - size_t obuflen; - size_t i = 0; - - FUNC_ENTER(("cb_type=%d title=%s value=%s", cb_type, title, value)); - - obuflen = strlen(value); - do { - i += tz_ui_stream_push(cb_type, title, value + i, layout_type, icon); - PRINTF("[DEBUG] pushed %d in total\n", i); - } while (i < obuflen); - FUNC_LEAVE(); - return i; -} - -size_t -tz_ui_stream_push(tz_ui_cb_type_t cb_type, const char *title, - const char *value, tz_ui_layout_type_t layout_type, - tz_ui_icon_t icon) -{ - return tz_ui_stream_pushl(cb_type, title, value, -1, layout_type, icon); -} - -tz_ui_cb_type_t -tz_ui_stream_get_cb_type(void) -{ - tz_ui_stream_t *s = &global.stream; - size_t bucket = s->current % TZ_UI_STREAM_HISTORY_SCREENS; - - return s->screens[bucket].cb_type; -} - -#ifdef HAVE_BAGL static void pred(void) { @@ -561,26 +499,3 @@ drop_last_screen(void) TZ_POSTAMBLE; } #endif - -void -push_str(const char *text, size_t len, char **out) -{ - bool can_fit = false; - - TZ_PREAMBLE(("%s", text)); - - if (len == 0) { - *out = NULL; - TZ_SUCCEED(); - } - - TZ_CHECK(ui_strings_can_fit(len, &can_fit)); - while (!can_fit) { - TZ_CHECK(drop_last_screen()); - TZ_CHECK(ui_strings_can_fit(len, &can_fit)); - } - - TZ_CHECK(ui_strings_push(text, len, out)); - - TZ_POSTAMBLE; -} diff --git a/app/src/ui_stream.h b/app/src/ui_stream.h index 6b96b4d3a..8ef414422 100644 --- a/app/src/ui_stream.h +++ b/app/src/ui_stream.h @@ -80,8 +80,12 @@ */ typedef uint8_t tz_ui_cb_type_t; -#define TZ_UI_STREAM_CB_NOCB 0x00u +#define TZ_UI_STREAM_CB_NOCB 0x00u +#ifdef HAVE_NBGL +#define TZ_UI_STREAM_CB_SUMMARY 0x0Du +#endif #define TZ_UI_STREAM_CB_BLINDSIGN 0x0Eu +#define TZ_UI_STREAM_CB_VALIDATE 0x0Fu #define TZ_UI_STREAM_CB_REFILL 0xEFu #define TZ_UI_STREAM_CB_MAINMASK 0xF0u #define TZ_UI_STREAM_CB_EXPERT_MODE_FIELD 0xFAu @@ -139,12 +143,12 @@ typedef struct { #ifdef HAVE_BAGL tz_ui_icon_t icon; /// Icon to display on the screen. tz_ui_layout_type_t - layout_type; /// Layout type for the screen. CAN BP, BNP, NP, PB or - /// HOME_X where X can be one of the BP, BNP, PB. - char *title; /// Title to display on the screen. - char *body[TZ_UI_STREAM_CONTENTS_LINES]; /// Body to display on the - /// screen (Below title). - short body_len; /// number of non-empty lines in the body. + layout_type; /// Layout type for the screen. CAN BP, BNP, NP, PB or + /// HOME_X where X can be one of the BP, BNP, PB. + uint8_t body_len; /// number of non-empty lines in the body. + char *title; /// Title to display on the screen. + char *body[TZ_UI_STREAM_CONTENTS_LINES]; /// Body to display on the + /// screen (Below title). #else nbgl_layoutTagValue_t pairs[NB_MAX_DISPLAYED_PAIRS_IN_REVIEW]; /// Title-value pairs to be @@ -286,3 +290,7 @@ void tz_reject(void); */ void tz_reject_ui(void); #endif + +void drop_last_screen(void); + +void push_str(const char *text, size_t len, char **out); diff --git a/app/src/ui_stream_common.c b/app/src/ui_stream_common.c new file mode 100644 index 000000000..e82bd338f --- /dev/null +++ b/app/src/ui_stream_common.c @@ -0,0 +1,96 @@ +/* Tezos Ledger application - Generic stream display + + Copyright 2023 Nomadic Labs + Copyright 2023 Functori + Copyright 2023 TriliTech + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. */ +#include "exception.h" +#include "globals.h" +#include "ui_strings.h" +#include "ui_stream.h" + +size_t +tz_ui_stream_push_all(tz_ui_cb_type_t cb_type, const char *title, + const char *value, tz_ui_layout_type_t layout_type, + tz_ui_icon_t icon) +{ + size_t obuflen; + size_t i = 0; + + FUNC_ENTER(("cb_type=%d title=%s value=%s", cb_type, title, value)); + + obuflen = strlen(value); + do { + i += tz_ui_stream_push(cb_type, title, value + i, layout_type, icon); + PRINTF("[DEBUG] pushed %d in total\n", i); + } while (i < obuflen); + + FUNC_LEAVE(); + return i; +} + +size_t +tz_ui_stream_push(tz_ui_cb_type_t cb_type, const char *title, + const char *value, tz_ui_layout_type_t layout_type, + tz_ui_icon_t icon) +{ + return tz_ui_stream_pushl(cb_type, title, value, -1, layout_type, icon); +} + +tz_ui_cb_type_t +tz_ui_stream_get_cb_type(void) +{ + tz_ui_stream_t *s = &global.stream; + size_t bucket = s->current % TZ_UI_STREAM_HISTORY_SCREENS; + + return s->screens[bucket].cb_type; +} + +void +push_str(const char *text, size_t len, char **out) +{ + bool can_fit = false; + + TZ_PREAMBLE(("%s", text)); + + if (len == 0) { + *out = NULL; + TZ_SUCCEED(); + } + + TZ_CHECK(ui_strings_can_fit(len, &can_fit)); + while (!can_fit) { + TZ_CHECK(drop_last_screen()); + TZ_CHECK(ui_strings_can_fit(len, &can_fit)); + } + + TZ_CHECK(ui_strings_push(text, len, out)); + + TZ_POSTAMBLE; +} + +void +tz_ui_stream_close(void) +{ + tz_ui_stream_t *s = &global.stream; + + FUNC_ENTER(("full=%d", s->full)); + if (s->full) { + PRINTF("trying to close already closed stream display"); + THROW(EXC_UNKNOWN); + } + s->full = true; + + FUNC_LEAVE(); +} diff --git a/app/src/ui_stream_nbgl.c b/app/src/ui_stream_nbgl.c index 47c05a98e..ceda988f5 100644 --- a/app/src/ui_stream_nbgl.c +++ b/app/src/ui_stream_nbgl.c @@ -28,21 +28,10 @@ bool has_final_screen(void); void tz_ui_stream_start(void); void tz_transaction_choice(bool getMorePairs); -void drop_last_screen(void); -void push_str(const char *text, size_t len, char **out); -void switch_to_blindsigning(const char *err_type, const char *err_code); - -void -tz_cancel_ui(void) -{ - tz_ui_stream_t *s = &global.stream; - FUNC_ENTER(("void")); - - size_t bucket = s->current % TZ_UI_STREAM_HISTORY_SCREENS; - switch_to_blindsigning(s->screens[bucket].pairs[0].item, - s->screens[bucket].pairs[0].value); - FUNC_LEAVE(); -} +void drop_last_screen(void); +void push_str(const char *text, size_t len, char **out); +void switch_to_blindsigning_on_error(void); +static void ui_stream_init(void); void tz_reject(void) @@ -78,66 +67,58 @@ tz_reject_ui(void) } static void -start_blindsign(void) -{ - FUNC_ENTER(("void")); - - tz_ui_stream_t *s = &global.stream; - s->cb(TZ_UI_STREAM_CB_BLINDSIGN); - - FUNC_LEAVE(); -} - -static void -blindsign_choice(bool confirm) +blindsign_skip_callback(void) { - TZ_PREAMBLE(("void")); - if (confirm) { - start_blindsign(); - } else { - tz_reject_ui(); + TZ_PREAMBLE(("Blindsign reason: %d", global.blindsign_reason)); + + if (global.blindsign_reason == REASON_NONE) { + tz_ui_stream_close(); + tz_ui_stream_t *s = &global.stream; + s->cb(TZ_UI_STREAM_CB_SUMMARY); + } else if (global.blindsign_reason == REASON_PARSING_ERROR) { + switch_to_blindsigning_on_error(); } TZ_POSTAMBLE; } static void -blindsign_splash(bool confirm) +blindsign_choice(bool confirm) { TZ_PREAMBLE(("void")); if (confirm) { + global.step = ST_BLIND_SIGN; tz_reject_ui(); } else { - char blindsign_msg[150] - = "Transaction could not be decoded correctly. Learn More:\n" - "bit.ly/ledger-tez\nERROR: "; - memcpy(blindsign_msg + strlen(blindsign_msg), global.error_code, - ERROR_CODE_SIZE); - nbgl_useCaseChoice(&C_Important_Circle_64px, - "The transaction cannot be trusted", blindsign_msg, - "I accept the risk", "Reject transaction", - blindsign_choice); + tz_ui_stream_t *s = &global.stream; + + TZ_ASSERT(EXC_UNEXPECTED_STATE, + global.blindsign_reason != REASON_NONE); + s->cb(TZ_UI_STREAM_CB_BLINDSIGN); } TZ_POSTAMBLE; } void -switch_to_blindsigning(__attribute__((unused)) const char *err_type, - const char *err_code) +switch_to_blindsigning_on_error(void) { TZ_PREAMBLE(("void")); - PRINTF("[DEBUG] refill_error: global.step = %d\n %s", global.step, - err_code); TZ_ASSERT(EXC_UNEXPECTED_STATE, global.step == ST_CLEAR_SIGN); global.keys.apdu.sign.step = SIGN_ST_WAIT_USER_INPUT; - global.step = ST_BLIND_SIGN; - memcpy(global.error_code, err_code, sizeof(global.error_code)); - nbgl_useCaseChoice(&C_Important_Circle_64px, "Security risk detected", - "It may not be safe to sign this transaction. To " - "continue, you'll need to review the risk.", - "Back to safety", "Review risk", blindsign_splash); + // copy error code + PRINTF("[DEBUG] refill_error: global.step = %d\n %s", global.step, + global.error_code); + char blindsign_msg[60] = "Learn More: bit.ly/ledger-tez\nERROR: "; + + strncpy(blindsign_msg + strlen(blindsign_msg), global.error_code, + ERROR_CODE_SIZE); + // Show error msg and ask user to proceed to blindsign + nbgl_useCaseChoice(&C_Important_Circle_64px, + "The transaction cannot be decoded", blindsign_msg, + "Reject transaction", "Proceed to Blindsign", + blindsign_choice); TZ_POSTAMBLE; } @@ -237,7 +218,13 @@ tz_ui_stream_cb(void) tz_ui_stream_t *s = &global.stream; tz_ui_stream_display_t *c = &s->current_screen; - nbgl_useCaseReviewStreamingContinue(&c->list, tz_transaction_choice); + if (N_settings.blindsigning) { + nbgl_useCaseReviewStreamingContinueExt( + &c->list, tz_transaction_choice, blindsign_skip_callback); + } else { + nbgl_useCaseReviewStreamingContinue(&c->list, + tz_transaction_choice); + } } FUNC_LEAVE(); } @@ -253,7 +240,6 @@ tz_ui_stream(void) } FUNC_LEAVE(); - return; } void @@ -282,16 +268,11 @@ tz_transaction_choice(bool getMorePairs) FUNC_LEAVE(); } - -void -tz_ui_stream_init(void (*cb)(tz_ui_cb_type_t cb_type)) +static void +ui_stream_init(void) { tz_ui_stream_t *s = &global.stream; - FUNC_ENTER(("cb=%p", cb)); - memset(s, 0x0, sizeof(*s)); - memset(global.error_code, '\0', sizeof(global.error_code)); - s->cb = cb; s->full = false; s->last = 0; s->current = -1; @@ -299,7 +280,21 @@ tz_ui_stream_init(void (*cb)(tz_ui_cb_type_t cb_type)) s->pressed_right = false; ui_strings_init(); +} +void +tz_ui_stream_init(void (*cb)(tz_ui_cb_type_t cb_type)) +{ + tz_ui_stream_t *s = &global.stream; + memset(s, 0x0, sizeof(*s)); + FUNC_ENTER(("cb=%p", cb)); + ui_stream_init(); + s->cb = cb; + global.blindsign_reason = REASON_NONE; + memset(&global.error_code, '\0', ERROR_CODE_SIZE); nbgl_operationType_t op_type = TYPE_TRANSACTION; + if (N_settings.blindsigning) { + op_type |= SKIPPABLE_OPERATION; + } nbgl_useCaseReviewStreamingStart(op_type, &C_tezos, "Review request to sign operation", NULL, tz_transaction_choice); @@ -315,21 +310,6 @@ tz_ui_stream_start(void) FUNC_LEAVE(); } -void -tz_ui_stream_close(void) -{ - tz_ui_stream_t *s = &global.stream; - - FUNC_ENTER(("full=%d", s->full)); - if (s->full) { - PRINTF("trying to close already closed stream display"); - THROW(EXC_UNKNOWN); - } - s->full = true; - - FUNC_LEAVE(); -} - bool tz_ui_nav_cb(void) { @@ -374,21 +354,22 @@ tz_ui_nav_cb(void) size_t bucket = s->current % TZ_UI_STREAM_HISTORY_SCREENS; - if (tz_ui_stream_get_cb_type() == TZ_UI_STREAM_CB_CANCEL) { - // We hit an error in the parsing workflow... - tz_cancel_ui(); + switch (tz_ui_stream_get_cb_type()) { + case TZ_UI_STREAM_CB_CANCEL: + switch_to_blindsigning_on_error(); result = false; - } else if (tz_ui_stream_get_cb_type() - == TZ_UI_STREAM_CB_EXPERT_MODE_ENABLE) { + break; + case TZ_UI_STREAM_CB_EXPERT_MODE_ENABLE: tz_enable_expert_mode_ui(); result = false; - } else if (tz_ui_stream_get_cb_type() - == TZ_UI_STREAM_CB_EXPERT_MODE_FIELD) { + break; + case TZ_UI_STREAM_CB_EXPERT_MODE_FIELD: expert_mode_splash(); s->current--; s->screens[bucket].cb_type = TZ_UI_STREAM_CB_NOCB; result = false; - } else { + break; + default: c->list.pairs = s->screens[bucket].pairs; c->list.callback = NULL; c->list.startIndex = 0; @@ -396,6 +377,7 @@ tz_ui_nav_cb(void) c->list.smallCaseForValue = false; c->list.wrapping = true; result = true; + break; } } diff --git a/app/src/ui_strings.c b/app/src/ui_strings.c index fcf14986d..f3818f50a 100644 --- a/app/src/ui_strings.c +++ b/app/src/ui_strings.c @@ -143,6 +143,7 @@ ui_strings_push(const char *in, size_t len, char **out) PRINT_STRINGS; /* Preconditions */ + PRINTF("[DEBUG] in = %p, out = %p\n", in, *out); TZ_ASSERT(EXC_MEMORY_ERROR, (*out == NULL)); TZ_ASSERT_NOTNULL(in); TZ_ASSERT(EXC_MEMORY_ERROR, (len > 0)); diff --git a/app/src/ui_strings.h b/app/src/ui_strings.h index c29205ff5..c0b67b661 100644 --- a/app/src/ui_strings.h +++ b/app/src/ui_strings.h @@ -27,7 +27,7 @@ */ #ifdef TARGET_NANOS -#define BUFF_LEN 128 /// Ring buffer length of nanos +#define BUFF_LEN 114 /// Ring buffer length of nanos #elif defined(HAVE_BAGL) #define BUFF_LEN 256 /// Ring buffer length for nanos2/nanox #else diff --git a/tests/generate/gen_integration.ml b/tests/generate/gen_integration.ml index fb04e776e..bbf80db75 100644 --- a/tests/generate/gen_integration.ml +++ b/tests/generate/gen_integration.ml @@ -211,6 +211,14 @@ let operation_to_screens in List.mapi aux values in + let first_expert_mode_screen = + let is_first = ref true in + fun title -> + if !is_first then ( + is_first := false; + [ need_expert_mode_screen title ]) + else [] + in let screen_of_manager n (type t) (Manager_operation { source; fee; operation; storage_limit; _ } : t Kind.manager contents) = @@ -244,22 +252,21 @@ let operation_to_screens ] | Origination { delegate; script = { code; storage }; credit } -> aux ~kind:"Origination" - [ - make_screen ~title:"Balance" "%a" pp_tz credit; - make_screen ~title:"Delegate" "%a" - (pp_opt_field Tezos_crypto.Signature.Public_key_hash.pp) - delegate; - need_expert_mode_screen "Code"; + @@ [ + make_screen ~title:"Balance" "%a" pp_tz credit; + make_screen ~title:"Delegate" "%a" + (pp_opt_field Tezos_crypto.Signature.Public_key_hash.pp) + delegate; + ] + @ first_expert_mode_screen "Code" + @ [ make_screen ~title:"Code" "%a" pp_lazy_expr code; - need_expert_mode_screen "Storage"; make_screen ~title:"Storage" "%a" pp_lazy_expr storage; ] | Register_global_constant { value } -> aux ~kind:"Register global constant" - [ - need_expert_mode_screen "Value"; - make_screen ~title:"Value" "%a" pp_lazy_expr value; - ] + @@ first_expert_mode_screen "Value" + @ [ make_screen ~title:"Value" "%a" pp_lazy_expr value ] | Reveal public_key -> aux ~kind:"Reveal" [ @@ -278,11 +285,9 @@ let operation_to_screens && Protocol.Entrypoint_repr.is_default entrypoint then [] else - [ - make_screen ~title:"Entrypoint" "%a" Entrypoint.pp entrypoint; - need_expert_mode_screen "Parameter"; - make_screen ~title:"Parameter" "%a" pp_lazy_expr parameters; - ] + [ make_screen ~title:"Entrypoint" "%a" Entrypoint.pp entrypoint ] + @ first_expert_mode_screen "Parameter" + @ [ make_screen ~title:"Parameter" "%a" pp_lazy_expr parameters ] in aux ~kind:"Transaction" ([ @@ -293,10 +298,9 @@ let operation_to_screens | Transfer_ticket { contents; ty; ticketer; amount; destination; entrypoint } -> aux ~kind:"Transfer ticket" - [ - need_expert_mode_screen "Contents"; + @@ first_expert_mode_screen "Contents" + @ [ make_screen ~title:"Contents" "%a" pp_lazy_expr contents; - need_expert_mode_screen "Type"; make_screen ~title:"Type" "%a" pp_lazy_expr ty; make_screen ~title:"Ticketer" "%a" Contract.pp ticketer; make_screen ~title:"Amount" "%s" @@ -316,11 +320,13 @@ let operation_to_screens | Sc_rollup_execute_outbox_message { rollup; cemented_commitment; output_proof } -> aux ~kind:"SR: execute outbox message" - [ - make_screen ~title:"Rollup" "%a" Sc_rollup.Address.pp rollup; - make_screen ~title:"Commitment" "%a" Sc_rollup.Commitment.Hash.pp - cemented_commitment; - need_expert_mode_screen "Output proof"; + @@ [ + make_screen ~title:"Rollup" "%a" Sc_rollup.Address.pp rollup; + make_screen ~title:"Commitment" "%a" Sc_rollup.Commitment.Hash.pp + cemented_commitment; + ] + @ first_expert_mode_screen "Output proof" + @ [ make_screen ~title:"Output proof" "%a" pp_string_binary output_proof; ] | Sc_rollup_originate { kind; boot_sector; parameters_ty; whitelist } -> @@ -332,14 +338,13 @@ let operation_to_screens Tezos_crypto.Signature.Public_key_hash.pp whitelist in aux ~kind:"SR: originate" - ([ - make_screen ~title:"Kind" "%a" Sc_rollup.Kind.pp kind; - need_expert_mode_screen "Kernel"; - make_screen ~title:"Kernel" "%a" pp_string_binary boot_sector; - need_expert_mode_screen "Parameters"; - make_screen ~title:"Parameters" "%a" pp_lazy_expr parameters_ty; - ] - @ whitelist) + @@ [ make_screen ~title:"Kind" "%a" Sc_rollup.Kind.pp kind ] + @ first_expert_mode_screen "Kernel" + @ [ + make_screen ~title:"Kernel" "%a" pp_string_binary boot_sector; + make_screen ~title:"Parameters" "%a" pp_lazy_expr parameters_ty; + ] + @ whitelist | _ -> assert false in let screen_of_operation (type t) (operation : t contents) = @@ -375,7 +380,9 @@ let operation_to_screens fun n -> function | Single (Manager_operation _ as m) -> screen_of_manager n m | Cons ((Manager_operation _ as m), rest) -> - screen_of_manager n m @ screen_of_operations (succ n) rest + let screen_of_manager = screen_of_manager n m in + let screen_of_operations = screen_of_operations (succ n) rest in + screen_of_manager @ screen_of_operations | Single op -> screen_of_operation op in screen_of_operations 0 contents diff --git a/tests/integration/app_vars.sh b/tests/integration/app_vars.sh index 375898e1d..bc465baea 100644 --- a/tests/integration/app_vars.sh +++ b/tests/integration/app_vars.sh @@ -19,6 +19,6 @@ export COMMIT_BYTES=$(printf '%s' "$COMMIT" | xxd -p -c 256) export VERSION_WALLET_TAG="00" export APPVERSION_M=3 export APPVERSION_N=0 -export APPVERSION_P=4 +export APPVERSION_P=5 export APPVERSION=$APPVERSION_M.$APPVERSION_N.$APPVERSION_P export VERSION_BYTES=$(printf "%02x%02x%02x%02x" "$VERSION_WALLET_TAG" "$APPVERSION_M" "$APPVERSION_N" "$APPVERSION_P") diff --git a/tests/integration/nano/snapshots/nanos/back.png b/tests/integration/nano/snapshots/nanos/back.png index 7bbfa7095..b5c1b1cbe 100644 Binary files a/tests/integration/nano/snapshots/nanos/back.png and b/tests/integration/nano/snapshots/nanos/back.png differ diff --git a/tests/integration/nano/snapshots/nanos/home.png b/tests/integration/nano/snapshots/nanos/home.png index 37183b78b..056ffc401 100644 Binary files a/tests/integration/nano/snapshots/nanos/home.png and b/tests/integration/nano/snapshots/nanos/home.png differ diff --git a/tests/integration/nano/snapshots/nanos/quit.png b/tests/integration/nano/snapshots/nanos/quit.png index 6e442b793..e2279803e 100644 Binary files a/tests/integration/nano/snapshots/nanos/quit.png and b/tests/integration/nano/snapshots/nanos/quit.png differ diff --git a/tests/integration/nano/snapshots/nanos/settings.png b/tests/integration/nano/snapshots/nanos/settings.png index 60133e61c..34cf547a2 100644 Binary files a/tests/integration/nano/snapshots/nanos/settings.png and b/tests/integration/nano/snapshots/nanos/settings.png differ diff --git a/tests/integration/nano/snapshots/nanos/settings_blindsign_off.png b/tests/integration/nano/snapshots/nanos/settings_blindsign_off.png new file mode 100644 index 000000000..834142cf8 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/settings_blindsign_off.png differ diff --git a/tests/integration/nano/snapshots/nanos/settings_blindsign_on.png b/tests/integration/nano/snapshots/nanos/settings_blindsign_on.png new file mode 100644 index 000000000..1e5bfd2a1 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/settings_blindsign_on.png differ diff --git a/tests/integration/nano/snapshots/nanos/settings_expert_mode_disabled.png b/tests/integration/nano/snapshots/nanos/settings_expert_mode_disabled.png index e14c6998a..a10bdaeac 100644 Binary files a/tests/integration/nano/snapshots/nanos/settings_expert_mode_disabled.png and b/tests/integration/nano/snapshots/nanos/settings_expert_mode_disabled.png differ diff --git a/tests/integration/nano/snapshots/nanos/settings_expert_mode_enabled.png b/tests/integration/nano/snapshots/nanos/settings_expert_mode_enabled.png index 363c6c9bb..1b968b6c2 100644 Binary files a/tests/integration/nano/snapshots/nanos/settings_expert_mode_enabled.png and b/tests/integration/nano/snapshots/nanos/settings_expert_mode_enabled.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_parsing_errors/wrong_last_packet/00012.png b/tests/integration/nano/snapshots/nanos/test_parsing_errors/wrong_last_packet/00012.png index 37183b78b..056ffc401 100644 Binary files a/tests/integration/nano/snapshots/nanos/test_parsing_errors/wrong_last_packet/00012.png and b/tests/integration/nano/snapshots/nanos/test_parsing_errors/wrong_last_packet/00012.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_reject_transaction/00000.png b/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00000.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_reject_transaction/00000.png rename to tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00000.png diff --git a/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00001.png b/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00001.png new file mode 100644 index 000000000..29067d8ec Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00001.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_reject_transaction/00002.png b/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00002.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_reject_transaction/00002.png rename to tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00002.png diff --git a/tests/integration/nano/snapshots/nanos/test_reject_transaction/00003.png b/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00003.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_reject_transaction/00003.png rename to tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00003.png diff --git a/tests/integration/nano/snapshots/nanos/test_sign_simple_transaction/00004.png b/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00004.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_sign_simple_transaction/00004.png rename to tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00004.png diff --git a/tests/integration/nano/snapshots/nanos/test_reject_transaction/00005.png b/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00005.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_reject_transaction/00005.png rename to tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00005.png diff --git a/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00006.png b/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00006.png new file mode 100644 index 000000000..ada60041e Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00006.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00007.png b/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00007.png new file mode 100644 index 000000000..f4017bca3 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00007.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_reject_transaction/00010.png b/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00008.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_reject_transaction/00010.png rename to tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00008.png diff --git a/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00009.png b/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00009.png new file mode 100644 index 000000000..404b02330 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00009.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00010.png b/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00010.png new file mode 100644 index 000000000..bbc474df6 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00010.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00011.png b/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00011.png new file mode 100644 index 000000000..7e6a184f1 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00011.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_simple_transaction/00002.png b/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00012.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_sign_simple_transaction/00002.png rename to tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00012.png diff --git a/tests/integration/nano/snapshots/nanos/test_sign_simple_transaction/00003.png b/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00013.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_sign_simple_transaction/00003.png rename to tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00013.png diff --git a/tests/integration/nano/snapshots/nanos/test_reject_transaction/00004.png b/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00014.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_reject_transaction/00004.png rename to tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00014.png diff --git a/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00015.png b/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00015.png new file mode 100644 index 000000000..d2735a4da Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00015.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00016.png b/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00016.png new file mode 100644 index 000000000..76ba12229 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00016.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00017.png b/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00017.png new file mode 100644 index 000000000..a7d686439 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00017.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00018.png b/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00018.png new file mode 100644 index 000000000..26748650b Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00018.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00019.png b/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00019.png new file mode 100644 index 000000000..837dba8b1 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00019.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00020.png b/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00020.png new file mode 100644 index 000000000..f31a189f5 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00020.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00021.png b/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00021.png new file mode 100644 index 000000000..2283c749c Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00021.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00022.png b/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00022.png new file mode 100644 index 000000000..bc5764770 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00022.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00023.png b/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00023.png new file mode 100644 index 000000000..218dc0511 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00023.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_reject_transaction/00031.png b/tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00024.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_reject_transaction/00031.png rename to tests/integration/nano/snapshots/nanos/test_sign_complex_operation/00024.png diff --git a/tests/integration/nano/snapshots/nanos/test_sign_origination/00010.png b/tests/integration/nano/snapshots/nanos/test_sign_origination/00010.png index 92b4bce4e..1c654ea6b 100644 Binary files a/tests/integration/nano/snapshots/nanos/test_sign_origination/00010.png and b/tests/integration/nano/snapshots/nanos/test_sign_origination/00010.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_origination/00011.png b/tests/integration/nano/snapshots/nanos/test_sign_origination/00011.png index 1c654ea6b..7e0e23820 100644 Binary files a/tests/integration/nano/snapshots/nanos/test_sign_origination/00011.png and b/tests/integration/nano/snapshots/nanos/test_sign_origination/00011.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_sc_rollup_originate/no_whitelist/00029.png b/tests/integration/nano/snapshots/nanos/test_sign_sc_rollup_originate/no_whitelist/00029.png index 92b4bce4e..7ba8f0d10 100644 Binary files a/tests/integration/nano/snapshots/nanos/test_sign_sc_rollup_originate/no_whitelist/00029.png and b/tests/integration/nano/snapshots/nanos/test_sign_sc_rollup_originate/no_whitelist/00029.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_sc_rollup_originate/no_whitelist/00030.png b/tests/integration/nano/snapshots/nanos/test_sign_sc_rollup_originate/no_whitelist/00030.png index 7ba8f0d10..7e0e23820 100644 Binary files a/tests/integration/nano/snapshots/nanos/test_sign_sc_rollup_originate/no_whitelist/00030.png and b/tests/integration/nano/snapshots/nanos/test_sign_sc_rollup_originate/no_whitelist/00030.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_sc_rollup_originate/with_whitelist/00029.png b/tests/integration/nano/snapshots/nanos/test_sign_sc_rollup_originate/with_whitelist/00029.png index 92b4bce4e..7ba8f0d10 100644 Binary files a/tests/integration/nano/snapshots/nanos/test_sign_sc_rollup_originate/with_whitelist/00029.png and b/tests/integration/nano/snapshots/nanos/test_sign_sc_rollup_originate/with_whitelist/00029.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_sc_rollup_originate/with_whitelist/00030.png b/tests/integration/nano/snapshots/nanos/test_sign_sc_rollup_originate/with_whitelist/00030.png index 7ba8f0d10..8644702b6 100644 Binary files a/tests/integration/nano/snapshots/nanos/test_sign_sc_rollup_originate/with_whitelist/00030.png and b/tests/integration/nano/snapshots/nanos/test_sign_sc_rollup_originate/with_whitelist/00030.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_sc_rollup_originate/with_whitelist/00031.png b/tests/integration/nano/snapshots/nanos/test_sign_sc_rollup_originate/with_whitelist/00031.png index 8644702b6..8654f1595 100644 Binary files a/tests/integration/nano/snapshots/nanos/test_sign_sc_rollup_originate/with_whitelist/00031.png and b/tests/integration/nano/snapshots/nanos/test_sign_sc_rollup_originate/with_whitelist/00031.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_sc_rollup_originate/with_whitelist/00032.png b/tests/integration/nano/snapshots/nanos/test_sign_sc_rollup_originate/with_whitelist/00032.png index 8654f1595..c00d3c06c 100644 Binary files a/tests/integration/nano/snapshots/nanos/test_sign_sc_rollup_originate/with_whitelist/00032.png and b/tests/integration/nano/snapshots/nanos/test_sign_sc_rollup_originate/with_whitelist/00032.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_sc_rollup_originate/with_whitelist/00033.png b/tests/integration/nano/snapshots/nanos/test_sign_sc_rollup_originate/with_whitelist/00033.png index c00d3c06c..dae717760 100644 Binary files a/tests/integration/nano/snapshots/nanos/test_sign_sc_rollup_originate/with_whitelist/00033.png and b/tests/integration/nano/snapshots/nanos/test_sign_sc_rollup_originate/with_whitelist/00033.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_sc_rollup_originate/with_whitelist/00034.png b/tests/integration/nano/snapshots/nanos/test_sign_sc_rollup_originate/with_whitelist/00034.png index dae717760..9ee582fe8 100644 Binary files a/tests/integration/nano/snapshots/nanos/test_sign_sc_rollup_originate/with_whitelist/00034.png and b/tests/integration/nano/snapshots/nanos/test_sign_sc_rollup_originate/with_whitelist/00034.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_sc_rollup_originate/with_whitelist/00035.png b/tests/integration/nano/snapshots/nanos/test_sign_sc_rollup_originate/with_whitelist/00035.png index 9ee582fe8..12c797a15 100644 Binary files a/tests/integration/nano/snapshots/nanos/test_sign_sc_rollup_originate/with_whitelist/00035.png and b/tests/integration/nano/snapshots/nanos/test_sign_sc_rollup_originate/with_whitelist/00035.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_sc_rollup_originate/with_whitelist/00036.png b/tests/integration/nano/snapshots/nanos/test_sign_sc_rollup_originate/with_whitelist/00036.png index 12c797a15..13a34f440 100644 Binary files a/tests/integration/nano/snapshots/nanos/test_sign_sc_rollup_originate/with_whitelist/00036.png and b/tests/integration/nano/snapshots/nanos/test_sign_sc_rollup_originate/with_whitelist/00036.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_sc_rollup_originate/with_whitelist/00037.png b/tests/integration/nano/snapshots/nanos/test_sign_sc_rollup_originate/with_whitelist/00037.png index 13a34f440..a5ec6594f 100644 Binary files a/tests/integration/nano/snapshots/nanos/test_sign_sc_rollup_originate/with_whitelist/00037.png and b/tests/integration/nano/snapshots/nanos/test_sign_sc_rollup_originate/with_whitelist/00037.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_sc_rollup_originate/with_whitelist/00038.png b/tests/integration/nano/snapshots/nanos/test_sign_sc_rollup_originate/with_whitelist/00038.png index a5ec6594f..7e0e23820 100644 Binary files a/tests/integration/nano/snapshots/nanos/test_sign_sc_rollup_originate/with_whitelist/00038.png and b/tests/integration/nano/snapshots/nanos/test_sign_sc_rollup_originate/with_whitelist/00038.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_simple_transaction/00000.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00000.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_sign_simple_transaction/00000.png rename to tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00000.png diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00001.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00001.png new file mode 100644 index 000000000..4aa1d779f Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00001.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00002.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00002.png new file mode 100644 index 000000000..8b7980241 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00002.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00003.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00003.png new file mode 100644 index 000000000..97eab5d99 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00003.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00004.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00004.png new file mode 100644 index 000000000..74e0f733b Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00004.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_simple_transaction/00005.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00005.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_sign_simple_transaction/00005.png rename to tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00005.png diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00006.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00006.png new file mode 100644 index 000000000..3adb20f02 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00006.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00007.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00007.png new file mode 100644 index 000000000..b420fb9c9 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00007.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00008.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00008.png new file mode 100644 index 000000000..a024d7030 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00008.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00009.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00009.png new file mode 100644 index 000000000..bac9ee1e7 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00009.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00010.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00010.png new file mode 100644 index 000000000..dd15dbb89 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00010.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00011.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00011.png new file mode 100644 index 000000000..8b7980241 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00011.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00012.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00012.png new file mode 100644 index 000000000..97eab5d99 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00012.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00013.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00013.png new file mode 100644 index 000000000..763643fb5 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00013.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00014.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00014.png new file mode 100644 index 000000000..55666d055 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00014.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00015.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00015.png new file mode 100644 index 000000000..54a0397ba Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00015.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00016.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00016.png new file mode 100644 index 000000000..faf13180b Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00016.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00017.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00017.png new file mode 100644 index 000000000..59229fc70 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00017.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00018.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00018.png new file mode 100644 index 000000000..2e1439bfe Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00018.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00019.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00019.png new file mode 100644 index 000000000..85b010909 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00019.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/00010.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00020.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_sign_transaction/00010.png rename to tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00020.png diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00021.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00021.png new file mode 100644 index 000000000..2ff47dbb4 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00021.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00022.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00022.png new file mode 100644 index 000000000..282938ea8 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00022.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00023.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00023.png new file mode 100644 index 000000000..9f46a0ff0 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00023.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00024.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00024.png new file mode 100644 index 000000000..c5d62d263 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00024.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/summary/00000.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/summary/00000.png new file mode 100644 index 000000000..1ae464d28 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/summary/00000.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/summary/00001.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/summary/00001.png new file mode 100644 index 000000000..aaf985aa4 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/summary/00001.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/summary/00002.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/summary/00002.png new file mode 100644 index 000000000..71ac2f2bb Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/summary/00002.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/summary/00003.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/summary/00003.png new file mode 100644 index 000000000..a28ccc4af Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/summary/00003.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/summary/00004.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/summary/00004.png new file mode 100644 index 000000000..4083e0c3b Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/summary/00004.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/summary/00005.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/summary/00005.png new file mode 100644 index 000000000..34a7b5975 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/summary/00005.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_origination/00012.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/summary/00006.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_sign_origination/00012.png rename to tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/accept/summary/00006.png diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/00000.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00000.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_sign_transaction/00000.png rename to tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00000.png diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00001.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00001.png new file mode 100644 index 000000000..4aa1d779f Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00001.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00002.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00002.png new file mode 100644 index 000000000..8b7980241 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00002.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00003.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00003.png new file mode 100644 index 000000000..97eab5d99 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00003.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00004.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00004.png new file mode 100644 index 000000000..74e0f733b Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00004.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00005.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00005.png new file mode 100644 index 000000000..78b15b726 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00005.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00006.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00006.png new file mode 100644 index 000000000..3adb20f02 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00006.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00007.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00007.png new file mode 100644 index 000000000..b420fb9c9 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00007.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00008.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00008.png new file mode 100644 index 000000000..a024d7030 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00008.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00009.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00009.png new file mode 100644 index 000000000..bac9ee1e7 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00009.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00010.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00010.png new file mode 100644 index 000000000..dd15dbb89 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00010.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00011.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00011.png new file mode 100644 index 000000000..8b7980241 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00011.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00012.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00012.png new file mode 100644 index 000000000..97eab5d99 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00012.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00013.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00013.png new file mode 100644 index 000000000..763643fb5 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00013.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00014.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00014.png new file mode 100644 index 000000000..55666d055 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00014.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00015.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00015.png new file mode 100644 index 000000000..54a0397ba Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00015.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00016.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00016.png new file mode 100644 index 000000000..faf13180b Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00016.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00017.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00017.png new file mode 100644 index 000000000..59229fc70 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00017.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00018.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00018.png new file mode 100644 index 000000000..2e1439bfe Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00018.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00019.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00019.png new file mode 100644 index 000000000..85b010909 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00019.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00020.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00020.png new file mode 100644 index 000000000..92b4bce4e Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00020.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00021.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00021.png new file mode 100644 index 000000000..2ff47dbb4 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00021.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00022.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00022.png new file mode 100644 index 000000000..282938ea8 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00022.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00023.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00023.png new file mode 100644 index 000000000..9f46a0ff0 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00023.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00024.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00024.png new file mode 100644 index 000000000..c5d62d263 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00024.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/summary/00000.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/summary/00000.png new file mode 100644 index 000000000..1ae464d28 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/summary/00000.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/summary/00001.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/summary/00001.png new file mode 100644 index 000000000..aaf985aa4 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/summary/00001.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/summary/00002.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/summary/00002.png new file mode 100644 index 000000000..71ac2f2bb Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/summary/00002.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/summary/00003.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/summary/00003.png new file mode 100644 index 000000000..a28ccc4af Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/summary/00003.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/summary/00004.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/summary/00004.png new file mode 100644 index 000000000..4083e0c3b Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/summary/00004.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/summary/00005.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/summary/00005.png new file mode 100644 index 000000000..34a7b5975 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/summary/00005.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_sc_rollup_originate/no_whitelist/00031.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/summary/00006.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_sign_sc_rollup_originate/no_whitelist/00031.png rename to tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/summary/00006.png diff --git a/tests/integration/nano/snapshots/nanos/test_reject_transaction/00032.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/summary/00007.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_reject_transaction/00032.png rename to tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_summary/summary/00007.png diff --git a/tests/integration/nano/snapshots/nanos/test_too_complex_transaction/00000.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00000.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_too_complex_transaction/00000.png rename to tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00000.png diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00001.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00001.png new file mode 100644 index 000000000..4aa1d779f Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00001.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00002.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00002.png new file mode 100644 index 000000000..8b7980241 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00002.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00003.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00003.png new file mode 100644 index 000000000..97eab5d99 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00003.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00004.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00004.png new file mode 100644 index 000000000..74e0f733b Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00004.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00005.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00005.png new file mode 100644 index 000000000..78b15b726 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00005.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00006.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00006.png new file mode 100644 index 000000000..3adb20f02 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00006.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00007.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00007.png new file mode 100644 index 000000000..b420fb9c9 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00007.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00008.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00008.png new file mode 100644 index 000000000..a024d7030 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00008.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00009.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00009.png new file mode 100644 index 000000000..bac9ee1e7 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00009.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00010.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00010.png new file mode 100644 index 000000000..dd15dbb89 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00010.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00011.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00011.png new file mode 100644 index 000000000..8b7980241 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00011.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00012.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00012.png new file mode 100644 index 000000000..97eab5d99 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00012.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00013.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00013.png new file mode 100644 index 000000000..763643fb5 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00013.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00014.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00014.png new file mode 100644 index 000000000..55666d055 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00014.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00015.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00015.png new file mode 100644 index 000000000..54a0397ba Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00015.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00016.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00016.png new file mode 100644 index 000000000..faf13180b Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00016.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00017.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00017.png new file mode 100644 index 000000000..59229fc70 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00017.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00018.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00018.png new file mode 100644 index 000000000..2e1439bfe Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00018.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00019.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00019.png new file mode 100644 index 000000000..85b010909 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00019.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00020.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00020.png new file mode 100644 index 000000000..92b4bce4e Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00020.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00021.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00021.png new file mode 100644 index 000000000..2ff47dbb4 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00021.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00022.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00022.png new file mode 100644 index 000000000..282938ea8 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00022.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00023.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00023.png new file mode 100644 index 000000000..9f46a0ff0 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00023.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00024.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00024.png new file mode 100644 index 000000000..c5d62d263 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00024.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00025.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00025.png new file mode 100644 index 000000000..970b15944 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00025.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00000.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00000.png new file mode 100644 index 000000000..053fc534b Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00000.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_reject_transaction/00001.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00001.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_reject_transaction/00001.png rename to tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00001.png diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00002.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00002.png new file mode 100644 index 000000000..8b7980241 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00002.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00003.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00003.png new file mode 100644 index 000000000..97eab5d99 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00003.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00004.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00004.png new file mode 100644 index 000000000..0cae4aeaa Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00004.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00005.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00005.png new file mode 100644 index 000000000..9e7ddfd61 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00005.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00006.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00006.png new file mode 100644 index 000000000..84e0a9919 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00006.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00007.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00007.png new file mode 100644 index 000000000..69f0c2e60 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00007.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00008.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00008.png new file mode 100644 index 000000000..8764165e0 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00008.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00009.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00009.png new file mode 100644 index 000000000..dd15dbb89 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00009.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00010.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00010.png new file mode 100644 index 000000000..8b7980241 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00010.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00011.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00011.png new file mode 100644 index 000000000..97eab5d99 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00011.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00012.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00012.png new file mode 100644 index 000000000..74e0f733b Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00012.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00013.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00013.png new file mode 100644 index 000000000..dad3713a1 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00013.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00014.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00014.png new file mode 100644 index 000000000..cfc060c35 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00014.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00015.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00015.png new file mode 100644 index 000000000..bb7cd082b Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00015.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00016.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00016.png new file mode 100644 index 000000000..eb9cfd008 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00016.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00017.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00017.png new file mode 100644 index 000000000..236e0b445 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00017.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00018.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00018.png new file mode 100644 index 000000000..8b7980241 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00018.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00019.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00019.png new file mode 100644 index 000000000..97eab5d99 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00019.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00020.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00020.png new file mode 100644 index 000000000..763643fb5 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00020.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00021.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00021.png new file mode 100644 index 000000000..282938ea8 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00021.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00022.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00022.png new file mode 100644 index 000000000..9f46a0ff0 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00022.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00023.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00023.png new file mode 100644 index 000000000..c5d62d263 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00023.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/summary/00000.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/summary/00000.png new file mode 100644 index 000000000..6fc9460af Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/summary/00000.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/summary/00001.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/summary/00001.png new file mode 100644 index 000000000..c19e98384 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/summary/00001.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/summary/00002.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/summary/00002.png new file mode 100644 index 000000000..01ed9e92c Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/summary/00002.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/summary/00003.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/summary/00003.png new file mode 100644 index 000000000..0763f0b20 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/summary/00003.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/summary/00004.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/summary/00004.png new file mode 100644 index 000000000..f38f20393 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/summary/00004.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/summary/00005.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/summary/00005.png new file mode 100644 index 000000000..94ec1c05e Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/summary/00005.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_sc_rollup_originate/with_whitelist/00039.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/summary/00006.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_sign_sc_rollup_originate/with_whitelist/00039.png rename to tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/only_transactions/summary/00006.png diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/blindsigning/00000.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/blindsigning/00000.png new file mode 100644 index 000000000..0779bbaf9 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/blindsigning/00000.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/blindsigning/00001.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/blindsigning/00001.png new file mode 100644 index 000000000..af899e7f7 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/blindsigning/00001.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/blindsigning/00002.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/blindsigning/00002.png new file mode 100644 index 000000000..f6f3c9fcb Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/blindsigning/00002.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/blindsigning/00003.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/blindsigning/00003.png new file mode 100644 index 000000000..ee765f6e0 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/blindsigning/00003.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/blindsigning/00004.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/blindsigning/00004.png new file mode 100644 index 000000000..37b964798 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/blindsigning/00004.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_simple_transaction/00009.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/blindsigning/00005.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_sign_simple_transaction/00009.png rename to tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/blindsigning/00005.png diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00000.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00000.png new file mode 100644 index 000000000..053fc534b Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00000.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00001.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00001.png new file mode 100644 index 000000000..7139a3ede Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00001.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00002.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00002.png new file mode 100644 index 000000000..8b7980241 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00002.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00003.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00003.png new file mode 100644 index 000000000..97eab5d99 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00003.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00004.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00004.png new file mode 100644 index 000000000..a63497a12 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00004.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00005.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00005.png new file mode 100644 index 000000000..d55df3029 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00005.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00006.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00006.png new file mode 100644 index 000000000..6b5647657 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00006.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00007.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00007.png new file mode 100644 index 000000000..f2eb224b2 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00007.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00008.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00008.png new file mode 100644 index 000000000..91aa55260 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00008.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00009.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00009.png new file mode 100644 index 000000000..04db6bb36 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00009.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00010.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00010.png new file mode 100644 index 000000000..3c9784559 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00010.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00011.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00011.png new file mode 100644 index 000000000..e545bcbb9 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00011.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00012.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00012.png new file mode 100644 index 000000000..6bb3ebfe7 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00012.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00013.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00013.png new file mode 100644 index 000000000..0168777fa Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00013.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00014.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00014.png new file mode 100644 index 000000000..37524d603 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00014.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00015.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00015.png new file mode 100644 index 000000000..02f7608f4 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00015.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00016.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00016.png new file mode 100644 index 000000000..14d10093d Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00016.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00017.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00017.png new file mode 100644 index 000000000..354bec311 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00017.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00018.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00018.png new file mode 100644 index 000000000..056ee6d1d Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00018.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00019.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00019.png new file mode 100644 index 000000000..b56e081c1 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00019.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00020.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00020.png new file mode 100644 index 000000000..1833f0776 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00020.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00021.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00021.png new file mode 100644 index 000000000..282938ea8 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00021.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00022.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00022.png new file mode 100644 index 000000000..3c5ceb274 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00022.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00023.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00023.png new file mode 100644 index 000000000..9696722b8 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00023.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00024.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00024.png new file mode 100644 index 000000000..c5d62d263 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00024.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/blindsigning/00000.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/blindsigning/00000.png new file mode 100644 index 000000000..0779bbaf9 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/blindsigning/00000.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/blindsigning/00001.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/blindsigning/00001.png new file mode 100644 index 000000000..af899e7f7 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/blindsigning/00001.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/blindsigning/00002.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/blindsigning/00002.png new file mode 100644 index 000000000..f6f3c9fcb Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/blindsigning/00002.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/blindsigning/00003.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/blindsigning/00003.png new file mode 100644 index 000000000..ee765f6e0 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/blindsigning/00003.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/blindsigning/00004.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/blindsigning/00004.png new file mode 100644 index 000000000..37b964798 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/blindsigning/00004.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/00012.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/blindsigning/00005.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_sign_transaction/00012.png rename to tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/blindsigning/00005.png diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/blindsigning/00006.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/blindsigning/00006.png new file mode 100644 index 000000000..970b15944 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/blindsigning/00006.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00000.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00000.png new file mode 100644 index 000000000..053fc534b Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00000.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00001.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00001.png new file mode 100644 index 000000000..7139a3ede Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00001.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00002.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00002.png new file mode 100644 index 000000000..8b7980241 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00002.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00003.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00003.png new file mode 100644 index 000000000..97eab5d99 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00003.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00004.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00004.png new file mode 100644 index 000000000..a63497a12 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00004.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00005.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00005.png new file mode 100644 index 000000000..d55df3029 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00005.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00006.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00006.png new file mode 100644 index 000000000..6b5647657 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00006.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00007.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00007.png new file mode 100644 index 000000000..f2eb224b2 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00007.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00008.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00008.png new file mode 100644 index 000000000..91aa55260 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00008.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00009.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00009.png new file mode 100644 index 000000000..04db6bb36 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00009.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00010.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00010.png new file mode 100644 index 000000000..3c9784559 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00010.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00011.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00011.png new file mode 100644 index 000000000..e545bcbb9 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00011.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00012.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00012.png new file mode 100644 index 000000000..6bb3ebfe7 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00012.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00013.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00013.png new file mode 100644 index 000000000..0168777fa Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00013.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00014.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00014.png new file mode 100644 index 000000000..37524d603 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00014.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00015.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00015.png new file mode 100644 index 000000000..02f7608f4 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00015.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00016.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00016.png new file mode 100644 index 000000000..14d10093d Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00016.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00017.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00017.png new file mode 100644 index 000000000..354bec311 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00017.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00018.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00018.png new file mode 100644 index 000000000..056ee6d1d Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00018.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00019.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00019.png new file mode 100644 index 000000000..b56e081c1 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00019.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00020.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00020.png new file mode 100644 index 000000000..1833f0776 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00020.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00021.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00021.png new file mode 100644 index 000000000..282938ea8 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00021.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00022.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00022.png new file mode 100644 index 000000000..3c5ceb274 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00022.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00023.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00023.png new file mode 100644 index 000000000..9696722b8 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00023.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00024.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00024.png new file mode 100644 index 000000000..c5d62d263 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00024.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00000.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00000.png new file mode 100644 index 000000000..053fc534b Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00000.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00001.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00001.png new file mode 100644 index 000000000..7139a3ede Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00001.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00002.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00002.png new file mode 100644 index 000000000..8b7980241 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00002.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00003.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00003.png new file mode 100644 index 000000000..97eab5d99 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00003.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00004.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00004.png new file mode 100644 index 000000000..a63497a12 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00004.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00005.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00005.png new file mode 100644 index 000000000..d55df3029 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00005.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00006.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00006.png new file mode 100644 index 000000000..6b5647657 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00006.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00007.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00007.png new file mode 100644 index 000000000..f2eb224b2 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00007.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00008.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00008.png new file mode 100644 index 000000000..91aa55260 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00008.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00009.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00009.png new file mode 100644 index 000000000..04db6bb36 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00009.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00010.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00010.png new file mode 100644 index 000000000..3c9784559 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00010.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00011.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00011.png new file mode 100644 index 000000000..e545bcbb9 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00011.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00012.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00012.png new file mode 100644 index 000000000..6bb3ebfe7 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00012.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00013.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00013.png new file mode 100644 index 000000000..0168777fa Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00013.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00014.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00014.png new file mode 100644 index 000000000..37524d603 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00014.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00015.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00015.png new file mode 100644 index 000000000..02f7608f4 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00015.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00016.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00016.png new file mode 100644 index 000000000..14d10093d Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00016.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00017.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00017.png new file mode 100644 index 000000000..354bec311 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00017.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00018.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00018.png new file mode 100644 index 000000000..056ee6d1d Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00018.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00019.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00019.png new file mode 100644 index 000000000..b56e081c1 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00019.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00020.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00020.png new file mode 100644 index 000000000..1833f0776 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00020.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00021.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00021.png new file mode 100644 index 000000000..282938ea8 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00021.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00022.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00022.png new file mode 100644 index 000000000..3c5ceb274 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00022.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00023.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00023.png new file mode 100644 index 000000000..9696722b8 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00023.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00024.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00024.png new file mode 100644 index 000000000..c5d62d263 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00024.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00025.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00025.png new file mode 100644 index 000000000..970b15944 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00025.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00000.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00000.png new file mode 100644 index 000000000..053fc534b Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00000.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00001.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00001.png new file mode 100644 index 000000000..c680dd119 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00001.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00002.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00002.png new file mode 100644 index 000000000..8b7980241 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00002.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00003.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00003.png new file mode 100644 index 000000000..97eab5d99 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00003.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00004.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00004.png new file mode 100644 index 000000000..29c51850d Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00004.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00005.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00005.png new file mode 100644 index 000000000..c4c985961 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00005.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00006.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00006.png new file mode 100644 index 000000000..3de202d03 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00006.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00007.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00007.png new file mode 100644 index 000000000..a3a5e1ab3 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00007.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00008.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00008.png new file mode 100644 index 000000000..d6dd769bd Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00008.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00009.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00009.png new file mode 100644 index 000000000..771b2283e Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00009.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00010.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00010.png new file mode 100644 index 000000000..37f8c26cd Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00010.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00011.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00011.png new file mode 100644 index 000000000..6eb3ddf2e Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00011.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00012.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00012.png new file mode 100644 index 000000000..ac6f6f0c8 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00012.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00013.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00013.png new file mode 100644 index 000000000..e38761b35 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00013.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00014.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00014.png new file mode 100644 index 000000000..d57e3837a Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00014.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00015.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00015.png new file mode 100644 index 000000000..52679410c Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00015.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00016.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00016.png new file mode 100644 index 000000000..b826cc84e Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00016.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00017.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00017.png new file mode 100644 index 000000000..93f16c9d3 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00017.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00018.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00018.png new file mode 100644 index 000000000..91abeafcc Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00018.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00019.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00019.png new file mode 100644 index 000000000..8a03012e4 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00019.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00020.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00020.png new file mode 100644 index 000000000..6f4ef60ed Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00020.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00021.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00021.png new file mode 100644 index 000000000..282938ea8 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00021.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00022.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00022.png new file mode 100644 index 000000000..9f46a0ff0 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00022.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00023.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00023.png new file mode 100644 index 000000000..c5d62d263 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00023.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/summary/00000.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/summary/00000.png new file mode 100644 index 000000000..8bf947b00 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/summary/00000.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/summary/00001.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/summary/00001.png new file mode 100644 index 000000000..36d5d902a Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/summary/00001.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/summary/00002.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/summary/00002.png new file mode 100644 index 000000000..8bc19413a Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/summary/00002.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/summary/00003.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/summary/00003.png new file mode 100644 index 000000000..f54d7812b Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/summary/00003.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/summary/00004.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/summary/00004.png new file mode 100644 index 000000000..c4cc73dd1 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/summary/00004.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/summary/00005.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/summary/00005.png new file mode 100644 index 000000000..8db69aa4f Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/summary/00005.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transfer_ticket/00016.png b/tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/summary/00006.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_sign_transfer_ticket/00016.png rename to tests/integration/nano/snapshots/nanos/test_sign_too_long_operation/without_fee_or_amount/summary/00006.png diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/basic/00000.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/basic/00000.png new file mode 100644 index 000000000..053fc534b Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/basic/00000.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_simple_transaction/00001.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/basic/00001.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_sign_simple_transaction/00001.png rename to tests/integration/nano/snapshots/nanos/test_sign_transaction/basic/00001.png diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/00002.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/basic/00002.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_sign_transaction/00002.png rename to tests/integration/nano/snapshots/nanos/test_sign_transaction/basic/00002.png diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/00003.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/basic/00003.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_sign_transaction/00003.png rename to tests/integration/nano/snapshots/nanos/test_sign_transaction/basic/00003.png diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/00004.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/basic/00004.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_sign_transaction/00004.png rename to tests/integration/nano/snapshots/nanos/test_sign_transaction/basic/00004.png diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/00005.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/basic/00005.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_sign_transaction/00005.png rename to tests/integration/nano/snapshots/nanos/test_sign_transaction/basic/00005.png diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/00006.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/basic/00006.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_sign_transaction/00006.png rename to tests/integration/nano/snapshots/nanos/test_sign_transaction/basic/00006.png diff --git a/tests/integration/nano/snapshots/nanos/test_reject_transaction/00007.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/basic/00007.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_reject_transaction/00007.png rename to tests/integration/nano/snapshots/nanos/test_sign_transaction/basic/00007.png diff --git a/tests/integration/nano/snapshots/nanos/test_reject_transaction/00008.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/basic/00008.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_reject_transaction/00008.png rename to tests/integration/nano/snapshots/nanos/test_sign_transaction/basic/00008.png diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/00009.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/basic/00009.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_sign_transaction/00009.png rename to tests/integration/nano/snapshots/nanos/test_sign_transaction/basic/00009.png diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/basic/00010.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/basic/00010.png new file mode 100644 index 000000000..92b4bce4e Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/basic/00010.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/00011.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/basic/00011.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_sign_transaction/00011.png rename to tests/integration/nano/snapshots/nanos/test_sign_transaction/basic/00011.png diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/basic/00012.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/basic/00012.png new file mode 100644 index 000000000..7e0e23820 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/basic/00012.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/complex/00000.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/complex/00000.png new file mode 100644 index 000000000..053fc534b Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/complex/00000.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/00001.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/complex/00001.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_sign_transaction/00001.png rename to tests/integration/nano/snapshots/nanos/test_sign_transaction/complex/00001.png diff --git a/tests/integration/nano/snapshots/nanos/test_too_complex_transaction/00002.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/complex/00002.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_too_complex_transaction/00002.png rename to tests/integration/nano/snapshots/nanos/test_sign_transaction/complex/00002.png diff --git a/tests/integration/nano/snapshots/nanos/test_too_complex_transaction/00003.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/complex/00003.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_too_complex_transaction/00003.png rename to tests/integration/nano/snapshots/nanos/test_sign_transaction/complex/00003.png diff --git a/tests/integration/nano/snapshots/nanos/test_too_complex_transaction/00004.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/complex/00004.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_too_complex_transaction/00004.png rename to tests/integration/nano/snapshots/nanos/test_sign_transaction/complex/00004.png diff --git a/tests/integration/nano/snapshots/nanos/test_too_complex_transaction/00005.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/complex/00005.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_too_complex_transaction/00005.png rename to tests/integration/nano/snapshots/nanos/test_sign_transaction/complex/00005.png diff --git a/tests/integration/nano/snapshots/nanos/test_too_complex_transaction/00006.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/complex/00006.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_too_complex_transaction/00006.png rename to tests/integration/nano/snapshots/nanos/test_sign_transaction/complex/00006.png diff --git a/tests/integration/nano/snapshots/nanos/test_sign_simple_transaction/00007.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/complex/00007.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_sign_simple_transaction/00007.png rename to tests/integration/nano/snapshots/nanos/test_sign_transaction/complex/00007.png diff --git a/tests/integration/nano/snapshots/nanos/test_sign_simple_transaction/00008.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/complex/00008.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_sign_simple_transaction/00008.png rename to tests/integration/nano/snapshots/nanos/test_sign_transaction/complex/00008.png diff --git a/tests/integration/nano/snapshots/nanos/test_too_complex_transaction/00009.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/complex/00009.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_too_complex_transaction/00009.png rename to tests/integration/nano/snapshots/nanos/test_sign_transaction/complex/00009.png diff --git a/tests/integration/nano/snapshots/nanos/test_too_complex_transaction/00010.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/complex/00010.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_too_complex_transaction/00010.png rename to tests/integration/nano/snapshots/nanos/test_sign_transaction/complex/00010.png diff --git a/tests/integration/nano/snapshots/nanos/test_too_complex_transaction/00011.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/complex/00011.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_too_complex_transaction/00011.png rename to tests/integration/nano/snapshots/nanos/test_sign_transaction/complex/00011.png diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/delegate_parameters/00000.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/delegate_parameters/00000.png new file mode 100644 index 000000000..053fc534b Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/delegate_parameters/00000.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_too_complex_transaction/00001.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/delegate_parameters/00001.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_too_complex_transaction/00001.png rename to tests/integration/nano/snapshots/nanos/test_sign_transaction/delegate_parameters/00001.png diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/delegate_parameters/00002.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/delegate_parameters/00002.png new file mode 100644 index 000000000..6e0500422 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/delegate_parameters/00002.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/delegate_parameters/00003.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/delegate_parameters/00003.png new file mode 100644 index 000000000..0d3ab6909 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/delegate_parameters/00003.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/delegate_parameters/00004.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/delegate_parameters/00004.png new file mode 100644 index 000000000..854d29ddb Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/delegate_parameters/00004.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/delegate_parameters/00005.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/delegate_parameters/00005.png new file mode 100644 index 000000000..18da5662e Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/delegate_parameters/00005.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/delegate_parameters/00006.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/delegate_parameters/00006.png new file mode 100644 index 000000000..4027411b7 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/delegate_parameters/00006.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_reject_transaction/00006.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/delegate_parameters/00007.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_reject_transaction/00006.png rename to tests/integration/nano/snapshots/nanos/test_sign_transaction/delegate_parameters/00007.png diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/delegate_parameters/00008.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/delegate_parameters/00008.png new file mode 100644 index 000000000..6b463a2ba Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/delegate_parameters/00008.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/delegate_parameters/00009.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/delegate_parameters/00009.png new file mode 100644 index 000000000..6d7683ae9 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/delegate_parameters/00009.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/delegate_parameters/00010.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/delegate_parameters/00010.png new file mode 100644 index 000000000..8b185a732 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/delegate_parameters/00010.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/delegate_parameters/00011.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/delegate_parameters/00011.png new file mode 100644 index 000000000..469b7797b Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/delegate_parameters/00011.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/delegate_parameters/00012.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/delegate_parameters/00012.png new file mode 100644 index 000000000..92b4bce4e Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/delegate_parameters/00012.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/delegate_parameters/00013.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/delegate_parameters/00013.png new file mode 100644 index 000000000..cd7a29d1f Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/delegate_parameters/00013.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/delegate_parameters/00014.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/delegate_parameters/00014.png new file mode 100644 index 000000000..ef13ffa11 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/delegate_parameters/00014.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/delegate_parameters/00015.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/delegate_parameters/00015.png new file mode 100644 index 000000000..7e0e23820 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/delegate_parameters/00015.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/finalize_unstake/00000.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/finalize_unstake/00000.png new file mode 100644 index 000000000..053fc534b Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/finalize_unstake/00000.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/finalize_unstake/00001.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/finalize_unstake/00001.png new file mode 100644 index 000000000..e033929ec Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/finalize_unstake/00001.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/finalize_unstake/00002.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/finalize_unstake/00002.png new file mode 100644 index 000000000..6e0500422 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/finalize_unstake/00002.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/finalize_unstake/00003.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/finalize_unstake/00003.png new file mode 100644 index 000000000..0d3ab6909 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/finalize_unstake/00003.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/finalize_unstake/00004.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/finalize_unstake/00004.png new file mode 100644 index 000000000..854d29ddb Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/finalize_unstake/00004.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/finalize_unstake/00005.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/finalize_unstake/00005.png new file mode 100644 index 000000000..18da5662e Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/finalize_unstake/00005.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/finalize_unstake/00006.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/finalize_unstake/00006.png new file mode 100644 index 000000000..4027411b7 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/finalize_unstake/00006.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/finalize_unstake/00007.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/finalize_unstake/00007.png new file mode 100644 index 000000000..1e80339bd Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/finalize_unstake/00007.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/finalize_unstake/00008.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/finalize_unstake/00008.png new file mode 100644 index 000000000..6b463a2ba Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/finalize_unstake/00008.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/finalize_unstake/00009.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/finalize_unstake/00009.png new file mode 100644 index 000000000..6d7683ae9 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/finalize_unstake/00009.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/finalize_unstake/00010.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/finalize_unstake/00010.png new file mode 100644 index 000000000..ec8d1dab7 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/finalize_unstake/00010.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/finalize_unstake/00011.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/finalize_unstake/00011.png new file mode 100644 index 000000000..ea964d444 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/finalize_unstake/00011.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/finalize_unstake/00012.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/finalize_unstake/00012.png new file mode 100644 index 000000000..7e0e23820 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/finalize_unstake/00012.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00000.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00000.png new file mode 100644 index 000000000..053fc534b Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00000.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00001.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00001.png new file mode 100644 index 000000000..e033929ec Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00001.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00002.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00002.png new file mode 100644 index 000000000..8b7980241 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00002.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00003.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00003.png new file mode 100644 index 000000000..97eab5d99 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00003.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00004.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00004.png new file mode 100644 index 000000000..9126afa34 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00004.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00005.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00005.png new file mode 100644 index 000000000..78b15b726 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00005.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00006.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00006.png new file mode 100644 index 000000000..1e80339bd Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00006.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/00007.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00007.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_sign_transaction/00007.png rename to tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00007.png diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/00008.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00008.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_sign_transaction/00008.png rename to tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00008.png diff --git a/tests/integration/nano/snapshots/nanos/test_reject_transaction/00009.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00009.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_reject_transaction/00009.png rename to tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00009.png diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00010.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00010.png new file mode 100644 index 000000000..92b4bce4e Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00010.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_reject_transaction/00011.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00011.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_reject_transaction/00011.png rename to tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00011.png diff --git a/tests/integration/nano/snapshots/nanos/test_reject_transaction/00012.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00012.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_reject_transaction/00012.png rename to tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00012.png diff --git a/tests/integration/nano/snapshots/nanos/test_reject_transaction/00013.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00013.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_reject_transaction/00013.png rename to tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00013.png diff --git a/tests/integration/nano/snapshots/nanos/test_reject_transaction/00014.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00014.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_reject_transaction/00014.png rename to tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00014.png diff --git a/tests/integration/nano/snapshots/nanos/test_reject_transaction/00015.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00015.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_reject_transaction/00015.png rename to tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00015.png diff --git a/tests/integration/nano/snapshots/nanos/test_reject_transaction/00016.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00016.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_reject_transaction/00016.png rename to tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00016.png diff --git a/tests/integration/nano/snapshots/nanos/test_reject_transaction/00017.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00017.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_reject_transaction/00017.png rename to tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00017.png diff --git a/tests/integration/nano/snapshots/nanos/test_reject_transaction/00018.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00018.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_reject_transaction/00018.png rename to tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00018.png diff --git a/tests/integration/nano/snapshots/nanos/test_reject_transaction/00019.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00019.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_reject_transaction/00019.png rename to tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00019.png diff --git a/tests/integration/nano/snapshots/nanos/test_reject_transaction/00020.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00020.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_reject_transaction/00020.png rename to tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00020.png diff --git a/tests/integration/nano/snapshots/nanos/test_reject_transaction/00021.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00021.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_reject_transaction/00021.png rename to tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00021.png diff --git a/tests/integration/nano/snapshots/nanos/test_reject_transaction/00022.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00022.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_reject_transaction/00022.png rename to tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00022.png diff --git a/tests/integration/nano/snapshots/nanos/test_reject_transaction/00023.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00023.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_reject_transaction/00023.png rename to tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00023.png diff --git a/tests/integration/nano/snapshots/nanos/test_reject_transaction/00024.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00024.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_reject_transaction/00024.png rename to tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00024.png diff --git a/tests/integration/nano/snapshots/nanos/test_reject_transaction/00025.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00025.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_reject_transaction/00025.png rename to tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00025.png diff --git a/tests/integration/nano/snapshots/nanos/test_reject_transaction/00026.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00026.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_reject_transaction/00026.png rename to tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00026.png diff --git a/tests/integration/nano/snapshots/nanos/test_reject_transaction/00027.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00027.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_reject_transaction/00027.png rename to tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00027.png diff --git a/tests/integration/nano/snapshots/nanos/test_reject_transaction/00028.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00028.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_reject_transaction/00028.png rename to tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00028.png diff --git a/tests/integration/nano/snapshots/nanos/test_reject_transaction/00029.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00029.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_reject_transaction/00029.png rename to tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00029.png diff --git a/tests/integration/nano/snapshots/nanos/test_reject_transaction/00030.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00030.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_reject_transaction/00030.png rename to tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00030.png diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00031.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00031.png new file mode 100644 index 000000000..7e0e23820 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00031.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00032.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00032.png new file mode 100644 index 000000000..970b15944 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/reject/00032.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/simple/00000.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/simple/00000.png new file mode 100644 index 000000000..053fc534b Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/simple/00000.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/simple/00001.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/simple/00001.png new file mode 100644 index 000000000..e033929ec Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/simple/00001.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/simple/00002.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/simple/00002.png new file mode 100644 index 000000000..8b7980241 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/simple/00002.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/simple/00003.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/simple/00003.png new file mode 100644 index 000000000..97eab5d99 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/simple/00003.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/simple/00004.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/simple/00004.png new file mode 100644 index 000000000..7a12bcc4d Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/simple/00004.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/simple/00005.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/simple/00005.png new file mode 100644 index 000000000..78b15b726 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/simple/00005.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_simple_transaction/00006.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/simple/00006.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_sign_simple_transaction/00006.png rename to tests/integration/nano/snapshots/nanos/test_sign_transaction/simple/00006.png diff --git a/tests/integration/nano/snapshots/nanos/test_too_complex_transaction/00007.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/simple/00007.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_too_complex_transaction/00007.png rename to tests/integration/nano/snapshots/nanos/test_sign_transaction/simple/00007.png diff --git a/tests/integration/nano/snapshots/nanos/test_too_complex_transaction/00008.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/simple/00008.png similarity index 100% rename from tests/integration/nano/snapshots/nanos/test_too_complex_transaction/00008.png rename to tests/integration/nano/snapshots/nanos/test_sign_transaction/simple/00008.png diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/simple/00009.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/simple/00009.png new file mode 100644 index 000000000..7e0e23820 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/simple/00009.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/stake/00000.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/stake/00000.png new file mode 100644 index 000000000..053fc534b Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/stake/00000.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/stake/00001.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/stake/00001.png new file mode 100644 index 000000000..e033929ec Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/stake/00001.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/stake/00002.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/stake/00002.png new file mode 100644 index 000000000..6e0500422 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/stake/00002.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/stake/00003.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/stake/00003.png new file mode 100644 index 000000000..0d3ab6909 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/stake/00003.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/stake/00004.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/stake/00004.png new file mode 100644 index 000000000..854d29ddb Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/stake/00004.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/stake/00005.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/stake/00005.png new file mode 100644 index 000000000..18da5662e Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/stake/00005.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/stake/00006.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/stake/00006.png new file mode 100644 index 000000000..4027411b7 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/stake/00006.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/stake/00007.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/stake/00007.png new file mode 100644 index 000000000..28e21d7bb Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/stake/00007.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/stake/00008.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/stake/00008.png new file mode 100644 index 000000000..6b463a2ba Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/stake/00008.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/stake/00009.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/stake/00009.png new file mode 100644 index 000000000..6d7683ae9 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/stake/00009.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/stake/00010.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/stake/00010.png new file mode 100644 index 000000000..f7dcb2034 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/stake/00010.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/stake/00011.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/stake/00011.png new file mode 100644 index 000000000..ea964d444 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/stake/00011.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/stake/00012.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/stake/00012.png new file mode 100644 index 000000000..7e0e23820 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/stake/00012.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/unstake/00000.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/unstake/00000.png new file mode 100644 index 000000000..053fc534b Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/unstake/00000.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/unstake/00001.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/unstake/00001.png new file mode 100644 index 000000000..e033929ec Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/unstake/00001.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/unstake/00002.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/unstake/00002.png new file mode 100644 index 000000000..6e0500422 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/unstake/00002.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/unstake/00003.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/unstake/00003.png new file mode 100644 index 000000000..0d3ab6909 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/unstake/00003.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/unstake/00004.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/unstake/00004.png new file mode 100644 index 000000000..854d29ddb Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/unstake/00004.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/unstake/00005.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/unstake/00005.png new file mode 100644 index 000000000..18da5662e Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/unstake/00005.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/unstake/00006.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/unstake/00006.png new file mode 100644 index 000000000..4027411b7 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/unstake/00006.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/unstake/00007.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/unstake/00007.png new file mode 100644 index 000000000..92b4eda73 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/unstake/00007.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/unstake/00008.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/unstake/00008.png new file mode 100644 index 000000000..6b463a2ba Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/unstake/00008.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/unstake/00009.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/unstake/00009.png new file mode 100644 index 000000000..6d7683ae9 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/unstake/00009.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/unstake/00010.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/unstake/00010.png new file mode 100644 index 000000000..9d926e91f Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/unstake/00010.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/unstake/00011.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/unstake/00011.png new file mode 100644 index 000000000..ea964d444 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/unstake/00011.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transaction/unstake/00012.png b/tests/integration/nano/snapshots/nanos/test_sign_transaction/unstake/00012.png new file mode 100644 index 000000000..7e0e23820 Binary files /dev/null and b/tests/integration/nano/snapshots/nanos/test_sign_transaction/unstake/00012.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transfer_ticket/00008.png b/tests/integration/nano/snapshots/nanos/test_sign_transfer_ticket/00008.png index 92b4bce4e..8abd564b4 100644 Binary files a/tests/integration/nano/snapshots/nanos/test_sign_transfer_ticket/00008.png and b/tests/integration/nano/snapshots/nanos/test_sign_transfer_ticket/00008.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transfer_ticket/00009.png b/tests/integration/nano/snapshots/nanos/test_sign_transfer_ticket/00009.png index 8abd564b4..d8eff91bb 100644 Binary files a/tests/integration/nano/snapshots/nanos/test_sign_transfer_ticket/00009.png and b/tests/integration/nano/snapshots/nanos/test_sign_transfer_ticket/00009.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transfer_ticket/00010.png b/tests/integration/nano/snapshots/nanos/test_sign_transfer_ticket/00010.png index d8eff91bb..ed081f141 100644 Binary files a/tests/integration/nano/snapshots/nanos/test_sign_transfer_ticket/00010.png and b/tests/integration/nano/snapshots/nanos/test_sign_transfer_ticket/00010.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transfer_ticket/00011.png b/tests/integration/nano/snapshots/nanos/test_sign_transfer_ticket/00011.png index ed081f141..2ba8b0329 100644 Binary files a/tests/integration/nano/snapshots/nanos/test_sign_transfer_ticket/00011.png and b/tests/integration/nano/snapshots/nanos/test_sign_transfer_ticket/00011.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transfer_ticket/00012.png b/tests/integration/nano/snapshots/nanos/test_sign_transfer_ticket/00012.png index 2ba8b0329..e725e1f9e 100644 Binary files a/tests/integration/nano/snapshots/nanos/test_sign_transfer_ticket/00012.png and b/tests/integration/nano/snapshots/nanos/test_sign_transfer_ticket/00012.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transfer_ticket/00013.png b/tests/integration/nano/snapshots/nanos/test_sign_transfer_ticket/00013.png index e725e1f9e..1c5ab6154 100644 Binary files a/tests/integration/nano/snapshots/nanos/test_sign_transfer_ticket/00013.png and b/tests/integration/nano/snapshots/nanos/test_sign_transfer_ticket/00013.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transfer_ticket/00014.png b/tests/integration/nano/snapshots/nanos/test_sign_transfer_ticket/00014.png index 1c5ab6154..218dc0511 100644 Binary files a/tests/integration/nano/snapshots/nanos/test_sign_transfer_ticket/00014.png and b/tests/integration/nano/snapshots/nanos/test_sign_transfer_ticket/00014.png differ diff --git a/tests/integration/nano/snapshots/nanos/test_sign_transfer_ticket/00015.png b/tests/integration/nano/snapshots/nanos/test_sign_transfer_ticket/00015.png index 218dc0511..7e0e23820 100644 Binary files a/tests/integration/nano/snapshots/nanos/test_sign_transfer_ticket/00015.png and b/tests/integration/nano/snapshots/nanos/test_sign_transfer_ticket/00015.png differ diff --git a/tests/integration/nano/snapshots/nanos/version.png b/tests/integration/nano/snapshots/nanos/version.png index b3aaadcc8..13709e273 100644 Binary files a/tests/integration/nano/snapshots/nanos/version.png and b/tests/integration/nano/snapshots/nanos/version.png differ diff --git a/tests/integration/nano/snapshots/nanosp/back.png b/tests/integration/nano/snapshots/nanosp/back.png index 5da237b76..e06738f46 100644 Binary files a/tests/integration/nano/snapshots/nanosp/back.png and b/tests/integration/nano/snapshots/nanosp/back.png differ diff --git a/tests/integration/nano/snapshots/nanosp/home.png b/tests/integration/nano/snapshots/nanosp/home.png index 39ed6ff59..13403d2eb 100644 Binary files a/tests/integration/nano/snapshots/nanosp/home.png and b/tests/integration/nano/snapshots/nanosp/home.png differ diff --git a/tests/integration/nano/snapshots/nanosp/quit.png b/tests/integration/nano/snapshots/nanosp/quit.png index 24033fcb8..bcb20c683 100644 Binary files a/tests/integration/nano/snapshots/nanosp/quit.png and b/tests/integration/nano/snapshots/nanosp/quit.png differ diff --git a/tests/integration/nano/snapshots/nanosp/settings.png b/tests/integration/nano/snapshots/nanosp/settings.png index 99d3e4228..d885fe67b 100644 Binary files a/tests/integration/nano/snapshots/nanosp/settings.png and b/tests/integration/nano/snapshots/nanosp/settings.png differ diff --git a/tests/integration/nano/snapshots/nanosp/settings_blindsign_off.png b/tests/integration/nano/snapshots/nanosp/settings_blindsign_off.png new file mode 100644 index 000000000..3ea6ff33a Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/settings_blindsign_off.png differ diff --git a/tests/integration/nano/snapshots/nanosp/settings_blindsign_on.png b/tests/integration/nano/snapshots/nanosp/settings_blindsign_on.png new file mode 100644 index 000000000..94d6d85b3 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/settings_blindsign_on.png differ diff --git a/tests/integration/nano/snapshots/nanosp/settings_expert_mode_disabled.png b/tests/integration/nano/snapshots/nanosp/settings_expert_mode_disabled.png index f19ea84c9..c38eac887 100644 Binary files a/tests/integration/nano/snapshots/nanosp/settings_expert_mode_disabled.png and b/tests/integration/nano/snapshots/nanosp/settings_expert_mode_disabled.png differ diff --git a/tests/integration/nano/snapshots/nanosp/settings_expert_mode_enabled.png b/tests/integration/nano/snapshots/nanosp/settings_expert_mode_enabled.png index 90dc4e8dc..7adaf2fb3 100644 Binary files a/tests/integration/nano/snapshots/nanosp/settings_expert_mode_enabled.png and b/tests/integration/nano/snapshots/nanosp/settings_expert_mode_enabled.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_nanosp_regression_potential_empty_screen/00007.png b/tests/integration/nano/snapshots/nanosp/test_nanosp_regression_potential_empty_screen/00007.png index 59fce75cd..ba44e67e0 100644 Binary files a/tests/integration/nano/snapshots/nanosp/test_nanosp_regression_potential_empty_screen/00007.png and b/tests/integration/nano/snapshots/nanosp/test_nanosp_regression_potential_empty_screen/00007.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_nanosp_regression_potential_empty_screen/00008.png b/tests/integration/nano/snapshots/nanosp/test_nanosp_regression_potential_empty_screen/00008.png index ba44e67e0..f25662e2c 100644 Binary files a/tests/integration/nano/snapshots/nanosp/test_nanosp_regression_potential_empty_screen/00008.png and b/tests/integration/nano/snapshots/nanosp/test_nanosp_regression_potential_empty_screen/00008.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_nanosp_regression_potential_empty_screen/00009.png b/tests/integration/nano/snapshots/nanosp/test_nanosp_regression_potential_empty_screen/00009.png index f25662e2c..5faed81de 100644 Binary files a/tests/integration/nano/snapshots/nanosp/test_nanosp_regression_potential_empty_screen/00009.png and b/tests/integration/nano/snapshots/nanosp/test_nanosp_regression_potential_empty_screen/00009.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_nanosp_regression_potential_empty_screen/00010.png b/tests/integration/nano/snapshots/nanosp/test_nanosp_regression_potential_empty_screen/00010.png index 5faed81de..7ef47f863 100644 Binary files a/tests/integration/nano/snapshots/nanosp/test_nanosp_regression_potential_empty_screen/00010.png and b/tests/integration/nano/snapshots/nanosp/test_nanosp_regression_potential_empty_screen/00010.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_nanosp_regression_potential_empty_screen/00011.png b/tests/integration/nano/snapshots/nanosp/test_nanosp_regression_potential_empty_screen/00011.png index 7ef47f863..ed2a0607c 100644 Binary files a/tests/integration/nano/snapshots/nanosp/test_nanosp_regression_potential_empty_screen/00011.png and b/tests/integration/nano/snapshots/nanosp/test_nanosp_regression_potential_empty_screen/00011.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_nanosp_regression_potential_empty_screen/00012.png b/tests/integration/nano/snapshots/nanosp/test_nanosp_regression_potential_empty_screen/00012.png index ed2a0607c..7508cbd76 100644 Binary files a/tests/integration/nano/snapshots/nanosp/test_nanosp_regression_potential_empty_screen/00012.png and b/tests/integration/nano/snapshots/nanosp/test_nanosp_regression_potential_empty_screen/00012.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_nanosp_regression_potential_empty_screen/00013.png b/tests/integration/nano/snapshots/nanosp/test_nanosp_regression_potential_empty_screen/00013.png index 7508cbd76..471324463 100644 Binary files a/tests/integration/nano/snapshots/nanosp/test_nanosp_regression_potential_empty_screen/00013.png and b/tests/integration/nano/snapshots/nanosp/test_nanosp_regression_potential_empty_screen/00013.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_parsing_errors/wrong_last_packet/00007.png b/tests/integration/nano/snapshots/nanosp/test_parsing_errors/wrong_last_packet/00007.png index 39ed6ff59..13403d2eb 100644 Binary files a/tests/integration/nano/snapshots/nanosp/test_parsing_errors/wrong_last_packet/00007.png and b/tests/integration/nano/snapshots/nanosp/test_parsing_errors/wrong_last_packet/00007.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_reject_transaction/00000.png b/tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00000.png similarity index 100% rename from tests/integration/nano/snapshots/nanosp/test_reject_transaction/00000.png rename to tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00000.png diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00001.png b/tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00001.png new file mode 100644 index 000000000..780c4b54e Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00001.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_reject_transaction/00002.png b/tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00002.png similarity index 100% rename from tests/integration/nano/snapshots/nanosp/test_reject_transaction/00002.png rename to tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00002.png diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_simple_transaction/00003.png b/tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00003.png similarity index 100% rename from tests/integration/nano/snapshots/nanosp/test_sign_simple_transaction/00003.png rename to tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00003.png diff --git a/tests/integration/nano/snapshots/nanosp/test_reject_transaction/00004.png b/tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00004.png similarity index 100% rename from tests/integration/nano/snapshots/nanosp/test_reject_transaction/00004.png rename to tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00004.png diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00005.png b/tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00005.png new file mode 100644 index 000000000..7f0fb6546 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00005.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00006.png b/tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00006.png new file mode 100644 index 000000000..742ede852 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00006.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_reject_transaction/00008.png b/tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00007.png similarity index 100% rename from tests/integration/nano/snapshots/nanosp/test_reject_transaction/00008.png rename to tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00007.png diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00008.png b/tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00008.png new file mode 100644 index 000000000..a2c842416 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00008.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00009.png b/tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00009.png new file mode 100644 index 000000000..c1c7ce97d Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00009.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00010.png b/tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00010.png new file mode 100644 index 000000000..c1811249f Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00010.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_simple_transaction/00002.png b/tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00011.png similarity index 100% rename from tests/integration/nano/snapshots/nanosp/test_sign_simple_transaction/00002.png rename to tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00011.png diff --git a/tests/integration/nano/snapshots/nanosp/test_reject_transaction/00003.png b/tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00012.png similarity index 100% rename from tests/integration/nano/snapshots/nanosp/test_reject_transaction/00003.png rename to tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00012.png diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00013.png b/tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00013.png new file mode 100644 index 000000000..4ce7d2937 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00013.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00014.png b/tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00014.png new file mode 100644 index 000000000..a3da0374d Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00014.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00015.png b/tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00015.png new file mode 100644 index 000000000..878150dd5 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00015.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00016.png b/tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00016.png new file mode 100644 index 000000000..976d816ff Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00016.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00017.png b/tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00017.png new file mode 100644 index 000000000..b66fc657e Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00017.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00018.png b/tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00018.png new file mode 100644 index 000000000..f8860cd32 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00018.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00019.png b/tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00019.png new file mode 100644 index 000000000..ff518831a Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00019.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_nanosp_regression_potential_empty_screen/00014.png b/tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00020.png similarity index 100% rename from tests/integration/nano/snapshots/nanosp/test_nanosp_regression_potential_empty_screen/00014.png rename to tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00020.png diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_origination/00009.png b/tests/integration/nano/snapshots/nanosp/test_sign_origination/00009.png index 59fce75cd..b236f41f2 100644 Binary files a/tests/integration/nano/snapshots/nanosp/test_sign_origination/00009.png and b/tests/integration/nano/snapshots/nanosp/test_sign_origination/00009.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_origination/00010.png b/tests/integration/nano/snapshots/nanosp/test_sign_origination/00010.png index b236f41f2..471324463 100644 Binary files a/tests/integration/nano/snapshots/nanosp/test_sign_origination/00010.png and b/tests/integration/nano/snapshots/nanosp/test_sign_origination/00010.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_sc_rollup_originate/no_whitelist/00013.png b/tests/integration/nano/snapshots/nanosp/test_sign_sc_rollup_originate/no_whitelist/00013.png index 59fce75cd..82d06c4bd 100644 Binary files a/tests/integration/nano/snapshots/nanosp/test_sign_sc_rollup_originate/no_whitelist/00013.png and b/tests/integration/nano/snapshots/nanosp/test_sign_sc_rollup_originate/no_whitelist/00013.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_sc_rollup_originate/no_whitelist/00014.png b/tests/integration/nano/snapshots/nanosp/test_sign_sc_rollup_originate/no_whitelist/00014.png index 82d06c4bd..471324463 100644 Binary files a/tests/integration/nano/snapshots/nanosp/test_sign_sc_rollup_originate/no_whitelist/00014.png and b/tests/integration/nano/snapshots/nanosp/test_sign_sc_rollup_originate/no_whitelist/00014.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_sc_rollup_originate/with_whitelist/00013.png b/tests/integration/nano/snapshots/nanosp/test_sign_sc_rollup_originate/with_whitelist/00013.png index 59fce75cd..82d06c4bd 100644 Binary files a/tests/integration/nano/snapshots/nanosp/test_sign_sc_rollup_originate/with_whitelist/00013.png and b/tests/integration/nano/snapshots/nanosp/test_sign_sc_rollup_originate/with_whitelist/00013.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_sc_rollup_originate/with_whitelist/00014.png b/tests/integration/nano/snapshots/nanosp/test_sign_sc_rollup_originate/with_whitelist/00014.png index 82d06c4bd..7e7736a36 100644 Binary files a/tests/integration/nano/snapshots/nanosp/test_sign_sc_rollup_originate/with_whitelist/00014.png and b/tests/integration/nano/snapshots/nanosp/test_sign_sc_rollup_originate/with_whitelist/00014.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_sc_rollup_originate/with_whitelist/00015.png b/tests/integration/nano/snapshots/nanosp/test_sign_sc_rollup_originate/with_whitelist/00015.png index 7e7736a36..1e7f04116 100644 Binary files a/tests/integration/nano/snapshots/nanosp/test_sign_sc_rollup_originate/with_whitelist/00015.png and b/tests/integration/nano/snapshots/nanosp/test_sign_sc_rollup_originate/with_whitelist/00015.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_sc_rollup_originate/with_whitelist/00016.png b/tests/integration/nano/snapshots/nanosp/test_sign_sc_rollup_originate/with_whitelist/00016.png index 1e7f04116..fed4816f7 100644 Binary files a/tests/integration/nano/snapshots/nanosp/test_sign_sc_rollup_originate/with_whitelist/00016.png and b/tests/integration/nano/snapshots/nanosp/test_sign_sc_rollup_originate/with_whitelist/00016.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_sc_rollup_originate/with_whitelist/00017.png b/tests/integration/nano/snapshots/nanosp/test_sign_sc_rollup_originate/with_whitelist/00017.png index fed4816f7..471324463 100644 Binary files a/tests/integration/nano/snapshots/nanosp/test_sign_sc_rollup_originate/with_whitelist/00017.png and b/tests/integration/nano/snapshots/nanosp/test_sign_sc_rollup_originate/with_whitelist/00017.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_simple_transaction/00000.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00000.png similarity index 100% rename from tests/integration/nano/snapshots/nanosp/test_sign_simple_transaction/00000.png rename to tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00000.png diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00001.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00001.png new file mode 100644 index 000000000..de6359a69 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00001.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_reject_transaction/00002.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00002.png similarity index 100% rename from tests/integration/nano/snapshots/nanox/test_reject_transaction/00002.png rename to tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00002.png diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00003.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00003.png new file mode 100644 index 000000000..f2a96c69a Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00003.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_simple_transaction/00004.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00004.png similarity index 100% rename from tests/integration/nano/snapshots/nanosp/test_sign_simple_transaction/00004.png rename to tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00004.png diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00005.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00005.png new file mode 100644 index 000000000..84ea3a780 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00005.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00006.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00006.png new file mode 100644 index 000000000..2f514b48f Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00006.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_simple_transaction/00002.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00007.png similarity index 100% rename from tests/integration/nano/snapshots/nanox/test_sign_simple_transaction/00002.png rename to tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00007.png diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00008.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00008.png new file mode 100644 index 000000000..1e92a440b Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00008.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00009.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00009.png new file mode 100644 index 000000000..644c2510e Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00009.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00010.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00010.png new file mode 100644 index 000000000..e6d3d0b84 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00010.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00011.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00011.png new file mode 100644 index 000000000..aefecfb01 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00011.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00012.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00012.png new file mode 100644 index 000000000..54e6ad365 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00012.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00013.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00013.png new file mode 100644 index 000000000..df6e01718 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00013.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00014.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00014.png new file mode 100644 index 000000000..5939be56d Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00014.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00015.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00015.png new file mode 100644 index 000000000..79a3fcd57 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00015.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00016.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00016.png new file mode 100644 index 000000000..cc5934903 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00016.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/summary/00000.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/summary/00000.png new file mode 100644 index 000000000..05d4582e2 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/summary/00000.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/summary/00001.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/summary/00001.png new file mode 100644 index 000000000..948c88cdb Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/summary/00001.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/summary/00002.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/summary/00002.png new file mode 100644 index 000000000..4c7609dac Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/summary/00002.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/summary/00003.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/summary/00003.png new file mode 100644 index 000000000..26526a94f Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/summary/00003.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_reject_transaction/00014.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/summary/00004.png similarity index 100% rename from tests/integration/nano/snapshots/nanosp/test_reject_transaction/00014.png rename to tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/summary/00004.png diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/00000.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00000.png similarity index 100% rename from tests/integration/nano/snapshots/nanosp/test_sign_transaction/00000.png rename to tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00000.png diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00001.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00001.png new file mode 100644 index 000000000..de6359a69 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00001.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00002.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00002.png new file mode 100644 index 000000000..fc2f4b729 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00002.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00003.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00003.png new file mode 100644 index 000000000..f2a96c69a Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00003.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_reject_transaction/00004.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00004.png similarity index 100% rename from tests/integration/nano/snapshots/nanox/test_reject_transaction/00004.png rename to tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00004.png diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00005.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00005.png new file mode 100644 index 000000000..84ea3a780 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00005.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00006.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00006.png new file mode 100644 index 000000000..2f514b48f Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00006.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00007.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00007.png new file mode 100644 index 000000000..fc2f4b729 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00007.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00008.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00008.png new file mode 100644 index 000000000..1e92a440b Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00008.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00009.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00009.png new file mode 100644 index 000000000..644c2510e Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00009.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00010.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00010.png new file mode 100644 index 000000000..e6d3d0b84 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00010.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00011.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00011.png new file mode 100644 index 000000000..aefecfb01 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00011.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00012.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00012.png new file mode 100644 index 000000000..54e6ad365 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00012.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00013.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00013.png new file mode 100644 index 000000000..df6e01718 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00013.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00014.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00014.png new file mode 100644 index 000000000..5939be56d Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00014.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00015.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00015.png new file mode 100644 index 000000000..79a3fcd57 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00015.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00016.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00016.png new file mode 100644 index 000000000..cc5934903 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00016.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/summary/00000.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/summary/00000.png new file mode 100644 index 000000000..05d4582e2 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/summary/00000.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/summary/00001.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/summary/00001.png new file mode 100644 index 000000000..948c88cdb Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/summary/00001.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/summary/00002.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/summary/00002.png new file mode 100644 index 000000000..4c7609dac Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/summary/00002.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/summary/00003.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/summary/00003.png new file mode 100644 index 000000000..26526a94f Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/summary/00003.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_origination/00011.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/summary/00004.png similarity index 100% rename from tests/integration/nano/snapshots/nanosp/test_sign_origination/00011.png rename to tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/summary/00004.png diff --git a/tests/integration/nano/snapshots/nanosp/test_reject_transaction/00015.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/summary/00005.png similarity index 100% rename from tests/integration/nano/snapshots/nanosp/test_reject_transaction/00015.png rename to tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/summary/00005.png diff --git a/tests/integration/nano/snapshots/nanosp/test_too_complex_transaction/00000.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00000.png similarity index 100% rename from tests/integration/nano/snapshots/nanosp/test_too_complex_transaction/00000.png rename to tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00000.png diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00001.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00001.png new file mode 100644 index 000000000..de6359a69 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00001.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00002.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00002.png new file mode 100644 index 000000000..fc2f4b729 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00002.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00003.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00003.png new file mode 100644 index 000000000..f2a96c69a Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00003.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_simple_transaction/00004.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00004.png similarity index 100% rename from tests/integration/nano/snapshots/nanox/test_sign_simple_transaction/00004.png rename to tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00004.png diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00005.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00005.png new file mode 100644 index 000000000..84ea3a780 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00005.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00006.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00006.png new file mode 100644 index 000000000..2f514b48f Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00006.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00007.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00007.png new file mode 100644 index 000000000..fc2f4b729 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00007.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00008.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00008.png new file mode 100644 index 000000000..1e92a440b Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00008.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00009.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00009.png new file mode 100644 index 000000000..644c2510e Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00009.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00010.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00010.png new file mode 100644 index 000000000..e6d3d0b84 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00010.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00011.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00011.png new file mode 100644 index 000000000..aefecfb01 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00011.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00012.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00012.png new file mode 100644 index 000000000..54e6ad365 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00012.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00013.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00013.png new file mode 100644 index 000000000..df6e01718 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00013.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00014.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00014.png new file mode 100644 index 000000000..5939be56d Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00014.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00015.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00015.png new file mode 100644 index 000000000..79a3fcd57 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00015.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00016.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00016.png new file mode 100644 index 000000000..cc5934903 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00016.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_reject_transaction/00015.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00017.png similarity index 100% rename from tests/integration/nano/snapshots/nanox/test_reject_transaction/00015.png rename to tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00017.png diff --git a/tests/integration/nano/snapshots/nanox/test_reject_transaction/00000.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00000.png similarity index 100% rename from tests/integration/nano/snapshots/nanox/test_reject_transaction/00000.png rename to tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00000.png diff --git a/tests/integration/nano/snapshots/nanosp/test_reject_transaction/00001.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00001.png similarity index 100% rename from tests/integration/nano/snapshots/nanosp/test_reject_transaction/00001.png rename to tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00001.png diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00002.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00002.png new file mode 100644 index 000000000..fc2f4b729 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00002.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00003.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00003.png new file mode 100644 index 000000000..0f72c5878 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00003.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00004.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00004.png new file mode 100644 index 000000000..e2e092645 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00004.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00005.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00005.png new file mode 100644 index 000000000..37d05de73 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00005.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00006.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00006.png new file mode 100644 index 000000000..6ec712369 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00006.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00007.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00007.png new file mode 100644 index 000000000..2f514b48f Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00007.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00008.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00008.png new file mode 100644 index 000000000..fc2f4b729 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00008.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00009.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00009.png new file mode 100644 index 000000000..f2a96c69a Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00009.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00010.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00010.png new file mode 100644 index 000000000..85987d6ca Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00010.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00011.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00011.png new file mode 100644 index 000000000..de15b07c8 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00011.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00012.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00012.png new file mode 100644 index 000000000..159239c08 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00012.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00013.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00013.png new file mode 100644 index 000000000..df6e01718 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00013.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00014.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00014.png new file mode 100644 index 000000000..5939be56d Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00014.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00015.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00015.png new file mode 100644 index 000000000..79a3fcd57 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00015.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00016.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00016.png new file mode 100644 index 000000000..cc5934903 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00016.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/summary/00000.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/summary/00000.png new file mode 100644 index 000000000..405623182 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/summary/00000.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/summary/00001.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/summary/00001.png new file mode 100644 index 000000000..996e9aa82 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/summary/00001.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/summary/00002.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/summary/00002.png new file mode 100644 index 000000000..24abd9860 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/summary/00002.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/summary/00003.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/summary/00003.png new file mode 100644 index 000000000..c8b523cb6 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/summary/00003.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_sc_rollup_originate/no_whitelist/00015.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/summary/00004.png similarity index 100% rename from tests/integration/nano/snapshots/nanosp/test_sign_sc_rollup_originate/no_whitelist/00015.png rename to tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/summary/00004.png diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/blindsigning/00000.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/blindsigning/00000.png new file mode 100644 index 000000000..d3d5ed219 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/blindsigning/00000.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/blindsigning/00001.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/blindsigning/00001.png new file mode 100644 index 000000000..886c86005 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/blindsigning/00001.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_sc_rollup_originate/with_whitelist/00018.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/blindsigning/00002.png similarity index 100% rename from tests/integration/nano/snapshots/nanosp/test_sign_sc_rollup_originate/with_whitelist/00018.png rename to tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/blindsigning/00002.png diff --git a/tests/integration/nano/snapshots/nanox/test_sign_simple_transaction/00000.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00000.png similarity index 100% rename from tests/integration/nano/snapshots/nanox/test_sign_simple_transaction/00000.png rename to tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00000.png diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00001.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00001.png new file mode 100644 index 000000000..da5df5748 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00001.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00002.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00002.png new file mode 100644 index 000000000..fc2f4b729 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00002.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00003.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00003.png new file mode 100644 index 000000000..b27347af0 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00003.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00004.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00004.png new file mode 100644 index 000000000..36a4ccfca Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00004.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00005.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00005.png new file mode 100644 index 000000000..0ba444119 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00005.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00006.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00006.png new file mode 100644 index 000000000..423e0a8a7 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00006.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00007.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00007.png new file mode 100644 index 000000000..0aefc26a1 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00007.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00008.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00008.png new file mode 100644 index 000000000..33fd15d59 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00008.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00009.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00009.png new file mode 100644 index 000000000..72e28d599 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00009.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00010.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00010.png new file mode 100644 index 000000000..470006f56 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00010.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00011.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00011.png new file mode 100644 index 000000000..547657025 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00011.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00012.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00012.png new file mode 100644 index 000000000..7ed9b2d39 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00012.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00013.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00013.png new file mode 100644 index 000000000..df6e01718 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00013.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00014.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00014.png new file mode 100644 index 000000000..ace200467 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00014.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00015.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00015.png new file mode 100644 index 000000000..79a3fcd57 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00015.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00016.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00016.png new file mode 100644 index 000000000..3d12ba761 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00016.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00017.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00017.png new file mode 100644 index 000000000..c17e89d15 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00017.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00018.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00018.png new file mode 100644 index 000000000..cc5934903 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00018.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/blindsigning/00000.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/blindsigning/00000.png new file mode 100644 index 000000000..d3d5ed219 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/blindsigning/00000.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/blindsigning/00001.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/blindsigning/00001.png new file mode 100644 index 000000000..886c86005 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/blindsigning/00001.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_simple_transaction/00007.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/blindsigning/00002.png similarity index 100% rename from tests/integration/nano/snapshots/nanosp/test_sign_simple_transaction/00007.png rename to tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/blindsigning/00002.png diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/blindsigning/00003.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/blindsigning/00003.png new file mode 100644 index 000000000..137ca9e49 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/blindsigning/00003.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/00000.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00000.png similarity index 100% rename from tests/integration/nano/snapshots/nanox/test_sign_transaction/00000.png rename to tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00000.png diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00001.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00001.png new file mode 100644 index 000000000..da5df5748 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00001.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00002.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00002.png new file mode 100644 index 000000000..fc2f4b729 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00002.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00003.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00003.png new file mode 100644 index 000000000..b27347af0 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00003.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00004.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00004.png new file mode 100644 index 000000000..36a4ccfca Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00004.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00005.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00005.png new file mode 100644 index 000000000..0ba444119 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00005.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00006.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00006.png new file mode 100644 index 000000000..423e0a8a7 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00006.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00007.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00007.png new file mode 100644 index 000000000..0aefc26a1 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00007.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00008.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00008.png new file mode 100644 index 000000000..33fd15d59 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00008.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00009.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00009.png new file mode 100644 index 000000000..72e28d599 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00009.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00010.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00010.png new file mode 100644 index 000000000..470006f56 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00010.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00011.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00011.png new file mode 100644 index 000000000..547657025 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00011.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00012.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00012.png new file mode 100644 index 000000000..7ed9b2d39 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00012.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00013.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00013.png new file mode 100644 index 000000000..df6e01718 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00013.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00014.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00014.png new file mode 100644 index 000000000..ace200467 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00014.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00015.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00015.png new file mode 100644 index 000000000..79a3fcd57 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00015.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00016.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00016.png new file mode 100644 index 000000000..3d12ba761 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00016.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00017.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00017.png new file mode 100644 index 000000000..c17e89d15 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00017.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00018.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00018.png new file mode 100644 index 000000000..cc5934903 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00018.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_too_complex_transaction/00000.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00000.png similarity index 100% rename from tests/integration/nano/snapshots/nanox/test_too_complex_transaction/00000.png rename to tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00000.png diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00001.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00001.png new file mode 100644 index 000000000..da5df5748 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00001.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00002.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00002.png new file mode 100644 index 000000000..fc2f4b729 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00002.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00003.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00003.png new file mode 100644 index 000000000..b27347af0 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00003.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00004.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00004.png new file mode 100644 index 000000000..36a4ccfca Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00004.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00005.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00005.png new file mode 100644 index 000000000..0ba444119 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00005.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00006.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00006.png new file mode 100644 index 000000000..423e0a8a7 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00006.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00007.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00007.png new file mode 100644 index 000000000..0aefc26a1 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00007.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00008.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00008.png new file mode 100644 index 000000000..33fd15d59 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00008.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00009.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00009.png new file mode 100644 index 000000000..72e28d599 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00009.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00010.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00010.png new file mode 100644 index 000000000..470006f56 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00010.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00011.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00011.png new file mode 100644 index 000000000..547657025 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00011.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00012.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00012.png new file mode 100644 index 000000000..7ed9b2d39 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00012.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00013.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00013.png new file mode 100644 index 000000000..df6e01718 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00013.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00014.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00014.png new file mode 100644 index 000000000..ace200467 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00014.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00015.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00015.png new file mode 100644 index 000000000..79a3fcd57 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00015.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00016.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00016.png new file mode 100644 index 000000000..3d12ba761 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00016.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00017.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00017.png new file mode 100644 index 000000000..c17e89d15 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00017.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00018.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00018.png new file mode 100644 index 000000000..cc5934903 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00018.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00019.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00019.png new file mode 100644 index 000000000..137ca9e49 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00019.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00000.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00000.png new file mode 100644 index 000000000..9fa51df29 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00000.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00001.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00001.png new file mode 100644 index 000000000..dc659afb5 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00001.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00002.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00002.png new file mode 100644 index 000000000..fc2f4b729 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00002.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00003.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00003.png new file mode 100644 index 000000000..e91f19857 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00003.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00004.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00004.png new file mode 100644 index 000000000..e0c67ba8b Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00004.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00005.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00005.png new file mode 100644 index 000000000..1d750731e Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00005.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00006.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00006.png new file mode 100644 index 000000000..66224260f Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00006.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00007.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00007.png new file mode 100644 index 000000000..f66f413e0 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00007.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00008.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00008.png new file mode 100644 index 000000000..777e2e30e Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00008.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00009.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00009.png new file mode 100644 index 000000000..75f929c35 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00009.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00010.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00010.png new file mode 100644 index 000000000..bf199eafa Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00010.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00011.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00011.png new file mode 100644 index 000000000..be179b587 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00011.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00012.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00012.png new file mode 100644 index 000000000..0baff4105 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00012.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00013.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00013.png new file mode 100644 index 000000000..df6e01718 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00013.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00014.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00014.png new file mode 100644 index 000000000..5939be56d Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00014.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00015.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00015.png new file mode 100644 index 000000000..79a3fcd57 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00015.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00016.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00016.png new file mode 100644 index 000000000..cc5934903 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00016.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/summary/00000.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/summary/00000.png new file mode 100644 index 000000000..94b1ae9f2 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/summary/00000.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/summary/00001.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/summary/00001.png new file mode 100644 index 000000000..909f56736 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/summary/00001.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/summary/00002.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/summary/00002.png new file mode 100644 index 000000000..9d6d9ad3a Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/summary/00002.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/summary/00003.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/summary/00003.png new file mode 100644 index 000000000..50c26400f Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/summary/00003.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/00010.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/summary/00004.png similarity index 100% rename from tests/integration/nano/snapshots/nanosp/test_sign_transaction/00010.png rename to tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/summary/00004.png diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/basic/00000.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/basic/00000.png new file mode 100644 index 000000000..9fa51df29 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/basic/00000.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_simple_transaction/00001.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/basic/00001.png similarity index 100% rename from tests/integration/nano/snapshots/nanosp/test_sign_simple_transaction/00001.png rename to tests/integration/nano/snapshots/nanosp/test_sign_transaction/basic/00001.png diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/00002.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/basic/00002.png similarity index 100% rename from tests/integration/nano/snapshots/nanosp/test_sign_transaction/00002.png rename to tests/integration/nano/snapshots/nanosp/test_sign_transaction/basic/00002.png diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/00003.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/basic/00003.png similarity index 100% rename from tests/integration/nano/snapshots/nanosp/test_sign_transaction/00003.png rename to tests/integration/nano/snapshots/nanosp/test_sign_transaction/basic/00003.png diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/00004.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/basic/00004.png similarity index 100% rename from tests/integration/nano/snapshots/nanosp/test_sign_transaction/00004.png rename to tests/integration/nano/snapshots/nanosp/test_sign_transaction/basic/00004.png diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/00005.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/basic/00005.png similarity index 100% rename from tests/integration/nano/snapshots/nanosp/test_sign_transaction/00005.png rename to tests/integration/nano/snapshots/nanosp/test_sign_transaction/basic/00005.png diff --git a/tests/integration/nano/snapshots/nanosp/test_reject_transaction/00006.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/basic/00006.png similarity index 100% rename from tests/integration/nano/snapshots/nanosp/test_reject_transaction/00006.png rename to tests/integration/nano/snapshots/nanosp/test_sign_transaction/basic/00006.png diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/00007.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/basic/00007.png similarity index 100% rename from tests/integration/nano/snapshots/nanosp/test_sign_transaction/00007.png rename to tests/integration/nano/snapshots/nanosp/test_sign_transaction/basic/00007.png diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/00008.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/basic/00008.png similarity index 100% rename from tests/integration/nano/snapshots/nanosp/test_sign_transaction/00008.png rename to tests/integration/nano/snapshots/nanosp/test_sign_transaction/basic/00008.png diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/00009.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/basic/00009.png similarity index 100% rename from tests/integration/nano/snapshots/nanosp/test_sign_transaction/00009.png rename to tests/integration/nano/snapshots/nanosp/test_sign_transaction/basic/00009.png diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/00010.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/basic/00010.png similarity index 100% rename from tests/integration/nano/snapshots/nanox/test_sign_transaction/00010.png rename to tests/integration/nano/snapshots/nanosp/test_sign_transaction/basic/00010.png diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/complex/00000.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/complex/00000.png new file mode 100644 index 000000000..9fa51df29 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/complex/00000.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/00001.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/complex/00001.png similarity index 100% rename from tests/integration/nano/snapshots/nanosp/test_sign_transaction/00001.png rename to tests/integration/nano/snapshots/nanosp/test_sign_transaction/complex/00001.png diff --git a/tests/integration/nano/snapshots/nanosp/test_too_complex_transaction/00002.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/complex/00002.png similarity index 100% rename from tests/integration/nano/snapshots/nanosp/test_too_complex_transaction/00002.png rename to tests/integration/nano/snapshots/nanosp/test_sign_transaction/complex/00002.png diff --git a/tests/integration/nano/snapshots/nanosp/test_too_complex_transaction/00003.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/complex/00003.png similarity index 100% rename from tests/integration/nano/snapshots/nanosp/test_too_complex_transaction/00003.png rename to tests/integration/nano/snapshots/nanosp/test_sign_transaction/complex/00003.png diff --git a/tests/integration/nano/snapshots/nanosp/test_too_complex_transaction/00004.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/complex/00004.png similarity index 100% rename from tests/integration/nano/snapshots/nanosp/test_too_complex_transaction/00004.png rename to tests/integration/nano/snapshots/nanosp/test_sign_transaction/complex/00004.png diff --git a/tests/integration/nano/snapshots/nanosp/test_too_complex_transaction/00005.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/complex/00005.png similarity index 100% rename from tests/integration/nano/snapshots/nanosp/test_too_complex_transaction/00005.png rename to tests/integration/nano/snapshots/nanosp/test_sign_transaction/complex/00005.png diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_simple_transaction/00006.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/complex/00006.png similarity index 100% rename from tests/integration/nano/snapshots/nanosp/test_sign_simple_transaction/00006.png rename to tests/integration/nano/snapshots/nanosp/test_sign_transaction/complex/00006.png diff --git a/tests/integration/nano/snapshots/nanosp/test_too_complex_transaction/00007.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/complex/00007.png similarity index 100% rename from tests/integration/nano/snapshots/nanosp/test_too_complex_transaction/00007.png rename to tests/integration/nano/snapshots/nanosp/test_sign_transaction/complex/00007.png diff --git a/tests/integration/nano/snapshots/nanosp/test_too_complex_transaction/00008.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/complex/00008.png similarity index 100% rename from tests/integration/nano/snapshots/nanosp/test_too_complex_transaction/00008.png rename to tests/integration/nano/snapshots/nanosp/test_sign_transaction/complex/00008.png diff --git a/tests/integration/nano/snapshots/nanosp/test_too_complex_transaction/00009.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/complex/00009.png similarity index 100% rename from tests/integration/nano/snapshots/nanosp/test_too_complex_transaction/00009.png rename to tests/integration/nano/snapshots/nanosp/test_sign_transaction/complex/00009.png diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/delegate_parameters/00000.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/delegate_parameters/00000.png new file mode 100644 index 000000000..9fa51df29 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/delegate_parameters/00000.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_too_complex_transaction/00001.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/delegate_parameters/00001.png similarity index 100% rename from tests/integration/nano/snapshots/nanosp/test_too_complex_transaction/00001.png rename to tests/integration/nano/snapshots/nanosp/test_sign_transaction/delegate_parameters/00001.png diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/delegate_parameters/00002.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/delegate_parameters/00002.png new file mode 100644 index 000000000..bd3139cdd Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/delegate_parameters/00002.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/delegate_parameters/00003.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/delegate_parameters/00003.png new file mode 100644 index 000000000..f9d21814b Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/delegate_parameters/00003.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/delegate_parameters/00004.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/delegate_parameters/00004.png new file mode 100644 index 000000000..914563b11 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/delegate_parameters/00004.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_reject_transaction/00005.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/delegate_parameters/00005.png similarity index 100% rename from tests/integration/nano/snapshots/nanosp/test_reject_transaction/00005.png rename to tests/integration/nano/snapshots/nanosp/test_sign_transaction/delegate_parameters/00005.png diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/delegate_parameters/00006.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/delegate_parameters/00006.png new file mode 100644 index 000000000..e2923d155 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/delegate_parameters/00006.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/delegate_parameters/00007.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/delegate_parameters/00007.png new file mode 100644 index 000000000..edbb1c940 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/delegate_parameters/00007.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_reject_transaction/00008.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/delegate_parameters/00008.png similarity index 100% rename from tests/integration/nano/snapshots/nanox/test_reject_transaction/00008.png rename to tests/integration/nano/snapshots/nanosp/test_sign_transaction/delegate_parameters/00008.png diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/delegate_parameters/00009.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/delegate_parameters/00009.png new file mode 100644 index 000000000..85e22f17d Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/delegate_parameters/00009.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transfer_ticket/00013.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/delegate_parameters/00010.png similarity index 100% rename from tests/integration/nano/snapshots/nanosp/test_sign_transfer_ticket/00013.png rename to tests/integration/nano/snapshots/nanosp/test_sign_transaction/delegate_parameters/00010.png diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/finalize_unstake/00000.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/finalize_unstake/00000.png new file mode 100644 index 000000000..9fa51df29 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/finalize_unstake/00000.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_reject_transaction/00001.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/finalize_unstake/00001.png similarity index 100% rename from tests/integration/nano/snapshots/nanox/test_reject_transaction/00001.png rename to tests/integration/nano/snapshots/nanosp/test_sign_transaction/finalize_unstake/00001.png diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/finalize_unstake/00002.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/finalize_unstake/00002.png new file mode 100644 index 000000000..bd3139cdd Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/finalize_unstake/00002.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/finalize_unstake/00003.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/finalize_unstake/00003.png new file mode 100644 index 000000000..f9d21814b Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/finalize_unstake/00003.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/finalize_unstake/00004.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/finalize_unstake/00004.png new file mode 100644 index 000000000..914563b11 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/finalize_unstake/00004.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_reject_transaction/00005.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/finalize_unstake/00005.png similarity index 100% rename from tests/integration/nano/snapshots/nanox/test_reject_transaction/00005.png rename to tests/integration/nano/snapshots/nanosp/test_sign_transaction/finalize_unstake/00005.png diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/finalize_unstake/00006.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/finalize_unstake/00006.png new file mode 100644 index 000000000..e2923d155 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/finalize_unstake/00006.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/finalize_unstake/00007.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/finalize_unstake/00007.png new file mode 100644 index 000000000..76a2d6918 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/finalize_unstake/00007.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/finalize_unstake/00008.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/finalize_unstake/00008.png new file mode 100644 index 000000000..6b562f764 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/finalize_unstake/00008.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_reject_transaction/00014.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/finalize_unstake/00009.png similarity index 100% rename from tests/integration/nano/snapshots/nanox/test_reject_transaction/00014.png rename to tests/integration/nano/snapshots/nanosp/test_sign_transaction/finalize_unstake/00009.png diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/reject/00000.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/reject/00000.png new file mode 100644 index 000000000..9fa51df29 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/reject/00000.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_simple_transaction/00001.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/reject/00001.png similarity index 100% rename from tests/integration/nano/snapshots/nanox/test_sign_simple_transaction/00001.png rename to tests/integration/nano/snapshots/nanosp/test_sign_transaction/reject/00001.png diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/reject/00002.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/reject/00002.png new file mode 100644 index 000000000..fc2f4b729 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/reject/00002.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_reject_transaction/00003.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/reject/00003.png similarity index 100% rename from tests/integration/nano/snapshots/nanox/test_reject_transaction/00003.png rename to tests/integration/nano/snapshots/nanosp/test_sign_transaction/reject/00003.png diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/reject/00004.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/reject/00004.png new file mode 100644 index 000000000..908600200 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/reject/00004.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/reject/00005.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/reject/00005.png new file mode 100644 index 000000000..ca0128108 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/reject/00005.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/00006.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/reject/00006.png similarity index 100% rename from tests/integration/nano/snapshots/nanosp/test_sign_transaction/00006.png rename to tests/integration/nano/snapshots/nanosp/test_sign_transaction/reject/00006.png diff --git a/tests/integration/nano/snapshots/nanosp/test_reject_transaction/00007.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/reject/00007.png similarity index 100% rename from tests/integration/nano/snapshots/nanosp/test_reject_transaction/00007.png rename to tests/integration/nano/snapshots/nanosp/test_sign_transaction/reject/00007.png diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/00008.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/reject/00008.png similarity index 100% rename from tests/integration/nano/snapshots/nanox/test_sign_transaction/00008.png rename to tests/integration/nano/snapshots/nanosp/test_sign_transaction/reject/00008.png diff --git a/tests/integration/nano/snapshots/nanosp/test_reject_transaction/00009.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/reject/00009.png similarity index 100% rename from tests/integration/nano/snapshots/nanosp/test_reject_transaction/00009.png rename to tests/integration/nano/snapshots/nanosp/test_sign_transaction/reject/00009.png diff --git a/tests/integration/nano/snapshots/nanosp/test_reject_transaction/00010.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/reject/00010.png similarity index 100% rename from tests/integration/nano/snapshots/nanosp/test_reject_transaction/00010.png rename to tests/integration/nano/snapshots/nanosp/test_sign_transaction/reject/00010.png diff --git a/tests/integration/nano/snapshots/nanosp/test_reject_transaction/00011.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/reject/00011.png similarity index 100% rename from tests/integration/nano/snapshots/nanosp/test_reject_transaction/00011.png rename to tests/integration/nano/snapshots/nanosp/test_sign_transaction/reject/00011.png diff --git a/tests/integration/nano/snapshots/nanosp/test_reject_transaction/00012.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/reject/00012.png similarity index 100% rename from tests/integration/nano/snapshots/nanosp/test_reject_transaction/00012.png rename to tests/integration/nano/snapshots/nanosp/test_sign_transaction/reject/00012.png diff --git a/tests/integration/nano/snapshots/nanosp/test_reject_transaction/00013.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/reject/00013.png similarity index 100% rename from tests/integration/nano/snapshots/nanosp/test_reject_transaction/00013.png rename to tests/integration/nano/snapshots/nanosp/test_sign_transaction/reject/00013.png diff --git a/tests/integration/nano/snapshots/nanox/test_sign_origination/00011.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/reject/00014.png similarity index 100% rename from tests/integration/nano/snapshots/nanox/test_sign_origination/00011.png rename to tests/integration/nano/snapshots/nanosp/test_sign_transaction/reject/00014.png diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/reject/00015.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/reject/00015.png new file mode 100644 index 000000000..137ca9e49 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/reject/00015.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/simple/00000.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/simple/00000.png new file mode 100644 index 000000000..9fa51df29 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/simple/00000.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/00001.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/simple/00001.png similarity index 100% rename from tests/integration/nano/snapshots/nanox/test_sign_transaction/00001.png rename to tests/integration/nano/snapshots/nanosp/test_sign_transaction/simple/00001.png diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/simple/00002.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/simple/00002.png new file mode 100644 index 000000000..fc2f4b729 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/simple/00002.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_simple_transaction/00003.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/simple/00003.png similarity index 100% rename from tests/integration/nano/snapshots/nanox/test_sign_simple_transaction/00003.png rename to tests/integration/nano/snapshots/nanosp/test_sign_transaction/simple/00003.png diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/simple/00004.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/simple/00004.png new file mode 100644 index 000000000..908600200 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/simple/00004.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_simple_transaction/00005.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/simple/00005.png similarity index 100% rename from tests/integration/nano/snapshots/nanosp/test_sign_simple_transaction/00005.png rename to tests/integration/nano/snapshots/nanosp/test_sign_transaction/simple/00005.png diff --git a/tests/integration/nano/snapshots/nanosp/test_too_complex_transaction/00006.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/simple/00006.png similarity index 100% rename from tests/integration/nano/snapshots/nanosp/test_too_complex_transaction/00006.png rename to tests/integration/nano/snapshots/nanosp/test_sign_transaction/simple/00006.png diff --git a/tests/integration/nano/snapshots/nanox/test_sign_simple_transaction/00007.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/simple/00007.png similarity index 100% rename from tests/integration/nano/snapshots/nanox/test_sign_simple_transaction/00007.png rename to tests/integration/nano/snapshots/nanosp/test_sign_transaction/simple/00007.png diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/stake/00000.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/stake/00000.png new file mode 100644 index 000000000..9fa51df29 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/stake/00000.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_too_complex_transaction/00001.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/stake/00001.png similarity index 100% rename from tests/integration/nano/snapshots/nanox/test_too_complex_transaction/00001.png rename to tests/integration/nano/snapshots/nanosp/test_sign_transaction/stake/00001.png diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/stake/00002.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/stake/00002.png new file mode 100644 index 000000000..bd3139cdd Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/stake/00002.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/stake/00003.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/stake/00003.png new file mode 100644 index 000000000..f9d21814b Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/stake/00003.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/stake/00004.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/stake/00004.png new file mode 100644 index 000000000..914563b11 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/stake/00004.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/stake/00005.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/stake/00005.png new file mode 100644 index 000000000..752220333 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/stake/00005.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/stake/00006.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/stake/00006.png new file mode 100644 index 000000000..e2923d155 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/stake/00006.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/stake/00007.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/stake/00007.png new file mode 100644 index 000000000..85012b104 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/stake/00007.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/stake/00008.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/stake/00008.png new file mode 100644 index 000000000..6b562f764 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/stake/00008.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_sc_rollup_originate/no_whitelist/00015.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/stake/00009.png similarity index 100% rename from tests/integration/nano/snapshots/nanox/test_sign_sc_rollup_originate/no_whitelist/00015.png rename to tests/integration/nano/snapshots/nanosp/test_sign_transaction/stake/00009.png diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/unstake/00000.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/unstake/00000.png new file mode 100644 index 000000000..9fa51df29 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/unstake/00000.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/unstake/00001.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/unstake/00001.png new file mode 100644 index 000000000..7009edb4d Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/unstake/00001.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/unstake/00002.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/unstake/00002.png new file mode 100644 index 000000000..bd3139cdd Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/unstake/00002.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/unstake/00003.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/unstake/00003.png new file mode 100644 index 000000000..f9d21814b Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/unstake/00003.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/unstake/00004.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/unstake/00004.png new file mode 100644 index 000000000..914563b11 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/unstake/00004.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/unstake/00005.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/unstake/00005.png new file mode 100644 index 000000000..3b29ccc7d Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/unstake/00005.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/unstake/00006.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/unstake/00006.png new file mode 100644 index 000000000..e2923d155 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/unstake/00006.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/unstake/00007.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/unstake/00007.png new file mode 100644 index 000000000..5ec827ea5 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/unstake/00007.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/unstake/00008.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/unstake/00008.png new file mode 100644 index 000000000..6b562f764 Binary files /dev/null and b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/unstake/00008.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_sc_rollup_originate/with_whitelist/00018.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/unstake/00009.png similarity index 100% rename from tests/integration/nano/snapshots/nanox/test_sign_sc_rollup_originate/with_whitelist/00018.png rename to tests/integration/nano/snapshots/nanosp/test_sign_transaction/unstake/00009.png diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transfer_ticket/00007.png b/tests/integration/nano/snapshots/nanosp/test_sign_transfer_ticket/00007.png index 59fce75cd..ba44e67e0 100644 Binary files a/tests/integration/nano/snapshots/nanosp/test_sign_transfer_ticket/00007.png and b/tests/integration/nano/snapshots/nanosp/test_sign_transfer_ticket/00007.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transfer_ticket/00008.png b/tests/integration/nano/snapshots/nanosp/test_sign_transfer_ticket/00008.png index ba44e67e0..f25662e2c 100644 Binary files a/tests/integration/nano/snapshots/nanosp/test_sign_transfer_ticket/00008.png and b/tests/integration/nano/snapshots/nanosp/test_sign_transfer_ticket/00008.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transfer_ticket/00009.png b/tests/integration/nano/snapshots/nanosp/test_sign_transfer_ticket/00009.png index f25662e2c..5faed81de 100644 Binary files a/tests/integration/nano/snapshots/nanosp/test_sign_transfer_ticket/00009.png and b/tests/integration/nano/snapshots/nanosp/test_sign_transfer_ticket/00009.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transfer_ticket/00010.png b/tests/integration/nano/snapshots/nanosp/test_sign_transfer_ticket/00010.png index 5faed81de..7ef47f863 100644 Binary files a/tests/integration/nano/snapshots/nanosp/test_sign_transfer_ticket/00010.png and b/tests/integration/nano/snapshots/nanosp/test_sign_transfer_ticket/00010.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transfer_ticket/00011.png b/tests/integration/nano/snapshots/nanosp/test_sign_transfer_ticket/00011.png index 7ef47f863..ff518831a 100644 Binary files a/tests/integration/nano/snapshots/nanosp/test_sign_transfer_ticket/00011.png and b/tests/integration/nano/snapshots/nanosp/test_sign_transfer_ticket/00011.png differ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transfer_ticket/00012.png b/tests/integration/nano/snapshots/nanosp/test_sign_transfer_ticket/00012.png index ff518831a..471324463 100644 Binary files a/tests/integration/nano/snapshots/nanosp/test_sign_transfer_ticket/00012.png and b/tests/integration/nano/snapshots/nanosp/test_sign_transfer_ticket/00012.png differ diff --git a/tests/integration/nano/snapshots/nanosp/version.png b/tests/integration/nano/snapshots/nanosp/version.png index 1d2e46068..235d4f516 100644 Binary files a/tests/integration/nano/snapshots/nanosp/version.png and b/tests/integration/nano/snapshots/nanosp/version.png differ diff --git a/tests/integration/nano/snapshots/nanox/back.png b/tests/integration/nano/snapshots/nanox/back.png index 5da237b76..e06738f46 100644 Binary files a/tests/integration/nano/snapshots/nanox/back.png and b/tests/integration/nano/snapshots/nanox/back.png differ diff --git a/tests/integration/nano/snapshots/nanox/home.png b/tests/integration/nano/snapshots/nanox/home.png index 39ed6ff59..13403d2eb 100644 Binary files a/tests/integration/nano/snapshots/nanox/home.png and b/tests/integration/nano/snapshots/nanox/home.png differ diff --git a/tests/integration/nano/snapshots/nanox/quit.png b/tests/integration/nano/snapshots/nanox/quit.png index 24033fcb8..bcb20c683 100644 Binary files a/tests/integration/nano/snapshots/nanox/quit.png and b/tests/integration/nano/snapshots/nanox/quit.png differ diff --git a/tests/integration/nano/snapshots/nanox/settings.png b/tests/integration/nano/snapshots/nanox/settings.png index 99d3e4228..d885fe67b 100644 Binary files a/tests/integration/nano/snapshots/nanox/settings.png and b/tests/integration/nano/snapshots/nanox/settings.png differ diff --git a/tests/integration/nano/snapshots/nanox/settings_blindsign_off.png b/tests/integration/nano/snapshots/nanox/settings_blindsign_off.png new file mode 100644 index 000000000..3ea6ff33a Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/settings_blindsign_off.png differ diff --git a/tests/integration/nano/snapshots/nanox/settings_blindsign_on.png b/tests/integration/nano/snapshots/nanox/settings_blindsign_on.png new file mode 100644 index 000000000..94d6d85b3 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/settings_blindsign_on.png differ diff --git a/tests/integration/nano/snapshots/nanox/settings_expert_mode_disabled.png b/tests/integration/nano/snapshots/nanox/settings_expert_mode_disabled.png index f19ea84c9..c38eac887 100644 Binary files a/tests/integration/nano/snapshots/nanox/settings_expert_mode_disabled.png and b/tests/integration/nano/snapshots/nanox/settings_expert_mode_disabled.png differ diff --git a/tests/integration/nano/snapshots/nanox/settings_expert_mode_enabled.png b/tests/integration/nano/snapshots/nanox/settings_expert_mode_enabled.png index 90dc4e8dc..7adaf2fb3 100644 Binary files a/tests/integration/nano/snapshots/nanox/settings_expert_mode_enabled.png and b/tests/integration/nano/snapshots/nanox/settings_expert_mode_enabled.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_parsing_errors/wrong_last_packet/00007.png b/tests/integration/nano/snapshots/nanox/test_parsing_errors/wrong_last_packet/00007.png index 39ed6ff59..13403d2eb 100644 Binary files a/tests/integration/nano/snapshots/nanox/test_parsing_errors/wrong_last_packet/00007.png and b/tests/integration/nano/snapshots/nanox/test_parsing_errors/wrong_last_packet/00007.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00000.png b/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00000.png new file mode 100644 index 000000000..9fa51df29 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00000.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00001.png b/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00001.png new file mode 100644 index 000000000..780c4b54e Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00001.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00002.png b/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00002.png new file mode 100644 index 000000000..fc2f4b729 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00002.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00003.png b/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00003.png new file mode 100644 index 000000000..3fa2978d7 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00003.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00004.png b/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00004.png new file mode 100644 index 000000000..908600200 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00004.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00005.png b/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00005.png new file mode 100644 index 000000000..7f0fb6546 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00005.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00006.png b/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00006.png new file mode 100644 index 000000000..742ede852 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00006.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00007.png b/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00007.png new file mode 100644 index 000000000..59fce75cd Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00007.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00008.png b/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00008.png new file mode 100644 index 000000000..a2c842416 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00008.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00009.png b/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00009.png new file mode 100644 index 000000000..c1c7ce97d Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00009.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00010.png b/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00010.png new file mode 100644 index 000000000..c1811249f Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00010.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00011.png b/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00011.png new file mode 100644 index 000000000..fc2f4b729 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00011.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00012.png b/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00012.png new file mode 100644 index 000000000..af9beddbf Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00012.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00013.png b/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00013.png new file mode 100644 index 000000000..4ce7d2937 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00013.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00014.png b/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00014.png new file mode 100644 index 000000000..a3da0374d Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00014.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00015.png b/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00015.png new file mode 100644 index 000000000..878150dd5 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00015.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00016.png b/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00016.png new file mode 100644 index 000000000..976d816ff Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00016.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00017.png b/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00017.png new file mode 100644 index 000000000..b66fc657e Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00017.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00018.png b/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00018.png new file mode 100644 index 000000000..f8860cd32 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00018.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00019.png b/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00019.png new file mode 100644 index 000000000..ff518831a Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00019.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transfer_ticket/00013.png b/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00020.png similarity index 100% rename from tests/integration/nano/snapshots/nanox/test_sign_transfer_ticket/00013.png rename to tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00020.png diff --git a/tests/integration/nano/snapshots/nanox/test_sign_origination/00009.png b/tests/integration/nano/snapshots/nanox/test_sign_origination/00009.png index 59fce75cd..b236f41f2 100644 Binary files a/tests/integration/nano/snapshots/nanox/test_sign_origination/00009.png and b/tests/integration/nano/snapshots/nanox/test_sign_origination/00009.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_origination/00010.png b/tests/integration/nano/snapshots/nanox/test_sign_origination/00010.png index b236f41f2..471324463 100644 Binary files a/tests/integration/nano/snapshots/nanox/test_sign_origination/00010.png and b/tests/integration/nano/snapshots/nanox/test_sign_origination/00010.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_sc_rollup_originate/no_whitelist/00013.png b/tests/integration/nano/snapshots/nanox/test_sign_sc_rollup_originate/no_whitelist/00013.png index 59fce75cd..82d06c4bd 100644 Binary files a/tests/integration/nano/snapshots/nanox/test_sign_sc_rollup_originate/no_whitelist/00013.png and b/tests/integration/nano/snapshots/nanox/test_sign_sc_rollup_originate/no_whitelist/00013.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_sc_rollup_originate/no_whitelist/00014.png b/tests/integration/nano/snapshots/nanox/test_sign_sc_rollup_originate/no_whitelist/00014.png index 82d06c4bd..471324463 100644 Binary files a/tests/integration/nano/snapshots/nanox/test_sign_sc_rollup_originate/no_whitelist/00014.png and b/tests/integration/nano/snapshots/nanox/test_sign_sc_rollup_originate/no_whitelist/00014.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_sc_rollup_originate/with_whitelist/00013.png b/tests/integration/nano/snapshots/nanox/test_sign_sc_rollup_originate/with_whitelist/00013.png index 59fce75cd..82d06c4bd 100644 Binary files a/tests/integration/nano/snapshots/nanox/test_sign_sc_rollup_originate/with_whitelist/00013.png and b/tests/integration/nano/snapshots/nanox/test_sign_sc_rollup_originate/with_whitelist/00013.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_sc_rollup_originate/with_whitelist/00014.png b/tests/integration/nano/snapshots/nanox/test_sign_sc_rollup_originate/with_whitelist/00014.png index 82d06c4bd..7e7736a36 100644 Binary files a/tests/integration/nano/snapshots/nanox/test_sign_sc_rollup_originate/with_whitelist/00014.png and b/tests/integration/nano/snapshots/nanox/test_sign_sc_rollup_originate/with_whitelist/00014.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_sc_rollup_originate/with_whitelist/00015.png b/tests/integration/nano/snapshots/nanox/test_sign_sc_rollup_originate/with_whitelist/00015.png index 7e7736a36..1e7f04116 100644 Binary files a/tests/integration/nano/snapshots/nanox/test_sign_sc_rollup_originate/with_whitelist/00015.png and b/tests/integration/nano/snapshots/nanox/test_sign_sc_rollup_originate/with_whitelist/00015.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_sc_rollup_originate/with_whitelist/00016.png b/tests/integration/nano/snapshots/nanox/test_sign_sc_rollup_originate/with_whitelist/00016.png index 1e7f04116..fed4816f7 100644 Binary files a/tests/integration/nano/snapshots/nanox/test_sign_sc_rollup_originate/with_whitelist/00016.png and b/tests/integration/nano/snapshots/nanox/test_sign_sc_rollup_originate/with_whitelist/00016.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_sc_rollup_originate/with_whitelist/00017.png b/tests/integration/nano/snapshots/nanox/test_sign_sc_rollup_originate/with_whitelist/00017.png index fed4816f7..471324463 100644 Binary files a/tests/integration/nano/snapshots/nanox/test_sign_sc_rollup_originate/with_whitelist/00017.png and b/tests/integration/nano/snapshots/nanox/test_sign_sc_rollup_originate/with_whitelist/00017.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00000.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00000.png new file mode 100644 index 000000000..9fa51df29 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00000.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00001.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00001.png new file mode 100644 index 000000000..de6359a69 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00001.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00002.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00002.png new file mode 100644 index 000000000..fc2f4b729 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00002.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00003.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00003.png new file mode 100644 index 000000000..f2a96c69a Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00003.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00004.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00004.png new file mode 100644 index 000000000..908600200 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00004.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00005.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00005.png new file mode 100644 index 000000000..84ea3a780 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00005.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00006.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00006.png new file mode 100644 index 000000000..2f514b48f Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00006.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00007.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00007.png new file mode 100644 index 000000000..fc2f4b729 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00007.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00008.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00008.png new file mode 100644 index 000000000..1e92a440b Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00008.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00009.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00009.png new file mode 100644 index 000000000..644c2510e Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00009.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00010.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00010.png new file mode 100644 index 000000000..e6d3d0b84 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00010.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00011.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00011.png new file mode 100644 index 000000000..aefecfb01 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00011.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00012.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00012.png new file mode 100644 index 000000000..54e6ad365 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00012.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00013.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00013.png new file mode 100644 index 000000000..df6e01718 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00013.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00014.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00014.png new file mode 100644 index 000000000..5939be56d Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00014.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00015.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00015.png new file mode 100644 index 000000000..79a3fcd57 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00015.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00016.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00016.png new file mode 100644 index 000000000..cc5934903 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00016.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/summary/00000.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/summary/00000.png new file mode 100644 index 000000000..05d4582e2 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/summary/00000.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/summary/00001.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/summary/00001.png new file mode 100644 index 000000000..948c88cdb Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/summary/00001.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/summary/00002.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/summary/00002.png new file mode 100644 index 000000000..4c7609dac Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/summary/00002.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/summary/00003.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/summary/00003.png new file mode 100644 index 000000000..26526a94f Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/summary/00003.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/summary/00004.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/summary/00004.png new file mode 100644 index 000000000..471324463 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/summary/00004.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00000.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00000.png new file mode 100644 index 000000000..9fa51df29 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00000.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00001.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00001.png new file mode 100644 index 000000000..de6359a69 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00001.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00002.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00002.png new file mode 100644 index 000000000..fc2f4b729 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00002.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00003.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00003.png new file mode 100644 index 000000000..f2a96c69a Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00003.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00004.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00004.png new file mode 100644 index 000000000..908600200 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00004.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00005.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00005.png new file mode 100644 index 000000000..84ea3a780 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00005.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00006.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00006.png new file mode 100644 index 000000000..2f514b48f Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00006.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00007.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00007.png new file mode 100644 index 000000000..fc2f4b729 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00007.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00008.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00008.png new file mode 100644 index 000000000..1e92a440b Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00008.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00009.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00009.png new file mode 100644 index 000000000..644c2510e Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00009.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00010.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00010.png new file mode 100644 index 000000000..e6d3d0b84 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00010.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00011.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00011.png new file mode 100644 index 000000000..aefecfb01 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00011.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00012.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00012.png new file mode 100644 index 000000000..54e6ad365 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00012.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00013.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00013.png new file mode 100644 index 000000000..df6e01718 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00013.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00014.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00014.png new file mode 100644 index 000000000..5939be56d Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00014.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00015.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00015.png new file mode 100644 index 000000000..79a3fcd57 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00015.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00016.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00016.png new file mode 100644 index 000000000..cc5934903 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00016.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/summary/00000.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/summary/00000.png new file mode 100644 index 000000000..05d4582e2 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/summary/00000.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/summary/00001.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/summary/00001.png new file mode 100644 index 000000000..948c88cdb Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/summary/00001.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/summary/00002.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/summary/00002.png new file mode 100644 index 000000000..4c7609dac Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/summary/00002.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/summary/00003.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/summary/00003.png new file mode 100644 index 000000000..26526a94f Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/summary/00003.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/summary/00004.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/summary/00004.png new file mode 100644 index 000000000..471324463 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/summary/00004.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/summary/00005.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/summary/00005.png new file mode 100644 index 000000000..137ca9e49 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/summary/00005.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00000.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00000.png new file mode 100644 index 000000000..9fa51df29 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00000.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00001.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00001.png new file mode 100644 index 000000000..de6359a69 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00001.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00002.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00002.png new file mode 100644 index 000000000..fc2f4b729 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00002.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00003.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00003.png new file mode 100644 index 000000000..f2a96c69a Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00003.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00004.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00004.png new file mode 100644 index 000000000..908600200 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00004.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00005.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00005.png new file mode 100644 index 000000000..84ea3a780 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00005.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00006.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00006.png new file mode 100644 index 000000000..2f514b48f Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00006.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00007.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00007.png new file mode 100644 index 000000000..fc2f4b729 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00007.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00008.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00008.png new file mode 100644 index 000000000..1e92a440b Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00008.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00009.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00009.png new file mode 100644 index 000000000..644c2510e Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00009.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00010.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00010.png new file mode 100644 index 000000000..e6d3d0b84 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00010.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00011.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00011.png new file mode 100644 index 000000000..aefecfb01 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00011.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00012.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00012.png new file mode 100644 index 000000000..54e6ad365 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00012.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00013.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00013.png new file mode 100644 index 000000000..df6e01718 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00013.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00014.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00014.png new file mode 100644 index 000000000..5939be56d Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00014.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00015.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00015.png new file mode 100644 index 000000000..79a3fcd57 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00015.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00016.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00016.png new file mode 100644 index 000000000..cc5934903 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00016.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00017.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00017.png new file mode 100644 index 000000000..137ca9e49 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00017.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00000.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00000.png new file mode 100644 index 000000000..9fa51df29 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00000.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00001.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00001.png new file mode 100644 index 000000000..7009edb4d Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00001.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00002.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00002.png new file mode 100644 index 000000000..fc2f4b729 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00002.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00003.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00003.png new file mode 100644 index 000000000..0f72c5878 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00003.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00004.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00004.png new file mode 100644 index 000000000..e2e092645 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00004.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00005.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00005.png new file mode 100644 index 000000000..37d05de73 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00005.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00006.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00006.png new file mode 100644 index 000000000..6ec712369 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00006.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00007.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00007.png new file mode 100644 index 000000000..2f514b48f Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00007.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00008.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00008.png new file mode 100644 index 000000000..fc2f4b729 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00008.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00009.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00009.png new file mode 100644 index 000000000..f2a96c69a Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00009.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00010.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00010.png new file mode 100644 index 000000000..85987d6ca Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00010.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00011.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00011.png new file mode 100644 index 000000000..de15b07c8 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00011.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00012.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00012.png new file mode 100644 index 000000000..159239c08 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00012.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00013.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00013.png new file mode 100644 index 000000000..df6e01718 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00013.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00014.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00014.png new file mode 100644 index 000000000..5939be56d Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00014.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00015.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00015.png new file mode 100644 index 000000000..79a3fcd57 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00015.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00016.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00016.png new file mode 100644 index 000000000..cc5934903 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00016.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/summary/00000.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/summary/00000.png new file mode 100644 index 000000000..405623182 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/summary/00000.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/summary/00001.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/summary/00001.png new file mode 100644 index 000000000..996e9aa82 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/summary/00001.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/summary/00002.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/summary/00002.png new file mode 100644 index 000000000..24abd9860 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/summary/00002.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/summary/00003.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/summary/00003.png new file mode 100644 index 000000000..c8b523cb6 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/summary/00003.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/summary/00004.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/summary/00004.png new file mode 100644 index 000000000..471324463 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/summary/00004.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/blindsigning/00000.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/blindsigning/00000.png new file mode 100644 index 000000000..d3d5ed219 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/blindsigning/00000.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/blindsigning/00001.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/blindsigning/00001.png new file mode 100644 index 000000000..886c86005 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/blindsigning/00001.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/blindsigning/00002.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/blindsigning/00002.png new file mode 100644 index 000000000..471324463 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/blindsigning/00002.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00000.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00000.png new file mode 100644 index 000000000..9fa51df29 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00000.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00001.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00001.png new file mode 100644 index 000000000..da5df5748 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00001.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00002.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00002.png new file mode 100644 index 000000000..fc2f4b729 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00002.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00003.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00003.png new file mode 100644 index 000000000..b27347af0 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00003.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00004.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00004.png new file mode 100644 index 000000000..36a4ccfca Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00004.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00005.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00005.png new file mode 100644 index 000000000..0ba444119 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00005.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00006.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00006.png new file mode 100644 index 000000000..423e0a8a7 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00006.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00007.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00007.png new file mode 100644 index 000000000..0aefc26a1 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00007.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00008.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00008.png new file mode 100644 index 000000000..33fd15d59 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00008.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00009.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00009.png new file mode 100644 index 000000000..72e28d599 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00009.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00010.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00010.png new file mode 100644 index 000000000..470006f56 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00010.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00011.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00011.png new file mode 100644 index 000000000..547657025 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00011.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00012.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00012.png new file mode 100644 index 000000000..7ed9b2d39 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00012.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00013.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00013.png new file mode 100644 index 000000000..df6e01718 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00013.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00014.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00014.png new file mode 100644 index 000000000..ace200467 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00014.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00015.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00015.png new file mode 100644 index 000000000..79a3fcd57 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00015.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00016.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00016.png new file mode 100644 index 000000000..3d12ba761 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00016.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00017.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00017.png new file mode 100644 index 000000000..c17e89d15 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00017.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00018.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00018.png new file mode 100644 index 000000000..cc5934903 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00018.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/blindsigning/00000.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/blindsigning/00000.png new file mode 100644 index 000000000..d3d5ed219 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/blindsigning/00000.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/blindsigning/00001.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/blindsigning/00001.png new file mode 100644 index 000000000..886c86005 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/blindsigning/00001.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/blindsigning/00002.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/blindsigning/00002.png new file mode 100644 index 000000000..471324463 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/blindsigning/00002.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/blindsigning/00003.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/blindsigning/00003.png new file mode 100644 index 000000000..137ca9e49 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/blindsigning/00003.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00000.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00000.png new file mode 100644 index 000000000..9fa51df29 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00000.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00001.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00001.png new file mode 100644 index 000000000..da5df5748 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00001.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00002.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00002.png new file mode 100644 index 000000000..fc2f4b729 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00002.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00003.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00003.png new file mode 100644 index 000000000..b27347af0 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00003.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00004.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00004.png new file mode 100644 index 000000000..36a4ccfca Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00004.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00005.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00005.png new file mode 100644 index 000000000..0ba444119 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00005.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00006.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00006.png new file mode 100644 index 000000000..423e0a8a7 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00006.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00007.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00007.png new file mode 100644 index 000000000..0aefc26a1 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00007.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00008.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00008.png new file mode 100644 index 000000000..33fd15d59 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00008.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00009.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00009.png new file mode 100644 index 000000000..72e28d599 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00009.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00010.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00010.png new file mode 100644 index 000000000..470006f56 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00010.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00011.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00011.png new file mode 100644 index 000000000..547657025 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00011.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00012.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00012.png new file mode 100644 index 000000000..7ed9b2d39 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00012.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00013.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00013.png new file mode 100644 index 000000000..df6e01718 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00013.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00014.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00014.png new file mode 100644 index 000000000..ace200467 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00014.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00015.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00015.png new file mode 100644 index 000000000..79a3fcd57 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00015.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00016.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00016.png new file mode 100644 index 000000000..3d12ba761 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00016.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00017.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00017.png new file mode 100644 index 000000000..c17e89d15 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00017.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00018.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00018.png new file mode 100644 index 000000000..cc5934903 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00018.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00000.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00000.png new file mode 100644 index 000000000..9fa51df29 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00000.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00001.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00001.png new file mode 100644 index 000000000..da5df5748 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00001.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00002.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00002.png new file mode 100644 index 000000000..fc2f4b729 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00002.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00003.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00003.png new file mode 100644 index 000000000..b27347af0 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00003.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00004.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00004.png new file mode 100644 index 000000000..36a4ccfca Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00004.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00005.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00005.png new file mode 100644 index 000000000..0ba444119 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00005.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00006.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00006.png new file mode 100644 index 000000000..423e0a8a7 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00006.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00007.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00007.png new file mode 100644 index 000000000..0aefc26a1 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00007.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00008.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00008.png new file mode 100644 index 000000000..33fd15d59 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00008.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00009.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00009.png new file mode 100644 index 000000000..72e28d599 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00009.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00010.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00010.png new file mode 100644 index 000000000..470006f56 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00010.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00011.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00011.png new file mode 100644 index 000000000..547657025 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00011.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00012.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00012.png new file mode 100644 index 000000000..7ed9b2d39 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00012.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00013.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00013.png new file mode 100644 index 000000000..df6e01718 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00013.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00014.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00014.png new file mode 100644 index 000000000..ace200467 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00014.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00015.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00015.png new file mode 100644 index 000000000..79a3fcd57 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00015.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00016.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00016.png new file mode 100644 index 000000000..3d12ba761 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00016.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00017.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00017.png new file mode 100644 index 000000000..c17e89d15 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00017.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00018.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00018.png new file mode 100644 index 000000000..cc5934903 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00018.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00019.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00019.png new file mode 100644 index 000000000..137ca9e49 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00019.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00000.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00000.png new file mode 100644 index 000000000..9fa51df29 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00000.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00001.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00001.png new file mode 100644 index 000000000..dc659afb5 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00001.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00002.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00002.png new file mode 100644 index 000000000..fc2f4b729 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00002.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00003.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00003.png new file mode 100644 index 000000000..e91f19857 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00003.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00004.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00004.png new file mode 100644 index 000000000..e0c67ba8b Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00004.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00005.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00005.png new file mode 100644 index 000000000..1d750731e Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00005.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00006.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00006.png new file mode 100644 index 000000000..66224260f Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00006.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00007.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00007.png new file mode 100644 index 000000000..f66f413e0 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00007.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00008.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00008.png new file mode 100644 index 000000000..777e2e30e Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00008.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00009.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00009.png new file mode 100644 index 000000000..75f929c35 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00009.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00010.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00010.png new file mode 100644 index 000000000..bf199eafa Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00010.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00011.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00011.png new file mode 100644 index 000000000..be179b587 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00011.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00012.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00012.png new file mode 100644 index 000000000..0baff4105 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00012.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00013.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00013.png new file mode 100644 index 000000000..df6e01718 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00013.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00014.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00014.png new file mode 100644 index 000000000..5939be56d Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00014.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00015.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00015.png new file mode 100644 index 000000000..79a3fcd57 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00015.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00016.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00016.png new file mode 100644 index 000000000..cc5934903 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00016.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/summary/00000.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/summary/00000.png new file mode 100644 index 000000000..94b1ae9f2 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/summary/00000.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/summary/00001.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/summary/00001.png new file mode 100644 index 000000000..909f56736 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/summary/00001.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/summary/00002.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/summary/00002.png new file mode 100644 index 000000000..9d6d9ad3a Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/summary/00002.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/summary/00003.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/summary/00003.png new file mode 100644 index 000000000..50c26400f Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/summary/00003.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/summary/00004.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/summary/00004.png new file mode 100644 index 000000000..471324463 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/summary/00004.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/basic/00000.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/basic/00000.png new file mode 100644 index 000000000..9fa51df29 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/basic/00000.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/basic/00001.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/basic/00001.png new file mode 100644 index 000000000..7009edb4d Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/basic/00001.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/00002.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/basic/00002.png similarity index 100% rename from tests/integration/nano/snapshots/nanox/test_sign_transaction/00002.png rename to tests/integration/nano/snapshots/nanox/test_sign_transaction/basic/00002.png diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/00003.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/basic/00003.png similarity index 100% rename from tests/integration/nano/snapshots/nanox/test_sign_transaction/00003.png rename to tests/integration/nano/snapshots/nanox/test_sign_transaction/basic/00003.png diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/00004.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/basic/00004.png similarity index 100% rename from tests/integration/nano/snapshots/nanox/test_sign_transaction/00004.png rename to tests/integration/nano/snapshots/nanox/test_sign_transaction/basic/00004.png diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/00005.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/basic/00005.png similarity index 100% rename from tests/integration/nano/snapshots/nanox/test_sign_transaction/00005.png rename to tests/integration/nano/snapshots/nanox/test_sign_transaction/basic/00005.png diff --git a/tests/integration/nano/snapshots/nanox/test_reject_transaction/00006.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/basic/00006.png similarity index 100% rename from tests/integration/nano/snapshots/nanox/test_reject_transaction/00006.png rename to tests/integration/nano/snapshots/nanox/test_sign_transaction/basic/00006.png diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/00007.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/basic/00007.png similarity index 100% rename from tests/integration/nano/snapshots/nanox/test_sign_transaction/00007.png rename to tests/integration/nano/snapshots/nanox/test_sign_transaction/basic/00007.png diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/basic/00008.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/basic/00008.png new file mode 100644 index 000000000..59fce75cd Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/basic/00008.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/00009.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/basic/00009.png similarity index 100% rename from tests/integration/nano/snapshots/nanox/test_sign_transaction/00009.png rename to tests/integration/nano/snapshots/nanox/test_sign_transaction/basic/00009.png diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/basic/00010.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/basic/00010.png new file mode 100644 index 000000000..471324463 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/basic/00010.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/complex/00000.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/complex/00000.png new file mode 100644 index 000000000..9fa51df29 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/complex/00000.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/complex/00001.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/complex/00001.png new file mode 100644 index 000000000..7009edb4d Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/complex/00001.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_too_complex_transaction/00002.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/complex/00002.png similarity index 100% rename from tests/integration/nano/snapshots/nanox/test_too_complex_transaction/00002.png rename to tests/integration/nano/snapshots/nanox/test_sign_transaction/complex/00002.png diff --git a/tests/integration/nano/snapshots/nanox/test_too_complex_transaction/00003.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/complex/00003.png similarity index 100% rename from tests/integration/nano/snapshots/nanox/test_too_complex_transaction/00003.png rename to tests/integration/nano/snapshots/nanox/test_sign_transaction/complex/00003.png diff --git a/tests/integration/nano/snapshots/nanox/test_too_complex_transaction/00004.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/complex/00004.png similarity index 100% rename from tests/integration/nano/snapshots/nanox/test_too_complex_transaction/00004.png rename to tests/integration/nano/snapshots/nanox/test_sign_transaction/complex/00004.png diff --git a/tests/integration/nano/snapshots/nanox/test_too_complex_transaction/00005.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/complex/00005.png similarity index 100% rename from tests/integration/nano/snapshots/nanox/test_too_complex_transaction/00005.png rename to tests/integration/nano/snapshots/nanox/test_sign_transaction/complex/00005.png diff --git a/tests/integration/nano/snapshots/nanox/test_sign_simple_transaction/00006.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/complex/00006.png similarity index 100% rename from tests/integration/nano/snapshots/nanox/test_sign_simple_transaction/00006.png rename to tests/integration/nano/snapshots/nanox/test_sign_transaction/complex/00006.png diff --git a/tests/integration/nano/snapshots/nanox/test_too_complex_transaction/00007.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/complex/00007.png similarity index 100% rename from tests/integration/nano/snapshots/nanox/test_too_complex_transaction/00007.png rename to tests/integration/nano/snapshots/nanox/test_sign_transaction/complex/00007.png diff --git a/tests/integration/nano/snapshots/nanox/test_too_complex_transaction/00008.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/complex/00008.png similarity index 100% rename from tests/integration/nano/snapshots/nanox/test_too_complex_transaction/00008.png rename to tests/integration/nano/snapshots/nanox/test_sign_transaction/complex/00008.png diff --git a/tests/integration/nano/snapshots/nanox/test_too_complex_transaction/00009.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/complex/00009.png similarity index 100% rename from tests/integration/nano/snapshots/nanox/test_too_complex_transaction/00009.png rename to tests/integration/nano/snapshots/nanox/test_sign_transaction/complex/00009.png diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/delegate_parameters/00000.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/delegate_parameters/00000.png new file mode 100644 index 000000000..9fa51df29 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/delegate_parameters/00000.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/delegate_parameters/00001.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/delegate_parameters/00001.png new file mode 100644 index 000000000..7009edb4d Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/delegate_parameters/00001.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/delegate_parameters/00002.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/delegate_parameters/00002.png new file mode 100644 index 000000000..bd3139cdd Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/delegate_parameters/00002.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/delegate_parameters/00003.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/delegate_parameters/00003.png new file mode 100644 index 000000000..f9d21814b Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/delegate_parameters/00003.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/delegate_parameters/00004.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/delegate_parameters/00004.png new file mode 100644 index 000000000..914563b11 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/delegate_parameters/00004.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/delegate_parameters/00005.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/delegate_parameters/00005.png new file mode 100644 index 000000000..ca0128108 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/delegate_parameters/00005.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/delegate_parameters/00006.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/delegate_parameters/00006.png new file mode 100644 index 000000000..e2923d155 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/delegate_parameters/00006.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/delegate_parameters/00007.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/delegate_parameters/00007.png new file mode 100644 index 000000000..edbb1c940 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/delegate_parameters/00007.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/delegate_parameters/00008.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/delegate_parameters/00008.png new file mode 100644 index 000000000..59fce75cd Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/delegate_parameters/00008.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/delegate_parameters/00009.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/delegate_parameters/00009.png new file mode 100644 index 000000000..85e22f17d Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/delegate_parameters/00009.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/delegate_parameters/00010.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/delegate_parameters/00010.png new file mode 100644 index 000000000..471324463 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/delegate_parameters/00010.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/finalize_unstake/00000.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/finalize_unstake/00000.png new file mode 100644 index 000000000..9fa51df29 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/finalize_unstake/00000.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/finalize_unstake/00001.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/finalize_unstake/00001.png new file mode 100644 index 000000000..7009edb4d Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/finalize_unstake/00001.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/finalize_unstake/00002.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/finalize_unstake/00002.png new file mode 100644 index 000000000..bd3139cdd Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/finalize_unstake/00002.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/finalize_unstake/00003.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/finalize_unstake/00003.png new file mode 100644 index 000000000..f9d21814b Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/finalize_unstake/00003.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/finalize_unstake/00004.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/finalize_unstake/00004.png new file mode 100644 index 000000000..914563b11 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/finalize_unstake/00004.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/finalize_unstake/00005.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/finalize_unstake/00005.png new file mode 100644 index 000000000..ca0128108 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/finalize_unstake/00005.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/finalize_unstake/00006.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/finalize_unstake/00006.png new file mode 100644 index 000000000..e2923d155 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/finalize_unstake/00006.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/finalize_unstake/00007.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/finalize_unstake/00007.png new file mode 100644 index 000000000..76a2d6918 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/finalize_unstake/00007.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/finalize_unstake/00008.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/finalize_unstake/00008.png new file mode 100644 index 000000000..6b562f764 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/finalize_unstake/00008.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/finalize_unstake/00009.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/finalize_unstake/00009.png new file mode 100644 index 000000000..471324463 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/finalize_unstake/00009.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/reject/00000.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/reject/00000.png new file mode 100644 index 000000000..9fa51df29 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/reject/00000.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/reject/00001.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/reject/00001.png new file mode 100644 index 000000000..7009edb4d Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/reject/00001.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/reject/00002.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/reject/00002.png new file mode 100644 index 000000000..fc2f4b729 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/reject/00002.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/reject/00003.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/reject/00003.png new file mode 100644 index 000000000..af9beddbf Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/reject/00003.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/reject/00004.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/reject/00004.png new file mode 100644 index 000000000..908600200 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/reject/00004.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/reject/00005.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/reject/00005.png new file mode 100644 index 000000000..ca0128108 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/reject/00005.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/00006.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/reject/00006.png similarity index 100% rename from tests/integration/nano/snapshots/nanox/test_sign_transaction/00006.png rename to tests/integration/nano/snapshots/nanox/test_sign_transaction/reject/00006.png diff --git a/tests/integration/nano/snapshots/nanox/test_reject_transaction/00007.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/reject/00007.png similarity index 100% rename from tests/integration/nano/snapshots/nanox/test_reject_transaction/00007.png rename to tests/integration/nano/snapshots/nanox/test_sign_transaction/reject/00007.png diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/reject/00008.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/reject/00008.png new file mode 100644 index 000000000..59fce75cd Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/reject/00008.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_reject_transaction/00009.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/reject/00009.png similarity index 100% rename from tests/integration/nano/snapshots/nanox/test_reject_transaction/00009.png rename to tests/integration/nano/snapshots/nanox/test_sign_transaction/reject/00009.png diff --git a/tests/integration/nano/snapshots/nanox/test_reject_transaction/00010.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/reject/00010.png similarity index 100% rename from tests/integration/nano/snapshots/nanox/test_reject_transaction/00010.png rename to tests/integration/nano/snapshots/nanox/test_sign_transaction/reject/00010.png diff --git a/tests/integration/nano/snapshots/nanox/test_reject_transaction/00011.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/reject/00011.png similarity index 100% rename from tests/integration/nano/snapshots/nanox/test_reject_transaction/00011.png rename to tests/integration/nano/snapshots/nanox/test_sign_transaction/reject/00011.png diff --git a/tests/integration/nano/snapshots/nanox/test_reject_transaction/00012.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/reject/00012.png similarity index 100% rename from tests/integration/nano/snapshots/nanox/test_reject_transaction/00012.png rename to tests/integration/nano/snapshots/nanox/test_sign_transaction/reject/00012.png diff --git a/tests/integration/nano/snapshots/nanox/test_reject_transaction/00013.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/reject/00013.png similarity index 100% rename from tests/integration/nano/snapshots/nanox/test_reject_transaction/00013.png rename to tests/integration/nano/snapshots/nanox/test_sign_transaction/reject/00013.png diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/reject/00014.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/reject/00014.png new file mode 100644 index 000000000..471324463 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/reject/00014.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/reject/00015.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/reject/00015.png new file mode 100644 index 000000000..137ca9e49 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/reject/00015.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/simple/00000.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/simple/00000.png new file mode 100644 index 000000000..9fa51df29 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/simple/00000.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/simple/00001.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/simple/00001.png new file mode 100644 index 000000000..7009edb4d Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/simple/00001.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/simple/00002.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/simple/00002.png new file mode 100644 index 000000000..fc2f4b729 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/simple/00002.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/simple/00003.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/simple/00003.png new file mode 100644 index 000000000..3fa2978d7 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/simple/00003.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/simple/00004.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/simple/00004.png new file mode 100644 index 000000000..908600200 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/simple/00004.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_simple_transaction/00005.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/simple/00005.png similarity index 100% rename from tests/integration/nano/snapshots/nanox/test_sign_simple_transaction/00005.png rename to tests/integration/nano/snapshots/nanox/test_sign_transaction/simple/00005.png diff --git a/tests/integration/nano/snapshots/nanox/test_too_complex_transaction/00006.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/simple/00006.png similarity index 100% rename from tests/integration/nano/snapshots/nanox/test_too_complex_transaction/00006.png rename to tests/integration/nano/snapshots/nanox/test_sign_transaction/simple/00006.png diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/simple/00007.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/simple/00007.png new file mode 100644 index 000000000..471324463 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/simple/00007.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/stake/00000.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/stake/00000.png new file mode 100644 index 000000000..9fa51df29 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/stake/00000.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/stake/00001.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/stake/00001.png new file mode 100644 index 000000000..7009edb4d Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/stake/00001.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/stake/00002.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/stake/00002.png new file mode 100644 index 000000000..bd3139cdd Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/stake/00002.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/stake/00003.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/stake/00003.png new file mode 100644 index 000000000..f9d21814b Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/stake/00003.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/stake/00004.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/stake/00004.png new file mode 100644 index 000000000..914563b11 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/stake/00004.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/stake/00005.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/stake/00005.png new file mode 100644 index 000000000..752220333 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/stake/00005.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/stake/00006.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/stake/00006.png new file mode 100644 index 000000000..e2923d155 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/stake/00006.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/stake/00007.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/stake/00007.png new file mode 100644 index 000000000..85012b104 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/stake/00007.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/stake/00008.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/stake/00008.png new file mode 100644 index 000000000..6b562f764 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/stake/00008.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/stake/00009.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/stake/00009.png new file mode 100644 index 000000000..471324463 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/stake/00009.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/unstake/00000.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/unstake/00000.png new file mode 100644 index 000000000..9fa51df29 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/unstake/00000.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/unstake/00001.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/unstake/00001.png new file mode 100644 index 000000000..7009edb4d Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/unstake/00001.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/unstake/00002.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/unstake/00002.png new file mode 100644 index 000000000..bd3139cdd Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/unstake/00002.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/unstake/00003.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/unstake/00003.png new file mode 100644 index 000000000..f9d21814b Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/unstake/00003.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/unstake/00004.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/unstake/00004.png new file mode 100644 index 000000000..914563b11 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/unstake/00004.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/unstake/00005.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/unstake/00005.png new file mode 100644 index 000000000..3b29ccc7d Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/unstake/00005.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/unstake/00006.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/unstake/00006.png new file mode 100644 index 000000000..e2923d155 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/unstake/00006.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/unstake/00007.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/unstake/00007.png new file mode 100644 index 000000000..5ec827ea5 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/unstake/00007.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/unstake/00008.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/unstake/00008.png new file mode 100644 index 000000000..6b562f764 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/unstake/00008.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/unstake/00009.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/unstake/00009.png new file mode 100644 index 000000000..471324463 Binary files /dev/null and b/tests/integration/nano/snapshots/nanox/test_sign_transaction/unstake/00009.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transfer_ticket/00007.png b/tests/integration/nano/snapshots/nanox/test_sign_transfer_ticket/00007.png index 59fce75cd..ba44e67e0 100644 Binary files a/tests/integration/nano/snapshots/nanox/test_sign_transfer_ticket/00007.png and b/tests/integration/nano/snapshots/nanox/test_sign_transfer_ticket/00007.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transfer_ticket/00008.png b/tests/integration/nano/snapshots/nanox/test_sign_transfer_ticket/00008.png index ba44e67e0..f25662e2c 100644 Binary files a/tests/integration/nano/snapshots/nanox/test_sign_transfer_ticket/00008.png and b/tests/integration/nano/snapshots/nanox/test_sign_transfer_ticket/00008.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transfer_ticket/00009.png b/tests/integration/nano/snapshots/nanox/test_sign_transfer_ticket/00009.png index f25662e2c..5faed81de 100644 Binary files a/tests/integration/nano/snapshots/nanox/test_sign_transfer_ticket/00009.png and b/tests/integration/nano/snapshots/nanox/test_sign_transfer_ticket/00009.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transfer_ticket/00010.png b/tests/integration/nano/snapshots/nanox/test_sign_transfer_ticket/00010.png index 5faed81de..7ef47f863 100644 Binary files a/tests/integration/nano/snapshots/nanox/test_sign_transfer_ticket/00010.png and b/tests/integration/nano/snapshots/nanox/test_sign_transfer_ticket/00010.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transfer_ticket/00011.png b/tests/integration/nano/snapshots/nanox/test_sign_transfer_ticket/00011.png index 7ef47f863..ff518831a 100644 Binary files a/tests/integration/nano/snapshots/nanox/test_sign_transfer_ticket/00011.png and b/tests/integration/nano/snapshots/nanox/test_sign_transfer_ticket/00011.png differ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transfer_ticket/00012.png b/tests/integration/nano/snapshots/nanox/test_sign_transfer_ticket/00012.png index ff518831a..471324463 100644 Binary files a/tests/integration/nano/snapshots/nanox/test_sign_transfer_ticket/00012.png and b/tests/integration/nano/snapshots/nanox/test_sign_transfer_ticket/00012.png differ diff --git a/tests/integration/nano/snapshots/nanox/version.png b/tests/integration/nano/snapshots/nanox/version.png index 1d2e46068..235d4f516 100644 Binary files a/tests/integration/nano/snapshots/nanox/version.png and b/tests/integration/nano/snapshots/nanox/version.png differ diff --git a/tests/integration/nano/test_basic.py b/tests/integration/nano/test_basic.py index 2437dee22..be1f670ae 100755 --- a/tests/integration/nano/test_basic.py +++ b/tests/integration/nano/test_basic.py @@ -32,10 +32,12 @@ def test_basic(app): app.assert_screen(Screen.Version) app.backend.left_click() app.assert_screen(Screen.Home) - app.backend.left_click() - app.assert_screen(Screen.Home) app.backend.both_click() app.assert_screen(Screen.Home) + app.backend.left_click() + app.assert_screen(Screen.Quit) + app.backend.right_click() + app.assert_screen(Screen.Home) app.backend.right_click() app.assert_screen(Screen.Version) app.backend.right_click() @@ -43,26 +45,36 @@ def test_basic(app): app.backend.right_click() app.assert_screen(Screen.Quit) app.backend.right_click() - app.assert_screen(Screen.Quit) + app.assert_screen(Screen.Home) + app.backend.right_click() + app.assert_screen(Screen.Version) # Check Settings menu operation - app.backend.left_click() + app.backend.right_click() app.assert_screen(Screen.Settings) app.backend.both_click() app.assert_screen(Screen.Settings_expert_mode_disabled) app.backend.both_click() app.assert_screen(Screen.Settings_expert_mode_enabled) app.backend.right_click() + app.assert_screen(Screen.Settings_blindsign_off) + app.backend.both_click() + app.assert_screen(Screen.Settings_blindsign_on) + app.backend.both_click() + app.assert_screen(Screen.Settings_blindsign_off) + app.backend.right_click() app.assert_screen(Screen.Settings_back) app.backend.left_click() + app.assert_screen(Screen.Settings_blindsign_off) + app.backend.left_click() app.assert_screen(Screen.Settings_expert_mode_enabled) - app.backend.both_click() - app.assert_screen(Screen.Settings_expert_mode_disabled) + app.backend.left_click() + app.assert_screen(Screen.Settings_back) app.backend.right_click() + app.assert_screen(Screen.Settings_expert_mode_enabled) + app.backend.left_click() app.assert_screen(Screen.Settings_back) app.backend.both_click() app.assert_screen(Screen.Home) - app.backend.right_click() - app.backend.right_click() - app.backend.right_click() + app.backend.left_click() app._quit() diff --git a/tests/integration/nano/test_blindsign_reject.py b/tests/integration/nano/test_blindsign_reject.py index 60f29ec05..46791cabd 100755 --- a/tests/integration/nano/test_blindsign_reject.py +++ b/tests/integration/nano/test_blindsign_reject.py @@ -27,12 +27,10 @@ def test_blindsign_reject(app): expression = Message.from_bytes("050092abf8e3d9e5f8cfd9ae8a9fe5f28ea1d5b5abf1af82dae8a4b68df3d1889eb6f988f5e8d31a") - app._failing_signing(DEFAULT_ACCOUNT, - expression, - with_hash=False, - text=Screen_text.Sign_reject, - status_code=StatusCode.PARSE_ERROR, - path=Path(test_name) / "reject_from_clear") + app.parsing_error_signing(DEFAULT_ACCOUNT, + expression, + with_hash=False, + path=Path(test_name) / "reject_from_clear") def expected_failure_send() -> bytes: with app.expect_apdu_failure(StatusCode.REJECT): @@ -42,7 +40,7 @@ def expected_failure_send() -> bytes: path = Path(test_name) / "reject_from_blind" def navigate() -> None: - app.navigate_until_text(Screen_text.Blind_switch, path / "clear") + app.navigate_until_text(Screen_text.Accept_risk, path / "clear") app.navigate_until_text(Screen_text.Sign_reject, path / "blind") send_and_navigate( diff --git a/tests/integration/nano/test_reject_transaction.py b/tests/integration/nano/test_reject_transaction.py deleted file mode 100755 index d56bf2f9d..000000000 --- a/tests/integration/nano/test_reject_transaction.py +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/env python3 -# Copyright 2023 Functori - -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at - -# http://www.apache.org/licenses/LICENSE-2.0 - -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from pathlib import Path - -from utils.app import Screen, DEFAULT_ACCOUNT -from utils.message import Message - -def test_reject_transaction(app): - test_name = Path(__file__).stem - - app.setup_expert_mode() - - message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000006c00ffdd6102321bc251e4a5190ad5b12b251069d9b4904e0203040001000000000000000000000000000000000000000000ff01000001070200000102076501000000015b076501000000015a0765010000000159076501000000015807650100000001570765010000000156076501000000015507650100000001540765010000000153076501000000015207650100000001510765010000000150076501000000014f076501000000014e076501000000014d076501000000014c076501000000014b076501000000014a0765010000000149076501000000014807650100000001470765010000000146076501000000014507650100000001440765010000000143076501000000014202000000000765000a0765000907650008076500070765000607650005076500040765000307650002076500010200000000") - - app.reject_signing(DEFAULT_ACCOUNT, - message, - with_hash=True, - path=test_name) - - app.quit() diff --git a/tests/integration/nano/test_sign_simple_transaction.py b/tests/integration/nano/test_sign_complex_operation.py similarity index 51% rename from tests/integration/nano/test_sign_simple_transaction.py rename to tests/integration/nano/test_sign_complex_operation.py index dcbbae6c3..029397d80 100644 --- a/tests/integration/nano/test_sign_simple_transaction.py +++ b/tests/integration/nano/test_sign_complex_operation.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# Copyright 2023 Functori +# Copyright 2024 Functori # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -15,21 +15,44 @@ from pathlib import Path -from utils.app import Screen, DEFAULT_ACCOUNT +from utils.app import Screen, Screen_text, DEFAULT_ACCOUNT +from utils.backend import StatusCode from utils.message import Message # Operation (0): Transaction +# Fee: 0.05 XTZ +# Storage limit: 45 +# Amount: 0.24 XTZ +# Destination: KT18amZmM5W7qDWVt2pH6uj7sCEd3kbzLrHT +# Entrypoint: do +# Parameter: CAR + +## Operation (0): Origination +# Source: tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa # Fee: 0.5 XTZ # Storage limit: 4 -# Amount: 0.01 XTZ -# Destination: KT18amZmM5W7qDWVt2pH6uj7sCEd3kbzLrHT +# Balance: 1 XTZ +# Delegate: None +# Code: UNPACK mutez +# Storage: or key chest +## Operation (1): Transfer ticket +# Source: tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa +# Fee: 0.01 XTZ +# Storage limit: 5 +# Contents: None +# Type: option nat +# Ticketer: tz1TmFPVZsGQ8MnrBJtnECJgkFUwLa6EWYDm +# Amount: 7 +# Destination: tz3eydffbLkjdVb8zx42BvxpGV87zaRnqL3r +# Entrypoint: default -def test_sign_simple_transaction(app): +def test_sign_complex_operation(app): test_name = Path(__file__).stem + app.assert_screen(Screen.Home) app.setup_expert_mode() - message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000006c00ffdd6102321bc251e4a5190ad5b12b251069d9b4a0c21e020304904e0100000000000000000000000000000000000000000000") + message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000006d00ffdd6102321bc251e4a5190ad5b12b251069d9b4a0c21e040304c0843d0000000004050d036a000000060764035c038d9e00ffdd6102321bc251e4a5190ad5b12b251069d9b4904e05040500000002030600000004056303620000591e842444265757d6a65e3670ca18b5e662f9c0070002cc8e146741cf31fc00123b8c26baf95c57421a3c0000000764656661756c74") data = app.sign(DEFAULT_ACCOUNT, message, diff --git a/tests/integration/nano/test_sign_too_long_operation.py b/tests/integration/nano/test_sign_too_long_operation.py new file mode 100644 index 000000000..d19261707 --- /dev/null +++ b/tests/integration/nano/test_sign_too_long_operation.py @@ -0,0 +1,288 @@ +#!/usr/bin/env python3 +# Copyright 2024 Functori + +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at + +# http://www.apache.org/licenses/LICENSE-2.0 + +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from pathlib import Path +from typing import Callable + +from utils.app import Screen, Screen_text, DEFAULT_ACCOUNT +from utils.message import Message +from utils.backend import StatusCode + +test_path = Path(Path(__file__).stem) + +def _sign_too_long(app, msg: str, navigate: Callable[[], None]): + + app.setup_expert_mode() + app.setup_blindsign_on() + + message = Message.from_bytes(msg) + + data = app._sign( + DEFAULT_ACCOUNT, + message, + with_hash=True, + navigate=navigate) + + app.checker.check_signature( + account=DEFAULT_ACCOUNT, + message=message, + with_hash=True, + data=data) + + app.quit() + +def _sign_decodable_too_long(app, msg: str, path: Path): + + def navigate() -> None: + app.navigate_until_text(Screen_text.Accept_risk, path / "clear_n_too_long_warning") + app.navigate_until_text(Screen_text.Sign_accept, path / "summary") + + _sign_too_long(app, msg, navigate) + +def _reject_too_long( + app, + msg: str, + status_code: StatusCode, + navigate: Callable[[], None]): + + app.setup_expert_mode() + app.setup_blindsign_on() + + message = Message.from_bytes(msg) + + app._failing_signing( + DEFAULT_ACCOUNT, + message, + with_hash=True, + navigate=navigate, + status_code=status_code) + + app.quit() + + +### Too long operation ### + +basic_test_path = test_path / "basic" + +## Operation (0): Reveal +# Source: tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa +# Fee: 1 XTZ +# Storage limit: 4 +# Public key: p2pk66m3NQsd4n6LJWe9WMwx9WHeXwKmBaMwXX92WkMQCR99zmwk2PM +## Operation (1): Transaction +# Source: tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa +# Fee: 2 XTZ +# Storage limit: 7 +# Amount: 3 XTZ +# Destination: tz3XMQscBFM9vPmpbYMavMmwxRMUWvWGZMQQ +# Entrypoint: update_config +# Parameter: Pair 5 True +## Operation (2): Delegation +# Source: tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa +# Fee: 3 XTZ +# Storage limit: 5 +# Delegate: tz2W3Tvcm64GjcV2bipUynnEsctLFz5Z6yRa +## Operation (3): SR: send messages +# Source: tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa +# Fee: 4 XTZ +# Storage limit: 6 +# Message (0): 6d65737361676530 +# Message (1): 6d65737361676531 +# Message (2): 6d65737361676532 +# Message (3): 6d65737361676533 +# Message (4): 6d65737361676534 +# Message (5): 6d65737361676535 +# Message (6): 6d65737361676536 +# Message (7): 6d65737361676537 +# Message (8): 6d65737361676538 +# Message (9): 6d65737361676539 +# Message (10): 6d6573736167653130 +# Message (11): 6d6573736167653131 +# Message (12): 6d6573736167653132 +# Message (13): 6d6573736167653133 +# Message (14): 6d6573736167653134 +# Message (15): 6d6573736167653135 +# Message (16): 6d6573736167653136 +# Message (17): 6d6573736167653137 +# Message (18): 6d6573736167653138 +# Message (19): 6d6573736167653139 +## Operation (4): Set deposit limit +# Source: tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa +# Fee: 1 XTZ +# Storage limit: 3 +# Staking limit: 10 XTZ +basic_operation = "0300000000000000000000000000000000000000000000000000000000000000006b00ffdd6102321bc251e4a5190ad5b12b251069d9b4c0843d0b0104020320182716513907b6bab33f905396d031931c07e01bddd780780c1a56b9c086da6c00ffdd6102321bc251e4a5190ad5b12b251069d9b480897a0c0107c08db701000278eb8b6ab9a768579cd5146b480789650c83f28effff0d7570646174655f636f6e6669670000000607070005030a6e00ffdd6102321bc251e4a5190ad5b12b251069d9b4c08db7010d0105ff01ee572f02e5be5d097ba17369789582882e8abb87c900ffdd6102321bc251e4a5190ad5b12b251069d9b48092f4010e0106000000fa000000086d65737361676530000000086d65737361676531000000086d65737361676532000000086d65737361676533000000086d65737361676534000000086d65737361676535000000086d65737361676536000000086d65737361676537000000086d65737361676538000000086d65737361676539000000096d6573736167653130000000096d6573736167653131000000096d6573736167653132000000096d6573736167653133000000096d6573736167653134000000096d6573736167653135000000096d6573736167653136000000096d6573736167653137000000096d6573736167653138000000096d65737361676531397000ffdd6102321bc251e4a5190ad5b12b251069d9b4c0843d0f0103ff80ade204" + +def test_sign_basic_too_long_operation(app): + _sign_decodable_too_long(app, basic_operation, basic_test_path / "accept") + +def test_reject_basic_too_long_operation_at_warning(app): + path = basic_test_path / "reject_at_too_large_warning" + + def navigate() -> None: + app.navigate_until_text(Screen_text.Sign_reject, path / "clear_n_too_long_warning") + + _reject_too_long(app, basic_operation, StatusCode.REJECT, navigate) + +def test_reject_basic_too_long_operation_at_summary(app): + path = basic_test_path / "reject_at_summary" + + def navigate() -> None: + app.navigate_until_text(Screen_text.Accept_risk, path / "clear_n_too_long_warning") + app.navigate_until_text(Screen_text.Sign_reject, path / "summary") + + _reject_too_long(app, basic_operation, StatusCode.REJECT, navigate) + + +### Different kind of too long operation ### + +## Operation (0): Transaction +# Source: tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa +# Fee: 0 XTZ +# Storage limit: 0 +# Amount: 10 XTZ +# Destination: tz1er74kx433vTtpYddGsf3dDt5piBZeeHyQ +## Operation (1): Transaction +# Source: tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa +# Fee: 1 XTZ +# Storage limit: 1 +# Amount: 1 XTZ +# Destination: tz2PPZ2WN4j92Rdx4NM7oW3HAp3x825HUyac +## Operation (2): Transaction +# Source: tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa +# Fee: 2 XTZ +# Storage limit: 2 +# Amount: 2 XTZ +# Destination: tz1Kp8NCAN5WWwvkWkMmQQXMRe68iURmoQ8w +## Operation (3): Transaction +# Source: tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa +# Fee: 3 XTZ +# Storage limit: 3 +# Amount: 3 XTZ +# Destination: tz3fLwHKthqhTPK6Lar6CTXN1WbDETw1YpGB +## Operation (4): Transaction +# Source: tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa +# Fee: 4 XTZ +# Storage limit: 4 +# Amount: 4 XTZ +# Destination: tz3eydffbLkjdVb8zx42BvxpGV87zaRnqL3r +## Operation (5): Transaction +# Source: tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa +# Fee: 5 XTZ +# Storage limit: 5 +# Amount: 5 XTZ +# Destination: tz2JPgTWZZpxZZLqHMfS69UAy1UHm4Aw5iHu +def test_sign_too_long_operation_with_only_transactions(app): + msg="0300000000000000000000000000000000000000000000000000000000000000006c00ffdd6102321bc251e4a5190ad5b12b251069d9b4000b010080ade2040000d2b3082b0fe03f0f7f39915cdba50e9d9b8ab057006c00ffdd6102321bc251e4a5190ad5b12b251069d9b4c0843d0c0101c0843d0001a55ae1858c1201514c97aa9122e77d3c4197a714006c00ffdd6102321bc251e4a5190ad5b12b251069d9b480897a0d010280897a000001e8e5519a315280a374c8765107979a6049de27006c00ffdd6102321bc251e4a5190ad5b12b251069d9b4c08db7010e0103c08db7010002d09584de879c4bbd3f494ed01b82e06a81e8e176006c00ffdd6102321bc251e4a5190ad5b12b251069d9b48092f4010f01048092f4010002cc8e146741cf31fc00123b8c26baf95c57421a3c006c00ffdd6102321bc251e4a5190ad5b12b251069d9b4c096b102100105c096b10200016e8874874d31c3fbd636e924d5a036a43ec8faa700" + _sign_decodable_too_long(app, msg, test_path / "only_transactions") + +## Operation (0): Proposals +# Source: tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa +# Period: 32 +# Proposal (0): ProtoDemoNoopsDemoNoopsDemoNoopsDemoNoopsDemo6XBoYp +# Proposal (1): ProtoGenesisGenesisGenesisGenesisGenesisGenesk612im +# Proposal (2): PrihK96nBAFSxVL1GLJTVhu9YnzkMFiBeuJRPA8NwuZVZCE1L6i +# Proposal (3): Ps9mPmXaRzmzk35gbAYNCAw6UXdE2qoABTHbN2oEEc1qM7CwT9P +# Proposal (4): PsBabyM1eUXZseaJdmXFApDSBqj8YBfwELoxZHHW77EMcAbbwAS +# Proposal (5): PsCARTHAGazKbHtnKfLzQg3kms52kSRpgnDY982a9oYsSXRLQEb +# Proposal (6): PsDELPH1Kxsxt8f9eWbxQeRxkjfbxoqM52jvs5Y5fBxWWh4ifpo +# Proposal (7): PtEdo2ZkT9oKpimTah6x2embF25oss54njMuPzkJTEi5RqfdZFA +# Proposal (8): PsFLorenaUUuikDWvMDr6fGBRG8kt3e3D3fHoXK1j1BFRxeSH4i +# Proposal (9): PtGRANADsDU8R9daYKAgWnQYAJ64omN1o3KMGVCykShA97vQbvV +# Proposal (10): PtHangz2aRngywmSRGGvrcTyMbbdpWdpFKuS4uMWxg2RaH9i1qx +# Proposal (11): Psithaca2MLRFYargivpo7YvUr7wUDqyxrdhC5CQq78mRvimz6A +# Proposal (12): PtJakart2xVj7pYXJBXrqHgd82rdkLey5ZeeGwDgPp9rhQUbSqY +# Proposal (13): PtKathmankSpLLDALzWw7CGD2j2MtyveTwboEYokqUCP4a1LxMg +# Proposal (14): PtLimaPtLMwfNinJi9rCfDPWea8dFgTZ1MeJ9f1m2SRic6ayiwW +# Proposal (15): PtMumbai2TmsJHNGRkD8v8YDbtao7BLUC3wjASn1inAKLFCjaH1 +# Proposal (16): PtNairobiyssHuh87hEhfVBGCVrK3WnS8Z2FT4ymB5tAa4r1nQf +# Proposal (17): ProxfordYmVfjWnRcgjWH36fW6PArwqykTFzotUxRs6gmTcZDuH +# Proposal (18): PtParisBxoLz5gzMmn3d9WBQNoPSZakgnkMC2VNuQ3KXfUtUQeZ +# Proposal (19): ProtoALphaALphaALphaALphaALphaALphaALphaALphaDdp3zK +def test_sign_too_long_operation_without_fee_or_amount(app): + msg="0300000000000000000000000000000000000000000000000000000000000000000500ffdd6102321bc251e4a5190ad5b12b251069d9b400000020000002800bcd7db2d718ba94e85bd262681049852e1f58512aa552124330d657845c73b70bcd7ffca03f57e38453f0d3e84c302403c05357448b4c2daef8b3a8be3c69c1000000000000000000000000000000000000000000000000000000000000000038ecdef0cd08640f318a9b055f6b0d0c9ae030913a871d9b9d86fb846317da213d0b4bacb5c3e152a167da26fefc266bd3a0e14fc4e41e6c53623bf482833da23e5e3a606afab74a59ca09e333633e2770b6492c5e594455b71e9a2f0ea92afb40cab83d3f37a64da26b57ad3d0432ae881293a25169ada387bfc74a1cbf9e6ec7ad4f7a000e28e9eefc58de8ea1172de843242bd2e688779953d3416a44640b4596285c6871691e25196c6a8d26d90a3ac91375731e3926103c517a13a0ba56cbb944f74244ea2681981f25995f8ebba8ff6cee8c036892fe901cb760c4e39ece5f061e34b5a21feab8dbdfe755ef17e70c9f565464f067ac5e7c02be830a488424520cf9bbf0a42770204d95dcc1f11e404fdb3e90c84850c4cfdb50c5c4b9d0a3f07b8adfcf61f5ca60f244ca9a876e76cbad9140980f6c88d0bf900ac6d8d2ea9f23a1a1011091841b12e32ce2f8c3facff27feee58bb7c9e90567d11425d57ed88be5a69815e39386a33f7dcad391f5f507e03b376e499272c86c6cf2a7d8325f11da2ff36934a586439f085655a833f2ff6a12d15e83b951fb684326e0d9b8c2314cc05ffa3fc655a98bb87155be4cf7ce67fee6b594ea9302e8655df20bf44c7d64e3d7da27d925d10af535fb36cef0ad41930c7929773f4731eba137dbff6586a04802d3f513c65a444d9d4debe42b17e9e7273f8f6c118ea3f4e06e0bcd7b2cadcd87ecb0d5c50330fb59feed7432bffecede8a09a2b86d1527c6a5" + _sign_decodable_too_long(app, msg, test_path / "without_fee_or_amount") + + +### Too long operation containing a too large number ### + +too_large_test_path = test_path / "too_large" + +# Operation (0): SR: send messages +# Source: tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa +# Fee: 4 XTZ +# Storage limit: 6 +# Message (0): 6d65737361676530 +# Message (1): 6d65737361676531 +# Message (2): 6d65737361676532 +# Message (3): 6d65737361676533 +# Message (4): 6d65737361676534 +# Message (5): 6d65737361676535 +# Message (6): 6d65737361676536 +# Message (7): 6d65737361676537 +# Message (8): 6d65737361676538 +# Message (9): 6d65737361676539 +# Message (10): 6d6573736167653130 +# Message (11): 6d6573736167653131 +# Message (12): 6d6573736167653132 +# Message (13): 6d6573736167653133 +# Message (14): 6d6573736167653134 +# Message (15): 6d6573736167653135 +# Message (16): 6d6573736167653136 +# Message (17): 6d6573736167653137 +# Message (18): 6d6573736167653138 +# Message (19): 6d6573736167653139 +# Message (20): 6d6573736167653230 +# Message (21): 6d6573736167653231 +# Message (22): 6d6573736167653232 +# Message (23): 6d6573736167653233 +# Message (24): 6d6573736167653234 +# Message (25): 6d6573736167653235 +# Message (26): 6d6573736167653236 +# Message (27): 6d6573736167653237 +# Message (28): 6d6573736167653238 +# Message (29): 6d6573736167653239 +## Operation (1): Register global constant +# Source: tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa +# Fee: 5 XTZ +# Storage limit: 3 +# Value: 115792089237316195423570985008687907853269984665640564039457584007913129639936 +operation_with_too_large = "030000000000000000000000000000000000000000000000000000000000000000c900ffdd6102321bc251e4a5190ad5b12b251069d9b48092f4010b01060000017c000000086d65737361676530000000086d65737361676531000000086d65737361676532000000086d65737361676533000000086d65737361676534000000086d65737361676535000000086d65737361676536000000086d65737361676537000000086d65737361676538000000086d65737361676539000000096d6573736167653130000000096d6573736167653131000000096d6573736167653132000000096d6573736167653133000000096d6573736167653134000000096d6573736167653135000000096d6573736167653136000000096d6573736167653137000000096d6573736167653138000000096d6573736167653139000000096d6573736167653230000000096d6573736167653231000000096d6573736167653232000000096d6573736167653233000000096d6573736167653234000000096d6573736167653235000000096d6573736167653236000000096d6573736167653237000000096d6573736167653238000000096d65737361676532396f00ffdd6102321bc251e4a5190ad5b12b251069d9b4c096b1020c0103000000260080808080808080808080808080808080808080808080808080808080808080808080808020" + +def test_sign_too_long_operation_with_too_large(app): + path = too_large_test_path / "accept" + + def navigate() -> None: + app.navigate_until_text(Screen_text.Accept_risk, path / "clear_n_too_large_warning") + app.navigate_until_text(Screen_text.Sign_accept, path / "blindsigning") + + _sign_too_long(app, operation_with_too_large, navigate) + +def test_reject_too_long_operation_with_too_large_at_too_large_warning(app): + path = too_large_test_path / "reject_at_too_large_warning" + + def navigate() -> None: + app.navigate_until_text(Screen_text.Sign_reject, path / "clear_n_too_large_warning") + + _reject_too_long(app, operation_with_too_large, StatusCode.PARSE_ERROR, navigate) + +def test_reject_too_long_operation_with_too_large_at_blindsigning(app): + path = too_large_test_path / "reject_at_blindsigning" + + def navigate() -> None: + app.navigate_until_text(Screen_text.Accept_risk, path / "clear_n_too_large_warning") + app.navigate_until_text(Screen_text.Sign_reject, path / "blindsigning") + + _reject_too_long(app, operation_with_too_large, StatusCode.REJECT, navigate) diff --git a/tests/integration/nano/test_sign_transaction.py b/tests/integration/nano/test_sign_transaction.py index a1b702dc5..a62c42b2e 100755 --- a/tests/integration/nano/test_sign_transaction.py +++ b/tests/integration/nano/test_sign_transaction.py @@ -15,19 +15,22 @@ from pathlib import Path -from utils.app import Screen, DEFAULT_ACCOUNT +from utils.app import Screen, Screen_text, DEFAULT_ACCOUNT +from utils.backend import StatusCode from utils.message import Message +test_path = Path(Path(__file__).stem) + # Operation (0): Transaction +# Source: tz2JPgTWZZpxZZLqHMfS69UAy1UHm4Aw5iHu # Fee: 0.05 XTZ # Storage limit: 45 # Amount: 0.24 XTZ # Destination: KT18amZmM5W7qDWVt2pH6uj7sCEd3kbzLrHT # Entrypoint: do # Parameter: CAR - def test_sign_transaction(app): - test_name = Path(__file__).stem + path = test_path / "basic" app.setup_expert_mode() @@ -36,7 +39,191 @@ def test_sign_transaction(app): data = app.sign(DEFAULT_ACCOUNT, message, with_hash=True, - path=test_name) + path=path) + + app.checker.check_signature( + account=DEFAULT_ACCOUNT, + message=message, + with_hash=True, + data=data) + + app.quit() + +# Operation (0): Transaction +# Source: tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa +# Fee: 0.01 XTZ +# Storage limit: 4 +# Amount: 0 XTZ +# Destination: KT18amZmM5W7qDWVt2pH6uj7sCEd3kbzLrHT +# Entrypoint: root +# Data: {pair "[" (pair "Z" (pair "Y" (pair "X" (pair "W" (pair "V" (pair "U" (pair "T" (pair "S" (pair "R" (pair "Q" (pair "P" (pair "O" (pair "N" (pair "M" (pair "L" (pair "K" (pair "J" (pair "I" (pair "H" (pair "G" (pair "F" (pair "E" (pair "D" (pair "C" (pair "B" {})))))))))))))))))))))))));pair 10 (pair 9 (pair 8 (pair 7 (pair 6 (pair 5 (pair 4 (pair 3 (pair 2 (pair 1 {})))))))))} +def test_reject_transaction(app): + path = test_path / "reject" + + app.setup_expert_mode() + + message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000006c00ffdd6102321bc251e4a5190ad5b12b251069d9b4904e0203040001000000000000000000000000000000000000000000ff01000001070200000102076501000000015b076501000000015a0765010000000159076501000000015807650100000001570765010000000156076501000000015507650100000001540765010000000153076501000000015207650100000001510765010000000150076501000000014f076501000000014e076501000000014d076501000000014c076501000000014b076501000000014a0765010000000149076501000000014807650100000001470765010000000146076501000000014507650100000001440765010000000143076501000000014202000000000765000a0765000907650008076500070765000607650005076500040765000307650002076500010200000000") + + app.reject_signing(DEFAULT_ACCOUNT, + message, + with_hash=True, + path=path) + + app.quit() + +# Operation (0): Transaction +# Source: tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa +# Fee: 0.5 XTZ +# Storage limit: 4 +# Amount: 0.01 XTZ +# Destination: KT18amZmM5W7qDWVt2pH6uj7sCEd3kbzLrHT +def test_sign_simple_transaction(app): + path = test_path / "simple" + + app.setup_expert_mode() + + message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000006c00ffdd6102321bc251e4a5190ad5b12b251069d9b4a0c21e020304904e0100000000000000000000000000000000000000000000") + + data = app.sign(DEFAULT_ACCOUNT, + message, + with_hash=True, + path=path) + + app.checker.check_signature( + account=DEFAULT_ACCOUNT, + message=message, + with_hash=True, + data=data) + + app.quit() + +# Operation (0): Transaction +# Source: tz2JPgTWZZpxZZLqHMfS69UAy1UHm4Aw5iHu +# Fee: 0.05 XTZ +# Storage limit: 45 +# Amount: 0.24 XTZ +# Destination: KT18amZmM5W7qDWVt2pH6uj7sCEd3kbzLrHT +# Entrypoint: do +# Parameter: CAR +def test_too_complex_transaction(app): + path = test_path / "complex" + app.assert_screen(Screen.Home) + + message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000006c016e8874874d31c3fbd636e924d5a036a43ec8faa7d0860308362d80d30e01000000000000000000000000000000000000000000ff02000000020316") + + app._failing_signing(DEFAULT_ACCOUNT, + message, + with_hash=True, + navigate=(lambda: app.navigate_until_text( + Screen_text.Back_home, + path)), + status_code=StatusCode.REJECT) + + app.quit() + +# Operation (0): Transaction +# Source: tz2WmivuMG8MMRKMEmzKRMMxMApxZQWYNS4W +# Fee: 0.04 XTZ +# Storage limit: 2 +# Amount: 1000 XTZ +# Destination: tz2CJBeWWLsUDjVUDqGZL6od3DeBCNzYXrXk +# Entrypoint: stake +# Parameter: Unit +def test_sign_stake_transaction(app): + path = test_path / "stake" + + app.setup_expert_mode() + + message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000006c01f6552df4f5ff51c3d13347cab045cfdb8b9bd803c0b8020031028094ebdc0300012bad922d045c068660fabe19576f8506a1fa8fa3ff0600000002030b") + + data = app.sign(DEFAULT_ACCOUNT, + message, + with_hash=True, + path=path) + + app.checker.check_signature( + account=DEFAULT_ACCOUNT, + message=message, + with_hash=True, + data=data) + + app.quit() + +# Operation (0): Transaction +# Source: tz2WmivuMG8MMRKMEmzKRMMxMApxZQWYNS4W +# Fee: 0.04 XTZ +# Storage limit: 2 +# Amount: 500 XTZ +# Destination: tz2CJBeWWLsUDjVUDqGZL6od3DeBCNzYXrXk +# Entrypoint: unstake +# Parameter: Unit +def test_sign_unstake_transaction(app): + path = test_path / "unstake" + + app.setup_expert_mode() + + message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000006c01f6552df4f5ff51c3d13347cab045cfdb8b9bd803c0b80200310280cab5ee0100012bad922d045c068660fabe19576f8506a1fa8fa3ff0700000002030b") + + data = app.sign(DEFAULT_ACCOUNT, + message, + with_hash=True, + path=path) + + app.checker.check_signature( + account=DEFAULT_ACCOUNT, + message=message, + with_hash=True, + data=data) + + app.quit() + +# Operation (0): Transaction +# Source: tz2WmivuMG8MMRKMEmzKRMMxMApxZQWYNS4W +# Fee: 0.04 XTZ +# Storage limit: 2 +# Amount: 0 XTZ +# Destination: tz2CJBeWWLsUDjVUDqGZL6od3DeBCNzYXrXk +# Entrypoint: finalize_unstake +# Parameter: Unit +def test_sign_finalize_unstake_transaction(app): + path = test_path / "finalize_unstake" + + app.setup_expert_mode() + + message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000006c01f6552df4f5ff51c3d13347cab045cfdb8b9bd803c0b8020031020000012bad922d045c068660fabe19576f8506a1fa8fa3ff0800000002030b") + + data = app.sign(DEFAULT_ACCOUNT, + message, + with_hash=True, + path=path) + + app.checker.check_signature( + account=DEFAULT_ACCOUNT, + message=message, + with_hash=True, + data=data) + + app.quit() + +# Operation (0): Transaction +# Source: tz2WmivuMG8MMRKMEmzKRMMxMApxZQWYNS4W +# Fee: 0.04 XTZ +# Storage limit: 2 +# Amount: 0 XTZ +# Destination: tz2CJBeWWLsUDjVUDqGZL6od3DeBCNzYXrXk +# Entrypoint: set_delegate_parameters +# Parameter: Pair 4000000 (Pair 20000000 Unit) +def test_sign_set_delegate_parameters_transaction(app): + path = test_path / "delegate_parameters" + + app.setup_expert_mode() + + message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000006c01f6552df4f5ff51c3d13347cab045cfdb8b9bd803c0b8020031020000012bad922d045c068660fabe19576f8506a1fa8fa3ff090000001007070080a4e80307070080b48913030b") + + data = app.sign(DEFAULT_ACCOUNT, + message, + with_hash=True, + path=path) app.checker.check_signature( account=DEFAULT_ACCOUNT, diff --git a/tests/integration/nano/test_too_complex_transaction.py b/tests/integration/nano/test_too_complex_transaction.py deleted file mode 100644 index 342a4cd64..000000000 --- a/tests/integration/nano/test_too_complex_transaction.py +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env python3 -# Copyright 2023 Functori - -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at - -# http://www.apache.org/licenses/LICENSE-2.0 - -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from pathlib import Path - -from utils.app import Screen, Screen_text, DEFAULT_ACCOUNT -from utils.backend import StatusCode -from utils.message import Message - -# Operation (0): Transaction -# Fee: 0.05 XTZ -# Storage limit: 45 -# Amount: 0.24 XTZ -# Destination: KT18amZmM5W7qDWVt2pH6uj7sCEd3kbzLrHT -# Entrypoint: do -# Parameter: CAR - -def test_too_complex_transaction(app): - test_name = Path(__file__).stem - - app.assert_screen(Screen.Home) - - message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000006c016e8874874d31c3fbd636e924d5a036a43ec8faa7d0860308362d80d30e01000000000000000000000000000000000000000000ff02000000020316") - - app._failing_signing(DEFAULT_ACCOUNT, - message, - with_hash=True, - text=Screen_text.Back_home, - status_code=StatusCode.REJECT, - path=test_name) - - app.quit() diff --git a/tests/integration/nano/utils/app.py b/tests/integration/nano/utils/app.py index a9d8e24e3..4f2eda098 100644 --- a/tests/integration/nano/utils/app.py +++ b/tests/integration/nano/utils/app.py @@ -30,7 +30,7 @@ from .account import Account, SIGNATURE_TYPE from .backend import StatusCode, TezosBackend, APP_KIND -version: Tuple[int, int, int] = (3, 0, 4) +version: Tuple[int, int, int] = (3, 0, 5) class TezosAPDUChecker: @@ -144,6 +144,8 @@ class Screen(str, Enum): Settings = "settings" Settings_expert_mode_disabled = "settings_expert_mode_disabled" Settings_expert_mode_enabled = "settings_expert_mode_enabled" + Settings_blindsign_on = "settings_blindsign_on" + Settings_blindsign_off = "settings_blindsign_off" Settings_back = "back" Quit = "quit" @@ -153,8 +155,16 @@ class Screen_text(str, Enum): Public_key_reject = "Reject" Sign_accept = "Accept" Sign_reject = "Reject" - Blind_switch = "Accept risk" + Accept_risk = "Accept risk" Back_home = "Home" + Blindsign = "blindsign" + Blindsign_nanos = "Blindsign" + + def blindsign(backend: SpeculosTezosBackend) -> "Screen_text": + if backend.firmware.device == "nanos": + return Screen_text.Blindsign_nanos + else: + return Screen_text.Blindsign class TezosAppScreen(): @@ -220,6 +230,23 @@ def setup_expert_mode(self) -> None: self.assert_screen(Screen.Settings_expert_mode_disabled) self.backend.both_click() self.assert_screen(Screen.Settings_expert_mode_enabled) + self.backend.left_click() + self.assert_screen(Screen.Settings_back) + self.backend.both_click() + self.assert_screen(Screen.Home) + + def setup_blindsign_on(self) -> None: + self.assert_screen(Screen.Home) + self.backend.right_click() + self.assert_screen(Screen.Version) + self.backend.right_click() + self.assert_screen(Screen.Settings) + self.backend.both_click() + # expert_mode screen + self.backend.right_click() + self.assert_screen(Screen.Settings_blindsign_off) + self.backend.both_click() + self.assert_screen(Screen.Settings_blindsign_on) self.backend.right_click() self.assert_screen(Screen.Settings_back) self.backend.both_click() @@ -264,9 +291,8 @@ def expect_apdu_failure(self, code: StatusCode) -> Generator[None, None, None]: def _failing_send(self, send: Callable[[], bytes], - text: Screen_text, - status_code: StatusCode, - path: Union[str, Path]) -> None: + navigate: Callable[[], None], + status_code: StatusCode) -> None: def expected_failure_send() -> bytes: with self.expect_apdu_failure(status_code): send() @@ -274,7 +300,7 @@ def expected_failure_send() -> bytes: send_and_navigate( send=expected_failure_send, - navigate=(lambda: self.navigate_until_text(text, path))) + navigate=navigate) def provide_public_key(self, account: Account, @@ -290,9 +316,20 @@ def reject_public_key(self, self._failing_send( send=(lambda: self.backend.get_public_key(account, with_prompt=True)), - text=Screen_text.Public_key_reject, - status_code=StatusCode.REJECT, - path=path) + navigate=(lambda: self.navigate_until_text( + Screen_text.Public_key_reject, + path)), + status_code=StatusCode.REJECT) + + def _sign(self, + account: Account, + message: Message, + with_hash: bool, + navigate: Callable[[], None]) -> bytes: + + return send_and_navigate( + send=(lambda: self.backend.sign(account, message, with_hash)), + navigate=navigate) def sign(self, account: Account, @@ -300,8 +337,10 @@ def sign(self, with_hash: bool, path: Union[str, Path]) -> bytes: - return send_and_navigate( - send=(lambda: self.backend.sign(account, message, with_hash)), + return self._sign( + account, + message, + with_hash, navigate=(lambda: self.navigate_until_text(Screen_text.Sign_accept, path))) def blind_sign(self, @@ -313,7 +352,7 @@ def blind_sign(self, if isinstance(path, str): path = Path(path) def navigate() -> None: - self.navigate_until_text(Screen_text.Blind_switch, path / "clear") + self.navigate_until_text(Screen_text.Accept_risk, path / "clear") self.navigate_until_text(Screen_text.Sign_accept, path / "blind") return send_and_navigate( @@ -324,15 +363,13 @@ def _failing_signing(self, account: Account, message: Message, with_hash: bool, - text: Screen_text, - status_code: StatusCode, - path: Union[str, Path]) -> None: + navigate: Callable[[], None], + status_code: StatusCode) -> None: self._failing_send( send=(lambda: self.backend.sign(account, message, with_hash)), - text=text, - status_code=status_code, - path=path) + navigate=navigate, + status_code=status_code) def reject_signing(self, account: Account, @@ -343,9 +380,10 @@ def reject_signing(self, account, message, with_hash, - text=Screen_text.Sign_reject, - status_code=StatusCode.REJECT, - path=path) + navigate=(lambda: self.navigate_until_text( + Screen_text.Sign_reject, + path)), + status_code=StatusCode.REJECT) def hard_failing_signing(self, account: Account, @@ -356,9 +394,10 @@ def hard_failing_signing(self, self._failing_signing(account, message, with_hash, - Screen_text.Home, - status_code, - path) + navigate=(lambda: self.navigate_until_text( + Screen_text.Home, + path)), + status_code=status_code) def parsing_error_signing(self, account: Account, @@ -368,9 +407,10 @@ def parsing_error_signing(self, self._failing_signing(account, message, with_hash, - Screen_text.Sign_reject, - StatusCode.PARSE_ERROR, - path) + navigate=(lambda: self.navigate_until_text( + Screen_text.Sign_reject, + path)), + status_code=StatusCode.PARSE_ERROR) DEFAULT_SEED = ('zebra zebra zebra zebra zebra zebra zebra zebra zebra zebra zebra zebra zebra zebra zebra zebra zebra zebra zebra zebra zebra zebra zebra zebra') diff --git a/tests/integration/test_runtime.sh b/tests/integration/test_runtime.sh index ca4c72561..591d7f922 100644 --- a/tests/integration/test_runtime.sh +++ b/tests/integration/test_runtime.sh @@ -179,7 +179,7 @@ set_expert_mode() { expect_section_content 'Expert mode' 'DISABLED' press_button both expect_section_content 'Expert mode' 'ENABLED' - press_button right + press_button left expect_section_content 'Back' press_button both expected_home @@ -193,7 +193,7 @@ quit_app() { press_button right expect_full_text "Settings" press_button right - expect_full_text "Quit?" + expect_full_text "Quit" press_button both expect_exited } diff --git a/tests/integration/touch/snapshots/flex/home.png b/tests/integration/touch/snapshots/flex/home.png old mode 100644 new mode 100755 diff --git a/tests/integration/touch/snapshots/flex/info.png b/tests/integration/touch/snapshots/flex/info.png deleted file mode 100644 index 2ee72f266..000000000 Binary files a/tests/integration/touch/snapshots/flex/info.png and /dev/null differ diff --git a/tests/integration/touch/snapshots/flex/info_flex_1.png b/tests/integration/touch/snapshots/flex/info_flex_1.png new file mode 100644 index 000000000..352fc1482 Binary files /dev/null and b/tests/integration/touch/snapshots/flex/info_flex_1.png differ diff --git a/tests/integration/touch/snapshots/flex/info_flex_2.png b/tests/integration/touch/snapshots/flex/info_flex_2.png new file mode 100644 index 000000000..81e695a90 Binary files /dev/null and b/tests/integration/touch/snapshots/flex/info_flex_2.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_too_deep/review_request_sign_operation.png b/tests/integration/touch/snapshots/flex/review_screen.png similarity index 100% rename from tests/integration/touch/snapshots/flex/test_blindsign_too_deep/review_request_sign_operation.png rename to tests/integration/touch/snapshots/flex/review_screen.png diff --git a/tests/integration/touch/snapshots/flex/settings_expert_mode_off_blindsigning_off.png b/tests/integration/touch/snapshots/flex/settings_expert_mode_off_blindsigning_off.png new file mode 100644 index 000000000..6e3a7f47a Binary files /dev/null and b/tests/integration/touch/snapshots/flex/settings_expert_mode_off_blindsigning_off.png differ diff --git a/tests/integration/touch/snapshots/flex/settings_expert_mode_off_blindsigning_on.png b/tests/integration/touch/snapshots/flex/settings_expert_mode_off_blindsigning_on.png new file mode 100644 index 000000000..4018af105 Binary files /dev/null and b/tests/integration/touch/snapshots/flex/settings_expert_mode_off_blindsigning_on.png differ diff --git a/tests/integration/touch/snapshots/flex/settings_expert_mode_on_blindsigning_off.png b/tests/integration/touch/snapshots/flex/settings_expert_mode_on_blindsigning_off.png new file mode 100644 index 000000000..56af66a8c Binary files /dev/null and b/tests/integration/touch/snapshots/flex/settings_expert_mode_on_blindsigning_off.png differ diff --git a/tests/integration/touch/snapshots/flex/settings_expert_mode_on_blindsigning_on.png b/tests/integration/touch/snapshots/flex/settings_expert_mode_on_blindsigning_on.png new file mode 100644 index 000000000..3391c654f Binary files /dev/null and b/tests/integration/touch/snapshots/flex/settings_expert_mode_on_blindsigning_on.png differ diff --git a/tests/integration/touch/snapshots/flex/test_basic/settings.png b/tests/integration/touch/snapshots/flex/test_basic/settings.png deleted file mode 100644 index 0dfdd6841..000000000 Binary files a/tests/integration/touch/snapshots/flex/test_basic/settings.png and /dev/null differ diff --git a/tests/integration/touch/snapshots/flex/test_basic/settings_expert_on.png b/tests/integration/touch/snapshots/flex/test_basic/settings_expert_on.png deleted file mode 100644 index 55649b9c7..000000000 Binary files a/tests/integration/touch/snapshots/flex/test_basic/settings_expert_on.png and /dev/null differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/blindsign_warning_ledger_1.png b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/blindsign_warning_ledger_1.png new file mode 100644 index 000000000..acbb161df Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/blindsign_warning_ledger_1.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/expert_mode_splash.png b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/expert_mode_splash.png new file mode 100644 index 000000000..92e453d5c Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/expert_mode_splash.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/operation_sign.png b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/operation_sign.png new file mode 100644 index 000000000..5e787d8ed Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/operation_sign.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/operation_sign_summary.png b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/operation_sign_summary.png new file mode 100644 index 000000000..1b3872252 Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/operation_sign_summary.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_too_deep_rejections/review_request_sign_operation.png b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/review_transaction.png similarity index 100% rename from tests/integration/touch/snapshots/flex/test_blindsign_too_deep_rejections/review_request_sign_operation.png rename to tests/integration/touch/snapshots/flex/test_blindsign_different_modes/review_transaction.png diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/signing_successful.png b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/signing_successful.png new file mode 100644 index 000000000..be51a9d55 Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/signing_successful.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/skip_review.png b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/skip_review.png new file mode 100644 index 000000000..a589f27f6 Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/skip_review.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/summary_review_transaction.png b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/summary_review_transaction.png new file mode 100644 index 000000000..f585c3a37 Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/summary_review_transaction.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_blind_review_1.png b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_blind_review_1.png new file mode 100644 index 000000000..c550dc748 Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_blind_review_1.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_blind_review_2.png b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_blind_review_2.png new file mode 100644 index 000000000..968870403 Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_blind_review_2.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_blindsign_on_screen_1.png b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_blindsign_on_screen_1.png new file mode 100644 index 000000000..18da0c504 Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_blindsign_on_screen_1.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_1_1.png b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_1_1.png new file mode 100644 index 000000000..37fce12bc Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_1_1.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_1_2.png b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_1_2.png new file mode 100644 index 000000000..275d27810 Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_1_2.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_1_3.png b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_1_3.png new file mode 100644 index 000000000..b3396b6a7 Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_1_3.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_1_4.png b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_1_4.png new file mode 100644 index 000000000..4c442240e Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_1_4.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_2_1.png b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_2_1.png new file mode 100644 index 000000000..d80215c11 Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_2_1.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_2_2.png b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_2_2.png new file mode 100644 index 000000000..f400adc78 Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_2_2.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_3_1.png b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_3_1.png new file mode 100644 index 000000000..ea10f9e6d Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_3_1.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_3_2.png b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_3_2.png new file mode 100644 index 000000000..78e2c57b0 Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_3_2.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_3_3.png b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_3_3.png new file mode 100644 index 000000000..5e26760b5 Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_3_3.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_3_4.png b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_3_4.png new file mode 100644 index 000000000..048ec804b Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_3_4.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_3_5.png b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_3_5.png new file mode 100644 index 000000000..ad3a93745 Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_3_5.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_4_1.png b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_4_1.png new file mode 100644 index 000000000..6f870ee1d Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_4_1.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_4_2.png b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_4_2.png new file mode 100644 index 000000000..f673005fe Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_4_2.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_4_3.png b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_4_3.png new file mode 100644 index 000000000..55cbb071f Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_4_3.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_1_1.png b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_1_1.png new file mode 100644 index 000000000..18da0c504 Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_1_1.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_1_2.png b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_1_2.png new file mode 100644 index 000000000..beeffde7d Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_1_2.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_1_3.png b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_1_3.png new file mode 100644 index 000000000..f6e4f7d14 Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_1_3.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_1_4.png b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_1_4.png new file mode 100644 index 000000000..51a878821 Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_1_4.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_1_5.png b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_1_5.png new file mode 100644 index 000000000..c6584e5e9 Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_1_5.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_1_6.png b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_1_6.png new file mode 100644 index 000000000..6a2029669 Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_1_6.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_1_7.png b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_1_7.png new file mode 100644 index 000000000..e3ed3ba73 Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_1_7.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_2_1.png b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_2_1.png new file mode 100644 index 000000000..4f970a712 Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_2_1.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_2_2.png b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_2_2.png new file mode 100644 index 000000000..05a752f44 Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_2_2.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_2_3.png b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_2_3.png new file mode 100644 index 000000000..d8a22ce04 Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_2_3.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_3_1.png b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_3_1.png new file mode 100644 index 000000000..8fcb78f57 Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_3_1.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_3_2.png b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_3_2.png new file mode 100644 index 000000000..3d0f31cc8 Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_3_2.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_3_3.png b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_3_3.png new file mode 100644 index 000000000..81274f181 Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_3_3.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_3_4.png b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_3_4.png new file mode 100644 index 000000000..4dd1f6578 Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_3_4.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_3_5.png b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_3_5.png new file mode 100644 index 000000000..e3b71c49c Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_3_5.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_3_6.png b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_3_6.png new file mode 100644 index 000000000..f37d9618d Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_3_6.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_4_1.png b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_4_1.png new file mode 100644 index 000000000..cb5f8a0ed Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_4_1.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_4_2.png b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_4_2.png new file mode 100644 index 000000000..e83de624a Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_4_2.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_4_3.png b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_4_3.png new file mode 100644 index 000000000..9dbf9e3f4 Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_blindsign_different_modes/tbdm_screen_skip_4_3.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_too_deep/blindsign_review_transaction.png b/tests/integration/touch/snapshots/flex/test_blindsign_too_deep/blindsign_review_transaction.png new file mode 100644 index 000000000..e9ad5897e Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_blindsign_too_deep/blindsign_review_transaction.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_too_deep/blindsign_warning_ledger_1.png b/tests/integration/touch/snapshots/flex/test_blindsign_too_deep/blindsign_warning_ledger_1.png new file mode 100644 index 000000000..acbb161df Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_blindsign_too_deep/blindsign_warning_ledger_1.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_too_deep/operation_sign.png b/tests/integration/touch/snapshots/flex/test_blindsign_too_deep/operation_sign_blindsign.png similarity index 100% rename from tests/integration/touch/snapshots/flex/test_blindsign_too_deep/operation_sign.png rename to tests/integration/touch/snapshots/flex/test_blindsign_too_deep/operation_sign_blindsign.png diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_too_deep/signing_successful.png b/tests/integration/touch/snapshots/flex/test_blindsign_too_deep/signing_successful.png index 2f04101d6..be51a9d55 100644 Binary files a/tests/integration/touch/snapshots/flex/test_blindsign_too_deep/signing_successful.png and b/tests/integration/touch/snapshots/flex/test_blindsign_too_deep/signing_successful.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_too_deep/tbtd_review_1.png b/tests/integration/touch/snapshots/flex/test_blindsign_too_deep/tbtd_review_1.png index bf1e0ab7f..ab2da4ca3 100644 Binary files a/tests/integration/touch/snapshots/flex/test_blindsign_too_deep/tbtd_review_1.png and b/tests/integration/touch/snapshots/flex/test_blindsign_too_deep/tbtd_review_1.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_too_deep/tbtd_review_blindsign_0.png b/tests/integration/touch/snapshots/flex/test_blindsign_too_deep/tbtd_review_blindsign_0.png new file mode 100644 index 000000000..ab2da4ca3 Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_blindsign_too_deep/tbtd_review_blindsign_0.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_too_deep/tbtd_review_blindsign_on_0.png b/tests/integration/touch/snapshots/flex/test_blindsign_too_deep/tbtd_review_blindsign_on_0.png new file mode 100644 index 000000000..19d239e7a Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_blindsign_too_deep/tbtd_review_blindsign_on_0.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_too_deep/tbtd_start_review_blindsign.png b/tests/integration/touch/snapshots/flex/test_blindsign_too_deep/tbtd_start_review_blindsign.png index ed5dfab30..e9ad5897e 100644 Binary files a/tests/integration/touch/snapshots/flex/test_blindsign_too_deep/tbtd_start_review_blindsign.png and b/tests/integration/touch/snapshots/flex/test_blindsign_too_deep/tbtd_start_review_blindsign.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_too_deep/too_deep_blindsign_warning.png b/tests/integration/touch/snapshots/flex/test_blindsign_too_deep/too_deep_blindsign_warning.png new file mode 100644 index 000000000..ca0ed21bf Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_blindsign_too_deep/too_deep_blindsign_warning.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_too_deep/unsafe_operation_warning_1.png b/tests/integration/touch/snapshots/flex/test_blindsign_too_deep/unsafe_operation_warning_1.png index 3bfa3d762..ca0ed21bf 100644 Binary files a/tests/integration/touch/snapshots/flex/test_blindsign_too_deep/unsafe_operation_warning_1.png and b/tests/integration/touch/snapshots/flex/test_blindsign_too_deep/unsafe_operation_warning_1.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_too_deep/unsafe_operation_warning_2.png b/tests/integration/touch/snapshots/flex/test_blindsign_too_deep/unsafe_operation_warning_2.png index 94bb13960..acbb161df 100644 Binary files a/tests/integration/touch/snapshots/flex/test_blindsign_too_deep/unsafe_operation_warning_2.png and b/tests/integration/touch/snapshots/flex/test_blindsign_too_deep/unsafe_operation_warning_2.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_too_deep_rejections/operation_sign.png b/tests/integration/touch/snapshots/flex/test_blindsign_too_deep_rejections/operation_sign_blindsign.png similarity index 100% rename from tests/integration/touch/snapshots/flex/test_blindsign_too_deep_rejections/operation_sign.png rename to tests/integration/touch/snapshots/flex/test_blindsign_too_deep_rejections/operation_sign_blindsign.png diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_too_deep_rejections/tbtd_review_1.png b/tests/integration/touch/snapshots/flex/test_blindsign_too_deep_rejections/tbtd_review_1.png index bf1e0ab7f..ab2da4ca3 100644 Binary files a/tests/integration/touch/snapshots/flex/test_blindsign_too_deep_rejections/tbtd_review_1.png and b/tests/integration/touch/snapshots/flex/test_blindsign_too_deep_rejections/tbtd_review_1.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_too_deep_rejections/tbtdr_start_review_blindsign.png b/tests/integration/touch/snapshots/flex/test_blindsign_too_deep_rejections/tbtdr_start_review_blindsign.png index ed5dfab30..e9ad5897e 100644 Binary files a/tests/integration/touch/snapshots/flex/test_blindsign_too_deep_rejections/tbtdr_start_review_blindsign.png and b/tests/integration/touch/snapshots/flex/test_blindsign_too_deep_rejections/tbtdr_start_review_blindsign.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_too_deep_rejections/unsafe_operation_warning_1.png b/tests/integration/touch/snapshots/flex/test_blindsign_too_deep_rejections/unsafe_operation_warning_1.png index 3bfa3d762..ca0ed21bf 100644 Binary files a/tests/integration/touch/snapshots/flex/test_blindsign_too_deep_rejections/unsafe_operation_warning_1.png and b/tests/integration/touch/snapshots/flex/test_blindsign_too_deep_rejections/unsafe_operation_warning_1.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_too_deep_rejections/unsafe_operation_warning_2.png b/tests/integration/touch/snapshots/flex/test_blindsign_too_deep_rejections/unsafe_operation_warning_2.png index 94bb13960..acbb161df 100644 Binary files a/tests/integration/touch/snapshots/flex/test_blindsign_too_deep_rejections/unsafe_operation_warning_2.png and b/tests/integration/touch/snapshots/flex/test_blindsign_too_deep_rejections/unsafe_operation_warning_2.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_too_large/review_request_sign_operation.png b/tests/integration/touch/snapshots/flex/test_blindsign_too_large/review_request_sign_operation.png deleted file mode 100644 index 00bec06df..000000000 Binary files a/tests/integration/touch/snapshots/flex/test_blindsign_too_large/review_request_sign_operation.png and /dev/null differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_too_large/signing_successful.png b/tests/integration/touch/snapshots/flex/test_blindsign_too_large/signing_successful.png index 2f04101d6..be51a9d55 100644 Binary files a/tests/integration/touch/snapshots/flex/test_blindsign_too_large/signing_successful.png and b/tests/integration/touch/snapshots/flex/test_blindsign_too_large/signing_successful.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_too_large/tbtd_start_review_blindsign.png b/tests/integration/touch/snapshots/flex/test_blindsign_too_large/tbtd_start_review_blindsign.png index ed5dfab30..e9ad5897e 100644 Binary files a/tests/integration/touch/snapshots/flex/test_blindsign_too_large/tbtd_start_review_blindsign.png and b/tests/integration/touch/snapshots/flex/test_blindsign_too_large/tbtd_start_review_blindsign.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_too_large/tbtl_review_1.png b/tests/integration/touch/snapshots/flex/test_blindsign_too_large/tbtl_review_1.png index 77a9add54..5e72ae346 100644 Binary files a/tests/integration/touch/snapshots/flex/test_blindsign_too_large/tbtl_review_1.png and b/tests/integration/touch/snapshots/flex/test_blindsign_too_large/tbtl_review_1.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_too_large/unsafe_operation_warning_1.png b/tests/integration/touch/snapshots/flex/test_blindsign_too_large/unsafe_operation_warning_1.png index 3bfa3d762..f9d0fbf95 100644 Binary files a/tests/integration/touch/snapshots/flex/test_blindsign_too_large/unsafe_operation_warning_1.png and b/tests/integration/touch/snapshots/flex/test_blindsign_too_large/unsafe_operation_warning_1.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_too_large/unsafe_operation_warning_2.png b/tests/integration/touch/snapshots/flex/test_blindsign_too_large/unsafe_operation_warning_2.png index d837d6792..acbb161df 100644 Binary files a/tests/integration/touch/snapshots/flex/test_blindsign_too_large/unsafe_operation_warning_2.png and b/tests/integration/touch/snapshots/flex/test_blindsign_too_large/unsafe_operation_warning_2.png differ diff --git a/tests/integration/touch/snapshots/flex/test_blindsign_valid/review_request_sign_operation.png b/tests/integration/touch/snapshots/flex/test_blindsign_valid/review_request_sign_operation.png deleted file mode 100644 index 00bec06df..000000000 Binary files a/tests/integration/touch/snapshots/flex/test_blindsign_valid/review_request_sign_operation.png and /dev/null differ diff --git a/tests/integration/touch/snapshots/flex/test_expert_mode_rejections/review_request_sign_operation.png b/tests/integration/touch/snapshots/flex/test_expert_mode_rejections/review_request_sign_operation.png deleted file mode 100644 index 00bec06df..000000000 Binary files a/tests/integration/touch/snapshots/flex/test_expert_mode_rejections/review_request_sign_operation.png and /dev/null differ diff --git a/tests/integration/touch/snapshots/flex/test_parsing_errors/invalid_tag.png b/tests/integration/touch/snapshots/flex/test_parsing_errors/invalid_tag.png index 08b060e28..07ecd0df2 100644 Binary files a/tests/integration/touch/snapshots/flex/test_parsing_errors/invalid_tag.png and b/tests/integration/touch/snapshots/flex/test_parsing_errors/invalid_tag.png differ diff --git a/tests/integration/touch/snapshots/flex/test_parsing_errors/review_request_sign_operation.png b/tests/integration/touch/snapshots/flex/test_parsing_errors/review_request_sign_operation.png deleted file mode 100644 index 00bec06df..000000000 Binary files a/tests/integration/touch/snapshots/flex/test_parsing_errors/review_request_sign_operation.png and /dev/null differ diff --git a/tests/integration/touch/snapshots/flex/test_parsing_errors/too_deep.png b/tests/integration/touch/snapshots/flex/test_parsing_errors/too_deep.png index 94bb13960..ca0ed21bf 100644 Binary files a/tests/integration/touch/snapshots/flex/test_parsing_errors/too_deep.png and b/tests/integration/touch/snapshots/flex/test_parsing_errors/too_deep.png differ diff --git a/tests/integration/touch/snapshots/flex/test_parsing_errors/too_large.png b/tests/integration/touch/snapshots/flex/test_parsing_errors/too_large.png index d837d6792..f9d0fbf95 100644 Binary files a/tests/integration/touch/snapshots/flex/test_parsing_errors/too_large.png and b/tests/integration/touch/snapshots/flex/test_parsing_errors/too_large.png differ diff --git a/tests/integration/touch/snapshots/flex/test_parsing_errors/unsafe_operation_warning_1.png b/tests/integration/touch/snapshots/flex/test_parsing_errors/unsafe_operation_warning_1.png deleted file mode 100644 index 3bfa3d762..000000000 Binary files a/tests/integration/touch/snapshots/flex/test_parsing_errors/unsafe_operation_warning_1.png and /dev/null differ diff --git a/tests/integration/touch/snapshots/flex/test_reject_review_operation/review_request_sign_operation.png b/tests/integration/touch/snapshots/flex/test_reject_review_operation/review_request_sign_operation.png deleted file mode 100644 index 00bec06df..000000000 Binary files a/tests/integration/touch/snapshots/flex/test_reject_review_operation/review_request_sign_operation.png and /dev/null differ diff --git a/tests/integration/touch/snapshots/flex/test_reject_transfer/review_request_sign_operation.png b/tests/integration/touch/snapshots/flex/test_reject_transfer/review_request_sign_operation.png deleted file mode 100644 index 00bec06df..000000000 Binary files a/tests/integration/touch/snapshots/flex/test_reject_transfer/review_request_sign_operation.png and /dev/null differ diff --git a/tests/integration/touch/snapshots/flex/test_sign_complex_operation/enable_expert_mode.png b/tests/integration/touch/snapshots/flex/test_sign_complex_operation/enable_expert_mode.png new file mode 100644 index 000000000..bb1b83017 Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_sign_complex_operation/enable_expert_mode.png differ diff --git a/tests/integration/touch/snapshots/flex/test_sign_complex_operation/enabled_expert_mode.png b/tests/integration/touch/snapshots/flex/test_sign_complex_operation/enabled_expert_mode.png new file mode 100644 index 000000000..9f409bbc8 Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_sign_complex_operation/enabled_expert_mode.png differ diff --git a/tests/integration/touch/snapshots/flex/test_sign_complex_operation/expert_mode_splash.png b/tests/integration/touch/snapshots/flex/test_sign_complex_operation/expert_mode_splash.png new file mode 100644 index 000000000..92e453d5c Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_sign_complex_operation/expert_mode_splash.png differ diff --git a/tests/integration/touch/snapshots/flex/test_sign_complex_operation/operation_sign.png b/tests/integration/touch/snapshots/flex/test_sign_complex_operation/operation_sign.png new file mode 100644 index 000000000..5e787d8ed Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_sign_complex_operation/operation_sign.png differ diff --git a/tests/integration/touch/snapshots/flex/test_sign_complex_operation/review_01.png b/tests/integration/touch/snapshots/flex/test_sign_complex_operation/review_01.png new file mode 100644 index 000000000..f647695e4 Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_sign_complex_operation/review_01.png differ diff --git a/tests/integration/touch/snapshots/flex/test_sign_complex_operation/review_02.png b/tests/integration/touch/snapshots/flex/test_sign_complex_operation/review_02.png new file mode 100644 index 000000000..3287886c4 Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_sign_complex_operation/review_02.png differ diff --git a/tests/integration/touch/snapshots/flex/test_sign_complex_operation/review_03.png b/tests/integration/touch/snapshots/flex/test_sign_complex_operation/review_03.png new file mode 100644 index 000000000..2323e3033 Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_sign_complex_operation/review_03.png differ diff --git a/tests/integration/touch/snapshots/flex/test_sign_complex_operation/review_04.png b/tests/integration/touch/snapshots/flex/test_sign_complex_operation/review_04.png new file mode 100644 index 000000000..254c9c9fd Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_sign_complex_operation/review_04.png differ diff --git a/tests/integration/touch/snapshots/flex/test_sign_complex_operation/review_05.png b/tests/integration/touch/snapshots/flex/test_sign_complex_operation/review_05.png new file mode 100644 index 000000000..4439e9247 Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_sign_complex_operation/review_05.png differ diff --git a/tests/integration/touch/snapshots/flex/test_sign_complex_operation/review_06.png b/tests/integration/touch/snapshots/flex/test_sign_complex_operation/review_06.png new file mode 100644 index 000000000..60de857c4 Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_sign_complex_operation/review_06.png differ diff --git a/tests/integration/touch/snapshots/flex/test_sign_complex_operation/signing_successful.png b/tests/integration/touch/snapshots/flex/test_sign_complex_operation/signing_successful.png new file mode 100644 index 000000000..be51a9d55 Binary files /dev/null and b/tests/integration/touch/snapshots/flex/test_sign_complex_operation/signing_successful.png differ diff --git a/tests/integration/touch/snapshots/flex/test_sign_execute_outbox_messages/review_request_sign_operation.png b/tests/integration/touch/snapshots/flex/test_sign_execute_outbox_messages/review_request_sign_operation.png deleted file mode 100644 index 00bec06df..000000000 Binary files a/tests/integration/touch/snapshots/flex/test_sign_execute_outbox_messages/review_request_sign_operation.png and /dev/null differ diff --git a/tests/integration/touch/snapshots/flex/test_sign_transfer/review_request_sign_operation.png b/tests/integration/touch/snapshots/flex/test_sign_transfer/review_request_sign_operation.png deleted file mode 100644 index 00bec06df..000000000 Binary files a/tests/integration/touch/snapshots/flex/test_sign_transfer/review_request_sign_operation.png and /dev/null differ diff --git a/tests/integration/touch/snapshots/flex/test_sign_transfer_without_hash/review_request_sign_operation.png b/tests/integration/touch/snapshots/flex/test_sign_transfer_without_hash/review_request_sign_operation.png deleted file mode 100644 index 00bec06df..000000000 Binary files a/tests/integration/touch/snapshots/flex/test_sign_transfer_without_hash/review_request_sign_operation.png and /dev/null differ diff --git a/tests/integration/touch/snapshots/stax/home.png b/tests/integration/touch/snapshots/stax/home.png old mode 100644 new mode 100755 diff --git a/tests/integration/touch/snapshots/stax/info.png b/tests/integration/touch/snapshots/stax/info.png deleted file mode 100644 index a0eae82e6..000000000 Binary files a/tests/integration/touch/snapshots/stax/info.png and /dev/null differ diff --git a/tests/integration/touch/snapshots/stax/info_stax.png b/tests/integration/touch/snapshots/stax/info_stax.png new file mode 100644 index 000000000..aa09433a3 Binary files /dev/null and b/tests/integration/touch/snapshots/stax/info_stax.png differ diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_too_deep/review_request_sign_operation.png b/tests/integration/touch/snapshots/stax/review_screen.png similarity index 100% rename from tests/integration/touch/snapshots/stax/test_blindsign_too_deep/review_request_sign_operation.png rename to tests/integration/touch/snapshots/stax/review_screen.png diff --git a/tests/integration/touch/snapshots/stax/settings_expert_mode_off_blindsigning_off.png b/tests/integration/touch/snapshots/stax/settings_expert_mode_off_blindsigning_off.png new file mode 100644 index 000000000..6c50c8782 Binary files /dev/null and b/tests/integration/touch/snapshots/stax/settings_expert_mode_off_blindsigning_off.png differ diff --git a/tests/integration/touch/snapshots/stax/settings_expert_mode_off_blindsigning_on.png b/tests/integration/touch/snapshots/stax/settings_expert_mode_off_blindsigning_on.png new file mode 100644 index 000000000..c392b5779 Binary files /dev/null and b/tests/integration/touch/snapshots/stax/settings_expert_mode_off_blindsigning_on.png differ diff --git a/tests/integration/touch/snapshots/stax/settings_expert_mode_on_blindsigning_off.png b/tests/integration/touch/snapshots/stax/settings_expert_mode_on_blindsigning_off.png new file mode 100644 index 000000000..dbf98ba4f Binary files /dev/null and b/tests/integration/touch/snapshots/stax/settings_expert_mode_on_blindsigning_off.png differ diff --git a/tests/integration/touch/snapshots/stax/settings_expert_mode_on_blindsigning_on.png b/tests/integration/touch/snapshots/stax/settings_expert_mode_on_blindsigning_on.png new file mode 100644 index 000000000..8b689d606 Binary files /dev/null and b/tests/integration/touch/snapshots/stax/settings_expert_mode_on_blindsigning_on.png differ diff --git a/tests/integration/touch/snapshots/stax/test_basic/settings.png b/tests/integration/touch/snapshots/stax/test_basic/settings.png deleted file mode 100644 index 36193265b..000000000 Binary files a/tests/integration/touch/snapshots/stax/test_basic/settings.png and /dev/null differ diff --git a/tests/integration/touch/snapshots/stax/test_basic/settings_expert_on.png b/tests/integration/touch/snapshots/stax/test_basic/settings_expert_on.png deleted file mode 100644 index b30abe072..000000000 Binary files a/tests/integration/touch/snapshots/stax/test_basic/settings_expert_on.png and /dev/null differ diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/blindsign_warning_ledger_1.png b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/blindsign_warning_ledger_1.png new file mode 100644 index 000000000..9696ae123 Binary files /dev/null and b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/blindsign_warning_ledger_1.png differ diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/expert_mode_splash.png b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/expert_mode_splash.png new file mode 100644 index 000000000..5bc079b4f Binary files /dev/null and b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/expert_mode_splash.png differ diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/operation_sign.png b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/operation_sign.png new file mode 100644 index 000000000..c1e5457de Binary files /dev/null and b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/operation_sign.png differ diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/operation_sign_summary.png b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/operation_sign_summary.png new file mode 100644 index 000000000..3df2d847e Binary files /dev/null and b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/operation_sign_summary.png differ diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_too_deep_rejections/review_request_sign_operation.png b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/review_transaction.png similarity index 100% rename from tests/integration/touch/snapshots/stax/test_blindsign_too_deep_rejections/review_request_sign_operation.png rename to tests/integration/touch/snapshots/stax/test_blindsign_different_modes/review_transaction.png diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/signing_successful.png b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/signing_successful.png new file mode 100644 index 000000000..392165d4f Binary files /dev/null and b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/signing_successful.png differ diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/skip_review.png b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/skip_review.png new file mode 100644 index 000000000..04dc3a1db Binary files /dev/null and b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/skip_review.png differ diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/summary_review_transaction.png b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/summary_review_transaction.png new file mode 100644 index 000000000..957ca54f3 Binary files /dev/null and b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/summary_review_transaction.png differ diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_blind_review_1.png b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_blind_review_1.png new file mode 100644 index 000000000..f30e529bb Binary files /dev/null and b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_blind_review_1.png differ diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_blind_review_2.png b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_blind_review_2.png new file mode 100644 index 000000000..7769982cf Binary files /dev/null and b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_blind_review_2.png differ diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_blindsign_on_screen_1.png b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_blindsign_on_screen_1.png new file mode 100644 index 000000000..f5e29533a Binary files /dev/null and b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_blindsign_on_screen_1.png differ diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_1_1.png b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_1_1.png new file mode 100644 index 000000000..e56749926 Binary files /dev/null and b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_1_1.png differ diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_1_2.png b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_1_2.png new file mode 100644 index 000000000..2c5021a1d Binary files /dev/null and b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_1_2.png differ diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_1_3.png b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_1_3.png new file mode 100644 index 000000000..5ec3823ba Binary files /dev/null and b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_1_3.png differ diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_2_1.png b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_2_1.png new file mode 100644 index 000000000..83a308e72 Binary files /dev/null and b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_2_1.png differ diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_3_1.png b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_3_1.png new file mode 100644 index 000000000..d0656738c Binary files /dev/null and b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_3_1.png differ diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_3_2.png b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_3_2.png new file mode 100644 index 000000000..f449a4a93 Binary files /dev/null and b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_3_2.png differ diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_3_3.png b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_3_3.png new file mode 100644 index 000000000..7a89ff25a Binary files /dev/null and b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_3_3.png differ diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_3_4.png b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_3_4.png new file mode 100644 index 000000000..a2f54dab3 Binary files /dev/null and b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_3_4.png differ diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_3_5.png b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_3_5.png new file mode 100644 index 000000000..a7cb0664e Binary files /dev/null and b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_3_5.png differ diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_3_6.png b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_3_6.png new file mode 100644 index 000000000..8777eea1b Binary files /dev/null and b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_3_6.png differ diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_4_1.png b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_4_1.png new file mode 100644 index 000000000..cf34bd7e0 Binary files /dev/null and b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_4_1.png differ diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_4_2.png b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_4_2.png new file mode 100644 index 000000000..dfe606e4b Binary files /dev/null and b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_4_2.png differ diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_skip_1_1.png b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_skip_1_1.png new file mode 100644 index 000000000..f5e29533a Binary files /dev/null and b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_skip_1_1.png differ diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_skip_1_2.png b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_skip_1_2.png new file mode 100644 index 000000000..f41bb723a Binary files /dev/null and b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_skip_1_2.png differ diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_skip_1_3.png b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_skip_1_3.png new file mode 100644 index 000000000..2d0f56041 Binary files /dev/null and b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_skip_1_3.png differ diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_skip_1_4.png b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_skip_1_4.png new file mode 100644 index 000000000..f41ae61a7 Binary files /dev/null and b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_skip_1_4.png differ diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_skip_2_1.png b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_skip_2_1.png new file mode 100644 index 000000000..336ab26bb Binary files /dev/null and b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_skip_2_1.png differ diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_skip_3_1.png b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_skip_3_1.png new file mode 100644 index 000000000..d7b525bcf Binary files /dev/null and b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_skip_3_1.png differ diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_skip_3_2.png b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_skip_3_2.png new file mode 100644 index 000000000..aecc8103b Binary files /dev/null and b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_skip_3_2.png differ diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_skip_3_3.png b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_skip_3_3.png new file mode 100644 index 000000000..2963845b4 Binary files /dev/null and b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_skip_3_3.png differ diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_skip_3_4.png b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_skip_3_4.png new file mode 100644 index 000000000..7a5a8891a Binary files /dev/null and b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_skip_3_4.png differ diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_skip_3_5.png b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_skip_3_5.png new file mode 100644 index 000000000..75207294d Binary files /dev/null and b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_skip_3_5.png differ diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_skip_3_6.png b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_skip_3_6.png new file mode 100644 index 000000000..0358dd5ee Binary files /dev/null and b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_skip_3_6.png differ diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_skip_4_1.png b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_skip_4_1.png new file mode 100644 index 000000000..0a36981c0 Binary files /dev/null and b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_skip_4_1.png differ diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_skip_4_2.png b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_skip_4_2.png new file mode 100644 index 000000000..03f3b22b6 Binary files /dev/null and b/tests/integration/touch/snapshots/stax/test_blindsign_different_modes/tbdm_screen_skip_4_2.png differ diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_too_deep/blindsign_review_transaction.png b/tests/integration/touch/snapshots/stax/test_blindsign_too_deep/blindsign_review_transaction.png new file mode 100644 index 000000000..d8b1eabdf Binary files /dev/null and b/tests/integration/touch/snapshots/stax/test_blindsign_too_deep/blindsign_review_transaction.png differ diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_too_deep/blindsign_warning_ledger_1.png b/tests/integration/touch/snapshots/stax/test_blindsign_too_deep/blindsign_warning_ledger_1.png new file mode 100644 index 000000000..9696ae123 Binary files /dev/null and b/tests/integration/touch/snapshots/stax/test_blindsign_too_deep/blindsign_warning_ledger_1.png differ diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_too_deep/operation_sign.png b/tests/integration/touch/snapshots/stax/test_blindsign_too_deep/operation_sign_blindsign.png similarity index 100% rename from tests/integration/touch/snapshots/stax/test_blindsign_too_deep/operation_sign.png rename to tests/integration/touch/snapshots/stax/test_blindsign_too_deep/operation_sign_blindsign.png diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_too_deep/signing_successful.png b/tests/integration/touch/snapshots/stax/test_blindsign_too_deep/signing_successful.png index a24543af4..392165d4f 100644 Binary files a/tests/integration/touch/snapshots/stax/test_blindsign_too_deep/signing_successful.png and b/tests/integration/touch/snapshots/stax/test_blindsign_too_deep/signing_successful.png differ diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_too_deep/tbtd_review_blindsign_0.png b/tests/integration/touch/snapshots/stax/test_blindsign_too_deep/tbtd_review_blindsign_0.png new file mode 100644 index 000000000..47c2e3d90 Binary files /dev/null and b/tests/integration/touch/snapshots/stax/test_blindsign_too_deep/tbtd_review_blindsign_0.png differ diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_too_deep/tbtd_review_blindsign_on_0.png b/tests/integration/touch/snapshots/stax/test_blindsign_too_deep/tbtd_review_blindsign_on_0.png new file mode 100644 index 000000000..06998759e Binary files /dev/null and b/tests/integration/touch/snapshots/stax/test_blindsign_too_deep/tbtd_review_blindsign_on_0.png differ diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_too_deep/too_deep_blindsign_warning.png b/tests/integration/touch/snapshots/stax/test_blindsign_too_deep/too_deep_blindsign_warning.png new file mode 100644 index 000000000..744644fc0 Binary files /dev/null and b/tests/integration/touch/snapshots/stax/test_blindsign_too_deep/too_deep_blindsign_warning.png differ diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_too_deep/unsafe_operation_warning_1.png b/tests/integration/touch/snapshots/stax/test_blindsign_too_deep/unsafe_operation_warning_1.png index be9c6cb6d..744644fc0 100644 Binary files a/tests/integration/touch/snapshots/stax/test_blindsign_too_deep/unsafe_operation_warning_1.png and b/tests/integration/touch/snapshots/stax/test_blindsign_too_deep/unsafe_operation_warning_1.png differ diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_too_deep/unsafe_operation_warning_2.png b/tests/integration/touch/snapshots/stax/test_blindsign_too_deep/unsafe_operation_warning_2.png index aa8ff5db4..9696ae123 100644 Binary files a/tests/integration/touch/snapshots/stax/test_blindsign_too_deep/unsafe_operation_warning_2.png and b/tests/integration/touch/snapshots/stax/test_blindsign_too_deep/unsafe_operation_warning_2.png differ diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_too_deep_rejections/operation_sign.png b/tests/integration/touch/snapshots/stax/test_blindsign_too_deep_rejections/operation_sign_blindsign.png similarity index 100% rename from tests/integration/touch/snapshots/stax/test_blindsign_too_deep_rejections/operation_sign.png rename to tests/integration/touch/snapshots/stax/test_blindsign_too_deep_rejections/operation_sign_blindsign.png diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_too_deep_rejections/unsafe_operation_warning_1.png b/tests/integration/touch/snapshots/stax/test_blindsign_too_deep_rejections/unsafe_operation_warning_1.png index be9c6cb6d..744644fc0 100644 Binary files a/tests/integration/touch/snapshots/stax/test_blindsign_too_deep_rejections/unsafe_operation_warning_1.png and b/tests/integration/touch/snapshots/stax/test_blindsign_too_deep_rejections/unsafe_operation_warning_1.png differ diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_too_deep_rejections/unsafe_operation_warning_2.png b/tests/integration/touch/snapshots/stax/test_blindsign_too_deep_rejections/unsafe_operation_warning_2.png index aa8ff5db4..9696ae123 100644 Binary files a/tests/integration/touch/snapshots/stax/test_blindsign_too_deep_rejections/unsafe_operation_warning_2.png and b/tests/integration/touch/snapshots/stax/test_blindsign_too_deep_rejections/unsafe_operation_warning_2.png differ diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_too_large/review_request_sign_operation.png b/tests/integration/touch/snapshots/stax/test_blindsign_too_large/review_request_sign_operation.png deleted file mode 100644 index 68c268b95..000000000 Binary files a/tests/integration/touch/snapshots/stax/test_blindsign_too_large/review_request_sign_operation.png and /dev/null differ diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_too_large/signing_successful.png b/tests/integration/touch/snapshots/stax/test_blindsign_too_large/signing_successful.png index a24543af4..392165d4f 100644 Binary files a/tests/integration/touch/snapshots/stax/test_blindsign_too_large/signing_successful.png and b/tests/integration/touch/snapshots/stax/test_blindsign_too_large/signing_successful.png differ diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_too_large/unsafe_operation_warning_1.png b/tests/integration/touch/snapshots/stax/test_blindsign_too_large/unsafe_operation_warning_1.png index be9c6cb6d..8f663d539 100644 Binary files a/tests/integration/touch/snapshots/stax/test_blindsign_too_large/unsafe_operation_warning_1.png and b/tests/integration/touch/snapshots/stax/test_blindsign_too_large/unsafe_operation_warning_1.png differ diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_too_large/unsafe_operation_warning_2.png b/tests/integration/touch/snapshots/stax/test_blindsign_too_large/unsafe_operation_warning_2.png index 96ae0cf5c..9696ae123 100644 Binary files a/tests/integration/touch/snapshots/stax/test_blindsign_too_large/unsafe_operation_warning_2.png and b/tests/integration/touch/snapshots/stax/test_blindsign_too_large/unsafe_operation_warning_2.png differ diff --git a/tests/integration/touch/snapshots/stax/test_blindsign_valid/review_request_sign_operation.png b/tests/integration/touch/snapshots/stax/test_blindsign_valid/review_request_sign_operation.png deleted file mode 100644 index 68c268b95..000000000 Binary files a/tests/integration/touch/snapshots/stax/test_blindsign_valid/review_request_sign_operation.png and /dev/null differ diff --git a/tests/integration/touch/snapshots/stax/test_expert_mode_rejections/review_request_sign_operation.png b/tests/integration/touch/snapshots/stax/test_expert_mode_rejections/review_request_sign_operation.png deleted file mode 100644 index 68c268b95..000000000 Binary files a/tests/integration/touch/snapshots/stax/test_expert_mode_rejections/review_request_sign_operation.png and /dev/null differ diff --git a/tests/integration/touch/snapshots/stax/test_parsing_errors/invalid_tag.png b/tests/integration/touch/snapshots/stax/test_parsing_errors/invalid_tag.png index 352d3723b..a37f4ee1e 100644 Binary files a/tests/integration/touch/snapshots/stax/test_parsing_errors/invalid_tag.png and b/tests/integration/touch/snapshots/stax/test_parsing_errors/invalid_tag.png differ diff --git a/tests/integration/touch/snapshots/stax/test_parsing_errors/review_request_sign_operation.png b/tests/integration/touch/snapshots/stax/test_parsing_errors/review_request_sign_operation.png deleted file mode 100644 index 68c268b95..000000000 Binary files a/tests/integration/touch/snapshots/stax/test_parsing_errors/review_request_sign_operation.png and /dev/null differ diff --git a/tests/integration/touch/snapshots/stax/test_parsing_errors/too_deep.png b/tests/integration/touch/snapshots/stax/test_parsing_errors/too_deep.png index aa8ff5db4..744644fc0 100644 Binary files a/tests/integration/touch/snapshots/stax/test_parsing_errors/too_deep.png and b/tests/integration/touch/snapshots/stax/test_parsing_errors/too_deep.png differ diff --git a/tests/integration/touch/snapshots/stax/test_parsing_errors/too_large.png b/tests/integration/touch/snapshots/stax/test_parsing_errors/too_large.png index 96ae0cf5c..8f663d539 100644 Binary files a/tests/integration/touch/snapshots/stax/test_parsing_errors/too_large.png and b/tests/integration/touch/snapshots/stax/test_parsing_errors/too_large.png differ diff --git a/tests/integration/touch/snapshots/stax/test_parsing_errors/unsafe_operation_warning_1.png b/tests/integration/touch/snapshots/stax/test_parsing_errors/unsafe_operation_warning_1.png deleted file mode 100644 index be9c6cb6d..000000000 Binary files a/tests/integration/touch/snapshots/stax/test_parsing_errors/unsafe_operation_warning_1.png and /dev/null differ diff --git a/tests/integration/touch/snapshots/stax/test_provide_pk/screen_show_address_tz1_zebra.png b/tests/integration/touch/snapshots/stax/test_provide_pk/screen_show_address_tz1_zebra.png index abaf55b6c..b90c50c50 100644 Binary files a/tests/integration/touch/snapshots/stax/test_provide_pk/screen_show_address_tz1_zebra.png and b/tests/integration/touch/snapshots/stax/test_provide_pk/screen_show_address_tz1_zebra.png differ diff --git a/tests/integration/touch/snapshots/stax/test_provide_pk_reject/screen_show_address_tz1_zebra.png b/tests/integration/touch/snapshots/stax/test_provide_pk_reject/screen_show_address_tz1_zebra.png index abaf55b6c..b90c50c50 100644 Binary files a/tests/integration/touch/snapshots/stax/test_provide_pk_reject/screen_show_address_tz1_zebra.png and b/tests/integration/touch/snapshots/stax/test_provide_pk_reject/screen_show_address_tz1_zebra.png differ diff --git a/tests/integration/touch/snapshots/stax/test_reject_review_operation/review_request_sign_operation.png b/tests/integration/touch/snapshots/stax/test_reject_review_operation/review_request_sign_operation.png deleted file mode 100644 index 68c268b95..000000000 Binary files a/tests/integration/touch/snapshots/stax/test_reject_review_operation/review_request_sign_operation.png and /dev/null differ diff --git a/tests/integration/touch/snapshots/stax/test_reject_transfer/review_request_sign_operation.png b/tests/integration/touch/snapshots/stax/test_reject_transfer/review_request_sign_operation.png deleted file mode 100644 index 68c268b95..000000000 Binary files a/tests/integration/touch/snapshots/stax/test_reject_transfer/review_request_sign_operation.png and /dev/null differ diff --git a/tests/integration/touch/snapshots/stax/test_sign_complex_operation/enable_expert_mode.png b/tests/integration/touch/snapshots/stax/test_sign_complex_operation/enable_expert_mode.png new file mode 100644 index 000000000..2721dadfa Binary files /dev/null and b/tests/integration/touch/snapshots/stax/test_sign_complex_operation/enable_expert_mode.png differ diff --git a/tests/integration/touch/snapshots/stax/test_sign_complex_operation/enabled_expert_mode.png b/tests/integration/touch/snapshots/stax/test_sign_complex_operation/enabled_expert_mode.png new file mode 100644 index 000000000..b3b023d25 Binary files /dev/null and b/tests/integration/touch/snapshots/stax/test_sign_complex_operation/enabled_expert_mode.png differ diff --git a/tests/integration/touch/snapshots/stax/test_sign_complex_operation/expert_mode_splash.png b/tests/integration/touch/snapshots/stax/test_sign_complex_operation/expert_mode_splash.png new file mode 100644 index 000000000..5bc079b4f Binary files /dev/null and b/tests/integration/touch/snapshots/stax/test_sign_complex_operation/expert_mode_splash.png differ diff --git a/tests/integration/touch/snapshots/stax/test_sign_complex_operation/operation_sign.png b/tests/integration/touch/snapshots/stax/test_sign_complex_operation/operation_sign.png new file mode 100644 index 000000000..c1e5457de Binary files /dev/null and b/tests/integration/touch/snapshots/stax/test_sign_complex_operation/operation_sign.png differ diff --git a/tests/integration/touch/snapshots/stax/test_sign_complex_operation/review_01.png b/tests/integration/touch/snapshots/stax/test_sign_complex_operation/review_01.png new file mode 100644 index 000000000..a0c0a56ae Binary files /dev/null and b/tests/integration/touch/snapshots/stax/test_sign_complex_operation/review_01.png differ diff --git a/tests/integration/touch/snapshots/stax/test_sign_complex_operation/review_02.png b/tests/integration/touch/snapshots/stax/test_sign_complex_operation/review_02.png new file mode 100644 index 000000000..aeb521d30 Binary files /dev/null and b/tests/integration/touch/snapshots/stax/test_sign_complex_operation/review_02.png differ diff --git a/tests/integration/touch/snapshots/stax/test_sign_complex_operation/review_03.png b/tests/integration/touch/snapshots/stax/test_sign_complex_operation/review_03.png new file mode 100644 index 000000000..5d5410594 Binary files /dev/null and b/tests/integration/touch/snapshots/stax/test_sign_complex_operation/review_03.png differ diff --git a/tests/integration/touch/snapshots/stax/test_sign_complex_operation/review_04.png b/tests/integration/touch/snapshots/stax/test_sign_complex_operation/review_04.png new file mode 100644 index 000000000..b7fdfd3dd Binary files /dev/null and b/tests/integration/touch/snapshots/stax/test_sign_complex_operation/review_04.png differ diff --git a/tests/integration/touch/snapshots/stax/test_sign_complex_operation/review_05.png b/tests/integration/touch/snapshots/stax/test_sign_complex_operation/review_05.png new file mode 100644 index 000000000..18da3c7bc Binary files /dev/null and b/tests/integration/touch/snapshots/stax/test_sign_complex_operation/review_05.png differ diff --git a/tests/integration/touch/snapshots/stax/test_sign_complex_operation/review_06.png b/tests/integration/touch/snapshots/stax/test_sign_complex_operation/review_06.png new file mode 100644 index 000000000..065c951bd Binary files /dev/null and b/tests/integration/touch/snapshots/stax/test_sign_complex_operation/review_06.png differ diff --git a/tests/integration/touch/snapshots/stax/test_sign_complex_operation/signing_successful.png b/tests/integration/touch/snapshots/stax/test_sign_complex_operation/signing_successful.png new file mode 100644 index 000000000..392165d4f Binary files /dev/null and b/tests/integration/touch/snapshots/stax/test_sign_complex_operation/signing_successful.png differ diff --git a/tests/integration/touch/snapshots/stax/test_sign_execute_outbox_messages/operation_proof_396...834_0.png b/tests/integration/touch/snapshots/stax/test_sign_execute_outbox_messages/operation_proof_396...834_0.png index f01cbf85a..a2d686b4e 100644 Binary files a/tests/integration/touch/snapshots/stax/test_sign_execute_outbox_messages/operation_proof_396...834_0.png and b/tests/integration/touch/snapshots/stax/test_sign_execute_outbox_messages/operation_proof_396...834_0.png differ diff --git a/tests/integration/touch/snapshots/stax/test_sign_execute_outbox_messages/review_request_sign_operation.png b/tests/integration/touch/snapshots/stax/test_sign_execute_outbox_messages/review_request_sign_operation.png deleted file mode 100644 index 68c268b95..000000000 Binary files a/tests/integration/touch/snapshots/stax/test_sign_execute_outbox_messages/review_request_sign_operation.png and /dev/null differ diff --git a/tests/integration/touch/snapshots/stax/test_sign_transfer/review_request_sign_operation.png b/tests/integration/touch/snapshots/stax/test_sign_transfer/review_request_sign_operation.png deleted file mode 100644 index 68c268b95..000000000 Binary files a/tests/integration/touch/snapshots/stax/test_sign_transfer/review_request_sign_operation.png and /dev/null differ diff --git a/tests/integration/touch/snapshots/stax/test_sign_transfer_without_hash/review_request_sign_operation.png b/tests/integration/touch/snapshots/stax/test_sign_transfer_without_hash/review_request_sign_operation.png deleted file mode 100644 index 68c268b95..000000000 Binary files a/tests/integration/touch/snapshots/stax/test_sign_transfer_without_hash/review_request_sign_operation.png and /dev/null differ diff --git a/tests/integration/touch/test_basic.py b/tests/integration/touch/test_basic.py index ea4c2a373..2efd8fbc0 100755 --- a/tests/integration/touch/test_basic.py +++ b/tests/integration/touch/test_basic.py @@ -18,13 +18,19 @@ if __name__ == "__main__": app = tezos_app(__file__) - app.remove_info_page() app.assert_home() + app.remove_settings_and_info() app.welcome.settings() app.assert_settings() + app.settings.toggle_blindsigning() + app.assert_settings(blindsigning=True) + app.settings.toggle_expert_mode() + app.assert_settings(blindsigning=True, expert_mode=True) + + app.settings.toggle_blindsigning() app.assert_settings(expert_mode=True) app.settings.toggle_expert_mode() diff --git a/tests/integration/touch/test_blindsign_different_modes.py b/tests/integration/touch/test_blindsign_different_modes.py new file mode 100755 index 000000000..d12d40646 --- /dev/null +++ b/tests/integration/touch/test_blindsign_different_modes.py @@ -0,0 +1,127 @@ +#!/usr/bin/env python3 +# Copyright 2023 Trilitech +# Copyright 2024 Functori + +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at + +# http://www.apache.org/licenses/LICENSE-2.0 + +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from utils import ( + tezos_app, + TezosAppScreen, + send_payload +) + +from ragger.firmware import Firmware +#Response: c9fc57555a59876454427adadeb62cf365bf936e346def12f0729e6a1c9d0eed81e1acced76fddb6ec90619a12d8904dd9ba07f64a9f2c4e05a692224ec7bdb1d357b90a03a0d8f441b048d0cff72e997aac00d657725f67afb68c76eacb79029000 + +def navigate_screens(app: TezosAppScreen, group: int, screen_count: int, suffix: str): + for i in range(screen_count): + app.assert_screen("tbdm_screen_" + suffix + str(group) + "_" + str(i+1)) + app.review.next() + + +def navigate_common(app: TezosAppScreen, skip: bool =False, group_counts: list = []): + suffix = "" + if skip: + suffix = "skip_" + app.send_initialize_msg( "800f000011048000002c800006c18000000080000000") + send_payload(app, "800f01ffeb0300000000000000000000000000000000000000000000000000000000000000006b00ffdd6102321bc251e4a5190ad5b12b251069d9b4c0843d0b0104020320182716513907b6bab33f905396d031931c07e01bddd780780c1a56b9c086da6c00ffdd6102321bc251e4a5190ad5b12b251069d9b480897a0c0107c08db701000278eb8b6ab9a768579cd5146b480789650c83f28effff0d7570646174655f636f6e6669670000000607070005030a6e00ffdd6102321bc251e4a5190ad5b12b251069d9b4c08db7010d0105ff01ee572f02e5be5d097ba17369789582882e8abb87c900ffdd6102321bc2") + app.assert_screen("review_transaction") + app.review.next() + navigate_screens(app, group= 1, screen_count = group_counts[1 - 1 ], suffix=suffix) + app.assert_screen("expert_mode_splash") + app.review.next() + navigate_screens(app, group= 2, screen_count= group_counts[2 - 1 ], suffix=suffix) + app.expect_apdu_return("9000") + app.send_apdu("800f01ffeb51e4a5190ad5b12b251069d9b48092f4010e0106000000fa000000086d65737361676530000000086d65737361676531000000086d65737361676532000000086d65737361676533000000086d65737361676534000000086d65737361676535000000086d65737361676536000000086d65737361676537000000086d65737361676538000000086d65737361676539000000096d6573736167653130000000096d6573736167653131000000096d6573736167653132000000096d6573736167653133000000096d6573736167653134000000096d6573736167653135000000096d6573736167653136") + navigate_screens(app, group= 3, screen_count= group_counts[3 - 1 ], suffix=suffix) + app.expect_apdu_return("9000") + app.send_apdu("800f81ff48000000096d6573736167653137000000096d6573736167653138000000096d65737361676531397000ffdd6102321bc251e4a5190ad5b12b251069d9b4c0843d0f0103ff80ade204") + navigate_screens(app, group= 4, screen_count= group_counts[4 - 1 ], suffix=suffix) + app.review.next() + expected_apdu = "a2ef5aec1ad8cc9b35dee48e8a47e418108dec7652159f3a4314c29d91f172f4645db9554b5a8a565307d9a9e65260957409efef54835573b8fc43d6162f99b8e17a557f7f82c46a53ca7c2be7aa540239d394cd5e9dbf14312c8e1e331a2b099000" + app.review_confirm_signing(expected_apdu) + + + +def blindsign_review_sign(app: TezosAppScreen): + app.assert_screen("blindsign_warning_ledger_1") + app.review.back_to_safety.reject() + app.assert_screen("summary_review_transaction") + app.review.next() + app.assert_screen("tbdm_blind_review_1") + app.review.next() + app.assert_screen("tbdm_blind_review_2") + expected_apdu = "a2ef5aec1ad8cc9b35dee48e8a47e418108dec7652159f3a4314c29d91f172f4645db9554b5a8a565307d9a9e65260957409efef54835573b8fc43d6162f99b8e17a557f7f82c46a53ca7c2be7aa540239d394cd5e9dbf14312c8e1e331a2b099000" + app.review_confirm_signing(expected_apdu, True) + +if __name__ == "__main__": + app = tezos_app(__file__) + + app.assert_home() + app.welcome.settings() + app.assert_settings() + app.settings.toggle_expert_mode() + app.assert_settings(expert_mode=True) + app.settings.exit() + +# Blindsign status OFF + app.assert_home() + app.welcome.settings() + app.assert_settings(blindsigning=False, expert_mode=True) + app.settings.exit() + + if(app.firmware == Firmware.STAX): + navigate_common(app, skip=False, group_counts=[3, 1, 6, 2]) + else: + navigate_common(app, skip=False, group_counts=[4, 2, 5, 3]) + +# Blindsign status ON + app.assert_home() + app.welcome.settings() + app.assert_settings(expert_mode=True) + app.settings.toggle_blindsigning() + app.assert_settings(blindsigning=True, expert_mode=True) + app.settings.exit() + + app.send_initialize_msg( "800f000011048000002c800006c18000000080000000") + send_payload(app, "800f01ffeb0300000000000000000000000000000000000000000000000000000000000000006b00ffdd6102321bc251e4a5190ad5b12b251069d9b4c0843d0b0104020320182716513907b6bab33f905396d031931c07e01bddd780780c1a56b9c086da6c00ffdd6102321bc251e4a5190ad5b12b251069d9b480897a0c0107c08db701000278eb8b6ab9a768579cd5146b480789650c83f28effff0d7570646174655f636f6e6669670000000607070005030a6e00ffdd6102321bc251e4a5190ad5b12b251069d9b4c08db7010d0105ff01ee572f02e5be5d097ba17369789582882e8abb87c900ffdd6102321bc2") + app.review.next() + app.assert_screen("tbdm_blindsign_on_screen_1") + app.review.skip() + app.assert_screen("skip_review") + app.review.enable_skip.confirm() + app.expect_apdu_return("9000") + app.send_apdu("800f01ffeb51e4a5190ad5b12b251069d9b48092f4010e0106000000fa000000086d65737361676530000000086d65737361676531000000086d65737361676532000000086d65737361676533000000086d65737361676534000000086d65737361676535000000086d65737361676536000000086d65737361676537000000086d65737361676538000000086d65737361676539000000096d6573736167653130000000096d6573736167653131000000096d6573736167653132000000096d6573736167653133000000096d6573736167653134000000096d6573736167653135000000096d6573736167653136") + app.expect_apdu_return("9000") + app.send_apdu("800f81ff48000000096d6573736167653137000000096d6573736167653138000000096d65737361676531397000ffdd6102321bc251e4a5190ad5b12b251069d9b4c0843d0f0103ff80ade204") + blindsign_review_sign(app) + +# Blindsign status ON but continue clear signing + app.assert_home() + app.welcome.settings() + app.assert_settings(blindsigning=True, expert_mode=True) + app.settings.exit() + + if(app.firmware == Firmware.STAX): + navigate_common(app, skip=True, group_counts=[4, 1, 6, 2]) + else: + navigate_common(app, skip=True, group_counts=[7, 3, 6, 3]) + + app.assert_home() + app.welcome.settings() + app.assert_settings(blindsigning=True, expert_mode=True) + app.settings.toggle_blindsigning() + app.settings.toggle_expert_mode() + app.assert_settings() + app.settings.exit() + app.assert_home() diff --git a/tests/integration/touch/test_blindsign_too_deep.py b/tests/integration/touch/test_blindsign_too_deep.py index ed3675512..e4a004847 100755 --- a/tests/integration/touch/test_blindsign_too_deep.py +++ b/tests/integration/touch/test_blindsign_too_deep.py @@ -15,8 +15,7 @@ from utils import ( tezos_app, - send_initialize_msg, - send_payload + BlindsigningType, ) if __name__ == "__main__": @@ -24,24 +23,47 @@ app.assert_home() - send_initialize_msg(app, "800f000011048000002c800006c18000000080000000") - send_payload(app, "800f0100eb0502000000f702000000f202000000ed02000000e802000000e302000000de02000000d902000000d402000000cf02000000ca02000000c502000000c002000000bb02000000b602000000b102000000ac02000000a702000000a2020000009d02000000980200000093020000008e02000000890200000084020000007f020000007a02000000750200000070020000006b02000000660200000061020000005c02000000570200000052020000004d02000000480200000043020000003e02000000390200000034020000002f020000002a02000000250200000020020000001b020000001602000000") + app.send_initialize_msg( "800f000011048000002c800006c18000000080000000") + app.send_apdu("800f0100eb0502000000f702000000f202000000ed02000000e802000000e302000000de02000000d902000000d402000000cf02000000ca02000000c502000000c002000000bb02000000b602000000b102000000ac02000000a702000000a2020000009d02000000980200000093020000008e02000000890200000084020000007f020000007a02000000750200000070020000006b02000000660200000061020000005c02000000570200000052020000004d02000000480200000043020000003e02000000390200000034020000002f020000002a02000000250200000020020000001b020000001602000000") app.review.next() app.assert_screen("tbtd_review_0") app.review.next() - app.process_blindsign_warnings("loading_operation") - app.send_apdu("800f82001211020000000c02000000070200000002002a") + app.process_blindsign_warnings("800f82001211020000000c02000000070200000002002a") app.assert_screen("tbtd_start_review_blindsign") app.review.next() app.assert_screen("tbtd_review_1") + expected_apdu = "93070b00990e4cf29c31f6497307bea0ad86a9d0dc08dba8b607e8dc0e23652f8309e41ed87ac1d33006806b688cfcff7632c4fbe499ff3ea4983ae4f06dea7790ec25db045689bca2c63967b5c563aabff86c4ef163bff92af3bb2ca9392d099000" + app.review_confirm_signing(expected_apdu, blindsigning_type=BlindsigningType.BLINDSIGN) + + app.assert_home() + app.welcome.settings() + app.settings.toggle_blindsigning() + app.settings.exit() + + app.send_initialize_msg( "800f000011048000002c800006c18000000080000000") + app.send_apdu("800f0100eb0502000000f702000000f202000000ed02000000e802000000e302000000de02000000d902000000d402000000cf02000000ca02000000c502000000c002000000bb02000000b602000000b102000000ac02000000a702000000a2020000009d02000000980200000093020000008e02000000890200000084020000007f020000007a02000000750200000070020000006b02000000660200000061020000005c02000000570200000052020000004d02000000480200000043020000003e02000000390200000034020000002f020000002a02000000250200000020020000001b020000001602000000") app.review.next() - app.assert_screen("operation_sign") - expected_apdu = "93070b00990e4cf29c31f6497307bea0ad86a9d0dc08dba8b607e8dc0e23652f8309e41ed87ac1d33006806b688cfcff7632c4fbe499ff3ea4983ae4f06dea7790ec25db045689bca2c63967b5c563aabff86c4ef163bff92af3bb2ca9392d099000" - app.review_confirm_signing(expected_apdu) + app.assert_screen("tbtd_review_blindsign_on_0") + app.review.skip() # skip button + app.review.enable_skip.confirm() + app.assert_screen("too_deep_blindsign_warning") + with app.fading_screen("loading_operation"): + app.review.enable_blindsign.reject() + app.expect_apdu_return("9000") + app.send_apdu("800f82001211020000000c02000000070200000002002a") + app.assert_screen("blindsign_warning_ledger_1") + app.review.enable_blindsign.reject() + app.assert_screen("blindsign_review_transaction") + app.review.next() + app.assert_screen("tbtd_review_blindsign_0") + app.review.next() + app.review_confirm_signing(expected_apdu, blindsigning_type=BlindsigningType.BLINDSIGN) app.assert_home() + + app.quit() diff --git a/tests/integration/touch/test_blindsign_too_deep_rejections.py b/tests/integration/touch/test_blindsign_too_deep_rejections.py index 799a3506c..6d2b5f46a 100755 --- a/tests/integration/touch/test_blindsign_too_deep_rejections.py +++ b/tests/integration/touch/test_blindsign_too_deep_rejections.py @@ -15,10 +15,10 @@ from utils import ( tezos_app, - send_initialize_msg, + send_payload, verify_err_reject_response, - reject_flow + reject_flow, assert_home_with_code ) if __name__ == "__main__": @@ -27,63 +27,66 @@ app.assert_home() # Rejecting at 1st warning msg - send_initialize_msg(app, "800f000011048000002c800006c18000000080000000") + app.send_initialize_msg( "800f000011048000002c800006c18000000080000000") send_payload(app, "800f0100eb0502000000f702000000f202000000ed02000000e802000000e302000000de02000000d902000000d402000000cf02000000ca02000000c502000000c002000000bb02000000b602000000b102000000ac02000000a702000000a2020000009d02000000980200000093020000008e02000000890200000084020000007f020000007a02000000750200000070020000006b02000000660200000061020000005c02000000570200000052020000004d02000000480200000043020000003e02000000390200000034020000002f020000002a02000000250200000020020000001b020000001602000000") app.review.next() app.assert_screen("tbtdr_review_0") app.review.next() app.assert_screen("unsafe_operation_warning_1") - app.review.enable_blindsign.confirm() + app.review.back_to_safety.confirm() reject_flow(app,"9405") # Rejecting at 2nd warning - send_initialize_msg(app, "800f000011048000002c800006c18000000080000000") + app.send_initialize_msg( "800f000011048000002c800006c18000000080000000") send_payload(app, "800f0100eb0502000000f702000000f202000000ed02000000e802000000e302000000de02000000d902000000d402000000cf02000000ca02000000c502000000c002000000bb02000000b602000000b102000000ac02000000a702000000a2020000009d02000000980200000093020000008e02000000890200000084020000007f020000007a02000000750200000070020000006b02000000660200000061020000005c02000000570200000052020000004d02000000480200000043020000003e02000000390200000034020000002f020000002a02000000250200000020020000001b020000001602000000") app.review.next() app.assert_screen("tbtdr_review_0") app.review.next() app.assert_screen("unsafe_operation_warning_1") - app.review.reject() - verify_err_reject_response(app, "unsafe_operation_warning_2") + with app.fading_screen("loading_operation"): + app.review.reject() + app.send_apdu("800f82001211020000000c02000000070200000002002a") + app.assert_screen("unsafe_operation_warning_2") + with app.fading_screen("rejected"): + app.review.back_to_safety.confirm() + assert_home_with_code(app, "9405") + # Rejecting at review blindsign operation - send_initialize_msg(app, "800f000011048000002c800006c18000000080000000") + app.send_initialize_msg( "800f000011048000002c800006c18000000080000000") send_payload(app, "800f0100eb0502000000f702000000f202000000ed02000000e802000000e302000000de02000000d902000000d402000000cf02000000ca02000000c502000000c002000000bb02000000b602000000b102000000ac02000000a702000000a2020000009d02000000980200000093020000008e02000000890200000084020000007f020000007a02000000750200000070020000006b02000000660200000061020000005c02000000570200000052020000004d02000000480200000043020000003e02000000390200000034020000002f020000002a02000000250200000020020000001b020000001602000000") app.review.next() app.assert_screen("tbtdr_review_0") app.review.next() - app.process_blindsign_warnings("loading_operation") - app.send_apdu("800f82001211020000000c02000000070200000002002a") + app.process_blindsign_warnings( "800f82001211020000000c02000000070200000002002a") verify_err_reject_response(app, "tbtdr_start_review_blindsign") # Rejecting at blindsign review screen - send_initialize_msg(app, "800f000011048000002c800006c18000000080000000") + app.send_initialize_msg( "800f000011048000002c800006c18000000080000000") send_payload(app, "800f0100eb0502000000f702000000f202000000ed02000000e802000000e302000000de02000000d902000000d402000000cf02000000ca02000000c502000000c002000000bb02000000b602000000b102000000ac02000000a702000000a2020000009d02000000980200000093020000008e02000000890200000084020000007f020000007a02000000750200000070020000006b02000000660200000061020000005c02000000570200000052020000004d02000000480200000043020000003e02000000390200000034020000002f020000002a02000000250200000020020000001b020000001602000000") app.review.next() app.assert_screen("tbtdr_review_0") app.review.next() - app.process_blindsign_warnings("loading_operation") - app.send_apdu("800f82001211020000000c02000000070200000002002a") + app.process_blindsign_warnings( "800f82001211020000000c02000000070200000002002a") app.assert_screen("tbtdr_start_review_blindsign") app.review.next() verify_err_reject_response(app,"tbtd_review_1") # Rejecting at final sign operation screen - send_initialize_msg(app, "800f000011048000002c800006c18000000080000000") + app.send_initialize_msg( "800f000011048000002c800006c18000000080000000") send_payload(app, "800f0100eb0502000000f702000000f202000000ed02000000e802000000e302000000de02000000d902000000d402000000cf02000000ca02000000c502000000c002000000bb02000000b602000000b102000000ac02000000a702000000a2020000009d02000000980200000093020000008e02000000890200000084020000007f020000007a02000000750200000070020000006b02000000660200000061020000005c02000000570200000052020000004d02000000480200000043020000003e02000000390200000034020000002f020000002a02000000250200000020020000001b020000001602000000") app.review.next() app.assert_screen("tbtdr_review_0") app.review.next() - app.process_blindsign_warnings("loading_operation") - app.send_apdu("800f82001211020000000c02000000070200000002002a") + app.process_blindsign_warnings( "800f82001211020000000c02000000070200000002002a") app.assert_screen("tbtdr_start_review_blindsign") app.review.next() app.assert_screen("tbtd_review_1") app.review.next() - verify_err_reject_response(app,"operation_sign") + verify_err_reject_response(app,"operation_sign_blindsign") app.quit() diff --git a/tests/integration/touch/test_blindsign_too_large.py b/tests/integration/touch/test_blindsign_too_large.py index e976c173f..49f420407 100755 --- a/tests/integration/touch/test_blindsign_too_large.py +++ b/tests/integration/touch/test_blindsign_too_large.py @@ -15,7 +15,7 @@ from utils import ( tezos_app, - send_initialize_msg, + send_payload ) @@ -24,15 +24,14 @@ app.assert_home() - send_initialize_msg(app, "800f000011048000002c800006c18000000080000000") + app.send_initialize_msg( "800f000011048000002c800006c18000000080000000") send_payload(app, "800f810028050092abf8e3d9e5f8cfd9ae8a9fe5f28ea1d5b5abf1af82dae8a4b68df3d1889eb6f988f5e8d31a") app.review.next() - app.process_blindsign_warnings("tbtd_start_review_blindsign") - app.assert_screen("tbtl_review_1") + app.process_blindsign_warnings(loading_operation=False) + app.assert_screen("tbtd_start_review_blindsign") app.review.next() - app.assert_screen("operation_sign") - + app.assert_screen("tbtl_review_1") expected_apdu = "ef565fa445d815cd77518a4d14ce90b7a536627455f0930c9dbfa22a75d478d83e2bcb333ba0d639dd28c1b77c5860e552ab02092a50a57f1424f573278230ab8ba81d8a40956415278a27e3f28cae64d1f1f13bf613e6e9a57035e9e14511029000" app.review_confirm_signing(expected_apdu) diff --git a/tests/integration/touch/test_blindsign_valid.py b/tests/integration/touch/test_blindsign_valid.py index 9b7df00fb..69b88668e 100755 --- a/tests/integration/touch/test_blindsign_valid.py +++ b/tests/integration/touch/test_blindsign_valid.py @@ -19,7 +19,7 @@ from utils import ( tezos_app, - send_initialize_msg, + send_payload, index_screen ) @@ -29,8 +29,8 @@ app.assert_home() - send_initialize_msg(app,"800f000011048000002c800006c18000000080000000") - send_payload(app,"800f81005e0300000000000000000000000000000000000000000000000000000000000000006c016e8874874d31c3fbd636e924d5a036a43ec8faa7d0860308362d80d30e01000000000000000000000000000000000000000000ff02000000020316") + app.send_initialize_msg("800f000011048000002c800006c18000000080000000") + app.send_apdu("800f81005e0300000000000000000000000000000000000000000000000000000000000000006c016e8874874d31c3fbd636e924d5a036a43ec8faa7d0860308362d80d30e01000000000000000000000000000000000000000000ff02000000020316") screen = "tst_review" nb_screen = 2 @@ -45,9 +45,6 @@ app.review.next() app.assert_screen(index_screen(screen, index+1)) - app.review.next() - app.assert_screen("operation_sign") - expected_apdu = "f6d5fa0e79cac216e25104938ac873ca17ee9d7f06763719293b413cf2ed475cf63d045a1cc9f73eee5775c5d496fa9d3aa9ae57fb97217f746a8728639795b7b2220e84ce5759ed111399ea3263d810c230d6a4fffcb6e82797c5ca673a17089000" app.review_confirm_signing(expected_apdu) diff --git a/tests/integration/touch/test_expert_mode_rejections.py b/tests/integration/touch/test_expert_mode_rejections.py index e1608e254..10adeaa67 100755 --- a/tests/integration/touch/test_expert_mode_rejections.py +++ b/tests/integration/touch/test_expert_mode_rejections.py @@ -15,7 +15,7 @@ from utils import ( tezos_app, - send_initialize_msg, + send_payload, verify_reject_response, index_screen @@ -29,7 +29,7 @@ def sign_transfer_initialize(app): app.assert_home() - send_initialize_msg(app,"800f000011048000002c800006c18000000080000000") + app.send_initialize_msg("800f000011048000002c800006c18000000080000000") send_payload(app,"800f81005e0300000000000000000000000000000000000000000000000000000000000000006c016e8874874d31c3fbd636e924d5a036a43ec8faa7d0860308362d80d30e01000000000000000000000000000000000000000000ff02000000020316") screen = "tst_review" diff --git a/tests/integration/touch/test_parsing_errors.py b/tests/integration/touch/test_parsing_errors.py index ad50ace3c..9ee14d848 100755 --- a/tests/integration/touch/test_parsing_errors.py +++ b/tests/integration/touch/test_parsing_errors.py @@ -17,9 +17,9 @@ from utils import ( tezos_app, - send_initialize_msg, + send_payload, - verify_err_reject_response + verify_err_reject_response, reject_flow, verify_parsing_err_reject_response ) if __name__ == "__main__": @@ -30,34 +30,28 @@ # original operation : 0300000000000000000000000000000000000000000000000000000000000000006c016e8874874d31c3fbd636e924d5a036a43ec8faa7d0860308362d80d30e01000000000000000000000000000000000000000000ff02000000020316 print("Invalid input: Unknown magic bytes") - send_initialize_msg(app, "800f000011048000002c800006c18000000080000000") + app.send_initialize_msg( "800f000011048000002c800006c18000000080000000") send_payload(app, "800f81005e0100000000000000000000000000000000000000000000000000000000000000006c016e8874874d31c3fbd636e924d5a036a43ec8faa7d0860308362d80d30e01000000000000000000000000000000000000000000ff02000000020316") app.review.next() - app.assert_screen("unsafe_operation_warning_1") - app.review.enable_blindsign.reject() - verify_err_reject_response(app, "invalid_tag") + verify_parsing_err_reject_response(app, "invalid_tag") - send_initialize_msg(app, "800f000011048000002c800006c18000000080000000") + app.send_initialize_msg( "800f000011048000002c800006c18000000080000000") send_payload(app, "800f81005e03000000000000000000000000000000000000000000000000000000000000000001016e8874874d31c3fbd636e924d5a036a43ec8faa7d0860308362d80d30e01000000000000000000000000000000000000000000ff02000000020316") app.review.next() - app.assert_screen("unsafe_operation_warning_1") - app.review.enable_blindsign.reject() - verify_err_reject_response(app, "invalid_tag") + verify_parsing_err_reject_response(app, "invalid_tag") print("Invalid input: 1 byte removed inside") - send_initialize_msg(app, "800f000011048000002c800006c18000000080000000") + app.send_initialize_msg( "800f000011048000002c800006c18000000080000000") send_payload(app, "800f81005d0300000000000000000000000000000000000000000000000000000000000000006c016e8874874d31c3fbd636e924d5a036a43ec8faa7d0860308362d80d30e010000000000000000000000000000000000000000ff02000000020316") app.review.next() app.assert_screen("tpe_review_0_01") app.review.next() app.assert_screen("tpe_review_0_02") app.review.next() - app.assert_screen("unsafe_operation_warning_1") - app.review.enable_blindsign.reject() - verify_err_reject_response(app, "invalid_tag") + verify_parsing_err_reject_response(app, "invalid_tag") print("Invalid input: 1 byte introduce at the end") - send_initialize_msg(app, "800f000011048000002c800006c18000000080000000") + app.send_initialize_msg( "800f000011048000002c800006c18000000080000000") send_payload(app, "800f81005f0300000000000000000000000000000000000000000000000000000000000000006c016e8874874d31c3fbd636e924d5a036a43ec8faa7d0860308362d80d30e01000000000000000000000000000000000000000000ff0200000002031645") app.review.next() app.assert_screen("tpe_review_0_01") @@ -68,44 +62,36 @@ app.review.next() app.assert_screen("tpe_review_0_03_full") app.review.next() - app.assert_screen("unsafe_operation_warning_1") - app.review.enable_blindsign.reject() - verify_err_reject_response(app, "invalid_tag") + verify_parsing_err_reject_response(app, "invalid_tag") print("Invalid input: 1 byte introduced inside") - send_initialize_msg(app, "800f000011048000002c800006c18000000080000000") + app.send_initialize_msg( "800f000011048000002c800006c18000000080000000") send_payload(app, "800f81005f0300000000000000000000000000000000000000000000000000000000000000006c016e8874874d31c3fbd636e924d5a036a43ec8faa7d0860308362d80d30e0100000000000000000000000000000000000000000000ff02000000020316") app.review.next() app.assert_screen("tpe_review_0_01") app.review.next() app.assert_screen("tpe_review_0_02_dest_only") app.review.next() - app.assert_screen("unsafe_operation_warning_1") - app.review.enable_blindsign.reject() - verify_err_reject_response(app, "invalid_tag") + verify_parsing_err_reject_response(app, "invalid_tag") # full output: 12345678901234567890123456789012345678901234567890123456789012345678901234567890 print("Too Large input") - send_initialize_msg(app, "800f000011048000002c800006c18000000080000000") + app.send_initialize_msg( "800f000011048000002c800006c18000000080000000") send_payload(app, "800f810028050092abf8e3d9e5f8cfd9ae8a9fe5f28ea1d5b5abf1af82dae8a4b68df3d1889eb6f988f5e8d31a") app.review.next() - app.assert_screen("unsafe_operation_warning_1") - app.review.enable_blindsign.reject() - verify_err_reject_response(app, "too_large") + verify_parsing_err_reject_response(app, "too_large") # full output: {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{42}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} print("Too Deep expression") - send_initialize_msg(app, "800f000011048000002c800006c18000000080000000") + app.send_initialize_msg( "800f000011048000002c800006c18000000080000000") send_payload(app, "800f0100eb0502000000f702000000f202000000ed02000000e802000000e302000000de02000000d902000000d402000000cf02000000ca02000000c502000000c002000000bb02000000b602000000b102000000ac02000000a702000000a2020000009d02000000980200000093020000008e02000000890200000084020000007f020000007a02000000750200000070020000006b02000000660200000061020000005c02000000570200000052020000004d02000000480200000043020000003e02000000390200000034020000002f020000002a02000000250200000020020000001b020000001602000000") app.review.next() app.assert_screen('tpe_review_too_deep_0') app.review.next() - app.assert_screen("unsafe_operation_warning_1") - app.review.enable_blindsign.reject() - verify_err_reject_response(app, "too_deep") + verify_parsing_err_reject_response(app, "too_deep") print("wrong last packet") - send_initialize_msg(app, "800f000011048000002c800006c18000000080000000") + app.send_initialize_msg( "800f000011048000002c800006c18000000080000000") send_payload(app, "800f8100eb030000000000000000000000000000000000000000000000000000000000000000ce00ffdd6102321bc251e4a5190ad5b12b251069d9b4904e02030400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c63966303966323935326433343532386337333366393436313563666333396263353535363139666335353064643461363762613232303863653865383637616133643133613665663939646662653332633639373461613961323135306432316563613239633333343965353963313362393038316631") app.review.next() app.assert_screen("tpe_review_1_01") diff --git a/tests/integration/touch/test_reject_review_operation.py b/tests/integration/touch/test_reject_review_operation.py index dc120cfa4..65969a16b 100755 --- a/tests/integration/touch/test_reject_review_operation.py +++ b/tests/integration/touch/test_reject_review_operation.py @@ -15,7 +15,7 @@ from utils import ( tezos_app, - send_initialize_msg, + send_payload ) @@ -27,12 +27,12 @@ def short_reject(app): app.assert_home() - send_initialize_msg(app, "800f000011048000002c800006c18000000080000000") + app.send_initialize_msg( "800f000011048000002c800006c18000000080000000") send_payload(app, "800f81005e0300000000000000000000000000000000000000000000000000000000000000006c016e8874874d31c3fbd636e924d5a036a43ec8faa7d0860308362d80d30e01000000000000000000000000000000000000000000ff02000000020316") app.review_reject_signing(cancel_rejection=True) # Cancelling rejection lands us back on the same page - app.assert_screen("review_request_sign_operation") + app.assert_screen("review_screen", True) app.review_reject_signing() app.assert_home() diff --git a/tests/integration/touch/test_reject_transfer.py b/tests/integration/touch/test_reject_transfer.py index 35d3610b5..8fef221ac 100755 --- a/tests/integration/touch/test_reject_transfer.py +++ b/tests/integration/touch/test_reject_transfer.py @@ -28,11 +28,11 @@ app.send_apdu("800f000011048000002c800006c18000000080000000") app.expect_apdu_return("9000") - app.assert_screen("review_request_sign_operation") + app.assert_screen("review_screen", True) app.review.next() # Ensure we don't advance to a blank screen - app.assert_screen("review_request_sign_operation") + app.assert_screen("review_screen", True) app.send_apdu("800f81005e0300000000000000000000000000000000000000000000000000000000000000006c016e8874874d31c3fbd636e924d5a036a43ec8faa7d0860308362d80d30e01000000000000000000000000000000000000000000ff02000000020316"); @@ -47,11 +47,11 @@ app.send_apdu("800f000011048000002c800006c18000000080000000") app.expect_apdu_return("9000") - app.assert_screen("review_request_sign_operation") + app.assert_screen("review_screen", True) app.review.next() # Ensure we don't advance to a blank screen - app.assert_screen("review_request_sign_operation") + app.assert_screen("review_screen", True) app.send_apdu("800f81005e0300000000000000000000000000000000000000000000000000000000000000006c016e8874874d31c3fbd636e924d5a036a43ec8faa7d0860308362d80d30e01000000000000000000000000000000000000000000ff02000000020316"); diff --git a/tests/integration/touch/test_sign_complex_operation.py b/tests/integration/touch/test_sign_complex_operation.py new file mode 100755 index 000000000..c7879983e --- /dev/null +++ b/tests/integration/touch/test_sign_complex_operation.py @@ -0,0 +1,72 @@ +#!/usr/bin/env python3 +# Copyright 2023 Trilitech + +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at + +# http://www.apache.org/licenses/LICENSE-2.0 + +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from utils import ( + tezos_app, + send_payload, + index_screen +) + +## Operation (0): Origination +# Source: tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa +# Fee: 0.5 XTZ +# Storage limit: 4 +# Balance: 1 XTZ +# Delegate: None +# Code: UNPACK mutez +# Storage: or key chest +## Operation (1): Transfer ticket +# Source: tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa +# Fee: 0.01 XTZ +# Storage limit: 5 +# Contents: None +# Type: option nat +# Ticketer: tz1TmFPVZsGQ8MnrBJtnECJgkFUwLa6EWYDm +# Amount: 7 +# Destination: tz3eydffbLkjdVb8zx42BvxpGV87zaRnqL3r +# Entrypoint: default + +if __name__ == "__main__": + app = tezos_app(__file__) + + app.assert_home() + + app.send_initialize_msg("800f000011048000002c800006c18000000080000000") + app.send_apdu("800f81ffb40300000000000000000000000000000000000000000000000000000000000000006d00ffdd6102321bc251e4a5190ad5b12b251069d9b4a0c21e040304c0843d0000000004050d036a000000060764035c038d9e00ffdd6102321bc251e4a5190ad5b12b251069d9b4904e05040500000002030600000004056303620000591e842444265757d6a65e3670ca18b5e662f9c0070002cc8e146741cf31fc00123b8c26baf95c57421a3c0000000764656661756c74") + + screen = "review" + nb_screen = 2 + + for index in range(1, nb_screen+1): + app.review.next() + app.assert_screen(index_screen(screen, index)) + + app.review.next() + app.expert_mode_splash() + + nb_screen_after = 4 + + for index_after in range(index+1, index+nb_screen_after+1): + app.review.next() + app.assert_screen(index_screen(screen, index_after)) + + app.review.next() + app.assert_screen("operation_sign") + + expected_apdu = "5b8e95ffef018702781bef9aa935e05a879b79fa82f11d9cf067281144bb700237b3bcf1cd8222cbb9868341eabe58eddd212ed57c949cde5900444056a62cf049e61ff5acfe18a15166941810d283b52ff0a5b53b24416acb0f71643c925a0d9000" + app.review_confirm_signing(expected_apdu) + + app.assert_home() + app.quit() diff --git a/tests/integration/touch/test_sign_execute_outbox_messages.py b/tests/integration/touch/test_sign_execute_outbox_messages.py index 556af67a9..4bbe8db2e 100755 --- a/tests/integration/touch/test_sign_execute_outbox_messages.py +++ b/tests/integration/touch/test_sign_execute_outbox_messages.py @@ -16,7 +16,7 @@ from utils import ( tezos_app, - send_initialize_msg, + send_payload ) @@ -29,7 +29,7 @@ app.assert_home() - send_initialize_msg(app, "800f000011048000002c800006c18000000080000000") + app.send_initialize_msg( "800f000011048000002c800006c18000000080000000") send_payload(app, "800f0100eb030000000000000000000000000000000000000000000000000000000000000000ce00ffdd6102321bc251e4a5190ad5b12b251069d9b4904e02030400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c63966303966323935326433343532386337333366393436313563666333396263353535363139666335353064643461363762613232303863653865383637616133643133613665663939646662653332633639373461613961323135306432316563613239633333343965353963313362393038316631") app.review.next() app.assert_screen("tseom_review_00") @@ -51,9 +51,6 @@ app.review.next() app.assert_screen("operation_proof_396...834_1") - app.review.next() - app.assert_screen("operation_sign") - expected_apdu = "c08f5e1a02d15b05c4066b43fc31aa1ccad30f6c7a18f44723e5af0b6584292236e919219e90793ef502e8883f5317206277607438695933fcb954f4ef451db19628a114880836193c755ddda4bf188b9764231975b2c5ecb64bc4bdc9c459039000" app.review_confirm_signing(expected_apdu) diff --git a/tests/integration/touch/test_sign_transfer.py b/tests/integration/touch/test_sign_transfer.py index 2f7c47905..0eb30d6a0 100755 --- a/tests/integration/touch/test_sign_transfer.py +++ b/tests/integration/touch/test_sign_transfer.py @@ -15,7 +15,7 @@ from utils import ( tezos_app, - send_initialize_msg, + send_payload, index_screen ) @@ -30,7 +30,7 @@ app.assert_home() - send_initialize_msg(app, "800f000011048000002c800006c18000000080000000") + app.send_initialize_msg( "800f000011048000002c800006c18000000080000000") send_payload(app, "800f81005e0300000000000000000000000000000000000000000000000000000000000000006c016e8874874d31c3fbd636e924d5a036a43ec8faa7d0860308362d80d30e01000000000000000000000000000000000000000000ff02000000020316") screen = "tst_review" @@ -46,16 +46,13 @@ app.review.next() app.assert_screen(index_screen(screen, index+1)) - app.review.next() - app.assert_screen("operation_sign") - expected_apdu = "f6d5fa0e79cac216e25104938ac873ca17ee9d7f06763719293b413cf2ed475cf63d045a1cc9f73eee5775c5d496fa9d3aa9ae57fb97217f746a8728639795b7b2220e84ce5759ed111399ea3263d810c230d6a4fffcb6e82797c5ca673a17089000" app.review_confirm_signing(expected_apdu) app.assert_home() # Now with expert enabled - send_initialize_msg(app, "800f000011048000002c800006c18000000080000000") + app.send_initialize_msg( "800f000011048000002c800006c18000000080000000") send_payload(app, "800f81005e0300000000000000000000000000000000000000000000000000000000000000006c016e8874874d31c3fbd636e924d5a036a43ec8faa7d0860308362d80d30e01000000000000000000000000000000000000000000ff02000000020316") screen = "tst_review" @@ -71,8 +68,7 @@ app.review.next() app.assert_screen(index_screen(screen, index+1)) - app.review.next() - app.assert_screen("operation_sign") + expected_apdu = "f6d5fa0e79cac216e25104938ac873ca17ee9d7f06763719293b413cf2ed475cf63d045a1cc9f73eee5775c5d496fa9d3aa9ae57fb97217f746a8728639795b7b2220e84ce5759ed111399ea3263d810c230d6a4fffcb6e82797c5ca673a17089000" app.review_confirm_signing(expected_apdu) diff --git a/tests/integration/touch/test_sign_transfer_without_hash.py b/tests/integration/touch/test_sign_transfer_without_hash.py index 73a974d58..fcbd49205 100755 --- a/tests/integration/touch/test_sign_transfer_without_hash.py +++ b/tests/integration/touch/test_sign_transfer_without_hash.py @@ -15,7 +15,7 @@ from utils import ( tezos_app, - send_initialize_msg, + send_payload, index_screen ) @@ -30,7 +30,7 @@ app.assert_home() - send_initialize_msg(app, "8004000011048000002c800006c18000000080000000") + app.send_initialize_msg( "8004000011048000002c800006c18000000080000000") send_payload(app, "800481005e0300000000000000000000000000000000000000000000000000000000000000006c016e8874874d31c3fbd636e924d5a036a43ec8faa7d0860308362d80d30e01000000000000000000000000000000000000000000ff02000000020316") screen = "review" @@ -46,9 +46,6 @@ app.review.next() app.assert_screen(index_screen(screen, index+1)) - app.review.next() - app.assert_screen("operation_sign") - expected_apdu = "f63d045a1cc9f73eee5775c5d496fa9d3aa9ae57fb97217f746a8728639795b7b2220e84ce5759ed111399ea3263d810c230d6a4fffcb6e82797c5ca673a17089000" app.review_confirm_signing(expected_apdu) diff --git a/tests/integration/touch/utils.py b/tests/integration/touch/utils.py index 169d71017..7e06198ec 100644 --- a/tests/integration/touch/utils.py +++ b/tests/integration/touch/utils.py @@ -13,8 +13,10 @@ # See the License for the specific language governing permissions and # limitations under the License. +import glob import os import time +from enum import Enum from pathlib import Path from typing import Generator, List @@ -27,6 +29,7 @@ from ragger.firmware.touch.element import Center from ragger.firmware.touch.screen import MetaScreen from ragger.firmware.touch.use_cases import ( + UseCaseHome, UseCaseHomeExt, UseCaseSettings as OriginalUseCaseSettings, UseCaseAddressConfirmation as OriginalUseCaseAddressConfirmation, @@ -52,7 +55,7 @@ def with_retry(f, attempts=MAX_ATTEMPTS): return f() except Exception as e: if attempts <= 0: - print("- with_retry: attempts exhausted -") + print("- with_retry: attempts exhausted -{e}") raise e attempts -= 1 # Give plenty of time for speculos to update - can take a long time on CI machines @@ -65,7 +68,10 @@ class UseCaseReview(OriginalUseCaseReview): reject_tx: UseCaseChoice enable_expert: UseCaseChoice enable_blindsign: UseCaseChoice + enable_skip: UseCaseChoice + back_to_safety: UseCaseChoice details: UseCaseViewDetails + __skip_screen: UseCaseHome _center: Center MORE_POSITIONS = { @@ -78,8 +84,11 @@ def __init__(self, client: BackendInterface, firmware: Firmware): self.reject_tx = UseCaseChoice(client, firmware) self.enable_expert = UseCaseChoice(client, firmware) self.enable_blindsign = UseCaseChoice(client, firmware) - self._center = Center(client, firmware) - self.details = UseCaseViewDetails(client, firmware) + self.back_to_safety = UseCaseChoice(client, firmware) + self.enable_skip = UseCaseChoice(client, firmware) + self._center = Center(client, firmware) + self.details = UseCaseViewDetails(client, firmware) + self.__skip_screen = UseCaseHome(client, firmware) @property def more_position(self) -> Position: @@ -94,6 +103,9 @@ def show_more(self) -> None: """Tap to show more.""" self.client.finger_touch(*self.more_position) + def skip(self) -> None: + """Press the skip button.""" + self.__skip_screen.settings() class UseCaseAddressConfirmation(OriginalUseCaseAddressConfirmation): """Extension of UseCaseAddressConfirmation for our app.""" @@ -123,6 +135,12 @@ def show_qr(self) -> None: self.client.finger_touch(*self.qr_position) +class BlindsigningType(Enum): + NO_BLINDSIGN = 0 + BLINDSIGN = 2 + SUMMARYSIGN = 3 + + class UseCaseSettings(OriginalUseCaseSettings): """Extension of UseCaseSettings for our app.""" @@ -164,7 +182,7 @@ class TezosAppScreen(metaclass=MetaScreen): __golden: bool __snapshots_path: str __prefixed_snapshots_path: str - __snapshotted: List[str] = [] + __snapshotted: List[str] = [ ] def __init__(self, backend: BackendInterface, @@ -183,21 +201,23 @@ def __init__(self, self.commit = commit self.version = version self.__golden = golden + self.__update_fixed = os.getenv("UPDATE_FIXED") is not None if golden: # Setup for golden path = f"{self.__prefixed_snapshots_path}" Path(path).mkdir(parents=True, exist_ok=True) for filename in os.listdir(path): os.remove(os.path.join(path, filename)) - path = f"{self.__snapshots_path}" - home_path = os.path.join(path, "home.png") - if os.path.exists(home_path): - os.remove(home_path) def send_apdu(self, data): """Send hex-encoded bytes to the apdu""" self.__backend.send_raw(bytes.fromhex(data)) + def remove_settings_and_info(self): + if self.__golden and self.__update_fixed: + self.remove_settings_pages() + self.remove_info_page() + def remove_info_page(self): """ Delete the info page for golden tests""" if self.__golden: @@ -205,6 +225,13 @@ def remove_info_page(self): if os.path.exists(info_path): os.remove(info_path) + def remove_settings_pages(self): + """ Delete the settings page for golden tests""" + if self.__golden: + settings_path=os.path.join(self.__snapshots_path, "settings_*.png") + for file in glob.glob(settings_path): + os.remove(file) + def expect_apdu_return(self, expected): """Expect hex-encoded response from the apdu""" response = self.__backend.receive().raw @@ -223,15 +250,17 @@ def send_async_apdu(self, data): def assert_screen(self, screen, fixed: bool = False): golden = self.__golden and screen not in self.__snapshotted - if golden: - self.__snapshotted = self.__snapshotted + [screen] - input(f"Press ENTER to snapshot {screen}") if fixed: path = f'{self.__snapshots_path}/{screen}.png' + golden = golden and self.__update_fixed else: path = f'{self.__prefixed_snapshots_path}/{screen}.png' + if golden: + self.__snapshotted = self.__snapshotted + [screen] + input(f"Press ENTER to snapshot {screen}") + def check(): print(f"- Expecting {screen} -") assert self.__backend.compare_screen_with_snapshot(path, golden_run=golden) @@ -241,20 +270,30 @@ def check(): def assert_home(self): self.assert_screen("home", True) - def assert_info(self): - self.assert_screen("info", True) def assert_settings(self, blindsigning = False, expert_mode = False): - suffix="" + bs_suffix="blindsigning_" if blindsigning: - suffix += "_blindsigning" + bs_suffix += "on" + else: + bs_suffix += "off" + expert_mode_suffix = "_expert_mode_" if expert_mode: - suffix += "_expert" - if suffix != "": - suffix += "_on" - self.assert_screen("settings" + suffix) + expert_mode_suffix += "on_" + else: + expert_mode_suffix += "off_" + self.assert_screen("settings" + expert_mode_suffix + bs_suffix,fixed=True) + + + def assert_info(self): + if(Firmware.STAX == self.firmware): + self.assert_screen("info_stax", True) + else: + self.assert_screen("info_flex_1", True) + self.review.next() + self.assert_screen("info_flex_2", True) def quit(self): if os.getenv("NOQUIT") == None: @@ -275,10 +314,10 @@ def manual_ticker(self) -> Generator[None, None, None]: self.__backend.resume_ticker() @contextmanager - def fading_screen(self, screen) -> Generator[None, None, None]: + def fading_screen(self, screen, fixed=False) -> Generator[None, None, None]: with self.manual_ticker(): yield - self.assert_screen(screen) + self.assert_screen(screen, fixed) self.review.tap() # Not waiting for the screen to fade on its own def start_loading_operation(self, first_packet): @@ -291,7 +330,15 @@ def start_loading_operation(self, first_packet): self.send_apdu(first_packet) self.expect_apdu_return("9000") - def review_confirm_signing(self, expected_apdu): + def review_confirm_signing(self, expected_apdu, blindsigning_type : BlindsigningType= BlindsigningType.NO_BLINDSIGN): + self.review.next() + if blindsigning_type == BlindsigningType.NO_BLINDSIGN: + self.assert_screen("operation_sign") + elif blindsigning_type == BlindsigningType.BLINDSIGN: + self.assert_screen("operation_sign_blindsign") + else: + self.assert_screen("operation_sign_summary") + with self.fading_screen("signing_successful"): self.review.confirm() self.expect_apdu_return(expected_apdu) @@ -315,12 +362,23 @@ def review_reject_signing(self, cancel_rejection = False): with self.fading_screen("reject_review"): self.review.reject_tx.confirm() - def process_blindsign_warnings(self, landing_screen: str): + def process_blindsign_warnings(self, apdu: str = None, loading_operation: bool = True): self.assert_screen("unsafe_operation_warning_1") - self.review.reject() + if loading_operation: + with self.fading_screen("loading_operation"): + self.review.back_to_safety.reject() + else: + self.review.back_to_safety.reject() + if apdu: + self.send_apdu(apdu) self.assert_screen("unsafe_operation_warning_2") - with self.fading_screen(landing_screen): - self.review.enable_blindsign.confirm() + self.review.back_to_safety.reject() + + + def send_initialize_msg(self, apdu): + self.send_apdu(apdu) + self.expect_apdu_return("9000") + self.assert_screen("review_screen", True) def tezos_app(prefix) -> TezosAppScreen: @@ -339,19 +397,18 @@ def assert_home_with_code(app, code): app.expect_apdu_failure(code) -def send_initialize_msg(app, apdu): - app.send_apdu(apdu) - app.expect_apdu_return("9000") - app.assert_screen("review_request_sign_operation") - - def send_payload(app, apdu): app.send_apdu(apdu) - app.assert_screen("review_request_sign_operation") + app.assert_screen("review_screen", True) +def verify_parsing_err_reject_response(app, tag): + app.assert_screen(tag) + app.review.back_to_safety.confirm() + reject_flow(app, "9405") + def verify_err_reject_response(app, tag): - verify_reject_response_common(app, tag, "9405") + verify_reject_response_common(app, tag, "9405" ) def verify_reject_response(app, tag): diff --git a/tests/unit/ctest/tests_parser.c b/tests/unit/ctest/tests_parser.c index 3b80a084f..6d0db9ce6 100644 --- a/tests/unit/ctest/tests_parser.c +++ b/tests/unit/ctest/tests_parser.c @@ -289,6 +289,87 @@ CTEST2(operation_parser, check_double_transaction_complexity) check_field_complexity(data, str, fields_check, sizeof(fields_check)); } +CTEST2(operation_parser, check_stake_complexity) +{ + char str[] + = "030000000000000000000000000000000000000000000000000000000000000000" + "6c01f6552df4f5ff51c3d13347cab045cfdb8b9bd803c0b8020031028094ebdc03" + "00012bad922d045c068660fabe19576f8506a1fa8fa3ff0600000002030b"; + const tz_fields_check fields_check[] = { + {"Source", false, 1}, + {"Fee", false, 2}, + {"Storage limit", false, 3}, + {"Amount", false, 4}, + {"Destination", false, 5}, + // {"Option", _, 6}, + // {"Tuple", _, 7}, + {"Entrypoint", false, 8}, + {"Parameter", false, 9}, + }; + check_field_complexity(data, str, fields_check, sizeof(fields_check)); +} + +CTEST2(operation_parser, check_unstake_complexity) +{ + char str[] + = "030000000000000000000000000000000000000000000000000000000000000000" + "6c01f6552df4f5ff51c3d13347cab045cfdb8b9bd803c0b80200310280cab5ee01" + "00012bad922d045c068660fabe19576f8506a1fa8fa3ff0700000002030b"; + const tz_fields_check fields_check[] = { + {"Source", false, 1}, + {"Fee", false, 2}, + {"Storage limit", false, 3}, + {"Amount", false, 4}, + {"Destination", false, 5}, + // {"Option", _, 6}, + // {"Tuple", _, 7}, + {"Entrypoint", false, 8}, + {"Parameter", false, 9}, + }; + check_field_complexity(data, str, fields_check, sizeof(fields_check)); +} + +CTEST2(operation_parser, check_finalize_unstake_complexity) +{ + char str[] + = "030000000000000000000000000000000000000000000000000000000000000000" + "6c01f6552df4f5ff51c3d13347cab045cfdb8b9bd803c0b8020031020000012bad" + "922d045c068660fabe19576f8506a1fa8fa3ff0800000002030b"; + const tz_fields_check fields_check[] = { + {"Source", false, 1}, + {"Fee", false, 2}, + {"Storage limit", false, 3}, + {"Amount", false, 4}, + {"Destination", false, 5}, + // {"Option", _, 6}, + // {"Tuple", _, 7}, + {"Entrypoint", false, 8}, + {"Parameter", false, 9}, + }; + check_field_complexity(data, str, fields_check, sizeof(fields_check)); +} + +CTEST2(operation_parser, check_set_delegate_parameters_complexity) +{ + char str[] + = "030000000000000000000000000000000000000000000000000000000000000000" + "6c01f6552df4f5ff51c3d13347cab045cfdb8b9bd803c0b8020031020000012bad" + "922d045c068660fabe19576f8506a1fa8fa3ff090000001007070080a4e8030707" + "0080b48913030b"; + const tz_fields_check fields_check[] = { + {"Source", false, 1}, + {"Fee", false, 2}, + {"Storage limit", false, 3}, + {"Amount", false, 4}, + {"Destination", false, 5}, + // {"Option", _, 6}, + // {"Tuple", _, 7}, + {"Entrypoint", false, 8}, + {"Parameter", true, 9}, + }; + check_field_complexity(data, str, fields_check, sizeof(fields_check)); +} + CTEST2(operation_parser, check_origination_complexity) { char str[]