技术参考

本页面记录了 Box 智能合约及其融资模块,供希望了解链上机制和操作护栏的读者参考。

Box 的功能

  • 持有单一基础资产(例如 USDC)并发行 ERC-4626 份额。

  • 在基础资产与白名单 ERC-20 代币之间进行配置分配。

  • 通过白名单融资模块进行借贷。

  • 使用代币预言机和融资模块净值(NAV)跟踪净资产值。

架构

spinner

适配器是 Box 的预期资金来源。Box 份额由适配器持有并通过 previewRedeem 报告回 Vault V2(缓存于 BoxAdapterCached).

角色与权限

所有者

  • 设置策展人(curator)。

  • 转移所有权。

  • 设置 skimRecipient.

策展人

  • 管理分配器和融资模块。

  • 添加/移除白名单代币和预言机。

  • 配置滑点限额。

  • 提交带时间锁的变更。

  • 可发起关停(shutdown)。

守护者

  • 对带时间锁的操作进行否决(revoke).

  • 触发关停。

  • 可在清算前从关停中恢复。

  • 仅在最终清算阶段可能更新预言机。

  • 通常由代表 Vault V2 份额持有者的 Aragon DAO 控制。

分配器

  • 执行兑换(allocate, deallocate, reallocate).

  • 通过融资模块抵押抵押品、借款、还款。

  • 可使用 flash 用于原子多步操作。

资金来源(Feeder)

  • 唯一被允许存入/铸造份额的角色。

  • 在实践中,适配器充当资金来源。

时间锁治理

关键功能需要时间锁延迟,并且必须通过 submit() 排队后方可执行。治理刻意设计为允许 Vault V2 份额持有者通过由 Aragon DAO 控制的守护者进行干预,使其能够否决已排队的操作或在必要时触发关停。

典型的带时间锁操作包括:

  • 添加/移除资金来源

  • 设置 maxSlippage

  • 添加代币、预言机、融资模块或额度(facilities)

  • 设置守护者

时间锁延迟默认为 0;部署时应初始化为非零延迟以防止立即执行。

配置与兑换安全性

Box 强制执行 两层滑点控制:

  1. 每次兑换滑点检查 基于预言机价格,每次兑换必须满足 接收 ≥ 预期 * (1 - maxSlippage).

  2. 周期滑点预算 实现的滑点相对于在 slippageEpochDuration期间的净资产值进行跟踪。 maxSlippage如果累计滑点超过

,在周期重置之前将阻止进一步的兑换。 winddown

spinner

期间,每周期限额被忽略,每次兑换的容差线性上升至 1%。

spinner

生命周期状态

融资模块 Box 通过 IFunding

  • 模块集成借贷协议。每个模块由 Box 拥有并支持:

  • 额度(协议特定配置,facilities)

  • 白名单抵押代币

白名单债务代币 Box 仅会添加 空的

融资模块(无额度、无代币、无债务)。

  • FundingAave(Aave v3) facilityData"").

  • 必须为空( 使用 Aave Pool 及可选的.

  • eMode pledge

  • 提供抵押并启用抵押品使用。 borrow

  • 将债务代币返回给 Box。 净资产值为抵押品价值 - 债务价值

,下限为零。

  • FundingAave(Aave v3) FundingMorpho(Morpho Blue)

  • 编码 Morpho 市场参数。

  • 支持每个模块的多个额度(facilities)。 通过 lltvCap

  • eMode / 提供抵押并启用抵押品使用。 对每个市场的 LLTV 强制实施 LTV 上限。

  • 按额度验证。

按额度计算 NAV 并聚合,结果下限为零。

闪电操作 分配器(或在清算期间的任何人)可以调用 flash()

以临时获取流动性用于复杂序列。闪电操作期间 NAV 会被缓存以防止操纵,且闪电代币必须在同一交易中归还。

最后更新于