Revert

Solidity

Définition

Instruction pour annuler une transaction et rembourser le gas restant. Peut inclure un message d'erreur ou utiliser des custom errors (plus économes). Toutes les modifications d'état sont annulées. require() est un raccourci pour if (!condition) revert(). Utilisé pour gérer les erreurs et les conditions invalides.

Version anglaise

Instruction to cancel a transaction and refund remaining gas. Can include error message or use custom errors (more economical). All state changes are undone. require() is shortcut for if (!condition) revert(). Used for error handling and invalid conditions.

Exemple de Code

contract Example {
  error InsufficientBalance(uint256 requested, uint256 available);

  mapping(address => uint256) public balances;

  function withdraw(uint256 amount) public {
    // Avec message
    if (balances[msg.sender] < amount) {
      revert("Insufficient balance");
    }

    // Avec custom error (recommandé)
    if (balances[msg.sender] < amount) {
      revert InsufficientBalance(amount, balances[msg.sender]);
    }

    balances[msg.sender] -= amount;
    payable(msg.sender).transfer(amount);
  }
}

Termes Liés

Pratique ce concept sur Solingo

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

Commencer gratuitement