#reward #lp #incentives #pool #tokens #astroport #schedule

astroport-incentives

Astroport Incentives 合约分配奖励给 LP 投资者

6 个版本 (稳定版)

新版本 1.2.0 2024年8月21日
1.2.0-vxastro-rc.12024年6月20日
1.0.1 2024年3月26日
1.0.0 2024年2月7日

#17 in 神奇豆

Download history 87/week @ 2024-05-01 85/week @ 2024-05-08 27/week @ 2024-05-15 48/week @ 2024-05-22 124/week @ 2024-05-29 294/week @ 2024-06-05 142/week @ 2024-06-12 428/week @ 2024-06-19 101/week @ 2024-06-26 127/week @ 2024-07-03 100/week @ 2024-07-10 68/week @ 2024-07-17 103/week @ 2024-07-24 63/week @ 2024-07-31 72/week @ 2024-08-07 163/week @ 2024-08-14

430 次每月下载
6 个crate(3 个直接使用) 中使用

GPL-3.0-only

1MB
6K SLoC

Astroport Incentives(原名 Generator)

Astroport Incentives 合约分配各种 LP 令牌的代币奖励,并按比例分配给 LP 投资者。这是原始 Generator 合约的完全重构版本。在这个版本中,我们支持 cw20 和原生 LP 令牌。新的 generator 还去除了代理合约,使添加激励措施(无需权限!)变得更加容易。然而,添加新的奖励计划可能需要支付激励化费用,这是为了防止垃圾信息。另一个改进是,ASTRO 的排放按秒而不是按区块计算,这对于多链协议 Astroport 来说更有意义。

端点描述

合约支持以下执行端点

  • setup_pools - 可以由所有者或 generator 控制器调用。重置之前的活跃池并设置新的分配点。
  • deposit - 将 LP 令牌存入 generator 以获得奖励。奖励将自动更新和提取。所有在 Astroport 工厂注册的池都是可投资的。然而,这并不意味着池具有激励措施。
  • withdraw - 从 generator 中提取部分或全部 LP 令牌。奖励将自动更新和提取。
  • claim_rewards - 更新并提取与LP代币相关联的所有奖励。此端点接受多个LP代币。
  • set_tokens_per_second - 设置每秒ASTRO排放的新数量。只有所有者可以调用此端点。
  • incentivize - 将新的奖励计划添加到特定池中。将充分考虑并汇总所有重叠的计划。这是一个无需权限的端点。然而,如果此奖励是新的,则需要支付激励费用。
  • remove_reward_from_pool - 完全从池中删除奖励。然而,将考虑当前点的所有累积奖励。只有所有者可以调用此端点。必须提供剩余奖励接收者地址。
  • update_config - 用于更新通用合约设置。只有所有者可以调用此端点。
  • update_blocked_tokens_list - 更新不允许使用ASTRO激励以及不能用作外部奖励的代币列表。只有所有者可以调用此端点。
  • deactivate_pool - 只有工厂可以调用此端点。在工厂中从注销上下文中调用。
  • propose_new_ownerdrop_ownership_proposalclaim_ownership - 用于更改所有权的端点。只有当前所有者可以提议新所有者或取消提议,只有提议的所有者可以声称所有权。

存款

任何人都可以通过直接使用提供的本地LP代币进行deposit调用或通过cw20发送钩子存款。合约检查LP代币是否对应于工厂中注册的对。任何LP代币都默认可质押,但这并不意味着它在生成器中被激励。

deposit_figure

提取

部分或全部从生成器中提取LP代币。奖励将自动更新和提取。

withdraw_figure

激励

将新的奖励计划添加到特定池中。将充分考虑并汇总所有重叠的计划。这是一个无需权限的端点。然而,如果此奖励是新的,则需要支付激励费用。奖励计划按周期计数,其中周期为一周。每个周期从UTC周一00:00开始,到周日23:59结束。新的奖励计划立即开始,并持续到下一个周一加上计划中指定的周数。

下图中显示了可能的场景。第一行表示当前的奖励计划,第二行红色线表示新的奖励计划,第三行表示结果。

incentivize_figure

更新池奖励

这是内部逻辑,每当LP代币数量发生变化、添加新的奖励计划或提取奖励时都会启动。每次调用update_rewards时,累积奖励/总LP质押价值都会添加到当前奖励索引中。rps - 每秒奖励

update_rewards_figure

限制和要求

  1. 链不允许以bech32地址的形式铸造本地代币。即wasm1xxxxxxx命名空间被禁止,但factory/wasm1xxxxxxx/astroport_lp是允许的。
  2. 链有TokenFactory模块。产生的命名空间严格遵循这些规则
  3. 生成器假设活跃池集合大小限制在合理值(即最大30)。生成器控制器和所有者必须考虑这一点。否则,一些与活跃池工作的端点可能会由于gas限制而失败。

依赖关系

~15MB
~329K SLoC