15 #include <boost/test/unit_test.hpp> 27 std::vector<CAmount> feeV;
31 for (
int j = 0; j < 10; j++) {
32 feeV.push_back(basefee * (j+1));
39 std::vector<uint256> txHashes[10];
43 for (
unsigned int i = 0; i < 128; i++)
47 tx.
vin[0].scriptSig = garbage;
49 tx.
vout[0].nValue=0LL;
53 std::vector<CTransactionRef> block;
59 while (blocknum < 200) {
60 for (
int j = 0; j < 10; j++) {
61 for (
int k = 0;
k < 4;
k++) {
62 tx.
vin[0].prevout.n = 10000*blocknum+100*j+
k;
80 txHashes[j].push_back(hash);
84 for (
int h = 0; h <= blocknum%10; h++) {
88 while (txHashes[9-h].size()) {
92 txHashes[9-h].pop_back();
118 std::vector<CAmount> origFeeEst;
125 for (
int i = 1; i < 10;i++) {
137 for (
int i = 10; i <= 48; i++) {
143 while (blocknum < 250) {
152 for (
int i = 2; i < 10;i++) {
160 while (blocknum < 265) {
161 for (
int j = 0; j < 10; j++) {
162 for (
int k = 0;
k < 4;
k++) {
163 tx.
vin[0].prevout.n = 10000*blocknum+100*j+
k;
181 txHashes[j].push_back(hash);
193 for (
int i = 1; i < 10;i++) {
199 for (
int j = 0; j < 10; j++) {
200 while(txHashes[j].size()) {
203 block.push_back(ptx);
204 txHashes[j].pop_back();
218 for (
int i = 2; i < 10;i++) {
224 while (blocknum < 665) {
225 for (
int j = 0; j < 10; j++) {
226 for (
int k = 0;
k < 4;
k++) {
227 tx.
vin[0].prevout.n = 10000*blocknum+100*j+
k;
247 block.push_back(ptx);
262 for (
int i = 2; i < 9; i++) {
std::shared_ptr< const CTransaction > CTransactionRef
Testing setup that performs all steps up until right before ChainstateManager gets initialized...
CFeeRate estimateFee(int confTarget) const EXCLUSIVE_LOCKS_REQUIRED(!m_cs_fee_estimator)
DEPRECATED.
void SyncWithValidationInterfaceQueue()
This is a synonym for the following, which asserts certain locks are not held: std::promise<void> pro...
TestMemPoolEntryHelper & Fee(CAmount _fee)
int64_t GetVirtualTransactionSize(int64_t nWeight, int64_t nSigOpCost, unsigned int bytes_per_sigop)
Compute the virtual transaction size (weight reinterpreted as bytes).
CTxMemPoolEntry FromTx(const CMutableTransaction &tx) const
std::unique_ptr< CTxMemPool > mempool
int64_t CAmount
Amount in satoshis (Can be negative)
std::unique_ptr< CBlockPolicyEstimator > fee_estimator
void push_back(const T &value)
The BlockPolicyEstimator is used for estimating the feerate needed for a transaction to be included i...
void TransactionAddedToMempool(const NewMempoolTransactionInfo &, uint64_t mempool_sequence)
BOOST_AUTO_TEST_SUITE_END()
CMainSignals & GetMainSignals()
Txid GetHash() const
Compute the hash of this CMutableTransaction.
std::vector< CTxOut > vout
TestMemPoolEntryHelper & Height(unsigned int _height)
static CTransactionRef MakeTransactionRef(Tx &&txIn)
void check(const CCoinsViewCache &active_coins_tip, int64_t spendheight) const EXCLUSIVE_LOCKS_REQUIRED(void addUnchecked(const CTxMemPoolEntry &entry) EXCLUSIVE_LOCKS_REQUIRED(cs
If sanity-checking is turned on, check makes sure the pool is consistent (does not contain two transa...
uint64_t GetAndIncrementSequence() const EXCLUSIVE_LOCKS_REQUIRED(cs)
Guards this internal counter for external reporting.
CTxMemPool stores valid-according-to-the-current-best-chain transactions that may be included in the ...
Serialized script, used inside transaction inputs and outputs.
TestMemPoolEntryHelper & Time(NodeSeconds tp)
Fee rate in satoshis per kilovirtualbyte: CAmount / kvB.
void RegisterValidationInterface(CValidationInterface *callbacks)
Register subscriber.
A mutable version of CTransaction.
CTransactionRef get(const uint256 &hash) const
The basic transaction that is broadcasted on the network and contained in blocks. ...
BOOST_AUTO_TEST_CASE(BlockPolicyEstimates)
RecursiveMutex cs_main
Mutex to guard access to validation specific variables, such as reading or changing the chainstate...
void removeForBlock(const std::vector< CTransactionRef > &vtx, unsigned int nBlockHeight) EXCLUSIVE_LOCKS_REQUIRED(cs)
Called when a block is connected.
CAmount GetFeePerK() const
Return the fee in satoshis for a vsize of 1000 vbytes.
RecursiveMutex cs
This mutex needs to be locked when accessing mapTx or other members that are guarded by it...
#define Assert(val)
Identity function.
#define BOOST_CHECK(expr)