UNPKG

filecoin-pin

Version:

IPFS Pinning Service API implementation that pins to Filecoin's PDP service

82 lines 2.56 kB
import { EventEmitter } from 'node:events'; import type { CARBlockstoreStats } from './car-blockstore.js'; import type { Config } from './config.js'; import type { CID } from 'multiformats/cid'; import type { Logger } from 'pino'; import type { SynapseService } from './synapse-service.js'; export interface PinningServiceUser { id: string; name: string; } export interface PinOptions { name?: string; origins?: string[]; meta?: Record<string, string>; } export interface StoredPinStatus { id: string; status: 'queued' | 'pinning' | 'pinned' | 'failed'; created: number; pin: { cid: string; name?: string; origins?: string[]; meta?: Record<string, string>; }; info?: Record<string, string>; } export interface FilecoinPinMetadata { carFilePath: string; carStats: CARBlockstoreStats; pinStarted: number; pinCompleted?: number; synapseCommP?: string; synapseRootId?: number; synapseProofSetId?: string; } export interface FilecoinStoredPinStatus extends StoredPinStatus { filecoin?: FilecoinPinMetadata; } export interface FilecoinPinStoreInit { config: Config; logger: Logger; synapseService: SynapseService; } /** * Filecoin-specific pin store that creates CAR files for each pin operation */ export declare class FilecoinPinStore extends EventEmitter { private readonly config; private readonly logger; private readonly synapseService; private readonly pins; private readonly activePins; private pinCounter; constructor(init: FilecoinPinStoreInit); start(): Promise<void>; stop(): Promise<void>; pin(user: PinningServiceUser, cid: CID, options?: PinOptions): Promise<FilecoinStoredPinStatus>; private _processPinInBackground; get(_user: PinningServiceUser, id: string): Promise<FilecoinStoredPinStatus | undefined>; update(_user: PinningServiceUser, id: string, options: PinOptions): Promise<FilecoinStoredPinStatus | undefined>; cancel(_user: PinningServiceUser, id: string): Promise<void>; list(_user: PinningServiceUser, query?: { cid?: string; name?: string; status?: string; limit?: number; }): Promise<{ count: number; results: FilecoinStoredPinStatus[]; }>; /** * Get statistics for all active pins */ getActivePinStats(): Array<{ pinId: string; cid: string; stats: CARBlockstoreStats; duration: number; }>; } //# sourceMappingURL=filecoin-pin-store.d.ts.map