RegistroMensagens
// ```remix-solidity
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract RegistroMensagens {
struct Mensagem {
uint256 id;
address from;
address to;
string text;
uint256 timestamp;
//string[] infos ;
}
/*
modifier onlyOwner {
require(msg.sender == owner);
_;
}*/
Mensagem[] private mensagens; // Array para armazenar as mensagens
//string[] private mensagens;
error ErrorIndexInvalid(uint256 index);
//event MensagemRegistrada(uint256 id, address remetente, string conteudo, uint256 timestamp);
function enviarMensagem(string memory _conteudo, address _to) public {
uint256 novoId = mensagens.length; // Obter o próximo ID disponível
Mensagem memory novaMensagem = Mensagem(
novoId,
msg.sender,
_to,
_conteudo,
block.timestamp
);
mensagens.push(novaMensagem);
//emit MensagemRegistrada(novoId, msg.sender, _conteudo, block.timestamp);
}
function obterTodasMensagens() public view returns (Mensagem[] memory) {
return mensagens;
}
function obterMensagem(uint256 index)
public
view
returns (Mensagem memory)
{
//require (mensagens.length > index, "Invalid index.");
/*
0 - ola
1 - hello
2 - ola grupo
l -> 3
i -> 1 = ok
i = 4 = not ok
*/
// 4 > 3 - FALSE
// 1 > 5 - TRUE
if (index > mensagens.length) {
revert ErrorIndexInvalid(index);
//revert ("mensagem");
}
return mensagens[index];
}
}
```
Last updated