Skip to content

Instantly share code, notes, and snippets.

@rpaskin
Created June 21, 2024 01:49
Show Gist options
  • Save rpaskin/c4a7f0186fd76c614e18b1ee6edc09b1 to your computer and use it in GitHub Desktop.
Save rpaskin/c4a7f0186fd76c614e18b1ee6edc09b1 to your computer and use it in GitHub Desktop.
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
contract RefriToken {
// o que vamos guardar?
address public dono;
uint public codigoDeBarras;
string public sabor;
string public marca;
uint public preco;
bool public compravel;
event Bloqueio(address quemBloqueou);
constructor(uint _codigoDeBarras, string memory _sabor,
string memory _marca, uint _preco){
dono = msg.sender;
codigoDeBarras = _codigoDeBarras;
sabor = _sabor;
marca = _marca;
preco = _preco;
compravel = true;
}
function comprar() external payable {
require(compravel);
require(msg.value == preco, "'Deve enviar o preco da lata!");
payable(dono).transfer(address(this).balance);
dono = msg.sender;
}
function bloquearVenda() external {
require(msg.sender == dono, "Apenas o dono pode bloquear a venda!");
emit Bloqueio(msg.sender);
compravel = false;
}
// function beber(uint bebidos_ml) external returns (uint restante_ml) {
// }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment