mirror of
https://github.com/bitcoin/bitcoin.git
synced 2024-11-19 09:53:47 +01:00
scripted-diff: use self.sync_* methods
-BEGIN VERIFY SCRIPT- sed -i -e 's/sync_blocks(self.nodes)/self.sync_blocks()/g' $(git grep -l 'sync_blocks(self.nodes)' ./test/functional/*.py) sed -i -e 's/sync_mempools(self.nodes)/self.sync_mempools()/g' $(git grep -l 'sync_mempools(self.nodes)' ./test/functional/*.py) sed -i -e 's/ sync_blocks(/ self.sync_blocks(/g' $(git grep -l sync_blocks ./test/functional/*.py) sed -i -e 's/ sync_mempools(/ self.sync_mempools(/g' $(git grep -l sync_mempools ./test/functional/*.py) -END VERIFY SCRIPT-
This commit is contained in:
parent
faf77f9b90
commit
fa16a09215
@ -385,7 +385,7 @@ class BIP68Test(BitcoinTestFramework):
|
||||
assert_equal(get_bip9_status(self.nodes[0], 'csv')['status'], "locked_in")
|
||||
self.nodes[0].generate(1)
|
||||
assert_equal(get_bip9_status(self.nodes[0], 'csv')['status'], "active")
|
||||
sync_blocks(self.nodes)
|
||||
self.sync_blocks()
|
||||
|
||||
# Use self.nodes[1] to test that version 2 transactions are standard.
|
||||
def test_version2_relay(self):
|
||||
|
@ -162,9 +162,9 @@ class EstimateFeeTest(BitcoinTestFramework):
|
||||
self.memutxo, Decimal("0.005"), min_fee, min_fee)
|
||||
tx_kbytes = (len(txhex) // 2) / 1000.0
|
||||
self.fees_per_kb.append(float(fee) / tx_kbytes)
|
||||
sync_mempools(self.nodes[0:3], wait=.1)
|
||||
self.sync_mempools(self.nodes[0:3], wait=.1)
|
||||
mined = mining_node.getblock(mining_node.generate(1)[0], True)["tx"]
|
||||
sync_blocks(self.nodes[0:3], wait=.1)
|
||||
self.sync_blocks(self.nodes[0:3], wait=.1)
|
||||
# update which txouts are confirmed
|
||||
newmem = []
|
||||
for utx in self.memutxo:
|
||||
@ -237,7 +237,7 @@ class EstimateFeeTest(BitcoinTestFramework):
|
||||
while len(self.nodes[1].getrawmempool()) > 0:
|
||||
self.nodes[1].generate(1)
|
||||
|
||||
sync_blocks(self.nodes[0:3], wait=.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)
|
||||
|
||||
|
@ -100,7 +100,7 @@ class PruneTest(BitcoinTestFramework):
|
||||
connect_nodes(self.nodes[0], 2)
|
||||
connect_nodes(self.nodes[0], 3)
|
||||
connect_nodes(self.nodes[0], 4)
|
||||
sync_blocks(self.nodes[0:5])
|
||||
self.sync_blocks(self.nodes[0:5])
|
||||
|
||||
def setup_nodes(self):
|
||||
self.add_nodes(self.num_nodes, self.extra_args)
|
||||
@ -111,13 +111,13 @@ class PruneTest(BitcoinTestFramework):
|
||||
def create_big_chain(self):
|
||||
# Start by creating some coinbases we can spend later
|
||||
self.nodes[1].generate(200)
|
||||
sync_blocks(self.nodes[0:2])
|
||||
self.sync_blocks(self.nodes[0:2])
|
||||
self.nodes[0].generate(150)
|
||||
|
||||
# Then mine enough full blocks to create more than 550MiB of data
|
||||
mine_large_blocks(self.nodes[0], 645)
|
||||
|
||||
sync_blocks(self.nodes[0:5])
|
||||
self.sync_blocks(self.nodes[0:5])
|
||||
|
||||
def test_height_min(self):
|
||||
assert os.path.isfile(os.path.join(self.prunedir, "blk00000.dat")), "blk00000.dat is missing, pruning too early"
|
||||
@ -153,7 +153,7 @@ class PruneTest(BitcoinTestFramework):
|
||||
# Create connections in the order so both nodes can see the reorg at the same time
|
||||
connect_nodes(self.nodes[0], 1)
|
||||
connect_nodes(self.nodes[0], 2)
|
||||
sync_blocks(self.nodes[0:3])
|
||||
self.sync_blocks(self.nodes[0:3])
|
||||
|
||||
self.log.info("Usage can be over target because of high stale rate: %d" % calc_usage(self.prunedir))
|
||||
|
||||
@ -190,7 +190,7 @@ class PruneTest(BitcoinTestFramework):
|
||||
self.log.info("Reconnect nodes")
|
||||
connect_nodes(self.nodes[0], 1)
|
||||
connect_nodes(self.nodes[1], 2)
|
||||
sync_blocks(self.nodes[0:3], timeout=120)
|
||||
self.sync_blocks(self.nodes[0:3], timeout=120)
|
||||
|
||||
self.log.info("Verify height on node 2: %d" % self.nodes[2].getblockcount())
|
||||
self.log.info("Usage possibly still high because of stale blocks in block files: %d" % calc_usage(self.prunedir))
|
||||
@ -345,7 +345,7 @@ class PruneTest(BitcoinTestFramework):
|
||||
self.log.info("Syncing node 5 to test wallet")
|
||||
connect_nodes(self.nodes[0], 5)
|
||||
nds = [self.nodes[0], self.nodes[5]]
|
||||
sync_blocks(nds, wait=5, timeout=300)
|
||||
self.sync_blocks(nds, wait=5, timeout=300)
|
||||
self.stop_node(5) # stop and start to trigger rescan
|
||||
self.start_node(5, extra_args=["-prune=550"])
|
||||
self.log.info("Success")
|
||||
|
@ -76,13 +76,13 @@ class SegWitTest(BitcoinTestFramework):
|
||||
send_to_witness(1, node, getutxo(txid), self.pubkey[0], False, Decimal("49.998"), sign, redeem_script)
|
||||
block = node.generate(1)
|
||||
assert_equal(len(node.getblock(block[0])["tx"]), 2)
|
||||
sync_blocks(self.nodes)
|
||||
self.sync_blocks()
|
||||
|
||||
def skip_mine(self, node, txid, sign, redeem_script=""):
|
||||
send_to_witness(1, node, getutxo(txid), self.pubkey[0], False, Decimal("49.998"), sign, redeem_script)
|
||||
block = node.generate(1)
|
||||
assert_equal(len(node.getblock(block[0])["tx"]), 1)
|
||||
sync_blocks(self.nodes)
|
||||
self.sync_blocks()
|
||||
|
||||
def fail_accept(self, node, error_msg, txid, sign, redeem_script=""):
|
||||
assert_raises_rpc_error(-26, error_msg, send_to_witness, use_p2wsh=1, node=node, utxo=getutxo(txid), pubkey=self.pubkey[0], encode_p2sh=False, amount=Decimal("49.998"), sign=sign, insert_redeem_script=redeem_script)
|
||||
@ -131,7 +131,7 @@ class SegWitTest(BitcoinTestFramework):
|
||||
p2sh_ids[n][v].append(send_to_witness(v, self.nodes[0], find_spendable_utxo(self.nodes[0], 50), self.pubkey[n], True, Decimal("49.999")))
|
||||
|
||||
self.nodes[0].generate(1) # block 163
|
||||
sync_blocks(self.nodes)
|
||||
self.sync_blocks()
|
||||
|
||||
# Make sure all nodes recognize the transactions as theirs
|
||||
assert_equal(self.nodes[0].getbalance(), balance_presetup - 60 * 50 + 20 * Decimal("49.999") + 50)
|
||||
@ -139,7 +139,7 @@ class SegWitTest(BitcoinTestFramework):
|
||||
assert_equal(self.nodes[2].getbalance(), 20 * Decimal("49.999"))
|
||||
|
||||
self.nodes[0].generate(260) # block 423
|
||||
sync_blocks(self.nodes)
|
||||
self.sync_blocks()
|
||||
|
||||
self.log.info("Verify witness txs are skipped for mining before the fork")
|
||||
self.skip_mine(self.nodes[2], wit_ids[NODE_2][WIT_V0][0], True) # block 424
|
||||
@ -156,7 +156,7 @@ class SegWitTest(BitcoinTestFramework):
|
||||
self.log.info("Verify previous witness txs skipped for mining can now be mined")
|
||||
assert_equal(len(self.nodes[2].getrawmempool()), 4)
|
||||
blockhash = self.nodes[2].generate(1)[0] # block 432 (first block with new rules; 432 = 144 * 3)
|
||||
sync_blocks(self.nodes)
|
||||
self.sync_blocks()
|
||||
assert_equal(len(self.nodes[2].getrawmempool()), 0)
|
||||
segwit_tx_list = self.nodes[2].getblock(blockhash)["tx"]
|
||||
assert_equal(len(segwit_tx_list), 5)
|
||||
@ -538,7 +538,7 @@ class SegWitTest(BitcoinTestFramework):
|
||||
signresults = self.nodes[0].signrawtransactionwithwallet(tx.serialize_without_witness().hex())['hex']
|
||||
txid = self.nodes[0].sendrawtransaction(signresults, 0)
|
||||
txs_mined[txid] = self.nodes[0].generate(1)[0]
|
||||
sync_blocks(self.nodes)
|
||||
self.sync_blocks()
|
||||
watchcount = 0
|
||||
spendcount = 0
|
||||
for i in self.nodes[0].listunspent():
|
||||
@ -590,7 +590,7 @@ class SegWitTest(BitcoinTestFramework):
|
||||
signresults = self.nodes[0].signrawtransactionwithwallet(tx.serialize_without_witness().hex())['hex']
|
||||
self.nodes[0].sendrawtransaction(signresults, 0)
|
||||
self.nodes[0].generate(1)
|
||||
sync_blocks(self.nodes)
|
||||
self.sync_blocks()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
@ -163,7 +163,7 @@ class MempoolPackagesTest(BitcoinTestFramework):
|
||||
# Check that prioritising a tx before it's added to the mempool works
|
||||
# First clear the mempool by mining a block.
|
||||
self.nodes[0].generate(1)
|
||||
sync_blocks(self.nodes)
|
||||
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.
|
||||
@ -228,7 +228,7 @@ class MempoolPackagesTest(BitcoinTestFramework):
|
||||
# Test reorg handling
|
||||
# First, the basics:
|
||||
self.nodes[0].generate(1)
|
||||
sync_blocks(self.nodes)
|
||||
self.sync_blocks()
|
||||
self.nodes[1].invalidateblock(self.nodes[0].getbestblockhash())
|
||||
self.nodes[1].reconsiderblock(self.nodes[0].getbestblockhash())
|
||||
|
||||
@ -283,12 +283,12 @@ class MempoolPackagesTest(BitcoinTestFramework):
|
||||
rawtx = self.nodes[0].createrawtransaction(inputs, outputs)
|
||||
signedtx = self.nodes[0].signrawtransactionwithwallet(rawtx)
|
||||
txid = self.nodes[0].sendrawtransaction(signedtx['hex'])
|
||||
sync_mempools(self.nodes)
|
||||
self.sync_mempools()
|
||||
|
||||
# Now try to disconnect the tip on each node...
|
||||
self.nodes[1].invalidateblock(self.nodes[1].getbestblockhash())
|
||||
self.nodes[0].invalidateblock(self.nodes[0].getbestblockhash())
|
||||
sync_blocks(self.nodes)
|
||||
self.sync_blocks()
|
||||
|
||||
if __name__ == '__main__':
|
||||
MempoolPackagesTest().main()
|
||||
|
@ -50,7 +50,7 @@ class FeeFilterTest(BitcoinTestFramework):
|
||||
node0 = self.nodes[0]
|
||||
# Get out of IBD
|
||||
node1.generate(1)
|
||||
sync_blocks(self.nodes)
|
||||
self.sync_blocks()
|
||||
|
||||
self.nodes[0].add_p2p_connection(TestP2PConn())
|
||||
|
||||
@ -71,7 +71,7 @@ class FeeFilterTest(BitcoinTestFramework):
|
||||
# Change tx fee rate to 10 sat/byte and test they are no longer received
|
||||
node1.settxfee(Decimal("0.00010000"))
|
||||
[node1.sendtoaddress(node1.getnewaddress(), 1) for x in range(3)]
|
||||
sync_mempools(self.nodes) # must be sure node 0 has received all txs
|
||||
self.sync_mempools() # must be sure node 0 has received all txs
|
||||
|
||||
# Send one transaction from node0 that should be received, so that we
|
||||
# we can sync the test on receipt (if node1's txs were relayed, they'd
|
||||
|
@ -60,7 +60,7 @@ class NodeNetworkLimitedTest(BitcoinTestFramework):
|
||||
self.log.info("Mine enough blocks to reach the NODE_NETWORK_LIMITED range.")
|
||||
connect_nodes_bi(self.nodes, 0, 1)
|
||||
blocks = self.nodes[1].generatetoaddress(292, self.nodes[1].get_deterministic_priv_key().address)
|
||||
sync_blocks([self.nodes[0], self.nodes[1]])
|
||||
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
|
||||
@ -86,7 +86,7 @@ class NodeNetworkLimitedTest(BitcoinTestFramework):
|
||||
# because node 2 is in IBD and node 0 is a NODE_NETWORK_LIMITED peer, sync must not be possible
|
||||
connect_nodes_bi(self.nodes, 0, 2)
|
||||
try:
|
||||
sync_blocks([self.nodes[0], self.nodes[2]], timeout=5)
|
||||
self.sync_blocks([self.nodes[0], self.nodes[2]], timeout=5)
|
||||
except:
|
||||
pass
|
||||
# node2 must remain at height 0
|
||||
@ -96,7 +96,7 @@ class NodeNetworkLimitedTest(BitcoinTestFramework):
|
||||
connect_nodes_bi(self.nodes, 1, 2)
|
||||
|
||||
# sync must be possible
|
||||
sync_blocks(self.nodes)
|
||||
self.sync_blocks()
|
||||
|
||||
# disconnect all peers
|
||||
self.disconnect_all()
|
||||
@ -108,7 +108,7 @@ class NodeNetworkLimitedTest(BitcoinTestFramework):
|
||||
connect_nodes_bi(self.nodes, 0, 1)
|
||||
|
||||
# sync must be possible, node 1 is no longer in IBD and should therefore connect to node 0 (NODE_NETWORK_LIMITED)
|
||||
sync_blocks([self.nodes[0], self.nodes[1]])
|
||||
self.sync_blocks([self.nodes[0], self.nodes[1]])
|
||||
|
||||
if __name__ == '__main__':
|
||||
NodeNetworkLimitedTest().main()
|
||||
|
@ -283,7 +283,7 @@ class SegWitTest(BitcoinTestFramework):
|
||||
func(self, *args, **kwargs)
|
||||
# Each subtest should leave some utxos for the next subtest
|
||||
assert self.utxo
|
||||
sync_blocks(self.nodes)
|
||||
self.sync_blocks()
|
||||
# Assert segwit status is as expected at end of subtest
|
||||
assert_equal(get_bip9_status(self.nodes[0], 'segwit')['status'], self.segwit_status)
|
||||
|
||||
@ -644,7 +644,7 @@ class SegWitTest(BitcoinTestFramework):
|
||||
# Mine it on test_node to create the confirmed output.
|
||||
test_transaction_acceptance(self.nodes[0], self.test_node, p2sh_tx, with_witness=True, accepted=True)
|
||||
self.nodes[0].generate(1)
|
||||
sync_blocks(self.nodes)
|
||||
self.sync_blocks()
|
||||
|
||||
# Now test standardness of v0 P2WSH outputs.
|
||||
# Start by creating a transaction with two outputs.
|
||||
@ -675,7 +675,7 @@ class SegWitTest(BitcoinTestFramework):
|
||||
tx3 = CTransaction()
|
||||
# tx and tx2 were both accepted. Don't bother trying to reclaim the
|
||||
# P2PKH output; just send tx's first output back to an anyone-can-spend.
|
||||
sync_mempools([self.nodes[0], self.nodes[1]])
|
||||
self.sync_mempools([self.nodes[0], self.nodes[1]])
|
||||
tx3.vin = [CTxIn(COutPoint(tx.sha256, 0), b"")]
|
||||
tx3.vout = [CTxOut(tx.vout[0].nValue - 1000, CScript([OP_TRUE, OP_DROP] * 15 + [OP_TRUE]))]
|
||||
tx3.wit.vtxinwit.append(CTxInWitness())
|
||||
@ -694,7 +694,7 @@ class SegWitTest(BitcoinTestFramework):
|
||||
test_transaction_acceptance(self.nodes[0], self.test_node, tx3, with_witness=True, accepted=True)
|
||||
|
||||
self.nodes[0].generate(1)
|
||||
sync_blocks(self.nodes)
|
||||
self.sync_blocks()
|
||||
self.utxo.pop(0)
|
||||
self.utxo.append(UTXO(tx3.sha256, 0, tx3.vout[0].nValue))
|
||||
assert_equal(len(self.nodes[1].getrawmempool()), 0)
|
||||
@ -732,7 +732,7 @@ class SegWitTest(BitcoinTestFramework):
|
||||
block = self.build_next_block()
|
||||
self.update_witness_block_with_transactions(block, [tx])
|
||||
test_witness_block(self.nodes[0], self.test_node, block, accepted=True, with_witness=True)
|
||||
sync_blocks(self.nodes)
|
||||
self.sync_blocks()
|
||||
|
||||
# Now test attempts to spend the output.
|
||||
spend_tx = CTransaction()
|
||||
@ -1377,7 +1377,7 @@ class SegWitTest(BitcoinTestFramework):
|
||||
for i in range(NUM_SEGWIT_VERSIONS):
|
||||
self.utxo.append(UTXO(tx.sha256, i, split_value))
|
||||
|
||||
sync_blocks(self.nodes)
|
||||
self.sync_blocks()
|
||||
temp_utxo = []
|
||||
tx = CTransaction()
|
||||
witness_program = CScript([OP_TRUE])
|
||||
@ -1395,7 +1395,7 @@ class SegWitTest(BitcoinTestFramework):
|
||||
temp_utxo.append(UTXO(tx.sha256, 0, tx.vout[0].nValue))
|
||||
|
||||
self.nodes[0].generate(1) # Mine all the transactions
|
||||
sync_blocks(self.nodes)
|
||||
self.sync_blocks()
|
||||
assert len(self.nodes[0].getrawmempool()) == 0
|
||||
|
||||
# Finally, verify that version 0 -> version 1 transactions
|
||||
@ -1432,7 +1432,7 @@ class SegWitTest(BitcoinTestFramework):
|
||||
block = self.build_next_block()
|
||||
self.update_witness_block_with_transactions(block, [tx2, tx3])
|
||||
test_witness_block(self.nodes[0], self.test_node, block, accepted=True)
|
||||
sync_blocks(self.nodes)
|
||||
self.sync_blocks()
|
||||
|
||||
# Add utxo to our list
|
||||
self.utxo.append(UTXO(tx3.sha256, 0, tx3.vout[0].nValue))
|
||||
@ -1460,7 +1460,7 @@ class SegWitTest(BitcoinTestFramework):
|
||||
|
||||
# Now test a premature spend.
|
||||
self.nodes[0].generate(98)
|
||||
sync_blocks(self.nodes)
|
||||
self.sync_blocks()
|
||||
block2 = self.build_next_block()
|
||||
self.update_witness_block_with_transactions(block2, [spend_tx])
|
||||
test_witness_block(self.nodes[0], self.test_node, block2, accepted=False)
|
||||
@ -1470,7 +1470,7 @@ class SegWitTest(BitcoinTestFramework):
|
||||
block2 = self.build_next_block()
|
||||
self.update_witness_block_with_transactions(block2, [spend_tx])
|
||||
test_witness_block(self.nodes[0], self.test_node, block2, accepted=True)
|
||||
sync_blocks(self.nodes)
|
||||
self.sync_blocks()
|
||||
|
||||
@subtest
|
||||
def test_uncompressed_pubkey(self):
|
||||
@ -1600,7 +1600,7 @@ class SegWitTest(BitcoinTestFramework):
|
||||
block = self.build_next_block()
|
||||
self.update_witness_block_with_transactions(block, [tx])
|
||||
test_witness_block(self.nodes[0], self.test_node, block, accepted=True)
|
||||
sync_blocks(self.nodes)
|
||||
self.sync_blocks()
|
||||
self.utxo.pop(0)
|
||||
|
||||
# Test each hashtype
|
||||
@ -1779,7 +1779,7 @@ class SegWitTest(BitcoinTestFramework):
|
||||
tx.rehash()
|
||||
test_transaction_acceptance(self.nodes[0], self.test_node, tx, False, True)
|
||||
self.nodes[0].generate(1)
|
||||
sync_blocks(self.nodes)
|
||||
self.sync_blocks()
|
||||
|
||||
# We'll add an unnecessary witness to this transaction that would cause
|
||||
# it to be non-standard, to test that violating policy with a witness
|
||||
@ -1808,7 +1808,7 @@ class SegWitTest(BitcoinTestFramework):
|
||||
test_transaction_acceptance(self.nodes[0], self.test_node, tx3, False, True)
|
||||
|
||||
self.nodes[0].generate(1)
|
||||
sync_blocks(self.nodes)
|
||||
self.sync_blocks()
|
||||
|
||||
# Update our utxo list; we spent the first entry.
|
||||
self.utxo.pop(0)
|
||||
@ -1844,7 +1844,7 @@ class SegWitTest(BitcoinTestFramework):
|
||||
test_transaction_acceptance(self.nodes[0], self.test_node, tx, with_witness=False, accepted=True)
|
||||
|
||||
self.nodes[0].generate(1)
|
||||
sync_blocks(self.nodes)
|
||||
self.sync_blocks()
|
||||
|
||||
# Creating transactions for tests
|
||||
p2wsh_txs = []
|
||||
@ -1908,7 +1908,7 @@ class SegWitTest(BitcoinTestFramework):
|
||||
|
||||
self.nodes[0].generate(1) # Mine and clean up the mempool of non-standard node
|
||||
# Valid but non-standard transactions in a block should be accepted by standard node
|
||||
sync_blocks(self.nodes)
|
||||
self.sync_blocks()
|
||||
assert_equal(len(self.nodes[0].getrawmempool()), 0)
|
||||
assert_equal(len(self.nodes[1].getrawmempool()), 0)
|
||||
|
||||
@ -1923,7 +1923,7 @@ class SegWitTest(BitcoinTestFramework):
|
||||
self.start_node(2, extra_args=["-vbparams=segwit:0:999999999999"])
|
||||
connect_nodes(self.nodes[0], 2)
|
||||
|
||||
sync_blocks(self.nodes)
|
||||
self.sync_blocks()
|
||||
|
||||
# Make sure that this peer thinks segwit has activated.
|
||||
assert get_bip9_status(self.nodes[2], 'segwit')['status'] == "active"
|
||||
@ -2020,7 +2020,7 @@ class SegWitTest(BitcoinTestFramework):
|
||||
test_witness_block(self.nodes[0], self.test_node, block_4, accepted=True)
|
||||
|
||||
# Reset the tip back down for the next test
|
||||
sync_blocks(self.nodes)
|
||||
self.sync_blocks()
|
||||
for x in self.nodes:
|
||||
x.invalidateblock(block_4.hash)
|
||||
|
||||
|
@ -225,7 +225,7 @@ class SendHeadersTest(BitcoinTestFramework):
|
||||
|
||||
# make sure all invalidated blocks are node0's
|
||||
self.nodes[0].generatetoaddress(length, self.nodes[0].get_deterministic_priv_key().address)
|
||||
sync_blocks(self.nodes, wait=0.1)
|
||||
self.sync_blocks(self.nodes, 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()
|
||||
@ -234,7 +234,7 @@ class SendHeadersTest(BitcoinTestFramework):
|
||||
hash_to_invalidate = self.nodes[1].getblockhash(tip_height - (length - 1))
|
||||
self.nodes[1].invalidateblock(hash_to_invalidate)
|
||||
all_hashes = self.nodes[1].generatetoaddress(length + 1, self.nodes[1].get_deterministic_priv_key().address) # Must be longer than the orig chain
|
||||
sync_blocks(self.nodes, wait=0.1)
|
||||
self.sync_blocks(self.nodes, wait=0.1)
|
||||
return [int(x, 16) for x in all_hashes]
|
||||
|
||||
def run_test(self):
|
||||
|
@ -302,7 +302,7 @@ class AcceptBlockTest(BitcoinTestFramework):
|
||||
|
||||
# 9. Connect node1 to node0 and ensure it is able to sync
|
||||
connect_nodes(self.nodes[0], 1)
|
||||
sync_blocks([self.nodes[0], self.nodes[1]])
|
||||
self.sync_blocks([self.nodes[0], self.nodes[1]])
|
||||
self.log.info("Successfully synced nodes 1 and 0")
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
@ -35,7 +35,7 @@ class InvalidateTest(BitcoinTestFramework):
|
||||
|
||||
self.log.info("Connect nodes to force a reorg")
|
||||
connect_nodes_bi(self.nodes, 0, 1)
|
||||
sync_blocks(self.nodes[0:2])
|
||||
self.sync_blocks(self.nodes[0:2])
|
||||
assert_equal(self.nodes[0].getblockcount(), 6)
|
||||
badhash = self.nodes[1].getblockhash(2)
|
||||
|
||||
@ -47,7 +47,7 @@ class InvalidateTest(BitcoinTestFramework):
|
||||
self.log.info("Make sure we won't reorg to a lower work chain:")
|
||||
connect_nodes_bi(self.nodes, 1, 2)
|
||||
self.log.info("Sync node 2 to node 1 so both have 6 blocks")
|
||||
sync_blocks(self.nodes[1:3])
|
||||
self.sync_blocks(self.nodes[1:3])
|
||||
assert_equal(self.nodes[2].getblockcount(), 6)
|
||||
self.log.info("Invalidate block 5 on node 1 so its tip is now at 4")
|
||||
self.nodes[1].invalidateblock(self.nodes[1].getblockhash(5))
|
||||
|
@ -72,7 +72,7 @@ class PreciousTest(BitcoinTestFramework):
|
||||
assert_equal(self.nodes[0].getbestblockhash(), hashC)
|
||||
self.log.info("Make Node1 prefer block C")
|
||||
self.nodes[1].preciousblock(hashC)
|
||||
sync_blocks(self.nodes[0:2]) # wait because node 1 may not have downloaded hashC
|
||||
self.sync_blocks(self.nodes[0:2]) # wait because node 1 may not have downloaded hashC
|
||||
assert_equal(self.nodes[1].getbestblockhash(), hashC)
|
||||
self.log.info("Make Node1 prefer block G again")
|
||||
self.nodes[1].preciousblock(hashG)
|
||||
@ -86,7 +86,7 @@ class PreciousTest(BitcoinTestFramework):
|
||||
self.log.info("Mine another block (E-F-G-)H on Node 0 and reorg Node 1")
|
||||
self.nodes[0].generatetoaddress(1, gen_address(0))
|
||||
assert_equal(self.nodes[0].getblockcount(), 6)
|
||||
sync_blocks(self.nodes[0:2])
|
||||
self.sync_blocks(self.nodes[0:2])
|
||||
hashH = self.nodes[0].getbestblockhash()
|
||||
assert_equal(self.nodes[1].getbestblockhash(), hashH)
|
||||
self.log.info("Node1 should not be able to prefer block C anymore")
|
||||
|
@ -41,7 +41,7 @@ class PSBTTest(BitcoinTestFramework):
|
||||
online_node.importaddress(offline_addr, "", False)
|
||||
mining_node.sendtoaddress(address=offline_addr, amount=1.0)
|
||||
mining_node.generate(nblocks=1)
|
||||
sync_blocks([mining_node, online_node])
|
||||
self.sync_blocks([mining_node, online_node])
|
||||
|
||||
# Construct an unsigned PSBT on the online node (who doesn't know the output is Segwit, so will include a non-witness UTXO)
|
||||
utxos = online_node.listunspent(addresses=[offline_addr])
|
||||
@ -56,7 +56,7 @@ class PSBTTest(BitcoinTestFramework):
|
||||
# Make sure we can mine the resulting transaction
|
||||
txid = mining_node.sendrawtransaction(mining_node.finalizepsbt(signed_psbt)["hex"])
|
||||
mining_node.generate(1)
|
||||
sync_blocks([mining_node, online_node])
|
||||
self.sync_blocks([mining_node, online_node])
|
||||
assert_equal(online_node.gettxout(txid,0)["confirmations"], 1)
|
||||
|
||||
# Reconnect
|
||||
|
@ -33,12 +33,12 @@ class AbandonConflictTest(BitcoinTestFramework):
|
||||
|
||||
def run_test(self):
|
||||
self.nodes[1].generate(100)
|
||||
sync_blocks(self.nodes)
|
||||
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"))
|
||||
txC = self.nodes[0].sendtoaddress(self.nodes[0].getnewaddress(), Decimal("10"))
|
||||
sync_mempools(self.nodes)
|
||||
self.sync_mempools()
|
||||
self.nodes[1].generate(1)
|
||||
|
||||
# Can not abandon non-wallet transaction
|
||||
@ -46,7 +46,7 @@ class AbandonConflictTest(BitcoinTestFramework):
|
||||
# Can not abandon confirmed transaction
|
||||
assert_raises_rpc_error(-5, 'Transaction not eligible for abandonment', lambda: self.nodes[0].abandontransaction(txid=txA))
|
||||
|
||||
sync_blocks(self.nodes)
|
||||
self.sync_blocks()
|
||||
newbalance = self.nodes[0].getbalance()
|
||||
assert balance - newbalance < Decimal("0.001") #no more than fees lost
|
||||
balance = newbalance
|
||||
@ -163,7 +163,7 @@ class AbandonConflictTest(BitcoinTestFramework):
|
||||
self.nodes[1].generate(1)
|
||||
|
||||
connect_nodes(self.nodes[0], 1)
|
||||
sync_blocks(self.nodes)
|
||||
self.sync_blocks()
|
||||
|
||||
# Verify that B and C's 10 BTC outputs are available for spending again because AB1 is now conflicted
|
||||
newbalance = self.nodes[0].getbalance()
|
||||
|
@ -220,7 +220,7 @@ class AddressTypeTest(BitcoinTestFramework):
|
||||
# Mine 101 blocks on node5 to bring nodes out of IBD and make sure that
|
||||
# no coinbases are maturing for the nodes-under-test during the test
|
||||
self.nodes[5].generate(101)
|
||||
sync_blocks(self.nodes)
|
||||
self.sync_blocks()
|
||||
|
||||
uncompressed_1 = "0496b538e853519c726a2c91e61ec11600ae1390813a627c66fb8be7947be63c52da7589379515d4e0a604f8141781e62294721166bf621e73a82cbf2342c858ee"
|
||||
uncompressed_2 = "047211a824f55b505228e4c3d5194c1fcfaa15a456abdf37f9b9d97a4040afc073dee6c89064984f03385237d92167c13e236446b417ab79a0fcae412ae3316b77"
|
||||
@ -287,7 +287,7 @@ class AddressTypeTest(BitcoinTestFramework):
|
||||
|
||||
self.log.debug("Sending: {}".format(sends))
|
||||
self.nodes[from_node].sendmany("", sends)
|
||||
sync_mempools(self.nodes)
|
||||
self.sync_mempools()
|
||||
|
||||
unconf_balances = self.get_balances(False)
|
||||
self.log.debug("Check unconfirmed balances: {}".format(unconf_balances))
|
||||
@ -298,7 +298,7 @@ class AddressTypeTest(BitcoinTestFramework):
|
||||
|
||||
# node5 collects fee and block subsidy to keep accounting simple
|
||||
self.nodes[5].generate(1)
|
||||
sync_blocks(self.nodes)
|
||||
self.sync_blocks()
|
||||
|
||||
# Verify that the receiving wallet contains a UTXO with the expected address, and expected descriptor
|
||||
for n, to_node in enumerate(range(from_node, from_node + 4)):
|
||||
@ -328,7 +328,7 @@ class AddressTypeTest(BitcoinTestFramework):
|
||||
# Fund node 4:
|
||||
self.nodes[5].sendtoaddress(self.nodes[4].getnewaddress(), Decimal("1"))
|
||||
self.nodes[5].generate(1)
|
||||
sync_blocks(self.nodes)
|
||||
self.sync_blocks()
|
||||
assert_equal(self.nodes[4].getbalance(), 1)
|
||||
|
||||
self.log.info("Nodes with addresstype=legacy never use a P2WPKH change output")
|
||||
|
@ -75,9 +75,9 @@ class WalletBackupTest(BitcoinTestFramework):
|
||||
|
||||
# Have the miner (node3) mine a block.
|
||||
# Must sync mempools before mining.
|
||||
sync_mempools(self.nodes)
|
||||
self.sync_mempools()
|
||||
self.nodes[3].generate(1)
|
||||
sync_blocks(self.nodes)
|
||||
self.sync_blocks()
|
||||
|
||||
# As above, this mirrors the original bash test.
|
||||
def start_three(self):
|
||||
@ -102,13 +102,13 @@ class WalletBackupTest(BitcoinTestFramework):
|
||||
def run_test(self):
|
||||
self.log.info("Generating initial blockchain")
|
||||
self.nodes[0].generate(1)
|
||||
sync_blocks(self.nodes)
|
||||
self.sync_blocks()
|
||||
self.nodes[1].generate(1)
|
||||
sync_blocks(self.nodes)
|
||||
self.sync_blocks()
|
||||
self.nodes[2].generate(1)
|
||||
sync_blocks(self.nodes)
|
||||
self.sync_blocks()
|
||||
self.nodes[3].generate(100)
|
||||
sync_blocks(self.nodes)
|
||||
self.sync_blocks()
|
||||
|
||||
assert_equal(self.nodes[0].getbalance(), 50)
|
||||
assert_equal(self.nodes[1].getbalance(), 50)
|
||||
@ -165,7 +165,7 @@ class WalletBackupTest(BitcoinTestFramework):
|
||||
|
||||
self.log.info("Re-starting nodes")
|
||||
self.start_three()
|
||||
sync_blocks(self.nodes)
|
||||
self.sync_blocks()
|
||||
|
||||
assert_equal(self.nodes[0].getbalance(), balance0)
|
||||
assert_equal(self.nodes[1].getbalance(), balance1)
|
||||
@ -189,7 +189,7 @@ class WalletBackupTest(BitcoinTestFramework):
|
||||
self.nodes[1].importwallet(os.path.join(self.nodes[1].datadir, 'wallet.dump'))
|
||||
self.nodes[2].importwallet(os.path.join(self.nodes[2].datadir, 'wallet.dump'))
|
||||
|
||||
sync_blocks(self.nodes)
|
||||
self.sync_blocks()
|
||||
|
||||
assert_equal(self.nodes[0].getbalance(), balance0)
|
||||
assert_equal(self.nodes[1].getbalance(), balance1)
|
||||
|
@ -281,10 +281,10 @@ class WalletTest(BitcoinTestFramework):
|
||||
connect_nodes_bi(self.nodes, 0, 1)
|
||||
connect_nodes_bi(self.nodes, 1, 2)
|
||||
connect_nodes_bi(self.nodes, 0, 2)
|
||||
sync_blocks(self.nodes[0:3])
|
||||
self.sync_blocks(self.nodes[0:3])
|
||||
|
||||
self.nodes[0].generate(1)
|
||||
sync_blocks(self.nodes[0:3])
|
||||
self.sync_blocks(self.nodes[0:3])
|
||||
node_2_bal += 2
|
||||
|
||||
# tx should be added to balance because after restarting the nodes tx should be broadcast
|
||||
|
@ -79,13 +79,13 @@ class BumpFeeTest(BitcoinTestFramework):
|
||||
def test_simple_bumpfee_succeeds(self, rbf_node, peer_node, dest_address):
|
||||
rbfid = spend_one_input(rbf_node, dest_address)
|
||||
rbftx = rbf_node.gettransaction(rbfid)
|
||||
sync_mempools((rbf_node, peer_node))
|
||||
self.sync_mempools((rbf_node, peer_node))
|
||||
assert rbfid in rbf_node.getrawmempool() and rbfid in peer_node.getrawmempool()
|
||||
bumped_tx = rbf_node.bumpfee(rbfid)
|
||||
assert_equal(bumped_tx["errors"], [])
|
||||
assert bumped_tx["fee"] - abs(rbftx["fee"]) > 0
|
||||
# check that bumped_tx propagates, original tx was evicted and has a wallet conflict
|
||||
sync_mempools((rbf_node, peer_node))
|
||||
self.sync_mempools((rbf_node, peer_node))
|
||||
assert bumped_tx["txid"] in rbf_node.getrawmempool()
|
||||
assert bumped_tx["txid"] in peer_node.getrawmempool()
|
||||
assert rbfid not in rbf_node.getrawmempool()
|
||||
|
@ -161,7 +161,7 @@ class ImportRescanTest(BitcoinTestFramework):
|
||||
timestamp = self.nodes[0].getblockheader(self.nodes[0].getbestblockhash())["time"]
|
||||
set_node_times(self.nodes, timestamp + TIMESTAMP_WINDOW + 1)
|
||||
self.nodes[0].generate(1)
|
||||
sync_blocks(self.nodes)
|
||||
self.sync_blocks()
|
||||
|
||||
# For each variation of wallet key import, invoke the import RPC and
|
||||
# check the results from getbalance and listtransactions.
|
||||
@ -187,7 +187,7 @@ class ImportRescanTest(BitcoinTestFramework):
|
||||
# Generate a block containing the new transactions.
|
||||
self.nodes[0].generate(1)
|
||||
assert_equal(self.nodes[0].getrawmempool(), [])
|
||||
sync_blocks(self.nodes)
|
||||
self.sync_blocks()
|
||||
|
||||
# Check the latest results from getbalance and listtransactions.
|
||||
for variant in IMPORT_VARIANTS:
|
||||
|
@ -67,7 +67,7 @@ class KeypoolRestoreTest(BitcoinTestFramework):
|
||||
self.nodes[0].generate(1)
|
||||
self.nodes[0].sendtoaddress(addr_extpool, 5)
|
||||
self.nodes[0].generate(1)
|
||||
sync_blocks(self.nodes)
|
||||
self.sync_blocks()
|
||||
|
||||
self.log.info("Restart node with wallet backup")
|
||||
self.stop_node(idx)
|
||||
|
@ -24,7 +24,7 @@ class ReceivedByTest(BitcoinTestFramework):
|
||||
def run_test(self):
|
||||
# Generate block to get out of IBD
|
||||
self.nodes[0].generate(1)
|
||||
sync_blocks(self.nodes)
|
||||
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))
|
||||
|
@ -127,7 +127,7 @@ class ListTransactionsTest(BitcoinTestFramework):
|
||||
txid_1 = self.nodes[0].sendtoaddress(self.nodes[1].getnewaddress(), 1)
|
||||
assert not is_opt_in(self.nodes[0], txid_1)
|
||||
assert_array_result(self.nodes[0].listtransactions(), {"txid": txid_1}, {"bip125-replaceable": "no"})
|
||||
sync_mempools(self.nodes)
|
||||
self.sync_mempools()
|
||||
assert_array_result(self.nodes[1].listtransactions(), {"txid": txid_1}, {"bip125-replaceable": "no"})
|
||||
|
||||
# Tx2 will build off txid_1, still not opting in to RBF.
|
||||
@ -147,7 +147,7 @@ class ListTransactionsTest(BitcoinTestFramework):
|
||||
# ...and check the result
|
||||
assert not is_opt_in(self.nodes[1], txid_2)
|
||||
assert_array_result(self.nodes[1].listtransactions(), {"txid": txid_2}, {"bip125-replaceable": "no"})
|
||||
sync_mempools(self.nodes)
|
||||
self.sync_mempools()
|
||||
assert_array_result(self.nodes[0].listtransactions(), {"txid": txid_2}, {"bip125-replaceable": "no"})
|
||||
|
||||
# Tx3 will opt-in to RBF
|
||||
@ -163,7 +163,7 @@ class ListTransactionsTest(BitcoinTestFramework):
|
||||
|
||||
assert is_opt_in(self.nodes[0], txid_3)
|
||||
assert_array_result(self.nodes[0].listtransactions(), {"txid": txid_3}, {"bip125-replaceable": "yes"})
|
||||
sync_mempools(self.nodes)
|
||||
self.sync_mempools()
|
||||
assert_array_result(self.nodes[1].listtransactions(), {"txid": txid_3}, {"bip125-replaceable": "yes"})
|
||||
|
||||
# Tx4 will chain off tx3. Doesn't signal itself, but depends on one
|
||||
@ -177,7 +177,7 @@ class ListTransactionsTest(BitcoinTestFramework):
|
||||
|
||||
assert not is_opt_in(self.nodes[1], txid_4)
|
||||
assert_array_result(self.nodes[1].listtransactions(), {"txid": txid_4}, {"bip125-replaceable": "yes"})
|
||||
sync_mempools(self.nodes)
|
||||
self.sync_mempools()
|
||||
assert_array_result(self.nodes[0].listtransactions(), {"txid": txid_4}, {"bip125-replaceable": "yes"})
|
||||
|
||||
# Replace tx3, and check that tx4 becomes unknown
|
||||
@ -189,7 +189,7 @@ class ListTransactionsTest(BitcoinTestFramework):
|
||||
assert is_opt_in(self.nodes[0], txid_3b)
|
||||
|
||||
assert_array_result(self.nodes[0].listtransactions(), {"txid": txid_4}, {"bip125-replaceable": "unknown"})
|
||||
sync_mempools(self.nodes)
|
||||
self.sync_mempools()
|
||||
assert_array_result(self.nodes[1].listtransactions(), {"txid": txid_4}, {"bip125-replaceable": "unknown"})
|
||||
|
||||
# Check gettransaction as well:
|
||||
|
@ -87,7 +87,7 @@ class TxnMallTest(BitcoinTestFramework):
|
||||
# Have node0 mine a block, if requested:
|
||||
if (self.options.mine_block):
|
||||
self.nodes[0].generate(1)
|
||||
sync_blocks(self.nodes[0:2])
|
||||
self.sync_blocks(self.nodes[0:2])
|
||||
|
||||
tx1 = self.nodes[0].gettransaction(txid1)
|
||||
tx2 = self.nodes[0].gettransaction(txid2)
|
||||
@ -123,7 +123,7 @@ class TxnMallTest(BitcoinTestFramework):
|
||||
self.nodes[2].sendrawtransaction(node0_tx2["hex"])
|
||||
self.nodes[2].sendrawtransaction(tx2["hex"])
|
||||
self.nodes[2].generate(1) # Mine another block to make sure we sync
|
||||
sync_blocks(self.nodes)
|
||||
self.sync_blocks()
|
||||
|
||||
# Re-fetch transaction info:
|
||||
tx1 = self.nodes[0].gettransaction(txid1)
|
||||
|
@ -86,7 +86,7 @@ class TxnMallTest(BitcoinTestFramework):
|
||||
# Have node0 mine a block:
|
||||
if (self.options.mine_block):
|
||||
self.nodes[0].generate(1)
|
||||
sync_blocks(self.nodes[0:2])
|
||||
self.sync_blocks(self.nodes[0:2])
|
||||
|
||||
tx1 = self.nodes[0].gettransaction(txid1)
|
||||
tx2 = self.nodes[0].gettransaction(txid2)
|
||||
@ -119,7 +119,7 @@ class TxnMallTest(BitcoinTestFramework):
|
||||
# Reconnect the split network, and sync chain:
|
||||
connect_nodes(self.nodes[1], 2)
|
||||
self.nodes[2].generate(1) # Mine another block to make sure we sync
|
||||
sync_blocks(self.nodes)
|
||||
self.sync_blocks()
|
||||
assert_equal(self.nodes[0].gettransaction(doublespend_txid)["confirmations"], 2)
|
||||
|
||||
# Re-fetch transaction info:
|
||||
|
Loading…
Reference in New Issue
Block a user