Exemplo n.º 1
0
    def test_electrum_multisig_seed_segwit(self, mock_write):
        seed_words = 'snow nest raise royal more walk demise rotate smooth spirit canyon gun'
        self.assertEqual(bitcoin.seed_type(seed_words), 'segwit')

        ks1 = keystore.from_seed(seed_words, '')
        self._check_seeded_keystore_sanity(ks1)
        self.assertTrue(isinstance(ks1, keystore.BIP32_KeyStore))
        self.assertEqual(
            ks1.xpub,
            'zpub6jftahH18ngZxwy83eiaWSH1ynYTbA4Ta5MR6JQb4TZCJLCbEzY15f6BCpiDtQeFkzni3v4tT5x6x6Lanvg1YbMZ7ePQmjqtbznPUcYA6mK'
        )

        ks2 = keystore.from_xpub(
            'zpub6jftahH18ngZxE47EYpJWzwTF71AhtNW8ToREBZB7mu3BMdud8aG1tw5TtSqY4qPrhFK1NpKvYwJi9mnhLE8p57nx6929YguJ1Sf2VB8VGt'
        )
        self._check_xpub_keystore_sanity(ks2)
        self.assertTrue(isinstance(ks2, keystore.BIP32_KeyStore))

        store = storage.WalletStorage(
            'if_this_exists_mocking_failed_648151893')
        multisig_type = "%dof%d" % (2, 2)
        store.put('wallet_type', multisig_type)
        store.put('x%d/' % 1, ks1.dump())
        store.put('x%d/' % 2, ks2.dump())
        w = wallet.Multisig_Wallet(store)
        w.synchronize()

        self.assertEqual(
            w.get_receiving_addresses()[0],
            'bc1qnvks7gfdu72de8qv6q6rhkkzu70fqz4wpjzuxjf6aydsx7wxfwcqnlxuv3')
        self.assertEqual(
            w.get_change_addresses()[0],
            'bc1qsvfq6ekp0paugjhfey38pt3nqyvs3tcxu5l00v56j3g6g5la004qw4d33a')
Exemplo n.º 2
0
    def test_electrum_multisig_seed_standard(self, mock_write):
        seed_words = 'blast uniform dragon fiscal ensure vast young utility dinosaur abandon rookie sure'
        self.assertEqual(bitcoin.seed_type(seed_words), 'standard')

        ks1 = keystore.from_seed(seed_words, '')
        self._check_seeded_keystore_sanity(ks1)
        self.assertTrue(isinstance(ks1, keystore.BIP32_KeyStore))
        self.assertEqual(
            ks1.xpub,
            'xpub661MyMwAqRbcGNEPu3aJQqXTydqR9t49Tkwb4Esrj112kw8xLthv8uybxvaki4Ygt9xiwZUQGeFTG7T2TUzR3eA4Zp3aq5RXsABHFBUrq4c'
        )

        ks2 = keystore.from_xpub(
            'xpub661MyMwAqRbcGfCPEkkyo5WmcrhTq8mi3xuBS7VEZ3LYvsgY1cCFDbenT33bdD12axvrmXhuX3xkAbKci3yZY9ZEk8vhLic7KNhLjqdh5ec'
        )
        self._check_xpub_keystore_sanity(ks2)
        self.assertTrue(isinstance(ks2, keystore.BIP32_KeyStore))

        store = storage.WalletStorage(
            'if_this_exists_mocking_failed_648151893')
        multisig_type = "%dof%d" % (2, 2)
        store.put('wallet_type', multisig_type)
        store.put('x%d/' % 1, ks1.dump())
        store.put('x%d/' % 2, ks2.dump())
        w = wallet.Multisig_Wallet(store)
        w.synchronize()

        self.assertEqual(w.get_receiving_addresses()[0],
                         '32ji3QkAgXNz6oFoRfakyD3ys1XXiERQYN')
        self.assertEqual(w.get_change_addresses()[0],
                         '36XWwEHrrVCLnhjK5MrVVGmUHghr9oWTN1')
Exemplo n.º 3
0
 def _create_multisig_wallet(self, ks1, ks2):
     store = storage.WalletStorage('if_this_exists_mocking_failed_648151893')
     multisig_type = "%dof%d" % (2, 2)
     store.put('wallet_type', multisig_type)
     store.put('x%d/' % 1, ks1.dump())
     store.put('x%d/' % 2, ks2.dump())
     store.put('gap_limit', self.gap_limit)
     w = wallet.Multisig_Wallet(store)
     w.synchronize()
     return w
Exemplo n.º 4
0
 def _create_multisig_wallet(self, ks1, ks2, ks3=None):
     """Creates a 2-of-2 or 2-of-3 multisig wallet."""
     store = storage.WalletStorage('if_this_exists_mocking_failed_648151893')
     store.put('x%d/' % 1, ks1.dump())
     store.put('x%d/' % 2, ks2.dump())
     if ks3 is None:
         multisig_type = "%dof%d" % (2, 2)
     else:
         multisig_type = "%dof%d" % (2, 3)
         store.put('x%d/' % 3, ks3.dump())
     store.put('wallet_type', multisig_type)
     store.put('gap_limit', self.gap_limit)
     w = wallet.Multisig_Wallet(store)
     w.synchronize()
     return w
Exemplo n.º 5
0
 def setUp(self):
     bitcoin.set_testnet()
     self.user_dir = tempfile.mkdtemp()
     self.wallet_path = os.path.join(self.user_dir, "multisig2")
     self.storage = WalletStorage(self.wallet_path)
     self.storage.put('wallet_type', "2of3")
     k = [keystore.from_seed('almost cross mistake border loud enable birth worth end helmet flash cliff', '')]
     k.append(keystore.from_keys('tpubD6NzVbkrYhZ4XikksiCN1DTVgBZUQcKeN5XkbeqhDZei5z15sb34cES57n7BS7zxuN5QSwRtFidx4VMYk9VBoX76CCsek6P2mzWkTj3UtiK'))
     k.append(keystore.from_keys('tpubD6NzVbkrYhZ4XgqM6axUN9ZhvBhCawMKRsT9Lqxs6fMjj5TAB9cE7vJATk1vuGrpBVaqVPKrSPXeDYJMbLWKN9svbKEW38WAWQq5nU3nqT1'))
     for i, one_k in enumerate(k):
         self.storage.put('x%d/' % (i + 1), one_k.dump())
     self.wallet = wallet.Multisig_Wallet(self.storage)
     for i in range(2):
         self.wallet.create_new_address(False)       # normal addresses
         self.wallet.create_new_address(True)        # change addresses
     self.wallet.storage.write()