From 565c6fab669e74ad8417ffd62dd1a3bb684976a8 Mon Sep 17 00:00:00 2001 From: Charles-Edouard de la Vergne Date: Mon, 25 Mar 2024 14:48:17 +0100 Subject: [PATCH 01/35] Update ragger test configuration and setup --- tests/ragger/requirements.txt | 4 +++- tests/ragger/setup.cfg | 20 ++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 tests/ragger/setup.cfg diff --git a/tests/ragger/requirements.txt b/tests/ragger/requirements.txt index 1149a75..2cf1b16 100644 --- a/tests/ragger/requirements.txt +++ b/tests/ragger/requirements.txt @@ -1,3 +1,5 @@ pytest ecdsa -./client/ +web3~=6.0 +ragger[speculos] +py_ecc diff --git a/tests/ragger/setup.cfg b/tests/ragger/setup.cfg new file mode 100644 index 0000000..c79fd88 --- /dev/null +++ b/tests/ragger/setup.cfg @@ -0,0 +1,20 @@ +[tool:pytest] +addopts = --strict-markers + +[pylint] +disable = C0114, # missing-module-docstring + C0115, # missing-class-docstring + C0116, # missing-function-docstring + C0103, # invalid-name + R0801, # duplicate-code + R0913 # too-many-arguments +extension-pkg-whitelist=hid + +[pycodestyle] +max-line-length = 90 + +[mypy-hid.*] +ignore_missing_imports = True + +[mypy-pytest.*] +ignore_missing_imports = True From fa3e87a06c2205eb4cb492b7b8da09370ce21dd5 Mon Sep 17 00:00:00 2001 From: Charles-Edouard de la Vergne Date: Tue, 26 Mar 2024 09:43:26 +0100 Subject: [PATCH 02/35] Fix pylint issues --- tests/ragger/conftest.py | 2 +- tests/ragger/constants.py | 2 +- tests/ragger/test_blind_sign.py | 10 +++-- tests/ragger/test_domain_name.py | 77 +++++++++++++------------------- tests/ragger/test_eip712.py | 63 +++++++++++++------------- tests/ragger/test_get_address.py | 28 ++++++------ tests/ragger/test_nft.py | 68 ++++++++++++++-------------- tests/ragger/test_sign.py | 22 ++++----- 8 files changed, 134 insertions(+), 138 deletions(-) diff --git a/tests/ragger/conftest.py b/tests/ragger/conftest.py index 6dd6f4b..1bb7b84 100644 --- a/tests/ragger/conftest.py +++ b/tests/ragger/conftest.py @@ -1,4 +1,4 @@ -from ragger.conftest import configuration +#from ragger.conftest import configuration # Pull all features from the base ragger conftest using the overridden configuration pytest_plugins = ("ragger.conftest.base_conftest", ) diff --git a/tests/ragger/constants.py b/tests/ragger/constants.py index 0f375a7..5a89b08 100644 --- a/tests/ragger/constants.py +++ b/tests/ragger/constants.py @@ -2,4 +2,4 @@ from pathlib import Path import os ROOT_SNAPSHOT_PATH = Path(__file__).parent -ABIS_FOLDER = "%s/abis" % (os.path.dirname(__file__)) +ABIS_FOLDER = f"{os.path.dirname(__file__)}/abis" diff --git a/tests/ragger/test_blind_sign.py b/tests/ragger/test_blind_sign.py index f3a9acb..a86f421 100644 --- a/tests/ragger/test_blind_sign.py +++ b/tests/ragger/test_blind_sign.py @@ -1,11 +1,13 @@ import json import pytest +from web3 import Web3 + +from ledger_app_clients.ethereum.client import EthAppClient, StatusWord from ragger.backend import BackendInterface from ragger.firmware import Firmware from ragger.navigator import Navigator, NavInsID from ragger.error import ExceptionRAPDU -from ledger_app_clients.ethereum.client import EthAppClient, StatusWord -from web3 import Web3 + from constants import ROOT_SNAPSHOT_PATH, ABIS_FOLDER @@ -16,7 +18,7 @@ def test_blind_sign(firmware: Firmware, navigator: Navigator): app_client = EthAppClient(backend) - with open("%s/erc20.json" % (ABIS_FOLDER)) as file: + with open(f"{ABIS_FOLDER}/erc20.json", encoding="utf-8") as file: contract = Web3().eth.contract( abi=json.load(file), address=None @@ -41,7 +43,7 @@ def test_blind_sign(firmware: Firmware, pass assert e.value.status == StatusWord.INVALID_DATA - moves = list() + moves = [] if firmware.device.startswith("nano"): if firmware.device == "nanos": moves += [NavInsID.RIGHT_CLICK] diff --git a/tests/ragger/test_domain_name.py b/tests/ragger/test_domain_name.py index 90f5419..9b6f59d 100644 --- a/tests/ragger/test_domain_name.py +++ b/tests/ragger/test_domain_name.py @@ -1,15 +1,15 @@ import pytest -from ragger.backend import BackendInterface -from ragger.firmware import Firmware -from ragger.error import ExceptionRAPDU -from ragger.navigator import Navigator, NavInsID -from constants import ROOT_SNAPSHOT_PATH +from web3 import Web3 import ledger_app_clients.ethereum.response_parser as ResponseParser from ledger_app_clients.ethereum.client import EthAppClient, StatusWord from ledger_app_clients.ethereum.settings import SettingID, settings_toggle +from ragger.backend import BackendInterface +from ragger.firmware import Firmware +from ragger.error import ExceptionRAPDU +from ragger.navigator import Navigator, NavInsID -from web3 import Web3 +from constants import ROOT_SNAPSHOT_PATH # Values used across all tests @@ -25,13 +25,14 @@ GAS_LIMIT = 21000 AMOUNT = 1.22 -@pytest.fixture(params=[False, True]) -def verbose(request) -> bool: +@pytest.fixture(name="verbose", params=[False, True]) +def verbose_fixture(request) -> bool: return request.param -def common(app_client: EthAppClient) -> int: - if app_client._client.firmware.device == "nanos": +def common(firmware: Firmware, app_client: EthAppClient) -> int: + + if firmware.device == "nanos": pytest.skip("Not supported on LNS") challenge = app_client.get_challenge() return ResponseParser.challenge(challenge.data) @@ -40,10 +41,9 @@ def common(app_client: EthAppClient) -> int: def test_send_fund(firmware: Firmware, backend: BackendInterface, navigator: Navigator, - test_name: str, verbose: bool): app_client = EthAppClient(backend) - challenge = common(app_client) + challenge = common(firmware, app_client) if verbose: settings_toggle(firmware, navigator, [SettingID.VERBOSE_ENS]) @@ -59,7 +59,7 @@ def test_send_fund(firmware: Firmware, "value": Web3.to_wei(AMOUNT, "ether"), "chainId": CHAIN_ID }): - moves = list() + moves = [] if firmware.device.startswith("nano"): moves += [NavInsID.RIGHT_CLICK] * 4 if verbose: @@ -75,11 +75,9 @@ def test_send_fund(firmware: Firmware, moves) -def test_send_fund_wrong_challenge(firmware: Firmware, - backend: BackendInterface, - navigator: Navigator): +def test_send_fund_wrong_challenge(firmware: Firmware, backend: BackendInterface): app_client = EthAppClient(backend) - challenge = common(app_client) + challenge = common(firmware, app_client) with pytest.raises(ExceptionRAPDU) as e: app_client.provide_domain_name(~challenge & 0xffffffff, NAME, ADDR) @@ -88,10 +86,9 @@ def test_send_fund_wrong_challenge(firmware: Firmware, def test_send_fund_wrong_addr(firmware: Firmware, backend: BackendInterface, - navigator: Navigator, - test_name: str): + navigator: Navigator): app_client = EthAppClient(backend) - challenge = common(app_client) + challenge = common(firmware, app_client) app_client.provide_domain_name(challenge, NAME, ADDR) @@ -107,7 +104,7 @@ def test_send_fund_wrong_addr(firmware: Firmware, "value": Web3.to_wei(AMOUNT, "ether"), "chainId": CHAIN_ID }): - moves = list() + moves = [] if firmware.device.startswith("nano"): moves += [NavInsID.RIGHT_CLICK] * 4 moves += [NavInsID.BOTH_CLICK] @@ -121,10 +118,9 @@ def test_send_fund_wrong_addr(firmware: Firmware, def test_send_fund_non_mainnet(firmware: Firmware, backend: BackendInterface, - navigator: Navigator, - test_name: str): + navigator: Navigator): app_client = EthAppClient(backend) - challenge = common(app_client) + challenge = common(firmware, app_client) app_client.provide_domain_name(challenge, NAME, ADDR) @@ -137,7 +133,7 @@ def test_send_fund_non_mainnet(firmware: Firmware, "value": Web3.to_wei(AMOUNT, "ether"), "chainId": 5 }): - moves = list() + moves = [] if firmware.device.startswith("nano"): moves += [NavInsID.RIGHT_CLICK] * 5 moves += [NavInsID.BOTH_CLICK] @@ -151,10 +147,9 @@ def test_send_fund_non_mainnet(firmware: Firmware, def test_send_fund_unknown_chain(firmware: Firmware, backend: BackendInterface, - navigator: Navigator, - test_name: str): + navigator: Navigator): app_client = EthAppClient(backend) - challenge = common(app_client) + challenge = common(firmware, app_client) app_client.provide_domain_name(challenge, NAME, ADDR) @@ -167,7 +162,7 @@ def test_send_fund_unknown_chain(firmware: Firmware, "value": Web3.to_wei(AMOUNT, "ether"), "chainId": 9 }): - moves = list() + moves = [] if firmware.device.startswith("nano"): moves += [NavInsID.RIGHT_CLICK] * 5 moves += [NavInsID.BOTH_CLICK] @@ -179,44 +174,36 @@ def test_send_fund_unknown_chain(firmware: Firmware, moves) -def test_send_fund_domain_too_long(firmware: Firmware, - backend: BackendInterface, - navigator: Navigator): +def test_send_fund_domain_too_long(firmware: Firmware, backend: BackendInterface): app_client = EthAppClient(backend) - challenge = common(app_client) + challenge = common(firmware, app_client) with pytest.raises(ExceptionRAPDU) as e: app_client.provide_domain_name(challenge, "ledger" + "0"*25 + ".eth", ADDR) assert e.value.status == StatusWord.INVALID_DATA -def test_send_fund_domain_invalid_character(firmware: Firmware, - backend: BackendInterface, - navigator: Navigator): +def test_send_fund_domain_invalid_character(firmware: Firmware, backend: BackendInterface): app_client = EthAppClient(backend) - challenge = common(app_client) + challenge = common(firmware, app_client) with pytest.raises(ExceptionRAPDU) as e: app_client.provide_domain_name(challenge, "l\xe8dger.eth", ADDR) assert e.value.status == StatusWord.INVALID_DATA -def test_send_fund_uppercase(firmware: Firmware, - backend: BackendInterface, - navigator: Navigator): +def test_send_fund_uppercase(firmware: Firmware, backend: BackendInterface): app_client = EthAppClient(backend) - challenge = common(app_client) + challenge = common(firmware, app_client) with pytest.raises(ExceptionRAPDU) as e: app_client.provide_domain_name(challenge, NAME.upper(), ADDR) assert e.value.status == StatusWord.INVALID_DATA -def test_send_fund_domain_non_ens(firmware: Firmware, - backend: BackendInterface, - navigator: Navigator): +def test_send_fund_domain_non_ens(firmware: Firmware, backend: BackendInterface): app_client = EthAppClient(backend) - challenge = common(app_client) + challenge = common(firmware, app_client) with pytest.raises(ExceptionRAPDU) as e: app_client.provide_domain_name(challenge, "ledger.hte", ADDR) diff --git a/tests/ragger/test_eip712.py b/tests/ragger/test_eip712.py index 1aedc00..4b58287 100644 --- a/tests/ragger/test_eip712.py +++ b/tests/ragger/test_eip712.py @@ -1,22 +1,23 @@ import fnmatch import os -import pytest import time from configparser import ConfigParser from functools import partial from pathlib import Path -from ragger.backend import BackendInterface -from ragger.firmware import Firmware -from ragger.navigator import Navigator, NavInsID import json from typing import Optional -from constants import ROOT_SNAPSHOT_PATH +import pytest import ledger_app_clients.ethereum.response_parser as ResponseParser from ledger_app_clients.ethereum.client import EthAppClient from ledger_app_clients.ethereum.eip712 import InputData from ledger_app_clients.ethereum.settings import SettingID, settings_toggle +from ragger.backend import BackendInterface +from ragger.firmware import Firmware +from ragger.navigator import Navigator, NavInsID +from constants import ROOT_SNAPSHOT_PATH + class SnapshotsConfig: test_name: str @@ -32,7 +33,7 @@ snaps_config: Optional[SnapshotsConfig] = None def eip712_json_path() -> str: - return "%s/eip712_input_files" % (os.path.dirname(__file__)) + return f"{os.path.dirname(__file__)}/eip712_input_files" def input_files() -> list[str]: @@ -43,18 +44,18 @@ def input_files() -> list[str]: return sorted(files) -@pytest.fixture(params=input_files()) -def input_file(request) -> str: +@pytest.fixture(name="input_file", params=input_files()) +def input_file_fixture(request) -> str: return Path(request.param) -@pytest.fixture(params=[True, False]) -def verbose(request) -> bool: +@pytest.fixture(name="verbose", params=[True, False]) +def verbose_fixture(request) -> bool: return request.param -@pytest.fixture(params=[False, True]) -def filtering(request) -> bool: +@pytest.fixture(name="filtering", params=[False, True]) +def filtering_fixture(request) -> bool: return request.param @@ -66,7 +67,7 @@ def test_eip712_legacy(firmware: Firmware, BIP32_PATH, bytes.fromhex('6137beb405d9ff777172aa879e33edb34a1460e701802746c5ef96e741710e59'), bytes.fromhex('eb4221181ff3f1a83ea7313993ca9218496e424604ba9492bb4052c03d5c3df8')): - moves = list() + moves = [] if firmware.device.startswith("nano"): moves += [NavInsID.RIGHT_CLICK] if firmware.device == "nanos": @@ -87,14 +88,14 @@ def test_eip712_legacy(firmware: Firmware, assert s == bytes.fromhex("52d8ba9153de9255da220ffd36762c0b027701a3b5110f0a765f94b16a9dfb55") -def autonext(fw: Firmware, nav: Navigator): - moves = list() - if fw.device.startswith("nano"): +def autonext(firmware: Firmware, navigator: Navigator): + moves = [] + if firmware.device.startswith("nano"): moves = [NavInsID.RIGHT_CLICK] else: moves = [NavInsID.USE_CASE_REVIEW_TAP] if snaps_config is not None: - nav.navigate_and_compare(ROOT_SNAPSHOT_PATH, + navigator.navigate_and_compare(ROOT_SNAPSHOT_PATH, snaps_config.test_name, moves, screen_change_before_first_instruction=False, @@ -102,13 +103,13 @@ def autonext(fw: Firmware, nav: Navigator): snap_start_idx=snaps_config.idx) snaps_config.idx += 1 else: - nav.navigate(moves, + navigator.navigate(moves, screen_change_before_first_instruction=False, screen_change_after_last_instruction=False) -def eip712_new_common(fw: Firmware, - nav: Navigator, +def eip712_new_common(firmware: Firmware, + navigator: Navigator, app_client: EthAppClient, json_data: dict, filters: Optional[dict], @@ -116,10 +117,10 @@ def eip712_new_common(fw: Firmware, assert InputData.process_data(app_client, json_data, filters, - partial(autonext, fw, nav)) + partial(autonext, firmware, navigator)) with app_client.eip712_sign_new(BIP32_PATH): - moves = list() - if fw.device.startswith("nano"): + moves = [] + if firmware.device.startswith("nano"): # need to skip the message hash if not verbose and filters is None: moves = [NavInsID.RIGHT_CLICK] * 2 @@ -131,13 +132,13 @@ def eip712_new_common(fw: Firmware, moves += [NavInsID.USE_CASE_REVIEW_TAP] moves += [NavInsID.USE_CASE_REVIEW_CONFIRM] if snaps_config is not None: - nav.navigate_and_compare(ROOT_SNAPSHOT_PATH, + navigator.navigate_and_compare(ROOT_SNAPSHOT_PATH, snaps_config.test_name, moves, snap_start_idx=snaps_config.idx) snaps_config.idx += 1 else: - nav.navigate(moves) + navigator.navigate(moves) return ResponseParser.signature(app_client.response().data) @@ -151,16 +152,16 @@ def test_eip712_new(firmware: Firmware, if firmware.device == "nanos": pytest.skip("Not supported on LNS") else: - test_path = "%s/%s" % (input_file.parent, "-".join(input_file.stem.split("-")[:-1])) - conf_file = "%s.ini" % (test_path) + test_path = f"{input_file.parent}/{'-'.join(input_file.stem.split('-')[:-1])}" + conf_file = f"{test_path}.ini" filters = None if filtering: try: - with open("%s-filter.json" % (test_path)) as f: + with open(f"{test_path}-filter.json", encoding="utf-8") as f: filters = json.load(f) except (IOError, json.decoder.JSONDecodeError) as e: - pytest.skip("Filter file error: %s" % (e.strerror)) + pytest.skip(f"Filter file error: {e.strerror}") config = ConfigParser() config.read(conf_file) @@ -174,7 +175,7 @@ def test_eip712_new(firmware: Firmware, if verbose: settings_toggle(firmware, navigator, [SettingID.VERBOSE_EIP712]) - with open(input_file) as file: + with open(input_file, encoding="utf-8") as file: v, r, s = eip712_new_common(firmware, navigator, app_client, @@ -201,7 +202,7 @@ def test_eip712_address_substitution(firmware: Firmware, if verbose: test_name += "_verbose" snaps_config = SnapshotsConfig(test_name) - with open("%s/address_substitution.json" % (eip712_json_path())) as file: + with open(f"{eip712_json_path()}/address_substitution.json", encoding="utf-8") as file: data = json.load(file) app_client.provide_token_metadata("DAI", diff --git a/tests/ragger/test_get_address.py b/tests/ragger/test_get_address.py index de933c2..bb550d1 100644 --- a/tests/ragger/test_get_address.py +++ b/tests/ragger/test_get_address.py @@ -1,30 +1,32 @@ -import pytest from typing import Optional +import pytest + +from ledger_app_clients.ethereum.client import EthAppClient, StatusWord +import ledger_app_clients.ethereum.response_parser as ResponseParser + from ragger.error import ExceptionRAPDU from ragger.firmware import Firmware from ragger.backend import BackendInterface from ragger.navigator import Navigator, NavInsID -from ledger_app_clients.ethereum.client import EthAppClient, StatusWord -import ledger_app_clients.ethereum.response_parser as ResponseParser from ragger.bip import calculate_public_key_and_chaincode, CurveChoice + from constants import ROOT_SNAPSHOT_PATH -@pytest.fixture(params=[True, False]) -def with_chaincode(request) -> bool: +@pytest.fixture(name="with_chaincode", params=[True, False]) +def with_chaincode_fixture(request) -> bool: return request.param -@pytest.fixture(params=[None, 1, 2, 5, 137]) -def chain(request) -> Optional[int]: +@pytest.fixture(name="chain", params=[None, 1, 2, 5, 137]) +def chain_fixture(request) -> Optional[int]: return request.param def get_moves(firmware: Firmware, - navigator: BackendInterface, chain: Optional[int] = None, reject: bool = False): - moves = list() + moves = [] if firmware.is_nano: moves += [NavInsID.RIGHT_CLICK] @@ -56,7 +58,7 @@ def test_get_pk_rejected(firmware: Firmware, with app_client.get_public_addr(): navigator.navigate_and_compare(ROOT_SNAPSHOT_PATH, "get_pk_rejected", - get_moves(firmware, navigator, reject=True)) + get_moves(firmware, reject=True)) assert e.value.status == StatusWord.CONDITION_NOT_SATISFIED @@ -69,9 +71,9 @@ def test_get_pk(firmware: Firmware, with app_client.get_public_addr(chaincode=with_chaincode, chain_id=chain): navigator.navigate_and_compare(ROOT_SNAPSHOT_PATH, - "get_pk_%s" % (chain), - get_moves(firmware, navigator, chain=chain)) - pk, addr, chaincode = ResponseParser.pk_addr(app_client.response().data, with_chaincode) + f"get_pk_{chain}", + get_moves(firmware, chain=chain)) + pk, _, chaincode = ResponseParser.pk_addr(app_client.response().data, with_chaincode) ref_pk, ref_chaincode = calculate_public_key_and_chaincode(curve=CurveChoice.Secp256k1, path="m/44'/60'/0'/0/0") assert pk.hex() == ref_pk diff --git a/tests/ragger/test_nft.py b/tests/ragger/test_nft.py index 9046e39..454dd48 100644 --- a/tests/ragger/test_nft.py +++ b/tests/ragger/test_nft.py @@ -1,16 +1,18 @@ +from typing import Callable, Optional, Any +import json import pytest -from typing import Optional, Any -from pathlib import Path -from typing import Callable + +from web3 import Web3 + +from ledger_app_clients.ethereum.client import EthAppClient, StatusWord +import ledger_app_clients.ethereum.response_parser as ResponseParser +from ledger_app_clients.ethereum.utils import get_selector_from_data, recover_transaction + from ragger.error import ExceptionRAPDU from ragger.firmware import Firmware from ragger.backend import BackendInterface from ragger.navigator import Navigator, NavInsID -from ledger_app_clients.ethereum.client import EthAppClient, StatusWord -import ledger_app_clients.ethereum.response_parser as ResponseParser -from ledger_app_clients.ethereum.utils import get_selector_from_data, recover_transaction -from web3 import Web3 -import json + from constants import ROOT_SNAPSHOT_PATH, ABIS_FOLDER @@ -52,7 +54,7 @@ def common_nav_nft(is_nano: bool, nano_steps: int, stax_steps: int, reject: bool) -> list[NavInsID]: - moves = list() + moves = [] if is_nano: moves += [NavInsID.RIGHT_CLICK] * nano_steps if reject: @@ -71,23 +73,23 @@ def common_nav_nft(is_nano: bool, def snapshot_test_name(nft_type: str, fn: str, chain_id: int, reject: bool) -> str: - name = "%s_%s_%s" % (nft_type, fn, str(chain_id)) + name = f"{nft_type}_{fn}_{str(chain_id)}" if reject: name += "-rejected" return name -def common_test_nft(fw: Firmware, - back: BackendInterface, - nav: Navigator, +def common_test_nft(firmware: Firmware, + backend: BackendInterface, + navigator: Navigator, collec: NFTCollection, action: Action, reject: bool, plugin_name: str): global DEVICE_ADDR - app_client = EthAppClient(back) + app_client = EthAppClient(backend) - if app_client._client.firmware.name == "nanos": + if firmware.device == "nanos": pytest.skip("Not supported on LNS") if DEVICE_ADDR is None: # to only have to request it once @@ -111,12 +113,12 @@ def common_test_nft(fw: Firmware, "data": data, } with app_client.sign(BIP32_PATH, tx_params): - nav.navigate_and_compare(ROOT_SNAPSHOT_PATH, + navigator.navigate_and_compare(ROOT_SNAPSHOT_PATH, snapshot_test_name(plugin_name.lower(), action.fn_name, collec.chain_id, reject), - action.nav_fn(fw.is_nano, + action.nav_fn(firmware.is_nano, collec.chain_id, reject)) # verify signature @@ -126,13 +128,13 @@ def common_test_nft(fw: Firmware, def common_test_nft_reject(test_fn: Callable, - fw: Firmware, - back: BackendInterface, - nav: Navigator, + firmware: Firmware, + backend: BackendInterface, + navigator: Navigator, collec: NFTCollection, action: Action): with pytest.raises(ExceptionRAPDU) as e: - test_fn(fw, back, nav, collec, action, True) + test_fn(firmware, backend, navigator, collec, action, True) assert e.value.status == StatusWord.CONDITION_NOT_SATISFIED # ERC-721 @@ -140,13 +142,13 @@ def common_test_nft_reject(test_fn: Callable, ERC721_PLUGIN = "ERC721" -with open("%s/erc721.json" % (ABIS_FOLDER)) as file: +with open(f"{ABIS_FOLDER}/erc721.json", encoding="utf-8") as file: contract_erc721 = Web3().eth.contract( abi=json.load(file), address=bytes(20) ) -# ui nav functions +# ui navigator functions def nav_erc721_transfer_from(is_nano: bool, chain_id: int, @@ -212,13 +214,13 @@ actions_721 = [ ] -@pytest.fixture(params=collecs_721) -def collec_721(request) -> NFTCollection: +@pytest.fixture(name="collec_721", params=collecs_721) +def collec_721_fixture(request) -> NFTCollection: return request.param -@pytest.fixture(params=actions_721) -def action_721(request) -> Action: +@pytest.fixture(name="action_721", params=actions_721) +def action_721_fixture(request) -> Action: return request.param @@ -252,14 +254,14 @@ def test_erc721_reject(firmware: Firmware, ERC1155_PLUGIN = "ERC1155" -with open("%s/erc1155.json" % (ABIS_FOLDER)) as file: +with open(f"{ABIS_FOLDER}/erc1155.json", encoding="utf-8") as file: contract_erc1155 = Web3().eth.contract( abi=json.load(file), address=bytes(20) ) -# ui nav functions +# ui navigator functions def nav_erc1155_safe_transfer_from(is_nano: bool, chain_id: int, @@ -323,13 +325,13 @@ actions_1155 = [ ] -@pytest.fixture(params=collecs_1155) -def collec_1155(request) -> bool: +@pytest.fixture(name="collec_1155", params=collecs_1155) +def collec_1155_fixture(request) -> bool: return request.param -@pytest.fixture(params=actions_1155) -def action_1155(request) -> Action: +@pytest.fixture(name="action_1155", params=actions_1155) +def action_1155_fixture(request) -> Action: return request.param diff --git a/tests/ragger/test_sign.py b/tests/ragger/test_sign.py index 401be19..516db06 100644 --- a/tests/ragger/test_sign.py +++ b/tests/ragger/test_sign.py @@ -1,10 +1,12 @@ -from ragger.backend import BackendInterface -from ragger.firmware import Firmware -from ragger.navigator import Navigator, NavInsID +from web3 import Web3 + from ledger_app_clients.ethereum.client import EthAppClient import ledger_app_clients.ethereum.response_parser as ResponseParser from ledger_app_clients.ethereum.utils import recover_transaction -from web3 import Web3 + +from ragger.backend import BackendInterface +from ragger.firmware import Firmware +from ragger.navigator import Navigator, NavInsID # Values used across all tests @@ -17,18 +19,18 @@ GAS_LIMIT = 21000 AMOUNT = 1.22 -def common(fw: Firmware, - back: BackendInterface, - nav: Navigator, +def common(firmware: Firmware, + backend: BackendInterface, + navigator: Navigator, tx_params: dict): - app_client = EthAppClient(back) + app_client = EthAppClient(backend) with app_client.get_public_addr(display=False): pass _, DEVICE_ADDR, _ = ResponseParser.pk_addr(app_client.response().data) with app_client.sign(BIP32_PATH, tx_params): - if fw.device.startswith("nano"): + if firmware.device.startswith("nano"): next_action = NavInsID.RIGHT_CLICK confirm_action = NavInsID.BOTH_CLICK end_text = "Accept" @@ -36,7 +38,7 @@ def common(fw: Firmware, next_action = NavInsID.USE_CASE_REVIEW_TAP confirm_action = NavInsID.USE_CASE_REVIEW_CONFIRM end_text = "Sign" - nav.navigate_until_text(next_action, [confirm_action], end_text) + navigator.navigate_until_text(next_action, [confirm_action], end_text) # verify signature vrs = ResponseParser.signature(app_client.response().data) From 140ecc75fb45e18715d2b0de61abc178737b8efa Mon Sep 17 00:00:00 2001 From: Charles-Edouard de la Vergne Date: Wed, 3 Apr 2024 18:48:56 +0200 Subject: [PATCH 03/35] Adapt 'ledger_app_clients' - Add 'send_raw' function - Add error code 'EXCEPTION_OVERFLOW' --- client/CHANGELOG.md | 7 +++++++ .../src/ledger_app_clients/ethereum/__init__.py | 2 +- client/src/ledger_app_clients/ethereum/client.py | 16 ++++++++++++++++ .../ethereum/command_builder.py | 10 ++++++++++ .../ethereum/eip712/InputData.py | 4 ++-- 5 files changed, 36 insertions(+), 3 deletions(-) diff --git a/client/CHANGELOG.md b/client/CHANGELOG.md index b20c1b4..b67daf0 100644 --- a/client/CHANGELOG.md +++ b/client/CHANGELOG.md @@ -5,6 +5,13 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.4.1] - 2024-04-05 + +### Added + +- Add new function `send_raw`, allowing to send a raw payload APDU +- Add new error code definition + ## [0.4.0] - 2024-04-03 ### Added diff --git a/client/src/ledger_app_clients/ethereum/__init__.py b/client/src/ledger_app_clients/ethereum/__init__.py index ce05207..1f628c4 100644 --- a/client/src/ledger_app_clients/ethereum/__init__.py +++ b/client/src/ledger_app_clients/ethereum/__init__.py @@ -1,4 +1,4 @@ try: - from ledger_app_clients.ethereum.__version__ import __version__ # noqa + from __version__ import __version__ # noqa except ImportError: __version__ = "unknown version" # noqa diff --git a/client/src/ledger_app_clients/ethereum/client.py b/client/src/ledger_app_clients/ethereum/client.py index 3e1feaa..52dc06f 100644 --- a/client/src/ledger_app_clients/ethereum/client.py +++ b/client/src/ledger_app_clients/ethereum/client.py @@ -21,6 +21,7 @@ class StatusWord(IntEnum): INVALID_P1_P2 = 0x6b00 CONDITION_NOT_SATISFIED = 0x6985 REF_DATA_NOT_FOUND = 0x6a88 + EXCEPTION_OVERFLOW = 0x6807 class DomainNameTag(IntEnum): @@ -49,6 +50,15 @@ class EthAppClient: def response(self) -> Optional[RAPDU]: return self._client.last_async_response + def send_raw(self, cla: int, ins: int, p1: int, p2: int, payload: bytes): + header = bytearray() + header.append(cla) + header.append(ins) + header.append(p1) + header.append(p2) + header.append(len(payload)) + return self._exchange(header + payload) + def eip712_send_struct_def_struct_name(self, name: str): return self._exchange_async(self._cmd_builder.eip712_send_struct_def_struct_name(name)) @@ -131,6 +141,12 @@ class EthAppClient: bip32_path, chain_id)) + def get_eth2_public_addr(self, + display: bool = True, + bip32_path: str = "m/12381/3600/0/0"): + return self._exchange_async(self._cmd_builder.get_eth2_public_addr(display, + bip32_path)) + def provide_domain_name(self, challenge: int, name: str, addr: bytes) -> RAPDU: payload = format_tlv(DomainNameTag.STRUCTURE_TYPE, 3) # TrustedDomainName payload += format_tlv(DomainNameTag.STRUCTURE_VERSION, 1) diff --git a/client/src/ledger_app_clients/ethereum/command_builder.py b/client/src/ledger_app_clients/ethereum/command_builder.py index 0ba0809..9c60a6a 100644 --- a/client/src/ledger_app_clients/ethereum/command_builder.py +++ b/client/src/ledger_app_clients/ethereum/command_builder.py @@ -11,6 +11,7 @@ from .eip712 import EIP712FieldType class InsType(IntEnum): GET_PUBLIC_ADDR = 0x02 + GET_ETH2_PUBLIC_ADDR = 0x0e SIGN = 0x04 PERSONAL_SIGN = 0x08 PROVIDE_ERC20_TOKEN_INFORMATION = 0x0a @@ -250,6 +251,15 @@ class CommandBuilder: int(chaincode), payload) + def get_eth2_public_addr(self, + display: bool, + bip32_path: str) -> bytes: + payload = pack_derivation_path(bip32_path) + return self._serialize(InsType.GET_ETH2_PUBLIC_ADDR, + int(display), + 0x00, + payload) + def set_plugin(self, type_: int, version: int, diff --git a/client/src/ledger_app_clients/ethereum/eip712/InputData.py b/client/src/ledger_app_clients/ethereum/eip712/InputData.py index a19ccf3..e10bb24 100644 --- a/client/src/ledger_app_clients/ethereum/eip712/InputData.py +++ b/client/src/ledger_app_clients/ethereum/eip712/InputData.py @@ -6,8 +6,8 @@ import sys import copy from typing import Any, Callable, Optional -from ledger_app_clients.ethereum import keychain -from ledger_app_clients.ethereum.client import EthAppClient, EIP712FieldType +from client import keychain +from client.client import EthAppClient, EIP712FieldType # global variables From 6e477717decf43c971b4e2cf5d605bc633afe8bc Mon Sep 17 00:00:00 2001 From: Charles-Edouard de la Vergne Date: Mon, 25 Mar 2024 14:47:53 +0100 Subject: [PATCH 04/35] Port 'test_configuration_cmd' from 'speculos' to 'ragger' --- tests/ragger/test_configuration_cmd.py | 48 ++++++++++++++++++++++++ tests/speculos/test_configuration_cmd.py | 3 -- 2 files changed, 48 insertions(+), 3 deletions(-) create mode 100644 tests/ragger/test_configuration_cmd.py delete mode 100644 tests/speculos/test_configuration_cmd.py diff --git a/tests/ragger/test_configuration_cmd.py b/tests/ragger/test_configuration_cmd.py new file mode 100644 index 0000000..c8a8e95 --- /dev/null +++ b/tests/ragger/test_configuration_cmd.py @@ -0,0 +1,48 @@ +from pathlib import Path +from typing import List +import re +from ragger.backend import BackendInterface +from ragger.utils.misc import get_current_app_name_and_version + + +def test_check_version(backend: BackendInterface): + """Check version and name""" + + # Send the APDU + app_name, version = get_current_app_name_and_version(backend) + print(f" Name: {app_name}") + print(f" Version: {version}") + _verify_version(version.split("-")[0]) + + +def _verify_version(version: str) -> None: + """Verify the app version, based on defines in Makefile + + Args: + Version (str): Version to be checked + """ + + vers_dict = {} + vers_str = "" + lines = _read_makefile() + version_re = re.compile(r"^APPVERSION_(?P\w)\s?=\s?(?P\d*)", re.I) + for line in lines: + info = version_re.match(line) + if info: + dinfo = info.groupdict() + vers_dict[dinfo["part"]] = dinfo["val"] + try: + vers_str = f"{vers_dict['M']}.{vers_dict['N']}.{vers_dict['P']}" + except KeyError: + pass + assert version == vers_str + + +def _read_makefile() -> List[str]: + """Read lines from the parent Makefile """ + + parent = Path(__file__).parent.parent.parent.resolve() + makefile = f"{parent}/Makefile" + with open(makefile, "r", encoding="utf-8") as f_p: + lines = f_p.readlines() + return lines diff --git a/tests/speculos/test_configuration_cmd.py b/tests/speculos/test_configuration_cmd.py deleted file mode 100644 index af56756..0000000 --- a/tests/speculos/test_configuration_cmd.py +++ /dev/null @@ -1,3 +0,0 @@ - -def test_configuration(cmd): - assert cmd.get_configuration() == (2, 1, 11, 0) From 91d73f9110510b7f5036b9dec5c89f6cbd1989be Mon Sep 17 00:00:00 2001 From: Charles-Edouard de la Vergne Date: Wed, 27 Mar 2024 09:39:20 +0100 Subject: [PATCH 05/35] Port 'test_pubkey_cmd' from 'speculos' to 'ragger' --- .../{get_pk_rejected => get_pk_700}/00000.png | Bin .../snapshots/nanos/get_pk_700}/00001.png | Bin .../snapshots/nanos/get_pk_700}/00002.png | Bin .../snapshots/nanos/get_pk_700}/00003.png | Bin .../{get_pk_rejected => get_pk_700}/00004.png | Bin .../00006.png => get_pk_700/00005.png} | Bin .../nanos/get_pk_rejected_60}/00000.png | Bin .../00001.png | Bin .../00002.png | Bin .../00003.png | Bin .../nanos/get_pk_rejected_60}/00004.png | Bin .../00005.png | Bin .../nanos/get_pk_rejected_60/00006.png | Bin 0 -> 349 bytes .../nanos/get_pk_rejected_700}/00000.png | Bin .../nanos/get_pk_rejected_700}/00001.png | Bin .../nanos/get_pk_rejected_700}/00002.png | Bin .../nanos/get_pk_rejected_700}/00003.png | Bin .../nanos/get_pk_rejected_700}/00004.png | Bin .../nanos/get_pk_rejected_700}/00005.png | Bin .../nanos/get_pk_rejected_700/00006.png | Bin 0 -> 349 bytes .../{get_pk_rejected => get_pk_700}/00000.png | Bin .../snapshots/nanosp/get_pk_700}/00001.png | Bin .../{get_pk_rejected => get_pk_700}/00002.png | Bin .../00004.png => get_pk_700/00003.png} | Bin .../get_pk_rejected_60}/00000.png | Bin .../00001.png | Bin .../get_pk_rejected_60}/00002.png | Bin .../00003.png | Bin .../get_pk_rejected_60}/00004.png | Bin .../nanosp/get_pk_rejected_700}/00000.png | Bin .../nanosp/get_pk_rejected_700}/00001.png | Bin .../nanosp/get_pk_rejected_700}/00002.png | Bin .../get_pk_rejected_700}/00003.png | Bin .../nanosp/get_pk_rejected_700/00004.png | Bin 0 -> 381 bytes .../snapshots/nanox/get_pk_700}/00000.png | Bin .../snapshots/nanox/get_pk_700/00001.png | Bin 0 -> 769 bytes .../snapshots/nanox/get_pk_700}/00002.png | Bin .../snapshots/nanox/get_pk_700/00003.png | Bin 0 -> 381 bytes .../nanox/get_pk_rejected_60/00000.png | Bin 0 -> 400 bytes .../00001.png | Bin .../nanox/get_pk_rejected_60/00002.png | Bin 0 -> 364 bytes .../nanox/get_pk_rejected_60}/00003.png | Bin .../nanox/get_pk_rejected_60/00004.png | Bin 0 -> 381 bytes .../nanox/get_pk_rejected_700/00000.png | Bin 0 -> 400 bytes .../nanox/get_pk_rejected_700/00001.png | Bin 0 -> 769 bytes .../nanox/get_pk_rejected_700/00002.png | Bin 0 -> 364 bytes .../nanox/get_pk_rejected_700/00003.png | Bin 0 -> 366 bytes .../nanox/get_pk_rejected_700/00004.png | Bin 0 -> 381 bytes .../{get_pk_rejected => get_pk_700}/00000.png | Bin .../snapshots/stax/get_pk_700/00001.png | Bin 0 -> 13728 bytes .../snapshots/stax/get_pk_700/00002.png | Bin 0 -> 5035 bytes .../stax/get_pk_rejected_60/00000.png | Bin 0 -> 8677 bytes .../00001.png | Bin .../00002.png | Bin .../stax/get_pk_rejected_700/00000.png | Bin 0 -> 8677 bytes .../stax/get_pk_rejected_700/00001.png | Bin 0 -> 13728 bytes .../stax/get_pk_rejected_700/00002.png | Bin 0 -> 6545 bytes tests/ragger/test_get_address.py | 71 ++++++++++- tests/speculos/test_pubkey_cmd.py | 117 ------------------ 59 files changed, 67 insertions(+), 121 deletions(-) rename tests/ragger/snapshots/nanos/{get_pk_rejected => get_pk_700}/00000.png (100%) rename tests/{speculos/screenshots/pubkey/nanos/get_public_key => ragger/snapshots/nanos/get_pk_700}/00001.png (100%) rename tests/{speculos/screenshots/pubkey/nanos/get_public_key => ragger/snapshots/nanos/get_pk_700}/00002.png (100%) rename tests/{speculos/screenshots/pubkey/nanos/get_public_key => ragger/snapshots/nanos/get_pk_700}/00003.png (100%) rename tests/ragger/snapshots/nanos/{get_pk_rejected => get_pk_700}/00004.png (100%) rename tests/ragger/snapshots/nanos/{get_pk_rejected/00006.png => get_pk_700/00005.png} (100%) rename tests/{speculos/screenshots/pubkey/nanos/get_public_key => ragger/snapshots/nanos/get_pk_rejected_60}/00000.png (100%) rename tests/ragger/snapshots/nanos/{get_pk_rejected => get_pk_rejected_60}/00001.png (100%) rename tests/ragger/snapshots/nanos/{get_pk_rejected => get_pk_rejected_60}/00002.png (100%) rename tests/ragger/snapshots/nanos/{get_pk_rejected => get_pk_rejected_60}/00003.png (100%) rename tests/{speculos/screenshots/pubkey/nanos/get_public_key => ragger/snapshots/nanos/get_pk_rejected_60}/00004.png (100%) rename tests/ragger/snapshots/nanos/{get_pk_rejected => get_pk_rejected_60}/00005.png (100%) create mode 100644 tests/ragger/snapshots/nanos/get_pk_rejected_60/00006.png rename tests/{speculos/screenshots/pubkey/nanos/reject_get_public_key => ragger/snapshots/nanos/get_pk_rejected_700}/00000.png (100%) rename tests/{speculos/screenshots/pubkey/nanos/reject_get_public_key => ragger/snapshots/nanos/get_pk_rejected_700}/00001.png (100%) rename tests/{speculos/screenshots/pubkey/nanos/reject_get_public_key => ragger/snapshots/nanos/get_pk_rejected_700}/00002.png (100%) rename tests/{speculos/screenshots/pubkey/nanos/reject_get_public_key => ragger/snapshots/nanos/get_pk_rejected_700}/00003.png (100%) rename tests/{speculos/screenshots/pubkey/nanos/reject_get_public_key => ragger/snapshots/nanos/get_pk_rejected_700}/00004.png (100%) rename tests/{speculos/screenshots/pubkey/nanos/reject_get_public_key => ragger/snapshots/nanos/get_pk_rejected_700}/00005.png (100%) create mode 100644 tests/ragger/snapshots/nanos/get_pk_rejected_700/00006.png rename tests/ragger/snapshots/nanosp/{get_pk_rejected => get_pk_700}/00000.png (100%) rename tests/{speculos/screenshots/pubkey/nanox/get_public_key => ragger/snapshots/nanosp/get_pk_700}/00001.png (100%) rename tests/ragger/snapshots/nanosp/{get_pk_rejected => get_pk_700}/00002.png (100%) rename tests/ragger/snapshots/nanosp/{get_pk_rejected/00004.png => get_pk_700/00003.png} (100%) rename tests/ragger/snapshots/{nanox/get_pk_rejected => nanosp/get_pk_rejected_60}/00000.png (100%) rename tests/ragger/snapshots/nanosp/{get_pk_rejected => get_pk_rejected_60}/00001.png (100%) rename tests/ragger/snapshots/{nanox/get_pk_rejected => nanosp/get_pk_rejected_60}/00002.png (100%) rename tests/ragger/snapshots/nanosp/{get_pk_rejected => get_pk_rejected_60}/00003.png (100%) rename tests/ragger/snapshots/{nanox/get_pk_rejected => nanosp/get_pk_rejected_60}/00004.png (100%) rename tests/{speculos/screenshots/pubkey/nanox/get_public_key => ragger/snapshots/nanosp/get_pk_rejected_700}/00000.png (100%) rename tests/{speculos/screenshots/pubkey/nanox/reject_get_public_key => ragger/snapshots/nanosp/get_pk_rejected_700}/00001.png (100%) rename tests/{speculos/screenshots/pubkey/nanox/get_public_key => ragger/snapshots/nanosp/get_pk_rejected_700}/00002.png (100%) rename tests/ragger/snapshots/{nanox/get_pk_rejected => nanosp/get_pk_rejected_700}/00003.png (100%) create mode 100644 tests/ragger/snapshots/nanosp/get_pk_rejected_700/00004.png rename tests/{speculos/screenshots/pubkey/nanox/reject_get_public_key => ragger/snapshots/nanox/get_pk_700}/00000.png (100%) create mode 100644 tests/ragger/snapshots/nanox/get_pk_700/00001.png rename tests/{speculos/screenshots/pubkey/nanox/reject_get_public_key => ragger/snapshots/nanox/get_pk_700}/00002.png (100%) create mode 100644 tests/ragger/snapshots/nanox/get_pk_700/00003.png create mode 100644 tests/ragger/snapshots/nanox/get_pk_rejected_60/00000.png rename tests/ragger/snapshots/nanox/{get_pk_rejected => get_pk_rejected_60}/00001.png (100%) create mode 100644 tests/ragger/snapshots/nanox/get_pk_rejected_60/00002.png rename tests/{speculos/screenshots/pubkey/nanox/reject_get_public_key => ragger/snapshots/nanox/get_pk_rejected_60}/00003.png (100%) create mode 100644 tests/ragger/snapshots/nanox/get_pk_rejected_60/00004.png create mode 100644 tests/ragger/snapshots/nanox/get_pk_rejected_700/00000.png create mode 100644 tests/ragger/snapshots/nanox/get_pk_rejected_700/00001.png create mode 100644 tests/ragger/snapshots/nanox/get_pk_rejected_700/00002.png create mode 100644 tests/ragger/snapshots/nanox/get_pk_rejected_700/00003.png create mode 100644 tests/ragger/snapshots/nanox/get_pk_rejected_700/00004.png rename tests/ragger/snapshots/stax/{get_pk_rejected => get_pk_700}/00000.png (100%) create mode 100644 tests/ragger/snapshots/stax/get_pk_700/00001.png create mode 100644 tests/ragger/snapshots/stax/get_pk_700/00002.png create mode 100644 tests/ragger/snapshots/stax/get_pk_rejected_60/00000.png rename tests/ragger/snapshots/stax/{get_pk_rejected => get_pk_rejected_60}/00001.png (100%) rename tests/ragger/snapshots/stax/{get_pk_rejected => get_pk_rejected_60}/00002.png (100%) create mode 100644 tests/ragger/snapshots/stax/get_pk_rejected_700/00000.png create mode 100644 tests/ragger/snapshots/stax/get_pk_rejected_700/00001.png create mode 100644 tests/ragger/snapshots/stax/get_pk_rejected_700/00002.png delete mode 100644 tests/speculos/test_pubkey_cmd.py diff --git a/tests/ragger/snapshots/nanos/get_pk_rejected/00000.png b/tests/ragger/snapshots/nanos/get_pk_700/00000.png similarity index 100% rename from tests/ragger/snapshots/nanos/get_pk_rejected/00000.png rename to tests/ragger/snapshots/nanos/get_pk_700/00000.png diff --git a/tests/speculos/screenshots/pubkey/nanos/get_public_key/00001.png b/tests/ragger/snapshots/nanos/get_pk_700/00001.png similarity index 100% rename from tests/speculos/screenshots/pubkey/nanos/get_public_key/00001.png rename to tests/ragger/snapshots/nanos/get_pk_700/00001.png diff --git a/tests/speculos/screenshots/pubkey/nanos/get_public_key/00002.png b/tests/ragger/snapshots/nanos/get_pk_700/00002.png similarity index 100% rename from tests/speculos/screenshots/pubkey/nanos/get_public_key/00002.png rename to tests/ragger/snapshots/nanos/get_pk_700/00002.png diff --git a/tests/speculos/screenshots/pubkey/nanos/get_public_key/00003.png b/tests/ragger/snapshots/nanos/get_pk_700/00003.png similarity index 100% rename from tests/speculos/screenshots/pubkey/nanos/get_public_key/00003.png rename to tests/ragger/snapshots/nanos/get_pk_700/00003.png diff --git a/tests/ragger/snapshots/nanos/get_pk_rejected/00004.png b/tests/ragger/snapshots/nanos/get_pk_700/00004.png similarity index 100% rename from tests/ragger/snapshots/nanos/get_pk_rejected/00004.png rename to tests/ragger/snapshots/nanos/get_pk_700/00004.png diff --git a/tests/ragger/snapshots/nanos/get_pk_rejected/00006.png b/tests/ragger/snapshots/nanos/get_pk_700/00005.png similarity index 100% rename from tests/ragger/snapshots/nanos/get_pk_rejected/00006.png rename to tests/ragger/snapshots/nanos/get_pk_700/00005.png diff --git a/tests/speculos/screenshots/pubkey/nanos/get_public_key/00000.png b/tests/ragger/snapshots/nanos/get_pk_rejected_60/00000.png similarity index 100% rename from tests/speculos/screenshots/pubkey/nanos/get_public_key/00000.png rename to tests/ragger/snapshots/nanos/get_pk_rejected_60/00000.png diff --git a/tests/ragger/snapshots/nanos/get_pk_rejected/00001.png b/tests/ragger/snapshots/nanos/get_pk_rejected_60/00001.png similarity index 100% rename from tests/ragger/snapshots/nanos/get_pk_rejected/00001.png rename to tests/ragger/snapshots/nanos/get_pk_rejected_60/00001.png diff --git a/tests/ragger/snapshots/nanos/get_pk_rejected/00002.png b/tests/ragger/snapshots/nanos/get_pk_rejected_60/00002.png similarity index 100% rename from tests/ragger/snapshots/nanos/get_pk_rejected/00002.png rename to tests/ragger/snapshots/nanos/get_pk_rejected_60/00002.png diff --git a/tests/ragger/snapshots/nanos/get_pk_rejected/00003.png b/tests/ragger/snapshots/nanos/get_pk_rejected_60/00003.png similarity index 100% rename from tests/ragger/snapshots/nanos/get_pk_rejected/00003.png rename to tests/ragger/snapshots/nanos/get_pk_rejected_60/00003.png diff --git a/tests/speculos/screenshots/pubkey/nanos/get_public_key/00004.png b/tests/ragger/snapshots/nanos/get_pk_rejected_60/00004.png similarity index 100% rename from tests/speculos/screenshots/pubkey/nanos/get_public_key/00004.png rename to tests/ragger/snapshots/nanos/get_pk_rejected_60/00004.png diff --git a/tests/ragger/snapshots/nanos/get_pk_rejected/00005.png b/tests/ragger/snapshots/nanos/get_pk_rejected_60/00005.png similarity index 100% rename from tests/ragger/snapshots/nanos/get_pk_rejected/00005.png rename to tests/ragger/snapshots/nanos/get_pk_rejected_60/00005.png diff --git a/tests/ragger/snapshots/nanos/get_pk_rejected_60/00006.png b/tests/ragger/snapshots/nanos/get_pk_rejected_60/00006.png new file mode 100644 index 0000000000000000000000000000000000000000..ce795f34e8569e986af689fded3b59c9a8af2961 GIT binary patch literal 349 zcmV-j0iyniP)O41}p;-~WL<=z+0=1Om1tEU@3H#qtw22}5*_5JCvCo4!52c$FXo$VhXU?0M$^Bekqgf%Ka;M*^X|4 zEs9YCQ(xfJKmNC#+8dY%2&wT+>D^<3C%}_*k1^mvtO~`RE00000NkvXXu0mjf-kqOA literal 0 HcmV?d00001 diff --git a/tests/speculos/screenshots/pubkey/nanos/reject_get_public_key/00000.png b/tests/ragger/snapshots/nanos/get_pk_rejected_700/00000.png similarity index 100% rename from tests/speculos/screenshots/pubkey/nanos/reject_get_public_key/00000.png rename to tests/ragger/snapshots/nanos/get_pk_rejected_700/00000.png diff --git a/tests/speculos/screenshots/pubkey/nanos/reject_get_public_key/00001.png b/tests/ragger/snapshots/nanos/get_pk_rejected_700/00001.png similarity index 100% rename from tests/speculos/screenshots/pubkey/nanos/reject_get_public_key/00001.png rename to tests/ragger/snapshots/nanos/get_pk_rejected_700/00001.png diff --git a/tests/speculos/screenshots/pubkey/nanos/reject_get_public_key/00002.png b/tests/ragger/snapshots/nanos/get_pk_rejected_700/00002.png similarity index 100% rename from tests/speculos/screenshots/pubkey/nanos/reject_get_public_key/00002.png rename to tests/ragger/snapshots/nanos/get_pk_rejected_700/00002.png diff --git a/tests/speculos/screenshots/pubkey/nanos/reject_get_public_key/00003.png b/tests/ragger/snapshots/nanos/get_pk_rejected_700/00003.png similarity index 100% rename from tests/speculos/screenshots/pubkey/nanos/reject_get_public_key/00003.png rename to tests/ragger/snapshots/nanos/get_pk_rejected_700/00003.png diff --git a/tests/speculos/screenshots/pubkey/nanos/reject_get_public_key/00004.png b/tests/ragger/snapshots/nanos/get_pk_rejected_700/00004.png similarity index 100% rename from tests/speculos/screenshots/pubkey/nanos/reject_get_public_key/00004.png rename to tests/ragger/snapshots/nanos/get_pk_rejected_700/00004.png diff --git a/tests/speculos/screenshots/pubkey/nanos/reject_get_public_key/00005.png b/tests/ragger/snapshots/nanos/get_pk_rejected_700/00005.png similarity index 100% rename from tests/speculos/screenshots/pubkey/nanos/reject_get_public_key/00005.png rename to tests/ragger/snapshots/nanos/get_pk_rejected_700/00005.png diff --git a/tests/ragger/snapshots/nanos/get_pk_rejected_700/00006.png b/tests/ragger/snapshots/nanos/get_pk_rejected_700/00006.png new file mode 100644 index 0000000000000000000000000000000000000000..ce795f34e8569e986af689fded3b59c9a8af2961 GIT binary patch literal 349 zcmV-j0iyniP)O41}p;-~WL<=z+0=1Om1tEU@3H#qtw22}5*_5JCvCo4!52c$FXo$VhXU?0M$^Bekqgf%Ka;M*^X|4 zEs9YCQ(xfJKmNC#+8dY%2&wT+>D^<3C%}_*k1^mvtO~`RE00000NkvXXu0mjf-kqOA literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanosp/get_pk_rejected/00000.png b/tests/ragger/snapshots/nanosp/get_pk_700/00000.png similarity index 100% rename from tests/ragger/snapshots/nanosp/get_pk_rejected/00000.png rename to tests/ragger/snapshots/nanosp/get_pk_700/00000.png diff --git a/tests/speculos/screenshots/pubkey/nanox/get_public_key/00001.png b/tests/ragger/snapshots/nanosp/get_pk_700/00001.png similarity index 100% rename from tests/speculos/screenshots/pubkey/nanox/get_public_key/00001.png rename to tests/ragger/snapshots/nanosp/get_pk_700/00001.png diff --git a/tests/ragger/snapshots/nanosp/get_pk_rejected/00002.png b/tests/ragger/snapshots/nanosp/get_pk_700/00002.png similarity index 100% rename from tests/ragger/snapshots/nanosp/get_pk_rejected/00002.png rename to tests/ragger/snapshots/nanosp/get_pk_700/00002.png diff --git a/tests/ragger/snapshots/nanosp/get_pk_rejected/00004.png b/tests/ragger/snapshots/nanosp/get_pk_700/00003.png similarity index 100% rename from tests/ragger/snapshots/nanosp/get_pk_rejected/00004.png rename to tests/ragger/snapshots/nanosp/get_pk_700/00003.png diff --git a/tests/ragger/snapshots/nanox/get_pk_rejected/00000.png b/tests/ragger/snapshots/nanosp/get_pk_rejected_60/00000.png similarity index 100% rename from tests/ragger/snapshots/nanox/get_pk_rejected/00000.png rename to tests/ragger/snapshots/nanosp/get_pk_rejected_60/00000.png diff --git a/tests/ragger/snapshots/nanosp/get_pk_rejected/00001.png b/tests/ragger/snapshots/nanosp/get_pk_rejected_60/00001.png similarity index 100% rename from tests/ragger/snapshots/nanosp/get_pk_rejected/00001.png rename to tests/ragger/snapshots/nanosp/get_pk_rejected_60/00001.png diff --git a/tests/ragger/snapshots/nanox/get_pk_rejected/00002.png b/tests/ragger/snapshots/nanosp/get_pk_rejected_60/00002.png similarity index 100% rename from tests/ragger/snapshots/nanox/get_pk_rejected/00002.png rename to tests/ragger/snapshots/nanosp/get_pk_rejected_60/00002.png diff --git a/tests/ragger/snapshots/nanosp/get_pk_rejected/00003.png b/tests/ragger/snapshots/nanosp/get_pk_rejected_60/00003.png similarity index 100% rename from tests/ragger/snapshots/nanosp/get_pk_rejected/00003.png rename to tests/ragger/snapshots/nanosp/get_pk_rejected_60/00003.png diff --git a/tests/ragger/snapshots/nanox/get_pk_rejected/00004.png b/tests/ragger/snapshots/nanosp/get_pk_rejected_60/00004.png similarity index 100% rename from tests/ragger/snapshots/nanox/get_pk_rejected/00004.png rename to tests/ragger/snapshots/nanosp/get_pk_rejected_60/00004.png diff --git a/tests/speculos/screenshots/pubkey/nanox/get_public_key/00000.png b/tests/ragger/snapshots/nanosp/get_pk_rejected_700/00000.png similarity index 100% rename from tests/speculos/screenshots/pubkey/nanox/get_public_key/00000.png rename to tests/ragger/snapshots/nanosp/get_pk_rejected_700/00000.png diff --git a/tests/speculos/screenshots/pubkey/nanox/reject_get_public_key/00001.png b/tests/ragger/snapshots/nanosp/get_pk_rejected_700/00001.png similarity index 100% rename from tests/speculos/screenshots/pubkey/nanox/reject_get_public_key/00001.png rename to tests/ragger/snapshots/nanosp/get_pk_rejected_700/00001.png diff --git a/tests/speculos/screenshots/pubkey/nanox/get_public_key/00002.png b/tests/ragger/snapshots/nanosp/get_pk_rejected_700/00002.png similarity index 100% rename from tests/speculos/screenshots/pubkey/nanox/get_public_key/00002.png rename to tests/ragger/snapshots/nanosp/get_pk_rejected_700/00002.png diff --git a/tests/ragger/snapshots/nanox/get_pk_rejected/00003.png b/tests/ragger/snapshots/nanosp/get_pk_rejected_700/00003.png similarity index 100% rename from tests/ragger/snapshots/nanox/get_pk_rejected/00003.png rename to tests/ragger/snapshots/nanosp/get_pk_rejected_700/00003.png diff --git a/tests/ragger/snapshots/nanosp/get_pk_rejected_700/00004.png b/tests/ragger/snapshots/nanosp/get_pk_rejected_700/00004.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/speculos/screenshots/pubkey/nanox/reject_get_public_key/00000.png b/tests/ragger/snapshots/nanox/get_pk_700/00000.png similarity index 100% rename from tests/speculos/screenshots/pubkey/nanox/reject_get_public_key/00000.png rename to tests/ragger/snapshots/nanox/get_pk_700/00000.png diff --git a/tests/ragger/snapshots/nanox/get_pk_700/00001.png b/tests/ragger/snapshots/nanox/get_pk_700/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..5b381b6c9d81daa42913790df16f350487c1c0e3 GIT binary patch literal 769 zcmV+c1OEJpP)1mdRvL_`%2qAiN3%p5X<9QaG=EyJ=YkO}s7wU!)~cPjI1A?9o3u6DW_^3V=*G!3 zF;07CUSG#BO%2E5iesi^VtN9)H!=W1fA>5?M9ot9wCRP$G&MX2k+^$~nV6#jx_7S} zEk+`q$f8xU_KI1`C1ULvmGs6O05Wl>n#(he$pO$YH8&g$xZxC=y05a><1N**maG-y z`QM!TrekKOo;9y#6vo}=;45*1%;-Oc5o$*NVK@dW;V!h2MvyrMx1z(_Rzrg`D53=g zs$}oeb6sd^lVcj{u<{z8GLaK}geeo6o;4dH;^J6I{S~-^d(9$Wf$FKCaTE3?eo*4+ zi+8{MAue&kv98{yNS^h01a`Wmh*$;eO(B5=WKW1+=kjF1tRAzNrkcuYyxk!xUYaGw zjiqjIAid=UikhGsffkEQuP*hpW||s0SFO~R1H|SVYr;r$knnl=wwEp5j=o5T+VzMV zT_e#w06NhP^eUQkB>+&J6|Q=fbp_oDG2*GGgb+dqA;e_mUz7@_xHurDBCX64@<)A} z#XrnyzJx9QruxZjBt;C|9>pD1Uy|`_^C~tP073JaiB1Mty|Sl2?8YtwpyiZO?v=a) z=77a)aSTn)Q>uh5h2BHw=2?LdLI@#*klXnMFhL`qAQdp500000NkvXXu0mjf$HQfg literal 0 HcmV?d00001 diff --git a/tests/speculos/screenshots/pubkey/nanox/reject_get_public_key/00002.png b/tests/ragger/snapshots/nanox/get_pk_700/00002.png similarity index 100% rename from tests/speculos/screenshots/pubkey/nanox/reject_get_public_key/00002.png rename to tests/ragger/snapshots/nanox/get_pk_700/00002.png diff --git a/tests/ragger/snapshots/nanox/get_pk_700/00003.png b/tests/ragger/snapshots/nanox/get_pk_700/00003.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/get_pk_rejected_60/00000.png b/tests/ragger/snapshots/nanox/get_pk_rejected_60/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..a487005a859c0e4cfa0212a67f75a4794d81978c GIT binary patch literal 400 zcmV;B0dM|^P)CI7!~g&QfPa@`!PrJQ5_gtexv+u#;<7n?ZA>=8WP3sS)E3>Z zE!xY!9dS=7B}gQ@x;^0FVDIF?`GpenfZ9e>)xCO*lgBykAKe#*G9mk>o6EkWtAGi$ zGexMpHiozruqDn$Y{#w$*~F;G!$#0S7$x##_JEJys@+nJ)BK}UfHaSYH}BKlb~|vz<*qUayO&UL-bn@O u0WKrm9KB3jyJN~A3;+NC0000$MC1WGrw>UKISsS`0000FSd4J{-YHcY(QO5;J{<~e9q=7F?O4)!WO}6UUdH! zS+Hz=(4})vCM2-VD4nt3W%LdvkyzeG%km#`1t_mu*zR}#jNB{EKZnW}g5-=Bym-_% z`=7%C>zxJL|9msNSMXnbQRayy^)nr>EU7olTHqoc^vG(B%bo(Id*|kR{84!`z2x6n zZ`;PkbrPvd6U}A>Y0chs_tyHmLi6kw6c{>JvYiQ=+MTFTx8d*9^V|R0+_75oZt9or zLetinU!`YMvFyLCb8XxElhO0{v2rTkNR$jMW7~4}*8a52+MC^J%KMbxPN-JRb2RNP zEsp0ebAPS3=e2G53#Z$XZAI6Yd=YU4`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/get_pk_rejected_700/00000.png b/tests/ragger/snapshots/nanox/get_pk_rejected_700/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..a487005a859c0e4cfa0212a67f75a4794d81978c GIT binary patch literal 400 zcmV;B0dM|^P)CI7!~g&QfPa@`!PrJQ5_gtexv+u#;<7n?ZA>=8WP3sS)E3>Z zE!xY!9dS=7B}gQ@x;^0FVDIF?`GpenfZ9e>)xCO*lgBykAKe#*G9mk>o6EkWtAGi$ zGexMpHiozruqDn$Y{#w$*~F;G!$#0S7$x##_JEJys@+nJ)BK}UfHaSYH}BKlb~|vz<*qUayO&UL-bn@O u0WKrm9KB3jyJN~A3;+NC0000$MC1WGrw>UKISsS`00001mdRvL_`%2qAiN3%p5X<9QaG=EyJ=YkO}s7wU!)~cPjI1A?9o3u6DW_^3V=*G!3 zF;07CUSG#BO%2E5iesi^VtN9)H!=W1fA>5?M9ot9wCRP$G&MX2k+^$~nV6#jx_7S} zEk+`q$f8xU_KI1`C1ULvmGs6O05Wl>n#(he$pO$YH8&g$xZxC=y05a><1N**maG-y z`QM!TrekKOo;9y#6vo}=;45*1%;-Oc5o$*NVK@dW;V!h2MvyrMx1z(_Rzrg`D53=g zs$}oeb6sd^lVcj{u<{z8GLaK}geeo6o;4dH;^J6I{S~-^d(9$Wf$FKCaTE3?eo*4+ zi+8{MAue&kv98{yNS^h01a`Wmh*$;eO(B5=WKW1+=kjF1tRAzNrkcuYyxk!xUYaGw zjiqjIAid=UikhGsffkEQuP*hpW||s0SFO~R1H|SVYr;r$knnl=wwEp5j=o5T+VzMV zT_e#w06NhP^eUQkB>+&J6|Q=fbp_oDG2*GGgb+dqA;e_mUz7@_xHurDBCX64@<)A} z#XrnyzJx9QruxZjBt;C|9>pD1Uy|`_^C~tP073JaiB1Mty|Sl2?8YtwpyiZO?v=a) z=77a)aSTn)Q>uh5h2BHw=2?LdLI@#*klXnMFhL`qAQdp500000NkvXXu0mjf$HQfg literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanox/get_pk_rejected_700/00002.png b/tests/ragger/snapshots/nanox/get_pk_rejected_700/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..53ae65195fbea5b281a1bc1a80351dbf1cd79ff8 GIT binary patch literal 364 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|=-%ba4!+nDh2#AYZeBfa}G~ z%X2sUSKTFSd4J{-YHcY(QO5;J{<~e9q=7F?O4)!WO}6UUdH! zS+Hz=(4})vCM2-VD4nt3W%LdvkyzeG%km#`1t_mu*zR}#jNB{EKZnW}g5-=Bym-_% z`=7%C>zxJL|9msNSMXnbQRayy^)nr>EU7olTHqoc^vG(B%bo(Id*|kR{84!`z2x6n zZ`;PkbrPvd6U}A>Y0chs_tyHmLi6kw6c{>JvYiQ=+MTFTx8d*9^V|R0+_75oZt9or zLetinU!`YMvFyLCb8XxElhO0{v2rTkNR$jMW7~4}*8a52+MC^J%KMbxPN-JRb2RNP zEsp0ebAPS3=e2G53#Z$XZAI6Yd=Yj&LwL#RobX?V zbQiII^4uMl|Z~1l7yy12MZ$b&j z?TtJM^{@JVDT&uHZn5nzWh-TPv_J7m;jgq0f(|YbTZHdAM)myZxO-=(=&Jp4l55=A zUQcBF*M05wg}=Y7bG1(&{&siyl(&8#-KTdql}}rLm3hWhy}m5glJN5fpDsOd=_5x% z{HDvZre)46&g0e%{pDoXaPf-VTe-XJSGLU(Jj!tDNp8H)+;exzHoZ2kko_Ba_xXNR zr;WUGZIbufwyah@qN*6%Wc!qrE&9UV%v{IGH{4)eXE1ondwSC@^_ATTjUX{kS3j3^ HP6U4`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/get_pk_rejected/00000.png b/tests/ragger/snapshots/stax/get_pk_700/00000.png similarity index 100% rename from tests/ragger/snapshots/stax/get_pk_rejected/00000.png rename to tests/ragger/snapshots/stax/get_pk_700/00000.png diff --git a/tests/ragger/snapshots/stax/get_pk_700/00001.png b/tests/ragger/snapshots/stax/get_pk_700/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..aa683fab0ac729098678b1344f3cbd3354b1aabb GIT binary patch literal 13728 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 literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/get_pk_700/00002.png b/tests/ragger/snapshots/stax/get_pk_700/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..13499fcc9366bb214269b05db05ce8ae4380ce24 GIT binary patch literal 5035 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 literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/get_pk_rejected_60/00000.png b/tests/ragger/snapshots/stax/get_pk_rejected_60/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..759339003be1e34d8109a940f3c43973474c079f GIT binary patch literal 8677 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 G;XeS84)QAi literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/get_pk_rejected/00001.png b/tests/ragger/snapshots/stax/get_pk_rejected_60/00001.png similarity index 100% rename from tests/ragger/snapshots/stax/get_pk_rejected/00001.png rename to tests/ragger/snapshots/stax/get_pk_rejected_60/00001.png diff --git a/tests/ragger/snapshots/stax/get_pk_rejected/00002.png b/tests/ragger/snapshots/stax/get_pk_rejected_60/00002.png similarity index 100% rename from tests/ragger/snapshots/stax/get_pk_rejected/00002.png rename to tests/ragger/snapshots/stax/get_pk_rejected_60/00002.png diff --git a/tests/ragger/snapshots/stax/get_pk_rejected_700/00000.png b/tests/ragger/snapshots/stax/get_pk_rejected_700/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..759339003be1e34d8109a940f3c43973474c079f GIT binary patch literal 8677 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 G;XeS84)QAi literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/get_pk_rejected_700/00001.png b/tests/ragger/snapshots/stax/get_pk_rejected_700/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..aa683fab0ac729098678b1344f3cbd3354b1aabb GIT binary patch literal 13728 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 literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/get_pk_rejected_700/00002.png b/tests/ragger/snapshots/stax/get_pk_rejected_700/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..b0eba3f0cd7ecd4a6333e26445f27c0419828895 GIT binary patch literal 6545 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 MT|Lhe&V}Xv7j4ZP#{d8T literal 0 HcmV?d00001 diff --git a/tests/ragger/test_get_address.py b/tests/ragger/test_get_address.py index bb550d1..c88c116 100644 --- a/tests/ragger/test_get_address.py +++ b/tests/ragger/test_get_address.py @@ -1,4 +1,4 @@ -from typing import Optional +from typing import Optional, Tuple import pytest from ledger_app_clients.ethereum.client import EthAppClient, StatusWord @@ -49,15 +49,24 @@ def get_moves(firmware: Firmware, return moves +@pytest.mark.parametrize( + "path, suffix", + [ + ("m/44'/60'/0'/0/0", "60"), + ("m/44'/700'/1'/0/0", "700") + ], +) def test_get_pk_rejected(firmware: Firmware, backend: BackendInterface, - navigator: Navigator): + navigator: Navigator, + path, + suffix): app_client = EthAppClient(backend) with pytest.raises(ExceptionRAPDU) as e: - with app_client.get_public_addr(): + with app_client.get_public_addr(bip32_path=path): navigator.navigate_and_compare(ROOT_SNAPSHOT_PATH, - "get_pk_rejected", + f"get_pk_rejected_{suffix}", get_moves(firmware, reject=True)) assert e.value.status == StatusWord.CONDITION_NOT_SATISFIED @@ -79,3 +88,57 @@ def test_get_pk(firmware: Firmware, assert pk.hex() == ref_pk if with_chaincode: assert chaincode.hex() == ref_chaincode + + +def test_get_pk2(firmware: Firmware, + backend: BackendInterface, + navigator: Navigator): + app_client = EthAppClient(backend) + + path="m/44'/700'/1'/0/0" + with app_client.get_public_addr(bip32_path=path, chaincode=True): + navigator.navigate_and_compare(ROOT_SNAPSHOT_PATH, + "get_pk_700", + get_moves(firmware)) + pk, _, chaincode = ResponseParser.pk_addr(app_client.response().data, True) + ref_pk, ref_chaincode = calculate_public_key_and_chaincode(curve=CurveChoice.Secp256k1, + path=path) + assert pk.hex() == ref_pk + assert chaincode.hex() == ref_chaincode + + +def test_get_public_key(backend: BackendInterface): + app_client = EthAppClient(backend) + + with app_client.get_public_addr(bip32_path="m/44'/60'/1'/0/0", display=False, chaincode=True): + pass + + response = app_client.response() + assert response.status == 0x9000 + + # response = pub_key_len (1) + # pub_key (var) + # eth_addr_len (1) + # eth_addr (var) + # chain_code (var) + buffer, pub_key_len, pub_key = _pop_size_prefixed_buf_from_buf(response.data) + buffer, eth_addr_len, eth_addr = _pop_size_prefixed_buf_from_buf(buffer) + buffer, chain_code = _pop_sized_buf_from_buffer(buffer, 32) + + assert len(response.data) == 2 + pub_key_len + eth_addr_len + 32 + assert pub_key == b'\x04\xea\x02&\x91\xc7\x87\x00\xd2\xc3\xa0\xc7E\xbe\xa4\xf2\xb8\xe5\xe3\x13\x97j\x10B\xf6\xa1Vc\\\xb2\x05\xda\x1a\xcb\xfe\x04*\nZ\x89eyn6"E\x89\x0eT\xbd-\xbex\xec\x1e\x18df\xf2\xe9\xd0\xf5\xd5\xd8\xdf' + assert eth_addr == b'463e4e114AA57F54f2Fd2C3ec03572C6f75d84C2' + assert chain_code == b'\xaf\x89\xcd)\xea${8I\xec\xc80\xc2\xc8\x94\\e1\xd6P\x87\x07?\x9f\xd09\x00\xa0\xea\xa7\x96\xc8' + + +def _pop_sized_buf_from_buffer(buffer: bytes, size: int) -> Tuple[bytes, bytes]: + """Parse buffer and returns: remainder, data[size]""" + + return buffer[size:], buffer[0:size] + + +def _pop_size_prefixed_buf_from_buf(buffer:bytes) -> Tuple[bytes, int, bytes]: + """ Parse buffer and returns: remainder, data_len, data """ + + data_len = buffer[0] + return buffer[1+data_len:], data_len, buffer[1:data_len+1] diff --git a/tests/speculos/test_pubkey_cmd.py b/tests/speculos/test_pubkey_cmd.py deleted file mode 100644 index 451bbf9..0000000 --- a/tests/speculos/test_pubkey_cmd.py +++ /dev/null @@ -1,117 +0,0 @@ -from time import sleep - -import pytest - -import ethereum_client -from ethereum_client.utils import compare_screenshot, save_screenshot, PATH_IMG - - -def test_get_public_key(cmd): - # ETHER COIN without display - result: list = [] - with cmd.get_public_key(bip32_path="44'/60'/1'/0/0", display=False, result=result) as exchange: - pass - - uncompressed_addr_len, eth_addr, chain_code = result - - assert len(uncompressed_addr_len) == 65 - assert len(eth_addr) == 40 - assert len(chain_code) == 32 - - assert uncompressed_addr_len == b'\x04\xea\x02&\x91\xc7\x87\x00\xd2\xc3\xa0\xc7E\xbe\xa4\xf2\xb8\xe5\xe3\x13\x97j\x10B\xf6\xa1Vc\\\xb2\x05\xda\x1a\xcb\xfe\x04*\nZ\x89eyn6"E\x89\x0eT\xbd-\xbex\xec\x1e\x18df\xf2\xe9\xd0\xf5\xd5\xd8\xdf' - assert eth_addr == b'463e4e114AA57F54f2Fd2C3ec03572C6f75d84C2' - assert chain_code == b'\xaf\x89\xcd)\xea${8I\xec\xc80\xc2\xc8\x94\\e1\xd6P\x87\x07?\x9f\xd09\x00\xa0\xea\xa7\x96\xc8' - - # DAI COIN with display - result: list = [] - with cmd.get_public_key(bip32_path="44'/700'/1'/0/0", display=True, result=result) as exchange: - sleep(0.5) - - if cmd.model == "nanos": - # Verify address - compare_screenshot(cmd, f"screenshots/pubkey/{PATH_IMG[cmd.model]}/get_public_key/00000.png") - cmd.client.press_and_release('right') - - # Address 1/3, 2/3, 3/3 - compare_screenshot(cmd, f"screenshots/pubkey/{PATH_IMG[cmd.model]}/get_public_key/00001.png") - cmd.client.press_and_release('right') - compare_screenshot(cmd, f"screenshots/pubkey/{PATH_IMG[cmd.model]}/get_public_key/00002.png") - cmd.client.press_and_release('right') - compare_screenshot(cmd, f"screenshots/pubkey/{PATH_IMG[cmd.model]}/get_public_key/00003.png") - cmd.client.press_and_release('right') - - # Approved - compare_screenshot(cmd, f"screenshots/pubkey/{PATH_IMG[cmd.model]}/get_public_key/00004.png") - cmd.client.press_and_release('both') - - if cmd.model == "nanox" or cmd.model == "nanosp": - # Verify address - compare_screenshot(cmd, f"screenshots/pubkey/{PATH_IMG[cmd.model]}/get_public_key/00000.png") - cmd.client.press_and_release('right') - - # Address - compare_screenshot(cmd, f"screenshots/pubkey/{PATH_IMG[cmd.model]}/get_public_key/00001.png") - cmd.client.press_and_release('right') - - # Approve - compare_screenshot(cmd, f"screenshots/pubkey/{PATH_IMG[cmd.model]}/get_public_key/00002.png") - cmd.client.press_and_release('both') - - uncompressed_addr_len, eth_addr, chain_code = result - assert len(uncompressed_addr_len) == 65 - assert len(eth_addr) == 40 - assert len(chain_code) == 32 - - assert uncompressed_addr_len == b'\x04V\x8a\x15\xdc\xed\xc8[\x16\x17\x8d\xaf\xcax\x91v~{\x9c\x06\xba\xaa\xde\xf4\xe7\x9f\x86\x1d~\xed)\xdc\n8\x9c\x84\xf01@E\x13]\xd7~6\x8e\x8e\xabb-\xad\xcdo\xc3Fw\xb7\xc8y\xdbQ/\xc3\xe5\x18' - assert eth_addr == b'Ba9A9aED0a1AbBE1da1155F64e73e57Af7995880' - assert chain_code == b'4\xaa\x95\xf4\x02\x12\x12-T\x155\x86\xed\xc5\x0b\x1d8\x81\xae\xce\xbd\x1a\xbbv\x9a\xc7\xd5\x1a\xd0KT\xe4' - - -def test_reject_get_public_key(cmd): - # DAI COIN with display - result: list = [] - - with pytest.raises(ethereum_client.exception.errors.DenyError) as error: - - with cmd.get_public_key(bip32_path="44'/700'/1'/0/0", display=True, result=result) as exchange: - sleep(0.5) - - if cmd.model == "nanos": - # Verify address - compare_screenshot(cmd, f"screenshots/pubkey/{PATH_IMG[cmd.model]}/reject_get_public_key/00000.png") - cmd.client.press_and_release('right') - - # Address 1/3, 2/3, 3/3 - compare_screenshot(cmd, f"screenshots/pubkey/{PATH_IMG[cmd.model]}/reject_get_public_key/00001.png") - cmd.client.press_and_release('right') - compare_screenshot(cmd, f"screenshots/pubkey/{PATH_IMG[cmd.model]}/reject_get_public_key/00002.png") - cmd.client.press_and_release('right') - compare_screenshot(cmd, f"screenshots/pubkey/{PATH_IMG[cmd.model]}/reject_get_public_key/00003.png") - cmd.client.press_and_release('right') - - # Approve - compare_screenshot(cmd, f"screenshots/pubkey/{PATH_IMG[cmd.model]}/reject_get_public_key/00004.png") - cmd.client.press_and_release('right') - - # Reject - compare_screenshot(cmd, f"screenshots/pubkey/{PATH_IMG[cmd.model]}/reject_get_public_key/00005.png") - cmd.client.press_and_release('both') - - if cmd.model == "nanox" or cmd.model == "nanosp": - # Verify address - compare_screenshot(cmd, f"screenshots/pubkey/{PATH_IMG[cmd.model]}/reject_get_public_key/00000.png") - cmd.client.press_and_release('right') - - # Address - compare_screenshot(cmd, f"screenshots/pubkey/{PATH_IMG[cmd.model]}/reject_get_public_key/00001.png") - cmd.client.press_and_release('right') - - # Approve - compare_screenshot(cmd, f"screenshots/pubkey/{PATH_IMG[cmd.model]}/reject_get_public_key/00002.png") - cmd.client.press_and_release('right') - - # Reject - compare_screenshot(cmd, f"screenshots/pubkey/{PATH_IMG[cmd.model]}/reject_get_public_key/00003.png") - cmd.client.press_and_release('both') - - assert error.args[0] == '0x6985' From 8d0f798ec08ff120964b500442f06450965b868b Mon Sep 17 00:00:00 2001 From: Charles-Edouard de la Vergne Date: Thu, 28 Mar 2024 11:16:50 +0100 Subject: [PATCH 06/35] Port 'test_sign_cmd' from 'speculos' to 'ragger' --- .../00000.png | Bin .../00001.png | Bin .../00002.png | Bin .../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 0 -> 349 bytes .../nanos/test_sign_blind_simple}/00000.png | Bin .../nanos/test_sign_blind_simple}/00001.png | Bin .../nanos/test_sign_blind_simple}/00002.png | Bin .../nanos/test_sign_blind_simple}/00003.png | Bin .../nanos/test_sign_blind_simple}/00004.png | Bin .../nanos/test_sign_blind_simple}/00005.png | Bin .../nanos/test_sign_blind_simple}/00006.png | Bin .../nanos/test_sign_blind_simple}/00007.png | Bin .../nanos/test_sign_blind_simple}/00008.png | Bin .../nanos/test_sign_blind_simple}/00009.png | Bin .../nanos/test_sign_blind_simple/00010.png | Bin 0 -> 349 bytes .../nanos/test_sign_limit_nonce}/00000.png | Bin .../nanos/test_sign_limit_nonce}/00001.png | Bin .../nanos/test_sign_limit_nonce}/00002.png | Bin .../nanos/test_sign_limit_nonce}/00003.png | Bin .../nanos/test_sign_limit_nonce}/00004.png | Bin .../nanos/test_sign_limit_nonce}/00005.png | Bin .../nanos/test_sign_limit_nonce}/00006.png | Bin .../nanos/test_sign_limit_nonce}/00007.png | Bin .../nanos/test_sign_limit_nonce}/00008.png | Bin .../nanos/test_sign_limit_nonce/00009.png | Bin 0 -> 349 bytes .../nanos/test_sign_nonce_display}/00000.png | Bin .../nanos/test_sign_nonce_display}/00001.png | Bin .../nanos/test_sign_nonce_display}/00002.png | Bin .../nanos/test_sign_nonce_display}/00003.png | Bin .../nanos/test_sign_nonce_display}/00004.png | Bin .../nanos/test_sign_nonce_display}/00005.png | Bin .../nanos/test_sign_nonce_display}/00006.png | Bin .../nanos/test_sign_nonce_display}/00007.png | Bin .../nanos/test_sign_nonce_display}/00008.png | Bin .../nanos/test_sign_nonce_display}/00009.png | Bin .../nanos/test_sign_nonce_display/00010.png | Bin 0 -> 349 bytes .../nanos/test_sign_reject}/00000.png | Bin .../nanos/test_sign_reject}/00001.png | Bin .../nanos/test_sign_reject}/00002.png | Bin .../nanos/test_sign_reject}/00003.png | Bin .../nanos/test_sign_reject}/00004.png | Bin .../nanos/test_sign_reject}/00005.png | Bin .../nanos/test_sign_reject}/00006.png | Bin .../nanos/test_sign_reject}/00007.png | Bin .../nanos/test_sign_reject}/00008.png | Bin .../nanos/test_sign_reject}/00009.png | Bin .../nanos/test_sign_reject/00010.png | Bin 0 -> 349 bytes .../nanos/test_sign_simple}/00000.png | Bin .../nanos/test_sign_simple}/00001.png | Bin .../nanos/test_sign_simple}/00002.png | Bin .../nanos/test_sign_simple}/00003.png | Bin .../nanos/test_sign_simple}/00004.png | Bin .../nanos/test_sign_simple}/00005.png | Bin .../nanos/test_sign_simple}/00006.png | Bin .../nanos/test_sign_simple}/00007.png | Bin .../nanos/test_sign_simple}/00008.png | Bin .../nanos/test_sign_simple/00009.png | Bin 0 -> 349 bytes .../nanosp/test_sign_blind_and_nonce_display | 1 + .../snapshots/nanosp/test_sign_blind_simple | 1 + .../snapshots/nanosp/test_sign_limit_nonce | 1 + .../snapshots/nanosp/test_sign_nonce_display | 1 + .../ragger/snapshots/nanosp/test_sign_reject | 1 + .../ragger/snapshots/nanosp/test_sign_simple | 1 + .../00000.png | Bin .../00001.png | Bin .../00002.png | Bin .../00003.png | Bin .../00004.png | Bin .../00005.png | Bin .../00006.png | Bin .../00007.png | Bin 0 -> 381 bytes .../nanox/test_sign_blind_simple}/00000.png | Bin .../nanox/test_sign_blind_simple}/00001.png | Bin .../nanox/test_sign_blind_simple}/00002.png | Bin .../nanox/test_sign_blind_simple}/00003.png | Bin .../nanox/test_sign_blind_simple}/00004.png | Bin .../nanox/test_sign_blind_simple}/00005.png | Bin .../nanox/test_sign_blind_simple/00006.png | Bin 0 -> 381 bytes .../nanox/test_sign_limit_nonce}/00000.png | Bin .../nanox/test_sign_limit_nonce}/00001.png | Bin .../nanox/test_sign_limit_nonce}/00002.png | Bin .../nanox/test_sign_limit_nonce}/00003.png | Bin .../nanox/test_sign_limit_nonce}/00004.png | Bin .../nanox/test_sign_limit_nonce/00005.png | Bin 0 -> 381 bytes .../nanox/test_sign_nonce_display}/00000.png | Bin .../nanox/test_sign_nonce_display}/00001.png | Bin .../nanox/test_sign_nonce_display}/00002.png | Bin .../nanox/test_sign_nonce_display}/00003.png | Bin .../nanox/test_sign_nonce_display}/00004.png | Bin .../nanox/test_sign_nonce_display}/00005.png | Bin .../nanox/test_sign_nonce_display/00006.png | Bin 0 -> 381 bytes .../nanox/test_sign_reject}/00000.png | Bin .../nanox/test_sign_reject}/00001.png | Bin .../nanox/test_sign_reject}/00002.png | Bin .../nanox/test_sign_reject}/00003.png | Bin .../nanox/test_sign_reject}/00004.png | Bin .../nanox/test_sign_reject}/00005.png | Bin .../nanox/test_sign_reject/00006.png | Bin 0 -> 381 bytes .../nanox/test_sign_simple}/00000.png | Bin .../nanox/test_sign_simple}/00001.png | Bin .../nanox/test_sign_simple}/00002.png | Bin .../nanox/test_sign_simple}/00003.png | Bin .../nanox/test_sign_simple}/00004.png | Bin .../nanox/test_sign_simple/00005.png | Bin 0 -> 381 bytes .../00000.png | Bin 0 -> 8691 bytes .../00001.png | Bin 0 -> 14197 bytes .../00002.png | Bin 0 -> 18342 bytes .../00003.png | Bin 0 -> 7918 bytes .../00004.png | Bin 0 -> 9597 bytes .../00005.png | Bin 0 -> 6108 bytes .../stax/test_sign_blind_simple/00000.png | Bin 0 -> 8691 bytes .../stax/test_sign_blind_simple/00001.png | Bin 0 -> 14197 bytes .../stax/test_sign_blind_simple/00002.png | Bin 0 -> 18715 bytes .../stax/test_sign_blind_simple/00003.png | Bin 0 -> 9597 bytes .../stax/test_sign_blind_simple/00004.png | Bin 0 -> 6108 bytes .../stax/test_sign_limit_nonce/00000.png | Bin 0 -> 8691 bytes .../stax/test_sign_limit_nonce/00001.png | Bin 0 -> 15448 bytes .../stax/test_sign_limit_nonce/00002.png | Bin 0 -> 7934 bytes .../stax/test_sign_limit_nonce/00003.png | Bin 0 -> 9597 bytes .../stax/test_sign_limit_nonce/00004.png | Bin 0 -> 6108 bytes .../stax/test_sign_nonce_display/00000.png | Bin 0 -> 8691 bytes .../stax/test_sign_nonce_display/00001.png | Bin 0 -> 17959 bytes .../stax/test_sign_nonce_display/00002.png | Bin 0 -> 7918 bytes .../stax/test_sign_nonce_display/00003.png | Bin 0 -> 9597 bytes .../stax/test_sign_nonce_display/00004.png | Bin 0 -> 6108 bytes .../snapshots/stax/test_sign_reject/00000.png | Bin 0 -> 8691 bytes .../snapshots/stax/test_sign_reject/00001.png | Bin 0 -> 18715 bytes .../snapshots/stax/test_sign_reject/00002.png | Bin 0 -> 9597 bytes .../snapshots/stax/test_sign_reject/00003.png | Bin 0 -> 8186 bytes .../snapshots/stax/test_sign_reject/00004.png | Bin 0 -> 5076 bytes .../snapshots/stax/test_sign_reject/00005.png | Bin 0 -> 10883 bytes .../snapshots/stax/test_sign_simple/00000.png | Bin 0 -> 8691 bytes .../snapshots/stax/test_sign_simple/00001.png | Bin 0 -> 18715 bytes .../snapshots/stax/test_sign_simple/00002.png | Bin 0 -> 9597 bytes .../snapshots/stax/test_sign_simple/00003.png | Bin 0 -> 6108 bytes tests/ragger/test_sign.py | 292 ++++++++- tests/speculos/test_sign_cmd.py | 620 ------------------ 145 files changed, 286 insertions(+), 632 deletions(-) rename tests/{speculos/screenshots/sign/nanos/blind_and_nonce_display => ragger/snapshots/nanos/test_sign_blind_and_nonce_display}/00000.png (100%) rename tests/{speculos/screenshots/sign/nanos/blind_and_nonce_display => ragger/snapshots/nanos/test_sign_blind_and_nonce_display}/00001.png (100%) rename tests/{speculos/screenshots/sign/nanos/blind_and_nonce_display => ragger/snapshots/nanos/test_sign_blind_and_nonce_display}/00002.png (100%) rename tests/{speculos/screenshots/sign/nanos/blind_and_nonce_display => ragger/snapshots/nanos/test_sign_blind_and_nonce_display}/00003.png (100%) rename tests/{speculos/screenshots/sign/nanos/blind_and_nonce_display => ragger/snapshots/nanos/test_sign_blind_and_nonce_display}/00004.png (100%) rename tests/{speculos/screenshots/sign/nanos/blind_and_nonce_display => ragger/snapshots/nanos/test_sign_blind_and_nonce_display}/00005.png (100%) rename tests/{speculos/screenshots/sign/nanos/blind_and_nonce_display => ragger/snapshots/nanos/test_sign_blind_and_nonce_display}/00006.png (100%) rename tests/{speculos/screenshots/sign/nanos/blind_and_nonce_display => ragger/snapshots/nanos/test_sign_blind_and_nonce_display}/00007.png (100%) rename tests/{speculos/screenshots/sign/nanos/blind_and_nonce_display => ragger/snapshots/nanos/test_sign_blind_and_nonce_display}/00008.png (100%) rename tests/{speculos/screenshots/sign/nanos/blind_and_nonce_display => ragger/snapshots/nanos/test_sign_blind_and_nonce_display}/00009.png (100%) rename tests/{speculos/screenshots/sign/nanos/blind_and_nonce_display => ragger/snapshots/nanos/test_sign_blind_and_nonce_display}/00010.png (100%) create mode 100644 tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00011.png rename tests/{speculos/screenshots/sign/nanos/blind_simple => ragger/snapshots/nanos/test_sign_blind_simple}/00000.png (100%) rename tests/{speculos/screenshots/sign/nanos/blind_simple => ragger/snapshots/nanos/test_sign_blind_simple}/00001.png (100%) rename tests/{speculos/screenshots/sign/nanos/blind_simple => ragger/snapshots/nanos/test_sign_blind_simple}/00002.png (100%) rename tests/{speculos/screenshots/sign/nanos/blind_simple => ragger/snapshots/nanos/test_sign_blind_simple}/00003.png (100%) rename tests/{speculos/screenshots/sign/nanos/blind_simple => ragger/snapshots/nanos/test_sign_blind_simple}/00004.png (100%) rename tests/{speculos/screenshots/sign/nanos/blind_simple => ragger/snapshots/nanos/test_sign_blind_simple}/00005.png (100%) rename tests/{speculos/screenshots/sign/nanos/blind_simple => ragger/snapshots/nanos/test_sign_blind_simple}/00006.png (100%) rename tests/{speculos/screenshots/sign/nanos/blind_simple => ragger/snapshots/nanos/test_sign_blind_simple}/00007.png (100%) rename tests/{speculos/screenshots/sign/nanos/blind_simple => ragger/snapshots/nanos/test_sign_blind_simple}/00008.png (100%) rename tests/{speculos/screenshots/sign/nanos/blind_simple => ragger/snapshots/nanos/test_sign_blind_simple}/00009.png (100%) create mode 100644 tests/ragger/snapshots/nanos/test_sign_blind_simple/00010.png rename tests/{speculos/screenshots/sign/nanos/limit_nonce => ragger/snapshots/nanos/test_sign_limit_nonce}/00000.png (100%) rename tests/{speculos/screenshots/sign/nanos/limit_nonce => ragger/snapshots/nanos/test_sign_limit_nonce}/00001.png (100%) rename tests/{speculos/screenshots/sign/nanos/limit_nonce => ragger/snapshots/nanos/test_sign_limit_nonce}/00002.png (100%) rename tests/{speculos/screenshots/sign/nanos/limit_nonce => ragger/snapshots/nanos/test_sign_limit_nonce}/00003.png (100%) rename tests/{speculos/screenshots/sign/nanos/limit_nonce => ragger/snapshots/nanos/test_sign_limit_nonce}/00004.png (100%) rename tests/{speculos/screenshots/sign/nanos/limit_nonce => ragger/snapshots/nanos/test_sign_limit_nonce}/00005.png (100%) rename tests/{speculos/screenshots/sign/nanos/limit_nonce => ragger/snapshots/nanos/test_sign_limit_nonce}/00006.png (100%) rename tests/{speculos/screenshots/sign/nanos/limit_nonce => ragger/snapshots/nanos/test_sign_limit_nonce}/00007.png (100%) rename tests/{speculos/screenshots/sign/nanos/limit_nonce => ragger/snapshots/nanos/test_sign_limit_nonce}/00008.png (100%) create mode 100644 tests/ragger/snapshots/nanos/test_sign_limit_nonce/00009.png rename tests/{speculos/screenshots/sign/nanos/nonce_display => ragger/snapshots/nanos/test_sign_nonce_display}/00000.png (100%) rename tests/{speculos/screenshots/sign/nanos/nonce_display => ragger/snapshots/nanos/test_sign_nonce_display}/00001.png (100%) rename tests/{speculos/screenshots/sign/nanos/nonce_display => ragger/snapshots/nanos/test_sign_nonce_display}/00002.png (100%) rename tests/{speculos/screenshots/sign/nanos/nonce_display => ragger/snapshots/nanos/test_sign_nonce_display}/00003.png (100%) rename tests/{speculos/screenshots/sign/nanos/nonce_display => ragger/snapshots/nanos/test_sign_nonce_display}/00004.png (100%) rename tests/{speculos/screenshots/sign/nanos/nonce_display => ragger/snapshots/nanos/test_sign_nonce_display}/00005.png (100%) rename tests/{speculos/screenshots/sign/nanos/nonce_display => ragger/snapshots/nanos/test_sign_nonce_display}/00006.png (100%) rename tests/{speculos/screenshots/sign/nanos/nonce_display => ragger/snapshots/nanos/test_sign_nonce_display}/00007.png (100%) rename tests/{speculos/screenshots/sign/nanos/nonce_display => ragger/snapshots/nanos/test_sign_nonce_display}/00008.png (100%) rename tests/{speculos/screenshots/sign/nanos/nonce_display => ragger/snapshots/nanos/test_sign_nonce_display}/00009.png (100%) create mode 100644 tests/ragger/snapshots/nanos/test_sign_nonce_display/00010.png rename tests/{speculos/screenshots/sign/nanos/reject => ragger/snapshots/nanos/test_sign_reject}/00000.png (100%) rename tests/{speculos/screenshots/sign/nanos/reject => ragger/snapshots/nanos/test_sign_reject}/00001.png (100%) rename tests/{speculos/screenshots/sign/nanos/reject => ragger/snapshots/nanos/test_sign_reject}/00002.png (100%) rename tests/{speculos/screenshots/sign/nanos/reject => ragger/snapshots/nanos/test_sign_reject}/00003.png (100%) rename tests/{speculos/screenshots/sign/nanos/reject => ragger/snapshots/nanos/test_sign_reject}/00004.png (100%) rename tests/{speculos/screenshots/sign/nanos/reject => ragger/snapshots/nanos/test_sign_reject}/00005.png (100%) rename tests/{speculos/screenshots/sign/nanos/reject => ragger/snapshots/nanos/test_sign_reject}/00006.png (100%) rename tests/{speculos/screenshots/sign/nanos/reject => ragger/snapshots/nanos/test_sign_reject}/00007.png (100%) rename tests/{speculos/screenshots/sign/nanos/reject => ragger/snapshots/nanos/test_sign_reject}/00008.png (100%) rename tests/{speculos/screenshots/sign/nanos/reject => ragger/snapshots/nanos/test_sign_reject}/00009.png (100%) create mode 100644 tests/ragger/snapshots/nanos/test_sign_reject/00010.png rename tests/{speculos/screenshots/sign/nanos/simple => ragger/snapshots/nanos/test_sign_simple}/00000.png (100%) rename tests/{speculos/screenshots/sign/nanos/simple => ragger/snapshots/nanos/test_sign_simple}/00001.png (100%) rename tests/{speculos/screenshots/sign/nanos/simple => ragger/snapshots/nanos/test_sign_simple}/00002.png (100%) rename tests/{speculos/screenshots/sign/nanos/simple => ragger/snapshots/nanos/test_sign_simple}/00003.png (100%) rename tests/{speculos/screenshots/sign/nanos/simple => ragger/snapshots/nanos/test_sign_simple}/00004.png (100%) rename tests/{speculos/screenshots/sign/nanos/simple => ragger/snapshots/nanos/test_sign_simple}/00005.png (100%) rename tests/{speculos/screenshots/sign/nanos/simple => ragger/snapshots/nanos/test_sign_simple}/00006.png (100%) rename tests/{speculos/screenshots/sign/nanos/simple => ragger/snapshots/nanos/test_sign_simple}/00007.png (100%) rename tests/{speculos/screenshots/sign/nanos/simple => ragger/snapshots/nanos/test_sign_simple}/00008.png (100%) create mode 100644 tests/ragger/snapshots/nanos/test_sign_simple/00009.png create mode 120000 tests/ragger/snapshots/nanosp/test_sign_blind_and_nonce_display create mode 120000 tests/ragger/snapshots/nanosp/test_sign_blind_simple create mode 120000 tests/ragger/snapshots/nanosp/test_sign_limit_nonce create mode 120000 tests/ragger/snapshots/nanosp/test_sign_nonce_display create mode 120000 tests/ragger/snapshots/nanosp/test_sign_reject create mode 120000 tests/ragger/snapshots/nanosp/test_sign_simple rename tests/{speculos/screenshots/sign/nanox/blind_and_nonce_display => ragger/snapshots/nanox/test_sign_blind_and_nonce_display}/00000.png (100%) rename tests/{speculos/screenshots/sign/nanox/blind_and_nonce_display => ragger/snapshots/nanox/test_sign_blind_and_nonce_display}/00001.png (100%) rename tests/{speculos/screenshots/sign/nanox/blind_and_nonce_display => ragger/snapshots/nanox/test_sign_blind_and_nonce_display}/00002.png (100%) rename tests/{speculos/screenshots/sign/nanox/blind_and_nonce_display => ragger/snapshots/nanox/test_sign_blind_and_nonce_display}/00003.png (100%) rename tests/{speculos/screenshots/sign/nanox/blind_and_nonce_display => ragger/snapshots/nanox/test_sign_blind_and_nonce_display}/00004.png (100%) rename tests/{speculos/screenshots/sign/nanox/blind_and_nonce_display => ragger/snapshots/nanox/test_sign_blind_and_nonce_display}/00005.png (100%) rename tests/{speculos/screenshots/sign/nanox/blind_and_nonce_display => ragger/snapshots/nanox/test_sign_blind_and_nonce_display}/00006.png (100%) create mode 100644 tests/ragger/snapshots/nanox/test_sign_blind_and_nonce_display/00007.png rename tests/{speculos/screenshots/sign/nanox/blind_simple => ragger/snapshots/nanox/test_sign_blind_simple}/00000.png (100%) rename tests/{speculos/screenshots/sign/nanox/blind_simple => ragger/snapshots/nanox/test_sign_blind_simple}/00001.png (100%) rename tests/{speculos/screenshots/sign/nanox/blind_simple => ragger/snapshots/nanox/test_sign_blind_simple}/00002.png (100%) rename tests/{speculos/screenshots/sign/nanox/blind_simple => ragger/snapshots/nanox/test_sign_blind_simple}/00003.png (100%) rename tests/{speculos/screenshots/sign/nanox/blind_simple => ragger/snapshots/nanox/test_sign_blind_simple}/00004.png (100%) rename tests/{speculos/screenshots/sign/nanox/blind_simple => ragger/snapshots/nanox/test_sign_blind_simple}/00005.png (100%) create mode 100644 tests/ragger/snapshots/nanox/test_sign_blind_simple/00006.png rename tests/{speculos/screenshots/sign/nanox/limit_nonce => ragger/snapshots/nanox/test_sign_limit_nonce}/00000.png (100%) rename tests/{speculos/screenshots/sign/nanox/limit_nonce => ragger/snapshots/nanox/test_sign_limit_nonce}/00001.png (100%) rename tests/{speculos/screenshots/sign/nanox/limit_nonce => ragger/snapshots/nanox/test_sign_limit_nonce}/00002.png (100%) rename tests/{speculos/screenshots/sign/nanox/limit_nonce => ragger/snapshots/nanox/test_sign_limit_nonce}/00003.png (100%) rename tests/{speculos/screenshots/sign/nanox/limit_nonce => ragger/snapshots/nanox/test_sign_limit_nonce}/00004.png (100%) create mode 100644 tests/ragger/snapshots/nanox/test_sign_limit_nonce/00005.png rename tests/{speculos/screenshots/sign/nanox/nonce_display => ragger/snapshots/nanox/test_sign_nonce_display}/00000.png (100%) rename tests/{speculos/screenshots/sign/nanox/nonce_display => ragger/snapshots/nanox/test_sign_nonce_display}/00001.png (100%) rename tests/{speculos/screenshots/sign/nanox/nonce_display => ragger/snapshots/nanox/test_sign_nonce_display}/00002.png (100%) rename tests/{speculos/screenshots/sign/nanox/nonce_display => ragger/snapshots/nanox/test_sign_nonce_display}/00003.png (100%) rename tests/{speculos/screenshots/sign/nanox/nonce_display => ragger/snapshots/nanox/test_sign_nonce_display}/00004.png (100%) rename tests/{speculos/screenshots/sign/nanox/nonce_display => ragger/snapshots/nanox/test_sign_nonce_display}/00005.png (100%) create mode 100644 tests/ragger/snapshots/nanox/test_sign_nonce_display/00006.png rename tests/{speculos/screenshots/sign/nanox/reject => ragger/snapshots/nanox/test_sign_reject}/00000.png (100%) rename tests/{speculos/screenshots/sign/nanox/reject => ragger/snapshots/nanox/test_sign_reject}/00001.png (100%) rename tests/{speculos/screenshots/sign/nanox/reject => ragger/snapshots/nanox/test_sign_reject}/00002.png (100%) rename tests/{speculos/screenshots/sign/nanox/reject => ragger/snapshots/nanox/test_sign_reject}/00003.png (100%) rename tests/{speculos/screenshots/sign/nanox/reject => ragger/snapshots/nanox/test_sign_reject}/00004.png (100%) rename tests/{speculos/screenshots/sign/nanox/reject => ragger/snapshots/nanox/test_sign_reject}/00005.png (100%) create mode 100644 tests/ragger/snapshots/nanox/test_sign_reject/00006.png rename tests/{speculos/screenshots/sign/nanox/simple => ragger/snapshots/nanox/test_sign_simple}/00000.png (100%) rename tests/{speculos/screenshots/sign/nanox/simple => ragger/snapshots/nanox/test_sign_simple}/00001.png (100%) rename tests/{speculos/screenshots/sign/nanox/simple => ragger/snapshots/nanox/test_sign_simple}/00002.png (100%) rename tests/{speculos/screenshots/sign/nanox/simple => ragger/snapshots/nanox/test_sign_simple}/00003.png (100%) rename tests/{speculos/screenshots/sign/nanox/simple => ragger/snapshots/nanox/test_sign_simple}/00004.png (100%) create mode 100644 tests/ragger/snapshots/nanox/test_sign_simple/00005.png create mode 100644 tests/ragger/snapshots/stax/test_sign_blind_and_nonce_display/00000.png create mode 100644 tests/ragger/snapshots/stax/test_sign_blind_and_nonce_display/00001.png create mode 100644 tests/ragger/snapshots/stax/test_sign_blind_and_nonce_display/00002.png create mode 100644 tests/ragger/snapshots/stax/test_sign_blind_and_nonce_display/00003.png create mode 100644 tests/ragger/snapshots/stax/test_sign_blind_and_nonce_display/00004.png create mode 100644 tests/ragger/snapshots/stax/test_sign_blind_and_nonce_display/00005.png create mode 100644 tests/ragger/snapshots/stax/test_sign_blind_simple/00000.png create mode 100644 tests/ragger/snapshots/stax/test_sign_blind_simple/00001.png create mode 100644 tests/ragger/snapshots/stax/test_sign_blind_simple/00002.png create mode 100644 tests/ragger/snapshots/stax/test_sign_blind_simple/00003.png create mode 100644 tests/ragger/snapshots/stax/test_sign_blind_simple/00004.png create mode 100644 tests/ragger/snapshots/stax/test_sign_limit_nonce/00000.png create mode 100644 tests/ragger/snapshots/stax/test_sign_limit_nonce/00001.png create mode 100644 tests/ragger/snapshots/stax/test_sign_limit_nonce/00002.png create mode 100644 tests/ragger/snapshots/stax/test_sign_limit_nonce/00003.png create mode 100644 tests/ragger/snapshots/stax/test_sign_limit_nonce/00004.png create mode 100644 tests/ragger/snapshots/stax/test_sign_nonce_display/00000.png create mode 100644 tests/ragger/snapshots/stax/test_sign_nonce_display/00001.png create mode 100644 tests/ragger/snapshots/stax/test_sign_nonce_display/00002.png create mode 100644 tests/ragger/snapshots/stax/test_sign_nonce_display/00003.png create mode 100644 tests/ragger/snapshots/stax/test_sign_nonce_display/00004.png create mode 100644 tests/ragger/snapshots/stax/test_sign_reject/00000.png create mode 100644 tests/ragger/snapshots/stax/test_sign_reject/00001.png create mode 100644 tests/ragger/snapshots/stax/test_sign_reject/00002.png create mode 100644 tests/ragger/snapshots/stax/test_sign_reject/00003.png create mode 100644 tests/ragger/snapshots/stax/test_sign_reject/00004.png create mode 100644 tests/ragger/snapshots/stax/test_sign_reject/00005.png create mode 100644 tests/ragger/snapshots/stax/test_sign_simple/00000.png create mode 100644 tests/ragger/snapshots/stax/test_sign_simple/00001.png create mode 100644 tests/ragger/snapshots/stax/test_sign_simple/00002.png create mode 100644 tests/ragger/snapshots/stax/test_sign_simple/00003.png delete mode 100644 tests/speculos/test_sign_cmd.py diff --git a/tests/speculos/screenshots/sign/nanos/blind_and_nonce_display/00000.png b/tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00000.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/blind_and_nonce_display/00000.png rename to tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00000.png diff --git a/tests/speculos/screenshots/sign/nanos/blind_and_nonce_display/00001.png b/tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00001.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/blind_and_nonce_display/00001.png rename to tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00001.png diff --git a/tests/speculos/screenshots/sign/nanos/blind_and_nonce_display/00002.png b/tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00002.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/blind_and_nonce_display/00002.png rename to tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00002.png diff --git a/tests/speculos/screenshots/sign/nanos/blind_and_nonce_display/00003.png b/tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00003.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/blind_and_nonce_display/00003.png rename to tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00003.png diff --git a/tests/speculos/screenshots/sign/nanos/blind_and_nonce_display/00004.png b/tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00004.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/blind_and_nonce_display/00004.png rename to tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00004.png diff --git a/tests/speculos/screenshots/sign/nanos/blind_and_nonce_display/00005.png b/tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00005.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/blind_and_nonce_display/00005.png rename to tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00005.png diff --git a/tests/speculos/screenshots/sign/nanos/blind_and_nonce_display/00006.png b/tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00006.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/blind_and_nonce_display/00006.png rename to tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00006.png diff --git a/tests/speculos/screenshots/sign/nanos/blind_and_nonce_display/00007.png b/tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00007.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/blind_and_nonce_display/00007.png rename to tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00007.png diff --git a/tests/speculos/screenshots/sign/nanos/blind_and_nonce_display/00008.png b/tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00008.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/blind_and_nonce_display/00008.png rename to tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00008.png diff --git a/tests/speculos/screenshots/sign/nanos/blind_and_nonce_display/00009.png b/tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00009.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/blind_and_nonce_display/00009.png rename to tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00009.png diff --git a/tests/speculos/screenshots/sign/nanos/blind_and_nonce_display/00010.png b/tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00010.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/blind_and_nonce_display/00010.png rename to tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00010.png diff --git a/tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00011.png b/tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00011.png new file mode 100644 index 0000000000000000000000000000000000000000..ce795f34e8569e986af689fded3b59c9a8af2961 GIT binary patch literal 349 zcmV-j0iyniP)O41}p;-~WL<=z+0=1Om1tEU@3H#qtw22}5*_5JCvCo4!52c$FXo$VhXU?0M$^Bekqgf%Ka;M*^X|4 zEs9YCQ(xfJKmNC#+8dY%2&wT+>D^<3C%}_*k1^mvtO~`RE00000NkvXXu0mjf-kqOA literal 0 HcmV?d00001 diff --git a/tests/speculos/screenshots/sign/nanos/blind_simple/00000.png b/tests/ragger/snapshots/nanos/test_sign_blind_simple/00000.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/blind_simple/00000.png rename to tests/ragger/snapshots/nanos/test_sign_blind_simple/00000.png diff --git a/tests/speculos/screenshots/sign/nanos/blind_simple/00001.png b/tests/ragger/snapshots/nanos/test_sign_blind_simple/00001.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/blind_simple/00001.png rename to tests/ragger/snapshots/nanos/test_sign_blind_simple/00001.png diff --git a/tests/speculos/screenshots/sign/nanos/blind_simple/00002.png b/tests/ragger/snapshots/nanos/test_sign_blind_simple/00002.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/blind_simple/00002.png rename to tests/ragger/snapshots/nanos/test_sign_blind_simple/00002.png diff --git a/tests/speculos/screenshots/sign/nanos/blind_simple/00003.png b/tests/ragger/snapshots/nanos/test_sign_blind_simple/00003.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/blind_simple/00003.png rename to tests/ragger/snapshots/nanos/test_sign_blind_simple/00003.png diff --git a/tests/speculos/screenshots/sign/nanos/blind_simple/00004.png b/tests/ragger/snapshots/nanos/test_sign_blind_simple/00004.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/blind_simple/00004.png rename to tests/ragger/snapshots/nanos/test_sign_blind_simple/00004.png diff --git a/tests/speculos/screenshots/sign/nanos/blind_simple/00005.png b/tests/ragger/snapshots/nanos/test_sign_blind_simple/00005.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/blind_simple/00005.png rename to tests/ragger/snapshots/nanos/test_sign_blind_simple/00005.png diff --git a/tests/speculos/screenshots/sign/nanos/blind_simple/00006.png b/tests/ragger/snapshots/nanos/test_sign_blind_simple/00006.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/blind_simple/00006.png rename to tests/ragger/snapshots/nanos/test_sign_blind_simple/00006.png diff --git a/tests/speculos/screenshots/sign/nanos/blind_simple/00007.png b/tests/ragger/snapshots/nanos/test_sign_blind_simple/00007.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/blind_simple/00007.png rename to tests/ragger/snapshots/nanos/test_sign_blind_simple/00007.png diff --git a/tests/speculos/screenshots/sign/nanos/blind_simple/00008.png b/tests/ragger/snapshots/nanos/test_sign_blind_simple/00008.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/blind_simple/00008.png rename to tests/ragger/snapshots/nanos/test_sign_blind_simple/00008.png diff --git a/tests/speculos/screenshots/sign/nanos/blind_simple/00009.png b/tests/ragger/snapshots/nanos/test_sign_blind_simple/00009.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/blind_simple/00009.png rename to tests/ragger/snapshots/nanos/test_sign_blind_simple/00009.png diff --git a/tests/ragger/snapshots/nanos/test_sign_blind_simple/00010.png b/tests/ragger/snapshots/nanos/test_sign_blind_simple/00010.png new file mode 100644 index 0000000000000000000000000000000000000000..ce795f34e8569e986af689fded3b59c9a8af2961 GIT binary patch literal 349 zcmV-j0iyniP)O41}p;-~WL<=z+0=1Om1tEU@3H#qtw22}5*_5JCvCo4!52c$FXo$VhXU?0M$^Bekqgf%Ka;M*^X|4 zEs9YCQ(xfJKmNC#+8dY%2&wT+>D^<3C%}_*k1^mvtO~`RE00000NkvXXu0mjf-kqOA literal 0 HcmV?d00001 diff --git a/tests/speculos/screenshots/sign/nanos/limit_nonce/00000.png b/tests/ragger/snapshots/nanos/test_sign_limit_nonce/00000.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/limit_nonce/00000.png rename to tests/ragger/snapshots/nanos/test_sign_limit_nonce/00000.png diff --git a/tests/speculos/screenshots/sign/nanos/limit_nonce/00001.png b/tests/ragger/snapshots/nanos/test_sign_limit_nonce/00001.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/limit_nonce/00001.png rename to tests/ragger/snapshots/nanos/test_sign_limit_nonce/00001.png diff --git a/tests/speculos/screenshots/sign/nanos/limit_nonce/00002.png b/tests/ragger/snapshots/nanos/test_sign_limit_nonce/00002.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/limit_nonce/00002.png rename to tests/ragger/snapshots/nanos/test_sign_limit_nonce/00002.png diff --git a/tests/speculos/screenshots/sign/nanos/limit_nonce/00003.png b/tests/ragger/snapshots/nanos/test_sign_limit_nonce/00003.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/limit_nonce/00003.png rename to tests/ragger/snapshots/nanos/test_sign_limit_nonce/00003.png diff --git a/tests/speculos/screenshots/sign/nanos/limit_nonce/00004.png b/tests/ragger/snapshots/nanos/test_sign_limit_nonce/00004.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/limit_nonce/00004.png rename to tests/ragger/snapshots/nanos/test_sign_limit_nonce/00004.png diff --git a/tests/speculos/screenshots/sign/nanos/limit_nonce/00005.png b/tests/ragger/snapshots/nanos/test_sign_limit_nonce/00005.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/limit_nonce/00005.png rename to tests/ragger/snapshots/nanos/test_sign_limit_nonce/00005.png diff --git a/tests/speculos/screenshots/sign/nanos/limit_nonce/00006.png b/tests/ragger/snapshots/nanos/test_sign_limit_nonce/00006.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/limit_nonce/00006.png rename to tests/ragger/snapshots/nanos/test_sign_limit_nonce/00006.png diff --git a/tests/speculos/screenshots/sign/nanos/limit_nonce/00007.png b/tests/ragger/snapshots/nanos/test_sign_limit_nonce/00007.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/limit_nonce/00007.png rename to tests/ragger/snapshots/nanos/test_sign_limit_nonce/00007.png diff --git a/tests/speculos/screenshots/sign/nanos/limit_nonce/00008.png b/tests/ragger/snapshots/nanos/test_sign_limit_nonce/00008.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/limit_nonce/00008.png rename to tests/ragger/snapshots/nanos/test_sign_limit_nonce/00008.png diff --git a/tests/ragger/snapshots/nanos/test_sign_limit_nonce/00009.png b/tests/ragger/snapshots/nanos/test_sign_limit_nonce/00009.png new file mode 100644 index 0000000000000000000000000000000000000000..ce795f34e8569e986af689fded3b59c9a8af2961 GIT binary patch literal 349 zcmV-j0iyniP)O41}p;-~WL<=z+0=1Om1tEU@3H#qtw22}5*_5JCvCo4!52c$FXo$VhXU?0M$^Bekqgf%Ka;M*^X|4 zEs9YCQ(xfJKmNC#+8dY%2&wT+>D^<3C%}_*k1^mvtO~`RE00000NkvXXu0mjf-kqOA literal 0 HcmV?d00001 diff --git a/tests/speculos/screenshots/sign/nanos/nonce_display/00000.png b/tests/ragger/snapshots/nanos/test_sign_nonce_display/00000.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/nonce_display/00000.png rename to tests/ragger/snapshots/nanos/test_sign_nonce_display/00000.png diff --git a/tests/speculos/screenshots/sign/nanos/nonce_display/00001.png b/tests/ragger/snapshots/nanos/test_sign_nonce_display/00001.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/nonce_display/00001.png rename to tests/ragger/snapshots/nanos/test_sign_nonce_display/00001.png diff --git a/tests/speculos/screenshots/sign/nanos/nonce_display/00002.png b/tests/ragger/snapshots/nanos/test_sign_nonce_display/00002.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/nonce_display/00002.png rename to tests/ragger/snapshots/nanos/test_sign_nonce_display/00002.png diff --git a/tests/speculos/screenshots/sign/nanos/nonce_display/00003.png b/tests/ragger/snapshots/nanos/test_sign_nonce_display/00003.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/nonce_display/00003.png rename to tests/ragger/snapshots/nanos/test_sign_nonce_display/00003.png diff --git a/tests/speculos/screenshots/sign/nanos/nonce_display/00004.png b/tests/ragger/snapshots/nanos/test_sign_nonce_display/00004.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/nonce_display/00004.png rename to tests/ragger/snapshots/nanos/test_sign_nonce_display/00004.png diff --git a/tests/speculos/screenshots/sign/nanos/nonce_display/00005.png b/tests/ragger/snapshots/nanos/test_sign_nonce_display/00005.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/nonce_display/00005.png rename to tests/ragger/snapshots/nanos/test_sign_nonce_display/00005.png diff --git a/tests/speculos/screenshots/sign/nanos/nonce_display/00006.png b/tests/ragger/snapshots/nanos/test_sign_nonce_display/00006.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/nonce_display/00006.png rename to tests/ragger/snapshots/nanos/test_sign_nonce_display/00006.png diff --git a/tests/speculos/screenshots/sign/nanos/nonce_display/00007.png b/tests/ragger/snapshots/nanos/test_sign_nonce_display/00007.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/nonce_display/00007.png rename to tests/ragger/snapshots/nanos/test_sign_nonce_display/00007.png diff --git a/tests/speculos/screenshots/sign/nanos/nonce_display/00008.png b/tests/ragger/snapshots/nanos/test_sign_nonce_display/00008.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/nonce_display/00008.png rename to tests/ragger/snapshots/nanos/test_sign_nonce_display/00008.png diff --git a/tests/speculos/screenshots/sign/nanos/nonce_display/00009.png b/tests/ragger/snapshots/nanos/test_sign_nonce_display/00009.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/nonce_display/00009.png rename to tests/ragger/snapshots/nanos/test_sign_nonce_display/00009.png diff --git a/tests/ragger/snapshots/nanos/test_sign_nonce_display/00010.png b/tests/ragger/snapshots/nanos/test_sign_nonce_display/00010.png new file mode 100644 index 0000000000000000000000000000000000000000..ce795f34e8569e986af689fded3b59c9a8af2961 GIT binary patch literal 349 zcmV-j0iyniP)O41}p;-~WL<=z+0=1Om1tEU@3H#qtw22}5*_5JCvCo4!52c$FXo$VhXU?0M$^Bekqgf%Ka;M*^X|4 zEs9YCQ(xfJKmNC#+8dY%2&wT+>D^<3C%}_*k1^mvtO~`RE00000NkvXXu0mjf-kqOA literal 0 HcmV?d00001 diff --git a/tests/speculos/screenshots/sign/nanos/reject/00000.png b/tests/ragger/snapshots/nanos/test_sign_reject/00000.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/reject/00000.png rename to tests/ragger/snapshots/nanos/test_sign_reject/00000.png diff --git a/tests/speculos/screenshots/sign/nanos/reject/00001.png b/tests/ragger/snapshots/nanos/test_sign_reject/00001.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/reject/00001.png rename to tests/ragger/snapshots/nanos/test_sign_reject/00001.png diff --git a/tests/speculos/screenshots/sign/nanos/reject/00002.png b/tests/ragger/snapshots/nanos/test_sign_reject/00002.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/reject/00002.png rename to tests/ragger/snapshots/nanos/test_sign_reject/00002.png diff --git a/tests/speculos/screenshots/sign/nanos/reject/00003.png b/tests/ragger/snapshots/nanos/test_sign_reject/00003.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/reject/00003.png rename to tests/ragger/snapshots/nanos/test_sign_reject/00003.png diff --git a/tests/speculos/screenshots/sign/nanos/reject/00004.png b/tests/ragger/snapshots/nanos/test_sign_reject/00004.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/reject/00004.png rename to tests/ragger/snapshots/nanos/test_sign_reject/00004.png diff --git a/tests/speculos/screenshots/sign/nanos/reject/00005.png b/tests/ragger/snapshots/nanos/test_sign_reject/00005.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/reject/00005.png rename to tests/ragger/snapshots/nanos/test_sign_reject/00005.png diff --git a/tests/speculos/screenshots/sign/nanos/reject/00006.png b/tests/ragger/snapshots/nanos/test_sign_reject/00006.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/reject/00006.png rename to tests/ragger/snapshots/nanos/test_sign_reject/00006.png diff --git a/tests/speculos/screenshots/sign/nanos/reject/00007.png b/tests/ragger/snapshots/nanos/test_sign_reject/00007.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/reject/00007.png rename to tests/ragger/snapshots/nanos/test_sign_reject/00007.png diff --git a/tests/speculos/screenshots/sign/nanos/reject/00008.png b/tests/ragger/snapshots/nanos/test_sign_reject/00008.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/reject/00008.png rename to tests/ragger/snapshots/nanos/test_sign_reject/00008.png diff --git a/tests/speculos/screenshots/sign/nanos/reject/00009.png b/tests/ragger/snapshots/nanos/test_sign_reject/00009.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/reject/00009.png rename to tests/ragger/snapshots/nanos/test_sign_reject/00009.png diff --git a/tests/ragger/snapshots/nanos/test_sign_reject/00010.png b/tests/ragger/snapshots/nanos/test_sign_reject/00010.png new file mode 100644 index 0000000000000000000000000000000000000000..ce795f34e8569e986af689fded3b59c9a8af2961 GIT binary patch literal 349 zcmV-j0iyniP)O41}p;-~WL<=z+0=1Om1tEU@3H#qtw22}5*_5JCvCo4!52c$FXo$VhXU?0M$^Bekqgf%Ka;M*^X|4 zEs9YCQ(xfJKmNC#+8dY%2&wT+>D^<3C%}_*k1^mvtO~`RE00000NkvXXu0mjf-kqOA literal 0 HcmV?d00001 diff --git a/tests/speculos/screenshots/sign/nanos/simple/00000.png b/tests/ragger/snapshots/nanos/test_sign_simple/00000.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/simple/00000.png rename to tests/ragger/snapshots/nanos/test_sign_simple/00000.png diff --git a/tests/speculos/screenshots/sign/nanos/simple/00001.png b/tests/ragger/snapshots/nanos/test_sign_simple/00001.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/simple/00001.png rename to tests/ragger/snapshots/nanos/test_sign_simple/00001.png diff --git a/tests/speculos/screenshots/sign/nanos/simple/00002.png b/tests/ragger/snapshots/nanos/test_sign_simple/00002.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/simple/00002.png rename to tests/ragger/snapshots/nanos/test_sign_simple/00002.png diff --git a/tests/speculos/screenshots/sign/nanos/simple/00003.png b/tests/ragger/snapshots/nanos/test_sign_simple/00003.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/simple/00003.png rename to tests/ragger/snapshots/nanos/test_sign_simple/00003.png diff --git a/tests/speculos/screenshots/sign/nanos/simple/00004.png b/tests/ragger/snapshots/nanos/test_sign_simple/00004.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/simple/00004.png rename to tests/ragger/snapshots/nanos/test_sign_simple/00004.png diff --git a/tests/speculos/screenshots/sign/nanos/simple/00005.png b/tests/ragger/snapshots/nanos/test_sign_simple/00005.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/simple/00005.png rename to tests/ragger/snapshots/nanos/test_sign_simple/00005.png diff --git a/tests/speculos/screenshots/sign/nanos/simple/00006.png b/tests/ragger/snapshots/nanos/test_sign_simple/00006.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/simple/00006.png rename to tests/ragger/snapshots/nanos/test_sign_simple/00006.png diff --git a/tests/speculos/screenshots/sign/nanos/simple/00007.png b/tests/ragger/snapshots/nanos/test_sign_simple/00007.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/simple/00007.png rename to tests/ragger/snapshots/nanos/test_sign_simple/00007.png diff --git a/tests/speculos/screenshots/sign/nanos/simple/00008.png b/tests/ragger/snapshots/nanos/test_sign_simple/00008.png similarity index 100% rename from tests/speculos/screenshots/sign/nanos/simple/00008.png rename to tests/ragger/snapshots/nanos/test_sign_simple/00008.png diff --git a/tests/ragger/snapshots/nanos/test_sign_simple/00009.png b/tests/ragger/snapshots/nanos/test_sign_simple/00009.png new file mode 100644 index 0000000000000000000000000000000000000000..ce795f34e8569e986af689fded3b59c9a8af2961 GIT binary patch literal 349 zcmV-j0iyniP)O41}p;-~WL<=z+0=1Om1tEU@3H#qtw22}5*_5JCvCo4!52c$FXo$VhXU?0M$^Bekqgf%Ka;M*^X|4 zEs9YCQ(xfJKmNC#+8dY%2&wT+>D^<3C%}_*k1^mvtO~`RE00000NkvXXu0mjf-kqOA literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanosp/test_sign_blind_and_nonce_display b/tests/ragger/snapshots/nanosp/test_sign_blind_and_nonce_display new file mode 120000 index 0000000..a9c6880 --- /dev/null +++ b/tests/ragger/snapshots/nanosp/test_sign_blind_and_nonce_display @@ -0,0 +1 @@ +../nanox/test_sign_blind_and_nonce_display \ No newline at end of file diff --git a/tests/ragger/snapshots/nanosp/test_sign_blind_simple b/tests/ragger/snapshots/nanosp/test_sign_blind_simple new file mode 120000 index 0000000..3ab1815 --- /dev/null +++ b/tests/ragger/snapshots/nanosp/test_sign_blind_simple @@ -0,0 +1 @@ +../nanox/test_sign_blind_simple \ No newline at end of file diff --git a/tests/ragger/snapshots/nanosp/test_sign_limit_nonce b/tests/ragger/snapshots/nanosp/test_sign_limit_nonce new file mode 120000 index 0000000..9f9d799 --- /dev/null +++ b/tests/ragger/snapshots/nanosp/test_sign_limit_nonce @@ -0,0 +1 @@ +../nanox/test_sign_limit_nonce \ No newline at end of file diff --git a/tests/ragger/snapshots/nanosp/test_sign_nonce_display b/tests/ragger/snapshots/nanosp/test_sign_nonce_display new file mode 120000 index 0000000..1d4b5ed --- /dev/null +++ b/tests/ragger/snapshots/nanosp/test_sign_nonce_display @@ -0,0 +1 @@ +../nanox/test_sign_nonce_display \ No newline at end of file diff --git a/tests/ragger/snapshots/nanosp/test_sign_reject b/tests/ragger/snapshots/nanosp/test_sign_reject new file mode 120000 index 0000000..2f1476f --- /dev/null +++ b/tests/ragger/snapshots/nanosp/test_sign_reject @@ -0,0 +1 @@ +../nanox/test_sign_reject \ No newline at end of file diff --git a/tests/ragger/snapshots/nanosp/test_sign_simple b/tests/ragger/snapshots/nanosp/test_sign_simple new file mode 120000 index 0000000..3c8db9e --- /dev/null +++ b/tests/ragger/snapshots/nanosp/test_sign_simple @@ -0,0 +1 @@ +../nanox/test_sign_simple \ No newline at end of file diff --git a/tests/speculos/screenshots/sign/nanox/blind_and_nonce_display/00000.png b/tests/ragger/snapshots/nanox/test_sign_blind_and_nonce_display/00000.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/blind_and_nonce_display/00000.png rename to tests/ragger/snapshots/nanox/test_sign_blind_and_nonce_display/00000.png diff --git a/tests/speculos/screenshots/sign/nanox/blind_and_nonce_display/00001.png b/tests/ragger/snapshots/nanox/test_sign_blind_and_nonce_display/00001.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/blind_and_nonce_display/00001.png rename to tests/ragger/snapshots/nanox/test_sign_blind_and_nonce_display/00001.png diff --git a/tests/speculos/screenshots/sign/nanox/blind_and_nonce_display/00002.png b/tests/ragger/snapshots/nanox/test_sign_blind_and_nonce_display/00002.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/blind_and_nonce_display/00002.png rename to tests/ragger/snapshots/nanox/test_sign_blind_and_nonce_display/00002.png diff --git a/tests/speculos/screenshots/sign/nanox/blind_and_nonce_display/00003.png b/tests/ragger/snapshots/nanox/test_sign_blind_and_nonce_display/00003.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/blind_and_nonce_display/00003.png rename to tests/ragger/snapshots/nanox/test_sign_blind_and_nonce_display/00003.png diff --git a/tests/speculos/screenshots/sign/nanox/blind_and_nonce_display/00004.png b/tests/ragger/snapshots/nanox/test_sign_blind_and_nonce_display/00004.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/blind_and_nonce_display/00004.png rename to tests/ragger/snapshots/nanox/test_sign_blind_and_nonce_display/00004.png diff --git a/tests/speculos/screenshots/sign/nanox/blind_and_nonce_display/00005.png b/tests/ragger/snapshots/nanox/test_sign_blind_and_nonce_display/00005.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/blind_and_nonce_display/00005.png rename to tests/ragger/snapshots/nanox/test_sign_blind_and_nonce_display/00005.png diff --git a/tests/speculos/screenshots/sign/nanox/blind_and_nonce_display/00006.png b/tests/ragger/snapshots/nanox/test_sign_blind_and_nonce_display/00006.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/blind_and_nonce_display/00006.png rename to tests/ragger/snapshots/nanox/test_sign_blind_and_nonce_display/00006.png diff --git a/tests/ragger/snapshots/nanox/test_sign_blind_and_nonce_display/00007.png b/tests/ragger/snapshots/nanox/test_sign_blind_and_nonce_display/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/speculos/screenshots/sign/nanox/blind_simple/00000.png b/tests/ragger/snapshots/nanox/test_sign_blind_simple/00000.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/blind_simple/00000.png rename to tests/ragger/snapshots/nanox/test_sign_blind_simple/00000.png diff --git a/tests/speculos/screenshots/sign/nanox/blind_simple/00001.png b/tests/ragger/snapshots/nanox/test_sign_blind_simple/00001.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/blind_simple/00001.png rename to tests/ragger/snapshots/nanox/test_sign_blind_simple/00001.png diff --git a/tests/speculos/screenshots/sign/nanox/blind_simple/00002.png b/tests/ragger/snapshots/nanox/test_sign_blind_simple/00002.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/blind_simple/00002.png rename to tests/ragger/snapshots/nanox/test_sign_blind_simple/00002.png diff --git a/tests/speculos/screenshots/sign/nanox/blind_simple/00003.png b/tests/ragger/snapshots/nanox/test_sign_blind_simple/00003.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/blind_simple/00003.png rename to tests/ragger/snapshots/nanox/test_sign_blind_simple/00003.png diff --git a/tests/speculos/screenshots/sign/nanox/blind_simple/00004.png b/tests/ragger/snapshots/nanox/test_sign_blind_simple/00004.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/blind_simple/00004.png rename to tests/ragger/snapshots/nanox/test_sign_blind_simple/00004.png diff --git a/tests/speculos/screenshots/sign/nanox/blind_simple/00005.png b/tests/ragger/snapshots/nanox/test_sign_blind_simple/00005.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/blind_simple/00005.png rename to tests/ragger/snapshots/nanox/test_sign_blind_simple/00005.png diff --git a/tests/ragger/snapshots/nanox/test_sign_blind_simple/00006.png b/tests/ragger/snapshots/nanox/test_sign_blind_simple/00006.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/speculos/screenshots/sign/nanox/limit_nonce/00000.png b/tests/ragger/snapshots/nanox/test_sign_limit_nonce/00000.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/limit_nonce/00000.png rename to tests/ragger/snapshots/nanox/test_sign_limit_nonce/00000.png diff --git a/tests/speculos/screenshots/sign/nanox/limit_nonce/00001.png b/tests/ragger/snapshots/nanox/test_sign_limit_nonce/00001.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/limit_nonce/00001.png rename to tests/ragger/snapshots/nanox/test_sign_limit_nonce/00001.png diff --git a/tests/speculos/screenshots/sign/nanox/limit_nonce/00002.png b/tests/ragger/snapshots/nanox/test_sign_limit_nonce/00002.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/limit_nonce/00002.png rename to tests/ragger/snapshots/nanox/test_sign_limit_nonce/00002.png diff --git a/tests/speculos/screenshots/sign/nanox/limit_nonce/00003.png b/tests/ragger/snapshots/nanox/test_sign_limit_nonce/00003.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/limit_nonce/00003.png rename to tests/ragger/snapshots/nanox/test_sign_limit_nonce/00003.png diff --git a/tests/speculos/screenshots/sign/nanox/limit_nonce/00004.png b/tests/ragger/snapshots/nanox/test_sign_limit_nonce/00004.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/limit_nonce/00004.png rename to tests/ragger/snapshots/nanox/test_sign_limit_nonce/00004.png diff --git a/tests/ragger/snapshots/nanox/test_sign_limit_nonce/00005.png b/tests/ragger/snapshots/nanox/test_sign_limit_nonce/00005.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/speculos/screenshots/sign/nanox/nonce_display/00000.png b/tests/ragger/snapshots/nanox/test_sign_nonce_display/00000.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/nonce_display/00000.png rename to tests/ragger/snapshots/nanox/test_sign_nonce_display/00000.png diff --git a/tests/speculos/screenshots/sign/nanox/nonce_display/00001.png b/tests/ragger/snapshots/nanox/test_sign_nonce_display/00001.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/nonce_display/00001.png rename to tests/ragger/snapshots/nanox/test_sign_nonce_display/00001.png diff --git a/tests/speculos/screenshots/sign/nanox/nonce_display/00002.png b/tests/ragger/snapshots/nanox/test_sign_nonce_display/00002.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/nonce_display/00002.png rename to tests/ragger/snapshots/nanox/test_sign_nonce_display/00002.png diff --git a/tests/speculos/screenshots/sign/nanox/nonce_display/00003.png b/tests/ragger/snapshots/nanox/test_sign_nonce_display/00003.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/nonce_display/00003.png rename to tests/ragger/snapshots/nanox/test_sign_nonce_display/00003.png diff --git a/tests/speculos/screenshots/sign/nanox/nonce_display/00004.png b/tests/ragger/snapshots/nanox/test_sign_nonce_display/00004.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/nonce_display/00004.png rename to tests/ragger/snapshots/nanox/test_sign_nonce_display/00004.png diff --git a/tests/speculos/screenshots/sign/nanox/nonce_display/00005.png b/tests/ragger/snapshots/nanox/test_sign_nonce_display/00005.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/nonce_display/00005.png rename to tests/ragger/snapshots/nanox/test_sign_nonce_display/00005.png diff --git a/tests/ragger/snapshots/nanox/test_sign_nonce_display/00006.png b/tests/ragger/snapshots/nanox/test_sign_nonce_display/00006.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/speculos/screenshots/sign/nanox/reject/00000.png b/tests/ragger/snapshots/nanox/test_sign_reject/00000.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/reject/00000.png rename to tests/ragger/snapshots/nanox/test_sign_reject/00000.png diff --git a/tests/speculos/screenshots/sign/nanox/reject/00001.png b/tests/ragger/snapshots/nanox/test_sign_reject/00001.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/reject/00001.png rename to tests/ragger/snapshots/nanox/test_sign_reject/00001.png diff --git a/tests/speculos/screenshots/sign/nanox/reject/00002.png b/tests/ragger/snapshots/nanox/test_sign_reject/00002.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/reject/00002.png rename to tests/ragger/snapshots/nanox/test_sign_reject/00002.png diff --git a/tests/speculos/screenshots/sign/nanox/reject/00003.png b/tests/ragger/snapshots/nanox/test_sign_reject/00003.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/reject/00003.png rename to tests/ragger/snapshots/nanox/test_sign_reject/00003.png diff --git a/tests/speculos/screenshots/sign/nanox/reject/00004.png b/tests/ragger/snapshots/nanox/test_sign_reject/00004.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/reject/00004.png rename to tests/ragger/snapshots/nanox/test_sign_reject/00004.png diff --git a/tests/speculos/screenshots/sign/nanox/reject/00005.png b/tests/ragger/snapshots/nanox/test_sign_reject/00005.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/reject/00005.png rename to tests/ragger/snapshots/nanox/test_sign_reject/00005.png diff --git a/tests/ragger/snapshots/nanox/test_sign_reject/00006.png b/tests/ragger/snapshots/nanox/test_sign_reject/00006.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/speculos/screenshots/sign/nanox/simple/00000.png b/tests/ragger/snapshots/nanox/test_sign_simple/00000.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/simple/00000.png rename to tests/ragger/snapshots/nanox/test_sign_simple/00000.png diff --git a/tests/speculos/screenshots/sign/nanox/simple/00001.png b/tests/ragger/snapshots/nanox/test_sign_simple/00001.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/simple/00001.png rename to tests/ragger/snapshots/nanox/test_sign_simple/00001.png diff --git a/tests/speculos/screenshots/sign/nanox/simple/00002.png b/tests/ragger/snapshots/nanox/test_sign_simple/00002.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/simple/00002.png rename to tests/ragger/snapshots/nanox/test_sign_simple/00002.png diff --git a/tests/speculos/screenshots/sign/nanox/simple/00003.png b/tests/ragger/snapshots/nanox/test_sign_simple/00003.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/simple/00003.png rename to tests/ragger/snapshots/nanox/test_sign_simple/00003.png diff --git a/tests/speculos/screenshots/sign/nanox/simple/00004.png b/tests/ragger/snapshots/nanox/test_sign_simple/00004.png similarity index 100% rename from tests/speculos/screenshots/sign/nanox/simple/00004.png rename to tests/ragger/snapshots/nanox/test_sign_simple/00004.png diff --git a/tests/ragger/snapshots/nanox/test_sign_simple/00005.png b/tests/ragger/snapshots/nanox/test_sign_simple/00005.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_sign_blind_and_nonce_display/00000.png b/tests/ragger/snapshots/stax/test_sign_blind_and_nonce_display/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..f992e718a17c0a7952eb569a7d3a3ac7662fe27e GIT binary patch literal 8691 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 kD|~rR)8Q5UPX zwKk%xw!2t%vFx75_jlfN&L8ibch1b2Q)b@34D-zW-1qfd*L_`|;=^+tjcZrfu24}? zT?0LR@`8%$+(#-Z>aUlmfxpP%Y$b`Qyz&N^*d5(Z*HFX+M6Kx4iqg*olgY z3rA^#Qc?Ym>!kjAG2+7C*Ql?)VWVNDlDs5H<;-A0HF>9+>br{7x#yAp`N03%aX3LE zFLY)c9vyj|9QZ@qDtHcUXqbC_Vhm7e?^x8it3{&24GxC2T&-!SuXZai8e&!%Ua`K@ z37``(e5vRWap*o-{kwr>7>j5l z!tKc~nYDtT_s~m%O)}$~$vr8itTCOBAtQ&Z#x;AE*E28BQeQp)Y;pKW$IXj(t4Ax% zCxTuy)w5{bzY4x2=o@JI^5D^zp~rmDl2)3+I&vqHlhvd9>7)567r1Dcv4N&HKeVu7 z?^W+8E0tN`^`d_A-KqY)_va=3C&8w_{#!~eQ9`Zq#%P%@dpxnqpLrFWw%+^p{J)>U zBHwxymE4c4U!Em)ASZKhLdd~%WWxjX*scgRW-^@i$8V+Tr-9sOxi4{9^gd^Dd`Us{ zg$x!V|5(HYY3i$#<-!L~xC~iCsj069v{p>39$X3d%fvAlcGY$L0Api9Ht(k58<^x+{8_s*3}H4XW*IF#2FI=@WPVXQ)@;V=3*6|r3>r6wEsWV z_g3AcpZUxIRBP9at04i1{K7$A0L$NbEmh@Zn4B z`=Lq!Be}(;nZ4wb;I?_KCJTu0TvqnwQjEX6WADTUQ=b=lO+(LDE@!^3)rDOiY+(KS z1MialN{~_>Tsk{}B52K;wOvg)&6LU>wy6AvJW1WTTio(` zCCHuJhQJi?zpOOM)sp8-@=gv9#Q&-QzJ$G9-I!$x_RR=q{DnbpQty`7$UD&=961hZa#X3*~1_~zss^U@LuD(zmf zB7=dgo^E+@Ad=mTWg}?EctT^RoEt14t0+Um13w+<&j>ef$S~RLg>a(nk(rVxSFzJ( zyQDzf=hZ&1)|ZvN2lJoV-+FNnD-B{NGbh1_+0VRid|6ome~S7yCPO8p=5M59hx?XD93*shb1d5^Ik8*AZ(etc-N*$-u5n0Jkd?{yA@t5i;$ zxA;u9Zw-A8@~7V9s`o~7RX)jK?}AS4&2?2PZAg`ij|Qp)^Bdb9VNWUNgd@BlU;fLeHS*yybGX z#ea50*$7WF1$LksajZWM+zM?Ux>vG8z`!!VMsJh*fpbPkeuh5{Xx5*WB}GO|-MUiD zIMdYfjAFpihwY+k3p@6I%%o zRrkj1>SmsmFnyBGgtmR-^TAq)%B1#)WK2s+$&|BSv)Me5@C^ve8vZC$iRckNr-os7 z*b*oEkCJyqgJYCyZ+cppbgRliOl}1kq^}0I3B?wSF$BJ|WmO4jN<|uv&+JnAubtbN zn{#gzvnm+N*H2${m6FfV0o$^;65_!VBqqPJr5q#l-7auks)*U2GE0Yj`!X7o%XK}b zwB49C;Y)3dimW|d_s&oE-#nlc9$+Oub97KU0yFdtY9d%QvxT%lWVG1+;g4M~EE))> zm-*LXj*Ln@yMYp?-1amZ&?ZRBW#K&$x^Jb9M9;YnxqZ_vgQ%cF+-xlTiIrlUd3i8S zx(rHv5D(ohpBh|g(0w&j-)dnwc^TYi6e>f#Wx9<`YNSa=nvWAhdh_9kin7fenBq6Z z_I<1k<^c#bs)_𝕀f)$Y=z3Wwe8u|Q7w>f+lNXV5eI^V<*h|;4}Ln;y2b9L(W4$EiR$fZUi-tJ?3}8e!QG^dp>#qX!k*79 zXQ83MR>Y`XY`jZcmGZKUOh|Xb|6EAQ5tSC*YOxSxP8fPAl)*h;X3wKxXh^VUi|Mvj z%4;kMs3UE##6>MQr}d$6{?Hy9(fThQyTC>VfM}o8pOA?o9s$J@@d)(YY) ztkv{h)0+VGRX4Yd>IerOshgYhYeV7qP7K#l|F!w84}WCZ&4d!JSM(xPp$GePeakgt znLvK+DL}U5V(;bU-D=2zJA`D48A-wM>TWLU<&NVLikwMc-L8%D?_pWM2TSVd9NQR3 z#f(c}6y&=_TFr#~A8pUMb>oj(=Umy4CVM`sUIFL3L=^Ji-jM3L9jC10nMyYCVy7&0 zb5MP*0i)lPW;+o5i6q5ee+e7S96a>6lf?z?@lsd{#-K*$6i-uu>)-p-qY*LI@ir6+ zyfPp^`anmR6T4HyA2g>ps-k*dX*$5Q2Ra%PmGssoV$3YA%|rSgE3C~}m<%0rXM>K)U~mUL9ZY|g}9|0A^=B~;B#uJ>oNv-acvBLnr> z80a{NZ>`#brhao`i?(KFt#BYHqtAY}NY~&CgZu%!1GBJyl`caF|LB&<{yK ztsb(x68gX&ixrZBiDmAFD(MS@Fv(^_-C3x1h(u?7mrQdQ3Dw4}!tY$&2gD z&L-tk548319d@Ri*JF4<+w_rlc7`OmVYMw)-6HYJfhpeUcCvZ!R36zJom9c+Iqixf zM^$8)%rKjhP&M1nH1rWq!-5DMk#wqhKa$H|G8er}y`^GkctPdP&E<<5Y^k{rg4qj! z^)F*J_wokH%3_zBY8KCC0Pl)1Avg1xy$F&zd^tOEf%TA zu2ir?*esS~Sk}ZYvgekVa?PDrGBnQvAN-|MNngGcsBlr`BM%5|iBYOhpAv-CwhOqK zrq5|Sb*9DM13omtU7|eoW{(#Tf}sJRgA8qxPTRd0OPuD{eMPP|TR;*pn}WG$qr-}q z^)u{!H5;jWbLTPUNDKQEo`kTfeD=iw^Fx)8?hXZ2t*`)(rT}lQiI@fy4x``Y^_AT% z14x=?2Z9#0mOEROQMn-O88IE~D-XH1!Fjz~gtY48W+uc^$1Dz+OIZ8$NuN)9LPA^H zDl?TElp+W-D*yCsn*X!u`%r11RO~X3a$PyZ;FUXO2N-{-1!PS(!4P(HwT_l8t|3EU zBD?#w$H>=fIN!z{T{(tGO>CX?f_!t5pi$O}7YD@XVaNnqrX7oFu|&_|EITiX!31;p z8JDK5CdoHVw@aixsUWm6$~v&oO3V&wRs0l~4NeEDJdy6wvXz+7jaTpAC7~&_&w-gxZXNYye%_Eku zuJcQ{3n7K#)ohkadr1m#gyrUoH#6G_`R#YB)qxJ2J-l`{;OH^+xHn#Xdk0pF@h25Y z0!4>(cgVZK>!mI{;qy?z_%wcE5*(=``*{n;%HQ=)Lg>Q)w?S;lbF2a=<+=XY^a}J7o@4Ub#Rih$%0;41Z$ZGFGYAm+0(qOKCu z9jpe}w2A43tmBP4R=09ja2KbSJWU`oTL<&x>aqv21_2$bDBlDSPv0-40xaA@a&bhqU?^ z`-p?9X12{{(|$R{rLv(f=$vjN^obR(u4##o<}LNv`d5zX z%I%ehFWo;vjd`kO$_14ZZ9@_;*6-|ReNmd2pGr!vmO3_H&B$zz{QMJ1=p0SPDgn1g z$v^MZ#5PNB&#}ul!@0SU7#j)o)UZV5+a@zx4PNJG(T(qN>ayz=PTyA%WQtG2gd>$T zXw%U^{>}?dpwWTAVqZ~=$F6}~d0o0;ccRl596UY?Ab{d`oy7RFpT2rL@SON^aUC6~ zpd-JoUig=;i{p@zqx!8q@uM4sp+9Wa%M``v#L!-jSBUpchd(bHkzrCyL z61c+{cACH6a6YNO#bL7ln_d)V1^^^1%XT94=Ywhg|RGsWR>t^Ny|$>J%|M{j5j$v{$wWr zd6HIw0!QEw1s;#BPW|=*#{)8`clH`0Rw*=U@EGTok~Ef@!*KU2riO+beVEH9T7ChK z0#Ji8&wSyQLM%R~c{(L3-<%;j#oL0d6+K>Q2rcm_ zSC6JPzHjoy`MWZnl;Mp9zCFI6f^b_|3_4M{-J@jwo<1kZl;q8sxZd4D@+D{_w#%W6 zy60V`phz8yyWDx({_;V|$>7{6zegUWsVr%<9gyCvVS6-wj?7tC62B}HdoM_3BUH)b znQXsJ&G)jhzi7$doJ}f?_OJ))%R0`t^q3Mtt`KZ$_+c*=uibyuW&!CIN&7aS15A+o zu_APKL;^-G?`&f>Z5F^#&jb1+lg{o2MFO8`#JzZodL|g+)R`}nwD`)2#ER(l%k#O{pBYrs2 z-|3JR)xJGgwX0q0!8cccziNdW#?)x%I(VA@onM zyzkva0R;P>>A>ZpHaXJpP%77H(t#n^WW4SvZm4pGFks{%*yL_^wVaYp` zKy8*c;iYoloLc5ww^L1YQ2ECF2Am5VuTb|hcm|d{`D6cJrF34fQlk24a!Q6rb>JhN zDN(aMhxLUN1ht^8=-Cn>^rhZ`sW2 z^S_ZL+v~$Y(V#2%-;bjcMLZ{ywu7+_oTm z{9+5fpZXme0IP79Y%h7v;)vt-o=)ty*?Mx$eHqYx@tKz8&qUS_*+s&FOf6U7e%?~~ zakZ-+Q>9V)f9)Oh@;{z6C~P}0GamYR?(aehk21=V%$|-jf26dF3UZ=2RC}o!l`}M- zI23N&irTe&|7G3ant?37)14kXp*DD3dOWUrn?z&_^C*W`-o7^xjdL4ZzWH7Fn2olGL* zeVi5ov8^DK?AP9SY>kIEDZabKw6T0x@nB-(b=9}t>gaabM}g^su6iMt*P??%WWgNV zNW=}8{d~xHJUGM?NZ^6@UMBQd1n9>)VcyH6_kAH`#Q4HACg8m$YqV*)ovD3$)Vy-_ z$K?l)G(rY@lYf+?*=3bAfiKV9er^AEr#}?K5i=E_ca)*Yn~M0F5cT;667MBSe=+?? zgsxjA5i>F1g;bj($tH7XS7GLnbu@hA=JeS&u8&6aJ(~Q?bj}%(ZEv z*1a5Ihr_GCId)CdwL-RrYaJf8gG1w<13u6pl= z(q&W9fR-Jq1kEe;Z?oXL^=jL)?4qpQeId&sy?L+fiTt|0QyPN>S7jF9tsocH}xT^^_uI>Xjk5o2*Tm$TXE@dZ%l|Wjw-Xq=l&U>~Wghq8+ z${btDcWd2_;H`zNrDA zX4D-n8Wr=I@!9>L60eXyEmgN+L_t*sn!S-@nMBJ`-5BYD=qQTb%mIK%kB&0oK#WcR zC?3~SP)8{*D+7iy97tSVM zprW(Mp|YR37R?hq9^vO7SsdZ^b-+D5lh5-8K%;#k06U643T~6~sI3KBWGPc$jbPCk z7Mwf!E=v)+G$6*Ayl))3rNwX6e*+n6VLf`Zs2DV1u&gE+xd`PGm@ugTmG}P2wG+_| zA_kqm)_yVK;8fwfmPPkm;9TBE22tTFlET}rx=t4SE=tMLQgRk-_LPARI^OC9VbQLP zeEO@D`{$M95k?6C5cy))B$hVltd|{w(&_FY@4od?M^PUzZu`$P_y%UXdt`nUH<|}O z6Z1kV{_1_`LHp@k_>Bl4P)t4Cb;PNFi&K%Dg6G>=fj`xta9qvHMl*iPsWOQG1ETUG zfG@X*?$G9J&1YZVoo)-TBS8hov{WI=h^Bss4Mps?2Ouk0=CsWh@L!Sl;?T$XLwotg z_55Tw*pRw@<{nbnV|JZfJ=M_=;%^y2yt|Hg(QheFj`Rh&_~qFzt^lz}ckkd<%#=_h zoy$7M%Lrk0E3k6&WFeAU~Vx(S85uOS!nAy)^W_3qy+ z$M}bkZu8FP&X&;8Orw64Z;n+018dq_dE7vww$r2!*Lc;A#2hF?uKb`}Bw_e&9m-vJpm`%z^Rspbl zEazoFu-Nf6P4Dpn_?c%q7gQMfyt0aO;Be|=29v-j9?)^{^tteT>;FIx+%1SG49aCu zyW7#4v@8Q+yxHM0j5o`bch6N4qK^<$77Y?TiqK-9S*r|H9YCxggqNv(0}1$QfN*t? z`sOq*ySwTg(u!y3Q&DoUF5(D&O%U%AFQJ{( zx4h~N@C>BWMTHl&ieBhf;i%O>1uQW{|2GgpiVIhlG4rcj*O?<3MXpHdE!FFNF-*%I z$DKKp1>XF6O8^KVFD6^Iji3RhdryI~!nKuMyBcI+Xqdu-dsL|~g-^IZwYc>m2fJpP zhT%*Vp<5OBO$d1&Y5`2`4XrCxI0zWh;&Za0qKZ;;Whp$KvRG?!tLKVg*zY)mJE$eO z8bf(7ALL=vi9cC!0JUI65JuuI@VsrZj)_S#x9 z8lbPRKcwy4-;u&PJm8D&6Xrr0z1mbxZ)ho`U%nv(b;B_s!a649hpO$3d2zXy#oq5% zs}uR7pH0l6?`i!=`h5`WwoMaM^y_`WVg!GVHKt^Z z4>XQl_r!(5{j|55!6vo$1EiO|n?Gk1K3#nX6N6gWqj^Coc5}`Ro7)$ler@BL7Q=hL z5m)5SZ@JgVH%c6~4e)zJiDsu4m!7;LTT}NhhUCm7$uaTFr@d=(UUcJzRef^`S>f*dD)3!%5;bEN|glmpIq1<4+%!lCbG;AFl3T1=N8%Se& zs~n3uM{W9lVeZ2gs{@ibM%C?30u=^%C2abYtKa5IUu-zan-a5Qjm97uqnAbp+!Z~- z(tJAcN}nk$yu^L$Yim3rEStN5+ZFqAI>W$Kpu;iOgMsLmqG5M4#2b7r_1sCNHFB{1 z(e@~T!^u)P2ST`knMuoPXk^#+K1ygOIi)X<-@3*0x9rk4f?|9+0hS*(ni{oPO&CE5p}wh(aWHNB?$7n1VCd@f_Q{v`NvY zm33rZI@901eOERZ(;IsS`4V$@>!cSmmLTBQw-w;d0{#Hv$=^?HgObDq#aXnF{dHehLNB8|YuZiRQmhnj@b_@a;G^39|9zb1>Q^g~z+e zQlv{sdt%t$76o>v#|E@M)stHCBep7xZ1TsZ@Cd}(DCO~i?iIeBk0O3~rt|rXOwp-z z&T}IIhi*M?d{+$ON44Z0RCF(i0JI7o=!@z4%AW0Ifs~*Y078gso8<|!tprQ91 z;%=L~2;Yb^J~{zKTDg)P4mNyKUU{qOZTmz2q0_mALF}TY3^Zzb951)iI$+`E6T$GL zJOESKXTg;o!~!S^kYrv~>Xf8{uaC_Z;deQB@Lvr!nLg!1! z%-+@)sSO0)i8v@Znp+DAcs}k7Me>4bk?yDLxon^-8~|%`pg(hPbrbD|i5$n`rB0tD z__9y(c!{6()efm!$p&YzpCh&w9Oq4qYdUhE_+wvN=!*bpiLhXbLi-0*Z3$S2jJJUs z7Y*bQk^A$@GIAQ{H8BE?*GwJh`I3FAMCb2oPXHA4^(Rss-E7CP$WokCv#V{$vp24V zA^w@tiMIN!z&y_R#wUO^<0F0+?J4s^YvFc`UtP4>XB8@-d-G%|idj7ur4#qe$L~Xf zlDhYVH%Ixb4}l#$-R1~oH?fse;Da8-cZ+EZw(}qRx1Uw%f|rSZh{;7ytrzGU2wztSvJTNZEgCJ^iXp`P6tw@`HJT&T2n?dPtpmR#s896@pcwAHjHGs1 z@IQ+8?JzaAw@SEQR+kmy_R*_Y^XSM%TdojS5r8kCFm=W0o7=IX(c`6=?@$ zSD$x+u+0|#Rv{+V*v_uHer|r0`IXR{S?|Ji%xAF7DDH%xfT&R*g3~VDYQf!pFm4dK zDxbc4;ZlY26AQ@`K+6MgQ}%FJSQwzQ-sT4;w-^-$CbeBW-iPSdZfFP`dgyFsDT)Kv zm^>{pG&HQO>Jnx`}=&GmgKt2-lY0q>Ijy^wg7PVw_ zkZJmwlm2pPaMn%8sfyD$1UbnL1aIdq&2YKvU)Ez9$aZB*3e3=0M* zbR6&9{4}Z@S#uw6afRg+`!M+@J(fW6-m8ogezb>Li3bZU$k?X1lZT*<$#1WOa$jgYjk{NV^i z24iU)`^q;d%(p^TDe+}xWgL$hXtnO?!h$`IYCo20M$z|mj&R!i9fjgZPJmkG@M8?@)k>6P3JGb^gL_+xtyYC(Uaa*%Dz zPQwFv0F^?)EQlv2)Ut^A)?k8=c~{|XecYESq~$rT+nLUrALuawJYL?up`n`;yVD_X zcQ%VW;pht}XB>AIivt`Vm|I&dix_{x0hgLyR&j3TY_1|*_muP0XQacU+8S%t!QS~B zd?1_6GHim_RnZ)5ZXD*z%&e=FpE-_5QolZ^QZMb?@DgllxfBC9dE^0;+6HH00e|AM zOd>FHUM=pWxcMf4Yu-<7aE*YC66zfB>i55z2|U#4|7@z6K?w6RnRT>>9G8(VN1mS<Y3(`J?MUZNs&-wA~wJ?K7AhhjQ&QCj)pKG%CI&tL$|Y#PDP#LH7>Wcaf}@Gi z2H(YSk<-=0y(Vp_Ngr_V`YU`IsXM2DsUSFZOxDyADj0juX)>N&VX4WKm#YQx`e+N8 zY)4g>QTNgwbgplXJA#o@FTi!Qh7xowyc&?z)Hbr!sU6KU zf=TVJTkK&*v(qY8Dj4tz%CVPVlQn*NOe=&u$`b^oG@guZ0_@PD`gob>rT%=#^?RtD z!f-72)$I!2{unHW=-n;OnuFgjm7Z{CX=fTTk>y7>$o816g)w~ur_gKn@dVCde$dRV z`?Ye!l-qRxp#|W1^u~HaYs!Yc%P)OWdY*0Jvx8d`z&m;;wYTZx3Os3ymLX!)4|hlj zI+nLJdgTVGo|1gvT#vI5X$f<~j^52=E;HC@LhwgHquz`GzMM!cObvv9HZ)uf5-O}I ze#Gj?*gg#8C1l3Vv}(o$Un#U4EC>0!RDD1O)Lbx>G!t6opIKhD1$a-Q^O5)zyUcis zdm7J9i0_O))NM#e`6eA%I-2vJcL09KnC|>4K%aKIsK^5vZ&J09Dg!e_-g&=#_$X=h z%%!}jp38q{COh8sd)WgJW1p!|_k!K~)*@hzAScBEhO@PTS{G-rTz%)ii+RL2$I-_g zaG^?rkmuxOms>4*Ngor{LPCu!jSF1?`yG(wJ93;XyL8HZ%gG@eIDnRsg^_rx!xQDP zPS+AH5DspEyC&Fry<8_9$5U6EP3FGiLZ1B5$Oj#UVfap(WebMG6S&DM-E~&*rlP!> zArZP$?oVHW&t<*)H|zX{$agpD(1*v>Odn~-TA@sxB)v2C`F}of{_lDqfkJae{X*l; zQ4vr1F1?k|Mw!!5H6`)h{lDC#w-fUQWfKl4UPqelex z13Ts6!-VCgwvQ?ansY$1ARoEF2QF5E_rrW}>U}oyLGEm1dhITyVi2pE9tpBW=d#_o zb&yqD+7|Pz5tiG#KU3@^=eyW0P{?145CEHZ0e5nn1o77z#56rehtEeqDt)vcB9o|F zqK|%AD+mSbdwbHn%*9RsYdF71lh>eIi{hXa0?Nil19wh>!K7^=!mf%TgjR0;s=vom zbP!G!H@r#hB7QYg-3ss(8*>Z+9?LSwN{;Dh;@z=z244fYZNO(l;vrSyJ7t-(0RvSS zVd14{d2hV`@v{MZkJN|3UmXtz%U@k`Eg8*Nm!0H8%XVdWB%)qML)^7UE3b$11AJZxW>( zd72TU*irS@! zKlTTr66xVQf&`SA&$GX@QIFIpL91++THMEFgME0H)(uiDF97!T#!XHx2I$L5f2cVF zjiKSNeI0)+Pc~ad3uQj99>o!-Ju&IpwZ2*y(Ya?cvQfala*~?<6#Xm7tSSI4=|Dj* zTmm3YPKR~yJ74oh8Cr7|x0F)QNA`7~3EvJ>_LXGx*)pNbT2|WcJ6m+!^?@R+By0J|@=Yh3de#H)M0Y86DAYhM8-U~l*w>z8xJ%W?T0wSwPGDr{S8)k{ zH}F><@>FBC%^)aOD|Ifuao>`ZO31dYDR!lqeizs}WL1nJddkc;fPGrD;8AV>VUPhE zwx4KxMhViEuNVDhaQZA^*>0%GlT;geatlDk_RVG^_TnK6&B%)x@Y5M`(dl%f$%G#R zjS5NULa(ifDpwz%`ItMavtOz+9yTch5|q9=Wk8NrG;kyY&#pUZqQ^jEn%*25 z&K-unnp=5DX{&jM#cb4jH*0#&n>pM_&b+1MNM84}m0R?jJ9F%+GvxTwwGNZ`Uh^&oFEiPIJmZb<;gH2d4&T#w=xnZZ zZA~ir1 zlw#;DK++X<)@tZ~@MkMJSsjmf` zsmvnM`2_A!8Ahb?2?VH>AC%X@NNzGdJ=i=YxM&^dd$%ToldJGYa9lG9=yf9QqOBDe ze4d7s2E<6m2nOAgxmOJW{Qz~6fF54`f8U#DJ2PbOW2&mE{8{bfFu1WjcVlA-(E;=2 z!0qEdJ7w3BI=cSn8w;_jGJW#(3g{V#=KmWJ_+R$;F0e93=#{+G!2=cTWWBp2pflFV zr`4sUFX39kzX<0Go|EGF@}mg%WPWqJKP&0$3sO#fDl9^lc#L+&{_$1%c!LTQaD|iF zWWrBJ7*0#9fRlj&1T3gnrnt@VV05aXu`wMv{xs)en`rx%{p@=Yz6Ie9jnLAHw3*69 z8~jE3FK-)(fI4E`8lp7s80X+z;3meh3W(N9Wu8RsH?{WugNQm9{?A~ReI z7LDzCT(EOGw$48`VQz$kY2gm0-s_*_V4P}6p&#QNpxZL+%iqGo!_y31;KT}DKTrr| zCM65Iuy%6NOXrH#%Cb@s%t7aF-_kQ-%{N#C^p`W%#5J2=d%`btZtObpXE}05+bdut z(=BgoJr#Fi22*=ltF^72{1pCNb}&viq0k?MaAfLSJmEXfEOMFf(;K4|pme@&6e;Ysqrpg#@DQbjn8kQYoXiB1+ORY#*RM`Vy5?9LlwCCNAggt%Os#r z=sT`v{PJLf!@fz8WJ4YLfC|}|=kTIY$D7?cMfVVFdUFmhRd{KqPXp3fFGOShfkNt(j}Cys^Eqs|Eb0p+NI$1yQKK zWrVJPJ2IjN4-s{w00k)HtL#2njUl$eQ1Zw;;|)L7;yy#&HTjt6kSbrasPHJxSo``2sHRNH)<4 z|6AljQaEO}cm;&89TvVh@U})>XyBmD1%Bhv@q#Cx#MpV5gz8M1AEjvyE(2Y-b9x?z zp{ItVD_W~(y*-;hMP8hr>m~D}YZ>Q)Kpp&L5VJ#K>~&(E+@^QK_($-vtPacsi&)mt zsl;hXIYadR8q$f^55EiDD*?SJxdNI7j+6;hw>V!9e_7wPc#~R_@SRtF{&b+%!-z-x zsOtvp)!cZS&&nV^Qp*QdK<~*ZSwMUod}g56&aZ8+fby9pD>VW`BTkvyRgZwa(v zFWlIBiAs$p(Rklm?c(B5I@JD0)dYTiUVH2i);cWmH6B0aG=e+$@(no4J+hLdu|2T2 zw40I(=kDx`n#kiZ;_dyTPSj@us@J?^DtSnE{tDJwCkox{s?03U{G71fNV z8h0obL3@`crLfNZ^4oG|^!KeeGOMByJ}8f7o3tazkFH*jwMp?|CsGa84k78yt@YqV z>j+p8Z|jUci!i!YMh}Zn&DKA(GdAv9^4jbR%umfMn%W_py?Vy%0)Gh{3$2#oscu+A z>&!MVfgc9NV|xKv7Pc|rhmgPl@r5PVfrvYd!;XYFrtfe&`%yyKOjCJ(p5t@d!=bKQcl zJ$U&>HL`VX2P~tVtg!goq+(MsQm%?C4+iRsq!&Jzj-p$aT=;SIjqOQn+$PhX#>Bqv znKXGF2<)(ixN!HebEOnvZ(vWjLfxX8Wx0n+$)tq*qrKzq$?tbHceBC2Y(WUpzK168 z*s|0>kM1bnPrGXi9TlB4F3Suf=wyC74J-0lrIkwjsCxWx=CPocr)YW@W+f4&u0kgq z`@(z1$-~-v$Hk#u^X5{1yxr;+hIhK{nu zcEG|52&Y-zX)X;jTF&d8^bv`Th?Lb^T2Em7%?-3HC z#^FH~PAnD$PgHZ_ukl#v2pcrs;VmtNTb4sUo`=1fXmNq>?Cju=UeZtmzJ03Lm+t3) zJ|;wut$!9IysH)PzoEsjdtJ=V|X#Qq8XmtK15@8{nwL#aDcSs7# z%klIG%|T!l9~TJ4)`CsJ%~`Y_%e+n&Oo!%A2o!%e2!zH;SNnu4oMQ0RY<9CIIHBEFk-vl1PX6h44&)u3=f-J2UgOiJay#hjT*5g)3Hd1th4`Y@<^Wab zce2AY;k%=h@DNeITK2%KN$mkynp{GES8HrY1Df~;*81U`=c&;FYC9wL+{Qi$65sH8 zGZ=;}OI574bMpK2E8ieOctNI?VZh2gv$;|OTR4;o9SB|XZhi|M-&c9ZRmDdWA(Zx;!f9SOiMXU)^0kIY<76 zH=VUDW+@Dmqefk&{aKNVzKwhu09ozya>pgK-sIUYJo*YdhvxxPwAhfmH2_!0vDZ%<>m(>noeobRhq!lDnxyFBm9-MHZEQ` z&QjngBdsHKAZ{Oz*HzkNcdO?{3ZI_mY(RJ5cSjdfa(7^@z-GDJG3>5PE@Jd*!WI=F zJpW9Sa=H4P2tjMQ(VN<~(SgC?k?&T>c%K%gDrM^-qLR=AEW&-l zFY+!~b0o5MZP3>Ek2x;yy`gu*>`Dcb2#@7~wy2()p>Xmg@5p{uw18nnGTeaEI|JNacwI{eTcB?B3qH7e=hTPp*t&rpZ?o{D>0j zh1?^YTG78c)qa->SqyI*ilDFa2)F1^PJ9e|B^VC3RjtT><>K}8Sc=QdfZc1izPv|R z{X+F|Q$Axa4lkGAxe)<16Y@pIhSGhrm8cE^YS(L2A*R|8I@d`DfAnAapVCah$gz4`fZ1bt#Z^u47X#ca(lMb8m{8ioStY3e zr@{I5d7 zJ107jXLYmfUJob6g^%bsjE=}MCXUt#(3tBxEb$+>+U zX4Q8Zx=knD{NbO5bWWcv=8I4jo&gro*caa`N_I|XJo&x$E4}TxDwA)Lo*OMWD%)DZM+XN7 zN0%=F?uT2cjs3v#jjJen8`74V=-N8|`<$9STURsO=ke*9oiO_Z{+E&TsLTpeRZAtO z$`3OhwCtzN%a9#RzR(dW4)B@DxWmL{;hQm51NqEB#A{6hM;)2}_c}YT%O&J?%ZylN zn)8HuynNztQ&T8-bdX|%Ef;I?_6@KK&LH7BlZY+6X_e#5xV^^MlV)Y%L^HlonRe@{ zKX0XgMfF-8FVTWg`n2E!rxXL`@5NpFu|k zFb^$Xs&`JCS(#y06EYu)hlcy`)iICgTF(MaIU8 zy`B?(8E8%N{#vl!SW<`81b1Q|zczhz_qy*bRRC!JG`i$?R=htZ7dMEOG< z&SRUSP=gp=dJ5riu*R7k7EzzV*VBKO4aAqEM;eEVJbVQ&DgYyF0fo{P7r9ptu{*2 zNG@IQZ{(0Tdpt{`^Wq(KbuM~DVpn;`6G%Et$!Y?qgngaWCJCw#ElZk;h9~NJW3}Ky z${_Nqptp5M+nU<`7`AhFaC?f(Bw9;ns3M*0PBMQ@!_Y_i(EdLh7$rKIk@xt^+aLLB z^uSO+b{rARb?2g<*d&us z@X{+2TMD;?;aYURuI{;41)nNM7SCVOt01ubu%>o8l@OXz%6Me-};J8%A3f0j$oG7VD~ zPc9RZ>cE`7HlJ=x-cRO-LW*1lFQYASo&B%3TJDr$ocxtKum#KI$Kfm{l%paL`D)Hl zNcXTG{&E9^!~%3o2Y=IBlK*yUyn25aLmoOOuh-3bO}uHLmp71NgDnJA!WnoMKOHRo z7g<#ryJP&z92dA9j+T*Sol!4n7^xk)P@_RM^^42dU>9P-D>Qz;g!l%|ZAGje#k9Wg z5#uB&^Ic6sJ|tC})@!n^!nm`wVqfHQg^FZCryP_L`!uuwke)-$2$um*+D z_v(!uhM_PYJVKNMSP5+At{4%{0W}^5%zJd+f!|B=z?>>h|B6*}71EG>Ki}035)JwW> z_}5+l*D1HzYngfOJB^9jZk9?0{`oD+He)ir`LfTLHQ`0(_)5HZ292!d|6pJK2dNU6 zGX|~E8{5SJw9H<>`}DCFlYsJ5qPnm=HE<$l-`q>-t!_2k$NeUHr6~SJ zwfI>nBhyZbTtx1|ExcSV0K_t|8!7i5^-fl_<#}N1HLi0p$;zw#K4kQ7dM*c7Og0~X z$XSE5^*SPVe|%D4n#Hy+k%lS2T=8$<*Iu4W5ZeEdz>ZCLBpz;0v6MiTbdnA|Icua- z&mY0yjD+4}_&$p8#o>g_eDdqkq)g;oqRQDO-n2H8M0YHXv^7agT~6K(+L=tlWS?(3 zQuCo{g_r#H?2bRZt*^)SJvB6zeo|kJi(XCVFhmXCqJJUD5*7Y@YthR!exQ+Sws!ov zN^^XRS@kO1RHZ*IFR5Z#*sLxOT|48^*h%`T(c%xq=f{sNDYh>kxA;;jJ= z>M!~v7)zYNqn+AA--oUEraXc3&03*}(5oEuB4l0}cFGgJ7bIGz(dr|yPZzh2&$ z-XXM9_Jx^JEL8RuRawUG8uUdm?bX=OI`quk%%B3moep_XQI3EaP2PcqRLkIb7yyHF zIOAv*|30^?zKoYo;fTt6C!60Md~fS&Z54SUzwJGpVv$8IVkp943Ue)$TiF=^C&O}F z$o?dEC|k5yv~|<&^rA_O>0eVnKG+`wcbYS1KayxrAD&04_QyT5cd}$?;yG8hog9O?;pjfclc%uzvJtJ1M|Co|U%ZjBoba=nz#Tw{;w74` zd9^5gVuv_mIfVO}8V3t&c&9l_HmdLrcW_fAe(a_f#b>ul<0w#Zb<{7=jd;XYDoGGO*>TFywESRj}DIrSq~>?%7kLcm>8%0LSU(^lt5@= zIgL1)i4hIp7Pl)WAqOh*Ljo554;JaArz{sVY|}>EmgfF7_-;&uK>P2?3HsEi>)EusaJfeQ_*z%Dg_i)2DBU|^(=MVcs8@ieFZ;g+etRD1E@>03+^=(9|`g>My zZjoLHx*t|Ul&9)Q(Q|Fy64Osa^lg2KGf#AP8Y-hm5DSoC_%8-GEb}D0|yWjY@z#TUw zUjs#=Ze3)bWch;$zq9Sinlu;I7@LS+=2&+D-ow3s0+@Jg#OnT=AHpo}_S6q!sbXB2 zN9&q@25EG>F-Ro~T_?MGGb@cu*HzD*e=bozsj4}#J)U@36YVa&!Xipb2lDT-bgTeG z!_6LG}?!HPWQ9DDGP6w981j zKJ={?$*jg`-Tk*%wuxf5K>hup%RCFaPq?5%E@#$1x@0mN_=}M@=SY&9;og1Y#nXaA zDi`hD)yFXb)ae)ALkA~7$|_`n$e#W>>{$D@OzE|G`0kt4cgu(Um!oTK*Znm-z864; zr%88vYR_q`CL(*Z{mCt1Ao|66;j52ocuivdkjwwFaU~TlffTm;0 z^b3X(K_UeRoFLwpy!UCF(3;iOlvo7kBsA9p$II)@$~vWkyI&;UF}$6q9=JBpt7DXd z3(Vmho9PVU?ph}Pk{-bpHjrZ#Cyxh`^>z+?`*=#*8PWf$Z|+Q%8!HmV;}dPgs#&Mo z?p5bps5R((2q;VZP;b0A;$GRKG2dK&7yG&8W2j5Tn_Ut_%k{2y4tcpoxFI-dU#uXU{GL*D2|z)h6;)IaSxoiwl*>w?Ec_J!~)G!?%bLmCyP4AW?cC z9q*230R(WPExgFyv0z$&n+uzA1-P^J7!CEO9$4%_bl16t%%@g(kOVF*qM;@5DC8@^ z&3GW$IolV!x-(t38Iy*#hA^*@-*_vf8Rb@Vk>!nKRuex=oRj%o;N(Hyh6bMp+B|Hs z0_4%QqQMK{wHDQlXI1g7@f|mJXGhLl+{Dd5plX(;Ql9_oa7=U#UdQ4~{@!o{DmV%P zspY1TmF)x*{M?c|uf_oQVXpMyProe%spK7L4&CqfPbmsh$CdPqE|fF=1;s?m8b%JL zZ7eiuO)ikqt{&r}w#nCcVEa5bC zv-5QNA#d`L&+_t!=Fj-I)A3yR#BWif#%kI*ts7C1hR^Nb$E*s(hPS{>4joFczX-?7{xs z9Mu#(d;`1`M7F|QK7iOa)eeu>J$IXqrj$q^ig&_Q+76Bgi%nCWbgtWJhPz%1hcj@=@cV5A!` z7xq)(S%G$`++F+(Xx@Mt@cle-F+e3K3dr313!@EEIwgQC>C^H%Z05jw<=udcL2+x} z2?wFHG@)`z<@_8Ruv?^9HPLucce%;y!1e`|J|$l6m<*0Yi$dlkvh`T+gg$Pb z@LVYVDSf$V*bg~M8{6s>wn*j=%rTN=4@g_9iY~6S_jx%r&=>TRGobaIY}0giyjTm` ztlsY1%f)KjP>;?f&`p1*-#zpLa0}UGwayw@H^QIAEf{AiZLO<{7?`Kyd6)}t^G=+v zufFhfiX+@0G;mspHl$B%>&*|FS9X9JUJFLoa%GA?Q7dX>EVK2xm{{zQ}E!TFSsmk=G++i)p9R#)laFp|cKRJU=N{%D&pWVm|?io8SZJ(L# zH8;Jc85;7Bkq$HEC!(bjTd=#U1s=TOkm@|4e~drGy`$J7aj{qlw4ONHf|cRnq|d|f zj9_t*3G`f-H@_(7*jhJw18vjnFV_23Sn@9gb$T%=>JuGVoYEj0%<@9h-^CoQ3BlY+ z&uk`FHnQ3?_Xo#WVsKU*kl##bYyRp3}`$8L&K^FQGO7g3W zkxY%+or}1&HLB6WlxB&tDtGb(DTO1Ncn{{&?Qf4I9lj}go;4ve2nq@G+bbtD=@=t_ z^{-OlUKI@&l_}i7H3xEP_+064YXZ&%6%3sbdK}zW%W;#=0zgMylS@f)4fX;!_#h}H zLf{eFcChzvDs5dkQq7`6tHLy%n6-4Fh(NA8re8##$p#f>#4|jj9yfCh8lm12PWyIn z<1;SFw$NoGp_R{d>F73eDiOeNMZ(yJz1&8IijxkCC*3vIoC8EAub6SrvL8W))5xDc zV|If~d&mce#`@S;+EB9G<}E9Z{2@B^y}~X(L$L5_y%cMTavuP0JahX4n&EOIDf|oa zZb03&LvY9H!^lS3cY;NX0jEWt>gqaAj$aNg%1I-c-_HurL{qT$jg8&D_D{t3S$|9u zX9g09Q3`K@m~AU7qVQELwk9~Kr4mr~)?S@NfqdGnfua;uj{fZZ8gfK8U1#Huo>TSY z8s<@31VlJTfRg=m98Q{By`~>vZsz@_JLex=sye|l!$-B?y70G!y~BR4Ns!hVj#Wpo z+=)*Me5WiDN<%?Eo@gEVa`*z8%Y02{mk(;X=8<+btmkjoPmc84EyJ;K+iJ6CuLNta zp8ZAQY4|-}F+Px=J>>L)w~Ra+b5x!>SA%Hs z!bw8s(5yH6&UR);PE}`|q;wyOXT(Xd+l71eX@dX+8R2Ioel>Yuj%|1Yb}R}o^CbmPEu}qRJk&<1TP|WbNIk z5Hwsp>qrE(S!G{3LpZk$bm&>R9~oI)|D%&UOZt4lS@h%uOL$Wgk~u@Ge5sus!iv2i z&i|KF>QdcHG#0%v@p(JsVX%X$zHc{l%P0P{1a&A_I)QO=@pKd~hCc zM{s=B#eP$oDn^WpTzYYmvfgRhwFbN89HBn`bM$@6?QpNqU#NGO;=!mzQmt@Sgn8)W zPOTW{A2SClnYiz9%5P;PY}2G^{{;P3um6`pN*^#`?KM2qqd8=TSH9ArMc1uF{7+K8{```I;> zGWht60YXRNhb;b>pWyuLt=ZNlBqscHh0|Ehw{99WGT_^=Qpu6e*-ZX5@Dx(5 zM6v6X>%OvFQg4Fwi%ll!iNPT0mhRmw72ePx^iYYyCJ1Sy#S_~(||!q97Vum4&}oqmj^zze=AH#5N4mLj|W z(4TWd9^VmLfN5fBqzS#Ue}1kCn(Ho#rYM#-432x?qQ7d z*Y2l^Q}yw+G-~T*IW!e848uubOr!f8Mz%~Lz~={PGPQ6fAGA-D>r#;yIz{3j z*R5tx;1I0k8NTU7H_5KG2@4pBgSp8M)`aFjr$lIkPS1(n&1}3piH};2F=7^gK2dp; z#QvC-zH-}|v8!CE@>eyeE%(DTM{m->H?kj!+w&JVk6SC+A1mrjagA2L+ zO~injoaN^a3V+}-H`{)Xo%<^N;H44QI6FC6KvC>i6VK0~;r(DVu(Zy@s_^iu{#K3H zt=>_{2C45|6e2?B>o2&+f&{r{m6&I8MChnPApjd1d zPcNxKYAu+PwgW#rT4wRG?@Muy(J?8%_APaSubKRdcMmO19%Vx4XgYA!Tdi+t6$M7; zT;K`qO-m{I#>Ri@3-L-hLLc;A0!D*i8aMC@Nc!_*TrQ4$N1``lgxH z#GZ&YylA_@oyx$h|JOa?UkEYxBzCOz{)d#B>{EX2>8fKT#M#M?l;Uo9NwC*9S6ep)YXS!W6z%yapxh`J0#GepFHlIHU%K$_x zKyNJS+=5xS#RwG+)-HebYqmTyaHfhLPDhPa?SBC71T4o4wy5Yb4KEPmv$;j}=N6pzkV}?RlG;gxz#JdNtkKcP&tUg#Pv+?4z6ScB}Bl8O( z2SU!<1$^2y#%Y&~JJ@;Z_OR4H)5za{IK>RB$qn3BpKP_w`Yo(Vi*P+1 z8i<;s=;P1UU4gACW^CM7HGNEHC%V(uN#aX5mUewM$M^YQ)%jacclami+z?z#;)kPRzVc0_tG`g!mIc4=vCw~=jy zAH1lZdrIcRHN&ETo7!CtABD`Y2(9r$J7-Z~+E6AMUEwr-?R2Q#n5B5e!O13lh*I`n z)KS!If6L6f7p5^jQcdsZU^Ouut0N7-9=*Bj~|C|^8r zqWX|%PYRl6nzXD=HH1R83Bho-K|e3RPaoBI<^Jeh-HM;QpATrWpi^cgAYh0%eOEp~ zfGlwHiTdXJedsF#uJp#E&z91-)D*8(z!ou?z)EET#5T{N3OR-YJmi(eG+YYYE}HYB-6iPC|ve^Ll(jh^X;~HnbykN&8gInA&u^?PQxZQLGu~` z>oNJuM785UNV z&|vM=nOT&c;$k=+nNR|HZ7^SG^ne$^7c3W7iSMN0s~-m{ zat~y0PZ^-XjjaK{RPP4nV7;8IsLL9{^wO@pf2T)^2Rzd1`}S`H`#jU3M2Jn5>FvMe zKa}NLPNQThj?Tk!jUl)H(v;HPdswb6ppvcMOSVTZo`GKR{))QXWl5tA?!nEL&VPQ& z42PlAb1`aEf1S8_&I43TjC(Ft1NDncjE$e~R|1!rIS<20svTJ7n0q{P1T8vR(dcrR zxWIKHUr4GL6xEL-toZs6iN7SBQOB8_b$N3h^7JXV=DmtG*}t9&0W9-CP0z!Suy&W5 z{_<{Xifpxw^1x`^f$;Dx4kX6MXoR*UmcV?4z!;vu1O0|5KmlpWQ z4?x^2bQz?P_vkFe2YJWWP-#)Gy(Y^Oq8851$@e$$b)on#F%2UUoqxl~hdv`3X5gQ7;!ox4l&dv@n>T`2*mcIBwdv|`6$^LA<=XnXr%oq01d78L;?WiUMtE=oKg zVHWzMQ1&5P7!VhYapzG6*MEl~Z*@2VI#e8+2h`I=Z%0=}V!IMV<=N@xNOFI)Dzw}* zLre(W41Lk}JNlFFx_Q|k=-Y@gnJzu*zLP+6GBlH?oDz|B5+xlo z{V|S7QT}m;K*iCzuk?$7yTu88x7qJ#KKssY{4ZUGUFC2vw-VoUZ5nC1a2ddPD;B`{ zS(ha@?&lu9#(+VS4#1{LYG2PWvl7p!xh9HJ+uYPALK42UR@%2G?Mzo(2fBxtd%{q~D8gxb z=-V7{^LWtHY6UXhi9fr**z&u*n*NF;g8o!a*~%LS=6<%mCDl<*-REH$I@iLyN6ew* ze6ZQ(HGP^58L^k}Rlp}ZP#YiBk|i!&SU(+8283GJc;d*Tap{^`fKv7NUs!ACyvKyY0$}&}2{BQ6_e&JCx=Yjq#9Mp| zPlz&L;09PU)SUX$3d*39DQl5Y^9esy#~WR3B)04}6Zj*a5y6G-f@J=fZEsbPkaz(K zK9*S(0h#wf|2(n^0Oie}8$AGlc1i!U?KJ-#Ejs@{9g|4dCOI>HZVVhc4%I4{6#l^b zfyBD{%hNp75I8|*pjTW;I?YoM?yZ%XwCViXIXDTS#QRu;cCvGYP3{ql)}+*hS{H{^29GYrBkP1vWz9GYFn@kqdIfYwW&;(X z-uMHp;#vXi2fz8F_ogj{BnAITeF=}!&^LKW>tE~hRp&<+s+>8r39L5{Vj0J-wIrA} zElZyPM+vXH{YqSXME63+AIcAZD)E~g*QKWdLVqLrfqBFfS+-OXlc1l26EtAa*Rp?Z zcsEyPON+9?NiK7IXOWBZSI=6*$R~G{SxZyxDy_vcid-CKI?X$}f;i2Ak~u_yD_&1y zH2;2hB^bTD8B@fwf!P?4?!OVas-yE1x_e<_!2S%jV{0UDQydJuHo*>T_fdUE>)z z+$wN_*op&k-{(84kv2VMB@7f1NBWy$52UZKWa`GTTU6dT&{HyI8{$Zb^Eq*_zNjXm zfyro%$;cExzUas_*@otet+jY~dT;zuF$}MF#9OL;2BT;9^L~XhQI2Ez8lk#9alFf%seM+8oc$_Td=kVzbb>3nKB3_AOIuz+rq6 z&MELL?2&&O)a7BZDcLU+R7f(TIgR=z<^a6{)L3CCr{ZWZI-dJ_W$HQOW%n&|#Vi5E zX=e5+QlI(Do>mT>)dUo>y0)^ssxQ7@0HC<&h6pp3tn$Y2tF|bohWVBj&a13 z_KnA@E!0Or6+{}?%m?CI8xIZ30v(-5c+hih6D-;Z?_mSD0%tNZhq7GSH?r1Mc zlzcB?eJyK;fch-LW90_p397p!xIvbN~7Ox^`_N9b@C8?H3?Whs=eM z&PpKh-#>o>O8EbD59)tB!R>s#Z2q3JqL$1=?(EIa_Fv3ey~Y5oyrrd^KqAo|d+yq< zu!3Hxo!dz>49u~qnpn{!ttxbZ&v+E40_SCj8md*{LX*!dAMk_LNueZpD3{lw9o<7OeWxNwNd@Tq(||y&@HooMFYWaoSRy1V zU;~nE)|t4I=_dP|4ddQ9(g^-Dpzq`7^qUiG_rlW&Sq9D9WE!YZnF@T6WJdRbCu;7) zKIa>%9JmxvuNm(Sgr>oKRGPqOt^sk6E4H9cjvg^Hl?M)2l~!rIWgV*Lf_p<_1tdB3 zJ!v`z4=g$8xd1(~CYj;o8!?TyHGFH5N)BQwJ~o9j{K1uYdTU_=4e}0 zp2SZ5UXgU%$rcP~NA(8n8m!r(2=S-Pw;`^f?bd*`5R%T7%(J$%_YWQ(-hH4_g%8@4 zpXQ!q>kiBTJmTX|n`OP!fF|0$^Dw7t+R1Nyq(*NB>(N_HacpjVZ75<%@4Xg%hyiYa zGsH6s{MoM&t2geu8$DP|*1^YE{;c=11g&Z6uj*Z;$EjL-e$?EjvqHT_hVN`v- zDY^j)T+X&=%oL0L{fu?Mq|kY|)s+f$VcrKiZi}swf*-dk@??Dk?~L~A48Oc0Ny#!( zyxy{n$Gh%|o-hp~756m?fi8R(IKmyj+p?dCuDsV<{{Vi&=!QAvmfR%o@3I|_eU%KK zfAWO5h#mlq9mVU$oBKrmWn+y)9eB)q?9RP08Ld`eXudbLVh>%d(hDu+SCFRwbRczX zX2%*HChFSXqjMisH1RR%toi5RD>5KsS@T5vRUmGCwbz??|&LI5g?^uFPI2axS1ysK_13clUHnfuEk+c=MK& zZUm^T28IF7X}W6Ykk{cl-_ATqYhlU4pkVw z&DoH78zRn0>Z^}Y_1yha6Pd*sRyx|YuJ?$U@2Rm$G9UJ*q%^j@UfZ{P|#H{VOyi4yBA=s z&8neiOGPe0tuy3vF?SQLK1u#ot-z&hQb%&vH#OU;t>Yc1Nc;>(V9wl*zxZ-iEJn|>>++$w`PB~( z;y^@?ZHA{P*KMc$Hk}Kpon~%D*E2Au8}`KPxV|^S9g=J7lex&mrAPFT6bO+W{c-K| z5om}c;^<{T@Q5gP5$KrawQV~`g=|ItVzm`$HA1%B^lCPVtyJ~@L%x8f`+`jJ*RG1# Ud%0rZD{?^En)(kbAJ|6xZ|9M0ZU6uP literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/test_sign_blind_and_nonce_display/00003.png b/tests/ragger/snapshots/stax/test_sign_blind_and_nonce_display/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..d4429dd58f6bbc38360e7c332e74e7b7ac7245ac GIT binary patch literal 7918 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 literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/test_sign_blind_and_nonce_display/00004.png b/tests/ragger/snapshots/stax/test_sign_blind_and_nonce_display/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..687a019ce5c606d06b4419763b759d2109832700 GIT binary patch literal 9597 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 G?f(O>q>K^( literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/test_sign_blind_and_nonce_display/00005.png b/tests/ragger/snapshots/stax/test_sign_blind_and_nonce_display/00005.png new file mode 100644 index 0000000000000000000000000000000000000000..a21279c8a0a89933b09833df3871d1ab2b36adf5 GIT binary patch literal 6108 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 kD|~rR)8Q5UPX zwKk%xw!2t%vFx75_jlfN&L8ibch1b2Q)b@34D-zW-1qfd*L_`|;=^+tjcZrfu24}? zT?0LR@`8%$+(#-Z>aUlmfxpP%Y$b`Qyz&N^*d5(Z*HFX+M6Kx4iqg*olgY z3rA^#Qc?Ym>!kjAG2+7C*Ql?)VWVNDlDs5H<;-A0HF>9+>br{7x#yAp`N03%aX3LE zFLY)c9vyj|9QZ@qDtHcUXqbC_Vhm7e?^x8it3{&24GxC2T&-!SuXZai8e&!%Ua`K@ z37``(e5vRWap*o-{kwr>7>j5l z!tKc~nYDtT_s~m%O)}$~$vr8itTCOBAtQ&Z#x;AE*E28BQeQp)Y;pKW$IXj(t4Ax% zCxTuy)w5{bzY4x2=o@JI^5D^zp~rmDl2)3+I&vqHlhvd9>7)567r1Dcv4N&HKeVu7 z?^W+8E0tN`^`d_A-KqY)_va=3C&8w_{#!~eQ9`Zq#%P%@dpxnqpLrFWw%+^p{J)>U zBHwxymE4c4U!Em)ASZKhLdd~%WWxjX*scgRW-^@i$8V+Tr-9sOxi4{9^gd^Dd`Us{ zg$x!V|5(HYY3i$#<-!L~xC~iCsj069v{p>39$X3d%fvAlcGY$L0Api9Ht(k58<^x+{8_s*3}H4XW*IF#2FI=@WPVXQ)@;V=3*6|r3>r6wEsWV z_g3AcpZUxIRBP9at04i1{K7$A0L$NbEmh@Zn4B z`=Lq!Be}(;nZ4wb;I?_KCJTu0TvqnwQjEX6WADTUQ=b=lO+(LDE@!^3)rDOiY+(KS z1MialN{~_>Tsk{}B52K;wOvg)&6LU>wy6AvJW1WTTio(` zCCHuJhQJi?zpOOM)sp8-@=gv9#Q&-QzJ$G9-I!$x_RR=q{DnbpQty`7$UD&=961hZa#X3*~1_~zss^U@LuD(zmf zB7=dgo^E+@Ad=mTWg}?EctT^RoEt14t0+Um13w+<&j>ef$S~RLg>a(nk(rVxSFzJ( zyQDzf=hZ&1)|ZvN2lJoV-+FNnD-B{NGbh1_+0VRid|6ome~S7yCPO8p=5M59hx?XD93*shb1d5^Ik8*AZ(etc-N*$-u5n0Jkd?{yA@t5i;$ zxA;u9Zw-A8@~7V9s`o~7RX)jK?}AS4&2?2PZAg`ij|Qp)^Bdb9VNWUNgd@BlU;fLeHS*yybGX z#ea50*$7WF1$LksajZWM+zM?Ux>vG8z`!!VMsJh*fpbPkeuh5{Xx5*WB}GO|-MUiD zIMdYfjAFpihwY+k3p@6I%%o zRrkj1>SmsmFnyBGgtmR-^TAq)%B1#)WK2s+$&|BSv)Me5@C^ve8vZC$iRckNr-os7 z*b*oEkCJyqgJYCyZ+cppbgRliOl}1kq^}0I3B?wSF$BJ|WmO4jN<|uv&+JnAubtbN zn{#gzvnm+N*H2${m6FfV0o$^;65_!VBqqPJr5q#l-7auks)*U2GE0Yj`!X7o%XK}b zwB49C;Y)3dimW|d_s&oE-#nlc9$+Oub97KU0yFdtY9d%QvxT%lWVG1+;g4M~EE))> zm-*LXj*Ln@yMYp?-1amZ&?ZRBW#K&$x^Jb9M9;YnxqZ_vgQ%cF+-xlTiIrlUd3i8S zx(rHv5D(ohpBh|g(0w&j-)dnwc^TYi6e>f#Wx9<`YNSa=nvWAhdh_9kin7fenBq6Z z_I<1k<^c#bs)_𝕀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 literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/test_sign_blind_simple/00003.png b/tests/ragger/snapshots/stax/test_sign_blind_simple/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..bc1ca9382cfe2a299a5bfb35c76039d7a8ff0893 GIT binary patch literal 9597 zcmeHtXH-*LyKY285RoDRBE^EphA1E)2%#xuBV7m(sSyF`BE5uS0i`M^y(mZvEd&TX zAQ7U{g%BZNM1%kVB0Gc#F>sc9pMQ6pbH}*jJKwnDj=TQMvDRGcopZkPEzkSR_0-D3 znD2=A5fBK(XY!}PO%Uk7GZ2X56*mX)MANdX1_U~9U}B(e8&SAEM|z1g>r8}4rR9Mn zITGW~xN(d9(+F`Sg3jo13p{xAHO|U?3Yk&#2t4fNIL(!CNbe{IZ@d_%2uPV547x4g0D5;C1$v_YuYaNBSZzs334fqq zuV;)Z%J$ZC7^q^$$?drf=*!mY-pdoKn-MXdWuPld#}f>19mwtf_IERg{<|4}@OMMJ z`FAsS_IKmZS29g(n{U1?KOH|mntxs0%{}Kssb@XhU!x8bGgqiqJJ7n^<%)bK9Y5{k zFu8L8?2i$jTG;#?<7quuka|4{HZ(2ccSnRG7auu1yAqH%xuoC(((&7ibhslD{}_BZ z=*18R>QQ;X@R=siP{7-Qk`G`I{nqy8WuW`y#XXSjW!_#Voy{kAfEKK?WhwU_45G1S zdvl|Fx8S z7Vd8~P2f9=QtBy{8==tu^QH+rhyhE)l<^~T{$R#6@;tk73M1SaT@HVYToP5KSQ~@OO6Nq18yX$=~^9G+m zDP<&7kk`Z9Z;5#7yTQ3UU84*9NoGO4U~X_%%^dNI6*1IW826ehRo`vi`CLJCE6IN) z(~S=FE{1jT**7#Jk;@2t0XNvJawcjar;;fd2n;dz$WH1dxa(nWp8?`{Ln0JvNYj!% zhf*5}r>80Q34Gg2CHRDgR$TVmX7~TU9 z=89`pV9KZ52gt09+P6J`evj8v2ZH>zpRlkc72ainmF`q;J_YUvXt4I^L_^^yg}yVy zrx}sl+ZU`aU<(axcN$tL(--(2xzSM%D;Kv=7^Qzirh(4VUG9z;nFq2mkE~Eu$c3`{994 zF=S%gjft(WPR5*&nBnv3SX;}NFU+ z%Ze{PLX~HegM@*Sta?iGlMJnweO~0F-LN%s$%BiZVwJN*^ehZ&SCJa0=t86Ous;ICPbPBcZvXRktJXgQB2G;h&pP$@4Gy5 zmyRfjJenIXE>dwfq*=YHvWv-n2|P#zTmeg?!j3H{XB?oN{_P_3`Etp3kKVq_!8`=nvlSfDIFBcx* zH`8;2OCg#h{76?yJ|F(=aekUL)=Sq}@#=yOxoJ_^4|k3@+vkcVJieO8cO4&;i;s^4 zI`WXvYJ7Lx?_g3q6~9wG{YI5bS&M_0eyVs8WM-5l@NWSR|8*?9^~dqANtJz!Aisy#jkG8!yV8Ms5=iD`EN4<5lOC71HQ6uMUXW2=g~8`im^ zGE0Yy(y@+jJkFc^^|@5l+?lvO>wypYr0U1;Y+$TU`PKl#RTVBdiv*UX-t9%Nr2DQtn$`6YNTptZmQhVgIsUK4w;ScDI=Z*jVawq@0kr(AU2o?v1@!dKo9P~Dq`d9I0lRMAo21XgMIG4jn^2U+Bpy3khd+ww;924X=si@)MlTX4%# z%BjMH#zxuKIl*%oDDnnggIcg3Aa zUtq`TqL%E#y?V&ZmbW#?nf0*sOfvF~iQOX#~_?5OwATAt5uNVQiqyEK?@3xY8Sm9gxJ24`*S;vu{0I4Y$H+rYU|` zCMT_?b!@y^dhy2+=)spN`Ir8rsAk)YdwGaRA8j8#z!cQb11B#>h7Wxafzl@W$M933 z&h(2DH-7#Mgc>3oJYf0w;oU&VnD5q-8rnk_cYnuySaxKw`atcehY))4sf_(&&s$jw z>TbRXjJxK(sJ#(CG5T|6(etJLsrP00xQ3c-j0F;wgDb%q-G z2~WAAfh;ZE1(yOKUw8!1r9_fXu}1!Mj`k^mChrim1ssZAS1Wd5U$%A&I~=r8-(W^($`tV~ z*OWIt{m`irv;NX!x*fxFJ|+snxTMiq;$r^z1WYiNK6`hoK3(_uyXjlf*+QK9 zu-X0 z+&FJ|*w$9vIzcGkeFq_(>~kip_{{Ot>C&AjuhE$T%D`sCByW}7{*wnO&BMLuy|BX& zsSH(foRVK5pP@Bmos%#WTpp;@893Wv{pJI$Xlxvg zHnje=w=gIn7oINJtvdlvHk;3+(T0k^EYxe9_!q=kUbLsAgcmYADo#2F~@Nq6gloIKb9iL8Zi7nV5g7PpNAzVD&G% zlE+8D_@K#0W!S3+6kp!^o}^ax+%d%2{^E4IC`}kj+1r*TpytKx0O*ITzPo)-yW6;< zG4aqxhFYjIpf}vSTdbjiyn!eAb}_|TSnZfQ6zcOGJ7=*U!=vlA{h@I8y&vrlF8_Ti zH*bA`<%}@1nmcWm8=e+GV>Bc}f{j{U5uDQS3)b0-*Dj_g9R+|4EE^D`SvhIes&3jg zlV`lUmCN=WjhQ8N`MSI|SK}G}P>LfKT~VN-~1 zMrEQeVH65osjl;}HDG(+;u+>QozqbZ9(No{{?aRwlX7CNAG@>ts->|PN!<<6tS&jc zv5j_tL=Q1$16oH2$(>JUYTH9R-{Suw1{Fd^8D$kAZ!2D+HsPUIYvcLcXt5IUCc|Kv zpzZ9no@X{Q75R^rs$XT*)X5#8kC2porznp)9=CP(8gl*X`~PlLD_bZx_Yg)GcUjuvCDTHBPr> z4y#{5yZ>cPpkE_A)H@ZYT{61Md;cjOw-MHfoBzRLY0<)mZukdQL@#vSg0g@RYF{y< z?#MR_o@(2#K!}y-)V-!*SlE-KgF_VITXB_=`8MSx0b6i0?N%@V31v(&WuBJ)NhVh8 zYYuMYu6*sNU)8sFrY)s+x%L@Tukz^&7+4E)ChTNyXGsBBFJYpLUFb-lU4a~6vx9N7 z8+L(sWq&2q29uSW=t8M`jT_}xw)yZzXf-Q=vE1Q-rfptE_=@H7uWO{A91C6_`9b*< z+c(rKB#$e*givodDovQ5aBstWY42x_@-=PjD{@Xv(VLaw zH>x(Qyu<&jc|%R<3r|Nzja{RN5K4^dDd$&hZFQM**E-LWel=W`rCaEcFgXSORnnBL zc^C&RBZnATm!9cQDmi)oa%VYLF<(u$%{6-WLLfepQe{E1DBB zpKG;K$h7c`V2 zJMWNY91#9xwoKMPa81hFO}h%7Mu_-i#mI>@f@1c+1#tgfit7ImW&S@u$xS@EmbAXTejC&q90wl!3$ah?2gOtF3UT}k zS;SObfSQai|Mlw^#CZwe0$<4hq(l6=Se6wo5EdCL=nx-q{Ql|+aw^Y>Q{?pLRBJ-} zQcJ%`!l5V4PPQ$r=;F_3Q6RX^ap?NR`ZE}AuwLq@F*KS=PP@1SKX5rly{?%i@=#m^ z6{hf1emwRx1=$OT?Bbh`CN$sbn|4%I#xYrd&t74Z*!iV`WUvH$p~QxA9K^tB?4om)reT|ur1wIq%H2Q~c#d_ih3Le{%GJjLBY=u>z zdf6qFgT7qe*M0pSAacG&e(B=Pu!g?u0Q-}|Bq)SdQNz~&R>x!3Vad&0Kt+DP-68u# zA{;=cmyUs{(s%jgb#--v_d1hhOr+@TE)7w`mZBCDwu(;Ki{L{)5UzD&Og2v-@yrRs zaquGSA&VUl`;EzBlg{@oG(L#Cv8${irMfpv>_me*=K_Am)9#UvDgGpkKQ)<>?UVkK zIF`hy{|#8u7aaPhG|!uS1LoXek_pgH4h;+@u1kwg)VGF$GK z4wDTI*^7}b6tTrM*8R@85Sz(RXME5W>Y)j(c0mJi5RFu+N6O=aB=F;SgYK%Zk6@o{ z4<9nYW!Zi!1xvFOtLmqy3HkWLccm4i&#!g;0<0O*K)+~d%tMFJx{@bRUw>Nn4U9SB z7*U8g*F;9$a8Tj)Od`K2S=pMBxM#DFyZqIrA$;j;bK^|h+ujd!c*!51o$&tM=6xOY z;hoN|mSNc*opTnJ3*rEf!_B{1<>do*h0v0w&cd!SS=bgRw1u>;$!whHRlX{fan3YU zLqanLKwkjTy<_qtl3zbmVGunvn-mI>VnDyMV)H9JU`vrwiLYIj?rC(XMzbOytBV9p zI>d6q7OH1aIq|avNOBe4`4##CRrV5ilYJlCxTU$A!NpS2Yk)}Dwat|2xT2~fJLLW? z(j`-7HMfc_9&Glz02>M_luMrJY;b(>Gj+2?Cdk_ZW_pEZ&`X@RfU0~!wZ+kEDc-(p zTzPC;dE#}qMH6DCT~E6E7CuN*G`C9;5hCA`qd0hz{Q=`of3_`|J&#sf(%Vwwxd`Z# zR^DwyY|(hQN!>S#+`XdCZo4Szpy$L&(uz=*QwpGfZ5kL)eYoS5;7&tgpozKYRRUJTCkFlGU-woxf;-8IXlTp&f#7 z7bRJGsP+~0S8_+@npX-k0_@%{q2FPbPcN?x+;op||L7@|rR;G^&XOX+cy`vjZ}e{S z%5LWJna1-!i4PJMArtCZy@hgP>Rf?eNRSFD-l-x`{B42FdCiNBikb$=r9athZK;e2 z+3A9-pX@Qp_&18uIU2=c+p0|ll`mVCA>g@^PZtK!Kn)l>*Y%96!nnP@CR>7jD1Zy! ztI5y~4~E@#{Tp5TWUO{f*)&Svt(!`AJt1Za1ppE+|F-lF>J5>chYvaB6x&VZ8}s0! z|G1slP~YGheU5p4ln&sN@;c-V^K+kROvRQyES8vS@1^Z~(A(qbF)+fvC#0M2LSL&? zkUISLFl3qs%*gsX3%g^a*0Q=HZiKlWxmIF;^S}Pu+oMheHH6Jb$bYamk*nhwT;xd~ zYksG4HRrQv)`A9HOxC2dZ*YxbXSsID&C`j@Y0cI%7@{6@4@OjP?KA^kN)&VOJp7|K zCIIm~V`Ww?XT_0{E7)NVC<-Bg|3G)bTe)89vBjwAsvNd#X)+0zy8&}|gAKGyik_v= zVf&DZ41m2VI<&gIuzlH-Gh2;`wS|^PRflytQ#cd}<3s2c1sG5j)m6Y3haP1D+VDAO zYWWgiv*#p(bxIiOapX71F!nV?7%`NkBSzoI%UO=ELL!^sj6JMs)tSB#qY^3Y=7Ghw ztK-aj8cvr)30$@c(i4J-4Au^nbSMw!Q!+J{JFvov6*h#6<*PlJ*Sa>T6i1Pik1B$T ztxEaQgX9*xI@CP_tN!pzo6Ex}B8Ix}Ijbj^%9z*^J7K9Kt<8ZTu~@F^$hg~NGbUCm zdCO}&oWEB$;43O{sPM3V3s4n1Q}~MPBUsgnX@j*5S?_}iS!|s%D9yp?*sh^Rh?7dQ z1cJrTJbo~@dQvBZbLu{q&b#4U=99W+ld7uDeNq;R@$kS*ptU;tSSk;kY&tyylIEyI&H(-Z;*L|Z`D>hT+ zH~gON*`&knX{RcpnGSme9(J$IUCV%x(lMN@)s+?Wh=yuc2*NJuS0 zu=mkvTMB&nt!Mu@hx%c-Tl&ow)`wB?-S(s*3m!S#fRFlF7SSYBt#&}tA;4m}t zPG?a-ZlDg~KRL$Hj{895Q<`s0$|}Hk*M-%<4pZc~+^T)VYX(zS47;y*T6thw9tLD* z566$Si>s-sJO_TCQP!aHifawS9|3v!_QAZCtxNx$U&fyhbpEibH_rohbAIGG<&|vy zJB43r(y?>n;B`2spU3!6D&)|6v5tgW*KZ3s#4D9#)TtS~yykY`EJ7ADbsTym;Se{* z$*=ArQka8Rz%pr&^`T{?@Dn%KO-npTMYhMT*oqHW0}S1F_b32L{)OP_e>uec=?l_y0z3|EahC$&vpz$H!!ADAZb*eCd#j9Z^ksR+POHc3`Teo=RGu zik-vw6GJ8Od0k5y>6VpQfNj$*m|X6D^0O8^cr59m2TWhUseu?MN^v!CV<3??`fpqy zhGxm+i8#WttEIE|>H*||lpjP(;2Zs;2OhW9(X5sgmDoJrCIHs#m1!}>GQ*{qGBH(~ zxe?Vp;^GHTp~ynG*huFO3_~&*4c4WMIu z(bqLcS)sdew7H>mQl+=miav%hR>!i;yb6{^-Y?tivV}c|M!%m!P%}}F%Qp-pzUZ2-U z*X;9L{8RC2?C+(F@LM$4L8-rq(Pnyz&yb+r1&$hfSGUE;dR+f68`o(420Xx3pTE%6 zYAw(1*s0SQl!LnltO_N^VW90D>-xyWCUCn3bR#4x*iiq0X&x$q6v~1#(R#hg$v#&z5h~ z$IRatotja^M3a+tuz{G@4^E5a(nRo$?J<G z?%Jmk_@|}s*VGA=jm-!@aP2}x;GaRiq6unlp?shCww8u&zp^ozJ7FdKSR5H0cg;_L zGiR_LU5iA9brvmX$QOv`?Eb7%44LJ!qq4AH9)F-3A52h7)~N*8cS?!R(~wKQMizIs zx_8%HNA-RJ)O1(UiX@V{8UaDFp%cadt)!ipZNz?5_v(@H_rK)~)MoeQ3nnlM#Y^pU zsU(nPrH%WfnQ7*m2E^u;PvowP^9SH`nSl8$WKo&*k(Y!)ki+)@IxBFhX>x0(R1OVR zNWNB?i8QO$Cu};pF1Mw@)}yeuuEh67rTHMMg12IH3g*g@O&`!;LTsdW3!uSygQ$!$ghL%xP|OXdMXmu!)(kwwaNE?O^Ip-9IPRDoI`oOTkvqHU?CPXuK2Qc zL+rIhD*$2>A~i}0CTrq*>|3v&GDRXw>VslZi$w!mvT3>x7h`m!Gw^c(UL#uSq_3-t zzbD10vkRAW$R2;?)GlA{IMECt}|@&%UYZDV{d6bGIJ0;`8dX#$}6efGBXm*GrUrk+i#gE zgTT=v@V#k2ElV^s_hk2;XB-|wXuDS!W1H`l$(TYS+=j*@LaC+_t(!IdcT$Bed3^mC zx!d(|llbfX{QI2x5^qt`{b2BbL>dnc?Jg3{u&RZZe!u{kUNyM%+=6khDR-@7*5M$O1*+zm0y{KX`o~Og<=Gr2+g_1u`+TFsQ%g H_TWDNq$iJk literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/test_sign_blind_simple/00004.png b/tests/ragger/snapshots/stax/test_sign_blind_simple/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..a21279c8a0a89933b09833df3871d1ab2b36adf5 GIT binary patch literal 6108 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 literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/test_legacy_chainid2/00002.png b/tests/ragger/snapshots/stax/test_legacy_chainid2/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..3f80170655296e42983454c4910c40b1f68c8f1c GIT binary patch literal 8538 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 S1b*3IGcmHb)^OD$`F{XjnEKlQ literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/test_legacy_chainid2/00004.png b/tests/ragger/snapshots/stax/test_legacy_chainid2/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..a21279c8a0a89933b09833df3871d1ab2b36adf5 GIT binary patch literal 6108 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 myqR(V_$?>^<%seR_VWh!j~f|{k#}B z4)Di%0(GQh%XXzDG$sKK-Q2JkKR-`QsiPFD-4d_!i{fwH;J|_aEL%ZYNu#B0FJ7G| z;=_VQWOA9;dQ4Y9)LpKCV=ri`X({49JagUwO3&5UdSK)wEJxPN%9wG}45n;lzK(aC zKtbL$y*-#9uSql`7 zENOEh^0jsFWbV&<+yj5)WEX_aERLO-`${sQhD#B5ZCio#Fr4qHlr^7X|9DL69eFa= z#kf#}$Pcl(QEE=tNl8Pt$o;~Fk*8r@j8mpwSGW8d!1&11FbzPh@^gWj=oh7f%f7G)4s^6#xJL07*qo IM6N<$g02I(Gynhq diff --git a/tests/zemu/snapshots/nanos_transfer_palm_network/00010.png b/tests/zemu/snapshots/nanos_transfer_palm_network/00010.png deleted file mode 100644 index 9c7e7049cb3e9bcfb1601ec510ee465d38229d4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 340 zcmV-a0jvIrP)b=%MgRq*37h4eRxPbkJCLY|1VIo49_}P}TKpH4$L<8?X{t;p zy+UQc_4@p%0?~E_&igM#?#L~IOHR(-<@sYotiy&C*Y&GII0yeh-p3zW9cv$Q0k>6Y_)5~SfP=m zSMUtz)%Ex|-o}7!H9hbQ(8{%C?kQVa?C`*Uj-J(h>P7(Y#?ZWvi?6}@n{fGLp>YTp myqR(V_$?>^<%seR_VWh!rzd`AnA zQc8#FU$enH_Wp?$ph?bo+qPXz$HV@7RH(j@t%`n%u4J_+;#WZNO_U#Z-N}cd+ELma zLN-61w{45newx7mJEwG^H9ms> zM7zkAYV3`(H_02ngj-($ov(j0eShy*!)FhVB;!1nUi}h}t>r7Ny3X^)lb=Tn(7I7O z+*RuNB|V%zIP=68TJno?={Af>M;HG0)bv^=v3u~}d+bt;8me>g%qzwK_nzFwp8dAw z;*`o|fZ{I?viE9{mTVYLXsBO~N#z{titqpc006MF#@$fK?ZF}p;>l3X5BGwCS>|e@ z#FK4>$64_*`oH3Asu^y^IDlM;e-(x%HU#&b2QSTI5qI}IeE+uQ$d($HH~rmjmfzpG^!&>@vHo;H|A#$&J>60(rv&w- z{Y$*re=CCT)rWkxbu*ft7z>`O-oI7u=d4xjo3yuXwAx+AyG_?&s?U?T(oz$vN~hG^ zITd^LMfdfDVy;c?KbE!zHs9!cv+j?u-i)SGA(L0?zp6X2s;;m5>ao50i9jz_e_Gr2 zjaxr8`Rh@Y?ag!bLo2gxTv~bJ)XKV#_qKdJdgcDJ@>9jrf~PT`jyPOzcvQ5zaQmZw zsyQ_iV&5BC&*W(?<|>M3c>Lz-s+s2Awug&us=u4vloD}$y3^rY@dWQRp`~22>^5u8 z-Wjt=zq~iKakEWo=0=}0$4N$E@I8h8IZK)78&qol`;+03*-H(EtDd diff --git a/tests/zemu/snapshots/nanox_transfer_112233445566_network/00006.png b/tests/zemu/snapshots/nanox_transfer_112233445566_network/00006.png deleted file mode 100644 index c9222461cdd3ea49c300c4820e3704d33b9a3838..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 365 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|=-yba4!+nDh2lG+&c}NXx^; zh3aqWJ=68=OcXt$gFHOaKm4C(5*Bp+iMjqtrV%Nn6esuj!jIMi}Btw`sohxwi1&U@}K{{10Q-!s%eVxF#kF6*2U FngGM>p?d%T diff --git a/tests/zemu/snapshots/nanox_transfer_112233445566_network/00007.png b/tests/zemu/snapshots/nanox_transfer_112233445566_network/00007.png deleted file mode 120000 index 7159a12..0000000 --- a/tests/zemu/snapshots/nanox_transfer_112233445566_network/00007.png +++ /dev/null @@ -1 +0,0 @@ -00005.png \ No newline at end of file diff --git a/tests/zemu/snapshots/nanox_transfer_112233445566_network/00008.png b/tests/zemu/snapshots/nanox_transfer_112233445566_network/00008.png deleted file mode 100644 index a58590b988714545e7960f7f400f360ffc5de41f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 382 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9hba4!+nDh2#bl+hG9*4k? zQuR0Wo;SViCn%lTo!KM1sAjk5Y(@*V#~rbuHu`7A_H&AxgwHf8y4cdKvg$JbB4n%ez%sZ31aBYd&Oo@(7)_WJ(Znl2o8^PD` zFE`_Y-IS+Kdq0Q2-7r_C=}F(5ev`U`H~)QH|9$1FHE$YjoVax+e0xei%S`SAGlOm! zp7{T3NA-mVOYb&rdU8MdyIHo@@7cE*uj@I+Zu{2i)KMSV-E~o-!E>;<1o=~ZX=2PI4l=u{{-g~{P+Mv$^F=*QnTT^-Y&Nca2?GECe5T2}p@Suz zSUBo+r2ZD|eVq=zT0KET%V2jlsio@f>s0g8zaIC_))u||A8gfmPI(T-Lpp7F(~g^Q zA7!rzSi3DF=$d)Qkmheim?gE{3D~oYdiFLvmt8e~0tW9!=g;GJhRqd0%m9KmxNmkj^|KjR6dvQh)HoQImpKg-Lei$RwWIq^l zuo6{hrIREx2e%@<0000000000000000002MZGHfcF;x9|;ckQg0000MjqtrV%Nn6esuj!jIMi}Btw`sohxwi1&U@}K{{10Q-!s%eVxF#kF6*2U FngGM>p?d%T diff --git a/tests/zemu/snapshots/nanox_transfer_palm_network/00007.png b/tests/zemu/snapshots/nanox_transfer_palm_network/00007.png deleted file mode 120000 index 7159a12..0000000 --- a/tests/zemu/snapshots/nanox_transfer_palm_network/00007.png +++ /dev/null @@ -1 +0,0 @@ -00005.png \ No newline at end of file diff --git a/tests/zemu/snapshots/nanox_transfer_palm_network/00008.png b/tests/zemu/snapshots/nanox_transfer_palm_network/00008.png deleted file mode 100644 index a58590b988714545e7960f7f400f360ffc5de41f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 382 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9hba4!+nDh2#bl+hG9*4k? zQuR0Wo;SViCn%lTo!KM1sAjk5Y(@*V#~rbuHu`7A_H&AxgwHf8y4cdKvg$JbB4n%ez%sZ31aBYd&Oo@(7)_WJ(Znl2o8^PD` zFE`_Y-IS+Kdq0Q2-7r_C=}F(5ev`U`H~)QH|9$1FHE$YjoVax+e0xei%S`SAGlOm! zp7{T3NA-mVOYb&rdU8MdyIHo@@7cE*uj@I+Zu{2i)KMSV-E~o { - - const tx = eth.signTransaction( - "44'/60'/1'/0/0", - 'f044850306dc4200825208945a321744667052affa8386ed49e00ef223cbffc3876f9c9e7bf6181880851a21a278be8080', - ); - - await waitForAppScreen(sim); - let clicks; - if (model.letter === 'S') clicks = 10; - else clicks = 6; - await sim.navigateAndCompareSnapshots('.', model.name + '_transfer_112233445566_network', [clicks, -1, 0]); - - await expect(tx).resolves.toEqual({ - "r": "509981d8dfb66757e25ff47c009b9b5bc5db0f169473e4735f5212b144f1c069", - "s": "5db989d81025de3c846e41a9ce01a3f9fd0982e2d827f1b88ffc95d73a48d04c", - "v": "344344f19f", - }); - })); -}); - -nano_models.forEach(function(model) { - test('[Nano ' + model.letter + '] Transfer on palm network on Ethereum', zemu(model, async (sim, eth) => { - - const tx = eth.signTransaction( - "44'/60'/1'/0/0", - 'f044850306dc4200825208945a321744667052affa8386ed49e00ef223cbffc3876f9c9e7bf61818808502a15c308d8080', - ); - - await waitForAppScreen(sim); - let clicks; - if (model.letter === 'S') clicks = 10; - else clicks = 6; - await sim.navigateAndCompareSnapshots('.', model.name + '_transfer_palm_network', [clicks, -1, 0]); - - await expect(tx).resolves.toEqual({ - "r": "946700c4972b3da24ddaa95e590ad25a8f905da62e2bd053285a4cc17f93f490", - "s": "3698e84564e58477a49f7a9cea572ef5d672a5538db08f3ee42df5eb75a1b907", - "v": "0542b8613d", - }); - })); -}); From e6b2cf30c554057b5d19b0d7388d2aaaec75828a Mon Sep 17 00:00:00 2001 From: Charles-Edouard de la Vergne Date: Wed, 3 Apr 2024 18:48:11 +0200 Subject: [PATCH 22/35] Port 'contract_data_warning.test' from 'zemu' to 'ragger' --- .../nanos/test_legacy_contract}/00000.png | Bin .../nanos/test_legacy_contract}/00001.png | Bin .../nanos/test_legacy_contract}/00002.png | Bin .../snapshots/nanosp/test_legacy_contract | 1 + .../nanox/test_legacy_contract}/00000.png | Bin .../nanox/test_legacy_contract}/00001.png | Bin tests/ragger/test_sign.py | 25 ++++++++++++++++++ tests/zemu/src/contract_data_warning.test.js | 23 ---------------- 8 files changed, 26 insertions(+), 23 deletions(-) rename tests/{zemu/snapshots/nanos_try_to_blind_sign_with_setting_disabled => ragger/snapshots/nanos/test_legacy_contract}/00000.png (100%) rename tests/{zemu/snapshots/nanos_try_to_blind_sign_with_setting_disabled => ragger/snapshots/nanos/test_legacy_contract}/00001.png (100%) rename tests/{zemu/snapshots/nanos_try_to_blind_sign_with_setting_disabled => ragger/snapshots/nanos/test_legacy_contract}/00002.png (100%) create mode 120000 tests/ragger/snapshots/nanosp/test_legacy_contract rename tests/{zemu/snapshots/nanox_try_to_blind_sign_with_setting_disabled => ragger/snapshots/nanox/test_legacy_contract}/00000.png (100%) rename tests/{zemu/snapshots/nanox_try_to_blind_sign_with_setting_disabled => ragger/snapshots/nanox/test_legacy_contract}/00001.png (100%) delete mode 100644 tests/zemu/src/contract_data_warning.test.js diff --git a/tests/zemu/snapshots/nanos_try_to_blind_sign_with_setting_disabled/00000.png b/tests/ragger/snapshots/nanos/test_legacy_contract/00000.png similarity index 100% rename from tests/zemu/snapshots/nanos_try_to_blind_sign_with_setting_disabled/00000.png rename to tests/ragger/snapshots/nanos/test_legacy_contract/00000.png diff --git a/tests/zemu/snapshots/nanos_try_to_blind_sign_with_setting_disabled/00001.png b/tests/ragger/snapshots/nanos/test_legacy_contract/00001.png similarity index 100% rename from tests/zemu/snapshots/nanos_try_to_blind_sign_with_setting_disabled/00001.png rename to tests/ragger/snapshots/nanos/test_legacy_contract/00001.png diff --git a/tests/zemu/snapshots/nanos_try_to_blind_sign_with_setting_disabled/00002.png b/tests/ragger/snapshots/nanos/test_legacy_contract/00002.png similarity index 100% rename from tests/zemu/snapshots/nanos_try_to_blind_sign_with_setting_disabled/00002.png rename to tests/ragger/snapshots/nanos/test_legacy_contract/00002.png diff --git a/tests/ragger/snapshots/nanosp/test_legacy_contract b/tests/ragger/snapshots/nanosp/test_legacy_contract new file mode 120000 index 0000000..ab2ec19 --- /dev/null +++ b/tests/ragger/snapshots/nanosp/test_legacy_contract @@ -0,0 +1 @@ +../nanox/test_legacy_contract \ No newline at end of file diff --git a/tests/zemu/snapshots/nanox_try_to_blind_sign_with_setting_disabled/00000.png b/tests/ragger/snapshots/nanox/test_legacy_contract/00000.png similarity index 100% rename from tests/zemu/snapshots/nanox_try_to_blind_sign_with_setting_disabled/00000.png rename to tests/ragger/snapshots/nanox/test_legacy_contract/00000.png diff --git a/tests/zemu/snapshots/nanox_try_to_blind_sign_with_setting_disabled/00001.png b/tests/ragger/snapshots/nanox/test_legacy_contract/00001.png similarity index 100% rename from tests/zemu/snapshots/nanox_try_to_blind_sign_with_setting_disabled/00001.png rename to tests/ragger/snapshots/nanox/test_legacy_contract/00001.png diff --git a/tests/ragger/test_sign.py b/tests/ragger/test_sign.py index bb081e8..efc6c44 100644 --- a/tests/ragger/test_sign.py +++ b/tests/ragger/test_sign.py @@ -201,6 +201,31 @@ def test_legacy_chainid2(firmware: Firmware, common(firmware, backend, navigator, tx_params, test_name, BIP32_PATH2) +# Legacy Zemu contract data warning: Try to blind sign with setting disabled +def test_legacy_contract(firmware: Firmware, + backend: BackendInterface, + navigator: Navigator, + test_name: str): + + buffer = bytes.fromhex("058000002c8000003c800000010000000000000000f849208506fc23ac008303dc3194f650c3d88d12db855b8bf7d11be6c55a4e07dcc980a4a1712d6800000000000000000000000000000000000000000000000000000000000acbc7018080") + app_client = EthAppClient(backend) + + try: + with app_client.send_raw(0xe0, 0x04, 0x00, 0x00, buffer): + if firmware.device.startswith("nano"): + # No screens recorded on Stax + moves = [ + NavInsID.RIGHT_CLICK, + NavInsID.BOTH_CLICK + ] + navigator.navigate_and_compare(ROOT_SNAPSHOT_PATH, + test_name, + moves) + + except ExceptionRAPDU as e: + assert e.status == StatusWord.INVALID_DATA + + def test_1559(firmware: Firmware, backend: BackendInterface, navigator: Navigator): tx_params: dict = { "nonce": NONCE, diff --git a/tests/zemu/src/contract_data_warning.test.js b/tests/zemu/src/contract_data_warning.test.js deleted file mode 100644 index c3b06e2..0000000 --- a/tests/zemu/src/contract_data_warning.test.js +++ /dev/null @@ -1,23 +0,0 @@ -import 'core-js/stable'; -import 'regenerator-runtime/runtime'; -import { TransportStatusError } from "@ledgerhq/errors"; -import { waitForAppScreen, zemu, nano_models } from './test.fixture'; -import Zemu from '@zondax/zemu'; - -nano_models.forEach(function(model) { - test('[Nano ' + model.letter + '] Try to blind sign with setting disabled', zemu(model, async (sim, eth) => { - // we can't use eth.signTransaction because it detects that contract data is disabled and fails early - let transport = await sim.getTransport(); - let buffer = Buffer.from("058000002c8000003c800000010000000000000000f849208506fc23ac008303dc3194f650c3d88d12db855b8bf7d11be6c55a4e07dcc980a4a1712d6800000000000000000000000000000000000000000000000000000000000acbc7018080", "hex"); - let tx = transport.send(0xe0, 0x04, 0x00, 0x00, buffer); - - await expect(tx).rejects.toEqual(new TransportStatusError(0x6a80)); - - await Zemu.sleep(1000); - await waitForAppScreen(sim); - let clicks; - if (model.letter === 'S') clicks = [1, 0]; - else clicks = [0]; - await sim.navigateAndCompareSnapshots('.', model.name + '_try_to_blind_sign_with_setting_disabled', clicks); - })); -}); From d4b6e5ca350941fc08b12746e2698ad3fb3274be Mon Sep 17 00:00:00 2001 From: Charles-Edouard de la Vergne Date: Thu, 4 Apr 2024 17:19:47 +0200 Subject: [PATCH 23/35] Port 'send_etc.test' from 'zemu' to 'ragger' - Port test config from 'zemu' - Copy snapshots from 'zemu' - Adapt conftest.py to support library mode - Add a new test step in the workflow --- .../workflows/build_and_functional_tests.yml | 21 +++++++- .../clone/.clone_application_goes_there | 0 tests/ragger/conftest.py | 47 +++++++++++++++++- .../nanos/test_clone_thundercore/00000.png | Bin 0 -> 374 bytes .../nanos/test_clone_thundercore/00001.png | Bin 0 -> 343 bytes .../nanos/test_clone_thundercore/00002.png | Bin 0 -> 497 bytes .../nanos/test_clone_thundercore/00003.png | Bin 0 -> 504 bytes .../nanos/test_clone_thundercore/00004.png | Bin 0 -> 373 bytes .../nanos/test_clone_thundercore/00005.png | Bin 0 -> 355 bytes .../nanos/test_clone_thundercore/00006.png | Bin 0 -> 414 bytes .../nanos/test_clone_thundercore/00007.png | Bin 0 -> 349 bytes .../nanos/test_clone_thundercore/00008.png | Bin 0 -> 414 bytes .../nanos/test_clone_thundercore/00009.png | Bin 0 -> 349 bytes .../nanos/test_clone_thundercore/00010.png | Bin 0 -> 349 bytes .../snapshots/nanos/test_legacy_etc/00000.png | Bin 0 -> 374 bytes .../snapshots/nanos/test_legacy_etc/00001.png | Bin 0 -> 336 bytes .../snapshots/nanos/test_legacy_etc/00002.png | Bin 0 -> 451 bytes .../snapshots/nanos/test_legacy_etc/00003.png | Bin 0 -> 320 bytes .../snapshots/nanos/test_legacy_etc/00004.png | Bin 0 -> 497 bytes .../snapshots/nanos/test_legacy_etc/00005.png | Bin 0 -> 504 bytes .../snapshots/nanos/test_legacy_etc/00006.png | Bin 0 -> 373 bytes .../snapshots/nanos/test_legacy_etc/00007.png | Bin 0 -> 380 bytes .../snapshots/nanos/test_legacy_etc/00008.png | Bin 0 -> 414 bytes .../snapshots/nanos/test_legacy_etc/00009.png | Bin 0 -> 340 bytes .../snapshots/nanos/test_legacy_etc/00010.png | 1 + .../snapshots/nanos/test_legacy_etc/00011.png | Bin 0 -> 349 bytes .../snapshots/nanosp/test_clone_thundercore | 1 + .../nanox/test_clone_thundercore/00000.png | Bin 0 -> 414 bytes .../nanox/test_clone_thundercore/00001.png | Bin 0 -> 410 bytes .../nanox/test_clone_thundercore/00002.png | Bin 0 -> 773 bytes .../nanox/test_clone_thundercore/00003.png | Bin 0 -> 410 bytes .../nanox/test_clone_thundercore/00004.png | Bin 0 -> 472 bytes .../nanox/test_clone_thundercore/00005.png | Bin 0 -> 381 bytes .../nanox/test_clone_thundercore/00006.png | Bin 0 -> 381 bytes .../nanox/test_clone_thundercore/00007.png | Bin 0 -> 382 bytes .../snapshots/nanox/test_legacy_etc/00000.png | Bin 0 -> 414 bytes .../snapshots/nanox/test_legacy_etc/00001.png | Bin 0 -> 572 bytes .../snapshots/nanox/test_legacy_etc/00002.png | Bin 0 -> 773 bytes .../snapshots/nanox/test_legacy_etc/00003.png | Bin 0 -> 441 bytes .../snapshots/nanox/test_legacy_etc/00004.png | Bin 0 -> 472 bytes .../snapshots/nanox/test_legacy_etc/00005.png | Bin 0 -> 365 bytes .../snapshots/nanox/test_legacy_etc/00006.png | 1 + .../snapshots/nanox/test_legacy_etc/00007.png | Bin 0 -> 382 bytes .../stax/test_clone_thundercore/00000.png | Bin 0 -> 8691 bytes .../stax/test_clone_thundercore/00001.png | Bin 0 -> 16762 bytes .../stax/test_clone_thundercore/00002.png | Bin 0 -> 9597 bytes .../stax/test_clone_thundercore/00003.png | Bin 0 -> 6108 bytes .../stax/test_clone_thundercore/00004.png | Bin 0 -> 6108 bytes tests/ragger/test_clone.py | 32 ++++++++++++ .../nanos_disable_blind_signing/00000.png | Bin 531 -> 0 bytes .../nanos_disable_blind_signing/00001.png | Bin 344 -> 0 bytes .../nanos_disable_blind_signing/00002.png | Bin 480 -> 0 bytes .../nanos_disable_blind_signing/00003.png | Bin 514 -> 0 bytes .../nanos_disable_blind_signing/00004.png | Bin 566 -> 0 bytes .../nanos_disable_blind_signing/00005.png | Bin 614 -> 0 bytes .../nanos_disable_blind_signing/00006.png | Bin 628 -> 0 bytes .../nanos_disable_blind_signing/00007.png | Bin 338 -> 0 bytes .../nanos_disable_blind_signing/00008.png | Bin 531 -> 0 bytes .../nanox_disable_blind_signing/00000.png | Bin 628 -> 0 bytes .../nanox_disable_blind_signing/00001.png | Bin 439 -> 0 bytes .../nanox_disable_blind_signing/00002.png | Bin 589 -> 0 bytes .../nanox_disable_blind_signing/00003.png | Bin 1016 -> 0 bytes .../nanox_disable_blind_signing/00004.png | Bin 1067 -> 0 bytes .../nanox_disable_blind_signing/00005.png | Bin 1102 -> 0 bytes .../nanox_disable_blind_signing/00006.png | Bin 1084 -> 0 bytes .../nanox_disable_blind_signing/00007.png | Bin 434 -> 0 bytes .../nanox_disable_blind_signing/00008.png | Bin 628 -> 0 bytes 67 files changed, 101 insertions(+), 2 deletions(-) create mode 100644 tests/ragger/.test_dependencies/clone/.clone_application_goes_there create mode 100644 tests/ragger/snapshots/nanos/test_clone_thundercore/00000.png create mode 100644 tests/ragger/snapshots/nanos/test_clone_thundercore/00001.png create mode 100644 tests/ragger/snapshots/nanos/test_clone_thundercore/00002.png create mode 100644 tests/ragger/snapshots/nanos/test_clone_thundercore/00003.png create mode 100644 tests/ragger/snapshots/nanos/test_clone_thundercore/00004.png create mode 100644 tests/ragger/snapshots/nanos/test_clone_thundercore/00005.png create mode 100644 tests/ragger/snapshots/nanos/test_clone_thundercore/00006.png create mode 100644 tests/ragger/snapshots/nanos/test_clone_thundercore/00007.png create mode 100644 tests/ragger/snapshots/nanos/test_clone_thundercore/00008.png create mode 100644 tests/ragger/snapshots/nanos/test_clone_thundercore/00009.png create mode 100644 tests/ragger/snapshots/nanos/test_clone_thundercore/00010.png create mode 100644 tests/ragger/snapshots/nanos/test_legacy_etc/00000.png create mode 100644 tests/ragger/snapshots/nanos/test_legacy_etc/00001.png create mode 100644 tests/ragger/snapshots/nanos/test_legacy_etc/00002.png create mode 100644 tests/ragger/snapshots/nanos/test_legacy_etc/00003.png create mode 100644 tests/ragger/snapshots/nanos/test_legacy_etc/00004.png create mode 100644 tests/ragger/snapshots/nanos/test_legacy_etc/00005.png create mode 100644 tests/ragger/snapshots/nanos/test_legacy_etc/00006.png create mode 100644 tests/ragger/snapshots/nanos/test_legacy_etc/00007.png create mode 100644 tests/ragger/snapshots/nanos/test_legacy_etc/00008.png create mode 100644 tests/ragger/snapshots/nanos/test_legacy_etc/00009.png create mode 120000 tests/ragger/snapshots/nanos/test_legacy_etc/00010.png create mode 100644 tests/ragger/snapshots/nanos/test_legacy_etc/00011.png create mode 120000 tests/ragger/snapshots/nanosp/test_clone_thundercore create mode 100644 tests/ragger/snapshots/nanox/test_clone_thundercore/00000.png create mode 100644 tests/ragger/snapshots/nanox/test_clone_thundercore/00001.png create mode 100644 tests/ragger/snapshots/nanox/test_clone_thundercore/00002.png create mode 100644 tests/ragger/snapshots/nanox/test_clone_thundercore/00003.png create mode 100644 tests/ragger/snapshots/nanox/test_clone_thundercore/00004.png create mode 100644 tests/ragger/snapshots/nanox/test_clone_thundercore/00005.png create mode 100644 tests/ragger/snapshots/nanox/test_clone_thundercore/00006.png create mode 100644 tests/ragger/snapshots/nanox/test_clone_thundercore/00007.png create mode 100644 tests/ragger/snapshots/nanox/test_legacy_etc/00000.png create mode 100644 tests/ragger/snapshots/nanox/test_legacy_etc/00001.png create mode 100644 tests/ragger/snapshots/nanox/test_legacy_etc/00002.png create mode 100644 tests/ragger/snapshots/nanox/test_legacy_etc/00003.png create mode 100644 tests/ragger/snapshots/nanox/test_legacy_etc/00004.png create mode 100644 tests/ragger/snapshots/nanox/test_legacy_etc/00005.png create mode 120000 tests/ragger/snapshots/nanox/test_legacy_etc/00006.png create mode 100644 tests/ragger/snapshots/nanox/test_legacy_etc/00007.png create mode 100644 tests/ragger/snapshots/stax/test_clone_thundercore/00000.png create mode 100644 tests/ragger/snapshots/stax/test_clone_thundercore/00001.png create mode 100644 tests/ragger/snapshots/stax/test_clone_thundercore/00002.png create mode 100644 tests/ragger/snapshots/stax/test_clone_thundercore/00003.png create mode 100644 tests/ragger/snapshots/stax/test_clone_thundercore/00004.png create mode 100644 tests/ragger/test_clone.py delete mode 100644 tests/zemu/snapshots/nanos_disable_blind_signing/00000.png delete mode 100644 tests/zemu/snapshots/nanos_disable_blind_signing/00001.png delete mode 100644 tests/zemu/snapshots/nanos_disable_blind_signing/00002.png delete mode 100644 tests/zemu/snapshots/nanos_disable_blind_signing/00003.png delete mode 100644 tests/zemu/snapshots/nanos_disable_blind_signing/00004.png delete mode 100644 tests/zemu/snapshots/nanos_disable_blind_signing/00005.png delete mode 100644 tests/zemu/snapshots/nanos_disable_blind_signing/00006.png delete mode 100644 tests/zemu/snapshots/nanos_disable_blind_signing/00007.png delete mode 100644 tests/zemu/snapshots/nanos_disable_blind_signing/00008.png delete mode 100644 tests/zemu/snapshots/nanox_disable_blind_signing/00000.png delete mode 100644 tests/zemu/snapshots/nanox_disable_blind_signing/00001.png delete mode 100644 tests/zemu/snapshots/nanox_disable_blind_signing/00002.png delete mode 100644 tests/zemu/snapshots/nanox_disable_blind_signing/00003.png delete mode 100644 tests/zemu/snapshots/nanox_disable_blind_signing/00004.png delete mode 100644 tests/zemu/snapshots/nanox_disable_blind_signing/00005.png delete mode 100644 tests/zemu/snapshots/nanox_disable_blind_signing/00006.png delete mode 100644 tests/zemu/snapshots/nanox_disable_blind_signing/00007.png delete mode 100644 tests/zemu/snapshots/nanox_disable_blind_signing/00008.png diff --git a/.github/workflows/build_and_functional_tests.yml b/.github/workflows/build_and_functional_tests.yml index e0d280a..974ee5f 100644 --- a/.github/workflows/build_and_functional_tests.yml +++ b/.github/workflows/build_and_functional_tests.yml @@ -23,7 +23,7 @@ jobs: uses: LedgerHQ/ledger-app-workflows/.github/workflows/reusable_build.yml@v1 with: upload_app_binaries_artifact: "ragger_elfs" - flags: "DEBUG=1 CAL_TEST_KEY=1 DOMAIN_NAME_TEST_KEY=1 SET_PLUGIN_TEST_KEY=1 NFT_TEST_KEY=1" + flags: "CAL_TEST_KEY=1 DOMAIN_NAME_TEST_KEY=1 SET_PLUGIN_TEST_KEY=1 NFT_TEST_KEY=1" ragger_tests: name: Run ragger tests using the reusable workflow @@ -31,3 +31,22 @@ jobs: uses: LedgerHQ/ledger-app-workflows/.github/workflows/reusable_ragger_tests.yml@v1 with: download_app_binaries_artifact: "ragger_elfs" + + build_clone_app: + name: Build Clone app using the reusable workflow + uses: LedgerHQ/ledger-app-workflows/.github/workflows/reusable_build.yml@v1 + with: + flags: "CHAIN=thundercore" + upload_app_binaries_artifact: "clone_elfs" + + ragger_clone_tests: + name: Run ragger Clone tests using the reusable workflow + needs: + - build_application + - build_clone_app + uses: LedgerHQ/ledger-app-workflows/.github/workflows/reusable_ragger_tests.yml@v1 + with: + download_app_binaries_artifact: "ragger_elfs" + additional_app_binaries_artifact: "clone_elfs" + additional_app_binaries_artifact_dir: ./tests/ragger/.test_dependencies/clone/build/ + test_options: "--with_lib_mode" diff --git a/tests/ragger/.test_dependencies/clone/.clone_application_goes_there b/tests/ragger/.test_dependencies/clone/.clone_application_goes_there new file mode 100644 index 0000000..e69de29 diff --git a/tests/ragger/conftest.py b/tests/ragger/conftest.py index 1bb7b84..2408765 100644 --- a/tests/ragger/conftest.py +++ b/tests/ragger/conftest.py @@ -1,4 +1,49 @@ -#from ragger.conftest import configuration +import sys +from pathlib import Path +import warnings +import glob + +from ragger.conftest import configuration + +####################### +# CONFIGURATION START # +####################### + +# You can configure optional parameters by overriding the value of +# ragger.configuration.OPTIONAL_CONFIGURATION +# Please refer to ragger/conftest/configuration.py for their descriptions and accepted values + +def pytest_addoption(parser): + parser.addoption("--with_lib_mode", action="store_true", help="Run the test with Library Mode") + + +parent: Path = Path(__file__).parent +testFiles = glob.glob("test_*.py", root_dir=f"{parent}") +collect_ignore = [] +if "--with_lib_mode" in sys.argv: + + # ============================================================================== + # /!\ Tests are started in Library mode: unselect (ignore) unrelated modules /!\ + # ============================================================================== + + warnings.warn("Main app is started in library mode") + + configuration.OPTIONAL.MAIN_APP_DIR = "tests/ragger/.test_dependencies/" + + collect_ignore += [f for f in testFiles if "test_clone" not in f] + +else: + + # =========================================================================== + # /!\ Standards tests without Library mode: unselect (ignore) clone tests /!\ + # =========================================================================== + + collect_ignore += [f for f in testFiles if "test_clone" in f] + + +##################### +# CONFIGURATION END # +##################### # Pull all features from the base ragger conftest using the overridden configuration pytest_plugins = ("ragger.conftest.base_conftest", ) diff --git a/tests/ragger/snapshots/nanos/test_clone_thundercore/00000.png b/tests/ragger/snapshots/nanos/test_clone_thundercore/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..8d84cc70fea8013b7e8b25c0982ce142fa103d5c GIT binary patch literal 374 zcmV-+0g3*JP)K?4J2QqX3 zXn7ePqhBDwvA-|J28LIrjF%tX0z{3v6!_gF&(SYH)S*7TN;1RxW-%}TLH9_+sttDO z-T32w&rL(!1@Vr`jm5G(8dd=Ruu#)JAN?l#rFLU`oQ(r?$33AC7s0}pw!fi~(9k^# zU9aci?pXN=I7A<-f!Mw2untnw9MivqZYw}c5&)gweYhbTnv#2#t$0X2wST7_1F;LR zw?>Da2SkSfG>qWq1mej-6nW@2l+Z=0om5jdB%3o3Qx19_LNUlTqF4R_1Iaj%@^2O= z@;n%h1N>H$2;%-~Dvx1!0LtkT-;cq73rgisOElFtPbcL{d3TfNQvm<~003s>1*i4o Uje8$F8UO$Q07*qoM6N<$g5rpv%m4rY literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanos/test_clone_thundercore/00001.png b/tests/ragger/snapshots/nanos/test_clone_thundercore/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..98c2086b43ae03d3482e0aa8bc97a97158603991 GIT binary patch literal 343 zcmV-d0jU0oP)4qvBJ+KYLdy}Tg`YuKtuykk|arz%w^wVUCQ{*)%Q&hezY82 z&EPjs%u{+jjhzZ0P0)S}S3}}^_5u*6-%HD~hW~O<`^({RC;mRsXvVVGsLbLCYVslY znkt=$Xy1P0ZdnHyV>&3hL{aZxS;y$<=8_aN(4HoTl+081n3zwW&HNKUe_=JxDNW2? z8^WDTJ^}oIA1$JfOvlv&{FiW9)Krg8zu_=_PV59YZPajY7y@7EeR|RcXfogG{Rbkr zI=z1}xd(TWS?EswJ9!bh>qi)=^^@lHEeavxQeL>DmtOn%izGf z)>9EwYA?~UOmr3+sTY$ywwM(sBv3DT0U}?*Q;W3z?;U6Ce+b=Q!e#}y9(KY({7{Fy z@6Uc7{ppkmDv=E+m4KoIx2maqHY1(h90*GEp+hWQ2E^`5(Qy4Hn^FsM+UD`Tc&G8r zM(s|{#Q~os8g5CBY(QW>Uhk|arzBuM~2k=$~ha82FQ00000NkvXXu0mjfvN__l literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanos/test_clone_thundercore/00003.png b/tests/ragger/snapshots/nanos/test_clone_thundercore/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..fd3155c0d349a1236eb862c8f4f5fc3c3a981ccf GIT binary patch literal 504 zcmVL$5ClOG1itKBTNjbPGWxz9A5}p1 zjy2;k()38LrSYNxr54ibzW~490~9g(J+&-r^Vi@&?f~_Sago#$5lH3 z?AsBK%Q|2(RR>vyNG4^^0G4%(on~%1f(FhfJ6qDplhzo*r_z|24k-T}fWNTvn|2nn zB!nmPK7hqny_|4r$y}Ctv&KwA-%GeOC|9o9@6Jmy-*37nHQXB&g|GBJW?BHI^R3>W z5XIHu{hNt3c#=4Up5)ufA`Mj&M<7qvxQv<(s(Pdtv0I9%c_i0XGJ~hWXU_KwGUbvJ z+VWabxs@`OvSN3kQB`gi5Td< zCNdD0-g7XjD`DKo>IK-ssAV(6ZeuYnD{V^0ojtC0sWO?x-863hBI?UV_L4%&S(1iJ zdo|QGQ!>Uiv|U2pq8^4-y>Fv^0jj67HeW#4-vz`W+n0t`>yiJ)(l8{0 uN`KP)C0a|2oddYDBwFnQ@V4&YmO|a5C2Z9{!HHY}>h}gC3s^}|C`SlNBi2Mc6JQiNjM{?U}L#4V(|#TjI_WV@yI*-`KAJ`lgkgC@g2^rf?_0 z*1b%|Xkn7YR%T=#+74maX^C@n{N_9-cPeO})NnO24*ybp@)UrS&wo|lA&S&ce=>-{ zO0Wy97*mh}= zNOnvyXJs=D!$1K9S#vt(^0Y>pCbThpv`*ZEQ_2_YE^bfQf`JYY_(zveR(FH*h{Z+N zz`FEi3i3kz31mfv`qM~A4fQ938fb!9NRwZYnHxH2SCVuqixy^a-zz(*QADtY_$3W` zFjd}oCp#?Hb~VmVpW)LN8N;J?!f(X(PIwN{w9x%hsEhSFpg0SUu$%HMRsgQPwjI4v z0kpMFVt5VU?+Ltu{HvM>RXk-{^hW^z00019$OSM8uYo;9?4$qy002ovPDHLkV1gZg Bkm~>d literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanos/test_clone_thundercore/00006.png b/tests/ragger/snapshots/nanos/test_clone_thundercore/00006.png new file mode 100644 index 0000000000000000000000000000000000000000..1c9156c31edf73cb072eaebf2db3fbe1ba5c612b GIT binary patch literal 414 zcmV;P0b%}$P)j~f|{k#}B z4)Di%0(GQh%XXzDG$sKK-Q2JkKR-`QsiPFD-4d_!i{fwH;J|_aEL%ZYNu#B0FJ7G| z;=_VQWOA9;dQ4Y9)LpKCV=ri`X({49JagUwO3&5UdSK)wEJxPN%9wG}45n;lzK(aC zKtbL$y*-#9uSql`7 zENOEh^0jsFWbV&<+yj5)WEX_aERLO-`${sQhD#B5ZCio#Fr4qHlr^7X|9DL69eFa= z#kf#}$Pcl(QEE=tNl8Pt$o;~Fk*8r@j8mpwSGW8d!1&11FbzPh@^gWj=oh7f%f7G)4s^6#xJL07*qo IM6N<$g02I(Gynhq literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanos/test_clone_thundercore/00007.png b/tests/ragger/snapshots/nanos/test_clone_thundercore/00007.png new file mode 100644 index 0000000000000000000000000000000000000000..ce795f34e8569e986af689fded3b59c9a8af2961 GIT binary patch literal 349 zcmV-j0iyniP)O41}p;-~WL<=z+0=1Om1tEU@3H#qtw22}5*_5JCvCo4!52c$FXo$VhXU?0M$^Bekqgf%Ka;M*^X|4 zEs9YCQ(xfJKmNC#+8dY%2&wT+>D^<3C%}_*k1^mvtO~`RE00000NkvXXu0mjf-kqOA literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanos/test_clone_thundercore/00008.png b/tests/ragger/snapshots/nanos/test_clone_thundercore/00008.png new file mode 100644 index 0000000000000000000000000000000000000000..1c9156c31edf73cb072eaebf2db3fbe1ba5c612b GIT binary patch literal 414 zcmV;P0b%}$P)j~f|{k#}B z4)Di%0(GQh%XXzDG$sKK-Q2JkKR-`QsiPFD-4d_!i{fwH;J|_aEL%ZYNu#B0FJ7G| z;=_VQWOA9;dQ4Y9)LpKCV=ri`X({49JagUwO3&5UdSK)wEJxPN%9wG}45n;lzK(aC zKtbL$y*-#9uSql`7 zENOEh^0jsFWbV&<+yj5)WEX_aERLO-`${sQhD#B5ZCio#Fr4qHlr^7X|9DL69eFa= z#kf#}$Pcl(QEE=tNl8Pt$o;~Fk*8r@j8mpwSGW8d!1&11FbzPh@^gWj=oh7f%f7G)4s^6#xJL07*qo IM6N<$g02I(Gynhq literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanos/test_clone_thundercore/00009.png b/tests/ragger/snapshots/nanos/test_clone_thundercore/00009.png new file mode 100644 index 0000000000000000000000000000000000000000..ce795f34e8569e986af689fded3b59c9a8af2961 GIT binary patch literal 349 zcmV-j0iyniP)O41}p;-~WL<=z+0=1Om1tEU@3H#qtw22}5*_5JCvCo4!52c$FXo$VhXU?0M$^Bekqgf%Ka;M*^X|4 zEs9YCQ(xfJKmNC#+8dY%2&wT+>D^<3C%}_*k1^mvtO~`RE00000NkvXXu0mjf-kqOA literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanos/test_clone_thundercore/00010.png b/tests/ragger/snapshots/nanos/test_clone_thundercore/00010.png new file mode 100644 index 0000000000000000000000000000000000000000..ce795f34e8569e986af689fded3b59c9a8af2961 GIT binary patch literal 349 zcmV-j0iyniP)O41}p;-~WL<=z+0=1Om1tEU@3H#qtw22}5*_5JCvCo4!52c$FXo$VhXU?0M$^Bekqgf%Ka;M*^X|4 zEs9YCQ(xfJKmNC#+8dY%2&wT+>D^<3C%}_*k1^mvtO~`RE00000NkvXXu0mjf-kqOA literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanos/test_legacy_etc/00000.png b/tests/ragger/snapshots/nanos/test_legacy_etc/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..8d84cc70fea8013b7e8b25c0982ce142fa103d5c GIT binary patch literal 374 zcmV-+0g3*JP)K?4J2QqX3 zXn7ePqhBDwvA-|J28LIrjF%tX0z{3v6!_gF&(SYH)S*7TN;1RxW-%}TLH9_+sttDO z-T32w&rL(!1@Vr`jm5G(8dd=Ruu#)JAN?l#rFLU`oQ(r?$33AC7s0}pw!fi~(9k^# zU9aci?pXN=I7A<-f!Mw2untnw9MivqZYw}c5&)gweYhbTnv#2#t$0X2wST7_1F;LR zw?>Da2SkSfG>qWq1mej-6nW@2l+Z=0om5jdB%3o3Qx19_LNUlTqF4R_1Iaj%@^2O= z@;n%h1N>H$2;%-~Dvx1!0LtkT-;cq73rgisOElFtPbcL{d3TfNQvm<~003s>1*i4o Uje8$F8UO$Q07*qoM6N<$g5rpv%m4rY literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanos/test_legacy_etc/00001.png b/tests/ragger/snapshots/nanos/test_legacy_etc/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..77e79afdd96e0c7f9589e5bcd2e27eedfa1a3597 GIT binary patch literal 336 zcmV-W0k8gvP)H|Wo;2rnnq4_$QEQ%cN+`|0N>fco6Z5?)m>Rc#ABI$iC=XHH@;ih z+lT)Mq9*C-bzLjSfw!pYlbHat90pe38iLeNe=vx_onRNblfB4Ecx|v-qV;?#qd3wO zHsw7=D^1?C@m9qBdqIQomR~ouqfa3IH};R80L0Qg6K)IgMz{cYJA~Oa)F#^HlHcl# iUqb-^000005fQCcFR{RR6IsdoDLerDbbIUQ1X*Y%zfRtSZt>P- zR98rsaf8&R8zXtO=g^AAERP(cMKnjd?1}>p;3>0IyR?D~ugNsmDGznoTD7$}r4_{2 zf|6d9<^~nci1SyUvvF7C)=ZWC?OI?k<@mfUoTErknu&c9Ry7xGjex`6HWfd0!Hl z^ryc0TbOl{{{39n4oD-~tfL>?B%l^>;?eg;7;22ZG31~ptU^5vzYmKAOR>P|&=8&c zRkP+Z0{vPLRCOvxpM+|&3x-8wkj(bsa5z?94OPY79XPJ?{W4%<000007{d!Z1i*;c Sb~u#)00004qvBJ+KYLdy}Tg`YuKtuykk|arz%w^wVUCQ{*)%Q&hezY82 z&EPjs%u{+jjhzZ0P0)S}S3}}^_5u*6-%HD~hW~O<`^({RC;mRsXvVVGsLbLCYVslY znkt=$Xy1P0ZdnHyV>&3hL{aZxS;y$<=8_aN(4HoTl+081n3zwW&HNKUe_=JxDNW2? z8^WDTJ^}oIA1$JfOvlv&{FiW9)Krg8zu_=_PV59YZPajY7y@7EeR|RcXfogG{Rbkr zI=z1}xd(TWS?EswJ9!bh>qi)=^^@lHEeavxQeL>DmtOn%izGf z)>9EwYA?~UOmr3+sTY$ywwM(sBv3DT0U}?*Q;W3z?;U6Ce+b=Q!e#}y9(KY({7{Fy z@6Uc7{ppkmDv=E+m4KoIx2maqHY1(h90*GEp+hWQ2E^`5(Qy4Hn^FsM+UD`Tc&G8r zM(s|{#Q~os8g5CBY(QW>Uhk|arzBuM~2k=$~ha82FQ00000NkvXXu0mjfvN__l literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanos/test_legacy_etc/00005.png b/tests/ragger/snapshots/nanos/test_legacy_etc/00005.png new file mode 100644 index 0000000000000000000000000000000000000000..fd3155c0d349a1236eb862c8f4f5fc3c3a981ccf GIT binary patch literal 504 zcmVL$5ClOG1itKBTNjbPGWxz9A5}p1 zjy2;k()38LrSYNxr54ibzW~490~9g(J+&-r^Vi@&?f~_Sago#$5lH3 z?AsBK%Q|2(RR>vyNG4^^0G4%(on~%1f(FhfJ6qDplhzo*r_z|24k-T}fWNTvn|2nn zB!nmPK7hqny_|4r$y}Ctv&KwA-%GeOC|9o9@6Jmy-*37nHQXB&g|GBJW?BHI^R3>W z5XIHu{hNt3c#=4Up5)ufA`Mj&M<7qvxQv<(s(Pdtv0I9%c_i0XGJ~hWXU_KwGUbvJ z+VWabxs@`OvSN3kQB`gi5Td< zCNdD0-g7XjD`DKo>IK-ssAV(6ZeuYnD{V^0ojtC0sWO?x-863hBI?UV_L4%&S(1iJ zdo|QGQ!>Uiv|U2pq8^4-y>Fv^0jj67HeW#4-vz`W+n0t`>yiJ)(l8{0 uN`KP)C0a|2oddYDBwFnQ@V4&YmO|a5C2Z9{!HHY}>h}gC3s^}|C`SlNBi2Mc6JQiNjM{?U}L#4V(|#TjI_WV@yI*-`KAJ`lgkgC@g2^rf?_0 z*1b%|Xkn7YR%T=#+74maX^C@n{N_9-cPeO})NnO24*ybp@)UrS&wo|lA&S&ce=>-{ zO0Wy9s|)R58+e$pVxJ006*KIW%v6UqnR5$yvHwc?LWv z@z#ETdF&&4h~WT)liG=UU-3nw2R}HnqywIX`~O~r=wmc2dy$T5`4!_woK04M<2boP zBD-R$J{uR)G7JQOk+q~_$xpAPYeQSZOY6oXIHi2RW-;Ai4+d5M!!NpovbqVLS}Y#I z2F|5_rXnxY7oaFI)E6ToHPjadG0+6NkS53DK zu}G`V%oZd}DyvdY)Jy;*Ghpp^03nNC%9oPM>;%k?48IMt#wddvOG8UOX{)0P00000 aU_(CL9>HRtjM$|B0000j~f|{k#}B z4)Di%0(GQh%XXzDG$sKK-Q2JkKR-`QsiPFD-4d_!i{fwH;J|_aEL%ZYNu#B0FJ7G| z;=_VQWOA9;dQ4Y9)LpKCV=ri`X({49JagUwO3&5UdSK)wEJxPN%9wG}45n;lzK(aC zKtbL$y*-#9uSql`7 zENOEh^0jsFWbV&<+yj5)WEX_aERLO-`${sQhD#B5ZCio#Fr4qHlr^7X|9DL69eFa= z#kf#}$Pcl(QEE=tNl8Pt$o;~Fk*8r@j8mpwSGW8d!1&11FbzPh@^gWj=oh7f%f7G)4s^6#xJL07*qo IM6N<$g02I(Gynhq literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanos/test_legacy_etc/00009.png b/tests/ragger/snapshots/nanos/test_legacy_etc/00009.png new file mode 100644 index 0000000000000000000000000000000000000000..9c7e7049cb3e9bcfb1601ec510ee465d38229d4d GIT binary patch literal 340 zcmV-a0jvIrP)b=%MgRq*37h4eRxPbkJCLY|1VIo49_}P}TKpH4$L<8?X{t;p zy+UQc_4@p%0?~E_&igM#?#L~IOHR(-<@sYotiy&C*Y&GII0yeh-p3zW9cv$Q0k>6Y_)5~SfP=m zSMUtz)%Ex|-o}7!H9hbQ(8{%C?kQVa?C`*Uj-J(h>P7(Y#?ZWvi?6}@n{fGLp>YTp myqR(V_$?>^<%seR_VWh!O41}p;-~WL<=z+0=1Om1tEU@3H#qtw22}5*_5JCvCo4!52c$FXo$VhXU?0M$^Bekqgf%Ka;M*^X|4 zEs9YCQ(xfJKmNC#+8dY%2&wT+>D^<3C%}_*k1^mvtO~`RE00000NkvXXu0mjf-kqOA literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanosp/test_clone_thundercore b/tests/ragger/snapshots/nanosp/test_clone_thundercore new file mode 120000 index 0000000..1de979b --- /dev/null +++ b/tests/ragger/snapshots/nanosp/test_clone_thundercore @@ -0,0 +1 @@ +../nanox/test_clone_thundercore \ No newline at end of file diff --git a/tests/ragger/snapshots/nanox/test_clone_thundercore/00000.png b/tests/ragger/snapshots/nanox/test_clone_thundercore/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..487ea10fcfeb2f3e6b79239459672251d49addd7 GIT binary patch literal 414 zcmV;P0b%}$P)vpO}&+|8}fC)JNq`>?#dJ%s{^>GN_4usXQirk{^@^BA?p!El9&T9q~zMsh2=YdLB`_ONiP zKy6XlUGFZ>Cn7mP3u*x2ba4!+nDh2#;G|{+o`#2S z{PGX|?LQLx?VzOE?1qSF&z%47Pj2h*nb5J41E}l6)~vN#ue}Il`Oz!a(BZ-Tca!A_ z?PTqd^;19i6h(E3ESdZ%czMbEMgJN% z7XP}w&IaiE2zzb)v~M+coto}D_Gy{z6Wek*;?B1#Tdo}5@jm*f;@!31Gwkb@1Z3Un z`DGreR#>|H<%#tZ9=X1Wbt_+2Z+g18KYbz8C0LFu5er9?Emgh|MNFpd-j!kZ6$-xq1gqkb@LJ@ zbpA7%8zB7m=!|BMl!YFX6^z-ZEA0UW5i&TC`j3IH=7nfRy^FXSM?&?tHk}ux;C`ecLu=gSX6Lat5e?s%%i9aT`@9hm9L(b**iA zo+UCs1q)pJV?DGHk7o2q=I;S=!=}15NH6Gf_nw&(aE!ct6uh44))-l*iOrhN9})SQ zc<=m~;O>*rb{ehd^*3Qc2qA=!&m=2Dy9dRnm{YZUTkl6L_I7!t7#$a?w@!-PZtZIw zi|!tcA_EaAlM_EKrHx$`Sz2AF>#*yI`$O)V9RhO3E}VpK)s6Ah0j~Xb;j9=JC8KLL z5Fne>rRd{NKg55z;n-Z5042MNH>zVKFJom1M)N`tDFW=oUe)>^4ZN#)TrWq1V?(0v z?rCLV2W4%#{zn71op;v9+*cDHLKtL5|1q3UGx`t1IhYBbLNngb+dqA%FY=&*w%zyr@4#00000NkvXXu0mjf D0V!mH literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanox/test_clone_thundercore/00003.png b/tests/ragger/snapshots/nanox/test_clone_thundercore/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..16fbf15df7986a0212aaa5f907b31d5e14568697 GIT binary patch literal 410 zcmV;L0cHM)P)3{wnReAu*xYDh=bfC;QGqT7Nn{iut+>@}qqW@#umD_Fy4BKr- zUx*U4M4f&6_Ge+E1#r*xl%-qm(yyTK{ts7iX0v0ek4UCBdws&a29eDQ-_E*8Ci`X@ zsV4izSOZT~Ay0e{dm_C6000000000000000006);Kakuj!RCy;!T6P)Nkl`l1;k+@4An6g^M6kcbtxu@7*hfO000000DuchDWw$aQJnB& zJ%BsK3VrpQ1hnYqoNY&PO0WdV>i`7cs)e_@w@x()p@w=B24`klR6(CLpxqtlZO|2 zIWjpO-F~*EHtLqUMt)Wc_@bMv^h#{CUFW0M(vJ1P=5N1GhWcHM(-Xu*&bc@D4_o$^ z7Y|pL)I@*DzttR=&yLH#^{|TW)8Sp0qphw%epiuSUG#WHS~ht|j~;`U4>BXmdi9@& zuz>%00000G5i7^TsbXePb2LB O0000U4`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_clone_thundercore/00006.png b/tests/ragger/snapshots/nanox/test_clone_thundercore/00006.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_clone_thundercore/00007.png b/tests/ragger/snapshots/nanox/test_clone_thundercore/00007.png new file mode 100644 index 0000000000000000000000000000000000000000..a58590b988714545e7960f7f400f360ffc5de41f GIT binary patch literal 382 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9hba4!+nDh2#bl+hG9*4k? zQuR0Wo;SViCn%lTo!KM1sAjk5Y(@*V#~rbuHu`7A_H&AxgwHf8y4cdKvg$JbB4n%ez%sZ31aBYd&Oo@(7)_WJ(Znl2o8^PD` zFE`_Y-IS+Kdq0Q2-7r_C=}F(5ev`U`H~)QH|9$1FHE$YjoVax+e0xei%S`SAGlOm! zp7{T3NA-mVOYb&rdU8MdyIHo@@7cE*uj@I+Zu{2i)KMSV-E~ovpO}&+|8}fC)JNq`>?#dJ%s{^>GN_4usXQirk{^@^BA?p!El9&T9q~zMsh2=YdLB`_ONiP zKy6XlUGFZ>Cn7mP3u*k}@P)5`qyl*kG=n_1*noziZNbl$`{vlt{~o_t%`n%u4pwY>{meXB+{Rk?&w8PEthtO zpw07jjL}y6VFv?T+|mWt_$K~jfL&aWUky%TyaK3e=FYtaUn}OGWSA{n5OvD8nuxn7 z-!K}@zjoyT00000*z#j7fC_q86vGeVJA~htgYBrD)_EMs-MM~?7qNx7d+K+I1$E)U z=QD6)fW!2jIn4#R<1_=f--NfFK>Ecd7ej0bg>Cm~XjGZ)cH}ys0+A0q0yynb^ z?V`3+V|SFjQQmkHt~~-gf8@=8&)TsxxiBJ+1miSGuX>5c*78iNuJhz>bJ(1Z7@(F> zJKR<1`6WIa|8S-`UvSAM=hAIx6OJzY@2%<8Ow#T_pZC~BJT-`O(ag)n0ISyTsvc&j z%|$7d$^gY*9%%1k5tnQj&C!tG9Fs~p){O7~00000;KE04C}sI!5e%Y^FXSM?&?tHk}ux;C`ecLu=gSX6Lat5e?s%%i9aT`@9hm9L(b**iA zo+UCs1q)pJV?DGHk7o2q=I;S=!=}15NH6Gf_nw&(aE!ct6uh44))-l*iOrhN9})SQ zc<=m~;O>*rb{ehd^*3Qc2qA=!&m=2Dy9dRnm{YZUTkl6L_I7!t7#$a?w@!-PZtZIw zi|!tcA_EaAlM_EKrHx$`Sz2AF>#*yI`$O)V9RhO3E}VpK)s6Ah0j~Xb;j9=JC8KLL z5Fne>rRd{NKg55z;n-Z5042MNH>zVKFJom1M)N`tDFW=oUe)>^4ZN#)TrWq1V?(0v z?rCLV2W4%#{zn71op;v9+*cDHLKtL5|1q3UGx`t1IhYBbLNngb+dqA%FY=&*w%zyr@4#00000NkvXXu0mjf D0V!mH literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanox/test_legacy_etc/00003.png b/tests/ragger/snapshots/nanox/test_legacy_etc/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..c59d95a75873b383251705204fcfba4a4b32f583 GIT binary patch literal 441 zcmV;q0Y?6bP)39HGrB-%APBYOnqBRx^B%~ zs&?l#m^=mbr}(ResV33L?5z1m7Mz0esV1p@sO^-gINQV3!nq$|004mhH1;&qK6nxH zh^CCwI)0GahRY~1j$_OBy!XPiwPPxm`NrPLI6^3I^;{UQ*Hdz>RSx6s-O)}Mz7xLD zSXR4hpX0gV4X|w9dk!;t9y@83DacuwR{wL*%_!T4!A9W$3jp*IHawJ7D$6 z{BFK#R4d5emZ7bfGVIfJkY3Mj__vx#Ci`wGsV4i*XoH!Ug=RWPGHoyv=>-4)00000 j00000000000ET%3QAI8I`82l300000NkvXXu0mjf#0ShY literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanox/test_legacy_etc/00004.png b/tests/ragger/snapshots/nanox/test_legacy_etc/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..570ce28d53e82ac396ba25c370110058f3a638f9 GIT binary patch literal 472 zcmV;}0Vn>6P)Nkl`l1;k+@4An6g^M6kcbtxu@7*hfO000000DuchDWw$aQJnB& zJ%BsK3VrpQ1hnYqoNY&PO0WdV>i`7cs)e_@w@x()p@w=B24`klR6(CLpxqtlZO|2 zIWjpO-F~*EHtLqUMt)Wc_@bMv^h#{CUFW0M(vJ1P=5N1GhWcHM(-Xu*&bc@D4_o$^ z7Y|pL)I@*DzttR=&yLH#^{|TW)8Sp0qphw%epiuSUG#WHS~ht|j~;`U4>BXmdi9@& zuz>%00000G5i7^TsbXePb2LB O0000MjqtrV%Nn6esuj!jIMi}Btw`sohxwi1&U@}K{{10Q-!s%eVxF#kF6*2U FngGM>p?d%T literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanox/test_legacy_etc/00006.png b/tests/ragger/snapshots/nanox/test_legacy_etc/00006.png new file mode 120000 index 0000000..917964c --- /dev/null +++ b/tests/ragger/snapshots/nanox/test_legacy_etc/00006.png @@ -0,0 +1 @@ +00004.png \ No newline at end of file diff --git a/tests/ragger/snapshots/nanox/test_legacy_etc/00007.png b/tests/ragger/snapshots/nanox/test_legacy_etc/00007.png new file mode 100644 index 0000000000000000000000000000000000000000..a58590b988714545e7960f7f400f360ffc5de41f GIT binary patch literal 382 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 kD|~rRgT~DvD5OWNab3G1ex-peQl+ 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 Pm<;rc?^NA(iv2$TyejzL literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/test_clone_thundercore/00002.png b/tests/ragger/snapshots/stax/test_clone_thundercore/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..bc1ca9382cfe2a299a5bfb35c76039d7a8ff0893 GIT binary patch literal 9597 zcmeHtXH-*LyKY285RoDRBE^EphA1E)2%#xuBV7m(sSyF`BE5uS0i`M^y(mZvEd&TX zAQ7U{g%BZNM1%kVB0Gc#F>sc9pMQ6pbH}*jJKwnDj=TQMvDRGcopZkPEzkSR_0-D3 znD2=A5fBK(XY!}PO%Uk7GZ2X56*mX)MANdX1_U~9U}B(e8&SAEM|z1g>r8}4rR9Mn zITGW~xN(d9(+F`Sg3jo13p{xAHO|U?3Yk&#2t4fNIL(!CNbe{IZ@d_%2uPV547x4g0D5;C1$v_YuYaNBSZzs334fqq zuV;)Z%J$ZC7^q^$$?drf=*!mY-pdoKn-MXdWuPld#}f>19mwtf_IERg{<|4}@OMMJ z`FAsS_IKmZS29g(n{U1?KOH|mntxs0%{}Kssb@XhU!x8bGgqiqJJ7n^<%)bK9Y5{k zFu8L8?2i$jTG;#?<7quuka|4{HZ(2ccSnRG7auu1yAqH%xuoC(((&7ibhslD{}_BZ z=*18R>QQ;X@R=siP{7-Qk`G`I{nqy8WuW`y#XXSjW!_#Voy{kAfEKK?WhwU_45G1S zdvl|Fx8S z7Vd8~P2f9=QtBy{8==tu^QH+rhyhE)l<^~T{$R#6@;tk73M1SaT@HVYToP5KSQ~@OO6Nq18yX$=~^9G+m zDP<&7kk`Z9Z;5#7yTQ3UU84*9NoGO4U~X_%%^dNI6*1IW826ehRo`vi`CLJCE6IN) z(~S=FE{1jT**7#Jk;@2t0XNvJawcjar;;fd2n;dz$WH1dxa(nWp8?`{Ln0JvNYj!% zhf*5}r>80Q34Gg2CHRDgR$TVmX7~TU9 z=89`pV9KZ52gt09+P6J`evj8v2ZH>zpRlkc72ainmF`q;J_YUvXt4I^L_^^yg}yVy zrx}sl+ZU`aU<(axcN$tL(--(2xzSM%D;Kv=7^Qzirh(4VUG9z;nFq2mkE~Eu$c3`{994 zF=S%gjft(WPR5*&nBnv3SX;}NFU+ z%Ze{PLX~HegM@*Sta?iGlMJnweO~0F-LN%s$%BiZVwJN*^ehZ&SCJa0=t86Ous;ICPbPBcZvXRktJXgQB2G;h&pP$@4Gy5 zmyRfjJenIXE>dwfq*=YHvWv-n2|P#zTmeg?!j3H{XB?oN{_P_3`Etp3kKVq_!8`=nvlSfDIFBcx* zH`8;2OCg#h{76?yJ|F(=aekUL)=Sq}@#=yOxoJ_^4|k3@+vkcVJieO8cO4&;i;s^4 zI`WXvYJ7Lx?_g3q6~9wG{YI5bS&M_0eyVs8WM-5l@NWSR|8*?9^~dqANtJz!Aisy#jkG8!yV8Ms5=iD`EN4<5lOC71HQ6uMUXW2=g~8`im^ zGE0Yy(y@+jJkFc^^|@5l+?lvO>wypYr0U1;Y+$TU`PKl#RTVBdiv*UX-t9%Nr2DQtn$`6YNTptZmQhVgIsUK4w;ScDI=Z*jVawq@0kr(AU2o?v1@!dKo9P~Dq`d9I0lRMAo21XgMIG4jn^2U+Bpy3khd+ww;924X=si@)MlTX4%# z%BjMH#zxuKIl*%oDDnnggIcg3Aa zUtq`TqL%E#y?V&ZmbW#?nf0*sOfvF~iQOX#~_?5OwATAt5uNVQiqyEK?@3xY8Sm9gxJ24`*S;vu{0I4Y$H+rYU|` zCMT_?b!@y^dhy2+=)spN`Ir8rsAk)YdwGaRA8j8#z!cQb11B#>h7Wxafzl@W$M933 z&h(2DH-7#Mgc>3oJYf0w;oU&VnD5q-8rnk_cYnuySaxKw`atcehY))4sf_(&&s$jw z>TbRXjJxK(sJ#(CG5T|6(etJLsrP00xQ3c-j0F;wgDb%q-G z2~WAAfh;ZE1(yOKUw8!1r9_fXu}1!Mj`k^mChrim1ssZAS1Wd5U$%A&I~=r8-(W^($`tV~ z*OWIt{m`irv;NX!x*fxFJ|+snxTMiq;$r^z1WYiNK6`hoK3(_uyXjlf*+QK9 zu-X0 z+&FJ|*w$9vIzcGkeFq_(>~kip_{{Ot>C&AjuhE$T%D`sCByW}7{*wnO&BMLuy|BX& zsSH(foRVK5pP@Bmos%#WTpp;@893Wv{pJI$Xlxvg zHnje=w=gIn7oINJtvdlvHk;3+(T0k^EYxe9_!q=kUbLsAgcmYADo#2F~@Nq6gloIKb9iL8Zi7nV5g7PpNAzVD&G% zlE+8D_@K#0W!S3+6kp!^o}^ax+%d%2{^E4IC`}kj+1r*TpytKx0O*ITzPo)-yW6;< zG4aqxhFYjIpf}vSTdbjiyn!eAb}_|TSnZfQ6zcOGJ7=*U!=vlA{h@I8y&vrlF8_Ti zH*bA`<%}@1nmcWm8=e+GV>Bc}f{j{U5uDQS3)b0-*Dj_g9R+|4EE^D`SvhIes&3jg zlV`lUmCN=WjhQ8N`MSI|SK}G}P>LfKT~VN-~1 zMrEQeVH65osjl;}HDG(+;u+>QozqbZ9(No{{?aRwlX7CNAG@>ts->|PN!<<6tS&jc zv5j_tL=Q1$16oH2$(>JUYTH9R-{Suw1{Fd^8D$kAZ!2D+HsPUIYvcLcXt5IUCc|Kv zpzZ9no@X{Q75R^rs$XT*)X5#8kC2porznp)9=CP(8gl*X`~PlLD_bZx_Yg)GcUjuvCDTHBPr> z4y#{5yZ>cPpkE_A)H@ZYT{61Md;cjOw-MHfoBzRLY0<)mZukdQL@#vSg0g@RYF{y< z?#MR_o@(2#K!}y-)V-!*SlE-KgF_VITXB_=`8MSx0b6i0?N%@V31v(&WuBJ)NhVh8 zYYuMYu6*sNU)8sFrY)s+x%L@Tukz^&7+4E)ChTNyXGsBBFJYpLUFb-lU4a~6vx9N7 z8+L(sWq&2q29uSW=t8M`jT_}xw)yZzXf-Q=vE1Q-rfptE_=@H7uWO{A91C6_`9b*< z+c(rKB#$e*givodDovQ5aBstWY42x_@-=PjD{@Xv(VLaw zH>x(Qyu<&jc|%R<3r|Nzja{RN5K4^dDd$&hZFQM**E-LWel=W`rCaEcFgXSORnnBL zc^C&RBZnATm!9cQDmi)oa%VYLF<(u$%{6-WLLfepQe{E1DBB zpKG;K$h7c`V2 zJMWNY91#9xwoKMPa81hFO}h%7Mu_-i#mI>@f@1c+1#tgfit7ImW&S@u$xS@EmbAXTejC&q90wl!3$ah?2gOtF3UT}k zS;SObfSQai|Mlw^#CZwe0$<4hq(l6=Se6wo5EdCL=nx-q{Ql|+aw^Y>Q{?pLRBJ-} zQcJ%`!l5V4PPQ$r=;F_3Q6RX^ap?NR`ZE}AuwLq@F*KS=PP@1SKX5rly{?%i@=#m^ z6{hf1emwRx1=$OT?Bbh`CN$sbn|4%I#xYrd&t74Z*!iV`WUvH$p~QxA9K^tB?4om)reT|ur1wIq%H2Q~c#d_ih3Le{%GJjLBY=u>z zdf6qFgT7qe*M0pSAacG&e(B=Pu!g?u0Q-}|Bq)SdQNz~&R>x!3Vad&0Kt+DP-68u# zA{;=cmyUs{(s%jgb#--v_d1hhOr+@TE)7w`mZBCDwu(;Ki{L{)5UzD&Og2v-@yrRs zaquGSA&VUl`;EzBlg{@oG(L#Cv8${irMfpv>_me*=K_Am)9#UvDgGpkKQ)<>?UVkK zIF`hy{|#8u7aaPhG|!uS1LoXek_pgH4h;+@u1kwg)VGF$GK z4wDTI*^7}b6tTrM*8R@85Sz(RXME5W>Y)j(c0mJi5RFu+N6O=aB=F;SgYK%Zk6@o{ z4<9nYW!Zi!1xvFOtLmqy3HkWLccm4i&#!g;0<0O*K)+~d%tMFJx{@bRUw>Nn4U9SB z7*U8g*F;9$a8Tj)Od`K2S=pMBxM#DFyZqIrA$;j;bK^|h+ujd!c*!51o$&tM=6xOY z;hoN|mSNc*opTnJ3*rEf!_B{1<>do*h0v0w&cd!SS=bgRw1u>;$!whHRlX{fan3YU zLqanLKwkjTy<_qtl3zbmVGunvn-mI>VnDyMV)H9JU`vrwiLYIj?rC(XMzbOytBV9p zI>d6q7OH1aIq|avNOBe4`4##CRrV5ilYJlCxTU$A!NpS2Yk)}Dwat|2xT2~fJLLW? z(j`-7HMfc_9&Glz02>M_luMrJY;b(>Gj+2?Cdk_ZW_pEZ&`X@RfU0~!wZ+kEDc-(p zTzPC;dE#}qMH6DCT~E6E7CuN*G`C9;5hCA`qd0hz{Q=`of3_`|J&#sf(%Vwwxd`Z# zR^DwyY|(hQN!>S#+`XdCZo4Szpy$L&(uz=*QwpGfZ5kL)eYoS5;7&tgpozKYRRUJTCkFlGU-woxf;-8IXlTp&f#7 z7bRJGsP+~0S8_+@npX-k0_@%{q2FPbPcN?x+;op||L7@|rR;G^&XOX+cy`vjZ}e{S z%5LWJna1-!i4PJMArtCZy@hgP>Rf?eNRSFD-l-x`{B42FdCiNBikb$=r9athZK;e2 z+3A9-pX@Qp_&18uIU2=c+p0|ll`mVCA>g@^PZtK!Kn)l>*Y%96!nnP@CR>7jD1Zy! ztI5y~4~E@#{Tp5TWUO{f*)&Svt(!`AJt1Za1ppE+|F-lF>J5>chYvaB6x&VZ8}s0! z|G1slP~YGheU5p4ln&sN@;c-V^K+kROvRQyES8vS@1^Z~(A(qbF)+fvC#0M2LSL&? zkUISLFl3qs%*gsX3%g^a*0Q=HZiKlWxmIF;^S}Pu+oMheHH6Jb$bYamk*nhwT;xd~ zYksG4HRrQv)`A9HOxC2dZ*YxbXSsID&C`j@Y0cI%7@{6@4@OjP?KA^kN)&VOJp7|K zCIIm~V`Ww?XT_0{E7)NVC<-Bg|3G)bTe)89vBjwAsvNd#X)+0zy8&}|gAKGyik_v= zVf&DZ41m2VI<&gIuzlH-Gh2;`wS|^PRflytQ#cd}<3s2c1sG5j)m6Y3haP1D+VDAO zYWWgiv*#p(bxIiOapX71F!nV?7%`NkBSzoI%UO=ELL!^sj6JMs)tSB#qY^3Y=7Ghw ztK-aj8cvr)30$@c(i4J-4Au^nbSMw!Q!+J{JFvov6*h#6<*PlJ*Sa>T6i1Pik1B$T ztxEaQgX9*xI@CP_tN!pzo6Ex}B8Ix}Ijbj^%9z*^J7K9Kt<8ZTu~@F^$hg~NGbUCm zdCO}&oWEB$;43O{sPM3V3s4n1Q}~MPBUsgnX@j*5S?_}iS!|s%D9yp?*sh^Rh?7dQ z1cJrTJbo~@dQvBZbLu{q&b#4U=99W+ld7uDeNq;R@$kS*ptU;tSSk;kY&tyylIEyI&H(-Z;*L|Z`D>hT+ zH~gON*`&knX{RcpnGSme9(J$IUCV%x(lMN@)s+?Wh=yuc2*NJuS0 zu=mkvTMB&nt!Mu@hx%c-Tl&ow)`wB?-S(s*3m!S#fRFlF7SSYBt#&}tA;4m}t zPG?a-ZlDg~KRL$Hj{895Q<`s0$|}Hk*M-%<4pZc~+^T)VYX(zS47;y*T6thw9tLD* z566$Si>s-sJO_TCQP!aHifawS9|3v!_QAZCtxNx$U&fyhbpEibH_rohbAIGG<&|vy zJB43r(y?>n;B`2spU3!6D&)|6v5tgW*KZ3s#4D9#)TtS~yykY`EJ7ADbsTym;Se{* z$*=ArQka8Rz%pr&^`T{?@Dn%KO-npTMYhMT*oqHW0}S1F_b32L{)OP_e>uec=?l_y0z3|EahC$&vpz$H!!ADAZb*eCd#j9Z^ksR+POHc3`Teo=RGu zik-vw6GJ8Od0k5y>6VpQfNj$*m|X6D^0O8^cr59m2TWhUseu?MN^v!CV<3??`fpqy zhGxm+i8#WttEIE|>H*||lpjP(;2Zs;2OhW9(X5sgmDoJrCIHs#m1!}>GQ*{qGBH(~ zxe?Vp;^GHTp~ynG*huFO3_~&*4c4WMIu z(bqLcS)sdew7H>mQl+=miav%hR>!i;yb6{^-Y?tivV}c|M!%m!P%}}F%Qp-pzUZ2-U z*X;9L{8RC2?C+(F@LM$4L8-rq(Pnyz&yb+r1&$hfSGUE;dR+f68`o(420Xx3pTE%6 zYAw(1*s0SQl!LnltO_N^VW90D>-xyWCUCn3bR#4x*iiq0X&x$q6v~1#(R#hg$v#&z5h~ z$IRatotja^M3a+tuz{G@4^E5a(nRo$?J<G z?%Jmk_@|}s*VGA=jm-!@aP2}x;GaRiq6unlp?shCww8u&zp^ozJ7FdKSR5H0cg;_L zGiR_LU5iA9brvmX$QOv`?Eb7%44LJ!qq4AH9)F-3A52h7)~N*8cS?!R(~wKQMizIs zx_8%HNA-RJ)O1(UiX@V{8UaDFp%cadt)!ipZNz?5_v(@H_rK)~)MoeQ3nnlM#Y^pU zsU(nPrH%WfnQ7*m2E^u;PvowP^9SH`nSl8$WKo&*k(Y!)ki+)@IxBFhX>x0(R1OVR zNWNB?i8QO$Cu};pF1Mw@)}yeuuEh67rTHMMg12IH3g*g@O&`!;LTsdW3!uSygQ$!$ghL%xP|OXdMXmu!)(kwwaNE?O^Ip-9IPRDoI`oOTkvqHU?CPXuK2Qc zL+rIhD*$2>A~i}0CTrq*>|3v&GDRXw>VslZi$w!mvT3>x7h`m!Gw^c(UL#uSq_3-t zzbD10vkRAW$R2;?)GlA{IMECt}|@&%UYZDV{d6bGIJ0;`8dX#$}6efGBXm*GrUrk+i#gE zgTT=v@V#k2ElV^s_hk2;XB-|wXuDS!W1H`l$(TYS+=j*@LaC+_t(!IdcT$Bed3^mC zx!d(|llbfX{QI2x5^qt`{b2BbL>dnc?Jg3{u&RZZe!u{kUNyM%+=6khDR-@7*5M$O1*+zm0y{KX`o~Og<=Gr2+g_1u`+TFsQ%g H_TWDNq$iJk literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/test_clone_thundercore/00003.png b/tests/ragger/snapshots/stax/test_clone_thundercore/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..a21279c8a0a89933b09833df3871d1ab2b36adf5 GIT binary patch literal 6108 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 Hr-UW|v$x^l diff --git a/tests/zemu/snapshots/nanos_disable_blind_signing/00001.png b/tests/zemu/snapshots/nanos_disable_blind_signing/00001.png deleted file mode 100644 index 29a6bd33223391861f4cf659bdbf31ac9392613e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 344 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfht{x;TbZFupzLm?!Nhz;bX+ zzp$UKM09k8SBL69{CgK>VNLb9_O3Le=&6RZQVNyV0v`w(%8H*4e zt$Dg}D;3gY)YwGVv$R~irtc^E+3l!(=gp8gehwDCXO=xuObh;aALy3lktL$eXT+S( zIP(}rg9!D=p7|>)0vfv}>$qiiU%ZvHWt+vsF5NZ>pyK?bfRD*5Z-IoQ%;uFG&(&l) zl_kZO5~jLf&7z0>DPhVB)+|VzWSKD|C2Z41shQ?Rt8Ya(9#$|myXTf={D$wP-{ z>oX)kZkhwKF_*Xb%oT$ZcOEorXIM;Fn3z>@+2F(lgA+WwKoaP<`I8m`bu7PaF}tm~ z&5>>9LdKb%Y?3Kzk}3PHG@O~9qBfIRGUZ&tW1W;`Z9v@%9=c~Nc*tXR&Lu6&VuB-3 z<-eUkKLP#zg%ah(kkI(#U9*Fz&w z#-|gd@=m;wnsC!p;d37Ei9MdoM)hkMXBtOVvKcuajx~z+d*+;SF72rfNQuk|8IwPO zhZQzwJEUDNaBgd3p1F{5X6)g{GZzY+p9zM|b3Cl@Sil0+c z<{dm`obkiN2yA6>IMC>oQfxEb1q1Zld4Ud5_?!r#mP$>i%zS9XE-4i!6ri_ViZ8{^ z7w9DW%MEArnNFqZ@t*jzpSRwqu_>D>l2K;8N9OiqpInYuB{ nwiV30btpB9d-_Ts=bL<{$o6E3u>LE+xMlEk^>bP0l+XkKgZ$Tj diff --git a/tests/zemu/snapshots/nanos_disable_blind_signing/00004.png b/tests/zemu/snapshots/nanos_disable_blind_signing/00004.png deleted file mode 100644 index e4ad84fa4c9cc7ae289ababb8e8767f7cefed828..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 566 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfji0ba4!+V0?Qpx@b-WgUi8S zmaYF;ueJ*1LMp`^|cd@yp6iTF8AdEyXT#C&JL9s-EzMaI&Yi${8`9< zN6*#4GU#yInMI5>pk!>KusI`QqNJ2rN}oY78*lTO*(Z2-K?)?L{&_tMHR@(d zVVk*-ab~QMGqX`M$fm_Ua~gS!PF(nqE441~*(#v1C*EX5oT%B^)_P`Q+B&~BwiL6J zd2Y{m(#|b-cp9kAA86{jHpge)raVUOf&qEiyeHNGotX)tLU>Q?F)7^5CMgvs6p$AU zbYuLoMAv7xfhuM<6z!hImh#WI5Jc6@-Vy80Y*atXGKd-I51=!pjhum=cRSp5rrlIw z^J>PK<(Ur8R!U8%%zTysa+E{bV#b-RAUB7fjG1<3-ps`(FEpG{lnP5}YZINhFmb}q z)oqSx85YemwKF9k-fTSs4U~%wXBH)9H~?i&osm2N)E0blkN4r_rgLtdd0T4K-NrxB za&zbA2@4;7+naXIrLE1et&MjkKhT(aOA^BmD{S@#3Z*GJAC~0M*nWD}j@VmA-dZ2$lO diff --git a/tests/zemu/snapshots/nanos_disable_blind_signing/00005.png b/tests/zemu/snapshots/nanos_disable_blind_signing/00005.png deleted file mode 100644 index 28e70e8bc22cd0c7f2b114c25504765b2c7b1592..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 614 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfi$Qx;TbZFupw)7<4;|!R4T_ z-r0ZRHu9h6L_ZYU7!dI>FmED*5n)}qyMo{vg+#N%Fy zE_W6T__ip~`B}ZG!e?En36)~p)ykVMHJowIba*DHV>7GGGc9XI$}%<(YHQ=2+1s{T zDl8>KLW)fiNPkOuIMGDG*ksKKAKnvty3br_IOE1_6nt34*p$ZzC~?weE)oe$5J zdY2^uRB0;|kOy?#6{!i4Ku2ksDipsyw3aQ!&)==BEt=_6H(Ltd;zZYHFM(>D9DXik zoOzkiMB(%4R&gVfIrCzejr8^Qs5u{g=?Rpd)ljsWai;#&hBICuXSSWWvO#h4#SMza zKsim`6MuqvfevI#$w7hziMua0 zoM|_$i8wq@M`kWaMf*t}-uFtI)y3WAX3HHRKeIp zVe>_xz=r9qwm{yA3kAC_IUJrB_U&51ua-0S!oH~)o6eb+ovP1!BIm?~1|B05AEOf& z3{EOIA6D6X@q;pN^O@- z;Qq|-uJ1;k!0eR%}dZ70wNT%?)Kbtt! z_9W1g!5|O%7&#wqJLAkNZ3OkJ!AT$9^BanoW?CBsGaHqsENgRYV@rXeHlRH#6ZN&L zCog22IUN`@+f8et4{JwSTFnFs$1yTmjiJ`OI>ueLkT0ny~PpB+Hb`Va!JVJ(-Qx=RGXR&|ZH3s=2{y4(DSd?*@viR&t z=bHLrdfFFAi;Jt?Wu3cYhlZrWfszN0{HK%%^;~0_p%)V~g@?l`u&B^b;YVM0vgXbm zFZ6z#V)g14u82gJ|cd1FeBo|&q-UYv%dYk`*P z?Cx&vm3N~G+n3Ypn6rVy$@M^GenN9j0ri|^1uDK7^MFa*zNnCkF>Q-z h&$XtDQ3g@f?CJZmIXzZhYz2lDgQu&X%Q~loCICmNg$4is diff --git a/tests/zemu/snapshots/nanos_disable_blind_signing/00008.png b/tests/zemu/snapshots/nanos_disable_blind_signing/00008.png deleted file mode 100644 index 0bef4f3a7b4f6195c1d9fc70dcd11adb9d29bb52..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 531 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfiWoba4!+V0?S@KDXZ;sPq04($@Y}pt$UkYuJ7O_vMLEmi+4c;Fw95@=>aR7Nxv47?$ZTZtr_3n+(gx*XR_$~kWo+{1#Gb1SXD%3= zxUfOl`S7wtWoKq1=fesh37M0pZl2)bJ;7rH6tf4a>N|5`!^DM*Gq+1kkOZQXHnx<$ zq^B8D6K1Bx%Ze~iP)OohG zIi_9y5O&xt%^k>mro%ENocDx`AG1-use^*|uq^-bNuC4jCC(rnYh>Cs(MmB?|tDnm{ Hr-UW|v$x^l diff --git a/tests/zemu/snapshots/nanox_disable_blind_signing/00000.png b/tests/zemu/snapshots/nanox_disable_blind_signing/00000.png deleted file mode 100644 index 7a77cb1234495ce3418c44945e3e8e8d33244c1a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 628 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!3HERU8}EWU|_QLba4!+V0?R!u}j*Lf#IOs z!}(wS&%cuYu~MNa@uRBZo2NP6q3rf| z9slvd4Qmq%3hNW1Pch!PInDIOG&7P=MWE>YrAe!P@QKb(_|T*kqP1`Ksrf5*1pQ<& zzvppu>Zy>zrJsCSPlXt+42fA8GDpi#OH?cP=n|vQn3a1bN$0zzt_qkLvW#o${FMPa zgJy!I&xfq=5!IS}DrDg&t-L)mxTa3_YCUy7XyYVl{S}Y?FDY8}qr^OJ!l{srf6Mc1 z0vCST9=ZZ(^oluJYExHtc|Hvf0WyM*8jGq=)t(CEUkzDNQ_4`Trxg+x*m}xXRO|Ns z)d4%DVnSBr%=cXSDC>iB>#1)yL$sCw0|ms~sTH#9V5`^BZ!@(**0IH}2+5hh)amK! zgTh+t*F5?k^sz5wp5z|Isc)e33ice0m%!6##_ z;MP+slYssL`f%l=B|!^|Rs~d=o7*|Go_fFP$EqY(^Luknt#o=?zQSg4(W;1}51dzo z{PEQi71etG;@IrfGeYWImx8qK3tIUjguNjBcQQ~WYlH6FW8d6?VfFqE!@Hc*QaRqz dB%BHMI{n>HXexE$Pd~hO?>f&+dA2I;#7k z^T(ukiM2Wj#<#TGvX5r0l~^mfcx%#@u%2sO7o!ZLw9y5Rg@jmX&kCwsQ4(sh$>L9*Lc27jyq$!sK>FFW9_wh$*Gc&7q{{i&M$5Az zbWeciA&X$4kT}u!kVyvTrm;+Q|ES8T^*9G8DWX4Vfzi1olUl-$&Q@8`vw4Ne!@Epo zi`T}>cs-33`qz3&mvedafoBF<+f{5r@;raU0~vFcWq7$hUAE{`K;X`mHX$K?K|S)S z4=1*$%vl2SkBkPVxv1#WXrX&6RUWE)?pV2EP734f!z=GhGT5gr<#EV2wPt(6*^JdN g^|<_x94LR;;y*9t>|4WQ28<8}Pgg&ebxsLQ0KCJ$1ONa4 diff --git a/tests/zemu/snapshots/nanox_disable_blind_signing/00002.png b/tests/zemu/snapshots/nanox_disable_blind_signing/00002.png deleted file mode 100644 index 9230349f624ee2b22324ee92197a9a3e77a46560..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 589 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!3HERU8}EWU|F;fAwCbM*Jf=s!PQD3enxbKvCZ%6U+p zv5wq1@oj;84^pJFH}-D3;TD~#56+dcBT*i`5FbCwt(e*)@GTkE4@M)jJ<` zO`XMT@smMRe5!qDVc^ctm=LocN5xlE1g+c=x@Yx{6(KPpdZJoD2YVm&57C+z@~^C$ zKlo!vVPN3SkQH}ALPGMiwEiz~dO9D-nHLgbckq$(iaT0*qT9Q=_B*;BRgb6PX_ za#vT^ssB+xuP*x(@^O1~O+(lG6@T`xSg|KK@TUlS!6!zb(Rrf&THCv3pIZ88SrE`E zK%0RfF}H0$_8*hMK6~NwQPdA(bcq2UP5S5IlKMxb6!o-^RKEYO ztaIS+ThF;Y<)astI>&}S-u~3;sxF*);%R!=s*riozajhI{YeuK3a?FW$eYN!W_E)sX(GF!PPtR3JN?s^*kiO&Owpc@n0&!oO1kDO;OC-buJ*8Oz$nr^XTwp0 z(s4CTAjlhoPHP8>*!qHcoPvr;0n#FEyPBNx&2gWTc2+lDU=7M9gg4q#&}zPWZWTwn zLd^Ub4L2p2(Y6DM0iR-P>|Te7M8Y#?B?qa2;e1+ z9qg8KwKeFFcm$wfcgVpF*2ndBD)VIf01R!J^NYyI(3sBZ%o=Zg<|oYq&NEGW;? zL1%?acnO%-b3C}A`#4{~f*CO5zMv;PCmH}kaF2$A8PsEd8K}675gx?rVLV7-I>7H? zMWgGcQR&oh;HU@df0L{5*6XrEJ0!$e2+P&}qiZ-`*5P_!*LzZ8cs=ki`HS*#9nwxl z|MFuqT5WMxl7Q!2Ihab)1*;aKDq5Cy30cqyCjDJxh7;Hsz8~PHa%>nF5U?2(7nu%6 z+K46bqglgM=+YgrPF9q4XlqCYIyk97x6`PMh|@;p)z$bSC|8F-u3Rq6euh@X%@X5I z&=O*nBNbQ$YC9}vG5{%ZU9X~taq4iSTMs-TTeDQ4ngHyIB?BV6?3UXSLaHOvN`b0iY`m(72i{aU z)VrjLHH>*ZHmevCc?p4hPh0!|cGRfk?cO}|x+MoLiMNEPHQ)iXOI_C3`2YIDb<1uz d`0a^(S=^af=F@HZV;8(=iZ)f1^cwg6`4t4;)vN#j diff --git a/tests/zemu/snapshots/nanox_disable_blind_signing/00004.png b/tests/zemu/snapshots/nanox_disable_blind_signing/00004.png deleted file mode 100644 index ed04d7055b319986173134768027aad73f3a9950..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1067 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 JM%9Nu`45St^R)l~ diff --git a/tests/zemu/snapshots/nanox_disable_blind_signing/00007.png b/tests/zemu/snapshots/nanox_disable_blind_signing/00007.png deleted file mode 100644 index bc8064a47bfdbfe81d8af86d445e9f677ac2d4df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 434 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!3HERU8}EWU|_8Dba4!+V0?S!H(?JLAq-u90KkQL%Gf_h+!UY}@SD zt)WjD#8+S2u!?u}E&N1)kL%K#0bZ#G13aE8bDnK8(vtVgC~xQ%()zE&soNI%mO^ma1)_pM0y07}Me&rt3hn;QhUWb0|mKO=!>3wMKsaT z9slvd4Qmq%3hNW1Pch!PInDIOG&7P=MWE>YrAe!P@QKb(_|T*kqP1`Ksrf5*1pQ<& zzvppu>Zy>zrJsCSPlXt+42fA8GDpi#OH?cP=n|vQn3a1bN$0zzt_qkLvW#o${FMPa zgJy!I&xfq=5!IS}DrDg&t-L)mxTa3_YCUy7XyYVl{S}Y?FDY8}qr^OJ!l{srf6Mc1 z0vCST9=ZZ(^oluJYExHtc|Hvf0WyM*8jGq=)t(CEUkzDNQ_4`Trxg+x*m}xXRO|Ns z)d4%DVnSBr%=cXSDC>iB>#1)yL$sCw0|ms~sTH#9V5`^BZ!@(**0IH}2+5hh)amK! zgTh+t*F5?k^sz5wp5z|Isc)e33ice0m%!6##_ z;MP+slYssL`f%l=B|!^|Rs~d=o7*|Go_fFP$EqY(^Luknt#o=?zQSg4(W;1}51dzo z{PEQi71etG;@IrfGeYWImx8qK3tIUjguNjBcQQ~WYlH6FW8d6?VfFqE!@Hc*QaRqz dB% Date: Mon, 8 Apr 2024 14:15:04 +0200 Subject: [PATCH 24/35] Remove 'zemu' tests --- .github/workflows/ci-workflow.yml | 73 - tests/zemu/.babelrc | 18 - tests/zemu/.flowconfig | 13 - tests/zemu/.gitignore | 4 - tests/zemu/Makefile | 8 - tests/zemu/build_local_test_elfs.sh | 45 - tests/zemu/globalsetup.js | 17 - tests/zemu/jest.config.js | 39 - tests/zemu/jest.js | 22 - tests/zemu/package.json | 41 - tests/zemu/setupTests.js | 19 - .../nanos_transfer_ethereum_clone/00000.png | Bin 374 -> 0 bytes .../nanos_transfer_ethereum_clone/00001.png | Bin 336 -> 0 bytes .../nanos_transfer_ethereum_clone/00002.png | Bin 451 -> 0 bytes .../nanos_transfer_ethereum_clone/00003.png | Bin 320 -> 0 bytes .../nanos_transfer_ethereum_clone/00004.png | Bin 497 -> 0 bytes .../nanos_transfer_ethereum_clone/00005.png | Bin 504 -> 0 bytes .../nanos_transfer_ethereum_clone/00006.png | Bin 373 -> 0 bytes .../nanos_transfer_ethereum_clone/00007.png | Bin 380 -> 0 bytes .../nanos_transfer_ethereum_clone/00008.png | Bin 414 -> 0 bytes .../nanos_transfer_ethereum_clone/00009.png | Bin 340 -> 0 bytes .../nanos_transfer_ethereum_clone/00010.png | 1 - .../nanos_transfer_ethereum_clone/00011.png | Bin 349 -> 0 bytes .../nanox_transfer_ethereum_clone/00000.png | Bin 414 -> 0 bytes .../nanox_transfer_ethereum_clone/00001.png | Bin 572 -> 0 bytes .../nanox_transfer_ethereum_clone/00002.png | Bin 773 -> 0 bytes .../nanox_transfer_ethereum_clone/00003.png | Bin 441 -> 0 bytes .../nanox_transfer_ethereum_clone/00004.png | Bin 472 -> 0 bytes .../nanox_transfer_ethereum_clone/00005.png | Bin 365 -> 0 bytes .../nanox_transfer_ethereum_clone/00006.png | 1 - .../nanox_transfer_ethereum_clone/00007.png | Bin 382 -> 0 bytes tests/zemu/src/send_etc.test.js | 38 - tests/zemu/src/test.fixture.js | 121 - tests/zemu/yarn.lock | 7475 ----------------- 34 files changed, 7935 deletions(-) delete mode 100644 .github/workflows/ci-workflow.yml delete mode 100644 tests/zemu/.babelrc delete mode 100644 tests/zemu/.flowconfig delete mode 100644 tests/zemu/.gitignore delete mode 100644 tests/zemu/Makefile delete mode 100755 tests/zemu/build_local_test_elfs.sh delete mode 100644 tests/zemu/globalsetup.js delete mode 100644 tests/zemu/jest.config.js delete mode 100644 tests/zemu/jest.js delete mode 100644 tests/zemu/package.json delete mode 100644 tests/zemu/setupTests.js delete mode 100644 tests/zemu/snapshots/nanos_transfer_ethereum_clone/00000.png delete mode 100644 tests/zemu/snapshots/nanos_transfer_ethereum_clone/00001.png delete mode 100644 tests/zemu/snapshots/nanos_transfer_ethereum_clone/00002.png delete mode 100644 tests/zemu/snapshots/nanos_transfer_ethereum_clone/00003.png delete mode 100644 tests/zemu/snapshots/nanos_transfer_ethereum_clone/00004.png delete mode 100644 tests/zemu/snapshots/nanos_transfer_ethereum_clone/00005.png delete mode 100644 tests/zemu/snapshots/nanos_transfer_ethereum_clone/00006.png delete mode 100644 tests/zemu/snapshots/nanos_transfer_ethereum_clone/00007.png delete mode 100644 tests/zemu/snapshots/nanos_transfer_ethereum_clone/00008.png delete mode 100644 tests/zemu/snapshots/nanos_transfer_ethereum_clone/00009.png delete mode 120000 tests/zemu/snapshots/nanos_transfer_ethereum_clone/00010.png delete mode 100644 tests/zemu/snapshots/nanos_transfer_ethereum_clone/00011.png delete mode 100644 tests/zemu/snapshots/nanox_transfer_ethereum_clone/00000.png delete mode 100644 tests/zemu/snapshots/nanox_transfer_ethereum_clone/00001.png delete mode 100644 tests/zemu/snapshots/nanox_transfer_ethereum_clone/00002.png delete mode 100644 tests/zemu/snapshots/nanox_transfer_ethereum_clone/00003.png delete mode 100644 tests/zemu/snapshots/nanox_transfer_ethereum_clone/00004.png delete mode 100644 tests/zemu/snapshots/nanox_transfer_ethereum_clone/00005.png delete mode 120000 tests/zemu/snapshots/nanox_transfer_ethereum_clone/00006.png delete mode 100644 tests/zemu/snapshots/nanox_transfer_ethereum_clone/00007.png delete mode 100644 tests/zemu/src/send_etc.test.js delete mode 100644 tests/zemu/src/test.fixture.js delete mode 100644 tests/zemu/yarn.lock diff --git a/.github/workflows/ci-workflow.yml b/.github/workflows/ci-workflow.yml deleted file mode 100644 index 626c36c..0000000 --- a/.github/workflows/ci-workflow.yml +++ /dev/null @@ -1,73 +0,0 @@ ---- -name: Tests (Zemu) - -on: - workflow_dispatch: - push: - branches: - - master - - develop - pull_request: - -jobs: - - # ===================================================== - # ZEMU TESTS - # ===================================================== - - building_for_e2e_zemu_tests: - name: Building binaries for E2E Zemu tests - runs-on: ubuntu-latest - container: - image: ghcr.io/ledgerhq/ledger-app-builder/ledger-app-builder-lite:latest - - steps: - - uses: actions/checkout@v4 - - - name: Build testing binaries - run: | - git config --global --add safe.directory "$GITHUB_WORKSPACE" - cd tests/zemu/ && ./build_local_test_elfs.sh - - - name: Upload app binaries - uses: actions/upload-artifact@v4 - with: - name: e2e_zemu_elfs - path: ./tests/zemu/elfs/ - - jobs-e2e-zemu-tests: - name: E2E Zemu tests - needs: [building_for_e2e_zemu_tests] - runs-on: ubuntu-latest - - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Install additional tools - run: sudo apt-get update -y && sudo apt-get install -y libusb-1.0.0 libudev-dev - - - name: Install NodeJS - uses: actions/setup-node@v3 - with: - node-version: "16" - - - name: Install yarn - run: npm install -g yarn - - - name: Build/Install build js deps - run: cd tests/zemu/ && yarn install - - - name: Create tmp folder for artifacts - run: mkdir tests/zemu/elfs - - - name: Download app binaries - uses: actions/download-artifact@v4 - with: - path: tmp/ - - - name: Gather elfs - run: cp tmp/e2e_zemu_elfs/*.elf tests/zemu/elfs/ - - - name: Run zemu tests - run: cd tests/zemu/ && yarn test diff --git a/tests/zemu/.babelrc b/tests/zemu/.babelrc deleted file mode 100644 index 0f36fe6..0000000 --- a/tests/zemu/.babelrc +++ /dev/null @@ -1,18 +0,0 @@ -{ - "plugins": [ - [ - "@babel/plugin-proposal-class-properties" - ] - ], - "presets": [ - [ - "@babel/preset-env", - { - "targets": { - "node": "current" - } - } - ], - "@babel/preset-flow" - ], -} diff --git a/tests/zemu/.flowconfig b/tests/zemu/.flowconfig deleted file mode 100644 index 43c5d12..0000000 --- a/tests/zemu/.flowconfig +++ /dev/null @@ -1,13 +0,0 @@ -[ignore] -/lib - -[include] - -[libs] -flow-typed - -[lints] - -[options] - -[strict] diff --git a/tests/zemu/.gitignore b/tests/zemu/.gitignore deleted file mode 100644 index fedc352..0000000 --- a/tests/zemu/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/node_modules -/snapshots-tmp -/elfs -/lib diff --git a/tests/zemu/Makefile b/tests/zemu/Makefile deleted file mode 100644 index 0ff9a84..0000000 --- a/tests/zemu/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -MAKEFLAGS += --no-print-directory - -all: - ./build_local_test_elfs.sh - yarn install - yarn test - -.PHONY: all diff --git a/tests/zemu/build_local_test_elfs.sh b/tests/zemu/build_local_test_elfs.sh deleted file mode 100755 index c6b0d0e..0000000 --- a/tests/zemu/build_local_test_elfs.sh +++ /dev/null @@ -1,45 +0,0 @@ -#!/usr/bin/env bash - -set -e - -TESTS_PATH=$(dirname "$(realpath "$0")") - -# FILL THESE WITH YOUR OWN SDKs PATHS -# NANOS_SDK= -# NANOX_SDK= - -# list of apps required by tests that we want to build here -APPS=("ethereum" "ethereum_classic") - -# list of SDKS -NANO_SDKS=("$NANOS_SDK" "$NANOX_SDK") -# list of target elf file name suffix -FILE_SUFFIXES=("nanos" "nanox") - -# move to the tests directory -cd "$TESTS_PATH" || exit 1 - -# Do it only now since before the cd command, we might not have been inside the repository -GIT_REPO_ROOT=$(git rev-parse --show-toplevel) - -# create elfs directory if it doesn't exist -mkdir -p elfs - -# move to repo's root to build apps -cd "$GIT_REPO_ROOT" || exit 1 - -for ((sdk_idx=0; sdk_idx < "${#NANO_SDKS[@]}"; sdk_idx++)) -do - nano_sdk="${NANO_SDKS[$sdk_idx]}" - elf_suffix="${FILE_SUFFIXES[$sdk_idx]}" - echo "* Building elfs for $(basename "$nano_sdk")..." - for appname in "${APPS[@]}" - do - echo "** Building app $appname..." - make clean BOLOS_SDK="$nano_sdk" - make -j DEBUG=1 NFT_TESTING_KEY=1 BOLOS_SDK="$nano_sdk" CHAIN="$appname" - cp bin/app.elf "$TESTS_PATH/elfs/${appname}_${elf_suffix}.elf" - done -done - -echo "done" diff --git a/tests/zemu/globalsetup.js b/tests/zemu/globalsetup.js deleted file mode 100644 index ce41bc6..0000000 --- a/tests/zemu/globalsetup.js +++ /dev/null @@ -1,17 +0,0 @@ -import Zemu from "@zondax/zemu"; -import fsExtra from "fs-extra"; - -const catchExit = async () => { - process.on("SIGINT", () => { - Zemu.stopAllEmuContainers(function () { - process.exit(); - }); - }); -}; - -module.exports = async () => { - await catchExit(); - await Zemu.checkAndPullImage(); - await Zemu.stopAllEmuContainers(); - fsExtra.emptyDirSync("snapshots/tmp") -}; diff --git a/tests/zemu/jest.config.js b/tests/zemu/jest.config.js deleted file mode 100644 index 63b6051..0000000 --- a/tests/zemu/jest.config.js +++ /dev/null @@ -1,39 +0,0 @@ -// For a detailed explanation regarding each configuration property, visit: -// https://jestjs.io/docs/en/configuration.html - -module.exports = { - modulePaths: ["/src", "/tests"], - - moduleNameMapper: { - "^jest$": "/jest.js", - }, - - // Automatically clear mock calls and instances between every test - clearMocks: true, - - // The directory where Jest should output its coverage files - coverageDirectory: "coverage", - - globalSetup: "/globalsetup.js", - - // A list of paths to directories that Jest should use to search for files in - roots: [""], - - runner: "jest-serial-runner", - - // The test environment that will be used for testing - testEnvironment: "node", - - // The glob patterns Jest uses to detect test files - testMatch: [ - "**/__tests__/**/*.[jt]s?(x)", - "**/?(*.)+(spec|test).[tj]s?(x)", - "**/?(*.)+(ispec|test).[tj]s?(x)", - ], - - // Path of the file where tests can be """decorated""" - setupFilesAfterEnv: ['/setupTests.js'], - - // Stop immediately when a test fail - bail: true, -}; diff --git a/tests/zemu/jest.js b/tests/zemu/jest.js deleted file mode 100644 index c5156ab..0000000 --- a/tests/zemu/jest.js +++ /dev/null @@ -1,22 +0,0 @@ -export default jest; -export const { expect, test } = global; - -export const sim_options_s = { - model: "nanos", - logging: true, - start_delay: 2000, - X11: true, - custom: "", -}; - -export const sim_options_x = { - model: "nanox", - logging: true, - start_delay: 2000, - X11: true, - custom: "", -}; - -export const Resolve = require("path").resolve; -export const NANOS_ELF_PATH = Resolve("elfs/ethereum_nanos.elf"); -export const NANOX_ELF_PATH = Resolve("elfs/ethereum_nanox.elf"); diff --git a/tests/zemu/package.json b/tests/zemu/package.json deleted file mode 100644 index ff934a8..0000000 --- a/tests/zemu/package.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "swap-test", - "version": "1.0.0", - "description": "", - "main": "test.js", - "scripts": { - "build": "babel src/ -d lib/", - "prepublish": "yarn run build", - "test": "jest src --verbose --runInBand --detectOpenHandles" - }, - "author": "", - "license": "ISC", - "dependencies": { - "@babel/plugin-proposal-class-properties": "^7.12.1", - "@ledgerhq/hw-app-eth": "^6.5.0", - "@ledgerhq/hw-transport-http": "^4.74.2", - "@ledgerhq/logs": "^5.50.0", - "@zondax/zemu": "^0.27.4", - "bignumber.js": "^9.0.0", - "bip32-path": "^0.4.2", - "core-js": "^3.7.0", - "ethereum-tx-decoder": "^3.0.0", - "ethers": "^5.5.1", - "fs-extra": "^10.0.0", - "google-protobuf": "^3.11.0", - "jest-serial-runner": "^1.1.0", - "js-sha256": "^0.9.0", - "regenerator-runtime": "^0.13.7", - "secp256k1": "^3.7.1" - }, - "devDependencies": { - "@babel/cli": "^7.7.0", - "@babel/core": "^7.7.2", - "@babel/preset-env": "^7.7.1", - "@babel/preset-flow": "^7.0.0", - "@babel/preset-stage-0": "^7.0.0", - "@babel/register": "^7.7.0", - "flow-bin": "^0.112.0", - "jest": "^26.6.3" - } -} diff --git a/tests/zemu/setupTests.js b/tests/zemu/setupTests.js deleted file mode 100644 index a9a9f82..0000000 --- a/tests/zemu/setupTests.js +++ /dev/null @@ -1,19 +0,0 @@ -import expect from 'expect' - -expect.extend({ - toMatchSnapshot(received, original) { - - if(received.data.equals(original.data)){ - return { - message: () => `snapshots are equal`, - pass: true - } - } else { - console.log("snapshots are not equal") - return { - message: () => `snapshots are not equal`, - pass: false - } - } - }, - }); diff --git a/tests/zemu/snapshots/nanos_transfer_ethereum_clone/00000.png b/tests/zemu/snapshots/nanos_transfer_ethereum_clone/00000.png deleted file mode 100644 index 8d84cc70fea8013b7e8b25c0982ce142fa103d5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 374 zcmV-+0g3*JP)K?4J2QqX3 zXn7ePqhBDwvA-|J28LIrjF%tX0z{3v6!_gF&(SYH)S*7TN;1RxW-%}TLH9_+sttDO z-T32w&rL(!1@Vr`jm5G(8dd=Ruu#)JAN?l#rFLU`oQ(r?$33AC7s0}pw!fi~(9k^# zU9aci?pXN=I7A<-f!Mw2untnw9MivqZYw}c5&)gweYhbTnv#2#t$0X2wST7_1F;LR zw?>Da2SkSfG>qWq1mej-6nW@2l+Z=0om5jdB%3o3Qx19_LNUlTqF4R_1Iaj%@^2O= z@;n%h1N>H$2;%-~Dvx1!0LtkT-;cq73rgisOElFtPbcL{d3TfNQvm<~003s>1*i4o Uje8$F8UO$Q07*qoM6N<$g5rpv%m4rY diff --git a/tests/zemu/snapshots/nanos_transfer_ethereum_clone/00001.png b/tests/zemu/snapshots/nanos_transfer_ethereum_clone/00001.png deleted file mode 100644 index 77e79afdd96e0c7f9589e5bcd2e27eedfa1a3597..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 336 zcmV-W0k8gvP)H|Wo;2rnnq4_$QEQ%cN+`|0N>fco6Z5?)m>Rc#ABI$iC=XHH@;ih z+lT)Mq9*C-bzLjSfw!pYlbHat90pe38iLeNe=vx_onRNblfB4Ecx|v-qV;?#qd3wO zHsw7=D^1?C@m9qBdqIQomR~ouqfa3IH};R80L0Qg6K)IgMz{cYJA~Oa)F#^HlHcl# iUqb-^000005fQCcFR{RR6IsdoDLerDbbIUQ1X*Y%zfRtSZt>P- zR98rsaf8&R8zXtO=g^AAERP(cMKnjd?1}>p;3>0IyR?D~ugNsmDGznoTD7$}r4_{2 zf|6d9<^~nci1SyUvvF7C)=ZWC?OI?k<@mfUoTErknu&c9Ry7xGjex`6HWfd0!Hl z^ryc0TbOl{{{39n4oD-~tfL>?B%l^>;?eg;7;22ZG31~ptU^5vzYmKAOR>P|&=8&c zRkP+Z0{vPLRCOvxpM+|&3x-8wkj(bsa5z?94OPY79XPJ?{W4%<000007{d!Z1i*;c Sb~u#)00004qvBJ+KYLdy}Tg`YuKtuykk|arz%w^wVUCQ{*)%Q&hezY82 z&EPjs%u{+jjhzZ0P0)S}S3}}^_5u*6-%HD~hW~O<`^({RC;mRsXvVVGsLbLCYVslY znkt=$Xy1P0ZdnHyV>&3hL{aZxS;y$<=8_aN(4HoTl+081n3zwW&HNKUe_=JxDNW2? z8^WDTJ^}oIA1$JfOvlv&{FiW9)Krg8zu_=_PV59YZPajY7y@7EeR|RcXfogG{Rbkr zI=z1}xd(TWS?EswJ9!bh>qi)=^^@lHEeavxQeL>DmtOn%izGf z)>9EwYA?~UOmr3+sTY$ywwM(sBv3DT0U}?*Q;W3z?;U6Ce+b=Q!e#}y9(KY({7{Fy z@6Uc7{ppkmDv=E+m4KoIx2maqHY1(h90*GEp+hWQ2E^`5(Qy4Hn^FsM+UD`Tc&G8r zM(s|{#Q~os8g5CBY(QW>Uhk|arzBuM~2k=$~ha82FQ00000NkvXXu0mjfvN__l diff --git a/tests/zemu/snapshots/nanos_transfer_ethereum_clone/00005.png b/tests/zemu/snapshots/nanos_transfer_ethereum_clone/00005.png deleted file mode 100644 index fd3155c0d349a1236eb862c8f4f5fc3c3a981ccf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 504 zcmVL$5ClOG1itKBTNjbPGWxz9A5}p1 zjy2;k()38LrSYNxr54ibzW~490~9g(J+&-r^Vi@&?f~_Sago#$5lH3 z?AsBK%Q|2(RR>vyNG4^^0G4%(on~%1f(FhfJ6qDplhzo*r_z|24k-T}fWNTvn|2nn zB!nmPK7hqny_|4r$y}Ctv&KwA-%GeOC|9o9@6Jmy-*37nHQXB&g|GBJW?BHI^R3>W z5XIHu{hNt3c#=4Up5)ufA`Mj&M<7qvxQv<(s(Pdtv0I9%c_i0XGJ~hWXU_KwGUbvJ z+VWabxs@`OvSN3kQB`gi5Td< zCNdD0-g7XjD`DKo>IK-ssAV(6ZeuYnD{V^0ojtC0sWO?x-863hBI?UV_L4%&S(1iJ zdo|QGQ!>Uiv|U2pq8^4-y>Fv^0jj67HeW#4-vz`W+n0t`>yiJ)(l8{0 uN`KP)C0a|2oddYDBwFnQ@V4&YmO|a5C2Z9{!HHY}>h}gC3s^}|C`SlNBi2Mc6JQiNjM{?U}L#4V(|#TjI_WV@yI*-`KAJ`lgkgC@g2^rf?_0 z*1b%|Xkn7YR%T=#+74maX^C@n{N_9-cPeO})NnO24*ybp@)UrS&wo|lA&S&ce=>-{ zO0Wy9s|)R58+e$pVxJ006*KIW%v6UqnR5$yvHwc?LWv z@z#ETdF&&4h~WT)liG=UU-3nw2R}HnqywIX`~O~r=wmc2dy$T5`4!_woK04M<2boP zBD-R$J{uR)G7JQOk+q~_$xpAPYeQSZOY6oXIHi2RW-;Ai4+d5M!!NpovbqVLS}Y#I z2F|5_rXnxY7oaFI)E6ToHPjadG0+6NkS53DK zu}G`V%oZd}DyvdY)Jy;*Ghpp^03nNC%9oPM>;%k?48IMt#wddvOG8UOX{)0P00000 aU_(CL9>HRtjM$|B0000j~f|{k#}B z4)Di%0(GQh%XXzDG$sKK-Q2JkKR-`QsiPFD-4d_!i{fwH;J|_aEL%ZYNu#B0FJ7G| z;=_VQWOA9;dQ4Y9)LpKCV=ri`X({49JagUwO3&5UdSK)wEJxPN%9wG}45n;lzK(aC zKtbL$y*-#9uSql`7 zENOEh^0jsFWbV&<+yj5)WEX_aERLO-`${sQhD#B5ZCio#Fr4qHlr^7X|9DL69eFa= z#kf#}$Pcl(QEE=tNl8Pt$o;~Fk*8r@j8mpwSGW8d!1&11FbzPh@^gWj=oh7f%f7G)4s^6#xJL07*qo IM6N<$g02I(Gynhq diff --git a/tests/zemu/snapshots/nanos_transfer_ethereum_clone/00009.png b/tests/zemu/snapshots/nanos_transfer_ethereum_clone/00009.png deleted file mode 100644 index 9c7e7049cb3e9bcfb1601ec510ee465d38229d4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 340 zcmV-a0jvIrP)b=%MgRq*37h4eRxPbkJCLY|1VIo49_}P}TKpH4$L<8?X{t;p zy+UQc_4@p%0?~E_&igM#?#L~IOHR(-<@sYotiy&C*Y&GII0yeh-p3zW9cv$Q0k>6Y_)5~SfP=m zSMUtz)%Ex|-o}7!H9hbQ(8{%C?kQVa?C`*Uj-J(h>P7(Y#?ZWvi?6}@n{fGLp>YTp myqR(V_$?>^<%seR_VWh!O41}p;-~WL<=z+0=1Om1tEU@3H#qtw22}5*_5JCvCo4!52c$FXo$VhXU?0M$^Bekqgf%Ka;M*^X|4 zEs9YCQ(xfJKmNC#+8dY%2&wT+>D^<3C%}_*k1^mvtO~`RE00000NkvXXu0mjf-kqOA diff --git a/tests/zemu/snapshots/nanox_transfer_ethereum_clone/00000.png b/tests/zemu/snapshots/nanox_transfer_ethereum_clone/00000.png deleted file mode 100644 index 487ea10fcfeb2f3e6b79239459672251d49addd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 414 zcmV;P0b%}$P)vpO}&+|8}fC)JNq`>?#dJ%s{^>GN_4usXQirk{^@^BA?p!El9&T9q~zMsh2=YdLB`_ONiP zKy6XlUGFZ>Cn7mP3u*k}@P)5`qyl*kG=n_1*noziZNbl$`{vlt{~o_t%`n%u4pwY>{meXB+{Rk?&w8PEthtO zpw07jjL}y6VFv?T+|mWt_$K~jfL&aWUky%TyaK3e=FYtaUn}OGWSA{n5OvD8nuxn7 z-!K}@zjoyT00000*z#j7fC_q86vGeVJA~htgYBrD)_EMs-MM~?7qNx7d+K+I1$E)U z=QD6)fW!2jIn4#R<1_=f--NfFK>Ecd7ej0bg>Cm~XjGZ)cH}ys0+A0q0yynb^ z?V`3+V|SFjQQmkHt~~-gf8@=8&)TsxxiBJ+1miSGuX>5c*78iNuJhz>bJ(1Z7@(F> zJKR<1`6WIa|8S-`UvSAM=hAIx6OJzY@2%<8Ow#T_pZC~BJT-`O(ag)n0ISyTsvc&j z%|$7d$^gY*9%%1k5tnQj&C!tG9Fs~p){O7~00000;KE04C}sI!5e%Y^FXSM?&?tHk}ux;C`ecLu=gSX6Lat5e?s%%i9aT`@9hm9L(b**iA zo+UCs1q)pJV?DGHk7o2q=I;S=!=}15NH6Gf_nw&(aE!ct6uh44))-l*iOrhN9})SQ zc<=m~;O>*rb{ehd^*3Qc2qA=!&m=2Dy9dRnm{YZUTkl6L_I7!t7#$a?w@!-PZtZIw zi|!tcA_EaAlM_EKrHx$`Sz2AF>#*yI`$O)V9RhO3E}VpK)s6Ah0j~Xb;j9=JC8KLL z5Fne>rRd{NKg55z;n-Z5042MNH>zVKFJom1M)N`tDFW=oUe)>^4ZN#)TrWq1V?(0v z?rCLV2W4%#{zn71op;v9+*cDHLKtL5|1q3UGx`t1IhYBbLNngb+dqA%FY=&*w%zyr@4#00000NkvXXu0mjf D0V!mH diff --git a/tests/zemu/snapshots/nanox_transfer_ethereum_clone/00003.png b/tests/zemu/snapshots/nanox_transfer_ethereum_clone/00003.png deleted file mode 100644 index c59d95a75873b383251705204fcfba4a4b32f583..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 441 zcmV;q0Y?6bP)39HGrB-%APBYOnqBRx^B%~ zs&?l#m^=mbr}(ResV33L?5z1m7Mz0esV1p@sO^-gINQV3!nq$|004mhH1;&qK6nxH zh^CCwI)0GahRY~1j$_OBy!XPiwPPxm`NrPLI6^3I^;{UQ*Hdz>RSx6s-O)}Mz7xLD zSXR4hpX0gV4X|w9dk!;t9y@83DacuwR{wL*%_!T4!A9W$3jp*IHawJ7D$6 z{BFK#R4d5emZ7bfGVIfJkY3Mj__vx#Ci`wGsV4i*XoH!Ug=RWPGHoyv=>-4)00000 j00000000000ET%3QAI8I`82l300000NkvXXu0mjf#0ShY diff --git a/tests/zemu/snapshots/nanox_transfer_ethereum_clone/00004.png b/tests/zemu/snapshots/nanox_transfer_ethereum_clone/00004.png deleted file mode 100644 index 570ce28d53e82ac396ba25c370110058f3a638f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmV;}0Vn>6P)Nkl`l1;k+@4An6g^M6kcbtxu@7*hfO000000DuchDWw$aQJnB& zJ%BsK3VrpQ1hnYqoNY&PO0WdV>i`7cs)e_@w@x()p@w=B24`klR6(CLpxqtlZO|2 zIWjpO-F~*EHtLqUMt)Wc_@bMv^h#{CUFW0M(vJ1P=5N1GhWcHM(-Xu*&bc@D4_o$^ z7Y|pL)I@*DzttR=&yLH#^{|TW)8Sp0qphw%epiuSUG#WHS~ht|j~;`U4>BXmdi9@& zuz>%00000G5i7^TsbXePb2LB O0000MjqtrV%Nn6esuj!jIMi}Btw`sohxwi1&U@}K{{10Q-!s%eVxF#kF6*2U FngGM>p?d%T diff --git a/tests/zemu/snapshots/nanox_transfer_ethereum_clone/00006.png b/tests/zemu/snapshots/nanox_transfer_ethereum_clone/00006.png deleted file mode 120000 index 917964c..0000000 --- a/tests/zemu/snapshots/nanox_transfer_ethereum_clone/00006.png +++ /dev/null @@ -1 +0,0 @@ -00004.png \ No newline at end of file diff --git a/tests/zemu/snapshots/nanox_transfer_ethereum_clone/00007.png b/tests/zemu/snapshots/nanox_transfer_ethereum_clone/00007.png deleted file mode 100644 index a58590b988714545e7960f7f400f360ffc5de41f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 382 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9hba4!+nDh2#bl+hG9*4k? zQuR0Wo;SViCn%lTo!KM1sAjk5Y(@*V#~rbuHu`7A_H&AxgwHf8y4cdKvg$JbB4n%ez%sZ31aBYd&Oo@(7)_WJ(Znl2o8^PD` zFE`_Y-IS+Kdq0Q2-7r_C=}F(5ev`U`H~)QH|9$1FHE$YjoVax+e0xei%S`SAGlOm! zp7{T3NA-mVOYb&rdU8MdyIHo@@7cE*uj@I+Zu{2i)KMSV-E~o { - const tx = eth.signTransaction( - "44'/60'/0'/0/0", - 'EB44850306DC4200825208945A321744667052AFFA8386ED49E00EF223CBFFC3876F9C9E7BF61818803D8080', - ); - - await waitForAppScreen(sim); - let clicks; - if (model.letter === 'S') clicks = 9; - else clicks = 5; - await sim.navigateAndCompareSnapshots('.', model.name + '_transfer_ethereum_clone', [clicks, -1, 0]); - - await expect(tx).resolves.toEqual({ - "r": "60df850d297e355596f87dc313a742032de4b59c5579186b3d59bdf31402fec0", - "s": "23c3a2beacabc1943d487a2e1d545e4c46c718b1e70e9d1c11a98828c9338927", - "v": "9e", - }); - }, true)); -}); - -nano_models.forEach(function(model) { - test("[Nano " + model.letter + "] Transfer on network 5234 on Ethereum clone", zemu(model, async (sim, eth) => { - const tx = eth.signTransaction( - "44'/60'/0'/0/0", - 'ED44850306DC4200825208945A321744667052AFFA8386ED49E00EF223CBFFC3876F9C9E7BF61818808214728080', - ); - - await expect(tx).rejects.toEqual(new EthAppPleaseEnableContractData( - "Please enable Contract data on the Ethereum app Settings" - )); - }, true)); -}); diff --git a/tests/zemu/src/test.fixture.js b/tests/zemu/src/test.fixture.js deleted file mode 100644 index 1a2f898..0000000 --- a/tests/zemu/src/test.fixture.js +++ /dev/null @@ -1,121 +0,0 @@ -import Zemu, { DEFAULT_START_OPTIONS, DeviceModel } from '@zondax/zemu'; -import Eth from '@ledgerhq/hw-app-eth'; -import {RLP} from "ethers/lib/utils"; - -const transactionUploadDelay = 60000; - -async function waitForAppScreen(sim, current_screen = null) { - if (current_screen === null) current_screen = sim.getMainMenuSnapshot(); - - await sim.waitUntilScreenIsNot(current_screen, transactionUploadDelay); -} - -const sim_options_nano = { - ...DEFAULT_START_OPTIONS, - logging: true, - X11: true, - startText: 'is ready' -}; - -const Resolve = require('path').resolve; - -const NANOS_ELF_PATH = Resolve('elfs/ethereum_nanos.elf'); -const NANOX_ELF_PATH = Resolve('elfs/ethereum_nanox.elf'); - -const NANOS_CLONE_ELF_PATH = Resolve("elfs/ethereum_classic_nanos.elf"); -const NANOX_CLONE_ELF_PATH = Resolve("elfs/ethereum_classic_nanox.elf"); - -const nano_models: DeviceModel[] = [ - { name: 'nanos', letter: 'S', path: NANOS_ELF_PATH, clone_path: NANOS_CLONE_ELF_PATH }/*, - { name: 'nanox', letter: 'X', path: NANOX_ELF_PATH, clone_path: NANOX_CLONE_ELF_PATH }*/ -]; - -const TIMEOUT = 1000000; - -// useful to take an apdu as a hex string and convert its JS representation -function apdu_as_string(str) { - let buffer = []; - - for (let i = 0; i < str.length; i += 2) { - const str_extract = str.substring(i, i + 2); - buffer[i / 2] = parseInt(str_extract, 16); - } - return { - cla: buffer[0], - ins: buffer[1], - p1: buffer[2], - p2: buffer[3], - data: Buffer.from(buffer.slice(5)) - }; -} - -async function send_apdu(ts, apdu) { - return ts.send(apdu.cla, - apdu.ins, - apdu.p1, - apdu.p2, - apdu.data); -} - -// Generates a serializedTransaction from a rawHexTransaction copy pasted from etherscan. -function txFromEtherscan(rawTx) { - // Remove 0x prefix - rawTx = rawTx.slice(2); - - let txType = rawTx.slice(0, 2); - if (txType == "02" || txType == "01") { - // Remove "02" prefix - rawTx = rawTx.slice(2); - } else { - txType = ""; - } - - let decoded = RLP.decode("0x" + rawTx); - if (txType != "") { - decoded = decoded.slice(0, decoded.length - 3); // remove v, r, s - } else { - decoded[decoded.length - 1] = "0x"; // empty - decoded[decoded.length - 2] = "0x"; // empty - decoded[decoded.length - 3] = "0x01"; // chainID 1 - } - - // Encode back the data, drop the '0x' prefix - let encoded = RLP.encode(decoded).slice(2); - - // Don't forget to prepend the txtype - return txType + encoded; -} - -function zemu(device, func, start_clone = false) { - return async () => { - jest.setTimeout(TIMEOUT); - let elf_path; - let lib_elf; - if (start_clone) { - elf_path = device.clone_path; - lib_elf = { 'Ethereum': device.path }; - } - else { - elf_path = device.path; - } - const sim = new Zemu(elf_path, lib_elf); - try { - await sim.start({...sim_options_nano, model: device.name}); - const transport = await sim.getTransport(); - await func(sim, new Eth(transport)); - } finally { - await sim.close(); - } - }; -} - -module.exports = { - zemu, - waitForAppScreen, - sim_options_nano, - nano_models, - TIMEOUT, - txFromEtherscan, - apdu_as_string, - send_apdu -} diff --git a/tests/zemu/yarn.lock b/tests/zemu/yarn.lock deleted file mode 100644 index b4b5395..0000000 --- a/tests/zemu/yarn.lock +++ /dev/null @@ -1,7475 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@babel/cli@^7.7.0": - version "7.14.3" - resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.14.3.tgz#9f6c8aee12e8660df879610f19a8010958b26a6f" - integrity sha512-zU4JLvwk32ay1lhhyGfqiRUSPoltVDjhYkA3aQq8+Yby9z30s/EsFw1EPOHxWG9YZo2pAGfgdRNeHZQAYU5m9A== - dependencies: - commander "^4.0.1" - convert-source-map "^1.1.0" - fs-readdir-recursive "^1.1.0" - glob "^7.0.0" - make-dir "^2.1.0" - slash "^2.0.0" - source-map "^0.5.0" - optionalDependencies: - "@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents" - chokidar "^3.4.0" - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658" - integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g== - dependencies: - "@babel/highlight" "^7.12.13" - -"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.13.15", "@babel/compat-data@^7.14.0": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.0.tgz#a901128bce2ad02565df95e6ecbf195cf9465919" - integrity sha512-vu9V3uMM/1o5Hl5OekMUowo3FqXLJSw+s+66nt0fSWVWTtmosdzn45JHOB3cPtZoe6CTBDzvSw0RdOY85Q37+Q== - -"@babel/core@^7.1.0", "@babel/core@^7.7.2", "@babel/core@^7.7.5": - version "7.14.3" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.3.tgz#5395e30405f0776067fbd9cf0884f15bfb770a38" - integrity sha512-jB5AmTKOCSJIZ72sd78ECEhuPiDMKlQdDI/4QRI6lzYATx5SSogS1oQA2AoPecRCknm30gHi2l+QVvNUu3wZAg== - dependencies: - "@babel/code-frame" "^7.12.13" - "@babel/generator" "^7.14.3" - "@babel/helper-compilation-targets" "^7.13.16" - "@babel/helper-module-transforms" "^7.14.2" - "@babel/helpers" "^7.14.0" - "@babel/parser" "^7.14.3" - "@babel/template" "^7.12.13" - "@babel/traverse" "^7.14.2" - "@babel/types" "^7.14.2" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.1.2" - semver "^6.3.0" - source-map "^0.5.0" - -"@babel/generator@^7.14.2", "@babel/generator@^7.14.3", "@babel/generator@^7.4.0": - version "7.14.3" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.3.tgz#0c2652d91f7bddab7cccc6ba8157e4f40dcedb91" - integrity sha512-bn0S6flG/j0xtQdz3hsjJ624h3W0r3llttBMfyHX3YrZ/KtLYr15bjA0FXkgW7FpvrDuTuElXeVjiKlYRpnOFA== - dependencies: - "@babel/types" "^7.14.2" - jsesc "^2.5.1" - source-map "^0.5.0" - -"@babel/helper-annotate-as-pure@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz#0f58e86dfc4bb3b1fcd7db806570e177d439b6ab" - integrity sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw== - dependencies: - "@babel/types" "^7.12.13" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz#6bc20361c88b0a74d05137a65cac8d3cbf6f61fc" - integrity sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA== - dependencies: - "@babel/helper-explode-assignable-expression" "^7.12.13" - "@babel/types" "^7.12.13" - -"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.13.16": - version "7.13.16" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.16.tgz#6e91dccf15e3f43e5556dffe32d860109887563c" - integrity sha512-3gmkYIrpqsLlieFwjkGgLaSHmhnvlAYzZLlYVjlW+QwI+1zE17kGxuJGmIqDQdYp56XdmGeD+Bswx0UTyG18xA== - dependencies: - "@babel/compat-data" "^7.13.15" - "@babel/helper-validator-option" "^7.12.17" - browserslist "^4.14.5" - semver "^6.3.0" - -"@babel/helper-create-class-features-plugin@^7.13.0", "@babel/helper-create-class-features-plugin@^7.14.0", "@babel/helper-create-class-features-plugin@^7.14.3": - version "7.14.3" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.3.tgz#832111bcf4f57ca57a4c5b1a000fc125abc6554a" - integrity sha512-BnEfi5+6J2Lte9LeiL6TxLWdIlEv9Woacc1qXzXBgbikcOzMRM2Oya5XGg/f/ngotv1ej2A/b+3iJH8wbS1+lQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.12.13" - "@babel/helper-function-name" "^7.14.2" - "@babel/helper-member-expression-to-functions" "^7.13.12" - "@babel/helper-optimise-call-expression" "^7.12.13" - "@babel/helper-replace-supers" "^7.14.3" - "@babel/helper-split-export-declaration" "^7.12.13" - -"@babel/helper-create-regexp-features-plugin@^7.12.13": - version "7.14.3" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.3.tgz#149aa6d78c016e318c43e2409a0ae9c136a86688" - integrity sha512-JIB2+XJrb7v3zceV2XzDhGIB902CmKGSpSl4q2C6agU9SNLG/2V1RtFRGPG1Ajh9STj3+q6zJMOC+N/pp2P9DA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.12.13" - regexpu-core "^4.7.1" - -"@babel/helper-define-polyfill-provider@^0.2.1": - version "0.2.1" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.1.tgz#e6f5f4a6edc3722152c21359190de67fc6cf664d" - integrity sha512-x3AUTVZNPunaw1opRTa5OwVA5N0YxGlIad9xQ5QflK1uIS7PnAGGU5O2Dj/G183fR//N8AzTq+Q8+oiu9m0VFg== - dependencies: - "@babel/helper-compilation-targets" "^7.13.0" - "@babel/helper-module-imports" "^7.12.13" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/traverse" "^7.13.0" - debug "^4.1.1" - lodash.debounce "^4.0.8" - resolve "^1.14.2" - semver "^6.1.2" - -"@babel/helper-explode-assignable-expression@^7.12.13": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.13.0.tgz#17b5c59ff473d9f956f40ef570cf3a76ca12657f" - integrity sha512-qS0peLTDP8kOisG1blKbaoBg/o9OSa1qoumMjTK5pM+KDTtpxpsiubnCGP34vK8BXGcb2M9eigwgvoJryrzwWA== - dependencies: - "@babel/types" "^7.13.0" - -"@babel/helper-function-name@^7.12.13", "@babel/helper-function-name@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.2.tgz#397688b590760b6ef7725b5f0860c82427ebaac2" - integrity sha512-NYZlkZRydxw+YT56IlhIcS8PAhb+FEUiOzuhFTfqDyPmzAhRge6ua0dQYT/Uh0t/EDHq05/i+e5M2d4XvjgarQ== - dependencies: - "@babel/helper-get-function-arity" "^7.12.13" - "@babel/template" "^7.12.13" - "@babel/types" "^7.14.2" - -"@babel/helper-get-function-arity@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz#bc63451d403a3b3082b97e1d8b3fe5bd4091e583" - integrity sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg== - dependencies: - "@babel/types" "^7.12.13" - -"@babel/helper-hoist-variables@^7.13.0": - version "7.13.16" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.16.tgz#1b1651249e94b51f8f0d33439843e33e39775b30" - integrity sha512-1eMtTrXtrwscjcAeO4BVK+vvkxaLJSPFz1w1KLawz6HLNi9bPFGBNwwDyVfiu1Tv/vRRFYfoGaKhmAQPGPn5Wg== - dependencies: - "@babel/traverse" "^7.13.15" - "@babel/types" "^7.13.16" - -"@babel/helper-member-expression-to-functions@^7.13.12": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz#dfe368f26d426a07299d8d6513821768216e6d72" - integrity sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw== - dependencies: - "@babel/types" "^7.13.12" - -"@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.13.12": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz#c6a369a6f3621cb25da014078684da9196b61977" - integrity sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA== - dependencies: - "@babel/types" "^7.13.12" - -"@babel/helper-module-transforms@^7.13.0", "@babel/helper-module-transforms@^7.14.0", "@babel/helper-module-transforms@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.14.2.tgz#ac1cc30ee47b945e3e0c4db12fa0c5389509dfe5" - integrity sha512-OznJUda/soKXv0XhpvzGWDnml4Qnwp16GN+D/kZIdLsWoHj05kyu8Rm5kXmMef+rVJZ0+4pSGLkeixdqNUATDA== - dependencies: - "@babel/helper-module-imports" "^7.13.12" - "@babel/helper-replace-supers" "^7.13.12" - "@babel/helper-simple-access" "^7.13.12" - "@babel/helper-split-export-declaration" "^7.12.13" - "@babel/helper-validator-identifier" "^7.14.0" - "@babel/template" "^7.12.13" - "@babel/traverse" "^7.14.2" - "@babel/types" "^7.14.2" - -"@babel/helper-optimise-call-expression@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz#5c02d171b4c8615b1e7163f888c1c81c30a2aaea" - integrity sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA== - dependencies: - "@babel/types" "^7.12.13" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz#806526ce125aed03373bc416a828321e3a6a33af" - integrity sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ== - -"@babel/helper-remap-async-to-generator@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.13.0.tgz#376a760d9f7b4b2077a9dd05aa9c3927cadb2209" - integrity sha512-pUQpFBE9JvC9lrQbpX0TmeNIy5s7GnZjna2lhhcHC7DzgBs6fWn722Y5cfwgrtrqc7NAJwMvOa0mKhq6XaE4jg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.12.13" - "@babel/helper-wrap-function" "^7.13.0" - "@babel/types" "^7.13.0" - -"@babel/helper-replace-supers@^7.12.13", "@babel/helper-replace-supers@^7.13.12", "@babel/helper-replace-supers@^7.14.3": - version "7.14.3" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.14.3.tgz#ca17b318b859d107f0e9b722d58cf12d94436600" - integrity sha512-Rlh8qEWZSTfdz+tgNV/N4gz1a0TMNwCUcENhMjHTHKp3LseYH5Jha0NSlyTQWMnjbYcwFt+bqAMqSLHVXkQ6UA== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.13.12" - "@babel/helper-optimise-call-expression" "^7.12.13" - "@babel/traverse" "^7.14.2" - "@babel/types" "^7.14.2" - -"@babel/helper-simple-access@^7.13.12": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz#dd6c538afb61819d205a012c31792a39c7a5eaf6" - integrity sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA== - dependencies: - "@babel/types" "^7.13.12" - -"@babel/helper-skip-transparent-expression-wrappers@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz#462dc63a7e435ade8468385c63d2b84cce4b3cbf" - integrity sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA== - dependencies: - "@babel/types" "^7.12.1" - -"@babel/helper-split-export-declaration@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz#e9430be00baf3e88b0e13e6f9d4eaf2136372b05" - integrity sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg== - dependencies: - "@babel/types" "^7.12.13" - -"@babel/helper-validator-identifier@^7.12.11", "@babel/helper-validator-identifier@^7.14.0": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz#d26cad8a47c65286b15df1547319a5d0bcf27288" - integrity sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A== - -"@babel/helper-validator-option@^7.12.17": - version "7.12.17" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz#d1fbf012e1a79b7eebbfdc6d270baaf8d9eb9831" - integrity sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw== - -"@babel/helper-wrap-function@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.13.0.tgz#bdb5c66fda8526ec235ab894ad53a1235c79fcc4" - integrity sha512-1UX9F7K3BS42fI6qd2A4BjKzgGjToscyZTdp1DjknHLCIvpgne6918io+aL5LXFcER/8QWiwpoY902pVEqgTXA== - dependencies: - "@babel/helper-function-name" "^7.12.13" - "@babel/template" "^7.12.13" - "@babel/traverse" "^7.13.0" - "@babel/types" "^7.13.0" - -"@babel/helpers@^7.14.0": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.14.0.tgz#ea9b6be9478a13d6f961dbb5f36bf75e2f3b8f62" - integrity sha512-+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg== - dependencies: - "@babel/template" "^7.12.13" - "@babel/traverse" "^7.14.0" - "@babel/types" "^7.14.0" - -"@babel/highlight@^7.12.13": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.0.tgz#3197e375711ef6bf834e67d0daec88e4f46113cf" - integrity sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg== - dependencies: - "@babel/helper-validator-identifier" "^7.14.0" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/parser@^7.1.0", "@babel/parser@^7.12.13", "@babel/parser@^7.14.2", "@babel/parser@^7.14.3", "@babel/parser@^7.4.3": - version "7.14.3" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.3.tgz#9b530eecb071fd0c93519df25c5ff9f14759f298" - integrity sha512-7MpZDIfI7sUC5zWo2+foJ50CSI5lcqDehZ0lVgIhSi4bFEk94fLAKlF3Q0nzSQQ+ca0lm+O6G9ztKVBeu8PMRQ== - -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.13.12": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12.tgz#a3484d84d0b549f3fc916b99ee4783f26fabad2a" - integrity sha512-d0u3zWKcoZf379fOeJdr1a5WPDny4aOFZ6hlfKivgK0LY7ZxNfoaHL2fWwdGtHyVvra38FC+HVYkO+byfSA8AQ== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" - "@babel/plugin-proposal-optional-chaining" "^7.13.12" - -"@babel/plugin-proposal-async-generator-functions@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.2.tgz#3a2085abbf5d5f962d480dbc81347385ed62eb1e" - integrity sha512-b1AM4F6fwck4N8ItZ/AtC4FP/cqZqmKRQ4FaTDutwSYyjuhtvsGEMLK4N/ztV/ImP40BjIDyMgBQAeAMsQYVFQ== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-remap-async-to-generator" "^7.13.0" - "@babel/plugin-syntax-async-generators" "^7.8.4" - -"@babel/plugin-proposal-class-properties@^7.12.1", "@babel/plugin-proposal-class-properties@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.13.0.tgz#146376000b94efd001e57a40a88a525afaab9f37" - integrity sha512-KnTDjFNC1g+45ka0myZNvSBFLhNCLN+GeGYLDEA8Oq7MZ6yMgfLoIRh86GRT0FjtJhZw8JyUskP9uvj5pHM9Zg== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.13.0" - "@babel/helper-plugin-utils" "^7.13.0" - -"@babel/plugin-proposal-class-static-block@^7.13.11": - version "7.14.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.14.3.tgz#5a527e2cae4a4753119c3a3e7f64ecae8ccf1360" - integrity sha512-HEjzp5q+lWSjAgJtSluFDrGGosmwTgKwCXdDQZvhKsRlwv3YdkUEqxNrrjesJd+B9E9zvr1PVPVBvhYZ9msjvQ== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.14.3" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-class-static-block" "^7.12.13" - -"@babel/plugin-proposal-dynamic-import@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.2.tgz#01ebabd7c381cff231fa43e302939a9de5be9d9f" - integrity sha512-oxVQZIWFh91vuNEMKltqNsKLFWkOIyJc95k2Gv9lWVyDfPUQGSSlbDEgWuJUU1afGE9WwlzpucMZ3yDRHIItkA== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - -"@babel/plugin-proposal-export-namespace-from@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.2.tgz#62542f94aa9ce8f6dba79eec698af22112253791" - integrity sha512-sRxW3z3Zp3pFfLAgVEvzTFutTXax837oOatUIvSG9o5gRj9mKwm3br1Se5f4QalTQs9x4AzlA/HrCWbQIHASUQ== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - -"@babel/plugin-proposal-json-strings@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.2.tgz#830b4e2426a782e8b2878fbfe2cba85b70cbf98c" - integrity sha512-w2DtsfXBBJddJacXMBhElGEYqCZQqN99Se1qeYn8DVLB33owlrlLftIbMzn5nz1OITfDVknXF433tBrLEAOEjA== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-json-strings" "^7.8.3" - -"@babel/plugin-proposal-logical-assignment-operators@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.2.tgz#222348c080a1678e0e74ea63fe76f275882d1fd7" - integrity sha512-1JAZtUrqYyGsS7IDmFeaem+/LJqujfLZ2weLR9ugB0ufUPjzf8cguyVT1g5im7f7RXxuLq1xUxEzvm68uYRtGg== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - -"@babel/plugin-proposal-nullish-coalescing-operator@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.2.tgz#425b11dc62fc26939a2ab42cbba680bdf5734546" - integrity sha512-ebR0zU9OvI2N4qiAC38KIAK75KItpIPTpAtd2r4OZmMFeKbKJpUFLYP2EuDut82+BmYi8sz42B+TfTptJ9iG5Q== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - -"@babel/plugin-proposal-numeric-separator@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.2.tgz#82b4cc06571143faf50626104b335dd71baa4f9e" - integrity sha512-DcTQY9syxu9BpU3Uo94fjCB3LN9/hgPS8oUL7KrSW3bA2ePrKZZPJcc5y0hoJAM9dft3pGfErtEUvxXQcfLxUg== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - -"@babel/plugin-proposal-object-rest-spread@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.2.tgz#e17d418f81cc103fedd4ce037e181c8056225abc" - integrity sha512-hBIQFxwZi8GIp934+nj5uV31mqclC1aYDhctDu5khTi9PCCUOczyy0b34W0oE9U/eJXiqQaKyVsmjeagOaSlbw== - dependencies: - "@babel/compat-data" "^7.14.0" - "@babel/helper-compilation-targets" "^7.13.16" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.14.2" - -"@babel/plugin-proposal-optional-catch-binding@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.2.tgz#150d4e58e525b16a9a1431bd5326c4eed870d717" - integrity sha512-XtkJsmJtBaUbOxZsNk0Fvrv8eiqgneug0A6aqLFZ4TSkar2L5dSXWcnUKHgmjJt49pyB/6ZHvkr3dPgl9MOWRQ== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - -"@babel/plugin-proposal-optional-chaining@^7.13.12", "@babel/plugin-proposal-optional-chaining@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.2.tgz#df8171a8b9c43ebf4c1dabe6311b432d83e1b34e" - integrity sha512-qQByMRPwMZJainfig10BoaDldx/+VDtNcrA7qdNaEOAj6VXud+gfrkA8j4CRAU5HjnWREXqIpSpH30qZX1xivA== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - -"@babel/plugin-proposal-private-methods@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.13.0.tgz#04bd4c6d40f6e6bbfa2f57e2d8094bad900ef787" - integrity sha512-MXyyKQd9inhx1kDYPkFRVOBXQ20ES8Pto3T7UZ92xj2mY0EVD8oAVzeyYuVfy/mxAdTSIayOvg+aVzcHV2bn6Q== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.13.0" - "@babel/helper-plugin-utils" "^7.13.0" - -"@babel/plugin-proposal-private-property-in-object@^7.14.0": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.0.tgz#b1a1f2030586b9d3489cc26179d2eb5883277636" - integrity sha512-59ANdmEwwRUkLjB7CRtwJxxwtjESw+X2IePItA+RGQh+oy5RmpCh/EvVVvh5XQc3yxsm5gtv0+i9oBZhaDNVTg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.12.13" - "@babel/helper-create-class-features-plugin" "^7.14.0" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-private-property-in-object" "^7.14.0" - -"@babel/plugin-proposal-unicode-property-regex@^7.12.13", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz#bebde51339be829c17aaaaced18641deb62b39ba" - integrity sha512-XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-syntax-async-generators@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-bigint@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" - integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" - integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-syntax-class-static-block@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.12.13.tgz#8e3d674b0613e67975ceac2776c97b60cafc5c9c" - integrity sha512-ZmKQ0ZXR0nYpHZIIuj9zE7oIqCx2hw9TKi+lIo73NNrMPAZGHfS92/VRV0ZmPj6H2ffBgyFHXvJ5NYsNeEaP2A== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-syntax-dynamic-import@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" - integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-export-namespace-from@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" - integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-syntax-flow@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.12.13.tgz#5df9962503c0a9c918381c929d51d4d6949e7e86" - integrity sha512-J/RYxnlSLXZLVR7wTRsozxKT8qbsx1mNKJzXEEjQ0Kjx1ZACcyHgbanNWNCFtc36IzuWhYWPpvJFFoexoOWFmA== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-syntax-import-meta@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" - integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" - integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" - integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" - integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-chaining@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-private-property-in-object@^7.14.0": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.0.tgz#762a4babec61176fec6c88480dec40372b140c0b" - integrity sha512-bda3xF8wGl5/5btF794utNOL0Jw+9jE5C1sLZcoK7c4uonE/y3iQiyG+KbkF3WBV/paX58VCpjhxLPkdj5Fe4w== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - -"@babel/plugin-syntax-top-level-await@^7.12.13", "@babel/plugin-syntax-top-level-await@^7.8.3": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz#c5f0fa6e249f5b739727f923540cf7a806130178" - integrity sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-arrow-functions@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.13.0.tgz#10a59bebad52d637a027afa692e8d5ceff5e3dae" - integrity sha512-96lgJagobeVmazXFaDrbmCLQxBysKu7U6Do3mLsx27gf5Dk85ezysrs2BZUpXD703U/Su1xTBDxxar2oa4jAGg== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - -"@babel/plugin-transform-async-to-generator@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.13.0.tgz#8e112bf6771b82bf1e974e5e26806c5c99aa516f" - integrity sha512-3j6E004Dx0K3eGmhxVJxwwI89CTJrce7lg3UrtFuDAVQ/2+SJ/h/aSFOeE6/n0WB1GsOffsJp6MnPQNQ8nmwhg== - dependencies: - "@babel/helper-module-imports" "^7.12.13" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-remap-async-to-generator" "^7.13.0" - -"@babel/plugin-transform-block-scoped-functions@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.13.tgz#a9bf1836f2a39b4eb6cf09967739de29ea4bf4c4" - integrity sha512-zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-block-scoping@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.2.tgz#761cb12ab5a88d640ad4af4aa81f820e6b5fdf5c" - integrity sha512-neZZcP19NugZZqNwMTH+KoBjx5WyvESPSIOQb4JHpfd+zPfqcH65RMu5xJju5+6q/Y2VzYrleQTr+b6METyyxg== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - -"@babel/plugin-transform-classes@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.2.tgz#3f1196c5709f064c252ad056207d87b7aeb2d03d" - integrity sha512-7oafAVcucHquA/VZCsXv/gmuiHeYd64UJyyTYU+MPfNu0KeNlxw06IeENBO8bJjXVbolu+j1MM5aKQtH1OMCNg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.12.13" - "@babel/helper-function-name" "^7.14.2" - "@babel/helper-optimise-call-expression" "^7.12.13" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-replace-supers" "^7.13.12" - "@babel/helper-split-export-declaration" "^7.12.13" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.13.0.tgz#845c6e8b9bb55376b1fa0b92ef0bdc8ea06644ed" - integrity sha512-RRqTYTeZkZAz8WbieLTvKUEUxZlUTdmL5KGMyZj7FnMfLNKV4+r5549aORG/mgojRmFlQMJDUupwAMiF2Q7OUg== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - -"@babel/plugin-transform-destructuring@^7.13.17": - version "7.13.17" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.17.tgz#678d96576638c19d5b36b332504d3fd6e06dea27" - integrity sha512-UAUqiLv+uRLO+xuBKKMEpC+t7YRNVRqBsWWq1yKXbBZBje/t3IXCiSinZhjn/DC3qzBfICeYd2EFGEbHsh5RLA== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - -"@babel/plugin-transform-dotall-regex@^7.12.13", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.13.tgz#3f1601cc29905bfcb67f53910f197aeafebb25ad" - integrity sha512-foDrozE65ZFdUC2OfgeOCrEPTxdB3yjqxpXh8CH+ipd9CHd4s/iq81kcUpyH8ACGNEPdFqbtzfgzbT/ZGlbDeQ== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-duplicate-keys@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.13.tgz#6f06b87a8b803fd928e54b81c258f0a0033904de" - integrity sha512-NfADJiiHdhLBW3pulJlJI2NB0t4cci4WTZ8FtdIuNc2+8pslXdPtRRAEWqUY+m9kNOk2eRYbTAOipAxlrOcwwQ== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-exponentiation-operator@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.13.tgz#4d52390b9a273e651e4aba6aee49ef40e80cd0a1" - integrity sha512-fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA== - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-flow-strip-types@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.13.0.tgz#58177a48c209971e8234e99906cb6bd1122addd3" - integrity sha512-EXAGFMJgSX8gxWD7PZtW/P6M+z74jpx3wm/+9pn+c2dOawPpBkUX7BrfyPvo6ZpXbgRIEuwgwDb/MGlKvu2pOg== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-flow" "^7.12.13" - -"@babel/plugin-transform-for-of@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.13.0.tgz#c799f881a8091ac26b54867a845c3e97d2696062" - integrity sha512-IHKT00mwUVYE0zzbkDgNRP6SRzvfGCYsOxIRz8KsiaaHCcT9BWIkO+H9QRJseHBLOGBZkHUdHiqj6r0POsdytg== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - -"@babel/plugin-transform-function-name@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.13.tgz#bb024452f9aaed861d374c8e7a24252ce3a50051" - integrity sha512-6K7gZycG0cmIwwF7uMK/ZqeCikCGVBdyP2J5SKNCXO5EOHcqi+z7Jwf8AmyDNcBgxET8DrEtCt/mPKPyAzXyqQ== - dependencies: - "@babel/helper-function-name" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-literals@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz#2ca45bafe4a820197cf315794a4d26560fe4bdb9" - integrity sha512-FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-member-expression-literals@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.13.tgz#5ffa66cd59b9e191314c9f1f803b938e8c081e40" - integrity sha512-kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-modules-amd@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.2.tgz#6622806fe1a7c07a1388444222ef9535f2ca17b0" - integrity sha512-hPC6XBswt8P3G2D1tSV2HzdKvkqOpmbyoy+g73JG0qlF/qx2y3KaMmXb1fLrpmWGLZYA0ojCvaHdzFWjlmV+Pw== - dependencies: - "@babel/helper-module-transforms" "^7.14.2" - "@babel/helper-plugin-utils" "^7.13.0" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-commonjs@^7.14.0": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.0.tgz#52bc199cb581e0992edba0f0f80356467587f161" - integrity sha512-EX4QePlsTaRZQmw9BsoPeyh5OCtRGIhwfLquhxGp5e32w+dyL8htOcDwamlitmNFK6xBZYlygjdye9dbd9rUlQ== - dependencies: - "@babel/helper-module-transforms" "^7.14.0" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-simple-access" "^7.13.12" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-systemjs@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.13.8.tgz#6d066ee2bff3c7b3d60bf28dec169ad993831ae3" - integrity sha512-hwqctPYjhM6cWvVIlOIe27jCIBgHCsdH2xCJVAYQm7V5yTMoilbVMi9f6wKg0rpQAOn6ZG4AOyvCqFF/hUh6+A== - dependencies: - "@babel/helper-hoist-variables" "^7.13.0" - "@babel/helper-module-transforms" "^7.13.0" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-validator-identifier" "^7.12.11" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-umd@^7.14.0": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.0.tgz#2f8179d1bbc9263665ce4a65f305526b2ea8ac34" - integrity sha512-nPZdnWtXXeY7I87UZr9VlsWme3Y0cfFFE41Wbxz4bbaexAjNMInXPFUpRRUJ8NoMm0Cw+zxbqjdPmLhcjfazMw== - dependencies: - "@babel/helper-module-transforms" "^7.14.0" - "@babel/helper-plugin-utils" "^7.13.0" - -"@babel/plugin-transform-named-capturing-groups-regex@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.13.tgz#2213725a5f5bbbe364b50c3ba5998c9599c5c9d9" - integrity sha512-Xsm8P2hr5hAxyYblrfACXpQKdQbx4m2df9/ZZSQ8MAhsadw06+jW7s9zsSw6he+mJZXRlVMyEnVktJo4zjk1WA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.12.13" - -"@babel/plugin-transform-new-target@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.13.tgz#e22d8c3af24b150dd528cbd6e685e799bf1c351c" - integrity sha512-/KY2hbLxrG5GTQ9zzZSc3xWiOy379pIETEhbtzwZcw9rvuaVV4Fqy7BYGYOWZnaoXIQYbbJ0ziXLa/sKcGCYEQ== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-object-super@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz#b4416a2d63b8f7be314f3d349bd55a9c1b5171f7" - integrity sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - "@babel/helper-replace-supers" "^7.12.13" - -"@babel/plugin-transform-parameters@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.2.tgz#e4290f72e0e9e831000d066427c4667098decc31" - integrity sha512-NxoVmA3APNCC1JdMXkdYXuQS+EMdqy0vIwyDHeKHiJKRxmp1qGSdb0JLEIoPRhkx6H/8Qi3RJ3uqOCYw8giy9A== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - -"@babel/plugin-transform-property-literals@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.13.tgz#4e6a9e37864d8f1b3bc0e2dce7bf8857db8b1a81" - integrity sha512-nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-regenerator@^7.13.15": - version "7.13.15" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.13.15.tgz#e5eb28945bf8b6563e7f818945f966a8d2997f39" - integrity sha512-Bk9cOLSz8DiurcMETZ8E2YtIVJbFCPGW28DJWUakmyVWtQSm6Wsf0p4B4BfEr/eL2Nkhe/CICiUiMOCi1TPhuQ== - dependencies: - regenerator-transform "^0.14.2" - -"@babel/plugin-transform-reserved-words@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.13.tgz#7d9988d4f06e0fe697ea1d9803188aa18b472695" - integrity sha512-xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-shorthand-properties@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz#db755732b70c539d504c6390d9ce90fe64aff7ad" - integrity sha512-xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-spread@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.13.0.tgz#84887710e273c1815ace7ae459f6f42a5d31d5fd" - integrity sha512-V6vkiXijjzYeFmQTr3dBxPtZYLPcUfY34DebOU27jIl2M/Y8Egm52Hw82CSjjPqd54GTlJs5x+CR7HeNr24ckg== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" - -"@babel/plugin-transform-sticky-regex@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.13.tgz#760ffd936face73f860ae646fb86ee82f3d06d1f" - integrity sha512-Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-template-literals@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.13.0.tgz#a36049127977ad94438dee7443598d1cefdf409d" - integrity sha512-d67umW6nlfmr1iehCcBv69eSUSySk1EsIS8aTDX4Xo9qajAh6mYtcl4kJrBkGXuxZPEgVr7RVfAvNW6YQkd4Mw== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - -"@babel/plugin-transform-typeof-symbol@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.13.tgz#785dd67a1f2ea579d9c2be722de8c84cb85f5a7f" - integrity sha512-eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-unicode-escapes@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz#840ced3b816d3b5127dd1d12dcedc5dead1a5e74" - integrity sha512-0bHEkdwJ/sN/ikBHfSmOXPypN/beiGqjo+o4/5K+vxEFNPRPdImhviPakMKG4x96l85emoa0Z6cDflsdBusZbw== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-unicode-regex@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.13.tgz#b52521685804e155b1202e83fc188d34bb70f5ac" - integrity sha512-mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/preset-env@^7.7.1": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.14.2.tgz#e80612965da73579c84ad2f963c2359c71524ed5" - integrity sha512-7dD7lVT8GMrE73v4lvDEb85cgcQhdES91BSD7jS/xjC6QY8PnRhux35ac+GCpbiRhp8crexBvZZqnaL6VrY8TQ== - dependencies: - "@babel/compat-data" "^7.14.0" - "@babel/helper-compilation-targets" "^7.13.16" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-validator-option" "^7.12.17" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.13.12" - "@babel/plugin-proposal-async-generator-functions" "^7.14.2" - "@babel/plugin-proposal-class-properties" "^7.13.0" - "@babel/plugin-proposal-class-static-block" "^7.13.11" - "@babel/plugin-proposal-dynamic-import" "^7.14.2" - "@babel/plugin-proposal-export-namespace-from" "^7.14.2" - "@babel/plugin-proposal-json-strings" "^7.14.2" - "@babel/plugin-proposal-logical-assignment-operators" "^7.14.2" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.14.2" - "@babel/plugin-proposal-numeric-separator" "^7.14.2" - "@babel/plugin-proposal-object-rest-spread" "^7.14.2" - "@babel/plugin-proposal-optional-catch-binding" "^7.14.2" - "@babel/plugin-proposal-optional-chaining" "^7.14.2" - "@babel/plugin-proposal-private-methods" "^7.13.0" - "@babel/plugin-proposal-private-property-in-object" "^7.14.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.12.13" - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-class-properties" "^7.12.13" - "@babel/plugin-syntax-class-static-block" "^7.12.13" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-private-property-in-object" "^7.14.0" - "@babel/plugin-syntax-top-level-await" "^7.12.13" - "@babel/plugin-transform-arrow-functions" "^7.13.0" - "@babel/plugin-transform-async-to-generator" "^7.13.0" - "@babel/plugin-transform-block-scoped-functions" "^7.12.13" - "@babel/plugin-transform-block-scoping" "^7.14.2" - "@babel/plugin-transform-classes" "^7.14.2" - "@babel/plugin-transform-computed-properties" "^7.13.0" - "@babel/plugin-transform-destructuring" "^7.13.17" - "@babel/plugin-transform-dotall-regex" "^7.12.13" - "@babel/plugin-transform-duplicate-keys" "^7.12.13" - "@babel/plugin-transform-exponentiation-operator" "^7.12.13" - "@babel/plugin-transform-for-of" "^7.13.0" - "@babel/plugin-transform-function-name" "^7.12.13" - "@babel/plugin-transform-literals" "^7.12.13" - "@babel/plugin-transform-member-expression-literals" "^7.12.13" - "@babel/plugin-transform-modules-amd" "^7.14.2" - "@babel/plugin-transform-modules-commonjs" "^7.14.0" - "@babel/plugin-transform-modules-systemjs" "^7.13.8" - "@babel/plugin-transform-modules-umd" "^7.14.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.12.13" - "@babel/plugin-transform-new-target" "^7.12.13" - "@babel/plugin-transform-object-super" "^7.12.13" - "@babel/plugin-transform-parameters" "^7.14.2" - "@babel/plugin-transform-property-literals" "^7.12.13" - "@babel/plugin-transform-regenerator" "^7.13.15" - "@babel/plugin-transform-reserved-words" "^7.12.13" - "@babel/plugin-transform-shorthand-properties" "^7.12.13" - "@babel/plugin-transform-spread" "^7.13.0" - "@babel/plugin-transform-sticky-regex" "^7.12.13" - "@babel/plugin-transform-template-literals" "^7.13.0" - "@babel/plugin-transform-typeof-symbol" "^7.12.13" - "@babel/plugin-transform-unicode-escapes" "^7.12.13" - "@babel/plugin-transform-unicode-regex" "^7.12.13" - "@babel/preset-modules" "^0.1.4" - "@babel/types" "^7.14.2" - babel-plugin-polyfill-corejs2 "^0.2.0" - babel-plugin-polyfill-corejs3 "^0.2.0" - babel-plugin-polyfill-regenerator "^0.2.0" - core-js-compat "^3.9.0" - semver "^6.3.0" - -"@babel/preset-flow@^7.0.0": - version "7.13.13" - resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.13.13.tgz#a61a1c149b3f77589d795287744393444d5cdd9e" - integrity sha512-MDtwtamMifqq3R2mC7l3A3uFalUb3NH5TIBQWjN/epEPlZktcLq4se3J+ivckKrLMGsR7H9LW8+pYuIUN9tsKg== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-validator-option" "^7.12.17" - "@babel/plugin-transform-flow-strip-types" "^7.13.0" - -"@babel/preset-modules@^0.1.4": - version "0.1.4" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.4.tgz#362f2b68c662842970fdb5e254ffc8fc1c2e415e" - integrity sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" - "@babel/plugin-transform-dotall-regex" "^7.4.4" - "@babel/types" "^7.4.4" - esutils "^2.0.2" - -"@babel/preset-stage-0@^7.0.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/preset-stage-0/-/preset-stage-0-7.8.3.tgz#b6a0eca1a3b72e07f9caf58f998e97568028f6f5" - integrity sha512-+l6FlG1j73t4wh78W41StbcCz0/9a1/y+vxfnjtHl060kSmcgMfGzK9MEkLvrCOXfhp9RCX+d88sm6rOqxEIEQ== - -"@babel/register@^7.7.0": - version "7.13.16" - resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.13.16.tgz#ae3ab0b55c8ec28763877383c454f01521d9a53d" - integrity sha512-dh2t11ysujTwByQjXNgJ48QZ2zcXKQVdV8s0TbeMI0flmtGWCdTwK9tJiACHXPLmncm5+ktNn/diojA45JE4jg== - dependencies: - clone-deep "^4.0.1" - find-cache-dir "^2.0.0" - make-dir "^2.1.0" - pirates "^4.0.0" - source-map-support "^0.5.16" - -"@babel/runtime@^7.15.4": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.16.7.tgz#03ff99f64106588c9c403c6ecb8c3bafbbdff1fa" - integrity sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/runtime@^7.8.4": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.0.tgz#46794bc20b612c5f75e62dd071e24dfd95f1cbe6" - integrity sha512-JELkvo/DlpNdJ7dlyw/eY7E0suy5i5GQH+Vlxaq1nsNJ+H7f4Vtv3jMeCEgRhZZQFXTjldYfQgv2qmM6M1v5wA== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/template@^7.12.13", "@babel/template@^7.3.3", "@babel/template@^7.4.0": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz#530265be8a2589dbb37523844c5bcb55947fb327" - integrity sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA== - dependencies: - "@babel/code-frame" "^7.12.13" - "@babel/parser" "^7.12.13" - "@babel/types" "^7.12.13" - -"@babel/traverse@^7.1.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.13.15", "@babel/traverse@^7.14.0", "@babel/traverse@^7.14.2", "@babel/traverse@^7.4.3": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.2.tgz#9201a8d912723a831c2679c7ebbf2fe1416d765b" - integrity sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA== - dependencies: - "@babel/code-frame" "^7.12.13" - "@babel/generator" "^7.14.2" - "@babel/helper-function-name" "^7.14.2" - "@babel/helper-split-export-declaration" "^7.12.13" - "@babel/parser" "^7.14.2" - "@babel/types" "^7.14.2" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/types@^7.0.0", "@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.13.0", "@babel/types@^7.13.12", "@babel/types@^7.13.16", "@babel/types@^7.14.0", "@babel/types@^7.14.2", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.0", "@babel/types@^7.4.4": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.2.tgz#4208ae003107ef8a057ea8333e56eb64d2f6a2c3" - integrity sha512-SdjAG/3DikRHpUOjxZgnkbR11xUlyDMUFJdvnIgZEE16mqmY0BINMmc4//JMJglEmn6i7sq6p+mGrFWyZ98EEw== - dependencies: - "@babel/helper-validator-identifier" "^7.14.0" - to-fast-properties "^2.0.0" - -"@bcoe/v8-coverage@^0.2.3": - version "0.2.3" - resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" - integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== - -"@cnakazawa/watch@^1.0.3": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" - integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ== - dependencies: - exec-sh "^0.3.2" - minimist "^1.2.0" - -"@ethersproject/abi@5.4.0", "@ethersproject/abi@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.4.0.tgz#a6d63bdb3672f738398846d4279fa6b6c9818242" - integrity sha512-9gU2H+/yK1j2eVMdzm6xvHSnMxk8waIHQGYCZg5uvAyH0rsAzxkModzBSpbAkAuhKFEovC2S9hM4nPuLym8IZw== - dependencies: - "@ethersproject/address" "^5.4.0" - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/constants" "^5.4.0" - "@ethersproject/hash" "^5.4.0" - "@ethersproject/keccak256" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - "@ethersproject/strings" "^5.4.0" - -"@ethersproject/abi@5.5.0", "@ethersproject/abi@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.5.0.tgz#fb52820e22e50b854ff15ce1647cc508d6660613" - integrity sha512-loW7I4AohP5KycATvc0MgujU6JyCHPqHdeoo9z3Nr9xEiNioxa65ccdm1+fsoJhkuhdRtfcL8cfyGamz2AxZ5w== - dependencies: - "@ethersproject/address" "^5.5.0" - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/constants" "^5.5.0" - "@ethersproject/hash" "^5.5.0" - "@ethersproject/keccak256" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/strings" "^5.5.0" - -"@ethersproject/abstract-provider@5.4.1", "@ethersproject/abstract-provider@^5.4.0": - version "5.4.1" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.4.1.tgz#e404309a29f771bd4d28dbafadcaa184668c2a6e" - integrity sha512-3EedfKI3LVpjSKgAxoUaI+gB27frKsxzm+r21w9G60Ugk+3wVLQwhi1LsEJAKNV7WoZc8CIpNrATlL1QFABjtQ== - dependencies: - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/networks" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - "@ethersproject/transactions" "^5.4.0" - "@ethersproject/web" "^5.4.0" - -"@ethersproject/abstract-provider@5.5.1", "@ethersproject/abstract-provider@^5.5.0": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.5.1.tgz#2f1f6e8a3ab7d378d8ad0b5718460f85649710c5" - integrity sha512-m+MA/ful6eKbxpr99xUYeRvLkfnlqzrF8SZ46d/xFB1A7ZVknYc/sXJG0RcufF52Qn2jeFj1hhcoQ7IXjNKUqg== - dependencies: - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/networks" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/transactions" "^5.5.0" - "@ethersproject/web" "^5.5.0" - -"@ethersproject/abstract-signer@5.4.1", "@ethersproject/abstract-signer@^5.4.0": - version "5.4.1" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.4.1.tgz#e4e9abcf4dd4f1ba0db7dff9746a5f78f355ea81" - integrity sha512-SkkFL5HVq1k4/25dM+NWP9MILgohJCgGv5xT5AcRruGz4ILpfHeBtO/y6j+Z3UN/PAjDeb4P7E51Yh8wcGNLGA== - dependencies: - "@ethersproject/abstract-provider" "^5.4.0" - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - -"@ethersproject/abstract-signer@5.5.0", "@ethersproject/abstract-signer@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.5.0.tgz#590ff6693370c60ae376bf1c7ada59eb2a8dd08d" - integrity sha512-lj//7r250MXVLKI7sVarXAbZXbv9P50lgmJQGr2/is82EwEb8r7HrxsmMqAjTsztMYy7ohrIhGMIml+Gx4D3mA== - dependencies: - "@ethersproject/abstract-provider" "^5.5.0" - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - -"@ethersproject/address@5.4.0", "@ethersproject/address@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.4.0.tgz#ba2d00a0f8c4c0854933b963b9a3a9f6eb4a37a3" - integrity sha512-SD0VgOEkcACEG/C6xavlU1Hy3m5DGSXW3CUHkaaEHbAPPsgi0coP5oNPsxau8eTlZOk/bpa/hKeCNoK5IzVI2Q== - dependencies: - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/keccak256" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/rlp" "^5.4.0" - -"@ethersproject/address@5.5.0", "@ethersproject/address@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.5.0.tgz#bcc6f576a553f21f3dd7ba17248f81b473c9c78f" - integrity sha512-l4Nj0eWlTUh6ro5IbPTgbpT4wRbdH5l8CQf7icF7sb/SI3Nhd9Y9HzhonTSTi6CefI0necIw7LJqQPopPLZyWw== - dependencies: - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/keccak256" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/rlp" "^5.5.0" - -"@ethersproject/base64@5.4.0", "@ethersproject/base64@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.4.0.tgz#7252bf65295954c9048c7ca5f43e5c86441b2a9a" - integrity sha512-CjQw6E17QDSSC5jiM9YpF7N1aSCHmYGMt9bWD8PWv6YPMxjsys2/Q8xLrROKI3IWJ7sFfZ8B3flKDTM5wlWuZQ== - dependencies: - "@ethersproject/bytes" "^5.4.0" - -"@ethersproject/base64@5.5.0", "@ethersproject/base64@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.5.0.tgz#881e8544e47ed976930836986e5eb8fab259c090" - integrity sha512-tdayUKhU1ljrlHzEWbStXazDpsx4eg1dBXUSI6+mHlYklOXoXF6lZvw8tnD6oVaWfnMxAgRSKROg3cVKtCcppA== - dependencies: - "@ethersproject/bytes" "^5.5.0" - -"@ethersproject/basex@5.4.0", "@ethersproject/basex@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.4.0.tgz#0a2da0f4e76c504a94f2b21d3161ed9438c7f8a6" - integrity sha512-J07+QCVJ7np2bcpxydFVf/CuYo9mZ7T73Pe7KQY4c1lRlrixMeblauMxHXD0MPwFmUHZIILDNViVkykFBZylbg== - dependencies: - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - -"@ethersproject/basex@5.5.0", "@ethersproject/basex@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.5.0.tgz#e40a53ae6d6b09ab4d977bd037010d4bed21b4d3" - integrity sha512-ZIodwhHpVJ0Y3hUCfUucmxKsWQA5TMnavp5j/UOuDdzZWzJlRmuOjcTMIGgHCYuZmHt36BfiSyQPSRskPxbfaQ== - dependencies: - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - -"@ethersproject/bignumber@5.4.1", "@ethersproject/bignumber@^5.4.0": - version "5.4.1" - resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.4.1.tgz#64399d3b9ae80aa83d483e550ba57ea062c1042d" - integrity sha512-fJhdxqoQNuDOk6epfM7yD6J8Pol4NUCy1vkaGAkuujZm0+lNow//MKu1hLhRiYV4BsOHyBv5/lsTjF+7hWwhJg== - dependencies: - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - bn.js "^4.11.9" - -"@ethersproject/bignumber@5.5.0", "@ethersproject/bignumber@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.5.0.tgz#875b143f04a216f4f8b96245bde942d42d279527" - integrity sha512-6Xytlwvy6Rn3U3gKEc1vP7nR92frHkv6wtVr95LFR3jREXiCPzdWxKQ1cx4JGQBXxcguAwjA8murlYN2TSiEbg== - dependencies: - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - bn.js "^4.11.9" - -"@ethersproject/bytes@5.4.0", "@ethersproject/bytes@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.4.0.tgz#56fa32ce3bf67153756dbaefda921d1d4774404e" - integrity sha512-H60ceqgTHbhzOj4uRc/83SCN9d+BSUnOkrr2intevqdtEMO1JFVZ1XL84OEZV+QjV36OaZYxtnt4lGmxcGsPfA== - dependencies: - "@ethersproject/logger" "^5.4.0" - -"@ethersproject/bytes@5.5.0", "@ethersproject/bytes@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.5.0.tgz#cb11c526de657e7b45d2e0f0246fb3b9d29a601c" - integrity sha512-ABvc7BHWhZU9PNM/tANm/Qx4ostPGadAuQzWTr3doklZOhDlmcBqclrQe/ZXUIj3K8wC28oYeuRa+A37tX9kog== - dependencies: - "@ethersproject/logger" "^5.5.0" - -"@ethersproject/constants@5.4.0", "@ethersproject/constants@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.4.0.tgz#ee0bdcb30bf1b532d2353c977bf2ef1ee117958a" - integrity sha512-tzjn6S7sj9+DIIeKTJLjK9WGN2Tj0P++Z8ONEIlZjyoTkBuODN+0VfhAyYksKi43l1Sx9tX2VlFfzjfmr5Wl3Q== - dependencies: - "@ethersproject/bignumber" "^5.4.0" - -"@ethersproject/constants@5.5.0", "@ethersproject/constants@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.5.0.tgz#d2a2cd7d94bd1d58377d1d66c4f53c9be4d0a45e" - integrity sha512-2MsRRVChkvMWR+GyMGY4N1sAX9Mt3J9KykCsgUFd/1mwS0UH1qw+Bv9k1UJb3X3YJYFco9H20pjSlOIfCG5HYQ== - dependencies: - "@ethersproject/bignumber" "^5.5.0" - -"@ethersproject/contracts@5.4.1": - version "5.4.1" - resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.4.1.tgz#3eb4f35b7fe60a962a75804ada2746494df3e470" - integrity sha512-m+z2ZgPy4pyR15Je//dUaymRUZq5MtDajF6GwFbGAVmKz/RF+DNIPwF0k5qEcL3wPGVqUjFg2/krlCRVTU4T5w== - dependencies: - "@ethersproject/abi" "^5.4.0" - "@ethersproject/abstract-provider" "^5.4.0" - "@ethersproject/abstract-signer" "^5.4.0" - "@ethersproject/address" "^5.4.0" - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/constants" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - "@ethersproject/transactions" "^5.4.0" - -"@ethersproject/contracts@5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.5.0.tgz#b735260d4bd61283a670a82d5275e2a38892c197" - integrity sha512-2viY7NzyvJkh+Ug17v7g3/IJC8HqZBDcOjYARZLdzRxrfGlRgmYgl6xPRKVbEzy1dWKw/iv7chDcS83pg6cLxg== - dependencies: - "@ethersproject/abi" "^5.5.0" - "@ethersproject/abstract-provider" "^5.5.0" - "@ethersproject/abstract-signer" "^5.5.0" - "@ethersproject/address" "^5.5.0" - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/constants" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/transactions" "^5.5.0" - -"@ethersproject/hash@5.4.0", "@ethersproject/hash@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.4.0.tgz#d18a8e927e828e22860a011f39e429d388344ae0" - integrity sha512-xymAM9tmikKgbktOCjW60Z5sdouiIIurkZUr9oW5NOex5uwxrbsYG09kb5bMcNjlVeJD3yPivTNzViIs1GCbqA== - dependencies: - "@ethersproject/abstract-signer" "^5.4.0" - "@ethersproject/address" "^5.4.0" - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/keccak256" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - "@ethersproject/strings" "^5.4.0" - -"@ethersproject/hash@5.5.0", "@ethersproject/hash@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.5.0.tgz#7cee76d08f88d1873574c849e0207dcb32380cc9" - integrity sha512-dnGVpK1WtBjmnp3mUT0PlU2MpapnwWI0PibldQEq1408tQBAbZpPidkWoVVuNMOl/lISO3+4hXZWCL3YV7qzfg== - dependencies: - "@ethersproject/abstract-signer" "^5.5.0" - "@ethersproject/address" "^5.5.0" - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/keccak256" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/strings" "^5.5.0" - -"@ethersproject/hdnode@5.4.0", "@ethersproject/hdnode@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.4.0.tgz#4bc9999b9a12eb5ce80c5faa83114a57e4107cac" - integrity sha512-pKxdS0KAaeVGfZPp1KOiDLB0jba11tG6OP1u11QnYfb7pXn6IZx0xceqWRr6ygke8+Kw74IpOoSi7/DwANhy8Q== - dependencies: - "@ethersproject/abstract-signer" "^5.4.0" - "@ethersproject/basex" "^5.4.0" - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/pbkdf2" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - "@ethersproject/sha2" "^5.4.0" - "@ethersproject/signing-key" "^5.4.0" - "@ethersproject/strings" "^5.4.0" - "@ethersproject/transactions" "^5.4.0" - "@ethersproject/wordlists" "^5.4.0" - -"@ethersproject/hdnode@5.5.0", "@ethersproject/hdnode@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.5.0.tgz#4a04e28f41c546f7c978528ea1575206a200ddf6" - integrity sha512-mcSOo9zeUg1L0CoJH7zmxwUG5ggQHU1UrRf8jyTYy6HxdZV+r0PBoL1bxr+JHIPXRzS6u/UW4mEn43y0tmyF8Q== - dependencies: - "@ethersproject/abstract-signer" "^5.5.0" - "@ethersproject/basex" "^5.5.0" - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/pbkdf2" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/sha2" "^5.5.0" - "@ethersproject/signing-key" "^5.5.0" - "@ethersproject/strings" "^5.5.0" - "@ethersproject/transactions" "^5.5.0" - "@ethersproject/wordlists" "^5.5.0" - -"@ethersproject/json-wallets@5.4.0", "@ethersproject/json-wallets@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.4.0.tgz#2583341cfe313fc9856642e8ace3080154145e95" - integrity sha512-igWcu3fx4aiczrzEHwG1xJZo9l1cFfQOWzTqwRw/xcvxTk58q4f9M7cjh51EKphMHvrJtcezJ1gf1q1AUOfEQQ== - dependencies: - "@ethersproject/abstract-signer" "^5.4.0" - "@ethersproject/address" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/hdnode" "^5.4.0" - "@ethersproject/keccak256" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/pbkdf2" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - "@ethersproject/random" "^5.4.0" - "@ethersproject/strings" "^5.4.0" - "@ethersproject/transactions" "^5.4.0" - aes-js "3.0.0" - scrypt-js "3.0.1" - -"@ethersproject/json-wallets@5.5.0", "@ethersproject/json-wallets@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.5.0.tgz#dd522d4297e15bccc8e1427d247ec8376b60e325" - integrity sha512-9lA21XQnCdcS72xlBn1jfQdj2A1VUxZzOzi9UkNdnokNKke/9Ya2xA9aIK1SC3PQyBDLt4C+dfps7ULpkvKikQ== - dependencies: - "@ethersproject/abstract-signer" "^5.5.0" - "@ethersproject/address" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/hdnode" "^5.5.0" - "@ethersproject/keccak256" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/pbkdf2" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/random" "^5.5.0" - "@ethersproject/strings" "^5.5.0" - "@ethersproject/transactions" "^5.5.0" - aes-js "3.0.0" - scrypt-js "3.0.1" - -"@ethersproject/keccak256@5.4.0", "@ethersproject/keccak256@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.4.0.tgz#7143b8eea4976080241d2bd92e3b1f1bf7025318" - integrity sha512-FBI1plWet+dPUvAzPAeHzRKiPpETQzqSUWR1wXJGHVWi4i8bOSrpC3NwpkPjgeXG7MnugVc1B42VbfnQikyC/A== - dependencies: - "@ethersproject/bytes" "^5.4.0" - js-sha3 "0.5.7" - -"@ethersproject/keccak256@5.5.0", "@ethersproject/keccak256@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.5.0.tgz#e4b1f9d7701da87c564ffe336f86dcee82983492" - integrity sha512-5VoFCTjo2rYbBe1l2f4mccaRFN/4VQEYFwwn04aJV2h7qf4ZvI2wFxUE1XOX+snbwCLRzIeikOqtAoPwMza9kg== - dependencies: - "@ethersproject/bytes" "^5.5.0" - js-sha3 "0.8.0" - -"@ethersproject/logger@5.4.0", "@ethersproject/logger@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.4.0.tgz#f39adadf62ad610c420bcd156fd41270e91b3ca9" - integrity sha512-xYdWGGQ9P2cxBayt64d8LC8aPFJk6yWCawQi/4eJ4+oJdMMjEBMrIcIMZ9AxhwpPVmnBPrsB10PcXGmGAqgUEQ== - -"@ethersproject/logger@5.5.0", "@ethersproject/logger@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.5.0.tgz#0c2caebeff98e10aefa5aef27d7441c7fd18cf5d" - integrity sha512-rIY/6WPm7T8n3qS2vuHTUBPdXHl+rGxWxW5okDfo9J4Z0+gRRZT0msvUdIJkE4/HS29GUMziwGaaKO2bWONBrg== - -"@ethersproject/networks@5.4.2", "@ethersproject/networks@^5.4.0": - version "5.4.2" - resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.4.2.tgz#2247d977626e97e2c3b8ee73cd2457babde0ce35" - integrity sha512-eekOhvJyBnuibfJnhtK46b8HimBc5+4gqpvd1/H9LEl7Q7/qhsIhM81dI9Fcnjpk3jB1aTy6bj0hz3cifhNeYw== - dependencies: - "@ethersproject/logger" "^5.4.0" - -"@ethersproject/networks@5.5.0", "@ethersproject/networks@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.5.0.tgz#babec47cab892c51f8dd652ce7f2e3e14283981a" - integrity sha512-KWfP3xOnJeF89Uf/FCJdV1a2aDJe5XTN2N52p4fcQ34QhDqQFkgQKZ39VGtiqUgHcLI8DfT0l9azC3KFTunqtA== - dependencies: - "@ethersproject/logger" "^5.5.0" - -"@ethersproject/pbkdf2@5.4.0", "@ethersproject/pbkdf2@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.4.0.tgz#ed88782a67fda1594c22d60d0ca911a9d669641c" - integrity sha512-x94aIv6tiA04g6BnazZSLoRXqyusawRyZWlUhKip2jvoLpzJuLb//KtMM6PEovE47pMbW+Qe1uw+68ameJjB7g== - dependencies: - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/sha2" "^5.4.0" - -"@ethersproject/pbkdf2@5.5.0", "@ethersproject/pbkdf2@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.5.0.tgz#e25032cdf02f31505d47afbf9c3e000d95c4a050" - integrity sha512-SaDvQFvXPnz1QGpzr6/HToLifftSXGoXrbpZ6BvoZhmx4bNLHrxDe8MZisuecyOziP1aVEwzC2Hasj+86TgWVg== - dependencies: - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/sha2" "^5.5.0" - -"@ethersproject/properties@5.4.0", "@ethersproject/properties@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.4.0.tgz#38ba20539b44dcc5d5f80c45ad902017dcdbefe7" - integrity sha512-7jczalGVRAJ+XSRvNA6D5sAwT4gavLq3OXPuV/74o3Rd2wuzSL035IMpIMgei4CYyBdialJMrTqkOnzccLHn4A== - dependencies: - "@ethersproject/logger" "^5.4.0" - -"@ethersproject/properties@5.5.0", "@ethersproject/properties@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.5.0.tgz#61f00f2bb83376d2071baab02245f92070c59995" - integrity sha512-l3zRQg3JkD8EL3CPjNK5g7kMx4qSwiR60/uk5IVjd3oq1MZR5qUg40CNOoEJoX5wc3DyY5bt9EbMk86C7x0DNA== - dependencies: - "@ethersproject/logger" "^5.5.0" - -"@ethersproject/providers@5.4.4": - version "5.4.4" - resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.4.4.tgz#6729120317942fc0ab0ecdb35e944ec6bbedb795" - integrity sha512-mQevyXj2X2D3l8p/JGDYFZbODhZjW6On15DnCK4Xc9y6b+P0vqorQC/j46omWSm4cyo7BQ/rgfhXNYmvAfyZoQ== - dependencies: - "@ethersproject/abstract-provider" "^5.4.0" - "@ethersproject/abstract-signer" "^5.4.0" - "@ethersproject/address" "^5.4.0" - "@ethersproject/basex" "^5.4.0" - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/constants" "^5.4.0" - "@ethersproject/hash" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/networks" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - "@ethersproject/random" "^5.4.0" - "@ethersproject/rlp" "^5.4.0" - "@ethersproject/sha2" "^5.4.0" - "@ethersproject/strings" "^5.4.0" - "@ethersproject/transactions" "^5.4.0" - "@ethersproject/web" "^5.4.0" - bech32 "1.1.4" - ws "7.4.6" - -"@ethersproject/providers@5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.5.0.tgz#bc2876a8fe5e0053ed9828b1f3767ae46e43758b" - integrity sha512-xqMbDnS/FPy+J/9mBLKddzyLLAQFjrVff5g00efqxPzcAwXiR+SiCGVy6eJ5iAIirBOATjx7QLhDNPGV+AEQsw== - dependencies: - "@ethersproject/abstract-provider" "^5.5.0" - "@ethersproject/abstract-signer" "^5.5.0" - "@ethersproject/address" "^5.5.0" - "@ethersproject/basex" "^5.5.0" - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/constants" "^5.5.0" - "@ethersproject/hash" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/networks" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/random" "^5.5.0" - "@ethersproject/rlp" "^5.5.0" - "@ethersproject/sha2" "^5.5.0" - "@ethersproject/strings" "^5.5.0" - "@ethersproject/transactions" "^5.5.0" - "@ethersproject/web" "^5.5.0" - bech32 "1.1.4" - ws "7.4.6" - -"@ethersproject/random@5.4.0", "@ethersproject/random@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.4.0.tgz#9cdde60e160d024be39cc16f8de3b9ce39191e16" - integrity sha512-pnpWNQlf0VAZDEOVp1rsYQosmv2o0ITS/PecNw+mS2/btF8eYdspkN0vIXrCMtkX09EAh9bdk8GoXmFXM1eAKw== - dependencies: - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - -"@ethersproject/random@5.5.0", "@ethersproject/random@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.5.0.tgz#305ed9e033ca537735365ac12eed88580b0f81f9" - integrity sha512-egGYZwZ/YIFKMHcoBUo8t3a8Hb/TKYX8BCBoLjudVCZh892welR3jOxgOmb48xznc9bTcMm7Tpwc1gHC1PFNFQ== - dependencies: - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - -"@ethersproject/rlp@5.4.0", "@ethersproject/rlp@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.4.0.tgz#de61afda5ff979454e76d3b3310a6c32ad060931" - integrity sha512-0I7MZKfi+T5+G8atId9QaQKHRvvasM/kqLyAH4XxBCBchAooH2EX5rL9kYZWwcm3awYV+XC7VF6nLhfeQFKVPg== - dependencies: - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - -"@ethersproject/rlp@5.5.0", "@ethersproject/rlp@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.5.0.tgz#530f4f608f9ca9d4f89c24ab95db58ab56ab99a0" - integrity sha512-hLv8XaQ8PTI9g2RHoQGf/WSxBfTB/NudRacbzdxmst5VHAqd1sMibWG7SENzT5Dj3yZ3kJYx+WiRYEcQTAkcYA== - dependencies: - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - -"@ethersproject/sha2@5.4.0", "@ethersproject/sha2@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.4.0.tgz#c9a8db1037014cbc4e9482bd662f86c090440371" - integrity sha512-siheo36r1WD7Cy+bDdE1BJ8y0bDtqXCOxRMzPa4bV1TGt/eTUUt03BHoJNB6reWJD8A30E/pdJ8WFkq+/uz4Gg== - dependencies: - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - hash.js "1.1.7" - -"@ethersproject/sha2@5.5.0", "@ethersproject/sha2@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.5.0.tgz#a40a054c61f98fd9eee99af2c3cc6ff57ec24db7" - integrity sha512-B5UBoglbCiHamRVPLA110J+2uqsifpZaTmid2/7W5rbtYVz6gus6/hSDieIU/6gaKIDcOj12WnOdiymEUHIAOA== - dependencies: - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - hash.js "1.1.7" - -"@ethersproject/signing-key@5.4.0", "@ethersproject/signing-key@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.4.0.tgz#2f05120984e81cf89a3d5f6dec5c68ee0894fbec" - integrity sha512-q8POUeywx6AKg2/jX9qBYZIAmKSB4ubGXdQ88l40hmATj29JnG5pp331nAWwwxPn2Qao4JpWHNZsQN+bPiSW9A== - dependencies: - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - bn.js "^4.11.9" - elliptic "6.5.4" - hash.js "1.1.7" - -"@ethersproject/signing-key@5.5.0", "@ethersproject/signing-key@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.5.0.tgz#2aa37169ce7e01e3e80f2c14325f624c29cedbe0" - integrity sha512-5VmseH7qjtNmDdZBswavhotYbWB0bOwKIlOTSlX14rKn5c11QmJwGt4GHeo7NrL/Ycl7uo9AHvEqs5xZgFBTng== - dependencies: - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - bn.js "^4.11.9" - elliptic "6.5.4" - hash.js "1.1.7" - -"@ethersproject/solidity@5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.4.0.tgz#1305e058ea02dc4891df18b33232b11a14ece9ec" - integrity sha512-XFQTZ7wFSHOhHcV1DpcWj7VXECEiSrBuv7JErJvB9Uo+KfCdc3QtUZV+Vjh/AAaYgezUEKbCtE6Khjm44seevQ== - dependencies: - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/keccak256" "^5.4.0" - "@ethersproject/sha2" "^5.4.0" - "@ethersproject/strings" "^5.4.0" - -"@ethersproject/solidity@5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.5.0.tgz#2662eb3e5da471b85a20531e420054278362f93f" - integrity sha512-9NgZs9LhGMj6aCtHXhtmFQ4AN4sth5HuFXVvAQtzmm0jpSCNOTGtrHZJAeYTh7MBjRR8brylWZxBZR9zDStXbw== - dependencies: - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/keccak256" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/sha2" "^5.5.0" - "@ethersproject/strings" "^5.5.0" - -"@ethersproject/strings@5.4.0", "@ethersproject/strings@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.4.0.tgz#fb12270132dd84b02906a8d895ae7e7fa3d07d9a" - integrity sha512-k/9DkH5UGDhv7aReXLluFG5ExurwtIpUfnDNhQA29w896Dw3i4uDTz01Quaptbks1Uj9kI8wo9tmW73wcIEaWA== - dependencies: - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/constants" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - -"@ethersproject/strings@5.5.0", "@ethersproject/strings@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.5.0.tgz#e6784d00ec6c57710755699003bc747e98c5d549" - integrity sha512-9fy3TtF5LrX/wTrBaT8FGE6TDJyVjOvXynXJz5MT5azq+E6D92zuKNx7i29sWW2FjVOaWjAsiZ1ZWznuduTIIQ== - dependencies: - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/constants" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - -"@ethersproject/transactions@5.4.0", "@ethersproject/transactions@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.4.0.tgz#a159d035179334bd92f340ce0f77e83e9e1522e0" - integrity sha512-s3EjZZt7xa4BkLknJZ98QGoIza94rVjaEed0rzZ/jB9WrIuu/1+tjvYCWzVrystXtDswy7TPBeIepyXwSYa4WQ== - dependencies: - "@ethersproject/address" "^5.4.0" - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/constants" "^5.4.0" - "@ethersproject/keccak256" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - "@ethersproject/rlp" "^5.4.0" - "@ethersproject/signing-key" "^5.4.0" - -"@ethersproject/transactions@5.5.0", "@ethersproject/transactions@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.5.0.tgz#7e9bf72e97bcdf69db34fe0d59e2f4203c7a2908" - integrity sha512-9RZYSKX26KfzEd/1eqvv8pLauCKzDTub0Ko4LfIgaERvRuwyaNV78mJs7cpIgZaDl6RJui4o49lHwwCM0526zA== - dependencies: - "@ethersproject/address" "^5.5.0" - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/constants" "^5.5.0" - "@ethersproject/keccak256" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/rlp" "^5.5.0" - "@ethersproject/signing-key" "^5.5.0" - -"@ethersproject/units@5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.4.0.tgz#d57477a4498b14b88b10396062c8cbbaf20c79fe" - integrity sha512-Z88krX40KCp+JqPCP5oPv5p750g+uU6gopDYRTBGcDvOASh6qhiEYCRatuM/suC4S2XW9Zz90QI35MfSrTIaFg== - dependencies: - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/constants" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - -"@ethersproject/units@5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.5.0.tgz#104d02db5b5dc42cc672cc4587bafb87a95ee45e" - integrity sha512-7+DpjiZk4v6wrikj+TCyWWa9dXLNU73tSTa7n0TSJDxkYbV3Yf1eRh9ToMLlZtuctNYu9RDNNy2USq3AdqSbag== - dependencies: - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/constants" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - -"@ethersproject/wallet@5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.4.0.tgz#fa5b59830b42e9be56eadd45a16a2e0933ad9353" - integrity sha512-wU29majLjM6AjCjpat21mPPviG+EpK7wY1+jzKD0fg3ui5fgedf2zEu1RDgpfIMsfn8fJHJuzM4zXZ2+hSHaSQ== - dependencies: - "@ethersproject/abstract-provider" "^5.4.0" - "@ethersproject/abstract-signer" "^5.4.0" - "@ethersproject/address" "^5.4.0" - "@ethersproject/bignumber" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/hash" "^5.4.0" - "@ethersproject/hdnode" "^5.4.0" - "@ethersproject/json-wallets" "^5.4.0" - "@ethersproject/keccak256" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - "@ethersproject/random" "^5.4.0" - "@ethersproject/signing-key" "^5.4.0" - "@ethersproject/transactions" "^5.4.0" - "@ethersproject/wordlists" "^5.4.0" - -"@ethersproject/wallet@5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.5.0.tgz#322a10527a440ece593980dca6182f17d54eae75" - integrity sha512-Mlu13hIctSYaZmUOo7r2PhNSd8eaMPVXe1wxrz4w4FCE4tDYBywDH+bAR1Xz2ADyXGwqYMwstzTrtUVIsKDO0Q== - dependencies: - "@ethersproject/abstract-provider" "^5.5.0" - "@ethersproject/abstract-signer" "^5.5.0" - "@ethersproject/address" "^5.5.0" - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/hash" "^5.5.0" - "@ethersproject/hdnode" "^5.5.0" - "@ethersproject/json-wallets" "^5.5.0" - "@ethersproject/keccak256" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/random" "^5.5.0" - "@ethersproject/signing-key" "^5.5.0" - "@ethersproject/transactions" "^5.5.0" - "@ethersproject/wordlists" "^5.5.0" - -"@ethersproject/web@5.4.0", "@ethersproject/web@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.4.0.tgz#49fac173b96992334ed36a175538ba07a7413d1f" - integrity sha512-1bUusGmcoRLYgMn6c1BLk1tOKUIFuTg8j+6N8lYlbMpDesnle+i3pGSagGNvwjaiLo4Y5gBibwctpPRmjrh4Og== - dependencies: - "@ethersproject/base64" "^5.4.0" - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - "@ethersproject/strings" "^5.4.0" - -"@ethersproject/web@5.5.0", "@ethersproject/web@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.5.0.tgz#0e5bb21a2b58fb4960a705bfc6522a6acf461e28" - integrity sha512-BEgY0eL5oH4mAo37TNYVrFeHsIXLRxggCRG/ksRIxI2X5uj5IsjGmcNiRN/VirQOlBxcUhCgHhaDLG4m6XAVoA== - dependencies: - "@ethersproject/base64" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/strings" "^5.5.0" - -"@ethersproject/wordlists@5.4.0", "@ethersproject/wordlists@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.4.0.tgz#f34205ec3bbc9e2c49cadaee774cf0b07e7573d7" - integrity sha512-FemEkf6a+EBKEPxlzeVgUaVSodU7G0Na89jqKjmWMlDB0tomoU8RlEMgUvXyqtrg8N4cwpLh8nyRnm1Nay1isA== - dependencies: - "@ethersproject/bytes" "^5.4.0" - "@ethersproject/hash" "^5.4.0" - "@ethersproject/logger" "^5.4.0" - "@ethersproject/properties" "^5.4.0" - "@ethersproject/strings" "^5.4.0" - -"@ethersproject/wordlists@5.5.0", "@ethersproject/wordlists@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.5.0.tgz#aac74963aa43e643638e5172353d931b347d584f" - integrity sha512-bL0UTReWDiaQJJYOC9sh/XcRu/9i2jMrzf8VLRmPKx58ckSlOJiohODkECCO50dtLZHcGU6MLXQ4OOrgBwP77Q== - dependencies: - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/hash" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/strings" "^5.5.0" - -"@grpc/grpc-js@^1.5.5": - version "1.6.7" - resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.6.7.tgz#4c4fa998ff719fe859ac19fe977fdef097bb99aa" - integrity sha512-eBM03pu9hd3VqDQG+kHahiG1x80RGkkqqRb1Pchcwqej/KkAH95gAvKs6laqaHCycYaPK+TKuNQnOz9UXYA8qw== - dependencies: - "@grpc/proto-loader" "^0.6.4" - "@types/node" ">=12.12.47" - -"@grpc/proto-loader@^0.6.4": - version "0.6.4" - resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.6.4.tgz#5438c0d771e92274e77e631babdc14456441cbdc" - integrity sha512-7xvDvW/vJEcmLUltCUGOgWRPM8Oofv0eCFSVMuKqaqWJaXSzmB+m9hiyqe34QofAl4WAzIKUZZlinIF9FOHyTQ== - dependencies: - "@types/long" "^4.0.1" - lodash.camelcase "^4.3.0" - long "^4.0.0" - protobufjs "^6.10.0" - yargs "^16.1.1" - -"@grpc/proto-loader@^0.6.9": - version "0.6.12" - resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.6.12.tgz#459b619b8b9b67794bf0d1cb819653a38c63e164" - integrity sha512-filTVbETFnxb9CyRX98zN18ilChTuf/C5scZ2xyaOTp0EHGq0/ufX8rjqXUcSb1Gpv7eZq4M2jDvbh9BogKnrg== - dependencies: - "@types/long" "^4.0.1" - lodash.camelcase "^4.3.0" - long "^4.0.0" - protobufjs "^6.10.0" - yargs "^16.2.0" - -"@istanbuljs/load-nyc-config@^1.0.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" - integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== - dependencies: - camelcase "^5.3.1" - find-up "^4.1.0" - get-package-type "^0.1.0" - js-yaml "^3.13.1" - resolve-from "^5.0.0" - -"@istanbuljs/schema@^0.1.2": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" - integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== - -"@jest/console@^24.7.1", "@jest/console@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.9.0.tgz#79b1bc06fb74a8cfb01cbdedf945584b1b9707f0" - integrity sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ== - dependencies: - "@jest/source-map" "^24.9.0" - chalk "^2.0.1" - slash "^2.0.0" - -"@jest/console@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-26.6.2.tgz#4e04bc464014358b03ab4937805ee36a0aeb98f2" - integrity sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g== - dependencies: - "@jest/types" "^26.6.2" - "@types/node" "*" - chalk "^4.0.0" - jest-message-util "^26.6.2" - jest-util "^26.6.2" - slash "^3.0.0" - -"@jest/core@^26.6.3": - version "26.6.3" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-26.6.3.tgz#7639fcb3833d748a4656ada54bde193051e45fad" - integrity sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw== - dependencies: - "@jest/console" "^26.6.2" - "@jest/reporters" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/transform" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - exit "^0.1.2" - graceful-fs "^4.2.4" - jest-changed-files "^26.6.2" - jest-config "^26.6.3" - jest-haste-map "^26.6.2" - jest-message-util "^26.6.2" - jest-regex-util "^26.0.0" - jest-resolve "^26.6.2" - jest-resolve-dependencies "^26.6.3" - jest-runner "^26.6.3" - jest-runtime "^26.6.3" - jest-snapshot "^26.6.2" - jest-util "^26.6.2" - jest-validate "^26.6.2" - jest-watcher "^26.6.2" - micromatch "^4.0.2" - p-each-series "^2.1.0" - rimraf "^3.0.0" - slash "^3.0.0" - strip-ansi "^6.0.0" - -"@jest/environment@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-24.9.0.tgz#21e3afa2d65c0586cbd6cbefe208bafade44ab18" - integrity sha512-5A1QluTPhvdIPFYnO3sZC3smkNeXPVELz7ikPbhUj0bQjB07EoE9qtLrem14ZUYWdVayYbsjVwIiL4WBIMV4aQ== - dependencies: - "@jest/fake-timers" "^24.9.0" - "@jest/transform" "^24.9.0" - "@jest/types" "^24.9.0" - jest-mock "^24.9.0" - -"@jest/environment@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-26.6.2.tgz#ba364cc72e221e79cc8f0a99555bf5d7577cf92c" - integrity sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA== - dependencies: - "@jest/fake-timers" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/node" "*" - jest-mock "^26.6.2" - -"@jest/fake-timers@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.9.0.tgz#ba3e6bf0eecd09a636049896434d306636540c93" - integrity sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A== - dependencies: - "@jest/types" "^24.9.0" - jest-message-util "^24.9.0" - jest-mock "^24.9.0" - -"@jest/fake-timers@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-26.6.2.tgz#459c329bcf70cee4af4d7e3f3e67848123535aad" - integrity sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA== - dependencies: - "@jest/types" "^26.6.2" - "@sinonjs/fake-timers" "^6.0.1" - "@types/node" "*" - jest-message-util "^26.6.2" - jest-mock "^26.6.2" - jest-util "^26.6.2" - -"@jest/globals@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-26.6.2.tgz#5b613b78a1aa2655ae908eba638cc96a20df720a" - integrity sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA== - dependencies: - "@jest/environment" "^26.6.2" - "@jest/types" "^26.6.2" - expect "^26.6.2" - -"@jest/reporters@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-26.6.2.tgz#1f518b99637a5f18307bd3ecf9275f6882a667f6" - integrity sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw== - dependencies: - "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/transform" "^26.6.2" - "@jest/types" "^26.6.2" - chalk "^4.0.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.2" - graceful-fs "^4.2.4" - istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^4.0.3" - istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.0.2" - jest-haste-map "^26.6.2" - jest-resolve "^26.6.2" - jest-util "^26.6.2" - jest-worker "^26.6.2" - slash "^3.0.0" - source-map "^0.6.0" - string-length "^4.0.1" - terminal-link "^2.0.0" - v8-to-istanbul "^7.0.0" - optionalDependencies: - node-notifier "^8.0.0" - -"@jest/source-map@^24.3.0", "@jest/source-map@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-24.9.0.tgz#0e263a94430be4b41da683ccc1e6bffe2a191714" - integrity sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg== - dependencies: - callsites "^3.0.0" - graceful-fs "^4.1.15" - source-map "^0.6.0" - -"@jest/source-map@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-26.6.2.tgz#29af5e1e2e324cafccc936f218309f54ab69d535" - integrity sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA== - dependencies: - callsites "^3.0.0" - graceful-fs "^4.2.4" - source-map "^0.6.0" - -"@jest/test-result@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.9.0.tgz#11796e8aa9dbf88ea025757b3152595ad06ba0ca" - integrity sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA== - dependencies: - "@jest/console" "^24.9.0" - "@jest/types" "^24.9.0" - "@types/istanbul-lib-coverage" "^2.0.0" - -"@jest/test-result@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-26.6.2.tgz#55da58b62df134576cc95476efa5f7949e3f5f18" - integrity sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ== - dependencies: - "@jest/console" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/istanbul-lib-coverage" "^2.0.0" - collect-v8-coverage "^1.0.0" - -"@jest/test-sequencer@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-24.9.0.tgz#f8f334f35b625a4f2f355f2fe7e6036dad2e6b31" - integrity sha512-6qqsU4o0kW1dvA95qfNog8v8gkRN9ph6Lz7r96IvZpHdNipP2cBcb07J1Z45mz/VIS01OHJ3pY8T5fUY38tg4A== - dependencies: - "@jest/test-result" "^24.9.0" - jest-haste-map "^24.9.0" - jest-runner "^24.9.0" - jest-runtime "^24.9.0" - -"@jest/test-sequencer@^26.6.3": - version "26.6.3" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz#98e8a45100863886d074205e8ffdc5a7eb582b17" - integrity sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw== - dependencies: - "@jest/test-result" "^26.6.2" - graceful-fs "^4.2.4" - jest-haste-map "^26.6.2" - jest-runner "^26.6.3" - jest-runtime "^26.6.3" - -"@jest/transform@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-24.9.0.tgz#4ae2768b296553fadab09e9ec119543c90b16c56" - integrity sha512-TcQUmyNRxV94S0QpMOnZl0++6RMiqpbH/ZMccFB/amku6Uwvyb1cjYX7xkp5nGNkbX4QPH/FcB6q1HBTHynLmQ== - dependencies: - "@babel/core" "^7.1.0" - "@jest/types" "^24.9.0" - babel-plugin-istanbul "^5.1.0" - chalk "^2.0.1" - convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.1.15" - jest-haste-map "^24.9.0" - jest-regex-util "^24.9.0" - jest-util "^24.9.0" - micromatch "^3.1.10" - pirates "^4.0.1" - realpath-native "^1.1.0" - slash "^2.0.0" - source-map "^0.6.1" - write-file-atomic "2.4.1" - -"@jest/transform@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-26.6.2.tgz#5ac57c5fa1ad17b2aae83e73e45813894dcf2e4b" - integrity sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA== - dependencies: - "@babel/core" "^7.1.0" - "@jest/types" "^26.6.2" - babel-plugin-istanbul "^6.0.0" - chalk "^4.0.0" - convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.2.4" - jest-haste-map "^26.6.2" - jest-regex-util "^26.0.0" - jest-util "^26.6.2" - micromatch "^4.0.2" - pirates "^4.0.1" - slash "^3.0.0" - source-map "^0.6.1" - write-file-atomic "^3.0.0" - -"@jest/types@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.9.0.tgz#63cb26cb7500d069e5a389441a7c6ab5e909fc59" - integrity sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^1.1.1" - "@types/yargs" "^13.0.0" - -"@jest/types@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" - integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^15.0.0" - chalk "^4.0.0" - -"@ledgerhq/cryptoassets@^6.5.0": - version "6.5.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/cryptoassets/-/cryptoassets-6.5.0.tgz#17250c928baa86603739ffcea19fc8de9f7fb860" - integrity sha512-HBmcfb9WTlcsqlzlHfd7nZr49on7ftpWmKXvxZu9DinLS7EZ5ZjgSvmxrx39YCS5yONILBJoA/BSpg1RcCbSjQ== - dependencies: - invariant "2" - -"@ledgerhq/devices@^4.78.0": - version "4.78.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-4.78.0.tgz#149b572f0616096e2bd5eb14ce14d0061c432be6" - integrity sha512-tWKS5WM/UU82czihnVjRwz9SXNTQzWjGJ/7+j/xZ70O86nlnGJ1aaFbs5/WTzfrVKpOKgj1ZoZkAswX67i/JTw== - dependencies: - "@ledgerhq/errors" "^4.78.0" - "@ledgerhq/logs" "^4.72.0" - rxjs "^6.5.3" - -"@ledgerhq/devices@^6.27.1": - version "6.27.1" - resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-6.27.1.tgz#3b13ab1d1ba8201e9e74a08f390560483978c962" - integrity sha512-jX++oy89jtv7Dp2X6gwt3MMkoajel80JFWcdc0HCouwDsV1mVJ3SQdwl/bQU0zd8HI6KebvUP95QTwbQLLK/RQ== - dependencies: - "@ledgerhq/errors" "^6.10.0" - "@ledgerhq/logs" "^6.10.0" - rxjs "6" - semver "^7.3.5" - -"@ledgerhq/devices@^6.3.0": - version "6.3.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-6.3.0.tgz#7ee59614198882311d1805912e368451527d05b2" - integrity sha512-DmVxqMAf3FhkpKjkbBCFVJ5DmesfplujeCLzFwO/zF5VGuwY7xxPqeSxlpusXJkqhEq+DbFzIDRWJYDf7rtXqg== - dependencies: - "@ledgerhq/errors" "^6.2.0" - "@ledgerhq/logs" "^6.2.0" - rxjs "6" - semver "^7.3.5" - -"@ledgerhq/errors@^4.78.0": - version "4.78.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-4.78.0.tgz#23daf3af54d03b1bda3e616002b555da1bdb705a" - integrity sha512-FX6zHZeiNtegBvXabK6M5dJ+8OV8kQGGaGtuXDeK/Ss5EmG4Ltxc6Lnhe8hiHpm9pCHtktOsnUVL7IFBdHhYUg== - -"@ledgerhq/errors@^6.10.0": - version "6.10.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-6.10.0.tgz#dda9127b65f653fbb2f74a55e8f0e550d69de6e4" - integrity sha512-fQFnl2VIXh9Yd41lGjReCeK+Q2hwxQJvLZfqHnKqWapTz68NHOv5QcI0OHuZVNEbv0xhgdLhi5b65kgYeQSUVg== - -"@ledgerhq/errors@^6.2.0": - version "6.2.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-6.2.0.tgz#7dc2b3bf6bdedccdaa1b97dccacfa912c4fc22f8" - integrity sha512-eO03x8HJmG60WtlrMuahigW/rwywFdcGzCnihta/MjkM8BD9A660cKVkyIuheCcpaB7UV/r+QsRl9abHbjjaag== - -"@ledgerhq/hw-app-eth@^6.5.0": - version "6.5.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-app-eth/-/hw-app-eth-6.5.0.tgz#7541d2455660532272d9c61b2e4e33add06255d9" - integrity sha512-2M43aXxVX3xPwmluG/7zXRljSWSMdifi19V2JR5ezjBhpNg+fgrg6cYOkl7nhyrelsCCaRhWmn3+KCNrkFYLOQ== - dependencies: - "@ledgerhq/cryptoassets" "^6.5.0" - "@ledgerhq/errors" "^6.2.0" - "@ledgerhq/hw-transport" "^6.3.0" - "@ledgerhq/logs" "^6.2.0" - axios "^0.21.1" - bignumber.js "^9.0.1" - ethers "^5.4.4" - -"@ledgerhq/hw-transport-http@^4.74.2": - version "4.78.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-http/-/hw-transport-http-4.78.0.tgz#7f69caf99c66bb5d5d13b4c83f105ceb51b4791e" - integrity sha512-fjrPCYdi8+h9YX+XpuSKE2IgWvjI0Sk+cYZKDKdch4lMMDefEXKYwE2Oi8p5aKmTMJgn0zGfJJuRrj9Du6NwIQ== - dependencies: - "@ledgerhq/errors" "^4.78.0" - "@ledgerhq/hw-transport" "^4.78.0" - "@ledgerhq/logs" "^4.72.0" - axios "^0.19.0" - ws "6" - -"@ledgerhq/hw-transport-http@^6.24.1": - version "6.27.1" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-http/-/hw-transport-http-6.27.1.tgz#25c6cf02c4b464fae416d163f9ab4fda7b6198ff" - integrity sha512-494Zk5jvHcasa5xjZW7l5g+QqJqLlZpuV/RvlIWnKHdVdrBWYvG/1VukQfJQPgbK3WHtt/9WhrnJoLI+xv2PrA== - dependencies: - "@ledgerhq/errors" "^6.10.0" - "@ledgerhq/hw-transport" "^6.27.1" - "@ledgerhq/logs" "^6.10.0" - axios "^0.26.1" - ws "8.5.0" - -"@ledgerhq/hw-transport@^4.78.0": - version "4.78.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-4.78.0.tgz#714786658e1f2fbc0569e06e2abf8d15d310d931" - integrity sha512-xQu16OMPQjFYLjqCysij+8sXtdWv2YLxPrB6FoLvEWGTlQ7yL1nUBRQyzyQtWIYqZd4THQowQmzm1VjxuN6SZw== - dependencies: - "@ledgerhq/devices" "^4.78.0" - "@ledgerhq/errors" "^4.78.0" - events "^3.0.0" - -"@ledgerhq/hw-transport@^6.24.1", "@ledgerhq/hw-transport@^6.27.1": - version "6.27.1" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-6.27.1.tgz#88072278f69c279cb6569352acd4ae2fec33ace3" - integrity sha512-hnE4/Fq1YzQI4PA1W0H8tCkI99R3UWDb3pJeZd6/Xs4Qw/q1uiQO+vNLC6KIPPhK0IajUfuI/P2jk0qWcMsuAQ== - dependencies: - "@ledgerhq/devices" "^6.27.1" - "@ledgerhq/errors" "^6.10.0" - events "^3.3.0" - -"@ledgerhq/hw-transport@^6.3.0": - version "6.3.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-6.3.0.tgz#4fc966b1a68c991c0a6b5384841f99c4f8304ce9" - integrity sha512-kdnVrgmxrFtKaRdkoaQBEa02RXgLzEBiooYbxA65BGSJig3PGWDS9LrqNpzLTZM1RQlivd9NLBmfwU2ze4chWA== - dependencies: - "@ledgerhq/devices" "^6.3.0" - "@ledgerhq/errors" "^6.2.0" - events "^3.3.0" - -"@ledgerhq/logs@^4.72.0": - version "4.72.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-4.72.0.tgz#43df23af013ad1135407e5cf33ca6e4c4c7708d5" - integrity sha512-o+TYF8vBcyySRsb2kqBDv/KMeme8a2nwWoG+lAWzbDmWfb2/MrVWYCVYDYvjXdSoI/Cujqy1i0gIDrkdxa9chA== - -"@ledgerhq/logs@^5.50.0": - version "5.50.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-5.50.0.tgz#29c6419e8379d496ab6d0426eadf3c4d100cd186" - integrity sha512-swKHYCOZUGyVt4ge0u8a7AwNcA//h4nx5wIi0sruGye1IJ5Cva0GyK9L2/WdX+kWVTKp92ZiEo1df31lrWGPgA== - -"@ledgerhq/logs@^6.10.0": - version "6.10.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-6.10.0.tgz#c012c1ecc1a0e53d50e6af381618dca5268461c1" - integrity sha512-lLseUPEhSFUXYTKj6q7s2O3s2vW2ebgA11vMAlKodXGf5AFw4zUoEbTz9CoFOC9jS6xY4Qr8BmRnxP/odT4Uuw== - -"@ledgerhq/logs@^6.2.0": - version "6.2.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-6.2.0.tgz#9fb2d6f1811316697f7b3cc14607f6c608912419" - integrity sha512-SLyFyD7ElMhgKWPYedFGCT/ilcbGPgL5hXXYHxOM79Fs5fWi0zaUpt5oGqGMsOAAFaMa9/rbun0pokzPhEFz8A== - -"@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents": - version "2.1.8-no-fsevents" - resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.tgz#da7c3996b8e6e19ebd14d82eaced2313e7769f9b" - integrity sha512-+nb9vWloHNNMFHjGofEam3wopE3m1yuambrrd/fnPc+lFOMB9ROTqQlche9ByFWNkdNqfSgR/kkQtQ8DzEWt2w== - dependencies: - anymatch "^2.0.0" - async-each "^1.0.1" - braces "^2.3.2" - glob-parent "^3.1.0" - inherits "^2.0.3" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^3.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.2.1" - upath "^1.1.1" - -"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" - integrity sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ== - -"@protobufjs/base64@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" - integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== - -"@protobufjs/codegen@^2.0.4": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" - integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== - -"@protobufjs/eventemitter@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" - integrity sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q== - -"@protobufjs/fetch@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" - integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ== - dependencies: - "@protobufjs/aspromise" "^1.1.1" - "@protobufjs/inquire" "^1.1.0" - -"@protobufjs/float@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" - integrity sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ== - -"@protobufjs/inquire@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" - integrity sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q== - -"@protobufjs/path@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" - integrity sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA== - -"@protobufjs/pool@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" - integrity sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw== - -"@protobufjs/utf8@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" - integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== - -"@sinonjs/commons@^1.7.0": - version "1.8.3" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" - integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ== - dependencies: - type-detect "4.0.8" - -"@sinonjs/fake-timers@^6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz#293674fccb3262ac782c7aadfdeca86b10c75c40" - integrity sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA== - dependencies: - "@sinonjs/commons" "^1.7.0" - -"@tootallnate/once@1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" - integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== - -"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.0", "@types/babel__core@^7.1.7": - version "7.1.14" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.14.tgz#faaeefc4185ec71c389f4501ee5ec84b170cc402" - integrity sha512-zGZJzzBUVDo/eV6KgbE0f0ZI7dInEYvo12Rb70uNQDshC3SkRMb67ja0GgRHZgAX3Za6rhaWlvbDO8rrGyAb1g== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - "@types/babel__generator" "*" - "@types/babel__template" "*" - "@types/babel__traverse" "*" - -"@types/babel__generator@*": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.2.tgz#f3d71178e187858f7c45e30380f8f1b7415a12d8" - integrity sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ== - dependencies: - "@babel/types" "^7.0.0" - -"@types/babel__template@*": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.0.tgz#0c888dd70b3ee9eebb6e4f200e809da0076262be" - integrity sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - -"@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": - version "7.11.1" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.11.1.tgz#654f6c4f67568e24c23b367e947098c6206fa639" - integrity sha512-Vs0hm0vPahPMYi9tDjtP66llufgO3ST16WXaSTtDGEl9cewAl3AibmxWw6TINOqHPT9z0uABKAYjT9jNSg4npw== - dependencies: - "@babel/types" "^7.3.0" - -"@types/graceful-fs@^4.1.2": - version "4.1.5" - resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" - integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== - dependencies: - "@types/node" "*" - -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762" - integrity sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw== - -"@types/istanbul-lib-report@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" - integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== - dependencies: - "@types/istanbul-lib-coverage" "*" - -"@types/istanbul-reports@^1.1.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz#e875cc689e47bce549ec81f3df5e6f6f11cfaeb2" - integrity sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw== - dependencies: - "@types/istanbul-lib-coverage" "*" - "@types/istanbul-lib-report" "*" - -"@types/istanbul-reports@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz#508b13aa344fa4976234e75dddcc34925737d821" - integrity sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA== - dependencies: - "@types/istanbul-lib-report" "*" - -"@types/long@^4.0.1": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a" - integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA== - -"@types/node@*", "@types/node@>=12.12.47", "@types/node@>=13.7.0": - version "18.0.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.0.0.tgz#67c7b724e1bcdd7a8821ce0d5ee184d3b4dd525a" - integrity sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA== - -"@types/normalize-package-data@^2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" - integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== - -"@types/prettier@^2.0.0": - version "2.2.3" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.2.3.tgz#ef65165aea2924c9359205bf748865b8881753c0" - integrity sha512-PijRCG/K3s3w1We6ynUKdxEc5AcuuH3NBmMDP8uvKVp6X43UY7NQlTzczakXP3DJR0F4dfNQIGjU2cUeRYs2AA== - -"@types/stack-utils@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e" - integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw== - -"@types/stack-utils@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.0.tgz#7036640b4e21cc2f259ae826ce843d277dad8cff" - integrity sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw== - -"@types/yargs-parser@*": - version "20.2.0" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.0.tgz#dd3e6699ba3237f0348cd085e4698780204842f9" - integrity sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA== - -"@types/yargs@^13.0.0": - version "13.0.11" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.11.tgz#def2f0c93e4bdf2c61d7e34899b17e34be28d3b1" - integrity sha512-NRqD6T4gktUrDi1o1wLH3EKC1o2caCr7/wR87ODcbVITQF106OM3sFN92ysZ++wqelOd1CTzatnOBRDYYG6wGQ== - dependencies: - "@types/yargs-parser" "*" - -"@types/yargs@^15.0.0": - version "15.0.13" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.13.tgz#34f7fec8b389d7f3c1fd08026a5763e072d3c6dc" - integrity sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ== - dependencies: - "@types/yargs-parser" "*" - -"@zondax/zemu@^0.27.4": - version "0.27.4" - resolved "https://registry.yarnpkg.com/@zondax/zemu/-/zemu-0.27.4.tgz#4e306ba76f5c718d901c7948516668e944a6aa1e" - integrity sha512-bbYAW9JJUx+hVBdwkTonu+0q9WkeFQpcGMRUrzS/Gfc6rvhAQ+X9KrGhwGrnxmBuzajt0oXZ50QvoEJHBR9PDA== - dependencies: - "@grpc/grpc-js" "^1.5.5" - "@grpc/proto-loader" "^0.6.9" - "@ledgerhq/hw-transport" "^6.24.1" - "@ledgerhq/hw-transport-http" "^6.24.1" - axios "^0.26.0" - axios-retry "^3.2.0" - dockerode "^3.3.1" - elfy "^1.0.0" - fs-extra "^10.0.0" - get-port "^5.1.1" - path "^0.12.7" - pngjs "^6.0.0" - randomstring "^1.2.1" - rfb2 "^0.2.2" - sleep "^6.3.0" - -abab@^2.0.0, abab@^2.0.3, abab@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" - integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== - -acorn-globals@^4.1.0: - version "4.3.4" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7" - integrity sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A== - dependencies: - acorn "^6.0.1" - acorn-walk "^6.0.1" - -acorn-globals@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" - integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== - dependencies: - acorn "^7.1.1" - acorn-walk "^7.1.1" - -acorn-walk@^6.0.1: - version "6.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c" - integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== - -acorn-walk@^7.1.1: - version "7.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" - integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== - -acorn@^5.5.3: - version "5.7.4" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" - integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== - -acorn@^6.0.1: - version "6.4.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" - integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== - -acorn@^7.1.1: - version "7.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" - integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== - -acorn@^8.2.4: - version "8.2.4" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.2.4.tgz#caba24b08185c3b56e3168e97d15ed17f4d31fd0" - integrity sha512-Ibt84YwBDDA890eDiDCEqcbwvHlBvzzDkU2cGBBDDI1QWT12jTiXIOn2CIw5KK4i6N5Z2HUxwYjzriDyqaqqZg== - -aes-js@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" - integrity sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0= - -agent-base@6: - version "6.0.2" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" - integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== - dependencies: - debug "4" - -ajv@^6.12.3: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ansi-escapes@^4.2.1: - version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== - dependencies: - type-fest "^0.21.3" - -ansi-regex@^4.0.0, ansi-regex@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" - integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== - -ansi-regex@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" - integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== - -ansi-styles@^3.2.0, ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - -anymatch@^3.0.3, anymatch@~3.1.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= - -arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= - -array-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" - integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM= - -array-uniq@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.2.tgz#5fcc373920775723cfd64d65c64bef53bf9eba6d" - integrity sha1-X8w3OSB3VyPP1k1lxkvvU7+eum0= - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= - -asn1@~0.2.0, asn1@~0.2.3: - version "0.2.4" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" - integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= - -async-each@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" - integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== - -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= - -atob@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= - -aws4@^1.8.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" - integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== - -axios-retry@^3.2.0: - version "3.2.4" - resolved "https://registry.yarnpkg.com/axios-retry/-/axios-retry-3.2.4.tgz#f447a53c3456f5bfeca18f20c3a3272207d082ae" - integrity sha512-Co3UXiv4npi6lM963mfnuH90/YFLKWWDmoBYfxkHT5xtkSSWNqK9zdG3fw5/CP/dsoKB5aMMJCsgab+tp1OxLQ== - dependencies: - "@babel/runtime" "^7.15.4" - is-retry-allowed "^2.2.0" - -axios@^0.19.0: - version "0.19.2" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.19.2.tgz#3ea36c5d8818d0d5f8a8a97a6d36b86cdc00cb27" - integrity sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA== - dependencies: - follow-redirects "1.5.10" - -axios@^0.21.1: - version "0.21.1" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8" - integrity sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA== - dependencies: - follow-redirects "^1.10.0" - -axios@^0.26.0, axios@^0.26.1: - version "0.26.1" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.26.1.tgz#1ede41c51fcf51bbbd6fd43669caaa4f0495aaa9" - integrity sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA== - dependencies: - follow-redirects "^1.14.8" - -babel-jest@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.9.0.tgz#3fc327cb8467b89d14d7bc70e315104a783ccd54" - integrity sha512-ntuddfyiN+EhMw58PTNL1ph4C9rECiQXjI4nMMBKBaNjXvqLdkXpPRcMSr4iyBrJg/+wz9brFUD6RhOAT6r4Iw== - dependencies: - "@jest/transform" "^24.9.0" - "@jest/types" "^24.9.0" - "@types/babel__core" "^7.1.0" - babel-plugin-istanbul "^5.1.0" - babel-preset-jest "^24.9.0" - chalk "^2.4.2" - slash "^2.0.0" - -babel-jest@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.6.3.tgz#d87d25cb0037577a0c89f82e5755c5d293c01056" - integrity sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA== - dependencies: - "@jest/transform" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/babel__core" "^7.1.7" - babel-plugin-istanbul "^6.0.0" - babel-preset-jest "^26.6.2" - chalk "^4.0.0" - graceful-fs "^4.2.4" - slash "^3.0.0" - -babel-plugin-dynamic-import-node@^2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" - integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== - dependencies: - object.assign "^4.1.0" - -babel-plugin-istanbul@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz#df4ade83d897a92df069c4d9a25cf2671293c854" - integrity sha512-5LphC0USA8t4i1zCtjbbNb6jJj/9+X6P37Qfirc/70EQ34xKlMW+a1RHGwxGI+SwWpNwZ27HqvzAobeqaXwiZw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - find-up "^3.0.0" - istanbul-lib-instrument "^3.3.0" - test-exclude "^5.2.3" - -babel-plugin-istanbul@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz#e159ccdc9af95e0b570c75b4573b7c34d671d765" - integrity sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@istanbuljs/load-nyc-config" "^1.0.0" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-instrument "^4.0.0" - test-exclude "^6.0.0" - -babel-plugin-jest-hoist@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz#4f837091eb407e01447c8843cbec546d0002d756" - integrity sha512-2EMA2P8Vp7lG0RAzr4HXqtYwacfMErOuv1U3wrvxHX6rD1sV6xS3WXG3r8TRQ2r6w8OhvSdWt+z41hQNwNm3Xw== - dependencies: - "@types/babel__traverse" "^7.0.6" - -babel-plugin-jest-hoist@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz#8185bd030348d254c6d7dd974355e6a28b21e62d" - integrity sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw== - dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.0.0" - "@types/babel__traverse" "^7.0.6" - -babel-plugin-polyfill-corejs2@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.1.tgz#ae2cf6d6f1aa7c0edcf04a25180e8856a6d1184f" - integrity sha512-hXGSPbr6IbjeMyGew+3uGIAkRjBFSOJ9FLDZNOfHuyJZCcoia4nd/72J0bSgvfytcVfUcP/dxEVcUhVJuQRtSw== - dependencies: - "@babel/compat-data" "^7.13.11" - "@babel/helper-define-polyfill-provider" "^0.2.1" - semver "^6.1.1" - -babel-plugin-polyfill-corejs3@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.1.tgz#786f40218040030f0edecfd48e6e59f1ee9bef53" - integrity sha512-WZCqF3DLUhdTD/P381MDJfuP18hdCZ+iqJ+wHtzhWENpsiof284JJ1tMQg1CE+hfCWyG48F7e5gDMk2c3Laz7w== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.2.1" - core-js-compat "^3.9.1" - -babel-plugin-polyfill-regenerator@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.1.tgz#ca9595d7d5f3afefec2d83126148b90db751a091" - integrity sha512-T3bYyL3Sll2EtC94v3f+fA8M28q7YPTOZdB++SRHjvYZTvtd+WorMUq3tDTD4Q7Kjk1LG0gGromslKjcO5p2TA== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.2.1" - -babel-preset-current-node-syntax@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" - integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== - dependencies: - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-bigint" "^7.8.3" - "@babel/plugin-syntax-class-properties" "^7.8.3" - "@babel/plugin-syntax-import-meta" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.8.3" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-top-level-await" "^7.8.3" - -babel-preset-jest@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz#192b521e2217fb1d1f67cf73f70c336650ad3cdc" - integrity sha512-izTUuhE4TMfTRPF92fFwD2QfdXaZW08qvWTFCI51V8rW5x00UuPgc3ajRoWofXOuxjfcOM5zzSYsQS3H8KGCAg== - dependencies: - "@babel/plugin-syntax-object-rest-spread" "^7.0.0" - babel-plugin-jest-hoist "^24.9.0" - -babel-preset-jest@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz#747872b1171df032252426586881d62d31798fee" - integrity sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ== - dependencies: - babel-plugin-jest-hoist "^26.6.2" - babel-preset-current-node-syntax "^1.0.0" - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - -bcrypt-pbkdf@^1.0.0, bcrypt-pbkdf@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= - dependencies: - tweetnacl "^0.14.3" - -bech32@1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" - integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== - -bignumber.js@^9.0.0, bignumber.js@^9.0.1: - version "9.0.1" - resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.1.tgz#8d7ba124c882bfd8e43260c67475518d0689e4e5" - integrity sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA== - -binary-extensions@^1.0.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" - integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== - -binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== - -bindings@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - dependencies: - file-uri-to-path "1.0.0" - -bip32-path@^0.4.2: - version "0.4.2" - resolved "https://registry.yarnpkg.com/bip32-path/-/bip32-path-0.4.2.tgz#5db0416ad6822712f077836e2557b8697c0c7c99" - integrity sha1-XbBBataCJxLwd4NuJVe4aXwMfJk= - -bip66@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/bip66/-/bip66-1.1.5.tgz#01fa8748785ca70955d5011217d1b3139969ca22" - integrity sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI= - dependencies: - safe-buffer "^5.0.1" - -bl@^4.0.3: - version "4.1.0" - resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" - integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== - dependencies: - buffer "^5.5.0" - inherits "^2.0.4" - readable-stream "^3.4.0" - -bn.js@^4.11.8, bn.js@^4.11.9, bn.js@^4.4.0: - version "4.12.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" - integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^2.3.1, braces@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - -braces@^3.0.1, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -brorand@^1.0.1, brorand@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= - -browser-process-hrtime@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" - integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== - -browser-resolve@^1.11.3: - version "1.11.3" - resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" - integrity sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ== - dependencies: - resolve "1.1.7" - -browserify-aes@^1.0.6: - version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserslist@^4.14.5, browserslist@^4.16.6: - version "4.16.6" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2" - integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ== - dependencies: - caniuse-lite "^1.0.30001219" - colorette "^1.2.2" - electron-to-chromium "^1.3.723" - escalade "^3.1.1" - node-releases "^1.1.71" - -bser@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" - integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== - dependencies: - node-int64 "^0.4.0" - -buffer-from@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== - -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= - -buffer@^5.5.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" - -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camelcase@^5.0.0, camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -camelcase@^6.0.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" - integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== - -caniuse-lite@^1.0.30001219: - version "1.0.30001312" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001312.tgz" - integrity sha512-Wiz1Psk2MEK0pX3rUzWaunLTZzqS2JYZFzNKqAiJGiuxIjRPLgV6+VDPOg6lQOUxmDwhTlh198JsTTi8Hzw6aQ== - -capture-exit@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" - integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== - dependencies: - rsvp "^4.8.4" - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= - -chalk@^2.0.0, chalk@^2.0.1, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad" - integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -char-regex@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" - integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== - -chokidar@^3.4.0: - version "3.5.1" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" - integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== - dependencies: - anymatch "~3.1.1" - braces "~3.0.2" - glob-parent "~5.1.0" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.5.0" - optionalDependencies: - fsevents "~2.3.1" - -chownr@^1.1.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" - integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== - -ci-info@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" - integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== - -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -cjs-module-lexer@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz#4186fcca0eae175970aee870b9fe2d6cf8d5655f" - integrity sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw== - -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - -cliui@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" - integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== - dependencies: - string-width "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" - -cliui@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" - integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^6.2.0" - -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" - -clone-deep@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" - integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== - dependencies: - is-plain-object "^2.0.4" - kind-of "^6.0.2" - shallow-clone "^3.0.0" - -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= - -collect-v8-coverage@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" - integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== - -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -colorette@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" - integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== - -combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -commander@^4.0.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" - integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= - -component-emitter@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" - integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== - dependencies: - safe-buffer "~5.1.1" - -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= - -core-js-compat@^3.9.0, core-js-compat@^3.9.1: - version "3.13.0" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.13.0.tgz#a88f5fa81d8e9b15d7f98abc4447a4dfca2a358f" - integrity sha512-jhbI2zpVskgfDC9mGRaDo1gagd0E0i/kYW0+WvibL/rafEHKAHO653hEXIxJHqRlRLITluXtRH3AGTL5qJmifQ== - dependencies: - browserslist "^4.16.6" - semver "7.0.0" - -core-js@^3.7.0: - version "3.13.0" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.13.0.tgz#58ca436bf01d6903aee3d364089868d0d89fe58d" - integrity sha512-iWDbiyha1M5vFwPFmQnvRv+tJzGbFAm6XimJUT0NgHYW3xZEs1SkCAcasWSVFxpI2Xb/V1DDJckq3v90+bQnog== - -core-util-is@1.0.2, core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= - -create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.4: - version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -cross-spawn@^6.0.0: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -cross-spawn@^7.0.0: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0", cssom@~0.3.6: - version "0.3.8" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" - integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== - -cssom@^0.4.4: - version "0.4.4" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" - integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== - -cssstyle@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.4.0.tgz#9d31328229d3c565c61e586b02041a28fccdccf1" - integrity sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA== - dependencies: - cssom "0.3.x" - -cssstyle@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" - integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== - dependencies: - cssom "~0.3.6" - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= - dependencies: - assert-plus "^1.0.0" - -data-urls@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe" - integrity sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ== - dependencies: - abab "^2.0.0" - whatwg-mimetype "^2.2.0" - whatwg-url "^7.0.0" - -data-urls@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" - integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== - dependencies: - abab "^2.0.3" - whatwg-mimetype "^2.3.0" - whatwg-url "^8.0.0" - -debug@4, debug@^4.1.0, debug@^4.1.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" - integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== - dependencies: - ms "2.1.2" - -debug@=3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" - integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== - dependencies: - ms "2.0.0" - -debug@^2.2.0, debug@^2.3.3: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= - -decimal.js@^10.2.1: - version "10.2.1" - resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.2.1.tgz#238ae7b0f0c793d3e3cea410108b35a2c01426a3" - integrity sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw== - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= - -deep-is@~0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" - integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= - -deepmerge@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" - integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== - -define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= - -detect-newline@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" - integrity sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I= - -detect-newline@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" - integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== - -diff-sequences@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.9.0.tgz#5715d6244e2aa65f48bba0bc972db0b0b11e95b5" - integrity sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew== - -diff-sequences@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" - integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== - -docker-modem@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/docker-modem/-/docker-modem-3.0.0.tgz#cb912ad8daed42f858269fb3be6944df281ec12d" - integrity sha512-WwFajJ8I5geZ/dDZ5FDMDA6TBkWa76xWwGIGw8uzUjNUGCN0to83wJ8Oi1AxrJTC0JBn+7fvIxUctnawtlwXeg== - dependencies: - debug "^4.1.1" - readable-stream "^3.5.0" - split-ca "^1.0.1" - ssh2 "^0.8.7" - -dockerode@^3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/dockerode/-/dockerode-3.3.1.tgz#74f66e239e092e7910e2beae6322d35c44b08cdc" - integrity sha512-AS2mr8Lp122aa5n6d99HkuTNdRV1wkkhHwBdcnY6V0+28D3DSYwhxAk85/mM9XwD3RMliTxyr63iuvn5ZblFYQ== - dependencies: - docker-modem "^3.0.0" - tar-fs "~2.0.1" - -domexception@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" - integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug== - dependencies: - webidl-conversions "^4.0.2" - -domexception@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" - integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== - dependencies: - webidl-conversions "^5.0.0" - -drbg.js@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/drbg.js/-/drbg.js-1.0.1.tgz#3e36b6c42b37043823cdbc332d58f31e2445480b" - integrity sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs= - dependencies: - browserify-aes "^1.0.6" - create-hash "^1.1.2" - create-hmac "^1.1.4" - -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - -electron-to-chromium@^1.3.723: - version "1.3.739" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.739.tgz#f07756aa92cabd5a6eec6f491525a64fe62f98b9" - integrity sha512-+LPJVRsN7hGZ9EIUUiWCpO7l4E3qBYHNadazlucBfsXBbccDFNKUBAgzE68FnkWGJPwD/AfKhSzL+G+Iqb8A4A== - -elfy@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/elfy/-/elfy-1.0.0.tgz#7a1c86af7d41e0a568cbb4a3fa5b685648d9efcd" - integrity sha512-4Kp3AA94jC085IJox+qnvrZ3PudqTi4gQNvIoTZfJJ9IqkRuCoqP60vCVYlIg00c5aYusi5Wjh2bf0cHYt+6gQ== - dependencies: - endian-reader "^0.3.0" - -elliptic@6.5.3: - version "6.5.3" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6" - integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw== - dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" - hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" - -elliptic@6.5.4, elliptic@^6.5.2: - version "6.5.4" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" - integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== - dependencies: - bn.js "^4.11.9" - brorand "^1.1.0" - hash.js "^1.0.0" - hmac-drbg "^1.0.1" - inherits "^2.0.4" - minimalistic-assert "^1.0.1" - minimalistic-crypto-utils "^1.0.1" - -emittery@^0.7.1: - version "0.7.2" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.7.2.tgz#25595908e13af0f5674ab419396e2fb394cdfa82" - integrity sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ== - -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -end-of-stream@^1.1.0, end-of-stream@^1.4.1: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -endian-reader@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/endian-reader/-/endian-reader-0.3.0.tgz#84eca436b80aed0d0639c47291338b932efe50a0" - integrity sha1-hOykNrgK7Q0GOcRykTOLky7+UKA= - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -es-abstract@^1.18.0-next.2: - version "1.18.2" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.2.tgz#6eb518b640262e8ddcbd48e0bc8549f82efd48a7" - integrity sha512-byRiNIQXE6HWNySaU6JohoNXzYgbBjztwFnBLUTiJmWXjaU9bSq3urQLUlNLQ292tc+gc07zYZXNZjaOoAX3sw== - dependencies: - call-bind "^1.0.2" - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - get-intrinsic "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.2" - is-callable "^1.2.3" - is-negative-zero "^2.0.1" - is-regex "^1.1.3" - is-string "^1.0.6" - object-inspect "^1.10.3" - object-keys "^1.1.1" - object.assign "^4.1.2" - string.prototype.trimend "^1.0.4" - string.prototype.trimstart "^1.0.4" - unbox-primitive "^1.0.1" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -escape-string-regexp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - -escodegen@^1.9.1: - version "1.14.3" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" - integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== - dependencies: - esprima "^4.0.1" - estraverse "^4.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.6.1" - -escodegen@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" - integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== - dependencies: - esprima "^4.0.1" - estraverse "^5.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.6.1" - -esprima@^4.0.0, esprima@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -estraverse@^4.2.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -estraverse@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" - integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -ethereum-tx-decoder@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ethereum-tx-decoder/-/ethereum-tx-decoder-3.0.0.tgz#7ef704c1b7e228128cdb81d6a3d2ab57a378b90f" - integrity sha512-l+/K/CNAobJjfGs6lO4RrR17KQrwESrGH2GrkASn7MH2FAJRkItFP21Iy2fCOUjy1Y1nBVoTO6w1GPCgVQH2hg== - dependencies: - ethers "^4.0.37" - -ethers@^4.0.37: - version "4.0.48" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-4.0.48.tgz#330c65b8133e112b0613156e57e92d9009d8fbbe" - integrity sha512-sZD5K8H28dOrcidzx9f8KYh8083n5BexIO3+SbE4jK83L85FxtpXZBCQdXb8gkg+7sBqomcLhhkU7UHL+F7I2g== - dependencies: - aes-js "3.0.0" - bn.js "^4.4.0" - elliptic "6.5.3" - hash.js "1.1.3" - js-sha3 "0.5.7" - scrypt-js "2.0.4" - setimmediate "1.0.4" - uuid "2.0.1" - xmlhttprequest "1.8.0" - -ethers@^5.4.4: - version "5.4.5" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.4.5.tgz#cec133b9f5b514dc55e2561ee7aa7218c33affd7" - integrity sha512-PPZ6flOAj230sXEWf/r/It6ZZ5c7EOVWx+PU87Glkbg79OtT7pLE1WgL4MRdwx6iF7HzSOvUUI+8cAmcdzo12w== - dependencies: - "@ethersproject/abi" "5.4.0" - "@ethersproject/abstract-provider" "5.4.1" - "@ethersproject/abstract-signer" "5.4.1" - "@ethersproject/address" "5.4.0" - "@ethersproject/base64" "5.4.0" - "@ethersproject/basex" "5.4.0" - "@ethersproject/bignumber" "5.4.1" - "@ethersproject/bytes" "5.4.0" - "@ethersproject/constants" "5.4.0" - "@ethersproject/contracts" "5.4.1" - "@ethersproject/hash" "5.4.0" - "@ethersproject/hdnode" "5.4.0" - "@ethersproject/json-wallets" "5.4.0" - "@ethersproject/keccak256" "5.4.0" - "@ethersproject/logger" "5.4.0" - "@ethersproject/networks" "5.4.2" - "@ethersproject/pbkdf2" "5.4.0" - "@ethersproject/properties" "5.4.0" - "@ethersproject/providers" "5.4.4" - "@ethersproject/random" "5.4.0" - "@ethersproject/rlp" "5.4.0" - "@ethersproject/sha2" "5.4.0" - "@ethersproject/signing-key" "5.4.0" - "@ethersproject/solidity" "5.4.0" - "@ethersproject/strings" "5.4.0" - "@ethersproject/transactions" "5.4.0" - "@ethersproject/units" "5.4.0" - "@ethersproject/wallet" "5.4.0" - "@ethersproject/web" "5.4.0" - "@ethersproject/wordlists" "5.4.0" - -ethers@^5.5.1: - version "5.5.1" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.5.1.tgz#d3259a95a42557844aa543906c537106c0406fbf" - integrity sha512-RodEvUFZI+EmFcE6bwkuJqpCYHazdzeR1nMzg+YWQSmQEsNtfl1KHGfp/FWZYl48bI/g7cgBeP2IlPthjiVngw== - dependencies: - "@ethersproject/abi" "5.5.0" - "@ethersproject/abstract-provider" "5.5.1" - "@ethersproject/abstract-signer" "5.5.0" - "@ethersproject/address" "5.5.0" - "@ethersproject/base64" "5.5.0" - "@ethersproject/basex" "5.5.0" - "@ethersproject/bignumber" "5.5.0" - "@ethersproject/bytes" "5.5.0" - "@ethersproject/constants" "5.5.0" - "@ethersproject/contracts" "5.5.0" - "@ethersproject/hash" "5.5.0" - "@ethersproject/hdnode" "5.5.0" - "@ethersproject/json-wallets" "5.5.0" - "@ethersproject/keccak256" "5.5.0" - "@ethersproject/logger" "5.5.0" - "@ethersproject/networks" "5.5.0" - "@ethersproject/pbkdf2" "5.5.0" - "@ethersproject/properties" "5.5.0" - "@ethersproject/providers" "5.5.0" - "@ethersproject/random" "5.5.0" - "@ethersproject/rlp" "5.5.0" - "@ethersproject/sha2" "5.5.0" - "@ethersproject/signing-key" "5.5.0" - "@ethersproject/solidity" "5.5.0" - "@ethersproject/strings" "5.5.0" - "@ethersproject/transactions" "5.5.0" - "@ethersproject/units" "5.5.0" - "@ethersproject/wallet" "5.5.0" - "@ethersproject/web" "5.5.0" - "@ethersproject/wordlists" "5.5.0" - -events@^3.0.0, events@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" - integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== - -evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - -exec-sh@^0.3.2: - version "0.3.6" - resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.6.tgz#ff264f9e325519a60cb5e273692943483cca63bc" - integrity sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w== - -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -execa@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" - integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== - dependencies: - cross-spawn "^7.0.0" - get-stream "^5.0.0" - human-signals "^1.1.1" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.0" - onetime "^5.1.0" - signal-exit "^3.0.2" - strip-final-newline "^2.0.0" - -exit@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= - -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -expect@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-24.9.0.tgz#b75165b4817074fa4a157794f46fe9f1ba15b6ca" - integrity sha512-wvVAx8XIol3Z5m9zvZXiyZOQ+sRJqNTIm6sGjdWlaZIeupQGO3WbYI+15D/AmEwZywL6wtJkbAbJtzkOfBuR0Q== - dependencies: - "@jest/types" "^24.9.0" - ansi-styles "^3.2.0" - jest-get-type "^24.9.0" - jest-matcher-utils "^24.9.0" - jest-message-util "^24.9.0" - jest-regex-util "^24.9.0" - -expect@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/expect/-/expect-26.6.2.tgz#c6b996bf26bf3fe18b67b2d0f51fc981ba934417" - integrity sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA== - dependencies: - "@jest/types" "^26.6.2" - ansi-styles "^4.0.0" - jest-get-type "^26.3.0" - jest-matcher-utils "^26.6.2" - jest-message-util "^26.6.2" - jest-regex-util "^26.0.0" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -extend@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= - -extsprintf@^1.2.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" - integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= - -fast-deep-equal@^3.1.1: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-levenshtein@~2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= - -fb-watchman@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" - integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== - dependencies: - bser "2.1.1" - -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -find-cache-dir@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" - integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== - dependencies: - commondir "^1.0.1" - make-dir "^2.0.0" - pkg-dir "^3.0.0" - -find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - -find-up@^4.0.0, find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -flow-bin@^0.112.0: - version "0.112.0" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.112.0.tgz#6a21c31937c4a2f23a750056a364c598a95ea216" - integrity sha512-vdcuKv0UU55vjv0e2EVh1ZxlU+TSNT19SkE+6gT1vYzTKtzYE6dLuAmBIiS3Rg2N9D9HOI6TKSyl53zPtqZLrA== - -follow-redirects@1.5.10: - version "1.5.10" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a" - integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ== - dependencies: - debug "=3.1.0" - -follow-redirects@^1.10.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.1.tgz#d9114ded0a1cfdd334e164e6662ad02bfd91ff43" - integrity sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg== - -follow-redirects@^1.14.8: - version "1.15.0" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.0.tgz#06441868281c86d0dda4ad8bdaead2d02dca89d4" - integrity sha512-aExlJShTV4qOUOL7yF1U5tvLCB0xQuudbf6toyYA0E/acBNw71mvjFTnLaRp50aQaYocMR0a/RMMBIHeZnGyjQ== - -for-each@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" - integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== - dependencies: - is-callable "^1.1.3" - -for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= - -form-data@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" - integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= - dependencies: - map-cache "^0.2.2" - -fs-constants@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" - integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== - -fs-extra@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1" - integrity sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - -fs-readdir-recursive@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" - integrity sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA== - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -fsevents@^1.2.7: - version "1.2.13" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" - integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== - dependencies: - bindings "^1.5.0" - nan "^2.12.1" - -fsevents@^2.1.2, fsevents@~2.3.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -gensync@^1.0.0-beta.2: - version "1.0.0-beta.2" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" - integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== - -get-caller-file@^2.0.1, get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" - integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - -get-package-type@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" - integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== - -get-port@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/get-port/-/get-port-5.1.1.tgz#0469ed07563479de6efb986baf053dcd7d4e3193" - integrity sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ== - -get-stream@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - -get-stream@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" - integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== - dependencies: - pump "^3.0.0" - -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= - dependencies: - assert-plus "^1.0.0" - -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - -glob-parent@~5.1.0: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: - version "7.1.7" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" - integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -google-protobuf@^3.11.0: - version "3.17.1" - resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.17.1.tgz#d5224fe7dc931f1a69cbdc5cb6e3d69ae74da651" - integrity sha512-CHisE5cwd66w6y/K4K7x2N+SSZ0HgPBQwky7lKsj2vr4nXPuXQ2uUZgMF/ctXnd4xHL747Lh8LUgby2nA8gViA== - -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4: - version "4.2.6" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" - integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== - -growly@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" - integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= - -har-validator@~5.1.3: - version "5.1.5" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" - integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== - dependencies: - ajv "^6.12.3" - har-schema "^2.0.0" - -has-bigints@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" - integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-symbols@^1.0.1, has-symbols@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" - integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== - -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hash-base@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" - integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== - dependencies: - inherits "^2.0.4" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -hash.js@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846" - integrity sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.0" - -hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -hmac-drbg@^1.0.0, hmac-drbg@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -hosted-git-info@^2.1.4: - version "2.8.9" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" - integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== - -html-encoding-sniffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" - integrity sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw== - dependencies: - whatwg-encoding "^1.0.1" - -html-encoding-sniffer@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" - integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== - dependencies: - whatwg-encoding "^1.0.5" - -html-escaper@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" - integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== - -http-proxy-agent@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" - integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== - dependencies: - "@tootallnate/once" "1" - agent-base "6" - debug "4" - -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -https-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" - integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== - dependencies: - agent-base "6" - debug "4" - -human-signals@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" - integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== - -iconv-lite@0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -ieee754@^1.1.13: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -import-local@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6" - integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA== - dependencies: - pkg-dir "^4.2.0" - resolve-cwd "^3.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= - -invariant@2, invariant@^2.2.4: - version "2.2.4" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== - dependencies: - loose-envify "^1.0.0" - -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== - dependencies: - kind-of "^6.0.0" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= - -is-bigint@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.2.tgz#ffb381442503235ad245ea89e45b3dbff040ee5a" - integrity sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA== - -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= - dependencies: - binary-extensions "^1.0.0" - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-boolean-object@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.1.tgz#3c0878f035cb821228d350d2e1e36719716a3de8" - integrity sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng== - dependencies: - call-bind "^1.0.2" - -is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - -is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e" - integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== - -is-ci@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" - integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== - dependencies: - ci-info "^2.0.0" - -is-core-module@^2.2.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.4.0.tgz#8e9fc8e15027b011418026e98f0e6f4d86305cc1" - integrity sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A== - dependencies: - has "^1.0.3" - -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== - dependencies: - kind-of "^6.0.0" - -is-date-object@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.4.tgz#550cfcc03afada05eea3dd30981c7b09551f73e5" - integrity sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A== - -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-docker@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" - integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^2.1.0, is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-generator-fn@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" - integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== - -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= - dependencies: - is-extglob "^2.1.0" - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" - integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== - dependencies: - is-extglob "^2.1.1" - -is-negative-zero@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" - integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== - -is-number-object@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.5.tgz#6edfaeed7950cff19afedce9fbfca9ee6dd289eb" - integrity sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw== - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= - dependencies: - kind-of "^3.0.2" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - -is-potential-custom-element-name@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" - integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== - -is-regex@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.3.tgz#d029f9aff6448b93ebbe3f33dac71511fdcbef9f" - integrity sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ== - dependencies: - call-bind "^1.0.2" - has-symbols "^1.0.2" - -is-retry-allowed@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-2.2.0.tgz#88f34cbd236e043e71b6932d09b0c65fb7b4d71d" - integrity sha512-XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg== - -is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= - -is-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" - integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== - -is-string@^1.0.5, is-string@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.6.tgz#3fe5d5992fb0d93404f32584d4b0179a71b54a5f" - integrity sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w== - -is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" - integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== - dependencies: - has-symbols "^1.0.2" - -is-typedarray@^1.0.0, is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= - -is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -is-wsl@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" - integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== - dependencies: - is-docker "^2.0.0" - -isarray@1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= - -istanbul-lib-coverage@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz#675f0ab69503fad4b1d849f736baaca803344f49" - integrity sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA== - -istanbul-lib-coverage@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec" - integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg== - -istanbul-lib-instrument@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz#a5f63d91f0bbc0c3e479ef4c5de027335ec6d630" - integrity sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA== - dependencies: - "@babel/generator" "^7.4.0" - "@babel/parser" "^7.4.3" - "@babel/template" "^7.4.0" - "@babel/traverse" "^7.4.3" - "@babel/types" "^7.4.0" - istanbul-lib-coverage "^2.0.5" - semver "^6.0.0" - -istanbul-lib-instrument@^4.0.0, istanbul-lib-instrument@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" - integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== - dependencies: - "@babel/core" "^7.7.5" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.0.0" - semver "^6.3.0" - -istanbul-lib-report@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" - integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== - dependencies: - istanbul-lib-coverage "^3.0.0" - make-dir "^3.0.0" - supports-color "^7.1.0" - -istanbul-lib-source-maps@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz#75743ce6d96bb86dc7ee4352cf6366a23f0b1ad9" - integrity sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg== - dependencies: - debug "^4.1.1" - istanbul-lib-coverage "^3.0.0" - source-map "^0.6.1" - -istanbul-reports@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.2.tgz#d593210e5000683750cb09fc0644e4b6e27fd53b" - integrity sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw== - dependencies: - html-escaper "^2.0.0" - istanbul-lib-report "^3.0.0" - -jest-changed-files@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-26.6.2.tgz#f6198479e1cc66f22f9ae1e22acaa0b429c042d0" - integrity sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ== - dependencies: - "@jest/types" "^26.6.2" - execa "^4.0.0" - throat "^5.0.0" - -jest-cli@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-26.6.3.tgz#43117cfef24bc4cd691a174a8796a532e135e92a" - integrity sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg== - dependencies: - "@jest/core" "^26.6.3" - "@jest/test-result" "^26.6.2" - "@jest/types" "^26.6.2" - chalk "^4.0.0" - exit "^0.1.2" - graceful-fs "^4.2.4" - import-local "^3.0.2" - is-ci "^2.0.0" - jest-config "^26.6.3" - jest-util "^26.6.2" - jest-validate "^26.6.2" - prompts "^2.0.1" - yargs "^15.4.1" - -jest-config@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-24.9.0.tgz#fb1bbc60c73a46af03590719efa4825e6e4dd1b5" - integrity sha512-RATtQJtVYQrp7fvWg6f5y3pEFj9I+H8sWw4aKxnDZ96mob5i5SD6ZEGWgMLXQ4LE8UurrjbdlLWdUeo+28QpfQ== - dependencies: - "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^24.9.0" - "@jest/types" "^24.9.0" - babel-jest "^24.9.0" - chalk "^2.0.1" - glob "^7.1.1" - jest-environment-jsdom "^24.9.0" - jest-environment-node "^24.9.0" - jest-get-type "^24.9.0" - jest-jasmine2 "^24.9.0" - jest-regex-util "^24.3.0" - jest-resolve "^24.9.0" - jest-util "^24.9.0" - jest-validate "^24.9.0" - micromatch "^3.1.10" - pretty-format "^24.9.0" - realpath-native "^1.1.0" - -jest-config@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-26.6.3.tgz#64f41444eef9eb03dc51d5c53b75c8c71f645349" - integrity sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg== - dependencies: - "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^26.6.3" - "@jest/types" "^26.6.2" - babel-jest "^26.6.3" - chalk "^4.0.0" - deepmerge "^4.2.2" - glob "^7.1.1" - graceful-fs "^4.2.4" - jest-environment-jsdom "^26.6.2" - jest-environment-node "^26.6.2" - jest-get-type "^26.3.0" - jest-jasmine2 "^26.6.3" - jest-regex-util "^26.0.0" - jest-resolve "^26.6.2" - jest-util "^26.6.2" - jest-validate "^26.6.2" - micromatch "^4.0.2" - pretty-format "^26.6.2" - -jest-diff@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.9.0.tgz#931b7d0d5778a1baf7452cb816e325e3724055da" - integrity sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ== - dependencies: - chalk "^2.0.1" - diff-sequences "^24.9.0" - jest-get-type "^24.9.0" - pretty-format "^24.9.0" - -jest-diff@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394" - integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA== - dependencies: - chalk "^4.0.0" - diff-sequences "^26.6.2" - jest-get-type "^26.3.0" - pretty-format "^26.6.2" - -jest-docblock@^24.3.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-24.9.0.tgz#7970201802ba560e1c4092cc25cbedf5af5a8ce2" - integrity sha512-F1DjdpDMJMA1cN6He0FNYNZlo3yYmOtRUnktrT9Q37njYzC5WEaDdmbynIgy0L/IvXvvgsG8OsqhLPXTpfmZAA== - dependencies: - detect-newline "^2.1.0" - -jest-docblock@^26.0.0: - version "26.0.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-26.0.0.tgz#3e2fa20899fc928cb13bd0ff68bd3711a36889b5" - integrity sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w== - dependencies: - detect-newline "^3.0.0" - -jest-each@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-24.9.0.tgz#eb2da602e2a610898dbc5f1f6df3ba86b55f8b05" - integrity sha512-ONi0R4BvW45cw8s2Lrx8YgbeXL1oCQ/wIDwmsM3CqM/nlblNCPmnC3IPQlMbRFZu3wKdQ2U8BqM6lh3LJ5Bsog== - dependencies: - "@jest/types" "^24.9.0" - chalk "^2.0.1" - jest-get-type "^24.9.0" - jest-util "^24.9.0" - pretty-format "^24.9.0" - -jest-each@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-26.6.2.tgz#02526438a77a67401c8a6382dfe5999952c167cb" - integrity sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A== - dependencies: - "@jest/types" "^26.6.2" - chalk "^4.0.0" - jest-get-type "^26.3.0" - jest-util "^26.6.2" - pretty-format "^26.6.2" - -jest-environment-jsdom@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.9.0.tgz#4b0806c7fc94f95edb369a69cc2778eec2b7375b" - integrity sha512-Zv9FV9NBRzLuALXjvRijO2351DRQeLYXtpD4xNvfoVFw21IOKNhZAEUKcbiEtjTkm2GsJ3boMVgkaR7rN8qetA== - dependencies: - "@jest/environment" "^24.9.0" - "@jest/fake-timers" "^24.9.0" - "@jest/types" "^24.9.0" - jest-mock "^24.9.0" - jest-util "^24.9.0" - jsdom "^11.5.1" - -jest-environment-jsdom@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz#78d09fe9cf019a357009b9b7e1f101d23bd1da3e" - integrity sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q== - dependencies: - "@jest/environment" "^26.6.2" - "@jest/fake-timers" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/node" "*" - jest-mock "^26.6.2" - jest-util "^26.6.2" - jsdom "^16.4.0" - -jest-environment-node@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.9.0.tgz#333d2d2796f9687f2aeebf0742b519f33c1cbfd3" - integrity sha512-6d4V2f4nxzIzwendo27Tr0aFm+IXWa0XEUnaH6nU0FMaozxovt+sfRvh4J47wL1OvF83I3SSTu0XK+i4Bqe7uA== - dependencies: - "@jest/environment" "^24.9.0" - "@jest/fake-timers" "^24.9.0" - "@jest/types" "^24.9.0" - jest-mock "^24.9.0" - jest-util "^24.9.0" - -jest-environment-node@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-26.6.2.tgz#824e4c7fb4944646356f11ac75b229b0035f2b0c" - integrity sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag== - dependencies: - "@jest/environment" "^26.6.2" - "@jest/fake-timers" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/node" "*" - jest-mock "^26.6.2" - jest-util "^26.6.2" - -jest-get-type@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.9.0.tgz#1684a0c8a50f2e4901b6644ae861f579eed2ef0e" - integrity sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q== - -jest-get-type@^26.3.0: - version "26.3.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" - integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== - -jest-haste-map@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.9.0.tgz#b38a5d64274934e21fa417ae9a9fbeb77ceaac7d" - integrity sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ== - dependencies: - "@jest/types" "^24.9.0" - anymatch "^2.0.0" - fb-watchman "^2.0.0" - graceful-fs "^4.1.15" - invariant "^2.2.4" - jest-serializer "^24.9.0" - jest-util "^24.9.0" - jest-worker "^24.9.0" - micromatch "^3.1.10" - sane "^4.0.3" - walker "^1.0.7" - optionalDependencies: - fsevents "^1.2.7" - -jest-haste-map@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.6.2.tgz#dd7e60fe7dc0e9f911a23d79c5ff7fb5c2cafeaa" - integrity sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w== - dependencies: - "@jest/types" "^26.6.2" - "@types/graceful-fs" "^4.1.2" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.4" - jest-regex-util "^26.0.0" - jest-serializer "^26.6.2" - jest-util "^26.6.2" - jest-worker "^26.6.2" - micromatch "^4.0.2" - sane "^4.0.3" - walker "^1.0.7" - optionalDependencies: - fsevents "^2.1.2" - -jest-jasmine2@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz#1f7b1bd3242c1774e62acabb3646d96afc3be6a0" - integrity sha512-Cq7vkAgaYKp+PsX+2/JbTarrk0DmNhsEtqBXNwUHkdlbrTBLtMJINADf2mf5FkowNsq8evbPc07/qFO0AdKTzw== - dependencies: - "@babel/traverse" "^7.1.0" - "@jest/environment" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - chalk "^2.0.1" - co "^4.6.0" - expect "^24.9.0" - is-generator-fn "^2.0.0" - jest-each "^24.9.0" - jest-matcher-utils "^24.9.0" - jest-message-util "^24.9.0" - jest-runtime "^24.9.0" - jest-snapshot "^24.9.0" - jest-util "^24.9.0" - pretty-format "^24.9.0" - throat "^4.0.0" - -jest-jasmine2@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz#adc3cf915deacb5212c93b9f3547cd12958f2edd" - integrity sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg== - dependencies: - "@babel/traverse" "^7.1.0" - "@jest/environment" "^26.6.2" - "@jest/source-map" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - expect "^26.6.2" - is-generator-fn "^2.0.0" - jest-each "^26.6.2" - jest-matcher-utils "^26.6.2" - jest-message-util "^26.6.2" - jest-runtime "^26.6.3" - jest-snapshot "^26.6.2" - jest-util "^26.6.2" - pretty-format "^26.6.2" - throat "^5.0.0" - -jest-leak-detector@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz#b665dea7c77100c5c4f7dfcb153b65cf07dcf96a" - integrity sha512-tYkFIDsiKTGwb2FG1w8hX9V0aUb2ot8zY/2nFg087dUageonw1zrLMP4W6zsRO59dPkTSKie+D4rhMuP9nRmrA== - dependencies: - jest-get-type "^24.9.0" - pretty-format "^24.9.0" - -jest-leak-detector@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz#7717cf118b92238f2eba65054c8a0c9c653a91af" - integrity sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg== - dependencies: - jest-get-type "^26.3.0" - pretty-format "^26.6.2" - -jest-matcher-utils@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz#f5b3661d5e628dffe6dd65251dfdae0e87c3a073" - integrity sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA== - dependencies: - chalk "^2.0.1" - jest-diff "^24.9.0" - jest-get-type "^24.9.0" - pretty-format "^24.9.0" - -jest-matcher-utils@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz#8e6fd6e863c8b2d31ac6472eeb237bc595e53e7a" - integrity sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw== - dependencies: - chalk "^4.0.0" - jest-diff "^26.6.2" - jest-get-type "^26.3.0" - pretty-format "^26.6.2" - -jest-message-util@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.9.0.tgz#527f54a1e380f5e202a8d1149b0ec872f43119e3" - integrity sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw== - dependencies: - "@babel/code-frame" "^7.0.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - "@types/stack-utils" "^1.0.1" - chalk "^2.0.1" - micromatch "^3.1.10" - slash "^2.0.0" - stack-utils "^1.0.1" - -jest-message-util@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-26.6.2.tgz#58173744ad6fc0506b5d21150b9be56ef001ca07" - integrity sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA== - dependencies: - "@babel/code-frame" "^7.0.0" - "@jest/types" "^26.6.2" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.4" - micromatch "^4.0.2" - pretty-format "^26.6.2" - slash "^3.0.0" - stack-utils "^2.0.2" - -jest-mock@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.9.0.tgz#c22835541ee379b908673ad51087a2185c13f1c6" - integrity sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w== - dependencies: - "@jest/types" "^24.9.0" - -jest-mock@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-26.6.2.tgz#d6cb712b041ed47fe0d9b6fc3474bc6543feb302" - integrity sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew== - dependencies: - "@jest/types" "^26.6.2" - "@types/node" "*" - -jest-pnp-resolver@^1.2.1, jest-pnp-resolver@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" - integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== - -jest-regex-util@^24.3.0, jest-regex-util@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.9.0.tgz#c13fb3380bde22bf6575432c493ea8fe37965636" - integrity sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA== - -jest-regex-util@^26.0.0: - version "26.0.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28" - integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== - -jest-resolve-dependencies@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz#6680859ee5d22ee5dcd961fe4871f59f4c784fb6" - integrity sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg== - dependencies: - "@jest/types" "^26.6.2" - jest-regex-util "^26.0.0" - jest-snapshot "^26.6.2" - -jest-resolve@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.9.0.tgz#dff04c7687af34c4dd7e524892d9cf77e5d17321" - integrity sha512-TaLeLVL1l08YFZAt3zaPtjiVvyy4oSA6CRe+0AFPPVX3Q/VI0giIWWoAvoS5L96vj9Dqxj4fB5p2qrHCmTU/MQ== - dependencies: - "@jest/types" "^24.9.0" - browser-resolve "^1.11.3" - chalk "^2.0.1" - jest-pnp-resolver "^1.2.1" - realpath-native "^1.1.0" - -jest-resolve@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.6.2.tgz#a3ab1517217f469b504f1b56603c5bb541fbb507" - integrity sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ== - dependencies: - "@jest/types" "^26.6.2" - chalk "^4.0.0" - graceful-fs "^4.2.4" - jest-pnp-resolver "^1.2.2" - jest-util "^26.6.2" - read-pkg-up "^7.0.1" - resolve "^1.18.1" - slash "^3.0.0" - -jest-runner@^24.8.0, jest-runner@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-24.9.0.tgz#574fafdbd54455c2b34b4bdf4365a23857fcdf42" - integrity sha512-KksJQyI3/0mhcfspnxxEOBueGrd5E4vV7ADQLT9ESaCzz02WnbdbKWIf5Mkaucoaj7obQckYPVX6JJhgUcoWWg== - dependencies: - "@jest/console" "^24.7.1" - "@jest/environment" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - chalk "^2.4.2" - exit "^0.1.2" - graceful-fs "^4.1.15" - jest-config "^24.9.0" - jest-docblock "^24.3.0" - jest-haste-map "^24.9.0" - jest-jasmine2 "^24.9.0" - jest-leak-detector "^24.9.0" - jest-message-util "^24.9.0" - jest-resolve "^24.9.0" - jest-runtime "^24.9.0" - jest-util "^24.9.0" - jest-worker "^24.6.0" - source-map-support "^0.5.6" - throat "^4.0.0" - -jest-runner@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-26.6.3.tgz#2d1fed3d46e10f233fd1dbd3bfaa3fe8924be159" - integrity sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ== - dependencies: - "@jest/console" "^26.6.2" - "@jest/environment" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/node" "*" - chalk "^4.0.0" - emittery "^0.7.1" - exit "^0.1.2" - graceful-fs "^4.2.4" - jest-config "^26.6.3" - jest-docblock "^26.0.0" - jest-haste-map "^26.6.2" - jest-leak-detector "^26.6.2" - jest-message-util "^26.6.2" - jest-resolve "^26.6.2" - jest-runtime "^26.6.3" - jest-util "^26.6.2" - jest-worker "^26.6.2" - source-map-support "^0.5.6" - throat "^5.0.0" - -jest-runtime@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.9.0.tgz#9f14583af6a4f7314a6a9d9f0226e1a781c8e4ac" - integrity sha512-8oNqgnmF3v2J6PVRM2Jfuj8oX3syKmaynlDMMKQ4iyzbQzIG6th5ub/lM2bCMTmoTKM3ykcUYI2Pw9xwNtjMnw== - dependencies: - "@jest/console" "^24.7.1" - "@jest/environment" "^24.9.0" - "@jest/source-map" "^24.3.0" - "@jest/transform" "^24.9.0" - "@jest/types" "^24.9.0" - "@types/yargs" "^13.0.0" - chalk "^2.0.1" - exit "^0.1.2" - glob "^7.1.3" - graceful-fs "^4.1.15" - jest-config "^24.9.0" - jest-haste-map "^24.9.0" - jest-message-util "^24.9.0" - jest-mock "^24.9.0" - jest-regex-util "^24.3.0" - jest-resolve "^24.9.0" - jest-snapshot "^24.9.0" - jest-util "^24.9.0" - jest-validate "^24.9.0" - realpath-native "^1.1.0" - slash "^2.0.0" - strip-bom "^3.0.0" - yargs "^13.3.0" - -jest-runtime@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-26.6.3.tgz#4f64efbcfac398331b74b4b3c82d27d401b8fa2b" - integrity sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw== - dependencies: - "@jest/console" "^26.6.2" - "@jest/environment" "^26.6.2" - "@jest/fake-timers" "^26.6.2" - "@jest/globals" "^26.6.2" - "@jest/source-map" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/transform" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/yargs" "^15.0.0" - chalk "^4.0.0" - cjs-module-lexer "^0.6.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.3" - graceful-fs "^4.2.4" - jest-config "^26.6.3" - jest-haste-map "^26.6.2" - jest-message-util "^26.6.2" - jest-mock "^26.6.2" - jest-regex-util "^26.0.0" - jest-resolve "^26.6.2" - jest-snapshot "^26.6.2" - jest-util "^26.6.2" - jest-validate "^26.6.2" - slash "^3.0.0" - strip-bom "^4.0.0" - yargs "^15.4.1" - -jest-serial-runner@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/jest-serial-runner/-/jest-serial-runner-1.1.0.tgz#867fcd3ce0284afdf742a7306a9cbfd998631aaf" - integrity sha512-QSCMVZMYPAB8ALys43sxgVt4R6slizz7wj2rbCQPvczMh/AOImKeRil6T0dqaXQUTT9UXYzq00zb1bdK5uGEVQ== - dependencies: - jest-runner "^24.8.0" - -jest-serializer@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.9.0.tgz#e6d7d7ef96d31e8b9079a714754c5d5c58288e73" - integrity sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ== - -jest-serializer@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.6.2.tgz#d139aafd46957d3a448f3a6cdabe2919ba0742d1" - integrity sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g== - dependencies: - "@types/node" "*" - graceful-fs "^4.2.4" - -jest-snapshot@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.9.0.tgz#ec8e9ca4f2ec0c5c87ae8f925cf97497b0e951ba" - integrity sha512-uI/rszGSs73xCM0l+up7O7a40o90cnrk429LOiK3aeTvfC0HHmldbd81/B7Ix81KSFe1lwkbl7GnBGG4UfuDew== - dependencies: - "@babel/types" "^7.0.0" - "@jest/types" "^24.9.0" - chalk "^2.0.1" - expect "^24.9.0" - jest-diff "^24.9.0" - jest-get-type "^24.9.0" - jest-matcher-utils "^24.9.0" - jest-message-util "^24.9.0" - jest-resolve "^24.9.0" - mkdirp "^0.5.1" - natural-compare "^1.4.0" - pretty-format "^24.9.0" - semver "^6.2.0" - -jest-snapshot@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-26.6.2.tgz#f3b0af1acb223316850bd14e1beea9837fb39c84" - integrity sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og== - dependencies: - "@babel/types" "^7.0.0" - "@jest/types" "^26.6.2" - "@types/babel__traverse" "^7.0.4" - "@types/prettier" "^2.0.0" - chalk "^4.0.0" - expect "^26.6.2" - graceful-fs "^4.2.4" - jest-diff "^26.6.2" - jest-get-type "^26.3.0" - jest-haste-map "^26.6.2" - jest-matcher-utils "^26.6.2" - jest-message-util "^26.6.2" - jest-resolve "^26.6.2" - natural-compare "^1.4.0" - pretty-format "^26.6.2" - semver "^7.3.2" - -jest-util@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-24.9.0.tgz#7396814e48536d2e85a37de3e4c431d7cb140162" - integrity sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg== - dependencies: - "@jest/console" "^24.9.0" - "@jest/fake-timers" "^24.9.0" - "@jest/source-map" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - callsites "^3.0.0" - chalk "^2.0.1" - graceful-fs "^4.1.15" - is-ci "^2.0.0" - mkdirp "^0.5.1" - slash "^2.0.0" - source-map "^0.6.0" - -jest-util@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.6.2.tgz#907535dbe4d5a6cb4c47ac9b926f6af29576cbc1" - integrity sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q== - dependencies: - "@jest/types" "^26.6.2" - "@types/node" "*" - chalk "^4.0.0" - graceful-fs "^4.2.4" - is-ci "^2.0.0" - micromatch "^4.0.2" - -jest-validate@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.9.0.tgz#0775c55360d173cd854e40180756d4ff52def8ab" - integrity sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ== - dependencies: - "@jest/types" "^24.9.0" - camelcase "^5.3.1" - chalk "^2.0.1" - jest-get-type "^24.9.0" - leven "^3.1.0" - pretty-format "^24.9.0" - -jest-validate@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.6.2.tgz#23d380971587150467342911c3d7b4ac57ab20ec" - integrity sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ== - dependencies: - "@jest/types" "^26.6.2" - camelcase "^6.0.0" - chalk "^4.0.0" - jest-get-type "^26.3.0" - leven "^3.1.0" - pretty-format "^26.6.2" - -jest-watcher@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-26.6.2.tgz#a5b683b8f9d68dbcb1d7dae32172d2cca0592975" - integrity sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ== - dependencies: - "@jest/test-result" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - jest-util "^26.6.2" - string-length "^4.0.1" - -jest-worker@^24.6.0, jest-worker@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5" - integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw== - dependencies: - merge-stream "^2.0.0" - supports-color "^6.1.0" - -jest-worker@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" - integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^7.0.0" - -jest@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest/-/jest-26.6.3.tgz#40e8fdbe48f00dfa1f0ce8121ca74b88ac9148ef" - integrity sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q== - dependencies: - "@jest/core" "^26.6.3" - import-local "^3.0.2" - jest-cli "^26.6.3" - -js-sha256@^0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/js-sha256/-/js-sha256-0.9.0.tgz#0b89ac166583e91ef9123644bd3c5334ce9d0966" - integrity sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA== - -js-sha3@0.5.7: - version "0.5.7" - resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.5.7.tgz#0d4ffd8002d5333aabaf4a23eed2f6374c9f28e7" - integrity sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc= - -js-sha3@0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" - integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== - -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= - -jsdom@^11.5.1: - version "11.12.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.12.0.tgz#1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8" - integrity sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw== - dependencies: - abab "^2.0.0" - acorn "^5.5.3" - acorn-globals "^4.1.0" - array-equal "^1.0.0" - cssom ">= 0.3.2 < 0.4.0" - cssstyle "^1.0.0" - data-urls "^1.0.0" - domexception "^1.0.1" - escodegen "^1.9.1" - html-encoding-sniffer "^1.0.2" - left-pad "^1.3.0" - nwsapi "^2.0.7" - parse5 "4.0.0" - pn "^1.1.0" - request "^2.87.0" - request-promise-native "^1.0.5" - sax "^1.2.4" - symbol-tree "^3.2.2" - tough-cookie "^2.3.4" - w3c-hr-time "^1.0.1" - webidl-conversions "^4.0.2" - whatwg-encoding "^1.0.3" - whatwg-mimetype "^2.1.0" - whatwg-url "^6.4.1" - ws "^5.2.0" - xml-name-validator "^3.0.0" - -jsdom@^16.4.0: - version "16.6.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.6.0.tgz#f79b3786682065492a3da6a60a4695da983805ac" - integrity sha512-Ty1vmF4NHJkolaEmdjtxTfSfkdb8Ywarwf63f+F8/mDD1uLSSWDxDuMiZxiPhwunLrn9LOSVItWj4bLYsLN3Dg== - dependencies: - abab "^2.0.5" - acorn "^8.2.4" - acorn-globals "^6.0.0" - cssom "^0.4.4" - cssstyle "^2.3.0" - data-urls "^2.0.0" - decimal.js "^10.2.1" - domexception "^2.0.1" - escodegen "^2.0.0" - form-data "^3.0.0" - html-encoding-sniffer "^2.0.1" - http-proxy-agent "^4.0.1" - https-proxy-agent "^5.0.0" - is-potential-custom-element-name "^1.0.1" - nwsapi "^2.2.0" - parse5 "6.0.1" - saxes "^5.0.1" - symbol-tree "^3.2.4" - tough-cookie "^4.0.0" - w3c-hr-time "^1.0.2" - w3c-xmlserializer "^2.0.0" - webidl-conversions "^6.1.0" - whatwg-encoding "^1.0.5" - whatwg-mimetype "^2.3.0" - whatwg-url "^8.5.0" - ws "^7.4.5" - xml-name-validator "^3.0.0" - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= - -json-parse-better-errors@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - -json-parse-even-better-errors@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= - -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= - -json5@^2.1.2: - version "2.2.0" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" - integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== - dependencies: - minimist "^1.2.5" - -jsonfile@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" - integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== - dependencies: - universalify "^2.0.0" - optionalDependencies: - graceful-fs "^4.1.6" - -jsprim@^1.2.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" - integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.2.3" - verror "1.10.0" - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== - -kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - -kleur@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" - integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== - -left-pad@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" - integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA== - -leven@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" - integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== - -levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -lines-and-columns@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" - integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= - -load-json-file@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" - integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= - dependencies: - graceful-fs "^4.1.2" - parse-json "^4.0.0" - pify "^3.0.0" - strip-bom "^3.0.0" - -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -lodash.camelcase@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" - integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= - -lodash.debounce@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" - integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= - -lodash.sortby@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" - integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= - -lodash@^4.17.19, lodash@^4.7.0: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -long@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" - integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== - -loose-envify@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -make-dir@^2.0.0, make-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" - integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== - dependencies: - pify "^4.0.1" - semver "^5.6.0" - -make-dir@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - -makeerror@1.0.x: - version "1.0.11" - resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" - integrity sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw= - dependencies: - tmpl "1.0.x" - -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= - dependencies: - object-visit "^1.0.0" - -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -micromatch@^3.1.10, micromatch@^3.1.4: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -micromatch@^4.0.2: - version "4.0.4" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" - integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== - dependencies: - braces "^3.0.1" - picomatch "^2.2.3" - -mime-db@1.47.0: - version "1.47.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.47.0.tgz#8cb313e59965d3c05cfbf898915a267af46a335c" - integrity sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw== - -mime-types@^2.1.12, mime-types@~2.1.19: - version "2.1.30" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.30.tgz#6e7be8b4c479825f85ed6326695db73f9305d62d" - integrity sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg== - dependencies: - mime-db "1.47.0" - -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= - -minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - -minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5: - version "1.2.6" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" - integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== - -mixin-deep@^1.2.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" - integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - -mkdirp-classic@^0.5.2: - version "0.5.3" - resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" - integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== - -mkdirp@^0.5.1: - version "0.5.5" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== - dependencies: - minimist "^1.2.5" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -nan@^2.12.1, nan@^2.14.0, nan@^2.14.1: - version "2.14.2" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" - integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== - -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= - -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - -node-int64@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" - integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= - -node-modules-regexp@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" - integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= - -node-notifier@^8.0.0: - version "8.0.2" - resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-8.0.2.tgz#f3167a38ef0d2c8a866a83e318c1ba0efeb702c5" - integrity sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg== - dependencies: - growly "^1.3.0" - is-wsl "^2.2.0" - semver "^7.3.2" - shellwords "^0.1.1" - uuid "^8.3.0" - which "^2.0.2" - -node-releases@^1.1.71: - version "1.1.72" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.72.tgz#14802ab6b1039a79a0c7d662b610a5bbd76eacbe" - integrity sha512-LLUo+PpH3dU6XizX3iVoubUNheF/owjXCZZ5yACDxNnPtgFuludV1ZL3ayK1kVep42Rmm0+R9/Y60NQbZ2bifw== - -normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= - dependencies: - remove-trailing-separator "^1.0.1" - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= - dependencies: - path-key "^2.0.0" - -npm-run-path@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - -nwsapi@^2.0.7, nwsapi@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" - integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== - -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-inspect@^1.10.3: - version "1.10.3" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.10.3.tgz#c2aa7d2d09f50c99375704f7a0adf24c5782d369" - integrity sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw== - -object-keys@^1.0.12, object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= - dependencies: - isobject "^3.0.0" - -object.assign@^4.1.0, object.assign@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" - integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - has-symbols "^1.0.1" - object-keys "^1.1.1" - -object.getownpropertydescriptors@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz#1bd63aeacf0d5d2d2f31b5e393b03a7c601a23f7" - integrity sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.18.0-next.2" - -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= - dependencies: - isobject "^3.0.1" - -once@^1.3.0, once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -onetime@^5.1.0: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -optionator@^0.8.1: - version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" - integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.6" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - word-wrap "~1.2.3" - -p-each-series@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" - integrity sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA== - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= - -p-limit@^2.0.0, p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== - dependencies: - p-limit "^2.0.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - -parse-json@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - -parse5@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" - integrity sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA== - -parse5@6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" - integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== - -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= - -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= - -path-key@^3.0.0, path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-parse@^1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -path-type@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" - integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== - dependencies: - pify "^3.0.0" - -path@^0.12.7: - version "0.12.7" - resolved "https://registry.yarnpkg.com/path/-/path-0.12.7.tgz#d4dc2a506c4ce2197eb481ebfcd5b36c0140b10f" - integrity sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8= - dependencies: - process "^0.11.1" - util "^0.10.3" - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= - -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: - version "2.3.0" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" - integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= - -pify@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - -pirates@^4.0.0, pirates@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" - integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA== - dependencies: - node-modules-regexp "^1.0.0" - -pkg-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" - integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== - dependencies: - find-up "^3.0.0" - -pkg-dir@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - -pn@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" - integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== - -pngjs@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-6.0.0.tgz#ca9e5d2aa48db0228a52c419c3308e87720da821" - integrity sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg== - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= - -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= - -pretty-format@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.9.0.tgz#12fac31b37019a4eea3c11aa9a959eb7628aa7c9" - integrity sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA== - dependencies: - "@jest/types" "^24.9.0" - ansi-regex "^4.0.0" - ansi-styles "^3.2.0" - react-is "^16.8.4" - -pretty-format@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93" - integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== - dependencies: - "@jest/types" "^26.6.2" - ansi-regex "^5.0.0" - ansi-styles "^4.0.0" - react-is "^17.0.1" - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -process@^0.11.1: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= - -prompts@^2.0.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.1.tgz#befd3b1195ba052f9fd2fde8a486c4e82ee77f61" - integrity sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ== - dependencies: - kleur "^3.0.3" - sisteransi "^1.0.5" - -protobufjs@^6.10.0: - version "6.11.3" - resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.3.tgz#637a527205a35caa4f3e2a9a4a13ddffe0e7af74" - integrity sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg== - dependencies: - "@protobufjs/aspromise" "^1.1.2" - "@protobufjs/base64" "^1.1.2" - "@protobufjs/codegen" "^2.0.4" - "@protobufjs/eventemitter" "^1.1.0" - "@protobufjs/fetch" "^1.1.0" - "@protobufjs/float" "^1.0.2" - "@protobufjs/inquire" "^1.1.0" - "@protobufjs/path" "^1.1.2" - "@protobufjs/pool" "^1.1.0" - "@protobufjs/utf8" "^1.1.0" - "@types/long" "^4.0.1" - "@types/node" ">=13.7.0" - long "^4.0.0" - -psl@^1.1.28, psl@^1.1.33: - version "1.8.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" - integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -qs@~6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== - -randombytes@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.3.tgz#674c99760901c3c4112771a31e521dc349cc09ec" - integrity sha1-Z0yZdgkBw8QRJ3GjHlIdw0nMCew= - -randomstring@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/randomstring/-/randomstring-1.2.1.tgz#71cd3cda24ad1b7e0b65286b3aa5c10853019349" - integrity sha512-eMnfell9XuU3jfCx3f4xCaFAt0YMFPZhx9R3PSStmLarDKg5j5vivqKhf/8pvG+VX/YkxsckHK/VPUrKa5V07A== - dependencies: - array-uniq "1.0.2" - randombytes "2.0.3" - -react-is@^16.8.4: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" - integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== - -react-is@^17.0.1: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" - integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== - -read-pkg-up@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-4.0.0.tgz#1b221c6088ba7799601c808f91161c66e58f8978" - integrity sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA== - dependencies: - find-up "^3.0.0" - read-pkg "^3.0.0" - -read-pkg-up@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" - integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== - dependencies: - find-up "^4.1.0" - read-pkg "^5.2.0" - type-fest "^0.8.1" - -read-pkg@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" - integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= - dependencies: - load-json-file "^4.0.0" - normalize-package-data "^2.3.2" - path-type "^3.0.0" - -read-pkg@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" - integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== - dependencies: - "@types/normalize-package-data" "^2.4.0" - normalize-package-data "^2.5.0" - parse-json "^5.0.0" - type-fest "^0.6.0" - -readable-stream@^2.0.2: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.5.0, readable-stream@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readdirp@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" - integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== - dependencies: - graceful-fs "^4.1.11" - micromatch "^3.1.10" - readable-stream "^2.0.2" - -readdirp@~3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" - integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== - dependencies: - picomatch "^2.2.1" - -realpath-native@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.1.0.tgz#2003294fea23fb0672f2476ebe22fcf498a2d65c" - integrity sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA== - dependencies: - util.promisify "^1.0.0" - -regenerate-unicode-properties@^8.2.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" - integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== - dependencies: - regenerate "^1.4.0" - -regenerate@^1.4.0: - version "1.4.2" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" - integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== - -regenerator-runtime@^0.13.4, regenerator-runtime@^0.13.7: - version "0.13.7" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" - integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== - -regenerator-transform@^0.14.2: - version "0.14.5" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4" - integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw== - dependencies: - "@babel/runtime" "^7.8.4" - -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -regexpu-core@^4.7.1: - version "4.7.1" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.1.tgz#2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6" - integrity sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ== - dependencies: - regenerate "^1.4.0" - regenerate-unicode-properties "^8.2.0" - regjsgen "^0.5.1" - regjsparser "^0.6.4" - unicode-match-property-ecmascript "^1.0.4" - unicode-match-property-value-ecmascript "^1.2.0" - -regjsgen@^0.5.1: - version "0.5.2" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" - integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== - -regjsparser@^0.6.4: - version "0.6.9" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.9.tgz#b489eef7c9a2ce43727627011429cf833a7183e6" - integrity sha512-ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ== - dependencies: - jsesc "~0.5.0" - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= - -repeat-element@^1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" - integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== - -repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= - -request-promise-core@1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f" - integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw== - dependencies: - lodash "^4.17.19" - -request-promise-native@^1.0.5: - version "1.0.9" - resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz#e407120526a5efdc9a39b28a5679bf47b9d9dc28" - integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g== - dependencies: - request-promise-core "1.1.4" - stealthy-require "^1.1.1" - tough-cookie "^2.3.3" - -request@^2.87.0: - version "2.88.2" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" - integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - -resolve-cwd@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" - integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== - dependencies: - resolve-from "^5.0.0" - -resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= - -resolve@1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" - integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= - -resolve@^1.10.0, resolve@^1.14.2, resolve@^1.18.1: - version "1.20.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" - integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== - dependencies: - is-core-module "^2.2.0" - path-parse "^1.0.6" - -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== - -rfb2@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/rfb2/-/rfb2-0.2.2.tgz#f9444b8803e6a31848e57911ace562ce0fee5598" - integrity sha512-+Aw0oED0zsoNQYFE3FUsD+a/lm9y8YwdQaERlWHm7G5hey3tiSQGq7tfe5sFAw5fbN7Zms38bVEDxIUAOq3mRw== - -rimraf@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - -rsvp@^4.8.4: - version "4.8.5" - resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" - integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== - -rxjs@6, rxjs@^6.5.3: - version "6.6.7" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" - integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== - dependencies: - tslib "^1.9.0" - -safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= - dependencies: - ret "~0.1.10" - -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -sane@^4.0.3: - version "4.1.0" - resolved "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded" - integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== - dependencies: - "@cnakazawa/watch" "^1.0.3" - anymatch "^2.0.0" - capture-exit "^2.0.0" - exec-sh "^0.3.2" - execa "^1.0.0" - fb-watchman "^2.0.0" - micromatch "^3.1.4" - minimist "^1.1.1" - walker "~1.0.5" - -sax@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== - -saxes@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" - integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== - dependencies: - xmlchars "^2.2.0" - -scrypt-js@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-2.0.4.tgz#32f8c5149f0797672e551c07e230f834b6af5f16" - integrity sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw== - -scrypt-js@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312" - integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== - -secp256k1@^3.7.1: - version "3.8.0" - resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-3.8.0.tgz#28f59f4b01dbee9575f56a47034b7d2e3b3b352d" - integrity sha512-k5ke5avRZbtl9Tqx/SA7CbY3NF6Ro+Sj9cZxezFzuBlLDmyqPiL8hJJ+EmzD8Ig4LUDByHJ3/iPOVoRixs/hmw== - dependencies: - bindings "^1.5.0" - bip66 "^1.1.5" - bn.js "^4.11.8" - create-hash "^1.2.0" - drbg.js "^1.0.1" - elliptic "^6.5.2" - nan "^2.14.0" - safe-buffer "^5.1.2" - -"semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.6.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" - integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== - -semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -semver@^7.3.2, semver@^7.3.5: - version "7.3.5" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" - integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== - dependencies: - lru-cache "^6.0.0" - -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - -set-value@^2.0.0, set-value@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" - integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - -setimmediate@1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.4.tgz#20e81de622d4a02588ce0c8da8973cbcf1d3138f" - integrity sha1-IOgd5iLUoCWIzgyNqJc8vPHTE48= - -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -shallow-clone@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" - integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== - dependencies: - kind-of "^6.0.2" - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= - dependencies: - shebang-regex "^1.0.0" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -shellwords@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" - integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== - -signal-exit@^3.0.0, signal-exit@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" - integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== - -sisteransi@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" - integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== - -slash@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" - integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -sleep@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/sleep/-/sleep-6.3.0.tgz#c524e0e6d8d2e45d3f14e0ba5650fbe45f2ae876" - integrity sha512-+WgYl951qdUlb1iS97UvQ01pkauoBK9ML9I/CMPg41v0Ze4EyMlTgFTDDo32iYj98IYqxIjDMRd+L71lawFfpQ== - dependencies: - nan "^2.14.1" - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - -source-map-resolve@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" - integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== - dependencies: - atob "^2.1.2" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - -source-map-support@^0.5.16, source-map-support@^0.5.6: - version "0.5.19" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" - integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-url@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" - integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== - -source-map@^0.5.0, source-map@^0.5.6: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= - -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -source-map@^0.7.3: - version "0.7.3" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" - integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== - -spdx-correct@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" - integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" - integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== - -spdx-expression-parse@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" - integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.9" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz#8a595135def9592bda69709474f1cbeea7c2467f" - integrity sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ== - -split-ca@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/split-ca/-/split-ca-1.0.1.tgz#6c83aff3692fa61256e0cd197e05e9de157691a6" - integrity sha1-bIOv82kvphJW4M0ZfgXp3hV2kaY= - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== - dependencies: - extend-shallow "^3.0.0" - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= - -ssh2-streams@~0.4.10: - version "0.4.10" - resolved "https://registry.yarnpkg.com/ssh2-streams/-/ssh2-streams-0.4.10.tgz#48ef7e8a0e39d8f2921c30521d56dacb31d23a34" - integrity sha512-8pnlMjvnIZJvmTzUIIA5nT4jr2ZWNNVHwyXfMGdRJbug9TpI3kd99ffglgfSWqujVv/0gxwMsDn9j9RVst8yhQ== - dependencies: - asn1 "~0.2.0" - bcrypt-pbkdf "^1.0.2" - streamsearch "~0.1.2" - -ssh2@^0.8.7: - version "0.8.9" - resolved "https://registry.yarnpkg.com/ssh2/-/ssh2-0.8.9.tgz#54da3a6c4ba3daf0d8477a538a481326091815f3" - integrity sha512-GmoNPxWDMkVpMFa9LVVzQZHF6EW3WKmBwL+4/GeILf2hFmix5Isxm7Amamo8o7bHiU0tC+wXsGcUXOxp8ChPaw== - dependencies: - ssh2-streams "~0.4.10" - -sshpk@^1.7.0: - version "1.16.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" - integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -stack-utils@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.5.tgz#a19b0b01947e0029c8e451d5d61a498f5bb1471b" - integrity sha512-KZiTzuV3CnSnSvgMRrARVCj+Ht7rMbauGDK0LdVFRGyenwdylpajAp4Q0i6SX8rEmbTpMMf6ryq2gb8pPq2WgQ== - dependencies: - escape-string-regexp "^2.0.0" - -stack-utils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.3.tgz#cd5f030126ff116b78ccb3c027fe302713b61277" - integrity sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw== - dependencies: - escape-string-regexp "^2.0.0" - -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -stealthy-require@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" - integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= - -streamsearch@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" - integrity sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo= - -string-length@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" - integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== - dependencies: - char-regex "^1.0.2" - strip-ansi "^6.0.0" - -string-width@^3.0.0, string-width@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - -string-width@^4.1.0, string-width@^4.2.0: - version "4.2.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" - integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.0" - -string.prototype.trimend@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" - integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -string.prototype.trimstart@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" - integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - -strip-ansi@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" - integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== - dependencies: - ansi-regex "^5.0.0" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= - -strip-bom@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" - integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== - -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= - -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" - integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.0.0, supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-hyperlinks@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb" - integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ== - dependencies: - has-flag "^4.0.0" - supports-color "^7.0.0" - -symbol-tree@^3.2.2, symbol-tree@^3.2.4: - version "3.2.4" - resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" - integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== - -tar-fs@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.0.1.tgz#e44086c1c60d31a4f0cf893b1c4e155dabfae9e2" - integrity sha512-6tzWDMeroL87uF/+lin46k+Q+46rAJ0SyPGz7OW7wTgblI273hsBqk2C1j0/xNadNLKDTUL9BukSjB7cwgmlPA== - dependencies: - chownr "^1.1.1" - mkdirp-classic "^0.5.2" - pump "^3.0.0" - tar-stream "^2.0.0" - -tar-stream@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" - integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== - dependencies: - bl "^4.0.3" - end-of-stream "^1.4.1" - fs-constants "^1.0.0" - inherits "^2.0.3" - readable-stream "^3.1.1" - -terminal-link@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" - integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== - dependencies: - ansi-escapes "^4.2.1" - supports-hyperlinks "^2.0.0" - -test-exclude@^5.2.3: - version "5.2.3" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.2.3.tgz#c3d3e1e311eb7ee405e092dac10aefd09091eac0" - integrity sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g== - dependencies: - glob "^7.1.3" - minimatch "^3.0.4" - read-pkg-up "^4.0.0" - require-main-filename "^2.0.0" - -test-exclude@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" - integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== - dependencies: - "@istanbuljs/schema" "^0.1.2" - glob "^7.1.4" - minimatch "^3.0.4" - -throat@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" - integrity sha1-iQN8vJLFarGJJua6TLsgDhVnKmo= - -throat@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" - integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== - -tmpl@1.0.x: - version "1.0.5" - resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" - integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= - -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= - dependencies: - kind-of "^3.0.2" - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -tough-cookie@^2.3.3, tough-cookie@^2.3.4, tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - -tough-cookie@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" - integrity sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg== - dependencies: - psl "^1.1.33" - punycode "^2.1.1" - universalify "^0.1.2" - -tr46@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" - integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= - dependencies: - punycode "^2.1.0" - -tr46@^2.0.2: - version "2.1.0" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.1.0.tgz#fa87aa81ca5d5941da8cbf1f9b749dc969a4e240" - integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw== - dependencies: - punycode "^2.1.1" - -tslib@^1.9.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= - dependencies: - safe-buffer "^5.0.1" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= - -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= - dependencies: - prelude-ls "~1.1.2" - -type-detect@4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" - integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== - -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - -type-fest@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" - integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== - -type-fest@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== - -typedarray-to-buffer@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" - integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== - dependencies: - is-typedarray "^1.0.0" - -unbox-primitive@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" - integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== - dependencies: - function-bind "^1.1.1" - has-bigints "^1.0.1" - has-symbols "^1.0.2" - which-boxed-primitive "^1.0.2" - -unicode-canonical-property-names-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" - integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== - -unicode-match-property-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" - integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== - dependencies: - unicode-canonical-property-names-ecmascript "^1.0.4" - unicode-property-aliases-ecmascript "^1.0.4" - -unicode-match-property-value-ecmascript@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" - integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== - -unicode-property-aliases-ecmascript@^1.0.4: - version "1.1.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" - integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== - -union-value@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" - integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^2.0.1" - -universalify@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -universalify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" - integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== - -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -upath@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" - integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= - -use@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== - -util-deprecate@^1.0.1, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -util.promisify@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.1.1.tgz#77832f57ced2c9478174149cae9b96e9918cd54b" - integrity sha512-/s3UsZUrIfa6xDhr7zZhnE9SLQ5RIXyYfiVnMMyMDzOc8WhWN4Nbh36H842OyurKbCDAesZOJaVyvmSl6fhGQw== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - for-each "^0.3.3" - has-symbols "^1.0.1" - object.getownpropertydescriptors "^2.1.1" - -util@^0.10.3: - version "0.10.4" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" - integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A== - dependencies: - inherits "2.0.3" - -uuid@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.1.tgz#c2a30dedb3e535d72ccf82e343941a50ba8533ac" - integrity sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w= - -uuid@^3.3.2: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - -uuid@^8.3.0: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -v8-to-istanbul@^7.0.0: - version "7.1.2" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz#30898d1a7fa0c84d225a2c1434fb958f290883c1" - integrity sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.1" - convert-source-map "^1.6.0" - source-map "^0.7.3" - -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -w3c-hr-time@^1.0.1, w3c-hr-time@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" - integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== - dependencies: - browser-process-hrtime "^1.0.0" - -w3c-xmlserializer@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" - integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== - dependencies: - xml-name-validator "^3.0.0" - -walker@^1.0.7, walker@~1.0.5: - version "1.0.7" - resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" - integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= - dependencies: - makeerror "1.0.x" - -webidl-conversions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" - integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== - -webidl-conversions@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" - integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== - -webidl-conversions@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" - integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== - -whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3, whatwg-encoding@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" - integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== - dependencies: - iconv-lite "0.4.24" - -whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0, whatwg-mimetype@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" - integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== - -whatwg-url@^6.4.1: - version "6.5.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.5.0.tgz#f2df02bff176fd65070df74ad5ccbb5a199965a8" - integrity sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ== - dependencies: - lodash.sortby "^4.7.0" - tr46 "^1.0.1" - webidl-conversions "^4.0.2" - -whatwg-url@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" - integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== - dependencies: - lodash.sortby "^4.7.0" - tr46 "^1.0.1" - webidl-conversions "^4.0.2" - -whatwg-url@^8.0.0, whatwg-url@^8.5.0: - version "8.5.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.5.0.tgz#7752b8464fc0903fec89aa9846fc9efe07351fd3" - integrity sha512-fy+R77xWv0AiqfLl4nuGUlQ3/6b5uNfQ4WAbGQVMYshCTCCPK9psC1nWh3XHuxGVCtlcDDQPQW1csmmIQo+fwg== - dependencies: - lodash "^4.7.0" - tr46 "^2.0.2" - webidl-conversions "^6.1.0" - -which-boxed-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" - integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== - dependencies: - is-bigint "^1.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" - is-symbol "^1.0.3" - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= - -which@^1.2.9: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - -which@^2.0.1, which@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -word-wrap@~1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== - -wrap-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" - integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== - dependencies: - ansi-styles "^3.2.0" - string-width "^3.0.0" - strip-ansi "^5.0.0" - -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -write-file-atomic@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.1.tgz#d0b05463c188ae804396fd5ab2a370062af87529" - integrity sha512-TGHFeZEZMnv+gBFRfjAcxL5bPHrsGKtnb4qsFAws7/vlh+QfwAaySIw4AXP9ZskTTh5GWu3FLuJhsWVdiJPGvg== - dependencies: - graceful-fs "^4.1.11" - imurmurhash "^0.1.4" - signal-exit "^3.0.2" - -write-file-atomic@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" - integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== - dependencies: - imurmurhash "^0.1.4" - is-typedarray "^1.0.0" - signal-exit "^3.0.2" - typedarray-to-buffer "^3.1.5" - -ws@6: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" - integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== - dependencies: - async-limiter "~1.0.0" - -ws@7.4.6, ws@^7.4.5: - version "7.4.6" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" - integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== - -ws@8.5.0: - version "8.5.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.5.0.tgz#bfb4be96600757fe5382de12c670dab984a1ed4f" - integrity sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg== - -ws@^5.2.0: - version "5.2.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f" - integrity sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA== - dependencies: - async-limiter "~1.0.0" - -xml-name-validator@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" - integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== - -xmlchars@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" - integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== - -xmlhttprequest@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" - integrity sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw= - -y18n@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" - integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yargs-parser@^13.1.2: - version "13.1.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" - integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^18.1.2: - version "18.1.3" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" - integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^20.2.2: - version "20.2.7" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.7.tgz#61df85c113edfb5a7a4e36eb8aa60ef423cbc90a" - integrity sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw== - -yargs@^13.3.0: - version "13.3.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" - integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.2" - -yargs@^15.4.1: - version "15.4.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" - integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== - dependencies: - cliui "^6.0.0" - decamelize "^1.2.0" - find-up "^4.1.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^4.2.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^18.1.2" - -yargs@^16.1.1, yargs@^16.2.0: - version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" From da284a120ae5d4ccc22ccc53a65cbdce91e396e4 Mon Sep 17 00:00:00 2001 From: Charles-Edouard de la Vergne Date: Fri, 5 Apr 2024 20:24:11 +0200 Subject: [PATCH 25/35] Update documentation --- README.md | 274 +++++++++++++++++++++++++++++------------- tests/ragger/usage.md | 92 ++++++++++++++ 2 files changed, 282 insertions(+), 84 deletions(-) create mode 100644 tests/ragger/usage.md diff --git a/README.md b/README.md index 7a71b1a..7cc7fc7 100644 --- a/README.md +++ b/README.md @@ -25,16 +25,15 @@ - [About the project](#about-the-project) - [Documentation](#documentation) - [Plugins](#plugins) -- [Testing](#testing) - - [Requirements](#requirements) - - [Build the applications required by the test suite](#build-the-applications-required-by-the-test-suite) - - [Running all tests](#running-all-tests) - - [With Makefile](#with-makefile) - - [With yarn](#with-yarn) - - [Running a specific test](#running-a-specific-test) - - [Adding tests](#adding-tests) - - [Zemu](#zemu) - - [Update binaries](#update-binaries) +- [Quick start guide](#quick-start-guide) + - [With VSCode](#with-vscode) + - [With a terminal](#with-a-terminal) +- [Compilation and load](#compilation-and-load) + - [Compilation](#compilation) + - [Loading on a physical device](#loading-on-a-physical-device) +- [Tests](#tests) + - [Functional Tests (Ragger based)](#functional-tests-ragger-based) + - [Unit Tests](#unit-tests) - [Contributing](#contributing) @@ -60,94 +59,201 @@ Find the documentations here: - [Plugin guide](https://hackmd.io/300Ukv5gSbCbVcp3cZuwRQ) - [Boilerplate plugin](https://github.com/LedgerHQ/app-plugin-boilerplate) -## Testing +## Quick start guide -Testing is done via the open-source framework [zemu](https://github.com/Zondax/zemu). +### With VSCode -### Requirements +You can quickly setup a convenient environment to build and test your application by using +[Ledger's VSCode developer tools extension](https://marketplace.visualstudio.com/items?itemName=LedgerHQ.ledger-dev-tools) +which leverages the [ledger-app-dev-tools](https://github.com/LedgerHQ/ledger-app-builder/pkgs/container/ledger-app-builder%2Fledger-app-dev-tools) +docker image. -- [nodeJS == 16](https://github.com/nvm-sh/nvm) -- [yarn](https://classic.yarnpkg.com/lang/en/docs/install/#debian-stable) -- [build environment](https://github.com/LedgerHQ/ledger-app-builder/blob/master/Dockerfile) +It will allow you, whether you are developing on macOS, Windows or Linux, +to quickly **build** your apps, **test** them on **Speculos** and **load** them on any supported device. -#### Build the applications required by the test suite +- Install and run [Docker](https://www.docker.com/products/docker-desktop/). +- Make sure you have an X11 server running: + - On Ubuntu Linux, it should be running by default. + - On macOS, install and launch [XQuartz](https://www.xquartz.org/) + (make sure to go to XQuartz > Preferences > Security and check "Allow client connections"). + - On Windows, install and launch [VcXsrv](https://sourceforge.net/projects/vcxsrv/) + (make sure to configure it to disable access control). +- Install [VScode](https://code.visualstudio.com/download) and add [Ledger's extension](https://marketplace.visualstudio.com/items?itemName=LedgerHQ.ledger-dev-tools). +- Open a terminal and clone `app-ethereum` with `git clone git@github.com:LedgerHQ/app-ethereum.git`. +- Open the `app-ethereum` folder with VSCode. +- Use Ledger extension's sidebar menu or open the tasks menu with `ctrl + shift + b` + (`command + shift + b` on a Mac) to conveniently execute actions: + - Build the app for the device model of your choice with `Build`. + - Test your binary on [Speculos](https://github.com/LedgerHQ/speculos) with `Run with Speculos`. + - You can also run functional tests, load the app on a physical device, and more. -1. Add your BOLOS SDKs path to: +> The terminal tab of VSCode will show you what commands the extension runs behind the scene. - `NANOS_SDK` and `NANOX_SDK` +### With a terminal -2. Go to the `tests` folder and run `./build_local_test_elfs.sh` +The [ledger-app-dev-tools](https://github.com/LedgerHQ/ledger-app-builder/pkgs/container/ledger-app-builder%2Fledger-app-dev-tools) +docker image contains all the required tools and libraries to **build**, **test** and **load** an application. - ```sh - cd tests - # This helper script will build the applications required by the test suite and move them at the right place. - yarn install - ./build_local_test_elfs.sh - ``` +You can download it from the ghcr.io docker repository: -### Running all tests - -#### With Makefile - -1. Then you can install and run tests by simply running on the `root` of the repo: - - ```sh - make test - # This will run `make install_tests` and `make run_tests` - ``` - -#### With yarn - -1. Go to the `tests` folder and run: - - ```sh - yarn test - ``` - -### Running a specific test - -1. Go to the `tests` folder and run: - - ```sh - yarn jest --runInBand --detectOpenHandles {YourTestFile} - ``` - -2. For example with the `send test`: - - ```sh - yarn jest --runInBand --detectOpenHandles src/send.test.js - ``` - -### Adding tests - -#### Zemu - -To add tests, copy one of the already existing test files in `tests/src/`. -You then need to adapt the `buffer` and `tx` variables to adapt to the APDU you wish to send. - -- Adapt the expected screen flow. Please create a folder under `tests/snapshots` with the name of the test you're performing. -- Then adapt the `ORIGINAL_SNAPSHOT_PATH_PREFIX` with the name of the folder you just created. -- To create the snapshots, modify the `SNAPSHOT_PATH_PREFIX` and set it to be equal to `ORIGINAL_SNAPSHOT_PATH_PREFIX`. -- Run the tests once, this will create all the snapshots in the folder you created. -- Put back your `SNAPSHOT_PATH_PREFIX` to `snapshots/tmp/`. - -Finally make sure you adapt the expected signature! - -#### Update binaries - -Don't forget to update the binaries in the test folder. To do so, compile with those environment variables: - -```sh -make DEBUG=1 ALLOW_DATA=1 +```shell +sudo docker pull ghcr.io/ledgerhq/ledger-app-builder/ledger-app-dev-tools:latest ``` -Then copy the binary to the `tests/elfs` folder (in this case, compiled with SDK for nanoS): +You can then enter this development environment by executing the following command +from the root directory of the application `git` repository: -```sh -cp bin/app.elf tests/elfs/ethereum_nanos.elf +#### Linux (Ubuntu) + +```shell +sudo docker run --rm -ti --user "$(id -u):$(id -g)" --privileged -v "/dev/bus/usb:/dev/bus/usb" -v "$(realpath .):/app" ghcr.io/ledgerhq/ledger-app-builder/ledger-app-dev-tools:latest ``` -Repeat the operation for a binary compiled with nanoX SDK and change for `ethereum_nanox.elf`. +#### macOS + +```shell +sudo docker run --rm -ti --user "$(id -u):$(id -g)" --privileged -v "$(pwd -P):/app" ghcr.io/ledgerhq/ledger-app-builder/ledger-app-dev-tools:latest +``` + +#### Windows (with PowerShell) + +```shell +docker run --rm -ti --privileged -v "$(Get-Location):/app" ghcr.io/ledgerhq/ledger-app-builder/ledger-app-dev-tools:latest +``` + +The application's code will be available from inside the docker container, +you can proceed to the following compilation steps to build your app. + +## Compilation and load + +To easily setup a development environment for compilation and loading on a physical device, you can use the [VSCode integration](#with-vscode) +whether you are on Linux, macOS or Windows. + +If you prefer using a terminal to perform the steps manually, you can use the guide below. + +### Compilation + +Setup a compilation environment by following the [shell with docker approach](#with-a-terminal). + +From inside the container, use the following command to build the app: + +```shell +make DEBUG=1 # compile optionally with PRINTF +``` + +You can choose which device to compile and load for by setting the `BOLOS_SDK` environment variable to the following values: + +- `BOLOS_SDK=$NANOS_SDK` +- `BOLOS_SDK=$NANOX_SDK` +- `BOLOS_SDK=$NANOSP_SDK` +- `BOLOS_SDK=$STAX_SDK` + +### Loading on a physical device + +This step will vary slightly depending on your platform. + +> Your physical device must be connected, unlocked and the screen showing the dashboard (not inside an application). + +#### Linux (Ubuntu) + +First make sure you have the proper udev rules added on your host. +See [udev-rules](https://github.com/LedgerHQ/udev-rules) + +Then once you have [opened a terminal](#with-a-terminal) in the `app-builder` image and [built the app](#compilation-and-load) +for the device you want, run the following command: + +```shell +# Run this command from the app-builder container terminal. +make load # load the app on a Nano S by default +``` + +[Setting the BOLOS_SDK environment variable](#compilation-and-load) will allow you to load +on whichever supported device you want. + +#### macOS / Windows (with PowerShell) + +> It is assumed you have [Python](https://www.python.org/downloads/) installed on your computer. + +Run these commands on your host from the app's source folder once you have [built the app](#compilation-and-load) +for the device you want: + +```shell +# Install Python virtualenv +python3 -m pip install virtualenv +# Create the 'ledger' virtualenv +python3 -m virtualenv ledger +``` + +Enter the Python virtual environment + +- macOS: `source ledger/bin/activate` +- Windows: `.\ledger\Scripts\Activate.ps1` + +```shell +# Install Ledgerblue (tool to load the app) +python3 -m pip install ledgerblue +# Load the app. +python3 -m ledgerblue.runScript --scp --fileName bin/app.apdu --elfFile bin/app.elf +``` + +## Tests + +The Ethereum app comes with different tests: + +- Functional Tests implemented with Ledger's [Ragger](https://github.com/LedgerHQ/ragger) test framework. +- Unit Tests, allowing to test basic simple functions + +### Functional Tests (Ragger based) + +#### Linux (Ubuntu) + +On Linux, you can use [Ledger's VS Code extension](#with-vscode) to run the tests. +If you prefer not to, open a terminal and follow the steps below. + +Install the tests requirements: + +```shell +pip install -r tests/ragger/requirements.txt +``` + +Then you can: + +Run the functional tests (here for nanos but available for any device once you have built the binaries): + +```shell +pytest tests/ragger/ --tb=short -v --device nanos +``` + +Please see the corresponding ducomentation [USAGE](tests/ragger/usage.md) + +Or run your app directly with Speculos + +```shell +speculos --model nanos build/nanos/bin/app.elf +``` + +#### macOS / Windows + +To test your app on macOS or Windows, it is recommended to use [Ledger's VS Code extension](#with-vscode) +to quickly setup a working test environment. + +You can use the following sequence of tasks and commands (all accessible in the **extension sidebar menu**): + +- `Select build target` +- `Build app` + +Then you can choose to execute the functional tests: + +- Use `Run tests`. + +Or simply run the app on the Speculos emulator: + +- `Run with Speculos`. + +### Unit Tests + +Those tests are available in the directory `tests/unit`. Please see the corresponding [README](tests/unit/README.md) +to compile and run them. ## Contributing diff --git a/tests/ragger/usage.md b/tests/ragger/usage.md new file mode 100644 index 0000000..2a4954d --- /dev/null +++ b/tests/ragger/usage.md @@ -0,0 +1,92 @@ +# How to use the Ragger test framework + +This framework allows testing the application on the Speculos emulator or on a real device using `LedgerComm` or `LedgerWallet` + +## Quickly get started with Ragger and Speculos + +### Install ragger and dependencies + +```shell +pip install --extra-index-url https://test.pypi.org/simple/ -r requirements.txt +sudo apt-get update && sudo apt-get install qemu-user-static +``` + +### Compile the application + +The application to test must be compiled for all required devices. +You can use for this the container `ghcr.io/ledgerhq/ledger-app-builder/ledger-app-builder-lite`: + +```shell +docker pull ghcr.io/ledgerhq/ledger-app-builder/ledger-app-builder-lite:latest +cd +docker run --user "$(id -u)":"$(id -g)" --rm -ti -v "$(realpath .):/app" --privileged -v "/dev/bus/usb:/dev/bus/usb" ledger-app-builder-lite:latest +make clean && make BOLOS_SDK=$_SDK # replace with one of [NANOS, NANOX, NANOSP, STAX] +exit +``` + +### Run a simple test using the Speculos emulator + +You can use the following command to get your first experience with Ragger and Speculos + +```shell +pytest -v --tb=short --device nanox --display +``` + +Or you can refer to the section `Available pytest options` to configure the options you want to use + +### Run a simple test using a real device + +The application to test must be loaded and started on a Ledger device plugged in USB. +You can use for this the container `ghcr.io/ledgerhq/ledger-app-builder/ledger-app-builder-lite`: + +```shell +docker pull ghcr.io/ledgerhq/ledger-app-builder/ledger-app-builder-lite:latest +cd app-/ # replace with the name of your app, (eg boilerplate) +docker run --user "$(id -u)":"$(id -g)" --rm -ti -v "$(realpath .):/app" --privileged -v "/dev/bus/usb:/dev/bus/usb" ledger-app-builder-lite:latest +make clean && make BOLOS_SDK=$_SDK load # replace with one of [NANOS, NANOX, NANOSP, STAX] +exit +``` + +You can use the following command to get your first experience with Ragger and Ledgerwallet on a NANOX. +Make sure that the device is plugged, unlocked, and that the tested application is open. + +```shell +pytest -v --tb=short --device nanox --backend ledgerwallet +``` + +Or you can refer to the section `Available pytest options` to configure the options you want to use + +### Ethereum specific + +With Ethereum App, it is also possible to load an app (like a _plugin_), and use the `app-ethereum` like a _library_. +Such case is tested with application clone, using `ThunderCore`. + +This special configuration needs an additional command line parameter `--with_lib_mode`, where only the dedicated tests are selected. + +## Adding a test + +When adding new Module for tests, just be carrefull to declare it correctly in order to be handled following the parameter `--with_lib_mode`. +please refer to `conftest.py`. + +## Available pytest options + +Standard useful pytest options + +```shell + -v formats the test summary in a readable way + -s enable logs for successful tests, on Speculos it will enable app logs if compiled with DEBUG=1 + -k only run the tests that contain in their names + --tb=short in case of errors, formats the test traceback in a readable way +``` + +Custom pytest options + +```shell + --with_lib_mode run the test(s) dedicated to Library Mode + --device run the test on the specified device [nanos,nanox,nanosp,stax,all]. This parameter is mandatory + --backend run the tests against the backend [speculos, ledgercomm, ledgerwallet]. Speculos is the default + --display on Speculos, enables the display of the app screen using QT + --golden_run on Speculos, screen comparison functions will save the current screen instead of comparing + --log_apdu_file log all apdu exchanges to the file in parameter. The previous file content is erased + --seed=SEED set a custom seed +``` From 29630f9cf38e140ccc46805f9c8d712daccde5e0 Mon Sep 17 00:00:00 2001 From: Charles-Edouard de la Vergne Date: Tue, 9 Apr 2024 10:26:17 +0200 Subject: [PATCH 26/35] Remove client installation, and use local module with symlink --- tests/ragger/client | 2 +- tests/ragger/test_blind_sign.py | 3 ++- tests/ragger/test_domain_name.py | 7 ++++--- tests/ragger/test_eip1559.py | 10 +++++----- tests/ragger/test_eip191.py | 6 +++--- tests/ragger/test_eip2930.py | 6 +++--- tests/ragger/test_eip712.py | 10 +++++----- tests/ragger/test_erc20information.py | 3 ++- tests/ragger/test_get_address.py | 4 ++-- tests/ragger/test_nft.py | 7 +++---- tests/ragger/test_sign.py | 6 +++--- 11 files changed, 33 insertions(+), 31 deletions(-) diff --git a/tests/ragger/client b/tests/ragger/client index 96cd109..66dee0e 120000 --- a/tests/ragger/client +++ b/tests/ragger/client @@ -1 +1 @@ -../../client \ No newline at end of file +../../client/src/ledger_app_clients/ethereum \ No newline at end of file diff --git a/tests/ragger/test_blind_sign.py b/tests/ragger/test_blind_sign.py index a86f421..09d8b56 100644 --- a/tests/ragger/test_blind_sign.py +++ b/tests/ragger/test_blind_sign.py @@ -2,7 +2,8 @@ import json import pytest from web3 import Web3 -from ledger_app_clients.ethereum.client import EthAppClient, StatusWord +from client.client import EthAppClient, StatusWord + from ragger.backend import BackendInterface from ragger.firmware import Firmware from ragger.navigator import Navigator, NavInsID diff --git a/tests/ragger/test_domain_name.py b/tests/ragger/test_domain_name.py index 9b6f59d..5c074f5 100644 --- a/tests/ragger/test_domain_name.py +++ b/tests/ragger/test_domain_name.py @@ -1,9 +1,10 @@ import pytest from web3 import Web3 -import ledger_app_clients.ethereum.response_parser as ResponseParser -from ledger_app_clients.ethereum.client import EthAppClient, StatusWord -from ledger_app_clients.ethereum.settings import SettingID, settings_toggle +import client.response_parser as ResponseParser +from client.client import EthAppClient, StatusWord +from client.settings import SettingID, settings_toggle + from ragger.backend import BackendInterface from ragger.firmware import Firmware from ragger.error import ExceptionRAPDU diff --git a/tests/ragger/test_eip1559.py b/tests/ragger/test_eip1559.py index 6379736..14e81b7 100644 --- a/tests/ragger/test_eip1559.py +++ b/tests/ragger/test_eip1559.py @@ -1,13 +1,13 @@ -from ledger_app_clients.ethereum.client import EthAppClient -import ledger_app_clients.ethereum.response_parser as ResponseParser -from ledger_app_clients.ethereum.utils import recover_transaction +from web3 import Web3 + +from client.client import EthAppClient +import client.response_parser as ResponseParser +from client.utils import recover_transaction from ragger.backend import BackendInterface from ragger.firmware import Firmware from ragger.navigator import Navigator, NavInsID -from web3 import Web3 - from constants import ROOT_SNAPSHOT_PATH diff --git a/tests/ragger/test_eip191.py b/tests/ragger/test_eip191.py index 249b6a7..a9de665 100644 --- a/tests/ragger/test_eip191.py +++ b/tests/ragger/test_eip191.py @@ -1,8 +1,8 @@ import pytest -from ledger_app_clients.ethereum.client import EthAppClient, StatusWord -import ledger_app_clients.ethereum.response_parser as ResponseParser -from ledger_app_clients.ethereum.utils import recover_message +from client.client import EthAppClient, StatusWord +import client.response_parser as ResponseParser +from client.utils import recover_message from ragger.error import ExceptionRAPDU from ragger.backend import BackendInterface diff --git a/tests/ragger/test_eip2930.py b/tests/ragger/test_eip2930.py index 843044a..b9a7844 100644 --- a/tests/ragger/test_eip2930.py +++ b/tests/ragger/test_eip2930.py @@ -1,8 +1,8 @@ from web3 import Web3 -from ledger_app_clients.ethereum.client import EthAppClient -import ledger_app_clients.ethereum.response_parser as ResponseParser -from ledger_app_clients.ethereum.utils import recover_transaction +from client.client import EthAppClient +import client.response_parser as ResponseParser +from client.utils import recover_transaction from ragger.backend import BackendInterface from ragger.firmware import Firmware diff --git a/tests/ragger/test_eip712.py b/tests/ragger/test_eip712.py index 975e10f..1d9a782 100644 --- a/tests/ragger/test_eip712.py +++ b/tests/ragger/test_eip712.py @@ -8,11 +8,11 @@ import json from typing import Optional import pytest -import ledger_app_clients.ethereum.response_parser as ResponseParser -from ledger_app_clients.ethereum.utils import recover_message -from ledger_app_clients.ethereum.client import EthAppClient -from ledger_app_clients.ethereum.eip712 import InputData -from ledger_app_clients.ethereum.settings import SettingID, settings_toggle +import client.response_parser as ResponseParser +from client.utils import recover_message +from client.client import EthAppClient +from client.eip712 import InputData +from client.settings import SettingID, settings_toggle from ragger.backend import BackendInterface from ragger.firmware import Firmware diff --git a/tests/ragger/test_erc20information.py b/tests/ragger/test_erc20information.py index e8ac552..130b3ac 100644 --- a/tests/ragger/test_erc20information.py +++ b/tests/ragger/test_erc20information.py @@ -1,5 +1,6 @@ import pytest -from ledger_app_clients.ethereum.client import EthAppClient, StatusWord + +from client.client import EthAppClient, StatusWord from ragger.error import ExceptionRAPDU from ragger.backend import BackendInterface diff --git a/tests/ragger/test_get_address.py b/tests/ragger/test_get_address.py index c88c116..c61bffa 100644 --- a/tests/ragger/test_get_address.py +++ b/tests/ragger/test_get_address.py @@ -1,8 +1,8 @@ from typing import Optional, Tuple import pytest -from ledger_app_clients.ethereum.client import EthAppClient, StatusWord -import ledger_app_clients.ethereum.response_parser as ResponseParser +from client.client import EthAppClient, StatusWord +import client.response_parser as ResponseParser from ragger.error import ExceptionRAPDU from ragger.firmware import Firmware diff --git a/tests/ragger/test_nft.py b/tests/ragger/test_nft.py index 454dd48..ef60205 100644 --- a/tests/ragger/test_nft.py +++ b/tests/ragger/test_nft.py @@ -1,12 +1,11 @@ from typing import Callable, Optional, Any import json import pytest - from web3 import Web3 -from ledger_app_clients.ethereum.client import EthAppClient, StatusWord -import ledger_app_clients.ethereum.response_parser as ResponseParser -from ledger_app_clients.ethereum.utils import get_selector_from_data, recover_transaction +from client.client import EthAppClient, StatusWord +import client.response_parser as ResponseParser +from client.utils import get_selector_from_data, recover_transaction from ragger.error import ExceptionRAPDU from ragger.firmware import Firmware diff --git a/tests/ragger/test_sign.py b/tests/ragger/test_sign.py index efc6c44..ea85ec7 100644 --- a/tests/ragger/test_sign.py +++ b/tests/ragger/test_sign.py @@ -1,8 +1,8 @@ from web3 import Web3 -from ledger_app_clients.ethereum.client import EthAppClient, StatusWord -import ledger_app_clients.ethereum.response_parser as ResponseParser -from ledger_app_clients.ethereum.utils import recover_transaction +from client.client import EthAppClient, StatusWord +import client.response_parser as ResponseParser +from client.utils import recover_transaction from ragger.error import ExceptionRAPDU from ragger.backend import BackendInterface From ae6c7bfff54a9189f089db2c8c74d28d40b861f4 Mon Sep 17 00:00:00 2001 From: Charles-Edouard de la Vergne Date: Wed, 10 Apr 2024 12:07:52 +0200 Subject: [PATCH 27/35] Remove redundant test_eip1559 --- .../nanos/test_sign_eip_1559/00000.png | Bin 374 -> 0 bytes .../nanos/test_sign_eip_1559/00001.png | Bin 296 -> 0 bytes .../nanos/test_sign_eip_1559/00002.png | Bin 434 -> 0 bytes .../nanos/test_sign_eip_1559/00003.png | Bin 403 -> 0 bytes .../nanos/test_sign_eip_1559/00004.png | Bin 343 -> 0 bytes .../nanos/test_sign_eip_1559/00005.png | Bin 345 -> 0 bytes .../nanos/test_sign_eip_1559/00006.png | Bin 414 -> 0 bytes .../nanos/test_sign_eip_1559/00007.png | Bin 349 -> 0 bytes .../snapshots/nanosp/test_sign_eip_1559 | 1 - .../nanox/test_sign_eip_1559/00000.png | Bin 414 -> 0 bytes .../nanox/test_sign_eip_1559/00001.png | Bin 353 -> 0 bytes .../nanox/test_sign_eip_1559/00002.png | Bin 558 -> 0 bytes .../nanox/test_sign_eip_1559/00003.png | Bin 412 -> 0 bytes .../nanox/test_sign_eip_1559/00004.png | Bin 472 -> 0 bytes .../nanox/test_sign_eip_1559/00005.png | Bin 381 -> 0 bytes .../stax/test_sign_eip_1559/00000.png | Bin 8691 -> 0 bytes .../stax/test_sign_eip_1559/00001.png | Bin 12213 -> 0 bytes .../stax/test_sign_eip_1559/00002.png | Bin 9597 -> 0 bytes .../stax/test_sign_eip_1559/00003.png | Bin 6108 -> 0 bytes tests/ragger/test_eip1559.py | 62 ------------------ 20 files changed, 63 deletions(-) delete mode 100644 tests/ragger/snapshots/nanos/test_sign_eip_1559/00000.png delete mode 100644 tests/ragger/snapshots/nanos/test_sign_eip_1559/00001.png delete mode 100644 tests/ragger/snapshots/nanos/test_sign_eip_1559/00002.png delete mode 100644 tests/ragger/snapshots/nanos/test_sign_eip_1559/00003.png delete mode 100644 tests/ragger/snapshots/nanos/test_sign_eip_1559/00004.png delete mode 100644 tests/ragger/snapshots/nanos/test_sign_eip_1559/00005.png delete mode 100644 tests/ragger/snapshots/nanos/test_sign_eip_1559/00006.png delete mode 100644 tests/ragger/snapshots/nanos/test_sign_eip_1559/00007.png delete mode 120000 tests/ragger/snapshots/nanosp/test_sign_eip_1559 delete mode 100644 tests/ragger/snapshots/nanox/test_sign_eip_1559/00000.png delete mode 100644 tests/ragger/snapshots/nanox/test_sign_eip_1559/00001.png delete mode 100644 tests/ragger/snapshots/nanox/test_sign_eip_1559/00002.png delete mode 100644 tests/ragger/snapshots/nanox/test_sign_eip_1559/00003.png delete mode 100644 tests/ragger/snapshots/nanox/test_sign_eip_1559/00004.png delete mode 100644 tests/ragger/snapshots/nanox/test_sign_eip_1559/00005.png delete mode 100644 tests/ragger/snapshots/stax/test_sign_eip_1559/00000.png delete mode 100644 tests/ragger/snapshots/stax/test_sign_eip_1559/00001.png delete mode 100644 tests/ragger/snapshots/stax/test_sign_eip_1559/00002.png delete mode 100644 tests/ragger/snapshots/stax/test_sign_eip_1559/00003.png delete mode 100644 tests/ragger/test_eip1559.py diff --git a/tests/ragger/snapshots/nanos/test_sign_eip_1559/00000.png b/tests/ragger/snapshots/nanos/test_sign_eip_1559/00000.png deleted file mode 100644 index 8d84cc70fea8013b7e8b25c0982ce142fa103d5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 374 zcmV-+0g3*JP)K?4J2QqX3 zXn7ePqhBDwvA-|J28LIrjF%tX0z{3v6!_gF&(SYH)S*7TN;1RxW-%}TLH9_+sttDO z-T32w&rL(!1@Vr`jm5G(8dd=Ruu#)JAN?l#rFLU`oQ(r?$33AC7s0}pw!fi~(9k^# zU9aci?pXN=I7A<-f!Mw2untnw9MivqZYw}c5&)gweYhbTnv#2#t$0X2wST7_1F;LR zw?>Da2SkSfG>qWq1mej-6nW@2l+Z=0om5jdB%3o3Qx19_LNUlTqF4R_1Iaj%@^2O= z@;n%h1N>H$2;%-~Dvx1!0LtkT-;cq73rgisOElFtPbcL{d3TfNQvm<~003s>1*i4o Uje8$F8UO$Q07*qoM6N<$g5rpv%m4rY diff --git a/tests/ragger/snapshots/nanos/test_sign_eip_1559/00001.png b/tests/ragger/snapshots/nanos/test_sign_eip_1559/00001.png deleted file mode 100644 index 9f26513905ca5d43f8a01ecdc783260b6de6c5ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 296 zcmV+@0oVSCP)fX#!FZBO{Ig0000hQue@KoMo!lVn-VMNUcna`?Oxe>;TDxhx7Rz4!(dya;|m zwG$ET+wZ(v)&YZQ2FPk6xp%OvWBgPzWeXZOo@@_EJ5S0nv6$YQ_!U5Z(<&|~*_@p_ zg*ype0epcU5-~>2z?~cDKf=jq(>>n(g2nWlxnsaRsNvCQD12q~=}rl#>3nPSZ-@|T zM1L~K!IfYax|07vUW96XGOHiOvNO28ji#dsy%o1V{U!_})jSG{ue+KynvN#)R^0xK z)kZ|-i&#qFIg_P3&bd}>qv>cW>aDo_>D0!Exe2>3kbDEw7bA!_VN5`J40z6K*Ug#o z7zfH26CggNX}&fS{&zH4ar-k?n{W&jweVBad2_5E!m_WW*hbUQRMcB>`{UCF00000 c0Emd_3y`Zwh@I}ii2wiq07*qoM6N<$f_&}3-T(jq diff --git a/tests/ragger/snapshots/nanos/test_sign_eip_1559/00003.png b/tests/ragger/snapshots/nanos/test_sign_eip_1559/00003.png deleted file mode 100644 index 32a2ee92966bd4321ef50d6ef6f25a44162df203..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 403 zcmV;E0c`$>P)Q!pQ${VqK?fv>G8$iick~1z#=K`q+L}LtlX3@C-**UE!R(t!amHfPk5{O5BBEnI z*JIiog1JnPWs2+)drw4Z^YPQnEk}@JJnU@ACr_?16*(=PS?Pd^-vRVpR&imoHLEP) z#j;OCDb{=$aF(!?C~B;U%^DEEz!)&m(3FPadu@MLG42{ue;sw$e+A=-IU`JV?+r zA2%aQM9Nqzgu+7KB^*1gF`kTHo%{4o1Ko$3o{bBGkIX)KDnQBRQ?u`oM5>Yf#h?b3 zU4TOAvh-%?(i=B{|_o8KNGjh7w%K@l@Mn-i)4Uj+od9L znK8wfmB};=0|Ow)n$s~Cr`6K5ppD_9)$kp>QenV)(LG=b1~Ne4A6;Tu{RHP0i$&N# zU3xMFd7=IUvLZwMXj~f|{k#}B z4)Di%0(GQh%XXzDG$sKK-Q2JkKR-`QsiPFD-4d_!i{fwH;J|_aEL%ZYNu#B0FJ7G| z;=_VQWOA9;dQ4Y9)LpKCV=ri`X({49JagUwO3&5UdSK)wEJxPN%9wG}45n;lzK(aC zKtbL$y*-#9uSql`7 zENOEh^0jsFWbV&<+yj5)WEX_aERLO-`${sQhD#B5ZCio#Fr4qHlr^7X|9DL69eFa= z#kf#}$Pcl(QEE=tNl8Pt$o;~Fk*8r@j8mpwSGW8d!1&11FbzPh@^gWj=oh7f%f7G)4s^6#xJL07*qo IM6N<$g02I(Gynhq diff --git a/tests/ragger/snapshots/nanos/test_sign_eip_1559/00007.png b/tests/ragger/snapshots/nanos/test_sign_eip_1559/00007.png deleted file mode 100644 index ce795f34e8569e986af689fded3b59c9a8af2961..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 349 zcmV-j0iyniP)O41}p;-~WL<=z+0=1Om1tEU@3H#qtw22}5*_5JCvCo4!52c$FXo$VhXU?0M$^Bekqgf%Ka;M*^X|4 zEs9YCQ(xfJKmNC#+8dY%2&wT+>D^<3C%}_*k1^mvtO~`RE00000NkvXXu0mjf-kqOA diff --git a/tests/ragger/snapshots/nanosp/test_sign_eip_1559 b/tests/ragger/snapshots/nanosp/test_sign_eip_1559 deleted file mode 120000 index bc60254..0000000 --- a/tests/ragger/snapshots/nanosp/test_sign_eip_1559 +++ /dev/null @@ -1 +0,0 @@ -../nanox/test_sign_eip_1559 \ No newline at end of file diff --git a/tests/ragger/snapshots/nanox/test_sign_eip_1559/00000.png b/tests/ragger/snapshots/nanox/test_sign_eip_1559/00000.png deleted file mode 100644 index 487ea10fcfeb2f3e6b79239459672251d49addd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 414 zcmV;P0b%}$P)vpO}&+|8}fC)JNq`>?#dJ%s{^>GN_4usXQirk{^@^BA?p!El9&T9q~zMsh2=YdLB`_ONiP zKy6XlUGFZ>Cn7mP3u*;rWy$-{$FutdLN-GD8Tc=R<^&lG44+1s}f6bMVr6dq&pcE!pg!C2d#j^efi9d$#*OU&g-9Ux}S_^Gxo(TD>}dVf*#6b2rU@ zX&zz{*`0LJ-NwVtQo)OBS3Zk>(LF{h)9)v1m)zHWH}lB`0Zk9}r?Jjwg16Wkh_%_5 zJ!fQK_)%5qe_+{rzOz-$k&6uS9h60C-ldmR?+dUnazDF%^E=T;?KdX7u4MiCE9-O7 z_Ss##8KgIt6|=>d&0RgAY0gH5bGKMKHg`XLe#Z5b{DkONi;LIP%(1xmKl!kN@ZZdy t0O7wUBbfbD6#eHMp2wjN^ei$cn5nO3yF-vyI7$j6?CI*~vd$@?2>_^vlz#vK diff --git a/tests/ragger/snapshots/nanox/test_sign_eip_1559/00002.png b/tests/ragger/snapshots/nanox/test_sign_eip_1559/00002.png deleted file mode 100644 index 5b65b54dc173b086a88acaaaae42fcd7e007db2f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 558 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|{^}>EaktG3V{<=t(UKJgzfW z-sJopKdE{q|7xA~^aCvhZ!POD89FGfUo8vL#BjjcvhT44-%o$u-}T40mopy{J=Nd& zQo#Nm?~0%^?u8~tB+h@5NKR7L|9Gg9MTODV%~@zxQsSd0n>5+1cAD!)o)=SA;GFj1 z=KRkE{S~^4wLiu)HyvCgmERI~q4v7md6pR4{r;@a=ggD#o_D$J?7YwZ91l-#eD`fm zK#Y3!>CCsC_v!`NfX=8;pPRel$r_EDmpH#q;h%Wj=&oFBzO0JX(kBAD-GZh;`0B|~ z7fOBh&JXW?xp#h1w%H`xSsJMF=l@^&hsm_?klX3CneHMH3)K8> zWb8D3+c9CE*cJ!hIU6n(W#5|kWK+l6<()zhWipH1*p66~do&pTWzh)`R?pdTXI7a@ z(@(P!52$*u#UXZnnJ1=QP^wH5)i-A`JSQpi t;LLONgwK%~mvdJx4ba4!+nDh2V^t5ILo`#2K z=G^4`9Ut_~h+ocf%Iq6nP2c{{v$@h{7IUNnsEOfO-J9JZSKlhNT*#`le%4<2=5OWy z2JO2V?=#T_uP!^aC&YN^D#O_y zyEErxCEt44QeT{KRCh&;@TT*BuT>nW-o%l)A}jgZ%D)mjcpbLQoMId;G@Z=76n{hu;-p5x0f;k_G0Hd#d1t?u2&p9u8c`;-vgx8Vtw zj=j0MvRF?if7-3t*PrY9U$8py{rvB_kL$m!3z#OkZr6<5qe*uZe>WYpDa$|9ociSO z%I{0wbU$U_Nn0CbSG{3&uH(iv^RIo+&)u06bN`3r%XMmJHGNBVS%mdKI;Vst E0OO{@6P)Nkl`l1;k+@4An6g^M6kcbtxu@7*hfO000000DuchDWw$aQJnB& zJ%BsK3VrpQ1hnYqoNY&PO0WdV>i`7cs)e_@w@x()p@w=B24`klR6(CLpxqtlZO|2 zIWjpO-F~*EHtLqUMt)Wc_@bMv^h#{CUFW0M(vJ1P=5N1GhWcHM(-Xu*&bc@D4_o$^ z7Y|pL)I@*DzttR=&yLH#^{|TW)8Sp0qphw%epiuSUG#WHS~ht|j~;`U4>BXmdi9@& zuz>%00000G5i7^TsbXePb2LB O0000U4`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~ diff --git a/tests/ragger/snapshots/stax/test_sign_eip_1559/00000.png b/tests/ragger/snapshots/stax/test_sign_eip_1559/00000.png deleted file mode 100644 index f992e718a17c0a7952eb569a7d3a3ac7662fe27e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8691 zcmeHti#yZ*`@ck~94bNxounF3&Zl)!sqpsJn2=LQ%pqnD*+M8{MUhk9QH14~ISg}N z42xlynL`XShZcryzOO#N>-zl%zu)(JeXsX+J+EtfzV>?Ve%`z9$9+E@&%ON1;-=Vs zx%~nH0%B&juKz6{u>sRiDWU*+h^xWIj7?<_%MWNy2 z8pnV9=jkjW8x^a3+*#ys)N|$Iw?uf{8gyZG?1e+~*tEcGeArvGpoFw8P-F}o>J+}i#=<&5n3$#(1C|-vht9BeFGF87wa^q%A0I&=MpB8wBA_wYJHv=q5d=XY>7`0cX#;v30lMrwX%d+6 zP9EM-@54Ll6-YKH*>Cecj3c_Qq#UfSm3z(n@=N|1Ik8zYd+BSB zhjr?VL3=whH#SBdL-VZO@fAPnnCdW8_frg2^RlT$%+#tTO&Lc;EunkqXd~xa&XX#F z2Xqz0?t+Qf>PnO3Lh zrWTNktfF`vd453YXKl@HlcZ_#e2|{P5J>fbTx5(qH)&l%6u4J9m!5MZ^t|7nI~q+Z4nhT-)gFw#M}g6TeZ90 zkX8>8zY&M_unRWHnbun`zDM?YcdB#d$p|ZWDJ55RoK7z;$|W2NJP3V%+AJ9hD=wfBQGl3-e?Dfxxl3qb}z zV3pq#MBuXN$ZyqMHH5I_QLIS4%bO%u=lwSp-hRTFXnFc6q>$@NMf`tL=?bJe=4PYIulb4+gXYG^`h>x)`xFe>ToSnbg0>;3p25L9Yh+Z3~ z#)bFA#o!WY1I5fb)%`M-Lyp>o#MzojyU@yIWn)oPZ5%DBLs|M{S($@uEdNrsE^tZW zMA^#gQ)V7IqOBUAnEU^{{i2Unzm)VRE6buX#jcGLo=br_E_xf%R7i9dNcIE+)^TF%wA)B*FIezG^L+Vu8d5}I1NFgEU`;izD{ zmB%6WyN5jU%)CTh;lNV5#$CIhuT+i;92JuOA2^0=y{K3i)iX`-qMq~Y>wOq3j2QrC zrH%Vm@9;M0s2yH4%{RwUT4dr`dNGJ-DIC{2Ig9<|6=sr?c91`ii;ZOgj?o;G>q;;x0-_mytBv5+2B34@^X<9Wt zBY$7iKPAla&QYwfB0AVlQ?yktiL7-DlTmrQ)-DyS;4t(>fy6U9$3w*ue58CKemY1DleMe3ECWN93f({CKWvnmv)?D-S@p2>AxPJ1gbJeT>WvX62 zD8$SBr4-UW|f1zKi!9ktBk32HmI;jzS`>x-2-)g20W%%4vw`M8R zzTsH9{Z-FJ#+~FgCknSAjQ#8=wXRo=GMWw^a*~2lnDE6X52y5&p0{UJ(#)N2-YAge zxw&4^9K*)B=vh5e7Wrkg{FHevBAUJRIYYG{>I~OuqYsx`kJ7s>j&cKiFsX-LWqFWs zTC!W4(r0rL;yrl3FLt{O))FkXIEW$4I3s>CDXv%D(WZq2 zETWCy@48ezn1fQ($UZ8w z+^w_(7c9Oc)fjk!hIv%u?aYu}L%-x#Jz5kvX2_S8X^j}y=Zp!`b}gi}fn)aAQV_Pz z=C3*%AC$V=iCawcruLrWo|bs9PADRg8RIigjyjA+9kv*t8)p94jF8zo)T6!CcL{o^ z5#h=APmVmYCWKnJSIRAUULM%(7YuKd^FCtH);zJgaZ7U#Wk&iDEQOCnw~syFjMRqe zrniC#d(xh=F^a@D?WP&lS9c1I8hT^kbo6)kNbSHxU%4HQL;WR`UZ;!LlKAg`_<8z# z^O^Ec9-$yJfAyLMDNsJfK`MqW6u42~H?D`Om*t;ZsKds;!xenUFU)LG`n~MCLIO=X zF3F{N=jmqT7cxg#)tYV*-2n@nyyh*{?M}lZ;5P>-H<*L7Ca{R#GF+^2&Sgz}IQf*$3OZ zwL1cQti^rX6O7YU_4|2GO`MFDrpQ`7=fIX{&T?%EaH_T7MV*o9^9^>dkjJ`=Exp?V zd3HLHnV_U;KaMnhGUB6?ZOA(oO*(FI0lXr2tOPPA=}62 zG-CcGG|QiEYQL z2X1rR2r;;xr{!G(%AHLMWsmWvUmU|^ThqV;so4$cWe&wZgl$mH&F}XnxS*GZy@HJt zX)X&JQB?ceNrdT1e@?$RX5Z4s*UBQnI2xB%8Lt{YCYPDN$>I2K`l8z|sDD)2oBg2o z!jw{nq<4^Zo05Ft`DCBN>zfUWJcP~`xSoE-*hw~4U4~mQxb)b>=z*y1o(<&Z36fC- zo_5W%dHKD4SxGxLgXk>%)Sh@cK9{|@7}asa$8I0byBmstLm=BcB%WT{pJVKq7%W_c zH?^-oguZF|l@qX5n$xlDAr~$TgFyWJ{4#qy78O(FPy8hnV;JUZGG6YhIkq?iQTYA% z@luZOCf%VSV|v!H1qan$V6j+~Qm1H1&=)|>r#TTXcyZ;1hftK{y@bFmL)h#byZ!X4|&&9>M%y4+`F0#^HhOLAl zwb93u|Fl#RnuFpavu{F8!uPtSx~~h3ac>qISX;d6$O_R~Y<3OuSkCdw4sM3-BXAg~ zm2L4tr}vqjEsPwJo2Q*ks=Hk(j@D~T(Sg>tGv4EwQ+ng9V64FoyB9>f&C&nO1_F&) zxdE<6lv*fgWZ&@4$RAoBnm^0}2-^|VmVd2-fs^sySGPB}@NZ7jpi(9kwk*>F(ca%mJ=7V( zT!2+L_1SKm2^VSIGT)nXgIgT0IlH<&vyL|#{l2|?RNR9!G)!Ob=$oHcI{Oj4%*|PT z(@^J=So-sV7)T)g!B;bpiI_uBfrkhG9sl~^e_0H0w-*KL-vR{@%j)Uu*Ai=8k?&$t ziU5ihuPh=S*IG%80;sy7A==D=8q8mz}m{j#9sXh?rQ@`wg;! z-sah1+@Am@7~78)FHlpji-uEm(%x#1QyAVSDRkT3K5E2duVDk0B0cv zZ(6-&)S`aqnpe_%zfM-tmsxEZ0Sa`?Z78l&ZDD#k59~(8Zu7>$J9(z)#= z8pMj;#lRs~dHL9nFbp^#`BX`XL4%d=@e*>xtm|F|97}~!v2m>*Q=->TZpi~WK*HJ) z{y|aikbEA}kJf4>)gGWg2#}2pZh2+ym+h((a8L;Dh&Eq*?lOlc8L7{1#Il0DAx0Z8 zveq__A7V5+!KKn&gCrG}v1>cU#_FN!?yW z<*(K-K-zMUNTZA4M|>7@Y4e*Ex37F)l$f}BhLg2;FC%Q+19@bg+z1k1{o^;T1dTs! zc9GUm9(L0+_)c-Is)O-NNflJG21M)?1hj{wmP~o=xmnj`clp7>5@}N_$U8g>dO#af z@G^JKU+-t=c&*o?P%XU==gkh|*B+XqClJe>7j>jsM{n~PC7(U2sVW}TQghuO7`1~4 zkf#jhbIO%!aV1>xFyFB~nHo{N`$NN4Q z+-Q*>|DX6ITyJN)_hx6~4q+?v5Y*Bd@~-Oa6n)IRc-}X!^oLfD^K?+yPpcI}@5V4S zuwC*g%g`SS%h#Qa6F);d5B_*wZt%i!QU<)_c0d86G8{+NpSl_x);1LFy?NZAZ?Owx z#i3j-*iKm^v0r`|<@+B;r1-9CnBJ*tRxKYizYyxW4rIiL57)@CK6Ux$)_}q40DeZd z+^S^j6&$c;dO?LB2Z5Li*)Z(oBad{4-|)mFxw##K34Gew?B08v2J7lw^wp}(-jOJo z8BYv*tv1w=HgYC9`VOzWl+Q3HE1+-6Csz43Urt%^ssK@abl{GDI`Rleb%1fS=Rc4< zpR7;WR!fsr`kuI+K`e_vxG5WpB;EPI(Bb2(lby$laltr8&*1QT8k|e9iVnmE`L!2X z<_WovsKJ#ZHCH46KDYF`CUIfs#g&6?0o=EgC-pjyp_XobQf2I(8#-F%DW^KytbAL? zU@z)FLlg*XCz(nrYs_qhGT>uWF!;>D%*W_w78?)7RsGGovWYJJvy10&(AIQiN1Yrj z4}cQgu2{-y-HXx{OS{yu>5!6quQ4kVoyZ-%rHX3pAb@#!{+1jcD(h~$q2^(1cS*)u zel4u@7T4<0VH2kvF%(%P7si*9d8$q5j*4hM%R538ZS_ZfO17py`@a%RYAkM4rKvbq z;?A>%7qcUu1wNqV{y#}KJA1D98!6^EiVD=Q=*lAfS`opT0uwqJ&;L974N@OKA}Azv z;iVz08hA{S2UH2J1B|MOCh!?9vK;{mrhQYVWlYOQe4>;*t#dmZfKjkm0wg%nyvt)wc9`->jYb;VnBV$P!Wkzjc?I#2$-ViV9$>Uck`k+ zzV3EN*YBH88*4Xu8SIMF_Wj4i;|3F0MD|!$I%Bg=5|1r+45)QzWW=?~K89ACS^>(y zq93zmczGjOn9t$VIH+%^Ya~qz2TsoCs!qj)s|$Kd;kn0O|LAA^;pXZdrN&LsDBgFL>VE8b3ARL8|b<{EW8y zfj&;2KbZ9;h-0rA$SPi}ZdUSjEjLRRU1Fq%3jk&L%gZJ}bcx=Zey3c^oWx+yJXy6A zKeX}bKZOgHuHyX`T2QR$O3e~_-@KDJS{Bz0$O zu-)OGZDOs1dNgra1}HA@{ppNa!$&e0-kU$3f=e@(`Z@A&iei(p0nN`lV;0~@N4Z`2 z>$q}#e%v2S0&1@#MKZ5smc)z|gl8NX+^L zUJE)dtH1iLIQL8?%@-9daw=25Pqd-4N^}|Un>(c1L;TfMO^zt}B!&reCaqXXEE+g4 zVg&cXD|;p5;PA@gf-NqI4CHrMP0+;p zaH^}5OXUdk!E>N}^Wsv0NAwy<{((IOAkT0|+`Wpfx3qiN_;q04fzsQ7>S`CBHPxZD zA&auWSq2hO2-gw5;>=3JNgJXbAYupLwDbzq{kGq6Lwu36lah!HrOA!IkD+gRU&O7Z zvMGGiZJ29$i4R~|NJBTx0q+MKmcZ!8mWBc+0sUi}!x{Fib|YqiOTFWQ^S>446bC$& z*Hs?_t0|%O5`%GoZ#iqsH1N`xUo@5Rf7bIUFJUT+MDertg9v4@nv&CHV^sr*IvT#E zb>;U8$el{g?kQs8uJ84i8TG5zvyTX0dCl1TeG=y;i59D!TilO&nCe8ClK{l z@C9ry>Gem1P0csSDaiSjiZT~-a26Einn7Q(oB~z5VI8tgy?>In57YkWu=*qd!#Vi~ zlT(A*&>*qdn?}a{p8Wa%g&Y#2*>lREbhl`0nf3Jh8aFtlEvcca#HoI-p)W>**YGBP ze&$I)OuaYD=^NdrJeqWPtMz7iJgTcg0cVW9dDrL#ik+CpR+`G$3=^PGE_sIhbd*Hg z{&nPn;`>V7CC6>s#p=z3cGt1f+;ftiy*(R{UNFORJgJ_^wF|C@pvflahr2byM)Xr? zxbw)C%PEu_DJ!_m-N$NCLSr#aTfY32tYrla;d%iajMk4%kB1eBhbB`BR2 kD|~rRssfqAYU> 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 R1jg|>j1A4NS6y|9|38+2qIUoQ diff --git a/tests/ragger/snapshots/stax/test_sign_eip_1559/00002.png b/tests/ragger/snapshots/stax/test_sign_eip_1559/00002.png deleted file mode 100644 index bc1ca9382cfe2a299a5bfb35c76039d7a8ff0893..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9597 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 H_TWDNq$iJk diff --git a/tests/ragger/snapshots/stax/test_sign_eip_1559/00003.png b/tests/ragger/snapshots/stax/test_sign_eip_1559/00003.png deleted file mode 100644 index a21279c8a0a89933b09833df3871d1ab2b36adf5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6108 zcmeHL`CC%y`?kfFDRpL=v~rtPn?x+j9dT^4Ra?Xb7u3|;&0RpWw8kkjYRpJYsT`wF zao0gbGsiT^&BfoVu>>AMpKL*XOsMU(R)2&UN0y^W69S-0ySqoSUo8 z58Hmw($dm7dE)2=Ev*%IwX{|~Ubhlhad2;|(9$v}J9*T_Bkd7?g6|_5efr0FCuZzb z*kRC$(^r44Sq*YIJpf!RT!6dBtAFcU+{t`bx?$IKtnbe`#rER>`q^! zf8A1buMpuS!WHs~+cmR)pY}=7!Ho)|o*zri>dvs}=KWkGvS~H>ED~L)AEw^F>y)y4 zn!_n`4TcLsQN00K$BG}ojTdW*jyY#_yWywH*e{6+PPo3s>fBY2(rxoqo<>J&WaE+( zGiTyQGQ6`vDL;Xr3!#mp;*Uk$gm27`UY?p{kO=#GgNp-edvJV%=2fMX)w!AStoXAX z`R`xe2pklADl2Vqx$Iz4fN-yoIfN2!m(IG>$aaj~cn{Lu?X9HAf2f=Dg{lO-_}$*~ zNkpepYZ-m9Aox0cRq|H#l8JApP3KdBgr?{li#}(L0+KQ-LgL}^30d8pE$J+R=cDYv z_!^2C>!SI)qcyW-qpz4KzFzgliP0x#;+WUxnTazr6!z?!Cvrr&T6b%m7AiG3$#C8mdj+b{yJV3pT=+3 z40EW*o&NBe-|Zc}{9wayI<*}2=gzPCH?;`?>9uNmy0ddC5ita6eCpUarDYcPz?cu@ za5#d=EOx(8=#RaWc5FlE(|%IA(Fn-kLb+*YF!n*1xYv_P`EZM3#Cw-vk<)?GWW2p{ zrfT*uP*L4e*r-oQ=^?YP?%!P{YxpaBY*Atni6w5-Nf?V z)UMUJ^t-#-ua*e@8w~yrg`DHerf9JP8{t*Vxg$dBEgOkMqNXjN+N**=^7VuP3%VF( zckrMRX=l{L{>Ses#TIPZrg~k$_{`^5AwLm`$IH&w4;dRb?7*YYXkU=NIM@RQvpi14 zF7@h+wp&M`y+Ufe+b9(4-19I-h}DR~%8s6*>@UURoz)L{NvKbHkv7GAiYmmakTzp% zz*DIxZNiBOe+8eaJ>05IUCU19Fquq$;WZ*L0D+)2>@YMjF-f7kaV;Apb=xImr;rs2 z1-c_NHdE(Ox}zHP?D~vIBucQfyoy93!H2kfehkC}crqpZrDYAgN-dwkOF{+eZFU)sYVFMUQ+C_(nh08R;ufR0 zR6ITJcv)WNZ|rg`7HeQ&pr@zD*Ap!*d8m_Xy+Qi9ce>OJ0127w&;jWS;Nwu+qw?SU z9Z-fs4J*%>n3`4)M;*8Dns)$6TwZQTZ}o)1;%+b^8@)kA8WaizuV&I{H0}g;{IU3c zy*#R3-qakeu+m$TJq_kAeOXwDZ-mEy772Q3Z&Q@!>iOY>BXSfRjN{va5ioSzl|hFm zfKYjZabsiU7^_BAU1@(QN03_KBOTSonW_D@k8He6O-&c&ZJc6>KtO6A3EaO|GakP}GW0k1 z1`Fa(h2zZMi&8!}?=aP{ZX7B+lQI!a_OlUcC|G&?bYOvV^Bt;^7yRh!`y@dn)GKz; zYjj&v^cY1EACeqmSd=;O@?$3-AeBI+bHE|;pBNe2Yio>;ytb=}ZbYeg&^YHgW1@WDS^z*uk^ zX$$hKfC-!96#~}G%nUby><9Lh1c`m`i8>^L_7|p2>c!VARka6rkwwW*7R)&}TP~h# z;#8Y?vn%EPPFps9PED)lG;z=gR)vR*$rQ>2`o#GcNDZ@fxRo96+p#&KH0cse3a-|` z-1^$R>)-YlHJKYUa&yvw5;?A(yIoWmNDUz(wQVhjMB<4BTYj`nRB158Bo*;$8kdRb zxs*{W^}RRk`k~y@K*NVuNuQcTpwEsKoR88}4WNOvWhI0AYex-Qv8Tb#%GdxESI8HX zl_ne>R0Wn#Uhxj&N+c2h_S4hTJRa{c`-{pmgc4vYJ!PMS<_zcFkw%JIq=eD9Z*S6f zcX#KK=>Chiu<_bjS}T&)(bkp(d3eRn$VLhPFp}MmK&7P(4!{QQ0!%dG8o(*Ay3HDF^ zA(MISKhSweWWQLi^zv-@m z)?}OD16wv0H7~m;3X1dw^-9hG!eTn&Eu^uwI07uIsHpH?q~}-m3e}!{PokJWmQX;J z#Md|$rf3}fd9Fq<5OKffN;12|!=!R)Y3T!}UNacJ^yN#9ADGQ%QxReSaDWQXZ3Bdx ze=~(}kJKgU$ZzSRO;uL z#0;btK2t;aF475`5;tF63?$)LU)+XNLNTlQEe~dK`oD~**I%Y~yBJzC}AO@Ih0m3Xc zwrN3U49spspOQG+$PU5~ZQw<`0t8 zkM4EGn)@BC(}r&7rawd+B|p*afoXZ8^Z7+P!x^(#(P52D8sQ7YJh9cZpMQG6r#x@m zsAGrW+yxkeB+VpWgFlea$M6tut`)#)f2tpAo__Gm|B1#i`QdTs{byTQIDf^517>mm z%zj~vKeH3_W}BotnoU=r|Jq#WM&O!l_VV%)Zxt39R(e(x7Z;0qWc`PQ_s-t>)rVYc;EdyF9qWHVv`WEvV+{+^S=gW*Hl9c_*TI(mn ztZ~B*%3OunnLYV@iiP39qWsDem(X!bf%|1kmxjPJaeVI@KE_SzE`4m;@YZbnPUgRC z|3w`$y`i2v>%Hu^@ah8btail)6^DItlr=6C3XR?E2SPh_{qMbJUD>!MTY&45Wd&lC z3g!iDD0DJKx%13=+H<7+1Jl#Cu50E?jx+k2FLq#WjhgMu?hJ(DX<_yLBScG0y_31U z{MOsBdTxT8$Ef|xImTkMI~I27;E8&5s-(iT*_{zM`NNak>UiL^IKH6WgE&{3BOJg^ zx<6O`MR#GYmLC@n8UjKJeYG>VkYlF{IK=G)BroCkG=5L)wM~UTul#?VB;71GJ!`k| zN+do1Y77QRn~E!$a}+NR78+XE9eh5Z0k9Ew0L9LCDxi&V)2;i-pKN2t{Y)!!MeTfZ zK?tlWtLF%OxBwU-M4Rz%y3iC>%K9Ut>rwNE&#(w3;z?Q^f!`bR&7 z=!sa4fK>s=xaA=+qwb3k$U-c88iP&2IN2iszyl@u6)b znB2xhH%I(2wh>-1bBwh8)>Xi~ zM!qXeznw=&WnJ6Dc=07hs&~w&BHYew262%nRgMFX`LxR*Hhj9YYqBQP#MVfcy4@Eyhb{2B ztKJ?~?{kozjzWzpZti2d)dV+S&jJ1nM-8=)oP9F?jzw{!^BT5>G;W+L8bna=tF}5!6Ed>n6-l1M;(fLcxKPpBXMzYnWKB3DgCB;M-Cx= zugPc;Sv3QSTUmB>dQ}fSAP{L&Y&~L(?J-OLlpmh)%Gu&s^rlLDtep{SV!}ETC>N!z zt&L2!?}6gNhL9qfjCwPuV`8krvj^mB|KLNVsawrT2m}&6e;$QI0&SVn@+~?#*vY^1 zT>7M+-*k|zjC6}{PSWWYvD)pC$;4|j*yX+XFIU{?^nqJf_`*u>3L54Jozp7--6362Ym>x{ime`g~2%S1q2;e-QR(} zR!t&-)s6=svtOhVpGX{bUCIIC4?Db(02#s$0X@~bnrUfi32b+k{F<}y)wgax;&c5V zC8vT|)E_2>RuTw=!Eld^zXwQ=DNVyW2ZQN`GwZW;)?}lI-ny{9IAclL%VoV*$$^-3 z_ot9o?Pa{A(fbQI>6R^iKJ2~9$<=eV58Vj;=eQ5EZ|Y+1PFH0NybOWjnVHW!3^2Vb zOOMspT`oDB_;Z%HjNzKY9F6laL5wPRMXB>BiaQPt3)asS`C9itE-e;Ji%}B^39Y~h1LRII=MR|e z!zRe|bGx5H^gqcCrYvX!5RSS-A<`#Ayj%0myv69SQ0&1xUc7up!6NzJp3} zMg?vLZHKQTi^(iRK)`EGyiWx$DKf2~bGc0;Bg3ApP=^;$Sd4o-oWzEs_=S^0KmF;CbE;P8Iy-N@9`RKm9U zuS@p Date: Wed, 10 Apr 2024 12:12:44 +0200 Subject: [PATCH 28/35] Remove redundant tests from test_sign --- .../00000.png | Bin .../00001.png | Bin .../00002.png | Bin .../00003.png | Bin .../00004.png | Bin .../00005.png | Bin .../00006.png | Bin .../00007.png | Bin .../00008.png | Bin .../00009.png | Bin .../00010.png | Bin .../nanos/test_legacy_chainid2/00000.png | Bin 374 -> 0 bytes .../nanos/test_legacy_chainid2/00001.png | Bin 343 -> 0 bytes .../nanos/test_legacy_chainid2/00002.png | Bin 451 -> 0 bytes .../nanos/test_legacy_chainid2/00003.png | Bin 320 -> 0 bytes .../nanos/test_legacy_chainid2/00004.png | Bin 497 -> 0 bytes .../nanos/test_legacy_chainid2/00005.png | Bin 504 -> 0 bytes .../nanos/test_legacy_chainid2/00006.png | Bin 373 -> 0 bytes .../nanos/test_legacy_chainid2/00007.png | Bin 357 -> 0 bytes .../nanos/test_legacy_chainid2/00008.png | Bin 396 -> 0 bytes .../nanos/test_legacy_chainid2/00009.png | Bin 414 -> 0 bytes .../nanos/test_legacy_chainid2/00010.png | Bin 349 -> 0 bytes .../nanos/test_legacy_send/00000.png | Bin 374 -> 0 bytes .../nanos/test_legacy_send/00001.png | Bin 330 -> 0 bytes .../nanos/test_legacy_send/00002.png | Bin 451 -> 0 bytes .../nanos/test_legacy_send/00003.png | Bin 320 -> 0 bytes .../nanos/test_legacy_send/00004.png | Bin 497 -> 0 bytes .../nanos/test_legacy_send/00005.png | Bin 504 -> 0 bytes .../nanos/test_legacy_send/00006.png | Bin 373 -> 0 bytes .../nanos/test_legacy_send/00007.png | Bin 367 -> 0 bytes .../nanos/test_legacy_send/00008.png | Bin 414 -> 0 bytes .../nanos/test_legacy_send/00009.png | Bin 349 -> 0 bytes .../snapshots/nanosp/test_legacy_chainid | 1 + .../snapshots/nanosp/test_legacy_chainid1 | 1 - .../snapshots/nanosp/test_legacy_chainid2 | 1 - .../ragger/snapshots/nanosp/test_legacy_send | 1 - .../00000.png | Bin .../00001.png | Bin .../00002.png | Bin .../00003.png | Bin .../00004.png | Bin .../00005.png | Bin .../00006.png | Bin .../nanox/test_legacy_chainid2/00000.png | Bin 414 -> 0 bytes .../nanox/test_legacy_chainid2/00001.png | Bin 585 -> 0 bytes .../nanox/test_legacy_chainid2/00002.png | Bin 773 -> 0 bytes .../nanox/test_legacy_chainid2/00003.png | Bin 435 -> 0 bytes .../nanox/test_legacy_chainid2/00004.png | Bin 460 -> 0 bytes .../nanox/test_legacy_chainid2/00005.png | Bin 472 -> 0 bytes .../nanox/test_legacy_chainid2/00006.png | Bin 381 -> 0 bytes .../nanox/test_legacy_send/00000.png | Bin 414 -> 0 bytes .../nanox/test_legacy_send/00001.png | Bin 566 -> 0 bytes .../nanox/test_legacy_send/00002.png | Bin 773 -> 0 bytes .../nanox/test_legacy_send/00003.png | Bin 434 -> 0 bytes .../nanox/test_legacy_send/00004.png | Bin 472 -> 0 bytes .../nanox/test_legacy_send/00005.png | Bin 381 -> 0 bytes .../00000.png | Bin .../00001.png | Bin .../00002.png | Bin .../00003.png | Bin .../00004.png | Bin .../stax/test_legacy_chainid2/00000.png | Bin 7724 -> 0 bytes .../stax/test_legacy_chainid2/00001.png | Bin 19504 -> 0 bytes .../stax/test_legacy_chainid2/00002.png | Bin 8538 -> 0 bytes .../stax/test_legacy_chainid2/00003.png | Bin 8665 -> 0 bytes .../stax/test_legacy_chainid2/00004.png | Bin 6108 -> 0 bytes .../snapshots/stax/test_legacy_send/00000.png | Bin 8691 -> 0 bytes .../snapshots/stax/test_legacy_send/00001.png | Bin 18715 -> 0 bytes .../snapshots/stax/test_legacy_send/00002.png | Bin 9597 -> 0 bytes .../snapshots/stax/test_legacy_send/00003.png | Bin 6108 -> 0 bytes tests/ragger/test_sign.py | 34 +----------------- 71 files changed, 2 insertions(+), 36 deletions(-) rename tests/ragger/snapshots/nanos/{test_legacy_chainid1 => test_legacy_chainid}/00000.png (100%) rename tests/ragger/snapshots/nanos/{test_legacy_chainid1 => test_legacy_chainid}/00001.png (100%) rename tests/ragger/snapshots/nanos/{test_legacy_chainid1 => test_legacy_chainid}/00002.png (100%) rename tests/ragger/snapshots/nanos/{test_legacy_chainid1 => test_legacy_chainid}/00003.png (100%) rename tests/ragger/snapshots/nanos/{test_legacy_chainid1 => test_legacy_chainid}/00004.png (100%) rename tests/ragger/snapshots/nanos/{test_legacy_chainid1 => test_legacy_chainid}/00005.png (100%) rename tests/ragger/snapshots/nanos/{test_legacy_chainid1 => test_legacy_chainid}/00006.png (100%) rename tests/ragger/snapshots/nanos/{test_legacy_chainid1 => test_legacy_chainid}/00007.png (100%) rename tests/ragger/snapshots/nanos/{test_legacy_chainid1 => test_legacy_chainid}/00008.png (100%) rename tests/ragger/snapshots/nanos/{test_legacy_chainid1 => test_legacy_chainid}/00009.png (100%) rename tests/ragger/snapshots/nanos/{test_legacy_chainid1 => test_legacy_chainid}/00010.png (100%) delete mode 100644 tests/ragger/snapshots/nanos/test_legacy_chainid2/00000.png delete mode 100644 tests/ragger/snapshots/nanos/test_legacy_chainid2/00001.png delete mode 100644 tests/ragger/snapshots/nanos/test_legacy_chainid2/00002.png delete mode 100644 tests/ragger/snapshots/nanos/test_legacy_chainid2/00003.png delete mode 100644 tests/ragger/snapshots/nanos/test_legacy_chainid2/00004.png delete mode 100644 tests/ragger/snapshots/nanos/test_legacy_chainid2/00005.png delete mode 100644 tests/ragger/snapshots/nanos/test_legacy_chainid2/00006.png delete mode 100644 tests/ragger/snapshots/nanos/test_legacy_chainid2/00007.png delete mode 100644 tests/ragger/snapshots/nanos/test_legacy_chainid2/00008.png delete mode 100644 tests/ragger/snapshots/nanos/test_legacy_chainid2/00009.png delete mode 100644 tests/ragger/snapshots/nanos/test_legacy_chainid2/00010.png delete mode 100644 tests/ragger/snapshots/nanos/test_legacy_send/00000.png delete mode 100644 tests/ragger/snapshots/nanos/test_legacy_send/00001.png delete mode 100644 tests/ragger/snapshots/nanos/test_legacy_send/00002.png delete mode 100644 tests/ragger/snapshots/nanos/test_legacy_send/00003.png delete mode 100644 tests/ragger/snapshots/nanos/test_legacy_send/00004.png delete mode 100644 tests/ragger/snapshots/nanos/test_legacy_send/00005.png delete mode 100644 tests/ragger/snapshots/nanos/test_legacy_send/00006.png delete mode 100644 tests/ragger/snapshots/nanos/test_legacy_send/00007.png delete mode 100644 tests/ragger/snapshots/nanos/test_legacy_send/00008.png delete mode 100644 tests/ragger/snapshots/nanos/test_legacy_send/00009.png create mode 120000 tests/ragger/snapshots/nanosp/test_legacy_chainid delete mode 120000 tests/ragger/snapshots/nanosp/test_legacy_chainid1 delete mode 120000 tests/ragger/snapshots/nanosp/test_legacy_chainid2 delete mode 120000 tests/ragger/snapshots/nanosp/test_legacy_send rename tests/ragger/snapshots/nanox/{test_legacy_chainid1 => test_legacy_chainid}/00000.png (100%) rename tests/ragger/snapshots/nanox/{test_legacy_chainid1 => test_legacy_chainid}/00001.png (100%) rename tests/ragger/snapshots/nanox/{test_legacy_chainid1 => test_legacy_chainid}/00002.png (100%) rename tests/ragger/snapshots/nanox/{test_legacy_chainid1 => test_legacy_chainid}/00003.png (100%) rename tests/ragger/snapshots/nanox/{test_legacy_chainid1 => test_legacy_chainid}/00004.png (100%) rename tests/ragger/snapshots/nanox/{test_legacy_chainid1 => test_legacy_chainid}/00005.png (100%) rename tests/ragger/snapshots/nanox/{test_legacy_chainid1 => test_legacy_chainid}/00006.png (100%) delete mode 100644 tests/ragger/snapshots/nanox/test_legacy_chainid2/00000.png delete mode 100644 tests/ragger/snapshots/nanox/test_legacy_chainid2/00001.png delete mode 100644 tests/ragger/snapshots/nanox/test_legacy_chainid2/00002.png delete mode 100644 tests/ragger/snapshots/nanox/test_legacy_chainid2/00003.png delete mode 100644 tests/ragger/snapshots/nanox/test_legacy_chainid2/00004.png delete mode 100644 tests/ragger/snapshots/nanox/test_legacy_chainid2/00005.png delete mode 100644 tests/ragger/snapshots/nanox/test_legacy_chainid2/00006.png delete mode 100644 tests/ragger/snapshots/nanox/test_legacy_send/00000.png delete mode 100644 tests/ragger/snapshots/nanox/test_legacy_send/00001.png delete mode 100644 tests/ragger/snapshots/nanox/test_legacy_send/00002.png delete mode 100644 tests/ragger/snapshots/nanox/test_legacy_send/00003.png delete mode 100644 tests/ragger/snapshots/nanox/test_legacy_send/00004.png delete mode 100644 tests/ragger/snapshots/nanox/test_legacy_send/00005.png rename tests/ragger/snapshots/stax/{test_legacy_chainid1 => test_legacy_chainid}/00000.png (100%) rename tests/ragger/snapshots/stax/{test_legacy_chainid1 => test_legacy_chainid}/00001.png (100%) rename tests/ragger/snapshots/stax/{test_legacy_chainid1 => test_legacy_chainid}/00002.png (100%) rename tests/ragger/snapshots/stax/{test_legacy_chainid1 => test_legacy_chainid}/00003.png (100%) rename tests/ragger/snapshots/stax/{test_legacy_chainid1 => test_legacy_chainid}/00004.png (100%) delete mode 100644 tests/ragger/snapshots/stax/test_legacy_chainid2/00000.png delete mode 100644 tests/ragger/snapshots/stax/test_legacy_chainid2/00001.png delete mode 100644 tests/ragger/snapshots/stax/test_legacy_chainid2/00002.png delete mode 100644 tests/ragger/snapshots/stax/test_legacy_chainid2/00003.png delete mode 100644 tests/ragger/snapshots/stax/test_legacy_chainid2/00004.png delete mode 100644 tests/ragger/snapshots/stax/test_legacy_send/00000.png delete mode 100644 tests/ragger/snapshots/stax/test_legacy_send/00001.png delete mode 100644 tests/ragger/snapshots/stax/test_legacy_send/00002.png delete mode 100644 tests/ragger/snapshots/stax/test_legacy_send/00003.png diff --git a/tests/ragger/snapshots/nanos/test_legacy_chainid1/00000.png b/tests/ragger/snapshots/nanos/test_legacy_chainid/00000.png similarity index 100% rename from tests/ragger/snapshots/nanos/test_legacy_chainid1/00000.png rename to tests/ragger/snapshots/nanos/test_legacy_chainid/00000.png diff --git a/tests/ragger/snapshots/nanos/test_legacy_chainid1/00001.png b/tests/ragger/snapshots/nanos/test_legacy_chainid/00001.png similarity index 100% rename from tests/ragger/snapshots/nanos/test_legacy_chainid1/00001.png rename to tests/ragger/snapshots/nanos/test_legacy_chainid/00001.png diff --git a/tests/ragger/snapshots/nanos/test_legacy_chainid1/00002.png b/tests/ragger/snapshots/nanos/test_legacy_chainid/00002.png similarity index 100% rename from tests/ragger/snapshots/nanos/test_legacy_chainid1/00002.png rename to tests/ragger/snapshots/nanos/test_legacy_chainid/00002.png diff --git a/tests/ragger/snapshots/nanos/test_legacy_chainid1/00003.png b/tests/ragger/snapshots/nanos/test_legacy_chainid/00003.png similarity index 100% rename from tests/ragger/snapshots/nanos/test_legacy_chainid1/00003.png rename to tests/ragger/snapshots/nanos/test_legacy_chainid/00003.png diff --git a/tests/ragger/snapshots/nanos/test_legacy_chainid1/00004.png b/tests/ragger/snapshots/nanos/test_legacy_chainid/00004.png similarity index 100% rename from tests/ragger/snapshots/nanos/test_legacy_chainid1/00004.png rename to tests/ragger/snapshots/nanos/test_legacy_chainid/00004.png diff --git a/tests/ragger/snapshots/nanos/test_legacy_chainid1/00005.png b/tests/ragger/snapshots/nanos/test_legacy_chainid/00005.png similarity index 100% rename from tests/ragger/snapshots/nanos/test_legacy_chainid1/00005.png rename to tests/ragger/snapshots/nanos/test_legacy_chainid/00005.png diff --git a/tests/ragger/snapshots/nanos/test_legacy_chainid1/00006.png b/tests/ragger/snapshots/nanos/test_legacy_chainid/00006.png similarity index 100% rename from tests/ragger/snapshots/nanos/test_legacy_chainid1/00006.png rename to tests/ragger/snapshots/nanos/test_legacy_chainid/00006.png diff --git a/tests/ragger/snapshots/nanos/test_legacy_chainid1/00007.png b/tests/ragger/snapshots/nanos/test_legacy_chainid/00007.png similarity index 100% rename from tests/ragger/snapshots/nanos/test_legacy_chainid1/00007.png rename to tests/ragger/snapshots/nanos/test_legacy_chainid/00007.png diff --git a/tests/ragger/snapshots/nanos/test_legacy_chainid1/00008.png b/tests/ragger/snapshots/nanos/test_legacy_chainid/00008.png similarity index 100% rename from tests/ragger/snapshots/nanos/test_legacy_chainid1/00008.png rename to tests/ragger/snapshots/nanos/test_legacy_chainid/00008.png diff --git a/tests/ragger/snapshots/nanos/test_legacy_chainid1/00009.png b/tests/ragger/snapshots/nanos/test_legacy_chainid/00009.png similarity index 100% rename from tests/ragger/snapshots/nanos/test_legacy_chainid1/00009.png rename to tests/ragger/snapshots/nanos/test_legacy_chainid/00009.png diff --git a/tests/ragger/snapshots/nanos/test_legacy_chainid1/00010.png b/tests/ragger/snapshots/nanos/test_legacy_chainid/00010.png similarity index 100% rename from tests/ragger/snapshots/nanos/test_legacy_chainid1/00010.png rename to tests/ragger/snapshots/nanos/test_legacy_chainid/00010.png diff --git a/tests/ragger/snapshots/nanos/test_legacy_chainid2/00000.png b/tests/ragger/snapshots/nanos/test_legacy_chainid2/00000.png deleted file mode 100644 index 8d84cc70fea8013b7e8b25c0982ce142fa103d5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 374 zcmV-+0g3*JP)K?4J2QqX3 zXn7ePqhBDwvA-|J28LIrjF%tX0z{3v6!_gF&(SYH)S*7TN;1RxW-%}TLH9_+sttDO z-T32w&rL(!1@Vr`jm5G(8dd=Ruu#)JAN?l#rFLU`oQ(r?$33AC7s0}pw!fi~(9k^# zU9aci?pXN=I7A<-f!Mw2untnw9MivqZYw}c5&)gweYhbTnv#2#t$0X2wST7_1F;LR zw?>Da2SkSfG>qWq1mej-6nW@2l+Z=0om5jdB%3o3Qx19_LNUlTqF4R_1Iaj%@^2O= z@;n%h1N>H$2;%-~Dvx1!0LtkT-;cq73rgisOElFtPbcL{d3TfNQvm<~003s>1*i4o Uje8$F8UO$Q07*qoM6N<$g5rpv%m4rY diff --git a/tests/ragger/snapshots/nanos/test_legacy_chainid2/00001.png b/tests/ragger/snapshots/nanos/test_legacy_chainid2/00001.png deleted file mode 100644 index b66c0ff389aa754aaaa5c7a924bdd75121370db5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 343 zcmV-d0jU0oP)QVMvNhs#~6qJ004ltY^$RHwpEDdupEz)#={f) zX8F02Q4FS}N6FiLJezti!h02#&uv)J2HcWgCw}NVzp*_>G)_)F=)`Mr(EVwwwCD>| z%SrHP=lVq)t$d`rg3m1?3X5f^CQFddy!*gJfP7^KZyF1b&+fz`B5uocMZaVdR=%6q z_08XcSqJIQ{kk_HC*EewKDiMy4S`bi~Q~>@jZT%~IjZWtQH7Heq%96$iI2NE(x~YF%IhJvQV*x~_ pE3A$qfKph^4<-Qs0001hZ+5Uw)Q|6sXTbmf002ovPDHLkV1oCrlNbO1 diff --git a/tests/ragger/snapshots/nanos/test_legacy_chainid2/00002.png b/tests/ragger/snapshots/nanos/test_legacy_chainid2/00002.png deleted file mode 100644 index c2af54e964e6227cfbee76037f4dba52af08a7ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 451 zcmV;!0X+VRP){RR6IsdoDLerDbbIUQ1X*Y%zfRtSZt>P- zR98rsaf8&R8zXtO=g^AAERP(cMKnjd?1}>p;3>0IyR?D~ugNsmDGznoTD7$}r4_{2 zf|6d9<^~nci1SyUvvF7C)=ZWC?OI?k<@mfUoTErknu&c9Ry7xGjex`6HWfd0!Hl z^ryc0TbOl{{{39n4oD-~tfL>?B%l^>;?eg;7;22ZG31~ptU^5vzYmKAOR>P|&=8&c zRkP+Z0{vPLRCOvxpM+|&3x-8wkj(bsa5z?94OPY79XPJ?{W4%<000007{d!Z1i*;c Sb~u#)00004qvBJ+KYLdy}Tg`YuKtuykk|arz%w^wVUCQ{*)%Q&hezY82 z&EPjs%u{+jjhzZ0P0)S}S3}}^_5u*6-%HD~hW~O<`^({RC;mRsXvVVGsLbLCYVslY znkt=$Xy1P0ZdnHyV>&3hL{aZxS;y$<=8_aN(4HoTl+081n3zwW&HNKUe_=JxDNW2? z8^WDTJ^}oIA1$JfOvlv&{FiW9)Krg8zu_=_PV59YZPajY7y@7EeR|RcXfogG{Rbkr zI=z1}xd(TWS?EswJ9!bh>qi)=^^@lHEeavxQeL>DmtOn%izGf z)>9EwYA?~UOmr3+sTY$ywwM(sBv3DT0U}?*Q;W3z?;U6Ce+b=Q!e#}y9(KY({7{Fy z@6Uc7{ppkmDv=E+m4KoIx2maqHY1(h90*GEp+hWQ2E^`5(Qy4Hn^FsM+UD`Tc&G8r zM(s|{#Q~os8g5CBY(QW>Uhk|arzBuM~2k=$~ha82FQ00000NkvXXu0mjfvN__l diff --git a/tests/ragger/snapshots/nanos/test_legacy_chainid2/00005.png b/tests/ragger/snapshots/nanos/test_legacy_chainid2/00005.png deleted file mode 100644 index fd3155c0d349a1236eb862c8f4f5fc3c3a981ccf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 504 zcmVL$5ClOG1itKBTNjbPGWxz9A5}p1 zjy2;k()38LrSYNxr54ibzW~490~9g(J+&-r^Vi@&?f~_Sago#$5lH3 z?AsBK%Q|2(RR>vyNG4^^0G4%(on~%1f(FhfJ6qDplhzo*r_z|24k-T}fWNTvn|2nn zB!nmPK7hqny_|4r$y}Ctv&KwA-%GeOC|9o9@6Jmy-*37nHQXB&g|GBJW?BHI^R3>W z5XIHu{hNt3c#=4Up5)ufA`Mj&M<7qvxQv<(s(Pdtv0I9%c_i0XGJ~hWXU_KwGUbvJ z+VWabxs@`OvSN3kQB`gi5Td< zCNdD0-g7XjD`DKo>IK-ssAV(6ZeuYnD{V^0ojtC0sWO?x-863hBI?UV_L4%&S(1iJ zdo|QGQ!>Uiv|U2pq8^4-y>Fv^0jj67HeW#4-vz`W+n0t`>yiJ)(l8{0 uN`KP)C0a|2oddYDBwFnQ@V4&YmO|a5C2Z9{!HHY}>h}gC3s^}|C`SlNBi2Mc6JQiNjM{?U}L#4V(|#TjI_WV@yI*-`KAJ`lgkgC@g2^rf?_0 z*1b%|Xkn7YR%T=#+74maX^C@n{N_9-cPeO})NnO24*ybp@)UrS&wo|lA&S&ce=>-{ zO0Wy99FHe99%oll~ zz5}AjP~QzkYN+oFd@vI{g=XUP9?rcN-C*x_cW<5gg}Br&Q>HbVHL`4NN5HobyWUJu zA{Borm6TNX))gFE$JJx0+$(mE(Yk0xkJFY;r?PON)~RI%D3SFiY!cW#D=cH*(gEzD zi>$ZaZj@y+A4KYgcCkw9)V&)z@HWso1poj50JtqLu@3@R;aRb_00000NkvXXu0mjf D+5(z; diff --git a/tests/ragger/snapshots/nanos/test_legacy_chainid2/00008.png b/tests/ragger/snapshots/nanos/test_legacy_chainid2/00008.png deleted file mode 100644 index 193f82145a60c5cf6a69371391678a7acdcb08ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 396 zcmV;70dxL|P)g+aIBxf2-$)FVxO{u&Y zuu$F4$WF|rb7v5MY_B+bdGjBW%|v$uLnbh)85iAPEW*@9X&->#@pu+e_N)qWi3BN* qpDM9XEN#lCsGTPO00000Nb>`EQQK!X#Ab2;0000j~f|{k#}B z4)Di%0(GQh%XXzDG$sKK-Q2JkKR-`QsiPFD-4d_!i{fwH;J|_aEL%ZYNu#B0FJ7G| z;=_VQWOA9;dQ4Y9)LpKCV=ri`X({49JagUwO3&5UdSK)wEJxPN%9wG}45n;lzK(aC zKtbL$y*-#9uSql`7 zENOEh^0jsFWbV&<+yj5)WEX_aERLO-`${sQhD#B5ZCio#Fr4qHlr^7X|9DL69eFa= z#kf#}$Pcl(QEE=tNl8Pt$o;~Fk*8r@j8mpwSGW8d!1&11FbzPh@^gWj=oh7f%f7G)4s^6#xJL07*qo IM6N<$g02I(Gynhq diff --git a/tests/ragger/snapshots/nanos/test_legacy_chainid2/00010.png b/tests/ragger/snapshots/nanos/test_legacy_chainid2/00010.png deleted file mode 100644 index ce795f34e8569e986af689fded3b59c9a8af2961..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 349 zcmV-j0iyniP)O41}p;-~WL<=z+0=1Om1tEU@3H#qtw22}5*_5JCvCo4!52c$FXo$VhXU?0M$^Bekqgf%Ka;M*^X|4 zEs9YCQ(xfJKmNC#+8dY%2&wT+>D^<3C%}_*k1^mvtO~`RE00000NkvXXu0mjf-kqOA diff --git a/tests/ragger/snapshots/nanos/test_legacy_send/00000.png b/tests/ragger/snapshots/nanos/test_legacy_send/00000.png deleted file mode 100644 index 8d84cc70fea8013b7e8b25c0982ce142fa103d5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 374 zcmV-+0g3*JP)K?4J2QqX3 zXn7ePqhBDwvA-|J28LIrjF%tX0z{3v6!_gF&(SYH)S*7TN;1RxW-%}TLH9_+sttDO z-T32w&rL(!1@Vr`jm5G(8dd=Ruu#)JAN?l#rFLU`oQ(r?$33AC7s0}pw!fi~(9k^# zU9aci?pXN=I7A<-f!Mw2untnw9MivqZYw}c5&)gweYhbTnv#2#t$0X2wST7_1F;LR zw?>Da2SkSfG>qWq1mej-6nW@2l+Z=0om5jdB%3o3Qx19_LNUlTqF4R_1Iaj%@^2O= z@;n%h1N>H$2;%-~Dvx1!0LtkT-;cq73rgisOElFtPbcL{d3TfNQvm<~003s>1*i4o Uje8$F8UO$Q07*qoM6N<$g5rpv%m4rY diff --git a/tests/ragger/snapshots/nanos/test_legacy_send/00001.png b/tests/ragger/snapshots/nanos/test_legacy_send/00001.png deleted file mode 100644 index 7ebda4f3adad095152f16d397131c7f7471ca83a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 330 zcmV-Q0k!^#P)A70&~wwBNIbjXovs+0D!jan;`@CO|a*boR8Sz=?Q!5 z`MR7?G$t31oVNRTHr1Xb-j(y8Tj%+LSdv~dJ#_VNSRW$_7bi_R@mfr}KZS)7y+O4s zf=4^mFG9A)nQn@>wus32o~CwbK{owvgDwF`J3DyOH~?vNGl__JEYmOXV~4QvUMANM z{~oNGq}BVn*CAiDt?GR;697%&!rr%r;A(ikGl;=R(1k{Fb+Qv48=RKpW(Q4vTPFO2|!`%tQ%d711)GU2*6{RR6IsdoDLerDbbIUQ1X*Y%zfRtSZt>P- zR98rsaf8&R8zXtO=g^AAERP(cMKnjd?1}>p;3>0IyR?D~ugNsmDGznoTD7$}r4_{2 zf|6d9<^~nci1SyUvvF7C)=ZWC?OI?k<@mfUoTErknu&c9Ry7xGjex`6HWfd0!Hl z^ryc0TbOl{{{39n4oD-~tfL>?B%l^>;?eg;7;22ZG31~ptU^5vzYmKAOR>P|&=8&c zRkP+Z0{vPLRCOvxpM+|&3x-8wkj(bsa5z?94OPY79XPJ?{W4%<000007{d!Z1i*;c Sb~u#)00004qvBJ+KYLdy}Tg`YuKtuykk|arz%w^wVUCQ{*)%Q&hezY82 z&EPjs%u{+jjhzZ0P0)S}S3}}^_5u*6-%HD~hW~O<`^({RC;mRsXvVVGsLbLCYVslY znkt=$Xy1P0ZdnHyV>&3hL{aZxS;y$<=8_aN(4HoTl+081n3zwW&HNKUe_=JxDNW2? z8^WDTJ^}oIA1$JfOvlv&{FiW9)Krg8zu_=_PV59YZPajY7y@7EeR|RcXfogG{Rbkr zI=z1}xd(TWS?EswJ9!bh>qi)=^^@lHEeavxQeL>DmtOn%izGf z)>9EwYA?~UOmr3+sTY$ywwM(sBv3DT0U}?*Q;W3z?;U6Ce+b=Q!e#}y9(KY({7{Fy z@6Uc7{ppkmDv=E+m4KoIx2maqHY1(h90*GEp+hWQ2E^`5(Qy4Hn^FsM+UD`Tc&G8r zM(s|{#Q~os8g5CBY(QW>Uhk|arzBuM~2k=$~ha82FQ00000NkvXXu0mjfvN__l diff --git a/tests/ragger/snapshots/nanos/test_legacy_send/00005.png b/tests/ragger/snapshots/nanos/test_legacy_send/00005.png deleted file mode 100644 index fd3155c0d349a1236eb862c8f4f5fc3c3a981ccf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 504 zcmVL$5ClOG1itKBTNjbPGWxz9A5}p1 zjy2;k()38LrSYNxr54ibzW~490~9g(J+&-r^Vi@&?f~_Sago#$5lH3 z?AsBK%Q|2(RR>vyNG4^^0G4%(on~%1f(FhfJ6qDplhzo*r_z|24k-T}fWNTvn|2nn zB!nmPK7hqny_|4r$y}Ctv&KwA-%GeOC|9o9@6Jmy-*37nHQXB&g|GBJW?BHI^R3>W z5XIHu{hNt3c#=4Up5)ufA`Mj&M<7qvxQv<(s(Pdtv0I9%c_i0XGJ~hWXU_KwGUbvJ z+VWabxs@`OvSN3kQB`gi5Td< zCNdD0-g7XjD`DKo>IK-ssAV(6ZeuYnD{V^0ojtC0sWO?x-863hBI?UV_L4%&S(1iJ zdo|QGQ!>Uiv|U2pq8^4-y>Fv^0jj67HeW#4-vz`W+n0t`>yiJ)(l8{0 uN`KP)C0a|2oddYDBwFnQ@V4&YmO|a5C2Z9{!HHY}>h}gC3s^}|C`SlNBi2Mc6JQiNjM{?U}L#4V(|#TjI_WV@yI*-`KAJ`lgkgC@g2^rf?_0 z*1b%|Xkn7YR%T=#+74maX^C@n{N_9-cPeO})NnO24*ybp@)UrS&wo|lA&S&ce=>-{ zO0Wy9S;`r9!}Z(cNJS1~P!*jxMpR{sE^Ji<_{4 zed*0qQ4qS&;+ZHCjTOnZfM`Cq*|S3OQGx>sx>g*RZT2Rn}|-e zuOL%jc}ppk*!k1ga(Ebb%FtZ2n&~FAoLHd)#BAJ-QUMTj~f|{k#}B z4)Di%0(GQh%XXzDG$sKK-Q2JkKR-`QsiPFD-4d_!i{fwH;J|_aEL%ZYNu#B0FJ7G| z;=_VQWOA9;dQ4Y9)LpKCV=ri`X({49JagUwO3&5UdSK)wEJxPN%9wG}45n;lzK(aC zKtbL$y*-#9uSql`7 zENOEh^0jsFWbV&<+yj5)WEX_aERLO-`${sQhD#B5ZCio#Fr4qHlr^7X|9DL69eFa= z#kf#}$Pcl(QEE=tNl8Pt$o;~Fk*8r@j8mpwSGW8d!1&11FbzPh@^gWj=oh7f%f7G)4s^6#xJL07*qo IM6N<$g02I(Gynhq diff --git a/tests/ragger/snapshots/nanos/test_legacy_send/00009.png b/tests/ragger/snapshots/nanos/test_legacy_send/00009.png deleted file mode 100644 index ce795f34e8569e986af689fded3b59c9a8af2961..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 349 zcmV-j0iyniP)O41}p;-~WL<=z+0=1Om1tEU@3H#qtw22}5*_5JCvCo4!52c$FXo$VhXU?0M$^Bekqgf%Ka;M*^X|4 zEs9YCQ(xfJKmNC#+8dY%2&wT+>D^<3C%}_*k1^mvtO~`RE00000NkvXXu0mjf-kqOA diff --git a/tests/ragger/snapshots/nanosp/test_legacy_chainid b/tests/ragger/snapshots/nanosp/test_legacy_chainid new file mode 120000 index 0000000..d359734 --- /dev/null +++ b/tests/ragger/snapshots/nanosp/test_legacy_chainid @@ -0,0 +1 @@ +../nanox/test_legacy_chainid \ No newline at end of file diff --git a/tests/ragger/snapshots/nanosp/test_legacy_chainid1 b/tests/ragger/snapshots/nanosp/test_legacy_chainid1 deleted file mode 120000 index 39f93b0..0000000 --- a/tests/ragger/snapshots/nanosp/test_legacy_chainid1 +++ /dev/null @@ -1 +0,0 @@ -../nanox/test_legacy_chainid1 \ No newline at end of file diff --git a/tests/ragger/snapshots/nanosp/test_legacy_chainid2 b/tests/ragger/snapshots/nanosp/test_legacy_chainid2 deleted file mode 120000 index c7a3a54..0000000 --- a/tests/ragger/snapshots/nanosp/test_legacy_chainid2 +++ /dev/null @@ -1 +0,0 @@ -../nanox/test_legacy_chainid2 \ No newline at end of file diff --git a/tests/ragger/snapshots/nanosp/test_legacy_send b/tests/ragger/snapshots/nanosp/test_legacy_send deleted file mode 120000 index bcf0aae..0000000 --- a/tests/ragger/snapshots/nanosp/test_legacy_send +++ /dev/null @@ -1 +0,0 @@ -../nanox/test_legacy_send \ No newline at end of file diff --git a/tests/ragger/snapshots/nanox/test_legacy_chainid1/00000.png b/tests/ragger/snapshots/nanox/test_legacy_chainid/00000.png similarity index 100% rename from tests/ragger/snapshots/nanox/test_legacy_chainid1/00000.png rename to tests/ragger/snapshots/nanox/test_legacy_chainid/00000.png diff --git a/tests/ragger/snapshots/nanox/test_legacy_chainid1/00001.png b/tests/ragger/snapshots/nanox/test_legacy_chainid/00001.png similarity index 100% rename from tests/ragger/snapshots/nanox/test_legacy_chainid1/00001.png rename to tests/ragger/snapshots/nanox/test_legacy_chainid/00001.png diff --git a/tests/ragger/snapshots/nanox/test_legacy_chainid1/00002.png b/tests/ragger/snapshots/nanox/test_legacy_chainid/00002.png similarity index 100% rename from tests/ragger/snapshots/nanox/test_legacy_chainid1/00002.png rename to tests/ragger/snapshots/nanox/test_legacy_chainid/00002.png diff --git a/tests/ragger/snapshots/nanox/test_legacy_chainid1/00003.png b/tests/ragger/snapshots/nanox/test_legacy_chainid/00003.png similarity index 100% rename from tests/ragger/snapshots/nanox/test_legacy_chainid1/00003.png rename to tests/ragger/snapshots/nanox/test_legacy_chainid/00003.png diff --git a/tests/ragger/snapshots/nanox/test_legacy_chainid1/00004.png b/tests/ragger/snapshots/nanox/test_legacy_chainid/00004.png similarity index 100% rename from tests/ragger/snapshots/nanox/test_legacy_chainid1/00004.png rename to tests/ragger/snapshots/nanox/test_legacy_chainid/00004.png diff --git a/tests/ragger/snapshots/nanox/test_legacy_chainid1/00005.png b/tests/ragger/snapshots/nanox/test_legacy_chainid/00005.png similarity index 100% rename from tests/ragger/snapshots/nanox/test_legacy_chainid1/00005.png rename to tests/ragger/snapshots/nanox/test_legacy_chainid/00005.png diff --git a/tests/ragger/snapshots/nanox/test_legacy_chainid1/00006.png b/tests/ragger/snapshots/nanox/test_legacy_chainid/00006.png similarity index 100% rename from tests/ragger/snapshots/nanox/test_legacy_chainid1/00006.png rename to tests/ragger/snapshots/nanox/test_legacy_chainid/00006.png diff --git a/tests/ragger/snapshots/nanox/test_legacy_chainid2/00000.png b/tests/ragger/snapshots/nanox/test_legacy_chainid2/00000.png deleted file mode 100644 index 487ea10fcfeb2f3e6b79239459672251d49addd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 414 zcmV;P0b%}$P)vpO}&+|8}fC)JNq`>?#dJ%s{^>GN_4usXQirk{^@^BA?p!El9&T9q~zMsh2=YdLB`_ONiP zKy6XlUGFZ>Cn7mP3u*yRe-ILhObGx00001h*HTI;rFcu>z^}Ie zDW!C%{x%!LvGfA@rwc_qc%!F`3ty4bLgxy8y zh9NY6?aBiH0000045fiS5-t-LTt*HzLwpCY7q^ z(Ee>Os)qJ&1~%{nUdR*d!=6y}{+wzld>jb})~3ycnytk21l)8)p_Qf|;SM{Ub}p<` zMufAQ`bX^A>VkJ#b7e&Nkt~(%j&^_5hFCJCdL*tV8e zT1}lNb(>~$e#HQz6Sd~9(#$W>;pn+tO?*KmU!2Rdp-(cd^S`I2H!_Lb!-ZKqHfmt! zqM4VE0j^rVSM{*MXf8^rR0g2A_3qzDngxYsG@&8AX_HDh){5`|00000prXx&#^Lf{ z5g5^ADC6_Yqlp`_*}<&J7DwKmPv>xU^gnxZHq{I+M)(1_5swN(6E+3_0000005tpq Xu)+0^FXSM?&?tHk}ux;C`ecLu=gSX6Lat5e?s%%i9aT`@9hm9L(b**iA zo+UCs1q)pJV?DGHk7o2q=I;S=!=}15NH6Gf_nw&(aE!ct6uh44))-l*iOrhN9})SQ zc<=m~;O>*rb{ehd^*3Qc2qA=!&m=2Dy9dRnm{YZUTkl6L_I7!t7#$a?w@!-PZtZIw zi|!tcA_EaAlM_EKrHx$`Sz2AF>#*yI`$O)V9RhO3E}VpK)s6Ah0j~Xb;j9=JC8KLL z5Fne>rRd{NKg55z;n-Z5042MNH>zVKFJom1M)N`tDFW=oUe)>^4ZN#)TrWq1V?(0v z?rCLV2W4%#{zn71op;v9+*cDHLKtL5|1q3UGx`t1IhYBbLNngb+dqA%FY=&*w%zyr@4#00000NkvXXu0mjf D0V!mH diff --git a/tests/ragger/snapshots/nanox/test_legacy_chainid2/00003.png b/tests/ragger/snapshots/nanox/test_legacy_chainid2/00003.png deleted file mode 100644 index def1ae256d250557467118da0b54f98e5b760da5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 435 zcmV;k0ZjghP)5~h#pO$v3F31apnvDaxcPrmshu28wQ!^Z_^1i(cg?5L}C_-^diXQz!l*I000000000000000 d0002o`~hxgMxkz&7a0Hm002ovPDHLkV1lCl%838~ diff --git a/tests/ragger/snapshots/nanox/test_legacy_chainid2/00004.png b/tests/ragger/snapshots/nanox/test_legacy_chainid2/00004.png deleted file mode 100644 index 7c87ee5652d3fec1c7410ea31582e28f2b0da7ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 460 zcmV;-0WYzV(uqBe z-ty?ZXl-}e*tPZq5iO0=*`SuHtFKedt$%nuiqThdi(dXWj_P_Y^?Yb|>9FNZD;~!E zl(hz6?y-!ZYvvtY8h;dFmelejV9hdm*s=UF7~B8x1JHOkcK+P|WY}C0_;kSOFwR_H zEMo4YlmjrlHzHtJg{~b#>M0^hTzRRdC0J!s|BJKzti@?XSn%=uKGh_XeK$s`$-Xnj zU?!^2Ob1D33~ohw0RR9100000000000001h+x!C6P)Nkl`l1;k+@4An6g^M6kcbtxu@7*hfO000000DuchDWw$aQJnB& zJ%BsK3VrpQ1hnYqoNY&PO0WdV>i`7cs)e_@w@x()p@w=B24`klR6(CLpxqtlZO|2 zIWjpO-F~*EHtLqUMt)Wc_@bMv^h#{CUFW0M(vJ1P=5N1GhWcHM(-Xu*&bc@D4_o$^ z7Y|pL)I@*DzttR=&yLH#^{|TW)8Sp0qphw%epiuSUG#WHS~ht|j~;`U4>BXmdi9@& zuz>%00000G5i7^TsbXePb2LB O0000U4`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~ diff --git a/tests/ragger/snapshots/nanox/test_legacy_send/00000.png b/tests/ragger/snapshots/nanox/test_legacy_send/00000.png deleted file mode 100644 index 487ea10fcfeb2f3e6b79239459672251d49addd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 414 zcmV;P0b%}$P)vpO}&+|8}fC)JNq`>?#dJ%s{^>GN_4usXQirk{^@^BA?p!El9&T9q~zMsh2=YdLB`_ONiP zKy6XlUGFZ>Cn7mP3u*rzd`AnA zQc8#FU$enH_Wp?$ph?bo+qPXz$HV@7RH(j@t%`n%u4J_+;#WZNO_U#Z-N}cd+ELma zLN-61w{45newx7mJEwG^H9ms> zM7zkAYV3`(H_02ngj-($ov(j0eShy*!)FhVB;!1nUi}h}t>r7Ny3X^)lb=Tn(7I7O z+*RuNB|V%zIP=68TJno?={Af>M;HG0)bv^=v3u~}d+bt;8me>g%qzwK_nzFwp8dAw z;*`o|fZ{I?viE9{mTVYLXsBO~N#z{titqpc006MF#@$fK?ZF}p;>l3X5BGwCS>|e@ z#FK4>$64_*`oH3Asu^y^IDlM;e-(x%HU^FXSM?&?tHk}ux;C`ecLu=gSX6Lat5e?s%%i9aT`@9hm9L(b**iA zo+UCs1q)pJV?DGHk7o2q=I;S=!=}15NH6Gf_nw&(aE!ct6uh44))-l*iOrhN9})SQ zc<=m~;O>*rb{ehd^*3Qc2qA=!&m=2Dy9dRnm{YZUTkl6L_I7!t7#$a?w@!-PZtZIw zi|!tcA_EaAlM_EKrHx$`Sz2AF>#*yI`$O)V9RhO3E}VpK)s6Ah0j~Xb;j9=JC8KLL z5Fne>rRd{NKg55z;n-Z5042MNH>zVKFJom1M)N`tDFW=oUe)>^4ZN#)TrWq1V?(0v z?rCLV2W4%#{zn71op;v9+*cDHLKtL5|1q3UGx`t1IhYBbLNngb+dqA%FY=&*w%zyr@4#00000NkvXXu0mjf D0V!mH diff --git a/tests/ragger/snapshots/nanox/test_legacy_send/00003.png b/tests/ragger/snapshots/nanox/test_legacy_send/00003.png deleted file mode 100644 index 1bcb78761fd15fd94377813eb932cf0245af596a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 434 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|_8Dba4!+nDh2VbkSi29*4kN zC;e{xpLE09-X@L1U)6Pz@cqwE59$gurmhhHYGNq1|K_}GN?*6c;}uWe+Wo)TzqkE6 zOWCglJJRQIPYCKV44Z9klmA?K*;8eu`j}gF&*pmny7TUOg-vG#S9-~<9VNyDU;XaOUjRnu`wU6rmV;;(%8h-cKt95^+cIY}x^|>`ynr&iL>69AV zQ?XZH9Ls(%r|F4eU1s7g$2l(7wEwqoFI!-AH6`DME7ab-W_RyC{Y0P#t1qo>JIAe` zn*86P)Nkl`l1;k+@4An6g^M6kcbtxu@7*hfO000000DuchDWw$aQJnB& zJ%BsK3VrpQ1hnYqoNY&PO0WdV>i`7cs)e_@w@x()p@w=B24`klR6(CLpxqtlZO|2 zIWjpO-F~*EHtLqUMt)Wc_@bMv^h#{CUFW0M(vJ1P=5N1GhWcHM(-Xu*&bc@D4_o$^ z7Y|pL)I@*DzttR=&yLH#^{|TW)8Sp0qphw%epiuSUG#WHS~ht|j~;`U4>BXmdi9@& zuz>%00000G5i7^TsbXePb2LB O0000U4`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~ diff --git a/tests/ragger/snapshots/stax/test_legacy_chainid1/00000.png b/tests/ragger/snapshots/stax/test_legacy_chainid/00000.png similarity index 100% rename from tests/ragger/snapshots/stax/test_legacy_chainid1/00000.png rename to tests/ragger/snapshots/stax/test_legacy_chainid/00000.png diff --git a/tests/ragger/snapshots/stax/test_legacy_chainid1/00001.png b/tests/ragger/snapshots/stax/test_legacy_chainid/00001.png similarity index 100% rename from tests/ragger/snapshots/stax/test_legacy_chainid1/00001.png rename to tests/ragger/snapshots/stax/test_legacy_chainid/00001.png diff --git a/tests/ragger/snapshots/stax/test_legacy_chainid1/00002.png b/tests/ragger/snapshots/stax/test_legacy_chainid/00002.png similarity index 100% rename from tests/ragger/snapshots/stax/test_legacy_chainid1/00002.png rename to tests/ragger/snapshots/stax/test_legacy_chainid/00002.png diff --git a/tests/ragger/snapshots/stax/test_legacy_chainid1/00003.png b/tests/ragger/snapshots/stax/test_legacy_chainid/00003.png similarity index 100% rename from tests/ragger/snapshots/stax/test_legacy_chainid1/00003.png rename to tests/ragger/snapshots/stax/test_legacy_chainid/00003.png diff --git a/tests/ragger/snapshots/stax/test_legacy_chainid1/00004.png b/tests/ragger/snapshots/stax/test_legacy_chainid/00004.png similarity index 100% rename from tests/ragger/snapshots/stax/test_legacy_chainid1/00004.png rename to tests/ragger/snapshots/stax/test_legacy_chainid/00004.png diff --git a/tests/ragger/snapshots/stax/test_legacy_chainid2/00000.png b/tests/ragger/snapshots/stax/test_legacy_chainid2/00000.png deleted file mode 100644 index 74fa840cc9ada8dc029bdf896ac9ddc36a6ce08a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7724 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 diff --git a/tests/ragger/snapshots/stax/test_legacy_chainid2/00002.png b/tests/ragger/snapshots/stax/test_legacy_chainid2/00002.png deleted file mode 100644 index 3f80170655296e42983454c4910c40b1f68c8f1c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8538 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 S1b*3IGcmHb)^OD$`F{XjnEKlQ diff --git a/tests/ragger/snapshots/stax/test_legacy_chainid2/00004.png b/tests/ragger/snapshots/stax/test_legacy_chainid2/00004.png deleted file mode 100644 index a21279c8a0a89933b09833df3871d1ab2b36adf5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6108 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 kD|~rROUO-4dX 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 diff --git a/tests/ragger/snapshots/stax/test_legacy_send/00002.png b/tests/ragger/snapshots/stax/test_legacy_send/00002.png deleted file mode 100644 index bc1ca9382cfe2a299a5bfb35c76039d7a8ff0893..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9597 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 H_TWDNq$iJk diff --git a/tests/ragger/snapshots/stax/test_legacy_send/00003.png b/tests/ragger/snapshots/stax/test_legacy_send/00003.png deleted file mode 100644 index a21279c8a0a89933b09833df3871d1ab2b36adf5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6108 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 2^87 Eth on Ethereum app should fail def test_legacy_send_error(backend: BackendInterface): tx_params: dict = { @@ -170,7 +154,7 @@ def test_legacy_send_bsc(firmware: Firmware, # Legacy Zemu ChainId: Transfer on network 112233445566 on Ethereum -def test_legacy_chainid1(firmware: Firmware, +def test_legacy_chainid(firmware: Firmware, backend: BackendInterface, navigator: Navigator, test_name: str): @@ -185,22 +169,6 @@ def test_legacy_chainid1(firmware: Firmware, common(firmware, backend, navigator, tx_params, test_name, BIP32_PATH2) -# Legacy Zemu ChainId: Transfer on palm network on Ethereum -def test_legacy_chainid2(firmware: Firmware, - backend: BackendInterface, - navigator: Navigator, - test_name: str): - tx_params: dict = { - "nonce": NONCE2, - "gasPrice": Web3.to_wei(GAS_PRICE, 'gwei'), - "gas": GAS_LIMIT, - "to": ADDR2, - "value": 31415926913374232, - "chainId": 11297108109 - } - common(firmware, backend, navigator, tx_params, test_name, BIP32_PATH2) - - # Legacy Zemu contract data warning: Try to blind sign with setting disabled def test_legacy_contract(firmware: Firmware, backend: BackendInterface, From bce536c12837a2b32c8b248494e7028ea605d201 Mon Sep 17 00:00:00 2001 From: Charles-Edouard de la Vergne Date: Wed, 10 Apr 2024 13:29:39 +0200 Subject: [PATCH 29/35] remove redundant test_get_public_key --- tests/ragger/test_get_address.py | 37 -------------------------------- 1 file changed, 37 deletions(-) diff --git a/tests/ragger/test_get_address.py b/tests/ragger/test_get_address.py index c61bffa..2d51ee9 100644 --- a/tests/ragger/test_get_address.py +++ b/tests/ragger/test_get_address.py @@ -105,40 +105,3 @@ def test_get_pk2(firmware: Firmware, path=path) assert pk.hex() == ref_pk assert chaincode.hex() == ref_chaincode - - -def test_get_public_key(backend: BackendInterface): - app_client = EthAppClient(backend) - - with app_client.get_public_addr(bip32_path="m/44'/60'/1'/0/0", display=False, chaincode=True): - pass - - response = app_client.response() - assert response.status == 0x9000 - - # response = pub_key_len (1) - # pub_key (var) - # eth_addr_len (1) - # eth_addr (var) - # chain_code (var) - buffer, pub_key_len, pub_key = _pop_size_prefixed_buf_from_buf(response.data) - buffer, eth_addr_len, eth_addr = _pop_size_prefixed_buf_from_buf(buffer) - buffer, chain_code = _pop_sized_buf_from_buffer(buffer, 32) - - assert len(response.data) == 2 + pub_key_len + eth_addr_len + 32 - assert pub_key == b'\x04\xea\x02&\x91\xc7\x87\x00\xd2\xc3\xa0\xc7E\xbe\xa4\xf2\xb8\xe5\xe3\x13\x97j\x10B\xf6\xa1Vc\\\xb2\x05\xda\x1a\xcb\xfe\x04*\nZ\x89eyn6"E\x89\x0eT\xbd-\xbex\xec\x1e\x18df\xf2\xe9\xd0\xf5\xd5\xd8\xdf' - assert eth_addr == b'463e4e114AA57F54f2Fd2C3ec03572C6f75d84C2' - assert chain_code == b'\xaf\x89\xcd)\xea${8I\xec\xc80\xc2\xc8\x94\\e1\xd6P\x87\x07?\x9f\xd09\x00\xa0\xea\xa7\x96\xc8' - - -def _pop_sized_buf_from_buffer(buffer: bytes, size: int) -> Tuple[bytes, bytes]: - """Parse buffer and returns: remainder, data[size]""" - - return buffer[size:], buffer[0:size] - - -def _pop_size_prefixed_buf_from_buf(buffer:bytes) -> Tuple[bytes, int, bytes]: - """ Parse buffer and returns: remainder, data_len, data """ - - data_len = buffer[0] - return buffer[1+data_len:], data_len, buffer[1:data_len+1] From c75c687b6c0802927fa7bf893cfebaccc1f8ec26 Mon Sep 17 00:00:00 2001 From: Charles-Edouard de la Vergne Date: Wed, 10 Apr 2024 12:21:23 +0200 Subject: [PATCH 30/35] Move test eip2930 to test_sign --- tests/ragger/test_eip2930.py | 62 ------------------------------------ tests/ragger/test_sign.py | 28 +++++++++++++++- 2 files changed, 27 insertions(+), 63 deletions(-) delete mode 100644 tests/ragger/test_eip2930.py diff --git a/tests/ragger/test_eip2930.py b/tests/ragger/test_eip2930.py deleted file mode 100644 index b9a7844..0000000 --- a/tests/ragger/test_eip2930.py +++ /dev/null @@ -1,62 +0,0 @@ -from web3 import Web3 - -from client.client import EthAppClient -import client.response_parser as ResponseParser -from client.utils import recover_transaction - -from ragger.backend import BackendInterface -from ragger.firmware import Firmware -from ragger.navigator import Navigator, NavInsID - -from constants import ROOT_SNAPSHOT_PATH - - -BIP32_PATH = "m/44'/60'/0'/0/0" -NONCE = 21 -GAS_PRICE = 5 -GAS_LIMIT = 21000 -ADDR = bytes.fromhex("b2bb2b958afa2e96dab3f3ce7162b87daea39017") -AMOUNT = 0.01 -CHAIN_ID = 3 - - -def test_sign_eip_2930(firmware: Firmware, - backend: BackendInterface, - navigator: Navigator, - test_name: str): - - tx_params = { - "nonce": NONCE, - "gasPrice": Web3.to_wei(GAS_PRICE, "gwei"), - "gas": GAS_LIMIT, - "to": ADDR, - "value": Web3.to_wei(AMOUNT, "ether"), - "chainId": CHAIN_ID, - } - - app_client = EthAppClient(backend) - - with app_client.get_public_addr(bip32_path=BIP32_PATH, display=False): - pass - _, DEVICE_ADDR, _ = ResponseParser.pk_addr(app_client.response().data) - - with app_client.sign(BIP32_PATH, tx_params): - if firmware.device.startswith("nano"): - next_action = NavInsID.RIGHT_CLICK - confirm_action = NavInsID.BOTH_CLICK - end_text = "Accept" - else: - next_action = NavInsID.USE_CASE_REVIEW_TAP - confirm_action = NavInsID.USE_CASE_REVIEW_CONFIRM - end_text = "Sign" - - navigator.navigate_until_text_and_compare(next_action, - [confirm_action], - end_text, - ROOT_SNAPSHOT_PATH, - test_name) - - # verify signature - vrs = ResponseParser.signature(app_client.response().data) - addr = recover_transaction(tx_params, vrs) - assert addr == DEVICE_ADDR diff --git a/tests/ragger/test_sign.py b/tests/ragger/test_sign.py index f979aec..7e5480c 100644 --- a/tests/ragger/test_sign.py +++ b/tests/ragger/test_sign.py @@ -17,11 +17,13 @@ CHAIN_ID = 1 ADDR = bytes.fromhex("0011223344556677889900112233445566778899") ADDR2 = bytes.fromhex("5a321744667052affa8386ed49e00ef223cbffc3") ADDR3 = bytes.fromhex("dac17f958d2ee523a2206206994597c13d831ec7") +ADDR4 = bytes.fromhex("b2bb2b958afa2e96dab3f3ce7162b87daea39017") BIP32_PATH = "m/44'/60'/0'/0/0" BIP32_PATH2 = "m/44'/60'/1'/0/0" NONCE = 21 NONCE2 = 68 GAS_PRICE = 13 +GAS_PRICE2 = 5 GAS_LIMIT = 21000 AMOUNT = 1.22 @@ -144,7 +146,7 @@ def test_legacy_send_bsc(firmware: Firmware, test_name: str): tx_params: dict = { "nonce": 1, - "gasPrice": Web3.to_wei(5, 'gwei'), + "gasPrice": Web3.to_wei(GAS_PRICE2, 'gwei'), "gas": GAS_LIMIT, "to": ADDR2, "value": 31415926913374232, @@ -416,3 +418,27 @@ def test_sign_blind_error_disabled(backend: BackendInterface): } common_fail(backend, tx_params, StatusWord.INVALID_DATA, BIP32_PATH2) + + +def test_sign_eip_2930(firmware: Firmware, + backend: BackendInterface, + navigator: Navigator, + test_name: str): + + tx_params = { + "nonce": NONCE, + "gasPrice": Web3.to_wei(GAS_PRICE2, "gwei"), + "gas": GAS_LIMIT, + "to": ADDR4, + "value": Web3.to_wei(0.01, "ether"), + "chainId": 3, + "accessList": [ + { + "address": "0x0000000000000000000000000000000000000001", + "storageKeys": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ] + } + ], + } + common(firmware, backend, navigator, tx_params, test_name) From f549117508b5e81785ba0a2b258b5c01f76b42bc Mon Sep 17 00:00:00 2001 From: Charles-Edouard de la Vergne Date: Wed, 10 Apr 2024 12:43:58 +0200 Subject: [PATCH 31/35] Use settings_toggle function to simplify the code --- tests/ragger/test_sign.py | 80 ++------------------------------------- 1 file changed, 4 insertions(+), 76 deletions(-) diff --git a/tests/ragger/test_sign.py b/tests/ragger/test_sign.py index 7e5480c..561babb 100644 --- a/tests/ragger/test_sign.py +++ b/tests/ragger/test_sign.py @@ -2,6 +2,7 @@ from web3 import Web3 from client.client import EthAppClient, StatusWord import client.response_parser as ResponseParser +from client.settings import SettingID, settings_toggle from client.utils import recover_transaction from ragger.error import ExceptionRAPDU @@ -243,31 +244,8 @@ def test_sign_nonce_display(firmware: Firmware, backend: BackendInterface, navigator: Navigator, test_name: str): - # Activate nonce display - if firmware.device.startswith("nano"): - initial_instructions = [ - NavInsID.LEFT_CLICK, # Application is ready - NavInsID.LEFT_CLICK, # Quit - NavInsID.BOTH_CLICK, # Blind signing - NavInsID.RIGHT_CLICK, # Debug data - NavInsID.RIGHT_CLICK, # Nonce display - NavInsID.BOTH_CLICK, - NavInsID.RIGHT_CLICK, - ] - if firmware.device != "nanos": - initial_instructions += [NavInsID.RIGHT_CLICK] * 2 - initial_instructions += [NavInsID.BOTH_CLICK] # Back - else: - initial_instructions = [ - NavInsID.USE_CASE_HOME_SETTINGS, # Settings - NavInsID.USE_CASE_SETTINGS_NEXT, # Next page - NavIns(NavInsID.TOUCH, (340, 440)), # Nonce - NavInsID.USE_CASE_SETTINGS_MULTI_PAGE_EXIT, - ] - # Navigate to settings menu to avoid 1st screen with random serial no - navigator.navigate(initial_instructions, - screen_change_before_first_instruction=False) + settings_toggle(firmware, navigator, [SettingID.NONCE]) tx_params: dict = { "nonce": NONCE2, @@ -284,31 +262,7 @@ def test_sign_blind_simple(firmware: Firmware, backend: BackendInterface, navigator: Navigator, test_name: str): - # Activate nonce display - if firmware.device.startswith("nano"): - initial_instructions = [ - NavInsID.LEFT_CLICK, # Application is ready - NavInsID.LEFT_CLICK, # Quit - NavInsID.BOTH_CLICK, # Blind signing - NavInsID.BOTH_CLICK, - NavInsID.RIGHT_CLICK, - NavInsID.RIGHT_CLICK, - NavInsID.RIGHT_CLICK, - ] - if firmware.device != "nanos": - initial_instructions += [NavInsID.RIGHT_CLICK] * 2 - initial_instructions += [NavInsID.BOTH_CLICK] # Back - else: - initial_instructions = [ - NavInsID.USE_CASE_HOME_SETTINGS, # Settings - NavInsID.USE_CASE_SETTINGS_NEXT, # Next page - NavIns(NavInsID.TOUCH, (340, 120)), # Blind signing - NavInsID.USE_CASE_SETTINGS_MULTI_PAGE_EXIT, - ] - - # Navigate to settings menu to avoid 1st screen with random serial no - navigator.navigate(initial_instructions, - screen_change_before_first_instruction=False) + settings_toggle(firmware, navigator, [SettingID.BLIND_SIGNING]) data = "ok" tx_params: dict = { @@ -327,33 +281,7 @@ def test_sign_blind_and_nonce_display(firmware: Firmware, backend: BackendInterface, navigator: Navigator, test_name: str): - # Activate nonce display - if firmware.device.startswith("nano"): - initial_instructions = [ - NavInsID.LEFT_CLICK, # Application is ready - NavInsID.LEFT_CLICK, # Quit - NavInsID.BOTH_CLICK, # Blind signing - NavInsID.BOTH_CLICK, - NavInsID.RIGHT_CLICK, - NavInsID.RIGHT_CLICK, # Nonce display - NavInsID.BOTH_CLICK, - NavInsID.RIGHT_CLICK, - ] - if firmware.device != "nanos": - initial_instructions += [NavInsID.RIGHT_CLICK] * 2 - initial_instructions += [NavInsID.BOTH_CLICK] # Back - else: - initial_instructions = [ - NavInsID.USE_CASE_HOME_SETTINGS, # Settings - NavInsID.USE_CASE_SETTINGS_NEXT, # Next page - NavIns(NavInsID.TOUCH, (340, 120)), # Blind signing - NavIns(NavInsID.TOUCH, (340, 440)), # Nonce - NavInsID.USE_CASE_SETTINGS_MULTI_PAGE_EXIT, - ] - - # Navigate to settings menu to avoid 1st screen with random serial no - navigator.navigate(initial_instructions, - screen_change_before_first_instruction=False) + settings_toggle(firmware, navigator, [SettingID.NONCE, SettingID.BLIND_SIGNING]) data = "That's a little message :)" tx_params: dict = { From 962c9f3cc157d1d9a22674e5aebe210942434cdb Mon Sep 17 00:00:00 2001 From: Charles-Edouard de la Vergne Date: Thu, 11 Apr 2024 15:39:57 +0200 Subject: [PATCH 32/35] Update amounts to smaller values to ease screen reading --- .../nanos/test_legacy_chainid/00001.png | Bin 306 -> 355 bytes .../nanos/test_legacy_chainid/00002.png | Bin 451 -> 497 bytes .../nanos/test_legacy_chainid/00003.png | Bin 320 -> 504 bytes .../nanos/test_legacy_chainid/00004.png | Bin 497 -> 373 bytes .../nanos/test_legacy_chainid/00005.png | Bin 504 -> 380 bytes .../nanos/test_legacy_chainid/00006.png | Bin 373 -> 360 bytes .../nanos/test_legacy_chainid/00007.png | Bin 380 -> 414 bytes .../nanos/test_legacy_chainid/00008.png | Bin 360 -> 349 bytes .../nanos/test_legacy_send_bsc/00001.png | Bin 337 -> 363 bytes .../nanos/test_legacy_send_bsc/00002.png | Bin 451 -> 497 bytes .../nanos/test_legacy_send_bsc/00003.png | Bin 320 -> 504 bytes .../nanos/test_legacy_send_bsc/00004.png | Bin 497 -> 373 bytes .../nanos/test_legacy_send_bsc/00005.png | Bin 504 -> 323 bytes .../nanos/test_legacy_send_bsc/00006.png | Bin 373 -> 377 bytes .../nanos/test_legacy_send_bsc/00007.png | Bin 323 -> 414 bytes .../nanos/test_legacy_send_bsc/00008.png | Bin 377 -> 349 bytes .../00002.png | Bin 330 -> 356 bytes .../00003.png | Bin 451 -> 497 bytes .../00004.png | Bin 320 -> 504 bytes .../00005.png | Bin 497 -> 373 bytes .../00006.png | Bin 504 -> 333 bytes .../00007.png | Bin 373 -> 367 bytes .../00008.png | Bin 333 -> 414 bytes .../00009.png | Bin 367 -> 349 bytes .../nanos/test_sign_blind_simple/00002.png | Bin 330 -> 356 bytes .../nanos/test_sign_blind_simple/00003.png | Bin 451 -> 497 bytes .../nanos/test_sign_blind_simple/00004.png | Bin 320 -> 504 bytes .../nanos/test_sign_blind_simple/00005.png | Bin 497 -> 373 bytes .../nanos/test_sign_blind_simple/00006.png | Bin 504 -> 367 bytes .../nanos/test_sign_blind_simple/00007.png | Bin 373 -> 414 bytes .../nanos/test_sign_blind_simple/00008.png | Bin 367 -> 349 bytes .../nanos/test_sign_nonce_display/00001.png | Bin 330 -> 356 bytes .../nanos/test_sign_nonce_display/00002.png | Bin 451 -> 497 bytes .../nanos/test_sign_nonce_display/00003.png | Bin 320 -> 504 bytes .../nanos/test_sign_nonce_display/00004.png | Bin 497 -> 373 bytes .../nanos/test_sign_nonce_display/00005.png | Bin 504 -> 270 bytes .../nanos/test_sign_nonce_display/00006.png | Bin 373 -> 367 bytes .../nanos/test_sign_nonce_display/00007.png | Bin 270 -> 414 bytes .../nanos/test_sign_nonce_display/00008.png | Bin 367 -> 349 bytes .../nanos/test_sign_reject/00001.png | Bin 330 -> 356 bytes .../nanos/test_sign_reject/00002.png | Bin 451 -> 497 bytes .../nanos/test_sign_reject/00003.png | Bin 320 -> 504 bytes .../nanos/test_sign_reject/00004.png | Bin 497 -> 373 bytes .../nanos/test_sign_reject/00005.png | Bin 504 -> 367 bytes .../nanos/test_sign_reject/00006.png | Bin 373 -> 414 bytes .../nanos/test_sign_reject/00007.png | Bin 367 -> 340 bytes .../nanos/test_sign_reject/00008.png | Bin 414 -> 349 bytes .../nanos/test_sign_simple/00001.png | Bin 330 -> 356 bytes .../nanos/test_sign_simple/00002.png | Bin 451 -> 497 bytes .../nanos/test_sign_simple/00003.png | Bin 320 -> 504 bytes .../nanos/test_sign_simple/00004.png | Bin 497 -> 373 bytes .../nanos/test_sign_simple/00005.png | Bin 504 -> 367 bytes .../nanos/test_sign_simple/00006.png | Bin 373 -> 414 bytes .../nanos/test_sign_simple/00007.png | Bin 367 -> 349 bytes .../nanox/test_legacy_chainid/00001.png | Bin 540 -> 410 bytes .../nanox/test_legacy_send_bsc/00001.png | Bin 585 -> 432 bytes .../00002.png | Bin 566 -> 419 bytes .../nanox/test_sign_blind_simple/00002.png | Bin 566 -> 419 bytes .../nanox/test_sign_nonce_display/00001.png | Bin 566 -> 419 bytes .../nanox/test_sign_reject/00001.png | Bin 566 -> 419 bytes .../nanox/test_sign_simple/00001.png | Bin 566 -> 419 bytes .../stax/test_legacy_chainid/00001.png | Bin 18646 -> 16983 bytes .../stax/test_legacy_send_bsc/00001.png | Bin 19003 -> 17252 bytes .../00002.png | Bin 18342 -> 16530 bytes .../stax/test_sign_blind_simple/00002.png | Bin 18715 -> 16921 bytes .../stax/test_sign_nonce_display/00001.png | Bin 17959 -> 16125 bytes .../snapshots/stax/test_sign_reject/00001.png | Bin 18715 -> 16921 bytes .../snapshots/stax/test_sign_simple/00001.png | Bin 18715 -> 16921 bytes tests/ragger/test_sign.py | 29 +++++++++--------- 69 files changed, 15 insertions(+), 14 deletions(-) diff --git a/tests/ragger/snapshots/nanos/test_legacy_chainid/00001.png b/tests/ragger/snapshots/nanos/test_legacy_chainid/00001.png index 73ac9f618fe95bc4a1557b64fd02a981f1a28d93..67d53e3629956c2b542aaf3e95d1104737481a91 100644 GIT binary patch delta 329 zcmV-P0k;0K0^k>VKk@-a5EeG8s`yD-jGI@-q`PZFhJ|MTqHuFRKWT)|?BUgahmW}Ji zP+rj!Afl{V^GY9sZX{^1xF@J|=pX_4&PiVtI@}x8ZGV~0PAp+@wbK@K8;3PrLH@}zv+?qtRej&@gmv1BLhB&t3Idpb5!-WuIb)9{{v zEw#$7u|U}vb>zAz_d=!HColTA3%Zd~eaX`6q7p;igryD`-5PIn6wP{{h73N0Q{uyn zH4L+d}g=36dnOcmC6@4tEK%g}BASzoKss-BYyz-NklH*qvh>5?xxI2A-LJOezIn3ndz=5&wmyXrQCC=T}qHo-F?s{ z0Ci;tFN_0FpKfLm5wB(16F+tdEAukDe);zxYLfoEuVV%I;4P~9^D*Wbcl0#cc4GljB}Lj--19uqNM+r#8Mw62!O$eRe}Hj e00024$pa9cwh^Sm{2kK(0000!p|jYlF8v)&3HjT zL<3QhBuSFYW#3|5%J|OJ_e~Ifv>aW{;5SgrQ+hp(oeCgL(0&Y8L*je(0uZO)OUtr` z|8h|K%i(b+{yx!Y#qi)=^^@lHEeav< zyc1`MV?-T#UVoN#i@1uZ2`W0F)yv?(yVg??RBA8LvP^Uq8mSkPJ+_z?CnQiWc>y9{ z!c&X1{_h=U?0*Q|U&3YuxE^-GLHtmMyzkF`9{uT*2`Z5dD3ySs1h=ZGeKsSV-W&)@ z^r1s6UIxVOOVM!sCYw?Va@ywczIdnc%|`7`&cy+rB~Th}NseqlZLlI2#fvB^1Ufwz zpDMJ9$8ZMT0G@C}J?gbl?NfPl>he1gbEat&A7ko|3{R3INs=T<06&r3a-VQb-O~U7 N002ovPDHLkV1jiz;d%f7 delta 425 zcmV;a0apI;1H%K5B!7xYL_t(|ob8#(62c%1hN)xU|A9T|K?gA#DJ8(v{~Hg=60$%_ zV@d!306;9y$0`auAD@pnfcH+{RR6IsdoDLerDbbIUQ1X*Y%zfRtSZt>P-R98rsaf8&R8zXtO=g^AAERP(cMKnjd?1}>p z;3>0IyR?D~uYbuj*C`Km*;=)=IHeWD*MgE>mE_xD~EPYa1Hp<_W%yfuin zIP97ffKKPPn}joHw)nL21t6Cvxpc9MYu1eCYRDVgv?6k@<)^PJ0000004~G}bh=WB TwNP|i00000NkvXXu0mjfp?=D$ diff --git a/tests/ragger/snapshots/nanos/test_legacy_chainid/00003.png b/tests/ragger/snapshots/nanos/test_legacy_chainid/00003.png index a54fefd4c94fc7cfc5df4396112561399f2b0f6d..fd3155c0d349a1236eb862c8f4f5fc3c3a981ccf 100644 GIT binary patch delta 478 zcmV<40U`dt0{8=vB!9n2L_t(|ob8#>lEWYfMQ?UC|Np^xNMEvUDtJXBiId?>A5x`= zhz2PT1VIo4zU*6D7m>d*`o0|>RY3NRHRCbT^hmFz@uC5x7Sij#0KeV?6fycewJdA% z*Wf_z0QI?}FW5XIHu{hNt3c#=4Up5)ufA`Mj&M<7qvxQv<( zs(Pdtv0I9%d4D9=Rx*R9!e`F+3^L`C6Wa1xQn{5fma<}Zp;1+CG^5ELUOKf{W&e4l z6mjN*6%h6^R(=z9updm)>(Qsw-jK$m#{y!l-34#BO6TE-P(H z$DKW{cBwL%#oaV+|03$kM)s0I%UP0!OM5lcHB&OiHCMDU-Q1age#39?4hF0s5|HjfVB!fzYt!b#5c4soBmRaBbK@bE%5CjkM0rBsK UUs@{|UH||907*qoM6N<$f+INPfdBvi delta 293 zcmV+=0owlf1Hb~1B!34J24Gmm`#-P;cX15c4(7C_;QwU@ho&M$ zNNNZG006qy#Y+d)W&4R2@Uz`}eu4aKmbYs*)?B%l^>;?eg; z7;22ZG31~ptU^5vzYmKAOR>P|&=8&cRkP+Z0{vPLRCOvxpM+|&3x-8wkj(bsa5z?9 r4OPY79XPJ?{T?!4V*mgE02spyJOsdq*mgLT00000NkvXXu0mjfv|o(@ diff --git a/tests/ragger/snapshots/nanos/test_legacy_chainid/00004.png b/tests/ragger/snapshots/nanos/test_legacy_chainid/00004.png index 8656b81752a48501b840f96ec775d5a947435225..c63f25f8dbf212867d4b40bfa2cc85583ca98105 100644 GIT binary patch delta 346 zcmV-g0j2)&1N8!sB!4_fL_t(|ob8y)62dSDMTuko|AV`zo0_pe^CqFrJ>x=2OOgwD z2oV4P0AS0p*EJ=c@9F*6&yV_mY#lp{WyI+vT1$+b1Guv!TI~byw(j7TLfxY!Y}G%( ziCh8d_XZ;iSV>Uj7R0(J@i~r{sdplxV?XmTYy&2f6)4+9*nch~iNjM{?U}L#4V(|# zTjI_WV@yI*-`KAJ`lgkgC@g2^rf?_0*1b%|Xkn7YR%T=#+74maX^C@n{N_9-cPeO} z)NnO24*ybp@)UrS&wo|lA&S&ce=>-{O0Wy9}O7)p?i?j46rz@ZYwP?XC440+4#|A)(=tiv(~tv5dZ)H07*qoM6N<$g4jc)aR2}S delta 471 zcmV;|0Vw|U0`UWoB!9R`L_t(|ob8y)cElhEhDlHJ{tui*x=8D>!p|jYlF8v)&3HjT zL<3QhBuSFYW#3|5%J|OJ_e~Ifv>aW{;5SgrQ+hp(oeCgL(0&Y8L*je(0uZO)OUtr` z|8h|K%i(b+{yx!Y#qi)=^^@lHEeav< zyc1`MV?-T#UVoN#i@1uZ2`W0F)yv?(yVg??RBA8LvP^Uq8mSkPJ+_z?CnQiWc>y9{ z!c&X1{_h=U?0*Q|U&3YuxE^-GLHtmMyzkF`9{uT*2`Z5dD3ySs1h=ZGeKsSV-W&)@ z^r1s6UIxVOOVM!sCYw?Va@ywczIdnc%|`7`&cy+rB~Th}NseqlZLlI2#fvB^1Ufwz zpDMJ9$8ZMT0G@C}J?gbl?NfPl>he1gbEat&A7ko|3{R3INs=T<06&r3a-VQb-O~U7 N002ovPDHLkV1mzL;i~`u diff --git a/tests/ragger/snapshots/nanos/test_legacy_chainid/00005.png b/tests/ragger/snapshots/nanos/test_legacy_chainid/00005.png index fd3155c0d349a1236eb862c8f4f5fc3c3a981ccf..8e15de5dd6f7a60a5c5eed9fa23d1a65e199df73 100644 GIT binary patch delta 353 zcmV-n0iOQ&1N;JzB!5FmL_t(|ob8$24#FS|g*)Tk|ABWgFEA4+l)`{kbG{fekNnJ2 z=(b7(0001(aURmg1v8rRus#7IQaj?wxKa2Bz_#bjJ&*T`=<|LlR~vquZI&qXpAl^* z_E&k3^eT;@>1&OT9YBRmz}M_3&V#mn%E*m8txrH?o<||x4u4|cW(QFDN+2{24)(d( zG~G0u?SR;n-)EE z{AMvxO81woN-}9xkAHj+xzaJUo)u4jywW1nUb5wfK1C?!4WDit6P|>5glETGv-Z8> z>`6GGn#!o%{aP8>&m#jjyWA{Wa2E9Hn96$iAnb~9e1&#ojQC#~Voq`0A4Vx?i2GE| zMVcJt1G{TLHP6mS#F{a$Vyd7300000fP1_Eb`lm{))=Vp00000NkvXXu0mjfdOoXw delta 478 zcmV<40U`eU0{8=vB!9n2L_t(|ob8#>lEWYfMQ?UC|Np^xNMEvUDtJXBiId?>A5x`= zhz2PT1VIo4zU*6D7m>d*`o0|>RY3NRHRCbT^hmFz@uC5x7Sij#0KeV?6fycewJdA% z*Wf_z0QI?}FW5XIHu{hNt3c#=4Up5)ufA`Mj&M<7qvxQv<( zs(Pdtv0I9%d4D9=Rx*R9!e`F+3^L`C6Wa1xQn{5fma<}Zp;1+CG^5ELUOKf{W&e4l z6mjN*6%h6^R(=z9updm)>(Qsw-jK$m#{y!l-34#BO6TE-P(H z$DKW{cBwL%#oaV+|03$kM)s0I%UP0!OM5lcHB&OiHCMDU-Q1age#39?4hF0s5|HjfVB!fzYt!b#5c4soBmRaBbK@bE%5CjkM0rBsK UUs@{|UH||907*qoM6N<$f|Eeyy#N3J diff --git a/tests/ragger/snapshots/nanos/test_legacy_chainid/00006.png b/tests/ragger/snapshots/nanos/test_legacy_chainid/00006.png index c63f25f8dbf212867d4b40bfa2cc85583ca98105..fff41ba06f29e6630db8d01a05833f6dbc1ebdfa 100644 GIT binary patch delta 333 zcmV-T0kZz}0_XyeB!4eSL_t(|ob8xF5`!QNMMJ0F|G+Nnf*FPq2%wUn{I`;n2K*Qx zAp!sZuqw`S@M9+;a+_r7auqn?!HBQ*1n%QGqQ^|U0P#od#Xa`)q0vL=oLG2=weasB zR7jdhx9kJ&)ABFDk2(*D0FT?GLn0e7RiBN)G>i!rK#;YhV}Hp{ucd248^gzH;4^ro z!h+q!?GAgGAOZxg=n~87KX7iD@erQiTzWGVd7-`nMUkPt8X2jfzA{(?ORx)B@-H&0 zh7QU~8c$GmH|8}6MiGQnQ#(-a#IsN z6H-c#6(e9C^+u~>ji@*kSZ@pB>aS7_&6a{o%|X~-LJaA;|HStAr{tMCkuAO{_>B7i f00000fMNUqkXhLIWikY%00000NkvXXu0mjfgPEIi delta 346 zcmV-g0j2)v0`&rrB!4_fL_t(|ob8y)62dSDMTuko|AV`zo0_pe^CqFrJ>x=2OOgwD z2oV4P0AS0p*EJ=c@9F*6&yV_mY#lp{WyI+vT1$+b1Guv!TI~byw(j7TLfxY!Y}G%( ziCh8d_XZ;iSV>Uj7R0(J@i~r{sdplxV?XmTYy&2f6)4+9*nch~iNjM{?U}L#4V(|# zTjI_WV@yI*-`KAJ`lgkgC@g2^rf?_0*1b%|Xkn7YR%T=#+74maX^C@n{N_9-cPeO} z)NnO24*ybp@)UrS&wo|lA&S&ce=>-{O0Wy9}O7)p?i?j46rz@ZYwP?XC440+4#|A)(=tiv(~tv5dZ)H07*qoM6N<$g37?9X8-^I diff --git a/tests/ragger/snapshots/nanos/test_legacy_chainid/00007.png b/tests/ragger/snapshots/nanos/test_legacy_chainid/00007.png index 8e15de5dd6f7a60a5c5eed9fa23d1a65e199df73..1c9156c31edf73cb072eaebf2db3fbe1ba5c612b 100644 GIT binary patch delta 387 zcmV-}0et@a0-ghqB!6W|L_t(|ob8#-4ul{Kgh#W!{{wq)47ENOEh^0jsFWbV&<+yj5)WEX_aERLO-`${sQ zhD#B5ZCio#FnpZvsgyOJV*hwd>m7MA*2TC`gvbxExlw9P*GWl3w#fa$g^{OWU5rzv zURSsL8^HL;(=ZJ{t@3k$n&|FdPSzHrM5CkhAHD9@5i$)x%zaJzw-<`s4Tqj`@b>t( hEI~pDA%qap!xv8s=`=1&OT9YBRmz}M_3&V#mn%E*m8txrH?o<||x4u4|cW(QFDN+2{24)(d( zG~G0u?SR;n-)EE z{AMvxO81woN-}9xkAHj+xzaJUo)u4jywW1nUb5wfK1C?!4WDit6P|>5glETGv-Z8> z>`6GGn#!o%{aP8>&m#jjyWA{Wa2E9Hn96$iAnb~9e1&#ojQC#~Voq`0A4Vx?i2GE| zMVcJt1G{TLHP6mS#F{a$Vyd7300000fP1_Eb`lm{))=Vp00000NkvXXu0mjf{uQex diff --git a/tests/ragger/snapshots/nanos/test_legacy_chainid/00008.png b/tests/ragger/snapshots/nanos/test_legacy_chainid/00008.png index fff41ba06f29e6630db8d01a05833f6dbc1ebdfa..ce795f34e8569e986af689fded3b59c9a8af2961 100644 GIT binary patch delta 322 zcmV-I0log{0^I_TB!47HL_t(|ob8#-62c%1gsEfS|A9T|fw6-G0=6YAu-~c0@)I@* zLv)T1LI|CfH^_}!yz*BZkv^2=?Hdxc{A*JQ7n8RtPp zK=N5{Easxhaf*%Yv5kPk2P1#Has1IRPeHBs$cs9T66OLVbARr_7zz;OoG=T?BQe() z5gxob-#-pvr56zPj+vZs*7zvc)y3?k1aOLJy=-1h0GG6GZi4}#20ekxLQ8>o4!52c z$FXo$VhXU?0M$^Bekqgf%Ka;M*^X|4Es9YCQ(xfJKmNC#+8dY%2&wT+>D^<3C%}l9*&ik delta 333 zcmV-T0kZzx0_XyeB!4eSL_t(|ob8xF5`!QNMMJ0F|G+Nnf*FPq2%wUn{I`;n2K*Qx zAp!sZuqw`S@M9+;a+_r7auqn?!HBQ*1n%QGqQ^|U0P#od#Xa`)q0vL=oLG2=weasB zR7jdhx9kJ&)ABFDk2(*D0FT?GLn0e7RiBN)G>i!rK#;YhV}Hp{ucd248^gzH;4^ro z!h+q!?GAgGAOZxg=n~87KX7iD@erQiTzWGVd7-`nMUkPt8X2jfzA{(?ORx)B@-H&0 zh7QU~8c$GmH|8}6MiGQnQ#(-a#IsN z6H-c#6(e9C^+u~>ji@*kSZ@pB>aS7_&6a{o%|X~-LJaA;|HStAr{tMCkuAO{_>B7i f00000fMNUqkXhLIWikY%00000NkvXXu0mjfWMP|I diff --git a/tests/ragger/snapshots/nanos/test_legacy_send_bsc/00001.png b/tests/ragger/snapshots/nanos/test_legacy_send_bsc/00001.png index 837fd64a15eb0bbc63f2587eb3cd6974d4c12a59..29e50386e8996c6387894bcdab7c7f7e758aa64e 100644 GIT binary patch delta 336 zcmV-W0k8hi0_y^hB!4nVL_t(|ob8#-62c%1gj2`9{{wr_gCkP%(^lz*8TLD2O$%-? zNrMO>gb&59hcuB?wXXz4TfsLs#+R+$FtOuXIg=9D5kOu%}-IWbC2beTI2#kwmaPHVe iR#XBYgb+dqnU)usFvTE?rSW+H0000!9&mW8(*zqrJEw$TYp64mY!4Xas=6oyA8S| zAU@f_2jv9ByPH`=#I{T=`D0Bu^Im4pH~${YTBN7fb!|Wj-e!$HnMpv-;l$Cmh7f8* zzca|eo!}I@lVgyb@YtGK!pg#HKJ4=`R)@%*@?$W(Wm1Aqy*gwVeJw~2v*J<OV004i&3nzrimgyD@3jhEB07*qo IM6N<$f^V&mNB{r; diff --git a/tests/ragger/snapshots/nanos/test_legacy_send_bsc/00002.png b/tests/ragger/snapshots/nanos/test_legacy_send_bsc/00002.png index c2af54e964e6227cfbee76037f4dba52af08a7ef..8656b81752a48501b840f96ec775d5a947435225 100644 GIT binary patch delta 471 zcmV;|0Vw{%1MvfpB!9R`L_t(|ob8y)cElhEhDlHJ{tui*x=8D>!p|jYlF8v)&3HjT zL<3QhBuSFYW#3|5%J|OJ_e~Ifv>aW{;5SgrQ+hp(oeCgL(0&Y8L*je(0uZO)OUtr` z|8h|K%i(b+{yx!Y#qi)=^^@lHEeav< zyc1`MV?-T#UVoN#i@1uZ2`W0F)yv?(yVg??RBA8LvP^Uq8mSkPJ+_z?CnQiWc>y9{ z!c&X1{_h=U?0*Q|U&3YuxE^-GLHtmMyzkF`9{uT*2`Z5dD3ySs1h=ZGeKsSV-W&)@ z^r1s6UIxVOOVM!sCYw?Va@ywczIdnc%|`7`&cy+rB~Th}NseqlZLlI2#fvB^1Ufwz zpDMJ9$8ZMT0G@C}J?gbl?NfPl>he1gbEat&A7ko|3{R3INs=T<06&r3a-VQb-O~U7 N002ovPDHLkV1jiz;d%f7 delta 425 zcmV;a0apI;1H%K5B!7xYL_t(|ob8#(62c%1hN)xU|A9T|K?gA#DJ8(v{~Hg=60$%_ zV@d!306;9y$0`auAD@pnfcH+{RR6IsdoDLerDbbIUQ1X*Y%zfRtSZt>P-R98rsaf8&R8zXtO=g^AAERP(cMKnjd?1}>p z;3>0IyR?D~uYbuj*C`Km*;=)=IHeWD*MgE>mE_xD~EPYa1Hp<_W%yfuin zIP97ffKKPPn}joHw)nL21t6Cvxpc9MYu1eCYRDVgv?6k@<)^PJ0000004~G}bh=WB TwNP|i00000NkvXXu0mjfp?=D$ diff --git a/tests/ragger/snapshots/nanos/test_legacy_send_bsc/00003.png b/tests/ragger/snapshots/nanos/test_legacy_send_bsc/00003.png index a54fefd4c94fc7cfc5df4396112561399f2b0f6d..fd3155c0d349a1236eb862c8f4f5fc3c3a981ccf 100644 GIT binary patch delta 478 zcmV<40U`dt0{8=vB!9n2L_t(|ob8#>lEWYfMQ?UC|Np^xNMEvUDtJXBiId?>A5x`= zhz2PT1VIo4zU*6D7m>d*`o0|>RY3NRHRCbT^hmFz@uC5x7Sij#0KeV?6fycewJdA% z*Wf_z0QI?}FW5XIHu{hNt3c#=4Up5)ufA`Mj&M<7qvxQv<( zs(Pdtv0I9%d4D9=Rx*R9!e`F+3^L`C6Wa1xQn{5fma<}Zp;1+CG^5ELUOKf{W&e4l z6mjN*6%h6^R(=z9updm)>(Qsw-jK$m#{y!l-34#BO6TE-P(H z$DKW{cBwL%#oaV+|03$kM)s0I%UP0!OM5lcHB&OiHCMDU-Q1age#39?4hF0s5|HjfVB!fzYt!b#5c4soBmRaBbK@bE%5CjkM0rBsK UUs@{|UH||907*qoM6N<$f+INPfdBvi delta 293 zcmV+=0owlf1Hb~1B!34J24Gmm`#-P;cX15c4(7C_;QwU@ho&M$ zNNNZG006qy#Y+d)W&4R2@Uz`}eu4aKmbYs*)?B%l^>;?eg; z7;22ZG31~ptU^5vzYmKAOR>P|&=8&cRkP+Z0{vPLRCOvxpM+|&3x-8wkj(bsa5z?9 r4OPY79XPJ?{T?!4V*mgE02spyJOsdq*mgLT00000NkvXXu0mjfv|o(@ diff --git a/tests/ragger/snapshots/nanos/test_legacy_send_bsc/00004.png b/tests/ragger/snapshots/nanos/test_legacy_send_bsc/00004.png index 8656b81752a48501b840f96ec775d5a947435225..c63f25f8dbf212867d4b40bfa2cc85583ca98105 100644 GIT binary patch delta 346 zcmV-g0j2)&1N8!sB!4_fL_t(|ob8y)62dSDMTuko|AV`zo0_pe^CqFrJ>x=2OOgwD z2oV4P0AS0p*EJ=c@9F*6&yV_mY#lp{WyI+vT1$+b1Guv!TI~byw(j7TLfxY!Y}G%( ziCh8d_XZ;iSV>Uj7R0(J@i~r{sdplxV?XmTYy&2f6)4+9*nch~iNjM{?U}L#4V(|# zTjI_WV@yI*-`KAJ`lgkgC@g2^rf?_0*1b%|Xkn7YR%T=#+74maX^C@n{N_9-cPeO} z)NnO24*ybp@)UrS&wo|lA&S&ce=>-{O0Wy9}O7)p?i?j46rz@ZYwP?XC440+4#|A)(=tiv(~tv5dZ)H07*qoM6N<$g4jc)aR2}S delta 471 zcmV;|0Vw|U0`UWoB!9R`L_t(|ob8y)cElhEhDlHJ{tui*x=8D>!p|jYlF8v)&3HjT zL<3QhBuSFYW#3|5%J|OJ_e~Ifv>aW{;5SgrQ+hp(oeCgL(0&Y8L*je(0uZO)OUtr` z|8h|K%i(b+{yx!Y#qi)=^^@lHEeav< zyc1`MV?-T#UVoN#i@1uZ2`W0F)yv?(yVg??RBA8LvP^Uq8mSkPJ+_z?CnQiWc>y9{ z!c&X1{_h=U?0*Q|U&3YuxE^-GLHtmMyzkF`9{uT*2`Z5dD3ySs1h=ZGeKsSV-W&)@ z^r1s6UIxVOOVM!sCYw?Va@ywczIdnc%|`7`&cy+rB~Th}NseqlZLlI2#fvB^1Ufwz zpDMJ9$8ZMT0G@C}J?gbl?NfPl>he1gbEat&A7ko|3{R3INs=T<06&r3a-VQb-O~U7 N002ovPDHLkV1mzL;i~`u diff --git a/tests/ragger/snapshots/nanos/test_legacy_send_bsc/00005.png b/tests/ragger/snapshots/nanos/test_legacy_send_bsc/00005.png index fd3155c0d349a1236eb862c8f4f5fc3c3a981ccf..371c126993e0b7f47c09d26cd1a7f5488d4dcc30 100644 GIT binary patch delta 296 zcmV+@0oVTc1H%H4B!3D?L_t(|ob8!W4}%~KgwJLE{~zpwdth-|0d-M&CHKV`tbpW7 zD<~j@5JI>yPqoViPjuzwJpcfw6=4$YE;t-8jCpbA>3aab^I}=*?916|#)3XQdY!et zCkv)ksfROdz2S%e6oOzsXYXR3FpQ7%e37^J0IEEvQSvu|4}WMP0OdD9rE*g6KQ%8s z?lH(BU@eL%Cz7SEb+%y`2qs0(9LOv68&DKk>Ng`JwbXBneBg<)kSAM_hslEWYfMQ?UC|Np^xNMEvUDtJXBiId?>A5x`= zhz2PT1VIo4zU*6D7m>d*`o0|>RY3NRHRCbT^hmFz@uC5x7Sij#0KeV?6fycewJdA% z*Wf_z0QI?}FW5XIHu{hNt3c#=4Up5)ufA`Mj&M<7qvxQv<( zs(Pdtv0I9%d4D9=Rx*R9!e`F+3^L`C6Wa1xQn{5fma<}Zp;1+CG^5ELUOKf{W&e4l z6mjN*6%h6^R(=z9updm)>(Qsw-jK$m#{y!l-34#BO6TE-P(H z$DKW{cBwL%#oaV+|03$kM)s0I%UP0!OM5lcHB&OiHCMDU-Q1age#39?4hF0s5|HjfVB!fzYt!b#5c4soBmRaBbK@bE%5CjkM0rBsK UUs@{|UH||907*qoM6N<$f+*7Ega7~l diff --git a/tests/ragger/snapshots/nanos/test_legacy_send_bsc/00006.png b/tests/ragger/snapshots/nanos/test_legacy_send_bsc/00006.png index c63f25f8dbf212867d4b40bfa2cc85583ca98105..95e7fbbe65d82a1709956624c0b23adaa4a3cd8d 100644 GIT binary patch delta 350 zcmV-k0ipi&0{H@vB!56jL_t(|ob8!G5`!QNMX^)we_$8wf*G2U5J7=N{cmMs4EQ53 zNkaet0Ps{6%fUZe2q7%1W@!qQI1s^zxAg@2aUIbqjuSvX>L~7K%P%S;B`$6OMg0+;xOo$O2iIj7N53vxHFHY)WCXI^?-$!*5{d8^wAff?U#~Wd{A*K-KxLPXEJ3!u&9Jh zE6?8?d@#5YZdWQb9oD7er!+VLbU&r<5Ep^i8spAZh=)OMF4c^?BX$Y!a1uCR))^p@ wx=2OOgwD z2oV4P0AS0p*EJ=c@9F*6&yV_mY#lp{WyI+vT1$+b1Guv!TI~byw(j7TLfxY!Y}G%( ziCh8d_XZ;iSV>Uj7R0(J@i~r{sdplxV?XmTYy&2f6)4+9*nch~iNjM{?U}L#4V(|# zTjI_WV@yI*-`KAJ`lgkgC@g2^rf?_0*1b%|Xkn7YR%T=#+74maX^C@n{N_9-cPeO} z)NnO24*ybp@)UrS&wo|lA&S&ce=>-{O0Wy9}O7)p?i?j46rz@ZYwP?XC440+4#|A)(=tiv(~tv5dZ)H07*qoM6N<$g5kQQcmMzZ diff --git a/tests/ragger/snapshots/nanos/test_legacy_send_bsc/00007.png b/tests/ragger/snapshots/nanos/test_legacy_send_bsc/00007.png index 371c126993e0b7f47c09d26cd1a7f5488d4dcc30..1c9156c31edf73cb072eaebf2db3fbe1ba5c612b 100644 GIT binary patch delta 387 zcmV-}0et?$0-ghqB!6W|L_t(|ob8#-4ul{Kgh#W!{{wq)47ENOEh^0jsFWbV&<+yj5)WEX_aERLO-`${sQ zhD#B5ZCio#FnpZvsgyOJV*hwd>m7MA*2TC`gvbxExlw9P*GWl3w#fa$g^{OWU5rzv zURSsL8^HL;(=ZJ{t@3k$n&|FdPSzHrM5CkhAHD9@5i$)x%zaJzw-<`s4Tqj`@b>t( hEI~pDA%qap!xv8s=`=yPqoViPjuzwJpcfw6=4$YE;t-8jCpbA>3aab^I}=*?916|#)3XQdY!et zCkv)ksfROdz2S%e6oOzsXYXR3FpQ7%e37^J0IEEvQSvu|4}WMP0OdD9rE*g6KQ%8s z?lH(BU@eL%Cz7SEb+%y`2qs0(9LOv68&DKk>Ng`JwbXBneBg<)kSAM_hsCfH^_}!yz*BZkv^2=?Hdxc{A*JQ7n8RtPp zK=N5{Easxhaf*%Yv5kPk2P1#Has1IRPeHBs$cs9T66OLVbARr_7zz;OoG=T?BQe() z5gxob-#-pvr56zPj+vZs*7zvc)y3?k1aOLJy=-1h0GG6GZi4}#20ekxLQ8>o4!52c z$FXo$VhXU?0M$^Bekqgf%Ka;M*^X|4Es9YCQ(xfJKmNC#+8dY%2&wT+>D^<3C%}l9*&iL~7K%P%S;B`$6OMg0+;xOo$O2iIj7N53vxHFHY)WCXI^?-$!*5{d8^wAff?U#~Wd{A*K-KxLPXEJ3!u&9Jh zE6?8?d@#5YZdWQb9oD7er!+VLbU&r<5Ep^i8spAZh=)OMF4c^?BX$Y!a1uCR))^p@ w7K0!NhG}QL{{wf?E_UWj5M3E?=Koz8b7?;Y zN<;tv0DwRH<~@U%d8=>cgD}p1dQYHEuFKg+ec!DV8$x-A*_<8uwtX7TT#$rRsXHwfcDqB+VarjtNIg5-{;|_Vd zM(wfdm$^lGQ;R-g&wUdLM71*1&BUk$-9c@k@ipjr7PC4Diy=bkc6x~B{X6CEobY9= z9MJg~=ZXsXe?o@@S;NBA|Art=iuJ}{-&6t=T1>h>g@qEmLA5M`M?2LoLbk@4Zi=|Jh=0iWo~CwbK{owvgDwF` zJ3DyOH~?vNGl__JEYmOXV~4QvUMANM{~oNGq}BVn*CAiDt?GR;697%&!rr%r;A(ik zGl;=R(1k{Fb+Qv48=RKpW(Q4vTPFO z2|!`%tQ%d711K$MFbKe4=4nBNX8-^I0001(fdizku;Tvj@h<=X002ovPDHLkV1i@L Bjb#7; diff --git a/tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00003.png b/tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00003.png index c2af54e964e6227cfbee76037f4dba52af08a7ef..8656b81752a48501b840f96ec775d5a947435225 100644 GIT binary patch delta 471 zcmV;|0Vw{%1MvfpB!9R`L_t(|ob8y)cElhEhDlHJ{tui*x=8D>!p|jYlF8v)&3HjT zL<3QhBuSFYW#3|5%J|OJ_e~Ifv>aW{;5SgrQ+hp(oeCgL(0&Y8L*je(0uZO)OUtr` z|8h|K%i(b+{yx!Y#qi)=^^@lHEeav< zyc1`MV?-T#UVoN#i@1uZ2`W0F)yv?(yVg??RBA8LvP^Uq8mSkPJ+_z?CnQiWc>y9{ z!c&X1{_h=U?0*Q|U&3YuxE^-GLHtmMyzkF`9{uT*2`Z5dD3ySs1h=ZGeKsSV-W&)@ z^r1s6UIxVOOVM!sCYw?Va@ywczIdnc%|`7`&cy+rB~Th}NseqlZLlI2#fvB^1Ufwz zpDMJ9$8ZMT0G@C}J?gbl?NfPl>he1gbEat&A7ko|3{R3INs=T<06&r3a-VQb-O~U7 N002ovPDHLkV1jiz;d%f7 delta 425 zcmV;a0apI;1H%K5B!7xYL_t(|ob8#(62c%1hN)xU|A9T|K?gA#DJ8(v{~Hg=60$%_ zV@d!306;9y$0`auAD@pnfcH+{RR6IsdoDLerDbbIUQ1X*Y%zfRtSZt>P-R98rsaf8&R8zXtO=g^AAERP(cMKnjd?1}>p z;3>0IyR?D~uYbuj*C`Km*;=)=IHeWD*MgE>mE_xD~EPYa1Hp<_W%yfuin zIP97ffKKPPn}joHw)nL21t6Cvxpc9MYu1eCYRDVgv?6k@<)^PJ0000004~G}bh=WB TwNP|i00000NkvXXu0mjfp?=D$ diff --git a/tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00004.png b/tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00004.png index a54fefd4c94fc7cfc5df4396112561399f2b0f6d..fd3155c0d349a1236eb862c8f4f5fc3c3a981ccf 100644 GIT binary patch delta 478 zcmV<40U`dt0{8=vB!9n2L_t(|ob8#>lEWYfMQ?UC|Np^xNMEvUDtJXBiId?>A5x`= zhz2PT1VIo4zU*6D7m>d*`o0|>RY3NRHRCbT^hmFz@uC5x7Sij#0KeV?6fycewJdA% z*Wf_z0QI?}FW5XIHu{hNt3c#=4Up5)ufA`Mj&M<7qvxQv<( zs(Pdtv0I9%d4D9=Rx*R9!e`F+3^L`C6Wa1xQn{5fma<}Zp;1+CG^5ELUOKf{W&e4l z6mjN*6%h6^R(=z9updm)>(Qsw-jK$m#{y!l-34#BO6TE-P(H z$DKW{cBwL%#oaV+|03$kM)s0I%UP0!OM5lcHB&OiHCMDU-Q1age#39?4hF0s5|HjfVB!fzYt!b#5c4soBmRaBbK@bE%5CjkM0rBsK UUs@{|UH||907*qoM6N<$f+INPfdBvi delta 293 zcmV+=0owlf1Hb~1B!34J24Gmm`#-P;cX15c4(7C_;QwU@ho&M$ zNNNZG006qy#Y+d)W&4R2@Uz`}eu4aKmbYs*)?B%l^>;?eg; z7;22ZG31~ptU^5vzYmKAOR>P|&=8&cRkP+Z0{vPLRCOvxpM+|&3x-8wkj(bsa5z?9 r4OPY79XPJ?{T?!4V*mgE02spyJOsdq*mgLT00000NkvXXu0mjfv|o(@ diff --git a/tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00005.png b/tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00005.png index 8656b81752a48501b840f96ec775d5a947435225..c63f25f8dbf212867d4b40bfa2cc85583ca98105 100644 GIT binary patch delta 346 zcmV-g0j2)&1N8!sB!4_fL_t(|ob8y)62dSDMTuko|AV`zo0_pe^CqFrJ>x=2OOgwD z2oV4P0AS0p*EJ=c@9F*6&yV_mY#lp{WyI+vT1$+b1Guv!TI~byw(j7TLfxY!Y}G%( ziCh8d_XZ;iSV>Uj7R0(J@i~r{sdplxV?XmTYy&2f6)4+9*nch~iNjM{?U}L#4V(|# zTjI_WV@yI*-`KAJ`lgkgC@g2^rf?_0*1b%|Xkn7YR%T=#+74maX^C@n{N_9-cPeO} z)NnO24*ybp@)UrS&wo|lA&S&ce=>-{O0Wy9}O7)p?i?j46rz@ZYwP?XC440+4#|A)(=tiv(~tv5dZ)H07*qoM6N<$g4jc)aR2}S delta 471 zcmV;|0Vw|U0`UWoB!9R`L_t(|ob8y)cElhEhDlHJ{tui*x=8D>!p|jYlF8v)&3HjT zL<3QhBuSFYW#3|5%J|OJ_e~Ifv>aW{;5SgrQ+hp(oeCgL(0&Y8L*je(0uZO)OUtr` z|8h|K%i(b+{yx!Y#qi)=^^@lHEeav< zyc1`MV?-T#UVoN#i@1uZ2`W0F)yv?(yVg??RBA8LvP^Uq8mSkPJ+_z?CnQiWc>y9{ z!c&X1{_h=U?0*Q|U&3YuxE^-GLHtmMyzkF`9{uT*2`Z5dD3ySs1h=ZGeKsSV-W&)@ z^r1s6UIxVOOVM!sCYw?Va@ywczIdnc%|`7`&cy+rB~Th}NseqlZLlI2#fvB^1Ufwz zpDMJ9$8ZMT0G@C}J?gbl?NfPl>he1gbEat&A7ko|3{R3INs=T<06&r3a-VQb-O~U7 N002ovPDHLkV1mzL;i~`u diff --git a/tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00006.png b/tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00006.png index fd3155c0d349a1236eb862c8f4f5fc3c3a981ccf..0aa6e196a5cee0966b508da2e11c7cae0e239582 100644 GIT binary patch delta 306 zcmV-20nPsS1I+@EB!3i1L_t(|ob8#x4ul{KMC)e#{}1+{2eO0!Woy)SB=b&Mp_-}C zw1^Nw2q8f1+vs*KKG7ebFtz9<-{=oeSXS9LS=QQ~1Ct+>p(@8$Bio5YC5e?KYcEb2 z2X+8Zw;=f~g1gu^K=lQ83%VWDod^Qhf(h zk*U5L9jU3lGmJqb+=U{+%EN7eIw)C<_T-^#KU5Zr&xgSJ#jBo=44XCs1-l-!*I9fz z5?Tq{YocyvbYQ>Y(-*KxIG3zdWBHW&-J-V|jG?~3^@5Tv7h6Ed!%F}QKugXO-9v)b zt~qJXYK(K|$19kGHKWDDsm$!l8*+fN2SNxTgb?yP2fXRXn~F04_y7O^07*qoM6N<$ Eg03WwApigX delta 478 zcmV<40U`d)0{8=vB!9n2L_t(|ob8#>lEWYfMQ?UC|Np^xNMEvUDtJXBiId?>A5x`= zhz2PT1VIo4zU*6D7m>d*`o0|>RY3NRHRCbT^hmFz@uC5x7Sij#0KeV?6fycewJdA% z*Wf_z0QI?}FW5XIHu{hNt3c#=4Up5)ufA`Mj&M<7qvxQv<( zs(Pdtv0I9%d4D9=Rx*R9!e`F+3^L`C6Wa1xQn{5fma<}Zp;1+CG^5ELUOKf{W&e4l z6mjN*6%h6^R(=z9updm)>(Qsw-jK$m#{y!l-34#BO6TE-P(H z$DKW{cBwL%#oaV+|03$kM)s0I%UP0!OM5lcHB&OiHCMDU-Q1age#39?4hF0s5|HjfVB!fzYt!b#5c4soBmRaBbK@bE%5CjkM0rBsK UUs@{|UH||907*qoM6N<$f;)cYjsO4v diff --git a/tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00007.png b/tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00007.png index c63f25f8dbf212867d4b40bfa2cc85583ca98105..c84d3ec3e6a544f948cc5423e2e0c648861ca25e 100644 GIT binary patch delta 340 zcmV-a0jvJ?0`CHlB!4zZL_t(|ob8!G5`!QNMX^)we_$7O!3;wQgrGp8{I}ASM*J~g zqH_QM09Iwwy!d%I=iIh)mL^w$3m%mCYEPga&k;SwZ~)?m+KYQ0>4DHg7@Sz>fVJ@V zA5=(AlVRBdI!5v@#?N#fk^!D==QfFK##DU@lW7H>x(tok!r`6K5ppD_9b>S;` zr9!}Z(cNJS1~P!*jxMpR{sE^Ji<_{4ed*0qQ4qS&;+ZHCjTOn zZfM`Cq*|S3OQGx>sx>g*RZT2Rn}|-euOL%jc}ppk*!k1gax=2OOgwD z2oV4P0AS0p*EJ=c@9F*6&yV_mY#lp{WyI+vT1$+b1Guv!TI~byw(j7TLfxY!Y}G%( ziCh8d_XZ;iSV>Uj7R0(J@i~r{sdplxV?XmTYy&2f6)4+9*nch~iNjM{?U}L#4V(|# zTjI_WV@yI*-`KAJ`lgkgC@g2^rf?_0*1b%|Xkn7YR%T=#+74maX^C@n{N_9-cPeO} z)NnO24*ybp@)UrS&wo|lA&S&ce=>-{O0Wy9}O7)p?i?j46rz@ZYwP?XC440+4#|A)(=tiv(~tv5dZ)H07*qoM6N<$g48ypZU6uP diff --git a/tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00008.png b/tests/ragger/snapshots/nanos/test_sign_blind_and_nonce_display/00008.png index 0aa6e196a5cee0966b508da2e11c7cae0e239582..1c9156c31edf73cb072eaebf2db3fbe1ba5c612b 100644 GIT binary patch delta 387 zcmV-}0et?=0-ghqB!6W|L_t(|ob8#-4ul{Kgh#W!{{wq)47ENOEh^0jsFWbV&<+yj5)WEX_aERLO-`${sQ zhD#B5ZCio#FnpZvsgyOJV*hwd>m7MA*2TC`gvbxExlw9P*GWl3w#fa$g^{OWU5rzv zURSsL8^HL;(=ZJ{t@3k$n&|FdPSzHrM5CkhAHD9@5i$)x%zaJzw-<`s4Tqj`@b>t( hEI~pDA%qap!xv8s=`=p(@8$Bio5YC5e?KYcEb2 z2X+8Zw;=f~g1gu^K=lQ83%VWDod^Qhf(h zk*U5L9jU3lGmJqb+=U{+%EN7eIw)C<_T-^#KU5Zr&xgSJ#jBo=44XCs1-l-!*I9fz z5?Tq{YocyvbYQ>Y(-*KxIG3zdWBHW&-J-V|jG?~3^@5Tv7h6Ed!%F}QKugXO-9v)b zt~qJXYK(K|$19kGHKWDDsm$!l8*+fN2SNxTgb?yP2fXRXn~F04_y7O^07*qoM6N<$ EfCfH^_}!yz*BZkv^2=?Hdxc{A*JQ7n8RtPp zK=N5{Easxhaf*%Yv5kPk2P1#Has1IRPeHBs$cs9T66OLVbARr_7zz;OoG=T?BQe() z5gxob-#-pvr56zPj+vZs*7zvc)y3?k1aOLJy=-1h0GG6GZi4}#20ekxLQ8>o4!52c z$FXo$VhXU?0M$^Bekqgf%Ka;M*^X|4Es9YCQ(xfJKmNC#+8dY%2&wT+>D^<3C%}l9*&i4DHg7@Sz>fVJ@V zA5=(AlVRBdI!5v@#?N#fk^!D==QfFK##DU@lW7H>x(tok!r`6K5ppD_9b>S;` zr9!}Z(cNJS1~P!*jxMpR{sE^Ji<_{4ed*0qQ4qS&;+ZHCjTOn zZfM`Cq*|S3OQGx>sx>g*RZT2Rn}|-euOL%jc}ppk*!k1ga7K0!NhG}QL{{wf?E_UWj5M3E?=Koz8b7?;Y zN<;tv0DwRH<~@U%d8=>cgD}p1dQYHEuFKg+ec!DV8$x-A*_<8uwtX7TT#$rRsXHwfcDqB+VarjtNIg5-{;|_Vd zM(wfdm$^lGQ;R-g&wUdLM71*1&BUk$-9c@k@ipjr7PC4Diy=bkc6x~B{X6CEobY9= z9MJg~=ZXsXe?o@@S;NBA|Art=iuJ}{-&6t=T1>h>g@qEmLA5M`M?2LoLbk@4Zi=|Jh=0iWo~CwbK{owvgDwF` zJ3DyOH~?vNGl__JEYmOXV~4QvUMANM{~oNGq}BVn*CAiDt?GR;697%&!rr%r;A(ik zGl;=R(1k{Fb+Qv48=RKpW(Q4vTPFO z2|!`%tQ%d711K$MFbKe4=4nBNX8-^I0001(fdizku;Tvj@h<=X002ovPDHLkV1i@L Bjb#7; diff --git a/tests/ragger/snapshots/nanos/test_sign_blind_simple/00003.png b/tests/ragger/snapshots/nanos/test_sign_blind_simple/00003.png index c2af54e964e6227cfbee76037f4dba52af08a7ef..8656b81752a48501b840f96ec775d5a947435225 100644 GIT binary patch delta 471 zcmV;|0Vw{%1MvfpB!9R`L_t(|ob8y)cElhEhDlHJ{tui*x=8D>!p|jYlF8v)&3HjT zL<3QhBuSFYW#3|5%J|OJ_e~Ifv>aW{;5SgrQ+hp(oeCgL(0&Y8L*je(0uZO)OUtr` z|8h|K%i(b+{yx!Y#qi)=^^@lHEeav< zyc1`MV?-T#UVoN#i@1uZ2`W0F)yv?(yVg??RBA8LvP^Uq8mSkPJ+_z?CnQiWc>y9{ z!c&X1{_h=U?0*Q|U&3YuxE^-GLHtmMyzkF`9{uT*2`Z5dD3ySs1h=ZGeKsSV-W&)@ z^r1s6UIxVOOVM!sCYw?Va@ywczIdnc%|`7`&cy+rB~Th}NseqlZLlI2#fvB^1Ufwz zpDMJ9$8ZMT0G@C}J?gbl?NfPl>he1gbEat&A7ko|3{R3INs=T<06&r3a-VQb-O~U7 N002ovPDHLkV1jiz;d%f7 delta 425 zcmV;a0apI;1H%K5B!7xYL_t(|ob8#(62c%1hN)xU|A9T|K?gA#DJ8(v{~Hg=60$%_ zV@d!306;9y$0`auAD@pnfcH+{RR6IsdoDLerDbbIUQ1X*Y%zfRtSZt>P-R98rsaf8&R8zXtO=g^AAERP(cMKnjd?1}>p z;3>0IyR?D~uYbuj*C`Km*;=)=IHeWD*MgE>mE_xD~EPYa1Hp<_W%yfuin zIP97ffKKPPn}joHw)nL21t6Cvxpc9MYu1eCYRDVgv?6k@<)^PJ0000004~G}bh=WB TwNP|i00000NkvXXu0mjfp?=D$ diff --git a/tests/ragger/snapshots/nanos/test_sign_blind_simple/00004.png b/tests/ragger/snapshots/nanos/test_sign_blind_simple/00004.png index a54fefd4c94fc7cfc5df4396112561399f2b0f6d..fd3155c0d349a1236eb862c8f4f5fc3c3a981ccf 100644 GIT binary patch delta 478 zcmV<40U`dt0{8=vB!9n2L_t(|ob8#>lEWYfMQ?UC|Np^xNMEvUDtJXBiId?>A5x`= zhz2PT1VIo4zU*6D7m>d*`o0|>RY3NRHRCbT^hmFz@uC5x7Sij#0KeV?6fycewJdA% z*Wf_z0QI?}FW5XIHu{hNt3c#=4Up5)ufA`Mj&M<7qvxQv<( zs(Pdtv0I9%d4D9=Rx*R9!e`F+3^L`C6Wa1xQn{5fma<}Zp;1+CG^5ELUOKf{W&e4l z6mjN*6%h6^R(=z9updm)>(Qsw-jK$m#{y!l-34#BO6TE-P(H z$DKW{cBwL%#oaV+|03$kM)s0I%UP0!OM5lcHB&OiHCMDU-Q1age#39?4hF0s5|HjfVB!fzYt!b#5c4soBmRaBbK@bE%5CjkM0rBsK UUs@{|UH||907*qoM6N<$f+INPfdBvi delta 293 zcmV+=0owlf1Hb~1B!34J24Gmm`#-P;cX15c4(7C_;QwU@ho&M$ zNNNZG006qy#Y+d)W&4R2@Uz`}eu4aKmbYs*)?B%l^>;?eg; z7;22ZG31~ptU^5vzYmKAOR>P|&=8&cRkP+Z0{vPLRCOvxpM+|&3x-8wkj(bsa5z?9 r4OPY79XPJ?{T?!4V*mgE02spyJOsdq*mgLT00000NkvXXu0mjfv|o(@ diff --git a/tests/ragger/snapshots/nanos/test_sign_blind_simple/00005.png b/tests/ragger/snapshots/nanos/test_sign_blind_simple/00005.png index 8656b81752a48501b840f96ec775d5a947435225..c63f25f8dbf212867d4b40bfa2cc85583ca98105 100644 GIT binary patch delta 346 zcmV-g0j2)&1N8!sB!4_fL_t(|ob8y)62dSDMTuko|AV`zo0_pe^CqFrJ>x=2OOgwD z2oV4P0AS0p*EJ=c@9F*6&yV_mY#lp{WyI+vT1$+b1Guv!TI~byw(j7TLfxY!Y}G%( ziCh8d_XZ;iSV>Uj7R0(J@i~r{sdplxV?XmTYy&2f6)4+9*nch~iNjM{?U}L#4V(|# zTjI_WV@yI*-`KAJ`lgkgC@g2^rf?_0*1b%|Xkn7YR%T=#+74maX^C@n{N_9-cPeO} z)NnO24*ybp@)UrS&wo|lA&S&ce=>-{O0Wy9}O7)p?i?j46rz@ZYwP?XC440+4#|A)(=tiv(~tv5dZ)H07*qoM6N<$g4jc)aR2}S delta 471 zcmV;|0Vw|U0`UWoB!9R`L_t(|ob8y)cElhEhDlHJ{tui*x=8D>!p|jYlF8v)&3HjT zL<3QhBuSFYW#3|5%J|OJ_e~Ifv>aW{;5SgrQ+hp(oeCgL(0&Y8L*je(0uZO)OUtr` z|8h|K%i(b+{yx!Y#qi)=^^@lHEeav< zyc1`MV?-T#UVoN#i@1uZ2`W0F)yv?(yVg??RBA8LvP^Uq8mSkPJ+_z?CnQiWc>y9{ z!c&X1{_h=U?0*Q|U&3YuxE^-GLHtmMyzkF`9{uT*2`Z5dD3ySs1h=ZGeKsSV-W&)@ z^r1s6UIxVOOVM!sCYw?Va@ywczIdnc%|`7`&cy+rB~Th}NseqlZLlI2#fvB^1Ufwz zpDMJ9$8ZMT0G@C}J?gbl?NfPl>he1gbEat&A7ko|3{R3INs=T<06&r3a-VQb-O~U7 N002ovPDHLkV1mzL;i~`u diff --git a/tests/ragger/snapshots/nanos/test_sign_blind_simple/00006.png b/tests/ragger/snapshots/nanos/test_sign_blind_simple/00006.png index fd3155c0d349a1236eb862c8f4f5fc3c3a981ccf..c84d3ec3e6a544f948cc5423e2e0c648861ca25e 100644 GIT binary patch delta 340 zcmV-a0jvJ_1MdQmB!4zZL_t(|ob8!G5`!QNMX^)we_$7O!3;wQgrGp8{I}ASM*J~g zqH_QM09Iwwy!d%I=iIh)mL^w$3m%mCYEPga&k;SwZ~)?m+KYQ0>4DHg7@Sz>fVJ@V zA5=(AlVRBdI!5v@#?N#fk^!D==QfFK##DU@lW7H>x(tok!r`6K5ppD_9b>S;` zr9!}Z(cNJS1~P!*jxMpR{sE^Ji<_{4ed*0qQ4qS&;+ZHCjTOn zZfM`Cq*|S3OQGx>sx>g*RZT2Rn}|-euOL%jc}ppk*!k1galEWYfMQ?UC|Np^xNMEvUDtJXBiId?>A5x`= zhz2PT1VIo4zU*6D7m>d*`o0|>RY3NRHRCbT^hmFz@uC5x7Sij#0KeV?6fycewJdA% z*Wf_z0QI?}FW5XIHu{hNt3c#=4Up5)ufA`Mj&M<7qvxQv<( zs(Pdtv0I9%d4D9=Rx*R9!e`F+3^L`C6Wa1xQn{5fma<}Zp;1+CG^5ELUOKf{W&e4l z6mjN*6%h6^R(=z9updm)>(Qsw-jK$m#{y!l-34#BO6TE-P(H z$DKW{cBwL%#oaV+|03$kM)s0I%UP0!OM5lcHB&OiHCMDU-Q1age#39?4hF0s5|HjfVB!fzYt!b#5c4soBmRaBbK@bE%5CjkM0rBsK UUs@{|UH||907*qoM6N<$f_nPpumAu6 diff --git a/tests/ragger/snapshots/nanos/test_sign_blind_simple/00007.png b/tests/ragger/snapshots/nanos/test_sign_blind_simple/00007.png index c63f25f8dbf212867d4b40bfa2cc85583ca98105..1c9156c31edf73cb072eaebf2db3fbe1ba5c612b 100644 GIT binary patch delta 387 zcmV-}0et@T0-ghqB!6W|L_t(|ob8#-4ul{Kgh#W!{{wq)47ENOEh^0jsFWbV&<+yj5)WEX_aERLO-`${sQ zhD#B5ZCio#FnpZvsgyOJV*hwd>m7MA*2TC`gvbxExlw9P*GWl3w#fa$g^{OWU5rzv zURSsL8^HL;(=ZJ{t@3k$n&|FdPSzHrM5CkhAHD9@5i$)x%zaJzw-<`s4Tqj`@b>t( hEI~pDA%qap!xv8s=`=x=2OOgwD z2oV4P0AS0p*EJ=c@9F*6&yV_mY#lp{WyI+vT1$+b1Guv!TI~byw(j7TLfxY!Y}G%( ziCh8d_XZ;iSV>Uj7R0(J@i~r{sdplxV?XmTYy&2f6)4+9*nch~iNjM{?U}L#4V(|# zTjI_WV@yI*-`KAJ`lgkgC@g2^rf?_0*1b%|Xkn7YR%T=#+74maX^C@n{N_9-cPeO} z)NnO24*ybp@)UrS&wo|lA&S&ce=>-{O0Wy9}O7)p?i?j46rz@ZYwP?XC440+4#|A)(=tiv(~tv5dZ)H07*qoM6N<$f@l?`9smFU diff --git a/tests/ragger/snapshots/nanos/test_sign_blind_simple/00008.png b/tests/ragger/snapshots/nanos/test_sign_blind_simple/00008.png index c84d3ec3e6a544f948cc5423e2e0c648861ca25e..ce795f34e8569e986af689fded3b59c9a8af2961 100644 GIT binary patch delta 322 zcmV-I0loh30^I_TB!47HL_t(|ob8#-62c%1gsEfS|A9T|fw6-G0=6YAu-~c0@)I@* zLv)T1LI|CfH^_}!yz*BZkv^2=?Hdxc{A*JQ7n8RtPp zK=N5{Easxhaf*%Yv5kPk2P1#Has1IRPeHBs$cs9T66OLVbARr_7zz;OoG=T?BQe() z5gxob-#-pvr56zPj+vZs*7zvc)y3?k1aOLJy=-1h0GG6GZi4}#20ekxLQ8>o4!52c z$FXo$VhXU?0M$^Bekqgf%Ka;M*^X|4Es9YCQ(xfJKmNC#+8dY%2&wT+>D^<3C%}l9*&i4DHg7@Sz>fVJ@V zA5=(AlVRBdI!5v@#?N#fk^!D==QfFK##DU@lW7H>x(tok!r`6K5ppD_9b>S;` zr9!}Z(cNJS1~P!*jxMpR{sE^Ji<_{4ed*0qQ4qS&;+ZHCjTOn zZfM`Cq*|S3OQGx>sx>g*RZT2Rn}|-euOL%jc}ppk*!k1ga7K0!NhG}QL{{wf?E_UWj5M3E?=Koz8b7?;Y zN<;tv0DwRH<~@U%d8=>cgD}p1dQYHEuFKg+ec!DV8$x-A*_<8uwtX7TT#$rRsXHwfcDqB+VarjtNIg5-{;|_Vd zM(wfdm$^lGQ;R-g&wUdLM71*1&BUk$-9c@k@ipjr7PC4Diy=bkc6x~B{X6CEobY9= z9MJg~=ZXsXe?o@@S;NBA|Art=iuJ}{-&6t=T1>h>g@qEmLA5M`M?2LoLbk@4Zi=|Jh=0iWo~CwbK{owvgDwF` zJ3DyOH~?vNGl__JEYmOXV~4QvUMANM{~oNGq}BVn*CAiDt?GR;697%&!rr%r;A(ik zGl;=R(1k{Fb+Qv48=RKpW(Q4vTPFO z2|!`%tQ%d711K$MFbKe4=4nBNX8-^I0001(fdizku;Tvj@h<=X002ovPDHLkV1i@L Bjb#7; diff --git a/tests/ragger/snapshots/nanos/test_sign_nonce_display/00002.png b/tests/ragger/snapshots/nanos/test_sign_nonce_display/00002.png index c2af54e964e6227cfbee76037f4dba52af08a7ef..8656b81752a48501b840f96ec775d5a947435225 100644 GIT binary patch delta 471 zcmV;|0Vw{%1MvfpB!9R`L_t(|ob8y)cElhEhDlHJ{tui*x=8D>!p|jYlF8v)&3HjT zL<3QhBuSFYW#3|5%J|OJ_e~Ifv>aW{;5SgrQ+hp(oeCgL(0&Y8L*je(0uZO)OUtr` z|8h|K%i(b+{yx!Y#qi)=^^@lHEeav< zyc1`MV?-T#UVoN#i@1uZ2`W0F)yv?(yVg??RBA8LvP^Uq8mSkPJ+_z?CnQiWc>y9{ z!c&X1{_h=U?0*Q|U&3YuxE^-GLHtmMyzkF`9{uT*2`Z5dD3ySs1h=ZGeKsSV-W&)@ z^r1s6UIxVOOVM!sCYw?Va@ywczIdnc%|`7`&cy+rB~Th}NseqlZLlI2#fvB^1Ufwz zpDMJ9$8ZMT0G@C}J?gbl?NfPl>he1gbEat&A7ko|3{R3INs=T<06&r3a-VQb-O~U7 N002ovPDHLkV1jiz;d%f7 delta 425 zcmV;a0apI;1H%K5B!7xYL_t(|ob8#(62c%1hN)xU|A9T|K?gA#DJ8(v{~Hg=60$%_ zV@d!306;9y$0`auAD@pnfcH+{RR6IsdoDLerDbbIUQ1X*Y%zfRtSZt>P-R98rsaf8&R8zXtO=g^AAERP(cMKnjd?1}>p z;3>0IyR?D~uYbuj*C`Km*;=)=IHeWD*MgE>mE_xD~EPYa1Hp<_W%yfuin zIP97ffKKPPn}joHw)nL21t6Cvxpc9MYu1eCYRDVgv?6k@<)^PJ0000004~G}bh=WB TwNP|i00000NkvXXu0mjfp?=D$ diff --git a/tests/ragger/snapshots/nanos/test_sign_nonce_display/00003.png b/tests/ragger/snapshots/nanos/test_sign_nonce_display/00003.png index a54fefd4c94fc7cfc5df4396112561399f2b0f6d..fd3155c0d349a1236eb862c8f4f5fc3c3a981ccf 100644 GIT binary patch delta 478 zcmV<40U`dt0{8=vB!9n2L_t(|ob8#>lEWYfMQ?UC|Np^xNMEvUDtJXBiId?>A5x`= zhz2PT1VIo4zU*6D7m>d*`o0|>RY3NRHRCbT^hmFz@uC5x7Sij#0KeV?6fycewJdA% z*Wf_z0QI?}FW5XIHu{hNt3c#=4Up5)ufA`Mj&M<7qvxQv<( zs(Pdtv0I9%d4D9=Rx*R9!e`F+3^L`C6Wa1xQn{5fma<}Zp;1+CG^5ELUOKf{W&e4l z6mjN*6%h6^R(=z9updm)>(Qsw-jK$m#{y!l-34#BO6TE-P(H z$DKW{cBwL%#oaV+|03$kM)s0I%UP0!OM5lcHB&OiHCMDU-Q1age#39?4hF0s5|HjfVB!fzYt!b#5c4soBmRaBbK@bE%5CjkM0rBsK UUs@{|UH||907*qoM6N<$f+INPfdBvi delta 293 zcmV+=0owlf1Hb~1B!34J24Gmm`#-P;cX15c4(7C_;QwU@ho&M$ zNNNZG006qy#Y+d)W&4R2@Uz`}eu4aKmbYs*)?B%l^>;?eg; z7;22ZG31~ptU^5vzYmKAOR>P|&=8&cRkP+Z0{vPLRCOvxpM+|&3x-8wkj(bsa5z?9 r4OPY79XPJ?{T?!4V*mgE02spyJOsdq*mgLT00000NkvXXu0mjfv|o(@ diff --git a/tests/ragger/snapshots/nanos/test_sign_nonce_display/00004.png b/tests/ragger/snapshots/nanos/test_sign_nonce_display/00004.png index 8656b81752a48501b840f96ec775d5a947435225..c63f25f8dbf212867d4b40bfa2cc85583ca98105 100644 GIT binary patch delta 346 zcmV-g0j2)&1N8!sB!4_fL_t(|ob8y)62dSDMTuko|AV`zo0_pe^CqFrJ>x=2OOgwD z2oV4P0AS0p*EJ=c@9F*6&yV_mY#lp{WyI+vT1$+b1Guv!TI~byw(j7TLfxY!Y}G%( ziCh8d_XZ;iSV>Uj7R0(J@i~r{sdplxV?XmTYy&2f6)4+9*nch~iNjM{?U}L#4V(|# zTjI_WV@yI*-`KAJ`lgkgC@g2^rf?_0*1b%|Xkn7YR%T=#+74maX^C@n{N_9-cPeO} z)NnO24*ybp@)UrS&wo|lA&S&ce=>-{O0Wy9}O7)p?i?j46rz@ZYwP?XC440+4#|A)(=tiv(~tv5dZ)H07*qoM6N<$g4jc)aR2}S delta 471 zcmV;|0Vw|U0`UWoB!9R`L_t(|ob8y)cElhEhDlHJ{tui*x=8D>!p|jYlF8v)&3HjT zL<3QhBuSFYW#3|5%J|OJ_e~Ifv>aW{;5SgrQ+hp(oeCgL(0&Y8L*je(0uZO)OUtr` z|8h|K%i(b+{yx!Y#qi)=^^@lHEeav< zyc1`MV?-T#UVoN#i@1uZ2`W0F)yv?(yVg??RBA8LvP^Uq8mSkPJ+_z?CnQiWc>y9{ z!c&X1{_h=U?0*Q|U&3YuxE^-GLHtmMyzkF`9{uT*2`Z5dD3ySs1h=ZGeKsSV-W&)@ z^r1s6UIxVOOVM!sCYw?Va@ywczIdnc%|`7`&cy+rB~Th}NseqlZLlI2#fvB^1Ufwz zpDMJ9$8ZMT0G@C}J?gbl?NfPl>he1gbEat&A7ko|3{R3INs=T<06&r3a-VQb-O~U7 N002ovPDHLkV1mzL;i~`u diff --git a/tests/ragger/snapshots/nanos/test_sign_nonce_display/00005.png b/tests/ragger/snapshots/nanos/test_sign_nonce_display/00005.png index fd3155c0d349a1236eb862c8f4f5fc3c3a981ccf..46e1645ebc76d871a8589b8ab319036ac04548e4 100644 GIT binary patch delta 243 zcmVi#dC}F_ zXg9!W36k$380GW^(-*rXXgI5t$M6b}(Tl(&^D7{ogY5cwuWaWX_3i$PQ+5+C=}%A% zne?Z*h??{#V-7S?g*5H(KODBT*&)O#BVS(m42F+-ZrR=m{{g2xfPRL$5ClOG1itKBTNjbPGWxz9A5}p1jy2;k()38LrSYNxr54ibzW~490~9g(J+&-r z^Vi@&?f~_Sago#$5lH3?AsBK%Q|2(RR>vyNPi|}&j6NnjGbm~If4ex zCp%lx$&=O?!l%-hnGPub9e}^E@|$)Rvm}Hk^FDyZSG}BYYRO!ddb7q%L*GldG$>cD z+V9RwGT(2yCpFv~6@{<#K4w|~rt_`dpAf~>;r*M5HF%OZg`VWw$s!F^6GtFV*SL(D z4yt;j7_nQ5segGS*H$uvr^08>_Y5-Sk`vnUT2i@{GM2JpccD>LZZxCG9$q@NSY`it zr4(`Y^*#3y5=T4Dvqe)ll-^1;ioSmxfmBk^jchFeHOYg{^6*ns#S0rIuOW|3MH0K@bEF@&WPh VhF@AM7+wGX002ovPDHLkV1mhH4DHg7@Sz>fVJ@V zA5=(AlVRBdI!5v@#?N#fk^!D==QfFK##DU@lW7H>x(tok!r`6K5ppD_9b>S;` zr9!}Z(cNJS1~P!*jxMpR{sE^Ji<_{4ed*0qQ4qS&;+ZHCjTOn zZfM`Cq*|S3OQGx>sx>g*RZT2Rn}|-euOL%jc}ppk*!k1gax=2OOgwD z2oV4P0AS0p*EJ=c@9F*6&yV_mY#lp{WyI+vT1$+b1Guv!TI~byw(j7TLfxY!Y}G%( ziCh8d_XZ;iSV>Uj7R0(J@i~r{sdplxV?XmTYy&2f6)4+9*nch~iNjM{?U}L#4V(|# zTjI_WV@yI*-`KAJ`lgkgC@g2^rf?_0*1b%|Xkn7YR%T=#+74maX^C@n{N_9-cPeO} z)NnO24*ybp@)UrS&wo|lA&S&ce=>-{O0Wy9}O7)p?i?j46rz@ZYwP?XC440+4#|A)(=tiv(~tv5dZ)H07*qoM6N<$g48ypZU6uP diff --git a/tests/ragger/snapshots/nanos/test_sign_nonce_display/00007.png b/tests/ragger/snapshots/nanos/test_sign_nonce_display/00007.png index 46e1645ebc76d871a8589b8ab319036ac04548e4..1c9156c31edf73cb072eaebf2db3fbe1ba5c612b 100644 GIT binary patch delta 388 zcmV-~0ek+A0-ghqBYy#9Nklj~f|{k#}B4)Di%0(GQh%XXzDG$sKK-Q2JkKR-`QsiPFD z-4d_!i{fwH;J|_aEL%ZYNu#B0FJ7G|;=_VQWOA9;dQ4Y9)PG&BfMYLcs%a_WK0I^Y z0ZPx+*m_{(B`inQ%*vQ?(+s9;WxkGgoIpX|HN8EUAg@U@BjmOiz+V9L>esT2>TAei z0HD)(iY8<0Jg?*C7*PE#giuR*L+>87Lo8`?BJ#C$@MP}Kd)xzmi#dC}F_ zXg9!W36k$380GW^(-*rXXgI5t$M6b}(Tl(&^D7{ogY5cwuWaWX_3i$PQ+5+C=}%A% zne?Z*h??{#V-7S?g*5H(KODBT*&)O#BVS(m42F+-ZrR=m{{g2xfPRCfH^_}!yz*BZkv^2=?Hdxc{A*JQ7n8RtPp zK=N5{Easxhaf*%Yv5kPk2P1#Has1IRPeHBs$cs9T66OLVbARr_7zz;OoG=T?BQe() z5gxob-#-pvr56zPj+vZs*7zvc)y3?k1aOLJy=-1h0GG6GZi4}#20ekxLQ8>o4!52c z$FXo$VhXU?0M$^Bekqgf%Ka;M*^X|4Es9YCQ(xfJKmNC#+8dY%2&wT+>D^<3C%}l9*&i4DHg7@Sz>fVJ@V zA5=(AlVRBdI!5v@#?N#fk^!D==QfFK##DU@lW7H>x(tok!r`6K5ppD_9b>S;` zr9!}Z(cNJS1~P!*jxMpR{sE^Ji<_{4ed*0qQ4qS&;+ZHCjTOn zZfM`Cq*|S3OQGx>sx>g*RZT2Rn}|-euOL%jc}ppk*!k1ga7K0!NhG}QL{{wf?E_UWj5M3E?=Koz8b7?;Y zN<;tv0DwRH<~@U%d8=>cgD}p1dQYHEuFKg+ec!DV8$x-A*_<8uwtX7TT#$rRsXHwfcDqB+VarjtNIg5-{;|_Vd zM(wfdm$^lGQ;R-g&wUdLM71*1&BUk$-9c@k@ipjr7PC4Diy=bkc6x~B{X6CEobY9= z9MJg~=ZXsXe?o@@S;NBA|Art=iuJ}{-&6t=T1>h>g@qEmLA5M`M?2LoLbk@4Zi=|Jh=0iWo~CwbK{owvgDwF` zJ3DyOH~?vNGl__JEYmOXV~4QvUMANM{~oNGq}BVn*CAiDt?GR;697%&!rr%r;A(ik zGl;=R(1k{Fb+Qv48=RKpW(Q4vTPFO z2|!`%tQ%d711K$MFbKe4=4nBNX8-^I0001(fdizku;Tvj@h<=X002ovPDHLkV1i@L Bjb#7; diff --git a/tests/ragger/snapshots/nanos/test_sign_reject/00002.png b/tests/ragger/snapshots/nanos/test_sign_reject/00002.png index c2af54e964e6227cfbee76037f4dba52af08a7ef..8656b81752a48501b840f96ec775d5a947435225 100644 GIT binary patch delta 471 zcmV;|0Vw{%1MvfpB!9R`L_t(|ob8y)cElhEhDlHJ{tui*x=8D>!p|jYlF8v)&3HjT zL<3QhBuSFYW#3|5%J|OJ_e~Ifv>aW{;5SgrQ+hp(oeCgL(0&Y8L*je(0uZO)OUtr` z|8h|K%i(b+{yx!Y#qi)=^^@lHEeav< zyc1`MV?-T#UVoN#i@1uZ2`W0F)yv?(yVg??RBA8LvP^Uq8mSkPJ+_z?CnQiWc>y9{ z!c&X1{_h=U?0*Q|U&3YuxE^-GLHtmMyzkF`9{uT*2`Z5dD3ySs1h=ZGeKsSV-W&)@ z^r1s6UIxVOOVM!sCYw?Va@ywczIdnc%|`7`&cy+rB~Th}NseqlZLlI2#fvB^1Ufwz zpDMJ9$8ZMT0G@C}J?gbl?NfPl>he1gbEat&A7ko|3{R3INs=T<06&r3a-VQb-O~U7 N002ovPDHLkV1jiz;d%f7 delta 425 zcmV;a0apI;1H%K5B!7xYL_t(|ob8#(62c%1hN)xU|A9T|K?gA#DJ8(v{~Hg=60$%_ zV@d!306;9y$0`auAD@pnfcH+{RR6IsdoDLerDbbIUQ1X*Y%zfRtSZt>P-R98rsaf8&R8zXtO=g^AAERP(cMKnjd?1}>p z;3>0IyR?D~uYbuj*C`Km*;=)=IHeWD*MgE>mE_xD~EPYa1Hp<_W%yfuin zIP97ffKKPPn}joHw)nL21t6Cvxpc9MYu1eCYRDVgv?6k@<)^PJ0000004~G}bh=WB TwNP|i00000NkvXXu0mjfp?=D$ diff --git a/tests/ragger/snapshots/nanos/test_sign_reject/00003.png b/tests/ragger/snapshots/nanos/test_sign_reject/00003.png index a54fefd4c94fc7cfc5df4396112561399f2b0f6d..fd3155c0d349a1236eb862c8f4f5fc3c3a981ccf 100644 GIT binary patch delta 478 zcmV<40U`dt0{8=vB!9n2L_t(|ob8#>lEWYfMQ?UC|Np^xNMEvUDtJXBiId?>A5x`= zhz2PT1VIo4zU*6D7m>d*`o0|>RY3NRHRCbT^hmFz@uC5x7Sij#0KeV?6fycewJdA% z*Wf_z0QI?}FW5XIHu{hNt3c#=4Up5)ufA`Mj&M<7qvxQv<( zs(Pdtv0I9%d4D9=Rx*R9!e`F+3^L`C6Wa1xQn{5fma<}Zp;1+CG^5ELUOKf{W&e4l z6mjN*6%h6^R(=z9updm)>(Qsw-jK$m#{y!l-34#BO6TE-P(H z$DKW{cBwL%#oaV+|03$kM)s0I%UP0!OM5lcHB&OiHCMDU-Q1age#39?4hF0s5|HjfVB!fzYt!b#5c4soBmRaBbK@bE%5CjkM0rBsK UUs@{|UH||907*qoM6N<$f+INPfdBvi delta 293 zcmV+=0owlf1Hb~1B!34J24Gmm`#-P;cX15c4(7C_;QwU@ho&M$ zNNNZG006qy#Y+d)W&4R2@Uz`}eu4aKmbYs*)?B%l^>;?eg; z7;22ZG31~ptU^5vzYmKAOR>P|&=8&cRkP+Z0{vPLRCOvxpM+|&3x-8wkj(bsa5z?9 r4OPY79XPJ?{T?!4V*mgE02spyJOsdq*mgLT00000NkvXXu0mjfv|o(@ diff --git a/tests/ragger/snapshots/nanos/test_sign_reject/00004.png b/tests/ragger/snapshots/nanos/test_sign_reject/00004.png index 8656b81752a48501b840f96ec775d5a947435225..c63f25f8dbf212867d4b40bfa2cc85583ca98105 100644 GIT binary patch delta 346 zcmV-g0j2)&1N8!sB!4_fL_t(|ob8y)62dSDMTuko|AV`zo0_pe^CqFrJ>x=2OOgwD z2oV4P0AS0p*EJ=c@9F*6&yV_mY#lp{WyI+vT1$+b1Guv!TI~byw(j7TLfxY!Y}G%( ziCh8d_XZ;iSV>Uj7R0(J@i~r{sdplxV?XmTYy&2f6)4+9*nch~iNjM{?U}L#4V(|# zTjI_WV@yI*-`KAJ`lgkgC@g2^rf?_0*1b%|Xkn7YR%T=#+74maX^C@n{N_9-cPeO} z)NnO24*ybp@)UrS&wo|lA&S&ce=>-{O0Wy9}O7)p?i?j46rz@ZYwP?XC440+4#|A)(=tiv(~tv5dZ)H07*qoM6N<$g4jc)aR2}S delta 471 zcmV;|0Vw|U0`UWoB!9R`L_t(|ob8y)cElhEhDlHJ{tui*x=8D>!p|jYlF8v)&3HjT zL<3QhBuSFYW#3|5%J|OJ_e~Ifv>aW{;5SgrQ+hp(oeCgL(0&Y8L*je(0uZO)OUtr` z|8h|K%i(b+{yx!Y#qi)=^^@lHEeav< zyc1`MV?-T#UVoN#i@1uZ2`W0F)yv?(yVg??RBA8LvP^Uq8mSkPJ+_z?CnQiWc>y9{ z!c&X1{_h=U?0*Q|U&3YuxE^-GLHtmMyzkF`9{uT*2`Z5dD3ySs1h=ZGeKsSV-W&)@ z^r1s6UIxVOOVM!sCYw?Va@ywczIdnc%|`7`&cy+rB~Th}NseqlZLlI2#fvB^1Ufwz zpDMJ9$8ZMT0G@C}J?gbl?NfPl>he1gbEat&A7ko|3{R3INs=T<06&r3a-VQb-O~U7 N002ovPDHLkV1mzL;i~`u diff --git a/tests/ragger/snapshots/nanos/test_sign_reject/00005.png b/tests/ragger/snapshots/nanos/test_sign_reject/00005.png index fd3155c0d349a1236eb862c8f4f5fc3c3a981ccf..c84d3ec3e6a544f948cc5423e2e0c648861ca25e 100644 GIT binary patch delta 340 zcmV-a0jvJ_1MdQmB!4zZL_t(|ob8!G5`!QNMX^)we_$7O!3;wQgrGp8{I}ASM*J~g zqH_QM09Iwwy!d%I=iIh)mL^w$3m%mCYEPga&k;SwZ~)?m+KYQ0>4DHg7@Sz>fVJ@V zA5=(AlVRBdI!5v@#?N#fk^!D==QfFK##DU@lW7H>x(tok!r`6K5ppD_9b>S;` zr9!}Z(cNJS1~P!*jxMpR{sE^Ji<_{4ed*0qQ4qS&;+ZHCjTOn zZfM`Cq*|S3OQGx>sx>g*RZT2Rn}|-euOL%jc}ppk*!k1galEWYfMQ?UC|Np^xNMEvUDtJXBiId?>A5x`= zhz2PT1VIo4zU*6D7m>d*`o0|>RY3NRHRCbT^hmFz@uC5x7Sij#0KeV?6fycewJdA% z*Wf_z0QI?}FW5XIHu{hNt3c#=4Up5)ufA`Mj&M<7qvxQv<( zs(Pdtv0I9%d4D9=Rx*R9!e`F+3^L`C6Wa1xQn{5fma<}Zp;1+CG^5ELUOKf{W&e4l z6mjN*6%h6^R(=z9updm)>(Qsw-jK$m#{y!l-34#BO6TE-P(H z$DKW{cBwL%#oaV+|03$kM)s0I%UP0!OM5lcHB&OiHCMDU-Q1age#39?4hF0s5|HjfVB!fzYt!b#5c4soBmRaBbK@bE%5CjkM0rBsK UUs@{|UH||907*qoM6N<$f_nPpumAu6 diff --git a/tests/ragger/snapshots/nanos/test_sign_reject/00006.png b/tests/ragger/snapshots/nanos/test_sign_reject/00006.png index c63f25f8dbf212867d4b40bfa2cc85583ca98105..1c9156c31edf73cb072eaebf2db3fbe1ba5c612b 100644 GIT binary patch delta 387 zcmV-}0et@T0-ghqB!6W|L_t(|ob8#-4ul{Kgh#W!{{wq)47ENOEh^0jsFWbV&<+yj5)WEX_aERLO-`${sQ zhD#B5ZCio#FnpZvsgyOJV*hwd>m7MA*2TC`gvbxExlw9P*GWl3w#fa$g^{OWU5rzv zURSsL8^HL;(=ZJ{t@3k$n&|FdPSzHrM5CkhAHD9@5i$)x%zaJzw-<`s4Tqj`@b>t( hEI~pDA%qap!xv8s=`=x=2OOgwD z2oV4P0AS0p*EJ=c@9F*6&yV_mY#lp{WyI+vT1$+b1Guv!TI~byw(j7TLfxY!Y}G%( ziCh8d_XZ;iSV>Uj7R0(J@i~r{sdplxV?XmTYy&2f6)4+9*nch~iNjM{?U}L#4V(|# zTjI_WV@yI*-`KAJ`lgkgC@g2^rf?_0*1b%|Xkn7YR%T=#+74maX^C@n{N_9-cPeO} z)NnO24*ybp@)UrS&wo|lA&S&ce=>-{O0Wy9}O7)p?i?j46rz@ZYwP?XC440+4#|A)(=tiv(~tv5dZ)H07*qoM6N<$f@l?`9smFU diff --git a/tests/ragger/snapshots/nanos/test_sign_reject/00007.png b/tests/ragger/snapshots/nanos/test_sign_reject/00007.png index c84d3ec3e6a544f948cc5423e2e0c648861ca25e..9c7e7049cb3e9bcfb1601ec510ee465d38229d4d 100644 GIT binary patch delta 313 zcmV-90mlCC0@MPKB!3%8L_t(|ob8#x4#OY}L(^&d{}1NS9Wo(C00pE8o8_HWEv-^J zkf?|RK@bEU?j(0w{1=tS?gZv(s!S-oLS?}9`uwQm&X+lW2Py-k0?~E_&igM#?#L~IOHR(-<@sYotiy&C*Y&G zII0yeh-p3zW9cv$Q0k>6Y_)5~SfP=mSMUtz)%Ex|-o}7!H9hbQ(8{%C?kQVa?C`*U zj-J(h>P7(Y#xl^nkBhIt`kQe1WT9~g7`&Ns0r)K_0Og4C5BBp0_v3}4{b+)F00000 LNkvXXu0mjfgd3LO delta 340 zcmV-a0jvJh0`CHlB!4zZL_t(|ob8!G5`!QNMX^)we_$7O!3;wQgrGp8{I}ASM*J~g zqH_QM09Iwwy!d%I=iIh)mL^w$3m%mCYEPga&k;SwZ~)?m+KYQ0>4DHg7@Sz>fVJ@V zA5=(AlVRBdI!5v@#?N#fk^!D==QfFK##DU@lW7H>x(tok!r`6K5ppD_9b>S;` zr9!}Z(cNJS1~P!*jxMpR{sE^Ji<_{4ed*0qQ4qS&;+ZHCjTOn zZfM`Cq*|S3OQGx>sx>g*RZT2Rn}|-euOL%jc}ppk*!k1gaCfH^_}!yz*BZkv^2=?Hdxc{A*JQ7n8RtPp zK=N5{Easxhaf*%Yv5kPk2P1#Has1IRPeHBs$cs9T66OLVbARr_7zz;OoG=T?BQe() z5gxob-#-pvr56zPj+vZs*7zvc)y3?k1aOLJy=-1h0GG6GZi4}#20ekxLQ8>o4!52c z$FXo$VhXU?0M$^Bekqgf%Ka;M*^X|4Es9YCQ(xfJKmNC#+8dY%2&wT+>D^<3C%}l9*&i5)aIsgCw delta 387 zcmV-}0et@50-ghqB!6W|L_t(|ob8#-4ul{Kgh#W!{{wq)47ENOEh^0jsFWbV&<+yj5)WEX_aERLO-`${sQ zhD#B5ZCio#FnpZvsgyOJV*hwd>m7MA*2TC`gvbxExlw9P*GWl3w#fa$g^{OWU5rzv zURSsL8^HL;(=ZJ{t@3k$n&|FdPSzHrM5CkhAHD9@5i$)x%zaJzw-<`s4Tqj`@b>t( hEI~pDA%qap!xv8s=`=3a diff --git a/tests/ragger/snapshots/nanos/test_sign_simple/00001.png b/tests/ragger/snapshots/nanos/test_sign_simple/00001.png index 7ebda4f3adad095152f16d397131c7f7471ca83a..10706b86e584b2112a228354a70172ae691607a3 100644 GIT binary patch delta 329 zcmV-P0k;0i0^|aaB!4SOL_t(|ob8#>7K0!NhG}QL{{wf?E_UWj5M3E?=Koz8b7?;Y zN<;tv0DwRH<~@U%d8=>cgD}p1dQYHEuFKg+ec!DV8$x-A*_<8uwtX7TT#$rRsXHwfcDqB+VarjtNIg5-{;|_Vd zM(wfdm$^lGQ;R-g&wUdLM71*1&BUk$-9c@k@ipjr7PC4Diy=bkc6x~B{X6CEobY9= z9MJg~=ZXsXe?o@@S;NBA|Art=iuJ}{-&6t=T1>h>g@qEmLA5M`M?2LoLbk@4Zi=|Jh=0iWo~CwbK{owvgDwF` zJ3DyOH~?vNGl__JEYmOXV~4QvUMANM{~oNGq}BVn*CAiDt?GR;697%&!rr%r;A(ik zGl;=R(1k{Fb+Qv48=RKpW(Q4vTPFO z2|!`%tQ%d711K$MFbKe4=4nBNX8-^I0001(fdizku;Tvj@h<=X002ovPDHLkV1i@L Bjb#7; diff --git a/tests/ragger/snapshots/nanos/test_sign_simple/00002.png b/tests/ragger/snapshots/nanos/test_sign_simple/00002.png index c2af54e964e6227cfbee76037f4dba52af08a7ef..8656b81752a48501b840f96ec775d5a947435225 100644 GIT binary patch delta 471 zcmV;|0Vw{%1MvfpB!9R`L_t(|ob8y)cElhEhDlHJ{tui*x=8D>!p|jYlF8v)&3HjT zL<3QhBuSFYW#3|5%J|OJ_e~Ifv>aW{;5SgrQ+hp(oeCgL(0&Y8L*je(0uZO)OUtr` z|8h|K%i(b+{yx!Y#qi)=^^@lHEeav< zyc1`MV?-T#UVoN#i@1uZ2`W0F)yv?(yVg??RBA8LvP^Uq8mSkPJ+_z?CnQiWc>y9{ z!c&X1{_h=U?0*Q|U&3YuxE^-GLHtmMyzkF`9{uT*2`Z5dD3ySs1h=ZGeKsSV-W&)@ z^r1s6UIxVOOVM!sCYw?Va@ywczIdnc%|`7`&cy+rB~Th}NseqlZLlI2#fvB^1Ufwz zpDMJ9$8ZMT0G@C}J?gbl?NfPl>he1gbEat&A7ko|3{R3INs=T<06&r3a-VQb-O~U7 N002ovPDHLkV1jiz;d%f7 delta 425 zcmV;a0apI;1H%K5B!7xYL_t(|ob8#(62c%1hN)xU|A9T|K?gA#DJ8(v{~Hg=60$%_ zV@d!306;9y$0`auAD@pnfcH+{RR6IsdoDLerDbbIUQ1X*Y%zfRtSZt>P-R98rsaf8&R8zXtO=g^AAERP(cMKnjd?1}>p z;3>0IyR?D~uYbuj*C`Km*;=)=IHeWD*MgE>mE_xD~EPYa1Hp<_W%yfuin zIP97ffKKPPn}joHw)nL21t6Cvxpc9MYu1eCYRDVgv?6k@<)^PJ0000004~G}bh=WB TwNP|i00000NkvXXu0mjfp?=D$ diff --git a/tests/ragger/snapshots/nanos/test_sign_simple/00003.png b/tests/ragger/snapshots/nanos/test_sign_simple/00003.png index a54fefd4c94fc7cfc5df4396112561399f2b0f6d..fd3155c0d349a1236eb862c8f4f5fc3c3a981ccf 100644 GIT binary patch delta 478 zcmV<40U`dt0{8=vB!9n2L_t(|ob8#>lEWYfMQ?UC|Np^xNMEvUDtJXBiId?>A5x`= zhz2PT1VIo4zU*6D7m>d*`o0|>RY3NRHRCbT^hmFz@uC5x7Sij#0KeV?6fycewJdA% z*Wf_z0QI?}FW5XIHu{hNt3c#=4Up5)ufA`Mj&M<7qvxQv<( zs(Pdtv0I9%d4D9=Rx*R9!e`F+3^L`C6Wa1xQn{5fma<}Zp;1+CG^5ELUOKf{W&e4l z6mjN*6%h6^R(=z9updm)>(Qsw-jK$m#{y!l-34#BO6TE-P(H z$DKW{cBwL%#oaV+|03$kM)s0I%UP0!OM5lcHB&OiHCMDU-Q1age#39?4hF0s5|HjfVB!fzYt!b#5c4soBmRaBbK@bE%5CjkM0rBsK UUs@{|UH||907*qoM6N<$f+INPfdBvi delta 293 zcmV+=0owlf1Hb~1B!34J24Gmm`#-P;cX15c4(7C_;QwU@ho&M$ zNNNZG006qy#Y+d)W&4R2@Uz`}eu4aKmbYs*)?B%l^>;?eg; z7;22ZG31~ptU^5vzYmKAOR>P|&=8&cRkP+Z0{vPLRCOvxpM+|&3x-8wkj(bsa5z?9 r4OPY79XPJ?{T?!4V*mgE02spyJOsdq*mgLT00000NkvXXu0mjfv|o(@ diff --git a/tests/ragger/snapshots/nanos/test_sign_simple/00004.png b/tests/ragger/snapshots/nanos/test_sign_simple/00004.png index 8656b81752a48501b840f96ec775d5a947435225..c63f25f8dbf212867d4b40bfa2cc85583ca98105 100644 GIT binary patch delta 346 zcmV-g0j2)&1N8!sB!4_fL_t(|ob8y)62dSDMTuko|AV`zo0_pe^CqFrJ>x=2OOgwD z2oV4P0AS0p*EJ=c@9F*6&yV_mY#lp{WyI+vT1$+b1Guv!TI~byw(j7TLfxY!Y}G%( ziCh8d_XZ;iSV>Uj7R0(J@i~r{sdplxV?XmTYy&2f6)4+9*nch~iNjM{?U}L#4V(|# zTjI_WV@yI*-`KAJ`lgkgC@g2^rf?_0*1b%|Xkn7YR%T=#+74maX^C@n{N_9-cPeO} z)NnO24*ybp@)UrS&wo|lA&S&ce=>-{O0Wy9}O7)p?i?j46rz@ZYwP?XC440+4#|A)(=tiv(~tv5dZ)H07*qoM6N<$g4jc)aR2}S delta 471 zcmV;|0Vw|U0`UWoB!9R`L_t(|ob8y)cElhEhDlHJ{tui*x=8D>!p|jYlF8v)&3HjT zL<3QhBuSFYW#3|5%J|OJ_e~Ifv>aW{;5SgrQ+hp(oeCgL(0&Y8L*je(0uZO)OUtr` z|8h|K%i(b+{yx!Y#qi)=^^@lHEeav< zyc1`MV?-T#UVoN#i@1uZ2`W0F)yv?(yVg??RBA8LvP^Uq8mSkPJ+_z?CnQiWc>y9{ z!c&X1{_h=U?0*Q|U&3YuxE^-GLHtmMyzkF`9{uT*2`Z5dD3ySs1h=ZGeKsSV-W&)@ z^r1s6UIxVOOVM!sCYw?Va@ywczIdnc%|`7`&cy+rB~Th}NseqlZLlI2#fvB^1Ufwz zpDMJ9$8ZMT0G@C}J?gbl?NfPl>he1gbEat&A7ko|3{R3INs=T<06&r3a-VQb-O~U7 N002ovPDHLkV1mzL;i~`u diff --git a/tests/ragger/snapshots/nanos/test_sign_simple/00005.png b/tests/ragger/snapshots/nanos/test_sign_simple/00005.png index fd3155c0d349a1236eb862c8f4f5fc3c3a981ccf..c84d3ec3e6a544f948cc5423e2e0c648861ca25e 100644 GIT binary patch delta 340 zcmV-a0jvJ_1MdQmB!4zZL_t(|ob8!G5`!QNMX^)we_$7O!3;wQgrGp8{I}ASM*J~g zqH_QM09Iwwy!d%I=iIh)mL^w$3m%mCYEPga&k;SwZ~)?m+KYQ0>4DHg7@Sz>fVJ@V zA5=(AlVRBdI!5v@#?N#fk^!D==QfFK##DU@lW7H>x(tok!r`6K5ppD_9b>S;` zr9!}Z(cNJS1~P!*jxMpR{sE^Ji<_{4ed*0qQ4qS&;+ZHCjTOn zZfM`Cq*|S3OQGx>sx>g*RZT2Rn}|-euOL%jc}ppk*!k1galEWYfMQ?UC|Np^xNMEvUDtJXBiId?>A5x`= zhz2PT1VIo4zU*6D7m>d*`o0|>RY3NRHRCbT^hmFz@uC5x7Sij#0KeV?6fycewJdA% z*Wf_z0QI?}FW5XIHu{hNt3c#=4Up5)ufA`Mj&M<7qvxQv<( zs(Pdtv0I9%d4D9=Rx*R9!e`F+3^L`C6Wa1xQn{5fma<}Zp;1+CG^5ELUOKf{W&e4l z6mjN*6%h6^R(=z9updm)>(Qsw-jK$m#{y!l-34#BO6TE-P(H z$DKW{cBwL%#oaV+|03$kM)s0I%UP0!OM5lcHB&OiHCMDU-Q1age#39?4hF0s5|HjfVB!fzYt!b#5c4soBmRaBbK@bE%5CjkM0rBsK UUs@{|UH||907*qoM6N<$f_nPpumAu6 diff --git a/tests/ragger/snapshots/nanos/test_sign_simple/00006.png b/tests/ragger/snapshots/nanos/test_sign_simple/00006.png index c63f25f8dbf212867d4b40bfa2cc85583ca98105..1c9156c31edf73cb072eaebf2db3fbe1ba5c612b 100644 GIT binary patch delta 387 zcmV-}0et@T0-ghqB!6W|L_t(|ob8#-4ul{Kgh#W!{{wq)47ENOEh^0jsFWbV&<+yj5)WEX_aERLO-`${sQ zhD#B5ZCio#FnpZvsgyOJV*hwd>m7MA*2TC`gvbxExlw9P*GWl3w#fa$g^{OWU5rzv zURSsL8^HL;(=ZJ{t@3k$n&|FdPSzHrM5CkhAHD9@5i$)x%zaJzw-<`s4Tqj`@b>t( hEI~pDA%qap!xv8s=`=x=2OOgwD z2oV4P0AS0p*EJ=c@9F*6&yV_mY#lp{WyI+vT1$+b1Guv!TI~byw(j7TLfxY!Y}G%( ziCh8d_XZ;iSV>Uj7R0(J@i~r{sdplxV?XmTYy&2f6)4+9*nch~iNjM{?U}L#4V(|# zTjI_WV@yI*-`KAJ`lgkgC@g2^rf?_0*1b%|Xkn7YR%T=#+74maX^C@n{N_9-cPeO} z)NnO24*ybp@)UrS&wo|lA&S&ce=>-{O0Wy9}O7)p?i?j46rz@ZYwP?XC440+4#|A)(=tiv(~tv5dZ)H07*qoM6N<$f@l?`9smFU diff --git a/tests/ragger/snapshots/nanos/test_sign_simple/00007.png b/tests/ragger/snapshots/nanos/test_sign_simple/00007.png index c84d3ec3e6a544f948cc5423e2e0c648861ca25e..ce795f34e8569e986af689fded3b59c9a8af2961 100644 GIT binary patch delta 322 zcmV-I0loh30^I_TB!47HL_t(|ob8#-62c%1gsEfS|A9T|fw6-G0=6YAu-~c0@)I@* zLv)T1LI|CfH^_}!yz*BZkv^2=?Hdxc{A*JQ7n8RtPp zK=N5{Easxhaf*%Yv5kPk2P1#Has1IRPeHBs$cs9T66OLVbARr_7zz;OoG=T?BQe() z5gxob-#-pvr56zPj+vZs*7zvc)y3?k1aOLJy=-1h0GG6GZi4}#20ekxLQ8>o4!52c z$FXo$VhXU?0M$^Bekqgf%Ka;M*^X|4Es9YCQ(xfJKmNC#+8dY%2&wT+>D^<3C%}l9*&i4DHg7@Sz>fVJ@V zA5=(AlVRBdI!5v@#?N#fk^!D==QfFK##DU@lW7H>x(tok!r`6K5ppD_9b>S;` zr9!}Z(cNJS1~P!*jxMpR{sE^Ji<_{4ed*0qQ4qS&;+ZHCjTOn zZfM`Cq*|S3OQGx>sx>g*RZT2Rn}|-euOL%jc}ppk*!k1ga2s~0TGcJ`f1N#o#*|ReFI&pT1wf%R1db}T4DE0+sgD~ zx@xOs$sYmcO>B!>?AilUt^Rs=iMDw?E~Vr~UsiYkn^Upy5r1DKpIop?3i{j#z9@MF zw5i!A_Z~l1(lg0rOQfJSDW7VxJB#`WBWV7$BM$%oAlJ{#i<#YF0h}3<>ssf?}{{H+6PvnpMBAnet7r#D~}$_1;|nb+*Vmp0F3>^FUA>=}nHJ zIo@ZG1|Q;7@^~>PM^aE+9Nb2onTwv5g1nmRgXtmB>=YCy;yVWZEBP(K-7m<66eOJm zOg%sT|4dx7*V`K%biUf~e57uWiT*S@p(gs1@eDGNg)%V@XCk}+000000000000000 d006*k{sBpnH0ft>%UQ3dr8X^mf->dXZH-N}EHZ&5!GC+kCYjW-!1`mwzs##wYP71I*%r*45xi zoL4~Vnx%8EA=iq#CmCi67nC~Xt|rA@RBjkb^PgRL00000zWjL$&_@>k(Qn~Kln9c% zotY_qh{0mK=Jj8amuVjt1duZS5?rwOFzn!;&jrvTp5~GayRWo#kG~?CCHj*M%0UR zsm7iddrNsD6j6HxWd6vLar|q?vgE=Pxg|5slJshqcx)}7Y1MR|(rpf#^A-ctGHQpr z3N61Rhm(1`mh**_{N!Ak4SjM$GymH)y_!k%9_)FKO?!%`hT>c-^YSskRqOYv9?npk zi%}|*0kTgX(%y?jQnFzzM??8=Oe*78XM_g;004lU#d1T#4TnV-#1f&L9}=^indLj- zE-cYjxSh39vR+7Us2MIs`2%txUUdu&YzzPZ0000MzA#zQ6ZUJ^(*OVf07*qoM6N<$ Ef?PuKd;kCd diff --git a/tests/ragger/snapshots/nanox/test_legacy_send_bsc/00001.png b/tests/ragger/snapshots/nanox/test_legacy_send_bsc/00001.png index 4f1699aa19a5c2b8bc55eddbf63c17684a9e751b..1d220e0dcf07cd18e083189545b9c44092dcfca4 100644 GIT binary patch delta 407 zcmV;I0cifo1h4~;BYy#RNklOEgr zfij^4izxvB002L$lu}BG9z}q^=mDgZQVspGIoM~upV0&8Dy8I{k1*B3QLYutE3%d9 zM|CBuMTuVl>PeIzkJ!nAs#d=p-aI??PomCtYN2=CZ0J<;>zFmoyZg7EC+tN`o=Q&Y-@M+wro}$vE6#$< z{BTR1cR*ncW!Hdxsn9rdm(`fF$^8QOmgMb*&$!@vfSzzapvQ8H|BD^k7QXsD4y z#;VjvfZg3_NhOvUaNRc=y*%R>Pt@tqxy+1+7`dDNDs^qKyad_u${Xz}TdJ`q&e14O z+=N>{0eLHV@(wunUBegHTcV+!q*uShV{7?JudefKeSZ!b;1&b4GHQp1DvmIxnt^*Z zL?I==IG1k6nC}5HhI}?Bt_bDYBTW2Erk)zqxp?LkV}M!fch(43XwAhbmCFF^Umob_ zYL%317|+pAJ{*(E`K~L%0{{R30DzqYxuJ~dhea@mCqlVC>GOiJlOs2j;fc0_+hGnT zqyNcGmMUzx*J6BtOvI~>p#>WQ000000017oZxH1!W_{Mg00000NkvXXu0mjfMehxy diff --git a/tests/ragger/snapshots/nanox/test_sign_blind_and_nonce_display/00002.png b/tests/ragger/snapshots/nanox/test_sign_blind_and_nonce_display/00002.png index 0976a317a1afc0f126d48520ceebe95d1fe87db8..36ecb93f5c933d0119dc1d4ead122918415a404e 100644 GIT binary patch delta 393 zcmV;40e1ej1fv6xB!6m2L_t(|obB0La>F1DKvCMsPT2pF*h@b=!%!q1wu6L|d%oNj z3>8KuN(cY|0KnHuDW#OWXW`)2djcVZkV9{_2K%h{%X`GWUR2HUUx!1K-Sc&f(Kq^GhXpvCihqTS_$K+}f?ZP3b0c_@ z^A0FevrO(Sa<8~&lFPP8L1j`t)kS@a$`?kb``7L~0001AKL%rzM?JN8pw=7I(`2i9 zBkMw)#_Cu>t1`8^KTPYa-Khepy=IE0RU5Tsb^MntEk7J=@j+~b){`qYmhUreR0~p5 zM5o#1A%^##41f3Jgzqz2fXRPD=H;_P%!hbp8V0%OV^ffnbA9LaU~iXlw1MFf%SF8a zi)Qwglv;h)82*1{cK`m_x);D8yqoOG&(;hw(Kn-nn&=y24Lp&BJPm@(8Z1S40RR91 n00000000000001hW&Qv|kN-o{`&K9b0000F1DKxwBp@%@j)UHajvM}t7fco8)3eK}?m zQV@zDDFFZg004X}Ip>^nv=jk+M+=ZrN{8xSv%x&}{)rZ#NzQrOwp~rf!~T3!sJ@Y{ zihhc&WVI;bS3vPilplB9$%mraQQ93sHb0)XZHv`@n!x}&r+;*zH9mU88>oVgPh#@$VSQFUz*UZZV@f&b00000NkvXXu0mjfM(PA! diff --git a/tests/ragger/snapshots/nanox/test_sign_blind_simple/00002.png b/tests/ragger/snapshots/nanox/test_sign_blind_simple/00002.png index 0976a317a1afc0f126d48520ceebe95d1fe87db8..36ecb93f5c933d0119dc1d4ead122918415a404e 100644 GIT binary patch delta 393 zcmV;40e1ej1fv6xB!6m2L_t(|obB0La>F1DKvCMsPT2pF*h@b=!%!q1wu6L|d%oNj z3>8KuN(cY|0KnHuDW#OWXW`)2djcVZkV9{_2K%h{%X`GWUR2HUUx!1K-Sc&f(Kq^GhXpvCihqTS_$K+}f?ZP3b0c_@ z^A0FevrO(Sa<8~&lFPP8L1j`t)kS@a$`?kb``7L~0001AKL%rzM?JN8pw=7I(`2i9 zBkMw)#_Cu>t1`8^KTPYa-Khepy=IE0RU5Tsb^MntEk7J=@j+~b){`qYmhUreR0~p5 zM5o#1A%^##41f3Jgzqz2fXRPD=H;_P%!hbp8V0%OV^ffnbA9LaU~iXlw1MFf%SF8a zi)Qwglv;h)82*1{cK`m_x);D8yqoOG&(;hw(Kn-nn&=y24Lp&BJPm@(8Z1S40RR91 n00000000000001hW&Qv|kN-o{`&K9b0000F1DKxwBp@%@j)UHajvM}t7fco8)3eK}?m zQV@zDDFFZg004X}Ip>^nv=jk+M+=ZrN{8xSv%x&}{)rZ#NzQrOwp~rf!~T3!sJ@Y{ zihhc&WVI;bS3vPilplB9$%mraQQ93sHb0)XZHv`@n!x}&r+;*zH9mU88>oVgPh#@$VSQFUz*UZZV@f&b00000NkvXXu0mjfM(PA! diff --git a/tests/ragger/snapshots/nanox/test_sign_nonce_display/00001.png b/tests/ragger/snapshots/nanox/test_sign_nonce_display/00001.png index 0976a317a1afc0f126d48520ceebe95d1fe87db8..36ecb93f5c933d0119dc1d4ead122918415a404e 100644 GIT binary patch delta 393 zcmV;40e1ej1fv6xB!6m2L_t(|obB0La>F1DKvCMsPT2pF*h@b=!%!q1wu6L|d%oNj z3>8KuN(cY|0KnHuDW#OWXW`)2djcVZkV9{_2K%h{%X`GWUR2HUUx!1K-Sc&f(Kq^GhXpvCihqTS_$K+}f?ZP3b0c_@ z^A0FevrO(Sa<8~&lFPP8L1j`t)kS@a$`?kb``7L~0001AKL%rzM?JN8pw=7I(`2i9 zBkMw)#_Cu>t1`8^KTPYa-Khepy=IE0RU5Tsb^MntEk7J=@j+~b){`qYmhUreR0~p5 zM5o#1A%^##41f3Jgzqz2fXRPD=H;_P%!hbp8V0%OV^ffnbA9LaU~iXlw1MFf%SF8a zi)Qwglv;h)82*1{cK`m_x);D8yqoOG&(;hw(Kn-nn&=y24Lp&BJPm@(8Z1S40RR91 n00000000000001hW&Qv|kN-o{`&K9b0000F1DKxwBp@%@j)UHajvM}t7fco8)3eK}?m zQV@zDDFFZg004X}Ip>^nv=jk+M+=ZrN{8xSv%x&}{)rZ#NzQrOwp~rf!~T3!sJ@Y{ zihhc&WVI;bS3vPilplB9$%mraQQ93sHb0)XZHv`@n!x}&r+;*zH9mU88>oVgPh#@$VSQFUz*UZZV@f&b00000NkvXXu0mjfM(PA! diff --git a/tests/ragger/snapshots/nanox/test_sign_reject/00001.png b/tests/ragger/snapshots/nanox/test_sign_reject/00001.png index 0976a317a1afc0f126d48520ceebe95d1fe87db8..36ecb93f5c933d0119dc1d4ead122918415a404e 100644 GIT binary patch delta 393 zcmV;40e1ej1fv6xB!6m2L_t(|obB0La>F1DKvCMsPT2pF*h@b=!%!q1wu6L|d%oNj z3>8KuN(cY|0KnHuDW#OWXW`)2djcVZkV9{_2K%h{%X`GWUR2HUUx!1K-Sc&f(Kq^GhXpvCihqTS_$K+}f?ZP3b0c_@ z^A0FevrO(Sa<8~&lFPP8L1j`t)kS@a$`?kb``7L~0001AKL%rzM?JN8pw=7I(`2i9 zBkMw)#_Cu>t1`8^KTPYa-Khepy=IE0RU5Tsb^MntEk7J=@j+~b){`qYmhUreR0~p5 zM5o#1A%^##41f3Jgzqz2fXRPD=H;_P%!hbp8V0%OV^ffnbA9LaU~iXlw1MFf%SF8a zi)Qwglv;h)82*1{cK`m_x);D8yqoOG&(;hw(Kn-nn&=y24Lp&BJPm@(8Z1S40RR91 n00000000000001hW&Qv|kN-o{`&K9b0000F1DKxwBp@%@j)UHajvM}t7fco8)3eK}?m zQV@zDDFFZg004X}Ip>^nv=jk+M+=ZrN{8xSv%x&}{)rZ#NzQrOwp~rf!~T3!sJ@Y{ zihhc&WVI;bS3vPilplB9$%mraQQ93sHb0)XZHv`@n!x}&r+;*zH9mU88>oVgPh#@$VSQFUz*UZZV@f&b00000NkvXXu0mjfM(PA! diff --git a/tests/ragger/snapshots/nanox/test_sign_simple/00001.png b/tests/ragger/snapshots/nanox/test_sign_simple/00001.png index 0976a317a1afc0f126d48520ceebe95d1fe87db8..36ecb93f5c933d0119dc1d4ead122918415a404e 100644 GIT binary patch delta 393 zcmV;40e1ej1fv6xB!6m2L_t(|obB0La>F1DKvCMsPT2pF*h@b=!%!q1wu6L|d%oNj z3>8KuN(cY|0KnHuDW#OWXW`)2djcVZkV9{_2K%h{%X`GWUR2HUUx!1K-Sc&f(Kq^GhXpvCihqTS_$K+}f?ZP3b0c_@ z^A0FevrO(Sa<8~&lFPP8L1j`t)kS@a$`?kb``7L~0001AKL%rzM?JN8pw=7I(`2i9 zBkMw)#_Cu>t1`8^KTPYa-Khepy=IE0RU5Tsb^MntEk7J=@j+~b){`qYmhUreR0~p5 zM5o#1A%^##41f3Jgzqz2fXRPD=H;_P%!hbp8V0%OV^ffnbA9LaU~iXlw1MFf%SF8a zi)Qwglv;h)82*1{cK`m_x);D8yqoOG&(;hw(Kn-nn&=y24Lp&BJPm@(8Z1S40RR91 n00000000000001hW&Qv|kN-o{`&K9b0000F1DKxwBp@%@j)UHajvM}t7fco8)3eK}?m zQV@zDDFFZg004X}Ip>^nv=jk+M+=ZrN{8xSv%x&}{)rZ#NzQrOwp~rf!~T3!sJ@Y{ zihhc&WVI;bS3vPilplB9$%mraQQ93sHb0)XZHv`@n!x}&r+;*zH9mU88>oVgPh#@$VSQFUz*UZZV@f&b00000NkvXXu0mjfM(PA! diff --git a/tests/ragger/snapshots/stax/test_legacy_chainid/00001.png b/tests/ragger/snapshots/stax/test_legacy_chainid/00001.png index 1b4442fff5581b73e9f1b7e0d06ef4c903ae0a8c..6a59429f1ab206c3ca5b0429940173c7383fc241 100644 GIT binary patch literal 16983 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 literal 19003 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 diff --git a/tests/ragger/snapshots/stax/test_sign_blind_and_nonce_display/00002.png b/tests/ragger/snapshots/stax/test_sign_blind_and_nonce_display/00002.png index 3689993810319084b2d83773ce207eae35732fd5..24dbb3ca85f7e3922777d92a3647e276ec254fc6 100644 GIT binary patch literal 16530 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 literal 18342 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 Ud%0rZD{?^En)(kbAJ|6xZ|9M0ZU6uP diff --git a/tests/ragger/snapshots/stax/test_sign_blind_simple/00002.png b/tests/ragger/snapshots/stax/test_sign_blind_simple/00002.png index 513845d83ee1e19233266cd3f2fade17f3d943d2..ec36a96f1a6b4a492f5a8d57a4995cc6a6e33a1a 100644 GIT binary patch literal 16921 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 q^})E~-^k7VEA{vv=XXc!OsQ(L=*n-gj literal 18715 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 diff --git a/tests/ragger/snapshots/stax/test_sign_nonce_display/00001.png b/tests/ragger/snapshots/stax/test_sign_nonce_display/00001.png index 2180437131042fad85dce86b7726bf6b98c27d36..37f64b1651f3e6a61517ebf447101bcd322d3d28 100644 GIT binary patch literal 16125 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 literal 17959 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 q^})E~-^k7VEA{vv=XXc!OsQ(L=*n-gj literal 18715 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 diff --git a/tests/ragger/snapshots/stax/test_sign_simple/00001.png b/tests/ragger/snapshots/stax/test_sign_simple/00001.png index 513845d83ee1e19233266cd3f2fade17f3d943d2..ec36a96f1a6b4a492f5a8d57a4995cc6a6e33a1a 100644 GIT binary patch literal 16921 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 q^})E~-^k7VEA{vv=XXc!OsQ(L=*n-gj literal 18715 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 diff --git a/tests/ragger/test_sign.py b/tests/ragger/test_sign.py index 561babb..ca251ba 100644 --- a/tests/ragger/test_sign.py +++ b/tests/ragger/test_sign.py @@ -27,6 +27,7 @@ GAS_PRICE = 13 GAS_PRICE2 = 5 GAS_LIMIT = 21000 AMOUNT = 1.22 +AMOUNT2 = 0.31415 def common(firmware: Firmware, @@ -127,7 +128,7 @@ def test_legacy(firmware: Firmware, backend: BackendInterface, navigator: Naviga common(firmware, backend, navigator, tx_params) -# Legacy Zemu Send: Transfer amount >= 2^87 Eth on Ethereum app should fail +# Transfer amount >= 2^87 Eth on Ethereum app should fail def test_legacy_send_error(backend: BackendInterface): tx_params: dict = { "nonce": 38, @@ -140,7 +141,7 @@ def test_legacy_send_error(backend: BackendInterface): common_fail(backend, tx_params, StatusWord.EXCEPTION_OVERFLOW, path=BIP32_PATH2) -# Legacy Zemu Send BSC: Transfer bsc +# Transfer bsc def test_legacy_send_bsc(firmware: Firmware, backend: BackendInterface, navigator: Navigator, @@ -150,13 +151,13 @@ def test_legacy_send_bsc(firmware: Firmware, "gasPrice": Web3.to_wei(GAS_PRICE2, 'gwei'), "gas": GAS_LIMIT, "to": ADDR2, - "value": 31415926913374232, + "value": Web3.to_wei(AMOUNT2, "ether"), "chainId": 56 } common(firmware, backend, navigator, tx_params, test_name, BIP32_PATH2) -# Legacy Zemu ChainId: Transfer on network 112233445566 on Ethereum +# Transfer on network 112233445566 on Ethereum def test_legacy_chainid(firmware: Firmware, backend: BackendInterface, navigator: Navigator, @@ -166,13 +167,13 @@ def test_legacy_chainid(firmware: Firmware, "gasPrice": Web3.to_wei(GAS_PRICE, 'gwei'), "gas": GAS_LIMIT, "to": ADDR2, - "value": 31415926913374232, + "value": Web3.to_wei(AMOUNT2, "ether"), "chainId": 112233445566 } common(firmware, backend, navigator, tx_params, test_name, BIP32_PATH2) -# Legacy Zemu contract data warning: Try to blind sign with setting disabled +# Try to blind sign with setting disabled def test_legacy_contract(firmware: Firmware, backend: BackendInterface, navigator: Navigator, @@ -190,8 +191,8 @@ def test_legacy_contract(firmware: Firmware, NavInsID.BOTH_CLICK ] navigator.navigate_and_compare(ROOT_SNAPSHOT_PATH, - test_name, - moves) + test_name, + moves) except ExceptionRAPDU as e: assert e.status == StatusWord.INVALID_DATA @@ -219,7 +220,7 @@ def test_sign_simple(firmware: Firmware, "gasPrice": Web3.to_wei(GAS_PRICE, 'gwei'), "gas": GAS_LIMIT, "to": ADDR2, - "value": 0x6f9c9e7bf61818, + "value": Web3.to_wei(AMOUNT2, "ether"), "chainId": CHAIN_ID } common(firmware, backend, navigator, tx_params, test_name, "m/44'/60'/1'/0/0") @@ -252,7 +253,7 @@ def test_sign_nonce_display(firmware: Firmware, "gasPrice": Web3.to_wei(GAS_PRICE, 'gwei'), "gas": GAS_LIMIT, "to": ADDR2, - "value": 0x6f9c9e7bf61818, + "value": Web3.to_wei(AMOUNT2, "ether"), "chainId": CHAIN_ID } common(firmware, backend, navigator, tx_params, test_name, "m/44'/60'/1'/0/0") @@ -270,7 +271,7 @@ def test_sign_blind_simple(firmware: Firmware, "gasPrice": Web3.to_wei(GAS_PRICE, 'gwei'), "gas": GAS_LIMIT, "to": ADDR2, - "value": 0x6f9c9e7bf61818, + "value": Web3.to_wei(AMOUNT2, "ether"), "chainId": CHAIN_ID, "data": data.encode('utf-8').hex() } @@ -289,7 +290,7 @@ def test_sign_blind_and_nonce_display(firmware: Firmware, "gasPrice": Web3.to_wei(GAS_PRICE, 'gwei'), "gas": GAS_LIMIT, "to": ADDR2, - "value": 0x6f9c9e7bf61818, + "value": Web3.to_wei(AMOUNT2, "ether"), "chainId": CHAIN_ID, "data": data.encode('utf-8').hex() } @@ -305,7 +306,7 @@ def test_sign_reject(firmware: Firmware, "gasPrice": Web3.to_wei(GAS_PRICE, 'gwei'), "gas": GAS_LIMIT, "to": ADDR2, - "value": 0x6f9c9e7bf61818, + "value": Web3.to_wei(AMOUNT2, "ether"), "chainId": CHAIN_ID } common_reject(firmware, backend, navigator, tx_params, test_name, "m/44'/60'/1'/0/0") @@ -340,7 +341,7 @@ def test_sign_blind_error_disabled(backend: BackendInterface): "gasPrice": Web3.to_wei(GAS_PRICE, 'gwei'), "gas": GAS_LIMIT, "to": ADDR2, - "value": 0x6f9c9e7bf61818, + "value": Web3.to_wei(AMOUNT2, "ether"), "chainId": CHAIN_ID, "data": data.encode('utf-8').hex() } From 152a332b3465e6546e4f959b8cc29c0765e8dcf5 Mon Sep 17 00:00:00 2001 From: Charles-Edouard de la Vergne Date: Wed, 10 Apr 2024 15:30:56 +0200 Subject: [PATCH 33/35] Rename 'test_get_pk2' to 'test_get_eth2_pk' and use rather ETH2 public address --- .../snapshots/nanos/get_pk_700/00000.png | Bin 360 -> 0 bytes .../snapshots/nanos/get_pk_700/00001.png | Bin 490 -> 0 bytes .../snapshots/nanos/get_pk_700/00002.png | Bin 502 -> 0 bytes .../snapshots/nanos/get_pk_700/00003.png | Bin 383 -> 0 bytes .../nanos/test_get_eth2_pk/00000.png | Bin 0 -> 441 bytes .../nanos/test_get_eth2_pk/00001.png | Bin 0 -> 474 bytes .../nanos/test_get_eth2_pk/00002.png | Bin 0 -> 509 bytes .../nanos/test_get_eth2_pk/00003.png | Bin 0 -> 490 bytes .../nanos/test_get_eth2_pk/00004.png | Bin 0 -> 455 bytes .../nanos/test_get_eth2_pk/00005.png | Bin 0 -> 493 bytes .../nanos/test_get_eth2_pk/00006.png | Bin 0 -> 442 bytes .../00004.png => test_get_eth2_pk/00007.png} | Bin .../00005.png => test_get_eth2_pk/00008.png} | Bin .../snapshots/nanosp/get_pk_700/00000.png | Bin 400 -> 0 bytes .../snapshots/nanosp/get_pk_700/00001.png | Bin 769 -> 0 bytes .../ragger/snapshots/nanosp/test_get_eth2_pk | 1 + .../snapshots/nanox/get_pk_700/00000.png | Bin 400 -> 0 bytes .../snapshots/nanox/get_pk_700/00001.png | Bin 769 -> 0 bytes .../snapshots/nanox/get_pk_700/00002.png | Bin 364 -> 0 bytes .../snapshots/nanox/get_pk_700/00003.png | Bin 381 -> 0 bytes .../nanox/test_get_eth2_pk/00000.png | Bin 0 -> 477 bytes .../nanox/test_get_eth2_pk/00001.png | Bin 0 -> 904 bytes .../nanox/test_get_eth2_pk/00002.png | Bin 0 -> 820 bytes .../test_get_eth2_pk/00003.png} | Bin .../test_get_eth2_pk/00004.png} | Bin .../snapshots/stax/get_pk_700/00000.png | Bin 8677 -> 0 bytes .../snapshots/stax/get_pk_700/00001.png | Bin 13728 -> 0 bytes .../snapshots/stax/test_get_eth2_pk/00000.png | Bin 0 -> 21558 bytes .../00002.png => test_get_eth2_pk/00001.png} | Bin .../key_handling/key_derivation/path.py | 40 +++++++++ .../key_handling/key_derivation/tree.py | 85 ++++++++++++++++++ tests/ragger/staking_deposit/utils/crypto.py | 55 ++++++++++++ tests/ragger/test_get_address.py | 48 ++++++---- 33 files changed, 212 insertions(+), 17 deletions(-) delete mode 100644 tests/ragger/snapshots/nanos/get_pk_700/00000.png delete mode 100644 tests/ragger/snapshots/nanos/get_pk_700/00001.png delete mode 100644 tests/ragger/snapshots/nanos/get_pk_700/00002.png delete mode 100644 tests/ragger/snapshots/nanos/get_pk_700/00003.png create mode 100644 tests/ragger/snapshots/nanos/test_get_eth2_pk/00000.png create mode 100644 tests/ragger/snapshots/nanos/test_get_eth2_pk/00001.png create mode 100644 tests/ragger/snapshots/nanos/test_get_eth2_pk/00002.png create mode 100644 tests/ragger/snapshots/nanos/test_get_eth2_pk/00003.png create mode 100644 tests/ragger/snapshots/nanos/test_get_eth2_pk/00004.png create mode 100644 tests/ragger/snapshots/nanos/test_get_eth2_pk/00005.png create mode 100644 tests/ragger/snapshots/nanos/test_get_eth2_pk/00006.png rename tests/ragger/snapshots/nanos/{get_pk_700/00004.png => test_get_eth2_pk/00007.png} (100%) rename tests/ragger/snapshots/nanos/{get_pk_700/00005.png => test_get_eth2_pk/00008.png} (100%) delete mode 100644 tests/ragger/snapshots/nanosp/get_pk_700/00000.png delete mode 100644 tests/ragger/snapshots/nanosp/get_pk_700/00001.png create mode 120000 tests/ragger/snapshots/nanosp/test_get_eth2_pk delete mode 100644 tests/ragger/snapshots/nanox/get_pk_700/00000.png delete mode 100644 tests/ragger/snapshots/nanox/get_pk_700/00001.png delete mode 100644 tests/ragger/snapshots/nanox/get_pk_700/00002.png delete mode 100644 tests/ragger/snapshots/nanox/get_pk_700/00003.png create mode 100644 tests/ragger/snapshots/nanox/test_get_eth2_pk/00000.png create mode 100644 tests/ragger/snapshots/nanox/test_get_eth2_pk/00001.png create mode 100644 tests/ragger/snapshots/nanox/test_get_eth2_pk/00002.png rename tests/ragger/snapshots/{nanosp/get_pk_700/00002.png => nanox/test_get_eth2_pk/00003.png} (100%) rename tests/ragger/snapshots/{nanosp/get_pk_700/00003.png => nanox/test_get_eth2_pk/00004.png} (100%) delete mode 100644 tests/ragger/snapshots/stax/get_pk_700/00000.png delete mode 100644 tests/ragger/snapshots/stax/get_pk_700/00001.png create mode 100644 tests/ragger/snapshots/stax/test_get_eth2_pk/00000.png rename tests/ragger/snapshots/stax/{get_pk_700/00002.png => test_get_eth2_pk/00001.png} (100%) create mode 100644 tests/ragger/staking_deposit/key_handling/key_derivation/path.py create mode 100644 tests/ragger/staking_deposit/key_handling/key_derivation/tree.py create mode 100644 tests/ragger/staking_deposit/utils/crypto.py diff --git a/tests/ragger/snapshots/nanos/get_pk_700/00000.png b/tests/ragger/snapshots/nanos/get_pk_700/00000.png deleted file mode 100644 index 63778c4169411ca4774809154a96dc72f5c42bae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 360 zcmV-u0hj)XP)HURZg zU#;!I6v}uC14u>Wzu%t~M|bV2960SMuqve?yps9TMsY)35@zlRZ#{(u_c+YW+skW+ zRW*^TdY7SAq%~6f8N`9)aj`tn3$qBo0APUMk}s(as$%#nVC88;7=_~UiasD8G*2TI zf_ diff --git a/tests/ragger/snapshots/nanos/get_pk_700/00001.png b/tests/ragger/snapshots/nanos/get_pk_700/00001.png deleted file mode 100644 index 63fe23c202995f73b294fdb8e11fa63c3a1400ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 490 zcmVU(N@idYi z6_cMp-k$Q*GuSCWQX<7;xD3Sa>;*)ee$OM@Ui~je8hA24c{vYAIs40)Xe!*e-KeW`672$~4IO3C`1#@e)%D-v4h~+Tq@szTlZN*Whpf$fuv*B9FxSKFn_IaP| z1e$90MUOCeNrp;%@|psWTLQ(6zfk6B4i~*r$u-baa}Ij^E(wFcsQBbf?gdFL8ojW> zX-ZK0g+Z2l6VCh%a5At`jb({2M*v{K;W!IUwn=iYR4=KLH9{vw(r@Oz)K7J4lV%1% g5ClOG1Vlvi2Qc$qiBrvOT>t<807*qoM6N<$f{-@j3IG5A diff --git a/tests/ragger/snapshots/nanos/get_pk_700/00002.png b/tests/ragger/snapshots/nanos/get_pk_700/00002.png deleted file mode 100644 index b79ecb43ccc204a0e147181d8d9bbd1db490c876..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 502 zcmVg?mw#u{rUBK^Z6C^r8(Ka)5{_QIaG{l8j~F+J>C#ugt!0$49+D zj>ekt7{xtj6cJuDz>+wl;}h^ZdIA$L?nSb!%|DX^xdYVi9YU5cd^0)5AUfmt8LFL# zXy1@|#o+PW#lY9qR97ENEBN^S5>MIYskxA4;rz4RYO^#THNoH7>I<;E*s2ohTJ{Uh8TqEI5!8(9dwPS3w6+)6_yo;R7nWm{oao&2 zg||*zHxv&_pJoSEe9!*3KBd7KRXtt4KlhJVAb450$BdRtv?su7_IBjI?*UK@Ko)XU sp}aueg(zYF>de>oPLd=^k|ddmKjvd-fU(=G!T z=-AJE4BLRg6dhD-B5aqQaQC8Gd!{Tw1IHuQ7G8Nc#-x1e8~YhR-?XxGipbfyDcni0 zHLsJACBkK_6+&U5?IWxktuY?$zd8StJ2z+^)NpSU3_jBPnoUY5(a73m7_Hc(^H&X zxd_2_w8R;n0wBo$i$bxF!EebSb>R#*0nlY(mZv0-0N;Sc7*|8*+{aNC}#p?jT&bFQe1 z=V}aVU?m*N7k%UGMC$nGwe_ z*re~e6p#uMYS)VWj~8XbXel}eR2PW`Q3_Ex6aB#tT47%piX#()1{!xe!Dmhv=OAl& zwSc8+J&4t^?JL>e06R#1acg~vQVg?zWfK6B+(W)r1;Bh{5d1K?f|S7#Z?oO!gN_s( z=YVXwW+tm_0BD`vC*jV29@Srv@ei{9(Mb!N5iL`f0S_m7AJ9;l^+h;q-7p9PT9a`c zL@(f^d6NR7NhfKZau6$oJ^@{C=X!qy77*Pt>7bJkPsv3cT=*>Far!3(|)I j7o-HH+cd*448{Ba5*hsjAJ}{x00000NkvXXu0mjfJ*>L> literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanos/test_get_eth2_pk/00001.png b/tests/ragger/snapshots/nanos/test_get_eth2_pk/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..e3a34c775d4189ddf5fbfaedbf0b8fcfcb2d9abc GIT binary patch literal 474 zcmV<00VV#4P)sLZ7_5gjSRiXpqE6K__u!vC?)+@B6%8tScf?4{I>q44Q|M@kd?*o5cb*bJ2 ztzh2rzrW_B7_ZiJ^u}ZkuH=uZ(1M(UyfdHKyQRK4(}UV+kb}`|+%Z(r=$27?r!|Wy zs-dPNJ8j1t%cCRJ=uf-4hJCq{dNmECTk|>A)WXqz6CU?0zU&Ejq+<~`VR~0IV!Yzo zEyD$F?92LKxlRXZ+7qB$&Efpn3P??D>PnIxlPy%eLcSH5B4&HR5s|>)^RTy|`Sqll zBuiv_a822@2cT!Kq=VWDuvAi?#%or!V};()Eo{Hajw5>0v;W8nOIpNYsD|NKV?f27N0CRbN{Y1o?@rtn5gPX zEuUEL&qGTtOw>X{xx=~I(+o&}aCaOq5NCEIYeM8n?ahD$jE=jo1%p*fzZqT2lrvx` zpB(UB9^dPtzs)-X_(@B~pU2k{OY6WREI!em=p~g-lq5VbVM|^WPGOCxVuEuswRuTVM*u~lVGtDNT~%XAW8`!i(O{|+8de@{{>_8%xH@K)>sXN^+I@!OV!}K zv3OgxfMCsFx9wmHf*=TjAh;#}R7RcWUX=N=00000NkvXXu0mjf08VHDWyOl5C{Z(@OmDfrlc^~rQQ^lEpUW6 z0o!sXLGKqi0Q!Z@?hrgK+jkAX&CwPME-FH<=*6~2J(7hhm8EyC7n++$IoRCb%|k=B zL%(tY@KE)O<=xBBflRL2o9@^iI0I~^Qjt%U**rJ_69O>X@6}q+S-*o*YQR+NF_33z zqAY_682}+yTERP|e>t(72O8l@h0>rYwF~6Ix#7ItRY54@z6MRYw|aWjRJ{nK1M`x5 zf6X5SSglF)!iX4r6Mu9HEr?GiZ(tg}Ez3*Tp-n1wsSYJMYfvkpSLh%UrA-52cz>z< z*?rB?H)j$ldYWF1JSEEyGSRd-yLzI%BvVSBFX8jAu-tM=CbQY5(`~DByi|$P)v7BYmWU~J^y+{?1h$68y0001>fcNY8xspcXkh&|Ja6oja zf3Mu25}edb5V5w z79;Kh(%a0y^j&A11WN*7pS1SuxMF(@BEm$)aF}c?63B_6nvmws#5l%hm>pMq(C#}_ zV;831rj+}w{mZ_Q;Miq-y(@^pnf#Y5bWOe|c@w((V(Spp8+q|3mV>;K`*K9r9ku3~ zioA;};ram$Iq$Z`A+*002ovPDHLkV1g|-)j$9M literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanos/test_get_eth2_pk/00005.png b/tests/ragger/snapshots/nanos/test_get_eth2_pk/00005.png new file mode 100644 index 0000000000000000000000000000000000000000..f032e45c1c72f9554a5a1b7fd7f8bb195bafd5ca GIT binary patch literal 493 zcmV8icMQgKs(?hEWh!KfBjwDHvB#Gho@%mIHL1WYKsxa1I z`78xS%q_wn7rX#|L*3!P8bEL80^9<1nOLg=_KIKZyq7H`Y(3FC@$*UJ6gwG5qN$5o zp0PgfZ!KI{{w!Q7)bd`gc9;nZfF~1(8iu`RmKv<@VaXXV zmFF7Z-nfhr&Z;v2pR^!4Jie9~?E{Z+F+{o{w-lWy{!kW=|{Tea$R(9{Y zRWAZcn3sI^_negC)t-)Cm|TNT@{h96hP(&)RJzp{KY2Lw6I&Gq8hDpl3#u*BF0kTJ zh~1V})PbN;>Tf7>@V#bnzNz2w?XJhJr5yO?xx7?8tco=S#1a#9y$O$3tKU`ZI=$_h z6nqo5Hlydtu!CZot1aOQyWO6C=h&2CT2qkIuE*k}6y(W-SpHytPS{zu@h+&yhU?#) z*VJi&^Q!4-TmVll^3XljDqsTX_N{B6?+kF7$BpD1T@my4YSpM-Qp#$tsSK^U4FX!o jsFO;PBuSDaNeun~{j!zA2o2o?00000NkvXXu0mjfN(=3H literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanos/test_get_eth2_pk/00006.png b/tests/ragger/snapshots/nanos/test_get_eth2_pk/00006.png new file mode 100644 index 0000000000000000000000000000000000000000..4118dbf8a7a2cd514f9390e54c03dc24d5d23e27 GIT binary patch literal 442 zcmV;r0Y(0aP)5(`~DBS7u$=@xD@c07&Ij1o8Cn51S)7tNs=T<5+DA4|9@RgP`ImlSJ~2n z95WpZm5z0{2)kXd1MD3Qn*+B1q^=HlIJVWK}uPSmsI7}ijKt3nVnbLNjp|{ ziE7E)*4y)=geuEVHYC<8mC|MpGr<9PGLEQ*7+dDlZAG|;NnM%XfZ29ueW}K}4ohOd zRNg+oQoj?!omDXaM_OPVYTuSx-3JzBR)uz9Ynt6~v}Ea*;ElR9dx z;&;D0EzOaSi^k{1;fl2cY-`ZM@#k(E*S`sOiJe$4xe0goo#jmMt!QD%tKzB8(G@vE z_1-U!0&w(q0k7F$4BpIlfY<1O8wTiFe-&R41Jp)@L)~fpXRCI7!~g&QfPa@`!PrJQ5_gtexv+u#;<7n?ZA>=8WP3sS)E3>Z zE!xY!9dS=7B}gQ@x;^0FVDIF?`GpenfZ9e>)xCO*lgBykAKe#*G9mk>o6EkWtAGi$ zGexMpHiozruqDn$Y{#w$*~F;G!$#0S7$x##_JEJys@+nJ)BK}UfHaSYH}BKlb~|vz<*qUayO&UL-bn@O u0WKrm9KB3jyJN~A3;+NC0000$MC1WGrw>UKISsS`00001mdRvL_`%2qAiN3%p5X<9QaG=EyJ=YkO}s7wU!)~cPjI1A?9o3u6DW_^3V=*G!3 zF;07CUSG#BO%2E5iesi^VtN9)H!=W1fA>5?M9ot9wCRP$G&MX2k+^$~nV6#jx_7S} zEk+`q$f8xU_KI1`C1ULvmGs6O05Wl>n#(he$pO$YH8&g$xZxC=y05a><1N**maG-y z`QM!TrekKOo;9y#6vo}=;45*1%;-Oc5o$*NVK@dW;V!h2MvyrMx1z(_Rzrg`D53=g zs$}oeb6sd^lVcj{u<{z8GLaK}geeo6o;4dH;^J6I{S~-^d(9$Wf$FKCaTE3?eo*4+ zi+8{MAue&kv98{yNS^h01a`Wmh*$;eO(B5=WKW1+=kjF1tRAzNrkcuYyxk!xUYaGw zjiqjIAid=UikhGsffkEQuP*hpW||s0SFO~R1H|SVYr;r$knnl=wwEp5j=o5T+VzMV zT_e#w06NhP^eUQkB>+&J6|Q=fbp_oDG2*GGgb+dqA;e_mUz7@_xHurDBCX64@<)A} z#XrnyzJx9QruxZjBt;C|9>pD1Uy|`_^C~tP073JaiB1Mty|Sl2?8YtwpyiZO?v=a) z=77a)aSTn)Q>uh5h2BHw=2?LdLI@#*klXnMFhL`qAQdp500000NkvXXu0mjf$HQfg diff --git a/tests/ragger/snapshots/nanosp/test_get_eth2_pk b/tests/ragger/snapshots/nanosp/test_get_eth2_pk new file mode 120000 index 0000000..dc7c371 --- /dev/null +++ b/tests/ragger/snapshots/nanosp/test_get_eth2_pk @@ -0,0 +1 @@ +../nanox/test_get_eth2_pk \ No newline at end of file diff --git a/tests/ragger/snapshots/nanox/get_pk_700/00000.png b/tests/ragger/snapshots/nanox/get_pk_700/00000.png deleted file mode 100644 index a487005a859c0e4cfa0212a67f75a4794d81978c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 400 zcmV;B0dM|^P)CI7!~g&QfPa@`!PrJQ5_gtexv+u#;<7n?ZA>=8WP3sS)E3>Z zE!xY!9dS=7B}gQ@x;^0FVDIF?`GpenfZ9e>)xCO*lgBykAKe#*G9mk>o6EkWtAGi$ zGexMpHiozruqDn$Y{#w$*~F;G!$#0S7$x##_JEJys@+nJ)BK}UfHaSYH}BKlb~|vz<*qUayO&UL-bn@O u0WKrm9KB3jyJN~A3;+NC0000$MC1WGrw>UKISsS`00001mdRvL_`%2qAiN3%p5X<9QaG=EyJ=YkO}s7wU!)~cPjI1A?9o3u6DW_^3V=*G!3 zF;07CUSG#BO%2E5iesi^VtN9)H!=W1fA>5?M9ot9wCRP$G&MX2k+^$~nV6#jx_7S} zEk+`q$f8xU_KI1`C1ULvmGs6O05Wl>n#(he$pO$YH8&g$xZxC=y05a><1N**maG-y z`QM!TrekKOo;9y#6vo}=;45*1%;-Oc5o$*NVK@dW;V!h2MvyrMx1z(_Rzrg`D53=g zs$}oeb6sd^lVcj{u<{z8GLaK}geeo6o;4dH;^J6I{S~-^d(9$Wf$FKCaTE3?eo*4+ zi+8{MAue&kv98{yNS^h01a`Wmh*$;eO(B5=WKW1+=kjF1tRAzNrkcuYyxk!xUYaGw zjiqjIAid=UikhGsffkEQuP*hpW||s0SFO~R1H|SVYr;r$knnl=wwEp5j=o5T+VzMV zT_e#w06NhP^eUQkB>+&J6|Q=fbp_oDG2*GGgb+dqA;e_mUz7@_xHurDBCX64@<)A} z#XrnyzJx9QruxZjBt;C|9>pD1Uy|`_^C~tP073JaiB1Mty|Sl2?8YtwpyiZO?v=a) z=77a)aSTn)Q>uh5h2BHw=2?LdLI@#*klXnMFhL`qAQdp500000NkvXXu0mjf$HQfg diff --git a/tests/ragger/snapshots/nanox/get_pk_700/00002.png b/tests/ragger/snapshots/nanox/get_pk_700/00002.png deleted file mode 100644 index 53ae65195fbea5b281a1bc1a80351dbf1cd79ff8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 364 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|=-%ba4!+nDh2#AYZeBfa}G~ z%X2sUSKTFSd4J{-YHcY(QO5;J{<~e9q=7F?O4)!WO}6UUdH! zS+Hz=(4})vCM2-VD4nt3W%LdvkyzeG%km#`1t_mu*zR}#jNB{EKZnW}g5-=Bym-_% z`=7%C>zxJL|9msNSMXnbQRayy^)nr>EU7olTHqoc^vG(B%bo(Id*|kR{84!`z2x6n zZ`;PkbrPvd6U}A>Y0chs_tyHmLi6kw6c{>JvYiQ=+MTFTx8d*9^V|R0+_75oZt9or zLetinU!`YMvFyLCb8XxElhO0{v2rTkNR$jMW7~4}*8a52+MC^J%KMbxPN-JRb2RNP zEsp0ebAPS3=e2G53#Z$XZAI6Yd=YU4`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~ diff --git a/tests/ragger/snapshots/nanox/test_get_eth2_pk/00000.png b/tests/ragger/snapshots/nanox/test_get_eth2_pk/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..bb3289d6bce137120f459344465baa35f7c87d99 GIT binary patch literal 477 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 G;XeS84)QAi diff --git a/tests/ragger/snapshots/stax/get_pk_700/00001.png b/tests/ragger/snapshots/stax/get_pk_700/00001.png deleted file mode 100644 index aa683fab0ac729098678b1344f3cbd3354b1aabb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13728 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 diff --git a/tests/ragger/snapshots/stax/test_get_eth2_pk/00000.png b/tests/ragger/snapshots/stax/test_get_eth2_pk/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..832d70e18f19948e333fdb90bda8b1366cd44907 GIT binary patch literal 21558 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 fux)qX!&|}u>t List[int]: + """ + Maps from a path string to a list of indices where each index represents the corresponding level in the path. + """ + path = path.replace(' ', '') + if not set(path).issubset(set('m1234567890/')): + raise ValueError(f"Invalid path {path}") + + indices = path.split('/') + + if indices[0] != 'm': + raise ValueError(f"The first character of path should be `m`. Got {indices[0]}.") + indices.pop(0) + + return [int(index) for index in indices] + + +def mnemonic_and_path_to_key(mnemonic: str, path: str) -> int: + """ + Return the SK at position `path`, derived from `mnemonic`. The password is to be + compliant with BIP39 mnemonics that use passwords, but is not used by this CLI outside of tests. + """ + #seed = get_seed(mnemonic) + seed = Bip39SeedGenerator(Mnemonic.FromString(mnemonic)).Generate() + + sk = derive_master_SK(seed) + for node in path_to_nodes(path): + sk = derive_child_SK(parent_SK=sk, index=node) + return sk diff --git a/tests/ragger/staking_deposit/key_handling/key_derivation/tree.py b/tests/ragger/staking_deposit/key_handling/key_derivation/tree.py new file mode 100644 index 0000000..53fcd0e --- /dev/null +++ b/tests/ragger/staking_deposit/key_handling/key_derivation/tree.py @@ -0,0 +1,85 @@ +from staking_deposit.utils.crypto import ( + HKDF, + SHA256, +) +from py_ecc.optimized_bls12_381 import curve_order as bls_curve_order +from typing import List + + +def _flip_bits_256(input: int) -> int: + """ + Flips 256 bits worth of `input`. + """ + return input ^ (2**256 - 1) + + +def _IKM_to_lamport_SK(*, IKM: bytes, salt: bytes) -> List[bytes]: + """ + Derives the lamport SK for a given `IKM` and `salt`. + + Ref: https://github.com/ethereum/EIPs/blob/master/EIPS/eip-2333.md#ikm_to_lamport_sk + """ + OKM = HKDF(salt=salt, IKM=IKM, L=8160) + lamport_SK = [OKM[i: i + 32] for i in range(0, 8160, 32)] + return lamport_SK + + +def _parent_SK_to_lamport_PK(*, parent_SK: int, index: int) -> bytes: + """ + Derives the `index`th child's lamport PK from the `parent_SK`. + + Ref: https://github.com/ethereum/EIPs/blob/master/EIPS/eip-2333.md#parent_sk_to_lamport_pk + """ + salt = index.to_bytes(4, byteorder='big') + IKM = parent_SK.to_bytes(32, byteorder='big') + lamport_0 = _IKM_to_lamport_SK(IKM=IKM, salt=salt) + not_IKM = _flip_bits_256(parent_SK).to_bytes(32, byteorder='big') + lamport_1 = _IKM_to_lamport_SK(IKM=not_IKM, salt=salt) + lamport_SKs = lamport_0 + lamport_1 + lamport_PKs = [SHA256(sk) for sk in lamport_SKs] + compressed_PK = SHA256(b''.join(lamport_PKs)) + return compressed_PK + + +def _HKDF_mod_r(*, IKM: bytes, key_info: bytes=b'') -> int: + """ + Hashes the IKM using HKDF and returns the answer as an int modulo r, the BLS field order. + + Ref: https://github.com/ethereum/EIPs/blob/master/EIPS/eip-2333.md#hkdf_mod_r + """ + L = 48 # `ceil((3 * ceil(log2(r))) / 16)`, where `r` is the order of the BLS 12-381 curve + salt = b'BLS-SIG-KEYGEN-SALT-' + SK = 0 + while SK == 0: + salt = SHA256(salt) + okm = HKDF( + salt=salt, + IKM=IKM + b'\x00', # add postfix `I2OSP(0, 1)` + L=L, + info=key_info + L.to_bytes(2, 'big'), + ) + SK = int.from_bytes(okm, byteorder='big') % bls_curve_order + return SK + + +def derive_child_SK(*, parent_SK: int, index: int) -> int: + """ + Given a parent SK `parent_SK`, return the child SK at the supplied `index`. + + Ref: https://github.com/ethereum/EIPs/blob/master/EIPS/eip-2333.md#derive_child_sk + """ + if index < 0 or index >= 2**32: + raise IndexError(f"`index` should be greater than or equal to 0 and less than 2**32. Got index={index}.") + lamport_PK = _parent_SK_to_lamport_PK(parent_SK=parent_SK, index=index) + return _HKDF_mod_r(IKM=lamport_PK) + + +def derive_master_SK(seed: bytes) -> int: + """ + Given a seed, derive the master SK. + + Ref: https://github.com/ethereum/EIPs/blob/master/EIPS/eip-2333.md#derive_master_sk + """ + if len(seed) < 32: + raise ValueError(f"`len(seed)` should be greater than or equal to 32. Got {len(seed)}.") + return _HKDF_mod_r(IKM=seed) diff --git a/tests/ragger/staking_deposit/utils/crypto.py b/tests/ragger/staking_deposit/utils/crypto.py new file mode 100644 index 0000000..48a9d76 --- /dev/null +++ b/tests/ragger/staking_deposit/utils/crypto.py @@ -0,0 +1,55 @@ +from typing import Any + +from Crypto.Hash import ( + SHA256 as _sha256, + SHA512 as _sha512, +) +from Crypto.Protocol.KDF import ( + scrypt as _scrypt, + HKDF as _HKDF, + PBKDF2 as _PBKDF2, +) +from Crypto.Cipher import ( + AES as _AES +) + + +def SHA256(x: bytes) -> bytes: + return _sha256.new(x).digest() + + +def scrypt(*, password: str, salt: str, n: int, r: int, p: int, dklen: int) -> bytes: + if n * r * p < 2**20: # 128 MB memory usage + raise ValueError("The Scrypt parameters chosen are not secure.") + if n >= 2**(128 * r / 8): + raise ValueError("The given `n` should be less than `2**(128 * r / 8)`." + f"\tGot `n={n}`, r={r}, 2**(128 * r / 8)={2**(128 * r / 8)}") + res = _scrypt(password=password, salt=salt, key_len=dklen, N=n, r=r, p=p) + return res if isinstance(res, bytes) else res[0] # PyCryptodome can return Tuple[bytes] + + +def PBKDF2(*, password: bytes, salt: bytes, dklen: int, c: int, prf: str) -> bytes: + if 'sha' not in prf: + raise ValueError(f"String 'sha' is not in `prf`({prf})") + if 'sha256' in prf and c < 2**18: + ''' + Verify the number of rounds of SHA256-PBKDF2. SHA512 not checked as use in BIP39 + does not require, and therefore doesn't use, safe parameters (c=2048). + + Ref: https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki#from-mnemonic-to-seed + ''' + raise ValueError("The PBKDF2 parameters chosen are not secure.") + _hash = _sha256 if 'sha256' in prf else _sha512 + res = _PBKDF2(password=password, salt=salt, dkLen=dklen, count=c, hmac_hash_module=_hash) # type: ignore + return res if isinstance(res, bytes) else res[0] # PyCryptodome can return Tuple[bytes] + + +def HKDF(*, salt: bytes, IKM: bytes, L: int, info: bytes=b'') -> bytes: + res = _HKDF(master=IKM, key_len=L, salt=salt, hashmod=_sha256, context=info) + return res if isinstance(res, bytes) else res[0] # PyCryptodome can return Tuple[bytes] + + +def AES_128_CTR(*, key: bytes, iv: bytes) -> Any: + if len(key) != 16: + raise ValueError(f"The key length should be 16. Got {len(key)}.") + return _AES.new(key=key, mode=_AES.MODE_CTR, initial_value=iv, nonce=b'') diff --git a/tests/ragger/test_get_address.py b/tests/ragger/test_get_address.py index 2d51ee9..0d102aa 100644 --- a/tests/ragger/test_get_address.py +++ b/tests/ragger/test_get_address.py @@ -1,9 +1,11 @@ -from typing import Optional, Tuple +from typing import Optional import pytest -from client.client import EthAppClient, StatusWord -import client.response_parser as ResponseParser +from py_ecc.bls import G2ProofOfPossession as bls +from staking_deposit.key_handling.key_derivation.path import mnemonic_and_path_to_key + +from ragger.bip.seed import SPECULOS_MNEMONIC from ragger.error import ExceptionRAPDU from ragger.firmware import Firmware from ragger.backend import BackendInterface @@ -12,6 +14,9 @@ from ragger.bip import calculate_public_key_and_chaincode, CurveChoice from constants import ROOT_SNAPSHOT_PATH +from client.client import EthAppClient, StatusWord +import client.response_parser as ResponseParser + @pytest.fixture(name="with_chaincode", params=[True, False]) def with_chaincode_fixture(request) -> bool: @@ -25,7 +30,8 @@ def chain_fixture(request) -> Optional[int]: def get_moves(firmware: Firmware, chain: Optional[int] = None, - reject: bool = False): + reject: bool = False, + pk_eth2: bool = False): moves = [] if firmware.is_nano: @@ -36,9 +42,14 @@ def get_moves(firmware: Firmware, moves += [NavInsID.RIGHT_CLICK] if reject: moves += [NavInsID.RIGHT_CLICK] + if pk_eth2: + if firmware.device == "nanos": + moves += [NavInsID.RIGHT_CLICK] * 2 + moves += [NavInsID.RIGHT_CLICK] moves += [NavInsID.BOTH_CLICK] else: - moves += [NavInsID.USE_CASE_REVIEW_TAP] + if not pk_eth2: + moves += [NavInsID.USE_CASE_REVIEW_TAP] if chain is not None and chain > 1: moves += [NavInsID.USE_CASE_ADDRESS_CONFIRMATION_TAP] if reject: @@ -90,18 +101,21 @@ def test_get_pk(firmware: Firmware, assert chaincode.hex() == ref_chaincode -def test_get_pk2(firmware: Firmware, - backend: BackendInterface, - navigator: Navigator): +def test_get_eth2_pk(firmware: Firmware, + backend: BackendInterface, + navigator: Navigator, + test_name: str): app_client = EthAppClient(backend) - path="m/44'/700'/1'/0/0" - with app_client.get_public_addr(bip32_path=path, chaincode=True): + path="m/12381/3600/0/0" + with app_client.get_eth2_public_addr(bip32_path=path): navigator.navigate_and_compare(ROOT_SNAPSHOT_PATH, - "get_pk_700", - get_moves(firmware)) - pk, _, chaincode = ResponseParser.pk_addr(app_client.response().data, True) - ref_pk, ref_chaincode = calculate_public_key_and_chaincode(curve=CurveChoice.Secp256k1, - path=path) - assert pk.hex() == ref_pk - assert chaincode.hex() == ref_chaincode + test_name, + get_moves(firmware, pk_eth2=True)) + + pk = app_client.response().data + ref_pk = bls.SkToPk(mnemonic_and_path_to_key(SPECULOS_MNEMONIC, path)) + if firmware.name == "stax": + pk = pk[1:49] + + assert pk == ref_pk From 8fcaf9f1035e644569350d181c7329f94473597c Mon Sep 17 00:00:00 2001 From: Charles-Edouard de la Vergne Date: Wed, 10 Apr 2024 16:19:54 +0200 Subject: [PATCH 34/35] Remove useless 'test_legacy_etc' ragger snapshots --- .../snapshots/nanos/test_legacy_etc/00000.png | Bin 374 -> 0 bytes .../snapshots/nanos/test_legacy_etc/00001.png | Bin 336 -> 0 bytes .../snapshots/nanos/test_legacy_etc/00002.png | Bin 451 -> 0 bytes .../snapshots/nanos/test_legacy_etc/00003.png | Bin 320 -> 0 bytes .../snapshots/nanos/test_legacy_etc/00004.png | Bin 497 -> 0 bytes .../snapshots/nanos/test_legacy_etc/00005.png | Bin 504 -> 0 bytes .../snapshots/nanos/test_legacy_etc/00006.png | Bin 373 -> 0 bytes .../snapshots/nanos/test_legacy_etc/00007.png | Bin 380 -> 0 bytes .../snapshots/nanos/test_legacy_etc/00008.png | Bin 414 -> 0 bytes .../snapshots/nanos/test_legacy_etc/00009.png | Bin 340 -> 0 bytes .../snapshots/nanos/test_legacy_etc/00010.png | 1 - .../snapshots/nanos/test_legacy_etc/00011.png | Bin 349 -> 0 bytes .../snapshots/nanox/test_legacy_etc/00000.png | Bin 414 -> 0 bytes .../snapshots/nanox/test_legacy_etc/00001.png | Bin 572 -> 0 bytes .../snapshots/nanox/test_legacy_etc/00002.png | Bin 773 -> 0 bytes .../snapshots/nanox/test_legacy_etc/00003.png | Bin 441 -> 0 bytes .../snapshots/nanox/test_legacy_etc/00004.png | Bin 472 -> 0 bytes .../snapshots/nanox/test_legacy_etc/00005.png | Bin 365 -> 0 bytes .../snapshots/nanox/test_legacy_etc/00006.png | 1 - .../snapshots/nanox/test_legacy_etc/00007.png | Bin 382 -> 0 bytes 20 files changed, 2 deletions(-) delete mode 100644 tests/ragger/snapshots/nanos/test_legacy_etc/00000.png delete mode 100644 tests/ragger/snapshots/nanos/test_legacy_etc/00001.png delete mode 100644 tests/ragger/snapshots/nanos/test_legacy_etc/00002.png delete mode 100644 tests/ragger/snapshots/nanos/test_legacy_etc/00003.png delete mode 100644 tests/ragger/snapshots/nanos/test_legacy_etc/00004.png delete mode 100644 tests/ragger/snapshots/nanos/test_legacy_etc/00005.png delete mode 100644 tests/ragger/snapshots/nanos/test_legacy_etc/00006.png delete mode 100644 tests/ragger/snapshots/nanos/test_legacy_etc/00007.png delete mode 100644 tests/ragger/snapshots/nanos/test_legacy_etc/00008.png delete mode 100644 tests/ragger/snapshots/nanos/test_legacy_etc/00009.png delete mode 120000 tests/ragger/snapshots/nanos/test_legacy_etc/00010.png delete mode 100644 tests/ragger/snapshots/nanos/test_legacy_etc/00011.png delete mode 100644 tests/ragger/snapshots/nanox/test_legacy_etc/00000.png delete mode 100644 tests/ragger/snapshots/nanox/test_legacy_etc/00001.png delete mode 100644 tests/ragger/snapshots/nanox/test_legacy_etc/00002.png delete mode 100644 tests/ragger/snapshots/nanox/test_legacy_etc/00003.png delete mode 100644 tests/ragger/snapshots/nanox/test_legacy_etc/00004.png delete mode 100644 tests/ragger/snapshots/nanox/test_legacy_etc/00005.png delete mode 120000 tests/ragger/snapshots/nanox/test_legacy_etc/00006.png delete mode 100644 tests/ragger/snapshots/nanox/test_legacy_etc/00007.png diff --git a/tests/ragger/snapshots/nanos/test_legacy_etc/00000.png b/tests/ragger/snapshots/nanos/test_legacy_etc/00000.png deleted file mode 100644 index 8d84cc70fea8013b7e8b25c0982ce142fa103d5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 374 zcmV-+0g3*JP)K?4J2QqX3 zXn7ePqhBDwvA-|J28LIrjF%tX0z{3v6!_gF&(SYH)S*7TN;1RxW-%}TLH9_+sttDO z-T32w&rL(!1@Vr`jm5G(8dd=Ruu#)JAN?l#rFLU`oQ(r?$33AC7s0}pw!fi~(9k^# zU9aci?pXN=I7A<-f!Mw2untnw9MivqZYw}c5&)gweYhbTnv#2#t$0X2wST7_1F;LR zw?>Da2SkSfG>qWq1mej-6nW@2l+Z=0om5jdB%3o3Qx19_LNUlTqF4R_1Iaj%@^2O= z@;n%h1N>H$2;%-~Dvx1!0LtkT-;cq73rgisOElFtPbcL{d3TfNQvm<~003s>1*i4o Uje8$F8UO$Q07*qoM6N<$g5rpv%m4rY diff --git a/tests/ragger/snapshots/nanos/test_legacy_etc/00001.png b/tests/ragger/snapshots/nanos/test_legacy_etc/00001.png deleted file mode 100644 index 77e79afdd96e0c7f9589e5bcd2e27eedfa1a3597..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 336 zcmV-W0k8gvP)H|Wo;2rnnq4_$QEQ%cN+`|0N>fco6Z5?)m>Rc#ABI$iC=XHH@;ih z+lT)Mq9*C-bzLjSfw!pYlbHat90pe38iLeNe=vx_onRNblfB4Ecx|v-qV;?#qd3wO zHsw7=D^1?C@m9qBdqIQomR~ouqfa3IH};R80L0Qg6K)IgMz{cYJA~Oa)F#^HlHcl# iUqb-^000005fQCcFR{RR6IsdoDLerDbbIUQ1X*Y%zfRtSZt>P- zR98rsaf8&R8zXtO=g^AAERP(cMKnjd?1}>p;3>0IyR?D~ugNsmDGznoTD7$}r4_{2 zf|6d9<^~nci1SyUvvF7C)=ZWC?OI?k<@mfUoTErknu&c9Ry7xGjex`6HWfd0!Hl z^ryc0TbOl{{{39n4oD-~tfL>?B%l^>;?eg;7;22ZG31~ptU^5vzYmKAOR>P|&=8&c zRkP+Z0{vPLRCOvxpM+|&3x-8wkj(bsa5z?94OPY79XPJ?{W4%<000007{d!Z1i*;c Sb~u#)00004qvBJ+KYLdy}Tg`YuKtuykk|arz%w^wVUCQ{*)%Q&hezY82 z&EPjs%u{+jjhzZ0P0)S}S3}}^_5u*6-%HD~hW~O<`^({RC;mRsXvVVGsLbLCYVslY znkt=$Xy1P0ZdnHyV>&3hL{aZxS;y$<=8_aN(4HoTl+081n3zwW&HNKUe_=JxDNW2? z8^WDTJ^}oIA1$JfOvlv&{FiW9)Krg8zu_=_PV59YZPajY7y@7EeR|RcXfogG{Rbkr zI=z1}xd(TWS?EswJ9!bh>qi)=^^@lHEeavxQeL>DmtOn%izGf z)>9EwYA?~UOmr3+sTY$ywwM(sBv3DT0U}?*Q;W3z?;U6Ce+b=Q!e#}y9(KY({7{Fy z@6Uc7{ppkmDv=E+m4KoIx2maqHY1(h90*GEp+hWQ2E^`5(Qy4Hn^FsM+UD`Tc&G8r zM(s|{#Q~os8g5CBY(QW>Uhk|arzBuM~2k=$~ha82FQ00000NkvXXu0mjfvN__l diff --git a/tests/ragger/snapshots/nanos/test_legacy_etc/00005.png b/tests/ragger/snapshots/nanos/test_legacy_etc/00005.png deleted file mode 100644 index fd3155c0d349a1236eb862c8f4f5fc3c3a981ccf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 504 zcmVL$5ClOG1itKBTNjbPGWxz9A5}p1 zjy2;k()38LrSYNxr54ibzW~490~9g(J+&-r^Vi@&?f~_Sago#$5lH3 z?AsBK%Q|2(RR>vyNG4^^0G4%(on~%1f(FhfJ6qDplhzo*r_z|24k-T}fWNTvn|2nn zB!nmPK7hqny_|4r$y}Ctv&KwA-%GeOC|9o9@6Jmy-*37nHQXB&g|GBJW?BHI^R3>W z5XIHu{hNt3c#=4Up5)ufA`Mj&M<7qvxQv<(s(Pdtv0I9%c_i0XGJ~hWXU_KwGUbvJ z+VWabxs@`OvSN3kQB`gi5Td< zCNdD0-g7XjD`DKo>IK-ssAV(6ZeuYnD{V^0ojtC0sWO?x-863hBI?UV_L4%&S(1iJ zdo|QGQ!>Uiv|U2pq8^4-y>Fv^0jj67HeW#4-vz`W+n0t`>yiJ)(l8{0 uN`KP)C0a|2oddYDBwFnQ@V4&YmO|a5C2Z9{!HHY}>h}gC3s^}|C`SlNBi2Mc6JQiNjM{?U}L#4V(|#TjI_WV@yI*-`KAJ`lgkgC@g2^rf?_0 z*1b%|Xkn7YR%T=#+74maX^C@n{N_9-cPeO})NnO24*ybp@)UrS&wo|lA&S&ce=>-{ zO0Wy9s|)R58+e$pVxJ006*KIW%v6UqnR5$yvHwc?LWv z@z#ETdF&&4h~WT)liG=UU-3nw2R}HnqywIX`~O~r=wmc2dy$T5`4!_woK04M<2boP zBD-R$J{uR)G7JQOk+q~_$xpAPYeQSZOY6oXIHi2RW-;Ai4+d5M!!NpovbqVLS}Y#I z2F|5_rXnxY7oaFI)E6ToHPjadG0+6NkS53DK zu}G`V%oZd}DyvdY)Jy;*Ghpp^03nNC%9oPM>;%k?48IMt#wddvOG8UOX{)0P00000 aU_(CL9>HRtjM$|B0000j~f|{k#}B z4)Di%0(GQh%XXzDG$sKK-Q2JkKR-`QsiPFD-4d_!i{fwH;J|_aEL%ZYNu#B0FJ7G| z;=_VQWOA9;dQ4Y9)LpKCV=ri`X({49JagUwO3&5UdSK)wEJxPN%9wG}45n;lzK(aC zKtbL$y*-#9uSql`7 zENOEh^0jsFWbV&<+yj5)WEX_aERLO-`${sQhD#B5ZCio#Fr4qHlr^7X|9DL69eFa= z#kf#}$Pcl(QEE=tNl8Pt$o;~Fk*8r@j8mpwSGW8d!1&11FbzPh@^gWj=oh7f%f7G)4s^6#xJL07*qo IM6N<$g02I(Gynhq diff --git a/tests/ragger/snapshots/nanos/test_legacy_etc/00009.png b/tests/ragger/snapshots/nanos/test_legacy_etc/00009.png deleted file mode 100644 index 9c7e7049cb3e9bcfb1601ec510ee465d38229d4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 340 zcmV-a0jvIrP)b=%MgRq*37h4eRxPbkJCLY|1VIo49_}P}TKpH4$L<8?X{t;p zy+UQc_4@p%0?~E_&igM#?#L~IOHR(-<@sYotiy&C*Y&GII0yeh-p3zW9cv$Q0k>6Y_)5~SfP=m zSMUtz)%Ex|-o}7!H9hbQ(8{%C?kQVa?C`*Uj-J(h>P7(Y#?ZWvi?6}@n{fGLp>YTp myqR(V_$?>^<%seR_VWh!O41}p;-~WL<=z+0=1Om1tEU@3H#qtw22}5*_5JCvCo4!52c$FXo$VhXU?0M$^Bekqgf%Ka;M*^X|4 zEs9YCQ(xfJKmNC#+8dY%2&wT+>D^<3C%}_*k1^mvtO~`RE00000NkvXXu0mjf-kqOA diff --git a/tests/ragger/snapshots/nanox/test_legacy_etc/00000.png b/tests/ragger/snapshots/nanox/test_legacy_etc/00000.png deleted file mode 100644 index 487ea10fcfeb2f3e6b79239459672251d49addd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 414 zcmV;P0b%}$P)vpO}&+|8}fC)JNq`>?#dJ%s{^>GN_4usXQirk{^@^BA?p!El9&T9q~zMsh2=YdLB`_ONiP zKy6XlUGFZ>Cn7mP3u*k}@P)5`qyl*kG=n_1*noziZNbl$`{vlt{~o_t%`n%u4pwY>{meXB+{Rk?&w8PEthtO zpw07jjL}y6VFv?T+|mWt_$K~jfL&aWUky%TyaK3e=FYtaUn}OGWSA{n5OvD8nuxn7 z-!K}@zjoyT00000*z#j7fC_q86vGeVJA~htgYBrD)_EMs-MM~?7qNx7d+K+I1$E)U z=QD6)fW!2jIn4#R<1_=f--NfFK>Ecd7ej0bg>Cm~XjGZ)cH}ys0+A0q0yynb^ z?V`3+V|SFjQQmkHt~~-gf8@=8&)TsxxiBJ+1miSGuX>5c*78iNuJhz>bJ(1Z7@(F> zJKR<1`6WIa|8S-`UvSAM=hAIx6OJzY@2%<8Ow#T_pZC~BJT-`O(ag)n0ISyTsvc&j z%|$7d$^gY*9%%1k5tnQj&C!tG9Fs~p){O7~00000;KE04C}sI!5e%Y^FXSM?&?tHk}ux;C`ecLu=gSX6Lat5e?s%%i9aT`@9hm9L(b**iA zo+UCs1q)pJV?DGHk7o2q=I;S=!=}15NH6Gf_nw&(aE!ct6uh44))-l*iOrhN9})SQ zc<=m~;O>*rb{ehd^*3Qc2qA=!&m=2Dy9dRnm{YZUTkl6L_I7!t7#$a?w@!-PZtZIw zi|!tcA_EaAlM_EKrHx$`Sz2AF>#*yI`$O)V9RhO3E}VpK)s6Ah0j~Xb;j9=JC8KLL z5Fne>rRd{NKg55z;n-Z5042MNH>zVKFJom1M)N`tDFW=oUe)>^4ZN#)TrWq1V?(0v z?rCLV2W4%#{zn71op;v9+*cDHLKtL5|1q3UGx`t1IhYBbLNngb+dqA%FY=&*w%zyr@4#00000NkvXXu0mjf D0V!mH diff --git a/tests/ragger/snapshots/nanox/test_legacy_etc/00003.png b/tests/ragger/snapshots/nanox/test_legacy_etc/00003.png deleted file mode 100644 index c59d95a75873b383251705204fcfba4a4b32f583..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 441 zcmV;q0Y?6bP)39HGrB-%APBYOnqBRx^B%~ zs&?l#m^=mbr}(ResV33L?5z1m7Mz0esV1p@sO^-gINQV3!nq$|004mhH1;&qK6nxH zh^CCwI)0GahRY~1j$_OBy!XPiwPPxm`NrPLI6^3I^;{UQ*Hdz>RSx6s-O)}Mz7xLD zSXR4hpX0gV4X|w9dk!;t9y@83DacuwR{wL*%_!T4!A9W$3jp*IHawJ7D$6 z{BFK#R4d5emZ7bfGVIfJkY3Mj__vx#Ci`wGsV4i*XoH!Ug=RWPGHoyv=>-4)00000 j00000000000ET%3QAI8I`82l300000NkvXXu0mjf#0ShY diff --git a/tests/ragger/snapshots/nanox/test_legacy_etc/00004.png b/tests/ragger/snapshots/nanox/test_legacy_etc/00004.png deleted file mode 100644 index 570ce28d53e82ac396ba25c370110058f3a638f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmV;}0Vn>6P)Nkl`l1;k+@4An6g^M6kcbtxu@7*hfO000000DuchDWw$aQJnB& zJ%BsK3VrpQ1hnYqoNY&PO0WdV>i`7cs)e_@w@x()p@w=B24`klR6(CLpxqtlZO|2 zIWjpO-F~*EHtLqUMt)Wc_@bMv^h#{CUFW0M(vJ1P=5N1GhWcHM(-Xu*&bc@D4_o$^ z7Y|pL)I@*DzttR=&yLH#^{|TW)8Sp0qphw%epiuSUG#WHS~ht|j~;`U4>BXmdi9@& zuz>%00000G5i7^TsbXePb2LB O0000MjqtrV%Nn6esuj!jIMi}Btw`sohxwi1&U@}K{{10Q-!s%eVxF#kF6*2U FngGM>p?d%T diff --git a/tests/ragger/snapshots/nanox/test_legacy_etc/00006.png b/tests/ragger/snapshots/nanox/test_legacy_etc/00006.png deleted file mode 120000 index 917964c..0000000 --- a/tests/ragger/snapshots/nanox/test_legacy_etc/00006.png +++ /dev/null @@ -1 +0,0 @@ -00004.png \ No newline at end of file diff --git a/tests/ragger/snapshots/nanox/test_legacy_etc/00007.png b/tests/ragger/snapshots/nanox/test_legacy_etc/00007.png deleted file mode 100644 index a58590b988714545e7960f7f400f360ffc5de41f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 382 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9hba4!+nDh2#bl+hG9*4k? zQuR0Wo;SViCn%lTo!KM1sAjk5Y(@*V#~rbuHu`7A_H&AxgwHf8y4cdKvg$JbB4n%ez%sZ31aBYd&Oo@(7)_WJ(Znl2o8^PD` zFE`_Y-IS+Kdq0Q2-7r_C=}F(5ev`U`H~)QH|9$1FHE$YjoVax+e0xei%S`SAGlOm! zp7{T3NA-mVOYb&rdU8MdyIHo@@7cE*uj@I+Zu{2i)KMSV-E~o Date: Thu, 11 Apr 2024 17:50:02 +0200 Subject: [PATCH 35/35] Improve 'ROOT_SNAPSHOT_PATH' with latest ragger version --- tests/ragger/constants.py | 2 - tests/ragger/test_blind_sign.py | 8 ++-- tests/ragger/test_clone.py | 4 +- tests/ragger/test_domain_name.py | 21 +++++---- tests/ragger/test_eip191.py | 32 ++++++------- tests/ragger/test_eip712.py | 15 ++++--- tests/ragger/test_get_address.py | 14 +++--- tests/ragger/test_nft.py | 21 ++++++--- tests/ragger/test_sign.py | 77 +++++++++++++++++++------------- 9 files changed, 117 insertions(+), 77 deletions(-) diff --git a/tests/ragger/constants.py b/tests/ragger/constants.py index 5a89b08..8a434df 100644 --- a/tests/ragger/constants.py +++ b/tests/ragger/constants.py @@ -1,5 +1,3 @@ -from pathlib import Path import os -ROOT_SNAPSHOT_PATH = Path(__file__).parent ABIS_FOLDER = f"{os.path.dirname(__file__)}/abis" diff --git a/tests/ragger/test_blind_sign.py b/tests/ragger/test_blind_sign.py index 09d8b56..29bbd0c 100644 --- a/tests/ragger/test_blind_sign.py +++ b/tests/ragger/test_blind_sign.py @@ -1,3 +1,4 @@ +from pathlib import Path import json import pytest from web3 import Web3 @@ -9,14 +10,15 @@ from ragger.firmware import Firmware from ragger.navigator import Navigator, NavInsID from ragger.error import ExceptionRAPDU -from constants import ROOT_SNAPSHOT_PATH, ABIS_FOLDER +from constants import ABIS_FOLDER # Token approval, would require loading the "internal plugin" & # providing the token metadata from the CAL def test_blind_sign(firmware: Firmware, backend: BackendInterface, - navigator: Navigator): + navigator: Navigator, + default_screenshot_path: Path): app_client = EthAppClient(backend) with open(f"{ABIS_FOLDER}/erc20.json", encoding="utf-8") as file: @@ -51,6 +53,6 @@ def test_blind_sign(firmware: Firmware, moves += [NavInsID.BOTH_CLICK] else: moves += [NavInsID.USE_CASE_CHOICE_CONFIRM] - navigator.navigate_and_compare(ROOT_SNAPSHOT_PATH, + navigator.navigate_and_compare(default_screenshot_path, "blind-signed_approval", moves) diff --git a/tests/ragger/test_clone.py b/tests/ragger/test_clone.py index b06bf84..be1e4cb 100644 --- a/tests/ragger/test_clone.py +++ b/tests/ragger/test_clone.py @@ -1,3 +1,4 @@ +from pathlib import Path from web3 import Web3 from ragger.backend import BackendInterface @@ -20,6 +21,7 @@ VALUE = 0.31415 def test_clone_thundercore(firmware: Firmware, backend: BackendInterface, navigator: Navigator, + default_screenshot_path: Path, test_name: str): tx_params: dict = { "nonce": NONCE, @@ -29,4 +31,4 @@ def test_clone_thundercore(firmware: Firmware, "value": Web3.to_wei(VALUE, "ether"), "chainId": 108 } - common(firmware, backend, navigator, tx_params, test_name, BIP32_PATH) + common(firmware, backend, navigator, default_screenshot_path, tx_params, test_name, BIP32_PATH) diff --git a/tests/ragger/test_domain_name.py b/tests/ragger/test_domain_name.py index 5c074f5..0e0a908 100644 --- a/tests/ragger/test_domain_name.py +++ b/tests/ragger/test_domain_name.py @@ -1,3 +1,4 @@ +from pathlib import Path import pytest from web3 import Web3 @@ -10,8 +11,6 @@ from ragger.firmware import Firmware from ragger.error import ExceptionRAPDU from ragger.navigator import Navigator, NavInsID -from constants import ROOT_SNAPSHOT_PATH - # Values used across all tests CHAIN_ID = 1 @@ -42,6 +41,7 @@ def common(firmware: Firmware, app_client: EthAppClient) -> int: def test_send_fund(firmware: Firmware, backend: BackendInterface, navigator: Navigator, + default_screenshot_path: Path, verbose: bool): app_client = EthAppClient(backend) challenge = common(firmware, app_client) @@ -71,7 +71,7 @@ def test_send_fund(firmware: Firmware, if verbose: moves += [NavInsID.USE_CASE_REVIEW_TAP] moves += [NavInsID.USE_CASE_REVIEW_CONFIRM] - navigator.navigate_and_compare(ROOT_SNAPSHOT_PATH, + navigator.navigate_and_compare(default_screenshot_path, "domain_name_verbose_" + str(verbose), moves) @@ -87,7 +87,8 @@ def test_send_fund_wrong_challenge(firmware: Firmware, backend: BackendInterface def test_send_fund_wrong_addr(firmware: Firmware, backend: BackendInterface, - navigator: Navigator): + navigator: Navigator, + default_screenshot_path: Path): app_client = EthAppClient(backend) challenge = common(firmware, app_client) @@ -112,14 +113,15 @@ def test_send_fund_wrong_addr(firmware: Firmware, else: moves += [NavInsID.USE_CASE_REVIEW_TAP] * 2 moves += [NavInsID.USE_CASE_REVIEW_CONFIRM] - navigator.navigate_and_compare(ROOT_SNAPSHOT_PATH, + navigator.navigate_and_compare(default_screenshot_path, "domain_name_wrong_addr", moves) def test_send_fund_non_mainnet(firmware: Firmware, backend: BackendInterface, - navigator: Navigator): + navigator: Navigator, + default_screenshot_path: Path): app_client = EthAppClient(backend) challenge = common(firmware, app_client) @@ -141,14 +143,15 @@ def test_send_fund_non_mainnet(firmware: Firmware, else: moves += [NavInsID.USE_CASE_REVIEW_TAP] * 2 moves += [NavInsID.USE_CASE_REVIEW_CONFIRM] - navigator.navigate_and_compare(ROOT_SNAPSHOT_PATH, + navigator.navigate_and_compare(default_screenshot_path, "domain_name_non_mainnet", moves) def test_send_fund_unknown_chain(firmware: Firmware, backend: BackendInterface, - navigator: Navigator): + navigator: Navigator, + default_screenshot_path: Path): app_client = EthAppClient(backend) challenge = common(firmware, app_client) @@ -170,7 +173,7 @@ def test_send_fund_unknown_chain(firmware: Firmware, else: moves += [NavInsID.USE_CASE_REVIEW_TAP] * 3 moves += [NavInsID.USE_CASE_REVIEW_CONFIRM] - navigator.navigate_and_compare(ROOT_SNAPSHOT_PATH, + navigator.navigate_and_compare(default_screenshot_path, "domain_name_unknown_chain", moves) diff --git a/tests/ragger/test_eip191.py b/tests/ragger/test_eip191.py index a9de665..3fc9cbf 100644 --- a/tests/ragger/test_eip191.py +++ b/tests/ragger/test_eip191.py @@ -1,3 +1,4 @@ +from pathlib import Path import pytest from client.client import EthAppClient, StatusWord @@ -9,8 +10,6 @@ from ragger.backend import BackendInterface from ragger.firmware import Firmware from ragger.navigator import Navigator, NavInsID -from constants import ROOT_SNAPSHOT_PATH - BIP32_PATH = "m/44'/60'/0'/0/0" @@ -18,7 +17,8 @@ BIP32_PATH = "m/44'/60'/0'/0/0" def test_personal_sign_metamask(firmware: Firmware, backend: BackendInterface, navigator: Navigator, - test_name: str): + test_name: str, + default_screenshot_path: Path): msg = "Example `personal_sign` message" @@ -43,7 +43,7 @@ def test_personal_sign_metamask(firmware: Firmware, navigator.navigate_until_text_and_compare(next_action, [confirm_action], "Sign", - ROOT_SNAPSHOT_PATH, + default_screenshot_path, test_name) # verify signature @@ -55,7 +55,8 @@ def test_personal_sign_metamask(firmware: Firmware, def test_personal_sign_non_ascii(firmware: Firmware, backend: BackendInterface, navigator: Navigator, - test_name: str): + test_name: str, + default_screenshot_path: Path): msg = "0x9c22ff5f21f0b81b113e63f7db6da94fedef11b2119b4088b89664fb9a3cb658" @@ -81,7 +82,7 @@ def test_personal_sign_non_ascii(firmware: Firmware, navigator.navigate_until_text_and_compare(next_action, [confirm_action], "Sign", - ROOT_SNAPSHOT_PATH, + default_screenshot_path, test_name) # verify signature @@ -93,7 +94,8 @@ def test_personal_sign_non_ascii(firmware: Firmware, def test_personal_sign_opensea(firmware: Firmware, backend: BackendInterface, navigator: Navigator, - test_name: str): + test_name: str, + default_screenshot_path: Path): msg = "Welcome to OpenSea!\n\nClick to sign in and accept the OpenSea Terms of Service: https://opensea.io/tos\n\nThis request will not trigger a blockchain transaction or cost any gas fees.\n\nYour authentication status will reset after 24 hours.\n\nWallet address:\n0x9858effd232b4033e47d90003d41ec34ecaeda94\n\nNonce:\n2b02c8a0-f74f-4554-9821-a28054dc9121" @@ -121,7 +123,7 @@ def test_personal_sign_opensea(firmware: Firmware, navigator.navigate_until_text_and_compare(next_action, [confirm_action], "Sign", - ROOT_SNAPSHOT_PATH, + default_screenshot_path, test_name) # verify signature @@ -133,7 +135,8 @@ def test_personal_sign_opensea(firmware: Firmware, def test_personal_sign_reject(firmware: Firmware, backend: BackendInterface, navigator: Navigator, - test_name: str): + test_name: str, + default_screenshot_path: Path): msg = "This is an reject sign" @@ -145,20 +148,19 @@ def test_personal_sign_reject(firmware: Firmware, next_action = NavInsID.RIGHT_CLICK confirm_action = NavInsID.BOTH_CLICK navigator.navigate_until_text_and_compare(next_action, - [confirm_action], - "Cancel", - ROOT_SNAPSHOT_PATH, - test_name) + [confirm_action], + "Cancel", + default_screenshot_path, + test_name) else: # instructions = [NavInsID.USE_CASE_REVIEW_TAP] instructions = [NavInsID.USE_CASE_CHOICE_REJECT, NavInsID.USE_CASE_CHOICE_CONFIRM, NavInsID.USE_CASE_STATUS_DISMISS] - navigator.navigate_and_compare(ROOT_SNAPSHOT_PATH, + navigator.navigate_and_compare(default_screenshot_path, test_name, instructions) - except ExceptionRAPDU as e: assert e.status == StatusWord.CONDITION_NOT_SATISFIED else: diff --git a/tests/ragger/test_eip712.py b/tests/ragger/test_eip712.py index 1d9a782..99865ef 100644 --- a/tests/ragger/test_eip712.py +++ b/tests/ragger/test_eip712.py @@ -18,8 +18,6 @@ from ragger.backend import BackendInterface from ragger.firmware import Firmware from ragger.navigator import Navigator, NavInsID -from constants import ROOT_SNAPSHOT_PATH - class SnapshotsConfig: test_name: str @@ -90,14 +88,14 @@ def test_eip712_legacy(firmware: Firmware, assert s == bytes.fromhex("52d8ba9153de9255da220ffd36762c0b027701a3b5110f0a765f94b16a9dfb55") -def autonext(firmware: Firmware, navigator: Navigator): +def autonext(firmware: Firmware, navigator: Navigator, default_screenshot_path: Path): moves = [] if firmware.device.startswith("nano"): moves = [NavInsID.RIGHT_CLICK] else: moves = [NavInsID.USE_CASE_REVIEW_TAP] if snaps_config is not None: - navigator.navigate_and_compare(ROOT_SNAPSHOT_PATH, + navigator.navigate_and_compare(default_screenshot_path, snaps_config.test_name, moves, screen_change_before_first_instruction=False, @@ -112,6 +110,7 @@ def autonext(firmware: Firmware, navigator: Navigator): def eip712_new_common(firmware: Firmware, navigator: Navigator, + default_screenshot_path: Path, app_client: EthAppClient, json_data: dict, filters: Optional[dict], @@ -119,7 +118,7 @@ def eip712_new_common(firmware: Firmware, assert InputData.process_data(app_client, json_data, filters, - partial(autonext, firmware, navigator)) + partial(autonext, firmware, navigator, default_screenshot_path)) with app_client.eip712_sign_new(BIP32_PATH): moves = [] if firmware.device.startswith("nano"): @@ -134,7 +133,7 @@ def eip712_new_common(firmware: Firmware, moves += [NavInsID.USE_CASE_REVIEW_TAP] moves += [NavInsID.USE_CASE_REVIEW_CONFIRM] if snaps_config is not None: - navigator.navigate_and_compare(ROOT_SNAPSHOT_PATH, + navigator.navigate_and_compare(default_screenshot_path, snaps_config.test_name, moves, snap_start_idx=snaps_config.idx) @@ -147,6 +146,7 @@ def eip712_new_common(firmware: Firmware, def test_eip712_new(firmware: Firmware, backend: BackendInterface, navigator: Navigator, + default_screenshot_path: Path, input_file: Path, verbose: bool, filtering: bool): @@ -181,6 +181,7 @@ def test_eip712_new(firmware: Firmware, with open(input_file, encoding="utf-8") as file: v, r, s = eip712_new_common(firmware, navigator, + default_screenshot_path, app_client, json.load(file), filters, @@ -194,6 +195,7 @@ def test_eip712_new(firmware: Firmware, def test_eip712_address_substitution(firmware: Firmware, backend: BackendInterface, navigator: Navigator, + default_screenshot_path: Path, verbose: bool): global snaps_config @@ -237,6 +239,7 @@ def test_eip712_address_substitution(firmware: Firmware, vrs = eip712_new_common(firmware, navigator, + default_screenshot_path, app_client, data, filters, diff --git a/tests/ragger/test_get_address.py b/tests/ragger/test_get_address.py index 0d102aa..fd7b682 100644 --- a/tests/ragger/test_get_address.py +++ b/tests/ragger/test_get_address.py @@ -1,3 +1,4 @@ +from pathlib import Path from typing import Optional import pytest @@ -12,8 +13,6 @@ from ragger.backend import BackendInterface from ragger.navigator import Navigator, NavInsID from ragger.bip import calculate_public_key_and_chaincode, CurveChoice -from constants import ROOT_SNAPSHOT_PATH - from client.client import EthAppClient, StatusWord import client.response_parser as ResponseParser @@ -70,13 +69,14 @@ def get_moves(firmware: Firmware, def test_get_pk_rejected(firmware: Firmware, backend: BackendInterface, navigator: Navigator, + default_screenshot_path: Path, path, suffix): app_client = EthAppClient(backend) with pytest.raises(ExceptionRAPDU) as e: with app_client.get_public_addr(bip32_path=path): - navigator.navigate_and_compare(ROOT_SNAPSHOT_PATH, + navigator.navigate_and_compare(default_screenshot_path, f"get_pk_rejected_{suffix}", get_moves(firmware, reject=True)) assert e.value.status == StatusWord.CONDITION_NOT_SATISFIED @@ -85,12 +85,13 @@ def test_get_pk_rejected(firmware: Firmware, def test_get_pk(firmware: Firmware, backend: BackendInterface, navigator: Navigator, + default_screenshot_path: Path, with_chaincode: bool, chain: Optional[int]): app_client = EthAppClient(backend) with app_client.get_public_addr(chaincode=with_chaincode, chain_id=chain): - navigator.navigate_and_compare(ROOT_SNAPSHOT_PATH, + navigator.navigate_and_compare(default_screenshot_path, f"get_pk_{chain}", get_moves(firmware, chain=chain)) pk, _, chaincode = ResponseParser.pk_addr(app_client.response().data, with_chaincode) @@ -104,12 +105,13 @@ def test_get_pk(firmware: Firmware, def test_get_eth2_pk(firmware: Firmware, backend: BackendInterface, navigator: Navigator, - test_name: str): + test_name: str, + default_screenshot_path: Path): app_client = EthAppClient(backend) path="m/12381/3600/0/0" with app_client.get_eth2_public_addr(bip32_path=path): - navigator.navigate_and_compare(ROOT_SNAPSHOT_PATH, + navigator.navigate_and_compare(default_screenshot_path, test_name, get_moves(firmware, pk_eth2=True)) diff --git a/tests/ragger/test_nft.py b/tests/ragger/test_nft.py index ef60205..7dc6116 100644 --- a/tests/ragger/test_nft.py +++ b/tests/ragger/test_nft.py @@ -1,3 +1,4 @@ +from pathlib import Path from typing import Callable, Optional, Any import json import pytest @@ -12,7 +13,7 @@ from ragger.firmware import Firmware from ragger.backend import BackendInterface from ragger.navigator import Navigator, NavInsID -from constants import ROOT_SNAPSHOT_PATH, ABIS_FOLDER +from constants import ABIS_FOLDER BIP32_PATH = "m/44'/60'/0'/0/0" @@ -81,6 +82,7 @@ def snapshot_test_name(nft_type: str, fn: str, chain_id: int, reject: bool) -> s def common_test_nft(firmware: Firmware, backend: BackendInterface, navigator: Navigator, + default_screenshot_path: Path, collec: NFTCollection, action: Action, reject: bool, @@ -112,7 +114,7 @@ def common_test_nft(firmware: Firmware, "data": data, } with app_client.sign(BIP32_PATH, tx_params): - navigator.navigate_and_compare(ROOT_SNAPSHOT_PATH, + navigator.navigate_and_compare(default_screenshot_path, snapshot_test_name(plugin_name.lower(), action.fn_name, collec.chain_id, @@ -130,10 +132,11 @@ def common_test_nft_reject(test_fn: Callable, firmware: Firmware, backend: BackendInterface, navigator: Navigator, + default_screenshot_path: Path, collec: NFTCollection, action: Action): with pytest.raises(ExceptionRAPDU) as e: - test_fn(firmware, backend, navigator, collec, action, True) + test_fn(firmware, backend, navigator, default_screenshot_path, collec, action, True) assert e.value.status == StatusWord.CONDITION_NOT_SATISFIED # ERC-721 @@ -226,12 +229,14 @@ def action_721_fixture(request) -> Action: def test_erc721(firmware: Firmware, backend: BackendInterface, navigator: Navigator, + default_screenshot_path: Path, collec_721: NFTCollection, action_721: Action, reject: bool = False): common_test_nft(firmware, backend, navigator, + default_screenshot_path, collec_721, action_721, reject, @@ -240,11 +245,13 @@ def test_erc721(firmware: Firmware, def test_erc721_reject(firmware: Firmware, backend: BackendInterface, - navigator: Navigator): + navigator: Navigator, + default_screenshot_path: Path): common_test_nft_reject(test_erc721, firmware, backend, navigator, + default_screenshot_path, collecs_721[0], actions_721[0]) @@ -337,12 +344,14 @@ def action_1155_fixture(request) -> Action: def test_erc1155(firmware: Firmware, backend: BackendInterface, navigator: Navigator, + default_screenshot_path: Path, collec_1155: NFTCollection, action_1155: Action, reject: bool = False): common_test_nft(firmware, backend, navigator, + default_screenshot_path, collec_1155, action_1155, reject, @@ -351,10 +360,12 @@ def test_erc1155(firmware: Firmware, def test_erc1155_reject(firmware: Firmware, backend: BackendInterface, - navigator: Navigator): + navigator: Navigator, + default_screenshot_path: Path): common_test_nft_reject(test_erc1155, firmware, backend, navigator, + default_screenshot_path, collecs_1155[0], actions_1155[0]) diff --git a/tests/ragger/test_sign.py b/tests/ragger/test_sign.py index ca251ba..48a0fbe 100644 --- a/tests/ragger/test_sign.py +++ b/tests/ragger/test_sign.py @@ -1,3 +1,4 @@ +from pathlib import Path from web3 import Web3 from client.client import EthAppClient, StatusWord @@ -8,9 +9,7 @@ from client.utils import recover_transaction from ragger.error import ExceptionRAPDU from ragger.backend import BackendInterface from ragger.firmware import Firmware -from ragger.navigator import Navigator, NavInsID, NavIns - -from constants import ROOT_SNAPSHOT_PATH +from ragger.navigator import Navigator, NavInsID # Values used across all tests @@ -33,6 +32,7 @@ AMOUNT2 = 0.31415 def common(firmware: Firmware, backend: BackendInterface, navigator: Navigator, + default_screenshot_path: Path, tx_params: dict, test_name: str = "", path: str = BIP32_PATH): @@ -56,7 +56,7 @@ def common(firmware: Firmware, navigator.navigate_until_text_and_compare(next_action, [confirm_action], end_text, - ROOT_SNAPSHOT_PATH, + default_screenshot_path, test_name) else: navigator.navigate_until_text(next_action, [confirm_action], end_text) @@ -70,6 +70,7 @@ def common(firmware: Firmware, def common_reject(firmware: Firmware, backend: BackendInterface, navigator: Navigator, + default_screenshot_path: Path, tx_params: dict, test_name: str, path: str = BIP32_PATH): @@ -83,14 +84,14 @@ def common_reject(firmware: Firmware, navigator.navigate_until_text_and_compare(next_action, [confirm_action], "Reject", - ROOT_SNAPSHOT_PATH, + default_screenshot_path, test_name) else: instructions = [NavInsID.USE_CASE_REVIEW_TAP] * 2 instructions += [NavInsID.USE_CASE_CHOICE_REJECT, NavInsID.USE_CASE_CHOICE_CONFIRM, NavInsID.USE_CASE_STATUS_DISMISS] - navigator.navigate_and_compare(ROOT_SNAPSHOT_PATH, + navigator.navigate_and_compare(default_screenshot_path, test_name, instructions) @@ -116,7 +117,10 @@ def common_fail(backend: BackendInterface, assert False # An exception should have been raised -def test_legacy(firmware: Firmware, backend: BackendInterface, navigator: Navigator): +def test_legacy(firmware: Firmware, + backend: BackendInterface, + navigator: Navigator, + default_screenshot_path: Path): tx_params: dict = { "nonce": NONCE, "gasPrice": Web3.to_wei(GAS_PRICE, "gwei"), @@ -125,7 +129,7 @@ def test_legacy(firmware: Firmware, backend: BackendInterface, navigator: Naviga "value": Web3.to_wei(AMOUNT, "ether"), "chainId": CHAIN_ID } - common(firmware, backend, navigator, tx_params) + common(firmware, backend, navigator, default_screenshot_path, tx_params) # Transfer amount >= 2^87 Eth on Ethereum app should fail @@ -145,7 +149,8 @@ def test_legacy_send_error(backend: BackendInterface): def test_legacy_send_bsc(firmware: Firmware, backend: BackendInterface, navigator: Navigator, - test_name: str): + test_name: str, + default_screenshot_path: Path): tx_params: dict = { "nonce": 1, "gasPrice": Web3.to_wei(GAS_PRICE2, 'gwei'), @@ -154,14 +159,15 @@ def test_legacy_send_bsc(firmware: Firmware, "value": Web3.to_wei(AMOUNT2, "ether"), "chainId": 56 } - common(firmware, backend, navigator, tx_params, test_name, BIP32_PATH2) + common(firmware, backend, navigator, default_screenshot_path, tx_params, test_name, BIP32_PATH2) # Transfer on network 112233445566 on Ethereum def test_legacy_chainid(firmware: Firmware, backend: BackendInterface, navigator: Navigator, - test_name: str): + test_name: str, + default_screenshot_path: Path): tx_params: dict = { "nonce": NONCE2, "gasPrice": Web3.to_wei(GAS_PRICE, 'gwei'), @@ -170,14 +176,15 @@ def test_legacy_chainid(firmware: Firmware, "value": Web3.to_wei(AMOUNT2, "ether"), "chainId": 112233445566 } - common(firmware, backend, navigator, tx_params, test_name, BIP32_PATH2) + common(firmware, backend, navigator, default_screenshot_path, tx_params, test_name, BIP32_PATH2) # Try to blind sign with setting disabled def test_legacy_contract(firmware: Firmware, backend: BackendInterface, navigator: Navigator, - test_name: str): + test_name: str, + default_screenshot_path: Path): buffer = bytes.fromhex("058000002c8000003c800000010000000000000000f849208506fc23ac008303dc3194f650c3d88d12db855b8bf7d11be6c55a4e07dcc980a4a1712d6800000000000000000000000000000000000000000000000000000000000acbc7018080") app_client = EthAppClient(backend) @@ -190,7 +197,7 @@ def test_legacy_contract(firmware: Firmware, NavInsID.RIGHT_CLICK, NavInsID.BOTH_CLICK ] - navigator.navigate_and_compare(ROOT_SNAPSHOT_PATH, + navigator.navigate_and_compare(default_screenshot_path, test_name, moves) @@ -198,7 +205,10 @@ def test_legacy_contract(firmware: Firmware, assert e.status == StatusWord.INVALID_DATA -def test_1559(firmware: Firmware, backend: BackendInterface, navigator: Navigator): +def test_1559(firmware: Firmware, + backend: BackendInterface, + navigator: Navigator, + default_screenshot_path: Path): tx_params: dict = { "nonce": NONCE, "maxFeePerGas": Web3.to_wei(145, "gwei"), @@ -208,13 +218,14 @@ def test_1559(firmware: Firmware, backend: BackendInterface, navigator: Navigato "value": Web3.to_wei(AMOUNT, "ether"), "chainId": CHAIN_ID } - common(firmware, backend, navigator, tx_params) + common(firmware, backend, navigator, default_screenshot_path, tx_params) def test_sign_simple(firmware: Firmware, backend: BackendInterface, navigator: Navigator, - test_name: str): + test_name: str, + default_screenshot_path: Path): tx_params: dict = { "nonce": NONCE2, "gasPrice": Web3.to_wei(GAS_PRICE, 'gwei'), @@ -223,13 +234,14 @@ def test_sign_simple(firmware: Firmware, "value": Web3.to_wei(AMOUNT2, "ether"), "chainId": CHAIN_ID } - common(firmware, backend, navigator, tx_params, test_name, "m/44'/60'/1'/0/0") + common(firmware, backend, navigator, default_screenshot_path, tx_params, test_name, "m/44'/60'/1'/0/0") def test_sign_limit_nonce(firmware: Firmware, backend: BackendInterface, navigator: Navigator, - test_name: str): + test_name: str, + default_screenshot_path: Path): tx_params: dict = { "nonce": 2**64-1, "gasPrice": 10, @@ -238,13 +250,14 @@ def test_sign_limit_nonce(firmware: Firmware, "value": 0x08762, "chainId": CHAIN_ID } - common(firmware, backend, navigator, tx_params, test_name, "m/44'/60'/1'/0/0") + common(firmware, backend, navigator, default_screenshot_path, tx_params, test_name, "m/44'/60'/1'/0/0") def test_sign_nonce_display(firmware: Firmware, backend: BackendInterface, navigator: Navigator, - test_name: str): + test_name: str, + default_screenshot_path: Path): settings_toggle(firmware, navigator, [SettingID.NONCE]) @@ -256,13 +269,14 @@ def test_sign_nonce_display(firmware: Firmware, "value": Web3.to_wei(AMOUNT2, "ether"), "chainId": CHAIN_ID } - common(firmware, backend, navigator, tx_params, test_name, "m/44'/60'/1'/0/0") + common(firmware, backend, navigator, default_screenshot_path, tx_params, test_name, "m/44'/60'/1'/0/0") def test_sign_blind_simple(firmware: Firmware, backend: BackendInterface, navigator: Navigator, - test_name: str): + test_name: str, + default_screenshot_path: Path): settings_toggle(firmware, navigator, [SettingID.BLIND_SIGNING]) data = "ok" @@ -275,13 +289,14 @@ def test_sign_blind_simple(firmware: Firmware, "chainId": CHAIN_ID, "data": data.encode('utf-8').hex() } - common(firmware, backend, navigator, tx_params, test_name, "m/44'/60'/1'/0/0") + common(firmware, backend, navigator, default_screenshot_path, tx_params, test_name, "m/44'/60'/1'/0/0") def test_sign_blind_and_nonce_display(firmware: Firmware, backend: BackendInterface, navigator: Navigator, - test_name: str): + test_name: str, + default_screenshot_path: Path): settings_toggle(firmware, navigator, [SettingID.NONCE, SettingID.BLIND_SIGNING]) data = "That's a little message :)" @@ -294,13 +309,14 @@ def test_sign_blind_and_nonce_display(firmware: Firmware, "chainId": CHAIN_ID, "data": data.encode('utf-8').hex() } - common(firmware, backend, navigator, tx_params, test_name, "m/44'/60'/1'/0/0") + common(firmware, backend, navigator, default_screenshot_path, tx_params, test_name, "m/44'/60'/1'/0/0") def test_sign_reject(firmware: Firmware, backend: BackendInterface, navigator: Navigator, - test_name: str): + test_name: str, + default_screenshot_path: Path): tx_params: dict = { "nonce": NONCE2, "gasPrice": Web3.to_wei(GAS_PRICE, 'gwei'), @@ -309,7 +325,7 @@ def test_sign_reject(firmware: Firmware, "value": Web3.to_wei(AMOUNT2, "ether"), "chainId": CHAIN_ID } - common_reject(firmware, backend, navigator, tx_params, test_name, "m/44'/60'/1'/0/0") + common_reject(firmware, backend, navigator, default_screenshot_path, tx_params, test_name, "m/44'/60'/1'/0/0") def test_sign_error_transaction_type(backend: BackendInterface): @@ -352,7 +368,8 @@ def test_sign_blind_error_disabled(backend: BackendInterface): def test_sign_eip_2930(firmware: Firmware, backend: BackendInterface, navigator: Navigator, - test_name: str): + test_name: str, + default_screenshot_path: Path): tx_params = { "nonce": NONCE, @@ -370,4 +387,4 @@ def test_sign_eip_2930(firmware: Firmware, } ], } - common(firmware, backend, navigator, tx_params, test_name) + common(firmware, backend, navigator, default_screenshot_path, tx_params, test_name)

9w6vfz4$tnGN1n+(CRZ1 zF$^@pkN~q3s+xC;tQu}dtR9N2+R5!;8yt-!BG^3T;ZioBiGp_|703`cLCEJa)dp+Z5dpGQ6q3_-8V`A=~c7! zdh2ucYD9$J{L29sK-xC*_)2MkD!&|N2n-}rIi^5gO*3V{A=>-F{Y($TTsq5q0kVF6 zV_>nz9WwilHLc5cIEI81v!6XOsQqow`CG@i9BhZ@Xx!XxZxxkDL)V$`Dmj6YFe@R1 z_jtxW)~VyRaqkO<@|!=w7zw|d@rw8>6nUK1YCT>2>KWice*seP4$fH>StNZ8Nad)0 z>wA^-^Z)fot<-;TF~DXwQ!->{4g)fsbX?D7EPaPrUXSXgo^YfGFwChP560sLI#{*xHSm zdj4-OJLgCu_5hFlJb`EJ64BK!4V3O=rQbG=e2uJ%CW*9|d{58vI0{6O?C1ji_1Ep>V$~jtD$bpBk3)EH%=N%oMMOQh;x^7 zHn5)gmSg^idZ2;J_;|~K+sNWZnjve~qrD?H|B-%C{k@W?G@6U|gA?kAbfGQWSIuL= zPDQZgS@}LF>C$EPKRSLs%8pSILv_W6TrW>dU*g8F?yxv=cuy%$lbcRR&k1OL@XD6 zIs7kdU@n~@0f@s@m=NXmrk$E#IZFA1WSVSC+1x+l${UTsTjKPebcz~fUV8irAZDme zmvYRlgp4=bhkdqinJPu7OWt3BdYSFx;UT(`=H$m#{kZvJz=aJxRGYfImCh^LntfLZ zQQz%-O~=^-Ok@Lnj={b((EJcAe`|Adlg9(fD(LX_bXC@EZ<7z}8KPL+yTFO{hV1Pl zNLI)O@Y&j`#O5&7K1Tjyt7i0QX4Ny9_%XXnN@Crj>l(fHGiY~I#;(5W@anzeq#&Z( zX(Gi0ef|kqnNZLD;&5BY0N9@hoFDBo;)X(nQ@)W0qt!6N^;(3U#{Gh;2PiDAK{%22C!PFktqu1lOC~i%!&P)1NXE-aqm2ujqxBg*^4e2tD!6W$vFN$spC*Mkzwr!V|*yskUX$-|E|= z50tBp>m^L}pN@1c-qvJ?Yd#)cQ(--f7(aD5uj9%@T?OHxTWF8;5%5|w0H9QLzrA4^ zb;|4=DQ8S*R)duGZSFZxVF!RI_`~q;3QEEV`)WgrU8z>x|6BWMc@q2fUlL3e-~Ttz QG0bOdU~#kRy6e;b0cR&t^Z)<= literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/test_sign_limit_nonce/00002.png b/tests/ragger/snapshots/stax/test_sign_limit_nonce/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..2833c2381f5444c11a4bd789fe17fac392fb1518 GIT binary patch literal 7934 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 G?f(O>q>K^( literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/test_sign_limit_nonce/00004.png b/tests/ragger/snapshots/stax/test_sign_limit_nonce/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..a21279c8a0a89933b09833df3871d1ab2b36adf5 GIT binary patch literal 6108 zcmeHL`CC%y`?kfFDRpL=v~rtPn?x+j9dT^4Ra?Xb7u3|;&0RpWw8kkjYRpJYsT`wF zao0gbGsiT^&BfoVu>>AMpKL*XOsMU(R)2&UN0y^W69S-0ySqoSUo8 z58Hmw($dm7dE)2=Ev*%IwX{|~Ubhlhad2;|(9$v}J9*T_Bkd7?g6|_5efr0FCuZzb z*kRC$(^r44Sq*YIJpf!RT!6dBtAFcU+{t`bx?$IKtnbe`#rER>`q^! zf8A1buMpuS!WHs~+cmR)pY}=7!Ho)|o*zri>dvs}=KWkGvS~H>ED~L)AEw^F>y)y4 zn!_n`4TcLsQN00K$BG}ojTdW*jyY#_yWywH*e{6+PPo3s>fBY2(rxoqo<>J&WaE+( zGiTyQGQ6`vDL;Xr3!#mp;*Uk$gm27`UY?p{kO=#GgNp-edvJV%=2fMX)w!AStoXAX z`R`xe2pklADl2Vqx$Iz4fN-yoIfN2!m(IG>$aaj~cn{Lu?X9HAf2f=Dg{lO-_}$*~ zNkpepYZ-m9Aox0cRq|H#l8JApP3KdBgr?{li#}(L0+KQ-LgL}^30d8pE$J+R=cDYv z_!^2C>!SI)qcyW-qpz4KzFzgliP0x#;+WUxnTazr6!z?!Cvrr&T6b%m7AiG3$#C8mdj+b{yJV3pT=+3 z40EW*o&NBe-|Zc}{9wayI<*}2=gzPCH?;`?>9uNmy0ddC5ita6eCpUarDYcPz?cu@ za5#d=EOx(8=#RaWc5FlE(|%IA(Fn-kLb+*YF!n*1xYv_P`EZM3#Cw-vk<)?GWW2p{ zrfT*uP*L4e*r-oQ=^?YP?%!P{YxpaBY*Atni6w5-Nf?V z)UMUJ^t-#-ua*e@8w~yrg`DHerf9JP8{t*Vxg$dBEgOkMqNXjN+N**=^7VuP3%VF( zckrMRX=l{L{>Ses#TIPZrg~k$_{`^5AwLm`$IH&w4;dRb?7*YYXkU=NIM@RQvpi14 zF7@h+wp&M`y+Ufe+b9(4-19I-h}DR~%8s6*>@UURoz)L{NvKbHkv7GAiYmmakTzp% zz*DIxZNiBOe+8eaJ>05IUCU19Fquq$;WZ*L0D+)2>@YMjF-f7kaV;Apb=xImr;rs2 z1-c_NHdE(Ox}zHP?D~vIBucQfyoy93!H2kfehkC}crqpZrDYAgN-dwkOF{+eZFU)sYVFMUQ+C_(nh08R;ufR0 zR6ITJcv)WNZ|rg`7HeQ&pr@zD*Ap!*d8m_Xy+Qi9ce>OJ0127w&;jWS;Nwu+qw?SU z9Z-fs4J*%>n3`4)M;*8Dns)$6TwZQTZ}o)1;%+b^8@)kA8WaizuV&I{H0}g;{IU3c zy*#R3-qakeu+m$TJq_kAeOXwDZ-mEy772Q3Z&Q@!>iOY>BXSfRjN{va5ioSzl|hFm zfKYjZabsiU7^_BAU1@(QN03_KBOTSonW_D@k8He6O-&c&ZJc6>KtO6A3EaO|GakP}GW0k1 z1`Fa(h2zZMi&8!}?=aP{ZX7B+lQI!a_OlUcC|G&?bYOvV^Bt;^7yRh!`y@dn)GKz; zYjj&v^cY1EACeqmSd=;O@?$3-AeBI+bHE|;pBNe2Yio>;ytb=}ZbYeg&^YHgW1@WDS^z*uk^ zX$$hKfC-!96#~}G%nUby><9Lh1c`m`i8>^L_7|p2>c!VARka6rkwwW*7R)&}TP~h# z;#8Y?vn%EPPFps9PED)lG;z=gR)vR*$rQ>2`o#GcNDZ@fxRo96+p#&KH0cse3a-|` z-1^$R>)-YlHJKYUa&yvw5;?A(yIoWmNDUz(wQVhjMB<4BTYj`nRB158Bo*;$8kdRb zxs*{W^}RRk`k~y@K*NVuNuQcTpwEsKoR88}4WNOvWhI0AYex-Qv8Tb#%GdxESI8HX zl_ne>R0Wn#Uhxj&N+c2h_S4hTJRa{c`-{pmgc4vYJ!PMS<_zcFkw%JIq=eD9Z*S6f zcX#KK=>Chiu<_bjS}T&)(bkp(d3eRn$VLhPFp}MmK&7P(4!{QQ0!%dG8o(*Ay3HDF^ zA(MISKhSweWWQLi^zv-@m z)?}OD16wv0H7~m;3X1dw^-9hG!eTn&Eu^uwI07uIsHpH?q~}-m3e}!{PokJWmQX;J z#Md|$rf3}fd9Fq<5OKffN;12|!=!R)Y3T!}UNacJ^yN#9ADGQ%QxReSaDWQXZ3Bdx ze=~(}kJKgU$ZzSRO;uL z#0;btK2t;aF475`5;tF63?$)LU)+XNLNTlQEe~dK`oD~**I%Y~yBJzC}AO@Ih0m3Xc zwrN3U49spspOQG+$PU5~ZQw<`0t8 zkM4EGn)@BC(}r&7rawd+B|p*afoXZ8^Z7+P!x^(#(P52D8sQ7YJh9cZpMQG6r#x@m zsAGrW+yxkeB+VpWgFlea$M6tut`)#)f2tpAo__Gm|B1#i`QdTs{byTQIDf^517>mm z%zj~vKeH3_W}BotnoU=r|Jq#WM&O!l_VV%)Zxt39R(e(x7Z;0qWc`PQ_s-t>)rVYc;EdyF9qWHVv`WEvV+{+^S=gW*Hl9c_*TI(mn ztZ~B*%3OunnLYV@iiP39qWsDem(X!bf%|1kmxjPJaeVI@KE_SzE`4m;@YZbnPUgRC z|3w`$y`i2v>%Hu^@ah8btail)6^DItlr=6C3XR?E2SPh_{qMbJUD>!MTY&45Wd&lC z3g!iDD0DJKx%13=+H<7+1Jl#Cu50E?jx+k2FLq#WjhgMu?hJ(DX<_yLBScG0y_31U z{MOsBdTxT8$Ef|xImTkMI~I27;E8&5s-(iT*_{zM`NNak>UiL^IKH6WgE&{3BOJg^ zx<6O`MR#GYmLC@n8UjKJeYG>VkYlF{IK=G)BroCkG=5L)wM~UTul#?VB;71GJ!`k| zN+do1Y77QRn~E!$a}+NR78+XE9eh5Z0k9Ew0L9LCDxi&V)2;i-pKN2t{Y)!!MeTfZ zK?tlWtLF%OxBwU-M4Rz%y3iC>%K9Ut>rwNE&#(w3;z?Q^f!`bR&7 z=!sa4fK>s=xaA=+qwb3k$U-c88iP&2IN2iszyl@u6)b znB2xhH%I(2wh>-1bBwh8)>Xi~ zM!qXeznw=&WnJ6Dc=07hs&~w&BHYew262%nRgMFX`LxR*Hhj9YYqBQP#MVfcy4@Eyhb{2B ztKJ?~?{kozjzWzpZti2d)dV+S&jJ1nM-8=)oP9F?jzw{!^BT5>G;W+L8bna=tF}5!6Ed>n6-l1M;(fLcxKPpBXMzYnWKB3DgCB;M-Cx= zugPc;Sv3QSTUmB>dQ}fSAP{L&Y&~L(?J-OLlpmh)%Gu&s^rlLDtep{SV!}ETC>N!z zt&L2!?}6gNhL9qfjCwPuV`8krvj^mB|KLNVsawrT2m}&6e;$QI0&SVn@+~?#*vY^1 zT>7M+-*k|zjC6}{PSWWYvD)pC$;4|j*yX+XFIU{?^nqJf_`*u>3L54Jozp7--6362Ym>x{ime`g~2%S1q2;e-QR(} zR!t&-)s6=svtOhVpGX{bUCIIC4?Db(02#s$0X@~bnrUfi32b+k{F<}y)wgax;&c5V zC8vT|)E_2>RuTw=!Eld^zXwQ=DNVyW2ZQN`GwZW;)?}lI-ny{9IAclL%VoV*$$^-3 z_ot9o?Pa{A(fbQI>6R^iKJ2~9$<=eV58Vj;=eQ5EZ|Y+1PFH0NybOWjnVHW!3^2Vb zOOMspT`oDB_;Z%HjNzKY9F6laL5wPRMXB>BiaQPt3)asS`C9itE-e;Ji%}B^39Y~h1LRII=MR|e z!zRe|bGx5H^gqcCrYvX!5RSS-A<`#Ayj%0myv69SQ0&1xUc7up!6NzJp3} zMg?vLZHKQTi^(iRK)`EGyiWx$DKf2~bGc0;Bg3ApP=^;$Sd4o-oWzEs_=S^0KmF;CbE;P8Iy-N@9`RKm9U zuS@p-zl%zu)(JeXsX+J+EtfzV>?Ve%`z9$9+E@&%ON1;-=Vs zx%~nH0%B&juKz6{u>sRiDWU*+h^xWIj7?<_%MWNy2 z8pnV9=jkjW8x^a3+*#ys)N|$Iw?uf{8gyZG?1e+~*tEcGeArvGpoFw8P-F}o>J+}i#=<&5n3$#(1C|-vht9BeFGF87wa^q%A0I&=MpB8wBA_wYJHv=q5d=XY>7`0cX#;v30lMrwX%d+6 zP9EM-@54Ll6-YKH*>Cecj3c_Qq#UfSm3z(n@=N|1Ik8zYd+BSB zhjr?VL3=whH#SBdL-VZO@fAPnnCdW8_frg2^RlT$%+#tTO&Lc;EunkqXd~xa&XX#F z2Xqz0?t+Qf>PnO3Lh zrWTNktfF`vd453YXKl@HlcZ_#e2|{P5J>fbTx5(qH)&l%6u4J9m!5MZ^t|7nI~q+Z4nhT-)gFw#M}g6TeZ90 zkX8>8zY&M_unRWHnbun`zDM?YcdB#d$p|ZWDJ55RoK7z;$|W2NJP3V%+AJ9hD=wfBQGl3-e?Dfxxl3qb}z zV3pq#MBuXN$ZyqMHH5I_QLIS4%bO%u=lwSp-hRTFXnFc6q>$@NMf`tL=?bJe=4PYIulb4+gXYG^`h>x)`xFe>ToSnbg0>;3p25L9Yh+Z3~ z#)bFA#o!WY1I5fb)%`M-Lyp>o#MzojyU@yIWn)oPZ5%DBLs|M{S($@uEdNrsE^tZW zMA^#gQ)V7IqOBUAnEU^{{i2Unzm)VRE6buX#jcGLo=br_E_xf%R7i9dNcIE+)^TF%wA)B*FIezG^L+Vu8d5}I1NFgEU`;izD{ zmB%6WyN5jU%)CTh;lNV5#$CIhuT+i;92JuOA2^0=y{K3i)iX`-qMq~Y>wOq3j2QrC zrH%Vm@9;M0s2yH4%{RwUT4dr`dNGJ-DIC{2Ig9<|6=sr?c91`ii;ZOgj?o;G>q;;x0-_mytBv5+2B34@^X<9Wt zBY$7iKPAla&QYwfB0AVlQ?yktiL7-DlTmrQ)-DyS;4t(>fy6U9$3w*ue58CKemY1DleMe3ECWN93f({CKWvnmv)?D-S@p2>AxPJ1gbJeT>WvX62 zD8$SBr4-UW|f1zKi!9ktBk32HmI;jzS`>x-2-)g20W%%4vw`M8R zzTsH9{Z-FJ#+~FgCknSAjQ#8=wXRo=GMWw^a*~2lnDE6X52y5&p0{UJ(#)N2-YAge zxw&4^9K*)B=vh5e7Wrkg{FHevBAUJRIYYG{>I~OuqYsx`kJ7s>j&cKiFsX-LWqFWs zTC!W4(r0rL;yrl3FLt{O))FkXIEW$4I3s>CDXv%D(WZq2 zETWCy@48ezn1fQ($UZ8w z+^w_(7c9Oc)fjk!hIv%u?aYu}L%-x#Jz5kvX2_S8X^j}y=Zp!`b}gi}fn)aAQV_Pz z=C3*%AC$V=iCawcruLrWo|bs9PADRg8RIigjyjA+9kv*t8)p94jF8zo)T6!CcL{o^ z5#h=APmVmYCWKnJSIRAUULM%(7YuKd^FCtH);zJgaZ7U#Wk&iDEQOCnw~syFjMRqe zrniC#d(xh=F^a@D?WP&lS9c1I8hT^kbo6)kNbSHxU%4HQL;WR`UZ;!LlKAg`_<8z# z^O^Ec9-$yJfAyLMDNsJfK`MqW6u42~H?D`Om*t;ZsKds;!xenUFU)LG`n~MCLIO=X zF3F{N=jmqT7cxg#)tYV*-2n@nyyh*{?M}lZ;5P>-H<*L7Ca{R#GF+^2&Sgz}IQf*$3OZ zwL1cQti^rX6O7YU_4|2GO`MFDrpQ`7=fIX{&T?%EaH_T7MV*o9^9^>dkjJ`=Exp?V zd3HLHnV_U;KaMnhGUB6?ZOA(oO*(FI0lXr2tOPPA=}62 zG-CcGG|QiEYQL z2X1rR2r;;xr{!G(%AHLMWsmWvUmU|^ThqV;so4$cWe&wZgl$mH&F}XnxS*GZy@HJt zX)X&JQB?ceNrdT1e@?$RX5Z4s*UBQnI2xB%8Lt{YCYPDN$>I2K`l8z|sDD)2oBg2o z!jw{nq<4^Zo05Ft`DCBN>zfUWJcP~`xSoE-*hw~4U4~mQxb)b>=z*y1o(<&Z36fC- zo_5W%dHKD4SxGxLgXk>%)Sh@cK9{|@7}asa$8I0byBmstLm=BcB%WT{pJVKq7%W_c zH?^-oguZF|l@qX5n$xlDAr~$TgFyWJ{4#qy78O(FPy8hnV;JUZGG6YhIkq?iQTYA% z@luZOCf%VSV|v!H1qan$V6j+~Qm1H1&=)|>r#TTXcyZ;1hftK{y@bFmL)h#byZ!X4|&&9>M%y4+`F0#^HhOLAl zwb93u|Fl#RnuFpavu{F8!uPtSx~~h3ac>qISX;d6$O_R~Y<3OuSkCdw4sM3-BXAg~ zm2L4tr}vqjEsPwJo2Q*ks=Hk(j@D~T(Sg>tGv4EwQ+ng9V64FoyB9>f&C&nO1_F&) zxdE<6lv*fgWZ&@4$RAoBnm^0}2-^|VmVd2-fs^sySGPB}@NZ7jpi(9kwk*>F(ca%mJ=7V( zT!2+L_1SKm2^VSIGT)nXgIgT0IlH<&vyL|#{l2|?RNR9!G)!Ob=$oHcI{Oj4%*|PT z(@^J=So-sV7)T)g!B;bpiI_uBfrkhG9sl~^e_0H0w-*KL-vR{@%j)Uu*Ai=8k?&$t ziU5ihuPh=S*IG%80;sy7A==D=8q8mz}m{j#9sXh?rQ@`wg;! z-sah1+@Am@7~78)FHlpji-uEm(%x#1QyAVSDRkT3K5E2duVDk0B0cv zZ(6-&)S`aqnpe_%zfM-tmsxEZ0Sa`?Z78l&ZDD#k59~(8Zu7>$J9(z)#= z8pMj;#lRs~dHL9nFbp^#`BX`XL4%d=@e*>xtm|F|97}~!v2m>*Q=->TZpi~WK*HJ) z{y|aikbEA}kJf4>)gGWg2#}2pZh2+ym+h((a8L;Dh&Eq*?lOlc8L7{1#Il0DAx0Z8 zveq__A7V5+!KKn&gCrG}v1>cU#_FN!?yW z<*(K-K-zMUNTZA4M|>7@Y4e*Ex37F)l$f}BhLg2;FC%Q+19@bg+z1k1{o^;T1dTs! zc9GUm9(L0+_)c-Is)O-NNflJG21M)?1hj{wmP~o=xmnj`clp7>5@}N_$U8g>dO#af z@G^JKU+-t=c&*o?P%XU==gkh|*B+XqClJe>7j>jsM{n~PC7(U2sVW}TQghuO7`1~4 zkf#jhbIO%!aV1>xFyFB~nHo{N`$NN4Q z+-Q*>|DX6ITyJN)_hx6~4q+?v5Y*Bd@~-Oa6n)IRc-}X!^oLfD^K?+yPpcI}@5V4S zuwC*g%g`SS%h#Qa6F);d5B_*wZt%i!QU<)_c0d86G8{+NpSl_x);1LFy?NZAZ?Owx z#i3j-*iKm^v0r`|<@+B;r1-9CnBJ*tRxKYizYyxW4rIiL57)@CK6Ux$)_}q40DeZd z+^S^j6&$c;dO?LB2Z5Li*)Z(oBad{4-|)mFxw##K34Gew?B08v2J7lw^wp}(-jOJo z8BYv*tv1w=HgYC9`VOzWl+Q3HE1+-6Csz43Urt%^ssK@abl{GDI`Rleb%1fS=Rc4< zpR7;WR!fsr`kuI+K`e_vxG5WpB;EPI(Bb2(lby$laltr8&*1QT8k|e9iVnmE`L!2X z<_WovsKJ#ZHCH46KDYF`CUIfs#g&6?0o=EgC-pjyp_XobQf2I(8#-F%DW^KytbAL? zU@z)FLlg*XCz(nrYs_qhGT>uWF!;>D%*W_w78?)7RsGGovWYJJvy10&(AIQiN1Yrj z4}cQgu2{-y-HXx{OS{yu>5!6quQ4kVoyZ-%rHX3pAb@#!{+1jcD(h~$q2^(1cS*)u zel4u@7T4<0VH2kvF%(%P7si*9d8$q5j*4hM%R538ZS_ZfO17py`@a%RYAkM4rKvbq z;?A>%7qcUu1wNqV{y#}KJA1D98!6^EiVD=Q=*lAfS`opT0uwqJ&;L974N@OKA}Azv z;iVz08hA{S2UH2J1B|MOCh!?9vK;{mrhQYVWlYOQe4>;*t#dmZfKjkm0wg%nyvt)wc9`->jYb;VnBV$P!Wkzjc?I#2$-ViV9$>Uck`k+ zzV3EN*YBH88*4Xu8SIMF_Wj4i;|3F0MD|!$I%Bg=5|1r+45)QzWW=?~K89ACS^>(y zq93zmczGjOn9t$VIH+%^Ya~qz2TsoCs!qj)s|$Kd;kn0O|LAA^;pXZdrN&LsDBgFL>VE8b3ARL8|b<{EW8y zfj&;2KbZ9;h-0rA$SPi}ZdUSjEjLRRU1Fq%3jk&L%gZJ}bcx=Zey3c^oWx+yJXy6A zKeX}bKZOgHuHyX`T2QR$O3e~_-@KDJS{Bz0$O zu-)OGZDOs1dNgra1}HA@{ppNa!$&e0-kU$3f=e@(`Z@A&iei(p0nN`lV;0~@N4Z`2 z>$q}#e%v2S0&1@#MKZ5smc)z|gl8NX+^L zUJE)dtH1iLIQL8?%@-9daw=25Pqd-4N^}|Un>(c1L;TfMO^zt}B!&reCaqXXEE+g4 zVg&cXD|;p5;PA@gf-NqI4CHrMP0+;p zaH^}5OXUdk!E>N}^Wsv0NAwy<{((IOAkT0|+`Wpfx3qiN_;q04fzsQ7>S`CBHPxZD zA&auWSq2hO2-gw5;>=3JNgJXbAYupLwDbzq{kGq6Lwu36lah!HrOA!IkD+gRU&O7Z zvMGGiZJ29$i4R~|NJBTx0q+MKmcZ!8mWBc+0sUi}!x{Fib|YqiOTFWQ^S>446bC$& z*Hs?_t0|%O5`%GoZ#iqsH1N`xUo@5Rf7bIUFJUT+MDertg9v4@nv&CHV^sr*IvT#E zb>;U8$el{g?kQs8uJ84i8TG5zvyTX0dCl1TeG=y;i59D!TilO&nCe8ClK{l z@C9ry>Gem1P0csSDaiSjiZT~-a26Einn7Q(oB~z5VI8tgy?>In57YkWu=*qd!#Vi~ zlT(A*&>*qdn?}a{p8Wa%g&Y#2*>lREbhl`0nf3Jh8aFtlEvcca#HoI-p)W>**YGBP ze&$I)OuaYD=^NdrJeqWPtMz7iJgTcg0cVW9dDrL#ik+CpR+`G$3=^PGE_sIhbd*Hg z{&nPn;`>V7CC6>s#p=z3cGt1f+;ftiy*(R{UNFORJgJ_^wF|C@pvflahr2byM)Xr? zxbw)C%PEu_DJ!_m-N$NCLSr#aTfY32tYrla;d%iajMk4%kB1eBhbB`BR2 kD|~rR|JH}8AyJ>&c98{^({#yEG3FaMCSv)OCyXRW=~eCC|b{_;{wmFfoL z4G;)K1yNJd1%b$7L7+?jT)PAuk=CyN2?8mvLzJHBd4FF^UHg{*i@r#NcqGvz!2ase zt4m42T$b03FC{(TQoH^#B;n#u8V%`>G%5M%HD~+3f$Q2LNQvj$)rbO43p`0o^A$M= z#D+Wf@gf6(n&_|H13kF^zz`H{8Ei=g3Ly(22VJB1|KGubsXEGAv=$Z?8v-rXX}H`u z0vc>#fT&O#7~EQ$+E;pdiINg@>*g&m=&8`t5)i0))1$%s$tMcX6*BPua}3mc33TQ1 zmH+j`|8wwv6Oa?XbybG*`XhjfdnlTo9zh(Jjx%N8}-XTpkiyj=7)8P4yl}9 zbo0U3NlP>Q*3_Dy%GXI6*jObDsq*NZ_26;hY0XJCNm_MXKIamspu@n;&{`Mh1;)iF zsUe^aMi^M8Q`Si%<_>(ZdG3%(tkGTZm)95oLl9tWlu~VxOgc_DpipeV!Op$LG-@ef zW5JbOjekW+l%|a#uhHx5RIQg>^Hz9}e{zSHVn@Y>=pi8SUJ7 z-H1yPnyvYLqS3?B5t)^+x}q!||2!izeBA8jABj;V;*ON&K*p;7Ki1LXS=^bT%YEE} z0#c|+vJs@_l}OCTU1w$tj4hvN0|OB<7U``i&XWj>#=h{4}| z8j-oh@#VW5&m_rMdEtX4*`^9`rY@Hhu`uwiwHcA3A8y_}dsuL{>@ui6b&pumQ3ORU zzL&gj(FfkEjUQ0VQ`Y(IcFt#e739sqXJRP3L;^>F9G-}-XEA3OfKD_E9Ig8PDaKnx z3=bMG-$fG>P7~eHULUPEKxCz;(6&HGr7;f>^+)7J*p7#6N9N6$VDIvdSH@woedThX z2Xw=9V8us{BVz7}s~sC3{8gjhyu7C?0pZJ02r$D_<_uWPl7T8MyV==0Kb6XJLk7x= zNO%1Xw!Aq72U=$y$W0`ATzic~DeJhKc}X&lJY$E@V*a-3bkO`F)t&~jDeE9OHT+3r zpsWI0tG=_lTqnw~kp=rg4xpg2=?- zIy2kB^AbquSMG>;$cjH7uUW~8t*&KC5ox7%(ZLnL`7OC;g~!Y6brP3FHmX9rNXCuB z;?rDhrTKi$GkKSQ?d_Un1BW&FmyJ-yU#4*0-{+t}UwS>QLJtIIJoQE~3CU*FUuUSh z2oZF#`e<}NfErKQt6@#XwkeQ~Pqj)H&8oOG1a?^Xt@ZUi8BQ2#t>5`*3P2768)+(f zz*v7*+>U8GQqOgcN}e@Ff7|uf`MD~BQ?aiY@8C@QGI!uvr^%ZUMH;XbNY*I+oef)YGZRvM$A^FCyK3ZLhBw61R)7eK}n_KcCCz(atEMG7@w>JQms5Q^@($mjSI6w zA)%5#A_M_L+Ex)JoFrt94*lg*wO&zzw_@aZ1V=fUVR`siDQ4v-xHGV< zqYt|B5pY z!N`y@9??k1^6aGq7tC#Sl)^DtCtW2mC~6UU)GGCZpmJE<)Ar~&LyEs(|6-lqW0JI( zpcBa00oQU%mvZ&?_-UYB#+S^F+xSX*8|-q0j}3jrWl8g0gs^tu2p5&D&u-|`68|>k z%In7jAi_>vOgUhtqnF2<%bcRaUyqKg&l85z`3*(3XRol7={0o74;%-swTyg&C*@0k zOhObN@@cl|cga?~Nf!OO(3gC{rnWTnSL^Cz5D)c~!NF6x-wxaK4G5Vtc= z&kz9lHk1%yHe#7nRTX+7_j<@V;``uzUu~l#my+5dxry8NP~SN_SHFdDM+hWi>+jO! z3?BNU&hjdLnF{;`&$rauQr_FYgW*#{e0mht;qc+ADHN$2#AJNg>sOpi73{O)C<$HW4H_VVn_ISb`Z&uzh8dz(R7!%PwU&f(KL~k&9_Q; z^(Zhf@L=Pv$=|@nTm=N@7Q@Y+;B?W5%$>uNy}iBD(+0vCaK^7+zdY;Aob}ao-XElP zRmbNi;9+aI;^th12|A@gfq`cyhdZaI{CF}8gGC6~QHZHR!d8(IYnJW;QmrVjsjI_O~*6cl7p{MtmagX2?| zlxQJ`Lwlnfux%S~$=EmXXk1s z!r$(Jjg6UC3BT^-nrHiCqof6&UvD}WEZ=jSOA?U(z@DrL?hXYu7Uy@}=g5V2O+F>= zjIN)Dw_3IPzc<65Ok?Kywl2TIi+N3OLNd7#J6j%R8=f+XW#YVLG?Yw#D92K+D7G}F zqo9xYO>3?E9zzg54w3S`gEzm>6%N1F_oy+=&##@@a9x-bw}xXl_LBydIjPD~P#}!H z7#pW|{;EM37e{RZM2x-SAzMOzei7b5Uq1%(F;w4v%F`yTyM?06$xmdYw`Kc#f{)8D z^}Hg|qfn)#yC*Muv5$V6iIFTrA96heRnmzwL6eo{f&{TF>LpL@|I4L$>)f+k~_Ip)& zE>7{S?Il%5r5&+O{Tsc(YBoig@2-vzC$nlLdrdw}WXR)PUBWk6Tn*J-O5{75q zTTCXkV*0khhGO3tfwZU2q|?a&JY$%-I8+{S)e7(7nnGOj+{p_cum5CUQ)# zt&%|O-)ret!D#)#x`;b|k^J;gLvk?nW<`F!{qD0_NtE&SclN~0GWBoxH^35^(?Ios zJ%b+o)($J!+BKfxifA7f%Zjm!2UV zH~eNJ1wGV74DC{G%8*Vj*1hNF^G(iZ#By?S($dPO`KlgIP7kpRR*G#!gxxzP)mGB{ zHU27$fgw>a!em^C>9h2S;m(Gp+rb8;C1+|WzxkHMn=HDHCKB7$=B=}_@|q1UHP7eU zUBBr4B<-yjL5-41W7=lkFL~rGlpJnADW*6 z%eDEG5duAt4t^?AmQ{;I8oqwob?%vx8RU0+$Po zWw`HIHdjbS@+|9BsUENIuWeOxs6v5Q58FG70GoS}fopu}RBYDH=ItsSIw{xhap*sp zUR&Jox92Y1xz~r?rfWLJ7`qod>qcGXBt6Ry^{D@bSF}=MG~%B%@x%b*jVJWChcJ_C)qiHa7@-i@T2y(vhJV7>1d zADFI|2&x-hT#vTc&0(n)UM$SkfPe9&*)qu{OGK$YN|H_&t`EH)10^ImhcGktqp#ck zHv4*UzC({yjTKp@#=`gq98sj(6Iv*kjQvq{Wh!2_{15S~tU4mw%eE_?3+TY3t%uD> zYjY1X%*x^~%H%DH=0Py|%u*#UEL98??9&(f9^q3lwXqz-2^p>x+47ekU=yJ|IXs+c zd|cxM#xa5(_=JXvb=Cu5%#6+Pae)u8%Za=Bqi{b!?m7I}XkB$JoO6O0sHu(8;QC{J z>TQ)IS=^yw9-Wi67t^w#W%1VD8@z6k&8wZ%WZ6;`*@fA! z9Zk*$f6Im`T>v`F>?mMZ|3ksvypuJsZesrR&J~SzSLcE!l4o!J7#@;(Rtv~L)RlL^ zqt2@QbgVbWWTNe^4bN@8KQ2DzAg1|yJ}U-7^b}oad6@Eg-KQuo#6~U5s<`{9eUeGA z0dPM}j@9ZTmHfr~HS`_x!kNRy0)Jd|PxhDHADV!%X!9ym5y`WTrMMeFtLGo9!X#N^ zO!I4t!oM?Bb})iA&qsS&kP?0i+QnOM?o0BquCzd@3-@8btp$&CxeQL#8{cki$^(|) zYNnh)91e%S_$0gEs(3Z|&;iuMS;TZLu$@w@|f$(T^lWmj%M##tVy`;G?U7rS67Pv0dv$ zK;lP~N>1#GWf|@kKnT055N^NTuB$!w(+L`%D9b272W4lmB~TQ$v|4eVk|P!oPcyq9<>lQ#o9tfE?xn)rv}O=!XT+X5 za*$JVKoX8cyYJ3a!Xh(c$q<}h=DZ=(l`!qxS9HplIpFz;XSFd>S;s>;UMn@g+ zln)D^O2T(!lOHZI+ys?;-y@GqRHpvDT$jhJ0_^0Eu5v_nGyGVJIIY5Vvq zBe4z*4yfJw@pf>vNeRLE_r_B}J!50hcZ8&{z}$h(uPi$^fsx7h5iWE4%{c2?UUh_PqOlzs8mF}ev8;R4Gyx%GpvBU~Y?h?*IAKRUwYuuA%eZu9(XezXe8-^H<7b*Qvot#GkgwII>8d}A$kW# zt=`Z>GQ)F0oOuc^W4 z`fna9a`a~SM4Qh2eEY%y(Y;0+WPap2TfgyR$ZSwLxrM1UeM<4#=I`^o}L~u)9PpSc(l;xs3)cPx zZ?7-mzg;HNf^vMw7K3Rm#6XcnDRZZR76)*Kx%DAQc)*Qbzqdc*;90Mt%}w?6hhB~o z)@<>Ww{0n#X9@4WK|;jDYU?7(hv7w%V(Z&0#{J~?#22|>5aD7D$L>dpEfY?UH?p)5 zobWjm^uY4~4c5*b=-p_#nN7AKR1@&x&0N1vEz{7%!AdQPsqhOJJ1aSSLCn&T>njh4 z)=jJfn6M96sf?0#y_kW{_1lzsnC%dOAGW+l=8|^~UsPGuWmHX5&xzc85+TQPf>=UF zBh z=QA$^8~6hU?|UjFoYYhXja$S27CQm_lC#Y(7iMe}O1`@M9DpqE4$PT;PqiTF%<}8a zuEYOU3Kd=U^59>+RK~P}sGL``H@^$}eH79bgLhEul4zK1iVe#1rwE{~1_)Kob5EtX zV$Y5d&wAHGCIXWeckmwx+zv4ac5oec;x8W>a^OyzcM0vC21HfbghA0J-nJvcg{AtZ zgBAVPiLZ85Tq!{B#R|ZNu5aG_*zbB$d0XN$n;_ zl#+gXOcxb#nFar^Et=ZEC;2pA9iCKnS~g8gYJER$iXAz8VDY%ZxyL2r$%nP zn%~~PEq(uN_5Ck>{ZT$a2;$(yriRE@`ESw&t_rL5$!q6x;@TyTzP&z~!wvAoUvW@z zUvJPm7Y&IQeC;5&YoGL+LwzQCvN&?LV=m^D+{wf;#%@SxzG^i^d)Pt7%~gIn_|O~X zJRuxZ<=mBNx#yp02`R25?Mc`E-SU<_h#tGFV$=tBlG>HFyWiUN5I&a|R{s6q`wVR3 zPGEnQi-p)xWv*p+q|+*ODWPd@E4H6wY64N+aG;0Z7AR4FEBU#3E z;hn~}PtV>~7Gd$@Ciry=nsg7g&Mo>@x&9!xk24-?htsdf9R^julqN^}My|{qO7YaP zODi@SI{J28HKMJePhSDj(3?-jzEVA^$nm)7?l|+kw~m(#XNx!K*3kHaWa>LKlv4kE zeL};Pb?iO-XOcz;QerK`3fnjJ^E?c=;s9|Ur3mX!o@3$ptT8Lywfv*Vqps=Jdb?wS zovz7PIY&VYrjS;+{ivhmhU*{sk+)Z`?sz^vXoO~kY8rQ@aT=a2Ci>0V>bcxgAv#Z_ z#(#u}8PVdK8f#@!x)4&1xNn#|*fKebl@y;5nhP-V1NoRUY{}#j;}9)2x#| zKsxnDS{XR2^rU5pF0$o-&9@Ew#euHBtai}Xtm%Vx0>ghaOPMr`Tv1z(k%%RXhl^)z z?E4*kvnYQiuoJ<;V5XTReUbRA(Vjj z;}{xnZF8+|yranX5|LrmSUxuXN{abU$qWlq*nOzu{#bw5p1dM%S7^_vn#;2~2F8W?w z(Itx}?oGK_ZoGaluf5)Tl5qU#8!_nhecQ&{+RfYPa3A?}Af8?i*}5l@zl5Zpj43kn z1!&Cn{1ABaujM{^{BcFj!o`XyXo!9uZKHRXKR7b^#E2zJ@Jl0r4I>`Rjlp{OLuu3H z2wg`W533lB*gd<@q5NC#w{C;a*>tr}Xh2_C%>HuCi27zO8WoS?r@t}0vN*J(AF@~Oj%k{3 zTWm8kG~1~KJ;{0!v$(|F1S}>F;`L%g--a=<`~)HxWMV?irW>LU2S!XUFd6@Q zeLw~L|7ut;_$6k?zjX6f&LCDRn+)VH&qry1_gE*5a5h|}y{p_@#d}*{UrH-#zAh?^ z*1h*6GojxY5SD^~ClJWSwp;%N$MC~kMnBKZzln*F?#3mPG<`kK2*gCdUx61(zn+L% zri6zAiBXY*fIXm=nfDGZ`3EG?p!<{dB}3FTYPoiHr)KjY>IDBt%Vy zE?3h!?UF^C=o|nMCNDS#|kDFMeC>! zd32`_4E-ggCG!csK)Fay$o1f>lWlyYQ^N`np?zQa;39)!sK1h;9Px+(KnST|b z^XKy^oaepa!D|1lsN9S}f{3bW==SW3W1`tF*JBf&&`N$0Uy~I?LC&SI#{TUd)^nFF z*GEQ%4fkFZhjL97$O+Xp#@K3p# zJ4(2;@CoY7W=?y$7s55wQV(*TId!5cA4mO;jSW-V_1f^rz7n31CxEW){D%b{z3}|S z#>*vN8jh)v|2 zBo>|b_KE;tPkO|Jw2zDYJJURnH6x~MF z7upDG!+Z?ZcyD9F@eg??{qn9;^vmzQ>sG6Fi>4D70!c!fELG)#QD?rC0Hw0%lSVx3 zeQ&iZ))4xVJd$uVhHL>>z#&5|A}x?o`hH!@-*fn+q+M+%uo0jo``Sfo-Nnk$K6Mk! zjX(AE53eOL-_UvMwtt0Ta_dI6B}4O~TrrMj(#?CYQRs+7?m%bMN zsv<-O(RO0P?yp3T>mRgX!`6l1*)>iQ?v;}vHsAS=g<6zD|&&XTVMfRh2+N21vLW$R9_fTPB3V}yy8ABDzs1G zWr-};L7OAD;o!@#lDQ-8T8#l?tu9}K($zJiBr`y8TzF{Ww!v%e`~;AnOa6b;8qZM&Dt-#)*Z;Jw$Lq zkf^Xc8;7K~#?i51g(u(dS}l2WbdF^pcH+B0Ss`408qQtqCkZ!2Hhcn-f}?ZIpB%YG zoD+LbP$`fzwr%`UqPejA6&^#yie)L@@^C#`9KSG5zByuUgvCo`xcx7O&1ek3%At5j zO6@GVx}&4kQirV>tna*eN5~8rZ!+wC>rSN5OR{k^8h4WL3yg3}Kdrw7R{3S1eKqSf zI>V$@CFOC>*OI(?DT8w z+WQMexlns=aU~rfo7~@*s9{O4>AV*)ZYx`^Y*72M9H!x{87L|GVJ&SW=@*X^X5Ac+ z)ea9c8W*U^7JVC7sjp5JV86KrLvVHPy8|b`442JL#J zu|o|n&QyS&)x0y?zhmdSSmZuMQ3^oPDFztAZ{%b=xlWiGg2~(r@RMXd5dE6>u%(x# zf6q5Zq_1N~xK>C)CW3Rm^sV1oEi0*bB zf<=Wf)hlvA@e8ld?D9ulY+B8}dN5-eOgzJ4>k1BAAtr}5ek{6cMI>J=2b(FY=m@0- z6N_UL&j1^|7Qs|@&^n6KaLL0+|LyLuD>a)*QVQY-GuGGNE49yQkse5mS<+Kq@Cjsk zs>OZN$QqueusigBQ_u7`buD#36&bH4)w15;z%-6K+hE-&!#_kx4qjfny>GngDZ@BT zqhBF9YmEb@<4R)-ai=3}794dZ;8<}K8$w0fn_Wj-OtG74XL*ifRdfl5`!L8opI(-= zvV{z5KWUbozax`yw!|uNq|7B~a46+<#vS3C+a4}E0hqDYm4<19xXbSE8PC(L4jql+ zj+xyIS@yJyX;01K*L7#{i6PO~ASK?xLbb0g-zDd*UeD6-px$7&;h&ddrP=R^;WAP< z=NoRHV+vf~JlE^=M=@W2H{MU*M_Ov2*Q1^M zYWLM^o^<0(LT>hzVjZuj4eWZ$ZeQo$7XIu(4hVs$7aE^b`QF{e_Bm*41^u7`bed2y?&{fz90`f6;C?_x4aS=zc((kUfB`$h(4Zk zt41uhN+D_;Ym~Oac272`c(wrD7SMMhJw#LxEIGVb~DP3b+(<1%vF&2w31l$q?C-Jsf? z{0SqP1^>7wTYMDIXxjNI-Pg*!7uzTRm|=sjb<$9RHe)XT7dS#&EAjpSpdoTY3xS(c zi2XsTMS~aG;{7EzB6@uwyZeKRdDi1P*0W_CMJ*1z_kuM?mhz)Ac3=~auie={4)~E= zOVgg(jNs6HoJw1x{yVfD{f2BLL^JHu@oAc~t;9Rz;_)%T#m-cRZfa^uaX)}wd244! zWH0d5KQBwCi!D#tXO`V(BRS_JQFZ#YML$VMg{d`9fV5)`8}tYO7MH0D_6!v{7Mb}^ z&#-7WApQ|Uf-aR6r~7v|B+eLsLFZNz>>0qT#yzwlfNF5FhUn!+1j$tC@$Ar=}hor1bGk@AIQlk z*;SvqXIwi6EK^LE6ffrh$s^^yBW3i{nvK5aUx}A&@E)@2nOGSM5&M*gbCDv$Qc!(z zB6;LS4U2KKD>(fz1l@I|3viu8v>a@@OZT+}IgRp0Jnz|yWl*E1E?PG)`2@jL8?;^8 z3>0^Dxc?k}$4-e@-QWf9s{8EMXUrrb=_<;ZJK{LMmgqSS(Jr;7c4!wlnl3T~$$xt7 zSDTKrJ9^s==no1CCte#9SRl}+?D3p6=EeKR4f(v(-@Lk@agwp2&ZUoi`L99iMkR8w&I=q&^4}{1*s+eB zd~=gdRTv=^WEn?~Uwi0X$|mBbbTi^|5kSV>X-mQbjE&Qa&8L9=lf9kGq#C#{u;BOg0@E?Ha`<_p7rVJ>BScx!DY<5-0|a@ z7gLi4n!wzbPsb5=UV>DW&W@v*+-()+5E10lWg~C;&Hmb-?=B#ZddKVM9?-4hj7jFn z55?hOCnaHv6Qf6;=L`eSjtZrA(p;=Aq7JYGx`mHmFXHW>qb>lAxvCfDDSJ-(isby# zmmV&iJ<|$3fHP`*SJ4h^umkZLUidRuEBl!v3E2WuS~n5VN>h-kePC zqaSX^H~%AM(f;K?@j&qWT-YZNNa)J{#xVXb|NZ}aTm6ai#C*iR{N^jw_~4f6jeMX? zA|;U@aObYn0**^XvWrCyNI^Yz$U!HRj>4R)weUaOAdq2P;bIA(7yLZEAQAvWcWs|r zTHH`2zZvz|F%0i(5TYC-y z(G=?!3TFjO<8>>>rJ%xz@Yi2H*#;V(+hk0VghQp!MGhRbUlJPpkh&l>M1{p;xHT#wZ6*mQI(Zu%*{&I^uR)@LHU)A zClc^`QTU2#WfxQotAv=kR$G8JbsR~{fILK}3?oQCnugH%K91^mBa9k?ezyC>c_)e- z8)utF1Qxhou2-^Xp736o&Kj{->##QRluw7&50lQcc;{Y5GhjXGxFEFYmZC<($9D~G zk{xi1(}Sfxt{XmKHb!K9b7h=5w3CLs^JnG&fzq26Lvj+jc23?)_BOrjiPRXY6sxDY zhDd|h=LFjHh`a|dGGO@krxTPe{O~<{rM9x0fi}xrBwYS`z5%n1d)N0@@UU-4z&#>k z&S~hvJP?JDJJw3yzj3d|p!@x_dp5u$bd0-QZKZ~R-oXbOBr^9IOU2B^>3%Np+Jpzb#=mYmU4#P*5ukjyc9pr*&0{p=YuCZCmyTYozM z=AeRW0vVwH_F@&sKvZ3QoSws45bX61rSk6_6A%cHYtsquYfOEMJpkCa;Qa3MON-|m&1?b%v_y3WwZZ!u-*zz>Nic0)UBFC<>Q?8eQ`QN{|2) z1^|a3z*Bg3w&?LRMHaUl1JoWYKzN2cCIIESF`o0Hu!3eA2<3$Qs{zFEQKkamV^`qbA_mpZ3>p5Ej#K1GspJd%-;9t(NWwb>Ag**lNxe_*- z`|K27qj$YDYwpzX?aF(}P1)qPx@@4$D)ja+^K++SoyOUR+G#qM&5b>kgzLsC6Vu;% zQG?DOrCduwXJafoa@|EULyUouDNAHC(ARG;xzvfVS1aUx1AMP@LvYrZ3hW=V*poLk zb{gDE`lQtok@;>#REjM_j6(o4z43M@Qg0|^LH08p=xNB$6*9m$_+OAd{GWQX|18@3 zuZ!oopBLE~Zx?#C)=AV5i2^i-e`L?Wngevo83_Paw;@1jc<0(MQdD!Ga_wCScSOHv zz%!qlNYs~1HHXuqf~u_j3;;=3z){dy$-q~AO-D~lhB@JHN8M_R9FQswF!x+eh`G7w zkZAXz|FAL9=j>=);>}V98q7gSX}_0D)@*#I)rl92hBD>=ESWQJpMv_oOjQ#(AkyXL zqieur2*XdzNwx6Y2JRB%JNbhseI7%+hcU^g%#pJ-h)TDjS$6wTmjV=)?P!2AXu z@t8RDPdc@@FrMZ<8teNPiut@APbud}r@UJt3~aWJKWo_{?#w{EaMpfv!np%^q+0C4 zo23U0N{26vl1^>hLfI~jGfs8_r4`Fog#hAkVOG^qVzK3x)r`;q2CNgkARbM4P?tLfppmpY{!dUwsdIoX;v8>%*S%VSAK5$v1w@%7oaj7^v zT1_brvkPeC7p3SKemiwApZiATt49mZ6{ksi_MC=zF-|sm%Br_xk`D zaa1O|OvLqx=;yPAn%vQXuVA?Z{$x?sRY3b8aVe9F-zxBWKKFUD*!MUFrm}T_b<>&% zlh)s`jEJK4>Vhx%q*(~iAKBXrG>~XyE!MeXQas{4Wa$Dv>&&cJsvQIZ^ruYdGL^Wf zz<}|6$-D1cA9)UzIa&z-TGKa*#RiMegO_a7S4gQN8lS8${Si;L6%jSl zTugD#7y3H**p9f}S$}48ihWu#sbYo~MSTvMQRdq(@4HtHBgja4__5|$6pl(KYd?Y@ zsvOIYBtBR+Q0eluUhim*rF!1DSypxYGNi%wQoz#i?R!R5nBf*v`74UZnm^Cz&Ne{t z>(1@#MEEyjg4t*KW!pL)ME{=pbsM7A=e^F(iM@$}|e zpeGcBN87EnMJypU{u-=?UCuE*vC)dZ;PW6Jh5hkso!A5w_rH&F&l-i2^Jpq=sVALa zm*UNdy35DB3eNwAWX4sNAjOudIGfQ6${46a+$@$p+}r*8R5+_c8{tdmY`(L+Mh9dA zr$B9A+;<--)|mNoSc1|a%S0lv=5}i3jr{Yj-WF4o{2*<=C_jLqYXL;3MFT8;e6lciMym9$Rq5tEO2IV^?qOIBihicC#Mym1>K44S@3BaY`~=ct^0 zw$wcA3jHIV`BKs8_-sQ)!^1|O9zMMA?pL7yo@*$F zVGI4agU8`A8|4%n%^6Zz+LDDCTM=nv^$g~*$cxleFE_xWKp-M>>=9yS18=m31q@MVXx0zpf5+6&?M>Osf;TVAEJYJ z06XxS(jzL~r;GhL|Ezmoe=6QMfp&>^`C<#8`+*YC#`v6cfKq3QwGSg>g#Vgdm~Z$ z`c$W3b(fg}BsB+sx=Tjh5#_sltQt=P*dwuRkuL8yjU|yY`oedkui!+!_DC|eC zbjLXY48^swfvXg^z=GA9cn{6B7?p<&ACleiebwVf3U=)NjZ^#UR>qe!&DQq)e9c|i zc(B{<(m7Dy8q<*n+kXPGe0L!CLMk5KDsXxC1$njz3l48>HWYhXgeUbLyeY4WYPaF| z2_xjaE#;SFrp~6Q`Xz_aDVKACvrlD>3@mhG1l9|{p)gn-2#ozEFw?s=LF-IIgqLVpkAD)-uX&sNr-y|;wbDceX^awrr;Tka z0Kzl-<6Ux+$D7Tl8li~BmZ*S9E7RWTK za$|x37qN4d$wr#woMaR5T7k&c(l=r}LW-)RqirUVE{dV04jh^T$EQ7^-xGkSsdWBb z=So=5vb_82V(_+Q4MW~?oGpFHI!if_i@7>o!^*bb0r?P(aCF%W)`q?44v6&K(Z2VG z;^!xmnI)+#qW;mo4{o6Ya%yL8N9e({_h1Pke8pF2|_(|+SY!`LZ%qjJ-*%m&C{7PnX4IH()(2 zG`={@9(U^9)$qn}dwQ*Wkih+~TU4uWx70SM=w#mIvXfe;1)KY$X{QE*$VAq2mrUz3 zDM43{UYhla8LgF9n@xw6b`u4h4apH)YZu08{|@D!AeRJQ>nq|(jyFpx7>}Wy(g80v zb3?E9cb1AGf0RoJAGMH1T#u3MRi5h%qV2W1za=s>R6`2&?heV%h{SZmz5{xKLD4{81t>v?;Uy2%#dYi@8-p8#7rv}6?}Z|+KM!m zl}zU!eo)2O3yDio{F~?a9}3-On5V8y4NsI^fDSW_yRtzI3>QcY*6$h+mV%wxk|451 z;vJpLC)e^gdZVT`%#V{|RYXbOw3s88BX}48(hvgP&cZa83n=P|#lVjec+vPpuOC$9 zCDQrOFSQT%1*tj>V47z;OACB&-G==P@9XoE6za(-H?UP%u{06-Qi>{AT~ZeJ)9eAK zydL!~Z{py0;T4$ecZ!ya+?|+E()|zEVS}O9xY6}klLwZuU(&dH#vw@%-$aUL%4&H9`Wv9*B7_eu#^PN$DoALPN3x4|2&KpJj|;cj4I*xUD) z4NkgfWl*_V?aojCz_sI}%F+ z+O2Ru$HBku;pvbN5=TFw<56W(h%_s#qS%kdt6&QvCi9mKxv%czA2ijE19}i;)Lmg> zVnS-MHvH{OS|_I2y@HMYYBcVNBcC2`kEMBNWfYCF20R;G^=z1YR2f_FLR)CD8t*dk z$gd*jx>CO|!oc}KI@X3_dnWCx$Q9u-?Vu`je~E0oT?UNRuq-k6y4!QOcc7741~T&@ z1d%O6DwFkXE}YoztTL`^lXm1Op$=)V73o}$uSFm7M}^pp@WLuu&(n3>D1`Z& zlsH=nq<3z5$_1ZChgQ9;zDwpLU(4%$!D_tqA!ipeH(Y>PPUq7IJ%Xa@pJ-Sm#iZQp zC<9@UbO{PJfJ_H0RLqtU8^Z0T#OrriUQCNn;zW0c{c zzMI!}VynLapVWvI^nd^`INnj zp(4?crhw877I*jl=@2plm;W?6%V@KFR1ob_MzVUoBTlFsN#*vmTAoYI_zg~C*1o8< zTZ5qIz0WT9mOZL{H$9{Y$ao}GFL~E)>8=rL>4^hJ%$^nG-g3;vy*rx>mde(}V$^Kh z+i^HS&C*>nq~S#vmFs>{W}MyCdrJa8-Wy-*uhuXgpohg^iUq5D{yA-RdbT3uGTqxK z1ZsjR#eK3=KRMp%9RM!*;Y-dMSOr|RG(O}t@z+Q> z9G6&Wr83KyF}VZ-UXL2+^Xo&CX$avg$7}NGr){iH4?4|?iw&a5G4TX!h`Y0RYZ6)J zY7P>%DZxA6pf0Ngkj9FPJ{%7_`TG>a|L6}XL5aDS4RlnJuc6PAn&+GSV*}=mQjK(z z`_!aLwEaWSE=)6gGbmCnjZ$7hgC}dClxH4N8PQ02|I{UDS5eYi*a3bft}(DHMbkLb z`bbhc5DnemVh28sMjP91s?!%LC+4HpR@n+K4-TF<%cZ3)=@9KWwc5+vpi2)FnBOF^ zjF;{}DVH8qbzkR}#1BgMX_drRSb+Rfqqi)&_P1|p{j#2u1$J38T`?ZT_oPcAD-xC^ z0>=$0Qg;r?t-|+h(z&=_hJtCPdQ(1(M~j>7T67(=)>b!HXYt)6oKK_c#80aIj+9dD z%k9PCZtQTvscQAarA4D}Tbp2#L4=9Q9ZC$>B?6vEVNiJ~FyoQiwcnM)=>6Jmpo+5uk-pKiG#ZrxLS{l1h){TMl8@VMOwAl6K z`O%IPuuvfvZ=*6ScXGZqAzs+&mXK$w>%&G*D{j%&);0&9i$nsw-k8LJmqPzlVFxGM z*&Y%4;Ae`!#Iqlx9p(LfJnJ}2bQW^5d)@1Nb4yFXl@C5pOiWC(R~JZo7+%u0!!f3? zdB)RozT52!yhtjQM%+GO1SlJ=-Y8D` z*5MK2J_tPQQ@7ClH2ze_T5D#vK-s8QvyC z%(M-Z+wpK$eB=c)JU)=Fquvyp=8_Vdnw!VJ_hP7N7p_#bSL`XJQyd3498Ql*A_C!d z;qvLn-?r+~r!WhQ-cL+uUXRb0$a|l|VfSKK3c5JLSJ1OT*F$E`=|Elfb9Unsz(Z8- z{bvlsKUCcQ=e7Tw=ljpx{%3CgQK<0$L}1IJ9;Ic6dQKn{3J%iCw7!rXj0baT%a3p;jOH(M7QOZq*0-!23XVPqaY&-rkk4Wd(jdIcC)D^(BE@s@N@f;D7 z*99S1c|kf*f_v!OFlVH)YKUP5Gs8OCLwp1e|+q0vV=dK(nlZ0h73aUHrJHYEONRDuF>bn;4zB{>Fq>Or-?V%oB0! zBuMA(`!!42F>Y+2I#7yErz0sBo);Gz&se?%?GYc}Z(PU^ zTkV?IMcYYNQS)tdE#Qw-LrMS+0T77%-4maed~ZPlT@L}S*`zK+PbGOU&A%wXyFAdC zNYZkTC6^1vLmRn4CPs-7^PlT`d|p%+#T+A2GipQ1E7cRZK^f$=xz})h#gZ%kb?=`z z+3VhtQ#ADoSd)a@``9Y^Gq{? zeke;=BoKOx&Ntwmq^+JHd_7mj5`@o^a_Tam+lB-52)iPwZdvNUm!7Ux4x;iOO@}$M z1ps;R2OE-e@sbNjXP`O+h(@FD?+a5?nDY6kAvIY38}s?dr7<1fbJtWf>O2^y>cXgH zq$taH`20XX`l{hMZ|#1ovyXal;vr^xkW-*RVOxXs=)VelBdAh^c2ob z>`?><(|Dv<%ZRWVyV2@u2=nzsb^AfsC3j(D%6I1 z!g>MU{#l`+ff`n2$LuSTvE1!@LRh-!dH0rT#-`UgeH*K7CV~nrDBSpPsce;$Jo~0x zkoSnW@zT7VSK25AngOMJD(LolHqi2I?KDJwI;0r%eB%#~wGg8HNKepJOqGdw==-IL zeoCme$IoZ8P}!!?4eSN}h9{nlW>^bHLf=HE&3;8Dp5s5gW-;i7>w>jUidO))Y-p=J zO!xkP@*_kUG>x-SHyULh0~Jg0oiS-kNmOq6*-8UZ!C|NNO2$;q^yu5Vr@mY6$t3aM z#~;b(4BN$i3t{UXjTtD=v}Ms?Z40D1G%UmyEA*F1DCK}NyPX`)N$|S9eBm#kfTr;P z!ZS&m_H|?QXj}-->ow>MGaCn0C^Zh+6&3itdiCmB-c9TTQZGAS!Xu;~YE$FZIYA8C zndS;fo5^o9q@lA{-0tdRma+vvYa&sciw9KEX!;y9J%@KXWQIV1(2x#k0iYiKZ}NPM zmB#UDidsqsj5h9@iM@T2*bA(Yk(4B7$dQ#?Kk4UQO!w!lA2cll-{W03@$F3Yx@Psw z)#e=R4fgeeNkWM;sX&E!1%c=@F05_p9z8ib(s92gBxST}n$k@hC+Yd%RHfA<-LUgU zy55V2U$Gu!zIsG)%IZ}4COnb!*FUw}Q|IRQ66e?zX9p8R^AE`hNBb+WuD#Mi6jVhi z#a>^cxJNPmzfpDKNNJT~wBtmj{B=++I!xos{NmpQs{d_Hd4~gB4VhzpY3rA}n}^MQ z%(PbH?ukn|c0m4b2j&0v`~M5)1wT$xhDFkpAO&y#taqT<_zi5>)|T=DUx1U12=aOg zi;Jrv+U4kGcR)SL-#QA={&AZz6p$MLIsjZDz#U8a^0LL+2b|9Kg%j?K1CIc0kX3a6 z`!bnbCsTa0DCJ4H>hw^k3irXNNcg$vJ+5`ZHkDC75U}y!qd*|Qdy6CzNp+T8Z<#|$ z_9bc{Ai@Y>Gv@@YH4_XD12}{zel&UrR+{n>xw5eEe1lMM0odMGcdsojE&|{q=oi3T z+(^W0(0f6%RohtK3Ey}i5Toum#ZT5&BUbVezTW79h1l=$({ljh{wGu*aixdYt zO>S$U(E!%DbPQhOCJbDN76P1wJX54euMSADgWD+5Xf!a3MGJ|I)XQ#eY8tbuvNJtP z1DFdMtxw4S65!Gj%NOT8`U9w|y7OLW)K1f-*fcRq{OCBaV*1>pw@>YJIxE@X&~kO~ zY^8V8r&mh)t5}oD86xXY{~Om4n7qGEX074g#^o>rSl>dP^Mj+N7T#AYNz5MO#CR;N z6K%NqNKh1Eqy~mDwld`K+gKK`c*({_>|zFl1VABlOiT+d1AVmsBtlf@%9Ys<%~ zA(yhdfNqKyZy!582>wUw*kmR0}S83 zV*pFhCSY#i%3}ESjBD<~o9Re{HevV8;n3yb;Lzcx8(%`}id>|ttAob9dAP!aoGniQ zy%2Vlve|4^Eg>16tQ-nMAP9pC5330d<7^JDFE}(~&OT`32%v*7FR}+Crb=~6h#4Lp ze#*l2|K5J5$9F71k4~#qo>|ZOHgf{|Y*BA5Xu9-b>&-J<69={=1#I%PrElXPfjv>{ z0ZGgSHlX4qSq!7NWCSU`^}4$auJ&7?{+K8%%z!cQXgm92AUO zT-!6iCvfTVLTCgu>qYlE-Ectd@Wb4M|aquR)asS5RV%XwEYxZ?JM_XH4eiU=znJ~hT z$T*wU=~wsRL@p3`Ci?iTvR2CX@sg^rB!hKB+@3k$%mKxQa02v5@07vrn&9*s1+-iRrq-J-!4Qt4S;H02P;Vz^H*^PU>^VX` zrA#q~{yziNBind#Q#Oxb5_4V;lyvx+3<*a?#j5uiU{cQbPjSu5Y5~QLg%4k^KXGx(b}{jDNYA zKGC<`!ng#j*#`(18;=;AnL3#OXnc>0?dO4;HxJbely07)lJt!0#&S{T2Q_L2W0Ko` zQNT;alEoVOI~NQ}mwM;c4jyZfX6KMy%Gy*yw_mpOBz!*TB$Olyt#T)~fDnjr$pGny zHRznoyFXF*wz*YTpVHfm8{KF%pg@gaI;E)CZi*`aEV0*anX@A#qV+SALI(}50;_$G zqISxXEGY(<4s12Ep?g%$Jntr{qX*S7U7B38s7`I0 zaMKS-Q$a=P0Vgy76b%}4{uXYlKDBj-7j{Mc()`_;fgB2qp^Gv8b#vsPIUe^b?#t+w z1y@Gu_%rXoA>U4zn$d-^fE=n6n?oMy3;i)tQItRVVPy{evaMnzo_vZyiPfU^&ywHW zc|XwbrG6&0s~dLM!|P3_^#1kbfx+D;xF!#4c9t?&?ytm|y9>S?-{(XugV3R;1YXn! nS|}%?4g6p2|8U~m++w~%lxq7ZXFqU`EoWf{|GE6C=fnR3iNv}= literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/test_sign_nonce_display/00003.png b/tests/ragger/snapshots/stax/test_sign_nonce_display/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..687a019ce5c606d06b4419763b759d2109832700 GIT binary patch literal 9597 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 G?f(O>q>K^( literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/test_sign_nonce_display/00004.png b/tests/ragger/snapshots/stax/test_sign_nonce_display/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..a21279c8a0a89933b09833df3871d1ab2b36adf5 GIT binary patch literal 6108 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 kD|~rROUO-4dX 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 literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/test_sign_reject/00002.png b/tests/ragger/snapshots/stax/test_sign_reject/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..bc1ca9382cfe2a299a5bfb35c76039d7a8ff0893 GIT binary patch literal 9597 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 H_TWDNq$iJk literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/test_sign_reject/00003.png b/tests/ragger/snapshots/stax/test_sign_reject/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..9d261148b71ba30aa1b899c216415154b470fa1c GIT binary patch literal 8186 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 Jb`AdMKLBbBQ%?W@ literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/test_sign_reject/00004.png b/tests/ragger/snapshots/stax/test_sign_reject/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..cebc8beded3da2cc390e824ea38eac4f84cbf349 GIT binary patch literal 5076 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 Ldb{=}?D2mCKHFqS literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/test_sign_simple/00000.png b/tests/ragger/snapshots/stax/test_sign_simple/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..f992e718a17c0a7952eb569a7d3a3ac7662fe27e GIT binary patch literal 8691 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 kD|~rROUO-4dX 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 literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/test_sign_simple/00002.png b/tests/ragger/snapshots/stax/test_sign_simple/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..bc1ca9382cfe2a299a5bfb35c76039d7a8ff0893 GIT binary patch literal 9597 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 H_TWDNq$iJk literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/test_sign_simple/00003.png b/tests/ragger/snapshots/stax/test_sign_simple/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..a21279c8a0a89933b09833df3871d1ab2b36adf5 GIT binary patch literal 6108 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 Date: Thu, 28 Mar 2024 16:20:09 +0100 Subject: [PATCH 07/35] Port 'test_eip2930' from 'speculos' to 'ragger' --- .../nanos/test_sign_eip_2930}/00000.png | Bin .../nanos/test_sign_eip_2930}/00001.png | Bin .../nanos/test_sign_eip_2930}/00002.png | Bin .../nanos/test_sign_eip_2930}/00003.png | Bin .../nanos/test_sign_eip_2930}/00004.png | Bin .../nanos/test_sign_eip_2930}/00005.png | Bin .../nanos/test_sign_eip_2930}/00006.png | Bin .../nanos/test_sign_eip_2930}/00007.png | Bin .../nanos/test_sign_eip_2930/00008.png | Bin 0 -> 349 bytes .../snapshots/nanosp/test_sign_eip_2930 | 1 + .../nanox/test_sign_eip_2930}/00000.png | Bin .../nanox/test_sign_eip_2930}/00001.png | Bin .../nanox/test_sign_eip_2930}/00002.png | Bin .../nanox/test_sign_eip_2930}/00003.png | Bin .../nanox/test_sign_eip_2930}/00004.png | Bin .../nanox/test_sign_eip_2930}/00005.png | Bin .../nanox/test_sign_eip_2930/00006.png | Bin 0 -> 381 bytes .../stax/test_sign_eip_2930/00000.png | Bin 0 -> 8049 bytes .../stax/test_sign_eip_2930/00001.png | Bin 0 -> 16741 bytes .../stax/test_sign_eip_2930/00002.png | Bin 0 -> 7960 bytes .../stax/test_sign_eip_2930/00003.png | Bin 0 -> 8982 bytes .../stax/test_sign_eip_2930/00004.png | Bin 0 -> 6108 bytes tests/ragger/test_eip2930.py | 62 +++++++++++++++ tests/speculos/test_eip2930.py | 72 ------------------ 24 files changed, 63 insertions(+), 72 deletions(-) rename tests/{speculos/screenshots/eip2930/nanos/sign_eip_2930 => ragger/snapshots/nanos/test_sign_eip_2930}/00000.png (100%) rename tests/{speculos/screenshots/eip2930/nanos/sign_eip_2930 => ragger/snapshots/nanos/test_sign_eip_2930}/00001.png (100%) rename tests/{speculos/screenshots/eip2930/nanos/sign_eip_2930 => ragger/snapshots/nanos/test_sign_eip_2930}/00002.png (100%) rename tests/{speculos/screenshots/eip2930/nanos/sign_eip_2930 => ragger/snapshots/nanos/test_sign_eip_2930}/00003.png (100%) rename tests/{speculos/screenshots/eip2930/nanos/sign_eip_2930 => ragger/snapshots/nanos/test_sign_eip_2930}/00004.png (100%) rename tests/{speculos/screenshots/eip2930/nanos/sign_eip_2930 => ragger/snapshots/nanos/test_sign_eip_2930}/00005.png (100%) rename tests/{speculos/screenshots/eip2930/nanos/sign_eip_2930 => ragger/snapshots/nanos/test_sign_eip_2930}/00006.png (100%) rename tests/{speculos/screenshots/eip2930/nanos/sign_eip_2930 => ragger/snapshots/nanos/test_sign_eip_2930}/00007.png (100%) create mode 100644 tests/ragger/snapshots/nanos/test_sign_eip_2930/00008.png create mode 120000 tests/ragger/snapshots/nanosp/test_sign_eip_2930 rename tests/{speculos/screenshots/eip2930/nanox/sign_eip_2930 => ragger/snapshots/nanox/test_sign_eip_2930}/00000.png (100%) rename tests/{speculos/screenshots/eip2930/nanox/sign_eip_2930 => ragger/snapshots/nanox/test_sign_eip_2930}/00001.png (100%) rename tests/{speculos/screenshots/eip2930/nanox/sign_eip_2930 => ragger/snapshots/nanox/test_sign_eip_2930}/00002.png (100%) rename tests/{speculos/screenshots/eip2930/nanox/sign_eip_2930 => ragger/snapshots/nanox/test_sign_eip_2930}/00003.png (100%) rename tests/{speculos/screenshots/eip2930/nanox/sign_eip_2930 => ragger/snapshots/nanox/test_sign_eip_2930}/00004.png (100%) rename tests/{speculos/screenshots/eip2930/nanox/sign_eip_2930 => ragger/snapshots/nanox/test_sign_eip_2930}/00005.png (100%) create mode 100644 tests/ragger/snapshots/nanox/test_sign_eip_2930/00006.png create mode 100644 tests/ragger/snapshots/stax/test_sign_eip_2930/00000.png create mode 100644 tests/ragger/snapshots/stax/test_sign_eip_2930/00001.png create mode 100644 tests/ragger/snapshots/stax/test_sign_eip_2930/00002.png create mode 100644 tests/ragger/snapshots/stax/test_sign_eip_2930/00003.png create mode 100644 tests/ragger/snapshots/stax/test_sign_eip_2930/00004.png create mode 100644 tests/ragger/test_eip2930.py delete mode 100644 tests/speculos/test_eip2930.py diff --git a/tests/speculos/screenshots/eip2930/nanos/sign_eip_2930/00000.png b/tests/ragger/snapshots/nanos/test_sign_eip_2930/00000.png similarity index 100% rename from tests/speculos/screenshots/eip2930/nanos/sign_eip_2930/00000.png rename to tests/ragger/snapshots/nanos/test_sign_eip_2930/00000.png diff --git a/tests/speculos/screenshots/eip2930/nanos/sign_eip_2930/00001.png b/tests/ragger/snapshots/nanos/test_sign_eip_2930/00001.png similarity index 100% rename from tests/speculos/screenshots/eip2930/nanos/sign_eip_2930/00001.png rename to tests/ragger/snapshots/nanos/test_sign_eip_2930/00001.png diff --git a/tests/speculos/screenshots/eip2930/nanos/sign_eip_2930/00002.png b/tests/ragger/snapshots/nanos/test_sign_eip_2930/00002.png similarity index 100% rename from tests/speculos/screenshots/eip2930/nanos/sign_eip_2930/00002.png rename to tests/ragger/snapshots/nanos/test_sign_eip_2930/00002.png diff --git a/tests/speculos/screenshots/eip2930/nanos/sign_eip_2930/00003.png b/tests/ragger/snapshots/nanos/test_sign_eip_2930/00003.png similarity index 100% rename from tests/speculos/screenshots/eip2930/nanos/sign_eip_2930/00003.png rename to tests/ragger/snapshots/nanos/test_sign_eip_2930/00003.png diff --git a/tests/speculos/screenshots/eip2930/nanos/sign_eip_2930/00004.png b/tests/ragger/snapshots/nanos/test_sign_eip_2930/00004.png similarity index 100% rename from tests/speculos/screenshots/eip2930/nanos/sign_eip_2930/00004.png rename to tests/ragger/snapshots/nanos/test_sign_eip_2930/00004.png diff --git a/tests/speculos/screenshots/eip2930/nanos/sign_eip_2930/00005.png b/tests/ragger/snapshots/nanos/test_sign_eip_2930/00005.png similarity index 100% rename from tests/speculos/screenshots/eip2930/nanos/sign_eip_2930/00005.png rename to tests/ragger/snapshots/nanos/test_sign_eip_2930/00005.png diff --git a/tests/speculos/screenshots/eip2930/nanos/sign_eip_2930/00006.png b/tests/ragger/snapshots/nanos/test_sign_eip_2930/00006.png similarity index 100% rename from tests/speculos/screenshots/eip2930/nanos/sign_eip_2930/00006.png rename to tests/ragger/snapshots/nanos/test_sign_eip_2930/00006.png diff --git a/tests/speculos/screenshots/eip2930/nanos/sign_eip_2930/00007.png b/tests/ragger/snapshots/nanos/test_sign_eip_2930/00007.png similarity index 100% rename from tests/speculos/screenshots/eip2930/nanos/sign_eip_2930/00007.png rename to tests/ragger/snapshots/nanos/test_sign_eip_2930/00007.png diff --git a/tests/ragger/snapshots/nanos/test_sign_eip_2930/00008.png b/tests/ragger/snapshots/nanos/test_sign_eip_2930/00008.png new file mode 100644 index 0000000000000000000000000000000000000000..ce795f34e8569e986af689fded3b59c9a8af2961 GIT binary patch literal 349 zcmV-j0iyniP)O41}p;-~WL<=z+0=1Om1tEU@3H#qtw22}5*_5JCvCo4!52c$FXo$VhXU?0M$^Bekqgf%Ka;M*^X|4 zEs9YCQ(xfJKmNC#+8dY%2&wT+>D^<3C%}_*k1^mvtO~`RE00000NkvXXu0mjf-kqOA literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanosp/test_sign_eip_2930 b/tests/ragger/snapshots/nanosp/test_sign_eip_2930 new file mode 120000 index 0000000..9ce6536 --- /dev/null +++ b/tests/ragger/snapshots/nanosp/test_sign_eip_2930 @@ -0,0 +1 @@ +../nanox/test_sign_eip_2930 \ No newline at end of file diff --git a/tests/speculos/screenshots/eip2930/nanox/sign_eip_2930/00000.png b/tests/ragger/snapshots/nanox/test_sign_eip_2930/00000.png similarity index 100% rename from tests/speculos/screenshots/eip2930/nanox/sign_eip_2930/00000.png rename to tests/ragger/snapshots/nanox/test_sign_eip_2930/00000.png diff --git a/tests/speculos/screenshots/eip2930/nanox/sign_eip_2930/00001.png b/tests/ragger/snapshots/nanox/test_sign_eip_2930/00001.png similarity index 100% rename from tests/speculos/screenshots/eip2930/nanox/sign_eip_2930/00001.png rename to tests/ragger/snapshots/nanox/test_sign_eip_2930/00001.png diff --git a/tests/speculos/screenshots/eip2930/nanox/sign_eip_2930/00002.png b/tests/ragger/snapshots/nanox/test_sign_eip_2930/00002.png similarity index 100% rename from tests/speculos/screenshots/eip2930/nanox/sign_eip_2930/00002.png rename to tests/ragger/snapshots/nanox/test_sign_eip_2930/00002.png diff --git a/tests/speculos/screenshots/eip2930/nanox/sign_eip_2930/00003.png b/tests/ragger/snapshots/nanox/test_sign_eip_2930/00003.png similarity index 100% rename from tests/speculos/screenshots/eip2930/nanox/sign_eip_2930/00003.png rename to tests/ragger/snapshots/nanox/test_sign_eip_2930/00003.png diff --git a/tests/speculos/screenshots/eip2930/nanox/sign_eip_2930/00004.png b/tests/ragger/snapshots/nanox/test_sign_eip_2930/00004.png similarity index 100% rename from tests/speculos/screenshots/eip2930/nanox/sign_eip_2930/00004.png rename to tests/ragger/snapshots/nanox/test_sign_eip_2930/00004.png diff --git a/tests/speculos/screenshots/eip2930/nanox/sign_eip_2930/00005.png b/tests/ragger/snapshots/nanox/test_sign_eip_2930/00005.png similarity index 100% rename from tests/speculos/screenshots/eip2930/nanox/sign_eip_2930/00005.png rename to tests/ragger/snapshots/nanox/test_sign_eip_2930/00005.png diff --git a/tests/ragger/snapshots/nanox/test_sign_eip_2930/00006.png b/tests/ragger/snapshots/nanox/test_sign_eip_2930/00006.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_sign_eip_2930/00000.png b/tests/ragger/snapshots/stax/test_sign_eip_2930/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..10cc825240934fcf573ac51303a58d8e31ea020f GIT binary patch literal 8049 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 literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/test_sign_eip_2930/00001.png b/tests/ragger/snapshots/stax/test_sign_eip_2930/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..7009de19e6f229e5bd5d5ea9879c6a517aadba32 GIT binary patch literal 16741 zcmd_ScR1Va8#k=&-Kq}SYO6InP_3Y~w=R1X4PvXJ5j!@as_HH+wSri!5k&|wVwBL{ zl@bIoYDBat5vduY_VacBp7%JO_jvw$#``|U`^Fz+xaN6X=jZ&KpEIu?ndqKA!GD5- zgX6Tm-a~T^jzjM_I1ax*ei(Q~)$~(22gf~-{=<8ZLvrS+tgN!u?LEYdX6xxC$!PFl zi-VsR$oFE;xXfQ5uZZaZztV2+bB*IKFm+R!++s8p1?N_Qe{)%ZkeCE{Q|KGi^ho2iv zDEPZTg3MM_cvzp3oY21V9YI%T24OA&odZ>VIUp+#Jd?v@n!6lL_ZZP!C0{SKMkI=cC;(*~YIw?^MA7iY^Fno!iL z>cNLegPhYed1F?SGzlknPn54n@4~JWUGIz_H>X^3fkYRscIJB}%BAV~PvO1A=bWhu!F;uU|ULy_H~``d=59?vpr?MJe9w#69tExLg5IHPs`eT6ZaBH4Yhkga9%PR#rCV zjUToeFlh0l2haw8Dl2;JpX}vsJ1J%NSvI{D{gvP8CSpx9>pJx4j`+!ps-l6BQD=k7 zQYmXmd5w}WN2bZT_hW(R=OD;u+1->e=ml*v6guUK;RRd~55nE46J+GoFAs$*i}tK@ z+^>G>1i91i*7QnRR*kuF1)*E<^&Mn(A`LUR%Ov4)F6Sm*6Mn7$f{3MMR#ozNgyvNp zTZF;h3{E>KdZ&1he#yuNcagB@v%J91F*b~NxFQ!iquuPXE63n=;&!-y=zr~fSiK}i z?P-QbWb(au%TM~7Zmp$H{d58BP&KFMF;$O-cH!i)ot-$(v4D&DxXF~njfz7bRP)JN zB$Zr~y_#0qqU><(h!<0Age_$EjkPxBa4ZTTa~VYtb2r)aRi3SOlRmZd>f^b@KKUL7 z!=1KWK=}9JC_7zNrm3Y>q2zRgK#s?5@?%JuC+v}~^CS0IR;g%cQ%7@S$JW-?Kth@; z1cm8V3HHl?sf<%{=A;{>Edj;O5-RF#I?ZE1VSP zeVgC5Cr8e8*9(Pi^4IXV{QSxzu~pX-YEYDoSgvwn;PFJMMWZ}_`w_HVkg}jRUf}fn zAL?>)@HDp{yDBIWC%vdb;`=-PSxJdCg4y4R4X3m`jLYV3rUiKIBk8p z+OQAP&)mIj333iq>{1VHH9N0hEH~%CTIEcc?z?=+dBCVqZF^nX6HA zlVKLeB1M47E=2cdfV9mr3A-+?EjN!4c%rAZg&&DUWyeWA1Gc4s+04@jA_bAQu2~%0 zJNp+>hWFx1h^dgquq!bL^BBAqwZ9SN=;#==w*ytGBxlJknL_SVX})T}CbVR$lY3ko zM4$ia{FyjE*L9Kt?cz5vsXve8QOW zt-NwIdxG!srMnHlE|I3qk*?>pjVW&su736-u8^>fiI35TUc$cK`VcDh%-Sd9*it?4 zxu(iOiIf*SSx22(>kb>*U{gdpaiF=djizEKs;o>M?lsufPg8ZF$j@V+s^&UEEIyVQ zTnpKA;y^>nPa6)1lG*acG8qYU!Ae$>#0ibN!0}S5PvQss4d8=_%ief3;iMGZ>>ix~ zx%dJ!G`^rOIYYG5tp-YHUky>W>CAM6GzZe)w>jXLbJl=IRjSZ6OB2<%AITtzk>M~s zeWXPEPi174Z`v!J(;(3b46t`@1RCjFmlZJOe}Kc7sKxtW=1W=GFM}7{*U9Z1-L(cz zSzGUSveBiYhH6!Smpb)c=6b!MB=51r0=;X@2u*wmMgFZq?tvQv#s3UY?Yv=5NGO;M zP|Y%YcW?_3aUkP!q1?xuTESygMO|(`_4nRA$q+W;Pb&I})}qY^&1;@0Jf_GU_aIy~ z(Ef)06Jy=E7-NcF=QoUYifGst6eY~fDfA*Q=1`{3W}9qhf#j1F{Lrd&f1kHv{9~%e zSlhKkdJs|teO&~#f+`KP5mScQ9gG|wk^acM^F*>bc|1_*rf=3OUnye?i-D}$RWU{- zm9SE$dV=iNHc|bewfPWrgF|IC(FZHXmJ+cx*DfpbXr|gY>W|l(_PadBuW=zJG{S`e zf87bGF*hqe+Y@!0LrzN28a*%)JiXxG_$Q|$MyODn2ZRH`91qQk8cOn=2JER{ z5Y;)4+$MgG7K=^jmDcnBVKj20_~~P$YxCiu)+HqmCr%4N0kCwcgH1oJ@g0P}g@$6*eJDy){*frBIC*1ZfyO<%rg{S(P>t$<9Erbs)#Z}HrRSTP zy^I=nSnvD!pmBNQJO+Z-6QyJG)0nfkx0hv1c?uCXeRGGZtb5wiyQja9^>y|)Q@GBi z3-AfkJg>*HfK7n{-t(z$(N;ozR-zeN9WePHzVC#yXEc9-NUF^;Z}`7oO{9PM@eW;@ zWnw?#e?2)}ri9WN&@0P#s0Ng+ccs?d zHG4V+sZRF6XNRlCefa>NkT+i3*ygW^Oce_@o%j)T>I$LFj)e)&6Bsi7`^hL zWX<+l;LljB%&z7Zh%_KyQP%ZIXz##XZ@13mB|z_AQNsoAAaL;yQ@kTj)uVJ%(5_$^L?{c5uVHqpnucPlqz;vN}qf2WbQIJ5Jb{=M2~iHPPcC!~ib6>wi!ok8{B)7-a*&7)l-ztWY5qttY=YT!4r z8{PAret4g5x=4Z06X@U5MAzC@7MHQTuSWvCj=dv^?XBijRc>dF!5q(8?RzKXV#9~! zbRB~_v(YNTNwj|-z$*G(CI4>daifg<@wzxZMhcVaaPS`}?`s4g3<|0`48Q{Va>H)9 zL_Ak>;CYLzF;7J|lHPQsPg-%1H$`6C%o9JpxVYG!p8M}`6hZdW3*~GdMFBZ$2-2-e z-WWKiJx)y?H(Ln=R~a;PY%d6>PA)DO8+l*l$s)hFXy>nj?jhh}2IMtzP3B)`U!Uy9 zq`GG16#L(Ckm>x@wgM57TkefcC{Pwon$Ld=EXb(mMW6L^Xtn$2wFkJxjGJ)kh;iTK zT$qAh77trp3uxtL_e2f3$}_#s(=IrW+)XX($i5E|Bw7l*^zNxXQLZ^1WX}*84???p zAr#;TRvUKF%TnX9)tr!3!y2Zd-N+=%WigWAh_%XRO}n9Dz@OI#kI6*V3Ea6@dJc6h zrS!;L{&;6<;O_~MB*`@Z8!A=a% z&cJok`}}rh$KnU+CMBtwJZdsmnleT~uh%N-VuW|MkoDN->Wtu7_wHV=;6Z;oROY|^ zwGCLEnb;i_j2_yvG_8k25h&pS`P?e>*0byhHs#L2P1XwU5NsV@e0iPp61+L^rB-Ii z9U`8K!0h-7-Y=n)V)eiKozM_YVsB1dmUerK$-9_WVUx&0AmWar<+#A_c7?Iavo6+~PQ7>z}H~jy3Xc zx0*YyoaL{?R-Jc4)Q!{|VH=2+T5o)Ib2Ia$fu$o~^k%f{E9i#4yrWbzd@XIe;8A|r zuvO~DZ#XD4-M5r=bim4$K+`p=rFu_yX$ulHbxpVDoB==5Q(jg!A7qOx9ularupa>+ z=}IsPz2L^wcH8|dwy3thcF4p2B*6jeCf&5r=%<m z)*FF^{oys0uoe$soT;B|1(42P8?TcPHadZlD^onEsH7cW8REo(gB=69w}P72b{}?5 zD(xq>AO}Z+Do^r3kaY<>TeXW5mcW&djWc5;W{%EQX1^TkaZvpnQMn(sFj1W=Hx};R zqM=3`w-=Mguyo}t=nR5;tIKUxmG5H8f12k+(tl!<^T|+Dho2zP4~35Va?k(ae%Raj zx6b~=vJ0q`_w>BHR%gMC&0?3q9HGI^F!h-6sV@RM!3*Ep=3r;6UC6x~4!c!vf+(0m z&`jv#&46e8fxYDXwQZTk%Wj@u-btT+%fDPg;F>V%Gn-g|1yclcQDguyTz>BZ>*m6k zA+o7j0;y3CvBDjSo8-|Nw$ubgL;qaqeYK`}*7(^i8&ji2Vk7T$|VPvKIt^7&Y8N=`gpC*qL#2m6PI(} z6*ru;61kI2?YAwd343B*s^Lofa^vM*BhFG+%NFg^qMCnO?vi!W;{kjv0{;6~6x(>a zL&$5aSLoA6v9I#XpmMGJe>-U#;LI7)8gDu=4zZh?h)Rt4<39T_W#L5_5pQ7{rB+t$ zHiMx(?HsoV+OJ~ek18jwB}-8;f@&-VL4#Ux(^jd^`uZFNx^(MP zCxA;+2sxp?q`Rjq$URSGOj^i#qtL_B3oJLUx00qH=tjWePAs0^wJ76L=q+>}x~>9q zR4tzja3j9T-;6S(oSCOqxKOm@wfGf7qXL|GfZdRVv6C=j+NZtv}9mt&Yi`sRoLVqKfmGKm#~dH^A5{ForVIQdJCU2`ud|4^;24J zh!~v&k-a4relUL9-T5vtiBD$y9<8geuB|DPyWhkJ;>IdjFurcL9y(^aEpN^i`TT($*(pn-g@QpPtX z-qR_|Ox?$G0hHXsgUKg&f#-j4Dy`&bG?(!pY9{%Ad2==TO7Hd!XY;wGB(VBv@z3}F zo+)UakdX60`@eiBEOYI54z>|af=9awO+UAzOJ(`!E!>q=qP!XV24DZpZ^;AVus(q; zh_M&7L(d!C++4D1FLY?_*U)d z!Wh?|{JU7>QM&6WKhJ&sy5VH_*PbtV6ET-llk`WGXWGr@iK?)L3jv?D%PrQdRyTUE z2p+bL@0WF{*E`Fo8&4}Xj<-{ogN=qO>LS|JFXDL^;okQotB~AWt1Q*v~?lNL{oe_kAGrw)?*5U+|eh)g%?aB?nW+ZHFpw= zgw2Gj^F{S3@&FA(1{xBSS$Q`K$)Ak{;NZ&ba9AeLgEQ#Jw?lSdu-SRscYlsq-<(Eg z8uh0bXhW@k^`tmwIn*nUIe9sDVYCP2%#`rlf5dXB-i4{V55s39F-qCNtz)|R@uu7M zL+N4V3xy*#4#(#vp9338l-!Bj+g|y59Us#?6u-C5vGuijUe=!>>4H#J#3a!y#pK7U zv9+a2tKVOTdxPM|JNz*FL2qPlD6BeDGfpB({>g!ma~8=_ygkeD8QZ(w^*a=YO&GFA z_1&0Egun#QM`x?m_w7?tHMT;F?ZOeGyHgy9Ek#U;BUmi00JlT63I?ta^lcd#87R;7 z5x=57Nv#ismAaWPYCpNML)1~OY%E;C*u?|9BHh{Q$7)g}Y$CoCL2soFq+_$(daW!U z?bT2AxF@eu7Z-ixEFB-bwkws#7ALC?zJ%$AjRtV(VMjJ2)}dk9a3hrD6GV@7Sj~n| zH+ObV$KdSR4juzZ|)}4rKdTmT-ykd7Hst1T_Z=$DU(oGApA( ze_4?PITP={Tnqm``UHh$PATMSx?LVK9!ao!pL5&MUUjMQ__KAx<_}h@#ou4DJ|~*D z(U+@EoL@Mt%*af`KM>)LYn?Al2u~adQ*(2ERo(j#acRR#L+*JL7pWvfVPDXW{27QP zPKJgln}2t3Rl!pr z-Wefa4w%yI7addS1~8AruikK;;|M_mn3~9-S<1SK`i@5s&^Qt zN_@Vmtx|RmGe9-hWXt_M`|y(+`KOz|sWg-U)EhPw=^C16s|A~}h=@SE^+FE#5{k+n5$TJ^H1uUE|Ml)Ou+qU)FvN7OxLl8oPs;m9#Ka(6viFT!)=B?}9A<{qaoNdWoTl952QX-7@ zaaj|35Thlt@Z?1w@niGQdv@Py>04E!lbF`ct$^1{ACx>DudzZmO?wCvjN=%UgHFzG z_j-}3bIP|Pn{HL1qFje-);yNpEvax?)&1-t1JkierYpBPU;%bE8CIM@`g*=>EpW7T zX1qOet|_<~d?TK&OolTZemC5b5w!oSo3?PW(`{kqmOmIgK3^|!BG`1pOz9tK1)7S6 z)T+=7Vq;>CITAQ;t;pC{+qU}i zJ?%cPQ@1?}(W%ZP zGO-Xo-HqCNE=NdayMp6A1@OybG!(W&IMvJ2rm?UGj-Tru$lvxnO_rKb`Mv{R;<_05 zJRg$Pnfrt~#7o2v@8ZMZpXw%lSc z(CgwC>XC5FCb8%lYKFxkJ&sn(zi=m7T7s!sH_D$_Rz3R2KRb+Zn^*DouY+#9zZg&g z23ro#I1OyKE>;6Pv$8mBJ)YkGY)0P)cp^O67n~HUDc+%|$mB{4YaKI6+(hYUY)}0G5o+vKu8SNdbCgMY)cyuK8gJMKugto zy``$dTeqYMfa`MjOkaL>tgr4;i;#GR;E1Gywp^lqVXh^-V6-4gTeYUM+VL1qnVCS) zjLIL;1T7$VZ^XJj)RKP?RT-`lsF;=bLuR@QPc_lS|Ec&ujXE}4%^9Sc@^5uW_d z6t7!{_jeV>6dWXCt*VBhe+k1C2mYCpRG4oi44-BVcdYnm4a56yR1JkpEL0TofLPsl zVS;PL2z}X?_5t^e?ke7GH5;ROz)8NZ0eA*m+evChOUo`bDQzojIrF@W?-2kvMC}Pk zoOEc8P#0#fA*K^Hw-G(wOShaEYcIJ3f_hc{2$ri~YotauP|F+G-|Oo2@)*t3-a)%= zi)$5ci}5&eBGX6-k^bo7gMYDev4?4m{iMl0PBVD*QVmWe-h4$@0Cb=eT03TY> zaTd<|x{j%u;q10NNAx*jq9)EMl8Aw1#*DT zM_Hg`$ZpjEw`OsDNNgjmg28)fVO(Zr;|ofWw*F96q@EE)wxQL@5fN$Z1S>5U#i{Qu z{zGjkB?8=e&knLWcG~f2tJ}5yqPH@OU*%*LvqNk84bVcVSl8aaOQhD-a$=C~e_iANy|5ZO z@;|IOk!&rS?DHXpv57ni#_&eFZp!-<0C%G8McCYaa+Uj(_bBvD(tu|aWJGBl4ErV*U8Rp38k&%o|fJ!Zbq7ITeK%Or)17{w-Iv-R{lZHBY zm?Mk#KKZDz=7D@H(iMub1Q*lTO~78trUCpNkZRoBObY8o9N^T|7Cy>t?6^_NKVjjQ zmUJwooCAfo7A++QnWK@RueY^}!j6tFY66G@o%emy-*We}0IbGZ47>h<=`*cRJVUFt zy=ygogV1y=on{KV@x8;!g^Y5|tU>Oz@FZoK069i9KV9V+NHfMB?Y7&N%(o;Fz$&H^P)(jxm#~UKHu?mg$vmm zg@JPs%M(uM29?7kqlxOvfw!4rO3uH&8SI|W7V|u%-qhJ~ z=jT*xO)D%YCgTg*zEHl<_VNdkcw*~G)v8seyk)PBK>V)pNl?7iaZUH3q z3-TmjOB#Iv(%l#RicQE8T3w4$DpV zK1t(>ZNERf76#-_ODOt8*dPVHkXPE*=r%?T?C)qf8R3zrm1ym7 z!1pcKIPbqH87*UVHE5`jc4`(In zgZJ8;9=4v{wyf3MMUQ) zvb2N}7Fz{!6dMel=e`wRfUPiabpKuGq8I$?org(^sCZd?!FO-`-bwU)kXntoD?~M{ zHfVAZ!>VtZy`iL{`=G}IXlQ3B&`Z_1@1P|S>zSv2(;F5Al8W}!KMV# z6W2l=|N1uH3h2>VAMED^G`#p2!q!xfIDb1*QH}VLMK*jF`(eIW-3vx>RHSE zzKh%-3pxHzEscxy4)!`Q(}#R#R`G}p7FYRCic)*f2l{fzte;wQ8OjGplGN09%un=& zRaXdzR)~LUCqDl37cy#-FT~XF7*dlM(HqwqP_v?a!U9MHdJNQ`csMKpa7GcDBHWxe zZP(JPBKK@>$&X&ekkt~LR0Blo$LOlU=bbCkYA0+9w|`&HZz~9i?UTA}y?0tV<_nMF zF}!Vqpw)#`(f;ZIhm>}mt#!)7y4I7qPnN0`7j!K`G~Wl_u99&0!DlU7)x9~zZYaHR=xUw5Z%7$rthQ3U=ld!0YZIRa;>tCe_S56q54v=8 zTFZFUExIwBxos1%bxq&uH5&R;Ij`>m0Fv2H?lF(5dIV6tJbpLG!XW<47~t8|NccwE zVUC#p887wUi7EF3oU%#?gs^)YA)7Q@s$~5Ay-N|MRtK^K9kVpXCYx3dh<73hN@jto zxgqo;OM3@<=XCiLra`&oMFC{i{jD!V9#- z*uVPR)6XGu;%6?fFTQ@$%Rjmt0wS6JG~%bzl`C0c0KL=B9TyW(Y4ILJYO16w2mKXo zG~8|D_95e8rLZMfOeP`2$Mq2ApJkDOBJfrQXkKkFA-W1PG@FNp9%LzJKO3&%8||Nb zjlar!7w}FbS@tG?z;SO(3e?F71rqU}<#Pl8EsOQ53u;2rMLU@RWAj0(6#xXf_8M$W!hrxu zk!%*`W`?nY8`Q~zGiz`Kn0um2;j1*MccQN=2hh+kWx-ws`cVP-feb#4xU?zcRoAaIpzugt$W*ZP zohl&5dp@ejG;|doGOdSP7rW1VGdXhMuG>`#{#HurX0Y0l;EJ!ZUUTy)AO5Lvsb?G$ zfGB3xXa5*949l`Xjc<4Hxk3!UBs=5OOt{^n)N8h@__+3KUf&_e(2K)6acQ0@W#yi6 zWo7HzyWOgwB`ib<=(7h{`IOi~rI>fMD~s=+dgo7iDx#k$GAi%NElfS!i5o1+umrM^ z+xMO%%w3)Gp%O`Yu_nP)f~N}Cxh6(j9OCUq9gQiqwrM)a2CnYfu8Fh|@_ew-Cbu0GB;Z6rc={vZ$$y7fyZ0Tc;*iDXuh55J55WM zxKDP{^S3GnPh79OaQJ$Kt=O9aJyb!F#1HS~h9n%Vdyp zhBp8ar~Occ>$?m67VCok_;ExOVCcKMyI!hkS?$L`PHFDyeuL`pE~*1Bu{xk4MLmV& zVNR`imF6&Gsboe;ADp|Z6(2BTKzS?^18NL3BS(FsFrTWrXTf42NWb(mmss=&P4Z%U zEvB9I+SK;c?mNQfgDulDcT0xKU-D)uGBad4a1UC)7#zB{UE&DH5<&mn&GJ9-!htMt zTH|Eik?dfjH~gfk$r&eyqqA%j*6avg!MM;d^ZTYpKGe-*v#yY}tNiD1GL*d%y7(*m z6E8bOFIw7$$vYNChcIlFdJ= z^Y?Mg+32+p^@*c#>SUsKwKjTZtltN38@{SA6G)&5UFZL6Sf>6bto4}TAM`|?Yu1`K zL$760WovtD_G^YO2GBpW=s}RhP#bW1sPpc$|LEd|C4|mp5&2`5NcS7ehB3MgMMM(| z6Sk&&>K(XXGeto1D{Ih6WtK|}v|BI(++_ru!D*NBEV+`M&;4t7C~7Wcg&*d@{aRFC zwIsz})|6~0Q}LhOT@6ha#9q-Pd; z#|#9C=&KN(PwQ!pYJed4KU&6sIk_kYw1HmnV!k$@{9`1^HwSPRN-~B4xMUE_S44xAKF66f zRvlNj5WBeWAWigj4l=JMQ)PN2QL_uj2E@VhJ|x@@n?VMkCM!MO(dld37MqboAEz+o zD+sgQns^~;dJc9oYUNYF{Z1MLDW-3}FXjjw2uJKl@j}|?W&oEzKdPUa^_1dP zQ(b9zQM(#Q|1Qo4u|{tQw*zmgXWzC4s;KG zUO;=FYk(g&w#lU{d*^$?(K{>sb?q&;;SMw7qWYC1Fj`uu&9KaRm#%2=o(ccrMQg2! z8_A5&JVxWt2Mj!X?yOq=s(fhI;_ap%HGDIGou4y1FQ$(h^(-PZ?@b`=u0H!~xS=Gb zX}ftHj5>A%wvtAB8t|hL_$UeSyw1?!kLz(vzfX@!K6&0k+Sr0v>QA5>x6 zKdR$*tO~n{wm5I{!F-G#Q+q8yWP+;sc4BZ?-dK>BxA^TNYm6~B^ztTwJWI~WXk=vZ zo!wJAD7APm@_%6c$p5j0E&pE{*uOgGbh;ocshCp?fc|e5dBg_0o_8FsudvF+noMbcFUN;C&iD{b&|Si zY=M}OH?{zSQ$&ZEX|AKd8)ap4A?o7#{>p-RS{v!B6@zXy$>%OY*GOlq4RKw@0BkKQ zJCL;XBp_!+E*vOt!`IB6LjM}JeTG6;!gLW8P=3m9u_LTO!Iv=yj10OCr+=3x zaUm~ZaOPJz8v2XYD@C`ysgYcr>XpRWvkR$Io4HcufRTtVD+{ndq=+_CO+;1$?GFTV ze}F<2l{*hn=ooFTQl%_?;4;MPdZK1R)aTd$W>zO_$W?2E2@-*X7C+Tp8i(@}Bz4V2 z*MQ_)!5aoyuQPRm$(=!oFhIYDh63`T^cWoPnt_*Mw&SqnAMx4YB?BVe3>BApkbwk< z=EUijOaTY}uTQ5A1~Vt{9VjGFs_bmAv>lHmWL(SJtgmDN5nZF*v61^p(j-7z|1?$e zEwNYonBu|312UBRHD$2oXBq^8+=TuakrWd#$rcxsaBeXI#QCv?N?!mcyxCuG(^~YX zYJA=(^kMIMQ|0&(nE6w=dCL4b0IsL?4H}OeRJ*`|bl`;ZTWKixeC*AVH>iZi(PT!A zLOTvr{K40^SoO5YK_}%6Hs`e=$S`X4c>`;i)c=Z}hqWJc7WVGhL6FR`)W;eHgo+y! zJ*!itl1#F(v9UB>MJMBYl@6dWHlIw+$-T`d8S~4LvMxXRA~ikTgIGMsnGFzp{=EeS zZ`;DeN_7JwheG#i6U@+i)1&A~@f%=wSA!Em3pdqt0N?>|F0K4(8NDnXbjw7wx;M#W zxY~T>YTf6rW?~U7Wo1PC zRe5rMnCb$Xv73B(p~o#N#`+H}T4#d~md{8;js*o@g(rLaD{1RD^-3g zJrt7W$czbUjC1CP%5( z#;3CbcIa9irIya=oqUyyYDtAuBg?If&KtS8hJiGz-OvO1xptU~RI}52gFmv_J#Gg| zt2(N854LHQ#Z*61d`WCqboz~~5_U6ZUKZew0Cgn5Cn7Td$h=Fa5PQ8NObt{P#Pm;F zw$Bpo$it;wtUMAA;;?5Zpe>XM4+IIZ((5*;3x09{m|A~T3lapxFd4}=PJG)G*ASR% z>cw^Yr5P#(Gq1@&foiFJ`V$~LR4EP6H{OC9aD4;4UX5E-*&i=7lmZ8LGB2FGO zw+BHOzr~pY4mUkzAy8fV$?1a{1(+ZfJW{99wSBA)Pd5p-iBV{8RV)k+vH2pOn2rLf zfz)qEO0I1SC;zehc&^o9n=8sY@fkax{t_DzBK@7eWR;)thW=g4ytDMidxPWuS9y^0 zC9u+=NXfCP!&i6;Lf6bWu)6=x)*k+G1j^4y(?bb|IKJ%hX`AISunwm8MX z0U7qTsj|E*47h}A(a`UHGOGkDnYL{Y)Qo>)tyU6U*_a}#FK*f>5kDU!a4>WRJ9O*X z&&Dp?&em3Z!Lypt9Fr0&nO?%*ZF9ih{bNufZw%;^YQNtineSO|&-HPHuz%eF22B}8CpIpkMpCBCXQi0Nz;4rpFoi1Pxn z`seITnXq$_>caD-jhu?Kg`j5Enum!t?1W`xF%)2x)fhn9XJMncZfCgd^W&a3K;1<7 zl-!1PeYOkH6*80g`<@HkoC-|et|wS$G(cIxx^MmgH{cW#2u1qh z$2(tFXeqhg;hhar-Pmq{Z_UT52yzeKUkFlz_nBmF=giN1_ZxoN1LkirFRbTK?Vr`e zRI-wil6tYLrnSuMLajFkb*A#hO)DZJ0Y`CV7n-c^)ZXXq9D21LH$NPVS0@Jw zdDM(5Z#7@g{t&k~p{Xfn4{csERwUs>^?zLhxTN7Afx4sb&sy_}9iW$h=2Dd)K;&H! zZ9K7RZ@wyG)f@ehbuG70!ToHaj##7Q`?6b&kCg}y03j|QG%`Cs6u8SE13DzpY>Wjp zYC+OViTISQu2gI3ET47egW8=Pk#eS1@Ay=saxVO6nBAyhhu45Kmcr(J{#v6 zX=v100FS-Pf4Q+Ge%m^Aq^r>!&A1razCJZ*oUU!)nzo z)|R*&Q_Ro2a(lNbV8pjZcZbpXEy%V^1WCSl_r~G!jO$eaQQ8OtW#J{DYKECl9dRCW zpAaDkkKYgWy^yOxr5>PaesNXA?1a`OD~d|M57bZOo+y_gDw(^83Y?n|NRdyG$v>2GEXa&4+ti{?d5TbIwSko@)z z@A%-^XDiJBd{U(LC$n_hB>oz%VJ@hUf8Rd3a~SwrO#hk`PTiC5Qi3AJ{d&ps&i`A9 i{{Q}O7})0-Eq%Fkb?MAy;Oi4O^tDYMR^E4d@m~O%Y0NMH literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/test_sign_eip_2930/00002.png b/tests/ragger/snapshots/stax/test_sign_eip_2930/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..a27b17e42ef019ecf28a0d74a46e699cfb5fa681 GIT binary patch literal 7960 zcmeHMd03KZzc$;a)afhBTx(_;wM;8_MX70_#icS_N=0kbGd1JmmN9{nsR&VuZY6s44E#2U8*EDd=Xr!KzzjNPrci&Hw1@4wQ zzuj4iJK!@3W6n2(V$>(Iq^gCs^=jO|neE%&q2BrJKku}%5TKMWVC>e@lRYaV0VP*M zcSq+5w&l33gNa=`bVuf-0yew$(jYV= zbzXXbr$J3>*PF+-@PXdIWFK(UGpWe%sptflX|1&t(kDx@*fdEdA_kEad)quag3p`7<8zhvn2o+H4Ys1f=M9{-JRM}Ut?6Yx>JBz|9b?JB=qYd+il7_) z@xg48PZrP+c`KTTfyTA{!$W2>>gFOAir`;)Cj)uATFv}N@8ddmH{Rd>FMaaT90{%+ z4YxtEQBCjRjdJ6U;WofZPo%5^k7nN+ZkSJPM}-?QhQ2#UzhJs9aS#g`$3`Q*sL33TH4& zimY2tqtPH1iju2PX!h+%llr@S(z`9?CJ$@OLTX2Wl?%7wOOlg0VwsUf(%^~-yNy7Y ziOu`dhsUN^55Wtk?0PTCAk2oOZ=dyCq>Ox0)1cPKd%|t>G{%Ym}9XgP#gtz z7|q$i$)M}6tz0?PCsr4@@3qf5=^B10Nhw)R@@Uk${lbiT$!BSClJl-fOAokbTVo-Q ze6_N-<_jruY6Ifn+kqS9@zeI3vx9s}Ph9l3Gm@6fX+W-Zt2W)bzIiY)BEA$H#otwb zSFd?^f1nMPhQ(r~awOdf0^^z<;N2e>uqaI0OC<8G;FjGc4@?V#&*zFRBL~OQ@bBn{ zcXlg=;BOG0{VONuBG>#o5n+mI$VuMzp||+pI<2g4&>H6p&nsooR<}(~FTW3#AhGB~ zde)w%H+>NA)0Zkd%e${X)!dFY?nVP?S!Pjanw2IayXP(sUOZ&bQS!vVP%GGvVbJDO z5+>7$ensS$h7L;lSdr51%^SBP>3Hk+T+vIDWx0~`!nE-PX#Ra=@zkfvPt#|EMhhWq_g8M3=021ZuSo-3(a4@`UEO<6`h7d$aEHDG2rsm_+A z<4li2qF|Mta6f!``0DdWE2)!DrDwA#+N16ax3Wge_6X@3)GS_iY2p{FTuDYqAAQyg z>GIKQWc{wwi;RR8C64$r+%I=RzQoDH4L#GFKd#&Bhn#uih2Zb!*!M?$I2;CV8CHjJ zvo5LyZrS~9TEM#h_Q`kEk|l!mIP}62)W}o49b@we5Y^J;MYsU_WzbXx;L&LK!+e(trU$FB4h(U9UoL?e^UsP(TB zVT^ZEwOJt?Zp1;<5kr@N%bRexT-#;AfNJ-4i33s6d#H7E%+%j5B8p9Yg0 zMx{zluA!l!Tf}QV3D%zK>SCV%L8_!sP8y;N7HDjg3K@^8X;-buXYaA*6SA_h_I&wU zS3>R%Pv@6;eZe>jjm^7U>8-%g*49QQXKr%Ey?z({HfQa%uQ_|->oLNY2-W7I!;iK8 z$*^)YbO)x1=phkBOBR0}N#j?b!&LB@6l>5OS7X5hn+@ESc7w>lKxoIul1bm>jevDG z85)FlY9*ipG~7w}@0-FuX2u_npUcE8AXd&BnhTefjwvn^2Lq`-{A{!dDKou`oo~5k?fb$`$Hetf>u($?Jdqukm05IFwIu*G5HKEU4>|9z0L35YtmQ`ynC2van%Urc1g}nV9 zJdB;TIh(@FGL#~3I(So*Ab2TiB@x}IrL{F{Vv%xTx6p$XeU&0kpPPxb$Lw=1Fo_lq zdSBWVe4b$Xo zI4kgjd!OGczHI1#`pW3S5v@aoCC&(IP1whsbT*&lcEM1iqbr4gzNWwFRvvAv7S{Wfa z6&{DG2nVsQ0@A|b;?c@#K1u93?{Nt1>%J!K3bmf}Aj3=LLNht1=d1=WRZ)N3?aa*c zY1X04VPwZ{+;nTje@d~N{l|EPM^wn(;Dw=PArAYh zku8X`OS|ntd4)!!frKv{3{@qIAlfg()3)rlN)an*6f?v~5oG@=245o9OW&}~t(lgOHU3E`??O{thUTRE9C*q>{DPxy zQV@L)PxC^27+C98;#_S|4P_uNpu<$UnwU3UPvmR5FBWSV+qE|3fExpnXLy#iXShX! z;lmzA0099Jm}*@k#w^TiE=Hj z-z#UvYtz0x@tm4x1#!9JcW<$NmPf=r$SIRIrvIS8ix6x)7*=EvmZPQ!0RP}^)KA-x zs)oM*e}E?cV-o+`bpGGt{MVOU|BliB>lmq;rJ4$p78X$;*V=OnQ))(y`iMnUHbekS z^wKVX@lD7(t+$R?*GDknEObV85WqQYztGMy8-jd1p%P_2xe%un1`t)Yegty_j>P*- z%Qo;ab0kA@tc)DRY#-!Q6fND3&IugQzYC`IzTYQv@3s#@?v=WI+ot-_D;ecg8NC-?j&lPOY$}-)O{TA(`H29O9fn{;7H)ymquM!Vv_8 zL5E|T_18WC%3Umerim!RV(HtyFXPK7f1GlN>@815AV94**it}4Qy3^H)RkT^+C^!} z4YJ45Ah*FGhj<-1L3xH>qB*1CIXwir*1@VDfR{;JJw%WXsCNmn-M z_=_*csIx9DB{?7%WI=(K6~5E`+jsYg{69$&bJ-*>%zWftPm4mChEcoO=#I$@SQ5!z&Jp zV8lh6-@y;I9*=#mj}xpwfL zu7;OweqU<4k#hpEdka63K)6~3_#d(H14ksYvj`$!;((IRqYb;kA@1hCmtHTvQNo#D zJ$u+MGQTN>@Md;_I&^^uVr1C`WEtmujYZ@P?b))u z!E+ z;djr(_~%a|3l`31ei1*a1p3!HdOmJ~`>mtO(vFuJg02#!Th^oL50*}oGVrFQg9fhW z#>T}MJXQ*GmZ@UZ`I9G0Qd0c0npn4|q(*1P5qy z+aTN_9pgT@%g%l1M(paDw}`yhcqu3!)V9{%ludJfWpTdTRYV;;3^C5t;Imfl$J$;lhUQOqzdr9a%P0@ z0UOIj)DB6xTp%6rD<2Mvmx?_*rcjpR?n=b+3FK+IReoQoKn@rx#!l~pYX`J{Q@qe@ zPd|NW2#(Cnnpqir1WW+=@_2GvNuGuuqc6BN9lK=J=j8g-y`I3ADY7yED`EAtwSHO2 zYC-6RXVM?~&>*e^sQdV54h7FtlD~K3@Y=2b3!l4kBl#lSPs`{E#-BU=T_mS!K7p^> zg9O9|s@MJS5rpGH5O(CqRZdyl8B{0U+BbOWgr8aAJBPS>-U(%E)>#G4?uXWPiu+2w z&C>=^V`4{cf6V7h*3=Ji-WIUbRz9L0zPyR~JkhdFc=UglxWbM681)e;g0@Mzj4XZJf>VvB zY+mz4vH`H7FsU^ad=i0>!Dt-~-<@+L2f8=2JGPX+aC0if{(FHJs+R+HPv(glUy z){%35jFJj{C_|Fa(q?uI05#?GNPD@QEFck09uf$>HLX*fU}hQqJC!<>eS*vcjH14y zRaI3+&MClWZl!&8WSc(>*@(`e2942XVv|@8Pz@gL-ApD^ikP+o;OPbw+Sb}yjKX{9 z0GQ6R6;4l21HXoN0anXK>C^&&u=KdaqQikI{7^;Y18xYPQT5UUKxxv#>@R@~IFb!Z zNQAE;=_h6e4#>%1g`iB^%>pEg8oTMoKp$EiIuVroJjln*$Oqf}5#NxyD6&ynxm7H` zvNY0FVNZ5?EbR}3Lea23a3IcDs8qIvVmOus{RtYm@3^<}OIN=j-4FXfhlO@CL#7<5 zR7$CLwJ2yO`I^K0{g*Dp)TLc&pChFvCE1g*XJS_Yt7c3!(0R_;ii#<+jvh1}WE;SlQJy{df-p>CYHCoSY;=Gr(miOs&}5rAI$CTd4TX=vJdG(x(H zNDZT9HB25k`EK_9WY>!uD<=KpGH6jFj@^_#4A=rVnkbK^hTgz0P7i2nZ#Pozr)uBA zdUFx19V%lQmLGoIiS*v!hD{YnHdrYc@H2} zoYGJrMv=3^!LH=CR1^x8l0w~K3W(yMx*{uoJ#svncBW|l5)_)8hQ5bu{j_?my;qbV z*30$EPlE%ora+R#dxq_4Y7ii6@OLFL8D{#JVz6xbL2D6-=zch<0|`mVjxt*FZ1073 zda&N7H2Ip-x1}Ve7-r18&|-*|mlNWZXvf;Cm1i8Aea%H$^Bb?JdPO#ikM$~TU?qE< zU%5N2*Pkht1J;q8U)7$O8oF}Gf!4Qo;xB_A?$;RMc$7baj-x!}R8QeH$Nv#u z&k_DfsTI&MrF#ue0<0!|H4<>@niK*ci$C(Yh%PfX*S3g$- zY$SZmOu2;b1%;Nm;&NrcA`OUaUXPWAE}d*jR6g1=;MWjUXkbGP(0QU z0a*0RhUW93N3zWcMePzjrzmd4GHrEuY5kTFZt=-%v87BbwgUNK+-$T@Kh1m^lh4f2{uDs4*bl@^w{!7=V?4mV192FUa<5qax~HsCn8Q@Kch zhD6t4QRDQyj6Z-809FAWkN4n%ROD5=_`08UWivZ^8sCXJ(H7Jy)Fvvhj{_8c6|6l? z)Q|3&AG%t&(Yba+|Q$%&ZT;ad&?Dy?LpF^PJF5FqoRkL_Z1xP>FDbnoaCj>)g1l1Agx<=)*uw5 zpZ&F_ZuL6XKmMW0%Mb#zdEq`=L`y&)@_nJ~ERQ3QInfo?mAP)EeC?Dk|!)#Rei2 zS`T4guq$xxg(~WSQ2P~e5B)gttBPZsS)}@L%@S<556ia?N&bZ2Z8-n#uyf*MLCAFN zwf1gN!dh7K^YZ(R#}<26g`$HrR3A3Ue#xT>OZ5+L%)b%SUmMdAG#a;C{>5X_*u`pf zRR3?Ojhs^uM%JXq27ZeMo{Qk#H(gl=dw&mnM e;WVvM6aD1Ty4K{C4D5KTojdJziuhB&-TwgCBSVP* literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/test_sign_eip_2930/00003.png b/tests/ragger/snapshots/stax/test_sign_eip_2930/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..c47bf6c29696d5abf2bedb760ed6bd6153291b95 GIT binary patch literal 8982 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 Date: Thu, 28 Mar 2024 16:35:40 +0100 Subject: [PATCH 08/35] Port 'test_eip1559' from 'speculos' to 'ragger' --- .../nanos/test_sign_eip_1559}/00000.png | Bin .../nanos/test_sign_eip_1559}/00001.png | Bin .../nanos/test_sign_eip_1559}/00002.png | Bin .../nanos/test_sign_eip_1559}/00003.png | Bin .../nanos/test_sign_eip_1559}/00004.png | Bin .../nanos/test_sign_eip_1559}/00005.png | Bin .../nanos/test_sign_eip_1559}/00006.png | Bin .../nanos/test_sign_eip_1559/00007.png | Bin 0 -> 349 bytes .../snapshots/nanosp/test_sign_eip_1559 | 1 + .../nanox/test_sign_eip_1559}/00000.png | Bin .../nanox/test_sign_eip_1559}/00001.png | Bin .../nanox/test_sign_eip_1559}/00002.png | Bin .../nanox/test_sign_eip_1559}/00003.png | Bin .../nanox/test_sign_eip_1559}/00004.png | Bin .../nanox/test_sign_eip_1559/00005.png | Bin 0 -> 381 bytes .../stax/test_sign_eip_1559/00000.png | Bin 0 -> 8691 bytes .../stax/test_sign_eip_1559/00001.png | Bin 0 -> 12213 bytes .../stax/test_sign_eip_1559/00002.png | Bin 0 -> 9597 bytes .../stax/test_sign_eip_1559/00003.png | Bin 0 -> 6108 bytes tests/ragger/test_eip1559.py | 62 +++++++++++++++++ tests/speculos/test_eip1559.py | 64 ------------------ 21 files changed, 63 insertions(+), 64 deletions(-) rename tests/{speculos/screenshots/eip1559/nanos/sign_eip_1559 => ragger/snapshots/nanos/test_sign_eip_1559}/00000.png (100%) rename tests/{speculos/screenshots/eip1559/nanos/sign_eip_1559 => ragger/snapshots/nanos/test_sign_eip_1559}/00001.png (100%) rename tests/{speculos/screenshots/eip1559/nanos/sign_eip_1559 => ragger/snapshots/nanos/test_sign_eip_1559}/00002.png (100%) rename tests/{speculos/screenshots/eip1559/nanos/sign_eip_1559 => ragger/snapshots/nanos/test_sign_eip_1559}/00003.png (100%) rename tests/{speculos/screenshots/eip1559/nanos/sign_eip_1559 => ragger/snapshots/nanos/test_sign_eip_1559}/00004.png (100%) rename tests/{speculos/screenshots/eip1559/nanos/sign_eip_1559 => ragger/snapshots/nanos/test_sign_eip_1559}/00005.png (100%) rename tests/{speculos/screenshots/eip1559/nanos/sign_eip_1559 => ragger/snapshots/nanos/test_sign_eip_1559}/00006.png (100%) create mode 100644 tests/ragger/snapshots/nanos/test_sign_eip_1559/00007.png create mode 120000 tests/ragger/snapshots/nanosp/test_sign_eip_1559 rename tests/{speculos/screenshots/eip1559/nanox/sign_eip_1559 => ragger/snapshots/nanox/test_sign_eip_1559}/00000.png (100%) rename tests/{speculos/screenshots/eip1559/nanox/sign_eip_1559 => ragger/snapshots/nanox/test_sign_eip_1559}/00001.png (100%) rename tests/{speculos/screenshots/eip1559/nanox/sign_eip_1559 => ragger/snapshots/nanox/test_sign_eip_1559}/00002.png (100%) rename tests/{speculos/screenshots/eip1559/nanox/sign_eip_1559 => ragger/snapshots/nanox/test_sign_eip_1559}/00003.png (100%) rename tests/{speculos/screenshots/eip1559/nanox/sign_eip_1559 => ragger/snapshots/nanox/test_sign_eip_1559}/00004.png (100%) create mode 100644 tests/ragger/snapshots/nanox/test_sign_eip_1559/00005.png create mode 100644 tests/ragger/snapshots/stax/test_sign_eip_1559/00000.png create mode 100644 tests/ragger/snapshots/stax/test_sign_eip_1559/00001.png create mode 100644 tests/ragger/snapshots/stax/test_sign_eip_1559/00002.png create mode 100644 tests/ragger/snapshots/stax/test_sign_eip_1559/00003.png create mode 100644 tests/ragger/test_eip1559.py delete mode 100644 tests/speculos/test_eip1559.py diff --git a/tests/speculos/screenshots/eip1559/nanos/sign_eip_1559/00000.png b/tests/ragger/snapshots/nanos/test_sign_eip_1559/00000.png similarity index 100% rename from tests/speculos/screenshots/eip1559/nanos/sign_eip_1559/00000.png rename to tests/ragger/snapshots/nanos/test_sign_eip_1559/00000.png diff --git a/tests/speculos/screenshots/eip1559/nanos/sign_eip_1559/00001.png b/tests/ragger/snapshots/nanos/test_sign_eip_1559/00001.png similarity index 100% rename from tests/speculos/screenshots/eip1559/nanos/sign_eip_1559/00001.png rename to tests/ragger/snapshots/nanos/test_sign_eip_1559/00001.png diff --git a/tests/speculos/screenshots/eip1559/nanos/sign_eip_1559/00002.png b/tests/ragger/snapshots/nanos/test_sign_eip_1559/00002.png similarity index 100% rename from tests/speculos/screenshots/eip1559/nanos/sign_eip_1559/00002.png rename to tests/ragger/snapshots/nanos/test_sign_eip_1559/00002.png diff --git a/tests/speculos/screenshots/eip1559/nanos/sign_eip_1559/00003.png b/tests/ragger/snapshots/nanos/test_sign_eip_1559/00003.png similarity index 100% rename from tests/speculos/screenshots/eip1559/nanos/sign_eip_1559/00003.png rename to tests/ragger/snapshots/nanos/test_sign_eip_1559/00003.png diff --git a/tests/speculos/screenshots/eip1559/nanos/sign_eip_1559/00004.png b/tests/ragger/snapshots/nanos/test_sign_eip_1559/00004.png similarity index 100% rename from tests/speculos/screenshots/eip1559/nanos/sign_eip_1559/00004.png rename to tests/ragger/snapshots/nanos/test_sign_eip_1559/00004.png diff --git a/tests/speculos/screenshots/eip1559/nanos/sign_eip_1559/00005.png b/tests/ragger/snapshots/nanos/test_sign_eip_1559/00005.png similarity index 100% rename from tests/speculos/screenshots/eip1559/nanos/sign_eip_1559/00005.png rename to tests/ragger/snapshots/nanos/test_sign_eip_1559/00005.png diff --git a/tests/speculos/screenshots/eip1559/nanos/sign_eip_1559/00006.png b/tests/ragger/snapshots/nanos/test_sign_eip_1559/00006.png similarity index 100% rename from tests/speculos/screenshots/eip1559/nanos/sign_eip_1559/00006.png rename to tests/ragger/snapshots/nanos/test_sign_eip_1559/00006.png diff --git a/tests/ragger/snapshots/nanos/test_sign_eip_1559/00007.png b/tests/ragger/snapshots/nanos/test_sign_eip_1559/00007.png new file mode 100644 index 0000000000000000000000000000000000000000..ce795f34e8569e986af689fded3b59c9a8af2961 GIT binary patch literal 349 zcmV-j0iyniP)O41}p;-~WL<=z+0=1Om1tEU@3H#qtw22}5*_5JCvCo4!52c$FXo$VhXU?0M$^Bekqgf%Ka;M*^X|4 zEs9YCQ(xfJKmNC#+8dY%2&wT+>D^<3C%}_*k1^mvtO~`RE00000NkvXXu0mjf-kqOA literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanosp/test_sign_eip_1559 b/tests/ragger/snapshots/nanosp/test_sign_eip_1559 new file mode 120000 index 0000000..bc60254 --- /dev/null +++ b/tests/ragger/snapshots/nanosp/test_sign_eip_1559 @@ -0,0 +1 @@ +../nanox/test_sign_eip_1559 \ No newline at end of file diff --git a/tests/speculos/screenshots/eip1559/nanox/sign_eip_1559/00000.png b/tests/ragger/snapshots/nanox/test_sign_eip_1559/00000.png similarity index 100% rename from tests/speculos/screenshots/eip1559/nanox/sign_eip_1559/00000.png rename to tests/ragger/snapshots/nanox/test_sign_eip_1559/00000.png diff --git a/tests/speculos/screenshots/eip1559/nanox/sign_eip_1559/00001.png b/tests/ragger/snapshots/nanox/test_sign_eip_1559/00001.png similarity index 100% rename from tests/speculos/screenshots/eip1559/nanox/sign_eip_1559/00001.png rename to tests/ragger/snapshots/nanox/test_sign_eip_1559/00001.png diff --git a/tests/speculos/screenshots/eip1559/nanox/sign_eip_1559/00002.png b/tests/ragger/snapshots/nanox/test_sign_eip_1559/00002.png similarity index 100% rename from tests/speculos/screenshots/eip1559/nanox/sign_eip_1559/00002.png rename to tests/ragger/snapshots/nanox/test_sign_eip_1559/00002.png diff --git a/tests/speculos/screenshots/eip1559/nanox/sign_eip_1559/00003.png b/tests/ragger/snapshots/nanox/test_sign_eip_1559/00003.png similarity index 100% rename from tests/speculos/screenshots/eip1559/nanox/sign_eip_1559/00003.png rename to tests/ragger/snapshots/nanox/test_sign_eip_1559/00003.png diff --git a/tests/speculos/screenshots/eip1559/nanox/sign_eip_1559/00004.png b/tests/ragger/snapshots/nanox/test_sign_eip_1559/00004.png similarity index 100% rename from tests/speculos/screenshots/eip1559/nanox/sign_eip_1559/00004.png rename to tests/ragger/snapshots/nanox/test_sign_eip_1559/00004.png diff --git a/tests/ragger/snapshots/nanox/test_sign_eip_1559/00005.png b/tests/ragger/snapshots/nanox/test_sign_eip_1559/00005.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_sign_eip_1559/00000.png b/tests/ragger/snapshots/stax/test_sign_eip_1559/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..f992e718a17c0a7952eb569a7d3a3ac7662fe27e GIT binary patch literal 8691 zcmeHti#yZ*`@ck~94bNxounF3&Zl)!sqpsJn2=LQ%pqnD*+M8{MUhk9QH14~ISg}N z42xlynL`XShZcryzOO#N>-zl%zu)(JeXsX+J+EtfzV>?Ve%`z9$9+E@&%ON1;-=Vs zx%~nH0%B&juKz6{u>sRiDWU*+h^xWIj7?<_%MWNy2 z8pnV9=jkjW8x^a3+*#ys)N|$Iw?uf{8gyZG?1e+~*tEcGeArvGpoFw8P-F}o>J+}i#=<&5n3$#(1C|-vht9BeFGF87wa^q%A0I&=MpB8wBA_wYJHv=q5d=XY>7`0cX#;v30lMrwX%d+6 zP9EM-@54Ll6-YKH*>Cecj3c_Qq#UfSm3z(n@=N|1Ik8zYd+BSB zhjr?VL3=whH#SBdL-VZO@fAPnnCdW8_frg2^RlT$%+#tTO&Lc;EunkqXd~xa&XX#F z2Xqz0?t+Qf>PnO3Lh zrWTNktfF`vd453YXKl@HlcZ_#e2|{P5J>fbTx5(qH)&l%6u4J9m!5MZ^t|7nI~q+Z4nhT-)gFw#M}g6TeZ90 zkX8>8zY&M_unRWHnbun`zDM?YcdB#d$p|ZWDJ55RoK7z;$|W2NJP3V%+AJ9hD=wfBQGl3-e?Dfxxl3qb}z zV3pq#MBuXN$ZyqMHH5I_QLIS4%bO%u=lwSp-hRTFXnFc6q>$@NMf`tL=?bJe=4PYIulb4+gXYG^`h>x)`xFe>ToSnbg0>;3p25L9Yh+Z3~ z#)bFA#o!WY1I5fb)%`M-Lyp>o#MzojyU@yIWn)oPZ5%DBLs|M{S($@uEdNrsE^tZW zMA^#gQ)V7IqOBUAnEU^{{i2Unzm)VRE6buX#jcGLo=br_E_xf%R7i9dNcIE+)^TF%wA)B*FIezG^L+Vu8d5}I1NFgEU`;izD{ zmB%6WyN5jU%)CTh;lNV5#$CIhuT+i;92JuOA2^0=y{K3i)iX`-qMq~Y>wOq3j2QrC zrH%Vm@9;M0s2yH4%{RwUT4dr`dNGJ-DIC{2Ig9<|6=sr?c91`ii;ZOgj?o;G>q;;x0-_mytBv5+2B34@^X<9Wt zBY$7iKPAla&QYwfB0AVlQ?yktiL7-DlTmrQ)-DyS;4t(>fy6U9$3w*ue58CKemY1DleMe3ECWN93f({CKWvnmv)?D-S@p2>AxPJ1gbJeT>WvX62 zD8$SBr4-UW|f1zKi!9ktBk32HmI;jzS`>x-2-)g20W%%4vw`M8R zzTsH9{Z-FJ#+~FgCknSAjQ#8=wXRo=GMWw^a*~2lnDE6X52y5&p0{UJ(#)N2-YAge zxw&4^9K*)B=vh5e7Wrkg{FHevBAUJRIYYG{>I~OuqYsx`kJ7s>j&cKiFsX-LWqFWs zTC!W4(r0rL;yrl3FLt{O))FkXIEW$4I3s>CDXv%D(WZq2 zETWCy@48ezn1fQ($UZ8w z+^w_(7c9Oc)fjk!hIv%u?aYu}L%-x#Jz5kvX2_S8X^j}y=Zp!`b}gi}fn)aAQV_Pz z=C3*%AC$V=iCawcruLrWo|bs9PADRg8RIigjyjA+9kv*t8)p94jF8zo)T6!CcL{o^ z5#h=APmVmYCWKnJSIRAUULM%(7YuKd^FCtH);zJgaZ7U#Wk&iDEQOCnw~syFjMRqe zrniC#d(xh=F^a@D?WP&lS9c1I8hT^kbo6)kNbSHxU%4HQL;WR`UZ;!LlKAg`_<8z# z^O^Ec9-$yJfAyLMDNsJfK`MqW6u42~H?D`Om*t;ZsKds;!xenUFU)LG`n~MCLIO=X zF3F{N=jmqT7cxg#)tYV*-2n@nyyh*{?M}lZ;5P>-H<*L7Ca{R#GF+^2&Sgz}IQf*$3OZ zwL1cQti^rX6O7YU_4|2GO`MFDrpQ`7=fIX{&T?%EaH_T7MV*o9^9^>dkjJ`=Exp?V zd3HLHnV_U;KaMnhGUB6?ZOA(oO*(FI0lXr2tOPPA=}62 zG-CcGG|QiEYQL z2X1rR2r;;xr{!G(%AHLMWsmWvUmU|^ThqV;so4$cWe&wZgl$mH&F}XnxS*GZy@HJt zX)X&JQB?ceNrdT1e@?$RX5Z4s*UBQnI2xB%8Lt{YCYPDN$>I2K`l8z|sDD)2oBg2o z!jw{nq<4^Zo05Ft`DCBN>zfUWJcP~`xSoE-*hw~4U4~mQxb)b>=z*y1o(<&Z36fC- zo_5W%dHKD4SxGxLgXk>%)Sh@cK9{|@7}asa$8I0byBmstLm=BcB%WT{pJVKq7%W_c zH?^-oguZF|l@qX5n$xlDAr~$TgFyWJ{4#qy78O(FPy8hnV;JUZGG6YhIkq?iQTYA% z@luZOCf%VSV|v!H1qan$V6j+~Qm1H1&=)|>r#TTXcyZ;1hftK{y@bFmL)h#byZ!X4|&&9>M%y4+`F0#^HhOLAl zwb93u|Fl#RnuFpavu{F8!uPtSx~~h3ac>qISX;d6$O_R~Y<3OuSkCdw4sM3-BXAg~ zm2L4tr}vqjEsPwJo2Q*ks=Hk(j@D~T(Sg>tGv4EwQ+ng9V64FoyB9>f&C&nO1_F&) zxdE<6lv*fgWZ&@4$RAoBnm^0}2-^|VmVd2-fs^sySGPB}@NZ7jpi(9kwk*>F(ca%mJ=7V( zT!2+L_1SKm2^VSIGT)nXgIgT0IlH<&vyL|#{l2|?RNR9!G)!Ob=$oHcI{Oj4%*|PT z(@^J=So-sV7)T)g!B;bpiI_uBfrkhG9sl~^e_0H0w-*KL-vR{@%j)Uu*Ai=8k?&$t ziU5ihuPh=S*IG%80;sy7A==D=8q8mz}m{j#9sXh?rQ@`wg;! z-sah1+@Am@7~78)FHlpji-uEm(%x#1QyAVSDRkT3K5E2duVDk0B0cv zZ(6-&)S`aqnpe_%zfM-tmsxEZ0Sa`?Z78l&ZDD#k59~(8Zu7>$J9(z)#= z8pMj;#lRs~dHL9nFbp^#`BX`XL4%d=@e*>xtm|F|97}~!v2m>*Q=->TZpi~WK*HJ) z{y|aikbEA}kJf4>)gGWg2#}2pZh2+ym+h((a8L;Dh&Eq*?lOlc8L7{1#Il0DAx0Z8 zveq__A7V5+!KKn&gCrG}v1>cU#_FN!?yW z<*(K-K-zMUNTZA4M|>7@Y4e*Ex37F)l$f}BhLg2;FC%Q+19@bg+z1k1{o^;T1dTs! zc9GUm9(L0+_)c-Is)O-NNflJG21M)?1hj{wmP~o=xmnj`clp7>5@}N_$U8g>dO#af z@G^JKU+-t=c&*o?P%XU==gkh|*B+XqClJe>7j>jsM{n~PC7(U2sVW}TQghuO7`1~4 zkf#jhbIO%!aV1>xFyFB~nHo{N`$NN4Q z+-Q*>|DX6ITyJN)_hx6~4q+?v5Y*Bd@~-Oa6n)IRc-}X!^oLfD^K?+yPpcI}@5V4S zuwC*g%g`SS%h#Qa6F);d5B_*wZt%i!QU<)_c0d86G8{+NpSl_x);1LFy?NZAZ?Owx z#i3j-*iKm^v0r`|<@+B;r1-9CnBJ*tRxKYizYyxW4rIiL57)@CK6Ux$)_}q40DeZd z+^S^j6&$c;dO?LB2Z5Li*)Z(oBad{4-|)mFxw##K34Gew?B08v2J7lw^wp}(-jOJo z8BYv*tv1w=HgYC9`VOzWl+Q3HE1+-6Csz43Urt%^ssK@abl{GDI`Rleb%1fS=Rc4< zpR7;WR!fsr`kuI+K`e_vxG5WpB;EPI(Bb2(lby$laltr8&*1QT8k|e9iVnmE`L!2X z<_WovsKJ#ZHCH46KDYF`CUIfs#g&6?0o=EgC-pjyp_XobQf2I(8#-F%DW^KytbAL? zU@z)FLlg*XCz(nrYs_qhGT>uWF!;>D%*W_w78?)7RsGGovWYJJvy10&(AIQiN1Yrj z4}cQgu2{-y-HXx{OS{yu>5!6quQ4kVoyZ-%rHX3pAb@#!{+1jcD(h~$q2^(1cS*)u zel4u@7T4<0VH2kvF%(%P7si*9d8$q5j*4hM%R538ZS_ZfO17py`@a%RYAkM4rKvbq z;?A>%7qcUu1wNqV{y#}KJA1D98!6^EiVD=Q=*lAfS`opT0uwqJ&;L974N@OKA}Azv z;iVz08hA{S2UH2J1B|MOCh!?9vK;{mrhQYVWlYOQe4>;*t#dmZfKjkm0wg%nyvt)wc9`->jYb;VnBV$P!Wkzjc?I#2$-ViV9$>Uck`k+ zzV3EN*YBH88*4Xu8SIMF_Wj4i;|3F0MD|!$I%Bg=5|1r+45)QzWW=?~K89ACS^>(y zq93zmczGjOn9t$VIH+%^Ya~qz2TsoCs!qj)s|$Kd;kn0O|LAA^;pXZdrN&LsDBgFL>VE8b3ARL8|b<{EW8y zfj&;2KbZ9;h-0rA$SPi}ZdUSjEjLRRU1Fq%3jk&L%gZJ}bcx=Zey3c^oWx+yJXy6A zKeX}bKZOgHuHyX`T2QR$O3e~_-@KDJS{Bz0$O zu-)OGZDOs1dNgra1}HA@{ppNa!$&e0-kU$3f=e@(`Z@A&iei(p0nN`lV;0~@N4Z`2 z>$q}#e%v2S0&1@#MKZ5smc)z|gl8NX+^L zUJE)dtH1iLIQL8?%@-9daw=25Pqd-4N^}|Un>(c1L;TfMO^zt}B!&reCaqXXEE+g4 zVg&cXD|;p5;PA@gf-NqI4CHrMP0+;p zaH^}5OXUdk!E>N}^Wsv0NAwy<{((IOAkT0|+`Wpfx3qiN_;q04fzsQ7>S`CBHPxZD zA&auWSq2hO2-gw5;>=3JNgJXbAYupLwDbzq{kGq6Lwu36lah!HrOA!IkD+gRU&O7Z zvMGGiZJ29$i4R~|NJBTx0q+MKmcZ!8mWBc+0sUi}!x{Fib|YqiOTFWQ^S>446bC$& z*Hs?_t0|%O5`%GoZ#iqsH1N`xUo@5Rf7bIUFJUT+MDertg9v4@nv&CHV^sr*IvT#E zb>;U8$el{g?kQs8uJ84i8TG5zvyTX0dCl1TeG=y;i59D!TilO&nCe8ClK{l z@C9ry>Gem1P0csSDaiSjiZT~-a26Einn7Q(oB~z5VI8tgy?>In57YkWu=*qd!#Vi~ zlT(A*&>*qdn?}a{p8Wa%g&Y#2*>lREbhl`0nf3Jh8aFtlEvcca#HoI-p)W>**YGBP ze&$I)OuaYD=^NdrJeqWPtMz7iJgTcg0cVW9dDrL#ik+CpR+`G$3=^PGE_sIhbd*Hg z{&nPn;`>V7CC6>s#p=z3cGt1f+;ftiy*(R{UNFORJgJ_^wF|C@pvflahr2byM)Xr? zxbw)C%PEu_DJ!_m-N$NCLSr#aTfY32tYrla;d%iajMk4%kB1eBhbB`BR2 kD|~rRssfqAYU> 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 R1jg|>j1A4NS6y|9|38+2qIUoQ literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/test_sign_eip_1559/00002.png b/tests/ragger/snapshots/stax/test_sign_eip_1559/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..bc1ca9382cfe2a299a5bfb35c76039d7a8ff0893 GIT binary patch literal 9597 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 H_TWDNq$iJk literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/test_sign_eip_1559/00003.png b/tests/ragger/snapshots/stax/test_sign_eip_1559/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..a21279c8a0a89933b09833df3871d1ab2b36adf5 GIT binary patch literal 6108 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 Date: Thu, 28 Mar 2024 19:52:15 +0100 Subject: [PATCH 09/35] Port 'old_test_eip191' from 'speculos' to 'ragger' --- .../test_personal_sign_metamask/00000.png} | Bin .../test_personal_sign_metamask/00001.png} | Bin .../test_personal_sign_metamask}/00002.png | Bin .../test_personal_sign_metamask/00003.png | Bin 0 -> 349 bytes .../test_personal_sign_non_ascii/00000.png | Bin 0 -> 497 bytes .../test_personal_sign_non_ascii/00001.png | Bin 0 -> 498 bytes .../test_personal_sign_non_ascii/00002.png | Bin 0 -> 480 bytes .../test_personal_sign_non_ascii/00003.png | Bin 0 -> 440 bytes .../test_personal_sign_non_ascii/00004.png} | Bin .../test_personal_sign_non_ascii/00005.png | Bin 0 -> 349 bytes .../test_personal_sign_reject}/00000.png | Bin .../test_personal_sign_reject}/00001.png | Bin .../test_personal_sign_reject/00002.png} | Bin .../test_personal_sign_reject}/00003.png | Bin .../nanos/test_personal_sign_reject/00004.png | Bin 0 -> 349 bytes .../nanosp/test_personal_sign_metamask | 1 + .../nanosp/test_personal_sign_non_ascii | 1 + .../nanosp/test_personal_sign_opensea | 1 + .../nanosp/test_personal_sign_reject | 1 + .../test_personal_sign_metamask/00000.png | Bin 0 -> 623 bytes .../test_personal_sign_metamask/00001.png | Bin 0 -> 457 bytes .../test_personal_sign_metamask/00002.png | Bin 0 -> 381 bytes .../test_personal_sign_non_ascii/00000.png | Bin 0 -> 917 bytes .../test_personal_sign_non_ascii/00001.png | Bin 0 -> 526 bytes .../test_personal_sign_non_ascii/00002.png | Bin 0 -> 457 bytes .../test_personal_sign_non_ascii/00003.png | Bin 0 -> 381 bytes .../test_personal_sign_opensea/00000.png | Bin 0 -> 857 bytes .../test_personal_sign_opensea/00001.png | Bin 0 -> 832 bytes .../test_personal_sign_opensea/00002.png | Bin 0 -> 720 bytes .../test_personal_sign_opensea/00003.png | Bin 0 -> 850 bytes .../test_personal_sign_opensea/00004.png | Bin 0 -> 626 bytes .../test_personal_sign_opensea/00005.png | Bin 0 -> 621 bytes .../test_personal_sign_opensea/00006.png | Bin 0 -> 912 bytes .../test_personal_sign_opensea/00007.png | Bin 0 -> 692 bytes .../test_personal_sign_opensea/00008.png | Bin 0 -> 457 bytes .../test_personal_sign_opensea/00009.png | Bin 0 -> 381 bytes .../test_personal_sign_reject}/00000.png | Bin .../nanox/test_personal_sign_reject/00001.png | Bin 0 -> 500 bytes .../nanox/test_personal_sign_reject/00002.png | Bin 0 -> 457 bytes .../test_personal_sign_reject}/00003.png | Bin .../nanox/test_personal_sign_reject/00004.png | Bin 0 -> 381 bytes .../test_personal_sign_metamask/00000.png | Bin 0 -> 6940 bytes .../test_personal_sign_metamask/00001.png | Bin 0 -> 10438 bytes .../test_personal_sign_metamask/00002.png | Bin 0 -> 7708 bytes .../test_personal_sign_metamask/00003.png | Bin 0 -> 5599 bytes .../test_personal_sign_non_ascii/00000.png | Bin 0 -> 6940 bytes .../test_personal_sign_non_ascii/00001.png | Bin 0 -> 15660 bytes .../test_personal_sign_non_ascii/00002.png | Bin 0 -> 7708 bytes .../test_personal_sign_non_ascii/00003.png | Bin 0 -> 5599 bytes .../stax/test_personal_sign_opensea/00000.png | Bin 0 -> 6940 bytes .../stax/test_personal_sign_opensea/00001.png | Bin 0 -> 26370 bytes .../stax/test_personal_sign_opensea/00002.png | Bin 0 -> 22798 bytes .../stax/test_personal_sign_opensea/00003.png | Bin 0 -> 7708 bytes .../stax/test_personal_sign_opensea/00004.png | Bin 0 -> 5599 bytes .../stax/test_personal_sign_reject/00000.png | Bin 0 -> 6940 bytes .../stax/test_personal_sign_reject/00001.png | Bin 0 -> 8327 bytes .../stax/test_personal_sign_reject/00002.png | Bin 0 -> 6088 bytes .../stax/test_personal_sign_reject/00003.png | Bin 0 -> 10883 bytes tests/ragger/test_eip191.py | 165 ++++++++++++++ tests/speculos/old_test_eip191.py | 209 ------------------ .../nanos/personal_sign_non_ascii/00000.png | Bin 368 -> 0 bytes .../nanos/personal_sign_non_ascii/00001.png | Bin 492 -> 0 bytes .../nanos/personal_sign_non_ascii/00002.png | Bin 489 -> 0 bytes .../nanos/personal_sign_non_ascii/00003.png | Bin 474 -> 0 bytes .../nanos/personal_sign_non_ascii/00004.png | Bin 490 -> 0 bytes .../nanos/personal_sign_opensea/00000.png | Bin 368 -> 0 bytes .../nanos/personal_sign_opensea/00001.png | Bin 475 -> 0 bytes .../nanos/personal_sign_opensea/00002.png | Bin 471 -> 0 bytes .../nanos/personal_sign_opensea/00003.png | Bin 465 -> 0 bytes .../nanos/personal_sign_opensea/00004.png | Bin 449 -> 0 bytes .../nanos/personal_sign_opensea/00005.png | Bin 466 -> 0 bytes .../nanos/personal_sign_opensea/00006.png | Bin 407 -> 0 bytes .../nanos/personal_sign_reject/00000.png | Bin 368 -> 0 bytes .../nanos/personal_sign_reject/00004.png | Bin 449 -> 0 bytes .../nanox/personal_sign_metamask/00001.png | Bin 624 -> 0 bytes .../nanox/personal_sign_metamask/00002.png | Bin 463 -> 0 bytes .../nanox/personal_sign_non_ascii/00000.png | Bin 415 -> 0 bytes .../nanox/personal_sign_non_ascii/00001.png | Bin 882 -> 0 bytes .../nanox/personal_sign_non_ascii/00002.png | Bin 570 -> 0 bytes .../nanox/personal_sign_non_ascii/00003.png | Bin 463 -> 0 bytes .../nanox/personal_sign_opensea/00000.png | Bin 415 -> 0 bytes .../nanox/personal_sign_opensea/00001.png | Bin 853 -> 0 bytes .../nanox/personal_sign_opensea/00002.png | Bin 852 -> 0 bytes .../nanox/personal_sign_opensea/00003.png | Bin 837 -> 0 bytes .../nanox/personal_sign_opensea/00004.png | Bin 814 -> 0 bytes .../nanox/personal_sign_opensea/00005.png | Bin 522 -> 0 bytes .../nanox/personal_sign_opensea/00006.png | Bin 463 -> 0 bytes .../nanox/personal_sign_reject/00000.png | Bin 415 -> 0 bytes .../nanox/personal_sign_reject/00001.png | Bin 503 -> 0 bytes .../nanox/personal_sign_reject/00002.png | Bin 463 -> 0 bytes 90 files changed, 169 insertions(+), 209 deletions(-) rename tests/{speculos/screenshots/eip191/nanos/personal_sign_metamask/00001.png => ragger/snapshots/nanos/test_personal_sign_metamask/00000.png} (100%) rename tests/{speculos/screenshots/eip191/nanos/personal_sign_metamask/00002.png => ragger/snapshots/nanos/test_personal_sign_metamask/00001.png} (100%) rename tests/{speculos/screenshots/eip191/nanos/personal_sign_reject => ragger/snapshots/nanos/test_personal_sign_metamask}/00002.png (100%) create mode 100644 tests/ragger/snapshots/nanos/test_personal_sign_metamask/00003.png create mode 100644 tests/ragger/snapshots/nanos/test_personal_sign_non_ascii/00000.png create mode 100644 tests/ragger/snapshots/nanos/test_personal_sign_non_ascii/00001.png create mode 100644 tests/ragger/snapshots/nanos/test_personal_sign_non_ascii/00002.png create mode 100644 tests/ragger/snapshots/nanos/test_personal_sign_non_ascii/00003.png rename tests/{speculos/screenshots/eip191/nanos/personal_sign_metamask/00003.png => ragger/snapshots/nanos/test_personal_sign_non_ascii/00004.png} (100%) create mode 100644 tests/ragger/snapshots/nanos/test_personal_sign_non_ascii/00005.png rename tests/{speculos/screenshots/eip191/nanos/personal_sign_metamask => ragger/snapshots/nanos/test_personal_sign_reject}/00000.png (100%) rename tests/{speculos/screenshots/eip191/nanos/personal_sign_reject => ragger/snapshots/nanos/test_personal_sign_reject}/00001.png (100%) rename tests/{speculos/screenshots/eip191/nanos/personal_sign_non_ascii/00005.png => ragger/snapshots/nanos/test_personal_sign_reject/00002.png} (100%) rename tests/{speculos/screenshots/eip191/nanos/personal_sign_reject => ragger/snapshots/nanos/test_personal_sign_reject}/00003.png (100%) create mode 100644 tests/ragger/snapshots/nanos/test_personal_sign_reject/00004.png create mode 120000 tests/ragger/snapshots/nanosp/test_personal_sign_metamask create mode 120000 tests/ragger/snapshots/nanosp/test_personal_sign_non_ascii create mode 120000 tests/ragger/snapshots/nanosp/test_personal_sign_opensea create mode 120000 tests/ragger/snapshots/nanosp/test_personal_sign_reject create mode 100644 tests/ragger/snapshots/nanox/test_personal_sign_metamask/00000.png create mode 100644 tests/ragger/snapshots/nanox/test_personal_sign_metamask/00001.png create mode 100644 tests/ragger/snapshots/nanox/test_personal_sign_metamask/00002.png create mode 100644 tests/ragger/snapshots/nanox/test_personal_sign_non_ascii/00000.png create mode 100644 tests/ragger/snapshots/nanox/test_personal_sign_non_ascii/00001.png create mode 100644 tests/ragger/snapshots/nanox/test_personal_sign_non_ascii/00002.png create mode 100644 tests/ragger/snapshots/nanox/test_personal_sign_non_ascii/00003.png create mode 100644 tests/ragger/snapshots/nanox/test_personal_sign_opensea/00000.png create mode 100644 tests/ragger/snapshots/nanox/test_personal_sign_opensea/00001.png create mode 100644 tests/ragger/snapshots/nanox/test_personal_sign_opensea/00002.png create mode 100644 tests/ragger/snapshots/nanox/test_personal_sign_opensea/00003.png create mode 100644 tests/ragger/snapshots/nanox/test_personal_sign_opensea/00004.png create mode 100644 tests/ragger/snapshots/nanox/test_personal_sign_opensea/00005.png create mode 100644 tests/ragger/snapshots/nanox/test_personal_sign_opensea/00006.png create mode 100644 tests/ragger/snapshots/nanox/test_personal_sign_opensea/00007.png create mode 100644 tests/ragger/snapshots/nanox/test_personal_sign_opensea/00008.png create mode 100644 tests/ragger/snapshots/nanox/test_personal_sign_opensea/00009.png rename tests/{speculos/screenshots/eip191/nanox/personal_sign_metamask => ragger/snapshots/nanox/test_personal_sign_reject}/00000.png (100%) create mode 100644 tests/ragger/snapshots/nanox/test_personal_sign_reject/00001.png create mode 100644 tests/ragger/snapshots/nanox/test_personal_sign_reject/00002.png rename tests/{speculos/screenshots/eip191/nanox/personal_sign_reject => ragger/snapshots/nanox/test_personal_sign_reject}/00003.png (100%) create mode 100644 tests/ragger/snapshots/nanox/test_personal_sign_reject/00004.png create mode 100644 tests/ragger/snapshots/stax/test_personal_sign_metamask/00000.png create mode 100644 tests/ragger/snapshots/stax/test_personal_sign_metamask/00001.png create mode 100644 tests/ragger/snapshots/stax/test_personal_sign_metamask/00002.png create mode 100644 tests/ragger/snapshots/stax/test_personal_sign_metamask/00003.png create mode 100644 tests/ragger/snapshots/stax/test_personal_sign_non_ascii/00000.png create mode 100644 tests/ragger/snapshots/stax/test_personal_sign_non_ascii/00001.png create mode 100644 tests/ragger/snapshots/stax/test_personal_sign_non_ascii/00002.png create mode 100644 tests/ragger/snapshots/stax/test_personal_sign_non_ascii/00003.png create mode 100644 tests/ragger/snapshots/stax/test_personal_sign_opensea/00000.png create mode 100644 tests/ragger/snapshots/stax/test_personal_sign_opensea/00001.png create mode 100644 tests/ragger/snapshots/stax/test_personal_sign_opensea/00002.png create mode 100644 tests/ragger/snapshots/stax/test_personal_sign_opensea/00003.png create mode 100644 tests/ragger/snapshots/stax/test_personal_sign_opensea/00004.png create mode 100644 tests/ragger/snapshots/stax/test_personal_sign_reject/00000.png create mode 100644 tests/ragger/snapshots/stax/test_personal_sign_reject/00001.png create mode 100644 tests/ragger/snapshots/stax/test_personal_sign_reject/00002.png create mode 100644 tests/ragger/snapshots/stax/test_personal_sign_reject/00003.png create mode 100644 tests/ragger/test_eip191.py delete mode 100644 tests/speculos/old_test_eip191.py delete mode 100644 tests/speculos/screenshots/eip191/nanos/personal_sign_non_ascii/00000.png delete mode 100644 tests/speculos/screenshots/eip191/nanos/personal_sign_non_ascii/00001.png delete mode 100644 tests/speculos/screenshots/eip191/nanos/personal_sign_non_ascii/00002.png delete mode 100644 tests/speculos/screenshots/eip191/nanos/personal_sign_non_ascii/00003.png delete mode 100644 tests/speculos/screenshots/eip191/nanos/personal_sign_non_ascii/00004.png delete mode 100644 tests/speculos/screenshots/eip191/nanos/personal_sign_opensea/00000.png delete mode 100644 tests/speculos/screenshots/eip191/nanos/personal_sign_opensea/00001.png delete mode 100644 tests/speculos/screenshots/eip191/nanos/personal_sign_opensea/00002.png delete mode 100644 tests/speculos/screenshots/eip191/nanos/personal_sign_opensea/00003.png delete mode 100644 tests/speculos/screenshots/eip191/nanos/personal_sign_opensea/00004.png delete mode 100644 tests/speculos/screenshots/eip191/nanos/personal_sign_opensea/00005.png delete mode 100644 tests/speculos/screenshots/eip191/nanos/personal_sign_opensea/00006.png delete mode 100644 tests/speculos/screenshots/eip191/nanos/personal_sign_reject/00000.png delete mode 100644 tests/speculos/screenshots/eip191/nanos/personal_sign_reject/00004.png delete mode 100644 tests/speculos/screenshots/eip191/nanox/personal_sign_metamask/00001.png delete mode 100644 tests/speculos/screenshots/eip191/nanox/personal_sign_metamask/00002.png delete mode 100644 tests/speculos/screenshots/eip191/nanox/personal_sign_non_ascii/00000.png delete mode 100644 tests/speculos/screenshots/eip191/nanox/personal_sign_non_ascii/00001.png delete mode 100644 tests/speculos/screenshots/eip191/nanox/personal_sign_non_ascii/00002.png delete mode 100644 tests/speculos/screenshots/eip191/nanox/personal_sign_non_ascii/00003.png delete mode 100644 tests/speculos/screenshots/eip191/nanox/personal_sign_opensea/00000.png delete mode 100644 tests/speculos/screenshots/eip191/nanox/personal_sign_opensea/00001.png delete mode 100644 tests/speculos/screenshots/eip191/nanox/personal_sign_opensea/00002.png delete mode 100644 tests/speculos/screenshots/eip191/nanox/personal_sign_opensea/00003.png delete mode 100644 tests/speculos/screenshots/eip191/nanox/personal_sign_opensea/00004.png delete mode 100644 tests/speculos/screenshots/eip191/nanox/personal_sign_opensea/00005.png delete mode 100644 tests/speculos/screenshots/eip191/nanox/personal_sign_opensea/00006.png delete mode 100644 tests/speculos/screenshots/eip191/nanox/personal_sign_reject/00000.png delete mode 100644 tests/speculos/screenshots/eip191/nanox/personal_sign_reject/00001.png delete mode 100644 tests/speculos/screenshots/eip191/nanox/personal_sign_reject/00002.png diff --git a/tests/speculos/screenshots/eip191/nanos/personal_sign_metamask/00001.png b/tests/ragger/snapshots/nanos/test_personal_sign_metamask/00000.png similarity index 100% rename from tests/speculos/screenshots/eip191/nanos/personal_sign_metamask/00001.png rename to tests/ragger/snapshots/nanos/test_personal_sign_metamask/00000.png diff --git a/tests/speculos/screenshots/eip191/nanos/personal_sign_metamask/00002.png b/tests/ragger/snapshots/nanos/test_personal_sign_metamask/00001.png similarity index 100% rename from tests/speculos/screenshots/eip191/nanos/personal_sign_metamask/00002.png rename to tests/ragger/snapshots/nanos/test_personal_sign_metamask/00001.png diff --git a/tests/speculos/screenshots/eip191/nanos/personal_sign_reject/00002.png b/tests/ragger/snapshots/nanos/test_personal_sign_metamask/00002.png similarity index 100% rename from tests/speculos/screenshots/eip191/nanos/personal_sign_reject/00002.png rename to tests/ragger/snapshots/nanos/test_personal_sign_metamask/00002.png diff --git a/tests/ragger/snapshots/nanos/test_personal_sign_metamask/00003.png b/tests/ragger/snapshots/nanos/test_personal_sign_metamask/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..ce795f34e8569e986af689fded3b59c9a8af2961 GIT binary patch literal 349 zcmV-j0iyniP)O41}p;-~WL<=z+0=1Om1tEU@3H#qtw22}5*_5JCvCo4!52c$FXo$VhXU?0M$^Bekqgf%Ka;M*^X|4 zEs9YCQ(xfJKmNC#+8dY%2&wT+>D^<3C%}_*k1^mvtO~`RE00000NkvXXu0mjf-kqOA literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanos/test_personal_sign_non_ascii/00000.png b/tests/ragger/snapshots/nanos/test_personal_sign_non_ascii/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..dc3315f7accf85bdc32b1e2437f38199f4777593 GIT binary patch literal 497 zcmV^j2(Ri|{_E>L8to}l=oxC(bFz zfKIo&eEW%bprb~fyeufa{c94L!(x0JC8L6!g* z5Kj^8GYB&d|6DW=hW5ld@`7qeQGl)~wI zDVkMz6*Z2l(afj~RLY-nU;3PzaBHA3<%irtT%Ta30Agvn;&zSSt!_sK?F*nP#AI*P zr=+fAO?1XZl8pGfjEDfnJ3Zbf+4CCT{+DF5v*`~b_r6Un0+=08%|Co;lh4wvYGCkQ nDs5p7;{5E6<2a7vIN!}L9L;3!l~}DB00000NkvXXu0mjf{SNHW literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanos/test_personal_sign_non_ascii/00001.png b/tests/ragger/snapshots/nanos/test_personal_sign_non_ascii/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..5b3e16d4a060f039e89734c200a2fbacad633477 GIT binary patch literal 498 zcmVPV#+cdZThOy28@|3e2!XXo~WE+$z$3i*WyU9S4!qiia{@N4r;=Fp91?0Ta z*Xxd>uYi5sK4tAk;+^)1nj5N|k+=_5@_(Yx6Db&(=P!*hH)*E!QXBA`0ZC32`;v~i zSH_mLBUX@H3yp#-uZ+{S^lF|k5sS;tPGuCK7ct`}X>9^h`jvFy=H_FOE1RXS{8&`A zwOkVI+7>7VB`jb}u&k+E19hpA;rKwR!p5=MB+xxkpNha784f@)_#-ZQ>hFPshVWG@ zt*Kd$Tu>LAPPl{@Q%uR3M^rMZYG`)9Z0JI!r$R%u1916Z0up}!G@M1boC#4tRY~pJ otQE?~EG%i}IF92uj^q6C0VKY!KJyh?t^fc407*qoM6N<$f?x^b5&!@I literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanos/test_personal_sign_non_ascii/00002.png b/tests/ragger/snapshots/nanos/test_personal_sign_non_ascii/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..93165d028b646edd286ef2125ecda9050b5fd175 GIT binary patch literal 480 zcmV<60U!Q}P))qH^y`6f7Fx3HRk^ADwN43WqRjk%9B3VkJSe%+l( z#qkqZbs=ArRh&WLXmjd}~*~Wb|)`?Et?9 z;NTS5>mjT8*4V6eq}HiWtW(aCI9GRj;J{Kufj` zoh6Skm-(|ra+@Iz=xUVV^~<(&aDW>43Nl-z946wc!5yc-*O+(6%n<}Z5ClQ+ll%kp W@s<3Hu?hSD00000NBw%zS@bWU zpSDY^{X)K1PrO~9!5H(3ZY&MwU?xA3g%+g|T} z_N{tregfX^DSPByh3Mdr4Y`O_l|^~i*Y_-ZV=8#mx=N%!i@B7#Dv@}>`u7${IKxtq z;%2p=3QwleWjhbef=4m9b}{ZuWznnxng7PDOnf=Iz&eM;ZBh`(2GuO$ubOpMsRQ}~ i|6~wC2qA=!(|iHNU}4Pe5O41}p;-~WL<=z+0=1Om1tEU@3H#qtw22}5*_5JCvCo4!52c$FXo$VhXU?0M$^Bekqgf%Ka;M*^X|4 zEs9YCQ(xfJKmNC#+8dY%2&wT+>D^<3C%}_*k1^mvtO~`RE00000NkvXXu0mjf-kqOA literal 0 HcmV?d00001 diff --git a/tests/speculos/screenshots/eip191/nanos/personal_sign_metamask/00000.png b/tests/ragger/snapshots/nanos/test_personal_sign_reject/00000.png similarity index 100% rename from tests/speculos/screenshots/eip191/nanos/personal_sign_metamask/00000.png rename to tests/ragger/snapshots/nanos/test_personal_sign_reject/00000.png diff --git a/tests/speculos/screenshots/eip191/nanos/personal_sign_reject/00001.png b/tests/ragger/snapshots/nanos/test_personal_sign_reject/00001.png similarity index 100% rename from tests/speculos/screenshots/eip191/nanos/personal_sign_reject/00001.png rename to tests/ragger/snapshots/nanos/test_personal_sign_reject/00001.png diff --git a/tests/speculos/screenshots/eip191/nanos/personal_sign_non_ascii/00005.png b/tests/ragger/snapshots/nanos/test_personal_sign_reject/00002.png similarity index 100% rename from tests/speculos/screenshots/eip191/nanos/personal_sign_non_ascii/00005.png rename to tests/ragger/snapshots/nanos/test_personal_sign_reject/00002.png diff --git a/tests/speculos/screenshots/eip191/nanos/personal_sign_reject/00003.png b/tests/ragger/snapshots/nanos/test_personal_sign_reject/00003.png similarity index 100% rename from tests/speculos/screenshots/eip191/nanos/personal_sign_reject/00003.png rename to tests/ragger/snapshots/nanos/test_personal_sign_reject/00003.png diff --git a/tests/ragger/snapshots/nanos/test_personal_sign_reject/00004.png b/tests/ragger/snapshots/nanos/test_personal_sign_reject/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..ce795f34e8569e986af689fded3b59c9a8af2961 GIT binary patch literal 349 zcmV-j0iyniP)O41}p;-~WL<=z+0=1Om1tEU@3H#qtw22}5*_5JCvCo4!52c$FXo$VhXU?0M$^Bekqgf%Ka;M*^X|4 zEs9YCQ(xfJKmNC#+8dY%2&wT+>D^<3C%}_*k1^mvtO~`RE00000NkvXXu0mjf-kqOA literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanosp/test_personal_sign_metamask b/tests/ragger/snapshots/nanosp/test_personal_sign_metamask new file mode 120000 index 0000000..3b23af2 --- /dev/null +++ b/tests/ragger/snapshots/nanosp/test_personal_sign_metamask @@ -0,0 +1 @@ +../nanox/test_personal_sign_metamask \ No newline at end of file diff --git a/tests/ragger/snapshots/nanosp/test_personal_sign_non_ascii b/tests/ragger/snapshots/nanosp/test_personal_sign_non_ascii new file mode 120000 index 0000000..ee2a028 --- /dev/null +++ b/tests/ragger/snapshots/nanosp/test_personal_sign_non_ascii @@ -0,0 +1 @@ +../nanox/test_personal_sign_non_ascii \ No newline at end of file diff --git a/tests/ragger/snapshots/nanosp/test_personal_sign_opensea b/tests/ragger/snapshots/nanosp/test_personal_sign_opensea new file mode 120000 index 0000000..60d0d6f --- /dev/null +++ b/tests/ragger/snapshots/nanosp/test_personal_sign_opensea @@ -0,0 +1 @@ +../nanox/test_personal_sign_opensea/ \ No newline at end of file diff --git a/tests/ragger/snapshots/nanosp/test_personal_sign_reject b/tests/ragger/snapshots/nanosp/test_personal_sign_reject new file mode 120000 index 0000000..5ecbf85 --- /dev/null +++ b/tests/ragger/snapshots/nanosp/test_personal_sign_reject @@ -0,0 +1 @@ +../nanox/test_personal_sign_reject \ No newline at end of file diff --git a/tests/ragger/snapshots/nanox/test_personal_sign_metamask/00000.png b/tests/ragger/snapshots/nanox/test_personal_sign_metamask/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..b0936ada5d600a2f398037370b7ad5ff34aa6977 GIT binary patch literal 623 zcmV-#0+9WQP)39XR#>o^mt?2nZ%5ApigX0001>&X<+ql+tq$W2}wb zz_+ylxAS9dKu9UY7~kbzOuffXTFi|UgUypQ@tXmUYhsM7rwV7~Bk_+w{GOj9t5Cx} z16W>P2$_+`ARp=UqpU&=;{fEvhb=^OrRR=&7B6*WEfO?x^rtc|N>J19#gtHgWQs~P zXyy@|mZ0#r*o8$cjMS=1A&pf5_EUsJh>$)mO3=-iJqasQyB`GrfED~~r%I%Z(~7pA zd724JW}XAQ?O@*Q8DhhO*wYdy4&GUIr1^M7RS2`}nSpB-QH|6XR$a5hs<#Me2@<+m z?3DaRVYVm1CqxxuWeKbqD}B8UCFos5Li2r*b%C;kH+MJ6?BrB0Xm5voJ;CMfUYL!+ z`ekltMbNhJCt_uPnE^cup=V1Ry%<3zyH5^@k|nS$(oS^~mnq4#TEZLk`p?3ug@&eI z6@b7RX>0dw0SFFba1|b_&^@5b~>{-P4a^}?kvlswhoP8%udyus+21h%Ka(k6k z-Sd+jsr~B%s5Kgg+LKMmJz|BH=ct8yOXBelv*wyyTlC77si}Qh4)+&T~gO{?uUkG zTDUC(*!won#OB-3(YtBo7fQz-)#Q&A!PMpz3O%n|+fjfT!4#E}eZd``R7A6>%04 z&A!Rq0acf7-Rx_VTk-<{0APxR-Amm`Z_ezOhUqW=r@`mED)n>^wO4fWLn<5k8hwp+ z*c7VQlDSFeL7Ml1+K3Zc$L1++d!-5U?%MEvn{hd75c|*Sy20_M8!B3Zc2Y_%-kP`W z6B3uv5sEp6+7}?3cGS-jo%#RmC+k+Iq6=2ZCt{yO@|m#fhCEXc001~`+bXE-Sq__* zaSL|sh|S-mJG0AswVnF_Z;Zqai5F&=srY7G+YlXo%RjEI;O00000NkvXXu0mjf&CAl) literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanox/test_personal_sign_metamask/00002.png b/tests/ragger/snapshots/nanox/test_personal_sign_metamask/00002.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_personal_sign_non_ascii/00000.png b/tests/ragger/snapshots/nanox/test_personal_sign_non_ascii/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..c965f50bdbd52971c0bcc750f986189b69f7944f GIT binary patch literal 917 zcmV;G18V$rhQ5<&cQy)N9dFl{NLnQ#lVt6qECz00W<)UA8-C(wT|O{W@6)A2^0+{L{X zl)e@_Sk&N5v=|$2ZiptjThQptY(uJ~jgx36j173D)BOqFP_Z9!;4sYQo)-YR@7j?i7>FGL71M^s z@*M9uGIJT;h?UvK%DB5Ev2j^1&CjmA>(iBVx=WHt8}H*rx8(=rXx{!QdY!uUP+y^I zFcboqm2maeI`sV1+V-ebouY#)h*@w69Tbb7ni$&=n5NO-)yo zYMyx@rBM|faP`x~A5Qbyb4Oksn*h6ftng{&!-;26BzJ=Z+?3q0(^*;n%_UQf(K4JZ|o0+;9c2rP4Bn;7iXI;U!!QxiCvMRN>s|Z1CTa3kgR*S5vwaw zwi}Jjs5%b@E-J4%{@?sjF7KYg37Gi)vJ89hmAurtiJ@LhB%NW4JK^M~m``gt?LZ6W}(!i6`5l rAEx6^e;&%%kWUUFgb+dqAzt7w>l<_qfS-u+00000NkvXXu0mjf+n}@U literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanox/test_personal_sign_non_ascii/00001.png b/tests/ragger/snapshots/nanox/test_personal_sign_non_ascii/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..234ab0661a9c533aa75edb6b4ff34b7ea8ac9d1b GIT binary patch literal 526 zcmV+p0`dKcP)+QSY)YY#%IMl6p}Sm0Q-K z;OVn$odIP)sgV*-TbCSvQWN*Oj(>@IINxDSnlVdefU4ZFGc)Sw_$gxG63!`NRyj+; zbn`o)PCjZPYDanS9gZbosN}19~@mb#ivxe=&;XgA4 zZDyq)06@^bH9%}4iZ?bmv~P{#sCtTX)T$gQw?3zbuYSjl zy&$nUdj7CJ&?4hKSk2nd|19cIa%MnV-yg8?xm7n{wiW|{_QG1 z##+8=Z3ooZCS81(;P%nGTiXHRwdX^#uuFEpQ(gMQuo$&sr zsr|CdAQSy&FF(Ck%gYr2{L`K6yXH`000000000000000005Tx1>gSAUP|QF Q1^@s607*qoM6N<$f{|(aK>z>% literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanox/test_personal_sign_non_ascii/00002.png b/tests/ragger/snapshots/nanox/test_personal_sign_non_ascii/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..e7ffedd90f5279e10fd67907e6122c12c1bbafd7 GIT binary patch literal 457 zcmV;)0XF`LP)Bo7fQz-)#Q&A!PMpz3O%n|+fjfT!4#E}eZd``R7A6>%04 z&A!Rq0acf7-Rx_VTk-<{0APxR-Amm`Z_ezOhUqW=r@`mED)n>^wO4fWLn<5k8hwp+ z*c7VQlDSFeL7Ml1+K3Zc$L1++d!-5U?%MEvn{hd75c|*Sy20_M8!B3Zc2Y_%-kP`W z6B3uv5sEp6+7}?3cGS-jo%#RmC+k+Iq6=2ZCt{yO@|m#fhCEXc001~`+bXE-Sq__* zaSL|sh|S-mJG0AswVnF_Z;Zqai5F&=srY7G+YlXo%RjEI;O00000NkvXXu0mjf&CAl) literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanox/test_personal_sign_non_ascii/00003.png b/tests/ragger/snapshots/nanox/test_personal_sign_non_ascii/00003.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_personal_sign_opensea/00000.png b/tests/ragger/snapshots/nanox/test_personal_sign_opensea/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..e1159c546617a6e946c84a81db8a5d6208235572 GIT binary patch literal 857 zcmV-f1E&0mP)2!?G>cQX55((I)Vp3JcVKX^e+!}pXJ1q5}JF)0N>5ClOG1i^B?=8C)TJAb&Y zODfsUecz=q*+RDDG5)DgwH@bsqO7-|^eO%NP zo3jyh!X*IZ;=?XPbflM#%L9|TQgR249Q}GMj!Tg0_v$CG{$Q$=s?khF+Mt9cmM%f* zHQ2$R1|`x`P)TD|RN7fDOLL2syvy|Rr3wj%5NI{1bexYn2b{J>O+E=PM%s@CK@bG} zfZc_<7d(giFVn>~HR(}P>Qe=+34mRTWmE5JfU#BoK@24NrE?aW#jNrcKzJ@>6GTn> zA1PO=9uHN4tqpZ6tFcd~0{B3`vUTjDq=stEaqaASV7JzH26(XLiDFS&WxUyjO~&^J z!1dI#`$O(hw$|Gg%_ws-$Q`s zt*W%OAzhT7If0yT;9lN?z1T%u$?m1O zM)mOR5#Vl_exq&0IA&9_s^abW)HT@qGIT8kA6V4XW_PBOW*?<1i#TDxHU#RZZM0Kq z8LTp6aul}(pMgwOdux6aSZGi2s;s`4mCV_W1w!n){Dg0~7sTEcZIvJi$xo)~v9aHi zY-K0_-F_U8fh5GwQ%(%M4=6W6Qn#D3p~g&S-%leL-_`u5ja)M$ucbEfad$&clo#p~IAu%fw6ASAh_QPNnwYeFtxC!yC|fAy zQ)yvG7c6$F0%zU|Rl%7~P)$uDvZ8P+%Xl{$pjJ~m2yBq(oB@7Kwg@+78lIX{ZiQyr zazXYhk7a!)CJNtjD>M_Sh|RRk0PxO_rZAiSc>(T#vX&Sxr?R@LLf2cNXR+P5?FLX{ j3EE5qAP9mW2sZHxoLI1q?D0;|00000NkvXXu0mjfp7oC* literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanox/test_personal_sign_opensea/00001.png b/tests/ragger/snapshots/nanox/test_personal_sign_opensea/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..3f76142926aaffd685f653055f16cf8b14830e52 GIT binary patch literal 832 zcmV-G1Hb%q}*j6Qe(ONNdVEV=6jf$wh?JW5=gGAD2k#eilQje`4gz?zVGLs z)*3gmo%_D0<~`%BwJy+Q#_1va4b*i$qeHuw!T7`I<<{Ex5es|x3Dnhj!h|%Gj48v& z#e0nu#&BQ7`gcm|3FtvbdJ1@C9BIE?$U&owyu=vtZ_NhDDsYpQoB)z;v~V);Nq_Z& zW|P1~@~%Oza3cIccW<8y>*Vr& z8icFM`^nTE?4+{LP9{#SJy?p-y{mVHYg8P9@@aFn1yNo*-1{0l4I*tNEOa7A0j~Nt z6fd}L68e|eHrW8>tS%|&0cMO9wey(-R1N;0HaIz9vvNcK($LftMqd3)<;hNcHRMNt%?-2c-DNy%K(!jM}a zM-Wx(=iq5Ycr;iFF>`%E);@CMkn33rEmE$&6I9_wrmP24k=f{*U))Fi`PI+zG)*}J z#*G>OzWNC=#yVg{KGEnLFDeH82WCY}3R=0x$iEP)_ENiVsiq-bQEzY}d0@-Pt{6~|OZO46fd z3~i_LtyM-?Is?ko79&N1bxkow>$QyCM9I3Q@I=vVvX)Nlq+4cyNO9Vj8GNQUJ+R#b zrx+(M2C-9bVtxl)7awsU;v@YUxIB1yD79FKLpaVmzsg-pP&Mu(%UFMG$V%1drfhKB zh@W*!Q2IaEjX`asXzKv6CN@D@_q0olla!5S*j!h;)s1*aV_{iCxDd868HRFz0>O4LeubB3w8 zRKmOOR*!hjHOn}UMm+hsX2hScFM#Zif6oCgh`#5;P8@`Q$C;$BM-4UlU;&jNqYrK+ zN_fZRwrb(lt3*%nt#87d$6wBmorLWJku6ecN4BccDejcwZ<*%flry!&@~0+|+FAZa z7qGDw)Nyuse8uN%{0`7=z*lR9T46TsfYjRup@{er7B$PNkm*!9ckeI&00000@EF)i zrnEc?TLits$_GQg$7B5UJIIo0~<}^E+Dbabui0!0UakZXWl@B{EfEoq*u9g}) zXw{ik2Q)i2^Q8#C6XHPLj=>8hw}^2b#gY6+yt7s`_*1mT-_9}Iy>)rc2prH#fnAE=2 zvsQ9DDJ9XFtCO|Dd<(gbwlKph%Fw@{jApGQQ%3nb&+?5*Or?i##0l(j&Zk5FV>Uk!!pW~*>kEkVt=i?5vZ$49JG zcn`~EO|;#aiG54Z@i*9=LG6^(76D<+bRoPu@kM?nnRD*r5GipoikN&e zVcOT%H@yEa$BQm>c9>mXndOeVvEi(Dd4At!CQZN$h@z&F;>udH1lO0gt^VU$(7aBo zMHO=*BZ1QuOnvk&$T6pyM8{KazIR~p=J&?&`5VbD(bNRef&ypvz0U^RxH({l*G6afqhegt8P!;2?O2crUo7f% z+LWF?>tGg6>?;As8ae}zHy*jLmhGCXh}dxi&aPHXY7cG1sS_pYY=jU(2qByBg@^r} znbZdz3r`nc*ChZnh{!v`9w$>fbuP%%|MIo3f#jOkMeXoN`B9Wy*Lw41YL>a0Zq;y#N3J literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanox/test_personal_sign_opensea/00004.png b/tests/ragger/snapshots/nanox/test_personal_sign_opensea/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..1f135ae1577f9112d180bd54e8d659da8848e21a GIT binary patch literal 626 zcmV-&0*(ENP)7S?8N;qsrQlx>sW@H8WG#%|DJjrTNzMLbW#EU00000Ae;~1=AP#%4>@P8 zAQHPJm<_S)OWr3=h)U2v^p(_3T+EX1z#KNGC+}%|Jo#tyPuULU7Om_ z9+Z5l{vw}|ouy`Wi<%zIVs?^jWj_dcte4C9fXfWK>uMGcVLp;@_m_lodEld%; z3Mxa}7}Q3I<_bt_Vi%-$aWZLhiu*TE5FQUWu1B{k~O@kpWx@(fe$(eIq7rh{R(9{w(G*7MD7MiBjJ6m0K{; z11uH}c1jvCcDYjz?%Z@B<8l%*n^oP-H3o1z5gbV}hq;=|g0L22d7U;t>SDG{&>0XQ zs}@na$5QPpD{>B+kVxnfggas%SqT3%R3$_EVF;>*_Je^9P697j82m8N}MeG*+S- zAXg|D(2DLJpiZT-hiOK$$uFb(1yIM16i6$;`G+J`$l5YLKcfxcIal^PX+QBnqrVN= zgmdzNc5T8njOAIEO5Rgi1$2zN_iRkM1g*nsv;i%NZ5sdp0002n?YGZQxm$0A(%*ZA zW3@piknX?o1KxXQRW>MZ%t;O_<>#l@{*#hybAmmtPz0MJ^jd`(>cFfN9{ufd{FO{r z$F`IY#~$oesig96F)p8s^AldgT(JjZE3vtoTKQK)A9M}EMtWlp<;qjW8v^Tge#(a! zM^yMlC}R)8AY6<$lvA9>16-kxeE)H2==Qi(ITm5DJ`j5lwwdHKE@K|Cz)VV~cmv`A zgZZj>KyMIl00000R^#|2R)aC~5y(1V_x7$!r{Q|q(oob3bM@6k_VL{%;;Tn%p@KXo z@P6ar`6fV!KoAM9%dP zM<>|eqDz`BlY-D6GmnG{np}ffJb=*THUIEO2KEZCJC@Z0*q+qXaCs>&2SQcV<)c?V zGDxl_+u#!YW8sQ<8Gg6w!fWlMOVB#t0ssI20000009cDZfTNb#)IoHA00000NkvXX Hu0mjf6Jis4 literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanox/test_personal_sign_opensea/00006.png b/tests/ragger/snapshots/nanox/test_personal_sign_opensea/00006.png new file mode 100644 index 0000000000000000000000000000000000000000..f29ed004a8377b7fab0219387d2818cf867cdf9f GIT binary patch literal 912 zcmV;B18@9^P)`ME(AIgL z*Tv`a@k(CjJkNV)t{!?N=7?&?^1IO1&u0YG{5ZHrU(5t(mE%vLt--ZS%#Pj*_1O55 z!wLkbjC%sQx0^?Iz*tjeq{M*lC7*8&6}WpH>_TK4?UBLk!wOq=fXV1ISbAYDUU5M- z7qem(7E(U}_vB+HBE8b@fx8x_4y88}W`L^VRh#ZjcBP;&?&2$ue=s6bO?K0;Miy4_ zTnakA7du$gpu}5@!kXzqcsB#;?XAN~hCk=2`ZdIqfEfa<*8Q&Yf1LwLR&MR`uRIAq zjQ2d+G)>cx1or^()CDvdoPtd|y2*G(WQ5g(REed~bv5^Hzd%;f$I;y2dR+`rVXQUrk?CUEwJ7%l+7cIq_N6m@-ob~UaNmHBcD53nc7SOv;*!Lc^ve$OHqgMN+MFWcBDTpqFwA8-Nlv^R1y&;vSgjZS}|!%z1pylZB3V7%n$^q^3y`kQ#8 zaD&{@e+(nk9sP&tIe3%KLT?fTx#wUj`S4Di*O?M6X@ngOU0@O(t0*uI6rS7#?wnao z%P+Zsg~rPP#)Fga!x;%IPjOzuua-=m%e3*(l-U!|B#B;eg%^h}G={Ecd+2!t9Sco` zHND{oGFnj8wlLMr6~d139a9x5vr0?CBTj@AK#ikH0tK~>F26Q=Np*7rx#G)>bqP4h)sQ1mo_t!M=l zbY9CO;fTUf6w7>5G7GNomduA$1S~i42KhR{n{nfsdFz;wV$1_4e}oY=^+)EsgHL4X zh8vGvq}0cxpoA&UKIwPLGS~t9rf19!*d2fidAv=KgX~P&BWO6jx?dz*1Y%tH=Ms8d zKPh^U38y^zxIa@fv8sk91jQ}y(K|dD{Ty>YNv3aKf{*k6B(PagQ#YKw!-F?mbv4hs mr{;QQo2F@+rfHhyef|Q;HpWgIb6lYS0000U}n(e#anQSWeOUSCJW#cq?pNN{k}SMEU1 z5RV{-QP?rGj;T8=bMD6t??~`i`ThcE5T*rPH_1$@F}0xJmAt1qGngf#&N8pW>)5A; zVu_tTWJ=VpG3!np2zLVzPZlrRm`_cc$tJy4`y^@%v9@IOLm&snYuql zZDx=w;4?y<+W_Y5#Iop3=XBf)6#0mU>tuR=8-}at{mn22Pr@wpBpoL+220WI-TFl= zDJyzn%#eSUr&(FGvzc2t9 znI$PbCS}fIeX)7@-G0*w5arsBft#jf&e4JCY8xU44uF`>`ePyFt?o#qZ<9a40my&U zMfI}6Q#-TP+7B{;R$S$Hy=XFrLKD3wi$d``Gx9g@AA}G>2qABo7fQz-)#Q&A!PMpz3O%n|+fjfT!4#E}eZd``R7A6>%04 z&A!Rq0acf7-Rx_VTk-<{0APxR-Amm`Z_ezOhUqW=r@`mED)n>^wO4fWLn<5k8hwp+ z*c7VQlDSFeL7Ml1+K3Zc$L1++d!-5U?%MEvn{hd75c|*Sy20_M8!B3Zc2Y_%-kP`W z6B3uv5sEp6+7}?3cGS-jo%#RmC+k+Iq6=2ZCt{yO@|m#fhCEXc001~`+bXE-Sq__* zaSL|sh|S-mJG0AswVnF_Z;Zqai5F&=srY7G+YlXo%RjEI;O00000NkvXXu0mjf&CAl) literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/nanox/test_personal_sign_opensea/00009.png b/tests/ragger/snapshots/nanox/test_personal_sign_opensea/00009.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/speculos/screenshots/eip191/nanox/personal_sign_metamask/00000.png b/tests/ragger/snapshots/nanox/test_personal_sign_reject/00000.png similarity index 100% rename from tests/speculos/screenshots/eip191/nanox/personal_sign_metamask/00000.png rename to tests/ragger/snapshots/nanox/test_personal_sign_reject/00000.png diff --git a/tests/ragger/snapshots/nanox/test_personal_sign_reject/00001.png b/tests/ragger/snapshots/nanox/test_personal_sign_reject/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..380d883f380b04daf71662177b5c4c009996097c GIT binary patch literal 500 zcmV$AtATFtlqus9FMGue$vZItA)inv>{37k(1i7`UsEs=trY}%9XV7dJ$0HDnO7YdU#i?=$z zf1{e4ynPbQud|su#U;;zlE?bu5lL)0YAS@!HD{K&hqdt4c;%3sQu>rh-%W3;MjWgf zD?sO^;^Sz2vPw4eZ8wTNtjVaAcdK7aeUBpI*;ikoF%=j;KX&Khzi82M0CWbZuh4Qp zZy)3xyPGjl8po#lQADwSmv|`69hJ9tUao)>ms|0a(Wr1Z3yBvD_9b1S|9(v;>mybO z@6EQAyB>e4Wjih^zv2s*$Ocy@vf2AI^p?@@`lh9E*PjUZE%VQsvY}=S1}FrXG3bi$ q0ssI2000000000000000-TVO*aFPBo7fQz-)#Q&A!PMpz3O%n|+fjfT!4#E}eZd``R7A6>%04 z&A!Rq0acf7-Rx_VTk-<{0APxR-Amm`Z_ezOhUqW=r@`mED)n>^wO4fWLn<5k8hwp+ z*c7VQlDSFeL7Ml1+K3Zc$L1++d!-5U?%MEvn{hd75c|*Sy20_M8!B3Zc2Y_%-kP`W z6B3uv5sEp6+7}?3cGS-jo%#RmC+k+Iq6=2ZCt{yO@|m#fhCEXc001~`+bXE-Sq__* zaSL|sh|S-mJG0AswVnF_Z;Zqai5F&=srY7G+YlXo%RjEI;O00000NkvXXu0mjf&CAl) literal 0 HcmV?d00001 diff --git a/tests/speculos/screenshots/eip191/nanox/personal_sign_reject/00003.png b/tests/ragger/snapshots/nanox/test_personal_sign_reject/00003.png similarity index 100% rename from tests/speculos/screenshots/eip191/nanox/personal_sign_reject/00003.png rename to tests/ragger/snapshots/nanox/test_personal_sign_reject/00003.png diff --git a/tests/ragger/snapshots/nanox/test_personal_sign_reject/00004.png b/tests/ragger/snapshots/nanox/test_personal_sign_reject/00004.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_personal_sign_metamask/00000.png b/tests/ragger/snapshots/stax/test_personal_sign_metamask/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..f7398110bebd91c8b56bf035cf020594b3900735 GIT binary patch literal 6940 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 YsaSJ;RGJ)cK9S4J)WW3lPv^M*0)4|&e*gdg literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/test_personal_sign_metamask/00002.png b/tests/ragger/snapshots/stax/test_personal_sign_metamask/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..83a0d80f83cef515eb50a37c21e7ab6b682cd6d3 GIT binary patch literal 7708 zcmeHMXH-*JyT(yLq&ZebN-P67QWXS*K*oZIAW@_wbVNW(0F}@~96%Y7rU1|J}RRy=&cj*SG(?Yn^lUIcLB7Ezk4pN7t;) zWp*FlEhZ)=V{!SSjhNWBG%>Ls@^}3JTrq++;>5(1CM_^379qHc&r1 z`BIT|{>43bTV$RnBvr>3U3+%sKO9k)*BTBC1keNQGZ zIMJr~(Wut(U_(XMu*^sw{cO(A)|+m=J&`yu=GeIs{T4O{U0zzcjvi`nZ>Lc7N$=a+ z&7HDGM@K76!c1;vExKuIYp15B&T@HU(5|XzU_?atMx%A)rN!d}`0;QrxG5N{k<}Fk zLB+(xL`QFq!`YhT&MJDK%jv_(za8}Q9Mp7Xa3hAy2&^vr4rd~UD z)Db@j?3a#wu^RZ>@1wvLeA6r!LD7Sf>BY4U=z`Q2P55R%q?_Z>85PqFTW-){qjaxO z$*=}CCx&hxcINwSJ-W!(Gpy<@9S6EvO6A$wZS=3pg)WZa{co6DpwA3pO8kZmvb)Kc z3VR$u4V2n0!E`L@EAw2hD?cr<-U-bsj`_LF1FTH!X87Xi1`Z$3ah2K#UX8!R*5U~D z)f&czp#@InmG(HhcFYoQ-p9Ps=+cBD^G#$WJr4*K{Y$=jbLb&cQ&YPBsi%b}WMeKi zly=IZ45819H5IwT3=A>dt#;u}8r1EbMpp`keQ4jC5x-h2sifIxuH-n3OX>$gPCvWc z9{1tq6VuBPc@Cf?f_sV2Wpji6j-odEwkK$$0u=&4wU9JBxx-+9zp# z+@+R1RWJr7^Xy7JbsoL$`{5<4)yB5&GmW8RSQ{2>x);)s>fKtBc|-u%U|5f1L8#WaC1YcMlKBo3rXbRY zzqH>dv68{j&+Zl;!{~Gb68Re&&%3=P!pK;iGmeY74xFzC`g;vyL%&)^AKx*H-g@wr zeaVT$I80(387n%AaBAhYhs^C&&RN5$?Z&EsH|Ft~ys>JUfjTy5AT_jB>DlX`1{#S; zKvKu!E$V5+Vr)S-|q%w+^A z)?IT$(VDBzv$3QLfwbVXC-W}iapZ9DXn;QVxHA_gn;P*@>XQRFnZoj`eQ8~qoN*&_ zD%uns85tQKKBV2^pf(&x1ik~5GA<&s_^=7%n}lmE!QHN!N8_|Bcu38j0Pl)n(=6EQqn9T? zQ}1*2)PTiPD3oLtWDplh-)+G*xXE9&2<$DFP#>w#Mva*CR7P%Bs=jw!w6DooOD>R+ z<@J*RESU;pM&$9P?n0r^*QdSU&CSiqV2Qh*ex}u4g=YcZ z9te{pGB_)42!o%mG_RK8g@OLYM#{Wn?6!6ihc$5BX-pqJe^&-K(uFj(_S~mp^d9iz{Dm=KQ6-)pC?E&0aT@&fGgg^h zQ?0G7D=YT|&z$M1fG6LPNDxDskQuj6^}8*DQ(_%Mvvxfy0Xi5)t;@YGO6d7T+;84xm1*Sd&*mP^BqcV2U$?uIWSB5q;H5@87&fKcp35g2SP-n{_ zlw3a#8T?~hErb6xwS6+AbYNaec^0CXc+)7i$Gdta#8DLEX>I+y_>^b$u*Ovzm%L%Z zH8ql-8a_>M=qCEk-gt(2|jdcr!~bztT8K|w(XOk&^dXKmY1+!xgHo!-^M;oyq4 zqENT(`@0wnCx%F0PdSw#)O}uadc6o}pZ&aHQJ;g_PqGQg3c9xUY9a20I|Y3i3DDQQSbo%{^+~fe@o{6Xc0Gv%1?oM7JL)up&8ivg|Gm`n)s;h?#dzcS z4PLGVfq_7>DAhSA<7GQz#DiNL2Tq#g01`laCEAUBCJmD3<4Zv(Uydz~;r7<6X2fVS?xI^oDZGQKV zuC=Dsmf`1U$?wyb@oeK6tITy2KAgt;ba3DUg2)KTH5d5(5mNQ#T-xX|mYWU$!XcF% z|K?Bs-za1fx=JIP!Wztzxla+Kdkx>#t6vKci|)}n`gaoWS1#~hHEoc=ylrDP^Yinj zs82w@{O#=7L*!WIPK+sVSx`TGT2|`jyTJ03gSj$Ju--5e3%jYrY)3+6{vgjD z*JlZZ){>uaAG)rJ3@lC!B}1 z8I4!8YOejsNrJDE?yj7y`=d~Divy8qn-kr*uX9o-wk9Ig0T>SyzBT9f#2gW%0H&2S z^LRWsd{hEdq|vqdR#93!A`gvR=0@f=e_V;ykmytxKmJe{x#(Sewo4kQs;luuebezBxXVD-ss0270ciiT+Y(R<{3$;+ zxX1}_^n>oTWqc!j=T%JIJ&U1KYbZ#I3%-Q^1dsu8K7DcXs#D6B!|j#L{&mg(x&TIL z0GIlAz#qzqC?N4jBR*2Is?rIqG(RM#E`QLbJhZ_DBUdrp601J#w4cqe_hI%JO}2;+ zwa^2JKxblb2pU})U5SPAvI%C_qgiLOx~A^dy~zs(D`SFhu>=AWTrTWQGZ25lhT!m& z<+-lY7z)m%ukge&7;kO-*-k2(6~T}k4$-O5=mJw#!1w_Rp0{He?+rkrYUX@@!7kV` z6_YQi<&;ga&g`ZUp9{??l)cKE8(wgIMOiuP@yNqcbb-u*=6e91g#$ zznn9?3}&JU^R#|~b$?V5@49EM?YJcqGDN2K&_-iZ3@CE^7e5&fM$Rs1jRV_AA_W;g z1)4vwES!h4IY1Qv@A^g+i~~D{ql7kAYj?G_USL#bctxPm=-{8^*f2E!7nt|ZCMPG! z<~^*H($do7tauDjss@qa1;?a%n3$N@VG8?h*T6IY+z6l_D^;4OG6+P{i{#JDypD{H z?4kM9!ZiBDKd!8-EK&63r2(>a^R0Yp`;2i!p0?00K$sH-cXe~a33~f(+ajRd-qn8o z(;HTw2RnidbGp5KbBm{pymK2#B<(D~fu+mj};N_~C*Vr1-Mz?o*j2-~CaW#nA z5Q>wh^hJi2N2V8mEiEm(3n&vmDT+2Bx)20uew7;C4x{4oyD`WjGaEx107xcucB0`ptv>zhP`F2HT_#TJ?4uD$#qu(i?7ebGOMVjsv{|) z0}vhE5z^8v)E5;EfD=9{L%XxtOngr_5{4h7Ra|9+ukuuf>YQ)Fv3nH3Nf|v$O1eQ@ z+^rp__f#w>cY2?u1bFpXQrh%jYOY3+UfGWd)x>RQ;r} z>xO8Q-uArqt_v&1Un_DZ?&@) z2n1RuxrvS-rBhEP9y3{f4jJPHhk$*M-6LE7q?+ClZ3?xl841J{z#{TW`=E&9%GTLL zFr|Uj`QcGh|2yNB3jMn#k>ypU7!~kn)?TV$rk>}s@X-riZcm-5IYsn>zw+1t0AV+} zR0GfEo~s10I_6w?RWBK9%5dW~A`gu_65knnY<&u7`QFtptV;oEY3gyPflH_*ML2pxG_&C6M!1<1F(4C>%UFi>SmF*m%L`K`9Xt5wC^IL>Vld z*<7YvHxjsxk9+NAvZ7*lq_YbA&XX(f^1WQTOKyJE&PT3#(#RDw4N$iY9`EJaHflQP z-jO6>1AmsTdsnup$?1ZpJnOa|Kt9qtiko-#q0BBDb)y$|XRyzzrCT8XsE;vzHfdgO za4D$xsCV**vj{l-a~2?k%!C+aclQ^p^8yreZi#-lKOdDgfQJSs%#4PbUFSO1xNHxe zG_vPw-|NX3V7PPEOj$A#ka2z($~XEGU3TwOgm7u;&iP8&9+r^fWev-e9Z9HPdpwMa zdJ&ni=8)^|V%`3D!#^i1nH!R&W8olLkZY+3l&*wW)K3#9bKL9A&wH-E2Y5E9!qmf* zIXcS5e2+6Oc5}&;^;H~*@#;s%1AM$Wt zPpbo^dZvXKa-i!8rfqeDfU$Sz2hy|RNqT#dwIKp-6ytfIJ*2&F0n9i@8>#INoEyf7 zG6hd3ujKYL9R2Ay%=tREVA;Mdo;mWSdSPuXGAqqey=(dV_wNAV1UQuh=o;k5nVa4f z)|G*DAP0*2N103ogDazfMBpw>{w+ad9~Z>?kT9zK_I9XbkjrG~9M{8(3y|RA9V0Qb zuH!1PUQ)9Iv>;22pvk)I4o;)CzRa!e39{fp)dRCkfk18_PSmW!=R@RUM5Oy)+L9*ZjAa-1O>`u-+R-UvgV@e}VP7nFI|`D0%MZ@LU4i;l*2YjL_i+ zx2OHRn8z~sp=(aCJr|(*wH3w+gvujHvw?oxg6FY2$(zvxUK;jd<&k1chdtURW7okQ zp>+XVO}j_#=fdrro82m6Lb1nSi&1)a?^%%|UCYGDv2N=2NhuzR{}5LHt0?SmO76eR zYlFZu0gcU{BL1Ew?AVgMT%z>FOntKU{HgE$Rp$MlHioHH8iTXkT2`#vJjS0Q2JvYa z0lK4LK~6kwtMNm=zhE+%7z_r$D9M+qhv!z|@z$}(3!PO~@UvxG@?)qYA+yViH_@*E z|0}{+27{!<4+&gW(_GFAYhCd`lZLAI+&XPhl5M5R%EODoQ7BaSp96(zn$|AF1bB=T zf+>d{oADwWMk)qp2L}ghrj}P%Yk-X5#hYEv(K!&E;XYEvt8lx%ALwmDp=noD70`Kr z+5*d*3T-e!xXo?&QdLLE=7B_p08KyDs98N6(2f8&<%}6+C0bN!SA00=5r7ha){LeU z7rAiT8=IO+K)~S?-kP!Y5ljJcb`5RT3Y2T2{q6$8haX6?fmnd#0SvFL?gK#TS65e; zm-_|r?a&5SJV;sjaH>`5uDrawW`g{tUn~&(CQmb(D;DJJo8*%(;b?xD>PTG`n&_{WZ0%OkXNzslA#3#&91=I3RFW%Qa3zaku) z`Kjv72|yPfm_@eB|2|n-zP3Z*!m+l=JG>VC{RhYsZV`De%YZd2#ry1J-orZvjlV+KM75o*G*ANQ$j+*d;zQ->cmOVSAL-{ z$iradMm=H`ykM=IY55sf1l_hs<|!LxlU%YTWXCl~oKif?snGuzgI2Vk)O2Kub zTSW@;;4}Ktd>=Wr^bWsTw(?QrW{uhPH}<%=!M*x{5{3ZSYIUxrTU-hx1Hyv8@e3K` zOo~(-*&XdaO*KvlwPN(%AwH~U_sBfV7~St9dDh8x+^2bm=|Hs$~61nD1VO#eOS cDN7>1y{VIF^>`KF)K|>H%=%)*dH2}=0QTODg8%>k literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/test_personal_sign_metamask/00003.png b/tests/ragger/snapshots/stax/test_personal_sign_metamask/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..1c2d6cd43fb93981b52926d5707a7f063f78e5a2 GIT binary patch literal 5599 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 literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/test_personal_sign_non_ascii/00003.png b/tests/ragger/snapshots/stax/test_personal_sign_non_ascii/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..1c2d6cd43fb93981b52926d5707a7f063f78e5a2 GIT binary patch literal 5599 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 H+xY(nyLdKw literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/test_personal_sign_opensea/00002.png b/tests/ragger/snapshots/stax/test_personal_sign_opensea/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..bbf0532c0f6cca8197d5f8fca8513e7233237a8c GIT binary patch literal 22798 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%0A5z+MAFNZ3!)~N0cSrJ%NssA0R^SZ7)-ldze( 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 literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/test_personal_sign_opensea/00003.png b/tests/ragger/snapshots/stax/test_personal_sign_opensea/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..83a0d80f83cef515eb50a37c21e7ab6b682cd6d3 GIT binary patch literal 7708 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 literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/test_personal_sign_opensea/00004.png b/tests/ragger/snapshots/stax/test_personal_sign_opensea/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..1c2d6cd43fb93981b52926d5707a7f063f78e5a2 GIT binary patch literal 5599 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 literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/test_personal_sign_reject/00002.png b/tests/ragger/snapshots/stax/test_personal_sign_reject/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..df803b1aca92c60bc2a8e2f47fe34abc9b6ffa9f GIT binary patch literal 6088 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 literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/test_personal_sign_reject/00003.png b/tests/ragger/snapshots/stax/test_personal_sign_reject/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..b1ff1b3ab3f4dd6e51e46f9c6e0a2b36b8dd1f7b GIT binary patch literal 10883 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 Ldb{=}?D2mCKHFqS literal 0 HcmV?d00001 diff --git a/tests/ragger/test_eip191.py b/tests/ragger/test_eip191.py new file mode 100644 index 0000000..249b6a7 --- /dev/null +++ b/tests/ragger/test_eip191.py @@ -0,0 +1,165 @@ +import pytest + +from ledger_app_clients.ethereum.client import EthAppClient, StatusWord +import ledger_app_clients.ethereum.response_parser as ResponseParser +from ledger_app_clients.ethereum.utils import recover_message + +from ragger.error import ExceptionRAPDU +from ragger.backend import BackendInterface +from ragger.firmware import Firmware +from ragger.navigator import Navigator, NavInsID + +from constants import ROOT_SNAPSHOT_PATH + + +BIP32_PATH = "m/44'/60'/0'/0/0" + + +def test_personal_sign_metamask(firmware: Firmware, + backend: BackendInterface, + navigator: Navigator, + test_name: str): + + msg = "Example `personal_sign` message" + + app_client = EthAppClient(backend) + + with app_client.get_public_addr(display=False): + pass + _, DEVICE_ADDR, _ = ResponseParser.pk_addr(app_client.response().data) + + with app_client.personal_sign(BIP32_PATH, msg.encode('utf-8')): + if firmware.device.startswith("nano"): + next_action = NavInsID.RIGHT_CLICK + confirm_action = NavInsID.BOTH_CLICK + initial_instructions = [NavInsID.RIGHT_CLICK] + # Skip 1st screen because 'Sign' is already present + navigator.navigate(initial_instructions, + screen_change_after_last_instruction=False) + else: + next_action = NavInsID.USE_CASE_REVIEW_TAP + confirm_action = NavInsID.USE_CASE_REVIEW_CONFIRM + + navigator.navigate_until_text_and_compare(next_action, + [confirm_action], + "Sign", + ROOT_SNAPSHOT_PATH, + test_name) + + # verify signature + vrs = ResponseParser.signature(app_client.response().data) + addr = recover_message(msg.encode('utf-8'), vrs) + assert addr == DEVICE_ADDR + + +def test_personal_sign_non_ascii(firmware: Firmware, + backend: BackendInterface, + navigator: Navigator, + test_name: str): + + msg = "0x9c22ff5f21f0b81b113e63f7db6da94fedef11b2119b4088b89664fb9a3cb658" + + app_client = EthAppClient(backend) + + with app_client.get_public_addr(display=False): + pass + _, DEVICE_ADDR, _ = ResponseParser.pk_addr(app_client.response().data) + + with app_client.personal_sign(BIP32_PATH, msg.encode('utf-8')): + if firmware.device.startswith("nano"): + next_action = NavInsID.RIGHT_CLICK + confirm_action = NavInsID.BOTH_CLICK + initial_instructions = [NavInsID.RIGHT_CLICK] + # Skip 1st screen because 'Sign' is already present + navigator.navigate(initial_instructions, + screen_change_before_first_instruction=False, + screen_change_after_last_instruction=False) + else: + next_action = NavInsID.USE_CASE_REVIEW_TAP + confirm_action = NavInsID.USE_CASE_REVIEW_CONFIRM + + navigator.navigate_until_text_and_compare(next_action, + [confirm_action], + "Sign", + ROOT_SNAPSHOT_PATH, + test_name) + + # verify signature + vrs = ResponseParser.signature(app_client.response().data) + addr = recover_message(msg.encode('utf-8'), vrs) + assert addr == DEVICE_ADDR + + +def test_personal_sign_opensea(firmware: Firmware, + backend: BackendInterface, + navigator: Navigator, + test_name: str): + + msg = "Welcome to OpenSea!\n\nClick to sign in and accept the OpenSea Terms of Service: https://opensea.io/tos\n\nThis request will not trigger a blockchain transaction or cost any gas fees.\n\nYour authentication status will reset after 24 hours.\n\nWallet address:\n0x9858effd232b4033e47d90003d41ec34ecaeda94\n\nNonce:\n2b02c8a0-f74f-4554-9821-a28054dc9121" + + app_client = EthAppClient(backend) + + with app_client.get_public_addr(display=False): + pass + _, DEVICE_ADDR, _ = ResponseParser.pk_addr(app_client.response().data) + + if firmware.device == "nanos": + pytest.skip("Not supported on LNS") + with app_client.personal_sign(BIP32_PATH, msg.encode('utf-8')): + if firmware.device.startswith("nano"): + next_action = NavInsID.RIGHT_CLICK + confirm_action = NavInsID.BOTH_CLICK + initial_instructions = [NavInsID.RIGHT_CLICK] + # Skip 1st screen because 'Sign' is already present + navigator.navigate(initial_instructions, + screen_change_before_first_instruction=False, + screen_change_after_last_instruction=False) + else: + next_action = NavInsID.USE_CASE_REVIEW_TAP + confirm_action = NavInsID.USE_CASE_REVIEW_CONFIRM + + navigator.navigate_until_text_and_compare(next_action, + [confirm_action], + "Sign", + ROOT_SNAPSHOT_PATH, + test_name) + + # verify signature + vrs = ResponseParser.signature(app_client.response().data) + addr = recover_message(msg.encode('utf-8'), vrs) + assert addr == DEVICE_ADDR + + +def test_personal_sign_reject(firmware: Firmware, + backend: BackendInterface, + navigator: Navigator, + test_name: str): + + msg = "This is an reject sign" + + app_client = EthAppClient(backend) + + try: + with app_client.personal_sign(BIP32_PATH, msg.encode('utf-8')): + if firmware.device.startswith("nano"): + next_action = NavInsID.RIGHT_CLICK + confirm_action = NavInsID.BOTH_CLICK + navigator.navigate_until_text_and_compare(next_action, + [confirm_action], + "Cancel", + ROOT_SNAPSHOT_PATH, + test_name) + else: + # instructions = [NavInsID.USE_CASE_REVIEW_TAP] + instructions = [NavInsID.USE_CASE_CHOICE_REJECT, + NavInsID.USE_CASE_CHOICE_CONFIRM, + NavInsID.USE_CASE_STATUS_DISMISS] + navigator.navigate_and_compare(ROOT_SNAPSHOT_PATH, + test_name, + instructions) + + + except ExceptionRAPDU as e: + assert e.status == StatusWord.CONDITION_NOT_SATISFIED + else: + assert False # An exception should have been raised diff --git a/tests/speculos/old_test_eip191.py b/tests/speculos/old_test_eip191.py deleted file mode 100644 index 423bd23..0000000 --- a/tests/speculos/old_test_eip191.py +++ /dev/null @@ -1,209 +0,0 @@ -from time import sleep - -import pytest - -import ethereum_client -from ethereum_client.utils import compare_screenshot, compare_screenshot, parse_sign_response, save_screenshot, PATH_IMG -from ethereum_client.transaction import PersonalTransaction - -def test_personal_sign_metamask(cmd): - result: list = [] - - bip32_path="44'/60'/0'/0/0" - transaction = PersonalTransaction( - msg="Example `personal_sign` message" - ) - - with cmd.personal_sign_tx(bip32_path=bip32_path, transaction=transaction, result=result) as ex: - sleep(0.5) - - if cmd.model == "nanos": - # Sign message - compare_screenshot(cmd, f"screenshots/eip191/{PATH_IMG[cmd.model]}/personal_sign_metamask/00000.png") - cmd.client.press_and_release('right') - - # Message 1/2, 2/2 - compare_screenshot(cmd, f"screenshots/eip191/{PATH_IMG[cmd.model]}/personal_sign_metamask/00001.png") - cmd.client.press_and_release('right') - compare_screenshot(cmd, f"screenshots/eip191/{PATH_IMG[cmd.model]}/personal_sign_metamask/00002.png") - cmd.client.press_and_release('right') - - # Sign message - compare_screenshot(cmd, f"screenshots/eip191/{PATH_IMG[cmd.model]}/personal_sign_metamask/00003.png") - cmd.client.press_and_release('both') - if cmd.model == "nanox" or cmd.model == "nanosp": - # Sign message - compare_screenshot(cmd, f"screenshots/eip191/{PATH_IMG[cmd.model]}/personal_sign_metamask/00000.png") - cmd.client.press_and_release('right') - - # Message - compare_screenshot(cmd, f"screenshots/eip191/{PATH_IMG[cmd.model]}/personal_sign_metamask/00001.png") - cmd.client.press_and_release('right') - - # Sign message - compare_screenshot(cmd, f"screenshots/eip191/{PATH_IMG[cmd.model]}/personal_sign_metamask/00002.png") - cmd.client.press_and_release('both') - - v, r, s = result - - assert v == 0x1c # 28 - assert r.hex() == "916099cf0d9c21911c85f0770a47a9696a8189e78c259cf099749748c507baae" - assert s.hex() == "0d72234bc0ac2e94c5f7a5f4f9cd8610a52be4ea55515a85b9703f1bb158415c" - -def test_personal_sign_reject(cmd): - result: list = [] - - bip32_path="44'/60'/0'/0/0" - transaction = PersonalTransaction( - msg="This is an reject sign" - ) - - with pytest.raises(ethereum_client.exception.errors.DenyError) as error: - with cmd.personal_sign_tx(bip32_path=bip32_path, transaction=transaction, result=result) as ex: - sleep(0.5) - - if cmd.model == "nanos": - # Sign message - compare_screenshot(cmd, f"screenshots/eip191/{PATH_IMG[cmd.model]}/personal_sign_reject/00000.png") - cmd.client.press_and_release('right') - - # Message 1/2, 2/2 - compare_screenshot(cmd, f"screenshots/eip191/{PATH_IMG[cmd.model]}/personal_sign_reject/00001.png") - cmd.client.press_and_release('right') - compare_screenshot(cmd, f"screenshots/eip191/{PATH_IMG[cmd.model]}/personal_sign_reject/00002.png") - cmd.client.press_and_release('right') - - # Sign message - compare_screenshot(cmd, f"screenshots/eip191/{PATH_IMG[cmd.model]}/personal_sign_reject/00003.png") - cmd.client.press_and_release('right') - - # Cancel signature - compare_screenshot(cmd, f"screenshots/eip191/{PATH_IMG[cmd.model]}/personal_sign_reject/00004.png") - cmd.client.press_and_release('both') - - if cmd.model == "nanox" or cmd.model == "nanosp": - # Sign message - compare_screenshot(cmd, f"screenshots/eip191/{PATH_IMG[cmd.model]}/personal_sign_reject/00000.png") - cmd.client.press_and_release('right') - - # Message - compare_screenshot(cmd, f"screenshots/eip191/{PATH_IMG[cmd.model]}/personal_sign_reject/00001.png") - cmd.client.press_and_release('right') - - # Sign message - compare_screenshot(cmd, f"screenshots/eip191/{PATH_IMG[cmd.model]}/personal_sign_reject/00002.png") - cmd.client.press_and_release('right') - - # Cancel signature - compare_screenshot(cmd, f"screenshots/eip191/{PATH_IMG[cmd.model]}/personal_sign_reject/00003.png") - cmd.client.press_and_release('both') - assert error.args[0] == '0x6985' - -def test_personal_sign_non_ascii(cmd): - result: list = [] - - bip32_path="44'/60'/0'/0/0" - transaction = PersonalTransaction( - msg="0x9c22ff5f21f0b81b113e63f7db6da94fedef11b2119b4088b89664fb9a3cb658" - ) - - with cmd.personal_sign_tx(bip32_path=bip32_path, transaction=transaction, result=result) as ex: - sleep(0.5) - - if cmd.model == "nanos": - # Sign message - compare_screenshot(cmd, f"screenshots/eip191/{PATH_IMG[cmd.model]}/personal_sign_non_ascii/00000.png") - cmd.client.press_and_release('right') - - # Message 1/4, 2/4, 3/4, 4/4 - compare_screenshot(cmd, f"screenshots/eip191/{PATH_IMG[cmd.model]}/personal_sign_non_ascii/00001.png") - cmd.client.press_and_release('right') - compare_screenshot(cmd, f"screenshots/eip191/{PATH_IMG[cmd.model]}/personal_sign_non_ascii/00002.png") - cmd.client.press_and_release('right') - compare_screenshot(cmd, f"screenshots/eip191/{PATH_IMG[cmd.model]}/personal_sign_non_ascii/00003.png") - cmd.client.press_and_release('right') - compare_screenshot(cmd, f"screenshots/eip191/{PATH_IMG[cmd.model]}/personal_sign_non_ascii/00004.png") - cmd.client.press_and_release('right') - - # Sign message - compare_screenshot(cmd, f"screenshots/eip191/{PATH_IMG[cmd.model]}/personal_sign_non_ascii/00005.png") - cmd.client.press_and_release('both') - if cmd.model == "nanox" or cmd.model == "nanosp": - # Sign message - compare_screenshot(cmd, f"screenshots/eip191/{PATH_IMG[cmd.model]}/personal_sign_non_ascii/00000.png") - cmd.client.press_and_release('right') - - # Message 1/2, 2/2 - compare_screenshot(cmd, f"screenshots/eip191/{PATH_IMG[cmd.model]}/personal_sign_non_ascii/00001.png") - cmd.client.press_and_release('right') - compare_screenshot(cmd, f"screenshots/eip191/{PATH_IMG[cmd.model]}/personal_sign_non_ascii/00002.png") - cmd.client.press_and_release('right') - - # Sign message - compare_screenshot(cmd, f"screenshots/eip191/{PATH_IMG[cmd.model]}/personal_sign_non_ascii/00003.png") - cmd.client.press_and_release('both') - - v, r, s = result - - assert v == 0x1c # 28 - assert r.hex() == "64bdbdb6959425445d00ff2536a7018d2dce904e1f7475938fe4221c3c72500c" - assert s.hex() == "7c9208e99b6b9266a73aae17b73472d06499746edec34fd47a9dab42f06f2e42" - -def test_personal_sign_opensea(cmd): - result: list = [] - - bip32_path="44'/60'/0'/0/0" - transaction = PersonalTransaction( - msg="Welcome to OpenSea!\n\nClick to sign in and accept the OpenSea Terms of Service: https://opensea.io/tos\n\nThis request will not trigger a blockchain transaction or cost any gas fees.\n\nYour authentication status will reset after 24 hours.\n\nWallet address:\n0x9858effd232b4033e47d90003d41ec34ecaeda94\n\nNonce:\n2b02c8a0-f74f-4554-9821-a28054dc9121" - ) - - with cmd.personal_sign_tx(bip32_path, transaction, result) as ex: - sleep(0.5) - - if cmd.model == "nanos": - # Sign message - compare_screenshot(cmd, f"screenshots/eip191/{PATH_IMG[cmd.model]}/personal_sign_opensea/00000.png") - cmd.client.press_and_release('right') - - # Message 1/5, 2/5, 3/5, 4/5, 5/5 - compare_screenshot(cmd, f"screenshots/eip191/{PATH_IMG[cmd.model]}/personal_sign_opensea/00001.png") - cmd.client.press_and_release('right') - compare_screenshot(cmd, f"screenshots/eip191/{PATH_IMG[cmd.model]}/personal_sign_opensea/00002.png") - cmd.client.press_and_release('right') - compare_screenshot(cmd, f"screenshots/eip191/{PATH_IMG[cmd.model]}/personal_sign_opensea/00003.png") - cmd.client.press_and_release('right') - compare_screenshot(cmd, f"screenshots/eip191/{PATH_IMG[cmd.model]}/personal_sign_opensea/00004.png") - cmd.client.press_and_release('right') - compare_screenshot(cmd, f"screenshots/eip191/{PATH_IMG[cmd.model]}/personal_sign_opensea/00005.png") - cmd.client.press_and_release('right') - - # Sign message - compare_screenshot(cmd, f"screenshots/eip191/{PATH_IMG[cmd.model]}/personal_sign_opensea/00006.png") - cmd.client.press_and_release('both') - - if cmd.model == "nanox" or cmd.model == "nanosp": - # Sign message - compare_screenshot(cmd, f"screenshots/eip191/{PATH_IMG[cmd.model]}/personal_sign_opensea/00000.png") - cmd.client.press_and_release('right') - - # Message 1/5, 2/5, 3/5, 4/5, 5/5 - compare_screenshot(cmd, f"screenshots/eip191/{PATH_IMG[cmd.model]}/personal_sign_opensea/00001.png") - cmd.client.press_and_release('right') - compare_screenshot(cmd, f"screenshots/eip191/{PATH_IMG[cmd.model]}/personal_sign_opensea/00002.png") - cmd.client.press_and_release('right') - compare_screenshot(cmd, f"screenshots/eip191/{PATH_IMG[cmd.model]}/personal_sign_opensea/00003.png") - cmd.client.press_and_release('right') - compare_screenshot(cmd, f"screenshots/eip191/{PATH_IMG[cmd.model]}/personal_sign_opensea/00004.png") - cmd.client.press_and_release('right') - compare_screenshot(cmd, f"screenshots/eip191/{PATH_IMG[cmd.model]}/personal_sign_opensea/00005.png") - cmd.client.press_and_release('right') - - # Sign message - compare_screenshot(cmd, f"screenshots/eip191/{PATH_IMG[cmd.model]}/personal_sign_opensea/00006.png") - cmd.client.press_and_release('both') - - v, r, s = result - - assert v == 0x1c # 28 - assert r.hex() == "61a68c986f087730d2f6ecf89d6d1e48ab963ac461102bb02664bc05c3db75bb" - assert s.hex() == "5714729ef441e097673a7b29a681e97f6963d875eeed2081f26b0b6686cd2bd2" diff --git a/tests/speculos/screenshots/eip191/nanos/personal_sign_non_ascii/00000.png b/tests/speculos/screenshots/eip191/nanos/personal_sign_non_ascii/00000.png deleted file mode 100644 index ab16f62bfcfb15701d788a6a84fe55001d152730..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmV-$0gwKPP)m1gYoarBO3LH$euV2HeiC{**okfHIi+m$sv2p+{O|Q}I5aNh^Ys5dP#v zj%1qABdJ+S6K!y2Hbl8uvs5Q~cSHZe-9%(GG&6lVhU>>5GXsQK^2D%BBCpwrIq!n_ zbF$#pv0JKROAs&1vS|{M6`m6<_23d_XsOOAL5k@8zo4r@s|o-B(!2ofEx#wWs1tqw O00006LwR*|Yf6fo2|!!QiP=+AY!>nuoSD#O*_l3{AU z2F?3iuG1Z#vT)WxdCz$bCM?n~UfG0_+$c#-o+x&FmN{!T`~t!}fWihmvYFBnU&GC iHU}7nVHk#C7=kZ=)>zdthta420000 z@m&|&>(e-Pxt%COFx3G`$y0e}SEOjGiUr$V(++DhoC@Hx&%0tn>~eY~D=orYm8TAC zoB&M0UoMFfWjwWMM*JCw{tifInJY;sDTbU4(gi8Mp7OYKE-TtCd+8p9dYDmyZ4d z*6sE#-+n@R)80{X2Px1K;e(m@ohWoid>eTahQ+cJxgdjdI~4DW+O+H~ljJL-{^OzB z%hTkn?&4&R5WzQ7bJKaxn)?gy*a8P%CZW08jAce+7!8vvI>C5PwD3F%VD`s>~nF(@!7} f2m}Iwzz^XKS+88*y!L||00000NkvXXu0mjf@D19* diff --git a/tests/speculos/screenshots/eip191/nanos/personal_sign_non_ascii/00003.png b/tests/speculos/screenshots/eip191/nanos/personal_sign_non_ascii/00003.png deleted file mode 100644 index fcd68b2ff0dd294d869ba59869833833ab338336..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 474 zcmV<00VV#4P)Wb~JX@k{_&;UC2@s_<{Z!umi#mryXP`NRcI7~bD&3cP)=rEde zAq(c&$&J5m%U@}4oV3xR*O^c>}^#9 zd;F}~=HxbfdPf(}t~sYy(7YtYR+1H0zOMA0imnv!kRP{Fv>&EO1=iSex1EGdykA2d zy|^;_Xk@Y078W5mVBfTL06V1$Pm4N&8>$3{yzsA!MlENZqDxr(8HcqOWcUeJC`YS7I1@){sWIgaBvj^j9lH!=KV$FT{N QIsgCw07*qoM6N<$f_S6fk^lez diff --git a/tests/speculos/screenshots/eip191/nanos/personal_sign_non_ascii/00004.png b/tests/speculos/screenshots/eip191/nanos/personal_sign_non_ascii/00004.png deleted file mode 100644 index 251c562bb48fde4f7c038b5bb7b48ecf11927c88..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 490 zcmVhh zT`ZL$-Dt4{F1l^~wt|eCK{pzIh5K gI2;a#!||K=2jD|uwtM20uK)l507*qoM6N<$g1g?{yZ`_I diff --git a/tests/speculos/screenshots/eip191/nanos/personal_sign_opensea/00000.png b/tests/speculos/screenshots/eip191/nanos/personal_sign_opensea/00000.png deleted file mode 100644 index ab16f62bfcfb15701d788a6a84fe55001d152730..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmV-$0gwKPP)m1gYoarBO3LH$euV2HeiC{**okfHIi+m$sv2p+{O|Q}I5aNh^Ys5dP#v zj%1qABdJ+S6K!y2Hbl8uvs5Q~cSHZe-9%(GG&6lVhU>>5GXsQK^2D%BBCpwrIq!n_ zbF$#pv0JKROAs&1vS|{M6`m6<_23d_XsOOAL5k@8zo4r@s|o-B(!2ofEx#wWs1tqw O0000SyQLV>f``qQOXbqPQ!xHR|COsXOA0SyCJd8p>4D$G9G01l`_(uRqI zm-0Bm&=LeaYiYtkEafR_*d`q3*-+7p*k<53^!1u%AOyTIcM4XSqhdgXLp08%+! z=q2-`B8L>iaS;F>zm;Y{ zj&!821jz#B0i?eyMp+k`@-*5>54HRek%oSDznJODGUXpK{{#vm*lAeRXW1z!`B~Xjy zoAGI8WQapZ2;I@an8mpTOzf3HSkd@SvJ9DX?dY4Tu2=hTU(oHz5rZ; zcW&Y(@^ngKy8r2NR&_DJ_We(W`h=ted`L_r*}!=os@dXs5;KouA3XpLFc_Pq!grT) zn$-`3T@YSb%OM;DmxX1hPTUvOlax!H_A}V1OL_*z6WcCOy`e$Xo>ouuZ9Wstoi4QZ z0rtu`Kg?*?n!p2a8;s;pUT8Tk7TInCC2DvXLa4|LcN@FrYMmlFqHW~3gGX)07UdM79NJ?6+R3ma-P@KPV zRAMn*27p6YZ76Wizk)I-0{JC5TxgdZ#1P&dd|R&4+P N002ovPDHLkV1k+Z%<%vK diff --git a/tests/speculos/screenshots/eip191/nanos/personal_sign_opensea/00003.png b/tests/speculos/screenshots/eip191/nanos/personal_sign_opensea/00003.png deleted file mode 100644 index 582648da56a7d94ec933c29542bffe0905921119..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 465 zcmV;?0WSWDP) zt}Y19tmP6;g3E$+s7~0I)C+QYwA1U>*y|&`0ppEruW))pgQ^EEUimmLfaXpY+WQ&y zlW~3+Yu6gU9}sKc$zOS)<@lZCjVYe(9&Rv+jS=;m(XVjA>E(}IPaH;hEA%kNJ=8qJ z*e!5MI1_~vsE~bIHAFq7U0k%YsIazS7xsvwQeXewA)SC?)KixjRY}!~15|7fXgvYr znz$&h3ZN!AG*WL;Wh{vO4N|N>h!d6DRnb5ptI9k@Q$|DYMCA#fpLg&U(z8edy#vv1 zl71nuT}wq$Ur?y1qV^PRnEEZ{Zk)RTgm6L5!~z6C5ZsqH@5oSV+{|q600000NkvXX Hu0mjfC5O-K diff --git a/tests/speculos/screenshots/eip191/nanos/personal_sign_opensea/00004.png b/tests/speculos/screenshots/eip191/nanos/personal_sign_opensea/00004.png deleted file mode 100644 index 53e131782764371604e832ef97bbf7abadd774d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 449 zcmV;y0Y3hTP)>A zCic^4-VGqNf4sisQZUBV07V7)Yn4^9g&QR-eZ1VIFEK07bgE*m6!8~<~AO{WhFIm124^q rjn^$wHITeD_#eVS5ClOG1e@^zhU7M@71qgk)t^U7DQ&yf(v0)? z9rv=~g4nk0;A!sYz>kyO(cum)z1%Q9dQU(OHxirrEo_l`EzRYN>=AeiFW@b2zo+Uv z{(n%X^0YR?tbnqG=VeLQsFT1I!u;dr^pYkMkasqo6G#i$^!OggGY{81Rpxp0HUPn2 zMU-IN_PIPx=$e8`&ssL&B&4iThU+ZHl1AY#%4E=XbKE5H)xo%9+Xbq3G^l#e$1^YI z3DDB%M6sWNuZ-gZtexu*d;u{BJ^89EG#xLTtUvaip(dyQ`+RQFry5}YT3#F6`#!vX z5QAqWSQ~(4cl{7#8IcU9oS`fR7<*+&MNbQ)@}Vvu3Ex((H`@E^hAA!e7Hf}E1dMtT zT=&AtUM_{}<}D?aXg&e1ANedgr3x#Q@uyQYR4;I@V89=hRzO*l=hx}gCamNisk+G< zB}r&%mVv!^QsUn&l%grW=!0K~jS;+681jS6O2h;NK@hCV6S?wCq3f%xlK=n!07*qo IM6N<$f*F9@#{d8T diff --git a/tests/speculos/screenshots/eip191/nanos/personal_sign_opensea/00006.png b/tests/speculos/screenshots/eip191/nanos/personal_sign_opensea/00006.png deleted file mode 100644 index f5c2d6774a86d59f5cad0974eb03748765433d08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 407 zcmV;I0cie-P)H|@ zz8wshkB{~MB4`H0-uM*3M1j}m%A!300N{kCpu~9KJs1LQ1E{7`qHO>OJQ#XfRy9Bv z^==(ieYk597RD@{OEdS6GT+Lmuf_h$vek1^KVM4p7nbmHWt7bot=9>X{;(33tDmYc z&D9U$Wf)T#sV`+WTVz^Qo=ISYs`0?ozXTD=g%{*$&h`n6Q%*!K%L9vjA?<}S_3O~y z51_40w#ON-)XL64x@JligSXK^F9>U5TpZCDR;l1-dd45KJ?)^knt8<|^tT^?&`+$? zRq8>0Bcb3GkI=CJNF3=@I3K*Rlqo0JRixhcTL&d5MMji-{W*PXyu+hM-x=UTI}_BI zGx^;Gypw%}(Vkv=s~wl1InZ7QJjtlNRl_ihQog8p&yJp0VZ8tV002ovPDHLkV1iJ- Bw$=au diff --git a/tests/speculos/screenshots/eip191/nanos/personal_sign_reject/00000.png b/tests/speculos/screenshots/eip191/nanos/personal_sign_reject/00000.png deleted file mode 100644 index ab16f62bfcfb15701d788a6a84fe55001d152730..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmV-$0gwKPP)m1gYoarBO3LH$euV2HeiC{**okfHIi+m$sv2p+{O|Q}I5aNh^Ys5dP#v zj%1qABdJ+S6K!y2Hbl8uvs5Q~cSHZe-9%(GG&6lVhU>>5GXsQK^2D%BBCpwrIq!n_ zbF$#pv0JKROAs&1vS|{M6`m6<_23d_XsOOAL5k@8zo4r@s|o-B(!2ofEx#wWs1tqw O00009Z)nZ zoKdfPKxBZtOD`O!Ud7)^nCSVm48R~fHVz_gJJ3!JB$;A z73W%!0pdWH0?92?e|oM4;Hw|T0`;d{4QW3j_ock`M?Xgb+dqG3V=);*`>L5M!*3 zyn*l22E3i0(*}f;QjGCl{>9XNe5J+MNHO?$vL${q;BrljQT0^etb8Q?5rp6KbFd0C z&S!wi?F*0@c?|NAMn7T|W*iPcUVPL-Bv*RwxNGrBSJomSBPV|v}pRwN^TJgTAsZYt}Th%Kg=3yaxKw|Ey;g2`gF%`v^M~t(O7h_ zH>s{!A`O$3M_RbUT8j^}YG2*jXNKHtz@oOXaBl{*_aN5--g?%yQ}CW^piAnS#{KXh zmKLte0QJ_5V9tCS+I!b;kADjZA%qY@2qAi<1<)ust$A*~1i00000005j&Ypu2Jj^YWw zy90QoT&ZuaQvl6=DP?aYPf1pQ*$k63`;x8zO;>}w*_U($&=hOZQ)gd9es%|NhM$F! zW?$0X0Zo_gyxGq!-I5;w002`g?B41@dShn48j^qcKMg+SRb@~2kiDXt9?G(zZ_&4C zhfSe&Es>ja8l-41$VME{IyOzQ?Ue@1yRzZ^H{)W~!1tfC>juYNH#BJt?4%T&zcu@I zbg0WXI2uYRp~7D9ao)DXaZq_zsB{W|%4eW}Iz^4!e zUu_N6PY6z&;*%m4K>3kw6W0ds>@{hh*5YKJ%(KU&1ONcAAJx@!`E?Y1^<~WN}zCyXs#X zo?o6k@9c|LZskJhD8km*o@uZbHa}-B?&(7HD5C%IYmwHRbJ)2) z`V`bZme<8JnX>F>hL3vOBL0b~>J+pM|9!ySI57nP0000WkROv_^0k3i)wKWs002ov JPDHLkV1lAe!YTj& diff --git a/tests/speculos/screenshots/eip191/nanox/personal_sign_non_ascii/00001.png b/tests/speculos/screenshots/eip191/nanox/personal_sign_non_ascii/00001.png deleted file mode 100644 index 93eda35385a2312963bba2b12c1c5f518b17e39f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 882 zcmV-&1C9KNP)6Q%z zf)wUGA>CWet#3eEQ!r9yz`f=3!!`u2FToi$3!gig*k@On+X`8ta#<7d&sI36vo{=BKe17GS$g$0&k)*i~Ca0 z_OsZ@q9zt^F&b~M3DY_ZsP}GdC>g%zRQ(ucO2`b6TG!jX&fmHRq^#WB<)3*Iz8UX4 zS`=f~F5$52skdE1#}X@9Obzx5`Z1M4KlM&=beD}{Q(r&pIZYKpbO`j3M8!b;C4@pL}#kPAEHl@Du$ zWklK1>jobe_ah3cA;C>}P8j&zYJ{c>d{}NhC)Vl(0g@Y zTIZX`sXoAN=qllnzIA!A_h5P=_Wxbq2h53@DL~D~JTm(PUvMJtnt%sUR=r7XDJvsk z0+i%CDu~nB*-KNRY{_%r)@7lK`$zirQxru}6h-lyP}R@|xwXQQx|j-Gk&4sK&FB_2 zAqp)qiU7$iqUgwdo^r)i(%vFgS3ZPKA#49dDN#&K*JW=LIXIVY!daKSrI$u8n~6WT zGns_nu6Z%Yr3rv3l{^joj2ZcgP{Eyx-i%x^et=EDVvuApE^!G@#7mTsiKux$FI7XA z24#h)IgK;{p#Yh+2SB6loa?e7O2!WrR#L1eilQirqA1?Ne?C3o5S)?U3jhEB07*qo IM6N<$f;&B*c>n+a diff --git a/tests/speculos/screenshots/eip191/nanox/personal_sign_non_ascii/00002.png b/tests/speculos/screenshots/eip191/nanox/personal_sign_non_ascii/00002.png deleted file mode 100644 index 873634efa0bd3de936624c6dbdec7f3c5b33077f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 570 zcmV-A0>%A_P)T=mewjbsv>P0nqkEo-p3+2T8CC8O&O=C%~ z%Go`NM^8Z6P^wbRZ0nNq#UXUB+t?=R?L0&8(2TL<1gMk|8z-Yy$953|CX6o4sWPsF zaN-xBc0Q^jk~_T?E^l5bWp5=^b(~^()+x~4tE_TCm%2AqhX1i?Jk`x%D!tT~th)^2 z!%+1Es5j@>C2SX}-Q@_??maiC+I^qEdJie3=7M$llX;gC@{+>;`VNTNwt?F}(gi(C z&jkShfRoufzzE$uIZ-t?SsL4crVKIdVI1xNS9Uj&Q9JJ*`MuivQtfrOQ;ce@YAZk6 z=|44mv`u)%HW`v`3qxbG>Q3G;Qi{(7d0dcR{h41nP8VT2tKKZsFXsVf7r>vCznl3g z^DI@p+oDuuQDlPJ)<`wcj9Hp4jVF)t)B+g)MhqH%EvG$Tbal>h9nbv_C^RQM#4kIy z!j_B2rVT@H4bkwPc8O|EnzoamJr9un{t%rBL+wa<;10Nu_j3>O2hkN7^&dl#8ucHB zHP{JWXeSpUvj$5+UH||9000000000000000000000Dxuu0&U>+zsop!Qvd(}07*qo IM6N<$g7=g90RR91 diff --git a/tests/speculos/screenshots/eip191/nanox/personal_sign_non_ascii/00003.png b/tests/speculos/screenshots/eip191/nanox/personal_sign_non_ascii/00003.png deleted file mode 100644 index c9da92b60a9314d8252cfcd68c1cd10acaf07bb1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 463 zcmV;=0WkiFP)i<1<)ust$A*~1i00000005j&Ypu2Jj^YWw zy90QoT&ZuaQvl6=DP?aYPf1pQ*$k63`;x8zO;>}w*_U($&=hOZQ)gd9es%|NhM$F! zW?$0X0Zo_gyxGq!-I5;w002`g?B41@dShn48j^qcKMg+SRb@~2kiDXt9?G(zZ_&4C zhfSe&Es>ja8l-41$VME{IyOzQ?Ue@1yRzZ^H{)W~!1tfC>juYNH#BJt?4%T&zcu@I zbg0WXI2uYRp~7D9ao)DXaZq_zsB{W|%4eW}Iz^4!e zUu_N6PY6z&;*%m4K>3kw6W0ds>@{hh*5YKJ%(KU&1ONcAAJx@!`E?Y1^<~WN}zCyXs#X zo?o6k@9c|LZskJhD8km*o@uZbHa}-B?&(7HD5C%IYmwHRbJ)2) z`V`bZme<8JnX>F>hL3vOBL0b~>J+pM|9!ySI57nP0000WkROv_^0k3i)wKWs002ov JPDHLkV1lAe!YTj& diff --git a/tests/speculos/screenshots/eip191/nanox/personal_sign_opensea/00001.png b/tests/speculos/screenshots/eip191/nanox/personal_sign_opensea/00001.png deleted file mode 100644 index 802fad56d37a5496b01e613af00acd1b784e63aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 853 zcmV-b1FHOqP)@~p&BKdi-~k#ki13!%WXI4deZD{d}ge| z*qn{16D|SBCm(hqqCGu#Tr(~I34mRTWl`^HfU#BkMhqnSrF|Bg#Vqm`KzJ%-6GT<( zA1PO=ZVy#~wGDMEi@r~X0{B5M**bPnQbV<7zjk&$uv_ap0z6pqMzJU@GTv;%D&yM& z;JWKsvZb;sWxrNZQI<%EsfeT_&oW9mtUv|$tsDVHFSBn>_7S9|K8{800s7IM|}e3M$s>&}Mm#%jyRdBKsR8#YatSH>d(%+2+sMXX51U5)CjsU+VON1Mf4R_5Ur$Q5Txgh(I z$GpB11BEX+6`F`t#A5130Ql@jvzWF2yeN7TTPUfPZb`cGLf2EFd$HWO4t0;=1D2k#emh&gk)_vd4 zFReAHWjptM5103}x7K=x-Ukj(;cud?^MMZSUPkQ?(95kg_$Tcg;V02n=Lr*bp=?Y! zS}xgZY-ft}uU!8QS$YC`(6OFE9)T_Gmy0+E_R*(+A^&#SC|M36h)NW^I7m zgNf&wy;F?y6<3ndh1%5Vwq$dB0@6e8tu<-jE1R^Zdr4>@`_^DLIOzOAZ*QNA=;ZSL zG8k8v_ZL%pu#?I{I~h2+_FyVb_s-rGNvJpk<8AZm6=ZqsaPM1)2t-yXLQx`N2dVmZ z6fd-HQuIr@HhlrcQN5>P2Q32%P{BJ1Y#RMO6gZ{MZsQL9(jjUpEw4VN@nkRkZYUcy zFu2^eSB?cpTjH2K65xwAVCvn4#U@<<9kt-AxRj-8=wglYzy(l3CxAY1q=ygt5LWV! zBwo5@PSl4TMU&D{k)?gQA0m=)h3EX3Xx5o}$fi-M9KsmPyF?WUNbBBgEzRfxmSd#R-&JG%*e-;@(z zKfm@-5kXX10CWxfY5WL25tpLX0f~vlVhTP~9QHpeD|W;bl=~e`i>b&&RJ5_ocmjh; zI8i=auSDuI!d!36`!h&;2rF1jQSDH2A8lksN;ISAG58)`#6ABwihN2!cTi&7W@-b9 eq9}@D6aN4>tGTwWostLu00003`I#QH}UFRtt2 zQvRL$zN<6Mw}RZOx325Ld0O!(J_Bu?4+v-lq_?{uCuzjbSD>v%9VVos1@2w1|hTGoVdvGEyK|eTpzz`#f?L?N*sAr~S%()+;G!HYx5#ey8d=REUORxLql+`%nj{gDAH)u5ZSLBA0@ z`<9^cJJ^LmEu?Vk0I)_@0cy9@3yg!57n)(K09_*VkWk8Bub*e_0}foHB6q@@;oe7+ zBuSFpY?e?|p=r*-gf(Zwhu?y@`X2iXbT)i!BUYo2>M&l94;TEY4vxOQHsl@3)cRM8J6A%p6GT&c=dDWb=?ab4}h=ui!JY1M&D z;kD(8U27}LdZJ%Bhe`#yw4?)Yla75v&-FndumddKsEVNQ?CLd3kViIUsii^MS1UDo zU7~KgWb8+cN$&|TSCA0OwiRQO P00000NkvXXu0mjfmobDs diff --git a/tests/speculos/screenshots/eip191/nanox/personal_sign_opensea/00004.png b/tests/speculos/screenshots/eip191/nanox/personal_sign_opensea/00004.png deleted file mode 100644 index eab9f1d489e914195b0f28fae10625d1802d26c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 814 zcmV+}1JV46P)WgU0~?00000z;eC)%cT1N{OV?s31*Q0W5jM%F3vhdDGqM zT{Ml8jq42J15hR(HWAe`y>#3)d23fnj$j|5o_T#WBwd@W!kLwVOuv(#l>DPZGL?UX zWm+R`S4Lu83Oeq|u1spBL`nk08rucwUGcByHHlqw9|sAE5+S8kNY{gW);=I=+6GSl z$er+Fr1wz(005hbdQa%Hvr^1?5Vi0!ZfAC@L9^qXy553xO}y4VSs9&}a_+)NN0NPK zE9rLFoAvafbV_a~<|U0)yYxb~LWdo5C){Vs-1;igp<>D}3%aC;z}3C?+2A+MPT20; zs7!ya78Iq*25y%o3B~%kV{518DduNM5q_i-y>M%E1^8E=k{qRIlcNG<#I>Eetw*Qy z_ehK!)kE9Usp2JbDg3Do<{>&6-d_geYIuJ!h`~;fg?3^%88Mj3Qupe@!(s*xa?_3U zYq#YU%nN|iphw>6?r|`*L!YIv`d_{_HXV1(>w?t|6(KY4uzgnY z#EwF}FVa>~VVf>y@E|F|$w)rwJHVOB%L3r~zRYLAth0t!K7^G+C?cIcK}prwwgRLl ss`EgqdnuUd#jm*n000000Pt3R0a$Qy>tzDFPXGV_07*qoM6N<$f(VR)`v3p{ diff --git a/tests/speculos/screenshots/eip191/nanox/personal_sign_opensea/00005.png b/tests/speculos/screenshots/eip191/nanox/personal_sign_opensea/00005.png deleted file mode 100644 index 0b4bdbd98ccf3f72a060e4b0c5fb192c849418e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 522 zcmV+l0`>igP)(Y^%m5cW=uhAqiEo}2D=s@d#V3zu;T7DOK7Xv3hhbH zm)c+C`{ZPy+TEs7Laf>n{|HK>x=nwI@{@3>FM8d;bl?g{Q&91{vop+G-0HGAgeUhZ)z;dFJ=on1UuBcjc!}{^=t!)uNlmXctFV;`Avf zhju5ZJC;@|5Tlt>h}q4})Y@Cx@-EwJFJeiC&(fu4o4RXGpMq}ZX*tUICVZIIc@zKu zp2)B|xqb+T_>aDX6}Jeg2Wj45cf^ z;l*|6z+}9iOhJ2hfcsD)a#sVn)cADGRgZaQm+Y#B29K363!Ft47n%A=@&NBwiqNlW z=e5(d?%R<&z-8a*3V~Ug?yDePD%8VHK7`GL({i;gXp3GtDZQ-HpyPAm;)7|5jQYng zq(=S2um*QR7P^yx$gIIukQV>|00000000000000000000003YczYvwlj>9mIv;Y7A M07*qoM6N<$f`&Er1^@s6 diff --git a/tests/speculos/screenshots/eip191/nanox/personal_sign_opensea/00006.png b/tests/speculos/screenshots/eip191/nanox/personal_sign_opensea/00006.png deleted file mode 100644 index c9da92b60a9314d8252cfcd68c1cd10acaf07bb1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 463 zcmV;=0WkiFP)i<1<)ust$A*~1i00000005j&Ypu2Jj^YWw zy90QoT&ZuaQvl6=DP?aYPf1pQ*$k63`;x8zO;>}w*_U($&=hOZQ)gd9es%|NhM$F! zW?$0X0Zo_gyxGq!-I5;w002`g?B41@dShn48j^qcKMg+SRb@~2kiDXt9?G(zZ_&4C zhfSe&Es>ja8l-41$VME{IyOzQ?Ue@1yRzZ^H{)W~!1tfC>juYNH#BJt?4%T&zcu@I zbg0WXI2uYRp~7D9ao)DXaZq_zsB{W|%4eW}Iz^4!e zUu_N6PY6z&;*%m4K>3kw6W0ds>@{hh*5YKJ%(KU&1ONcAAJx@!`E?Y1^<~WN}zCyXs#X zo?o6k@9c|LZskJhD8km*o@uZbHa}-B?&(7HD5C%IYmwHRbJ)2) z`V`bZme<8JnX>F>hL3vOBL0b~>J+pM|9!ySI57nP0000WkROv_^0k3i)wKWs002ov JPDHLkV1lAe!YTj& diff --git a/tests/speculos/screenshots/eip191/nanox/personal_sign_reject/00001.png b/tests/speculos/screenshots/eip191/nanox/personal_sign_reject/00001.png deleted file mode 100644 index 717f3a5bac5957ea60d4ba4c2c5276a2a15c7761..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 503 zcmV2M1_fq%w zZ(xfvpP)qB>paZeW&9moeGw~e>x)+;@yJnA;W)0@v(#SJ@-As-^Q+|>P3iTuoxbjS ztHuh*^OE~ITA!?n4OMo-?pw{8*6P?-t6WTdw<6N1S6|^`9~}ZxQ={MYW6PDN{zAY%HUBI~4K-shfD>fK tpew=)0000000000000000001V^8>!&mq6`OZlM4G002ovPDHLkV1iod?C}5q diff --git a/tests/speculos/screenshots/eip191/nanox/personal_sign_reject/00002.png b/tests/speculos/screenshots/eip191/nanox/personal_sign_reject/00002.png deleted file mode 100644 index c9da92b60a9314d8252cfcd68c1cd10acaf07bb1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 463 zcmV;=0WkiFP)i<1<)ust$A*~1i00000005j&Ypu2Jj^YWw zy90QoT&ZuaQvl6=DP?aYPf1pQ*$k63`;x8zO;>}w*_U($&=hOZQ)gd9es%|NhM$F! zW?$0X0Zo_gyxGq!-I5;w002`g?B41@dShn48j^qcKMg+SRb@~2kiDXt9?G(zZ_&4C zhfSe&Es>ja8l-41$VME{IyOzQ?Ue@1yRzZ^H{)W~!1tfC>juYNH#BJt?4%T&zcu@I zbg0WXI2uYRp~7D9ao)DXaZq_zsB{W|%4eW}Iz^4!e zUu_N6PY6z&;*%m4K>3kw6W0ds>@{hh* Date: Fri, 29 Mar 2024 10:38:31 +0100 Subject: [PATCH 10/35] Port 'test_erc20information' from 'speculos' to 'ragger' --- tests/ragger/test_erc20information.py | 26 +++++++++++++++++++++ tests/speculos/test_erc20information.py | 31 ------------------------- 2 files changed, 26 insertions(+), 31 deletions(-) create mode 100644 tests/ragger/test_erc20information.py delete mode 100644 tests/speculos/test_erc20information.py diff --git a/tests/ragger/test_erc20information.py b/tests/ragger/test_erc20information.py new file mode 100644 index 0000000..e8ac552 --- /dev/null +++ b/tests/ragger/test_erc20information.py @@ -0,0 +1,26 @@ +import pytest +from ledger_app_clients.ethereum.client import EthAppClient, StatusWord + +from ragger.error import ExceptionRAPDU +from ragger.backend import BackendInterface + + +def test_provide_erc20_token(backend: BackendInterface): + + app_client = EthAppClient(backend) + + addr = bytes.fromhex("e41d2489571d322189246dafa5ebde1f4699f498") + response = app_client.provide_token_metadata("ZRX", addr, 18, 1) + assert response.status == StatusWord.OK + + +def test_provide_erc20_token_error(backend: BackendInterface): + + app_client = EthAppClient(backend) + + addr = bytes.fromhex("e41d2489571d322189246dafa5ebde1f4699f498") + sign = bytes.fromhex("deadbeef") + with pytest.raises(ExceptionRAPDU) as e: + app_client.provide_token_metadata("ZRX", addr, 18, 1, sign) + + assert e.value.status == StatusWord.INVALID_DATA diff --git a/tests/speculos/test_erc20information.py b/tests/speculos/test_erc20information.py deleted file mode 100644 index de01c63..0000000 --- a/tests/speculos/test_erc20information.py +++ /dev/null @@ -1,31 +0,0 @@ -import pytest -from ethereum_client.plugin import ERC20Information -import ethereum_client - -def test_provide_erc20_token(cmd): - erc20_info = ERC20Information( - erc20_ticker="5a5258", - addr="0xe41d2489571d322189246dafa5ebde1f4699f498", - nb_decimals=18, - chainID=1, - sign="304402200ae8634c22762a8ba41d2acb1e068dcce947337c6dd984f13b820d396176952302203306a49d8a6c35b11a61088e1570b3928ca3a0db6bd36f577b5ef87628561ff7" - ) - - # Test if return 9000 - try: - cmd.provide_erc20_token_information(info=erc20_info) - except: - raise - -def test_provide_erc20_token_error(cmd): - erc20_info = ERC20Information( - erc20_ticker="5a5258", - addr="0xe41d2489571d322189246dafa5ebde1f4699f498", - nb_decimals=18, - chainID=1, - sign="deadbeef" - ) - - with pytest.raises(ethereum_client.exception.errors.UnknownDeviceError) as error: - cmd.provide_erc20_token_information(info=erc20_info) - assert error.args[0] == '0x6a80' From 5d5b68f56b24cde95e04549177ceb5bdbcf932b1 Mon Sep 17 00:00:00 2001 From: Charles-Edouard de la Vergne Date: Fri, 29 Mar 2024 09:23:07 +0100 Subject: [PATCH 11/35] Refactor of 'ragger' test 'eip712' --- tests/ragger/test_eip712.py | 145 +++++++++++++++++++----------------- 1 file changed, 76 insertions(+), 69 deletions(-) diff --git a/tests/ragger/test_eip712.py b/tests/ragger/test_eip712.py index 4b58287..975e10f 100644 --- a/tests/ragger/test_eip712.py +++ b/tests/ragger/test_eip712.py @@ -9,6 +9,7 @@ from typing import Optional import pytest import ledger_app_clients.ethereum.response_parser as ResponseParser +from ledger_app_clients.ethereum.utils import recover_message from ledger_app_clients.ethereum.client import EthAppClient from ledger_app_clients.ethereum.eip712 import InputData from ledger_app_clients.ethereum.settings import SettingID, settings_toggle @@ -16,6 +17,7 @@ from ledger_app_clients.ethereum.settings import SettingID, settings_toggle from ragger.backend import BackendInterface from ragger.firmware import Firmware from ragger.navigator import Navigator, NavInsID + from constants import ROOT_SNAPSHOT_PATH @@ -96,11 +98,11 @@ def autonext(firmware: Firmware, navigator: Navigator): moves = [NavInsID.USE_CASE_REVIEW_TAP] if snaps_config is not None: navigator.navigate_and_compare(ROOT_SNAPSHOT_PATH, - snaps_config.test_name, - moves, - screen_change_before_first_instruction=False, - screen_change_after_last_instruction=False, - snap_start_idx=snaps_config.idx) + snaps_config.test_name, + moves, + screen_change_before_first_instruction=False, + screen_change_after_last_instruction=False, + snap_start_idx=snaps_config.idx) snaps_config.idx += 1 else: navigator.navigate(moves, @@ -151,37 +153,38 @@ def test_eip712_new(firmware: Firmware, app_client = EthAppClient(backend) if firmware.device == "nanos": pytest.skip("Not supported on LNS") - else: - test_path = f"{input_file.parent}/{'-'.join(input_file.stem.split('-')[:-1])}" - conf_file = f"{test_path}.ini" - filters = None - if filtering: - try: - with open(f"{test_path}-filter.json", encoding="utf-8") as f: - filters = json.load(f) - except (IOError, json.decoder.JSONDecodeError) as e: - pytest.skip(f"Filter file error: {e.strerror}") + test_path = f"{input_file.parent}/{'-'.join(input_file.stem.split('-')[:-1])}" + conf_file = f"{test_path}.ini" - config = ConfigParser() - config.read(conf_file) + filters = None + if filtering: + try: + filterfile = Path(f"{test_path}-filter.json") + with open(filterfile, encoding="utf-8") as f: + filters = json.load(f) + except (IOError, json.decoder.JSONDecodeError) as e: + pytest.skip(f"{filterfile.name}: {e.strerror}") - # sanity check - assert "signature" in config.sections() - assert "v" in config["signature"] - assert "r" in config["signature"] - assert "s" in config["signature"] + config = ConfigParser() + config.read(conf_file) - if verbose: - settings_toggle(firmware, navigator, [SettingID.VERBOSE_EIP712]) + # sanity check + assert "signature" in config.sections() + assert "v" in config["signature"] + assert "r" in config["signature"] + assert "s" in config["signature"] - with open(input_file, encoding="utf-8") as file: - v, r, s = eip712_new_common(firmware, - navigator, - app_client, - json.load(file), - filters, - verbose) + if verbose: + settings_toggle(firmware, navigator, [SettingID.VERBOSE_EIP712]) + + with open(input_file, encoding="utf-8") as file: + v, r, s = eip712_new_common(firmware, + navigator, + app_client, + json.load(file), + filters, + verbose) assert v == bytes.fromhex(config["signature"]["v"]) assert r == bytes.fromhex(config["signature"]["r"]) @@ -197,44 +200,48 @@ def test_eip712_address_substitution(firmware: Firmware, app_client = EthAppClient(backend) if firmware.device == "nanos": pytest.skip("Not supported on LNS") + + with app_client.get_public_addr(display=False): + pass + _, DEVICE_ADDR, _ = ResponseParser.pk_addr(app_client.response().data) + + test_name = "eip712_address_substitution" + 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:])) + + if verbose: + settings_toggle(firmware, navigator, [SettingID.VERBOSE_EIP712]) + filters = None else: - test_name = "eip712_address_substitution" - 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) + filters = { + "name": "Token test", + "fields": { + "amount": "Amount", + "token": "Token", + "to": "To", + } + } - app_client.provide_token_metadata("DAI", - bytes.fromhex(data["message"]["token"][2:]), - 18, - 1) + vrs = eip712_new_common(firmware, + navigator, + app_client, + data, + filters, + verbose) - challenge = ResponseParser.challenge(app_client.get_challenge().data) - app_client.provide_domain_name(challenge, - "vitalik.eth", - bytes.fromhex(data["message"]["to"][2:])) - - if verbose: - settings_toggle(firmware, navigator, [SettingID.VERBOSE_EIP712]) - filters = None - else: - filters = { - "name": "Token test", - "fields": { - "amount": "Amount", - "token": "Token", - "to": "To", - } - } - - v, r, s = eip712_new_common(firmware, - navigator, - app_client, - data, - filters, - verbose) - - assert v == bytes.fromhex("1b") - assert r == bytes.fromhex("d4a0e058251cdc3845aaa5eb8409d8a189ac668db7c55a64eb3121b0db7fd8c0") - assert s == bytes.fromhex("3221800e4f45272c6fa8fafda5e94c848d1a4b90c442aa62afa8e8d6a9af0f00") + # verify signature + addr = recover_message(data, vrs) + assert addr == DEVICE_ADDR From ed6d6b222e52a5772b909ac4f31216a04285ec4e Mon Sep 17 00:00:00 2001 From: Charles-Edouard de la Vergne Date: Thu, 28 Mar 2024 17:30:16 +0100 Subject: [PATCH 12/35] Remove useless 'speculos' tests eip712, erc721, erc1155 --- .../nanos/sign_eip_712_hashed_msg/00000.png | Bin 414 -> 0 bytes .../nanos/sign_eip_712_hashed_msg/00001.png | Bin 503 -> 0 bytes .../nanos/sign_eip_712_hashed_msg/00002.png | Bin 497 -> 0 bytes .../nanos/sign_eip_712_hashed_msg/00003.png | Bin 485 -> 0 bytes .../nanos/sign_eip_712_hashed_msg/00004.png | Bin 486 -> 0 bytes .../nanos/sign_eip_712_hashed_msg/00005.png | Bin 540 -> 0 bytes .../nanos/sign_eip_712_hashed_msg/00006.png | Bin 520 -> 0 bytes .../nanos/sign_eip_712_hashed_msg/00007.png | Bin 517 -> 0 bytes .../nanos/sign_eip_712_hashed_msg/00008.png | Bin 501 -> 0 bytes .../nanos/sign_eip_712_hashed_msg/00009.png | Bin 407 -> 0 bytes .../sign_eip_712_hashed_msg_reject/00000.png | Bin 414 -> 0 bytes .../sign_eip_712_hashed_msg_reject/00001.png | Bin 503 -> 0 bytes .../sign_eip_712_hashed_msg_reject/00002.png | Bin 497 -> 0 bytes .../sign_eip_712_hashed_msg_reject/00003.png | Bin 485 -> 0 bytes .../sign_eip_712_hashed_msg_reject/00004.png | Bin 486 -> 0 bytes .../sign_eip_712_hashed_msg_reject/00005.png | Bin 540 -> 0 bytes .../sign_eip_712_hashed_msg_reject/00006.png | Bin 520 -> 0 bytes .../sign_eip_712_hashed_msg_reject/00007.png | Bin 517 -> 0 bytes .../sign_eip_712_hashed_msg_reject/00008.png | Bin 501 -> 0 bytes .../sign_eip_712_hashed_msg_reject/00009.png | Bin 407 -> 0 bytes .../sign_eip_712_hashed_msg_reject/00010.png | Bin 449 -> 0 bytes .../nanox/sign_eip_712_hashed_msg/00000.png | Bin 473 -> 0 bytes .../nanox/sign_eip_712_hashed_msg/00001.png | Bin 890 -> 0 bytes .../nanox/sign_eip_712_hashed_msg/00002.png | Bin 551 -> 0 bytes .../nanox/sign_eip_712_hashed_msg/00003.png | Bin 919 -> 0 bytes .../nanox/sign_eip_712_hashed_msg/00004.png | Bin 562 -> 0 bytes .../nanox/sign_eip_712_hashed_msg/00005.png | Bin 457 -> 0 bytes .../sign_eip_712_hashed_msg_reject/00000.png | Bin 473 -> 0 bytes .../sign_eip_712_hashed_msg_reject/00001.png | Bin 890 -> 0 bytes .../sign_eip_712_hashed_msg_reject/00002.png | Bin 551 -> 0 bytes .../sign_eip_712_hashed_msg_reject/00003.png | Bin 919 -> 0 bytes .../sign_eip_712_hashed_msg_reject/00004.png | Bin 562 -> 0 bytes .../sign_eip_712_hashed_msg_reject/00005.png | Bin 457 -> 0 bytes .../sign_eip_712_hashed_msg_reject/00006.png | Bin 499 -> 0 bytes .../sign_eip_712_hashed_msg_reject/00009.png | Bin 499 -> 0 bytes .../test_transfer_batch_erc1155/00000.png | Bin 414 -> 0 bytes .../test_transfer_batch_erc1155/00001.png | Bin 372 -> 0 bytes .../test_transfer_batch_erc1155/00002.png | Bin 710 -> 0 bytes .../test_transfer_batch_erc1155/00003.png | Bin 592 -> 0 bytes .../test_transfer_batch_erc1155/00004.png | Bin 823 -> 0 bytes .../test_transfer_batch_erc1155/00005.png | Bin 500 -> 0 bytes .../test_transfer_batch_erc1155/00006.png | Bin 462 -> 0 bytes .../test_transfer_batch_erc1155/00007.png | Bin 472 -> 0 bytes .../erc1155/nanox/transfer_erc1155/00000.png | Bin 414 -> 0 bytes .../erc1155/nanox/transfer_erc1155/00001.png | Bin 328 -> 0 bytes .../erc1155/nanox/transfer_erc1155/00002.png | Bin 710 -> 0 bytes .../erc1155/nanox/transfer_erc1155/00003.png | Bin 528 -> 0 bytes .../erc1155/nanox/transfer_erc1155/00004.png | Bin 823 -> 0 bytes .../erc1155/nanox/transfer_erc1155/00005.png | Bin 792 -> 0 bytes .../erc1155/nanox/transfer_erc1155/00006.png | Bin 558 -> 0 bytes .../erc1155/nanox/transfer_erc1155/00007.png | Bin 312 -> 0 bytes .../erc1155/nanox/transfer_erc1155/00008.png | Bin 463 -> 0 bytes .../erc1155/nanox/transfer_erc1155/00009.png | Bin 472 -> 0 bytes .../erc721/nanox/transfer_erc721/00000.png | Bin 414 -> 0 bytes .../erc721/nanox/transfer_erc721/00001.png | Bin 328 -> 0 bytes .../erc721/nanox/transfer_erc721/00002.png | Bin 710 -> 0 bytes .../erc721/nanox/transfer_erc721/00003.png | Bin 442 -> 0 bytes .../erc721/nanox/transfer_erc721/00004.png | Bin 770 -> 0 bytes .../erc721/nanox/transfer_erc721/00005.png | Bin 352 -> 0 bytes .../erc721/nanox/transfer_erc721/00006.png | Bin 461 -> 0 bytes .../erc721/nanox/transfer_erc721/00007.png | Bin 472 -> 0 bytes tests/speculos/test_eip712.py | 179 --------------- tests/speculos/test_erc1155.py | 208 ------------------ tests/speculos/test_erc721.py | 115 ---------- 64 files changed, 502 deletions(-) delete mode 100644 tests/speculos/screenshots/eip712/nanos/sign_eip_712_hashed_msg/00000.png delete mode 100644 tests/speculos/screenshots/eip712/nanos/sign_eip_712_hashed_msg/00001.png delete mode 100644 tests/speculos/screenshots/eip712/nanos/sign_eip_712_hashed_msg/00002.png delete mode 100644 tests/speculos/screenshots/eip712/nanos/sign_eip_712_hashed_msg/00003.png delete mode 100644 tests/speculos/screenshots/eip712/nanos/sign_eip_712_hashed_msg/00004.png delete mode 100644 tests/speculos/screenshots/eip712/nanos/sign_eip_712_hashed_msg/00005.png delete mode 100644 tests/speculos/screenshots/eip712/nanos/sign_eip_712_hashed_msg/00006.png delete mode 100644 tests/speculos/screenshots/eip712/nanos/sign_eip_712_hashed_msg/00007.png delete mode 100644 tests/speculos/screenshots/eip712/nanos/sign_eip_712_hashed_msg/00008.png delete mode 100644 tests/speculos/screenshots/eip712/nanos/sign_eip_712_hashed_msg/00009.png delete mode 100644 tests/speculos/screenshots/eip712/nanos/sign_eip_712_hashed_msg_reject/00000.png delete mode 100644 tests/speculos/screenshots/eip712/nanos/sign_eip_712_hashed_msg_reject/00001.png delete mode 100644 tests/speculos/screenshots/eip712/nanos/sign_eip_712_hashed_msg_reject/00002.png delete mode 100644 tests/speculos/screenshots/eip712/nanos/sign_eip_712_hashed_msg_reject/00003.png delete mode 100644 tests/speculos/screenshots/eip712/nanos/sign_eip_712_hashed_msg_reject/00004.png delete mode 100644 tests/speculos/screenshots/eip712/nanos/sign_eip_712_hashed_msg_reject/00005.png delete mode 100644 tests/speculos/screenshots/eip712/nanos/sign_eip_712_hashed_msg_reject/00006.png delete mode 100644 tests/speculos/screenshots/eip712/nanos/sign_eip_712_hashed_msg_reject/00007.png delete mode 100644 tests/speculos/screenshots/eip712/nanos/sign_eip_712_hashed_msg_reject/00008.png delete mode 100644 tests/speculos/screenshots/eip712/nanos/sign_eip_712_hashed_msg_reject/00009.png delete mode 100644 tests/speculos/screenshots/eip712/nanos/sign_eip_712_hashed_msg_reject/00010.png delete mode 100644 tests/speculos/screenshots/eip712/nanox/sign_eip_712_hashed_msg/00000.png delete mode 100644 tests/speculos/screenshots/eip712/nanox/sign_eip_712_hashed_msg/00001.png delete mode 100644 tests/speculos/screenshots/eip712/nanox/sign_eip_712_hashed_msg/00002.png delete mode 100644 tests/speculos/screenshots/eip712/nanox/sign_eip_712_hashed_msg/00003.png delete mode 100644 tests/speculos/screenshots/eip712/nanox/sign_eip_712_hashed_msg/00004.png delete mode 100644 tests/speculos/screenshots/eip712/nanox/sign_eip_712_hashed_msg/00005.png delete mode 100644 tests/speculos/screenshots/eip712/nanox/sign_eip_712_hashed_msg_reject/00000.png delete mode 100644 tests/speculos/screenshots/eip712/nanox/sign_eip_712_hashed_msg_reject/00001.png delete mode 100644 tests/speculos/screenshots/eip712/nanox/sign_eip_712_hashed_msg_reject/00002.png delete mode 100644 tests/speculos/screenshots/eip712/nanox/sign_eip_712_hashed_msg_reject/00003.png delete mode 100644 tests/speculos/screenshots/eip712/nanox/sign_eip_712_hashed_msg_reject/00004.png delete mode 100644 tests/speculos/screenshots/eip712/nanox/sign_eip_712_hashed_msg_reject/00005.png delete mode 100644 tests/speculos/screenshots/eip712/nanox/sign_eip_712_hashed_msg_reject/00006.png delete mode 100644 tests/speculos/screenshots/eip712/nanox/sign_eip_712_hashed_msg_reject/00009.png delete mode 100644 tests/speculos/screenshots/erc1155/nanox/test_transfer_batch_erc1155/00000.png delete mode 100644 tests/speculos/screenshots/erc1155/nanox/test_transfer_batch_erc1155/00001.png delete mode 100644 tests/speculos/screenshots/erc1155/nanox/test_transfer_batch_erc1155/00002.png delete mode 100644 tests/speculos/screenshots/erc1155/nanox/test_transfer_batch_erc1155/00003.png delete mode 100644 tests/speculos/screenshots/erc1155/nanox/test_transfer_batch_erc1155/00004.png delete mode 100644 tests/speculos/screenshots/erc1155/nanox/test_transfer_batch_erc1155/00005.png delete mode 100644 tests/speculos/screenshots/erc1155/nanox/test_transfer_batch_erc1155/00006.png delete mode 100644 tests/speculos/screenshots/erc1155/nanox/test_transfer_batch_erc1155/00007.png delete mode 100644 tests/speculos/screenshots/erc1155/nanox/transfer_erc1155/00000.png delete mode 100644 tests/speculos/screenshots/erc1155/nanox/transfer_erc1155/00001.png delete mode 100644 tests/speculos/screenshots/erc1155/nanox/transfer_erc1155/00002.png delete mode 100644 tests/speculos/screenshots/erc1155/nanox/transfer_erc1155/00003.png delete mode 100644 tests/speculos/screenshots/erc1155/nanox/transfer_erc1155/00004.png delete mode 100644 tests/speculos/screenshots/erc1155/nanox/transfer_erc1155/00005.png delete mode 100644 tests/speculos/screenshots/erc1155/nanox/transfer_erc1155/00006.png delete mode 100644 tests/speculos/screenshots/erc1155/nanox/transfer_erc1155/00007.png delete mode 100644 tests/speculos/screenshots/erc1155/nanox/transfer_erc1155/00008.png delete mode 100644 tests/speculos/screenshots/erc1155/nanox/transfer_erc1155/00009.png delete mode 100644 tests/speculos/screenshots/erc721/nanox/transfer_erc721/00000.png delete mode 100644 tests/speculos/screenshots/erc721/nanox/transfer_erc721/00001.png delete mode 100644 tests/speculos/screenshots/erc721/nanox/transfer_erc721/00002.png delete mode 100644 tests/speculos/screenshots/erc721/nanox/transfer_erc721/00003.png delete mode 100644 tests/speculos/screenshots/erc721/nanox/transfer_erc721/00004.png delete mode 100644 tests/speculos/screenshots/erc721/nanox/transfer_erc721/00005.png delete mode 100644 tests/speculos/screenshots/erc721/nanox/transfer_erc721/00006.png delete mode 100644 tests/speculos/screenshots/erc721/nanox/transfer_erc721/00007.png delete mode 100644 tests/speculos/test_eip712.py delete mode 100644 tests/speculos/test_erc1155.py delete mode 100644 tests/speculos/test_erc721.py diff --git a/tests/speculos/screenshots/eip712/nanos/sign_eip_712_hashed_msg/00000.png b/tests/speculos/screenshots/eip712/nanos/sign_eip_712_hashed_msg/00000.png deleted file mode 100644 index 910bc4302f985d6662a4ac1db98ae5a445448805..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 414 zcmV;P0b%}$P)u4+VS)XAz z7Crj%499dp+qfp9k&{t8C`IMLs_o?&YT5+_fmV{1F#|D+T2QrB5CMGAAF~-IQrE`RCD6UAJkc(3Z3 z-4ZhCGcbmT=y+Wo%zxe_QB|1cQ8%H|&5Xqt4Zw)grqfn#CHJZcbiKsRR@s^})VX*3TB~*$~wY%QDK;dN- zm|s@B8#~!vir6#zGW(rx=>eT;E=^h-p#Zp?!QbP#eo%7M!c(*S%;3^LI$EY+@{4zX zdVcZ@##d-JP?a>ktE61vKyA|~!d8U>psprqlWf7a@VZZ)oYiLx01yBq;WQazRc84K tK0-}OofoRjSuUhIUKB-96h-mB_yOQsc3o##6a@eP002ovPDHLkV1i2B?dkvk diff --git a/tests/speculos/screenshots/eip712/nanos/sign_eip_712_hashed_msg/00002.png b/tests/speculos/screenshots/eip712/nanos/sign_eip_712_hashed_msg/00002.png deleted file mode 100644 index f6dba7ed9b6f8bdd30d46afd1677f219427da355..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 497 zcmVv+0TG6AYY)lMhid!P-X4C4AoNfrtNq0JIY)!P@gQGN2{aUNNG<_=Jo zgDbRD?&@Q-V6!s&*s^E*bFAJ0y{uh9RuIP)d);u@iO1IyPW!k%E9WM><(~s-1`*HR z$^|gDhEDH*J>(qlX~xF2YIMIshZ(2;3=?A)!t%kEg?%NxcuUF=N4qZhHk6P>X6jwxMfiwY*<~2Ak+IyU4>=x zi%D(E3-7=$VWyVLd}@-PqvBBF8@fKzeZXhae+MQ2lWibbf0CCa02DI$_YC=1vV>wpNNF9)?gao=mKB0WpP|-&G_9wh n+N!q4W5B{72!bF8f*_?o0MLRs4Y#xq00000NkvXXu0mjf4ir+MMJ=2hlYc?&PJGj%6gdK-9x5eCk|aqCJRcvQaOHtwrctezGL3Hu zcLmAtqeN%`d1UdC8GtSa zv61Q$SD&VrNmf3O;TEJZ#2%0646qWrf>3QOrA)wdbY={}-wLHRu6v|ygSPr}MVMQP z_>`Z{fIZY0M1{H6<5oKx0Q7`}XRK9~A8Jz;=hFuX-V`+E#Kic_vHl%6ZPyGJWPaKE zWlI1!u^;#TP7qh8_cxOpg>>^}liIkmrO<^VapvgoVeD{yq@DtAnR6!0 zTveGu&4w?`eEJru&ZDU#iA7CDY|ex?Ur>thv#e0F0qIQ`=F~uY`(5DzY7f*D13YEt zsFJlpl@tKDbHR80sCpqxSh)4;=_gDDtbHGfMbsf7)|Bif7;8aP82l(TqX%Zc=kkky zI!Hw{VpGof=haYCVG@P))4rqF*dc(dex|Tl1^z@;L zxoONX`84a5M|LNgjZ&AsubsV;s(M#cf-cG;bq7Sr{dS}vo)y+|gYAc(bcr#xJ^2W! zr5%q^Hy`6milH3N`WPR#?tnEMKJdHQlVaqhAwv#ePssj^jf$E_3dg2CrjwjjP6$)0 z&-BNT^5UitW5Cy1pH?|Q8}rT9UkqbvSbs6_!JQxq-O1U=8`B+4q&#Jr(%2WXnw(mi zNL&SptdzW8v}qYr-Yiu~{RFW94dTMYb z*EqoW0&G$-%$T%=wr1(l&;gYANJ1tjeROPKRZ>6_3YqWoPn*gIE~%=gv%_g900000 c03afwKVmX<>Pl4N%K!iX07*qoM6N<$f>`0`tqGtQt0v(i z`~V+iyIqP#Yv1C-&^^moV~mI^S3uj+&ZhR!=&Ngr!Ok$Bc$p${B>DpCx|0sEmYM|0 z2lhxP^GIcH*u8W&@#m9EKO}zFCd?A0o;SDG^oce$8c?f$%!Ww^p)EcLJpYOg<3Q$`I1hu(Gw-Gu#S9tWI;D~{k76ypLI%f-DL@*Njcp*FN@ zyMBjW0F2ze8e~sB%d@gwtHY{nZOLzL`I8CC>YgPi#H1BqFE4uw(O#z4qAh-&2r9Y< zlq%o@_kgxSsi1GF0l_HZ7z&X`Ou6=d^+v}~%NZ_q43*Pd`pGORKEouoAO8XA3MxsG eBuSDaY4`#8e3F_{{>Byn0000=e`v(y|E`A!W5~ zsLd`?QtqnPzSzCmxW-4*)T%Ffw)Z8@40dWfWPEwy$7jTT0%&P)?b-+6{CN|9&VU)( zgGYN$at>B<_bl{m{=Vdmd8`zhqyi2I(TTT^FF$%JX6;b>UR|l|qt}|)PIZa#ZLmWy zp@fB05n?5hkToS;+jT9HZZRiTm{QshCY^-41&Kt!b`oY!lCusCQj8bFELwCe5<5~6 z3{|(J6cj;o4?*U1YBuSDa59AjikFDtedUtdH0000< KMNUMnLSTaNM(3>n diff --git a/tests/speculos/screenshots/eip712/nanos/sign_eip_712_hashed_msg/00007.png b/tests/speculos/screenshots/eip712/nanos/sign_eip_712_hashed_msg/00007.png deleted file mode 100644 index 61bcb2d482cdda0d8b70853675f5118dfd2c39cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 517 zcmV+g0{Z=lP)T-;VkG-L=#_thd6qbg)M^+*!m1fDF}if2vD{)ZEM4FWH8ffm8ZF1 zys&L?hVA95W05b-d>Y< z2WN716}mT{gS-fjwFRPWC%Y$Y<;Qo$q90PxI6=|^Yo0arbrZ4M@i>+_+M*CYbs-kA zdookH#r0$%L~{-sFWm0k|d#cJ2cd_&Fqe7KZPCkIPr6qy- z=Wtk1=8=&{FIY==LviHh))JuY;}N|BAoYRuH{H-0y1rBmjDJHL$oP1KK7jsR#Jq%y zlCpXq8Pi2e$L?_VA(40aPibmZQ7@-nq9kNeBZxTlIG&!A0g{SUur6Hty@vL?G2rU% zeZdzbpTSBlorP}C@0+}V)AoB9wrjNEumrSQK!*yIY4T`O3|X{jj9RE45>V#2jS;(} z3tzB&C&xH7)KIc}O}1J_HqDB5^k-GNlhw{|MQB|k=;nGdTUfTL7z?jKQ}U*-D5hsS zlu~TB6V2q<6y!=ZECiuDV0IC8oe%Z6H|@ zz8wshkB{~MB4`H0-uM*3M1j}m%A!300N{kCpu~9KJs1LQ1E{7`qHO>OJQ#XfRy9Bv z^==(ieYk597RD@{OEdS6GT+Lmuf_h$vek1^KVM4p7nbmHWt7bot=9>X{;(33tDmYc z&D9U$Wf)T#sV`+WTVz^Qo=ISYs`0?ozXTD=g%{*$&h`n6Q%*!K%L9vjA?<}S_3O~y z51_40w#ON-)XL64x@JligSXK^F9>U5TpZCDR;l1-dd45KJ?)^knt8<|^tT^?&`+$? zRq8>0Bcb3GkI=CJNF3=@I3K*Rlqo0JRixhcTL&d5MMji-{W*PXyu+hM-x=UTI}_BI zGx^;Gypw%}(Vkv=s~wl1InZ7QJjtlNRl_ihQog8p&yJp0VZ8tV002ovPDHLkV1iJ- Bw$=au diff --git a/tests/speculos/screenshots/eip712/nanos/sign_eip_712_hashed_msg_reject/00000.png b/tests/speculos/screenshots/eip712/nanos/sign_eip_712_hashed_msg_reject/00000.png deleted file mode 100644 index 910bc4302f985d6662a4ac1db98ae5a445448805..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 414 zcmV;P0b%}$P)u4+VS)XAz z7Crj%499dp+qfp9k&{t8C`IMLs_o?&YT5+_fmV{1F#|D+T2QrB5CMGAAF~-IQrE`RCD6UAJkc(3Z3 z-4ZhCGcbmT=y+Wo%zxe_QB|1cQ8%H|&5Xqt4Zw)grqfn#CHJZcbiKsRR@s^})VX*3TB~*$~wY%QDK;dN- zm|s@B8#~!vir6#zGW(rx=>eT;E=^h-p#Zp?!QbP#eo%7M!c(*S%;3^LI$EY+@{4zX zdVcZ@##d-JP?a>ktE61vKyA|~!d8U>psprqlWf7a@VZZ)oYiLx01yBq;WQazRc84K tK0-}OofoRjSuUhIUKB-96h-mB_yOQsc3o##6a@eP002ovPDHLkV1i2B?dkvk diff --git a/tests/speculos/screenshots/eip712/nanos/sign_eip_712_hashed_msg_reject/00002.png b/tests/speculos/screenshots/eip712/nanos/sign_eip_712_hashed_msg_reject/00002.png deleted file mode 100644 index f6dba7ed9b6f8bdd30d46afd1677f219427da355..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 497 zcmVv+0TG6AYY)lMhid!P-X4C4AoNfrtNq0JIY)!P@gQGN2{aUNNG<_=Jo zgDbRD?&@Q-V6!s&*s^E*bFAJ0y{uh9RuIP)d);u@iO1IyPW!k%E9WM><(~s-1`*HR z$^|gDhEDH*J>(qlX~xF2YIMIshZ(2;3=?A)!t%kEg?%NxcuUF=N4qZhHk6P>X6jwxMfiwY*<~2Ak+IyU4>=x zi%D(E3-7=$VWyVLd}@-PqvBBF8@fKzeZXhae+MQ2lWibbf0CCa02DI$_YC=1vV>wpNNF9)?gao=mKB0WpP|-&G_9wh n+N!q4W5B{72!bF8f*_?o0MLRs4Y#xq00000NkvXXu0mjf4ir+MMJ=2hlYc?&PJGj%6gdK-9x5eCk|aqCJRcvQaOHtwrctezGL3Hu zcLmAtqeN%`d1UdC8GtSa zv61Q$SD&VrNmf3O;TEJZ#2%0646qWrf>3QOrA)wdbY={}-wLHRu6v|ygSPr}MVMQP z_>`Z{fIZY0M1{H6<5oKx0Q7`}XRK9~A8Jz;=hFuX-V`+E#Kic_vHl%6ZPyGJWPaKE zWlI1!u^;#TP7qh8_cxOpg>>^}liIkmrO<^VapvgoVeD{yq@DtAnR6!0 zTveGu&4w?`eEJru&ZDU#iA7CDY|ex?Ur>thv#e0F0qIQ`=F~uY`(5DzY7f*D13YEt zsFJlpl@tKDbHR80sCpqxSh)4;=_gDDtbHGfMbsf7)|Bif7;8aP82l(TqX%Zc=kkky zI!Hw{VpGof=haYCVG@P))4rqF*dc(dex|Tl1^z@;L zxoONX`84a5M|LNgjZ&AsubsV;s(M#cf-cG;bq7Sr{dS}vo)y+|gYAc(bcr#xJ^2W! zr5%q^Hy`6milH3N`WPR#?tnEMKJdHQlVaqhAwv#ePssj^jf$E_3dg2CrjwjjP6$)0 z&-BNT^5UitW5Cy1pH?|Q8}rT9UkqbvSbs6_!JQxq-O1U=8`B+4q&#Jr(%2WXnw(mi zNL&SptdzW8v}qYr-Yiu~{RFW94dTMYb z*EqoW0&G$-%$T%=wr1(l&;gYANJ1tjeROPKRZ>6_3YqWoPn*gIE~%=gv%_g900000 c03afwKVmX<>Pl4N%K!iX07*qoM6N<$f>`0`tqGtQt0v(i z`~V+iyIqP#Yv1C-&^^moV~mI^S3uj+&ZhR!=&Ngr!Ok$Bc$p${B>DpCx|0sEmYM|0 z2lhxP^GIcH*u8W&@#m9EKO}zFCd?A0o;SDG^oce$8c?f$%!Ww^p)EcLJpYOg<3Q$`I1hu(Gw-Gu#S9tWI;D~{k76ypLI%f-DL@*Njcp*FN@ zyMBjW0F2ze8e~sB%d@gwtHY{nZOLzL`I8CC>YgPi#H1BqFE4uw(O#z4qAh-&2r9Y< zlq%o@_kgxSsi1GF0l_HZ7z&X`Ou6=d^+v}~%NZ_q43*Pd`pGORKEouoAO8XA3MxsG eBuSDaY4`#8e3F_{{>Byn0000=e`v(y|E`A!W5~ zsLd`?QtqnPzSzCmxW-4*)T%Ffw)Z8@40dWfWPEwy$7jTT0%&P)?b-+6{CN|9&VU)( zgGYN$at>B<_bl{m{=Vdmd8`zhqyi2I(TTT^FF$%JX6;b>UR|l|qt}|)PIZa#ZLmWy zp@fB05n?5hkToS;+jT9HZZRiTm{QshCY^-41&Kt!b`oY!lCusCQj8bFELwCe5<5~6 z3{|(J6cj;o4?*U1YBuSDa59AjikFDtedUtdH0000< KMNUMnLSTaNM(3>n diff --git a/tests/speculos/screenshots/eip712/nanos/sign_eip_712_hashed_msg_reject/00007.png b/tests/speculos/screenshots/eip712/nanos/sign_eip_712_hashed_msg_reject/00007.png deleted file mode 100644 index 61bcb2d482cdda0d8b70853675f5118dfd2c39cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 517 zcmV+g0{Z=lP)T-;VkG-L=#_thd6qbg)M^+*!m1fDF}if2vD{)ZEM4FWH8ffm8ZF1 zys&L?hVA95W05b-d>Y< z2WN716}mT{gS-fjwFRPWC%Y$Y<;Qo$q90PxI6=|^Yo0arbrZ4M@i>+_+M*CYbs-kA zdookH#r0$%L~{-sFWm0k|d#cJ2cd_&Fqe7KZPCkIPr6qy- z=Wtk1=8=&{FIY==LviHh))JuY;}N|BAoYRuH{H-0y1rBmjDJHL$oP1KK7jsR#Jq%y zlCpXq8Pi2e$L?_VA(40aPibmZQ7@-nq9kNeBZxTlIG&!A0g{SUur6Hty@vL?G2rU% zeZdzbpTSBlorP}C@0+}V)AoB9wrjNEumrSQK!*yIY4T`O3|X{jj9RE45>V#2jS;(} z3tzB&C&xH7)KIc}O}1J_HqDB5^k-GNlhw{|MQB|k=;nGdTUfTL7z?jKQ}U*-D5hsS zlu~TB6V2q<6y!=ZECiuDV0IC8oe%Z6H|@ zz8wshkB{~MB4`H0-uM*3M1j}m%A!300N{kCpu~9KJs1LQ1E{7`qHO>OJQ#XfRy9Bv z^==(ieYk597RD@{OEdS6GT+Lmuf_h$vek1^KVM4p7nbmHWt7bot=9>X{;(33tDmYc z&D9U$Wf)T#sV`+WTVz^Qo=ISYs`0?ozXTD=g%{*$&h`n6Q%*!K%L9vjA?<}S_3O~y z51_40w#ON-)XL64x@JligSXK^F9>U5TpZCDR;l1-dd45KJ?)^knt8<|^tT^?&`+$? zRq8>0Bcb3GkI=CJNF3=@I3K*Rlqo0JRixhcTL&d5MMji-{W*PXyu+hM-x=UTI}_BI zGx^;Gypw%}(Vkv=s~wl1InZ7QJjtlNRl_ihQog8p&yJp0VZ8tV002ovPDHLkV1iJ- Bw$=au diff --git a/tests/speculos/screenshots/eip712/nanos/sign_eip_712_hashed_msg_reject/00010.png b/tests/speculos/screenshots/eip712/nanos/sign_eip_712_hashed_msg_reject/00010.png deleted file mode 100644 index d55782f429e629a5ae929916914befa14613edba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 449 zcmV;y0Y3hTP)9Z)nZ zoKdfPKxBZtOD`O!Ud7)^nCSVm48R~fHVz_gJJ3!JB$;A z73W%!0pdWH0?92?e|oM4;Hw|T=q9}++yIP#$#j!m5^exS zz+}2fFX=r8JdElH5Z(1#dLzJ@d7d#T0RR9zkLvC@{o4-b#&d>V@Olw{Qhp=JC*hP* ze&(v$CdMdHq04bD8(yuPe6}+mUxbB+j@Sq&JG)G;>8tv_Of9IF`aC{V8pehyFamrk zsn2Y*0u8Xun9W@KS20j;W!56I20WGIe?vDCyM6$`aiZIsFI~S2dUn1pckwRBmM6XP%`s%YvTHqZ3lwXSA8(yvzTEo$z)$(N682X1xVDy4{PzgV-)>~P%m z(SxSeRT|*hab4YQn?v%8>M*os9$Wn$H1mutMdS&3k#ezJft*eqW4tHkAtS*5@x-oX zb|Lk%2&YUpGG7h%y~aaI0W0RR910Dz=F-WV#{$lGiw P00000NkvXXu0mjfFUZz( diff --git a/tests/speculos/screenshots/eip712/nanox/sign_eip_712_hashed_msg/00001.png b/tests/speculos/screenshots/eip712/nanox/sign_eip_712_hashed_msg/00001.png deleted file mode 100644 index dfd24f466fe52dfc942c6d5aca57bdad6509f6e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 890 zcmV-=1BLvFP)ds)(R(hY{{DZg>k-qO%^72WeehE92Xlo`<3n99tbg(x-N zjnG3J3}lG1iZsx*;zk3X+DYtL*EI`EZkOp9pb2gSnN3;c^~L4iFX>#yed@UtjA*~K zHX~=3hus;VTS6AW^5rY`x%13O{cJifm;tl&hznPI&!@TU6teGgcK~z}k3UEUYDe01 zwc~$!09tE$t-NMtVz)26B|V?*3naGmndFtocB_`V4`u(hsJ*d1k^KRvii8kC$PWin zLy@hO7D-Yi$5d>z{ggZzc=Ia8WK@VfcgBCE7%|?rItD!%Ly_8y``gwN3}8l=G~-Y(k1v5zGJd$?taD~j00e1 zEnRTlHo;w4)laYqb5R<4Va8n51+P{z>X&nuwTzG9=Q3=~iAs_K2og979})f}Hrh5>M$2eZW})IW~SE-N$DQKp?W>`x$Vv4vUYG@g64MaZM+L`+`>jvg3836MO zxS;{>K))QTZhgUJ{r|{`&6c}B2qAV!Z07*qoM6N<$f(GESasU7T diff --git a/tests/speculos/screenshots/eip712/nanox/sign_eip_712_hashed_msg/00002.png b/tests/speculos/screenshots/eip712/nanox/sign_eip_712_hashed_msg/00002.png deleted file mode 100644 index 542bf198f2d1726f2b6c25b14faaca2dd4abf9d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 551 zcmV+?0@(eDP)`RX{%FPwMEDN_@@!ElcMb(>p-oL_zD#_L1|=VF$}_Bgb{hz2&UvzE7tz z#O@A|(?l|0diwHpCVn$iRXh3j9rCpO}a&o#jo$wk~(K7q4qI-*z%b-nZmGk`flVvGwmrS%4Hv007{R zGtmvTP#Zz@?(ht0ot3PXq|=m@hj2Nmda|80KDQmTg<2Z>^>R1pHxd1jptkNptx_U3 zt8cN%C9Q~$J%fCpVF~T%U~4ycK6G-z@PCr!NmVo2qrR2O)|6)w+@8MJ^7ao7%Kn5k zojP)93d;FIW{unv1&m~3|%nD$&ZIo$yq_CCRV2e zJl+Y~3gKbxYnkeov&&`Zz`b;lZoqUh-oFjS)p-AASc4}a3q8re$*jSp;9dX#00000 p000000000000000004l?_yy@L2YBj25G()y002ovPDHLkV1mNa1PuTH diff --git a/tests/speculos/screenshots/eip712/nanox/sign_eip_712_hashed_msg/00003.png b/tests/speculos/screenshots/eip712/nanox/sign_eip_712_hashed_msg/00003.png deleted file mode 100644 index ae1ff79c12d58646d82b061190f89175a0784760..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 919 zcmV;I18Dq-P)_`Nv1IZJX(CH0lU= ziy1B`Y{o!3*Q?m`>;=X|#c=ix=reEjT!b}RwlA9M-dF}Vp{p>?bz#siuNDIcxWnE7 zCfzkyAYsNl(?nQ{i7JQbC*hpB14fUg_idp0gWfG-Q47p&h$aA@b2IHMBu*_ zZ=WaR#toczracodlas?@nF%m^&fg85rsU;iPZ#Q!^p7LLC6cGL^kgt`p6OKb8F0voFMI|}N!E;!beKkNL(Rpax0w3g@8OPBI!toMb;E6_j$Fqn zS_CnhNo@aoFFVyK5t7XdSM<-r9poDQ+c1W@M*n7N4xXg4(31p%Tyt5z|!oNFWwy>TN!cT(&0~44h-17Qs+Kz?N2||r<>Qet5Zo{X1&ejdfOxbae z_o<5-YL!*?;cyvB^eX&Q;F0003~DFZ*#R<@%9x)-2C* z>A5GyeYce24!m_DhRfFWeM9#@p+++)QLeQ1vCY`NTFTENTck zZ=FQ;wD!mq=JM$dsM9WvywlWL@*io4d)vnDVtggyd~9rtOC5O(L-R#+2Z&U^#?Bbm znyV?^h5J@S)vViYOBtVp2%#O&x)WXJhNK6*TDnEuA&#Nz!a#E_rkyyES8lkSNI_bH z7P0e>O_!QMjy*unHSz)sWM<)2tPPTdO`H#vq9`w;H> zkN0cn-$f^My!Nv%?A!`{Y#)3y+VA~v)kb8;d7un^S8cOf?WZSUm*7z_c+f50|2I-| zOl|KoTuWSorX-?m0q({h+i1-U=Wd>fC|Qz%T&ad7!pa@6`{v-#5(}_!`LFy2OkEeh zh23iVGSr<(v0T$u#B3Sr7LLZ9{;@LD7;o}$n!Rgnz7#dcME@8Bo7fQz-)#Q&A!PMpz3O%n|+fjfT!4#E}eZd``R7A6>%04 z&A!Rq0acf7-Rx_VTk-<{0APxR-Amm`Z_ezOhUqW=r@`mED)n>^wO4fWLn<5k8hwp+ z*c7VQlDSFeL7Ml1+K3Zc$L1++d!-5U?%MEvn{hd75c|*Sy20_M8!B3Zc2Y_%-kP`W z6B3uv5sEp6+7}?3cGS-jo%#RmC+k+Iq6=2ZCt{yO@|m#fhCEXc001~`+bXE-Sq__* zaSL|sh|S-mJG0AswVnF_Z;Zqai5F&=srY7G+YlXo%RjEI;O00000NkvXXu0mjf&CAl) diff --git a/tests/speculos/screenshots/eip712/nanox/sign_eip_712_hashed_msg_reject/00000.png b/tests/speculos/screenshots/eip712/nanox/sign_eip_712_hashed_msg_reject/00000.png deleted file mode 100644 index 00a89fd69969482dbf568f243c7f23ee15f59837..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 473 zcmV;~0Ve*5P)=q9}++yIP#$#j!m5^exS zz+}2fFX=r8JdElH5Z(1#dLzJ@d7d#T0RR9zkLvC@{o4-b#&d>V@Olw{Qhp=JC*hP* ze&(v$CdMdHq04bD8(yuPe6}+mUxbB+j@Sq&JG)G;>8tv_Of9IF`aC{V8pehyFamrk zsn2Y*0u8Xun9W@KS20j;W!56I20WGIe?vDCyM6$`aiZIsFI~S2dUn1pckwRBmM6XP%`s%YvTHqZ3lwXSA8(yvzTEo$z)$(N682X1xVDy4{PzgV-)>~P%m z(SxSeRT|*hab4YQn?v%8>M*os9$Wn$H1mutMdS&3k#ezJft*eqW4tHkAtS*5@x-oX zb|Lk%2&YUpGG7h%y~aaI0W0RR910Dz=F-WV#{$lGiw P00000NkvXXu0mjfFUZz( diff --git a/tests/speculos/screenshots/eip712/nanox/sign_eip_712_hashed_msg_reject/00001.png b/tests/speculos/screenshots/eip712/nanox/sign_eip_712_hashed_msg_reject/00001.png deleted file mode 100644 index dfd24f466fe52dfc942c6d5aca57bdad6509f6e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 890 zcmV-=1BLvFP)ds)(R(hY{{DZg>k-qO%^72WeehE92Xlo`<3n99tbg(x-N zjnG3J3}lG1iZsx*;zk3X+DYtL*EI`EZkOp9pb2gSnN3;c^~L4iFX>#yed@UtjA*~K zHX~=3hus;VTS6AW^5rY`x%13O{cJifm;tl&hznPI&!@TU6teGgcK~z}k3UEUYDe01 zwc~$!09tE$t-NMtVz)26B|V?*3naGmndFtocB_`V4`u(hsJ*d1k^KRvii8kC$PWin zLy@hO7D-Yi$5d>z{ggZzc=Ia8WK@VfcgBCE7%|?rItD!%Ly_8y``gwN3}8l=G~-Y(k1v5zGJd$?taD~j00e1 zEnRTlHo;w4)laYqb5R<4Va8n51+P{z>X&nuwTzG9=Q3=~iAs_K2og979})f}Hrh5>M$2eZW})IW~SE-N$DQKp?W>`x$Vv4vUYG@g64MaZM+L`+`>jvg3836MO zxS;{>K))QTZhgUJ{r|{`&6c}B2qAV!Z07*qoM6N<$f(GESasU7T diff --git a/tests/speculos/screenshots/eip712/nanox/sign_eip_712_hashed_msg_reject/00002.png b/tests/speculos/screenshots/eip712/nanox/sign_eip_712_hashed_msg_reject/00002.png deleted file mode 100644 index 542bf198f2d1726f2b6c25b14faaca2dd4abf9d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 551 zcmV+?0@(eDP)`RX{%FPwMEDN_@@!ElcMb(>p-oL_zD#_L1|=VF$}_Bgb{hz2&UvzE7tz z#O@A|(?l|0diwHpCVn$iRXh3j9rCpO}a&o#jo$wk~(K7q4qI-*z%b-nZmGk`flVvGwmrS%4Hv007{R zGtmvTP#Zz@?(ht0ot3PXq|=m@hj2Nmda|80KDQmTg<2Z>^>R1pHxd1jptkNptx_U3 zt8cN%C9Q~$J%fCpVF~T%U~4ycK6G-z@PCr!NmVo2qrR2O)|6)w+@8MJ^7ao7%Kn5k zojP)93d;FIW{unv1&m~3|%nD$&ZIo$yq_CCRV2e zJl+Y~3gKbxYnkeov&&`Zz`b;lZoqUh-oFjS)p-AASc4}a3q8re$*jSp;9dX#00000 p000000000000000004l?_yy@L2YBj25G()y002ovPDHLkV1mNa1PuTH diff --git a/tests/speculos/screenshots/eip712/nanox/sign_eip_712_hashed_msg_reject/00003.png b/tests/speculos/screenshots/eip712/nanox/sign_eip_712_hashed_msg_reject/00003.png deleted file mode 100644 index ae1ff79c12d58646d82b061190f89175a0784760..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 919 zcmV;I18Dq-P)_`Nv1IZJX(CH0lU= ziy1B`Y{o!3*Q?m`>;=X|#c=ix=reEjT!b}RwlA9M-dF}Vp{p>?bz#siuNDIcxWnE7 zCfzkyAYsNl(?nQ{i7JQbC*hpB14fUg_idp0gWfG-Q47p&h$aA@b2IHMBu*_ zZ=WaR#toczracodlas?@nF%m^&fg85rsU;iPZ#Q!^p7LLC6cGL^kgt`p6OKb8F0voFMI|}N!E;!beKkNL(Rpax0w3g@8OPBI!toMb;E6_j$Fqn zS_CnhNo@aoFFVyK5t7XdSM<-r9poDQ+c1W@M*n7N4xXg4(31p%Tyt5z|!oNFWwy>TN!cT(&0~44h-17Qs+Kz?N2||r<>Qet5Zo{X1&ejdfOxbae z_o<5-YL!*?;cyvB^eX&Q;F0003~DFZ*#R<@%9x)-2C* z>A5GyeYce24!m_DhRfFWeM9#@p+++)QLeQ1vCY`NTFTENTck zZ=FQ;wD!mq=JM$dsM9WvywlWL@*io4d)vnDVtggyd~9rtOC5O(L-R#+2Z&U^#?Bbm znyV?^h5J@S)vViYOBtVp2%#O&x)WXJhNK6*TDnEuA&#Nz!a#E_rkyyES8lkSNI_bH z7P0e>O_!QMjy*unHSz)sWM<)2tPPTdO`H#vq9`w;H> zkN0cn-$f^My!Nv%?A!`{Y#)3y+VA~v)kb8;d7un^S8cOf?WZSUm*7z_c+f50|2I-| zOl|KoTuWSorX-?m0q({h+i1-U=Wd>fC|Qz%T&ad7!pa@6`{v-#5(}_!`LFy2OkEeh zh23iVGSr<(v0T$u#B3Sr7LLZ9{;@LD7;o}$n!Rgnz7#dcME@8Bo7fQz-)#Q&A!PMpz3O%n|+fjfT!4#E}eZd``R7A6>%04 z&A!Rq0acf7-Rx_VTk-<{0APxR-Amm`Z_ezOhUqW=r@`mED)n>^wO4fWLn<5k8hwp+ z*c7VQlDSFeL7Ml1+K3Zc$L1++d!-5U?%MEvn{hd75c|*Sy20_M8!B3Zc2Y_%-kP`W z6B3uv5sEp6+7}?3cGS-jo%#RmC+k+Iq6=2ZCt{yO@|m#fhCEXc001~`+bXE-Sq__* zaSL|sh|S-mJG0AswVnF_Z;Zqai5F&=srY7G+YlXo%RjEI;O00000NkvXXu0mjf&CAl) diff --git a/tests/speculos/screenshots/eip712/nanox/sign_eip_712_hashed_msg_reject/00006.png b/tests/speculos/screenshots/eip712/nanox/sign_eip_712_hashed_msg_reject/00006.png deleted file mode 100644 index 121cfd59ed87f6935ffbcbe5fea8982825511b0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 499 zcmVgX9g;)ZTl>^=ArgX9g;)ZTl>^=ArvpO}&+|8}fC)JNq`>?#dJ%s{^>GN_4usXQirk{^@^BA?p!El9&T9q~zMsh2=YdLB`_ONiP zKy6XlUGFZ>Cn7mP3u*>PW<2FVjInt|Gg`l&SO@?Dj^p*6~=Ggi({_s4<^kB(#D`rz zoHn7-I>}f$FgVPoSftr9`0RfDW2xtRetr^6=s)H4t!K_(p>ILI>>ka!x428SY<-Z< zl~ZS5uA8Ud-s|()KR6>Rs@^DRgV5#+Uh2I*JZ+0A89^>bfQH0gTe~DWM4fa=n`8 diff --git a/tests/speculos/screenshots/erc1155/nanox/test_transfer_batch_erc1155/00002.png b/tests/speculos/screenshots/erc1155/nanox/test_transfer_batch_erc1155/00002.png deleted file mode 100644 index 7d01fe80c981e4dacb153b84d86a76d1e5bf7ea3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 710 zcmV;%0y+JOP)u3sS>)oAq|}pu!|U%Xyl{BVJnpv4cf)=CuT#aiY%s4dJa&LtOh0Mi z?5(?URdco49q=@vRsTj`elO8#QWO6XEUo-URwWFLa3>XkyHq`)3`f>nTI+0hKA)Bg zQf)2M741cLtBgGH%3&4E9!j;#X!Q63C%C*esOnnRR$(VC)b{mic&n&Zen%GL88AIi zfP(_;?w(e2gPs-rQ@)V7z~d59ZAz;rq>Za(pSTZt2u*E|NT$nX3E{z(gaMS9mn{7iIlPSdK?$XqOpdcB@gp z-T~mr(>m66cO?@&_XO)5;6xH1)lagmoK;(~-T?*v90Qbdqv1mS!iU;XwsOzzzcgb+dqA>>*913aAu#YLiblK=n!07*qoM6N<$f)1EUTL1t6 diff --git a/tests/speculos/screenshots/erc1155/nanox/test_transfer_batch_erc1155/00003.png b/tests/speculos/screenshots/erc1155/nanox/test_transfer_batch_erc1155/00003.png deleted file mode 100644 index 950fd72aaea19c12ebe953827e63d1da749c1441..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 592 zcmV-W0zI1bzF zG$^k}l7=JXnrGEB&R@*!w$eqSy`8m!-~hA`Q_N{x+Lw*O@;DAL9(B5uQZ_TnIL$o8 zlu6ZewO1Fv0iPE2ZsRd7?aRjeRcYo)S9h+5GNT%;HD;=ppJ^+gPH%KXHWs(KD4pP( z%OXN=_o=rKVDc8!OW9?EcQQiP+7%2wmZoh%bsa`!>Q`NN(v@y7*P;j~!2!sVrCiHh zXFEGWZY*0`5j^Sq#l*ZeE?)ou0Dx~Ku7;L~L)fe{a+k7n=^m3P?D&rm2US&IMc6_2 z=|}Y`0oO_qEwNDj?N*x^0ec-)cQryQg{{}_#F%TU)@EFY#+F{@nccSBHeRzDB)}dq z&QrRoH25VUP&DXJK0Q}Fc@^28;(UvfUyHSi0!C7jInSaPY0J#DJN2_|48P8i` z@7Ww|$JWgCA7Sl%OvLdlDLa={&od8dFQeHfD>{n-P*J*NQBN@dE$$lwsJV3)0>MQm zGX_hkyLXNn8e>rGYz2ITLiv2AtCdfXU;}Jh0pcggr7BsslphC0&6u|O-T2kYfKE9c z?KZZ(nmGPi)jQ4$``-->_v1Tu3DnTdY+C{988q)mmx`%VQVke$mIVL+0000000000 e00000cnALsF(B(E^GVnM00007?pftUHm7OLi@+n=P@CxWf||_bkMB zf?1><&FKtuu}nHDVQ(@6&Cc5bGL7f^&!9(dr}nl?W-DPlK%%LDCgH*nWro+g z>YBU9GuyEMqNSdWM(CRN1C?IV*nuC$dB(@YQm0cppq?c4rRXf;v(+k|@ym)ea>pFM z-Xb&88Q47?3(#&cvxU3%u*QwAa@{qZRZissw88C4Lxqw1!b<@Wl}V3+wbL>CsiISB zI!%^s@)RZrZjc%M$1p<8=syhC;7xc6y-5;euEADxcssrunpXBY<%$JNvtpD;uhjIF zjvQ~hB5hH`?-X8x(7OXRCPne79R<4HIKh#pl7UKaky;Z#-B6?~#9gM~-M!Q!{vKRg z$>Y}YR)lA(-Jxc8Gc5~ox=Tu5#vI05(Z6QC8JB)*ObFb=YU_2~_VCcUfml3j&{UVr z8Im2~H3(O+FzGU%w8+Q<$$|OyMl4x?t^Ll+N}0wSX%&3rp5)kkH%3h7IcZ)LsKlv` ze!zOx+UI|o#(1Vo$*y6f)(9bl5JE`H#$U?gwCNh&R@7Rc*ioGF8?l*^Cr!5xjC$bj_)&P4hbVQ&3k2)%f!qu>v~LVt6_0t_?U?KH(`V2sbrN&pxfDl3mA%u`0#ecoe%Sp5F(P{ty002ovPDHLkV1ke` Bow5J` diff --git a/tests/speculos/screenshots/erc1155/nanox/test_transfer_batch_erc1155/00005.png b/tests/speculos/screenshots/erc1155/nanox/test_transfer_batch_erc1155/00005.png deleted file mode 100644 index 05c1afa8585ff10ee02d738eb0e5dfd4133a6ecc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 500 zcmVSd;jf!<#rrDX5Ks%unZPn=GTPz!sh`EiY&vp*(O{xi=q`Spe;or~Q3CV~odf{0OCeY(_2eaS!BWDy7;f8EWA+<+TEed&udw?wY_e zIj(?Hc^)l);yFe3crtt40GsP8-z!Siz9u=YfZFaKK5rNDxIbFHUJZfV;)WylpZeEs z9FgT+-}wv}=JD2q7ho>}@W)J5L+$He;~m+f%BX5h>Xb^X_~=&kC>yHr!P)F5$*PEK z36(m;hGbMrXKtPC>Vj3@XuKBGKLu<7t5zjdwZ`1onCa~div_5)#&XMi%h8A8K&TS2 zJ+_U-N$0V%T{YADEB_Ibj*44tLnxj~!jc?j;_O%fPvcP{9p39+zXDD**2fci(JNr) zsil4ty!xrD9}L|Oz*YC4@!RBS4*BBNWfVF#s17otzfEDN8U4+;2X|r@y3@%Za}QiG qyZ`_I000000000000000fSX^=<&1R9$2iph0000JZ1(SuuJ4)?RTKMQ|yXLicGR5KMq zh}n#Pn8v9#rkzgsZ!SD>3o6%yJLkSM9`QF>gfvvOF}u5d47LqGwwaVO*9n=r+e^Hb z_O7h=#bdB}3$my9*1%MgsAP86{^K6F1*Ka})UXt?I7fb~jeB3h0002rsl6Ji7gf^6 z>}#kz>M38L<*lqmFC3LmtCV1+7QJfQU&?JHoz3+lyi$6z+)^%-C(-MDLmsTz6N_q`Ijd`Ig7kf`%AU)T|Ee z@N(%td6P)Nkl`l1;k+@4An6g^M6kcbtxu@7*hfO000000DuchDWw$aQJnB& zJ%BsK3VrpQ1hnYqoNY&PO0WdV>i`7cs)e_@w@x()p@w=B24`klR6(CLpxqtlZO|2 zIWjpO-F~*EHtLqUMt)Wc_@bMv^h#{CUFW0M(vJ1P=5N1GhWcHM(-Xu*&bc@D4_o$^ z7Y|pL)I@*DzttR=&yLH#^{|TW)8Sp0qphw%epiuSUG#WHS~ht|j~;`U4>BXmdi9@& zuz>%00000G5i7^TsbXePb2LB O0000vpO}&+|8}fC)JNq`>?#dJ%s{^>GN_4usXQirk{^@^BA?p!El9&T9q~zMsh2=YdLB`_ONiP zKy6XlUGFZ>Cn7mP3u*?Yj*NZe%~CWfG*OPo;i-j_O-xVE4x(*ytjw|n)zfm3qM^Fc~!IW3PH z=3&G7^uB>>R8cN7G`M%~8~Dv(y@wMl0ef=JL30x+0gXjJr4(YpS&Ni_M+%mJpk>|= zECB!jJVXC(X!Xzb!Z-auExGj4Gr3kE;j(mP_ElSOM$PyQq6$PO@+x6nNKV|U z#l4(~Y5SpCCZ^*LJP2>B+6ihm$fAFnjZlmJ&E%jbt58n|L6(ER5?%lR0000000000 a_?s`=hm}oltDK<#0000u3sS>)oAq|}pu!|U%Xyl{BVJnpv4cf)=CuT#aiY%s4dJa&LtOh0Mi z?5(?URdco49q=@vRsTj`elO8#QWO6XEUo-URwWFLa3>XkyHq`)3`f>nTI+0hKA)Bg zQf)2M741cLtBgGH%3&4E9!j;#X!Q63C%C*esOnnRR$(VC)b{mic&n&Zen%GL88AIi zfP(_;?w(e2gPs-rQ@)V7z~d59ZAz;rq>Za(pSTZt2u*E|NT$nX3E{z(gaMS9mn{7iIlPSdK?$XqOpdcB@gp z-T~mr(>m66cO?@&_XO)5;6xH1)lagmoK;(~-T?*v90Qbdqv1mS!iU;XwsOzzzcgb+dqA>>*913aAu#YLiblK=n!07*qoM6N<$f)1EUTL1t6 diff --git a/tests/speculos/screenshots/erc1155/nanox/transfer_erc1155/00003.png b/tests/speculos/screenshots/erc1155/nanox/transfer_erc1155/00003.png deleted file mode 100644 index a5790c197388350f3a1b1c943a17c6dd5b80c8a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 528 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|_uN>EaktG3V{f=)P739*4On z?{fZ*pHw}QU-;6Lpi|yO#?Nac-<)<5eO1Z`)Wopo-1!a9YVZHFTKc5hmg!T~v6mZK zWj?Q}c=oer)xQ_1Qn`YKj$xtC=@_$%tBgcIHaa^hnkz@8-IsBz|2n`;O+kt!s3? zEIVJ*!YH=CscNF;?3ziEyRyO!e?~@q-xuvEV)|ivj;h)e++wfnPqzis-| zenzuz{UgZ|R*TuXTRrr@SFe6DyZ-I$uB|$&_iOjpTqxBH>zi`-+JeH#$KuK=G;6;~ z)y&LVmp17HOG)CA?0+UEi~sRQ+OrF!pN{5eGMRKnCa3iaC@L{P&SU;niYFDnM@^au OlJj)+b6Mw<&;$Ug_2g3k diff --git a/tests/speculos/screenshots/erc1155/nanox/transfer_erc1155/00004.png b/tests/speculos/screenshots/erc1155/nanox/transfer_erc1155/00004.png deleted file mode 100644 index 5906d19670483bbdca21b03b527ea852b494fe6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 823 zcmV-71IYY|P)7?pftUHm7OLi@+n=P@CxWf||_bkMB zf?1><&FKtuu}nHDVQ(@6&Cc5bGL7f^&!9(dr}nl?W-DPlK%%LDCgH*nWro+g z>YBU9GuyEMqNSdWM(CRN1C?IV*nuC$dB(@YQm0cppq?c4rRXf;v(+k|@ym)ea>pFM z-Xb&88Q47?3(#&cvxU3%u*QwAa@{qZRZissw88C4Lxqw1!b<@Wl}V3+wbL>CsiISB zI!%^s@)RZrZjc%M$1p<8=syhC;7xc6y-5;euEADxcssrunpXBY<%$JNvtpD;uhjIF zjvQ~hB5hH`?-X8x(7OXRCPne79R<4HIKh#pl7UKaky;Z#-B6?~#9gM~-M!Q!{vKRg z$>Y}YR)lA(-Jxc8Gc5~ox=Tu5#vI05(Z6QC8JB)*ObFb=YU_2~_VCcUfml3j&{UVr z8Im2~H3(O+FzGU%w8+Q<$$|OyMl4x?t^Ll+N}0wSX%&3rp5)kkH%3h7IcZ)LsKlv` ze!zOx+UI|o#(1Vo$*y6f)(9bl5JE`H#$U?gwCNh&R@7Rc*ioGF8?l*^Cr!5xjC$bj_)&P4hbVQ&3k2)%f!qu>v~LVt6_0t_?U?KH(`V2sbrN&pxfDl3mA%u`0#ecoe%Sp5F(P{ty002ovPDHLkV1ke` Bow5J` diff --git a/tests/speculos/screenshots/erc1155/nanox/transfer_erc1155/00005.png b/tests/speculos/screenshots/erc1155/nanox/transfer_erc1155/00005.png deleted file mode 100644 index d6257d347a1536ff8e530304937dd86728fcae1c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 792 zcmV+z1LypSP)@TCRW};E3pCXi@pp9x2*+<~BT}(wfov?jNZap(`+m%`H2@pN zgZEn-kzg<46)WI8&)nEF*(Nr>V3M3?S!PhY#fGkf4A%qYGM-6QRldz?TQ=L>F zn|`HiIn*Rmza%i>CGt`B%&)gPmb;ZMWsE@FrZzw>g0 z^flwp4^l`@O3V`I=(b-EMuSMAh_xI8yhuXa!z)GD;yg}NDJ;r4#vr=WGO zzq-@j8^D)bL?2rLGD1x-zC;CU1F&f1$8q#>bnz0UTDJi?hRSx3GFkrIc5AR-vg)6u zJIS2=Z75UC+20If@FdJaPvT56W3UuCy{H=MYL>=9uxM9VSJ#xaM%71Lvot)6jY73d z;cAw4$)3f~8jY55ITKMa!M^a}fL&Y!)zGZ_+PdrRr(C3cDMDRb`0xTUk$Xc%?xMJR zvM*JnD*cR?=#TGci7w9}i!>q**e#zGcwb24Gbw0TjB9dhvk$NMlK`ycmI1}*%{t(4 z0D4Pxo!=?5|5}^?fP!V9@K7U2&UJf76w_EO>CcW`fe=CnA>@;R)X-6Zv#y>cJ!X9d zIw{unMu+q`%)I0$8JZC4%9GeR(%`#xmQyJIlAy*BOhkD3QuqL5$VyW zZo5>xSpYB3h*%4{hj_K`%ea{jG2I}^4>4sgO_>>gK%`fah#Km?{^fV}w3U{CfSM(I zBL2t%1s)wj{t5{Hb)%9cXlIc-x?%?)SJDd~%iMEk?5K+PGcyAz+Atx65JCtcOZW%o WV8u#kNX+B_0000$D diff --git a/tests/speculos/screenshots/erc1155/nanox/transfer_erc1155/00006.png b/tests/speculos/screenshots/erc1155/nanox/transfer_erc1155/00006.png deleted file mode 100644 index 061c754c7733618beab803330ab526c04a16a484..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 558 zcmV+}0@3}6P)UTJq`c>004mHe9c}U#&|YD2-ip1 zHaLe#IqF0?Opd?$6CG@sa+WH2EZ?&is1p7nJ3SK*&5^RlcDcPRs#~O=pV!zCtv}dUA!RNtE_Xt z#yG1gpz5<;$rqo1>+(=7d+li1INL_nBrl{b5$Qu1a1n8!Fy%pP-owi% z$wrBE@sn4*9Gx7l5JI&l$1|pRRuW;_);dhf5{I~xw5Cj{AJJhMF0OS4J??2%DW z>M`_8SocCEXXSaXu9e&h$vrIR8h3l*C(p0j=72|8|Hx9BWxAyfNY>7sJn#;v#%_;f zkA~{7W{izr6<%?zCuTt>MI&SVWhkb``isE_J0S|~q+(=zFqPcA)BhXVMqW*HCVx{C z(0_z+5O38upMRiV{I`^xH}3JBwIG{P%yGU{G33AvJg+z!s<6-Dqe9Rd!2z3j=pEom wIz7R?`Ry10000000000000000006w5U!4OsCJS)&^Z)<=07*qoM6N<$f+=MB8UO$Q diff --git a/tests/speculos/screenshots/erc1155/nanox/transfer_erc1155/00007.png b/tests/speculos/screenshots/erc1155/nanox/transfer_erc1155/00007.png deleted file mode 100644 index c748a750b1b71690ef58c191ac87c58280aab984..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 312 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h5*QvW?&978JRyuA_FcSu2i;ljF) zYJ2}r+|eyBeNt!JMN?hom(}&W7BeJgEIJL;b@#8zx>&Ey{@1(aZ9nCCP(946lQlz* zzvs`xfN9m=#BT(A&$+Y5u&~s6deEyaKPH}4IC~*`h3ex4cdXWb-}*K4=j?;`rH*74 z)(I!-ha}CG`pA+awYF3ywNE&p{KdxEB`xNkWmqjj-9 zSM%bMknyCr9>u5&ukW^bd))uWP~$IrUgZBV#j|f%B_5R@n5yYu#Okq(;p8o*GynXg z@67&ks*ZiP=d{0hWv&~Vv?AxM7n1=fYv<3J*wu6{1- HoD!M<+rx*M diff --git a/tests/speculos/screenshots/erc1155/nanox/transfer_erc1155/00008.png b/tests/speculos/screenshots/erc1155/nanox/transfer_erc1155/00008.png deleted file mode 100644 index 432e634e3ece495def371c6eaf1d002f0060716f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 463 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|^i)>EaktG3V{g+@cl*o`%F* zFMW6XpSZ)j-onVFMc@y^-F@fv*~=SwB}}D3x(x1K|Dzb}b=$FLIPUTjZ+!AG1`G@b{+H~L$`TJf z<@V7m#Qv3J{=%;-!@8|_Kj!6xwDg>>h>H5WKk)U9``u0!73XFYLTN%zNUVRz2B3j{8quko9SMLky zzB-$5B7K>H|AOb@cA@ikGUzJ>U%0T(;(vP81)-A4#_r&GV&?_qockA^n`ixS@9(_M z1eTdE{1>;(df|UeYK@Cn)Jox$YY)O&#DM{e40fE=pZ_B9Y?=K_u#BgxpUXO@geCya CGtNo? diff --git a/tests/speculos/screenshots/erc1155/nanox/transfer_erc1155/00009.png b/tests/speculos/screenshots/erc1155/nanox/transfer_erc1155/00009.png deleted file mode 100644 index 570ce28d53e82ac396ba25c370110058f3a638f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmV;}0Vn>6P)Nkl`l1;k+@4An6g^M6kcbtxu@7*hfO000000DuchDWw$aQJnB& zJ%BsK3VrpQ1hnYqoNY&PO0WdV>i`7cs)e_@w@x()p@w=B24`klR6(CLpxqtlZO|2 zIWjpO-F~*EHtLqUMt)Wc_@bMv^h#{CUFW0M(vJ1P=5N1GhWcHM(-Xu*&bc@D4_o$^ z7Y|pL)I@*DzttR=&yLH#^{|TW)8Sp0qphw%epiuSUG#WHS~ht|j~;`U4>BXmdi9@& zuz>%00000G5i7^TsbXePb2LB O0000vpO}&+|8}fC)JNq`>?#dJ%s{^>GN_4usXQirk{^@^BA?p!El9&T9q~zMsh2=YdLB`_ONiP zKy6XlUGFZ>Cn7mP3u*?Yj*NZe%~CWfG*OPo;i-j_O-xVE4x(*ytjw|n)zfm3qM^Fc~!IW3PH z=3&G7^uB>>R8cN7G`M%~8~Dv(y@wMl0ef=JL30x+0gXjJr4(YpS&Ni_M+%mJpk>|= zECB!jJVXC(X!Xzb!Z-auExGj4Gr3kE;j(mP_ElSOM$PyQq6$PO@+x6nNKV|U z#l4(~Y5SpCCZ^*LJP2>B+6ihm$fAFnjZlmJ&E%jbt58n|L6(ER5?%lR0000000000 a_?s`=hm}oltDK<#0000u3sS>)oAq|}pu!|U%Xyl{BVJnpv4cf)=CuT#aiY%s4dJa&LtOh0Mi z?5(?URdco49q=@vRsTj`elO8#QWO6XEUo-URwWFLa3>XkyHq`)3`f>nTI+0hKA)Bg zQf)2M741cLtBgGH%3&4E9!j;#X!Q63C%C*esOnnRR$(VC)b{mic&n&Zen%GL88AIi zfP(_;?w(e2gPs-rQ@)V7z~d59ZAz;rq>Za(pSTZt2u*E|NT$nX3E{z(gaMS9mn{7iIlPSdK?$XqOpdcB@gp z-T~mr(>m66cO?@&_XO)5;6xH1)lagmoK;(~-T?*v90Qbdqv1mS!iU;XwsOzzzcgb+dqA>>*913aAu#YLiblK=n!07*qoM6N<$f)1EUTL1t6 diff --git a/tests/speculos/screenshots/erc721/nanox/transfer_erc721/00003.png b/tests/speculos/screenshots/erc721/nanox/transfer_erc721/00003.png deleted file mode 100644 index 9e8c446ebafe3ddbebf6ef6a978ee29a2ba4b852..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 442 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|?+Yba4!+nDh2#blwpK9*2vW zrq+r7y_59+cC_exmPnqL`~GK_P;;l^%xQb#fVvKp#lM?oc&tRmDWlz%@l%D$%H8cI z&mtd7e*b2A+pJ{ji=2&N1%3{_QAx)VB=!AQoe*f6)o&BqW7uli_OT_BO?k4|<)>?R z)mY!U@+4o{dqdB3^~o^Ot6>Ur-~{J5f}>^sZ<4u7fe%RTUQM3c6xHb;|$d zUVo=JcS?GeZN#OU?2ofcKYU~bx_*VmjoB-jABE1?QLdKt@w@+lhif^yYmNv0d#tv- z;nwU0vDRB}|7qgf@c!?r+>}bsysULnD^8aRU$|F1|I+8sb+a2DSmdKI;Vst0BAPE6#xJL diff --git a/tests/speculos/screenshots/erc721/nanox/transfer_erc721/00004.png b/tests/speculos/screenshots/erc721/nanox/transfer_erc721/00004.png deleted file mode 100644 index 23f2a45049fefdbf9ab903d8934d9b600a527185..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 770 zcmV+d1O5DoP)kx>KP=*pJ4EMEcV)Kdf9^}NbUh?D$=mK0WI7dZ_ zfro)lHfVTa**|J?bcUPt4pT&;FlbvjDHF6 zjjPtIN3fntRd?vS2_r)?i{WeS#rtqb{z0}6n4NGF9#~~farg#ibyr8Zne6_X46EzD z0Z;>nyyR-~a&dQH){ITGu)FeA?cR05;M`OTn)N&rL!%nMqFCo=+{wNHxH5CE19m#> zn{{l%6|eOEtKa+?o(klSgd7G!Evq9{QQE1+oNd$cu+jDHht62v2FhdwW{?^E+fYKy z=-&*-;7OQ;o`n1GlgRLT)zC&de0i;&qmdG+C4;m$X8raq2YMf*Rv*6>gf{?3-qPxl z3DpM#9Jeoet6B~-%4_~HD^)lCSL8`>?gym^xd5%kF%P;{=-e`ybU-aNA`h#kDbUYg z0Hj4LtA<@Jnzp!EKUpWE(iN67hbu@YbE=^-`b|q$4IQWJ;V18qHYHUez07$b!~fi? z=_-z*dw^`|N|Z<@l_@xUappVYcQ@vMYyo#fLI@#*5K^=7m-351PMJ>0*3lvm$fei0 zzU;02*lPe1_N!e>>y5nW zjo3fQb}JyvLNb*fe}6u&itV`p5JCtcgb?x!-+H-TqnD2<+W-In07*qoM6N<$f}Dba4!+nDh2#AYZcrPebDN zH)?zTPpq15J3%r`;9~BU9sjF~wA!}FGU;&xH5uGFyPG*b#8kH9#4ls}Jdf>9&#yE) zli&T|;oZh$pC6wbzMF)EhVo8r-d)cAs_gY&qb9WkZ>_}laW%n5SWMVz1vyO{YV?wr z{&`(siCJ?-T5UG#+%&ZvK$Aa+CYf)!6KtG*Yx0Sjdfj+?^I6~DKZ=d-a+TZhsb^=( zxh?P4nBA=USMg8#;U=En+@J5>+e+mwW!2Y>MUf7tE6mszvVm-dw{vtIDK p@!1%1RX(zP)A<1uKFGlSGfU0fO;0SQbZr0$d%F6$taD0e0sz#{l0^Uj diff --git a/tests/speculos/screenshots/erc721/nanox/transfer_erc721/00006.png b/tests/speculos/screenshots/erc721/nanox/transfer_erc721/00006.png deleted file mode 100644 index 10b862ede1fb9733cfe805d11c163087e300e102..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 461 zcmV;;0W$uHP)!mqjT#1fQV6LOyWrS%B!i6ZDw*}>@O`Zd_L08ueX&s-^Fs&$s| zx>UQO*%z`c$3+dq5ccv57#NYMIe4%u!Zr{-xow$34^oY@NsC-fSRR1G-@Wf_Z zzj+;n;bBKU30F3X2cABq_%-D#w1A9}H`!Q%N`Htr zG1g!ws?bgsNoEbEBE0|r0000000000000000Khc=QGI+|Ob0X400000NkvXXu0mjf Db?()a diff --git a/tests/speculos/screenshots/erc721/nanox/transfer_erc721/00007.png b/tests/speculos/screenshots/erc721/nanox/transfer_erc721/00007.png deleted file mode 100644 index 570ce28d53e82ac396ba25c370110058f3a638f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmV;}0Vn>6P)Nkl`l1;k+@4An6g^M6kcbtxu@7*hfO000000DuchDWw$aQJnB& zJ%BsK3VrpQ1hnYqoNY&PO0WdV>i`7cs)e_@w@x()p@w=B24`klR6(CLpxqtlZO|2 zIWjpO-F~*EHtLqUMt)Wc_@bMv^h#{CUFW0M(vJ1P=5N1GhWcHM(-Xu*&bc@D4_o$^ z7Y|pL)I@*DzttR=&yLH#^{|TW)8Sp0qphw%epiuSUG#WHS~ht|j~;`U4>BXmdi9@& zuz>%00000G5i7^TsbXePb2LB O0000 Date: Fri, 29 Mar 2024 10:41:34 +0100 Subject: [PATCH 13/35] Remove 'speculos' tests --- .github/workflows/ci-workflow.yml | 66 +--- tests/speculos/.gitignore | 25 -- tests/speculos/README.md | 53 ---- tests/speculos/conftest.py | 39 --- tests/speculos/docs/README.md | 134 -------- tests/speculos/ethereum_client/__init__.py | 0 .../speculos/ethereum_client/ethereum_cmd.py | 223 ------------- .../ethereum_client/ethereum_cmd_builder.py | 293 ------------------ .../ethereum_client/exception/__init__.py | 35 --- .../exception/device_exception.py | 38 --- .../ethereum_client/exception/errors.py | 58 ---- tests/speculos/ethereum_client/plugin.py | 70 ----- tests/speculos/ethereum_client/transaction.py | 96 ------ tests/speculos/ethereum_client/utils.py | 115 ------- tests/speculos/requirements.txt | 5 - tests/speculos/setup.cfg | 20 -- 16 files changed, 1 insertion(+), 1269 deletions(-) delete mode 100644 tests/speculos/.gitignore delete mode 100644 tests/speculos/README.md delete mode 100644 tests/speculos/conftest.py delete mode 100644 tests/speculos/docs/README.md delete mode 100644 tests/speculos/ethereum_client/__init__.py delete mode 100644 tests/speculos/ethereum_client/ethereum_cmd.py delete mode 100644 tests/speculos/ethereum_client/ethereum_cmd_builder.py delete mode 100644 tests/speculos/ethereum_client/exception/__init__.py delete mode 100644 tests/speculos/ethereum_client/exception/device_exception.py delete mode 100644 tests/speculos/ethereum_client/exception/errors.py delete mode 100644 tests/speculos/ethereum_client/plugin.py delete mode 100644 tests/speculos/ethereum_client/transaction.py delete mode 100644 tests/speculos/ethereum_client/utils.py delete mode 100644 tests/speculos/requirements.txt delete mode 100644 tests/speculos/setup.cfg diff --git a/.github/workflows/ci-workflow.yml b/.github/workflows/ci-workflow.yml index 29cf364..626c36c 100644 --- a/.github/workflows/ci-workflow.yml +++ b/.github/workflows/ci-workflow.yml @@ -1,5 +1,5 @@ --- -name: Tests (Speculos and Zemu) +name: Tests (Zemu) on: workflow_dispatch: @@ -71,67 +71,3 @@ jobs: - name: Run zemu tests run: cd tests/zemu/ && yarn test - - # ===================================================== - # SPECULOS TESTS - # ===================================================== - - - building_for_e2e_speculos_tests: - name: Building binaries for E2E Speculos tests - runs-on: ubuntu-latest - container: - image: ghcr.io/ledgerhq/ledger-app-builder/ledger-app-builder-lite:latest - - steps: - - uses: actions/checkout@v4 - - - name: Build testing binaries - run: | - mkdir tests/speculos/elfs - make clean && make -j DEBUG=1 NFT_STAGING_KEY=1 BOLOS_SDK=$NANOS_SDK && mv bin/app.elf tests/speculos/elfs/nanos.elf - make clean && make -j DEBUG=1 NFT_STAGING_KEY=1 BOLOS_SDK=$NANOX_SDK && mv bin/app.elf tests/speculos/elfs/nanox.elf - make clean && make -j DEBUG=1 NFT_STAGING_KEY=1 BOLOS_SDK=$NANOSP_SDK && mv bin/app.elf tests/speculos/elfs/nanosp.elf - - - name: Upload app binaries - uses: actions/upload-artifact@v4 - with: - name: e2e_speculos_elfs - path: ./tests/speculos/elfs - - - jobs-e2e-speculos-tests: - name: Speculos tests - strategy: - fail-fast: false - matrix: - model: ["nanosp", "nanos", "nanox"] - - needs: [building_for_e2e_speculos_tests] - runs-on: ubuntu-latest - - steps: - - name: Clone - uses: actions/checkout@v4 - - - name: Create tmp folder for artifacts - run: mkdir tests/speculos/elfs - - - name: Download app binaries - uses: actions/download-artifact@v4 - with: - path: tmp/ - - - name: Gather elfs - run: cp tmp/e2e_speculos_elfs/*.elf tests/speculos/elfs/ - - - name: Install dependencies - run: | - cd tests/speculos - sudo apt-get update && sudo apt-get install -y qemu-user-static - pip install -r requirements.txt - - - name: Run speculos tests - run: | - cd tests/speculos - pytest --model ${{ matrix.model }} --path ./elfs/${{ matrix.model }}.elf --display headless diff --git a/tests/speculos/.gitignore b/tests/speculos/.gitignore deleted file mode 100644 index a6d415f..0000000 --- a/tests/speculos/.gitignore +++ /dev/null @@ -1,25 +0,0 @@ -__pycache__/ -*.py[cod] -*$py.class - - -# Environments -.env -.venv -env/ -venv/ -ENV/ -env.bak/ -venv.bak/ - -# generated by pip -pip-wheel-metadata/ - -# pytest debug logs generated via --debug -pytestdebug.log -.cache -.pytest_cache -.mypy_cache -.coverage -.coverage.* -coverage.xml diff --git a/tests/speculos/README.md b/tests/speculos/README.md deleted file mode 100644 index 3cc7fd3..0000000 --- a/tests/speculos/README.md +++ /dev/null @@ -1,53 +0,0 @@ -# Speculos functional tests - -These tests are implemented in Python with the `SpeculosClient` interface which allows easy execution on the [Speculos](https://github.com/LedgerHQ/speculos) emulator. - -## Requirements - -- [python >= 3.8](https://www.python.org/downloads/) -- [pip](https://pip.pypa.io/en/stable/installation/) - -### Dependencies - -Python dependencies are listed in [requirements.txt](requirements.txt) - -```shell -python3 -m pip install -r requirements.txt -``` - -## Usage - -### Compilation app - -Go to the root of the repository: - -```sh -make DEBUG=1 NFT_TESTING_KEY=1 BOLOS_SDK=$NANOX_SDK -mv bin/app.elf tests/speculos/.elf -``` - -Given the requirements are installed, just do (by default command): - -```shell -cd tests/speculos/ -pytest -``` - -### Custom options - -- **--model:** "nanos", "nanox", "nanosp" | default: "nanos" -- **--display:** "qt", "headless" | default: "qt" -- **--path:** the path of the binary app | default: path of makefile compilation - -## Example - -With `nanox` binary app: - -```sh -# the --path is variable to where you put your binary - -pytest --model nanox --path ./elfs/nanox.elf - -# Execute specific test: -pytest --model nanox --path ./elfs/nanox.elf test_pubkey_cmd.py -``` diff --git a/tests/speculos/conftest.py b/tests/speculos/conftest.py deleted file mode 100644 index 4d68fc6..0000000 --- a/tests/speculos/conftest.py +++ /dev/null @@ -1,39 +0,0 @@ -from pathlib import Path -import pytest - -from speculos.client import SpeculosClient - -from ethereum_client.ethereum_cmd import EthereumCommand - - -SCRIPT_DIR = Path(__file__).absolute().parent -API_URL = "http://127.0.0.1:5000" - - -def pytest_addoption(parser): - # nanos, nanox, nanosp - parser.addoption("--model", action="store", default="nanos") - # qt: default, requires a X server - # headless: nothing is displayed - parser.addoption("--display", action="store", default="qt") - - path: str = SCRIPT_DIR.parent.parent / "bin" / "app.elf" - parser.addoption("--path", action="store", default=path) - -@pytest.fixture() -def client(pytestconfig): - file_path = pytestconfig.getoption("path") - model = pytestconfig.getoption("model") - - args = ['--log-level', 'speculos:DEBUG','--model', model, '--display', pytestconfig.getoption("display")] - with SpeculosClient(app=str(file_path), args=args) as client: - yield client - - -@pytest.fixture() -def cmd(client, pytestconfig): - yield EthereumCommand( - client=client, - debug=True, - model=pytestconfig.getoption("model"), - ) diff --git a/tests/speculos/docs/README.md b/tests/speculos/docs/README.md deleted file mode 100644 index 8a10e58..0000000 --- a/tests/speculos/docs/README.md +++ /dev/null @@ -1,134 +0,0 @@ -# Documentation of Ethereum's client test - -```sh -. -├── conftest.py # Configuration for pytest -├── ethereum_client # All utils of client test -│ ├── ethereum_cmd_builder.py # Creation of apdu to send -│ ├── ethereum_cmd.py # Send Apdu and parsing of response -│ ├── exception -│ │ ├── device_exception.py -│ │ └── errors.py -│ ├── plugin.py # Creation of content apdu which manage plugin, erc20Information, provide nft information -│ ├── transaction.py # Creation of content apdu which manage personal tx, transaction, eip712 -│ └── utils.py -├── requirements.txt -├── screenshots # All screenshot of nanoS,X,SP for compare in tests -├── setup.cfg - -# ========= All Tests ========= -├── test_configuration_cmd.py -├── test_eip1559.py -├── test_eip191.py -├── test_eip2930.py -├── test_eip712.py -├── test_erc1155.py -├── test_erc20information.py -├── test_erc721.py -├── test_pubkey_cmd.py -└── test_sign_cmd.py -``` - -## Ethereum_client - -### Ethereum_cmd_builder - -```py -def chunked(size, source) - -class EthereumCommandBuilder: - # Creation of the apdu - def get_configuration(self) -> bytes: - def set_plugin(self, plugin: Plugin) -> bytes: - def provide_nft_information(self, plugin: Plugin) -> bytes: - def provide_erc20_token_information(self, info: ERC20Information): - def get_public_key(self, bip32_path: str, display: bool = False) -> bytes: - def perform_privacy_operation(self, bip32_path: str, display: bool, shared_secret: bool) -> bytes: - def simple_sign_tx(self, bip32_path: str, transaction: Transaction) -> bytes: - def sign_eip712(self, bip32_path: str, transaction: EIP712) -> bytes: - def personal_sign_tx(self, bip32_path: str, transaction: PersonalTransaction) -> Tuple[bool,bytes]: -``` - -### Ethereum_cmd - -```py -class EthereumCommand: - # Sending apdu and parsing the response in the right form - def get_configuration(self) -> Tuple[int, int, int, int]: - def set_plugin(self, plugin: Plugin): - def provide_nft_information(self, plugin: Plugin): - def provide_erc20_token_information(self, info: ERC20Information): - def get_public_key(self, bip32_path: str, result: List, display: bool = False) -> Tuple[bytes, bytes, bytes]: - def perform_privacy_operation(self, bip32_path: str, result: List, display: bool = False, shared_secret: bool = False) -> Tuple[bytes, bytes, bytes]: - def simple_sign_tx(self, bip32_path: str, transaction: Transaction, result: List = list()) -> None: - def sign_eip712(self, bip32_path: str, transaction: EIP712, result: List = list()) -> None: - def personal_sign_tx(self, bip32_path: str, transaction: PersonalTransaction, result: List = list()) -> None: - # Allows to send an apdu without return of speculos - def send_apdu(self, apdu: bytes) -> bytes: - # Allows to send an apdu with return of speculos - def send_apdu_context(self, apdu: bytes, result: List = list()) -> bytes: -``` - -### Utils - -```py -def save_screenshot(cmd, path: str): -def compare_screenshot(cmd, path: str): -def parse_sign_response(response : bytes) -> Tuple[bytes, bytes, bytes]: -def bip32_path_from_string(path: str) -> List[bytes]: -def packed_bip32_path_from_string(path: str) -> bytes: -def write_varint(n: int) -> bytes: -def read_varint(buf: BytesIO, prefix: Optional[bytes] = None) -> int: -def read(buf: BytesIO, size: int) -> bytes: -def read_uint(buf: BytesIO, bit_len: int, byteorder: Literal['big', 'little'] = 'little') -> int: -``` - -## Tests new apdu - -If a new instruction is programmed it will be necessary to create 2 new functions. -one in `ethereum_cmd_builder`: - -- Creation of the raw apdu you can find some examples in this same file - -and one in `ethereum_cmd`: - -- Send the apdu to speculos and parse the answer in a `list` named result you can find some examples in this same file - -## Example for write new tests - -To send several apdu and get the return - -```py -FIRST = bytes.fromhex("{YourAPDU}") -SECOND = bytes.fromhex("{YourAPDU}") - -def test_multiple_raw_apdu(cmd): - result: list = [] - - cmd.send_apdu(FIRST) - with cmd.send_apdu_context(SECOND, result) as ex: - sleep(0.5) - # Here your code for press button and compare screen if you want - - response: bytes = result[0] # response returning - # Here you function to parse response of some code - v, r, s = parse_sign_response(response) - - # And here assertion of your tests - assert v == 0x25 # 37 - assert r.hex() == "68ba082523584adbfc31d36d68b51d6f209ce0838215026bf1802a8f17dcdff4" - assert s.hex() == "7c92908fa05c8bc86507a3d6a1c8b3c2722ee01c836d89a61df60c1ab0b43fff" -``` - -To test an error - -```py -def test_some_error(cmd): - result: list = [] - - with pytest.raises(ethereum_client.exception.errors.UnknownDeviceError) as error: - # With an function in ethereum_cmd - with cmd.send_apdu_context(bytes.fromhex("{YourAPDU}"), result) as ex: - pass - assert error.args[0] == '0x6a80' -``` diff --git a/tests/speculos/ethereum_client/__init__.py b/tests/speculos/ethereum_client/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/tests/speculos/ethereum_client/ethereum_cmd.py b/tests/speculos/ethereum_client/ethereum_cmd.py deleted file mode 100644 index 8c575af..0000000 --- a/tests/speculos/ethereum_client/ethereum_cmd.py +++ /dev/null @@ -1,223 +0,0 @@ -from ast import List -from contextlib import contextmanager -import struct -from time import sleep -from typing import Tuple - -from speculos.client import SpeculosClient, ApduException - -from ethereum_client.ethereum_cmd_builder import EthereumCommandBuilder, InsType -from ethereum_client.exception import DeviceException -from ethereum_client.transaction import EIP712, PersonalTransaction, Transaction -from ethereum_client.plugin import ERC20Information, Plugin -from ethereum_client.utils import parse_sign_response - - -class EthereumCommand: - def __init__(self, - client: SpeculosClient, - debug: bool = False, - model: str = "nanos") -> None: - self.client = client - self.builder = EthereumCommandBuilder(debug=debug) - self.debug = debug - self.model = model - - def get_configuration(self) -> Tuple[int, int, int, int]: - try: - response = self.client._apdu_exchange( - self.builder.get_configuration() - ) # type: int, bytes - except ApduException as error: - raise DeviceException(error_code=error.sw, ins=InsType.INS_GET_VERSION) - - # response = FLAG (1) || MAJOR (1) || MINOR (1) || PATCH (1) - assert len(response) == 4 - - info, major, minor, patch = struct.unpack( - "BBBB", - response - ) # type: int, int, int - - return info, major, minor, patch - - def set_plugin(self, plugin: Plugin): - try: - self.client._apdu_exchange( - self.builder.set_plugin(plugin=plugin) - ) - - except ApduException as error: - raise DeviceException(error_code=error.sw, ins=InsType.INS_SET_PLUGIN) - - def provide_nft_information(self, plugin: Plugin): - try: - self.client._apdu_exchange( - self.builder.provide_nft_information(plugin=plugin) - ) - - except ApduException as error: - raise DeviceException(error_code=error.sw, ins=InsType.INS_PROVIDE_NFT_INFORMATION) - - def provide_erc20_token_information(self, info: ERC20Information): - try: - self.client._apdu_exchange( - self.builder.provide_erc20_token_information(info=info) - ) - - except ApduException as error: - raise DeviceException(error_code=error.sw, ins=InsType.INS_PROVIDE_ERC20) - - - @contextmanager - def get_public_key(self, bip32_path: str, result: List, display: bool = False) -> Tuple[bytes, bytes, bytes]: - try: - chunk: bytes = self.builder.get_public_key(bip32_path=bip32_path, display=display) - - with self.client.apdu_exchange_nowait(cla=chunk[0], ins=chunk[1], - p1=chunk[2], p2=chunk[3], - data=chunk[5:]) as exchange: - yield exchange - response: bytes = exchange.receive() - - except ApduException as error: - raise DeviceException(error_code=error.sw, ins=InsType.INS_GET_PUBLIC_KEY) - - # response = pub_key_len (1) || - # pub_key (var) || - # chain_code_len (1) || - # chain_code (var) - offset: int = 0 - - pub_key_len: int = response[offset] - offset += 1 - - uncompressed_addr_len: bytes = response[offset:offset + pub_key_len] - offset += pub_key_len - - eth_addr_len: int = response[offset] - offset += 1 - - eth_addr: bytes = response[offset:offset + eth_addr_len] - offset += eth_addr_len - - chain_code: bytes = response[offset:] - - assert len(response) == 1 + pub_key_len + 1 + eth_addr_len + 32 # 32 -> chain_code_len - - result.append(uncompressed_addr_len) - result.append(eth_addr) - result.append(chain_code) - - - @contextmanager - def perform_privacy_operation(self, bip32_path: str, result: List, display: bool = False, shared_secret: bool = False) -> Tuple[bytes, bytes, bytes]: - try: - chunk: bytes = self.builder.perform_privacy_operation(bip32_path=bip32_path, display=display, shared_secret=shared_secret) - - with self.client.apdu_exchange_nowait(cla=chunk[0], ins=chunk[1], - p1=chunk[2], p2=chunk[3], - data=chunk[5:]) as exchange: - yield exchange - response: bytes = exchange.receive() - - except ApduException as error: - raise DeviceException(error_code=error.sw, ins=InsType.INS_PERFORM_PRIVACY_OPERATION) - - # response = Public encryption key or shared secret (32) - assert len(response) == 32 - - result.append(response) - - def send_apdu(self, apdu: bytes) -> bytes: - try: - self.client.apdu_exchange(cla=apdu[0], ins=apdu[1], - p1=apdu[2], p2=apdu[3], - data=apdu[5:]) - except ApduException as error: - raise DeviceException(error_code=error.sw, ins=InsType.INS_SIGN_TX) - - @contextmanager - def send_apdu_context(self, apdu: bytes, result: List = list()) -> bytes: - try: - - with self.client.apdu_exchange_nowait(cla=apdu[0], ins=apdu[1], - p1=apdu[2], p2=apdu[3], - data=apdu[5:]) as exchange: - yield exchange - result.append(exchange.receive()) - - except ApduException as error: - raise DeviceException(error_code=error.sw, ins=InsType.INS_SIGN_TX) - - - - @contextmanager - def simple_sign_tx(self, bip32_path: str, transaction: Transaction, result: List = list()) -> None: - try: - chunk: bytes = self.builder.simple_sign_tx(bip32_path=bip32_path, transaction=transaction) - - with self.client.apdu_exchange_nowait(cla=chunk[0], ins=chunk[1], - p1=chunk[2], p2=chunk[3], - data=chunk[5:]) as exchange: - yield exchange - response: bytes = exchange.receive() - - except ApduException as error: - raise DeviceException(error_code=error.sw, ins=InsType.INS_SIGN_TX) - - # response = V (1) || R (32) || S (32) - assert len(response) == 65 - v, r, s = parse_sign_response(response) - - result.append(v) - result.append(r) - result.append(s) - - - @contextmanager - def sign_eip712(self, bip32_path: str, transaction: EIP712, result: List = list()) -> None: - try: - chunk: bytes = self.builder.sign_eip712(bip32_path=bip32_path, transaction=transaction) - - with self.client.apdu_exchange_nowait(cla=chunk[0], ins=chunk[1], - p1=chunk[2], p2=chunk[3], - data=chunk[5:]) as exchange: - yield exchange - response: bytes = exchange.receive() - - except ApduException as error: - raise DeviceException(error_code=error.sw, ins=InsType.INS_SIGN_EIP712) - - # response = V (1) || R (32) || S (32) - assert len(response) == 65 - v, r, s = parse_sign_response(response) - - result.append(v) - result.append(r) - result.append(s) - - - @contextmanager - def personal_sign_tx(self, bip32_path: str, transaction: PersonalTransaction, result: List = list()) -> None: - try: - for islast_apdu, apdu in self.builder.personal_sign_tx(bip32_path=bip32_path, transaction=transaction): - if islast_apdu: - with self.client.apdu_exchange_nowait(cla=apdu[0], ins=apdu[1], - p1=apdu[2], p2=apdu[3], - data=apdu[5:]) as exchange: - # the "yield" here allows to wait for a button interaction (click right, left, both) - yield exchange - response: bytes = exchange.receive() - else: - self.send_apdu(apdu) - - except ApduException as error: - raise DeviceException(error_code=error.sw, ins=InsType.INS_SIGN_TX) - - # response = V (1) || R (32) || S (32) - v, r, s = parse_sign_response(response) - - result.append(v) - result.append(r) - result.append(s) diff --git a/tests/speculos/ethereum_client/ethereum_cmd_builder.py b/tests/speculos/ethereum_client/ethereum_cmd_builder.py deleted file mode 100644 index dd516d4..0000000 --- a/tests/speculos/ethereum_client/ethereum_cmd_builder.py +++ /dev/null @@ -1,293 +0,0 @@ -import enum -import logging -import struct -from typing import List, Tuple, Union, Iterator, cast - -from ethereum_client.transaction import EIP712, PersonalTransaction, Transaction -from ethereum_client.plugin import ERC20Information, Plugin -from ethereum_client.utils import packed_bip32_path_from_string - -MAX_APDU_LEN: int = 255 - -def chunked(size, source): - for i in range(0, len(source), size): - yield source[i:i+size] - -def chunkify(data: bytes, chunk_len: int) -> Iterator[Tuple[bool, bytes]]: - size: int = len(data) - - if size <= chunk_len: - yield True, data - return - - chunk: int = size // chunk_len - remaining: int = size % chunk_len - offset: int = 0 - - for i in range(chunk): - yield False, data[offset:offset + chunk_len] - offset += chunk_len - - if remaining: - yield True, data[offset:] - -class InsType(enum.IntEnum): - INS_GET_PUBLIC_KEY = 0x02 - INS_SIGN_TX = 0x04 - INS_GET_CONFIGURATION = 0x06 - INS_SIGN_PERSONAL_TX = 0x08 - INS_PROVIDE_ERC20 = 0x0A - INS_SIGN_EIP712 = 0x0c - INS_ETH2_GET_PUBLIC_KEY = 0x0E - INS_SET_ETH2_WITHDRAWAL = 0x10 - INS_SET_EXTERNAL_PLUGIN = 0x12 - INS_PROVIDE_NFT_INFORMATION = 0x14 - INS_SET_PLUGIN = 0x16 - INS_PERFORM_PRIVACY_OPERATION = 0x18 - - -class EthereumCommandBuilder: - """APDU command builder for the Boilerplate application. - - Parameters - ---------- - debug: bool - Whether you want to see logging or not. - - Attributes - ---------- - debug: bool - Whether you want to see logging or not. - - """ - CLA: int = 0xE0 - - def __init__(self, debug: bool = False): - """Init constructor.""" - self.debug = debug - - def serialize(self, - cla: int, - ins: Union[int, enum.IntEnum], - p1: int = 0, - p2: int = 0, - cdata: bytes = b"") -> bytes: - """Serialize the whole APDU command (header + data). - - Parameters - ---------- - cla : int - Instruction class: CLA (1 byte) - ins : Union[int, IntEnum] - Instruction code: INS (1 byte) - p1 : int - Instruction parameter 1: P1 (1 byte). - p2 : int - Instruction parameter 2: P2 (1 byte). - cdata : bytes - Bytes of command data. - - Returns - ------- - bytes - Bytes of a complete APDU command. - - """ - ins = cast(int, ins.value) if isinstance(ins, enum.IntEnum) else cast(int, ins) - - header: bytes = struct.pack("BBBBB", - cla, - ins, - p1, - p2, - len(cdata)) # add Lc to APDU header - - if self.debug: - logging.info("header: %s", header.hex()) - logging.info("cdata: %s", cdata.hex()) - - return header + cdata - - def get_configuration(self) -> bytes: - """Command builder for GET_CONFIGURATON - - Returns - ------- - bytes - APDU command for GET_CONFIGURATON - - """ - return self.serialize(cla=self.CLA, - ins=InsType.INS_GET_CONFIGURATION, - p1=0x00, - p2=0x00, - cdata=b"") - - def _same_header_builder(self, data: Union[Plugin, ERC20Information], ins: int) -> bytes: - return self.serialize(cla=self.CLA, - ins=ins, - p1=0x00, - p2=0x00, - cdata=data.serialize()) - - def set_plugin(self, plugin: Plugin) -> bytes: - return self._same_header_builder(plugin, InsType.INS_SET_PLUGIN) - - def provide_nft_information(self, plugin: Plugin) -> bytes: - return self._same_header_builder(plugin, InsType.INS_PROVIDE_NFT_INFORMATION) - - def provide_erc20_token_information(self, info: ERC20Information): - return self._same_header_builder(info, InsType.INS_PROVIDE_ERC20) - - def get_public_key(self, bip32_path: str, display: bool = False) -> bytes: - """Command builder for GET_PUBLIC_KEY. - - Parameters - ---------- - bip32_path: str - String representation of BIP32 path. - display : bool - Whether you want to display the address on the device. - - Returns - ------- - bytes - APDU command for GET_PUBLIC_KEY. - - """ - cdata = packed_bip32_path_from_string(bip32_path) - - return self.serialize(cla=self.CLA, - ins=InsType.INS_GET_PUBLIC_KEY, - p1=0x01 if display else 0x00, - p2=0x01, - cdata=cdata) - - def perform_privacy_operation(self, bip32_path: str, display: bool, shared_secret: bool) -> bytes: - """Command builder for INS_PERFORM_PRIVACY_OPERATION. - - Parameters - ---------- - bip32_path : str - String representation of BIP32 path. - Third party public key on Curve25519 : 32 bytes - Optional if returning the shared secret - - """ - cdata = packed_bip32_path_from_string(bip32_path) - - return self.serialize(cla=self.CLA, - ins=InsType.INS_PERFORM_PRIVACY_OPERATION, - p1=0x01 if display else 0x00, - p2=0x01 if shared_secret else 0x00, - cdata=cdata) - - - def simple_sign_tx(self, bip32_path: str, transaction: Transaction) -> bytes: - """Command builder for INS_SIGN_TX. - - Parameters - ---------- - bip32_path : str - String representation of BIP32 path. - transaction : Transaction - Representation of the transaction to be signed. - - Yields - ------- - bytes - APDU command chunk for INS_SIGN_TX. - - """ - cdata = packed_bip32_path_from_string(bip32_path) - - tx: bytes = transaction.serialize() - - cdata = cdata + tx - - return self.serialize(cla=self.CLA, - ins=InsType.INS_SIGN_TX, - p1=0x00, - p2=0x00, - cdata=cdata) - - def sign_eip712(self, bip32_path: str, transaction: EIP712) -> bytes: - """Command builder for INS_SIGN_EIP712. - - Parameters - ---------- - bip32_path : str - String representation of BIP32 path. - transaction : EIP712 - Domain hash -> 32 bytes - Message hash -> 32 bytes - - Yields - ------- - bytes - APDU command chunk for INS_SIGN_EIP712. - - """ - cdata = packed_bip32_path_from_string(bip32_path) - - - tx: bytes = transaction.serialize() - - cdata = cdata + tx - - return self.serialize(cla=self.CLA, - ins=InsType.INS_SIGN_EIP712, - p1=0x00, - p2=0x00, - cdata=cdata) - - def personal_sign_tx(self, bip32_path: str, transaction: PersonalTransaction) -> Tuple[bool,bytes]: - """Command builder for INS_SIGN_PERSONAL_TX. - - Parameters - ---------- - bip32_path : str - String representation of BIP32 path. - transaction : Transaction - Representation of the transaction to be signed. - - Yields - ------- - bytes - APDU command chunk for INS_SIGN_PERSONAL_TX. - - """ - - cdata = packed_bip32_path_from_string(bip32_path) - - tx: bytes = transaction.serialize() - - cdata = cdata + tx - last_chunk = len(cdata) // MAX_APDU_LEN - - # The generator allows to send apdu frames because we can't send an apdu > 255 - for i, (chunk) in enumerate(chunked(MAX_APDU_LEN, cdata)): - if i == 0 and i == last_chunk: - yield True, self.serialize(cla=self.CLA, - ins=InsType.INS_SIGN_PERSONAL_TX, - p1=0x00, - p2=0x00, - cdata=chunk) - elif i == 0: - yield False, self.serialize(cla=self.CLA, - ins=InsType.INS_SIGN_PERSONAL_TX, - p1=0x00, - p2=0x00, - cdata=chunk) - elif i == last_chunk: - yield True, self.serialize(cla=self.CLA, - ins=InsType.INS_SIGN_PERSONAL_TX, - p1=0x80, - p2=0x00, - cdata=chunk) - else: - yield False, self.serialize(cla=self.CLA, - ins=InsType.INS_SIGN_PERSONAL_TX, - p1=0x80, - p2=0x00, - cdata=chunk) diff --git a/tests/speculos/ethereum_client/exception/__init__.py b/tests/speculos/ethereum_client/exception/__init__.py deleted file mode 100644 index acb2bb8..0000000 --- a/tests/speculos/ethereum_client/exception/__init__.py +++ /dev/null @@ -1,35 +0,0 @@ -from .device_exception import DeviceException -from .errors import (UnknownDeviceError, - DenyError, - WrongP1P2Error, - WrongDataLengthError, - InsNotSupportedError, - ClaNotSupportedError, - WrongResponseLengthError, - DisplayBip32PathFailError, - DisplayAddressFailError, - DisplayAmountFailError, - WrongTxLengthError, - TxParsingFailError, - TxHashFail, - BadStateError, - SignatureFailError) - -__all__ = [ - "DeviceException", - "DenyError", - "UnknownDeviceError", - "WrongP1P2Error", - "WrongDataLengthError", - "InsNotSupportedError", - "ClaNotSupportedError", - "WrongResponseLengthError", - "DisplayBip32PathFailError", - "DisplayAddressFailError", - "DisplayAmountFailError", - "WrongTxLengthError", - "TxParsingFailError", - "TxHashFail", - "BadStateError", - "SignatureFailError" -] diff --git a/tests/speculos/ethereum_client/exception/device_exception.py b/tests/speculos/ethereum_client/exception/device_exception.py deleted file mode 100644 index 7cd26f2..0000000 --- a/tests/speculos/ethereum_client/exception/device_exception.py +++ /dev/null @@ -1,38 +0,0 @@ -import enum -from typing import Dict, Any, Union - -from .errors import * - - -class DeviceException(Exception): # pylint: disable=too-few-public-methods - exc: Dict[int, Any] = { - 0x6985: DenyError, - 0x6A86: WrongP1P2Error, - 0x6A87: WrongDataLengthError, - 0x6D00: InsNotSupportedError, - 0x6E00: ClaNotSupportedError, - 0xB000: WrongResponseLengthError, - 0xB001: DisplayBip32PathFailError, - 0xB002: DisplayAddressFailError, - 0xB003: DisplayAmountFailError, - 0xB004: WrongTxLengthError, - 0xB005: TxParsingFailError, - 0xB006: TxHashFail, - 0xB007: BadStateError, - 0xB008: SignatureFailError - } - - def __new__(cls, - error_code: int, - ins: Union[int, enum.IntEnum, None] = None, - message: str = "" - ) -> Any: - error_message: str = (f"Error in {ins!r} command" - if ins else "Error in command") - - if error_code in DeviceException.exc: - return DeviceException.exc[error_code](hex(error_code), - error_message, - message) - - return UnknownDeviceError(hex(error_code), error_message, message) diff --git a/tests/speculos/ethereum_client/exception/errors.py b/tests/speculos/ethereum_client/exception/errors.py deleted file mode 100644 index a9a853d..0000000 --- a/tests/speculos/ethereum_client/exception/errors.py +++ /dev/null @@ -1,58 +0,0 @@ -class UnknownDeviceError(Exception): - pass - - -class DenyError(Exception): - pass - - -class WrongP1P2Error(Exception): - pass - - -class WrongDataLengthError(Exception): - pass - - -class InsNotSupportedError(Exception): - pass - - -class ClaNotSupportedError(Exception): - pass - - -class WrongResponseLengthError(Exception): - pass - - -class DisplayBip32PathFailError(Exception): - pass - - -class DisplayAddressFailError(Exception): - pass - - -class DisplayAmountFailError(Exception): - pass - - -class WrongTxLengthError(Exception): - pass - - -class TxParsingFailError(Exception): - pass - - -class TxHashFail(Exception): - pass - - -class BadStateError(Exception): - pass - - -class SignatureFailError(Exception): - pass diff --git a/tests/speculos/ethereum_client/plugin.py b/tests/speculos/ethereum_client/plugin.py deleted file mode 100644 index 88e7892..0000000 --- a/tests/speculos/ethereum_client/plugin.py +++ /dev/null @@ -1,70 +0,0 @@ -import string -from typing import Union - -from ethereum_client.utils import write_varint - -class ERC20Information: - def __init__(self, erc20_ticker: string , addr: Union[str, bytes], nb_decimals: int, chainID: int, sign: str) -> None: - self.erc20_ticker: bytes = bytes.fromhex(erc20_ticker) - self.addr: bytes = bytes.fromhex(addr[2:]) if isinstance(addr, str) else addr - self.nb_decimals: int = nb_decimals - self.chainID: int = chainID - self.sign: bytes = bytes.fromhex(sign) - - def serialize(self) -> bytes: - return b"".join([ - write_varint(len(self.erc20_ticker)), - self.erc20_ticker, - - self.addr, - - self.nb_decimals.to_bytes(4, byteorder="big"), - - self.chainID.to_bytes(4, byteorder="big"), - - self.sign, - ]) - -class Plugin: - """Plugin class - Allows to generate an apdu of the SET_PLUGIN command or PROVIDE_NFT_INFORMATION - - PROVIDE_NFT_INFORMATION - ---- - do not define a selector - - """ - def __init__(self, type: int, version: int, name: str, addr: Union[str, bytes], selector: int = -1, chainID: int = 1, keyID: int = 0, algorithm: int = 1, sign: str = "") -> None: - self.type: int = type - self.version: int = version - self.name: bytes = bytes(name, 'UTF-8') - self.addr: bytes = bytes.fromhex(addr[2:]) if isinstance(addr, str) else addr - self.selector: int = selector - self.chainID: int = chainID - self.keyID: int = keyID - self.algorithm: int = algorithm - self.sign: bytes = bytes.fromhex(sign) - - def serialize(self) -> bytes: - return b"".join([ - self.type.to_bytes(1, byteorder="big"), - - self.version.to_bytes(1, byteorder="big"), - - write_varint(len(self.name)), - self.name, - - self.addr, - - b'' if self.selector == -1 else self.selector.to_bytes(4, byteorder="big"), - - self.chainID.to_bytes(8, byteorder="big"), - - self.keyID.to_bytes(1, byteorder="big"), - - self.algorithm.to_bytes(1, byteorder="big"), - - write_varint(len(self.sign)), - self.sign, - - ]) diff --git a/tests/speculos/ethereum_client/transaction.py b/tests/speculos/ethereum_client/transaction.py deleted file mode 100644 index 64b261b..0000000 --- a/tests/speculos/ethereum_client/transaction.py +++ /dev/null @@ -1,96 +0,0 @@ -from typing import Union - -from ethereum_client.utils import write_varint, UINT64_MAX - - -class TransactionError(Exception): - pass - -EIP2930 = 1 -EIP1559 = 2 - -class PersonalTransaction: - def __init__(self, msg: Union[str, bytes]) -> None: - # If you want to send bytes directly you have to put "0x" before the string - if msg[0:2] == "0x": - self.msg: bytes = bytes.fromhex(msg[2:]) - else: - self.msg: bytes = bytes(msg, "utf-8") - - def serialize(self) -> bytes: - return b"".join([ - len(self.msg).to_bytes(4, byteorder="big"), - self.msg, - ]) - -class Transaction: - def __init__(self, txType: int, nonce: int, gasPrice: int, gasLimit: int, to: Union[str, bytes], value: int, data: Union[str, bytes] = "", chainID: int = -1) -> None: - self.txType: int = txType - self.nonce: int = nonce - self.gasPrice: int = gasPrice - self.gasLimit: int = gasLimit - self.to: bytes = bytes.fromhex(to[2:]) if isinstance(to, str) else to - self.value: int = value - self.data: bytes = bytes(data, "utf-8") - self.chainID = b'' - - if not (0 <= self.nonce <= UINT64_MAX): - raise TransactionError(f"Bad nonce: '{self.nonce}'!") - - if not (0 <= self.value <= UINT64_MAX): - raise TransactionError(f"Bad value: '{self.value}'!") - - if len(self.to) != 20: - raise TransactionError(f"Bad address: '{self.to}'!") - - self.lenNonce = int((len(hex(self.nonce)) - 1) / 2) - self.lenGP = int((len(hex(self.gasPrice)) - 1) / 2) - self.lenGL = int((len(hex(self.gasLimit)) - 1) / 2) - self.lenValue = int((len(hex(self.value)) - 1) / 2) - - self.lenChainID = int((len(hex(chainID)) - 1) / 2) - - if chainID != -1: - self.chainID = b"".join([ - b'' if self.lenChainID == 1 else (self.lenChainID + 0x80).to_bytes(1, byteorder="big"), - chainID.to_bytes(self.lenChainID, byteorder="big"), - write_varint(0 + 0x80), - write_varint(0 + 0x80), - ]) - - def serialize(self) -> bytes: - return b"".join([ - self.txType.to_bytes(1, byteorder="big"), - - b'' if self.lenNonce == 1 else write_varint(self.lenNonce + 0x80), - self.nonce.to_bytes(self.lenNonce, byteorder="big"), - - write_varint(self.lenGP + 0x80), - self.gasPrice.to_bytes(self.lenGP, byteorder="big"), - - write_varint(self.lenGL + 0x80), - self.gasLimit.to_bytes(self.lenGL, byteorder="big"), - - write_varint(len(self.to) + 0x80), - self.to, - - write_varint(self.lenValue + 0x80), - self.value.to_bytes(self.lenValue, byteorder="big"), - - write_varint(len(self.data) + 0x80), - self.data, - - self.chainID, - - ]) - -class EIP712: - def __init__(self, domain_hash: str, msg_hash: str) -> None: - self.domain_hash = bytes.fromhex(domain_hash) - self.msg_hash = bytes.fromhex(msg_hash) - - def serialize(self) -> bytes: - return b"".join([ - self.domain_hash, - self.msg_hash - ]) diff --git a/tests/speculos/ethereum_client/utils.py b/tests/speculos/ethereum_client/utils.py deleted file mode 100644 index de03b78..0000000 --- a/tests/speculos/ethereum_client/utils.py +++ /dev/null @@ -1,115 +0,0 @@ -from io import BytesIO -from typing import List, Optional, Literal, Tuple -import PIL.Image as Image - -import speculos.client - -UINT64_MAX: int = 18446744073709551615 -UINT32_MAX: int = 4294967295 -UINT16_MAX: int = 65535 - -# Association tableau si écran nanos ou nanox -PATH_IMG = {"nanos": "nanos", "nanox": "nanox", "nanosp": "nanox"} - -def save_screenshot(cmd, path: str): - screenshot = cmd.client.get_screenshot() - img = Image.open(BytesIO(screenshot)) - img.save(path) - - -def compare_screenshot(cmd, path: str): - screenshot = cmd.client.get_screenshot() - assert speculos.client.screenshot_equal(path, BytesIO(screenshot)) - - -def parse_sign_response(response : bytes) -> Tuple[bytes, bytes, bytes]: - assert len(response) == 65 - - offset: int = 0 - - v: bytes = response[offset] - offset += 1 - - r: bytes = response[offset:offset + 32] - offset += 32 - - s: bytes = response[offset:] - - return (v, r, s) - - -def bip32_path_from_string(path: str) -> List[bytes]: - splitted_path: List[str] = path.split("/") - - if not splitted_path: - raise Exception(f"BIP32 path format error: '{path}'") - - if "m" in splitted_path and splitted_path[0] == "m": - splitted_path = splitted_path[1:] - - return [int(p).to_bytes(4, byteorder="big") if "'" not in p - else (0x80000000 | int(p[:-1])).to_bytes(4, byteorder="big") - for p in splitted_path] - - -def packed_bip32_path_from_string(path: str) -> bytes: - bip32_paths = bip32_path_from_string(path) - - return b"".join([ - len(bip32_paths).to_bytes(1, byteorder="big"), - *bip32_paths - ]) - - -def write_varint(n: int) -> bytes: - if n < 0xFC: - return n.to_bytes(1, byteorder="little") - - if n <= UINT16_MAX: - return b"\xFD" + n.to_bytes(2, byteorder="little") - - if n <= UINT32_MAX: - return b"\xFE" + n.to_bytes(4, byteorder="little") - - if n <= UINT64_MAX: - return b"\xFF" + n.to_bytes(8, byteorder="little") - - raise ValueError(f"Can't write to varint: '{n}'!") - - -def read_varint(buf: BytesIO, - prefix: Optional[bytes] = None) -> int: - b: bytes = prefix if prefix else buf.read(1) - - if not b: - raise ValueError(f"Can't read prefix: '{b}'!") - - n: int = {b"\xfd": 2, b"\xfe": 4, b"\xff": 8}.get(b, 1) # default to 1 - - b = buf.read(n) if n > 1 else b - - if len(b) != n: - raise ValueError("Can't read varint!") - - return int.from_bytes(b, byteorder="little") - - -def read(buf: BytesIO, size: int) -> bytes: - b: bytes = buf.read(size) - - if len(b) < size: - raise ValueError(f"Can't read {size} bytes in buffer!") - - return b - - -def read_uint(buf: BytesIO, - bit_len: int, - byteorder: Literal['big', 'little'] = 'little') -> int: - size: int = bit_len // 8 - b: bytes = buf.read(size) - - if len(b) < size: - raise ValueError(f"Can't read u{bit_len} in buffer!") - - return int.from_bytes(b, byteorder) diff --git a/tests/speculos/requirements.txt b/tests/speculos/requirements.txt deleted file mode 100644 index 2744c35..0000000 --- a/tests/speculos/requirements.txt +++ /dev/null @@ -1,5 +0,0 @@ -speculos -pytest>=6.1.1,<7.0.0 -ledgercomm>=1.1.0,<1.2.0 -ecdsa>=0.16.1,<0.17.0 -pysha3>=1.0.0,<2.0.0 diff --git a/tests/speculos/setup.cfg b/tests/speculos/setup.cfg deleted file mode 100644 index c79fd88..0000000 --- a/tests/speculos/setup.cfg +++ /dev/null @@ -1,20 +0,0 @@ -[tool:pytest] -addopts = --strict-markers - -[pylint] -disable = C0114, # missing-module-docstring - C0115, # missing-class-docstring - C0116, # missing-function-docstring - C0103, # invalid-name - R0801, # duplicate-code - R0913 # too-many-arguments -extension-pkg-whitelist=hid - -[pycodestyle] -max-line-length = 90 - -[mypy-hid.*] -ignore_missing_imports = True - -[mypy-pytest.*] -ignore_missing_imports = True From 394a6c163c2722c8d818322ad59e931469c4507f Mon Sep 17 00:00:00 2001 From: Charles-Edouard de la Vergne Date: Tue, 2 Apr 2024 19:08:58 +0200 Subject: [PATCH 14/35] Remove useless 'zemu' tests eip1559 (already exists in 'ragger') --- .../nanos_transfer_eip1559/00000.png | Bin 374 -> 0 bytes .../nanos_transfer_eip1559/00001.png | Bin 296 -> 0 bytes .../nanos_transfer_eip1559/00002.png | Bin 434 -> 0 bytes .../nanos_transfer_eip1559/00003.png | Bin 403 -> 0 bytes .../nanos_transfer_eip1559/00004.png | Bin 343 -> 0 bytes .../nanos_transfer_eip1559/00005.png | Bin 345 -> 0 bytes .../nanos_transfer_eip1559/00006.png | Bin 414 -> 0 bytes .../nanos_transfer_eip1559/00007.png | Bin 340 -> 0 bytes .../nanos_transfer_eip1559/00008.png | 1 - .../nanos_transfer_eip1559/00009.png | Bin 349 -> 0 bytes .../nanox_transfer_eip1559/00000.png | Bin 414 -> 0 bytes .../nanox_transfer_eip1559/00001.png | Bin 353 -> 0 bytes .../nanox_transfer_eip1559/00002.png | Bin 558 -> 0 bytes .../nanox_transfer_eip1559/00003.png | Bin 413 -> 0 bytes .../nanox_transfer_eip1559/00004.png | Bin 472 -> 0 bytes .../nanox_transfer_eip1559/00005.png | Bin 365 -> 0 bytes .../nanox_transfer_eip1559/00006.png | 1 - .../nanox_transfer_eip1559/00007.png | Bin 382 -> 0 bytes tests/zemu/src/eip1559.test.js | 25 ------------------ 19 files changed, 27 deletions(-) delete mode 100644 tests/zemu/snapshots/nanos_transfer_eip1559/00000.png delete mode 100644 tests/zemu/snapshots/nanos_transfer_eip1559/00001.png delete mode 100644 tests/zemu/snapshots/nanos_transfer_eip1559/00002.png delete mode 100644 tests/zemu/snapshots/nanos_transfer_eip1559/00003.png delete mode 100644 tests/zemu/snapshots/nanos_transfer_eip1559/00004.png delete mode 100644 tests/zemu/snapshots/nanos_transfer_eip1559/00005.png delete mode 100644 tests/zemu/snapshots/nanos_transfer_eip1559/00006.png delete mode 100644 tests/zemu/snapshots/nanos_transfer_eip1559/00007.png delete mode 120000 tests/zemu/snapshots/nanos_transfer_eip1559/00008.png delete mode 100644 tests/zemu/snapshots/nanos_transfer_eip1559/00009.png delete mode 100644 tests/zemu/snapshots/nanox_transfer_eip1559/00000.png delete mode 100644 tests/zemu/snapshots/nanox_transfer_eip1559/00001.png delete mode 100644 tests/zemu/snapshots/nanox_transfer_eip1559/00002.png delete mode 100644 tests/zemu/snapshots/nanox_transfer_eip1559/00003.png delete mode 100644 tests/zemu/snapshots/nanox_transfer_eip1559/00004.png delete mode 100644 tests/zemu/snapshots/nanox_transfer_eip1559/00005.png delete mode 120000 tests/zemu/snapshots/nanox_transfer_eip1559/00006.png delete mode 100644 tests/zemu/snapshots/nanox_transfer_eip1559/00007.png delete mode 100644 tests/zemu/src/eip1559.test.js diff --git a/tests/zemu/snapshots/nanos_transfer_eip1559/00000.png b/tests/zemu/snapshots/nanos_transfer_eip1559/00000.png deleted file mode 100644 index 8d84cc70fea8013b7e8b25c0982ce142fa103d5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 374 zcmV-+0g3*JP)K?4J2QqX3 zXn7ePqhBDwvA-|J28LIrjF%tX0z{3v6!_gF&(SYH)S*7TN;1RxW-%}TLH9_+sttDO z-T32w&rL(!1@Vr`jm5G(8dd=Ruu#)JAN?l#rFLU`oQ(r?$33AC7s0}pw!fi~(9k^# zU9aci?pXN=I7A<-f!Mw2untnw9MivqZYw}c5&)gweYhbTnv#2#t$0X2wST7_1F;LR zw?>Da2SkSfG>qWq1mej-6nW@2l+Z=0om5jdB%3o3Qx19_LNUlTqF4R_1Iaj%@^2O= z@;n%h1N>H$2;%-~Dvx1!0LtkT-;cq73rgisOElFtPbcL{d3TfNQvm<~003s>1*i4o Uje8$F8UO$Q07*qoM6N<$g5rpv%m4rY diff --git a/tests/zemu/snapshots/nanos_transfer_eip1559/00001.png b/tests/zemu/snapshots/nanos_transfer_eip1559/00001.png deleted file mode 100644 index 9f26513905ca5d43f8a01ecdc783260b6de6c5ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 296 zcmV+@0oVSCP)fX#!FZBO{Ig0000hQue@KoMo!lVn-VMNUcna`?Oxe>;TDxhx7Rz4!(dya;|m zwG$ET+wZ(v)&YZQ2FPk6xp%OvWBgPzWeXZOo@@_EJ5S0nv6$YQ_!U5Z(<&|~*_@p_ zg*ype0epcU5-~>2z?~cDKf=jq(>>n(g2nWlxnsaRsNvCQD12q~=}rl#>3nPSZ-@|T zM1L~K!IfYax|07vUW96XGOHiOvNO28ji#dsy%o1V{U!_})jSG{ue+KynvN#)R^0xK z)kZ|-i&#qFIg_P3&bd}>qv>cW>aDo_>D0!Exe2>3kbDEw7bA!_VN5`J40z6K*Ug#o z7zfH26CggNX}&fS{&zH4ar-k?n{W&jweVBad2_5E!m_WW*hbUQRMcB>`{UCF00000 c0Emd_3y`Zwh@I}ii2wiq07*qoM6N<$f_&}3-T(jq diff --git a/tests/zemu/snapshots/nanos_transfer_eip1559/00003.png b/tests/zemu/snapshots/nanos_transfer_eip1559/00003.png deleted file mode 100644 index 32a2ee92966bd4321ef50d6ef6f25a44162df203..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 403 zcmV;E0c`$>P)Q!pQ${VqK?fv>G8$iick~1z#=K`q+L}LtlX3@C-**UE!R(t!amHfPk5{O5BBEnI z*JIiog1JnPWs2+)drw4Z^YPQnEk}@JJnU@ACr_?16*(=PS?Pd^-vRVpR&imoHLEP) z#j;OCDb{=$aF(!?C~B;U%^DEEz!)&m(3FPadu@MLG42{ue;sw$e+A=-IU`JV?+r zA2%aQM9Nqzgu+7KB^*1gF`kTHo%{4o1Ko$3o{bBGkIX)KDnQBRQ?u`oM5>Yf#h?b3 zU4TOAvh-%?(i=B{|_o8KNGjh7w%K@l@Mn-i)4Uj+od9L znK8wfmB};=0|Ow)n$s~Cr`6K5ppD_9)$kp>QenV)(LG=b1~Ne4A6;Tu{RHP0i$&N# zU3xMFd7=IUvLZwMXj~f|{k#}B z4)Di%0(GQh%XXzDG$sKK-Q2JkKR-`QsiPFD-4d_!i{fwH;J|_aEL%ZYNu#B0FJ7G| z;=_VQWOA9;dQ4Y9)LpKCV=ri`X({49JagUwO3&5UdSK)wEJxPN%9wG}45n;lzK(aC zKtbL$y*-#9uSql`7 zENOEh^0jsFWbV&<+yj5)WEX_aERLO-`${sQhD#B5ZCio#Fr4qHlr^7X|9DL69eFa= z#kf#}$Pcl(QEE=tNl8Pt$o;~Fk*8r@j8mpwSGW8d!1&11FbzPh@^gWj=oh7f%f7G)4s^6#xJL07*qo IM6N<$g02I(Gynhq diff --git a/tests/zemu/snapshots/nanos_transfer_eip1559/00007.png b/tests/zemu/snapshots/nanos_transfer_eip1559/00007.png deleted file mode 100644 index 9c7e7049cb3e9bcfb1601ec510ee465d38229d4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 340 zcmV-a0jvIrP)b=%MgRq*37h4eRxPbkJCLY|1VIo49_}P}TKpH4$L<8?X{t;p zy+UQc_4@p%0?~E_&igM#?#L~IOHR(-<@sYotiy&C*Y&GII0yeh-p3zW9cv$Q0k>6Y_)5~SfP=m zSMUtz)%Ex|-o}7!H9hbQ(8{%C?kQVa?C`*Uj-J(h>P7(Y#?ZWvi?6}@n{fGLp>YTp myqR(V_$?>^<%seR_VWh!O41}p;-~WL<=z+0=1Om1tEU@3H#qtw22}5*_5JCvCo4!52c$FXo$VhXU?0M$^Bekqgf%Ka;M*^X|4 zEs9YCQ(xfJKmNC#+8dY%2&wT+>D^<3C%}_*k1^mvtO~`RE00000NkvXXu0mjf-kqOA diff --git a/tests/zemu/snapshots/nanox_transfer_eip1559/00000.png b/tests/zemu/snapshots/nanox_transfer_eip1559/00000.png deleted file mode 100644 index 487ea10fcfeb2f3e6b79239459672251d49addd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 414 zcmV;P0b%}$P)vpO}&+|8}fC)JNq`>?#dJ%s{^>GN_4usXQirk{^@^BA?p!El9&T9q~zMsh2=YdLB`_ONiP zKy6XlUGFZ>Cn7mP3u*;rWy$-{$FutdLN-GD8Tc=R<^&lG44+1s}f6bMVr6dq&pcE!pg!C2d#j^efi9d$#*OU&g-9Ux}S_^Gxo(TD>}dVf*#6b2rU@ zX&zz{*`0LJ-NwVtQo)OBS3Zk>(LF{h)9)v1m)zHWH}lB`0Zk9}r?Jjwg16Wkh_%_5 zJ!fQK_)%5qe_+{rzOz-$k&6uS9h60C-ldmR?+dUnazDF%^E=T;?KdX7u4MiCE9-O7 z_Ss##8KgIt6|=>d&0RgAY0gH5bGKMKHg`XLe#Z5b{DkONi;LIP%(1xmKl!kN@ZZdy t0O7wUBbfbD6#eHMp2wjN^ei$cn5nO3yF-vyI7$j6?CI*~vd$@?2>_^vlz#vK diff --git a/tests/zemu/snapshots/nanox_transfer_eip1559/00002.png b/tests/zemu/snapshots/nanox_transfer_eip1559/00002.png deleted file mode 100644 index 5b65b54dc173b086a88acaaaae42fcd7e007db2f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 558 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|{^}>EaktG3V{<=t(UKJgzfW z-sJopKdE{q|7xA~^aCvhZ!POD89FGfUo8vL#BjjcvhT44-%o$u-}T40mopy{J=Nd& zQo#Nm?~0%^?u8~tB+h@5NKR7L|9Gg9MTODV%~@zxQsSd0n>5+1cAD!)o)=SA;GFj1 z=KRkE{S~^4wLiu)HyvCgmERI~q4v7md6pR4{r;@a=ggD#o_D$J?7YwZ91l-#eD`fm zK#Y3!>CCsC_v!`NfX=8;pPRel$r_EDmpH#q;h%Wj=&oFBzO0JX(kBAD-GZh;`0B|~ z7fOBh&JXW?xp#h1w%H`xSsJMF=l@^&hsm_?klX3CneHMH3)K8> zWb8D3+c9CE*cJ!hIU6n(W#5|kWK+l6<()zhWipH1*p66~do&pTWzh)`R?pdTXI7a@ z(@(P!52$*u#UXZnnJ1=QP^wH5)i-A`JSQpi t;LLONgwK%~mvdJw~ba4!+nDh2V;G|{+o`%F- zmuDCJSAMGZ`@x9-4v%Qh3;*sKp!=O1E8mHky7aJfr{kMs?MH z#`IkQ_k_>03QUwp-dK6~b=ke5S@ueg`@LnC%h#wpd-<>DxwK$;;(5Qh;-M>ysSW%d9CqYpUKo3A{2`zV_n%xLee3;! zC(TDMuKXMuabIT3J^an`uX3#-qGtMubcntEeW0cZAyyO<=%SMmFE6ZmKPnL zNZVX|ovk+W&FsJ+-*3Ge+2*ZqnpeSJt+W>uPDtQ@$^V!JJAaWy>p>B~;OXk;vd$@? F2>@lPxFP@m diff --git a/tests/zemu/snapshots/nanox_transfer_eip1559/00004.png b/tests/zemu/snapshots/nanox_transfer_eip1559/00004.png deleted file mode 100644 index 570ce28d53e82ac396ba25c370110058f3a638f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmV;}0Vn>6P)Nkl`l1;k+@4An6g^M6kcbtxu@7*hfO000000DuchDWw$aQJnB& zJ%BsK3VrpQ1hnYqoNY&PO0WdV>i`7cs)e_@w@x()p@w=B24`klR6(CLpxqtlZO|2 zIWjpO-F~*EHtLqUMt)Wc_@bMv^h#{CUFW0M(vJ1P=5N1GhWcHM(-Xu*&bc@D4_o$^ z7Y|pL)I@*DzttR=&yLH#^{|TW)8Sp0qphw%epiuSUG#WHS~ht|j~;`U4>BXmdi9@& zuz>%00000G5i7^TsbXePb2LB O0000MjqtrV%Nn6esuj!jIMi}Btw`sohxwi1&U@}K{{10Q-!s%eVxF#kF6*2U FngGM>p?d%T diff --git a/tests/zemu/snapshots/nanox_transfer_eip1559/00006.png b/tests/zemu/snapshots/nanox_transfer_eip1559/00006.png deleted file mode 120000 index 917964c..0000000 --- a/tests/zemu/snapshots/nanox_transfer_eip1559/00006.png +++ /dev/null @@ -1 +0,0 @@ -00004.png \ No newline at end of file diff --git a/tests/zemu/snapshots/nanox_transfer_eip1559/00007.png b/tests/zemu/snapshots/nanox_transfer_eip1559/00007.png deleted file mode 100644 index a58590b988714545e7960f7f400f360ffc5de41f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 382 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9hba4!+nDh2#bl+hG9*4k? zQuR0Wo;SViCn%lTo!KM1sAjk5Y(@*V#~rbuHu`7A_H&AxgwHf8y4cdKvg$JbB4n%ez%sZ31aBYd&Oo@(7)_WJ(Znl2o8^PD` zFE`_Y-IS+Kdq0Q2-7r_C=}F(5ev`U`H~)QH|9$1FHE$YjoVax+e0xei%S`SAGlOm! zp7{T3NA-mVOYb&rdU8MdyIHo@@7cE*uj@I+Zu{2i)KMSV-E~o { - - const tx = eth.signTransaction( - "44'/60'/0'/0/0", - '02f87001018502540be4008502540be40086246139ca800094cccccccccccccccccccccccccccccccccccccccc8000c001a0e07fb8a64ea3786c9a6649e54429e2786af3ea31c6d06165346678cf8ce44f9ba00e4a0526db1e905b7164a858fd5ebd2f1759e22e6955499448bd276a6aa62830', - ); - - await waitForAppScreen(sim); - let clicks; - if (model.letter === 'S') clicks = 7; - else clicks = 5; - await sim.navigateAndCompareSnapshots('.', model.name + '_transfer_eip1559', [clicks, -1, 0]); - - await expect(tx).resolves.toEqual({ - "r": "3d6dfabc6c52374bfa34cb2c433856a0bcd9484870dd1b50249f7164a5fce052", - "s": "0548a774dd0b63930d83cb2e1a836fe3ef24444e8b758b00585d9a076c0e98a8", - "v": "01" - }); - })); -}); From 7ea7dfde2cb26ac0bbf5f226f9b5ff0545ef651d Mon Sep 17 00:00:00 2001 From: Charles-Edouard de la Vergne Date: Tue, 2 Apr 2024 19:12:59 +0200 Subject: [PATCH 15/35] Remove useless 'zemu' tests erc721, erc1155 --- .../nanox_erc1155_batch_transfer/00000.png | Bin 414 -> 0 bytes .../nanox_erc1155_batch_transfer/00001.png | Bin 372 -> 0 bytes .../nanox_erc1155_batch_transfer/00002.png | Bin 710 -> 0 bytes .../nanox_erc1155_batch_transfer/00003.png | Bin 592 -> 0 bytes .../nanox_erc1155_batch_transfer/00004.png | Bin 823 -> 0 bytes .../nanox_erc1155_batch_transfer/00005.png | Bin 500 -> 0 bytes .../nanox_erc1155_batch_transfer/00006.png | Bin 464 -> 0 bytes .../nanox_erc1155_batch_transfer/00007.png | Bin 472 -> 0 bytes .../nanox_erc1155_batch_transfer/00008.png | Bin 365 -> 0 bytes .../nanox_erc1155_batch_transfer/00009.png | 1 - .../nanox_erc1155_batch_transfer/00010.png | Bin 382 -> 0 bytes .../nanox_erc1155_transfer/00000.png | Bin 414 -> 0 bytes .../nanox_erc1155_transfer/00001.png | Bin 328 -> 0 bytes .../nanox_erc1155_transfer/00002.png | Bin 710 -> 0 bytes .../nanox_erc1155_transfer/00003.png | Bin 528 -> 0 bytes .../nanox_erc1155_transfer/00004.png | Bin 823 -> 0 bytes .../nanox_erc1155_transfer/00005.png | Bin 792 -> 0 bytes .../nanox_erc1155_transfer/00006.png | Bin 558 -> 0 bytes .../nanox_erc1155_transfer/00007.png | Bin 312 -> 0 bytes .../nanox_erc1155_transfer/00008.png | Bin 464 -> 0 bytes .../nanox_erc1155_transfer/00009.png | Bin 472 -> 0 bytes .../nanox_erc1155_transfer/00010.png | Bin 365 -> 0 bytes .../nanox_erc1155_transfer/00011.png | 1 - .../nanox_erc1155_transfer/00012.png | Bin 382 -> 0 bytes .../nanox_erc1155_transfer_wo_info/00000.png | 1 - .../nanox_erc1155_transfer_wo_info/00001.png | 1 - .../nanox_erc1155_transfer_wo_info/00002.png | 1 - .../nanox_erc1155_transfer_wo_info/00003.png | Bin 457 -> 0 bytes .../nanox_erc1155_transfer_wo_info/00004.png | 1 - .../nanox_erc1155_transfer_wo_info/00005.png | 1 - .../nanox_erc1155_transfer_wo_info/00006.png | 1 - .../nanox_erc1155_transfer_wo_info/00007.png | 1 - .../nanox_erc1155_transfer_wo_info/00008.png | 1 - .../nanox_erc1155_transfer_wo_info/00009.png | 1 - .../nanox_erc1155_transfer_wo_info/00010.png | 1 - .../nanox_erc1155_transfer_wo_info/00011.png | 1 - .../nanox_erc1155_transfer_wo_info/00012.png | 1 - .../snapshots/nanox_erc721_transfer/00000.png | Bin 414 -> 0 bytes .../snapshots/nanox_erc721_transfer/00001.png | Bin 328 -> 0 bytes .../snapshots/nanox_erc721_transfer/00002.png | Bin 710 -> 0 bytes .../snapshots/nanox_erc721_transfer/00003.png | Bin 442 -> 0 bytes .../snapshots/nanox_erc721_transfer/00004.png | Bin 770 -> 0 bytes .../snapshots/nanox_erc721_transfer/00005.png | Bin 352 -> 0 bytes .../snapshots/nanox_erc721_transfer/00006.png | Bin 463 -> 0 bytes .../snapshots/nanox_erc721_transfer/00007.png | Bin 472 -> 0 bytes .../snapshots/nanox_erc721_transfer/00008.png | Bin 365 -> 0 bytes .../snapshots/nanox_erc721_transfer/00009.png | 1 - .../snapshots/nanox_erc721_transfer/00010.png | Bin 382 -> 0 bytes .../nanox_erc721_transfer_wo_info/00000.png | 1 - .../nanox_erc721_transfer_wo_info/00001.png | 1 - .../nanox_erc721_transfer_wo_info/00002.png | 1 - .../nanox_erc721_transfer_wo_info/00003.png | Bin 457 -> 0 bytes .../nanox_erc721_transfer_wo_info/00004.png | 1 - .../nanox_erc721_transfer_wo_info/00005.png | 1 - .../nanox_erc721_transfer_wo_info/00006.png | 1 - .../nanox_erc721_transfer_wo_info/00007.png | 1 - .../nanox_erc721_transfer_wo_info/00008.png | 1 - .../nanox_erc721_transfer_wo_info/00009.png | 1 - .../nanox_erc721_transfer_wo_info/00010.png | 1 - tests/zemu/src/erc1155.notest.js | 67 ------------------ tests/zemu/src/erc721.notest.js | 41 ----------- 61 files changed, 133 deletions(-) delete mode 100644 tests/zemu/snapshots/nanox_erc1155_batch_transfer/00000.png delete mode 100644 tests/zemu/snapshots/nanox_erc1155_batch_transfer/00001.png delete mode 100644 tests/zemu/snapshots/nanox_erc1155_batch_transfer/00002.png delete mode 100644 tests/zemu/snapshots/nanox_erc1155_batch_transfer/00003.png delete mode 100644 tests/zemu/snapshots/nanox_erc1155_batch_transfer/00004.png delete mode 100644 tests/zemu/snapshots/nanox_erc1155_batch_transfer/00005.png delete mode 100644 tests/zemu/snapshots/nanox_erc1155_batch_transfer/00006.png delete mode 100644 tests/zemu/snapshots/nanox_erc1155_batch_transfer/00007.png delete mode 100644 tests/zemu/snapshots/nanox_erc1155_batch_transfer/00008.png delete mode 120000 tests/zemu/snapshots/nanox_erc1155_batch_transfer/00009.png delete mode 100644 tests/zemu/snapshots/nanox_erc1155_batch_transfer/00010.png delete mode 100644 tests/zemu/snapshots/nanox_erc1155_transfer/00000.png delete mode 100644 tests/zemu/snapshots/nanox_erc1155_transfer/00001.png delete mode 100644 tests/zemu/snapshots/nanox_erc1155_transfer/00002.png delete mode 100644 tests/zemu/snapshots/nanox_erc1155_transfer/00003.png delete mode 100644 tests/zemu/snapshots/nanox_erc1155_transfer/00004.png delete mode 100644 tests/zemu/snapshots/nanox_erc1155_transfer/00005.png delete mode 100644 tests/zemu/snapshots/nanox_erc1155_transfer/00006.png delete mode 100644 tests/zemu/snapshots/nanox_erc1155_transfer/00007.png delete mode 100644 tests/zemu/snapshots/nanox_erc1155_transfer/00008.png delete mode 100644 tests/zemu/snapshots/nanox_erc1155_transfer/00009.png delete mode 100644 tests/zemu/snapshots/nanox_erc1155_transfer/00010.png delete mode 120000 tests/zemu/snapshots/nanox_erc1155_transfer/00011.png delete mode 100644 tests/zemu/snapshots/nanox_erc1155_transfer/00012.png delete mode 120000 tests/zemu/snapshots/nanox_erc1155_transfer_wo_info/00000.png delete mode 120000 tests/zemu/snapshots/nanox_erc1155_transfer_wo_info/00001.png delete mode 120000 tests/zemu/snapshots/nanox_erc1155_transfer_wo_info/00002.png delete mode 100644 tests/zemu/snapshots/nanox_erc1155_transfer_wo_info/00003.png delete mode 120000 tests/zemu/snapshots/nanox_erc1155_transfer_wo_info/00004.png delete mode 120000 tests/zemu/snapshots/nanox_erc1155_transfer_wo_info/00005.png delete mode 120000 tests/zemu/snapshots/nanox_erc1155_transfer_wo_info/00006.png delete mode 120000 tests/zemu/snapshots/nanox_erc1155_transfer_wo_info/00007.png delete mode 120000 tests/zemu/snapshots/nanox_erc1155_transfer_wo_info/00008.png delete mode 120000 tests/zemu/snapshots/nanox_erc1155_transfer_wo_info/00009.png delete mode 120000 tests/zemu/snapshots/nanox_erc1155_transfer_wo_info/00010.png delete mode 120000 tests/zemu/snapshots/nanox_erc1155_transfer_wo_info/00011.png delete mode 120000 tests/zemu/snapshots/nanox_erc1155_transfer_wo_info/00012.png delete mode 100644 tests/zemu/snapshots/nanox_erc721_transfer/00000.png delete mode 100644 tests/zemu/snapshots/nanox_erc721_transfer/00001.png delete mode 100644 tests/zemu/snapshots/nanox_erc721_transfer/00002.png delete mode 100644 tests/zemu/snapshots/nanox_erc721_transfer/00003.png delete mode 100644 tests/zemu/snapshots/nanox_erc721_transfer/00004.png delete mode 100644 tests/zemu/snapshots/nanox_erc721_transfer/00005.png delete mode 100644 tests/zemu/snapshots/nanox_erc721_transfer/00006.png delete mode 100644 tests/zemu/snapshots/nanox_erc721_transfer/00007.png delete mode 100644 tests/zemu/snapshots/nanox_erc721_transfer/00008.png delete mode 120000 tests/zemu/snapshots/nanox_erc721_transfer/00009.png delete mode 100644 tests/zemu/snapshots/nanox_erc721_transfer/00010.png delete mode 120000 tests/zemu/snapshots/nanox_erc721_transfer_wo_info/00000.png delete mode 120000 tests/zemu/snapshots/nanox_erc721_transfer_wo_info/00001.png delete mode 120000 tests/zemu/snapshots/nanox_erc721_transfer_wo_info/00002.png delete mode 100644 tests/zemu/snapshots/nanox_erc721_transfer_wo_info/00003.png delete mode 120000 tests/zemu/snapshots/nanox_erc721_transfer_wo_info/00004.png delete mode 120000 tests/zemu/snapshots/nanox_erc721_transfer_wo_info/00005.png delete mode 120000 tests/zemu/snapshots/nanox_erc721_transfer_wo_info/00006.png delete mode 120000 tests/zemu/snapshots/nanox_erc721_transfer_wo_info/00007.png delete mode 120000 tests/zemu/snapshots/nanox_erc721_transfer_wo_info/00008.png delete mode 120000 tests/zemu/snapshots/nanox_erc721_transfer_wo_info/00009.png delete mode 120000 tests/zemu/snapshots/nanox_erc721_transfer_wo_info/00010.png delete mode 100644 tests/zemu/src/erc1155.notest.js delete mode 100644 tests/zemu/src/erc721.notest.js diff --git a/tests/zemu/snapshots/nanox_erc1155_batch_transfer/00000.png b/tests/zemu/snapshots/nanox_erc1155_batch_transfer/00000.png deleted file mode 100644 index 487ea10fcfeb2f3e6b79239459672251d49addd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 414 zcmV;P0b%}$P)vpO}&+|8}fC)JNq`>?#dJ%s{^>GN_4usXQirk{^@^BA?p!El9&T9q~zMsh2=YdLB`_ONiP zKy6XlUGFZ>Cn7mP3u*>PW<2FVjInt|Gg`l&SO@?Dj^p*6~=Ggi({_s4<^kB(#D`rz zoHn7-I>}f$FgVPoSftr9`0RfDW2xtRetr^6=s)H4t!K_(p>ILI>>ka!x428SY<-Z< zl~ZS5uA8Ud-s|()KR6>Rs@^DRgV5#+Uh2I*JZ+0A89^>bfQH0gTe~DWM4fa=n`8 diff --git a/tests/zemu/snapshots/nanox_erc1155_batch_transfer/00002.png b/tests/zemu/snapshots/nanox_erc1155_batch_transfer/00002.png deleted file mode 100644 index 7d01fe80c981e4dacb153b84d86a76d1e5bf7ea3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 710 zcmV;%0y+JOP)u3sS>)oAq|}pu!|U%Xyl{BVJnpv4cf)=CuT#aiY%s4dJa&LtOh0Mi z?5(?URdco49q=@vRsTj`elO8#QWO6XEUo-URwWFLa3>XkyHq`)3`f>nTI+0hKA)Bg zQf)2M741cLtBgGH%3&4E9!j;#X!Q63C%C*esOnnRR$(VC)b{mic&n&Zen%GL88AIi zfP(_;?w(e2gPs-rQ@)V7z~d59ZAz;rq>Za(pSTZt2u*E|NT$nX3E{z(gaMS9mn{7iIlPSdK?$XqOpdcB@gp z-T~mr(>m66cO?@&_XO)5;6xH1)lagmoK;(~-T?*v90Qbdqv1mS!iU;XwsOzzzcgb+dqA>>*913aAu#YLiblK=n!07*qoM6N<$f)1EUTL1t6 diff --git a/tests/zemu/snapshots/nanox_erc1155_batch_transfer/00003.png b/tests/zemu/snapshots/nanox_erc1155_batch_transfer/00003.png deleted file mode 100644 index 950fd72aaea19c12ebe953827e63d1da749c1441..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 592 zcmV-W0zI1bzF zG$^k}l7=JXnrGEB&R@*!w$eqSy`8m!-~hA`Q_N{x+Lw*O@;DAL9(B5uQZ_TnIL$o8 zlu6ZewO1Fv0iPE2ZsRd7?aRjeRcYo)S9h+5GNT%;HD;=ppJ^+gPH%KXHWs(KD4pP( z%OXN=_o=rKVDc8!OW9?EcQQiP+7%2wmZoh%bsa`!>Q`NN(v@y7*P;j~!2!sVrCiHh zXFEGWZY*0`5j^Sq#l*ZeE?)ou0Dx~Ku7;L~L)fe{a+k7n=^m3P?D&rm2US&IMc6_2 z=|}Y`0oO_qEwNDj?N*x^0ec-)cQryQg{{}_#F%TU)@EFY#+F{@nccSBHeRzDB)}dq z&QrRoH25VUP&DXJK0Q}Fc@^28;(UvfUyHSi0!C7jInSaPY0J#DJN2_|48P8i` z@7Ww|$JWgCA7Sl%OvLdlDLa={&od8dFQeHfD>{n-P*J*NQBN@dE$$lwsJV3)0>MQm zGX_hkyLXNn8e>rGYz2ITLiv2AtCdfXU;}Jh0pcggr7BsslphC0&6u|O-T2kYfKE9c z?KZZ(nmGPi)jQ4$``-->_v1Tu3DnTdY+C{988q)mmx`%VQVke$mIVL+0000000000 e00000cnALsF(B(E^GVnM00007?pftUHm7OLi@+n=P@CxWf||_bkMB zf?1><&FKtuu}nHDVQ(@6&Cc5bGL7f^&!9(dr}nl?W-DPlK%%LDCgH*nWro+g z>YBU9GuyEMqNSdWM(CRN1C?IV*nuC$dB(@YQm0cppq?c4rRXf;v(+k|@ym)ea>pFM z-Xb&88Q47?3(#&cvxU3%u*QwAa@{qZRZissw88C4Lxqw1!b<@Wl}V3+wbL>CsiISB zI!%^s@)RZrZjc%M$1p<8=syhC;7xc6y-5;euEADxcssrunpXBY<%$JNvtpD;uhjIF zjvQ~hB5hH`?-X8x(7OXRCPne79R<4HIKh#pl7UKaky;Z#-B6?~#9gM~-M!Q!{vKRg z$>Y}YR)lA(-Jxc8Gc5~ox=Tu5#vI05(Z6QC8JB)*ObFb=YU_2~_VCcUfml3j&{UVr z8Im2~H3(O+FzGU%w8+Q<$$|OyMl4x?t^Ll+N}0wSX%&3rp5)kkH%3h7IcZ)LsKlv` ze!zOx+UI|o#(1Vo$*y6f)(9bl5JE`H#$U?gwCNh&R@7Rc*ioGF8?l*^Cr!5xjC$bj_)&P4hbVQ&3k2)%f!qu>v~LVt6_0t_?U?KH(`V2sbrN&pxfDl3mA%u`0#ecoe%Sp5F(P{ty002ovPDHLkV1ke` Bow5J` diff --git a/tests/zemu/snapshots/nanox_erc1155_batch_transfer/00005.png b/tests/zemu/snapshots/nanox_erc1155_batch_transfer/00005.png deleted file mode 100644 index 05c1afa8585ff10ee02d738eb0e5dfd4133a6ecc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 500 zcmVSd;jf!<#rrDX5Ks%unZPn=GTPz!sh`EiY&vp*(O{xi=q`Spe;or~Q3CV~odf{0OCeY(_2eaS!BWDy7;f8EWA+<+TEed&udw?wY_e zIj(?Hc^)l);yFe3crtt40GsP8-z!Siz9u=YfZFaKK5rNDxIbFHUJZfV;)WylpZeEs z9FgT+-}wv}=JD2q7ho>}@W)J5L+$He;~m+f%BX5h>Xb^X_~=&kC>yHr!P)F5$*PEK z36(m;hGbMrXKtPC>Vj3@XuKBGKLu<7t5zjdwZ`1onCa~div_5)#&XMi%h8A8K&TS2 zJ+_U-N$0V%T{YADEB_Ibj*44tLnxj~!jc?j;_O%fPvcP{9p39+zXDD**2fci(JNr) zsil4ty!xrD9}L|Oz*YC4@!RBS4*BBNWfVF#s17otzfEDN8U4+;2X|r@y3@%Za}QiG qyZ`_I000000000000000fSX^=<&1R9$2iph00000WbcEP)in9Dopl_da`g-RI+c=EYtaiw<=rYJ*jkHTwe2tEHmZFM>05ZE^kzAw94L39*ZYRtShFV< zwir8Z=-Dr8r8d^YXFR0iZkXY;$q;6#imwu&|7MCQ$6x6kE;a@F{G#| z4(;%A=|5Zp=9QFZM9#ON_C9JwM19|B*@mXq*tem|#?%sLU}VKbdS|bea7vQN{xU+U z$^K%D!A{IVJ6$B1F_?<<0ssI2000000000000000)BFN*yLlT*n?UUV00006P)Nkl`l1;k+@4An6g^M6kcbtxu@7*hfO000000DuchDWw$aQJnB& zJ%BsK3VrpQ1hnYqoNY&PO0WdV>i`7cs)e_@w@x()p@w=B24`klR6(CLpxqtlZO|2 zIWjpO-F~*EHtLqUMt)Wc_@bMv^h#{CUFW0M(vJ1P=5N1GhWcHM(-Xu*&bc@D4_o$^ z7Y|pL)I@*DzttR=&yLH#^{|TW)8Sp0qphw%epiuSUG#WHS~ht|j~;`U4>BXmdi9@& zuz>%00000G5i7^TsbXePb2LB O0000MjqtrV%Nn6esuj!jIMi}Btw`sohxwi1&U@}K{{10Q-!s%eVxF#kF6*2U FngGM>p?d%T diff --git a/tests/zemu/snapshots/nanox_erc1155_batch_transfer/00009.png b/tests/zemu/snapshots/nanox_erc1155_batch_transfer/00009.png deleted file mode 120000 index 10266b3..0000000 --- a/tests/zemu/snapshots/nanox_erc1155_batch_transfer/00009.png +++ /dev/null @@ -1 +0,0 @@ -00007.png \ No newline at end of file diff --git a/tests/zemu/snapshots/nanox_erc1155_batch_transfer/00010.png b/tests/zemu/snapshots/nanox_erc1155_batch_transfer/00010.png deleted file mode 100644 index a58590b988714545e7960f7f400f360ffc5de41f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 382 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9hba4!+nDh2#bl+hG9*4k? zQuR0Wo;SViCn%lTo!KM1sAjk5Y(@*V#~rbuHu`7A_H&AxgwHf8y4cdKvg$JbB4n%ez%sZ31aBYd&Oo@(7)_WJ(Znl2o8^PD` zFE`_Y-IS+Kdq0Q2-7r_C=}F(5ev`U`H~)QH|9$1FHE$YjoVax+e0xei%S`SAGlOm! zp7{T3NA-mVOYb&rdU8MdyIHo@@7cE*uj@I+Zu{2i)KMSV-E~ovpO}&+|8}fC)JNq`>?#dJ%s{^>GN_4usXQirk{^@^BA?p!El9&T9q~zMsh2=YdLB`_ONiP zKy6XlUGFZ>Cn7mP3u*?Yj*NZe%~CWfG*OPo;i-j_O-xVE4x(*ytjw|n)zfm3qM^Fc~!IW3PH z=3&G7^uB>>R8cN7G`M%~8~Dv(y@wMl0ef=JL30x+0gXjJr4(YpS&Ni_M+%mJpk>|= zECB!jJVXC(X!Xzb!Z-auExGj4Gr3kE;j(mP_ElSOM$PyQq6$PO@+x6nNKV|U z#l4(~Y5SpCCZ^*LJP2>B+6ihm$fAFnjZlmJ&E%jbt58n|L6(ER5?%lR0000000000 a_?s`=hm}oltDK<#0000u3sS>)oAq|}pu!|U%Xyl{BVJnpv4cf)=CuT#aiY%s4dJa&LtOh0Mi z?5(?URdco49q=@vRsTj`elO8#QWO6XEUo-URwWFLa3>XkyHq`)3`f>nTI+0hKA)Bg zQf)2M741cLtBgGH%3&4E9!j;#X!Q63C%C*esOnnRR$(VC)b{mic&n&Zen%GL88AIi zfP(_;?w(e2gPs-rQ@)V7z~d59ZAz;rq>Za(pSTZt2u*E|NT$nX3E{z(gaMS9mn{7iIlPSdK?$XqOpdcB@gp z-T~mr(>m66cO?@&_XO)5;6xH1)lagmoK;(~-T?*v90Qbdqv1mS!iU;XwsOzzzcgb+dqA>>*913aAu#YLiblK=n!07*qoM6N<$f)1EUTL1t6 diff --git a/tests/zemu/snapshots/nanox_erc1155_transfer/00003.png b/tests/zemu/snapshots/nanox_erc1155_transfer/00003.png deleted file mode 100644 index a5790c197388350f3a1b1c943a17c6dd5b80c8a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 528 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|_uN>EaktG3V{f=)P739*4On z?{fZ*pHw}QU-;6Lpi|yO#?Nac-<)<5eO1Z`)Wopo-1!a9YVZHFTKc5hmg!T~v6mZK zWj?Q}c=oer)xQ_1Qn`YKj$xtC=@_$%tBgcIHaa^hnkz@8-IsBz|2n`;O+kt!s3? zEIVJ*!YH=CscNF;?3ziEyRyO!e?~@q-xuvEV)|ivj;h)e++wfnPqzis-| zenzuz{UgZ|R*TuXTRrr@SFe6DyZ-I$uB|$&_iOjpTqxBH>zi`-+JeH#$KuK=G;6;~ z)y&LVmp17HOG)CA?0+UEi~sRQ+OrF!pN{5eGMRKnCa3iaC@L{P&SU;niYFDnM@^au OlJj)+b6Mw<&;$Ug_2g3k diff --git a/tests/zemu/snapshots/nanox_erc1155_transfer/00004.png b/tests/zemu/snapshots/nanox_erc1155_transfer/00004.png deleted file mode 100644 index 5906d19670483bbdca21b03b527ea852b494fe6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 823 zcmV-71IYY|P)7?pftUHm7OLi@+n=P@CxWf||_bkMB zf?1><&FKtuu}nHDVQ(@6&Cc5bGL7f^&!9(dr}nl?W-DPlK%%LDCgH*nWro+g z>YBU9GuyEMqNSdWM(CRN1C?IV*nuC$dB(@YQm0cppq?c4rRXf;v(+k|@ym)ea>pFM z-Xb&88Q47?3(#&cvxU3%u*QwAa@{qZRZissw88C4Lxqw1!b<@Wl}V3+wbL>CsiISB zI!%^s@)RZrZjc%M$1p<8=syhC;7xc6y-5;euEADxcssrunpXBY<%$JNvtpD;uhjIF zjvQ~hB5hH`?-X8x(7OXRCPne79R<4HIKh#pl7UKaky;Z#-B6?~#9gM~-M!Q!{vKRg z$>Y}YR)lA(-Jxc8Gc5~ox=Tu5#vI05(Z6QC8JB)*ObFb=YU_2~_VCcUfml3j&{UVr z8Im2~H3(O+FzGU%w8+Q<$$|OyMl4x?t^Ll+N}0wSX%&3rp5)kkH%3h7IcZ)LsKlv` ze!zOx+UI|o#(1Vo$*y6f)(9bl5JE`H#$U?gwCNh&R@7Rc*ioGF8?l*^Cr!5xjC$bj_)&P4hbVQ&3k2)%f!qu>v~LVt6_0t_?U?KH(`V2sbrN&pxfDl3mA%u`0#ecoe%Sp5F(P{ty002ovPDHLkV1ke` Bow5J` diff --git a/tests/zemu/snapshots/nanox_erc1155_transfer/00005.png b/tests/zemu/snapshots/nanox_erc1155_transfer/00005.png deleted file mode 100644 index d6257d347a1536ff8e530304937dd86728fcae1c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 792 zcmV+z1LypSP)@TCRW};E3pCXi@pp9x2*+<~BT}(wfov?jNZap(`+m%`H2@pN zgZEn-kzg<46)WI8&)nEF*(Nr>V3M3?S!PhY#fGkf4A%qYGM-6QRldz?TQ=L>F zn|`HiIn*Rmza%i>CGt`B%&)gPmb;ZMWsE@FrZzw>g0 z^flwp4^l`@O3V`I=(b-EMuSMAh_xI8yhuXa!z)GD;yg}NDJ;r4#vr=WGO zzq-@j8^D)bL?2rLGD1x-zC;CU1F&f1$8q#>bnz0UTDJi?hRSx3GFkrIc5AR-vg)6u zJIS2=Z75UC+20If@FdJaPvT56W3UuCy{H=MYL>=9uxM9VSJ#xaM%71Lvot)6jY73d z;cAw4$)3f~8jY55ITKMa!M^a}fL&Y!)zGZ_+PdrRr(C3cDMDRb`0xTUk$Xc%?xMJR zvM*JnD*cR?=#TGci7w9}i!>q**e#zGcwb24Gbw0TjB9dhvk$NMlK`ycmI1}*%{t(4 z0D4Pxo!=?5|5}^?fP!V9@K7U2&UJf76w_EO>CcW`fe=CnA>@;R)X-6Zv#y>cJ!X9d zIw{unMu+q`%)I0$8JZC4%9GeR(%`#xmQyJIlAy*BOhkD3QuqL5$VyW zZo5>xSpYB3h*%4{hj_K`%ea{jG2I}^4>4sgO_>>gK%`fah#Km?{^fV}w3U{CfSM(I zBL2t%1s)wj{t5{Hb)%9cXlIc-x?%?)SJDd~%iMEk?5K+PGcyAz+Atx65JCtcOZW%o WV8u#kNX+B_0000$D diff --git a/tests/zemu/snapshots/nanox_erc1155_transfer/00006.png b/tests/zemu/snapshots/nanox_erc1155_transfer/00006.png deleted file mode 100644 index 061c754c7733618beab803330ab526c04a16a484..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 558 zcmV+}0@3}6P)UTJq`c>004mHe9c}U#&|YD2-ip1 zHaLe#IqF0?Opd?$6CG@sa+WH2EZ?&is1p7nJ3SK*&5^RlcDcPRs#~O=pV!zCtv}dUA!RNtE_Xt z#yG1gpz5<;$rqo1>+(=7d+li1INL_nBrl{b5$Qu1a1n8!Fy%pP-owi% z$wrBE@sn4*9Gx7l5JI&l$1|pRRuW;_);dhf5{I~xw5Cj{AJJhMF0OS4J??2%DW z>M`_8SocCEXXSaXu9e&h$vrIR8h3l*C(p0j=72|8|Hx9BWxAyfNY>7sJn#;v#%_;f zkA~{7W{izr6<%?zCuTt>MI&SVWhkb``isE_J0S|~q+(=zFqPcA)BhXVMqW*HCVx{C z(0_z+5O38upMRiV{I`^xH}3JBwIG{P%yGU{G33AvJg+z!s<6-Dqe9Rd!2z3j=pEom wIz7R?`Ry10000000000000000006w5U!4OsCJS)&^Z)<=07*qoM6N<$f+=MB8UO$Q diff --git a/tests/zemu/snapshots/nanox_erc1155_transfer/00007.png b/tests/zemu/snapshots/nanox_erc1155_transfer/00007.png deleted file mode 100644 index c748a750b1b71690ef58c191ac87c58280aab984..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 312 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h5*QvW?&978JRyuA_FcSu2i;ljF) zYJ2}r+|eyBeNt!JMN?hom(}&W7BeJgEIJL;b@#8zx>&Ey{@1(aZ9nCCP(946lQlz* zzvs`xfN9m=#BT(A&$+Y5u&~s6deEyaKPH}4IC~*`h3ex4cdXWb-}*K4=j?;`rH*74 z)(I!-ha}CG`pA+awYF3ywNE&p{KdxEB`xNkWmqjj-9 zSM%bMknyCr9>u5&ukW^bd))uWP~$IrUgZBV#j|f%B_5R@n5yYu#Okq(;p8o*GynXg z@67&ks*ZiP=d{0hWv&~Vv?AxM7n1=fYv<3J*wu6{1- HoD!M<+rx*M diff --git a/tests/zemu/snapshots/nanox_erc1155_transfer/00008.png b/tests/zemu/snapshots/nanox_erc1155_transfer/00008.png deleted file mode 100644 index cd509d9907238bbeda5aed2629ac476d990947df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 464 zcmV;>0WbcEP)|L@5`573}d(hvXu0D$Sf<`0=t+74ojt(L=m zp6qA7pVbq%(u?Artz3YVQjAgDyy5Tdyv4M9MEs9S-H+Y5r_alMPae-B?!q3OIxcFY zQc5|R`G;jcYGXO*4S!9?6H`$AOoaX3Z>>kZM)Xj2r8bJQ^VeY60*GW%-?^a?snJpL zaVvL;(I>CL;uPc$@zBDkK{O(}D*uEBrl2y_Wa^9B4w>j@yI5^p`w|8K0QjGdS3~Wh zO4%rOL-nVgu?wwFwOZ6^h`q5<5i+jvw6x}bqtdRor zXQm)epywApRiC*4FCtUW(0y_KpXotM(B%UzPI+29LwF2*hB|xhg!k^ZC4v!TqCbri zYN9_GYp@boXr)e&S%X^#Y diff --git a/tests/zemu/snapshots/nanox_erc1155_transfer/00009.png b/tests/zemu/snapshots/nanox_erc1155_transfer/00009.png deleted file mode 100644 index 570ce28d53e82ac396ba25c370110058f3a638f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmV;}0Vn>6P)Nkl`l1;k+@4An6g^M6kcbtxu@7*hfO000000DuchDWw$aQJnB& zJ%BsK3VrpQ1hnYqoNY&PO0WdV>i`7cs)e_@w@x()p@w=B24`klR6(CLpxqtlZO|2 zIWjpO-F~*EHtLqUMt)Wc_@bMv^h#{CUFW0M(vJ1P=5N1GhWcHM(-Xu*&bc@D4_o$^ z7Y|pL)I@*DzttR=&yLH#^{|TW)8Sp0qphw%epiuSUG#WHS~ht|j~;`U4>BXmdi9@& zuz>%00000G5i7^TsbXePb2LB O0000MjqtrV%Nn6esuj!jIMi}Btw`sohxwi1&U@}K{{10Q-!s%eVxF#kF6*2U FngGM>p?d%T diff --git a/tests/zemu/snapshots/nanox_erc1155_transfer/00011.png b/tests/zemu/snapshots/nanox_erc1155_transfer/00011.png deleted file mode 120000 index 489390a..0000000 --- a/tests/zemu/snapshots/nanox_erc1155_transfer/00011.png +++ /dev/null @@ -1 +0,0 @@ -00009.png \ No newline at end of file diff --git a/tests/zemu/snapshots/nanox_erc1155_transfer/00012.png b/tests/zemu/snapshots/nanox_erc1155_transfer/00012.png deleted file mode 100644 index a58590b988714545e7960f7f400f360ffc5de41f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 382 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9hba4!+nDh2#bl+hG9*4k? zQuR0Wo;SViCn%lTo!KM1sAjk5Y(@*V#~rbuHu`7A_H&AxgwHf8y4cdKvg$JbB4n%ez%sZ31aBYd&Oo@(7)_WJ(Znl2o8^PD` zFE`_Y-IS+Kdq0Q2-7r_C=}F(5ev`U`H~)QH|9$1FHE$YjoVax+e0xei%S`SAGlOm! zp7{T3NA-mVOYb&rdU8MdyIHo@@7cE*uj@I+Zu{2i)KMSV-E~oaH1MOvfRFde|Kx zk4HM~ZXu0%)_BH!_f^|Abk)(>WUbIS0Ty+MIfG@qEL4#p1T`OdcQM8kRvE?}<{6Ca zwAfu^t+i>+C6R;=YWZ3X1rR}zte)u}G(PPwmT z)k16fil@+F@-3*9OxfU>jA&ZB%HZG9v|CU^c2KQ*06Q+I=XEo$M`IRWWnk!!i> z*{Z z*OM;I{2vpO}&+|8}fC)JNq`>?#dJ%s{^>GN_4usXQirk{^@^BA?p!El9&T9q~zMsh2=YdLB`_ONiP zKy6XlUGFZ>Cn7mP3u*?Yj*NZe%~CWfG*OPo;i-j_O-xVE4x(*ytjw|n)zfm3qM^Fc~!IW3PH z=3&G7^uB>>R8cN7G`M%~8~Dv(y@wMl0ef=JL30x+0gXjJr4(YpS&Ni_M+%mJpk>|= zECB!jJVXC(X!Xzb!Z-auExGj4Gr3kE;j(mP_ElSOM$PyQq6$PO@+x6nNKV|U z#l4(~Y5SpCCZ^*LJP2>B+6ihm$fAFnjZlmJ&E%jbt58n|L6(ER5?%lR0000000000 a_?s`=hm}oltDK<#0000u3sS>)oAq|}pu!|U%Xyl{BVJnpv4cf)=CuT#aiY%s4dJa&LtOh0Mi z?5(?URdco49q=@vRsTj`elO8#QWO6XEUo-URwWFLa3>XkyHq`)3`f>nTI+0hKA)Bg zQf)2M741cLtBgGH%3&4E9!j;#X!Q63C%C*esOnnRR$(VC)b{mic&n&Zen%GL88AIi zfP(_;?w(e2gPs-rQ@)V7z~d59ZAz;rq>Za(pSTZt2u*E|NT$nX3E{z(gaMS9mn{7iIlPSdK?$XqOpdcB@gp z-T~mr(>m66cO?@&_XO)5;6xH1)lagmoK;(~-T?*v90Qbdqv1mS!iU;XwsOzzzcgb+dqA>>*913aAu#YLiblK=n!07*qoM6N<$f)1EUTL1t6 diff --git a/tests/zemu/snapshots/nanox_erc721_transfer/00003.png b/tests/zemu/snapshots/nanox_erc721_transfer/00003.png deleted file mode 100644 index 9e8c446ebafe3ddbebf6ef6a978ee29a2ba4b852..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 442 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|?+Yba4!+nDh2#blwpK9*2vW zrq+r7y_59+cC_exmPnqL`~GK_P;;l^%xQb#fVvKp#lM?oc&tRmDWlz%@l%D$%H8cI z&mtd7e*b2A+pJ{ji=2&N1%3{_QAx)VB=!AQoe*f6)o&BqW7uli_OT_BO?k4|<)>?R z)mY!U@+4o{dqdB3^~o^Ot6>Ur-~{J5f}>^sZ<4u7fe%RTUQM3c6xHb;|$d zUVo=JcS?GeZN#OU?2ofcKYU~bx_*VmjoB-jABE1?QLdKt@w@+lhif^yYmNv0d#tv- z;nwU0vDRB}|7qgf@c!?r+>}bsysULnD^8aRU$|F1|I+8sb+a2DSmdKI;Vst0BAPE6#xJL diff --git a/tests/zemu/snapshots/nanox_erc721_transfer/00004.png b/tests/zemu/snapshots/nanox_erc721_transfer/00004.png deleted file mode 100644 index 23f2a45049fefdbf9ab903d8934d9b600a527185..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 770 zcmV+d1O5DoP)kx>KP=*pJ4EMEcV)Kdf9^}NbUh?D$=mK0WI7dZ_ zfro)lHfVTa**|J?bcUPt4pT&;FlbvjDHF6 zjjPtIN3fntRd?vS2_r)?i{WeS#rtqb{z0}6n4NGF9#~~farg#ibyr8Zne6_X46EzD z0Z;>nyyR-~a&dQH){ITGu)FeA?cR05;M`OTn)N&rL!%nMqFCo=+{wNHxH5CE19m#> zn{{l%6|eOEtKa+?o(klSgd7G!Evq9{QQE1+oNd$cu+jDHht62v2FhdwW{?^E+fYKy z=-&*-;7OQ;o`n1GlgRLT)zC&de0i;&qmdG+C4;m$X8raq2YMf*Rv*6>gf{?3-qPxl z3DpM#9Jeoet6B~-%4_~HD^)lCSL8`>?gym^xd5%kF%P;{=-e`ybU-aNA`h#kDbUYg z0Hj4LtA<@Jnzp!EKUpWE(iN67hbu@YbE=^-`b|q$4IQWJ;V18qHYHUez07$b!~fi? z=_-z*dw^`|N|Z<@l_@xUappVYcQ@vMYyo#fLI@#*5K^=7m-351PMJ>0*3lvm$fei0 zzU;02*lPe1_N!e>>y5nW zjo3fQb}JyvLNb*fe}6u&itV`p5JCtcgb?x!-+H-TqnD2<+W-In07*qoM6N<$f}Dba4!+nDh2#AYZcrPebDN zH)?zTPpq15J3%r`;9~BU9sjF~wA!}FGU;&xH5uGFyPG*b#8kH9#4ls}Jdf>9&#yE) zli&T|;oZh$pC6wbzMF)EhVo8r-d)cAs_gY&qb9WkZ>_}laW%n5SWMVz1vyO{YV?wr z{&`(siCJ?-T5UG#+%&ZvK$Aa+CYf)!6KtG*Yx0Sjdfj+?^I6~DKZ=d-a+TZhsb^=( zxh?P4nBA=USMg8#;U=En+@J5>+e+mwW!2Y>MUf7tE6mszvVm-dw{vtIDK p@!1%1RX(zP)A<1uKFGlSGfU0fO;0SQbZr0$d%F6$taD0e0sz#{l0^Uj diff --git a/tests/zemu/snapshots/nanox_erc721_transfer/00006.png b/tests/zemu/snapshots/nanox_erc721_transfer/00006.png deleted file mode 100644 index 6ce12bac14e5a62c5d71f7041d7b801af0da1c6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 463 zcmV;=0WkiFP)PX1-8c9O-ZL%1+$9Q)!E`<W;YVljjSKI*t! zAGaCTrOeLdE7oBA>GA;>>2myk>rN`f@hgcnx_9E~odc%)s5F`uXZ7?5rzDx|ZzH6d z>~F>xSfUD9x=1o(uoUS90000000000000000001%`3J~Te_WG%`!N6j002ovPDHLk FV1o5N)s+AM diff --git a/tests/zemu/snapshots/nanox_erc721_transfer/00007.png b/tests/zemu/snapshots/nanox_erc721_transfer/00007.png deleted file mode 100644 index 570ce28d53e82ac396ba25c370110058f3a638f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmV;}0Vn>6P)Nkl`l1;k+@4An6g^M6kcbtxu@7*hfO000000DuchDWw$aQJnB& zJ%BsK3VrpQ1hnYqoNY&PO0WdV>i`7cs)e_@w@x()p@w=B24`klR6(CLpxqtlZO|2 zIWjpO-F~*EHtLqUMt)Wc_@bMv^h#{CUFW0M(vJ1P=5N1GhWcHM(-Xu*&bc@D4_o$^ z7Y|pL)I@*DzttR=&yLH#^{|TW)8Sp0qphw%epiuSUG#WHS~ht|j~;`U4>BXmdi9@& zuz>%00000G5i7^TsbXePb2LB O0000MjqtrV%Nn6esuj!jIMi}Btw`sohxwi1&U@}K{{10Q-!s%eVxF#kF6*2U FngGM>p?d%T diff --git a/tests/zemu/snapshots/nanox_erc721_transfer/00009.png b/tests/zemu/snapshots/nanox_erc721_transfer/00009.png deleted file mode 120000 index 10266b3..0000000 --- a/tests/zemu/snapshots/nanox_erc721_transfer/00009.png +++ /dev/null @@ -1 +0,0 @@ -00007.png \ No newline at end of file diff --git a/tests/zemu/snapshots/nanox_erc721_transfer/00010.png b/tests/zemu/snapshots/nanox_erc721_transfer/00010.png deleted file mode 100644 index a58590b988714545e7960f7f400f360ffc5de41f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 382 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9hba4!+nDh2#bl+hG9*4k? zQuR0Wo;SViCn%lTo!KM1sAjk5Y(@*V#~rbuHu`7A_H&AxgwHf8y4cdKvg$JbB4n%ez%sZ31aBYd&Oo@(7)_WJ(Znl2o8^PD` zFE`_Y-IS+Kdq0Q2-7r_C=}F(5ev`U`H~)QH|9$1FHE$YjoVax+e0xei%S`SAGlOm! zp7{T3NA-mVOYb&rdU8MdyIHo@@7cE*uj@I+Zu{2i)KMSV-E~oaH1MOvfRFde|Kx zk4HM~ZXu0%)_BH!_f^|Abk)(>WUbIS0Ty+MIfG@qEL4#p1T`OdcQM8kRvE?}<{6Ca zwAfu^t+i>+C6R;=YWZ3X1rR}zte)u}G(PPwmT z)k16fil@+F@-3*9OxfU>jA&ZB%HZG9v|CU^c2KQ*06Q+I=XEo$M`IRWWnk!!i> z*{Z z*OM;I{2 { - const current_screen = sim.getMainMenuSnapshot(); - await send_apdu(eth.transport, set_plugin); - await send_apdu(eth.transport, provide_nft_info); - await send_apdu(eth.transport, sign_first); - let sign_promise = send_apdu(eth.transport, sign_more); - - await waitForAppScreen(sim, current_screen); - await sim.navigateAndCompareSnapshots('.', model.name + '_erc1155_transfer', [10, -1, 0]); - - await sign_promise; - })); - - test('[Nano ' + model.letter + '] Transfer ERC-1155 w/o NFT metadata', zemu(model, async (sim, eth) => { - const current_screen = sim.getMainMenuSnapshot(); - await send_apdu(eth.transport, set_plugin); - let sign_tx = send_apdu(eth.transport, sign_first); - - await expect(sign_tx).rejects.toEqual(new TransportStatusError(0x6a80)); - })); - - test('[Nano ' + model.letter + '] Transfer ERC-1155 w/o plugin loaded', zemu(model, async (sim, eth) => { - const current_screen = sim.getMainMenuSnapshot(); - let nft_info = send_apdu(eth.transport, provide_nft_info); - - await expect(nft_info).rejects.toEqual(new TransportStatusError(0x6985)); - })); -} - -{ - const set_plugin = apdu_as_string('e01600007401010745524331313535495f947276749ce646f68ac8c248420045cb7b5e2eb2c2d60000000000000001000147304502210087b35cefc53fd94e25404933eb0d5ff08f20ba655d181de3b24ff0099dc3317f02204a216aa9e0b84bef6e20fcb036bd49647bf0cab66732b99b49ec277ffb682aa1'); - const provide_nft_info = apdu_as_string('e0140000820101194f70656e536561205368617265642053746f726566726f6e74495f947276749ce646f68ac8c248420045cb7b5e00000000000000010001473045022100c74cd613a27a9f4887210f5a3a0e12745e1ba0ab3a0d284cb6485d89c3cce4e602205a13e62a91164985cf58a838f8f531c0b91b980d206a5ba8df28270023ef93a3'); - const sign_first = apdu_as_string('e004000096058000002c8000003c800000000000000000000000f9020b0e850d8cfd86008301617d94495f947276749ce646f68ac8c248420045cb7b5e80b901e42eb2c2d60000000000000000000000006cbcd73cd8e8a42844662f0a0e76d7f79afd933d000000000000000000000000c2907efcce4011c491bbeda8a0fa63ba7aab596c00000000000000000000000000000000000000000000'); - const sign_more_1 = apdu_as_string('e004800096000000000000000000a0000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000003abf06640f8ca8fc5e0ed471b10befcdf65a33e430000000000006a0000000064def9d99ff495856496c028c0'); - const sign_more_2 = apdu_as_string('e00480009689732473fcd0bbbe000000000000a30000000001abf06640f8ca8fc5e0ed471b10befcdf65a33e430000000000006a00000000640000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000010000'); - const sign_more_3 = apdu_as_string('e00480006100000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000043078303000000000000000000000000000000000000000000000000000000000018080'); - - test('[Nano ' + model.letter + '] Batch transfer ERC-1155', zemu(model, async (sim, eth) => { - const current_screen = sim.getMainMenuSnapshot(); - await send_apdu(eth.transport, set_plugin); - await send_apdu(eth.transport, provide_nft_info); - await send_apdu(eth.transport, sign_first); - await send_apdu(eth.transport, sign_more_1); - await send_apdu(eth.transport, sign_more_2); - let sign_promise = send_apdu(eth.transport, sign_more_3); - - await waitForAppScreen(sim, current_screen); - await sim.navigateAndCompareSnapshots('.', model.name + '_erc1155_batch_transfer', [8, -1, 0]); - - await sign_promise; - })); -} diff --git a/tests/zemu/src/erc721.notest.js b/tests/zemu/src/erc721.notest.js deleted file mode 100644 index 1d05853..0000000 --- a/tests/zemu/src/erc721.notest.js +++ /dev/null @@ -1,41 +0,0 @@ -import "core-js/stable"; -import "regenerator-runtime/runtime"; -import Zemu from '@zondax/zemu'; -import { TransportStatusError } from "@ledgerhq/errors"; -import { waitForAppScreen, zemu, nano_models, apdu_as_string, send_apdu } from './test.fixture'; - -// Only LNX -const model = nano_models[1]; - -const set_plugin = apdu_as_string('e01600007301010645524337323160f80121c31a0d46b5279700f9df786054aa5ee542842e0e0000000000000001000147304502202e2282d7d3ea714da283010f517af469e1d59654aaee0fc438f017aa557eaea50221008b369679381065bbe01135723a4f9adb229295017d37c4d30138b90a51cf6ab6'); -const provide_nft_info = apdu_as_string('e01400007001010752617269626c6560f80121c31a0d46b5279700f9df786054aa5ee500000000000000010001473045022025696986ef5f0ee2f72d9c6e41d7e2bf2e4f06373ab26d73ebe326c7fd4c7a6602210084f6b064d8750ae68ed5dd012296f37030390ec06ff534c5da6f0f4a4460af33'); -const sign_first = apdu_as_string('e004000096058000002c8000003c800000000000000000000000f88a0a852c3ce1ec008301f5679460f80121c31a0d46b5279700f9df786054aa5ee580b86442842e0e0000000000000000000000006cbcd73cd8e8a42844662f0a0e76d7f79afd933d000000000000000000000000c2907efcce4011c491bbeda8a0fa63ba7aab596c000000000000000000000000000000000000000000000000'); -const sign_more = apdu_as_string('e00480000b0000000000112999018080'); - -test('[Nano ' + model.letter + '] Transfer ERC-721', zemu(model, async (sim, eth) => { - const current_screen = sim.getMainMenuSnapshot(); - await send_apdu(eth.transport, set_plugin); - await send_apdu(eth.transport, provide_nft_info); - await send_apdu(eth.transport, sign_first); - let sign_promise = send_apdu(eth.transport, sign_more); - - await waitForAppScreen(sim, current_screen); - await sim.navigateAndCompareSnapshots('.', model.name + '_erc721_transfer', [8, -1, 0]); - - await sign_promise; -})); - -test('[Nano ' + model.letter + '] Transfer ERC-721 w/o NFT metadata', zemu(model, async(sim, eth) => { - const current_screen = sim.getMainMenuSnapshot(); - await send_apdu(eth.transport, set_plugin); - let sign_tx = send_apdu(eth.transport, sign_first); - - await expect(sign_tx).rejects.toEqual(new TransportStatusError(0x6a80)); -})); - -test('[Nano ' + model.letter + '] Transfer ERC-721 w/o plugin loaded', zemu(model, async (sim, eth) => { - const current_screen = sim.getMainMenuSnapshot(); - let nft_info = send_apdu(eth.transport, provide_nft_info); - - await expect(nft_info).rejects.toEqual(new TransportStatusError(0x6985)); -})); From 435544f1864acb290b1ded06832b0b26acd2be6f Mon Sep 17 00:00:00 2001 From: Charles-Edouard de la Vergne Date: Tue, 2 Apr 2024 19:15:57 +0200 Subject: [PATCH 16/35] Remove useless 'zemu' tests eip191 (already exists in 'ragger') --- .../snapshots/nanos_eip191_metamask/00000.png | Bin 368 -> 0 bytes .../snapshots/nanos_eip191_metamask/00001.png | Bin 463 -> 0 bytes .../snapshots/nanos_eip191_metamask/00002.png | Bin 423 -> 0 bytes .../snapshots/nanos_eip191_metamask/00003.png | Bin 407 -> 0 bytes .../snapshots/nanos_eip191_metamask/00004.png | Bin 449 -> 0 bytes .../snapshots/nanos_eip191_metamask/00005.png | Bin 407 -> 0 bytes .../snapshots/nanos_eip191_metamask/00006.png | Bin 349 -> 0 bytes .../snapshots/nanos_eip191_nonascii/00000.png | Bin 368 -> 0 bytes .../snapshots/nanos_eip191_nonascii/00001.png | Bin 409 -> 0 bytes .../snapshots/nanos_eip191_nonascii/00002.png | Bin 486 -> 0 bytes .../snapshots/nanos_eip191_nonascii/00003.png | Bin 481 -> 0 bytes .../snapshots/nanos_eip191_nonascii/00004.png | Bin 465 -> 0 bytes .../snapshots/nanos_eip191_nonascii/00005.png | Bin 484 -> 0 bytes .../snapshots/nanos_eip191_nonascii/00006.png | Bin 426 -> 0 bytes .../snapshots/nanos_eip191_nonascii/00007.png | Bin 407 -> 0 bytes .../snapshots/nanos_eip191_nonascii/00008.png | Bin 449 -> 0 bytes .../snapshots/nanos_eip191_nonascii/00009.png | Bin 407 -> 0 bytes .../snapshots/nanos_eip191_nonascii/00010.png | Bin 349 -> 0 bytes .../snapshots/nanos_eip191_opensea/00000.png | Bin 368 -> 0 bytes .../snapshots/nanos_eip191_opensea/00001.png | Bin 475 -> 0 bytes .../snapshots/nanos_eip191_opensea/00002.png | Bin 472 -> 0 bytes .../snapshots/nanos_eip191_opensea/00003.png | Bin 465 -> 0 bytes .../snapshots/nanos_eip191_opensea/00004.png | Bin 449 -> 0 bytes .../snapshots/nanos_eip191_opensea/00005.png | Bin 478 -> 0 bytes .../snapshots/nanos_eip191_opensea/00006.png | Bin 462 -> 0 bytes .../snapshots/nanos_eip191_opensea/00007.png | Bin 463 -> 0 bytes .../snapshots/nanos_eip191_opensea/00008.png | Bin 426 -> 0 bytes .../snapshots/nanos_eip191_opensea/00009.png | Bin 404 -> 0 bytes .../snapshots/nanos_eip191_opensea/00010.png | Bin 448 -> 0 bytes .../snapshots/nanos_eip191_opensea/00011.png | Bin 470 -> 0 bytes .../snapshots/nanos_eip191_opensea/00012.png | Bin 406 -> 0 bytes .../snapshots/nanos_eip191_opensea/00013.png | Bin 462 -> 0 bytes .../snapshots/nanos_eip191_opensea/00014.png | Bin 407 -> 0 bytes .../snapshots/nanos_eip191_opensea/00015.png | Bin 449 -> 0 bytes .../snapshots/nanos_eip191_opensea/00016.png | Bin 407 -> 0 bytes .../snapshots/nanos_eip191_opensea/00017.png | Bin 349 -> 0 bytes .../snapshots/nanox_eip191_metamask/00000.png | Bin 415 -> 0 bytes .../snapshots/nanox_eip191_metamask/00001.png | Bin 624 -> 0 bytes .../snapshots/nanox_eip191_metamask/00002.png | Bin 463 -> 0 bytes .../snapshots/nanox_eip191_metamask/00003.png | Bin 499 -> 0 bytes .../snapshots/nanox_eip191_metamask/00004.png | Bin 463 -> 0 bytes .../snapshots/nanox_eip191_metamask/00005.png | Bin 382 -> 0 bytes .../snapshots/nanox_eip191_nonascii/00000.png | Bin 415 -> 0 bytes .../snapshots/nanox_eip191_nonascii/00001.png | Bin 814 -> 0 bytes .../snapshots/nanox_eip191_nonascii/00002.png | Bin 846 -> 0 bytes .../snapshots/nanox_eip191_nonascii/00003.png | Bin 463 -> 0 bytes .../snapshots/nanox_eip191_nonascii/00004.png | Bin 499 -> 0 bytes .../snapshots/nanox_eip191_nonascii/00005.png | Bin 463 -> 0 bytes .../snapshots/nanox_eip191_nonascii/00006.png | Bin 382 -> 0 bytes .../snapshots/nanox_eip191_opensea/00000.png | Bin 415 -> 0 bytes .../snapshots/nanox_eip191_opensea/00001.png | Bin 857 -> 0 bytes .../snapshots/nanox_eip191_opensea/00002.png | Bin 829 -> 0 bytes .../snapshots/nanox_eip191_opensea/00003.png | Bin 723 -> 0 bytes .../snapshots/nanox_eip191_opensea/00004.png | Bin 849 -> 0 bytes .../snapshots/nanox_eip191_opensea/00005.png | Bin 626 -> 0 bytes .../snapshots/nanox_eip191_opensea/00006.png | Bin 618 -> 0 bytes .../snapshots/nanox_eip191_opensea/00007.png | Bin 912 -> 0 bytes .../snapshots/nanox_eip191_opensea/00008.png | Bin 692 -> 0 bytes .../snapshots/nanox_eip191_opensea/00009.png | Bin 463 -> 0 bytes .../snapshots/nanox_eip191_opensea/00010.png | Bin 499 -> 0 bytes .../snapshots/nanox_eip191_opensea/00011.png | Bin 463 -> 0 bytes .../snapshots/nanox_eip191_opensea/00012.png | Bin 382 -> 0 bytes tests/zemu/src/eip191.test.js | 72 ------------------ 63 files changed, 72 deletions(-) delete mode 100644 tests/zemu/snapshots/nanos_eip191_metamask/00000.png delete mode 100644 tests/zemu/snapshots/nanos_eip191_metamask/00001.png delete mode 100644 tests/zemu/snapshots/nanos_eip191_metamask/00002.png delete mode 100644 tests/zemu/snapshots/nanos_eip191_metamask/00003.png delete mode 100644 tests/zemu/snapshots/nanos_eip191_metamask/00004.png delete mode 100644 tests/zemu/snapshots/nanos_eip191_metamask/00005.png delete mode 100644 tests/zemu/snapshots/nanos_eip191_metamask/00006.png delete mode 100644 tests/zemu/snapshots/nanos_eip191_nonascii/00000.png delete mode 100644 tests/zemu/snapshots/nanos_eip191_nonascii/00001.png delete mode 100644 tests/zemu/snapshots/nanos_eip191_nonascii/00002.png delete mode 100644 tests/zemu/snapshots/nanos_eip191_nonascii/00003.png delete mode 100644 tests/zemu/snapshots/nanos_eip191_nonascii/00004.png delete mode 100644 tests/zemu/snapshots/nanos_eip191_nonascii/00005.png delete mode 100644 tests/zemu/snapshots/nanos_eip191_nonascii/00006.png delete mode 100644 tests/zemu/snapshots/nanos_eip191_nonascii/00007.png delete mode 100644 tests/zemu/snapshots/nanos_eip191_nonascii/00008.png delete mode 100644 tests/zemu/snapshots/nanos_eip191_nonascii/00009.png delete mode 100644 tests/zemu/snapshots/nanos_eip191_nonascii/00010.png delete mode 100644 tests/zemu/snapshots/nanos_eip191_opensea/00000.png delete mode 100644 tests/zemu/snapshots/nanos_eip191_opensea/00001.png delete mode 100644 tests/zemu/snapshots/nanos_eip191_opensea/00002.png delete mode 100644 tests/zemu/snapshots/nanos_eip191_opensea/00003.png delete mode 100644 tests/zemu/snapshots/nanos_eip191_opensea/00004.png delete mode 100644 tests/zemu/snapshots/nanos_eip191_opensea/00005.png delete mode 100644 tests/zemu/snapshots/nanos_eip191_opensea/00006.png delete mode 100644 tests/zemu/snapshots/nanos_eip191_opensea/00007.png delete mode 100644 tests/zemu/snapshots/nanos_eip191_opensea/00008.png delete mode 100644 tests/zemu/snapshots/nanos_eip191_opensea/00009.png delete mode 100644 tests/zemu/snapshots/nanos_eip191_opensea/00010.png delete mode 100644 tests/zemu/snapshots/nanos_eip191_opensea/00011.png delete mode 100644 tests/zemu/snapshots/nanos_eip191_opensea/00012.png delete mode 100644 tests/zemu/snapshots/nanos_eip191_opensea/00013.png delete mode 100644 tests/zemu/snapshots/nanos_eip191_opensea/00014.png delete mode 100644 tests/zemu/snapshots/nanos_eip191_opensea/00015.png delete mode 100644 tests/zemu/snapshots/nanos_eip191_opensea/00016.png delete mode 100644 tests/zemu/snapshots/nanos_eip191_opensea/00017.png delete mode 100644 tests/zemu/snapshots/nanox_eip191_metamask/00000.png delete mode 100644 tests/zemu/snapshots/nanox_eip191_metamask/00001.png delete mode 100644 tests/zemu/snapshots/nanox_eip191_metamask/00002.png delete mode 100644 tests/zemu/snapshots/nanox_eip191_metamask/00003.png delete mode 100644 tests/zemu/snapshots/nanox_eip191_metamask/00004.png delete mode 100644 tests/zemu/snapshots/nanox_eip191_metamask/00005.png delete mode 100644 tests/zemu/snapshots/nanox_eip191_nonascii/00000.png delete mode 100644 tests/zemu/snapshots/nanox_eip191_nonascii/00001.png delete mode 100644 tests/zemu/snapshots/nanox_eip191_nonascii/00002.png delete mode 100644 tests/zemu/snapshots/nanox_eip191_nonascii/00003.png delete mode 100644 tests/zemu/snapshots/nanox_eip191_nonascii/00004.png delete mode 100644 tests/zemu/snapshots/nanox_eip191_nonascii/00005.png delete mode 100644 tests/zemu/snapshots/nanox_eip191_nonascii/00006.png delete mode 100644 tests/zemu/snapshots/nanox_eip191_opensea/00000.png delete mode 100644 tests/zemu/snapshots/nanox_eip191_opensea/00001.png delete mode 100644 tests/zemu/snapshots/nanox_eip191_opensea/00002.png delete mode 100644 tests/zemu/snapshots/nanox_eip191_opensea/00003.png delete mode 100644 tests/zemu/snapshots/nanox_eip191_opensea/00004.png delete mode 100644 tests/zemu/snapshots/nanox_eip191_opensea/00005.png delete mode 100644 tests/zemu/snapshots/nanox_eip191_opensea/00006.png delete mode 100644 tests/zemu/snapshots/nanox_eip191_opensea/00007.png delete mode 100644 tests/zemu/snapshots/nanox_eip191_opensea/00008.png delete mode 100644 tests/zemu/snapshots/nanox_eip191_opensea/00009.png delete mode 100644 tests/zemu/snapshots/nanox_eip191_opensea/00010.png delete mode 100644 tests/zemu/snapshots/nanox_eip191_opensea/00011.png delete mode 100644 tests/zemu/snapshots/nanox_eip191_opensea/00012.png delete mode 100644 tests/zemu/src/eip191.test.js diff --git a/tests/zemu/snapshots/nanos_eip191_metamask/00000.png b/tests/zemu/snapshots/nanos_eip191_metamask/00000.png deleted file mode 100644 index ab16f62bfcfb15701d788a6a84fe55001d152730..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmV-$0gwKPP)m1gYoarBO3LH$euV2HeiC{**okfHIi+m$sv2p+{O|Q}I5aNh^Ys5dP#v zj%1qABdJ+S6K!y2Hbl8uvs5Q~cSHZe-9%(GG&6lVhU>>5GXsQK^2D%BBCpwrIq!n_ zbF$#pv0JKROAs&1vS|{M6`m6<_23d_XsOOAL5k@8zo4r@s|o-B(!2ofEx#wWs1tqw O0000MaU92SR5*`t9v2czV|X*7BvxgO z)p+ZvUYGL-uTN3<`uzV)UX(wBJ~&{Iaqz+-DJeaLDamgLY-*-R{vnH4-lM9jf!c0Z zW(TB_^bJjm!dYmTEbNp>H>H5d0)RioL&_xJL%+#x*1e1;tlet>H^A3mCU^5fdvRf~^Fux$cn{KwhX0c0r{CWT}dOP@do{nOCcdxzI`4*IM{X z(+=@)+0baZ)i*pXCfVP#10*4_ zb})?2Qi4;iiq{~_r}BO6jb^%WahCib^CWx$9LI5<%NLSnLSpuqiy>kU=~#TZ3V6h&d-ea!o0ERxQIK0r5|1-|8U z_`@f?F82OCybtn>zGY+f1o*|}hFaJ}Eva6Ajo;Kn6MaCN(B3IU#~G0*w9F0&E#bN6tRh{PX$qPz!L z&z2-%L#|DKhC!3CvqPQ8j%tcd$*e*1Skq3In;H^kC6uo~pR56Ep zGQ7@O5AzNnvKDJXldQAuM{N~T9zhR>?f~@YrjRh-15(tU`sG>QLq$=PZoYT}NH|@ zz8wshkB{~MB4`H0-uM*3M1j}m%A!300N{kCpu~9KJs1LQ1E{7`qHO>OJQ#XfRy9Bv z^==(ieYk597RD@{OEdS6GT+Lmuf_h$vek1^KVM4p7nbmHWt7bot=9>X{;(33tDmYc z&D9U$Wf)T#sV`+WTVz^Qo=ISYs`0?ozXTD=g%{*$&h`n6Q%*!K%L9vjA?<}S_3O~y z51_40w#ON-)XL64x@JligSXK^F9>U5TpZCDR;l1-dd45KJ?)^knt8<|^tT^?&`+$? zRq8>0Bcb3GkI=CJNF3=@I3K*Rlqo0JRixhcTL&d5MMji-{W*PXyu+hM-x=UTI}_BI zGx^;Gypw%}(Vkv=s~wl1InZ7QJjtlNRl_ihQog8p&yJp0VZ8tV002ovPDHLkV1iJ- Bw$=au diff --git a/tests/zemu/snapshots/nanos_eip191_metamask/00004.png b/tests/zemu/snapshots/nanos_eip191_metamask/00004.png deleted file mode 100644 index d55782f429e629a5ae929916914befa14613edba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 449 zcmV;y0Y3hTP)9Z)nZ zoKdfPKxBZtOD`O!Ud7)^nCSVm48R~fHVz_gJJ3!JB$;A z73W%!0pdWH0?92?e|oM4;Hw|TH|@ zz8wshkB{~MB4`H0-uM*3M1j}m%A!300N{kCpu~9KJs1LQ1E{7`qHO>OJQ#XfRy9Bv z^==(ieYk597RD@{OEdS6GT+Lmuf_h$vek1^KVM4p7nbmHWt7bot=9>X{;(33tDmYc z&D9U$Wf)T#sV`+WTVz^Qo=ISYs`0?ozXTD=g%{*$&h`n6Q%*!K%L9vjA?<}S_3O~y z51_40w#ON-)XL64x@JligSXK^F9>U5TpZCDR;l1-dd45KJ?)^knt8<|^tT^?&`+$? zRq8>0Bcb3GkI=CJNF3=@I3K*Rlqo0JRixhcTL&d5MMji-{W*PXyu+hM-x=UTI}_BI zGx^;Gypw%}(Vkv=s~wl1InZ7QJjtlNRl_ihQog8p&yJp0VZ8tV002ovPDHLkV1iJ- Bw$=au diff --git a/tests/zemu/snapshots/nanos_eip191_metamask/00006.png b/tests/zemu/snapshots/nanos_eip191_metamask/00006.png deleted file mode 100644 index ce795f34e8569e986af689fded3b59c9a8af2961..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 349 zcmV-j0iyniP)O41}p;-~WL<=z+0=1Om1tEU@3H#qtw22}5*_5JCvCo4!52c$FXo$VhXU?0M$^Bekqgf%Ka;M*^X|4 zEs9YCQ(xfJKmNC#+8dY%2&wT+>D^<3C%}_*k1^mvtO~`RE00000NkvXXu0mjf-kqOA diff --git a/tests/zemu/snapshots/nanos_eip191_nonascii/00000.png b/tests/zemu/snapshots/nanos_eip191_nonascii/00000.png deleted file mode 100644 index ab16f62bfcfb15701d788a6a84fe55001d152730..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmV-$0gwKPP)m1gYoarBO3LH$euV2HeiC{**okfHIi+m$sv2p+{O|Q}I5aNh^Ys5dP#v zj%1qABdJ+S6K!y2Hbl8uvs5Q~cSHZe-9%(GG&6lVhU>>5GXsQK^2D%BBCpwrIq!n_ zbF$#pv0JKROAs&1vS|{M6`m6<_23d_XsOOAL5k@8zo4r@s|o-B(!2ofEx#wWs1tqw O0000oy&TtFl@5nH}fk&&VNs3`?O5Cp*x&Lf>i!(!PPxf@`~Ps`h3 zyvMor%Xy@2XJ*E>e_fa`djKE`@bj8m)>3WR164>`Fj3>B zB953UL1kn$ML3C44oSln;cRDzis}!_D${k*tVMbU%8IRTaQll2S1@P)}fOH3Hc{QVIkDfk2=Owl!^Q#&V@I&!)r*g#T*|=QH?0qq53Aw7TWCFgq_gRgAFBN57RoWg@m=R+uZDb>zgpW zSo%nIz@m^;O{$@70_0oAyOb1qy4p&6+%jBO9)%>^*+-&S6m3*PVRSkA0jS&ZB{@J6 z*1aC-%kP!Lhm%wbPDuo8zjb-zw^{kthto9ZAhFOoND%b23=>!s+2+I|wxCFi1q=iN cfk2=wzHdvTd*2h55C8xG07*qoM6N<$f@K!kX8-^I diff --git a/tests/zemu/snapshots/nanos_eip191_nonascii/00003.png b/tests/zemu/snapshots/nanos_eip191_nonascii/00003.png deleted file mode 100644 index d95e83116fb3fd0939b17ef41eff75e3b6bd2b20..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 481 zcmV<70UrK|P){#w0tud90LzS>yR1n zEzk74T<)(Q`zHLxjrojDz_GcG$$S2aE!wER=D8N+Ec2tS9d_;Pdo0+d#M+1-kq&89 zXqpp%Tky^$RU&4SL#hpNDju&KzLJ2;{WTe06G#hL4!$~kX}IO3D$jLv01`*S#J{}r zQY%gvT7vM(dS1eylq}qb+r+*!FT5uxA4}s2q&sr>f9$G#1%^+tlvvr?MDU9AkS$Q)m0ipT;`$+2VeQ#&0SR zSvY5g(=ItUW5jV0BZ3J|ujiXp)LZP`A$HSlSeh3uorbZea8{~%=lo3=Un#{Xn`oI3 zZ=RxF?~IeX=mifZAQ}RID*=X-W)C6SK=&)2?d8J~+?;|_b8YR*PFm2MS7^VW6gK`b z4mI?-xV9vjH+%*!na0!9P~-GzGcn$=0WZLII=9aw(F9b{FCL;z%29=iq9}@@DE^QK XgC}&3P(cZN00000NkvXXu0mjft)1Lc diff --git a/tests/zemu/snapshots/nanos_eip191_nonascii/00004.png b/tests/zemu/snapshots/nanos_eip191_nonascii/00004.png deleted file mode 100644 index e8c4c8e784f5d1550324ce4f9ec79dfa27a9dcc8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 465 zcmV;?0WSWDP)os$NPa|JG#kFdPMINsps^_hK@bGN|2dCz9)*^X%2*nqKvZ2`^bHLvL5a~20WGz|#rRkU&g-R~wZW@TA(ml)bHsQ-* z*yxIl8f+&;*d*pT0Plg8O*jcD3-_Ti@mPwjY5vJ#Yn-cAIT#psYT-;a+r#QfcA?225ISk&0#VB_=T>r634`AQ-}Rrt2(NW(GrJP-9~S zn0)|0DXi{*Jh*b@kw?{H{pw%y*A{Fp%c*Tmc5Ch<3XYVTg8T$E zEDJqm22cwfx%3fig<>%&$egOvYYbC5;CO#3BXa_?uq-T-vTPcuyjA9TtqwpVcbNJp z3vbopjHM}vwk)y;CnIIiGE$TJvb@NW%;~&7UbRVY09>*00=NGVkb3dgJ5T2g@Y3l< zV?Se^X&;Uf?Oql50-_IA@>N-AI|_}gzNV?R>We_S+{-B=c1 zuHnX}=(boLWs z$T&X2Z0B0Q3&0+D@+vPh9Vbe5+=HvGygKa3uZ^pr)J?`c;+Jy2#?E4E;U(dr9jBMD zWzAZIqs7XiOiPRuLqn$!+&dXpfWLmVgpyGR7dXJ9$7ut^^jw8IE+iPrqm1(VGmHg@ z*&Z!H)b`{${R@lu-2pL+S#b=tQFmneF^mO>epyqcmgcmGEu=!rq5uE@002NczM11L Uk|V*Cx&QzG07*qoM6N<$f(t0SaR2}S diff --git a/tests/zemu/snapshots/nanos_eip191_nonascii/00007.png b/tests/zemu/snapshots/nanos_eip191_nonascii/00007.png deleted file mode 100644 index f5c2d6774a86d59f5cad0974eb03748765433d08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 407 zcmV;I0cie-P)H|@ zz8wshkB{~MB4`H0-uM*3M1j}m%A!300N{kCpu~9KJs1LQ1E{7`qHO>OJQ#XfRy9Bv z^==(ieYk597RD@{OEdS6GT+Lmuf_h$vek1^KVM4p7nbmHWt7bot=9>X{;(33tDmYc z&D9U$Wf)T#sV`+WTVz^Qo=ISYs`0?ozXTD=g%{*$&h`n6Q%*!K%L9vjA?<}S_3O~y z51_40w#ON-)XL64x@JligSXK^F9>U5TpZCDR;l1-dd45KJ?)^knt8<|^tT^?&`+$? zRq8>0Bcb3GkI=CJNF3=@I3K*Rlqo0JRixhcTL&d5MMji-{W*PXyu+hM-x=UTI}_BI zGx^;Gypw%}(Vkv=s~wl1InZ7QJjtlNRl_ihQog8p&yJp0VZ8tV002ovPDHLkV1iJ- Bw$=au diff --git a/tests/zemu/snapshots/nanos_eip191_nonascii/00008.png b/tests/zemu/snapshots/nanos_eip191_nonascii/00008.png deleted file mode 100644 index d55782f429e629a5ae929916914befa14613edba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 449 zcmV;y0Y3hTP)9Z)nZ zoKdfPKxBZtOD`O!Ud7)^nCSVm48R~fHVz_gJJ3!JB$;A z73W%!0pdWH0?92?e|oM4;Hw|TH|@ zz8wshkB{~MB4`H0-uM*3M1j}m%A!300N{kCpu~9KJs1LQ1E{7`qHO>OJQ#XfRy9Bv z^==(ieYk597RD@{OEdS6GT+Lmuf_h$vek1^KVM4p7nbmHWt7bot=9>X{;(33tDmYc z&D9U$Wf)T#sV`+WTVz^Qo=ISYs`0?ozXTD=g%{*$&h`n6Q%*!K%L9vjA?<}S_3O~y z51_40w#ON-)XL64x@JligSXK^F9>U5TpZCDR;l1-dd45KJ?)^knt8<|^tT^?&`+$? zRq8>0Bcb3GkI=CJNF3=@I3K*Rlqo0JRixhcTL&d5MMji-{W*PXyu+hM-x=UTI}_BI zGx^;Gypw%}(Vkv=s~wl1InZ7QJjtlNRl_ihQog8p&yJp0VZ8tV002ovPDHLkV1iJ- Bw$=au diff --git a/tests/zemu/snapshots/nanos_eip191_nonascii/00010.png b/tests/zemu/snapshots/nanos_eip191_nonascii/00010.png deleted file mode 100644 index ce795f34e8569e986af689fded3b59c9a8af2961..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 349 zcmV-j0iyniP)O41}p;-~WL<=z+0=1Om1tEU@3H#qtw22}5*_5JCvCo4!52c$FXo$VhXU?0M$^Bekqgf%Ka;M*^X|4 zEs9YCQ(xfJKmNC#+8dY%2&wT+>D^<3C%}_*k1^mvtO~`RE00000NkvXXu0mjf-kqOA diff --git a/tests/zemu/snapshots/nanos_eip191_opensea/00000.png b/tests/zemu/snapshots/nanos_eip191_opensea/00000.png deleted file mode 100644 index ab16f62bfcfb15701d788a6a84fe55001d152730..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmV-$0gwKPP)m1gYoarBO3LH$euV2HeiC{**okfHIi+m$sv2p+{O|Q}I5aNh^Ys5dP#v zj%1qABdJ+S6K!y2Hbl8uvs5Q~cSHZe-9%(GG&6lVhU>>5GXsQK^2D%BBCpwrIq!n_ zbF$#pv0JKROAs&1vS|{M6`m6<_23d_XsOOAL5k@8zo4r@s|o-B(!2ofEx#wWs1tqw O0000SyQLV>f``qQOXbqPQ!xHR|COsXOA0SyCJd8p>4D$G9G01l`_(uRqI zm-0Bm&=LeaYiYtkEafR_*d`q3*-+7p*k<53^!1u%AOyTIcM4XSqhdgXLp08%+! z=q2-`B8L>iaS;F>zm;Y{ zj&!821jz#B0i?eyMp+k`@-*5>54HRek%oSDznJODGUXpK{{#6P)NklvzQ;k!#Y z&FY82E(ouz^tNy?>8`x$K1B|QVlFqHW?v58)XK_UdM79NJ^TmR3i#pP@KPV zRAMn*27p6YZ zt}Y19tmP6;g3E$+s7~0I)C+QYwA1U>*y|&`0ppEruW))pgQ^EEUimmLfaXpY+WQ&y zlW~3+Yu6gU9}sKc$zOS)<@lZCjVYe(9&Rv+jS=;m(XVjA>E(}IPaH;hEA%kNJ=8qJ z*e!5MI1_~vsE~bIHAFq7U0k%YsIazS7xsvwQeXewA)SC?)KixjRY}!~15|7fXgvYr znz$&h3ZN!AG*WL;Wh{vO4N|N>h!d6DRnb5ptI9k@Q$|DYMCA#fpLg&U(z8edy#vv1 zl71nuT}wq$Ur?y1qV^PRnEEZ{Zk)RTgm6L5!~z6C5ZsqH@5oSV+{|q600000NkvXX Hu0mjfC5O-K diff --git a/tests/zemu/snapshots/nanos_eip191_opensea/00004.png b/tests/zemu/snapshots/nanos_eip191_opensea/00004.png deleted file mode 100644 index 53e131782764371604e832ef97bbf7abadd774d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 449 zcmV;y0Y3hTP)>A zCic^4-VGqNf4sisQZUBV07V7)Yn4^9g&QR-eZ1VIFEK07bgE*m6!8~<~AO{WhFIm124^q rjn^$wHITeD_#eVS5ClOG1e@^zhU7M@!dcj+Df}SXkjuz-W-&%WkPu=pr634`;HfOW>h~?Bl$KR%X~w>N zk9*i~Kx|u9a5r~!;LAzx=x~RYUTzp4y(b`t8;MQ*61GUa9?jv4>=Aeg|G-P$eoxiD z{r;d%G3^~XCAJ3s?781Z2*G5 ziYURjtaEvs&@}~>p0#YkNl00x4A)tXC5^&gl*yp&=D11XtAlaJwhL76Xi)W{w`X3? z6QHHjiDEwkUm3>-SUcAPd;l>AJ^83CG#w{S)^B^yP?OXDeJm#VIuQ1+<+Z`RZ$YX= z$y`5(!Lt&q4ZyOyeh9LRNQP6+P!y|SdDhnV5=H?DRZRL8Sy{~SV((<3j z{7a8g1dMtTT=xRUUM_{}=8}?AwKkehfa^y-i%zM+3T6E1R1MV&oKG;|he|7;+;I5+ zbhZgA`A4d5@5-k@+yjy`wJ`M`q`W za>JdciaicN>)1L%yG&qX-_)T2gWm93*rdw@$2T@ zk8icZ9xwPXEyxO|-uRjal~>L`^Z@@a3b4%#Ky=YQ-OB4UhlUwIt}UFnD5r8#XLm2r zWOKdpsuW61+O1XS-JRvTRTIW&cTGWmLk>WaB+38s0k}YQ_Qk-wEC2ui07*qoM6N<$ Ef-xf10{{R3 diff --git a/tests/zemu/snapshots/nanos_eip191_opensea/00007.png b/tests/zemu/snapshots/nanos_eip191_opensea/00007.png deleted file mode 100644 index 56b7f7b3b5ed95e3625a63b68c2367a5fe940e2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 463 zcmV;=0WkiFP)0W-K!&BTpk*?yK;0 z81Hee*X26H>%+Vmug}lH6s#8@Mj`%q%_(b1jiOA9uQhipP%hKdP9=LP_cb1}u2MI| z`h!Z=7?#NZXn}7iJXJ=aB3S65Y$9AR35U}QC$a1cv*Od56*zU}N%(fWh3YHD9()udOT+_CjHbRVd2b>Pc8r}G9# z<#eNWKf<<*>%+`;uOILLd<`slR2ABeOpv>;0W8z9zPRu5XN3@Y=WI$_MqAn&R<(!1 z4>94(sI-4&UCDB0(PtW!F<4oNx`K*fYAiaQ)V{OoV4XlFyVB&ZJW6RSQeol3l*+nk zdT2o->WRi@OZ!j98db$+Eoj8QNJ^hAPn1>IiF8s!Wx;YCpDj;>wZ327FUbH_Xsq6Z z1vEbCWK!Xy#;gh(Ev}4JvUr;dSn>~psN9DbCXL^QrrkrF{*Q2;>@1VPY+^MLcHNGy%XZJ=gI19}?# z?Wfu=+kS1F2eX|E`!hNK>E=ooui0fK(yUkW_XWyjn%YvbOS!Mnpiz|zY5if3K8>3U z$R+umi>gGMPH7lhi$F-PK9~ex+pmkEH33Ob6{ba*x`t}jR36(xU*I#^0FD$ec9#ym z>qtw z6W#j>_L0#)jJ0!Jzyd@JMzT~DnvRN-r;EW{2G3z_wQsW!o875sFB8e7mM0amuTiu! zs_B)oZ*7vPb0f7L%fj+>c2?U))#g5o?uOc<@u^|CTPpyxGuqZG1+E_UVXXjE+ui;c z9RR6$$$meOJ}RIAz^&fpUTHy9pn`Tr@AgUu;qrsbn=pJ2=uP>b3HOUZ5CnleKQlrY Us%`UkQ8IHd?HKSdxCSE! z{2C|PFUxj*96Ryd7LLc-0d;ZJ$!mVe60X-@^RWfk%Xn*Zo1NSH8VRx}GB&nVpuw;x zRu`uQw=B$MX*gDw^bV9Kw!Xpb9TlQhSRHvg2S5s^f!2P7 zyfXTS7;UTxJb?6pC69_i;kYpJ93PNczEXYHooDizySN3FV9&@Km^@#k&h8;5=Pb!u zt`I-dH19Z^4gytAhDG^gB4(3>Plk|arz*zpGXjsnurD~N;u0000=H2tc({?|)zy?ZTN1^7lg`4sTUck`NG*;4~FQQ541f{MPBW8ZAAQ@iexUO;z|9 z!#8N$1hCehm)(zehB}~`pe@_;$hJtml&R-sSU7fKTONvH8q`vlOV;s>pbuq=wfqAG zV!ZW?2!Ji{&4rK7^`ABqnwkx=0OB3cBAw<0)PnLaO~=$IbYwGk(?IN%?pdC<32zRA zMptZf!gf-G4Pu-F;2!ANgeM_oK^ZzGoJ+Aa%|9r%`nf90!N9p=`vpR~%j10T-=jnF z zc>B4Yn(c!v$9@{~MHfa-KwezA^OjrIBE9u!eq(`RnTEC$>{9GoJSeW%6r?98w=6VG z1V9U1x$xFF3dLg7A*z%OFCV&0!1g&iLvsSMpe#(2G94P~d8y3v8r=YnJYnoDExgo- zBZj6RII@;aI0-2WmZ3gjT~aNyB&xLE9FO`)zkzYbwijsrqQTV*KVCVU7eGs=3$6W( zbf%pgrnPHz;17s77|CB{q2(wH@+x!Sl=rWGSylR971wTbQK2(;4`RA7$sTa%Ergza z6FD)#7wK6El`Nj=F2VYz*8_xDcD)p}$=i=u`wekaN0CB}{Wa4f0$RcPG@cEWS-k2h zmDH!ERA@oROG`7{xN;ZglI14xNO)b{^wMT!)KDk%W~003P$k8~avl1OKW8{9W>w5P-G zex~Q;JkqvTh2m&8MlV3#T>0ZIkD{dZ)}#5xg5)w!?OL+ea^GS>F_kL}5n4vQnI;2D zNx5^&M`IK$Y9v?4q+)vYA!Grz{r54vCJ+g!!n`Q+&~VF3Ri4*q2PE=>iH}@)sfZJX zmY_1SmY;B{l&n&R+briII^wa1=WFP>Xw)IS0plOruHgQn!PJWmubj>cpq0~w_I^e@ zGR}|S?OGpj1F!}oxm6Wfj*B4Awgz7QwApcw#%$r0@oK_M5_FX2x=>VTuw(DAD$0Juwjz37DF@qWCA=5p)#-Jt41vvO&XnEI zClQ_jN;{JaYumim^0e4dTCm310RR910KngT0Ju6Fb@P;L+yDRo07*qoM6N<$f~J(a A&;S4c diff --git a/tests/zemu/snapshots/nanos_eip191_opensea/00013.png b/tests/zemu/snapshots/nanos_eip191_opensea/00013.png deleted file mode 100644 index f872acc966fb2563e1c5de855b72147ebcc2c609..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 462 zcmV;<0WtoGP)5-k@+yjy`wJ`M`q`W za>JdciaicN>)1L%yG&qX-_)T2gWm93*rdw@$2T@ zk8icZ9xwPXEyxO|-uRjal~>L`^Z@@a3b4%#Ky=YQ-OB4UhlUwIt}UFnD5r8#XLm2r zWOKdpsuW61+O1XS-JRvTRTIW&cTGWmLk>WaB+38s0k}YQ_Qk-wEC2ui07*qoM6N<$ Ef-xf10{{R3 diff --git a/tests/zemu/snapshots/nanos_eip191_opensea/00014.png b/tests/zemu/snapshots/nanos_eip191_opensea/00014.png deleted file mode 100644 index f5c2d6774a86d59f5cad0974eb03748765433d08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 407 zcmV;I0cie-P)H|@ zz8wshkB{~MB4`H0-uM*3M1j}m%A!300N{kCpu~9KJs1LQ1E{7`qHO>OJQ#XfRy9Bv z^==(ieYk597RD@{OEdS6GT+Lmuf_h$vek1^KVM4p7nbmHWt7bot=9>X{;(33tDmYc z&D9U$Wf)T#sV`+WTVz^Qo=ISYs`0?ozXTD=g%{*$&h`n6Q%*!K%L9vjA?<}S_3O~y z51_40w#ON-)XL64x@JligSXK^F9>U5TpZCDR;l1-dd45KJ?)^knt8<|^tT^?&`+$? zRq8>0Bcb3GkI=CJNF3=@I3K*Rlqo0JRixhcTL&d5MMji-{W*PXyu+hM-x=UTI}_BI zGx^;Gypw%}(Vkv=s~wl1InZ7QJjtlNRl_ihQog8p&yJp0VZ8tV002ovPDHLkV1iJ- Bw$=au diff --git a/tests/zemu/snapshots/nanos_eip191_opensea/00015.png b/tests/zemu/snapshots/nanos_eip191_opensea/00015.png deleted file mode 100644 index d55782f429e629a5ae929916914befa14613edba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 449 zcmV;y0Y3hTP)9Z)nZ zoKdfPKxBZtOD`O!Ud7)^nCSVm48R~fHVz_gJJ3!JB$;A z73W%!0pdWH0?92?e|oM4;Hw|TH|@ zz8wshkB{~MB4`H0-uM*3M1j}m%A!300N{kCpu~9KJs1LQ1E{7`qHO>OJQ#XfRy9Bv z^==(ieYk597RD@{OEdS6GT+Lmuf_h$vek1^KVM4p7nbmHWt7bot=9>X{;(33tDmYc z&D9U$Wf)T#sV`+WTVz^Qo=ISYs`0?ozXTD=g%{*$&h`n6Q%*!K%L9vjA?<}S_3O~y z51_40w#ON-)XL64x@JligSXK^F9>U5TpZCDR;l1-dd45KJ?)^knt8<|^tT^?&`+$? zRq8>0Bcb3GkI=CJNF3=@I3K*Rlqo0JRixhcTL&d5MMji-{W*PXyu+hM-x=UTI}_BI zGx^;Gypw%}(Vkv=s~wl1InZ7QJjtlNRl_ihQog8p&yJp0VZ8tV002ovPDHLkV1iJ- Bw$=au diff --git a/tests/zemu/snapshots/nanos_eip191_opensea/00017.png b/tests/zemu/snapshots/nanos_eip191_opensea/00017.png deleted file mode 100644 index ce795f34e8569e986af689fded3b59c9a8af2961..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 349 zcmV-j0iyniP)O41}p;-~WL<=z+0=1Om1tEU@3H#qtw22}5*_5JCvCo4!52c$FXo$VhXU?0M$^Bekqgf%Ka;M*^X|4 zEs9YCQ(xfJKmNC#+8dY%2&wT+>D^<3C%}_*k1^mvtO~`RE00000NkvXXu0mjf-kqOA diff --git a/tests/zemu/snapshots/nanox_eip191_metamask/00000.png b/tests/zemu/snapshots/nanox_eip191_metamask/00000.png deleted file mode 100644 index 1b271542d4bdb2b420bf296e4efb75129bcde20b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 415 zcmV;Q0bu@#P)5YKJ%(KU&1ONcAAJx@!`E?Y1^<~WN}zCyXs#X zo?o6k@9c|LZskJhD8km*o@uZbHa}-B?&(7HD5C%IYmwHRbJ)2) z`V`bZme<8JnX>F>hL3vOBL0b~>J+pM|9!ySI57nP0000WkROv_^0k3i)wKWs002ov JPDHLkV1lAe!YTj& diff --git a/tests/zemu/snapshots/nanox_eip191_metamask/00001.png b/tests/zemu/snapshots/nanox_eip191_metamask/00001.png deleted file mode 100644 index 58f060626179693a40fbd8ebe172a55ee552d996..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 624 zcmV-$0+0QPP)0`;d{4QW3j_ock`M?Xgb+dqG3V=);*`>L5M!*3 zyn*l22E3i0(*}f;QjGCl{>9XNe5J+MNHO?$vL${q;BrljQT0^etb8Q?5rp6KbFd0C z&S!wi?F*0@c?|NAMn7T|W*iPcUVPL-Bv*RwxNGrBSJomSBPV|v}pRwN^TJgTAsZYt}Th%Kg=3yaxKw|Ey;g2`gF%`v^M~t(O7h_ zH>s{!A`O$3M_RbUT8j^}YG2*jXNKHtz@oOXaBl{*_aN5--g?%yQ}CW^piAnS#{KXh zmKLte0QJ_5V9tCS+I!b;kADjZA%qY@2qAi<1<)ust$A*~1i00000005j&Ypu2Jj^YWw zy90QoT&ZuaQvl6=DP?aYPf1pQ*$k63`;x8zO;>}w*_U($&=hOZQ)gd9es%|NhM$F! zW?$0X0Zo_gyxGq!-I5;w002`g?B41@dShn48j^qcKMg+SRb@~2kiDXt9?G(zZ_&4C zhfSe&Es>ja8l-41$VME{IyOzQ?Ue@1yRzZ^H{)W~!1tfC>juYNH#BJt?4%T&zcu@I zbg0WXI2uYRp~7D9ao)DXaZq_zsB{W|%4eW}Iz^4!e zUu_N6PY6z&;*%m4K>3kw6W0ds>@{hh*gX9g;)ZTl>^=Ari<1<)ust$A*~1i00000005j&Ypu2Jj^YWw zy90QoT&ZuaQvl6=DP?aYPf1pQ*$k63`;x8zO;>}w*_U($&=hOZQ)gd9es%|NhM$F! zW?$0X0Zo_gyxGq!-I5;w002`g?B41@dShn48j^qcKMg+SRb@~2kiDXt9?G(zZ_&4C zhfSe&Es>ja8l-41$VME{IyOzQ?Ue@1yRzZ^H{)W~!1tfC>juYNH#BJt?4%T&zcu@I zbg0WXI2uYRp~7D9ao)DXaZq_zsB{W|%4eW}Iz^4!e zUu_N6PY6z&;*%m4K>3kw6W0ds>@{hh*sAjk5Y(@*V#~rbuHu`7A_H&AxgwHf8y4cdKvg$JbB4n%ez%sZ31aBYd&Oo@(7)_WJ(Znl2o8^PD` zFE`_Y-IS+Kdq0Q2-7r_C=}F(5ev`U`H~)QH|9$1FHE$YjoVax+e0xei%S`SAGlOm! zp7{T3NA-mVOYb&rdU8MdyIHo@@7cE*uj@I+Zu{2i)KMSV-E~o5YKJ%(KU&1ONcAAJx@!`E?Y1^<~WN}zCyXs#X zo?o6k@9c|LZskJhD8km*o@uZbHa}-B?&(7HD5C%IYmwHRbJ)2) z`V`bZme<8JnX>F>hL3vOBL0b~>J+pM|9!ySI57nP0000WkROv_^0k3i)wKWs002ov JPDHLkV1lAe!YTj& diff --git a/tests/zemu/snapshots/nanox_eip191_nonascii/00001.png b/tests/zemu/snapshots/nanox_eip191_nonascii/00001.png deleted file mode 100644 index 6a5f8e8c3e70ce591f4c708d49fc72fe283c097c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 814 zcmV+}1JV46P)Zt5VHsY!pQD%5JCtcgb?yLABkG$d0ro0 zua{M_obx`;R72~+wr~EDLvsYU z7+V6&yPHQ>K$%mjr$mSAlGhJMaaij@nbulVx zVIuhhPzN715VbSCcHA{FTUS~mp*kqbU%BC4<*pFa^}F~9#2<`^RD)(JYRQ>|cEHM|jsl*=HUY{7_5X*XeHc-R}yk>O46}gJ)U&4Y;ZONMAQ;o-FfAh z++5Oeu6jfS55TlYSJvOe5kCpzq~mDy@_BBel@C^a6v%o+)Dm@V`Rz~61*K#e+jqfB zKO@RFy<#qG%N75Hwe)bbwdS~|I*vR*qg>np zeYE&6T5+^idr%klPm2rNf+GC}KzSsO7B|D+7DyWe&vbr~{z0r9BF^gn-~FjEQ5{&; z9+c|K+5--5Mbz!uIo*Zet7F5tAnRP`KkQi}p=K-FLT5j3eWk87raQeX`U5bL3a$q! zC6heS3SMMEai^3g36YZx-80uACTZ@P$m(xD8@fZjb8RcPir@7-0IWW%Ct#1AXys^T sI!LnCf}>p!VQR=iLI@#*5JJ}Q4N4#Nf$af#ZvX%Q07*qoM6N<$f^`sp&Hw-a diff --git a/tests/zemu/snapshots/nanox_eip191_nonascii/00002.png b/tests/zemu/snapshots/nanox_eip191_nonascii/00002.png deleted file mode 100644 index 78d7d1df55478554e6e123fa1c79aeadfedcf0bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 846 zcmV-U1F`&xP)s2c`PD-h%-d%ndnu7`)&Ucicw;)^ds#rNA%XJ-Hf0&;rL6Uoom|Dt0JutlFYFVwQ ztf@T$n@6#A2jm51TB;bWEP4HLDZ9%$eiw2%&rsVmV=UPLCRt-=XGrV#E@Geyr%AD^ zoFgHe_z95C$8z8O-}>9s=%U;K;0h{Io=%;a z_2^4570`uC)c|#nk33C|-C;k8s*!2^Z5XDe^*6&gI0?PbNg77x94uwfyy-uJ_W&hb?7CbTcf%e}G-j2pO)A=;o{H(1?U((yg{+iq2-@Of8|=ZNCe=RQGn>S`bzrZbCUIkkd3kUXxgtd1EQFUigp4pI9@y#(|l-w7ZR zCWRDhvr81B8z{kK-^aP9m`_+P1)YGVZsviVdOc6A-j zng61Mj9KS!a=9OHnTa4rnLAbr4{<@Bn+wu8932363DE+d5LBL-0OTV}#377*`Zdwl2|zaO?~i{>ZY{YDVTkp0Wc>zg#nAU@}#b%707*qoM6N<$f{UVthX4Qo diff --git a/tests/zemu/snapshots/nanox_eip191_nonascii/00003.png b/tests/zemu/snapshots/nanox_eip191_nonascii/00003.png deleted file mode 100644 index c9da92b60a9314d8252cfcd68c1cd10acaf07bb1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 463 zcmV;=0WkiFP)i<1<)ust$A*~1i00000005j&Ypu2Jj^YWw zy90QoT&ZuaQvl6=DP?aYPf1pQ*$k63`;x8zO;>}w*_U($&=hOZQ)gd9es%|NhM$F! zW?$0X0Zo_gyxGq!-I5;w002`g?B41@dShn48j^qcKMg+SRb@~2kiDXt9?G(zZ_&4C zhfSe&Es>ja8l-41$VME{IyOzQ?Ue@1yRzZ^H{)W~!1tfC>juYNH#BJt?4%T&zcu@I zbg0WXI2uYRp~7D9ao)DXaZq_zsB{W|%4eW}Iz^4!e zUu_N6PY6z&;*%m4K>3kw6W0ds>@{hh*gX9g;)ZTl>^=Ari<1<)ust$A*~1i00000005j&Ypu2Jj^YWw zy90QoT&ZuaQvl6=DP?aYPf1pQ*$k63`;x8zO;>}w*_U($&=hOZQ)gd9es%|NhM$F! zW?$0X0Zo_gyxGq!-I5;w002`g?B41@dShn48j^qcKMg+SRb@~2kiDXt9?G(zZ_&4C zhfSe&Es>ja8l-41$VME{IyOzQ?Ue@1yRzZ^H{)W~!1tfC>juYNH#BJt?4%T&zcu@I zbg0WXI2uYRp~7D9ao)DXaZq_zsB{W|%4eW}Iz^4!e zUu_N6PY6z&;*%m4K>3kw6W0ds>@{hh*sAjk5Y(@*V#~rbuHu`7A_H&AxgwHf8y4cdKvg$JbB4n%ez%sZ31aBYd&Oo@(7)_WJ(Znl2o8^PD` zFE`_Y-IS+Kdq0Q2-7r_C=}F(5ev`U`H~)QH|9$1FHE$YjoVax+e0xei%S`SAGlOm! zp7{T3NA-mVOYb&rdU8MdyIHo@@7cE*uj@I+Zu{2i)KMSV-E~o5YKJ%(KU&1ONcAAJx@!`E?Y1^<~WN}zCyXs#X zo?o6k@9c|LZskJhD8km*o@uZbHa}-B?&(7HD5C%IYmwHRbJ)2) z`V`bZme<8JnX>F>hL3vOBL0b~>J+pM|9!ySI57nP0000WkROv_^0k3i)wKWs002ov JPDHLkV1lAe!YTj& diff --git a/tests/zemu/snapshots/nanox_eip191_opensea/00001.png b/tests/zemu/snapshots/nanox_eip191_opensea/00001.png deleted file mode 100644 index 4f59a8d40d40f058565352fec5378b58657989fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 857 zcmV-f1E&0mP)2!?G>cQX55((I)Vp3JcVKX^e+!}pXJ1q5}JF)0N>5ClOG1i^B?=8C)TJAb&Y zODfsUecz=q*+RDDG5)DgwH@bsqO7-|^eO%NP zo3jyh!X*IZ;=?XPbflM#%L9|TQgR249Q}GMj!Tg0_v$CG{$Q$=s?khF+Mt9cmM%f* zHQ2$R1|`x`P)TD|RN7fDOLL2syvy|Rr3wj%5NI{1bexYn2b{J>O+E=PM%s@CK@bG} zfZc_<7d(giFVn>~HR(}P>Qe=+34mRTWmE5JfU#BoK@24NrE?aW#jNrcKzJ@>6GTn> zA1PO=9uHN4tqpZ6tFcd~0{B3`vUTjDq=stEaqaASV7JzH26(XLiDFS&WxUyjO~&^J z!1dI#`$O(hw$|Gg%_ws-$Q`s zt*W%OAzhT7If0yT;9lN?z1T%u$?m1O zM)mOR5#Vl_exq&0IA&9_s^abW)HT@qGIT8kA6V4XW_PBOW*?<1i#TDxHU#RZZM0Kq z8LTp6aul}(pMgwOdux6aSZGi2s;s`4mCV_W1w!n){Dg0~7sTEcZIvJi$xo)~v9aHi zY-K0_-F_U8fh5GwQ%(%M4=6W6Qn#D3p~g&S-%leL-_`u5ja)M$ucbEfad$&clo#p~IAu%fw6ASAh_QPNnwYeFtxC!yC|fAy zQ)yvG7c6$F0%zU|Rl%7~P)$uDvZ8P+%Xl{$pjJ~m2yBq(oB@7Kwg@+78lIX{ZiQyr zazXYhk7a!)CJNtjD>M_Sh|RRk0PxO_rZ8Loc~Olfwopi00000NkvXXu0mjfLzRsu diff --git a/tests/zemu/snapshots/nanox_eip191_opensea/00002.png b/tests/zemu/snapshots/nanox_eip191_opensea/00002.png deleted file mode 100644 index c094bc635527457d7bebad0d5e3b82f5865e43c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 829 zcmV-D1H$}?P)~eq~6PU=!#{yNduy(;d@ABj3R?bx4*frq9}@@D2k#;=PS_Gec#V7 ztu?M?JNJE0-Fwy%2Nng-#(hT=iVbt|R62aBx1W4r1JC3ybVRPmN9e$!K~2 z?A;!(xN8IaasOTc8Hbe|tV(Kna#LtJ+gzIZW6=9#mhS-DSZ7WFY1;47NNjyuwE*S_ z2JUO}PSMXtTuE{lYD=fvQqAEG2v5DY*0_PMY~r3~m%u>stwC>a()ka)z5QL-AXoI$ zAVOWyPo~yjCsl=ZG6{06!BULjUA-!tP;m&#+vaQ!qM~+q^fh<{BCQl5D3N0a?(}as zyx?<_pkHF&WCxU^dQZU)aAOppoOcq?H28fgaB`i^#tr(VLDUplUVTmF&QAT`P%>-A zD`6KCUyXiO88e?OsX21tZ^Rb0LHZg@B@c?_>d1_q5g2< zrCH_#eaKO`C`}bv+^5IEBMG}$mtvpVE@3XXemJ}q)nww&x}~u(ag9S`$>3(vY4+{$}^6&eo@^| zeF!^kVttVdA8sUtOfVyO2p8`-p`aTmF>W)p07X$0MX`zh89A6NKiuVs00000NkvXX Hu0mjfxiX2i diff --git a/tests/zemu/snapshots/nanox_eip191_opensea/00003.png b/tests/zemu/snapshots/nanox_eip191_opensea/00003.png deleted file mode 100644 index 9a3efb771058d85eefb392980a0c0fe891508995..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 723 zcmV;^0xbQBP)3`I#-ZsPkN$#=pai+<2Vj2 z<#x{VjLszA0&_2B9mm1Tr0S#i479aAB%l$Jo^nY^(MUhP18pVZFcBRU$5cZ~(4%Gy zZKw0KReG2@1JcwMBSnIhrx>F(FJm{6vhoz3D7sD7(t(|H$qW!lP8&0W&-AJXwwvH2 zsp((}N@!OKIb#X=my>%8-eT(txh<4&@S^~Z*+RF!VZ2K$Zp znYRRm|G{nyY9mEk2Z%MX3DUZ!U1FT1Y&65Jf^><|Lq@IscKdnPIbgvxYUD|HGTMF= z006*Sm@M7Af})D|Bd-_wahs$yrwPu_*<5j9(vxUc7i+csDEfR6 zQ>BO%a2}W^coKP32iTf+#INxM%z#>WaMxeKX$K7d=xjsYsJR<~g|DbYa#NyK%9}Gx zjinIYeYbkVbFNvg^Jv7APoA;4?F811bm%I`gqh(qYoxf2r~NM zQdS9XzuZg=eIT+$N|LA@yNq*LUS|C*(|DY6rk0rg)Fe_n z%irh(Hr9d~&MvpF_?(U30oo1tVy&fCn2kFiwD!SLtoRZZHOr!q=~Oy*?=S!W0001R z8`w&QFg*%e1iit@#=D{RWz9T`7bX^*S3*g1njOuQ=)7UXc2cZ3TTd;@hYc4%jRI{~ zOAQ^g=uE8xnjM?*QiR_LaUgF;=Y^6>#5j-QNd6<% z)~vb$uB}2`-4w4nJMVfnR3RnBidxEcQyBmN0002Ii$5vRsw`GH#F+p9002ovPDHLk FV1kF7Om+YO diff --git a/tests/zemu/snapshots/nanox_eip191_opensea/00004.png b/tests/zemu/snapshots/nanox_eip191_opensea/00004.png deleted file mode 100644 index 657edb55590d85ffa7c604df86a3e203c8c84688..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 849 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 { - - const tx = eth.signPersonalMessage( - "44'/60'/0'/0/0", - Buffer.from("Example `personal_sign` message").toString("hex") - ); - - await waitForAppScreen(sim); - - const rclicks = (model.letter == 'S') ? 4 : 3; - await sim.navigateAndCompareSnapshots('.', model.name + '_eip191_metamask', [rclicks, -1, 0]); - - await expect(tx).resolves.toEqual({ - "v": 28, - "r": "916099cf0d9c21911c85f0770a47a9696a8189e78c259cf099749748c507baae", - "s": "0d72234bc0ac2e94c5f7a5f4f9cd8610a52be4ea55515a85b9703f1bb158415c" - }); - })); - - - test("[Nano " + model.letter + "] "+ testgroup +" non-ASCII test", zemu(model, async (sim, eth) => { - - const tx = eth.signPersonalMessage( - "44'/60'/0'/0/0", - "9c22ff5f21f0b81b113e63f7db6da94fedef11b2119b4088b89664fb9a3cb658" - ); - - await waitForAppScreen(sim); - - const rclicks = (model.letter == 'S') ? 8 : 4; - await sim.navigateAndCompareSnapshots('.', model.name + '_eip191_nonascii', [rclicks, -1, 0]); - - await expect(tx).resolves.toEqual({ - "v": 28, - "r": "64bdbdb6959425445d00ff2536a7018d2dce904e1f7475938fe4221c3c72500c", - "s": "7c9208e99b6b9266a73aae17b73472d06499746edec34fd47a9dab42f06f2e42" - }); - })); - - - test("[Nano " + model.letter + "] "+ testgroup +" OpenSea test", zemu(model, async (sim, eth) => { - - const tx = eth.signPersonalMessage( - "44'/60'/0'/0/0", - Buffer.from("Welcome to OpenSea!\n\nClick to sign in and accept the OpenSea Terms of Service: https://opensea.io/tos\n\nThis request will not trigger a blockchain transaction or cost any gas fees.\n\nYour authentication status will reset after 24 hours.\n\nWallet address:\n0x9858effd232b4033e47d90003d41ec34ecaeda94\n\nNonce:\n2b02c8a0-f74f-4554-9821-a28054dc9121").toString("hex") - ); - - await waitForAppScreen(sim); - - if (model.letter == 'S') - { - await sim.navigateAndCompareSnapshots('.', model.name + '_eip191_opensea', [1, 5, 1, 6, 0, 1, -1, 0]); - } - else - { - await sim.navigateAndCompareSnapshots('.', model.name + '_eip191_opensea', [1, 5, 1, 2, 1, -1, 0]); - } - - await expect(tx).resolves.toEqual({ - "v": 28, - "r": "61a68c986f087730d2f6ecf89d6d1e48ab963ac461102bb02664bc05c3db75bb", - "s": "5714729ef441e097673a7b29a681e97f6963d875eeed2081f26b0b6686cd2bd2" - }); - })); -}); From be062b74d7668b065f18d3b07311cdcb8484f79c Mon Sep 17 00:00:00 2001 From: Charles-Edouard de la Vergne Date: Tue, 2 Apr 2024 19:21:17 +0200 Subject: [PATCH 17/35] Remove useless 'zemu' tests approve_dai (already exists in 'ragger') --- .../nanos_approve_dai_tokens/00000.png | Bin 374 -> 0 bytes .../nanos_approve_dai_tokens/00001.png | Bin 321 -> 0 bytes .../nanos_approve_dai_tokens/00002.png | Bin 345 -> 0 bytes .../nanos_approve_dai_tokens/00003.png | Bin 469 -> 0 bytes .../nanos_approve_dai_tokens/00004.png | Bin 511 -> 0 bytes .../nanos_approve_dai_tokens/00005.png | Bin 391 -> 0 bytes .../nanos_approve_dai_tokens/00006.png | Bin 385 -> 0 bytes .../nanos_approve_dai_tokens/00007.png | Bin 414 -> 0 bytes .../nanos_approve_dai_tokens/00008.png | Bin 340 -> 0 bytes .../nanos_approve_dai_tokens/00009.png | 1 - .../nanos_approve_dai_tokens/00010.png | Bin 349 -> 0 bytes .../nanox_approve_dai_tokens/00000.png | Bin 414 -> 0 bytes .../nanox_approve_dai_tokens/00001.png | Bin 374 -> 0 bytes .../nanox_approve_dai_tokens/00002.png | Bin 416 -> 0 bytes .../nanox_approve_dai_tokens/00003.png | Bin 776 -> 0 bytes .../nanox_approve_dai_tokens/00004.png | Bin 454 -> 0 bytes .../nanox_approve_dai_tokens/00005.png | Bin 472 -> 0 bytes .../nanox_approve_dai_tokens/00006.png | Bin 365 -> 0 bytes .../nanox_approve_dai_tokens/00007.png | 1 - .../nanox_approve_dai_tokens/00008.png | Bin 382 -> 0 bytes tests/zemu/src/approve.test.js | 25 ------------------ 21 files changed, 27 deletions(-) delete mode 100644 tests/zemu/snapshots/nanos_approve_dai_tokens/00000.png delete mode 100644 tests/zemu/snapshots/nanos_approve_dai_tokens/00001.png delete mode 100644 tests/zemu/snapshots/nanos_approve_dai_tokens/00002.png delete mode 100644 tests/zemu/snapshots/nanos_approve_dai_tokens/00003.png delete mode 100644 tests/zemu/snapshots/nanos_approve_dai_tokens/00004.png delete mode 100644 tests/zemu/snapshots/nanos_approve_dai_tokens/00005.png delete mode 100644 tests/zemu/snapshots/nanos_approve_dai_tokens/00006.png delete mode 100644 tests/zemu/snapshots/nanos_approve_dai_tokens/00007.png delete mode 100644 tests/zemu/snapshots/nanos_approve_dai_tokens/00008.png delete mode 120000 tests/zemu/snapshots/nanos_approve_dai_tokens/00009.png delete mode 100644 tests/zemu/snapshots/nanos_approve_dai_tokens/00010.png delete mode 100644 tests/zemu/snapshots/nanox_approve_dai_tokens/00000.png delete mode 100644 tests/zemu/snapshots/nanox_approve_dai_tokens/00001.png delete mode 100644 tests/zemu/snapshots/nanox_approve_dai_tokens/00002.png delete mode 100644 tests/zemu/snapshots/nanox_approve_dai_tokens/00003.png delete mode 100644 tests/zemu/snapshots/nanox_approve_dai_tokens/00004.png delete mode 100644 tests/zemu/snapshots/nanox_approve_dai_tokens/00005.png delete mode 100644 tests/zemu/snapshots/nanox_approve_dai_tokens/00006.png delete mode 120000 tests/zemu/snapshots/nanox_approve_dai_tokens/00007.png delete mode 100644 tests/zemu/snapshots/nanox_approve_dai_tokens/00008.png delete mode 100644 tests/zemu/src/approve.test.js diff --git a/tests/zemu/snapshots/nanos_approve_dai_tokens/00000.png b/tests/zemu/snapshots/nanos_approve_dai_tokens/00000.png deleted file mode 100644 index 8d84cc70fea8013b7e8b25c0982ce142fa103d5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 374 zcmV-+0g3*JP)K?4J2QqX3 zXn7ePqhBDwvA-|J28LIrjF%tX0z{3v6!_gF&(SYH)S*7TN;1RxW-%}TLH9_+sttDO z-T32w&rL(!1@Vr`jm5G(8dd=Ruu#)JAN?l#rFLU`oQ(r?$33AC7s0}pw!fi~(9k^# zU9aci?pXN=I7A<-f!Mw2untnw9MivqZYw}c5&)gweYhbTnv#2#t$0X2wST7_1F;LR zw?>Da2SkSfG>qWq1mej-6nW@2l+Z=0om5jdB%3o3Qx19_LNUlTqF4R_1Iaj%@^2O= z@;n%h1N>H$2;%-~Dvx1!0LtkT-;cq73rgisOElFtPbcL{d3TfNQvm<~003s>1*i4o Uje8$F8UO$Q07*qoM6N<$g5rpv%m4rY diff --git a/tests/zemu/snapshots/nanos_approve_dai_tokens/00001.png b/tests/zemu/snapshots/nanos_approve_dai_tokens/00001.png deleted file mode 100644 index e48314bb33eaa36c21ba030f118870194bb4a333..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 321 zcmV-H0lxl;P)`VD$coh$}4448t^p!^&z)*Pz4cLo5Lwtu28lWQk zZQGogtYWB}Kie`s1F0-0;WZ!`YAKFUvZ9khd5a>L?hNdN2cB?OA$CCf@FL!W9<#~< z6?ZMDA7bi&)84E*aw(^$^0w8H8DI}MhnwmRkb}~fw}9rY>?ZqH|0zK96G{oXKNc{R z2g3lh%Afdf;OVKi0bP@`9)V=-U}e2WVfa}eGI~spuu!M2$KL= z*~cJ20@BV&pDJ|Q8`ZWkMAT)N9q#r@K=f=Gb_v+Q%x~Hh)Hjf-Bm42cIMi{q^X&4Orzp) z5?0;gU&5H0?942~*xiuCa6?<6R`ZHU46WG!UQk0?89Ror%YP-H6^4bYTLReo+s|}7 rny~EEw>3olx3a>T1poj5004z-?;*zD9>i+T00000NkvXXu0mjfD=C}V diff --git a/tests/zemu/snapshots/nanos_approve_dai_tokens/00003.png b/tests/zemu/snapshots/nanos_approve_dai_tokens/00003.png deleted file mode 100644 index 95968f9f5e037d36d57a0e781990ffcc5c2e0f25..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 469 zcmV;`0V@89P)^Ik@l)%};#8h<%_--*9F2F<-J4k}u_Kn*?w zUqh`E5$)U0zFXFS$(RZ9x+vitENe`hFt?PT!1+`)q*R`=#>8^^Y{s7e`rTIJl2Yy2 zd$;gK2A=?az>g6zM`q&A0{Ba~I5orL>Jtvr|JgeZx+fK$4a49ovrkW20L|uGv;RPZ zRA=^YCf8slS%qfuH_40enBUBlt5|gbZ&?#>cwDh1re7ktDaD<6#jHGnVxXe$Uh8TK z_VrV^xY*5|mPd9;oeQ9}(h$Xo zOb?)eT7votPHTD0HxhTJjOfNiU&!55oH8N?Dke#iBuSDaL`3ufdR}6|hRl~r00000 LNkvXXu0mjfCZpB0 diff --git a/tests/zemu/snapshots/nanos_approve_dai_tokens/00004.png b/tests/zemu/snapshots/nanos_approve_dai_tokens/00004.png deleted file mode 100644 index f5c1c9b8ba544737fcd122b696d0b46372058311..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 511 zcmV3tA7Rub_clM8yZ!>_{{{2VPy8>HB`EY z$i5xxaalV|rsyC>MKVc!7m;P{V<*i|Qc%bFsN9k=Pl~Y^pIT#PN>Jl>fP9wKxM{03 z3zqO?-WQQ&tav-&)S_ILdR3#6&~^ytlw#qo{lj_4&G(z;Np<%|LEt03FEa%I$$YB! zC&Y1ec>l*l4DKYd(4Blc*<3?&H#5l>Sa1bKy>LD(=W$rA z2!J)QC|c#j;v|`oeJMKEt`%VFh4nP19L=BmeQpT#H24mfdLa@`0cbug`H|;??))do zd4q$CsVgUqQNH_cQ5s28i_#{meg{Di1VIo?!W-SxhFtVu$ix5u002ovPDHLkV1ivc B=mh`( diff --git a/tests/zemu/snapshots/nanos_approve_dai_tokens/00005.png b/tests/zemu/snapshots/nanos_approve_dai_tokens/00005.png deleted file mode 100644 index 839e83a869bbd717b0171e8e377cb5616a3ec019..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 391 zcmV;20eJq2P)i?rq#Zw?@2iL}}$;B6fsNT%-I;pLLzC7NSby~#f6gE->Hi0S?$=9hO$OAfM#l&m$4U|cn{AuAU_ z*H3`Dsi)iNK_*Cm^&!B@v7t+45Tg@dAxG%GwT@fG=mhj(8o4FL)zBnr0rH=mXK19x l87jxFd~X8)0000yfDekV{F47&J%RuL002ovPDHLkV1lTUw6*{M diff --git a/tests/zemu/snapshots/nanos_approve_dai_tokens/00006.png b/tests/zemu/snapshots/nanos_approve_dai_tokens/00006.png deleted file mode 100644 index aca9efb867519bf79e2d58daf1330f47d32e9f3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 385 zcmV-{0e=38P)zvv30Zm)eSZU*QGQgBu)J;sNi%{(q-Ja2pIuUc_TKPZ55mv&jmu94A#I zk}Ia@lew6Nu|NU{S#vt({75aL4Q&h`t%+-}O1XsfqPs&03#~I0uznl zcxE!B>C3H~z)s)#mX?E^WH6$$BhIA6Q$n`tglQIPrUZ2Agqba+N{!*H`nsK=$9~c& z0n9k!T~&pOlnje@?X#eEVy!DI$=chgoIa=qa2U58)iSpR(8M1GoEGs<^v9XTP&YU< f1poj50N9%!Q+V4|qT6-$00000NkvXXu0mjfVrZni diff --git a/tests/zemu/snapshots/nanos_approve_dai_tokens/00007.png b/tests/zemu/snapshots/nanos_approve_dai_tokens/00007.png deleted file mode 100644 index 1c9156c31edf73cb072eaebf2db3fbe1ba5c612b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 414 zcmV;P0b%}$P)j~f|{k#}B z4)Di%0(GQh%XXzDG$sKK-Q2JkKR-`QsiPFD-4d_!i{fwH;J|_aEL%ZYNu#B0FJ7G| z;=_VQWOA9;dQ4Y9)LpKCV=ri`X({49JagUwO3&5UdSK)wEJxPN%9wG}45n;lzK(aC zKtbL$y*-#9uSql`7 zENOEh^0jsFWbV&<+yj5)WEX_aERLO-`${sQhD#B5ZCio#Fr4qHlr^7X|9DL69eFa= z#kf#}$Pcl(QEE=tNl8Pt$o;~Fk*8r@j8mpwSGW8d!1&11FbzPh@^gWj=oh7f%f7G)4s^6#xJL07*qo IM6N<$g02I(Gynhq diff --git a/tests/zemu/snapshots/nanos_approve_dai_tokens/00008.png b/tests/zemu/snapshots/nanos_approve_dai_tokens/00008.png deleted file mode 100644 index 9c7e7049cb3e9bcfb1601ec510ee465d38229d4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 340 zcmV-a0jvIrP)b=%MgRq*37h4eRxPbkJCLY|1VIo49_}P}TKpH4$L<8?X{t;p zy+UQc_4@p%0?~E_&igM#?#L~IOHR(-<@sYotiy&C*Y&GII0yeh-p3zW9cv$Q0k>6Y_)5~SfP=m zSMUtz)%Ex|-o}7!H9hbQ(8{%C?kQVa?C`*Uj-J(h>P7(Y#?ZWvi?6}@n{fGLp>YTp myqR(V_$?>^<%seR_VWh!O41}p;-~WL<=z+0=1Om1tEU@3H#qtw22}5*_5JCvCo4!52c$FXo$VhXU?0M$^Bekqgf%Ka;M*^X|4 zEs9YCQ(xfJKmNC#+8dY%2&wT+>D^<3C%}_*k1^mvtO~`RE00000NkvXXu0mjf-kqOA diff --git a/tests/zemu/snapshots/nanox_approve_dai_tokens/00000.png b/tests/zemu/snapshots/nanox_approve_dai_tokens/00000.png deleted file mode 100644 index 487ea10fcfeb2f3e6b79239459672251d49addd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 414 zcmV;P0b%}$P)vpO}&+|8}fC)JNq`>?#dJ%s{^>GN_4usXQirk{^@^BA?p!El9&T9q~zMsh2=YdLB`_ONiP zKy6XlUGFZ>Cn7mP3u*kV@V1_5VDzMB!V3Q>K7)@2@^9cVO9^%~_GtQcrov={}E1SDJMG z4da{*X-?M~V^;C3J=9qqJRJZ diff --git a/tests/zemu/snapshots/nanox_approve_dai_tokens/00002.png b/tests/zemu/snapshots/nanox_approve_dai_tokens/00002.png deleted file mode 100644 index 1bf7f2e0b70cc533b0d9d23ac6b6f02e1dca3070..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 416 zcmV;R0bl-!P)b;o#$a0U?Bt zLq9DC>*V|EeF2+9B*vJ+lsD3L9#DNp?^PV9IFugd#eW7AzeN2q#ZGS&!}6!Qr_j6S z?HHqP^ur1XNKVDVMtqTaa=|Jk=(!QR$$19o(rk%Mukt}fSuX*S*KAO=d$v*?i4TtK{QKF>ho;{fp(4M?61!qmy#>hH#Y~ERaN+~~y zWBWD1JSRuT>1aj2{}3jG5JCv~PJ(M__^#;R=h~&dzw$dBM`mUK+Idm8OyBd!?SdKJ zae^tG64%b~Q9yCR3GcekS+iMjcTNlH7ah1QwzJW>-WFHP);jJHBk8^ky;2yM129Uu=62QoJS z=QFf@Fxzpe%U;q07$HkgALv@a8BI@kBI)6r7T>u!7IHT=9~m(NI|l0@_tV6eFibMD z{}@K9nf-_19Av^Olu3|e&cUtd^g?Rr$>{#%-!Dhvfg_zdqd1p5@ob_0@XY`bV*Qp; zBrB{5qP132u`&B1q9!7pjt0^OQzJT|YHxTUnHJ-aJ<%+|cV^Ra*9yXOfsBYh6bLi{ z;`O*S_69}O2j@FRiCzv7Xr3$%U?(1myJ8bdW41CIiX&eiIoXhJ}q&} z{-Emxa8P|T{WKeqyQ(yH@w5L#zPER3;DiuD2qEcY{)^IyxUP*v%~0&rX8ubCuZg7q zGH2KxdM@fE)^YnhulPUVi)>cjpXK8xU|CFk3HcLncM%w=mFdOjBzXevNQd)v@YZqH z$ln1E@Sb#QlCPo8S1qtzI}vrp{CfV;=QbgP5JCtcSNR8+miB0000!<-LHJ{!rW#&jg4_jIr3f;rDhvVwyi9`p2c7XFR!P&gs54-%lf+!Wo@9F3m`Z zNQ!3q!+f6RV1CmD|ILLbmZ18X2Q8uJ3Cc@N(tJ^mLsralT-+S=eF*~q0DPti-OzD& zB_Aw4i|XHegU`|W)aA&yr=-6|Gqb1OXVLh#{GbP?In_HDv>D7JnuVD?u^DIMzY|U7 zds5u{Mk}-@UW?rvK+1ps}tT znUzm~xf&h^cb1;|^7)R-yO{Z@dSv2Kd+pNuiMa@`V_p6n-5?YFZ5p8_`kRphPgEgK w7eOWmOA%fG000000000000000003Z_AHq^o!Wx_zH2?qr07*qoM6N<$g0m^p3jhEB diff --git a/tests/zemu/snapshots/nanox_approve_dai_tokens/00005.png b/tests/zemu/snapshots/nanox_approve_dai_tokens/00005.png deleted file mode 100644 index 570ce28d53e82ac396ba25c370110058f3a638f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmV;}0Vn>6P)Nkl`l1;k+@4An6g^M6kcbtxu@7*hfO000000DuchDWw$aQJnB& zJ%BsK3VrpQ1hnYqoNY&PO0WdV>i`7cs)e_@w@x()p@w=B24`klR6(CLpxqtlZO|2 zIWjpO-F~*EHtLqUMt)Wc_@bMv^h#{CUFW0M(vJ1P=5N1GhWcHM(-Xu*&bc@D4_o$^ z7Y|pL)I@*DzttR=&yLH#^{|TW)8Sp0qphw%epiuSUG#WHS~ht|j~;`U4>BXmdi9@& zuz>%00000G5i7^TsbXePb2LB O0000MjqtrV%Nn6esuj!jIMi}Btw`sohxwi1&U@}K{{10Q-!s%eVxF#kF6*2U FngGM>p?d%T diff --git a/tests/zemu/snapshots/nanox_approve_dai_tokens/00007.png b/tests/zemu/snapshots/nanox_approve_dai_tokens/00007.png deleted file mode 120000 index 7159a12..0000000 --- a/tests/zemu/snapshots/nanox_approve_dai_tokens/00007.png +++ /dev/null @@ -1 +0,0 @@ -00005.png \ No newline at end of file diff --git a/tests/zemu/snapshots/nanox_approve_dai_tokens/00008.png b/tests/zemu/snapshots/nanox_approve_dai_tokens/00008.png deleted file mode 100644 index a58590b988714545e7960f7f400f360ffc5de41f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 382 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9hba4!+nDh2#bl+hG9*4k? zQuR0Wo;SViCn%lTo!KM1sAjk5Y(@*V#~rbuHu`7A_H&AxgwHf8y4cdKvg$JbB4n%ez%sZ31aBYd&Oo@(7)_WJ(Znl2o8^PD` zFE`_Y-IS+Kdq0Q2-7r_C=}F(5ev`U`H~)QH|9$1FHE$YjoVax+e0xei%S`SAGlOm! zp7{T3NA-mVOYb&rdU8MdyIHo@@7cE*uj@I+Zu{2i)KMSV-E~o { - - const tx = eth.signTransaction( - "44'/60'/1'/0/0", - 'F869468506A8B15E0082EBEB946B175474E89094C44DA98B954EEDEAC495271D0F80B844095EA7B30000000000000000000000007D2768DE32B0B80B7A3454C06BDAC94A69DDC7A9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF018080', - ); - - let clicks; - if (model.letter === 'S') clicks = 8; - else clicks = 6; - await waitForAppScreen(sim); - await sim.navigateAndCompareSnapshots('.', model.name + '_approve_dai_tokens', [clicks, -1, 0]); - - await expect(tx).resolves.toEqual({ - "r": "92243511396b65a4faa735a5472ea99b3ce0f7f2338eab426206730bc0ddc57f", - "s": "161bc0f861064d840de4f4304cfd19a571017e62df7d8f70cf605c0f025593b6", - "v": "25", - }); - })); -}); From 6decd30986a4f0d4b02196f08d495082988f5ddf Mon Sep 17 00:00:00 2001 From: Charles-Edouard de la Vergne Date: Wed, 3 Apr 2024 15:36:28 +0200 Subject: [PATCH 18/35] Remove useless 'zemu' tests compound deposit - blind signing (already exists in 'ragger') --- .../00000.png | Bin 374 -> 0 bytes .../00001.png | Bin 399 -> 0 bytes .../00002.png | Bin 305 -> 0 bytes .../00003.png | Bin 502 -> 0 bytes .../00004.png | Bin 485 -> 0 bytes .../00005.png | Bin 387 -> 0 bytes .../00006.png | Bin 410 -> 0 bytes .../00007.png | Bin 414 -> 0 bytes .../00008.png | Bin 340 -> 0 bytes .../00009.png | 1 - .../00010.png | Bin 349 -> 0 bytes .../nanos_enable_blind_signing/00000.png | Bin 349 -> 0 bytes .../nanos_enable_blind_signing/00001.png | Bin 274 -> 0 bytes .../nanos_enable_blind_signing/00002.png | Bin 357 -> 0 bytes .../nanos_enable_blind_signing/00003.png | Bin 366 -> 0 bytes .../nanos_enable_blind_signing/00004.png | Bin 361 -> 0 bytes .../nanos_enable_blind_signing/00005.png | Bin 374 -> 0 bytes .../nanos_enable_blind_signing/00006.png | Bin 356 -> 0 bytes .../nanos_enable_blind_signing/00007.png | Bin 281 -> 0 bytes .../nanos_enable_blind_signing/00008.png | Bin 349 -> 0 bytes .../00000.png | Bin 414 -> 0 bytes .../00001.png | Bin 446 -> 0 bytes .../00002.png | Bin 364 -> 0 bytes .../00003.png | Bin 766 -> 0 bytes .../00004.png | Bin 477 -> 0 bytes .../00005.png | Bin 472 -> 0 bytes .../00006.png | Bin 365 -> 0 bytes .../00007.png | 1 - .../00008.png | Bin 382 -> 0 bytes .../nanox_enable_blind_signing/00000.png | Bin 382 -> 0 bytes .../nanox_enable_blind_signing/00001.png | Bin 295 -> 0 bytes .../nanox_enable_blind_signing/00002.png | Bin 381 -> 0 bytes .../nanox_enable_blind_signing/00003.png | Bin 641 -> 0 bytes .../nanox_enable_blind_signing/00004.png | Bin 633 -> 0 bytes .../nanox_enable_blind_signing/00005.png | Bin 667 -> 0 bytes .../nanox_enable_blind_signing/00006.png | Bin 615 -> 0 bytes .../nanox_enable_blind_signing/00007.png | Bin 705 -> 0 bytes .../nanox_enable_blind_signing/00008.png | Bin 758 -> 0 bytes .../nanox_enable_blind_signing/00009.png | Bin 305 -> 0 bytes tests/zemu/src/blind_compound_deposit.test.js | 30 ------------------ 40 files changed, 32 deletions(-) delete mode 100644 tests/zemu/snapshots/nanos_deposit_eth_compound_blind/00000.png delete mode 100644 tests/zemu/snapshots/nanos_deposit_eth_compound_blind/00001.png delete mode 100644 tests/zemu/snapshots/nanos_deposit_eth_compound_blind/00002.png delete mode 100644 tests/zemu/snapshots/nanos_deposit_eth_compound_blind/00003.png delete mode 100644 tests/zemu/snapshots/nanos_deposit_eth_compound_blind/00004.png delete mode 100644 tests/zemu/snapshots/nanos_deposit_eth_compound_blind/00005.png delete mode 100644 tests/zemu/snapshots/nanos_deposit_eth_compound_blind/00006.png delete mode 100644 tests/zemu/snapshots/nanos_deposit_eth_compound_blind/00007.png delete mode 100644 tests/zemu/snapshots/nanos_deposit_eth_compound_blind/00008.png delete mode 120000 tests/zemu/snapshots/nanos_deposit_eth_compound_blind/00009.png delete mode 100644 tests/zemu/snapshots/nanos_deposit_eth_compound_blind/00010.png delete mode 100644 tests/zemu/snapshots/nanos_enable_blind_signing/00000.png delete mode 100644 tests/zemu/snapshots/nanos_enable_blind_signing/00001.png delete mode 100644 tests/zemu/snapshots/nanos_enable_blind_signing/00002.png delete mode 100644 tests/zemu/snapshots/nanos_enable_blind_signing/00003.png delete mode 100644 tests/zemu/snapshots/nanos_enable_blind_signing/00004.png delete mode 100644 tests/zemu/snapshots/nanos_enable_blind_signing/00005.png delete mode 100644 tests/zemu/snapshots/nanos_enable_blind_signing/00006.png delete mode 100644 tests/zemu/snapshots/nanos_enable_blind_signing/00007.png delete mode 100644 tests/zemu/snapshots/nanos_enable_blind_signing/00008.png delete mode 100644 tests/zemu/snapshots/nanox_deposit_eth_compound_blind/00000.png delete mode 100644 tests/zemu/snapshots/nanox_deposit_eth_compound_blind/00001.png delete mode 100644 tests/zemu/snapshots/nanox_deposit_eth_compound_blind/00002.png delete mode 100644 tests/zemu/snapshots/nanox_deposit_eth_compound_blind/00003.png delete mode 100644 tests/zemu/snapshots/nanox_deposit_eth_compound_blind/00004.png delete mode 100644 tests/zemu/snapshots/nanox_deposit_eth_compound_blind/00005.png delete mode 100644 tests/zemu/snapshots/nanox_deposit_eth_compound_blind/00006.png delete mode 120000 tests/zemu/snapshots/nanox_deposit_eth_compound_blind/00007.png delete mode 100644 tests/zemu/snapshots/nanox_deposit_eth_compound_blind/00008.png delete mode 100644 tests/zemu/snapshots/nanox_enable_blind_signing/00000.png delete mode 100644 tests/zemu/snapshots/nanox_enable_blind_signing/00001.png delete mode 100644 tests/zemu/snapshots/nanox_enable_blind_signing/00002.png delete mode 100644 tests/zemu/snapshots/nanox_enable_blind_signing/00003.png delete mode 100644 tests/zemu/snapshots/nanox_enable_blind_signing/00004.png delete mode 100644 tests/zemu/snapshots/nanox_enable_blind_signing/00005.png delete mode 100644 tests/zemu/snapshots/nanox_enable_blind_signing/00006.png delete mode 100644 tests/zemu/snapshots/nanox_enable_blind_signing/00007.png delete mode 100644 tests/zemu/snapshots/nanox_enable_blind_signing/00008.png delete mode 100644 tests/zemu/snapshots/nanox_enable_blind_signing/00009.png delete mode 100644 tests/zemu/src/blind_compound_deposit.test.js diff --git a/tests/zemu/snapshots/nanos_deposit_eth_compound_blind/00000.png b/tests/zemu/snapshots/nanos_deposit_eth_compound_blind/00000.png deleted file mode 100644 index 8d84cc70fea8013b7e8b25c0982ce142fa103d5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 374 zcmV-+0g3*JP)K?4J2QqX3 zXn7ePqhBDwvA-|J28LIrjF%tX0z{3v6!_gF&(SYH)S*7TN;1RxW-%}TLH9_+sttDO z-T32w&rL(!1@Vr`jm5G(8dd=Ruu#)JAN?l#rFLU`oQ(r?$33AC7s0}pw!fi~(9k^# zU9aci?pXN=I7A<-f!Mw2untnw9MivqZYw}c5&)gweYhbTnv#2#t$0X2wST7_1F;LR zw?>Da2SkSfG>qWq1mej-6nW@2l+Z=0om5jdB%3o3Qx19_LNUlTqF4R_1Iaj%@^2O= z@;n%h1N>H$2;%-~Dvx1!0LtkT-;cq73rgisOElFtPbcL{d3TfNQvm<~003s>1*i4o Uje8$F8UO$Q07*qoM6N<$g5rpv%m4rY diff --git a/tests/zemu/snapshots/nanos_deposit_eth_compound_blind/00001.png b/tests/zemu/snapshots/nanos_deposit_eth_compound_blind/00001.png deleted file mode 100644 index b2ab3717e9beddfb2d7d8b0679273d274ceef8dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 399 zcmV;A0dW3_P)XjvQ0vMitY2U>)a1)w(zd8xhwLy@Vz8-~JL+UM zYTD?@?%b(2JUL>dBMIXSIaEtkIJ6ZPsfElnE zq2Ki$AW4>j@Sp*~fTf_#8Zf6eO3h!Dgb+dqAq0R2Z&`&@#syO$00000NkvXXu0mjf DL8yKp diff --git a/tests/zemu/snapshots/nanos_deposit_eth_compound_blind/00003.png b/tests/zemu/snapshots/nanos_deposit_eth_compound_blind/00003.png deleted file mode 100644 index da34391479a61ddd7c3c77ea1b433f8f2ab724dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 502 zcmV|0xxGJbINePe`|mePd= z-+{V4rPtFqsDPx2P!x_KLe@4cLrnpw=a-dWB_;(bLT#DJXD1D2LR{Q+*7?rq^cv34nK4%`*y$*<(X^ zkjW>29`Mq_+Q>BA=K%jpxGrj{N2i}~n0_aA8tC3sxHSxcx3oT7$pMp~f~#j@Jb} z67(XESUANhfFVsZ*X>Xe0D3;est=VA(?g~ykUjb!QAM%ti1DZtw}pr=VfsC( z>m=m?Di)2W^4Wx`cs=T~mfeCUQxV!7P=m|AOkcq=wjMBEr(;h%k`IDQKs49yQLk|arzB>A`e0jW1wr{7ma-T(jq07*qoM6N<$f^D(pMgRZ+ diff --git a/tests/zemu/snapshots/nanos_deposit_eth_compound_blind/00004.png b/tests/zemu/snapshots/nanos_deposit_eth_compound_blind/00004.png deleted file mode 100644 index be3c17ecbe4f701db15d19d3f147a8244f2695d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 485 zcmVB1&?Kp-LkNRlK;l33Q|*p##WjP`Ze{>%k> zcB~n}lxus;D5@RTzYGa<1pyJ;E{2!~hZHqJO z9N~v~AHWnVUT?UJ2$z*vF(@STeS~XDec`74;k=~s{ib_U!@bcE_)72NNdfR=zSa8= z#BgBo1_pL0LD=00000NkvXXu0mjf)qCRg diff --git a/tests/zemu/snapshots/nanos_deposit_eth_compound_blind/00005.png b/tests/zemu/snapshots/nanos_deposit_eth_compound_blind/00005.png deleted file mode 100644 index 08c6b00acff97eab46b6eb54b32c55f6642dc767..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 387 zcmV-}0et?6P)Nkli^CzHcV7NQbq&-007vs%ymtf=dX;u%Q#4RtbTw~i^WaY zz`pck3i3kz31mfv`qN;fhWe913|4|wXeIw5lWJ&fR#MDA*<^=(N-@h-)=gvQa`$o; zN4`+m57vg-ZU3Y%H)#^P{4=(+RdwRVu~C@QRejKOrioi+!bMgWb{goB2`lr-(Hl%o z{oLx2G^UGWa#!e)rv#w* ziDi|Edw>i*6$m=gzvPpd>wRN8llZY%Nd*7^006iRKWQT6SD%t+-2eap07*qoM6N<$ Ef+DlHBLDyZ diff --git a/tests/zemu/snapshots/nanos_deposit_eth_compound_blind/00007.png b/tests/zemu/snapshots/nanos_deposit_eth_compound_blind/00007.png deleted file mode 100644 index 1c9156c31edf73cb072eaebf2db3fbe1ba5c612b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 414 zcmV;P0b%}$P)j~f|{k#}B z4)Di%0(GQh%XXzDG$sKK-Q2JkKR-`QsiPFD-4d_!i{fwH;J|_aEL%ZYNu#B0FJ7G| z;=_VQWOA9;dQ4Y9)LpKCV=ri`X({49JagUwO3&5UdSK)wEJxPN%9wG}45n;lzK(aC zKtbL$y*-#9uSql`7 zENOEh^0jsFWbV&<+yj5)WEX_aERLO-`${sQhD#B5ZCio#Fr4qHlr^7X|9DL69eFa= z#kf#}$Pcl(QEE=tNl8Pt$o;~Fk*8r@j8mpwSGW8d!1&11FbzPh@^gWj=oh7f%f7G)4s^6#xJL07*qo IM6N<$g02I(Gynhq diff --git a/tests/zemu/snapshots/nanos_deposit_eth_compound_blind/00008.png b/tests/zemu/snapshots/nanos_deposit_eth_compound_blind/00008.png deleted file mode 100644 index 9c7e7049cb3e9bcfb1601ec510ee465d38229d4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 340 zcmV-a0jvIrP)b=%MgRq*37h4eRxPbkJCLY|1VIo49_}P}TKpH4$L<8?X{t;p zy+UQc_4@p%0?~E_&igM#?#L~IOHR(-<@sYotiy&C*Y&GII0yeh-p3zW9cv$Q0k>6Y_)5~SfP=m zSMUtz)%Ex|-o}7!H9hbQ(8{%C?kQVa?C`*Uj-J(h>P7(Y#?ZWvi?6}@n{fGLp>YTp myqR(V_$?>^<%seR_VWh!O41}p;-~WL<=z+0=1Om1tEU@3H#qtw22}5*_5JCvCo4!52c$FXo$VhXU?0M$^Bekqgf%Ka;M*^X|4 zEs9YCQ(xfJKmNC#+8dY%2&wT+>D^<3C%}_*k1^mvtO~`RE00000NkvXXu0mjf-kqOA diff --git a/tests/zemu/snapshots/nanos_enable_blind_signing/00000.png b/tests/zemu/snapshots/nanos_enable_blind_signing/00000.png deleted file mode 100644 index ce795f34e8569e986af689fded3b59c9a8af2961..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 349 zcmV-j0iyniP)O41}p;-~WL<=z+0=1Om1tEU@3H#qtw22}5*_5JCvCo4!52c$FXo$VhXU?0M$^Bekqgf%Ka;M*^X|4 zEs9YCQ(xfJKmNC#+8dY%2&wT+>D^<3C%}_*k1^mvtO~`RE00000NkvXXu0mjf-kqOA diff --git a/tests/zemu/snapshots/nanos_enable_blind_signing/00001.png b/tests/zemu/snapshots/nanos_enable_blind_signing/00001.png deleted file mode 100644 index e2279803e79ec6d6443deff45a1f9326b562e303..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 274 zcmV+t0qy>YP)D zPq`+h_bpEEKgJ+x(tj8nSi&r1$%l|}@K=b}8w!8IP1np9%K2s%)5~a1UA{VmQ8=+t z-ij#s)zb zYUyh@!@w4RqJAy6Yb4==Uce=c(1f~kvM!tcvwukfX9XlMdTGv?{=!-TMr%&#m1Y;T zF41Qi^)~cCUZPaep2OIAx(lXz5?&msQ~kkY43K0OLUJH-#^6y>-e?3k4ZVM|uO2Ag z1Hy4~BmWoYZZ7BwaFf^6#J<+$26dvZn&t~Z>%q9iRZonwAd}r9GR+%76*Zbm*PCmv z|5zKLy$c0xmr(P`|^*xxJp zcRsK?tMekhljq;Ju&n1zB0fnSDr58htW<1e#p_d35wFnv6Sz>g4HW8$;z>obW$M9^ z_Zg~wvaILT{bT&+rP(Q{g(CChM8`DdjV>a0cy>S}23BFFE>=^?`zj82oG9v9t5}4E zO>(-3{2f;-v%ZK#S!odl2@=!GtT!3R)saG9q#};AHW~jLXwSg diff --git a/tests/zemu/snapshots/nanos_enable_blind_signing/00004.png b/tests/zemu/snapshots/nanos_enable_blind_signing/00004.png deleted file mode 100644 index cabccc8c58fb713305cb81db58e08c26d8209d14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 361 zcmV-v0ha!WP)sUIA$Cm zguQYpjyDWS5z3f}0AcAda~{x%apA@H_P7)R000000N42eVf)O!2GIiW00000NkvXX Hu0mjfMX{B- diff --git a/tests/zemu/snapshots/nanos_enable_blind_signing/00005.png b/tests/zemu/snapshots/nanos_enable_blind_signing/00005.png deleted file mode 100644 index de843af9d416ce7f5bf1e50ee7ef11e462f123ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 374 zcmV-+0g3*JP)Bu5MViJfU5JCv~SEl|8$c6%r*n4y!O|oihjax6kh60Y@+*#kNfMS%B(GLXSu;s54O(a1T z3?gl)_om3g4AkiNwRYH;q>E>WcvL_D^YronlGpP6IifIIUk@+<)Im>%@2#%0wyd-wDGOAW1$3 z?6}=39uyEgk4zthmSr`ZuzU2LfSOuz%{ewK0DlYAgisKK^K9#&x+H`ULI`oh8`far UY)XF^JK9#HPjyrd@vJ4p_!;Vhus?{eHvy`Ohw%7D~HA#565BY${q8bY-5x5T! z;$^oB7dm!8>QXTHH4}w0hcHiMzSNfh000003vmLRk=(JeQa|?q0000!K+QeHhma8fajIMn6j5mW;$e;{O41}p;-~WL<=z+0=1Om1tEU@3H#qtw22}5*_5JCvCo4!52c$FXo$VhXU?0M$^Bekqgf%Ka;M*^X|4 zEs9YCQ(xfJKmNC#+8dY%2&wT+>D^<3C%}_*k1^mvtO~`RE00000NkvXXu0mjf-kqOA diff --git a/tests/zemu/snapshots/nanox_deposit_eth_compound_blind/00000.png b/tests/zemu/snapshots/nanox_deposit_eth_compound_blind/00000.png deleted file mode 100644 index 487ea10fcfeb2f3e6b79239459672251d49addd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 414 zcmV;P0b%}$P)vpO}&+|8}fC)JNq`>?#dJ%s{^>GN_4usXQirk{^@^BA?p!El9&T9q~zMsh2=YdLB`_ONiP zKy6XlUGFZ>Cn7mP3u*0^Z3He0@FcI%0qnN@q=yi0i=+$R zEg*#8F5?+z1^C#}yBi69Mh9?;yL1Bp09m|OT&hg(EBjk#UX#U|0!u%Z$1Rr>Uk_1>VFrcSp(bM z?;?0FNp%dERBP}gWi!oJLj@b`F`740My0+SeWpbo?!Ev30B|*x?}F^h;xZrH`z|lL z_MlF4$?P7YpQV)R{#I%tcHv}ox1e@HcB$*`qJ_{*xbd6A<>2EIdhLYrQUgg8z~*#p zB=?gjz|>HKjsvXJSUr9WXxxnJm@kpkC*uo{Z9>$tlMSb5biCB_b=>3C+%8rb1HP8Z oOnAfU2SURy1poj50055o1#9i1BLDyZ07*qoM6N<$g020>QUCw| diff --git a/tests/zemu/snapshots/nanox_deposit_eth_compound_blind/00002.png b/tests/zemu/snapshots/nanox_deposit_eth_compound_blind/00002.png deleted file mode 100644 index 043c123d84964876b1de686c18cbc0bb9880471c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 364 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|=-%ba4!+nDh2#pwJ-&9@oH< zJDk7cgT6gtS59kKv`tz6R`tFB?^GvFiC~Z>ztd;V_}FqauC8LxTpHrMKZozpneV=~ z4Zdm9iuDp#^Et@c>bO3U$R~2d6sccY^n+Rx8ihx_*?TH&+nJl z*#IqH+g-)r|Ifu@jUmrzp~KG4mz)q@_)qxCwTU%BI#S0XV~Y}*Ifha(@xXlf{^Ijot>@V0APyRx}vz16SBnR86OCaDy% z{W@;e?DJ*1WXr4<`p0B6Cbmww(LR+!A80c&_+VPjVQ|=DLV^E}TJzm?d3 z9RF5#KuRe8Oia7@UEP5YcRbwHa2&^V{WuO~gI`(2;uW9*s#b#vjeAi!DK>7P)wA}> z`)siSRItFgKjxv1cr>DKvVISc2R7BCLRvvzyZ5Xdfb!;bD!6jGHAd!XVzX!d5s{yT zZRa_`-6x~%G@8--Z^DESLI@$>N&6Ujzg$E-C>vEA4V)e8dZI2k694v=YBy;#Kj|VJ zZulK87ZDHE#>zXcec~|JGZGC7=_hgvj99l8RAyE(#qudLw+M1)chN@&K)N*X6()#r zN<4_PghG@DtXpMo{oA&p*5~SO?kgaf%F;amN_+^41md3P|g7_JB?3%7hVkTAP9%0M!_haOxfJ(s=7X-OOl@ zXk#*c|KHu6E7rpJFQ5W;gOoDE+C!N&r^I z$o-5AfR!uMMO?@no{6eaSD^x@VKb*A)1}$Z$Y5NIyASwbU{<5gX{C4Q8-PtZJ;oHR zbUN7pAc++bJKYDH&vvPs;2r>ab6;VgiGhz-gb+dqAz#AEpC~Cn4N~HxaQ;;NIM0O+ zvoy%2@mAkFw)mOqYiv08xA>uUVYqe$>*w8~FS`vumj;=C^ZFFNB?T2JRB58i*=q$n w$DUHCeDpE2>*Kg;XrBQfgb+dqA!Gsn0ZHH;=cH|FjsO4v07*qoM6N<$f&g7)%m4rY diff --git a/tests/zemu/snapshots/nanox_deposit_eth_compound_blind/00004.png b/tests/zemu/snapshots/nanox_deposit_eth_compound_blind/00004.png deleted file mode 100644 index c0f77c919e4c1523233f114befa1fe35cd9accb1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 477 zcmV<30V4j1P)JYiH2LdF=}=AN&NADBo)wv`Y7004mHzSdtdrF49VF}Ai0 zk9l#N^|LLOZ3!rfNxgDIBT{Ft zl0UafzNmst#{c6pX&VBEu*>_<(b1et#=~(LEdPT$iGF|yqsdbOy#{5@u+;h!X+`-t^eWda6ffBi4@Ae!=WWyuz%+*NOxJ2!PQ#W-Ul zcfz}@G=H*Ykcs{>N~nqcV&q^as?biIAd`bz5nccQ0000000000000000N^%1hxcN{ TKMS8d00000NkvXXu0mjfTNl|6 diff --git a/tests/zemu/snapshots/nanox_deposit_eth_compound_blind/00005.png b/tests/zemu/snapshots/nanox_deposit_eth_compound_blind/00005.png deleted file mode 100644 index 570ce28d53e82ac396ba25c370110058f3a638f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmV;}0Vn>6P)Nkl`l1;k+@4An6g^M6kcbtxu@7*hfO000000DuchDWw$aQJnB& zJ%BsK3VrpQ1hnYqoNY&PO0WdV>i`7cs)e_@w@x()p@w=B24`klR6(CLpxqtlZO|2 zIWjpO-F~*EHtLqUMt)Wc_@bMv^h#{CUFW0M(vJ1P=5N1GhWcHM(-Xu*&bc@D4_o$^ z7Y|pL)I@*DzttR=&yLH#^{|TW)8Sp0qphw%epiuSUG#WHS~ht|j~;`U4>BXmdi9@& zuz>%00000G5i7^TsbXePb2LB O0000MjqtrV%Nn6esuj!jIMi}Btw`sohxwi1&U@}K{{10Q-!s%eVxF#kF6*2U FngGM>p?d%T diff --git a/tests/zemu/snapshots/nanox_deposit_eth_compound_blind/00007.png b/tests/zemu/snapshots/nanox_deposit_eth_compound_blind/00007.png deleted file mode 120000 index 7159a12..0000000 --- a/tests/zemu/snapshots/nanox_deposit_eth_compound_blind/00007.png +++ /dev/null @@ -1 +0,0 @@ -00005.png \ No newline at end of file diff --git a/tests/zemu/snapshots/nanox_deposit_eth_compound_blind/00008.png b/tests/zemu/snapshots/nanox_deposit_eth_compound_blind/00008.png deleted file mode 100644 index a58590b988714545e7960f7f400f360ffc5de41f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 382 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9hba4!+nDh2#bl+hG9*4k? zQuR0Wo;SViCn%lTo!KM1sAjk5Y(@*V#~rbuHu`7A_H&AxgwHf8y4cdKvg$JbB4n%ez%sZ31aBYd&Oo@(7)_WJ(Znl2o8^PD` zFE`_Y-IS+Kdq0Q2-7r_C=}F(5ev`U`H~)QH|9$1FHE$YjoVax+e0xei%S`SAGlOm! zp7{T3NA-mVOYb&rdU8MdyIHo@@7cE*uj@I+Zu{2i)KMSV-E~osAjk5Y(@*V#~rbuHu`7A_H&AxgwHf8y4cdKvg$JbB4n%ez%sZ31aBYd&Oo@(7)_WJ(Znl2o8^PD` zFE`_Y-IS+Kdq0Q2-7r_C=}F(5ev`U`H~)QH|9$1FHE$YjoVax+e0xei%S`SAGlOm! zp7{T3NA-mVOYb&rdU8MdyIHo@@7cE*uj@I+Zu{2i)KMSV-E~o$Tg}e1&P( zg<|UtodolD7x+GLS#VfwY~I79_sp!SLEQG|Hc1JStDnm{r-UW|D(8I) diff --git a/tests/zemu/snapshots/nanox_enable_blind_signing/00002.png b/tests/zemu/snapshots/nanox_enable_blind_signing/00002.png deleted file mode 100644 index 75b78e517c232788bb0dbf2c07d98e27ebc53e8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 381 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9dba4!+nDh2#tk59^9=E^} z?KkzFH@o?JeAJrC-kflMW$WLSyOgu#-xQE0D6lUME`Ly+cFq2JRI9C}aw=2Ji@iOW zC#E;Z)ylt1Oy(*tW#1>lG*|CkfMcednFWx;RDElj8uKiW@ z|D_dM5_jLfXr7fl-GcG&lju9uYSTm|D@`w-Z=!+qSXKZ diff --git a/tests/zemu/snapshots/nanox_enable_blind_signing/00003.png b/tests/zemu/snapshots/nanox_enable_blind_signing/00003.png deleted file mode 100644 index 9e21d4a36419bb44f2c4ab1a61d5cc295e7f9388..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 641 zcmV-{0)G98P)|*Gn~4D>`80e7JqUKi$caw;5l)iBjj2xosp)Oq62SG6tN4 zN+xW}V;*iU1pojJSr-F5oTtrd#QCf*9yl*o7-zyX$Enpg>Bv>2MZ69Dm};VrIyI@& zcwCyAO_m2SQy7D$2tTNeqgs&sJ3l_io8l`I=1ct4COamlqpe=yVwj+V2YQfI*!DSdoY^ zDNjmFYL!SyhbV3CET=ryS(~@^@b+R3eBE)RJXx!H_KM4|YOrf9=;nZP$yY6?i|pi~ zOzGxSZ3#_m?0}o>Jy#l>qC76r#5f4^@HJ;Xw!gdMbdj$^^2&3Kh>*R5@Btj&8~Xb6 z_=*k*001y2{)djs6@-JY&Gc}Qh-KBc`{S2{J{Jynq^wrT8%9g1nmy<(LUlKx@AY8VAp6W{g00000 b0Hpi@cYGg&4gf4x00000NkvXXu0mjfKdm8Z diff --git a/tests/zemu/snapshots/nanox_enable_blind_signing/00004.png b/tests/zemu/snapshots/nanox_enable_blind_signing/00004.png deleted file mode 100644 index fb2843a9d22f9ba531b0ff9249be70917d1bd398..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 633 zcmV-<0*3vGP))c-}G$= zAs)4OYy8PKmhY%7^&{OKynl?%oLkBP9CF|H3vq84I=~KkC)RwR zm|#tF^_m>O!(?x2bFphhalTA*wV?w>;=|(u{_c*Jyv_LZDN3DB;JaFEwSX>Fy8mHFdq(`o-EaGkG+t?E=>eQr8 zqc}A+o1_k6hA;+A5&obxj(S1z?_9i*H^o;a%(wWdO%g8ljTpWhAV<tU`8Rv zlsvI8sdXYHJ4ET`&U{F*&)U4Sho=`h@O{UT_GGQ=*()wTYr(F)poatElCNG+7fIxy zsO;u6-4Ytv*Z~j8bFO$$MR{DL$>Jo;!}px|-2U#0>LQ;*^2l?Jh>*RL@BtjYH}rM% z_{0tg008j7P3RpcJowto8ZU*|XA_+l2P8B*l*|^-qRufp=}gE&kgyNh+iG31`;*7Z z3XuPEN*7LMnZb(#g!KOXf&bKkR>WewtN>x_k;w=7zQ@-BVYiDLwjbyYC=zlTm@5fxVy)`S2600000z;=E%w2@LOzs4B5 z!m`Xj>k}2u<#$_4F~-XZ)qI$fQZnq)pH;&b<;cs2G?$li7Go?QXKJ9`ow(!~{1<6*sa+ONItQLeo&W^T6$tPHzfR~^(Dptzn@T!cY zTB%LeaNTjWS`iwW4~=)KXsBCA|F*OZC}))jl3iiBlij)+?j_^cM6PEhddP0pc1-O^ zBz%PFGi4tj<{MnVmGU0&xB^(7zZmhEeL7|Wy4j~7&P2;KnRDtUJVq(2P zOk_^M#R_2eRr+7S3kjPr&7^+nTmk?90001>Q7JqiE-002ovPDHLkV1lz5 BGOPdq diff --git a/tests/zemu/snapshots/nanox_enable_blind_signing/00006.png b/tests/zemu/snapshots/nanox_enable_blind_signing/00006.png deleted file mode 100644 index 0b4f46ed51d1a1922e58e0f9ec19f5ecb4d459cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 615 zcmV-t0+{`YP)piM`uH+iV4Wr38C%eNCT z09`K=8_9`^WzIR2>kC0skO!eMPbK0ANX%K>cak^lmO%&_0FM2|v|84j!%F}F0002M z0gx9syvZ%aE(07vw9em@BDes_3tO2?I!=O4*c)G379ns`Z3&>!}>I0;!1cgEFi%tITJF8uNXZ*CS517OEh zBwy3q&J-l6l9rp)C(qQ=GI?`$z4N3=7ytkO003CXpS0!n8jOXv&HM-?msw8_b-dK4__*5=8%Cw7#I|5oB3ZL7(tZ+a8_-6O3dr2ctC&#Fv zi-pf+gct$J;$^Z;p~@u8CC_h-B>(^b00011{s65iNX0}5K-B;M002ovPDHLkV1nKX B4O##I diff --git a/tests/zemu/snapshots/nanox_enable_blind_signing/00007.png b/tests/zemu/snapshots/nanox_enable_blind_signing/00007.png deleted file mode 100644 index 706ef7d8d2ee24a20c477ab5ec56db1ac8e715b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 705 zcmV;y0zUnTP)u!YR4o$+x+2tXBgd_<^7;$K?AVe@Hh^s_gPZ9i59Q2W6kn!a(SO9lNq3n z+64(mJE7G%N%UL$#1xyZIGjh~2)H_R-EEa{7rD1eL2QGr+gA!At`dh+2gjNFz~XFPhzwvUUIf0002M zMw~x~%4`bFn$4679E^3|r8OS@kVDFOkId zuT+rFzLcoAZOMO=uo2++@-;+Ywb>y;Mw>MF*bH|Fo`Pz5G8{$Xci3soUKj1esOP`Q z><=<5SF?TUzhpfpU8mcVqPiL#0q)8hm!{h9(SoE8Cf!8c0sXd{f3ynPQ;*m8XSGl$gL3&%a96^y;*SB_o+A@ zH8ez(B*OKm#5iH34^`7GkuF<=r4yfz-UmDU_ly9kj3K4dC^2>=&zt!z9u8&RaQ{Zp zKLNgtP2U6FL;CS_7X4)c006*SIDb>8+btLq-P!Wk;y>ltLs2hToVREImR5aqi;=n% z`gXcHs1z)>;Od*`lGt|y)O0@&bRUoQD2xX*fOJ^X9@d?glgCIAPZvrhwip3-K66TW nYJ=q0zuJ}n0000009g4CX+6?ysc4bO00000NkvXXu0mjfbKObj diff --git a/tests/zemu/snapshots/nanox_enable_blind_signing/00008.png b/tests/zemu/snapshots/nanox_enable_blind_signing/00008.png deleted file mode 100644 index 5b3eed92be2ac662655d726f7880834b803bd82c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 758 zcmVa(jLmecY{+pzLmu>neks?ArtbM~_!)3{xf&qDZs==8<^9%vWhyu@d$q#}&46=Im%~-L8g zwPlqVHgq~JW~ z!-ZJ%c)L+wcFshL{m33*Sy;+Ri5(Dx5JCtc#Khu5Sb6L--imv6f^FF4^trMf%Bg=@ zW8ihcZo=)Ys;3+bMNm;{KNBm#ZkVBG_9{D6TN6%JnS!z)h?>{EL@~u%Sp37@Hy8J(=q^~g zU&s56m!4PT0h5>0gYqtNTfD9Kv}Co)Q@$CV`(y*2NjYkkJDjdPxzwjX+Mwe(MyGSd_VM^|BG(C)wi7Q-}>);_3I}*@T>SEu)e}Y|G}2J z=r4C=;^ns;HBru(oiP86*;DPuucu$?Ss<2Co2~z&qDb28@1#Wyale=K&v~hNlIuok zz_G0FJQ|LSx8s}MK6d!~_3jS$cMvZyG { - let clicks; - // LNS does not have EIP712 & ENS settings - if (model.letter === 'S') clicks = 3; - else clicks = 5; - // Enable blind-signing - await sim.navigateAndCompareSnapshots('.', model.name + '_enable_blind_signing', [-2, 0, 0, clicks, 0]); - - const tx = eth.signTransaction( - "44'/60'/1'/0/0", - 'f8924685028fa6ae008306599594cc9a0b7c43dc2a5f023bb9b738e45b0ef6b06e0488016345785d8a0000b864474cf53d0000000000000000000000007d2768de32b0b80b7a3454c06bdac94a69ddc7a900000000000000000000000070bc641723fad48be2df6cf63dc6270ee2f897430000000000000000000000000000000000000000000000000000000000000000018080', - ); - - await waitForAppScreen(sim); - if (model.letter === 'S') clicks = 8; - else clicks = 6; - await sim.navigateAndCompareSnapshots('.', model.name + '_deposit_eth_compound_blind', [clicks, -1, 0]); - - await expect(tx).resolves.toEqual({ - "r": "b5ae3a011eb50e7d1fe9f5e6f6d91ca9f4dfca5f73805fc4866d49e72ead2f5c", - "s": "3c6e55db5925586bb58e434b58b2c04756f662131597f98c1aa2418b16992b81", - "v": "26", - }); - })); -}); From 4fce1d4afdb88fb9a0f3e9b36a9b800aa87bc5ac Mon Sep 17 00:00:00 2001 From: Charles-Edouard de la Vergne Date: Wed, 3 Apr 2024 17:14:01 +0200 Subject: [PATCH 19/35] Port 'send.test' from 'zemu' to 'ragger' --- .../nanos/test_legacy_send}/00000.png | Bin .../nanos/test_legacy_send}/00001.png | Bin .../nanos/test_legacy_send}/00002.png | Bin .../nanos/test_legacy_send}/00003.png | Bin .../nanos/test_legacy_send}/00004.png | Bin .../nanos/test_legacy_send}/00005.png | Bin .../nanos/test_legacy_send}/00006.png | Bin .../nanos/test_legacy_send}/00007.png | Bin .../nanos/test_legacy_send}/00008.png | Bin .../nanos/test_legacy_send/00009.png} | Bin .../ragger/snapshots/nanosp/test_legacy_send | 1 + .../nanox/test_legacy_send}/00000.png | Bin .../nanox/test_legacy_send}/00001.png | Bin .../nanox/test_legacy_send}/00002.png | Bin .../nanox/test_legacy_send/00003.png | Bin 0 -> 434 bytes .../nanox/test_legacy_send}/00004.png | Bin .../nanox/test_legacy_send/00005.png | Bin 0 -> 381 bytes .../snapshots/stax/test_legacy_send/00000.png | Bin 0 -> 8691 bytes .../snapshots/stax/test_legacy_send/00001.png | Bin 0 -> 18715 bytes .../snapshots/stax/test_legacy_send/00002.png | Bin 0 -> 9597 bytes .../snapshots/stax/test_legacy_send/00003.png | Bin 0 -> 6108 bytes tests/ragger/test_sign.py | 75 ++++++++++++++---- .../nanos_transfer_ethereum/00009.png | Bin 340 -> 0 bytes .../nanos_transfer_ethereum/00010.png | 1 - .../nanox_transfer_ethereum/00003.png | Bin 436 -> 0 bytes .../nanox_transfer_ethereum/00005.png | Bin 365 -> 0 bytes .../nanox_transfer_ethereum/00006.png | 1 - .../nanox_transfer_ethereum/00007.png | Bin 382 -> 0 bytes tests/zemu/src/send.test.js | 38 --------- 29 files changed, 59 insertions(+), 57 deletions(-) rename tests/{zemu/snapshots/nanos_transfer_ethereum => ragger/snapshots/nanos/test_legacy_send}/00000.png (100%) rename tests/{zemu/snapshots/nanos_transfer_ethereum => ragger/snapshots/nanos/test_legacy_send}/00001.png (100%) rename tests/{zemu/snapshots/nanos_transfer_ethereum => ragger/snapshots/nanos/test_legacy_send}/00002.png (100%) rename tests/{zemu/snapshots/nanos_transfer_ethereum => ragger/snapshots/nanos/test_legacy_send}/00003.png (100%) rename tests/{zemu/snapshots/nanos_transfer_ethereum => ragger/snapshots/nanos/test_legacy_send}/00004.png (100%) rename tests/{zemu/snapshots/nanos_transfer_ethereum => ragger/snapshots/nanos/test_legacy_send}/00005.png (100%) rename tests/{zemu/snapshots/nanos_transfer_ethereum => ragger/snapshots/nanos/test_legacy_send}/00006.png (100%) rename tests/{zemu/snapshots/nanos_transfer_ethereum => ragger/snapshots/nanos/test_legacy_send}/00007.png (100%) rename tests/{zemu/snapshots/nanos_transfer_ethereum => ragger/snapshots/nanos/test_legacy_send}/00008.png (100%) rename tests/{zemu/snapshots/nanos_transfer_ethereum/00011.png => ragger/snapshots/nanos/test_legacy_send/00009.png} (100%) create mode 120000 tests/ragger/snapshots/nanosp/test_legacy_send rename tests/{zemu/snapshots/nanox_transfer_ethereum => ragger/snapshots/nanox/test_legacy_send}/00000.png (100%) rename tests/{zemu/snapshots/nanox_transfer_ethereum => ragger/snapshots/nanox/test_legacy_send}/00001.png (100%) rename tests/{zemu/snapshots/nanox_transfer_ethereum => ragger/snapshots/nanox/test_legacy_send}/00002.png (100%) create mode 100644 tests/ragger/snapshots/nanox/test_legacy_send/00003.png rename tests/{zemu/snapshots/nanox_transfer_ethereum => ragger/snapshots/nanox/test_legacy_send}/00004.png (100%) create mode 100644 tests/ragger/snapshots/nanox/test_legacy_send/00005.png create mode 100644 tests/ragger/snapshots/stax/test_legacy_send/00000.png create mode 100644 tests/ragger/snapshots/stax/test_legacy_send/00001.png create mode 100644 tests/ragger/snapshots/stax/test_legacy_send/00002.png create mode 100644 tests/ragger/snapshots/stax/test_legacy_send/00003.png delete mode 100644 tests/zemu/snapshots/nanos_transfer_ethereum/00009.png delete mode 120000 tests/zemu/snapshots/nanos_transfer_ethereum/00010.png delete mode 100644 tests/zemu/snapshots/nanox_transfer_ethereum/00003.png delete mode 100644 tests/zemu/snapshots/nanox_transfer_ethereum/00005.png delete mode 120000 tests/zemu/snapshots/nanox_transfer_ethereum/00006.png delete mode 100644 tests/zemu/snapshots/nanox_transfer_ethereum/00007.png delete mode 100644 tests/zemu/src/send.test.js diff --git a/tests/zemu/snapshots/nanos_transfer_ethereum/00000.png b/tests/ragger/snapshots/nanos/test_legacy_send/00000.png similarity index 100% rename from tests/zemu/snapshots/nanos_transfer_ethereum/00000.png rename to tests/ragger/snapshots/nanos/test_legacy_send/00000.png diff --git a/tests/zemu/snapshots/nanos_transfer_ethereum/00001.png b/tests/ragger/snapshots/nanos/test_legacy_send/00001.png similarity index 100% rename from tests/zemu/snapshots/nanos_transfer_ethereum/00001.png rename to tests/ragger/snapshots/nanos/test_legacy_send/00001.png diff --git a/tests/zemu/snapshots/nanos_transfer_ethereum/00002.png b/tests/ragger/snapshots/nanos/test_legacy_send/00002.png similarity index 100% rename from tests/zemu/snapshots/nanos_transfer_ethereum/00002.png rename to tests/ragger/snapshots/nanos/test_legacy_send/00002.png diff --git a/tests/zemu/snapshots/nanos_transfer_ethereum/00003.png b/tests/ragger/snapshots/nanos/test_legacy_send/00003.png similarity index 100% rename from tests/zemu/snapshots/nanos_transfer_ethereum/00003.png rename to tests/ragger/snapshots/nanos/test_legacy_send/00003.png diff --git a/tests/zemu/snapshots/nanos_transfer_ethereum/00004.png b/tests/ragger/snapshots/nanos/test_legacy_send/00004.png similarity index 100% rename from tests/zemu/snapshots/nanos_transfer_ethereum/00004.png rename to tests/ragger/snapshots/nanos/test_legacy_send/00004.png diff --git a/tests/zemu/snapshots/nanos_transfer_ethereum/00005.png b/tests/ragger/snapshots/nanos/test_legacy_send/00005.png similarity index 100% rename from tests/zemu/snapshots/nanos_transfer_ethereum/00005.png rename to tests/ragger/snapshots/nanos/test_legacy_send/00005.png diff --git a/tests/zemu/snapshots/nanos_transfer_ethereum/00006.png b/tests/ragger/snapshots/nanos/test_legacy_send/00006.png similarity index 100% rename from tests/zemu/snapshots/nanos_transfer_ethereum/00006.png rename to tests/ragger/snapshots/nanos/test_legacy_send/00006.png diff --git a/tests/zemu/snapshots/nanos_transfer_ethereum/00007.png b/tests/ragger/snapshots/nanos/test_legacy_send/00007.png similarity index 100% rename from tests/zemu/snapshots/nanos_transfer_ethereum/00007.png rename to tests/ragger/snapshots/nanos/test_legacy_send/00007.png diff --git a/tests/zemu/snapshots/nanos_transfer_ethereum/00008.png b/tests/ragger/snapshots/nanos/test_legacy_send/00008.png similarity index 100% rename from tests/zemu/snapshots/nanos_transfer_ethereum/00008.png rename to tests/ragger/snapshots/nanos/test_legacy_send/00008.png diff --git a/tests/zemu/snapshots/nanos_transfer_ethereum/00011.png b/tests/ragger/snapshots/nanos/test_legacy_send/00009.png similarity index 100% rename from tests/zemu/snapshots/nanos_transfer_ethereum/00011.png rename to tests/ragger/snapshots/nanos/test_legacy_send/00009.png diff --git a/tests/ragger/snapshots/nanosp/test_legacy_send b/tests/ragger/snapshots/nanosp/test_legacy_send new file mode 120000 index 0000000..bcf0aae --- /dev/null +++ b/tests/ragger/snapshots/nanosp/test_legacy_send @@ -0,0 +1 @@ +../nanox/test_legacy_send \ No newline at end of file diff --git a/tests/zemu/snapshots/nanox_transfer_ethereum/00000.png b/tests/ragger/snapshots/nanox/test_legacy_send/00000.png similarity index 100% rename from tests/zemu/snapshots/nanox_transfer_ethereum/00000.png rename to tests/ragger/snapshots/nanox/test_legacy_send/00000.png diff --git a/tests/zemu/snapshots/nanox_transfer_ethereum/00001.png b/tests/ragger/snapshots/nanox/test_legacy_send/00001.png similarity index 100% rename from tests/zemu/snapshots/nanox_transfer_ethereum/00001.png rename to tests/ragger/snapshots/nanox/test_legacy_send/00001.png diff --git a/tests/zemu/snapshots/nanox_transfer_ethereum/00002.png b/tests/ragger/snapshots/nanox/test_legacy_send/00002.png similarity index 100% rename from tests/zemu/snapshots/nanox_transfer_ethereum/00002.png rename to tests/ragger/snapshots/nanox/test_legacy_send/00002.png diff --git a/tests/ragger/snapshots/nanox/test_legacy_send/00003.png b/tests/ragger/snapshots/nanox/test_legacy_send/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..1bcb78761fd15fd94377813eb932cf0245af596a GIT binary patch literal 434 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|_8Dba4!+nDh2VbkSi29*4kN zC;e{xpLE09-X@L1U)6Pz@cqwE59$gurmhhHYGNq1|K_}GN?*6c;}uWe+Wo)TzqkE6 zOWCglJJRQIPYCKV44Z9klmA?K*;8eu`j}gF&*pmny7TUOg-vG#S9-~<9VNyDU;XaOUjRnu`wU6rmV;;(%8h-cKt95^+cIY}x^|>`ynr&iL>69AV zQ?XZH9Ls(%r|F4eU1s7g$2l(7wEwqoFI!-AH6`DME7ab-W_RyC{Y0P#t1qo>JIAe` zn*8U4`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_legacy_send/00000.png b/tests/ragger/snapshots/stax/test_legacy_send/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..f992e718a17c0a7952eb569a7d3a3ac7662fe27e GIT binary patch literal 8691 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 kD|~rROUO-4dX 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 literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/test_legacy_send/00002.png b/tests/ragger/snapshots/stax/test_legacy_send/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..bc1ca9382cfe2a299a5bfb35c76039d7a8ff0893 GIT binary patch literal 9597 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 H_TWDNq$iJk literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/test_legacy_send/00003.png b/tests/ragger/snapshots/stax/test_legacy_send/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..a21279c8a0a89933b09833df3871d1ab2b36adf5 GIT binary patch literal 6108 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 2^87 Eth on Ethereum app should fail +def test_legacy_send_error(backend: BackendInterface): + tx_params: dict = { + "nonce": 38, + "gasPrice": 56775612312210000000001234554332, + "gas": GAS_LIMIT, + "to": ADDR3, + "value": 12345678912345678912345678000000000000000000, + "chainId": CHAIN_ID + } + common_fail(backend, tx_params, StatusWord.EXCEPTION_OVERFLOW, path=BIP32_PATH2) + + + def test_1559(firmware: Firmware, backend: BackendInterface, navigator: Navigator): tx_params: dict = { "nonce": NONCE, @@ -124,7 +173,7 @@ def test_sign_simple(firmware: Firmware, test_name: str): tx_params: dict = { "nonce": NONCE2, - "gasPrice": Web3.to_wei(13, 'gwei'), + "gasPrice": Web3.to_wei(GAS_PRICE, 'gwei'), "gas": GAS_LIMIT, "to": ADDR2, "value": 0x6f9c9e7bf61818, @@ -180,7 +229,7 @@ def test_sign_nonce_display(firmware: Firmware, tx_params: dict = { "nonce": NONCE2, - "gasPrice": Web3.to_wei(13, 'gwei'), + "gasPrice": Web3.to_wei(GAS_PRICE, 'gwei'), "gas": GAS_LIMIT, "to": ADDR2, "value": 0x6f9c9e7bf61818, @@ -222,7 +271,7 @@ def test_sign_blind_simple(firmware: Firmware, data = "ok" tx_params: dict = { "nonce": NONCE2, - "gasPrice": Web3.to_wei(13, 'gwei'), + "gasPrice": Web3.to_wei(GAS_PRICE, 'gwei'), "gas": GAS_LIMIT, "to": ADDR2, "value": 0x6f9c9e7bf61818, @@ -267,7 +316,7 @@ def test_sign_blind_and_nonce_display(firmware: Firmware, data = "That's a little message :)" tx_params: dict = { "nonce": 1844674, - "gasPrice": Web3.to_wei(13, 'gwei'), + "gasPrice": Web3.to_wei(GAS_PRICE, 'gwei'), "gas": GAS_LIMIT, "to": ADDR2, "value": 0x6f9c9e7bf61818, @@ -283,7 +332,7 @@ def test_sign_reject(firmware: Firmware, test_name: str): tx_params: dict = { "nonce": NONCE2, - "gasPrice": Web3.to_wei(13, 'gwei'), + "gasPrice": Web3.to_wei(GAS_PRICE, 'gwei'), "gas": GAS_LIMIT, "to": ADDR2, "value": 0x6f9c9e7bf61818, @@ -305,7 +354,7 @@ def test_sign_error_transaction_type(backend: BackendInterface): app_client = EthAppClient(backend) try: - with app_client.sign("m/44'/60'/1'/0/0", tx_params): + with app_client.sign(BIP32_PATH2, tx_params): pass except TypeError: @@ -318,7 +367,7 @@ def test_sign_blind_error_disabled(backend: BackendInterface): data = "ok" tx_params: dict = { "nonce": NONCE2, - "gasPrice": Web3.to_wei(13, 'gwei'), + "gasPrice": Web3.to_wei(GAS_PRICE, 'gwei'), "gas": GAS_LIMIT, "to": ADDR2, "value": 0x6f9c9e7bf61818, @@ -326,12 +375,4 @@ def test_sign_blind_error_disabled(backend: BackendInterface): "data": data.encode('utf-8').hex() } - app_client = EthAppClient(backend) - try: - with app_client.sign("m/44'/60'/1'/0/0", tx_params): - pass - - except ExceptionRAPDU as e: - assert e.status == StatusWord.INVALID_DATA - else: - assert False # An exception should have been raised + common_fail(backend, tx_params, StatusWord.INVALID_DATA, BIP32_PATH2) diff --git a/tests/zemu/snapshots/nanos_transfer_ethereum/00009.png b/tests/zemu/snapshots/nanos_transfer_ethereum/00009.png deleted file mode 100644 index 9c7e7049cb3e9bcfb1601ec510ee465d38229d4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 340 zcmV-a0jvIrP)b=%MgRq*37h4eRxPbkJCLY|1VIo49_}P}TKpH4$L<8?X{t;p zy+UQc_4@p%0?~E_&igM#?#L~IOHR(-<@sYotiy&C*Y&GII0yeh-p3zW9cv$Q0k>6Y_)5~SfP=m zSMUtz)%Ex|-o}7!H9hbQ(8{%C?kQVa?C`*Uj-J(h>P7(Y#?ZWvi?6}@n{fGLp>YTp myqR(V_$?>^<%seR_VWh!#&b2QSTI5qI}IeE+uQ$d($HH~rmjmfzpG^!&>@vHo;H|A#$&J>60(rv&w- z{Y$*re=CCT)rWkxbu*ft7z>`O-oI7u=d4xjo3yuXwAx+AyG_?&s?U?T(oz$vN~hG^ zITd^LMfdfDVy;c?KbE!zHs9!cv+j?u-i)SGA(L0?zp6X2s;;m5>ao50i9jz_e_Gr2 zjaxr8`Rh@Y?ag!bLo2gxTv~bJ)XKV#_qKdJdgcDJ@>9jrf~PT`jyPOzcvQ5zaQmZw zsyQ_iV&5BC&*W(?<|>M3c>Lz-s+s2Awug&us=u4vloD}$y3^rY@dWQRp`~22>^5u8 z-Wjt=zq~iKakEWo=0=}0$4N$E@I8h8IZK)78&qol`;+03*-H(EtDd diff --git a/tests/zemu/snapshots/nanox_transfer_ethereum/00005.png b/tests/zemu/snapshots/nanox_transfer_ethereum/00005.png deleted file mode 100644 index c9222461cdd3ea49c300c4820e3704d33b9a3838..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 365 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|=-yba4!+nDh2lG+&c}NXx^; zh3aqWJ=68=OcXt$gFHOaKm4C(5*Bp+iMjqtrV%Nn6esuj!jIMi}Btw`sohxwi1&U@}K{{10Q-!s%eVxF#kF6*2U FngGM>p?d%T diff --git a/tests/zemu/snapshots/nanox_transfer_ethereum/00006.png b/tests/zemu/snapshots/nanox_transfer_ethereum/00006.png deleted file mode 120000 index 917964c..0000000 --- a/tests/zemu/snapshots/nanox_transfer_ethereum/00006.png +++ /dev/null @@ -1 +0,0 @@ -00004.png \ No newline at end of file diff --git a/tests/zemu/snapshots/nanox_transfer_ethereum/00007.png b/tests/zemu/snapshots/nanox_transfer_ethereum/00007.png deleted file mode 100644 index a58590b988714545e7960f7f400f360ffc5de41f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 382 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9hba4!+nDh2#bl+hG9*4k? zQuR0Wo;SViCn%lTo!KM1sAjk5Y(@*V#~rbuHu`7A_H&AxgwHf8y4cdKvg$JbB4n%ez%sZ31aBYd&Oo@(7)_WJ(Znl2o8^PD` zFE`_Y-IS+Kdq0Q2-7r_C=}F(5ev`U`H~)QH|9$1FHE$YjoVax+e0xei%S`SAGlOm! zp7{T3NA-mVOYb&rdU8MdyIHo@@7cE*uj@I+Zu{2i)KMSV-E~o { - - const tx = eth.signTransaction( - "44'/60'/1'/0/0", - 'EB44850306DC4200825208945A321744667052AFFA8386ED49E00EF223CBFFC3876F9C9E7BF6181880018080', - ); - - await waitForAppScreen(sim); - let clicks; - if (model.letter === 'S') clicks = 9; - else clicks = 5; - await sim.navigateAndCompareSnapshots('.', model.name + '_transfer_ethereum', [clicks, -1, 0]); - - await expect(tx).resolves.toEqual({ - "r": "6f389d15320f0501383526ed03de917c14212716f09a262dbc98431086a5db49", - "s": "0dc994b7b97230bb35fdf6fec2f4d8ff4cfb8bfeb2a652c364c738ff033c05dd", - "v": "26", - }); - })); -}); - -nano_models.forEach(function(model) { - test('[Nano ' + model.letter + '] Transfer amount >= 2^87 Eth on Ethereum app should fail', zemu(model, async (sim, eth) => { - - const tx = eth.signTransaction( - "44'/60'/1'/0/0", - 'f83f268e02cc9be5c53ea44bd43c289dcddc82520894dac17f958d2ee523a2206206994597c13d831ec7928db8b0861b8f7fe5df83cd553a829878000080018080', - ); - - await expect(tx).rejects.toEqual(new TransportStatusError(0x6807)); - })); -}); From d1cdc6b1f29c1c38bd118ab87b353f82f0604568 Mon Sep 17 00:00:00 2001 From: Charles-Edouard de la Vergne Date: Wed, 3 Apr 2024 17:28:17 +0200 Subject: [PATCH 20/35] Port 'send_bsc.test' from 'zemu' to 'ragger' --- .../nanos/test_legacy_send_bsc}/00000.png | Bin .../nanos/test_legacy_send_bsc}/00001.png | Bin .../nanos/test_legacy_send_bsc}/00002.png | Bin .../nanos/test_legacy_send_bsc}/00003.png | Bin .../nanos/test_legacy_send_bsc}/00004.png | Bin .../nanos/test_legacy_send_bsc}/00005.png | Bin .../nanos/test_legacy_send_bsc}/00006.png | Bin .../nanos/test_legacy_send_bsc}/00007.png | Bin .../nanos/test_legacy_send_bsc}/00008.png | Bin .../nanos/test_legacy_send_bsc}/00009.png | Bin .../nanos/test_legacy_send_bsc/00010.png} | Bin .../snapshots/nanosp/test_legacy_send_bsc | 1 + .../nanox/test_legacy_send_bsc}/00000.png | Bin .../nanox/test_legacy_send_bsc}/00001.png | Bin .../nanox/test_legacy_send_bsc}/00002.png | Bin .../nanox/test_legacy_send_bsc}/00003.png | Bin .../nanox/test_legacy_send_bsc/00004.png | Bin 0 -> 438 bytes .../nanox/test_legacy_send_bsc}/00005.png | Bin .../nanox/test_legacy_send_bsc/00006.png | Bin 0 -> 381 bytes .../stax/test_legacy_send_bsc/00000.png | Bin 0 -> 8985 bytes .../stax/test_legacy_send_bsc/00001.png | Bin 0 -> 19003 bytes .../stax/test_legacy_send_bsc/00002.png | Bin 0 -> 7510 bytes .../stax/test_legacy_send_bsc/00003.png | Bin 0 -> 9887 bytes .../stax/test_legacy_send_bsc/00004.png | Bin 0 -> 6108 bytes tests/ragger/test_sign.py | 22 ++++++++++++--- .../snapshots/nanos_transfer_bsc/00010.png | Bin 340 -> 0 bytes .../snapshots/nanos_transfer_bsc/00011.png | 1 - .../snapshots/nanox_transfer_bsc/00004.png | Bin 440 -> 0 bytes .../snapshots/nanox_transfer_bsc/00006.png | Bin 365 -> 0 bytes .../snapshots/nanox_transfer_bsc/00007.png | 1 - .../snapshots/nanox_transfer_bsc/00008.png | Bin 382 -> 0 bytes tests/zemu/src/send_bsc.test.js | 25 ------------------ 32 files changed, 20 insertions(+), 30 deletions(-) rename tests/{zemu/snapshots/nanos_transfer_bsc => ragger/snapshots/nanos/test_legacy_send_bsc}/00000.png (100%) rename tests/{zemu/snapshots/nanos_transfer_bsc => ragger/snapshots/nanos/test_legacy_send_bsc}/00001.png (100%) rename tests/{zemu/snapshots/nanos_transfer_bsc => ragger/snapshots/nanos/test_legacy_send_bsc}/00002.png (100%) rename tests/{zemu/snapshots/nanos_transfer_bsc => ragger/snapshots/nanos/test_legacy_send_bsc}/00003.png (100%) rename tests/{zemu/snapshots/nanos_transfer_bsc => ragger/snapshots/nanos/test_legacy_send_bsc}/00004.png (100%) rename tests/{zemu/snapshots/nanos_transfer_bsc => ragger/snapshots/nanos/test_legacy_send_bsc}/00005.png (100%) rename tests/{zemu/snapshots/nanos_transfer_bsc => ragger/snapshots/nanos/test_legacy_send_bsc}/00006.png (100%) rename tests/{zemu/snapshots/nanos_transfer_bsc => ragger/snapshots/nanos/test_legacy_send_bsc}/00007.png (100%) rename tests/{zemu/snapshots/nanos_transfer_bsc => ragger/snapshots/nanos/test_legacy_send_bsc}/00008.png (100%) rename tests/{zemu/snapshots/nanos_transfer_bsc => ragger/snapshots/nanos/test_legacy_send_bsc}/00009.png (100%) rename tests/{zemu/snapshots/nanos_transfer_bsc/00012.png => ragger/snapshots/nanos/test_legacy_send_bsc/00010.png} (100%) create mode 120000 tests/ragger/snapshots/nanosp/test_legacy_send_bsc rename tests/{zemu/snapshots/nanox_transfer_bsc => ragger/snapshots/nanox/test_legacy_send_bsc}/00000.png (100%) rename tests/{zemu/snapshots/nanox_transfer_bsc => ragger/snapshots/nanox/test_legacy_send_bsc}/00001.png (100%) rename tests/{zemu/snapshots/nanox_transfer_bsc => ragger/snapshots/nanox/test_legacy_send_bsc}/00002.png (100%) rename tests/{zemu/snapshots/nanox_transfer_bsc => ragger/snapshots/nanox/test_legacy_send_bsc}/00003.png (100%) create mode 100644 tests/ragger/snapshots/nanox/test_legacy_send_bsc/00004.png rename tests/{zemu/snapshots/nanox_transfer_bsc => ragger/snapshots/nanox/test_legacy_send_bsc}/00005.png (100%) create mode 100644 tests/ragger/snapshots/nanox/test_legacy_send_bsc/00006.png create mode 100644 tests/ragger/snapshots/stax/test_legacy_send_bsc/00000.png create mode 100644 tests/ragger/snapshots/stax/test_legacy_send_bsc/00001.png create mode 100644 tests/ragger/snapshots/stax/test_legacy_send_bsc/00002.png create mode 100644 tests/ragger/snapshots/stax/test_legacy_send_bsc/00003.png create mode 100644 tests/ragger/snapshots/stax/test_legacy_send_bsc/00004.png delete mode 100644 tests/zemu/snapshots/nanos_transfer_bsc/00010.png delete mode 120000 tests/zemu/snapshots/nanos_transfer_bsc/00011.png delete mode 100644 tests/zemu/snapshots/nanox_transfer_bsc/00004.png delete mode 100644 tests/zemu/snapshots/nanox_transfer_bsc/00006.png delete mode 120000 tests/zemu/snapshots/nanox_transfer_bsc/00007.png delete mode 100644 tests/zemu/snapshots/nanox_transfer_bsc/00008.png delete mode 100644 tests/zemu/src/send_bsc.test.js diff --git a/tests/zemu/snapshots/nanos_transfer_bsc/00000.png b/tests/ragger/snapshots/nanos/test_legacy_send_bsc/00000.png similarity index 100% rename from tests/zemu/snapshots/nanos_transfer_bsc/00000.png rename to tests/ragger/snapshots/nanos/test_legacy_send_bsc/00000.png diff --git a/tests/zemu/snapshots/nanos_transfer_bsc/00001.png b/tests/ragger/snapshots/nanos/test_legacy_send_bsc/00001.png similarity index 100% rename from tests/zemu/snapshots/nanos_transfer_bsc/00001.png rename to tests/ragger/snapshots/nanos/test_legacy_send_bsc/00001.png diff --git a/tests/zemu/snapshots/nanos_transfer_bsc/00002.png b/tests/ragger/snapshots/nanos/test_legacy_send_bsc/00002.png similarity index 100% rename from tests/zemu/snapshots/nanos_transfer_bsc/00002.png rename to tests/ragger/snapshots/nanos/test_legacy_send_bsc/00002.png diff --git a/tests/zemu/snapshots/nanos_transfer_bsc/00003.png b/tests/ragger/snapshots/nanos/test_legacy_send_bsc/00003.png similarity index 100% rename from tests/zemu/snapshots/nanos_transfer_bsc/00003.png rename to tests/ragger/snapshots/nanos/test_legacy_send_bsc/00003.png diff --git a/tests/zemu/snapshots/nanos_transfer_bsc/00004.png b/tests/ragger/snapshots/nanos/test_legacy_send_bsc/00004.png similarity index 100% rename from tests/zemu/snapshots/nanos_transfer_bsc/00004.png rename to tests/ragger/snapshots/nanos/test_legacy_send_bsc/00004.png diff --git a/tests/zemu/snapshots/nanos_transfer_bsc/00005.png b/tests/ragger/snapshots/nanos/test_legacy_send_bsc/00005.png similarity index 100% rename from tests/zemu/snapshots/nanos_transfer_bsc/00005.png rename to tests/ragger/snapshots/nanos/test_legacy_send_bsc/00005.png diff --git a/tests/zemu/snapshots/nanos_transfer_bsc/00006.png b/tests/ragger/snapshots/nanos/test_legacy_send_bsc/00006.png similarity index 100% rename from tests/zemu/snapshots/nanos_transfer_bsc/00006.png rename to tests/ragger/snapshots/nanos/test_legacy_send_bsc/00006.png diff --git a/tests/zemu/snapshots/nanos_transfer_bsc/00007.png b/tests/ragger/snapshots/nanos/test_legacy_send_bsc/00007.png similarity index 100% rename from tests/zemu/snapshots/nanos_transfer_bsc/00007.png rename to tests/ragger/snapshots/nanos/test_legacy_send_bsc/00007.png diff --git a/tests/zemu/snapshots/nanos_transfer_bsc/00008.png b/tests/ragger/snapshots/nanos/test_legacy_send_bsc/00008.png similarity index 100% rename from tests/zemu/snapshots/nanos_transfer_bsc/00008.png rename to tests/ragger/snapshots/nanos/test_legacy_send_bsc/00008.png diff --git a/tests/zemu/snapshots/nanos_transfer_bsc/00009.png b/tests/ragger/snapshots/nanos/test_legacy_send_bsc/00009.png similarity index 100% rename from tests/zemu/snapshots/nanos_transfer_bsc/00009.png rename to tests/ragger/snapshots/nanos/test_legacy_send_bsc/00009.png diff --git a/tests/zemu/snapshots/nanos_transfer_bsc/00012.png b/tests/ragger/snapshots/nanos/test_legacy_send_bsc/00010.png similarity index 100% rename from tests/zemu/snapshots/nanos_transfer_bsc/00012.png rename to tests/ragger/snapshots/nanos/test_legacy_send_bsc/00010.png diff --git a/tests/ragger/snapshots/nanosp/test_legacy_send_bsc b/tests/ragger/snapshots/nanosp/test_legacy_send_bsc new file mode 120000 index 0000000..026f196 --- /dev/null +++ b/tests/ragger/snapshots/nanosp/test_legacy_send_bsc @@ -0,0 +1 @@ +../nanox/test_legacy_send_bsc \ No newline at end of file diff --git a/tests/zemu/snapshots/nanox_transfer_bsc/00000.png b/tests/ragger/snapshots/nanox/test_legacy_send_bsc/00000.png similarity index 100% rename from tests/zemu/snapshots/nanox_transfer_bsc/00000.png rename to tests/ragger/snapshots/nanox/test_legacy_send_bsc/00000.png diff --git a/tests/zemu/snapshots/nanox_transfer_bsc/00001.png b/tests/ragger/snapshots/nanox/test_legacy_send_bsc/00001.png similarity index 100% rename from tests/zemu/snapshots/nanox_transfer_bsc/00001.png rename to tests/ragger/snapshots/nanox/test_legacy_send_bsc/00001.png diff --git a/tests/zemu/snapshots/nanox_transfer_bsc/00002.png b/tests/ragger/snapshots/nanox/test_legacy_send_bsc/00002.png similarity index 100% rename from tests/zemu/snapshots/nanox_transfer_bsc/00002.png rename to tests/ragger/snapshots/nanox/test_legacy_send_bsc/00002.png diff --git a/tests/zemu/snapshots/nanox_transfer_bsc/00003.png b/tests/ragger/snapshots/nanox/test_legacy_send_bsc/00003.png similarity index 100% rename from tests/zemu/snapshots/nanox_transfer_bsc/00003.png rename to tests/ragger/snapshots/nanox/test_legacy_send_bsc/00003.png diff --git a/tests/ragger/snapshots/nanox/test_legacy_send_bsc/00004.png b/tests/ragger/snapshots/nanox/test_legacy_send_bsc/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..cf48bdfc09c9c8340a3204953f086fb349680319 GIT binary patch literal 438 zcmV;n0ZIOeP){p~BAoYrD<5)9(L>&q+F0zh&w*P4ieggVxuFrMtE0$v zt9BKm8|T2e1kH!|QexB~b|ULlf5HPxP+n@p8&jd^=ZLS`==%@`008(-8&^Zs70TjG zNB$fxXLjCH>s?D)KK|!vYZ+j;JkVL5o7pwL(La;>@8L5X-h|Z^Q2TT6Jpr-zP59E6 zmiwP&mNPh|y$Q(cX?_jIB&Zj~)PudK4};~N_&wmOxFz5TPl6{XOVHZs-w$z-gU-Qn zWL>7}T{A6{L&&b)MP4xoFSn$DW{`=#870(2-xxXYL>2Nh2r@a?itqve0000000000 g00000007(k0g?nc`$4uxDF6Tf07*qoM6N<$f?agTz5oCK literal 0 HcmV?d00001 diff --git a/tests/zemu/snapshots/nanox_transfer_bsc/00005.png b/tests/ragger/snapshots/nanox/test_legacy_send_bsc/00005.png similarity index 100% rename from tests/zemu/snapshots/nanox_transfer_bsc/00005.png rename to tests/ragger/snapshots/nanox/test_legacy_send_bsc/00005.png diff --git a/tests/ragger/snapshots/nanox/test_legacy_send_bsc/00006.png b/tests/ragger/snapshots/nanox/test_legacy_send_bsc/00006.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_legacy_send_bsc/00000.png b/tests/ragger/snapshots/stax/test_legacy_send_bsc/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..5f9bab11e9cb1f14eafc562e4857391ee605ed6b GIT binary patch literal 8985 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 a!5ZMW*z0h!c;J^80drHUYn4~r@BI&DmZC}k literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/test_legacy_send_bsc/00001.png b/tests/ragger/snapshots/stax/test_legacy_send_bsc/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..85d0465393f24936673da52448dffe188361e7ec GIT binary patch literal 19003 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 literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/test_legacy_send_bsc/00002.png b/tests/ragger/snapshots/stax/test_legacy_send_bsc/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..35c2653450badf0324666b5c2c4a15dd0b49be3c GIT binary patch literal 7510 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 literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/test_legacy_send_bsc/00003.png b/tests/ragger/snapshots/stax/test_legacy_send_bsc/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..ff517f2ef8b015c02a0bf9708f8adc95a314c105 GIT binary patch literal 9887 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 G`+oqdfj;*D literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/test_legacy_send_bsc/00004.png b/tests/ragger/snapshots/stax/test_legacy_send_bsc/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..a21279c8a0a89933b09833df3871d1ab2b36adf5 GIT binary patch literal 6108 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 myqR(V_$?>^<%seR_VWh!)KXn zPdR$t{b%uxIX5eV*Y2LSrRLB1%h!w!6jUzQY-4`ebpJ*BNx$DeG?uy7a#b|ock%~Y zhK=8Se_WbA?f3lDX~q^y_Hv$homt0s+&4hKYo&E{pgh}Y+mF=;!VA3*2+w2j516)K z>-Kv4Bd&Z_)~Dx{&Rn%SElO?qgmw2k;|w|Ur!Q$to6xyWQuT_zopr0FgJz0RR91 diff --git a/tests/zemu/snapshots/nanox_transfer_bsc/00006.png b/tests/zemu/snapshots/nanox_transfer_bsc/00006.png deleted file mode 100644 index c9222461cdd3ea49c300c4820e3704d33b9a3838..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 365 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|=-yba4!+nDh2lG+&c}NXx^; zh3aqWJ=68=OcXt$gFHOaKm4C(5*Bp+iMjqtrV%Nn6esuj!jIMi}Btw`sohxwi1&U@}K{{10Q-!s%eVxF#kF6*2U FngGM>p?d%T diff --git a/tests/zemu/snapshots/nanox_transfer_bsc/00007.png b/tests/zemu/snapshots/nanox_transfer_bsc/00007.png deleted file mode 120000 index 7159a12..0000000 --- a/tests/zemu/snapshots/nanox_transfer_bsc/00007.png +++ /dev/null @@ -1 +0,0 @@ -00005.png \ No newline at end of file diff --git a/tests/zemu/snapshots/nanox_transfer_bsc/00008.png b/tests/zemu/snapshots/nanox_transfer_bsc/00008.png deleted file mode 100644 index a58590b988714545e7960f7f400f360ffc5de41f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 382 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9hba4!+nDh2#bl+hG9*4k? zQuR0Wo;SViCn%lTo!KM1sAjk5Y(@*V#~rbuHu`7A_H&AxgwHf8y4cdKvg$JbB4n%ez%sZ31aBYd&Oo@(7)_WJ(Znl2o8^PD` zFE`_Y-IS+Kdq0Q2-7r_C=}F(5ev`U`H~)QH|9$1FHE$YjoVax+e0xei%S`SAGlOm! zp7{T3NA-mVOYb&rdU8MdyIHo@@7cE*uj@I+Zu{2i)KMSV-E~o { - - const tx = eth.signTransaction( - "44'/60'/1'/0/0", - 'EB0185012A05F200825208945A321744667052AFFA8386ED49E00EF223CBFFC3876F9C9E7BF6181880388080', - ); - - await waitForAppScreen(sim); - let clicks; - if (model.letter === 'S') clicks = 10; - else clicks = 6; - await sim.navigateAndCompareSnapshots('.', model.name + '_transfer_bsc', [clicks, -1, 0]); - - await expect(tx).resolves.toEqual({ - "r": "f667cc34e9815df4f052fb3463cdbe355fff5c1acf4e919b3539806521a059ad", - "s": "6b35492b7108d9d9e1cc7aede536ed6b3173197b56dd873cbc3b43e041d6f407", - "v": "93", - }); - })); -}); From fe1b3874ff31d6dd78d063a8cb76906a034be91e Mon Sep 17 00:00:00 2001 From: Charles-Edouard de la Vergne Date: Wed, 3 Apr 2024 17:50:15 +0200 Subject: [PATCH 21/35] Port 'chainid.test' from 'zemu' to 'ragger' --- .../nanos/test_legacy_chainid1}/00000.png | Bin .../nanos/test_legacy_chainid1}/00001.png | Bin .../nanos/test_legacy_chainid1}/00002.png | Bin .../nanos/test_legacy_chainid1}/00003.png | Bin .../nanos/test_legacy_chainid1}/00004.png | Bin .../nanos/test_legacy_chainid1}/00005.png | Bin .../nanos/test_legacy_chainid1}/00006.png | Bin .../nanos/test_legacy_chainid1}/00007.png | Bin .../nanos/test_legacy_chainid1}/00008.png | Bin .../nanos/test_legacy_chainid1}/00009.png | Bin .../nanos/test_legacy_chainid1/00010.png} | Bin .../nanos/test_legacy_chainid2}/00000.png | Bin .../nanos/test_legacy_chainid2}/00001.png | Bin .../nanos/test_legacy_chainid2}/00002.png | Bin .../nanos/test_legacy_chainid2}/00003.png | Bin .../nanos/test_legacy_chainid2}/00004.png | Bin .../nanos/test_legacy_chainid2}/00005.png | Bin .../nanos/test_legacy_chainid2}/00006.png | Bin .../nanos/test_legacy_chainid2}/00007.png | Bin .../nanos/test_legacy_chainid2}/00008.png | Bin .../nanos/test_legacy_chainid2}/00009.png | Bin .../nanos/test_legacy_chainid2/00010.png} | Bin .../snapshots/nanosp/test_legacy_chainid1 | 1 + .../snapshots/nanosp/test_legacy_chainid2 | 1 + .../nanox/test_legacy_chainid1}/00000.png | Bin .../nanox/test_legacy_chainid1/00001.png | Bin 0 -> 540 bytes .../nanox/test_legacy_chainid1}/00002.png | Bin .../nanox/test_legacy_chainid1}/00003.png | Bin .../nanox/test_legacy_chainid1/00004.png | Bin 0 -> 420 bytes .../nanox/test_legacy_chainid1}/00005.png | Bin .../nanox/test_legacy_chainid1/00006.png | Bin 0 -> 381 bytes .../nanox/test_legacy_chainid2}/00000.png | Bin .../nanox/test_legacy_chainid2}/00001.png | Bin .../nanox/test_legacy_chainid2}/00002.png | Bin .../nanox/test_legacy_chainid2}/00003.png | Bin .../nanox/test_legacy_chainid2/00004.png | Bin 0 -> 460 bytes .../nanox/test_legacy_chainid2}/00005.png | Bin .../nanox/test_legacy_chainid2/00006.png | Bin 0 -> 381 bytes .../stax/test_legacy_chainid1/00000.png | Bin 0 -> 7724 bytes .../stax/test_legacy_chainid1/00001.png | Bin 0 -> 18646 bytes .../stax/test_legacy_chainid1/00002.png | Bin 0 -> 8148 bytes .../stax/test_legacy_chainid1/00003.png | Bin 0 -> 8665 bytes .../stax/test_legacy_chainid1/00004.png | Bin 0 -> 6108 bytes .../stax/test_legacy_chainid2/00000.png | Bin 0 -> 7724 bytes .../stax/test_legacy_chainid2/00001.png | Bin 0 -> 19504 bytes .../stax/test_legacy_chainid2/00002.png | Bin 0 -> 8538 bytes .../stax/test_legacy_chainid2/00003.png | Bin 0 -> 8665 bytes .../stax/test_legacy_chainid2/00004.png | Bin 0 -> 6108 bytes tests/ragger/test_sign.py | 31 ++++++++++++ .../00010.png | Bin 340 -> 0 bytes .../00011.png | Bin 414 -> 0 bytes .../nanos_transfer_palm_network/00010.png | Bin 340 -> 0 bytes .../nanos_transfer_palm_network/00011.png | 1 - .../00001.png | Bin 566 -> 0 bytes .../00004.png | Bin 436 -> 0 bytes .../00006.png | Bin 365 -> 0 bytes .../00007.png | 1 - .../00008.png | Bin 382 -> 0 bytes .../nanox_transfer_palm_network/00004.png | Bin 460 -> 0 bytes .../nanox_transfer_palm_network/00006.png | Bin 365 -> 0 bytes .../nanox_transfer_palm_network/00007.png | 1 - .../nanox_transfer_palm_network/00008.png | Bin 382 -> 0 bytes tests/zemu/src/chainid.test.js | 47 ------------------ 63 files changed, 33 insertions(+), 50 deletions(-) rename tests/{zemu/snapshots/nanos_transfer_112233445566_network => ragger/snapshots/nanos/test_legacy_chainid1}/00000.png (100%) rename tests/{zemu/snapshots/nanos_transfer_112233445566_network => ragger/snapshots/nanos/test_legacy_chainid1}/00001.png (100%) rename tests/{zemu/snapshots/nanos_transfer_112233445566_network => ragger/snapshots/nanos/test_legacy_chainid1}/00002.png (100%) rename tests/{zemu/snapshots/nanos_transfer_112233445566_network => ragger/snapshots/nanos/test_legacy_chainid1}/00003.png (100%) rename tests/{zemu/snapshots/nanos_transfer_112233445566_network => ragger/snapshots/nanos/test_legacy_chainid1}/00004.png (100%) rename tests/{zemu/snapshots/nanos_transfer_112233445566_network => ragger/snapshots/nanos/test_legacy_chainid1}/00005.png (100%) rename tests/{zemu/snapshots/nanos_transfer_112233445566_network => ragger/snapshots/nanos/test_legacy_chainid1}/00006.png (100%) rename tests/{zemu/snapshots/nanos_transfer_112233445566_network => ragger/snapshots/nanos/test_legacy_chainid1}/00007.png (100%) rename tests/{zemu/snapshots/nanos_transfer_112233445566_network => ragger/snapshots/nanos/test_legacy_chainid1}/00008.png (100%) rename tests/{zemu/snapshots/nanos_transfer_112233445566_network => ragger/snapshots/nanos/test_legacy_chainid1}/00009.png (100%) rename tests/{zemu/snapshots/nanos_transfer_112233445566_network/00012.png => ragger/snapshots/nanos/test_legacy_chainid1/00010.png} (100%) rename tests/{zemu/snapshots/nanos_transfer_palm_network => ragger/snapshots/nanos/test_legacy_chainid2}/00000.png (100%) rename tests/{zemu/snapshots/nanos_transfer_palm_network => ragger/snapshots/nanos/test_legacy_chainid2}/00001.png (100%) rename tests/{zemu/snapshots/nanos_transfer_palm_network => ragger/snapshots/nanos/test_legacy_chainid2}/00002.png (100%) rename tests/{zemu/snapshots/nanos_transfer_palm_network => ragger/snapshots/nanos/test_legacy_chainid2}/00003.png (100%) rename tests/{zemu/snapshots/nanos_transfer_palm_network => ragger/snapshots/nanos/test_legacy_chainid2}/00004.png (100%) rename tests/{zemu/snapshots/nanos_transfer_palm_network => ragger/snapshots/nanos/test_legacy_chainid2}/00005.png (100%) rename tests/{zemu/snapshots/nanos_transfer_palm_network => ragger/snapshots/nanos/test_legacy_chainid2}/00006.png (100%) rename tests/{zemu/snapshots/nanos_transfer_palm_network => ragger/snapshots/nanos/test_legacy_chainid2}/00007.png (100%) rename tests/{zemu/snapshots/nanos_transfer_palm_network => ragger/snapshots/nanos/test_legacy_chainid2}/00008.png (100%) rename tests/{zemu/snapshots/nanos_transfer_palm_network => ragger/snapshots/nanos/test_legacy_chainid2}/00009.png (100%) rename tests/{zemu/snapshots/nanos_transfer_palm_network/00012.png => ragger/snapshots/nanos/test_legacy_chainid2/00010.png} (100%) create mode 120000 tests/ragger/snapshots/nanosp/test_legacy_chainid1 create mode 120000 tests/ragger/snapshots/nanosp/test_legacy_chainid2 rename tests/{zemu/snapshots/nanox_transfer_112233445566_network => ragger/snapshots/nanox/test_legacy_chainid1}/00000.png (100%) create mode 100644 tests/ragger/snapshots/nanox/test_legacy_chainid1/00001.png rename tests/{zemu/snapshots/nanox_transfer_112233445566_network => ragger/snapshots/nanox/test_legacy_chainid1}/00002.png (100%) rename tests/{zemu/snapshots/nanox_transfer_112233445566_network => ragger/snapshots/nanox/test_legacy_chainid1}/00003.png (100%) create mode 100644 tests/ragger/snapshots/nanox/test_legacy_chainid1/00004.png rename tests/{zemu/snapshots/nanox_transfer_112233445566_network => ragger/snapshots/nanox/test_legacy_chainid1}/00005.png (100%) create mode 100644 tests/ragger/snapshots/nanox/test_legacy_chainid1/00006.png rename tests/{zemu/snapshots/nanox_transfer_palm_network => ragger/snapshots/nanox/test_legacy_chainid2}/00000.png (100%) rename tests/{zemu/snapshots/nanox_transfer_palm_network => ragger/snapshots/nanox/test_legacy_chainid2}/00001.png (100%) rename tests/{zemu/snapshots/nanox_transfer_palm_network => ragger/snapshots/nanox/test_legacy_chainid2}/00002.png (100%) rename tests/{zemu/snapshots/nanox_transfer_palm_network => ragger/snapshots/nanox/test_legacy_chainid2}/00003.png (100%) create mode 100644 tests/ragger/snapshots/nanox/test_legacy_chainid2/00004.png rename tests/{zemu/snapshots/nanox_transfer_palm_network => ragger/snapshots/nanox/test_legacy_chainid2}/00005.png (100%) create mode 100644 tests/ragger/snapshots/nanox/test_legacy_chainid2/00006.png create mode 100644 tests/ragger/snapshots/stax/test_legacy_chainid1/00000.png create mode 100644 tests/ragger/snapshots/stax/test_legacy_chainid1/00001.png create mode 100644 tests/ragger/snapshots/stax/test_legacy_chainid1/00002.png create mode 100644 tests/ragger/snapshots/stax/test_legacy_chainid1/00003.png create mode 100644 tests/ragger/snapshots/stax/test_legacy_chainid1/00004.png create mode 100644 tests/ragger/snapshots/stax/test_legacy_chainid2/00000.png create mode 100644 tests/ragger/snapshots/stax/test_legacy_chainid2/00001.png create mode 100644 tests/ragger/snapshots/stax/test_legacy_chainid2/00002.png create mode 100644 tests/ragger/snapshots/stax/test_legacy_chainid2/00003.png create mode 100644 tests/ragger/snapshots/stax/test_legacy_chainid2/00004.png delete mode 100644 tests/zemu/snapshots/nanos_transfer_112233445566_network/00010.png delete mode 100644 tests/zemu/snapshots/nanos_transfer_112233445566_network/00011.png delete mode 100644 tests/zemu/snapshots/nanos_transfer_palm_network/00010.png delete mode 120000 tests/zemu/snapshots/nanos_transfer_palm_network/00011.png delete mode 100644 tests/zemu/snapshots/nanox_transfer_112233445566_network/00001.png delete mode 100644 tests/zemu/snapshots/nanox_transfer_112233445566_network/00004.png delete mode 100644 tests/zemu/snapshots/nanox_transfer_112233445566_network/00006.png delete mode 120000 tests/zemu/snapshots/nanox_transfer_112233445566_network/00007.png delete mode 100644 tests/zemu/snapshots/nanox_transfer_112233445566_network/00008.png delete mode 100644 tests/zemu/snapshots/nanox_transfer_palm_network/00004.png delete mode 100644 tests/zemu/snapshots/nanox_transfer_palm_network/00006.png delete mode 120000 tests/zemu/snapshots/nanox_transfer_palm_network/00007.png delete mode 100644 tests/zemu/snapshots/nanox_transfer_palm_network/00008.png delete mode 100644 tests/zemu/src/chainid.test.js diff --git a/tests/zemu/snapshots/nanos_transfer_112233445566_network/00000.png b/tests/ragger/snapshots/nanos/test_legacy_chainid1/00000.png similarity index 100% rename from tests/zemu/snapshots/nanos_transfer_112233445566_network/00000.png rename to tests/ragger/snapshots/nanos/test_legacy_chainid1/00000.png diff --git a/tests/zemu/snapshots/nanos_transfer_112233445566_network/00001.png b/tests/ragger/snapshots/nanos/test_legacy_chainid1/00001.png similarity index 100% rename from tests/zemu/snapshots/nanos_transfer_112233445566_network/00001.png rename to tests/ragger/snapshots/nanos/test_legacy_chainid1/00001.png diff --git a/tests/zemu/snapshots/nanos_transfer_112233445566_network/00002.png b/tests/ragger/snapshots/nanos/test_legacy_chainid1/00002.png similarity index 100% rename from tests/zemu/snapshots/nanos_transfer_112233445566_network/00002.png rename to tests/ragger/snapshots/nanos/test_legacy_chainid1/00002.png diff --git a/tests/zemu/snapshots/nanos_transfer_112233445566_network/00003.png b/tests/ragger/snapshots/nanos/test_legacy_chainid1/00003.png similarity index 100% rename from tests/zemu/snapshots/nanos_transfer_112233445566_network/00003.png rename to tests/ragger/snapshots/nanos/test_legacy_chainid1/00003.png diff --git a/tests/zemu/snapshots/nanos_transfer_112233445566_network/00004.png b/tests/ragger/snapshots/nanos/test_legacy_chainid1/00004.png similarity index 100% rename from tests/zemu/snapshots/nanos_transfer_112233445566_network/00004.png rename to tests/ragger/snapshots/nanos/test_legacy_chainid1/00004.png diff --git a/tests/zemu/snapshots/nanos_transfer_112233445566_network/00005.png b/tests/ragger/snapshots/nanos/test_legacy_chainid1/00005.png similarity index 100% rename from tests/zemu/snapshots/nanos_transfer_112233445566_network/00005.png rename to tests/ragger/snapshots/nanos/test_legacy_chainid1/00005.png diff --git a/tests/zemu/snapshots/nanos_transfer_112233445566_network/00006.png b/tests/ragger/snapshots/nanos/test_legacy_chainid1/00006.png similarity index 100% rename from tests/zemu/snapshots/nanos_transfer_112233445566_network/00006.png rename to tests/ragger/snapshots/nanos/test_legacy_chainid1/00006.png diff --git a/tests/zemu/snapshots/nanos_transfer_112233445566_network/00007.png b/tests/ragger/snapshots/nanos/test_legacy_chainid1/00007.png similarity index 100% rename from tests/zemu/snapshots/nanos_transfer_112233445566_network/00007.png rename to tests/ragger/snapshots/nanos/test_legacy_chainid1/00007.png diff --git a/tests/zemu/snapshots/nanos_transfer_112233445566_network/00008.png b/tests/ragger/snapshots/nanos/test_legacy_chainid1/00008.png similarity index 100% rename from tests/zemu/snapshots/nanos_transfer_112233445566_network/00008.png rename to tests/ragger/snapshots/nanos/test_legacy_chainid1/00008.png diff --git a/tests/zemu/snapshots/nanos_transfer_112233445566_network/00009.png b/tests/ragger/snapshots/nanos/test_legacy_chainid1/00009.png similarity index 100% rename from tests/zemu/snapshots/nanos_transfer_112233445566_network/00009.png rename to tests/ragger/snapshots/nanos/test_legacy_chainid1/00009.png diff --git a/tests/zemu/snapshots/nanos_transfer_112233445566_network/00012.png b/tests/ragger/snapshots/nanos/test_legacy_chainid1/00010.png similarity index 100% rename from tests/zemu/snapshots/nanos_transfer_112233445566_network/00012.png rename to tests/ragger/snapshots/nanos/test_legacy_chainid1/00010.png diff --git a/tests/zemu/snapshots/nanos_transfer_palm_network/00000.png b/tests/ragger/snapshots/nanos/test_legacy_chainid2/00000.png similarity index 100% rename from tests/zemu/snapshots/nanos_transfer_palm_network/00000.png rename to tests/ragger/snapshots/nanos/test_legacy_chainid2/00000.png diff --git a/tests/zemu/snapshots/nanos_transfer_palm_network/00001.png b/tests/ragger/snapshots/nanos/test_legacy_chainid2/00001.png similarity index 100% rename from tests/zemu/snapshots/nanos_transfer_palm_network/00001.png rename to tests/ragger/snapshots/nanos/test_legacy_chainid2/00001.png diff --git a/tests/zemu/snapshots/nanos_transfer_palm_network/00002.png b/tests/ragger/snapshots/nanos/test_legacy_chainid2/00002.png similarity index 100% rename from tests/zemu/snapshots/nanos_transfer_palm_network/00002.png rename to tests/ragger/snapshots/nanos/test_legacy_chainid2/00002.png diff --git a/tests/zemu/snapshots/nanos_transfer_palm_network/00003.png b/tests/ragger/snapshots/nanos/test_legacy_chainid2/00003.png similarity index 100% rename from tests/zemu/snapshots/nanos_transfer_palm_network/00003.png rename to tests/ragger/snapshots/nanos/test_legacy_chainid2/00003.png diff --git a/tests/zemu/snapshots/nanos_transfer_palm_network/00004.png b/tests/ragger/snapshots/nanos/test_legacy_chainid2/00004.png similarity index 100% rename from tests/zemu/snapshots/nanos_transfer_palm_network/00004.png rename to tests/ragger/snapshots/nanos/test_legacy_chainid2/00004.png diff --git a/tests/zemu/snapshots/nanos_transfer_palm_network/00005.png b/tests/ragger/snapshots/nanos/test_legacy_chainid2/00005.png similarity index 100% rename from tests/zemu/snapshots/nanos_transfer_palm_network/00005.png rename to tests/ragger/snapshots/nanos/test_legacy_chainid2/00005.png diff --git a/tests/zemu/snapshots/nanos_transfer_palm_network/00006.png b/tests/ragger/snapshots/nanos/test_legacy_chainid2/00006.png similarity index 100% rename from tests/zemu/snapshots/nanos_transfer_palm_network/00006.png rename to tests/ragger/snapshots/nanos/test_legacy_chainid2/00006.png diff --git a/tests/zemu/snapshots/nanos_transfer_palm_network/00007.png b/tests/ragger/snapshots/nanos/test_legacy_chainid2/00007.png similarity index 100% rename from tests/zemu/snapshots/nanos_transfer_palm_network/00007.png rename to tests/ragger/snapshots/nanos/test_legacy_chainid2/00007.png diff --git a/tests/zemu/snapshots/nanos_transfer_palm_network/00008.png b/tests/ragger/snapshots/nanos/test_legacy_chainid2/00008.png similarity index 100% rename from tests/zemu/snapshots/nanos_transfer_palm_network/00008.png rename to tests/ragger/snapshots/nanos/test_legacy_chainid2/00008.png diff --git a/tests/zemu/snapshots/nanos_transfer_palm_network/00009.png b/tests/ragger/snapshots/nanos/test_legacy_chainid2/00009.png similarity index 100% rename from tests/zemu/snapshots/nanos_transfer_palm_network/00009.png rename to tests/ragger/snapshots/nanos/test_legacy_chainid2/00009.png diff --git a/tests/zemu/snapshots/nanos_transfer_palm_network/00012.png b/tests/ragger/snapshots/nanos/test_legacy_chainid2/00010.png similarity index 100% rename from tests/zemu/snapshots/nanos_transfer_palm_network/00012.png rename to tests/ragger/snapshots/nanos/test_legacy_chainid2/00010.png diff --git a/tests/ragger/snapshots/nanosp/test_legacy_chainid1 b/tests/ragger/snapshots/nanosp/test_legacy_chainid1 new file mode 120000 index 0000000..39f93b0 --- /dev/null +++ b/tests/ragger/snapshots/nanosp/test_legacy_chainid1 @@ -0,0 +1 @@ +../nanox/test_legacy_chainid1 \ No newline at end of file diff --git a/tests/ragger/snapshots/nanosp/test_legacy_chainid2 b/tests/ragger/snapshots/nanosp/test_legacy_chainid2 new file mode 120000 index 0000000..c7a3a54 --- /dev/null +++ b/tests/ragger/snapshots/nanosp/test_legacy_chainid2 @@ -0,0 +1 @@ +../nanox/test_legacy_chainid2 \ No newline at end of file diff --git a/tests/zemu/snapshots/nanox_transfer_112233445566_network/00000.png b/tests/ragger/snapshots/nanox/test_legacy_chainid1/00000.png similarity index 100% rename from tests/zemu/snapshots/nanox_transfer_112233445566_network/00000.png rename to tests/ragger/snapshots/nanox/test_legacy_chainid1/00000.png diff --git a/tests/ragger/snapshots/nanox/test_legacy_chainid1/00001.png b/tests/ragger/snapshots/nanox/test_legacy_chainid1/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..aee153eec34548f7d2480b7cb3411e214b367baa GIT binary patch literal 540 zcmV+%0^|LOP)73_!V^yA$`nB=*t|XB>t=2>1xtbG}qwA(24S7yk(Qn~Kln9c%otY_qh{0mK=Jj8amuVjt1duZS5?YPY{AI+TrBhQF~C*p_o^PwP@9WUDw6@SPae|Vi$zkhVJt^O`EX1s<5*{e z2LJ#7fStv1L&FV+MHs{qp`0HQvz(dbJK-)Y(N?&fwNkQPNN=baE=KtSav@%I3=M1y e0000002aP5S=D;0Gkew5NNldBtebbIo`1^r=ASC|&`gUK24`a9T;(9F zPt|+4Zj#Bqn?|b1zB9%k5>+S?_u)vS7XSbN000000000000000SmpU4`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/zemu/snapshots/nanox_transfer_palm_network/00000.png b/tests/ragger/snapshots/nanox/test_legacy_chainid2/00000.png similarity index 100% rename from tests/zemu/snapshots/nanox_transfer_palm_network/00000.png rename to tests/ragger/snapshots/nanox/test_legacy_chainid2/00000.png diff --git a/tests/zemu/snapshots/nanox_transfer_palm_network/00001.png b/tests/ragger/snapshots/nanox/test_legacy_chainid2/00001.png similarity index 100% rename from tests/zemu/snapshots/nanox_transfer_palm_network/00001.png rename to tests/ragger/snapshots/nanox/test_legacy_chainid2/00001.png diff --git a/tests/zemu/snapshots/nanox_transfer_palm_network/00002.png b/tests/ragger/snapshots/nanox/test_legacy_chainid2/00002.png similarity index 100% rename from tests/zemu/snapshots/nanox_transfer_palm_network/00002.png rename to tests/ragger/snapshots/nanox/test_legacy_chainid2/00002.png diff --git a/tests/zemu/snapshots/nanox_transfer_palm_network/00003.png b/tests/ragger/snapshots/nanox/test_legacy_chainid2/00003.png similarity index 100% rename from tests/zemu/snapshots/nanox_transfer_palm_network/00003.png rename to tests/ragger/snapshots/nanox/test_legacy_chainid2/00003.png diff --git a/tests/ragger/snapshots/nanox/test_legacy_chainid2/00004.png b/tests/ragger/snapshots/nanox/test_legacy_chainid2/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..7c87ee5652d3fec1c7410ea31582e28f2b0da7ce GIT binary patch literal 460 zcmV;-0WYzV(uqBe z-ty?ZXl-}e*tPZq5iO0=*`SuHtFKedt$%nuiqThdi(dXWj_P_Y^?Yb|>9FNZD;~!E zl(hz6?y-!ZYvvtY8h;dFmelejV9hdm*s=UF7~B8x1JHOkcK+P|WY}C0_;kSOFwR_H zEMo4YlmjrlHzHtJg{~b#>M0^hTzRRdC0J!s|BJKzti@?XSn%=uKGh_XeK$s`$-Xnj zU?!^2Ob1D33~ohw0RR9100000000000001h+x!CU4`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_legacy_chainid1/00000.png b/tests/ragger/snapshots/stax/test_legacy_chainid1/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..74fa840cc9ada8dc029bdf896ac9ddc36a6ce08a GIT binary patch literal 7724 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 bszk;ejCk3bkO6e-1*_|M!0Z#k+qo literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/test_legacy_chainid1/00003.png b/tests/ragger/snapshots/stax/test_legacy_chainid1/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..aed7d333537a2282e5f5228444c1eefad03986df GIT binary patch literal 8665 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 S1b*3IGcmHb)^OD$`F{XjnEKlQ literal 0 HcmV?d00001 diff --git a/tests/ragger/snapshots/stax/test_legacy_chainid1/00004.png b/tests/ragger/snapshots/stax/test_legacy_chainid1/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..a21279c8a0a89933b09833df3871d1ab2b36adf5 GIT binary patch literal 6108 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