Changeset View
Changeset View
Standalone View
Standalone View
src/primitives/block.h
Show All 25 Lines | public: | ||||
BlockHash hashPrevBlock; | BlockHash hashPrevBlock; | ||||
uint256 hashMerkleRoot; | uint256 hashMerkleRoot; | ||||
uint32_t nTime; | uint32_t nTime; | ||||
uint32_t nBits; | uint32_t nBits; | ||||
uint32_t nNonce; | uint32_t nNonce; | ||||
CBlockHeader() { SetNull(); } | CBlockHeader() { SetNull(); } | ||||
ADD_SERIALIZE_METHODS; | SERIALIZE_METHODS(CBlockHeader, obj) { | ||||
READWRITE(obj.nVersion, obj.hashPrevBlock, obj.hashMerkleRoot, | |||||
template <typename Stream, typename Operation> | obj.nTime, obj.nBits, obj.nNonce); | ||||
inline void SerializationOp(Stream &s, Operation ser_action) { | |||||
READWRITE(this->nVersion); | |||||
READWRITE(hashPrevBlock); | |||||
READWRITE(hashMerkleRoot); | |||||
READWRITE(nTime); | |||||
READWRITE(nBits); | |||||
READWRITE(nNonce); | |||||
} | } | ||||
void SetNull() { | void SetNull() { | ||||
nVersion = 0; | nVersion = 0; | ||||
hashPrevBlock = BlockHash(); | hashPrevBlock = BlockHash(); | ||||
hashMerkleRoot.SetNull(); | hashMerkleRoot.SetNull(); | ||||
nTime = 0; | nTime = 0; | ||||
nBits = 0; | nBits = 0; | ||||
Show All 17 Lines | public: | ||||
CBlock() { SetNull(); } | CBlock() { SetNull(); } | ||||
CBlock(const CBlockHeader &header) { | CBlock(const CBlockHeader &header) { | ||||
SetNull(); | SetNull(); | ||||
*(static_cast<CBlockHeader *>(this)) = header; | *(static_cast<CBlockHeader *>(this)) = header; | ||||
} | } | ||||
ADD_SERIALIZE_METHODS; | SERIALIZE_METHODS(CBlock, obj) { | ||||
READWRITEAS(CBlockHeader, obj); | |||||
template <typename Stream, typename Operation> | READWRITE(obj.vtx); | ||||
inline void SerializationOp(Stream &s, Operation ser_action) { | |||||
READWRITEAS(CBlockHeader, *this); | |||||
READWRITE(vtx); | |||||
} | } | ||||
void SetNull() { | void SetNull() { | ||||
CBlockHeader::SetNull(); | CBlockHeader::SetNull(); | ||||
vtx.clear(); | vtx.clear(); | ||||
fChecked = false; | fChecked = false; | ||||
} | } | ||||
Show All 19 Lines | |||||
struct CBlockLocator { | struct CBlockLocator { | ||||
std::vector<BlockHash> vHave; | std::vector<BlockHash> vHave; | ||||
CBlockLocator() {} | CBlockLocator() {} | ||||
explicit CBlockLocator(const std::vector<BlockHash> &vHaveIn) | explicit CBlockLocator(const std::vector<BlockHash> &vHaveIn) | ||||
: vHave(vHaveIn) {} | : vHave(vHaveIn) {} | ||||
ADD_SERIALIZE_METHODS; | SERIALIZE_METHODS(CBlockLocator, obj) { | ||||
template <typename Stream, typename Operation> | |||||
inline void SerializationOp(Stream &s, Operation ser_action) { | |||||
int nVersion = s.GetVersion(); | int nVersion = s.GetVersion(); | ||||
if (!(s.GetType() & SER_GETHASH)) { | if (!(s.GetType() & SER_GETHASH)) { | ||||
READWRITE(nVersion); | READWRITE(nVersion); | ||||
} | } | ||||
READWRITE(vHave); | READWRITE(obj.vHave); | ||||
} | } | ||||
void SetNull() { vHave.clear(); } | void SetNull() { vHave.clear(); } | ||||
bool IsNull() const { return vHave.empty(); } | bool IsNull() const { return vHave.empty(); } | ||||
}; | }; | ||||
#endif // BITCOIN_PRIMITIVES_BLOCK_H | #endif // BITCOIN_PRIMITIVES_BLOCK_H |