COOPENOMICS  v1
Кооперативная Экономика
crps.hpp
См. документацию.
1#pragma once
2
3#include <eosio/eosio.hpp>
4#include <eosio/asset.hpp>
5#include "../../entities/generation_amounts.hpp"
6#include "../../entities/projects.hpp"
7#include "../../entities/segments.hpp"
8
9using namespace eosio;
10
11namespace Capital::Core {
12
16 void increment_authors_crps_in_project(eosio::name coopname, uint64_t project_id,
17 const eosio::asset &base_reward, const eosio::asset &bonus_reward);
18
22 void increment_contributors_crps_in_project(eosio::name coopname, uint64_t project_id, const eosio::asset &reward_amount);
23
27 void refresh_segment(eosio::name coopname, const checksum256 &project_hash, eosio::name username);
28
32 void refresh_provisional_amount(eosio::name coopname, uint64_t segment_id, const Capital::project &project);
33
37 void refresh_author_segment(eosio::name coopname, uint64_t segment_id, const Capital::project &project);
38
42 void refresh_coordinator_segment(eosio::name coopname, uint64_t segment_id, const Capital::project &project);
43
47 void refresh_contributor_segment(eosio::name coopname, uint64_t segment_id, const Capital::project &project);
48
52 void upsert_creator_segment(eosio::name coopname, uint64_t segment_id, const Capital::project &project,
53 eosio::name username, const generation_amounts &delta_amounts);
54
58 void upsert_investor_segment(eosio::name coopname, uint64_t segment_id, uint64_t project_id,
59 eosio::name username, const eosio::asset &investor_amount);
60
64 void upsert_author_segment(eosio::name coopname, uint64_t segment_id, const Capital::project &project,
65 eosio::name username, uint64_t shares);
66
70 void upsert_coordinator_segment(eosio::name coopname, uint64_t segment_id, uint64_t project_id,
71 eosio::name username, const eosio::asset &rised_amount);
72
76 void upsert_propertor_segment(eosio::name coopname, uint64_t segment_id, const Capital::project &project,
77 eosio::name username, const eosio::asset &property_amount);
78
82 void upsert_contributor_segment(eosio::name coopname, uint64_t segment_id, const Capital::project &project,
83 eosio::name username);
84
88 void distribute_program_membership_funds(eosio::name coopname, asset amount);
89
93 void refresh_contributor_program_rewards(eosio::name coopname, eosio::name username);
94
98 void process_contributor_program_withdrawal(eosio::name coopname, eosio::name username,
99 asset amount, const std::string& memo);
100
104 void add_program_investment_funds(eosio::name coopname, asset amount);
105
109 void allocate_program_investment_to_project(eosio::name coopname, uint64_t project_id, eosio::asset amount);
110
114 void deallocate_program_investment_from_project(eosio::name coopname, uint64_t project_id, eosio::asset amount);
115
119 void update_investor_used_amount(eosio::name coopname, uint64_t segment_id, const Capital::project &project);
120
121}
share_type amount
Definition: eosio.token_tests.cpp:174
Definition: balances.cpp:6
void refresh_contributor_segment(eosio::name coopname, uint64_t segment_id, const Capital::project &project)
Обновляет награды участника в сегменте
Definition: contributor_crps.cpp:98
void refresh_coordinator_segment(eosio::name coopname, uint64_t segment_id, const Capital::project &project)
Обновляет награды координатора в сегменте на основе прямого расчета (O(1) операция)
Definition: coordinator_share.cpp:74
void increment_authors_crps_in_project(eosio::name coopname, uint64_t project_id, const eosio::asset &base_reward, const eosio::asset &bonus_reward)
Обновляет CRPS поля в проекте для авторов при добавлении наград Примечание: для авторов CRPS хранит п...
Definition: author_crps.cpp:111
void upsert_coordinator_segment(eosio::name coopname, uint64_t segment_id, uint64_t project_id, eosio::name username, const eosio::asset &rised_amount)
Создает или обновляет запись координатора в таблице segments.
Definition: coordinator_share.cpp:36
void refresh_contributor_program_rewards(eosio::name coopname, eosio::name username)
Обновляет программную CRPS для contributor.
Definition: program_crps.cpp:34
void upsert_creator_segment(eosio::name coopname, uint64_t segment_id, const Capital::project &project, eosio::name username, const generation_amounts &delta_amounts)
Создает или обновляет запись генератора для создателя в таблице segments.
Definition: creator_crps.cpp:13
void refresh_segment(eosio::name coopname, uint64_t segment_id, const Capital::project &project)
Обновляет сегмент участника - диспетчер для обновления всех ролей
Definition: crps.cpp:19
void process_contributor_program_withdrawal(eosio::name coopname, eosio::name username, asset amount, const std::string &memo)
Обрабатывает вывод средств из программы через contributor.
Definition: program_crps.cpp:69
void upsert_propertor_segment(eosio::name coopname, uint64_t segment_id, const Capital::project &project, eosio::name username, const eosio::asset &property_amount)
Создает или обновляет запись пропертора с имущественным взносом в таблице segments.
Definition: propertor_segment.cpp:13
void increment_contributors_crps_in_project(eosio::name coopname, uint64_t project_id, const eosio::asset &reward_amount)
Обновляет CRPS поля в проекте для участников при добавлении наград
Definition: contributor_crps.cpp:9
void distribute_program_membership_funds(eosio::name coopname, asset amount)
Функция распределения членских взносов на программу
Definition: program_crps.cpp:11
void allocate_program_investment_to_project(eosio::name coopname, uint64_t project_id, eosio::asset amount)
Аллоцирует средства из глобального пула в проект согласно правилу распределения
Definition: program_investment.cpp:24
void refresh_author_segment(eosio::name coopname, uint64_t segment_id, const Capital::project &project)
Обновляет награды автора в сегменте
Definition: author_crps.cpp:67
void upsert_author_segment(eosio::name coopname, uint64_t segment_id, const Capital::project &project, eosio::name username)
Создает или обновляет запись генератора для автора в таблице segments.
Definition: author_crps.cpp:12
void refresh_provisional_amount(eosio::name coopname, uint64_t segment_id, const Capital::project &project)
Пересчитывает доступную сумму к компенсации на основе инвестиций с учетом return_base_percent.
Definition: crps.cpp:80
void deallocate_program_investment_from_project(eosio::name coopname, uint64_t project_id, eosio::asset amount)
Диаллоцирует средства из проекта обратно в глобальный пул (после закрытия проекта)
Definition: program_investment.cpp:84
void upsert_contributor_segment(eosio::name coopname, uint64_t segment_id, const Capital::project &project, eosio::name username, const eosio::asset &user_shares)
Создает или обновляет запись участника в таблице segments.
Definition: contributor_crps.cpp:39
void add_program_investment_funds(eosio::name coopname, asset amount)
Добавляет средства в глобальный пул доступных инвестиций программы
Definition: program_investment.cpp:9
void upsert_investor_segment(eosio::name coopname, uint64_t segment_id, uint64_t project_id, eosio::name username, const eosio::asset &investor_amount)
Создает или обновляет запись инвестора в таблице segments.
Definition: crps.cpp:125
void update_investor_used_amount(eosio::name coopname, uint64_t segment_id, const Capital::project &project)
Обновляет фактически используемую сумму инвестора в сегменте с учетом коэффициента возврата
Definition: crps.cpp:208
Definition: eosio.msig.hpp:34
Структура для результатов расчета генерации коммита Содержит только те поля, которые рассчитываются п...
Definition: generation_amounts.hpp:14
Таблица проектов хранит информацию о проектах кооператива, которые станут результатами.
Definition: projects.hpp:40