@crstrskp/graph
Version:
High-performance TypeScript graph algorithms library optimized for trading bots and arbitrage detection
47 lines • 1.54 kB
TypeScript
import { Edge } from "./Edge";
import { Path } from "./Path";
import { ThreadSafeGraphImpl } from './ThreadSafeGraphImpl';
export interface MarketUpdate {
fromAsset: string;
toAsset: string;
price: number;
timestamp: number;
maxTradeSize?: number;
}
export interface EdgeMetadata {
lastUpdated: number;
maxAge: number;
maxTradeSize?: number;
source: string;
}
export declare class RealTimeGraphImpl extends ThreadSafeGraphImpl {
private edgeMetadata;
private edgeIndex;
private updateQueue;
private batchSize;
private batchTimeoutMs;
private batchTimeout;
private isProcessingBatch;
constructor(batchSize?: number, batchTimeoutMs?: number);
addMarketUpdate(update: MarketUpdate): Promise<void>;
addMarketUpdates(updates: MarketUpdate[]): Promise<void>;
private processBatch;
private applyUpdates;
private applyUpdateInternal;
getArbitrageOpportunities(maxAge?: number): Promise<Path[]>;
private cleanStaleEdges;
private findNegativeCycles;
private buildCycleFrom;
private getNodeKey;
getOptimalPath(from: string, to: string, maxAge?: number): Promise<Path | null>;
getEdgeMetadata(edge: Edge): Promise<EdgeMetadata | undefined>;
validateTradeSize(path: Path, tradeSize: number): Promise<boolean>;
getStatistics(): {
totalVertices: number;
totalEdges: number;
queueSize: number;
isProcessing: boolean;
};
destroy(): Promise<void>;
}
//# sourceMappingURL=RealTimeGraphImpl.d.ts.map