码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Solidity案例详解(四)投票智能合约


    该合约为原创合约,功能要求如下


    在⼀定时间能进⾏投票超过时间投票截⽌,并投赞同票超过50%则为通过。

    • 使⽤safeMath库,使⽤Owner 第三⽅库
    • 拥有参与投票权的⽤户在创建合约时确定
    • Voter 结构 要有时间戳、投票是否同意等;
    • struct 结构体
      • Proposal 提案
        • 提案编号、提案时间、提案内容、提案⼈、提案截⽌时间、结果等。
      • Voter 投票
        • 投票时间 、态度等(也可以增加委托投票)
    • 功能(必要功能)
    • vote 投票
      • getResult 结果
    • 事件
      • Vote
      • Result 产⽣结果

    首先我们来测试其功能

    1.选择三个投票账户进行部署

    2.各函数功能概述

    1. constructor: 构造函数用于初始化合约。接收一个包含初始选民地址的数组,将这些地址添加到 eligibleVoters 映射中,表示这些地址是合适的选民。

    2. submitProposal: 提交提案的函数。只有合适的选民才能提交提案。该函数创建一个新的提案对象,将其存储在 proposals 映射中。

    3. vote: 进行投票的函数。只有合适的选民才能投票,且投票时间必须在提案截止时间之前。投票结果存储在 votes 映射中,并更新提案的赞成和反对数量。

    4. getResult: 获取提案结果的函数。只有在投票截止时间之后才能调用该函数。计算赞成票的百分比,并判断提案是否通过,然后更新提案的状态并触发相应的事件。

    5. getNextProposalId: 私有函数,用于生成下一个提案的唯一标识符。在示例中,它总是返回1,实际应用中可能需要更复杂的逻辑

    3.提交提案

    4.投票

    账号1,2,3分别投票

    5.根据提案查看结果

    未点击getResult

    点击getResult

    6.根据用户地址查看用户投票情况

    至此结束~想要源码私信我

  • 相关阅读:
    Qt TCP 分包粘包的解决方法
    微信小程序中封装请求,使用Async await方法,将异步请求变为同步请求方法
    【App自动化测试】(六)移动端自动化中常用的元素定位方式
    复盘:卷积神经网络、池化、乘法运算操作、RNN/transformer/CNN复杂度
    超长圆钢在线直线度检测 告别手工测量时代
    认识Vue中的路由
    Baumer工业相机堡盟工业相机如何联合GAPI SDK和OpenCV实现相机图像将图像转换为Mat格式再转为Bitmap图像进行显示(C#)
    Gartner发布『2022年技术成熟度曲线』;『强化学习导论』电子书;读博申请超全攻略;快速构建推荐系统工具包;前沿论文 | ShowMeAI资讯日报
    一文搞懂前端兼容问题
    人工智能数学课高等数学线性微积分数学教程笔记(7. 最优化)
  • 原文地址:https://blog.csdn.net/2302_77339802/article/details/134370557
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号