perf: smart Contract Performance Improvement ⚡
This commit is contained in:
49
contracts/lib/auth/Owned.sol
Normal file
49
contracts/lib/auth/Owned.sol
Normal file
@@ -0,0 +1,49 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
pragma solidity >=0.8.4;
|
||||
|
||||
/// @notice Simple single owner authorization mixin.
|
||||
/// @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/auth/Owned.sol)
|
||||
abstract contract Owned {
|
||||
/*//////////////////////////////////////////////////////////////
|
||||
EVENTS
|
||||
//////////////////////////////////////////////////////////////*/
|
||||
|
||||
event OwnerUpdated(
|
||||
address indexed user,
|
||||
address indexed newOwner
|
||||
);
|
||||
|
||||
/*//////////////////////////////////////////////////////////////
|
||||
OWNERSHIP STORAGE
|
||||
//////////////////////////////////////////////////////////////*/
|
||||
|
||||
address public owner;
|
||||
|
||||
modifier onlyOwner() virtual {
|
||||
require(msg.sender == owner, "UNAUTHORIZED");
|
||||
|
||||
_;
|
||||
}
|
||||
|
||||
/*//////////////////////////////////////////////////////////////
|
||||
CONSTRUCTOR
|
||||
//////////////////////////////////////////////////////////////*/
|
||||
|
||||
constructor(address _owner) {
|
||||
owner = _owner;
|
||||
|
||||
emit OwnerUpdated(address(0), _owner);
|
||||
}
|
||||
|
||||
/*//////////////////////////////////////////////////////////////
|
||||
OWNERSHIP LOGIC
|
||||
//////////////////////////////////////////////////////////////*/
|
||||
|
||||
function setOwner(
|
||||
address newOwner
|
||||
) public virtual onlyOwner {
|
||||
owner = newOwner;
|
||||
|
||||
emit OwnerUpdated(msg.sender, newOwner);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user