diff --git a/Makefile b/Makefile index 7aeda5e8..c8df90e4 100644 --- a/Makefile +++ b/Makefile @@ -120,9 +120,9 @@ ifeq ($(APPNAME), "Aleo") # - ENABLE_TESTING_SWAP: will lead to the enabling of the swap related C code of the standard_app # ONLY works on Speculos, not on device # Testing only SWAP flag -# ENABLE_TESTING_SWAP = 1 +#ENABLE_TESTING_SWAP = 1 # Production enabled SWAP flag -# ENABLE_SWAP = 1 +ENABLE_SWAP = 1 endif # --8<-- [end:variables] diff --git a/fuzzing/CMakeLists.txt b/fuzzing/CMakeLists.txt index f0f008a3..c07fc892 100644 --- a/fuzzing/CMakeLists.txt +++ b/fuzzing/CMakeLists.txt @@ -41,6 +41,7 @@ target_include_directories( ${APP_SRC}/account ${APP_SRC}/crypto ${APP_SRC}/db + ${APP_SRC}/format ${APP_SRC}/handler ${APP_SRC}/helper ${APP_SRC}/transaction diff --git a/src/account/account.c b/src/account/account.c index 25401a75..296b06a6 100644 --- a/src/account/account.c +++ b/src/account/account.c @@ -32,10 +32,10 @@ #include "account.h" -#define HASH_INPUT_MAX_LENGTH (8) +/*#define HASH_INPUT_MAX_LENGTH (8) -static field_t hash_input[HASH_INPUT_MAX_LENGTH]; -static char text_buffer[32]; +static field_t hash_input[HASH_INPUT_MAX_LENGTH];*/ +static char text_buffer[32]; const field_t ACCOUNT_SK_SIG_DOMAIN = { .big.u64 = {0xc9a73b0068afb54b, 0x95d2050edfd00d2d, 0x30b27b31e4cc8dc3, 0x127ef5e8bbf7590e} @@ -92,8 +92,9 @@ static int get_seed(const uint32_t *path, uint8_t path_len, field_t *seed) static int private_key_from_seed(const field_t *seed, scalar_t *sk_sig, scalar_t *r_sig) { - _Static_assert(HASH_INPUT_MAX_LENGTH >= 4, "hash_input size won't fit"); - int status = -1; + //_Static_assert(HASH_INPUT_MAX_LENGTH >= 4, "hash_input size won't fit"); + int status = -1; + field_t hash_input[4]; // Compute sk_sig memset(hash_input, 0, sizeof(hash_input)); @@ -101,7 +102,7 @@ static int private_key_from_seed(const field_t *seed, scalar_t *sk_sig, scalar_t memcpy(&hash_input[3], seed, sizeof(field_t)); status = hash_to_scalar_psd2(hash_input, 2 + 2, sk_sig); if (status < 0) { - return -1; + goto end; } PRINTF("sk_sig : "); scalar_println(sk_sig); @@ -112,11 +113,13 @@ static int private_key_from_seed(const field_t *seed, scalar_t *sk_sig, scalar_t memcpy(&hash_input[3], seed, sizeof(field_t)); status = hash_to_scalar_psd2(hash_input, 2 + 2, r_sig); if (status < 0) { - return -1; + goto end; } PRINTF("r_sig : "); scalar_println(r_sig); +end: + explicit_bzero(hash_input, sizeof(hash_input)); return status; } @@ -146,15 +149,16 @@ static int view_key_from_private_and_compute_key(const private_key_t *private_ke compute_key_t *compute_key, scalar_t *view_key) { - _Static_assert(HASH_INPUT_MAX_LENGTH >= 6, "hash_input size won't fit"); - int status = -1; + //_Static_assert(HASH_INPUT_MAX_LENGTH >= 6, "hash_input size won't fit"); + int status = -1; + field_t hash_input[6]; memset(hash_input, 0, sizeof(hash_input)); memcpy(&hash_input[4], &compute_key->pk_sig.x, sizeof(field_t)); memcpy(&hash_input[5], &compute_key->pr_sig.x, sizeof(field_t)); status = hash_to_scalar_psd4(hash_input, 4 + 2, &compute_key->sk_prf); if (status < 0) { - return -1; + goto end; } PRINTF("sk_prf : "); scalar_println(&compute_key->sk_prf); @@ -165,6 +169,8 @@ static int view_key_from_private_and_compute_key(const private_key_t *private_ke PRINTF("view_key : "); scalar_println(view_key); +end: + explicit_bzero(hash_input, sizeof(hash_input)); return status; } @@ -182,8 +188,9 @@ static int address_from_view_key(const scalar_t *view_key, group_t *address) static int graph_key_from_view_key(const scalar_t *view_key, field_t *graph_key) { - _Static_assert(HASH_INPUT_MAX_LENGTH >= 7, "hash_input size won't fit"); + //_Static_assert(HASH_INPUT_MAX_LENGTH >= 7, "hash_input size won't fit"); int status = -1; + field_t hash_input[7]; field_t f_view_key; scalar_to_field(view_key, &f_view_key); @@ -195,6 +202,7 @@ static int graph_key_from_view_key(const scalar_t *view_key, field_t *graph_key) PRINTF("graph key : "); field_println(graph_key); + explicit_bzero(hash_input, sizeof(hash_input)); return status; } @@ -257,7 +265,6 @@ int account_get_address_string(const uint32_t *path, PRINTF("%s\n", address); end: - explicit_bzero(hash_input, sizeof(hash_input)); explicit_bzero(&account, sizeof(account_t)); return status; @@ -311,7 +318,6 @@ int account_get_view_key_string(const uint32_t *path, PRINTF("%s\n", viewkey); end: - explicit_bzero(hash_input, sizeof(hash_input)); explicit_bzero(&account, sizeof(account_t)); return status; @@ -375,7 +381,6 @@ int account_generate_keys(const uint32_t *path, uint8_t path_len, account_t *acc return 0; error: - explicit_bzero(hash_input, sizeof(hash_input)); explicit_bzero(account, sizeof(account_t)); return status; } @@ -389,6 +394,7 @@ int r_list_set(account_t *account, uint8_t index) { int status = -1; field_t nonce; + field_t hash_input[8]; scalar_t *r = NULL; LEDGER_ASSERT(account != NULL, "NULL account"); @@ -408,7 +414,7 @@ int r_list_set(account_t *account, uint8_t index) r = &G_context.r_list.array[index]; // Compute a `r0` as `hash_to_scalar_psd4(domain || sk_sig || nonce)` - _Static_assert(HASH_INPUT_MAX_LENGTH >= 7, "hash_input size won't fit"); + //_Static_assert(HASH_INPUT_MAX_LENGTH >= 7, "hash_input size won't fit"); memset(hash_input, 0, sizeof(hash_input)); memcpy(&hash_input[4], &LEDGER_APP_ALEO_DOMAIN, sizeof(field_t)); scalar_to_field(&account->private_key.sk_sig, &hash_input[5]); @@ -440,7 +446,7 @@ int r_list_set(account_t *account, uint8_t index) } // Compute a `rx` as `hash_to_scalar_psd4(domain || sk_sig || nonce || index)` - _Static_assert(HASH_INPUT_MAX_LENGTH >= 8, "hash_input size won't fit"); + //_Static_assert(HASH_INPUT_MAX_LENGTH >= 8, "hash_input size won't fit"); memset(hash_input, 0, sizeof(hash_input)); memcpy(&hash_input[4], &LEDGER_APP_ALEO_DOMAIN, sizeof(field_t)); scalar_to_field(&account->private_key.sk_sig, &hash_input[5]); diff --git a/src/account/signature.c b/src/account/signature.c index 9212ee35..afec65d0 100644 --- a/src/account/signature.c +++ b/src/account/signature.c @@ -20,6 +20,7 @@ #include // bool #include "os.h" +#include "swap.h" #include "ledger_assert.h" #include "globals.h" #include "group.h" @@ -410,6 +411,10 @@ static void display_progression(uint8_t step) uint8_t current_step = step; uint8_t total_step = (1 + G_context.nested_call_count) * 5; + if (G_called_from_swap) { + return; + } + if (G_context.signing_state == SIGNING_STATE_FEES) { text = "Signing transaction"; } diff --git a/src/app_main.c b/src/app_main.c index 856bbb60..1d925601 100644 --- a/src/app_main.c +++ b/src/app_main.c @@ -21,6 +21,7 @@ #include "os.h" #include "ux.h" #include "swap.h" +#include "swap_error_code_helpers.h" #include "types.h" #include "globals.h" @@ -55,14 +56,10 @@ void app_main(void) io_init(); time_ms = 0; -#ifdef HAVE_SWAP // When called in swap context as a library, we don't want to show the menu if (!G_called_from_swap) { -#endif ui_menu_main(); -#ifdef HAVE_SWAP } -#endif // Reset context explicit_bzero(&G_context, sizeof(G_context)); @@ -117,7 +114,14 @@ void app_ticker_event_callback(void) account_erase(&G_context.account); r_list_erase(); #ifndef FUZZ - nbgl_useCaseReviewStatus(STATUS_TYPE_TRANSACTION_REJECTED, ui_menu_main); + if (!G_called_from_swap) { + nbgl_useCaseReviewStatus(STATUS_TYPE_TRANSACTION_REJECTED, ui_menu_main); + } + else { + send_swap_error_simple(SW_SWAP_FAIL, SWAP_EC_ERROR_INTERNAL, SWAP_ERROR_CODE); + // unreachable + os_sched_exit(0); + } #endif // FUZZ } } @@ -127,7 +131,14 @@ void app_ticker_event_callback(void) if (G_context.r_list_alive_remaining_time_ms < 100) { G_context.r_list_alive_remaining_time_ms = 0; r_list_erase(); - ui_menu_main(); + if (!G_called_from_swap) { + ui_menu_main(); + } + else { + send_swap_error_simple(SW_SWAP_FAIL, SWAP_EC_ERROR_INTERNAL, SWAP_ERROR_CODE); + // unreachable + os_sched_exit(0); + } } } } diff --git a/src/constants.h b/src/constants.h index 2640e141..1824186b 100644 --- a/src/constants.h +++ b/src/constants.h @@ -104,5 +104,10 @@ */ #define R_LIST_MAX_VALIDITY_TIME_MS (5 * 1000) +/** + * Maximum size for amount formatting (39 chars for u128 + 2 for '0.'). + */ +#define MAX_AMOUNT_SIZE (41) + #define ALEO_DECIMALS (6) #define ALEO_TICKER "ALEO" diff --git a/src/handler/sign_transaction.c b/src/handler/sign_transaction.c index cc753f39..6586c904 100644 --- a/src/handler/sign_transaction.c +++ b/src/handler/sign_transaction.c @@ -22,6 +22,7 @@ #include "os.h" #include "cx.h" +#include "swap.h" #include "ledger_assert.h" #include "nbgl_use_case.h" #include "menu.h" @@ -74,7 +75,9 @@ static int sign_root_tx(buffer_t *cdata) account_erase(&G_context.account); r_list_erase(); #ifndef FUZZ - nbgl_useCaseReviewStatus(STATUS_TYPE_TRANSACTION_REJECTED, ui_menu_main); + if (!G_called_from_swap) { + nbgl_useCaseReviewStatus(STATUS_TYPE_TRANSACTION_REJECTED, ui_menu_main); + } #endif // FUZZ return io_send_sw(SW_DISPLAY_BIP32_PATH_FAIL); } @@ -93,7 +96,9 @@ static int sign_root_tx(buffer_t *cdata) account_erase(&G_context.account); r_list_erase(); #ifndef FUZZ - nbgl_useCaseReviewStatus(STATUS_TYPE_TRANSACTION_REJECTED, ui_menu_main); + if (!G_called_from_swap) { + nbgl_useCaseReviewStatus(STATUS_TYPE_TRANSACTION_REJECTED, ui_menu_main); + } #endif // FUZZ goto end; } @@ -106,7 +111,9 @@ static int sign_root_tx(buffer_t *cdata) account_erase(&G_context.account); r_list_erase(); #ifndef FUZZ - nbgl_useCaseReviewStatus(STATUS_TYPE_TRANSACTION_REJECTED, ui_menu_main); + if (!G_called_from_swap) { + nbgl_useCaseReviewStatus(STATUS_TYPE_TRANSACTION_REJECTED, ui_menu_main); + } #endif // FUZZ goto end; } @@ -116,7 +123,9 @@ static int sign_root_tx(buffer_t *cdata) account_erase(&G_context.account); r_list_erase(); #ifndef FUZZ - nbgl_useCaseReviewStatus(STATUS_TYPE_TRANSACTION_REJECTED, ui_menu_main); + if (!G_called_from_swap) { + nbgl_useCaseReviewStatus(STATUS_TYPE_TRANSACTION_REJECTED, ui_menu_main); + } #endif // FUZZ goto end; } @@ -128,7 +137,9 @@ static int sign_root_tx(buffer_t *cdata) account_erase(&G_context.account); r_list_erase(); #ifndef FUZZ - nbgl_useCaseReviewStatus(STATUS_TYPE_TRANSACTION_REJECTED, ui_menu_main); + if (!G_called_from_swap) { + nbgl_useCaseReviewStatus(STATUS_TYPE_TRANSACTION_REJECTED, ui_menu_main); + } #endif // FUZZ } @@ -201,15 +212,19 @@ static int sign_nested_call_tx(buffer_t *cdata) G_context.fees_waiting_time_ms = 0; G_context.signing_state = SIGNING_STATE_WAIT_FEES; #ifndef FUZZ - nbgl_useCaseSpinner("Calculating fees"); + if (!G_called_from_swap) { + nbgl_useCaseSpinner("Calculating fees"); + } #endif // FUZZ } else { -#ifndef FUZZ account_erase(&G_context.account); - nbgl_useCaseReviewStatus(STATUS_TYPE_TRANSACTION_SIGNED, ui_menu_main); - G_context.signing_state = SIGNING_STATE_WAIT_INTENT; +#ifndef FUZZ + if (!G_called_from_swap) { + nbgl_useCaseReviewStatus(STATUS_TYPE_TRANSACTION_SIGNED, ui_menu_main); + } #endif // FUZZ + G_context.signing_state = SIGNING_STATE_WAIT_INTENT; } } @@ -299,7 +314,11 @@ static int sign_fee_tx(buffer_t *cdata) validate_transaction(true); account_erase(&G_context.account); r_list_erase(); - nbgl_useCaseReviewStatus(STATUS_TYPE_TRANSACTION_SIGNED, ui_menu_main); +#ifndef FUZZ + if (!G_called_from_swap) { + nbgl_useCaseReviewStatus(STATUS_TYPE_TRANSACTION_SIGNED, ui_menu_main); + } +#endif // FUZZ G_context.signing_state = SIGNING_STATE_WAIT_INTENT; status = 0; @@ -313,6 +332,8 @@ int handler_sign_transaction(buffer_t *cdata, uint8_t mode, bool next_chunk) LEDGER_ASSERT(cdata != NULL, "NULL cdata"); + G_swap_response_ready = true; + if (!cdata->size) { // Reject empty data return io_send_sw(SWO_WRONG_DATA_LENGTH); diff --git a/src/helper/send_response.c b/src/helper/send_response.c index 6cf0ba6c..daba8aec 100644 --- a/src/helper/send_response.c +++ b/src/helper/send_response.c @@ -21,6 +21,7 @@ #include "buffer.h" +#include "swap.h" #include "ledger_assert.h" #include "send_response.h" #include "constants.h" @@ -259,6 +260,44 @@ int helper_send_response_sign_transaction(void) write_u16_be(response_buffer, offset, SWO_SUCCESS); // 2 bytes offset += 2; + G_swap_response_ready = false; + if (G_context.signing_state == SIGNING_STATE_FEES) { + // Signing fees + G_swap_response_ready = true; + } + else if ((G_context.signing_state == SIGNING_STATE_INTENT) && (G_context.nested_call_count == 0) + && (G_context.sign_transaction_datas.max_base_fee == 0) + && (G_context.sign_transaction_datas.max_priority_fee == 0)) { + // No nested calls & no fees to sign + G_swap_response_ready = true; + } + else if ((G_context.signing_state == SIGNING_STATE_NESTED_CALL) + && ((G_context.nested_call_offset + 1) >= G_context.nested_call_count) + && (G_context.sign_transaction_datas.max_base_fee == 0) + && (G_context.sign_transaction_datas.max_priority_fee == 0)) { + // No more nested calls & no fees to sign + G_swap_response_ready = true; + } + + // If we are in swap mode and have validated a TX, we send it and immediately quit + if (G_called_from_swap && G_swap_response_ready) { + PRINTF("Swap answer is processed. Send it\n"); + + if (io_legacy_apdu_tx(response_buffer, offset) >= 0) { + *G_swap_signing_return_value_address = 1; + PRINTF("Returning to Exchange with status %d\n", *G_swap_signing_return_value_address); + PRINTF("os_lib_end\n"); + os_lib_end(); + } + else { + PRINTF("Unrecoverable\n"); +#ifndef USE_OS_IO_STACK + os_io_stop(); +#endif // USE_OS_IO_STACK + os_sched_exit(-1); + } + } + return io_legacy_apdu_tx(response_buffer, offset); } @@ -278,8 +317,5 @@ int helper_send_response_get_tvk(field_t *tvk) bn_reverse(&response_buffer[offset]); offset += 32; - write_u16_be(response_buffer, offset, SWO_SUCCESS); // 2 bytes - offset += 2; - - return io_legacy_apdu_tx(response_buffer, offset); + return io_send_response_pointer(response_buffer, offset, SWO_SUCCESS); } diff --git a/src/sw.h b/src/sw.h index 8bce4d90..f905d0ba 100644 --- a/src/sw.h +++ b/src/sw.h @@ -13,7 +13,10 @@ /** * Application specific swap error code */ -#define SWAP_ERROR_CODE 0x00 +typedef enum swap_error_application_specific_code_t { + SWAP_ERROR_CODE = 0x00, + SWAP_ERROR_WRONG_TOKEN_INFO = 0x01, +} swap_error_application_specific_code_t; /** * OS status word for OK diff --git a/src/swap/aleo_swap_utils.c b/src/swap/aleo_swap_utils.c new file mode 100644 index 00000000..e81be750 --- /dev/null +++ b/src/swap/aleo_swap_utils.c @@ -0,0 +1,41 @@ +/***************************************************************************** + * Ledger App Aleo. + * (c) 2025 Ledger SAS. + * + * 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 // uint*_t +#include + +#include "aleo_swap_utils.h" + +bool swap_str_to_u128(const char *in, size_t in_len, u128_t *out) +{ + if (!in || !out || in_len == 0 || in_len > 16) { + return false; + } + + uint64_t high = 0; + uint64_t low = 0; + + for (size_t i = 0; i < in_len; i++) { + high = (high << 8) | (low >> 56); + low = (low << 8) | (uint64_t) in[i]; + } + + out->low = low; + out->high = high; + + return true; +} \ No newline at end of file diff --git a/src/swap/aleo_swap_utils.h b/src/swap/aleo_swap_utils.h new file mode 100644 index 00000000..9138b269 --- /dev/null +++ b/src/swap/aleo_swap_utils.h @@ -0,0 +1,8 @@ +#pragma once + +#include // uint*_t +#include // bool + +#include "types.h" + +bool swap_str_to_u128(const char *in, size_t in_len, u128_t *out); diff --git a/src/swap/handle_check_address.c b/src/swap/handle_check_address.c new file mode 100644 index 00000000..4cdc79d4 --- /dev/null +++ b/src/swap/handle_check_address.c @@ -0,0 +1,81 @@ +#include "swap.h" +#include "buffer.h" +#include "bip32.h" +#include "crypto_helpers.h" +#include "cx.h" +#include "os.h" + +#include "types.h" +#include "format.h" +#include "account.h" + +#include + +/* Check that the address used to receive funds is owned by the device + * check_address_parameters_t is defined in C SDK as: + * struct { + * // IN + * uint8_t *coin_configuration; + * uint8_t coin_configuration_length; + * // serialized path, segwit, version prefix, hash used, dictionary etc. + * // fields and serialization format depends on specific coin app + * uint8_t *address_parameters; + * uint8_t address_parameters_length; + * char *address_to_check; + * char *extra_id_to_check; + * // OUT + * int result; + * } check_address_parameters_t; + */ +void swap_handle_check_address(check_address_parameters_t *params) +{ + PRINTF("Inside swap_handle_check_address\n"); + params->result = 0; + + if (params->address_parameters == NULL) { + PRINTF("derivation path expected\n"); + return; + } + PRINTF( + "address_parameters %.*H\n", params->address_parameters_length, params->address_parameters); + + if (params->address_to_check == NULL) { + PRINTF("Address to check expected\n"); + return; + } + PRINTF("Address to check %s\n", params->address_to_check); + if (strlen(params->address_to_check) != (ADDRESS_LEN)) { + PRINTF("Address to check expected length %d, not %d\n", + ADDRESS_LEN, + strlen(params->address_to_check)); + return; + } + + buffer_t buf = { + .ptr = params->address_parameters, .size = params->address_parameters_length, .offset = 0}; + uint8_t bip32_path_len; + uint32_t bip32_path[MAX_BIP32_PATH]; + char address[ADDRESS_LEN + 1] = {0}; + + if (!buffer_read_u8(&buf, &bip32_path_len) + || !buffer_read_bip32_path(&buf, bip32_path, (size_t) bip32_path_len)) { + return; + } + + int status = account_get_address_string(bip32_path, bip32_path_len, address); + + if (status < 0) { + return; + } + + PRINTF("Derived address %s\n", address); + PRINTF("Checked address %s\n", params->address_to_check); + + if (strncmp(address, params->address_to_check, sizeof(address)) != 0) { + PRINTF("Addresses do not match\n"); + } + else { + PRINTF("Addresses match\n"); + params->result = 1; + } +} diff --git a/src/swap/handle_get_printable_amount.c b/src/swap/handle_get_printable_amount.c new file mode 100644 index 00000000..928f44fe --- /dev/null +++ b/src/swap/handle_get_printable_amount.c @@ -0,0 +1,69 @@ +#include "swap.h" +#include "buffer.h" +#include "constants.h" +#include "format.h" +#include "os.h" +#include "tokens.h" +#include "format_u128.h" + +#include +#include + +/* Format printable amount including the ticker from specified parameters. + * + * Must set empty printable_amount on error, printable amount otherwise + * get_printable_amount_parameters_t is defined in C SDK as: + * struct { + * // IN + * uint8_t *coin_configuration; + * uint8_t coin_configuration_length; + * uint8_t *amount; + * uint8_t amount_length; + * bool is_fee; + * // OUT + * char printable_amount[MAX_PRINTABLE_AMOUNT_SIZE]; + * } get_printable_amount_parameters_t; + */ +void swap_handle_get_printable_amount(get_printable_amount_parameters_t *params) +{ + PRINTF("Inside swap_handle_get_printable_amount\n"); + + PRINTF("Amount: %.*H\n", params->amount_length, params->amount); + + explicit_bzero(params->printable_amount, sizeof(params->printable_amount)); + + /// Convert params->amount into uint64_t + u128_t raw_amount = {0}; + if (!swap_str_to_u128((const char *) params->amount, params->amount_length, &raw_amount)) { + PRINTF("Amount is too big\n"); + return; + } + + uint8_t decimals = ALEO_DECIMALS; + char ticker[MAX_TICKER_SIZE] = ALEO_TICKER; + if (params->is_fee || params->coin_configuration == NULL) { + PRINTF("Defaulting to native ALEO amount\n"); + } + else { + if (!swap_parse_config(params->coin_configuration, + params->coin_configuration_length, + ticker, + sizeof(ticker), + &decimals)) { + PRINTF("Fail to parse coin_configuration\n"); + return; + } + } + char formatted_amount[MAX_AMOUNT_SIZE + 1] = {0}; + if (!format_fpu128(formatted_amount, sizeof(formatted_amount), raw_amount, decimals)) { + PRINTF("Fail to format amount\n"); + return; + } + PRINTF("Formatted amount: %s\n", formatted_amount); + snprintf(params->printable_amount, + sizeof(params->printable_amount), + "%.*s %s", + (int) strlen(formatted_amount), + formatted_amount, + ticker); +} diff --git a/src/swap/handle_swap.h b/src/swap/handle_swap.h new file mode 100644 index 00000000..950372a3 --- /dev/null +++ b/src/swap/handle_swap.h @@ -0,0 +1,8 @@ +#pragma once + +#include // uint*_t +#include // bool +#include "types.h" // bool + +/* Check if the Tx to sign have the same parameters as the ones previously validated */ +bool swap_check_validity(const tx_transfer_t *tx_transfer, const uint64_t max_fee); diff --git a/src/swap/handle_swap_sign_transaction.c b/src/swap/handle_swap_sign_transaction.c new file mode 100644 index 00000000..644363e9 --- /dev/null +++ b/src/swap/handle_swap_sign_transaction.c @@ -0,0 +1,181 @@ +#include "swap.h" +#include "swap_error_code_helpers.h" +#include "os.h" +#include "format.h" + +#include "sw.h" +#include "globals.h" +#include "tx_types.h" +#include "handle_swap.h" +#include "tokens.h" + +#include + +typedef struct swap_validated_s { + bool initialized; + u128_t amount; + uint64_t max_fee; + char recipient[ADDRESS_LEN + 1]; + char ticker[MAX_TICKER_SIZE + 1]; + uint8_t decimals; +} swap_validated_t; + +static swap_validated_t G_swap_validated; + +bool swap_copy_transaction_parameters(create_transaction_parameters_t *params) +{ + PRINTF("Inside swap_copy_transaction_parameters\n"); + + if (!params) { + return false; + } + + if (params->destination_address == NULL) { + PRINTF("Destination address expected\n"); + return false; + } + + if (strlen(params->destination_address) != ADDRESS_LEN) { + PRINTF("Destination address wrong length %d - %s\n", + strlen(params->destination_address), + params->destination_address); + return false; + } + + if (params->amount == NULL) { + PRINTF("Amount expected\n"); + return false; + } + + // first copy parameters to stack, and then to global data. + // We need this "trick" as the input data position can overlap with app globals + // and also because we want to memset the whole bss segment as it is not done + // when an app is called as a lib. + // This is necessary as many part of the code expect bss variables to + // initialized at 0. + swap_validated_t swap_validated; + explicit_bzero(&swap_validated, sizeof(swap_validated)); + + memcpy(swap_validated.recipient, params->destination_address, ADDRESS_LEN); + swap_validated.recipient[ADDRESS_LEN] = '\0'; + + PRINTF("Validated recipient: %s\n", swap_validated.recipient); + + // Parse config and save decimals and ticker + // If there is no coin_configuration, consider that we are doing an ALEO swap + if (params->coin_configuration == NULL) { + memcpy(swap_validated.ticker, ALEO_TICKER, sizeof(ALEO_TICKER)); + swap_validated.decimals = ALEO_DECIMALS; + } + else { + if (!swap_parse_config(params->coin_configuration, + params->coin_configuration_length, + swap_validated.ticker, + sizeof(swap_validated.ticker), + &swap_validated.decimals)) { + PRINTF("Fail to parse coin_configuration\n"); + return false; + } + } + PRINTF("Validated ticker: %s, decimals: %d\n", swap_validated.ticker, swap_validated.decimals); + + // Save amount + if (!swap_str_to_u128( + (const char *) params->amount, params->amount_length, &swap_validated.amount)) { + PRINTF("Failed to convert amount to u128_t\n"); + return false; + } + + // Save fee + if (!swap_str_to_u64(params->fee_amount, params->fee_amount_length, &swap_validated.max_fee)) { + PRINTF("Failed to convert fee to uint64_t\n"); + return false; + } + PRINTF("Validated max fee: %.*H\n", sizeof(swap_validated.max_fee), &swap_validated.max_fee); + + swap_validated.initialized = true; + + // Full reset the global variables + os_explicit_zero_BSS_segment(); + + // Commit from stack to global data, params becomes tainted but we won't access it anymore + memcpy(&G_swap_validated, &swap_validated, sizeof(swap_validated)); + + return true; +} + +bool swap_check_validity(const tx_transfer_t *tx_transfer, const uint64_t max_fee) +{ + PRINTF("Inside swap_check_validity\n"); + + if (!tx_transfer) { + return false; + } + + if (!G_swap_validated.initialized) { + PRINTF("Swap structure is not initialized\n"); + send_swap_error_simple(SW_SWAP_FAIL, SWAP_EC_ERROR_GENERIC, SWAP_ERROR_CODE); + // unreachable + os_sched_exit(0); + } + + token_display_info_t *token_info = tx_transfer->token_info; + + if ((strcmp(G_swap_validated.ticker, token_info->ticker) != 0) + || (G_swap_validated.decimals != token_info->decimals)) { + PRINTF("Token info does not match\n"); + PRINTF( + "Validated: %s (decimals: %d)\n", G_swap_validated.ticker, G_swap_validated.decimals); + PRINTF("Received: %s (decimals: %d)\n", token_info->ticker, token_info->decimals); + send_swap_error_simple( + SW_SWAP_FAIL, SWAP_EC_ERROR_WRONG_AMOUNT, SWAP_ERROR_WRONG_TOKEN_INFO); + // unreachable + os_sched_exit(0); + } + else { + PRINTF("Token match \n"); + } + + if ((G_swap_validated.amount.low != tx_transfer->amount.low) + || (G_swap_validated.amount.high != tx_transfer->amount.high)) { + PRINTF( + "Amount does not match, promised low : %lld - high : %lld, received low : %lld - high " + ": %lld\n", + G_swap_validated.amount.low, + G_swap_validated.amount.high, + tx_transfer->amount.low, + tx_transfer->amount.high); + send_swap_error_simple(SW_SWAP_FAIL, SWAP_EC_ERROR_WRONG_AMOUNT, SWAP_ERROR_CODE); + // unreachable + os_sched_exit(0); + } + else { + PRINTF("Amounts match \n"); + } + + if (G_swap_validated.max_fee < max_fee) { + PRINTF("Max fee does not match, promised %lld, received %lld\n", + G_swap_validated.max_fee, + max_fee); + send_swap_error_simple(SW_SWAP_FAIL, SWAP_EC_ERROR_WRONG_FEES, SWAP_ERROR_CODE); + // unreachable + os_sched_exit(0); + } + else { + PRINTF("Max fee match \n"); + } + + if (strcmp(G_swap_validated.recipient, tx_transfer->address_to) != 0) { + PRINTF("Destination does not match\n"); + PRINTF("Validated: %s\n", G_swap_validated.recipient); + PRINTF("Received: %s \n", tx_transfer->address_to); + send_swap_error_simple(SW_SWAP_FAIL, SWAP_EC_ERROR_WRONG_DESTINATION, SWAP_ERROR_CODE); + // unreachable + os_sched_exit(0); + } + else { + PRINTF("Destination is valid\n"); + } + + return true; +} diff --git a/src/ui/nbgl_display_transaction.c b/src/ui/nbgl_display_transaction.c index 6add96bb..39c8c9c8 100644 --- a/src/ui/nbgl_display_transaction.c +++ b/src/ui/nbgl_display_transaction.c @@ -20,6 +20,7 @@ #include // memset #include "os.h" +#include "swap.h" #include "glyphs.h" #include "nbgl_use_case.h" #include "io.h" @@ -35,8 +36,6 @@ #include "menu.h" #include "tokens.h" -#define MAX_AMOUNT_SIZE (50) // 50 chars is comfortable for amount formatting - // Buffer where the transaction amount string is written static char g_amount[MAX_AMOUNT_SIZE + 1 + MAX_TICKER_SIZE]; static char g_amount_fees[MAX_AMOUNT_SIZE + 4]; // Ticker is ALEO for fees @@ -60,20 +59,30 @@ static void review_transaction(bool confirm) G_context.signing_state = SIGNING_STATE_WAIT_FEES; r_list_erase(); #ifndef FUZZ - nbgl_useCaseSpinner("Calculating fees"); + if (!G_called_from_swap) { + nbgl_useCaseSpinner("Calculating fees"); + } #endif // FUZZ } else { account_erase(&G_context.account); r_list_erase(); - nbgl_useCaseReviewStatus(STATUS_TYPE_TRANSACTION_SIGNED, ui_menu_main); +#ifndef FUZZ + if (!G_called_from_swap) { + nbgl_useCaseReviewStatus(STATUS_TYPE_TRANSACTION_SIGNED, ui_menu_main); + } +#endif // FUZZ G_context.signing_state = SIGNING_STATE_WAIT_INTENT; } } else { account_erase(&G_context.account); r_list_erase(); - nbgl_useCaseReviewStatus(STATUS_TYPE_TRANSACTION_REJECTED, ui_menu_main); +#ifndef FUZZ + if (!G_called_from_swap) { + nbgl_useCaseReviewStatus(STATUS_TYPE_TRANSACTION_REJECTED, ui_menu_main); + } +#endif // FUZZ } } @@ -174,6 +183,11 @@ int ui_display_transaction(void) "Sign transaction to send %s?", G_context.tx.transfer.token_info->ticker); + if (G_called_from_swap) { + review_transaction(swap_check_validity(&G_context.tx.transfer, total_fees)); + return 0; + } + #ifdef HAVE_SE_TOUCH nbgl_useCaseReview(TYPE_TRANSACTION, &pairList, diff --git a/tests/application_client/currency_utils.py b/tests/application_client/currency_utils.py new file mode 100644 index 00000000..34fd64ca --- /dev/null +++ b/tests/application_client/currency_utils.py @@ -0,0 +1,2 @@ +# Derivation path used for the Aleo app +ALEO_PATH = "m/44'/683'/0'/0'" diff --git a/tests/swap/README.md b/tests/swap/README.md new file mode 100644 index 00000000..94e51b67 --- /dev/null +++ b/tests/swap/README.md @@ -0,0 +1,89 @@ +### The Swap functional tests setup + +The swap test suite validates the application when it is used by the Exchange application +through the os_lib_call mechanism to perform the [swap feature](https://ledgerhq.github.io/app-exchange/). + +This mode uses dedicated launch code and requires a different Speculos setup. + +These tests are written using: + +- [pytest](https://docs.pytest.org/en/stable/) — Python testing framework +- [Ragger](https://github.com/LedgerHQ/ragger) — Ledger's open-source testing library for simulating device interactions +- The python module [ledger_app_clients.exchange](https://ledgerhq.github.io/app-exchange/), + the helper module to easily emulate the SWAP context. + +Directory structure brief overview: + +```text +swap/ +|── cal_helper.py # A fake CAL configuration for the ALEO currency +├── conftest.py # Pytest fixtures and device setup +├── test_aleo.py # Functional test cases +├── helper_tool_build_dependencies.py # A helper script to pull Exchange and Ethereum applications (needed for Speculos to emulate a swap) +├── helper_tool_clone_dependencies.py # A helper script to compile pulled Exchange and Ethereum applications (run after helper_tool_build_dependencies.py INSIDE the Docker) +├── snapshots/ # Ragger UI snapshots +├── snapshots-tmp/ # Temporary snapshot diffs (not tracked in git) +├── requirements.txt # Python dependencies +``` + +### Compile your application + +Build your application in the **Ledger docker** environment. + +### Compile the Exchange and Ethereum applications + +First, install helper python dependencies in your **native** (host) environment + +```sh +pip install -U GitPython +``` + +Then, execute the clone script in your **native** (host) environment + +```sh +python helper_tool_clone_dependencies.py +``` + +Then, execute the build script in the **Ledger docker** environment. +You can use the following command when located in the `tests/swap` directory. + +```sh +docker run --user "$(id -u)":"$(id -g)" --rm -ti -v "$(realpath .):/app" "ghcr.io/ledgerhq/ledger-app-builder/ledger-app-dev-tools:latest" python3 helper_tool_build_dependencies.py +``` + +## Running a first Exchange test + +If you are on Linux or WSL, you can run the tests in your **native** (host) environment. + +If you are on MAC you need to run the tests in the **Ledger docker** environment. + +### Install python dependencies + +Install python dependencies + +```sh +pip install -r tests/swap/requirements.txt --break-system-packages +``` + +### Run a simple test + +To see all available tests: + +```sh +pytest -v --tb=short tests/swap/ --device all --collect-only +``` + +To list only SWAP tests for Stax: + +```sh +pytest -v --tb=short tests/swap/ --device stax --collect-only -k swap +``` + +To run a specific test for Stax: + +```sh +pytest -v --tb=short tests/swap/ --device stax -k 'swap_ui_only' -s +``` + +Running a single test will be useful later for test driven development, +don't hesitate to come back to this command and adapt it. diff --git a/tests/swap/__init__.py b/tests/swap/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/tests/swap/_helper_tool.py b/tests/swap/_helper_tool.py new file mode 100644 index 00000000..cfb69fd6 --- /dev/null +++ b/tests/swap/_helper_tool.py @@ -0,0 +1,108 @@ +import os +import subprocess +from pathlib import Path + +base = Path(__file__).parent.resolve() / ".test_dependencies" + +APP_EXCHANGE_URL = "git@github.com:LedgerHQ/app-exchange.git" +APP_EXCHANGE_DIR = base / "main/app-exchange/" +APP_EXCHANGE_CLONE_DIR = base / "app-exchange/" + +APP_ETHEREUM_URL = "git@github.com:LedgerHQ/app-ethereum.git" +APP_ETHEREUM_DIR = base / "libraries/app-ethereum/" +APP_ETHEREUM_CLONE_DIR = base / "app-ethereum/" + +DEVICES_CONF = { + "nanos+": { + "sdk": "NANOSP_SDK", + "bin_path": "build/nanos2/bin/", + }, + "nanox": { + "sdk": "NANOX_SDK", + "bin_path": "build/nanox/bin/", + }, + "stax": { + "sdk": "STAX_SDK", + "bin_path": "build/stax/bin/", + }, + "flex": { + "sdk": "FLEX_SDK", + "bin_path": "build/flex/bin/", + }, + "apex_p": { + "sdk": "APEX_P_SDK", + "bin_path": "build/apex_p/bin/", + }, +} + +def run_cmd(cmd: str, + cwd: Path = Path('.'), + print_output: bool = False, + no_throw: bool = False) -> str: + + print(f"[run_cmd] Running: '{cmd}'' inside '{cwd}'") + + ret = subprocess.run(cmd, + shell=True, + stdout=subprocess.PIPE, + stderr=subprocess.STDOUT, + universal_newlines=True, + cwd=cwd, + check=False) + if no_throw is False and ret.returncode: + print(f"[run_cmd] Error {ret.returncode} raised while running cmd: {cmd}") + print("[run_cmd] Output was:") + print(ret.stdout) + raise ValueError() + + if print_output: + print(f"[run_cmd] Output:\n{ret.stdout}") + + return ret.stdout.strip() + +def clone_or_pull(repo_url: str, clone_dir: str): + # Only needed when cloning / pulling, not when building. + # By putting the import here we allow the script to be imported inside the docker image + from git import Repo + git_dir = os.path.join(clone_dir, ".git") + if not os.path.exists(git_dir): + print(f"Cloning into {clone_dir}") + run_cmd(f"rm -rf {clone_dir}") + Repo.clone_from(repo_url, clone_dir, recursive=True) + else: + print(f"Pulling latest changes in {clone_dir}") + repo = Repo(clone_dir) + origin = repo.remotes.origin + origin.fetch() + repo.git.reset('--hard', 'origin/develop') + + # Update submodules + print(f"Updating submodules in {clone_dir}") + run_cmd("git submodule sync", cwd=Path(clone_dir)) + run_cmd("git submodule update --init --recursive", cwd=Path(clone_dir)) + +def build_app(clone_dir: str, flags: str): + cmd = "make clean" + run_cmd(cmd, cwd=Path(clone_dir)) + for d in DEVICES_CONF.values(): + sdk = d["sdk"] + cmd = f"make -j BOLOS_SDK=${sdk} {flags}" + run_cmd(cmd, cwd=Path(clone_dir)) + +def copy_build_output(clone_dir: str, dest_dir: str): + run_cmd(f"mkdir -p {dest_dir}") + run_cmd(f"cp -rT {clone_dir}/build {dest_dir}/build") + +# ==== Build app-exchange ==== +def clone_and_pull_exchange(): + clone_or_pull(APP_EXCHANGE_URL, APP_EXCHANGE_CLONE_DIR) +def build_and_copy_exchange(): + build_app(APP_EXCHANGE_CLONE_DIR, flags="TESTING=1 TEST_PUBLIC_KEY=1 TRUSTED_NAME_TEST_KEY=1 DEBUG=1") + copy_build_output(APP_EXCHANGE_CLONE_DIR, APP_EXCHANGE_DIR) + +# ==== Build app-ethereum ==== +def clone_and_pull_ethereum(): + clone_or_pull(APP_ETHEREUM_URL, APP_ETHEREUM_CLONE_DIR) +def build_and_copy_ethereum(): + build_app(APP_ETHEREUM_CLONE_DIR, flags="COIN=ethereum CHAIN=ethereum CAL_TEST_KEY=1 DOMAIN_NAME_TEST_KEY=1 SET_PLUGIN_TEST_KEY=1 NFT_TEST_KEY=1 TRUSTED_NAME_TEST_KEY=1") + copy_build_output(APP_ETHEREUM_CLONE_DIR, APP_ETHEREUM_DIR) diff --git a/tests/swap/cal_helper.py b/tests/swap/cal_helper.py new file mode 100644 index 00000000..9e21a4d5 --- /dev/null +++ b/tests/swap/cal_helper.py @@ -0,0 +1,36 @@ +from ledger_app_clients.exchange.cal_helper import CurrencyConfiguration +from ragger.bip import pack_derivation_path +from ragger.utils import create_currency_config +from application_client.currency_utils import ALEO_PATH + +# Define a configuration for each currency used in our tests: native coins and tokens + +# ALEO token currency definition +ALEO_CONF = create_currency_config("ALEO", "Aleo", sub_coin_config=None) +# Serialized derivation path for the Aleo app +ALEO_PACKED_DERIVATION_PATH = pack_derivation_path(ALEO_PATH) +# Coin configuration mock as stored in CAL for the SWAP feature +ALEO_CURRENCY_CONFIGURATION = CurrencyConfiguration(ticker="ALEO", + conf=ALEO_CONF, + packed_derivation_path=ALEO_PACKED_DERIVATION_PATH) + +# ALEO USAD token configuration - USAD with 6 decimals +ALEO_USAD_CONF = create_currency_config("USAD", "Aleo", sub_coin_config=("USAD", 6)) +ALEO_USAD_PACKED_DERIVATION_PATH = ALEO_PACKED_DERIVATION_PATH +ALEO_USAD_CURRENCY_CONFIGURATION = CurrencyConfiguration(ticker="USAD", + conf=ALEO_USAD_CONF, + packed_derivation_path=ALEO_USAD_PACKED_DERIVATION_PATH) + +# ALEO USDCx token configuration - USDCx with 6 decimals +ALEO_USDCX_CONF = create_currency_config("USDCx", "Aleo", sub_coin_config=("USDCx", 6)) +ALEO_USDCX_PACKED_DERIVATION_PATH = ALEO_PACKED_DERIVATION_PATH +ALEO_USDCX_CURRENCY_CONFIGURATION = CurrencyConfiguration(ticker="USDCx", + conf=ALEO_USDCX_CONF, + packed_derivation_path=ALEO_USDCX_PACKED_DERIVATION_PATH) + +# ALEO FAKE token configuration - FAKE with 6 decimals +ALEO_FAKE_CONF = create_currency_config("FAKE", "Aleo", sub_coin_config=("FAKE", 6)) +ALEO_FAKE_PACKED_DERIVATION_PATH = ALEO_PACKED_DERIVATION_PATH +ALEO_FAKE_CURRENCY_CONFIGURATION = CurrencyConfiguration(ticker="FAKE", + conf=ALEO_FAKE_CONF, + packed_derivation_path=ALEO_FAKE_PACKED_DERIVATION_PATH) diff --git a/tests/swap/conftest.py b/tests/swap/conftest.py new file mode 100644 index 00000000..66352e3e --- /dev/null +++ b/tests/swap/conftest.py @@ -0,0 +1,47 @@ +from pathlib import Path +import pytest + +from ragger.conftest import configuration + +from ledger_app_clients.exchange.navigation_helper import ExchangeNavigationHelper + +########################### +### CONFIGURATION START ### +########################### + +# You can configure optional parameters by overriding the value of ragger.configuration.OPTIONAL_CONFIGURATION +# Please refer to ragger/conftest/configuration.py for their descriptions and accepted values + +configuration.OPTIONAL.BACKEND_SCOPE = "class" +configuration.OPTIONAL.MAIN_APP_DIR = "tests/swap/.test_dependencies/main" +configuration.OPTIONAL.SIDELOADED_APPS_DIR = "tests/swap/.test_dependencies/libraries/" + +######################### +### CONFIGURATION END ### +######################### + +# Pull all features from the base ragger conftest using the overridden configuration +pytest_plugins = ("ragger.conftest.base_conftest", ) + +@pytest.fixture(scope="session") +def snapshots_path(): + """ + This fixture provides the default path for screenshots. + It is used in the ExchangeNavigationHelper. + """ + # Use the current file's directory as the base path + return Path(__file__).parent.resolve() + +@pytest.fixture(scope="function") +def exchange_navigation_helper(backend, navigator, snapshots_path, test_name): + return ExchangeNavigationHelper(backend=backend, navigator=navigator, snapshots_path=snapshots_path, test_name=test_name) + +# Pytest is trying to do "smart" stuff and reorders tests using parametrize by alphabetical order of parameter +# This breaks the backend scope optim. We disable this +def pytest_collection_modifyitems(config, items): + def param_part(item): + # Sort by node id as usual + return item.nodeid + + # re-order the items using the param_part function as key + items[:] = sorted(items, key=param_part) diff --git a/tests/swap/helper_tool_build_dependencies.py b/tests/swap/helper_tool_build_dependencies.py new file mode 100644 index 00000000..fa063ad0 --- /dev/null +++ b/tests/swap/helper_tool_build_dependencies.py @@ -0,0 +1,9 @@ +# Run this python script inside the Ledger docker image + +# This script will build the Ethereum and Exchange application that are needed for the Swap test setup +# Run the helper script helper_tool_clone_dependencies.py first to pull them in the correct location + +from _helper_tool import build_and_copy_exchange, build_and_copy_ethereum + +build_and_copy_exchange() +build_and_copy_ethereum() diff --git a/tests/swap/helper_tool_clone_dependencies.py b/tests/swap/helper_tool_clone_dependencies.py new file mode 100644 index 00000000..5e4210bb --- /dev/null +++ b/tests/swap/helper_tool_clone_dependencies.py @@ -0,0 +1,7 @@ +# This script will clone the Ethereum and Exchange application that are needed for the Swap test setup +# Run the helper script helper_tool_build_dependencies.py after to build and dispatch them in the correct location + +from _helper_tool import clone_and_pull_exchange, clone_and_pull_ethereum + +clone_and_pull_exchange() +clone_and_pull_ethereum() diff --git a/tests/swap/requirements.txt b/tests/swap/requirements.txt new file mode 100644 index 00000000..f1dc0a2f --- /dev/null +++ b/tests/swap/requirements.txt @@ -0,0 +1,5 @@ +ragger[tests,speculos] >= 1.36.1 +protobuf +ledger_app_clients.ethereum +ledger_app_clients.exchange >= 0.0.4 +GitPython diff --git a/tests/swap/setup.cfg b/tests/swap/setup.cfg new file mode 100644 index 00000000..f1b54e36 --- /dev/null +++ b/tests/swap/setup.cfg @@ -0,0 +1,2 @@ +[tool:pytest] +addopts = --strict-markers diff --git a/tests/swap/snapshots/apex_p/test_aleo_fund_valid_1/post_sign/00000.png b/tests/swap/snapshots/apex_p/test_aleo_fund_valid_1/post_sign/00000.png new file mode 100644 index 00000000..4aba0a2b Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_fund_valid_1/post_sign/00000.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_fund_valid_1/post_sign/00001.png b/tests/swap/snapshots/apex_p/test_aleo_fund_valid_1/post_sign/00001.png new file mode 100644 index 00000000..8ade48bc Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_fund_valid_1/post_sign/00001.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_fund_valid_1/review/00000.png b/tests/swap/snapshots/apex_p/test_aleo_fund_valid_1/review/00000.png new file mode 100644 index 00000000..904bd020 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_fund_valid_1/review/00000.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_fund_valid_1/review/00001.png b/tests/swap/snapshots/apex_p/test_aleo_fund_valid_1/review/00001.png new file mode 100644 index 00000000..d7e133e9 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_fund_valid_1/review/00001.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_fund_valid_1/review/00002.png b/tests/swap/snapshots/apex_p/test_aleo_fund_valid_1/review/00002.png new file mode 100644 index 00000000..c75f08b6 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_fund_valid_1/review/00002.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_fund_valid_2/post_sign/00000.png b/tests/swap/snapshots/apex_p/test_aleo_fund_valid_2/post_sign/00000.png new file mode 100644 index 00000000..4aba0a2b Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_fund_valid_2/post_sign/00000.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_fund_valid_2/post_sign/00001.png b/tests/swap/snapshots/apex_p/test_aleo_fund_valid_2/post_sign/00001.png new file mode 100644 index 00000000..8ade48bc Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_fund_valid_2/post_sign/00001.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_fund_valid_2/review/00000.png b/tests/swap/snapshots/apex_p/test_aleo_fund_valid_2/review/00000.png new file mode 100644 index 00000000..904bd020 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_fund_valid_2/review/00000.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_fund_valid_2/review/00001.png b/tests/swap/snapshots/apex_p/test_aleo_fund_valid_2/review/00001.png new file mode 100644 index 00000000..51a21401 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_fund_valid_2/review/00001.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_fund_valid_2/review/00002.png b/tests/swap/snapshots/apex_p/test_aleo_fund_valid_2/review/00002.png new file mode 100644 index 00000000..c75f08b6 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_fund_valid_2/review/00002.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_fund_wrong_amount/post_sign/00000.png b/tests/swap/snapshots/apex_p/test_aleo_fund_wrong_amount/post_sign/00000.png new file mode 100644 index 00000000..ac597b65 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_fund_wrong_amount/post_sign/00000.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_fund_wrong_amount/post_sign/00001.png b/tests/swap/snapshots/apex_p/test_aleo_fund_wrong_amount/post_sign/00001.png new file mode 100644 index 00000000..8ade48bc Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_fund_wrong_amount/post_sign/00001.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_fund_wrong_amount/review/00000.png b/tests/swap/snapshots/apex_p/test_aleo_fund_wrong_amount/review/00000.png new file mode 100644 index 00000000..904bd020 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_fund_wrong_amount/review/00000.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_fund_wrong_amount/review/00001.png b/tests/swap/snapshots/apex_p/test_aleo_fund_wrong_amount/review/00001.png new file mode 100644 index 00000000..d7e133e9 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_fund_wrong_amount/review/00001.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_fund_wrong_amount/review/00002.png b/tests/swap/snapshots/apex_p/test_aleo_fund_wrong_amount/review/00002.png new file mode 100644 index 00000000..c75f08b6 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_fund_wrong_amount/review/00002.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_fund_wrong_destination/post_sign/00000.png b/tests/swap/snapshots/apex_p/test_aleo_fund_wrong_destination/post_sign/00000.png new file mode 100644 index 00000000..ac597b65 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_fund_wrong_destination/post_sign/00000.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_fund_wrong_destination/post_sign/00001.png b/tests/swap/snapshots/apex_p/test_aleo_fund_wrong_destination/post_sign/00001.png new file mode 100644 index 00000000..8ade48bc Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_fund_wrong_destination/post_sign/00001.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_fund_wrong_destination/review/00000.png b/tests/swap/snapshots/apex_p/test_aleo_fund_wrong_destination/review/00000.png new file mode 100644 index 00000000..904bd020 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_fund_wrong_destination/review/00000.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_fund_wrong_destination/review/00001.png b/tests/swap/snapshots/apex_p/test_aleo_fund_wrong_destination/review/00001.png new file mode 100644 index 00000000..d7e133e9 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_fund_wrong_destination/review/00001.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_fund_wrong_destination/review/00002.png b/tests/swap/snapshots/apex_p/test_aleo_fund_wrong_destination/review/00002.png new file mode 100644 index 00000000..c75f08b6 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_fund_wrong_destination/review/00002.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_sell_valid_1/post_sign/00000.png b/tests/swap/snapshots/apex_p/test_aleo_sell_valid_1/post_sign/00000.png new file mode 100644 index 00000000..4aba0a2b Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_sell_valid_1/post_sign/00000.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_sell_valid_1/post_sign/00001.png b/tests/swap/snapshots/apex_p/test_aleo_sell_valid_1/post_sign/00001.png new file mode 100644 index 00000000..8ade48bc Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_sell_valid_1/post_sign/00001.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_sell_valid_1/review/00000.png b/tests/swap/snapshots/apex_p/test_aleo_sell_valid_1/review/00000.png new file mode 100644 index 00000000..fc259352 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_sell_valid_1/review/00000.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_sell_valid_1/review/00001.png b/tests/swap/snapshots/apex_p/test_aleo_sell_valid_1/review/00001.png new file mode 100644 index 00000000..918820b9 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_sell_valid_1/review/00001.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_sell_valid_1/review/00002.png b/tests/swap/snapshots/apex_p/test_aleo_sell_valid_1/review/00002.png new file mode 100644 index 00000000..ab544fa2 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_sell_valid_1/review/00002.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_sell_valid_1/review/00003.png b/tests/swap/snapshots/apex_p/test_aleo_sell_valid_1/review/00003.png new file mode 100644 index 00000000..0166349e Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_sell_valid_1/review/00003.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_sell_valid_2/post_sign/00000.png b/tests/swap/snapshots/apex_p/test_aleo_sell_valid_2/post_sign/00000.png new file mode 100644 index 00000000..4aba0a2b Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_sell_valid_2/post_sign/00000.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_sell_valid_2/post_sign/00001.png b/tests/swap/snapshots/apex_p/test_aleo_sell_valid_2/post_sign/00001.png new file mode 100644 index 00000000..8ade48bc Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_sell_valid_2/post_sign/00001.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_sell_valid_2/review/00000.png b/tests/swap/snapshots/apex_p/test_aleo_sell_valid_2/review/00000.png new file mode 100644 index 00000000..fc259352 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_sell_valid_2/review/00000.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_sell_valid_2/review/00001.png b/tests/swap/snapshots/apex_p/test_aleo_sell_valid_2/review/00001.png new file mode 100644 index 00000000..9a27f95a Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_sell_valid_2/review/00001.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_sell_valid_2/review/00002.png b/tests/swap/snapshots/apex_p/test_aleo_sell_valid_2/review/00002.png new file mode 100644 index 00000000..258f4055 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_sell_valid_2/review/00002.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_sell_valid_2/review/00003.png b/tests/swap/snapshots/apex_p/test_aleo_sell_valid_2/review/00003.png new file mode 100644 index 00000000..0166349e Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_sell_valid_2/review/00003.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_sell_wrong_amount/post_sign/00000.png b/tests/swap/snapshots/apex_p/test_aleo_sell_wrong_amount/post_sign/00000.png new file mode 100644 index 00000000..ac597b65 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_sell_wrong_amount/post_sign/00000.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_sell_wrong_amount/post_sign/00001.png b/tests/swap/snapshots/apex_p/test_aleo_sell_wrong_amount/post_sign/00001.png new file mode 100644 index 00000000..8ade48bc Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_sell_wrong_amount/post_sign/00001.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_sell_wrong_amount/review/00000.png b/tests/swap/snapshots/apex_p/test_aleo_sell_wrong_amount/review/00000.png new file mode 100644 index 00000000..fc259352 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_sell_wrong_amount/review/00000.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_sell_wrong_amount/review/00001.png b/tests/swap/snapshots/apex_p/test_aleo_sell_wrong_amount/review/00001.png new file mode 100644 index 00000000..918820b9 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_sell_wrong_amount/review/00001.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_sell_wrong_amount/review/00002.png b/tests/swap/snapshots/apex_p/test_aleo_sell_wrong_amount/review/00002.png new file mode 100644 index 00000000..ab544fa2 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_sell_wrong_amount/review/00002.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_sell_wrong_amount/review/00003.png b/tests/swap/snapshots/apex_p/test_aleo_sell_wrong_amount/review/00003.png new file mode 100644 index 00000000..0166349e Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_sell_wrong_amount/review/00003.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_sell_wrong_destination/post_sign/00000.png b/tests/swap/snapshots/apex_p/test_aleo_sell_wrong_destination/post_sign/00000.png new file mode 100644 index 00000000..ac597b65 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_sell_wrong_destination/post_sign/00000.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_sell_wrong_destination/post_sign/00001.png b/tests/swap/snapshots/apex_p/test_aleo_sell_wrong_destination/post_sign/00001.png new file mode 100644 index 00000000..8ade48bc Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_sell_wrong_destination/post_sign/00001.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_sell_wrong_destination/review/00000.png b/tests/swap/snapshots/apex_p/test_aleo_sell_wrong_destination/review/00000.png new file mode 100644 index 00000000..fc259352 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_sell_wrong_destination/review/00000.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_sell_wrong_destination/review/00001.png b/tests/swap/snapshots/apex_p/test_aleo_sell_wrong_destination/review/00001.png new file mode 100644 index 00000000..918820b9 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_sell_wrong_destination/review/00001.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_sell_wrong_destination/review/00002.png b/tests/swap/snapshots/apex_p/test_aleo_sell_wrong_destination/review/00002.png new file mode 100644 index 00000000..ab544fa2 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_sell_wrong_destination/review/00002.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_sell_wrong_destination/review/00003.png b/tests/swap/snapshots/apex_p/test_aleo_sell_wrong_destination/review/00003.png new file mode 100644 index 00000000..0166349e Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_sell_wrong_destination/review/00003.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_swap_fake_swap_valid_1/post_sign/00000.png b/tests/swap/snapshots/apex_p/test_aleo_swap_fake_swap_valid_1/post_sign/00000.png new file mode 100644 index 00000000..ac597b65 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_swap_fake_swap_valid_1/post_sign/00000.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_swap_fake_swap_valid_1/post_sign/00001.png b/tests/swap/snapshots/apex_p/test_aleo_swap_fake_swap_valid_1/post_sign/00001.png new file mode 100644 index 00000000..8ade48bc Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_swap_fake_swap_valid_1/post_sign/00001.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_swap_fake_swap_valid_1/review/00000.png b/tests/swap/snapshots/apex_p/test_aleo_swap_fake_swap_valid_1/review/00000.png new file mode 100644 index 00000000..8a850654 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_swap_fake_swap_valid_1/review/00000.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_swap_fake_swap_valid_1/review/00001.png b/tests/swap/snapshots/apex_p/test_aleo_swap_fake_swap_valid_1/review/00001.png new file mode 100644 index 00000000..59657e33 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_swap_fake_swap_valid_1/review/00001.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_swap_fake_swap_valid_1/review/00002.png b/tests/swap/snapshots/apex_p/test_aleo_swap_fake_swap_valid_1/review/00002.png new file mode 100644 index 00000000..6bf39463 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_swap_fake_swap_valid_1/review/00002.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_swap_ui_only/review/00000.png b/tests/swap/snapshots/apex_p/test_aleo_swap_ui_only/review/00000.png new file mode 100644 index 00000000..01ac9c03 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_swap_ui_only/review/00000.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_swap_ui_only/review/00001.png b/tests/swap/snapshots/apex_p/test_aleo_swap_ui_only/review/00001.png new file mode 100644 index 00000000..b0df7712 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_swap_ui_only/review/00001.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_swap_ui_only/review/00002.png b/tests/swap/snapshots/apex_p/test_aleo_swap_ui_only/review/00002.png new file mode 100644 index 00000000..ab567556 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_swap_ui_only/review/00002.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_swap_usad_swap_valid_1/post_sign/00000.png b/tests/swap/snapshots/apex_p/test_aleo_swap_usad_swap_valid_1/post_sign/00000.png new file mode 100644 index 00000000..4aba0a2b Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_swap_usad_swap_valid_1/post_sign/00000.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_swap_usad_swap_valid_1/post_sign/00001.png b/tests/swap/snapshots/apex_p/test_aleo_swap_usad_swap_valid_1/post_sign/00001.png new file mode 100644 index 00000000..8ade48bc Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_swap_usad_swap_valid_1/post_sign/00001.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_swap_usad_swap_valid_1/review/00000.png b/tests/swap/snapshots/apex_p/test_aleo_swap_usad_swap_valid_1/review/00000.png new file mode 100644 index 00000000..8a850654 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_swap_usad_swap_valid_1/review/00000.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_swap_usad_swap_valid_1/review/00001.png b/tests/swap/snapshots/apex_p/test_aleo_swap_usad_swap_valid_1/review/00001.png new file mode 100644 index 00000000..59657e33 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_swap_usad_swap_valid_1/review/00001.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_swap_usad_swap_valid_1/review/00002.png b/tests/swap/snapshots/apex_p/test_aleo_swap_usad_swap_valid_1/review/00002.png new file mode 100644 index 00000000..6bf39463 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_swap_usad_swap_valid_1/review/00002.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_swap_usad_zero_fee_swap_valid_1/post_sign/00000.png b/tests/swap/snapshots/apex_p/test_aleo_swap_usad_zero_fee_swap_valid_1/post_sign/00000.png new file mode 100644 index 00000000..4aba0a2b Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_swap_usad_zero_fee_swap_valid_1/post_sign/00000.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_swap_usad_zero_fee_swap_valid_1/post_sign/00001.png b/tests/swap/snapshots/apex_p/test_aleo_swap_usad_zero_fee_swap_valid_1/post_sign/00001.png new file mode 100644 index 00000000..8ade48bc Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_swap_usad_zero_fee_swap_valid_1/post_sign/00001.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00000.png b/tests/swap/snapshots/apex_p/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00000.png new file mode 100644 index 00000000..8a850654 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00000.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00001.png b/tests/swap/snapshots/apex_p/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00001.png new file mode 100644 index 00000000..08d4699c Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00001.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00002.png b/tests/swap/snapshots/apex_p/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00002.png new file mode 100644 index 00000000..6bf39463 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00002.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_swap_valid_1/post_sign/00000.png b/tests/swap/snapshots/apex_p/test_aleo_swap_valid_1/post_sign/00000.png new file mode 100644 index 00000000..4aba0a2b Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_swap_valid_1/post_sign/00000.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_swap_valid_1/post_sign/00001.png b/tests/swap/snapshots/apex_p/test_aleo_swap_valid_1/post_sign/00001.png new file mode 100644 index 00000000..8ade48bc Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_swap_valid_1/post_sign/00001.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_swap_valid_1/review/00000.png b/tests/swap/snapshots/apex_p/test_aleo_swap_valid_1/review/00000.png new file mode 100644 index 00000000..01ac9c03 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_swap_valid_1/review/00000.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_swap_valid_1/review/00001.png b/tests/swap/snapshots/apex_p/test_aleo_swap_valid_1/review/00001.png new file mode 100644 index 00000000..b0df7712 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_swap_valid_1/review/00001.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_swap_valid_1/review/00002.png b/tests/swap/snapshots/apex_p/test_aleo_swap_valid_1/review/00002.png new file mode 100644 index 00000000..ab567556 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_swap_valid_1/review/00002.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_swap_valid_2/post_sign/00000.png b/tests/swap/snapshots/apex_p/test_aleo_swap_valid_2/post_sign/00000.png new file mode 100644 index 00000000..4aba0a2b Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_swap_valid_2/post_sign/00000.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_swap_valid_2/post_sign/00001.png b/tests/swap/snapshots/apex_p/test_aleo_swap_valid_2/post_sign/00001.png new file mode 100644 index 00000000..8ade48bc Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_swap_valid_2/post_sign/00001.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_swap_valid_2/review/00000.png b/tests/swap/snapshots/apex_p/test_aleo_swap_valid_2/review/00000.png new file mode 100644 index 00000000..01ac9c03 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_swap_valid_2/review/00000.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_swap_valid_2/review/00001.png b/tests/swap/snapshots/apex_p/test_aleo_swap_valid_2/review/00001.png new file mode 100644 index 00000000..714a5448 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_swap_valid_2/review/00001.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_swap_valid_2/review/00002.png b/tests/swap/snapshots/apex_p/test_aleo_swap_valid_2/review/00002.png new file mode 100644 index 00000000..ab567556 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_swap_valid_2/review/00002.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_swap_wrong_amount/post_sign/00000.png b/tests/swap/snapshots/apex_p/test_aleo_swap_wrong_amount/post_sign/00000.png new file mode 100644 index 00000000..ac597b65 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_swap_wrong_amount/post_sign/00000.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_swap_wrong_amount/post_sign/00001.png b/tests/swap/snapshots/apex_p/test_aleo_swap_wrong_amount/post_sign/00001.png new file mode 100644 index 00000000..8ade48bc Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_swap_wrong_amount/post_sign/00001.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_swap_wrong_amount/review/00000.png b/tests/swap/snapshots/apex_p/test_aleo_swap_wrong_amount/review/00000.png new file mode 100644 index 00000000..01ac9c03 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_swap_wrong_amount/review/00000.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_swap_wrong_amount/review/00001.png b/tests/swap/snapshots/apex_p/test_aleo_swap_wrong_amount/review/00001.png new file mode 100644 index 00000000..b0df7712 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_swap_wrong_amount/review/00001.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_swap_wrong_amount/review/00002.png b/tests/swap/snapshots/apex_p/test_aleo_swap_wrong_amount/review/00002.png new file mode 100644 index 00000000..ab567556 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_swap_wrong_amount/review/00002.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_swap_wrong_destination/post_sign/00000.png b/tests/swap/snapshots/apex_p/test_aleo_swap_wrong_destination/post_sign/00000.png new file mode 100644 index 00000000..ac597b65 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_swap_wrong_destination/post_sign/00000.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_swap_wrong_destination/post_sign/00001.png b/tests/swap/snapshots/apex_p/test_aleo_swap_wrong_destination/post_sign/00001.png new file mode 100644 index 00000000..8ade48bc Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_swap_wrong_destination/post_sign/00001.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_swap_wrong_destination/review/00000.png b/tests/swap/snapshots/apex_p/test_aleo_swap_wrong_destination/review/00000.png new file mode 100644 index 00000000..01ac9c03 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_swap_wrong_destination/review/00000.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_swap_wrong_destination/review/00001.png b/tests/swap/snapshots/apex_p/test_aleo_swap_wrong_destination/review/00001.png new file mode 100644 index 00000000..b0df7712 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_swap_wrong_destination/review/00001.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_swap_wrong_destination/review/00002.png b/tests/swap/snapshots/apex_p/test_aleo_swap_wrong_destination/review/00002.png new file mode 100644 index 00000000..ab567556 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_swap_wrong_destination/review/00002.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_swap_zero_fee_swap_valid_1/post_sign/00000.png b/tests/swap/snapshots/apex_p/test_aleo_swap_zero_fee_swap_valid_1/post_sign/00000.png new file mode 100644 index 00000000..4aba0a2b Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_swap_zero_fee_swap_valid_1/post_sign/00000.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_swap_zero_fee_swap_valid_1/post_sign/00001.png b/tests/swap/snapshots/apex_p/test_aleo_swap_zero_fee_swap_valid_1/post_sign/00001.png new file mode 100644 index 00000000..8ade48bc Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_swap_zero_fee_swap_valid_1/post_sign/00001.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_swap_zero_fee_swap_valid_1/review/00000.png b/tests/swap/snapshots/apex_p/test_aleo_swap_zero_fee_swap_valid_1/review/00000.png new file mode 100644 index 00000000..01ac9c03 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_swap_zero_fee_swap_valid_1/review/00000.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_swap_zero_fee_swap_valid_1/review/00001.png b/tests/swap/snapshots/apex_p/test_aleo_swap_zero_fee_swap_valid_1/review/00001.png new file mode 100644 index 00000000..9bfb0d93 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_swap_zero_fee_swap_valid_1/review/00001.png differ diff --git a/tests/swap/snapshots/apex_p/test_aleo_swap_zero_fee_swap_valid_1/review/00002.png b/tests/swap/snapshots/apex_p/test_aleo_swap_zero_fee_swap_valid_1/review/00002.png new file mode 100644 index 00000000..ab567556 Binary files /dev/null and b/tests/swap/snapshots/apex_p/test_aleo_swap_zero_fee_swap_valid_1/review/00002.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_fund_valid_1/post_sign/00000.png b/tests/swap/snapshots/flex/test_aleo_fund_valid_1/post_sign/00000.png new file mode 100644 index 00000000..435aa78b Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_fund_valid_1/post_sign/00000.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_fund_valid_1/post_sign/00001.png b/tests/swap/snapshots/flex/test_aleo_fund_valid_1/post_sign/00001.png new file mode 100644 index 00000000..261cb973 Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_fund_valid_1/post_sign/00001.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_fund_valid_1/review/00000.png b/tests/swap/snapshots/flex/test_aleo_fund_valid_1/review/00000.png new file mode 100644 index 00000000..85f8a36f Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_fund_valid_1/review/00000.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_fund_valid_1/review/00001.png b/tests/swap/snapshots/flex/test_aleo_fund_valid_1/review/00001.png new file mode 100644 index 00000000..f355d15f Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_fund_valid_1/review/00001.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_fund_valid_1/review/00002.png b/tests/swap/snapshots/flex/test_aleo_fund_valid_1/review/00002.png new file mode 100644 index 00000000..c139dcbb Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_fund_valid_1/review/00002.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_fund_valid_2/post_sign/00000.png b/tests/swap/snapshots/flex/test_aleo_fund_valid_2/post_sign/00000.png new file mode 100644 index 00000000..435aa78b Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_fund_valid_2/post_sign/00000.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_fund_valid_2/post_sign/00001.png b/tests/swap/snapshots/flex/test_aleo_fund_valid_2/post_sign/00001.png new file mode 100644 index 00000000..261cb973 Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_fund_valid_2/post_sign/00001.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_fund_valid_2/review/00000.png b/tests/swap/snapshots/flex/test_aleo_fund_valid_2/review/00000.png new file mode 100644 index 00000000..85f8a36f Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_fund_valid_2/review/00000.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_fund_valid_2/review/00001.png b/tests/swap/snapshots/flex/test_aleo_fund_valid_2/review/00001.png new file mode 100644 index 00000000..04cd1095 Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_fund_valid_2/review/00001.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_fund_valid_2/review/00002.png b/tests/swap/snapshots/flex/test_aleo_fund_valid_2/review/00002.png new file mode 100644 index 00000000..c139dcbb Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_fund_valid_2/review/00002.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_fund_wrong_amount/post_sign/00000.png b/tests/swap/snapshots/flex/test_aleo_fund_wrong_amount/post_sign/00000.png new file mode 100644 index 00000000..603f9f94 Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_fund_wrong_amount/post_sign/00000.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_fund_wrong_amount/post_sign/00001.png b/tests/swap/snapshots/flex/test_aleo_fund_wrong_amount/post_sign/00001.png new file mode 100644 index 00000000..261cb973 Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_fund_wrong_amount/post_sign/00001.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_fund_wrong_amount/review/00000.png b/tests/swap/snapshots/flex/test_aleo_fund_wrong_amount/review/00000.png new file mode 100644 index 00000000..85f8a36f Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_fund_wrong_amount/review/00000.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_fund_wrong_amount/review/00001.png b/tests/swap/snapshots/flex/test_aleo_fund_wrong_amount/review/00001.png new file mode 100644 index 00000000..f355d15f Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_fund_wrong_amount/review/00001.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_fund_wrong_amount/review/00002.png b/tests/swap/snapshots/flex/test_aleo_fund_wrong_amount/review/00002.png new file mode 100644 index 00000000..c139dcbb Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_fund_wrong_amount/review/00002.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_fund_wrong_destination/post_sign/00000.png b/tests/swap/snapshots/flex/test_aleo_fund_wrong_destination/post_sign/00000.png new file mode 100644 index 00000000..603f9f94 Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_fund_wrong_destination/post_sign/00000.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_fund_wrong_destination/post_sign/00001.png b/tests/swap/snapshots/flex/test_aleo_fund_wrong_destination/post_sign/00001.png new file mode 100644 index 00000000..261cb973 Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_fund_wrong_destination/post_sign/00001.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_fund_wrong_destination/review/00000.png b/tests/swap/snapshots/flex/test_aleo_fund_wrong_destination/review/00000.png new file mode 100644 index 00000000..85f8a36f Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_fund_wrong_destination/review/00000.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_fund_wrong_destination/review/00001.png b/tests/swap/snapshots/flex/test_aleo_fund_wrong_destination/review/00001.png new file mode 100644 index 00000000..f355d15f Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_fund_wrong_destination/review/00001.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_fund_wrong_destination/review/00002.png b/tests/swap/snapshots/flex/test_aleo_fund_wrong_destination/review/00002.png new file mode 100644 index 00000000..c139dcbb Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_fund_wrong_destination/review/00002.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_sell_valid_1/post_sign/00000.png b/tests/swap/snapshots/flex/test_aleo_sell_valid_1/post_sign/00000.png new file mode 100644 index 00000000..435aa78b Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_sell_valid_1/post_sign/00000.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_sell_valid_1/post_sign/00001.png b/tests/swap/snapshots/flex/test_aleo_sell_valid_1/post_sign/00001.png new file mode 100644 index 00000000..261cb973 Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_sell_valid_1/post_sign/00001.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_sell_valid_1/review/00000.png b/tests/swap/snapshots/flex/test_aleo_sell_valid_1/review/00000.png new file mode 100644 index 00000000..6d6750c8 Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_sell_valid_1/review/00000.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_sell_valid_1/review/00001.png b/tests/swap/snapshots/flex/test_aleo_sell_valid_1/review/00001.png new file mode 100644 index 00000000..51274166 Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_sell_valid_1/review/00001.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_sell_valid_1/review/00002.png b/tests/swap/snapshots/flex/test_aleo_sell_valid_1/review/00002.png new file mode 100644 index 00000000..df8cff4e Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_sell_valid_1/review/00002.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_sell_valid_1/review/00003.png b/tests/swap/snapshots/flex/test_aleo_sell_valid_1/review/00003.png new file mode 100644 index 00000000..66771a8f Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_sell_valid_1/review/00003.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_sell_valid_2/post_sign/00000.png b/tests/swap/snapshots/flex/test_aleo_sell_valid_2/post_sign/00000.png new file mode 100644 index 00000000..435aa78b Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_sell_valid_2/post_sign/00000.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_sell_valid_2/post_sign/00001.png b/tests/swap/snapshots/flex/test_aleo_sell_valid_2/post_sign/00001.png new file mode 100644 index 00000000..261cb973 Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_sell_valid_2/post_sign/00001.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_sell_valid_2/review/00000.png b/tests/swap/snapshots/flex/test_aleo_sell_valid_2/review/00000.png new file mode 100644 index 00000000..6d6750c8 Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_sell_valid_2/review/00000.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_sell_valid_2/review/00001.png b/tests/swap/snapshots/flex/test_aleo_sell_valid_2/review/00001.png new file mode 100644 index 00000000..878fd78c Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_sell_valid_2/review/00001.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_sell_valid_2/review/00002.png b/tests/swap/snapshots/flex/test_aleo_sell_valid_2/review/00002.png new file mode 100644 index 00000000..3ab10986 Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_sell_valid_2/review/00002.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_sell_valid_2/review/00003.png b/tests/swap/snapshots/flex/test_aleo_sell_valid_2/review/00003.png new file mode 100644 index 00000000..66771a8f Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_sell_valid_2/review/00003.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_sell_wrong_amount/post_sign/00000.png b/tests/swap/snapshots/flex/test_aleo_sell_wrong_amount/post_sign/00000.png new file mode 100644 index 00000000..603f9f94 Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_sell_wrong_amount/post_sign/00000.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_sell_wrong_amount/post_sign/00001.png b/tests/swap/snapshots/flex/test_aleo_sell_wrong_amount/post_sign/00001.png new file mode 100644 index 00000000..261cb973 Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_sell_wrong_amount/post_sign/00001.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_sell_wrong_amount/review/00000.png b/tests/swap/snapshots/flex/test_aleo_sell_wrong_amount/review/00000.png new file mode 100644 index 00000000..6d6750c8 Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_sell_wrong_amount/review/00000.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_sell_wrong_amount/review/00001.png b/tests/swap/snapshots/flex/test_aleo_sell_wrong_amount/review/00001.png new file mode 100644 index 00000000..51274166 Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_sell_wrong_amount/review/00001.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_sell_wrong_amount/review/00002.png b/tests/swap/snapshots/flex/test_aleo_sell_wrong_amount/review/00002.png new file mode 100644 index 00000000..df8cff4e Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_sell_wrong_amount/review/00002.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_sell_wrong_amount/review/00003.png b/tests/swap/snapshots/flex/test_aleo_sell_wrong_amount/review/00003.png new file mode 100644 index 00000000..66771a8f Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_sell_wrong_amount/review/00003.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_sell_wrong_destination/post_sign/00000.png b/tests/swap/snapshots/flex/test_aleo_sell_wrong_destination/post_sign/00000.png new file mode 100644 index 00000000..603f9f94 Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_sell_wrong_destination/post_sign/00000.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_sell_wrong_destination/post_sign/00001.png b/tests/swap/snapshots/flex/test_aleo_sell_wrong_destination/post_sign/00001.png new file mode 100644 index 00000000..261cb973 Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_sell_wrong_destination/post_sign/00001.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_sell_wrong_destination/review/00000.png b/tests/swap/snapshots/flex/test_aleo_sell_wrong_destination/review/00000.png new file mode 100644 index 00000000..6d6750c8 Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_sell_wrong_destination/review/00000.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_sell_wrong_destination/review/00001.png b/tests/swap/snapshots/flex/test_aleo_sell_wrong_destination/review/00001.png new file mode 100644 index 00000000..51274166 Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_sell_wrong_destination/review/00001.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_sell_wrong_destination/review/00002.png b/tests/swap/snapshots/flex/test_aleo_sell_wrong_destination/review/00002.png new file mode 100644 index 00000000..df8cff4e Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_sell_wrong_destination/review/00002.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_sell_wrong_destination/review/00003.png b/tests/swap/snapshots/flex/test_aleo_sell_wrong_destination/review/00003.png new file mode 100644 index 00000000..66771a8f Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_sell_wrong_destination/review/00003.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_swap_fake_swap_valid_1/post_sign/00000.png b/tests/swap/snapshots/flex/test_aleo_swap_fake_swap_valid_1/post_sign/00000.png new file mode 100644 index 00000000..603f9f94 Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_swap_fake_swap_valid_1/post_sign/00000.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_swap_fake_swap_valid_1/post_sign/00001.png b/tests/swap/snapshots/flex/test_aleo_swap_fake_swap_valid_1/post_sign/00001.png new file mode 100644 index 00000000..261cb973 Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_swap_fake_swap_valid_1/post_sign/00001.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_swap_fake_swap_valid_1/review/00000.png b/tests/swap/snapshots/flex/test_aleo_swap_fake_swap_valid_1/review/00000.png new file mode 100644 index 00000000..585d86a6 Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_swap_fake_swap_valid_1/review/00000.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_swap_fake_swap_valid_1/review/00001.png b/tests/swap/snapshots/flex/test_aleo_swap_fake_swap_valid_1/review/00001.png new file mode 100644 index 00000000..e87bfc7e Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_swap_fake_swap_valid_1/review/00001.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_swap_fake_swap_valid_1/review/00002.png b/tests/swap/snapshots/flex/test_aleo_swap_fake_swap_valid_1/review/00002.png new file mode 100644 index 00000000..02179ad0 Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_swap_fake_swap_valid_1/review/00002.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_swap_ui_only/review/00000.png b/tests/swap/snapshots/flex/test_aleo_swap_ui_only/review/00000.png new file mode 100644 index 00000000..434d4e27 Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_swap_ui_only/review/00000.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_swap_ui_only/review/00001.png b/tests/swap/snapshots/flex/test_aleo_swap_ui_only/review/00001.png new file mode 100644 index 00000000..f77f9b69 Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_swap_ui_only/review/00001.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_swap_ui_only/review/00002.png b/tests/swap/snapshots/flex/test_aleo_swap_ui_only/review/00002.png new file mode 100644 index 00000000..ee7e035a Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_swap_ui_only/review/00002.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_swap_usad_swap_valid_1/post_sign/00000.png b/tests/swap/snapshots/flex/test_aleo_swap_usad_swap_valid_1/post_sign/00000.png new file mode 100644 index 00000000..435aa78b Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_swap_usad_swap_valid_1/post_sign/00000.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_swap_usad_swap_valid_1/post_sign/00001.png b/tests/swap/snapshots/flex/test_aleo_swap_usad_swap_valid_1/post_sign/00001.png new file mode 100644 index 00000000..261cb973 Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_swap_usad_swap_valid_1/post_sign/00001.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_swap_usad_swap_valid_1/review/00000.png b/tests/swap/snapshots/flex/test_aleo_swap_usad_swap_valid_1/review/00000.png new file mode 100644 index 00000000..585d86a6 Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_swap_usad_swap_valid_1/review/00000.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_swap_usad_swap_valid_1/review/00001.png b/tests/swap/snapshots/flex/test_aleo_swap_usad_swap_valid_1/review/00001.png new file mode 100644 index 00000000..e87bfc7e Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_swap_usad_swap_valid_1/review/00001.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_swap_usad_swap_valid_1/review/00002.png b/tests/swap/snapshots/flex/test_aleo_swap_usad_swap_valid_1/review/00002.png new file mode 100644 index 00000000..02179ad0 Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_swap_usad_swap_valid_1/review/00002.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_swap_usad_zero_fee_swap_valid_1/post_sign/00000.png b/tests/swap/snapshots/flex/test_aleo_swap_usad_zero_fee_swap_valid_1/post_sign/00000.png new file mode 100644 index 00000000..435aa78b Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_swap_usad_zero_fee_swap_valid_1/post_sign/00000.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_swap_usad_zero_fee_swap_valid_1/post_sign/00001.png b/tests/swap/snapshots/flex/test_aleo_swap_usad_zero_fee_swap_valid_1/post_sign/00001.png new file mode 100644 index 00000000..261cb973 Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_swap_usad_zero_fee_swap_valid_1/post_sign/00001.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00000.png b/tests/swap/snapshots/flex/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00000.png new file mode 100644 index 00000000..585d86a6 Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00000.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00001.png b/tests/swap/snapshots/flex/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00001.png new file mode 100644 index 00000000..49f08903 Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00001.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00002.png b/tests/swap/snapshots/flex/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00002.png new file mode 100644 index 00000000..02179ad0 Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00002.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_swap_valid_1/post_sign/00000.png b/tests/swap/snapshots/flex/test_aleo_swap_valid_1/post_sign/00000.png new file mode 100644 index 00000000..435aa78b Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_swap_valid_1/post_sign/00000.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_swap_valid_1/post_sign/00001.png b/tests/swap/snapshots/flex/test_aleo_swap_valid_1/post_sign/00001.png new file mode 100644 index 00000000..261cb973 Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_swap_valid_1/post_sign/00001.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_swap_valid_1/review/00000.png b/tests/swap/snapshots/flex/test_aleo_swap_valid_1/review/00000.png new file mode 100644 index 00000000..434d4e27 Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_swap_valid_1/review/00000.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_swap_valid_1/review/00001.png b/tests/swap/snapshots/flex/test_aleo_swap_valid_1/review/00001.png new file mode 100644 index 00000000..f77f9b69 Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_swap_valid_1/review/00001.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_swap_valid_1/review/00002.png b/tests/swap/snapshots/flex/test_aleo_swap_valid_1/review/00002.png new file mode 100644 index 00000000..ee7e035a Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_swap_valid_1/review/00002.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_swap_valid_2/post_sign/00000.png b/tests/swap/snapshots/flex/test_aleo_swap_valid_2/post_sign/00000.png new file mode 100644 index 00000000..435aa78b Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_swap_valid_2/post_sign/00000.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_swap_valid_2/post_sign/00001.png b/tests/swap/snapshots/flex/test_aleo_swap_valid_2/post_sign/00001.png new file mode 100644 index 00000000..261cb973 Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_swap_valid_2/post_sign/00001.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_swap_valid_2/review/00000.png b/tests/swap/snapshots/flex/test_aleo_swap_valid_2/review/00000.png new file mode 100644 index 00000000..434d4e27 Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_swap_valid_2/review/00000.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_swap_valid_2/review/00001.png b/tests/swap/snapshots/flex/test_aleo_swap_valid_2/review/00001.png new file mode 100644 index 00000000..a4c04444 Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_swap_valid_2/review/00001.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_swap_valid_2/review/00002.png b/tests/swap/snapshots/flex/test_aleo_swap_valid_2/review/00002.png new file mode 100644 index 00000000..ee7e035a Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_swap_valid_2/review/00002.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_swap_wrong_amount/post_sign/00000.png b/tests/swap/snapshots/flex/test_aleo_swap_wrong_amount/post_sign/00000.png new file mode 100644 index 00000000..603f9f94 Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_swap_wrong_amount/post_sign/00000.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_swap_wrong_amount/post_sign/00001.png b/tests/swap/snapshots/flex/test_aleo_swap_wrong_amount/post_sign/00001.png new file mode 100644 index 00000000..261cb973 Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_swap_wrong_amount/post_sign/00001.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_swap_wrong_amount/review/00000.png b/tests/swap/snapshots/flex/test_aleo_swap_wrong_amount/review/00000.png new file mode 100644 index 00000000..434d4e27 Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_swap_wrong_amount/review/00000.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_swap_wrong_amount/review/00001.png b/tests/swap/snapshots/flex/test_aleo_swap_wrong_amount/review/00001.png new file mode 100644 index 00000000..f77f9b69 Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_swap_wrong_amount/review/00001.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_swap_wrong_amount/review/00002.png b/tests/swap/snapshots/flex/test_aleo_swap_wrong_amount/review/00002.png new file mode 100644 index 00000000..ee7e035a Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_swap_wrong_amount/review/00002.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_swap_wrong_destination/post_sign/00000.png b/tests/swap/snapshots/flex/test_aleo_swap_wrong_destination/post_sign/00000.png new file mode 100644 index 00000000..603f9f94 Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_swap_wrong_destination/post_sign/00000.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_swap_wrong_destination/post_sign/00001.png b/tests/swap/snapshots/flex/test_aleo_swap_wrong_destination/post_sign/00001.png new file mode 100644 index 00000000..261cb973 Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_swap_wrong_destination/post_sign/00001.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_swap_wrong_destination/review/00000.png b/tests/swap/snapshots/flex/test_aleo_swap_wrong_destination/review/00000.png new file mode 100644 index 00000000..434d4e27 Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_swap_wrong_destination/review/00000.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_swap_wrong_destination/review/00001.png b/tests/swap/snapshots/flex/test_aleo_swap_wrong_destination/review/00001.png new file mode 100644 index 00000000..f77f9b69 Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_swap_wrong_destination/review/00001.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_swap_wrong_destination/review/00002.png b/tests/swap/snapshots/flex/test_aleo_swap_wrong_destination/review/00002.png new file mode 100644 index 00000000..ee7e035a Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_swap_wrong_destination/review/00002.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_swap_zero_fee_swap_valid_1/post_sign/00000.png b/tests/swap/snapshots/flex/test_aleo_swap_zero_fee_swap_valid_1/post_sign/00000.png new file mode 100644 index 00000000..435aa78b Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_swap_zero_fee_swap_valid_1/post_sign/00000.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_swap_zero_fee_swap_valid_1/post_sign/00001.png b/tests/swap/snapshots/flex/test_aleo_swap_zero_fee_swap_valid_1/post_sign/00001.png new file mode 100644 index 00000000..261cb973 Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_swap_zero_fee_swap_valid_1/post_sign/00001.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_swap_zero_fee_swap_valid_1/review/00000.png b/tests/swap/snapshots/flex/test_aleo_swap_zero_fee_swap_valid_1/review/00000.png new file mode 100644 index 00000000..434d4e27 Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_swap_zero_fee_swap_valid_1/review/00000.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_swap_zero_fee_swap_valid_1/review/00001.png b/tests/swap/snapshots/flex/test_aleo_swap_zero_fee_swap_valid_1/review/00001.png new file mode 100644 index 00000000..6afef08e Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_swap_zero_fee_swap_valid_1/review/00001.png differ diff --git a/tests/swap/snapshots/flex/test_aleo_swap_zero_fee_swap_valid_1/review/00002.png b/tests/swap/snapshots/flex/test_aleo_swap_zero_fee_swap_valid_1/review/00002.png new file mode 100644 index 00000000..ee7e035a Binary files /dev/null and b/tests/swap/snapshots/flex/test_aleo_swap_zero_fee_swap_valid_1/review/00002.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_fund_valid_1/post_sign/00000.png b/tests/swap/snapshots/nanosp/test_aleo_fund_valid_1/post_sign/00000.png new file mode 100644 index 00000000..3a161194 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_fund_valid_1/post_sign/00000.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_fund_valid_1/post_sign/00001.png b/tests/swap/snapshots/nanosp/test_aleo_fund_valid_1/post_sign/00001.png new file mode 100644 index 00000000..95728b4e Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_fund_valid_1/post_sign/00001.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_fund_valid_1/review/00000.png b/tests/swap/snapshots/nanosp/test_aleo_fund_valid_1/review/00000.png new file mode 100644 index 00000000..963a168f Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_fund_valid_1/review/00000.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_fund_valid_1/review/00001.png b/tests/swap/snapshots/nanosp/test_aleo_fund_valid_1/review/00001.png new file mode 100644 index 00000000..ee92f85d Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_fund_valid_1/review/00001.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_fund_valid_1/review/00002.png b/tests/swap/snapshots/nanosp/test_aleo_fund_valid_1/review/00002.png new file mode 100644 index 00000000..1c57f11d Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_fund_valid_1/review/00002.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_fund_valid_1/review/00003.png b/tests/swap/snapshots/nanosp/test_aleo_fund_valid_1/review/00003.png new file mode 100644 index 00000000..37c49495 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_fund_valid_1/review/00003.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_fund_valid_1/review/00004.png b/tests/swap/snapshots/nanosp/test_aleo_fund_valid_1/review/00004.png new file mode 100644 index 00000000..c24ada37 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_fund_valid_1/review/00004.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_fund_valid_1/review/00005.png b/tests/swap/snapshots/nanosp/test_aleo_fund_valid_1/review/00005.png new file mode 100644 index 00000000..51e706f8 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_fund_valid_1/review/00005.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_fund_valid_2/post_sign/00000.png b/tests/swap/snapshots/nanosp/test_aleo_fund_valid_2/post_sign/00000.png new file mode 100644 index 00000000..3a161194 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_fund_valid_2/post_sign/00000.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_fund_valid_2/post_sign/00001.png b/tests/swap/snapshots/nanosp/test_aleo_fund_valid_2/post_sign/00001.png new file mode 100644 index 00000000..95728b4e Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_fund_valid_2/post_sign/00001.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_fund_valid_2/review/00000.png b/tests/swap/snapshots/nanosp/test_aleo_fund_valid_2/review/00000.png new file mode 100644 index 00000000..963a168f Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_fund_valid_2/review/00000.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_fund_valid_2/review/00001.png b/tests/swap/snapshots/nanosp/test_aleo_fund_valid_2/review/00001.png new file mode 100644 index 00000000..ee92f85d Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_fund_valid_2/review/00001.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_fund_valid_2/review/00002.png b/tests/swap/snapshots/nanosp/test_aleo_fund_valid_2/review/00002.png new file mode 100644 index 00000000..89f0a6c8 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_fund_valid_2/review/00002.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_fund_valid_2/review/00003.png b/tests/swap/snapshots/nanosp/test_aleo_fund_valid_2/review/00003.png new file mode 100644 index 00000000..37c49495 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_fund_valid_2/review/00003.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_fund_valid_2/review/00004.png b/tests/swap/snapshots/nanosp/test_aleo_fund_valid_2/review/00004.png new file mode 100644 index 00000000..397263dd Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_fund_valid_2/review/00004.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_fund_valid_2/review/00005.png b/tests/swap/snapshots/nanosp/test_aleo_fund_valid_2/review/00005.png new file mode 100644 index 00000000..51e706f8 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_fund_valid_2/review/00005.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_fund_wrong_amount/post_sign/00000.png b/tests/swap/snapshots/nanosp/test_aleo_fund_wrong_amount/post_sign/00000.png new file mode 100644 index 00000000..e5ea8ae9 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_fund_wrong_amount/post_sign/00000.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_fund_wrong_amount/post_sign/00001.png b/tests/swap/snapshots/nanosp/test_aleo_fund_wrong_amount/post_sign/00001.png new file mode 100644 index 00000000..95728b4e Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_fund_wrong_amount/post_sign/00001.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_fund_wrong_amount/review/00000.png b/tests/swap/snapshots/nanosp/test_aleo_fund_wrong_amount/review/00000.png new file mode 100644 index 00000000..963a168f Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_fund_wrong_amount/review/00000.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_fund_wrong_amount/review/00001.png b/tests/swap/snapshots/nanosp/test_aleo_fund_wrong_amount/review/00001.png new file mode 100644 index 00000000..ee92f85d Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_fund_wrong_amount/review/00001.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_fund_wrong_amount/review/00002.png b/tests/swap/snapshots/nanosp/test_aleo_fund_wrong_amount/review/00002.png new file mode 100644 index 00000000..1c57f11d Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_fund_wrong_amount/review/00002.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_fund_wrong_amount/review/00003.png b/tests/swap/snapshots/nanosp/test_aleo_fund_wrong_amount/review/00003.png new file mode 100644 index 00000000..37c49495 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_fund_wrong_amount/review/00003.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_fund_wrong_amount/review/00004.png b/tests/swap/snapshots/nanosp/test_aleo_fund_wrong_amount/review/00004.png new file mode 100644 index 00000000..c24ada37 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_fund_wrong_amount/review/00004.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_fund_wrong_amount/review/00005.png b/tests/swap/snapshots/nanosp/test_aleo_fund_wrong_amount/review/00005.png new file mode 100644 index 00000000..51e706f8 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_fund_wrong_amount/review/00005.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_fund_wrong_destination/post_sign/00000.png b/tests/swap/snapshots/nanosp/test_aleo_fund_wrong_destination/post_sign/00000.png new file mode 100644 index 00000000..e5ea8ae9 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_fund_wrong_destination/post_sign/00000.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_fund_wrong_destination/post_sign/00001.png b/tests/swap/snapshots/nanosp/test_aleo_fund_wrong_destination/post_sign/00001.png new file mode 100644 index 00000000..95728b4e Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_fund_wrong_destination/post_sign/00001.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_fund_wrong_destination/review/00000.png b/tests/swap/snapshots/nanosp/test_aleo_fund_wrong_destination/review/00000.png new file mode 100644 index 00000000..963a168f Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_fund_wrong_destination/review/00000.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_fund_wrong_destination/review/00001.png b/tests/swap/snapshots/nanosp/test_aleo_fund_wrong_destination/review/00001.png new file mode 100644 index 00000000..ee92f85d Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_fund_wrong_destination/review/00001.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_fund_wrong_destination/review/00002.png b/tests/swap/snapshots/nanosp/test_aleo_fund_wrong_destination/review/00002.png new file mode 100644 index 00000000..1c57f11d Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_fund_wrong_destination/review/00002.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_fund_wrong_destination/review/00003.png b/tests/swap/snapshots/nanosp/test_aleo_fund_wrong_destination/review/00003.png new file mode 100644 index 00000000..37c49495 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_fund_wrong_destination/review/00003.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_fund_wrong_destination/review/00004.png b/tests/swap/snapshots/nanosp/test_aleo_fund_wrong_destination/review/00004.png new file mode 100644 index 00000000..c24ada37 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_fund_wrong_destination/review/00004.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_fund_wrong_destination/review/00005.png b/tests/swap/snapshots/nanosp/test_aleo_fund_wrong_destination/review/00005.png new file mode 100644 index 00000000..51e706f8 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_fund_wrong_destination/review/00005.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_sell_valid_1/post_sign/00000.png b/tests/swap/snapshots/nanosp/test_aleo_sell_valid_1/post_sign/00000.png new file mode 100644 index 00000000..3a161194 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_sell_valid_1/post_sign/00000.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_sell_valid_1/post_sign/00001.png b/tests/swap/snapshots/nanosp/test_aleo_sell_valid_1/post_sign/00001.png new file mode 100644 index 00000000..95728b4e Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_sell_valid_1/post_sign/00001.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_sell_valid_1/review/00000.png b/tests/swap/snapshots/nanosp/test_aleo_sell_valid_1/review/00000.png new file mode 100644 index 00000000..91bc8226 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_sell_valid_1/review/00000.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_sell_valid_1/review/00001.png b/tests/swap/snapshots/nanosp/test_aleo_sell_valid_1/review/00001.png new file mode 100644 index 00000000..1a80bb27 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_sell_valid_1/review/00001.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_sell_valid_1/review/00002.png b/tests/swap/snapshots/nanosp/test_aleo_sell_valid_1/review/00002.png new file mode 100644 index 00000000..4ee87fd4 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_sell_valid_1/review/00002.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_sell_valid_1/review/00003.png b/tests/swap/snapshots/nanosp/test_aleo_sell_valid_1/review/00003.png new file mode 100644 index 00000000..1c57f11d Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_sell_valid_1/review/00003.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_sell_valid_1/review/00004.png b/tests/swap/snapshots/nanosp/test_aleo_sell_valid_1/review/00004.png new file mode 100644 index 00000000..6959d711 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_sell_valid_1/review/00004.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_sell_valid_1/review/00005.png b/tests/swap/snapshots/nanosp/test_aleo_sell_valid_1/review/00005.png new file mode 100644 index 00000000..c24ada37 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_sell_valid_1/review/00005.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_sell_valid_1/review/00006.png b/tests/swap/snapshots/nanosp/test_aleo_sell_valid_1/review/00006.png new file mode 100644 index 00000000..d28142cc Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_sell_valid_1/review/00006.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_sell_valid_2/post_sign/00000.png b/tests/swap/snapshots/nanosp/test_aleo_sell_valid_2/post_sign/00000.png new file mode 100644 index 00000000..3a161194 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_sell_valid_2/post_sign/00000.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_sell_valid_2/post_sign/00001.png b/tests/swap/snapshots/nanosp/test_aleo_sell_valid_2/post_sign/00001.png new file mode 100644 index 00000000..95728b4e Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_sell_valid_2/post_sign/00001.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_sell_valid_2/review/00000.png b/tests/swap/snapshots/nanosp/test_aleo_sell_valid_2/review/00000.png new file mode 100644 index 00000000..91bc8226 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_sell_valid_2/review/00000.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_sell_valid_2/review/00001.png b/tests/swap/snapshots/nanosp/test_aleo_sell_valid_2/review/00001.png new file mode 100644 index 00000000..1a80bb27 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_sell_valid_2/review/00001.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_sell_valid_2/review/00002.png b/tests/swap/snapshots/nanosp/test_aleo_sell_valid_2/review/00002.png new file mode 100644 index 00000000..4ee87fd4 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_sell_valid_2/review/00002.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_sell_valid_2/review/00003.png b/tests/swap/snapshots/nanosp/test_aleo_sell_valid_2/review/00003.png new file mode 100644 index 00000000..89f0a6c8 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_sell_valid_2/review/00003.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_sell_valid_2/review/00004.png b/tests/swap/snapshots/nanosp/test_aleo_sell_valid_2/review/00004.png new file mode 100644 index 00000000..6959d711 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_sell_valid_2/review/00004.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_sell_valid_2/review/00005.png b/tests/swap/snapshots/nanosp/test_aleo_sell_valid_2/review/00005.png new file mode 100644 index 00000000..397263dd Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_sell_valid_2/review/00005.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_sell_valid_2/review/00006.png b/tests/swap/snapshots/nanosp/test_aleo_sell_valid_2/review/00006.png new file mode 100644 index 00000000..d28142cc Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_sell_valid_2/review/00006.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_amount/post_sign/00000.png b/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_amount/post_sign/00000.png new file mode 100644 index 00000000..e5ea8ae9 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_amount/post_sign/00000.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_amount/post_sign/00001.png b/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_amount/post_sign/00001.png new file mode 100644 index 00000000..95728b4e Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_amount/post_sign/00001.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_amount/review/00000.png b/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_amount/review/00000.png new file mode 100644 index 00000000..91bc8226 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_amount/review/00000.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_amount/review/00001.png b/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_amount/review/00001.png new file mode 100644 index 00000000..1a80bb27 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_amount/review/00001.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_amount/review/00002.png b/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_amount/review/00002.png new file mode 100644 index 00000000..4ee87fd4 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_amount/review/00002.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_amount/review/00003.png b/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_amount/review/00003.png new file mode 100644 index 00000000..1c57f11d Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_amount/review/00003.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_amount/review/00004.png b/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_amount/review/00004.png new file mode 100644 index 00000000..6959d711 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_amount/review/00004.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_amount/review/00005.png b/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_amount/review/00005.png new file mode 100644 index 00000000..c24ada37 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_amount/review/00005.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_amount/review/00006.png b/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_amount/review/00006.png new file mode 100644 index 00000000..d28142cc Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_amount/review/00006.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_destination/post_sign/00000.png b/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_destination/post_sign/00000.png new file mode 100644 index 00000000..e5ea8ae9 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_destination/post_sign/00000.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_destination/post_sign/00001.png b/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_destination/post_sign/00001.png new file mode 100644 index 00000000..95728b4e Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_destination/post_sign/00001.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_destination/review/00000.png b/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_destination/review/00000.png new file mode 100644 index 00000000..91bc8226 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_destination/review/00000.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_destination/review/00001.png b/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_destination/review/00001.png new file mode 100644 index 00000000..1a80bb27 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_destination/review/00001.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_destination/review/00002.png b/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_destination/review/00002.png new file mode 100644 index 00000000..4ee87fd4 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_destination/review/00002.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_destination/review/00003.png b/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_destination/review/00003.png new file mode 100644 index 00000000..1c57f11d Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_destination/review/00003.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_destination/review/00004.png b/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_destination/review/00004.png new file mode 100644 index 00000000..6959d711 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_destination/review/00004.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_destination/review/00005.png b/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_destination/review/00005.png new file mode 100644 index 00000000..c24ada37 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_destination/review/00005.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_destination/review/00006.png b/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_destination/review/00006.png new file mode 100644 index 00000000..d28142cc Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_sell_wrong_destination/review/00006.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_fake_swap_valid_1/post_sign/00000.png b/tests/swap/snapshots/nanosp/test_aleo_swap_fake_swap_valid_1/post_sign/00000.png new file mode 100644 index 00000000..e5ea8ae9 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_fake_swap_valid_1/post_sign/00000.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_fake_swap_valid_1/post_sign/00001.png b/tests/swap/snapshots/nanosp/test_aleo_swap_fake_swap_valid_1/post_sign/00001.png new file mode 100644 index 00000000..95728b4e Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_fake_swap_valid_1/post_sign/00001.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_fake_swap_valid_1/review/00000.png b/tests/swap/snapshots/nanosp/test_aleo_swap_fake_swap_valid_1/review/00000.png new file mode 100644 index 00000000..9c259371 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_fake_swap_valid_1/review/00000.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_fake_swap_valid_1/review/00001.png b/tests/swap/snapshots/nanosp/test_aleo_swap_fake_swap_valid_1/review/00001.png new file mode 100644 index 00000000..1a80bb27 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_fake_swap_valid_1/review/00001.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_fake_swap_valid_1/review/00002.png b/tests/swap/snapshots/nanosp/test_aleo_swap_fake_swap_valid_1/review/00002.png new file mode 100644 index 00000000..6bf501e4 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_fake_swap_valid_1/review/00002.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_fake_swap_valid_1/review/00003.png b/tests/swap/snapshots/nanosp/test_aleo_swap_fake_swap_valid_1/review/00003.png new file mode 100644 index 00000000..2b847e35 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_fake_swap_valid_1/review/00003.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_fake_swap_valid_1/review/00004.png b/tests/swap/snapshots/nanosp/test_aleo_swap_fake_swap_valid_1/review/00004.png new file mode 100644 index 00000000..c24ada37 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_fake_swap_valid_1/review/00004.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_fake_swap_valid_1/review/00005.png b/tests/swap/snapshots/nanosp/test_aleo_swap_fake_swap_valid_1/review/00005.png new file mode 100644 index 00000000..c2d3d181 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_fake_swap_valid_1/review/00005.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_ui_only/review/00000.png b/tests/swap/snapshots/nanosp/test_aleo_swap_ui_only/review/00000.png new file mode 100644 index 00000000..38bf21f9 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_ui_only/review/00000.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_ui_only/review/00001.png b/tests/swap/snapshots/nanosp/test_aleo_swap_ui_only/review/00001.png new file mode 100644 index 00000000..1a80bb27 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_ui_only/review/00001.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_ui_only/review/00002.png b/tests/swap/snapshots/nanosp/test_aleo_swap_ui_only/review/00002.png new file mode 100644 index 00000000..1c57f11d Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_ui_only/review/00002.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_ui_only/review/00003.png b/tests/swap/snapshots/nanosp/test_aleo_swap_ui_only/review/00003.png new file mode 100644 index 00000000..2b847e35 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_ui_only/review/00003.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_ui_only/review/00004.png b/tests/swap/snapshots/nanosp/test_aleo_swap_ui_only/review/00004.png new file mode 100644 index 00000000..c24ada37 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_ui_only/review/00004.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_ui_only/review/00005.png b/tests/swap/snapshots/nanosp/test_aleo_swap_ui_only/review/00005.png new file mode 100644 index 00000000..c2d3d181 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_ui_only/review/00005.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_usad_swap_valid_1/post_sign/00000.png b/tests/swap/snapshots/nanosp/test_aleo_swap_usad_swap_valid_1/post_sign/00000.png new file mode 100644 index 00000000..3a161194 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_usad_swap_valid_1/post_sign/00000.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_usad_swap_valid_1/post_sign/00001.png b/tests/swap/snapshots/nanosp/test_aleo_swap_usad_swap_valid_1/post_sign/00001.png new file mode 100644 index 00000000..95728b4e Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_usad_swap_valid_1/post_sign/00001.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_usad_swap_valid_1/review/00000.png b/tests/swap/snapshots/nanosp/test_aleo_swap_usad_swap_valid_1/review/00000.png new file mode 100644 index 00000000..9c259371 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_usad_swap_valid_1/review/00000.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_usad_swap_valid_1/review/00001.png b/tests/swap/snapshots/nanosp/test_aleo_swap_usad_swap_valid_1/review/00001.png new file mode 100644 index 00000000..1a80bb27 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_usad_swap_valid_1/review/00001.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_usad_swap_valid_1/review/00002.png b/tests/swap/snapshots/nanosp/test_aleo_swap_usad_swap_valid_1/review/00002.png new file mode 100644 index 00000000..6bf501e4 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_usad_swap_valid_1/review/00002.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_usad_swap_valid_1/review/00003.png b/tests/swap/snapshots/nanosp/test_aleo_swap_usad_swap_valid_1/review/00003.png new file mode 100644 index 00000000..2b847e35 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_usad_swap_valid_1/review/00003.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_usad_swap_valid_1/review/00004.png b/tests/swap/snapshots/nanosp/test_aleo_swap_usad_swap_valid_1/review/00004.png new file mode 100644 index 00000000..c24ada37 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_usad_swap_valid_1/review/00004.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_usad_swap_valid_1/review/00005.png b/tests/swap/snapshots/nanosp/test_aleo_swap_usad_swap_valid_1/review/00005.png new file mode 100644 index 00000000..c2d3d181 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_usad_swap_valid_1/review/00005.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_usad_zero_fee_swap_valid_1/post_sign/00000.png b/tests/swap/snapshots/nanosp/test_aleo_swap_usad_zero_fee_swap_valid_1/post_sign/00000.png new file mode 100644 index 00000000..3a161194 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_usad_zero_fee_swap_valid_1/post_sign/00000.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_usad_zero_fee_swap_valid_1/post_sign/00001.png b/tests/swap/snapshots/nanosp/test_aleo_swap_usad_zero_fee_swap_valid_1/post_sign/00001.png new file mode 100644 index 00000000..95728b4e Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_usad_zero_fee_swap_valid_1/post_sign/00001.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00000.png b/tests/swap/snapshots/nanosp/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00000.png new file mode 100644 index 00000000..9c259371 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00000.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00001.png b/tests/swap/snapshots/nanosp/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00001.png new file mode 100644 index 00000000..1a80bb27 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00001.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00002.png b/tests/swap/snapshots/nanosp/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00002.png new file mode 100644 index 00000000..6bf501e4 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00002.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00003.png b/tests/swap/snapshots/nanosp/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00003.png new file mode 100644 index 00000000..2b847e35 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00003.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00004.png b/tests/swap/snapshots/nanosp/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00004.png new file mode 100644 index 00000000..bfdf90c0 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00004.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00005.png b/tests/swap/snapshots/nanosp/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00005.png new file mode 100644 index 00000000..c2d3d181 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00005.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_valid_1/post_sign/00000.png b/tests/swap/snapshots/nanosp/test_aleo_swap_valid_1/post_sign/00000.png new file mode 100644 index 00000000..3a161194 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_valid_1/post_sign/00000.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_valid_1/post_sign/00001.png b/tests/swap/snapshots/nanosp/test_aleo_swap_valid_1/post_sign/00001.png new file mode 100644 index 00000000..95728b4e Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_valid_1/post_sign/00001.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_valid_1/review/00000.png b/tests/swap/snapshots/nanosp/test_aleo_swap_valid_1/review/00000.png new file mode 100644 index 00000000..38bf21f9 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_valid_1/review/00000.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_valid_1/review/00001.png b/tests/swap/snapshots/nanosp/test_aleo_swap_valid_1/review/00001.png new file mode 100644 index 00000000..1a80bb27 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_valid_1/review/00001.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_valid_1/review/00002.png b/tests/swap/snapshots/nanosp/test_aleo_swap_valid_1/review/00002.png new file mode 100644 index 00000000..1c57f11d Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_valid_1/review/00002.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_valid_1/review/00003.png b/tests/swap/snapshots/nanosp/test_aleo_swap_valid_1/review/00003.png new file mode 100644 index 00000000..2b847e35 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_valid_1/review/00003.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_valid_1/review/00004.png b/tests/swap/snapshots/nanosp/test_aleo_swap_valid_1/review/00004.png new file mode 100644 index 00000000..c24ada37 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_valid_1/review/00004.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_valid_1/review/00005.png b/tests/swap/snapshots/nanosp/test_aleo_swap_valid_1/review/00005.png new file mode 100644 index 00000000..c2d3d181 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_valid_1/review/00005.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_valid_2/post_sign/00000.png b/tests/swap/snapshots/nanosp/test_aleo_swap_valid_2/post_sign/00000.png new file mode 100644 index 00000000..3a161194 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_valid_2/post_sign/00000.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_valid_2/post_sign/00001.png b/tests/swap/snapshots/nanosp/test_aleo_swap_valid_2/post_sign/00001.png new file mode 100644 index 00000000..95728b4e Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_valid_2/post_sign/00001.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_valid_2/review/00000.png b/tests/swap/snapshots/nanosp/test_aleo_swap_valid_2/review/00000.png new file mode 100644 index 00000000..38bf21f9 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_valid_2/review/00000.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_valid_2/review/00001.png b/tests/swap/snapshots/nanosp/test_aleo_swap_valid_2/review/00001.png new file mode 100644 index 00000000..1a80bb27 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_valid_2/review/00001.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_valid_2/review/00002.png b/tests/swap/snapshots/nanosp/test_aleo_swap_valid_2/review/00002.png new file mode 100644 index 00000000..89f0a6c8 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_valid_2/review/00002.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_valid_2/review/00003.png b/tests/swap/snapshots/nanosp/test_aleo_swap_valid_2/review/00003.png new file mode 100644 index 00000000..2b847e35 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_valid_2/review/00003.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_valid_2/review/00004.png b/tests/swap/snapshots/nanosp/test_aleo_swap_valid_2/review/00004.png new file mode 100644 index 00000000..397263dd Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_valid_2/review/00004.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_valid_2/review/00005.png b/tests/swap/snapshots/nanosp/test_aleo_swap_valid_2/review/00005.png new file mode 100644 index 00000000..c2d3d181 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_valid_2/review/00005.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_wrong_amount/post_sign/00000.png b/tests/swap/snapshots/nanosp/test_aleo_swap_wrong_amount/post_sign/00000.png new file mode 100644 index 00000000..e5ea8ae9 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_wrong_amount/post_sign/00000.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_wrong_amount/post_sign/00001.png b/tests/swap/snapshots/nanosp/test_aleo_swap_wrong_amount/post_sign/00001.png new file mode 100644 index 00000000..95728b4e Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_wrong_amount/post_sign/00001.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_wrong_amount/review/00000.png b/tests/swap/snapshots/nanosp/test_aleo_swap_wrong_amount/review/00000.png new file mode 100644 index 00000000..38bf21f9 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_wrong_amount/review/00000.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_wrong_amount/review/00001.png b/tests/swap/snapshots/nanosp/test_aleo_swap_wrong_amount/review/00001.png new file mode 100644 index 00000000..1a80bb27 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_wrong_amount/review/00001.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_wrong_amount/review/00002.png b/tests/swap/snapshots/nanosp/test_aleo_swap_wrong_amount/review/00002.png new file mode 100644 index 00000000..1c57f11d Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_wrong_amount/review/00002.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_wrong_amount/review/00003.png b/tests/swap/snapshots/nanosp/test_aleo_swap_wrong_amount/review/00003.png new file mode 100644 index 00000000..2b847e35 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_wrong_amount/review/00003.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_wrong_amount/review/00004.png b/tests/swap/snapshots/nanosp/test_aleo_swap_wrong_amount/review/00004.png new file mode 100644 index 00000000..c24ada37 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_wrong_amount/review/00004.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_wrong_amount/review/00005.png b/tests/swap/snapshots/nanosp/test_aleo_swap_wrong_amount/review/00005.png new file mode 100644 index 00000000..c2d3d181 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_wrong_amount/review/00005.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_wrong_destination/post_sign/00000.png b/tests/swap/snapshots/nanosp/test_aleo_swap_wrong_destination/post_sign/00000.png new file mode 100644 index 00000000..e5ea8ae9 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_wrong_destination/post_sign/00000.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_wrong_destination/post_sign/00001.png b/tests/swap/snapshots/nanosp/test_aleo_swap_wrong_destination/post_sign/00001.png new file mode 100644 index 00000000..95728b4e Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_wrong_destination/post_sign/00001.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_wrong_destination/review/00000.png b/tests/swap/snapshots/nanosp/test_aleo_swap_wrong_destination/review/00000.png new file mode 100644 index 00000000..38bf21f9 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_wrong_destination/review/00000.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_wrong_destination/review/00001.png b/tests/swap/snapshots/nanosp/test_aleo_swap_wrong_destination/review/00001.png new file mode 100644 index 00000000..1a80bb27 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_wrong_destination/review/00001.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_wrong_destination/review/00002.png b/tests/swap/snapshots/nanosp/test_aleo_swap_wrong_destination/review/00002.png new file mode 100644 index 00000000..1c57f11d Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_wrong_destination/review/00002.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_wrong_destination/review/00003.png b/tests/swap/snapshots/nanosp/test_aleo_swap_wrong_destination/review/00003.png new file mode 100644 index 00000000..2b847e35 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_wrong_destination/review/00003.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_wrong_destination/review/00004.png b/tests/swap/snapshots/nanosp/test_aleo_swap_wrong_destination/review/00004.png new file mode 100644 index 00000000..c24ada37 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_wrong_destination/review/00004.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_wrong_destination/review/00005.png b/tests/swap/snapshots/nanosp/test_aleo_swap_wrong_destination/review/00005.png new file mode 100644 index 00000000..c2d3d181 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_wrong_destination/review/00005.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_zero_fee_swap_valid_1/post_sign/00000.png b/tests/swap/snapshots/nanosp/test_aleo_swap_zero_fee_swap_valid_1/post_sign/00000.png new file mode 100644 index 00000000..3a161194 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_zero_fee_swap_valid_1/post_sign/00000.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_zero_fee_swap_valid_1/post_sign/00001.png b/tests/swap/snapshots/nanosp/test_aleo_swap_zero_fee_swap_valid_1/post_sign/00001.png new file mode 100644 index 00000000..95728b4e Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_zero_fee_swap_valid_1/post_sign/00001.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_zero_fee_swap_valid_1/review/00000.png b/tests/swap/snapshots/nanosp/test_aleo_swap_zero_fee_swap_valid_1/review/00000.png new file mode 100644 index 00000000..38bf21f9 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_zero_fee_swap_valid_1/review/00000.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_zero_fee_swap_valid_1/review/00001.png b/tests/swap/snapshots/nanosp/test_aleo_swap_zero_fee_swap_valid_1/review/00001.png new file mode 100644 index 00000000..1a80bb27 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_zero_fee_swap_valid_1/review/00001.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_zero_fee_swap_valid_1/review/00002.png b/tests/swap/snapshots/nanosp/test_aleo_swap_zero_fee_swap_valid_1/review/00002.png new file mode 100644 index 00000000..1c57f11d Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_zero_fee_swap_valid_1/review/00002.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_zero_fee_swap_valid_1/review/00003.png b/tests/swap/snapshots/nanosp/test_aleo_swap_zero_fee_swap_valid_1/review/00003.png new file mode 100644 index 00000000..2b847e35 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_zero_fee_swap_valid_1/review/00003.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_zero_fee_swap_valid_1/review/00004.png b/tests/swap/snapshots/nanosp/test_aleo_swap_zero_fee_swap_valid_1/review/00004.png new file mode 100644 index 00000000..bfdf90c0 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_zero_fee_swap_valid_1/review/00004.png differ diff --git a/tests/swap/snapshots/nanosp/test_aleo_swap_zero_fee_swap_valid_1/review/00005.png b/tests/swap/snapshots/nanosp/test_aleo_swap_zero_fee_swap_valid_1/review/00005.png new file mode 100644 index 00000000..c2d3d181 Binary files /dev/null and b/tests/swap/snapshots/nanosp/test_aleo_swap_zero_fee_swap_valid_1/review/00005.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_fund_valid_1/post_sign/00000.png b/tests/swap/snapshots/nanox/test_aleo_fund_valid_1/post_sign/00000.png new file mode 100644 index 00000000..3a161194 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_fund_valid_1/post_sign/00000.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_fund_valid_1/post_sign/00001.png b/tests/swap/snapshots/nanox/test_aleo_fund_valid_1/post_sign/00001.png new file mode 100644 index 00000000..95728b4e Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_fund_valid_1/post_sign/00001.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_fund_valid_1/review/00000.png b/tests/swap/snapshots/nanox/test_aleo_fund_valid_1/review/00000.png new file mode 100644 index 00000000..963a168f Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_fund_valid_1/review/00000.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_fund_valid_1/review/00001.png b/tests/swap/snapshots/nanox/test_aleo_fund_valid_1/review/00001.png new file mode 100644 index 00000000..ee92f85d Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_fund_valid_1/review/00001.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_fund_valid_1/review/00002.png b/tests/swap/snapshots/nanox/test_aleo_fund_valid_1/review/00002.png new file mode 100644 index 00000000..1c57f11d Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_fund_valid_1/review/00002.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_fund_valid_1/review/00003.png b/tests/swap/snapshots/nanox/test_aleo_fund_valid_1/review/00003.png new file mode 100644 index 00000000..37c49495 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_fund_valid_1/review/00003.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_fund_valid_1/review/00004.png b/tests/swap/snapshots/nanox/test_aleo_fund_valid_1/review/00004.png new file mode 100644 index 00000000..c24ada37 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_fund_valid_1/review/00004.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_fund_valid_1/review/00005.png b/tests/swap/snapshots/nanox/test_aleo_fund_valid_1/review/00005.png new file mode 100644 index 00000000..51e706f8 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_fund_valid_1/review/00005.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_fund_valid_2/post_sign/00000.png b/tests/swap/snapshots/nanox/test_aleo_fund_valid_2/post_sign/00000.png new file mode 100644 index 00000000..3a161194 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_fund_valid_2/post_sign/00000.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_fund_valid_2/post_sign/00001.png b/tests/swap/snapshots/nanox/test_aleo_fund_valid_2/post_sign/00001.png new file mode 100644 index 00000000..95728b4e Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_fund_valid_2/post_sign/00001.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_fund_valid_2/review/00000.png b/tests/swap/snapshots/nanox/test_aleo_fund_valid_2/review/00000.png new file mode 100644 index 00000000..963a168f Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_fund_valid_2/review/00000.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_fund_valid_2/review/00001.png b/tests/swap/snapshots/nanox/test_aleo_fund_valid_2/review/00001.png new file mode 100644 index 00000000..ee92f85d Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_fund_valid_2/review/00001.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_fund_valid_2/review/00002.png b/tests/swap/snapshots/nanox/test_aleo_fund_valid_2/review/00002.png new file mode 100644 index 00000000..89f0a6c8 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_fund_valid_2/review/00002.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_fund_valid_2/review/00003.png b/tests/swap/snapshots/nanox/test_aleo_fund_valid_2/review/00003.png new file mode 100644 index 00000000..37c49495 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_fund_valid_2/review/00003.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_fund_valid_2/review/00004.png b/tests/swap/snapshots/nanox/test_aleo_fund_valid_2/review/00004.png new file mode 100644 index 00000000..397263dd Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_fund_valid_2/review/00004.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_fund_valid_2/review/00005.png b/tests/swap/snapshots/nanox/test_aleo_fund_valid_2/review/00005.png new file mode 100644 index 00000000..51e706f8 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_fund_valid_2/review/00005.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_fund_wrong_amount/post_sign/00000.png b/tests/swap/snapshots/nanox/test_aleo_fund_wrong_amount/post_sign/00000.png new file mode 100644 index 00000000..e5ea8ae9 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_fund_wrong_amount/post_sign/00000.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_fund_wrong_amount/post_sign/00001.png b/tests/swap/snapshots/nanox/test_aleo_fund_wrong_amount/post_sign/00001.png new file mode 100644 index 00000000..95728b4e Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_fund_wrong_amount/post_sign/00001.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_fund_wrong_amount/review/00000.png b/tests/swap/snapshots/nanox/test_aleo_fund_wrong_amount/review/00000.png new file mode 100644 index 00000000..963a168f Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_fund_wrong_amount/review/00000.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_fund_wrong_amount/review/00001.png b/tests/swap/snapshots/nanox/test_aleo_fund_wrong_amount/review/00001.png new file mode 100644 index 00000000..ee92f85d Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_fund_wrong_amount/review/00001.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_fund_wrong_amount/review/00002.png b/tests/swap/snapshots/nanox/test_aleo_fund_wrong_amount/review/00002.png new file mode 100644 index 00000000..1c57f11d Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_fund_wrong_amount/review/00002.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_fund_wrong_amount/review/00003.png b/tests/swap/snapshots/nanox/test_aleo_fund_wrong_amount/review/00003.png new file mode 100644 index 00000000..37c49495 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_fund_wrong_amount/review/00003.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_fund_wrong_amount/review/00004.png b/tests/swap/snapshots/nanox/test_aleo_fund_wrong_amount/review/00004.png new file mode 100644 index 00000000..c24ada37 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_fund_wrong_amount/review/00004.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_fund_wrong_amount/review/00005.png b/tests/swap/snapshots/nanox/test_aleo_fund_wrong_amount/review/00005.png new file mode 100644 index 00000000..51e706f8 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_fund_wrong_amount/review/00005.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_fund_wrong_destination/post_sign/00000.png b/tests/swap/snapshots/nanox/test_aleo_fund_wrong_destination/post_sign/00000.png new file mode 100644 index 00000000..e5ea8ae9 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_fund_wrong_destination/post_sign/00000.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_fund_wrong_destination/post_sign/00001.png b/tests/swap/snapshots/nanox/test_aleo_fund_wrong_destination/post_sign/00001.png new file mode 100644 index 00000000..95728b4e Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_fund_wrong_destination/post_sign/00001.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_fund_wrong_destination/review/00000.png b/tests/swap/snapshots/nanox/test_aleo_fund_wrong_destination/review/00000.png new file mode 100644 index 00000000..963a168f Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_fund_wrong_destination/review/00000.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_fund_wrong_destination/review/00001.png b/tests/swap/snapshots/nanox/test_aleo_fund_wrong_destination/review/00001.png new file mode 100644 index 00000000..ee92f85d Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_fund_wrong_destination/review/00001.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_fund_wrong_destination/review/00002.png b/tests/swap/snapshots/nanox/test_aleo_fund_wrong_destination/review/00002.png new file mode 100644 index 00000000..1c57f11d Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_fund_wrong_destination/review/00002.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_fund_wrong_destination/review/00003.png b/tests/swap/snapshots/nanox/test_aleo_fund_wrong_destination/review/00003.png new file mode 100644 index 00000000..37c49495 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_fund_wrong_destination/review/00003.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_fund_wrong_destination/review/00004.png b/tests/swap/snapshots/nanox/test_aleo_fund_wrong_destination/review/00004.png new file mode 100644 index 00000000..c24ada37 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_fund_wrong_destination/review/00004.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_fund_wrong_destination/review/00005.png b/tests/swap/snapshots/nanox/test_aleo_fund_wrong_destination/review/00005.png new file mode 100644 index 00000000..51e706f8 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_fund_wrong_destination/review/00005.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_sell_valid_1/post_sign/00000.png b/tests/swap/snapshots/nanox/test_aleo_sell_valid_1/post_sign/00000.png new file mode 100644 index 00000000..3a161194 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_sell_valid_1/post_sign/00000.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_sell_valid_1/post_sign/00001.png b/tests/swap/snapshots/nanox/test_aleo_sell_valid_1/post_sign/00001.png new file mode 100644 index 00000000..95728b4e Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_sell_valid_1/post_sign/00001.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_sell_valid_1/review/00000.png b/tests/swap/snapshots/nanox/test_aleo_sell_valid_1/review/00000.png new file mode 100644 index 00000000..91bc8226 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_sell_valid_1/review/00000.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_sell_valid_1/review/00001.png b/tests/swap/snapshots/nanox/test_aleo_sell_valid_1/review/00001.png new file mode 100644 index 00000000..1a80bb27 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_sell_valid_1/review/00001.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_sell_valid_1/review/00002.png b/tests/swap/snapshots/nanox/test_aleo_sell_valid_1/review/00002.png new file mode 100644 index 00000000..4ee87fd4 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_sell_valid_1/review/00002.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_sell_valid_1/review/00003.png b/tests/swap/snapshots/nanox/test_aleo_sell_valid_1/review/00003.png new file mode 100644 index 00000000..1c57f11d Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_sell_valid_1/review/00003.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_sell_valid_1/review/00004.png b/tests/swap/snapshots/nanox/test_aleo_sell_valid_1/review/00004.png new file mode 100644 index 00000000..6959d711 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_sell_valid_1/review/00004.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_sell_valid_1/review/00005.png b/tests/swap/snapshots/nanox/test_aleo_sell_valid_1/review/00005.png new file mode 100644 index 00000000..c24ada37 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_sell_valid_1/review/00005.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_sell_valid_1/review/00006.png b/tests/swap/snapshots/nanox/test_aleo_sell_valid_1/review/00006.png new file mode 100644 index 00000000..d28142cc Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_sell_valid_1/review/00006.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_sell_valid_2/post_sign/00000.png b/tests/swap/snapshots/nanox/test_aleo_sell_valid_2/post_sign/00000.png new file mode 100644 index 00000000..3a161194 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_sell_valid_2/post_sign/00000.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_sell_valid_2/post_sign/00001.png b/tests/swap/snapshots/nanox/test_aleo_sell_valid_2/post_sign/00001.png new file mode 100644 index 00000000..95728b4e Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_sell_valid_2/post_sign/00001.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_sell_valid_2/review/00000.png b/tests/swap/snapshots/nanox/test_aleo_sell_valid_2/review/00000.png new file mode 100644 index 00000000..91bc8226 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_sell_valid_2/review/00000.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_sell_valid_2/review/00001.png b/tests/swap/snapshots/nanox/test_aleo_sell_valid_2/review/00001.png new file mode 100644 index 00000000..1a80bb27 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_sell_valid_2/review/00001.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_sell_valid_2/review/00002.png b/tests/swap/snapshots/nanox/test_aleo_sell_valid_2/review/00002.png new file mode 100644 index 00000000..4ee87fd4 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_sell_valid_2/review/00002.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_sell_valid_2/review/00003.png b/tests/swap/snapshots/nanox/test_aleo_sell_valid_2/review/00003.png new file mode 100644 index 00000000..89f0a6c8 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_sell_valid_2/review/00003.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_sell_valid_2/review/00004.png b/tests/swap/snapshots/nanox/test_aleo_sell_valid_2/review/00004.png new file mode 100644 index 00000000..6959d711 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_sell_valid_2/review/00004.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_sell_valid_2/review/00005.png b/tests/swap/snapshots/nanox/test_aleo_sell_valid_2/review/00005.png new file mode 100644 index 00000000..397263dd Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_sell_valid_2/review/00005.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_sell_valid_2/review/00006.png b/tests/swap/snapshots/nanox/test_aleo_sell_valid_2/review/00006.png new file mode 100644 index 00000000..d28142cc Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_sell_valid_2/review/00006.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_sell_wrong_amount/post_sign/00000.png b/tests/swap/snapshots/nanox/test_aleo_sell_wrong_amount/post_sign/00000.png new file mode 100644 index 00000000..e5ea8ae9 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_sell_wrong_amount/post_sign/00000.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_sell_wrong_amount/post_sign/00001.png b/tests/swap/snapshots/nanox/test_aleo_sell_wrong_amount/post_sign/00001.png new file mode 100644 index 00000000..95728b4e Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_sell_wrong_amount/post_sign/00001.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_sell_wrong_amount/review/00000.png b/tests/swap/snapshots/nanox/test_aleo_sell_wrong_amount/review/00000.png new file mode 100644 index 00000000..91bc8226 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_sell_wrong_amount/review/00000.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_sell_wrong_amount/review/00001.png b/tests/swap/snapshots/nanox/test_aleo_sell_wrong_amount/review/00001.png new file mode 100644 index 00000000..1a80bb27 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_sell_wrong_amount/review/00001.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_sell_wrong_amount/review/00002.png b/tests/swap/snapshots/nanox/test_aleo_sell_wrong_amount/review/00002.png new file mode 100644 index 00000000..4ee87fd4 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_sell_wrong_amount/review/00002.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_sell_wrong_amount/review/00003.png b/tests/swap/snapshots/nanox/test_aleo_sell_wrong_amount/review/00003.png new file mode 100644 index 00000000..1c57f11d Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_sell_wrong_amount/review/00003.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_sell_wrong_amount/review/00004.png b/tests/swap/snapshots/nanox/test_aleo_sell_wrong_amount/review/00004.png new file mode 100644 index 00000000..6959d711 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_sell_wrong_amount/review/00004.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_sell_wrong_amount/review/00005.png b/tests/swap/snapshots/nanox/test_aleo_sell_wrong_amount/review/00005.png new file mode 100644 index 00000000..c24ada37 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_sell_wrong_amount/review/00005.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_sell_wrong_amount/review/00006.png b/tests/swap/snapshots/nanox/test_aleo_sell_wrong_amount/review/00006.png new file mode 100644 index 00000000..d28142cc Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_sell_wrong_amount/review/00006.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_sell_wrong_destination/post_sign/00000.png b/tests/swap/snapshots/nanox/test_aleo_sell_wrong_destination/post_sign/00000.png new file mode 100644 index 00000000..e5ea8ae9 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_sell_wrong_destination/post_sign/00000.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_sell_wrong_destination/post_sign/00001.png b/tests/swap/snapshots/nanox/test_aleo_sell_wrong_destination/post_sign/00001.png new file mode 100644 index 00000000..95728b4e Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_sell_wrong_destination/post_sign/00001.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_sell_wrong_destination/review/00000.png b/tests/swap/snapshots/nanox/test_aleo_sell_wrong_destination/review/00000.png new file mode 100644 index 00000000..91bc8226 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_sell_wrong_destination/review/00000.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_sell_wrong_destination/review/00001.png b/tests/swap/snapshots/nanox/test_aleo_sell_wrong_destination/review/00001.png new file mode 100644 index 00000000..1a80bb27 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_sell_wrong_destination/review/00001.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_sell_wrong_destination/review/00002.png b/tests/swap/snapshots/nanox/test_aleo_sell_wrong_destination/review/00002.png new file mode 100644 index 00000000..4ee87fd4 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_sell_wrong_destination/review/00002.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_sell_wrong_destination/review/00003.png b/tests/swap/snapshots/nanox/test_aleo_sell_wrong_destination/review/00003.png new file mode 100644 index 00000000..1c57f11d Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_sell_wrong_destination/review/00003.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_sell_wrong_destination/review/00004.png b/tests/swap/snapshots/nanox/test_aleo_sell_wrong_destination/review/00004.png new file mode 100644 index 00000000..6959d711 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_sell_wrong_destination/review/00004.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_sell_wrong_destination/review/00005.png b/tests/swap/snapshots/nanox/test_aleo_sell_wrong_destination/review/00005.png new file mode 100644 index 00000000..c24ada37 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_sell_wrong_destination/review/00005.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_sell_wrong_destination/review/00006.png b/tests/swap/snapshots/nanox/test_aleo_sell_wrong_destination/review/00006.png new file mode 100644 index 00000000..d28142cc Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_sell_wrong_destination/review/00006.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_fake_swap_valid_1/post_sign/00000.png b/tests/swap/snapshots/nanox/test_aleo_swap_fake_swap_valid_1/post_sign/00000.png new file mode 100644 index 00000000..e5ea8ae9 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_fake_swap_valid_1/post_sign/00000.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_fake_swap_valid_1/post_sign/00001.png b/tests/swap/snapshots/nanox/test_aleo_swap_fake_swap_valid_1/post_sign/00001.png new file mode 100644 index 00000000..95728b4e Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_fake_swap_valid_1/post_sign/00001.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_fake_swap_valid_1/review/00000.png b/tests/swap/snapshots/nanox/test_aleo_swap_fake_swap_valid_1/review/00000.png new file mode 100644 index 00000000..9c259371 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_fake_swap_valid_1/review/00000.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_fake_swap_valid_1/review/00001.png b/tests/swap/snapshots/nanox/test_aleo_swap_fake_swap_valid_1/review/00001.png new file mode 100644 index 00000000..1a80bb27 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_fake_swap_valid_1/review/00001.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_fake_swap_valid_1/review/00002.png b/tests/swap/snapshots/nanox/test_aleo_swap_fake_swap_valid_1/review/00002.png new file mode 100644 index 00000000..6bf501e4 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_fake_swap_valid_1/review/00002.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_fake_swap_valid_1/review/00003.png b/tests/swap/snapshots/nanox/test_aleo_swap_fake_swap_valid_1/review/00003.png new file mode 100644 index 00000000..2b847e35 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_fake_swap_valid_1/review/00003.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_fake_swap_valid_1/review/00004.png b/tests/swap/snapshots/nanox/test_aleo_swap_fake_swap_valid_1/review/00004.png new file mode 100644 index 00000000..c24ada37 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_fake_swap_valid_1/review/00004.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_fake_swap_valid_1/review/00005.png b/tests/swap/snapshots/nanox/test_aleo_swap_fake_swap_valid_1/review/00005.png new file mode 100644 index 00000000..c2d3d181 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_fake_swap_valid_1/review/00005.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_ui_only/review/00000.png b/tests/swap/snapshots/nanox/test_aleo_swap_ui_only/review/00000.png new file mode 100644 index 00000000..38bf21f9 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_ui_only/review/00000.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_ui_only/review/00001.png b/tests/swap/snapshots/nanox/test_aleo_swap_ui_only/review/00001.png new file mode 100644 index 00000000..1a80bb27 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_ui_only/review/00001.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_ui_only/review/00002.png b/tests/swap/snapshots/nanox/test_aleo_swap_ui_only/review/00002.png new file mode 100644 index 00000000..1c57f11d Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_ui_only/review/00002.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_ui_only/review/00003.png b/tests/swap/snapshots/nanox/test_aleo_swap_ui_only/review/00003.png new file mode 100644 index 00000000..2b847e35 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_ui_only/review/00003.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_ui_only/review/00004.png b/tests/swap/snapshots/nanox/test_aleo_swap_ui_only/review/00004.png new file mode 100644 index 00000000..c24ada37 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_ui_only/review/00004.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_ui_only/review/00005.png b/tests/swap/snapshots/nanox/test_aleo_swap_ui_only/review/00005.png new file mode 100644 index 00000000..c2d3d181 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_ui_only/review/00005.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_usad_swap_valid_1/post_sign/00000.png b/tests/swap/snapshots/nanox/test_aleo_swap_usad_swap_valid_1/post_sign/00000.png new file mode 100644 index 00000000..3a161194 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_usad_swap_valid_1/post_sign/00000.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_usad_swap_valid_1/post_sign/00001.png b/tests/swap/snapshots/nanox/test_aleo_swap_usad_swap_valid_1/post_sign/00001.png new file mode 100644 index 00000000..95728b4e Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_usad_swap_valid_1/post_sign/00001.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_usad_swap_valid_1/review/00000.png b/tests/swap/snapshots/nanox/test_aleo_swap_usad_swap_valid_1/review/00000.png new file mode 100644 index 00000000..9c259371 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_usad_swap_valid_1/review/00000.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_usad_swap_valid_1/review/00001.png b/tests/swap/snapshots/nanox/test_aleo_swap_usad_swap_valid_1/review/00001.png new file mode 100644 index 00000000..1a80bb27 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_usad_swap_valid_1/review/00001.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_usad_swap_valid_1/review/00002.png b/tests/swap/snapshots/nanox/test_aleo_swap_usad_swap_valid_1/review/00002.png new file mode 100644 index 00000000..6bf501e4 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_usad_swap_valid_1/review/00002.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_usad_swap_valid_1/review/00003.png b/tests/swap/snapshots/nanox/test_aleo_swap_usad_swap_valid_1/review/00003.png new file mode 100644 index 00000000..2b847e35 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_usad_swap_valid_1/review/00003.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_usad_swap_valid_1/review/00004.png b/tests/swap/snapshots/nanox/test_aleo_swap_usad_swap_valid_1/review/00004.png new file mode 100644 index 00000000..c24ada37 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_usad_swap_valid_1/review/00004.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_usad_swap_valid_1/review/00005.png b/tests/swap/snapshots/nanox/test_aleo_swap_usad_swap_valid_1/review/00005.png new file mode 100644 index 00000000..c2d3d181 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_usad_swap_valid_1/review/00005.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_usad_zero_fee_swap_valid_1/post_sign/00000.png b/tests/swap/snapshots/nanox/test_aleo_swap_usad_zero_fee_swap_valid_1/post_sign/00000.png new file mode 100644 index 00000000..3a161194 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_usad_zero_fee_swap_valid_1/post_sign/00000.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_usad_zero_fee_swap_valid_1/post_sign/00001.png b/tests/swap/snapshots/nanox/test_aleo_swap_usad_zero_fee_swap_valid_1/post_sign/00001.png new file mode 100644 index 00000000..95728b4e Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_usad_zero_fee_swap_valid_1/post_sign/00001.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00000.png b/tests/swap/snapshots/nanox/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00000.png new file mode 100644 index 00000000..9c259371 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00000.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00001.png b/tests/swap/snapshots/nanox/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00001.png new file mode 100644 index 00000000..1a80bb27 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00001.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00002.png b/tests/swap/snapshots/nanox/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00002.png new file mode 100644 index 00000000..6bf501e4 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00002.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00003.png b/tests/swap/snapshots/nanox/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00003.png new file mode 100644 index 00000000..2b847e35 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00003.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00004.png b/tests/swap/snapshots/nanox/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00004.png new file mode 100644 index 00000000..bfdf90c0 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00004.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00005.png b/tests/swap/snapshots/nanox/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00005.png new file mode 100644 index 00000000..c2d3d181 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00005.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_valid_1/post_sign/00000.png b/tests/swap/snapshots/nanox/test_aleo_swap_valid_1/post_sign/00000.png new file mode 100644 index 00000000..3a161194 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_valid_1/post_sign/00000.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_valid_1/post_sign/00001.png b/tests/swap/snapshots/nanox/test_aleo_swap_valid_1/post_sign/00001.png new file mode 100644 index 00000000..95728b4e Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_valid_1/post_sign/00001.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_valid_1/review/00000.png b/tests/swap/snapshots/nanox/test_aleo_swap_valid_1/review/00000.png new file mode 100644 index 00000000..38bf21f9 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_valid_1/review/00000.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_valid_1/review/00001.png b/tests/swap/snapshots/nanox/test_aleo_swap_valid_1/review/00001.png new file mode 100644 index 00000000..1a80bb27 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_valid_1/review/00001.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_valid_1/review/00002.png b/tests/swap/snapshots/nanox/test_aleo_swap_valid_1/review/00002.png new file mode 100644 index 00000000..1c57f11d Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_valid_1/review/00002.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_valid_1/review/00003.png b/tests/swap/snapshots/nanox/test_aleo_swap_valid_1/review/00003.png new file mode 100644 index 00000000..2b847e35 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_valid_1/review/00003.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_valid_1/review/00004.png b/tests/swap/snapshots/nanox/test_aleo_swap_valid_1/review/00004.png new file mode 100644 index 00000000..c24ada37 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_valid_1/review/00004.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_valid_1/review/00005.png b/tests/swap/snapshots/nanox/test_aleo_swap_valid_1/review/00005.png new file mode 100644 index 00000000..c2d3d181 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_valid_1/review/00005.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_valid_2/post_sign/00000.png b/tests/swap/snapshots/nanox/test_aleo_swap_valid_2/post_sign/00000.png new file mode 100644 index 00000000..3a161194 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_valid_2/post_sign/00000.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_valid_2/post_sign/00001.png b/tests/swap/snapshots/nanox/test_aleo_swap_valid_2/post_sign/00001.png new file mode 100644 index 00000000..95728b4e Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_valid_2/post_sign/00001.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_valid_2/review/00000.png b/tests/swap/snapshots/nanox/test_aleo_swap_valid_2/review/00000.png new file mode 100644 index 00000000..38bf21f9 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_valid_2/review/00000.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_valid_2/review/00001.png b/tests/swap/snapshots/nanox/test_aleo_swap_valid_2/review/00001.png new file mode 100644 index 00000000..1a80bb27 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_valid_2/review/00001.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_valid_2/review/00002.png b/tests/swap/snapshots/nanox/test_aleo_swap_valid_2/review/00002.png new file mode 100644 index 00000000..89f0a6c8 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_valid_2/review/00002.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_valid_2/review/00003.png b/tests/swap/snapshots/nanox/test_aleo_swap_valid_2/review/00003.png new file mode 100644 index 00000000..2b847e35 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_valid_2/review/00003.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_valid_2/review/00004.png b/tests/swap/snapshots/nanox/test_aleo_swap_valid_2/review/00004.png new file mode 100644 index 00000000..397263dd Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_valid_2/review/00004.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_valid_2/review/00005.png b/tests/swap/snapshots/nanox/test_aleo_swap_valid_2/review/00005.png new file mode 100644 index 00000000..c2d3d181 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_valid_2/review/00005.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_wrong_amount/post_sign/00000.png b/tests/swap/snapshots/nanox/test_aleo_swap_wrong_amount/post_sign/00000.png new file mode 100644 index 00000000..e5ea8ae9 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_wrong_amount/post_sign/00000.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_wrong_amount/post_sign/00001.png b/tests/swap/snapshots/nanox/test_aleo_swap_wrong_amount/post_sign/00001.png new file mode 100644 index 00000000..95728b4e Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_wrong_amount/post_sign/00001.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_wrong_amount/review/00000.png b/tests/swap/snapshots/nanox/test_aleo_swap_wrong_amount/review/00000.png new file mode 100644 index 00000000..38bf21f9 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_wrong_amount/review/00000.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_wrong_amount/review/00001.png b/tests/swap/snapshots/nanox/test_aleo_swap_wrong_amount/review/00001.png new file mode 100644 index 00000000..1a80bb27 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_wrong_amount/review/00001.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_wrong_amount/review/00002.png b/tests/swap/snapshots/nanox/test_aleo_swap_wrong_amount/review/00002.png new file mode 100644 index 00000000..1c57f11d Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_wrong_amount/review/00002.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_wrong_amount/review/00003.png b/tests/swap/snapshots/nanox/test_aleo_swap_wrong_amount/review/00003.png new file mode 100644 index 00000000..2b847e35 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_wrong_amount/review/00003.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_wrong_amount/review/00004.png b/tests/swap/snapshots/nanox/test_aleo_swap_wrong_amount/review/00004.png new file mode 100644 index 00000000..c24ada37 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_wrong_amount/review/00004.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_wrong_amount/review/00005.png b/tests/swap/snapshots/nanox/test_aleo_swap_wrong_amount/review/00005.png new file mode 100644 index 00000000..c2d3d181 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_wrong_amount/review/00005.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_wrong_destination/post_sign/00000.png b/tests/swap/snapshots/nanox/test_aleo_swap_wrong_destination/post_sign/00000.png new file mode 100644 index 00000000..e5ea8ae9 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_wrong_destination/post_sign/00000.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_wrong_destination/post_sign/00001.png b/tests/swap/snapshots/nanox/test_aleo_swap_wrong_destination/post_sign/00001.png new file mode 100644 index 00000000..95728b4e Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_wrong_destination/post_sign/00001.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_wrong_destination/review/00000.png b/tests/swap/snapshots/nanox/test_aleo_swap_wrong_destination/review/00000.png new file mode 100644 index 00000000..38bf21f9 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_wrong_destination/review/00000.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_wrong_destination/review/00001.png b/tests/swap/snapshots/nanox/test_aleo_swap_wrong_destination/review/00001.png new file mode 100644 index 00000000..1a80bb27 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_wrong_destination/review/00001.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_wrong_destination/review/00002.png b/tests/swap/snapshots/nanox/test_aleo_swap_wrong_destination/review/00002.png new file mode 100644 index 00000000..1c57f11d Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_wrong_destination/review/00002.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_wrong_destination/review/00003.png b/tests/swap/snapshots/nanox/test_aleo_swap_wrong_destination/review/00003.png new file mode 100644 index 00000000..2b847e35 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_wrong_destination/review/00003.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_wrong_destination/review/00004.png b/tests/swap/snapshots/nanox/test_aleo_swap_wrong_destination/review/00004.png new file mode 100644 index 00000000..c24ada37 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_wrong_destination/review/00004.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_wrong_destination/review/00005.png b/tests/swap/snapshots/nanox/test_aleo_swap_wrong_destination/review/00005.png new file mode 100644 index 00000000..c2d3d181 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_wrong_destination/review/00005.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_zero_fee_swap_valid_1/post_sign/00000.png b/tests/swap/snapshots/nanox/test_aleo_swap_zero_fee_swap_valid_1/post_sign/00000.png new file mode 100644 index 00000000..3a161194 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_zero_fee_swap_valid_1/post_sign/00000.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_zero_fee_swap_valid_1/post_sign/00001.png b/tests/swap/snapshots/nanox/test_aleo_swap_zero_fee_swap_valid_1/post_sign/00001.png new file mode 100644 index 00000000..95728b4e Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_zero_fee_swap_valid_1/post_sign/00001.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_zero_fee_swap_valid_1/review/00000.png b/tests/swap/snapshots/nanox/test_aleo_swap_zero_fee_swap_valid_1/review/00000.png new file mode 100644 index 00000000..38bf21f9 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_zero_fee_swap_valid_1/review/00000.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_zero_fee_swap_valid_1/review/00001.png b/tests/swap/snapshots/nanox/test_aleo_swap_zero_fee_swap_valid_1/review/00001.png new file mode 100644 index 00000000..1a80bb27 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_zero_fee_swap_valid_1/review/00001.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_zero_fee_swap_valid_1/review/00002.png b/tests/swap/snapshots/nanox/test_aleo_swap_zero_fee_swap_valid_1/review/00002.png new file mode 100644 index 00000000..1c57f11d Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_zero_fee_swap_valid_1/review/00002.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_zero_fee_swap_valid_1/review/00003.png b/tests/swap/snapshots/nanox/test_aleo_swap_zero_fee_swap_valid_1/review/00003.png new file mode 100644 index 00000000..2b847e35 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_zero_fee_swap_valid_1/review/00003.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_zero_fee_swap_valid_1/review/00004.png b/tests/swap/snapshots/nanox/test_aleo_swap_zero_fee_swap_valid_1/review/00004.png new file mode 100644 index 00000000..bfdf90c0 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_zero_fee_swap_valid_1/review/00004.png differ diff --git a/tests/swap/snapshots/nanox/test_aleo_swap_zero_fee_swap_valid_1/review/00005.png b/tests/swap/snapshots/nanox/test_aleo_swap_zero_fee_swap_valid_1/review/00005.png new file mode 100644 index 00000000..c2d3d181 Binary files /dev/null and b/tests/swap/snapshots/nanox/test_aleo_swap_zero_fee_swap_valid_1/review/00005.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_fund_valid_1/post_sign/00000.png b/tests/swap/snapshots/stax/test_aleo_fund_valid_1/post_sign/00000.png new file mode 100644 index 00000000..ceda6a87 Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_fund_valid_1/post_sign/00000.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_fund_valid_1/post_sign/00001.png b/tests/swap/snapshots/stax/test_aleo_fund_valid_1/post_sign/00001.png new file mode 100644 index 00000000..6c80008b Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_fund_valid_1/post_sign/00001.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_fund_valid_1/review/00000.png b/tests/swap/snapshots/stax/test_aleo_fund_valid_1/review/00000.png new file mode 100644 index 00000000..f45a5de5 Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_fund_valid_1/review/00000.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_fund_valid_1/review/00001.png b/tests/swap/snapshots/stax/test_aleo_fund_valid_1/review/00001.png new file mode 100644 index 00000000..b67742b7 Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_fund_valid_1/review/00001.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_fund_valid_1/review/00002.png b/tests/swap/snapshots/stax/test_aleo_fund_valid_1/review/00002.png new file mode 100644 index 00000000..e969b5ff Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_fund_valid_1/review/00002.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_fund_valid_2/post_sign/00000.png b/tests/swap/snapshots/stax/test_aleo_fund_valid_2/post_sign/00000.png new file mode 100644 index 00000000..ceda6a87 Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_fund_valid_2/post_sign/00000.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_fund_valid_2/post_sign/00001.png b/tests/swap/snapshots/stax/test_aleo_fund_valid_2/post_sign/00001.png new file mode 100644 index 00000000..6c80008b Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_fund_valid_2/post_sign/00001.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_fund_valid_2/review/00000.png b/tests/swap/snapshots/stax/test_aleo_fund_valid_2/review/00000.png new file mode 100644 index 00000000..f45a5de5 Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_fund_valid_2/review/00000.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_fund_valid_2/review/00001.png b/tests/swap/snapshots/stax/test_aleo_fund_valid_2/review/00001.png new file mode 100644 index 00000000..2a64007e Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_fund_valid_2/review/00001.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_fund_valid_2/review/00002.png b/tests/swap/snapshots/stax/test_aleo_fund_valid_2/review/00002.png new file mode 100644 index 00000000..e969b5ff Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_fund_valid_2/review/00002.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_fund_wrong_amount/post_sign/00000.png b/tests/swap/snapshots/stax/test_aleo_fund_wrong_amount/post_sign/00000.png new file mode 100644 index 00000000..053e66f3 Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_fund_wrong_amount/post_sign/00000.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_fund_wrong_amount/post_sign/00001.png b/tests/swap/snapshots/stax/test_aleo_fund_wrong_amount/post_sign/00001.png new file mode 100644 index 00000000..6c80008b Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_fund_wrong_amount/post_sign/00001.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_fund_wrong_amount/review/00000.png b/tests/swap/snapshots/stax/test_aleo_fund_wrong_amount/review/00000.png new file mode 100644 index 00000000..f45a5de5 Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_fund_wrong_amount/review/00000.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_fund_wrong_amount/review/00001.png b/tests/swap/snapshots/stax/test_aleo_fund_wrong_amount/review/00001.png new file mode 100644 index 00000000..b67742b7 Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_fund_wrong_amount/review/00001.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_fund_wrong_amount/review/00002.png b/tests/swap/snapshots/stax/test_aleo_fund_wrong_amount/review/00002.png new file mode 100644 index 00000000..e969b5ff Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_fund_wrong_amount/review/00002.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_fund_wrong_destination/post_sign/00000.png b/tests/swap/snapshots/stax/test_aleo_fund_wrong_destination/post_sign/00000.png new file mode 100644 index 00000000..053e66f3 Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_fund_wrong_destination/post_sign/00000.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_fund_wrong_destination/post_sign/00001.png b/tests/swap/snapshots/stax/test_aleo_fund_wrong_destination/post_sign/00001.png new file mode 100644 index 00000000..6c80008b Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_fund_wrong_destination/post_sign/00001.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_fund_wrong_destination/review/00000.png b/tests/swap/snapshots/stax/test_aleo_fund_wrong_destination/review/00000.png new file mode 100644 index 00000000..f45a5de5 Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_fund_wrong_destination/review/00000.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_fund_wrong_destination/review/00001.png b/tests/swap/snapshots/stax/test_aleo_fund_wrong_destination/review/00001.png new file mode 100644 index 00000000..b67742b7 Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_fund_wrong_destination/review/00001.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_fund_wrong_destination/review/00002.png b/tests/swap/snapshots/stax/test_aleo_fund_wrong_destination/review/00002.png new file mode 100644 index 00000000..e969b5ff Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_fund_wrong_destination/review/00002.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_sell_valid_1/post_sign/00000.png b/tests/swap/snapshots/stax/test_aleo_sell_valid_1/post_sign/00000.png new file mode 100644 index 00000000..ceda6a87 Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_sell_valid_1/post_sign/00000.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_sell_valid_1/post_sign/00001.png b/tests/swap/snapshots/stax/test_aleo_sell_valid_1/post_sign/00001.png new file mode 100644 index 00000000..6c80008b Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_sell_valid_1/post_sign/00001.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_sell_valid_1/review/00000.png b/tests/swap/snapshots/stax/test_aleo_sell_valid_1/review/00000.png new file mode 100644 index 00000000..d5ae0000 Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_sell_valid_1/review/00000.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_sell_valid_1/review/00001.png b/tests/swap/snapshots/stax/test_aleo_sell_valid_1/review/00001.png new file mode 100644 index 00000000..0940611c Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_sell_valid_1/review/00001.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_sell_valid_1/review/00002.png b/tests/swap/snapshots/stax/test_aleo_sell_valid_1/review/00002.png new file mode 100644 index 00000000..8e476fa9 Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_sell_valid_1/review/00002.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_sell_valid_2/post_sign/00000.png b/tests/swap/snapshots/stax/test_aleo_sell_valid_2/post_sign/00000.png new file mode 100644 index 00000000..ceda6a87 Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_sell_valid_2/post_sign/00000.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_sell_valid_2/post_sign/00001.png b/tests/swap/snapshots/stax/test_aleo_sell_valid_2/post_sign/00001.png new file mode 100644 index 00000000..6c80008b Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_sell_valid_2/post_sign/00001.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_sell_valid_2/review/00000.png b/tests/swap/snapshots/stax/test_aleo_sell_valid_2/review/00000.png new file mode 100644 index 00000000..d5ae0000 Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_sell_valid_2/review/00000.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_sell_valid_2/review/00001.png b/tests/swap/snapshots/stax/test_aleo_sell_valid_2/review/00001.png new file mode 100644 index 00000000..3abbaffa Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_sell_valid_2/review/00001.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_sell_valid_2/review/00002.png b/tests/swap/snapshots/stax/test_aleo_sell_valid_2/review/00002.png new file mode 100644 index 00000000..8e476fa9 Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_sell_valid_2/review/00002.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_sell_wrong_amount/post_sign/00000.png b/tests/swap/snapshots/stax/test_aleo_sell_wrong_amount/post_sign/00000.png new file mode 100644 index 00000000..053e66f3 Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_sell_wrong_amount/post_sign/00000.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_sell_wrong_amount/post_sign/00001.png b/tests/swap/snapshots/stax/test_aleo_sell_wrong_amount/post_sign/00001.png new file mode 100644 index 00000000..6c80008b Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_sell_wrong_amount/post_sign/00001.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_sell_wrong_amount/review/00000.png b/tests/swap/snapshots/stax/test_aleo_sell_wrong_amount/review/00000.png new file mode 100644 index 00000000..d5ae0000 Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_sell_wrong_amount/review/00000.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_sell_wrong_amount/review/00001.png b/tests/swap/snapshots/stax/test_aleo_sell_wrong_amount/review/00001.png new file mode 100644 index 00000000..0940611c Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_sell_wrong_amount/review/00001.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_sell_wrong_amount/review/00002.png b/tests/swap/snapshots/stax/test_aleo_sell_wrong_amount/review/00002.png new file mode 100644 index 00000000..8e476fa9 Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_sell_wrong_amount/review/00002.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_sell_wrong_destination/post_sign/00000.png b/tests/swap/snapshots/stax/test_aleo_sell_wrong_destination/post_sign/00000.png new file mode 100644 index 00000000..053e66f3 Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_sell_wrong_destination/post_sign/00000.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_sell_wrong_destination/post_sign/00001.png b/tests/swap/snapshots/stax/test_aleo_sell_wrong_destination/post_sign/00001.png new file mode 100644 index 00000000..6c80008b Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_sell_wrong_destination/post_sign/00001.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_sell_wrong_destination/review/00000.png b/tests/swap/snapshots/stax/test_aleo_sell_wrong_destination/review/00000.png new file mode 100644 index 00000000..d5ae0000 Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_sell_wrong_destination/review/00000.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_sell_wrong_destination/review/00001.png b/tests/swap/snapshots/stax/test_aleo_sell_wrong_destination/review/00001.png new file mode 100644 index 00000000..0940611c Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_sell_wrong_destination/review/00001.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_sell_wrong_destination/review/00002.png b/tests/swap/snapshots/stax/test_aleo_sell_wrong_destination/review/00002.png new file mode 100644 index 00000000..8e476fa9 Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_sell_wrong_destination/review/00002.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_swap_fake_swap_valid_1/post_sign/00000.png b/tests/swap/snapshots/stax/test_aleo_swap_fake_swap_valid_1/post_sign/00000.png new file mode 100644 index 00000000..053e66f3 Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_swap_fake_swap_valid_1/post_sign/00000.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_swap_fake_swap_valid_1/post_sign/00001.png b/tests/swap/snapshots/stax/test_aleo_swap_fake_swap_valid_1/post_sign/00001.png new file mode 100644 index 00000000..6c80008b Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_swap_fake_swap_valid_1/post_sign/00001.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_swap_fake_swap_valid_1/review/00000.png b/tests/swap/snapshots/stax/test_aleo_swap_fake_swap_valid_1/review/00000.png new file mode 100644 index 00000000..0c631970 Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_swap_fake_swap_valid_1/review/00000.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_swap_fake_swap_valid_1/review/00001.png b/tests/swap/snapshots/stax/test_aleo_swap_fake_swap_valid_1/review/00001.png new file mode 100644 index 00000000..6f478ea7 Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_swap_fake_swap_valid_1/review/00001.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_swap_fake_swap_valid_1/review/00002.png b/tests/swap/snapshots/stax/test_aleo_swap_fake_swap_valid_1/review/00002.png new file mode 100644 index 00000000..d50d4c2c Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_swap_fake_swap_valid_1/review/00002.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_swap_ui_only/review/00000.png b/tests/swap/snapshots/stax/test_aleo_swap_ui_only/review/00000.png new file mode 100644 index 00000000..b0682be3 Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_swap_ui_only/review/00000.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_swap_ui_only/review/00001.png b/tests/swap/snapshots/stax/test_aleo_swap_ui_only/review/00001.png new file mode 100644 index 00000000..03b706c4 Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_swap_ui_only/review/00001.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_swap_ui_only/review/00002.png b/tests/swap/snapshots/stax/test_aleo_swap_ui_only/review/00002.png new file mode 100644 index 00000000..1a8d3e9c Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_swap_ui_only/review/00002.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_swap_usad_swap_valid_1/post_sign/00000.png b/tests/swap/snapshots/stax/test_aleo_swap_usad_swap_valid_1/post_sign/00000.png new file mode 100644 index 00000000..ceda6a87 Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_swap_usad_swap_valid_1/post_sign/00000.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_swap_usad_swap_valid_1/post_sign/00001.png b/tests/swap/snapshots/stax/test_aleo_swap_usad_swap_valid_1/post_sign/00001.png new file mode 100644 index 00000000..6c80008b Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_swap_usad_swap_valid_1/post_sign/00001.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_swap_usad_swap_valid_1/review/00000.png b/tests/swap/snapshots/stax/test_aleo_swap_usad_swap_valid_1/review/00000.png new file mode 100644 index 00000000..0c631970 Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_swap_usad_swap_valid_1/review/00000.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_swap_usad_swap_valid_1/review/00001.png b/tests/swap/snapshots/stax/test_aleo_swap_usad_swap_valid_1/review/00001.png new file mode 100644 index 00000000..6f478ea7 Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_swap_usad_swap_valid_1/review/00001.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_swap_usad_swap_valid_1/review/00002.png b/tests/swap/snapshots/stax/test_aleo_swap_usad_swap_valid_1/review/00002.png new file mode 100644 index 00000000..d50d4c2c Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_swap_usad_swap_valid_1/review/00002.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_swap_usad_zero_fee_swap_valid_1/post_sign/00000.png b/tests/swap/snapshots/stax/test_aleo_swap_usad_zero_fee_swap_valid_1/post_sign/00000.png new file mode 100644 index 00000000..ceda6a87 Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_swap_usad_zero_fee_swap_valid_1/post_sign/00000.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_swap_usad_zero_fee_swap_valid_1/post_sign/00001.png b/tests/swap/snapshots/stax/test_aleo_swap_usad_zero_fee_swap_valid_1/post_sign/00001.png new file mode 100644 index 00000000..6c80008b Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_swap_usad_zero_fee_swap_valid_1/post_sign/00001.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00000.png b/tests/swap/snapshots/stax/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00000.png new file mode 100644 index 00000000..0c631970 Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00000.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00001.png b/tests/swap/snapshots/stax/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00001.png new file mode 100644 index 00000000..0ac7b9e3 Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00001.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00002.png b/tests/swap/snapshots/stax/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00002.png new file mode 100644 index 00000000..d50d4c2c Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_swap_usad_zero_fee_swap_valid_1/review/00002.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_swap_valid_1/post_sign/00000.png b/tests/swap/snapshots/stax/test_aleo_swap_valid_1/post_sign/00000.png new file mode 100644 index 00000000..ceda6a87 Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_swap_valid_1/post_sign/00000.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_swap_valid_1/post_sign/00001.png b/tests/swap/snapshots/stax/test_aleo_swap_valid_1/post_sign/00001.png new file mode 100644 index 00000000..6c80008b Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_swap_valid_1/post_sign/00001.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_swap_valid_1/review/00000.png b/tests/swap/snapshots/stax/test_aleo_swap_valid_1/review/00000.png new file mode 100644 index 00000000..b0682be3 Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_swap_valid_1/review/00000.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_swap_valid_1/review/00001.png b/tests/swap/snapshots/stax/test_aleo_swap_valid_1/review/00001.png new file mode 100644 index 00000000..03b706c4 Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_swap_valid_1/review/00001.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_swap_valid_1/review/00002.png b/tests/swap/snapshots/stax/test_aleo_swap_valid_1/review/00002.png new file mode 100644 index 00000000..1a8d3e9c Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_swap_valid_1/review/00002.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_swap_valid_2/post_sign/00000.png b/tests/swap/snapshots/stax/test_aleo_swap_valid_2/post_sign/00000.png new file mode 100644 index 00000000..ceda6a87 Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_swap_valid_2/post_sign/00000.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_swap_valid_2/post_sign/00001.png b/tests/swap/snapshots/stax/test_aleo_swap_valid_2/post_sign/00001.png new file mode 100644 index 00000000..6c80008b Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_swap_valid_2/post_sign/00001.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_swap_valid_2/review/00000.png b/tests/swap/snapshots/stax/test_aleo_swap_valid_2/review/00000.png new file mode 100644 index 00000000..b0682be3 Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_swap_valid_2/review/00000.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_swap_valid_2/review/00001.png b/tests/swap/snapshots/stax/test_aleo_swap_valid_2/review/00001.png new file mode 100644 index 00000000..0460c1f9 Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_swap_valid_2/review/00001.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_swap_valid_2/review/00002.png b/tests/swap/snapshots/stax/test_aleo_swap_valid_2/review/00002.png new file mode 100644 index 00000000..1a8d3e9c Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_swap_valid_2/review/00002.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_swap_wrong_amount/post_sign/00000.png b/tests/swap/snapshots/stax/test_aleo_swap_wrong_amount/post_sign/00000.png new file mode 100644 index 00000000..053e66f3 Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_swap_wrong_amount/post_sign/00000.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_swap_wrong_amount/post_sign/00001.png b/tests/swap/snapshots/stax/test_aleo_swap_wrong_amount/post_sign/00001.png new file mode 100644 index 00000000..6c80008b Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_swap_wrong_amount/post_sign/00001.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_swap_wrong_amount/review/00000.png b/tests/swap/snapshots/stax/test_aleo_swap_wrong_amount/review/00000.png new file mode 100644 index 00000000..b0682be3 Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_swap_wrong_amount/review/00000.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_swap_wrong_amount/review/00001.png b/tests/swap/snapshots/stax/test_aleo_swap_wrong_amount/review/00001.png new file mode 100644 index 00000000..03b706c4 Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_swap_wrong_amount/review/00001.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_swap_wrong_amount/review/00002.png b/tests/swap/snapshots/stax/test_aleo_swap_wrong_amount/review/00002.png new file mode 100644 index 00000000..1a8d3e9c Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_swap_wrong_amount/review/00002.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_swap_wrong_destination/post_sign/00000.png b/tests/swap/snapshots/stax/test_aleo_swap_wrong_destination/post_sign/00000.png new file mode 100644 index 00000000..053e66f3 Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_swap_wrong_destination/post_sign/00000.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_swap_wrong_destination/post_sign/00001.png b/tests/swap/snapshots/stax/test_aleo_swap_wrong_destination/post_sign/00001.png new file mode 100644 index 00000000..6c80008b Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_swap_wrong_destination/post_sign/00001.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_swap_wrong_destination/review/00000.png b/tests/swap/snapshots/stax/test_aleo_swap_wrong_destination/review/00000.png new file mode 100644 index 00000000..b0682be3 Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_swap_wrong_destination/review/00000.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_swap_wrong_destination/review/00001.png b/tests/swap/snapshots/stax/test_aleo_swap_wrong_destination/review/00001.png new file mode 100644 index 00000000..03b706c4 Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_swap_wrong_destination/review/00001.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_swap_wrong_destination/review/00002.png b/tests/swap/snapshots/stax/test_aleo_swap_wrong_destination/review/00002.png new file mode 100644 index 00000000..1a8d3e9c Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_swap_wrong_destination/review/00002.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_swap_zero_fee_swap_valid_1/post_sign/00000.png b/tests/swap/snapshots/stax/test_aleo_swap_zero_fee_swap_valid_1/post_sign/00000.png new file mode 100644 index 00000000..ceda6a87 Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_swap_zero_fee_swap_valid_1/post_sign/00000.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_swap_zero_fee_swap_valid_1/post_sign/00001.png b/tests/swap/snapshots/stax/test_aleo_swap_zero_fee_swap_valid_1/post_sign/00001.png new file mode 100644 index 00000000..6c80008b Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_swap_zero_fee_swap_valid_1/post_sign/00001.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_swap_zero_fee_swap_valid_1/review/00000.png b/tests/swap/snapshots/stax/test_aleo_swap_zero_fee_swap_valid_1/review/00000.png new file mode 100644 index 00000000..b0682be3 Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_swap_zero_fee_swap_valid_1/review/00000.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_swap_zero_fee_swap_valid_1/review/00001.png b/tests/swap/snapshots/stax/test_aleo_swap_zero_fee_swap_valid_1/review/00001.png new file mode 100644 index 00000000..77ddf9e8 Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_swap_zero_fee_swap_valid_1/review/00001.png differ diff --git a/tests/swap/snapshots/stax/test_aleo_swap_zero_fee_swap_valid_1/review/00002.png b/tests/swap/snapshots/stax/test_aleo_swap_zero_fee_swap_valid_1/review/00002.png new file mode 100644 index 00000000..1a8d3e9c Binary files /dev/null and b/tests/swap/snapshots/stax/test_aleo_swap_zero_fee_swap_valid_1/review/00002.png differ diff --git a/tests/swap/test_aleo.py b/tests/swap/test_aleo.py new file mode 100644 index 00000000..e2aeca4c --- /dev/null +++ b/tests/swap/test_aleo.py @@ -0,0 +1,172 @@ +import pytest +from ledger_app_clients.exchange.test_runner import ExchangeTestRunner, ALL_TESTS_EXCEPT_MEMO_THORSWAP_AND_FEES +from ledger_app_clients.exchange.cal_helper import CurrencyConfiguration +from ragger.error import ExceptionRAPDU +from ragger.utils import create_currency_config + +from application_client.currency_utils import ALEO_PATH +from application_client.command_sender import CommandSender + +from . import cal_helper as cal + +def forge_public_transfer(max_base_fee: int, max_priority_fee: int, address_to: str, + amount: int, program_checksum: str = '') -> dict: + + data = {'type' : 'intent', + 'max_base_fee' : max_base_fee, 'max_priority_fee' : max_priority_fee, + 'fee_program_id' : 'credits.aleo', 'fee_function_name' : 'fee_public'} + data['request'] = {'network_id' : 'mainnet', 'program_id' : 'credits.aleo', 'function_name' : 'transfer_public'} + data['request']['inputs'] = [{'type' : 'address.public', 'value' : address_to}, + {'type' : 'u64.public', 'value' : amount}] + data['request']['nested_call_count'] = 0 + data['request']['program_checksum'] = program_checksum + + return data + +def forge_public_fee(base_fee: int, priority_fee: int, execution_id: str, program_checksum: str = '') -> dict: + data = {'type' : 'fee'} + data['request'] = {'network_id' : 'mainnet', 'program_id' : 'credits.aleo', 'function_name' : 'fee_public'} + data['request']['inputs'] = [{'type' : 'u64.public', 'value' : base_fee}, + {'type' : 'u64.public', 'value' : priority_fee}, + {'type' : 'field.public', 'value' : execution_id}] + data['request']['nested_call_count'] = 0 + data['request']['program_checksum'] = program_checksum + + return data + +def forge_arc22_token_public_transfer(max_base_fee: int, max_priority_fee: int, address_to: str, + amount: int, program_name: str, program_checksum: str = '') -> dict: + + data = {'type' : 'intent', + 'max_base_fee' : max_base_fee, 'max_priority_fee' : max_priority_fee, + 'fee_program_id' : 'credits.aleo', 'fee_function_name' : 'fee_public'} + data['request'] = {'network_id' : 'mainnet', 'program_id' : program_name, 'function_name' : 'transfer_public'} + data['request']['inputs'] = [{'type' : 'address.public', 'value' : address_to}, + {'type' : 'u128.public', 'value' : amount}] + data['request']['nested_call_count'] = 0 + data['request']['program_checksum'] = program_checksum + + return data + + +class GenericAleoTests(ExchangeTestRunner): + # The coin configuration of our currency. Replace by your own + currency_configuration = cal.ALEO_CURRENCY_CONFIGURATION + # A valid template address of a supposed trade partner. + valid_destination_1 = "aleo1sfydt6z6cnqjx3hcgk9ajw03ecj6uqlfcm9u3p3gdhckzcc2w5xqv3v3pe" + # A memo to use associated with the destination address if applicable. + valid_destination_memo_1 = "" + # A second valid template address of a supposed trade partner. + valid_destination_2 = "aleo1ktwldl75earvxjur7devnqvdccjeuqa6807078klkg0a0l6ayq8qu9xzg4" + # A second memo to use associated with the destination address if applicable. + valid_destination_memo_2 = "" + # The address of the Speculos seed on the ALEO_PATH. + valid_refund = "aleo1k7349nakx72h3q3gm8zg6f0dksnkp9p9ha93lrx6zu2gnvjzpyrsj28j54" + valid_refund_memo = "" + + # Values we ask the ExchangeTestRunner to use in the test setup + valid_send_amount_1 = 1000 + valid_send_amount_2 = 666 + valid_fees_1 = 100 + valid_fees_2 = 200 + + # Fake addresses to test the address rejection code. + fake_refund = "abcdabcd" + fake_refund_memo = "bla" + fake_payout = "abcdabcd" + fake_payout_memo = "bla" + + wrong_fees_error_code = 0xc000 + wrong_destination_error_code = 0xc000 + wrong_amount_error_code = 0xc000 + + def perform_final_tx(self, destination, send_amount, fees, memo): + client = CommandSender(self.backend) + tx_datas = forge_public_transfer(0, fees, destination, send_amount) + tx_datas['path'] = "m/44'/683'/0'/0'" + with client.sign_transaction(tx_datas=tx_datas): + pass + rapdu = client.get_async_response() + + if fees != 0: + tx_datas = forge_public_fee(0, fees, "7266375125414209082394925781071362722506946030314916664133746682226945366259field") + with client.sign_transaction(tx_datas=tx_datas): + pass + rapdu = client.get_async_response() + + +class ZeroFeeAleoTests(GenericAleoTests): + # A swap whose on-device transaction carries no fee to sign: the transfer is signed as a + # single root intent (max_base_fee = max_priority_fee = 0, nested_call_count = 0) and no + # separate fee APDU follows. This reproduces the real Changelly swap shape, where the app + # must return to Exchange right after the root signature. + valid_fees_1 = 0 + valid_fees_2 = 0 + +class USADTokenTests(GenericAleoTests): + currency_configuration = cal.ALEO_USAD_CURRENCY_CONFIGURATION + + def perform_final_tx(self, destination, send_amount, fees, memo): + client = CommandSender(self.backend) + tx_datas = forge_arc22_token_public_transfer(0, fees, destination, send_amount, "usad_stablecoin.aleo") + tx_datas['path'] = "m/44'/683'/0'/0'" + with client.sign_transaction(tx_datas=tx_datas): + pass + rapdu = client.get_async_response() + + if fees != 0: + tx_datas = forge_public_fee(0, fees, "7266375125414209082394925781071362722506946030314916664133746682226945366259field") + with client.sign_transaction(tx_datas=tx_datas): + pass + rapdu = client.get_async_response() + +class ZeroFeeUSADTokenTests(USADTokenTests): + valid_fees_1 = 0 + valid_fees_2 = 0 + +class FAKETokenTests(USADTokenTests): + currency_configuration = cal.ALEO_FAKE_CURRENCY_CONFIGURATION + +class FAKETokenTests2(GenericAleoTests): + currency_configuration = cal.ALEO_USAD_CURRENCY_CONFIGURATION + + def perform_final_tx(self, destination, send_amount, fees, memo): + client = CommandSender(self.backend) + tx_datas = forge_arc22_token_public_transfer(0, fees, destination, send_amount, "fake_stablecoin.aleo") + tx_datas['path'] = "m/44'/683'/0'/0'" + with client.sign_transaction(tx_datas=tx_datas): + pass + rapdu = client.get_async_response() + + if fees != 0: + tx_datas = forge_public_fee(0, fees, "7266375125414209082394925781071362722506946030314916664133746682226945366259field") + with client.sign_transaction(tx_datas=tx_datas): + pass + rapdu = client.get_async_response() + +class TestsAleo: + + @pytest.mark.parametrize('test_to_run', ALL_TESTS_EXCEPT_MEMO_THORSWAP_AND_FEES) + def test_aleo(self, backend, exchange_navigation_helper, test_to_run): + GenericAleoTests(backend, exchange_navigation_helper).run_test(test_to_run) + + # Regression: a root-only swap (no fee-signing step) must hand control back to Exchange + # instead of hanging on "Loading transaction". Without the fix this test times out because + # the app never calls os_lib_end() after signing the terminal root request. + def test_aleo_swap_zero_fee(self, backend, exchange_navigation_helper): + ZeroFeeAleoTests(backend, exchange_navigation_helper).run_test("swap_valid_1") + + def test_aleo_swap_usad(self, backend, exchange_navigation_helper): + USADTokenTests(backend, exchange_navigation_helper).run_test("swap_valid_1") + + def test_aleo_swap_usad_zero_fee(self, backend, exchange_navigation_helper): + ZeroFeeUSADTokenTests(backend, exchange_navigation_helper).run_test("swap_valid_1") + + def test_aleo_swap_fake(self, backend, exchange_navigation_helper): + with pytest.raises(ExceptionRAPDU) as e: + FAKETokenTests(backend, exchange_navigation_helper).run_test("swap_valid_1") + assert e.value.status in [0xc000] + + with pytest.raises(ExceptionRAPDU) as e: + FAKETokenTests2(backend, exchange_navigation_helper).run_test("swap_valid_1") + assert e.value.status in [0xc000, 0x6a80] diff --git a/unit-tests/CMakeLists.txt b/unit-tests/CMakeLists.txt index 88027293..0043bcc2 100644 --- a/unit-tests/CMakeLists.txt +++ b/unit-tests/CMakeLists.txt @@ -90,6 +90,7 @@ include_directories(../src/account) include_directories(../src/db) include_directories(../src/format) include_directories(../src/helper) +include_directories(../src/swap) include_directories(../src/token) include_directories(../src/transaction) include_directories($ENV{BOLOS_SDK}/lib_standard_app) @@ -142,7 +143,7 @@ add_library(signature SHARED ../src/account/signature.c) add_library(transaction SHARED ../src/transaction/tx_extract.c ../src/transaction/tx_parse.c ../src/db/db_program_function.c ../src/db/db.c ../src/db/db_tokens.c) add_library(send_response SHARED ../src/helper/send_response.c) add_library(db SHARED ../src/db/db.c ../src/db/db_program_function.c ../src/db/db_tokens.c) -add_library(formatting SHARED ../src/format/format_u128.c) +add_library(formatting SHARED ../src/format/format_u128.c ../src/swap/aleo_swap_utils.c) # Common link set for tests that use TLV parsing set(COMMON_LIBS buffer read write varint format cmocka gcov stubs_os_utils) diff --git a/unit-tests/stubs/os.h b/unit-tests/stubs/os.h index 9d11d0cc..8e80b31b 100644 --- a/unit-tests/stubs/os.h +++ b/unit-tests/stubs/os.h @@ -5,6 +5,9 @@ #include "cx.h" #include "os_print.h" #include "os_pic.h" +#include "os_lib.h" typedef uint32_t bolos_err_t; -#define SWO_OK 0x0000 \ No newline at end of file +#define SWO_OK 0x0000 + +void os_sched_exit(int status); diff --git a/unit-tests/stubs/os_io.h b/unit-tests/stubs/os_io.h index 6f70f09b..b120780a 100644 --- a/unit-tests/stubs/os_io.h +++ b/unit-tests/stubs/os_io.h @@ -1 +1,3 @@ #pragma once + +#define os_io_stop() diff --git a/unit-tests/stubs/os_lib.h b/unit-tests/stubs/os_lib.h new file mode 100644 index 00000000..8f91352c --- /dev/null +++ b/unit-tests/stubs/os_lib.h @@ -0,0 +1,3 @@ +#pragma once + +#define os_lib_end() diff --git a/unit-tests/stubs/os_utils_stubs.c b/unit-tests/stubs/os_utils_stubs.c index 95e30bff..1f575b31 100644 --- a/unit-tests/stubs/os_utils_stubs.c +++ b/unit-tests/stubs/os_utils_stubs.c @@ -17,3 +17,8 @@ void pic_init(void *pic_flash_start, void *pic_ram_start) (void) pic_flash_start; (void) pic_ram_start; } + +void os_sched_exit(int status) +{ + (void) status; +} diff --git a/unit-tests/test_formatting.c b/unit-tests/test_formatting.c index 249efec0..43cc79d1 100644 --- a/unit-tests/test_formatting.c +++ b/unit-tests/test_formatting.c @@ -9,6 +9,7 @@ #include "cx_errors.h" #include "format_u128.h" +#include "aleo_swap_utils.h" static void test_formatting(void **state) { @@ -55,9 +56,70 @@ static void test_formatting(void **state) assert_false(format_fpu128(temp, 9, amount, 12)); } +static void test_swap_str_to_u128(void **state) +{ + (void) state; + + u128_t result; + + // Invalid inputs + assert_false(swap_str_to_u128(NULL, 1, &result)); + assert_false(swap_str_to_u128("\x01", 1, NULL)); + assert_false(swap_str_to_u128("\x01", 0, &result)); + // Overflow: 17 bytes exceed 128 bits + assert_false(swap_str_to_u128("\x01\x02\x03\x04\x05\x06\x07\x08" + "\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11", + 17, + &result)); + + // Single zero byte + assert_true(swap_str_to_u128("\x00", 1, &result)); + assert_int_equal(result.high, 0); + assert_int_equal(result.low, 0); + + // Single byte + assert_true(swap_str_to_u128("\x2A", 1, &result)); + assert_int_equal(result.high, 0); + assert_true(result.low == 0x2A); + + // 4 bytes (big-endian) + assert_true(swap_str_to_u128("\x12\x34\x56\x78", 4, &result)); + assert_int_equal(result.high, 0); + assert_true(result.low == 0x12345678); + + // 8 bytes (fills low exactly) + assert_true(swap_str_to_u128("\x01\x23\x45\x67\x01\x23\x45\x67", 8, &result)); + assert_int_equal(result.high, 0); + assert_true(result.low == 0x0123456701234567); + + // 9 bytes (spills into high) + assert_true(swap_str_to_u128("\x01\x02\x03\x04\x05\x06\x07\x08\x09", 9, &result)); + assert_true(result.high == 0x01); + assert_true(result.low == 0x0203040506070809); + + // 16 bytes (max capacity, all in safe range) + assert_true(swap_str_to_u128("\x01\x02\x03\x04\x05\x06\x07\x08" + "\x09\x0A\x0B\x0C\x0D\x0E\x0F\x10", + 16, + &result)); + assert_true(result.high == 0x0102030405060708); + assert_true(result.low == 0x090A0B0C0D0E0F10); + + // 16 bytes with zeros in high + assert_true(swap_str_to_u128("\x00\x00\x00\x00\x00\x00\x00\x01" + "\x00\x00\x00\x00\x00\x00\x00\x01", + 16, + &result)); + assert_true(result.high == 0x0000000000000001); + assert_true(result.low == 0x0000000000000001); +} + int main() { - const struct CMUnitTest tests[] = {cmocka_unit_test(test_formatting)}; + const struct CMUnitTest tests[] = { + cmocka_unit_test(test_formatting), + cmocka_unit_test(test_swap_str_to_u128), + }; return cmocka_run_group_tests(tests, NULL, NULL); } diff --git a/unit-tests/test_send_response.c b/unit-tests/test_send_response.c index b6cac06a..ac47f52f 100644 --- a/unit-tests/test_send_response.c +++ b/unit-tests/test_send_response.c @@ -14,6 +14,9 @@ #include "send_response.h" global_ctx_t G_context; +bool G_called_from_swap = false; +bool G_swap_response_ready = false; +uint8_t *G_swap_signing_return_value_address; int io_send_response_buffers(const buffer_t *rdatalist, size_t count, uint16_t sw) { @@ -139,8 +142,10 @@ static void test_send_response(void **state) // helper_send_response_get_tvk const char *tvk_apdu = "\x20\xda\x7a\x28\xb6\x78\xa5\x07\x38\x57\xf4\x2b\x4a\x32\x27\xdd\xb3\x37\xcd\x29\x3c\x6b\xc0\x3b\x6e\xb5\x6b\xc8\xeb\xde\x83\x38\x90\x00"; - will_return(io_legacy_apdu_tx, tvk_apdu); - will_return(io_legacy_apdu_tx, 35); + will_return(io_send_response_buffers, tvk_apdu); + will_return(io_send_response_buffers, 33); + will_return(io_send_response_buffers, 1); + will_return(io_send_response_buffers, 0x9000); assert_int_equal(helper_send_response_get_tvk(&tvk), 0); } diff --git a/unit-tests/test_signature.c b/unit-tests/test_signature.c index 441ab9f4..d851a12c 100644 --- a/unit-tests/test_signature.c +++ b/unit-tests/test_signature.c @@ -12,6 +12,9 @@ #include "signature.h" global_ctx_t G_context; +bool G_called_from_swap = false; +bool G_swap_response_ready = false; +uint8_t *G_swap_signing_return_value_address; static void prepare_random_ok(uint8_t *random_bn) { @@ -462,7 +465,7 @@ static void test_signature(void **state) prepare_random_ok(random_bn); prepare_scalar_mult_ok(); prepare_scalar_mult_ok(); - request_batch_private.inputs[0].value_length = (12+34)*32; + request_batch_private.inputs[0].value_length = (12 + 34) * 32; assert_int_equal(sign_prepared_request(&G_context.account, &request_batch_private), -1); request_batch_private.inputs[0].value_length = 96;