Call
SolidityDéfinition
Fonction bas niveau pour interagir avec des contrats. Plus flexible que transfer() ou send(), permet d'envoyer de l'ether ET d'appeler des fonctions, avec un gas limit personnalisable. Retourne (bool success, bytes memory data). Contrairement à transfer(), ne revert pas automatiquement en cas d'échec, nécessite une vérification manuelle du succès. Préféré depuis Solidity 0.8+.
Version anglaise
Low-level function for interacting with contracts. More flexible than transfer() or send(), allows sending ether AND calling functions with customizable gas limit. Returns (bool success, bytes memory data). Unlike transfer(), does not automatically revert on failure, requires manual success check. Preferred since Solidity 0.8+.
Exemple de Code
// Envoyer de l'ether avec call
(bool success, ) = recipient.call{value: 1 ether}("");
require(success, "Transfer failed");
// Appeler une fonction d'un autre contrat
(bool success, bytes memory data) = target.call(
abi.encodeWithSignature("transfer(address,uint256)", recipient, 100)
);
require(success, "Call failed");
// Avec gas limit personnalisé
target.call{gas: 50000}(data);Termes Liés
Pages Liées
Pratique ce concept sur Solingo
Maîtrise Call avec des exercices interactifs et un IDE intégré.
Commencer gratuitement