Payable

Solidity

Definition

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;
    }
}

Pratique ce concept sur Solingo

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

Commencer gratuitement