COOPENOMICS  v1
Кооперативная Экономика
registration_migration.hpp
См. документацию.
1#pragma once
2
3// ─────────────────────────────────────────────────────────────────────────────
4// ВРЕМЕННЫЙ МИГРАЦИОННЫЙ КОД — СНЯТЬ УСЛОВИЕ ПОСЛЕ 30.07.2026.
5//
6// На момент релиза двухфазного учёта регистрационного взноса (счёт 76,
7// кошелёк w.reg.pend) в системе могут быть «зависшие» кандидаты: их платёж
8// уже принят кассой (статус `payed`), но ПО СТАРОМУ пути — без операции
9// o.reg.inpay, то есть БЕЗ баланса на w.reg.pend.
10//
11// Когда совет вынесет по ним решение уже на новом контракте:
12// • confirmreg — нельзя делать TRANSFER с пустого w.reg.pend (упадёт
13// «недостаточно средств»); для таких кандидатов признаём взнос по-старому
14// прямым ISSUE (o.reg.putmin / o.reg.payent, Dr 51 / Cr 80|86).
15// • declinereg — возврата через ledger2 нет (как было раньше): on-chain
16// суспенса нет, банковский возврат оформляет бэкенд.
17//
18// Признак пути — наличие баланса кандидата на w.reg.pend (счёт 76):
19// > 0 → принят по новому пути (o.reg.inpay) → признание/возврат через 76;
20// == 0 → принят до релиза → старый путь.
21//
22// После 30.07.2026 (когда все зависшие на момент релиза кандидаты гарантированно
23// получат решение совета) этот файл и ветвления в confirmreg/declinereg убрать,
24// оставив только новый путь.
25// ─────────────────────────────────────────────────────────────────────────────
26
27namespace Registrator {
28
34 inline eosio::asset get_registration_pending_balance(eosio::name coopname, eosio::name username) {
35 userwallets_index user_wallets(_ledger2, coopname.value);
36 auto idx = user_wallets.get_index<"byuserwallet"_n>();
37 auto it = idx.find(combine_ids(ledger2_wallets::REGISTRATION_PENDING.value, username.value));
38 if (it == idx.end()) return eosio::asset(0, _root_govern_symbol);
39 return it->available;
40 }
41
42} // namespace Registrator
static constexpr eosio::symbol _root_govern_symbol
Definition: consts.hpp:231
static constexpr eosio::name _ledger2
Definition: consts.hpp:180
Вспомогательные функции процедуры выхода пайщика из кооператива.
Definition: table_registrator_candidates.hpp:13
eosio::asset get_registration_pending_balance(eosio::name coopname, eosio::name username)
Баланс кандидата на суспенс-кошельке регистрационного взноса (w.reg.pend, счёт 76) из ledger2 L3 (use...
Definition: registration_migration.hpp:34
static constexpr eosio::name REGISTRATION_PENDING
Регистрационный взнос в ожидании решения совета (суспенс счёта 76, USER_SHARED, без сверки соглашений...
Definition: wallets.hpp:56
eosio::multi_index< "userwallets"_n, userwallet, eosio::indexed_by<"byuserwallet"_n, eosio::const_mem_fun< userwallet, uint128_t, &userwallet::by_userwallet > >, eosio::indexed_by<"byuser"_n, eosio::const_mem_fun< userwallet, uint64_t, &userwallet::by_user > >, eosio::indexed_by<"bywallet"_n, eosio::const_mem_fun< userwallet, uint64_t, &userwallet::by_wallet > > > userwallets_index
Definition: table_ledger2_userwallets.hpp:46
static uint128_t combine_ids(const uint64_t &x, const uint64_t &y)
Definition: utils.hpp:7