From aa6a44b9e9150d8974a160f10149c7761be7a6b9 Mon Sep 17 00:00:00 2001 From: bahadylbekov <33404905+bahadylbekov@users.noreply.github.com> Date: Tue, 4 Aug 2020 20:24:46 +0200 Subject: [PATCH] fix: add Ownable.sol smart contract --- .gitignore | 1 - eth-contracts/contracts/vendor/Ownable.sol | 66 ++++++++++++++++++++++ 2 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 eth-contracts/contracts/vendor/Ownable.sol diff --git a/.gitignore b/.gitignore index 9109806..1725504 100644 --- a/.gitignore +++ b/.gitignore @@ -12,7 +12,6 @@ *.out # Dependency directories (remove the comment below to include it) -vendor/ .vscode/ # Environment files diff --git a/eth-contracts/contracts/vendor/Ownable.sol b/eth-contracts/contracts/vendor/Ownable.sol new file mode 100644 index 0000000..4daaa18 --- /dev/null +++ b/eth-contracts/contracts/vendor/Ownable.sol @@ -0,0 +1,66 @@ +//SPDX-License-Identifier: MIT +pragma solidity >= 0.5.0 < 0.7.0; + +/** + * @dev Contract module which provides a basic access control mechanism, where + * there is an account (an owner) that can be granted exclusive access to + * specific functions. + * + * This module is used through inheritance. It will make available the modifier + * `onlyOwner`, which can be aplied to your functions to restrict their use to + * the owner. + * + * This contract has been modified to remove the revokeOwnership function + */ +contract Ownable { + address private _owner; + + event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); + + /** + * @dev Initializes the contract setting the deployer as the initial owner. + */ + constructor () internal { + _owner = msg.sender; + emit OwnershipTransferred(address(0), _owner); + } + + /** + * @dev Returns the address of the current owner. + */ + function owner() public view returns (address) { + return _owner; + } + + /** + * @dev Throws if called by any account other than the owner. + */ + modifier onlyOwner() { + require(isOwner(), "Ownable: caller is not the owner"); + _; + } + + /** + * @dev Returns true if the caller is the current owner. + */ + function isOwner() public view returns (bool) { + return msg.sender == _owner; + } + + /** + * @dev Transfers ownership of the contract to a new account (`newOwner`). + * Can only be called by the current owner. + */ + function transferOwnership(address newOwner) public onlyOwner { + _transferOwnership(newOwner); + } + + /** + * @dev Transfers ownership of the contract to a new account (`newOwner`). + */ + function _transferOwnership(address newOwner) internal { + require(newOwner != address(0), "Ownable: new owner is the zero address"); + emit OwnershipTransferred(_owner, newOwner); + _owner = newOwner; + } +} \ No newline at end of file