-
Notifications
You must be signed in to change notification settings - Fork 370
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
Slashing magnitudes fixes merge #1108
Closed
ypatil12
wants to merge
90
commits into
slashing-magnitudes-fixes
from
slashing-magnitudes-fixes-merge
Closed
Slashing magnitudes fixes merge #1108
ypatil12
wants to merge
90
commits into
slashing-magnitudes-fixes
from
slashing-magnitudes-fixes-merge
Conversation
This file contains 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
* chore: update addresses for slashing * feat: update for v.1.03 * chore: rename * chore: rename
* fix: patch default split frontrun upgrade * fix: zeus pauser registry
* feat: add share helpers * fix: add deposit scaling factor * fix: rebase
* fix: slashable window boundaries * test: regression for alm * test: update withdrawal delay not passed reversion * test: burning indices * refactor: switch conditionals * fix: added unit tests * test: assert slashable shares in queue * fix: typos --------- Co-authored-by: Yash Patil <[email protected]>
refactor small cleanup chore: `forge fmt` fix: `getQueuedWithdrawals` + test fix: add constructor back test: `totalQueued` > `withdrawal.strategies.length` test(wip): `completeQueuedWithdrawals` currently failing fix: effectBlock test(wip): @8sunyuan patch fix: one flaky test fix: second flaky test
* feat: initial deploy * feat: slashing patch
* test(wip): todos * fix: dealloc issue * fix: remaining * fix: forktest upgrade issue * test: add `check_Withdrawal_AsShares_State_AfterSlash` * refactor: cleanup * fix: ci * refactor: review changes
* docs: add slashing docs * chore: bindings * docs: fixed commenting and updated queue withdrawal docs * docs: minor cleanup --------- Co-authored-by: Nadir Akhtar <[email protected]>
* fix: correct expected share calc * chore: bindings * fix: rounding on failing unit test
* chore: clean comments and naming in dm * refactor: simplify undelegate method * feat: removed 0 address check because 0 stakers cant be delegated * feat: condensed non-staker caller logic * refactor: remove unnecessary check * feat: use checks-effects-interactions when completing withdrawals * feat: remove implicit public method for queuedWithdrawals and impl dedicated getter * feat: deprecate withdrawer field * chore: make bindings and clean compile errors * refactor: redelegate reuses delegateTo and undelegate * fix: broken integration test * docs: update to reflect deprecated field * feat: add getter for stakers withdrawal roots
* fix: initialization params * fix: roll blocks usage
* fix: integration test initialization params (#978) * fix: initialization params * fix: roll blocks usage * fix: `SignatureUtils` construction --------- Co-authored-by: Yash Patil <[email protected]> Co-authored-by: davidironblocks <[email protected]>
* fix: readd manual checks * chore: forge fmt
* feat: add step 1 * feat: step 1 & 2 complete; pending step 3 sanity * test: add `_validateProxyDomainSeparators` * feat: add rc validation --------- Co-authored-by: clandestine.eth <[email protected]>
* fix: update alloc delay bound * test: remove unnecessary roll
* docs: shares accounting * docs: fix gh markdown view * docs: try fix gh again * docs: cleanup * docs: edit share accounting * docs: wrap up share accounting doc * docs: edit edge cases --------- Co-authored-by: wadealexc <[email protected]>
* refactor: burning * chore: fmt * chore: update storage report * chore: update readme * refactor: add burnableShares for epm storage * chore: update storage report
* feat: slashing release * fix(slashing): upgrade script part 4 (#953) * fix: patch (#956) * feat: bindings (#960) * fix: remove numtocomplete interface (#966) * feat: add share helpers (#964) * feat: add share helpers * fix: add deposit scaling factor * fix: rebase * fix: slashable window boundaries (#965) * fix: slashable window boundaries * test: regression for alm * test: update withdrawal delay not passed reversion * test: burning indices * refactor: switch conditionals * fix: added unit tests * test: assert slashable shares in queue * fix: typos --------- Co-authored-by: Yash Patil <[email protected]> * refactor: small cleanup (#959) refactor small cleanup chore: `forge fmt` fix: `getQueuedWithdrawals` + test fix: add constructor back test: `totalQueued` > `withdrawal.strategies.length` test(wip): `completeQueuedWithdrawals` currently failing fix: effectBlock test(wip): @8sunyuan patch fix: one flaky test fix: second flaky test * refactor: remove max strats list (#968) * feat: slashing patch upgrade script (#967) * feat: initial deploy * feat: slashing patch * fix non-present upgrade.json * chore: bindings (#969) * fix: try catch out of gas edge case (#971) * chore: slashing consolidated script (#972) * test: more slashing integration todos (#961) * test(wip): todos * fix: dealloc issue * fix: remaining * fix: forktest upgrade issue * test: add `check_Withdrawal_AsShares_State_AfterSlash` * refactor: cleanup * fix: ci * refactor: review changes * docs: wip slashing docs (#925) * docs: add slashing docs * chore: bindings * docs: fixed commenting and updated queue withdrawal docs * docs: minor cleanup --------- Co-authored-by: Nadir Akhtar <[email protected]> * refactor: scaled shares accounting (#975) * fix: correct expected share calc * chore: bindings * fix: rounding on failing unit test * refactor: final slashing cleanup (#982) * chore: clean comments and naming in dm * refactor: simplify undelegate method * feat: removed 0 address check because 0 stakers cant be delegated * feat: condensed non-staker caller logic * refactor: remove unnecessary check * feat: use checks-effects-interactions when completing withdrawals * feat: remove implicit public method for queuedWithdrawals and impl dedicated getter * feat: deprecate withdrawer field * chore: make bindings and clean compile errors * refactor: redelegate reuses delegateTo and undelegate * fix: broken integration test * docs: update to reflect deprecated field * feat: add getter for stakers withdrawal roots * chore: remove unused avsd events (#984) * fix: integration test initialization params (#978) * fix: initialization params * fix: roll blocks usage * fix: `SignatureUtils` construction (#990) * fix: integration test initialization params (#978) * fix: initialization params * fix: roll blocks usage * fix: `SignatureUtils` construction --------- Co-authored-by: Yash Patil <[email protected]> Co-authored-by: davidironblocks <[email protected]> * fix: readd manual checks (#996) * fix: readd manual checks * chore: forge fmt * feat: slashing 1.0.3 upgrade script (#995) * feat: add step 1 * feat: step 1 & 2 complete; pending step 3 sanity * test: add `_validateProxyDomainSeparators` * feat: add rc validation --------- Co-authored-by: clandestine.eth <[email protected]> * fix: update alloc config delay bound (#985) * fix: update alloc delay bound * test: remove unnecessary roll * chore: storage report (#1000) * docs: shares accounting (#997) * docs: shares accounting * docs: fix gh markdown view * docs: try fix gh again * docs: cleanup * docs: edit share accounting * docs: wrap up share accounting doc * docs: edit edge cases --------- Co-authored-by: wadealexc <[email protected]> * refactor: async burning (#1001) * refactor: burning * chore: fmt * chore: update storage report * chore: update readme * refactor: add burnableShares for epm storage * chore: update storage report * test: `Snapshots` lib (#1002) * docs: finish delegation manager docs (#1004) * docs: finish delegation manager docs * docs: update docs readme * docs: permission controller * fix: small typos * docs: address feedback * docs: nit --------- Co-authored-by: Michael Sun <[email protected]> * docs: Strategy Manager slashing updates (#999) * docs: update StrategyManager docs with slashing delta * docs: remove references to thirdPartyTransfersForbidden * docs: update strategy docs to latest * also various edits to docs and natspec * chore: fmt and make bindings --------- Co-authored-by: wadealexc <[email protected]> * docs: EigenPod Manager slashing updates (#1005) * docs: complete EigenPodManager for slashing * docs: add in _beaconChainSlashingFactor state variable note * docs: finish epm docs * chore: make bindings --------- Co-authored-by: wadealexc <[email protected]> * chore: remove rewardsV2 upgrade script * chore: use stable foundry version --------- Co-authored-by: clandestine.eth <[email protected]> Co-authored-by: Jay <[email protected]> Co-authored-by: Gautham Anant <[email protected]> Co-authored-by: Yash Patil <[email protected]> Co-authored-by: Yash Patil <[email protected]> Co-authored-by: Alex <[email protected]> Co-authored-by: Nadir Akhtar <[email protected]> Co-authored-by: davidironblocks <[email protected]> Co-authored-by: wadealexc <[email protected]> Co-authored-by: Nadir Akhtar <[email protected]>
* feat: rewards v2.1 feat: operator centric rewards feat: add new interfaces feat(wip): implement `createOperatorSetPerformanceRewardsSubmission` chore: forge fmt fix: compile feat(wip): implement `setOperatorSetOperatorSplit` fix: review changes fix: add missing `onlyWhenPaused` + `checkCanCall` feat(wip): add missing `getOperatorSetPerformanceSplit` + rename internals test(wip): `setOperatorSetPerformanceSplit` test(wip): `createOperatorSetPerformanceRewardsSubmission` - some failing chore: forge fmt refactor: renaming chore: storage report refactor: review changes refactor: review changes fix: gap refactor: review changes * fix: storage layout * chore: make storage-report * docs: natspec * refactor: review changes * refactor: review changes * refactor: review changes * feat: rewards v2.1 bindings * fix: not index operatorSet in events * refactor: forge fmt * docs: updated storage reports * chore: updated bindings --------- Co-authored-by: 0xrajath <[email protected]>
* feat: storage-diff.sh * refactor: storage-diff.sh * refactor: storage-diff.sh * refactor: storage-diff.sh * refactor: storage-diff.sh * refactor: storage-diff.sh
* refactor: ci refactor: remove gas report fix: gas report fix: gas report refactor: continuous fuzzing refactor: cleanup feat: gas reporting feat: intense continuous fuzzing refactor: rename workflow files refactor: renaming refactor: ci refactor: renaming refactor: ci feat: add `FOUNDRY_PROFILE=lite` to ci refactor: small `foundry.toml` cleanup refactor: renaming fix: continuous fuzzing * refactor: naming * refactor: intense runs -> 15000 * refactor: move CONTRIBUTING.md -> .github/ * refactor: reduce dotfiles * refactor: remove `testHelpers` * feat: add `PULL_REQUEST_TEMPLATE.md` * refactor: foundry ci * fix: foundry ci * refactor: rename * feat: mainnet storage diff ci * refactor: certora ci (remove parallelism) * refactor: intense runs -> 5000 * refactor: coverage * test: ci * refactor: continuous fuzzing * refactor: note minimum avg coverage * refactor: coverage * refactor: coverage * refactor: coverage * refactor: coverage * refactor: coverage * refactor: coverage * refactor: move storage-diff.yml * refactor: foundry.yml * refactor: foundry.yml * fix: certora scripts * fix: certora * refactor: local deploy workflow -> test * refactor: rename certora workflow * refactor: checks * refactor: name * refactor: comment out certora.yml until they finish slashing specs * refactor: review changes * refactor: ci runs 1 -> 256 * fix: coverage branch filtering * refactor: add -vvv flag * refactor: lowercase pr template name * refactor: move CONTRIBUTING.md * feat: more storage diff coverage * docs: improve contributor guide * refactor: intense workflow - add message telling the dev it's purpose * refactor: intense warning * refactor: add `.github/configs/` * fix: ci * refactor: remove useless commitlint config * refactor: cleanup * refactor: add color * refactor: remove useless color flag * refactor: remove prettier (unused)
* feat: deny compile warnings * fix: compile warnings * fix: ci
* test: `BytesLib` * test: `Snapshots` * fix: ci * fix: ci * fix: ci * fix: ci
* feat: only throw for errors - except __gap overwrite * ci: storage check should fail * ci: storage check should fail * perf: optimize storage ci * fix: remove bad variable * chore: forge fmt
* feat: add size diff workflow Needs improvement and to be moved -> Foundry.yml * fix: ci * fix: ci * test: ci * refactor: improve logging * chore: remove test variables
* chore: remove husky * chore: vscode settings json * chore: cleanup
**Motivation:** Since Foundry unit, integration, and fork tests currently run sequentially, the total runtime is the sum of all tests — roughly **25–26 minutes**. See yourself [here](https://github.com/Layr-Labs/eigenlayer-contracts/actions/runs/13208807194/job/36878141793?pr=1025). **Modifications:** - Parallelized unit, integration, and fork tests to significantly speed up CI. - Fixed flaky tests. **Result:** By running all three test suites in parallel, we reduced the total runtime to **6 minutes**, achieving a **4× speedup**! --------- Co-authored-by: clandestine.eth <[email protected]>
**Motivation:** given continuous fuzzing tests takes too long (currently ~2.5h ish), we wanna make it only run when a commit is merged to dev branch, instead of every PR change it should make the CI passes as a whole a lot faster, and save us huge money spent on github actions **Modifications:** make continuous fuzzing only run when a commit is merged to dev branch, instead of every PR change
**Motivation:** Currently there is no way for an AVS implementing these callback functions of the IAVSRegistrar.sol to verify that the operatorSetIds belong to their operatorSets. The register/deregister callback functions are updated to include the address field. This PR is combining #1092 and #1085 Additionally, the try/catch design for deregistering from operatorSets was impacting state between AVS and core contracts due to not having proper gas estimates when submitting transactions. Solutions exploring passing some suitable gas paramter were explored but eventually removing it entirely was deemed the best solution. **Modifications:** - Added `avs()` view function that is checked upon `setAVSRegistrar` - added `address avsIdentifier` field in the callbacks, this should match the `avs()` view function on the AVSRegistrar - Removed try catch on `deregisterForOperatorSets` **Result:** AVSRegistrars cannot be used for multiple operatorSets and AVSRegistrars can doublecheck to verify that a register/deregister callback is correctly called for their contracts. Registration state between AVS and Eigenlayer core contracts for OperatorSets are now done in atomic transactions (if entrypoint is always through the AllocationManager)
**Motivation:** Registrar interface needs to be upgraded to unblock integration quickly as possible **Modifications:** Upgrade script for the AllocationManager **Result:** Upgrade to testnet Holesky environment will take place
609c9d0
to
ddc53ab
Compare
Closing |
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:
Explain here the context, and why you're making that change. What is the problem you're trying to solve.
Modifications:
Describe the modifications you've done.
Result:
After your change, what will change.