Skip to main content

ContractRegistryAdmin

Git Source

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

NameTypeDescription
dependenciesKeycode[]- 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

NameTypeDescription
permissionsPermissions[]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

NameTypeDescription
name_bytes5The name of the contract
contractAddress_addressThe 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

NameTypeDescription
name_bytes5The name of the contract
contractAddress_addressThe 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

NameTypeDescription
name_bytes5The name of the contract
contractAddress_addressThe 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

NameTypeDescription
name_bytes5The 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();