@@ -262,6 +262,8 @@ def compare(actual, expected):
262262 # pak1 will now create a pegout.
263263 pak1_pegout_txid = self .nodes [i_pak1 ].sendtomainchain ("" , 1 )["txid" ]
264264 assert_equal (self .nodes [i_pak1 ].getwalletpakinfo ()["bip32_counter" ], "1" )
265+ # Also spend the change to make chained payment that will be rejected as well
266+ pak1_child_txid = self .nodes [i_pak1 ].sendtoaddress (self .nodes [i_pak1 ].getnewaddress (), self .nodes [i_pak1 ].getbalance (), "" , "" , True )
265267
266268
267269 # Wait for two nodes to get transaction in mempool only
@@ -285,9 +287,20 @@ def compare(actual, expected):
285287
286288 assert_equal (pak1_pegout_txid in self .nodes [i_novalidate ].getrawmempool (), False )
287289 assert_equal (pak1_pegout_txid in self .nodes [i_undefined ].getrawmempool (), False )
290+ assert_equal (pak1_pegout_txid in self .nodes [i_pak1 ].getrawmempool (), True )
288291 assert_equal (pak1_pegout_txid in self .nodes [i_pak2 ].getrawmempool (), False )
289292 assert_equal (pak1_pegout_txid in self .nodes [i_reject ].getrawmempool (), False )
290293
294+ assert_equal (self .nodes [i_pak1 ].gettransaction (pak1_pegout_txid )["confirmations" ], 0 )
295+
296+ # Make sure child payment also bumped from mempool
297+ assert_equal (pak1_child_txid in self .nodes [i_novalidate ].getrawmempool (), False )
298+ assert_equal (pak1_child_txid in self .nodes [i_undefined ].getrawmempool (), False )
299+ assert_equal (pak1_child_txid in self .nodes [i_pak1 ].getrawmempool (), True )
300+ assert_equal (pak1_child_txid in self .nodes [i_pak2 ].getrawmempool (), False )
301+ assert_equal (pak1_child_txid in self .nodes [i_reject ].getrawmempool (), False )
302+
303+ assert_equal (self .nodes [i_pak1 ].gettransaction (pak1_child_txid )["confirmations" ], 0 )
291304 # Fail to peg-out too-small value
292305 assert_raises_rpc_error (- 8 , "Invalid amount for send, must send more than 0.0001 BTC" , self .nodes [i_undefined ].sendtomainchain , "" , Decimal ('0.0009' ))
293306
0 commit comments