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:
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'])