Labels: good-first-issue, solidity, rule
Difficulty: Easy
Module: packages/rules/solidity/
🧠 Concept
Detect state variables in Solidity that are only assigned in the constructor or at declaration, recommending constant or immutable modifiers.
⚠️ Problem
Reading standard state variables costs SLOAD gas (2100+ gas for cold reads), whereas constant and immutable variables are stored directly in contract bytecode (PUSH opcodes), saving significant execution gas.
📁 Implementation Scope
packages/rules/solidity/src/rules/immutable-check.ts
packages/rules/solidity/tests/immutable-check.spec.ts
🛠️ Requirements
- Track state variable assignments across all contract methods.
- Flag variables that are declared without
constant/immutable and are never written to outside the constructor.
- Suggest adding
immutable (for constructor-assigned variables) or constant (for inline-assigned variables).
🎯 Acceptance Criteria
Labels:
good-first-issue,solidity,ruleDifficulty: Easy
Module:
packages/rules/solidity/🧠 Concept
Detect state variables in Solidity that are only assigned in the constructor or at declaration, recommending
constantorimmutablemodifiers.Reading standard state variables costs
SLOADgas (2100+ gas for cold reads), whereasconstantandimmutablevariables are stored directly in contract bytecode (PUSHopcodes), saving significant execution gas.📁 Implementation Scope
packages/rules/solidity/src/rules/immutable-check.tspackages/rules/solidity/tests/immutable-check.spec.ts🛠️ Requirements
constant/immutableand are never written to outside the constructor.immutable(for constructor-assigned variables) orconstant(for inline-assigned variables).🎯 Acceptance Criteria