diff --git a/electrumx/lib/coins.py b/electrumx/lib/coins.py index b4ef679..932fd11 100644 --- a/electrumx/lib/coins.py +++ b/electrumx/lib/coins.py @@ -211,6 +211,14 @@ class Coin(object): ''' return ScriptPubKey.P2PK_script(pubkey) + @classmethod + def hash160_to_P2PKH_script(cls, hash160): + return ScriptPubKey.P2PKH_script(hash160) + + @classmethod + def hash160_to_P2PKH_hashX(cls, hash160): + return cls.hashX_from_script(cls.hash160_to_P2PKH_script(hash160)) + @classmethod def pay_to_address_script(cls, address): '''Return a pubkey script that pays to a pubkey hash. @@ -223,12 +231,12 @@ class Coin(object): verbyte = -1 verlen = len(raw) - 20 if verlen > 0: - verbyte, hash_bytes = raw[:verlen], raw[verlen:] + verbyte, hash160 = raw[:verlen], raw[verlen:] if verbyte == cls.P2PKH_VERBYTE: - return ScriptPubKey.P2PKH_script(hash_bytes) + return cls.hash160_to_P2PKH_script(hash160) if verbyte in cls.P2SH_VERBYTES: - return ScriptPubKey.P2SH_script(hash_bytes) + return ScriptPubKey.P2SH_script(hash160) raise CoinError('invalid address: {}'.format(address))