TARAXA
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>
7 #include <libdevcrypto/Common.h>
8 
9 #include "common/types.hpp"
10 
11 namespace 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:
44  uint16_t major_version_;
45  uint16_t minor_version_;
46  uint16_t patch_version_;
47  uint16_t net_version_;
48  std::string node_implementation_;
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
std::vector<::byte > bytes
Definition: Common.h:46
Definition: config.hpp:8