mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-04-29 14:59:39 -04:00
test: add rescan_utxos
in MiniWallet's initialization
this simplifies usage when MiniWallet is used with a pre-mined chain.
This commit is contained in:
parent
599e941c19
commit
0377d6bb42
25 changed files with 7 additions and 29 deletions
|
@ -202,7 +202,6 @@ class ChainstateWriteCrashTest(BitcoinTestFramework):
|
|||
|
||||
def run_test(self):
|
||||
self.wallet = MiniWallet(self.nodes[3])
|
||||
self.wallet.rescan_utxos()
|
||||
initial_height = self.nodes[3].getblockcount()
|
||||
self.generate(self.nodes[3], COINBASE_MATURITY, sync_fun=self.no_op)
|
||||
|
||||
|
|
|
@ -297,7 +297,6 @@ class EstimateFeeTest(BitcoinTestFramework):
|
|||
# Split two coinbases into many small utxos
|
||||
self.start_node(0)
|
||||
self.wallet = MiniWallet(self.nodes[0])
|
||||
self.wallet.rescan_utxos()
|
||||
self.initial_split(self.nodes[0])
|
||||
self.log.info("Finished splitting")
|
||||
|
||||
|
|
|
@ -42,10 +42,6 @@ class ReplaceByFeeTest(BitcoinTestFramework):
|
|||
|
||||
def run_test(self):
|
||||
self.wallet = MiniWallet(self.nodes[0])
|
||||
# the pre-mined test framework chain contains coinbase outputs to the
|
||||
# MiniWallet's default address in blocks 76-100 (see method
|
||||
# BitcoinTestFramework._initialize_chain())
|
||||
self.wallet.rescan_utxos()
|
||||
|
||||
self.log.info("Running test simple doublespend...")
|
||||
self.test_simple_doublespend()
|
||||
|
@ -398,7 +394,6 @@ class ReplaceByFeeTest(BitcoinTestFramework):
|
|||
"""
|
||||
normal_node = self.nodes[1]
|
||||
wallet = MiniWallet(normal_node)
|
||||
wallet.rescan_utxos()
|
||||
# Clear mempools to avoid cross-node sync failure.
|
||||
for node in self.nodes:
|
||||
self.generate(node, 1)
|
||||
|
|
|
@ -42,7 +42,6 @@ class TxindexCompatibilityTest(BitcoinTestFramework):
|
|||
|
||||
def run_test(self):
|
||||
mini_wallet = MiniWallet(self.nodes[1])
|
||||
mini_wallet.rescan_utxos()
|
||||
spend_utxo = mini_wallet.get_utxo()
|
||||
mini_wallet.send_self_transfer(from_node=self.nodes[1], utxo_to_spend=spend_utxo)
|
||||
self.generate(self.nodes[1], 1)
|
||||
|
|
|
@ -96,7 +96,6 @@ class RESTTest (BitcoinTestFramework):
|
|||
def run_test(self):
|
||||
self.url = urllib.parse.urlparse(self.nodes[0].url)
|
||||
self.wallet = MiniWallet(self.nodes[0])
|
||||
self.wallet.rescan_utxos()
|
||||
|
||||
self.log.info("Broadcast test transaction and sync nodes")
|
||||
txid, _ = self.wallet.send_to(from_node=self.nodes[0], scriptPubKey=getnewdestination()[1], amount=int(0.1 * COIN))
|
||||
|
|
|
@ -215,7 +215,6 @@ class ZMQTest (BitcoinTestFramework):
|
|||
assert_equal([txid.hex()], self.nodes[1].getblock(hash)["tx"])
|
||||
|
||||
|
||||
self.wallet.rescan_utxos()
|
||||
self.log.info("Wait for tx from second node")
|
||||
payment_tx = self.wallet.send_self_transfer(from_node=self.nodes[1])
|
||||
payment_txid = payment_tx['txid']
|
||||
|
|
|
@ -69,7 +69,6 @@ class MempoolAcceptanceTest(BitcoinTestFramework):
|
|||
def run_test(self):
|
||||
node = self.nodes[0]
|
||||
self.wallet = MiniWallet(node)
|
||||
self.wallet.rescan_utxos()
|
||||
|
||||
self.log.info('Start with empty mempool, and 200 blocks')
|
||||
self.mempool_size = 0
|
||||
|
|
|
@ -44,7 +44,6 @@ class DataCarrierTest(BitcoinTestFramework):
|
|||
|
||||
def run_test(self):
|
||||
self.wallet = MiniWallet(self.nodes[0])
|
||||
self.wallet.rescan_utxos()
|
||||
|
||||
# By default, only 80 bytes are used for data (+1 for OP_RETURN, +2 for the pushdata opcodes).
|
||||
default_size_data = random_bytes(MAX_OP_RETURN_RELAY - 3)
|
||||
|
|
|
@ -72,7 +72,6 @@ class DustRelayFeeTest(BitcoinTestFramework):
|
|||
|
||||
def run_test(self):
|
||||
self.wallet = MiniWallet(self.nodes[0])
|
||||
self.wallet.rescan_utxos()
|
||||
|
||||
# prepare output scripts of each standard type
|
||||
key = ECKey()
|
||||
|
|
|
@ -31,7 +31,6 @@ class MempoolPackagesTest(BitcoinTestFramework):
|
|||
|
||||
def run_test(self):
|
||||
self.wallet = MiniWallet(self.nodes[0])
|
||||
self.wallet.rescan_utxos()
|
||||
|
||||
# DEFAULT_ANCESTOR_LIMIT transactions off a confirmed tx should be fine
|
||||
chain = []
|
||||
|
|
|
@ -59,7 +59,6 @@ class MempoolPersistTest(BitcoinTestFramework):
|
|||
|
||||
def run_test(self):
|
||||
self.mini_wallet = MiniWallet(self.nodes[2])
|
||||
self.mini_wallet.rescan_utxos()
|
||||
if self.is_sqlite_compiled():
|
||||
self.nodes[2].createwallet(
|
||||
wallet_name="watch",
|
||||
|
|
|
@ -31,7 +31,6 @@ class MempoolCoinbaseTest(BitcoinTestFramework):
|
|||
self.log.info("Add 4 coinbase utxos to the miniwallet")
|
||||
# Block 76 contains the first spendable coinbase txs.
|
||||
first_block = 76
|
||||
wallet.rescan_utxos()
|
||||
|
||||
# Three scenarios for re-orging coinbase spends in the memory pool:
|
||||
# 1. Direct coinbase spend : spend_1
|
||||
|
|
|
@ -28,7 +28,6 @@ class MempoolSpendCoinbaseTest(BitcoinTestFramework):
|
|||
chain_height = 198
|
||||
self.nodes[0].invalidateblock(self.nodes[0].getblockhash(chain_height + 1))
|
||||
assert_equal(chain_height, self.nodes[0].getblockcount())
|
||||
wallet.rescan_utxos()
|
||||
|
||||
# Coinbase at height chain_height-100+1 ok in mempool, should
|
||||
# get mined. Coinbase at height chain_height-100+2 is
|
||||
|
|
|
@ -23,7 +23,6 @@ class MempoolUnbroadcastTest(BitcoinTestFramework):
|
|||
|
||||
def run_test(self):
|
||||
self.wallet = MiniWallet(self.nodes[0])
|
||||
self.wallet.rescan_utxos()
|
||||
self.test_broadcast()
|
||||
self.test_txn_removal()
|
||||
|
||||
|
|
|
@ -106,7 +106,6 @@ class PrioritiseTransactionTest(BitcoinTestFramework):
|
|||
|
||||
def run_test(self):
|
||||
self.wallet = MiniWallet(self.nodes[0])
|
||||
self.wallet.rescan_utxos()
|
||||
|
||||
# Test `prioritisetransaction` required parameters
|
||||
assert_raises_rpc_error(-1, "prioritisetransaction", self.nodes[0].prioritisetransaction)
|
||||
|
|
|
@ -20,8 +20,6 @@ class P2PBlocksOnly(BitcoinTestFramework):
|
|||
|
||||
def run_test(self):
|
||||
self.miniwallet = MiniWallet(self.nodes[0])
|
||||
# Add enough mature utxos to the wallet, so that all txs spend confirmed coins
|
||||
self.miniwallet.rescan_utxos()
|
||||
|
||||
self.blocksonly_mode_tests()
|
||||
self.blocks_relay_conn_tests()
|
||||
|
|
|
@ -214,7 +214,6 @@ class FilterTest(BitcoinTestFramework):
|
|||
|
||||
def run_test(self):
|
||||
self.wallet = MiniWallet(self.nodes[0])
|
||||
self.wallet.rescan_utxos()
|
||||
|
||||
filter_peer = self.nodes[0].add_p2p_connection(P2PBloomFilter())
|
||||
self.log.info('Test filter size limits')
|
||||
|
|
|
@ -26,7 +26,6 @@ class P2PPermissionsTests(BitcoinTestFramework):
|
|||
|
||||
def run_test(self):
|
||||
self.wallet = MiniWallet(self.nodes[0])
|
||||
self.wallet.rescan_utxos()
|
||||
|
||||
self.check_tx_relay()
|
||||
|
||||
|
|
|
@ -53,7 +53,6 @@ class TxPrivacyTest(BitcoinTestFramework):
|
|||
|
||||
def run_test(self):
|
||||
self.wallet = MiniWallet(self.nodes[0])
|
||||
self.wallet.rescan_utxos()
|
||||
|
||||
tx_originator = self.nodes[0].add_p2p_connection(P2PInterface())
|
||||
spy = self.nodes[0].add_p2p_connection(P2PTxSpy(), wait_for_verack=False)
|
||||
|
|
|
@ -28,7 +28,6 @@ class RPCGenerateTest(BitcoinTestFramework):
|
|||
def test_generateblock(self):
|
||||
node = self.nodes[0]
|
||||
miniwallet = MiniWallet(node)
|
||||
miniwallet.rescan_utxos()
|
||||
|
||||
self.log.info('Generate an empty block to address')
|
||||
address = miniwallet.get_address()
|
||||
|
|
|
@ -18,7 +18,6 @@ class RPCMempoolInfoTest(BitcoinTestFramework):
|
|||
|
||||
def run_test(self):
|
||||
self.wallet = MiniWallet(self.nodes[0])
|
||||
self.wallet.rescan_utxos()
|
||||
confirmed_utxo = self.wallet.get_utxo()
|
||||
|
||||
# Create a tree of unconfirmed transactions in the mempool:
|
||||
|
|
|
@ -27,7 +27,6 @@ class ScanblocksTest(BitcoinTestFramework):
|
|||
def run_test(self):
|
||||
node = self.nodes[0]
|
||||
wallet = MiniWallet(node)
|
||||
wallet.rescan_utxos()
|
||||
|
||||
# send 1.0, mempool only
|
||||
_, spk_1, addr_1 = getnewdestination()
|
||||
|
|
|
@ -31,7 +31,6 @@ class ScantxoutsetTest(BitcoinTestFramework):
|
|||
|
||||
def run_test(self):
|
||||
self.wallet = MiniWallet(self.nodes[0])
|
||||
self.wallet.rescan_utxos()
|
||||
|
||||
self.log.info("Test if we find coinbase outputs.")
|
||||
assert_equal(sum(u["coinbase"] for u in self.nodes[0].scantxoutset("start", [self.wallet.get_descriptor()])["unspents"]), 49)
|
||||
|
|
|
@ -101,6 +101,13 @@ class MiniWallet:
|
|||
self._address, self._internal_key = create_deterministic_address_bcrt1_p2tr_op_true()
|
||||
self._scriptPubKey = bytes.fromhex(self._test_node.validateaddress(self._address)['scriptPubKey'])
|
||||
|
||||
# When the pre-mined test framework chain is used, it contains coinbase
|
||||
# outputs to the MiniWallet's default address in blocks 76-100
|
||||
# (see method BitcoinTestFramework._initialize_chain())
|
||||
# The MiniWallet needs to rescan_utxos() in order to account
|
||||
# for those mature UTXOs, so that all txs spend confirmed coins
|
||||
self.rescan_utxos()
|
||||
|
||||
def _create_utxo(self, *, txid, vout, value, height, coinbase, confirmations):
|
||||
return {"txid": txid, "vout": vout, "value": value, "height": height, "coinbase": coinbase, "confirmations": confirmations}
|
||||
|
||||
|
|
|
@ -40,7 +40,6 @@ class WalletFastRescanTest(BitcoinTestFramework):
|
|||
def run_test(self):
|
||||
node = self.nodes[0]
|
||||
wallet = MiniWallet(node)
|
||||
wallet.rescan_utxos()
|
||||
|
||||
self.log.info("Create descriptor wallet with backup")
|
||||
WALLET_BACKUP_FILENAME = os.path.join(node.datadir, 'wallet.bak')
|
||||
|
|
Loading…
Add table
Reference in a new issue