Namespaces
Classes
Types
Types Documentation
enum BlockStatus
| Enumerator |
Value |
Description |
| InChain |
|
|
| Unknown |
|
|
Status of a block
Source code
#ifndef SUPERGENIUS_CORE_BLOCKCHAIN_BLOCK_HEADER_REPOSITORY_HPP
#define SUPERGENIUS_CORE_BLOCKCHAIN_BLOCK_HEADER_REPOSITORY_HPP
#include "outcome/outcome.hpp"
#include "base/blob.hpp"
#include "primitives/block_header.hpp"
#include "primitives/block_id.hpp"
#include "singleton/IComponent.hpp"
namespace sgns::blockchain
{
enum class BlockStatus
{
InChain,
Unknown
};
class BlockHeaderRepository : public IComponent
{
public:
[[nodiscard]] virtual outcome::result<primitives::BlockNumber> getNumberByHash(
const base::Hash256 &hash ) const = 0;
[[nodiscard]] virtual outcome::result<base::Hash256> getHashByNumber(
const primitives::BlockNumber &number ) const = 0;
[[nodiscard]] virtual outcome::result<primitives::BlockHeader> getBlockHeader(
const primitives::BlockId &id ) const = 0;
virtual outcome::result<primitives::BlockHash> putBlockHeader( const primitives::BlockHeader &header ) = 0;
virtual outcome::result<void> removeBlockHeader( const primitives::BlockId &id ) = 0;
[[nodiscard]] virtual outcome::result<sgns::blockchain::BlockStatus> getBlockStatus(
const primitives::BlockId &id ) const = 0;
[[nodiscard]] outcome::result<primitives::BlockNumber> getNumberById( const primitives::BlockId &id ) const;
[[nodiscard]] outcome::result<base::Hash256> getHashById( const primitives::BlockId &id ) const;
};
}
#endif
Updated on 2026-03-04 at 13:10:44 -0800