Scorum
proposal_operations.cpp
Go to the documentation of this file.
3 
4 namespace scorum {
5 namespace protocol {
6 
8 {
9  return visit([](registration_committee_i& c) { return utils::make_ref(static_cast<committee_i&>(c)); },
10  [](development_committee_i& c) { return utils::make_ref(static_cast<committee_i&>(c)); });
11 }
12 
14 {
16 
17  FC_ASSERT(amount > asset(0, SCORUM_SYMBOL), "Must transfer a nonzero amount");
18 }
19 
21 {
22  return committee_service.get_transfer_quorum();
23 }
24 
26 {
27 }
28 
31 {
32  return committee_service.get_transfer_quorum();
33 }
34 
36 {
38 }
39 
41 {
42  return committee_service.get_base_quorum();
43 }
44 
46 {
48 }
49 
52 {
53  return committee_service.get_exclude_member_quorum();
54 }
55 
57 {
59 }
60 
62 {
63  return committee_service.get_add_member_quorum();
64 }
65 
67 {
69 }
70 
72  committee_type& committee_service) const
73 {
74  return committee_service.get_advertising_moderator_quorum();
75 }
76 
78 {
80 }
81 
84 {
85  return committee_service.get_betting_moderator_quorum();
86 }
87 
89 {
90 }
91 
93  committee_type& committee_service) const
94 {
95  return committee_service.get_betting_moderator_quorum();
96 }
97 
99 {
101 }
102 
105 {
106  return committee_service.get_base_quorum();
107 }
108 
110 {
112 }
113 
116 {
117  return committee_service.get_exclude_member_quorum();
118 }
119 
121 {
123 }
124 
126 {
127  return committee_service.get_add_member_quorum();
128 }
129 
131 {
132  FC_ASSERT(auction_coefficients.size() >= 1u, "Invalid coefficient's list");
133  FC_ASSERT((*auction_coefficients.begin()) <= 100, "Invalid coefficient's list");
134  FC_ASSERT((*auction_coefficients.rbegin()) > 0, "Invalid coefficient's list");
135  FC_ASSERT(std::is_sorted(auction_coefficients.rbegin(), auction_coefficients.rend()), "Invalid coefficient's list");
136 }
137 
139  committee_type& committee_service) const
140 {
141  return committee_service.get_budgets_auction_properties_quorum();
142 }
143 
145 {
147 
149  : _committee(committee)
150  {
151  }
152 
153  template <typename T> protocol::percent_type operator()(const T& op) const
154  {
155  auto& committee = _committee.get<utils::ref<typename T::committee_type>>();
156  return op.get_required_quorum(committee);
157  }
158 
159 private:
160  committee& _committee;
161 };
162 
164 {
166 }
167 
169 {
170  return op.visit(operation_get_required_quorum_visitor(committee_service));
171 }
172 } // namespace protocol
173 } // namespace scorum
174 
#define SCORUM_SYMBOL
Definition: config.hpp:102
uint16_t percent_type
Definition: types.hpp:69
fc::static_variant< registration_committee_add_member_operation, registration_committee_exclude_member_operation, registration_committee_change_quorum_operation, development_committee_add_member_operation, development_committee_exclude_member_operation, development_committee_change_quorum_operation, development_committee_withdraw_vesting_operation, development_committee_transfer_operation, development_committee_empower_advertising_moderator_operation, development_committee_change_post_budgets_auction_properties_operation, development_committee_change_banner_budgets_auction_properties_operation, development_committee_empower_betting_moderator_operation, development_committee_change_betting_resolve_delay_operation > proposal_operation
void validate_account_name(const std::string &name)
Definition: base.hpp:15
protocol::percent_type operation_get_required_quorum(committee &committee_service, const proposal_operation &op)
void validate_quorum(quorum_type t, protocol::percent_type quorum)
void operation_validate(const proposal_operation &op)
ref< U > make_ref(U &r)
Definition: ref.hpp:41
Definition: asset.cpp:15
#define DEFINE_OPERATION_SERIALIZATOR(OperationType)
protocol::percent_type get_required_quorum(committee_type &committee_service) const
protocol::percent_type get_required_quorum(committee_type &committee_service) const
protocol::percent_type get_required_quorum(committee_type &committee_service) const
protocol::percent_type get_required_quorum(committee_type &committee_service) const
protocol::percent_type get_required_quorum(committee_type &committee_service) const
protocol::percent_type get_required_quorum(committee_type &committee_service) const
protocol::percent_type get_required_quorum(committee_type &committee_service) const
protocol::percent_type get_required_quorum(committee_type &committee_service) const
protocol::percent_type get_required_quorum(committee_type &committee_service) const
protocol::percent_type operator()(const T &op) const
protocol::percent_type get_required_quorum(committee_type &committee_service) const
protocol::percent_type get_required_quorum(committee_type &committee_service) const
protocol::percent_type get_required_quorum(committee_type &committee_service) const