@metamask-previews/eth-block-tracker 15.0.0-preview-565dfca2 → 15.0.0-preview-c208c1a
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/PollingBlockTracker.cjs +205 -209
- package/dist/PollingBlockTracker.cjs.map +1 -1
- package/dist/PollingBlockTracker.d.cts +0 -33
- package/dist/PollingBlockTracker.d.cts.map +1 -1
- package/dist/PollingBlockTracker.d.mts +0 -33
- package/dist/PollingBlockTracker.d.mts.map +1 -1
- package/dist/PollingBlockTracker.mjs +204 -208
- package/dist/PollingBlockTracker.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -13,17 +13,6 @@ export type PollingBlockTrackerOptions<Context extends ContextConstraint = Middl
|
|
|
13
13
|
};
|
|
14
14
|
export declare class PollingBlockTracker<Context extends ContextConstraint = MiddlewareContext> extends SafeEventEmitter implements BlockTracker {
|
|
15
15
|
#private;
|
|
16
|
-
private _isRunning;
|
|
17
|
-
private readonly _blockResetDuration;
|
|
18
|
-
private readonly _usePastBlocks;
|
|
19
|
-
private _currentBlock;
|
|
20
|
-
private _blockResetTimeout?;
|
|
21
|
-
private _pollingTimeout?;
|
|
22
|
-
private readonly _provider;
|
|
23
|
-
private readonly _pollingInterval;
|
|
24
|
-
private readonly _retryTimeout;
|
|
25
|
-
private readonly _keepEventLoopActive;
|
|
26
|
-
private readonly _setSkipCacheFlag;
|
|
27
16
|
constructor(opts?: PollingBlockTrackerOptions<Context>);
|
|
28
17
|
destroy(): Promise<void>;
|
|
29
18
|
isRunning(): boolean;
|
|
@@ -32,18 +21,6 @@ export declare class PollingBlockTracker<Context extends ContextConstraint = Mid
|
|
|
32
21
|
useCache?: boolean;
|
|
33
22
|
}): Promise<string>;
|
|
34
23
|
removeAllListeners(eventName?: string | symbol): this;
|
|
35
|
-
private _setupInternalEvents;
|
|
36
|
-
private _onNewListener;
|
|
37
|
-
private _onRemoveListener;
|
|
38
|
-
private _maybeStart;
|
|
39
|
-
private _maybeEnd;
|
|
40
|
-
private _getBlockTrackerEventCount;
|
|
41
|
-
private _shouldUseNewBlock;
|
|
42
|
-
private _newPotentialLatest;
|
|
43
|
-
private _setCurrentBlock;
|
|
44
|
-
private _setupBlockResetTimeout;
|
|
45
|
-
private _cancelBlockResetTimeout;
|
|
46
|
-
private _resetCurrentBlock;
|
|
47
24
|
/**
|
|
48
25
|
* Checks for the latest block, updates the internal state, and returns the
|
|
49
26
|
* value immediately rather than waiting for the next polling interval.
|
|
@@ -52,15 +29,5 @@ export declare class PollingBlockTracker<Context extends ContextConstraint = Mid
|
|
|
52
29
|
* @returns A promise that resolves to the latest block number.
|
|
53
30
|
*/
|
|
54
31
|
checkForLatestBlock(): Promise<string>;
|
|
55
|
-
private _start;
|
|
56
|
-
private _end;
|
|
57
|
-
private _updateLatestBlock;
|
|
58
|
-
private _fetchLatestBlock;
|
|
59
|
-
/**
|
|
60
|
-
* The core polling function that runs after each interval.
|
|
61
|
-
* Updates the latest block and then queues the next update.
|
|
62
|
-
*/
|
|
63
|
-
private _updateAndQueue;
|
|
64
|
-
_clearPollingTimeout(): void;
|
|
65
32
|
}
|
|
66
33
|
//# sourceMappingURL=PollingBlockTracker.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PollingBlockTracker.d.cts","sourceRoot":"","sources":["../src/PollingBlockTracker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,wCAAwC;AACxE,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EAClB,qCAAqC;AACtC,OAAO,gBAAgB,qCAAqC;AAK5D,OAAO,KAAK,EAAE,YAAY,EAAE,2BAAuB;AASnD,MAAM,MAAM,0BAA0B,CACpC,OAAO,SAAS,iBAAiB,GAAG,iBAAiB,IACnD;IACF,QAAQ,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACrC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAQF,qBAAa,mBAAmB,CAC5B,OAAO,SAAS,iBAAiB,GAAG,iBAAiB,CAEvD,SAAQ,gBACR,YAAW,YAAY;;
|
|
1
|
+
{"version":3,"file":"PollingBlockTracker.d.cts","sourceRoot":"","sources":["../src/PollingBlockTracker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,wCAAwC;AACxE,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EAClB,qCAAqC;AACtC,OAAO,gBAAgB,qCAAqC;AAK5D,OAAO,KAAK,EAAE,YAAY,EAAE,2BAAuB;AASnD,MAAM,MAAM,0BAA0B,CACpC,OAAO,SAAS,iBAAiB,GAAG,iBAAiB,IACnD;IACF,QAAQ,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACrC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAQF,qBAAa,mBAAmB,CAC5B,OAAO,SAAS,iBAAiB,GAAG,iBAAiB,CAEvD,SAAQ,gBACR,YAAW,YAAY;;gBAoCX,IAAI,GAAE,0BAA0B,CAAC,OAAO,CAAM;IA+BpD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAM9B,SAAS,IAAI,OAAO;IAIpB,eAAe,IAAI,MAAM,GAAG,IAAI;IAI1B,cAAc,CAAC,EACnB,QAAe,GAChB,GAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAuDhD,kBAAkB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAoIrD;;;;;;OAMG;IACG,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;CAkI7C"}
|
|
@@ -13,17 +13,6 @@ export type PollingBlockTrackerOptions<Context extends ContextConstraint = Middl
|
|
|
13
13
|
};
|
|
14
14
|
export declare class PollingBlockTracker<Context extends ContextConstraint = MiddlewareContext> extends SafeEventEmitter implements BlockTracker {
|
|
15
15
|
#private;
|
|
16
|
-
private _isRunning;
|
|
17
|
-
private readonly _blockResetDuration;
|
|
18
|
-
private readonly _usePastBlocks;
|
|
19
|
-
private _currentBlock;
|
|
20
|
-
private _blockResetTimeout?;
|
|
21
|
-
private _pollingTimeout?;
|
|
22
|
-
private readonly _provider;
|
|
23
|
-
private readonly _pollingInterval;
|
|
24
|
-
private readonly _retryTimeout;
|
|
25
|
-
private readonly _keepEventLoopActive;
|
|
26
|
-
private readonly _setSkipCacheFlag;
|
|
27
16
|
constructor(opts?: PollingBlockTrackerOptions<Context>);
|
|
28
17
|
destroy(): Promise<void>;
|
|
29
18
|
isRunning(): boolean;
|
|
@@ -32,18 +21,6 @@ export declare class PollingBlockTracker<Context extends ContextConstraint = Mid
|
|
|
32
21
|
useCache?: boolean;
|
|
33
22
|
}): Promise<string>;
|
|
34
23
|
removeAllListeners(eventName?: string | symbol): this;
|
|
35
|
-
private _setupInternalEvents;
|
|
36
|
-
private _onNewListener;
|
|
37
|
-
private _onRemoveListener;
|
|
38
|
-
private _maybeStart;
|
|
39
|
-
private _maybeEnd;
|
|
40
|
-
private _getBlockTrackerEventCount;
|
|
41
|
-
private _shouldUseNewBlock;
|
|
42
|
-
private _newPotentialLatest;
|
|
43
|
-
private _setCurrentBlock;
|
|
44
|
-
private _setupBlockResetTimeout;
|
|
45
|
-
private _cancelBlockResetTimeout;
|
|
46
|
-
private _resetCurrentBlock;
|
|
47
24
|
/**
|
|
48
25
|
* Checks for the latest block, updates the internal state, and returns the
|
|
49
26
|
* value immediately rather than waiting for the next polling interval.
|
|
@@ -52,15 +29,5 @@ export declare class PollingBlockTracker<Context extends ContextConstraint = Mid
|
|
|
52
29
|
* @returns A promise that resolves to the latest block number.
|
|
53
30
|
*/
|
|
54
31
|
checkForLatestBlock(): Promise<string>;
|
|
55
|
-
private _start;
|
|
56
|
-
private _end;
|
|
57
|
-
private _updateLatestBlock;
|
|
58
|
-
private _fetchLatestBlock;
|
|
59
|
-
/**
|
|
60
|
-
* The core polling function that runs after each interval.
|
|
61
|
-
* Updates the latest block and then queues the next update.
|
|
62
|
-
*/
|
|
63
|
-
private _updateAndQueue;
|
|
64
|
-
_clearPollingTimeout(): void;
|
|
65
32
|
}
|
|
66
33
|
//# sourceMappingURL=PollingBlockTracker.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PollingBlockTracker.d.mts","sourceRoot":"","sources":["../src/PollingBlockTracker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,wCAAwC;AACxE,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EAClB,qCAAqC;AACtC,OAAO,gBAAgB,qCAAqC;AAK5D,OAAO,KAAK,EAAE,YAAY,EAAE,2BAAuB;AASnD,MAAM,MAAM,0BAA0B,CACpC,OAAO,SAAS,iBAAiB,GAAG,iBAAiB,IACnD;IACF,QAAQ,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACrC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAQF,qBAAa,mBAAmB,CAC5B,OAAO,SAAS,iBAAiB,GAAG,iBAAiB,CAEvD,SAAQ,gBACR,YAAW,YAAY;;
|
|
1
|
+
{"version":3,"file":"PollingBlockTracker.d.mts","sourceRoot":"","sources":["../src/PollingBlockTracker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,wCAAwC;AACxE,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EAClB,qCAAqC;AACtC,OAAO,gBAAgB,qCAAqC;AAK5D,OAAO,KAAK,EAAE,YAAY,EAAE,2BAAuB;AASnD,MAAM,MAAM,0BAA0B,CACpC,OAAO,SAAS,iBAAiB,GAAG,iBAAiB,IACnD;IACF,QAAQ,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACrC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAQF,qBAAa,mBAAmB,CAC5B,OAAO,SAAS,iBAAiB,GAAG,iBAAiB,CAEvD,SAAQ,gBACR,YAAW,YAAY;;gBAoCX,IAAI,GAAE,0BAA0B,CAAC,OAAO,CAAM;IA+BpD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAM9B,SAAS,IAAI,OAAO;IAIpB,eAAe,IAAI,MAAM,GAAG,IAAI;IAI1B,cAAc,CAAC,EACnB,QAAe,GAChB,GAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAuDhD,kBAAkB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAoIrD;;;;;;OAMG;IACG,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;CAkI7C"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
2
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
3
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
4
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
5
|
-
};
|
|
6
1
|
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
7
2
|
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
8
3
|
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
9
4
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
10
5
|
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
11
6
|
};
|
|
12
|
-
var
|
|
7
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
8
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
9
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
|
+
};
|
|
12
|
+
var _PollingBlockTracker_instances, _PollingBlockTracker_isRunning, _PollingBlockTracker_blockResetDuration, _PollingBlockTracker_usePastBlocks, _PollingBlockTracker_currentBlock, _PollingBlockTracker_blockResetTimeout, _PollingBlockTracker_pollingTimeout, _PollingBlockTracker_provider, _PollingBlockTracker_pollingInterval, _PollingBlockTracker_retryTimeout, _PollingBlockTracker_keepEventLoopActive, _PollingBlockTracker_setSkipCacheFlag, _PollingBlockTracker_internalEventListeners, _PollingBlockTracker_pendingLatestBlock, _PollingBlockTracker_pendingFetch, _PollingBlockTracker_onNewListener, _PollingBlockTracker_onRemoveListener, _PollingBlockTracker_resetCurrentBlock, _PollingBlockTracker_setupInternalEvents, _PollingBlockTracker_onNewListenerUnbound, _PollingBlockTracker_onRemoveListenerUnbound, _PollingBlockTracker_maybeStart, _PollingBlockTracker_maybeEnd, _PollingBlockTracker_getBlockTrackerEventCount, _PollingBlockTracker_shouldUseNewBlock, _PollingBlockTracker_newPotentialLatest, _PollingBlockTracker_setCurrentBlock, _PollingBlockTracker_setupBlockResetTimeout, _PollingBlockTracker_cancelBlockResetTimeout, _PollingBlockTracker_resetCurrentBlockUnbound, _PollingBlockTracker_start, _PollingBlockTracker_end, _PollingBlockTracker_updateLatestBlock, _PollingBlockTracker_fetchLatestBlock, _PollingBlockTracker_updateAndQueue, _PollingBlockTracker_clearPollingTimeout, _PollingBlockTracker_addInternalListener, _PollingBlockTracker_removeInternalListener, _PollingBlockTracker_rejectPendingLatestBlock;
|
|
13
13
|
function $importDefault(module) {
|
|
14
14
|
if (module?.__esModule) {
|
|
15
15
|
return module.default;
|
|
@@ -33,44 +33,57 @@ export class PollingBlockTracker extends SafeEventEmitter {
|
|
|
33
33
|
}
|
|
34
34
|
super();
|
|
35
35
|
_PollingBlockTracker_instances.add(this);
|
|
36
|
+
_PollingBlockTracker_isRunning.set(this, void 0);
|
|
37
|
+
_PollingBlockTracker_blockResetDuration.set(this, void 0);
|
|
38
|
+
_PollingBlockTracker_usePastBlocks.set(this, void 0);
|
|
39
|
+
_PollingBlockTracker_currentBlock.set(this, void 0);
|
|
40
|
+
_PollingBlockTracker_blockResetTimeout.set(this, void 0);
|
|
41
|
+
_PollingBlockTracker_pollingTimeout.set(this, void 0);
|
|
42
|
+
_PollingBlockTracker_provider.set(this, void 0);
|
|
43
|
+
_PollingBlockTracker_pollingInterval.set(this, void 0);
|
|
44
|
+
_PollingBlockTracker_retryTimeout.set(this, void 0);
|
|
45
|
+
_PollingBlockTracker_keepEventLoopActive.set(this, void 0);
|
|
46
|
+
_PollingBlockTracker_setSkipCacheFlag.set(this, void 0);
|
|
36
47
|
_PollingBlockTracker_internalEventListeners.set(this, []);
|
|
37
48
|
_PollingBlockTracker_pendingLatestBlock.set(this, void 0);
|
|
38
49
|
_PollingBlockTracker_pendingFetch.set(this, void 0);
|
|
50
|
+
_PollingBlockTracker_onNewListener.set(this, void 0);
|
|
51
|
+
_PollingBlockTracker_onRemoveListener.set(this, void 0);
|
|
52
|
+
_PollingBlockTracker_resetCurrentBlock.set(this, void 0);
|
|
39
53
|
// config
|
|
40
|
-
this
|
|
41
|
-
this
|
|
54
|
+
__classPrivateFieldSet(this, _PollingBlockTracker_blockResetDuration, opts.blockResetDuration ?? 20 * sec, "f");
|
|
55
|
+
__classPrivateFieldSet(this, _PollingBlockTracker_usePastBlocks, opts.usePastBlocks ?? false, "f");
|
|
42
56
|
// state
|
|
43
|
-
this
|
|
44
|
-
this
|
|
57
|
+
__classPrivateFieldSet(this, _PollingBlockTracker_currentBlock, null, "f");
|
|
58
|
+
__classPrivateFieldSet(this, _PollingBlockTracker_isRunning, false, "f");
|
|
45
59
|
// bind functions for internal use
|
|
46
|
-
this
|
|
47
|
-
this
|
|
48
|
-
this
|
|
60
|
+
__classPrivateFieldSet(this, _PollingBlockTracker_onNewListener, __classPrivateFieldGet(this, _PollingBlockTracker_instances, "m", _PollingBlockTracker_onNewListenerUnbound).bind(this), "f");
|
|
61
|
+
__classPrivateFieldSet(this, _PollingBlockTracker_onRemoveListener, __classPrivateFieldGet(this, _PollingBlockTracker_instances, "m", _PollingBlockTracker_onRemoveListenerUnbound).bind(this), "f");
|
|
62
|
+
__classPrivateFieldSet(this, _PollingBlockTracker_resetCurrentBlock, __classPrivateFieldGet(this, _PollingBlockTracker_instances, "m", _PollingBlockTracker_resetCurrentBlockUnbound).bind(this), "f");
|
|
49
63
|
// listen for handler changes
|
|
50
|
-
this.
|
|
64
|
+
__classPrivateFieldGet(this, _PollingBlockTracker_instances, "m", _PollingBlockTracker_setupInternalEvents).call(this);
|
|
51
65
|
// config
|
|
52
|
-
this
|
|
53
|
-
this
|
|
54
|
-
this
|
|
55
|
-
this.
|
|
56
|
-
|
|
57
|
-
this._setSkipCacheFlag = opts.setSkipCacheFlag || false;
|
|
66
|
+
__classPrivateFieldSet(this, _PollingBlockTracker_provider, opts.provider, "f");
|
|
67
|
+
__classPrivateFieldSet(this, _PollingBlockTracker_pollingInterval, opts.pollingInterval ?? 20 * sec, "f");
|
|
68
|
+
__classPrivateFieldSet(this, _PollingBlockTracker_retryTimeout, opts.retryTimeout ?? __classPrivateFieldGet(this, _PollingBlockTracker_pollingInterval, "f") / 10, "f");
|
|
69
|
+
__classPrivateFieldSet(this, _PollingBlockTracker_keepEventLoopActive, opts.keepEventLoopActive ?? true, "f");
|
|
70
|
+
__classPrivateFieldSet(this, _PollingBlockTracker_setSkipCacheFlag, opts.setSkipCacheFlag ?? false, "f");
|
|
58
71
|
}
|
|
59
72
|
async destroy() {
|
|
60
|
-
this.
|
|
73
|
+
__classPrivateFieldGet(this, _PollingBlockTracker_instances, "m", _PollingBlockTracker_cancelBlockResetTimeout).call(this);
|
|
61
74
|
super.removeAllListeners();
|
|
62
|
-
this.
|
|
75
|
+
__classPrivateFieldGet(this, _PollingBlockTracker_instances, "m", _PollingBlockTracker_maybeEnd).call(this);
|
|
63
76
|
}
|
|
64
77
|
isRunning() {
|
|
65
|
-
return this
|
|
78
|
+
return __classPrivateFieldGet(this, _PollingBlockTracker_isRunning, "f");
|
|
66
79
|
}
|
|
67
80
|
getCurrentBlock() {
|
|
68
|
-
return this
|
|
81
|
+
return __classPrivateFieldGet(this, _PollingBlockTracker_currentBlock, "f");
|
|
69
82
|
}
|
|
70
83
|
async getLatestBlock({ useCache = true, } = {}) {
|
|
71
84
|
// return if available
|
|
72
|
-
if (this
|
|
73
|
-
return this
|
|
85
|
+
if (__classPrivateFieldGet(this, _PollingBlockTracker_currentBlock, "f") && useCache) {
|
|
86
|
+
return __classPrivateFieldGet(this, _PollingBlockTracker_currentBlock, "f");
|
|
74
87
|
}
|
|
75
88
|
if (__classPrivateFieldGet(this, _PollingBlockTracker_pendingLatestBlock, "f")) {
|
|
76
89
|
return await __classPrivateFieldGet(this, _PollingBlockTracker_pendingLatestBlock, "f").promise;
|
|
@@ -79,7 +92,7 @@ export class PollingBlockTracker extends SafeEventEmitter {
|
|
|
79
92
|
suppressUnhandledRejection: true,
|
|
80
93
|
});
|
|
81
94
|
__classPrivateFieldSet(this, _PollingBlockTracker_pendingLatestBlock, { reject, promise }, "f");
|
|
82
|
-
if (this
|
|
95
|
+
if (__classPrivateFieldGet(this, _PollingBlockTracker_isRunning, "f")) {
|
|
83
96
|
try {
|
|
84
97
|
// If tracker is running, wait for next block with timeout
|
|
85
98
|
const onLatestBlock = (value) => {
|
|
@@ -102,7 +115,7 @@ export class PollingBlockTracker extends SafeEventEmitter {
|
|
|
102
115
|
else {
|
|
103
116
|
// If tracker isn't running, just fetch directly
|
|
104
117
|
try {
|
|
105
|
-
const latestBlock = await this.
|
|
118
|
+
const latestBlock = await __classPrivateFieldGet(this, _PollingBlockTracker_instances, "m", _PollingBlockTracker_updateLatestBlock).call(this);
|
|
106
119
|
resolve(latestBlock);
|
|
107
120
|
return latestBlock;
|
|
108
121
|
}
|
|
@@ -116,11 +129,11 @@ export class PollingBlockTracker extends SafeEventEmitter {
|
|
|
116
129
|
// achieve this by delaying the unsetting of the #pendingLatestBlock promise.
|
|
117
130
|
setTimeout(() => {
|
|
118
131
|
__classPrivateFieldSet(this, _PollingBlockTracker_pendingLatestBlock, undefined, "f");
|
|
119
|
-
}, this
|
|
132
|
+
}, __classPrivateFieldGet(this, _PollingBlockTracker_pollingInterval, "f"));
|
|
120
133
|
}
|
|
121
134
|
}
|
|
122
135
|
}
|
|
123
|
-
//
|
|
136
|
+
// Don't allow module consumer to remove our internal event listeners.
|
|
124
137
|
removeAllListeners(eventName) {
|
|
125
138
|
// perform default behavior, preserve fn arity
|
|
126
139
|
if (eventName) {
|
|
@@ -130,208 +143,191 @@ export class PollingBlockTracker extends SafeEventEmitter {
|
|
|
130
143
|
super.removeAllListeners();
|
|
131
144
|
}
|
|
132
145
|
// re-add internal events
|
|
133
|
-
this.
|
|
146
|
+
__classPrivateFieldGet(this, _PollingBlockTracker_instances, "m", _PollingBlockTracker_setupInternalEvents).call(this);
|
|
134
147
|
// trigger stop check just in case
|
|
135
|
-
this.
|
|
148
|
+
__classPrivateFieldGet(this, _PollingBlockTracker_onRemoveListener, "f").call(this);
|
|
136
149
|
return this;
|
|
137
150
|
}
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
if (blockTrackerEvents.includes(eventName)) {
|
|
149
|
-
// TODO: Handle dangling promise
|
|
150
|
-
this._maybeStart();
|
|
151
|
-
}
|
|
151
|
+
/**
|
|
152
|
+
* Checks for the latest block, updates the internal state, and returns the
|
|
153
|
+
* value immediately rather than waiting for the next polling interval.
|
|
154
|
+
*
|
|
155
|
+
* @deprecated Use {@link getLatestBlock} instead.
|
|
156
|
+
* @returns A promise that resolves to the latest block number.
|
|
157
|
+
*/
|
|
158
|
+
async checkForLatestBlock() {
|
|
159
|
+
await __classPrivateFieldGet(this, _PollingBlockTracker_instances, "m", _PollingBlockTracker_updateLatestBlock).call(this);
|
|
160
|
+
return await this.getLatestBlock();
|
|
152
161
|
}
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
162
|
+
}
|
|
163
|
+
_PollingBlockTracker_isRunning = new WeakMap(), _PollingBlockTracker_blockResetDuration = new WeakMap(), _PollingBlockTracker_usePastBlocks = new WeakMap(), _PollingBlockTracker_currentBlock = new WeakMap(), _PollingBlockTracker_blockResetTimeout = new WeakMap(), _PollingBlockTracker_pollingTimeout = new WeakMap(), _PollingBlockTracker_provider = new WeakMap(), _PollingBlockTracker_pollingInterval = new WeakMap(), _PollingBlockTracker_retryTimeout = new WeakMap(), _PollingBlockTracker_keepEventLoopActive = new WeakMap(), _PollingBlockTracker_setSkipCacheFlag = new WeakMap(), _PollingBlockTracker_internalEventListeners = new WeakMap(), _PollingBlockTracker_pendingLatestBlock = new WeakMap(), _PollingBlockTracker_pendingFetch = new WeakMap(), _PollingBlockTracker_onNewListener = new WeakMap(), _PollingBlockTracker_onRemoveListener = new WeakMap(), _PollingBlockTracker_resetCurrentBlock = new WeakMap(), _PollingBlockTracker_instances = new WeakSet(), _PollingBlockTracker_setupInternalEvents = function _PollingBlockTracker_setupInternalEvents() {
|
|
164
|
+
// first remove listeners for idempotence
|
|
165
|
+
this.removeListener('newListener', __classPrivateFieldGet(this, _PollingBlockTracker_onNewListener, "f"));
|
|
166
|
+
this.removeListener('removeListener', __classPrivateFieldGet(this, _PollingBlockTracker_onRemoveListener, "f"));
|
|
167
|
+
// then add them
|
|
168
|
+
this.on('newListener', __classPrivateFieldGet(this, _PollingBlockTracker_onNewListener, "f"));
|
|
169
|
+
this.on('removeListener', __classPrivateFieldGet(this, _PollingBlockTracker_onRemoveListener, "f"));
|
|
170
|
+
}, _PollingBlockTracker_onNewListenerUnbound = function _PollingBlockTracker_onNewListenerUnbound(eventName) {
|
|
171
|
+
// `newListener` is called *before* the listener is added
|
|
172
|
+
if (blockTrackerEvents.includes(eventName)) {
|
|
173
|
+
// TODO: Handle dangling promise
|
|
174
|
+
__classPrivateFieldGet(this, _PollingBlockTracker_instances, "m", _PollingBlockTracker_maybeStart).call(this);
|
|
159
175
|
}
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
this._isRunning = true;
|
|
165
|
-
// cancel setting latest block to stale
|
|
166
|
-
this._cancelBlockResetTimeout();
|
|
167
|
-
this._start();
|
|
168
|
-
this.emit('_started');
|
|
176
|
+
}, _PollingBlockTracker_onRemoveListenerUnbound = function _PollingBlockTracker_onRemoveListenerUnbound() {
|
|
177
|
+
// `removeListener` is called *after* the listener is removed
|
|
178
|
+
if (__classPrivateFieldGet(this, _PollingBlockTracker_instances, "m", _PollingBlockTracker_getBlockTrackerEventCount).call(this) > 0) {
|
|
179
|
+
return;
|
|
169
180
|
}
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
this._isRunning = false;
|
|
175
|
-
this._setupBlockResetTimeout();
|
|
176
|
-
this._end();
|
|
177
|
-
__classPrivateFieldGet(this, _PollingBlockTracker_instances, "m", _PollingBlockTracker_rejectPendingLatestBlock).call(this, new Error('Block tracker destroyed'));
|
|
178
|
-
this.emit('_ended');
|
|
181
|
+
__classPrivateFieldGet(this, _PollingBlockTracker_instances, "m", _PollingBlockTracker_maybeEnd).call(this);
|
|
182
|
+
}, _PollingBlockTracker_maybeStart = function _PollingBlockTracker_maybeStart() {
|
|
183
|
+
if (__classPrivateFieldGet(this, _PollingBlockTracker_isRunning, "f")) {
|
|
184
|
+
return;
|
|
179
185
|
}
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
+
__classPrivateFieldSet(this, _PollingBlockTracker_isRunning, true, "f");
|
|
187
|
+
// cancel setting latest block to stale
|
|
188
|
+
__classPrivateFieldGet(this, _PollingBlockTracker_instances, "m", _PollingBlockTracker_cancelBlockResetTimeout).call(this);
|
|
189
|
+
__classPrivateFieldGet(this, _PollingBlockTracker_instances, "m", _PollingBlockTracker_start).call(this);
|
|
190
|
+
this.emit('_started');
|
|
191
|
+
}, _PollingBlockTracker_maybeEnd = function _PollingBlockTracker_maybeEnd() {
|
|
192
|
+
if (!__classPrivateFieldGet(this, _PollingBlockTracker_isRunning, "f")) {
|
|
193
|
+
return;
|
|
186
194
|
}
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
195
|
+
__classPrivateFieldSet(this, _PollingBlockTracker_isRunning, false, "f");
|
|
196
|
+
__classPrivateFieldGet(this, _PollingBlockTracker_instances, "m", _PollingBlockTracker_setupBlockResetTimeout).call(this);
|
|
197
|
+
__classPrivateFieldGet(this, _PollingBlockTracker_instances, "m", _PollingBlockTracker_end).call(this);
|
|
198
|
+
__classPrivateFieldGet(this, _PollingBlockTracker_instances, "m", _PollingBlockTracker_rejectPendingLatestBlock).call(this, new Error('Block tracker destroyed'));
|
|
199
|
+
this.emit('_ended');
|
|
200
|
+
}, _PollingBlockTracker_getBlockTrackerEventCount = function _PollingBlockTracker_getBlockTrackerEventCount() {
|
|
201
|
+
return (blockTrackerEvents
|
|
202
|
+
.map((eventName) => this.listeners(eventName))
|
|
203
|
+
.flat()
|
|
204
|
+
// internal listeners are not included in the count
|
|
205
|
+
.filter((listener) => __classPrivateFieldGet(this, _PollingBlockTracker_internalEventListeners, "f").every((internalListener) => !Object.is(internalListener, listener))).length);
|
|
206
|
+
}, _PollingBlockTracker_shouldUseNewBlock = function _PollingBlockTracker_shouldUseNewBlock(newBlock) {
|
|
207
|
+
const currentBlock = __classPrivateFieldGet(this, _PollingBlockTracker_currentBlock, "f");
|
|
208
|
+
if (!currentBlock) {
|
|
209
|
+
return true;
|
|
196
210
|
}
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
211
|
+
const newBlockInt = hexToInt(newBlock);
|
|
212
|
+
const currentBlockInt = hexToInt(currentBlock);
|
|
213
|
+
return ((__classPrivateFieldGet(this, _PollingBlockTracker_usePastBlocks, "f") && newBlockInt < currentBlockInt) ||
|
|
214
|
+
newBlockInt > currentBlockInt);
|
|
215
|
+
}, _PollingBlockTracker_newPotentialLatest = function _PollingBlockTracker_newPotentialLatest(newBlock) {
|
|
216
|
+
if (!__classPrivateFieldGet(this, _PollingBlockTracker_instances, "m", _PollingBlockTracker_shouldUseNewBlock).call(this, newBlock)) {
|
|
217
|
+
return;
|
|
202
218
|
}
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
219
|
+
__classPrivateFieldGet(this, _PollingBlockTracker_instances, "m", _PollingBlockTracker_setCurrentBlock).call(this, newBlock);
|
|
220
|
+
}, _PollingBlockTracker_setCurrentBlock = function _PollingBlockTracker_setCurrentBlock(newBlock) {
|
|
221
|
+
const oldBlock = __classPrivateFieldGet(this, _PollingBlockTracker_currentBlock, "f");
|
|
222
|
+
__classPrivateFieldSet(this, _PollingBlockTracker_currentBlock, newBlock, "f");
|
|
223
|
+
this.emit('latest', newBlock);
|
|
224
|
+
this.emit('sync', { oldBlock, newBlock });
|
|
225
|
+
}, _PollingBlockTracker_setupBlockResetTimeout = function _PollingBlockTracker_setupBlockResetTimeout() {
|
|
226
|
+
// clear any existing timeout
|
|
227
|
+
__classPrivateFieldGet(this, _PollingBlockTracker_instances, "m", _PollingBlockTracker_cancelBlockResetTimeout).call(this);
|
|
228
|
+
// clear latest block when stale
|
|
229
|
+
__classPrivateFieldSet(this, _PollingBlockTracker_blockResetTimeout, setTimeout(__classPrivateFieldGet(this, _PollingBlockTracker_resetCurrentBlock, "f"), __classPrivateFieldGet(this, _PollingBlockTracker_blockResetDuration, "f")), "f");
|
|
230
|
+
// nodejs - dont hold process open
|
|
231
|
+
if (__classPrivateFieldGet(this, _PollingBlockTracker_blockResetTimeout, "f").unref) {
|
|
232
|
+
__classPrivateFieldGet(this, _PollingBlockTracker_blockResetTimeout, "f").unref();
|
|
208
233
|
}
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
this
|
|
212
|
-
// clear latest block when stale
|
|
213
|
-
this._blockResetTimeout = setTimeout(this._resetCurrentBlock, this._blockResetDuration);
|
|
214
|
-
// nodejs - dont hold process open
|
|
215
|
-
if (this._blockResetTimeout.unref) {
|
|
216
|
-
this._blockResetTimeout.unref();
|
|
217
|
-
}
|
|
234
|
+
}, _PollingBlockTracker_cancelBlockResetTimeout = function _PollingBlockTracker_cancelBlockResetTimeout() {
|
|
235
|
+
if (__classPrivateFieldGet(this, _PollingBlockTracker_blockResetTimeout, "f")) {
|
|
236
|
+
clearTimeout(__classPrivateFieldGet(this, _PollingBlockTracker_blockResetTimeout, "f"));
|
|
218
237
|
}
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
238
|
+
}, _PollingBlockTracker_resetCurrentBlockUnbound = function _PollingBlockTracker_resetCurrentBlockUnbound() {
|
|
239
|
+
__classPrivateFieldSet(this, _PollingBlockTracker_currentBlock, null, "f");
|
|
240
|
+
}, _PollingBlockTracker_start = function _PollingBlockTracker_start() {
|
|
241
|
+
// Intentionally not awaited as this starts the polling via a timeout chain.
|
|
242
|
+
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
243
|
+
__classPrivateFieldGet(this, _PollingBlockTracker_instances, "m", _PollingBlockTracker_updateAndQueue).call(this);
|
|
244
|
+
}, _PollingBlockTracker_end = function _PollingBlockTracker_end() {
|
|
245
|
+
__classPrivateFieldGet(this, _PollingBlockTracker_instances, "m", _PollingBlockTracker_clearPollingTimeout).call(this);
|
|
246
|
+
}, _PollingBlockTracker_updateLatestBlock = async function _PollingBlockTracker_updateLatestBlock() {
|
|
247
|
+
// fetch + set latest block
|
|
248
|
+
const latestBlock = await __classPrivateFieldGet(this, _PollingBlockTracker_instances, "m", _PollingBlockTracker_fetchLatestBlock).call(this);
|
|
249
|
+
__classPrivateFieldGet(this, _PollingBlockTracker_instances, "m", _PollingBlockTracker_newPotentialLatest).call(this, latestBlock);
|
|
250
|
+
if (!__classPrivateFieldGet(this, _PollingBlockTracker_isRunning, "f")) {
|
|
251
|
+
// Ensure the one-time update is eventually reset once it's stale
|
|
252
|
+
__classPrivateFieldGet(this, _PollingBlockTracker_instances, "m", _PollingBlockTracker_setupBlockResetTimeout).call(this);
|
|
223
253
|
}
|
|
224
|
-
|
|
225
|
-
|
|
254
|
+
// _newPotentialLatest() ensures that this._currentBlock is not null
|
|
255
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
256
|
+
return __classPrivateFieldGet(this, _PollingBlockTracker_currentBlock, "f");
|
|
257
|
+
}, _PollingBlockTracker_fetchLatestBlock = async function _PollingBlockTracker_fetchLatestBlock() {
|
|
258
|
+
// If there's already a pending fetch, reuse it
|
|
259
|
+
if (__classPrivateFieldGet(this, _PollingBlockTracker_pendingFetch, "f")) {
|
|
260
|
+
return await __classPrivateFieldGet(this, _PollingBlockTracker_pendingFetch, "f").promise;
|
|
226
261
|
}
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
262
|
+
// Create a new deferred promise for this request
|
|
263
|
+
const { promise, resolve, reject } = createDeferredPromise({
|
|
264
|
+
suppressUnhandledRejection: true,
|
|
265
|
+
});
|
|
266
|
+
__classPrivateFieldSet(this, _PollingBlockTracker_pendingFetch, { reject, promise }, "f");
|
|
267
|
+
try {
|
|
268
|
+
const req = {
|
|
269
|
+
jsonrpc: '2.0',
|
|
270
|
+
id: createRandomId(),
|
|
271
|
+
method: 'eth_blockNumber',
|
|
272
|
+
params: [],
|
|
273
|
+
};
|
|
274
|
+
if (__classPrivateFieldGet(this, _PollingBlockTracker_setSkipCacheFlag, "f")) {
|
|
275
|
+
req.skipCache = true;
|
|
276
|
+
}
|
|
277
|
+
log('Making request', req);
|
|
278
|
+
const result = await __classPrivateFieldGet(this, _PollingBlockTracker_provider, "f").request(req);
|
|
279
|
+
log('Got result', result);
|
|
280
|
+
resolve(result);
|
|
281
|
+
return result;
|
|
237
282
|
}
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
this.
|
|
283
|
+
catch (error) {
|
|
284
|
+
log('Encountered error fetching block', getErrorMessage(error));
|
|
285
|
+
reject(error);
|
|
286
|
+
__classPrivateFieldGet(this, _PollingBlockTracker_instances, "m", _PollingBlockTracker_rejectPendingLatestBlock).call(this, error);
|
|
287
|
+
throw error;
|
|
242
288
|
}
|
|
243
|
-
|
|
244
|
-
this
|
|
289
|
+
finally {
|
|
290
|
+
__classPrivateFieldSet(this, _PollingBlockTracker_pendingFetch, undefined, "f");
|
|
245
291
|
}
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
256
|
-
return this._currentBlock;
|
|
292
|
+
}, _PollingBlockTracker_updateAndQueue =
|
|
293
|
+
/**
|
|
294
|
+
* The core polling function that runs after each interval.
|
|
295
|
+
* Updates the latest block and then queues the next update.
|
|
296
|
+
*/
|
|
297
|
+
async function _PollingBlockTracker_updateAndQueue() {
|
|
298
|
+
let interval = __classPrivateFieldGet(this, _PollingBlockTracker_pollingInterval, "f");
|
|
299
|
+
try {
|
|
300
|
+
await __classPrivateFieldGet(this, _PollingBlockTracker_instances, "m", _PollingBlockTracker_updateLatestBlock).call(this);
|
|
257
301
|
}
|
|
258
|
-
|
|
259
|
-
// If there's already a pending fetch, reuse it
|
|
260
|
-
if (__classPrivateFieldGet(this, _PollingBlockTracker_pendingFetch, "f")) {
|
|
261
|
-
return await __classPrivateFieldGet(this, _PollingBlockTracker_pendingFetch, "f").promise;
|
|
262
|
-
}
|
|
263
|
-
// Create a new deferred promise for this request
|
|
264
|
-
const { promise, resolve, reject } = createDeferredPromise({
|
|
265
|
-
suppressUnhandledRejection: true,
|
|
266
|
-
});
|
|
267
|
-
__classPrivateFieldSet(this, _PollingBlockTracker_pendingFetch, { reject, promise }, "f");
|
|
302
|
+
catch (error) {
|
|
268
303
|
try {
|
|
269
|
-
|
|
270
|
-
jsonrpc: '2.0',
|
|
271
|
-
id: createRandomId(),
|
|
272
|
-
method: 'eth_blockNumber',
|
|
273
|
-
params: [],
|
|
274
|
-
};
|
|
275
|
-
if (this._setSkipCacheFlag) {
|
|
276
|
-
req.skipCache = true;
|
|
277
|
-
}
|
|
278
|
-
log('Making request', req);
|
|
279
|
-
const result = await this._provider.request(req);
|
|
280
|
-
log('Got result', result);
|
|
281
|
-
resolve(result);
|
|
282
|
-
return result;
|
|
304
|
+
this.emit('error', error);
|
|
283
305
|
}
|
|
284
|
-
catch
|
|
285
|
-
|
|
286
|
-
reject(error);
|
|
287
|
-
__classPrivateFieldGet(this, _PollingBlockTracker_instances, "m", _PollingBlockTracker_rejectPendingLatestBlock).call(this, error);
|
|
288
|
-
throw error;
|
|
289
|
-
}
|
|
290
|
-
finally {
|
|
291
|
-
__classPrivateFieldSet(this, _PollingBlockTracker_pendingFetch, undefined, "f");
|
|
306
|
+
catch {
|
|
307
|
+
console.error(`Error updating latest block: ${getErrorMessage(error)}`);
|
|
292
308
|
}
|
|
309
|
+
interval = __classPrivateFieldGet(this, _PollingBlockTracker_retryTimeout, "f");
|
|
293
310
|
}
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
* Updates the latest block and then queues the next update.
|
|
297
|
-
*/
|
|
298
|
-
async _updateAndQueue() {
|
|
299
|
-
let interval = this._pollingInterval;
|
|
300
|
-
try {
|
|
301
|
-
await this._updateLatestBlock();
|
|
302
|
-
}
|
|
303
|
-
catch (error) {
|
|
304
|
-
try {
|
|
305
|
-
this.emit('error', error);
|
|
306
|
-
}
|
|
307
|
-
catch {
|
|
308
|
-
console.error(`Error updating latest block: ${getErrorMessage(error)}`);
|
|
309
|
-
}
|
|
310
|
-
interval = this._retryTimeout;
|
|
311
|
-
}
|
|
312
|
-
if (!this._isRunning) {
|
|
313
|
-
return;
|
|
314
|
-
}
|
|
315
|
-
this._clearPollingTimeout();
|
|
316
|
-
const timeoutRef = setTimeout(() => {
|
|
317
|
-
// Intentionally not awaited as this just continues the polling loop.
|
|
318
|
-
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
319
|
-
this._updateAndQueue();
|
|
320
|
-
}, interval);
|
|
321
|
-
if (timeoutRef.unref && !this._keepEventLoopActive) {
|
|
322
|
-
timeoutRef.unref();
|
|
323
|
-
}
|
|
324
|
-
this._pollingTimeout = timeoutRef;
|
|
325
|
-
this.emit('_waitingForNextIteration');
|
|
311
|
+
if (!__classPrivateFieldGet(this, _PollingBlockTracker_isRunning, "f")) {
|
|
312
|
+
return;
|
|
326
313
|
}
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
314
|
+
__classPrivateFieldGet(this, _PollingBlockTracker_instances, "m", _PollingBlockTracker_clearPollingTimeout).call(this);
|
|
315
|
+
const timeoutRef = setTimeout(() => {
|
|
316
|
+
// Intentionally not awaited as this just continues the polling loop.
|
|
317
|
+
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
318
|
+
__classPrivateFieldGet(this, _PollingBlockTracker_instances, "m", _PollingBlockTracker_updateAndQueue).call(this);
|
|
319
|
+
}, interval);
|
|
320
|
+
if (timeoutRef.unref && !__classPrivateFieldGet(this, _PollingBlockTracker_keepEventLoopActive, "f")) {
|
|
321
|
+
timeoutRef.unref();
|
|
332
322
|
}
|
|
333
|
-
|
|
334
|
-
|
|
323
|
+
__classPrivateFieldSet(this, _PollingBlockTracker_pollingTimeout, timeoutRef, "f");
|
|
324
|
+
this.emit('_waitingForNextIteration');
|
|
325
|
+
}, _PollingBlockTracker_clearPollingTimeout = function _PollingBlockTracker_clearPollingTimeout() {
|
|
326
|
+
if (__classPrivateFieldGet(this, _PollingBlockTracker_pollingTimeout, "f")) {
|
|
327
|
+
clearTimeout(__classPrivateFieldGet(this, _PollingBlockTracker_pollingTimeout, "f"));
|
|
328
|
+
__classPrivateFieldSet(this, _PollingBlockTracker_pollingTimeout, undefined, "f");
|
|
329
|
+
}
|
|
330
|
+
}, _PollingBlockTracker_addInternalListener = function _PollingBlockTracker_addInternalListener(listener) {
|
|
335
331
|
__classPrivateFieldGet(this, _PollingBlockTracker_internalEventListeners, "f").push(listener);
|
|
336
332
|
}, _PollingBlockTracker_removeInternalListener = function _PollingBlockTracker_removeInternalListener(listener) {
|
|
337
333
|
__classPrivateFieldGet(this, _PollingBlockTracker_internalEventListeners, "f").splice(__classPrivateFieldGet(this, _PollingBlockTracker_internalEventListeners, "f").indexOf(listener), 1);
|