pragma solidity >=0.5.0 <0.7.0; import "../common/MasterCopy.sol"; import "./ModuleManager.sol"; /// @title Module - Base class for modules. /// @author Stefan George - /// @author Richard Meissner - contract Module is MasterCopy { ModuleManager public manager; modifier authorized() { require(msg.sender == address(manager), "Method can only be called from manager"); _; } function setManager() internal { // manager can only be 0 at initalization of contract. // Check ensures that setup function can only be called once. require(address(manager) == address(0), "Manager has already been set"); manager = ModuleManager(msg.sender); } }