The contract declares most state variables and mappings as public
, which automatically generates external getter functions for each variable. Many of these variables are only used internally by the contract and don't require external access, making the public visibility unnecessary and wasteful.
Each public
state variable generates bytecode for a getter function, increasing the contract's deployment size and gas costs. This is particularly impactful for complex mappings that generate more expensive getter functions.
Likelihood:
Issue occurs on every contract deployment
Gas costs are directly passed to the deployer
Affects project economics and deployment feasibility
Impact:
Increased deployment gas costs for unnecessary getter functions
Larger contract bytecode size affecting deployment limits
Wasted blockchain resources for unused functionality
Higher barrier to entry due to increased deployment costs
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.