UNPKG

filecoin-pin

Version:

Bridge IPFS content to Filecoin Onchain Cloud using familiar tools

51 lines 2.37 kB
/** * Helper: createStorageContextFromDataSetId * * Optimized helper to create a StorageContext for an existing dataset ID without * triggering the expensive "scan all client datasets" hotpath. * * This is a workaround for https://github.com/FilOzone/synapse-sdk/issues/435 * until https://github.com/FilOzone/synapse-sdk/pull/438 is merged and published. * * Benefits: * - Reuses Synapse's existing WarmStorageService (no extra initialization) * - Only fetches data for the single dataset needed (~5-6 RPC calls vs 1500+) * - Validates ownership, isLive, and isManaged * * TODO: Replace with synapse.storage.createContextFromDataSetId() once PR #438 is published */ import type { Synapse, WarmStorageService } from '@filoz/synapse-sdk'; import { StorageContext } from '@filoz/synapse-sdk'; import { type ProviderInfo, SPRegistryService } from '@filoz/synapse-sdk/sp-registry'; import type { Logger } from 'pino'; export type StorageContextHelperResult = { storage: StorageContext; providerInfo: ProviderInfo; }; export type CreateStorageContextFromDataSetIdOptions = { /** * Whether to check if the provider is approved or not. We default to false here because for many read operations, * we might want to re-use the dataset even if it's not owned by an approved provider. * @default false */ checkProviderApproval?: boolean; }; /** * Create a StorageContext for an existing dataSetId without scanning all datasets. */ export declare function createStorageContextFromDataSetId(synapse: Synapse, dataSetId: number, options?: CreateStorageContextFromDataSetIdOptions): Promise<StorageContextHelperResult>; export type CreateNewStorageContextOptions = { providerId?: number; providerAddress?: string; warmStorage?: WarmStorageService; spRegistry?: SPRegistryService; logger?: Logger; }; /** * Create a StorageContext configured for creating a brand new dataset without scanning all * existing datasets. Provider selection favors explicit overrides and otherwise randomly selects * an active provider that exposes a PDP endpoint. */ export declare function createStorageContextForNewDataSet(synapse: Synapse, options?: CreateNewStorageContextOptions): Promise<StorageContextHelperResult>; export default createStorageContextFromDataSetId; //# sourceMappingURL=storage-context-helper.d.ts.map