Beispiel #1
0
 def from_wallet(cls, wallet: Abstract_Wallet):
     multisig_pubkeys = None
     if re.match('[1-9]{1,2}of[1-9]{1,2}', wallet.wallet_type):
         multisig_pubkeys = f'{wallet.m},' + ','.join(
             k.xpub for k in wallet.get_keystores()[1:])
     return cls(
         name=str(wallet),
         xpub=wallet.get_keystore().xpub,
         derivation_path=wallet.keystore.get_derivation_prefix()
         if wallet.keystore.get_derivation_prefix() else 'm',
         gap_limit=wallet.gap_limit,
         address_range=
         f'{wallet.db.num_receiving_addresses()}/{wallet.db.num_change_addresses()}',
         address_type=wallet.txin_type,
         recovery_public_key=wallet.storage.get('recovery_pubkey', None),
         instant_public_key=wallet.storage.get('instant_pubkey', None),
         multisig_pubkeys=multisig_pubkeys,
     )
Beispiel #2
0
    def receive_menu(self, menu, addrs, wallet: Abstract_Wallet):
        if type(wallet) is not Standard_Wallet:
            return

        keystore = wallet.get_keystore()
        if type(keystore) is not self.keystore_class:
            return

        if not self.is_mobile_paired():
            return

        if len(addrs) == 1:
            addr = addrs[0]
            if wallet.get_txin_type(addr) != 'p2pkh':
                return

            def show_address():
                keystore.thread.add(
                    partial(self.show_address, wallet, addr, keystore))

            menu.addAction(_("Show on {}").format(self.device), show_address)