Skip to content

Commit

Permalink
Merge #6584: backport: Merge bitcoin#23474: test: scripted-diff clean…
Browse files Browse the repository at this point in the history
…ups after generate* changes

0b1d83a Bump copyright headers (Konstantin Akimov)
98c50c9 fix: recovery missing syncs for Dash Specific tests (Konstantin Akimov)
31718c7 scripted-diff: Remove redundant sync_all and sync_blocks (Konstantin Akimov)
7e90bd1 fix: remove sync-no-op for generate blocks in Dash functional tests (Konstantin Akimov)
ac269a0 test: Properly set sync_fun in NodeNetworkLimitedTest (MarcoFalke)
356cb44 test: Use 4 spaces for indentation (MarcoFalke)

Pull request description:

  ## What was done?
  The majority of changes in this backport are scripted, better to keep commits as they are rather than squash together.

  Original description:
  > Some cleanups after #6288 (see bitcoin#23300)

  ## How Has This Been Tested?
  Run unit functional tests.

  ## Breaking Changes
  N/A

  ## Checklist:
  - [x] I have performed a self-review of my own code
  - [ ] I have commented my code, particularly in hard-to-understand areas
  - [ ] I have added or updated relevant unit/integration/functional/e2e tests
  - [ ] I have made corresponding changes to the documentation
  - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_

ACKs for top commit:
  UdjinM6:
    utACK 0b1d83a

Tree-SHA512: 48285d82c79004c5f39bd7610729f0ba8539df3cf5063905354c7dc9bcff0e05502049b97068813cec685e3227f7abec22a16435021b81c24d3706dc25df4de7
  • Loading branch information
PastaPastaPasta committed Mar 4, 2025
2 parents 5e68b5b + 0b1d83a commit 7fc9a7b
Show file tree
Hide file tree
Showing 32 changed files with 14 additions and 62 deletions.
3 changes: 0 additions & 3 deletions test/functional/feature_backwards_compatibility.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,6 @@ def setup_nodes(self):
def run_test(self):
self.generatetoaddress(self.nodes[0], 101, self.nodes[0].getnewaddress())

self.sync_blocks()

# Sanity check the test framework:
res = self.nodes[self.num_nodes - 1].getblockchaininfo()
assert_equal(res['blocks'], 101)
Expand All @@ -93,7 +91,6 @@ def run_test(self):
self.nodes[0].sendtoaddress(address, 1)
self.sync_mempools()
self.generate(self.nodes[0], 1)
self.sync_blocks()

# w1_v19: regular wallet, created with v0.19
node_v19.rpc.createwallet(wallet_name="w1_v19")
Expand Down
2 changes: 0 additions & 2 deletions test/functional/feature_coinstatsindex.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,8 +86,6 @@ def _test_coin_stats_index(self):
self.wallet.send_self_transfer(from_node=node)
self.generate(node, 1)

self.sync_blocks(timeout=120)

self.log.info("Test that gettxoutsetinfo() output is consistent with or without coinstatsindex option")
res0 = node.gettxoutsetinfo('none')

Expand Down
2 changes: 1 addition & 1 deletion test/functional/feature_dip4_coinbasemerkleroots.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
# Copyright (c) 2015-2024 The Dash Core developers
# Copyright (c) 2015-2025 The Dash Core developers
# Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.

Expand Down
3 changes: 0 additions & 3 deletions test/functional/feature_fee_estimation.py
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,6 @@ def transact_and_mine(self, numblocks, mining_node):
self.fees_per_kb.append(float(fee) / tx_kbytes)
self.sync_mempools(wait=.1)
mined = mining_node.getblock(self.generate(mining_node, 1)[0], True)["tx"]
self.sync_blocks(wait=.1)
# update which txouts are confirmed
newmem = []
for utx in self.memutxo:
Expand Down Expand Up @@ -277,8 +276,6 @@ def run_test(self):
# Finish by mining a normal-sized block:
while len(self.nodes[1].getrawmempool()) > 0:
self.generate(self.nodes[1], 1)

self.sync_blocks(self.nodes[0:3], wait=.1)
self.log.info("Final estimates after emptying mempools")
check_estimates(self.nodes[1], self.fees_per_kb)

Expand Down
2 changes: 0 additions & 2 deletions test/functional/feature_index_prune.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,6 @@ def mine_batches(self, blocks):
for _ in range(n):
self.generate(self.nodes[0], 250)
self.generate(self.nodes[0], blocks % 250)
self.sync_blocks()

def restart_without_indices(self):
for i in range(3):
Expand Down Expand Up @@ -152,7 +151,6 @@ def run_test(self):
with self.nodes[0].assert_debug_log(['basic block filter index prune lock moved back to 2480']):
self.nodes[3].invalidateblock(self.nodes[0].getblockhash(2480))
self.generate(self.nodes[3], 30)
self.sync_blocks()

for idx in range(self.num_nodes):
self.nodes[idx].stop_node(expected_stderr=EXPECTED_STDERR_NO_GOV_PRUNE if idx != 3 else "")
Expand Down
2 changes: 1 addition & 1 deletion test/functional/feature_llmq_dkgerrors.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
# Copyright (c) 2015-2024 The Dash Core developers
# Copyright (c) 2015-2025 The Dash Core developers
# Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.

Expand Down
11 changes: 5 additions & 6 deletions test/functional/feature_llmq_rotation.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
# Copyright (c) 2015-2024 The Dash Core developers
# Copyright (c) 2015-2025 The Dash Core developers
# Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.

Expand Down Expand Up @@ -84,7 +84,7 @@ def run_test(self):
h_100_1 = QuorumId(100, int(h_1, 16))

self.log.info("Mine single block, wait for chainlock")
self.generate(self.nodes[0], 1, sync_fun=self.no_op)
self.generate(self.nodes[0], 1)
self.wait_for_chainlocked_block_all_nodes(self.nodes[0].getbestblockhash())

b_h_1 = self.nodes[0].getbestblockhash()
Expand Down Expand Up @@ -115,7 +115,7 @@ def run_test(self):
assert_equal(projected_activation_height, softfork_info['height'])

# v20 is active for the next block, not for the tip
self.generate(self.nodes[0], 1, sync_fun=self.no_op)
self.generate(self.nodes[0], 1)

self.log.info("Wait for chainlock")
self.wait_for_chainlocked_block_all_nodes(self.nodes[0].getbestblockhash())
Expand Down Expand Up @@ -196,7 +196,7 @@ def run_test(self):
self.sync_blocks(nodes)
quorum_list = self.nodes[0].quorum("list", llmq_type)
quorum_blockhash = self.nodes[0].getbestblockhash()
fallback_blockhash = self.generate(self.nodes[0], 1, sync_fun=self.no_op)[0]
fallback_blockhash = self.generate(self.nodes[0], 1)[0]
self.log.info("h("+str(self.nodes[0].getblockcount())+") quorum_list:"+str(quorum_list))

assert_greater_than_or_equal(len(intersection(quorum_members_0_0, quorum_members_1_0)), 3)
Expand Down Expand Up @@ -388,8 +388,7 @@ def move_to_next_cycle(self):
skip_count = cycle_length - (cur_block % cycle_length)
if skip_count != 0:
self.bump_mocktime(1)
self.generate(self.nodes[0], skip_count, sync_fun=self.no_op)
self.sync_blocks(nodes)
self.generate(self.nodes[0], skip_count, sync_fun=lambda: self.sync_blocks(nodes))
self.log.info('Moved from block %d to %d' % (cur_block, self.nodes[0].getblockcount()))


Expand Down
5 changes: 2 additions & 3 deletions test/functional/feature_llmq_simplepose.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
# Copyright (c) 2015-2024 The Dash Core developers
# Copyright (c) 2015-2025 The Dash Core developers
# Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.

Expand Down Expand Up @@ -109,8 +109,7 @@ def mine_quorum_less_checks(self, expected_good_nodes, mninfos_online):
skip_count = 24 - (self.nodes[0].getblockcount() % 24)
if skip_count != 0:
self.bump_mocktime(skip_count, nodes=nodes)
self.generate(self.nodes[0], skip_count, sync_fun=self.no_op)
self.sync_blocks(nodes)
self.generate(self.nodes[0], skip_count, sync_fun=lambda: self.sync_blocks(nodes))

q = self.nodes[0].getbestblockhash()
self.log.info("Expected quorum_hash: "+str(q))
Expand Down
2 changes: 0 additions & 2 deletions test/functional/mempool_packages.py
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,6 @@ def run_test(self):
# Check that prioritising a tx before it's added to the mempool works
# First clear the mempool by mining a block.
self.generate(self.nodes[0], 1)
self.sync_blocks()
assert_equal(len(self.nodes[0].getrawmempool()), 0)
# Prioritise a transaction that has been mined, then add it back to the
# mempool by using invalidateblock.
Expand Down Expand Up @@ -276,7 +275,6 @@ def run_test(self):
# Test reorg handling
# First, the basics:
self.generate(self.nodes[0], 1)
self.sync_blocks()
self.nodes[1].invalidateblock(self.nodes[0].getbestblockhash())
self.nodes[1].reconsiderblock(self.nodes[0].getbestblockhash())

Expand Down
1 change: 0 additions & 1 deletion test/functional/mining_getblocktemplate_longpoll.py
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,6 @@ def run_test(self):

# Add enough mature utxos to the wallets, so that all txs spend confirmed coins
self.generate(self.nodes[0], 100)
self.sync_blocks()

self.log.info("Test that introducing a new transaction into the mempool will terminate the longpoll")
thr = LongpollThread(self.nodes[0])
Expand Down
1 change: 0 additions & 1 deletion test/functional/p2p_blockfilters.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,6 @@ def run_test(self):

# Nodes 0 & 1 share the same first 999 blocks in the chain.
self.generate(self.nodes[0], 999)
self.sync_blocks(timeout=600)

# Stale blocks by disconnecting nodes 0 & 1, mining, then reconnecting
self.disconnect_nodes(0, 1)
Expand Down
2 changes: 0 additions & 2 deletions test/functional/p2p_compactblocks_hb.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ def relay_block_through(self, peer):
"""Relay a new block through peer peer, and return HB status between 1 and [2,3,4,5]."""
self.connect_nodes(peer, 0)
self.generate(self.nodes[0], 1)
self.sync_blocks()
self.disconnect_nodes(peer, 0)

def status_to():
Expand All @@ -50,7 +49,6 @@ def run_test(self):
for i in range(1, 6):
self.connect_nodes(i, 0)
self.generate(self.nodes[0], 2)
self.sync_blocks()
for i in range(1, 6):
self.disconnect_nodes(i, 0)

Expand Down
3 changes: 1 addition & 2 deletions test/functional/p2p_node_network_limited.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,7 @@ def run_test(self):

self.log.info("Mine enough blocks to reach the NODE_NETWORK_LIMITED range.")
self.connect_nodes(0, 1)
blocks = self.generate(self.nodes[1], 292, sync_fun=self.no_op)
self.sync_blocks([self.nodes[0], self.nodes[1]])
blocks = self.generate(self.nodes[1], 292, sync_fun=lambda: self.sync_blocks([self.nodes[0], self.nodes[1]]))

self.log.info("Make sure we can max retrieve block at tip-288.")
node.send_getdata_for_block(blocks[1]) # last block in valid range
Expand Down
2 changes: 0 additions & 2 deletions test/functional/p2p_sendheaders.py
Original file line number Diff line number Diff line change
Expand Up @@ -216,7 +216,6 @@ def mine_reorg(self, length):

# make sure all invalidated blocks are node0's
self.generatetoaddress(self.nodes[0], length, self.nodes[0].get_deterministic_priv_key().address)
self.sync_blocks(wait=0.1)
for x in self.nodes[0].p2ps:
x.wait_for_block_announcement(int(self.nodes[0].getbestblockhash(), 16))
x.clear_block_announcements()
Expand All @@ -225,7 +224,6 @@ def mine_reorg(self, length):
hash_to_invalidate = self.nodes[1].getblockhash(tip_height - (length - 1))
self.nodes[1].invalidateblock(hash_to_invalidate)
all_hashes = self.generatetoaddress(self.nodes[1], length + 1, self.nodes[1].get_deterministic_priv_key().address) # Must be longer than the orig chain
self.sync_blocks(wait=0.1)
return [int(x, 16) for x in all_hashes]

def run_test(self):
Expand Down
2 changes: 1 addition & 1 deletion test/functional/rpc_coinjoin.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
# Copyright (c) 2019-2024 The Dash Core developers
# Copyright (c) 2019-2025 The Dash Core developers
# Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.

Expand Down
1 change: 0 additions & 1 deletion test/functional/rpc_rawtransaction.py
Original file line number Diff line number Diff line change
Expand Up @@ -366,7 +366,6 @@ def sendrawtransaction_testmempoolaccept_tests(self):

self.log.info("Test sendrawtransaction/testmempoolaccept with tx already in the chain")
self.generate(self.nodes[2], 1)
self.sync_blocks()
for node in self.nodes:
testres = node.testmempoolaccept([rawTxSigned['hex']])[0]
assert_equal(testres['allowed'], False)
Expand Down
3 changes: 1 addition & 2 deletions test/functional/test_framework/test_framework.py
Original file line number Diff line number Diff line change
Expand Up @@ -1842,8 +1842,7 @@ def mine_quorum(self, llmq_type_name="llmq_test", llmq_type=100, expected_connec
skip_count = 24 - (self.nodes[0].getblockcount() % 24)
if skip_count != 0:
self.bump_mocktime(1)
self.generate(self.nodes[0], skip_count, sync_fun=self.no_op)
self.sync_blocks(nodes)
self.generate(self.nodes[0], skip_count, sync_fun=lambda: self.sync_blocks(nodes))

q = self.nodes[0].getbestblockhash()
self.log.info("Expected quorum_hash:"+str(q))
Expand Down
1 change: 0 additions & 1 deletion test/functional/wallet_abandonconflict.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ def skip_test_if_missing_module(self):

def run_test(self):
self.generate(self.nodes[1], COINBASE_MATURITY)
self.sync_blocks()
balance = self.nodes[0].getbalance()
txA = self.nodes[0].sendtoaddress(self.nodes[0].getnewaddress(), Decimal("10"))
txB = self.nodes[0].sendtoaddress(self.nodes[0].getnewaddress(), Decimal("10"))
Expand Down
5 changes: 0 additions & 5 deletions test/functional/wallet_backup.py
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,6 @@ def do_one_round(self):
# Must sync mempools before mining.
self.sync_mempools()
self.generate(self.nodes[3], 1)
self.sync_blocks()

# As above, this mirrors the original bash test.
def start_three(self, args=()):
Expand Down Expand Up @@ -137,13 +136,9 @@ def restore_wallet_existent_name(self):
def run_test(self):
self.log.info("Generating initial blockchain")
self.generate(self.nodes[0], 1)
self.sync_blocks()
self.generate(self.nodes[1], 1)
self.sync_blocks()
self.generate(self.nodes[2], 1)
self.sync_blocks()
self.generate(self.nodes[3], COINBASE_MATURITY)
self.sync_blocks()

assert_equal(self.nodes[0].getbalance(), 500)
assert_equal(self.nodes[1].getbalance(), 500)
Expand Down
1 change: 0 additions & 1 deletion test/functional/wallet_balance.py
Original file line number Diff line number Diff line change
Expand Up @@ -261,7 +261,6 @@ def test_balances(*, fee_node_1=0):

# Now confirm tx_replace
block_reorg = self.generatetoaddress(self.nodes[1], 1, ADDRESS_WATCHONLY)[0]
self.sync_all()
assert_equal(self.nodes[0].getbalance(minconf=0), total_amount)

self.log.info('Put txs back into mempool of node 1 (not node 0)')
Expand Down
1 change: 0 additions & 1 deletion test/functional/wallet_basic.py
Original file line number Diff line number Diff line change
Expand Up @@ -510,7 +510,6 @@ def run_test(self):
txid = self.nodes[2].sendtoaddress(address=address, amount=amount, fee_rate=str(fee_rate_sat_vb))
tx_size = self.get_vsize(self.nodes[2].gettransaction(txid)['hex'])
self.generate(self.nodes[0], 1, sync_fun=lambda: self.sync_all(self.nodes[0:3]))
self.sync_all(self.nodes[0:3])
postbalance = self.nodes[2].getbalance()
fee = prebalance - postbalance - amount
# TODO: remove workaround after bitcoin/bitcoin#22949 done
Expand Down
2 changes: 0 additions & 2 deletions test/functional/wallet_hd.py
Original file line number Diff line number Diff line change
Expand Up @@ -237,7 +237,6 @@ def run_test(self):
txid = self.nodes[0].sendtoaddress(addr, 1)
origin_rpc.sendrawtransaction(self.nodes[0].gettransaction(txid)['hex'])
self.generate(self.nodes[0], 1)
self.sync_blocks()
origin_rpc.gettransaction(txid)
assert_raises_rpc_error(-5, 'Invalid or non-wallet transaction id', restore_rpc.gettransaction, txid)
out_of_kp_txid = txid
Expand All @@ -248,7 +247,6 @@ def run_test(self):
txid = self.nodes[0].sendtoaddress(last_addr, 1)
origin_rpc.sendrawtransaction(self.nodes[0].gettransaction(txid)['hex'])
self.generate(self.nodes[0], 1)
self.sync_blocks()
origin_rpc.gettransaction(txid)
restore_rpc.gettransaction(txid)
assert_raises_rpc_error(-5, 'Invalid or non-wallet transaction id', restore_rpc.gettransaction, out_of_kp_txid)
Expand Down
3 changes: 1 addition & 2 deletions test/functional/wallet_importdescriptors.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ def test_importdesc(self, req, success, error_code=None, error_message=None, war
result = wrpc.importdescriptors([req])
observed_warnings = []
if 'warnings' in result[0]:
observed_warnings = result[0]['warnings']
observed_warnings = result[0]['warnings']
assert_equal("\n".join(sorted(warnings)), "\n".join(sorted(observed_warnings)))
assert_equal(result[0]['success'], success)
if error_code is not None:
Expand Down Expand Up @@ -384,7 +384,6 @@ def run_test(self):
ismine=True)
txid = w0.sendtoaddress(address, 49.99995540)
self.generatetoaddress(self.nodes[0], 6, w0.getnewaddress())
self.sync_blocks()
tx = wpriv.createrawtransaction([{"txid": txid, "vout": 0}], {w0.getnewaddress(): 49.999})
signed_tx = wpriv.signrawtransactionwithwallet(tx)
w1.sendrawtransaction(signed_tx['hex'])
Expand Down
1 change: 0 additions & 1 deletion test/functional/wallet_keypool_topup.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,6 @@ def run_test(self):
self.generate(self.nodes[0], 1)
self.nodes[0].sendtoaddress(addr_extpool, 5)
self.generate(self.nodes[0], 1)
self.sync_blocks()

self.log.info("Restart node with wallet backup")
self.stop_node(idx)
Expand Down
1 change: 0 additions & 1 deletion test/functional/wallet_listreceivedby.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ def skip_test_if_missing_module(self):
def run_test(self):
# Generate block to get out of IBD
self.generate(self.nodes[0], 1)
self.sync_blocks()

# save the number of coinbase reward addresses so far
num_cb_reward_addresses = len(self.nodes[1].listreceivedbyaddress(minconf=0, include_empty=True, include_watchonly=True))
Expand Down
2 changes: 1 addition & 1 deletion test/functional/wallet_mnemonicbits.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
# Copyright (c) 2023-2024 The Dash Core developers
# Copyright (c) 2023-2025 The Dash Core developers
# Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
"""Test -mnemonicbits wallet option."""
Expand Down
3 changes: 0 additions & 3 deletions test/functional/wallet_multisig_descriptor_psbt.py
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,6 @@ def run_test(self):
self.log.info("Send funds to the resulting multisig receiving address...")
coordinator_wallet.sendtoaddress(multisig_receiving_address, deposit_amount)
self.generate(self.nodes[0], 1)
self.sync_all()
for participant in participants["multisigs"]:
assert_approx(participant.getbalance(), deposit_amount, vspan=0.001)

Expand All @@ -137,7 +136,6 @@ def run_test(self):

self.log.info("Check that balances are correct after the transaction has been included in a block.")
self.generate(self.nodes[0], 1)
self.sync_all()
assert_approx(participants["multisigs"][0].getbalance(), deposit_amount - value, vspan=0.001)
assert_equal(participants["signers"][self.N - 1].getbalance(), value)

Expand All @@ -154,7 +152,6 @@ def run_test(self):

self.log.info("Check that balances are correct after the transaction has been included in a block.")
self.generate(self.nodes[0], 1)
self.sync_all()
assert_approx(participants["multisigs"][0].getbalance(), deposit_amount - (value * 2), vspan=0.001)
assert_equal(participants["signers"][self.N - 1].getbalance(), value * 2)

Expand Down
3 changes: 0 additions & 3 deletions test/functional/wallet_orphanedreward.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,20 +27,17 @@ def run_test(self):
# it later.
self.sync_blocks()
blk = self.generate(self.nodes[1], 1)[0]
self.sync_blocks()

# Let the block reward mature and send coins including both
# the existing balance and the block reward.
self.generate(self.nodes[0], 150)
self.sync_blocks()
assert_equal(self.nodes[1].getbalance(), Decimal("474.28571429"))
txid = self.nodes[1].sendtoaddress(self.nodes[0].getnewaddress(), 30)

# Orphan the block reward and make sure that the original coins
# from the wallet can still be spent.
self.nodes[0].invalidateblock(blk)
self.generate(self.nodes[0], 152)
self.sync_blocks()
# Without the following abandontransaction call, the coins are
# not considered available yet.
assert_equal(self.nodes[1].getbalances()["mine"], {
Expand Down
2 changes: 0 additions & 2 deletions test/functional/wallet_reorgsrestore.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ def run_test(self):
# Send a tx from which to conflict outputs later
txid_conflict_from = self.nodes[0].sendtoaddress(self.nodes[0].getnewaddress(), Decimal("10"))
self.generate(self.nodes[0], 1)
self.sync_blocks()

# Disconnect node1 from others to reorg its chain later
self.disconnect_nodes(0, 1)
Expand All @@ -44,7 +43,6 @@ def run_test(self):
txid = self.nodes[0].sendtoaddress(self.nodes[0].getnewaddress(), Decimal("10"))
tx = self.nodes[0].gettransaction(txid)
self.generate(self.nodes[0], 4, sync_fun=self.no_op)
self.sync_blocks([self.nodes[0], self.nodes[2]])
tx_before_reorg = self.nodes[0].gettransaction(txid)
assert_equal(tx_before_reorg["confirmations"], 4)

Expand Down
Loading

0 comments on commit 7fc9a7b

Please sign in to comment.