Skip to main content

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:

  • beacon must 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:

  • beacon must be a contract.
  • The implementation returned by beacon must be a contract.

setBeacon

function setBeacon(address beacon, bytes data) external