27 create_scr_reward_fund(ctx);
28 create_sp_reward_fund(ctx);
29 create_balancers(ctx);
30 create_fund_budget(ctx);
31 create_witness_reward_in_sp_migration(ctx);
39 FC_ASSERT(!reward_fund_service.
is_exists());
48 void rewards_initializator_impl::create_sp_reward_fund(initializator_context& ctx)
50 content_reward_fund_sp_service_i& reward_fund_service = ctx.services().content_reward_fund_sp_service();
51 dynamic_global_property_service_i& dgp_service = ctx.services().dynamic_global_property_service();
53 FC_ASSERT(!reward_fund_service.is_exists());
56 rfo.last_update = dgp_service.head_block_time();
57 rfo.author_reward_curve = curve_id::linear;
58 rfo.curation_reward_curve = curve_id::square_root;
62 void rewards_initializator_impl::create_balancers(initializator_context& ctx)
64 content_reward_scr_service_i& content_reward_service = ctx.services().content_reward_scr_service();
65 voters_reward_scr_service_i& voters_reward_scr_service = ctx.services().voters_reward_scr_service();
66 voters_reward_sp_service_i& voters_reward_sp_service = ctx.services().voters_reward_sp_service();
68 FC_ASSERT(!content_reward_service.is_exists());
69 FC_ASSERT(!voters_reward_scr_service.is_exists());
70 FC_ASSERT(!voters_reward_sp_service.is_exists());
77 void rewards_initializator_impl::create_fund_budget(initializator_context& ctx)
79 fund_budget_service_i& budget_service = ctx.services().fund_budget_service();
80 dba::db_accessor<chain_property_object>& chain_dba = ctx.dba_factory().get_dba<chain_property_object>();
82 FC_ASSERT(!budget_service.is_exists());
84 auto balance = asset(ctx.genesis_state().rewards_supply.amount,
SP_SYMBOL);
86 time_point_sec start_date = chain_dba.get().genesis_time;
89 budget_service.create_budget(balance, start_date, deadline);
92 void rewards_initializator_impl::create_witness_reward_in_sp_migration(initializator_context& ctx)
94 witness_reward_in_sp_migration_service_i& witness_reward_in_sp_migration_service
95 = ctx.services().witness_reward_in_sp_migration_service();
97 FC_ASSERT(!witness_reward_in_sp_migration_service.is_exists());
99 witness_reward_in_sp_migration_service.create([&](witness_reward_in_sp_migration_object&) {});
const genesis_state_type & genesis_state() const
data_service_factory_i & services() const
time_point_sec last_update
curve_id author_reward_curve
curve_id curation_reward_curve
#define SCORUM_REWARDS_INITIAL_SUPPLY_PERIOD_IN_DAYS
reward_balancer_object< content_reward_balancer_scr_object_type, SCORUM_SYMBOL > content_reward_balancer_scr_object
reward_fund_object< content_reward_fund_sp_object_type, SP_SYMBOL > content_reward_fund_sp_object
reward_balancer_object< voters_reward_balancer_sp_object_type, SP_SYMBOL > voters_reward_balancer_sp_object
reward_balancer_object< voters_reward_balancer_scr_object_type, SCORUM_SYMBOL > voters_reward_balancer_scr_object
virtual bool is_exists() const =0
virtual const object_type & create(const modifier_type &modifier)=0
virtual fc::time_point_sec head_block_time() const =0
virtual void on_apply(initializator_context &)
asset_symbol_type symbol() const