COOPENOMICS  v1
Кооперативная Экономика
Финализация проекта

Процесс финализации проекта после завершения всех конвертаций участников

Процесс финализации проекта после завершения всех конвертаций участников

Процесс финализирует проект после того, как все участники завершили конвертацию своих сегментов, возвращает неиспользованные инвестиции в глобальный пул программы и устанавливает финальный статус проекта.

Назначение процесса

После завершения проекта и конвертации всех сегментов участников необходимо:

Диаграмма процесса

sequenceDiagram participant К as Кооператив participant C as Capital Contract participant P as Проект participant GP as Глобальный Пул К->>C: finalizeproj(project_hash) Note over C: Проверка статуса RESULT C->>P: Проверка счётчика конвертаций Note over P: total_converted_segments == total_unique_participants C->>C: Расчёт неиспользованной дельты Note over C: unused = total_received - total_used - expenses_used alt Есть неиспользованные средства C->>C: returntopool (inline action) C->>GP: Возврат средств в пул Note over GP: Средства доступны для новых аллокаций end C->>P: Установка статуса FINALIZED Note over P: Проект финализирован

Пошаговое описание процесса

Шаг 1: Вызов финализации проекта

Действие: финализация проекта

Кооператив вызывает действие финализации после того, как все участники завершили конвертацию своих сегментов.

Проверки:

Шаг 2: Расчёт неиспользованной дельты

Система рассчитывает неиспользованную дельту инвестиций по формуле:

\[ unused_{delta} = total_{received} - total_{used\_for\_compensation} - used_{expense\_pool} \]

где:

Что включает неиспользованная дельта:

  1. Инвестиции, не использованные для компенсации участникам (если участники направили средства в программу/проект)
  2. Зарезервированные на расходы, но не потраченные средства (accumulated_expense_pool - used_expense_pool)

Шаг 3: Возврат средств в глобальный пул

Действие: возврат средств в пул (inline action)

Если неиспользованная дельта > 0, система:

Преимущества inline action:

Шаг 4: Установка финального статуса

Система устанавливает статус проекта на FINALIZED:

Отслеживание конвертаций

Для отслеживания завершения конвертаций всеми участниками используются счётчики:

При каждом вызове convertsegm счётчик total_converted_segments инкрементируется. Финализация возможна только когда total_converted_segments >= total_unique_participants.

Результат процесса

После успешной финализации:

  1. Все участники завершили конвертацию своих сегментов
  2. Неиспользованные инвестиции возвращены в глобальный пул
  3. Проект находится в финальном статусе FINALIZED
  4. Средства доступны для аллокации в новые проекты
См. также
capital::finalizeproj
capital::returntopool
capital::convertsegm