16
16
import os
17
17
18
18
from test_framework .test_framework import BitcoinTestFramework
19
+ from test_framework .wallet import MiniWallet
19
20
20
21
21
22
class MempoolCompatibilityTest (BitcoinTestFramework ):
22
23
def set_test_params (self ):
23
24
self .num_nodes = 2
24
- self .wallet_names = [None , self . default_wallet_name ]
25
+ self .wallet_names = [None ]
25
26
26
27
def skip_test_if_missing_module (self ):
27
- self .skip_if_no_wallet ()
28
28
self .skip_if_no_previous_releases ()
29
29
30
30
def setup_network (self ):
@@ -38,8 +38,15 @@ def setup_network(self):
38
38
def run_test (self ):
39
39
self .log .info ("Test that mempool.dat is compatible between versions" )
40
40
41
- old_node = self .nodes [0 ]
42
- new_node = self .nodes [1 ]
41
+ old_node , new_node = self .nodes
42
+ new_wallet = MiniWallet (new_node )
43
+ new_wallet .generate (1 )
44
+ new_node .generate (100 )
45
+ # Sync the nodes to ensure old_node has the block that contains the coinbase that new_wallet will spend.
46
+ # Otherwise, because coinbases are only valid in a block and not as loose txns, if the nodes aren't synced
47
+ # unbroadcasted_tx won't pass old_node's `MemPoolAccept::PreChecks`.
48
+ self .connect_nodes (0 , 1 )
49
+ self .sync_blocks ()
43
50
recipient = old_node .getnewaddress ()
44
51
self .stop_node (1 )
45
52
@@ -58,7 +65,7 @@ def run_test(self):
58
65
assert old_tx_hash in new_node .getrawmempool ()
59
66
60
67
self .log .info ("Add unbroadcasted tx to mempool on new node and shutdown" )
61
- unbroadcasted_tx_hash = new_node . sendtoaddress ( recipient , 0.0001 )
68
+ unbroadcasted_tx_hash = new_wallet . send_self_transfer ( from_node = new_node )[ 'txid' ]
62
69
assert unbroadcasted_tx_hash in new_node .getrawmempool ()
63
70
mempool = new_node .getrawmempool (True )
64
71
assert mempool [unbroadcasted_tx_hash ]['unbroadcast' ]
0 commit comments