经典综合案例——众筹

pragma solidity ^0.5.10;// 流程: 创建众筹事件 --> 投资人投资 --> 为受益人提款contract crowdfunding{// 投资者对象struct Funder{address funderAddr;  // 投资人地址uint amount;  // 投资金额}// 受益人对象struct Campaign{address payable beneficiary;  // 受益人地址uint goal;  // 目标金额uint amount;  // 当前已募集的金额uint funderNum;  // 投资者数量// 映射,将投资者ID => 投资人对象绑定,从而可以得知是谁给当前受益人投资mapping(uint => Funder) fundersMap;}// 将受益人信息存储在区块链上uint campaignID;  // 受益人ID// 映射,将受益人ID => 受益人对象对象绑定,从而可以更好地管理收益人信息mapping(uint => Campaign) campaignsMap;// 实现一个众筹事件function NewNeeder(address payable _beneficiary, uint _goal) public{// 将受益人ID与受益人对象绑定campaignID ++;campaignsMap[campaignID] = Campaign(_beneficiary, _goal, 0, 0);}// @param _address 投资人地址,也可以用msg.sender获取// @param _campaignID 受益人IDfunction invest(address _funderAddr, uint _campaignID) public payable{Campaign storage c = campaignsMap[_campaignID];  // 通过campaignID获取到受益人对象c.amount += msg.value;  // 募集到的资金增加c.funderNum ++;  // 投资人数增加c.fundersMap[c.funderNum] = Funder(_funderAddr, msg.value);  // 将投资者ID与投资者对象绑定}// 当募集的资金满足goal条件,即给受益人地址转账function check(uint _campaignID) public{Campaign storage c = campaignsMap[_campaignID];if(c.goal <= c.amount){c.beneficiary.transfer(c.amount);}}// 测试,受益人目标金额、已募集金额、投资人数function test() view public returns(uint, uint, uint){return (campaignsMap[1].goal, campaignsMap[1].amount, campaignsMap[1].funderNum);}}

欢迎交流学习!!!

智能合约经典综合案例--众筹相关推荐

  1. 以太坊智能合约之如何执行智能合约?

    区块链技术在顶级技术中占据主导地位的主要原因在于其去中心化.虽然区块链的主要目的是在没有中心的情况下维护交易记录,但为了实现自动化,智能合约被引入.那么在写完智能合约之后呢?在本文的这个以太坊智能合约 ...

  2. Blockchain技术之区块链的应用领域——智能合约

    一.什么是智能合约? 智能合约是指一份能自动执行本需要手动才能完成任务的协议,智能合约就是任何能自行执行部分功能的协议.例如,一份能自动计算合同当事人待付金额,并安排支付这笔金额的合约,智能合约将减少 ...

  3. 3、以太坊智能合约开发(语法开发学习)

    Smart Contracts 智能合约 什么是智能合约? 答: a.是一块运行在区块链网络中的代码 b.一个自我运行的计算机程序,当指定条件满足时自动运行 c.是一个可以通过指定命令来执行操作,比如 ...

  4. 有趣的智能合约蜜罐分析(上)

    智能合约蜜罐概述 研究安全的读者应该都清楚,蜜罐本质上是一种对攻击方进行欺骗的技术,通过布置一些作为诱饵的主机.网络服务或者信息,诱使攻击方对它们实施攻击.蜜罐设计的初衷就是让黑客来入侵系统,并借此收 ...

  5. 论述《区块链智能合约的合同效力认定》去中心化金融的钞能力赛道

    | 没有喧嚣,没有问候的"沉默",请安静听完这段征途故事! 摘要 智能合约是自动执行合同条款的代码协议,其以代码替代传统人为执行合同,本质上是运用代码"编译"传 ...

  6. solidity智能合约[43]-众筹案例

    综合案例:众筹 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505 ...

  7. 【许晓笛】 EOS智能合约案例解析(1)

    详解 EOS 智能合约的 hpp 文件 为了帮助大家熟悉 EOS 智能合约,EOS 官方提供了一个代币(资产)智能合约 Demo -- eosio.token.eosio.token 智能合约目前还不 ...

  8. 【许晓笛】 EOS智能合约案例解析(1) 1

    详解 EOS 智能合约的 hpp 文件 为了帮助大家熟悉 EOS 智能合约,EOS 官方提供了一个代币(资产)智能合约 Demo -- eosio.token.eosio.token 智能合约目前还不 ...

  9. 【许晓笛】EOS智能合约案例解析(1)

    为了帮助大家熟悉 EOS 智能合约,EOS 官方提供了一个代币(资产)智能合约 Demo -- eosio.token.eosio.token 智能合约目前还不是特别完善,个别功能还没有完成.但这个示 ...

最新文章

  1. YSlow简介与使用(转)
  2. windows平台搭建Mongo数据库复制集(类似集群)(三)
  3. 关于Android制作.9.png图片
  4. vant coupon 时间戳如何计算_计软考研双日练 | 如何计算拓扑排序算法的时间复杂度?...
  5. Sharepoint 2010配置form认证方式(SQL账号)
  6. php如何将mysql数据库中的admin字段赋值给session_php实现将Session写入数据库
  7. python语言在命名上是什么敏感的_一文轻松掌握python语言命名规范规则
  8. JS原型链原理(链表)
  9. 一致性哈希(hash)算法
  10. 管理新语:根据工作难度,及时调整负责人员
  11. linux 查看特定多个文件的总量
  12. unity3d利用pano2VR实现全景视图效果
  13. Python---贪心的狗熊
  14. Linux启动阶段Grub损坏修复
  15. 树莓派从零开始快速入门系列汇总
  16. 阿里云建站教程——ECS服务器
  17. Win10连接WiFi显示无internet,安全 却可以正常上网(转)
  18. 游戏核心编程之一 概述
  19. 多多情报通:拼多多店铺不交保证金能卖货吗?有什么影响吗?
  20. 【Python项目】圣诞节快到了,Python基于海龟(turtle)实现的圣诞树效果,是好几个哟 | 附源码

热门文章

  1. 低技术、不联网、简单用——防疫“两码”横向五合一拼图电脑端解决方案
  2. Linux:命令行使用技巧
  3. Android上的linux终端模拟器
  4. 支持多个git服务器的ssh配置方法及ssh config配置解释以及ssh-agent简单介绍
  5. 32位计算机精度,16bit、24bit和32bit有什么区别?
  6. 高精度24bit 模数转化 AD7767芯片 使用总结
  7. 全球与中国电气控制柜市场深度研究分析报告
  8. 这个为什么显示不出来?
  9. 锤子科技官方首页的特效
  10. JAVASE----基础(七)