eth-block-tracker
Version:
A block tracker for the Ethereum blockchain. Keeps track of the latest block.
41 lines (40 loc) • 1.43 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 SubscribeBlockTrackerOptions {
provider?: SafeEventEmitterProvider;
blockResetDuration?: number;
usePastBlocks?: boolean;
}
export declare class SubscribeBlockTracker extends SafeEventEmitter implements BlockTracker {
private _isRunning;
private readonly _blockResetDuration;
private readonly _usePastBlocks;
private _currentBlock;
private _blockResetTimeout?;
private readonly _provider;
private _subscriptionId;
constructor(opts?: SubscribeBlockTrackerOptions);
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 _call;
private _handleSubData;
}