OracleAdapter.sol
General Overview
The OracleAdapter.sol acts as an intermediary between different contract components. It can set contract addresses, manage access control roles, and handle interactions concerning validator exits and dissolutions.
The contract is granted special permissions to interact with PirexEth for initiating voluntary exits of validators or managing their dissolution. A key feature is the ORACLE_ROLE, which authorizes updates to the validator's state upon dissolution.
Technical Overview
Inherits: IOracleAdapter, AccessControlDefaultAdminRules
State Variables
pirexEth
IPirexEth public pirexEth;rewardRecipient
IRewardRecipient public rewardRecipient;ORACLE_ROLE
bytes32 public constant ORACLE_ROLE = keccak256("ORACLE_ROLE");GOVERNANCE_ROLE
bytes32 public constant GOVERNANCE_ROLE = keccak256("GOVERNANCE_ROLE");Functions
constructor
constructor(uint48 _initialDelay) AccessControlDefaultAdminRules(_initialDelay, msg.sender);Parameters
| Name | Type | Description |
|---|---|---|
_initialDelay | uint48 | Delay required to schedule the acceptance |
setContract
Set a contract address
function setContract(DataTypes.Contract c, address contractAddress) external onlyRole(GOVERNANCE_ROLE);Parameters
| Name | Type | Description |
|---|---|---|
c | DataTypes.Contract | Contract |
contractAddress | address | Contract address |
requestVoluntaryExit
Send the request for voluntary exit
function requestVoluntaryExit(bytes calldata _pubKey) external override;Parameters
| Name | Type | Description |
|---|---|---|
_pubKey | bytes | Public key |
dissolveValidator
Dissolve validator
function dissolveValidator(bytes calldata _pubKey, uint256 _amount) external onlyRole(ORACLE_ROLE);Parameters
| Name | Type | Description |
|---|---|---|
_pubKey | bytes | Public key |
_amount | uint256 | ETH amount |
Events
SetContract
event SetContract(DataTypes.Contract indexed c, address contractAddress);RequestValidatorExit
event RequestValidatorExit(bytes pubKey);SetPirexEth
event SetPirexEth(address _pirexEth);