COOPENOMICS  v1
Кооперативная Экономика
global_state.hpp
См. документацию.
1#pragma once
2
3using namespace eosio;
4using std::string;
5
6namespace Capital {
7
11 struct config {
13 double expense_pool_percent = 100;
15 uint32_t voting_period_in_days = 7;
16 double authors_voting_percent = 38.2;
18 };
19
28 struct [[eosio::table, eosio::contract(CAPITAL)]] global_state {
29 eosio::name coopname;
30 asset global_available_invest_pool = asset(0, _root_govern_symbol);
31 asset program_membership_funded = asset(0, _root_govern_symbol);
32 asset program_membership_available = asset(0, _root_govern_symbol);
33 asset program_membership_distributed = asset(0, _root_govern_symbol);
35
37
38 uint64_t primary_key() const { return coopname.value; }
39 };
40
41 typedef eosio::multi_index<"state"_n, global_state> global_state_table;
42
43
44
45
46
52inline void update_global_state(const global_state& gs){
53 global_state_table global_state_inst(_capital, _capital.value);
54 auto itr = global_state_inst.find(gs.coopname.value);
55 check(itr != global_state_inst.end(), "Глобальное состояние не найдено");
56 global_state_inst.modify(itr, _capital, [&](auto& s) {
57 s = gs;
58 });
59}
60
66inline global_state get_global_state(name coopname) {
67 global_state_table global_state_inst(_capital, _capital.value);
68 auto itr = global_state_inst.find(coopname.value);
69 eosio::check(itr != global_state_inst.end(), "Контракт не инициализирован");
70 return *itr;
71}
72
73}// namespace Capital
static constexpr eosio::name _capital
Definition: consts.hpp:150
static constexpr eosio::symbol _root_govern_symbol
Definition: consts.hpp:210
contract
Definition: eosio.msig_tests.cpp:977
Definition: balances.cpp:6
eosio::multi_index<"state"_n, global_state > global_state_table
Таблица для хранения глобального состояния.
Definition: global_state.hpp:41
void update_global_state(const global_state &gs)
Обновляет глобальное состояние новыми значениями.
Definition: global_state.hpp:52
global_state get_global_state(name coopname)
Получает текущее глобальное состояние.
Definition: global_state.hpp:66
Definition: eosio.msig.hpp:34
Конфигурация контракта, управляемая пользователем.
Definition: global_state.hpp:11
uint32_t voting_period_in_days
Период голосования в днях (по умолчанию 7)
Definition: global_state.hpp:15
double creators_voting_percent
Процент премий создателей для голосования (по умолчанию)
Definition: global_state.hpp:17
double authors_voting_percent
Процент премий авторов для голосования (по умолчанию)
Definition: global_state.hpp:16
double coordinator_bonus_percent
Процент премий координатора от инвестиций (по умолчанию 4%)
Definition: global_state.hpp:12
double expense_pool_percent
Процент инвестиций в пул расходов (по умолчанию 1.0)
Definition: global_state.hpp:13
uint32_t coordinator_invite_validity_days
Срок действия приглашения координатора (по умолчанию 30 дней)
Definition: global_state.hpp:14
Таблица глобального состояния хранит общие данные контракта капитализации.
Definition: global_state.hpp:28
eosio::name coopname
Имя кооператива
Definition: global_state.hpp:29
double program_membership_cumulative_reward_per_share
Накопительное вознаграждение на долю в членских взносах
Definition: global_state.hpp:34
config config
Управляемая конфигурация контракта
Definition: global_state.hpp:36
uint64_t primary_key() const
Первичный ключ (1)
Definition: global_state.hpp:38