Scorum
development_committee.cpp
Go to the documentation of this file.
2 
4 
5 namespace scorum {
6 namespace chain {
7 
9  : _base_type(db)
10 {
11 }
12 
14 {
15  FC_ASSERT(!is_exists(account_name), "Member already exists.");
17  "Can't add member. Limit ${1} is reached.", ("1", SCORUM_DEVELOPMENT_COMMITTEE_MAX_MEMBERS_LIMIT));
18 
19  db_impl().create<dev_committee_member_object>(
20  [&](dev_committee_member_object& member) { member.account = account_name; });
21 }
22 
24 {
25  FC_ASSERT(get_members_count() > 1, "No committee to exclude member.");
26 
27  db_impl().remove(get_member(account_name));
28 }
29 
31 {
32  db_impl().modify(get(), [&](dev_committee_object& m) { m.invite_quorum = quorum; });
33 }
34 
36 {
37  db_impl().modify(get(), [&](dev_committee_object& m) { m.dropout_quorum = quorum; });
38 }
39 
41 {
42  db_impl().modify(get(), [&](dev_committee_object& m) { m.change_quorum = quorum; });
43 }
44 
46 {
47  db_impl().modify(get(), [&](dev_committee_object& m) { m.transfer_quorum = quorum; });
48 }
49 
51 {
52  db_impl().modify(get(), [&](dev_committee_object& m) { m.advertising_moderator_quorum = quorum; });
53 }
54 
56 {
57  db_impl().modify(get(), [&](dev_committee_object& m) { m.betting_moderator_quorum = quorum; });
58 }
59 
61 {
62  db_impl().modify(get(), [&](dev_committee_object& m) { m.betting_resolve_delay_quorum = quorum; });
63 }
64 
66 {
67  db_impl().modify(get(), [&](dev_committee_object& m) { m.budgets_auction_properties_quorum = quorum; });
68 }
69 
71 {
72  return get().invite_quorum;
73 }
74 
76 {
77  return get().dropout_quorum;
78 }
79 
81 {
82  return get().change_quorum;
83 }
84 
86 {
87  return get().transfer_quorum;
88 }
89 
91 {
92  return get().advertising_moderator_quorum;
93 }
94 
96 {
97  return get().betting_moderator_quorum;
98 }
99 
101 {
102  return get().betting_resolve_delay_quorum;
103 }
104 
106 {
107  return get().budgets_auction_properties_quorum;
108 }
109 
111 {
112  const auto& idx = db_impl().get_index<dev_committee_member_index>().indices().get<by_account_name>();
113  return idx.find(account_name) != idx.cend();
114 }
115 
117 {
118  return db_impl().get_index<dev_committee_member_index>().indices().size();
119 }
120 
122 {
124 
125  const auto& idx = db_impl().get_index<dev_committee_member_index>().indices().get<by_id>();
126  for (auto it = idx.cbegin(); it != idx.cend(); ++it)
127  {
128  ret.push_back(std::cref(*it));
129  }
130 
131  return ret;
132 }
133 
134 const dev_committee_object& dbs_development_committee::get() const
135 {
136  try
137  {
138  return db_impl().get<dev_committee_object>();
139  }
140  FC_CAPTURE_AND_RETHROW(("Development committee does not exist."))
141 }
142 
143 const dev_committee_member_object& dbs_development_committee::get_member(const account_name_type& account_name) const
144 {
145  try
146  {
147  return db_impl().get<dev_committee_member_object, by_account_name>(account_name);
148  }
149  FC_CAPTURE_AND_RETHROW((account_name))
150 }
151 
152 } // namespace chain
153 } // namespace scorum
tracks the blockchain state in an extensible manner
Definition: database.hpp:52
dba::db_index & db_impl()
Definition: dbs_base.cpp:22
#define SCORUM_DEVELOPMENT_COMMITTEE_MAX_MEMBERS_LIMIT
Definition: config.hpp:169
fc::fixed_string_16 account_name_type
Definition: types.hpp:62
uint16_t percent_type
Definition: types.hpp:69
Definition: asset.cpp:15
committee_members_cref_type get_committee() const override
bool is_exists(const account_name_type &account_name) const override
void change_advertising_moderator_quorum(const percent_type quorum) override
void change_betting_moderator_quorum(const percent_type quorum) override
void change_base_quorum(const percent_type quorum) override
const dev_committee_member_object & get_member(const account_name_type &account) const override
void change_budgets_auction_properties_quorum(const percent_type quorum) override
void change_transfer_quorum(const percent_type quorum) override
percent_type get_budgets_auction_properties_quorum() override
void change_exclude_member_quorum(const percent_type quorum) override
void change_betting_resolve_delay_quorum(const percent_type quorum) override
void add_member(const account_name_type &account_name) override
percent_type get_advertising_moderator_quorum() override
const dev_committee_object & get() const override
void change_add_member_quorum(const percent_type quorum) override
void exclude_member(const account_name_type &account_name) override
std::vector< committee_member_object_cref_type > committee_members_cref_type