Files
lmsr-amm/src/OwnableInternal.sol
2025-10-19 13:35:33 -04:00

42 lines
1.1 KiB
Solidity

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)
pragma solidity ^0.8.20;
import {Context} from "../lib/openzeppelin-contracts/contracts/utils/Context.sol";
import {IOwnable} from "./IOwnable.sol";
/**
* @dev OpenZeppelin's Ownable contract, split into internal and external parts.
*/
abstract contract OwnableInternal is Context {
address internal _owner;
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
_checkOwner();
_;
}
/**
* @dev Throws if the sender is not the owner.
*/
function _checkOwner() internal view virtual {
if (_owner != _msgSender()) {
revert IOwnable.OwnableUnauthorizedAccount(_msgSender());
}
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Internal function without access restriction.
*/
function _transferOwnership(address newOwner) internal virtual {
address oldOwner = _owner;
_owner = newOwner;
emit IOwnable.OwnershipTransferred(oldOwner, newOwner);
}
}