diff --git a/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_0/00000.png b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_0/00000.png new file mode 100644 index 00000000..1ae309e6 Binary files /dev/null and b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_0/00000.png differ diff --git a/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_0/00001.png b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_0/00001.png new file mode 100644 index 00000000..fd645cda Binary files /dev/null and b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_0/00001.png differ diff --git a/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_0/00002.png b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_0/00002.png new file mode 100644 index 00000000..66c411c2 Binary files /dev/null and b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_0/00002.png differ diff --git a/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_1/00000.png b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_1/00000.png new file mode 100644 index 00000000..daa3e966 Binary files /dev/null and b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_1/00000.png differ diff --git a/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_1/00001.png b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_1/00001.png new file mode 100644 index 00000000..26225e2b Binary files /dev/null and b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_1/00001.png differ diff --git a/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_1/00002.png b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_1/00002.png new file mode 100644 index 00000000..180800cb Binary files /dev/null and b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_1/00002.png differ diff --git a/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_1/00003.png b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_1/00003.png new file mode 100644 index 00000000..66c411c2 Binary files /dev/null and b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_1/00003.png differ diff --git a/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_2/00000.png b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_2/00000.png new file mode 100644 index 00000000..f6e9b1ff Binary files /dev/null and b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_2/00000.png differ diff --git a/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_2/00001.png b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_2/00001.png new file mode 100644 index 00000000..37021a0b Binary files /dev/null and b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_2/00001.png differ diff --git a/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_2/00002.png b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_2/00002.png new file mode 100644 index 00000000..662dfa5f Binary files /dev/null and b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_2/00002.png differ diff --git a/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_2/00003.png b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_2/00003.png new file mode 100644 index 00000000..66c411c2 Binary files /dev/null and b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_2/00003.png differ diff --git a/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_3/00000.png b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_3/00000.png new file mode 100644 index 00000000..8d84cc70 Binary files /dev/null and b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_3/00000.png differ diff --git a/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_3/00001.png b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_3/00001.png new file mode 100644 index 00000000..9f265139 Binary files /dev/null and b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_3/00001.png differ diff --git a/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_3/00002.png b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_3/00002.png new file mode 100644 index 00000000..346ae5eb Binary files /dev/null and b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_3/00002.png differ diff --git a/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_3/00003.png b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_3/00003.png new file mode 100644 index 00000000..e845325b Binary files /dev/null and b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_3/00003.png differ diff --git a/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_3/00004.png b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_3/00004.png new file mode 100644 index 00000000..b5b0f1e3 Binary files /dev/null and b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_3/00004.png differ diff --git a/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_3/00005.png b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_3/00005.png new file mode 100644 index 00000000..cc968dc8 Binary files /dev/null and b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_3/00005.png differ diff --git a/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_3/00006.png b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_3/00006.png new file mode 100644 index 00000000..1c9156c3 Binary files /dev/null and b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_3/00006.png differ diff --git a/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_3/00007.png b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_3/00007.png new file mode 100644 index 00000000..ce795f34 Binary files /dev/null and b/tests/ragger/snapshots/nanos/test_sign_parameter_selector/step_3/00007.png differ diff --git a/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/step_0/00000.png b/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/step_0/00000.png new file mode 100644 index 00000000..83f7a509 Binary files /dev/null and b/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/step_0/00000.png differ diff --git a/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/step_0/00001.png b/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/step_0/00001.png new file mode 100644 index 00000000..cfc623a9 Binary files /dev/null and b/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/step_0/00001.png differ diff --git a/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/step_0/00002.png b/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/step_0/00002.png new file mode 100644 index 00000000..53ae6519 Binary files /dev/null and b/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/step_0/00002.png differ diff --git a/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/step_1/00000.png b/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/step_1/00000.png new file mode 100644 index 00000000..a3db1666 Binary files /dev/null and b/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/step_1/00000.png differ diff --git a/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/step_1/00001.png b/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/step_1/00001.png new file mode 100644 index 00000000..1ecbdddd Binary files /dev/null and b/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/step_1/00001.png differ diff --git a/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/step_1/00002.png b/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/step_1/00002.png new file mode 100644 index 00000000..53ae6519 Binary files /dev/null and b/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/step_1/00002.png differ diff --git a/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/step_2/00000.png b/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/step_2/00000.png new file mode 100644 index 00000000..ecb060ce Binary files /dev/null and b/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/step_2/00000.png differ diff --git a/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/step_2/00001.png b/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/step_2/00001.png new file mode 100644 index 00000000..b05bbb48 Binary files /dev/null and b/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/step_2/00001.png differ diff --git a/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/step_2/00002.png b/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/step_2/00002.png new file mode 100644 index 00000000..53ae6519 Binary files /dev/null and b/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/step_2/00002.png differ diff --git a/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/step_3/00000.png b/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/step_3/00000.png new file mode 100644 index 00000000..487ea10f Binary files /dev/null and b/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/step_3/00000.png differ diff --git a/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/step_3/00001.png b/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/step_3/00001.png new file mode 100644 index 00000000..cdcc19d0 Binary files /dev/null and b/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/step_3/00001.png differ diff --git a/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/step_3/00002.png b/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/step_3/00002.png new file mode 100644 index 00000000..c07ea962 Binary files /dev/null and b/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/step_3/00002.png differ diff --git a/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/step_3/00003.png b/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/step_3/00003.png new file mode 100644 index 00000000..0fd18b25 Binary files /dev/null and b/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/step_3/00003.png differ diff --git a/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/step_3/00004.png b/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/step_3/00004.png new file mode 100644 index 00000000..570ce28d Binary files /dev/null and b/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/step_3/00004.png differ diff --git a/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/step_3/00005.png b/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/step_3/00005.png new file mode 100644 index 00000000..65788722 Binary files /dev/null and b/tests/ragger/snapshots/nanosp/test_sign_parameter_selector/step_3/00005.png differ diff --git a/tests/ragger/snapshots/nanox/test_sign_parameter_selector/step_0/00000.png b/tests/ragger/snapshots/nanox/test_sign_parameter_selector/step_0/00000.png new file mode 100644 index 00000000..83f7a509 Binary files /dev/null and b/tests/ragger/snapshots/nanox/test_sign_parameter_selector/step_0/00000.png differ diff --git a/tests/ragger/snapshots/nanox/test_sign_parameter_selector/step_0/00001.png b/tests/ragger/snapshots/nanox/test_sign_parameter_selector/step_0/00001.png new file mode 100644 index 00000000..cfc623a9 Binary files /dev/null and b/tests/ragger/snapshots/nanox/test_sign_parameter_selector/step_0/00001.png differ diff --git a/tests/ragger/snapshots/nanox/test_sign_parameter_selector/step_0/00002.png b/tests/ragger/snapshots/nanox/test_sign_parameter_selector/step_0/00002.png new file mode 100644 index 00000000..53ae6519 Binary files /dev/null and b/tests/ragger/snapshots/nanox/test_sign_parameter_selector/step_0/00002.png differ diff --git a/tests/ragger/snapshots/nanox/test_sign_parameter_selector/step_1/00000.png b/tests/ragger/snapshots/nanox/test_sign_parameter_selector/step_1/00000.png new file mode 100644 index 00000000..a3db1666 Binary files /dev/null and b/tests/ragger/snapshots/nanox/test_sign_parameter_selector/step_1/00000.png differ diff --git a/tests/ragger/snapshots/nanox/test_sign_parameter_selector/step_1/00001.png b/tests/ragger/snapshots/nanox/test_sign_parameter_selector/step_1/00001.png new file mode 100644 index 00000000..1ecbdddd Binary files /dev/null and b/tests/ragger/snapshots/nanox/test_sign_parameter_selector/step_1/00001.png differ diff --git a/tests/ragger/snapshots/nanox/test_sign_parameter_selector/step_1/00002.png b/tests/ragger/snapshots/nanox/test_sign_parameter_selector/step_1/00002.png new file mode 100644 index 00000000..53ae6519 Binary files /dev/null and b/tests/ragger/snapshots/nanox/test_sign_parameter_selector/step_1/00002.png differ diff --git a/tests/ragger/snapshots/nanox/test_sign_parameter_selector/step_2/00000.png b/tests/ragger/snapshots/nanox/test_sign_parameter_selector/step_2/00000.png new file mode 100644 index 00000000..ecb060ce Binary files /dev/null and b/tests/ragger/snapshots/nanox/test_sign_parameter_selector/step_2/00000.png differ diff --git a/tests/ragger/snapshots/nanox/test_sign_parameter_selector/step_2/00001.png b/tests/ragger/snapshots/nanox/test_sign_parameter_selector/step_2/00001.png new file mode 100644 index 00000000..b05bbb48 Binary files /dev/null and b/tests/ragger/snapshots/nanox/test_sign_parameter_selector/step_2/00001.png differ diff --git a/tests/ragger/snapshots/nanox/test_sign_parameter_selector/step_2/00002.png b/tests/ragger/snapshots/nanox/test_sign_parameter_selector/step_2/00002.png new file mode 100644 index 00000000..53ae6519 Binary files /dev/null and b/tests/ragger/snapshots/nanox/test_sign_parameter_selector/step_2/00002.png differ diff --git a/tests/ragger/snapshots/nanox/test_sign_parameter_selector/step_3/00000.png b/tests/ragger/snapshots/nanox/test_sign_parameter_selector/step_3/00000.png new file mode 100644 index 00000000..487ea10f Binary files /dev/null and b/tests/ragger/snapshots/nanox/test_sign_parameter_selector/step_3/00000.png differ diff --git a/tests/ragger/snapshots/nanox/test_sign_parameter_selector/step_3/00001.png b/tests/ragger/snapshots/nanox/test_sign_parameter_selector/step_3/00001.png new file mode 100644 index 00000000..cdcc19d0 Binary files /dev/null and b/tests/ragger/snapshots/nanox/test_sign_parameter_selector/step_3/00001.png differ diff --git a/tests/ragger/snapshots/nanox/test_sign_parameter_selector/step_3/00002.png b/tests/ragger/snapshots/nanox/test_sign_parameter_selector/step_3/00002.png new file mode 100644 index 00000000..c07ea962 Binary files /dev/null and b/tests/ragger/snapshots/nanox/test_sign_parameter_selector/step_3/00002.png differ diff --git a/tests/ragger/snapshots/nanox/test_sign_parameter_selector/step_3/00003.png b/tests/ragger/snapshots/nanox/test_sign_parameter_selector/step_3/00003.png new file mode 100644 index 00000000..0fd18b25 Binary files /dev/null and b/tests/ragger/snapshots/nanox/test_sign_parameter_selector/step_3/00003.png differ diff --git a/tests/ragger/snapshots/nanox/test_sign_parameter_selector/step_3/00004.png b/tests/ragger/snapshots/nanox/test_sign_parameter_selector/step_3/00004.png new file mode 100644 index 00000000..570ce28d Binary files /dev/null and b/tests/ragger/snapshots/nanox/test_sign_parameter_selector/step_3/00004.png differ diff --git a/tests/ragger/snapshots/nanox/test_sign_parameter_selector/step_3/00005.png b/tests/ragger/snapshots/nanox/test_sign_parameter_selector/step_3/00005.png new file mode 100644 index 00000000..65788722 Binary files /dev/null and b/tests/ragger/snapshots/nanox/test_sign_parameter_selector/step_3/00005.png differ diff --git a/tests/ragger/snapshots/stax/test_sign_parameter_selector/step_0/00000.png b/tests/ragger/snapshots/stax/test_sign_parameter_selector/step_0/00000.png new file mode 100644 index 00000000..bd589a9d Binary files /dev/null and b/tests/ragger/snapshots/stax/test_sign_parameter_selector/step_0/00000.png differ diff --git a/tests/ragger/snapshots/stax/test_sign_parameter_selector/step_0/00001.png b/tests/ragger/snapshots/stax/test_sign_parameter_selector/step_0/00001.png new file mode 100644 index 00000000..c4f8fc06 Binary files /dev/null and b/tests/ragger/snapshots/stax/test_sign_parameter_selector/step_0/00001.png differ diff --git a/tests/ragger/snapshots/stax/test_sign_parameter_selector/step_0/00002.png b/tests/ragger/snapshots/stax/test_sign_parameter_selector/step_0/00002.png new file mode 100644 index 00000000..dfccf362 Binary files /dev/null and b/tests/ragger/snapshots/stax/test_sign_parameter_selector/step_0/00002.png differ diff --git a/tests/ragger/snapshots/stax/test_sign_parameter_selector/step_1/00000.png b/tests/ragger/snapshots/stax/test_sign_parameter_selector/step_1/00000.png new file mode 100644 index 00000000..22e1f93a Binary files /dev/null and b/tests/ragger/snapshots/stax/test_sign_parameter_selector/step_1/00000.png differ diff --git a/tests/ragger/snapshots/stax/test_sign_parameter_selector/step_1/00001.png b/tests/ragger/snapshots/stax/test_sign_parameter_selector/step_1/00001.png new file mode 100644 index 00000000..197a5162 Binary files /dev/null and b/tests/ragger/snapshots/stax/test_sign_parameter_selector/step_1/00001.png differ diff --git a/tests/ragger/snapshots/stax/test_sign_parameter_selector/step_1/00002.png b/tests/ragger/snapshots/stax/test_sign_parameter_selector/step_1/00002.png new file mode 100644 index 00000000..98b5a0bd Binary files /dev/null and b/tests/ragger/snapshots/stax/test_sign_parameter_selector/step_1/00002.png differ diff --git a/tests/ragger/snapshots/stax/test_sign_parameter_selector/step_2/00000.png b/tests/ragger/snapshots/stax/test_sign_parameter_selector/step_2/00000.png new file mode 100644 index 00000000..22e1f93a Binary files /dev/null and b/tests/ragger/snapshots/stax/test_sign_parameter_selector/step_2/00000.png differ diff --git a/tests/ragger/snapshots/stax/test_sign_parameter_selector/step_2/00001.png b/tests/ragger/snapshots/stax/test_sign_parameter_selector/step_2/00001.png new file mode 100644 index 00000000..b549dd9a Binary files /dev/null and b/tests/ragger/snapshots/stax/test_sign_parameter_selector/step_2/00001.png differ diff --git a/tests/ragger/snapshots/stax/test_sign_parameter_selector/step_2/00002.png b/tests/ragger/snapshots/stax/test_sign_parameter_selector/step_2/00002.png new file mode 100644 index 00000000..98b5a0bd Binary files /dev/null and b/tests/ragger/snapshots/stax/test_sign_parameter_selector/step_2/00002.png differ diff --git a/tests/ragger/snapshots/stax/test_sign_parameter_selector/step_3/00000.png b/tests/ragger/snapshots/stax/test_sign_parameter_selector/step_3/00000.png new file mode 100644 index 00000000..f1b35e47 Binary files /dev/null and b/tests/ragger/snapshots/stax/test_sign_parameter_selector/step_3/00000.png differ diff --git a/tests/ragger/snapshots/stax/test_sign_parameter_selector/step_3/00001.png b/tests/ragger/snapshots/stax/test_sign_parameter_selector/step_3/00001.png new file mode 100644 index 00000000..51bb2326 Binary files /dev/null and b/tests/ragger/snapshots/stax/test_sign_parameter_selector/step_3/00001.png differ diff --git a/tests/ragger/snapshots/stax/test_sign_parameter_selector/step_3/00002.png b/tests/ragger/snapshots/stax/test_sign_parameter_selector/step_3/00002.png new file mode 100644 index 00000000..687a019c Binary files /dev/null and b/tests/ragger/snapshots/stax/test_sign_parameter_selector/step_3/00002.png differ diff --git a/tests/ragger/snapshots/stax/test_sign_parameter_selector/step_3/00003.png b/tests/ragger/snapshots/stax/test_sign_parameter_selector/step_3/00003.png new file mode 100644 index 00000000..2ba6d27d Binary files /dev/null and b/tests/ragger/snapshots/stax/test_sign_parameter_selector/step_3/00003.png differ diff --git a/tests/ragger/snapshots/stax/test_sign_parameter_selector/step_3/00004.png b/tests/ragger/snapshots/stax/test_sign_parameter_selector/step_3/00004.png new file mode 100644 index 00000000..b1ff1b3a Binary files /dev/null and b/tests/ragger/snapshots/stax/test_sign_parameter_selector/step_3/00004.png differ diff --git a/tests/ragger/test_blind_sign.py b/tests/ragger/test_blind_sign.py index 29bbd0c9..47148391 100644 --- a/tests/ragger/test_blind_sign.py +++ b/tests/ragger/test_blind_sign.py @@ -4,15 +4,21 @@ import pytest from web3 import Web3 from client.client import EthAppClient, StatusWord +from client.settings import SettingID, settings_toggle +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 ragger.navigator.navigation_scenario import NavigateWithScenario from ragger.error import ExceptionRAPDU from constants import ABIS_FOLDER +BIP32_PATH = "m/44'/60'/0'/0/0" + # Token approval, would require loading the "internal plugin" & # providing the token metadata from the CAL def test_blind_sign(firmware: Firmware, @@ -42,7 +48,7 @@ def test_blind_sign(firmware: Firmware, "chainId": 1 } with pytest.raises(ExceptionRAPDU) as e: - with app_client.sign("m/44'/60'/0'/0/0", tx_params): + with app_client.sign(BIP32_PATH, tx_params): pass assert e.value.status == StatusWord.INVALID_DATA @@ -56,3 +62,77 @@ def test_blind_sign(firmware: Firmware, navigator.navigate_and_compare(default_screenshot_path, "blind-signed_approval", moves) + + +# Token approval, would require loading the "internal plugin" & +# providing the token metadata from the CAL +def test_sign_parameter_selector(firmware: Firmware, + backend: BackendInterface, + navigator: Navigator, + scenario_navigator: NavigateWithScenario, + test_name: str, + default_screenshot_path: Path): + 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 open(f"{ABIS_FOLDER}/erc20.json", encoding="utf-8") as file: + abi = json.load(file) + + contract_name = "approve" + count = 0 + for elt in abi: + if elt["name"] == contract_name: + count = len(elt["inputs"]) + break + assert count == 2, "Invalid inputs number" + tx_params = { + "nonce": 235, + "maxFeePerGas": Web3.to_wei(100, "gwei"), + "maxPriorityFeePerGas": Web3.to_wei(10, "gwei"), + "gas": 44001, + # Maker: Dai Stablecoin + "to": bytes.fromhex("6b175474e89094c44da98b954eedeac495271d0f"), + "data": Web3().eth.contract(abi=abi).encodeABI(contract_name, [ + # Uniswap Protocol: Permit2 + bytes.fromhex("000000000022d473030f116ddee9f6b43ac78ba3"), + Web3.to_wei("2", "ether") + ]), + "chainId": 1 + } + + settings_toggle(firmware, navigator, [SettingID.DEBUG_DATA, SettingID.BLIND_SIGNING]) + + with app_client.sign(BIP32_PATH, tx_params): + if firmware.device.startswith("nano"): + end_text = "Approve" + nav_inst = NavInsID.RIGHT_CLICK + valid_instr = [NavInsID.BOTH_CLICK] + else: + end_text = "Confirm" + nav_inst = NavInsID.USE_CASE_REVIEW_TAP + valid_instr = [NavInsID.USE_CASE_REVIEW_CONFIRM] + + # Loop for "Selector" + the contract inputs + for step in range(count + 1): + navigator.navigate_until_text_and_compare(nav_inst, + valid_instr, + end_text, + default_screenshot_path, + f"{test_name}/step_{step}", + screen_change_after_last_instruction=False) + step +=1 + + # Transaction review + if firmware.device.startswith("nano"): + end_text = "Accept" + else: + end_text = "Sign" + scenario_navigator.review_approve(default_screenshot_path, f"{test_name}/step_{step}", end_text) + + # verify signature + vrs = ResponseParser.signature(app_client.response().data) + addr = recover_transaction(tx_params, vrs) + assert addr == DEVICE_ADDR