def f(choices_layout):
     self.seed_type = seed_type_values[choices_layout.selected_index()]
     self.seed_status.setText('')
     if self.seed_type == 'bip39':
         if self.opt_button:
             self.opt_button.setVisible(False)
         self.lang_cb.setVisible(True)
         k = 'bip39_'+self.lang
         if k not in self.cached_seed_phrases:
             seed = mnemonic.Mnemonic(self.lang).make_bip39_seed()
             self.cached_seed_phrases[k] = seed
         else:
             seed = self.cached_seed_phrases[k]
         self.seed_warning.setText(SEED_WARNING_1(seed))
         self.seed_e.setText(seed)
         self.seed_type = 'bip39'
     else:
         if self.opt_button:
             self.opt_button.setVisible(True)
         self.lang_cb.setVisible(False)
         k = 'electrum'
         if k not in self.cached_seed_phrases:
             seed = mnemonic.Mnemonic('en').make_seed(seed_type=self.electrum_seed_type)
             self.cached_seed_phrases[k] = seed
         else:
             seed = self.cached_seed_phrases[k]
         self.seed_warning.setText(SEED_WARNING_1(seed))
         self.seed_e.setText(seed)
         self.seed_type = 'electrum'
Esempio n. 2
0
def main():
    arg_parser = argparse.ArgumentParser()
    arg_parser.add_argument("n", nargs="?", default=None)
    args = arg_parser.parse_args()

    if args.n:
        n = int(args.n)
    else:
        n = int(input_with_message("How many words do you want to type: "))
    assert (1 < n)

    order = list(range(n))
    prng = coinchooser.PRNG(os.urandom(100))
    prng.shuffle(order)

    wordlist = mnemonic.Mnemonic().wordlist

    words = [""] * n
    for i in range(n):
        valid = False
        while not valid:
            word = input_with_message("Type word {0}: ".format(order[i] + 1))
            if word in wordlist:
                valid = True
            else:
                print("INVALID WORD, TYPE AGAIN", file=sys.stderr)
        words[order[i]] = word
    print(" ".join(words))
 def on_change():
     i = self.lang_cb.currentIndex()
     l = self.languages[i][0]
     k = 'bip39_' + l
     if k not in self.cached_seed_phrases:
         seed = mnemonic.Mnemonic(l).make_bip39_seed()
         self.cached_seed_phrases[k] = seed
     else:
         seed = self.cached_seed_phrases[k]
     self.seed_warning.setText(SEED_WARNING_1(seed))
     self.seed_e.setText(seed)
     self.lang = l
 def test_mnemonic_to_seed(self):
     for test_name, test in SEED_TEST_CASES.items():
         if test.words_hex is not None:
             self.assertEqual(test.words_hex, bh2u(test.words.encode('utf8')), msg=test_name)
         self.assertTrue(is_new_seed(test.words, prefix=test.seed_version), msg=test_name)
         m = mnemonic.Mnemonic(lang=test.lang)
         if test.entropy is not None:
             self.assertEqual(test.entropy, m.mnemonic_decode(test.words), msg=test_name)
         if test.passphrase_hex is not None:
             self.assertEqual(test.passphrase_hex, bh2u(test.passphrase.encode('utf8')), msg=test_name)
         seed = mnemonic.Mnemonic.mnemonic_to_seed(mnemonic=test.words, passphrase=test.passphrase)
         self.assertEqual(test.bip32_seed, bh2u(seed), msg=test_name)
Esempio n. 5
0
def main():
    words = read_and_validate()

    wordlist = mnemonic.Mnemonic().wordlist
    print("Good last words:")
    ok_words = []
    for last in wordlist:
        (checksum_ok, wordlist_ok) = keystore.bip39_is_checksum_valid(
            " ".join(words + [last]))
        assert wordlist_ok
        if checksum_ok:
            print(last)
            ok_words.append(last)

    prng = coinchooser.PRNG(os.urandom(100))
    print("\nA random choice would be:")
    print(prng.choice(ok_words))
from bitcoin import *
from electrum import mnemonic
import logging
import sys

logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger(__name__)

m = mnemonic.Mnemonic()

if __name__ == '__main__':
    try:
        seed = m.make_seed()
        logger.debug(seed)

        priv = sha256(seed)
        logger.debug(priv)

        pub = privtopub(priv)
        logger.debug(pub)

        addr = pubtoaddr(pub)
        logger.debug(addr)

        addr_priv = privtoaddr(priv)
        logger.debug(addr_priv)

    except Exception as e:
        logger.exception(e)
Esempio n. 7
0
 async def co_gen_seed(seed_type, language):
     self.generatedSeed = mnemonic.Mnemonic(language).make_seed(
         seed_type=seed_type)
     self._logger.debug('seed generated')
     self.generatedSeedChanged.emit()