COOPENOMICS  v1
Кооперативная Экономика
fund.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/common.hpp"
10
43// Константы определены в lib/consts.hpp:
44// HUNDR_PERCENTS = 1000000 (100%)
45// ONE_PERCENT = 10000 (1%)
46
55 public:
56 fund(eosio::name receiver, eosio::name code,
57 eosio::datastream<const char *> ds)
58 : eosio::contract(receiver, code, ds) {}
59
60 void apply(uint64_t receiver, uint64_t code, uint64_t action);
61 [[eosio::action]] void migrate();
62
63 [[eosio::action]] void newfund(eosio::name coopname, eosio::name type,
64 uint64_t id);
65 [[eosio::action]] void newwithdraw(eosio::name coopname, eosio::name type,
66 uint64_t id);
67
68 [[eosio::action]] void init(eosio::name coopname, eosio::asset initial);
69
70 // type: accumulation, expend
71 [[eosio::action]] void createfund(eosio::name coopname, eosio::name username,
72 eosio::name type, eosio::name contract,
73 std::string name, std::string description,
74 uint64_t percent);
75 [[eosio::action]] void editfund(eosio::name coopname, eosio::name username,
76 eosio::name type, uint64_t fund_id,
77 eosio::name contract, std::string name,
78 std::string description, uint64_t percent);
79 [[eosio::action]] void delfund(eosio::name coopname, eosio::name username,
80 eosio::name type, uint64_t fund_id);
81
82 // атомарные транзакции фондового кошелька
83 // паевой фонд
84 [[eosio::action]] void addcirculate(
85 eosio::name coopname,
86 eosio::asset quantity);
87 [[eosio::action]] void subcirculate(
88 eosio::name coopname,
89 eosio::asset quantity,
90 bool skip_available_check = false
91 );
92
93 // фонды накопления
94 [[eosio::action]] void addaccum(eosio::name coopname, uint64_t fund_id,
95 eosio::asset quantity);
96 [[eosio::action]] void subaccum(eosio::name coopname, uint64_t fund_id,
97 eosio::asset quantity);
98 // списать можно только с помощью вызова метода withdraw смарт-контракта
99
100 // счет накопления для списаний
101 [[eosio::action]] void addexpense(eosio::name coopname, uint64_t fund_id,
102 eosio::asset quantity);
103
104 // добавить членский взнос на накопительный счет кооператива для дальнейшего управления
105 [[eosio::action]] void accumfee(eosio::name coopname, eosio::asset quantity);
106
107 //счет вступительных взносов
108 [[eosio::action]] void addinitial(eosio::name coopname,
109 eosio::asset quantity);
110
111 [[eosio::action]] void subinitial(eosio::name coopname, eosio::asset quantity);
112
113 // метод распределения членской части взноса по фондам накопления с остатком в
114 // кошельке для распределения по фондам списания
115 [[eosio::action]] void spreadamount(
116 eosio::name coopname,
117 eosio::asset quantity);
120
121 // метод вывода средств из фондов накопления
122 [[eosio::action]] void fundwithdraw(eosio::name coopname,
123 eosio::name username, eosio::name type,
124 uint64_t fund_id, document2 document,
125 eosio::asset quantity,
126 std::string bank_data_id);
127 // используется только на фондах накопления
128
129 // метод авторизации средств из кошелька
130 [[eosio::action]] void authorize(eosio::name coopname, eosio::name type,
131 uint64_t withdraw_id);
132
133 // используется авторизованными участником для подтверждения совершения
134 // выплаты
135 [[eosio::action]] void complete(eosio::name coopname, eosio::name username,
136 uint64_t withdraw_id);
137
138 struct [[eosio::table, eosio::contract(FUND)]] counts : counts_base {};
139};
Константы контракта управления фондами
Definition: fund.hpp:54
void apply(uint64_t receiver, uint64_t code, uint64_t action)
fund(eosio::name receiver, eosio::name code, eosio::datastream< const char * > ds)
Definition: fund.hpp:56
#define FUND
Definition: consts.hpp:134
contract
Definition: eosio.msig_tests.cpp:977
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: counts.hpp:1
Definition: drafts.hpp:28
Definition: drafts.hpp:7
Definition: fund.hpp:138