COOPENOMICS  v1
Кооперативная Экономика
ledger.hpp
См. документацию.
1#include <eosio/asset.hpp>
2#include <eosio/contract.hpp>
3#include <eosio/crypto.hpp>
4#include <eosio/eosio.hpp>
5#include <eosio/multi_index.hpp>
6#include <eosio/system.hpp>
7#include <eosio/time.hpp>
8
9#include "../lib/index.hpp"
10
11using namespace eosio;
12
45class [[eosio::contract(LEDGER)]] ledger : public coop_contract {
46
47public:
48 ledger(eosio::name receiver, eosio::name code,
49 eosio::datastream<const char *> ds)
50 : coop_contract(receiver, code, ds) {}
51
52 void apply(uint64_t receiver, uint64_t code, uint64_t action);
53 [[eosio::action]] void migrate();
55 [[eosio::action]] void cleanup();
56
57 // Операции со счетами (common процесс)
58 [[eosio::action]] void add(eosio::name coopname, uint64_t account_id, eosio::asset quantity, std::string comment, checksum256 hash, eosio::name username);
59 [[eosio::action]] void sub(eosio::name coopname, uint64_t account_id, eosio::asset quantity, std::string comment, checksum256 hash, eosio::name username);
60
61 // Операции блокировки/разблокировки средств
62 [[eosio::action]] void block(eosio::name coopname, uint64_t account_id, eosio::asset quantity, std::string comment, checksum256 hash, eosio::name username);
63 [[eosio::action]] void unblock(eosio::name coopname, uint64_t account_id, eosio::asset quantity, std::string comment, checksum256 hash, eosio::name username);
64
65 // Атомарная операция списания
66 [[eosio::action]] void writeoff(eosio::name coopname, uint64_t account_id, eosio::asset quantity, std::string comment, checksum256 hash, eosio::name username);
67 // Атомарная операция отмены списания
68 [[eosio::action]] void writeoffcnsl(eosio::name coopname, uint64_t account_id, eosio::asset quantity, std::string comment, checksum256 hash, eosio::name username);
69
70 // Операции процесса списания через совет (writeoff процесс)
71 [[eosio::action]] void create(eosio::name coopname, eosio::name username, uint64_t account_id, eosio::asset quantity, std::string reason, document2 document, checksum256 writeoff_hash);
72 [[eosio::action]] void auth(eosio::name coopname, checksum256 writeoff_hash);
73
74 // Коллбэки от gateway
75 [[eosio::action]] void complete(eosio::name coopname, checksum256 writeoff_hash);
76 [[eosio::action]] void decline(eosio::name coopname, checksum256 writeoff_hash, std::string reason);
77
78};
Базовый класс контрактов платформы.
Definition: coop_contract.hpp:33
Контракт ledger для управления бухгалтерской книгой кооператива
Definition: ledger.hpp:45
void apply(uint64_t receiver, uint64_t code, uint64_t action)
ledger(eosio::name receiver, eosio::name code, eosio::datastream< const char * > ds)
Definition: ledger.hpp:48
#define LEDGER
Definition: consts.hpp:159
void decline(eosio::name coopname, uint64_t request_id, const std::string &reason)
Definition: role_requests.hpp:202
void create(eosio::name coopname, const checksum256 &request_hash, const checksum256 &project_hash, eosio::name username, eosio::name master, eosio::name role, const eosio::asset &rate_per_hour, uint64_t hours_per_day, eosio::name direction, eosio::name request_type, const std::string &description)
Definition: role_requests.hpp:105
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