ContractRegistryAdmin
Inherits: Policy, RolesConsumer
This policy is used to register and deregister contracts in the RGSTY module.
*This contract utilises the following roles:
contract_registry_admin
: Can register and deregister contracts This policy provides permissioned access to the state-changing functions on the RGSTY module. The view functions can be called directly on the module.*
State Variables
RGSTY
The RGSTY module
The value is set when the policy is activated
RGSTYv1 internal RGSTY;
CONTRACT_REGISTRY_ADMIN_ROLE
The role for the contract registry admin
bytes32 public constant CONTRACT_REGISTRY_ADMIN_ROLE = "contract_registry_admin";
Functions
constructor
constructor(address kernel_) Policy(Kernel(kernel_));
configureDependencies
Define module dependencies for this policy.
function configureDependencies() external override returns (Keycode[] memory dependencies);
Returns
Name | Type | Description |
---|---|---|
dependencies | Keycode[] | - Keycode array of module dependencies. |
requestPermissions
Function called by kernel to set module function permissions.
function requestPermissions() external pure override returns (Permissions[] memory permissions);
Returns
Name | Type | Description |
---|---|---|
permissions | Permissions[] | requests - Array of keycodes and function selectors for requested permissions. |
VERSION
The version of the policy
function VERSION() external pure returns (uint8);
onlyPolicyActive
Modifier to check that the contract is activated as a policy
modifier onlyPolicyActive();
registerImmutableContract
Register an immutable contract in the contract registry
*This function will revert if:
- This contract is not activated as a policy
- The caller does not have the required role
- The RGSTY module reverts*
function registerImmutableContract(bytes5 name_, address contractAddress_)
external
onlyPolicyActive
onlyRole(CONTRACT_REGISTRY_ADMIN_ROLE);
Parameters
Name | Type | Description |
---|---|---|
name_ | bytes5 | The name of the contract |
contractAddress_ | address | The address of the contract |
registerContract
Register a contract in the contract registry
*This function will revert if:
- This contract is not activated as a policy
- The caller does not have the required role
- The RGSTY module reverts*
function registerContract(bytes5 name_, address contractAddress_)
external
onlyPolicyActive
onlyRole(CONTRACT_REGISTRY_ADMIN_ROLE);
Parameters
Name | Type | Description |
---|---|---|
name_ | bytes5 | The name of the contract |
contractAddress_ | address | The address of the contract |
updateContract
Update a contract in the contract registry
*This function will revert if:
- This contract is not activated as a policy
- The caller does not have the required role
- The RGSTY module reverts*
function updateContract(bytes5 name_, address contractAddress_)
external
onlyPolicyActive
onlyRole(CONTRACT_REGISTRY_ADMIN_ROLE);
Parameters
Name | Type | Description |
---|---|---|
name_ | bytes5 | The name of the contract |
contractAddress_ | address | The address of the contract |
deregisterContract
Deregister a contract in the contract registry
*This function will revert if:
- This contract is not activated as a policy
- The caller does not have the required role
- The RGSTY module reverts*
function deregisterContract(bytes5 name_) external onlyPolicyActive onlyRole(CONTRACT_REGISTRY_ADMIN_ROLE);
Parameters
Name | Type | Description |
---|---|---|
name_ | bytes5 | The name of the contract |
Errors
Params_InvalidAddress
Thrown when the address is invalid
error Params_InvalidAddress();
OnlyPolicyActive
Thrown when the contract is not activated as a policy
error OnlyPolicyActive();