diff --git a/backend/package-lock.json b/backend/package-lock.json
index 570d825a3..04e15afa2 100644
--- a/backend/package-lock.json
+++ b/backend/package-lock.json
@@ -23,7 +23,7 @@
"rust-gbt": "file:./rust-gbt",
"socks-proxy-agent": "~7.0.0",
"typescript": "~4.9.3",
- "ws": "~8.17.1"
+ "ws": "~8.18.0"
},
"devDependencies": {
"@babel/code-frame": "^7.18.6",
@@ -7690,9 +7690,9 @@
}
},
"node_modules/ws": {
- "version": "8.17.1",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz",
- "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==",
+ "version": "8.18.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz",
+ "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==",
"engines": {
"node": ">=10.0.0"
},
@@ -13424,9 +13424,9 @@
}
},
"ws": {
- "version": "8.17.1",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz",
- "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==",
+ "version": "8.18.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz",
+ "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==",
"requires": {}
},
"y18n": {
diff --git a/backend/package.json b/backend/package.json
index 906b97523..24e76e3dd 100644
--- a/backend/package.json
+++ b/backend/package.json
@@ -52,7 +52,7 @@
"redis": "^4.6.6",
"socks-proxy-agent": "~7.0.0",
"typescript": "~4.9.3",
- "ws": "~8.17.1"
+ "ws": "~8.18.0"
},
"devDependencies": {
"@babel/code-frame": "^7.18.6",
diff --git a/backend/src/api/mempool-blocks.ts b/backend/src/api/mempool-blocks.ts
index 51f9a1618..e655601e5 100644
--- a/backend/src/api/mempool-blocks.ts
+++ b/backend/src/api/mempool-blocks.ts
@@ -353,6 +353,9 @@ class MempoolBlocks {
for (const txid of Object.keys(candidates?.txs ?? mempool)) {
if (txid in mempool) {
mempool[txid].cpfpDirty = false;
+ mempool[txid].ancestors = [];
+ mempool[txid].descendants = [];
+ mempool[txid].bestDescendant = null;
}
}
for (const [txid, rate] of rates) {
diff --git a/frontend/src/app/components/block/block.component.html b/frontend/src/app/components/block/block.component.html
index 6c8693d22..79151ecc3 100644
--- a/frontend/src/app/components/block/block.component.html
+++ b/frontend/src/app/components/block/block.component.html
@@ -364,7 +364,7 @@
- Error loading data.
+ Error loading block data.
diff --git a/frontend/src/app/components/blocks-list/blocks-list.component.ts b/frontend/src/app/components/blocks-list/blocks-list.component.ts
index 9bf4e9814..5270ee7be 100644
--- a/frontend/src/app/components/blocks-list/blocks-list.component.ts
+++ b/frontend/src/app/components/blocks-list/blocks-list.component.ts
@@ -81,11 +81,13 @@ export class BlocksList implements OnInit {
})
).subscribe();
+ const prevKey = this.dir === 'ltr' ? 'ArrowLeft' : 'ArrowRight';
+ const nextKey = this.dir === 'ltr' ? 'ArrowRight' : 'ArrowLeft';
+
this.keyNavigationSubscription = this.stateService.keyNavigation$
.pipe(
+ filter((event) => event.key === prevKey || event.key === nextKey),
tap((event) => {
- const prevKey = this.dir === 'ltr' ? 'ArrowLeft' : 'ArrowRight';
- const nextKey = this.dir === 'ltr' ? 'ArrowRight' : 'ArrowLeft';
if (event.key === prevKey && this.page > 1) {
this.page--;
this.isLoading = true;
diff --git a/frontend/src/app/components/graphs/graphs.component.html b/frontend/src/app/components/graphs/graphs.component.html
index 03dd6e0b3..c11a0dc96 100644
--- a/frontend/src/app/components/graphs/graphs.component.html
+++ b/frontend/src/app/components/graphs/graphs.component.html
@@ -45,7 +45,7 @@
-
+
diff --git a/frontend/src/app/components/pool/pool.component.html b/frontend/src/app/components/pool/pool.component.html
index bd4f3bbee..b74ecdf81 100644
--- a/frontend/src/app/components/pool/pool.component.html
+++ b/frontend/src/app/components/pool/pool.component.html
@@ -1,6 +1,6 @@
-
+
@@ -459,4 +459,11 @@
|
+
+
+
+
+
+ Error loading pool data.
+
\ No newline at end of file
diff --git a/frontend/src/app/components/pool/pool.component.ts b/frontend/src/app/components/pool/pool.component.ts
index 2648bc4ca..6564a5dd9 100644
--- a/frontend/src/app/components/pool/pool.component.ts
+++ b/frontend/src/app/components/pool/pool.component.ts
@@ -9,6 +9,7 @@ import { StateService } from '../../services/state.service';
import { selectPowerOfTen } from '../../bitcoin.utils';
import { formatNumber } from '@angular/common';
import { SeoService } from '../../services/seo.service';
+import { HttpErrorResponse } from '@angular/common/http';
interface AccelerationTotal {
cost: number,
@@ -33,6 +34,7 @@ export class PoolComponent implements OnInit {
blocks$: Observable
;
oobFees$: Observable;
isLoading = true;
+ error: HttpErrorResponse | null = null;
chartOptions: EChartsOption = {};
chartInitOptions = {
@@ -105,6 +107,10 @@ export class PoolComponent implements OnInit {
}
return this.apiService.getPoolBlocks$(this.slug, this.blocks[this.blocks.length - 1]?.height);
}),
+ catchError((err) => {
+ this.error = err;
+ return of([]);
+ }),
tap((newBlocks) => {
this.blocks = this.blocks.concat(newBlocks);
}),
diff --git a/frontend/src/app/services/state.service.ts b/frontend/src/app/services/state.service.ts
index 647e5a972..860ff15df 100644
--- a/frontend/src/app/services/state.service.ts
+++ b/frontend/src/app/services/state.service.ts
@@ -410,6 +410,10 @@ export class StateService {
return this.network === 'liquid' || this.network === 'liquidtestnet';
}
+ isMainnet(): boolean {
+ return this.env.ROOT_NETWORK === '' && this.network === '';
+ }
+
isAnyTestnet(): boolean {
return ['testnet', 'testnet4', 'signet', 'liquidtestnet'].includes(this.network);
}
diff --git a/frontend/src/app/shared/pipes/http-error-pipe/http-error.pipe.ts b/frontend/src/app/shared/pipes/http-error-pipe/http-error.pipe.ts
index 3cbb16df6..51e9c4c0b 100644
--- a/frontend/src/app/shared/pipes/http-error-pipe/http-error.pipe.ts
+++ b/frontend/src/app/shared/pipes/http-error-pipe/http-error.pipe.ts
@@ -4,6 +4,6 @@ import { Pipe, PipeTransform } from '@angular/core';
@Pipe({ name: 'httpErrorMsg' })
export class HttpErrorPipe implements PipeTransform {
transform(e: HttpErrorResponse | null): string {
- return e ? `${e.status}: ${e.statusText}` : '';
+ return e ? `${e.status} ${e.statusText}: ${e.error}` : '';
}
}
diff --git a/production/mempool-frontend-config.mainnet.json b/production/mempool-frontend-config.mainnet.json
index fbbfc60cd..0465cb7d3 100644
--- a/production/mempool-frontend-config.mainnet.json
+++ b/production/mempool-frontend-config.mainnet.json
@@ -2,8 +2,8 @@
"OFFICIAL_MEMPOOL_SPACE": true,
"TESTNET_ENABLED": true,
"TESTNET4_ENABLED": true,
- "LIQUID_ENABLED": true,
- "LIQUID_TESTNET_ENABLED": true,
+ "LIQUID_ENABLED": false,
+ "LIQUID_TESTNET_ENABLED": false,
"BISQ_ENABLED": true,
"BISQ_SEPARATE_BACKEND": true,
"SIGNET_ENABLED": true,