FactoryConfigFacet
Inherits: IFactoryConfig
Implementation of factory configuration with subscription integration
Provides subscription-tier-based access control for factory features, limits, and permissions
Functions
onlyAdmin
modifier onlyAdmin();
validTier
modifier validTier(uint8 tier);
setSubscriptionManager
function setSubscriptionManager(address subscriptionManager) external override onlyAdmin;
getSubscriptionManager
function getSubscriptionManager() external view override returns (address);
getUserTier
function getUserTier(address user) external view override returns (uint8 tier);
hasActiveSubscription
function hasActiveSubscription(address user) external view override returns (bool);
setTieredFeature
function setTieredFeature(string calldata feature, uint8 minimumTier, bool enabled)
external
override
onlyAdmin
validTier(minimumTier);
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 validTier(tier) 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
onlyAdmin
validTier(tier);
getTieredLimit
function getTieredLimit(string calldata limitType, uint8 tier)
external
view
override
validTier(tier)
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
onlyAdmin
validTier(tier);
isTieredPermissionGranted
function isTieredPermissionGranted(string calldata permissionType, uint8 tier)
external
view
override
validTier(tier)
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
onlyAdmin;
setTieredLimitsBatch
function setTieredLimitsBatch(string[] calldata limitTypes, uint8 tier, uint256[] calldata values)
external
override
onlyAdmin
validTier(tier);
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
view
override
validTier(tier)
returns (string memory name, uint256 monthlyFeeUSD, bool isActive);
getAllTiers
function getAllTiers()
external
view
override
returns (uint8[] memory tiers, string[] memory names, uint256[] memory fees);
initializeConfig
function initializeConfig() external virtual override onlyAdmin;
isConfigInitialized
function isConfigInitialized() external view override returns (bool);
getEnabledFeatures
function getEnabledFeatures() external view override returns (string[] memory);
_getUserTier
function _getUserTier(address user) internal view returns (uint8);
_hasActiveSubscription
function _hasActiveSubscription(address user) internal view returns (bool);
_requireAdmin
function _requireAdmin() internal view virtual;
Last updated
Was this helpful?