electrum

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

commit 6b0e65fc0a42af7e37b082e1f2eccb2fb5eb8bdd
parent 665d1bc153a41b922e87f17337d81cd004acb2ec
Author: ThomasV <thomasv@electrum.org>
Date:   Wed, 24 Aug 2016 19:37:29 +0200

fixes for hardware wallets

Diffstat:
Mlib/plugins.py | 5++---
Mplugins/hw_wallet/plugin.py | 7+++----
2 files changed, 5 insertions(+), 7 deletions(-)

diff --git a/lib/plugins.py b/lib/plugins.py @@ -356,7 +356,6 @@ class DeviceMgr(ThreadJob, PrintError): _id = self.xpub_ids.pop(xpub) client = self.client_lookup(_id) self.clients.pop(client, None) - #wallet.unpaired() if client: client.close() @@ -369,7 +368,6 @@ class DeviceMgr(ThreadJob, PrintError): def pair_xpub(self, xpub, id_): with self.lock: self.xpub_ids[xpub] = id_ - #wallet.paired() def client_lookup(self, id_): with self.lock: @@ -407,7 +405,8 @@ class DeviceMgr(ThreadJob, PrintError): def force_pair_xpub(self, plugin, handler, xpub, derivation, devices): # The wallet has not been previously paired, so let the user # choose an unpaired device and compare its first address. - info = self.select_device(handler, plugin, devices) + with self.lock: + info = self.select_device(handler, plugin, devices) client = self.client_lookup(info.device.id_) if client and client.is_pairable(): # See comment above for same code diff --git a/plugins/hw_wallet/plugin.py b/plugins/hw_wallet/plugin.py @@ -48,7 +48,6 @@ class HW_PluginBase(BasePlugin): @hook def close_wallet(self, wallet): - keystore = wallet.get_keystore() - if isinstance(keystore, self.keystore_class): - self.device_manager().unpair_xpub(keystore.xpub) - + for keystore in wallet.get_keystores(): + if isinstance(keystore, self.keystore_class): + self.device_manager().unpair_xpub(keystore.xpub)