5#include <eosio/eosio.hpp>
6#include <eosio/asset.hpp>
7#include "../lib/common.hpp"
27 void init(name coopname);
37 void contribute(name coopname, name username, asset
amount, name type);
45 void refresh(name coopname, name username);
56 void withdraw1(name coopname, name username, asset
amount);
67 void withdraw2(name coopname, name username, asset
amount);
77 void addfee(name coopname, asset
amount);
95 int64_t reward_per_share_last = 0;
103 typedef eosio::multi_index<
"participants"_n,
participant,
104 indexed_by<
"byaccount"_n, const_mem_fun<participant, uint64_t, &participant::by_account>>
121 asset accumulated_fees = asset(0, TOKEN_SYMBOL);
122 int64_t cumulative_reward_per_share = 0;
145 typedef eosio::multi_index<
"withdrawals"_n, withdrawal_request,
146 indexed_by<
"byaccount"_n, const_mem_fun<withdrawal_request, uint64_t, &withdrawal_request::by_account>>,
147 indexed_by<
"bytimestamp"_n, const_mem_fun<withdrawal_request, uint64_t, &withdrawal_request::by_timestamp>>
156 void process_property(
const name& coopname,
const name& username,
const asset&
amount);
164 void process_intellectual(
const name& coopname,
const name& username,
const asset&
amount);
180 auto itr = global_state_inst.find(coopname.value);
181 eosio::check(itr != global_state_inst.end(),
"Контракт не инициализирован");
188 void process_withdrawals(
const name& coopname);
Контракт Contributor управляет вкладами, распределением вознаграждений и выводом средств для участник...
Definition: contributor.hpp:17
global_state get_global_state(name coopname)
Получает текущее глобальное состояние.
Definition: contributor.hpp:178
eosio::multi_index<"withdrawals"_n, withdrawal_request, indexed_by<"byaccount"_n, const_mem_fun< withdrawal_request, uint64_t, &withdrawal_request::by_account > >, indexed_by<"bytimestamp"_n, const_mem_fun< withdrawal_request, uint64_t, &withdrawal_request::by_timestamp > > > withdrawals_table
Таблица для хранения запросов на вывод.
Definition: contributor.hpp:148
eosio::multi_index<"globalstate"_n, global_state > global_state_table
Таблица для хранения глобального состояния.
Definition: contributor.hpp:127
eosio::multi_index<"participants"_n, participant, indexed_by<"byaccount"_n, const_mem_fun< participant, uint64_t, &participant::by_account > > > participants_table
Таблица для хранения участников.
Definition: contributor.hpp:105
static constexpr eosio::symbol _root_govern_symbol
Definition: consts.hpp:210
static constexpr eosio::symbol _root_symbol
Definition: consts.hpp:209
contract
Definition: eosio.msig_tests.cpp:977
share_type amount
Definition: eosio.token_tests.cpp:174
void update_global_state(const global_state &gs)
Обновляет глобальное состояние новыми значениями.
Definition: global_state.hpp:52
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: accounts.hpp:60
Структура глобального состояния, хранящая общие данные контракта.
Definition: contributor.hpp:113
eosio::name coopname
Имя кооператива глобального состояния.
Definition: contributor.hpp:114
uint64_t primary_key() const
Основной ключ.
Definition: contributor.hpp:124
Структура участника, хранящая данные индивидуального участника.
Definition: contributor.hpp:87
name account
Имя аккаунта участника.
Definition: contributor.hpp:89
uint64_t id
Уникальный ID участника.
Definition: contributor.hpp:88
uint64_t primary_key() const
Основной ключ.
Definition: contributor.hpp:99
uint64_t by_account() const
Вторичный индекс по аккаунту.
Definition: contributor.hpp:100
Структура запроса на вывод для обработки очереди на вывод.
Definition: contributor.hpp:134
name account
Имя аккаунта участника, запрашивающего вывод.
Definition: contributor.hpp:136
uint64_t id
Уникальный ID запроса на вывод.
Definition: contributor.hpp:135
uint64_t by_account() const
Вторичный индекс по аккаунту.
Definition: contributor.hpp:141
uint64_t primary_key() const
Основной ключ.
Definition: contributor.hpp:140
uint64_t timestamp
Время создания запроса.
Definition: contributor.hpp:138
uint64_t by_timestamp() const
Вторичный индекс по времени.
Definition: contributor.hpp:142
Таблица участников кооператива
Definition: coops.hpp:181