合约docs/contracts/templates.md

六种模板与自定义程序

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

ParanO(1)d 技术文档共识行为以源代码为准。