3#include <eosio/eosio.hpp>
4#include <eosio/asset.hpp>
78typedef eosio::multi_index<
"votes"_n, vote,
79 indexed_by<
"byproject"_n, const_mem_fun<vote, checksum256, &vote::by_project>>,
80 indexed_by<
"byprojvoter"_n, const_mem_fun<vote, uint128_t, &vote::by_project_voter>>,
81 indexed_by<
"byprojrecip"_n, const_mem_fun<vote, uint128_t, &vote::by_project_recipient>>
91 auto idx = votes.get_index<
"byprojvoter"_n>();
94 return idx.find(key) != idx.end();
102 auto idx = votes.get_index<
"byprojrecip"_n>();
106 auto itr = idx.find(key);
107 while (itr != idx.end() && itr->by_project_recipient() == key) {
117 inline void add_vote(name coopname, checksum256 project_hash,
122 votes.emplace(coopname, [&](
auto &v) {
124 v.project_hash = project_hash;
126 v.recipient = recipient;
128 v.voted_at = current_time_point();
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
share_type amount
Definition: eosio.token_tests.cpp:174
uint64_t get_global_id_in_scope(eosio::name _me, eosio::name scope, eosio::name key)
Definition: counts.hpp:61
std::vector< vote > get_votes_for_recipient(name coopname, checksum256 project_hash, name recipient)
Получает все голоса получателя в проекте
Definition: votes.hpp:100
bool has_user_voted(name coopname, checksum256 project_hash, name voter)
Проверяет голосовал ли пользователь в данном проекте
Definition: votes.hpp:89
void add_vote(name coopname, checksum256 project_hash, name voter, name recipient, asset amount)
Добавляет голос в проект
Definition: votes.hpp:117
Definition: balances.cpp:6
eosio::multi_index<"votes"_n, vote, indexed_by<"byproject"_n, const_mem_fun< vote, checksum256, &vote::by_project > >, indexed_by<"byprojvoter"_n, const_mem_fun< vote, uint128_t, &vote::by_project_voter > >, indexed_by<"byprojrecip"_n, const_mem_fun< vote, uint128_t, &vote::by_project_recipient > > > votes_index
Definition: votes.hpp:82
fc::mutable_variant_object voter(account_name acct)
Definition: eosio.system_tester.hpp:1183
Definition: eosio.msig.hpp:34
Таблица результатов хранит данные о результатах участников проектов.
Definition: results.hpp:33
Таблица голосов хранит информацию о голосах участников по методу Водянова.
Definition: votes.hpp:55
uint128_t by_project_recipient() const
Definition: votes.hpp:73
name voter
Кто голосует
Definition: votes.hpp:58
time_point_sec voted_at
Время голосования
Definition: votes.hpp:61
uint128_t by_project_voter() const
Definition: votes.hpp:68
checksum256 project_hash
Хэш проекта
Definition: votes.hpp:57
checksum256 by_project() const
Индекс по хэшу проекта (2)
Definition: votes.hpp:65
uint64_t primary_key() const
Первичный ключ (1)
Definition: votes.hpp:63
uint64_t id
ID голоса (внутренний ключ)
Definition: votes.hpp:56
asset amount
Сумма голоса
Definition: votes.hpp:60
name recipient
За кого голосует
Definition: votes.hpp:59
Рассчитывает суммы для распределения по пулам
Definition: votes.hpp:21
eosio::asset authors_equal_spread
62.8% авторских премий поровну
Definition: votes.hpp:22
eosio::asset creators_bonuses_on_voting
38.2% создательских премий на голосование
Definition: votes.hpp:25
eosio::asset authors_equal_per_author
Равная сумма на каждого автора (62.8% / количество авторов)
Definition: votes.hpp:29
eosio::asset authors_bonuses_on_voting
38.2% авторских премий на голосование
Definition: votes.hpp:24
eosio::asset equal_voting_amount
Средняя сумма на каждого участника (total_voting_pool / voters)
Definition: votes.hpp:28
eosio::asset creators_direct_spread
62.8% создательских премий каждому
Definition: votes.hpp:23
eosio::asset total_voting_pool
Общая сумма для распределения по Водянову (авторы + создатели)
Definition: votes.hpp:26
eosio::asset active_voting_amount
Общая голосующая сумма = total_voting_pool * (voters-1)/voters.
Definition: votes.hpp:27
Структура данных для голосования по методу Водянова
Definition: votes.hpp:35
uint32_t total_voters
Общее количество участников
Definition: votes.hpp:36
voting_amounts amounts
Суммы на голосовании
Definition: votes.hpp:42
uint32_t votes_received
Количество полученных голосов
Definition: votes.hpp:37
double authors_voting_percent
Процент премий авторов для голосования (по умолчанию; уточняется из config при инициализации голосова...
Definition: votes.hpp:39
double creators_voting_percent
Процент премий создателей для голосования (по умолчанию; уточняется из config при инициализации голос...
Definition: votes.hpp:40
time_point_sec voting_deadline
Дедлайн голосования
Definition: votes.hpp:44
static uint128_t combine_checksum_ids(const checksum256 &hash, eosio::name username)
Definition: utils.hpp:9