From 312f2641e7284dc9ed7bde99a61060b4d9e35dd9 Mon Sep 17 00:00:00 2001 From: SomberNight Date: Sun, 23 Apr 2023 01:33:12 +0000 Subject: [PATCH] don't use bare except use "except Exception", or if really needed explicitly "except BaseException" --- electrum/base_crash_reporter.py | 2 +- electrum/base_wizard.py | 2 +- electrum/bip32.py | 6 +++--- electrum/blockchain.py | 2 +- electrum/channel_db.py | 2 +- electrum/commands.py | 6 +++--- electrum/constants.py | 2 +- electrum/contacts.py | 2 +- electrum/crypto.py | 6 +++--- electrum/ecc.py | 2 +- electrum/exchange_rate.py | 6 +++--- electrum/gui/kivy/i18n.py | 6 +++--- electrum/gui/kivy/main_window.py | 4 ++-- electrum/gui/kivy/uix/dialogs/amount_dialog.py | 2 +- electrum/gui/kivy/uix/dialogs/installwizard.py | 4 ++-- electrum/gui/kivy/uix/screens.py | 4 ++-- electrum/gui/qml/qeapp.py | 2 +- electrum/gui/qml/qebitcoin.py | 2 +- electrum/gui/qml/qeconfig.py | 2 +- electrum/gui/qml/qefx.py | 8 ++++---- electrum/gui/qml/qeinvoice.py | 2 +- electrum/gui/qml/qetxdetails.py | 4 ++-- electrum/gui/qml/qewallet.py | 2 +- electrum/gui/qt/amountedit.py | 4 ++-- electrum/gui/qt/history_list.py | 4 ++-- electrum/gui/qt/locktimeedit.py | 8 ++++---- electrum/gui/qt/main_window.py | 4 ++-- electrum/gui/qt/my_treeview.py | 2 +- electrum/gui/qt/settings_dialog.py | 2 +- electrum/gui/qt/util.py | 2 +- electrum/gui/text.py | 6 +++--- electrum/interface.py | 4 ++-- electrum/json_db.py | 2 +- electrum/keystore.py | 4 ++-- electrum/lnpeer.py | 16 ++++++++-------- electrum/lnutil.py | 4 ++-- electrum/lnworker.py | 6 +++--- electrum/network.py | 10 +++++----- electrum/paymentrequest.py | 4 ++-- electrum/plugins/bitbox02/bitbox02.py | 8 ++++---- electrum/plugins/coldcard/coldcard.py | 4 ++-- electrum/plugins/digitalbitbox/digitalbitbox.py | 2 +- electrum/plugins/jade/jade.py | 2 +- electrum/plugins/labels/labels.py | 6 +++--- electrum/plugins/ledger/ledger.py | 2 +- electrum/plugins/revealer/revealer.py | 2 +- electrum/plugins/trustedcoin/trustedcoin.py | 4 ++-- electrum/scripts/txbroadcast.py | 2 +- electrum/scripts/txradar.py | 2 +- electrum/simple_config.py | 4 ++-- electrum/storage.py | 2 +- electrum/submarine_swaps.py | 2 +- electrum/transaction.py | 6 +++--- electrum/util.py | 8 ++++---- electrum/verifier.py | 2 +- electrum/wallet.py | 12 ++++++------ electrum/wallet_db.py | 4 ++-- 57 files changed, 118 insertions(+), 118 deletions(-) diff --git a/electrum/base_crash_reporter.py b/electrum/base_crash_reporter.py index ed75a1ac6..8471ee679 100644 --- a/electrum/base_crash_reporter.py +++ b/electrum/base_crash_reporter.py @@ -130,7 +130,7 @@ class BaseCrashReporter(Logger): } try: args["wallet_type"] = self.get_wallet_type() - except: + except Exception: # Maybe the wallet isn't loaded yet pass return args diff --git a/electrum/base_wizard.py b/electrum/base_wizard.py index 59bb22fb9..7a68f2bae 100644 --- a/electrum/base_wizard.py +++ b/electrum/base_wizard.py @@ -351,7 +351,7 @@ class BaseWizard(Logger): state = _("initialized") if info.initialized else _("wiped") label = info.label or _("An unnamed {}").format(name) try: transport_str = info.device.transport_ui_string[:20] - except: transport_str = 'unknown transport' + except Exception: transport_str = 'unknown transport' descr = f"{label} [{info.model_name or name}, {state}, {transport_str}]" choices.append(((name, info), descr)) msg = _('Select a device') + ':' diff --git a/electrum/bip32.py b/electrum/bip32.py index f3ea60f95..25eeadbd4 100644 --- a/electrum/bip32.py +++ b/electrum/bip32.py @@ -297,7 +297,7 @@ def is_xpub(text): try: node = BIP32Node.from_xkey(text) return not node.is_private() - except: + except Exception: return False @@ -305,7 +305,7 @@ def is_xprv(text): try: node = BIP32Node.from_xkey(text) return node.is_private() - except: + except Exception: return False @@ -374,7 +374,7 @@ def is_bip32_derivation(s: str) -> bool: if not (s == 'm' or s.startswith('m/')): return False convert_bip32_strpath_to_intpath(s) - except: + except Exception: return False else: return True diff --git a/electrum/blockchain.py b/electrum/blockchain.py index 569f0338e..4a6aad4ed 100644 --- a/electrum/blockchain.py +++ b/electrum/blockchain.py @@ -622,7 +622,7 @@ class Blockchain(Logger): return hash_header(header) == constants.net.GENESIS try: prev_hash = self.get_hash(height - 1) - except: + except Exception: return False if prev_hash != header.get('prev_block_hash'): return False diff --git a/electrum/channel_db.py b/electrum/channel_db.py index b14bef7de..4331a56e5 100644 --- a/electrum/channel_db.py +++ b/electrum/channel_db.py @@ -175,7 +175,7 @@ class NodeInfo(NamedTuple): alias = payload['alias'].rstrip(b'\x00') try: alias = alias.decode('utf8') - except: + except Exception: alias = '' timestamp = payload['timestamp'] node_info = NodeInfo(node_id=node_id, features=features, timestamp=timestamp, alias=alias) diff --git a/electrum/commands.py b/electrum/commands.py index 46cc6ad11..2038a6f85 100644 --- a/electrum/commands.py +++ b/electrum/commands.py @@ -313,7 +313,7 @@ class Commands: # call literal_eval for backward compatibility (see #4225) try: value = ast.literal_eval(value) - except: + except Exception: pass return value @@ -631,7 +631,7 @@ class Commands: """Convert xtype of a master key. e.g. xpub -> ypub""" try: node = BIP32Node.from_xkey(xkey) - except: + except Exception: raise Exception('xkey should be a master public/private key') return node._replace(xtype=xtype).to_xkey() @@ -1376,7 +1376,7 @@ def eval_bool(x: str) -> bool: if x == 'true': return True try: return bool(ast.literal_eval(x)) - except: + except Exception: return bool(x) param_descriptions = { diff --git a/electrum/constants.py b/electrum/constants.py index 014106b1e..3facd4d66 100644 --- a/electrum/constants.py +++ b/electrum/constants.py @@ -35,7 +35,7 @@ def read_json(filename, default): try: with open(path, 'r') as f: r = json.loads(f.read()) - except: + except Exception: r = default return r diff --git a/electrum/contacts.py b/electrum/contacts.py index 0649ff7a3..69e8dc060 100644 --- a/electrum/contacts.py +++ b/electrum/contacts.py @@ -41,7 +41,7 @@ class Contacts(dict, Logger): d = self.db.get('contacts', {}) try: self.update(d) - except: + except Exception: return # backward compatibility for k, v in self.items(): diff --git a/electrum/crypto.py b/electrum/crypto.py index 4b50d6825..84d42340c 100644 --- a/electrum/crypto.py +++ b/electrum/crypto.py @@ -42,7 +42,7 @@ _logger = get_logger(__name__) HAS_PYAES = False try: import pyaes -except: +except Exception: pass else: HAS_PYAES = True @@ -57,7 +57,7 @@ try: from Cryptodome.Cipher import ChaCha20_Poly1305 as CD_ChaCha20_Poly1305 from Cryptodome.Cipher import ChaCha20 as CD_ChaCha20 from Cryptodome.Cipher import AES as CD_AES -except: +except Exception: pass else: HAS_CRYPTODOME = True @@ -75,7 +75,7 @@ try: from cryptography.hazmat.primitives.ciphers import modes as CG_modes from cryptography.hazmat.backends import default_backend as CG_default_backend import cryptography.hazmat.primitives.ciphers.aead as CG_aead -except: +except Exception: pass else: HAS_CRYPTOGRAPHY = True diff --git a/electrum/ecc.py b/electrum/ecc.py index 687711d10..774f24cf3 100644 --- a/electrum/ecc.py +++ b/electrum/ecc.py @@ -370,7 +370,7 @@ class ECPubkey(object): try: ECPubkey(b) return True - except: + except Exception: return False diff --git a/electrum/exchange_rate.py b/electrum/exchange_rate.py index 2f63b65a9..95adab7af 100644 --- a/electrum/exchange_rate.py +++ b/electrum/exchange_rate.py @@ -104,7 +104,7 @@ class ExchangeBase(Logger): try: with open(filename, 'r', encoding='utf-8') as f: h = json.loads(f.read()) - except: + except Exception: return None if not h: # e.g. empty dict return None @@ -469,7 +469,7 @@ def get_exchanges_and_currencies(): try: with open(path, 'r', encoding='utf-8') as f: return json.loads(f.read()) - except: + except Exception: pass # or if not present, generate it now. print("cannot find currencies.json. will regenerate it now.") @@ -483,7 +483,7 @@ def get_exchanges_and_currencies(): try: d[name] = await exchange.get_currencies() print(name, "ok") - except: + except Exception: print(name, "error") async def query_all_exchanges_for_their_ccys_over_network(): diff --git a/electrum/gui/kivy/i18n.py b/electrum/gui/kivy/i18n.py index 74925ef0d..76cf2a09e 100644 --- a/electrum/gui/kivy/i18n.py +++ b/electrum/gui/kivy/i18n.py @@ -22,14 +22,14 @@ class _(str): def bind(label): try: _.observers.add(label) - except: + except Exception: pass # garbage collection new = set() for label in _.observers: try: new.add(label) - except: + except Exception: pass _.observers = new @@ -42,7 +42,7 @@ class _(str): for label in _.observers: try: label.text = _(label.text.source_text) - except: + except Exception: pass # Note that all invocations of _() inside the core electrum library # use electrum.i18n instead of electrum.gui.kivy.i18n, so we should update the diff --git a/electrum/gui/kivy/main_window.py b/electrum/gui/kivy/main_window.py index 951d7507c..38e3eff98 100644 --- a/electrum/gui/kivy/main_window.py +++ b/electrum/gui/kivy/main_window.py @@ -358,7 +358,7 @@ class ElectrumWindow(App, Logger, EventListener): assert u == self.base_unit try: x = Decimal(a) - except: + except Exception: return None p = pow(10, self.decimal_point()) return int(p * x) @@ -487,7 +487,7 @@ class ElectrumWindow(App, Logger, EventListener): from electrum.transaction import tx_from_any try: tx = tx_from_any(data) - except: + except Exception: tx = None if tx: self.tx_dialog(tx) diff --git a/electrum/gui/kivy/uix/dialogs/amount_dialog.py b/electrum/gui/kivy/uix/dialogs/amount_dialog.py index 673c62f8f..b7434c02f 100644 --- a/electrum/gui/kivy/uix/dialogs/amount_dialog.py +++ b/electrum/gui/kivy/uix/dialogs/amount_dialog.py @@ -145,7 +145,7 @@ class AmountDialog(Factory.Popup): try: Decimal(amount+c) amount += c - except: + except Exception: pass # truncate btc amounts to max precision: if not kb.is_fiat and '.' in amount: diff --git a/electrum/gui/kivy/uix/dialogs/installwizard.py b/electrum/gui/kivy/uix/dialogs/installwizard.py index 56abde19b..39a439747 100644 --- a/electrum/gui/kivy/uix/dialogs/installwizard.py +++ b/electrum/gui/kivy/uix/dialogs/installwizard.py @@ -665,7 +665,7 @@ class WizardOTPDialogBase(WizardDialog): return try: return int(otp) - except: + except Exception: return def on_text(self, dt): @@ -1037,7 +1037,7 @@ class AddXpubDialog(WizardDialog): def is_valid(x): try: return kwargs['is_valid'](x) - except: + except Exception: return False self.is_valid = is_valid self.title = kwargs['title'] diff --git a/electrum/gui/kivy/uix/screens.py b/electrum/gui/kivy/uix/screens.py index 1d6115138..9359fc207 100644 --- a/electrum/gui/kivy/uix/screens.py +++ b/electrum/gui/kivy/uix/screens.py @@ -341,7 +341,7 @@ class SendScreen(CScreen, Logger): else: try: amount_sat = self.app.get_amount(self.amount) - except: + except Exception: self.app.show_error(_('Invalid amount') + ':\n' + self.amount) return message = self.message @@ -384,7 +384,7 @@ class SendScreen(CScreen, Logger): assert self.lnurl_data try: amount = self.app.get_amount(self.amount) - except: + except Exception: self.app.show_error(_('Invalid amount') + ':\n' + self.amount) return if not (self.lnurl_data.min_sendable_sat <= amount <= self.lnurl_data.max_sendable_sat): diff --git a/electrum/gui/qml/qeapp.py b/electrum/gui/qml/qeapp.py index b04ddfda2..694700cce 100644 --- a/electrum/gui/qml/qeapp.py +++ b/electrum/gui/qml/qeapp.py @@ -108,7 +108,7 @@ class QEAppController(BaseCrashReporter, QObject): # connect only once try: qewallet.userNotify.disconnect(self.on_wallet_usernotify) - except: + except Exception: pass qewallet.userNotify.connect(self.on_wallet_usernotify) diff --git a/electrum/gui/qml/qebitcoin.py b/electrum/gui/qml/qebitcoin.py index d0c7a0763..f651123a9 100644 --- a/electrum/gui/qml/qebitcoin.py +++ b/electrum/gui/qml/qebitcoin.py @@ -158,7 +158,7 @@ class QEBitcoin(QObject): try: tx_from_any(rawtx) return True - except: + except Exception: return False @pyqtSlot(str, result=bool) diff --git a/electrum/gui/qml/qeconfig.py b/electrum/gui/qml/qeconfig.py index 7a4c1720b..b71811c94 100644 --- a/electrum/gui/qml/qeconfig.py +++ b/electrum/gui/qml/qeconfig.py @@ -248,7 +248,7 @@ class QEConfig(AuthMixin, QObject): self._amount = QEAmount() try: x = Decimal(unitAmount) - except: + except Exception: return self._amount # scale it to max allowed precision, make it an int diff --git a/electrum/gui/qml/qefx.py b/electrum/gui/qml/qefx.py index 689481cfa..8a226e2d5 100644 --- a/electrum/gui/qml/qefx.py +++ b/electrum/gui/qml/qefx.py @@ -105,7 +105,7 @@ class QEFX(QObject, QtEventListener): else: try: sd = Decimal(satoshis) - except: + except Exception: return '' if plain: return self.fx.ccy_amount_str(self.fx.fiat_value(satoshis, rate), add_thousands_sep=False) @@ -122,14 +122,14 @@ class QEFX(QObject, QtEventListener): else: try: sd = Decimal(satoshis) - except: + except Exception: return '' try: td = Decimal(timestamp) if td == 0: return '' - except: + except Exception: return '' dt = datetime.fromtimestamp(int(td)) if plain: @@ -143,7 +143,7 @@ class QEFX(QObject, QtEventListener): rate = self.fx.exchange_rate() try: fd = Decimal(fiat) - except: + except Exception: return '' v = fd / Decimal(rate) * COIN if v.is_nan(): diff --git a/electrum/gui/qml/qeinvoice.py b/electrum/gui/qml/qeinvoice.py index 3b40ee596..0509c3fa4 100644 --- a/electrum/gui/qml/qeinvoice.py +++ b/electrum/gui/qml/qeinvoice.py @@ -617,7 +617,7 @@ class QEInvoiceParser(QEInvoice): try: assert amount >= self.lnurlData['min_sendable_sat'] assert amount <= self.lnurlData['max_sendable_sat'] - except: + except Exception: self.lnurlError.emit('amount', _('Amount out of bounds')) return diff --git a/electrum/gui/qml/qetxdetails.py b/electrum/gui/qml/qetxdetails.py index ee6aa28d0..e1af555aa 100644 --- a/electrum/gui/qml/qetxdetails.py +++ b/electrum/gui/qml/qetxdetails.py @@ -323,7 +323,7 @@ class QETxDetails(QObject, QtEventListener): if broadcast: self._wallet.broadcastSucceeded.disconnect(self.onBroadcastSucceeded) self._wallet.broadcastfailed.disconnect(self.onBroadcastFailed) - except: + except Exception: pass if broadcast: @@ -344,7 +344,7 @@ class QETxDetails(QObject, QtEventListener): try: self._wallet.broadcastfailed.disconnect(self.onBroadcastFailed) - except: + except Exception: pass self._wallet.broadcastFailed.connect(self.onBroadcastFailed) diff --git a/electrum/gui/qml/qewallet.py b/electrum/gui/qml/qewallet.py index d88f9817e..6eb7cb5ed 100644 --- a/electrum/gui/qml/qewallet.py +++ b/electrum/gui/qml/qewallet.py @@ -739,7 +739,7 @@ class QEWallet(AuthMixin, QObject, QtEventListener): try: self._seed = self.wallet.get_seed(self.password) self.seedRetrieved.emit() - except: + except Exception: self._seed = '' self.dataChanged.emit() diff --git a/electrum/gui/qt/amountedit.py b/electrum/gui/qt/amountedit.py index c6b55c81c..d4bc86c19 100644 --- a/electrum/gui/qt/amountedit.py +++ b/electrum/gui/qt/amountedit.py @@ -97,7 +97,7 @@ class AmountEdit(SizedFreezableLineEdit): try: text = text.replace(DECIMAL_POINT, '.') return (int if self.is_int else Decimal)(text) - except: + except Exception: return None def get_amount(self) -> Union[None, Decimal, int]: @@ -130,7 +130,7 @@ class BTCAmountEdit(AmountEdit): try: text = text.replace(DECIMAL_POINT, '.') x = Decimal(text) - except: + except Exception: return None # scale it to max allowed precision, make it an int power = pow(10, self.max_precision()) diff --git a/electrum/gui/qt/history_list.py b/electrum/gui/qt/history_list.py index 927659aa5..9f10c031f 100644 --- a/electrum/gui/qt/history_list.py +++ b/electrum/gui/qt/history_list.py @@ -92,7 +92,7 @@ class HistorySortModel(QSortFilterProxyModel): if v2 is None or isinstance(v2, Decimal) and v2.is_nan(): v2 = -float("inf") try: return v1 < v2 - except: + except Exception: return False def get_item_key(tx_item): @@ -538,7 +538,7 @@ class HistoryList(MyTreeView, AcceptFileDragDrop): else: try: year = int(s) - except: + except Exception: return self.start_date = datetime.datetime(year, 1, 1) self.end_date = datetime.datetime(year+1, 1, 1) diff --git a/electrum/gui/qt/locktimeedit.py b/electrum/gui/qt/locktimeedit.py index 2ac30b709..f81f3b884 100644 --- a/electrum/gui/qt/locktimeedit.py +++ b/electrum/gui/qt/locktimeedit.py @@ -93,7 +93,7 @@ class _LockTimeEditor: return True try: x = int(x) - except: + except Exception: return False return cls.min_allowed_value <= x <= cls.max_allowed_value @@ -120,13 +120,13 @@ class LockTimeRawEdit(QLineEdit, _LockTimeEditor): def get_locktime(self) -> Optional[int]: try: return int(str(self.text())) - except: + except Exception: return None def set_locktime(self, x: Any) -> None: try: x = int(x) - except: + except Exception: self.setText('') return x = max(x, self.min_allowed_value) @@ -185,7 +185,7 @@ class LockTimeDateEdit(QDateTimeEdit, _LockTimeEditor): return try: x = int(x) - except: + except Exception: self.setDateTime(QDateTime.currentDateTime()) return dt = datetime.fromtimestamp(x) diff --git a/electrum/gui/qt/main_window.py b/electrum/gui/qt/main_window.py index c8d888495..89a3f87ef 100644 --- a/electrum/gui/qt/main_window.py +++ b/electrum/gui/qt/main_window.py @@ -515,7 +515,7 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, Logger, QtEventListener): screen = self.app.desktop().screenGeometry() assert screen.contains(QRect(*winpos)) self.setGeometry(*winpos) - except: + except Exception: self.logger.info("using default geometry") self.setGeometry(100, 100, 840, 400) @@ -631,7 +631,7 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, Logger, QtEventListener): recent = self.config.get('recently_open', []) try: sorted(recent) - except: + except Exception: recent = [] if filename in recent: recent.remove(filename) diff --git a/electrum/gui/qt/my_treeview.py b/electrum/gui/qt/my_treeview.py index acbd560c0..13918b075 100644 --- a/electrum/gui/qt/my_treeview.py +++ b/electrum/gui/qt/my_treeview.py @@ -125,7 +125,7 @@ class MySortModel(QSortFilterProxyModel): v2 = item2.text() try: return Decimal(v1) < Decimal(v2) - except: + except Exception: return v1 < v2 class ElectrumItemDelegate(QStyledItemDelegate): diff --git a/electrum/gui/qt/settings_dialog.py b/electrum/gui/qt/settings_dialog.py index 3ae4044e4..6c4950a7b 100644 --- a/electrum/gui/qt/settings_dialog.py +++ b/electrum/gui/qt/settings_dialog.py @@ -287,7 +287,7 @@ class SettingsDialog(QDialog, QtEventListener): val = block_ex_custom_e.text() try: val = ast.literal_eval(val) # to also accept tuples - except: + except Exception: pass self.config.set_key('block_explorer_custom', val) block_ex_custom_e.editingFinished.connect(on_be_edit) diff --git a/electrum/gui/qt/util.py b/electrum/gui/qt/util.py index 32f06398a..3ba3bcebc 100644 --- a/electrum/gui/qt/util.py +++ b/electrum/gui/qt/util.py @@ -727,7 +727,7 @@ class OverlayControlMixin(GenericInputHandler): from .qrcodewidget import QRDialog try: s = str(self.text()) - except: + except Exception: s = self.text() if not s: return diff --git a/electrum/gui/text.py b/electrum/gui/text.py index 22f6361e1..7fbad039f 100644 --- a/electrum/gui/text.py +++ b/electrum/gui/text.py @@ -35,14 +35,14 @@ _ = lambda x:x # i18n def parse_bip21(text): try: return util.parse_URI(text) - except: + except Exception: return def parse_bolt11(text): from electrum.lnaddr import lndecode try: return lndecode(text) - except: + except Exception: return @@ -594,7 +594,7 @@ class ElectrumGui(BaseElectrumGui, EventListener): def parse_amount(self, text): try: x = Decimal(text) - except: + except Exception: return None power = pow(10, self.config.get_decimal_point()) return int(power * x) diff --git a/electrum/interface.py b/electrum/interface.py index 737c94363..782c5af41 100644 --- a/electrum/interface.py +++ b/electrum/interface.py @@ -1153,14 +1153,14 @@ def check_cert(host, cert): try: b = pem.dePem(cert, 'CERTIFICATE') x = x509.X509(b) - except: + except Exception: traceback.print_exc(file=sys.stdout) return try: x.check_date() expired = False - except: + except Exception: expired = True m = "host: %s\n"%host diff --git a/electrum/json_db.py b/electrum/json_db.py index 681107550..00f249c16 100644 --- a/electrum/json_db.py +++ b/electrum/json_db.py @@ -155,7 +155,7 @@ class JsonDB(Logger): try: json.dumps(key, cls=JsonDBJsonEncoder) json.dumps(value, cls=JsonDBJsonEncoder) - except: + except Exception: self.logger.info(f"json error: cannot save {repr(key)} ({repr(value)})") return False if value is not None: diff --git a/electrum/keystore.py b/electrum/keystore.py index c1c5638a6..61305635c 100644 --- a/electrum/keystore.py +++ b/electrum/keystore.py @@ -1084,13 +1084,13 @@ def load_keystore(db: 'WalletDB', name: str) -> KeyStore: def is_old_mpk(mpk: str) -> bool: try: int(mpk, 16) # test if hex string - except: + except Exception: return False if len(mpk) != 128: return False try: ecc.ECPubkey(bfh('04' + mpk)) - except: + except Exception: return False return True diff --git a/electrum/lnpeer.py b/electrum/lnpeer.py index c4f2a3827..2dd1092cb 100644 --- a/electrum/lnpeer.py +++ b/electrum/lnpeer.py @@ -602,7 +602,7 @@ class Peer(Logger): try: if self.transport: self.transport.close() - except: + except Exception: pass self.lnworker.peer_closed(self) self.got_disconnected.set() @@ -1594,7 +1594,7 @@ class Peer(Logger): raise OnionRoutingFailure(code=OnionFailureCode.TEMPORARY_NODE_FAILURE, data=b'') try: next_chan_scid = processed_onion.hop_data.payload["short_channel_id"]["short_channel_id"] - except: + except Exception: raise OnionRoutingFailure(code=OnionFailureCode.INVALID_ONION_PAYLOAD, data=b'\x00\x00\x00') next_chan = self.lnworker.get_channel_by_short_id(next_chan_scid) local_height = chain.height() @@ -1610,14 +1610,14 @@ class Peer(Logger): raise OnionRoutingFailure(code=OnionFailureCode.TEMPORARY_CHANNEL_FAILURE, data=outgoing_chan_upd_message) try: next_amount_msat_htlc = processed_onion.hop_data.payload["amt_to_forward"]["amt_to_forward"] - except: + except Exception: raise OnionRoutingFailure(code=OnionFailureCode.INVALID_ONION_PAYLOAD, data=b'\x00\x00\x00') if not next_chan.can_pay(next_amount_msat_htlc): self.logger.info(f"cannot forward htlc due to transient errors (likely due to insufficient funds)") raise OnionRoutingFailure(code=OnionFailureCode.TEMPORARY_CHANNEL_FAILURE, data=outgoing_chan_upd_message) try: next_cltv_expiry = processed_onion.hop_data.payload["outgoing_cltv_value"]["outgoing_cltv_value"] - except: + except Exception: raise OnionRoutingFailure(code=OnionFailureCode.INVALID_ONION_PAYLOAD, data=b'\x00\x00\x00') if htlc.cltv_expiry - next_cltv_expiry < next_chan.forwarding_cltv_expiry_delta: data = htlc.cltv_expiry.to_bytes(4, byteorder="big") + outgoing_chan_upd_message @@ -1746,7 +1746,7 @@ class Peer(Logger): try: amt_to_forward = processed_onion.hop_data.payload["amt_to_forward"]["amt_to_forward"] - except: + except Exception: log_fail_reason(f"'amt_to_forward' missing from onion") raise OnionRoutingFailure(code=OnionFailureCode.INVALID_ONION_PAYLOAD, data=b'\x00\x00\x00') @@ -1766,7 +1766,7 @@ class Peer(Logger): raise exc_incorrect_or_unknown_pd try: cltv_from_onion = processed_onion.hop_data.payload["outgoing_cltv_value"]["outgoing_cltv_value"] - except: + except Exception: log_fail_reason(f"'outgoing_cltv_value' missing from onion") raise OnionRoutingFailure(code=OnionFailureCode.INVALID_ONION_PAYLOAD, data=b'\x00\x00\x00') @@ -1778,7 +1778,7 @@ class Peer(Logger): data=htlc.cltv_expiry.to_bytes(4, byteorder="big")) try: total_msat = processed_onion.hop_data.payload["payment_data"]["total_msat"] - except: + except Exception: total_msat = amt_to_forward # fall back to "amt_to_forward" if not is_trampoline and amt_to_forward != htlc.amount_msat: @@ -1789,7 +1789,7 @@ class Peer(Logger): try: payment_secret_from_onion = processed_onion.hop_data.payload["payment_data"]["payment_secret"] - except: + except Exception: if total_msat > amt_to_forward: # payment_secret is required for MPP log_fail_reason(f"'payment_secret' missing from onion") diff --git a/electrum/lnutil.py b/electrum/lnutil.py index 49b424ba1..e348659af 100644 --- a/electrum/lnutil.py +++ b/electrum/lnutil.py @@ -1470,7 +1470,7 @@ def extract_nodeid(connect_contents: str) -> Tuple[bytes, Optional[str]]: invoice = lndecode(connect_contents) nodeid_bytes = invoice.pubkey.serialize() nodeid_hex = nodeid_bytes.hex() - except: + except Exception: # node id as hex? nodeid_hex = connect_contents if rest == '': @@ -1479,7 +1479,7 @@ def extract_nodeid(connect_contents: str) -> Tuple[bytes, Optional[str]]: node_id = bfh(nodeid_hex) if len(node_id) != 33: raise Exception() - except: + except Exception: raise ConnStringFormatError(_('Invalid node ID, must be 33 bytes and hexadecimal')) return node_id, rest diff --git a/electrum/lnworker.py b/electrum/lnworker.py index ffc56c74f..054fa4c15 100644 --- a/electrum/lnworker.py +++ b/electrum/lnworker.py @@ -1072,7 +1072,7 @@ class LNWallet(LNWorker): self.wallet.set_reserved_state_of_address(addr, reserved=True) try: self.save_channel(chan) - except: + except Exception: chan.set_state(ChannelState.REDEEMED) self.remove_channel(chan.channel_id) raise @@ -1516,13 +1516,13 @@ class LNWallet(LNWorker): if payload['chain_hash'] != constants.net.rev_genesis_bytes(): raise Exception() payload['raw'] = channel_update_typed return payload - except: # FIXME: too broad + except Exception: # FIXME: too broad try: message_type, payload = decode_msg(channel_update_as_received) if payload['chain_hash'] != constants.net.rev_genesis_bytes(): raise Exception() payload['raw'] = channel_update_as_received return payload - except: + except Exception: return None @staticmethod diff --git a/electrum/network.py b/electrum/network.py index e77836a95..47ed65baa 100644 --- a/electrum/network.py +++ b/electrum/network.py @@ -403,7 +403,7 @@ class Network(Logger, NetworkRetryManager[ServerAddr]): data = f.read() servers_list = json.loads(data) return [ServerAddr.from_str(s) for s in servers_list] - except: + except Exception: return [] @with_recent_servers_lock @@ -415,7 +415,7 @@ class Network(Logger, NetworkRetryManager[ServerAddr]): try: with open(path, "w", encoding='utf-8') as f: f.write(s) - except: + except Exception: pass async def _server_is_lagging(self) -> bool: @@ -516,7 +516,7 @@ class Network(Logger, NetworkRetryManager[ServerAddr]): for n in FEE_ETA_TARGETS: try: out[n] = int(median(filter(None, [i.fee_estimates_eta.get(n) for i in self.interfaces.values()]))) - except: + except Exception: continue return out else: @@ -595,7 +595,7 @@ class Network(Logger, NetworkRetryManager[ServerAddr]): if server: try: self.default_server = ServerAddr.from_str(server) - except: + except Exception: self.logger.warning(f'failed to parse server-string ({server!r}); falling back to localhost:1:s.') self.default_server = ServerAddr.from_str("localhost:1:s") else: @@ -626,7 +626,7 @@ class Network(Logger, NetworkRetryManager[ServerAddr]): if proxy: proxy_modes.index(proxy['mode']) + 1 int(proxy['port']) - except: + except Exception: return self.config.set_key('auto_connect', net_params.auto_connect, False) self.config.set_key('oneserver', net_params.oneserver, False) diff --git a/electrum/paymentrequest.py b/electrum/paymentrequest.py index 8d46909e2..00e6d4f62 100644 --- a/electrum/paymentrequest.py +++ b/electrum/paymentrequest.py @@ -126,7 +126,7 @@ class PaymentRequest: try: self.data = pb2.PaymentRequest() self.data.ParseFromString(r) - except: + except Exception: self.error = "cannot parse payment request" return self.details = pb2.PaymentDetails() @@ -157,7 +157,7 @@ class PaymentRequest: pr = pb2.PaymentRequest() try: pr.ParseFromString(self.raw) - except: + except Exception: self.error = "Error: Cannot parse payment request" return False if not pr.signature: diff --git a/electrum/plugins/bitbox02/bitbox02.py b/electrum/plugins/bitbox02/bitbox02.py index fcd14a241..e07544213 100644 --- a/electrum/plugins/bitbox02/bitbox02.py +++ b/electrum/plugins/bitbox02/bitbox02.py @@ -79,7 +79,7 @@ class BitBox02Client(HardwareClientBase): def close(self): try: self.bitbox02_device.close() - except: + except Exception: pass def has_usable_connection_with_device(self) -> bool: @@ -104,7 +104,7 @@ class BitBox02Client(HardwareClientBase): self.handler.show_message(msg) try: res = device_response() - except: + except Exception: # Close the hid device on exception hid_device.close() raise @@ -327,7 +327,7 @@ class BitBox02Client(HardwareClientBase): ) except bitbox02.DuplicateEntryException: raise - except: + except Exception: raise UserFacingException("Failed to register multisig\naccount configuration on BitBox02") return multisig_config @@ -648,7 +648,7 @@ class BitBox02Plugin(HW_PluginBase): try: from bitbox02 import bitbox02 version = bitbox02.__version__ - except: + except Exception: version = "unknown" if requirements_ok: return version diff --git a/electrum/plugins/coldcard/coldcard.py b/electrum/plugins/coldcard/coldcard.py index 15d57f374..972e6def0 100644 --- a/electrum/plugins/coldcard/coldcard.py +++ b/electrum/plugins/coldcard/coldcard.py @@ -160,7 +160,7 @@ class CKCCClient(HardwareClientBase): try: self.ping_check() return True - except: + except Exception: return False @runs_in_hwd_thread @@ -187,7 +187,7 @@ class CKCCClient(HardwareClientBase): try: echo = self.dev.send_recv(CCProtocolPacker.ping(req)) assert echo == req - except: + except Exception: raise RuntimeError("Communication trouble with Coldcard") @runs_in_hwd_thread diff --git a/electrum/plugins/digitalbitbox/digitalbitbox.py b/electrum/plugins/digitalbitbox/digitalbitbox.py index 2701d6ca6..1c82b3a76 100644 --- a/electrum/plugins/digitalbitbox/digitalbitbox.py +++ b/electrum/plugins/digitalbitbox/digitalbitbox.py @@ -81,7 +81,7 @@ class DigitalBitbox_Client(HardwareClientBase): if self.opened: try: self.dbb_hid.close() - except: + except Exception: pass self.opened = False diff --git a/electrum/plugins/jade/jade.py b/electrum/plugins/jade/jade.py index 348ebf556..56b835a88 100644 --- a/electrum/plugins/jade/jade.py +++ b/electrum/plugins/jade/jade.py @@ -411,7 +411,7 @@ class JadePlugin(HW_PluginBase): version = jadepy.__version__ except ImportError: raise - except: + except Exception: version = "unknown" return version diff --git a/electrum/plugins/labels/labels.py b/electrum/plugins/labels/labels.py index d54afe3ee..a20cae8f4 100644 --- a/electrum/plugins/labels/labels.py +++ b/electrum/plugins/labels/labels.py @@ -116,7 +116,7 @@ class LabelsPlugin(BasePlugin): try: encoded_key = self.encode(wallet, key) encoded_value = self.encode(wallet, value) - except: + except Exception: self.logger.info(f'cannot encode {repr(key)} {repr(value)}') continue bundle["labels"].append({'encryptedLabel': encoded_value, @@ -142,12 +142,12 @@ class LabelsPlugin(BasePlugin): try: key = self.decode(wallet, label["externalId"]) value = self.decode(wallet, label["encryptedLabel"]) - except: + except Exception: continue try: json.dumps(key) json.dumps(value) - except: + except Exception: self.logger.info(f'error: no json {key}') continue if value: diff --git a/electrum/plugins/ledger/ledger.py b/electrum/plugins/ledger/ledger.py index 78b281668..1b1ba4232 100644 --- a/electrum/plugins/ledger/ledger.py +++ b/electrum/plugins/ledger/ledger.py @@ -1355,7 +1355,7 @@ class LedgerPlugin(HW_PluginBase): version = ledger_bitcoin.__version__ except ImportError: raise - except: + except Exception: version = "unknown" if LEDGER_BITCOIN: return version diff --git a/electrum/plugins/revealer/revealer.py b/electrum/plugins/revealer/revealer.py index 1ca1b8fc6..0a2850d2b 100644 --- a/electrum/plugins/revealer/revealer.py +++ b/electrum/plugins/revealer/revealer.py @@ -47,7 +47,7 @@ class RevealerPlugin(BasePlugin): return None try: int(txt, 16) - except: + except Exception: return None version = txt[0] if version not in cls.KNOWN_VERSIONS: diff --git a/electrum/plugins/trustedcoin/trustedcoin.py b/electrum/plugins/trustedcoin/trustedcoin.py index 20954c204..3ff7ff8ec 100644 --- a/electrum/plugins/trustedcoin/trustedcoin.py +++ b/electrum/plugins/trustedcoin/trustedcoin.py @@ -133,12 +133,12 @@ class TrustedCoinCosignerClient(Logger): try: r = await resp.json() message = r['message'] - except: + except Exception: message = await resp.text() raise TrustedCoinException(message, resp.status) try: return await resp.json() - except: + except Exception: return await resp.text() def send_request(self, method, relative_url, data=None, *, timeout=None): diff --git a/electrum/scripts/txbroadcast.py b/electrum/scripts/txbroadcast.py index cf813b23c..6cde24d27 100644 --- a/electrum/scripts/txbroadcast.py +++ b/electrum/scripts/txbroadcast.py @@ -12,7 +12,7 @@ from electrum.simple_config import SimpleConfig try: rawtx = sys.argv[1] -except: +except Exception: print("usage: txbroadcast rawtx") sys.exit(1) diff --git a/electrum/scripts/txradar.py b/electrum/scripts/txradar.py index 8e301fd5d..c220733e7 100755 --- a/electrum/scripts/txradar.py +++ b/electrum/scripts/txradar.py @@ -9,7 +9,7 @@ from electrum.simple_config import SimpleConfig try: txid = sys.argv[1] -except: +except Exception: print("usage: txradar txid") sys.exit(1) diff --git a/electrum/simple_config.py b/electrum/simple_config.py index d57418b5f..181e7ba80 100644 --- a/electrum/simple_config.py +++ b/electrum/simple_config.py @@ -165,7 +165,7 @@ class SimpleConfig(Logger): try: json.dumps(key) json.dumps(value) - except: + except Exception: self.logger.info(f"json error: cannot save {repr(key)} ({repr(value)})") return self._set_key_in_user_config(key, value, save) @@ -674,7 +674,7 @@ class SimpleConfig(Logger): if text: try: return NetAddress.from_string(text) - except: + except Exception: pass def format_amount( diff --git a/electrum/storage.py b/electrum/storage.py index 2eecc7eb0..5d08c8a68 100644 --- a/electrum/storage.py +++ b/electrum/storage.py @@ -142,7 +142,7 @@ class WalletStorage(Logger): return StorageEncryptionVersion.XPUB_PASSWORD else: return StorageEncryptionVersion.PLAINTEXT - except: + except Exception: return StorageEncryptionVersion.PLAINTEXT @staticmethod diff --git a/electrum/submarine_swaps.py b/electrum/submarine_swaps.py index b0af03fd4..5708a0df9 100644 --- a/electrum/submarine_swaps.py +++ b/electrum/submarine_swaps.py @@ -501,7 +501,7 @@ class SwapManager(Logger): limits = pairs['pairs']['BTC/BTC']['limits'] self._min_amount = limits['minimal'] self._max_amount = limits['maximal'] - except: + except Exception: self._min_amount = 10000 self._max_amount = 10000000 diff --git a/electrum/transaction.py b/electrum/transaction.py index 0012468d8..b5bf0705e 100644 --- a/electrum/transaction.py +++ b/electrum/transaction.py @@ -1195,18 +1195,18 @@ def convert_raw_tx_to_hex(raw: Union[str, bytes]) -> str: # try hex try: return binascii.unhexlify(raw).hex() - except: + except Exception: pass # try base43 try: return base_decode(raw, base=43).hex() - except: + except Exception: pass # try base64 if raw[0:6] in ('cHNidP', b'cHNidP'): # base64 psbt try: return base64.b64decode(raw).hex() - except: + except Exception: pass # raw bytes (do not strip whitespaces in this case) if isinstance(raw_unstripped, bytes): diff --git a/electrum/util.py b/electrum/util.py index a8e8dd648..a165117a9 100644 --- a/electrum/util.py +++ b/electrum/util.py @@ -432,7 +432,7 @@ def json_encode(obj): def json_decode(x): try: return json.loads(x, parse_float=Decimal) - except: + except Exception: return x def json_normalize(x): @@ -562,7 +562,7 @@ def assert_bytes(*args): try: for x in args: assert isinstance(x, (bytes, bytearray)) - except: + except Exception: print('assert bytes failed', list(map(type, args))) raise @@ -646,7 +646,7 @@ def is_hex_str(text: Any) -> bool: if not isinstance(text, str): return False try: b = bytes.fromhex(text) - except: + except Exception: return False # forbid whitespaces in text: if len(text) != 2 * len(b): @@ -1191,7 +1191,7 @@ def parse_json(message): return None, message try: j = json.loads(message[0:n].decode('utf8')) - except: + except Exception: j = None return j, message[n+1:] diff --git a/electrum/verifier.py b/electrum/verifier.py index c5eb8c000..13f556b0d 100644 --- a/electrum/verifier.py +++ b/electrum/verifier.py @@ -169,7 +169,7 @@ class SPV(NetworkJobOnDefaultServer): tx = Transaction(raw_tx) try: tx.deserialize() - except: + except Exception: pass else: raise InnerNodeOfSpvProofIsValidTx() diff --git a/electrum/wallet.py b/electrum/wallet.py index 1afccd715..dff9cef8a 100644 --- a/electrum/wallet.py +++ b/electrum/wallet.py @@ -653,7 +653,7 @@ class Abstract_Wallet(ABC, Logger, EventListener): text_dec = Decimal(text) text_dec_rounded = Decimal(fx.ccy_amount_str(text_dec, add_thousands_sep=False)) reset = text_dec_rounded == def_fiat_rounded - except: + except Exception: # garbage. not resetting, but not saving either return False if reset: @@ -673,7 +673,7 @@ class Abstract_Wallet(ABC, Logger, EventListener): fiat_value = self.fiat_value.get(ccy, {}).get(txid) try: return Decimal(fiat_value) - except: + except Exception: return def is_mine(self, address) -> bool: @@ -840,7 +840,7 @@ class Abstract_Wallet(ABC, Logger, EventListener): try: self.cpfp(tx, 0) can_cpfp = True - except: + except Exception: can_cpfp = False else: status = _('Local') @@ -1107,7 +1107,7 @@ class Abstract_Wallet(ABC, Logger, EventListener): for x in data: try: req = Request(**x) - except: + except Exception: raise FileImportFailed(_("Invalid invoice format")) self.add_payment_request(req, write_to_disk=False) self.save_db() @@ -1121,7 +1121,7 @@ class Abstract_Wallet(ABC, Logger, EventListener): for x in data: try: invoice = Invoice(**x) - except: + except Exception: raise FileImportFailed(_("Invalid invoice format")) self.save_invoice(invoice, write_to_disk=False) self.save_db() @@ -3460,7 +3460,7 @@ class Simple_Deterministic_Wallet(Simple_Wallet, Deterministic_Wallet): self.keystore = load_keystore(self.db, 'keystore') # type: KeyStoreWithMPK try: xtype = bip32.xpub_type(self.keystore.xpub) - except: + except Exception: xtype = 'standard' self.txin_type = 'p2pkh' if xtype == 'standard' else xtype diff --git a/electrum/wallet_db.py b/electrum/wallet_db.py index 3ef8a3a53..fd17f21c7 100644 --- a/electrum/wallet_db.py +++ b/electrum/wallet_db.py @@ -98,7 +98,7 @@ class WalletDB(JsonDB): def load_data(self, s): try: self.data = json.loads(s) - except: + except Exception: try: d = ast.literal_eval(s) labels = d.get('labels', {}) @@ -109,7 +109,7 @@ class WalletDB(JsonDB): try: json.dumps(key) json.dumps(value) - except: + except Exception: self.logger.info(f'Failed to convert label to json format: {key}') continue self.data[key] = value