Esempio n. 1
0
    def load_wallet(self: Union['QtPluginBase', HW_PluginBase],
                    wallet: 'Abstract_Wallet', window: ElectrumSysWindow):
        relevant_keystores = [
            keystore for keystore in wallet.get_keystores()
            if isinstance(keystore, self.keystore_class)
        ]
        if not relevant_keystores:
            return
        for keystore in relevant_keystores:
            if not self.libraries_available:
                message = keystore.plugin.get_library_not_available_message()
                window.show_error(message)
                return
            tooltip = self.device + '\n' + (keystore.label or 'unnamed')
            cb = partial(self._on_status_bar_button_click,
                         window=window,
                         keystore=keystore)
            button = StatusBarButton(read_QIcon(self.icon_unpaired), tooltip,
                                     cb)
            button.icon_paired = self.icon_paired
            button.icon_unpaired = self.icon_unpaired
            window.statusBar().addPermanentWidget(button)
            handler = self.create_handler(window)
            handler.button = button
            keystore.handler = handler
            keystore.thread = TaskThread(window,
                                         on_error=partial(
                                             self.on_task_thread_error, window,
                                             keystore))
            self.add_show_address_on_hw_device_button_for_receive_addr(
                wallet, keystore, window)
        # Trigger pairings
        def trigger_pairings():
            devmgr = self.device_manager()
            devices = devmgr.scan_devices()
            # first pair with all devices that can be auto-selected
            for keystore in relevant_keystores:
                try:
                    self.get_client(keystore=keystore,
                                    force_pair=True,
                                    allow_user_interaction=False,
                                    devices=devices)
                except UserCancelled:
                    pass
            # now do manual selections
            for keystore in relevant_keystores:
                try:
                    self.get_client(keystore=keystore,
                                    force_pair=True,
                                    allow_user_interaction=True,
                                    devices=devices)
                except UserCancelled:
                    pass

        some_keystore = relevant_keystores[0]
        some_keystore.thread.add(trigger_pairings)
Esempio n. 2
0
    def transaction_dialog(self, dialog: 'TxDialog'):
        b = QPushButton()
        b.setIcon(read_QIcon("speaker.png"))

        def handler():
            blob = dialog.tx.serialize()
            self._send(parent=dialog, blob=blob)

        b.clicked.connect(handler)
        dialog.sharing_buttons.insert(-1, b)
Esempio n. 3
0
 def load_wallet(self, wallet: 'Abstract_Wallet', window: 'ElectrumSysWindow'):
     if not isinstance(wallet, self.wallet_class):
         return
     wallet.handler_2fa = HandlerTwoFactor(self, window)
     if wallet.can_sign_without_server():
         msg = ' '.join([
             _('This wallet 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(read_QIcon("trustedcoin-status.png"),
                              _("TrustedCoin"), action)
     window.statusBar().addPermanentWidget(button)
     self.start_request_thread(window.wallet)
Esempio n. 4
0
 def _update_status(self, paired):
     if hasattr(self, 'button'):
         button = self.button
         icon_name = button.icon_paired if paired else button.icon_unpaired
         button.setIcon(read_QIcon(icon_name))
Esempio n. 5
0
 def create_status_bar(self, parent):
     b = StatusBarButton(read_QIcon('revealer.png'),
                         "Revealer " + _("Visual Cryptography Plugin"),
                         partial(self.setup_dialog, parent))
     parent.addPermanentWidget(b)