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

Вспомогательные функции процедуры выхода пайщика из кооператива. Подробнее...

Классы

struct  candidate
 
struct  candidate_legacy
 
struct  exit
 Заявление пайщика на выход из кооператива и сопровождающий его процесс возврата паевого взноса. Подробнее...
 

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

typedef multi_index< "candidates2"_n, candidate, indexed_by<"byhash"_n, const_mem_fun< candidate, checksum256, &candidate::by_hash > > > candidates_index
 
typedef multi_index< "candidates"_n, candidate_legacy, indexed_by<"byhash"_n, const_mem_fun< candidate_legacy, checksum256, &candidate_legacy::by_hash > > > candidates_legacy_index
 
typedef multi_index< "exits"_n, exit, indexed_by<"byhash"_n, const_mem_fun< exit, checksum256, &exit::by_hash > > > exits_index
 

Функции

std::optional< candidateget_candidate_by_hash (name coopname, const checksum256 &hash)
 
uint64_t get_active_participants_count (name coopname)
 
std::optional< exitget_exit_by_hash (name coopname, const checksum256 &hash)
 
asset get_user_wallet_available (name coopname, name wallet_name, name username)
 Доступный L3-баланс пайщика на USER_SHARED-кошельке ledger2. Подробнее...
 
void consolidate_share_to_main (name coopname, name username, name wallet_name, asset amount, checksum256 exit_hash)
 Консолидация доступного паевого кошелька пайщика на главный (w.wal.share) перед резервом возврата при выходе. Подробнее...
 
void finalize_member_exit (name coopname, name username)
 Финализация выхода: удаление пайщика из реестра совета и блокировка аккаунта в registrator. Подробнее...
 
eosio::asset get_registration_pending_balance (eosio::name coopname, eosio::name username)
 Баланс кандидата на суспенс-кошельке регистрационного взноса (w.reg.pend, счёт 76) из ledger2 L3 (userwallets). Запись существует только пока available > 0 (auto-delete на нуле), поэтому отсутствие = нулевой баланс. Подробнее...
 

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

Вспомогательные функции процедуры выхода пайщика из кооператива.

Вынесены в отдельный заголовок (а не в table_registrator_exits.hpp), т.к. опираются на ledger2-кошельки и userwallets, которые подключаются позже в domain/index.hpp. Подключается в registrator.cpp перед exit-экшенами, когда весь lib/index.hpp уже доступен.

Типы

◆ candidates_index

typedef multi_index< "candidates2"_n, candidate, indexed_by<"byhash"_n, const_mem_fun<candidate, checksum256, &candidate::by_hash> > > Registrator::candidates_index

◆ candidates_legacy_index

typedef multi_index< "candidates"_n, candidate_legacy, indexed_by<"byhash"_n, const_mem_fun<candidate_legacy, checksum256, &candidate_legacy::by_hash> > > Registrator::candidates_legacy_index

◆ exits_index

typedef multi_index< "exits"_n, exit, indexed_by<"byhash"_n, const_mem_fun<exit, checksum256, &exit::by_hash> > > Registrator::exits_index

Функции

◆ consolidate_share_to_main()

void Registrator::consolidate_share_to_main ( name  coopname,
name  username,
name  wallet_name,
asset  amount,
checksum256  exit_hash 
)
inline

Консолидация доступного паевого кошелька пайщика на главный (w.wal.share) перед резервом возврата при выходе.

Главный кошелёк (w.wal.share) уже целевой — перенос не нужен. Для остальных кошельков сета LEDGER2_EXIT_REFUND_WALLETS применяется операция переноса на главный: w.reg.minshr → o.reg.mvmin (MOVE_MINSHARE); w.cap.blago → o.cap.wthcap (WITHDRAW_FROM_CAPITAL).

Кошелёк сета без операции переноса (новый паевой кошелёк забыли смаппить) валит транзакцию с явным сообщением — защита от тихой потери средств.

◆ finalize_member_exit()

void Registrator::finalize_member_exit ( name  coopname,
name  username 
)
inline

Финализация выхода: удаление пайщика из реестра совета и блокировка аккаунта в registrator.

Вызывается по завершении возврата паевого взноса (completexit) либо сразу, если возвращать нечего (нулевой паевой). После этого get_participant_or_fail для пайщика начинает падать — он лишён права подавать заявления.

◆ get_active_participants_count()

uint64_t Registrator::get_active_participants_count ( name  coopname)
inline

◆ get_candidate_by_hash()

std::optional< candidate > Registrator::get_candidate_by_hash ( name  coopname,
const checksum256 &  hash 
)
inline

◆ get_exit_by_hash()

std::optional< exit > Registrator::get_exit_by_hash ( name  coopname,
const checksum256 &  hash 
)
inline

◆ get_registration_pending_balance()

eosio::asset Registrator::get_registration_pending_balance ( eosio::name  coopname,
eosio::name  username 
)
inline

Баланс кандидата на суспенс-кошельке регистрационного взноса (w.reg.pend, счёт 76) из ledger2 L3 (userwallets). Запись существует только пока available > 0 (auto-delete на нуле), поэтому отсутствие = нулевой баланс.

◆ get_user_wallet_available()

asset Registrator::get_user_wallet_available ( name  coopname,
name  wallet_name,
name  username 
)
inline

Доступный L3-баланс пайщика на USER_SHARED-кошельке ledger2.

Возвращает available (без blocked) пары (wallet_name, username) из таблицы userwallets контракта ledger2. Если записи нет — нулевая сумма в базовой валюте управления.