-
Notifications
You must be signed in to change notification settings - Fork 435
test: improve slashing invariants and refactor user generation logic #1149
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
test: improve slashing invariants and refactor user generation logic #1149
Conversation
|
||
print.user(name, assetType, userType, strategies, tokenBalances); | ||
return (user, strategies, tokenBalances); | ||
} | ||
|
||
function _randUser( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note: this and _newStaker(strategies)
can generate assets for specified strategies vs just random
@@ -349,7 +355,7 @@ contract IntegrationCheckUtils is IntegrationBase { | |||
if (operator != staker) { | |||
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"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yep, good callout. there's a decent bit of cleanup to be done in these assertions
* also fix a bunch of compiler errors
02b13f0
into
test/slashing-integration-testing
…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
…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
…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
…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
**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
Motivation:
Improve slashing invariants, fix existing DM/ALM invariants, and refactor user generation logic
Modifications:
IntegrationDeployer._randUser
generation logic so that additional helpers can be implemented to generate users with specific assetsSlashingWithdrawals
Followup:
SlashingWithdrawals