forked from MetaMask/eth-block-tracker
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathBaseBlockTracker.d.ts
More file actions
40 lines (40 loc) · 1.36 KB
/
Copy pathBaseBlockTracker.d.ts
File metadata and controls
40 lines (40 loc) · 1.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import SafeEventEmitter from '@metamask/safe-event-emitter';
import { JsonRpcRequest, JsonRpcResponse } from 'json-rpc-engine';
export interface Provider extends SafeEventEmitter {
sendAsync: <T, U>(req: JsonRpcRequest<T>, cb: (err: Error, response: JsonRpcResponse<U>) => void) => void;
}
interface BaseBlockTrackerArgs {
blockResetDuration?: number;
}
export declare abstract class BaseBlockTracker extends SafeEventEmitter {
protected _isRunning: boolean;
private _blockResetDuration;
private _currentBlock;
private _blockResetTimeout?;
constructor(opts: BaseBlockTrackerArgs);
destroy(): Promise<void>;
isRunning(): boolean;
getCurrentBlock(): string | null;
getLatestBlock(): Promise<string>;
removeAllListeners(eventName?: string | symbol): this;
/**
* To be implemented in subclass.
*/
protected abstract _start(): Promise<void>;
/**
* To be implemented in subclass.
*/
protected abstract _end(): Promise<void>;
private _setupInternalEvents;
private _onNewListener;
private _onRemoveListener;
private _maybeStart;
private _maybeEnd;
private _getBlockTrackerEventCount;
protected _newPotentialLatest(newBlock: string): void;
private _setCurrentBlock;
private _setupBlockResetTimeout;
private _cancelBlockResetTimeout;
private _resetCurrentBlock;
}
export {};