DelegationFactory
DelegationFactory deploys DelegationContract instances for the Execution Delegation Framework (EDF). Anyone can call deploy(). The new contract's owner and cooldown cannot be changed after deployment; its initial delegate can later be rotated or revoked.
Only contracts deployed from this factory are accepted for Lido Oracle and Deposit Security Committee seats. Factory addresses per network are listed on the deployed contracts page.
Methods​
deploy()​
Deploys a new DelegationContract.
function deploy(address owner, address delegate, uint256 cooldown) external returns (address instance);
note
Reverts if any of the following is true:
owneris zero address;delegateis equal toowner.
Parameters​
| Name | Type | Description |
|---|---|---|
owner | address | Owner of the new contract. Cannot be changed later. |
delegate | address | Initial delegate, active immediately. Zero address deploys the contract without a delegate. |
cooldown | uint256 | Seconds between a nomination and the moment the new delegate becomes active. Cannot be changed later. The custody policy requires at least 172800 (48 hours). |
Returns​
| Name | Type | Description |
|---|---|---|
instance | address | Address of the new DelegationContract |
Events​
DelegationContractDeployed()​
Emitted for each deployed DelegationContract.
event DelegationContractDeployed(
address indexed instance,
address indexed owner,
address indexed delegate,
uint256 cooldown
);