Function: depositWithQueuedWithdrawal(IStrategyManager.QueuedWithdrawal _queuedWithdrawal, address _referral)
Mint eETH by supplying proof of a queued EigenLayer withdrawal whose withdrawer
is the Liquifier.
Inputs
_queuedWithdrawal
Control: Arbitrary.
Constraints: Hash is checked. It must not have been deposited before, and EigenLayer must confirm it is a queued withdrawal. Also, tokens are checked against a token/strategy whitelist.
Impact: Value determines value of eETH to mint.
_referral
Control: Arbitrary.
Constraints: None.
Impact: Passed to liquidity pool contract to be emitted in eETH mint event.
Branches and code coverage
Intended branches
Queued withdrawal successfully mints eETH and adds to running deposit cap and statistics.
Queued withdrawal can be completed by admin.
Negative behavior
Reverts when paused.
Reverts when reentrancy is attempted.
Reverts if sender is not withdrawal depositor.
Reverts if this contract is not withdrawal withdrawer.
Reverts on unwhitelisted token or strategy.
Reverts if withdrawal is not queued in EigenLayer.
Reverts if withdrawal has already been deposited.
Reverts if deposit cap is reached.
Reverts if amount of eETH to be minted is insufficient to pay fees.