diff --git a/client/src/ledger_app_clients/ethereum/eip712/InputData.py b/client/src/ledger_app_clients/ethereum/eip712/InputData.py index 49c99cb..4981abd 100644 --- a/client/src/ledger_app_clients/ethereum/eip712/InputData.py +++ b/client/src/ledger_app_clients/ethereum/eip712/InputData.py @@ -10,6 +10,7 @@ import struct from client import keychain from client.client import EthAppClient, EIP712FieldType +from ragger.firmware import Firmware # global variables app_client: EthAppClient = None @@ -391,7 +392,7 @@ def next_timeout(_signum: int, _frame): def enable_autonext(): - if app_client._client.firmware.device in ("stax", "flex"): + if app_client._client.firmware in (Firmware.STAX, Firmware.FLEX): delay = 1/3 else: delay = 1/4 diff --git a/client/src/ledger_app_clients/ethereum/settings.py b/client/src/ledger_app_clients/ethereum/settings.py index 5ab26d4..158a46c 100644 --- a/client/src/ledger_app_clients/ethereum/settings.py +++ b/client/src/ledger_app_clients/ethereum/settings.py @@ -11,31 +11,29 @@ class SettingID(Enum): DEBUG_DATA = auto() -def get_device_settings(device: str) -> list[SettingID]: - if device == "nanos": +def get_device_settings(firmware: Firmware) -> list[SettingID]: + if firmware == Firmware.NANOS: return [ SettingID.NONCE, SettingID.DEBUG_DATA, ] - if device in ("nanox", "nanosp", "stax", "flex"): - return [ - SettingID.VERBOSE_ENS, - SettingID.VERBOSE_EIP712, - SettingID.NONCE, - SettingID.DEBUG_DATA, - ] - return [] + return [ + SettingID.VERBOSE_ENS, + SettingID.VERBOSE_EIP712, + SettingID.NONCE, + SettingID.DEBUG_DATA, + ] -def get_setting_per_page(device: str) -> int: - if device == "stax": +def get_setting_per_page(firmware: Firmware) -> int: + if firmware == Firmware.STAX: return 3 return 2 -def get_setting_position(device: str, setting: Union[NavInsID, SettingID]) -> tuple[int, int]: - settings_per_page = get_setting_per_page(device) - if device == "stax": +def get_setting_position(firmware: Firmware, setting: Union[NavInsID, SettingID]) -> tuple[int, int]: + settings_per_page = get_setting_per_page(firmware) + if firmware == Firmware.STAX: screen_height = 672 # px header_height = 88 # px footer_height = 92 # px @@ -47,15 +45,15 @@ def get_setting_position(device: str, setting: Union[NavInsID, SettingID]) -> tu option_offset = 420 # px usable_height = screen_height - (header_height + footer_height) setting_height = usable_height // settings_per_page - index_in_page = get_device_settings(device).index(SettingID(setting)) % settings_per_page + index_in_page = get_device_settings(firmware).index(SettingID(setting)) % settings_per_page return option_offset, header_height + (setting_height * index_in_page) + (setting_height // 2) -def settings_toggle(fw: Firmware, nav: Navigator, to_toggle: list[SettingID]): +def settings_toggle(firmware: Firmware, nav: Navigator, to_toggle: list[SettingID]): moves: list[Union[NavIns, NavInsID]] = list() - settings = get_device_settings(fw.device) + settings = get_device_settings(firmware) # Assume the app is on the home page - if fw.device.startswith("nano"): + if firmware.is_nano: moves += [NavInsID.RIGHT_CLICK] * 2 moves += [NavInsID.BOTH_CLICK] for setting in settings: @@ -65,12 +63,12 @@ def settings_toggle(fw: Firmware, nav: Navigator, to_toggle: list[SettingID]): moves += [NavInsID.BOTH_CLICK] # Back else: moves += [NavInsID.USE_CASE_HOME_SETTINGS] - settings_per_page = get_setting_per_page(fw.device) + settings_per_page = get_setting_per_page(firmware) for setting in settings: setting_idx = settings.index(setting) if (setting_idx > 0) and (setting_idx % settings_per_page) == 0: moves += [NavInsID.USE_CASE_SETTINGS_NEXT] if setting in to_toggle: - moves += [NavIns(NavInsID.TOUCH, get_setting_position(fw.device, setting))] + moves += [NavIns(NavInsID.TOUCH, get_setting_position(firmware, setting))] moves += [NavInsID.USE_CASE_SETTINGS_MULTI_PAGE_EXIT] nav.navigate(moves, screen_change_before_first_instruction=False)