Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- pragma solidity ^0.4.7;
- contract Ownable {
- address public owner;
- constructor() public {
- owner = msg.sender;
- }
- modifier onlyOwner() {
- require(msg.sender == owner);
- _;
- }
- contract Simple_DAICO is Ownable {
- address receiver;
- uint block_allowance;
- uint available_to_withdraw = 0;
- uint last_update_block;
- modifier onlyReceiver() {
- require(msg.sender == receiver);
- _;
- }
- constructor(address receiver_addr, uint starting_allowance) payable {
- super();
- block_allowance = starting_allowance;
- last_update_block = block.number;
- receiver = receiver_addr;
- }
- function setAllowance(uint new_allowance) public onlyOwner {
- available_to_withdraw += block_allowance * (block.number - last_update_block);
- block_allowance = new_allowance;
- last_update_block = block.number;
- }
- function destroyContract() public onlyOwner {
- suicide(owner);
- }
- function withdraw() public onlyReceiver {
- available_to_withdraw += block_allowance * (block.number - last_update_block);
- receiver.transfer(available_to_withdraw);
- available_to_withdraw = 0;
- last_update_block = block.number;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement