Proposal #5 - Mainnet Unstaking Bug Fix

Summary

This proposal describes a bug fix to the staking program on the Ethereum Mainnet, to ensure fair access to any remaining unclaimed rewards in accordance with the staking program defined by LaunchDAO, which launched the Panther protocol and its smart contracts (including Staking) and was approved by 95.16% of voters. This proposal will allow for any staking rewards on Ethereum Mainnet which were not yet redeemed to be claimed as previously approved.
With the proposed fix applied, stakers will receive the rewards that they already accumulated through staking and that are displayed on the staking app.
It is also important to note that all staked tokens are completely safe and unaffected. The bug only affects users’ ability to unstake and claim rewards on the Ethereum Mainnet since the rewards program ended. Nothing on Polygon is affected. Users who have already claimed all their rewards are also unaffected.

Background

The recent completion of Panther’s Classic Staking program on the Ethereum Mainnet was followed by the discovery of an unfortunate bug where the RewardPool contract throws an exception at the time of unstaking tokens, making it impossible for users to unstake them. 3.555M $ZKP issues as rewards are irretrievably locked in the RewardMaster contract because of this.
This situation denies all current $ZKP stakers on Mainnet the opportunity to access their rewards. As such, the Panther development team is proposing the below fix to ensure that users are able to receive their earned rewards as originally approved by the DAO.

Participation

Please review the proposed actions detailed below, and vote to accept or reject them. To participate in voting, you need to have staked $ZKP in Panther's "Classic" staking solution, and/or had staked $ZKP delegated to you.
As per the existing DAO governance structure, voting power is calculated by snapshot.org taking a snapshot of the total number of ZKP tokens staked (and/or received via delegation) on both Ethereum and Polygon at the time when the proposal was created.

Proposed actions

The Panther team proposes a solution to mint new tokens and allow them to be claimed to match the existing rewards earned. This solution also involves “upgrading” the existing contracts to correct the bug, with the following actions:
  1. 1.
    Mint a new pool of 3.556M $ZKP on the Ethereum Mainnet, to cover previously earned but still unclaimed rewards to stakers. This will be minted from the total 450M $ZKP allocated for protocol rewards.
  2. 2.
    Also on Mainnet, replace the existing StakeRewardAdviser contract for the unstake action with a new StakeRewardController2 contract, which bypasses the buggy code in RewardPool, distributes fairly accrued rewards to existing stakers as specified by the previously approved terms of LaunchDAO proposal #3.
  3. 3.
    Release the full 3.556M $ZKP to the StakeRewardController2 contract, so that existing stakers can claim their rewards.