26 template<
typename Stream>
44 template<
typename Stream>
46 unsigned int nCode = 0;
64 static const size_t MAX_INPUTS_PER_BLOCK = MAX_BLOCK_WEIGHT / MIN_TRANSACTION_INPUT_WEIGHT;
73 template <
typename Stream>
76 uint64_t
count = vprevout.size();
78 for (
const auto& prevout : vprevout) {
83 template <
typename Stream>
88 if (count > MAX_INPUTS_PER_BLOCK) {
89 throw std::ios_base::failure(
"Too many input undo records");
91 vprevout.resize(count);
92 for (
auto& prevout : vprevout) {
106 template <
typename Stream,
typename Operation>
112 #endif // FABCOIN_UNDO_H
std::vector< Coin > vprevout
wrapper for CTxOut that provides a more compact serialization
size_t GetSerializeSize(const T &t, int nType, int nVersion=0)
CTxOut out
unspent transaction output
unsigned int fCoinBase
whether containing transaction was a coinbase
void Unserialize(Stream &s)
void Unserialize(Stream &s)
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
void Unserialize(Stream &s, char &a)
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 s...