COOPENOMICS  v1
Кооперативная Экономика
Действия

Функции

void capital::migrate ()
 Миграция контракта: синхронизация contributed_as_investor с балансом кошелька программы благороста Только кооператив voskhod: для каждого участника в contributors читается progwallet программы capital, contributed_as_investor выставляется равным available+blocked (как накопление при createpinv). Подробнее...
 
void capital::setconfig (name coopname, Capital::config config)
 Устанавливает или обновляет конфигурацию контракта для кооператива. Подробнее...
 
void capital::approvedebt (eosio::name coopname, eosio::name username, checksum256 debt_hash, document2 approved_statement)
 Одобряет долг в проекте Одобряет долг в проекте и создает повестку в совете: Подробнее...
 
void capital::createdebt (name coopname, name username, checksum256 project_hash, checksum256 debt_hash, asset amount, time_point_sec repaid_at, document2 statement)
 Создает долг в проекте Создает долг в проекте с проверкой доступности средств и отправляет на одобрение: Подробнее...
 
void capital::debtauthcnfr (eosio::name coopname, checksum256 debt_hash, document2 decision)
 Авторизует долг в проекте советом Авторизует долг в проекте советом и создает исходящий платеж: Подробнее...
 
void capital::debtpaycnfrm (name coopname, checksum256 debt_hash)
 Подтверждает оплату выданной ссуды. Подтверждает оплату выданной ссуды и переводит долг в статус PAID: Подробнее...
 
void capital::debtpaydcln (name coopname, checksum256 debt_hash, std::string reason)
 Отклоняет оплату долга Отклоняет оплату долга и удаляет его из базы данных: Подробнее...
 
void capital::declinedebt (name coopname, eosio::name username, checksum256 debt_hash, std::string reason)
 Отклоняет долг в проекте Отклоняет долг в проекте и восстанавливает доступные средства: Подробнее...
 
void capital::settledebt (name coopname, name username, eosio::asset amount, document2 statement)
 Погашает долг участника Погашает долг участника в системе кооператива: Подробнее...
 
void capital::fundprog (eosio::name coopname, asset amount, std::string memo)
 Финансирует программу благороста Финансирует программу благороста из внешних источников: Подробнее...
 
void capital::refreshprog (name coopname, name username)
 Обновляет CRPS пайщика в программе благороста Обновляет CRPS (систему вознаграждений программы) пайщика: Подробнее...
 
void capital::approvewthd3 (name coopname, name approver, checksum256 withdraw_hash, document2 approved_return_statement)
 Одобряет заявку на возврат из программы благороста Одобряет заявку на возврат из программы благороста и отправляет в совет: Подробнее...
 
void capital::capauthwthd3 (eosio::name coopname, checksum256 withdraw_hash, document2 authorization)
 Авторизует возврат из программы благороста советом Авторизует возврат из программы благороста советом и выполняет операции с балансами: Подробнее...
 
void capital::capdeclwthd3 (name coopname, checksum256 withdraw_hash, std::string reason)
 Отклоняет возврат из программы благороста советом Отклоняет возврат из программы благороста советом и возвращает средства: Подробнее...
 
void capital::createwthd3 (name coopname, name username, checksum256 withdraw_hash, asset amount, document2 return_statement)
 Создает заявку на возврат из программы благороста Создает заявку на возврат средств из программы благороста: Подробнее...
 
void capital::approveexpns (name coopname, name approver, checksum256 expense_hash, document2 approved_statement)
 Одобряет расход в проекте Одобряет расход в проекте и отправляет в совет: Подробнее...
 
void capital::capauthexpns (eosio::name coopname, checksum256 expense_hash, document2 authorization)
 Авторизует расход в проекте советом Авторизует расход в проекте советом и создает исходящий платеж: Подробнее...
 
void capital::capdeclexpns (eosio::name coopname, checksum256 expense_hash)
 Отклоняет расход в проекте советом Отклоняет расход в проекте советом и возвращает средства в пул: Подробнее...
 
void capital::createexpnse (eosio::name coopname, checksum256 expense_hash, checksum256 project_hash, name creator, asset amount, std::string description, document2 statement)
 Создает расход в проекте Создает расход в проекте с резервированием средств: Подробнее...
 
void capital::exppaycnfrm (eosio::name coopname, checksum256 expense_hash)
 Подтверждает оплату расхода Подтверждает оплату расхода и завершает процесс: Подробнее...
 
void capital::expandexpnss (name coopname, checksum256 project_hash, asset additional_expenses)
 Расширяет пул расходов проекта Увеличивает целевой размер пула расходов для активного проекта: Подробнее...
 
void capital::approvecmmt (eosio::name coopname, eosio::name master, checksum256 commit_hash)
 Одобряет коммит в проект Одобряет коммит от мастера проекта и обрабатывает все связанные операции: Подробнее...
 
void capital::createcmmt (eosio::name coopname, eosio::name username, checksum256 project_hash, checksum256 commit_hash, uint64_t creator_hours, std::string description, std::string meta)
 Создает коммит в проект Создает коммит с затраченным временем создателя и отправляет на одобрение: Подробнее...
 
void capital::declinecmmt (eosio::name coopname, eosio::name master, checksum256 commit_hash, std::string reason)
 Отклоняет коммит в проект Отклоняет коммит от мастера проекта и удаляет его из базы данных: Подробнее...
 
void capital::rfrshsegment (name coopname, checksum256 project_hash, name username)
 Обновляет сегмент участника через CRPS систему Обновляет сегмент участника проекта через систему CRPS: Подробнее...
 
void capital::regshare (name coopname, checksum256 project_hash, name username, eosio::asset user_shares)
 Добавляет участника в проект через CRPS систему Добавляет участника в проект через систему CRPS с автоматическими проверками: Подробнее...
 
void capital::allocate (eosio::name coopname, checksum256 project_hash, eosio::asset amount)
 Аллоцирует программные инвестиции в проект Аллоцирует средства из глобального пула программных инвестиций в проект: Подробнее...
 
void capital::diallocate (eosio::name coopname, checksum256 project_hash)
 Деаллоцирует неиспользованные программные инвестиции из проекта Деаллоцирует неиспользованные программные инвестиции из закрытого проекта: Подробнее...
 
void capital::createpinv (name coopname, name username, checksum256 invest_hash, asset amount, document2 statement)
 Создаёт и сразу принимает программную инвестицию В одной транзакции проверяет заявление, списывает сумму с доступного остатка главного кошелька, зачисляет её на кошелёк программы благороста (заблокировано), увеличивает пул доступных программных инвестиций и накопительный показатель инвестора contributed_as_investor у контрибьютора. Отдельное одобрение совета (ранее apprvpinv) и отклонение (declpinv) не используются. Подробнее...
 
void capital::createinvest (name coopname, name username, checksum256 project_hash, checksum256 invest_hash, asset amount, document2 statement)
 Создает инвестицию в проект Создает инвестицию в проект и проводит все связанные операции: Подробнее...
 
void capital::editcontrib (eosio::name coopname, eosio::name username, eosio::asset rate_per_hour, uint64_t hours_per_day)
 Редактирование параметров участника Обновляет поля hours_per_day и about для существующего участника Подробнее...
 
void capital::dclineappndx (eosio::name coopname, eosio::name username, checksum256 appendix_hash, std::string reason)
 Отклоняет приложение к договору УХД Отклоняет приложение к договору УХД и удаляет его из базы: Подробнее...
 
void capital::getclearance (eosio::name coopname, eosio::name username, checksum256 project_hash, checksum256 appendix_hash, document2 document)
 Подписывает приложение к договору УХД для участия в проекте Создает приложение к договору УХД для участия пайщика в проекте: Подробнее...
 
void capital::importcontrib (eosio::name coopname, eosio::name username, checksum256 contributor_hash, eosio::asset contribution_amount, std::string memo)
 Импорт внешнего участника с автоматическим созданием записи и внесением взносов Создает запись участника в системе благороста для внешних участников кооператива: Подробнее...
 
void capital::lvlnotify (eosio::name coopname, eosio::name username, uint32_t prev_level, uint32_t new_level)
 Отправляет уведомление о переходе участника на новый уровень Inline action для уведомления системы о достижении участником нового уровня: Подробнее...
 
void capital::refreshcontr (eosio::name coopname, eosio::name username)
 Обновляет энергию участника с учетом естественного снижения Применяет decay к энергии участника на основе прошедшего времени: Подробнее...
 
void capital::approvereg (eosio::name coopname, eosio::name username, checksum256 contributor_hash, document2 contract)
 Принимает принятый председателем договор УХД и активирует участника по нему Активирует пайщика в системе кооператива после одобрения договора УХД: Подробнее...
 
void capital::declinereg (eosio::name coopname, eosio::name username, checksum256 contributor_hash, std::string reason)
 Отклоняет председателем договор УХД и удаляет участника из базы Отклоняет регистрацию участника и удаляет его из системы кооператива: Подробнее...
 
void capital::regcontrib (eosio::name coopname, eosio::name username, checksum256 contributor_hash, eosio::asset rate_per_hour, uint64_t hours_per_day, bool is_external_contract, document2 storage_agreement, std::optional< document2 > contract, std::optional< document2 > blagorost_agreement, std::optional< document2 > generator_agreement)
 Регистрация пайщика в контракте и получение договора УХД от него Создает нового пайщика в системе кооператива с указанными параметрами: Подробнее...
 
void capital::addauthor (name coopname, checksum256 project_hash, name author)
 Добавляет автора проекта Добавляет нового автора к проекту с авторскими долями: Подробнее...
 
void capital::closeproject (name coopname, checksum256 project_hash)
 Закрывает проект от приёма инвестиций Переводит проект в статус закрытого для приема инвестиций: Подробнее...
 
void capital::cmpltvoting (name coopname, checksum256 project_hash)
 Завершает голосование Завершает процесс голосования и переводит проект в завершенный статус: Подробнее...
 
void capital::createproj (eosio::name coopname, checksum256 project_hash, checksum256 parent_hash, std::string title, std::string description, std::string invite, std::string meta, std::string data)
 Создаёт проект Выполняет проверки и создает новый проект в системе кооператива: Подробнее...
 
void capital::delproject (name coopname, checksum256 project_hash)
 Удаляет проект Удаляет проект из системы кооператива: Подробнее...
 
void capital::editproj (eosio::name coopname, checksum256 project_hash, std::string title, std::string description, std::string invite, std::string meta, std::string data)
 Редактирует проект Выполняет проверки и редактирует существующий проект в системе кооператива: Подробнее...
 
void capital::finalizeproj (name coopname, checksum256 project_hash)
 Финализирует проект после завершения всех конвертаций Финализирует проект и передаёт все неиспользованные инвестиции в глобальный фонд: Подробнее...
 
void capital::returntopool (name coopname, checksum256 project_hash, asset amount)
 Возвращает неиспользованные инвестиции в глобальный пул программы Трекинговое действие для возврата неиспользованной дельты инвестиций: Подробнее...
 
void capital::openproject (name coopname, checksum256 project_hash)
 Открывает проект на приём инвестиций Переводит проект в статус открытого для приема инвестиций: Подробнее...
 
void capital::setmaster (name coopname, checksum256 project_hash, name master)
 Устанавливает мастера проекта Назначает мастера для управления проектом: Подробнее...
 
void capital::setplan (name coopname, name master, checksum256 project_hash, uint64_t plan_creators_hours, asset plan_expenses, asset plan_hour_cost)
 Устанавливает плановые показатели проекта Рассчитывает плановые пулы (себестоимости, премии, инвестиции, расходы) на основании входных параметров: Подробнее...
 
void capital::startproject (name coopname, checksum256 project_hash)
 Запускает проект на приём коммитов Переводит проект в активный статус для приема коммитов: Подробнее...
 
void capital::startvoting (name coopname, checksum256 project_hash)
 Завершает проект и начинает голосование Переводит проект в статус голосования и инициализирует процесс: Подробнее...
 
void capital::stopproject (name coopname, checksum256 project_hash)
 Останавливает проект Переводит проект из активного статуса обратно в статус ожидания: Подробнее...
 
void capital::act1pgprp (eosio::name coopname, eosio::name username, checksum256 property_hash, document2 act)
 Подписывает акт 1 по программному имущественному взносу Подписывает первый акт по программному имущественному взносу участником: Подробнее...
 
void capital::act2pgprp (eosio::name coopname, eosio::name username, checksum256 property_hash, document2 act)
 Подписывает акт 2 по программному имущественному взносу и зачисляет в программу благороста Подписывает второй акт председателем и зачисляет имущество в программу благороста: Подробнее...
 
void capital::approvepgprp (eosio::name coopname, eosio::name username, checksum256 property_hash, document2 approved_statement)
 Принимает предложение по программному имущественному взносу председателем Принимает предложение по программному имущественному взносу и отправляет на рассмотрение совета: Подробнее...
 
void capital::authpgprp (eosio::name coopname, checksum256 property_hash, document2 decision)
 Авторизует предложение по программному имущественному взносу советом Авторизует предложение по программному имущественному взносу советом: Подробнее...
 
void capital::createpgprp (eosio::name coopname, eosio::name username, checksum256 property_hash, eosio::asset property_amount, std::string property_description, document2 statement)
 Создает предложение по программному имущественному взносу Создает предложение по программному имущественному взносу и отправляет на одобрение: Подробнее...
 
void capital::declinepgprp (eosio::name coopname, eosio::name username, checksum256 property_hash, std::string reason)
 Отклоняет предложение по программному имущественному взносу Отклоняет предложение по программному имущественному взносу и удаляет его из базы: Подробнее...
 
void capital::approvepjprp (eosio::name coopname, eosio::name username, checksum256 property_hash, document2 empty_document)
 Принимает предложение по имущественному взносу в проект Принимает предложение по имущественному взносу и обрабатывает связанные операции: Подробнее...
 
void capital::createpjprp (eosio::name coopname, eosio::name username, checksum256 project_hash, checksum256 property_hash, eosio::asset property_amount, std::string property_description)
 Создает предложение по имущественному взносу в проект Создает предложение по имущественному взносу в проект и отправляет на одобрение: Подробнее...
 
void capital::declinepjprp (eosio::name coopname, eosio::name username, checksum256 property_hash, std::string reason)
 Отклоняет предложение по имущественному взносу в проект Отклоняет предложение по имущественному взносу и удаляет его из базы: Подробнее...
 
void capital::convertsegm (eosio::name coopname, eosio::name username, checksum256 project_hash, checksum256 convert_hash, asset wallet_amount, asset capital_amount, document2 convert_statement)
 Конвертирует сегмент участника в кошелек и программу благороста Конвертирует сегмент участника в кошелек и капитал: Подробнее...
 
void capital::purgesegment (eosio::name coopname, eosio::name username, checksum256 project_hash)
 Очистка сегмента чистого инвестора Подробнее...
 
void capital::approverslt (eosio::name coopname, eosio::name username, checksum256 result_hash, document2 approved_statement)
 Одобряет результат участника председателем Одобряет результат участника и отправляет в совет: Подробнее...
 
void capital::authrslt (eosio::name coopname, checksum256 result_hash, document2 decision)
 Авторизует результат участника советом Авторизует результат участника советом: Подробнее...
 
void capital::declrslt (eosio::name coopname, checksum256 result_hash, std::string reason)
 Отклоняет результат участника советом Отклоняет результат участника советом и возвращает статус сегмента: Подробнее...
 
void capital::pushrslt (name coopname, name username, checksum256 project_hash, checksum256 result_hash, eosio::asset contribution_amount, eosio::asset debt_amount, document2 statement, std::vector< checksum256 > debt_hashes)
 Вносит результат участника в проект Вносит результат участника в завершенный проект с обработкой долгов и обновлением долей: Подробнее...
 
void capital::signact1 (eosio::name coopname, eosio::name username, checksum256 result_hash, document2 act)
 Подписывает акт 1 по результату участника Подписывает первый акт по результату участника: Подробнее...
 
void capital::signact2 (eosio::name coopname, eosio::name chairman, checksum256 result_hash, document2 act)
 Подписывает акт 2 по результату участника Подписывает второй акт председателем и завершает процесс принятия результата: Подробнее...
 
void capital::calcvotes (name coopname, name username, checksum256 project_hash)
 Завершение голосования для конкретного участника по методу Водянова Рассчитывает полные итоговые суммы участника включая: Подробнее...
 
void capital::submitvote (name coopname, name voter, checksum256 project_hash, std::vector< Capital::vote_input > votes)
 Подает голос по методу Водянова Участник распределяет общую голосующую сумму между остальными участниками: Подробнее...
 

Подробное описание

Функции

◆ act1pgprp()

void capital::act1pgprp ( eosio::name  coopname,
eosio::name  username,
checksum256  property_hash,
document2  act 
)

Подписывает акт 1 по программному имущественному взносу Подписывает первый акт по программному имущественному взносу участником:

  • Проверяет подлинность документа акта от участника
  • Получает предложение и валидирует его статус (должен быть authorized)
  • Проверяет права участника на подписание акта
  • Сохраняет первый акт
  • Обновляет статус на act1
    Аргументы
    coopnameНаименование кооператива
    usernameНаименование пользователя-участника
    property_hashХеш программного имущественного взноса
    actДокумент акта 1
    Заметки
    Авторизация требуется от аккаунта: coopname

◆ act2pgprp()

void capital::act2pgprp ( eosio::name  coopname,
eosio::name  username,
checksum256  property_hash,
document2  act 
)

Подписывает акт 2 по программному имущественному взносу и зачисляет в программу благороста Подписывает второй акт председателем и зачисляет имущество в программу благороста:

  • Проверяет что подписывает председатель
  • Проверяет подлинность документа акта от председателя
  • Получает предложение и валидирует его статус (должен быть act1)
  • Сохраняет второй акт и обновляет статус на act2
  • Начисляет заблокированные средства в кошелек программы благороста
  • Увеличивает паевой фонд через бухгалтерский учет
  • Удаляет предложение после успешной обработки
    Аргументы
    coopnameНаименование кооператива
    usernameНаименование пользователя-председателя
    property_hashХеш программного имущественного взноса
    actДокумент акта 2
    Заметки
    Авторизация требуется от аккаунта: coopname

◆ addauthor()

void capital::addauthor ( name  coopname,
checksum256  project_hash,
name  author 
)

Добавляет автора проекта Добавляет нового автора к проекту с авторскими долями:

  • Проверяет существование проекта
  • Валидирует что пользователь является участником проекта
  • Проверяет что пользователь еще не является автором
  • Проверяет лимит количества авторов
  • Добавляет автора как генератора с авторскими долями
    Аргументы
    coopnameНаименование кооператива
    project_hashХеш проекта
    authorНаименование пользователя-автора
    Заметки
    Авторизация требуется от аккаунта: coopname

◆ allocate()

void capital::allocate ( eosio::name  coopname,
checksum256  project_hash,
eosio::asset  amount 
)

Аллоцирует программные инвестиции в проект Аллоцирует средства из глобального пула программных инвестиций в проект:

  • Валидирует сумму для аллокации
  • Проверяет существование проекта
  • Аллоцирует средства из глобального пула в проект
    Аргументы
    coopnameНаименование кооператива
    project_hashХеш проекта для аллокации
    amountСумма для аллокации
    Заметки
    Авторизация требуется от аккаунта: coopname

◆ approvecmmt()

void capital::approvecmmt ( eosio::name  coopname,
eosio::name  master,
checksum256  commit_hash 
)

Одобряет коммит в проект Одобряет коммит от мастера проекта и обрабатывает все связанные операции:

  • Проверяет что одобрение идет от мастера проекта
  • Получает коммит
  • Обновляет или создает сегмент создателя
  • Распределяет авторские средства между всеми авторами проекта
  • Удаляет коммит после обработки
    Аргументы
    coopnameНаименование кооператива
    usernameНаименование пользователя, одобрившего коммит
    masterМастер проекта, одобряющий коммит
    commit_hashХеш коммита для одобрения
    Заметки
    Авторизация требуется от аккаунта: coopname

◆ approvedebt()

void capital::approvedebt ( eosio::name  coopname,
eosio::name  username,
checksum256  debt_hash,
document2  approved_statement 
)

Одобряет долг в проекте Одобряет долг в проекте и создает повестку в совете:

  • Получает долг
  • Обновляет статус долга на approved
  • Создает повестку в совете для рассмотрения долга
    Аргументы
    coopnameНаименование кооператива
    usernameНаименование пользователя, одобрившего долг
    debt_hashХеш долга для одобрения
    approved_statementОдобренное заявление о долге
    Заметки
    Авторизация требуется от контракта совета

◆ approveexpns()

void capital::approveexpns ( name  coopname,
name  approver,
checksum256  expense_hash,
document2  approved_statement 
)

Одобряет расход в проекте Одобряет расход в проекте и отправляет в совет:

  • Проверяет подлинность одобренного заявления
  • Валидирует статус расхода (должен быть created)
  • Проверяет что исполнитель является участником проекта
  • Одобряет расход (обновляет статус)
  • Отправляет в совет для рассмотрения
    Аргументы
    coopnameНаименование кооператива
    approverНаименование пользователя-одобряющего
    expense_hashХеш расхода для одобрения
    approved_statementОдобренное заявление о расходе
    Заметки
    Авторизация требуется от аккаунта: coopname

◆ approvepgprp()

void capital::approvepgprp ( eosio::name  coopname,
eosio::name  username,
checksum256  property_hash,
document2  approved_statement 
)

Принимает предложение по программному имущественному взносу председателем Принимает предложение по программному имущественному взносу и отправляет на рассмотрение совета:

  • Проверяет подлинность документа председателя
  • Получает предложение и валидирует его статус
  • Сохраняет одобренное заявление
  • Обновляет статус на approved
  • Отправляет на рассмотрение совета
    Аргументы
    coopnameНаименование кооператива
    usernameНаименование пользователя, одобрившего программный имущественный взнос
    property_hashХеш программного имущественного взноса для принятия
    approved_statementОдобренное заявление председателя
    Заметки
    Авторизация требуется от контракта совета

◆ approvepjprp()

void capital::approvepjprp ( eosio::name  coopname,
eosio::name  username,
checksum256  property_hash,
document2  empty_document 
)

Принимает предложение по имущественному взносу в проект Принимает предложение по имущественному взносу и обрабатывает связанные операции:

  • Получает предложение по имущественному взносу
  • Добавляет имущественный взнос к проекту
  • Обновляет или создает сегмент пропертора с имущественным взносом
  • Удаляет предложение после обработки
    Аргументы
    coopnameНаименование кооператива
    usernameНаименование пользователя, одобрившего имущественный взнос
    property_hashХеш имущественного взноса для принятия
    empty_documentПустой документ (не используется)
    Заметки
    Авторизация требуется от контракта совета

◆ approvereg()

void capital::approvereg ( eosio::name  coopname,
eosio::name  username,
checksum256  contributor_hash,
document2  contract 
)

Принимает принятый председателем договор УХД и активирует участника по нему Активирует пайщика в системе кооператива после одобрения договора УХД:

  • Проверяет подлинность договора УХД
  • Валидирует статус пайщика (должен быть PENDING)
  • Активирует пайщика и устанавливает принятый договор
  • Создает программный кошелек для пайщика если необходимо
    Аргументы
    coopnameИмя кооператива
    usernameНаименование пользователя, одобрившего регистрацию
    contributor_hashХэш контрибьютора
    contractДоговор УХД
    Заметки
    Авторизация требуется от контракта совета

◆ approverslt()

void capital::approverslt ( eosio::name  coopname,
eosio::name  username,
checksum256  result_hash,
document2  approved_statement 
)

Одобряет результат участника председателем Одобряет результат участника и отправляет в совет:

  • Проверяет подлинность одобренного заявления
  • Валидирует статус результата (должен быть created) и статус сегмента (должен быть statement)
  • Устанавливает одобренное заявление
  • Обновляет статус результата на approved
  • Обновляет статус сегмента на approved
  • Отправляет результат в совет
    Аргументы
    coopnameНаименование кооператива
    usernameНаименование пользователя, одобрившего результат
    result_hashХеш результата для одобрения
    approved_statementОдобренное заявление о результате
    Заметки
    Авторизация требуется от контракта совета

◆ approvewthd3()

void capital::approvewthd3 ( name  coopname,
name  approver,
checksum256  withdraw_hash,
document2  approved_return_statement 
)

Одобряет заявку на возврат из программы благороста Одобряет заявку на возврат из программы благороста и отправляет в совет:

  • Проверяет подлинность одобренного заявления о возврате
  • Получает объект возврата и обновляет его статус на approved
  • Отправляет заявку в совет для рассмотрения
    Аргументы
    coopnameНаименование кооператива
    approverНаименование пользователя-одобряющего
    withdraw_hashХеш заявки на возврат для одобрения
    approved_return_statementОдобренное заявление о возврате
    Заметки
    Авторизация требуется от аккаунта: coopname

◆ authpgprp()

void capital::authpgprp ( eosio::name  coopname,
checksum256  property_hash,
document2  decision 
)

Авторизует предложение по программному имущественному взносу советом Авторизует предложение по программному имущественному взносу советом:

  • Проверяет подлинность документа решения совета
  • Получает предложение и валидирует его статус (должен быть approved)
  • Сохраняет решение совета
  • Обновляет статус на authorized
    Аргументы
    coopnameНаименование кооператива
    property_hashХеш программного имущественного взноса для авторизации
    decisionДокумент решения совета
    Заметки
    Авторизация требуется от аккаунта: _soviet

◆ authrslt()

void capital::authrslt ( eosio::name  coopname,
checksum256  result_hash,
document2  decision 
)

Авторизует результат участника советом Авторизует результат участника советом:

  • Проверяет подлинность документа решения совета
  • Валидирует статус результата (должен быть approved) и статус сегмента (должен быть approved)
  • Устанавливает документ авторизации
  • Обновляет статус результата на authorized
  • Обновляет статус сегмента на authorized
    Аргументы
    coopnameНаименование кооператива
    result_hashХеш результата для авторизации
    decisionДокумент решения совета
    Заметки
    Авторизация требуется от аккаунта: _soviet

◆ calcvotes()

void capital::calcvotes ( name  coopname,
name  username,
checksum256  project_hash 
)

Завершение голосования для конкретного участника по методу Водянова Рассчитывает полные итоговые суммы участника включая:

  • Результаты голосования по Водянову: (сумма голосов + средняя сумма распределения) / количество голосующих
  • Фиксированные распределения: 61.8% авторских премий равно между авторами, 61.8% исполнительских премий прямо создателям Обновляет сегмент участника с итоговыми суммами раздельно по пулам
    Аргументы
    coopnameНаименование кооператива
    usernameНаименование пользователя-участника голосования
    project_hashХеш проекта для которого завершается голосование
    Заметки
    Авторизация требуется от аккаунта: coopname

◆ capauthexpns()

void capital::capauthexpns ( eosio::name  coopname,
checksum256  expense_hash,
document2  authorization 
)

Авторизует расход в проекте советом Авторизует расход в проекте советом и создает исходящий платеж:

  • Получает расход и валидирует его статус (должен быть approved)
  • Проверяет регистрацию пользователя
  • Авторизует расход (обновляет статус)
  • Создает объект исходящего платежа в gateway с коллбэком
    Аргументы
    coopnameНаименование кооператива
    expense_hashХеш расхода для авторизации
    authorizationДокумент авторизации совета
    Заметки
    Авторизация требуется от аккаунта: _soviet

◆ capauthwthd3()

void capital::capauthwthd3 ( eosio::name  coopname,
checksum256  withdraw_hash,
document2  authorization 
)

Авторизует возврат из программы благороста советом Авторизует возврат из программы благороста советом и выполняет операции с балансами:

  • Получает объект возврата
  • Списывает заблокированные средства из программы благороста
  • Добавляет доступные средства в кошелек программы
  • Удаляет объект возврата
    Аргументы
    coopnameНаименование кооператива
    withdraw_hashХеш заявки на возврат для авторизации
    authorizationДокумент авторизации совета
    Заметки
    Авторизация требуется от аккаунта: _soviet

◆ capdeclexpns()

void capital::capdeclexpns ( eosio::name  coopname,
checksum256  expense_hash 
)

Отклоняет расход в проекте советом Отклоняет расход в проекте советом и возвращает средства в пул:

  • Получает расход
  • Возвращает средства в пул расходов проекта
  • Удаляет запись расхода
    Аргументы
    coopnameНаименование кооператива
    expense_hashХеш расхода для отклонения
    Заметки
    Авторизация требуется от аккаунта: _soviet

◆ capdeclwthd3()

void capital::capdeclwthd3 ( name  coopname,
checksum256  withdraw_hash,
std::string  reason 
)

Отклоняет возврат из программы благороста советом Отклоняет возврат из программы благороста советом и возвращает средства:

  • Получает объект возврата
  • Возвращает средства обратно в capital_available через capital_wallet
  • Обновляет глобальное состояние (возвращает средства в доступные)
  • Удаляет заявку
    Аргументы
    coopnameНаименование кооператива
    withdraw_hashХеш заявки на возврат для отклонения
    reasonПричина отклонения возврата
    Заметки
    Авторизация требуется от аккаунта: _soviet

◆ closeproject()

void capital::closeproject ( name  coopname,
checksum256  project_hash 
)

Закрывает проект от приёма инвестиций Переводит проект в статус закрытого для приема инвестиций:

  • Проверяет существование проекта
  • Валидирует что проект открыт для инвестиций
  • Закрывает проект через доменную логику
    Аргументы
    coopnameНаименование кооператива
    project_hashХеш проекта для закрытия
    Заметки
    Авторизация требуется от аккаунта: coopname

◆ cmpltvoting()

void capital::cmpltvoting ( name  coopname,
checksum256  project_hash 
)

Завершает голосование Завершает процесс голосования и переводит проект в завершенный статус:

  • Проверяет существование проекта
  • Валидирует что проект в статусе voting
  • Проверяет что голосование завершено
  • Обновляет статус проекта на completed
    Аргументы
    coopnameНаименование кооператива
    project_hashХеш проекта для завершения голосования
    Заметки
    Авторизация требуется от аккаунта: coopname

◆ convertsegm()

void capital::convertsegm ( eosio::name  coopname,
eosio::name  username,
checksum256  project_hash,
checksum256  convert_hash,
asset  wallet_amount,
asset  capital_amount,
document2  convert_statement 
)

Конвертирует сегмент участника в кошелек и программу благороста Конвертирует сегмент участника в кошелек и капитал:

  • Проверяет статус сегмента: CONTRIBUTED (результат внесён через pushrslt)
  • Валидирует актуальность сегмента
  • Проверяет что долг уже погашен (если был)
  • Проверяет наличие средств для конвертации (с учетом погашенного долга)
  • Валидирует корректность сумм конвертации
  • Выполняет операции с балансами (кошелек, капитал)
  • Удаляет сегмент после конвертации

Для участников со смешанными ролями (инвестор + другие): investor_base уже в _capital_program, а интеллектуальные вклады в _source_program. Конвертация перемещает только неинвесторскую часть.

Аргументы
coopnameНаименование кооператива
usernameНаименование пользователя-участника
project_hashХеш проекта
convert_hashХеш конвертации
wallet_amountСумма для конвертации в кошелек
capital_amountСумма для конвертации в капитал
convert_statementЗаявление о конвертации
Заметки
Авторизация требуется от аккаунта: coopname

◆ createcmmt()

void capital::createcmmt ( eosio::name  coopname,
eosio::name  username,
checksum256  project_hash,
checksum256  commit_hash,
uint64_t  creator_hours,
std::string  description,
std::string  meta 
)

Создает коммит в проект Создает коммит с затраченным временем создателя и отправляет на одобрение:

  • Проверяет существование проекта и его активный статус
  • Валидирует активность основного договора УХД
  • Проверяет наличие приложения к проекту
  • Валидирует уникальность коммита по хешу
  • Проверяет положительность часов создателя
  • Рассчитывает сумму фактических затрат создателя
  • Вычисляет фактическое изменение сумм генерации
  • Создает коммит и отправляет на одобрение
    Аргументы
    coopnameНаименование кооператива
    usernameНаименование пользователя-создателя
    project_hashХеш проекта
    commit_hashХеш коммита
    creator_hoursКоличество часов создателя
    descriptionОписание коммита
    metaМетаданные коммита
    Заметки
    Авторизация требуется от аккаунта: coopname

◆ createdebt()

void capital::createdebt ( name  coopname,
name  username,
checksum256  project_hash,
checksum256  debt_hash,
asset  amount,
time_point_sec  repaid_at,
document2  statement 
)

Создает долг в проекте Создает долг в проекте с проверкой доступности средств и отправляет на одобрение:

  • Проверяет подлинность заявления о долге
  • Валидирует сумму долга
  • Проверяет существование участника в проекте
  • Валидирует актуальность сегмента (CRPS обновлен)
  • Проверяет доступность средств для ссуды
  • Обновляет debt_amount в сегменте
  • Создает долг во внутренней таблице
  • Создает аппрув для долга
    Аргументы
    coopnameНаименование кооператива
    usernameНаименование пользователя-заемщика
    project_hashХеш проекта
    debt_hashХеш долга
    amountСумма долга
    repaid_atДата погашения долга
    statementЗаявление о долге
    Заметки
    Авторизация требуется от аккаунта: coopname

◆ createexpnse()

void capital::createexpnse ( eosio::name  coopname,
checksum256  expense_hash,
checksum256  project_hash,
name  creator,
asset  amount,
std::string  description,
document2  statement 
)

Создает расход в проекте Создает расход в проекте с резервированием средств:

  • Проверяет подлинность заявления о расходе
  • Валидирует сумму расхода (положительная)
  • Проверяет что исполнитель является участником проекта
  • Валидирует уникальность расхода по хешу
  • Проверяет доступность средств в пуле расходов проекта
  • Резервирует средства в проекте
  • Создает запись расхода
    Аргументы
    coopnameНаименование кооператива
    expense_hashХеш расхода
    project_hashХеш проекта
    creatorНаименование пользователя-создателя расхода
    amountСумма расхода
    descriptionОписание расхода
    statementЗаявление о расходе
    Заметки
    Авторизация требуется от аккаунта: coopname

◆ createinvest()

void capital::createinvest ( name  coopname,
name  username,
checksum256  project_hash,
checksum256  invest_hash,
asset  amount,
document2  statement 
)

Создает инвестицию в проект Создает инвестицию в проект и проводит все связанные операции:

  • Проверяет подлинность заявления об инвестиции
  • Валидирует сумму инвестиции
  • Проверяет активность договора УХД и приложения к проекту
  • Валидирует статус проекта (открыт для инвестиций)
  • Списывает сумму с доступного остатка кошелька программы благороста
  • Добавляет инвестора как генератора с investor_base
  • Обновляет проект - добавляет инвестиции
  • Обрабатывает координаторские взносы если есть координатор
  • Зачисляет сумму на кошелёк программы благороста (заблокировано)
    Аргументы
    coopnameНаименование кооператива
    usernameНаименование пользователя-инвестора
    project_hashХеш проекта для инвестиции
    invest_hashХеш инвестиции
    amountСумма инвестиции
    statementЗаявление об инвестиции
    Заметки
    Авторизация требуется от аккаунта: coopname

◆ createpgprp()

void capital::createpgprp ( eosio::name  coopname,
eosio::name  username,
checksum256  property_hash,
eosio::asset  property_amount,
std::string  property_description,
document2  statement 
)

Создает предложение по программному имущественному взносу Создает предложение по программному имущественному взносу и отправляет на одобрение:

  • Проверяет подлинность документа-заявления
  • Валидирует активность основного договора УХД
  • Валидирует уникальность предложения по хешу
  • Валидирует сумму и описание имущества
  • Создает предложение и отправляет на одобрение
    Аргументы
    coopnameНаименование кооператива
    usernameНаименование пользователя-участника
    property_hashХеш программного имущественного взноса
    property_amountСтоимость имущества
    property_descriptionОписание имущества
    statementЗаявление об имущественном взносе
    Заметки
    Авторизация требуется от аккаунта: coopname

◆ createpinv()

void capital::createpinv ( name  coopname,
name  username,
checksum256  invest_hash,
asset  amount,
document2  statement 
)

Создаёт и сразу принимает программную инвестицию В одной транзакции проверяет заявление, списывает сумму с доступного остатка главного кошелька, зачисляет её на кошелёк программы благороста (заблокировано), увеличивает пул доступных программных инвестиций и накопительный показатель инвестора contributed_as_investor у контрибьютора. Отдельное одобрение совета (ранее apprvpinv) и отклонение (declpinv) не используются.

Аргументы
coopnameНаименование кооператива
usernameНаименование пользователя-инвестора
invest_hashХеш программной инвестиции
amountСумма инвестиции
statementЗаявление об инвестиции
Заметки
Авторизация требуется от аккаунта: coopname

◆ createpjprp()

void capital::createpjprp ( eosio::name  coopname,
eosio::name  username,
checksum256  project_hash,
checksum256  property_hash,
eosio::asset  property_amount,
std::string  property_description 
)

Создает предложение по имущественному взносу в проект Создает предложение по имущественному взносу в проект и отправляет на одобрение:

  • Проверяет существование проекта и его активный статус
  • Валидирует активность основного договора УХД
  • Проверяет наличие приложения к проекту
  • Валидирует уникальность предложения по хешу
  • Валидирует сумму и описание имущества
  • Создает предложение и отправляет на одобрение
    Аргументы
    coopnameНаименование кооператива
    usernameНаименование пользователя-участника
    project_hashХеш проекта
    property_hashХеш имущественного взноса
    property_amountСтоимость имущества
    property_descriptionОписание имущества
    Заметки
    Авторизация требуется от аккаунта: coopname

◆ createproj()

void capital::createproj ( eosio::name  coopname,
checksum256  project_hash,
checksum256  parent_hash,
std::string  title,
std::string  description,
std::string  invite,
std::string  meta,
std::string  data 
)

Создаёт проект Выполняет проверки и создает новый проект в системе кооператива:

  • Проверяет отсутствие проекта с указанным хешем
  • Валидирует родительский хеш согласно правилам проектов
  • Создает запись в таблице projects со статусом created
    Аргументы
    coopnameИмя кооператива (scope таблицы)
    project_hashУникальный хэш проекта
    parent_hashХэш родителя или пустой хэш, если проект корневой
    titleНазвание проекта
    descriptionОписание проекта
    inviteПриглашение к проекту
    metaДополнительные метаданные проекта
    dataДанные/шаблон проекта
    Заметки
    Авторизация требуется от аккаунта: coopname
    Для всех проектов требуется отдельная инициализация через capital::initprj

◆ createwthd3()

void capital::createwthd3 ( name  coopname,
name  username,
checksum256  withdraw_hash,
asset  amount,
document2  return_statement 
)

Создает заявку на возврат из программы благороста Создает заявку на возврат средств из программы благороста:

  • Проверяет подлинность заявления о возврате
  • Проверяет наличие баланса в программе благороста
  • Обновляет CRPS через capital_wallet
  • Проверяет уникальность заявки по хешу
  • Обрабатывает вывод средств через core функцию
  • Создает заявку на возврат
    Аргументы
    coopnameНаименование кооператива
    usernameНаименование пользователя-участника
    withdraw_hashХеш заявки на возврат
    amountСумма возврата
    return_statementЗаявление о возврате
    Заметки
    Авторизация требуется от аккаунта: coopname

◆ dclineappndx()

void capital::dclineappndx ( eosio::name  coopname,
eosio::name  username,
checksum256  appendix_hash,
std::string  reason 
)

Отклоняет приложение к договору УХД Отклоняет приложение к договору УХД и удаляет его из базы:

  • Проверяет существование приложения
  • Удаляет приложение из базы данных с указанием причины
    Аргументы
    coopnameНаименование кооператива
    usernameНаименование пользователя, отклонившего приложение
    appendix_hashХеш приложения к договору
    reasonПричина отклонения приложения
    Заметки
    Авторизация требуется от контракта совета

◆ debtauthcnfr()

void capital::debtauthcnfr ( eosio::name  coopname,
checksum256  debt_hash,
document2  decision 
)

Авторизует долг в проекте советом Авторизует долг в проекте советом и создает исходящий платеж:

  • Получает долг
  • Обновляет статус долга на authorized
  • Создает объект исходящего платежа в gateway с коллбэком
    Аргументы
    coopnameНаименование кооператива
    debt_hashХеш долга для авторизации
    decisionДокумент решения совета
    Заметки
    Авторизация требуется от аккаунта: _soviet

◆ debtpaycnfrm()

void capital::debtpaycnfrm ( name  coopname,
checksum256  debt_hash 
)

Подтверждает оплату выданной ссуды. Подтверждает оплату выданной ссуды и переводит долг в статус PAID:

Аргументы
coopnameНаименование кооператива
debt_hashХеш-идентификатор ссуды для подтверждения оплаты
Заметки
Авторизация требуется от аккаунта: _gateway

◆ debtpaydcln()

void capital::debtpaydcln ( name  coopname,
checksum256  debt_hash,
std::string  reason 
)

Отклоняет оплату долга Отклоняет оплату долга и удаляет его из базы данных:

  • Получает долг
  • Удаляет долг из базы данных с указанием причины
    Аргументы
    coopnameНаименование кооператива
    debt_hashХеш долга для отклонения оплаты
    reasonПричина отклонения оплаты долга
    Заметки
    Авторизация требуется от аккаунта: _gateway

◆ declinecmmt()

void capital::declinecmmt ( eosio::name  coopname,
eosio::name  master,
checksum256  commit_hash,
std::string  reason 
)

Отклоняет коммит в проект Отклоняет коммит от мастера проекта и удаляет его из базы данных:

  • Проверяет что отклонение идет от мастера проекта
  • Получает коммит
  • Удаляет коммит из базы данных с указанием причины
    Аргументы
    coopnameНаименование кооператива
    masterМастер проекта, отклоняющий коммит
    commit_hashХеш коммита для отклонения
    reasonПричина отклонения коммита
    Заметки
    Авторизация требуется от аккаунта: coopname

◆ declinedebt()

void capital::declinedebt ( name  coopname,
eosio::name  username,
checksum256  debt_hash,
std::string  reason 
)

Отклоняет долг в проекте Отклоняет долг в проекте и восстанавливает доступные средства:

  • Получает долг и участника
  • Проверяет существование сегмента
  • Уменьшает debt_amount в сегменте
  • Удаляет долг из базы данных
    Аргументы
    coopnameНаименование кооператива
    usernameНаименование пользователя, отклонившего долг
    debt_hashХеш долга для отклонения
    reasonПричина отклонения долга
    Заметки
    Авторизация требуется от контракта совета

◆ declinepgprp()

void capital::declinepgprp ( eosio::name  coopname,
eosio::name  username,
checksum256  property_hash,
std::string  reason 
)

Отклоняет предложение по программному имущественному взносу Отклоняет предложение по программному имущественному взносу и удаляет его из базы:

  • Получает предложение по программному имущественному взносу
  • Удаляет предложение из базы данных с указанием причины
    Аргументы
    coopnameНаименование кооператива
    usernameНаименование пользователя, отклонившего программный имущественный взнос
    property_hashХеш программного имущественного взноса для отклонения
    reasonПричина отклонения предложения
    Заметки
    Авторизация требуется от контракта совета

◆ declinepjprp()

void capital::declinepjprp ( eosio::name  coopname,
eosio::name  username,
checksum256  property_hash,
std::string  reason 
)

Отклоняет предложение по имущественному взносу в проект Отклоняет предложение по имущественному взносу и удаляет его из базы:

  • Получает предложение по имущественному взносу
  • Удаляет предложение из базы данных с указанием причины
    Аргументы
    coopnameНаименование кооператива
    usernameНаименование пользователя, отклонившего имущественный взнос
    property_hashХеш имущественного взноса для отклонения
    reasonПричина отклонения предложения
    Заметки
    Авторизация требуется от контракта совета

◆ declinereg()

void capital::declinereg ( eosio::name  coopname,
eosio::name  username,
checksum256  contributor_hash,
std::string  reason 
)

Отклоняет председателем договор УХД и удаляет участника из базы Отклоняет регистрацию участника и удаляет его из системы кооператива:

  • Проверяет существование участника по хешу
  • Валидирует статус участника (должен быть PENDING)
  • Удаляет участника из базы данных с указанием причины
    Аргументы
    coopnameИмя кооператива
    usernameНаименование пользователя, отклонившего регистрацию
    contributor_hashХэш контрибьютора
    reasonПричина отклонения
    Заметки
    Авторизация требуется от контракта совета

◆ declrslt()

void capital::declrslt ( eosio::name  coopname,
checksum256  result_hash,
std::string  reason 
)

Отклоняет результат участника советом Отклоняет результат участника советом и возвращает статус сегмента:

  • Валидирует статус результата (должен быть created, approved или authorized)
  • Валидирует статус сегмента (должен быть statement, approved или authorized)
  • Удаляет объект результата
  • Возвращает статус сегмента в ready для возможности повторного внесения результата
    Аргументы
    coopnameНаименование кооператива
    result_hashХеш результата для отклонения
    reasonПричина отклонения
    Заметки
    Авторизация требуется от аккаунта: _soviet

◆ delproject()

void capital::delproject ( name  coopname,
checksum256  project_hash 
)

Удаляет проект Удаляет проект из системы кооператива:

  • pending: только если коммитов ещё нет (total_commits == 0) и нет дочерних проектов-компонентов; удаляет сегменты и проект
  • result: если нет компонентов и все сегменты сконвертированы, удаляет проект
    Аргументы
    coopnameНаименование кооператива
    project_hashХеш проекта для удаления
    Заметки
    Авторизация требуется от аккаунта: coopname

◆ diallocate()

void capital::diallocate ( eosio::name  coopname,
checksum256  project_hash 
)

Деаллоцирует неиспользованные программные инвестиции из проекта Деаллоцирует неиспользованные программные инвестиции из закрытого проекта:

  • Проверяет что проект закрыт
  • Проверяет наличие неиспользованных программных средств
  • Рассчитывает неиспользованную сумму программных средств при коэффициенте > 100%
  • Возвращает неиспользованные программные средства в глобальный пул
    Аргументы
    coopnameНаименование кооператива
    project_hashХеш проекта для деаллокации
    Заметки
    Авторизация требуется от аккаунта: coopname

◆ editcontrib()

void capital::editcontrib ( eosio::name  coopname,
eosio::name  username,
eosio::asset  rate_per_hour,
uint64_t  hours_per_day 
)

Редактирование параметров участника Обновляет поля hours_per_day и about для существующего участника

Аргументы
coopnameНаименование кооператива
usernameНаименование пользователя-участника
hours_per_dayКоличество часов в день
aboutИнформация о себе
Заметки
Авторизация требуется от аккаунта: coopname

◆ editproj()

void capital::editproj ( eosio::name  coopname,
checksum256  project_hash,
std::string  title,
std::string  description,
std::string  invite,
std::string  meta,
std::string  data 
)

Редактирует проект Выполняет проверки и редактирует существующий проект в системе кооператива:

  • Проверяет существование проекта с указанным хэшем
  • Проверяет что проект не завершен
  • Обновляет указанные поля проекта
    Аргументы
    coopnameИмя кооператива (scope таблицы)
    project_hashУникальный хэш проекта для редактирования
    titleНовое название проекта
    descriptionНовое описание проекта
    inviteНовое приглашение к проекту
    metaНовые метаданные проекта
    dataНовые данные/шаблон проекта
    Заметки
    Авторизация требуется от аккаунта: coopname

◆ expandexpnss()

void capital::expandexpnss ( name  coopname,
checksum256  project_hash,
asset  additional_expenses 
)

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

  • Проверяет существование проекта
  • Валидирует что проект в активном состоянии
  • Валидирует дополнительные расходы (положительные)
  • Увеличивает целевой размер пула расходов через доменную логику
    Аргументы
    coopnameНаименование кооператива
    project_hashХеш проекта
    additional_expensesДополнительные расходы для добавления
    Заметки
    Авторизация требуется от аккаунта: coopname

◆ exppaycnfrm()

void capital::exppaycnfrm ( eosio::name  coopname,
checksum256  expense_hash 
)

Подтверждает оплату расхода Подтверждает оплату расхода и завершает процесс:

  • Получает расход и валидирует его статус (должен быть authorized)
  • Проверяет регистрацию пользователя
  • Обновляет used_expense_pool в проекте
  • Удаляет запись расхода
    Аргументы
    coopnameНаименование кооператива
    expense_hashХеш расхода для подтверждения оплаты
    Заметки
    Авторизация требуется от аккаунта: _gateway

◆ finalizeproj()

void capital::finalizeproj ( name  coopname,
checksum256  project_hash 
)

Финализирует проект после завершения всех конвертаций Финализирует проект и передаёт все неиспользованные инвестиции в глобальный фонд:

  • Проверяет что проект в статусе RESULT
  • Проверяет что все сегменты сконвертированы (нет оставшихся сегментов)
  • Рассчитывает неиспользованную дельту инвестиций на основе total_used_for_compensation
  • Передаёт неиспользованную дельту в глобальный пул программы кооператива
  • Устанавливает статус проекта на FINALIZED

Неиспользованные инвестиции включают:

  • Прямые инвестиции инвесторов (investor_amount), которые не были использованы проектом (средства инвесторов идут сразу в _capital_program, возврат инвесторам запрещён)
  • Аллоцированные программные средства, которые не были использованы
Аргументы
coopnameНаименование кооператива
project_hashХеш проекта для финализации
Заметки
Авторизация требуется от аккаунта: coopname
Экшен должен вызываться после того, как все участники выполнили convertsegm

◆ fundprog()

void capital::fundprog ( eosio::name  coopname,
asset  amount,
std::string  memo 
)

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

  • Валидирует сумму финансирования
  • Распределяет средства программы благороста
    Аргументы
    coopnameНаименование кооператива
    amountСумма финансирования
    memoМемо для транзакции
    Заметки
    Авторизация требуется от аккаунта: _soviet или _gateway

◆ getclearance()

void capital::getclearance ( eosio::name  coopname,
eosio::name  username,
checksum256  project_hash,
checksum256  appendix_hash,
document2  document 
)

Подписывает приложение к договору УХД для участия в проекте Создает приложение к договору УХД для участия пайщика в проекте:

  • Проверяет что пользователь подписал основной договор УХД
  • Валидирует уникальность приложения по хешу
  • Проверяет отсутствие существующего приложения для проекта
  • Создает приложение к договору УХД
  • Отправляет на одобрение председателю
    Аргументы
    coopnameНаименование кооператива
    usernameНаименование пользователя-пайщика
    project_hashХеш проекта для участия
    appendix_hashХеш приложения к договору
    documentДокумент приложения к договору
    Заметки
    Авторизация требуется от аккаунта: coopname

◆ importcontrib()

void capital::importcontrib ( eosio::name  coopname,
eosio::name  username,
checksum256  contributor_hash,
eosio::asset  contribution_amount,
std::string  memo 
)

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

  • Проверяет отсутствие конфигурации кооператива для возможности импорта
  • Валидирует сумму первоначальных взносов
  • Создает запись участника со статусом ACTIVE и внешним договором УХД
  • Открывает программный кошелек в программе благороста
  • Зачисляет первоначальные взносы с блокировкой средств
    Аргументы
    coopnameНаименование кооператива
    usernameНаименование импортируемого участника
    contributor_hashУникальный хеш для идентификации участника
    contribution_amountСумма первоначальных взносов в программу благороста
    memoМемо для импортированных участников
    Заметки
    Авторизация требуется от аккаунта: coopname
    Импорт возможен только до установки конфигурации кооператива
    Постусловие
    Создается запись участника со статусом IMPORT (завершение регистрации — отдельный процесс)
    Открывается программный кошелек в программе благороста
    Зачисляются первоначальные взносы с блокировкой средств
    contributed_as_investor задаётся при создании записи (см. import_contributor)

◆ lvlnotify()

void capital::lvlnotify ( eosio::name  coopname,
eosio::name  username,
uint32_t  prev_level,
uint32_t  new_level 
)

Отправляет уведомление о переходе участника на новый уровень Inline action для уведомления системы о достижении участником нового уровня:

  • Вызывается автоматически при достижении энергии 100%
  • Содержит информацию о предыдущем и новом уровне
  • Может использоваться внешними системами для отправки уведомлений
    Аргументы
    coopnameИмя кооператива
    usernameИмя участника, достигшего нового уровня
    prev_levelПредыдущий уровень участника
    new_levelНовый уровень участника
    Заметки
    Авторизация требуется от аккаунта: _capital (вызывается inline action)

◆ migrate()

void capital::migrate ( )

Миграция контракта: синхронизация contributed_as_investor с балансом кошелька программы благороста Только кооператив voskhod: для каждого участника в contributors читается progwallet программы capital, contributed_as_investor выставляется равным available+blocked (как накопление при createpinv).

Заметки
Авторизация требуется от аккаунта: _capital

◆ openproject()

void capital::openproject ( name  coopname,
checksum256  project_hash 
)

Открывает проект на приём инвестиций Переводит проект в статус открытого для приема инвестиций:

  • Проверяет существование проекта
  • Валидирует что проект еще не открыт
  • Открывает проект через доменную логику
    Аргументы
    coopnameНаименование кооператива
    project_hashХеш проекта для открытия
    Заметки
    Авторизация требуется от аккаунта: coopname

◆ purgesegment()

void capital::purgesegment ( eosio::name  coopname,
eosio::name  username,
checksum256  project_hash 
)

Очистка сегмента чистого инвестора

Метод для очистки сегмента чистого инвестора после завершения проекта.

Логика работы:

  • Проверяет что участник является чистым инвестором
  • Проверяет статус сегмента: READY или CONTRIBUTED
  • Валидирует актуальность сегмента
  • Проверяет что у инвестора нет долга
  • Удаляет сегмент (средства уже в _capital_program с момента createinvest)

ВАЖНО: Этот метод НЕ выполняет операции с балансами. Средства инвестора уже находятся в _capital_program (благорост) с момента инвестирования. Метод только удаляет запись о сегменте из таблицы.

Аргументы
coopnameНаименование кооператива
usernameНаименование пользователя-участника
project_hashХеш проекта
Заметки
Авторизация требуется от аккаунта: coopname
Только для чистых инвесторов (без других ролей)

◆ pushrslt()

void capital::pushrslt ( name  coopname,
name  username,
checksum256  project_hash,
checksum256  result_hash,
eosio::asset  contribution_amount,
eosio::asset  debt_amount,
document2  statement,
std::vector< checksum256 >  debt_hashes = {} 
)

Вносит результат участника в проект Вносит результат участника в завершенный проект с обработкой долгов и обновлением долей:

  • Проверяет подлинность заявления о результате
  • Валидирует входные параметры (суммы взноса и долга)
  • Проверяет завершенность проекта и актуальность сегмента
  • Валидирует сегмент участника и его статус
  • БЛОКИРУЕТ внесение результата для чистых инвесторов (они уже внесли средства при инвестировании)
  • Для участников с ролями инвестор+создатель/автор/координатор вычитает инвестиционную часть
  • Проверяет соответствие сумм взноса и долга
  • Создает объект результата
  • Обновляет сегмент после принятия результата и пересчитывает доли
  • Обновляет накопительные показатели контрибьютора
    Аргументы
    coopnameНаименование кооператива
    usernameНаименование пользователя-участника
    project_hashХеш проекта
    result_hashХеш результата
    contribution_amountСумма взноса в результат (БЕЗ инвестиционной части для инвесторов)
    debt_amountСумма долга для погашения
    statementЗаявление о результате
    debt_hashesВектор хэшей долгов для погашения (опционально)
    Заметки
    Авторизация требуется от аккаунта: coopname

◆ refreshcontr()

void capital::refreshcontr ( eosio::name  coopname,
eosio::name  username 
)

Обновляет энергию участника с учетом естественного снижения Применяет decay к энергии участника на основе прошедшего времени:

  • Проверяет авторизацию кооператива
  • Получает текущее состояние участника
  • Рассчитывает количество дней с последнего обновления
  • Применяет decay согласно настроенной скорости
  • Обновляет энергию и время последнего обновления
    Аргументы
    coopnameИмя кооператива
    usernameИмя участника для обновления
    Заметки
    Авторизация требуется от аккаунта: coopname

◆ refreshprog()

void capital::refreshprog ( name  coopname,
name  username 
)

Обновляет CRPS пайщика в программе благороста Обновляет CRPS (систему вознаграждений программы) пайщика:

  • Обновляет CRPS в capital_wallet через core функцию
    Аргументы
    coopnameНаименование кооператива
    usernameНаименование пользователя-пайщика
    Заметки
    Авторизация требуется от аккаунта: coopname

◆ regcontrib()

void capital::regcontrib ( eosio::name  coopname,
eosio::name  username,
checksum256  contributor_hash,
eosio::asset  rate_per_hour,
uint64_t  hours_per_day,
bool  is_external_contract,
document2  storage_agreement,
std::optional< document2 contract,
std::optional< document2 blagorost_agreement,
std::optional< document2 generator_agreement 
)

Регистрация пайщика в контракте и получение договора УХД от него Создает нового пайщика в системе кооператива с указанными параметрами:

  • Проверяет уникальность пайщика по имени и хешу
  • Валидирует договор УХД (если не внешний)
  • Создает запись пайщика с указанной почасовой ставкой
  • Отправляет договор на одобрение председателю
    Аргументы
    coopnameНаименование кооператива
    usernameНаименование пользователя-пайщика
    contributor_hashХеш пайщика для идентификации
    rate_per_hourПочасовая ставка пайщика
    is_external_contractФлаг внешнего договора
    contractДоговор УХД пайщика
    storage_agreementДоговор хранения Имущества
    blagorost_agreementСоглашение о присоединении к целевой потребительской программе "Благорост" (опционально)
    Заметки
    Авторизация требуется от аккаунта: coopname

◆ regshare()

void capital::regshare ( name  coopname,
checksum256  project_hash,
name  username,
eosio::asset  user_shares 
)

Добавляет участника в проект через CRPS систему Добавляет участника в проект через систему CRPS с автоматическими проверками:

  • Проверяет существование проекта (статус только pending или active)
  • Контрибьютор в статусе active или import (приложение к проекту не требуется)
  • Создаёт или обновляет долю участника (повторный вызов обновляет user_shares)
    Аргументы
    coopnameНаименование кооператива
    project_hashХеш проекта
    usernameНаименование пользователя-участника
    user_sharesБаланс пользователя в целевой потребительской программе
    Заметки
    Авторизация требуется от аккаунта кооператива: coopname (active)

◆ returntopool()

void capital::returntopool ( name  coopname,
checksum256  project_hash,
asset  amount 
)

Возвращает неиспользованные инвестиции в глобальный пул программы Трекинговое действие для возврата неиспользованной дельты инвестиций:

  • Вызывается из finalizeproj через inline action
  • Фиксирует сумму и проект для трекинга
  • Добавляет средства в глобальный пул программы кооператива
    Аргументы
    coopnameНаименование кооператива
    project_hashХеш проекта, из которого возвращаются средства
    amountСумма неиспользованных инвестиций для возврата
    Заметки
    Авторизация требуется от аккаунта: _capital (inline action)
    Это действие предназначено для вызова из finalizeproj и трекинга возвратов

◆ rfrshsegment()

void capital::rfrshsegment ( name  coopname,
checksum256  project_hash,
name  username 
)

Обновляет сегмент участника через CRPS систему Обновляет сегмент участника проекта через систему CRPS:

  • Проверяет существование проекта
  • Обновляет сегмент участника через CRPS систему
    Аргументы
    coopnameНаименование кооператива
    project_hashХеш проекта
    usernameНаименование пользователя-участника
    Заметки
    Авторизация требуется от аккаунта: coopname

◆ setconfig()

void capital::setconfig ( name  coopname,
Capital::config  config 
)

Устанавливает или обновляет конфигурацию контракта для кооператива.

Устанавливает конфигурацию кооператива Обновляет глобальное состояние контракта для указанного кооператива:

  • Валидирует параметры конфигурации (проценты, периоды, лимиты)
  • Создает новую запись конфигурации если отсутствует
  • Модифицирует существующую конфигурацию
    Аргументы
    coopnameИмя кооператива
    configНовая конфигурация кооператива
    Заметки
    Авторизация требуется от аккаунта: coopname

◆ setmaster()

void capital::setmaster ( name  coopname,
checksum256  project_hash,
name  master 
)

Устанавливает мастера проекта Назначает мастера для управления проектом:

  • Проверяет существование проекта
  • Валидирует что пользователь подписал договор УХД
  • Проверяет что пользователь является участником проекта
  • Назначает мастера проекта
    Аргументы
    coopnameНаименование кооператива
    project_hashХеш проекта
    masterНаименование пользователя-мастера
    Заметки
    Авторизация требуется от аккаунта: coopname

◆ setplan()

void capital::setplan ( name  coopname,
name  master,
checksum256  project_hash,
uint64_t  plan_creators_hours,
asset  plan_expenses,
asset  plan_hour_cost 
)

Устанавливает плановые показатели проекта Рассчитывает плановые пулы (себестоимости, премии, инвестиции, расходы) на основании входных параметров:

  • Проверяет что мастер проекта совпадает с устанавливающим план
  • Валидирует что проект в статусе pending
  • Валидирует входные параметры (время, расходы, стоимость часа)
  • Вычисляет плановые показатели через ядро
  • Устанавливает плановые показатели проекта
    Аргументы
    coopnameИмя кооператива (scope таблицы)
    masterНаименование мастера проекта
    project_hashХэш проекта, для которого устанавливается план
    plan_creators_hoursПланируемое время создателей в часах (> 0)
    plan_expensesПланируемый целевой размер пула расходов (asset)
    plan_hour_costПланируемая стоимость часа создателя (asset)
    Заметки
    Авторизация требуется от аккаунта: coopname

◆ settledebt()

void capital::settledebt ( name  coopname,
name  username,
eosio::asset  amount,
document2  statement 
)

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

  • Проверяет подлинность заявления о погашении
  • Обрабатывает погашение долга (TODO: реализация)
    Аргументы
    coopnameНаименование кооператива
    usernameНаименование пользователя-должника
    amountСумма погашения долга
    statementЗаявление о погашении долга
    Заметки
    Авторизация требуется от аккаунта: coopname

◆ signact1()

void capital::signact1 ( eosio::name  coopname,
eosio::name  username,
checksum256  result_hash,
document2  act 
)

Подписывает акт 1 по результату участника Подписывает первый акт по результату участника:

  • Проверяет подлинность документа акта от участника
  • Валидирует статус результата (должен быть authorized) и статус сегмента (должен быть authorized)
  • Проверяет права участника на подписание акта
  • Устанавливает первый акт
  • Обновляет статус результата на act1
  • Обновляет статус сегмента на act1
    Аргументы
    coopnameНаименование кооператива
    usernameНаименование пользователя-участника
    result_hashХеш результата
    actДокумент акта 1
    Заметки
    Авторизация требуется от аккаунта: coopname

◆ signact2()

void capital::signact2 ( eosio::name  coopname,
eosio::name  chairman,
checksum256  result_hash,
document2  act 
)

Подписывает акт 2 по результату участника Подписывает второй акт председателем и завершает процесс принятия результата:

  • Проверяет что подписывает председатель
  • Валидирует статус результата (должен быть act1) и статус сегмента (должен быть act1)
  • Проверяет подлинность документа акта от председателя и участника
  • Устанавливает второй акт
  • Начисляет заблокированные средства и обновляет учёт
  • Обновляет статус сегмента на contributed
  • Обновляет статус результата на act2
  • Удаляет объект результата после успешного принятия
    Аргументы
    coopnameНаименование кооператива
    usernameНаименование пользователя-председателя
    result_hashХеш результата
    actДокумент акта 2
    Заметки
    Авторизация требуется от аккаунта: coopname

◆ startproject()

void capital::startproject ( name  coopname,
checksum256  project_hash 
)

Запускает проект на приём коммитов Переводит проект в активный статус для приема коммитов:

  • Проверяет существование проекта
  • Валидирует что проект в статусе pending
  • Обновляет статус проекта на active
    Аргументы
    coopnameНаименование кооператива
    project_hashХеш проекта для запуска
    Заметки
    Авторизация требуется от аккаунта: coopname

◆ startvoting()

void capital::startvoting ( name  coopname,
checksum256  project_hash 
)

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

  • Проверяет существование проекта
  • Валидирует что проект в статусе active
  • Обновляет статус проекта на voting
  • Инициализирует голосование по методу Водянова
    Аргументы
    coopnameНаименование кооператива
    project_hashХеш проекта для начала голосования
    Заметки
    Авторизация требуется от аккаунта: coopname

◆ stopproject()

void capital::stopproject ( name  coopname,
checksum256  project_hash 
)

Останавливает проект Переводит проект из активного статуса обратно в статус ожидания:

  • Проверяет существование проекта
  • Валидирует что проект в статусе active
  • Обновляет статус проекта на pending
  • Сбрасывает авторизацию проекта (требуется повторная инициализация)
    Аргументы
    coopnameНаименование кооператива
    project_hashХеш проекта для остановки
    Заметки
    Авторизация требуется от аккаунта: coopname

◆ submitvote()

void capital::submitvote ( name  coopname,
name  voter,
checksum256  project_hash,
std::vector< Capital::vote_input votes 
)

Подает голос по методу Водянова Участник распределяет общую голосующую сумму между остальными участниками:

  • Проверяет статус проекта и срок голосования
  • Валидирует участника голосования
  • Проверяет корректность голосов (суммы, получатели, уникальность)
  • Сохраняет голоса в системе
  • Обновляет счетчик полученных голосов
    Аргументы
    coopnameНаименование кооператива
    voterНаименование пользователя-голосующего
    project_hashХеш проекта для голосования
    votesВектор голосов для распределения
    Заметки
    Авторизация требуется от аккаунта: coopname