Visibility

Solidity

Définition

Spécifie qui peut accéder à une fonction ou variable. 4 niveaux : public (tous), external (seulement extérieur, pas d'appels internes), internal (contrat + héritage), private (contrat uniquement). Pour les variables d'état : public génère automatiquement un getter. Critique pour la sécurité : toujours spécifier explicitement.

Version anglaise

Specifies who can access a function or variable. 4 levels: public (all), external (only external, no internal calls), internal (contract + inheritance), private (contract only). For state variables: public automatically generates getter. Critical for security: always specify explicitly.

Exemple de Code

contract Visibility {
  uint256 public publicVar;      // Accessible partout, getter auto
  uint256 internal internalVar;  // Contrat + enfants
  uint256 private privateVar;    // Seulement ce contrat

  function publicFunc() public {}     // Appelable partout
  function externalFunc() external {} // Seulement de l'extérieur (+ économe)
  function internalFunc() internal {} // Contrat + enfants
  function privateFunc() private {}   // Seulement ce contrat

  function testCall() public {
    publicFunc();    // ✅ OK
    // externalFunc(); // ❌ Erreur : seulement depuis l'extérieur
    internalFunc();  // ✅ OK
    privateFunc();   // ✅ OK
  }
}

Termes Liés

Pratique ce concept sur Solingo

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

Commencer gratuitement