A proxy contract that delegates calls to a designated implementation contract. Inherits from BaseProxy.
The constructor takes in the address of the implementation contract, the owner address, and any optional setup parameters for the implementation contract.
constructor(address implementationAddress, address owner, bytes setupParams) public
Constructs the proxy contract with the implementation address, owner address, and optional setup parameters.
The constructor verifies that the owner address is not the zero address and that the contract ID of the implementation is valid. It then stores the implementation address and owner address in their designated storage slots and calls the setup function on the implementation (if setup params exist).
Name | Type | Description |
---|---|---|
implementationAddress | address | The address of the implementation contract |
owner | address | The owner address |
setupParams | bytes | Optional parameters to setup the implementation contract |
function contractId() internal pure virtual returns (bytes32)
Returns the contract ID. It can be used as a check during upgrades. Meant to be implemented in derived contracts.
Name | Type | Description |
---|---|---|
[0] | bytes32 | bytes32 The contract ID |