// SPDX-License-Identifier: Proprietary pragma solidity ^0.7.2; /** Manager can call administrative functions on the contract and is a fee collector. */ contract Managed { address public manager; event ManagershipTransferred(address indexed from, address indexed to); modifier onlyManager { require(manager == msg.sender, "Not manager"); _; } function setManager(address newManager) public onlyManager { require(newManager != address(0), "0 manager disallowed"); emit ManagershipTransferred(manager, newManager); manager = newManager; } }