Payable

Solidity

Définition

Mot-clé permettant à une fonction ou une adresse de recevoir de l'ether. Fonction payable : peut recevoir msg.value. Adresse payable : peut recevoir des transferts via .transfer() ou .send(). Sans payable, toute tentative d'envoi d'ether provoque une erreur. Essentiel pour les paiements on-chain.

Version anglaise

Keyword allowing a function or address to receive ether. Payable function: can receive msg.value. Payable address: can receive transfers via .transfer() or .send(). Without payable, any ether sending attempt causes error. Essential for on-chain payments.

Exemple de Code

contract Payment {
  address payable public owner;

  constructor() {
    owner = payable(msg.sender); // Cast en payable
  }

  // Fonction payable : accepte de l'ether
  function deposit() public payable {
    require(msg.value > 0, "Send ETH");
  }

  // Envoyer de l'ether depuis le contrat
  function withdraw() public {
    require(msg.sender == owner, "Not owner");
    owner.transfer(address(this).balance);
  }

  // Recevoir de l'ether directement
  receive() external payable {}
}

Pratique ce concept sur Solingo

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

Commencer gratuitement