状态机制
Truth Box 状态机详解
enum Status(
Storing,
Selling,
Auctioning,
Paid,
Refunding,
InSecrecy,
Published,
Blacklisted
)
一个 Truth Box 会经历以下状态,全部由合约严格定义:
- Storing:create方法铸造后的初始状态。
- Selling:一口价出售中。
- Auctioning:拍卖中,每次出价会延长deadline。
- Paid:买家已支付,进入退款申请期。
- Refunding:退款仲裁期,Minter/DAO 可处理退款。
- InSecrecy:交易完成后进入保密期,可支付保密费延长。
- Published:内容公开,任何人可读取机密数据, 或者采用createAndPublish铸造。
- Blacklisted:DAO 封禁状态,交易冻结并触发退款/销毁。
状态流程图
- 铸造时可选择 Store(默认)或直接 Publish(createAndPublish)。
- 只有 Storing 状态的 Box 可以 Sell 或 Auction。
- Selling/Auctioning 到期无人购买将转为 Published;
- Selling如有买家则进入 Paid, Auctioning则需要等待deadline截止才会转为Paid。
- Paid 状态下买家可申请退款进入Refunding,或者完成订单进入InSecrecy。
- InSecrecy 期间需支付保密费延长;到期自动转为 Published。
状态期限
- Storing:初始 365 天,仅可在到期前 30 天内延长,单次最多 365 天。
- Selling:固定 365 天上架周期。
- Auctioning:初始 30 天,每次出价重置为 30 天。
- 退款申请期限:默认 7 天,超时则无法申请,且他人可完成订单。
- 退款审核期限:默认 30 天,超时任何人可同意退款。
- InSecrecy:初始 365 天,每次支付保密费可延长 365 天。