return len(b) == 33
-def address_from_private_key(sec):
+def public_key_from_private_key(sec):
# rebuild public key from private key, compressed or uncompressed
pkey = regenerate_key(sec)
assert pkey
-
- # figure out if private key is compressed
compressed = is_compressed(sec)
-
- # rebuild private and public key from regenerated secret
- private_key = GetPrivKey(pkey, compressed)
public_key = GetPubKey(pkey.pubkey, compressed)
- address = public_key_to_bc_address(public_key)
+ return public_key.encode('hex')
+
+
+def address_from_private_key(sec):
+ public_key = public_key_from_private_key(sec)
+ address = public_key_to_bc_address(public_key.decode('hex'))
return address
# build a list of public/private keys
keypairs = {}
for sec in private_keys:
- compressed = is_compressed(sec)
- pkey = regenerate_key(sec)
- pubkey = GetPubKey(pkey.pubkey, compressed)
- keypairs[ pubkey.encode('hex') ] = sec
+ pubkey = public_key_from_private_key(sec)
+ keypairs[ pubkey ] = sec
for txin in tx.inputs:
addr = hash_160_to_bc_address(hash_160(redeem_script.decode('hex')), 5)
txin['address'] = addr
-
elif txin.get("raw_output_script"):
addr = deserialize.get_address_from_output_script(txin.get("raw_output_script").decode('hex'))
sec = self.get_private_key(addr, password)
+ pubkey = public_key_from_private_key(sec)
if sec:
keypairs[pubkey] = [sec]
txin['address'] = addr