Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save MateusAndreatta/b7432a630d43037269f42b6327991a38 to your computer and use it in GitHub Desktop.
Save MateusAndreatta/b7432a630d43037269f42b6327991a38 to your computer and use it in GitHub Desktop.
sou_mais_rico_mateus_andreatta.sol
// SPDX-License-Identifier: MIT
pragma solidity >= 0.7.0 < 0.9.0;
/**
Crie um contrato que realize:
- Guarda o endereço do dono do contrato (quem publicou este contrato). - Feito
- Guarda somente uma mensagem, quem a publicou e o ultimo valor pago para publicar esta mensagem; - Feito
- Para modificar esta mensagem, a pessoa precisa enviar um valor maior que o pago anteriormente; - Feito
- É possível para o dono do contrato, retirar os valores depositados nele.
Vale um ponto a ser somado no somativo 1 ou somativo 2.
*/
contract SouMaisRico{
address payable public dono;
string public mensagem;
address public autorMensagem;
uint public ultimoValorPago;
uint public totalValoresPagos;
constructor() {
dono = payable(msg.sender);
}
function updateMessage(string memory newMessage) public payable returns(string memory) {
if (msg.value > ultimoValorPago) {
mensagem = newMessage;
autorMensagem = msg.sender;
ultimoValorPago = msg.value;
totalValoresPagos += ultimoValorPago;
}
return mensagem;
}
function saque() public payable {
if (dono == msg.sender) {
dono.transfer(totalValoresPagos);
totalValoresPagos = 0;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment