electrum

Electrum Bitcoin wallet
git clone https://git.parazyd.org/electrum
Log | Files | Refs | Submodules

commit 4273c607b7ef991aad28a80ec63dc9627fffc653
parent 1ebc8727559030dc826bae0c459ba05ae65411c0
Author: ThomasV <thomasv@electrum.org>
Date:   Tue,  3 Oct 2017 14:16:43 +0200

fix #2961

Diffstat:
Mlib/bitcoin.py | 12++++++++++--
Mlib/transaction.py | 12++----------
2 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/lib/bitcoin.py b/lib/bitcoin.py @@ -332,6 +332,14 @@ def public_key_to_p2wpkh(public_key): def script_to_p2wsh(script): return hash_to_segwit_addr(sha256(bfh(script))) +def p2wpkh_nested_script(pubkey): + pubkey = safe_parse_pubkey(pubkey) + pkh = bh2u(hash_160(bfh(pubkey))) + return '00' + push_script(pkh) + +def p2wsh_nested_script(witness_script): + wsh = bh2u(sha256(bfh(witness_script))) + return '00' + push_script(wsh) def pubkey_to_address(txin_type, pubkey): if txin_type == 'p2pkh': @@ -339,7 +347,7 @@ def pubkey_to_address(txin_type, pubkey): elif txin_type == 'p2wpkh': return hash_to_segwit_addr(hash_160(bfh(pubkey))) elif txin_type == 'p2wpkh-p2sh': - scriptSig = transaction.p2wpkh_nested_script(pubkey) + scriptSig = p2wpkh_nested_script(pubkey) return hash160_to_p2sh(hash_160(bfh(scriptSig))) else: raise NotImplementedError(txin_type) @@ -350,7 +358,7 @@ def redeem_script_to_address(txin_type, redeem_script): elif txin_type == 'p2wsh': return script_to_p2wsh(redeem_script) elif txin_type == 'p2wsh-p2sh': - scriptSig = transaction.p2wsh_nested_script(redeem_script) + scriptSig = p2wsh_nested_script(redeem_script) return hash160_to_p2sh(hash_160(bfh(scriptSig))) else: raise NotImplementedError(txin_type) diff --git a/lib/transaction.py b/lib/transaction.py @@ -487,14 +487,6 @@ def deserialize(raw): # pay & redeem scripts -def p2wpkh_nested_script(pubkey): - pubkey = safe_parse_pubkey(pubkey) - pkh = bh2u(hash_160(bfh(pubkey))) - return '00' + push_script(pkh) - -def p2wsh_nested_script(witness_script): - wsh = bh2u(sha256(bfh(witness_script))) - return '00' + push_script(wsh) def multisig_script(public_keys, m): @@ -677,11 +669,11 @@ class Transaction: elif _type in ['p2wpkh', 'p2wsh']: return '' elif _type == 'p2wpkh-p2sh': - scriptSig = p2wpkh_nested_script(pubkeys[0]) + scriptSig = bitcoin.p2wpkh_nested_script(pubkeys[0]) return push_script(scriptSig) elif _type == 'p2wsh-p2sh': witness_script = self.get_preimage_script(txin) - scriptSig = p2wsh_nested_script(witness_script) + scriptSig = bitcoin.p2wsh_nested_script(witness_script) return push_script(scriptSig) elif _type == 'address': script += push_script(pubkeys[0])