@ -232,7 +232,7 @@ class SegWitTest(BitcoinTestFramework):
@@ -232,7 +232,7 @@ class SegWitTest(BitcoinTestFramework):
# to a transaction, eg by violating standardness checks.
tx2 = CTransaction ( )
tx2 . vin . append ( CTxIn ( COutPoint ( tx . sha256 , 0 ) , b " " ) )
tx2 . vout . append ( CTxOut ( tx . vout [ 0 ] . nValue - 1000 , scriptPubKey ) )
tx2 . vout . append ( CTxOut ( tx . vout [ 0 ] . nValue - 100000 , scriptPubKey ) )
tx2 . rehash ( )
test_transaction_acceptance ( self . nodes [ 0 ] . rpc , self . test_node , tx2 , False , True )
self . nodes [ 0 ] . generate ( 1 )
@ -245,7 +245,7 @@ class SegWitTest(BitcoinTestFramework):
@@ -245,7 +245,7 @@ class SegWitTest(BitcoinTestFramework):
# to the rejection cache.
tx3 = CTransaction ( )
tx3 . vin . append ( CTxIn ( COutPoint ( tx2 . sha256 , 0 ) , CScript ( [ p2sh_program ] ) ) )
tx3 . vout . append ( CTxOut ( tx2 . vout [ 0 ] . nValue - 1000 , scriptPubKey ) )
tx3 . vout . append ( CTxOut ( tx2 . vout [ 0 ] . nValue - 100000 , scriptPubKey ) )
tx3 . wit . vtxinwit . append ( CTxInWitness ( ) )
tx3 . wit . vtxinwit [ 0 ] . scriptWitness . stack = [ b ' a ' * 400000 ]
tx3 . rehash ( )
@ -259,7 +259,7 @@ class SegWitTest(BitcoinTestFramework):
@@ -259,7 +259,7 @@ class SegWitTest(BitcoinTestFramework):
# Now create a new anyone-can-spend utxo for the next test.
tx4 = CTransaction ( )
tx4 . vin . append ( CTxIn ( COutPoint ( tx3 . sha256 , 0 ) , CScript ( [ p2sh_program ] ) ) )
tx4 . vout . append ( CTxOut ( tx3 . vout [ 0 ] . nValue - 1000 , CScript ( [ OP_TRUE ] ) ) )
tx4 . vout . append ( CTxOut ( tx3 . vout [ 0 ] . nValue - 100000 , CScript ( [ OP_TRUE ] ) ) )
tx4 . rehash ( )
test_transaction_acceptance ( self . nodes [ 0 ] . rpc , self . test_node , tx3 , False , True )
test_transaction_acceptance ( self . nodes [ 0 ] . rpc , self . test_node , tx4 , False , True )
@ -572,7 +572,7 @@ class SegWitTest(BitcoinTestFramework):
@@ -572,7 +572,7 @@ class SegWitTest(BitcoinTestFramework):
# First try extra witness data on a tx that doesn't require a witness
tx = CTransaction ( )
tx . vin . append ( CTxIn ( COutPoint ( self . utxo [ 0 ] . sha256 , self . utxo [ 0 ] . n ) , b " " ) )
tx . vout . append ( CTxOut ( self . utxo [ 0 ] . nValue - 2000 , scriptPubKey ) )
tx . vout . append ( CTxOut ( self . utxo [ 0 ] . nValue - 200000 , scriptPubKey ) )
tx . vout . append ( CTxOut ( 1000 , CScript ( [ OP_TRUE ] ) ) ) # non-witness output
tx . wit . vtxinwit . append ( CTxInWitness ( ) )
tx . wit . vtxinwit [ 0 ] . scriptWitness . stack = [ CScript ( [ ] ) ]
@ -647,12 +647,12 @@ class SegWitTest(BitcoinTestFramework):
@@ -647,12 +647,12 @@ class SegWitTest(BitcoinTestFramework):
tx = CTransaction ( )
tx . vin . append ( CTxIn ( COutPoint ( self . utxo [ 0 ] . sha256 , self . utxo [ 0 ] . n ) , b " " ) )
tx . vout . append ( CTxOut ( self . utxo [ 0 ] . nValue - 1000 , scriptPubKey ) )
tx . vout . append ( CTxOut ( self . utxo [ 0 ] . nValue - 100000 , scriptPubKey ) )
tx . rehash ( )
tx2 = CTransaction ( )
tx2 . vin . append ( CTxIn ( COutPoint ( tx . sha256 , 0 ) , b " " ) )
tx2 . vout . append ( CTxOut ( tx . vout [ 0 ] . nValue - 1000 , CScript ( [ OP_TRUE ] ) ) )
tx2 . vout . append ( CTxOut ( tx . vout [ 0 ] . nValue - 100000 , CScript ( [ OP_TRUE ] ) ) )
tx2 . wit . vtxinwit . append ( CTxInWitness ( ) )
# First try a 521-byte stack element
tx2 . wit . vtxinwit [ 0 ] . scriptWitness . stack = [ b ' a ' * ( MAX_SCRIPT_ELEMENT_SIZE + 1 ) , witness_program ]
@ -689,12 +689,12 @@ class SegWitTest(BitcoinTestFramework):
@@ -689,12 +689,12 @@ class SegWitTest(BitcoinTestFramework):
tx = CTransaction ( )
tx . vin . append ( CTxIn ( COutPoint ( self . utxo [ 0 ] . sha256 , self . utxo [ 0 ] . n ) , b " " ) )
tx . vout . append ( CTxOut ( self . utxo [ 0 ] . nValue - 1000 , long_scriptPubKey ) )
tx . vout . append ( CTxOut ( self . utxo [ 0 ] . nValue - 100000 , long_scriptPubKey ) )
tx . rehash ( )
tx2 = CTransaction ( )
tx2 . vin . append ( CTxIn ( COutPoint ( tx . sha256 , 0 ) , b " " ) )
tx2 . vout . append ( CTxOut ( tx . vout [ 0 ] . nValue - 1000 , CScript ( [ OP_TRUE ] ) ) )
tx2 . vout . append ( CTxOut ( tx . vout [ 0 ] . nValue - 100000 , CScript ( [ OP_TRUE ] ) ) )
tx2 . wit . vtxinwit . append ( CTxInWitness ( ) )
tx2 . wit . vtxinwit [ 0 ] . scriptWitness . stack = [ b ' a ' ] * 44 + [ long_witness_program ]
tx2 . rehash ( )
@ -814,7 +814,7 @@ class SegWitTest(BitcoinTestFramework):
@@ -814,7 +814,7 @@ class SegWitTest(BitcoinTestFramework):
assert ( len ( self . utxo ) )
tx = CTransaction ( )
tx . vin . append ( CTxIn ( COutPoint ( self . utxo [ 0 ] . sha256 , self . utxo [ 0 ] . n ) , b " " ) )
tx . vout . append ( CTxOut ( self . utxo [ 0 ] . nValue - 1000 , CScript ( [ OP_TRUE ] ) ) )
tx . vout . append ( CTxOut ( self . utxo [ 0 ] . nValue - 100000 , CScript ( [ OP_TRUE ] ) ) )
tx . wit . vtxinwit . append ( CTxInWitness ( ) )
tx . wit . vtxinwit [ 0 ] . scriptWitness . stack = [ b ' a ' ]
tx . rehash ( )
@ -866,7 +866,7 @@ class SegWitTest(BitcoinTestFramework):
@@ -866,7 +866,7 @@ class SegWitTest(BitcoinTestFramework):
assert ( len ( self . utxo ) )
tx = CTransaction ( )
tx . vin . append ( CTxIn ( COutPoint ( self . utxo [ 0 ] . sha256 , self . utxo [ 0 ] . n ) , b " " ) )
tx . vout . append ( CTxOut ( self . utxo [ 0 ] . nValue - 1000 , CScript ( [ OP_TRUE ] ) ) )
tx . vout . append ( CTxOut ( self . utxo [ 0 ] . nValue - 100000 , CScript ( [ OP_TRUE ] ) ) )
tx . wit . vtxinwit . append ( CTxInWitness ( ) )
tx . wit . vtxinwit [ 0 ] . scriptWitness . stack = [ b ' a ' ]
tx . rehash ( )
@ -888,7 +888,7 @@ class SegWitTest(BitcoinTestFramework):
@@ -888,7 +888,7 @@ class SegWitTest(BitcoinTestFramework):
scriptPubKey = CScript ( [ OP_0 , witness_hash ] )
tx2 = CTransaction ( )
tx2 . vin . append ( CTxIn ( COutPoint ( tx_hash , 0 ) , b " " ) )
tx2 . vout . append ( CTxOut ( tx . vout [ 0 ] . nValue - 1000 , scriptPubKey ) )
tx2 . vout . append ( CTxOut ( tx . vout [ 0 ] . nValue - 100000 , scriptPubKey ) )
tx2 . rehash ( )
tx3 = CTransaction ( )
@ -899,7 +899,7 @@ class SegWitTest(BitcoinTestFramework):
@@ -899,7 +899,7 @@ class SegWitTest(BitcoinTestFramework):
p2sh_program = CScript ( [ OP_TRUE ] )
p2sh_pubkey = hash160 ( p2sh_program )
witness_program2 = CScript ( [ b ' a ' * 400000 ] )
tx3 . vout . append ( CTxOut ( tx2 . vout [ 0 ] . nValue - 1000 , CScript ( [ OP_HASH160 , p2sh_pubkey , OP_EQUAL ] ) ) )
tx3 . vout . append ( CTxOut ( tx2 . vout [ 0 ] . nValue - 100000 , CScript ( [ OP_HASH160 , p2sh_pubkey , OP_EQUAL ] ) ) )
tx3 . wit . vtxinwit [ 0 ] . scriptWitness . stack = [ witness_program2 ]
tx3 . rehash ( )
@ -910,7 +910,7 @@ class SegWitTest(BitcoinTestFramework):
@@ -910,7 +910,7 @@ class SegWitTest(BitcoinTestFramework):
test_transaction_acceptance ( self . nodes [ 1 ] . rpc , self . std_node , tx3 , True , False , b ' tx-size ' )
# Remove witness stuffing, instead add extra witness push on stack
tx3 . vout [ 0 ] = CTxOut ( tx2 . vout [ 0 ] . nValue - 1000 , CScript ( [ OP_TRUE ] ) )
tx3 . vout [ 0 ] = CTxOut ( tx2 . vout [ 0 ] . nValue - 100000 , CScript ( [ OP_TRUE ] ) )
tx3 . wit . vtxinwit [ 0 ] . scriptWitness . stack = [ CScript ( [ CScriptNum ( 1 ) ] ) , witness_program ]
tx3 . rehash ( )
@ -1054,7 +1054,7 @@ class SegWitTest(BitcoinTestFramework):
@@ -1054,7 +1054,7 @@ class SegWitTest(BitcoinTestFramework):
# First prepare a p2sh output (so that spending it will pass standardness)
p2sh_tx = CTransaction ( )
p2sh_tx . vin = [ CTxIn ( COutPoint ( self . utxo [ 0 ] . sha256 , self . utxo [ 0 ] . n ) , b " " ) ]
p2sh_tx . vout = [ CTxOut ( self . utxo [ 0 ] . nValue - 1000 , p2sh_scriptPubKey ) ]
p2sh_tx . vout = [ CTxOut ( self . utxo [ 0 ] . nValue - 100000 , p2sh_scriptPubKey ) ]
p2sh_tx . rehash ( )
# Mine it on test_node to create the confirmed output.
@ -1066,8 +1066,8 @@ class SegWitTest(BitcoinTestFramework):
@@ -1066,8 +1066,8 @@ class SegWitTest(BitcoinTestFramework):
# Start by creating a transaction with two outputs.
tx = CTransaction ( )
tx . vin = [ CTxIn ( COutPoint ( p2sh_tx . sha256 , 0 ) , CScript ( [ witness_program ] ) ) ]
tx . vout = [ CTxOut ( p2sh_tx . vout [ 0 ] . nValue - 10000 , scriptPubKey ) ]
tx . vout . append ( CTxOut ( 8000 , scriptPubKey ) ) # Might burn this later
tx . vout = [ CTxOut ( p2sh_tx . vout [ 0 ] . nValue - 1000000 , scriptPubKey ) ]
tx . vout . append ( CTxOut ( 800000 , scriptPubKey ) ) # Might burn this later
tx . rehash ( )
test_transaction_acceptance ( self . nodes [ 1 ] . rpc , self . std_node , tx , with_witness = True , accepted = segwit_activated )
@ -1078,13 +1078,13 @@ class SegWitTest(BitcoinTestFramework):
@@ -1078,13 +1078,13 @@ class SegWitTest(BitcoinTestFramework):
if segwit_activated :
# if tx was accepted, then we spend the second output.
tx2 . vin = [ CTxIn ( COutPoint ( tx . sha256 , 1 ) , b " " ) ]
tx2 . vout = [ CTxOut ( 7000 , scriptPubKey ) ]
tx2 . vout = [ CTxOut ( 700000 , scriptPubKey ) ]
tx2 . wit . vtxinwit . append ( CTxInWitness ( ) )
tx2 . wit . vtxinwit [ 0 ] . scriptWitness . stack = [ witness_program ]
else :
# if tx wasn't accepted, we just re-spend the p2sh output we started with.
tx2 . vin = [ CTxIn ( COutPoint ( p2sh_tx . sha256 , 0 ) , CScript ( [ witness_program ] ) ) ]
tx2 . vout = [ CTxOut ( p2sh_tx . vout [ 0 ] . nValue - 1000 , scriptPubKey ) ]
tx2 . vout = [ CTxOut ( p2sh_tx . vout [ 0 ] . nValue - 100000 , scriptPubKey ) ]
tx2 . rehash ( )
test_transaction_acceptance ( self . nodes [ 1 ] . rpc , self . std_node , tx2 , with_witness = True , accepted = segwit_activated )
@ -1096,7 +1096,7 @@ class SegWitTest(BitcoinTestFramework):
@@ -1096,7 +1096,7 @@ class SegWitTest(BitcoinTestFramework):
# P2PKH output; just send tx's first output back to an anyone-can-spend.
sync_mempools ( [ self . nodes [ 0 ] , self . nodes [ 1 ] ] )
tx3 . vin = [ CTxIn ( COutPoint ( tx . sha256 , 0 ) , b " " ) ]
tx3 . vout = [ CTxOut ( tx . vout [ 0 ] . nValue - 1000 , CScript ( [ OP_TRUE ] ) ) ]
tx3 . vout = [ CTxOut ( tx . vout [ 0 ] . nValue - 100000 , CScript ( [ OP_TRUE ] ) ) ]
tx3 . wit . vtxinwit . append ( CTxInWitness ( ) )
tx3 . wit . vtxinwit [ 0 ] . scriptWitness . stack = [ witness_program ]
tx3 . rehash ( )
@ -1104,7 +1104,7 @@ class SegWitTest(BitcoinTestFramework):
@@ -1104,7 +1104,7 @@ class SegWitTest(BitcoinTestFramework):
else :
# tx and tx2 didn't go anywhere; just clean up the p2sh_tx output.
tx3 . vin = [ CTxIn ( COutPoint ( p2sh_tx . sha256 , 0 ) , CScript ( [ witness_program ] ) ) ]
tx3 . vout = [ CTxOut ( p2sh_tx . vout [ 0 ] . nValue - 1000 , witness_program ) ]
tx3 . vout = [ CTxOut ( p2sh_tx . vout [ 0 ] . nValue - 100000 , witness_program ) ]
tx3 . rehash ( )
test_transaction_acceptance ( self . nodes [ 0 ] . rpc , self . test_node , tx3 , with_witness = True , accepted = True )
@ -1124,7 +1124,7 @@ class SegWitTest(BitcoinTestFramework):
@@ -1124,7 +1124,7 @@ class SegWitTest(BitcoinTestFramework):
if ( len ( self . utxo ) < NUM_TESTS ) :
tx = CTransaction ( )
tx . vin . append ( CTxIn ( COutPoint ( self . utxo [ 0 ] . sha256 , self . utxo [ 0 ] . n ) , b " " ) )
split_value = ( self . utxo [ 0 ] . nValue - 4000 ) / / NUM_TESTS
split_value = ( self . utxo [ 0 ] . nValue - 400000 ) / / NUM_TESTS
for i in range ( NUM_TESTS ) :
tx . vout . append ( CTxOut ( split_value , CScript ( [ OP_TRUE ] ) ) )
tx . rehash ( )
@ -1147,7 +1147,7 @@ class SegWitTest(BitcoinTestFramework):
@@ -1147,7 +1147,7 @@ class SegWitTest(BitcoinTestFramework):
# First try to spend to a future version segwit scriptPubKey.
scriptPubKey = CScript ( [ CScriptOp ( version ) , witness_hash ] )
tx . vin = [ CTxIn ( COutPoint ( self . utxo [ 0 ] . sha256 , self . utxo [ 0 ] . n ) , b " " ) ]
tx . vout = [ CTxOut ( self . utxo [ 0 ] . nValue - 1000 , scriptPubKey ) ]
tx . vout = [ CTxOut ( self . utxo [ 0 ] . nValue - 100000 , scriptPubKey ) ]
tx . rehash ( )
test_transaction_acceptance ( self . nodes [ 1 ] . rpc , self . std_node , tx , with_witness = True , accepted = False )
test_transaction_acceptance ( self . nodes [ 0 ] . rpc , self . test_node , tx , with_witness = True , accepted = True )
@ -1163,7 +1163,7 @@ class SegWitTest(BitcoinTestFramework):
@@ -1163,7 +1163,7 @@ class SegWitTest(BitcoinTestFramework):
scriptPubKey = CScript ( [ CScriptOp ( OP_1 ) , witness_hash ] )
tx2 = CTransaction ( )
tx2 . vin = [ CTxIn ( COutPoint ( tx . sha256 , 0 ) , b " " ) ]
tx2 . vout = [ CTxOut ( tx . vout [ 0 ] . nValue - 1000 , scriptPubKey ) ]
tx2 . vout = [ CTxOut ( tx . vout [ 0 ] . nValue - 100000 , scriptPubKey ) ]
tx2 . wit . vtxinwit . append ( CTxInWitness ( ) )
tx2 . wit . vtxinwit [ 0 ] . scriptWitness . stack = [ witness_program ]
tx2 . rehash ( )
@ -1182,7 +1182,7 @@ class SegWitTest(BitcoinTestFramework):
@@ -1182,7 +1182,7 @@ class SegWitTest(BitcoinTestFramework):
tx3 . wit . vtxinwit . append ( CTxInWitness ( ) )
total_value + = i . nValue
tx3 . wit . vtxinwit [ - 1 ] . scriptWitness . stack = [ witness_program ]
tx3 . vout . append ( CTxOut ( total_value - 1000 , CScript ( [ OP_TRUE ] ) ) )
tx3 . vout . append ( CTxOut ( total_value - 100000 , CScript ( [ OP_TRUE ] ) ) )
tx3 . rehash ( )
# Spending a higher version witness output is not allowed by policy,
# even with fRequireStandard=false.
@ -1250,7 +1250,7 @@ class SegWitTest(BitcoinTestFramework):
@@ -1250,7 +1250,7 @@ class SegWitTest(BitcoinTestFramework):
assert ( len ( self . utxo ) )
tx = CTransaction ( )
tx . vin . append ( CTxIn ( COutPoint ( self . utxo [ 0 ] . sha256 , self . utxo [ 0 ] . n ) , b " " ) )
tx . vout . append ( CTxOut ( self . utxo [ 0 ] . nValue - 1000 , scriptPubKey ) )
tx . vout . append ( CTxOut ( self . utxo [ 0 ] . nValue - 100000 , scriptPubKey ) )
tx . rehash ( )
test_transaction_acceptance ( self . nodes [ 0 ] . rpc , self . test_node , tx , with_witness = True , accepted = True )
@ -1269,7 +1269,7 @@ class SegWitTest(BitcoinTestFramework):
@@ -1269,7 +1269,7 @@ class SegWitTest(BitcoinTestFramework):
block = self . build_next_block ( )
tx = CTransaction ( )
tx . vin . append ( CTxIn ( COutPoint ( prev_utxo . sha256 , prev_utxo . n ) , b " " ) )
tx . vout . append ( CTxOut ( prev_utxo . nValue - 1000 , scriptPubKey ) )
tx . vout . append ( CTxOut ( prev_utxo . nValue - 100000 , scriptPubKey ) )
tx . wit . vtxinwit . append ( CTxInWitness ( ) )
# Too-large input value
sign_P2PK_witness_input ( witness_program , tx , 0 , hashtype , prev_utxo . nValue + 1 , key )
@ -1436,7 +1436,7 @@ class SegWitTest(BitcoinTestFramework):
@@ -1436,7 +1436,7 @@ class SegWitTest(BitcoinTestFramework):
# Fund the P2SH output
tx = CTransaction ( )
tx . vin . append ( CTxIn ( COutPoint ( self . utxo [ 0 ] . sha256 , self . utxo [ 0 ] . n ) , b " " ) )
tx . vout . append ( CTxOut ( self . utxo [ 0 ] . nValue - 1000 , scriptPubKey ) )
tx . vout . append ( CTxOut ( self . utxo [ 0 ] . nValue - 100000 , scriptPubKey ) )
tx . rehash ( )
# Verify mempool acceptance and block validity
@ -1449,7 +1449,7 @@ class SegWitTest(BitcoinTestFramework):
@@ -1449,7 +1449,7 @@ class SegWitTest(BitcoinTestFramework):
# Now test attempts to spend the output.
spend_tx = CTransaction ( )
spend_tx . vin . append ( CTxIn ( COutPoint ( tx . sha256 , 0 ) , scriptSig ) )
spend_tx . vout . append ( CTxOut ( tx . vout [ 0 ] . nValue - 1000 , CScript ( [ OP_TRUE ] ) ) )
spend_tx . vout . append ( CTxOut ( tx . vout [ 0 ] . nValue - 100000 , CScript ( [ OP_TRUE ] ) ) )
spend_tx . rehash ( )
# This transaction should not be accepted into the mempool pre- or
@ -1691,7 +1691,7 @@ class SegWitTest(BitcoinTestFramework):
@@ -1691,7 +1691,7 @@ class SegWitTest(BitcoinTestFramework):
scriptPKH = CScript ( [ OP_0 , pubkeyhash ] )
tx = CTransaction ( )
tx . vin . append ( CTxIn ( COutPoint ( utxo . sha256 , utxo . n ) , b " " ) )
tx . vout . append ( CTxOut ( utxo . nValue - 1000 , scriptPKH ) )
tx . vout . append ( CTxOut ( utxo . nValue - 100000 , scriptPKH ) )
tx . rehash ( )
# Confirm it in a block.
@ -1707,7 +1707,7 @@ class SegWitTest(BitcoinTestFramework):
@@ -1707,7 +1707,7 @@ class SegWitTest(BitcoinTestFramework):
tx2 = CTransaction ( )
tx2 . vin . append ( CTxIn ( COutPoint ( tx . sha256 , 0 ) , b " " ) )
tx2 . vout . append ( CTxOut ( tx . vout [ 0 ] . nValue - 1000 , scriptWSH ) )
tx2 . vout . append ( CTxOut ( tx . vout [ 0 ] . nValue - 100000 , scriptWSH ) )
script = GetP2PKHScript ( pubkeyhash )
sig_hash = SegwitVersion1SignatureHash ( script , tx2 , 0 , SIGHASH_ALL , tx . vout [ 0 ] . nValue )
signature = key . sign ( sig_hash ) + b ' \x01 ' # 0x1 is SIGHASH_ALL
@ -1731,7 +1731,7 @@ class SegWitTest(BitcoinTestFramework):
@@ -1731,7 +1731,7 @@ class SegWitTest(BitcoinTestFramework):
tx3 = CTransaction ( )
tx3 . vin . append ( CTxIn ( COutPoint ( tx2 . sha256 , 0 ) , b " " ) )
tx3 . vout . append ( CTxOut ( tx2 . vout [ 0 ] . nValue - 1000 , scriptP2SH ) )
tx3 . vout . append ( CTxOut ( tx2 . vout [ 0 ] . nValue - 100000 , scriptP2SH ) )
tx3 . wit . vtxinwit . append ( CTxInWitness ( ) )
sign_P2PK_witness_input ( witness_program , tx3 , 0 , SIGHASH_ALL , tx2 . vout [ 0 ] . nValue , key )
@ -1748,7 +1748,7 @@ class SegWitTest(BitcoinTestFramework):
@@ -1748,7 +1748,7 @@ class SegWitTest(BitcoinTestFramework):
scriptPubKey = GetP2PKHScript ( pubkeyhash )
tx4 = CTransaction ( )
tx4 . vin . append ( CTxIn ( COutPoint ( tx3 . sha256 , 0 ) , scriptSig ) )
tx4 . vout . append ( CTxOut ( tx3 . vout [ 0 ] . nValue - 1000 , scriptPubKey ) )
tx4 . vout . append ( CTxOut ( tx3 . vout [ 0 ] . nValue - 100000 , scriptPubKey ) )
tx4 . wit . vtxinwit . append ( CTxInWitness ( ) )
sign_P2PK_witness_input ( witness_program , tx4 , 0 , SIGHASH_ALL , tx3 . vout [ 0 ] . nValue , key )
@ -1762,7 +1762,7 @@ class SegWitTest(BitcoinTestFramework):
@@ -1762,7 +1762,7 @@ class SegWitTest(BitcoinTestFramework):
# transactions.
tx5 = CTransaction ( )
tx5 . vin . append ( CTxIn ( COutPoint ( tx4 . sha256 , 0 ) , b " " ) )
tx5 . vout . append ( CTxOut ( tx4 . vout [ 0 ] . nValue - 1000 , CScript ( [ OP_TRUE ] ) ) )
tx5 . vout . append ( CTxOut ( tx4 . vout [ 0 ] . nValue - 100000 , CScript ( [ OP_TRUE ] ) ) )
( sig_hash , err ) = SignatureHash ( scriptPubKey , tx5 , 0 , SIGHASH_ALL )
signature = key . sign ( sig_hash ) + b ' \x01 ' # 0x1 is SIGHASH_ALL
tx5 . vin [ 0 ] . scriptSig = CScript ( [ signature , pubkey ] )
@ -1792,7 +1792,7 @@ class SegWitTest(BitcoinTestFramework):
@@ -1792,7 +1792,7 @@ class SegWitTest(BitcoinTestFramework):
tx . vin . append ( CTxIn ( COutPoint ( self . utxo [ 0 ] . sha256 , self . utxo [ 0 ] . n ) , b " " ) )
# For each script, generate a pair of P2WSH and P2SH-P2WSH output.
outputvalue = ( self . utxo [ 0 ] . nValue - 1000 ) / / ( len ( scripts ) * 2 )
outputvalue = ( self . utxo [ 0 ] . nValue - 100000 ) / / ( len ( scripts ) * 2 )
for i in scripts :
p2wsh = CScript ( [ OP_0 , sha256 ( i ) ] )
p2sh = hash160 ( p2wsh )
@ -1812,13 +1812,13 @@ class SegWitTest(BitcoinTestFramework):
@@ -1812,13 +1812,13 @@ class SegWitTest(BitcoinTestFramework):
for i in range ( len ( scripts ) ) :
p2wsh_tx = CTransaction ( )
p2wsh_tx . vin . append ( CTxIn ( COutPoint ( txid , i * 2 ) ) )
p2wsh_tx . vout . append ( CTxOut ( outputvalue - 5000 , CScript ( [ OP_0 , hash160 ( hex_str_to_bytes ( " " ) ) ] ) ) )
p2wsh_tx . vout . append ( CTxOut ( outputvalue - 500000 , CScript ( [ OP_0 , hash160 ( hex_str_to_bytes ( " " ) ) ] ) ) )
p2wsh_tx . wit . vtxinwit . append ( CTxInWitness ( ) )
p2wsh_tx . rehash ( )
p2wsh_txs . append ( p2wsh_tx )
p2sh_tx = CTransaction ( )
p2sh_tx . vin . append ( CTxIn ( COutPoint ( txid , i * 2 + 1 ) , CScript ( [ p2wsh_scripts [ i ] ] ) ) )
p2sh_tx . vout . append ( CTxOut ( outputvalue - 5000 , CScript ( [ OP_0 , hash160 ( hex_str_to_bytes ( " " ) ) ] ) ) )
p2sh_tx . vout . append ( CTxOut ( outputvalue - 500000 , CScript ( [ OP_0 , hash160 ( hex_str_to_bytes ( " " ) ) ] ) ) )
p2sh_tx . wit . vtxinwit . append ( CTxInWitness ( ) )
p2sh_tx . rehash ( )
p2sh_txs . append ( p2sh_tx )