Skip to content

release: MOOCOW [DO NOT MERGE] #1522

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

Draft
wants to merge 19 commits into
base: release/moocow-rc.1
Choose a base branch
from
Draft

Conversation

ypatil12
Copy link
Collaborator

@ypatil12 ypatil12 commented Jul 8, 2025

Motivation:

CI for moocow release

Modifications:

Rebase off of v1.5.0. Target original v1.6.0 release (no eigenpod related changes)

Result:

Clear release

@ypatil12 ypatil12 changed the base branch from main to release/moocow-rc.1 July 8, 2025 18:16
@ypatil12 ypatil12 changed the base branch from release/moocow-rc.1 to main July 8, 2025 18:25
@ypatil12 ypatil12 marked this pull request as draft July 8, 2025 18:31
@ypatil12 ypatil12 changed the base branch from main to release/moocow-rc.1 July 8, 2025 18:32
@ypatil12
Copy link
Collaborator Author

ypatil12 commented Jul 8, 2025

0xClandestine and others added 14 commits July 8, 2025 16:00
**Motivation:**

Previously, we stored `startBlock` and computed the `completeBlock` at
runtime by iterating through the list of added strategies for a given
`slashId`. This approach required recalculating the `completeBlock` each
time.

**Modifications:**

We now store `completeBlock` directly instead of `startBlock`. During
each call to `initiateSlashEscrow`, we compare the delay of the newly
added strategy to the current `completeBlock` for the `slashId`. If the
new delay is larger, we update `completeBlock` accordingly. This ensures
that the maximum delay is always preserved.

**Result:**

The `completeBlock` for each `slashId` is now computed and maintained
incrementally, eliminating the need for runtime iteration over all
strategies.
**Motivation:**

Release functions did not have a `nonReentrant` check, and while code is
well isolated it would be nice to prevent the concern entirely.

**Modifications:**

* Applied the `nonReentrant` modifier to both `releaseSlashEscrow` and
`releaseSlashEscrowByStrategy` functions within the `SlashEscrowFactory`
to prevent potential reentrancy vulnerabilities.

* Relocated the `nonReentrant` modifier from
`clearBurnOrRedistributableShares` to
`clearBurnOrRedistributableSharesByStrategy` in the `StrategyManager` to
ensure both methods are protected.

**Result:**

Less reentrancy-based security risk.
**Motivation:**

It was previously possible to set the redistribution recipient for a
redistributing operator set to the burn address, meaning it's
effectively a non-redistributing operator set.

**Modifications:**

- Ensure`redistributionRecipient != DEFAULT_BURN_ADDRESS`.

**Result:**

L-02 resolved.
**Motivation:**

Missing documentation noting that an upgrade is required to rescue
paused funds.

**Modifications:**

- Update `ISlashEscrowFactory.sol` and `SlashEscrowFactory.md`.

**Result:**

L-01 resolved.
**Motivation:**

We've decided we do not want delays on redistributions.

**Modifications:**

- Removed `SlashEscrowFactory` + `SlashEscrow` and all relevant changes.

**Result:**

Tokens are immediately redistributed upon calling
`clearBurnOrRedistributableShares`.
**Motivation:**

Incorrect gap, off by one.

**Modifications:**

- Updated SM gap.

**Result:**

Correct SM gap.
**Motivation:**

Test should be passing.

**Modifications:**

- Minor (likely rebase) error fixes.

**Result:**

Tests passing.
**Motivation:**

We want to address a few nits.

**Modifications:**

- slash's -> operator set's.

**Result:**

Nits addressed.
**Motivation:**

Want up to date changelog.

**Modifications:**

- Updated changelog.

**Result:**

Up-to-date changelog.
**Motivation:**

Need updated upgrade scripts without slash escrow

**Modifications:**

- Remove slash escrow
- Add source chain conditionals
- Blacklisted eigen and beigen tokens

**Result:**

Working upgrade scripts

---------

Co-authored-by: clandestine.eth <[email protected]>
* test: add unit tests for consolidation and withdrawal
* chore: make bindings
* chore: misc feedback
chore: changelog
@ypatil12 ypatil12 changed the title [DO NOT MERGE]: Moscow release [DO NOT MERGE]: MOOCOW release Jul 8, 2025
@ypatil12 ypatil12 changed the title [DO NOT MERGE]: MOOCOW release feat: MOOCOW release Jul 8, 2025
@ypatil12 ypatil12 changed the title feat: MOOCOW release release: MOOCOW [DO NOT MERGE] Jul 8, 2025
wadealexc and others added 3 commits July 11, 2025 15:56
**Motivation:**

SAFE now disables `delegateCall`. Thus, we cannot use multisend via the
Multisig directly. This results in the redistro/moocow failing

**Modifications:**

Tests: `zeus test --env mainnet
script/releases/v1.6.0-moocow-and-elip5/*.s.sol --rpcUrl $RPC_MAINNET
-vvv`

Upgrade deploy scripts to split up execution 

**Result:**

Working upgrade
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants