Шесть шаблонов и собственные программы
Шаблоны компилируются в одно целочисленное ядро. Имя шаблона удобно для кошелька, но не является списком разрешённых приложений в консенсусе. Все шесть доступны в Create и CLI; собственную программу можно передать через публичный API. Все суммы ниже относятся к одному финансируемому экземпляру.
| Шаблон | До границы возврата | На границе и после неё |
|---|---|---|
| Платёж с возвратом | Получатель закрывает и забирает баланс за вычетом комиссии | Плательщик закрывает и возвращает средства |
| Сейф с блокировкой | Расход запрещён даже владельцу | Владелец закрывает и забирает средства |
| Кошелёк с лимитом | Ключ расходов делает ограниченные выплаты с сохранением резерва | Ключ возврата закрывает |
| Бюджет за период | Ключ расходов соблюдает бюджет выплат и комиссий за период высот | Ключ возврата закрывает |
| Регулярный платёж | Получатель вызывает одну фиксированную выплату при наступлении срока | Плательщик возвращает остаток |
| Постепенное освобождение | Получатель забирает один фиксированный транш при наступлении срока | Получатель закрывает и забирает остаток |
Платёж с возвратом и сейф
refundable_payment задаёт payer, payee, expiry_height и
max_fee_micronoid. Получение до срока или возврат начиная с этой высоты
закрывают весь экземпляр. Частичного получения нет.
timelocked_vault задаёт owner, unlock_height и потолок комиссии.
Обе ветви принадлежат владельцу, но закрытие разрешено только в возвратной.
Даже собственный ключ не позволяет обойти блокировку по высоте.
Кошелёк с лимитом
allowance_wallet разделяет spending_key и recovery_key. До recover_at
продолжающие вызовы соблюдают max_payout_micronoid, min_retained_micronoid
и max_fee_micronoid. Заданный payout_recipient фиксирует получателя,
null разрешает произвольного получателя продолжающей выплаты. Ключ расходов
не может закрыть контракт. Начиная с границы это может сделать ключ возврата.
Лимит выплаты действует на вызов, не включает комиссию и не ограничивает сумму за сутки. Для этого нужен бюджет за период.
Бюджет за период
period_budget_wallet добавляет start_height, положительный period_blocks
и budget_micronoid. Начальные счётчики — [budget, start + period].
До начала расход запрещён. Продолжающий вызов вычитает из бюджета выплату
и комиссию; вызов без выплаты всё равно расходует комиссию. Фактический
резерв не меньше потолка комиссии.
На сохранённой границе периода или после неё следующий успешный вызов восстанавливает бюджет и задаёт границу высота этого вызова + период. Неиспользованный бюджет не накапливается. Это окно высот, начатое вызовом, а не календарные сутки или непрерывное скользящее окно. Закрытие возвратной ветви не проходит проверки бюджета основной ветви.
Регулярный платёж
recurring_payment фиксирует плательщика, получателя, first_due_height,
period_blocks, payment_micronoid, высоту возврата и потолок комиссии.
Счётчики — [число успешных получений, следующая высота]. Вызов должен выплатить
точную сумму; следующая высота становится высота включения + период.
Пропущенные периоды не накапливаются. Каждый вызов подаёт сторона с полномочиями получателя; баланс должен покрывать резерв и комиссии. Фонового планировщика в консенсусе нет.
Постепенное освобождение
tranche_vesting задаёт получателя, first_unlock_height, положительный
период, tranche_micronoid, mature_at и потолок комиссии. Счётчики —
[освобождённая сумма, следующая высота]. Каждый вызов выплачивает ровно один
транш и сдвигает сохранённую высоту на период от предыдущей высоты.
Пропущенные транши можно получить по одному за вызов. На высоте полного созревания получатель может закрыть контракт и забрать остаток. Это дискретное освобождение, а не непрерывный поток средств по часам.
Выбор параметров
При цели 30 секунд сутки номинально составляют 2 880 блоков; точное время
не гарантировано. Учитывайте подтверждения и реорганизации около границ.
Потолок 1 NOID разрешает комиссию до этой суммы, а не списывает 1 NOID за
создание условий. Недостаточный баланс или потолок ниже требуемой комиссии
может помешать вызову. Пополнение — отдельная обычная транзакция кошелька.
Собственная программа комбинирует счётчики, утверждения, проверки получателей и высот в пределах 16 инструкций. Проверьте все режимы ветвей и закрытие. Точные поля конструкторов приведены в API, формы и подтверждение — в руководстве GUI.