import { Dictionary } from 'ts-essentials'; import { PersistedLog } from '../extractors/rawEventDataExtractor'; import { LocalServices } from '@oasisdex/spock-etl/dist/services/types'; /** * Decode events from raw logs using provided ABI. * * @param handlers - Keys are event names. * * NOTE: make sure that for the same ABI you always provide same object (reference). Otherwise this can lead to memory leaks. * NOTE: For support for DSNote generated events use "handleDsNoteEvents" */ export declare function handleEvents(services: TServices, abi: any, logs: PersistedLog[], handlers: EventHandlers): Promise; /** * Decode dsnote generated anonymous events. * * @param handlers - Keys are method signatures. * @param version - There are two different DSNotes versions in the wild. DsNote Ver 2 doesnt encode call value, it's used in MCD. */ export declare function handleDsNoteEvents(services: LocalServices, abi: any, logs: PersistedLog[], handlers: DsNoteHandlers, version?: 1 | 2): Promise; interface NoteDecoded { name: string; args: Array; params: Dictionary; ethValue?: string; caller: string; } export interface ParsedEvent { address: string; name: string; args: Array; params: Dictionary; } export interface FullEventInfo { event: ParsedEvent; log: PersistedLog; } export interface FullEventInfoUnfiltered { event?: ParsedEvent; log: PersistedLog; } export interface FullNoteEventInfo { note: NoteDecoded; log: PersistedLog; } export interface FullNoteEventInfoUnfiltered { note?: NoteDecoded; log: PersistedLog; } declare type Handler = (services: TServices, info: FullEventInfo) => Promise; export declare type EventHandlers = Dictionary>; declare type DsNoteHandler = (services: LocalServices, info: FullNoteEventInfo) => Promise; export declare type DsNoteHandlers = Dictionary; export {};