August 2019
Intermediate to advanced
486 pages
13h 52m
English
Roles.sol is a generic library that stores the access rights that are provided to an address. All the roles-based contracts defined in OpenZeppelin use this library. It also exposes some internal functions that can only be called within the contract. Using this generic library, we can create and define our own roles for different kinds of access controls. In this section, we will look into the different roles that OpenZeppelin provides, such as PauserRole.sol and MinterRole.sol, which also inherit from Roles.sol.
The OpenZeppelin contract present at Chapter09/openzeppelin-solidity/contracts/access/Roles.sol is defined as follows:
library Roles { struct Role { mapping (address => bool) bearer; } function add ...