6namespace sysio {
namespace chain {
8class deep_mind_handler;
33 blockchain_parameters = 16,
152 const std::function<
bool(
const digest_type&)>& validator )
const;
171 protocol_feature_set_type::const_iterator
_itr;
283 static constexpr std::size_t
end_index = std::numeric_limits<std::size_t>::max();
302 return !(lhs == rhs);
382 static constexpr size_t no_previous = std::numeric_limits<size_t>::max();
403 (earliest_allowed_activation_time)(preactivation_required)(enabled))
406 (protocol_feature_type)(dependencies)(description_digest)(subjective_restrictions))
409 (builtin_feature_codename))
An order-preserving dictionary of variants.
stores null, int64, uint64, double, bool, string, std::vector<variant>, and variant_object's.
builtin_protocol_feature_t get_codename() const
digest_type digest() const
builtin_protocol_feature_t _codename
static const char * feature_type_string
std::string builtin_feature_codename
builtin_protocol_feature()=default
std::string protocol_feature_type
protocol_feature_subjective_restrictions subjective_restrictions
flat_set< digest_type > dependencies
digest_type description_digest
protocol_feature_base()=default
protocol_feature_t get_type() const
uint32_t activation_block_num() const
friend bool operator!=(const const_iterator &lhs, const const_iterator &rhs)
uint32_t activation_ordinal() const
std::ptrdiff_t difference_type
const_iterator operator++(int)
std::bidirectional_iterator_tag iterator_category
const protocol_feature & operator*() const
friend bool operator==(const const_iterator &lhs, const const_iterator &rhs)
const_iterator & operator++()
const protocol_feature_manager * _pfm
static constexpr std::size_t end_index
const protocol_feature * get_pointer() const
const_iterator & operator--()
const_iterator(const protocol_feature_manager *pfm, std::size_t i=end_index)
const_iterator operator--(int)
const protocol_feature * operator->() const
const_iterator cend() const
const_iterator cbegin() const
const_iterator at_activation_ordinal(uint32_t activation_ordinal) const
vector< builtin_protocol_feature_entry > _builtin_protocol_features
std::optional< digest_type > get_builtin_digest(builtin_protocol_feature_t feature_codename) const
vector< protocol_feature_entry > _activated_protocol_features
bool is_initialized() const
void popped_blocks_to(uint32_t block_num)
const_reverse_iterator rbegin() const
std::reverse_iterator< const_iterator > const_reverse_iterator
const_iterator begin() const
protocol_feature_set _protocol_feature_set
const protocol_feature_set & get_protocol_feature_set() const
void activate_feature(const digest_type &feature_digest, uint32_t current_block_num)
const_reverse_iterator crbegin() const
const_reverse_iterator crend() const
const_reverse_iterator rend() const
bool is_builtin_activated(builtin_protocol_feature_t feature_codename, uint32_t current_block_num) const
protocol_feature_manager(protocol_feature_set &&pfs, std::function< deep_mind_handler *()> get_deep_mind_logger)
const_iterator upper_bound(uint32_t block_num) const
friend class const_iterator
const_iterator end() const
const_iterator lower_bound(uint32_t block_num) const
size_t _head_of_builtin_activation_list
friend bool operator!=(const const_iterator &lhs, const const_iterator &rhs)
const_iterator & operator++()
const protocol_feature * operator->() const
std::ptrdiff_t difference_type
const protocol_feature * get_pointer() const
const_iterator operator--(int)
protocol_feature_set_type::const_iterator _itr
friend bool operator==(const const_iterator &lhs, const const_iterator &rhs)
const_iterator(protocol_feature_set_type::const_iterator itr)
const_iterator operator++(int)
std::bidirectional_iterator_tag iterator_category
const protocol_feature & operator*() const
const_iterator & operator--()
std::reverse_iterator< const_iterator > const_reverse_iterator
vector< protocol_feature_set_type::const_iterator > _recognized_builtin_protocol_features
static builtin_protocol_feature make_default_builtin_protocol_feature(builtin_protocol_feature_t codename, const std::function< digest_type(builtin_protocol_feature_t dependency)> &handle_dependency)
const_reverse_iterator rend() const
const_reverse_iterator crend() const
const_reverse_iterator rbegin() const
std::optional< digest_type > get_builtin_digest(builtin_protocol_feature_t feature_codename) const
std::set< protocol_feature, std::less<> > protocol_feature_set_type
const_reverse_iterator crbegin() const
recognized_t is_recognized(const digest_type &feature_digest, time_point now) const
const_iterator begin() const
const_iterator lower_bound(const K &x) const
const_iterator find(const K &x) const
std::size_t max_size() const
bool validate_dependencies(const digest_type &feature_digest, const std::function< bool(const digest_type &)> &validator) const
const_iterator cbegin() const
const protocol_feature & add_feature(const builtin_protocol_feature &f)
const protocol_feature & get_protocol_feature(const digest_type &feature_digest) const
const_iterator cend() const
const_iterator end() const
const_iterator upper_bound(const K &x) const
protocol_feature_set_type _recognized_protocol_features
const std::unordered_map< builtin_protocol_feature_t, builtin_protocol_feature_spec, enum_hash< builtin_protocol_feature_t > > builtin_protocol_feature_codenames
checksum_type digest_type
builtin_protocol_feature_t
@ no_duplicate_deferred_id
@ configurable_wasm_limits
@ disallow_empty_producer_schedule
@ only_bill_first_authorizer
@ wtmsig_block_signatures
@ reserved_private_fork_protocol_features
@ fix_linkauth_restriction
@ restrict_action_to_self
@ only_link_to_existing_permission
const char * builtin_protocol_feature_codename(builtin_protocol_feature_t)
#define FC_REFLECT(TYPE, MEMBERS)
Specializes fc::reflector for TYPE.
#define FC_REFLECT_DERIVED(TYPE, INHERITS, MEMBERS)
Specializes fc::reflector for TYPE where type inherits other reflected classes.
flat_set< builtin_protocol_feature_t > builtin_dependencies
protocol_feature_subjective_restrictions subjective_restrictions
digest_type description_digest
uint32_t activation_block_num
static constexpr size_t no_previous
static constexpr uint32_t not_active
uint32_t activation_block_num
protocol_feature_set::const_iterator iterator_to_protocol_feature
bool preactivation_required
time_point earliest_allowed_activation_time
bool preactivation_required
digest_type feature_digest
friend bool operator<(const protocol_feature &lhs, const protocol_feature &rhs)
flat_set< digest_type > dependencies
std::optional< builtin_protocol_feature_t > builtin_feature
fc::variant to_variant(bool include_subjective_restrictions=true, fc::mutable_variant_object *additional_fields=nullptr) const
time_point earliest_allowed_activation_time
digest_type description_digest