RGSTYv1
Inherits: Module
Interface for a module that can track the addresses of contracts
State Variables
_immutableContractNames
Stores the names of the registered immutable contracts
bytes5[] internal _immutableContractNames;
_contractNames
Stores the names of the registered contracts
bytes5[] internal _contractNames;
_immutableContracts
Mapping to store the immutable address of a contract
The address of an immutable contract can be retrieved by getImmutableContract()
, and the names of all immutable contracts can be retrieved by getImmutableContractNames()
.
mapping(bytes5 => address) internal _immutableContracts;
_contracts
Mapping to store the address of a contract
The address of a registered contract can be retrieved by getContract()
, and the names of all registered contracts can be retrieved by getContractNames()
.
mapping(bytes5 => address) internal _contracts;
Functions
registerImmutableContract
Register an immutable contract name and address
This function should be permissioned to prevent arbitrary contracts from being registered.
function registerImmutableContract(bytes5 name_, address contractAddress_) external virtual;
Parameters
Name | Type | Description |
---|---|---|
name_ | bytes5 | The name of the contract |
contractAddress_ | address | The address of the contract |
registerContract
Register a new contract name and address
This function should be permissioned to prevent arbitrary contracts from being registered.
function registerContract(bytes5 name_, address contractAddress_) external virtual;
Parameters
Name | Type | Description |
---|---|---|
name_ | bytes5 | The name of the contract |
contractAddress_ | address | The address of the contract |
updateContract
Update the address of an existing contract name
This function should be permissioned to prevent arbitrary contracts from being updated.
function updateContract(bytes5 name_, address contractAddress_) external virtual;
Parameters
Name | Type | Description |
---|---|---|
name_ | bytes5 | The name of the contract |
contractAddress_ | address | The address of the contract |
deregisterContract
Deregister an existing contract name
This function should be permissioned to prevent arbitrary contracts from being deregistered.
function deregisterContract(bytes5 name_) external virtual;
Parameters
Name | Type | Description |
---|---|---|
name_ | bytes5 | The name of the contract |
getImmutableContract
Get the address of a registered immutable contract
function getImmutableContract(bytes5 name_) external view virtual returns (address);
Parameters
Name | Type | Description |
---|---|---|
name_ | bytes5 | The name of the contract |
Returns
Name | Type | Description |
---|---|---|
<none> | address | The address of the contract |
getContract
Get the address of a registered mutable contract
function getContract(bytes5 name_) external view virtual returns (address);
Parameters
Name | Type | Description |
---|---|---|
name_ | bytes5 | The name of the contract |
Returns
Name | Type | Description |
---|---|---|
<none> | address | The address of the contract |
getImmutableContractNames
Get the names of all registered immutable contracts
function getImmutableContractNames() external view virtual returns (bytes5[] memory);
Returns
Name | Type | Description |
---|---|---|
<none> | bytes5[] | The names of all registered immutable contracts |
getContractNames
Get the names of all registered mutable contracts
function getContractNames() external view virtual returns (bytes5[] memory);
Returns
Name | Type | Description |
---|---|---|
<none> | bytes5[] | The names of all registered mutable contracts |
Events
ContractRegistered
Emitted when a contract is registered
event ContractRegistered(bytes5 indexed name, address indexed contractAddress, bool isImmutable);
ContractUpdated
Emitted when a contract is updated
event ContractUpdated(bytes5 indexed name, address indexed contractAddress);
ContractDeregistered
Emitted when a contract is deregistered
event ContractDeregistered(bytes5 indexed name);
Errors
Params_InvalidName
The provided name is invalid
error Params_InvalidName();
Params_InvalidAddress
The provided address is invalid
error Params_InvalidAddress();
Params_ContractAlreadyRegistered
The provided contract name is already registered
error Params_ContractAlreadyRegistered();
Params_ContractNotRegistered
The provided contract name is not registered
error Params_ContractNotRegistered();