From 6172898a035e6ccbe5e8c85a34bc2f14acd106b3 Mon Sep 17 00:00:00 2001 From: SomberNight Date: Wed, 14 Feb 2024 09:48:13 +0000 Subject: [PATCH] trezor: minor things for better model "safe 3" support --- electrum/plugins/trezor/clientbase.py | 14 +++++++++----- electrum/plugins/trezor/qt.py | 11 +++++++++-- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/electrum/plugins/trezor/clientbase.py b/electrum/plugins/trezor/clientbase.py index b4822ada0..ab6422b00 100644 --- a/electrum/plugins/trezor/clientbase.py +++ b/electrum/plugins/trezor/clientbase.py @@ -203,7 +203,7 @@ class TrezorClientBase(HardwareClientBase, Logger): return self.client.version >= self.plugin.minimum_firmware def get_trezor_model(self): - """Returns '1' for Trezor One, 'T' for Trezor T.""" + """Returns '1' for Trezor One, 'T' for Trezor T, etc.""" return self.features.model def device_model_name(self): @@ -212,6 +212,8 @@ class TrezorClientBase(HardwareClientBase, Logger): return "Trezor One" elif model == 'T': return "Trezor T" + elif model == "Safe 3": + return "Trezor Safe 3" return None @runs_in_hwd_thread @@ -290,10 +292,12 @@ class TrezorClientBase(HardwareClientBase, Logger): # check PIN length. Depends on model and firmware version # https://github.com/trezor/trezor-firmware/issues/1167 limit = 9 - if self.features.model == "1" and (1, 10, 0) <= self.client.version: - limit = 50 - elif self.features.model == "T" and (2, 4, 0) <= self.client.version: - limit = 50 + if self.get_trezor_model() == "1": + if (1, 10, 0) <= self.client.version: + limit = 50 + else: + if (2, 4, 0) <= self.client.version: + limit = 50 if len(pin) > limit: self.handler.show_error(_('The PIN cannot be longer than {} characters.').format(limit)) raise Cancelled diff --git a/electrum/plugins/trezor/qt.py b/electrum/plugins/trezor/qt.py index 056011ca8..7c0ff5735 100644 --- a/electrum/plugins/trezor/qt.py +++ b/electrum/plugins/trezor/qt.py @@ -425,8 +425,15 @@ class InitSettingsLayout(QVBoxLayout): if method == TIM_NEW: self.cb_no_backup = QCheckBox(_('Enable seedless mode')) self.cb_no_backup.setChecked(False) - if (model == '1' and fw_version >= (1, 7, 1) - or model == 'T' and fw_version >= (2, 0, 9)): + supports_no_backup = False + if model == '1': + if fw_version >= (1, 7, 1): + supports_no_backup = True + else: + if fw_version >= (2, 0, 9): + supports_no_backup = True + if supports_no_backup: + self.cb_no_backup.setEnabled(True) self.cb_no_backup.setToolTip(SEEDLESS_MODE_WARNING) else: self.cb_no_backup.setEnabled(False)