| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 | "use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.BlockConnectionSubscriber = void 0;const index_js_1 = require("../utils/index.js");/** *  @TODO * *  @_docloc: api/providers/abstract-provider */class BlockConnectionSubscriber {    #provider;    #blockNumber;    #running;    #filterId;    constructor(provider) {        this.#provider = provider;        this.#blockNumber = -2;        this.#running = false;        this.#filterId = null;    }    start() {        if (this.#running) {            return;        }        this.#running = true;        this.#filterId = this.#provider._subscribe(["newHeads"], (result) => {            const blockNumber = (0, index_js_1.getNumber)(result.number);            const initial = (this.#blockNumber === -2) ? blockNumber : (this.#blockNumber + 1);            for (let b = initial; b <= blockNumber; b++) {                this.#provider.emit("block", b);            }            this.#blockNumber = blockNumber;        });    }    stop() {        if (!this.#running) {            return;        }        this.#running = false;        if (this.#filterId != null) {            this.#provider._unsubscribe(this.#filterId);            this.#filterId = null;        }    }    pause(dropWhilePaused) {        if (dropWhilePaused) {            this.#blockNumber = -2;        }        this.stop();    }    resume() {        this.start();    }}exports.BlockConnectionSubscriber = BlockConnectionSubscriber;//# sourceMappingURL=subscriber-connection.js.map
 |