Reject create_vault when a milestone due_date is in the past in accountability_vault
Description
create_vault in contracts/accountability_vault/src/lib.rs validates that end_timestamp is in the future and that each milestone.due_date <= end_timestamp, but does not reject a milestone whose due_date is already in the past relative to env.ledger().timestamp(). Such a milestone can never be checked in, guaranteeing a slash. Add the lower-bound validation and a failing-case test.
Requirements and context
- Must be secure, tested, and documented
- Should be efficient and easy to review
- Add
due_date > env.ledger().timestamp() validation in create_vault
- Return the existing
InvalidDeadline error code in contracts/accountability_vault/src/lib.rs
- Add a past-due-date rejection test in
contracts/accountability_vault/src/test.rs
- Note the rule in
contracts/README.md
Suggested execution
- Fork the repo and create a branch
git checkout -b bug/reject-past-due-milestone
- Implement changes
- Modify
contracts/accountability_vault/src/lib.rs
- Add a test in
contracts/accountability_vault/src/test.rs
- Update
contracts/README.md
- Add boundary comments
- Test and commit
- Run tests, cover edge cases
- Include test output and notes
Example commit message
fix: reject past milestone due dates in create_vault
Guidelines
- Minimum 95 percent test coverage
- Clear documentation
- Timeframe: 96 hours
Reject create_vault when a milestone due_date is in the past in accountability_vault
Description
create_vaultincontracts/accountability_vault/src/lib.rsvalidates thatend_timestampis in the future and that eachmilestone.due_date <= end_timestamp, but does not reject a milestone whosedue_dateis already in the past relative toenv.ledger().timestamp(). Such a milestone can never be checked in, guaranteeing a slash. Add the lower-bound validation and a failing-case test.Requirements and context
due_date > env.ledger().timestamp()validation increate_vaultInvalidDeadlineerror code incontracts/accountability_vault/src/lib.rscontracts/accountability_vault/src/test.rscontracts/README.mdSuggested execution
git checkout -b bug/reject-past-due-milestonecontracts/accountability_vault/src/lib.rscontracts/accountability_vault/src/test.rscontracts/README.mdExample commit message
fix: reject past milestone due dates in create_vaultGuidelines