ethereum(以太坊)(十二)--应用(一)__集资(构造函数/映射)
- pragma solidity ^0.4.4;
- contract funder{
- //0xca35b7d915458ef540ade6068dfe2f44e8fa733c
- //0x14723a09acff6d2a60dcdf7aa4aff308fddc160c :10
- //0x583031d1113ad414f02576bd6afabfb302140225 :20
- struct Funder{
- address addr;
- uint amount;
- }
- struct Campaign{
- address beneficiary; //受益人
- uint fundingGoal; //集资目标
- uint numFunders; //出资人数
- uint mount; //已集资数
- mapping(uint => Funder) Funders; //按照索引存储出资人信息
- }
- uint numCampaigns;
- mapping(uint => Campaign) public Campaigns; //按照索引存储每个受益人的状态
- //向指定受益人出资一定数量的钱
- //function newCampaign(address beneficiary,uint goal) public returns(uint campaignID){
- //function newCampaign(address beneficiary,uint goal) public{ //DeclarationError: Undeclared identifier__campaignID
- function newCampaign(address beneficiary,uint goal) public{
- //var campaignID = numCampaigns++;
- //Campaigns[campaignID] = Campaign(beneficiary,goal,0,0);
- Campaigns[numCampaigns] = Campaign(beneficiary,goal,0,0);
- numCampaigns ++;
- }
- function contribute(uint campaignID) public payable{
- Campaign storage c = Campaigns[campaignID]; //每个受益人的状态
- c.Funders[c.numFunders++] = Funder({addr:msg.sender,amount:msg.value});
- //Funder({addr:msg.sender,amount:msg.value}) 当前转账人的地址,和转账金额
- //c.numFunders++ 统计向当前受益人转账的人数
- // 0 => 转账地址
- c.mount += msg.value; //当前受益人的总受益
- c.beneficiary.transfer(msg.value);//向受益人的地址转入ethtereum
- }
- function checkGoalReached(uint campaignID) public constant returns(bool reached){
- Campaign storage c = Campaigns[campaignID];
- if(c.mount < c.fundingGoal){
- return false;
- }
- return true;
- }
- }
- 遇到的问题:
- 1.受益人可以相同
2.struct+mapping:根据索引存储大量结构体
ethereum(以太坊)(十二)--应用(一)__集资(构造函数/映射)的更多相关文章
- ethereum(以太坊)(十二)--应用(二)__投票(基础总和)
编写应用合约之前,先弄清它的逻辑,有助于我们更好的部署合约 pragma solidity ^0.4.21; pragma experimental ABIEncoderV2; contract vo ...
- ethereum(以太坊)(十四)--Delete
pragma solidity ^0.4.10; contract Delete{ /* delete可用于任何变量(除mapping),将其设置成默认值 bytes/string:删除所有元素,其长 ...
- ethereum(以太坊)(十)--函数修饰符
pragma solidity ^0.4.0; contract modifierTest{ uint public v1; uint constant v2 =10; //uint constant ...
- 以太坊开发(二)使用Ganache CLI在私有链上搭建智能合约
以太坊开发(二)使用Ganache CLI在私有链上搭建智能合约 在上一篇文章中,我们使用Truffle自带的客户端Truffle Develop,在私有链上搭建并运行了官方提供的WebPack智能合 ...
- ethereum(以太坊)(一)
从这周开始,开始学习以太坊开发--solidity,开始决定往区块链方向发展,毕竟区块链技术应用广泛.一开始接触solidity开发语言不太习惯,毕竟一直在学习python语法,有很多都不能接受.有难 ...
- ethereum(以太坊)(十一)--字节数组(二)
pragma solidity ^0.4.0; contract test { uint [5] T =[1,2,3,4,5] ;//固定长度的数组:可修改数组内值大小,不支持push,不可更改长度 ...
- ethereum(以太坊)(基础)--容易忽略的坑(二)
pragma solidity ^0.4.0; contract EMath{ string public _a="lin"; function f() public{ modif ...
- ethereum(以太坊)(二)--合约中属性和行为的访问权限
pragma solidity ^0.4.0; contract Test{ /* 属性的访问权限 priveta public internal defualt internal interlnal ...
- 以太坊(二)安装Solidity编译器
官方地址:https://solidity.readthedocs.io/en/develop/installing-solidity.html 推荐使用 remix 快速学习solidity ...
随机推荐
- 斗鱼扩展--DouyuRoom使用说明(十四)
1.从 https://pan.baidu.com/s/1yBfZFtcakbDxmyas0VCpRw 下载 DouyuRoom.zip 然后解压到一个目录,我是放在C盘根目录下的,你们随意.然后解压 ...
- CefSharp High DPI问题的解决
使用CefSharp控件,在部分高分辨率的电脑中(显示缩放比例非100%,而是120%或者125%等)会出现以下一些情况: 显示的页面中出现了黑边,且按钮定位也偏了,比如点击[图层]按钮,需要点击上面 ...
- java 模拟实现消费者和生产者问题
题目要求 用java代码模拟实现:一个人不断往箱子里放苹果,另一个人不断从箱子里取苹果,箱子只能放5个苹果,苹果数量无限.要求不使用java.util.concurrent包中的类. 思路 这道题主要 ...
- hibernate课程 初探一对多映射2-6 测试-添加和查询学生信息
package com.ddwei.entity; import java.util.Set; import org.hibernate.Session; import org.hibernate.T ...
- 数据库navicat中limit函数的用法
从t_product表中获取pic_small字段的前十条记录 示例:select pic_small from t_product limit 0,10;
- Vue.js - Day1
什么是Vue.js Vue.js 是目前最火的一个前端框架,React是最流行的一个前端框架(React除了开发网站,还可以开发手机App, Vue语法也是可以用于进行手机App开发的,需要借助于We ...
- 什么叫erp系统
一般来说,erp系统是一个以会计(此处的会计是指管理会计)为核心的信息系统,用来识别和规划企业资源, 从而获取客户订单, 完成加工和交付,最后得到客户付款,最终获得收入和利润. 实际上, erp 系统 ...
- 《ArcGIS Runtime SDK for Android开发笔记》——(6)、基于Android Studio的ArcGIS Android工程结构解析
1.前言 Android Studio 是第一个Google官方的 Android 开发环境.其他工具,例如 Eclipse,在 Android Studio 发布之前已经有了大规模的使用.为了帮助开 ...
- Java问题定位之Java线程堆栈分析
采用Java开发的大型应用系统越来越大,越来越复杂,很多系统集成在一起,整个系统看起来像个黑盒子.系统运行遭遇问题(系统停止响应,运行越来越慢,或者性能低下,甚至系统宕掉),如何速度命中问题的根本原因 ...
- 仿照everything写的一个超级速查 原创
http://files.cnblogs.com/files/jacd/%E8%B6%85%E9%80%9F%E6%9F%A5%E6%96%87%E4%BB%B6.zip 速度奇快无比,体积奇小无比, ...