@cygnus-wealth/asset-valuator
Version:
Asset valuation library for retrieving and converting cryptocurrency prices
31 lines (30 loc) • 1.01 kB
TypeScript
import { PriceData, PriceProvider } from '../types.js';
export interface AggregatorOptions {
providers?: PriceProvider[];
cacheOptions?: {
storage?: 'memory' | 'localStorage' | 'indexedDB';
ttl?: number;
};
rateLimitOptions?: {
maxRequests?: number;
windowMs?: number;
};
consensusThreshold?: number;
}
export declare class DecentralizedAggregator implements PriceProvider {
private providers;
private rateLimiter;
private cache;
private consensusThreshold;
constructor(options?: AggregatorOptions);
private selectBestStorage;
fetchPrice(symbol: string, currency?: string): Promise<PriceData>;
fetchMultiplePrices(symbols: string[], currency?: string): Promise<PriceData[]>;
private fetchFromProviders;
private calculateConsensusPrice;
private groupBySymbol;
addProvider(provider: PriceProvider): void;
removeProvider(index: number): void;
clearCache(): Promise<void>;
resetRateLimiter(): void;
}