The upgradeable-proxy
repo consists of two contracts:
- A non-transparent proxy contract with minimal logic to allow for administrative permissioning and upgradeability.
rely
/deny
are used to permission the proxy to call the implementation contract.setImplementation
is used to upgrade the implementation contract.
UpgradeableProxied
is a contract designed to be inherited by ANY AND ALL implementations that are usingUpgradeableProxy.sol
as their proxy contract.- This contract contains the same storage layout with the implementation address slot taken up by a dummy
bytes32
slot0
variable to prevent unintended overwriting of the implementation address slot.
To run the tests, do the following:
forge test
The IP in this repository was assigned to Mars SPC Limited in respect of the MarsOne SP