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

Функции

void registrator::changekey (eosio::name coopname, eosio::name changer, eosio::name username, eosio::public_key public_key)
 Изменение ключа активной учетной записи. Изменяет активный ключ указанной учетной записи Подробнее...
 
void registrator::createbranch (eosio::name coopname, eosio::name braname)
 Создание филиала кооператива. Создает новый аккаунт для филиала кооператива Подробнее...
 
void registrator::newaccount (eosio::name coopname, eosio::name referer, eosio::name username, eosio::public_key public_key, std::string meta)
 Регистрация нового аккаунта. Создает новый аккаунт в системе блокчейна Подробнее...
 
void registrator::updateaccnt (eosio::name username, eosio::name account_to_change, std::string meta)
 Обновление метаданных аккаунта. Обновляет метаданные указанного аккаунта Подробнее...
 
void registrator::decparticpnt (eosio::name coopname, eosio::name username)
 Уменьшение счетчика активных пайщиков. Уменьшает счетчик активных пайщиков кооператива при блокировке участника Подробнее...
 
void registrator::delcoop (eosio::name registrator, eosio::name coopname)
 Удаление кооператива. Удаляет кооператив из системы Подробнее...
 
void registrator::deloperator (eosio::name coopname)
 Снять оператора с кооператива: он снова держит установку сам. Подробнее...
 
void registrator::disbranches (eosio::name coopname)
 Отключение режима филиалов. Отключает режим кооперативных участков для кооператива Подробнее...
 
void registrator::enabranches (eosio::name coopname)
 Включение режима филиалов. Включает режим кооперативных участков для кооператива Подробнее...
 
void registrator::regcoop (eosio::name coopname, eosio::name username, org_data params, document2 document)
 Регистрация кооператива-члена цифровой системы. Регистрирует новый кооператив в системе Подробнее...
 
void registrator::setoperator (eosio::name coopname, eosio::name operator_name)
 Указать оператора, обслуживающего кооператив. Подробнее...
 
void registrator::stcoopstatus (eosio::name coopname, eosio::name username, eosio::name status)
 Установка статуса кооператива. Изменяет статус кооператива (active, blocked, pending) Подробнее...
 
void registrator::updatecoop (eosio::name coopname, eosio::name username, eosio::asset initial, eosio::asset minimum, eosio::asset org_initial, eosio::asset org_minimum, std::string announce, std::string description)
 Обновление параметров кооператива. Обновляет параметры кооператива (взносы, описание) Подробнее...
 
void registrator::completexit (eosio::name coopname, checksum256 exit_hash)
 Завершение возврата паевого взноса при выходе из кооператива. Кассир подтвердил исходящий платёж — gateway вызывает этот коллбэк. Списываем зарезервированную сумму (o.wal.wthcpl: Дт80/Кт51, BURN с w.wal.wpend), удаляем пайщика из реестра совета и блокируем его аккаунт. Возврат назад невозможен — повторное участие только через новую регистрацию. Подробнее...
 
void registrator::confirmexit (eosio::name coopname, checksum256 exit_hash, document2 authorization)
 Одобрение советом выхода пайщика из кооператива. Совет одобрил заявление о выходе. Контракт сам вычисляет сумму возврата: обходит сет паевых кошельков LEDGER2_EXIT_REFUND_WALLETS (w.reg.minshr + w.wal.share + w.cap.blago), собирает доступный L3-баланс каждого, консолидирует на главный паевой (w.wal.share), резервирует всю сумму (o.wal.wthreq) и создаёт исходящий платёж в gateway. Если возвращать нечего — выход завершается сразу без платежа. Подробнее...
 
void registrator::declinexit (eosio::name coopname, checksum256 exit_hash, std::string reason)
 Отказ в выходе из кооператива. Вызывается либо советом при отклонении заявления (до резервирования средств), либо gateway при отклонении исходящего платежа (после резервирования). Если сумма возврата уже была зарезервирована — снимаем резерв (o.wal.wthdec: w.wal.wpend → w.wal.share). Пайщик остаётся действующим членом кооператива. Подробнее...
 
void registrator::exitcoop (eosio::name coopname, eosio::name username, checksum256 exit_hash, document2 statement)
 Подача заявления на выход из кооператива. Действующий пайщик подаёт подписанное заявление о выходе (registry 200). Создаётся объект выхода и повестка совета leavecoop на рассмотрение. Возврат паевого взноса произойдёт после одобрения советом (confirmexit). Подробнее...
 
void registrator::init ()
 Инициализация контракта регистратора. Создает начальные аккаунты и кооператив-провайдер системы Подробнее...
 
void registrator::migrate ()
 Миграция данных контракта. Разовая нормализация типа аккаунта в registrator::accounts. Подробнее...
 
void registrator::adduser (eosio::name coopname, eosio::name referer, eosio::name username, eosio::name type, eosio::time_point_sec created_at, eosio::asset initial, eosio::asset minimum, bool spread_initial, std::string meta, checksum256 registration_hash)
 Добавление пайщика. Создает новый аккаунт и добавляет пайщика в кооператив Подробнее...
 
void registrator::confirmpay (name coopname, checksum256 registration_hash)
 Подтверждение платежа регистрации. Подтверждает оплату регистрационного взноса от gateway. Подробнее...
 
void registrator::confirmreg (eosio::name coopname, checksum256 registration_hash, document2 authorization)
 Подтверждение регистрации пользователя. Подтверждает регистрацию кандидата советом и добавляет его в кооператив Подробнее...
 
void registrator::declinepay (name coopname, checksum256 registration_hash, std::string reason)
 Отклонение платежа регистрации. Отклоняет оплату регистрационного взноса от gateway. Подробнее...
 
void registrator::declinereg (name coopname, checksum256 registration_hash, std::string reason)
 Отклонение регистрации пользователя. Отклоняет регистрацию кандидата советом Подробнее...
 
void registrator::declinerfnd (name coopname, checksum256 registration_hash, std::string reason)
 Отклонение возврата регистрационного взноса — НЕДОПУСТИМО. Возврат полученного регистрационного взноса при отказе совета не может быть отменён: средства кандидата обязаны быть ему возвращены. Действие существует только как обязательный decline-коллбэк gateway (createoutpay требует имя decline-действия) и всегда завершается ошибкой. На фронте кнопки отклонения возврата нет; этот страж защищает от прямого вызова gateway::outdecline. Подробнее...
 
void registrator::refundpay (name coopname, checksum256 registration_hash)
 Подтверждение возврата регистрационного взноса. Коллбэк gateway после фактического проведения кассой исходящего возврата (gateway::outcomplete). Проводит обратную проводку Дт 76 / Кт 51 (сжигание суспенса w.reg.pend) и закрывает запись кандидата. Деньги уходят со счёта 76 ровно в этот момент — не раньше, чем касса подтвердит исходящий перевод. Подробнее...
 
void registrator::reguser (eosio::name coopname, eosio::name braname, eosio::name username, eosio::name type, document2 statement, checksum256 registration_hash)
 Регистрация пользователя. Регистрирует аккаунт в качестве физического лица для вступления в кооператив Подробнее...
 
void registrator::unverifyacc (eosio::name coopname, eosio::name chairman, eosio::name username, eosio::name procedure)
 Отзыв верификации личности пайщика, проведённой кооперативным участком. Подробнее...
 
void registrator::verificate (eosio::name username, eosio::name procedure)
 Верификация аккаунта. Верифицирует аккаунты как пользователей, так и организаций Подробнее...
 
void registrator::verifyacc (eosio::name coopname, eosio::name braname, eosio::name verificator, eosio::name username, eosio::name procedure)
 Верификация личности пайщика на кооперативном участке. Подробнее...
 

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

Функции

◆ adduser()

void registrator::adduser ( eosio::name  coopname,
eosio::name  referer,
eosio::name  username,
eosio::name  type,
eosio::time_point_sec  created_at,
eosio::asset  initial,
eosio::asset  minimum,
bool  spread_initial,
std::string  meta,
checksum256  registration_hash 
)

Добавление пайщика. Создает новый аккаунт и добавляет пайщика в кооператив

Аргументы
coopnameНаименование кооператива
refererИмя реферера
usernameИмя пользователя для создания
typeТип пользователя (individual, entrepreneur, organization)
created_atДата создания аккаунта
initialВступительный взнос
minimumМинимальный взнос
spread_initialФлаг распределения вступительного взноса
metaМетаданные пользователя
registration_hashEntity-hash доменной записи регистрации (из бэкенда)
Заметки
Авторизация требуется от аккаунта: coopname

◆ changekey()

void registrator::changekey ( eosio::name  coopname,
eosio::name  changer,
eosio::name  username,
eosio::public_key  public_key 
)

Изменение ключа активной учетной записи. Изменяет активный ключ указанной учетной записи

Аргументы
coopnameНаименование кооператива
changerИмя аккаунта, который изменяет ключ
usernameИмя аккаунта, ключ которого требуется изменить
public_keyНовый публичный ключ для активной учетной записи
Заметки
Авторизация требуется от аккаунта: changer

◆ completexit()

void registrator::completexit ( eosio::name  coopname,
checksum256  exit_hash 
)

Завершение возврата паевого взноса при выходе из кооператива. Кассир подтвердил исходящий платёж — gateway вызывает этот коллбэк. Списываем зарезервированную сумму (o.wal.wthcpl: Дт80/Кт51, BURN с w.wal.wpend), удаляем пайщика из реестра совета и блокируем его аккаунт. Возврат назад невозможен — повторное участие только через новую регистрацию.

Аргументы
coopnameНаименование кооператива
exit_hashХэш процесса выхода
Заметки
Авторизация требуется от аккаунта: gateway

◆ confirmexit()

void registrator::confirmexit ( eosio::name  coopname,
checksum256  exit_hash,
document2  authorization 
)

Одобрение советом выхода пайщика из кооператива. Совет одобрил заявление о выходе. Контракт сам вычисляет сумму возврата: обходит сет паевых кошельков LEDGER2_EXIT_REFUND_WALLETS (w.reg.minshr + w.wal.share + w.cap.blago), собирает доступный L3-баланс каждого, консолидирует на главный паевой (w.wal.share), резервирует всю сумму (o.wal.wthreq) и создаёт исходящий платёж в gateway. Если возвращать нечего — выход завершается сразу без платежа.

Аргументы
coopnameНаименование кооператива
exit_hashХэш процесса выхода
authorizationДокумент-решение совета о выходе
Заметки
Авторизация требуется от аккаунта: soviet

◆ confirmpay()

void registrator::confirmpay ( name  coopname,
checksum256  registration_hash 
)

Подтверждение платежа регистрации. Подтверждает оплату регистрационного взноса от gateway.

Аргументы
coopnameНаименование кооператива
registration_hashХэш регистрации
Заметки
Авторизация требуется от аккаунта: gateway

◆ confirmreg()

void registrator::confirmreg ( eosio::name  coopname,
checksum256  registration_hash,
document2  authorization 
)

Подтверждение регистрации пользователя. Подтверждает регистрацию кандидата советом и добавляет его в кооператив

Аргументы
coopnameНаименование кооператива
registration_hashХэш регистрации
authorizationДокумент авторизации от совета
Заметки
Авторизация требуется от аккаунта: soviet

◆ createbranch()

void registrator::createbranch ( eosio::name  coopname,
eosio::name  braname 
)

Создание филиала кооператива. Создает новый аккаунт для филиала кооператива

Аргументы
coopnameНаименование кооператива
branameНаименование филиала
Заметки
Авторизация требуется от аккаунта: branch

◆ declinepay()

void registrator::declinepay ( name  coopname,
checksum256  registration_hash,
std::string  reason 
)

Отклонение платежа регистрации. Отклоняет оплату регистрационного взноса от gateway.

Аргументы
coopnameНаименование кооператива
registration_hashХэш регистрации
reasonПричина отклонения платежа
Заметки
Авторизация требуется от аккаунта: gateway

◆ declinereg()

void registrator::declinereg ( name  coopname,
checksum256  registration_hash,
std::string  reason 
)

Отклонение регистрации пользователя. Отклоняет регистрацию кандидата советом

Аргументы
coopnameНаименование кооператива
registration_hashХэш регистрации
reasonПричина отклонения регистрации
Заметки
Авторизация требуется от аккаунта: soviet

◆ declinerfnd()

void registrator::declinerfnd ( name  coopname,
checksum256  registration_hash,
std::string  reason 
)

Отклонение возврата регистрационного взноса — НЕДОПУСТИМО. Возврат полученного регистрационного взноса при отказе совета не может быть отменён: средства кандидата обязаны быть ему возвращены. Действие существует только как обязательный decline-коллбэк gateway (createoutpay требует имя decline-действия) и всегда завершается ошибкой. На фронте кнопки отклонения возврата нет; этот страж защищает от прямого вызова gateway::outdecline.

Аргументы
coopnameНаименование кооператива
registration_hashХэш регистрации (= outcome_hash исходящего платежа)
reasonПричина отклонения (игнорируется)
Заметки
Авторизация требуется от аккаунта: gateway

◆ declinexit()

void registrator::declinexit ( eosio::name  coopname,
checksum256  exit_hash,
std::string  reason 
)

Отказ в выходе из кооператива. Вызывается либо советом при отклонении заявления (до резервирования средств), либо gateway при отклонении исходящего платежа (после резервирования). Если сумма возврата уже была зарезервирована — снимаем резерв (o.wal.wthdec: w.wal.wpend → w.wal.share). Пайщик остаётся действующим членом кооператива.

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

◆ decparticpnt()

void registrator::decparticpnt ( eosio::name  coopname,
eosio::name  username 
)

Уменьшение счетчика активных пайщиков. Уменьшает счетчик активных пайщиков кооператива при блокировке участника

Аргументы
coopnameИмя кооператива
usernameИмя пайщика
Заметки
Авторизация требуется от аккаунта: soviet

◆ delcoop()

void registrator::delcoop ( eosio::name  administrator,
eosio::name  coopname 
)

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

Аргументы
administratorИмя администратора
coopnameНаименование кооператива для удаления
Заметки
Авторизация требуется от аккаунта: provider или administrator

◆ deloperator()

void registrator::deloperator ( eosio::name  coopname)

Снять оператора с кооператива: он снова держит установку сам.

Снятие оператора с кооператива.

Заметки
Авторизация: сам кооператив, его оператор либо провайдер.

Обслуживание прекращается: кооператив снова считается держащим установку сам. Пустой оператор и означает собственную установку — того же вида запись, что у кооператива, который никому её не поручал.

Выданное заверение это действие не отзывает и отозвать не может: подпись уже у того, кому её выдали. Но продлевать её будет некому, и она погаснет сама в пределах своего срока — месяца или меньше.

Снять оператора может любая из двух сторон: кооператив вправе уйти, оператор вправе перестать обслуживать. Держать кого-то в обслуживании против воли незачем — обязательство одностороннее, и принуждать к нему нечем.

Аргументы
coopnameКооператив, с которого снимается оператор
Заметки
Авторизация: coopname, его нынешний оператор либо провайдер.

◆ disbranches()

void registrator::disbranches ( eosio::name  coopname)

Отключение режима филиалов. Отключает режим кооперативных участков для кооператива

Аргументы
coopnameНаименование кооператива
Заметки
Авторизация требуется от аккаунта: branch

◆ enabranches()

void registrator::enabranches ( eosio::name  coopname)

Включение режима филиалов. Включает режим кооперативных участков для кооператива

Аргументы
coopnameНаименование кооператива
Заметки
Авторизация требуется от аккаунта: branch

◆ exitcoop()

void registrator::exitcoop ( eosio::name  coopname,
eosio::name  username,
checksum256  exit_hash,
document2  statement 
)

Подача заявления на выход из кооператива. Действующий пайщик подаёт подписанное заявление о выходе (registry 200). Создаётся объект выхода и повестка совета leavecoop на рассмотрение. Возврат паевого взноса произойдёт после одобрения советом (confirmexit).

Аргументы
coopnameНаименование кооператива
usernameИмя пайщика, выходящего из кооператива
exit_hashХэш процесса выхода
statementПодписанное заявление о выходе (registry 200)
Заметки
Авторизация требуется от аккаунта: coopname

◆ init()

void registrator::init ( )

Инициализация контракта регистратора. Создает начальные аккаунты и кооператив-провайдер системы

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

◆ migrate()

void registrator::migrate ( )

Миграция данных контракта. Разовая нормализация типа аккаунта в registrator::accounts.

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

◆ newaccount()

void registrator::newaccount ( eosio::name  coopname,
eosio::name  referer,
eosio::name  username,
eosio::public_key  public_key,
std::string  meta 
)

Регистрация нового аккаунта. Создает новый аккаунт в системе блокчейна

Аргументы
coopnameНаименование кооператива
refererРеферер, который представил нового пользователя
usernameИмя нового аккаунта (от 5 до 12 символов)
public_keyОткрытый ключ нового аккаунта
metaДополнительная мета-информация
Заметки
Авторизация требуется от аккаунта: coopname

◆ refundpay()

void registrator::refundpay ( name  coopname,
checksum256  registration_hash 
)

Подтверждение возврата регистрационного взноса. Коллбэк gateway после фактического проведения кассой исходящего возврата (gateway::outcomplete). Проводит обратную проводку Дт 76 / Кт 51 (сжигание суспенса w.reg.pend) и закрывает запись кандидата. Деньги уходят со счёта 76 ровно в этот момент — не раньше, чем касса подтвердит исходящий перевод.

Аргументы
coopnameНаименование кооператива
registration_hashХэш регистрации (= outcome_hash исходящего платежа)
Заметки
Авторизация требуется от аккаунта: gateway

◆ regcoop()

void registrator::regcoop ( eosio::name  coopname,
eosio::name  username,
org_data  params,
document2  document 
)

Регистрация кооператива-члена цифровой системы. Регистрирует новый кооператив в системе

Аргументы
coopnameНаименование кооператива
usernameИмя пользователя-регистратора
paramsПараметры кооператива
documentДокумент регистрации
Заметки
Авторизация требуется от аккаунта: coopname или username

◆ reguser()

void registrator::reguser ( eosio::name  coopname,
eosio::name  braname,
eosio::name  username,
eosio::name  type,
document2  statement,
checksum256  registration_hash 
)

Регистрация пользователя. Регистрирует аккаунт в качестве физического лица для вступления в кооператив

Аргументы
coopnameНаименование кооператива
branameНаименование филиала
usernameИмя пользователя, который регистрируется
typeТип пользователя (individual, entrepreneur, organization)
statementДокумент заявления на вступление
registration_hashХэш регистрации
Заметки
Авторизация требуется от аккаунта: coopname

◆ setoperator()

void registrator::setoperator ( eosio::name  coopname,
eosio::name  operator_name 
)

Указать оператора, обслуживающего кооператив.

Указание оператора, который обслуживает кооператив.

Родитель в реестре кооперативов — это оператор, развернувший установку, а не учредитель: кооперативы друг друга не учреждают. Пустой родитель означает собственную установку.

Заметки
Авторизация: operator_name; при смене оператора — дополнительно прежний оператор либо провайдер.

Поле «родитель» в реестре кооперативов существовало с самого начала, но не заполнялось ничем и никогда: ни одно действие в него не писало. Задумано оно было не под организационную дочернюю структуру — кооперативы друг друга не учреждают, и такой связи в кооперации попросту нет, — а под ту единственную связь, которая между ними действительно есть: кто чью установку держит.

Это действие и придаёт полю смысл. Родитель — оператор, развернувший установку платформы для кооператива. Пустой родитель означает, что кооператив держит установку сам и, стало быть, сам себе оператор.

Зачем связь нужна. Оператор обязан продлевать заверения обслуживаемым кооперативам, иначе их удостоверения перестают проходить проверку. Обходить их по расписанию он может, только зная, кто это. Спрашивать об этом сам кооператив нельзя: тогда любой объявил бы себя обслуживаемым и получил заверение, ничего не подписывая.

Поэтому подписывают оба: кооператив соглашается на обслуживание, оператор берёт на себя обязательство. Одной подписи не хватает ни с одной стороны. Оператор в одиночку иначе объявил бы себя обслуживающим любой кооператив, у которого оператор ещё не указан, а кооператив в одиночку — навязал бы себя оператору, который о нём не знает, и тот принялся бы его заверять.

Провайдер платформы может назначить оператора один — он и так администрирует реестр, и через него проходит перевод уже подключённых кооперативов, у которых оператор не был указан никогда.

Аргументы
coopnameКооператив, которому назначается оператор
operator_nameОператор, берущий кооператив на обслуживание
Заметки
Авторизация: coopname и operator_name вместе, либо провайдер один. При смене оператора — дополнительно прежний оператор.

◆ stcoopstatus()

void registrator::stcoopstatus ( eosio::name  coopname,
eosio::name  administrator,
eosio::name  status 
)

Установка статуса кооператива. Изменяет статус кооператива (active, blocked, pending)

Аргументы
coopnameНаименование кооператива
administratorИмя администратора
statusНовый статус кооператива
Заметки
Авторизация требуется от аккаунта: provider или administrator

◆ unverifyacc()

void registrator::unverifyacc ( eosio::name  coopname,
eosio::name  chairman,
eosio::name  username,
eosio::name  procedure 
)

Отзыв верификации личности пайщика, проведённой кооперативным участком.

Отзыв верификации личности пайщика. Председатель кооператива отзывает ранее проведённую верификацию (ошибка при проведении или компрометация).

Заметки
Авторизация: председатель кооператива (chairman) либо сам кооператив.
Аргументы
coopnameНаименование кооператива
chairmanПредседатель кооператива
usernameИмя аккаунта пайщика
procedureПроцедура верификации, которая отзывается
Заметки
Авторизация требуется от аккаунта: chairman или кооператива

◆ updateaccnt()

void registrator::updateaccnt ( eosio::name  username,
eosio::name  account_to_change,
std::string  meta 
)

Обновление метаданных аккаунта. Обновляет метаданные указанного аккаунта

Аргументы
usernameИмя аккаунта, который обновляет метаданные
account_to_changeИмя аккаунта, который требуется обновить
metaНовые метаданные для аккаунта
Заметки
Авторизация требуется от аккаунта: username

◆ updatecoop()

void registrator::updatecoop ( eosio::name  coopname,
eosio::name  username,
eosio::asset  initial,
eosio::asset  minimum,
eosio::asset  org_initial,
eosio::asset  org_minimum,
std::string  announce,
std::string  description 
)

Обновление параметров кооператива. Обновляет параметры кооператива (взносы, описание)

Аргументы
coopnameНаименование кооператива
usernameИмя пользователя-обновителя
initialВступительный взнос для физических лиц
minimumМинимальный взнос для физических лиц
org_initialВступительный взнос для организаций
org_minimumМинимальный взнос для организаций
announceАнонс кооператива
descriptionОписание кооператива
Заметки
Авторизация требуется от аккаунта: provider, coopname или username

◆ verificate()

void registrator::verificate ( eosio::name  username,
eosio::name  procedure 
)

Верификация аккаунта. Верифицирует аккаунты как пользователей, так и организаций

Аргументы
usernameИмя аккаунта, который подлежит верификации
procedureПроцедура верификации (online)
Заметки
Авторизация требуется от аккаунта: provider

◆ verifyacc()

void registrator::verifyacc ( eosio::name  coopname,
eosio::name  braname,
eosio::name  verificator,
eosio::name  username,
eosio::name  procedure 
)

Верификация личности пайщика на кооперативном участке.

Верификация личности пайщика при личной явке. Личность сверяется с паспортом уполномоченным лицом кооператива и фиксируется в аккаунте пайщика. Верификацию проводит либо кооперативный участок (председатель участка или его доверенное лицо) — тогда braname указан, либо совет кооператива (председатель совета или сотрудник с правом на действие) — тогда braname пуст. Верификация проводится один раз для каждой процедуры.

Заметки
Авторизация: председатель кооперативного участка или его доверенное лицо (verificator).
Аргументы
coopnameНаименование кооператива
branameНаименование кооперативного участка; пусто, если верифицирует совет кооператива
verificatorКто проводит верификацию
usernameИмя аккаунта пайщика, который подлежит верификации
procedureПроцедура верификации (passport)
Заметки
Авторизация требуется от аккаунта: verificator либо от кооператива