[PCP-17] - Rewards Claim Function - Reactivation

TL;DR Summary

  • There was a recent governance proposal fixing a rewards rounding error bug, SIP-15.
  • In this SIP 15 bug fix, there was a bug migrating the reward state as part of the contract upgrade, this resulted in some users receiving more rewards than they were due in some cases.
  • Once the incorrect rewards calculations appeared, Seamless Guardians temporarily paused rewards claiming to sufficiently investigate the issue.
  • Now with a fix and path forward in place, governance must review and vote on this proposal to apply the fix so that reward claiming is unpaused.
  • This proposal seeks to upgrade the RewardsController implementation contract again with the fixed code and introduce a new admin role/function that will allow the Seamless Guardians to apply reward state patches to the users impacted by this bug. After the reward state is fixed, the Guardians will renounce this role.
  • Users will receive ALL rewards they should have accrued based on usage and participation in Seamless supply/borrow markets and Seamless is in direct contact with users who may have incorrectly claimed rewards prior to the Rewards Claim button being paused after SIP 15 was executed onchain.

Context & Motivation
After SIP 15 was executed onchain, a couple of users observed reward claiming and calculation errors. This finding prompted Eng contributors to immediately investigate, identify, and confirm there was a bug with rewards calculations. Once the bug was confirmed, rewards were temporarily paused from claiming. Now that Eng contributors have a fix and path forward in place, this proposal seeks to execute on the fix onchain which requires approval from community governance.

Proposed remediation steps:

  1. Deploy fixed RewardsController contract.
  2. Create governance proposal onchain to upgrade the RewardsProxy to use the new RewardsController implementation.
  3. If the proposal passes, after the timelock is executed, the Guardians will correct the incorrect user reward accruals onchain. *This must be calculated at the time the new implementation is deployed onchain to get an exact diff amount.
  4. Guardians will renounce this temporary admin permission permanently.
  5. Guardians will unpause claiming of rewards allowing users to claim rewards on the app as usual.

Additional notes:

  • This temporary admin role can only adjust user reward accrual amounts (unclaimed). It has no power of the lending pool, supplied liquidity (including accrued interest) or other Seamless Protocol contracts.

Here is the github PR for the updated rewards contract, a deployed and verified version will be available onchain shortly:

Next Steps
Seamless Contributors recognize this is a timely fix and are hopeful that if there is alignment from the community to move forward, that this approach to fixing the rewards calculation could be fast tracked to reduce added time where users are unable to claim rewards. After moving to an onchain vote and waiting the necessary timelock, voting period, and cool down periods, this temporary admin access could be enabled and users can expect an ability to claim rewards on the app.

As a follow up item, we would like to request that an Eng contributor publish a Post Mortem report to the rest of community.

6 Likes

Thanks @lewis and thanks to all Seamless contributors who helped put this plan together! I fully support executing on this as soon as is feasible.

1 Like

What is broken must be fixed. No doubt about that!

I support executing this as soon as all the necessary checks are made to ensure the issue has been completely resolved.

1 Like

This looks good to me - thanks for the swift analysis and fix. Great that users will receive ALL rewards as normal. I fully support this proposal!

great work by the engineers in swarming on this and identifying the root cause.

fully support this.

Totally Support this proposal. Need to fix it ASAP. Really appreciate the hard work of the devs.

Thanks for the update on the recent governance proposal and the efforts to address the rewards rounding error bug. I appreciate the swift action taken by Seamless Guardians to investigate and propose a solution.

As an enthusiastic supporter of DeFi and an active participant in the Seamless Protocol, I fully understand the importance of accurate rewards distribution. I am confident that with the community’s support, we can swiftly implement these changes and restore the rewards claiming functionality, ensuring all users receive their deserved rewards.

1 Like

Contract with fix is deployed on this address: RewardsController | Address 0x36321e1b5e41f3b719e7618dae96619164d1bd89 | BaseScan

With sufficient interest from the community and to honor the fast track request to unpause rewards claiming, moving this to an onchain vote on Tally.

What about users who received more than they should have?

There is a small handful of them, and contributors have been contacting those users to share more about the claiming bug.

This makes me happy. I hope everyone was honest))))

Hi guys, this topic went to onchain voting on Tally Tally | Seamless Protocol Proposal. It passed after reaching quorum meaning. Since passing, temp admin access was granted to update calculation of rewards for all users and reactivate rewards. Rewards claiming is now reactivated and live again!

2 Likes