From 24a8a3bba923a3ca17971b43389163b4255e785a Mon Sep 17 00:00:00 2001 From: 4tochka Date: Sun, 30 Sep 2018 23:09:11 +0400 Subject: [PATCH] add input input_verify flag --- pybtc/transaction.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/pybtc/transaction.py b/pybtc/transaction.py index b07de6d..5332d11 100644 --- a/pybtc/transaction.py +++ b/pybtc/transaction.py @@ -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