质押合约
允许质押 Uniswap 交易对流动性池代币以换取 FXS 奖励。
⚠️ 本页面仅适用于非常早期的流动性挖矿池,尽管许多新农场共享功能和名称 ⚠️
基于 Synthetix 的质押合约:
https://docs.synthetix.io/incentives/
描述
Frax 用户能够在选定的 Uniswap 流动性池代币中质押,以换取 FXS 奖励。未来的池和激励措施可以由治理添加。
部署
流动性池代币(LP)
Uniswap FRAX/WETH LP: 0xFD0A40Bc83C5faE4203DEc7e5929B446b07d1C76
Uniswap FRAX/USDC LP: 0x97C4adc5d28A86f9470C70DD91Dc6CC2f20d2d4D
Uniswap FRAX/FXS LP: 0xE1573B9D29e2183B1AF0e743Dc2754979A40D237
Uniswap FXS/WETH LP: 0xecBa967D84fCF0405F6b32Bc45F4d36BfDBB2E81
质押合约
Uniswap FRAX/WETH staking: 0xD875628B942f8970De3CcEaf6417005F68540d4f
Uniswap FRAX/USDC staking: 0xa29367a3f057F3191b62bd4055845a33411892b6
Uniswap FRAX/FXS staking: 0xda2c338350a0E59Ce71CDCED9679A3A590Dd9BEC
Uniswap FXS/WETH staking (deprecated): 0xDc65f3514725206Dd83A8843AAE2aC3D99771C88
状态变量
FRAX合约的实例。
奖励代币的实例。
质押代币的实例。
质押周期结束的区块。
每秒最大奖励。
奖励周期,以秒为单位。
合约最后一次更新或状态改变的时间戳。
当前周期内每个代币的实际奖励。
锁定质押的最大提升/权重倍增器。
达到 locked_stake_max_multiplier
的时间(以秒为单位)。
锁定质押的最低质押时间(以秒为单位)。
字符串版本为 locked_stake_min_time_str
。
来自抵押比例(CR)的最大提升/权重乘数。这适用于锁定和未锁定的质押。
记录某个地址上次领取奖励的时间。如果他们在之后的某个时间领取奖励,他们将获得正确的奖励金额,因为 rewardPerTokenStored
是在不断变化的。
给定地址的当前奖励余额。
质押的池代币总量。
考虑了时间和CR加成的 _staking_token_supply
。这不是实际的池代币数量,而是一个“加权分母”。
给定地址质押的池代币余额。
考虑了时间和CR加成的 _balances
,类似于 _staking_token_boosted_supply
。
提供给定地址的锁定质押批次列表。
一个锁定的质押“批次”。
查看函数
totalSupply
获取质押的流动性池代币总数。
stakingMultiplier
根据质押的秒数获取基于时间的质押倍增器。
crBoostMultiplier
获取基于抵押比率(CR)的质押倍增器。
stakingTokenSupply
与 totalSupply()
相同。
balanceOf
获取给定账户质押的流动性池代币数量。
boostedBalanceOf
获取给定账户质押的流动性池代币的加成数量。加成考虑了抵押比率(CR)和基于时间的倍增器。
lockedBalanceOf
获取给定账户锁定的质押流动性池代币数量。
unlockedBalanceOf
获取给定账户解锁的/自由的质押流动性池代币数量。
lockedStakesOf
返回给定账户的所有锁定质押“批次”的数组。
stakingDecimals
返回 stakingToken
的小数位数 (decimals()
)。
rewardsFor
获取给定账户的 FXS 奖励数量。
lastTimeRewardApplicable
在内部用于跟踪 rewardPerTokenStored
。
rewardPerToken
当前质押流动性池代币的 FXS 奖励数量。
earned
返回给定账户的未领取 FXS 奖励数量。
getRewardForDuration
计算给定奖励持续时间(rewardsDuration
)内的 FXS 奖励。
变更函数
stake
质押一些 Uniswap 流动性池代币。这些代币可以自由提取,仅受 crBoostMultiplier()
的加成。
stakeLocked
质押一些 Uniswap 流动性池代币,并将其锁定指定的秒数。作为锁定代币的回报,质押者的基础金额将通过线性时间倍增器进行乘法计算,该倍增器在 secs = 0
时为 1,在 locked_stake_time_for_max_multiplier
时为 locked_stake_max_multiplier
。质押的价值还会乘以 crBoostMultiplier()
。这个乘积值会被加到 _boosted_balances
中,并在计算质押者在给定奖励周期中的份额时作为加权金额。
withdraw
提取解锁的 Uniswap 流动性池代币。
withdrawLocked
提取锁定的 Uniswap 流动性池代币。如果特定 kek_id
质押批次的质押时间尚未到期,则会失败。
getReward
零取 FXS 奖励。
exit
提取所有解锁的池代币并领取奖励。
renewIfApplicable
如果奖励周期的结束时间已到,则续期奖励周期。调用 retroCatchUp()
。
retroCatchUp
续期并更新 periodFinish
、rewardPerTokenStored
和 lastUpdateTime
。
受限函数
notifyRewardAmount
通过事件 RewardAdded
通知人们奖励正在被更改。
recoverERC20
添加此功能以支持从其他系统恢复流动性池奖励,并将其分发给持有者。
setRewardsDuration
设置奖励周期的持续时间。
setLockedStakeMaxMultiplierUpdated
设置锁定质押的最大倍增器。
setLockedStakeTimeForMaxMultiplier
设置锁定质押倍增器达到 locked_stake_max_multiplier
的时间(以秒为单位)。
setLockedStakeMinTime
设置锁定质押的最短时间(以秒为单位)。
setMaxCRBoostMultiplier
initializeDefault
仅在合约生命周期中调用一次。初始化 lastUpdateTime
和 periodFinish
。
修饰符
updateReward
调用 retroCatchUp()
(如果适用),否则同步 rewardPerTokenStored
和 lastUpdateTime
。此外,还会同步提供账户的奖励和 userRewardPerTokenPaid
。
Last updated