diff options
Diffstat (limited to 'test/compilationTests/zeppelin/ownership/Claimable.sol')
-rw-r--r-- | test/compilationTests/zeppelin/ownership/Claimable.sol | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/test/compilationTests/zeppelin/ownership/Claimable.sol b/test/compilationTests/zeppelin/ownership/Claimable.sol new file mode 100644 index 00000000..d063502d --- /dev/null +++ b/test/compilationTests/zeppelin/ownership/Claimable.sol @@ -0,0 +1,40 @@ +pragma solidity ^0.4.11; + + +import './Ownable.sol'; + + +/** + * @title Claimable + * @dev Extension for the Ownable contract, where the ownership needs to be claimed. + * This allows the new owner to accept the transfer. + */ +contract Claimable is Ownable { + address public pendingOwner; + + /** + * @dev Modifier throws if called by any account other than the pendingOwner. + */ + modifier onlyPendingOwner() { + if (msg.sender != pendingOwner) { + throw; + } + _; + } + + /** + * @dev Allows the current owner to set the pendingOwner address. + * @param newOwner The address to transfer ownership to. + */ + function transferOwnership(address newOwner) onlyOwner { + pendingOwner = newOwner; + } + + /** + * @dev Allows the pendingOwner address to finalize the transfer. + */ + function claimOwnership() onlyPendingOwner { + owner = pendingOwner; + pendingOwner = 0x0; + } +} |