Bitcoin Core 28.99.0
P2P Digital Currency
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages Concepts
txmempool.h
Go to the documentation of this file.
1// Copyright (c) 2022 The Bitcoin Core developers
2// Distributed under the MIT software license, see the accompanying
3// file COPYING or http://www.opensource.org/licenses/mit-license.php.
4
5#ifndef BITCOIN_TEST_UTIL_TXMEMPOOL_H
6#define BITCOIN_TEST_UTIL_TXMEMPOOL_H
7
8#include <policy/packages.h>
9#include <txmempool.h>
10#include <util/time.h>
11
12namespace node {
13struct NodeContext;
14}
16
18
20 // Default values
23 unsigned int nHeight{1};
24 uint64_t m_sequence{0};
25 bool spendsCoinbase{false};
26 unsigned int sigOpCost{4};
28
30 CTxMemPoolEntry FromTx(const CTransactionRef& tx) const;
31
32 // Change the default value
33 TestMemPoolEntryHelper& Fee(CAmount _fee) { nFee = _fee; return *this; }
34 TestMemPoolEntryHelper& Time(NodeSeconds tp) { time = tp; return *this; }
35 TestMemPoolEntryHelper& Height(unsigned int _height) { nHeight = _height; return *this; }
36 TestMemPoolEntryHelper& Sequence(uint64_t _seq) { m_sequence = _seq; return *this; }
37 TestMemPoolEntryHelper& SpendsCoinbase(bool _flag) { spendsCoinbase = _flag; return *this; }
38 TestMemPoolEntryHelper& SigOpsCost(unsigned int _sigopsCost) { sigOpCost = _sigopsCost; return *this; }
39};
40
45std::optional<std::string> CheckPackageMempoolAcceptResult(const Package& txns,
46 const PackageMempoolAcceptResult& result,
47 bool expect_valid,
48 const CTxMemPool* mempool);
49
56
64void CheckMempoolTRUCInvariants(const CTxMemPool& tx_pool);
65
68void AddToMempool(CTxMemPool& tx_pool, const CTxMemPoolEntry& entry);
69
70#endif // BITCOIN_TEST_UTIL_TXMEMPOOL_H
int64_t CAmount
Amount in satoshis (Can be negative)
Definition: amount.h:12
CTxMemPoolEntry stores data about the corresponding transaction, as well as data about all in-mempool...
Definition: mempool_entry.h:66
CTxMemPool stores valid-according-to-the-current-best-chain transactions that may be included in the ...
Definition: txmempool.h:304
Definition: messages.h:20
std::vector< CTransactionRef > Package
A package is an ordered list of transactions.
Definition: packages.h:50
std::shared_ptr< const CTransaction > CTransactionRef
Definition: transaction.h:423
A mutable version of CTransaction.
Definition: transaction.h:378
Validation result for package mempool acceptance.
Definition: validation.h:229
Definition: txmempool.h:19
TestMemPoolEntryHelper & SigOpsCost(unsigned int _sigopsCost)
Definition: txmempool.h:38
TestMemPoolEntryHelper & Time(NodeSeconds tp)
Definition: txmempool.h:34
CAmount nFee
Definition: txmempool.h:21
bool spendsCoinbase
Definition: txmempool.h:25
LockPoints lp
Definition: txmempool.h:27
CTxMemPoolEntry FromTx(const CMutableTransaction &tx) const
Definition: txmempool.cpp:33
TestMemPoolEntryHelper & SpendsCoinbase(bool _flag)
Definition: txmempool.h:37
unsigned int nHeight
Definition: txmempool.h:23
unsigned int sigOpCost
Definition: txmempool.h:26
TestMemPoolEntryHelper & Height(unsigned int _height)
Definition: txmempool.h:35
TestMemPoolEntryHelper & Fee(CAmount _fee)
Definition: txmempool.h:33
NodeSeconds time
Definition: txmempool.h:22
uint64_t m_sequence
Definition: txmempool.h:24
TestMemPoolEntryHelper & Sequence(uint64_t _seq)
Definition: txmempool.h:36
Options struct containing options for constructing a CTxMemPool.
NodeContext struct containing references to chain state and connection state.
Definition: context.h:56
void AddToMempool(CTxMemPool &tx_pool, const CTxMemPoolEntry &entry)
One-line wrapper for creating a mempool changeset with a single transaction and applying it.
Definition: txmempool.cpp:212
CTxMemPool::Options MemPoolOptionsForTest(const node::NodeContext &node)
Definition: txmempool.cpp:20
void CheckMempoolTRUCInvariants(const CTxMemPool &tx_pool)
For every transaction in tx_pool, check TRUC invariants:
Definition: txmempool.cpp:181
std::optional< std::string > CheckPackageMempoolAcceptResult(const Package &txns, const PackageMempoolAcceptResult &result, bool expect_valid, const CTxMemPool *mempool)
Check expected properties for every PackageMempoolAcceptResult, regardless of value.
Definition: txmempool.cpp:43
void CheckMempoolEphemeralInvariants(const CTxMemPool &tx_pool)
Check that we never get into a state where an ephemeral dust transaction would be mined without the s...
Definition: txmempool.cpp:144
std::chrono::time_point< NodeClock, std::chrono::seconds > NodeSeconds
Definition: time.h:25