electrum

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

commit 302dd3912dddaec9dfffd0f3f6dde99a67354c4c
parent 7e66a5e12835e0d81cdb92883c2e0cb7f872e901
Author: ThomasV <thomasv@electrum.org>
Date:   Fri, 15 Sep 2017 11:54:53 +0200

Merge pull request #2872 from SomberNight/p2pk_output_1

fix: p2pk output serialisation
Diffstat:
Mlib/bitcoin.py | 4++++
Mlib/transaction.py | 6++++--
2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/lib/bitcoin.py b/lib/bitcoin.py @@ -357,6 +357,10 @@ def address_to_scripthash(addr): h = sha256(bytes.fromhex(script))[0:32] return bytes(reversed(h)).hex() +def public_key_to_p2pk_script(pubkey): + script = push_script(pubkey) + script += 'ac' # op_checksig + return script __b58chars = b'123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz' assert len(__b58chars) == 58 diff --git a/lib/transaction.py b/lib/transaction.py @@ -624,10 +624,9 @@ class Transaction: elif output_type == TYPE_ADDRESS: return bitcoin.address_to_script(addr) elif output_type == TYPE_PUBKEY: - return addr + return bitcoin.public_key_to_p2pk_script(addr) else: raise TypeError('Unknown output type') - return script @classmethod def get_siglist(self, txin, estimate_size=False): @@ -714,6 +713,9 @@ class Transaction: pubkey = txin['pubkeys'][0] pkh = bh2u(bitcoin.hash_160(bfh(pubkey))) return '76a9' + push_script(pkh) + '88ac' + elif txin['type'] == 'p2pk': + pubkey = txin['pubkeys'][0] + return bitcoin.public_key_to_p2pk_script(pubkey) else: raise TypeError('Unknown txin type', txin['type'])