123456789101112131415161718192021222324252627282930313233343536373839 |
- pragma solidity ^0.4.24;
- 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() {
- require(msg.sender == pendingOwner);
- _;
- }
- /**
- * @dev Allows the current owner to set the pendingOwner address.
- * @param newOwner The address to transfer ownership to.
- */
- function transferOwnership(address newOwner) onlyOwner public {
- pendingOwner = newOwner;
- }
- /**
- * @dev Allows the pendingOwner address to finalize the transfer.
- */
- function claimOwnership() onlyPendingOwner public {
- emit OwnershipTransferred(owner, pendingOwner);
- owner = pendingOwner;
- pendingOwner = address(0);
- }
- }
|