Revert

Solidity

Definition

Annule toutes les modifications d'état et rembourse le gas restant. Utilisé avec des custom errors (0.8.4+) pour économiser du gas vs `require` avec strings. Forme : `revert ErrorName(params);` ou `revert("message");`. Plus explicite que `require(!condition)`.

English version

Cancels all state changes and refunds remaining gas. Used with custom errors (0.8.4+) to save gas vs `require` with strings. Form: `revert ErrorName(params);` or `revert("message");`.

Exemple de Code

// Custom errors : ultra gas-efficient
error Unauthorized(address caller);
error InsufficientFunds(uint requested, uint available);

function withdraw(uint amount) public {
    if (msg.sender != owner)
        revert Unauthorized(msg.sender);

    if (balance < amount)
        revert InsufficientFunds(amount, balance);

    balance -= amount;
    payable(msg.sender).transfer(amount);
}

// Équivalent require (coûte plus cher en gas)
require(msg.sender == owner, "Unauthorized");

Termes Lies

Pratique ce concept sur Solingo

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

Commencer gratuitement