A vault for temporary storage of execution layer (EL) rewards (MEV and tx priority fee). See the Lido improvement proposal #12.
Both the transaction priority fee and MEV rewards are collected by specifying the contract's address as the coinbase (
feeRecipient). Additionally, MEV rewards are also extracted whenever payload builders include an explicit transaction that transfers MEV shares to the
feeRecipient in the payload. Thereby, the contract features a payable receive function that accepts incoming ether.
NB: Any ether sent to the contract by accident is unrecoverable and will be distributed by the protocol as accrued rewards.
Allows the contract to receive ETH via transactions.
receive() external payable;
Move all accumulated EL rewards to the Lido contract. Can only be called by the Lido contract. Returns the ether amount withdrawn.
function withdrawRewards(uint256 _maxAmount) external returns (uint256 amount)
|Max amount of ETH to withdraw|
Transfers the given amount of the ERC20-token (defined by the provided token contract address) currently belonging to the vault contract address to the Lido treasury address.
function recoverERC20(address _token, uint256 _amount) external
|token amount to recover|
Transfers the given tokenId of the ERC721-compatible NFT (defined by the provided token contract address) currently belonging to the vault contract address to the Lido treasury address.
function recoverERC721(address _token, uint256 _tokenId) external
|minted token id|