66
77from decimal import Decimal
88
9- from test_framework .blocktools import COINBASE_MATURITY
10- from test_framework .messages import COIN , MAX_BLOCK_SIZE
9+ from test_framework .messages import (
10+ COIN ,
11+ MAX_BLOCK_SIZE ,
12+ )
1113from test_framework .test_framework import BitcoinTestFramework
12- from test_framework .util import assert_equal , assert_raises_rpc_error , create_confirmed_utxos , create_lots_of_big_transactions , gen_return_txouts
14+ from test_framework .util import (
15+ assert_equal ,
16+ assert_raises_rpc_error ,
17+ create_lots_of_big_transactions ,
18+ gen_return_txouts ,
19+ )
1320from test_framework .wallet import MiniWallet
1421
1522
1623class PrioritiseTransactionTest (BitcoinTestFramework ):
1724 def set_test_params (self ):
18- self .setup_clean_chain = True
19- self .num_nodes = 2
25+ self .num_nodes = 1
2026 self .extra_args = [[
2127 "-printpriority=1" ,
2228 "-datacarriersize=100000" ,
2329 ]] * self .num_nodes
2430 self .supports_cli = False
2531
26- def skip_test_if_missing_module (self ):
27- self .skip_if_no_wallet ()
28-
2932 def test_diamond (self ):
3033 self .log .info ("Test diamond-shape package with priority" )
31- self .generate (self .wallet , COINBASE_MATURITY + 1 )
3234 self .nodes [0 ].setmocktime (self .mocktime )
3335
3436 # tx_a
@@ -83,7 +85,6 @@ def test_diamond(self):
8385
8486 self .log .info ("Test priority while txs are not in mempool" )
8587 self .restart_node (0 , extra_args = ["-nopersistmempool" ])
86- self .connect_nodes (0 , 1 )
8788 self .nodes [0 ].setmocktime (self .mocktime )
8889 assert_equal (self .nodes [0 ].getmempoolinfo ()["size" ], 0 )
8990 self .nodes [0 ].prioritisetransaction (txid = txid_b , fee_delta = int (fee_delta_b * COIN ))
@@ -100,10 +101,10 @@ def test_diamond(self):
100101
101102 # Use default extra_args
102103 self .restart_node (0 )
103- self .connect_nodes (0 , 1 )
104104
105105 def run_test (self ):
106106 self .wallet = MiniWallet (self .nodes [0 ])
107+ self .wallet .rescan_utxos ()
107108
108109 # Test `prioritisetransaction` required parameters
109110 assert_raises_rpc_error (- 1 , "prioritisetransaction" , self .nodes [0 ].prioritisetransaction )
@@ -127,7 +128,10 @@ def run_test(self):
127128 self .relayfee = self .nodes [0 ].getnetworkinfo ()['relayfee' ]
128129
129130 utxo_count = 90
130- utxos = create_confirmed_utxos (self , self .relayfee , self .nodes [0 ], utxo_count )
131+ utxos = self .wallet .send_self_transfer_multi (from_node = self .nodes [0 ], num_outputs = utxo_count )['new_utxos' ]
132+ self .generate (self .wallet , 1 )
133+ assert_equal (len (self .nodes [0 ].getrawmempool ()), 0 )
134+
131135 base_fee = self .relayfee * 100 # our transactions are smaller than 100kb
132136 txids = []
133137
@@ -137,7 +141,13 @@ def run_test(self):
137141 txids .append ([])
138142 start_range = i * range_size
139143 end_range = start_range + range_size
140- txids [i ] = create_lots_of_big_transactions (self .nodes [0 ], self .txouts , utxos [start_range :end_range ], end_range - start_range , (i + 1 )* base_fee )
144+ txids [i ] = create_lots_of_big_transactions (
145+ self .wallet ,
146+ self .nodes [0 ],
147+ (i + 1 ) * base_fee ,
148+ end_range - start_range ,
149+ self .txouts ,
150+ utxos [start_range :end_range ])
141151
142152 # Make sure that the size of each group of transactions exceeds
143153 # MAX_BLOCK_SIZE -- otherwise the test needs to be revised to
@@ -196,17 +206,9 @@ def run_test(self):
196206 assert x not in mempool
197207
198208 # Create a free transaction. Should be rejected.
199- utxo_list = self .nodes [0 ].listunspent ()
200- assert len (utxo_list ) > 0
201- utxo = utxo_list [0 ]
202-
203- inputs = []
204- outputs = {}
205- inputs .append ({"txid" : utxo ["txid" ], "vout" : utxo ["vout" ]})
206- outputs [self .nodes [0 ].getnewaddress ()] = utxo ["amount" ]
207- raw_tx = self .nodes [0 ].createrawtransaction (inputs , outputs )
208- tx_hex = self .nodes [0 ].signrawtransactionwithwallet (raw_tx )["hex" ]
209- tx_id = self .nodes [0 ].decoderawtransaction (tx_hex )["txid" ]
209+ tx_res = self .wallet .create_self_transfer (fee_rate = 0 )
210+ tx_hex = tx_res ['hex' ]
211+ tx_id = tx_res ['txid' ]
210212
211213 # This will raise an exception due to min relay fee not being met
212214 assert_raises_rpc_error (- 26 , "min relay fee not met" , self .nodes [0 ].sendrawtransaction , tx_hex )
0 commit comments