Applez Nous: +41 22 518 70 00
Comprendre la gestion de la mémoire sous Solidity est indispensable pour concevoir du code performant et économe en gaz :
Les modificateurs permettent d’encapsuler des conditions de contrôle d’accès réutilisables avant ou après l’exécution du corps d’une fonction :
contract GestionnaireAcces {
address public proprietaire;
constructor() {
proprietaire = msg.sender;
}
// Modificateur personnalisé
modifier uniquementProprietaire() {
require(msg.sender == proprietaire, "Erreur : Seul le proprietaire peut executer cette action");
_; // Le symbole '_;' indique l'endroit ou le corps de la fonction sera insere
}
function reinitialiserSysteme() external uniquementProprietaire {
// Logique executee uniquement si le require du modifier a reussi
}
}
immutable et constant : Les variables qui ne changent jamais de valeur après l’initialisation ne sont pas stockées dans le Storage mais directement écrites dans le bytecode du contrat, économisant du gaz à chaque lecture.uint128 avec uint128, ou address (20 octets) avec uint96) pour qu’ils partagent le même slot de stockage.custom errors aux chaînes require : Depuis Solidity 0.8.4, l’utilisation de revert CustomError() est nettement moins onéreuse en gaz que les longues chaînes de caractères d’erreur.Conseil d’expert : Sur Ethereum, un contrat mal optimisé peut coûter des dizaines de francs suisses supplémentaires à chaque transaction pour ses utilisateurs. L’optimisation du gaz est un gage de professionnalisme.