Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- pragma solidity ^0.5.12;
- //Jose Campodonico
- contract Votaciones {
- address public owner;
- mapping(address => bool) private candidatos; // {}
- mapping(address => uint) public votos;
- mapping(address => uint) public status_votantes;
- enum status_votacion { Creado, Activo, Inactivo } status_votacion public status; //variable para conocer el estado del contrato/votacion
- modifier onlyOwner {
- require(msg.sender == owner);
- _;
- }
- modifier Status_Contrato (status_votacion _status) {
- require(status == _status);
- _;
- }
- constructor() public {
- owner = msg.sender;
- status = status_votacion.Creado;
- }
- function agregar_candidato(address _candidato) public Status_Contrato(status_votacion.Creado) onlyOwner {
- require(!candidatos[_candidato]); // Se requiere que no estΓ© activo el candidato.
- candidatos[_candidato] = true; // { _candidato: true }
- }
- function activar_votacion() public Status_Contrato(status_votacion.Creado) onlyOwner {
- status = status_votacion.Activo;
- }
- function votar_candidato(address _candidato) public Status_Contrato(status_votacion.Activo){
- require(status_votantes[msg.sender] < 2 && candidatos[_candidato]);
- status_votantes[msg.sender]++;
- votos[_candidato]++; // votos[_candidato] = votos[_candidato] + 1;
- }
- function finalizar_votacion() public Status_Contrato(status_votacion.Activo) onlyOwner {
- status = status_votacion.Inactivo;
- }
- function consultar_candidato(address _candidato) public view returns (bool) {
- return candidatos[_candidato]; // { _candidato: true }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement