-
Notifications
You must be signed in to change notification settings - Fork 461
feat: re-enable forge fmt + foundry v1.5.0 #1669
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
Merged
ypatil12
merged 8 commits into
release-dev/slashing-ux-improvements
from
feat/foundry-v1.5.0
Dec 1, 2025
Merged
feat: re-enable forge fmt + foundry v1.5.0 #1669
ypatil12
merged 8 commits into
release-dev/slashing-ux-improvements
from
feat/foundry-v1.5.0
Dec 1, 2025
Conversation
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
7576b37 to
a88a625
Compare
cdd0171 to
9b95ab0
Compare
ypatil12
approved these changes
Dec 1, 2025
f74e3c7
into
release-dev/slashing-ux-improvements
15 checks passed
ypatil12
added a commit
that referenced
this pull request
Dec 1, 2025
**Motivation:** Foundry 1.4.0 contained many breaking changes for forge fmt, thus we opted to temporarily disable it to avoid massive diffs. **Modifications:** - Bumped ci v1.3.5 -> v1.5.0 - Added all forge fmt config vars to foundry.toml - Ran make fmt **Result:** CI checks that code is formatted with v1.5.0. Added variables: `style` - Indent style (space/tab) `hex_underscore` - Underscore style in hex literals `override_spacing` - Spacing in override attributes `docs_style` - Documentation comment style `contract_new_lines` - New lines at contract boundaries `pow_no_space` - Spacing around power operator () `prefer_compact` - List element breaking strategy `single_line_imports` - Keep imports on single lines --------- Co-authored-by: Yash Patil <[email protected]>
ypatil12
added a commit
that referenced
this pull request
Dec 2, 2025
# v1.9.0 Slashing UX Improvements ## Release Manager @ypatil12 @eigenmikem @0xClandestine # Overview The Slashing UX improvement release is a tech debt-focused release that improves key parts of the Eigenlayer Core UX. This release will upgrade every core contract. The below release notes cover Core Contracts. ## Highlights 🚀 New Features - The `AllocationManager` has been split into two contracts to address size limitations of the contract. The main contract handles state-mutating operations, while `AllocationManagerView` handles all read-only view functions. **This is not a breaking change for introspection as previous introspection calls fallback to `delegateCall` into the `AllocationManagerView` contract.**. For more information, see the [contract architecture](../docs/core/AllocationManager.md#contract-architecture). - The `ProtocolRegistry` is a new contract that stores all proxy contract addresses, global semver, and has the ability to pause the entire protocol. This contract will be deployed on all chains. - Two new `createOperatorSets` functions (for redistributing and non redistributing operatorSets) have been added that take in a slasher address. This address is the *only* address that can slash an operatorSet. Changing the address is behind a `ALLOCATION_CONFIGURATION_DELAY` (17.5 days on mainnet). ⛔ Breaking Changes - The slasher permissions are set and stored in the `AllocationManager` instead of the `PermissionController`. Only one address can slash an operatorSet; the address is initially set upon creation of the operatorSet. OperatorSets created prior to this release will have their slasher migrated based on the following rules: - If there is no slasher set or the slasher in the `PermissionController` is the 0 address, the AVS address will be set as the slasher - If there are multiple slashers set in the `PermissionController`, the first address will be set as the slasher - Semver (`SemverMixin.sol`) has been removed from all contracts, except from those that inherit the `SignatureUtilsMixin`. The version of the core protocol can be introspected via the `ProtocolRegistry`. 📌 Deprecations The old `createOperatorSets` functions in the leftmost column will be deprecated in Q2 2026 in favor of the newly specified functions. The old functions do not pass in a slasher. The new functions do pass in a slasher. If the old function is used, the slasher of the operatorSet is set to the avs address. | Function | MigrateTo | Notes | | -------- | -------- | -------- | | `createOperatorSets(avs, CreateSetParams[])` | `createOperatorSets(address avs, CreateSetParamsV2[])` | New function takes in a slasher address | | `createRedistributingOperatorSets(avs, CreateSetParams[], redistributionRecipients[])` | `createRedistributingOperatorSets(avs, CreateSetParamsV2[], redistributionRecipients[])` | New function takes in a slasher address | 🔧 Improvements - Added a non-revert `_canCall` in the `PermissionControllerMixin` for space savings. This function is used in the `AllocationManager` and `DelegationManager`. - The allocation delay for a newly created operator is active immediately. This allows operators to make allocations instantly after registering in the core. - The internal `SlashingLib.scaleForBurning` function has been deprecated in favor of `SlashingLib.calcSlashedAmount`, standardizing the calculation of slashed shares across the withdrawal queue and storage. See [PR #1502](#1502) for more information. # Changelog - feat: re-enable forge fmt + foundry v1.5.0 [PR #1669](#1669) - feat: substitute calcSlashedAmount for scaleForBurning [PR #1502](#1502) - fix: `v1.9.0` upgrade script [PR #1666](#1666) - feat: `v1.9.0` upgrade scripts + reusable upgrade helpers [PR #1665](#1665) - chore: update interface natspec for DM [PR #1664](#1664) - feat: slashing commitments [PR #1645](#1645) - feat: remove semver + minor optimizations [PR #1654](#1654) - feat: split `AllocationManager` [PR #1643](#1643) - feat: add protocol registry [PR #1655](#1655) - feat: instant alloc delay from dm [PR #1646](#1646) - chore: remove holesky [PR #1662](#1662) - chore: hardcode foundry ci to v1.3.5 [PR #1658](#1658) - chore: hardcode foundry to v1.3.5 in ci [PR #1657](#1657) - feat(audit): publish Hourglass + Multichain + RMS audit reports [PR #1644](#1644) - docs: add transport frequency for multichain [PR #1642](#1642) - chore: update readMe for multichain/hourglass [PR #1637](#1637)
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:
Foundry 1.4.0 contained many breaking changes for forge fmt, thus we opted to temporarily disable it to avoid massive diffs.
Modifications:
Result:
CI checks that code is formatted with v1.5.0.
Added variables:
style- Indent style (space/tab)hex_underscore- Underscore style in hex literalsoverride_spacing- Spacing in override attributesdocs_style- Documentation comment stylecontract_new_lines- New lines at contract boundariespow_no_space- Spacing around power operator ()prefer_compact- List element breaking strategysingle_line_imports- Keep imports on single lines