tadd_hw_info only if a hw wallet is there. that should fix #1995 - electrum - Electrum Bitcoin wallet HTML git clone https://git.parazyd.org/electrum DIR Log DIR Files DIR Refs DIR Submodules --- DIR commit 92d2395e3d7800706f395966e0515a018cf0e9bf DIR parent 1e908bbf37fc5a3eff3a052bb49151c88041a154 HTML Author: ThomasV <thomasv@electrum.org> Date: Mon, 24 Oct 2016 10:34:55 +0200 add_hw_info only if a hw wallet is there. that should fix #1995 Diffstat: M lib/wallet.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) --- DIR diff --git a/lib/wallet.py b/lib/wallet.py t@@ -49,7 +49,7 @@ from util import NotEnoughFunds, PrintError, UserCancelled, profiler from bitcoin import * from version import * -from keystore import load_keystore +from keystore import load_keystore, Hardware_KeyStore from storage import multisig_type from transaction import Transaction t@@ -1066,15 +1066,11 @@ class Abstract_Wallet(PrintError): tx = Transaction(self.network.synchronous_get(request)) return tx - def sign_transaction(self, tx, password): - if self.is_watching_only(): - return - + def add_hw_info(self, tx): # add previous tx for hw wallets for txin in tx.inputs(): tx_hash = txin['prevout_hash'] txin['prev_tx'] = self.get_input_tx(tx_hash) - # add output info for hw wallets info = {} xpubs = self.get_master_public_keys() t@@ -1088,6 +1084,12 @@ class Abstract_Wallet(PrintError): info[addr] = index, sorted_xpubs, self.m if isinstance(self, Multisig_Wallet) else None tx.output_info = info + def sign_transaction(self, tx, password): + if self.is_watching_only(): + return + # hardware wallets require extra info + if any([(isinstance(k, Hardware_KeyStore) and k.can_sign(tx)) for k in self.get_keystores()]): + self.add_hw_info(tx) # sign for k in self.get_keystores(): try: