address public USDC (L106) is set during initialize() (L183) but never referenced in any protocol logic. It occupies a storage slot in every proxy, adds a deployment parameter that serves no purpose, and misleads integrators into thinking USDC has special handling in the protocol.
The state variable is declared at L106 and written once during initialization:
The protocol is fully token-agnostic. All functions (createLeveragedPosition, unwindPosition, calculateOpenParams, calculateUnwindParams) accept arbitrary token addresses as parameters. No function reads the USDC variable for routing, fee calculation, or any other purpose.
A search across the entire contract confirms this. Every occurrence of USDC in Stratax.sol:
L106: Declaration (address public USDC)
L178: Parameter in initialize() signature (address _usdc)
L183: Assignment (USDC = _usdc)
There are zero reads. The auto-generated public getter exists but is never called internally.
This is particularly misleading because the variable name USDC implies the protocol has hardcoded USDC handling, which could lead integrators to assume USDC-denominated positions have different behavior. They don't.
Likelihood: High -- Present in every deployment. The unused parameter must be passed to initialize() on every proxy creation.
Impact: Low -- No financial impact. Wastes one 32-byte storage slot per proxy. The unused _usdc parameter in initialize() adds deployment complexity and a potential misconfiguration surface for no benefit.
Three occurrences: declaration, parameter, assignment. Zero reads. The variable is write-only.
Remove the unused variable and its initialization parameter to save a storage slot and reduce confusion:
If USDC is planned for future use (e.g., fee collection or default quote currency), document the intent with a comment explaining the planned usage.
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.