Example #1
0
def test_bip32_root():
    Net.set_to(SVMainnet)
    k = BIP32_KeyStore({})
    k.add_xprv_from_seed(b'BitcoinSV', 'm')
    assert k.xprv == ('xprv9s21ZrQH143K48ebsYkLU9UPzgdDVfhT6SMdWFJ8ZXak1bjKVRLu'
                      'xdmMCh7HZkwciZd7fga4gK4XW2QZhvWz5os6hJwqLfpZmW9r7pLgn9s')
    Net.set_to(SVTestnet)
    k = BIP32_KeyStore({})
    k.add_xprv_from_seed(b'BitcoinSV', 'm')
    assert k.xprv == ('tprv8ZgxMBicQKsPewt8Y7bqdo6PJp3RjBjTRzGkNfib3W5DoCUQUng'
                      'fUP8o7sGwa8Kw619tfnBpqfeKxsxJq8rvts8hDxA912YcgbuGZX3AZDd')
    Net.set_to(SVMainnet)
Example #2
0
 def test_parse_xpubkey(self):
     xpub = (
         'xpub661MyMwAqRbcH1RHYeZc1zgwYLJ1dNozE8npCe81pnNYtN6e5KsF6cmt17Fv8w'
         'GvJrRiv6Kewm8ggBG6N3XajhoioH3stUmLRi53tk46CiA')
     assert BIP32_KeyStore.parse_xpubkey(
         'ff0488b21e000000000000000000f79d7a4d3ea07099f09fbf35c3103908cbb4b1f30e8602a06ffbdb'
         'b213d0025602e9aa22cc7106abab85e4c41f18f030c370213769c18d6754f3d0584e69a7fa1201000a00'
     ) == (xpub, [1, 10])
     assert BIP32_KeyStore.parse_xpubkey(
         'ff0488b21e000000000000000000f79d7a4d3ea07099f09fbf35c3103908cbb4b1f30e8602a06ffbdbb2'
         '13d0025602e9aa22cc7106abab85e4c41f18f030c370213769c18d6754f3d0584e69a7fa1200001900'
     ) == (xpub, [0, 25])
Example #3
0
 def test_get_private_key(self):
     xprv = ('xprv9s21ZrQH143K4XLpSd2berkCzJTXDv68rusDQFiQGSqa1ZmVXnYzYpTQ9'
             'qYiSB7mHvg6kEsrd2ZtnHRJ61sZhSN4jZ2T8wxA4T75BE4QQZ1')
     password = '******'
     xprv = pw_encode(xprv, password)
     keystore = BIP32_KeyStore({'xprv': xprv})
     privkey = keystore.get_private_key((1, 2, 3), password)
     assert privkey == (bytes.fromhex('985e4b09a0b05702c073b5086fcbb4b7dde4625bb98'
                                      '9ec51ce4c3337a7de2a13'), True)
    def multisig_keystores(self):
        seed = 'ee6ea9eceaf649640051a4c305ac5c59'
        keystore1 = Old_KeyStore.from_seed(seed)

        xprv = ('xprv9s21ZrQH143K4XLpSd2berkCzJTXDv68rusDQFiQGSqa1ZmVXnYzYpTQ9'
                'qYiSB7mHvg6kEsrd2ZtnHRJ61sZhSN4jZ2T8wxA4T75BE4QQZ1')
        xpub = ('xpub661MyMwAqRbcH1RHYeZc1zgwYLJ1dNozE8npCe81pnNYtN6e5KsF6cmt17Fv8w'
                'GvJrRiv6Kewm8ggBG6N3XajhoioH3stUmLRi53tk46CiA')
        keystore2 = BIP32_KeyStore({'xprv': xprv, 'xpub': xpub})

        return [keystore1, keystore2]
Example #5
0
    def test_check_password(self, password):
        xprv = ('xprv9s21ZrQH143K4XLpSd2berkCzJTXDv68rusDQFiQGSqa1ZmVXnYzYpTQ9'
                'qYiSB7mHvg6kEsrd2ZtnHRJ61sZhSN4jZ2T8wxA4T75BE4QQZ1')
        xpub = ('xpub661MyMwAqRbcH1RHYeZc1zgwYLJ1dNozE8npCe81pnNYtN6e5KsF6cmt17Fv8w'
                'GvJrRiv6Kewm8ggBG6N3XajhoioH3stUmLRi53tk46CiA')
        xprv = pw_encode(xprv, password)
        keystore = BIP32_KeyStore({'xprv': xprv, 'xpub': xpub})

        keystore.check_password(password)
        with pytest.raises(InvalidPassword):
            keystore.check_password('guess')
        if password is not None:
            with pytest.raises(InvalidPassword):
                keystore.check_password(None)
Example #6
0
 def test_derive_pubkey(self, for_change, n, pubkey):
     xpub = (
         'xpub661MyMwAqRbcH1RHYeZc1zgwYLJ1dNozE8npCe81pnNYtN6e5KsF6cmt17Fv8w'
         'GvJrRiv6Kewm8ggBG6N3XajhoioH3stUmLRi53tk46CiA')
     keystore = BIP32_KeyStore({'xpub': xpub})
     assert keystore.derive_pubkey(for_change, n) == pubkey
Example #7
0
 def test_derive_pubkey(self, for_change, n, pubkey_hex):
     xpub = ('xpub661MyMwAqRbcH1RHYeZc1zgwYLJ1dNozE8npCe81pnNYtN6e5KsF6cmt17Fv8w'
             'GvJrRiv6Kewm8ggBG6N3XajhoioH3stUmLRi53tk46CiA')
     keystore = BIP32_KeyStore({'xpub': xpub})
     pubkey = keystore.derive_pubkey((for_change, n))
     assert pubkey == XPublicKey.from_hex(pubkey_hex).to_public_key()