COOPENOMICS  v1
Кооперативная Экономика
Класс contributor

Контракт Contributor управляет вкладами, распределением вознаграждений и выводом средств для участников. Contributor — это контракт, управляющий вкладами участников, распределением вознаграждений и механизмами вывода средств в системе. Он поддерживает два типа вкладов — интеллектуальные и имущественные, и предоставляет два метода для участников, чтобы вывести свои средства при различных условиях. Подробнее...

#include <contributor.hpp>

Граф наследования:contributor:

Классы

struct  global_state
 Структура глобального состояния, хранящая общие данные контракта. Подробнее...
 
struct  participant
 Структура участника, хранящая данные индивидуального участника. Подробнее...
 
struct  withdrawal_request
 Структура запроса на вывод для обработки очереди на вывод. Подробнее...
 

Открытые члены

void init (name coopname)
 Инициализирует контракт, устанавливая глобальное состояние.Это действие должно быть вызвано один раз после развертывания контракта. Подробнее...
 
void contribute (name coopname, name username, asset amount, name type)
 Позволяет участнику совершить вклад. Подробнее...
 
void refresh (name coopname, name username)
 Обновляет состояние участника, применяя накопленные вознаграждения. Подробнее...
 
void withdraw1 (name coopname, name username, asset amount)
 Выводит средства из интеллектуальных вкладов участника. Подробнее...
 
void withdraw2 (name coopname, name username, asset amount)
 Ставит запрос на вывод средств в очередь для обработки из накопленных членских взносов. Подробнее...
 
void addfee (name coopname, asset amount)
 Добавляет входящие членские взносы в глобальное состояние. Подробнее...
 

Закрытые типы

typedef eosio::multi_index<"participants"_n, participant, indexed_by<"byaccount"_n, const_mem_fun< participant, uint64_t, &participant::by_account > > > participants_table
 Таблица для хранения участников. Подробнее...
 
typedef eosio::multi_index<"globalstate"_n, global_stateglobal_state_table
 Таблица для хранения глобального состояния. Подробнее...
 
typedef 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
 Таблица для хранения запросов на вывод. Подробнее...
 

Закрытые члены

void process_property (const name &coopname, const name &username, const asset &amount)
 Обрабатывает имущественный вклад. Подробнее...
 
void process_intellectual (const name &coopname, const name &username, const asset &amount)
 Обрабатывает интеллектуальный вклад. Подробнее...
 
void update_global_state (const global_state &gs)
 Обновляет глобальное состояние новыми значениями. Подробнее...
 
global_state get_global_state (name coopname)
 Получает текущее глобальное состояние. Подробнее...
 
void process_withdrawals (const name &coopname)
 Обрабатывает очередь на вывод, выплачивая запросы, если это возможно. Подробнее...
 

Закрытые статические данные

static constexpr symbol TOKEN_SYMBOL = _root_govern_symbol
 Символ используемого токена. Подробнее...
 

Подробное описание

Контракт Contributor управляет вкладами, распределением вознаграждений и выводом средств для участников. Contributor — это контракт, управляющий вкладами участников, распределением вознаграждений и механизмами вывода средств в системе. Он поддерживает два типа вкладов — интеллектуальные и имущественные, и предоставляет два метода для участников, чтобы вывести свои средства при различных условиях.

Определения типов

◆ global_state_table

typedef eosio::multi_index<"globalstate"_n, global_state> contributor::global_state_table
private

Таблица для хранения глобального состояния.

◆ participants_table

typedef eosio::multi_index<"participants"_n, participant, indexed_by<"byaccount"_n, const_mem_fun<participant, uint64_t, &participant::by_account> > > contributor::participants_table
private

Таблица для хранения участников.

◆ withdrawals_table

typedef 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> > > contributor::withdrawals_table
private

Таблица для хранения запросов на вывод.

Методы

◆ addfee()

void contributor::addfee ( name  coopname,
asset  amount 
)

Добавляет входящие членские взносы в глобальное состояние.

Это действие вызывается системой для добавления средств.

Аргументы
amountСумма добавленных членских взносов.

◆ contribute()

void contributor::contribute ( name  coopname,
name  username,
asset  amount,
name  type 
)

Позволяет участнику совершить вклад.

Аргументы
usernameИмя аккаунта участника.
amountСумма вклада.
typeТип вклада ("intellect"_n или "property"_n).

◆ get_global_state()

global_state contributor::get_global_state ( name  coopname)
inlineprivate

Получает текущее глобальное состояние.

Возвращает
Текущее глобальное состояние.

◆ init()

void contributor::init ( name  coopname)

Инициализирует контракт, устанавливая глобальное состояние.Это действие должно быть вызвано один раз после развертывания контракта.

◆ process_intellectual()

void contributor::process_intellectual ( const name &  coopname,
const name &  username,
const asset &  amount 
)
private

Обрабатывает интеллектуальный вклад.

Аргументы
usernameИмя аккаунта участника.
amountСумма вклада.

◆ process_property()

void contributor::process_property ( const name &  coopname,
const name &  username,
const asset &  amount 
)
private

Обрабатывает имущественный вклад.

Аргументы
usernameИмя аккаунта участника.
amountСумма вклада.

◆ process_withdrawals()

void contributor::process_withdrawals ( const name &  coopname)
private

Обрабатывает очередь на вывод, выплачивая запросы, если это возможно.

◆ refresh()

void contributor::refresh ( name  coopname,
name  username 
)

Обновляет состояние участника, применяя накопленные вознаграждения.

Аргументы
usernameИмя аккаунта участника.

◆ update_global_state()

void contributor::update_global_state ( const global_state gs)
private

Обновляет глобальное состояние новыми значениями.

Аргументы
gsНовое глобальное состояние.

◆ withdraw1()

void contributor::withdraw1 ( name  coopname,
name  username,
asset  amount 
)

Выводит средства из интеллектуальных вкладов участника.

Только участники, совершившие интеллектуальные вклады, могут использовать этот метод.

Аргументы
usernameИмя аккаунта участника.
amountСумма для вывода.

◆ withdraw2()

void contributor::withdraw2 ( name  coopname,
name  username,
asset  amount 
)

Ставит запрос на вывод средств в очередь для обработки из накопленных членских взносов.

Средства, запрошенные к выводу, перестают приносить вознаграждения и обрабатываются по порядку.

Аргументы
usernameИмя аккаунта участника.
amountСумма для вывода.

Данные класса

◆ TOKEN_SYMBOL

constexpr symbol contributor::TOKEN_SYMBOL = _root_govern_symbol
staticconstexprprivate

Символ используемого токена.


Объявления и описания членов классов находятся в файлах: