From 5733a5d125266fd596922cdf7c1019c520c28272 Mon Sep 17 00:00:00 2001 From: ThomasV Date: Wed, 17 Aug 2016 09:49:58 +0200 Subject: [PATCH] importprivkey: do not import the same key twice --- gui/qt/main_window.py | 3 +-- lib/commands.py | 2 +- lib/keystore.py | 4 +++- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/gui/qt/main_window.py b/gui/qt/main_window.py index 9c043e2de..90deccea3 100644 --- a/gui/qt/main_window.py +++ b/gui/qt/main_window.py @@ -2208,10 +2208,9 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError): badkeys = [] addrlist = [] for key in text: - addr = self.wallet.import_key(key, password) try: addr = self.wallet.import_key(key, password) - except Exception as e: + except BaseException as e: badkeys.append(key) continue if not addr: diff --git a/lib/commands.py b/lib/commands.py index 502f19f15..1508b1a3d 100644 --- a/lib/commands.py +++ b/lib/commands.py @@ -368,7 +368,7 @@ class Commands: try: addr = self.wallet.import_key(privkey, self._password) out = "Keypair imported: " + addr - except Exception as e: + except BaseException as e: out = "Error: " + str(e) return out diff --git a/lib/keystore.py b/lib/keystore.py index 9ca367e04..e3f688531 100644 --- a/lib/keystore.py +++ b/lib/keystore.py @@ -115,7 +115,9 @@ class Imported_KeyStore(Software_KeyStore): try: pubkey = public_key_from_private_key(sec) except Exception: - raise Exception('Invalid private key') + raise BaseException('Invalid private key') + if pubkey in self.keypairs: + raise BaseException('Private key already in keystore') self.keypairs[pubkey] = sec return pubkey