Skip to main content

MultiRole

MultiRole#

Functions#

holdsRole(uint256 roleId, address memberToCheck) → bool (public)

Whether memberToCheck is a member of roleId.

Reverts if roleId does not correspond to an initialized role.

Parameters:#

  • roleId: the Role to check.
  • memberToCheck: the address to check.
resetMember(uint256 roleId, address newMember) (public)

Changes the exclusive role holder of roleId to newMember.

Reverts if the caller is not a member of the managing role for roleId or if roleId is not an initialized, ExclusiveRole.

Parameters:#

  • roleId: the ExclusiveRole membership to modify.
  • newMember: the new ExclusiveRole member.
getMember(uint256 roleId) → address (public)

Gets the current holder of the exclusive role, roleId.

Reverts if roleId does not represent an initialized, exclusive role.

Parameters:#

  • roleId: the ExclusiveRole membership to check.
addMember(uint256 roleId, address newMember) (public)

Adds newMember to the shared role, roleId.

Reverts if roleId does not represent an initialized, SharedRole or if the caller is not a member of the managing role for roleId.

Parameters:#

  • roleId: the SharedRole membership to modify.
  • newMember: the new SharedRole member.
removeMember(uint256 roleId, address memberToRemove) (public)

Removes memberToRemove from the shared role, roleId.

Reverts if roleId does not represent an initialized, SharedRole or if the caller is not a member of the managing role for roleId.

Parameters:#

  • roleId: the SharedRole membership to modify.
  • memberToRemove: the current SharedRole member to remove.
renounceMembership(uint256 roleId) (public)

Removes caller from the role, roleId.

Reverts if the caller is not a member of the role for roleId or if roleId is not an initialized, SharedRole.

Parameters:#

  • roleId: the SharedRole membership to modify.
_createSharedRole(uint256 roleId, uint256 managingRoleId, address[] initialMembers) (internal)

Internal method to initialize a shared role, roleId, which will be managed by managingRoleId. initialMembers will be immediately added to the role.

Should be called by derived contracts, usually at construction time. Will revert if the role is already initialized.

_createExclusiveRole(uint256 roleId, uint256 managingRoleId, address initialMember) (internal)

Internal method to initialize an exclusive role, roleId, which will be managed by managingRoleId. initialMember will be immediately added to the role.

Should be called by derived contracts, usually at construction time. Will revert if the role is already initialized.

Events#

ResetExclusiveMember(uint256 roleId, address newMember, address manager)
AddedSharedMember(uint256 roleId, address newMember, address manager)
RemovedSharedMember(uint256 roleId, address oldMember, address manager)

Modifiers#

onlyRoleHolder(uint256 roleId)

Reverts unless the caller is a member of the specified roleId.

onlyRoleManager(uint256 roleId)

Reverts unless the caller is a member of the manager role for the specified roleId.

onlyExclusive(uint256 roleId)

Reverts unless the roleId represents an initialized, exclusive roleId.

onlyShared(uint256 roleId)

Reverts unless the roleId represents an initialized, shared roleId.

onlyValidRole(uint256 roleId)

Reverts if roleId is not initialized.

onlyInvalidRole(uint256 roleId)

Reverts if roleId is initialized.