TeamControlled
Inherits: Initializable, ContextUpgradeable, ITeamControlled
Author: Daniel Yamagata & Jerry Qi & Naveen Ailawadi
A base contract whose inheritors can enforce ownership-like access control. This access control is non-transferrable and cannot be renounced.
State Variables
TeamControlledStorageLocation
bytes32 private constant TeamControlledStorageLocation =
0xb816793abbf480753098fb767c6f1dcec3044cd562367c4739d88482505d6d00;Functions
_getTeamControlledStorage
function _getTeamControlledStorage() internal pure returns (TeamControlledStorage storage $);onlyTeam
Reverts if the caller is not the 'team'
modifier onlyTeam();onlyTeamOrAncestor
Reverts if the caller is not the 'team' or its ancestor
modifier onlyTeamOrAncestor();__TeamControlled_init
Sets the '_team' variable and validate that it supports the ITeam interface
function __TeamControlled_init(address initTeam) internal virtual onlyInitializing;team
Returns the address of the team, which act similar to an 'owner' of the contract
function team() public view virtual returns (address);_isCallerTeam
function _isCallerTeam() internal view returns (bool);_validateCallerIsTeam
Reverts if the caller is not the 'team'
function _validateCallerIsTeam() internal view;_validateCallerIsTeamOrAncestor
Reverts if the caller is not the 'team' or an ancestor of the 'team'
function _validateCallerIsTeamOrAncestor() internal view;Structs
TeamControlledStorage
struct TeamControlledStorage {
address _team;
}Last updated
