import { class_Dfr } from 'atma-utils'; import { Web3Client } from '../../clients/Web3Client'; import { TEth } from '../../models/TEth'; interface IBlockIndexer { name: string; persistence?: boolean; blocks?: { from: number; to?: number; }; visitor: (block: TEth.Block, data: { txs?: TEth.Tx[]; receipts?: TEth.TxReceipt[]; }) => Promise; client: Web3Client; loadTransactions?: boolean; loadReceipts?: boolean; logProgress?: boolean | string; } export declare class BlocksWalker { params: IBlockIndexer; onEndPromise: class_Dfr; private client; private visitor; private status; private cachedState; private everlog; private ranges; private walker; constructor(params: IBlockIndexer); start(from?: number | Date, to?: number | Date): Promise; /** * Can be called each time we get a new block from blockchain, * the walker will process its current blocks and up until the specified number * @param nr Number is not included: [from, end) */ processUntil(nr: number): Promise; stats(): { blockLoadTime: number; busy?: { nr: number; startedAt: number; }[]; errors?: { nr: number; startedAt: number; duration: number; error: Error; }[]; from?: number; to?: number; totalLeft?: number; totalTimeLeft?: string; processed?: number; avgTime?: number; }; private isRestored; private restore; private getBlockNumber; private processBlocks; private save; private log; } export {};