Skip to main content

Role model

Roles​

ACL contract keeps global roles for whole Gearbox Protocol. There are 3 basic roles in the system:

RoleResponsibility
ConfiguratorRole which has the most powerful roles for configuring system parameters
PausableAdminRole can pause contracts
UnPausableAdminRole can unpause contracts

Configurator role​

Configurator is onwer of ACL contract. This code snippet shows how to get the current adddress:

solidity
address configurator = ACL(addressProvider.getACL()).owner();
solidity
address configurator = ACL(addressProvider.getACL()).owner();

In current deployment, Configurator is managed by Technical Multisig, in the future, Gearbox will use Compound Bravo Governance.

How to test your contracts​

In many cases, developer needs to change system parameters:

solidity
address configurator = ACL(addressProvider.getACL()).owner();
evm.prank(configurator);
solidity
address configurator = ACL(addressProvider.getACL()).owner();
evm.prank(configurator);