| 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
 
 
  |