UNPKG

filecoin-pin

Version:

Bridge IPFS content to Filecoin Onchain Cloud using familiar tools

74 lines 2.88 kB
import type { Synapse } from '@filoz/synapse-sdk'; import type { Logger } from 'pino'; import type { ProgressEvent, ProgressEventHandler, Warning } from '../utils/types.js'; import type { DataSetSummary } from './types.js'; export interface ActualStorageResult { /** Total storage in bytes across all active data sets */ totalBytes: bigint; /** Number of active data sets found */ dataSetCount: number; /** Number of data sets successfully processed */ dataSetsProcessed: number; /** Total number of pieces across all data sets */ pieceCount: number; /** Whether the calculation timed out */ timedOut?: boolean; /** Non-fatal warnings encountered during calculation */ warnings: Warning[]; } export type ActualStorageProgressEvents = ProgressEvent<'actual-storage:progress', { dataSetsProcessed: number; dataSetCount: number; pieceCount: number; totalBytes: bigint; }>; /** * Calculate actual storage from all active data sets for an address * * This function queries all active/live data sets and sums up the actual piece sizes. * It's more accurate than deriving storage from billing rates, but can be slow for * users with many pieces. * * The calculation respects abort signals - if aborted, it will return partial results * with a timedOut flag set to true. * * Example usage: * ```typescript * const result = await calculateActualStorage(synapse, { * address: '0x1234...', * signal: AbortSignal.timeout(30000), // 30 second timeout * logger: myLogger * }) * * console.log(`Total storage: ${result.totalBytes} bytes`) * console.log(`Across ${result.dataSetsProcessed}/${result.dataSetCount} data sets`) * console.log(`Total pieces: ${result.pieceCount}`) * * if (result.timedOut) { * console.warn('Calculation was aborted, results may be incomplete') * } * * if (result.warnings.length > 0) { * console.warn('Encountered warnings:', result.warnings) * } * ``` * * @param synapse - Initialized Synapse instance * @param options - Configuration options * @returns Actual storage calculation result */ export declare function calculateActualStorage(synapse: Synapse, dataSets: DataSetSummary[], options?: { /** Address to calculate storage for (defaults to synapse client address) */ address?: string; /** Abort signal for cancellation/timeout (optional) */ signal?: AbortSignal; /** Logger for debugging (optional) */ logger?: Logger; /** Max number of providers to query in parallel (defaults to 10) */ maxParallelProviders?: number; /** Max concurrent datasets per provider (defaults to 10) */ maxParallelPerProvider?: number; /** Progress callback for UI updates */ onProgress?: ProgressEventHandler<ActualStorageProgressEvents>; }): Promise<ActualStorageResult>; //# sourceMappingURL=calculate-actual-storage.d.ts.map