Proposal #90

Fix Interlay Escrow Rewards

Democracy
2yrs ago
11
Tabled

Fix Interlay Escrow Rewards

The "Escrow" pallet is distributing too many rewards per block because it incorrectly updated the RewardPerBlock variable at the start of "Year 2". This is calculated using the following formula:

rewardPerBlock = totalBalance / emissionPeriod

Where totalBalance is the total amount of INTR we have scheduled to distribute over the emissionPeriod (one year). The implementation actually uses the total balance assigned to EscrowAnnuityAccount which also includes unclaimed INTR already distributed. This isn't an issue for the Vault rewards because we transfer those funds from VaultAnnuityAccount to FeeAccount, but in this case we then do not have enough funds to fulfil the expected rewards.

:link: https://interlay.subsquare.io/democracy/proposals/0

The subsequent adjustment to the Vault rewards added more rewards to the Escrow (staking) annuity pallet - this is what distributes rewards each block. This also updated the RewardPerBlock incorrectly because it used the previous (invalid) figure and additionally didn't align until the end of the epoch as intended.

:link: https://interlay.subsquare.io/democracy/proposals/86

This proposal corrects the remaining calls previously scheduled in the "Activate INTR Staking Rewards" proposal to do the following:

  • at block 4400000, reduce RewardPerBlock to 261148158032 - the remaining surplus is distributed over the remaining blocks of year 2
  • at year 3 set RewardPerBlock to 47564687975, don't update for year 4
  • transfer year 3 and 4 rewards as before
  • set RewardPerBlock to zero at end of year 4 to stop distributing rewards
Edited
Reply
Up
Share
Second
No current seconds
This proposal has been turned into referendum.
Call
Metadata
Timeline2
Comments