|
|
|
@ -127,6 +127,8 @@ enum BlockStatus: uint32_t {
|
|
|
|
|
BLOCK_FAILED_MASK = BLOCK_FAILED_VALID | BLOCK_FAILED_CHILD,
|
|
|
|
|
|
|
|
|
|
BLOCK_OPT_WITNESS = 128, //!< block data in blk*.data was received with a witness-enforcing client
|
|
|
|
|
|
|
|
|
|
BLOCK_HAVE_MWEB = (1 << 28)
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/** The block chain is a tree shaped structure starting with the
|
|
|
|
@ -180,6 +182,11 @@ public:
|
|
|
|
|
uint32_t nBits{0};
|
|
|
|
|
uint32_t nNonce{0};
|
|
|
|
|
|
|
|
|
|
//! MWEB data (only populated when BLOCK_HAVE_MWEB is set)
|
|
|
|
|
mw::Header::CPtr mweb_header{nullptr};
|
|
|
|
|
uint256 hogex_hash{};
|
|
|
|
|
CAmount mweb_amount{0};
|
|
|
|
|
|
|
|
|
|
//! (memory only) Sequential id assigned to distinguish order in which blocks are received.
|
|
|
|
|
int32_t nSequenceId{0};
|
|
|
|
|
|
|
|
|
@ -346,6 +353,12 @@ public:
|
|
|
|
|
if (obj.nStatus & (BLOCK_HAVE_DATA | BLOCK_HAVE_UNDO)) READWRITE(VARINT_MODE(obj.nFile, VarIntMode::NONNEGATIVE_SIGNED));
|
|
|
|
|
if (obj.nStatus & BLOCK_HAVE_DATA) READWRITE(VARINT(obj.nDataPos));
|
|
|
|
|
if (obj.nStatus & BLOCK_HAVE_UNDO) READWRITE(VARINT(obj.nUndoPos));
|
|
|
|
|
|
|
|
|
|
if (obj.nStatus & BLOCK_HAVE_MWEB) {
|
|
|
|
|
READWRITE(obj.mweb_header);
|
|
|
|
|
READWRITE(obj.hogex_hash);
|
|
|
|
|
READWRITE(VARINT_MODE(obj.mweb_amount, VarIntMode::NONNEGATIVE_SIGNED));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// block header
|
|
|
|
|
READWRITE(obj.nVersion);
|
|
|
|
|