cli_wallet
(виртуальный кошелек) поставляется вместе с программой-эмулятором демоном (от англ. daemon). Данное приложение является одним из основных программных устройств, широко используемым участниками биржевых торгов. Приложение обеспечивает выполнение балансовых операций со счетами виртуальных кошельков клиентов, а также создание постов, голосование за посты и пр.cli_wallet
в HF·18 являлось создание удобного программного инструмента, обеспечивающего создание транзакции произвольного вида в ручном режиме.cli_wallet
.cli_wallet
и выполнена в соответствии с требованиями поставленной задачи №542.cli_wallet
дополнено новыми методами, реализующими новый программный компонент — конструктор транзакций. В отличие от предыдущих версий блокчейна пользователь с помощью конструктора может формировать транзакцию произвольного вида по своему усмотрению. Кроме этого, конструктор позволяет создавать несколько транзакций для одновременного выполнения операций и идентифицировать каждую отдельную транзакцию. Доработка не вносит изменения в работу API, а только расширяет его возможности. Только два метода — create_account
и create_account_with_keys
, входящие в прежний состав методов приложения cli_wallet
были незначительно модифицированы.owner
, active
, posting
и memo
для нового аккаунта. За создание аккаунта в качестве комиссионных отчислений с баланса кошелька создателя аккаунта (автора) снимается определенная сумма fee
. Величина этих отчислений не может быть меньше значения параметра account_creation_fee
, устанавливаемого по результатам голосования делегатов. Параметр fee
показывает изначальный базовый баланс кошелька аккаунта, необходимый для его существования в системе. С баланса кошелька создателя аккаунта снимается криптовалюта в виде Голоса (Golos) и зачисляется на баланс кошелька нового аккаунта в виде Силы Голоса (VESTS). Размер комиссионных отчислений, а также другую информацию от блокчейна, можно найти в выдаче команды wallet
, имеющей вид “account_creation_fee”:”X.000 GOLOS”
.creator
— пользователь, который создает новый аккаунт;
steem_fee
— сумма комиссионных отчислений в криптовалюте Голос, снимаемая с баланса кошелька пользователя за создание нового аккаунта и зачисляемая на баланс кошелька созданного аккаунта в криптовалюте Сила Голоса. Эта сумма не может быть возвращена обратно в кошелек создателя аккаунта;
delegated_vests
— сумма комиссионных отчислений в криптовалюте Сила Голоса, снимаемая с баланса кошелька пользователя за операцию делегирования и зачисляемая на баланс кошелька нового аккаунта в криптовалюте Сила Голоса. Эта сумма может быть возвращена обратно в кошелек создателя аккаунта по истечении определенного периода, устанавливаемого голосованием делегатов;
new_account_name
— имя нового аккаунта;
json_meta
— метаданные профиля нового аккаунта поля json_metadata
;
broadcast
— ‘true’, если транзакция пересылается на демон; ‘false’, если выполняется базовый контроль с выдачей подписанной транзакции на консоль.account_create
. В отличие от метода create_account
, который обеспечивает генерацию ключей для нового аккаунта автоматически, метод create_account_with_keys_delegated
требует явного задания ключей для нового аккаунта. Создатель аккаунта обязан иметь соответствующий ключ.creator
— пользователь, который создает новый аккаунт;
steem_fee
— сумма комиссионных отчислений в криптовалюте Голос, снимаемая с баланса кошелька пользователя за создание нового аккаунта и зачисляемая на баланс кошелька созданного аккаунта в криптовалюте Сила Голоса. Эта сумма не может быть возвращена обратно в кошелек создателя аккаунта;
delegated_vests
— сумма комиссионных отчислений в криптовалюте Сила Голоса, снимаемая с баланса кошелька пользователя за операцию делегирования и зачисляемая на баланс кошелька нового аккаунта в криптовалюте Сила Голоса. Эта сумма может быть возвращена обратно в кошелек создателя аккаунта по истечении определенного периода, устанавливаемого голосованием делегатов;
newname
— имя нового аккаунта;
json_meta
— метаданные профиля нового аккаунта поля json_metadata
;
owner
— значение публичного ключа owner
нового аккаунта;
active
— значение публичного ключа active
нового аккаунта;
posting
— значение публичного ключа posting
нового аккаунта;
memo
— значение публичного ключа memo
нового аккаунта;
broadcast
— ‘true’, если транзакция пересылается на демон.delegator
— имя аккаунта, который делегирует Силу Голоса;
delegatee
— имя аккаунта, на который делегируется Сила Голоса;
vesting_shares
— сумма делегирования;
broadcast
— ‘true’, если транзакция пересылается на демон.add_operation_to_builder_transaction
. Метод возвращает неинициализированный объект в виде заданной последовательности операций. Созданный объект может быть дополнен любой операцией с помощью вызова add_operation_to_builder_transaction()
.operation_type
— тип операции. Операция должна быть определена в файле steem/chain/operations.hpp
.handle
— уникальный номер конструктора;
op
— добавляемая операция.handler
, возвращаемого методом begin_builder_transaction()
. Метод имеет следующий вид:src_handle
— уникальный номер конструктора, из которого копируется операция;
dst_handle
— уникальный номер конструктора, на который копируется операция;
op_index
— номер копируемой операции.op_index
на операцию op
. Метод имеет следующий вид:handle
— уникальный номер конструктора;
op_index
— номер операции в конструкторе транзакций, которую необходимо заменить;
op
— заменяющая операция.handle
— уникальный номер получаемого конструктора.handle
— уникальный номер конструктора транзакций;
broadcast
— ‘true’, если подписанные транзакции необходимо переслать на демон.handle
— уникальный номер создаваемого конструктора транзакций;
author
— автор предлагаемой транзакции;
title
— заголовок предлагаемой транзакции;
memo
— примечание, текст которого дополняет смысловое значение заголовка;
expiration
— время, по истечении которого прекращается подписание транзакции;
review_period_time
— период, выделенный для подписания транзакции;
broadcast
— ‘true’, если транзакция пересылается на демон.handle
— уникальный номер конструктора транзакций. Этот номер уменьшается на единицу после каждого вызова метода.owner
, active
и posting
), подсчет подписей каждого типа ключей выполняется отдельно. Для этого в методе находится специальный структурный параметр delta
, в котором содержатся актуальные данные результатов голосования по каждому типу ключей. Структура параметра имеет следующий вид:author
— автор, предложенной транзакции;
title
— заголовок предложенной на подпись транзакции;
delta
— список подписей, необходимых для одобрения транзакции. В JSON-формате список может быть пустым;
broadcast
— ‘true’, если транзакция пересылается на демон; ‘false’, если выполняется базовый контроль с выдачей подписанной транзакции на консоль.limit
. Метод имеет следующий вид:account
— аккаунт, информацию о предложенных транзакциях которого необходимо получить;
from
— начальный номер транзакции;
limit
— пороговое значение количества транзакций.cli_wallet
и уже использовались в предыдущих версиях блокчейна. Они изменены незначительно.account_create
и возвращает созданный аккаунт. Доработка состоит из добавления параметра fee
. Метод имеет следующий вид:creator
— пользователь, создающий новый акаунт;
new_account_name
— имя нового аккаунта;
json_meta
— метаданные профиля нового аккаунта поля json_metadata
;
fee
— сумма комиссионных отчислений в криптовалюте Голос, снимаемая с баланса кошелька пользователя за создание нового аккаунта и зачисляемая на баланс кошелька созданного аккаунта в криптовалюте Сила Голоса. Эта сумма не может быть меньше значения account_creation_fee
, устанавливаемого по результатам голосования делегатов;
broadcast
— ‘true’, если транзакция пересылается на демон; ‘false’, если выполняется базовый контроль с выдачей подписанной транзакции на консоль.fee
. Метод имеет следующий вид:creator
— пользователь, который создает новый аккаунт;
newname
— имя нового аккаунта;
json_meta
— метаданные профиля нового аккаунта поля json_metadata;
fee
— сумма комиссионных отчислений в криптовалюте Голос, снимаемая с баланса кошелька пользователя за создание нового аккаунта и зачисляемая на баланс кошелька созданного аккаунта в криптовалюте Сила Голоса. Эта сумма не может быть меньше значения account_creation_fee
, устанавливаемого по результатам голосования делегатов;
owner
— значение публичного ключа owner
нового аккаунта;
active
— значение публичного ключа active
нового аккаунта;
posting
— значение публичного ключа posting
нового аккаунта;
memo
— значение публичного ключа memo
нового аккаунта;
broadcast
— ‘true’, если транзакция пересылается на демон.begin_builder_transaction
. В результате вызова будет получено значение параметра HANDLE
— идентификационный номер конструктора транзакций. По этому номеру будет вызываться созданный конструктор для формирования транзакций.add_operation_to_builder_transaction $HANDLE [opID, {operation}]
по API. Полученный на начальном этапе конструктор позволяет создать произвольный набор операций в ручном режиме, а также изменять и редактировать их. Каждая из операций будет доступна по присвоенному ей идентификационному номеру opID
, получаемого с помощью вызова get_prototype_operation <operation-type>
. Конструктор обеспечивает построение нескольких транзакций параллельно.set_fees_on_builder_transaction
для автоматического определения общей суммы комиссионных отчислений.
Метод set_fees_on_builder_transaction
не дорабатывался и вызывается так же как и в предыдущей версии блокчейна.sign_builder_transaction $HANDLE true
. Предложенная транзакция будет автоматически отправлена на подпись и затем передана на демон.cli_wallet
изменилась выдача метода get_ops_in_block
. В предыдущих версиях выдача этого метода имела следующий вид: