add input input_verify flag

This commit is contained in:
4tochka 2018-09-30 23:09:11 +04:00
parent 538f24b218
commit 24a8a3bba9

View File

@ -357,11 +357,11 @@ class Transaction(dict):
def add_input(self, tx_id=None, v_out=0, sequence=0xffffffff,
script_sig=b"", tx_in_witness=None, amount=None,
script_pub_key=None, address=None, private_key=None,
redeem_script=None, sig_script_limit = True):
redeem_script=None, input_verify = True):
if tx_id is None:
tx_id = b"\x00" * 32
v_out = 0xffffffff
if sequence != 0xffffffff or self["vIn"]:
if (sequence != 0xffffffff or self["vIn"]) and input_verify:
raise RuntimeError("invalid coinbase transaction")
if isinstance(tx_id, str):
@ -371,7 +371,7 @@ class Transaction(dict):
if isinstance(script_sig, str):
script_sig = bytes.fromhex(script_sig)
if not isinstance(script_sig, bytes) or (len(script_sig) > 520 and sig_script_limit):
if not isinstance(script_sig, bytes) or (len(script_sig) > 520 and input_verify):
raise TypeError("script_sig invalid")
if not isinstance(v_out, int) or not (v_out <= 0xffffffff and v_out >= 0):
@ -407,7 +407,8 @@ class Transaction(dict):
if tx_id == b"\x00" * 32:
if not (v_out == 0xffffffff and sequence == 0xffffffff and len(script_sig) <= 100):
raise TypeError("coinbase tx invalid")
if input_verify:
raise TypeError("coinbase tx invalid")
self["coinbase"] = True
# script_pub_key