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)