The USDC address is declared as a state variable, set in initialize(), and publicly readable — but it is never referenced in any function logic within the contract.
Likelihood:
The variable is set on every deployment but has no effect — this is always the case in the current codebase
Impact:
Wastes one storage slot in the proxy's storage layout
Misleads integrators and auditors into assuming USDC has special protocol-level significance
A future upgrade adding USDC logic would assume this is set correctly, with no on-chain enforcement
Remove the USDC state variable and its assignment in initialize(). If USDC is intended for a future feature, document the reservation explicitly with a NatSpec comment on the __gap array instead — the 50-slot gap already reserves space for future variables without naming them prematurely.
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.