Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- pragma solidity ^0.4.2;
- contract DonationContract
- {
- address owner;
- struct Applicant
- {
- address Org;
- string Name;
- string OrgType;
- string Number;
- string Email;
- uint256 Wallet;
- uint256 DonationFunds;
- bool approved;
- }
- constructor() public
- {
- owner = msg.sender;
- facilitators[msg.sender] = true;
- }
- mapping (address => Applicant) public applicants;
- mapping(address => bool) facilitators;
- modifier Owner()
- {
- require(msg.sender == owner);
- _;
- }
- modifier OnlyFacilitator()
- {
- require(facilitators[msg.sender] == true);
- _;
- }
- modifier Approved(address Org)
- {
- require(applicants[Org].approved == true);
- _;
- }
- function approve(address Org) OnlyFacilitator public
- {
- applicants[Org].approved = true;
- }
- function Donate(uint256 amount, address Org) Approved(Org) public
- {
- if(Org==0)
- {
- //Split donation amount amongst all applicants donationfunds
- }
- else
- applicants[Org].DonationFunds += amount;
- if(applicants[Org].DonationFunds >= 10000)
- {
- applicants[Org].DonationFunds -=10000;
- applicants[Org].Wallet += 10000;
- }
- }
- function addFacilitator(address _addr) Owner public
- {
- facilitators[_addr] = true;
- }
- }
Add Comment
Please, Sign In to add comment