From c86ef5e8b0dcebf1940a68e8857165e6e4768920 Mon Sep 17 00:00:00 2001 From: ThomasV Date: Wed, 4 Nov 2015 19:13:24 +0100 Subject: [PATCH] hardware wallets: fix sign_transaction in resstored wallets --- plugins/btchipwallet.py | 4 ++++ plugins/keepkey.py | 4 ++++ plugins/trezor.py | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/plugins/btchipwallet.py b/plugins/btchipwallet.py index 2cc9dd10..b68fe7ac 100644 --- a/plugins/btchipwallet.py +++ b/plugins/btchipwallet.py @@ -302,6 +302,8 @@ class BTChipWallet(BIP32_HD_Wallet): self.give_error("Not supported") def sign_message(self, address, message, password): + if self.has_seed(): + return BIP32_HD_Wallet.sign_message(self, address, message, password) use2FA = False self.signing = True self.get_client() # prompt for the PIN before displaying the dialog if necessary @@ -352,6 +354,8 @@ class BTChipWallet(BIP32_HD_Wallet): return chr(27 + 4 + (signature[0] & 0x01)) + r + s def sign_transaction(self, tx, password): + if self.has_seed(): + return BIP32_HD_Wallet.sign_transaction(self, tx, password) if tx.is_complete(): return #if tx.error: diff --git a/plugins/keepkey.py b/plugins/keepkey.py index 2aba2381..0b14bfab 100644 --- a/plugins/keepkey.py +++ b/plugins/keepkey.py @@ -445,6 +445,8 @@ class KeepKeyWallet(BIP32_HD_Wallet): #return str(decrypted_msg) def sign_message(self, address, message, password): + if self.has_seed(): + return BIP32_HD_Wallet.sign_message(self, address, message, password) if not self.check_proper_device(): give_error('Wrong device or password') try: @@ -461,6 +463,8 @@ class KeepKeyWallet(BIP32_HD_Wallet): return msg_sig.signature def sign_transaction(self, tx, password): + if self.has_seed(): + return BIP32_HD_Wallet.sign_transaction(self, tx, password) if tx.is_complete(): return if not self.check_proper_device(): diff --git a/plugins/trezor.py b/plugins/trezor.py index 9e4d5fb8..3f94b1e8 100644 --- a/plugins/trezor.py +++ b/plugins/trezor.py @@ -444,6 +444,8 @@ class TrezorWallet(BIP32_HD_Wallet): #return str(decrypted_msg) def sign_message(self, address, message, password): + if self.has_seed(): + return BIP32_HD_Wallet.sign_message(self, address, message, password) if not self.check_proper_device(): give_error('Wrong device or password') try: @@ -460,6 +462,8 @@ class TrezorWallet(BIP32_HD_Wallet): return msg_sig.signature def sign_transaction(self, tx, password): + if self.has_seed(): + return BIP32_HD_Wallet.sign_transaction(self, tx, password) if tx.is_complete(): return if not self.check_proper_device():