Scorum
libraries
chain
genesis
initializators
registration_bonus_initializator.cpp
Go to the documentation of this file.
1
#include <
scorum/chain/genesis/initializators/registration_bonus_initializator.hpp
>
2
#include <
scorum/chain/data_service_factory.hpp
>
3
4
#include <
scorum/chain/services/account.hpp
>
5
#include <
scorum/chain/services/registration_pool.hpp
>
6
7
#include <
scorum/chain/schema/account_objects.hpp
>
8
9
#include <
scorum/chain/evaluators/registration_pool_evaluator.hpp
>
10
11
#include <
scorum/chain/genesis/genesis_state.hpp
>
12
13
namespace
scorum
{
14
namespace
chain {
15
namespace
genesis {
16
17
void
registration_bonus_initializator_impl::on_apply
(
initializator_context
& ctx)
18
{
19
registration_pool_service_i
& registration_pool_service = ctx.
services
().registration_pool_service();
20
21
if
(registration_pool_service.
is_exists
())
22
{
23
account_service_i
& account_service = ctx.
services
().account_service();
24
25
size_t
total_unvested = ctx.
genesis_state
().
accounts
.size();
26
for
(
auto
& account : ctx.
genesis_state
().
accounts
)
27
{
28
if
(registration_pool_service.
get
().
balance
.
amount
> 0)
29
{
30
const
auto
& account_obj = account_service.
get_account
(account.name);
31
give_bonus_from_registration_pool_task_context
bonus_ctx(ctx.
services
(), account_obj);
32
give_bonus_from_registration_pool_task
give_bonus;
33
give_bonus.
apply
(bonus_ctx);
34
--total_unvested;
35
}
36
else
37
{
38
wlog(
"No more bonus from registration pool. ${1} accounts have no SP."
, (
"1"
, total_unvested));
39
break
;
40
}
41
}
42
}
43
}
44
}
45
}
46
}
account.hpp
account_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::give_bonus_from_registration_pool_task_context
Definition:
registration_pool_evaluator.hpp:37
scorum::chain::give_bonus_from_registration_pool_task
Definition:
registration_pool_evaluator.hpp:52
scorum::chain::registration_pool_object::balance
asset balance
Definition:
registration_objects.hpp:27
scorum::chain::task::apply
void apply(ContextType &ctx)
Definition:
tasks_base.hpp:55
data_service_factory.hpp
genesis_state.hpp
scorum
Definition:
asset.cpp:15
registration_bonus_initializator.hpp
registration_pool.hpp
registration_pool_evaluator.hpp
scorum::chain::account_service_i
Definition:
account.hpp:28
scorum::chain::account_service_i::get_account
virtual const account_object & get_account(const account_name_type &) const =0
scorum::chain::base_service_i::is_exists
virtual bool is_exists() const =0
scorum::chain::base_service_i::get
virtual const object_type & get() const =0
scorum::chain::genesis::registration_bonus_initializator_impl::on_apply
virtual void on_apply(initializator_context &)
Definition:
registration_bonus_initializator.cpp:17
scorum::chain::genesis_state_type::accounts
std::vector< account_type > accounts
Definition:
genesis_state.hpp:72
scorum::chain::registration_pool_service_i
Definition:
registration_pool.hpp:10
scorum::protocol::asset::amount
share_type amount
Definition:
asset.hpp:31
Generated on Thu Jun 9 2022 13:04:24 for Scorum by
1.9.1