COOPENOMICS  v1
Кооперативная Экономика
Файл operations.hpp
#include <array>
#include <cstdint>
#include <string_view>
#include <eosio/eosio.hpp>
#include "accounts.hpp"
#include "processes.hpp"
#include "wallets.hpp"

См. исходные тексты.

Классы

struct  OperationRegistryEntry
 Описание одной именованной операции. Подробнее...
 
struct  OperationAdjustmentEntry
 

Пространства имен

namespace  operations
 Реестр именованных операций ledger2 (operation registry).
 
namespace  operations::registrator
 
namespace  operations::wallet
 
namespace  operations::capital
 
namespace  operations::marketplace
 
namespace  operations::soviet
 
namespace  operations::migration
 
namespace  operations::adjustment
 
namespace  ledger2_registry_detail
 

Перечисления

enum class  WalletOp : uint8_t {
  ISSUE = 0 , TRANSFER = 1 , BLOCK = 2 , UNBLOCK = 3 ,
  WALLET_ONLY = 4 , REVOKE = 5
}
 Элементарные операции по кошелькам. Подробнее...
 

Функции

constexpr bool ledger2_registry_detail::operation_codes_unique ()
 
constexpr bool ledger2_registry_detail::dr_ne_cr_when_posting ()
 
constexpr bool ledger2_registry_detail::wallet_only_has_zero_accounts ()
 
constexpr bool ledger2_registry_detail::transfer_wallet_from_ne_to ()
 
constexpr bool ledger2_registry_detail::accounts_exist_in_map ()
 
constexpr bool ledger2_registry_detail::wallets_exist_in_registry ()
 
const OperationRegistryEntryfind_operation (eosio::name operation_code)
 Линейный поиск записи реестра по operation_code. Подробнее...
 
constexpr const OperationAdjustmentEntryfind_adjustment (eosio::name operation_code)
 

Переменные

constexpr eosio::name operations::registrator::PAY_ENTRANCE = "o.reg.payent"_n
 Оплата вступительного взноса (Dr 51 / Cr 86, ISSUE ENTRANCE_FEES). Подробнее...
 
constexpr eosio::name operations::registrator::PUT_MINSHARE = "o.reg.putmin"_n
 Внесение минимального паевого при регистрации (Dr 51 / Cr 80, ISSUE MIN_SHARE_FUND). Подробнее...
 
constexpr eosio::name operations::wallet::COMPLETE_DEPOSIT = "o.wal.depcpl"_n
 Завершение внесения паевого взноса (Dr 51 / Cr 80, ISSUE SHARE_FUND_PAY). Подробнее...
 
constexpr eosio::name operations::wallet::COMPLETE_WITHDRAW = "o.wal.wthcpl"_n
 Завершение возврата паевого взноса (Dr 80 / Cr 51, TRANSFER SHARE_FUND_PAY → WITHDRAWALS_SINK). Подробнее...
 
constexpr eosio::name operations::capital::IMPORT = "o.cap.import"_n
 Оффлайн-импорт пайщика Благорост (Dr 51 / Cr 80, ISSUE BLAGOROST_INVEST). Подробнее...
 
constexpr eosio::name operations::capital::INVEST = "o.cap.invest"_n
 Инвестиция в ЦПП Благорост (WALLET_ONLY TRANSFER 2001 → 9001). Подробнее...
 
constexpr eosio::name operations::capital::COMMIT_RID = "o.cap.commit"_n
 Коммит РИД (Dr 08 / Cr 80, ISSUE GENERATOR_COMMIT). Подробнее...
 
constexpr eosio::name operations::capital::ACCEPT_RID = "o.cap.accept"_n
 Приём РИД в НМА (Dr 04 / Cr 08, TRANSFER GENERATOR_COMMIT → BLAGOROST_RID). Подробнее...
 
constexpr eosio::name operations::capital::ACCEPT_PROPERTY = "o.cap.actprp"_n
 Акт-2 имущественный паевой взнос (Dr 51 / Cr 80, ISSUE BLAGOROST_PROPERTY). Подробнее...
 
constexpr eosio::name operations::capital::LEND = "o.cap.lend"_n
 Выдача беспроцентного займа пайщику (Dr 58 / Cr 51, ISSUE LOAN_ISSUED). Подробнее...
 
constexpr eosio::name operations::capital::REPAY = "o.cap.repay"_n
 Возврат займа пайщика по акту-2 (Dr 80 / Cr 58, TRANSFER LOAN_ISSUED → SHARE_FUND_PAY). Подробнее...
 
constexpr eosio::name operations::marketplace::CONFIRM_SUPPLY = "o.mkt.supply"_n
 Подтверждение поставки (Dr 51 / Cr 80, ISSUE SHARE_FUND_PAY). Подробнее...
 
constexpr eosio::name operations::marketplace::CONFIRM_RECEIPT = "o.mkt.recv"_n
 Подтверждение получения (Dr 80 / Cr 51, TRANSFER SHARE_FUND_PAY → SUPPLIER_PAYMENTS). Подробнее...
 
constexpr eosio::name operations::soviet::CONVERT_AXN = "o.sov.axncnv"_n
 Трансляция паевого взноса в членский (Dr 80 / Cr 86, TRANSFER SHARE_FUND_PAY → DELEGATE_FEES). Подробнее...
 
constexpr eosio::name operations::migration::MIN_SHARE = "o.mig.minshr"_n
 Перенос: минимальный паевой взнос (Dr 51 / Cr 80, ISSUE MIN_SHARE_FUND). Подробнее...
 
constexpr eosio::name operations::migration::SHARE = "o.mig.share"_n
 Перенос: остаток паевых деньгами (Dr 51 / Cr 80, ISSUE SHARE_FUND_PAY). Подробнее...
 
constexpr eosio::name operations::migration::ENTRY = "o.mig.entry"_n
 Перенос: вступительные (Dr 51 / Cr 86, ISSUE ENTRANCE_FEES). Подробнее...
 
constexpr eosio::name operations::migration::RID = "o.mig.rid"_n
 Перенос: РИД в НМА (Dr 04 / Cr 80, ISSUE SHARE_FUND_RID). Подробнее...
 
constexpr eosio::name operations::adjustment::WALMOVE = "o.adj.walmove"_n
 Перевод между кошельками внутри одного бух.счёта (без Dr/Cr). Подробнее...
 
constexpr eosio::name operations::adjustment::REVERSAL = "o.adj.rev"_n
 Откат операции: зеркальная проводка по operation_id. Подробнее...
 
static constexpr OperationRegistryEntry OPERATION_REGISTRY []
 Хардкод-реестр именованных операций. Подробнее...
 
static constexpr size_t OPERATION_REGISTRY_SIZE = sizeof(OPERATION_REGISTRY) / sizeof(OPERATION_REGISTRY[0])
 
constexpr std::array< OperationAdjustmentEntry, 2 > OPERATION_ADJUSTMENT_REGISTRY
 

Перечисления

◆ WalletOp

enum class WalletOp : uint8_t
strong

Элементарные операции по кошелькам.

WALLET_ONLY — новый тип (2026-04-20): TRANSFER между кошельками БЕЗ бухгалтерских проводок debit/credit. Используется, когда средства перемещаются между аналитическими разрезами одного счёта (пример: Цифровой Кошелёк 80 → инвестиционный Благорост 80 — в обоих случаях Cr 80, счёт не меняется, но wallet-аналитика — да).

Элементы перечислений
ISSUE 

первичный вход средств на кошелёк wallet_to

TRANSFER 

перемещение wallet_from → wallet_to (с Dr/Cr)

BLOCK 

available-=amount, blocked+=amount на wallet_from

UNBLOCK 

blocked-=amount, available+=amount на wallet_from

WALLET_ONLY 

TRANSFER wallet_from → wallet_to БЕЗ debit/credit inline-actions.

REVOKE 

изъятие amount с wallet_from без увеличения куда-либо (зеркало ISSUE для o.adj.rev)

Функции

◆ find_adjustment()

constexpr const OperationAdjustmentEntry * find_adjustment ( eosio::name  operation_code)
inlineconstexpr

◆ find_operation()

const OperationRegistryEntry * find_operation ( eosio::name  operation_code)
inline

Линейный поиск записи реестра по operation_code.

Переменные

◆ OPERATION_ADJUSTMENT_REGISTRY

constexpr std::array<OperationAdjustmentEntry, 2> OPERATION_ADJUSTMENT_REGISTRY
inlineconstexpr
Инициализатор
= {{
{ operations::adjustment::WALMOVE, processes::adjustment::CORRECTION, "Перевод между кошельками" },
}}
constexpr eosio::name REVERSAL
Откат операции: зеркальная проводка по operation_id.
Definition: operations.hpp:106
constexpr eosio::name WALMOVE
Перевод между кошельками внутри одного бух.счёта (без Dr/Cr).
Definition: operations.hpp:105
constexpr eosio::name CORRECTION
Ручная корректировка председателя (перевод между кошельками или откат операции).
Definition: processes.hpp:78

◆ OPERATION_REGISTRY

constexpr OperationRegistryEntry OPERATION_REGISTRY[]
staticconstexpr

Хардкод-реестр именованных операций.

Порядок записей не важен (линейный поиск в ledger2::apply).

◆ OPERATION_REGISTRY_SIZE

constexpr size_t OPERATION_REGISTRY_SIZE = sizeof(OPERATION_REGISTRY) / sizeof(OPERATION_REGISTRY[0])
staticconstexpr