6#include "../lib/core/ram_payer.hpp"
7#include <eosio/eosio.hpp>
8#include <eosio/asset.hpp>
9#include "../lib/index.hpp"
32 void init(name coopname);
42 void contribute(name coopname, name username, asset
amount, name type);
50 void refresh(name coopname, name username);
61 void withdraw1(name coopname, name username, asset
amount);
72 void withdraw2(name coopname, name username, asset
amount);
82 void addfee(name coopname, asset
amount);
100 int64_t reward_per_share_last = 0;
108 typedef eosio::multi_index<
"participants"_n,
participant,
109 indexed_by<
"byaccount"_n, const_mem_fun<participant, uint64_t, &participant::by_account>>
126 asset accumulated_fees = asset(0, TOKEN_SYMBOL);
127 int64_t cumulative_reward_per_share = 0;
150 typedef eosio::multi_index<
"withdrawals"_n, withdrawal_request,
151 indexed_by<
"byaccount"_n, const_mem_fun<withdrawal_request, uint64_t, &withdrawal_request::by_account>>,
152 indexed_by<
"bytimestamp"_n, const_mem_fun<withdrawal_request, uint64_t, &withdrawal_request::by_timestamp>>
161 void process_property(
const name& coopname,
const name& username,
const asset&
amount);
169 void process_intellectual(
const name& coopname,
const name& username,
const asset&
amount);
185 auto itr = global_state_inst.find(coopname.value);
186 eosio::check(itr != global_state_inst.end(),
"Контракт не инициализирован");
193 void process_withdrawals(
const name& coopname);
Контракт Contributor управляет вкладами, распределением вознаграждений и выводом средств для участник...
Definition: contributor.hpp:19
global_state get_global_state(name coopname)
Получает текущее глобальное состояние.
Definition: contributor.hpp:183
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:153
eosio::multi_index<"globalstate"_n, global_state > global_state_table
Таблица для хранения глобального состояния.
Definition: contributor.hpp:132
eosio::multi_index<"participants"_n, participant, indexed_by<"byaccount"_n, const_mem_fun< participant, uint64_t, &participant::by_account > > > participants_table
Таблица для хранения участников.
Definition: contributor.hpp:110
Базовый класс контрактов платформы.
Definition: coop_contract.hpp:33
coop_contract(eosio::name receiver, eosio::name code, eosio::datastream< const char * > ds)
Definition: coop_contract.hpp:35
static constexpr eosio::symbol _root_govern_symbol
Definition: consts.hpp:236
static constexpr eosio::symbol _root_symbol
Definition: consts.hpp:235
RAM_PAYER_CLASS(contributor::participant, contract)
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:102
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: table_registrator_accounts.hpp:16
Структура глобального состояния, хранящая общие данные контракта.
Definition: contributor.hpp:118
eosio::name coopname
Имя кооператива глобального состояния.
Definition: contributor.hpp:119
uint64_t primary_key() const
Основной ключ.
Definition: contributor.hpp:129
Структура участника, хранящая данные индивидуального участника.
Definition: contributor.hpp:92
name account
Имя аккаунта участника.
Definition: contributor.hpp:94
uint64_t id
Уникальный ID участника.
Definition: contributor.hpp:93
uint64_t primary_key() const
Основной ключ.
Definition: contributor.hpp:104
uint64_t by_account() const
Вторичный индекс по аккаунту.
Definition: contributor.hpp:105
Структура запроса на вывод для обработки очереди на вывод.
Definition: contributor.hpp:139
name account
Имя аккаунта участника, запрашивающего вывод.
Definition: contributor.hpp:141
uint64_t id
Уникальный ID запроса на вывод.
Definition: contributor.hpp:140
uint64_t by_account() const
Вторичный индекс по аккаунту.
Definition: contributor.hpp:146
uint64_t primary_key() const
Основной ключ.
Definition: contributor.hpp:145
uint64_t timestamp
Время создания запроса.
Definition: contributor.hpp:143
uint64_t by_timestamp() const
Вторичный индекс по времени.
Definition: contributor.hpp:147
Definition: table_soviet_participants.hpp:18