Technical details

Smart contracts

It is proposed to use the following new smart contract on the Ethereum Mainnet:

All other contracts remain as documented in previous proposals.

StakeRewardAdviser replacement

The previous StakeRewardAdviser, which is tightly coupled with the buggy RewardPool contract, will be replaced by calling the removeRewardAdviser function of the existing RewardMaster contract, followed by addRewardAdviser to configure its replacement.

This replacement only needs to be done for the unstake action, not for stake, since the classic staking program already closed for new stakes.

New StakeRewardController2

This contract returns modified advice with zero shares of the reward pool, effectively bypassing the need for RewardMaster to attempt to invoke the buggy RewardPool contract to redeem shares.

New Mainnet Staking Rewards vesting pool

vestingPools::addVestingPools([wallet], [poolParams]) will be called on the existing VestingPools contract on the Ethereum Mainnet, where:

  • wallet is the address of the DAO multi-sig address on Ethereum (0x505796f5Bc290269D2522cf19135aD7Aa60dfd77).

  • Final poolParams will be:

    {
      isPreMinted: true,
      isAdjustable: true,
      start: 2022-05-01T00:00:00Z,
      vestingDays: 1,
      sAllocation: 3555666824442, // 3.556M tokens
      sUnlocked: 3555666824442, // 3.556M tokens
      vested: 0
    }

This will result in a poolId of 15 (since 0--12 were created during TGE, and 13 and 14 in previous proposals).

This new pool is required in order to cover the total rewards which were earned via Mainnet classic staking but have not yet been claimed.

Rewards escrow mechanism

The newly minted reward tokens will be immediately released into the StakeRewardController2 contract. In order to protect against any further mishaps, this contract has a rescueErc20 method which would allow the DAO to recover any funds accidentally locked in that contract. It is certainly expected that this emergency rescue mechanism will never be needed as a result of further bugs; however to provide extra assurance to stakers with unclaimed rewards, the contract has been configured so that this mechanism cannot be used prior to 2022-08-15T00:00:00.000Z.

Last updated