pragma solidity ^0.4.0;
contract zhongchou{
struct needer{
address neederAdd;
uint goalMoney;
uint existingMoney;
uint donorNum;//捐赠者人数
mapping(uint=>donor) map;
}
struct donor{
address donorAdd;
uint dmoney;
}
uint neederNum;
mapping(uint => needer) needmap;
function NewNeeder(address _neederAdd,uint _goalMoney) public {
neederNum++;
needmap[neederNum] = needer(_neederAdd,_goalMoney,0,0);
}
function contribute(address _donorAdd,uint _neederNum)public payable{
needer storage _needer = needmap[_neederNum];
_needer.existingMoney += msg.value;
_needer.donorNum++;
_needer.map[neederNum] = donor(_donorAdd,msg.value);
}
function isCompelete(uint _neederNum) public payable{
needer storage _needer = needmap[_neederNum];
if(_needer.existingMoney >= _needer.goalMoney){
_needer. neederAdd.transfer(_needer.existingMoney);
}
}
function test() view public returns(uint,uint,uint){
return (needmap[1].goalMoney,needmap[1].existingMoney,needmap[1].donorNum);
}
}
1.受益人地址:0xAb8483F64d9C6d1EcF9b849Ae677dD3315835cb2 募集100点击transact可以看到余额4514
2.捐款方地址:0x78731D3Ca6b7E34aC0F824c42a7cC18A495cabaB 捐500
点击transact可以看到需要100,筹集到500,一共一名捐款者。
3.看是否完成,并转账到受益人查看受益人余额5014