Пропозал (angl. proposal - предложение) это по сути отложенная транзакция которая исполняется в заданное время и может содержать одну или несколько операций. Так как транзакция отложенная, то к примеру для аккаунтов с мультисигом есть время на сбор всех подписей.
У пропозала имеются следующие атрибуты.
author - Автор пропозала
title - Заголовок, впоследствии используется как reference на пропозал для подписи. Может быть на русском, но лучше много не писать текста.
memo - Сопроводительная заметка. Свободный текст
expiration_time - время срабатывания транзакции
review_period_time - время до которого следует собрать необходимое колличество подписей. После наступления указанного времени пропозал нельзя подписывать/отзывать подписи.
В следующих примерах я использую аккаунт bobot у которого в ауторити прописаны другие аккаунты и установлен уровень срабатывания 2
Создание пропозала
Вот пример пропозала для перевода токена GOLOS с аккаунта bobot на аккаунт ropox
https://gropox.github.io/sign/?user=ropox&tr=[[
"proposal_create",
{
"author": "ropox",
"title": "Перевод за работу",
"memo": "Проверка переводов",
"expiration_time": "2019-09-21T18:50:00",
"proposed_operations": [
{
"op": [
"transfer",
{
"from": "bobot",
"to": "ropox",
"amount": "0.031 GOLOS",
"memo": "На чай"
}
]
}
],
"review_period_time": "2019-09-21T18:45:00",
"extensions": []
}
]]
Если весь вышеприведенный текст скопировать и вставить в адресную строку браузера, то откроется интерфейс Писаря для создания транзакции. Я воспользовался вкладкой "Подпись ключем". На ней можно выбрать публичную ноду для отправки транзакции и ввести ключ. Так как я автор пропозала, то и подписывать буду своим активным ключем. Активным, потому, что в пропозале трансфер, которому требуется подпись активным ключем. Кстати в одной транзакции нельзя смешивать операции требующие разных уровней ауторити. Нельзя добавить к примеру операции vote и transfer в одну транзакцию.
Отправляем транакзцию в блокчейн
Подпись пропозала
Что бы подписать созданный пропозал можно воспользоваться следующей операцией
https://gropox.github.io/sign/?user=ropox&tr=[[
"proposal_update",
{
"author": "ropox",
"title": "Перевод за работу",
"active_approvals_to_add": [
"lotobot"
],
"active_approvals_to_remove": [],
"owner_approvals_to_add": [],
"owner_approvals_to_remove": [],
"posting_approvals_to_add": [],
"posting_approvals_to_remove": [],
"key_approvals_to_add": [],
"key_approvals_to_remove": [],
"extensions": []
}
]]
В данном случае, я добавляю подпись аккаунта lotobot к пропозалу. Как видно я добавляю активное ауторити lotobot. Из параметров думаю ясно, что можно так же отозвать подпись добавив "lotobot" в массив active_approvals_to_remove. Если бы у bobot в ауторити были бы прописаны ключи, то можно добавить ключ в key_approvals_to_add и подписать соотвествующим приватным ключем (но это не точно, так как я не тестировал)
Опять же, если скопировать вышеприведенный текст в адресную строку браузера, то опять откроется Писарь, где можно отправить данную транзакцию в блокчейн.
И отправляем
Ну и в заданное время, блокчейн выполнит указанную операцию в пропозале. Так как блоки формируются кажде 3 секунды, может быть задержка до 3 секунд.
Заключение
Применять это конечно же можно не только с мультисиг-аккаунтами (аккаунтами у которых порог срабатывания более 1 и потому требуются подписи нескольких участников, указанных в ауторити). Это можно так же использовать к примеру для отложенного постинга, в заданное время. Можно создать 40 операций голосования на сутки вперед, каждые 36 минут. Эти операции выполнятся автоматически с полным весом голоса. Не нужен бот для этого. При условии конечно, что есть качественный контент для голосования. Возможно есть и другие варианты использования.
@ropox вариант с отложенным постингом предлагали?
@ksantoprotein это кому то делать надо. Я лично не собирался. Может Вик сделает, если его попросят. У него была форма для постинга.
@ropox было бы замечательно гуй приделать под эти фичи писарю для бабушек.
@blockchained Да я думал, раз уж сделали уже форму для мультиподписи, тудпа добавить формирование url для Писаря. Как альтернативный метод подписи транзы. Кто хочет может там прямо подписывать, а я лично бы через Писаря.
Hello, @ropox. You received 100% upvote from UPRomo for burned GBG. Promoted this post in the queue: @ropox.
Service added about 41.217 GBG to your post.
The instruction for burning, for promotion or a drop of posts.
Invest in UPRomo and promote increase in number of the burned GBG.
Agreement on the use of service UPRomo.
Здравствуйте, @ropox. Вы получили 100% апвот от UPRomo за сожженные GBG. Продвигали этот пост в очереди: @ropox.
Сервис прибавил к вашему посту примерно 41.217 GBG.
Инструкция по сжиганию для продвижения или задвигания постов.
Инвестируйте в UPRomo и способствуйте увеличению количества сжигаемых GBG.
Соглашение об использовании UPRomo.
Хрю!
@ropox, Поздравляю!
Ваш пост был упомянут в моем хит-параде в следующей категории:
@ropox Георгий. а можно ли про отложенный постинг поподробнее и отдельной инструкцией? это было бы так удобно...
@ladyzarulem слишком просто тогда будет! не интересно, скучно
@erikkartmen мы найдем себе иное развлечение))) не заскучаем, знаю точно)
@ladyzarulem надо учесть, что текст все равно надо будет записать в блокчейн, так что при желании можно его зарание прочитать. Но это смогут только знающие люди сделать. Посмотреть всмысле.
Сейчас постараюсь написать
@fomka да. я поняла. но все равно хочется эту штуку) так было удобно у Толи! не надо ключи хранить и открывать дополнительно )))
@fomka хрю