Skip to content

Commit ffda98f

Browse files
0xClandestineypatil12
authored andcommitted
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 feat: slashing patch upgrade script (#967) * feat: initial deploy * feat: slashing patch fix non-present upgrade.json 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 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]> 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]> 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 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]> test: enable shared setups for integration tests (#1036) * test: improve integration invariants * also removes unneeded fork logic * adds checks to some invariants * fixes some broken tests * test(integration): enable shared setups fix: remove token param from Deposit event and related APIs (#1013) * fix: remove token param from Deposit event and related APIs * fix: forge fmt * fix: rebase * fix: update EigenPodManager and test * fix: update tests * fix: update eigenpodmanager tests * fix: update StrategyManagerMock * feat: add bindings * fix: update docs feat: changing burnableShares to EnumerableMap (#1028) * feat: changing burnableShares to EnumerableMap * style: linter * docs: storage docs * style: natspec and import * style: lint * feat: adding view function for cronjob and moving functions * fix: updating storage gap * docs: storage slots comment * feat: new bindings * docs: updating StrategyManager doc * docs: bindings --------- Co-authored-by: Michael <[email protected]> feat: add `getAllocatedStake` and update `getMinimumSlashableStake` (#1037) * chore: add view functions for isOperatorSlashable * feat: add `getAllocatedStake` func * test: getAllocatedStake * test: add getMinimumSlashableStake tests * chore: format * chore: fmt interface * chore: remove unnecessary test * chore: update comment * chore: bindings --------- Co-authored-by: Yash Patil <[email protected]> test(integration): implement registration and allocation invariants (#1042) * chore: fix forge nightly release breaking two tests * test: fix outdated alm tests fix: delegate shares (#1045) **Motivation:** Fixes an issue where stakers delegating Beacon Chain ETH from slashed Eigen Pods were able to delegate more shares than they should. Specifically, operators now are delegated a staker's `withdrawableShares` rather than their `depositShares`. **Modifications:** - Changed accounting logic on delegation in `DelegationManger.sol` - `DepositScalingFactor` now resets when a staker withdraws all their shares, whether through undelegation, redelegation, or a simple withdrawal - Changes in `StrategyManager.sol`, `IShareManager.sol`, `SlashingLib.sol`, and `EigenPodManager.sol` to accommodate new accounting - New test files and changes to others to reflect new accounting and invariants - Updated `docs/SharesAccounting.md` **Result:** System is now robust to stakers with arbitrary EigenPod states --------- Co-authored-by: Michael <[email protected]> Co-authored-by: Michael Sun <[email protected]> Co-authored-by: wadealexc <[email protected]> Co-authored-by: Yash Patil <[email protected]> Co-authored-by: clandestine.eth <[email protected]> fix: signature utils (#1015) - *Dynamic Domain Separator:* `SignatureUtils.domainSeparator()` is now recomputed for each signature verification. This eliminates the need for storing initial values in storage or as immutables, which is important for beacon proxy support. - ~*Version Bump Command:* Introduced `make bump-version VERSION=2`, which automatically updates the version function's return values.~ - *Version Fn + Constructor Param:* Adds an immutable oz `ShortString` that's set in the constructor. feat: require avs register metadata in allocation manager (#1025) require avs register metadata in allocation manager before they can create operatorset --------- Co-authored-by: clandestine.eth <[email protected]>
1 parent c3ff4cb commit ffda98f

File tree

61 files changed

+5558
-780
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

61 files changed

+5558
-780
lines changed

.github/configs/solhint.json

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,26 @@
33
"rules": {
44
"max-line-length": "off",
55
"no-inline-assembly": "off",
6-
"reason-string": ["warn",{"maxLength":160}],
7-
"func-visibility": ["warn",{"ignoreConstructors":true}],
8-
"explicit-types": ["warn","explicit"],
9-
"quotes": ["warn","double"],
6+
"reason-string": [
7+
"warn",
8+
{
9+
"maxLength": 160
10+
}
11+
],
12+
"func-visibility": [
13+
"warn",
14+
{
15+
"ignoreConstructors": true
16+
}
17+
],
18+
"explicit-types": [
19+
"warn",
20+
"explicit"
21+
],
22+
"quotes": [
23+
"warn",
24+
"double"
25+
],
1026
"const-name-snakecase": "off",
1127
"not-rely-on-time": "off",
1228
"avoid-low-level-calls": "off",
@@ -19,4 +35,4 @@
1935
"immutable-vars-naming": "off",
2036
"no-console": "off"
2137
}
22-
}
38+
}

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,4 +48,4 @@ storage-report:
4848
bash "bin/storage-report.sh" "docs/storage-report/"
4949

5050
fix-typos:
51-
typos --config .github/configs/typos-cli.toml --write-changes
51+
typos --config .github/configs/typos-cli.toml --write-changes

docs/core/AVSDirectory.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,4 +142,4 @@ This function allows an AVS to update the metadata URI associated with the AVS.
142142

143143
## View Functions
144144

145-
See the [AVS Directory Interface](../../../src/contracts/interfaces/IAVSDirectory.sol) for view functions.
145+
See the [AVS Directory Interface](../../../src/contracts/interfaces/IAVSDirectory.sol) for view functions.

docs/core/DelegationManager.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -739,4 +739,4 @@ Called by the `EigenPodManager` when a staker's shares decrease due to a checkpo
739739
* This method is a no-op if the staker is not delegated to an operator.
740740

741741
*Requirements*:
742-
* Caller MUST be the `EigenPodManager`
742+
* Caller MUST be the `EigenPodManager`

docs/permissions/PermissionController.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -259,4 +259,4 @@ Also note that permissions to specific functions/contracts cannot be revoked for
259259

260260
*Requirements*:
261261
* Caller MUST be an admin for the account, or the account's address itself if no admin is set
262-
* The proposed appointee MUST already have permissions for the given `targetSelector`
262+
* The proposed appointee MUST already have permissions for the given `targetSelector`

pkg/bindings/AVSDirectory/binding.go

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/bindings/AVSDirectoryStorage/binding.go

Lines changed: 0 additions & 31 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/bindings/AllocationManager/binding.go

Lines changed: 10 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/bindings/AllocationManagerStorage/binding.go

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/bindings/BackingEigen/binding.go

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)