In claimExpired(), line 600 checks if (!claimsStarted) claimsStarted = true. However, by the time execution reaches this line, claimsStarted has already been unconditionally set to true by the resolution block (line 549 for auto-CORRUPTED early return, line 575 for SURVIVED/EXPIRED fallthrough). The guard at line 600 can never fire in the current code path — it is dead code.
Likelihood: N/A — the condition is structurally always false; the guard never executes.
Impact: Low — no runtime effect. The dead code consumes minimal bytecode (a conditional jump that always falls through). It exists as vestigial defense-in-depth but could confuse future maintainers.
File: L22-DeadGuard-ClaimsStarted.poc.t.sol
Run: forge test --match-path 'L22-DeadGuard-ClaimsStarted.poc.t.sol' -vv
Remove the dead guard, or add a comment documenting it as defense-in-depth against future code changes:
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.