COOPENOMICS  v1
Кооперативная Экономика
soviet.hpp
См. документацию.
1#pragma once
2
3#include <eosio/eosio.hpp>
4#include <string>
5
6#include "../../consts.hpp"
7#include "../actions.hpp"
8#include "../names.hpp"
9#include "../../domain/document_core.hpp"
10
11using namespace eosio;
12
13#define CREATEAGENDA_SIGNATURE name coopname, name username, name type, checksum256 hash, name callback_contract, name confirm_callback, name decline_callback, document2 statement, std::string meta
15
16#define CREATEAPPRV_SIGNATURE name coopname, name username, document2 document, name type, checksum256 approval_hash, name callback_contract, name callback_action_approve, name callback_action_decline, std::string meta
18
19#define DECLINE_CALLBACK_SIGNATURE name coopname, checksum256 hash, std::string reason
21
22// Общая ветка отказа решения совета: отправка коллбэка отклонения инициатору
23// (если решение пришло из внешнего процесса) + удаление решения из таблицы.
24// Используется при просрочке (cancelexprd) и при достижении отрицательного
25// консенсуса голосов «против» (voteagainst). Определение — cancelexprd.cpp.
26void decline_and_erase_decision(eosio::name coopname, uint64_t decision_id, const std::string &reason);
27
28#define AUTHORIZE_CALLBACK_SIGNATURE name coopname, checksum256 hash, document2 authorization
30
31#define NEWSUBMITTED_SIGNATURE name coopname, name username, name action, checksum256 package, document2 document
33
34#define NEWRESOLVED_SIGNATURE name coopname, name username, name action, checksum256 package, document2 document
36
37#define NEWDECISION_SIGNATURE name coopname, name username, name action, checksum256 package, document2 document
39
40#define NEWDECLINED_SIGNATURE name coopname, name username, checksum256 package, document2 document
42
43#define NEWACT_SIGNATURE name coopname, name username, name action, checksum256 package, document2 document
45
46#define NEWLINK_SIGNATURE name coopname, name username, name action, checksum256 package, document2 document
48
49#define NEWAGREEMENT_SIGNATURE name coopname, name username, name type, document2 document
51
52#define NEWPACKAGE_SIGNATURE name coopname, name username, name action, checksum256 package
54
55#define OPENPROGWALL_SIGNATURE name coopname, name username, name program_type, uint64_t agreement_id
57
58namespace Soviet {
59
60inline void create_agenda(name calling_contract, CREATEAGENDA_SIGNATURE) {
61 Action::send<createagenda_interface>(_soviet, Names::External::CREATE_AGENDA, calling_contract, coopname,
62 username, type, hash, callback_contract, confirm_callback,
63 decline_callback, statement, meta);
64}
65
66inline void create_approval(name calling_contract, CREATEAPPRV_SIGNATURE) {
67 Action::send<createapprv_interface>(_soviet, Names::External::CREATE_APPROVAL, calling_contract, coopname,
68 username, document, type, approval_hash, callback_contract,
69 callback_action_approve, callback_action_decline, meta);
70}
71
72inline void make_complete_document(name calling_contract, name coopname, name username, name action,
73 checksum256 package, document2 document) {
74 Action::send<newsubmitted_interface>(_soviet, "newsubmitted"_n, calling_contract, coopname, username, action,
75 package, document);
76
77 Action::send<newresolved_interface>(_soviet, "newresolved"_n, calling_contract, coopname, username, action,
78 package, document);
79}
80
81} // namespace Soviet
static constexpr eosio::name _soviet
Definition: consts.hpp:172
void decline_and_erase_decision(eosio::name coopname, uint64_t decision_id, const std::string &reason)
Отмена истекшего решения Отменяет решение совета по истечении срока его действия. Отправляет обратный...
Definition: cancelexprd.cpp:15
#define OPENPROGWALL_SIGNATURE
Definition: soviet.hpp:55
void(AUTHORIZE_CALLBACK_SIGNATURE) authorize_callback_interface
Definition: soviet.hpp:29
#define NEWSUBMITTED_SIGNATURE
Definition: soviet.hpp:31
void(NEWACT_SIGNATURE) newact_interface
Definition: soviet.hpp:44
#define NEWAGREEMENT_SIGNATURE
Definition: soviet.hpp:49
#define NEWLINK_SIGNATURE
Definition: soviet.hpp:46
void(NEWRESOLVED_SIGNATURE) newresolved_interface
Definition: soviet.hpp:35
void(NEWAGREEMENT_SIGNATURE) newagreement_interface
Definition: soviet.hpp:50
#define NEWDECISION_SIGNATURE
Definition: soviet.hpp:37
void(CREATEAPPRV_SIGNATURE) createapprv_interface
Definition: soviet.hpp:17
void(NEWLINK_SIGNATURE) newlink_interface
Definition: soviet.hpp:47
void(NEWDECISION_SIGNATURE) newdecision_interface
Definition: soviet.hpp:38
void(NEWDECLINED_SIGNATURE) newdeclined_interface
Definition: soviet.hpp:41
#define NEWRESOLVED_SIGNATURE
Definition: soviet.hpp:34
#define DECLINE_CALLBACK_SIGNATURE
Definition: soviet.hpp:19
void(CREATEAGENDA_SIGNATURE) createagenda_interface
Definition: soviet.hpp:14
void(NEWSUBMITTED_SIGNATURE) newsubmitted_interface
Definition: soviet.hpp:32
#define AUTHORIZE_CALLBACK_SIGNATURE
Definition: soviet.hpp:28
#define NEWACT_SIGNATURE
Definition: soviet.hpp:43
void(NEWPACKAGE_SIGNATURE) newpackage_interface
Definition: soviet.hpp:53
void(DECLINE_CALLBACK_SIGNATURE) decline_callback_interface
Definition: soviet.hpp:20
#define NEWDECLINED_SIGNATURE
Definition: soviet.hpp:40
#define CREATEAGENDA_SIGNATURE
Definition: soviet.hpp:13
void(OPENPROGWALL_SIGNATURE) openprogwall_interface
Definition: soviet.hpp:56
#define NEWPACKAGE_SIGNATURE
Definition: soviet.hpp:52
#define CREATEAPPRV_SIGNATURE
Definition: soviet.hpp:16
constexpr eosio::name CREATE_APPROVAL
Definition: names.hpp:96
constexpr eosio::name CREATE_AGENDA
Definition: names.hpp:97
Definition: soviet.hpp:58
void make_complete_document(name calling_contract, name coopname, name username, name action, checksum256 package, document2 document)
Definition: soviet.hpp:72
void create_agenda(name calling_contract, CREATEAGENDA_SIGNATURE)
Definition: soviet.hpp:60
void create_approval(name calling_contract, CREATEAPPRV_SIGNATURE)
Definition: soviet.hpp:66
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()
Definition: document_core.hpp:27
Definition: document_core.hpp:10