Skip to main content

Missing Constant Modifier for State Variables

Description

In Solidity, it is possible to declare a state variable as a constant. This allows the compiler to replace all references to the variable with the actual value at compile time, resulting in lower gas costs. However, if a state variable is not declared as constant when it should be, unnecessary gas costs can be incurred during contract execution.

Example Code

Consider the following Solidity contract:

contract MyContract {
uint256 constant MY_CONST = 123;
uint256 myVar = 456;

function doSomething() external {
// use of constant variable, results in lower gas cost
uint256 result = MY_CONST + 789;

// use of non-constant variable, results in higher gas cost
uint256 otherResult = myVar + 789;
}
}

In this example, MY_CONST is declared as constant, allowing its value to be replaced with 123 at compile time. On the other hand, myVar is not declared as constant, resulting in unnecessary gas costs when it is used in the doSomething() function.

Recommendation

t is recommended to declare state variables as constant when their values will not change during contract execution. This can result in lower gas costs and faster contract execution.