Skip to content

Commit 0377d6b

Browse files
committed
test: add rescan_utxos in MiniWallet's initialization
this simplifies usage when MiniWallet is used with a pre-mined chain.
1 parent 599e941 commit 0377d6b

25 files changed

+7
-29
lines changed

Diff for: test/functional/feature_dbcrash.py

-1
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,6 @@ def generate_small_transactions(self, node, count, utxo_list):
202202

203203
def run_test(self):
204204
self.wallet = MiniWallet(self.nodes[3])
205-
self.wallet.rescan_utxos()
206205
initial_height = self.nodes[3].getblockcount()
207206
self.generate(self.nodes[3], COINBASE_MATURITY, sync_fun=self.no_op)
208207

Diff for: test/functional/feature_fee_estimation.py

-1
Original file line numberDiff line numberDiff line change
@@ -297,7 +297,6 @@ def run_test(self):
297297
# Split two coinbases into many small utxos
298298
self.start_node(0)
299299
self.wallet = MiniWallet(self.nodes[0])
300-
self.wallet.rescan_utxos()
301300
self.initial_split(self.nodes[0])
302301
self.log.info("Finished splitting")
303302

Diff for: test/functional/feature_rbf.py

-5
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,6 @@ def set_test_params(self):
4242

4343
def run_test(self):
4444
self.wallet = MiniWallet(self.nodes[0])
45-
# the pre-mined test framework chain contains coinbase outputs to the
46-
# MiniWallet's default address in blocks 76-100 (see method
47-
# BitcoinTestFramework._initialize_chain())
48-
self.wallet.rescan_utxos()
4945

5046
self.log.info("Running test simple doublespend...")
5147
self.test_simple_doublespend()
@@ -398,7 +394,6 @@ def test_too_many_replacements_with_default_mempool_params(self):
398394
"""
399395
normal_node = self.nodes[1]
400396
wallet = MiniWallet(normal_node)
401-
wallet.rescan_utxos()
402397
# Clear mempools to avoid cross-node sync failure.
403398
for node in self.nodes:
404399
self.generate(node, 1)

Diff for: test/functional/feature_txindex_compatibility.py

-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ def setup_network(self):
4242

4343
def run_test(self):
4444
mini_wallet = MiniWallet(self.nodes[1])
45-
mini_wallet.rescan_utxos()
4645
spend_utxo = mini_wallet.get_utxo()
4746
mini_wallet.send_self_transfer(from_node=self.nodes[1], utxo_to_spend=spend_utxo)
4847
self.generate(self.nodes[1], 1)

Diff for: test/functional/interface_rest.py

-1
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,6 @@ def test_rest_request(
9696
def run_test(self):
9797
self.url = urllib.parse.urlparse(self.nodes[0].url)
9898
self.wallet = MiniWallet(self.nodes[0])
99-
self.wallet.rescan_utxos()
10099

101100
self.log.info("Broadcast test transaction and sync nodes")
102101
txid, _ = self.wallet.send_to(from_node=self.nodes[0], scriptPubKey=getnewdestination()[1], amount=int(0.1 * COIN))

Diff for: test/functional/interface_zmq.py

-1
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,6 @@ def test_basic(self):
215215
assert_equal([txid.hex()], self.nodes[1].getblock(hash)["tx"])
216216

217217

218-
self.wallet.rescan_utxos()
219218
self.log.info("Wait for tx from second node")
220219
payment_tx = self.wallet.send_self_transfer(from_node=self.nodes[1])
221220
payment_txid = payment_tx['txid']

Diff for: test/functional/mempool_accept.py

-1
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,6 @@ def check_mempool_result(self, result_expected, *args, **kwargs):
6969
def run_test(self):
7070
node = self.nodes[0]
7171
self.wallet = MiniWallet(node)
72-
self.wallet.rescan_utxos()
7372

7473
self.log.info('Start with empty mempool, and 200 blocks')
7574
self.mempool_size = 0

Diff for: test/functional/mempool_datacarrier.py

-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ def test_null_data_transaction(self, node: TestNode, data: bytes, success: bool)
4444

4545
def run_test(self):
4646
self.wallet = MiniWallet(self.nodes[0])
47-
self.wallet.rescan_utxos()
4847

4948
# By default, only 80 bytes are used for data (+1 for OP_RETURN, +2 for the pushdata opcodes).
5049
default_size_data = random_bytes(MAX_OP_RETURN_RELAY - 3)

Diff for: test/functional/mempool_dust.py

-1
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,6 @@ def test_dust_output(self, node: TestNode, dust_relay_fee: Decimal,
7272

7373
def run_test(self):
7474
self.wallet = MiniWallet(self.nodes[0])
75-
self.wallet.rescan_utxos()
7675

7776
# prepare output scripts of each standard type
7877
key = ECKey()

Diff for: test/functional/mempool_package_onemore.py

-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ def chain_tx(self, utxos_to_spend, *, num_outputs=1):
3131

3232
def run_test(self):
3333
self.wallet = MiniWallet(self.nodes[0])
34-
self.wallet.rescan_utxos()
3534

3635
# DEFAULT_ANCESTOR_LIMIT transactions off a confirmed tx should be fine
3736
chain = []

Diff for: test/functional/mempool_persist.py

-1
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,6 @@ def set_test_params(self):
5959

6060
def run_test(self):
6161
self.mini_wallet = MiniWallet(self.nodes[2])
62-
self.mini_wallet.rescan_utxos()
6362
if self.is_sqlite_compiled():
6463
self.nodes[2].createwallet(
6564
wallet_name="watch",

Diff for: test/functional/mempool_reorg.py

-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ def run_test(self):
3131
self.log.info("Add 4 coinbase utxos to the miniwallet")
3232
# Block 76 contains the first spendable coinbase txs.
3333
first_block = 76
34-
wallet.rescan_utxos()
3534

3635
# Three scenarios for re-orging coinbase spends in the memory pool:
3736
# 1. Direct coinbase spend : spend_1

Diff for: test/functional/mempool_spend_coinbase.py

-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ def run_test(self):
2828
chain_height = 198
2929
self.nodes[0].invalidateblock(self.nodes[0].getblockhash(chain_height + 1))
3030
assert_equal(chain_height, self.nodes[0].getblockcount())
31-
wallet.rescan_utxos()
3231

3332
# Coinbase at height chain_height-100+1 ok in mempool, should
3433
# get mined. Coinbase at height chain_height-100+2 is

Diff for: test/functional/mempool_unbroadcast.py

-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ def set_test_params(self):
2323

2424
def run_test(self):
2525
self.wallet = MiniWallet(self.nodes[0])
26-
self.wallet.rescan_utxos()
2726
self.test_broadcast()
2827
self.test_txn_removal()
2928

Diff for: test/functional/mining_prioritisetransaction.py

-1
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,6 @@ def test_diamond(self):
106106

107107
def run_test(self):
108108
self.wallet = MiniWallet(self.nodes[0])
109-
self.wallet.rescan_utxos()
110109

111110
# Test `prioritisetransaction` required parameters
112111
assert_raises_rpc_error(-1, "prioritisetransaction", self.nodes[0].prioritisetransaction)

Diff for: test/functional/p2p_blocksonly.py

-2
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,6 @@ def set_test_params(self):
2020

2121
def run_test(self):
2222
self.miniwallet = MiniWallet(self.nodes[0])
23-
# Add enough mature utxos to the wallet, so that all txs spend confirmed coins
24-
self.miniwallet.rescan_utxos()
2523

2624
self.blocksonly_mode_tests()
2725
self.blocks_relay_conn_tests()

Diff for: test/functional/p2p_filter.py

-1
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,6 @@ def test_filter(self, filter_peer):
214214

215215
def run_test(self):
216216
self.wallet = MiniWallet(self.nodes[0])
217-
self.wallet.rescan_utxos()
218217

219218
filter_peer = self.nodes[0].add_p2p_connection(P2PBloomFilter())
220219
self.log.info('Test filter size limits')

Diff for: test/functional/p2p_permissions.py

-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ def set_test_params(self):
2626

2727
def run_test(self):
2828
self.wallet = MiniWallet(self.nodes[0])
29-
self.wallet.rescan_utxos()
3029

3130
self.check_tx_relay()
3231

Diff for: test/functional/p2p_tx_privacy.py

-1
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@ def set_test_params(self):
5353

5454
def run_test(self):
5555
self.wallet = MiniWallet(self.nodes[0])
56-
self.wallet.rescan_utxos()
5756

5857
tx_originator = self.nodes[0].add_p2p_connection(P2PInterface())
5958
spy = self.nodes[0].add_p2p_connection(P2PTxSpy(), wait_for_verack=False)

Diff for: test/functional/rpc_generate.py

-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ def test_generatetoaddress(self):
2828
def test_generateblock(self):
2929
node = self.nodes[0]
3030
miniwallet = MiniWallet(node)
31-
miniwallet.rescan_utxos()
3231

3332
self.log.info('Generate an empty block to address')
3433
address = miniwallet.get_address()

Diff for: test/functional/rpc_mempool_info.py

-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ def set_test_params(self):
1818

1919
def run_test(self):
2020
self.wallet = MiniWallet(self.nodes[0])
21-
self.wallet.rescan_utxos()
2221
confirmed_utxo = self.wallet.get_utxo()
2322

2423
# Create a tree of unconfirmed transactions in the mempool:

Diff for: test/functional/rpc_scanblocks.py

-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ def set_test_params(self):
2727
def run_test(self):
2828
node = self.nodes[0]
2929
wallet = MiniWallet(node)
30-
wallet.rescan_utxos()
3130

3231
# send 1.0, mempool only
3332
_, spk_1, addr_1 = getnewdestination()

Diff for: test/functional/rpc_scantxoutset.py

-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ def sendtodestination(self, destination, amount):
3131

3232
def run_test(self):
3333
self.wallet = MiniWallet(self.nodes[0])
34-
self.wallet.rescan_utxos()
3534

3635
self.log.info("Test if we find coinbase outputs.")
3736
assert_equal(sum(u["coinbase"] for u in self.nodes[0].scantxoutset("start", [self.wallet.get_descriptor()])["unspents"]), 49)

Diff for: test/functional/test_framework/wallet.py

+7
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,13 @@ def __init__(self, test_node, *, mode=MiniWalletMode.ADDRESS_OP_TRUE):
101101
self._address, self._internal_key = create_deterministic_address_bcrt1_p2tr_op_true()
102102
self._scriptPubKey = bytes.fromhex(self._test_node.validateaddress(self._address)['scriptPubKey'])
103103

104+
# When the pre-mined test framework chain is used, it contains coinbase
105+
# outputs to the MiniWallet's default address in blocks 76-100
106+
# (see method BitcoinTestFramework._initialize_chain())
107+
# The MiniWallet needs to rescan_utxos() in order to account
108+
# for those mature UTXOs, so that all txs spend confirmed coins
109+
self.rescan_utxos()
110+
104111
def _create_utxo(self, *, txid, vout, value, height, coinbase, confirmations):
105112
return {"txid": txid, "vout": vout, "value": value, "height": height, "coinbase": coinbase, "confirmations": confirmations}
106113

Diff for: test/functional/wallet_fast_rescan.py

-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ def get_wallet_txids(self, node: TestNode, wallet_name: str) -> List[str]:
4040
def run_test(self):
4141
node = self.nodes[0]
4242
wallet = MiniWallet(node)
43-
wallet.rescan_utxos()
4443

4544
self.log.info("Create descriptor wallet with backup")
4645
WALLET_BACKUP_FILENAME = os.path.join(node.datadir, 'wallet.bak')

0 commit comments

Comments
 (0)