diff --git a/backend/src/api/websocket-handler.ts b/backend/src/api/websocket-handler.ts index a20088128..7503ba1b9 100644 --- a/backend/src/api/websocket-handler.ts +++ b/backend/src/api/websocket-handler.ts @@ -83,6 +83,7 @@ class WebsocketHandler { const _blocks = blocks.getBlocks().slice(-config.MEMPOOL.INITIAL_BLOCKS_AMOUNT); const da = difficultyAdjustment.getDifficultyAdjustment(); this.updateSocketDataFields({ + 'backend': config.MEMPOOL.BACKEND, 'mempoolInfo': memPool.getMempoolInfo(), 'vBytesPerSecond': memPool.getVBytesPerSecond(), 'blocks': _blocks, diff --git a/frontend/src/app/components/address/address.component.html b/frontend/src/app/components/address/address.component.html index e4c49d4c5..531b97464 100644 --- a/frontend/src/app/components/address/address.component.html +++ b/frontend/src/app/components/address/address.component.html @@ -51,7 +51,7 @@ - +
diff --git a/frontend/src/app/components/address/address.component.ts b/frontend/src/app/components/address/address.component.ts index 8b325e653..614be930c 100644 --- a/frontend/src/app/components/address/address.component.ts +++ b/frontend/src/app/components/address/address.component.ts @@ -44,7 +44,7 @@ export class AddressComponent implements OnInit, OnDestroy { private route: ActivatedRoute, private electrsApiService: ElectrsApiService, private websocketService: WebsocketService, - private stateService: StateService, + public stateService: StateService, private audioService: AudioService, private apiService: ApiService, private seoService: SeoService, diff --git a/frontend/src/app/interfaces/websocket.interface.ts b/frontend/src/app/interfaces/websocket.interface.ts index 9553fef02..7b98115d8 100644 --- a/frontend/src/app/interfaces/websocket.interface.ts +++ b/frontend/src/app/interfaces/websocket.interface.ts @@ -4,6 +4,7 @@ import { Transaction } from './electrs.interface'; import { BlockExtended, DifficultyAdjustment, RbfTree } from './node-api.interface'; export interface WebsocketResponse { + backend?: 'esplora' | 'electrum' | 'none'; block?: BlockExtended; blocks?: BlockExtended[]; conversions?: any; diff --git a/frontend/src/app/services/state.service.ts b/frontend/src/app/services/state.service.ts index f9de61b69..951cd9131 100644 --- a/frontend/src/app/services/state.service.ts +++ b/frontend/src/app/services/state.service.ts @@ -92,6 +92,7 @@ const defaultEnv: Env = { export class StateService { isBrowser: boolean = isPlatformBrowser(this.platformId); isMempoolSpaceBuild = window['isMempoolSpaceBuild'] ?? false; + backend: 'esplora' | 'electrum' | 'none' = 'esplora'; network = ''; lightning = false; blockVSize: number; @@ -99,6 +100,7 @@ export class StateService { latestBlockHeight = -1; blocks: BlockExtended[] = []; + backend$ = new BehaviorSubject<'esplora' | 'electrum' | 'none'>('esplora'); networkChanged$ = new ReplaySubject(1); lightningChanged$ = new ReplaySubject(1); blocksSubject$ = new BehaviorSubject([]); @@ -257,6 +259,10 @@ export class StateService { const rateUnitPreference = this.storageService.getValue('rate-unit-preference'); this.rateUnits$ = new BehaviorSubject(rateUnitPreference || 'vb'); + + this.backend$.subscribe(backend => { + this.backend = backend; + }); } setNetworkBasedonUrl(url: string) { diff --git a/frontend/src/app/services/websocket.service.ts b/frontend/src/app/services/websocket.service.ts index 61ac15fd3..13cefc51d 100644 --- a/frontend/src/app/services/websocket.service.ts +++ b/frontend/src/app/services/websocket.service.ts @@ -62,6 +62,7 @@ export class WebsocketService { if (theInitData.body.blocks) { theInitData.body.blocks = theInitData.body.blocks.reverse(); } + this.stateService.backend$.next(theInitData.backend); this.stateService.isLoadingWebSocket$.next(false); this.handleResponse(theInitData.body); this.startSubscription(false, true); @@ -290,6 +291,10 @@ export class WebsocketService { handleResponse(response: WebsocketResponse) { let reinitBlocks = false; + if (response.backend) { + this.stateService.backend$.next(response.backend); + } + if (response.blocks && response.blocks.length) { const blocks = response.blocks; this.stateService.resetBlocks(blocks);