Skip to content

fix(milestones): deallocate stays open while paused — allocated funds were frozen - #631

Open
yggdrasilworld wants to merge 2 commits into
MergeFi:mainfrom
yggdrasilworld:fix/deallocate-pause-530
Open

yggdrasilworld wants to merge 2 commits into
MergeFi:mainfrom
yggdrasilworld:fix/deallocate-pause-530

Conversation

@yggdrasilworld

@yggdrasilworld yggdrasilworld commented Oct 14, 2026 •

Copy link
Copy Markdown

What — a fund-freeze

pause() was meant to block NEW risky ops (allocate/release/contribute) but keep recovery paths open — its own doc says so. deallocate was pause-blocked though, so during a pause a sponsor couldn't un-allocate funds back to remaining_budget (or trigger the refund on a closed milestone) — allocated funds were frozen.

Fix

deallocate is a recovery path — it no longer checks is_paused. Tests updated to assert the recovery-path semantics.

Note: cargo test couldn't run locally (workspace needs rustc 1.95, installed 1.92) — CI verifies.

Resolves #530

Payment: Base USDC 0xD40Df5c27cEa7dd78A3c345401995c319589334e

… were frozen

A pause() was meant to block NEW risky ops (allocate/release/contribute)
but keep recovery paths open — its own doc says so. deallocate was pause-
blocked though, so during a pause a sponsor couldn't un-allocate funds back
to remaining_budget (or refund on a closed milestone) — allocated funds
were frozen. Deallocate is a recovery path; it no longer checks is_paused.

Resolves MergeFi#530

Tests: updated test_deallocate_blocked_while_paused + the pause-coverage
test to assert the recovery-path semantics. Note: couldn't run cargo test —
the workspace needs rustc 1.95 (installed: 1.92); CI verifies.
@vercel

vercel Bot commented Oct 14, 2026

Copy link
Copy Markdown

@yggdrasilworld is attempting to deploy a commit to the chonilius' projects Team on Vercel.

A member of the Team first needs to authorize it.

@yggdrasilworld

Copy link
Copy Markdown
Author

Ready for review — a fund-freeze: pause() was meant to keep recovery paths open but deallocate was pause-blocked, freezing allocated sponsor funds during a pause. Deallocate no longer checks is_paused.

This branch has not been deployed

No deployments
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.

milestones::deallocate is blocked while paused, so allocated funds can't be returned during an incident

1 participant