IdentityAccessManagerConfigFacet
Configuration management facet for IdentityAccessManagerFactory diamond
Handles factory settings, tier management, and feature configuration
Functions
configureAccessManagerCreation
Configure access manager creation feature requirements
function configureAccessManagerCreation(uint8 requiredTier, bool requiresSubscription) external restricted;
Parameters
requiredTier
uint8
Minimum tier required to create access managers
requiresSubscription
bool
Whether active subscription is required
configureTemplateAccessManagerCreation
Configure template-based access manager creation
function configureTemplateAccessManagerCreation(uint8 requiredTier, bool requiresSubscription) external restricted;
Parameters
requiredTier
uint8
Minimum tier required to use custom templates
requiresSubscription
bool
Whether active subscription is required
setMaxAccessManagersPerEntity
Set maximum access managers per entity by tier
function setMaxAccessManagersPerEntity(uint8 tier, uint256 maxAccessManagers) external restricted;
Parameters
tier
uint8
User tier
maxAccessManagers
uint256
Maximum number of access managers (0 = unlimited)
setMaxTotalAccessManagers
Set maximum total access managers per tier
function setMaxTotalAccessManagers(uint8 tier, uint256 maxTotal) external restricted;
Parameters
tier
uint8
User tier
maxTotal
uint256
Maximum total access managers (0 = unlimited)
setAccessManagerCreationFee
Set access manager creation fee by tier
function setAccessManagerCreationFee(uint8 tier, uint256 fee) external restricted;
Parameters
tier
uint8
User tier
fee
uint256
Creation fee in wei (0 = free)
setKYCRequirement
Configure KYC requirement for access manager creation
function setKYCRequirement(bool required) external restricted;
Parameters
required
bool
Whether KYC is required
setKYCExemption
Grant KYC exemption to specific entity
function setKYCExemption(address entity, bool exempt) external restricted;
Parameters
entity
address
Entity address
exempt
bool
Whether to exempt from KYC
_getUserTier
Helper to get user tier
function _getUserTier(address user) internal view returns (uint8 tier);
Parameters
user
address
User address
Returns
tier
uint8
User's subscription tier
setEmergencyStop
Emergency stop functionality (placeholder)
function setEmergencyStop(bool stopped) external restricted;
Parameters
stopped
bool
Whether to stop operations
getAccessManagerCreationConfig
Get access manager creation configuration
function getAccessManagerCreationConfig() external view returns (uint8 requiredTier, bool requiresSubscription);
Returns
requiredTier
uint8
Minimum tier required
requiresSubscription
bool
Whether subscription is required
getTemplateCreationConfig
Get template creation configuration
function getTemplateCreationConfig() external view returns (uint8 requiredTier, bool requiresSubscription);
Returns
requiredTier
uint8
Minimum tier required
requiresSubscription
bool
Whether subscription is required
getMaxAccessManagersForEntity
Get maximum access managers for user
function getMaxAccessManagersForEntity(address entity) external view returns (uint256 maxAccessManagers);
Parameters
entity
address
Entity address
Returns
maxAccessManagers
uint256
Maximum allowed access managers
getCreationFeeForEntity
Get creation fee for user
function getCreationFeeForEntity(address entity) external view returns (uint256 fee);
Parameters
entity
address
Entity address
Returns
fee
uint256
Creation fee in wei
isAccessManagerCreationAvailable
Check if access manager creation is available for user
function isAccessManagerCreationAvailable(address entity) external view returns (bool available);
Parameters
entity
address
Entity address
Returns
available
bool
Whether feature is available
isTemplateCreationAvailable
Check if template creation is available for user
function isTemplateCreationAvailable(address entity) external view returns (bool available);
Parameters
entity
address
Entity address
Returns
available
bool
Whether feature is available
isKYCExempt
Check if user is KYC exempt
function isKYCExempt(address entity) external view returns (bool exempt);
Parameters
entity
address
Entity address
Returns
exempt
bool
Whether user is KYC exempt
isKYCRequired
Check if KYC is required globally
function isKYCRequired() external view returns (bool required);
Returns
required
bool
Whether KYC is required
configureAccessManagerSettings
Configure all access manager creation settings at once
function configureAccessManagerSettings(
uint8 basicTier,
uint8 templateTier,
bool requiresSubscription,
uint256[] calldata creationFees,
uint256[] calldata maxPerEntity
) external restricted;
Parameters
basicTier
uint8
Tier required for basic creation
templateTier
uint8
Tier required for template creation
requiresSubscription
bool
Whether subscription is required
creationFees
uint256[]
Array of fees by tier
maxPerEntity
uint256[]
Array of max access managers per entity by tier
_validateTier
Validate tier value
function _validateTier(uint8 tier) internal pure;
Parameters
tier
uint8
Tier to validate
_validateFee
Validate fee value
function _validateFee(uint256 fee) internal pure;
Parameters
fee
uint256
Fee to validate
setIdentityAccessManagerBytecode
Set the bytecode for IdentityAccessManager deployment
function setIdentityAccessManagerBytecode(bytes calldata bytecode) external restricted;
Parameters
bytecode
bytes
The creation bytecode of the IdentityAccessManager contract
getIdentityAccessManagerBytecode
Get the bytecode for IdentityAccessManager deployment
function getIdentityAccessManagerBytecode() external pure returns (bytes memory);
Returns
<none>
bytes
The creation bytecode
restricted
Modifier to check admin permissions
modifier restricted();
Events
AccessManagerCreationConfigUpdated
event AccessManagerCreationConfigUpdated(string feature, uint8 requiredTier, bool requiresSubscription);
AccessManagerLimitConfigUpdated
event AccessManagerLimitConfigUpdated(string limitType, uint8 tier, uint256 limit);
AccessManagerFeeConfigUpdated
event AccessManagerFeeConfigUpdated(uint8 tier, uint256 fee);
AccessManagerKYCRequirementUpdated
event AccessManagerKYCRequirementUpdated(bool required);
Errors
InvalidTier
error InvalidTier(uint8 tier);
InvalidFee
error InvalidFee(uint256 fee);
FeatureNotFound
error FeatureNotFound(string feature);
LimitNotFound
error LimitNotFound(string limitType);
Last updated
Was this helpful?