Context
set_window/get_window/is_within_window (campaign/src/lib.rs ~L217–L253) gate registration by time.
Edge conditions (start == end, end < start, window of zero, boundary timestamp equality, reliance on
ledger().timestamp() skew) are easy to get subtly wrong and lock users in/out.
Scope
- Define inclusive/exclusive bounds explicitly.
- Validate
start <= end on set; reject degenerate windows or define their semantics.
- Test boundary timestamps exactly at start and end.
Acceptance criteria
Context
set_window/get_window/is_within_window(campaign/src/lib.rs ~L217–L253) gate registration by time.Edge conditions (start == end, end < start, window of zero, boundary timestamp equality, reliance on
ledger().timestamp()skew) are easy to get subtly wrong and lock users in/out.Scope
start <= endon set; reject degenerate windows or define their semantics.Acceptance criteria