mevETH Share Vault
MevEthShareVault.sol Git Source (opens in a new tab)
Structs
ProtocolBalance
Struct to account for the protocol fees and rewards.
struct ProtocolBalance {
uint128 feesPaid;
uint128 rewardsPaid;
uint128 exitsPaid;
uint128 totalWithdrawn;
}
State Variables
protocolBalance
ProtocolBalance struct to account for the protocol fees and rewards.
ProtocolBalance public protocolBalance;
mevEth
The address of the MevEth contract.
address public mevEth;
protocolFeeTo
The address that protocol fees are sent to.
address public protocolFeeTo;
Functions
constructor
Construction sets authority, MevEth, and averageFeeRewardsPerBlock.
constructor(address authority, address _mevEth, address _protocolFeeTo) Auth(authority);
Parameters
Name | Type | Description |
---|---|---|
authority | address | The address of the controlling admin authority. |
_mevEth | address | The address of the WETH contract to use for deposits. |
_protocolFeeTo | address | The address that protocol fees are sent to. |
payRewards
Function to pay rewards to the MevEth contract
Only callable by an operator.
function payRewards(uint256 rewards) external onlyOperator;
Parameters
Name | Type | Description |
---|---|---|
rewards | uint256 | rewards to pay to the MevEth contract |
sendFees
Function to collect the fees owed to the prorotocol.
function sendFees(uint256 fees) external onlyAdmin;
setProtocolFeeTo
function setProtocolFeeTo(address newProtocolFeeTo) external onlyAdmin;
recoverToken
Function to recover tokens sent to the contract.
This function is only callable by an admin.
function recoverToken(address token, address recipient, uint256 amount) external onlyAdmin;
setNewMevEth
Function to set a new mevEth address.
function setNewMevEth(address newMevEth) external onlyAdmin;
payValidatorWithdraw
Function to pay MevEth when withdrawing funds from a validator
This function is only callable by an admin and emits an event for offchain validator registry tracking.
function payValidatorWithdraw() external onlyOperator;
receive
Function to receive ETH.
receive() external payable;
Events
RewardsCollected
Event emitted when the protocol balance is updated during logRewards
event RewardsCollected(uint256 indexed protocolFeesOwed, uint256 indexed rewardsOwed);
TokenRecovered
Event emitted when a tokens are recovered from the contract.
event TokenRecovered(address indexed recipient, address indexed token, uint256 indexed amount);
ProtocolFeeToUpdated
Event emitted when the protocolFeeTo address is updated.
event ProtocolFeeToUpdated(address indexed newProtocolFeeTo);
FeesSent
Event emitted when the protocol fees are sent to the protocolFeeTo address.
event FeesSent(uint256 indexed feesSent);
RewardsPaid
Event emitted when rewards are paid to the MevEth contract.
event RewardsPaid(uint256 indexed rewards);
MevEthUpdated
Event emitted when the mevEth address is updated.
event MevEthUpdated(address indexed meveth);
ValidatorWithdraw
Event emitted when funds representing a validator withdrawal are sent to the MevEth contract.
event ValidatorWithdraw(address sender, uint256 amount);