![]() |
Bitcoin Core
26.1.0
P2P Digital Currency
|
Testing fixture that pre-creates a 100-block REGTEST-mode block chain. More...
#include <setup_common.h>
Public Member Functions | |
| TestChain100Setup (const ChainType chain_type=ChainType::REGTEST, const std::vector< const char *> &extra_args={}, const bool coins_db_in_memory=true, const bool block_tree_db_in_memory=true) | |
| CBlock | CreateAndProcessBlock (const std::vector< CMutableTransaction > &txns, const CScript &scriptPubKey, Chainstate *chainstate=nullptr) |
| Create a new block with just given transactions, coinbase paying to scriptPubKey, and try to add it to the current chain. More... | |
| CBlock | CreateBlock (const std::vector< CMutableTransaction > &txns, const CScript &scriptPubKey, Chainstate &chainstate) |
| Create a new block with just given transactions, coinbase paying to scriptPubKey. More... | |
| void | mineBlocks (int num_blocks) |
| Mine a series of new blocks on the active chain. More... | |
| CMutableTransaction | CreateValidMempoolTransaction (CTransactionRef input_transaction, int input_vout, int input_height, CKey input_signing_key, CScript output_destination, CAmount output_amount=CAmount(1 *COIN), bool submit=true) |
| Create a transaction and submit to the mempool. More... | |
| std::vector< CTransactionRef > | PopulateMempool (FastRandomContext &det_rand, size_t num_transactions, bool submit) |
| Create transactions spending from m_coinbase_txns. More... | |
| void | MockMempoolMinFee (const CFeeRate &target_feerate) |
| Mock the mempool minimum feerate by adding a transaction and calling TrimToSize(0), simulating the mempool "reaching capacity" and evicting by descendant feerate. More... | |
Public Member Functions inherited from TestingSetup | |
| TestingSetup (const ChainType chainType=ChainType::MAIN, const std::vector< const char *> &extra_args={}, const bool coins_db_in_memory=true, const bool block_tree_db_in_memory=true) | |
Public Member Functions inherited from ChainTestingSetup | |
| ChainTestingSetup (const ChainType chainType=ChainType::MAIN, const std::vector< const char *> &extra_args={}) | |
| ~ChainTestingSetup () | |
| void | LoadVerifyActivateChainstate () |
Public Member Functions inherited from BasicTestingSetup | |
| BasicTestingSetup (const ChainType chainType=ChainType::MAIN, const std::vector< const char *> &extra_args={}) | |
| ~BasicTestingSetup () | |
Public Attributes | |
| std::vector< CTransactionRef > | m_coinbase_txns |
| CKey | coinbaseKey |
Public Attributes inherited from ChainTestingSetup | |
| node::CacheSizes | m_cache_sizes {} |
| bool | m_coins_db_in_memory {true} |
| bool | m_block_tree_db_in_memory {true} |
Public Attributes inherited from BasicTestingSetup | |
| node::NodeContext | m_node |
| const fs::path | m_path_root |
| ArgsManager | m_args |
Testing fixture that pre-creates a 100-block REGTEST-mode block chain.
Definition at line 98 of file setup_common.h.
| TestChain100Setup::TestChain100Setup | ( | const ChainType | chain_type = ChainType::REGTEST, |
| const std::vector< const char *> & | extra_args = {}, |
||
| const bool | coins_db_in_memory = true, |
||
| const bool | block_tree_db_in_memory = true |
||
| ) |
Definition at line 271 of file setup_common.cpp.
| CBlock TestChain100Setup::CreateAndProcessBlock | ( | const std::vector< CMutableTransaction > & | txns, |
| const CScript & | scriptPubKey, | ||
| Chainstate * | chainstate = nullptr |
||
| ) |
Create a new block with just given transactions, coinbase paying to scriptPubKey, and try to add it to the current chain.
If no chainstate is specified, default to the active.
Definition at line 323 of file setup_common.cpp.
| CBlock TestChain100Setup::CreateBlock | ( | const std::vector< CMutableTransaction > & | txns, |
| const CScript & | scriptPubKey, | ||
| Chainstate & | chainstate | ||
| ) |
Create a new block with just given transactions, coinbase paying to scriptPubKey.
Definition at line 305 of file setup_common.cpp.
| CMutableTransaction TestChain100Setup::CreateValidMempoolTransaction | ( | CTransactionRef | input_transaction, |
| int | input_vout, | ||
| int | input_height, | ||
| CKey | input_signing_key, | ||
| CScript | output_destination, | ||
| CAmount | output_amount = CAmount(1 * COIN), |
||
| bool | submit = true |
||
| ) |
Create a transaction and submit to the mempool.
| input_transaction | The transaction to spend |
| input_vout | The vout to spend from the input_transaction |
| input_height | The height of the block that included the input_transaction |
| input_signing_key | The key to spend the input_transaction |
| output_destination | Where to send the output |
| output_amount | How much to send |
| submit | Whether or not to submit to mempool |
Definition at line 340 of file setup_common.cpp.
| void TestChain100Setup::mineBlocks | ( | int | num_blocks | ) |
Mine a series of new blocks on the active chain.
Definition at line 294 of file setup_common.cpp.
| void TestChain100Setup::MockMempoolMinFee | ( | const CFeeRate & | target_feerate | ) |
Mock the mempool minimum feerate by adding a transaction and calling TrimToSize(0), simulating the mempool "reaching capacity" and evicting by descendant feerate.
Note that this clears the mempool, and the new minimum feerate will depend on the maximum feerate of transactions removed, so this must be called while the mempool is empty.
| target_feerate | The new mempool minimum feerate after this function returns. Must be above max(incremental feerate, min relay feerate), or 1sat/vB with default settings. |
Definition at line 437 of file setup_common.cpp.
| std::vector< CTransactionRef > TestChain100Setup::PopulateMempool | ( | FastRandomContext & | det_rand, |
| size_t | num_transactions, | ||
| bool | submit | ||
| ) |
Create transactions spending from m_coinbase_txns.
These transactions will only spend coins that exist in the current chain, but may be premature coinbase spends, have missing signatures, or violate some other consensus rules. They should only be used for testing mempool consistency. All transactions will have some random number of inputs and outputs (between 1 and 24). Transactions may or may not be dependent upon each other; if dependencies exit, every parent will always be somewhere in the list before the child so each transaction can be submitted in the same order they appear in the list.
| [in] | submit | When true, submit transactions to the mempool. When false, return them but don't submit them. |
Definition at line 389 of file setup_common.cpp.
| CKey TestChain100Setup::coinbaseKey |
Definition at line 170 of file setup_common.h.
| std::vector<CTransactionRef> TestChain100Setup::m_coinbase_txns |
Definition at line 169 of file setup_common.h.
1.8.14