3 #include <json/value.h>
6 #include <shared_mutex>
50 std::vector<ValidatorVoteCountChange>&& validator_votes_count_changes);
139 mutable std::optional<blk_hash_t>
hash_;
147 PillarBlockData(std::shared_ptr<PillarBlock> block,
const std::vector<std::shared_ptr<PillarVote>>& pillar_votes);
150 Json::Value
getJson(
bool include_signatures)
const;
Definition: FixedHash.h:35
#define HAS_RLP_FIELDS
Definition: encoding_rlp.hpp:208
std::vector< state_api::ValidatorVoteCount > vote_counts
Definition: pillar_block.hpp:157
h256 bridge_root_
Definition: pillar_block.hpp:131
const uint64_t & getEpoch() const
Definition: pillar_block.cpp:55
static constexpr uint8_t kFieldsInVoteCount
Definition: pillar_block.hpp:102
static PillarBlock decodeSolidity(const bytes &enc)
Decodes solidity encoded representation of pillar block.
Definition: pillar_block.cpp:116
const h256 & getBridgeRoot() const
Definition: pillar_block.cpp:53
std::shared_ptr< pillar_chain::PillarBlock > pillar_block
Definition: pillar_block.hpp:156
blk_hash_t getPreviousBlockHash() const
Definition: pillar_block.cpp:45
dev::bytes encodeSolidity() const
Definition: pillar_block.cpp:90
Json::Value getJson(bool include_signatures) const
Definition: pillar_block.cpp:164
std::optional< blk_hash_t > hash_
Definition: pillar_block.hpp:139
static constexpr uint8_t kFieldsSize
Definition: pillar_block.hpp:100
static const size_t kRlpItemCount
Definition: pillar_block.hpp:152
uint64_t epoch_
Definition: pillar_block.hpp:134
blk_hash_t previous_pillar_block_hash_
Definition: pillar_block.hpp:128
std::shared_ptr< PillarBlock > block_
Definition: pillar_block.hpp:144
PbftPeriod pbft_period_
Definition: pillar_block.hpp:122
std::vector< ValidatorVoteCountChange > validators_votes_count_changes_
Definition: pillar_block.hpp:137
dev::bytes getRlp() const
Definition: pillar_block.cpp:41
dev::bytes getRlp() const
Definition: pillar_block.cpp:156
PbftPeriod getPeriod() const
Definition: pillar_block.cpp:43
h256 state_root_
Definition: pillar_block.hpp:125
Json::Value getJson() const
Definition: pillar_block.cpp:70
std::shared_mutex hash_mutex_
Definition: pillar_block.hpp:140
PillarBlockData(std::shared_ptr< PillarBlock > block, const std::vector< std::shared_ptr< PillarVote >> &pillar_votes)
blk_hash_t getHash() const
Definition: pillar_block.cpp:57
const std::vector< ValidatorVoteCountChange > & getValidatorsVoteCountsChanges() const
Definition: pillar_block.cpp:47
const h256 & getStateRoot() const
Definition: pillar_block.cpp:51
std::vector< std::shared_ptr< PillarVote > > pillar_votes_
Definition: pillar_block.hpp:145
static constexpr uint8_t kArrayPosAndSize
Definition: pillar_block.hpp:101
PillarBlock contains merkle root of all finalized blocks created in the last epoch.
Definition: pillar_block.hpp:25
Definition: pillar_block.hpp:155
Definition: pillar_block.hpp:143
std::vector<::byte > bytes
Definition: Common.h:46
bytes rlp(_T _t)
Export a single item in RLP format, returning a byte array.
Definition: RLP.h:665
boost::multiprecision::number< boost::multiprecision::cpp_int_backend< 256, 256, boost::multiprecision::unsigned_magnitude, boost::multiprecision::unchecked, void > > u256
Definition: Common.h:98
Definition: pillar_block.hpp:16
EthBlockNumber PbftPeriod
Definition: types.hpp:24
Definition: pillar_block.hpp:28
ValidatorVoteCountChange(ValidatorVoteCountChange &&)=default
~ValidatorVoteCountChange()=default
addr_t addr_
Definition: pillar_block.hpp:29
ValidatorVoteCountChange(const ValidatorVoteCountChange &)=default
ValidatorVoteCountChange & operator=(ValidatorVoteCountChange &&)=default
int32_t vote_count_change_
Definition: pillar_block.hpp:30
ValidatorVoteCountChange & operator=(const ValidatorVoteCountChange &)=default
ValidatorVoteCountChange()=default