Description
There are multiple conflicting validate_milestone definitions in the crate tree. Keep one correct implementation with proper auth and storage updates.
Requirements and context
-
Verifier or creator auth per Option<Address> rules
-
Sets milestone_validated without transferring funds (release is separate)
-
Must be secure, fully tested, and documented
-
Should be efficient and easy to review for auditors and integrators
Suggested execution
- Fork the repository and create a branch:
git checkout -b fix/validate-milestone-single
- Implement the changes listed below
- Open a draft PR early for design feedback
Implement
- Delete stub functions in test modules that shadow contract API
- Integration test: cannot validate twice
Tests and documentation
- Add or extend automated tests:
src/lib.rs
- Add or update documentation:
vesting.md
- Add Rustdoc (
///) on public contract APIs where applicable (NatSpec-style)
- Validate stated security assumptions explicitly in PR description
Test and commit
- Run the full contract test suite (e.g.
cargo test, Soroban local sandbox if applicable)
- Cover edge cases called out in this issue
- Attach test output summary and short security notes in the PR
- Ensure minimum 95% line coverage for touched modules (
cargo tarpaulin / project standard)
Example commit message
fix(soroban): single validate_milestone implementation with tests
Guidelines
| Item |
Target |
| Test coverage |
≥ 95% on changed code |
| Documentation |
Clear, versioned, matches on-chain behavior |
| Timeframe |
96 hours from assignment |
Description
There are multiple conflicting
validate_milestonedefinitions in the crate tree. Keep one correct implementation with proper auth and storage updates.Requirements and context
Verifier or creator auth per
Option<Address>rulesSets
milestone_validatedwithout transferring funds (release is separate)Must be secure, fully tested, and documented
Should be efficient and easy to review for auditors and integrators
Suggested execution
git checkout -b fix/validate-milestone-singleImplement
Tests and documentation
src/lib.rsvesting.md///) on public contract APIs where applicable (NatSpec-style)Test and commit
cargo test, Soroban local sandbox if applicable)cargo tarpaulin/ project standard)Example commit message
Guidelines