OssifiableProxy
OssifiableProxy is an ERC-1967 proxy used for non-Aragon upgradeable contract deployments. Its admin can permanently disable upgrades by setting the proxy admin to the zero address.
There are several slightly different variants of the OssifiableProxy contract. They use different versions of the OpenZeppelin libraries, resulting in slightly different interfaces, but their core functionality remains the same. Every contract listed on this page is deployed behind one of the Lido variants described below; none of them use the vanilla OpenZeppelin ERC1967Proxy directly.
Proxy variants​
Core variant​
Defined in the core repository. Written in Solidity 0.8.9 on top of the OpenZeppelin v4.4 ERC1967Proxy. The upgrade-and-call function takes three arguments: proxy__upgradeToAndCall(address newImplementation_, bytes setupCalldata_, bool forceCall_).
Staking modules variant​
Defined in the staking-modules repository. Written in Solidity 0.8.33 on top of the OpenZeppelin v5 ERC1967Proxy. Following the OpenZeppelin v5 interface changes, the upgrade-and-call function takes two arguments — proxy__upgradeToAndCall(address newImplementation_, bytes setupCalldata_).
Core contracts​
All core protocol contracts are deployed behind the core variant:
- LidoLocator
- Accounting
- StakingRouter
- WithdrawalQueueERC721
- Burner
- TopUpGateway
- VaultHub
- PredepositGuarantee
- OperatorGrid
- ConsolidationMigrator
- ConsolidationBus
- AccountingOracle
- ValidatorsExitBusOracle
- LazyOracle
Staking module contracts​
Community Staking Module​
The following contracts are deployed behind the staking modules variant:
Gates​
- Identified Community Stakers Gate — staking modules variant
- Identified DVT Cluster Gate — staking modules variant, as it was deployed later than the other CSM proxies
Curated Module v2​
All Curated Module v2 contracts, including the gates, are deployed behind the staking modules variant:
- CuratedModule
- MetaRegistry
- Accounting
- ParametersRegistry
- FeeDistributor
- FeeOracle
- ValidatorStrikes
- ExitPenalties