Skip to content

Instantly share code, notes, and snippets.

@chriseth
Created July 7, 2015 14:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save chriseth/f89ecc1f4a01be0c9a3a to your computer and use it in GitHub Desktop.
Save chriseth/f89ecc1f4a01be0c9a3a to your computer and use it in GitHub Desktop.
Mini-Crowdfunding
contract Crowdfunding {
address recipient; uint goal; uint deadline;
struct Contribution { address contributor; uint amount; }
Contribution[] contributions;
uint contributed;
function Crowdfunding(address _recipient, uint256 _goal, uint256 _deadline) {
recipient = _recipient;
goal = _goal;
deadline = _deadline;
}
function () {
contributions[contributions.length++] = Contribution(msg.sender, msg.value);
contributed += msg.value;
}
modifier afterDeadline() { if (now >= deadline) _ }
function checkGoalReached() afterDeadline {
if (contributed < goal)
for (uint i = 0; i < contributions.length; ++i)
contributions[i].contributor.send(contributions[i].amount);
suicide(recipient);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment