@ -19,6 +19,7 @@ import time
from . import coverage
from . authproxy import AuthServiceProxy , JSONRPCException
from io import BytesIO
logger = logging . getLogger ( " TestFramework.utils " )
@ -515,14 +516,13 @@ def gen_return_txouts():
for i in range ( 512 ) :
script_pubkey = script_pubkey + " 01 "
# concatenate 128 txouts of above script_pubkey which we'll insert before the txout for change
txouts = " 81 "
txouts = [ ]
from . messages import CTxOut
txout = CTxOut ( )
txout . nValue = 0
txout . scriptPubKey = hex_str_to_bytes ( script_pubkey )
for k in range ( 128 ) :
# add txout value
txouts = txouts + " 0000000000000000 "
# add length of script_pubkey
txouts = txouts + " fd0402 "
# add script_pubkey
txouts = txouts + script_pubkey
txouts . append ( txout )
return txouts
# Create a spend of each passed-in utxo, splicing in "txouts" to each raw
@ -530,6 +530,7 @@ def gen_return_txouts():
def create_lots_of_big_transactions ( node , txouts , utxos , num , fee ) :
addr = node . getnewaddress ( )
txids = [ ]
from . messages import CTransaction
for _ in range ( num ) :
t = utxos . pop ( )
inputs = [ { " txid " : t [ " txid " ] , " vout " : t [ " vout " ] } ]
@ -537,9 +538,11 @@ def create_lots_of_big_transactions(node, txouts, utxos, num, fee):
change = t [ ' amount ' ] - fee
outputs [ addr ] = satoshi_round ( change )
rawtx = node . createrawtransaction ( inputs , outputs )
newtx = rawtx [ 0 : 92 ]
newtx = newtx + txouts
newtx = newtx + rawtx [ 94 : ]
tx = CTransaction ( )
tx . deserialize ( BytesIO ( hex_str_to_bytes ( rawtx ) ) )
for txout in txouts :
tx . vout . append ( txout )
newtx = tx . serialize ( ) . hex ( )
signresult = node . signrawtransactionwithwallet ( newtx , None , " NONE " )
txid = node . sendrawtransaction ( signresult [ " hex " ] , 0 )
txids . append ( txid )