diff --git a/Makefile b/Makefile index 4e11752..9d9db5c 100644 --- a/Makefile +++ b/Makefile @@ -32,7 +32,7 @@ APP_LOAD_PARAMS += $(COMMON_LOAD_PARAMS) APPNAME = "TON" APPVERSION_M = 2 -APPVERSION_N = 1 +APPVERSION_N = 2 APPVERSION_P = 0 APPVERSION = "$(APPVERSION_M).$(APPVERSION_N).$(APPVERSION_P)" @@ -82,6 +82,10 @@ else endif endif +ifneq ($(TARGET_NAME),TARGET_NANOS) + DEFINES += HAVE_HARDCODED_JETTONS +endif + DEBUG = 0 ifneq ($(DEBUG),0) DEFINES += HAVE_PRINTF diff --git a/doc/COMMANDS.md b/doc/COMMANDS.md index 26b9fdf..975a44b 100644 --- a/doc/COMMANDS.md +++ b/doc/COMMANDS.md @@ -47,12 +47,13 @@ Use P2 to control what kind of address to present to user: * set bit 0x01 to make address testnet only * set bit 0x02 to use masterchain instead of basechain for the address +* set bit 0x04 to include is_v3r2 flag and subwallet_id The bip32 path must be at least 3 elements long and must start with the prefix `m/44'/607'/`. | CLA | INS | P1 | P2 | Lc | CData | | --- | --- | --- | --- | --- | --- | -| 0xE0 | 0x05 | 0x00 (no display)
0x01 (display) | 0x00-0x03 | 1 + 4n | `len(bip32_path) (1)` \|\|
`bip32_path{1} (4)` \|\|
`...` \|\|
`bip32_path{n} (4)` | +| 0xE0 | 0x05 | 0x00 (no display)
0x01 (display) | 0x00-0x07 | 1 + 4n + (0 or 5) | `len(bip32_path) (1)` \|\|
`bip32_path{1} (4)` \|\|
`...` \|\|
`bip32_path{n} (4)` \|\|
(if `P2 & 0x04`) `is_v3r2 (1)` (`0x00` or `0x01`) \|\|
(if `P2 & 0x04`) `subwallet_id (4)` | ### Response @@ -89,6 +90,7 @@ Then an arbitrary number of chunks with transaction data (see [TRANSACTION.md](. Use P2 to control what kind of address to present to user: * set bit 0x01 to make address testnet only * set bit 0x02 to use masterchain instead of basechain for the address +* set bit 0x04 to include is_v3r2 flag and subwallet_id The bip32 path must be at least 3 elements long and must start with the prefix `m/44'/607'/`. @@ -98,7 +100,7 @@ Proofs are generated according to this [spec](https://github.com/ton-blockchain/ | CLA | INS | P1 | P2 | Lc | CData | | --- | --- | --- | --- | --- | --- | -| 0xE0 | 0x08 | 0x01 | 0x00-0x03 | 1 + 4n + 1 + d + 8 + p | `len(bip32_path) (1)` \|\|
`bip32_path{1} (4)` \|\|
`...` \|\|
`bip32_path{n} (4)` \|\|
`len(app_domain) == d (1)` \|\|
`app_domain (d)` \|\|
`timestamp (8)` \|\|
`payload (p)` | +| 0xE0 | 0x08 | 0x01 | 0x00-0x03 | 1 + 4n + 1 + d + 8 + p | `len(bip32_path) (1)` \|\|
`bip32_path{1} (4)` \|\|
`...` \|\|
`bip32_path{n} (4)` \|\|
(if `P2 & 0x04`) `is_v3r2 (1)` (`0x00` or `0x01`) \|\|
(if `P2 & 0x04`) `subwallet_id (4)` \|\|
`len(app_domain) == d (1)` \|\|
`app_domain (d)` \|\|
`timestamp (8)` \|\|
`payload (p)` | ### Response diff --git a/doc/MESSAGES.md b/doc/MESSAGES.md index e4813ff..cc07a2b 100644 --- a/doc/MESSAGES.md +++ b/doc/MESSAGES.md @@ -45,8 +45,10 @@ transfer#0f8a7ea5 query_id:uint64 amount:(VarUInteger 16) destination:MsgAddress ### Hints | Value | Length or type | Description | | --- | --- | --- | -| `has_query_id` | 1 | Whether `query_id` is present | -| `query_id` | 0 or 8 | `query_id` for the message, 0 will be used if `!has_query_id` | +| `flags` | 1 | Bit +1 - whether `query_id` is present, bit +2 - whether this is a known jetton (bit +2 is not available on nano S) | +| `query_id` | 0 or 8 | `query_id` for the message, 0 will be used if not present. Present only when `flags & 1` | +| `jetton_id` | 0 or 2 | ID of the known jetton. Present only when `flags & 2` | +| `owner_workchain` | 0 or 1 | Workchain of owner. Present only when `flags & 2` | | `amount` | `varuint` | Jetton amount | | `destination` | `address` | Whom to transfer jettons to | | `response_destination` | `address` | Whom to transfer the excess of TON to | diff --git a/src/address.c b/src/address.c index f433ddb..f3617a4 100644 --- a/src/address.c +++ b/src/address.c @@ -77,6 +77,8 @@ const uint8_t root_header[] = { 0xd5, 0xc0}; +const uint8_t v3r2_root_header[] = { 0x2, 0x1, 0x34, 0x0, 0x0, 0x0, 0x0, 0x84, 0xda, 0xfa, 0x44, 0x9f, 0x98, 0xa6, 0x98, 0x77, 0x89, 0xba, 0x23, 0x23, 0x58, 0x7, 0x2b, 0xc0, 0xf7, 0x6d, 0xc4, 0x52, 0x40, 0x2, 0xa5, 0xd0, 0x91, 0x8b, 0x9a, 0x75, 0xd2, 0xd5, 0x99 }; + const uint8_t data_header[] = { 0x00, 0x51, // Cell header @@ -84,17 +86,22 @@ const uint8_t data_header[] = { 0x00, 0x00, 0x00, // Seqno - 0x29, - 0xa9, - 0xa3, - 0x17, // Wallet ID +}; + +const uint8_t v3r2_data_header[] = { + 0x00, + 0x50, // Cell header + 0x00, + 0x00, + 0x00, + 0x00, // Seqno }; const uint8_t data_tail[] = { 0x40 // zero bit + padding }; -bool pubkey_to_hash(const uint8_t public_key[static PUBKEY_LEN], uint8_t *out, size_t out_len) { +bool pubkey_to_hash(const uint8_t public_key[static PUBKEY_LEN], const uint32_t subwallet_id, const bool is_v3r2, uint8_t *out, size_t out_len) { if (out_len != HASH_LEN) { return false; } @@ -102,20 +109,39 @@ bool pubkey_to_hash(const uint8_t public_key[static PUBKEY_LEN], uint8_t *out, s uint8_t inner[HASH_LEN] = {0}; cx_sha256_t state; + uint8_t subwallet_buf[4]; + subwallet_buf[0] = (subwallet_id >> 24) & 0xff; + subwallet_buf[1] = (subwallet_id >> 16) & 0xff; + subwallet_buf[2] = (subwallet_id >> 8) & 0xff; + subwallet_buf[3] = subwallet_id & 0xff; + // Hash init data cell bits SAFE(cx_sha256_init_no_throw(&state)); - SAFE(cx_hash_no_throw((cx_hash_t *) &state, 0, data_header, sizeof(data_header), NULL, 0)); - SAFE(cx_hash_no_throw((cx_hash_t *) &state, 0, public_key, PUBKEY_LEN, NULL, 0)); - SAFE(cx_hash_no_throw((cx_hash_t *) &state, - CX_LAST, - data_tail, - sizeof(data_tail), - inner, - sizeof(inner))); + if (is_v3r2) { + SAFE(cx_hash_no_throw((cx_hash_t *) &state, 0, v3r2_data_header, sizeof(v3r2_data_header), NULL, 0)); + } else { + SAFE(cx_hash_no_throw((cx_hash_t *) &state, 0, data_header, sizeof(data_header), NULL, 0)); + } + SAFE(cx_hash_no_throw((cx_hash_t *) &state, 0, subwallet_buf, sizeof(subwallet_buf), NULL, 0)); + if (is_v3r2) { + SAFE(cx_hash_no_throw((cx_hash_t *) &state, CX_LAST, public_key, PUBKEY_LEN, inner, sizeof(inner))); + } else { + SAFE(cx_hash_no_throw((cx_hash_t *) &state, 0, public_key, PUBKEY_LEN, NULL, 0)); + SAFE(cx_hash_no_throw((cx_hash_t *) &state, + CX_LAST, + data_tail, + sizeof(data_tail), + inner, + sizeof(inner))); + } // Hash root SAFE(cx_sha256_init_no_throw(&state)); - SAFE(cx_hash_no_throw((cx_hash_t *) &state, 0, root_header, sizeof(root_header), NULL, 0)); + if (is_v3r2) { + SAFE(cx_hash_no_throw((cx_hash_t *) &state, 0, v3r2_root_header, sizeof(v3r2_root_header), NULL, 0)); + } else { + SAFE(cx_hash_no_throw((cx_hash_t *) &state, 0, root_header, sizeof(root_header), NULL, 0)); + } SAFE(cx_hash_no_throw((cx_hash_t *) &state, CX_LAST, inner, sizeof(inner), out, out_len)); return true; @@ -125,6 +151,8 @@ bool address_from_pubkey(const uint8_t public_key[static PUBKEY_LEN], const uint8_t chain, const bool bounceable, const bool testOnly, + const uint32_t subwallet_id, + const bool is_v3r2, uint8_t *out, size_t out_len) { if (out_len < ADDRESS_LEN) { @@ -133,7 +161,7 @@ bool address_from_pubkey(const uint8_t public_key[static PUBKEY_LEN], uint8_t hash[HASH_LEN] = {0}; - if (!pubkey_to_hash(public_key, hash, sizeof(hash))) { + if (!pubkey_to_hash(public_key, subwallet_id, is_v3r2, hash, sizeof(hash))) { return false; } diff --git a/src/address.h b/src/address.h index 16d496c..f2adac5 100644 --- a/src/address.h +++ b/src/address.h @@ -12,6 +12,10 @@ * @param[in] public_key * Pointer to byte buffer with public key. * The public key is represented as 32 bytes. + * @param[in] subwallet_id + * Subwallet ID to be used when deriving wallet hash. + * @param[in] is_v3r2 + * Whether to use wallet version V3R2 or V4. * @param[out] out * Pointer to output byte buffer for address. * @param[in] out_len @@ -20,7 +24,7 @@ * @return true if success, false otherwise. * */ -bool pubkey_to_hash(const uint8_t public_key[static PUBKEY_LEN], uint8_t *out, size_t out_len); +bool pubkey_to_hash(const uint8_t public_key[static PUBKEY_LEN], const uint32_t subwallet_id, const bool is_v3r2, uint8_t *out, size_t out_len); /** * Convert public key to address. Uses Wallet V4 contract. @@ -34,6 +38,10 @@ bool pubkey_to_hash(const uint8_t public_key[static PUBKEY_LEN], uint8_t *out, s * Address have to have bounceable flag set * @param[in] testOnly * Address have to have testnet flag set + * @param[in] subwallet_id + * Subwallet ID to be used when deriving wallet address. + * @param[in] is_v3r2 + * Whether to use wallet version V3R2 or V4. * @param[out] out * Pointer to output byte buffer for address. * @param[in] out_len @@ -46,5 +54,7 @@ bool address_from_pubkey(const uint8_t public_key[static PUBKEY_LEN], const uint8_t chain, const bool bounceable, const bool testOnly, + const uint32_t subwallet_id, + const bool is_v3r2, uint8_t *out, size_t out_len); diff --git a/src/apdu/params.h b/src/apdu/params.h index f811e33..ee8c34c 100644 --- a/src/apdu/params.h +++ b/src/apdu/params.h @@ -40,7 +40,12 @@ */ #define P2_ADDR_FLAG_MASTERCHAIN 0x02 +/** + * P2 bit indicating that wallet specifiers (subwallet_id and version) are present. + */ +#define P2_ADDR_FLAG_WALLET_SPECIFIERS 0x04 + /** * P2 containing all address display bits. */ -#define P2_ADDR_FLAGS_MAX (P2_ADDR_FLAG_TESTNET | P2_ADDR_FLAG_MASTERCHAIN) +#define P2_ADDR_FLAGS_MAX (P2_ADDR_FLAG_TESTNET | P2_ADDR_FLAG_MASTERCHAIN | P2_ADDR_FLAG_WALLET_SPECIFIERS) diff --git a/src/handler/get_public_key.c b/src/handler/get_public_key.c index 43468b4..1b7d62c 100644 --- a/src/handler/get_public_key.c +++ b/src/handler/get_public_key.c @@ -32,6 +32,7 @@ #include "../common/bip32_check.h" #include "../ui/display.h" #include "../helper/send_response.h" +#include "../apdu/params.h" int handler_get_public_key(uint8_t flags, buffer_t *cdata, bool display) { explicit_bzero(&G_context, sizeof(G_context)); @@ -53,6 +54,16 @@ int handler_get_public_key(uint8_t flags, buffer_t *cdata, bool display) { return io_send_sw(SW_BAD_STATE); } + if (flags & P2_ADDR_FLAG_WALLET_SPECIFIERS) { + if (!buffer_read_bool(cdata, &G_context.pk_info.is_v3r2) || + !buffer_read_u32(cdata, &G_context.pk_info.subwallet_id, BE)) { + return io_send_sw(SW_WRONG_DATA_LENGTH); + } + } else { + G_context.pk_info.subwallet_id = 698983191; + G_context.pk_info.is_v3r2 = false; + } + if (display) { return ui_display_address(flags); } diff --git a/src/proof/proof_deserialize.c b/src/proof/proof_deserialize.c index 4c1e994..4996ea3 100644 --- a/src/proof/proof_deserialize.c +++ b/src/proof/proof_deserialize.c @@ -44,7 +44,19 @@ bool deserialize_proof(buffer_t *cdata, uint8_t flags) { return false; } + if (flags & P2_ADDR_FLAG_WALLET_SPECIFIERS) { + if (!buffer_read_bool(cdata, &G_context.proof_info.is_v3r2) || + !buffer_read_u32(cdata, &G_context.proof_info.subwallet_id, BE)) { + return io_send_sw(SW_WRONG_DATA_LENGTH); + } + } else { + G_context.proof_info.subwallet_id = 698983191; + G_context.proof_info.is_v3r2 = false; + } + if (!pubkey_to_hash(G_context.proof_info.raw_public_key, + G_context.proof_info.subwallet_id, + G_context.proof_info.is_v3r2, G_context.proof_info.address_hash, sizeof(G_context.proof_info.address_hash))) { io_send_sw(SW_DISPLAY_ADDRESS_FAIL); diff --git a/src/transaction/transaction_hints.c b/src/transaction/transaction_hints.c index 31fea5c..761f14d 100644 --- a/src/transaction/transaction_hints.c +++ b/src/transaction/transaction_hints.c @@ -14,6 +14,8 @@ #include "../common/bits.h" #include "../common/cell.h" #include "../globals.h" +#include "../crypto.h" +#include "../address.h" #define SAFE(RES) \ if (!RES) { \ @@ -29,6 +31,195 @@ static const uint8_t dns_key_wallet[32] = { 0xe8, 0xd4, 0x40, 0x50, 0x87, 0x3d, 0xba, 0x86, 0x5a, 0xa7, 0xc1, 0x70, 0xab, 0x4c, 0xce, 0x64, 0xd9, 0x08, 0x39, 0xa3, 0x4d, 0xcf, 0xd6, 0xcf, 0x71, 0xd1, 0x4e, 0x02, 0x05, 0x44, 0x3b, 0x1b}; +#ifdef HAVE_HARDCODED_JETTONS + +static void assemble_usdt_state(CellRef_t* out, const CellRef_t *code, address_t* owner, address_t* master) { + BitString_t bits; + CellRef_t refs[2]; + refs[0] = *code; + + BitString_init(&bits); + BitString_storeUint(&bits, 0, 4); + BitString_storeCoins(&bits, 0); + BitString_storeAddress(&bits, owner->chain, owner->hash); + BitString_storeAddress(&bits, master->chain, master->hash); + hash_Cell(&bits, NULL, 0, &refs[1]); + + BitString_init(&bits); + BitString_storeUint(&bits, 0b00110, 5); + hash_Cell(&bits, refs, 2, out); +} + +static void assemble_tston_state(CellRef_t* out, const CellRef_t *code, address_t* owner, address_t* master) { + BitString_t bits; + CellRef_t refs[2]; + refs[0] = *code; + + BitString_init(&bits); + BitString_storeCoins(&bits, 0); + BitString_storeAddress(&bits, owner->chain, owner->hash); + BitString_storeAddress(&bits, master->chain, master->hash); + BitString_storeCoins(&bits, 0); + BitString_storeUint(&bits, 0, 48); + hash_Cell(&bits, refs, 1, &refs[1]); + + BitString_init(&bits); + BitString_storeUint(&bits, 0b00110, 5); + hash_Cell(&bits, refs, 2, out); +} + +static void assemble_wston_state(CellRef_t* out, const CellRef_t *code, address_t* owner, address_t* master) { + BitString_t bits; + CellRef_t refs[2]; + refs[0] = *code; + + BitString_init(&bits); + BitString_storeCoins(&bits, 0); + BitString_storeAddress(&bits, owner->chain, owner->hash); + BitString_storeAddress(&bits, master->chain, master->hash); + BitString_storeBit(&bits, 0); + hash_Cell(&bits, refs, 1, &refs[1]); + + BitString_init(&bits); + BitString_storeUint(&bits, 0b00110, 5); + hash_Cell(&bits, refs, 2, out); +} + +static void assemble_hton_state(CellRef_t* out, const CellRef_t *code, address_t* owner, address_t* master) { + BitString_t bits; + CellRef_t refs[2]; + refs[0] = *code; + + BitString_init(&bits); + BitString_storeAddress(&bits, owner->chain, owner->hash); + BitString_storeAddress(&bits, master->chain, master->hash); + BitString_storeCoins(&bits, 0); + BitString_storeBit(&bits, 0); + BitString_storeCoins(&bits, 0); + hash_Cell(&bits, NULL, 0, &refs[1]); + + BitString_init(&bits); + BitString_storeUint(&bits, 0b00110, 5); + hash_Cell(&bits, refs, 2, out); +} + +static void assemble_stton_state(CellRef_t* out, const CellRef_t *code, address_t* owner, address_t* master) { + BitString_t bits; + CellRef_t refs[2]; + refs[0] = *code; + + BitString_init(&bits); + BitString_storeCoins(&bits, 0); + BitString_storeAddress(&bits, owner->chain, owner->hash); + BitString_storeAddress(&bits, master->chain, master->hash); + hash_Cell(&bits, refs, 1, &refs[1]); + + BitString_init(&bits); + BitString_storeUint(&bits, 0b00110, 5); + hash_Cell(&bits, refs, 2, out); +} + +static bool jetton_state_assembler_dispatcher(CellRef_t* out, const CellRef_t *code, address_t* owner, address_t* master, uint8_t state_assembler_idx) { + switch (state_assembler_idx) { + case 0: + assemble_usdt_state(out, code, owner, master); + return true; + case 1: + assemble_tston_state(out, code, owner, master); + return true; + case 2: + assemble_wston_state(out, code, owner, master); + return true; + case 3: + assemble_hton_state(out, code, owner, master); + return true; + case 4: + assemble_stton_state(out, code, owner, master); + return true; + } + return false; +} + +typedef struct { + uint8_t master_hash[32]; + char name[8]; + CellRef_t code; + uint8_t master_workchain; + uint8_t decimals; + uint8_t state_assembler_idx; +} jetton_t; + +static const jetton_t jettons[] = { + { + .master_hash = {0xb1, 0x13, 0xa9, 0x94, 0xb5, 0x2, 0x4a, 0x16, 0x71, 0x9f, 0x69, 0x13, 0x93, 0x28, 0xeb, 0x75, 0x95, 0x96, 0xc3, 0x8a, 0x25, 0xf5, 0x90, 0x28, 0xb1, 0x46, 0xfe, 0xcd, 0xc3, 0x62, 0x1d, 0xfe}, + .name = "USDT", + .code = { + .hash = {0x89, 0x46, 0x8f, 0x2, 0xc7, 0x8e, 0x57, 0x8, 0x2, 0xe3, 0x99, 0x79, 0xc8, 0x51, 0x6f, 0xc3, 0x8d, 0xf0, 0x7e, 0xa7, 0x6a, 0x48, 0x35, 0x7e, 0x5, 0x36, 0xf2, 0xba, 0x7b, 0x3e, 0xe3, 0x7b}, + .max_depth = 0, + }, + .master_workchain = 0, + .decimals = 6, + .state_assembler_idx = 0, + }, + { + .master_hash = {0x2f, 0x95, 0x61, 0x43, 0xc4, 0x61, 0x76, 0x95, 0x79, 0xba, 0xef, 0x2e, 0x32, 0xcc, 0x2d, 0x7b, 0xc1, 0x82, 0x83, 0xf4, 0xd, 0x20, 0xbb, 0x3, 0xe4, 0x32, 0xcd, 0x60, 0x3a, 0xc3, 0x3f, 0xfc}, + .name = "NOT", + .code = { + .hash = {0x8d, 0x28, 0xea, 0x42, 0x1b, 0x77, 0xe8, 0x5, 0xfe, 0xa5, 0x2a, 0xcf, 0x33, 0x52, 0x96, 0x49, 0x9f, 0x3, 0xae, 0xc8, 0xe9, 0xfd, 0x21, 0xdd, 0xb5, 0xf2, 0x56, 0x4a, 0xa6, 0x5c, 0x48, 0xde}, + .max_depth = 0, + }, + .master_workchain = 0, + .decimals = 9, + .state_assembler_idx = 0, + }, + { + .master_hash = {0xbd, 0xf3, 0xfa, 0x80, 0x98, 0xd1, 0x29, 0xb5, 0x4b, 0x4f, 0x73, 0xb5, 0xba, 0xc5, 0xd1, 0xe1, 0xfd, 0x91, 0xeb, 0x5, 0x41, 0x69, 0xc3, 0x91, 0x6d, 0xfc, 0x8c, 0xcd, 0x53, 0x6d, 0x10, 0x0}, + .name = "tsTON", + .code = { + .hash = {0x8, 0x96, 0x21, 0xdd, 0x77, 0xe0, 0xa9, 0xa4, 0xae, 0x44, 0x27, 0x9e, 0x59, 0x2f, 0x13, 0xd6, 0xab, 0x5c, 0x55, 0xde, 0xcd, 0x60, 0xcc, 0x9e, 0xc3, 0x6b, 0x7c, 0x2a, 0xe4, 0xd, 0x15, 0x95}, + .max_depth = 0, + }, + .master_workchain = 0, + .decimals = 9, + .state_assembler_idx = 1, + }, + { + .master_hash = {0x74, 0x4a, 0x8c, 0x6e, 0x18, 0x3c, 0x79, 0xaa, 0x35, 0x6d, 0xd0, 0xff, 0xdb, 0x3c, 0x80, 0x85, 0x79, 0x67, 0x45, 0x2c, 0x19, 0x95, 0xa2, 0x91, 0xe1, 0x8e, 0x7, 0xec, 0xd2, 0xaf, 0xb0, 0xb1}, + .name = "wsTON", + .code = { + .hash = {0xda, 0x4d, 0x2, 0xf6, 0xb4, 0xea, 0x63, 0x4, 0x16, 0xc3, 0x34, 0x9a, 0xfc, 0x75, 0xc8, 0x2, 0x15, 0x1b, 0xb1, 0x6f, 0xd6, 0x47, 0xae, 0x9f, 0x73, 0xbd, 0xe0, 0x17, 0x73, 0x55, 0x72, 0x31}, + .max_depth = 7, + }, + .master_workchain = 0, + .decimals = 9, + .state_assembler_idx = 2, + }, + { + .master_hash = {0xcf, 0x76, 0xaf, 0x31, 0x8c, 0x8, 0x72, 0xb5, 0x8a, 0x9f, 0x19, 0x25, 0xfc, 0x29, 0xc1, 0x56, 0x21, 0x17, 0x82, 0xb9, 0xfb, 0x1, 0xf5, 0x67, 0x60, 0xd2, 0x92, 0xe5, 0x61, 0x23, 0xbf, 0x87}, + .name = "hTON", + .code = { + .hash = {0x50, 0xb9, 0x17, 0xd9, 0xfd, 0x5b, 0x95, 0x76, 0x9, 0x93, 0x28, 0x76, 0x77, 0xd0, 0x48, 0x12, 0xa1, 0x5a, 0xa5, 0x5e, 0x6b, 0x71, 0xd0, 0xf9, 0x22, 0x6e, 0xcd, 0x7c, 0x20, 0xc3, 0xd8, 0x2a}, + .max_depth = 0, + }, + .master_workchain = 0, + .decimals = 9, + .state_assembler_idx = 3, + }, + { + .master_hash = {0xcd, 0x87, 0x2f, 0xa7, 0xc5, 0x81, 0x60, 0x52, 0xac, 0xdf, 0x53, 0x32, 0x26, 0x4, 0x43, 0xfa, 0xec, 0x9a, 0xac, 0xc8, 0xc2, 0x1c, 0xca, 0x4d, 0x92, 0xe7, 0xf4, 0x70, 0x34, 0xd1, 0x18, 0x92}, + .name = "stTON", + .code = { + .hash = {0x2d, 0x79, 0x72, 0xf7, 0x12, 0xfc, 0x39, 0x8b, 0xc3, 0x2f, 0x67, 0x96, 0x98, 0xa, 0xd7, 0x11, 0x90, 0x74, 0x34, 0xa3, 0x11, 0xb5, 0x7f, 0xe7, 0x2d, 0x20, 0xf7, 0x51, 0xb, 0x21, 0x23, 0xe6}, + .max_depth = 6, + }, + .master_workchain = 0, + .decimals = 9, + .state_assembler_idx = 4, + }, +}; + +#endif + bool process_hints(transaction_t* tx) { // Default title snprintf(tx->title, sizeof(tx->title), "Transaction"); @@ -88,14 +279,16 @@ bool process_hints(transaction_t* tx) { tx->hints_type == TRANSACTION_TRANSFER_NFT) { int ref_count = 0; CellRef_t refs[2] = {0}; + uint8_t flags; BitString_init(&bits); BitString_storeUint(&bits, tx->hints_type == TRANSACTION_TRANSFER_JETTON ? 0x0f8a7ea5 : 0x5fcc3d14, 32); - SAFE(buffer_read_bool(&buf, &tmp)); - if (tmp) { + SAFE(buffer_read_u8(&buf, &flags)); + bool has_query_id = flags & 1; + if (has_query_id) { uint64_t query_id; SAFE(buffer_read_u64(&buf, &query_id, BE)); BitString_storeUint(&bits, query_id, 64); @@ -104,12 +297,59 @@ bool process_hints(transaction_t* tx) { } if (tx->hints_type == TRANSACTION_TRANSFER_JETTON) { - uint8_t amount_size; - uint8_t amount_buf[MAX_VALUE_BYTES_LEN]; - SAFE(buffer_read_varuint(&buf, &amount_size, amount_buf, MAX_VALUE_BYTES_LEN)); - BitString_storeCoinsBuf(&bits, amount_buf, amount_size); + bool has_jetton_id = (flags & 2) != 0; + if (has_jetton_id) { +#ifdef HAVE_HARDCODED_JETTONS + uint16_t jetton_id; + SAFE(buffer_read_u16(&buf, &jetton_id, BE)); + + if (jetton_id > sizeof(jettons) / sizeof(jettons[0])) { + return false; + } + + CellRef_t state_init; + + address_t owner; + + SAFE(buffer_read_u8(&buf, &owner.chain)); + + uint8_t pubkey[32]; + + if (crypto_derive_public_key(G_context.bip32_path, + G_context.bip32_path_len, + pubkey) < 0) { + return false; + } + + SAFE(pubkey_to_hash(pubkey, G_context.tx_info.transaction.subwallet_id, !G_context.tx_info.transaction.include_wallet_op, owner.hash, sizeof(owner.hash))); + + address_t master; + memcpy(master.hash, jettons[jetton_id].master_hash, 32); + master.chain = jettons[jetton_id].master_workchain; - add_hint_amount(&tx->hints, "Jetton units", "", amount_buf, amount_size, 0); + SAFE(jetton_state_assembler_dispatcher(&state_init, &jettons[jetton_id].code, &owner, &master, jettons[jetton_id].state_assembler_idx)); + + if (memcmp(state_init.hash, G_context.tx_info.transaction.to.hash, 32) != 0) { + return false; + } + + uint8_t amount_size; + uint8_t amount_buf[MAX_VALUE_BYTES_LEN]; + SAFE(buffer_read_varuint(&buf, &amount_size, amount_buf, MAX_VALUE_BYTES_LEN)); + BitString_storeCoinsBuf(&bits, amount_buf, amount_size); + + add_hint_amount(&tx->hints, "Jetton amount", jettons[jetton_id].name, amount_buf, amount_size, jettons[jetton_id].decimals); +#else + return false; +#endif + } else { + uint8_t amount_size; + uint8_t amount_buf[MAX_VALUE_BYTES_LEN]; + SAFE(buffer_read_varuint(&buf, &amount_size, amount_buf, MAX_VALUE_BYTES_LEN)); + BitString_storeCoinsBuf(&bits, amount_buf, amount_size); + + add_hint_amount(&tx->hints, "Jetton units", "", amount_buf, amount_size, 0); + } } address_t destination; diff --git a/src/types.h b/src/types.h index f99f012..a20f3cf 100644 --- a/src/types.h +++ b/src/types.h @@ -66,6 +66,8 @@ typedef enum { */ typedef struct { uint8_t raw_public_key[PUBKEY_LEN]; + bool is_v3r2; + uint32_t subwallet_id; } pubkey_ctx_t; /** @@ -85,6 +87,8 @@ typedef struct { typedef struct { uint8_t raw_public_key[PUBKEY_LEN]; int32_t workchain; + uint32_t subwallet_id; + bool is_v3r2; uint8_t domain[MAX_DOMAIN_LEN]; uint8_t domain_len; uint8_t hash[HASH_LEN]; diff --git a/src/ui/display_transaction_nbgl.c b/src/ui/display_transaction_nbgl.c index 396d617..d9f1864 100644 --- a/src/ui/display_transaction_nbgl.c +++ b/src/ui/display_transaction_nbgl.c @@ -104,7 +104,7 @@ static void start_regular_review(void) { static void show_blind_warning_if_needed(void) { if (G_context.tx_info.transaction.is_blind) { nbgl_useCaseReviewStart( - &C_round_warning_64px, + &C_Important_Circle_64px, "Blind Signing", "This transaction cannot be\nsecurely interpreted by Ledger\nStax. It might put " "your assets\nat risk.", @@ -164,7 +164,7 @@ static void ui_blind_signing_error_choice(bool confirm) { } void ui_blind_signing_error() { - nbgl_useCaseChoice(&C_warning64px, + nbgl_useCaseChoice(&C_Warning_64px, "This message cannot\nbe clear-signed", "Enable blind-signing in\nthe settings to sign\nthis transaction.", "Exit", diff --git a/src/ui/helpers/display_address.c b/src/ui/helpers/display_address.c index 9a46f2d..f1e33ce 100644 --- a/src/ui/helpers/display_address.c +++ b/src/ui/helpers/display_address.c @@ -32,6 +32,8 @@ bool display_address(uint8_t flags, chain, false, testnet, + G_context.pk_info.subwallet_id, + G_context.pk_info.is_v3r2, address, sizeof(address))) { io_send_sw(SW_DISPLAY_ADDRESS_FAIL); diff --git a/tests/application_client/ton_command_sender.py b/tests/application_client/ton_command_sender.py index 0c900b6..692cdfe 100644 --- a/tests/application_client/ton_command_sender.py +++ b/tests/application_client/ton_command_sender.py @@ -108,13 +108,25 @@ def get_app_settings(self) -> RAPDU: @contextmanager def get_public_key_with_confirmation(self, path: str, - display_flags: AddressDisplayFlags + display_flags: AddressDisplayFlags, + is_v3r2: bool = False, + subwallet_id: int = 698983191, ) -> Generator[None, None, None]: + specifiers = bytes([]) + if is_v3r2 or subwallet_id != 698983191: + display_flags |= 4 + specifiers = b"".join([ + bytes([1 if is_v3r2 else 0]), + subwallet_id.to_bytes(4, byteorder="big"), + ]) with self.backend.exchange_async(cla=CLA, ins=InsType.GET_PUBLIC_KEY, p1=P1.P1_CONFIRM, p2=display_flags, - data=pack_derivation_path(path)) as response: + data=b"".join([ + pack_derivation_path(path), + specifiers, + ])) as response: yield response @contextmanager @@ -123,10 +135,20 @@ def get_address_proof(self, display_flags: AddressDisplayFlags, domain: str, timestamp: int, - payload: bytes) -> Generator[None, None, None]: + payload: bytes, + is_v3r2: bool = False, + subwallet_id: int = 698983191) -> Generator[None, None, None]: domain_b = bytes(domain, "utf8") + specifiers = bytes([]) + if is_v3r2 or subwallet_id != 698983191: + display_flags |= 4 + specifiers = b"".join([ + bytes([1 if is_v3r2 else 0]), + subwallet_id.to_bytes(4, byteorder="big"), + ]) req_bytes = b"".join([ pack_derivation_path(path), + specifiers, bytes([len(domain_b)]), domain_b, timestamp.to_bytes(8, byteorder="big"), diff --git a/tests/application_client/ton_transaction.py b/tests/application_client/ton_transaction.py index f72f87d..dc80955 100644 --- a/tests/application_client/ton_transaction.py +++ b/tests/application_client/ton_transaction.py @@ -95,7 +95,9 @@ def __init__(self, query_id: Optional[int] = None, custom_payload: Optional[Cell] = None, forward_amount: int = 0, - forward_payload: Optional[Cell] = None) -> None: + forward_payload: Optional[Cell] = None, + jetton_id: Optional[int] = None, + owner_workchain: int = 0) -> None: self.query_id: int = query_id if query_id is not None else 0 self.amount: int = amount self.destination: Address = to @@ -105,13 +107,23 @@ def __init__(self, self.custom_payload: Optional[Cell] = custom_payload self.forward_amount: int = forward_amount self.forward_payload: Optional[Cell] = forward_payload + self.jetton_id: Optional[int] = jetton_id + self.owner_workchain = owner_workchain def to_request_bytes(self) -> bytes: + flags = 0 + if self.query_id != 0: + flags |= 1 + if self.jetton_id != None: + flags |= 2 + main_body = b"".join([ + bytes([flags]), + self.query_id.to_bytes(8, byteorder="big") if self.query_id != 0 else bytes([]), (b"".join([ - bytes([1]), - self.query_id.to_bytes(8, byteorder="big") - ]) if self.query_id != 0 else bytes([0])), + self.jetton_id.to_bytes(2, byteorder="big"), + bytes([self.owner_workchain]), + ])) if self.jetton_id != None else bytes([]), write_varuint(self.amount), write_address(self.destination), write_address(self.response_destionation), diff --git a/tests/application_client/ton_utils.py b/tests/application_client/ton_utils.py index 875625f..3962a0f 100644 --- a/tests/application_client/ton_utils.py +++ b/tests/application_client/ton_utils.py @@ -4,7 +4,7 @@ from tonsdk.utils import Address from tonsdk.boc import Cell -from tonsdk.contract.wallet import WalletV4ContractR2 +from tonsdk.contract.wallet import WalletV4ContractR2, WalletV3ContractR2 TON_PROOF_PREFIX = b"ton-proof-item-v2/" @@ -57,5 +57,31 @@ def build_ton_proof_message(workchain: int, ])).digest() +def build_ton_proof_message_v3r2(workchain: int, + pubkey: bytes, + domain: str, + timestamp: int, + payload: bytes) -> bytes: + # we don't have private_key but the lib is buggy and requires it anyway + wallet = WalletV3ContractR2(public_key=pubkey, wc=workchain, private_key=bytes()) + + addr = wallet.address + domain_b = bytes(domain, "utf8") + inner = b"".join([ + TON_PROOF_PREFIX, + addr.wc.to_bytes(4, byteorder="big"), + bytes(addr.hash_part), + len(domain_b).to_bytes(4, byteorder="little"), + domain_b, + timestamp.to_bytes(8, byteorder="little"), + payload + ]) + inner_hash = sha256(inner).digest() + return sha256(b"".join([ + TON_CONNECT_PREFIX, + inner_hash + ])).digest() + + def split_message(message: bytes, max_size: int) -> List[bytes]: return [message[x:x + max_size] for x in range(0, len(message), max_size)] diff --git a/tests/requirements.txt b/tests/requirements.txt index 22bef95..2ce69c8 100644 --- a/tests/requirements.txt +++ b/tests/requirements.txt @@ -1,5 +1,5 @@ pytest -ragger[speculos,ledgerwallet]>=1.18.1 +ragger[speculos,ledgerwallet]>=1.22.1 tonsdk==1.0.13 ecdsa>=0.18.0 diff --git a/tests/snapshots/nanos/test_app_mainmenu/00020.png b/tests/snapshots/nanos/test_app_mainmenu/00020.png index cd7ac65..7001fa0 100644 Binary files a/tests/snapshots/nanos/test_app_mainmenu/00020.png and b/tests/snapshots/nanos/test_app_mainmenu/00020.png differ diff --git a/tests/snapshots/nanos/test_get_proof_accepted_v3r2/00000.png b/tests/snapshots/nanos/test_get_proof_accepted_v3r2/00000.png new file mode 100644 index 0000000..06ccdbc Binary files /dev/null and b/tests/snapshots/nanos/test_get_proof_accepted_v3r2/00000.png differ diff --git a/tests/snapshots/nanos/test_get_proof_accepted_v3r2/00001.png b/tests/snapshots/nanos/test_get_proof_accepted_v3r2/00001.png new file mode 100644 index 0000000..b5660b7 Binary files /dev/null and b/tests/snapshots/nanos/test_get_proof_accepted_v3r2/00001.png differ diff --git a/tests/snapshots/nanos/test_get_proof_accepted_v3r2/00002.png b/tests/snapshots/nanos/test_get_proof_accepted_v3r2/00002.png new file mode 100644 index 0000000..3773eb5 Binary files /dev/null and b/tests/snapshots/nanos/test_get_proof_accepted_v3r2/00002.png differ diff --git a/tests/snapshots/nanos/test_get_proof_accepted_v3r2/00003.png b/tests/snapshots/nanos/test_get_proof_accepted_v3r2/00003.png new file mode 100644 index 0000000..58a9b33 Binary files /dev/null and b/tests/snapshots/nanos/test_get_proof_accepted_v3r2/00003.png differ diff --git a/tests/snapshots/nanos/test_get_proof_accepted_v3r2/00004.png b/tests/snapshots/nanos/test_get_proof_accepted_v3r2/00004.png new file mode 100644 index 0000000..d112e75 Binary files /dev/null and b/tests/snapshots/nanos/test_get_proof_accepted_v3r2/00004.png differ diff --git a/tests/snapshots/nanos/test_get_proof_accepted_v3r2/00005.png b/tests/snapshots/nanos/test_get_proof_accepted_v3r2/00005.png new file mode 100644 index 0000000..ef3886c Binary files /dev/null and b/tests/snapshots/nanos/test_get_proof_accepted_v3r2/00005.png differ diff --git a/tests/snapshots/nanos/test_get_proof_accepted_v3r2/00006.png b/tests/snapshots/nanos/test_get_proof_accepted_v3r2/00006.png new file mode 100644 index 0000000..66c411c Binary files /dev/null and b/tests/snapshots/nanos/test_get_proof_accepted_v3r2/00006.png differ diff --git a/tests/snapshots/nanos/test_get_proof_accepted_v3r2/00007.png b/tests/snapshots/nanos/test_get_proof_accepted_v3r2/00007.png new file mode 100644 index 0000000..d548246 Binary files /dev/null and b/tests/snapshots/nanos/test_get_proof_accepted_v3r2/00007.png differ diff --git a/tests/snapshots/nanos/test_get_public_key_confirm_accepted_v3r2/00000.png b/tests/snapshots/nanos/test_get_public_key_confirm_accepted_v3r2/00000.png new file mode 100644 index 0000000..0e64723 Binary files /dev/null and b/tests/snapshots/nanos/test_get_public_key_confirm_accepted_v3r2/00000.png differ diff --git a/tests/snapshots/nanos/test_get_public_key_confirm_accepted_v3r2/00001.png b/tests/snapshots/nanos/test_get_public_key_confirm_accepted_v3r2/00001.png new file mode 100644 index 0000000..3773eb5 Binary files /dev/null and b/tests/snapshots/nanos/test_get_public_key_confirm_accepted_v3r2/00001.png differ diff --git a/tests/snapshots/nanos/test_get_public_key_confirm_accepted_v3r2/00002.png b/tests/snapshots/nanos/test_get_public_key_confirm_accepted_v3r2/00002.png new file mode 100644 index 0000000..58a9b33 Binary files /dev/null and b/tests/snapshots/nanos/test_get_public_key_confirm_accepted_v3r2/00002.png differ diff --git a/tests/snapshots/nanos/test_get_public_key_confirm_accepted_v3r2/00003.png b/tests/snapshots/nanos/test_get_public_key_confirm_accepted_v3r2/00003.png new file mode 100644 index 0000000..d112e75 Binary files /dev/null and b/tests/snapshots/nanos/test_get_public_key_confirm_accepted_v3r2/00003.png differ diff --git a/tests/snapshots/nanos/test_get_public_key_confirm_accepted_v3r2/00004.png b/tests/snapshots/nanos/test_get_public_key_confirm_accepted_v3r2/00004.png new file mode 100644 index 0000000..ef3886c Binary files /dev/null and b/tests/snapshots/nanos/test_get_public_key_confirm_accepted_v3r2/00004.png differ diff --git a/tests/snapshots/nanos/test_get_public_key_confirm_accepted_v3r2/00005.png b/tests/snapshots/nanos/test_get_public_key_confirm_accepted_v3r2/00005.png new file mode 100644 index 0000000..66c411c Binary files /dev/null and b/tests/snapshots/nanos/test_get_public_key_confirm_accepted_v3r2/00005.png differ diff --git a/tests/snapshots/nanos/test_get_public_key_confirm_accepted_v3r2/00006.png b/tests/snapshots/nanos/test_get_public_key_confirm_accepted_v3r2/00006.png new file mode 100644 index 0000000..d548246 Binary files /dev/null and b/tests/snapshots/nanos/test_get_public_key_confirm_accepted_v3r2/00006.png differ diff --git a/tests/snapshots/nanosp/test_app_mainmenu/00020.png b/tests/snapshots/nanosp/test_app_mainmenu/00020.png index a51be34..8db51cc 100644 Binary files a/tests/snapshots/nanosp/test_app_mainmenu/00020.png and b/tests/snapshots/nanosp/test_app_mainmenu/00020.png differ diff --git a/tests/snapshots/nanosp/test_get_proof_accepted_v3r2/00000.png b/tests/snapshots/nanosp/test_get_proof_accepted_v3r2/00000.png new file mode 100644 index 0000000..8789766 Binary files /dev/null and b/tests/snapshots/nanosp/test_get_proof_accepted_v3r2/00000.png differ diff --git a/tests/snapshots/nanosp/test_get_proof_accepted_v3r2/00001.png b/tests/snapshots/nanosp/test_get_proof_accepted_v3r2/00001.png new file mode 100644 index 0000000..a48e336 Binary files /dev/null and b/tests/snapshots/nanosp/test_get_proof_accepted_v3r2/00001.png differ diff --git a/tests/snapshots/nanosp/test_get_proof_accepted_v3r2/00002.png b/tests/snapshots/nanosp/test_get_proof_accepted_v3r2/00002.png new file mode 100644 index 0000000..2295eb4 Binary files /dev/null and b/tests/snapshots/nanosp/test_get_proof_accepted_v3r2/00002.png differ diff --git a/tests/snapshots/nanosp/test_get_proof_accepted_v3r2/00003.png b/tests/snapshots/nanosp/test_get_proof_accepted_v3r2/00003.png new file mode 100644 index 0000000..43206a9 Binary files /dev/null and b/tests/snapshots/nanosp/test_get_proof_accepted_v3r2/00003.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_with_payload/part2/00009.png b/tests/snapshots/nanosp/test_get_proof_accepted_v3r2/00004.png similarity index 100% rename from tests/snapshots/nanosp/test_sign_tx_with_payload/part2/00009.png rename to tests/snapshots/nanosp/test_get_proof_accepted_v3r2/00004.png diff --git a/tests/snapshots/nanosp/test_get_proof_accepted_v3r2/00005.png b/tests/snapshots/nanosp/test_get_proof_accepted_v3r2/00005.png new file mode 100644 index 0000000..ca542dd Binary files /dev/null and b/tests/snapshots/nanosp/test_get_proof_accepted_v3r2/00005.png differ diff --git a/tests/snapshots/nanosp/test_get_public_key_confirm_accepted_v3r2/00000.png b/tests/snapshots/nanosp/test_get_public_key_confirm_accepted_v3r2/00000.png new file mode 100644 index 0000000..19c9a3e Binary files /dev/null and b/tests/snapshots/nanosp/test_get_public_key_confirm_accepted_v3r2/00000.png differ diff --git a/tests/snapshots/nanosp/test_get_public_key_confirm_accepted_v3r2/00001.png b/tests/snapshots/nanosp/test_get_public_key_confirm_accepted_v3r2/00001.png new file mode 100644 index 0000000..2295eb4 Binary files /dev/null and b/tests/snapshots/nanosp/test_get_public_key_confirm_accepted_v3r2/00001.png differ diff --git a/tests/snapshots/nanosp/test_get_public_key_confirm_accepted_v3r2/00002.png b/tests/snapshots/nanosp/test_get_public_key_confirm_accepted_v3r2/00002.png new file mode 100644 index 0000000..43206a9 Binary files /dev/null and b/tests/snapshots/nanosp/test_get_public_key_confirm_accepted_v3r2/00002.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_with_payload/part3/00008.png b/tests/snapshots/nanosp/test_get_public_key_confirm_accepted_v3r2/00003.png similarity index 100% rename from tests/snapshots/nanosp/test_sign_tx_with_payload/part3/00008.png rename to tests/snapshots/nanosp/test_get_public_key_confirm_accepted_v3r2/00003.png diff --git a/tests/snapshots/nanosp/test_get_public_key_confirm_accepted_v3r2/00004.png b/tests/snapshots/nanosp/test_get_public_key_confirm_accepted_v3r2/00004.png new file mode 100644 index 0000000..ca542dd Binary files /dev/null and b/tests/snapshots/nanosp/test_get_public_key_confirm_accepted_v3r2/00004.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part0/00000.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part0/00000.png new file mode 100644 index 0000000..a180960 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part0/00000.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part0/00001.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part0/00001.png new file mode 100644 index 0000000..db399e5 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part0/00001.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part0/00002.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part0/00002.png new file mode 100644 index 0000000..5ba5500 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part0/00002.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part0/00003.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part0/00003.png new file mode 100644 index 0000000..395f70b Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part0/00003.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part0/00004.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part0/00004.png new file mode 100644 index 0000000..a6e8707 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part0/00004.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part0/00005.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part0/00005.png new file mode 100644 index 0000000..d0daa10 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part0/00005.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part0/00006.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part0/00006.png new file mode 100644 index 0000000..f069ebe Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part0/00006.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part0/00007.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part0/00007.png new file mode 100644 index 0000000..53ae651 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part0/00007.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part0/00008.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part0/00008.png new file mode 100644 index 0000000..ca542dd Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part0/00008.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part1/00000.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part1/00000.png new file mode 100644 index 0000000..a180960 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part1/00000.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part1/00001.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part1/00001.png new file mode 100644 index 0000000..ac685a2 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part1/00001.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part1/00002.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part1/00002.png new file mode 100644 index 0000000..5ba5500 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part1/00002.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part1/00003.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part1/00003.png new file mode 100644 index 0000000..3f73806 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part1/00003.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part1/00004.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part1/00004.png new file mode 100644 index 0000000..a6e8707 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part1/00004.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part1/00005.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part1/00005.png new file mode 100644 index 0000000..d0daa10 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part1/00005.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part1/00006.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part1/00006.png new file mode 100644 index 0000000..f069ebe Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part1/00006.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part1/00007.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part1/00007.png new file mode 100644 index 0000000..53ae651 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part1/00007.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part1/00008.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part1/00008.png new file mode 100644 index 0000000..ca542dd Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part1/00008.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part2/00000.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part2/00000.png new file mode 100644 index 0000000..a180960 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part2/00000.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part2/00001.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part2/00001.png new file mode 100644 index 0000000..333033b Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part2/00001.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part2/00002.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part2/00002.png new file mode 100644 index 0000000..5ba5500 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part2/00002.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part2/00003.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part2/00003.png new file mode 100644 index 0000000..f576445 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part2/00003.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part2/00004.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part2/00004.png new file mode 100644 index 0000000..a6e8707 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part2/00004.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part2/00005.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part2/00005.png new file mode 100644 index 0000000..d0daa10 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part2/00005.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part2/00006.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part2/00006.png new file mode 100644 index 0000000..f069ebe Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part2/00006.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part2/00007.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part2/00007.png new file mode 100644 index 0000000..53ae651 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part2/00007.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part2/00008.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part2/00008.png new file mode 100644 index 0000000..ca542dd Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part2/00008.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part3/00000.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part3/00000.png new file mode 100644 index 0000000..a180960 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part3/00000.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part3/00001.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part3/00001.png new file mode 100644 index 0000000..955c85e Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part3/00001.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part3/00002.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part3/00002.png new file mode 100644 index 0000000..5ba5500 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part3/00002.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part3/00003.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part3/00003.png new file mode 100644 index 0000000..97405c4 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part3/00003.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part3/00004.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part3/00004.png new file mode 100644 index 0000000..a6e8707 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part3/00004.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part3/00005.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part3/00005.png new file mode 100644 index 0000000..d0daa10 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part3/00005.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part3/00006.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part3/00006.png new file mode 100644 index 0000000..f069ebe Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part3/00006.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part3/00007.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part3/00007.png new file mode 100644 index 0000000..53ae651 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part3/00007.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part3/00008.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part3/00008.png new file mode 100644 index 0000000..ca542dd Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part3/00008.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part4/00000.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part4/00000.png new file mode 100644 index 0000000..a180960 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part4/00000.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part4/00001.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part4/00001.png new file mode 100644 index 0000000..f689dd4 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part4/00001.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part4/00002.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part4/00002.png new file mode 100644 index 0000000..5ba5500 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part4/00002.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part4/00003.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part4/00003.png new file mode 100644 index 0000000..ec563cc Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part4/00003.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part4/00004.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part4/00004.png new file mode 100644 index 0000000..a6e8707 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part4/00004.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part4/00005.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part4/00005.png new file mode 100644 index 0000000..d0daa10 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part4/00005.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part4/00006.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part4/00006.png new file mode 100644 index 0000000..f069ebe Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part4/00006.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part4/00007.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part4/00007.png new file mode 100644 index 0000000..53ae651 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part4/00007.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part4/00008.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part4/00008.png new file mode 100644 index 0000000..ca542dd Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part4/00008.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part5/00000.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part5/00000.png new file mode 100644 index 0000000..a180960 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part5/00000.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part5/00001.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part5/00001.png new file mode 100644 index 0000000..16621b5 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part5/00001.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part5/00002.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part5/00002.png new file mode 100644 index 0000000..5ba5500 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part5/00002.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part5/00003.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part5/00003.png new file mode 100644 index 0000000..cb24006 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part5/00003.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part5/00004.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part5/00004.png new file mode 100644 index 0000000..a6e8707 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part5/00004.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part5/00005.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part5/00005.png new file mode 100644 index 0000000..d0daa10 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part5/00005.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part5/00006.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part5/00006.png new file mode 100644 index 0000000..f069ebe Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part5/00006.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part5/00007.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part5/00007.png new file mode 100644 index 0000000..53ae651 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part5/00007.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part5/00008.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part5/00008.png new file mode 100644 index 0000000..ca542dd Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/part5/00008.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/pretest/00000.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/pretest/00000.png new file mode 100644 index 0000000..ca542dd Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/pretest/00000.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/pretest/00001.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/pretest/00001.png new file mode 100644 index 0000000..d885fe6 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/pretest/00001.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/pretest/00002.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/pretest/00002.png new file mode 100644 index 0000000..907652a Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/pretest/00002.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/pretest/00003.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/pretest/00003.png new file mode 100644 index 0000000..3fd7eda Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/pretest/00003.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/pretest/00004.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/pretest/00004.png new file mode 100644 index 0000000..6b36d09 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/pretest/00004.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/pretest/00005.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/pretest/00005.png new file mode 100644 index 0000000..907652a Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/pretest/00005.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/pretest/00006.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/pretest/00006.png new file mode 100644 index 0000000..f066b51 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/pretest/00006.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/pretest/00007.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/pretest/00007.png new file mode 100644 index 0000000..3fd7eda Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/pretest/00007.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/pretest/00008.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/pretest/00008.png new file mode 100644 index 0000000..6b36d09 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/pretest/00008.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/pretest/00009.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/pretest/00009.png new file mode 100644 index 0000000..f066b51 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/pretest/00009.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/pretest/00010.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/pretest/00010.png new file mode 100644 index 0000000..a309e94 Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/pretest/00010.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_clear_jetton/pretest/00011.png b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/pretest/00011.png new file mode 100644 index 0000000..ca542dd Binary files /dev/null and b/tests/snapshots/nanosp/test_sign_tx_clear_jetton/pretest/00011.png differ diff --git a/tests/snapshots/nanosp/test_sign_tx_with_payload/part10/00007.png b/tests/snapshots/nanosp/test_sign_tx_with_payload/part10/00007.png deleted file mode 100644 index c250b11..0000000 Binary files a/tests/snapshots/nanosp/test_sign_tx_with_payload/part10/00007.png and /dev/null differ diff --git a/tests/snapshots/nanosp/test_sign_tx_with_payload/part13/00008.png b/tests/snapshots/nanosp/test_sign_tx_with_payload/part13/00008.png deleted file mode 100644 index c250b11..0000000 Binary files a/tests/snapshots/nanosp/test_sign_tx_with_payload/part13/00008.png and /dev/null differ diff --git a/tests/snapshots/nanosp/test_sign_tx_with_payload/part2/00010.png b/tests/snapshots/nanosp/test_sign_tx_with_payload/part2/00010.png deleted file mode 100644 index c250b11..0000000 Binary files a/tests/snapshots/nanosp/test_sign_tx_with_payload/part2/00010.png and /dev/null differ diff --git a/tests/snapshots/nanosp/test_sign_tx_with_payload/part3/00009.png b/tests/snapshots/nanosp/test_sign_tx_with_payload/part3/00009.png deleted file mode 100644 index c250b11..0000000 Binary files a/tests/snapshots/nanosp/test_sign_tx_with_payload/part3/00009.png and /dev/null differ diff --git a/tests/snapshots/nanosp/test_sign_tx_with_payload/part4/00008.png b/tests/snapshots/nanosp/test_sign_tx_with_payload/part4/00008.png deleted file mode 100644 index c250b11..0000000 Binary files a/tests/snapshots/nanosp/test_sign_tx_with_payload/part4/00008.png and /dev/null differ diff --git a/tests/snapshots/nanosp/test_sign_tx_with_payload/part5/00006.png b/tests/snapshots/nanosp/test_sign_tx_with_payload/part5/00006.png deleted file mode 100644 index c250b11..0000000 Binary files a/tests/snapshots/nanosp/test_sign_tx_with_payload/part5/00006.png and /dev/null differ diff --git a/tests/snapshots/nanosp/test_sign_tx_with_payload/part7/00006.png b/tests/snapshots/nanosp/test_sign_tx_with_payload/part7/00006.png deleted file mode 100644 index c250b11..0000000 Binary files a/tests/snapshots/nanosp/test_sign_tx_with_payload/part7/00006.png and /dev/null differ diff --git a/tests/snapshots/nanox/test_app_mainmenu/00020.png b/tests/snapshots/nanox/test_app_mainmenu/00020.png index a51be34..8db51cc 100644 Binary files a/tests/snapshots/nanox/test_app_mainmenu/00020.png and b/tests/snapshots/nanox/test_app_mainmenu/00020.png differ diff --git a/tests/snapshots/nanox/test_get_proof_accepted_v3r2/00000.png b/tests/snapshots/nanox/test_get_proof_accepted_v3r2/00000.png new file mode 100644 index 0000000..8789766 Binary files /dev/null and b/tests/snapshots/nanox/test_get_proof_accepted_v3r2/00000.png differ diff --git a/tests/snapshots/nanox/test_get_proof_accepted_v3r2/00001.png b/tests/snapshots/nanox/test_get_proof_accepted_v3r2/00001.png new file mode 100644 index 0000000..a48e336 Binary files /dev/null and b/tests/snapshots/nanox/test_get_proof_accepted_v3r2/00001.png differ diff --git a/tests/snapshots/nanox/test_get_proof_accepted_v3r2/00002.png b/tests/snapshots/nanox/test_get_proof_accepted_v3r2/00002.png new file mode 100644 index 0000000..2295eb4 Binary files /dev/null and b/tests/snapshots/nanox/test_get_proof_accepted_v3r2/00002.png differ diff --git a/tests/snapshots/nanox/test_get_proof_accepted_v3r2/00003.png b/tests/snapshots/nanox/test_get_proof_accepted_v3r2/00003.png new file mode 100644 index 0000000..43206a9 Binary files /dev/null and b/tests/snapshots/nanox/test_get_proof_accepted_v3r2/00003.png differ diff --git a/tests/snapshots/nanox/test_get_proof_accepted_v3r2/00004.png b/tests/snapshots/nanox/test_get_proof_accepted_v3r2/00004.png new file mode 100644 index 0000000..53ae651 Binary files /dev/null and b/tests/snapshots/nanox/test_get_proof_accepted_v3r2/00004.png differ diff --git a/tests/snapshots/nanox/test_get_proof_accepted_v3r2/00005.png b/tests/snapshots/nanox/test_get_proof_accepted_v3r2/00005.png new file mode 100644 index 0000000..ca542dd Binary files /dev/null and b/tests/snapshots/nanox/test_get_proof_accepted_v3r2/00005.png differ diff --git a/tests/snapshots/nanox/test_get_public_key_confirm_accepted_v3r2/00000.png b/tests/snapshots/nanox/test_get_public_key_confirm_accepted_v3r2/00000.png new file mode 100644 index 0000000..19c9a3e Binary files /dev/null and b/tests/snapshots/nanox/test_get_public_key_confirm_accepted_v3r2/00000.png differ diff --git a/tests/snapshots/nanox/test_get_public_key_confirm_accepted_v3r2/00001.png b/tests/snapshots/nanox/test_get_public_key_confirm_accepted_v3r2/00001.png new file mode 100644 index 0000000..2295eb4 Binary files /dev/null and b/tests/snapshots/nanox/test_get_public_key_confirm_accepted_v3r2/00001.png differ diff --git a/tests/snapshots/nanox/test_get_public_key_confirm_accepted_v3r2/00002.png b/tests/snapshots/nanox/test_get_public_key_confirm_accepted_v3r2/00002.png new file mode 100644 index 0000000..43206a9 Binary files /dev/null and b/tests/snapshots/nanox/test_get_public_key_confirm_accepted_v3r2/00002.png differ diff --git a/tests/snapshots/nanox/test_get_public_key_confirm_accepted_v3r2/00003.png b/tests/snapshots/nanox/test_get_public_key_confirm_accepted_v3r2/00003.png new file mode 100644 index 0000000..53ae651 Binary files /dev/null and b/tests/snapshots/nanox/test_get_public_key_confirm_accepted_v3r2/00003.png differ diff --git a/tests/snapshots/nanox/test_get_public_key_confirm_accepted_v3r2/00004.png b/tests/snapshots/nanox/test_get_public_key_confirm_accepted_v3r2/00004.png new file mode 100644 index 0000000..ca542dd Binary files /dev/null and b/tests/snapshots/nanox/test_get_public_key_confirm_accepted_v3r2/00004.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part0/00000.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part0/00000.png new file mode 100644 index 0000000..a180960 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part0/00000.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part0/00001.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part0/00001.png new file mode 100644 index 0000000..db399e5 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part0/00001.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part0/00002.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part0/00002.png new file mode 100644 index 0000000..5ba5500 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part0/00002.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part0/00003.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part0/00003.png new file mode 100644 index 0000000..395f70b Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part0/00003.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part0/00004.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part0/00004.png new file mode 100644 index 0000000..a6e8707 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part0/00004.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part0/00005.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part0/00005.png new file mode 100644 index 0000000..d0daa10 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part0/00005.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part0/00006.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part0/00006.png new file mode 100644 index 0000000..f069ebe Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part0/00006.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part0/00007.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part0/00007.png new file mode 100644 index 0000000..53ae651 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part0/00007.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part0/00008.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part0/00008.png new file mode 100644 index 0000000..ca542dd Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part0/00008.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part1/00000.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part1/00000.png new file mode 100644 index 0000000..a180960 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part1/00000.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part1/00001.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part1/00001.png new file mode 100644 index 0000000..ac685a2 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part1/00001.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part1/00002.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part1/00002.png new file mode 100644 index 0000000..5ba5500 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part1/00002.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part1/00003.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part1/00003.png new file mode 100644 index 0000000..3f73806 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part1/00003.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part1/00004.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part1/00004.png new file mode 100644 index 0000000..a6e8707 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part1/00004.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part1/00005.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part1/00005.png new file mode 100644 index 0000000..d0daa10 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part1/00005.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part1/00006.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part1/00006.png new file mode 100644 index 0000000..f069ebe Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part1/00006.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part1/00007.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part1/00007.png new file mode 100644 index 0000000..53ae651 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part1/00007.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part1/00008.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part1/00008.png new file mode 100644 index 0000000..ca542dd Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part1/00008.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part2/00000.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part2/00000.png new file mode 100644 index 0000000..a180960 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part2/00000.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part2/00001.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part2/00001.png new file mode 100644 index 0000000..333033b Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part2/00001.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part2/00002.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part2/00002.png new file mode 100644 index 0000000..5ba5500 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part2/00002.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part2/00003.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part2/00003.png new file mode 100644 index 0000000..f576445 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part2/00003.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part2/00004.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part2/00004.png new file mode 100644 index 0000000..a6e8707 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part2/00004.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part2/00005.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part2/00005.png new file mode 100644 index 0000000..d0daa10 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part2/00005.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part2/00006.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part2/00006.png new file mode 100644 index 0000000..f069ebe Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part2/00006.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part2/00007.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part2/00007.png new file mode 100644 index 0000000..53ae651 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part2/00007.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part2/00008.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part2/00008.png new file mode 100644 index 0000000..ca542dd Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part2/00008.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part3/00000.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part3/00000.png new file mode 100644 index 0000000..a180960 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part3/00000.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part3/00001.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part3/00001.png new file mode 100644 index 0000000..955c85e Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part3/00001.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part3/00002.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part3/00002.png new file mode 100644 index 0000000..5ba5500 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part3/00002.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part3/00003.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part3/00003.png new file mode 100644 index 0000000..97405c4 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part3/00003.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part3/00004.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part3/00004.png new file mode 100644 index 0000000..a6e8707 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part3/00004.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part3/00005.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part3/00005.png new file mode 100644 index 0000000..d0daa10 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part3/00005.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part3/00006.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part3/00006.png new file mode 100644 index 0000000..f069ebe Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part3/00006.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part3/00007.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part3/00007.png new file mode 100644 index 0000000..53ae651 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part3/00007.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part3/00008.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part3/00008.png new file mode 100644 index 0000000..ca542dd Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part3/00008.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part4/00000.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part4/00000.png new file mode 100644 index 0000000..a180960 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part4/00000.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part4/00001.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part4/00001.png new file mode 100644 index 0000000..f689dd4 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part4/00001.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part4/00002.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part4/00002.png new file mode 100644 index 0000000..5ba5500 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part4/00002.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part4/00003.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part4/00003.png new file mode 100644 index 0000000..ec563cc Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part4/00003.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part4/00004.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part4/00004.png new file mode 100644 index 0000000..a6e8707 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part4/00004.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part4/00005.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part4/00005.png new file mode 100644 index 0000000..d0daa10 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part4/00005.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part4/00006.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part4/00006.png new file mode 100644 index 0000000..f069ebe Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part4/00006.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part4/00007.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part4/00007.png new file mode 100644 index 0000000..53ae651 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part4/00007.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part4/00008.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part4/00008.png new file mode 100644 index 0000000..ca542dd Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part4/00008.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part5/00000.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part5/00000.png new file mode 100644 index 0000000..a180960 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part5/00000.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part5/00001.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part5/00001.png new file mode 100644 index 0000000..16621b5 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part5/00001.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part5/00002.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part5/00002.png new file mode 100644 index 0000000..5ba5500 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part5/00002.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part5/00003.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part5/00003.png new file mode 100644 index 0000000..cb24006 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part5/00003.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part5/00004.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part5/00004.png new file mode 100644 index 0000000..a6e8707 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part5/00004.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part5/00005.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part5/00005.png new file mode 100644 index 0000000..d0daa10 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part5/00005.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part5/00006.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part5/00006.png new file mode 100644 index 0000000..f069ebe Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part5/00006.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part5/00007.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part5/00007.png new file mode 100644 index 0000000..53ae651 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part5/00007.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/part5/00008.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part5/00008.png new file mode 100644 index 0000000..ca542dd Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/part5/00008.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/pretest/00000.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/pretest/00000.png new file mode 100644 index 0000000..ca542dd Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/pretest/00000.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/pretest/00001.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/pretest/00001.png new file mode 100644 index 0000000..d885fe6 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/pretest/00001.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/pretest/00002.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/pretest/00002.png new file mode 100644 index 0000000..907652a Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/pretest/00002.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/pretest/00003.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/pretest/00003.png new file mode 100644 index 0000000..3fd7eda Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/pretest/00003.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/pretest/00004.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/pretest/00004.png new file mode 100644 index 0000000..6b36d09 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/pretest/00004.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/pretest/00005.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/pretest/00005.png new file mode 100644 index 0000000..907652a Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/pretest/00005.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/pretest/00006.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/pretest/00006.png new file mode 100644 index 0000000..f066b51 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/pretest/00006.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/pretest/00007.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/pretest/00007.png new file mode 100644 index 0000000..3fd7eda Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/pretest/00007.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/pretest/00008.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/pretest/00008.png new file mode 100644 index 0000000..6b36d09 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/pretest/00008.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/pretest/00009.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/pretest/00009.png new file mode 100644 index 0000000..f066b51 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/pretest/00009.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/pretest/00010.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/pretest/00010.png new file mode 100644 index 0000000..a309e94 Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/pretest/00010.png differ diff --git a/tests/snapshots/nanox/test_sign_tx_clear_jetton/pretest/00011.png b/tests/snapshots/nanox/test_sign_tx_clear_jetton/pretest/00011.png new file mode 100644 index 0000000..ca542dd Binary files /dev/null and b/tests/snapshots/nanox/test_sign_tx_clear_jetton/pretest/00011.png differ diff --git a/tests/snapshots/stax/test_app_mainmenu/00000.png b/tests/snapshots/stax/test_app_mainmenu/00000.png index edb432d..4160ebe 100644 Binary files a/tests/snapshots/stax/test_app_mainmenu/00000.png and b/tests/snapshots/stax/test_app_mainmenu/00000.png differ diff --git a/tests/snapshots/stax/test_app_mainmenu/00001.png b/tests/snapshots/stax/test_app_mainmenu/00001.png index dfb48b6..cecd75a 100644 Binary files a/tests/snapshots/stax/test_app_mainmenu/00001.png and b/tests/snapshots/stax/test_app_mainmenu/00001.png differ diff --git a/tests/snapshots/stax/test_app_mainmenu/00002.png b/tests/snapshots/stax/test_app_mainmenu/00002.png index c7cb51a..de96711 100644 Binary files a/tests/snapshots/stax/test_app_mainmenu/00002.png and b/tests/snapshots/stax/test_app_mainmenu/00002.png differ diff --git a/tests/snapshots/stax/test_app_mainmenu/00003.png b/tests/snapshots/stax/test_app_mainmenu/00003.png index edb432d..4160ebe 100644 Binary files a/tests/snapshots/stax/test_app_mainmenu/00003.png and b/tests/snapshots/stax/test_app_mainmenu/00003.png differ diff --git a/tests/snapshots/stax/test_app_settings/00000.png b/tests/snapshots/stax/test_app_settings/00000.png index edb432d..4160ebe 100644 Binary files a/tests/snapshots/stax/test_app_settings/00000.png and b/tests/snapshots/stax/test_app_settings/00000.png differ diff --git a/tests/snapshots/stax/test_app_settings/00001.png b/tests/snapshots/stax/test_app_settings/00001.png index dfb48b6..cecd75a 100644 Binary files a/tests/snapshots/stax/test_app_settings/00001.png and b/tests/snapshots/stax/test_app_settings/00001.png differ diff --git a/tests/snapshots/stax/test_app_settings/00002.png b/tests/snapshots/stax/test_app_settings/00002.png index c7cb51a..de96711 100644 Binary files a/tests/snapshots/stax/test_app_settings/00002.png and b/tests/snapshots/stax/test_app_settings/00002.png differ diff --git a/tests/snapshots/stax/test_app_settings/00003.png b/tests/snapshots/stax/test_app_settings/00003.png index 892da7f..e2ba196 100644 Binary files a/tests/snapshots/stax/test_app_settings/00003.png and b/tests/snapshots/stax/test_app_settings/00003.png differ diff --git a/tests/snapshots/stax/test_app_settings/00004.png b/tests/snapshots/stax/test_app_settings/00004.png index 905d407..e58bf2f 100644 Binary files a/tests/snapshots/stax/test_app_settings/00004.png and b/tests/snapshots/stax/test_app_settings/00004.png differ diff --git a/tests/snapshots/stax/test_app_settings/00005.png b/tests/snapshots/stax/test_app_settings/00005.png index edb432d..4160ebe 100644 Binary files a/tests/snapshots/stax/test_app_settings/00005.png and b/tests/snapshots/stax/test_app_settings/00005.png differ diff --git a/tests/snapshots/stax/test_get_proof_accepted/00000.png b/tests/snapshots/stax/test_get_proof_accepted/00000.png index 7650a71..4b04b1a 100644 Binary files a/tests/snapshots/stax/test_get_proof_accepted/00000.png and b/tests/snapshots/stax/test_get_proof_accepted/00000.png differ diff --git a/tests/snapshots/stax/test_get_proof_accepted/00001.png b/tests/snapshots/stax/test_get_proof_accepted/00001.png index be132cd..217d75c 100644 Binary files a/tests/snapshots/stax/test_get_proof_accepted/00001.png and b/tests/snapshots/stax/test_get_proof_accepted/00001.png differ diff --git a/tests/snapshots/stax/test_get_proof_accepted/00002.png b/tests/snapshots/stax/test_get_proof_accepted/00002.png index 2b6c53b..af22cae 100644 Binary files a/tests/snapshots/stax/test_get_proof_accepted/00002.png and b/tests/snapshots/stax/test_get_proof_accepted/00002.png differ diff --git a/tests/snapshots/stax/test_get_proof_accepted/00003.png b/tests/snapshots/stax/test_get_proof_accepted/00003.png index be132cd..217d75c 100644 Binary files a/tests/snapshots/stax/test_get_proof_accepted/00003.png and b/tests/snapshots/stax/test_get_proof_accepted/00003.png differ diff --git a/tests/snapshots/stax/test_get_proof_accepted/00004.png b/tests/snapshots/stax/test_get_proof_accepted/00004.png index 560075e..2eb1308 100644 Binary files a/tests/snapshots/stax/test_get_proof_accepted/00004.png and b/tests/snapshots/stax/test_get_proof_accepted/00004.png differ diff --git a/tests/snapshots/stax/test_get_proof_accepted/00005.png b/tests/snapshots/stax/test_get_proof_accepted/00005.png index 13499fc..8d92400 100644 Binary files a/tests/snapshots/stax/test_get_proof_accepted/00005.png and b/tests/snapshots/stax/test_get_proof_accepted/00005.png differ diff --git a/tests/snapshots/stax/test_get_proof_accepted_v3r2/00000.png b/tests/snapshots/stax/test_get_proof_accepted_v3r2/00000.png new file mode 100644 index 0000000..4b04b1a Binary files /dev/null and b/tests/snapshots/stax/test_get_proof_accepted_v3r2/00000.png differ diff --git a/tests/snapshots/stax/test_get_proof_accepted_v3r2/00001.png b/tests/snapshots/stax/test_get_proof_accepted_v3r2/00001.png new file mode 100644 index 0000000..f0a3c04 Binary files /dev/null and b/tests/snapshots/stax/test_get_proof_accepted_v3r2/00001.png differ diff --git a/tests/snapshots/stax/test_get_proof_accepted_v3r2/00002.png b/tests/snapshots/stax/test_get_proof_accepted_v3r2/00002.png new file mode 100644 index 0000000..912b2ae Binary files /dev/null and b/tests/snapshots/stax/test_get_proof_accepted_v3r2/00002.png differ diff --git a/tests/snapshots/stax/test_get_proof_accepted_v3r2/00003.png b/tests/snapshots/stax/test_get_proof_accepted_v3r2/00003.png new file mode 100644 index 0000000..f0a3c04 Binary files /dev/null and b/tests/snapshots/stax/test_get_proof_accepted_v3r2/00003.png differ diff --git a/tests/snapshots/stax/test_get_proof_accepted_v3r2/00004.png b/tests/snapshots/stax/test_get_proof_accepted_v3r2/00004.png new file mode 100644 index 0000000..2eb1308 Binary files /dev/null and b/tests/snapshots/stax/test_get_proof_accepted_v3r2/00004.png differ diff --git a/tests/snapshots/stax/test_get_proof_accepted_v3r2/00005.png b/tests/snapshots/stax/test_get_proof_accepted_v3r2/00005.png new file mode 100644 index 0000000..8d92400 Binary files /dev/null and b/tests/snapshots/stax/test_get_proof_accepted_v3r2/00005.png differ diff --git a/tests/snapshots/stax/test_get_proof_refused/part0/00000.png b/tests/snapshots/stax/test_get_proof_refused/part0/00000.png index 7650a71..4b04b1a 100644 Binary files a/tests/snapshots/stax/test_get_proof_refused/part0/00000.png and b/tests/snapshots/stax/test_get_proof_refused/part0/00000.png differ diff --git a/tests/snapshots/stax/test_get_proof_refused/part0/00001.png b/tests/snapshots/stax/test_get_proof_refused/part0/00001.png index b0eba3f..94c91bb 100644 Binary files a/tests/snapshots/stax/test_get_proof_refused/part0/00001.png and b/tests/snapshots/stax/test_get_proof_refused/part0/00001.png differ diff --git a/tests/snapshots/stax/test_get_proof_refused/part1/00000.png b/tests/snapshots/stax/test_get_proof_refused/part1/00000.png index 7650a71..4b04b1a 100644 Binary files a/tests/snapshots/stax/test_get_proof_refused/part1/00000.png and b/tests/snapshots/stax/test_get_proof_refused/part1/00000.png differ diff --git a/tests/snapshots/stax/test_get_proof_refused/part1/00001.png b/tests/snapshots/stax/test_get_proof_refused/part1/00001.png index be132cd..217d75c 100644 Binary files a/tests/snapshots/stax/test_get_proof_refused/part1/00001.png and b/tests/snapshots/stax/test_get_proof_refused/part1/00001.png differ diff --git a/tests/snapshots/stax/test_get_proof_refused/part1/00002.png b/tests/snapshots/stax/test_get_proof_refused/part1/00002.png index b0eba3f..94c91bb 100644 Binary files a/tests/snapshots/stax/test_get_proof_refused/part1/00002.png and b/tests/snapshots/stax/test_get_proof_refused/part1/00002.png differ diff --git a/tests/snapshots/stax/test_get_proof_refused/part2/00000.png b/tests/snapshots/stax/test_get_proof_refused/part2/00000.png index 7650a71..4b04b1a 100644 Binary files a/tests/snapshots/stax/test_get_proof_refused/part2/00000.png and b/tests/snapshots/stax/test_get_proof_refused/part2/00000.png differ diff --git a/tests/snapshots/stax/test_get_proof_refused/part2/00001.png b/tests/snapshots/stax/test_get_proof_refused/part2/00001.png index be132cd..217d75c 100644 Binary files a/tests/snapshots/stax/test_get_proof_refused/part2/00001.png and b/tests/snapshots/stax/test_get_proof_refused/part2/00001.png differ diff --git a/tests/snapshots/stax/test_get_proof_refused/part2/00002.png b/tests/snapshots/stax/test_get_proof_refused/part2/00002.png index 560075e..2eb1308 100644 Binary files a/tests/snapshots/stax/test_get_proof_refused/part2/00002.png and b/tests/snapshots/stax/test_get_proof_refused/part2/00002.png differ diff --git a/tests/snapshots/stax/test_get_proof_refused/part2/00003.png b/tests/snapshots/stax/test_get_proof_refused/part2/00003.png index b0eba3f..94c91bb 100644 Binary files a/tests/snapshots/stax/test_get_proof_refused/part2/00003.png and b/tests/snapshots/stax/test_get_proof_refused/part2/00003.png differ diff --git a/tests/snapshots/stax/test_get_public_key_confirm_accepted/00000.png b/tests/snapshots/stax/test_get_public_key_confirm_accepted/00000.png index 947e5d6..c70ab3c 100644 Binary files a/tests/snapshots/stax/test_get_public_key_confirm_accepted/00000.png and b/tests/snapshots/stax/test_get_public_key_confirm_accepted/00000.png differ diff --git a/tests/snapshots/stax/test_get_public_key_confirm_accepted/00001.png b/tests/snapshots/stax/test_get_public_key_confirm_accepted/00001.png index 57ea369..e045b90 100644 Binary files a/tests/snapshots/stax/test_get_public_key_confirm_accepted/00001.png and b/tests/snapshots/stax/test_get_public_key_confirm_accepted/00001.png differ diff --git a/tests/snapshots/stax/test_get_public_key_confirm_accepted/00002.png b/tests/snapshots/stax/test_get_public_key_confirm_accepted/00002.png index 2b6c53b..af22cae 100644 Binary files a/tests/snapshots/stax/test_get_public_key_confirm_accepted/00002.png and b/tests/snapshots/stax/test_get_public_key_confirm_accepted/00002.png differ diff --git a/tests/snapshots/stax/test_get_public_key_confirm_accepted/00003.png b/tests/snapshots/stax/test_get_public_key_confirm_accepted/00003.png index 57ea369..e045b90 100644 Binary files a/tests/snapshots/stax/test_get_public_key_confirm_accepted/00003.png and b/tests/snapshots/stax/test_get_public_key_confirm_accepted/00003.png differ diff --git a/tests/snapshots/stax/test_get_public_key_confirm_accepted/00004.png b/tests/snapshots/stax/test_get_public_key_confirm_accepted/00004.png index 13499fc..8d92400 100644 Binary files a/tests/snapshots/stax/test_get_public_key_confirm_accepted/00004.png and b/tests/snapshots/stax/test_get_public_key_confirm_accepted/00004.png differ diff --git a/tests/snapshots/stax/test_get_public_key_confirm_accepted_v3r2/00000.png b/tests/snapshots/stax/test_get_public_key_confirm_accepted_v3r2/00000.png new file mode 100644 index 0000000..c70ab3c Binary files /dev/null and b/tests/snapshots/stax/test_get_public_key_confirm_accepted_v3r2/00000.png differ diff --git a/tests/snapshots/stax/test_get_public_key_confirm_accepted_v3r2/00001.png b/tests/snapshots/stax/test_get_public_key_confirm_accepted_v3r2/00001.png new file mode 100644 index 0000000..85f12cb Binary files /dev/null and b/tests/snapshots/stax/test_get_public_key_confirm_accepted_v3r2/00001.png differ diff --git a/tests/snapshots/stax/test_get_public_key_confirm_accepted_v3r2/00002.png b/tests/snapshots/stax/test_get_public_key_confirm_accepted_v3r2/00002.png new file mode 100644 index 0000000..912b2ae Binary files /dev/null and b/tests/snapshots/stax/test_get_public_key_confirm_accepted_v3r2/00002.png differ diff --git a/tests/snapshots/stax/test_get_public_key_confirm_accepted_v3r2/00003.png b/tests/snapshots/stax/test_get_public_key_confirm_accepted_v3r2/00003.png new file mode 100644 index 0000000..85f12cb Binary files /dev/null and b/tests/snapshots/stax/test_get_public_key_confirm_accepted_v3r2/00003.png differ diff --git a/tests/snapshots/stax/test_get_public_key_confirm_accepted_v3r2/00004.png b/tests/snapshots/stax/test_get_public_key_confirm_accepted_v3r2/00004.png new file mode 100644 index 0000000..8d92400 Binary files /dev/null and b/tests/snapshots/stax/test_get_public_key_confirm_accepted_v3r2/00004.png differ diff --git a/tests/snapshots/stax/test_get_public_key_confirm_refused/part0/00000.png b/tests/snapshots/stax/test_get_public_key_confirm_refused/part0/00000.png index 947e5d6..c70ab3c 100644 Binary files a/tests/snapshots/stax/test_get_public_key_confirm_refused/part0/00000.png and b/tests/snapshots/stax/test_get_public_key_confirm_refused/part0/00000.png differ diff --git a/tests/snapshots/stax/test_get_public_key_confirm_refused/part0/00001.png b/tests/snapshots/stax/test_get_public_key_confirm_refused/part0/00001.png index b0eba3f..94c91bb 100644 Binary files a/tests/snapshots/stax/test_get_public_key_confirm_refused/part0/00001.png and b/tests/snapshots/stax/test_get_public_key_confirm_refused/part0/00001.png differ diff --git a/tests/snapshots/stax/test_get_public_key_confirm_refused/part1/00000.png b/tests/snapshots/stax/test_get_public_key_confirm_refused/part1/00000.png index 947e5d6..c70ab3c 100644 Binary files a/tests/snapshots/stax/test_get_public_key_confirm_refused/part1/00000.png and b/tests/snapshots/stax/test_get_public_key_confirm_refused/part1/00000.png differ diff --git a/tests/snapshots/stax/test_get_public_key_confirm_refused/part1/00001.png b/tests/snapshots/stax/test_get_public_key_confirm_refused/part1/00001.png index 57ea369..e045b90 100644 Binary files a/tests/snapshots/stax/test_get_public_key_confirm_refused/part1/00001.png and b/tests/snapshots/stax/test_get_public_key_confirm_refused/part1/00001.png differ diff --git a/tests/snapshots/stax/test_get_public_key_confirm_refused/part1/00002.png b/tests/snapshots/stax/test_get_public_key_confirm_refused/part1/00002.png index b0eba3f..94c91bb 100644 Binary files a/tests/snapshots/stax/test_get_public_key_confirm_refused/part1/00002.png and b/tests/snapshots/stax/test_get_public_key_confirm_refused/part1/00002.png differ diff --git a/tests/snapshots/stax/test_sign_data/part0/00000.png b/tests/snapshots/stax/test_sign_data/part0/00000.png index 2ce8f9a..35c88fa 100644 Binary files a/tests/snapshots/stax/test_sign_data/part0/00000.png and b/tests/snapshots/stax/test_sign_data/part0/00000.png differ diff --git a/tests/snapshots/stax/test_sign_data/part0/00001.png b/tests/snapshots/stax/test_sign_data/part0/00001.png index 3e98012..5f30107 100644 Binary files a/tests/snapshots/stax/test_sign_data/part0/00001.png and b/tests/snapshots/stax/test_sign_data/part0/00001.png differ diff --git a/tests/snapshots/stax/test_sign_data/part0/00002.png b/tests/snapshots/stax/test_sign_data/part0/00002.png index 4fd4ccd..5977733 100644 Binary files a/tests/snapshots/stax/test_sign_data/part0/00002.png and b/tests/snapshots/stax/test_sign_data/part0/00002.png differ diff --git a/tests/snapshots/stax/test_sign_data/part0/00003.png b/tests/snapshots/stax/test_sign_data/part0/00003.png index 1a5c894..4160ebe 100644 Binary files a/tests/snapshots/stax/test_sign_data/part0/00003.png and b/tests/snapshots/stax/test_sign_data/part0/00003.png differ diff --git a/tests/snapshots/stax/test_sign_data/part0/00004.png b/tests/snapshots/stax/test_sign_data/part0/00004.png deleted file mode 100644 index edb432d..0000000 Binary files a/tests/snapshots/stax/test_sign_data/part0/00004.png and /dev/null differ diff --git a/tests/snapshots/stax/test_sign_data/part1/00000.png b/tests/snapshots/stax/test_sign_data/part1/00000.png index 2ce8f9a..92687db 100644 Binary files a/tests/snapshots/stax/test_sign_data/part1/00000.png and b/tests/snapshots/stax/test_sign_data/part1/00000.png differ diff --git a/tests/snapshots/stax/test_sign_data/part1/00001.png b/tests/snapshots/stax/test_sign_data/part1/00001.png index 3dfd3c9..c1ed601 100644 Binary files a/tests/snapshots/stax/test_sign_data/part1/00001.png and b/tests/snapshots/stax/test_sign_data/part1/00001.png differ diff --git a/tests/snapshots/stax/test_sign_data/part1/00002.png b/tests/snapshots/stax/test_sign_data/part1/00002.png index 6108bdf..e95bd24 100644 Binary files a/tests/snapshots/stax/test_sign_data/part1/00002.png and b/tests/snapshots/stax/test_sign_data/part1/00002.png differ diff --git a/tests/snapshots/stax/test_sign_data/part1/00003.png b/tests/snapshots/stax/test_sign_data/part1/00003.png index e8814dd..5977733 100644 Binary files a/tests/snapshots/stax/test_sign_data/part1/00003.png and b/tests/snapshots/stax/test_sign_data/part1/00003.png differ diff --git a/tests/snapshots/stax/test_sign_data/part1/00004.png b/tests/snapshots/stax/test_sign_data/part1/00004.png index 1a5c894..4160ebe 100644 Binary files a/tests/snapshots/stax/test_sign_data/part1/00004.png and b/tests/snapshots/stax/test_sign_data/part1/00004.png differ diff --git a/tests/snapshots/stax/test_sign_data/part1/00005.png b/tests/snapshots/stax/test_sign_data/part1/00005.png deleted file mode 100644 index edb432d..0000000 Binary files a/tests/snapshots/stax/test_sign_data/part1/00005.png and /dev/null differ diff --git a/tests/snapshots/stax/test_sign_data_refused/part0/00000.png b/tests/snapshots/stax/test_sign_data_refused/part0/00000.png index 2ce8f9a..c0eb61a 100644 Binary files a/tests/snapshots/stax/test_sign_data_refused/part0/00000.png and b/tests/snapshots/stax/test_sign_data_refused/part0/00000.png differ diff --git a/tests/snapshots/stax/test_sign_data_refused/part0/00001.png b/tests/snapshots/stax/test_sign_data_refused/part0/00001.png index b788819..856f28e 100644 Binary files a/tests/snapshots/stax/test_sign_data_refused/part0/00001.png and b/tests/snapshots/stax/test_sign_data_refused/part0/00001.png differ diff --git a/tests/snapshots/stax/test_sign_data_refused/part0/00002.png b/tests/snapshots/stax/test_sign_data_refused/part0/00002.png index edb432d..4160ebe 100644 Binary files a/tests/snapshots/stax/test_sign_data_refused/part0/00002.png and b/tests/snapshots/stax/test_sign_data_refused/part0/00002.png differ diff --git a/tests/snapshots/stax/test_sign_data_refused/part1/00000.png b/tests/snapshots/stax/test_sign_data_refused/part1/00000.png index 2ce8f9a..c0eb61a 100644 Binary files a/tests/snapshots/stax/test_sign_data_refused/part1/00000.png and b/tests/snapshots/stax/test_sign_data_refused/part1/00000.png differ diff --git a/tests/snapshots/stax/test_sign_data_refused/part1/00001.png b/tests/snapshots/stax/test_sign_data_refused/part1/00001.png index e426a2c..2f076a8 100644 Binary files a/tests/snapshots/stax/test_sign_data_refused/part1/00001.png and b/tests/snapshots/stax/test_sign_data_refused/part1/00001.png differ diff --git a/tests/snapshots/stax/test_sign_data_refused/part1/00002.png b/tests/snapshots/stax/test_sign_data_refused/part1/00002.png index b788819..856f28e 100644 Binary files a/tests/snapshots/stax/test_sign_data_refused/part1/00002.png and b/tests/snapshots/stax/test_sign_data_refused/part1/00002.png differ diff --git a/tests/snapshots/stax/test_sign_data_refused/part1/00003.png b/tests/snapshots/stax/test_sign_data_refused/part1/00003.png index edb432d..4160ebe 100644 Binary files a/tests/snapshots/stax/test_sign_data_refused/part1/00003.png and b/tests/snapshots/stax/test_sign_data_refused/part1/00003.png differ diff --git a/tests/snapshots/stax/test_sign_data_refused/part2/00000.png b/tests/snapshots/stax/test_sign_data_refused/part2/00000.png index 2ce8f9a..c0eb61a 100644 Binary files a/tests/snapshots/stax/test_sign_data_refused/part2/00000.png and b/tests/snapshots/stax/test_sign_data_refused/part2/00000.png differ diff --git a/tests/snapshots/stax/test_sign_data_refused/part2/00001.png b/tests/snapshots/stax/test_sign_data_refused/part2/00001.png index e426a2c..2f076a8 100644 Binary files a/tests/snapshots/stax/test_sign_data_refused/part2/00001.png and b/tests/snapshots/stax/test_sign_data_refused/part2/00001.png differ diff --git a/tests/snapshots/stax/test_sign_data_refused/part2/00002.png b/tests/snapshots/stax/test_sign_data_refused/part2/00002.png index 4fd4ccd..5f30107 100644 Binary files a/tests/snapshots/stax/test_sign_data_refused/part2/00002.png and b/tests/snapshots/stax/test_sign_data_refused/part2/00002.png differ diff --git a/tests/snapshots/stax/test_sign_data_refused/part2/00003.png b/tests/snapshots/stax/test_sign_data_refused/part2/00003.png index b788819..856f28e 100644 Binary files a/tests/snapshots/stax/test_sign_data_refused/part2/00003.png and b/tests/snapshots/stax/test_sign_data_refused/part2/00003.png differ diff --git a/tests/snapshots/stax/test_sign_data_refused/part2/00004.png b/tests/snapshots/stax/test_sign_data_refused/part2/00004.png index edb432d..4160ebe 100644 Binary files a/tests/snapshots/stax/test_sign_data_refused/part2/00004.png and b/tests/snapshots/stax/test_sign_data_refused/part2/00004.png differ diff --git a/tests/snapshots/stax/test_sign_tx_blind_error/00000.png b/tests/snapshots/stax/test_sign_tx_blind_error/00000.png index 7c13332..6ec86d1 100644 Binary files a/tests/snapshots/stax/test_sign_tx_blind_error/00000.png and b/tests/snapshots/stax/test_sign_tx_blind_error/00000.png differ diff --git a/tests/snapshots/stax/test_sign_tx_blind_error/00001.png b/tests/snapshots/stax/test_sign_tx_blind_error/00001.png index edb432d..4160ebe 100644 Binary files a/tests/snapshots/stax/test_sign_tx_blind_error/00001.png and b/tests/snapshots/stax/test_sign_tx_blind_error/00001.png differ diff --git a/tests/snapshots/stax/test_sign_tx_clear_jetton/part0/00000.png b/tests/snapshots/stax/test_sign_tx_clear_jetton/part0/00000.png new file mode 100644 index 0000000..87ce7c8 Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_clear_jetton/part0/00000.png differ diff --git a/tests/snapshots/stax/test_sign_tx_clear_jetton/part0/00001.png b/tests/snapshots/stax/test_sign_tx_clear_jetton/part0/00001.png new file mode 100644 index 0000000..b570c27 Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_clear_jetton/part0/00001.png differ diff --git a/tests/snapshots/stax/test_sign_tx_clear_jetton/part0/00002.png b/tests/snapshots/stax/test_sign_tx_clear_jetton/part0/00002.png new file mode 100644 index 0000000..ad6740b Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_clear_jetton/part0/00002.png differ diff --git a/tests/snapshots/stax/test_sign_tx_clear_jetton/part0/00003.png b/tests/snapshots/stax/test_sign_tx_clear_jetton/part0/00003.png new file mode 100644 index 0000000..a24543a Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_clear_jetton/part0/00003.png differ diff --git a/tests/snapshots/stax/test_sign_tx_clear_jetton/part0/00004.png b/tests/snapshots/stax/test_sign_tx_clear_jetton/part0/00004.png new file mode 100644 index 0000000..4160ebe Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_clear_jetton/part0/00004.png differ diff --git a/tests/snapshots/stax/test_sign_tx_clear_jetton/part1/00000.png b/tests/snapshots/stax/test_sign_tx_clear_jetton/part1/00000.png new file mode 100644 index 0000000..3422397 Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_clear_jetton/part1/00000.png differ diff --git a/tests/snapshots/stax/test_sign_tx_clear_jetton/part1/00001.png b/tests/snapshots/stax/test_sign_tx_clear_jetton/part1/00001.png new file mode 100644 index 0000000..b570c27 Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_clear_jetton/part1/00001.png differ diff --git a/tests/snapshots/stax/test_sign_tx_clear_jetton/part1/00002.png b/tests/snapshots/stax/test_sign_tx_clear_jetton/part1/00002.png new file mode 100644 index 0000000..ad6740b Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_clear_jetton/part1/00002.png differ diff --git a/tests/snapshots/stax/test_sign_tx_clear_jetton/part1/00003.png b/tests/snapshots/stax/test_sign_tx_clear_jetton/part1/00003.png new file mode 100644 index 0000000..a24543a Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_clear_jetton/part1/00003.png differ diff --git a/tests/snapshots/stax/test_sign_tx_clear_jetton/part1/00004.png b/tests/snapshots/stax/test_sign_tx_clear_jetton/part1/00004.png new file mode 100644 index 0000000..4160ebe Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_clear_jetton/part1/00004.png differ diff --git a/tests/snapshots/stax/test_sign_tx_clear_jetton/part2/00000.png b/tests/snapshots/stax/test_sign_tx_clear_jetton/part2/00000.png new file mode 100644 index 0000000..feb9afb Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_clear_jetton/part2/00000.png differ diff --git a/tests/snapshots/stax/test_sign_tx_clear_jetton/part2/00001.png b/tests/snapshots/stax/test_sign_tx_clear_jetton/part2/00001.png new file mode 100644 index 0000000..b570c27 Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_clear_jetton/part2/00001.png differ diff --git a/tests/snapshots/stax/test_sign_tx_clear_jetton/part2/00002.png b/tests/snapshots/stax/test_sign_tx_clear_jetton/part2/00002.png new file mode 100644 index 0000000..ad6740b Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_clear_jetton/part2/00002.png differ diff --git a/tests/snapshots/stax/test_sign_tx_clear_jetton/part2/00003.png b/tests/snapshots/stax/test_sign_tx_clear_jetton/part2/00003.png new file mode 100644 index 0000000..a24543a Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_clear_jetton/part2/00003.png differ diff --git a/tests/snapshots/stax/test_sign_tx_clear_jetton/part2/00004.png b/tests/snapshots/stax/test_sign_tx_clear_jetton/part2/00004.png new file mode 100644 index 0000000..4160ebe Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_clear_jetton/part2/00004.png differ diff --git a/tests/snapshots/stax/test_sign_tx_clear_jetton/part3/00000.png b/tests/snapshots/stax/test_sign_tx_clear_jetton/part3/00000.png new file mode 100644 index 0000000..91efd71 Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_clear_jetton/part3/00000.png differ diff --git a/tests/snapshots/stax/test_sign_tx_clear_jetton/part3/00001.png b/tests/snapshots/stax/test_sign_tx_clear_jetton/part3/00001.png new file mode 100644 index 0000000..b570c27 Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_clear_jetton/part3/00001.png differ diff --git a/tests/snapshots/stax/test_sign_tx_clear_jetton/part3/00002.png b/tests/snapshots/stax/test_sign_tx_clear_jetton/part3/00002.png new file mode 100644 index 0000000..ad6740b Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_clear_jetton/part3/00002.png differ diff --git a/tests/snapshots/stax/test_sign_tx_clear_jetton/part3/00003.png b/tests/snapshots/stax/test_sign_tx_clear_jetton/part3/00003.png new file mode 100644 index 0000000..a24543a Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_clear_jetton/part3/00003.png differ diff --git a/tests/snapshots/stax/test_sign_tx_clear_jetton/part3/00004.png b/tests/snapshots/stax/test_sign_tx_clear_jetton/part3/00004.png new file mode 100644 index 0000000..4160ebe Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_clear_jetton/part3/00004.png differ diff --git a/tests/snapshots/stax/test_sign_tx_clear_jetton/part4/00000.png b/tests/snapshots/stax/test_sign_tx_clear_jetton/part4/00000.png new file mode 100644 index 0000000..96c866b Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_clear_jetton/part4/00000.png differ diff --git a/tests/snapshots/stax/test_sign_tx_clear_jetton/part4/00001.png b/tests/snapshots/stax/test_sign_tx_clear_jetton/part4/00001.png new file mode 100644 index 0000000..b570c27 Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_clear_jetton/part4/00001.png differ diff --git a/tests/snapshots/stax/test_sign_tx_clear_jetton/part4/00002.png b/tests/snapshots/stax/test_sign_tx_clear_jetton/part4/00002.png new file mode 100644 index 0000000..ad6740b Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_clear_jetton/part4/00002.png differ diff --git a/tests/snapshots/stax/test_sign_tx_clear_jetton/part4/00003.png b/tests/snapshots/stax/test_sign_tx_clear_jetton/part4/00003.png new file mode 100644 index 0000000..a24543a Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_clear_jetton/part4/00003.png differ diff --git a/tests/snapshots/stax/test_sign_tx_clear_jetton/part4/00004.png b/tests/snapshots/stax/test_sign_tx_clear_jetton/part4/00004.png new file mode 100644 index 0000000..4160ebe Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_clear_jetton/part4/00004.png differ diff --git a/tests/snapshots/stax/test_sign_tx_clear_jetton/part5/00000.png b/tests/snapshots/stax/test_sign_tx_clear_jetton/part5/00000.png new file mode 100644 index 0000000..fee60f6 Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_clear_jetton/part5/00000.png differ diff --git a/tests/snapshots/stax/test_sign_tx_clear_jetton/part5/00001.png b/tests/snapshots/stax/test_sign_tx_clear_jetton/part5/00001.png new file mode 100644 index 0000000..b570c27 Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_clear_jetton/part5/00001.png differ diff --git a/tests/snapshots/stax/test_sign_tx_clear_jetton/part5/00002.png b/tests/snapshots/stax/test_sign_tx_clear_jetton/part5/00002.png new file mode 100644 index 0000000..ad6740b Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_clear_jetton/part5/00002.png differ diff --git a/tests/snapshots/stax/test_sign_tx_clear_jetton/part5/00003.png b/tests/snapshots/stax/test_sign_tx_clear_jetton/part5/00003.png new file mode 100644 index 0000000..a24543a Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_clear_jetton/part5/00003.png differ diff --git a/tests/snapshots/stax/test_sign_tx_clear_jetton/part5/00004.png b/tests/snapshots/stax/test_sign_tx_clear_jetton/part5/00004.png new file mode 100644 index 0000000..4160ebe Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_clear_jetton/part5/00004.png differ diff --git a/tests/snapshots/stax/test_sign_tx_clear_jetton/pretest/00000.png b/tests/snapshots/stax/test_sign_tx_clear_jetton/pretest/00000.png new file mode 100644 index 0000000..4160ebe Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_clear_jetton/pretest/00000.png differ diff --git a/tests/snapshots/stax/test_sign_tx_clear_jetton/pretest/00001.png b/tests/snapshots/stax/test_sign_tx_clear_jetton/pretest/00001.png new file mode 100644 index 0000000..cecd75a Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_clear_jetton/pretest/00001.png differ diff --git a/tests/snapshots/stax/test_sign_tx_clear_jetton/pretest/00002.png b/tests/snapshots/stax/test_sign_tx_clear_jetton/pretest/00002.png new file mode 100644 index 0000000..de96711 Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_clear_jetton/pretest/00002.png differ diff --git a/tests/snapshots/stax/test_sign_tx_clear_jetton/pretest/00003.png b/tests/snapshots/stax/test_sign_tx_clear_jetton/pretest/00003.png new file mode 100644 index 0000000..e2ba196 Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_clear_jetton/pretest/00003.png differ diff --git a/tests/snapshots/stax/test_sign_tx_clear_jetton/pretest/00004.png b/tests/snapshots/stax/test_sign_tx_clear_jetton/pretest/00004.png new file mode 100644 index 0000000..e58bf2f Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_clear_jetton/pretest/00004.png differ diff --git a/tests/snapshots/stax/test_sign_tx_clear_jetton/pretest/00005.png b/tests/snapshots/stax/test_sign_tx_clear_jetton/pretest/00005.png new file mode 100644 index 0000000..4160ebe Binary files /dev/null and b/tests/snapshots/stax/test_sign_tx_clear_jetton/pretest/00005.png differ diff --git a/tests/snapshots/stax/test_sign_tx_no_payload/00000.png b/tests/snapshots/stax/test_sign_tx_no_payload/00000.png index eeb3fa0..087ee99 100644 Binary files a/tests/snapshots/stax/test_sign_tx_no_payload/00000.png and b/tests/snapshots/stax/test_sign_tx_no_payload/00000.png differ diff --git a/tests/snapshots/stax/test_sign_tx_no_payload/00001.png b/tests/snapshots/stax/test_sign_tx_no_payload/00001.png index bbcb22b..860a73e 100644 Binary files a/tests/snapshots/stax/test_sign_tx_no_payload/00001.png and b/tests/snapshots/stax/test_sign_tx_no_payload/00001.png differ diff --git a/tests/snapshots/stax/test_sign_tx_no_payload/00002.png b/tests/snapshots/stax/test_sign_tx_no_payload/00002.png index 03c29f4..a24543a 100644 Binary files a/tests/snapshots/stax/test_sign_tx_no_payload/00002.png and b/tests/snapshots/stax/test_sign_tx_no_payload/00002.png differ diff --git a/tests/snapshots/stax/test_sign_tx_no_payload/00003.png b/tests/snapshots/stax/test_sign_tx_no_payload/00003.png index a21279c..4160ebe 100644 Binary files a/tests/snapshots/stax/test_sign_tx_no_payload/00003.png and b/tests/snapshots/stax/test_sign_tx_no_payload/00003.png differ diff --git a/tests/snapshots/stax/test_sign_tx_no_payload/00004.png b/tests/snapshots/stax/test_sign_tx_no_payload/00004.png deleted file mode 100644 index edb432d..0000000 Binary files a/tests/snapshots/stax/test_sign_tx_no_payload/00004.png and /dev/null differ diff --git a/tests/snapshots/stax/test_sign_tx_refused/part0/00000.png b/tests/snapshots/stax/test_sign_tx_refused/part0/00000.png index eeb3fa0..792d795 100644 Binary files a/tests/snapshots/stax/test_sign_tx_refused/part0/00000.png and b/tests/snapshots/stax/test_sign_tx_refused/part0/00000.png differ diff --git a/tests/snapshots/stax/test_sign_tx_refused/part0/00001.png b/tests/snapshots/stax/test_sign_tx_refused/part0/00001.png index 9d26114..abc9677 100644 Binary files a/tests/snapshots/stax/test_sign_tx_refused/part0/00001.png and b/tests/snapshots/stax/test_sign_tx_refused/part0/00001.png differ diff --git a/tests/snapshots/stax/test_sign_tx_refused/part0/00002.png b/tests/snapshots/stax/test_sign_tx_refused/part0/00002.png index cebc8be..2b66970 100644 Binary files a/tests/snapshots/stax/test_sign_tx_refused/part0/00002.png and b/tests/snapshots/stax/test_sign_tx_refused/part0/00002.png differ diff --git a/tests/snapshots/stax/test_sign_tx_refused/part0/00003.png b/tests/snapshots/stax/test_sign_tx_refused/part0/00003.png index edb432d..4160ebe 100644 Binary files a/tests/snapshots/stax/test_sign_tx_refused/part0/00003.png and b/tests/snapshots/stax/test_sign_tx_refused/part0/00003.png differ diff --git a/tests/snapshots/stax/test_sign_tx_refused/part1/00000.png b/tests/snapshots/stax/test_sign_tx_refused/part1/00000.png index eeb3fa0..792d795 100644 Binary files a/tests/snapshots/stax/test_sign_tx_refused/part1/00000.png and b/tests/snapshots/stax/test_sign_tx_refused/part1/00000.png differ diff --git a/tests/snapshots/stax/test_sign_tx_refused/part1/00001.png b/tests/snapshots/stax/test_sign_tx_refused/part1/00001.png index bbcb22b..087ee99 100644 Binary files a/tests/snapshots/stax/test_sign_tx_refused/part1/00001.png and b/tests/snapshots/stax/test_sign_tx_refused/part1/00001.png differ diff --git a/tests/snapshots/stax/test_sign_tx_refused/part1/00002.png b/tests/snapshots/stax/test_sign_tx_refused/part1/00002.png index 9d26114..abc9677 100644 Binary files a/tests/snapshots/stax/test_sign_tx_refused/part1/00002.png and b/tests/snapshots/stax/test_sign_tx_refused/part1/00002.png differ diff --git a/tests/snapshots/stax/test_sign_tx_refused/part1/00003.png b/tests/snapshots/stax/test_sign_tx_refused/part1/00003.png index cebc8be..2b66970 100644 Binary files a/tests/snapshots/stax/test_sign_tx_refused/part1/00003.png and b/tests/snapshots/stax/test_sign_tx_refused/part1/00003.png differ diff --git a/tests/snapshots/stax/test_sign_tx_refused/part1/00004.png b/tests/snapshots/stax/test_sign_tx_refused/part1/00004.png index edb432d..4160ebe 100644 Binary files a/tests/snapshots/stax/test_sign_tx_refused/part1/00004.png and b/tests/snapshots/stax/test_sign_tx_refused/part1/00004.png differ diff --git a/tests/snapshots/stax/test_sign_tx_refused/part2/00000.png b/tests/snapshots/stax/test_sign_tx_refused/part2/00000.png index eeb3fa0..792d795 100644 Binary files a/tests/snapshots/stax/test_sign_tx_refused/part2/00000.png and b/tests/snapshots/stax/test_sign_tx_refused/part2/00000.png differ diff --git a/tests/snapshots/stax/test_sign_tx_refused/part2/00001.png b/tests/snapshots/stax/test_sign_tx_refused/part2/00001.png index bbcb22b..087ee99 100644 Binary files a/tests/snapshots/stax/test_sign_tx_refused/part2/00001.png and b/tests/snapshots/stax/test_sign_tx_refused/part2/00001.png differ diff --git a/tests/snapshots/stax/test_sign_tx_refused/part2/00002.png b/tests/snapshots/stax/test_sign_tx_refused/part2/00002.png index 03c29f4..860a73e 100644 Binary files a/tests/snapshots/stax/test_sign_tx_refused/part2/00002.png and b/tests/snapshots/stax/test_sign_tx_refused/part2/00002.png differ diff --git a/tests/snapshots/stax/test_sign_tx_refused/part2/00003.png b/tests/snapshots/stax/test_sign_tx_refused/part2/00003.png index 9d26114..abc9677 100644 Binary files a/tests/snapshots/stax/test_sign_tx_refused/part2/00003.png and b/tests/snapshots/stax/test_sign_tx_refused/part2/00003.png differ diff --git a/tests/snapshots/stax/test_sign_tx_refused/part2/00004.png b/tests/snapshots/stax/test_sign_tx_refused/part2/00004.png index cebc8be..2b66970 100644 Binary files a/tests/snapshots/stax/test_sign_tx_refused/part2/00004.png and b/tests/snapshots/stax/test_sign_tx_refused/part2/00004.png differ diff --git a/tests/snapshots/stax/test_sign_tx_refused/part2/00005.png b/tests/snapshots/stax/test_sign_tx_refused/part2/00005.png index edb432d..4160ebe 100644 Binary files a/tests/snapshots/stax/test_sign_tx_refused/part2/00005.png and b/tests/snapshots/stax/test_sign_tx_refused/part2/00005.png differ diff --git a/tests/snapshots/stax/test_sign_tx_subwallet_id/part0/00000.png b/tests/snapshots/stax/test_sign_tx_subwallet_id/part0/00000.png index eeb3fa0..7fbed25 100644 Binary files a/tests/snapshots/stax/test_sign_tx_subwallet_id/part0/00000.png and b/tests/snapshots/stax/test_sign_tx_subwallet_id/part0/00000.png differ diff --git a/tests/snapshots/stax/test_sign_tx_subwallet_id/part0/00001.png b/tests/snapshots/stax/test_sign_tx_subwallet_id/part0/00001.png index 179fc3a..c994733 100644 Binary files a/tests/snapshots/stax/test_sign_tx_subwallet_id/part0/00001.png and b/tests/snapshots/stax/test_sign_tx_subwallet_id/part0/00001.png differ diff --git a/tests/snapshots/stax/test_sign_tx_subwallet_id/part0/00002.png b/tests/snapshots/stax/test_sign_tx_subwallet_id/part0/00002.png index 05a7e3e..5e1b934 100644 Binary files a/tests/snapshots/stax/test_sign_tx_subwallet_id/part0/00002.png and b/tests/snapshots/stax/test_sign_tx_subwallet_id/part0/00002.png differ diff --git a/tests/snapshots/stax/test_sign_tx_subwallet_id/part0/00003.png b/tests/snapshots/stax/test_sign_tx_subwallet_id/part0/00003.png index 01f2efc..a24543a 100644 Binary files a/tests/snapshots/stax/test_sign_tx_subwallet_id/part0/00003.png and b/tests/snapshots/stax/test_sign_tx_subwallet_id/part0/00003.png differ diff --git a/tests/snapshots/stax/test_sign_tx_subwallet_id/part0/00004.png b/tests/snapshots/stax/test_sign_tx_subwallet_id/part0/00004.png index a21279c..4160ebe 100644 Binary files a/tests/snapshots/stax/test_sign_tx_subwallet_id/part0/00004.png and b/tests/snapshots/stax/test_sign_tx_subwallet_id/part0/00004.png differ diff --git a/tests/snapshots/stax/test_sign_tx_subwallet_id/part0/00005.png b/tests/snapshots/stax/test_sign_tx_subwallet_id/part0/00005.png deleted file mode 100644 index edb432d..0000000 Binary files a/tests/snapshots/stax/test_sign_tx_subwallet_id/part0/00005.png and /dev/null differ diff --git a/tests/snapshots/stax/test_sign_tx_subwallet_id/part1/00000.png b/tests/snapshots/stax/test_sign_tx_subwallet_id/part1/00000.png index eeb3fa0..bb2d4d8 100644 Binary files a/tests/snapshots/stax/test_sign_tx_subwallet_id/part1/00000.png and b/tests/snapshots/stax/test_sign_tx_subwallet_id/part1/00000.png differ diff --git a/tests/snapshots/stax/test_sign_tx_subwallet_id/part1/00001.png b/tests/snapshots/stax/test_sign_tx_subwallet_id/part1/00001.png index 44d6d8c..415f627 100644 Binary files a/tests/snapshots/stax/test_sign_tx_subwallet_id/part1/00001.png and b/tests/snapshots/stax/test_sign_tx_subwallet_id/part1/00001.png differ diff --git a/tests/snapshots/stax/test_sign_tx_subwallet_id/part1/00002.png b/tests/snapshots/stax/test_sign_tx_subwallet_id/part1/00002.png index d6e5d25..5e1b934 100644 Binary files a/tests/snapshots/stax/test_sign_tx_subwallet_id/part1/00002.png and b/tests/snapshots/stax/test_sign_tx_subwallet_id/part1/00002.png differ diff --git a/tests/snapshots/stax/test_sign_tx_subwallet_id/part1/00003.png b/tests/snapshots/stax/test_sign_tx_subwallet_id/part1/00003.png index da03947..a24543a 100644 Binary files a/tests/snapshots/stax/test_sign_tx_subwallet_id/part1/00003.png and b/tests/snapshots/stax/test_sign_tx_subwallet_id/part1/00003.png differ diff --git a/tests/snapshots/stax/test_sign_tx_subwallet_id/part1/00004.png b/tests/snapshots/stax/test_sign_tx_subwallet_id/part1/00004.png index 01f2efc..4160ebe 100644 Binary files a/tests/snapshots/stax/test_sign_tx_subwallet_id/part1/00004.png and b/tests/snapshots/stax/test_sign_tx_subwallet_id/part1/00004.png differ diff --git a/tests/snapshots/stax/test_sign_tx_subwallet_id/part1/00005.png b/tests/snapshots/stax/test_sign_tx_subwallet_id/part1/00005.png deleted file mode 100644 index a21279c..0000000 Binary files a/tests/snapshots/stax/test_sign_tx_subwallet_id/part1/00005.png and /dev/null differ diff --git a/tests/snapshots/stax/test_sign_tx_subwallet_id/part1/00006.png b/tests/snapshots/stax/test_sign_tx_subwallet_id/part1/00006.png deleted file mode 100644 index edb432d..0000000 Binary files a/tests/snapshots/stax/test_sign_tx_subwallet_id/part1/00006.png and /dev/null differ diff --git a/tests/snapshots/stax/test_sign_tx_subwallet_id/pretest/00000.png b/tests/snapshots/stax/test_sign_tx_subwallet_id/pretest/00000.png index edb432d..4160ebe 100644 Binary files a/tests/snapshots/stax/test_sign_tx_subwallet_id/pretest/00000.png and b/tests/snapshots/stax/test_sign_tx_subwallet_id/pretest/00000.png differ diff --git a/tests/snapshots/stax/test_sign_tx_subwallet_id/pretest/00001.png b/tests/snapshots/stax/test_sign_tx_subwallet_id/pretest/00001.png index dfb48b6..cecd75a 100644 Binary files a/tests/snapshots/stax/test_sign_tx_subwallet_id/pretest/00001.png and b/tests/snapshots/stax/test_sign_tx_subwallet_id/pretest/00001.png differ diff --git a/tests/snapshots/stax/test_sign_tx_subwallet_id/pretest/00002.png b/tests/snapshots/stax/test_sign_tx_subwallet_id/pretest/00002.png index c7cb51a..de96711 100644 Binary files a/tests/snapshots/stax/test_sign_tx_subwallet_id/pretest/00002.png and b/tests/snapshots/stax/test_sign_tx_subwallet_id/pretest/00002.png differ diff --git a/tests/snapshots/stax/test_sign_tx_subwallet_id/pretest/00003.png b/tests/snapshots/stax/test_sign_tx_subwallet_id/pretest/00003.png index 892da7f..e2ba196 100644 Binary files a/tests/snapshots/stax/test_sign_tx_subwallet_id/pretest/00003.png and b/tests/snapshots/stax/test_sign_tx_subwallet_id/pretest/00003.png differ diff --git a/tests/snapshots/stax/test_sign_tx_subwallet_id/pretest/00004.png b/tests/snapshots/stax/test_sign_tx_subwallet_id/pretest/00004.png index 905d407..e58bf2f 100644 Binary files a/tests/snapshots/stax/test_sign_tx_subwallet_id/pretest/00004.png and b/tests/snapshots/stax/test_sign_tx_subwallet_id/pretest/00004.png differ diff --git a/tests/snapshots/stax/test_sign_tx_subwallet_id/pretest/00005.png b/tests/snapshots/stax/test_sign_tx_subwallet_id/pretest/00005.png index edb432d..4160ebe 100644 Binary files a/tests/snapshots/stax/test_sign_tx_subwallet_id/pretest/00005.png and b/tests/snapshots/stax/test_sign_tx_subwallet_id/pretest/00005.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part0/00000.png b/tests/snapshots/stax/test_sign_tx_with_payload/part0/00000.png index eeb3fa0..bb2d4d8 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part0/00000.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part0/00000.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part0/00001.png b/tests/snapshots/stax/test_sign_tx_with_payload/part0/00001.png index 44d6d8c..7c8927e 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part0/00001.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part0/00001.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part0/00002.png b/tests/snapshots/stax/test_sign_tx_with_payload/part0/00002.png index d6e5d25..5e1b934 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part0/00002.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part0/00002.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part0/00003.png b/tests/snapshots/stax/test_sign_tx_with_payload/part0/00003.png index 9e0e0cf..a24543a 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part0/00003.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part0/00003.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part0/00004.png b/tests/snapshots/stax/test_sign_tx_with_payload/part0/00004.png index 01f2efc..4160ebe 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part0/00004.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part0/00004.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part0/00005.png b/tests/snapshots/stax/test_sign_tx_with_payload/part0/00005.png deleted file mode 100644 index a21279c..0000000 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part0/00005.png and /dev/null differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part0/00006.png b/tests/snapshots/stax/test_sign_tx_with_payload/part0/00006.png deleted file mode 100644 index edb432d..0000000 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part0/00006.png and /dev/null differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part1/00000.png b/tests/snapshots/stax/test_sign_tx_with_payload/part1/00000.png index eeb3fa0..2428b1f 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part1/00000.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part1/00000.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part1/00001.png b/tests/snapshots/stax/test_sign_tx_with_payload/part1/00001.png index 179fc3a..860a73e 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part1/00001.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part1/00001.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part1/00002.png b/tests/snapshots/stax/test_sign_tx_with_payload/part1/00002.png index dddf6be..a24543a 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part1/00002.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part1/00002.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part1/00003.png b/tests/snapshots/stax/test_sign_tx_with_payload/part1/00003.png index 01f2efc..4160ebe 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part1/00003.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part1/00003.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part1/00004.png b/tests/snapshots/stax/test_sign_tx_with_payload/part1/00004.png deleted file mode 100644 index a21279c..0000000 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part1/00004.png and /dev/null differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part1/00005.png b/tests/snapshots/stax/test_sign_tx_with_payload/part1/00005.png deleted file mode 100644 index edb432d..0000000 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part1/00005.png and /dev/null differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part10/00000.png b/tests/snapshots/stax/test_sign_tx_with_payload/part10/00000.png index aace46a..c916aac 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part10/00000.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part10/00000.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part10/00001.png b/tests/snapshots/stax/test_sign_tx_with_payload/part10/00001.png index e996af3..fa5cda7 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part10/00001.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part10/00001.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part10/00002.png b/tests/snapshots/stax/test_sign_tx_with_payload/part10/00002.png index a848f53..3d35517 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part10/00002.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part10/00002.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part10/00003.png b/tests/snapshots/stax/test_sign_tx_with_payload/part10/00003.png index ceb1918..a24543a 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part10/00003.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part10/00003.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part10/00004.png b/tests/snapshots/stax/test_sign_tx_with_payload/part10/00004.png index a21279c..4160ebe 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part10/00004.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part10/00004.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part10/00005.png b/tests/snapshots/stax/test_sign_tx_with_payload/part10/00005.png deleted file mode 100644 index edb432d..0000000 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part10/00005.png and /dev/null differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part11/00000.png b/tests/snapshots/stax/test_sign_tx_with_payload/part11/00000.png index aace46a..1efdc70 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part11/00000.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part11/00000.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part11/00001.png b/tests/snapshots/stax/test_sign_tx_with_payload/part11/00001.png index e996af3..d46d918 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part11/00001.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part11/00001.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part11/00002.png b/tests/snapshots/stax/test_sign_tx_with_payload/part11/00002.png index 9bfe9ec..3d35517 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part11/00002.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part11/00002.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part11/00003.png b/tests/snapshots/stax/test_sign_tx_with_payload/part11/00003.png index ceb1918..a24543a 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part11/00003.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part11/00003.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part11/00004.png b/tests/snapshots/stax/test_sign_tx_with_payload/part11/00004.png index a21279c..4160ebe 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part11/00004.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part11/00004.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part11/00005.png b/tests/snapshots/stax/test_sign_tx_with_payload/part11/00005.png deleted file mode 100644 index edb432d..0000000 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part11/00005.png and /dev/null differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part12/00000.png b/tests/snapshots/stax/test_sign_tx_with_payload/part12/00000.png index 13bc5ca..6a69eab 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part12/00000.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part12/00000.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part12/00001.png b/tests/snapshots/stax/test_sign_tx_with_payload/part12/00001.png index 589f7bb..a5a2dfd 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part12/00001.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part12/00001.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part12/00002.png b/tests/snapshots/stax/test_sign_tx_with_payload/part12/00002.png index 8c0e5d8..a924ce3 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part12/00002.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part12/00002.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part12/00003.png b/tests/snapshots/stax/test_sign_tx_with_payload/part12/00003.png index 576f0f7..a24543a 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part12/00003.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part12/00003.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part12/00004.png b/tests/snapshots/stax/test_sign_tx_with_payload/part12/00004.png index a21279c..4160ebe 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part12/00004.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part12/00004.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part12/00005.png b/tests/snapshots/stax/test_sign_tx_with_payload/part12/00005.png deleted file mode 100644 index edb432d..0000000 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part12/00005.png and /dev/null differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part13/00000.png b/tests/snapshots/stax/test_sign_tx_with_payload/part13/00000.png index aeca90b..d98deee 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part13/00000.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part13/00000.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part13/00001.png b/tests/snapshots/stax/test_sign_tx_with_payload/part13/00001.png index 6d42c27..6f198aa 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part13/00001.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part13/00001.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part13/00002.png b/tests/snapshots/stax/test_sign_tx_with_payload/part13/00002.png index 9c7f2da..1bcd220 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part13/00002.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part13/00002.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part13/00003.png b/tests/snapshots/stax/test_sign_tx_with_payload/part13/00003.png index 78169de..a24543a 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part13/00003.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part13/00003.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part13/00004.png b/tests/snapshots/stax/test_sign_tx_with_payload/part13/00004.png index bcc838c..4160ebe 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part13/00004.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part13/00004.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part13/00005.png b/tests/snapshots/stax/test_sign_tx_with_payload/part13/00005.png deleted file mode 100644 index a21279c..0000000 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part13/00005.png and /dev/null differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part13/00006.png b/tests/snapshots/stax/test_sign_tx_with_payload/part13/00006.png deleted file mode 100644 index edb432d..0000000 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part13/00006.png and /dev/null differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part2/00000.png b/tests/snapshots/stax/test_sign_tx_with_payload/part2/00000.png index b31ccdc..344ff28 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part2/00000.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part2/00000.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part2/00001.png b/tests/snapshots/stax/test_sign_tx_with_payload/part2/00001.png index 23d904e..b570c27 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part2/00001.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part2/00001.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part2/00002.png b/tests/snapshots/stax/test_sign_tx_with_payload/part2/00002.png index 1cc9586..ad6740b 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part2/00002.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part2/00002.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part2/00003.png b/tests/snapshots/stax/test_sign_tx_with_payload/part2/00003.png index 866a6b8..a24543a 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part2/00003.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part2/00003.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part2/00004.png b/tests/snapshots/stax/test_sign_tx_with_payload/part2/00004.png index b49ad84..4160ebe 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part2/00004.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part2/00004.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part2/00005.png b/tests/snapshots/stax/test_sign_tx_with_payload/part2/00005.png deleted file mode 100644 index a21279c..0000000 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part2/00005.png and /dev/null differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part2/00006.png b/tests/snapshots/stax/test_sign_tx_with_payload/part2/00006.png deleted file mode 100644 index edb432d..0000000 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part2/00006.png and /dev/null differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part3/00000.png b/tests/snapshots/stax/test_sign_tx_with_payload/part3/00000.png index e344c1d..41f75eb 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part3/00000.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part3/00000.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part3/00001.png b/tests/snapshots/stax/test_sign_tx_with_payload/part3/00001.png index 55e1245..5bc90a2 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part3/00001.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part3/00001.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part3/00002.png b/tests/snapshots/stax/test_sign_tx_with_payload/part3/00002.png index 47646c2..5895a42 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part3/00002.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part3/00002.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part3/00003.png b/tests/snapshots/stax/test_sign_tx_with_payload/part3/00003.png index 866a6b8..a24543a 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part3/00003.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part3/00003.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part3/00004.png b/tests/snapshots/stax/test_sign_tx_with_payload/part3/00004.png index ba4e880..4160ebe 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part3/00004.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part3/00004.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part3/00005.png b/tests/snapshots/stax/test_sign_tx_with_payload/part3/00005.png deleted file mode 100644 index a21279c..0000000 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part3/00005.png and /dev/null differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part3/00006.png b/tests/snapshots/stax/test_sign_tx_with_payload/part3/00006.png deleted file mode 100644 index edb432d..0000000 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part3/00006.png and /dev/null differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part4/00000.png b/tests/snapshots/stax/test_sign_tx_with_payload/part4/00000.png index aeca90b..d98deee 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part4/00000.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part4/00000.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part4/00001.png b/tests/snapshots/stax/test_sign_tx_with_payload/part4/00001.png index 6d42c27..c590b9d 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part4/00001.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part4/00001.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part4/00002.png b/tests/snapshots/stax/test_sign_tx_with_payload/part4/00002.png index 9c7f2da..1bcd220 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part4/00002.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part4/00002.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part4/00003.png b/tests/snapshots/stax/test_sign_tx_with_payload/part4/00003.png index eb89f54..a24543a 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part4/00003.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part4/00003.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part4/00004.png b/tests/snapshots/stax/test_sign_tx_with_payload/part4/00004.png index bcc838c..4160ebe 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part4/00004.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part4/00004.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part4/00005.png b/tests/snapshots/stax/test_sign_tx_with_payload/part4/00005.png deleted file mode 100644 index a21279c..0000000 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part4/00005.png and /dev/null differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part4/00006.png b/tests/snapshots/stax/test_sign_tx_with_payload/part4/00006.png deleted file mode 100644 index edb432d..0000000 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part4/00006.png and /dev/null differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part5/00000.png b/tests/snapshots/stax/test_sign_tx_with_payload/part5/00000.png index 8069bed..a14a9c6 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part5/00000.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part5/00000.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part5/00001.png b/tests/snapshots/stax/test_sign_tx_with_payload/part5/00001.png index 1869b2a..4586069 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part5/00001.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part5/00001.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part5/00002.png b/tests/snapshots/stax/test_sign_tx_with_payload/part5/00002.png index 484d612..8f57e2d 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part5/00002.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part5/00002.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part5/00003.png b/tests/snapshots/stax/test_sign_tx_with_payload/part5/00003.png index b1fff39..a24543a 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part5/00003.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part5/00003.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part5/00004.png b/tests/snapshots/stax/test_sign_tx_with_payload/part5/00004.png index a21279c..4160ebe 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part5/00004.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part5/00004.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part5/00005.png b/tests/snapshots/stax/test_sign_tx_with_payload/part5/00005.png deleted file mode 100644 index edb432d..0000000 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part5/00005.png and /dev/null differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part6/00000.png b/tests/snapshots/stax/test_sign_tx_with_payload/part6/00000.png index 6562836..ed28cbf 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part6/00000.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part6/00000.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part6/00001.png b/tests/snapshots/stax/test_sign_tx_with_payload/part6/00001.png index 19d5eb4..ca638e5 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part6/00001.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part6/00001.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part6/00002.png b/tests/snapshots/stax/test_sign_tx_with_payload/part6/00002.png index e9ffc21..a24543a 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part6/00002.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part6/00002.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part6/00003.png b/tests/snapshots/stax/test_sign_tx_with_payload/part6/00003.png index f766c5a..4160ebe 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part6/00003.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part6/00003.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part6/00004.png b/tests/snapshots/stax/test_sign_tx_with_payload/part6/00004.png deleted file mode 100644 index a21279c..0000000 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part6/00004.png and /dev/null differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part6/00005.png b/tests/snapshots/stax/test_sign_tx_with_payload/part6/00005.png deleted file mode 100644 index edb432d..0000000 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part6/00005.png and /dev/null differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part7/00000.png b/tests/snapshots/stax/test_sign_tx_with_payload/part7/00000.png index 33e4127..5fbb62f 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part7/00000.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part7/00000.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part7/00001.png b/tests/snapshots/stax/test_sign_tx_with_payload/part7/00001.png index 0f161df..5a16e68 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part7/00001.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part7/00001.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part7/00002.png b/tests/snapshots/stax/test_sign_tx_with_payload/part7/00002.png index 5a76e15..172e51b 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part7/00002.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part7/00002.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part7/00003.png b/tests/snapshots/stax/test_sign_tx_with_payload/part7/00003.png index 5ee51c2..a24543a 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part7/00003.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part7/00003.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part7/00004.png b/tests/snapshots/stax/test_sign_tx_with_payload/part7/00004.png index a21279c..4160ebe 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part7/00004.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part7/00004.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part7/00005.png b/tests/snapshots/stax/test_sign_tx_with_payload/part7/00005.png deleted file mode 100644 index edb432d..0000000 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part7/00005.png and /dev/null differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part8/00000.png b/tests/snapshots/stax/test_sign_tx_with_payload/part8/00000.png index ac2e276..887ee27 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part8/00000.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part8/00000.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part8/00001.png b/tests/snapshots/stax/test_sign_tx_with_payload/part8/00001.png index 8f87247..0145981 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part8/00001.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part8/00001.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part8/00002.png b/tests/snapshots/stax/test_sign_tx_with_payload/part8/00002.png index bafe001..a24543a 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part8/00002.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part8/00002.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part8/00003.png b/tests/snapshots/stax/test_sign_tx_with_payload/part8/00003.png index a21279c..4160ebe 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part8/00003.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part8/00003.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part8/00004.png b/tests/snapshots/stax/test_sign_tx_with_payload/part8/00004.png deleted file mode 100644 index edb432d..0000000 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part8/00004.png and /dev/null differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part9/00000.png b/tests/snapshots/stax/test_sign_tx_with_payload/part9/00000.png index 6f8895b..b7d3c5b 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part9/00000.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part9/00000.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part9/00001.png b/tests/snapshots/stax/test_sign_tx_with_payload/part9/00001.png index 3ecf771..e08c535 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part9/00001.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part9/00001.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part9/00002.png b/tests/snapshots/stax/test_sign_tx_with_payload/part9/00002.png index a8dd65e..b32b104 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part9/00002.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part9/00002.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part9/00003.png b/tests/snapshots/stax/test_sign_tx_with_payload/part9/00003.png index 0943114..a24543a 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part9/00003.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part9/00003.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part9/00004.png b/tests/snapshots/stax/test_sign_tx_with_payload/part9/00004.png index a21279c..4160ebe 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part9/00004.png and b/tests/snapshots/stax/test_sign_tx_with_payload/part9/00004.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/part9/00005.png b/tests/snapshots/stax/test_sign_tx_with_payload/part9/00005.png deleted file mode 100644 index edb432d..0000000 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/part9/00005.png and /dev/null differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/pretest/00000.png b/tests/snapshots/stax/test_sign_tx_with_payload/pretest/00000.png index edb432d..4160ebe 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/pretest/00000.png and b/tests/snapshots/stax/test_sign_tx_with_payload/pretest/00000.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/pretest/00001.png b/tests/snapshots/stax/test_sign_tx_with_payload/pretest/00001.png index dfb48b6..cecd75a 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/pretest/00001.png and b/tests/snapshots/stax/test_sign_tx_with_payload/pretest/00001.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/pretest/00002.png b/tests/snapshots/stax/test_sign_tx_with_payload/pretest/00002.png index c7cb51a..de96711 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/pretest/00002.png and b/tests/snapshots/stax/test_sign_tx_with_payload/pretest/00002.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/pretest/00003.png b/tests/snapshots/stax/test_sign_tx_with_payload/pretest/00003.png index 892da7f..e2ba196 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/pretest/00003.png and b/tests/snapshots/stax/test_sign_tx_with_payload/pretest/00003.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/pretest/00004.png b/tests/snapshots/stax/test_sign_tx_with_payload/pretest/00004.png index 905d407..e58bf2f 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/pretest/00004.png and b/tests/snapshots/stax/test_sign_tx_with_payload/pretest/00004.png differ diff --git a/tests/snapshots/stax/test_sign_tx_with_payload/pretest/00005.png b/tests/snapshots/stax/test_sign_tx_with_payload/pretest/00005.png index edb432d..4160ebe 100644 Binary files a/tests/snapshots/stax/test_sign_tx_with_payload/pretest/00005.png and b/tests/snapshots/stax/test_sign_tx_with_payload/pretest/00005.png differ diff --git a/tests/test_appname_cmd.py b/tests/test_appname_cmd.py index c5944b7..ea3d177 100644 --- a/tests/test_appname_cmd.py +++ b/tests/test_appname_cmd.py @@ -9,4 +9,4 @@ def test_app_name(backend): # Send the GET_APP_NAME instruction to the app response = client.get_app_name() # Assert that we have received the correct appname - assert unpack_get_app_name_response(response.data) == "TON" \ No newline at end of file + assert unpack_get_app_name_response(response.data) == "TON" diff --git a/tests/test_name_version.py b/tests/test_name_version.py index bdb7949..fac1242 100644 --- a/tests/test_name_version.py +++ b/tests/test_name_version.py @@ -12,4 +12,4 @@ def test_get_app_and_version(backend, backend_name): app_name, version = unpack_get_app_and_version_response(response.data) assert app_name == "TON" - assert version == "2.1.0" \ No newline at end of file + assert version == "2.2.0" diff --git a/tests/test_proof_cmd.py b/tests/test_proof_cmd.py index 05f9599..9a71366 100644 --- a/tests/test_proof_cmd.py +++ b/tests/test_proof_cmd.py @@ -2,7 +2,7 @@ from application_client.ton_command_sender import BoilerplateCommandSender, Errors, AddressDisplayFlags from application_client.ton_response_unpacker import unpack_proof_response -from application_client.ton_utils import build_ton_proof_message +from application_client.ton_utils import build_ton_proof_message, build_ton_proof_message_v3r2 from ragger.error import ExceptionRAPDU from ragger.navigator import NavInsID, NavIns from utils import ROOT_SCREENSHOT_PATH, check_signature_validity @@ -25,10 +25,41 @@ def test_get_proof_accepted(firmware, backend, navigator, test_name): test_name) else: instructions = [ - NavInsID.USE_CASE_REVIEW_TAP, - NavIns(NavInsID.TOUCH, (200, 335)), + NavInsID.SWIPE_CENTER_TO_RIGHT, + NavIns(NavInsID.TOUCH, (200, 250)), NavInsID.USE_CASE_ADDRESS_CONFIRMATION_EXIT_QR, - NavInsID.USE_CASE_ADDRESS_CONFIRMATION_TAP, + NavInsID.USE_CASE_VIEW_DETAILS_NEXT, + NavInsID.USE_CASE_ADDRESS_CONFIRMATION_CONFIRM, + ] + navigator.navigate_and_compare(ROOT_SCREENSHOT_PATH, + test_name, + instructions) + response = client.get_async_response().data + sig, hash_b = unpack_proof_response(response) + assert hash_b == proof_msg + assert check_signature_validity(pubkey, sig, hash_b) + +def test_get_proof_accepted_v3r2(firmware, backend, navigator, test_name): + client = BoilerplateCommandSender(backend) + path = "m/44'/607'/0'/0'/0'/0'" + pubkey = client.get_public_key(path).data + domain = "example.com" + timestamp = 123 + payload = b"test" + proof_msg = build_ton_proof_message_v3r2(0, pubkey, domain, timestamp, payload) + with client.get_address_proof(path, AddressDisplayFlags.NONE, domain, timestamp, payload, is_v3r2=True): + if firmware.device.startswith("nano"): + navigator.navigate_until_text_and_compare(NavInsID.RIGHT_CLICK, + [NavInsID.BOTH_CLICK], + "Approve", + ROOT_SCREENSHOT_PATH, + test_name) + else: + instructions = [ + NavInsID.SWIPE_CENTER_TO_RIGHT, + NavIns(NavInsID.TOUCH, (200, 250)), + NavInsID.USE_CASE_ADDRESS_CONFIRMATION_EXIT_QR, + NavInsID.USE_CASE_VIEW_DETAILS_NEXT, NavInsID.USE_CASE_ADDRESS_CONFIRMATION_CONFIRM, ] navigator.navigate_and_compare(ROOT_SCREENSHOT_PATH, @@ -63,12 +94,12 @@ def test_get_proof_refused(firmware, backend, navigator, test_name): NavInsID.USE_CASE_REVIEW_REJECT, ], [ - NavInsID.USE_CASE_REVIEW_TAP, + NavInsID.SWIPE_CENTER_TO_RIGHT, NavInsID.USE_CASE_ADDRESS_CONFIRMATION_CANCEL, ], [ - NavInsID.USE_CASE_REVIEW_TAP, - NavInsID.USE_CASE_ADDRESS_CONFIRMATION_TAP, + NavInsID.SWIPE_CENTER_TO_RIGHT, + NavInsID.USE_CASE_VIEW_DETAILS_NEXT, NavInsID.USE_CASE_ADDRESS_CONFIRMATION_CANCEL, ] ] diff --git a/tests/test_pubkey_cmd.py b/tests/test_pubkey_cmd.py index e403149..cffc190 100644 --- a/tests/test_pubkey_cmd.py +++ b/tests/test_pubkey_cmd.py @@ -27,8 +27,32 @@ def test_get_public_key_confirm_accepted(firmware, backend, navigator, test_name test_name) else: instructions = [ - NavInsID.USE_CASE_REVIEW_TAP, - NavIns(NavInsID.TOUCH, (200, 335)), + NavInsID.SWIPE_CENTER_TO_RIGHT, + NavIns(NavInsID.TOUCH, (65, 520)), + NavInsID.USE_CASE_ADDRESS_CONFIRMATION_EXIT_QR, + NavInsID.USE_CASE_ADDRESS_CONFIRMATION_CONFIRM, + ] + navigator.navigate_and_compare(ROOT_SCREENSHOT_PATH, + test_name, + instructions) + response = client.get_async_response().data + assert len(response) == 32 + + +def test_get_public_key_confirm_accepted_v3r2(firmware, backend, navigator, test_name): + client = BoilerplateCommandSender(backend) + path = "m/44'/607'/0'/0'/0'/0'" + with client.get_public_key_with_confirmation(path, AddressDisplayFlags.NONE, is_v3r2=True): + if firmware.device.startswith("nano"): + navigator.navigate_until_text_and_compare(NavInsID.RIGHT_CLICK, + [NavInsID.BOTH_CLICK], + "Approve", + ROOT_SCREENSHOT_PATH, + test_name) + else: + instructions = [ + NavInsID.SWIPE_CENTER_TO_RIGHT, + NavIns(NavInsID.TOUCH, (65, 520)), NavInsID.USE_CASE_ADDRESS_CONFIRMATION_EXIT_QR, NavInsID.USE_CASE_ADDRESS_CONFIRMATION_CONFIRM, ] @@ -61,7 +85,7 @@ def test_get_public_key_confirm_refused(firmware, backend, navigator, test_name) NavInsID.USE_CASE_REVIEW_REJECT, ], [ - NavInsID.USE_CASE_REVIEW_TAP, + NavInsID.SWIPE_CENTER_TO_RIGHT, NavInsID.USE_CASE_ADDRESS_CONFIRMATION_CANCEL, ] ] diff --git a/tests/test_sign_cmd.py b/tests/test_sign_cmd.py index 52ffde5..bd6e232 100644 --- a/tests/test_sign_cmd.py +++ b/tests/test_sign_cmd.py @@ -41,12 +41,18 @@ def test_sign_tx_no_payload(firmware, backend, navigator, test_name): ROOT_SCREENSHOT_PATH, test_name) else: - navigator.navigate_until_text_and_compare(NavInsID.USE_CASE_REVIEW_TAP, + navigator.navigate_and_compare(ROOT_SCREENSHOT_PATH, + test_name, + [ + NavInsID.SWIPE_CENTER_TO_RIGHT, + ]) + navigator.navigate_until_text_and_compare(NavInsID.USE_CASE_VIEW_DETAILS_NEXT, [NavInsID.USE_CASE_REVIEW_CONFIRM, NavInsID.USE_CASE_STATUS_DISMISS], "Hold to sign", ROOT_SCREENSHOT_PATH, - test_name) + test_name, + screen_change_before_first_instruction=False) # The device as yielded the result, parse it and ensure that the signature is correct response = client.get_async_response().data @@ -170,12 +176,21 @@ def test_sign_tx_with_payload(firmware, backend, navigator, test_name): ROOT_SCREENSHOT_PATH, test_name + f"/part{i}") else: - navigator.navigate_until_text_and_compare(NavInsID.USE_CASE_REVIEW_TAP, + instructions = [ + NavInsID.SWIPE_CENTER_TO_RIGHT, + ] + if i == 0: + instructions += [NavInsID.SWIPE_CENTER_TO_RIGHT] + navigator.navigate_and_compare(ROOT_SCREENSHOT_PATH, + test_name + f"/part{i}", + instructions) + navigator.navigate_until_text_and_compare(NavInsID.USE_CASE_VIEW_DETAILS_NEXT, [NavInsID.USE_CASE_REVIEW_CONFIRM, NavInsID.USE_CASE_STATUS_DISMISS], "Hold to sign", ROOT_SCREENSHOT_PATH, - test_name + f"/part{i}") + test_name + f"/part{i}", + screen_change_before_first_instruction=False) # The device as yielded the result, parse it and ensure that the signature is correct response = client.get_async_response().data @@ -245,12 +260,21 @@ def test_sign_tx_subwallet_id(firmware, backend, navigator, test_name): ROOT_SCREENSHOT_PATH, test_name + f"/part{i}") else: - navigator.navigate_until_text_and_compare(NavInsID.USE_CASE_REVIEW_TAP, + instructions = [ + NavInsID.SWIPE_CENTER_TO_RIGHT, + ] + if i == 1: + instructions += [NavInsID.SWIPE_CENTER_TO_RIGHT] + navigator.navigate_and_compare(ROOT_SCREENSHOT_PATH, + test_name + f"/part{i}", + instructions) + navigator.navigate_until_text_and_compare(NavInsID.USE_CASE_VIEW_DETAILS_NEXT, [NavInsID.USE_CASE_REVIEW_CONFIRM, NavInsID.USE_CASE_STATUS_DISMISS], "Hold to sign", ROOT_SCREENSHOT_PATH, - test_name + f"/part{i}") + test_name + f"/part{i}", + screen_change_before_first_instruction=False) # The device as yielded the result, parse it and ensure that the signature is correct response = client.get_async_response().data @@ -283,7 +307,10 @@ def test_sign_tx_refused(firmware, backend, navigator, test_name): assert len(e.value.data) == 0 else: for i in range(3): - instructions = [NavInsID.USE_CASE_REVIEW_TAP] * i + instructions = [] + if i > 0: + instructions += [NavInsID.SWIPE_CENTER_TO_RIGHT] + instructions += [NavInsID.USE_CASE_VIEW_DETAILS_NEXT] * (i-1) instructions += [NavInsID.USE_CASE_REVIEW_REJECT, NavInsID.USE_CASE_CHOICE_CONFIRM, NavInsID.USE_CASE_STATUS_DISMISS] @@ -294,4 +321,119 @@ def test_sign_tx_refused(firmware, backend, navigator, test_name): instructions) # Assert that we have received a refusal assert e.value.status == Errors.SW_DENY - assert len(e.value.data) == 0 \ No newline at end of file + assert len(e.value.data) == 0 + + +def test_sign_tx_clear_jetton(firmware, backend, navigator, test_name): + import os + + # Use the app interface instead of raw interface + client = BoilerplateCommandSender(backend) + # The path used for this entire test + path: str = "m/44'/607'/0'/0'/0'/0'" + + # test that nano S refuses + if firmware.device == "nanos": + tx = Transaction(Address("0:" + "0" * 64), SendMode.PAY_GAS_SEPARATLY, 0, 1686176000, True, 100000000, + payload=JettonTransferPayload(100, Address("0:" + "0" * 64), forward_amount=1, jetton_id=0)) + tx_bytes = tx.to_request_bytes() + + with pytest.raises(ExceptionRAPDU) as e: + with client.sign_tx(path=path, transaction=tx_bytes): + pass + + assert e.value.status == Errors.SW_TX_PARSING_FAIL + assert len(e.value.data) == 0 + + return + + # test that trying a wrong jetton wallet address refuses + tx = Transaction(Address("0:" + "0" * 64), SendMode.PAY_GAS_SEPARATLY, 0, 1686176000, True, 100000000, + payload=JettonTransferPayload(100, Address("0:" + "0" * 64), forward_amount=1, jetton_id=0)) + tx_bytes = tx.to_request_bytes() + + with pytest.raises(ExceptionRAPDU) as e: + with client.sign_tx(path=path, transaction=tx_bytes): + pass + + assert e.value.status == Errors.SW_TX_PARSING_FAIL + assert len(e.value.data) == 0 + + # First we need to get the public key of the device in order to build the transaction + pubkey = client.get_public_key(path=path).data + + addresses = [ + "EQD0sKn8DbS12U015TWOSpYmyJYYDC_7sxg1upaMxnBvTiX8", + "EQANxfGN1EgFPawYB1fhPqebKe1Nb6FIsaiekEecJ6R-3kYF", + "EQCJngWcgOzi9kV2vwKTbOcJc5AoDiLj6u0CMperigl1Dul-", + "EQBvh5tyLrxE7CyeNFAUvHCQn50bmGK9iNPTSoXXcuNzHAsO", + "EQD5Hgvvs8iyeH_mwcgAdtz9eap3de8EBdn3dgv6NQaMSFxZ", + "EQC5LlcR2UXlqVrOJUqrF4YVTHVweuYavC_u2ia9VKDNIPEa", + ] + + # Enable blind signing and expert mode + if firmware.device.startswith("nano"): + navigator.navigate_and_compare(ROOT_SCREENSHOT_PATH, + test_name + "/pretest", + [ + NavInsID.RIGHT_CLICK, + NavInsID.BOTH_CLICK, + NavInsID.BOTH_CLICK, + NavInsID.RIGHT_CLICK, + NavInsID.BOTH_CLICK, + NavInsID.RIGHT_CLICK, + NavInsID.BOTH_CLICK, + NavInsID.RIGHT_CLICK, + NavInsID.BOTH_CLICK, + NavInsID.RIGHT_CLICK, + NavInsID.BOTH_CLICK, + ], + screen_change_before_first_instruction=False) + else: + navigator.navigate_and_compare(ROOT_SCREENSHOT_PATH, + test_name + "/pretest", + [ + NavInsID.USE_CASE_HOME_INFO, + NavInsID.USE_CASE_SETTINGS_NEXT, + NavIns(NavInsID.TOUCH, (354, 125)), + NavIns(NavInsID.TOUCH, (354, 272)), + NavInsID.USE_CASE_SETTINGS_MULTI_PAGE_EXIT, + ], + screen_change_before_first_instruction=False) + + for (i, addr) in list(enumerate(addresses)): + # Create the transaction that will be sent to the device for signing + tx = Transaction(Address(addr), SendMode.PAY_GAS_SEPARATLY, 0, 1686176000, True, 100000000, + payload=JettonTransferPayload(100, Address("0:" + "0" * 64), forward_amount=1, jetton_id=i)) + tx_bytes = tx.to_request_bytes() + + # Send the sign device instruction. + # As it requires on-screen validation, the function is asynchronous. + # It will yield the result when the navigation is done + with client.sign_tx(path=path, transaction=tx_bytes): + # Validate the on-screen request by performing the navigation appropriate for this device + if firmware.device.startswith("nano"): + navigator.navigate_until_text_and_compare(NavInsID.RIGHT_CLICK, + [NavInsID.BOTH_CLICK], + "Approve", + ROOT_SCREENSHOT_PATH, + test_name + f"/part{i}") + else: + navigator.navigate_and_compare(ROOT_SCREENSHOT_PATH, + test_name + f"/part{i}", + [ + NavInsID.SWIPE_CENTER_TO_RIGHT, + ]) + navigator.navigate_until_text_and_compare(NavInsID.USE_CASE_VIEW_DETAILS_NEXT, + [NavInsID.USE_CASE_REVIEW_CONFIRM, + NavInsID.USE_CASE_STATUS_DISMISS], + "Hold to sign", + ROOT_SCREENSHOT_PATH, + test_name + f"/part{i}", + screen_change_before_first_instruction=False) + + # The device as yielded the result, parse it and ensure that the signature is correct + response = client.get_async_response().data + sig, hash_b = unpack_sign_tx_response(response) + assert hash_b == tx.transfer_cell().bytes_hash() + assert check_signature_validity(pubkey, sig, hash_b) diff --git a/tests/test_sign_custom_data.py b/tests/test_sign_custom_data.py index d00974c..bd7a245 100644 --- a/tests/test_sign_custom_data.py +++ b/tests/test_sign_custom_data.py @@ -38,12 +38,18 @@ def test_sign_data(firmware, backend, navigator, test_name): ROOT_SCREENSHOT_PATH, test_name + f"/part{i}") else: - navigator.navigate_until_text_and_compare(NavInsID.USE_CASE_REVIEW_TAP, + navigator.navigate_and_compare(ROOT_SCREENSHOT_PATH, + test_name + f"/part{i}", + [ + NavInsID.SWIPE_CENTER_TO_RIGHT, + ]) + navigator.navigate_until_text_and_compare(NavInsID.USE_CASE_VIEW_DETAILS_NEXT, [NavInsID.USE_CASE_REVIEW_CONFIRM, NavInsID.USE_CASE_STATUS_DISMISS], "Hold to sign", ROOT_SCREENSHOT_PATH, - test_name + f"/part{i}") + test_name + f"/part{i}", + screen_change_before_first_instruction=False) # The device as yielded the result, parse it and ensure that the signature is correct response = client.get_async_response().data @@ -74,7 +80,10 @@ def test_sign_data_refused(firmware, backend, navigator, test_name): assert len(e.value.data) == 0 else: for i in range(3): - instructions = [NavInsID.USE_CASE_REVIEW_TAP] * i + instructions = [] + if i > 0: + instructions += [NavInsID.SWIPE_CENTER_TO_RIGHT] + instructions += [NavInsID.USE_CASE_VIEW_DETAILS_NEXT] * (i-1) instructions += [NavInsID.USE_CASE_REVIEW_REJECT, NavInsID.USE_CASE_STATUS_DISMISS] with pytest.raises(ExceptionRAPDU) as e: diff --git a/tests/test_version_cmd.py b/tests/test_version_cmd.py index 9381b2f..e726a26 100644 --- a/tests/test_version_cmd.py +++ b/tests/test_version_cmd.py @@ -2,7 +2,7 @@ from application_client.ton_response_unpacker import unpack_get_version_response MAJOR = 2 -MINOR = 1 +MINOR = 2 PATCH = 0 # In this test we check the behavior of the device when asked to provide the app version @@ -12,4 +12,4 @@ def test_version(backend): # Send the GET_VERSION instruction rapdu = client.get_version() # Use an helper to parse the response, assert the values - assert unpack_get_version_response(rapdu.data) == (MAJOR, MINOR, PATCH) \ No newline at end of file + assert unpack_get_version_response(rapdu.data) == (MAJOR, MINOR, PATCH)