6 个版本 (稳定版)
新版本 1.2.0 | 2024年8月21日 |
---|---|
1.2.0-vxastro-rc.1 | 2024年6月20日 |
1.0.1 | 2024年3月26日 |
1.0.0 | 2024年2月7日 |
#17 in 神奇豆
430 次每月下载
在 6 个crate(3 个直接使用) 中使用
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_owner
、drop_ownership_proposal
、claim_ownership
- 用于更改所有权的端点。只有当前所有者可以提议新所有者或取消提议,只有提议的所有者可以声称所有权。
存款
任何人都可以通过直接使用提供的本地LP代币进行deposit
调用或通过cw20发送钩子存款。合约检查LP代币是否对应于工厂中注册的对。任何LP代币都默认可质押,但这并不意味着它在生成器中被激励。
提取
部分或全部从生成器中提取LP代币。奖励将自动更新和提取。
激励
将新的奖励计划添加到特定池中。将充分考虑并汇总所有重叠的计划。这是一个无需权限的端点。然而,如果此奖励是新的,则需要支付激励费用。奖励计划按周期计数,其中周期为一周。每个周期从UTC周一00:00开始,到周日23:59结束。新的奖励计划立即开始,并持续到下一个周一加上计划中指定的周数。
下图中显示了可能的场景。第一行表示当前的奖励计划,第二行红色线表示新的奖励计划,第三行表示结果。
更新池奖励
这是内部逻辑,每当LP代币数量发生变化、添加新的奖励计划或提取奖励时都会启动。每次调用update_rewards时,累积奖励/总LP质押价值都会添加到当前奖励索引中。rps - 每秒奖励
限制和要求
- 链不允许以bech32地址的形式铸造本地代币。即
wasm1xxxxxxx
命名空间被禁止,但factory/wasm1xxxxxxx/astroport_lp
是允许的。 - 链有TokenFactory模块。产生的命名空间严格遵循这些规则
- 生成器假设活跃池集合大小限制在合理值(即最大30)。生成器控制器和所有者必须考虑这一点。否则,一些与活跃池工作的端点可能会由于gas限制而失败。
依赖关系
~15MB
~329K SLoC