withdraw() calls _clampUserSums(msg.sender) but this call always returns immediately without doing anything. The withdraw gate already guarantees riskWindowStart == 0 before execution reaches that line, and _clampUserSums returns early when riskWindowStart == 0. The call is a dead code path that only wastes gas.
withdraw() gate ensures riskWindowStart == 0:
_clampUserSums immediately returns when riskWindowStart == 0:
Wastes gas on every withdrawal (extra SLOAD for riskWindowStart).
Simply remove the unnecessary call.
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.
The contest is complete and the rewards are being distributed.