@@ -66,15 +66,11 @@ def run_test(self):
66
66
# For more information on merkle-root malleability see src/consensus/merkle.cpp.
67
67
self .log .info ("Test merkle root malleability." )
68
68
69
- block2 = create_block (tip , create_coinbase (height ), block_time )
70
- block_time += 1
71
-
72
69
# b'0x51' is OP_TRUE
73
70
tx1 = create_tx_with_script (block1 .vtx [0 ], 0 , script_sig = b'\x51 ' , amount = 50 * COIN )
74
71
tx2 = create_tx_with_script (tx1 , 0 , script_sig = b'\x51 ' , amount = 50 * COIN )
75
-
76
- block2 .vtx .extend ([tx1 , tx2 ])
77
- block2 .hashMerkleRoot = block2 .calc_merkle_root ()
72
+ block2 = create_block (tip , create_coinbase (height ), block_time , txlist = [tx1 , tx2 ])
73
+ block_time += 1
78
74
block2 .solve ()
79
75
orig_hash = block2 .sha256
80
76
block2_orig = copy .deepcopy (block2 )
@@ -99,12 +95,8 @@ def run_test(self):
99
95
100
96
self .log .info ("Test very broken block." )
101
97
102
- block3 = create_block (tip , create_coinbase (height ), block_time )
98
+ block3 = create_block (tip , create_coinbase (height , nValue = 100 ), block_time )
103
99
block_time += 1
104
- block3 .vtx [0 ].vout [0 ].nValue = 100 * COIN # Too high!
105
- block3 .vtx [0 ].sha256 = None
106
- block3 .vtx [0 ].calc_sha256 ()
107
- block3 .hashMerkleRoot = block3 .calc_merkle_root ()
108
100
block3 .solve ()
109
101
110
102
peer .send_blocks_and_test ([block3 ], node , success = False , reject_reason = 'bad-cb-amount' )
@@ -123,14 +115,10 @@ def run_test(self):
123
115
124
116
# Complete testing of CVE-2018-17144, by checking for the inflation bug.
125
117
# Create a block that spends the output of a tx in a previous block.
126
- block4 = create_block (tip , create_coinbase (height ), block_time )
127
118
tx3 = create_tx_with_script (tx2 , 0 , script_sig = b'\x51 ' , amount = 50 * COIN )
128
-
129
- # Duplicates input
130
- tx3 .vin .append (tx3 .vin [0 ])
119
+ tx3 .vin .append (tx3 .vin [0 ]) # Duplicates input
131
120
tx3 .rehash ()
132
- block4 .vtx .append (tx3 )
133
- block4 .hashMerkleRoot = block4 .calc_merkle_root ()
121
+ block4 = create_block (tip , create_coinbase (height ), block_time , txlist = [tx3 ])
134
122
block4 .solve ()
135
123
self .log .info ("Test inflation by duplicating input" )
136
124
peer .send_blocks_and_test ([block4 ], node , success = False , reject_reason = 'bad-txns-inputs-duplicate' )
@@ -140,7 +128,6 @@ def run_test(self):
140
128
node .setmocktime (t )
141
129
# Set block time +1 second past max future validity
142
130
block = create_block (tip , create_coinbase (height ), t + MAX_FUTURE_BLOCK_TIME + 1 )
143
- block .hashMerkleRoot = block .calc_merkle_root ()
144
131
block .solve ()
145
132
# Need force_send because the block will get rejected without a getdata otherwise
146
133
peer .send_blocks_and_test ([block ], node , force_send = True , success = False , reject_reason = 'time-too-new' )
0 commit comments