六种模板与自定义程序
模板编译为同一个整数内核。模板名称是钱包便利功能,不是共识应用 白名单。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 指南。