AssetConfigFacet
Inherits: IFactoryConfig
Handles asset type permissions and factory configuration through tiered interface
Standalone diamond facet for configuring asset factory settings
Access control is handled by AccessControlFacet
Functions
initializeAssetFactory
Initialize asset factory with tiered configuration
function initializeAssetFactory(address subscriptionManager) external;
Parameters
Name
Type
Description
subscriptionManager
address
Address of the subscription manager
_setupDefaultAssetTiers
Set up default asset tier configuration
function _setupDefaultAssetTiers() internal;
initializeConfig
function initializeConfig() external override;
isConfigInitialized
function isConfigInitialized() external view override returns (bool);
setFeatureEnabled
function setFeatureEnabled(string calldata feature, bool enabled) external override;
isFeatureEnabled
function isFeatureEnabled(string calldata feature) external view override returns (bool);
getEnabledFeatures
function getEnabledFeatures() external view override returns (string[] memory);
setLimit
function setLimit(string calldata limitType, uint256 value) external override;
getLimit
function getLimit(string calldata limitType) external view override returns (uint256);
setPermission
function setPermission(string calldata permissionType, bool granted) external override;
hasPermission
function hasPermission(string calldata permissionType) external view override returns (bool);
getFactoryConfiguration
function getFactoryConfiguration()
external
view
override
returns (
string[] memory features,
string[] memory limits,
uint256[] memory limitValues,
string[] memory permissions,
bool[] memory permissionStates
);
getConfigurationStats
function getConfigurationStats()
external
view
override
returns (uint256 totalFeatures, uint256 enabledFeatures, uint256 totalLimits, uint256 totalPermissions);
setSubscriptionManager
function setSubscriptionManager(address subscriptionManager) external override;
getSubscriptionManager
function getSubscriptionManager() external view override returns (address);
getUserTier
function getUserTier(address user) external view override returns (uint8);
hasActiveSubscription
function hasActiveSubscription(address user) external view override returns (bool);
_getUserTier
function _getUserTier(address user) internal view returns (uint8);
_hasActiveSubscription
function _hasActiveSubscription(address user) internal view returns (bool);
setTieredFeature
function setTieredFeature(string calldata feature, uint8 minimumTier, bool enabled) external override;
isTieredFeatureAvailable
function isTieredFeatureAvailable(string calldata feature, uint8 tier) external view override returns (bool);
isFeatureAvailableForUser
function isFeatureAvailableForUser(string calldata feature, address user) external view override returns (bool);
getAvailableFeaturesForTier
function getAvailableFeaturesForTier(uint8 tier) external view override returns (string[] memory);
getTieredFeatureInfo
function getTieredFeatureInfo(string calldata feature)
external
view
override
returns (uint8 minimumTier, bool enabled);
setTieredLimit
function setTieredLimit(string calldata limitType, uint8 tier, uint256 value) external override;
getTieredLimit
function getTieredLimit(string calldata limitType, uint8 tier) external view override returns (uint256);
getLimitForUser
function getLimitForUser(string calldata limitType, address user) external view override returns (uint256);
wouldExceedLimit
function wouldExceedLimit(string calldata limitType, address user, uint256 currentUsage, uint256 additionalUsage)
external
view
override
returns (bool wouldExceed, uint256 currentLimit);
setTieredPermission
function setTieredPermission(string calldata permissionType, uint8 tier, bool granted) external override;
isTieredPermissionGranted
function isTieredPermissionGranted(string calldata permissionType, uint8 tier) external view override returns (bool);
isPermissionGrantedForUser
function isPermissionGrantedForUser(string calldata permissionType, address user)
external
view
override
returns (bool);
setTieredFeaturesBatch
function setTieredFeaturesBatch(string[] calldata features, uint8[] calldata minimumTiers, bool[] calldata enabled)
external
override;
setTieredLimitsBatch
function setTieredLimitsBatch(string[] calldata limitTypes, uint8 tier, uint256[] calldata values) external override;
getUserConfigSummary
function getUserConfigSummary(address user)
external
view
override
returns (uint8 tier, bool hasSubscription, string[] memory availableFeatures, uint256[] memory limits);
getTierInfo
function getTierInfo(uint8 tier)
external
pure
override
returns (string memory name, uint256 monthlyFeeUSD, bool isActive);
getAllTiers
function getAllTiers()
external
pure
override
returns (uint8[] memory tiers, string[] memory names, uint256[] memory fees);
_getAllAssetTypes
Get all asset types supported by this factory
function _getAllAssetTypes() internal pure returns (string[] memory assetTypes);
Returns
Name
Type
Description
assetTypes
string[]
Array of asset type names
_requireAdmin
function _requireAdmin() internal view;
_getAuthority
Get the authority (access manager) for this facet
function _getAuthority() internal view returns (address);
Returns
Name
Type
Description
<none>
address
The address of the access manager
Events
AssetCreationValidated
event AssetCreationValidated(address indexed user, string assetType, uint8 userTier);
AssetLimitChecked
event AssetLimitChecked(address indexed user, uint256 currentCount, uint256 limit, uint8 tier);
Last updated
Was this helpful?