The distribute_usdc_signed function enforces a deadline on every signed
request to prevent replay attacks and stale request execution.
| Condition | Result |
|---|---|
| deadline == 0 | InvalidDeadline |
| deadline < now | DeadlineExpired |
| deadline == now | DeadlineExpired |
| deadline == now + 1 | Accepted |
| deadline <= now + MAX_DEADLINE_WINDOW_SECS | Accepted |
| deadline > now + MAX_DEADLINE_WINDOW_SECS | InvalidDeadline |
MAX_DEADLINE_WINDOW_SECS= 3,600 (1 hour)
- Expired or invalid deadlines never advance the nonce
- Deadline is checked before require_auth side effects
- The comparison is strictly greater than (deadline > now required)
Requests are valid for at most 1 hour from the ledger timestamp at submission time. Requests with deadlines beyond this window are rejected as InvalidDeadline to prevent unbounded replay windows.