这个点挺有意思,作为图灵完备的合约系统,肯定是可以实现的,不过我不建议用 auto_exec 合约,因为那是系统级别的服务不应该开放给普通合约,而且 quota limit 有限制,很容易超。
这个需求本质上是在原有账户余额基础上增加债务余额,并注册偿还路径。所以标准的外部账户无法满足这个要求,只能使用合约账户。
具体来说合约账户有两个支付动作,一个是标准付款,扣除账户余额资金,一个是债务付款,在余额充足情况下优先扣除余额,不足则记录一笔债务,并记录债权人信息。任何时候该合约收到一笔付款,即优先向债权人列表中的债权人偿付债务。如果债权人提供的收款地址也是一个类似的合约,则可实现“自动逐级偿付”的功能。
忘记时间需求了,在签署债务支付时增加一个时间点即可。麻烦的在于偿付触发。在账户收到一笔新款时触发时间(区块高度)判断相对容易,此外可以通过合约写明在账户对外付款时必须先偿付所有欠款。但要想实现用户余额充足,到期自动还款还是需要有个触发动作的。建议债权人主动触发。
不知道这个想法技术上能否实现?