Storage
SolidityDéfinition
Zone de stockage persistante du contrat, conservée entre les transactions. Très coûteuse en gas (SSTORE = 20k gas pour une nouvelle valeur, 5k pour une mise à jour). Organisée en slots de 32 bytes. Les variables d'état (state variables) sont stockées dans le storage. À minimiser pour optimiser le gas.
Version anglaise
Persistent storage area of contract, preserved between transactions. Very expensive in gas (SSTORE = 20k gas for new value, 5k for update). Organized in 32-byte slots. State variables stored in storage. Should be minimized for gas optimization.
Exemple de Code
contract StorageExample {
// Variables d'état = stockées dans le storage
uint256 public value; // Slot 0
address public owner; // Slot 1
mapping(address => uint256) public balances; // Slot 2+
function updateValue(uint256 newValue) public {
value = newValue; // SSTORE : coûteux
}
// Optimisation : limiter les écritures
function optimizedUpdate(uint256[] memory values) public {
uint256 sum = 0;
for (uint i = 0; i < values.length; i++) {
sum += values[i]; // En memory : pas cher
}
value = sum; // 1 seul SSTORE au lieu de N
}
}Termes Liés
Pages Liées
Pratique ce concept sur Solingo
Maîtrise Storage avec des exercices interactifs et un IDE intégré.
Commencer gratuitement