electrum

Electrum Bitcoin wallet
git clone https://git.parazyd.org/electrum
Log | Files | Refs | Submodules

commit 5733a5d125266fd596922cdf7c1019c520c28272
parent 2e9cfb98001be0de9907366fc4dca71ea30b917d
Author: ThomasV <thomasv@electrum.org>
Date:   Wed, 17 Aug 2016 09:49:58 +0200

importprivkey: do not import the same key twice

Diffstat:
Mgui/qt/main_window.py | 3+--
Mlib/commands.py | 2+-
Mlib/keystore.py | 4+++-
3 files changed, 5 insertions(+), 4 deletions(-)

diff --git 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 @@ -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 @@ -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