27 template<
typename Stream>
45 template<
typename Stream>
47 unsigned int nCode = 0;
55 unsigned int nVersionDummy;
64 static const size_t MIN_TRANSACTION_INPUT_WEIGHT = WITNESS_SCALE_FACTOR *
::GetSerializeSize(
CTxIn(), PROTOCOL_VERSION);
65 static const size_t MAX_INPUTS_PER_BLOCK = MAX_BLOCK_WEIGHT / MIN_TRANSACTION_INPUT_WEIGHT;
74 template <
typename Stream>
79 for (
const auto& prevout :
vprevout) {
84 template <
typename Stream>
89 if (count > MAX_INPUTS_PER_BLOCK) {
90 throw std::ios_base::failure(
"Too many input undo records");
107 template <
typename Stream,
typename Operation>
113 #endif // BITCOIN_UNDO_H std::vector< Coin > vprevout
wrapper for CTxOut that provides a more compact serialization
CTxOut out
unspent transaction output
unsigned int fCoinBase
whether containing transaction was a coinbase
void Unserialize(Stream &s)
void Unserialize(Stream &s)
size_t GetSerializeSize(const T &t, int nVersion=0)
uint32_t nHeight
at which height this containing transaction was included in the active block chain ...
Undo information for a CTxIn.
An input of a transaction.
void SerializationOp(Stream &s, Operation ser_action)
TxInUndoSerializer(const Coin *coin)
void Serialize(Stream &s) const
Undo information for a CBlock.
TxInUndoDeserializer(Coin *coin)
Undo information for a CTransaction.
void Serialize(Stream &s) const
std::vector< CTxUndo > vtxundo
T & REF(const T &val)
Used to bypass the rule against non-const reference to temporary where it makes sense with wrappers...