ERC-1967 Implementation
Implementing EIP-1967
UUPS proxies are implemented using an ERC1967Proxy
. 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 UUPSUpgradeable
contract comes in. Inheriting from it (and overriding the _authorizeUpgrade
function with the relevant access control mechanism) will turn your contract into a UUPS compliant implementation.
Proxy Delegate
Proxy Delegate: 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.
Eternal Storage
Eternal Storage: Keep contract storage after a smart contract upgrade.
Separating storage from contract logic allows the updated contract to reference historical data instead of needing to read and rewrite into new storage.
Contract Implementation
Dependencies
Last updated