Publiquei esse vídeo/tutorial no meu canal no YouTube explicando, passo a passo, a criação de uma urna eletrônica simples para votação de condomínio usando Blockchain e Smart Contracts. Para isso, escolhemos como Blockchain a Ethereum para armazenar os votos e criamos a lógica de votação usando "DApps" em Solidity.
Código em Solidity
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
// SPDX-License-Identifier: GPL-2.0-or-later
// Criado por Alexandre Siqueira para o Canal do Youtube Techstudio Podcast
// Link para o tutorial: https://youtu.be/V6zTSr3hB3U
pragma solidity >=0.7.4;
contract Votacao {
address public sindico;
string public pauta;
enum Opcao { Sim, Nao, Nulo, Abstencao }
mapping (Opcao => address[]) voto;
mapping (address => bool) moradores;
constructor (string memory _pauta){
sindico = msg.sender;
pauta = _pauta;
}
function votar (Opcao _opcao) public {
require(!moradores[msg.sender], "Morador ja votou!");
voto[_opcao].push(msg.sender);
moradores[msg.sender] = true;
}
function verResultado (Opcao _opcao) public view returns (address[] memory){
return (voto[_opcao]);
}
}