From 24e40b25fdf681a10a3a80015c24b413fbc01f44 Mon Sep 17 00:00:00 2001 From: softsimon Date: Sat, 25 Jul 2020 21:21:53 +0700 Subject: [PATCH] New config that lets frontend connect to a separate Bisq mempool backend. --- frontend/mempool-frontend-config.sample.json | 1 + frontend/src/app/app.constants.ts | 2 ++ frontend/src/app/services/api.service.ts | 3 ++- frontend/src/app/services/electrs-api.service.ts | 3 ++- frontend/src/app/services/websocket.service.ts | 5 +++-- 5 files changed, 10 insertions(+), 4 deletions(-) diff --git a/frontend/mempool-frontend-config.sample.json b/frontend/mempool-frontend-config.sample.json index 579250e88..0312fd054 100644 --- a/frontend/mempool-frontend-config.sample.json +++ b/frontend/mempool-frontend-config.sample.json @@ -2,6 +2,7 @@ "TESTNET_ENABLED": false, "LIQUID_ENABLED": false, "BISQ_ENABLED": false, + "BISQ_SEPARATE_BACKEND": false, "ELCTRS_ITEMS_PER_PAGE": 25, "KEEP_BLOCKS_AMOUNT": 8 } \ No newline at end of file diff --git a/frontend/src/app/app.constants.ts b/frontend/src/app/app.constants.ts index ab880cf9c..fb493de5a 100644 --- a/frontend/src/app/app.constants.ts +++ b/frontend/src/app/app.constants.ts @@ -38,6 +38,7 @@ interface Env { TESTNET_ENABLED: boolean; LIQUID_ENABLED: boolean; BISQ_ENABLED: boolean; + BISQ_SEPARATE_BACKEND: boolean; ELCTRS_ITEMS_PER_PAGE: number; KEEP_BLOCKS_AMOUNT: number; } @@ -46,6 +47,7 @@ const defaultEnv: Env = { 'TESTNET_ENABLED': false, 'LIQUID_ENABLED': false, 'BISQ_ENABLED': false, + 'BISQ_SEPARATE_BACKEND': false, 'ELCTRS_ITEMS_PER_PAGE': 25, 'KEEP_BLOCKS_AMOUNT': 8 }; diff --git a/frontend/src/app/services/api.service.ts b/frontend/src/app/services/api.service.ts index a16b5154f..b43f8f6e0 100644 --- a/frontend/src/app/services/api.service.ts +++ b/frontend/src/app/services/api.service.ts @@ -3,6 +3,7 @@ import { HttpClient, HttpParams, HttpResponse } from '@angular/common/http'; import { OptimizedMempoolStats } from '../interfaces/node-api.interface'; import { Observable } from 'rxjs'; import { StateService } from './state.service'; +import { env } from '../app.constants'; const API_BASE_URL = '{network}/api/v1'; @@ -18,7 +19,7 @@ export class ApiService { ) { this.apiBaseUrl = API_BASE_URL.replace('{network}', ''); this.stateService.networkChanged$.subscribe((network) => { - if (network === 'bisq') { + if (network === 'bisq' && !env.BISQ_SEPARATE_BACKEND) { network = ''; } this.apiBaseUrl = API_BASE_URL.replace('{network}', network ? '/' + network : ''); diff --git a/frontend/src/app/services/electrs-api.service.ts b/frontend/src/app/services/electrs-api.service.ts index 921f039d0..180d5973d 100644 --- a/frontend/src/app/services/electrs-api.service.ts +++ b/frontend/src/app/services/electrs-api.service.ts @@ -3,6 +3,7 @@ import { HttpClient } from '@angular/common/http'; import { Observable } from 'rxjs'; import { Block, Transaction, Address, Outspend, Recent, Asset } from '../interfaces/electrs.interface'; import { StateService } from './state.service'; +import { env } from '../app.constants'; const API_BASE_URL = '{network}/api'; @@ -18,7 +19,7 @@ export class ElectrsApiService { ) { this.apiBaseUrl = API_BASE_URL.replace('{network}', ''); this.stateService.networkChanged$.subscribe((network) => { - if (network === 'bisq') { + if (network === 'bisq' && !env.BISQ_SEPARATE_BACKEND) { network = ''; } this.apiBaseUrl = API_BASE_URL.replace('{network}', network ? '/' + network : ''); diff --git a/frontend/src/app/services/websocket.service.ts b/frontend/src/app/services/websocket.service.ts index e2b45d681..134cd47b4 100644 --- a/frontend/src/app/services/websocket.service.ts +++ b/frontend/src/app/services/websocket.service.ts @@ -4,6 +4,7 @@ import { WebsocketResponse } from '../interfaces/websocket.interface'; import { StateService } from './state.service'; import { Block, Transaction } from '../interfaces/electrs.interface'; import { Subscription } from 'rxjs'; +import { env } from '../app.constants'; const WEB_SOCKET_PROTOCOL = (document.location.protocol === 'https:') ? 'wss:' : 'ws:'; const WEB_SOCKET_URL = WEB_SOCKET_PROTOCOL + '//' + document.location.hostname + ':' + document.location.port + '{network}/api/v1/ws'; @@ -29,12 +30,12 @@ export class WebsocketService { constructor( private stateService: StateService, ) { - this.network = this.stateService.network === 'bisq' ? '' : this.stateService.network; + this.network = this.stateService.network === 'bisq' && !env.BISQ_SEPARATE_BACKEND ? '' : this.stateService.network; this.websocketSubject = webSocket(WEB_SOCKET_URL.replace('{network}', this.network ? '/' + this.network : '')); this.startSubscription(); this.stateService.networkChanged$.subscribe((network) => { - if (network === 'bisq') { + if (network === 'bisq' && !env.BISQ_SEPARATE_BACKEND) { network = ''; } if (network === this.network) {