UNPKG

@gotake/gotake-sdk

Version:

SDK for interacting with GoTake blockchain contracts

109 lines 3.8 kB
import { BigNumber } from 'ethers'; import { ViewPermission, ContentConfig } from '../types'; /** * Utility functions for content management */ export declare class ContentUtils { /** * Validate content ID * @param contentId Content ID to validate * @returns True if content ID is valid */ static isValidContentId(contentId: number): boolean; /** * Format price for display * @param price Price in wei/smallest unit * @param decimals Token decimals (default 18 for ETH) * @param maxDecimals Maximum decimal places to show * @returns Formatted price string */ static formatPrice(price: BigNumber, decimals?: number, maxDecimals?: number): string; /** * Parse price from string * @param priceString Price string * @param decimals Token decimals (default 18 for ETH) * @returns Price in BigNumber */ static parsePrice(priceString: string, decimals?: number): BigNumber; /** * Calculate remaining time in seconds * @param validUntil Valid until timestamp * @returns Remaining seconds (0 if expired) */ static getRemainingTime(validUntil: BigNumber): number; /** * Format time duration for display * @param seconds Duration in seconds * @returns Formatted duration string */ static formatDuration(seconds: number): string; /** * Check if permission is still valid * @param permission View permission object * @returns True if permission is valid and not expired */ static isPermissionValid(permission: ViewPermission): boolean; /** * Get permission status description * @param permission View permission object * @returns Status description string */ static getPermissionStatus(permission: ViewPermission): string; /** * Calculate expiry timestamp * @param durationSeconds Duration in seconds * @returns Expiry timestamp */ static calculateExpiry(durationSeconds: number): BigNumber; /** * Validate content configuration * @param config Content configuration * @returns Validation result with errors if any */ static validateContentConfig(config: ContentConfig): { isValid: boolean; errors: string[]; }; /** * Compare two content configurations * @param config1 First configuration * @param config2 Second configuration * @returns Object showing differences */ static compareConfigs(config1: ContentConfig, config2: ContentConfig): { hasChanges: boolean; changes: Record<string, { old: any; new: any; }>; }; /** * Generate content summary for display * @param config Content configuration * @returns Human-readable summary */ static generateContentSummary(config: ContentConfig): string; /** * Sort content configurations by various criteria * @param configs Array of content configurations * @param sortBy Sort criteria * @param ascending Sort order * @returns Sorted configurations */ static sortConfigs(configs: ContentConfig[], sortBy: 'contentId' | 'nativePrice' | 'defaultViewCount' | 'viewDuration' | 'isActive', ascending?: boolean): ContentConfig[]; /** * Filter content configurations by criteria * @param configs Array of content configurations * @param filters Filter criteria * @returns Filtered configurations */ static filterConfigs(configs: ContentConfig[], filters: { isActive?: boolean; minPrice?: BigNumber; maxPrice?: BigNumber; minViewCount?: number; maxViewCount?: number; contentIds?: number[]; }): ContentConfig[]; } //# sourceMappingURL=content-utils.d.ts.map