Problem
Vault state transitions can become difficult to reason about when release, failure, cancellation, and validation paths overlap.
This issue requires a meaningful production implementation. Typo-only, documentation-only, formatting-only, dependency-only, or cosmetic changes do not satisfy the scope.
Objective
Encode the lifecycle transition table in the contract and reject every invalid edge deterministically.
Scope
Review all entrypoints, centralize transition validation, preserve terminal-state monotonicity, and add event assertions.
Acceptance criteria
Implementation notes
Implement only the stated behavior; keep unrelated refactors out of the PR.
Non-goals
- Do not remove tests merely to make CI pass.
- Do not introduce secrets, private keys, credentials, or mainnet-only values.
- Do not change unrelated APIs, UI surfaces, contract behavior, or deployment configuration.
Contributor application
Before starting, comment with relevant experience, a 1–4 bullet implementation approach, and an estimate for opening the first draft PR. Wait for maintainer assignment before coding. Only the assigned contributor is eligible for reward consideration.
Submission requirements
- Use PR title format
[#<issue-number>] <short summary>.
- Check off each completed acceptance criterion.
- Include focused automated tests for success, failure, authorization, and boundary behavior where applicable.
- Include the validation commands and results in the PR description.
- Address maintainer review feedback before merge.
GrantFox reward consideration is based on the original scope, implementation quality, tests, security review, CI/CD results, review feedback, and follow-up stability; completion or merge alone is not a guarantee.
Problem
Vault state transitions can become difficult to reason about when release, failure, cancellation, and validation paths overlap.
This issue requires a meaningful production implementation. Typo-only, documentation-only, formatting-only, dependency-only, or cosmetic changes do not satisfy the scope.
Objective
Encode the lifecycle transition table in the contract and reject every invalid edge deterministically.
Scope
Review all entrypoints, centralize transition validation, preserve terminal-state monotonicity, and add event assertions.
Acceptance criteria
Closes #{issue-number}orFixes #{issue-number}.Implementation notes
Implement only the stated behavior; keep unrelated refactors out of the PR.
Non-goals
Contributor application
Before starting, comment with relevant experience, a 1–4 bullet implementation approach, and an estimate for opening the first draft PR. Wait for maintainer assignment before coding. Only the assigned contributor is eligible for reward consideration.
Submission requirements
[#<issue-number>] <short summary>.GrantFox reward consideration is based on the original scope, implementation quality, tests, security review, CI/CD results, review feedback, and follow-up stability; completion or merge alone is not a guarantee.