TARAXA
state_config.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include <string>
4 
6 #include "common/types.hpp"
7 #include "common/vrf_wrapper.hpp"
8 #include "config/hardfork.hpp"
9 
10 namespace taraxa::state_api {
11 
12 static constexpr auto BlockNumberNIL = std::numeric_limits<EthBlockNumber>::max();
13 
15  uint64_t chain_id = 0;
17 };
18 Json::Value enc_json(const EVMChainConfig& obj);
19 void dec_json(const Json::Value& json, uint64_t chain_id, EVMChainConfig& obj);
20 
21 using BalanceMap = std::map<addr_t, u256>;
22 Json::Value enc_json(const BalanceMap& obj);
23 void dec_json(const Json::Value& json, BalanceMap& obj);
24 
25 struct ValidatorInfo {
29  uint16_t commission = 0;
30  std::string endpoint;
31  std::string description;
33 
35 };
36 Json::Value enc_json(const ValidatorInfo& obj);
37 void dec_json(const Json::Value& json, ValidatorInfo& obj);
38 
39 struct DPOSConfig {
45  uint16_t dag_proposers_reward = 0;
47  uint32_t commission_change_frequency = 0; // number of blocks
48  uint32_t delegation_delay = 5; // number of blocks
49  uint32_t delegation_locking_period = 5; // number of blocks
50  uint32_t blocks_per_year = 0; // number of blocks - it is calculated from lambda_ms
51  uint16_t yield_percentage = 0; // [%]
52  std::vector<ValidatorInfo> initial_validators;
53 
55 };
56 Json::Value enc_json(const DPOSConfig& obj);
57 void dec_json(const Json::Value& json, DPOSConfig& obj);
58 
59 struct Config {
64 
65  void rlp_without_hardforks(util::RLPEncoderRef encoding) const;
67 };
68 void append_json(Json::Value& json, const Config& obj);
69 void dec_json(const Json::Value& json, Config& obj);
70 
71 struct Opts {
74 
76 };
77 
78 struct OptsDB {
79  std::string db_path;
81 
83 };
84 
85 } // namespace taraxa::state_api
Definition: FixedHash.h:35
Class for writing to an RLP bytestream.
Definition: RLP.h:484
#define HAS_RLP_FIELDS
Definition: encoding_rlp.hpp:208
boost::multiprecision::number< boost::multiprecision::cpp_int_backend< 256, 256, boost::multiprecision::unsigned_magnitude, boost::multiprecision::unchecked, void > > u256
Definition: Common.h:98
Definition: state_config.hpp:10
u256 validator_maximum_stake
Definition: state_config.hpp:42
std::string db_path
Definition: state_config.hpp:79
void dec_json(const Json::Value &json, uint64_t chain_id, EVMChainConfig &obj)
Definition: state_config.cpp:15
bool disable_most_recent_trie_value_views
Definition: state_config.hpp:80
uint64_t chain_id
Definition: state_config.hpp:15
Json::Value enc_json(const EVMChainConfig &obj)
Definition: state_config.cpp:9
std::map< addr_t, u256 > BalanceMap
Definition: state_config.hpp:21
std::string description
Definition: state_config.hpp:31
uint16_t commission
Definition: state_config.hpp:29
uint16_t dag_proposers_reward
Definition: state_config.hpp:45
vrf_wrapper::vrf_pk_t vrf_key
Definition: state_config.hpp:28
uint32_t delegation_delay
Definition: state_config.hpp:48
uint32_t expected_max_trx_per_block
Definition: state_config.hpp:72
BalanceMap delegations
Definition: state_config.hpp:32
uint16_t commission_change_delta
Definition: state_config.hpp:46
void append_json(Json::Value &json, const Config &obj)
Definition: state_config.cpp:23
std::vector< ValidatorInfo > initial_validators
Definition: state_config.hpp:52
uint32_t delegation_locking_period
Definition: state_config.hpp:49
static constexpr auto BlockNumberNIL
Definition: state_config.hpp:12
u256 vote_eligibility_balance_step
Definition: state_config.hpp:41
std::string endpoint
Definition: state_config.hpp:30
uint32_t commission_change_frequency
Definition: state_config.hpp:47
uint32_t blocks_per_year
Definition: state_config.hpp:50
uint8_t max_trie_full_node_levels_to_cache
Definition: state_config.hpp:73
addr_t owner
Definition: state_config.hpp:27
addr_t address
Definition: state_config.hpp:26
u256 minimum_deposit
Definition: state_config.hpp:43
uint16_t max_block_author_reward
Definition: state_config.hpp:44
u256 eligibility_balance_threshold
Definition: state_config.hpp:40
uint16_t yield_percentage
Definition: state_config.hpp:51
Definition: state_config.hpp:39
Definition: state_config.hpp:14
Definition: state_config.hpp:71
Definition: state_config.hpp:78
Definition: state_config.hpp:25
Definition: hardfork.hpp:93
Definition: state_config.hpp:59
BalanceMap initial_balances
Definition: state_config.hpp:61
void rlp_without_hardforks(util::RLPEncoderRef encoding) const
Definition: state_config.cpp:19
EVMChainConfig evm_chain_config
Definition: state_config.hpp:60
HardforksConfig hardforks
Definition: state_config.hpp:63
DPOSConfig dpos
Definition: state_config.hpp:62