Skip to content

feat: add milestone deadlines, time-based validation, and auto-expiry#112

Open
chisomvictorcv-sketch wants to merge 1 commit into
Lumina-eX:mainfrom
chisomvictorcv-sketch:feature/milestone-auto-expiry
Open

feat: add milestone deadlines, time-based validation, and auto-expiry#112
chisomvictorcv-sketch wants to merge 1 commit into
Lumina-eX:mainfrom
chisomvictorcv-sketch:feature/milestone-auto-expiry

Conversation

@chisomvictorcv-sketch
Copy link
Copy Markdown

Closes #78

Summary
Enhances the escrow contract to support milestone deadlines, time-based validation, and an auto-expiry mechanism for overdue/incomplete milestones.

Changes

Soroban Contract (contracts/contracts/escrow/src/lib.rs)

  • Added deadline: u64 field to Milestone struct
  • Added AutoExpired status to MilestoneStatus enum
  • Added DeadlineExceeded and AlreadyExpired error variants
  • Added MilestoneDeadline(u32) data key for per-milestone deadline storage
  • Deadlines stored during initialize()
  • submit_milestone() validates against deadline — rejects if expired
  • New auto_expire() function — anyone can trigger expiry after deadline, refunds client
  • New is_milestone_expired() query function
  • New get_milestone_deadline() query function

TypeScript Types (lib/escrow/types.ts)

  • Added 'auto_expired' to MilestoneStatus union
  • Added deadline?: number (Unix timestamp) to MilestoneInput

Acceptance Criteria

  • Support multiple milestones within a contract (already existed)
  • Allow partial fund releases per milestone (already existed via release())
  • Validate milestones based on time constraints
  • Auto-expiry option for overdue or incomplete milestones

@drips-wave
Copy link
Copy Markdown

drips-wave Bot commented May 30, 2026

@chisomvictorcv-sketch Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@chisomvictorcv-sketch chisomvictorcv-sketch force-pushed the feature/milestone-auto-expiry branch from 764e85f to fb824bc Compare May 30, 2026 17:22
@chisomvictorcv-sketch chisomvictorcv-sketch force-pushed the feature/milestone-auto-expiry branch from fb824bc to 452adf9 Compare May 30, 2026 17:33
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.

[Feature]: Milestone-Based Payment Logic in Contract

1 participant