关于solidity:Solidity案例详解四投票智能合约

35次阅读

共计 879 个字符,预计需要花费 3 分钟才能阅读完成。

该合约为原创合约,性能要求如下
在⼀定工夫能进⾏投票超过工夫投票截⽌,并投同意票超过 50% 则为通过。

  • 使⽤ safeMath 库,使⽤ Owner 第三⽅库
  • 领有参加投票权的⽤户在创立合约时确定
  • Voter 构造 要有工夫戳、投票是否批准等;
  • struct 构造体
    Proposal 提案
    提案编号、提案工夫、提案内容、提案⼈、提案截⽌工夫、后果等。
  • Voter 投票
    投票工夫、态度等(也能够减少委托投票)
  • 性能(必要性能)
  • vote 投票
    getResult 后果
  • 事件
    Vote
    Result 产⽣后果

首先咱们来测试其性能
1. 抉择三个投票账户进行部署

2. 各函数性能概述
constructor: 构造函数用于初始化合约。接管一个蕴含初始选民地址的数组,将这些地址增加到
eligibleVoters 映射中,示意这些地址是适合的选民。
submitProposal: 提交提案的函数。只有适合的选民能力提交提案。该函数创立一个新的提案对象,将其存储在 proposals 映射中。
vote: 进行投票的函数。只有适合的选民能力投票,且投票工夫必须在提案截止工夫之前。投票后果存储在 votes 映射中,并更新提案的赞成和拥护数量。
getResult: 获取提案后果的函数。只有在投票截止工夫之后能力调用该函数。计算赞成票的百分比,并判断提案是否通过,而后更新提案的状态并触发相应的事件。
getNextProposalId: 公有函数,用于生成下一个提案的惟一标识符。在示例中,它总是返回 1,理论利用中可能须要更简单的逻辑 3. 提交提案

4. 投票

账号 1,2,3 别离投票 5. 依据提案查看后果未点击 getResult

点击 getResult

6. 依据用户地址查看用户投票状况

版权申明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协定,转载请附上原文出处链接和本申明。
原文链接:https://blog.csdn.net/2302_77339802/article/details/134370557
文章起源:CSDN 博主「发愣 …」
文章原题目:《Solidity 案例详解(四)投票智能合约》
旨在流传区块链相干技术,如有侵权请与咱们分割删除。

正文完
 0