pragma solidity ^0.4.0;
contract demo {
struct funder {
address funderAddress;
uint Tomoney;
}
struct needer {
address Neederaddress;
uint goal;
uint amount;
uint funderAccount;
mapping(uint => funder) map;
}
uint neederAccount;
mapping(uint => needer) needmap;
function NewNeeder(address _Neederaddress, uint _goal) {
neederAccount++;
needmap[neederAccount] = needer(_Neederaddress, _goal, 0, 0);
}
function contribute(address _address, uint _neederAmount) payable {
needer storage _needer = needmap[_neederAmount];
_needer.amount += msg.value;
_needer.funderAccount++;
_needer.map[_needer.funderAccount] = funder(_address, msg.value);
}
function IScomplete(uint _neederAmount) {
needer storage _needer = needmap[_neederAmount];
if (_needer.amount > _needer.goal) {
_needer.Neederaddress.transfer(_needer.amount);
}
}
}