Advertisement
Guest User

Untitled

a guest
Jul 21st, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.29 KB | None | 0 0
  1. pragma solidity ^0.4.7;
  2.  
  3. contract Ownable {
  4. address public owner;
  5.  
  6. constructor() public {
  7. owner = msg.sender;
  8. }
  9.  
  10. modifier onlyOwner() {
  11. require(msg.sender == owner);
  12. _;
  13. }
  14.  
  15. contract Simple_DAICO is Ownable {
  16.  
  17. address receiver;
  18. uint block_allowance;
  19. uint available_to_withdraw = 0;
  20. uint last_update_block;
  21.  
  22. modifier onlyReceiver() {
  23. require(msg.sender == receiver);
  24. _;
  25. }
  26.  
  27. constructor(address receiver_addr, uint starting_allowance) payable {
  28. super();
  29. block_allowance = starting_allowance;
  30. last_update_block = block.number;
  31. receiver = receiver_addr;
  32. }
  33.  
  34. function setAllowance(uint new_allowance) public onlyOwner {
  35. available_to_withdraw += block_allowance * (block.number - last_update_block);
  36. block_allowance = new_allowance;
  37. last_update_block = block.number;
  38. }
  39.  
  40. function destroyContract() public onlyOwner {
  41. suicide(owner);
  42. }
  43.  
  44. function withdraw() public onlyReceiver {
  45. available_to_withdraw += block_allowance * (block.number - last_update_block);
  46. receiver.transfer(available_to_withdraw);
  47. available_to_withdraw = 0;
  48. last_update_block = block.number;
  49. }
  50.  
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement