---
description:
alwaysApply: false
---
Мне нужно, чтобы ты прошелся по контракту и разнес все действия по группам так, как это сделано в примере. Там:
- указано краткое описание того что происходит и к чему приводит
- указаны параметры и их описание
- указана группа public_actions и public_soviet_actions - для контракта совета, но у тебя может быть другой контракт 
- указан якорь для ссылок внешних в самом верху и с отступом
- указана требуемая авторизация
- если у действия есть проводки по кошельков или фондам - отметить их с помощью тега @post:
  * | Метод                  | Иконки         | Описание                              |
  * |:-----------------------|:---------------|:--------------------------------------|
  * | Wallet::add_available_funds    | `💰➕✅`        | Добавление доступных средств          |
  * | Wallet::sub_available_funds    | `💰➖✅`        | Уменьшение доступных средств            |
  * | Wallet::add_blocked_funds      | `💰➕🔒`        | Добавление заблокированных средств    |
  * | Wallet::sub_blocked_funds      | `💰➖🔒`        | Уменьшение заблокированных средств      |
  * 

  - Проводки по фондам - их тоже отметь с тегом @post
  * 
  * | Метод                  | Иконки         | Описание                              |
  * |:-----------------------|:---------------|:--------------------------------------|
  * | Ledger::add                    | `🏛️➕✅`        | Добавление средств в счет            |
  * | Ledger::sub                    | `🏛️➖✅`        | Уменьшение средств на счете            |
  * | Ledger::block                  | `🏛️🔒`         | Блокировка средств на счёте           |
  * | Ledger::unblock                | `🏛️🔓`         | Разблокирование средств на счёте      |

- если у действия есть входящий документ - отметить его также с помощью тега @post

Пример:
/**

 *
 * @brief Завершение голосования для конкретного участника по методу Водянова.
 * Рассчитывает полные итоговые суммы участника включая:
 * - Результаты голосования по Водянову: (сумма голосов + общая сумма распределения) / количество голосующих
 * - Фиксированные распределения: 61.8% авторских премий равно между авторами, 61.8% исполнительских премий прямо создателям
 * Обновляет сегмент участника с итоговыми суммами раздельно по пулам
 * @param coopname Наименование кооператива
 * @param username Наименование пользователя-участника голосования
 * @param project_hash Хеш проекта для которого завершается голосование
 * @ingroup public_actions
 * @ingroup public_capital_actions
 * @note Авторизация требуется от аккаунта: @p coopname
 */
void capital::calcvotes(name coopname, name username, checksum256 project_hash) {
    require_auth(coopname);
    
    // Получаем проект и проверяем состояние
    auto project = Capital::Projects::get_project_or_fail(coopname, project_hash);
    eosio::check(project.status == Capital::Projects::Status::COMPLETED, "Проект не в статусе завершенного голосования");
   ... и т.д. 


ВАЖНО: ВСЕ ДЕЙСТВИЯ НЕОБХОДИМО ДОКУМЕНТИРОВАТЬ В *.cpp файлах, не в .hpp!!!
ВАЖНО2: ПОСЛЕ ПРЕДЛОЖЕНИЯ @BRIEF ДОЛЖНА БЫТЬ ТОЧКА.