You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
dispute_milestone() sets milestone status to Disputed but there is no resolution mechanism. Disputed milestones become a dead-end with no way to resolve them in favor of either party.
Current Behavior
Backer calls dispute_milestone() → milestone status becomes Disputed
No function exists to resolve the dispute
No emergency refund if dispute is resolved in backer's favor
Problem
dispute_milestone()sets milestone status toDisputedbut there is no resolution mechanism. Disputed milestones become a dead-end with no way to resolve them in favor of either party.Current Behavior
dispute_milestone()→ milestone status becomesDisputedExpected Behavior
Add dispute resolution functions:
Contract Changes
resolve_dispute(campaign_id, milestone_index, resolution: DisputeResolution)(Admin-only)DisputeResolution::ApproveCreator→ milestone status back toSubmittedorReleased(release funds)DisputeResolution::ApproveBacker→ milestone status toRejected, trigger partial refund or holdget_dispute_status(campaign_id, milestone_index)— query current dispute stateDisputeResolvedevent with resolution detailsAcceptance Criteria
Priority
High — This is a critical gap in the end-to-end flow. Backers can file disputes but nothing happens.
Labels
crowdfunding,smart-contract,critical