Stake service
Cellframe node >> Сервис делегированного стейка >>
Сервис предоставляет возможность залога (делегации) заранее оговоренной суммы (стейка) токенов на адрес кошелька, приватным ключом которого будут подписаны дальнейшие события в системе. Со всех таких событий, содержащих транзакции, автоматически снимается комиссия, и отправляется на адрес, указанный делегатором. Делегатор имеет возможность в любое время вернуть залог себе. Другие операции с залогом не предусмотрены.
Contents
Создание ордера
Во избежание злонамеренных действий, запрос на получение стейка создаёт владелец сертификата, ключ которого в дальнейшем будет служить маркером для отчисления комиссии. Запрос создаётся в виде ордера, подписанного тем же ключом. Адрес делегатора в текущей реализации должен быть прописан в том же ордере (хотя в теории залог можно принять с любого адреса, и возможно, это параметр в дальнейшем будет отброшен)
./cellframe-node-cli srv_stake order create -net <net name> -from_addr <addr> -token <ticker> -coins <value> -cert <name> -fee_percent <value>
Пример
./cellframe-node-cli srv_stake order create -net kelvin-testnet -from_addr RpiDC8c1T1Phj39naR4zcYha1YcNXoF2c8ycwP3RCykQvBh8GAZEhqRbbLMwznLrphmFj5K8Q6WGZfKjmV4SvwyyGuJKAmUMZeownn2q -token KELT -coins 10000 -cert stake_cert -fee_percent 10.0 Successfully created order 0x4D70ADF579ECAA12D55596FFE997BCB6C72F3ADE75FA3C534AB092C6CC43D008
Удаление ордера
Создатель ордера может его удалить, если запрос на стейк перестал быть актуальным
./cellframe-node-cli srv_stake order remove -net <net name> -order <order hash>
Пример
./cellframe-node-cli srv_stake order remove -net kelvin-testnet -order 0x4D70ADF579ECAA12D55596FFE997BCB6C72F3ADE75FA3C534AB092C6CC43D008 Stake order successfully removed
Изменение ордера
Созданный ранее ордер может быть в любой момент времени изменён.
./cellframe-node-cli srv_stake order update -net <net name> -order <order hash> -cert <name> {-from_addr <addr> | -token <ticker> -coins <value> | -fee_percent <value>}
Пример
./cellframe-node-cli srv_stake order update -net kelvin-testnet -order 0x4D70ADF579ECAA12D55596FFE997BCB6C72F3ADE75FA3C534AB092C6CC43D008 -cert stake_cert -fee_percent 5.0 Successfully created order 0x6F3C6830ED87D5DAC5ADC1002F8B01617CB39748051947B85231534AC8773559
Спсиок ордеров сервиса
В любое время можно посмотреть список ордеров с запросами на получение стейка.
./cellframe-node-cli srv_stake order list -net <net name>
Пример
./cellframe-node-cli srv_stake order list -net kelvin-testnet 0x6F3C6830ED87D5DAC5ADC1002F8B01617CB39748051947B85231534AC8773559
Делегация стейка
Для делегации средств они должны присутствовать на балансе кошелька делегатора. Так же должен быть заранее создан ордер с параметрами делегации. Делегации происходит в виде условной транзакции, выход которой не может быть использован никем, кроме владельца средств. Как и в других условных транзакциях, баланс кошелька подписанта транзакции уменьшается на сумму стейка, при этом списанные средства не отражаются ни на каком другом балансе. Они, как бы "подвисают в пустоте". Средства появятся на балансе только после "замыкания" условной транзакции, то есть при появлении транзакции с обычным выходом и входом, выполняющим условие.
./cellframe-node-cli srv_stake delegate -order <order hash> -net <net name> -wallet <wallet_name> -fee_addr <addr>
Пример
./cellframe-node-cli srv_stake delegate -order 0x6F3C6830ED87D5DAC5ADC1002F8B01617CB39748051947B85231534AC8773559 -net kelvin-testnet -wallet mywallet -fee_addr RpiDC8c1T1Phj39nZHW7cLEbgJX7zz2DEdLt3rR9LgDHL8r7dc3UWVDUYxCSta6zsLm9xzeKcBEe4vrDZehrgPB469bJcugbt5C5o8qK Stake transaction has done
Просмотр активных транзакций стейка
В любой момент можно посмотреть список активных условных транзакций делегации, с их параметрами.
./cellframe-node-cli srv_stake transactions -net <net name> {-addr <addr from>}
Пример
./cellframe-node-cli srv_stake transactions -net kelvin-testnet 0xF1BB196E9F83F605000872E55D5ED1149C471312319E31B74F9BBF67258187E2 KELT 10000 RpiDC8c1T1Phj39naR4zcYha1YcNXoF2c8ycwP3RCykQvBh8GAZEhqRbbLMwznLrphmFj5K8Q6WGZfKjmV4SvwyyGuJKAmUMZeownn2q RpiDC8c1T1Phj39nb3TmvuAEpKhCGTvQoCGziQnLjZ5cNrNyqouv2PQouMjpasj7dwXavwzVB2cGiLzuNbA67o9kTEgG8Fc3T63oSU3P RpiDC8c1T1Phj39nZHW7cLEbgJX7zz2DEdLt3rR9LgDHL8r7dc3UWVDUYxCSta6zsLm9xzeKcBEe4vrDZehrgPB469bJcugbt5C5o8qK 5.0
Инвалидация стейка
В любой момент владелец стека может отменить условную транзакцию стейка и вернуть его себе.
./cellframe-node-cli srv_stake invalidate -net <net name> -tx <transaction hash> -wallet <wallet name>
Пример
./cellframe-node-cli srv_stake invalidate -net kelvin-testnet -tx 0xF1BB196E9F83F605000872E55D5ED1149C471312319E31B74F9BBF67258187E2 -wallet mywallet Stake successfully returned to owner