核心合约携带两个继承自参考设计的奖励计划:按交易量发放的代币激励,与创作者收益的现金返还。两者都在已部署的代码中,上线时都处于未启用状态,都需要治理操作开启。
代币激励#
开启后,核心合约在交易量累加器中按天记录每位交易者的计价资产交易量,并按比例发放每日定量的激励代币。
| 要素 | 说明 |
|---|---|
| 计划 | 管理员调用 adminUpdateTokenIncentives(startTime, endTime, secondsInADay, dayNumber, tokenSupplyPerDay, incentiveCoin) |
| 注资 | fundTokenIncentives(amount) 把激励代币从出资方转入合约的激励账本;账本单独记账,误转入的代币不计入 |
| 获得 | trackVolume 开启时,每笔曲线交易把交易者的计价资产交易量加入当天的累加器 |
| 领取 | claimTokenIncentives(user) 支付用户在已结束日期中未领取的份额;任何人都可以为某个用户触发领取,款项始终付给该用户 |
| 记录 | initUserVolumeAccumulator、syncUserVolumeAccumulator、closeUserVolumeAccumulator 管理用户记录;关闭记录时支付其中持有的原生资产返还 |
计划只支付它持有的部分:超过激励账本的领取会回退,而不会动用其他任何资金。
现金返还#
现金返还代币的创作者收益返还给买家而不是付给创作者。在这类代币上,每笔买入把该笔交易的创作者收益记入买家的返还余额,以该交易的计价资产计。
| 要素 | 说明 |
|---|---|
| 指定 | 代币从发行起即为现金返还代币;该标志要求协议的现金返还开关处于开启状态 |
| 累计 | 每笔买入的创作者收益记入 cashbackBalance(buyer, quoteAsset) |
| 领取 | claimCashback(user, quoteAsset) 把余额付给用户;任何人都可以触发 |
| 上线状态 | 现金返还开关关闭,所以不存在现金返还代币 |
交易量累加器视图#
globalVolumeAccumulator() 与 userVolumeAccumulator(user) 暴露计划所读取的计数器:总计与未领取的激励代币、当天交易量与最后更新时间。它们是只读的,查询不花钱。
开启#
开启任一计划都是协议管理员的治理操作(见 角色与治理):setTrackVolume、adminUpdateTokenIncentives(发出 AdminUpdateTokenIncentives 事件)与 toggleCashbackEnabled。这些标志随时可以通过核心合约的 global() 视图读取,应用的“协议参数”页也会显示。计划开启时本页会更新并附上计划安排。