Labels: medium-difficulty, solidity, storage-packing, gasguard
Difficulty: Medium
Module: contracts/config/
🧠 Concept
Refactor multiple individual boolean configuration state variables (bool isPaused, bool isLocked, bool allowPublic) into a single bytes32 bitmask variable.
⚠️ Problem
Using individual bool state variables allocates multiple 32-byte storage slots (or requires complex struct packing), incurring multiple SLOAD operations during execution.
📁 Implementation Scope
contracts/config/BitmaskConfig.sol
test/config/BitmaskConfig.test.ts
🛠️ Requirements
- Define bit-flag offsets (
uint256 constant PAUSED_BIT = 1 << 0, etc.).
- Implement inline assembly getters and setters to check and set individual bits within a single
bytes32 storage slot.
🎯 Acceptance Criteria
Labels:
medium-difficulty,solidity,storage-packing,gasguardDifficulty: Medium
Module:
contracts/config/🧠 Concept
Refactor multiple individual boolean configuration state variables (
bool isPaused,bool isLocked,bool allowPublic) into a singlebytes32bitmask variable.Using individual
boolstate variables allocates multiple 32-byte storage slots (or requires complex struct packing), incurring multipleSLOADoperations during execution.📁 Implementation Scope
contracts/config/BitmaskConfig.soltest/config/BitmaskConfig.test.ts🛠️ Requirements
uint256 constant PAUSED_BIT = 1 << 0, etc.).bytes32storage slot.🎯 Acceptance Criteria
AND,OR,XOR).