1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- pragma solidity ^0.4.24;
- /**
- * @title Ownable
- * @dev The Ownable contract has an owner address, and provides basic authorization control
- * functions, this simplifies the implementation of "user permissions".
- */
- contract Ownable {
- address private owner_;
- event OwnershipRenounced(address indexed previousOwner);
- event OwnershipTransferred(
- address indexed previousOwner,
- address indexed newOwner
- );
- /**
- * @dev The Ownable constructor sets the original `owner` of the contract to the sender
- * account.
- */
- constructor() public {
- owner_ = msg.sender;
- }
- /**
- * @return the address of the owner.
- */
- function owner() public view returns(address) {
- return owner_;
- }
- /**
- * @dev Throws if called by any account other than the owner.
- */
- modifier onlyOwner() {
- require(msg.sender == owner_);
- _;
- }
- /**
- * @dev Allows the current owner to relinquish control of the contract.
- * @notice Renouncing to ownership will leave the contract without an owner.
- * It will not be possible to call the functions with the `onlyOwner`
- * modifier anymore.
- */
- function renounceOwnership() public onlyOwner {
- emit OwnershipRenounced(owner_);
- owner_ = address(0);
- }
- /**
- * @dev Allows the current owner to transfer control of the contract to a newOwner.
- * @param _newOwner The address to transfer ownership to.
- */
- function transferOwnership(address _newOwner) public onlyOwner {
- _transferOwnership(_newOwner);
- }
- /**
- * @dev Transfers control of the contract to a newOwner.
- * @param _newOwner The address to transfer ownership to.
- */
- function _transferOwnership(address _newOwner) internal {
- require(_newOwner != address(0));
- emit OwnershipTransferred(owner_, _newOwner);
- owner_ = _newOwner;
- }
- }
|