UNPKG

@hyperlane-xyz/sdk

Version:

The official SDK for the Hyperlane Network

85 lines 3.9 kB
import { Logger } from 'pino'; import { z } from 'zod'; import { Address } from '@hyperlane-xyz/utils'; import type { ChainMetadataManager } from '../../metadata/ChainMetadataManager.js'; import { MultiProvider } from '../../providers/MultiProvider.js'; import type { ChainNameOrId } from '../../types.js'; import { GetEventLogsResponse } from './types.js'; export type EvmEventLogsReaderConfig = { chain: ChainNameOrId; useRPC?: boolean; paginationBlockRange?: number; }; export declare const GetLogByTopicOptionsSchema: z.ZodObject<{ eventTopic: z.ZodEffects<z.ZodString, string, string>; contractAddress: z.ZodString; fromBlock: z.ZodOptional<z.ZodNumber>; toBlock: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { contractAddress: string; eventTopic: string; fromBlock?: number | undefined; toBlock?: number | undefined; }, { contractAddress: string; eventTopic: string; fromBlock?: number | undefined; toBlock?: number | undefined; }>; export declare const RequiredGetLogByTopicOptionsSchema: z.ZodObject<{ eventTopic: z.ZodEffects<z.ZodString, string, string>; contractAddress: z.ZodString; fromBlock: z.ZodNumber; toBlock: z.ZodNumber; }, "strip", z.ZodTypeAny, { fromBlock: number; toBlock: number; contractAddress: string; eventTopic: string; }, { fromBlock: number; toBlock: number; contractAddress: string; eventTopic: string; }>; type GetLogByTopicOptions = z.infer<typeof GetLogByTopicOptionsSchema>; type RequiredGetLogByTopicOptions = z.infer<typeof RequiredGetLogByTopicOptionsSchema>; interface IEvmEventLogsReaderStrategy { getContractDeploymentBlockNumber(address: Address): Promise<number>; getContractLogs(address: RequiredGetLogByTopicOptions): Promise<GetEventLogsResponse[]>; } export declare class EvmEtherscanLikeEventLogsReader implements IEvmEventLogsReaderStrategy { protected readonly chain: ChainNameOrId; protected readonly config: Awaited<ReturnType<ChainMetadataManager['getExplorerApi']>>; protected readonly multiProvider: MultiProvider; constructor(chain: ChainNameOrId, config: Awaited<ReturnType<ChainMetadataManager['getExplorerApi']>>, multiProvider: MultiProvider); getContractDeploymentBlockNumber(address: string): Promise<number>; getContractLogs(options: RequiredGetLogByTopicOptions): Promise<GetEventLogsResponse[]>; } export declare class EvmRpcEventLogsReader implements IEvmEventLogsReaderStrategy { protected readonly chain: ChainNameOrId; protected readonly config: { paginationBlockRange?: number; }; protected readonly multiProvider: MultiProvider; constructor(chain: ChainNameOrId, config: { paginationBlockRange?: number; }, multiProvider: MultiProvider); getContractDeploymentBlockNumber(address: string): Promise<number>; getContractLogs(options: RequiredGetLogByTopicOptions): Promise<GetEventLogsResponse[]>; } export declare class EvmEventLogsReader { protected readonly config: EvmEventLogsReaderConfig; protected readonly multiProvider: MultiProvider; protected logReaderStrategy: IEvmEventLogsReaderStrategy; protected readonly logger: Logger; protected fallbackLogReaderStrategy?: IEvmEventLogsReaderStrategy | undefined; private deploymentBlockCache; protected constructor(config: EvmEventLogsReaderConfig, multiProvider: MultiProvider, logReaderStrategy: IEvmEventLogsReaderStrategy, logger: Logger, fallbackLogReaderStrategy?: IEvmEventLogsReaderStrategy | undefined); static fromConfig(config: EvmEventLogsReaderConfig, multiProvider: MultiProvider, logger?: Logger): EvmEventLogsReader; getLogsByTopic(options: GetLogByTopicOptions): Promise<GetEventLogsResponse[]>; private getDeploymentBlock; private getLogsByTopicWithStrategy; } export {}; //# sourceMappingURL=EvmEventLogsReader.d.ts.map