14 #include <boost/test/unit_test.hpp>
16 std::vector<std::pair<uint256, CTransactionRef>>
extra_txn;
24 tx.
vin[0].scriptSig.resize(10);
26 tx.
vout[0].nValue = 42;
32 block.
nBits = 0x207fffff;
35 tx.
vin[0].prevout.n = 0;
39 for (
size_t i = 0; i < tx.
vin.size(); i++) {
41 tx.
vin[i].prevout.n = 0;
84 size_t poolSize = pool.
size();
200 txhash = block.
vtx[2]->GetHash();
252 txhash = block.
vtx[1]->GetHash();
264 coinbase.
vin.resize(1);
265 coinbase.
vin[0].scriptSig.resize(10);
266 coinbase.
vout.resize(1);
267 coinbase.
vout[0].nValue = 42;
274 block.
nBits = 0x207fffff;
296 std::vector<CTransactionRef> vtx_missing;
351 req0.
indexes[1] = 0x10000 - 0x7000 - 2;
367 }
catch(std::ios_base::failure &) {
static CBlock BuildBlockTestCase()
BOOST_AUTO_TEST_CASE(SimpleRoundTripTest)
std::vector< std::pair< uint256, CTransactionRef > > extra_txn
constexpr long SHARED_TX_OFFSET
const CChainParams & Params()
Return the currently selected parameters.
#define Assert(val)
Identity function.
std::vector< uint16_t > indexes
uint64_t GetShortID(const uint256 &txhash) const
std::vector< CTransactionRef > vtx
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.
void removeRecursive(const CTransaction &tx, MemPoolRemovalReason reason) EXCLUSIVE_LOCKS_REQUIRED(cs)
void check(const CCoinsViewCache &active_coins_tip, int64_t spendheight) const EXCLUSIVE_LOCKS_REQUIRED(void addUnchecked(const CTxMemPoolEntry &entry, bool validFeeEstimate=true) EXCLUSIVE_LOCKS_REQUIRED(cs
If sanity-checking is turned on, check makes sure the pool is consistent (does not contain two transa...
unsigned long size() const
Double ended buffer combining vector and stream-like interfaces.
ReadStatus InitData(const CBlockHeaderAndShortTxIDs &cmpctblock, const std::vector< std::pair< uint256, CTransactionRef >> &extra_txn)
bool IsTxAvailable(size_t index) const
ReadStatus FillBlock(CBlock &block, const std::vector< CTransactionRef > &vtx_missing)
TestHeaderAndShortIDs(const CBlock &block)
TestHeaderAndShortIDs(const CBlockHeaderAndShortTxIDs &orig)
std::vector< uint64_t > shorttxids
std::vector< PrefilledTransaction > prefilledtxn
uint64_t GetShortID(const uint256 &txhash) const
SERIALIZE_METHODS(TestHeaderAndShortIDs, obj)
std::string ToString() const
RecursiveMutex cs_main
Mutex to guard access to validation specific variables, such as reading or changing the chainstate.
BOOST_AUTO_TEST_SUITE_END()
uint256 BlockMerkleRoot(const CBlock &block, bool *mutated)
#define BOOST_CHECK_EQUAL(v1, v2)
#define BOOST_CHECK(expr)
bool CheckProofOfWork(uint256 hash, unsigned int nBits, const Consensus::Params ¶ms)
Check whether a block hash satisfies the proof-of-work requirement specified by nBits.
static CTransactionRef MakeTransactionRef(Tx &&txIn)
static Wrapper< Formatter, T & > Using(T &&t)
Cause serialization/deserialization of an object to be done using a specified formatter class.
void WriteCompactSize(CSizeComputer &os, uint64_t nSize)
static uint256 InsecureRand256()
std::string ToString(const T &t)
Locale-independent version of std::to_string.
A mutable version of CTransaction.
std::vector< CTxOut > vout
Identical to TestingSetup, but chain set to regtest.
CTxMemPoolEntry FromTx(const CMutableTransaction &tx) const
std::unique_ptr< CTxMemPool > mempool
@ REPLACED
Removed for replacement.
static const int PROTOCOL_VERSION
network protocol versioning