Skip to content

[CONTRACT] Add a mutual deadline extension entrypoint #574

Description

@Cedarich

Complexity: Medium (150)

Description
deadline is fixed at create_escrow and never changeable. When work legitimately runs late, the parties' only options today are to let refund_expired claw everything back to the depositor or to cancel and recreate the escrow — both of which destroy the milestone history and force re-funding. Add an entrypoint that lets depositor and recipient jointly move the deadline forward.

Acceptance Criteria

  • A new entrypoint extends the deadline and requires auth from both depositor and recipient
  • The new deadline must be strictly later than the current one and satisfy the same InvalidDeadline validation as creation
  • Extension is rejected for terminal statuses (Completed, Cancelled, Resolved, Expired) and while the contract is paused, consistent with the existing guard pattern
  • A versioned event is emitted with the old and new deadline
  • Tests cover happy path, single-party auth rejection, earlier-deadline rejection, terminal-state rejection, and interaction with refund_expired

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

150 pointsMedium difficultySorobanSoroban-specificStellar WaveIssues in the Stellar wave programcontractSmart contract work (Soroban)enhancementNew feature or requestescrowEscrow-related featuresonchainapps/onchain scope

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions