aboutsummaryrefslogtreecommitdiff
path: root/qa/rpc-tests/mempool_resurrect_test.py
diff options
context:
space:
mode:
Diffstat (limited to 'qa/rpc-tests/mempool_resurrect_test.py')
-rwxr-xr-xqa/rpc-tests/mempool_resurrect_test.py77
1 files changed, 0 insertions, 77 deletions
diff --git a/qa/rpc-tests/mempool_resurrect_test.py b/qa/rpc-tests/mempool_resurrect_test.py
deleted file mode 100755
index 727892d1f2..0000000000
--- a/qa/rpc-tests/mempool_resurrect_test.py
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/usr/bin/env python3
-# Copyright (c) 2014-2016 The Bitcoin Core developers
-# Distributed under the MIT software license, see the accompanying
-# file COPYING or http://www.opensource.org/licenses/mit-license.php.
-"""Test resurrection of mined transactions when the blockchain is re-organized."""
-
-from test_framework.test_framework import BitcoinTestFramework
-from test_framework.util import *
-
-# Create one-input, one-output, no-fee transaction:
-class MempoolCoinbaseTest(BitcoinTestFramework):
-
- def __init__(self):
- super().__init__()
- self.num_nodes = 1
- self.setup_clean_chain = False
-
- def setup_network(self):
- # Just need one node for this test
- args = ["-checkmempool"]
- self.nodes = []
- self.nodes.append(start_node(0, self.options.tmpdir, args))
- self.is_network_split = False
-
- def run_test(self):
- node0_address = self.nodes[0].getnewaddress()
- # Spend block 1/2/3's coinbase transactions
- # Mine a block.
- # Create three more transactions, spending the spends
- # Mine another block.
- # ... make sure all the transactions are confirmed
- # Invalidate both blocks
- # ... make sure all the transactions are put back in the mempool
- # Mine a new block
- # ... make sure all the transactions are confirmed again.
-
- b = [ self.nodes[0].getblockhash(n) for n in range(1, 4) ]
- coinbase_txids = [ self.nodes[0].getblock(h)['tx'][0] for h in b ]
- spends1_raw = [ create_tx(self.nodes[0], txid, node0_address, 49.99) for txid in coinbase_txids ]
- spends1_id = [ self.nodes[0].sendrawtransaction(tx) for tx in spends1_raw ]
-
- blocks = []
- blocks.extend(self.nodes[0].generate(1))
-
- spends2_raw = [ create_tx(self.nodes[0], txid, node0_address, 49.98) for txid in spends1_id ]
- spends2_id = [ self.nodes[0].sendrawtransaction(tx) for tx in spends2_raw ]
-
- blocks.extend(self.nodes[0].generate(1))
-
- # mempool should be empty, all txns confirmed
- assert_equal(set(self.nodes[0].getrawmempool()), set())
- for txid in spends1_id+spends2_id:
- tx = self.nodes[0].gettransaction(txid)
- assert(tx["confirmations"] > 0)
-
- # Use invalidateblock to re-org back; all transactions should
- # end up unconfirmed and back in the mempool
- for node in self.nodes:
- node.invalidateblock(blocks[0])
-
- # mempool should be empty, all txns confirmed
- assert_equal(set(self.nodes[0].getrawmempool()), set(spends1_id+spends2_id))
- for txid in spends1_id+spends2_id:
- tx = self.nodes[0].gettransaction(txid)
- assert(tx["confirmations"] == 0)
-
- # Generate another block, they should all get mined
- self.nodes[0].generate(1)
- # mempool should be empty, all txns confirmed
- assert_equal(set(self.nodes[0].getrawmempool()), set())
- for txid in spends1_id+spends2_id:
- tx = self.nodes[0].gettransaction(txid)
- assert(tx["confirmations"] > 0)
-
-
-if __name__ == '__main__':
- MempoolCoinbaseTest().main()