Pure

Solidity

Définition

Modificateur de fonction indiquant qu'elle ne lit ni ne modifie l'état du contrat. Fonctions mathématiques pures, utilitaires, hash, etc. Plus restrictif que view. Ne peut pas accéder au storage, aux variables d'état, ni à block, msg (sauf msg.sig et msg.data). Utile pour des fonctions utilitaires sans effet de bord.

Version anglaise

Function modifier indicating it neither reads nor modifies contract state. Pure mathematical functions, utilities, hash, etc. More restrictive than view. Cannot access storage, state variables, nor block, msg (except msg.sig and msg.data). Useful for utility functions without side effects.

Exemple de Code

contract Math {
  // Pure : ne lit ni ne modifie l'état
  function add(uint256 a, uint256 b) public pure returns (uint256) {
    return a + b;
  }

  function hash(string memory str) public pure returns (bytes32) {
    return keccak256(abi.encodePacked(str));
  }

  // ❌ Erreur : lit l'état (this.balance)
  // function getBalance() public pure returns (uint256) {
  //   return address(this).balance; // ERREUR : pas pure
  // }
}

Termes Liés

Pratique ce concept sur Solingo

Maîtrise Pure avec des exercices interactifs et un IDE intégré.

Commencer gratuitement