test: improve slashing invariants and refactor user generation logic#1149
Merged
wadealexc merged 3 commits intotest/slashing-integration-testingfrom Feb 21, 2025
Merged
Conversation
ypatil12
approved these changes
Feb 21, 2025
8sunyuan
reviewed
Feb 21, 2025
8sunyuan
reviewed
Feb 21, 2025
8sunyuan
reviewed
Feb 21, 2025
| return (user, strategies, tokenBalances); | ||
| } | ||
|
|
||
| function _randUser( |
Contributor
There was a problem hiding this comment.
Note: this and _newStaker(strategies) can generate assets for specified strategies vs just random
8sunyuan
reviewed
Feb 21, 2025
| assert_Snap_Unchanged_TokenBalances(operator, "operator should not have any change in underlying token balances"); | ||
| } | ||
| assert_Snap_Added_OperatorShares(operator, withdrawal.strategies, withdrawal.scaledShares, "operator should have received shares"); | ||
| assert_Snap_Added_OperatorShares(operator, strategies, shares, "operator should have received shares"); |
Contributor
There was a problem hiding this comment.
Maybe in followup PR, but the check_Withdrawal_AsShares_* functions could probably include this call
uint[] memory expectedShares = _calculateExpectedShares(withdrawals[i]);
and not have to pass in shares as input. Since we are already passing in the withdrawal
Contributor
Author
There was a problem hiding this comment.
yep, good callout. there's a decent bit of cleanup to be done in these assertions
8sunyuan
approved these changes
Feb 21, 2025
* also fix a bunch of compiler errors
ypatil12
pushed a commit
that referenced
this pull request
Feb 27, 2025
…1149) **Motivation:** Improve slashing invariants, fix existing DM/ALM invariants, and refactor user generation logic **Modifications:** * Improve `IntegrationDeployer._randUser` generation logic so that additional helpers can be implemented to generate users with specific assets * Update some withdrawal invariants to distinguish between deposit and withdrawable shares. More work to be done here. * Implement several new tests in `SlashingWithdrawals` * Removes the vscode settings file since it was autoformatting tests. Spoke with Rajath about this - i'm fine to revisit this after slashing, but the current impact of this file is that it will create massive diffs across the most active part of the codebase while we're trying to get critical last-mile testing finished. We'll readd this after slashing :+1: **Followup**: * Additional cleanup for queue/complete withdrawal invariants and calling conventions * Additional tests needed in `SlashingWithdrawals` * Additional staker-level invariants needed when slashing an operator
ypatil12
pushed a commit
that referenced
this pull request
Feb 27, 2025
…1149) **Motivation:** Improve slashing invariants, fix existing DM/ALM invariants, and refactor user generation logic **Modifications:** * Improve `IntegrationDeployer._randUser` generation logic so that additional helpers can be implemented to generate users with specific assets * Update some withdrawal invariants to distinguish between deposit and withdrawable shares. More work to be done here. * Implement several new tests in `SlashingWithdrawals` * Removes the vscode settings file since it was autoformatting tests. Spoke with Rajath about this - i'm fine to revisit this after slashing, but the current impact of this file is that it will create massive diffs across the most active part of the codebase while we're trying to get critical last-mile testing finished. We'll readd this after slashing :+1: **Followup**: * Additional cleanup for queue/complete withdrawal invariants and calling conventions * Additional tests needed in `SlashingWithdrawals` * Additional staker-level invariants needed when slashing an operator
ypatil12
pushed a commit
that referenced
this pull request
Feb 27, 2025
…1149) **Motivation:** Improve slashing invariants, fix existing DM/ALM invariants, and refactor user generation logic **Modifications:** * Improve `IntegrationDeployer._randUser` generation logic so that additional helpers can be implemented to generate users with specific assets * Update some withdrawal invariants to distinguish between deposit and withdrawable shares. More work to be done here. * Implement several new tests in `SlashingWithdrawals` * Removes the vscode settings file since it was autoformatting tests. Spoke with Rajath about this - i'm fine to revisit this after slashing, but the current impact of this file is that it will create massive diffs across the most active part of the codebase while we're trying to get critical last-mile testing finished. We'll readd this after slashing :+1: **Followup**: * Additional cleanup for queue/complete withdrawal invariants and calling conventions * Additional tests needed in `SlashingWithdrawals` * Additional staker-level invariants needed when slashing an operator
ypatil12
pushed a commit
that referenced
this pull request
Mar 5, 2025
…1149) **Motivation:** Improve slashing invariants, fix existing DM/ALM invariants, and refactor user generation logic **Modifications:** * Improve `IntegrationDeployer._randUser` generation logic so that additional helpers can be implemented to generate users with specific assets * Update some withdrawal invariants to distinguish between deposit and withdrawable shares. More work to be done here. * Implement several new tests in `SlashingWithdrawals` * Removes the vscode settings file since it was autoformatting tests. Spoke with Rajath about this - i'm fine to revisit this after slashing, but the current impact of this file is that it will create massive diffs across the most active part of the codebase while we're trying to get critical last-mile testing finished. We'll readd this after slashing :+1: **Followup**: * Additional cleanup for queue/complete withdrawal invariants and calling conventions * Additional tests needed in `SlashingWithdrawals` * Additional staker-level invariants needed when slashing an operator
This was referenced Mar 5, 2025
ypatil12
added a commit
that referenced
this pull request
Mar 5, 2025
**Motivation:** Slashing Integration Testing for Competition Audit **Modifications:** ***General State Validation*** - #1204 - #1198 - #1169 - #1158 ***Upgrade Tests*** - #1187 - #1171 - #1143 ***Dual Slash Tests*** - #1195 - #1153 ***Rounding Tests*** - #1178 ***EigenPod Tests*** - #1191 - #1188 - #1203 - #1194 - #1163 ***Invariants*** - #1201 - #1176 - #1192 - #1197 - #1175 - #1189 - #1150 - #1149 **Result:** Comprehensive Test Coverage
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Motivation:
Improve slashing invariants, fix existing DM/ALM invariants, and refactor user generation logic
Modifications:
IntegrationDeployer._randUsergeneration logic so that additional helpers can be implemented to generate users with specific assetsSlashingWithdrawalsFollowup:
SlashingWithdrawals