VersionedInitializable
Author: Lens Protocol, inspired by Aave's implementation, which is in turn inspired by OpenZeppelin's Initializable contract
Helper contract to implement initializer functions. To use it, replace
the constructor with a function that has the initializer
modifier.
WARNING: Unlike constructors, initializer functions must be manually
invoked. This applies both to deploying an Initializable contract, as well
as extending an Initializable contract via inheritance.
WARNING: When used with inheritance, manual care must be taken to not invoke
a parent initializer twice, or ensure that all initializers are idempotent,
because this is not dealt with automatically as with constructors.
This is slightly modified from Aave's version.
State Variables
originalImpl
address private immutable originalImpl;
Functions
initializer
Modifier to use in the initializer function of a contract.
modifier initializer();
constructor
constructor();
getRevision
returns the revision number of the contract Needs to be defined in the inherited class as a constant.
function getRevision() internal pure virtual returns (uint256);