Stake More
The more the merrier
Users can always stake more (inputs: amount > 0) or extend lock time (inputs: amount = 0, lock time > 0) to enjoy more benefits (more Staking Power, more future earning).
Notes:
MULTIPLIER(lockTime) = Multiplier_A*lockTime + Multiplier_B
Multiplier_A = 0.13; Multiplier_B = 0.88 (Admin can Edit)
Remaining lock_time (Rest_duration) must be always <= 24 months
SSA = self_stake_advantage = 2 if self-staking; else = 1.
Self_stake_advantage = 2 (Admin can Edit)
For example, A has staked 10 ETH in B's pool with lock time = 5 months -> Staking Power for 10 ETH locked in 5 months is minted.
CASE 1: Before lock time ends (remaining lock time = rest_duration > 0)
Case 1.1: A further stakes 1 ETH, locked for 3 months
We expect lock time to ends at old_startedAt + 5 months + 3 months
By that time, A has
locked 10 ETH for 5 months (Staking Power already minted)
locked 10 ETH for another 3 months (Staking Power not minted yet)
locked 1 ETH for rest_duration (remaining lock time of 5 months) + 3 months (Staking Power not minted yet)
Amount of Staking Power to be minted for A = mint_staking_power
= SSA* (10*(multiplier(5+3) - multiplier(5)) + (1*multiplier(3 + rest_duration)).
= SSA*(old_amount*(multiplier(old_duration+stake_duration) - multiplier(old_duratrion)) + (stake_amount*multiplier(stake_duration + rest_duration)).
= SSA*( old_amount * multiplier_A * stake_duration + stake_amount * multiplier(stake_duration + rest_duration) ).
Case 1.2: A further stakes 1 ETH (stake_amount = 1, stake_duration = 0)
We expect lock time to ends at old_startedAt + 5 months (unchanged)
By that time, A has
locked 10 ETH for 5 months (Staking Power already minted)
locked 1 ETH for rest_duration (Staking Power not minted yet)
Amount of Staking Power to be minted for A = mint_staking_power
= SSA * 1 * multiplier(rest_duration).
Case 1.2: A extends lock time for 2 months (stake_amount = 0, stake_duration = 2)
We expect lock time to ends at old_startedAt + 5 months + 2 months
By that time, A has
locked 10 ETH for 5 months (Staking Power already minted)
locked 10 ETH for another 2 months (Staking Power not minted yet)
Amount of Staking Power to be minted for A = mint_staking_power
= SSA* 10 * (multiplier(5+2) - multiplier(5))
= SSA* (old_amount*(multiplier(old_durartion+stake_duration) - multiplier(old_duratrion))
= SSA* old_amount*(multiplier_A * stake_duration)
CASE 2: After lock time ends (unlocked; rest_duration = 0)
Case 2.1: A further stakes 1 ETH for 3 months
We expect lock time to ends at now + 3 months
By that time, A has
locked 10 ETH for 5 months (Staking Power already minted)
locked 10 ETH for another 3 months (Staking Power not minted yet)
locked 1 ETH for 3 months (Staking Power not minted yet)
Amount of Staking Power to be minted for A (same as CASE 1 but with rest_duration = 0)
= mint_staking_power
= SSA*( old_amount * multiplier_A * stake_duration + stake_amount * multiplier(stake_duration + rest_duration) ).
= SSA*(10*(multiplier(5+3) - multiplier(5)) + (1*multiplier(3 + rest_duration)).
= SSA*(10*(multiplier(5+3) - multiplier(5)) + (1*multiplier(3)).
Case 2.2: A further stakes 1 ETH (stake_amount = 1, stake_duration = 0)
-> A is not allowed to do this in this case as mint_staking_power would be 0.
Case 2.3: A extends lock time by 2 months (stake_amount = 0, stake_duration = 2)
We expect lock time to ends at now + 2 months
By that time, A has
locked 10 ETH for 5 months (Staking Power already minted)
locked 10 ETH for another 2 months (Staking Power not minted yet)
Amount of Staking Power to be minted for A (same as CASE 1 but with rest_duration = 0)
= mint_staking_power
= SSA* 10 * (multiplier(5+2) - multiplier(5))
= SSA* (old_amount*(multiplier(old_durartion+stake_duration) - multiplier(old_duratrion))
= SSA* old_amount*(multiplier_A * stake_duration)
In order for A to reset his stake in B's pool, A needs to Unstake All before staking anew.
Last updated