import { Injectable } from '@angular/core'; import { ReplaySubject, BehaviorSubject } from 'rxjs'; import { IMempoolInfo, IBlock, IProjectedBlock, ITransaction } from '../blockchain/interfaces'; export interface IMemPoolState { memPoolInfo: IMempoolInfo; txPerSecond: number; vBytesPerSecond: number; } export interface ITxTracking { enabled: boolean; tx: ITransaction | null; blockHeight: number; notFound: boolean; } @Injectable({ providedIn: 'root' }) export class MemPoolService { mempoolStats$ = new ReplaySubject(); isOffline$ = new ReplaySubject(); txIdSearch$ = new ReplaySubject(); conversions$ = new ReplaySubject(); mempoolWeight$ = new ReplaySubject(); txTracking$ = new BehaviorSubject({ enabled: false, tx: null, blockHeight: 0, notFound: false, }); blocks$ = new ReplaySubject(8); projectedBlocks$ = new BehaviorSubject([]); }