import type { BlockNumber } from '@aztec/foundation/branded-types'; import type { AztecAddress } from '../aztec-address/index.js'; import type { LogFilter } from '../logs/log_filter.js'; import type { SiloedTag } from '../logs/siloed_tag.js'; import type { Tag } from '../logs/tag.js'; import type { TxScopedL2Log } from '../logs/tx_scoped_l2_log.js'; import type { GetContractClassLogsResponse, GetPublicLogsResponse } from './get_logs_response.js'; /** * Interface of classes allowing for the retrieval of logs. */ export interface L2LogsSource { /** * Gets private logs that match any of the `tags`. For each tag, an array of matching logs is returned. An empty * array implies no logs match that tag. * @param tags - The tags to search for. * @param page - The page number (0-indexed) for pagination. * @returns An array of log arrays, one per tag. Returns at most 10 logs per tag per page. If 10 logs are returned * for a tag, the caller should fetch the next page to check for more logs. */ getPrivateLogsByTags(tags: SiloedTag[], page?: number): Promise; /** * Gets public logs that match any of the `tags` from the specified contract. For each tag, an array of matching * logs is returned. An empty array implies no logs match that tag. * @param contractAddress - The contract address to search logs for. * @param tags - The tags to search for. * @param page - The page number (0-indexed) for pagination. * @returns An array of log arrays, one per tag. Returns at most 10 logs per tag per page. If 10 logs are returned * for a tag, the caller should fetch the next page to check for more logs. */ getPublicLogsByTagsFromContract(contractAddress: AztecAddress, tags: Tag[], page?: number): Promise; /** * Gets public logs based on the provided filter. * @param filter - The filter to apply to the logs. * @returns The requested logs. */ getPublicLogs(filter: LogFilter): Promise; /** * Gets contract class logs based on the provided filter. * @param filter - The filter to apply to the logs. * @returns The requested logs. */ getContractClassLogs(filter: LogFilter): Promise; /** * Gets the number of the latest L2 block processed by the implementation. * @returns The number of the latest L2 block processed by the implementation. */ getBlockNumber(): Promise; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDJfbG9nc19zb3VyY2UuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbnRlcmZhY2VzL2wyX2xvZ3Nfc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRW5FLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sS0FBSyxFQUFFLDRCQUE0QixFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFbEc7O0dBRUc7QUFDSCxNQUFNLFdBQVcsWUFBWTtJQUMzQjs7Ozs7OztPQU9HO0lBQ0gsb0JBQW9CLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRW5GOzs7Ozs7OztPQVFHO0lBQ0gsK0JBQStCLENBQzdCLGVBQWUsRUFBRSxZQUFZLEVBQzdCLElBQUksRUFBRSxHQUFHLEVBQUUsRUFDWCxJQUFJLENBQUMsRUFBRSxNQUFNLEdBQ1osT0FBTyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUU5Qjs7OztPQUlHO0lBQ0gsYUFBYSxDQUFDLE1BQU0sRUFBRSxTQUFTLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFFakU7Ozs7T0FJRztJQUNILG9CQUFvQixDQUFDLE1BQU0sRUFBRSxTQUFTLEdBQUcsT0FBTyxDQUFDLDRCQUE0QixDQUFDLENBQUM7SUFFL0U7OztPQUdHO0lBQ0gsY0FBYyxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztDQUN4QyJ9