[IP] hyUSD Base 3.4.0 Upgrade

Summary

Upgrade all hyUSD core contracts and assets from version 3.0.1 to version 3.4.0 and upgrade to a new Governance and TimelockController instances via a spell contract.

Abstract

Currently hyUSD on Base is using version 3.0.0 of the Reserve Protocol. There isn’t necessarily a problem with remaining on this version, but there is an upgrade available that will make hyUSD more efficient.

The proposed proposal, if enacted, would use a spell contract prepared by ABC Labs; a contract that will handle the majority of the onchain calls necessary to complete the upgrade. The spell contains 2 steps: (i) an upgrade step; and (ii) a cleanup step. The spell has been audited by ABC Lab’s security partner, Trust Security.

Spell: Upgrade3_4_0 | Address 0x1744c9933feb8e76563fce63d5c95a4e7f967c2a | BaseScan

Problem Statement

Currently, when upgrading any contract tied to the RToken it has to be done manually one at a time in individual governance proposals. The spell contract allows for all the contract addresses to be updated in one governance proposal.

Rationale

By upgrading all hyUSD core contracts and assets from version 3.0.0 to version 3.4.0 and upgrading to a new Governance and TimelockController instance this makes High Yield USD on Base more efficient.

Draft instructions have been provided here by ABC Labs:

Step 1 - Upgrade

To execute step 1 of the upgrade spell, RToken governance should prepare a proposal containing two calls:

  1. main.grantRole(0x4f574e4552000000000000000000000000000000000000000000000000000000, 0x1744c9933feb8e76563fce63d5c95a4e7f967c2a)
  2. spell.castSpell1(0xCc7FF230365bD730eE4B352cC2492CEdAC49383e)

As step 1 is executed the spell will revoke its access as well as rotate the TimelockController that admins each RToken deployment.

Step 2 has a number of prerequisites before execution

  1. it must be voted on in the new Governance contract deployed in step 1
  2. all reward token balances should be claimed
  3. all rebalancing auctions must run to completion
  4. all revenue auctions must run at least until all surplus balances are below the minTradeVolume

Step 2 - Cleanup

To execute step 2 of the upgrade spell, RToken governance should prepare a proposal containing two calls:

  1. main.grantRole(0x4f574e4552000000000000000000000000000000000000000000000000000000, 0x1744c9933feb8e76563fce63d5c95a4e7f967c2a)
  2. spell.castSpell2(0xCc7FF230365bD730eE4B352cC2492CEdAC49383e)

Risks

By upgrading to the latest version of the Reserve Protocol, the risk lies in keeping the code the same and not moving to an improved version of the RToken.

  • Yes, I am for this proposal
  • No, I am against this proposal
0 voters
1 Like