Bitcoin Core 31.0.0
P2P Digital Currency
Loading...
Searching...
No Matches
txmempool.h
Go to the documentation of this file.
1// Copyright (c) 2022-present 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 TryAddToMempool(CTxMemPool& tx_pool, const CTxMemPoolEntry& entry);
69
81void MockMempoolMinFee(const CFeeRate& target_feerate, CTxMemPool& mempool);
82
83#endif // BITCOIN_TEST_UTIL_TXMEMPOOL_H
int64_t CAmount
Amount in satoshis (Can be negative).
Definition amount.h:12
Fee rate in satoshis per virtualbyte: CAmount / vB the feerate is represented internally as FeeFrac.
Definition feerate.h:32
CTxMemPoolEntry stores data about the corresponding transaction, as well as data about all in-mempool...
CTxMemPool stores valid-according-to-the-current-best-chain transactions that may be included in the ...
Definition txmempool.h:187
kernel::MemPoolOptions Options
Definition txmempool.h:301
std::vector< CTransactionRef > Package
A package is an ordered list of transactions.
Definition packages.h:45
std::shared_ptr< const CTransaction > CTransactionRef
A mutable version of CTransaction.
Validation result for package mempool acceptance.
Definition validation.h:237
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:34
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
CTxMemPool::Options MemPoolOptionsForTest(const node::NodeContext &node)
Definition txmempool.cpp:21
void CheckMempoolTRUCInvariants(const CTxMemPool &tx_pool)
For every transaction in tx_pool, check TRUC invariants:
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:44
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...
void TryAddToMempool(CTxMemPool &tx_pool, const CTxMemPoolEntry &entry)
One-line wrapper for creating a mempool changeset with a single transaction and applying it if the po...
void MockMempoolMinFee(const CFeeRate &target_feerate, CTxMemPool &mempool)
Mock the mempool minimum feerate by adding a transaction and calling TrimToSize(0),...
std::chrono::time_point< NodeClock, std::chrono::seconds > NodeSeconds
Definition time.h:25