@shubhamrasal/groundline
Version:
Groundline GraphDB with IPFS persistence
49 lines • 1.49 kB
TypeScript
import type { Entity, Relation } from './graph-model.js';
export interface IPFSConfig {
privateKey?: string;
rpcURL?: string;
authorization?: string;
withCDN?: boolean;
}
export interface GraphSnapshot {
nodes: Map<string, Entity>;
edges: Map<string, Relation>;
timestamp: number;
version: string;
provenance: any[];
}
export declare class IPFSClient {
private config;
private synapse;
private storage;
constructor(config?: IPFSConfig);
/**
* Performs preflight checks to ensure sufficient USDFC balance and allowances
* @param dataSize Size of data to be stored
* @param withProofset Whether a new proofset needs to be created
*/
private performPreflightCheck;
/**
* Initialize the IPFS client with Synapse SDK
*/
initialize(): Promise<void>;
/**
* Upload graph snapshot to IPFS
* @param snapshot Graph data to store
* @returns CID of the stored content
*/
uploadSnapshot(snapshot: GraphSnapshot): Promise<string>;
/**
* Retrieve graph snapshot from IPFS
* @param cid Content identifier (CommP)
* @returns Graph snapshot data
*/
getSnapshot(cid: string): Promise<GraphSnapshot>;
/**
* Pin content to ensure persistence
* @param cid Content identifier to pin
*/
pinContent(cid: string): Promise<void>;
}
export declare function createIPFSClient(config?: IPFSConfig): IPFSClient;
//# sourceMappingURL=ipfs.d.ts.map