12 namespace database_ns {
19 = ctx.
services().account_registration_bonus_service();
23 for (
const account_registration_bonus_object& account : accounts)
25 return_funds(ctx, account);
26 account_registration_bonus_service.
remove(account);
32 void process_account_registration_bonus_expiration::return_funds(
block_task_context& ctx,
33 const account_registration_bonus_object& account)
38 asset bonus = account.bonus;
40 const account_object& account_obj = account_service.
get_account(account.account);
42 asset actual_returned_bonus
43 = std::max(
asset(0,
SP_SYMBOL), std::min(bonus, account_obj.scorumpower - account_obj.delegated_scorumpower));
44 if (actual_returned_bonus < bonus)
46 wlog(
"Account '${a}' has insufficient funds to return scorumpower ${f}. Actually returned is ${r}.",
47 (
"a", account_obj.name)(
"f", bonus)(
"r", actual_returned_bonus));
52 registration_pool_service.
update(
data_service_factory_i & services() const
block_info & get_block_info() const
#define debug_log(CTX, FORMAT,...)
virtual account_registration_bonus_refs_type get_by_expiration_time(const fc::time_point_sec &until) const =0
virtual const account_object & get_account(const account_name_type &) const =0
virtual void decrease_scorumpower(const account_object &account, const asset &amount)=0
virtual void update(const modifier_type &modifier)=0
virtual void on_apply(block_task_context &)
virtual fc::time_point_sec head_block_time() const =0