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

Функции

void ano::migrate ()
 Миграция контракта. Подробнее...
 
void ano::endorse (eosio::name issuer, eosio::name subject, eosio::checksum256 chain_id, eosio::public_key cert_key, eosio::time_point_sec expires_at, std::string credential)
 Выдать или продлить заверение. Подробнее...
 
void ano::revoke (eosio::name issuer, eosio::name subject)
 Прекратить признание: убрать запись о заверении. Подробнее...
 

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

Функции

◆ endorse()

void ano::endorse ( eosio::name  issuer,
eosio::name  subject,
eosio::checksum256  chain_id,
eosio::public_key  cert_key,
eosio::time_point_sec  expires_at,
std::string  credential 
)

Выдать или продлить заверение.

Аргументы
issuerкто заверяет: АНО либо оператор, у которого есть действующее заверение.
subjectкого заверяют.
chain_idсеть, в которой действует заверение.
cert_keyключ заверения субъекта, который признаётся.
expires_atкогда заверение перестаёт действовать.
credentialподписанное заверение целиком — то, что поедет внутри удостоверения пайщика и будет проверено без сети.
Заметки
Авторизация: issuer.

Действие одно на оба уровня цепочки: АНО им признаёт оператора, оператор — кооператив. Отличие только в том, кто подписывает, и в предельном сроке.

Кто вправе заверять. АНО — всегда, она корень и опирается сама на себя. Все остальные — только имея действующее заверение. Это и есть то свойство, ради которого затевалась цепочка: право заверять не берётся из факта существования аккаунта, а передаётся сверху и вместе со сроком.

Почему нельзя заверить самого себя. Тогда любой аккаунт объявил бы себя признанным, и проверка перестала бы что-либо значить: цепочка, замкнутая на себя, ведёт не к корню, а по кругу.

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

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

◆ migrate()

void ano::migrate ( )

Миграция контракта.

Заметки
Авторизация: @ ano @ active.

Пустышка для обновлений сборки. Настоящие миграции состояния выполняются отдельным планом.

Заметки
Авторизация: @ ano @ active.

◆ revoke()

void ano::revoke ( eosio::name  issuer,
eosio::name  subject 
)

Прекратить признание: убрать запись о заверении.

Заметки
Авторизация: заверяющий из записи либо АНО.

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

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

Убрать запись может выдавший её либо АНО. Второе — чтобы ошибку оператора было кому исправить, не дожидаясь его самого.