dop-stick
Version:
Source control tooling for versionable-upgradeable smart contracts
82 lines • 3.66 kB
TypeScript
import { Interface, EventFragment } from '@ethersproject/abi';
import { FacetInfo, FacetEvent, TypechainContractInfo, FunctionSelectorInfo } from './types';
export declare class TypechainProcessor {
private static instance;
private optimizedLookup;
private facetsCache;
private factoryMap;
private abiCache;
private initialized;
private initializationPromise;
private readonly enableCache;
private readonly typechainPath;
private eventHandlers;
private selectorLookupCache;
private static readonly VERSION;
private static readonly CACHE_DURATION;
private static readonly ABI_PATTERNS;
private static readonly CONCURRENCY_LIMIT;
private static readonly FACTORY_PATTERN;
private eventCache;
private static readonly EVENT_CACHE_DURATION;
private eventCacheTimestamps;
private constructor();
static getInstance(typechainPath?: string, enableCache?: boolean): TypechainProcessor;
private ensureInitialized;
initialize(): Promise<void>;
private loadFactoryMappings;
private findTypechainFiles;
getFactoryInfo(contractName: string): Promise<string | null>;
listFactories(): Promise<Map<string, string>>;
private buildOptimizedLookup;
private updateLookupStructures;
private processFacet;
private cleanContractName;
private extractAndCleanAbi;
private findCompleteJsonStructure;
private validateAndCleanAbi;
private processContractFunctions;
private processContractEvents;
findContractBySelectors(selectors: string[]): Promise<TypechainContractInfo | null>;
private createContractInfo;
private processParameters;
private cleanAbiString;
private getCachedData;
batchProcessSelectors(selectorsBatch: string[][]): Promise<(TypechainContractInfo | null)[]>;
getContractInfo(contractName: string): Promise<FacetInfo | null>;
getPerformanceMetrics(): Record<string, number>;
clearCache(): void;
private validateAndNormalizeAbi;
private validateFunctionAbi;
private validateEventAbi;
private recoverFromError;
subscribeToEvents(contractName: string, eventNames: string[], callback: (event: FacetEvent, data: any) => void): Promise<boolean>;
getFacetInterfaces(): Promise<Map<string, Interface>>;
getFunctionsBySelector(selector: string): Promise<FunctionSelectorInfo | null>;
getFacetSelectors(facetName: string): Promise<Set<string> | null>;
validateSelector(selector: string): Promise<boolean>;
getDiagnostics(): Promise<Record<string, any>>;
private saveToCache;
private loadFromCache;
private rebuildIndexes;
reloadContract(contractName: string): Promise<boolean>;
private warmupSelectorCache;
private performCacheMaintenance;
private convertFunctionsToMap;
private convertEventsToMap;
private convertMapToObject;
registerEventHandler(contractName: string, eventNames: string[], callback: (event: FacetEvent, data: any) => void): Promise<boolean>;
removeEventHandler(eventSignature: string): boolean;
clearEventHandlers(): void;
handleEvent(eventSignature: string, eventData: any): Promise<void>;
private findEventBySignature;
getRegisteredEventSignatures(): string[];
hasEventHandler(eventSignature: string): boolean;
maintainCache(): Promise<void>;
getCacheStats(): Promise<Record<string, any>>;
getEventsByAddress(address: string): Promise<Map<string, EventFragment>>;
private extractContractNameFromPath;
getEventsByFacetName(facetName: string): Promise<Map<string, EventFragment>>;
private cleanEventCache;
}
//# sourceMappingURL=typechain-processor.d.ts.map