| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 | import { getNumber } from "../utils/index.js";/** *  @TODO * *  @_docloc: api/providers/abstract-provider */export 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 = 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();    }}//# sourceMappingURL=subscriber-connection.js.map
 |