Exemple #1
0
    def test_vector_bip32(self):
        import pycoin.wallet as pywallet

        seed = unhexlify('000102030405060708090a0b0c0d0e0f')
        # seed = unhexlify('fffcf9f6f3f0edeae7e4e1dedbd8d5d2cfccc9c6c3c0bdbab7b4b1aeaba8a5a29f9c999693908d8a8784817e7b7875726f6c696663605d5a5754514e4b484542')
        bip32 = BIP32.from_seed(seed)

        self.assertEqual(string_to_number(bip32.node.private_key), int('e8f32e723decf4051aefac8e2c93c9c5b214313817cdb01a1494b917c8436b35', 16))

        self.assertEqual(bip32.get_address(BTC, []), '15mKKb2eos1hWa6tisdPwwDC1a5J1y9nma')
        self.assertEqual(bip32.get_address(BTC, [bip32.prime(0)]), '19Q2WoS5hSS6T8GjhK8KZLMgmWaq4neXrh')

        seed = unhexlify('fffcf9f6f3f0edeae7e4e1dedbd8d5d2cfccc9c6c3c0bdbab7b4b1aeaba8a5a29f9c999693908d8a8784817e7b7875726f6c696663605d5a5754514e4b484542')
        bip32 = BIP32.from_seed(seed)
        self.assertEqual(bip32.get_address(BTC, [0]), '19EuDJdgfRkwCmRzbzVBHZWQG9QNWhftbZ')
        self.assertEqual(bip32.get_address(BTC, [0, bip32.prime(2147483647)]), '1Lke9bXGhn5VPrBuXgN12uGUphrttUErmk')

        pw = pywallet.Wallet(chain_code=bip32.node.chain_code,
                       secret_exponent_bytes=bip32.node.private_key,
                       parent_fingerprint=struct.pack('I', bip32.node.fingerprint),
                       depth=bip32.node.depth,
                       child_number=bip32.node.child_num,
                       is_private=True,
                       is_test=False)

        privkey1 = hexlify(pw.subkey(0, is_prime=True, as_private=True).secret_exponent_bytes)
        privkey2 = hexlify(bip32._get_subnode(bip32.node, bip32.prime(0)).private_key)
        self.assertEqual(privkey1, privkey2)
Exemple #2
0
    def test_vector_bip32(self):
        seed = unhexlify('000102030405060708090a0b0c0d0e0f')
        bip32 = BIP32.from_seed(seed)

        self.assertEqual(bip32._secexp(), int('e8f32e723decf4051aefac8e2c93c9c5b214313817cdb01a1494b917c8436b35', 16))

        self.assertEqual(bip32.get_address([], 0), '15mKKb2eos1hWa6tisdPwwDC1a5J1y9nma')
        self.assertEqual(bip32.get_address([0], 0), '19Q2WoS5hSS6T8GjhK8KZLMgmWaq4neXrh')
Exemple #3
0
    def test_address(self):
        import pycoin.wallet as pywallet
        seed = unhexlify('000102030405060708090a0b0c0d0e0f')

        bip32 = BIP32.from_seed(seed)

        self.assertEqual(bip32.get_address(BTC, [bip32.prime(0), 1, bip32.prime(2)]), '1NjxqbA9aZWnh17q1UW3rB4EPu79wDXj7x')
        self.assertEqual(bip32.get_address(BTC, [bip32.prime(0), 1, bip32.prime(2), 2]), '1LjmJcdPnDHhNTUgrWyhLGnRDKxQjoxAgt')
        '''
Exemple #4
0
    def test_subkey_simple(self):
        seed = unhexlify('000102030405060708090a0b0c0d0e0f')
        bip32 = BIP32.from_seed(seed)
        secexp1 = string_to_number(BIP32._get_subkey(bip32.xprv, 0).private_key)

        wallet = pywallet.Wallet.from_master_secret(seed)
        secexp2 = wallet.subkey(0, is_prime=True, as_private=True).secret_exponent

        self.assertEqual(secexp1, secexp2)
Exemple #5
0
    def test_subkey_path(self):
        seed = unhexlify('000102030405060708090a0b0c0d0e0f')
        path = [1, 1, 2]

        bip32 = BIP32.from_seed(seed)
        private_key = bip32.get_private_key(path)
        secexp1 = string_to_number(private_key)

        path_string = '/'.join([ "%d'" % p for p in path])
        wallet = pywallet.Wallet.from_master_secret(seed)
        secexp2 = wallet.subkey_for_path(path_string)

        self.assertEqual(secexp1, secexp2.secret_exponent)
Exemple #6
0
    def test_address(self):
        seed = unhexlify('000102030405060708090a0b0c0d0e0f')
        bip32 = BIP32.from_seed(seed)

        self.assertEqual(bip32.get_address([0, ], 0), '19Q2WoS5hSS6T8GjhK8KZLMgmWaq4neXrh')