/** * Feature Enum * * Enumeration of all available features in the SDK * * @module types/Feature */ /** * Available features in the Orbis SDK */ export enum Feature { /** Gas-Free RGB transfer feature */ GAS_FREE = 'gasFree', /** Watch-Tower monitoring feature */ WATCH_TOWER = 'watchTower', } /** * Feature display names */ export const FEATURE_NAMES: Record = { [Feature.GAS_FREE]: 'Gas-Free Transfers', [Feature.WATCH_TOWER]: 'Watch-Tower Monitoring', }; /** * Feature descriptions */ export const FEATURE_DESCRIPTIONS: Record = { [Feature.GAS_FREE]: 'Enable gas-free RGB transfers using collaborative transaction building', [Feature.WATCH_TOWER]: 'Monitor blockchain for incoming RGB transfers and asset updates', }; /** * Check if a feature name is valid * * @param feature - Feature name to check * @returns True if valid, false otherwise */ export function isValidFeature(feature: string): feature is Feature { return Object.values(Feature).includes(feature as Feature); } /** * Get feature display name * * @param feature - Feature enum value * @returns Display name */ export function getFeatureName(feature: Feature): string { return FEATURE_NAMES[feature] || feature; } /** * Get feature description * * @param feature - Feature enum value * @returns Description */ export function getFeatureDescription(feature: Feature): string { return FEATURE_DESCRIPTIONS[feature] || ''; }