Ejemplo n.º 1
0
 def on_edit(self):
     from electrum.bitcoin import seed_type
     s = self.get_seed()
     b = self.is_seed(s)
     t = seed_type(s)
     label = _('Seed Type') + ': ' + t if t else ''
     self.seed_type_label.setText(label)
     self.parent.next_button.setEnabled(b)
Ejemplo n.º 2
0
 def on_edit(self):
     from electrum.bitcoin import seed_type
     s = self.get_seed()
     b = self.is_seed(s)
     t = seed_type(s)
     label = _('Seed Type') + ': ' + t if t else ''
     self.seed_type_label.setText(label)
     self.parent.next_button.setEnabled(b)
Ejemplo n.º 3
0
 def on_edit(self):
     from electrum.bitcoin import seed_type
     s = self.get_seed()
     b = self.is_seed(s)
     if not self.is_bip39:
         t = seed_type(s)
         label = _('Seed Type') + ': ' + t if t else ''
     else:
         from electrum.keystore import bip39_is_checksum_valid
         is_checksum, is_wordlist = bip39_is_checksum_valid(s)
         status = ('checksum: ' + ('ok' if is_checksum else 'failed')) if is_wordlist else 'unknown wordlist'
         label = 'BIP39' + ' (%s)'%status
     self.seed_type_label.setText(label)
     self.parent.next_button.setEnabled(b)
Ejemplo n.º 4
0
 def on_edit(self):
     from electrum.bitcoin import seed_type
     s = self.get_seed()
     b = self.is_seed(s)
     if not self.is_bip39:
         t = seed_type(s)
         label = _('Seed Type') + ': ' + t if t else ''
     else:
         from electrum.keystore import bip39_is_checksum_valid
         is_checksum, is_wordlist = bip39_is_checksum_valid(s)
         status = ('checksum: ' + ('ok' if is_checksum else 'failed')) if is_wordlist else 'unknown wordlist'
         label = 'BIP39' + ' (%s)'%status
     self.seed_type_label.setText(label)
     self.parent.next_button.setEnabled(b)
Ejemplo n.º 5
0
 def xkeys_from_seed(self, seed, passphrase):
     t = seed_type(seed)
     if not is_any_2fa_seed_type(t):
         raise BaseException('unexpected seed type: {}'.format(t))
     words = seed.split()
     n = len(words)
     # old version use long seed phrases
     if n >= 20:
         # note: pre-2.7 2fa seeds were typically 24-25 words, however they
         # could probabilistically be arbitrarily shorter due to a bug. (see #3611)
         # the probability of it being < 20 words is about 2^(-(256+12-19*11)) = 2^(-59)
         if passphrase != '':
             raise Exception('old 2fa seed cannot have passphrase')
         xprv1, xpub1 = self.get_xkeys(' '.join(words[0:12]), t, '', "m/")
         xprv2, xpub2 = self.get_xkeys(' '.join(words[12:]), t, '', "m/")
     elif not t == '2fa' or n == 12:
         xprv1, xpub1 = self.get_xkeys(seed, t, passphrase, "m/0'/")
         xprv2, xpub2 = self.get_xkeys(seed, t, passphrase, "m/1'/")
     else:
         raise Exception('unrecognized seed length: {} words'.format(n))
     return xprv1, xpub1, xprv2, xpub2
Ejemplo n.º 6
0
    def on_edit(self):
        from electrum.bitcoin import seed_type
        s = self.get_seed()
        b = self.is_seed(s)
        if not self.is_bip39:
            t = seed_type(s)
            label = _('Seed Type') + ': ' + t if t else ''
        else:
            from electrum.keystore import bip39_is_checksum_valid
            is_checksum, is_wordlist = bip39_is_checksum_valid(s)
            status = ('checksum: ' + ('ok' if is_checksum else 'failed')) if is_wordlist else 'unknown wordlist'
            label = 'BIP39' + ' (%s)'%status
        self.seed_type_label.setText(label)
        self.parent.next_button.setEnabled(b)

        # to account for bip39 seeds
        for word in self.get_seed().split(" ")[:-1]:
            if word not in self.wordlist:
                self.seed_e.disable_suggestions()
                return
        self.seed_e.enable_suggestions()
Ejemplo n.º 7
0
 def xkeys_from_seed(self, seed, passphrase):
     t = seed_type(seed)
     if not is_any_2fa_seed_type(t):
         raise BaseException('unexpected seed type: {}'.format(t))
     words = seed.split()
     n = len(words)
     # old version use long seed phrases
     if n >= 20:
         # note: pre-2.7 2fa seeds were typically 24-25 words, however they
         # could probabilistically be arbitrarily shorter due to a bug. (see #3611)
         # the probability of it being < 20 words is about 2^(-(256+12-19*11)) = 2^(-59)
         if passphrase != '':
             raise Exception('old 2fa seed cannot have passphrase')
         xprv1, xpub1 = self.get_xkeys(' '.join(words[0:12]), t, '', "m/")
         xprv2, xpub2 = self.get_xkeys(' '.join(words[12:]), t, '', "m/")
     elif not t == '2fa' or n == 12:
         xprv1, xpub1 = self.get_xkeys(seed, t, passphrase, "m/0'/")
         xprv2, xpub2 = self.get_xkeys(seed, t, passphrase, "m/1'/")
     else:
         raise Exception('unrecognized seed length: {} words'.format(n))
     return xprv1, xpub1, xprv2, xpub2
Ejemplo n.º 8
0
    def on_edit(self):
        from electrum.bitcoin import seed_type
        s = self.get_seed()
        b = self.is_seed(s)
        if not self.is_bip39:
            t = seed_type(s)
            label = _('Seed Type') + ': ' + t if t else ''
        else:
            from electrum.keystore import bip39_is_checksum_valid
            is_checksum, is_wordlist = bip39_is_checksum_valid(s)
            status = ('checksum: ' + ('ok' if is_checksum else 'failed')) if is_wordlist else 'unknown wordlist'
            label = 'BIP39' + ' (%s)'%status
        self.seed_type_label.setText(label)
        self.parent.next_button.setEnabled(b)

        # to account for bip39 seeds
        for word in self.get_seed().split(" ")[:-1]:
            if word not in self.wordlist:
                self.seed_e.disable_suggestions()
                return
        self.seed_e.enable_suggestions()
Ejemplo n.º 9
0
 def test_seed_type(self):
     for seed_words, _type in self.mnemonics:
         self.assertEqual(_type, seed_type(seed_words), msg=seed_words)
Ejemplo n.º 10
0
 def is_valid_seed(seed):
     t = seed_type(seed)
     return is_any_2fa_seed_type(t)
Ejemplo n.º 11
0
 def test_seed_type(self):
     for seed_words, _type in self.mnemonics:
         self.assertEqual(_type, seed_type(seed_words), msg=seed_words)
Ejemplo n.º 12
0
 def is_valid_seed(seed):
     t = seed_type(seed)
     return is_any_2fa_seed_type(t)