URI: 
       tbitcoin.py: dedupe pubkeyhash_to_p2pkh_script - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit 8390da9b7b9aab1ab8b50f930f25c9cbaabf9d8b
   DIR parent a10dc04b282ef598ccab9bb004e79584d7b57b5e
  HTML Author: SomberNight <somber.night@protonmail.com>
       Date:   Wed, 31 Jul 2019 01:18:51 +0200
       
       bitcoin.py: dedupe pubkeyhash_to_p2pkh_script
       
       Diffstat:
         M electrum/bitcoin.py                 |      11 ++++++++---
         M electrum/transaction.py             |       8 +++-----
       
       2 files changed, 11 insertions(+), 8 deletions(-)
       ---
   DIR diff --git a/electrum/bitcoin.py b/electrum/bitcoin.py
       t@@ -400,9 +400,7 @@ def address_to_script(addr: str, *, net=None) -> str:
                return script
            addrtype, hash_160_ = b58_address_to_hash160(addr)
            if addrtype == net.ADDRTYPE_P2PKH:
       -        script = bytes([opcodes.OP_DUP, opcodes.OP_HASH160]).hex()
       -        script += push_script(bh2u(hash_160_))
       -        script += bytes([opcodes.OP_EQUALVERIFY, opcodes.OP_CHECKSIG]).hex()
       +        script = pubkeyhash_to_p2pkh_script(bh2u(hash_160_))
            elif addrtype == net.ADDRTYPE_P2SH:
                script = opcodes.OP_HASH160.hex()
                script += push_script(bh2u(hash_160_))
       t@@ -422,6 +420,13 @@ def script_to_scripthash(script: str) -> str:
        def public_key_to_p2pk_script(pubkey: str) -> str:
            return push_script(pubkey) + opcodes.OP_CHECKSIG.hex()
        
       +def pubkeyhash_to_p2pkh_script(pubkey_hash160: str) -> str:
       +    script = bytes([opcodes.OP_DUP, opcodes.OP_HASH160]).hex()
       +    script += push_script(pubkey_hash160)
       +    script += bytes([opcodes.OP_EQUALVERIFY, opcodes.OP_CHECKSIG]).hex()
       +    return script
       +
       +
        __b58chars = b'123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'
        assert len(__b58chars) == 58
        
   DIR diff --git a/electrum/transaction.py b/electrum/transaction.py
       t@@ -909,14 +909,12 @@ class Transaction:
                    return preimage_script
        
                pubkeys, x_pubkeys = self.get_sorted_pubkeys(txin)
       -        if txin['type'] == 'p2pkh':
       -            return bitcoin.address_to_script(txin['address'])
       -        elif txin['type'] in ['p2sh', 'p2wsh', 'p2wsh-p2sh']:
       +        if txin['type'] in ['p2sh', 'p2wsh', 'p2wsh-p2sh']:
                    return multisig_script(pubkeys, txin['num_sig'])
       -        elif txin['type'] in ['p2wpkh', 'p2wpkh-p2sh']:
       +        elif txin['type'] in ['p2pkh', 'p2wpkh', 'p2wpkh-p2sh']:
                    pubkey = pubkeys[0]
                    pkh = bh2u(hash_160(bfh(pubkey)))
       -            return '76a9' + push_script(pkh) + '88ac'
       +            return bitcoin.pubkeyhash_to_p2pkh_script(pkh)
                elif txin['type'] == 'p2pk':
                    pubkey = pubkeys[0]
                    return bitcoin.public_key_to_p2pk_script(pubkey)