ERC-1967 Implementation
Last updated
Last updated
UUPS proxies are implemented using an . Note that this proxy is not by itself upgradeable. It is the role of the implementation to include, alongside the contract’s logic, all the code necessary to update the implementation’s address that is stored at a specific slot in the proxy’s storage space. This is where the contract comes in. Inheriting from it (and overriding the function with the relevant access control mechanism) will turn your contract into a UUPS compliant implementation.
: Introduce the possibility to upgrade smart contracts without breaking any dependencies.
A proxy contract is used to delegate calls to specific modules as a workaround to the immutability of smart contracts.
Separating storage from contract logic allows the updated contract to reference historical data instead of needing to read and rewrite into new storage.
: Keep contract storage after a smart contract upgrade.