TARAXA
Loading...
Searching...
No Matches
pbft_block_extra_data.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <json/value.h>
4#include <libdevcore/Common.h>
5#include <libdevcore/RLP.h>
6#include <libdevcore/SHA3.h>
8
9#include "common/types.hpp"
10
11namespace taraxa {
12
18 public:
20 PbftBlockExtraData(const uint16_t major_version, const uint16_t minor_version, const uint16_t patch_version,
21 const uint16_t net_version, const std::string node_implementation,
22 const std::optional<blk_hash_t>& pillar_block_hash);
23
24 static std::optional<PbftBlockExtraData> fromBytes(const bytes& data);
25
30 bytes rlp() const;
31
36 Json::Value getJson() const;
37
41 std::optional<blk_hash_t> getPillarBlockHash() const;
42
43 private:
47 uint16_t net_version_;
49 std::optional<blk_hash_t> pillar_block_hash_;
50 static constexpr uint32_t kExtraDataMaxSize = 1024;
51};
52
55} // namespace taraxa
static constexpr uint32_t kExtraDataMaxSize
Definition pbft_block_extra_data.hpp:50
static std::optional< PbftBlockExtraData > fromBytes(const bytes &data)
Definition pbft_block_extra_data.cpp:18
uint16_t patch_version_
Definition pbft_block_extra_data.hpp:46
std::string node_implementation_
Definition pbft_block_extra_data.hpp:48
std::optional< blk_hash_t > pillar_block_hash_
Definition pbft_block_extra_data.hpp:49
Json::Value getJson() const
Get JSON.
Definition pbft_block_extra_data.cpp:44
bytes rlp() const
Get rlp.
Definition pbft_block_extra_data.cpp:36
uint16_t major_version_
Definition pbft_block_extra_data.hpp:44
uint16_t minor_version_
Definition pbft_block_extra_data.hpp:45
PbftBlockExtraData()
Definition pbft_block_extra_data.hpp:19
std::optional< blk_hash_t > getPillarBlockHash() const
Definition pbft_block_extra_data.cpp:56
uint16_t net_version_
Definition pbft_block_extra_data.hpp:47
Definition pbft_block_extra_data.hpp:17
Definition app.hpp:16
std::vector< byte > bytes
Definition types.hpp:53