mirror of
https://github.com/hanzoai/etherplate.git
synced 2026-10-30 18:37:10 +00:00
35 lines
833 B
Solidity
35 lines
833 B
Solidity
pragma solidity ^0.4.23;
|
|
|
|
contract Owned {
|
|
bytes32 private constant ownerPosition = keccak256("org.etherplatetokens.owned.owner");
|
|
|
|
event TransferredOwnership(address previousOwner, address newOwner);
|
|
|
|
modifier onlyOwner() {
|
|
require(msg.sender == getOwner());
|
|
_;
|
|
}
|
|
|
|
function transferOwnership(address _newOwner) onlyOwner external {
|
|
address owner = getOwner();
|
|
require(_newOwner != address(0));
|
|
require(_newOwner != owner);
|
|
setOwner(_newOwner);
|
|
emit TransferredOwnership(owner, _newOwner);
|
|
}
|
|
|
|
function getOwner() internal view returns (address owner) {
|
|
bytes32 position = ownerPosition;
|
|
assembly {
|
|
owner := sload(position)
|
|
}
|
|
}
|
|
|
|
function setOwner(address _owner) internal {
|
|
bytes32 position = ownerPosition;
|
|
assembly {
|
|
sstore(position, _owner)
|
|
}
|
|
}
|
|
}
|