Proposal to upgrade the USDI contract on Optimism to support 2 reserve tokens

As Bridged USDC.e has been officially depricated on Optimism, Interest Protocol should migrate to Native USDC. As the reserve is currently in bridged USDC.e, we propose to allow both USDC versions to exist as reserve assets simultaneously.

Eventually, at a time where no more bridged USDC.e exists in the reserve, a future proposal can depricate this reserve token completely and return to single reserve at that time.

This is specifically for the Optimism deployment of Interest Protocol only.

Relevant References

Migrating to the Native USDC-OP

Implementation

The new Implementation for USDI now has a primary and a secondary reserve. These reserves are assumed to have the same amount of decimals, as USDC.e and USDC are both decimal 6.

The execution of the proposal will set the primary reserve to Native USDC and the secondary to the currently used Bridged USDC.e.

There are now functions to deposit and withdraw separately for each reserve, which users are free to do at any time in any amount for which there exists liquidity.

The total reserve is calculated with the simple addition of these two token balances on the contract.

4 Likes

I was trying to read the code comments but the term ‘USDC’ is used somewhat interchanably for USDC.n (native) USDC.e (bridged) and the USDC.r (total USDC reserve).

smart contract code changes extensively tested?!. :wink:

The key line is in the final function to calculate the reserve ratio. usdc_amount mainly refers to the token being 6 decimals. As mentioned, this upgrade is intended for both reserves to be 6 decimals and does not include checks for this.

The tests were bundled into the VELO stuff even though these are separate proposals.