Вики ZooBC
Транзакции

Ликвидные платежи (потоки)

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

Запуск потока

Транзакция LiquidPayment (тип 6) называет получателя, сумму и complete_minutes — длительность потока в минутах. Она может передавать потоком токен вместо ZBC, если указать идентификатор токена. Когда блок её включает:

  • сумма сразу уходит с баланса плательщика и блокируется;
  • она равномерно начисляется в течение указанных минут;
  • когда время истекает, цепочка сама выплачивает получателю всю сумму, без какой-либо дополнительной транзакции.

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

Остановка потока

Любая сторона может досрочно завершить поток транзакцией LiquidPaymentStop (тип 262). Тогда цепочка делит сумму по времени, прошедшему между метками времени двух транзакций: получатель получает начисленную часть, а остальное возвращается плательщику. Доля получателя округляется вверх до следующей атомарной единицы, так что округление никогда не обделяет получателя.

Полоса от 0 до 10 минут с остановкой на 3-й минуте: первые 30 % уходят получателю, 3 ZBC, а остальные 70 % возвращаются отправителю, 7 ZBC
Полоса от 0 до 10 минут с остановкой на 3-й минуте: первые 30 % уходят получателю, 3 ZBC, а остальные 70 % возвращаются отправителю, 7 ZBC

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

Вместе с другими возможностями

  • Политики разделения. Выплаты потока — это входящие зачисления, поэтому они проходят через политику разделения получателя (см. Политики разделения и транзакций).
  • Политики транзакций. Политика транзакций проверяется только относительно получателя, названного в самой транзакции LiquidPayment. Выплаты потока продолжают поступать получателю, даже если он позже откажется от платежей.
  • Потоки токенов. Если срок токена, передаваемого потоком, истекает, его обеспечение в ZBC делится между держателями, а единицы в потоке засчитываются каждой стороне по тому, сколько уже начислено (см. Содержание токена (продление)).

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

См. также