aboutsummaryrefslogtreecommitdiffstats
path: root/packages/contracts/src/2.0.0/utils/Ownable/Ownable.sol
diff options
context:
space:
mode:
Diffstat (limited to 'packages/contracts/src/2.0.0/utils/Ownable/Ownable.sol')
-rw-r--r--packages/contracts/src/2.0.0/utils/Ownable/Ownable.sol38
1 files changed, 38 insertions, 0 deletions
diff --git a/packages/contracts/src/2.0.0/utils/Ownable/Ownable.sol b/packages/contracts/src/2.0.0/utils/Ownable/Ownable.sol
new file mode 100644
index 000000000..6f5761cc7
--- /dev/null
+++ b/packages/contracts/src/2.0.0/utils/Ownable/Ownable.sol
@@ -0,0 +1,38 @@
+pragma solidity ^0.4.24;
+pragma experimental ABIEncoderV2;
+
+/*
+ * Ownable
+ *
+ * Base contract with an owner.
+ * Provides onlyOwner modifier, which prevents function from running if it is called by anyone other than the owner.
+ */
+
+import "./IOwnable.sol";
+
+contract Ownable is IOwnable {
+ address public owner;
+
+ constructor ()
+ public
+ {
+ owner = msg.sender;
+ }
+
+ modifier onlyOwner() {
+ require(
+ msg.sender == owner,
+ "ONLY_CONTRACT_OWNER"
+ );
+ _;
+ }
+
+ function transferOwnership(address newOwner)
+ public
+ onlyOwner
+ {
+ if (newOwner != address(0)) {
+ owner = newOwner;
+ }
+ }
+}