filecoin-pin
Version:
Bridge IPFS content to Filecoin Onchain Cloud using familiar tools
74 lines • 2.88 kB
TypeScript
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