eth-block-tracker
Version:
A block tracker for the Ethereum blockchain. Keeps track of the latest block.
49 lines (48 loc) • 1.71 kB
TypeScript
import type { SafeEventEmitterProvider } from '@metamask/eth-json-rpc-provider';
import SafeEventEmitter from '@metamask/safe-event-emitter';
import type { BlockTracker } from './BlockTracker';
export interface PollingBlockTrackerOptions {
provider?: SafeEventEmitterProvider;
pollingInterval?: number;
retryTimeout?: number;
keepEventLoopActive?: boolean;
setSkipCacheFlag?: boolean;
blockResetDuration?: number;
usePastBlocks?: boolean;
}
export declare class PollingBlockTracker extends SafeEventEmitter implements BlockTracker {
private _isRunning;
private readonly _blockResetDuration;
private readonly _usePastBlocks;
private _currentBlock;
private _blockResetTimeout?;
private readonly _provider;
private readonly _pollingInterval;
private readonly _retryTimeout;
private readonly _keepEventLoopActive;
private readonly _setSkipCacheFlag;
constructor(opts?: PollingBlockTrackerOptions);
destroy(): Promise<void>;
isRunning(): boolean;
getCurrentBlock(): string | null;
getLatestBlock(): Promise<string>;
removeAllListeners(eventName?: string | symbol): this;
private _setupInternalEvents;
private _onNewListener;
private _onRemoveListener;
private _maybeStart;
private _maybeEnd;
private _getBlockTrackerEventCount;
private _shouldUseNewBlock;
private _newPotentialLatest;
private _setCurrentBlock;
private _setupBlockResetTimeout;
private _cancelBlockResetTimeout;
private _resetCurrentBlock;
checkForLatestBlock(): Promise<string>;
private _start;
private _end;
private _synchronize;
private _updateLatestBlock;
private _fetchLatestBlock;
}