For the complete documentation index, see llms.txt. This page is also available as Markdown.

金库

Vault 包

该包提供操作金库的接口。主要入口是 AfterburnerVault 结构体——用户可将类型为 Coin<STAKE> 的代币质押进该金库。金库可添加任意数量的奖励,并按每种奖励各自的发放计划向质押者发放。用户进入金库时可以锁定仓位以获得额外奖励。在 Strict 实现下,奖励可随时领取;在 Relaxed 实现下,则需等锁定期结束后才能领取。

Strict 与 Relaxed 实现对比

Afterburner 金库允许用户锁定仓位,借助乘数获得更多奖励。但在瞬息万变的 DeFi 环境中,锁定的常见弊端是:市场上可能出现回报更高的资金去处,而资产被锁定的用户只能错过。

为解决这一问题,我们提出了金库的 Relaxed 变体——允许用户在锁定期结束前解锁仓位的实现。在这种情况下,用户只能获得仓位实际处于锁定状态期间的额外奖励。

与之相对,Afterburner 金库也提供 Strict 版本——用户只有在锁定期结束后才能解锁并提取仓位的实现。

~~~~~~~

Strict 实现下,用户可随时领取奖励。

Relaxed 实现下,用户只有在仓位解锁后才能领取奖励。

~~~~~~~

创建金库

方法 new<STAKE> 负责创建金库。它会创建一个不含任何发放计划的新金库。参数之一是 lock_enforcement,用于选择创建 Strict(lock_enforcement = 0)或 Relaxed(lock_enforcement = 1)金库。金库创建后,必须执行 share_vault<stake> 函数将其共享。

金库要正常运作,需要由金库所有者初始化奖励发放。调用 initialize_reward<STAKE, REWARD> 方法即可完成,该方法可设置发放计划、发放速率和发放延迟。

~~~~~~~~

发放计划(Emission schedule)——相邻两次发放事件之间的时间间隔,以毫秒计。

发放速率(Emission rate)——每次发放事件发放的代币数量。

发放延迟(Emission delay)——发放开始前的等待时间。

~~~~~~~~

追加与上调奖励

所有者可以使用 add_reward<STAKE, REWARD> 方法向金库追加奖励,或使用 increase_emissions_for<STAKE, REWARD> 函数上调奖励发放速率。

Last updated