6 #ifndef KAGOME_CONSENSUS_AUTHORITIES_MANAGER_IMPL 7 #define KAGOME_CONSENSUS_AUTHORITIES_MANAGER_IMPL 19 class AppStateManager;
26 class BlockHeaderRepository;
30 struct BabeConfiguration;
47 inline static const std::vector<primitives::ConsensusEngineId>
55 bool on_disable_enabled =
false;
60 std::shared_ptr<application::AppStateManager> app_state_manager,
61 std::shared_ptr<blockchain::BlockTree> block_tree,
62 std::shared_ptr<storage::trie::TrieStorage> trie_storage,
63 std::shared_ptr<runtime::GrandpaApi> grandpa_api,
64 std::shared_ptr<crypto::Hasher> hash,
65 std::shared_ptr<storage::BufferStorage> persistent_storage,
66 std::shared_ptr<blockchain::BlockHeaderRepository> header_repo);
70 outcome::result<void> recalculateStoredState(
77 std::optional<std::shared_ptr<const primitives::AuthoritySet>> authorities(
81 outcome::result<void> applyScheduledChange(
86 outcome::result<void> applyForcedChange(
90 size_t delay)
override;
93 uint64_t authority_index)
override;
95 outcome::result<void> applyPause(
99 outcome::result<void> applyResume(
103 outcome::result<void> onConsensus(
119 std::shared_ptr<ScheduleNode> getAppropriateAncestor(
122 outcome::result<std::optional<primitives::AuthoritySetId>>
134 void reorganize(std::shared_ptr<ScheduleNode> node,
135 std::shared_ptr<ScheduleNode> new_node);
145 std::shared_ptr<ScheduleNode>
root_;
150 #endif // KAGOME_CONSENSUS_AUTHORITIES_MANAGER_IMPL std::shared_ptr< storage::trie::TrieStorage > trie_storage_
std::shared_ptr< ScheduleNode > root_
std::shared_ptr< soralog::Logger > Logger
std::shared_ptr< crypto::Hasher > hasher_
std::shared_ptr< runtime::GrandpaApi > grandpa_api_
const auto kGrandpaEngineId
std::shared_ptr< storage::BufferStorage > persistent_storage_
std::shared_ptr< const blockchain::BlockTree > block_tree_
std::shared_ptr< blockchain::BlockHeaderRepository > header_repo_