Interface

Solidity

Définition

Contrat abstrait définissant les signatures de fonctions sans implémentation. Utilisé pour interagir avec des contrats externes dont on connaît l'ABI. Toutes les fonctions sont automatiquement external. Pas de variables d'état, pas de constructor, pas de fonctions internes. Permet le polymorphisme et la composition de contrats.

Version anglaise

Abstract contract defining function signatures without implementation. Used to interact with external contracts whose ABI is known. All functions are automatically external. No state variables, no constructor, no internal functions. Enables polymorphism and contract composition.

Exemple de Code

// Interface ERC-20
interface IERC20 {
  function totalSupply() external view returns (uint256);
  function balanceOf(address account) external view returns (uint256);
  function transfer(address to, uint256 amount) external returns (bool);
}

// Utilisation
contract MyContract {
  IERC20 public token;

  constructor(address _token) {
    token = IERC20(_token); // Cast de l'adresse vers l'interface
  }

  function checkBalance(address user) public view returns (uint256) {
    return token.balanceOf(user); // Appel via l'interface
  }
}

Pratique ce concept sur Solingo

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

Commencer gratuitement