From 36186313a6d2815a788ca75e9434138c48cad5d7 Mon Sep 17 00:00:00 2001 From: Alexandre Paillier Date: Mon, 8 Apr 2024 15:36:48 +0200 Subject: [PATCH 01/11] Updated APDU documentation --- doc/ethapp.adoc | 115 +++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 95 insertions(+), 20 deletions(-) diff --git a/doc/ethapp.adoc b/doc/ethapp.adoc index 10637a07a..743fe287b 100644 --- a/doc/ethapp.adoc +++ b/doc/ethapp.adoc @@ -41,6 +41,10 @@ Application version 1.9.19 - 2022-05-17 ### 1.10.2 - Add domain names support +### 1.11.0 + - Add EIP-712 amount & date/time filtering + - PROVIDE ERC 20 TOKEN INFORMATION & PROVIDE NFT INFORMATION now send back the index where the asset has been stored + ## About This application describes the APDU messages interface to communicate with the Ethereum application. @@ -274,27 +278,31 @@ signed by the following secp256k1 public key 045e6c1020c14dc46442fe89f97c0b68cdb 'Command' [width="80%"] -|============================================================================================================================== +|====================================================================== | *CLA* | *INS* | *P1* | *P2* | *Lc* | *Le* -| E0 | 0A | 00 | 00 | variable | 00 -|============================================================================================================================== +| E0 | 0A | 00 | 00 | variable | 00 +|====================================================================== 'Input data' [width="80%"] -|============================================================================================================================== -| *Description* | *Length* -| Length of ERC 20 ticker | 1 -| ERC 20 ticker | variable -| ERC 20 contract address | 20 -| Number of decimals (big endian encoded) | 4 -| Chain ID (big endian encoded) | 4 -| Token information signature | variable -|============================================================================================================================== +|======================================================================= +| *Description* | *Length* +| Length of ERC 20 ticker | 1 +| ERC 20 ticker | variable +| ERC 20 contract address | 20 +| Number of decimals (big endian encoded) | 4 +| Chain ID (big endian encoded) | 4 +| Token information signature | variable +|======================================================================= 'Output data' -None +[width="80%"] +|==================================================================== +| *Description* | *Length* +| Asset index where the information has been stored | 1 +|==================================================================== ### SIGN ETH EIP 712 @@ -509,7 +517,11 @@ type || version || len(collectionName) || collectionName || address || chainId | 'Output data' -None +[width="80%"] +|==================================================================== +| *Description* | *Length* +| Asset index where the information has been stored | 1 +|==================================================================== ### SET PLUGIN @@ -825,10 +837,34 @@ The signature is computed on : 183 || chain ID (BE) || contract address || schema hash || filters count || display name +##### Amount-join token -##### Show field +This command should come before the corresponding *SEND STRUCT IMPLEMENTATION* and are only usable for message fields (and not domain ones). +The first byte is used so that a signature of one type cannot be valid as another type. + +The signature is computed on : -These commands should come before the corresponding *SEND STRUCT IMPLEMENTATION* and are only usable for message fields (and not domain ones). +11 || chain ID (BE) || contract address || schema hash || field path || token index + +##### Amount-join value + +This command should come before the corresponding *SEND STRUCT IMPLEMENTATION* and are only usable for message fields (and not domain ones). + +The signature is computed on : + +22 || chain ID (BE) || contract address || schema hash || field path || display name || token index + +##### Date / Time + +This command should come before the corresponding *SEND STRUCT IMPLEMENTATION* and are only usable for message fields (and not domain ones). + +The signature is computed on : + +33 || chain ID (BE) || contract address || schema hash || field path || display name + +##### Show raw field + +This command should come before the corresponding *SEND STRUCT IMPLEMENTATION* and are only usable for message fields (and not domain ones). The first byte is used so that a signature of one type cannot be valid as another type. The signature is computed on : @@ -843,17 +879,23 @@ _Command_ |========================================================================= | *CLA* | *INS* | *P1* | *P2* | *LC* | *Le* | E0 | 1E | 00 - | 00 : activate + | 00 : activation 0F : message info - FF : show field + FC : date/time + + FD : amount-join token + + FE : amount-join value + + FF : raw field | variable | variable |========================================================================= _Input data_ -##### If P2 == activate +##### If P2 == activation None @@ -869,7 +911,40 @@ None | Signature | variable |========================================== -##### If P2 == show field +##### If P2 == date / time + +[width="80%"] +|========================================== +| *Description* | *Length (byte)* +| Display name length | 1 +| Display name | variable +| Signature length | 1 +| Signature | variable +|========================================== + +##### If P2 == amount-join token + +[width="80%"] +|========================================== +| *Description* | *Length (byte)* +| Token index | 1 +| Signature length | 1 +| Signature | variable +|========================================== + +##### If P2 == amount-join value + +[width="80%"] +|========================================== +| *Description* | *Length (byte)* +| Display name length | 1 +| Display name | variable +| Token index | 1 +| Signature length | 1 +| Signature | variable +|========================================== + +##### If P2 == show raw field [width="80%"] |========================================== From 4a7e50138a7fb44dad80fef3b819c478954cb546 Mon Sep 17 00:00:00 2001 From: Alexandre Paillier Date: Tue, 7 May 2024 18:28:34 +0200 Subject: [PATCH 02/11] Revert "EIP-712 addresses can now be displayed as a token ticker or a trusted domain name" This reverts commit 77f5c9389ba9797ee1902656473b267fcd98487a. --- src_features/signMessageEIP712/ui_logic.c | 52 +++-------------------- 1 file changed, 5 insertions(+), 47 deletions(-) diff --git a/src_features/signMessageEIP712/ui_logic.c b/src_features/signMessageEIP712/ui_logic.c index c2a0b7442..7f5843c00 100644 --- a/src_features/signMessageEIP712/ui_logic.c +++ b/src_features/signMessageEIP712/ui_logic.c @@ -15,9 +15,7 @@ #include "apdu_constants.h" // APDU response codes #include "typed_data.h" #include "commands_712.h" -#include "manage_asset_info.h" #include "common_ui.h" -#include "domain_name.h" #include "uint_common.h" static t_ui_context *ui_ctx = NULL; @@ -186,39 +184,6 @@ static void ui_712_format_str(const uint8_t *const data, uint8_t length) { } } -/** - * Find a substitute token ticker for a given address - * - * @param[in] addr the given address - * @return the ticker name if found, \ref NULL otherwise - */ -static const char *get_address_token_ticker(const uint8_t *addr) { - extraInfo_t *extra_info = get_asset_info_by_addr(addr); - if (extra_info != NULL) { - return extra_info->token.ticker; - } - return NULL; -} - -/** - * Find a substitute (token ticker or domain name) for a given address - * - * @param[in] addr the given address - * @return the substitute if found, \ref NULL otherwise - */ -static const char *get_address_substitute(const uint8_t *addr) { - const char *str = NULL; - - str = get_address_token_ticker(addr); - if (str == NULL) { - if (has_domain_name(&eip712_context->chain_id, addr)) { - // No handling of the verbose domains setting - str = g_domain_name; - } - } - return str; -} - /** * Format a given data as a string representation of an address * @@ -231,19 +196,12 @@ static bool ui_712_format_addr(const uint8_t *const data, uint8_t length) { apdu_response_code = APDU_RESPONSE_INVALID_DATA; return false; } - if (ui_712_field_shown()) { - const char *sub; - - if (!N_storage.verbose_eip712 && ((sub = get_address_substitute(data)) != NULL)) { - ui_712_set_value(sub, strlen(sub)); - } else { - if (!getEthDisplayableAddress((uint8_t *) data, - strings.tmp.tmp, - sizeof(strings.tmp.tmp), - chainConfig->chainId)) { - THROW(APDU_RESPONSE_ERROR_NO_INFO); - } + if (!getEthDisplayableAddress((uint8_t *) data, + strings.tmp.tmp, + sizeof(strings.tmp.tmp), + chainConfig->chainId)) { + THROW(APDU_RESPONSE_ERROR_NO_INFO); } } return true; From c4049fc03911234bbfe61c9f38a007a353bf595d Mon Sep 17 00:00:00 2001 From: Alexandre Paillier Date: Mon, 6 May 2024 11:39:23 +0200 Subject: [PATCH 03/11] Removed old substitutions in EIP-712 test and renamed it message JSON directly in test --- .../address_substitution.json | 29 ---------- .../00001.png | Bin 6401 -> 0 bytes .../00002.png | Bin 5736 -> 0 bytes .../00004.png | Bin 5264 -> 0 bytes .../00002.png | Bin 5971 -> 0 bytes .../00000.png | Bin .../test_eip712_advanced_filtering/00001.png | Bin 0 -> 7547 bytes .../test_eip712_advanced_filtering/00002.png | Bin 0 -> 12340 bytes .../00003.png | Bin .../test_eip712_advanced_filtering/00004.png | Bin 0 -> 11918 bytes .../00005.png | Bin .../00006.png | Bin .../00000.png | Bin .../00001.png | Bin .../00002.png | Bin 0 -> 6664 bytes .../00003.png | Bin .../00004.png | Bin .../00005.png | Bin .../00006.png | Bin .../00007.png | Bin .../00008.png | Bin .../00009.png | Bin .../00010.png | Bin .../00011.png | Bin .../00012.png | Bin .../00001.png | Bin 414 -> 0 bytes .../00002.png | Bin 338 -> 0 bytes .../00004.png | Bin 324 -> 0 bytes .../00002.png | Bin 371 -> 0 bytes .../00000.png | Bin .../test_eip712_advanced_filtering/00001.png | Bin 0 -> 478 bytes .../test_eip712_advanced_filtering/00002.png | Bin 0 -> 715 bytes .../00003.png | Bin .../test_eip712_advanced_filtering/00004.png | Bin 0 -> 770 bytes .../00005.png | Bin .../00006.png | Bin .../00000.png | Bin .../00001.png | Bin .../00002.png | Bin 0 -> 396 bytes .../00003.png | Bin .../00004.png | Bin .../00005.png | Bin .../00006.png | Bin .../00007.png | Bin .../00008.png | Bin .../00009.png | Bin .../00010.png | Bin .../00011.png | Bin .../00012.png | Bin .../00001.png | Bin 414 -> 0 bytes .../00002.png | Bin 338 -> 0 bytes .../00004.png | Bin 324 -> 0 bytes .../00002.png | Bin 371 -> 0 bytes .../00000.png | Bin .../test_eip712_advanced_filtering/00001.png | Bin 0 -> 478 bytes .../test_eip712_advanced_filtering/00002.png | Bin 0 -> 715 bytes .../00003.png | Bin .../test_eip712_advanced_filtering/00004.png | Bin 0 -> 770 bytes .../00005.png | Bin .../00006.png | Bin .../00000.png | Bin .../00001.png | Bin .../00002.png | Bin 0 -> 396 bytes .../00003.png | Bin .../00004.png | Bin .../00005.png | Bin .../00006.png | Bin .../00007.png | Bin .../00008.png | Bin .../00009.png | Bin .../00010.png | Bin .../00011.png | Bin .../00012.png | Bin .../00001.png | Bin 7742 -> 0 bytes .../00002.png | Bin 7133 -> 0 bytes .../00004.png | Bin 6667 -> 0 bytes .../00002.png | Bin 7358 -> 0 bytes .../00000.png | Bin .../test_eip712_advanced_filtering/00001.png | Bin 0 -> 8734 bytes .../test_eip712_advanced_filtering/00002.png | Bin 0 -> 12707 bytes .../00003.png | Bin .../test_eip712_advanced_filtering/00004.png | Bin 0 -> 13042 bytes .../00005.png | Bin .../00006.png | Bin .../00000.png | Bin .../00001.png | Bin .../00002.png | Bin 0 -> 7967 bytes .../00003.png | Bin .../00004.png | Bin .../00005.png | Bin .../00006.png | Bin .../00007.png | Bin .../00008.png | Bin .../00009.png | Bin .../00010.png | Bin .../00011.png | Bin .../00012.png | Bin tests/ragger/test_eip712.py | 54 ++++++++++++------ 98 files changed, 36 insertions(+), 47 deletions(-) delete mode 100644 tests/ragger/eip712_input_files/address_substitution.json delete mode 100644 tests/ragger/snapshots/flex/test_eip712_address_substitution/00001.png delete mode 100644 tests/ragger/snapshots/flex/test_eip712_address_substitution/00002.png delete mode 100644 tests/ragger/snapshots/flex/test_eip712_address_substitution/00004.png delete mode 100644 tests/ragger/snapshots/flex/test_eip712_address_substitution_verbose/00002.png rename tests/ragger/snapshots/flex/{test_eip712_address_substitution => test_eip712_advanced_filtering}/00000.png (100%) create mode 100644 tests/ragger/snapshots/flex/test_eip712_advanced_filtering/00001.png create mode 100644 tests/ragger/snapshots/flex/test_eip712_advanced_filtering/00002.png rename tests/ragger/snapshots/flex/{test_eip712_address_substitution => test_eip712_advanced_filtering}/00003.png (100%) create mode 100644 tests/ragger/snapshots/flex/test_eip712_advanced_filtering/00004.png rename tests/ragger/snapshots/flex/{test_eip712_address_substitution => test_eip712_advanced_filtering}/00005.png (100%) rename tests/ragger/snapshots/flex/{test_eip712_address_substitution => test_eip712_advanced_filtering}/00006.png (100%) rename tests/ragger/snapshots/flex/{test_eip712_address_substitution_verbose => test_eip712_advanced_filtering_verbose}/00000.png (100%) rename tests/ragger/snapshots/flex/{test_eip712_address_substitution_verbose => test_eip712_advanced_filtering_verbose}/00001.png (100%) create mode 100644 tests/ragger/snapshots/flex/test_eip712_advanced_filtering_verbose/00002.png rename tests/ragger/snapshots/flex/{test_eip712_address_substitution_verbose => test_eip712_advanced_filtering_verbose}/00003.png (100%) rename tests/ragger/snapshots/flex/{test_eip712_address_substitution_verbose => test_eip712_advanced_filtering_verbose}/00004.png (100%) rename tests/ragger/snapshots/flex/{test_eip712_address_substitution_verbose => test_eip712_advanced_filtering_verbose}/00005.png (100%) rename tests/ragger/snapshots/flex/{test_eip712_address_substitution_verbose => test_eip712_advanced_filtering_verbose}/00006.png (100%) rename tests/ragger/snapshots/flex/{test_eip712_address_substitution_verbose => test_eip712_advanced_filtering_verbose}/00007.png (100%) rename tests/ragger/snapshots/flex/{test_eip712_address_substitution_verbose => test_eip712_advanced_filtering_verbose}/00008.png (100%) rename tests/ragger/snapshots/flex/{test_eip712_address_substitution_verbose => test_eip712_advanced_filtering_verbose}/00009.png (100%) rename tests/ragger/snapshots/flex/{test_eip712_address_substitution_verbose => test_eip712_advanced_filtering_verbose}/00010.png (100%) rename tests/ragger/snapshots/flex/{test_eip712_address_substitution_verbose => test_eip712_advanced_filtering_verbose}/00011.png (100%) rename tests/ragger/snapshots/flex/{test_eip712_address_substitution_verbose => test_eip712_advanced_filtering_verbose}/00012.png (100%) delete mode 100644 tests/ragger/snapshots/nanosp/test_eip712_address_substitution/00001.png delete mode 100644 tests/ragger/snapshots/nanosp/test_eip712_address_substitution/00002.png delete mode 100644 tests/ragger/snapshots/nanosp/test_eip712_address_substitution/00004.png delete mode 100644 tests/ragger/snapshots/nanosp/test_eip712_address_substitution_verbose/00002.png rename tests/ragger/snapshots/nanosp/{test_eip712_address_substitution => test_eip712_advanced_filtering}/00000.png (100%) create mode 100644 tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering/00001.png create mode 100644 tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering/00002.png rename tests/ragger/snapshots/nanosp/{test_eip712_address_substitution => test_eip712_advanced_filtering}/00003.png (100%) create mode 100644 tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering/00004.png rename tests/ragger/snapshots/nanosp/{test_eip712_address_substitution => test_eip712_advanced_filtering}/00005.png (100%) rename tests/ragger/snapshots/nanosp/{test_eip712_address_substitution => test_eip712_advanced_filtering}/00006.png (100%) rename tests/ragger/snapshots/nanosp/{test_eip712_address_substitution_verbose => test_eip712_advanced_filtering_verbose}/00000.png (100%) rename tests/ragger/snapshots/nanosp/{test_eip712_address_substitution_verbose => test_eip712_advanced_filtering_verbose}/00001.png (100%) create mode 100644 tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering_verbose/00002.png rename tests/ragger/snapshots/nanosp/{test_eip712_address_substitution_verbose => test_eip712_advanced_filtering_verbose}/00003.png (100%) rename tests/ragger/snapshots/nanosp/{test_eip712_address_substitution_verbose => test_eip712_advanced_filtering_verbose}/00004.png (100%) rename tests/ragger/snapshots/nanosp/{test_eip712_address_substitution_verbose => test_eip712_advanced_filtering_verbose}/00005.png (100%) rename tests/ragger/snapshots/nanosp/{test_eip712_address_substitution_verbose => test_eip712_advanced_filtering_verbose}/00006.png (100%) rename tests/ragger/snapshots/nanosp/{test_eip712_address_substitution_verbose => test_eip712_advanced_filtering_verbose}/00007.png (100%) rename tests/ragger/snapshots/nanosp/{test_eip712_address_substitution_verbose => test_eip712_advanced_filtering_verbose}/00008.png (100%) rename tests/ragger/snapshots/nanosp/{test_eip712_address_substitution_verbose => test_eip712_advanced_filtering_verbose}/00009.png (100%) rename tests/ragger/snapshots/nanosp/{test_eip712_address_substitution_verbose => test_eip712_advanced_filtering_verbose}/00010.png (100%) rename tests/ragger/snapshots/nanosp/{test_eip712_address_substitution_verbose => test_eip712_advanced_filtering_verbose}/00011.png (100%) rename tests/ragger/snapshots/nanosp/{test_eip712_address_substitution_verbose => test_eip712_advanced_filtering_verbose}/00012.png (100%) delete mode 100644 tests/ragger/snapshots/nanox/test_eip712_address_substitution/00001.png delete mode 100644 tests/ragger/snapshots/nanox/test_eip712_address_substitution/00002.png delete mode 100644 tests/ragger/snapshots/nanox/test_eip712_address_substitution/00004.png delete mode 100644 tests/ragger/snapshots/nanox/test_eip712_address_substitution_verbose/00002.png rename tests/ragger/snapshots/nanox/{test_eip712_address_substitution => test_eip712_advanced_filtering}/00000.png (100%) create mode 100644 tests/ragger/snapshots/nanox/test_eip712_advanced_filtering/00001.png create mode 100644 tests/ragger/snapshots/nanox/test_eip712_advanced_filtering/00002.png rename tests/ragger/snapshots/nanox/{test_eip712_address_substitution => test_eip712_advanced_filtering}/00003.png (100%) create mode 100644 tests/ragger/snapshots/nanox/test_eip712_advanced_filtering/00004.png rename tests/ragger/snapshots/nanox/{test_eip712_address_substitution => test_eip712_advanced_filtering}/00005.png (100%) rename tests/ragger/snapshots/nanox/{test_eip712_address_substitution => test_eip712_advanced_filtering}/00006.png (100%) rename tests/ragger/snapshots/nanox/{test_eip712_address_substitution_verbose => test_eip712_advanced_filtering_verbose}/00000.png (100%) rename tests/ragger/snapshots/nanox/{test_eip712_address_substitution_verbose => test_eip712_advanced_filtering_verbose}/00001.png (100%) create mode 100644 tests/ragger/snapshots/nanox/test_eip712_advanced_filtering_verbose/00002.png rename tests/ragger/snapshots/nanox/{test_eip712_address_substitution_verbose => test_eip712_advanced_filtering_verbose}/00003.png (100%) rename tests/ragger/snapshots/nanox/{test_eip712_address_substitution_verbose => test_eip712_advanced_filtering_verbose}/00004.png (100%) rename tests/ragger/snapshots/nanox/{test_eip712_address_substitution_verbose => test_eip712_advanced_filtering_verbose}/00005.png (100%) rename tests/ragger/snapshots/nanox/{test_eip712_address_substitution_verbose => test_eip712_advanced_filtering_verbose}/00006.png (100%) rename tests/ragger/snapshots/nanox/{test_eip712_address_substitution_verbose => test_eip712_advanced_filtering_verbose}/00007.png (100%) rename tests/ragger/snapshots/nanox/{test_eip712_address_substitution_verbose => test_eip712_advanced_filtering_verbose}/00008.png (100%) rename tests/ragger/snapshots/nanox/{test_eip712_address_substitution_verbose => test_eip712_advanced_filtering_verbose}/00009.png (100%) rename tests/ragger/snapshots/nanox/{test_eip712_address_substitution_verbose => test_eip712_advanced_filtering_verbose}/00010.png (100%) rename tests/ragger/snapshots/nanox/{test_eip712_address_substitution_verbose => test_eip712_advanced_filtering_verbose}/00011.png (100%) rename tests/ragger/snapshots/nanox/{test_eip712_address_substitution_verbose => test_eip712_advanced_filtering_verbose}/00012.png (100%) delete mode 100644 tests/ragger/snapshots/stax/test_eip712_address_substitution/00001.png delete mode 100644 tests/ragger/snapshots/stax/test_eip712_address_substitution/00002.png delete mode 100644 tests/ragger/snapshots/stax/test_eip712_address_substitution/00004.png delete mode 100644 tests/ragger/snapshots/stax/test_eip712_address_substitution_verbose/00002.png rename tests/ragger/snapshots/stax/{test_eip712_address_substitution => test_eip712_advanced_filtering}/00000.png (100%) create mode 100644 tests/ragger/snapshots/stax/test_eip712_advanced_filtering/00001.png create mode 100644 tests/ragger/snapshots/stax/test_eip712_advanced_filtering/00002.png rename tests/ragger/snapshots/stax/{test_eip712_address_substitution => test_eip712_advanced_filtering}/00003.png (100%) create mode 100644 tests/ragger/snapshots/stax/test_eip712_advanced_filtering/00004.png rename tests/ragger/snapshots/stax/{test_eip712_address_substitution => test_eip712_advanced_filtering}/00005.png (100%) rename tests/ragger/snapshots/stax/{test_eip712_address_substitution => test_eip712_advanced_filtering}/00006.png (100%) rename tests/ragger/snapshots/stax/{test_eip712_address_substitution_verbose => test_eip712_advanced_filtering_verbose}/00000.png (100%) rename tests/ragger/snapshots/stax/{test_eip712_address_substitution_verbose => test_eip712_advanced_filtering_verbose}/00001.png (100%) create mode 100644 tests/ragger/snapshots/stax/test_eip712_advanced_filtering_verbose/00002.png rename tests/ragger/snapshots/stax/{test_eip712_address_substitution_verbose => test_eip712_advanced_filtering_verbose}/00003.png (100%) rename tests/ragger/snapshots/stax/{test_eip712_address_substitution_verbose => test_eip712_advanced_filtering_verbose}/00004.png (100%) rename tests/ragger/snapshots/stax/{test_eip712_address_substitution_verbose => test_eip712_advanced_filtering_verbose}/00005.png (100%) rename tests/ragger/snapshots/stax/{test_eip712_address_substitution_verbose => test_eip712_advanced_filtering_verbose}/00006.png (100%) rename tests/ragger/snapshots/stax/{test_eip712_address_substitution_verbose => test_eip712_advanced_filtering_verbose}/00007.png (100%) rename tests/ragger/snapshots/stax/{test_eip712_address_substitution_verbose => test_eip712_advanced_filtering_verbose}/00008.png (100%) rename tests/ragger/snapshots/stax/{test_eip712_address_substitution_verbose => test_eip712_advanced_filtering_verbose}/00009.png (100%) rename tests/ragger/snapshots/stax/{test_eip712_address_substitution_verbose => test_eip712_advanced_filtering_verbose}/00010.png (100%) rename tests/ragger/snapshots/stax/{test_eip712_address_substitution_verbose => test_eip712_advanced_filtering_verbose}/00011.png (100%) rename tests/ragger/snapshots/stax/{test_eip712_address_substitution_verbose => test_eip712_advanced_filtering_verbose}/00012.png (100%) diff --git a/tests/ragger/eip712_input_files/address_substitution.json b/tests/ragger/eip712_input_files/address_substitution.json deleted file mode 100644 index 3cff494e8..000000000 --- a/tests/ragger/eip712_input_files/address_substitution.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "domain": { - "chainId": 1, - "name": "Token test", - "verifyingContract": "0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC", - "version": "1" - }, - "message": { - "from": "0xaAaAaAaaAaAaAaaAaAAAAAAAAaaaAaAaAaaAaaAa", - "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", - "amount": "117", - "token": "0x6B175474E89094C44Da98b954EedeAC495271d0F" - }, - "primaryType": "Transfer", - "types": { - "EIP712Domain": [ - { "name": "name", "type": "string" }, - { "name": "version", "type": "string" }, - { "name": "chainId", "type": "uint256" }, - { "name": "verifyingContract", "type": "address" } - ], - "Transfer": [ - { "name": "from", "type": "address" }, - { "name": "to", "type": "address" }, - { "name": "amount", "type": "uint256" }, - { "name": "token", "type": "address" } - ] - } -} diff --git a/tests/ragger/snapshots/flex/test_eip712_address_substitution/00001.png b/tests/ragger/snapshots/flex/test_eip712_address_substitution/00001.png deleted file mode 100644 index 6bdc1e04431ce0c874a3e5faec79fec9ea534631..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6401 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 Y7)mIh`0?662N`n04}HAuXw=RB0C3+>7ytkO diff --git a/tests/ragger/snapshots/flex/test_eip712_address_substitution/00004.png b/tests/ragger/snapshots/flex/test_eip712_address_substitution/00004.png deleted file mode 100644 index a8988ceb0187ccc76cf81dae6de4120986cf9eb6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5264 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 diff --git a/tests/ragger/snapshots/flex/test_eip712_address_substitution/00000.png b/tests/ragger/snapshots/flex/test_eip712_advanced_filtering/00000.png similarity index 100% rename from tests/ragger/snapshots/flex/test_eip712_address_substitution/00000.png rename to tests/ragger/snapshots/flex/test_eip712_advanced_filtering/00000.png diff --git a/tests/ragger/snapshots/flex/test_eip712_advanced_filtering/00001.png b/tests/ragger/snapshots/flex/test_eip712_advanced_filtering/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..227282ae5041e3fe2c64b3aca50b7f7d42ea1556 GIT binary patch literal 7547 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 GxBmjS5z@Q> literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/flex/test_eip712_advanced_filtering/00002.png b/tests/ragger/snapshots/flex/test_eip712_advanced_filtering/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..39c6eb03c525ae886e3b912f1ea44b630e4ebdbc GIT binary patch literal 12340 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⪼Hp7*APEwqE-0m>K=KcYnc~#1u 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 literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/flex/test_eip712_address_substitution/00005.png b/tests/ragger/snapshots/flex/test_eip712_advanced_filtering/00005.png similarity index 100% rename from tests/ragger/snapshots/flex/test_eip712_address_substitution/00005.png rename to tests/ragger/snapshots/flex/test_eip712_advanced_filtering/00005.png diff --git a/tests/ragger/snapshots/flex/test_eip712_address_substitution/00006.png b/tests/ragger/snapshots/flex/test_eip712_advanced_filtering/00006.png similarity index 100% rename from tests/ragger/snapshots/flex/test_eip712_address_substitution/00006.png rename to tests/ragger/snapshots/flex/test_eip712_advanced_filtering/00006.png diff --git a/tests/ragger/snapshots/flex/test_eip712_address_substitution_verbose/00000.png b/tests/ragger/snapshots/flex/test_eip712_advanced_filtering_verbose/00000.png similarity index 100% rename from tests/ragger/snapshots/flex/test_eip712_address_substitution_verbose/00000.png rename to tests/ragger/snapshots/flex/test_eip712_advanced_filtering_verbose/00000.png diff --git a/tests/ragger/snapshots/flex/test_eip712_address_substitution_verbose/00001.png b/tests/ragger/snapshots/flex/test_eip712_advanced_filtering_verbose/00001.png similarity index 100% rename from tests/ragger/snapshots/flex/test_eip712_address_substitution_verbose/00001.png rename to tests/ragger/snapshots/flex/test_eip712_advanced_filtering_verbose/00001.png diff --git a/tests/ragger/snapshots/flex/test_eip712_advanced_filtering_verbose/00002.png b/tests/ragger/snapshots/flex/test_eip712_advanced_filtering_verbose/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..fcd385eef71f75c375376c81f772f66ff2e6d3fd GIT binary patch literal 6664 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 E0Dqgfm;e9( diff --git a/tests/ragger/snapshots/nanosp/test_eip712_address_substitution/00002.png b/tests/ragger/snapshots/nanosp/test_eip712_address_substitution/00002.png deleted file mode 100644 index e9adb7c1d97fe855b51b4959b8e5dd43beaab5cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 338 zcmV-Y0j>UtP)YMofNAg{IfrMxi2t+`+lJ^#oGcf%E8=PSP0D#*)qIck!T5I!3DJ5i2 zzFMtyS&5{6qj%sOQ$5mM5I@m7aDp-YG5T~@M*0FQ6VFwH^aaQ+eF2u8ey(94eF295 zy??Is0RV`%^9gqP*|Krb7BAJ&bHH>9zcZKjZuxr%eJ-W|O$y`N=5^k9I{&=;Rodm5}8nX0n^CW8N-%Jf6>4hR0ha-s> k0000000000001uY2cQ4mchRd&H2?qr07*qoM6N<$f-Vo4eEP@)+k$jgfEFlcoNftE&eQ%Wz6ixob;E-(t0D#ARjV|D1-}h=HrF1j% z>eY$-j4t5h2y~fn-w~?;SMrt7cBSf8c@5=urj%~pVXW`b1-w>9T&+>vrzxds^3j85 zs{K^-2DH1v)jmV74;spQz000000001hKl2Nk W9;9xsR+eP|0000)WEeC`}SBHgeb3m|77_WsW8pV)h7Ad^^+?CQHqXGa}aZ@Ec(|Gwh*tbk+#e9rtjaxPZ?jncx?V`mm~aw_k~pI4FB!l zw*5W3h~FVrrle=xk<)SpD(?+)lIX0YlB2R MUHx3vIVCg!0N>@Gh5!Hn diff --git a/tests/ragger/snapshots/nanosp/test_eip712_address_substitution/00000.png b/tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering/00000.png similarity index 100% rename from tests/ragger/snapshots/nanosp/test_eip712_address_substitution/00000.png rename to tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering/00000.png diff --git a/tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering/00001.png b/tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..02ab24df7f555a4105a3a6af63b6bf8ba0274c09 GIT binary patch literal 478 zcmV<40U`d0P)F%$ju-s7y^%7b~*oH;@O008)*v9Mgc<}5CHrC@d=ChOl%omKJZ;?6ib zFf$TwcycdDos!zdQ9GKUwBuIXwyZ6eZbi^`CW!T2ySZGpy==6n@FF_{ioY9|Tk%jW zf4f4@3~<)q@0I5qJw|3gz9Qt+;V(PT;y}T>-`aNFkp^!;Gu^e**fx zIB&#ukL*vHIXgW7-CK(NGIgcc&xDN{x_Q(GNcC4`7$!d(%srKk|zMtvnuLDF{&NiwwiL4zYOHace1O|FKc*O zj0$H}@kjh1b0?c-_soK2aknjjnSuA;2-^eh5IC>HO$zK&r4N7{3|VlxoodujR+DSR zQKAkyyU(9jwqouj;Gzne;XcuBc0}2fp_A$TWhkzu_ZPz$WWrS_lM5#^246+G_gW2A z)xKihMAWwSnGC#Is|FY*86}`bi}!Ea=0~2~?F!(d^V4v3(`Q>Je9mgLvj!XlOA%AD z*Zr;nk;3PiaqkA8TSg4oYf8aZyHcx_!EO0+rSgdlcv^s0>u=3~#_Wq3B@!7_L>F@l zSyP%7ILfU6sKSw>pQ(*K97FhAz$4`7T$Tx+Do_Bx#8iJ1A8C_n|Eg|^i<+_!*%EN< z5u-*Sgb+dqc>`&GDUaW|BgJytAREFkC xo(9hfK$rXKXQPI6>iE`^vLzve5JCufBYzOl*p=49?GXR~002ovPDHLkV1fv#Ps;!R literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanosp/test_eip712_address_substitution/00003.png b/tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering/00003.png similarity index 100% rename from tests/ragger/snapshots/nanosp/test_eip712_address_substitution/00003.png rename to tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering/00003.png diff --git a/tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering/00004.png b/tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..b79b3d7e67262363d3fdfa3757e9b92eda1e06ec GIT binary patch literal 770 zcmV+d1O5DoP)6N7a@cYLI@$#`C0A28^>{o zmQspiY5n>^{H}K3jWeKM6I_J75@2y%8EsZXw(4u>N@pp>Il@~0t#%-$4zXCH)UTx! zVSMIbj<;EMPe8jXSo=gB?$%~oK4S?=vF&76+5HM=qgl6n!KS@?0$x~@#Xj*_s}LcC z5JJcwBvwO_yKJGfh+9A*)cCqh+p8YM>6@}_PpYp)9Wit-L0#X6HfoDFf_fZq6u+-! z>9{xe!5I;+Lehm85-gRGiGZtV^L00MMBImaw4he(#pPe?;;j$m6u_ddwLa9xywvIO zRE_65odDH)X9Z8Ws4m>&2nQ~gtgXW033+3&8XBfY>>MIw?WNQA3;;<(Ycn$9MLGfM z^mz_sg~?jpg)<`VfJ}hsi7c0@P2bh}(1XKp4`|0lY%I>cs(p|cO1Kj+gUskpLkTsb zKN;p=C0vD85(Jq!c$7B0xpzaITHmT=kUGmz9DQ}+E^*ZNFg%5}(oPM5;^>i%`iRJ= zDd`b6L);7T?L{%%4i|z}!pHj?mSMYkgzIx^UW`;{pnHy(*x^aaPbdM%$`b+{2q7fqKeM1UfvK28!~g&Q07*qoM6N<$g7cqf ADF6Tf literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanosp/test_eip712_address_substitution/00005.png b/tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering/00005.png similarity index 100% rename from tests/ragger/snapshots/nanosp/test_eip712_address_substitution/00005.png rename to tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering/00005.png diff --git a/tests/ragger/snapshots/nanosp/test_eip712_address_substitution/00006.png b/tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering/00006.png similarity index 100% rename from tests/ragger/snapshots/nanosp/test_eip712_address_substitution/00006.png rename to tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering/00006.png diff --git a/tests/ragger/snapshots/nanosp/test_eip712_address_substitution_verbose/00000.png b/tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering_verbose/00000.png similarity index 100% rename from tests/ragger/snapshots/nanosp/test_eip712_address_substitution_verbose/00000.png rename to tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering_verbose/00000.png diff --git a/tests/ragger/snapshots/nanosp/test_eip712_address_substitution_verbose/00001.png b/tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering_verbose/00001.png similarity index 100% rename from tests/ragger/snapshots/nanosp/test_eip712_address_substitution_verbose/00001.png rename to tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering_verbose/00001.png diff --git a/tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering_verbose/00002.png b/tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering_verbose/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..27384cb8bd9922a0b51da658cafea5ccdaa8b7b7 GIT binary patch literal 396 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|VF-ZuLG9=cSyVDoj{_nivj*^j~FO;jMX8BG~I^ZjYh4mqT9Q z#BHa;^zG-ZX5XNhzAdLy{-O0+q0HSLi8=b}ajV%cEHtkbdT;Rlks0fRoie|KUllwR zted{zwaxR`JIff1zVBXEfAjQbC!p~S@mX*FsO59redoyjPksU4l|3(|ZtU1SqgG_$ zI~UpcH)olib39!p8fMG2_3#S0{2SZNe#o6FoUZ$-^zn%`zb=N={BG*)mX|#9w~ot~)GomFO&k`|Ns-;g<~mU%6~o%@Lesuz_JW_r{i;v2p%?YN}r{{dw~H zit7`zzWlDfmX+)izEwVXcYW&l(|rGI_s^I!_sg!kM*k+CRhj%ZQ){K#@5zD9QzKf# lZh0D+N_2ezg(WgLyoWJwlZ;uA&En%AVNX{-mvv4FO#lPJtYH8E literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanosp/test_eip712_address_substitution_verbose/00003.png b/tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering_verbose/00003.png similarity index 100% rename from tests/ragger/snapshots/nanosp/test_eip712_address_substitution_verbose/00003.png rename to tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering_verbose/00003.png diff --git a/tests/ragger/snapshots/nanosp/test_eip712_address_substitution_verbose/00004.png b/tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering_verbose/00004.png similarity index 100% rename from tests/ragger/snapshots/nanosp/test_eip712_address_substitution_verbose/00004.png rename to tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering_verbose/00004.png diff --git a/tests/ragger/snapshots/nanosp/test_eip712_address_substitution_verbose/00005.png b/tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering_verbose/00005.png similarity index 100% rename from tests/ragger/snapshots/nanosp/test_eip712_address_substitution_verbose/00005.png rename to tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering_verbose/00005.png diff --git a/tests/ragger/snapshots/nanosp/test_eip712_address_substitution_verbose/00006.png b/tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering_verbose/00006.png similarity index 100% rename from tests/ragger/snapshots/nanosp/test_eip712_address_substitution_verbose/00006.png rename to tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering_verbose/00006.png diff --git a/tests/ragger/snapshots/nanosp/test_eip712_address_substitution_verbose/00007.png b/tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering_verbose/00007.png similarity index 100% rename from tests/ragger/snapshots/nanosp/test_eip712_address_substitution_verbose/00007.png rename to tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering_verbose/00007.png diff --git a/tests/ragger/snapshots/nanosp/test_eip712_address_substitution_verbose/00008.png b/tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering_verbose/00008.png similarity index 100% rename from tests/ragger/snapshots/nanosp/test_eip712_address_substitution_verbose/00008.png rename to tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering_verbose/00008.png diff --git a/tests/ragger/snapshots/nanosp/test_eip712_address_substitution_verbose/00009.png b/tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering_verbose/00009.png similarity index 100% rename from tests/ragger/snapshots/nanosp/test_eip712_address_substitution_verbose/00009.png rename to tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering_verbose/00009.png diff --git a/tests/ragger/snapshots/nanosp/test_eip712_address_substitution_verbose/00010.png b/tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering_verbose/00010.png similarity index 100% rename from tests/ragger/snapshots/nanosp/test_eip712_address_substitution_verbose/00010.png rename to tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering_verbose/00010.png diff --git a/tests/ragger/snapshots/nanosp/test_eip712_address_substitution_verbose/00011.png b/tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering_verbose/00011.png similarity index 100% rename from tests/ragger/snapshots/nanosp/test_eip712_address_substitution_verbose/00011.png rename to tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering_verbose/00011.png diff --git a/tests/ragger/snapshots/nanosp/test_eip712_address_substitution_verbose/00012.png b/tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering_verbose/00012.png similarity index 100% rename from tests/ragger/snapshots/nanosp/test_eip712_address_substitution_verbose/00012.png rename to tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering_verbose/00012.png diff --git a/tests/ragger/snapshots/nanox/test_eip712_address_substitution/00001.png b/tests/ragger/snapshots/nanox/test_eip712_address_substitution/00001.png deleted file mode 100644 index 5ea6164a8f09cddcab0772b6940ee2ed3ac147f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 414 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|>x3ba4!+nDh2#^rmJ7o`%Hg zW!8!Ry-&rRYc`(gv*SgG%F4g{)mgjDCMG4`2I+qqw{g0-psn6gmU}1lg#>3e9F?Dc zC`I~{j8w>`N3%e(L9ni~mkKVA(6YQ14| zlPzlL(_1^&md@4r#v9r9Ufi^C^5?h-U;t-ZAP{Zof^ELT3xk~lc${APg_A2#ZAa|pKOjk$B!@=g85H=Gyd zibWSK-TuqOjD2UA^XylD*S~*Nf2O}-#qoo0E#h+0ZtiV7sPaat{)4FBy)!F5Yf zzszfNF@Bj~)}s9qmK{gd2P|n;nA{vK7zcD3GI(J2|I!43gUT}xi-LqbUHx3vIVCg! E0Dqgfm;e9( diff --git a/tests/ragger/snapshots/nanox/test_eip712_address_substitution/00002.png b/tests/ragger/snapshots/nanox/test_eip712_address_substitution/00002.png deleted file mode 100644 index e9adb7c1d97fe855b51b4959b8e5dd43beaab5cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 338 zcmV-Y0j>UtP)YMofNAg{IfrMxi2t+`+lJ^#oGcf%E8=PSP0D#*)qIck!T5I!3DJ5i2 zzFMtyS&5{6qj%sOQ$5mM5I@m7aDp-YG5T~@M*0FQ6VFwH^aaQ+eF2u8ey(94eF295 zy??Is0RV`%^9gqP*|Krb7BAJ&bHH>9zcZKjZuxr%eJ-W|O$y`N=5^k9I{&=;Rodm5}8nX0n^CW8N-%Jf6>4hR0ha-s> k0000000000001uY2cQ4mchRd&H2?qr07*qoM6N<$f-Vo4eEP@)+k$jgfEFlcoNftE&eQ%Wz6ixob;E-(t0D#ARjV|D1-}h=HrF1j% z>eY$-j4t5h2y~fn-w~?;SMrt7cBSf8c@5=urj%~pVXW`b1-w>9T&+>vrzxds^3j85 zs{K^-2DH1v)jmV74;spQz000000001hKl2Nk W9;9xsR+eP|0000)WEeC`}SBHgeb3m|77_WsW8pV)h7Ad^^+?CQHqXGa}aZ@Ec(|Gwh*tbk+#e9rtjaxPZ?jncx?V`mm~aw_k~pI4FB!l zw*5W3h~FVrrle=xk<)SpD(?+)lIX0YlB2R MUHx3vIVCg!0N>@Gh5!Hn diff --git a/tests/ragger/snapshots/nanox/test_eip712_address_substitution/00000.png b/tests/ragger/snapshots/nanox/test_eip712_advanced_filtering/00000.png similarity index 100% rename from tests/ragger/snapshots/nanox/test_eip712_address_substitution/00000.png rename to tests/ragger/snapshots/nanox/test_eip712_advanced_filtering/00000.png diff --git a/tests/ragger/snapshots/nanox/test_eip712_advanced_filtering/00001.png b/tests/ragger/snapshots/nanox/test_eip712_advanced_filtering/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..02ab24df7f555a4105a3a6af63b6bf8ba0274c09 GIT binary patch literal 478 zcmV<40U`d0P)F%$ju-s7y^%7b~*oH;@O008)*v9Mgc<}5CHrC@d=ChOl%omKJZ;?6ib zFf$TwcycdDos!zdQ9GKUwBuIXwyZ6eZbi^`CW!T2ySZGpy==6n@FF_{ioY9|Tk%jW zf4f4@3~<)q@0I5qJw|3gz9Qt+;V(PT;y}T>-`aNFkp^!;Gu^e**fx zIB&#ukL*vHIXgW7-CK(NGIgcc&xDN{x_Q(GNcC4`7$!d(%srKk|zMtvnuLDF{&NiwwiL4zYOHace1O|FKc*O zj0$H}@kjh1b0?c-_soK2aknjjnSuA;2-^eh5IC>HO$zK&r4N7{3|VlxoodujR+DSR zQKAkyyU(9jwqouj;Gzne;XcuBc0}2fp_A$TWhkzu_ZPz$WWrS_lM5#^246+G_gW2A z)xKihMAWwSnGC#Is|FY*86}`bi}!Ea=0~2~?F!(d^V4v3(`Q>Je9mgLvj!XlOA%AD z*Zr;nk;3PiaqkA8TSg4oYf8aZyHcx_!EO0+rSgdlcv^s0>u=3~#_Wq3B@!7_L>F@l zSyP%7ILfU6sKSw>pQ(*K97FhAz$4`7T$Tx+Do_Bx#8iJ1A8C_n|Eg|^i<+_!*%EN< z5u-*Sgb+dqc>`&GDUaW|BgJytAREFkC xo(9hfK$rXKXQPI6>iE`^vLzve5JCufBYzOl*p=49?GXR~002ovPDHLkV1fv#Ps;!R literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanox/test_eip712_address_substitution/00003.png b/tests/ragger/snapshots/nanox/test_eip712_advanced_filtering/00003.png similarity index 100% rename from tests/ragger/snapshots/nanox/test_eip712_address_substitution/00003.png rename to tests/ragger/snapshots/nanox/test_eip712_advanced_filtering/00003.png diff --git a/tests/ragger/snapshots/nanox/test_eip712_advanced_filtering/00004.png b/tests/ragger/snapshots/nanox/test_eip712_advanced_filtering/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..b79b3d7e67262363d3fdfa3757e9b92eda1e06ec GIT binary patch literal 770 zcmV+d1O5DoP)6N7a@cYLI@$#`C0A28^>{o zmQspiY5n>^{H}K3jWeKM6I_J75@2y%8EsZXw(4u>N@pp>Il@~0t#%-$4zXCH)UTx! zVSMIbj<;EMPe8jXSo=gB?$%~oK4S?=vF&76+5HM=qgl6n!KS@?0$x~@#Xj*_s}LcC z5JJcwBvwO_yKJGfh+9A*)cCqh+p8YM>6@}_PpYp)9Wit-L0#X6HfoDFf_fZq6u+-! z>9{xe!5I;+Lehm85-gRGiGZtV^L00MMBImaw4he(#pPe?;;j$m6u_ddwLa9xywvIO zRE_65odDH)X9Z8Ws4m>&2nQ~gtgXW033+3&8XBfY>>MIw?WNQA3;;<(Ycn$9MLGfM z^mz_sg~?jpg)<`VfJ}hsi7c0@P2bh}(1XKp4`|0lY%I>cs(p|cO1Kj+gUskpLkTsb zKN;p=C0vD85(Jq!c$7B0xpzaITHmT=kUGmz9DQ}+E^*ZNFg%5}(oPM5;^>i%`iRJ= zDd`b6L);7T?L{%%4i|z}!pHj?mSMYkgzIx^UW`;{pnHy(*x^aaPbdM%$`b+{2q7fqKeM1UfvK28!~g&Q07*qoM6N<$g7cqf ADF6Tf literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanox/test_eip712_address_substitution/00005.png b/tests/ragger/snapshots/nanox/test_eip712_advanced_filtering/00005.png similarity index 100% rename from tests/ragger/snapshots/nanox/test_eip712_address_substitution/00005.png rename to tests/ragger/snapshots/nanox/test_eip712_advanced_filtering/00005.png diff --git a/tests/ragger/snapshots/nanox/test_eip712_address_substitution/00006.png b/tests/ragger/snapshots/nanox/test_eip712_advanced_filtering/00006.png similarity index 100% rename from tests/ragger/snapshots/nanox/test_eip712_address_substitution/00006.png rename to tests/ragger/snapshots/nanox/test_eip712_advanced_filtering/00006.png diff --git a/tests/ragger/snapshots/nanox/test_eip712_address_substitution_verbose/00000.png b/tests/ragger/snapshots/nanox/test_eip712_advanced_filtering_verbose/00000.png similarity index 100% rename from tests/ragger/snapshots/nanox/test_eip712_address_substitution_verbose/00000.png rename to tests/ragger/snapshots/nanox/test_eip712_advanced_filtering_verbose/00000.png diff --git a/tests/ragger/snapshots/nanox/test_eip712_address_substitution_verbose/00001.png b/tests/ragger/snapshots/nanox/test_eip712_advanced_filtering_verbose/00001.png similarity index 100% rename from tests/ragger/snapshots/nanox/test_eip712_address_substitution_verbose/00001.png rename to tests/ragger/snapshots/nanox/test_eip712_advanced_filtering_verbose/00001.png diff --git a/tests/ragger/snapshots/nanox/test_eip712_advanced_filtering_verbose/00002.png b/tests/ragger/snapshots/nanox/test_eip712_advanced_filtering_verbose/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..27384cb8bd9922a0b51da658cafea5ccdaa8b7b7 GIT binary patch literal 396 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|VF-ZuLG9=cSyVDoj{_nivj*^j~FO;jMX8BG~I^ZjYh4mqT9Q z#BHa;^zG-ZX5XNhzAdLy{-O0+q0HSLi8=b}ajV%cEHtkbdT;Rlks0fRoie|KUllwR zted{zwaxR`JIff1zVBXEfAjQbC!p~S@mX*FsO59redoyjPksU4l|3(|ZtU1SqgG_$ zI~UpcH)olib39!p8fMG2_3#S0{2SZNe#o6FoUZ$-^zn%`zb=N={BG*)mX|#9w~ot~)GomFO&k`|Ns-;g<~mU%6~o%@Lesuz_JW_r{i;v2p%?YN}r{{dw~H zit7`zzWlDfmX+)izEwVXcYW&l(|rGI_s^I!_sg!kM*k+CRhj%ZQ){K#@5zD9QzKf# lZh0D+N_2ezg(WgLyoWJwlZ;uA&En%AVNX{-mvv4FO#lPJtYH8E literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanox/test_eip712_address_substitution_verbose/00003.png b/tests/ragger/snapshots/nanox/test_eip712_advanced_filtering_verbose/00003.png similarity index 100% rename from tests/ragger/snapshots/nanox/test_eip712_address_substitution_verbose/00003.png rename to tests/ragger/snapshots/nanox/test_eip712_advanced_filtering_verbose/00003.png diff --git a/tests/ragger/snapshots/nanox/test_eip712_address_substitution_verbose/00004.png b/tests/ragger/snapshots/nanox/test_eip712_advanced_filtering_verbose/00004.png similarity index 100% rename from tests/ragger/snapshots/nanox/test_eip712_address_substitution_verbose/00004.png rename to tests/ragger/snapshots/nanox/test_eip712_advanced_filtering_verbose/00004.png diff --git a/tests/ragger/snapshots/nanox/test_eip712_address_substitution_verbose/00005.png b/tests/ragger/snapshots/nanox/test_eip712_advanced_filtering_verbose/00005.png similarity index 100% rename from tests/ragger/snapshots/nanox/test_eip712_address_substitution_verbose/00005.png rename to tests/ragger/snapshots/nanox/test_eip712_advanced_filtering_verbose/00005.png diff --git a/tests/ragger/snapshots/nanox/test_eip712_address_substitution_verbose/00006.png b/tests/ragger/snapshots/nanox/test_eip712_advanced_filtering_verbose/00006.png similarity index 100% rename from tests/ragger/snapshots/nanox/test_eip712_address_substitution_verbose/00006.png rename to tests/ragger/snapshots/nanox/test_eip712_advanced_filtering_verbose/00006.png diff --git a/tests/ragger/snapshots/nanox/test_eip712_address_substitution_verbose/00007.png b/tests/ragger/snapshots/nanox/test_eip712_advanced_filtering_verbose/00007.png similarity index 100% rename from tests/ragger/snapshots/nanox/test_eip712_address_substitution_verbose/00007.png rename to tests/ragger/snapshots/nanox/test_eip712_advanced_filtering_verbose/00007.png diff --git a/tests/ragger/snapshots/nanox/test_eip712_address_substitution_verbose/00008.png b/tests/ragger/snapshots/nanox/test_eip712_advanced_filtering_verbose/00008.png similarity index 100% rename from tests/ragger/snapshots/nanox/test_eip712_address_substitution_verbose/00008.png rename to tests/ragger/snapshots/nanox/test_eip712_advanced_filtering_verbose/00008.png diff --git a/tests/ragger/snapshots/nanox/test_eip712_address_substitution_verbose/00009.png b/tests/ragger/snapshots/nanox/test_eip712_advanced_filtering_verbose/00009.png similarity index 100% rename from tests/ragger/snapshots/nanox/test_eip712_address_substitution_verbose/00009.png rename to tests/ragger/snapshots/nanox/test_eip712_advanced_filtering_verbose/00009.png diff --git a/tests/ragger/snapshots/nanox/test_eip712_address_substitution_verbose/00010.png b/tests/ragger/snapshots/nanox/test_eip712_advanced_filtering_verbose/00010.png similarity index 100% rename from tests/ragger/snapshots/nanox/test_eip712_address_substitution_verbose/00010.png rename to tests/ragger/snapshots/nanox/test_eip712_advanced_filtering_verbose/00010.png diff --git a/tests/ragger/snapshots/nanox/test_eip712_address_substitution_verbose/00011.png b/tests/ragger/snapshots/nanox/test_eip712_advanced_filtering_verbose/00011.png similarity index 100% rename from tests/ragger/snapshots/nanox/test_eip712_address_substitution_verbose/00011.png rename to tests/ragger/snapshots/nanox/test_eip712_advanced_filtering_verbose/00011.png diff --git a/tests/ragger/snapshots/nanox/test_eip712_address_substitution_verbose/00012.png b/tests/ragger/snapshots/nanox/test_eip712_advanced_filtering_verbose/00012.png similarity index 100% rename from tests/ragger/snapshots/nanox/test_eip712_address_substitution_verbose/00012.png rename to tests/ragger/snapshots/nanox/test_eip712_advanced_filtering_verbose/00012.png diff --git a/tests/ragger/snapshots/stax/test_eip712_address_substitution/00001.png b/tests/ragger/snapshots/stax/test_eip712_address_substitution/00001.png deleted file mode 100644 index 77c86c83872b379feae0c173821f26c59ba510cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7742 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 Yk~li#&VK>lC0BW#@cp^^Sop911Xsvx&;S4c diff --git a/tests/ragger/snapshots/stax/test_eip712_address_substitution/00000.png b/tests/ragger/snapshots/stax/test_eip712_advanced_filtering/00000.png similarity index 100% rename from tests/ragger/snapshots/stax/test_eip712_address_substitution/00000.png rename to tests/ragger/snapshots/stax/test_eip712_advanced_filtering/00000.png diff --git a/tests/ragger/snapshots/stax/test_eip712_advanced_filtering/00001.png b/tests/ragger/snapshots/stax/test_eip712_advanced_filtering/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..09e7b60660a7c7911c6882e7e0f6b8ee293f90e1 GIT binary patch literal 8734 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 literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/test_eip712_advanced_filtering/00002.png b/tests/ragger/snapshots/stax/test_eip712_advanced_filtering/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..146f3861895b3325f14bac0302da5b7af13ea5f3 GIT binary patch literal 12707 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 literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/test_eip712_address_substitution/00005.png b/tests/ragger/snapshots/stax/test_eip712_advanced_filtering/00005.png similarity index 100% rename from tests/ragger/snapshots/stax/test_eip712_address_substitution/00005.png rename to tests/ragger/snapshots/stax/test_eip712_advanced_filtering/00005.png diff --git a/tests/ragger/snapshots/stax/test_eip712_address_substitution/00006.png b/tests/ragger/snapshots/stax/test_eip712_advanced_filtering/00006.png similarity index 100% rename from tests/ragger/snapshots/stax/test_eip712_address_substitution/00006.png rename to tests/ragger/snapshots/stax/test_eip712_advanced_filtering/00006.png diff --git a/tests/ragger/snapshots/stax/test_eip712_address_substitution_verbose/00000.png b/tests/ragger/snapshots/stax/test_eip712_advanced_filtering_verbose/00000.png similarity index 100% rename from tests/ragger/snapshots/stax/test_eip712_address_substitution_verbose/00000.png rename to tests/ragger/snapshots/stax/test_eip712_advanced_filtering_verbose/00000.png diff --git a/tests/ragger/snapshots/stax/test_eip712_address_substitution_verbose/00001.png b/tests/ragger/snapshots/stax/test_eip712_advanced_filtering_verbose/00001.png similarity index 100% rename from tests/ragger/snapshots/stax/test_eip712_address_substitution_verbose/00001.png rename to tests/ragger/snapshots/stax/test_eip712_advanced_filtering_verbose/00001.png diff --git a/tests/ragger/snapshots/stax/test_eip712_advanced_filtering_verbose/00002.png b/tests/ragger/snapshots/stax/test_eip712_advanced_filtering_verbose/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..0bbc80f43061270b678fb1c1c84c1fec5e99bf0b GIT binary patch literal 7967 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 literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/test_eip712_address_substitution_verbose/00003.png b/tests/ragger/snapshots/stax/test_eip712_advanced_filtering_verbose/00003.png similarity index 100% rename from tests/ragger/snapshots/stax/test_eip712_address_substitution_verbose/00003.png rename to tests/ragger/snapshots/stax/test_eip712_advanced_filtering_verbose/00003.png diff --git a/tests/ragger/snapshots/stax/test_eip712_address_substitution_verbose/00004.png b/tests/ragger/snapshots/stax/test_eip712_advanced_filtering_verbose/00004.png similarity index 100% rename from tests/ragger/snapshots/stax/test_eip712_address_substitution_verbose/00004.png rename to tests/ragger/snapshots/stax/test_eip712_advanced_filtering_verbose/00004.png diff --git a/tests/ragger/snapshots/stax/test_eip712_address_substitution_verbose/00005.png b/tests/ragger/snapshots/stax/test_eip712_advanced_filtering_verbose/00005.png similarity index 100% rename from tests/ragger/snapshots/stax/test_eip712_address_substitution_verbose/00005.png rename to tests/ragger/snapshots/stax/test_eip712_advanced_filtering_verbose/00005.png diff --git a/tests/ragger/snapshots/stax/test_eip712_address_substitution_verbose/00006.png b/tests/ragger/snapshots/stax/test_eip712_advanced_filtering_verbose/00006.png similarity index 100% rename from tests/ragger/snapshots/stax/test_eip712_address_substitution_verbose/00006.png rename to tests/ragger/snapshots/stax/test_eip712_advanced_filtering_verbose/00006.png diff --git a/tests/ragger/snapshots/stax/test_eip712_address_substitution_verbose/00007.png b/tests/ragger/snapshots/stax/test_eip712_advanced_filtering_verbose/00007.png similarity index 100% rename from tests/ragger/snapshots/stax/test_eip712_address_substitution_verbose/00007.png rename to tests/ragger/snapshots/stax/test_eip712_advanced_filtering_verbose/00007.png diff --git a/tests/ragger/snapshots/stax/test_eip712_address_substitution_verbose/00008.png b/tests/ragger/snapshots/stax/test_eip712_advanced_filtering_verbose/00008.png similarity index 100% rename from tests/ragger/snapshots/stax/test_eip712_address_substitution_verbose/00008.png rename to tests/ragger/snapshots/stax/test_eip712_advanced_filtering_verbose/00008.png diff --git a/tests/ragger/snapshots/stax/test_eip712_address_substitution_verbose/00009.png b/tests/ragger/snapshots/stax/test_eip712_advanced_filtering_verbose/00009.png similarity index 100% rename from tests/ragger/snapshots/stax/test_eip712_address_substitution_verbose/00009.png rename to tests/ragger/snapshots/stax/test_eip712_advanced_filtering_verbose/00009.png diff --git a/tests/ragger/snapshots/stax/test_eip712_address_substitution_verbose/00010.png b/tests/ragger/snapshots/stax/test_eip712_advanced_filtering_verbose/00010.png similarity index 100% rename from tests/ragger/snapshots/stax/test_eip712_address_substitution_verbose/00010.png rename to tests/ragger/snapshots/stax/test_eip712_advanced_filtering_verbose/00010.png diff --git a/tests/ragger/snapshots/stax/test_eip712_address_substitution_verbose/00011.png b/tests/ragger/snapshots/stax/test_eip712_advanced_filtering_verbose/00011.png similarity index 100% rename from tests/ragger/snapshots/stax/test_eip712_address_substitution_verbose/00011.png rename to tests/ragger/snapshots/stax/test_eip712_advanced_filtering_verbose/00011.png diff --git a/tests/ragger/snapshots/stax/test_eip712_address_substitution_verbose/00012.png b/tests/ragger/snapshots/stax/test_eip712_advanced_filtering_verbose/00012.png similarity index 100% rename from tests/ragger/snapshots/stax/test_eip712_address_substitution_verbose/00012.png rename to tests/ragger/snapshots/stax/test_eip712_advanced_filtering_verbose/00012.png diff --git a/tests/ragger/test_eip712.py b/tests/ragger/test_eip712.py index 60597404e..74a12333e 100644 --- a/tests/ragger/test_eip712.py +++ b/tests/ragger/test_eip712.py @@ -180,12 +180,12 @@ def test_eip712_new(firmware: Firmware, assert recovered_addr == get_wallet_addr(app_client) -def test_eip712_address_substitution(firmware: Firmware, - backend: BackendInterface, - navigator: Navigator, - default_screenshot_path: Path, - test_name: str, - verbose: bool): +def test_eip712_advanced_filtering(firmware: Firmware, + backend: BackendInterface, + navigator: Navigator, + default_screenshot_path: Path, + test_name: str, + verbose: bool): global SNAPS_CONFIG app_client = EthAppClient(backend) @@ -195,25 +195,43 @@ def test_eip712_address_substitution(firmware: Firmware, if verbose: test_name += "_verbose" SNAPS_CONFIG = SnapshotsConfig(test_name) - with open(f"{eip712_json_path()}/address_substitution.json", encoding="utf-8") as file: - data = json.load(file) - - app_client.provide_token_metadata("DAI", - bytes.fromhex(data["message"]["token"][2:]), - 18, - 1) - challenge = ResponseParser.challenge(app_client.get_challenge().data) - app_client.provide_domain_name(challenge, - "vitalik.eth", - bytes.fromhex(data["message"]["to"][2:])) + data = { + "domain": { + "chainId": 1, + "name": "Advanced test", + "verifyingContract": "0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC", + "version": "1" + }, + "message": { + "from": "0xaAaAaAaaAaAaAaaAaAAAAAAAAaaaAaAaAaaAaaAa", + "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "amount": 117, + "token": "0x6B175474E89094C44Da98b954EedeAC495271d0F" + }, + "primaryType": "Transfer", + "types": { + "EIP712Domain": [ + {"name": "name", "type": "string"}, + {"name": "version", "type": "string"}, + {"name": "chainId", "type": "uint256"}, + {"name": "verifyingContract", "type": "address"} + ], + "Transfer": [ + {"name": "from", "type": "address"}, + {"name": "to", "type": "address"}, + {"name": "amount", "type": "uint256"}, + {"name": "token", "type": "address"} + ] + } + } if verbose: settings_toggle(firmware, navigator, [SettingID.VERBOSE_EIP712]) filters = None else: filters = { - "name": "Token test", + "name": "Advanced Filtering", "fields": { "amount": "Amount", "token": "Token", From 736303e5de4ca84edd8200e891def056b3df07c6 Mon Sep 17 00:00:00 2001 From: Alexandre Paillier Date: Tue, 7 May 2024 18:30:19 +0200 Subject: [PATCH 04/11] PROVIDE_ERC20_INFORMATION & PROVIDE_NFT_INFORMATION now send back the index where the asset has been stored --- .../provideErc20TokenInformation/cmd_provideTokenInfo.c | 4 +++- src_features/provideNFTInformation/cmd_provideNFTInfo.c | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src_features/provideErc20TokenInformation/cmd_provideTokenInfo.c b/src_features/provideErc20TokenInformation/cmd_provideTokenInfo.c index 06e266020..d5ed912ff 100644 --- a/src_features/provideErc20TokenInformation/cmd_provideTokenInfo.c +++ b/src_features/provideErc20TokenInformation/cmd_provideTokenInfo.c @@ -179,8 +179,10 @@ void handleProvideErc20TokenInformation(uint8_t p1, } } + G_io_apdu_buffer[0] = tmpCtx.transactionContext.currentAssetIndex; validate_current_asset_info(); - THROW(0x9000); + U2BE_ENCODE(G_io_apdu_buffer, 1, APDU_RESPONSE_OK); + io_exchange(CHANNEL_APDU | IO_RETURN_AFTER_TX, 3); } #endif diff --git a/src_features/provideNFTInformation/cmd_provideNFTInfo.c b/src_features/provideNFTInformation/cmd_provideNFTInfo.c index 106ce7700..2b46d9d6e 100644 --- a/src_features/provideNFTInformation/cmd_provideNFTInfo.c +++ b/src_features/provideNFTInformation/cmd_provideNFTInfo.c @@ -199,8 +199,10 @@ void handleProvideNFTInformation(uint8_t p1, #endif } + G_io_apdu_buffer[0] = tmpCtx.transactionContext.currentAssetIndex; validate_current_asset_info(); - THROW(0x9000); + U2BE_ENCODE(G_io_apdu_buffer, 1, APDU_RESPONSE_OK); + io_exchange(CHANNEL_APDU | IO_RETURN_AFTER_TX, 3); } #endif // HAVE_NFT_SUPPORT From c68b4186ed0e6ce0d481d8675e1e0ca48db52508 Mon Sep 17 00:00:00 2001 From: Alexandre Paillier Date: Mon, 6 May 2024 10:34:51 +0200 Subject: [PATCH 05/11] Simplify type conversions function in python client --- .../ethereum/command_builder.py | 20 +++++++------------ .../ethereum/eip712/InputData.py | 14 ++++--------- 2 files changed, 11 insertions(+), 23 deletions(-) diff --git a/client/src/ledger_app_clients/ethereum/command_builder.py b/client/src/ledger_app_clients/ethereum/command_builder.py index 5b64415b8..6ceb73092 100644 --- a/client/src/ledger_app_clients/ethereum/command_builder.py +++ b/client/src/ledger_app_clients/ethereum/command_builder.py @@ -62,17 +62,11 @@ def _serialize(self, header.append(len(cdata)) return header + cdata - def _string_to_bytes(self, string: str) -> bytes: - data = bytearray() - for char in string: - data.append(ord(char)) - return data - def eip712_send_struct_def_struct_name(self, name: str) -> bytes: return self._serialize(InsType.EIP712_SEND_STRUCT_DEF, P1Type.COMPLETE_SEND, P2Type.STRUCT_NAME, - self._string_to_bytes(name)) + name.encode()) def eip712_send_struct_def_struct_field(self, field_type: EIP712FieldType, @@ -88,7 +82,7 @@ def eip712_send_struct_def_struct_field(self, data.append(typedesc) if field_type == EIP712FieldType.CUSTOM: data.append(len(type_name)) - data += self._string_to_bytes(type_name) + data += type_name.encode() if type_size is not None: data.append(type_size) if len(array_levels) > 0: @@ -98,7 +92,7 @@ def eip712_send_struct_def_struct_field(self, if level is not None: data.append(level) data.append(len(key_name)) - data += self._string_to_bytes(key_name) + data += key_name.encode() return self._serialize(InsType.EIP712_SEND_STRUCT_DEF, P1Type.COMPLETE_SEND, P2Type.STRUCT_FIELD, @@ -108,7 +102,7 @@ def eip712_send_struct_impl_root_struct(self, name: str) -> bytes: return self._serialize(InsType.EIP712_SEND_STRUCT_IMPL, P1Type.COMPLETE_SEND, P2Type.STRUCT_NAME, - self._string_to_bytes(name)) + name.encode()) def eip712_send_struct_impl_array(self, size: int) -> bytes: data = bytearray() @@ -162,7 +156,7 @@ def eip712_filtering_activate(self): def _eip712_filtering_send_name(self, name: str, sig: bytes) -> bytes: data = bytearray() data.append(len(name)) - data += self._string_to_bytes(name) + data += name.encode() data.append(len(sig)) data += sig return data @@ -170,7 +164,7 @@ def _eip712_filtering_send_name(self, name: str, sig: bytes) -> bytes: def eip712_filtering_message_info(self, name: str, filters_count: int, sig: bytes) -> bytes: data = bytearray() data.append(len(name)) - data += self._string_to_bytes(name) + data += name.encode() data.append(filters_count) data.append(len(sig)) data += sig @@ -188,7 +182,7 @@ def eip712_filtering_show_field(self, name: str, sig: bytes) -> bytes: def set_external_plugin(self, plugin_name: str, contract_address: bytes, selector: bytes, sig: bytes) -> bytes: data = bytearray() data.append(len(plugin_name)) - data += self._string_to_bytes(plugin_name) + data += plugin_name.encode() data += contract_address data += selector data += sig diff --git a/client/src/ledger_app_clients/ethereum/eip712/InputData.py b/client/src/ledger_app_clients/ethereum/eip712/InputData.py index ee31b0a97..ad4beffa7 100644 --- a/client/src/ledger_app_clients/ethereum/eip712/InputData.py +++ b/client/src/ledger_app_clients/ethereum/eip712/InputData.py @@ -165,10 +165,7 @@ def encode_bool(value: str, typesize: int) -> bytes: def encode_string(value: str, typesize: int) -> bytes: - data = bytearray() - for char in value: - data.append(ord(char)) - return data + return value.encode() def encode_bytes_fix(value: str, typesize: int) -> bytes: @@ -264,8 +261,7 @@ def send_filtering_message_info(display_name: str, filters_count: int): to_sign += sig_ctx["caddr"] to_sign += sig_ctx["schema_hash"] to_sign.append(filters_count) - for char in display_name: - to_sign.append(ord(char)) + to_sign += display_name.encode() sig = keychain.sign_data(keychain.Key.CAL, to_sign) with app_client.eip712_filtering_message_info(display_name, filters_count, sig): @@ -284,10 +280,8 @@ def send_filtering_show_field(display_name): to_sign += sig_ctx["chainid"] to_sign += sig_ctx["caddr"] to_sign += sig_ctx["schema_hash"] - for char in path_str: - to_sign.append(ord(char)) - for char in display_name: - to_sign.append(ord(char)) + to_sign += path_str.encode() + to_sign += display_name.encode() sig = keychain.sign_data(keychain.Key.CAL, to_sign) with app_client.eip712_filtering_show_field(display_name, sig): pass From e76e429148a875ebf2dc1cee6b5838822e959334 Mon Sep 17 00:00:00 2001 From: Alexandre Paillier Date: Fri, 12 Apr 2024 11:09:06 +0200 Subject: [PATCH 06/11] Amount-join EIP-712 filtering implementation --- src_features/signMessageEIP712/commands_712.c | 81 ++-- src_features/signMessageEIP712/commands_712.h | 14 - src_features/signMessageEIP712/filtering.c | 392 +++++++++++++----- src_features/signMessageEIP712/filtering.h | 10 +- src_features/signMessageEIP712/ui_logic.c | 134 +++++- src_features/signMessageEIP712/ui_logic.h | 17 +- 6 files changed, 486 insertions(+), 162 deletions(-) diff --git a/src_features/signMessageEIP712/commands_712.c b/src_features/signMessageEIP712/commands_712.c index 2e2f7b79f..98661cf48 100644 --- a/src_features/signMessageEIP712/commands_712.c +++ b/src_features/signMessageEIP712/commands_712.c @@ -14,6 +14,23 @@ #include "filtering.h" #include "common_712.h" #include "common_ui.h" // ui_idle +#include "manage_asset_info.h" + +// APDUs P1 +#define P1_COMPLETE 0x00 +#define P1_PARTIAL 0xFF + +// APDUs P2 +#define P2_DEF_NAME 0x00 +#define P2_DEF_FIELD 0xFF +#define P2_IMPL_NAME P2_DEF_NAME +#define P2_IMPL_ARRAY 0x0F +#define P2_IMPL_FIELD P2_DEF_FIELD +#define P2_FILT_ACTIVATE 0x00 +#define P2_FILT_MESSAGE_INFO 0x0F +#define P2_FILT_AMOUNT_JOIN_TOKEN 0xFD +#define P2_FILT_AMOUNT_JOIN_VALUE 0xFE +#define P2_FILT_RAW_FIELD 0xFF /** * Send the response to the previous APDU command @@ -136,39 +153,43 @@ bool handle_eip712_struct_impl(const uint8_t *const apdu_buf) { bool handle_eip712_filtering(const uint8_t *const apdu_buf) { bool ret = true; bool reply_apdu = true; - e_filtering_type type; if (eip712_context == NULL) { apdu_response_code = APDU_RESPONSE_CONDITION_NOT_SATISFIED; - ret = false; - } else { - switch (apdu_buf[OFFSET_P2]) { - case P2_FILT_ACTIVATE: - if (!N_storage.verbose_eip712) { - ui_712_set_filtering_mode(EIP712_FILTERING_FULL); - ret = compute_schema_hash(); - } - break; - case P2_FILT_MESSAGE_INFO: - case P2_FILT_SHOW_FIELD: - type = (apdu_buf[OFFSET_P2] == P2_FILT_MESSAGE_INFO) - ? FILTERING_PROVIDE_MESSAGE_INFO - : FILTERING_SHOW_FIELD; - if (ui_712_get_filtering_mode() == EIP712_FILTERING_FULL) { - ret = - provide_filtering_info(&apdu_buf[OFFSET_CDATA], apdu_buf[OFFSET_LC], type); - if ((apdu_buf[OFFSET_P2] == P2_FILT_MESSAGE_INFO) && ret) { - reply_apdu = false; - } - } - break; - default: - PRINTF("Unknown P2 0x%x for APDU 0x%x\n", - apdu_buf[OFFSET_P2], - apdu_buf[OFFSET_INS]); - apdu_response_code = APDU_RESPONSE_INVALID_P1_P2; - ret = false; - } + return false; + } + if ((apdu_buf[OFFSET_P2] != P2_FILT_ACTIVATE) && + (ui_712_get_filtering_mode() != EIP712_FILTERING_FULL)) { + handle_eip712_return_code(true); + return true; + } + switch (apdu_buf[OFFSET_P2]) { + case P2_FILT_ACTIVATE: + if (!N_storage.verbose_eip712) { + ui_712_set_filtering_mode(EIP712_FILTERING_FULL); + ret = compute_schema_hash(); + } + forget_known_assets(); + break; + case P2_FILT_MESSAGE_INFO: + ret = filtering_message_info(&apdu_buf[OFFSET_CDATA], apdu_buf[OFFSET_LC]); + if (ret) { + reply_apdu = false; + } + break; + case P2_FILT_AMOUNT_JOIN_TOKEN: + ret = filtering_amount_join_token(&apdu_buf[OFFSET_CDATA], apdu_buf[OFFSET_LC]); + break; + case P2_FILT_AMOUNT_JOIN_VALUE: + ret = filtering_amount_join_value(&apdu_buf[OFFSET_CDATA], apdu_buf[OFFSET_LC]); + break; + case P2_FILT_RAW_FIELD: + ret = filtering_raw_field(&apdu_buf[OFFSET_CDATA], apdu_buf[OFFSET_LC]); + break; + default: + PRINTF("Unknown P2 0x%x for APDU 0x%x\n", apdu_buf[OFFSET_P2], apdu_buf[OFFSET_INS]); + apdu_response_code = APDU_RESPONSE_INVALID_P1_P2; + ret = false; } if (reply_apdu) { handle_eip712_return_code(ret); diff --git a/src_features/signMessageEIP712/commands_712.h b/src_features/signMessageEIP712/commands_712.h index e97d77bac..dcfcf4570 100644 --- a/src_features/signMessageEIP712/commands_712.h +++ b/src_features/signMessageEIP712/commands_712.h @@ -6,20 +6,6 @@ #include #include -// APDUs P1 -#define P1_COMPLETE 0x00 -#define P1_PARTIAL 0xFF - -// APDUs P2 -#define P2_DEF_NAME 0x00 -#define P2_DEF_FIELD 0xFF -#define P2_IMPL_NAME P2_DEF_NAME -#define P2_IMPL_ARRAY 0x0F -#define P2_IMPL_FIELD P2_DEF_FIELD -#define P2_FILT_ACTIVATE 0x00 -#define P2_FILT_MESSAGE_INFO 0x0F -#define P2_FILT_SHOW_FIELD 0xFF - #define DOMAIN_STRUCT_NAME "EIP712Domain" bool handle_eip712_struct_def(const uint8_t *const apdu_buf); diff --git a/src_features/signMessageEIP712/filtering.c b/src_features/signMessageEIP712/filtering.c index 1a24d6152..cfd3e720a 100644 --- a/src_features/signMessageEIP712/filtering.c +++ b/src_features/signMessageEIP712/filtering.c @@ -11,12 +11,17 @@ #include "path.h" #include "ui_logic.h" +#define FILT_MAGIC_MESSAGE_INFO 183 +#define FILT_MAGIC_AMOUNT_JOIN_TOKEN 11 +#define FILT_MAGIC_AMOUNT_JOIN_VALUE 22 +#define FILT_MAGIC_RAW_FIELD 72 + /** * Reconstruct the field path and hash it * * @param[in] hash_ctx the hashing context */ -static void hash_filtering_path(cx_hash_t *const hash_ctx) { +static void hash_filtering_path(cx_hash_t *hash_ctx) { const void *field_ptr; const char *key; uint8_t key_len; @@ -45,68 +50,51 @@ static void hash_filtering_path(cx_hash_t *const hash_ctx) { } /** - * Verify the provided signature + * Begin the hashing for signature verification * - * @param[in] dname_length length of provided substitution name - * @param[in] dname provided substitution name - * @param[in] sig_length provided signature length - * @param[in] sig pointer to the provided signature - * @param[in] type the type of filtering - * @return whether the signature verification worked or not + * @param[in] hash_ctx hashing context + * @param[in] magic magic number used in the signature + * @return \ref true */ -static bool verify_filtering_signature(uint8_t dname_length, - const char *const dname, - uint8_t sig_length, - const uint8_t *const sig, - e_filtering_type type) { - uint8_t hash[INT256_LENGTH]; - cx_ecfp_public_key_t verifying_key; - cx_sha256_t hash_ctx; +static bool sig_verif_start(cx_sha256_t *hash_ctx, uint8_t magic) { uint64_t chain_id; - cx_err_t error = CX_INTERNAL_ERROR; - cx_sha256_init(&hash_ctx); + cx_sha256_init(hash_ctx); // Magic number, makes it so a signature of one type can't be used as another - switch (type) { - case FILTERING_SHOW_FIELD: - hash_byte(FILTERING_MAGIC_STRUCT_FIELD, (cx_hash_t *) &hash_ctx); - break; - case FILTERING_PROVIDE_MESSAGE_INFO: - hash_byte(FILTERING_MAGIC_CONTRACT_NAME, (cx_hash_t *) &hash_ctx); - break; - default: - apdu_response_code = APDU_RESPONSE_INVALID_DATA; - PRINTF("Invalid filtering type when verifying signature!\n"); - return false; - } + hash_byte(magic, (cx_hash_t *) hash_ctx); // Chain ID chain_id = __builtin_bswap64(eip712_context->chain_id); - hash_nbytes((uint8_t *) &chain_id, sizeof(chain_id), (cx_hash_t *) &hash_ctx); + hash_nbytes((uint8_t *) &chain_id, sizeof(chain_id), (cx_hash_t *) hash_ctx); // Contract address hash_nbytes(eip712_context->contract_addr, sizeof(eip712_context->contract_addr), - (cx_hash_t *) &hash_ctx); + (cx_hash_t *) hash_ctx); // Schema hash hash_nbytes(eip712_context->schema_hash, sizeof(eip712_context->schema_hash), - (cx_hash_t *) &hash_ctx); - - if (type == FILTERING_SHOW_FIELD) { - hash_filtering_path((cx_hash_t *) &hash_ctx); - } else // FILTERING_PROVIDE_MESSAGE_INFO - { - hash_byte(ui_712_remaining_filters(), (cx_hash_t *) &hash_ctx); - } + (cx_hash_t *) hash_ctx); + return true; +} - // Display name - hash_nbytes((uint8_t *) dname, sizeof(char) * dname_length, (cx_hash_t *) &hash_ctx); +/** + * End the hashing & do the signature verification + * + * @param[in] hash_ctx hashing context + * @param[in] sig signature + * @param[in] sig_length signature length + * @return whether the signature verification worked or not + */ +static bool sig_verif_end(cx_sha256_t *hash_ctx, const uint8_t *sig, uint8_t sig_length) { + uint8_t hash[INT256_LENGTH]; + cx_ecfp_public_key_t verifying_key; + cx_err_t error = CX_INTERNAL_ERROR; // Finalize hash - CX_CHECK(cx_hash_no_throw((cx_hash_t *) &hash_ctx, CX_LAST, NULL, 0, hash, INT256_LENGTH)); + CX_CHECK(cx_hash_no_throw((cx_hash_t *) hash_ctx, CX_LAST, NULL, 0, hash, INT256_LENGTH)); CX_CHECK(cx_ecfp_init_public_key_no_throw(CX_CURVE_256K1, LEDGER_SIGNATURE_PUBLIC_KEY, @@ -125,65 +113,281 @@ static bool verify_filtering_signature(uint8_t dname_length, } /** - * Provide filtering information about upcoming struct field + * Check if the given token index is valid * - * @param[in] payload the raw data received - * @param[in] length payload length - * @param[in] type the type of filtering - * @return if everything went well or not + * @param[in] idx token index + * @return whether the index is valid or not */ -bool provide_filtering_info(const uint8_t *const payload, uint8_t length, e_filtering_type type) { - bool ret = false; - uint8_t dname_len; - const char *dname; +static bool check_token_index(uint8_t idx) { + if (idx >= MAX_ASSETS) { + PRINTF("Error: token index out of range (%u)\n", idx); + return false; + } + if (!tmpCtx.transactionContext.assetSet[idx]) { + PRINTF("Error: token not set (%u)\n", idx); + return false; + } + return true; +} + +/** + * Check if the current element's typename matches the expected one + * + * @param[in] expected the typename we expect + * @return whether it is a match or not + */ +static bool check_typename(const char *expected) { + uint8_t typename_len = 0; + const char *typename; + + typename = get_struct_field_typename(path_get_field(), &typename_len); + if ((typename_len != strlen(expected)) || (strncmp(typename, expected, typename_len) != 0)) { + PRINTF("Error: expected field of type \"%s\" but got \"", expected); + for (int i = 0; i < typename_len; ++i) PRINTF("%c", typename[i]); + PRINTF("\" instead.\n"); + return false; + } + return true; +} + +/** + * Command to give the message information + * + * @param[in] payload the payload to parse + * @param[in] length the payload length + * @return whether it was successful or not + */ +bool filtering_message_info(const uint8_t *payload, uint8_t length) { + uint8_t name_len; + const char *name; + uint8_t filters_count; uint8_t sig_len; const uint8_t *sig; uint8_t offset = 0; - if (type == FILTERING_PROVIDE_MESSAGE_INFO) { - if (path_get_root_type() != ROOT_DOMAIN) { - apdu_response_code = APDU_RESPONSE_CONDITION_NOT_SATISFIED; - return false; - } - } else // FILTERING_SHOW_FIELD - { - if (path_get_root_type() != ROOT_MESSAGE) { - apdu_response_code = APDU_RESPONSE_CONDITION_NOT_SATISFIED; - return false; - } + if (path_get_root_type() != ROOT_DOMAIN) { + apdu_response_code = APDU_RESPONSE_CONDITION_NOT_SATISFIED; + return false; } - if (length > 0) { - dname_len = payload[offset++]; - if ((1 + dname_len) < length) { - dname = (char *) &payload[offset]; - offset += dname_len; - if (type == FILTERING_PROVIDE_MESSAGE_INFO) { - ui_712_set_filters_count(payload[offset++]); - } - sig_len = payload[offset++]; - sig = &payload[offset]; - offset += sig_len; - if ((sig_len > 0) && (offset == length)) { - if ((ret = verify_filtering_signature(dname_len, dname, sig_len, sig, type))) { - if (type == FILTERING_PROVIDE_MESSAGE_INFO) { - if (!N_storage.verbose_eip712) { - ui_712_set_title("Contract", 8); - ui_712_set_value(dname, dname_len); - ui_712_redraw_generic_step(); - } - } else // FILTERING_SHOW_FIELD - { - if (dname_len > 0) // don't substitute for an empty name - { - ui_712_set_title(dname, dname_len); - } - ui_712_flag_field(true, dname_len > 0); - } - } - } - } + + // Parsing + if ((offset + sizeof(name_len)) > length) { + return false; + } + name_len = payload[offset++]; + if ((offset + name_len) > length) { + return false; + } + name = (char *) &payload[offset]; + offset += name_len; + if ((offset + sizeof(filters_count)) > length) { + return false; + } + filters_count = payload[offset++]; + if ((offset + sizeof(sig_len)) > length) { + return false; + } + sig_len = payload[offset++]; + if ((offset + sig_len) != length) { + return false; + } + sig = &payload[offset]; + + // Verification + cx_sha256_t hash_ctx; + if (!sig_verif_start(&hash_ctx, FILT_MAGIC_MESSAGE_INFO)) { + return false; + } + hash_byte(filters_count, (cx_hash_t *) &hash_ctx); + hash_nbytes((uint8_t *) name, sizeof(char) * name_len, (cx_hash_t *) &hash_ctx); + if (!sig_verif_end(&hash_ctx, sig, sig_len)) { + return false; + } + + // Handling + ui_712_set_filters_count(filters_count); + if (!N_storage.verbose_eip712) { + ui_712_set_title("Contract", 8); + ui_712_set_value(name, name_len); + ui_712_redraw_generic_step(); + } + return true; +} + +/** + * Command to display a field as an amount-join (token part) + * + * @param[in] payload the payload to parse + * @param[in] length the payload length + * @return whether it was successful or not + */ +bool filtering_amount_join_token(const uint8_t *payload, uint8_t length) { + uint8_t token_idx; + uint8_t sig_len; + const uint8_t *sig; + uint8_t offset = 0; + + if (path_get_root_type() != ROOT_MESSAGE) { + apdu_response_code = APDU_RESPONSE_CONDITION_NOT_SATISFIED; + return false; + } + + // Parsing + if ((offset + sizeof(token_idx)) > length) { + return false; } - return ret; + token_idx = payload[offset++]; + if ((offset + sizeof(sig_len)) > length) { + return false; + } + sig_len = payload[offset++]; + if ((offset + sig_len) != length) { + return false; + } + sig = &payload[offset]; + + // Verification + cx_sha256_t hash_ctx; + if (!sig_verif_start(&hash_ctx, FILT_MAGIC_AMOUNT_JOIN_TOKEN)) { + return false; + } + hash_filtering_path((cx_hash_t *) &hash_ctx); + hash_byte(token_idx, (cx_hash_t *) &hash_ctx); + if (!sig_verif_end(&hash_ctx, sig, sig_len)) { + return false; + } + + // Handling + if (!check_typename("address") || !check_token_index(token_idx)) { + return false; + } + ui_712_flag_field(false, false, true); + ui_712_token_join_prepare_addr_check(token_idx); + return true; +} + +/** + * Command to display a field as an amount-join (value part) + * + * @param[in] payload the payload to parse + * @param[in] length the payload length + * @return whether it was successful or not + */ +bool filtering_amount_join_value(const uint8_t *payload, uint8_t length) { + uint8_t name_len; + const char *name; + uint8_t token_idx; + uint8_t sig_len; + const uint8_t *sig; + uint8_t offset = 0; + + if (path_get_root_type() != ROOT_MESSAGE) { + apdu_response_code = APDU_RESPONSE_CONDITION_NOT_SATISFIED; + return false; + } + + // Parsing + if ((offset + sizeof(name_len)) > length) { + return false; + } + name_len = payload[offset++]; + if ((offset + name_len) > length) { + return false; + } + if (name_len == 0) { + return false; + } + name = (char *) &payload[offset]; + offset += name_len; + if ((offset + sizeof(token_idx)) > length) { + return false; + } + token_idx = payload[offset++]; + if ((offset + sizeof(sig_len)) > length) { + return false; + } + sig_len = payload[offset++]; + if ((offset + sig_len) != length) { + return false; + } + sig = &payload[offset]; + + // Verification + cx_sha256_t hash_ctx; + if (!sig_verif_start(&hash_ctx, FILT_MAGIC_AMOUNT_JOIN_VALUE)) { + return false; + } + hash_filtering_path((cx_hash_t *) &hash_ctx); + hash_nbytes((uint8_t *) name, sizeof(char) * name_len, (cx_hash_t *) &hash_ctx); + hash_byte(token_idx, (cx_hash_t *) &hash_ctx); + if (!sig_verif_end(&hash_ctx, sig, sig_len)) { + return false; + } + + // Handling + if (!check_typename("uint") || !check_token_index(token_idx)) { + return false; + } + ui_712_flag_field(false, false, true); + ui_712_token_join_prepare_amount(token_idx, name, name_len); + return true; +} + +/** + * Command to display a field raw (without formatting) + * + * @param[in] payload the payload to parse + * @param[in] length the payload length + * @return whether it was successful or not + */ +bool filtering_raw_field(const uint8_t *payload, uint8_t length) { + uint8_t name_len; + const char *name; + uint8_t sig_len; + const uint8_t *sig; + uint8_t offset = 0; + + if (path_get_root_type() != ROOT_MESSAGE) { + apdu_response_code = APDU_RESPONSE_CONDITION_NOT_SATISFIED; + return false; + } + + // Parsing + if ((offset + sizeof(name_len)) > length) { + return false; + } + name_len = payload[offset++]; + if ((offset + name_len) > length) { + return false; + } + name = (char *) &payload[offset]; + offset += name_len; + if ((offset + sizeof(sig_len)) > length) { + return false; + } + sig_len = payload[offset++]; + if ((offset + sig_len) != length) { + return false; + } + sig = &payload[offset]; + + // Verification + cx_sha256_t hash_ctx; + if (!sig_verif_start(&hash_ctx, FILT_MAGIC_RAW_FIELD)) { + return false; + } + hash_filtering_path((cx_hash_t *) &hash_ctx); + hash_nbytes((uint8_t *) name, sizeof(char) * name_len, (cx_hash_t *) &hash_ctx); + if (!sig_verif_end(&hash_ctx, sig, sig_len)) { + return false; + } + + // Handling + if (name_len > 0) { // don't substitute for an empty name + ui_712_set_title(name, name_len); + } + ui_712_flag_field(true, name_len > 0, false); + return true; } #endif // HAVE_EIP712_FULL_SUPPORT diff --git a/src_features/signMessageEIP712/filtering.h b/src_features/signMessageEIP712/filtering.h index 3e33b9a01..8f0e271b7 100644 --- a/src_features/signMessageEIP712/filtering.h +++ b/src_features/signMessageEIP712/filtering.h @@ -6,12 +6,10 @@ #include #include -#define FILTERING_MAGIC_CONTRACT_NAME 0b10110111 // 183 -#define FILTERING_MAGIC_STRUCT_FIELD 0b01001000 // ~183 = 72 - -typedef enum { FILTERING_PROVIDE_MESSAGE_INFO, FILTERING_SHOW_FIELD } e_filtering_type; - -bool provide_filtering_info(const uint8_t *const payload, uint8_t length, e_filtering_type type); +bool filtering_message_info(const uint8_t *payload, uint8_t length); +bool filtering_amount_join_token(const uint8_t *payload, uint8_t length); +bool filtering_amount_join_value(const uint8_t *payload, uint8_t length); +bool filtering_raw_field(const uint8_t *payload, uint8_t length); #endif // HAVE_EIP712_FULL_SUPPORT diff --git a/src_features/signMessageEIP712/ui_logic.c b/src_features/signMessageEIP712/ui_logic.c index 7f5843c00..7c7dff52d 100644 --- a/src_features/signMessageEIP712/ui_logic.c +++ b/src_features/signMessageEIP712/ui_logic.c @@ -18,6 +18,44 @@ #include "common_ui.h" #include "uint_common.h" +#define AMOUNT_JOIN_FLAG_TOKEN (1 << 0) +#define AMOUNT_JOIN_FLAG_VALUE (1 << 1) + +typedef struct { + // display name, not NULL-terminated + char name[25]; + uint8_t name_length; + uint8_t value[INT256_LENGTH]; + uint8_t value_length; + // indicates the steps the token join has gone through + uint8_t flags; +} s_amount_join; + +typedef enum { + AMOUNT_JOIN_STATE_TOKEN, + AMOUNT_JOIN_STATE_VALUE, +} e_amount_join_state; + +#define UI_712_FIELD_SHOWN (1 << 0) +#define UI_712_FIELD_NAME_PROVIDED (1 << 1) +#define UI_712_AMOUNT_JOIN (1 << 2) + +typedef struct { + s_amount_join joins[MAX_ASSETS]; + uint8_t idx; + e_amount_join_state state; +} s_amount_context; + +typedef struct { + bool shown; + bool end_reached; + uint8_t filtering_mode; + uint8_t filters_to_process; + uint8_t field_flags; + uint8_t structs_to_review; + s_amount_context amount; +} t_ui_context; + static t_ui_context *ui_ctx = NULL; /** @@ -32,8 +70,7 @@ static bool ui_712_field_shown(void) { if (N_storage.verbose_eip712 || (path_get_root_type() == ROOT_DOMAIN)) { ret = true; } - } else // EIP712_FILTERING_FULL - { + } else { // EIP712_FILTERING_FULL if (ui_ctx->field_flags & UI_712_FIELD_SHOWN) { ret = true; } @@ -103,8 +140,7 @@ void ui_712_set_value(const char *const str, uint8_t length) { * Redraw the dynamic UI step that shows EIP712 information */ void ui_712_redraw_generic_step(void) { - if (!ui_ctx->shown) // Initialize if it is not already - { + if (!ui_ctx->shown) { // Initialize if it is not already ui_712_start(); ui_ctx->shown = true; } else { @@ -334,6 +370,62 @@ static void ui_712_format_uint(const uint8_t *const data, uint8_t length) { } } +/** + * Format given data as an amount with its ticker and value with correct decimals + * + * @return whether it was successful or not + */ +static bool ui_712_format_amount_join(void) { + const tokenDefinition_t *token; + token = &tmpCtx.transactionContext.extraInfo[ui_ctx->amount.idx].token; + + if (!amountToString(ui_ctx->amount.joins[ui_ctx->amount.idx].value, + ui_ctx->amount.joins[ui_ctx->amount.idx].value_length, + token->decimals, + token->ticker, + strings.tmp.tmp, + sizeof(strings.tmp.tmp))) { + return false; + } + ui_ctx->field_flags |= UI_712_FIELD_SHOWN; + ui_712_set_title(ui_ctx->amount.joins[ui_ctx->amount.idx].name, + ui_ctx->amount.joins[ui_ctx->amount.idx].name_length); + explicit_bzero(&ui_ctx->amount.joins[ui_ctx->amount.idx], + sizeof(ui_ctx->amount.joins[ui_ctx->amount.idx])); + return true; +} + +/** + * Update the state of the amount-join + * + * @param[in] data the data that needs formatting + * @param[in] length its length + * @return whether it was successful or not + */ +static bool update_amount_join(const uint8_t *data, uint8_t length) { + tokenDefinition_t *token; + + token = &tmpCtx.transactionContext.extraInfo[ui_ctx->amount.idx].token; + switch (ui_ctx->amount.state) { + case AMOUNT_JOIN_STATE_TOKEN: + if (memcmp(data, token->address, ADDRESS_LENGTH) != 0) { + return false; + } + ui_ctx->amount.joins[ui_ctx->amount.idx].flags |= AMOUNT_JOIN_FLAG_TOKEN; + break; + + case AMOUNT_JOIN_STATE_VALUE: + memcpy(ui_ctx->amount.joins[ui_ctx->amount.idx].value, data, length); + ui_ctx->amount.joins[ui_ctx->amount.idx].value_length = length; + ui_ctx->amount.joins[ui_ctx->amount.idx].flags |= AMOUNT_JOIN_FLAG_VALUE; + break; + + default: + return false; + } + return true; +} + /** * Used to notify of a new field to review in the current struct (key + value) * @@ -392,6 +484,19 @@ bool ui_712_new_field(const void *const field_ptr, const uint8_t *const data, ui return false; } + if (ui_ctx->field_flags & UI_712_AMOUNT_JOIN) { + if (!update_amount_join(data, length)) { + return false; + } + + if (ui_ctx->amount.joins[ui_ctx->amount.idx].flags == + (AMOUNT_JOIN_FLAG_TOKEN | AMOUNT_JOIN_FLAG_VALUE)) { + if (!ui_712_format_amount_join()) { + return false; + } + } + } + // Check if this field is supposed to be displayed if (ui_712_field_shown()) { ui_712_redraw_generic_step(); @@ -423,6 +528,7 @@ bool ui_712_init(void) { ui_ctx->shown = false; ui_ctx->end_reached = false; ui_ctx->filtering_mode = EIP712_FILTERING_BASIC; + explicit_bzero(&ui_ctx->amount, sizeof(ui_ctx->amount)); } else { apdu_response_code = APDU_RESPONSE_INSUFFICIENT_MEMORY; } @@ -466,14 +572,18 @@ unsigned int ui_712_reject() { * * @param[in] show if this field should be shown on the device * @param[in] name_provided if a substitution name has been provided + * @param[in] token_join if this field is part of a token join */ -void ui_712_flag_field(bool show, bool name_provided) { +void ui_712_flag_field(bool show, bool name_provided, bool token_join) { if (show) { ui_ctx->field_flags |= UI_712_FIELD_SHOWN; } if (name_provided) { ui_ctx->field_flags |= UI_712_FIELD_NAME_PROVIDED; } + if (token_join) { + ui_ctx->field_flags |= UI_712_AMOUNT_JOIN; + } } /** @@ -547,4 +657,18 @@ void ui_712_notify_filter_change(void) { } } +void ui_712_token_join_prepare_addr_check(uint8_t index) { + ui_ctx->amount.idx = index; + ui_ctx->amount.state = AMOUNT_JOIN_STATE_TOKEN; +} + +void ui_712_token_join_prepare_amount(uint8_t index, const char *name, uint8_t name_length) { + uint8_t cpy_len = MIN(sizeof(ui_ctx->amount.joins[index].name), name_length); + + ui_ctx->amount.idx = index; + ui_ctx->amount.state = AMOUNT_JOIN_STATE_VALUE; + memcpy(ui_ctx->amount.joins[index].name, name, cpy_len); + ui_ctx->amount.joins[index].name_length = cpy_len; +} + #endif // HAVE_EIP712_FULL_SUPPORT diff --git a/src_features/signMessageEIP712/ui_logic.h b/src_features/signMessageEIP712/ui_logic.h index 0b651e605..9f0e85b5b 100644 --- a/src_features/signMessageEIP712/ui_logic.h +++ b/src_features/signMessageEIP712/ui_logic.h @@ -5,9 +5,7 @@ #include #include "ux.h" - -#define UI_712_FIELD_SHOWN (1 << 0) -#define UI_712_FIELD_NAME_PROVIDED (1 << 1) +#include "uint256.h" typedef enum { EIP712_FILTERING_BASIC, EIP712_FILTERING_FULL } e_eip712_filtering_mode; typedef enum { @@ -16,15 +14,6 @@ typedef enum { EIP712_NO_MORE_FIELD } e_eip712_nfs; // next field state -typedef struct { - bool shown; - bool end_reached; - uint8_t filtering_mode; - uint8_t filters_to_process; - uint8_t field_flags; - uint8_t structs_to_review; -} t_ui_context; - bool ui_712_init(void); void ui_712_deinit(void); e_eip712_nfs ui_712_next_field(void); @@ -37,7 +26,7 @@ void ui_712_set_title(const char *const str, uint8_t length); void ui_712_set_value(const char *const str, uint8_t length); void ui_712_message_hash(void); void ui_712_redraw_generic_step(void); -void ui_712_flag_field(bool show, bool name_provided); +void ui_712_flag_field(bool show, bool name_provided, bool token_join); void ui_712_field_flags_reset(void); void ui_712_finalize_field(void); void ui_712_set_filtering_mode(e_eip712_filtering_mode mode); @@ -46,6 +35,8 @@ void ui_712_set_filters_count(uint8_t count); uint8_t ui_712_remaining_filters(void); void ui_712_queue_struct_to_review(void); void ui_712_notify_filter_change(void); +void ui_712_token_join_prepare_addr_check(uint8_t index); +void ui_712_token_join_prepare_amount(uint8_t index, const char *name, uint8_t name_length); #endif // HAVE_EIP712_FULL_SUPPORT From 1a73a2ebfcefe1975cca6842688fed101ba38428 Mon Sep 17 00:00:00 2001 From: Alexandre Paillier Date: Mon, 6 May 2024 11:36:22 +0200 Subject: [PATCH 07/11] Add amount-join support in client Also adapted existing EIP-712 filters test files --- .../src/ledger_app_clients/ethereum/client.py | 13 +++- .../ethereum/command_builder.py | 34 +++++++-- .../ethereum/eip712/InputData.py | 70 +++++++++++++++---- .../00-simple_mail-filter.json | 12 +++- .../eip712_input_files/08-opensea-filter.json | 22 ++++-- .../11-complex_structs-filter.json | 22 ++++-- .../eip712_input_files/12-sign_in-filter.json | 12 +++- 7 files changed, 149 insertions(+), 36 deletions(-) diff --git a/client/src/ledger_app_clients/ethereum/client.py b/client/src/ledger_app_clients/ethereum/client.py index 6eb0c50f5..2061ef56f 100644 --- a/client/src/ledger_app_clients/ethereum/client.py +++ b/client/src/ledger_app_clients/ethereum/client.py @@ -106,8 +106,17 @@ def eip712_filtering_message_info(self, name: str, filters_count: int, sig: byte filters_count, sig)) - def eip712_filtering_show_field(self, name: str, sig: bytes): - return self._exchange_async(self._cmd_builder.eip712_filtering_show_field(name, sig)) + def eip712_filtering_amount_join_token(self, token_idx: int, sig: bytes): + return self._exchange_async(self._cmd_builder.eip712_filtering_amount_join_token(token_idx, + sig)) + + def eip712_filtering_amount_join_value(self, token_idx: int, name: str, sig: bytes): + return self._exchange_async(self._cmd_builder.eip712_filtering_amount_join_value(token_idx, + name, + sig)) + + def eip712_filtering_raw(self, name: str, sig: bytes): + return self._exchange_async(self._cmd_builder.eip712_filtering_raw(name, sig)) def sign(self, bip32_path: str, diff --git a/client/src/ledger_app_clients/ethereum/command_builder.py b/client/src/ledger_app_clients/ethereum/command_builder.py index 6ceb73092..1e9466bb6 100644 --- a/client/src/ledger_app_clients/ethereum/command_builder.py +++ b/client/src/ledger_app_clients/ethereum/command_builder.py @@ -41,8 +41,10 @@ class P2Type(IntEnum): LEGACY_IMPLEM = 0x00 NEW_IMPLEM = 0x01 FILTERING_ACTIVATE = 0x00 - FILTERING_CONTRACT_NAME = 0x0f - FILTERING_FIELD_NAME = 0xff + FILTERING_MESSAGE_INFO = 0x0f + FILTERING_TOKEN_ADDR_CHECK = 0xfd + FILTERING_AMOUNT_FIELD = 0xfe + FILTERING_RAW = 0xff class CommandBuilder: @@ -170,13 +172,35 @@ def eip712_filtering_message_info(self, name: str, filters_count: int, sig: byte data += sig return self._serialize(InsType.EIP712_SEND_FILTERING, P1Type.COMPLETE_SEND, - P2Type.FILTERING_CONTRACT_NAME, + P2Type.FILTERING_MESSAGE_INFO, data) - def eip712_filtering_show_field(self, name: str, sig: bytes) -> bytes: + def eip712_filtering_amount_join_token(self, token_idx: int, sig: bytes) -> bytes: + data = bytearray() + data.append(token_idx) + data.append(len(sig)) + data += sig + return self._serialize(InsType.EIP712_SEND_FILTERING, + P1Type.COMPLETE_SEND, + P2Type.FILTERING_TOKEN_ADDR_CHECK, + data) + + def eip712_filtering_amount_join_value(self, token_idx: int, name: str, sig: bytes) -> bytes: + data = bytearray() + data.append(len(name)) + data += name.encode() + data.append(token_idx) + data.append(len(sig)) + data += sig + return self._serialize(InsType.EIP712_SEND_FILTERING, + P1Type.COMPLETE_SEND, + P2Type.FILTERING_AMOUNT_FIELD, + data) + + def eip712_filtering_raw(self, name: str, sig: bytes) -> bytes: return self._serialize(InsType.EIP712_SEND_FILTERING, P1Type.COMPLETE_SEND, - P2Type.FILTERING_FIELD_NAME, + P2Type.FILTERING_RAW, self._eip712_filtering_send_name(name, sig)) def set_external_plugin(self, plugin_name: str, contract_address: bytes, selector: bytes, sig: bytes) -> bytes: diff --git a/client/src/ledger_app_clients/ethereum/eip712/InputData.py b/client/src/ledger_app_clients/ethereum/eip712/InputData.py index ad4beffa7..f50774884 100644 --- a/client/src/ledger_app_clients/ethereum/eip712/InputData.py +++ b/client/src/ledger_app_clients/ethereum/eip712/InputData.py @@ -200,7 +200,15 @@ def send_struct_impl_field(value, field): if filtering_paths: path = ".".join(current_path) if path in filtering_paths.keys(): - send_filtering_show_field(filtering_paths[path]) + if filtering_paths[path]["type"] == "amount_join_token": + send_filtering_amount_join_token(filtering_paths[path]["token"]) + elif filtering_paths[path]["type"] == "amount_join_value": + send_filtering_amount_join_value(filtering_paths[path]["token"], + filtering_paths[path]["name"]) + elif filtering_paths[path]["type"] == "raw": + send_filtering_raw(filtering_paths[path]["name"]) + else: + assert False with app_client.eip712_send_struct_impl_struct_field(data): enable_autonext() @@ -251,15 +259,22 @@ def send_struct_impl(structs, data, structname): return True +def start_signature_payload(ctx: dict, magic: int) -> bytearray: + to_sign = bytearray() + # magic number so that signature for one type of filter can't possibly be + # valid for another, defined in APDU specs + to_sign.append(magic) + to_sign += ctx["chainid"] + to_sign += ctx["caddr"] + to_sign += ctx["schema_hash"] + return to_sign + + # ledgerjs doesn't actually sign anything, and instead uses already pre-computed signatures def send_filtering_message_info(display_name: str, filters_count: int): global sig_ctx - to_sign = bytearray() - to_sign.append(183) - to_sign += sig_ctx["chainid"] - to_sign += sig_ctx["caddr"] - to_sign += sig_ctx["schema_hash"] + to_sign = start_signature_payload(sig_ctx, 183) to_sign.append(filters_count) to_sign += display_name.encode() @@ -269,21 +284,44 @@ def send_filtering_message_info(display_name: str, filters_count: int): disable_autonext() +def send_filtering_amount_join_token(token_idx: int): + global sig_ctx + + path_str = ".".join(current_path) + + to_sign = start_signature_payload(sig_ctx, 11) + to_sign += path_str.encode() + to_sign.append(token_idx) + sig = keychain.sign_data(keychain.Key.CAL, to_sign) + with app_client.eip712_filtering_amount_join_token(token_idx, sig): + pass + + +def send_filtering_amount_join_value(token_idx: int, display_name: str): + global sig_ctx + + path_str = ".".join(current_path) + + to_sign = start_signature_payload(sig_ctx, 22) + to_sign += path_str.encode() + to_sign += display_name.encode() + to_sign.append(token_idx) + sig = keychain.sign_data(keychain.Key.CAL, to_sign) + with app_client.eip712_filtering_amount_join_value(token_idx, display_name, sig): + pass + + # ledgerjs doesn't actually sign anything, and instead uses already pre-computed signatures -def send_filtering_show_field(display_name): +def send_filtering_raw(display_name): global sig_ctx path_str = ".".join(current_path) - to_sign = bytearray() - to_sign.append(72) - to_sign += sig_ctx["chainid"] - to_sign += sig_ctx["caddr"] - to_sign += sig_ctx["schema_hash"] + to_sign = start_signature_payload(sig_ctx, 72) to_sign += path_str.encode() to_sign += display_name.encode() sig = keychain.sign_data(keychain.Key.CAL, to_sign) - with app_client.eip712_filtering_show_field(display_name, sig): + with app_client.eip712_filtering_raw(display_name, sig): pass @@ -294,6 +332,12 @@ def prepare_filtering(filtr_data, message): filtering_paths = filtr_data["fields"] else: filtering_paths = {} + if "tokens" in filtr_data: + for token in filtr_data["tokens"]: + app_client.provide_token_metadata(token["ticker"], + bytes.fromhex(token["addr"][2:]), + token["decimals"], + token["chain_id"]) def handle_optional_domain_values(domain): diff --git a/tests/ragger/eip712_input_files/00-simple_mail-filter.json b/tests/ragger/eip712_input_files/00-simple_mail-filter.json index 33399d17d..bb4957037 100644 --- a/tests/ragger/eip712_input_files/00-simple_mail-filter.json +++ b/tests/ragger/eip712_input_files/00-simple_mail-filter.json @@ -1,7 +1,13 @@ { "name": "Test JSON", "fields": { - "from.name": "From", - "to.name" : "To" + "from.name": { + "type": "raw", + "name": "From" + }, + "to.name": { + "type": "raw", + "name": "To" + } } -} +} \ No newline at end of file diff --git a/tests/ragger/eip712_input_files/08-opensea-filter.json b/tests/ragger/eip712_input_files/08-opensea-filter.json index 6f1d9f5ac..e70eb802a 100644 --- a/tests/ragger/eip712_input_files/08-opensea-filter.json +++ b/tests/ragger/eip712_input_files/08-opensea-filter.json @@ -1,9 +1,21 @@ { "name": "OpenSea", "fields": { - "maker": "Maker", - "taker": "Taker", - "basePrice": "Base Price", - "expirationTime": "Expiration Time" + "maker": { + "type": "raw", + "name": "Maker" + }, + "taker": { + "type": "raw", + "name": "Taker" + }, + "basePrice": { + "type": "raw", + "name": "Base Price" + }, + "expirationTime": { + "type": "raw", + "name": "Expiration Time" + } } -} +} \ No newline at end of file diff --git a/tests/ragger/eip712_input_files/11-complex_structs-filter.json b/tests/ragger/eip712_input_files/11-complex_structs-filter.json index a38240d5c..762304312 100644 --- a/tests/ragger/eip712_input_files/11-complex_structs-filter.json +++ b/tests/ragger/eip712_input_files/11-complex_structs-filter.json @@ -1,9 +1,21 @@ { "name": "Depthy Test", "fields": { - "contents": "Message", - "from.name": "Sender", - "to.members.[].name": "Recipient", - "attach.list.[].name": "Attachment" + "contents": { + "type": "raw", + "name": "Message" + }, + "from.name": { + "type": "raw", + "name": "Sender" + }, + "to.members.[].name": { + "type": "raw", + "name": "Recipient" + }, + "attach.list.[].name": { + "type": "raw", + "name": "Attachment" + } } -} +} \ No newline at end of file diff --git a/tests/ragger/eip712_input_files/12-sign_in-filter.json b/tests/ragger/eip712_input_files/12-sign_in-filter.json index 69da4f14c..46aa82aec 100644 --- a/tests/ragger/eip712_input_files/12-sign_in-filter.json +++ b/tests/ragger/eip712_input_files/12-sign_in-filter.json @@ -1,7 +1,13 @@ { "name": "Ethereum sign-in", "fields": { - "curDate": "Timestamp", - "id": "Identifier" + "curDate": { + "type": "raw", + "name": "Timestamp" + }, + "id": { + "type": "raw", + "name": "Identifier" + } } -} +} \ No newline at end of file From d6a533b7204f58bc8c905e774d8933f0f5b21841 Mon Sep 17 00:00:00 2001 From: Alexandre Paillier Date: Fri, 24 May 2024 17:36:34 +0200 Subject: [PATCH 08/11] Add amount-join ragger tests --- .../test_eip712_advanced_filtering/00002.png | Bin 12340 -> 12663 bytes .../test_eip712_advanced_filtering/00003.png | Bin 5027 -> 6221 bytes .../test_eip712_advanced_filtering/00004.png | Bin 11918 -> 6023 bytes .../00007.png | Bin 7501 -> 12569 bytes .../00008.png | Bin 12361 -> 5485 bytes .../00009.png | Bin 4949 -> 12367 bytes .../00010.png | Bin 11956 -> 6821 bytes .../00011.png | Bin 9417 -> 12692 bytes .../00012.png | Bin 6132 -> 9417 bytes .../00013.png | Bin 0 -> 6132 bytes .../test_eip712_advanced_filtering/00002.png | Bin 715 -> 742 bytes .../test_eip712_advanced_filtering/00003.png | Bin 336 -> 372 bytes .../test_eip712_advanced_filtering/00004.png | Bin 770 -> 401 bytes .../00007.png | Bin 555 -> 736 bytes .../00008.png | Bin 709 -> 339 bytes .../00009.png | Bin 321 -> 819 bytes .../00010.png | Bin 774 -> 420 bytes .../00011.png | Bin 364 -> 806 bytes .../00012.png | Bin 381 -> 364 bytes .../00013.png | Bin 0 -> 381 bytes .../test_eip712_advanced_filtering/00002.png | Bin 715 -> 742 bytes .../test_eip712_advanced_filtering/00003.png | Bin 336 -> 372 bytes .../test_eip712_advanced_filtering/00004.png | Bin 770 -> 401 bytes .../00007.png | Bin 555 -> 736 bytes .../00008.png | Bin 709 -> 339 bytes .../00009.png | Bin 321 -> 819 bytes .../00010.png | Bin 774 -> 420 bytes .../00011.png | Bin 364 -> 806 bytes .../00012.png | Bin 381 -> 364 bytes .../00013.png | Bin 0 -> 381 bytes .../test_eip712_advanced_filtering/00002.png | Bin 12707 -> 12929 bytes .../test_eip712_advanced_filtering/00003.png | Bin 6463 -> 7547 bytes .../test_eip712_advanced_filtering/00004.png | Bin 13042 -> 7374 bytes .../00007.png | Bin 8718 -> 12872 bytes .../00008.png | Bin 12733 -> 6876 bytes .../00009.png | Bin 6438 -> 13435 bytes .../00010.png | Bin 13087 -> 8009 bytes .../00011.png | Bin 9157 -> 13272 bytes .../00012.png | Bin 4916 -> 9157 bytes .../00013.png | Bin 0 -> 4916 bytes tests/ragger/test_eip712.py | 57 ++++++++++++++---- 41 files changed, 46 insertions(+), 11 deletions(-) create mode 100644 tests/ragger/snapshots/flex/test_eip712_advanced_filtering_verbose/00013.png create mode 100644 tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering_verbose/00013.png create mode 100644 tests/ragger/snapshots/nanox/test_eip712_advanced_filtering_verbose/00013.png create mode 100644 tests/ragger/snapshots/stax/test_eip712_advanced_filtering_verbose/00013.png diff --git a/tests/ragger/snapshots/flex/test_eip712_advanced_filtering/00002.png b/tests/ragger/snapshots/flex/test_eip712_advanced_filtering/00002.png index 39c6eb03c525ae886e3b912f1ea44b630e4ebdbc..aedc03daae3a0a7e8b35fe47254780d9bcf9fa55 100644 GIT binary patch delta 10525 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%0AWF}}R=AGZSdpj>*apD5^0gUAMpjYR@CtEr z)IcrWmo~Z`v^TdLxA)$mwj=+8@x}ywQ$Fx2@-0ol-9GP~nT5``Nt7b-tkbsuL*R*y zYFg*P!GX#lG|RZ06`8!SA6iM)h*84mq|fke&uZv^HuM7u<{>V1(J(_=X!-gnLT zXLL2@B*p;6y+wT3~Ix{o1K zT~Zn*J&;WfAaS~Hbi&k^`3T{AkXKSt5c4|TmXTK*vVIVe@kRvf4eY3rsEIUwi%c$c z-JXJwK@FiF9C++w*4I6~fBkynr1|`MEe+t-Zix|(zC5aZiE%_OC8iwoUt3U+s)V-Y zfXT5`MsHzB$&}|-7?saJOk9mXQM!k(uF+=F>ELbSc{yS3}BkS&ZA(C66L4C(Ey|9=fwPWV>7Ks$9tXQH4k5O(4b!=HQl>k>6*XUC5 z9qpktCD+QV1>!^lRj!|N4-pm}ew7?MDjf}$QS^77`pQQIxF6@IhrZ+Y=AbP%kAjiU0f>Rg2d9hc%yxGqzxxmqB zGK|_;l`Lg92S(PfSunt*tQ)dYc_}CVw$4l1Cfg$rU0-W@rx^POrM9&e$|-KjPqnHI zw156$-8BlaJ~1|-6LT>BLB(%;{@JYJ;hyNMV3i0%O6jk|)3p{uAbs$+y5Sz3{>5*_ zeN1Mdoh=Y&J$@|?N-!%;iu&0;J7X0Efj^TE-6x9BMTLdHLjkF~yxQ!TPCF&Z*?h_$ zc6FFcu7qM#ma`Gbch#z@Jq<)k9sI zxu4o+x=o+U1?=lzQ!Gb!eIq)$xofpoggJ%3W*1%L6gEf;GTsL^@&G8bP~dP} z|Ge$u%eclRa}}+Ni-!vTIvDP{`-B2dFKd`a;&L<8Qk~;aOyZXaA&k~+_A-9sf943*K2b3ILl`@jR z%d5ZyR-M#f(plmb{rBML_W{ak7`VKE(yok3Uc>dh4tsNlMeRNCJb(XGeUF@&J&W_n zIS+hUMP=BJ7G;(=>$30G2jA8(I-GfPZiUf)t|WwpTyx)sVIQ3eIY#a)M7fqbG%5)(bI;sz z%r%p_&;O_2-yR;1Js#WM@Av2Ze!pJN6>5t_ak>;sm2y7NEa!0;G#CEGr*D0E2?PM2D0f4S_OttFtW4eqYGgQI2~xp?re1ytzu+$ii<8k^psk3 zzDitn?qJZwegIvhte&=y5;s}I*=lX)Ks0&-T8v|+EB^vJM|TfD*d{wkL5g=(Rd@tk zO>DkM*D}fdZ#XiIv}t7n!+0ujJ8*rIF2cpkhHC=+@p@r;vam~+f7g#u4i41AH~Hwk z@(xKZj!}@BxdnH__K;0p^<$#Z+XqK8zK^P2)2+*u*z~#->hZKUO&D*xKwwp4lzh>W zmHiN?l!Yc;h!Bn*POM!bbySt@*&KX(vMVSNNrMov-QGGz3y(6wYvMk=v5nOqnfdtQfSphI8A(R)!@ zGT!$Z3Fj>>(yiMpu`DhYyLm=V^8}Dv=l0%7`9ofE@c~^w_s^oRLuL;YMarvTMRS;NQdx6`nvA~`x z2?9+w<}4j{iyWwiGm!pHK{icz!!RKe6NIYxnaBU2atJxOnt+UC3xa_nt$SqurQmw8Cy_S5?i*yCOGg z{+tIf^M}D7yPj$TB@bDD29}R+7cNET%VY}2%_h`WC)m#wK%XN z3Vqw6HCDk$qv`h%nvF!Nl2GSi&GBJ-Y}}!?hHM&s4uxUXBhZh$^rKqe*Irx5-hA4Y zRtPcj=a(-j;i?mDIj_7jz0Z8}Hc$J?)@VyikLOxsMM=qyL`1{m1qlpb2DM=}k=Sm& z4~?5mon7|$3WnjAsE3ubPK|2;iOce%hr;6#y}qfnS-b` zL&`JWV4->KgJd)3*Rzjch6JwOodaBYPdWA(T&&=>LuEs1p<9NtRX}iyEmm6cO~D>= z8v^^$QW-?`@y;0j0WhnavJppM1RK(OtWp#$f9Cc%x)+pQbFmDT`Y@}4oX z?yQT6TdH}?t;S&k8H#z?VktLQYszx(rJUdT^=Aw9u5|jbxw*Lzv2tgG+YD1QoGr1Q zpq_2qgCYsep(RfpqFyg!%5S)SIG!_ejv&WacUAU@> zvrX;N{S{4qC<{K@+D@29>IyTx2D+NH)WqtQN}MzcxXYxUuz^huj!WLnkw~d;Ho<4o z`!ew^InQ9YN>N(<%6f{?5^SIG_9<%%YNUHI&_7xi^o+1q9&q|q*~39(HY8PkbtIw7 z2YxX$ngWO|cZ~W*_n|6R9~&Xzo^PdLr4`N3I8UJtU3e{WpE|qdY;QpM?@xc~zS=7{ z+PEK_#SoJ7EQljd@yh(0Mh}6iA^DIMP43=}vg;>Gb9wI=8_32nhZo3n=a?7UXZ=)o zRz)&J;uH0%nC(pPUGU0KNIaIMAueaQQo?Jc{TGm0_zs#%4wa(mBeYE(d(+Gyh<$p_#;2Z$lUy+(xYm=2B(d8A1?i@gsrl^&IvnwmmZMzwxFR_>)B)%oIG z!foM1Kc39ix*gU@d$S?L7bu~t3d$G1&@x6DUh>EwKqXztg&M0#xYV$!OHIZYIJb(? zz`+sUTiylK@iHwed+dpIZk+k8q~_%~p9eo#C(K2ll>R z9lS#)Fiv;lC;~+2{NAtiE1O4XpY8s8aLZqU$}4kQoR7|u&e^!{QVr=P2`9%FxpHp9 zU4lJ0x>!h!rF+3(;D$MxuF=C&lQwp#C6j-J5}mkv*I-YZYN4gI+v9sc%P6|cqf|A6 zjH#Iax^^5p{<`Oa@dNIer+=1yf^p2+U`Fa?V_qB zDe;s^bd}8Z=P3%Z3PD$7`5V~$%@(G)pf%!h&J{2f`NYyte~|PL-R~xB^59a`(U?jc zMUH`Cl+&q}hr2bruO6V+$tcF-c92=vZrWK@rdqxM1OSouMEG4<1)B|M12e0uZ6=u+T@ zRzq%)n?7U5E(ZFQT%F)vUtR)%WtmQvTVsv0is>+C_r@f;8lM5*ILk7&|2{MjC;9ZM z@!4ZW6EX<_*dGn03&{u!=FvtOb`*5L<%&PprNosxD@>DN`-V4EQ8!&^|GYIxHw6^ z=et(NpbySA3=kue$bL;J12&fB9z^l(5AT6W(AOh0z(GA@R-U)|PWpvKGqS zu!>s3*e`l~Px}b7PI#YCxVHMzcy6t&{}7}{5L0I>~9%-%DDssJsvyd zrBoww-u2`%^Q`j9?tb_{WR4q84R5Z>8wDd8RJnki@~BNTnl6CSOcmAPcX%fWEc+5$R9IiPgRAy27TRk8}_1w`1mN`$wQ2AjWU#~(pv8ZdA z^wb`m?xaQF(Nt5;e2KRc9rFB_NENYDBuH7$?+q zL<`9^s_BvBGEv%%@H=;?NiX0ybdC+sc{ydSZ?UAgE-}huz8X_{2?SS<_+is)ZeC7YN%-i0>|26YE7D|4o*@;7 z+C3>!F6nqHhDi3|=pR-hNO$IL_Q;SVU@Hz9Ew$yd|41IyJ+|YMO}D%ykd*pU>hbYT z!CTMKjs>KL>>=fzRqKqTaQjkV)s$<-P;1KNj}l#2taQ`)?x0FCZD9CS!v~}aPj?{7 zrC9N(V_{BghXoO1@&J=Bx@wFehfd4(yEjc#Scr$Q%$;LiOZ+uRrt>F1c2_$|Z&c}5 zc*o`&R^fNb?wr47Zgzwp&@x31o!l4Mh{6$U!_X^KlLVzqJhG`4a4rZh!6E(X&L*7tGKe=6eb!bKOG`A!>TqPb`RLCfHi5v4-J;OJv!#BlOf^EEG@O39GJA zFmetB;o#6lUgRmPbCayAUpn;Ltm8aODS_Ten{oS%k#|vK4^Y+ZZ4b;EyfU`@Fc{>u z^Hn9zD=G}2?&wAYKiI?E~`Rq>Fl^xkgU$m z&VCAvbHTDS)z{lzjFWzIXx_m(Ff^XB6t2Q!t4#T&pR*r6OhG1DZ8o~Rm@riTeoU6;k>B~<*c|a_`DNy3NY8|+iE_&7J&)n|ZVw>ov6AR1 z>XW()4Jy|~d5wo8I<%P0t-@GbAaYYsyoJR!oCz?MZ|o6qlPG zqsw)RxG5QhBk6-*cI4}-r*b5l?v8e{3~y0zgxyX6H)ZFO<5nPY^NqZBry0hjGc!1P z&PT)1O(V(t1ee^cDO;`y~hBuGl^KvMGMu~bi^#DV`0E4$G7$2UQ365uWu>=MR*1$C%= zBm4SVgpLXNTPUM12o)Z!lTVN?0voH=fVp|c%C%pqcfgSkxWjD5dlr=&YzdmMG)U)r zqX5)eVs%Nqe`6a6U7g}{OYsPg**+CEXDcMm7XLyrwX5xBA;NcT7qfYR(?z7E?R*)S zbjBUCwfI}WTv<%}(oh|+5ZY{u&AhFc5|RDe@wgtvxIMm;)0qk9#9=SG0TFDOw4_PD z-}v;{{F7}71Ngz84h;0*2m5V4-SW53z8PJXyQ=rPkaDJ5Fy4vaxdv~v#yYyUo?HF0 zs?h>oHamT7VWyUlneU;j+qQK$@~hZ|A7zg(2Qi8k56L2htxD526Bp zmO5vMY`4JSjOA~~g-;rQU_%(nvf7;b!YTgOOLwylPozL&&U51BUT~5PM09A7TL%gx zfc63!UZDVIRt`Pcrxgz|2+!O5YT*47l5u=dLj4EmsmVtFmMP^- zBbqtIW#HB68cCCt>z8Q|kB+v5Y0PGYx&wGnXQU)%DGkjmj`?3S7MNW1V+`|=h0Z;vNhi+GaFmJSf&lnmdY(C@#2 zQq{|qHgKAv@&t9K!U{E@knN7PCEQ)Iekpv?#c~$=I+s>dUs3DoKPm7h9f~$&dExmI z#5`!0N%`*Q{l`%88iBkqoI+mM6ieTJU80-0`Ow(fqS1#0OXo1#Sneu;!pYQ)z0gyr z?&w`b={KlgP<_mHw#zE64_e6hL<1MBR=#gFgjl%V)~*kOYbzIXEAukp(+}FqYfM(c zysQxg+fISB>#NHj+%!sxM@46{b>Q?G{<=_WyX(_awT+Xi(|gOZiZb@%o6UtGhW{RU zw7ZYdYm$H9pt4G$rMbDg#g534S>)DXyq<4c4iea6a(uohfi~fdC};pgqd~+O$bCfI zB9n`07uG+8M?`eyXzq>T$0*x-dv3tN(a}UB#k+oNXQ%%0#l6P2jTNBl@HeD}$t^;# zSka|mWR3XkrAiU}VzK?f(eWotM+P`N43of0N>sE5b^KvKK;|3>^to9Ca(sL|s6!hQ z61P5yi9dWa_YSZucN*~bO|>gMKlNpnIQA?>acZc7=kRW+w((-U(xMZmwY09Yv=MRa z>O3NYDc!wbSNtn+m*c#Zzt2mpV;eFI^H}OCDPy|^l%d+w7OqIqsKKF{t(!P0@tVF% zy&Er}p|8ZwyM`{2LpgHFE}U@FUL~pr6Q59P95VP5%7L5;=?%*R2)C}3)5v>Gw61k$ zwS5j*fO=F7+7_3hPH%Q_g}4u8HOCBdgqlX&lg3~0a^Z3zdNfUp0z1w7)w@ps5Q=we z$@)R?f4)o~;@5|lSzdI}zDgL3-Kw1M z&V=8PU%fVC<<~R;+8&&9mc-i7uqP?bxZov@zTRi7T0*v1OOsTyj>xBp#p4ycH~uM~ zHJ@8uv+XC6{*23w&$ul(jJtZwUagy;MgSoNYN&CQsgr;m>eGranq!#}>UdNldrV+clOJvju*r=_X+yJ~g+8@lCWcQ@^e z?++p|Rifl!$~>7&erN|N_!<A+0f0kHO3 zm|t#)-(Dz(DVDz(j~_i6DRa)n<; zQB>=Ue*<{-2m-qANEG4odN!n*wE9o@AcEyM-SJmy#;cEv*!DVIR)P%8JA`&vg_2_~ zlop;)(Jfs?7PKZ|lBj{aMBs>E_GEPls(HDtimM|R(Cr2V=1?ytB*XHtzB z<^RW*@N%vNUI4qK{lFJHnwcq8r|wA(^N-9pX$fE7B3Hxgk0`fn_knMJ{6d@79ZO{{m7OLV$r+f>CtNRHGhP6Tzd#y zTkF@*w+E7oli(vEbg`4N$0ZV~tk#<6Rye;3=%HR|sjs9*R_-7h2G$aSTaT3IfiSEx z{zD@#hsUdj>bWq?T%g*~(E;(8cod_W4E-d`u+XNPhT)V<6+}*_{35NkZ(nZ0xr(*OHY+iLT6P z&V#}}aB=Hq4n(sPbk!}{4K$D}QF7uo`i-<&LG&QXpa*PI&ZOWg|C;|DjA$uVE6a3p z?+{@5v?wYJ)j$%e@$sU)L76%8&i-LrO|Y-8uxe5@z(;abZ9wTvwrQ{)9>X!<=~(a z9ASE^V03g)Gk(5bf#vJB^DRviU7RP>y*aa{W_jJ`5bO`9`B-eUg3&y~c#gp=EJpye zxwrSSpO`cm-hf@Q`2Z{=P9ajKtuBI^V)#oUuNBDZ1`*U8t@nQw?Tt1LO?Tt|KD4-F zS~KB2FDxT3o0f8apH`ALoIM$ZR^Uei|@jAuFyzj35;zn)uF|(#K!KaXXx$Z z-CgQOTLQq|NnF|TRZ-BAX|5E0-cJj8ed2bTgxX^MmK^pZ01n>#>ca%pcNw~rh)1Qh zHO9~V4(}$GH+(D3f|?vL+a^M^H|-Xpz`y_}{8T=za5aN?10-6To)#TP$n}SfCEdKe zt-s{e*e-5q)^NRTHmBS~5}W_5HkZSBV=OrG!vczdIa>5C`)vxyZP~qx%Z62R9{-+KAGgn;!6JXRHCbbSejm31E^lF zS<&Y+<9HRYR8R6W?9Hqc!o{mAr6v?DEd@57fLa63recuhRG_luW}D`u94*h+u=PS2 zt*i4@3Ph;Lfvc+zLx|&la+IhqK%+){?nm~$fTB;br>-_7TQQ*KX0`FZ6{{5#fW^a^ zNM%Q*c*bJJR$ufb|0J2ucHJ$29&5z~@y~)oNy0O;PS!U2NuJ4i>+0ni5%&ZwAwLb; zZ^eIl`l;@j0xW{H=K?t^8PbWuDVYU~4k>Vz+DkoKev#8NG6nUd;f_}pziGsv)5Rg#Q(4W`o6O-3$&KQ zi3Saih#DfNm96u083*Id405Kz=_O6xINH_*yLN|o1R8~GrztRjwIi2mKZnt~?)G37 z{Kuxg3V9VRoHKb!Z{GJ<$HQ>UINsLWd_Hs%HTj!19^h&;hLksnd;2N+J9vJtM9xPI zMFQeK{j!RdP&jW2V7DwunBM2f<=8O)Qzh1I{nb?aL^a!38a38tFcjo9DSt&bG4zs8 z&ecoS8+f$iFL?SMeYbw|lP*p>4rIo&3RA|XZ8DDk8F8j?#RyM99QX}GqA?ttp5ZKp z9^dzC1TE&x#HjOd1}-|Z1_u>#noi+jFI^rxJqz8ve{T}wt|zJUanKtlney=pOnP%& zpU$oBu)#@+2~>O;6Z?XVN|&&&_|9ehv98bI;gIyn1Ojc5SCAX#&nM zpC#sWL0xjCSgvx5<27!}u_Z~1pBs>(p>TCl#XIsFhP_-^V`(FgWsN4}UCZ_utw)r0 zRFgB^V*MlSt{A^i@v{2#n^W>sH(ooe?gLlnDX zBr^Fuk7527t0dzWY6f%DHu}>iY`S zZHu`sNrZtml=Fg8as%M6C%3}m34s&!%&X5+#OK{m#cpc5opQTKDMHP*1wLd5c%9qL|rnwxLOI(TQ*Rm6zoh2A@}>%6e`=X3Q%-4n`` zj1%|g6$faS9FQ3s1jkyGE+DoKBBpB(DadNv1!UG;bMxW>*un&|DF{_r(A*P^0G%rm zA2<1YhIUVlStfqLzhN9CKSyZLVCDRSY>Ggm<0NDvQ!^XROboR=>3Hg3EdIcM^s65a zITWqJBbC|(`tyG!1v}ktsq=Cb@lG7x2>sz&r=~i831vAx^(-az41O48&$JKTZFA?d zSvAMQoR{T1QUB3Zr-N2Q(;1z8cmB6!ZgTQMq?3iv$t}qwmK%cfHc7HKL;$b~a=d58 zkjt2`BXGoUOef(zeEuLCJp*p^37J5yMtn@?eCrG4BamqnWa)}p+^j^`22^>Xz2~$1 zUOfymqUn6{p9^UtsPTOgq|)w5^F(!41?x(_=vlUKK4BxXrW?4nv!C;<81_jb_q$)a zolKublw9bf73LZWfj9_jRA;q~4di?!b&XkLl3#~@=S3xbrwBWl`D*prB z+03yG&s%B?8F(V27fg|Cw`FhrWL7J!~Sq0R(POO;x1Y&43ZExnFIL zZi`Wqjn3cQoso_$CNoA#(PIB3Fo@+x%CgB_$nLZ6xzi6fSj^t+(Te{#pDS;THXt(R z9-k7S&oXjBFUA_2=Xrlk#Y&ux1uOuhGYJHAg7(>1L^4!>~Pv!1~p~jg)XU zW&}?0ejdPT^{blwhywm;>+0OqTHAunlq->9@@Hzg;}RaP*MG^bbhS!>V~Gbxw&w3> z9a&m^S>*e3;@B*a^95@bbpbx0`C81jQ3}FH;#ub zsD@g<~eehot z_>29xf?B$v{jy3TRZ2(n6xYd%F^UCy8wF|8c>U4H|5WJ+b;sZ;G5!OI#Y8Xec}$gW$Yh$DGkkus~_ zIkyPfD+Hfel}S&fSr4miQxLxgmK6M-KDx3LYvGgJ*YZB5pkjrBJlLU5CBiRPb!It} z7X3BeSFE&XZQ3DmXZkt$K&dOauQpk5#;eWGv!J@dgJk!ZxJ4uqfq8$#Ps2!|Q z{CKd$mGjXD%xcXdchm}qHZ=uP5}<`1fZ_u$|Ng$*k_Ef2DZ3+Ai(5wj*5R5y;&gv* zpU)MrF{4ULOA8Ogw>x@hr#go=O)NKpofZMTqYUaWj7l7%v|i(pKDuLSILHg_0XPt3 z;m(naOR>eS0AX=pY4biI1vF_7v=W@tX{7^8gP!cgZs4(Hn^>4TYx%11oRw~Gd@NNC zfO35m@lWOyktj%$!9Jab6fJY}Z1h9(+CaZ`B~PHHZgx$19I`p$T@S(qzWws=s>9vg zMJ}9jr+;%x3%E#|lR2=)lvOD!Fxqp?kOFA5)>Hqy&ez{&>(G2k+w&AxgJGbABuK-A zcl&JLVJDGj3Ep$PjmUX+T>(KA0!_gPY~j#4JU%wYK>l@(Ae*wSGL8tkH_VH?Bx zh}gm!?Cl{T_p3Ie!&0oAPX0lwrWr+_Xd>H|{!ihcG>{_y4H==`;c4HnZURcg4#f9F zb`B=cwI$+Zwp`o%C?y#VuLxeB;b$ptNutret3b1d^?p+8Y!A8G%SxGF6@2!Enbb+! zIQp(c-BGXztC;#fPKj8`7u~nGdgQ9^s53hH?_By!%4;#t^X5Zh7jB7DC*C-OnXNLXMaY%PnS&0~DY8@%8Y2sJ`gx3WT82NjFu~E~bPBMZ);>qP*Z$omZ zeIiEPu=$^ZMjNj?5kD)Tw-6HW^I&IZ$Gz6N+yV@@W9;285ZEe*VTa2Zo(lu2(USlV zP_v5kMT>K{^sGNhf4?1to6TcLrTsUXS0IXELw5NIhvtmscKP+QV5Y&Drk_|Z+EtGS6 z)hgV0s3wp8&}LF7TM$h9gP`?)7fj%{uIy`#UU?{>kF!an1OH&U#&;@o?4SJ~NZJ0xx*;c^~fkzV7R~cyKlV zV!X|An~si-@yUPtoYT?SG@+xTdvS{{@X67>N{EimZnKj<$1i03CgDwnehBMnXZELi z8Xw+wW$Q)VVx4{7ThHqL`sw9~{(()W4)5z%ecktwZhZf~QCNSyoF260XJ(Ov5wO;D z>6t;!@lD>3wCS=vIumX`7;M=$r1QJJ)qWEcl)fa@%B>{o4()b>}~h||K++s zVv|bZ{$F$`6dGiP52)cv6eRQ?25ogZ$H^MaWh7g*@(>hh(@IIrM|TNe+u zh%!@GdjQkj$#TEPRrzEd%pGs-u;uAU8caYX5T;W@O>0+S94|zufLdm*{Xp815)EwA z)F8*bkR@7C?@9xHLW!{OWlE5-EuqWGm@}aAL2h|6bxedX&-ZnrI?$WT^dpIENqlj$ zJ?_{~6p4*V-6q&P^6T0CZ=*v^a(hIGF{1+TxsWtsnQzdFO7r5%Su%95%|=vHoI#`fR_4@VhNrdb4bQR1``)GHo05V9aaM(J zTzo;hV#>v4*wGY10wP#wovYtbii^mvVu{Y|FB(Z0`PjBb@yT?vl2*5G#MZEsaT17A zXZNZyh7JL9#;LbDum*GpNiW4|HMEymCXF-i8JU{hUy^pRj$n!HgSfsMpYTAXMmOE@Df6#si{u{@$8KiPKe>+HA|9rlhUlP;F%piSb24@3?E0k*TPf6$>CrS0cvR?WjS*EP=#BRm6mv!j8cYqO z1@}wn(QQMei;Au$p%4H;M5$ zQxbd=xY~99KTL#3@pc>kB=o7%yjkR9GEaKt@ET*GGZ+kmw{<^Zv~c?E4O1e)!F3}{ zI9^-JgR#T1lL9)$DH)KNkP$Pv2?le5wmFSB4SILhkk`iv^AjikWuIcQSWz@jdDKfed; zkO-D(G#VC2gmBM!ai!^EnA#5Y`K|11Fk00cb(3*^SS)vVU&={DIw$a8s~?0}z;Tn3 z$h?U5r;#*_|NbI4Rg+onh%uXpI)2^?3Vp^FFJ`Ehg@d2*gH#KeKY^5yE2N(h2${ET zl?K#6v~lkx$eziC>FMb^hfH&Ol4ZPX#mBtMdJPVCLj?rFtEt71Yl!zN$}9{8zkX*j zm_|2}&26GCIwMfqqMR-Fgf}w9^2bd8q;c6$c@+wUvc_Q~)VkT*m}ggOSfv9oA>#$edmea3YG)P(v#~hU z$NFnvZNO#a<&GB%Ou~X-6Up2T)fs?tB?!w82=6-3bB6SKw%l=Tz zm9!sN;yaCE_H<={2Wj8jU+$iaNQDduYaM+rWRI5#YO9SaU2*=ZmDj8u;bh8tqi`@N z|D!Id&TW6u8?jid`fC7h`0hpYfHQ_vQIj6eODChly+cz7*n}fQxOSkUlAnd(lSy1o;;3v@Oy34{XEvLy$osk3zG`N1GIDYIc`F;`F;ERXY2_ zOT{03Sza{h_xGJ71Bn1Ov)F=1K$fd}c3F5uUU9)4t$STiF{wz^<2n4v+-!tuF_&z; zTQw?{OZ39oowxRWQQ%jDBc}(iewzP;Ej~)jf^9QZ!A}$A7Bs8A<4SNt2-=b0rZo~u4X!T%#tFA$>y^J z0uW)^1>pzUP7h%gHaoL}7cu`kBjwufb#99NNv6p|g=|s!n*^Hw@IZiyUk9fNXtKnm zvS$18Y!A(m#`HfY%LPX#w5P3(1Ms2voYwPTia<~}%-@Q-Ay>7Il86HHiNL^l>(Ng1 z=3y3f-H#N@pI!)hYzuG_%!+`O!9B zU2bUA5a(D3(ZCMkUBW8!)xIyA{%*!Dv^yPl29;;Zwpo z$fCS2I+RMGNI-9|ABit3TFeM5j)wc4(bx=Qei08vqHTW&9LMORpI~E(xnGl)9d|Mr z=Ub+og!cx)Ei-qbvn-672ERBiL*IZ1*2Vp+m54(o9VIVw?gD5|=9N9#og`T5Px8Yn z(0Zt;>8j=7x{)~+sa~?GLc#YuAMnu!I{0u&7m@fGKy(AF))EGHhndf2`b~eJptn#W zh{|Gsj6jG;fRd4U)@Vx=DNCoCfGdEGl+r!NWYwt|@!k`P9VMKb zhvXw7M)yq;S3Yxh`@X0=z1t`LRy_G{N8JC}(0|Q>{+2@QpLqTg&%cvLAg5K@0bQPw zu6G-)J(w4Dc=tHUHRFOh67#;g|p=3Aju0i-E&XvO=4?Z(|^`x;h!kQt!O_gWqrQn}y?X!o@H z{Xf|ZKwsy5A*~b0uz(_+%8gsmN-27=p+q(WED#|8o=oCW-d0_J%GK&H?Jl)KF;k*+ zYzz_J(9|w;09roCj6U6LmzU`bDm^3Z4zxi%^adEl&PWNuz39zH)nF>BFx9J^7+jYO z`$=^!wlK58Piy>1^Z3`W%E8$fctR!Ux^z_~;1eBd33I|^Wi}F|pEh&1H)?S^d=K`! zJ1~Shem@=xZ4>4LGTS5WOs$tyXV*U#eTOG--C%jwfgaTNd?hLP$B z1eWNxwdy2H6JTJ}usSn5lE{KCS{v;W6sj4SaT>VM4^cheI@e$FhihirB~2cCUUKEI z8#)I=qpentB&507N#&Wz$;l`ZK-~w7&GUPEx$)gpsx^f!7Tyi$D*vt z~m9BC)tnzzat1e*Y=bPs>2_Oo`DH8XMw zr?(M=b-mMITCq#J=M)>l9dq^2zNOU!PLi*941^oa!YaJhFR86hp%}_1iy7lqP00yx zM^p3J7gvVVz28|Dl$Dju*)xR86q*lECChy>5#1W^m9}t4;+%f-*4me~`Sr}O-Uz&m z`qLDUkin5J8>}HA&^Gq$45`)2A$_qbtPvj*Q{{Dfq0!>U_v~tBnC~TgKBPRS?96_D zW8hj*FUMZCqJO0YK}S+M>j$}Bn(Y>eHN3^1U9zdgHPK%~sZ_38^_Mz6;ASa;a{Gbn!Eml1497%v;&jEH1AU1)}oaaW2WiiAbfsjSg zMAOsN5u4gw4Uz@bERnOoH?$a>y`Fgxn|Os{w)C##_zHhv zc_nX(@(kZ`@m)zfoDn|OGuI=lG?$;+`1yIc%~Tx2!UNd=Qdl994)1o3MX^in!l=%c z1$;i=#1tql3Sh8o;4T4iXU4ViV5YJoyN!SXnoM&6yv&5Qgu#MG|E4@t#xcx5NQb;i zJ4}6W9hZiB9X`yy>EK0Wq=IsSvd5`iBOxUCio<}s0!&%Fh8H$R5S_9yzv(jKm1z#v znWelC^!mXuuWQpjR*q{>?YqlZuusWyDR$;=ZY_LqmOkGQ*TQKPc#JzPM?McTgn&-r z^RpB5(U(xrRFwrTH^yq9%#Z-Ts*kSaN-)A_FHW|&7E)!5lt@YXyVpec-k}1((Ii&6 z2|>Xb_Wo6xt1DRXs!A@$T30ge9VmRIJT1-eiF6O3M`L(%<s7T-{sD>-Cj2+9y{h~$ET3cTxk=bwAeId}P<-&ww=@9<;C+YVt{ulOH3 zdOD+AAyT0K{lq0o%45kU_qUukJ8l;G<3YoKcUvlq4;lV^|L(b;bG8Kie1Du9SyYVr zez&yUa*Tm2mu)Z`aBwdpTj|1Ho(bfiHuz1$Nl7p;NZ49*)SLo519+--xr$L!!=P31 zC+RJQJBKojL`wv-R5bee;M75(!KNAbDO(?MI$I}%Bavc}2!TRTuleL08#hZ8;J5;; zkaE#x%K`zlYIUyD+DL?p@IT3SMWa;&jwn8uV{IVmKWrK?=DN4YpYMtlE)qss6j?}M zzF(+F1KLDERs60CC(&qO3#dDn_Qo{MksrNyqFfQUv*`VEyHBK@V5g5e_twgn`@HU+ z?Y!pE10#N$7UBLP+O3R5&&YiEz3^1FBQ8QYlssCSoabFKo9r)4g<*whaB2Oobj%_F zRn`~N7^Y!l0jx+~OygfFS+Zv&S6yj`1%xz#oV@=gg9fp;j|@?3G<4%7i6nZwk|w{` za}kXW4i4sCm+5NVo8!Qsd@5Ji(0t`;igPI(fnY5?H_*9NSuE5A)b%ESz@6t5jClQQ z8i_yHzq-uwJS3bRyU3oZh>Eq{*3Rze_>B2MQvbAAax$8Txc^j`NrRUCN)o1P(vcP?#3UWPkuXT-{5WT&&#+AT3t(J&~ zt3AxikL>Um_Foqf^Ih6su;b~|lTu38kk1&F=<~7@YW^#bV8I~Gj~!e55=exvBYH(t zv>JO+f6J{JZCkI;p{CwC6U~ev=iO78kM*IVT33b zYsKb20iI9mYHAQw1jx(F4;l<*x7dR8?S=jJK#E6^Or>4F!y|WVVA8E%Wp=PNOZPBe zs0hoXv;9<4JDHOAugSKSRzn8r$3dGXqDw~0h`TKF>J`+tQJ(crl`EhmB?{y?Pt;Qk z^D^^oU2~7D0rQ{77+0_+vj@LB9!C0i9gqNf^G#=N$&~|w+?6j)O6lF9;$+0*t&Z_e_>&7?+l2oKXCHnW^3wX1k^aS*=S%&yZRan>&}sYR>l_at z;e#^wV$D{o8zvq7i`C+BT*iZZ6k%^qBHOEd6i)Tu&`vDcwGjsNFaGhp%!kq~AObV* zb-sn_<0z{0`q!}F3M!SVR4R!85`pL&pC7?oU`39IM1-_}Y~8A6$k!l9`aV}2-wFzK z$CQ2jhW2kgCT$mz=}bCZbNUJ?)OZwDe#uyi{{|ya>87*O?o?iOE9)bk{RbyHyw#Z; zgc7IbxB#9fDmtrQ%9kf6tL2Q&&d%D1&$kiT(m$r(oS&VoTvy&zZP|GC;5M+^-O98B zzG6NuLf9gcPo^&KksGUhz!IvvbsaVM+F{#J0^Gno%j9qJC1V7Yhw}OgdH#;poSNH{ z{Ky*xhnJuGzc$xeK801AW6C*u-sSOt_BWaXMr-;b&Tdd|-^0*(w_>lZ8RV8=G`4KF zEEA`<#ipOWSii!A*k5YowaXY|;4?y8gl5g?A+Wu~jU9ayfvwm`%?(Iz&Ru&$gfm%l z8VRh|oL^z0*PQain`=%Qw|PAto<-@4$@>=k+H!1j_>sVrnLdMag64t>Lt0*Ay?Kst z!$w2HozH;hHQ}{_ak05Un)WOj&36TFod)r&#iez?@B1x^ayP~S4>-OfOXFhW-Ki1j zGl3p=z2`$d#)AOkTZJhJ8)929P8>kb#yIgpU$^mrbS3eo`uI{!;kc;DK~fSgvHDX~Xhqb4 zE;fsGNS~FRo$c~2LV#@*vXvlkilgGoYnmMITx!dr)GMGWsPrrV5=g7Xh;`(zVxh_6 zFR{oytO1Z_W0}!c%PNNe;!s>m3jazo9kAR_vX&Z*(`dOZsThU0EA~SuXm)TNARu;3Z?HU39qX0Jo z9zUR*U_rxpTCG;0P?Y5li^cas;@G$AUHtMzu^F?cY|-d~anp_zBe@E%_7&j3?vOLU z&gJoV7w@#Swe`i!OI$R+tD3N0L0__v)S#*e!Nw6Lhf^yDk7^Ld3O(5UDQ^X2sj1I? ze_>p4W9~QmamQG`1YTWpLQoQL%g0TZlovah3KNB0cy*ci_fn+?vW-GT0T#7ei@GkX zMqX^kodPWIJ=9S~y# z(q5`6N@FT%at4Cl73Y5}PD&kF@+z>WJiW*n9v~&Z#^;q5B;OmA zM{Yk494Z(Kcrr+5EO<^3iNuF_;6@_dEZ@YR1tN7vN0z{B%9skRWfBPA4j{Z<0qddf zf3l<;SwguIpMw}oQ{L*&eB2y5Uc*?GR&??$yjlxQIbOuhLK|4tJXcy_iQ(}ElHP$8 z6FhAXiFKy(h)NRaMmC`Z-|&nBF+G-2-o&MvTEX9(a1C@RJ>GqM0S~b3Aug@qFT3~Q z+C<{vVb{P@C%uqOn%jadhYv37Y`#K)^)!l$HAhBX0M`}A>1lvAJG}S22Ot~Y$ zzk`T14gD!$wSrOr6=WF8S%rmI5$=m(3F>d`s6c&#W1$~>5TzQBS`Emu#vTtzcTZs= zmZQ_6p2-=rvBYc6QHCjY%*m5e7%kdiLfhfDheZ8|ag|<5!~8-%;4mSWV(7>u6UV-O zk7cF}H?sic@4)FV_O^Ubxxe#-?VR-i%)N&L;_X@)I1=c(0pIs@=Qlritlsu=8mO{f znG7BiWq$!c=&$=p-1)SMPI$Iwa^)(lWQO zv9dHlGf_DLrkRtwqM{Iz8KNPJBBJ1d_xQa3!TZDW&inby_1n4cbD!(J)^mNoH&1za zY*=f&R!d83!?9o7e$~>_{-mX)b7qYWv|`=XLf7WcyUCD z{-bY03{D!H(ec%JSi1Xy!8x70;Ny3{E&ctNfne#b^;s1xNbmfotRPnTw%f-rnH*7g z*78AOZ#gq^mCGXyFmIq$UE-qq`?nXaoYL9w&GAz0BL-G3d#~!R+1;o0M9=v9y#M=6 zF!gckE0&NS-?+4xYR8lj+N$bn@eC&iqIyBNB-m3hkl6woh!7+P#HJf);?U)}9H| z%;YQw-G~J7#(8+|hp?J6Z(@L`KiHnyI9SO^GfC#_)U$I^kT<0-Sz`6Qwh$kd90bAPKS7!Z9Tdc-{Oo_(d~-Hr z1WP_KF){fV7%i%(u-TGfl6t?{7PGYP4!AknJ-@A@;wx3`K^DrDRGji*V1&k!(Qo*;zNB<+yQ5+60go? ztncdU%@3%93%fpNwBT6BzaDOY&cV5>%()iYe4|J3ch}pt|NGd}uEUBGPf}4&*%TT8 zaFqK%eLmUte>;eZy0y%OL~4!cIh z3w0<-bQee1Q}4ysADOV&v1xG*?s!d1@_t$Ib$a?`G3>>yFj&LW@ezJ&yBJS^zvIr` z7FUiqFfOyN>!8PO=sJ~nK`tKqBUJi?ejb1iaH!z;E@r5Lf!;Dj>I9eHPqqL|(@l$P zIHQXMvojj&CgD9L&9+lh5veNwb*qDdf|Q-E&ea;%J7eI}>BI*4`R4z5A2y|SpuQDG zgDU@-wPNmypqBdM)wtlAGgh8V$i10hvsy8=B^-JJZK|<#yhx+9X)*amn7Y(&xSku| z#HggwQ$1Jb^WExW0t`fVX@*;b@sSvjSKz zo~)N&%Gz2yP(!3g`DfvG1{i@$s`oaYzGL&1K)Gm-B6-erM(LqfQBg4|Tf*bdCO3cq z3-x!ZDlR&jN_Y)v&I~#|(MYWZRU?w-i*;WWjq>-eS62wBJnv*P%Y{8UObhhh@vWtQt*{E1Z) zM2?G%)yEx`SbNGQ+6kaWPhjs>p9=s$Z?QpIvS1A+*_Z7!y2GlzqM|LNCThY`J2r(A z$yr!fNR&E#Y8}D_tW_@ zJWHDFXbRN>&YOI@Gunnjt$!Y=93R6tq^G5&;pznnA&dMvg-j-ctk*&0&gwBPx5}?l z1`Db7L?W@M{nj&>O#3N~8b?oJ*%bW@kH9Kss*C3x$4|yii$qmC5%eXTO4fTAa@j*3 zH9myqpTUHD(~JLOt_+J>Sw(#9I^5b^@No12vkx$X+e9FSg;>qE_?N}&Uka69vcDtw z*za3jUT(s=yPX|D<^CnGe+MQ~4!y@5X6}!U$@#;@D33=2d3RsmP7S&ap2&LC z9j@PVso~(N6f0vnV`JO~jJ?BlLVJ3jA};W3iw|<>0Pk*VzN0$Fb*o*gPY>>;BKYU_ zPi5dPZaANPoZhBh4C_9b_5dlqDofOvl^wRFQ zygTQtXKSuXq22X?=6yp%tGJRYV;>tL3*&XzI>5kqJ~1!G>0)$hrmL2&z;HhJYQoa5 zeymeEe#`CFuugppDRw=>9nP5v@#c%TPos~UT5s{R!stS|u{Q=2Md4X$m zeCPg=2_0XPq4(dXX!6>8w&N4x;^I`g=UDQKb!=+)WYW@?EUi271uk)SN)^$Lri9K2 zz(sPvILEJYh_qdQjK`CF5GFZ_EshaSngMWcP1nvVWh;{;?U8JEmF9)U?n^D362n<& z&Os!u`Q)-C>E2!0;+X>;W&PuEJo65zKPvo|?iJkMZo2&ELVw4Z|DUM*6P3Ry9R2^C znu81^^5@OjCy4r5t{Ok2b%~cnx^ZA-TgbS^XnFT@JFWjD`ln}8Vl2|vx}AaN=R4nU zHL&8fq|jmu!)ZZirCURFd3iYzfp>OtLMh!0f9Oj~7s{#Itx)}aHyKYN3$wDaDk@A( zO-Xo~m$goE(q2lH6c%J_|52y1xtA|mS& z4W$ST3NF}7eEb+1`}g4fI{)%u0LrI~(Xz>dLxF%PB4c^+%b=Tm*yEFCL}&6Y2v$uH zmeBy|nnP{7OeRBiVFTOOP;HHKlo(1(K+l%?7!@==vsf%6NfSv}UtiCUw>Qpt&YU*z zQfxJ&d;e0B%tGESBb)a@+`_+PeOBFMG=oaDhA>@sgg#?pc4Sai=Nn;|$D7)}ZvHuZ z6#4`g4Uq;E{glQ)5=%&lfqub{_rz%4k%Z95nx2GsCWpykeCWO+XEtI$b9)qPIP;{( zWH+r}wzSMh0!O{dnc()5X1Q;(AR{MBA`Ny%bL`04K&d>;F^9AeHO5*1i6&1y>y#hUm*wExaSGOq|!qS4s zkY!ZwCApAwu`WeXuzVG?^7J)JvMI`GpWw%jB9d@8f0jJV5<&$KzT^Zjz=?@a?81W| z{XI*Tp7u4~d4cx9P4^}WH+gJ(J=Zx+d^RzgB;5yQb?guqezr?QXg~#8lMrHM{D2Wf z_N!F8^2?XiAb`LO#+{KIU(|$#U-vy$By4!S5o7-dLVJyYHl9q2Q~UGVp}NWlqa}a% z0BOX{b^^5~uo3U%;{*bMe}P02PGi_$UTonc%_3j1?NGvz$O$N57`XtTARE_E0|_-t zPk%-O0T9xAIGi4gIRB~>_E(8OAP^(8_dMw-9xm(Z(mib^cjuxb; z9iN;GPw1?2t|rF2;cr2YaS{6NVmYHD58#~CS3&BYt=RxdE|x3sz2Fl4$P zK68LBNE?7S0?n;-bkT{%*Dl`WOttNu(dfj41m^kK>FG#m(Jv?#Xu(kN7A|O>U59MZ z>>D#xuc!VHWwqzP3t8Ki_`tKJC%8o;*oi4h%<3F5@flYb4|DE-H1$Sf{0(9kTE0=e zu`0~{r7{64O6XH46zLmarluVmqhQQAq&kR0v9PeY@~vsUIBM6lv2EpA0eI) zUdJDpbj|R}2uAQ#wp=J3_c!Z@O6Po!micIqR{uuX6%`cvgVm{zgr9VewD**}*w_aL zM`LOCt4-XDGKngG6Qc!+p!@zEcJEH&uZESjj9XrV-g77&jb^JyLc>T+f`BS0J;a=T z!(aocC#KY{wWBj4QH-pOHk$;2*R(~?l{k(@Q_fY{AkI6Kko+pU6{C;5%4JJU#oG_u zQy!Qsvp+RI(g?8*$_Qs7Q6t{DrJqJfs8gjs1h(B4_ws>&9RRV4IKY6-1KZIoEIhmI z2bqR&qIuMU(KCd!s68|cc=ylUdf;??!jye>2bK2#Vg z!qhrl*y^FW!A7Out|_ns`GNmkQDwMEck_P@HCkR9gBZ++*bQEVZ|#(?_q3jWfE)OW zoUpr(2BmpbncWxD{ek)P{)_|4NweHz3blv7kDz0dheWy?7g$ynRL)-qFc=V!V9k}W q*BCDbk)HKDaM6ADA7!D{Fu0`U>iQ1bLlD8PbD?*b- z5KGk(LZwQChFW5aAhsYpcfZff`}Z^R&O7tGGrv2NnUhR%pL3t{IiGWVuIqYz*UE(N znCLM!Ha0%f+qdqqv9V9Ev2i>&!U24v-ucmljZFz;dh7cAr+Kt-8lqfVj2^hj9OJ7o ze`xmi74YwS;8gt~#p`BoPt_c{^oWp@*NuU4oY#Go<-=;O{v~>vGah$7ex-jtWYkyV zD4XH?1I7|?`-YPPY=wgCd~9a_UpH9(FX*2Zcc56KW-UBYw_h&C4g`XbXT$S7NYgLa zV!3<{g@8bz&L+)T{R}PkX#D~*3PMIH;JbO)+4z1PnUgUcR14i7L_w$&cDC=L>`mi- z2;9%mCJH@6<`O>0DpG`P|Dlu2A+}=Mg+JMJD0V1x994x$)coK-4aL5PWfC;7m~;{f zl2c-29il`LY=K2O5107s;gKIN8dslUJJe)oXb198Vs#sM+M~w(rra9J%coYeL!9H+ zvtslMbh2V}CCDhn#E%yfSulE(dmZTnkxl5IrlhGT{oDr@=`xl?1-ym#Z$ET(b#>Q| z$g2p%@j%R;0)Bc8hr=OU599x-i;5wmI;T`%HOJU^?~Oli9`~a%v{py)7xXe@Nc63Q z_VbNz4Ylzzbf^yVB(dZ-eQS-rIizOEpAe^*%1UG~d)4o-nOl!P*O1m5R2!#3k?7Xh zGBBD8es?(3Ra?&Vu}jdPmTCIOiyFC>Yvfg$@~=y&^XpgWlIWLg19$ulb9XJ%W#*Sg zzFZUMia5RWu$d6zNB%Wk*8SMTT5#6oTY33j_2zCfr2Ty|SB+p3J0zo4)i8r%v9x&M zcxjz8ET<$IaS9boVn$Ler#DlhXV_zF*Eg^8|9;}Fx(dZ=eXt+ic-WjfgNE#GY@CL* z&wb=go z_-yiI@>WgU&AmWTw!&w>W36Ch6oUQ9XoqS4Io<9Qd#E2lV@vh|%Ye=G-z&PBqot_q zxVNehQft0$yp)K++ISsMJoX|^+#{*oc- zGTGVl6bk}*Kr_O3M(ep*y#`<5mtWWQb~O>pAdZnOqM~LS4@!yiUZIfuga31}*`HSw zoo4*ZsUv@o3RA*g9+uhGKn<^1s%~?JVw@x#ULqCR50Ch2ASA^@?|a#6e3e2tP6e`` zJqVeoWv5B%-Z?tg^>|M~bRcf%k|nXV$T#4;J)H0Rq7?VAleci5yQ6Oxu6Ez{F#a>IM`8rO(a5~(%IFD&-gophU#z~2A)RUUHt$3D6A-s$| zaMs5_!}E7}YANYd=ER`XwRs?YEsZTXwn@of#hnSV`|kUOFymBhSE{Y$b6Gyh^^=y! zWXNkLC1H$6W*s{8Ve%7w~V z_zBy$L*CeNB^NHt9zp0$Wf4pd%F#e~%sJS6!sHX8dIMuyi!4QyvG%r3(0pY{cDp+P z7v^-N^KJ0lcJ45hyx4qKLNmc$Lv;hFN=Yt-pdClbP&_j=_l6(mc4I zsRg|+kP04e3Y`9SmiAcT)But-v?UR)F>!6#UGHeU>5RsF6nQVsr!0ND1ayij=XHNL zy!UwYt)b}nOb%`R(H)07S@`0;)31hUP#?;yuXk?aBuAc=95%k2U6G#)hk3HIF+JMH zKi6tosxUZh+|a&1m|azSTd`muD*tY>5yz;~`2jikYuEzsAdhyMJ}HE+5?}wfzj%s4 zd3qQ0o_n>C6t6ALwHgG+@7N(GoMuG@5M-MPn1chl?!^~UU>`U6f?)j~H1L{Pg@ z5TETYa9s=YOVkZUxPuBDa-EyQ;d7en>YsLktEJCsoKKMHGtylevhN8rZX z_VZS4<>gDb_PC~L<e>O7vlie6*tUlNo0jyqLCP&2mhuzn7LXA?A(@v7M!pu<$ zFc|Ffu+PKWF%*s0N4=>^m0b(!a)r`5kQt#P^`dLKl8t;H=;#1XMM?6mZt0n%L-jUX z!8gr_YFoQaU{NY>VV#ZAex>e}Z;*e(^LFrNim$dpBrxga%TwOGa{)<(!2?O> zgq0yH#PE3pR_tnO)R&8i+j@Fhg;S0Q^YP+AwKsaV5dL{K_)d)iFQIl)Ci88Jl@`Kk z60EeQOUEu<(0RdmmP7#W=fy7T04d?MdN94K`ixW2Q~vS>{xA0oQ%C>AmHHA)&9=3Z z8ELmdK9T}OXJ?Pdwe7`S-rub2^As>JTlX?H>_lrLT8GKB%^=JeeQTGsyhS?fU>qc` z73pOKJY!V8eR6Hssh449=ZZMzeR+T1__Nia6KT>cxGg0e5YVUmx8r1o|L%4pot-8V zx;O~TV^NcfaKevp z$h8_JD?^iJRo&yGII)qj1zMC{?|#0}fWS-Mgl?YK`?c3bei&fjsSasIiIa!cp|^Xh zetTZNMdXfdatXsCdY4=HQ)6(*_TD@02Rh;LWBmiI>UA;(JhZcX=pV_Q?LL+t526I$et^`lK~eK+j=FuxT0OE?HHUF4CW5aA-RY1(iOghxy$BVxlQ>{O0cLI z6acO1qR)dspoc4%%16)A0;mj$`$`Bj#r%;YvtDpA6o?I7tnC+*KB;zj=Rz!`URZm zOIjH>ZX;1T^2qI0b&QNT?X1WEfNX<0yWwx61{3qORbQYSo7#!IBFGqNWbU2c56-|Y z$1gnySsqNG|JfF4Ad^*4NjHB@c$lnhjn`cH0_*sVKY@`lKkWt+PN;l3net*K$~0{W zw%XaE7#YxasatxJFfsdO=Vg#GsJ!$+S<+33&9%-RIk5}T2Cfte1*I6EDejx`&u1TI zU^mn9xS%1_BsoW6tah6=^(%fh7zCo@+QX z-fH%zH%o1yaK!|p;1X(A=VHijnmK*v}NR?c<5R0wTz2L<_=03r1pER)b=~KstbI% zxEi9l!@_%gp(-5LwzZ`=BVZN50hbrLOFtX9Jz-Ae^rv+^kSUD$D5;}2k}G2MUCq)B zHJBIYLrTA;WN`JE8%%?Xs%zhPfAN7%As;mlkED7ucgg96ZQc!2s$zUiEZ}dr1NShp z_C=FB!H=R_047b z87BPYyJBO0XcWXUbJHLC#X7nmWQ`Sne0LN^PR>I=8hVVl}Q z7Gnkpt9!BV;359y)T1WjMeyp9t`JNZAYD~>&{M=z-GmS*o`vt#RsD0E~J?_Qy#Opr;}MC zsWP~a3|~UHg_GB=-K@W>m;H8l^1nSuXVpFYqx-2`cf5yParfHvXI|ZQo1o1bh1~7o zUem$2@5?ii z>CpPU3TYmJ@Dcuq5K#EXOiqXWL40+J79>o&n!7+kKFp?9DZ3_1-EP!KSGADVpHn8D zs<|+IwfzeYoI`_RNxo~k*QEbVVsQVj&(6iPu8 z0javOmhr7ZgYiw3m_emKV0J}x^U)OUv!Tf7QTt5#R^&E^ALTd?eQl)&3cqq<0D1HT z@%eJ&VEW!>wO&Z5yN-8F+G)2h<%4op_EcVb2OQq)0Ah!C?!Ctq_ekQ;C-&7`j#t*i z+?toExX8=mQN&H;s2TPhbp0yWt6*aWVn zh?LH$-Q7qE%rxB{M*$e8t)?9&Q)EO~Qc_a>-F2nTeezH3;AZdrQ~Jl;`NYMEo;0XV zB)dTk-F5`;V>>FVS9};k<^bo6+S1~3jI280jPfxNdpHD5#?JsS)j;%{a(bolB+-It zh2uq@CSvZb@x>KsE}{AuQD`#4suUozD$S{Ag)iDcEe9-^f%tL6FpCqP1q@E#EB4JL z%xf`f^Gkw8B@t>x1bB{Rs1C+t`un_ZJ3%2%Hn$}xuIt4i(bP$yIg5-fB*6?@D0is7 z@=MS_TU<&*i^;TzD|K+%kKq%uH&320l*Cx}@⪼Hp7*APEwqE-0m>K=KcYnc~#1u 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 diff --git a/tests/ragger/snapshots/flex/test_eip712_advanced_filtering_verbose/00007.png b/tests/ragger/snapshots/flex/test_eip712_advanced_filtering_verbose/00007.png index e96f427376a35a5ec476f06dbfb842b7d3bdb1a0..d8be8494b93ead8997af09be2d7ecdc28f4e3d9a 100644 GIT binary patch literal 12569 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 diff --git a/tests/ragger/snapshots/flex/test_eip712_advanced_filtering_verbose/00008.png b/tests/ragger/snapshots/flex/test_eip712_advanced_filtering_verbose/00008.png index 131edd1c18d18d4b3ec2ef1d75382fcf85635538..fe777571f93793b8e6505541918323925148d460 100644 GIT binary patch literal 5485 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 literal 12361 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%0AS*+R+#SrBV*1wg)XG~6@Rv_ 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 diff --git a/tests/ragger/snapshots/flex/test_eip712_advanced_filtering_verbose/00010.png b/tests/ragger/snapshots/flex/test_eip712_advanced_filtering_verbose/00010.png index 64ae31d482d1520fce12e86211dce885afc0a11e..e1e50fd4e3823920437cea596aa0cab1017be09b 100644 GIT binary patch literal 6821 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

j1Av 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 Y>1%h4rh9>Ebdaf$4&06kW9d;kCd diff --git a/tests/ragger/snapshots/flex/test_eip712_advanced_filtering_verbose/00011.png b/tests/ragger/snapshots/flex/test_eip712_advanced_filtering_verbose/00011.png index cbaa889017a3921bf11ec2717005e2897f59a30c..462b9d606bb806b48a9aed52318ea8641ae3fdc3 100644 GIT binary patch literal 12692 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 I_R|;t2c{}&>i_@% literal 9417 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 diff --git a/tests/ragger/snapshots/flex/test_eip712_advanced_filtering_verbose/00013.png b/tests/ragger/snapshots/flex/test_eip712_advanced_filtering_verbose/00013.png new file mode 100644 index 0000000000000000000000000000000000000000..8b981d44ccb87c00bd8e735f53c91f5b445bd6b1 GIT binary patch literal 6132 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 literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering/00002.png b/tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering/00002.png index 40d12d21e316df29b07dcd809b8a0b0f54017df0..9379125410ed43a1cdc15167d043c2cdc5261119 100644 GIT binary patch delta 718 zcmV;<0x|u|1?B~iB!8_*L_t(|ob8)iZp0uAMQJrVVgE~FFa3ywBEMoB50K`buMXki z*apH)S_%LF00000)A?C#fJ$qvlu~Q$f0LiJ)^i=B`Of^VHb8~AzH|0$t+l(jwZ<#& z&u6s(w;)rYu*4@*XG8X#0R-EF{pxv6T(;VQ#{}TNvULFXHh=Jxt<}%g0eAzu2Y@HL zmi~RZJn>lw00000;BC0n(4pf`YmG=Tnp$}-CqIj#fOfP(QT*YB+%Q8m;H^C zj6~-O)E67_^DQs2>)R$7b(|LVOZJU>`ZtKEp*!BzTS-Ek=UB zFc}J%wr-U1JAd~y6o)g;;aQm!34r}7sv}MmquSB!Sy(Pg#%Y1ne5Z+ev~gMS#T1gp?WE}V=Qd=>8AYc*6< z`-*uI5!>3&WX_|tXnwZ^>aN%>#xOW3UmJvht8d9*uuEc6ZIW1qVR57u^pBB!e^|xj~XY|I55)KclM;8kV zSwotYbAOau0T6|wKtDqpdpd^jIe{(Y=(S7}K1Eysa3-esPF&L_#r{Rz)GuoCLeG}q z#~v|j6aWAK0Dw2J>_6rGXDCzrFCNJ)*c2)<@k%eLQR(;3i9#Lq@G%{36Y#7B?vVyp~+CZ^hJbj)RIB~OEmW`Iam zhOU)74fYBE$$jy&QA0WneCr9>5&!@I006v^KjQ`ScDu-|VgLXD07*qoM6N<$g31L| AJOBUy delta 691 zcmV;k0!;np1srKk|zMt zvnuLDF{&Niwtt#(mA?$+$ak`<(JyOwT8s*3Rq;psAaf_1X7|j3WpTGHfti8#-w4|S z?hrVy!%Yh8Q>71p91K}-x}9p&P*#&`#ZjUTI=j!GSGHpACE%h8n&CdtZgxc3l%bR9 z{beYwruP@a7-Yg#D3c2(GX`Hpy7yWQRn@*?-bB>4_J5fSyjrUU7$zAdphk=LZ`BhniV+8tpKRPk)xlfjXfMg_*}pv9Xzjc<2mhCF*CRBhA$j zxxkO|d}Ib-B&OPHw9jR^lBdCgW`IgmhUQA11}x7CK$rXKXQPI6>iE`^vLzve5JCuf ZBYzOl*p=49?GXR~002ovPDHLkV1k_wPZt0H diff --git a/tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering/00003.png b/tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering/00003.png index 13f8255b9eb29c2f71a7a4faedf9de25dfe97efe..953bdd22998546c3e665ea35e8b638636787f84f 100644 GIT binary patch delta 345 zcmV-f0jB=Y0`vlqB!4?eL_t(|obB0L4#FT1g<&-Ag#9mxz4*{%f>17@wsWfg_hg7| z$QhVg3;_TD0Jz-4djbO~CHov>T)xBFwHJ7KPoPIUyRVQgz^-~vq?BTeHf{yWzbWhK zJ%O=2N81w?y^R+e%X*G&~E2xb&r{w46kw_y#po#svp$hvj)n`T)F@=|83Rz z_J1|0DGT5-<5JeYjQL<^Vv`Ns?%?2t6F63ztGBr3A r@d5w<0000000000000000H=8aHu2z--U%Mk00000NkvXXu0mjfOEIB` delta 309 zcmeyubb)DtO1-$Ji(^Q|oVPb}`3@=YG(61O!};Al==~#pp-Tsz+4XEW`u%5XvCpMG zrY;5`sP_&Hy;?28H}4*^fMDjr`O}&$e%4j;Crn>8EhuY7)Z%Tod1r^`tbb>Dck!Ft zxIgI*-_>sQo0e_6c=y^q+drJQ_ipvp+;?$02j>dCqe(p#6RPTqoTms)F>i`5n#Z`! zr2lB`d5iEn+9z`ry(Z|Mn!YP%-J-`$9~b_q8F7>l|1BCycJkhAGw`zj=wM73Gaggtjz>k^cpT5s;ZeHVe2_)+2>gTe~DWM4f D*e{E4 diff --git a/tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering/00004.png b/tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering/00004.png index b79b3d7e67262363d3fdfa3757e9b92eda1e06ec..5e15c3b8d24f3b66d9442e03d2b5214a1b4503fe 100644 GIT binary patch delta 375 zcmV--0f_#B29X1hBYy!{NklK4i4KmYpJ!Wq0nz$ zG4fvX6?pE27FM5E->9;-v6knoZThploTV56!%MY1M`L3eet&H9T>stcIw?Bfm@Y&_ z%?ADEBCprxkR*5Mj8o7s8r!&&pqg_w_wtlt8ERuHXWWF z+4W*8;2hQk2DPlTtI0)K)V_728fsq*u!Vuy6R&DtZ>|qGJ84L9BIA>=zrYJWtQOQJ z4Lf@bpIwJXxNz?4xk*usQ#P;1%~D-*OhLf{I^bC9wCh)G-i_{n3}ab-y>k%zA47j@ z8UFp?;Ex}bA^ndx4Vm=a45B7|XY@fNW}!&jha(X$0000000000000000001RnI9?K V5PUH=!|eb7002ovPDHLkV1lW6tPubJ delta 747 zcmV6N7a@cYLI@$#`C0A28^>{omQspiY5n>^{H}K3jWeKM6I_J75@2y%8EsZX zw(4u>N@pp>Il@~0t#%-$4zXCH)UTx!VSMIbj<;EMPe8jXSbzIO9q!gok-Kc6w1`_kA=LP~P1~y;#p#=} zY)`7MMIAA8FF{@3hc;@9ID&c{a1_6wn^{59JiVqOY|+)W^Kk>G4#J=R2JM)q7_JPr0Zr+~WubE|;vW!r}>e zW3d_PMh zI?GWUeRbh3an$!PJcYK>P7Q(L=#h^4h{&iZ=@BvL*ej8tc!dybgc;YrF*C;`aI69VcjmeLmvhs&tKvKCj`j&0+;+vGek&Yx4)S5RoO zb{Zr)>VGB?_Hw*E=S|;oA1A=l{5rHiF@w6rXQX4wJur6NnRAE}U};J7)yEWb+*7AQ zYPd(1AZx$1Zjc-eQZ++b5ch;Qsq2@ZyE=v$7aCWGSzO?y$86|`e dLI@!w=0CHbHG!#^M8p69002ovPDHLkV1lxQXAb}X diff --git a/tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering_verbose/00007.png b/tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering_verbose/00007.png index 2191773cc1207ef058246a23188ceca2342bc2d8..17f59fdc15e73ac233400edf086326e77110e966 100644 GIT binary patch delta 713 zcmV;)0yh1t1mFdbBYy&?Nkl)|d9vFtF z@%xavX=TlMn)G+1RST)n^7eh-;@Bs5zXN%yJUd+7jQLgxpS>DwuLBo@rHC%s>$$0c zSmATdxK9&MO(Tx%)umuVQ?T37*e&1AR57uEFAH*O{i!=3)BD4m7K=?Pql<-wtS-%p z9OY30pnq@_u+z1$562NcC$NPay_RXhCxl7>S(xyhcuSjv_MvXdi<-8PSrT~s5l4+8 zgb+dq@fTS3f5QBp%RZa)3dF7Cxn%3N7mV5i#ig)5>I@xh$ss1VvJTmmikZuMC82>PsNqgfZN!w zp>OQ~%EWwm@6+6+!W5No9}Ut6mN6yaiCpOFI2ryG?27ec2Y;8EzKWGq}+fnl0hqz_Y z%(3qr^+g`J8z_aDBouc900000045OsNI&oRLP$EWJny)VWe2mCFmkQ5+wm~A1Xwtp z)H-PO6g2^8|8Y;5<6$%_Ks>PA?RXMR0d^nvTDB-M diff --git a/tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering_verbose/00008.png b/tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering_verbose/00008.png index 394eff681fe2041a832ef43e8911ba6509e32a51..b8ab0408bb114ac90a16f027bae5bbab1be83187 100644 GIT binary patch delta 313 zcmV-90mlBt1=9kMBYy!JNkloHz`EqE>DuJ?Bd? z*TCf=G1CM90Hl;sO3}3#=R3Lr|J~1k?^s6kJkP~xKGN5#)xhc`}0=KFH3nm~88HJ|E`O}`Ye;8o(Mj7b2^ZD@ zt;M0!wXvB;y-5cQdI;xOdmwD3Pti9jwHPR00000000000PvV!p?J6V%QpBJ00000 LNkvXXu0mjfo`jP3 delta 686 zcmV;f0#W_b0>uT8BYy&nNkl>Y4uIVBk4poGCE<%I>oN%wLI@#*90zm^z0P^yA%8FDTxuE(@73hb)IMw4 zh3b)17D~g6v#hjDwNn}vb1W_cfVX^EUu{_FIckYr-!{pp16o)f*)NXtZ}8Ktp$=K% zT+Jz@tz*PhTrb#~86gwg699=CiDLTw5gxGCzLCb?9BHTyXGk4UGszPG=~)$Zp%~S! zZc9zM%Xb6W@_(J|O1e)?Dyp@1A=pnLW(7Rt$!r?UnF*W4RaydP2Ht-mEC)Oxa9xL+ z6xgRq9RN8Pvf)&js?|_dlY7Ngq7FKm=kGgPGII&Ise)#>Pqc>}Q4Xc)WO{!ZimU1U z$uI^h;V!h2j*}UKSCQ`RtD&mem&}`p+SWdkfmdtQ0Dr?IqXg7w@&0Yw{K%8LT>*S_ ze;TfC`fRI&&rywb)PRd%DPlidV51eF5;a5DN}dLL1)!Sy>L+KThIH!q)|0X&A%qY@2>Flv0^2j? U7;zqwhX4Qo07*qoM6N<$g8e{5PXGV_ diff --git a/tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering_verbose/00009.png b/tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering_verbose/00009.png index 139d265572a5c3abfba0a635ee794e642b847283..2f7c57461a154332710f316ee949af5ea4c6dbdc 100644 GIT binary patch delta 797 zcmV+&1LFL_0<#8?BYy(=NkluIsw4>vR;7JyHE$?cklseGh+@j$TuLe<-E2jrUh=U)$Tt z)xM>aU<9vY*JwLu%-TDkUQ#Kg&AzC_jrmn{{QP7M^e%FWjDIF3!D`mt0Rla<^!4im zO}cC6csknt)pBbA1{j-(UedSCYn9XcEx%3&Fom9{FI?pbA%qZ{d=o}~mX(Q zP@w3hp?EiMJ5+FH7Ja?-p&hd-Mf0VauXlF=%;@Yvvk6<*uSc&v06z??qoKvtMu%clrD;(r0i0*Ic-a%tL(-L3e}F*B?V zSo=k6Jnp`xeNq@|up4lb%icW9eBgx>b@113kb5@`@ z#_GaT;%FRUdI{#MUAPOBK#vU6M?^;Lk{)q0B)pW^UL1zCyA<>!eEs_xW!i3zP(OFg zi<#3I7=K6(>{xWaUW#^%hU*OWolzs<3Ru72Q!cKD$ls6XW7JRlkBlleg0# z*)cbXv{w-AJ#WUA`@8_2<~N`PiWxL4J|i8w!UJe~xBPyqa-4xT4dm2}Y?kB{)8KWc*l z=Q?3$_=&{~y9?lnl;9-Q*?+JeM>gKw1(*>jU#Pjx^OhwD6gUS|##q|?zKRk;2qA?T7Ps7Et_jfyvI`9VWlXpEMrXcb)Wwu zw$qvZetXjdu-{w@b0-X7E@um1uG>G(7r=DJ04Dl=n9-f`s{R447FqQVvr%f*KbQb@o&$?Tvwj}ZGWpza4(|cIFh%zxZT_ibgZ?>4~mGs zl48r%mOlaUR>N~Lj)!pOhT}I_I>u&=j`tiCPhq{oIm@4bnty>R(^0dx*EQblxPJ!n zNr0}hfqU+jXD#U4>e_C{B&-8H6M|EH_4s4&xIaTatDu+?%b1{pqB}PF>IQMjv2+X* z&m}(6#rp!L{kXHQxA-xv^91CzpCp6P=EahV7Ny;|*o-6L zS!cjtJlUWcWTL-KA=E^FGjiaGQOFbXu%|BxuW`+XC1$oB-w=P!bw&c5kpO2Tz!?d^ pc`QQ#0000000000002PO4NB_ZxMv<66)-$1Zl0 z)9(PC&2mKdsJG+90_3#n?qAEYuzasBLM?fLe__~drReEve zHd*Qq)i+{#48vX(QkQRG!`G2=|^Ol!#4!~k=tv{64%!K>I~(YTR>8`=BtCa2HTbGPA!7Bh}3QVpxNnuzw5fBuFxAFcqENSPd2PLoKi- zg*pK_ileVCJSC3$5r!W@pR}7?pg4M@qdp=sYLoPcn<3$a`1ay3tlfp6C*kY&FD%1x z^9uQO)4CWroq^#wVq!-mO>sg6KsrwdsJGOVzR(>mqYBGXT+tKt;IrH0Ix)^)Q~50@ zG}U$*B!4^RCK1kZqP^EmU%QVBP}BT6v_P?fy2WQ?VpDiv?z$`I5Er1PC9PK6r2HVI*=5PbDJ4e=C4>+{2qBp^HS}4;lUyip z`X@Ls2&%SyBJL+p6DdJ~vo@mTNyiLyHyz@+MvKWPuS`H#$trk1*nOX;3C!8f3O}~Hr~|*7!fHC)Lh3or3HZkXNSt@OPilp hQ9=kIgb+ev{sZDBLfVqynKb|a002ovPDHLkV1o4jX$t@V diff --git a/tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering_verbose/00011.png b/tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering_verbose/00011.png index 53ae65195fbea5b281a1bc1a80351dbf1cd79ff8..6a53a258ee048cee9bcbc0f476b5de58e9a60edb 100644 GIT binary patch delta 784 zcmV+r1MmFo0;UF#BYy(zNklAcf$Uc`yl6BH{Kul`K7(iT)8&q zY*;84meWY5ntkyr&HgNw&wz3RIp;bMJSf^na$))lZnNv!nty1jZq&Z&x#tMWX8?hZ zI37(N?(XgkQ-`dIyA#mC#9>&QIwS!*HsKl`&ANrJQHwgY8@H`LX-@*mUGdf5*h0yL zg9BDHHPJqJRlc5fU=*W{1ONa4j;65*dn#f>W8soZ#|}vzl|@s$J56P>y)s%#d+2_- zs{uS>fLK8r7k@^}?OK^>_Tp48JYI!vq3M9(PfUs^BdZ=_ed!ftPSP^M$ei2BV_J}Z z)^j`yqrDsr8Yeyz-8)1q0V6%7|FLjR?fMSMoU^TYd=Oh~ z)3ol5=S-~^Lzr}0GyFI7ORdDT7gpotk4IuNUQad|A2c?d37F`X9k1pL>lRsyg^tT7 z5-vlH5!X~eZG|#9%22WJCD$6KiEECy+k2$eO@C!500000z&movA2fJD>1jz)!PgW- zQ6o~CnkYHoUpY-RFW=88e^Z?}7+-7DpOOF#?X^khnR8HEUCQYRs4-Ugj>Y7VtnB`y zc8GN`Iwbn(oCHkV5B>7}37lJoCdUSlbYYU4DlN@A6#xJL004kD=NI@iQE*NFkgNaz O00{s|MNUMnLSTZsb9X}k delta 338 zcmZ3+_J(PKay_H5r;B4q#hkY{1NoX21Y9p>UY@(*zv{;6brS>*F|6(VX!vd3da<<& z^B=9qU}Jy-2Oi7kb2e9rvD;h~wg_JHqWibVf@SlAE}eTaA%S&9>5K(0qjxZg#PU8` zmj93|KzZH5cE9^)M~7n-)t{3<=8ie>+8oon0PpNyWrkCjvT zMxtbB8QYe#xAuFdW!B#8PE+2e{B}aMYM!HMcWH4vf0_Ghy*;mO%U?L%mTW7!zT}Je gLwk2dxaSM<^Z(2}wxaN_tR+ay)78&qol`;+0F?5dJOBUy diff --git a/tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering_verbose/00012.png b/tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering_verbose/00012.png index 657887225857cf48be8a8daed2cb3e89d4b29ece..53ae65195fbea5b281a1bc1a80351dbf1cd79ff8 100644 GIT binary patch delta 337 zcmey%^oD7IO1-hCi(^Q|oVPav`I;33TrXx`p1a|{>c;7H69f)1tnK}1_-)>Lv9$~H zAFaq>V}Jt(9?R!*Hdl$U+gug42wwA|`?tt~W%GkBoqIANfptddj0G>FcQA>>@;+LY z|Bx#{dELTxzx!w8UUB|8RK5@-XT0FWqrTby92V4D?=0B<=bPcZg8%A^GEXe2pXqpI zNxfm#0vGY1M^mM%nfq(KJ+E!cUpU>CY%99Hzj4-;J5hht#0pj z^#9@1sLK;CE54XuefJROGCRgZUbWXBk9~WeThLU0Q`4iWuO>iVr1K`D#hTWitG2LJbl{xH#~Rq+?=K-+vfC})E&6F z@5lAeSDtRMVcZx!aqGa5zhIs*He8&r_HtpZV5M#|^ ydh?e5zlAMgw-$Yhy2~hY*m8O9PiA<4-2TmASuS-mz3kmhkeH{dpUXO@geCz0VyPMc diff --git a/tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering_verbose/00013.png b/tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering_verbose/00013.png new file mode 100644 index 0000000000000000000000000000000000000000..657887225857cf48be8a8daed2cb3e89d4b29ece GIT binary patch literal 381 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9dba4!+nDh2#G~Xcw0f)e( zJDk7cg{nU`wU4`s1;0 z?{f>9Zfbf|_00eLCwPudd#p2Mzfg8-=Z~Y&(Z3(6-dSPln_e}2 z&8bJe=5=w3_V0Wxpw!uqXV@ zTyg#0l&4R7|Ayyoo}1J3WZRs6lez;p_x-s3`O4ERHjEo5Zk@S4@1z`Oka)v{pj(C~ z>TB;CrkB0D2@>;k^>bP0l+XkKqsFS~ literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanox/test_eip712_advanced_filtering/00002.png b/tests/ragger/snapshots/nanox/test_eip712_advanced_filtering/00002.png index 40d12d21e316df29b07dcd809b8a0b0f54017df0..9379125410ed43a1cdc15167d043c2cdc5261119 100644 GIT binary patch delta 718 zcmV;<0x|u|1?B~iB!8_*L_t(|ob8)iZp0uAMQJrVVgE~FFa3ywBEMoB50K`buMXki z*apH)S_%LF00000)A?C#fJ$qvlu~Q$f0LiJ)^i=B`Of^VHb8~AzH|0$t+l(jwZ<#& z&u6s(w;)rYu*4@*XG8X#0R-EF{pxv6T(;VQ#{}TNvULFXHh=Jxt<}%g0eAzu2Y@HL zmi~RZJn>lw00000;BC0n(4pf`YmG=Tnp$}-CqIj#fOfP(QT*YB+%Q8m;H^C zj6~-O)E67_^DQs2>)R$7b(|LVOZJU>`ZtKEp*!BzTS-Ek=UB zFc}J%wr-U1JAd~y6o)g;;aQm!34r}7sv}MmquSB!Sy(Pg#%Y1ne5Z+ev~gMS#T1gp?WE}V=Qd=>8AYc*6< z`-*uI5!>3&WX_|tXnwZ^>aN%>#xOW3UmJvht8d9*uuEc6ZIW1qVR57u^pBB!e^|xj~XY|I55)KclM;8kV zSwotYbAOau0T6|wKtDqpdpd^jIe{(Y=(S7}K1Eysa3-esPF&L_#r{Rz)GuoCLeG}q z#~v|j6aWAK0Dw2J>_6rGXDCzrFCNJ)*c2)<@k%eLQR(;3i9#Lq@G%{36Y#7B?vVyp~+CZ^hJbj)RIB~OEmW`Iam zhOU)74fYBE$$jy&QA0WneCr9>5&!@I006v^KjQ`ScDu-|VgLXD07*qoM6N<$g31L| AJOBUy delta 691 zcmV;k0!;np1srKk|zMt zvnuLDF{&Niwtt#(mA?$+$ak`<(JyOwT8s*3Rq;psAaf_1X7|j3WpTGHfti8#-w4|S z?hrVy!%Yh8Q>71p91K}-x}9p&P*#&`#ZjUTI=j!GSGHpACE%h8n&CdtZgxc3l%bR9 z{beYwruP@a7-Yg#D3c2(GX`Hpy7yWQRn@*?-bB>4_J5fSyjrUU7$zAdphk=LZ`BhniV+8tpKRPk)xlfjXfMg_*}pv9Xzjc<2mhCF*CRBhA$j zxxkO|d}Ib-B&OPHw9jR^lBdCgW`IgmhUQA11}x7CK$rXKXQPI6>iE`^vLzve5JCuf ZBYzOl*p=49?GXR~002ovPDHLkV1k_wPZt0H diff --git a/tests/ragger/snapshots/nanox/test_eip712_advanced_filtering/00003.png b/tests/ragger/snapshots/nanox/test_eip712_advanced_filtering/00003.png index 13f8255b9eb29c2f71a7a4faedf9de25dfe97efe..953bdd22998546c3e665ea35e8b638636787f84f 100644 GIT binary patch delta 345 zcmV-f0jB=Y0`vlqB!4?eL_t(|obB0L4#FT1g<&-Ag#9mxz4*{%f>17@wsWfg_hg7| z$QhVg3;_TD0Jz-4djbO~CHov>T)xBFwHJ7KPoPIUyRVQgz^-~vq?BTeHf{yWzbWhK zJ%O=2N81w?y^R+e%X*G&~E2xb&r{w46kw_y#po#svp$hvj)n`T)F@=|83Rz z_J1|0DGT5-<5JeYjQL<^Vv`Ns?%?2t6F63ztGBr3A r@d5w<0000000000000000H=8aHu2z--U%Mk00000NkvXXu0mjfOEIB` delta 309 zcmeyubb)DtO1-$Ji(^Q|oVPb}`3@=YG(61O!};Al==~#pp-Tsz+4XEW`u%5XvCpMG zrY;5`sP_&Hy;?28H}4*^fMDjr`O}&$e%4j;Crn>8EhuY7)Z%Tod1r^`tbb>Dck!Ft zxIgI*-_>sQo0e_6c=y^q+drJQ_ipvp+;?$02j>dCqe(p#6RPTqoTms)F>i`5n#Z`! zr2lB`d5iEn+9z`ry(Z|Mn!YP%-J-`$9~b_q8F7>l|1BCycJkhAGw`zj=wM73Gaggtjz>k^cpT5s;ZeHVe2_)+2>gTe~DWM4f D*e{E4 diff --git a/tests/ragger/snapshots/nanox/test_eip712_advanced_filtering/00004.png b/tests/ragger/snapshots/nanox/test_eip712_advanced_filtering/00004.png index b79b3d7e67262363d3fdfa3757e9b92eda1e06ec..5e15c3b8d24f3b66d9442e03d2b5214a1b4503fe 100644 GIT binary patch delta 375 zcmV--0f_#B29X1hBYy!{NklK4i4KmYpJ!Wq0nz$ zG4fvX6?pE27FM5E->9;-v6knoZThploTV56!%MY1M`L3eet&H9T>stcIw?Bfm@Y&_ z%?ADEBCprxkR*5Mj8o7s8r!&&pqg_w_wtlt8ERuHXWWF z+4W*8;2hQk2DPlTtI0)K)V_728fsq*u!Vuy6R&DtZ>|qGJ84L9BIA>=zrYJWtQOQJ z4Lf@bpIwJXxNz?4xk*usQ#P;1%~D-*OhLf{I^bC9wCh)G-i_{n3}ab-y>k%zA47j@ z8UFp?;Ex}bA^ndx4Vm=a45B7|XY@fNW}!&jha(X$0000000000000000001RnI9?K V5PUH=!|eb7002ovPDHLkV1lW6tPubJ delta 747 zcmV6N7a@cYLI@$#`C0A28^>{omQspiY5n>^{H}K3jWeKM6I_J75@2y%8EsZX zw(4u>N@pp>Il@~0t#%-$4zXCH)UTx!VSMIbj<;EMPe8jXSbzIO9q!gok-Kc6w1`_kA=LP~P1~y;#p#=} zY)`7MMIAA8FF{@3hc;@9ID&c{a1_6wn^{59JiVqOY|+)W^Kk>G4#J=R2JM)q7_JPr0Zr+~WubE|;vW!r}>e zW3d_PMh zI?GWUeRbh3an$!PJcYK>P7Q(L=#h^4h{&iZ=@BvL*ej8tc!dybgc;YrF*C;`aI69VcjmeLmvhs&tKvKCj`j&0+;+vGek&Yx4)S5RoO zb{Zr)>VGB?_Hw*E=S|;oA1A=l{5rHiF@w6rXQX4wJur6NnRAE}U};J7)yEWb+*7AQ zYPd(1AZx$1Zjc-eQZ++b5ch;Qsq2@ZyE=v$7aCWGSzO?y$86|`e dLI@!w=0CHbHG!#^M8p69002ovPDHLkV1lxQXAb}X diff --git a/tests/ragger/snapshots/nanox/test_eip712_advanced_filtering_verbose/00007.png b/tests/ragger/snapshots/nanox/test_eip712_advanced_filtering_verbose/00007.png index 2191773cc1207ef058246a23188ceca2342bc2d8..17f59fdc15e73ac233400edf086326e77110e966 100644 GIT binary patch delta 713 zcmV;)0yh1t1mFdbBYy&?Nkl)|d9vFtF z@%xavX=TlMn)G+1RST)n^7eh-;@Bs5zXN%yJUd+7jQLgxpS>DwuLBo@rHC%s>$$0c zSmATdxK9&MO(Tx%)umuVQ?T37*e&1AR57uEFAH*O{i!=3)BD4m7K=?Pql<-wtS-%p z9OY30pnq@_u+z1$562NcC$NPay_RXhCxl7>S(xyhcuSjv_MvXdi<-8PSrT~s5l4+8 zgb+dq@fTS3f5QBp%RZa)3dF7Cxn%3N7mV5i#ig)5>I@xh$ss1VvJTmmikZuMC82>PsNqgfZN!w zp>OQ~%EWwm@6+6+!W5No9}Ut6mN6yaiCpOFI2ryG?27ec2Y;8EzKWGq}+fnl0hqz_Y z%(3qr^+g`J8z_aDBouc900000045OsNI&oRLP$EWJny)VWe2mCFmkQ5+wm~A1Xwtp z)H-PO6g2^8|8Y;5<6$%_Ks>PA?RXMR0d^nvTDB-M diff --git a/tests/ragger/snapshots/nanox/test_eip712_advanced_filtering_verbose/00008.png b/tests/ragger/snapshots/nanox/test_eip712_advanced_filtering_verbose/00008.png index 394eff681fe2041a832ef43e8911ba6509e32a51..b8ab0408bb114ac90a16f027bae5bbab1be83187 100644 GIT binary patch delta 313 zcmV-90mlBt1=9kMBYy!JNkloHz`EqE>DuJ?Bd? z*TCf=G1CM90Hl;sO3}3#=R3Lr|J~1k?^s6kJkP~xKGN5#)xhc`}0=KFH3nm~88HJ|E`O}`Ye;8o(Mj7b2^ZD@ zt;M0!wXvB;y-5cQdI;xOdmwD3Pti9jwHPR00000000000PvV!p?J6V%QpBJ00000 LNkvXXu0mjfo`jP3 delta 686 zcmV;f0#W_b0>uT8BYy&nNkl>Y4uIVBk4poGCE<%I>oN%wLI@#*90zm^z0P^yA%8FDTxuE(@73hb)IMw4 zh3b)17D~g6v#hjDwNn}vb1W_cfVX^EUu{_FIckYr-!{pp16o)f*)NXtZ}8Ktp$=K% zT+Jz@tz*PhTrb#~86gwg699=CiDLTw5gxGCzLCb?9BHTyXGk4UGszPG=~)$Zp%~S! zZc9zM%Xb6W@_(J|O1e)?Dyp@1A=pnLW(7Rt$!r?UnF*W4RaydP2Ht-mEC)Oxa9xL+ z6xgRq9RN8Pvf)&js?|_dlY7Ngq7FKm=kGgPGII&Ise)#>Pqc>}Q4Xc)WO{!ZimU1U z$uI^h;V!h2j*}UKSCQ`RtD&mem&}`p+SWdkfmdtQ0Dr?IqXg7w@&0Yw{K%8LT>*S_ ze;TfC`fRI&&rywb)PRd%DPlidV51eF5;a5DN}dLL1)!Sy>L+KThIH!q)|0X&A%qY@2>Flv0^2j? U7;zqwhX4Qo07*qoM6N<$g8e{5PXGV_ diff --git a/tests/ragger/snapshots/nanox/test_eip712_advanced_filtering_verbose/00009.png b/tests/ragger/snapshots/nanox/test_eip712_advanced_filtering_verbose/00009.png index 139d265572a5c3abfba0a635ee794e642b847283..2f7c57461a154332710f316ee949af5ea4c6dbdc 100644 GIT binary patch delta 797 zcmV+&1LFL_0<#8?BYy(=NkluIsw4>vR;7JyHE$?cklseGh+@j$TuLe<-E2jrUh=U)$Tt z)xM>aU<9vY*JwLu%-TDkUQ#Kg&AzC_jrmn{{QP7M^e%FWjDIF3!D`mt0Rla<^!4im zO}cC6csknt)pBbA1{j-(UedSCYn9XcEx%3&Fom9{FI?pbA%qZ{d=o}~mX(Q zP@w3hp?EiMJ5+FH7Ja?-p&hd-Mf0VauXlF=%;@Yvvk6<*uSc&v06z??qoKvtMu%clrD;(r0i0*Ic-a%tL(-L3e}F*B?V zSo=k6Jnp`xeNq@|up4lb%icW9eBgx>b@113kb5@`@ z#_GaT;%FRUdI{#MUAPOBK#vU6M?^;Lk{)q0B)pW^UL1zCyA<>!eEs_xW!i3zP(OFg zi<#3I7=K6(>{xWaUW#^%hU*OWolzs<3Ru72Q!cKD$ls6XW7JRlkBlleg0# z*)cbXv{w-AJ#WUA`@8_2<~N`PiWxL4J|i8w!UJe~xBPyqa-4xT4dm2}Y?kB{)8KWc*l z=Q?3$_=&{~y9?lnl;9-Q*?+JeM>gKw1(*>jU#Pjx^OhwD6gUS|##q|?zKRk;2qA?T7Ps7Et_jfyvI`9VWlXpEMrXcb)Wwu zw$qvZetXjdu-{w@b0-X7E@um1uG>G(7r=DJ04Dl=n9-f`s{R447FqQVvr%f*KbQb@o&$?Tvwj}ZGWpza4(|cIFh%zxZT_ibgZ?>4~mGs zl48r%mOlaUR>N~Lj)!pOhT}I_I>u&=j`tiCPhq{oIm@4bnty>R(^0dx*EQblxPJ!n zNr0}hfqU+jXD#U4>e_C{B&-8H6M|EH_4s4&xIaTatDu+?%b1{pqB}PF>IQMjv2+X* z&m}(6#rp!L{kXHQxA-xv^91CzpCp6P=EahV7Ny;|*o-6L zS!cjtJlUWcWTL-KA=E^FGjiaGQOFbXu%|BxuW`+XC1$oB-w=P!bw&c5kpO2Tz!?d^ pc`QQ#0000000000002PO4NB_ZxMv<66)-$1Zl0 z)9(PC&2mKdsJG+90_3#n?qAEYuzasBLM?fLe__~drReEve zHd*Qq)i+{#48vX(QkQRG!`G2=|^Ol!#4!~k=tv{64%!K>I~(YTR>8`=BtCa2HTbGPA!7Bh}3QVpxNnuzw5fBuFxAFcqENSPd2PLoKi- zg*pK_ileVCJSC3$5r!W@pR}7?pg4M@qdp=sYLoPcn<3$a`1ay3tlfp6C*kY&FD%1x z^9uQO)4CWroq^#wVq!-mO>sg6KsrwdsJGOVzR(>mqYBGXT+tKt;IrH0Ix)^)Q~50@ zG}U$*B!4^RCK1kZqP^EmU%QVBP}BT6v_P?fy2WQ?VpDiv?z$`I5Er1PC9PK6r2HVI*=5PbDJ4e=C4>+{2qBp^HS}4;lUyip z`X@Ls2&%SyBJL+p6DdJ~vo@mTNyiLyHyz@+MvKWPuS`H#$trk1*nOX;3C!8f3O}~Hr~|*7!fHC)Lh3or3HZkXNSt@OPilp hQ9=kIgb+ev{sZDBLfVqynKb|a002ovPDHLkV1o4jX$t@V diff --git a/tests/ragger/snapshots/nanox/test_eip712_advanced_filtering_verbose/00011.png b/tests/ragger/snapshots/nanox/test_eip712_advanced_filtering_verbose/00011.png index 53ae65195fbea5b281a1bc1a80351dbf1cd79ff8..6a53a258ee048cee9bcbc0f476b5de58e9a60edb 100644 GIT binary patch delta 784 zcmV+r1MmFo0;UF#BYy(zNklAcf$Uc`yl6BH{Kul`K7(iT)8&q zY*;84meWY5ntkyr&HgNw&wz3RIp;bMJSf^na$))lZnNv!nty1jZq&Z&x#tMWX8?hZ zI37(N?(XgkQ-`dIyA#mC#9>&QIwS!*HsKl`&ANrJQHwgY8@H`LX-@*mUGdf5*h0yL zg9BDHHPJqJRlc5fU=*W{1ONa4j;65*dn#f>W8soZ#|}vzl|@s$J56P>y)s%#d+2_- zs{uS>fLK8r7k@^}?OK^>_Tp48JYI!vq3M9(PfUs^BdZ=_ed!ftPSP^M$ei2BV_J}Z z)^j`yqrDsr8Yeyz-8)1q0V6%7|FLjR?fMSMoU^TYd=Oh~ z)3ol5=S-~^Lzr}0GyFI7ORdDT7gpotk4IuNUQad|A2c?d37F`X9k1pL>lRsyg^tT7 z5-vlH5!X~eZG|#9%22WJCD$6KiEECy+k2$eO@C!500000z&movA2fJD>1jz)!PgW- zQ6o~CnkYHoUpY-RFW=88e^Z?}7+-7DpOOF#?X^khnR8HEUCQYRs4-Ugj>Y7VtnB`y zc8GN`Iwbn(oCHkV5B>7}37lJoCdUSlbYYU4DlN@A6#xJL004kD=NI@iQE*NFkgNaz O00{s|MNUMnLSTZsb9X}k delta 338 zcmZ3+_J(PKay_H5r;B4q#hkY{1NoX21Y9p>UY@(*zv{;6brS>*F|6(VX!vd3da<<& z^B=9qU}Jy-2Oi7kb2e9rvD;h~wg_JHqWibVf@SlAE}eTaA%S&9>5K(0qjxZg#PU8` zmj93|KzZH5cE9^)M~7n-)t{3<=8ie>+8oon0PpNyWrkCjvT zMxtbB8QYe#xAuFdW!B#8PE+2e{B}aMYM!HMcWH4vf0_Ghy*;mO%U?L%mTW7!zT}Je gLwk2dxaSM<^Z(2}wxaN_tR+ay)78&qol`;+0F?5dJOBUy diff --git a/tests/ragger/snapshots/nanox/test_eip712_advanced_filtering_verbose/00012.png b/tests/ragger/snapshots/nanox/test_eip712_advanced_filtering_verbose/00012.png index 657887225857cf48be8a8daed2cb3e89d4b29ece..53ae65195fbea5b281a1bc1a80351dbf1cd79ff8 100644 GIT binary patch delta 337 zcmey%^oD7IO1-hCi(^Q|oVPav`I;33TrXx`p1a|{>c;7H69f)1tnK}1_-)>Lv9$~H zAFaq>V}Jt(9?R!*Hdl$U+gug42wwA|`?tt~W%GkBoqIANfptddj0G>FcQA>>@;+LY z|Bx#{dELTxzx!w8UUB|8RK5@-XT0FWqrTby92V4D?=0B<=bPcZg8%A^GEXe2pXqpI zNxfm#0vGY1M^mM%nfq(KJ+E!cUpU>CY%99Hzj4-;J5hht#0pj z^#9@1sLK;CE54XuefJROGCRgZUbWXBk9~WeThLU0Q`4iWuO>iVr1K`D#hTWitG2LJbl{xH#~Rq+?=K-+vfC})E&6F z@5lAeSDtRMVcZx!aqGa5zhIs*He8&r_HtpZV5M#|^ ydh?e5zlAMgw-$Yhy2~hY*m8O9PiA<4-2TmASuS-mz3kmhkeH{dpUXO@geCz0VyPMc diff --git a/tests/ragger/snapshots/nanox/test_eip712_advanced_filtering_verbose/00013.png b/tests/ragger/snapshots/nanox/test_eip712_advanced_filtering_verbose/00013.png new file mode 100644 index 0000000000000000000000000000000000000000..657887225857cf48be8a8daed2cb3e89d4b29ece GIT binary patch literal 381 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9dba4!+nDh2#G~Xcw0f)e( zJDk7cg{nU`wU4`s1;0 z?{f>9Zfbf|_00eLCwPudd#p2Mzfg8-=Z~Y&(Z3(6-dSPln_e}2 z&8bJe=5=w3_V0Wxpw!uqXV@ zTyg#0l&4R7|Ayyoo}1J3WZRs6lez;p_x-s3`O4ERHjEo5Zk@S4@1z`Oka)v{pj(C~ z>TB;CrkB0D2@>;k^>bP0l+XkKqsFS~ literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/test_eip712_advanced_filtering/00002.png b/tests/ragger/snapshots/stax/test_eip712_advanced_filtering/00002.png index 146f3861895b3325f14bac0302da5b7af13ea5f3..c6131c15f736faa2629b80c5f8f950f5f71e79e6 100644 GIT binary patch literal 12929 zcmeI3c{J4T8~251LyINZ`i4}tgk-NIAygW>A%*PwHVpZyR7BaAhO%ZIUt-LLlEh#z zF&Hz*Zj8Yg!!SIbzUO()dH#6*`km)I=lSF3uQ|?~`@TQ-=f1D&eO>R@yuN2?B5>r) z5iTw+0nyaG3FzB?|*TPWj`4#New z4mS+d<&|j{;^!GihV}NHZ>0f0G%Vb^%e?Z+Dk{yaY(OAqA_bF{M#l5Hi16?%XwaVwhENv|7W0 zNM%B>1wrjxyApFk)qO8XljTVr-#DetCw%Zj<+aqU*9S(fIF?7J$r<0jBb2dMTw;}1 z=5FtQRYKKb36*8#EKpTT?e$16s|ZDzKkkQqaZ*W_>tbM>4>Ck4+5%jJx#~xyf7VQV zEAMyxwcPeYg*;;X5VA)PPv#v&3>AO}&EhK41>0I5^_{Uvle5nPfx-+5$=7%et1jM% zC`5e{0`uFaIvlPD}SxhbE77oqKnNU?jupDI}g1bQ9M49 z0g^WMSy%4-y{9zkawWvobf~N2Ikhcq>z$QzdViQ}SGn~U>eKqWm+aeGpX?RREqG@n zw+(uwx#v=6&MddR(a@)J<*bgkc?;S1KW-c=MAR}^M3fO%|;cJRm9}=3`p~?PON2g;_e)4)UA6Ss?CHR;er;Nwu3r9M1f9^#&?`P z$kmn3jeC1^s1+IHbSEr!%=C7bf@!^zifvV9^e)e{{fu(nED499T$3rQ9bbfFZVTtL z64(9-nZ))_4DnBfHqOM2m;?J3n+1!O4hQz_H@T0t#fkpkyZ8IiON04;4&92pR#L~g zb>rs^A*4yl>0zzhcNZCYh0R~zQ<>*2_b}MCzvda+F$U-%5#s^Gk1{WA)hNjrjzeU) z)yK2J{u&mt5*RxrX^3lFOq4zd1jBn?{JUo>kJ+Tv&WZj$wW3ZO$ZgIpm<_x(URX?b z*TXwLex_U6MDm;GEhkhkBA?hdk!S@7@O(IWky%TmZZ$54qx;^fzWE)F4zo0jbQ3lX zLOQW+w638E$mg_hl6FwRJdql*(hn`n^niLdL$}?I-279jufGzz zVV31lI7PnH;H}ed!2zVHz*UcZ?Rd=~Reh3m-g6fhms*r!O{E^bs*=68mt`oO+S%(t zU}^5S?QmjSCvdF|O29G(n<^_gv8tfojBSiVjkJ!)ZQqxB@Gp1y9gpPq-frb54Utki zi+!VnhHdXOsi+p=ag6G9VRff`0@!nXoS7P&R0Y`gIF z)g0q;q3u`juRqV&%)d4mxrA|2@&6rOsu_4TbUj>Uw2C{jP_R$hx@VKG(6YR(+`7Ap zNb(N@!)+sS1~p(oSeOoB-&C_Y(c?pNHu&*g+n~FDTxGO3c=Yn}Q9-Cm_$Ele^0Gfx zI%2Tgt8!lo+3dp`N7rz5*@ zP&;R$R(lk=iklsb;x`c$v2I_|Gu#&a!-s*E1)?TG zccZ|YXseoS?yA(Y70$;XSKk22Nym5=l=csL@y4r4ETb3ou?=! zQ;IHe2Stp7bYLpkxW&-428+0{0_O<%$j-@dG%`xp{L#;c$re9?uiv-Rs|!SLXqow0b=9%oMCtfZilx;`+Szxc<$Ly3wxRBi_|b3 z#|H`VA{5{35=#01+~E*Dnd?P}s8 zCg2o74ny|;6Rxe{COzWN(6Z&y?Csa_rThZYf{Cj&^5o86hzE3V@H}t)U*WK@J^SHk zdcdtj#}^cO#J(Doz7A2UdXb8) zqK=z?NnAPE#1uG?8yxzBR%#2eNe?u0CGY$5pyEQMf8_)nX1VT+>$U;e8sX@5a!DsU z!o-6Op&Jc-ZUe8Yl(cvhOP?YkC}Bxjue8S#GY>LpqP-IE5v0087Hco!eE6W@#}Kg& z43#;Cl;t*u+`;a>DKV^**4LTd98}~q8z^;}Z?s&KkxaVa_EIxcuxP;ZWv%~RC%Elx z@9-1a97;@xe?&V+iFnHOzik`tRf7 zcIAYwofTgK!AkGX47lB9^z#&!d3%es_P7jvLtsx*^82_}?{_8zohNaC##uBt62U@s zg)ZDGAV7^`=8q_;)_fCd%UJhLZ2t?-(6AtA^fJcZt`8*|75Z8aQ(I^{_}Z^+D5l}9 zv$!jq_XR###f$|oBsVv1SIIEgGEHvxmNX~hbKl`5)Mo5il#@z36BJcFSX_wWmpI6W zsV4g5R@YKDh0;1}v`kO3tXEI(a46=hO1LKqsnMsclk1hpskOxuy*V}Pli?z)VEQ1d)bTyVaQ#%MS9e#+7@bu$wDig1 z4eQ@U@hIZ1jCQcgY0}vzO!whk*|^f(c6nD2sB`)s>?x)_g%z1l=B1Nhw67MZvy?in zWIe1n9(zddGQ8Hu{w6_#;;^ol-JtLxr|%WP9DgOiHOdPJYJ7#}YNZ(ethW2%Q@^2M zZ^7`ECZ_uSH=k^ie7U#+{|j;B{s>gur0Ji7o4b9Y3w0WrTUzKcAa2(=Js@>yTP<-n zy3wK0>I}4~v-%&a$UHpYK(S{Feu!)3Jz#{)jW_rp3H0x zcj(YN=x!F(+R_rsVKb>jI3AC0u^4=>Mue32hgJ1`d2_5k(t2}{+Cv$Vk&eB3ZTxns zSD?NVw0#1rxk)xXmV8ZUd?JWla9Q0Qt7h18f+n+a&Hu3V%1J&OP6;@z?ExHWuQ*Y^*H@|tR7&XU%e33{IAVj1k zUx1JB$#m&QN~M4U3ct3kJIFa?xkIg*azUk?vc z8;M%WV9%3+)xdQiGSPNQe2O$1lV z%%0olRul|KpeEc?-wrYXRb{oxpRHYwlas(t-c5 zMD~d7wIyi8Yn}X|2U5U1Z?c!ZGeaq3CTrd{c=)-plCiDij<3IK2;Pp$D;t2PJ1B_? z>HAlBYe(UdWGiQY&|X_%T+hqI!0O zzkW5b@7_7fL*IffKt1Da$vx=Nv0_z>Kx@rjY^#i5Vqf}MJfplt07KV)s#g9T5OZh> zx77fwx$yDa5lms!_*MSMdGE z3uDNlKbF>;!C9`1jt5s-oPM zJ{@rMs>Sq}8LF&bYu3BbK_z=|{Y|T(X5V%U#rG<17LYKpadASmE0KELhTZkc)gR1N zE3|@0M)E_rMc=hjucf>~TIO&VY=4008ssv-SP6u}mj=Y=$sWWOAVHK>s0_`oE>ldf&3V^=XfuIqC;i53pL^Nlps^roEvAc)M~yf0i%SPVvf zuvEB6_HJD2G0|VWbo>Ye9~tfCWXilSeErina;yI=Mb6Z~(2(3JgSBZN&nod^b2yx} zwY41<9auMzlTuStTjVbgSCyY%t7Ba9 zmrnq~ePfARgz57Rao2gkhd32Rs??7^`rM*@AXDPFwEFf`7bJH(82aGmYf)Zax939_z zX#26dK6JtX##2mQE;eW9wRJP}%8p337MA{8LHW^dV@GnnstEZt1iElho+d=`_?W2` zhAzGxv9)4;f4`FOTesDD;>Jgo8Ov<5v4?qvidvDldwk?1Ocvq=m3lXo(nVOD(K)!e z14Z+50U6^;p0>;s|fvcQ)zlahedvQh9qP$$gv_4qf3pe{?@< zH5j=u`${rzlP^_eQJr06&_<)v)nMU`cUKT?O0p70UFb zW6VGM9EqnpvT$YBncmOE`L&+=s7zVSMwI+-0y73pruZX@E^ORRsg*&#Sdf1nke({t z0<;;(+MND(lZ)duY!llvl(`}A*@A7xf^CO-vPzj~)M6ucZR<_M)x+e|@7hxJ+>gK6 z)eWu=Op~L~ke2Ex=MH^Xe-AYjz_1!BOP5A`4bMl{PNuvz7a1O zbozGxje8)FC-+qgf|wmlL?#vO5IS0(p@F+{xVY`r4Sf~g?*+d)qBvTs*Px_j{h70R z$-`1gQS6R!(zX1bz@X8o^ys|jkne$mhTODIOPL171?=72KFv+%eW>g}y4*IK{jbb( zY29$uvxvh|CvzS=z*aqO8a=8c-mT~iSL-MJ$V^T4 zg{nT!&Jq*0LQ$o2a~4*-U&mZ-cePyuYEqLJJ@!$!fr{>+25mWHNM0bheF@XJY+1HB z?S4CZ!$89ogis?HYDmO<`>wymn>Mgxj~_w8Lsjb|%&bP|NVFz_L3NZNA7r9E+SN?W z6S;9-dO|GH&2_Q;eCru)NkNKM_~dOPS64`n(v(SYWMN9nyNy|L?6G3oiA`?vi3W4R z!@`eOq|52QK0FxQnNYwYdcmo7TTvHj)4%<~b&r>i%Z8|X*v~mDpl;FVO|MCkWkTPV zWyvy^=9IE2)~q2V%I2$?7UwxV2kc3(h;8L*G`SBaNGDBy>fLN%W8}q*{{h3v4QwV_ zZmj(brgOPl`6hhlaiG$UkvxqwS9Afx+=QK`H6f$VzGksDE6bNX16)iCJ)#dqdUibN zzM9x8ZC9M6O)O<$pqfc6UYjiUDQ3!Nuyz7M`J187>0bu6Y=~Wh5}NEE--bef?@k`} zWWP!i^lvz17$#R{7_^Fbo*<1qPXeXcH);EBww-bQlPY%zn?p+AGj{7?CmMbP4Jn#H z0>>o!S?Zr(iw$yOUEoAYuL0{;WuPmW&I00bN`W5!arm!d`JpGPw$WHMsZ;EKj#HLH z1XgI{co;R4;a!KBZqi;Bj~_x*Ou6-iEgrn;`nx5sqjM@Saxmcv#gg)CE|$3dH*psP zlCMg?|54T>J5G-+io7UaLv@(TA(AeJuwJAGvUF z@dqbm+W&L$Hy6{Jt(SQ*maTw2V%jRVJ^*_7Z(o|{*#=L_;{~l7UCZzBLf(0Efbvmx zQ4+PLJQPI&LAIGu+j;o_*(2unf)V_oB)o5-MevJusasYuQbaP=t-lg+t*%@-C z!9Y8GVpe$u_VvrC?}mh_v*IAu1yM@{@?GDvEjBy2S8FtS{ZbU`((3dYkg>n1R<2$> zA8baB6q3{&OW3lXgB~`{@rUbA-`|9NI_@vBWIsmdMuOqBu#wpOMd$+O8Ji|c>pc{+ zG=w=fac|JxYPsqW5;c-uiE2~FXw;31FiVoY8(+^WV^65%|H?k9GcYF5{uQya(4EA3 zFW9}AtTX=j%u5}eu(#E!b>kWuY}cPuZp9V|P_NF&Pr4yU9hmEYWr7~-hhT?qoQe#{ z%$Hx~yDsJpu3tFG4C`@G$?lLr38NY+0vMr3LqE=3635m5a;KBRYVS?i%5WQY1H+X; zh9cm~bErYkvDZSx$|Jw-jVr}-KDHaX?AIp5-Fh+b;{IgQv)G`RE$8@Jl$_(qQ+6to z-&m)f$;=w_m;m}jY6MEpbgr?f8mbJCBgVGw@9rL}{ucHSx5GR+lwGacfvpMNPg!;z z&Y$-`8wpzrb4H5^3#us8fyp0^jaNU-`@wANjKCwbKGyo^iyqsG2MgP+yh+pQZ&J7> zovJc0<39dCv)M_dw&)=UJE#32k6t5WBy} z+1}m;3h9Z~xQJSWet?YaX4|Xr+2D)&c1oga@SM=2cL^In1NrI>l}cqW7}L|!z=uz2 zZEZ=IkEW*y(X+KZedp8Al{;tdp_nB*ef*9urkF=yKBxn;dyzUYZq*|JEN`mRNy>hL za%bP1_uceSJ+dPzbZJ!O8eMJ_LFYC7#;( zcpjs2Vq-zUuhHR!M1*PD2mJhyxBPyVcM36Yhs_=&P!C$hun_*oeyCPDdpaqJUg5H! zV`qc6mxDsu9v5(wb#Nn!WKDv0{LUBsk6wW^wobOA?|KCJOqi1ZZb#tWVC8qRzm}9E zr2QP-m6GUfr;>s-8+R3;0^Q0;?+6ri>|F7e)nYyUIzE$2Or(>_;IH*d?zD@{gTpNb z{Ei^@rkess-3Wokv@Q7rqmCr0v=l^yx;E0^=%`tIyNoq2RQoP=dL9{H3jdJ9*bCLk zbQfPq^v9R(eDYUDQLzC(w*XD;W7V~{n9Qed@1n9GTALq{WuSz}9^)}6uG2TniglQE2b;*^S3YClCSJYYV7(R*!LJHm;jLmKsA`m<0#NV%3g zxGxNA=MEKXtmOdSpUm5ZYuSKe__}t)6u-c)|5+JVzbW01%P92wS05OWy6^>SJb;ho z^qtpV@Q6M*2u&6&%h!VM%32Uwe5z}GkZMGYx2#pZh<24gHFW5z+536qt@cU3TT?G! z!rC5B?AKXm9|Wv=Z{02+MMeqV>IvsIB&O#*7h-~=T9pppeYZ=N`z3{+YHaSpG!0E& ztG*s*-Q3Ws|JL7fsimgHsGsHd?JJrW7D{)Vpc%h4P};qYuYA;D3wPUiD@GhjUv+p> z^zJp5edoUL1Hxi-aF)bE24Ez*D&Yo2LVzBWOhNW%(JEH;Bi4dqZW&ovzYt#=3eL3t zagO(hBe9Y6n2l?*n0#|Fj1*o$ZpWm3k~)g{rS5IFCL;4mmAUy?h`araldk{j0VSxR z+_1=J4GZR&d)8brjjyH7zv{+3!paWxcdn5Gd}HGVHeI z_W3@d2!&?3M_mKV`Sx&hrVrR<+g}t4>iq8Jf{N0VMH(-Fbhzu)k1uX(gKlJ(&16Oa^gea+vQ;77hRuq zz0`3-nAQ3l%$)nKZS+tv)ab2WW>&=(^xXuoh3&b|m6z}gEx$8!Ca%2~0ckU< z0q``SEO*N67ds_zi&wkIa+v-}VwBAjE&J_5=r{Z)6TD(+akrUIN2swZ7lX_i)^ zgwygHhkP@9U(R&$}_X zJk@x|$I`$%@Ae)E>B;?K@Mu)%KeVX!II;Kcox;4s`83u}Wo4)>kb<+q1*&FH93MBfO95do{nzD;y2WP6$38_Nlvmx08J&?$Aq341vW$gbI1u zXU#|bD`5^2w6LLXy1tvHJp>JD{R6N-D^BTA*p?=MM*!)uyqt-^4s}ik)d@qwN1HS( zM#Fv$s)@ENi4zQd6?O;@};OR=$ibd8V}k!Dg{jW|m(yMvBYrhe551dzbf$EbDNV&IpK?w@nTDY0iDMfn& zDM|aQLCS{dz6}~Zx`y?3pJh_oAmy9NH!HZ4YgOJ36P=ZZwDdoJWAtlkLzE3isY1hX z;_=L@^9=hj;cc0fGEg&VL3|0d;``yHiL`uN{oJU}c9&>Uhhywh=EN;m?Aww|twR?+ z!UfMwtQNkbc(qC^i$b|H*T#HS{4lsHRB%>f!jd-E9ix{ z%y&7{b-g&;W9>b^Uv-q*1sBc|^OJo)Qz8G@@%9Ca&A$kzZ`E6%A0V3Wi$Yb&}U zEh`QnmEW(uQzOPjhkKPS-Pk7lJHxvaV|{}vc-8$Qne#}MjAQWWpcD92K!Y`Ru7QDa zu>ljn%?TL~vhrCK9U*#doGKW;Z29qCv8k2Kj9clweTwYKIN`kKbYko`7rV1#zlqm= z7oUDFv6*bn7RTKsXc#=`su25Vdgy;9(<}j@MvG^0B2YWNp9xPXSdq4!`|bbFK+)uV zdDCD$=?Sbj*X89n(==h@wUu73XOA=v|EGrB|0&S_C)6w7uP|rO5E{W9*}9L7=Gi-8 zL6A)C+?@Es3+UnM2h1sdocK$oX+;+RS-)k$yDVEbcc0k!-K<;>FO=BcJfc&GUr+V4 ztp^Als*Y(IP>^Uqmr&1wfUA2G1Zs`jm(IQhMC3GoEEtbCLl& z&yRYQaP@>mxqbhVg+B^xo! znFteTN7d$+i4#SW3T-PRVb(zVb}zs+p27<=5BCF@N`SMwn^or393-V}A9Lzja6Dz> zOLgIIfU{E@oeh4^$#u8iv5qK;j@}7Jix__rO56xv{1fA29tw99Gd3-9-2oHd2mUPt zP1ZR|Edx4E**IgDEPyc6aJNSp0#3KBR?#8aT;P3ST5r+^AZ|v9=gn^~hI+$U!N`So zfC);Z4vF+CK8y*vd?sEqHP97_GosV38wFs&=q{i_38q9-(-1RwAwXOeexT%N-Uk;v#wXhHJ0vaXSR57lzKpb#Ta~cK3y| zakD^$ruf~N0(?iC?(F=-K1)h45jR^8blx+9Hv#~7C^Yz@wQ$E`=u&l1WPZkOg+47D z4Fq@iV7(IX8iDKjy2(yySSAs!Yx_98IQ$6Ew>-EXZ?< zTxmxt5Y)6*9>u*^u1C0iq@nR)NT>0NYQrU;1>`J1>uAlsiURsSam2rVk69;ZazigJ zbtmD@6E9<`E(`=6ci}~VNHiNOplb%eeY(-I3TP)4;DnsCx0-7jhZZ;cE|J1?>V79B zygpPNwE$l+fY_o{_W{^Vx%=RUT?AC^JD%#TPg9Yr5M8u5bHWZ>+EruO8DHy~a-oG( zse~Ilh0rq4vo8#HMb<|ij122fd+-MJy{-i=D%D2fD83eYpZ0UD~^fYV3%a!N;8aKz67pT zuLtlNfP~kd{6WbyZ8msxTei}Gc298mZtVKDFYj=i~E^H8$%k4U43rpZi<8yUVyU z0nZ(ZTKIm5@LM0Zvy!6;Yqx6Uzg>X?9FRa$jE33o`LK8pC{t@TwlzXxyMN46t!OJv zX`Md3cHyn6R*8D>m29{80qJiv6k~hY?~!g@nWTl@^NEuN+33+P6LjY56}KWzI~K4B z0p}L*HnYSH;Xa8FYqKFdNDHjmawxyo1L?H4$8jWvhVD4*No(isJS@-L{kxlVOpET( zFi==)Qx)!Np`90bEaI@|iPMR*Ey37m(#rAX_qyc-Q=$3yT{;1|CVkPV5{a`l7fjQb z5VH1F{W?>Y$;!zeVqXs?O1Oq$!Au#MydLEV^5LOr%d}Sh?x@G(xcX25zwKg*@tO%Q z@bHX7yjjv~AK{5@cU}Rg^;TJ5=&KJbX{|x$g(oKxWXa{cHcw6fT-Zn2+@|Nu6IcRq zHrJh!!P?c-g`ljykd6T%b~as2)V?dQ;R4hWq=-DgfN;gxcM`<-)$Y^uL_1ymI+D*?6(z z>#aXLGd)EYe128$*;j>>ABN^L}gEdQ_oMOZmzBUwf}A}gXP~7*9$Q66M?+Q zSuy a0#)|0y5!&9z)wrKOpPsX)!uad`+ooknEo{Y literal 12707 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 z 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 M`SJzwxuEp_0Zd=VM*si- literal 13042 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 diff --git a/tests/ragger/snapshots/stax/test_eip712_advanced_filtering_verbose/00007.png b/tests/ragger/snapshots/stax/test_eip712_advanced_filtering_verbose/00007.png index dcd3cfa320e4c2bef806f0d8c03435a0a74a29df..669fb2f7e9505abe6627d0c47dd0da5fd0449415 100644 GIT binary patch literal 12872 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 literal 8718 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 diff --git a/tests/ragger/snapshots/stax/test_eip712_advanced_filtering_verbose/00009.png b/tests/ragger/snapshots/stax/test_eip712_advanced_filtering_verbose/00009.png index bc1ee08d7f4eaa8f74fa255eeec120bd91bb7766..beaa1ad5f9e5ff262c639acac413c05e5dba3ef2 100644 GIT binary patch literal 13435 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 ZCF7bOX8WH8UMdo^G_$#mzUKDm{{X3UH$MOX literal 6438 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 Pat+s09w*Cw4!QO}kqYj# literal 13087 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 diff --git a/tests/ragger/snapshots/stax/test_eip712_advanced_filtering_verbose/00011.png b/tests/ragger/snapshots/stax/test_eip712_advanced_filtering_verbose/00011.png index 9c2fa5d78480122011b440c23f35eaac1880e3d8..e9f9b923075173180d2d0ff3e456ad14c38a926f 100644 GIT binary patch literal 13272 zcmeI3XHZk^*X|KS6ht2jB7)c`B2AhI1W-{B5Re)=SZD&F6Ouq8j{-`4=o*@I=?Kyi z0;qJPmxv*u*FXX!ArRWxKJR&F&gXZ|oH-x<;R};t_TKl}_r2D&e(U1>Q$rnI?n~Tk zY;3%`j~|+_u^st`jg9@&adzMvRinldHa3MU-G}$hg3{NBYZ=9z{FIP|;DZz14;&wS z()#n$@|WUKwWGZEwFdqYIeOy$gQeXz3^YTD^L*Qz-|h>{kQykDCCJW#k8>|THKV)g z3ELEYSCcBk#@2ehlI_EN$0N7jw6HrK3*~G%$Zk^LVyBwNfF=06P>4btSGNfS-r0 zi|TQf{a(dk8MeN&-Emmali+NXQm}k$(gq)pAfmy#S;1 z{RH(hP>CXL1d9hc1xZF}1v>`^!Z@+JNfuaQdAYk+=w?UD1KW%xIIa&XB;l6qWCi7X z(VeRtCK>neLz+p-1aA8&zQ(NLvE&|CnZ=LpDi17CPhJ0D&0xyV_p<7uW@OIASF`kj zWSdXm_iDm%Kx~6R!l$^@zogF<4(s;Y;~5Ni27Cd^uT%pvL2Qma?w&1>ip*icOWYqA z-cnenuICs+RhW5p1&5U1Z?yO?L=5R&_+_B&hN|%d;ud7ujj~G}6S03LmfT?;-x%gm zXY>Br2?_Ap<|~&?2mEo)15^9+mcE#+F`m4?hY2>CNfy(b-B)ll+e;3lq;f$Gxcb3i z119;~_U6%o2`V$<$9?6JL{u%e-LEz}>&T&oq=Tr?+4|e!sMUgSaw4T5In5r^0@p+v zds$y^0&T{9xMgCMf+w5nG`!_^3p*_3=S;b{0*kMWYci`ydoVdUNfeg*^78S%LTi$^ zhHk#aFGT}8{8^K#U<_d+i!s!aV60DUX2z;?(;B7p8(IT3vJm}4IX97`8Z;F_{q*e89d{=qPIQ%WGV*LgN1X%R-Km8nIV z$D9rNlFZ@$Sxl61L*RDNAyOkNzv9;I8QXFug0|vQ2%jl%>szdjMp`$iZp`$|wo3-3 zeYbnLUS-2hf#bTbRxFkuTgR47h$IQ8)Ot2IH4Q0_hNu$OEW#x`?g&Di21YM^moC~z z%9@`h9+BlKC1bEHpneBU6Nx6!?mmfd-q+7*h<`$6>TI~fw5Hd-*fg>kT38}{QdCPc zzuXL8BkU$H{4-v`s=a{BsTb8H{j~iiubp{t@%E;_a+vM4HJsn=onf!Gb;+rU;bnRr z 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 literal 9157 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 kJq7-Ia{hn1zUkIYuqhstWK#zIp2KEgW^BAC)r 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 diff --git a/tests/ragger/snapshots/stax/test_eip712_advanced_filtering_verbose/00013.png b/tests/ragger/snapshots/stax/test_eip712_advanced_filtering_verbose/00013.png new file mode 100644 index 0000000000000000000000000000000000000000..54aba60e5f2da7d31c0ac5e502cc44eb7bea3741 GIT binary patch literal 4916 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 literal 0 HcmV?d00001 diff --git a/tests/ragger/test_eip712.py b/tests/ragger/test_eip712.py index 74a12333e..26a3500c9 100644 --- a/tests/ragger/test_eip712.py +++ b/tests/ragger/test_eip712.py @@ -204,10 +204,11 @@ def test_eip712_advanced_filtering(firmware: Firmware, "version": "1" }, "message": { - "from": "0xaAaAaAaaAaAaAaaAaAAAAAAAAaaaAaAaAaaAaaAa", - "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", - "amount": 117, - "token": "0x6B175474E89094C44Da98b954EedeAC495271d0F" + "with": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", + "value_recv": 10000000000000000, + "token_send": "0x6B175474E89094C44Da98b954EedeAC495271d0F", + "value_send": 24500000000000000000, + "token_recv": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", }, "primaryType": "Transfer", "types": { @@ -218,10 +219,11 @@ def test_eip712_advanced_filtering(firmware: Firmware, {"name": "verifyingContract", "type": "address"} ], "Transfer": [ - {"name": "from", "type": "address"}, - {"name": "to", "type": "address"}, - {"name": "amount", "type": "uint256"}, - {"name": "token", "type": "address"} + {"name": "with", "type": "address"}, + {"name": "value_recv", "type": "uint256"}, + {"name": "token_send", "type": "address"}, + {"name": "value_send", "type": "uint256"}, + {"name": "token_recv", "type": "address"}, ] } } @@ -232,10 +234,43 @@ def test_eip712_advanced_filtering(firmware: Firmware, else: filters = { "name": "Advanced Filtering", + "tokens": [ + { + "addr": "0x6b175474e89094c44da98b954eedeac495271d0f", + "ticker": "DAI", + "decimals": 18, + "chain_id": 1, + }, + { + "addr": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "ticker": "WETH", + "decimals": 18, + "chain_id": 1, + }, + ], "fields": { - "amount": "Amount", - "token": "Token", - "to": "To", + "value_send": { + "type": "amount_join_value", + "name": "Send", + "token": 0, + }, + "token_send": { + "type": "amount_join_token", + "token": 0, + }, + "value_recv": { + "type": "amount_join_value", + "name": "Receive", + "token": 1, + }, + "token_recv": { + "type": "amount_join_token", + "token": 1, + }, + "with": { + "type": "raw", + "name": "With", + }, } } From 2fdb3bcb34c2cd7fe1f7473ab19731a463a19b22 Mon Sep 17 00:00:00 2001 From: Alexandre Paillier Date: Mon, 13 May 2024 17:40:26 +0200 Subject: [PATCH 09/11] Date/Time EIP-712 filtering implementation --- src_features/signMessageEIP712/commands_712.c | 4 ++ src_features/signMessageEIP712/filtering.c | 67 ++++++++++++++++++- src_features/signMessageEIP712/filtering.h | 1 + src_features/signMessageEIP712/ui_logic.c | 50 +++++++++++++- src_features/signMessageEIP712/ui_logic.h | 2 +- 5 files changed, 119 insertions(+), 5 deletions(-) diff --git a/src_features/signMessageEIP712/commands_712.c b/src_features/signMessageEIP712/commands_712.c index 98661cf48..41052e7d8 100644 --- a/src_features/signMessageEIP712/commands_712.c +++ b/src_features/signMessageEIP712/commands_712.c @@ -28,6 +28,7 @@ #define P2_IMPL_FIELD P2_DEF_FIELD #define P2_FILT_ACTIVATE 0x00 #define P2_FILT_MESSAGE_INFO 0x0F +#define P2_FILT_DATE_TIME 0xFC #define P2_FILT_AMOUNT_JOIN_TOKEN 0xFD #define P2_FILT_AMOUNT_JOIN_VALUE 0xFE #define P2_FILT_RAW_FIELD 0xFF @@ -177,6 +178,9 @@ bool handle_eip712_filtering(const uint8_t *const apdu_buf) { reply_apdu = false; } break; + case P2_FILT_DATE_TIME: + ret = filtering_date_time(&apdu_buf[OFFSET_CDATA], apdu_buf[OFFSET_LC]); + break; case P2_FILT_AMOUNT_JOIN_TOKEN: ret = filtering_amount_join_token(&apdu_buf[OFFSET_CDATA], apdu_buf[OFFSET_LC]); break; diff --git a/src_features/signMessageEIP712/filtering.c b/src_features/signMessageEIP712/filtering.c index cfd3e720a..cabaee80b 100644 --- a/src_features/signMessageEIP712/filtering.c +++ b/src_features/signMessageEIP712/filtering.c @@ -14,6 +14,7 @@ #define FILT_MAGIC_MESSAGE_INFO 183 #define FILT_MAGIC_AMOUNT_JOIN_TOKEN 11 #define FILT_MAGIC_AMOUNT_JOIN_VALUE 22 +#define FILT_MAGIC_DATETIME 33 #define FILT_MAGIC_RAW_FIELD 72 /** @@ -214,6 +215,66 @@ bool filtering_message_info(const uint8_t *payload, uint8_t length) { return true; } +/** + * Command to display a field as a date-time + * + * @param[in] payload the payload to parse + * @param[in] length the payload length + * @return whether it was successful or not + */ +bool filtering_date_time(const uint8_t *payload, uint8_t length) { + uint8_t name_len; + const char *name; + uint8_t sig_len; + const uint8_t *sig; + uint8_t offset = 0; + + if (path_get_root_type() != ROOT_MESSAGE) { + apdu_response_code = APDU_RESPONSE_CONDITION_NOT_SATISFIED; + return false; + } + + // Parsing + if ((offset + sizeof(name_len)) > length) { + return false; + } + name_len = payload[offset++]; + if ((offset + name_len) > length) { + return false; + } + name = (char *) &payload[offset]; + offset += name_len; + if ((offset + sizeof(sig_len)) > length) { + return false; + } + sig_len = payload[offset++]; + if ((offset + sig_len) != length) { + return false; + } + sig = &payload[offset]; + + // Verification + cx_sha256_t hash_ctx; + if (!sig_verif_start(&hash_ctx, FILT_MAGIC_DATETIME)) { + return false; + } + hash_filtering_path((cx_hash_t *) &hash_ctx); + hash_nbytes((uint8_t *) name, sizeof(char) * name_len, (cx_hash_t *) &hash_ctx); + if (!sig_verif_end(&hash_ctx, sig, sig_len)) { + return false; + } + + // Handling + if (!check_typename("uint")) { + return false; + } + if (name_len > 0) { // don't substitute for an empty name + ui_712_set_title(name, name_len); + } + ui_712_flag_field(true, name_len > 0, false, true); + return true; +} + /** * Command to display a field as an amount-join (token part) * @@ -261,7 +322,7 @@ bool filtering_amount_join_token(const uint8_t *payload, uint8_t length) { if (!check_typename("address") || !check_token_index(token_idx)) { return false; } - ui_712_flag_field(false, false, true); + ui_712_flag_field(false, false, true, false); ui_712_token_join_prepare_addr_check(token_idx); return true; } @@ -328,7 +389,7 @@ bool filtering_amount_join_value(const uint8_t *payload, uint8_t length) { if (!check_typename("uint") || !check_token_index(token_idx)) { return false; } - ui_712_flag_field(false, false, true); + ui_712_flag_field(false, false, true, false); ui_712_token_join_prepare_amount(token_idx, name, name_len); return true; } @@ -386,7 +447,7 @@ bool filtering_raw_field(const uint8_t *payload, uint8_t length) { if (name_len > 0) { // don't substitute for an empty name ui_712_set_title(name, name_len); } - ui_712_flag_field(true, name_len > 0, false); + ui_712_flag_field(true, name_len > 0, false, false); return true; } diff --git a/src_features/signMessageEIP712/filtering.h b/src_features/signMessageEIP712/filtering.h index 8f0e271b7..50bc3bb3d 100644 --- a/src_features/signMessageEIP712/filtering.h +++ b/src_features/signMessageEIP712/filtering.h @@ -7,6 +7,7 @@ #include bool filtering_message_info(const uint8_t *payload, uint8_t length); +bool filtering_date_time(const uint8_t *payload, uint8_t length); bool filtering_amount_join_token(const uint8_t *payload, uint8_t length); bool filtering_amount_join_value(const uint8_t *payload, uint8_t length); bool filtering_raw_field(const uint8_t *payload, uint8_t length); diff --git a/src_features/signMessageEIP712/ui_logic.c b/src_features/signMessageEIP712/ui_logic.c index 7c7dff52d..4c18d51a7 100644 --- a/src_features/signMessageEIP712/ui_logic.c +++ b/src_features/signMessageEIP712/ui_logic.c @@ -2,6 +2,7 @@ #include #include +#include #include "ui_logic.h" #include "mem.h" #include "mem_utils.h" @@ -39,6 +40,7 @@ typedef enum { #define UI_712_FIELD_SHOWN (1 << 0) #define UI_712_FIELD_NAME_PROVIDED (1 << 1) #define UI_712_AMOUNT_JOIN (1 << 2) +#define UI_712_DATETIME (1 << 3) typedef struct { s_amount_join joins[MAX_ASSETS]; @@ -426,6 +428,42 @@ static bool update_amount_join(const uint8_t *data, uint8_t length) { return true; } +/** + * Format given data as a human-readable date/time representation + * + * @param[in] data the data that needs formatting + * @param[in] length its length + * @return whether it was successful or not + */ +static bool ui_712_format_datetime(const uint8_t *data, uint8_t length) { + struct tm tstruct; + int shown_hour; + time_t timestamp = u64_from_BE(data, length); + + if (gmtime_r(×tamp, &tstruct) == NULL) { + return false; + } + if (tstruct.tm_hour == 0) { + shown_hour = 12; + } else { + shown_hour = tstruct.tm_hour; + if (shown_hour > 12) { + shown_hour -= 12; + } + } + snprintf(strings.tmp.tmp, + sizeof(strings.tmp.tmp), + "%04d-%02d-%02d\n%02d:%02d:%02d %s UTC", + tstruct.tm_year + 1900, + tstruct.tm_mon + 1, + tstruct.tm_mday, + shown_hour, + tstruct.tm_min, + tstruct.tm_sec, + (tstruct.tm_hour < 12) ? "AM" : "PM"); + return true; +} + /** * Used to notify of a new field to review in the current struct (key + value) * @@ -497,6 +535,12 @@ bool ui_712_new_field(const void *const field_ptr, const uint8_t *const data, ui } } + if (ui_ctx->field_flags & UI_712_DATETIME) { + if (!ui_712_format_datetime(data, length)) { + return false; + } + } + // Check if this field is supposed to be displayed if (ui_712_field_shown()) { ui_712_redraw_generic_step(); @@ -573,8 +617,9 @@ unsigned int ui_712_reject() { * @param[in] show if this field should be shown on the device * @param[in] name_provided if a substitution name has been provided * @param[in] token_join if this field is part of a token join + * @param[in] datetime if this field should be shown and formatted as a date/time */ -void ui_712_flag_field(bool show, bool name_provided, bool token_join) { +void ui_712_flag_field(bool show, bool name_provided, bool token_join, bool datetime) { if (show) { ui_ctx->field_flags |= UI_712_FIELD_SHOWN; } @@ -584,6 +629,9 @@ void ui_712_flag_field(bool show, bool name_provided, bool token_join) { if (token_join) { ui_ctx->field_flags |= UI_712_AMOUNT_JOIN; } + if (datetime) { + ui_ctx->field_flags |= UI_712_DATETIME; + } } /** diff --git a/src_features/signMessageEIP712/ui_logic.h b/src_features/signMessageEIP712/ui_logic.h index 9f0e85b5b..81c591659 100644 --- a/src_features/signMessageEIP712/ui_logic.h +++ b/src_features/signMessageEIP712/ui_logic.h @@ -26,7 +26,7 @@ void ui_712_set_title(const char *const str, uint8_t length); void ui_712_set_value(const char *const str, uint8_t length); void ui_712_message_hash(void); void ui_712_redraw_generic_step(void); -void ui_712_flag_field(bool show, bool name_provided, bool token_join); +void ui_712_flag_field(bool show, bool name_provided, bool token_join, bool datetime); void ui_712_field_flags_reset(void); void ui_712_finalize_field(void); void ui_712_set_filtering_mode(e_eip712_filtering_mode mode); From b111de39e1240990c79b0844642f3e5ef91adb2f Mon Sep 17 00:00:00 2001 From: Alexandre Paillier Date: Mon, 20 May 2024 18:19:22 +0200 Subject: [PATCH 10/11] Add date/time support in client --- client/src/ledger_app_clients/ethereum/client.py | 3 +++ .../ethereum/command_builder.py | 7 +++++++ .../ethereum/eip712/InputData.py | 15 +++++++++++++++ 3 files changed, 25 insertions(+) diff --git a/client/src/ledger_app_clients/ethereum/client.py b/client/src/ledger_app_clients/ethereum/client.py index 2061ef56f..a09bd41ce 100644 --- a/client/src/ledger_app_clients/ethereum/client.py +++ b/client/src/ledger_app_clients/ethereum/client.py @@ -115,6 +115,9 @@ def eip712_filtering_amount_join_value(self, token_idx: int, name: str, sig: byt name, sig)) + def eip712_filtering_datetime(self, name: str, sig: bytes): + return self._exchange_async(self._cmd_builder.eip712_filtering_datetime(name, sig)) + def eip712_filtering_raw(self, name: str, sig: bytes): return self._exchange_async(self._cmd_builder.eip712_filtering_raw(name, sig)) diff --git a/client/src/ledger_app_clients/ethereum/command_builder.py b/client/src/ledger_app_clients/ethereum/command_builder.py index 1e9466bb6..bcd505cbe 100644 --- a/client/src/ledger_app_clients/ethereum/command_builder.py +++ b/client/src/ledger_app_clients/ethereum/command_builder.py @@ -42,6 +42,7 @@ class P2Type(IntEnum): NEW_IMPLEM = 0x01 FILTERING_ACTIVATE = 0x00 FILTERING_MESSAGE_INFO = 0x0f + FILTERING_DATETIME = 0xfc FILTERING_TOKEN_ADDR_CHECK = 0xfd FILTERING_AMOUNT_FIELD = 0xfe FILTERING_RAW = 0xff @@ -197,6 +198,12 @@ def eip712_filtering_amount_join_value(self, token_idx: int, name: str, sig: byt P2Type.FILTERING_AMOUNT_FIELD, data) + def eip712_filtering_datetime(self, name: str, sig: bytes) -> bytes: + return self._serialize(InsType.EIP712_SEND_FILTERING, + P1Type.COMPLETE_SEND, + P2Type.FILTERING_DATETIME, + self._eip712_filtering_send_name(name, sig)) + def eip712_filtering_raw(self, name: str, sig: bytes) -> bytes: return self._serialize(InsType.EIP712_SEND_FILTERING, P1Type.COMPLETE_SEND, diff --git a/client/src/ledger_app_clients/ethereum/eip712/InputData.py b/client/src/ledger_app_clients/ethereum/eip712/InputData.py index f50774884..e5ffbbd1d 100644 --- a/client/src/ledger_app_clients/ethereum/eip712/InputData.py +++ b/client/src/ledger_app_clients/ethereum/eip712/InputData.py @@ -205,6 +205,8 @@ def send_struct_impl_field(value, field): elif filtering_paths[path]["type"] == "amount_join_value": send_filtering_amount_join_value(filtering_paths[path]["token"], filtering_paths[path]["name"]) + elif filtering_paths[path]["type"] == "datetime": + send_filtering_datetime(filtering_paths[path]["name"]) elif filtering_paths[path]["type"] == "raw": send_filtering_raw(filtering_paths[path]["name"]) else: @@ -311,6 +313,19 @@ def send_filtering_amount_join_value(token_idx: int, display_name: str): pass +def send_filtering_datetime(display_name: str): + global sig_ctx + + path_str = ".".join(current_path) + + to_sign = start_signature_payload(sig_ctx, 33) + to_sign += path_str.encode() + to_sign += display_name.encode() + sig = keychain.sign_data(keychain.Key.CAL, to_sign) + with app_client.eip712_filtering_datetime(display_name, sig): + pass + + # ledgerjs doesn't actually sign anything, and instead uses already pre-computed signatures def send_filtering_raw(display_name): global sig_ctx From c639207d6cecb7ad7c151e2a27568245399d5a3e Mon Sep 17 00:00:00 2001 From: Alexandre Paillier Date: Fri, 24 May 2024 15:47:13 +0200 Subject: [PATCH 11/11] Add date/time ragger tests --- .../test_eip712_advanced_filtering/00005.png | Bin 9417 -> 8718 bytes .../test_eip712_advanced_filtering/00006.png | Bin 6132 -> 9417 bytes .../test_eip712_advanced_filtering/00007.png | Bin 0 -> 6132 bytes .../00012.png | Bin 9417 -> 6619 bytes .../00013.png | Bin 6132 -> 9417 bytes .../00014.png | Bin 0 -> 6132 bytes .../test_eip712_advanced_filtering/00005.png | Bin 364 -> 582 bytes .../test_eip712_advanced_filtering/00006.png | Bin 381 -> 364 bytes .../test_eip712_advanced_filtering/00007.png | Bin 0 -> 381 bytes .../00012.png | Bin 364 -> 427 bytes .../00013.png | Bin 381 -> 364 bytes .../00014.png | Bin 0 -> 381 bytes .../test_eip712_advanced_filtering/00005.png | Bin 364 -> 582 bytes .../test_eip712_advanced_filtering/00006.png | Bin 381 -> 364 bytes .../test_eip712_advanced_filtering/00007.png | Bin 0 -> 381 bytes .../00012.png | Bin 364 -> 427 bytes .../00013.png | Bin 381 -> 364 bytes .../00014.png | Bin 0 -> 381 bytes .../test_eip712_advanced_filtering/00005.png | Bin 9157 -> 9761 bytes .../test_eip712_advanced_filtering/00006.png | Bin 4916 -> 9157 bytes .../test_eip712_advanced_filtering/00007.png | Bin 0 -> 4916 bytes .../00012.png | Bin 9157 -> 7855 bytes .../00013.png | Bin 4916 -> 9157 bytes .../00014.png | Bin 0 -> 4916 bytes tests/ragger/test_eip712.py | 6 ++++++ 25 files changed, 6 insertions(+) create mode 100644 tests/ragger/snapshots/flex/test_eip712_advanced_filtering/00007.png create mode 100644 tests/ragger/snapshots/flex/test_eip712_advanced_filtering_verbose/00014.png create mode 100644 tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering/00007.png create mode 100644 tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering_verbose/00014.png create mode 100644 tests/ragger/snapshots/nanox/test_eip712_advanced_filtering/00007.png create mode 100644 tests/ragger/snapshots/nanox/test_eip712_advanced_filtering_verbose/00014.png create mode 100644 tests/ragger/snapshots/stax/test_eip712_advanced_filtering/00007.png create mode 100644 tests/ragger/snapshots/stax/test_eip712_advanced_filtering_verbose/00014.png diff --git a/tests/ragger/snapshots/flex/test_eip712_advanced_filtering/00005.png b/tests/ragger/snapshots/flex/test_eip712_advanced_filtering/00005.png index cbaa889017a3921bf11ec2717005e2897f59a30c..feade3815ce8a86523d0124d63162c2170da1bb1 100644 GIT binary patch literal 8718 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 diff --git a/tests/ragger/snapshots/flex/test_eip712_advanced_filtering/00007.png b/tests/ragger/snapshots/flex/test_eip712_advanced_filtering/00007.png new file mode 100644 index 0000000000000000000000000000000000000000..8b981d44ccb87c00bd8e735f53c91f5b445bd6b1 GIT binary patch literal 6132 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 literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/flex/test_eip712_advanced_filtering_verbose/00012.png b/tests/ragger/snapshots/flex/test_eip712_advanced_filtering_verbose/00012.png index cbaa889017a3921bf11ec2717005e2897f59a30c..1fe5517f0b813ce95f99e8426e787f3c58206e77 100644 GIT binary patch literal 6619 zcmeHMX;_kJ+jc9f(X4bb&1HNoZ82?eaADCbwNkO=rE<@T)Jeq!K|!(7clxr0%1K92 zF_)O!m~mqSfvg;B99LWtMBI@O6j4zT`JU$ce!s_j$Mu)pNrlFysfA-Ajiy9i5qZ%4oSGQ;ZzkJ(P;;o@!QgZh6$$usnNceMz@lM{G zvDrkH{!O3%+J9~9FFJOb=kDw();XZ*b9Dcitz|lw-ohNFqu~V2XX)dGOY~65q3w4= z+@8GKx6X|QO~{-mS%xdb!`g(IH zm92EwfGrwoGx@P%dS`7_Ma3L!_ZI$x>bgUJzg{-zctDU-sja`D(vk zG>qte;Huq{_D;|Bh$dxgbU=>sr7yVycJ zd5hZ^{Mg)fWDXJ;0Jq6rY!RWkj(!0-6SCx{;8(^PLHwXbu7ikhC@l_RVeI)#y1%^^ z(siY>zscYwl)HrEGvbSc4_n`^o3He#a-2g$L%D%pd-lNpDW(^73HezskO4-XIY=dM zwAXt9B0$CFAmyvgHDXAYcj*OFtM=N83NE*(q(+QZLb~J-RGW*~>SlU+PQ6pC!Rx5} z#q80=Q(A;q;3M&UNri+Chpg+rT&=f6*_O3W)hcB}(V#+jom~)hFyl;bP00csEv(7Khp^)E$J0WhYlN_2qxcg!2Mo58jNAEcwMmaSt zIQ!#GN7KR;j@HUY>CTx~Q5UPX+hb@gl0wk&Jl~7l-g~DQvvG0prK;yDgIC~~{8vF; z*0{6GX{%JnjcAbkqSgFsypAjK@DY8>=9AmTH)^8;b$$}#n4y$ri-6rLk@F+Bi2mlO ztI~V-yKV65B#%3nhHvP*P90=AW7an_iIlVi09F_#Y>kJ#8Fu=D5wqG{NFTMTZ=VsZ zaKw+10r_BUTY6Y=-Knh`eaVp6LH(NH?a3XE%lGa-T^2SZs_TDyzL6Ryv~=%+YVkW` z@D9|%62_@mW@y;aw;SQX@`ea=cdq_(6%_lbMlAKrcQkdD*4%~Fy2qbKAYMmCy)3N} zTQjDf*j*29Vm%9y?RdVd^AuH%R>A=)DZ5~YCAZ@xh%B4zkJX`1z$&Yo0iZlzuFr513S#>Ba^(xr ziTT%z(AfG0ek`Z;2UNm<*BtkyBx>kN4cHR9b}Eu+E4K-H%+8Wtu65XO^2)q{k6udk~paUs6g(Z!^L}Rs`vSrX`I~Z=zd;Hf5#8*+B*BY z|J~zKjIqyWCPlEJ&!s(Z<+sGc*=_#)Nqkn`KmbOG$Q@tYmP%v|TsbV73S zk8nx`qYXelaZd3&zL}6|*ZvBCz!mEJPmZH}b$x7XthO?WtjxTbu0FDzWsT24A`q$# z6{Dg8tf!R`H|Xw=+kXH4eG*#OsrWV6p2m{|gzd8G_V@P}FVU6H>W#WXbk8us*vYSo zp1z7IDk{Pm95VNx`;j=gWRvmc{BV>$y+%BuKwL2L)^fBUD$+AXX#7}SN-)ZEX&4VF ziOMHV-)>`9K!0w(99?4;-V}_n{x;8d_d`$8bVWrGnal|(`^;pqiU`+?Ay!>oU3{T> zX{o`keNi~#Hh^|j&4j6ejjjzx=+nV12eZbPmXf}tx~6NM&QWZaIy-z?nyLg};A^8x zrce0PNIHI-kRgfE-*?jQPd&) z5Bb357q>R@V!)@&9(!3nPMLyUM)cS0^0mn(a{D+T{mkgL4==3IS3tklLXtnF6k%#-0g6P@p;;CG9BZD{$cCdpF$VX0cl#ER4$N!h%SJc&&KaR{*XYQN5E3KbFQ3Ey`rFQe3Euhf{c4 zddJ*${Jw}mh*iXq!PLdlDIkhJ>p65|e}oMt@nbdiJoYlK%0b^wn54~0FiPMsUt6P% zHJ?Ox0nDc?iq~u>(N0m7?sC+g(BiqHX|Y|SA8KcRPxP&|JDhbLL;{!vPyiU%uIdjP zMWONXoxj&cTLXPSOX8;7_9+=MXW)hZ2fqOmyUX+1X}tbf`%8%aEB@rlito~M!|ZnF zN?JZiFrv@#0Xa*cOrUJ%OyQWZipp}`e!Sfv@#mpv?#HB%L3X;@g4h-n#>X&1sDlSn zkO3Cy`z1F1TjCy|n)3N%w{&|jb?(FK45y|xg+hTzS{mIyPOpZ@#$zl+_C`M-SHHGS zr5n~9$O2}Uso5XPoZk8sJ&onKrJd)ek4x|TiP0G!GaxWsLisXwwGIReD^_Yx)bg*9 zpB&Be9T^#c;Z9QR+DG~iEl0FDrF+0acEYAw-vF6Mrhl+IjJY-pez5uwGnbTvoef;LY><#IX1pEAZ|GRx~q@XA$s7{1bWvMP5L7I>TW@tdP|837s6noL5^ zViUGwCgV!N46C9s*#6SD_OPOQvx1Fb$Bs>Nn-j*jc-!a4PwFv)pjM?lKNXH%K_pEs zn0v$HfTRU1vUSlMghEq7DAA~2378?jkI1=xv}%jQUgX#$C49c@e`oyp0 zgG1*3B*Tpd6Wck$y%iOoWz;&jar4*~@zUBD)%vSpiPy8)!$AWoh3iHfJw~EBEV#L2 zPfqwBUx?5NS0*K^nUL*II2+CZ)Im$t@sU_``?707_D*;cIt{z?hB`EMDf6b9k%xkj zE!VwgSzCq~2l)EBcdZ__-($cY2seY*!y)SUzs`twTQn?#DRNz!O7+R5)5PHbuT44 zoJGj2wG#kv2?SV1$XxLI3F4HE{|7Qt5uVp^OC+IjY_dndqp6~AjvDo7r&WsNB1Q7B z2eub^^=VY1{57NtC{W%gTW3-S?D1Un=DR0X8it~0zh-7g!7l+GeYI>S z_%0LDrJz9sVX7;#L9D)3_?HsTfHYCruRBDE3y?#Rj%yF(4{+8Xt3T=nHjyY>NbQVuc-1O?Q@>W?tcBX>79H_O%NB4ORo z>{>(cLS-ig%lLVJPPmzS}*ZzetbL1|PzV1X$WbBA+n=$EEz?WnMt6OMjzC3S_3 z(ZA=K`2M>F)AxaGM{jjkL%MiqkRK<+AvS+{b#--VX=%LWVM#I`&x@s{6cO7d_L@mu z>{10!UFEM&{!yyCdj>%5umJ)Ab#tT85y0sGHXCSSZi-T7`tl50QHyW1m=61uBGExr z5;N3NZxO?&7Sp5hAzj2&PNU$H=Y`1>g3LK&DXcY&-v#o^hVckxDie9nvA9gv#GIMO zBhjGrx3`HHh=nElWIztnA5gTav$9A>93C&`C(w8ePJmfwOyuCw(x5B*sZ^>Y=1X6? zMhURn9Rcwc?CVpL0S&Nvo5o91j2+!0!J+Ht80ll4Z><4MC6~)LL|b{1m^ixN4WES!7m=*TPPM5dONEW{w_cqM3cGxS6uA( zQ1E9Sww8cNfKGu}P{_RqMA~xPYC+QpC!-h(=+EvE>EwnCI;ohUJhse^Vo>>jt!W)3 z2L8BLEH#+C*$`N+))@wX31WJsql(qfjJLMe4ofin;6}~}y(V3flAQdBJ$2If5vQ<6 zFy5l+);E8vTePWuHl5Nd>Ti^Gz}X9PvP&z#imF|PbnqD}>lQFolvv|f2Q_;~&2mL4S3-i1!f6vq@Cbz?diUp;n3#|;rqP}k>e(#?3tiiwn!rtd zC(z}GU}n-9!K;!Oq6Ad08l@7;`##d% zFh-ep`;Cv;$7D#S98!In-Q0{;`~gtf(WhFxHZ~Rxz|x1IfyfJq3-{vbgD4yhcMkjp zmpCuYolF^lWmQxV)EkA!p%$N%xXgy__B+thg3Nr)v@aZr*oCp}VTyz@^EPJBlVCeh zRXlw4xwIaqzOe5l;d%PLQMIK!5^ju<7U<#iT}_B>lA#gN^KJQD)w zlR;%-=LpNN2$$+>Wo}q%Y?9PjmtDrRSfn^v45ZjQI5-?rtDQF$OpFh@>|F#g64Ta> zaG^J*&X_r@Ty_&zx9RpwtyFm@zW?S6LL|OEKs_n`zVgaGtXT+^DkD2zhdP5 ewWZVs78gf9)h75I0Y2Jjob`mCuJO2b@4o>TY6)ck literal 9417 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 diff --git a/tests/ragger/snapshots/flex/test_eip712_advanced_filtering_verbose/00014.png b/tests/ragger/snapshots/flex/test_eip712_advanced_filtering_verbose/00014.png new file mode 100644 index 0000000000000000000000000000000000000000..8b981d44ccb87c00bd8e735f53c91f5b445bd6b1 GIT binary patch literal 6132 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 literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering/00005.png b/tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering/00005.png index 53ae65195fbea5b281a1bc1a80351dbf1cd79ff8..ec78b4506201279b7ecbb4403e986600141cba31 100644 GIT binary patch delta 558 zcmV+}0@3~K0>%W8BYy%7NklrSWtVES+uzzl`hpQDQYtk9>*d+ow zU@9B_D99XG+abAQbSHuwPzzMp?Pf>>Pia94nn5d%*VxLgS_*LvurqZB6jD-g8EPKL ze=Jx*Cr9Y`k`#0?Y%s;w6>KV zgP#8J+ty=tL4U^DAHu4Ie?~E`PklR^ZNdTvc+`Bp-qoAIhD4{J4)rNJvow9T(y(V` zA~XW});@Cvo!$+RJrfak!0dY+%ggMIpxVcSv|}4l#|_|vyck{gp*eLA1{@{c3ksFPB%TAAeZ*ORb^EI-;i}d8;7mEOx3h zVLjF7VcEw%9hfHulp;J!;BL*}!E_=RxaxyyK`g-S2g0#IU4NxJ`#HaZH6Q27PnVxV z;?6KWk2Br}IBDs=s`BIEm^We`@*lGY+A+fHtpY3JJ3Gst)D}5<5<8;$s@4ulomUY@(*zv{;6brS>*F|6(VX!vd3da<<& z^B=9qU}Jy-2Oi7kb2e9rvD;h~wg_JHqWibVf@SlAE}eTaA%S&9>5K(0qjxZg#PU8` zmj93|KzZH5cE9^)M~7n-)t{3<=8ie>+8oon0PpNyWrkCjvT zMxtbB8QYe#xAuFdW!B#8PE+2e{B}aMYM!HMcWH4vf0_Ghy*;mO%U?L%mTW7!zT}Je gLwk2dxaSM<^Z(2}wxaN_tR+ay)78&qol`;+0KAZ&S^xk5 diff --git a/tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering/00006.png b/tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering/00006.png index 657887225857cf48be8a8daed2cb3e89d4b29ece..53ae65195fbea5b281a1bc1a80351dbf1cd79ff8 100644 GIT binary patch delta 337 zcmey%^oD7IO1-hCi(^Q|oVPav`I;33TrXx`p1a|{>c;7H69f)1tnK}1_-)>Lv9$~H zAFaq>V}Jt(9?R!*Hdl$U+gug42wwA|`?tt~W%GkBoqIANfptddj0G>FcQA>>@;+LY z|Bx#{dELTxzx!w8UUB|8RK5@-XT0FWqrTby92V4D?=0B<=bPcZg8%A^GEXe2pXqpI zNxfm#0vGY1M^mM%nfq(KJ+E!cUpU>CY%99Hzj4-;J5hht#0pj z^#9@1sLK;CE54XuefJROGCRgZUbWXBk9~WeThLU0Q`4iWuO>iVr1K`D#hTWitG2LJbl{xH#~Rq+?=K-+vfC})E&6F z@5lAeSDtRMVcZx!aqGa5zhIs*He8&r_HtpZV5M#|^ ydh?e5zlAMgw-$Yhy2~hY*m8O9PiA<4-2TmASuS-mz3kmhkeH{dpUXO@geCz0VyPMc diff --git a/tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering/00007.png b/tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering/00007.png new file mode 100644 index 0000000000000000000000000000000000000000..657887225857cf48be8a8daed2cb3e89d4b29ece GIT binary patch literal 381 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9dba4!+nDh2#G~Xcw0f)e( zJDk7cg{nU`wU4`s1;0 z?{f>9Zfbf|_00eLCwPudd#p2Mzfg8-=Z~Y&(Z3(6-dSPln_e}2 z&8bJe=5=w3_V0Wxpw!uqXV@ zTyg#0l&4R7|Ayyoo}1J3WZRs6lez;p_x-s3`O4ERHjEo5Zk@S4@1z`Oka)v{pj(C~ z>TB;CrkB0D2@>;k^>bP0l+XkKqsFS~ literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering_verbose/00012.png b/tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering_verbose/00012.png index 53ae65195fbea5b281a1bc1a80351dbf1cd79ff8..b465a20856b250201a4bcdb73f2b97c4c71471df 100644 GIT binary patch delta 401 zcmV;C0dD^60;>a%B!6;AL_t(|obA{_62c%1K+))UlivSG+{J|sA_R!F5UT&JDq^ew z14RS?006)aA%qZu_g&zeF5WlrluqGo+v3aGb!>^Bjn}bT`fk}jZEzt1Co1@_#h`0}zeNMHV?NWwjxk z#=itLX18cn+w$4&yNlExS>zv(RvXb4TX~PE2fXj)2=q$_HSnn^Rd90LzjPJ7k;AvgJUX^q!?|o?11@WPchZ)ntD%#=sL*$WtfD vjKNT(7XSbN00000000000000080HSyt1T)25!Rdl015yANkvXXu0mjfaC5c;7H69f)1tnK}1_-)>Lv9$~H zAFaq>V}Jt(9?R!*Hdl$U+gug42wwA|`?tt~W%GkBoqIANfptddj0G>FcQA>>@;+LY z|Bx#{dELTxzx!w8UUB|8RK5@-XT0FWqrTby92V4D?=0B<=bPcZg8%A^GEXe2pXqpI zNxfm#0vGY1M^mM%nfq(KJ+E!cUpU>CY%99Hc;7H69f)1tnK}1_-)>Lv9$~H zAFaq>V}Jt(9?R!*Hdl$U+gug42wwA|`?tt~W%GkBoqIANfptddj0G>FcQA>>@;+LY z|Bx#{dELTxzx!w8UUB|8RK5@-XT0FWqrTby92V4D?=0B<=bPcZg8%A^GEXe2pXqpI zNxfm#0vGY1M^mM%nfq(KJ+E!cUpU>CY%99Hzj4-;J5hht#0pj z^#9@1sLK;CE54XuefJROGCRgZUbWXBk9~WeThLU0Q`4iWuO>iVr1K`D#hTWitG2LJbl{xH#~Rq+?=K-+vfC})E&6F z@5lAeSDtRMVcZx!aqGa5zhIs*He8&r_HtpZV5M#|^ ydh?e5zlAMgw-$Yhy2~hY*m8O9PiA<4-2TmASuS-mz3kmhkeH{dpUXO@geCz0VyPMc diff --git a/tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering_verbose/00014.png b/tests/ragger/snapshots/nanosp/test_eip712_advanced_filtering_verbose/00014.png new file mode 100644 index 0000000000000000000000000000000000000000..657887225857cf48be8a8daed2cb3e89d4b29ece GIT binary patch literal 381 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9dba4!+nDh2#G~Xcw0f)e( zJDk7cg{nU`wU4`s1;0 z?{f>9Zfbf|_00eLCwPudd#p2Mzfg8-=Z~Y&(Z3(6-dSPln_e}2 z&8bJe=5=w3_V0Wxpw!uqXV@ zTyg#0l&4R7|Ayyoo}1J3WZRs6lez;p_x-s3`O4ERHjEo5Zk@S4@1z`Oka)v{pj(C~ z>TB;CrkB0D2@>;k^>bP0l+XkKqsFS~ literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanox/test_eip712_advanced_filtering/00005.png b/tests/ragger/snapshots/nanox/test_eip712_advanced_filtering/00005.png index 53ae65195fbea5b281a1bc1a80351dbf1cd79ff8..ec78b4506201279b7ecbb4403e986600141cba31 100644 GIT binary patch delta 558 zcmV+}0@3~K0>%W8BYy%7NklrSWtVES+uzzl`hpQDQYtk9>*d+ow zU@9B_D99XG+abAQbSHuwPzzMp?Pf>>Pia94nn5d%*VxLgS_*LvurqZB6jD-g8EPKL ze=Jx*Cr9Y`k`#0?Y%s;w6>KV zgP#8J+ty=tL4U^DAHu4Ie?~E`PklR^ZNdTvc+`Bp-qoAIhD4{J4)rNJvow9T(y(V` zA~XW});@Cvo!$+RJrfak!0dY+%ggMIpxVcSv|}4l#|_|vyck{gp*eLA1{@{c3ksFPB%TAAeZ*ORb^EI-;i}d8;7mEOx3h zVLjF7VcEw%9hfHulp;J!;BL*}!E_=RxaxyyK`g-S2g0#IU4NxJ`#HaZH6Q27PnVxV z;?6KWk2Br}IBDs=s`BIEm^We`@*lGY+A+fHtpY3JJ3Gst)D}5<5<8;$s@4ulomUY@(*zv{;6brS>*F|6(VX!vd3da<<& z^B=9qU}Jy-2Oi7kb2e9rvD;h~wg_JHqWibVf@SlAE}eTaA%S&9>5K(0qjxZg#PU8` zmj93|KzZH5cE9^)M~7n-)t{3<=8ie>+8oon0PpNyWrkCjvT zMxtbB8QYe#xAuFdW!B#8PE+2e{B}aMYM!HMcWH4vf0_Ghy*;mO%U?L%mTW7!zT}Je gLwk2dxaSM<^Z(2}wxaN_tR+ay)78&qol`;+0KAZ&S^xk5 diff --git a/tests/ragger/snapshots/nanox/test_eip712_advanced_filtering/00006.png b/tests/ragger/snapshots/nanox/test_eip712_advanced_filtering/00006.png index 657887225857cf48be8a8daed2cb3e89d4b29ece..53ae65195fbea5b281a1bc1a80351dbf1cd79ff8 100644 GIT binary patch delta 337 zcmey%^oD7IO1-hCi(^Q|oVPav`I;33TrXx`p1a|{>c;7H69f)1tnK}1_-)>Lv9$~H zAFaq>V}Jt(9?R!*Hdl$U+gug42wwA|`?tt~W%GkBoqIANfptddj0G>FcQA>>@;+LY z|Bx#{dELTxzx!w8UUB|8RK5@-XT0FWqrTby92V4D?=0B<=bPcZg8%A^GEXe2pXqpI zNxfm#0vGY1M^mM%nfq(KJ+E!cUpU>CY%99Hzj4-;J5hht#0pj z^#9@1sLK;CE54XuefJROGCRgZUbWXBk9~WeThLU0Q`4iWuO>iVr1K`D#hTWitG2LJbl{xH#~Rq+?=K-+vfC})E&6F z@5lAeSDtRMVcZx!aqGa5zhIs*He8&r_HtpZV5M#|^ ydh?e5zlAMgw-$Yhy2~hY*m8O9PiA<4-2TmASuS-mz3kmhkeH{dpUXO@geCz0VyPMc diff --git a/tests/ragger/snapshots/nanox/test_eip712_advanced_filtering/00007.png b/tests/ragger/snapshots/nanox/test_eip712_advanced_filtering/00007.png new file mode 100644 index 0000000000000000000000000000000000000000..657887225857cf48be8a8daed2cb3e89d4b29ece GIT binary patch literal 381 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9dba4!+nDh2#G~Xcw0f)e( zJDk7cg{nU`wU4`s1;0 z?{f>9Zfbf|_00eLCwPudd#p2Mzfg8-=Z~Y&(Z3(6-dSPln_e}2 z&8bJe=5=w3_V0Wxpw!uqXV@ zTyg#0l&4R7|Ayyoo}1J3WZRs6lez;p_x-s3`O4ERHjEo5Zk@S4@1z`Oka)v{pj(C~ z>TB;CrkB0D2@>;k^>bP0l+XkKqsFS~ literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanox/test_eip712_advanced_filtering_verbose/00012.png b/tests/ragger/snapshots/nanox/test_eip712_advanced_filtering_verbose/00012.png index 53ae65195fbea5b281a1bc1a80351dbf1cd79ff8..b465a20856b250201a4bcdb73f2b97c4c71471df 100644 GIT binary patch delta 401 zcmV;C0dD^60;>a%B!6;AL_t(|obA{_62c%1K+))UlivSG+{J|sA_R!F5UT&JDq^ew z14RS?006)aA%qZu_g&zeF5WlrluqGo+v3aGb!>^Bjn}bT`fk}jZEzt1Co1@_#h`0}zeNMHV?NWwjxk z#=itLX18cn+w$4&yNlExS>zv(RvXb4TX~PE2fXj)2=q$_HSnn^Rd90LzjPJ7k;AvgJUX^q!?|o?11@WPchZ)ntD%#=sL*$WtfD vjKNT(7XSbN00000000000000080HSyt1T)25!Rdl015yANkvXXu0mjfaC5c;7H69f)1tnK}1_-)>Lv9$~H zAFaq>V}Jt(9?R!*Hdl$U+gug42wwA|`?tt~W%GkBoqIANfptddj0G>FcQA>>@;+LY z|Bx#{dELTxzx!w8UUB|8RK5@-XT0FWqrTby92V4D?=0B<=bPcZg8%A^GEXe2pXqpI zNxfm#0vGY1M^mM%nfq(KJ+E!cUpU>CY%99Hc;7H69f)1tnK}1_-)>Lv9$~H zAFaq>V}Jt(9?R!*Hdl$U+gug42wwA|`?tt~W%GkBoqIANfptddj0G>FcQA>>@;+LY z|Bx#{dELTxzx!w8UUB|8RK5@-XT0FWqrTby92V4D?=0B<=bPcZg8%A^GEXe2pXqpI zNxfm#0vGY1M^mM%nfq(KJ+E!cUpU>CY%99Hzj4-;J5hht#0pj z^#9@1sLK;CE54XuefJROGCRgZUbWXBk9~WeThLU0Q`4iWuO>iVr1K`D#hTWitG2LJbl{xH#~Rq+?=K-+vfC})E&6F z@5lAeSDtRMVcZx!aqGa5zhIs*He8&r_HtpZV5M#|^ ydh?e5zlAMgw-$Yhy2~hY*m8O9PiA<4-2TmASuS-mz3kmhkeH{dpUXO@geCz0VyPMc diff --git a/tests/ragger/snapshots/nanox/test_eip712_advanced_filtering_verbose/00014.png b/tests/ragger/snapshots/nanox/test_eip712_advanced_filtering_verbose/00014.png new file mode 100644 index 0000000000000000000000000000000000000000..657887225857cf48be8a8daed2cb3e89d4b29ece GIT binary patch literal 381 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9dba4!+nDh2#G~Xcw0f)e( zJDk7cg{nU`wU4`s1;0 z?{f>9Zfbf|_00eLCwPudd#p2Mzfg8-=Z~Y&(Z3(6-dSPln_e}2 z&8bJe=5=w3_V0Wxpw!uqXV@ zTyg#0l&4R7|Ayyoo}1J3WZRs6lez;p_x-s3`O4ERHjEo5Zk@S4@1z`Oka)v{pj(C~ z>TB;CrkB0D2@>;k^>bP0l+XkKqsFS~ literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/test_eip712_advanced_filtering/00005.png b/tests/ragger/snapshots/stax/test_eip712_advanced_filtering/00005.png index 9c2fa5d78480122011b440c23f35eaac1880e3d8..6797fddee0c78312300663f60b8952f6690cab11 100644 GIT binary patch literal 9761 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 literal 9157 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 kJq7-Ia{hn1zUkIYuqhstWK#zIp2KEgW^BAC)r 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 diff --git a/tests/ragger/snapshots/stax/test_eip712_advanced_filtering/00007.png b/tests/ragger/snapshots/stax/test_eip712_advanced_filtering/00007.png new file mode 100644 index 0000000000000000000000000000000000000000..54aba60e5f2da7d31c0ac5e502cc44eb7bea3741 GIT binary patch literal 4916 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 literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/test_eip712_advanced_filtering_verbose/00012.png b/tests/ragger/snapshots/stax/test_eip712_advanced_filtering_verbose/00012.png index 9c2fa5d78480122011b440c23f35eaac1880e3d8..23d3c525a6763d78da70906874daaace62041830 100644 GIT binary patch literal 7855 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 O;%M*sEBW7-e*Z6scb?1u literal 9157 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 kJq7-Ia{hn1zUkIYuqhstWK#zIp2KEgW^BAC)r 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 diff --git a/tests/ragger/snapshots/stax/test_eip712_advanced_filtering_verbose/00014.png b/tests/ragger/snapshots/stax/test_eip712_advanced_filtering_verbose/00014.png new file mode 100644 index 0000000000000000000000000000000000000000..54aba60e5f2da7d31c0ac5e502cc44eb7bea3741 GIT binary patch literal 4916 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 literal 0 HcmV?d00001 diff --git a/tests/ragger/test_eip712.py b/tests/ragger/test_eip712.py index 26a3500c9..c293e3b69 100644 --- a/tests/ragger/test_eip712.py +++ b/tests/ragger/test_eip712.py @@ -209,6 +209,7 @@ def test_eip712_advanced_filtering(firmware: Firmware, "token_send": "0x6B175474E89094C44Da98b954EedeAC495271d0F", "value_send": 24500000000000000000, "token_recv": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "expires": 1714559400, }, "primaryType": "Transfer", "types": { @@ -224,6 +225,7 @@ def test_eip712_advanced_filtering(firmware: Firmware, {"name": "token_send", "type": "address"}, {"name": "value_send", "type": "uint256"}, {"name": "token_recv", "type": "address"}, + {"name": "expires", "type": "uint64"}, ] } } @@ -271,6 +273,10 @@ def test_eip712_advanced_filtering(firmware: Firmware, "type": "raw", "name": "With", }, + "expires": { + "type": "datetime", + "name": "Will Expire" + }, } }