Files
coopops 06c922abf1
Typecheck / desktop (pull_request) Failing after 8m30s
Typecheck / controller (pull_request) Failing after 7m54s
[C28-33][@ant] feat: фабричная переиспользуемость шасси расходов + кошельки расходов на столе совета + закрытие расхода + UX отчёта — зачем: шасси должно настраиваться на любой пул без правок контракта. EXPENSE_OPERATION_SETS в ledger2 (source_wallet → 5 кодов операций, compile-time валидация) — в expense.cpp нет захардкоженных кодов; реестр registerExpenseWallet: capital регистрирует пул из install.ts, стол совета рендерит страницу «Расходы» (WalletCard + проваливание в реестр пула); кнопка «Закрыть расход» (совет, REPORT_SUBMITTED → closeexp), роль мутации chairman/member; файлы расхода: регистронезависимый маппинг item_hash (чейн UPPER vs storage lower — документы «исчезали»), секция «Прочие документы»; отчёт: выбор файла = мгновенная загрузка + автоподача reportexp, дозагрузка дополняет отчёт, у кассира платёжка грузится без кнопки; source_wallet в СЗ-документе — w.cap.pgexp
2026-06-12 17:15:46 +00:00
..
2025-10-22 19:53:40 +05:00
2025-10-22 19:53:40 +05:00
2025-08-22 23:44:35 +05:00
2025-08-27 22:03:06 +05:00
2025-10-05 10:55:53 +05:00
2026-05-01 11:57:57 +00:00
2025-03-27 18:13:33 +05:00
2025-08-26 19:58:20 +05:00
2026-06-09 18:41:34 +00:00
2025-09-11 12:15:05 +05:00

⛓️ @coopenomics/contracts

Смарт-контракты EOSIO для кооперативного управления на блокчейне

Описание

Набор смарт-контрактов на C++, образующих протокол COOPENOMICS — операционную систему кооператива на блокчейне EOSIO. Контракты реализуют полный цикл управления: регистрация участников, голосование совета, паевые взносы, документооборот, финансовый учёт, маркетплейс и проведение собраний.

Архитектура контрактов следует принципам чистой архитектуры: app/ (оркестрация действий), domain/entity/ (сущности и таблицы), domain/core/ (межсущностная бизнес-логика).

Контракты

Контракт Назначение
soviet Совет кооператива — голосование, решения, повестки
registrator Регистрация и управление аккаунтами пользователей и организаций
capital Управление интеллектуальной капитализацией и паевыми взносами
wallet Финансовые операции — взносы и возвраты
draft Шаблоны документов и их переводы в блокчейне
gateway Платёжный шлюз — депозиты и выводы
fund Управление фондами кооператива
ledger Бухгалтерская книга кооператива
meet Общие собрания пайщиков
marketplace Маркетплейс товаров и услуг
branch Создание и управление кооперативными участками
contributor Управление вкладчиками
loan Управление займами

Установка

pnpm install --filter @coopenomics/contracts

Скрипты

Скрипт Описание
pnpm run build:all Компиляция всех контрактов
pnpm run build:all:test Компиляция всех контрактов в тестовом режиме
pnpm run build:one -- <имя> Компиляция одного контракта по имени
pnpm run enter Вход в Docker-контейнер для ручной сборки

Все скрипты запускаются из корня монорепозитория через фильтр: pnpm --filter @coopenomics/contracts run <скрипт>

Компиляция

Компиляция выполняется внутри Docker-контейнера с необходимым EOSIO CDT:

pnpm run enter          # Вход в контейнер сборки
mkdir build && cd build
cmake -DBUILD_TARGET= ..
make

Для компиляции с тестами:

cmake -DBUILD_TARGET= -DBUILD_TESTS=ON ..
make

Для компиляции одного контракта:

cmake -DBUILD_TARGET=fund ..
make

Архитектура

cpp/
├── soviet/                # Совет кооператива
│   ├── app/               # Оркестрация действий
│   └── domain/            # Бизнес-логика
│       ├── entity/        # Сущности, таблицы, индексы
│       └── core/          # Межсущностная логика
├── capital/               # Паевые взносы
├── registrator/           # Регистрация аккаунтов
├── wallet/                # Финансовые операции
├── draft/                 # Шаблоны документов
├── gateway/               # Платёжный шлюз
├── fund/                  # Фонды кооператива
├── ledger/                # Бухгалтерский учёт
├── meet/                  # Собрания пайщиков
├── marketplace/           # Маркетплейс
├── branch/                # Кооперативные участки
├── contributor/           # Вкладчики
└── loan/                  # Займы
build/
└── contracts/             # Скомпилированные .wasm и .abi файлы

Принципы чистой архитектуры

  • app/ — уровень приложения; действия, вызываемые контрактом, которые оркестрируют бизнес-логику
  • domain/entity/ — сущности с таблицами, индексами и простыми бизнес-функциями; запрещено вызывать другие сущности напрямую
  • domain/core/ — корневая бизнес-логика, объединяющая несколько сущностей

Тестирование

cd build
cmake -DBUILD_TARGET= -DBUILD_TESTS=ON ..
make
ctest --test-dir contracts/tests --output-on-failure

Выборочный тест одного контракта:

cmake -DBUILD_TARGET=fund -DTEST_TARGET=fund.tester.cpp ..
make
ctest --test-dir contracts/tests --output-on-failure

Лицензия

BY-NC-SA 4.0