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.
View preliminary resultsAppeals are being carefully reviewed by our judges.
The contest is complete and the rewards are being distributed.