Scorum
process_funds.hpp
Go to the documentation of this file.
1 #pragma once
4 
5 namespace scorum {
6 namespace protocol {
7 struct asset;
8 }
9 namespace chain {
10 
12 
13 class account_object;
14 struct dynamic_global_property_service_i;
15 struct advertising_property_service_i;
16 struct account_service_i;
17 struct content_reward_scr_service_i;
18 struct dev_pool_service_i;
19 struct fund_budget_service_i;
20 struct voters_reward_scr_service_i;
21 struct voters_reward_sp_service_i;
22 struct content_reward_fund_scr_service_i;
23 struct content_reward_fund_sp_service_i;
24 struct hardfork_property_service_i;
25 struct witness_service_i;
26 template <budget_type> struct adv_budget_service_i;
27 
28 namespace database_ns {
29 
31 
32 class process_funds : public block_task
33 {
34 public:
36  virtual void on_apply(block_task_context&);
37 
38 private:
39  void distribute_reward(const asset& reward);
40  void distribute_active_sp_holders_reward(const asset& reward);
41  void distribute_witness_reward(const asset& reward);
42  void pay_account_reward(const account_object&, const asset& reward);
43  void pay_account_pending_reward(const account_object&, const asset& reward);
44  void pay_witness_reward(const account_object&, const asset& reward);
45  void pay_content_reward(const asset& reward);
46  void pay_activity_reward(const asset& reward);
47  const asset get_activity_reward(const asset& reward);
48  bool apply_mainnet_schedule_crutches();
49 
50  asset run_auction_round();
51 
52  template <budget_type budget_type_v>
53  asset process_adv_pending_payouts(adv_budget_service_i<budget_type_v>& budget_svc);
54 
55 private:
56  template <budget_type budget_type_v> void close_empty_budgets(adv_budget_service_i<budget_type_v>& budget_svc);
57 
58 private:
59  content_reward_scr_service_i& _content_reward_service;
60  dev_pool_service_i& _dev_pool_service;
61  dynamic_global_property_service_i& _dprops_service;
62  fund_budget_service_i& _fund_budget_service;
63  adv_budget_service_i<budget_type::post>& _post_budget_service;
64  adv_budget_service_i<budget_type::banner>& _banner_budget_service;
65  account_service_i& _account_service;
66  advertising_property_service_i& _adv_property_svc;
67  database_virtual_operations_emmiter_i& _virt_op_emitter;
68  voters_reward_scr_service_i& _voter_reward_scr_svc;
69  voters_reward_sp_service_i& _voter_reward_sp_svc;
70  content_reward_fund_scr_service_i& _content_reward_fund_scr_svc;
71  content_reward_fund_sp_service_i& _content_reward_fund_sp_svc;
72  hardfork_property_service_i& _hardfork_svc;
73  witness_service_i& _witness_svc;
74 
75  block_task_context& _ctx;
76 
77  uint32_t _block_num;
78 };
79 }
80 }
81 }
virtual void on_apply(block_task_context &)
Definition: asset.cpp:15