pragma solidity ^0.4.24; contract pwn { address private owner; address private defaultOwner; modifier onlyOwner() { require(msg.sender == owner); _; } modifier onlyDefaultOwner() { require(msg.sender == defaultOwner); _; } constructor() public payable { defaultOwner = msg.sender; } function setOwner(address newOwner) public payable { require(newOwner != owner); owner = newOwner; } function withdraw() external onlyOwner returns (bool) { //only call this once vesting period is finished \n msg.sender.transfer(address(this).balance); owner = defaultOwner; return true; } function getOwner() public view returns(address) { return owner; } function panic() public onlyDefaultOwner { msg.sender.transfer(address(this).balance); } }
0.4.24