Scorum
libraries
chain
genesis
initializators
witness_schedule_initializator.cpp
Go to the documentation of this file.
1
#include <
scorum/chain/genesis/initializators/witness_schedule_initializator.hpp
>
2
#include <
scorum/chain/data_service_factory.hpp
>
3
4
#include <
scorum/chain/services/witness.hpp
>
5
#include <
scorum/chain/services/witness_schedule.hpp
>
6
7
#include <
scorum/chain/schema/witness_objects.hpp
>
8
9
#include <
scorum/chain/genesis/genesis_state.hpp
>
10
11
namespace
scorum
{
12
namespace
chain {
13
namespace
genesis {
14
15
void
witness_schedule_initializator_impl::on_apply
(
initializator_context
& ctx)
16
{
17
witness_service_i
& witness_service = ctx.
services
().witness_service();
18
witness_schedule_service_i
& schedule_service = ctx.
services
().witness_schedule_service();
19
20
FC_ASSERT(!schedule_service.
is_exists
());
21
22
const
std::vector<genesis_state_type::witness_type>& witness_candidates = ctx.
genesis_state
().
witness_candidates
;
23
24
schedule_service.
create
([&](
witness_schedule_object
& wso) {
25
for
(
size_t
i = 0; i < wso.
current_shuffled_witnesses
.size() && i < witness_candidates.size(); ++i)
26
{
27
FC_ASSERT(witness_service.is_exists(witness_candidates[i].name));
28
29
wso.current_shuffled_witnesses[i] = witness_candidates[i].name;
30
}
31
});
32
}
33
}
34
}
35
}
witness_objects.hpp
scorum::chain::genesis::initializator_context
Definition:
initializators.hpp:16
scorum::chain::genesis::initializator_context::genesis_state
const genesis_state_type & genesis_state() const
Definition:
initializators.hpp:32
scorum::chain::genesis::initializator_context::services
data_service_factory_i & services() const
Definition:
initializators.hpp:22
scorum::chain::witness_schedule_object
Definition:
witness_objects.hpp:111
scorum::chain::witness_schedule_object::current_shuffled_witnesses
fc::array< account_name_type, SCORUM_MAX_WITNESSES_LIMIT > current_shuffled_witnesses
Definition:
witness_objects.hpp:118
data_service_factory.hpp
genesis_state.hpp
scorum
Definition:
asset.cpp:15
scorum::chain::base_service_i::is_exists
virtual bool is_exists() const =0
scorum::chain::base_service_i::create
virtual const object_type & create(const modifier_type &modifier)=0
scorum::chain::genesis::witness_schedule_initializator_impl::on_apply
virtual void on_apply(initializator_context &)
Definition:
witness_schedule_initializator.cpp:15
scorum::chain::genesis_state_type::witness_candidates
std::vector< witness_type > witness_candidates
Definition:
genesis_state.hpp:75
scorum::chain::witness_schedule_service_i
Definition:
witness_schedule.hpp:10
scorum::chain::witness_service_i
Definition:
witness.hpp:21
witness.hpp
witness_schedule.hpp
witness_schedule_initializator.hpp
Generated on Thu Jun 9 2022 13:04:24 for Scorum by
1.9.1