Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR introduces a series of new test scenarios for the ynETH contract, aimed at rigorously evaluating its functionality and ensuring its robustness in various operational contexts.
Scenario 1: Successful ETH Deposit and Share Minting
Objective: Test that a user can deposit ETH and receive the correct amount of shares in return.
Scenario 2: Deposit Paused
Objective: Ensure that deposits are correctly paused and resumed, preventing or allowing ETH deposits accordingly.
Scenario 3: Deposit and Withdraw ETH to Staking Nodes Manager
Objective: Test the end-to-end flow of depositing ETH to an eigenpod, and withdrawing ETH to the staking nodes manager.
Scenario 4: Share Accounting and Yield Accrual
Objective: Verify that the share price correctly increases after the contract earns yield from consensus and execution rewards.
Scenario 5: Emergency Withdrawal of ETH
Objective: Test ability to withdraw all assets from eigenpods.
Scenario 6: Validator and Staking Node Administration
Objective: Test the ynETH's ability to update the address of the Staking Nodes Manager.
Scenario 7: Accrual and Distribution of Fees
Objective: Ensure that ynETH correctly accrues and distributes fees from yield earnings from execution and consensus rewards.
Scenario 8: Staking Rewards Distribution
Objective: Test the distribution of staking rewards to a multisig.
Scenario 9: EigenLayer Accounting and Distribution
Objective: Verify that ynETH correctly accounts for fund balances and withdrawals from EigenLayer.