Labels: good-first-issue, solidity, gas-saving, gasguard
Difficulty: Easy
Module: contracts/security/
🧠 Concept
Update standard boolean status flags (uint256 private _status) in local reentrancy guards to use uint256 values $1$ and $2$ instead of $0$ and $1$.
⚠️ Problem
Setting a storage slot from $0$ to $1$ incurs a cold-write cost ($20,000\text{ gas}$), whereas changing from $1$ to $2$ operates on a warm slot ($2,900\text{ gas}$).
📁 Implementation Scope
contracts/security/GasOptimizedReentrancyGuard.sol
test/security/GasOptimizedReentrancyGuard.test.ts
🛠️ Requirements
- Define
uint256 private constant _NOT_ENTERED = 1; and uint256 private constant _ENTERED = 2;.
- Initialize
_status = _NOT_ENTERED in constructor / declaration.
🎯 Acceptance Criteria
Labels:
good-first-issue,solidity,gas-saving,gasguardDifficulty: Easy
Module:
contracts/security/🧠 Concept
Update standard boolean status flags ($1$ and $2$ instead of $0$ and $1$ .
uint256 private _status) in local reentrancy guards to useuint256valuesSetting a storage slot from$0$ to $1$ incurs a cold-write cost ($20,000\text{ gas}$ ), whereas changing from $1$ to $2$ operates on a warm slot ($2,900\text{ gas}$ ).
📁 Implementation Scope
contracts/security/GasOptimizedReentrancyGuard.soltest/security/GasOptimizedReentrancyGuard.test.ts🛠️ Requirements
uint256 private constant _NOT_ENTERED = 1;anduint256 private constant _ENTERED = 2;._status = _NOT_ENTEREDin constructor / declaration.🎯 Acceptance Criteria