From 3c0e3eb7e25b4054c015298996b81504a032355a Mon Sep 17 00:00:00 2001 From: Salvatore Ingala <6681844+bigspider@users.noreply.github.com> Date: Wed, 9 Nov 2022 11:34:41 +0100 Subject: [PATCH] Refactored LedgerPlugin::create_client, and handle errors when creating the client. --- electrum/plugins/ledger/ledger.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/electrum/plugins/ledger/ledger.py b/electrum/plugins/ledger/ledger.py index 4637b8c2d..e6b5426f4 100644 --- a/electrum/plugins/ledger/ledger.py +++ b/electrum/plugins/ledger/ledger.py @@ -1338,12 +1338,14 @@ class LedgerPlugin(HW_PluginBase): return btchip_device @runs_in_hwd_thread - def create_client(self, device, handler) -> Ledger_Client: - # TODO: refactor - client = self.get_btchip_device(device) - if client is not None: - client = Ledger_Client(client, product_key=device.product_key, plugin=self) - return client + def create_client(self, device, handler) -> Optional[Ledger_Client]: + hid_device = self.get_btchip_device(device) + if hid_device is not None: + try: + return Ledger_Client(hid_device, product_key=device.product_key, plugin=self) + except: + return None + return None def setup_device(self, device_info, wizard, purpose): device_id = device_info.device.id_