Normal behavior: The verifier address should always be non-zero, matching constructor rules, including after admin updates.
Problem: The constructor reverts when the verifier is address(0). updateVerifier assigns verifier = newVerifier with no zero check. An owner mistake while paused bricks all future claim calls until a valid verifier is set again.
Likelihood:
Owner calls updateVerifier with zero while paused during a botched rotation or compromised key scenario.
Unlikely in steady state; operator error is the main path.
Impact:
Claims revert until a non-zero verifier is configured; no user payouts during the outage.
Explanation: After the owner sets verifier to address(0) via updateVerifier, claim cannot complete verification. The Foundry test below encodes that sequence; it requires fixture files from circuits/scripts/build.sh (for _fixture()).
Supporting code — run:
Supporting code — test:
Explanation: Mirror the constructor: reject address(0) so a paused rotation cannot brick claim by pointing verifier at an address with no verify implementation. Reuse the existing InvalidVerifier() error for consistency.
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.