Solidity入门学习笔记2-根据例子学习Solidity-投票

 

//摘自:https://solidity-cn.readthedocs.io/zh/develop/solidity-by-example.html#

//案例:投票

//结构:为每个投票表决创建一份合约,为每个选项提供简称,最后合约创建者赋予每个地址投票权
//投票人可以选择本人投票,也可选择委托他人
//投票时间结束时,winningProposal()将返回的票最多的提案

pragma solidity ^0.4.22;

//(投票,投票用纸)
/// @title 委托投票
contract Ballot {
    // 这里声明了一个新的复合类型用于稍后的变量
    // 它用来表示一个选民
    struct Voter {
        uint weight; // 计票的权重
        bool voted;  // 若为真,代表该人已投票
        address delegate; // 被委托人
        uint vote;   // 投票提案的索引
    }

    // 提案的类型
    struct Proposal {
        bytes32 name;   // 简称(最长32个字节)
        uint voteCount; // 得票数
    }

    address public chairperson;

    // 这声明了一个状态变量,为每个可能的地址存储一个 `Voter`。
    mapping(address => Voter) public voters;

    // 一个 `Proposal` 结构类型的动态数组
    Proposal[] public proposals;

    //部署合约时需要向此构造函数提交一个由多个提案名构成的数组
    /// 为 `proposalNames` 中的每个提案,创建一个新

你可能感兴趣的:(以太坊)