Payable
SolidityDefinition
Modificateur permettant à une fonction ou adresse de recevoir de l'Ether. Une fonction sans `payable` rejettera toute transaction envoyant de l'Ether. Pour les adresses, `address payable` permet d'utiliser `.transfer()` et `.send()`. Cast requis : `payable(address)`.
English version
Modifier allowing function or address to receive Ether. Function without `payable` rejects any transaction sending Ether. For addresses, `address payable` enables `.transfer()` and `.send()`.
Exemple de Code
contract PaymentReceiver {
mapping(address => uint) public balances;
// Fonction payable : peut recevoir Ether
function deposit() public payable {
balances[msg.sender] += msg.value;
}
// Withdrawal nécessite address payable
function withdraw(uint amount) public {
require(balances[msg.sender] >= amount);
balances[msg.sender] -= amount;
payable(msg.sender).transfer(amount);
}
// Fallback payable pour recevoir Ether sans données
receive() external payable {
balances[msg.sender] += msg.value;
}
}Pages Liees
Pratique ce concept sur Solingo
Maîtrise Payable avec des exercices interactifs et un IDE intégré.
Commencer gratuitement