@@ -43,6 +43,7 @@ export const defaultGeyserStats = (): GeyserStats => ({
43
43
unlockedRewards : 0 ,
44
44
bonusRewards : [ ] ,
45
45
bonusRewardsVal : 0 ,
46
+ hasMultiplier : true ,
46
47
} )
47
48
48
49
export const defaultVaultStats = ( ) : VaultStats => ( {
@@ -65,9 +66,8 @@ const getGeyserDuration = (geyser: Geyser) => {
65
66
}
66
67
67
68
export const getCalcPeriod = ( geyser : Geyser ) => {
68
- const { scalingTime } = geyser
69
69
const geyserDuration = getGeyserDuration ( geyser )
70
- return Math . max ( Math . min ( geyserDuration , parseInt ( scalingTime , 10 ) ) , DAY_IN_SEC )
70
+ return Math . max ( geyserDuration , DAY_IN_SEC )
71
71
}
72
72
73
73
export const getGeyserTotalDeposit = ( geyser : Geyser , stakingTokenInfo : StakingTokenInfo ) => {
@@ -93,6 +93,7 @@ export const getGeyserStats = async (
93
93
ls . computeAndCache < GeyserStats > (
94
94
async ( ) => ( {
95
95
duration : getGeyserDuration ( geyser ) ,
96
+ hasMultiplier : geyser . scalingFloor !== geyser . scalingCeiling ,
96
97
calcPeriodInDays : getCalcPeriod ( geyser ) / DAY_IN_SEC ,
97
98
totalDeposit : parseFloat ( formatUnits ( geyser . totalStake , stakingTokenInfo . decimals ) ) ,
98
99
totalDepositVal : getGeyserTotalDeposit ( geyser , stakingTokenInfo ) ,
@@ -216,10 +217,10 @@ const calculateAPY = (inflow: number, outflow: number, periods: number) => (outf
216
217
* APY = (1 + (outflow / inflow)) ** periods - 1
217
218
*
218
219
* inflow = (amount staked by vault * price of the staking token)
219
- * outflow = (reward that will be unlocked by vault in the next `scalingTime * price of reward token)
220
+ * outflow = (reward that will be unlocked by vault in the next calcPeriod * price of reward token)
220
221
* periods = number of `calcPeriod` in a year
221
222
*
222
- * calcPeriod = max( min(geyserDuration, scalingTime), day )
223
+ * calcPeriod = min(geyserDuration, 30 days )
223
224
*/
224
225
export const getUserAPY = async (
225
226
geyser : Geyser ,
@@ -233,14 +234,13 @@ export const getUserAPY = async (
233
234
) =>
234
235
ls . computeAndCache < number > (
235
236
async function ( ) {
236
- const { scalingTime } = geyser
237
237
const { decimals : stakingTokenDecimals , price : stakingTokenPrice } = stakingTokenInfo
238
238
const { decimals : rewardTokenDecimals , symbol : rewardTokenSymbol } = rewardTokenInfo
239
239
const rewardTokenPrice = await getCurrentPrice ( rewardTokenSymbol )
240
240
const calcPeriod = getCalcPeriod ( geyser )
241
241
const drip = await ( lock
242
- ? getUserDrip ( geyser , lock , additionalStakes , parseInt ( scalingTime , 10 ) , signerOrProvider )
243
- : getStakeDrip ( geyser , additionalStakes , parseInt ( scalingTime , 10 ) , signerOrProvider ) )
242
+ ? getUserDrip ( geyser , lock , additionalStakes , calcPeriod , signerOrProvider )
243
+ : getStakeDrip ( geyser , additionalStakes , calcPeriod , signerOrProvider ) )
244
244
245
245
const stakedAmount = BigNumber . from ( additionalStakes )
246
246
. add ( lock ? lock . amount : '0' )
0 commit comments