chronik-cache
Version:
A cache helper for chronik-client
71 lines (70 loc) • 2.63 kB
TypeScript
import { ChronikCacheConfig, HistoryResponse, CacheMetadata, CacheStatistics, ChronikClientInterface } from './types';
declare class ChronikCache {
private chronik;
private maxTxLimit;
private defaultPageSize;
private cacheDir;
private maxCacheSize;
private enableLogging;
private logger;
db: any;
private statusMap;
wsManager: any;
private updateLocks;
private scriptToAddressMap;
private failover;
private tokenStatusMap;
private tokenUpdateLocks;
globalMetadataCache: Map<string, CacheMetadata>;
globalMetadataCacheLimit: number;
updateQueue: any;
txUpdateQueue: any;
private addressMemoryCache;
private tokenMemoryCache;
private stats;
private debounceTimers;
private memoryCacheCleanupInterval?;
constructor(chronik: ChronikClientInterface, config?: ChronikCacheConfig);
private _debounce;
private _readCache;
private _writeCache;
private _updateGlobalMetadata;
_getGlobalMetadata(identifier: string, isToken?: boolean): Promise<CacheMetadata | null>;
private _initWebsocketForAddress;
private _initWebsocketForToken;
private _getCacheStatus;
private _setCacheStatus;
private _isUpdating;
private _checkTxLimit;
private _checkAndUpdateCache;
private _updateCache;
private _convertScriptToAddress;
script(type: string, hash: string): {
history: (pageOffset?: number, pageSize?: number) => Promise<HistoryResponse>;
};
clearAddressCache(address: string): Promise<void>;
clearAllCache(): Promise<void>;
getAddressHistory(address: string, pageOffset?: number, pageSize?: number): Promise<HistoryResponse>;
private _getPageFromCache;
address(address: string): {
history: (pageOffset?: number, pageSize?: number) => Promise<HistoryResponse>;
};
private _checkAndUpdateTokenCache;
private _updateTokenCache;
getTokenHistory(tokenId: string, pageOffset?: number, pageSize?: number): Promise<HistoryResponse>;
tokenId(tokenId: string): {
history: (pageOffset?: number, pageSize?: number) => Promise<HistoryResponse>;
};
private _quickGetTxCount;
clearTokenCache(tokenId: string): Promise<void>;
private _updateUnconfirmedTx;
private _updatePageUnconfirmedTxs;
private _getTokenPageFromCache;
private _maintainGlobalMetadataCacheLimit;
getCacheStatus(identifier: string, isToken?: boolean): string;
getStatistics(): Promise<CacheStatistics>;
private _resetMemoryCache;
private _startMemoryCacheExpirationCheckTimer;
destroy(): void;
}
export = ChronikCache;