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++) {
int64_t CAmount
Amount in satoshis (Can be negative)
#define Assert(val)
Identity function.
The BlockPolicyEstimator is used for estimating the feerate needed for a transaction to be included i...
CFeeRate estimateFee(int confTarget) const EXCLUSIVE_LOCKS_REQUIRED(!m_cs_fee_estimator)
DEPRECATED.
Fee rate in satoshis per kilovirtualbyte: CAmount / kvB.
CAmount GetFeePerK() const
Return the fee in satoshis for a vsize of 1000 vbytes.
Serialized script, used inside transaction inputs and outputs.
The basic transaction that is broadcasted on the network and contained in blocks.
CTxMemPool stores valid-according-to-the-current-best-chain transactions that may be included in the ...
RecursiveMutex cs
This mutex needs to be locked when accessing mapTx or other members that are guarded by it.
CTransactionRef get(const uint256 &hash) const
void removeForBlock(const std::vector< CTransactionRef > &vtx, unsigned int nBlockHeight) EXCLUSIVE_LOCKS_REQUIRED(cs)
Called when a block is connected.
uint64_t GetAndIncrementSequence() const EXCLUSIVE_LOCKS_REQUIRED(cs)
Guards this internal counter for external reporting.
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...
void push_back(const T &value)
RecursiveMutex cs_main
Mutex to guard access to validation specific variables, such as reading or changing the chainstate.
BOOST_AUTO_TEST_SUITE_END()
#define BOOST_CHECK(expr)
int64_t GetVirtualTransactionSize(int64_t nWeight, int64_t nSigOpCost, unsigned int bytes_per_sigop)
Compute the virtual transaction size (weight reinterpreted as bytes).
BOOST_AUTO_TEST_CASE(BlockPolicyEstimates)
static CTransactionRef MakeTransactionRef(Tx &&txIn)
std::shared_ptr< const CTransaction > CTransactionRef
A mutable version of CTransaction.
std::vector< CTxOut > vout
Txid GetHash() const
Compute the hash of this CMutableTransaction.
Testing setup that performs all steps up until right before ChainstateManager gets initialized.
CTxMemPoolEntry FromTx(const CMutableTransaction &tx) const
TestMemPoolEntryHelper & Height(unsigned int _height)
TestMemPoolEntryHelper & Time(NodeSeconds tp)
TestMemPoolEntryHelper & Fee(CAmount _fee)
std::unique_ptr< ValidationSignals > validation_signals
Issues calls about blocks and transactions.
std::unique_ptr< CTxMemPool > mempool
std::unique_ptr< CBlockPolicyEstimator > fee_estimator