pragma solidity ^0.4.23; // Le contrat contract MachineCafeContract { // Le constructeur du contrat // Executé une fois lors du déploiment constructor() public { // ... } // Déclaration de l'évènement de vente de café event CafeVendu(uint cafeId, address acheteur); // Déclaration de la structure de donnée "café" struct Cafe { uint cafeId; } // Un tableau contenant tous les cafés Cafe[] cafes; // Un tableau qui contient un mapping des id de café vers des addresses Ethereum (les acheteurs) mapping (uint => address) ventesDeCafe; // Fonction publique // Appelable depuis l'extérieur du contrat, par exemple une application web avec web3.js function acheterCafe() public returns (uint) { uint cafeId = cafes.length - 1; emit CafeVendu(cafeId, msg.sender); return cafeId; } }
0.4.24