git / moonbite-core / src/libmw/include/mw/mmr/MMRInfo.h · raw
#pragma once#include <mw/common/Traits.h>#include <mw/models/crypto/Hash.h>#include <boost/optional.hpp>/// <summary>/// Represents the state of the MMR files with the matching index./// </summary>struct MMRInfo : public Traits::ISerializable{ MMRInfo() : version(0), index(0), pruned(mw::Hash()), compact_index(0), compacted(boost::none) { } MMRInfo(uint8_t version, uint32_t index_in, mw::Hash pruned_in, uint32_t compact_index_in, boost::optional<mw::Hash> compacted_in) : version(version), index(index_in), pruned(std::move(pruned_in)), compact_index(compact_index_in), compacted(std::move(compacted_in)) { } // Version byte that allows for future modifications to the MMRInfo schema. uint8_t version; // File number of the PMMR files. uint32_t index; // Hash of latest header this PMMR represents. mw::Hash pruned; // File number of the PruneList bitset. uint32_t compact_index; // Hash of the header this PMMR was compacted for. // You cannot rewind beyond this point. boost::optional<mw::Hash> compacted; IMPL_SERIALIZABLE(MMRInfo, obj) { READWRITE(obj.version, obj.index, obj.pruned, obj.compact_index, obj.compacted); }};