学习以太坊部署智能合约(九) — 智能合约truffle框架投票系统(非常详细)


前言

今天给大家带来详细的智能合约投票

一、开发环境

  • Ubuntu18.04
  • npm
  • node111.10.0
  • ganache
  • metamask

二、开发步骤

1.合约编写

不管创建什么project,都想考虑清楚这个project的需求!
这里编写Voting.sol

// SPDX-License-Identifier: MIT
pragma solidity >=0.4.21 <0.7.0;

contract Voting {
   
    bytes32[] public candidateList; // 候选人地址
    mapping(bytes32 => uint8) public votesReceived; //投票数
	//注意这个,需要传参,传进去的名字就等同于候选人
    constructor(bytes32[] memory candidateListName) public  {
   
        candidateList = candidateListName;
    }
    // 这个构造一个验证候选人函数
    function validateCanditate(bytes32 candidateName)internal view returns(bool) {
   
        for (uint8 i =0; i < candidateList.length; i++) {
   
            if (candidateName == candidateList[i])
                return true;
        }
        return false;
    
    }
    // 投票函数
    function voteForCandidate(bytes32 candidateName) public {
   
        require(validateCanditate(candidateName));
        votesReceived[candidateName] += 1;
    }
    // 投票总数
    function totalVotesFor(bytes32 candidateName) view public returns(uint8) {
   
        require(validateCanditate(candidateName));
        return votesReceived[candidateName]
  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值