CrowdFund.sol
pragma solidity^0.4.25;
contract CrowdFund{
uint256 neederAmount=0;
mapping(uint256 => Needer) neederMap;
struct Funder{
address funderAddress;
uint256 toMoney;
}
struct Needer{
address neederAddress;
uint256 goal;
uint256 amount;
uint256 funderAccount;
mapping(uint256 => Funder) amountOrigin;
}
function newNeeder(address _neederAddress,uint256 _goal) public{
neederMap[neederAmount] =Needer(_neederAddress,_goal,0,0);
neederAmount++;
}
function contribute(address _funderAddress,uint _neederAmount)public payable{
Needer storage _needer = neederMap[_neederAmount];
_needer.amount +=msg.value;
_needer.funderAccount++;
_needer.amountOrigin[_needer.funderAccount] = Funder(_funderAddress,msg.value);
}
function isConpelete(uint256 _neederAmount) public{
Needer storage _needer = neederMap[_neederAmount];
if(_needer.amount >= _needer.goal){
_needer.neederAddress.transfer(_needer.amount);
}
}
function print(uint256 neederAmount) public view returns(uint256,uint256,uint256){
return(neederMap[neederAmount].goal,neederMap[neederAmount].amount,neederMap[neederAmount].funderAccount);
}
}