You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
An initial version of the @SizeCredit fixed-rate lending market was implemented using a UUPSUpgradeable contract for the ETH/USDC pair. The first version was not meant to be used by other pairs, so this design seemed appropriate. Later, the team decided to launch more markets, which resulted in many different instances of the same contract deployed for each pair, which is very painful to manage. All ACL updates require multiple contract calls, and so do upgrades. This results in more manual and DevOps work, which can be time-consuming and risky because of human errors.
📝 Details
In order to simplify the management of dozens of contracts, it would be good if it were possible to migrate a UUPSUpgradeable proxy to UpgradeableBeacon proxy.
🧐 Motivation
An initial version of the @SizeCredit fixed-rate lending market was implemented using a UUPSUpgradeable contract for the ETH/USDC pair. The first version was not meant to be used by other pairs, so this design seemed appropriate. Later, the team decided to launch more markets, which resulted in many different instances of the same contract deployed for each pair, which is very painful to manage. All ACL updates require multiple contract calls, and so do upgrades. This results in more manual and DevOps work, which can be time-consuming and risky because of human errors.
📝 Details
In order to simplify the management of dozens of contracts, it would be good if it were possible to migrate a UUPSUpgradeable proxy to UpgradeableBeacon proxy.
In addition to the untested, dangerous migration, it seems like there's a more direct bottleneck, which is the usage of
address private _implementation
on slot 0, which would clash with my existing contract's data.This issue suggests migrating UpgradeableBeacon storage slots to ERC-7201 for easier migration in such cases.
The text was updated successfully, but these errors were encountered: