BeaconProxyInitializable
BeaconProxyInitializable
This contract implements a proxy that gets the implementation address for each call from an {UpgradeableBeacon}.
The beacon address is stored in storage slot uint256(keccak256('eip1967.proxy.beacon')) - 1, so that it doesn't
conflict with the storage layout of the implementation behind the proxy.
Available since v3.4.
constructor
constructor() public payable
Initializes the proxy with beacon.
If data is nonempty, it's used as data in a delegate call to the implementation returned by the beacon. This
will typically be an encoded function call, and allows initializing the storage of the proxy like a Solidity
constructor.
Requirements:
beaconmust be a contract with the interface {IBeacon}.
initialize
function initialize(address _admin, address beacon, bytes data) public payable
_beacon
function _beacon() internal view virtual returns (address)
Returns the current beacon address.
beacon
function beacon() external view virtual returns (address)
_implementation
function _implementation() internal view virtual returns (address)
Returns the current implementation address of the associated beacon.
_setBeacon
function _setBeacon(address beacon, bytes data) internal virtual
Changes the proxy to use a new beacon. Deprecated: see {_upgradeBeaconToAndCall}.
If data is nonempty, it's used as data in a delegate call to the implementation returned by the beacon.
Requirements:
beaconmust be a contract.- The implementation returned by
beaconmust be a contract.
setBeacon
function setBeacon(address beacon, bytes data) external