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 0000000..1ae309e 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 0000000..fd645cd 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 0000000..66c411c 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 0000000..daa3e96 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 0000000..26225e2 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 0000000..180800c 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 0000000..66c411c 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 0000000..f6e9b1f 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 0000000..37021a0 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 0000000..662dfa5 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 0000000..66c411c 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 0000000..8d84cc7 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 0000000..9f26513 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 0000000..346ae5e 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 0000000..e845325 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 0000000..b5b0f1e 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 0000000..cc968dc 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 0000000..1c9156c 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 0000000..ce795f3 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 0000000..83f7a50 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 0000000..cfc623a 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 0000000..53ae651 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 0000000..a3db166 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 0000000..1ecbddd 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 0000000..53ae651 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 0000000..ecb060c 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 0000000..b05bbb4 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 0000000..53ae651 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 0000000..487ea10 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 0000000..cdcc19d 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 0000000..c07ea96 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 0000000..0fd18b2 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 0000000..570ce28 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 0000000..6578872 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 0000000..83f7a50 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 0000000..cfc623a 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 0000000..53ae651 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 0000000..a3db166 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 0000000..1ecbddd 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 0000000..53ae651 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 0000000..ecb060c 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 0000000..b05bbb4 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 0000000..53ae651 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 0000000..487ea10 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 0000000..cdcc19d 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 0000000..c07ea96 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 0000000..0fd18b2 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 0000000..570ce28 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 0000000..6578872 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 0000000..bd589a9 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 0000000..c4f8fc0 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 0000000..dfccf36 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 0000000..22e1f93 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 0000000..197a516 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 0000000..98b5a0b 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 0000000..22e1f93 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 0000000..b549dd9 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 0000000..98b5a0b 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 0000000..f1b35e4 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 0000000..51bb232 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 0000000..687a019 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 0000000..2ba6d27 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 0000000..b1ff1b3 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 29bbd0c..f4be014 100644 --- a/tests/ragger/test_blind_sign.py +++ b/tests/ragger/test_blind_sign.py @@ -3,15 +3,21 @@ import json import pytest from web3 import Web3 -from client.client import EthAppClient, StatusWord - 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 +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 + + +BIP32_PATH = "m/44'/60'/0'/0/0" # Token approval, would require loading the "internal plugin" & # providing the token metadata from the CAL @@ -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