|
COOPENOMICS
v1
Кооперативная Экономика
|
#include <array>#include <cstdint>#include <string_view>#include <eosio/eosio.hpp>Классы | |
| struct | ledger2_wallets |
| Стандарт кошельков ledger2 (пересмотр 2026-05-05 — финальный реестр + WalletKind). Подробнее... | |
| struct | Ledger2WalletMeta |
| Справочник кошелька: machine name → human-readable name + kind. Подробнее... | |
| struct | Ledger2WalletProgramMapping |
Маппинг USER_SHARED-кошелька → требуемый program_id для cross-contract проверки wallet::users.programs[] (ADR-004; Story 3.2). Подробнее... | |
Пространства имен | |
| namespace | ledger2_wallets_detail |
Перечисления | |
| enum class | WalletKind : uint8_t { USER_SHARED = 0 , COOPERATIVE = 1 } |
| Тип кошелька второго уровня (ADR-002). Подробнее... | |
Функции | |
| constexpr uint8_t | ledger2_wallets_detail::decode_char_at (uint64_t value, size_t pos) |
| constexpr bool | ledger2_wallets_detail::wallet_names_unique () |
| constexpr bool | ledger2_wallets_detail::wallet_names_nonempty () |
| constexpr bool | ledger2_wallets_detail::user_shared_naming_convention () |
| constexpr std::string_view | ledger2_get_wallet_human_name (eosio::name wallet_name) |
| Возвращает human-readable имя кошелька по его eosio::name. Подробнее... | |
| constexpr bool | ledger2_is_known_wallet (eosio::name wallet_name) |
Проверяет, что wallet_name присутствует в LEDGER2_WALLET_REGISTRY. Подробнее... | |
| uint64_t | ledger2_required_program_id (eosio::name wallet_name) |
| Возвращает required program_id для USER_SHARED-кошелька. Подробнее... | |
| WalletKind | ledger2_get_wallet_kind (eosio::name wallet_name) |
Возвращает WalletKind кошелька по его eosio::name (ADR-002, ADR-010). Подробнее... | |
Переменные | |
| constexpr std::array< Ledger2WalletMeta, 26 > | LEDGER2_WALLET_REGISTRY |
| static constexpr size_t | LEDGER2_WALLET_REGISTRY_SIZE = LEDGER2_WALLET_REGISTRY.size() |
| static constexpr uint8_t | ledger2_wallets_detail::CHAR_DOT = 0 |
| static constexpr uint8_t | ledger2_wallets_detail::CHAR_W = 28 |
| constexpr std::array< Ledger2WalletProgramMapping, 12 > | LEDGER2_USER_SHARED_PROGRAM_MAPPING |
| constexpr std::array< eosio::name, 3 > | LEDGER2_EXIT_REFUND_WALLETS |
Сет «боевых» (паевых) кошельков пайщика, возвращаемых при выходе из кооператива (заявление registry 200 → одобрение совета confirmexit). Подробнее... | |
|
strong |
Тип кошелька второго уровня (ADR-002).
USER_SHARED — обязателен L3-разрез по пайщику (ledger2::userwallets), walletop требует параметр username (Эпик 3). COOPERATIVE — единый кооперативный баланс, без L3.
WalletKind обязателен для каждой записи LEDGER2_WALLET_REGISTRY (поле без default — попытка добавить элемент без kind ломает сборку).
| Элементы перечислений | |
|---|---|
| USER_SHARED | |
| COOPERATIVE | |
|
inlineconstexpr |
Возвращает human-readable имя кошелька по его eosio::name.
Возвращает пустой string_view для незарегистрированных имён и для пустого имени (sentinel — кошелёк вне системы при ISSUE/BURN).
|
inline |
Возвращает WalletKind кошелька по его eosio::name (ADR-002, ADR-010).
Для имени, отсутствующего в реестре — eosio::check(false, ...) (фейлит tx). Используется на runtime-write-путях, прежде всего в Эпике 3 при walletop с username (валидация подмножества L3 ⊆ L2 USER_SHARED). Здесь же — общий доступ к классификации.
|
inlineconstexpr |
Проверяет, что wallet_name присутствует в LEDGER2_WALLET_REGISTRY.
|
inline |
Возвращает required program_id для USER_SHARED-кошелька.
Возвращает 0 если:
Если кошелёк USER_SHARED, но его нет в маппинге — eosio::check(false, ...) (защита от добавления нового USER_SHARED-кошелька без соответствующей записи в маппинге).
|
inlineconstexpr |
Сет «боевых» (паевых) кошельков пайщика, возвращаемых при выходе из кооператива (заявление registry 200 → одобрение совета confirmexit).
Единый источник истины для суммы возврата. При одобрении выхода советом registrator::confirmexit обходит этот сет в цикле, аккумулирует доступный L3-баланс пайщика по каждому кошельку (>0), консолидирует на главный паевой (w.wal.share) и ставит всю сумму на возврат единым платежом. Тот же сет генерируется в cooptypes (gen:from-cpp → wallets.generated.ts) и используется backend-preview, поэтому расчёт на фронте всегда совпадает с тем, что реально вернёт контракт.
Состав — только паевые/возвратные USER_SHARED-кошельки: w.reg.minshr — минимальный паевой взнос; w.wal.share — целевой паевой взнос (ЦК); w.cap.blago — паевой взнос в ЦПП «Благорост».
НЕ входят: w.wal.member (членский — невозвратный), w.exp.adv (подотчёт под расход), w.cap.gen (Генератор — COOPERATIVE, без L3-разреза по пайщику), w.cap.preimp (пред-импорт-учёт РИД).
Каждому не-главному кошельку сета должна соответствовать операция переноса на w.wal.share в Registrator::consolidate_share_to_main (exit_helpers.hpp) — иначе runtime упадёт с явным сообщением (защита от тихой потери средств).
|
inlineconstexpr |
|
inlineconstexpr |
|
staticconstexpr |