3#include <eosio/binary_extension.hpp>
4#include <eosio/eosio.hpp>
5#include <eosio/ignore.hpp>
6#include <eosio/transaction.hpp>
7#include <eosio/asset.hpp>
8#include <eosio/singleton.hpp>
10#include "../lib/index.hpp"
78 std::vector<eosio::name> votes_for,
79 std::vector<eosio::name> votes_against,
83 eosio::name authorized_by,
85 eosio::time_point_sec created_at,
86 eosio::time_point_sec expired_at,
88 eosio::name callback_contract,
89 eosio::name confirm_callback,
90 eosio::name decline_callback,
104 void authorize_action_effect(eosio::name executer, eosio::name coopname, uint64_t decision_id);
108 [[
eosio::action]]
void exec(eosio::name executer, eosio::name coopname, uint64_t decision_id);
130 void confirmapprv(eosio::name coopname, eosio::name username, checksum256 approval_hash, std::optional<document2> approved_document);
133 void declineapprv(eosio::name coopname, eosio::name username, checksum256 approval_hash, std::string reason);
137 [[
eosio::action]]
void cancelreg(eosio::name coopname, eosio::name username, std::string message);
140 [[
eosio::action]]
void addpartcpnt(eosio::name coopname, eosio::name username, eosio::name braname, eosio::name type, eosio::time_point_sec created_at, eosio::asset initial, eosio::asset minimum,
bool spread_initial);
143 [[
eosio::action]]
void automate(eosio::name coopname, uint64_t board_id, eosio::name member, eosio::name action_type, eosio::name provider, std::string encrypted_private_key);
144 [[
eosio::action]]
void disautomate(eosio::name coopname, uint64_t board_id, eosio::name member, uint64_t automation_id );
145 static void make_base_coagreements(eosio::name coopname, eosio::symbol govern_symbol);
149 [[
eosio::action]]
void createboard(eosio::name coopname, eosio::name username, eosio::name type, std::vector<board_member> members, std::string name, std::string description);
150 [[
eosio::action]]
void updateboard(eosio::name coopname, eosio::name username, uint64_t board_id, std::vector<board_member> members, std::string name, std::string description);
153 [[
eosio::action]]
void addstaff(eosio::name coopname, eosio::name chairman, eosio::name username, std::vector<right> rights, std::string position_title);
154 [[
eosio::action]]
void rmstaff(eosio::name coopname, eosio::name chairman, eosio::name username);
155 [[
eosio::action]]
void setrights(eosio::name coopname, eosio::name chairman, eosio::name username, std::vector<right> rights);
156 [[
eosio::action]]
void validate(eosio::name coopname, eosio::name username, uint64_t decision_id);
159 [[
eosio::action]]
void openprogwall(name coopname, name username, name program_type, uint64_t agreement_id);
164 eosio::name coopname,
165 eosio::name username,
166 uint64_t decision_id,
167 eosio::time_point_sec signed_at,
168 checksum256 signed_hash,
169 eosio::signature signature,
170 eosio::public_key public_key
175 eosio::name coopname,
176 eosio::name username,
177 uint64_t decision_id,
178 eosio::time_point_sec signed_at,
179 checksum256 signed_hash,
180 eosio::signature signature,
181 eosio::public_key public_key
184 [[
eosio::action]]
void cancelvote(eosio::name coopname, eosio::name member, uint64_t decision_id);
187 [[
eosio::action]]
void createprog(eosio::name coopname, eosio::name username, eosio::name type, std::string title, std::string announce, std::string description, std::string preview, std::string images, eosio::name calculation_type, eosio::asset fixed_membership_contribution, uint64_t membership_percent_fee,
bool is_can_coop_spend_share_contributions, std::string meta);
188 [[
eosio::action]]
void editprog(eosio::name coopname, eosio::name username, uint64_t program_id, uint64_t draft_id, std::string title, std::string announce, std::string description, std::string preview, std::string images, std::string meta);
189 [[
eosio::action]]
void disableprog(eosio::name coopname, uint64_t program_id);
192 [[
eosio::action]]
void sndagreement(eosio::name coopname, eosio::name administrator, eosio::name username, eosio::name agreement_type,
document2 document);
193 [[
eosio::action]]
void confirmagree(eosio::name coopname, eosio::name administrator, eosio::name username, uint64_t agreement_id);
194 [[
eosio::action]]
void declineagree(eosio::name coopname, eosio::name administrator, eosio::name username, uint64_t agreement_id, std::string comment);
195 [[
eosio::action]]
void migrateagree(eosio::name coopname, uint64_t agreement_id);
199 [[
eosio::action]]
void withdraw(eosio::name coopname, eosio::name username, uint64_t withdraw_id,
document2 statement);
200 [[
eosio::action]]
void cancelexprd(eosio::name coopname, uint64_t decision_id);
202 void withdraw_effect(eosio::name executer, eosio::name coopname, uint64_t decision_id, uint64_t batch_id);
204 [[
eosio::action]]
void addbal(eosio::name coopname, eosio::name username, uint64_t program_id, eosio::asset quantity, std::string memo);
205 [[
eosio::action]]
void subbal(eosio::name coopname, eosio::name username, uint64_t program_id, eosio::asset quantity,
bool skip_available_check, std::string memo);
206 [[
eosio::action]]
void blockbal(eosio::name coopname, eosio::name username, uint64_t program_id, eosio::asset quantity, std::string memo);
207 [[
eosio::action]]
void unblockbal(eosio::name coopname, eosio::name username, uint64_t program_id, eosio::asset quantity, std::string memo);
208 [[
eosio::action]]
void addmemberfee(eosio::name coopname, eosio::name username, uint64_t program_id, eosio::asset quantity, std::string memo);
209 [[
eosio::action]]
void submemberfee(eosio::name coopname, eosio::name username, uint64_t program_id, eosio::asset quantity, std::string memo);
213 [[
eosio::action]]
void deladdress(eosio::name coopname, eosio::name chairman, uint64_t address_id);
214 [[
eosio::action]]
void editaddress(eosio::name coopname, eosio::name chairman, eosio::name braname, uint64_t address_id,
address_data data);
218 void subaccum_effect(eosio::name executer, eosio::name coopname, uint64_t decision_id, uint64_t program_id);
222 [[
eosio::action]]
void block(eosio::name coopname, eosio::name
admin, eosio::name username, std::string message);
223 [[
eosio::action]]
void unblock(eosio::name coopname, eosio::name
admin, eosio::name username,
bool is_registration, std::string message);
229 void freedecision_effect(eosio::name executer, eosio::name coopname, uint64_t decision_id);
233 [[
eosio::action]]
void deletebranch(eosio::name coopname, eosio::name braname);
272 uint64_t
by_action()
const {
return action_type.value; }
277 typedef eosio::multi_index<
"automator"_n,
automator,
278 eosio::indexed_by<
"byaction"_n, eosio::const_mem_fun<automator, uint64_t, &automator::by_action>>,
279 eosio::indexed_by<
"bymembaction"_n, eosio::const_mem_fun<automator, uint128_t, &automator::by_member_and_action_type>>
316 bool is_paid =
false;
329 typedef eosio::multi_index<
"joincoops"_n,
joincoops,
330 eosio::indexed_by<
"byusername"_n, eosio::const_mem_fun<joincoops, uint64_t, &joincoops::byusername>>
360 typedef eosio::multi_index<
"changes"_n,
changes,
361 eosio::indexed_by<
"byexchange"_n, eosio::const_mem_fun<changes, uint64_t, &changes::byexchange>>
Definition: soviet.hpp:40
#define SOVIET
Definition: consts.hpp:131
const auto admin
Definition: eosio.limitauth_tests.cpp:18
contract
Definition: eosio.msig_tests.cpp:977
share_type amount
Definition: eosio.token_tests.cpp:174
#define NEWSUBMITTED_SIGNATURE
Definition: soviet.hpp:25
#define NEWAGREEMENT_SIGNATURE
Definition: soviet.hpp:43
#define NEWLINK_SIGNATURE
Definition: soviet.hpp:40
#define NEWDECISION_SIGNATURE
Definition: soviet.hpp:31
#define NEWRESOLVED_SIGNATURE
Definition: soviet.hpp:28
#define NEWACT_SIGNATURE
Definition: soviet.hpp:37
#define NEWDECLINED_SIGNATURE
Definition: soviet.hpp:34
#define CREATEAGENDA_SIGNATURE
Definition: soviet.hpp:13
#define NEWPACKAGE_SIGNATURE
Definition: soviet.hpp:46
#define CREATEAPPRV_SIGNATURE
Definition: soviet.hpp:16
Definition: eosio.msig.hpp:34
action(permission_level{ _gateway, "active"_n}, _gateway, "adduser"_n, std::make_tuple(coopname, deposit->username, to_spread, to_circulation, eosio::current_time_point(), true)).send()
eosio::multi_index< "autosigner"_n, autosigner > autosigner_index
Definition: soviet.hpp:299
eosio::multi_index< "automator"_n, automator, eosio::indexed_by<"byaction"_n, eosio::const_mem_fun< automator, uint64_t, &automator::by_action > >, eosio::indexed_by<"bymembaction"_n, eosio::const_mem_fun< automator, uint128_t, &automator::by_member_and_action_type > > > automator_index
Definition: soviet.hpp:280
eosio::multi_index<"changes"_n, changes, eosio::indexed_by<"byexchange"_n, eosio::const_mem_fun< changes, uint64_t, &changes::byexchange > > > changes_index
Definition: soviet.hpp:362
eosio::multi_index<"joincoops"_n, joincoops, eosio::indexed_by<"byusername"_n, eosio::const_mem_fun< joincoops, uint64_t, &joincoops::byusername > > > joincoops_index
Definition: soviet.hpp:331
Definition: table_soviet_addresses.hpp:8
Таблица автоматизированных действий
Definition: soviet.hpp:261
eosio::name coopname
Имя кооператива, к которому относится данное автоматизированное действие
Definition: soviet.hpp:263
eosio::name permission_name
Имя разрешения для авторизации действия
Definition: soviet.hpp:267
uint64_t by_action() const
Индекс по типу действия
Definition: soviet.hpp:272
eosio::name member
Член совета, который автоматизировал данное действие
Definition: soviet.hpp:265
uint128_t by_member_and_action_type() const
Индекс по члену совета и типу действия
Definition: soviet.hpp:271
uint64_t id
Уникальный идентификатор автоматизированного действия
Definition: soviet.hpp:262
std::string encrypted_private_key
Зашифрованный приватный ключ для авторизации действия
Definition: soviet.hpp:268
uint64_t primary_key() const
Definition: soviet.hpp:270
uint64_t board_id
Идентификатор совета, который автоматизировал данное действие
Definition: soviet.hpp:264
eosio::name action_type
Тип автоматизированного действия
Definition: soviet.hpp:266
Таблица автоподписанта
Definition: soviet.hpp:294
uint64_t primary_key() const
Definition: soviet.hpp:296
uint64_t decision_id
Идентификатор решения для автоподписания
Definition: soviet.hpp:295
Таблица изменений обменов
Definition: soviet.hpp:344
uint64_t id
Уникальный идентификатор изменения
Definition: soviet.hpp:345
uint64_t primary_key() const
Definition: soviet.hpp:351
uint64_t return_product_decision_id
Идентификатор решения о возврате продукта
Definition: soviet.hpp:348
uint64_t contribution_product_decision_id
Идентификатор решения о внесении продукта
Definition: soviet.hpp:347
uint64_t exchange_id
Идентификатор обмена в контракте marketplace.
Definition: soviet.hpp:346
uint64_t byexchange() const
Definition: soviet.hpp:355
Definition: table_counts.hpp:7
Таблица счетчиков
Definition: soviet.hpp:248
Definition: document_core.hpp:27
Definition: document_core.hpp:10
Таблица заявок на вступление в кооператив
Definition: soviet.hpp:313
eosio::binary_extension< eosio::name > braname
Имя кооперативного участка
Definition: soviet.hpp:319
std::string notice
Примечание к заявке
Definition: soviet.hpp:317
uint64_t primary_key() const
Definition: soviet.hpp:321
uint64_t byusername() const
Индекс по имени пользователя
Definition: soviet.hpp:325
uint64_t id
Уникальный идентификатор заявки
Definition: soviet.hpp:314
eosio::name username
Имя пользователя, подавшего заявку
Definition: soviet.hpp:315
static uint128_t combine_ids(const uint64_t &x, const uint64_t &y)
Definition: utils.hpp:7