Ревью PR#402 (debtpaycnfrm:23): учёт займов должен быть централизован в одном контракте, как Gateway для платежей. Существующий контракт loan/ уже задеплоен и в whitelist, но capital его не вызывал — теперь вызывает. loan-контракт: — table_loan_debts: добавлено поле project_hash (binary_extension<checksum256> — таблица уже в продакшене, расширение схемы только хвостом) + индекс byuserproj — Loan::create_debt: новая сигнатура с project_hash; createdebt сохраняет привязку к проекту — Loan::count_user_project_debts: хелпер для лимита займов на проект в паевом взносе capital: — debtpaycnfrm: после confirm_paid дублирует запись в loan.debts через inline Loan::create_debt (с due_at из обновлённой capital-записи и project_hash) — settledebt: дополнительно зовёт inline Loan::settle_debt; принимает также OVERDUE (не только PAID) — погашение просроченного через председателя — signact2 (паевой взнос): собирает все PAID/OVERDUE займы пайщика на проекте из capital.debts, проверяет лимит 10 (transaction limit EOSIO), на каждый — inline Loan::settle_debt + capital.Debts::mark_settled. Никакого «боевого взноса» — только паевой по интеллектуальному результату Boot/deploy не требует правок: loan/ уже в configs/contracts.ts и configs/index.ts, аккаунт loan создаётся, контракт деплоится. capital уже в contracts_whitelist в lib/consts. Тесты: добавлен describe «A2 — Централизованный учёт займов» с 6 it.todo по новым сценариям (createdebt в loan, settle через capital, лимит 10, whitelist). Полный перенос таблицы debts из capital в loan (с удалением capital.debts) — отдельная Story 1.12, оставлена на следующую итерацию: текущий PR сохраняет параллельный учёт в обеих таблицах для безопасной миграции прода.
Цифровой Кооператив
Платформа «Цифровой Кооператив» — комплексное программное обеспечение для управления кооперативными организациями на основе блокчейна EOSIO. Система обеспечивает полный цикл управления кооперативом: от регистрации пайщиков и электронного документооборота до проведения собраний и финансового учёта. Построена на принципах прозрачности, децентрализации и простой электронной подписи.
Проект является частью экосистемы Кооперативная Экономика.
Архитектура
| Компонент | Пакет | Описание |
|---|---|---|
| boot | @coopenomics/boot |
CLI для инициализации и управления блокчейн-инфраструктурой |
| cleos | @coopenomics/cleos |
Утилита командной строки для работы с блокчейн-кошельком |
| contracts | @coopenomics/contracts |
Смарт-контракты EOSIO на C++ |
| controller | @coopenomics/controller |
GraphQL API сервер (NestJS) |
| cooptypes | cooptypes |
Общие типы и интерфейсы блокчейн-контрактов |
| desktop | @coopenomics/desktop |
Рабочий стол кооператива (Vue 3 + Quasar) |
| factory | @coopenomics/factory |
Генератор юридических документов |
| migrator | migrator |
Утилита миграции данных |
| notifications | @coopenomics/notifications |
Библиотека уведомлений на основе Novu |
| parser | @coopenomics/parser |
Индексатор блокчейна через State History Plugin |
| sdk | @coopenomics/sdk |
TypeScript SDK для GraphQL API |
| setup | @coopenomics/setup |
Мастер первоначальной настройки |
Быстрый старт
Предварительные требования
- Node.js >= 20
- pnpm 9
- Docker и Docker Compose
- WeasyPrint (для генерации PDF)
Установка
pnpm install
Конфигурация
pnpm run setup
Интерактивный мастер создаст необходимые .env файлы для всех компонентов.
Запуск инфраструктуры
docker compose up -d
pnpm run reboot
Разработка
Бэкенд (controller + parser)
pnpm run dev:backend
Фронтенд (desktop)
pnpm run dev:desktop
Библиотеки (factory + cooptypes)
pnpm run dev:lib
Все сервисы одновременно
pnpm run dev:all
Примечание: установка пакетов производится только через фильтр:
pnpm add <пакет> --filter <компонент>
Тестирование
# Все тесты
pnpm run test
# Юнит-тесты (cooptypes, parser, notifications)
pnpm run test:unit
# Компонентные тесты (factory)
pnpm run test:component
# Интеграционные тесты (boot + blockchain)
pnpm run test:integration
Сборка
# Библиотеки (cooptypes, factory)
pnpm run build:lib
# Смарт-контракты
pnpm run build:contracts:all
# Desktop (SSR)
pnpm --filter @coopenomics/desktop run build
Лицензия
Продукт Потребительского Кооператива «ВОСХОД» распространяется по лицензии BY-NC-SA 4.0.
Разрешено делиться, копировать и распространять материал, адаптировать и создавать производные произведения при условии указания авторства и сохранения той же лицензии. Коммерческое использование запрещено.