URI: 
       ttrustedcoin: don't use assert in hooks, it crashes when using multiple windows. show message if wallet is restored from seed. - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit c2accd64cfb83836de52b9b7eb100d608dc61a98
   DIR parent 9ed987c2da5a2e5915c87d77a60c4f387f133240
  HTML Author: ThomasV <thomasv@electrum.org>
       Date:   Sun,  3 Jan 2016 19:16:37 +0100
       
       ttrustedcoin: don't use assert in hooks, it crashes when using multiple windows. show message if wallet is restored from seed.
       
       Diffstat:
         M plugins/trustedcoin/qt.py           |      32 ++++++++++++++++++++-----------
       
       1 file changed, 21 insertions(+), 11 deletions(-)
       ---
   DIR diff --git a/plugins/trustedcoin/qt.py b/plugins/trustedcoin/qt.py
       t@@ -50,14 +50,22 @@ class Plugin(TrustedCoinPlugin):
            @hook
            def on_new_window(self, window):
                wallet = window.wallet
       -        if wallet.storage.get('wallet_type') == '2fa':
       -            button = StatusBarButton(QIcon(":icons/trustedcoin.png"),
       -                                     _("TrustedCoin"),
       -                                     partial(self.settings_dialog, window))
       -            window.statusBar().addPermanentWidget(button)
       -            t = Thread(target=self.request_billing_info, args=(wallet,))
       -            t.setDaemon(True)
       -            t.start()
       +        if not isinstance(wallet, self.wallet_class):
       +            return
       +        if wallet.can_sign_without_server():
       +            msg = ' '.join([
       +                _('This wallet is was restored from seed, and it contains two master private keys.'),
       +                _('Therefore, two-factor authentication is disabled.')
       +            ])
       +            action = lambda: window.show_message(msg)
       +        else:
       +            action = partial(self.settings_dialog, window)
       +        button = StatusBarButton(QIcon(":icons/trustedcoin.png"),
       +                                 _("TrustedCoin"), action)
       +        window.statusBar().addPermanentWidget(button)
       +        t = Thread(target=self.request_billing_info, args=(wallet,))
       +        t.setDaemon(True)
       +        t.start()
        
            def auth_dialog(self, window):
                d = WindowModalDialog(window, _("Authorization"))
       t@@ -77,10 +85,11 @@ class Plugin(TrustedCoinPlugin):
        
            @hook
            def sign_tx(self, window, tx):
       -        self.print_error("twofactor:sign_tx")
                wallet = window.wallet
       -        assert isinstance(wallet, self.wallet_class)
       +        if not isinstance(wallet, self.wallet_class):
       +            return
                if not wallet.can_sign_without_server():
       +            self.print_error("twofactor:sign_tx")
                    auth_code = None
                    if need_server(wallet, tx):
                        auth_code = self.auth_dialog(window)
       t@@ -101,7 +110,8 @@ class Plugin(TrustedCoinPlugin):
            @hook
            def abort_send(self, window):
                wallet = window.wallet
       -        assert isinstance(wallet, self.wallet_class)
       +        if not isinstance(wallet, self.wallet_class):
       +            return
                if not wallet.can_sign_without_server():
                    if wallet.billing_info is None:
                        # request billing info before forming the transaction