质押仓位
Staked position 包
该包提供操作质押仓位的接口。主要入口是 StakedPosition 结构体。
开立仓位
用户可使用 stake 函数开立仓位。开立时需以毫秒为单位指定锁定期限,且锁定期限必须在 Afterburner 金库配置所设的范围之内。
锁定的仓位将按所配置的 Afterburner 金库乘数获得额外奖励。
收取奖励
奖励收取分三个阶段:
用户先调用 begin_harvest<STAKE> 函数;
针对每种奖励,用户调用 harvest_rewards<STAKE, REWARD> 函数,以获取按类型 `Coin<REWARD>` 累计的奖励;
最后调用 end_harvest 函数完成流程,该函数会发出相应事件。
Strict 实现下,用户可随时领取奖励。
Relaxed 实现下,用户只有在仓位解锁后才能领取奖励。
追加质押
用户可随时使用 deposit_principal 函数增加仓位的质押数量。为锁定中的仓位追加质押后,锁定期会重新计算。
提取质押
用户可使用 withdraw_principal<STAKE> 函数提取质押本金。仓位必须处于解锁状态才能提取。
质押在 Strict Afterburner 金库中的仓位,无法在锁定期结束前解锁。
延长仓位锁定
用户可使用 renew_lock 函数延长锁定期。
合并仓位
用户可使用 join 函数将两个仓位合并。合并后的仓位取两者中较晚的锁定开始时间和较长的锁定期限。
拆分仓位
用户可使用 split 函数将一个仓位一分为二。累计奖励按拆分数量占质押总量的比例在两个仓位之间分配。其余参数与原仓位保持一致。
关闭仓位
用户可使用 destroy 函数删除不再活跃的仓位。被销毁的仓位不得残留任何本金或奖励。
Last updated