pragma solidity ^0.4.19;
contract Fund{
//定义出资人
struct Funder{
address addr; //出资人地址
uint amout; //出资人金额
}
//定义受益人
struct Gainer{
address gain; //受益人地址
uint goal; //众筹目标
uint numFunder; //出资人数量
uint sum; //受赠总额
mapping(uint => Funder) Funders; //出资人映射 ID -- 出资人
}
uint Gainernum; //受益人数量
mapping(uint => Gainer) Gainers; //受益人映射 ID-- 受益人
//新增受益人
function newGainer(address gain,uint goal) public returns (uint ID){
ID = Gainernum++; //增加受益人ID
Gainers[ID] = Gainer(gain,goal,0,0); //初始化受益人
}
//定义捐赠函数
function Contribute(uint ID) public payable{
Gainer storage g = Gainers[ID]; //实例化受益人
g.Funders[g.numFunder++] = Funder({addr:msg.sender,amout:msg.value}); //实例化出资人
g.sum += msg.value; //受赠钱增加
// g.ga
solidity简单众筹合约
最新推荐文章于 2024-07-14 13:23:23 发布