Transfer
SolidityDéfinition
Fonction pour envoyer de l'ether depuis un contrat vers une adresse payable. Syntaxe : recipient.transfer(amount). Limite de 2300 gas (suffisant pour un receive() simple, mais pas pour du code complexe). Revert automatiquement en échec. Déprécié au profit de call{value: amount}("") qui offre plus de contrôle.
Version anglaise
Function to send ether from contract to payable address. Syntax: recipient.transfer(amount). 2300 gas limit (enough for simple receive(), but not complex code). Automatically reverts on failure. Deprecated in favor of call{value: amount}("") which offers more control.
Exemple de Code
contract Payment {
// ⚠️ Ancienne méthode (déconseillée)
function sendOld(address payable recipient, uint256 amount) public {
recipient.transfer(amount); // Limite 2300 gas
}
// ✅ Méthode moderne (recommandée)
function sendNew(address payable recipient, uint256 amount) public {
(bool success, ) = recipient.call{value: amount}("");
require(success, "Transfer failed");
}
}Pages Liées
Pratique ce concept sur Solingo
Maîtrise Transfer avec des exercices interactifs et un IDE intégré.
Commencer gratuitement