diff --git a/frontend/src/app/bisq/bisq-block/bisq-block.component.ts b/frontend/src/app/bisq/bisq-block/bisq-block.component.ts
index 9616c76f2..07f8a086b 100644
--- a/frontend/src/app/bisq/bisq-block/bisq-block.component.ts
+++ b/frontend/src/app/bisq/bisq-block/bisq-block.component.ts
@@ -1,10 +1,12 @@
import { Component, OnInit, OnDestroy } from '@angular/core';
-import { BisqTransaction, BisqBlock } from 'src/app/bisq/bisq.interfaces';
+import { BisqBlock } from 'src/app/bisq/bisq.interfaces';
+import { Location } from '@angular/common';
import { BisqApiService } from '../bisq-api.service';
-import { ActivatedRoute, ParamMap } from '@angular/router';
-import { Subscribable, Subscription, of } from 'rxjs';
+import { ActivatedRoute, ParamMap, Router } from '@angular/router';
+import { Subscription, of } from 'rxjs';
import { switchMap } from 'rxjs/operators';
import { SeoService } from 'src/app/services/seo.service';
+import { ElectrsApiService } from 'src/app/services/electrs-api.service';
@Component({
selector: 'app-bisq-block',
@@ -23,13 +25,16 @@ export class BisqBlockComponent implements OnInit, OnDestroy {
private bisqApiService: BisqApiService,
private route: ActivatedRoute,
private seoService: SeoService,
+ private electrsApiService: ElectrsApiService,
+ private router: Router,
+ private location: Location,
) { }
ngOnInit(): void {
this.subscription = this.route.paramMap
.pipe(
switchMap((params: ParamMap) => {
- this.blockHash = params.get('id') || '';
+ const blockHash = params.get('id') || '';
document.body.scrollTo(0, 0);
this.isLoading = true;
if (history.state.data && history.state.data.blockHeight) {
@@ -39,6 +44,27 @@ export class BisqBlockComponent implements OnInit, OnDestroy {
this.blockHeight = history.state.data.block.height;
return of(history.state.data.block);
}
+
+ let isBlockHeight = false;
+ if (/^[0-9]+$/.test(blockHash)) {
+ isBlockHeight = true;
+ } else {
+ this.blockHash = blockHash;
+ }
+
+ if (isBlockHeight) {
+ return this.electrsApiService.getBlockHashFromHeight$(parseInt(blockHash, 10))
+ .pipe(
+ switchMap((hash) => {
+ this.blockHash = hash;
+ this.location.replaceState(
+ this.router.createUrlTree(['/bisq/block/', hash]).toString()
+ );
+ return this.bisqApiService.getBlock$(this.blockHash);
+ })
+ );
+ }
+
return this.bisqApiService.getBlock$(this.blockHash);
})
)
diff --git a/frontend/src/app/bisq/bisq-blocks/bisq-blocks.component.html b/frontend/src/app/bisq/bisq-blocks/bisq-blocks.component.html
index 11aa8d0d5..24fdff330 100644
--- a/frontend/src/app/bisq/bisq-blocks/bisq-blocks.component.html
+++ b/frontend/src/app/bisq/bisq-blocks/bisq-blocks.component.html
@@ -1,5 +1,5 @@
-
Bisq Blocks
+
Blocks
diff --git a/frontend/src/app/bisq/bisq-transaction/bisq-transaction.component.html b/frontend/src/app/bisq/bisq-transaction/bisq-transaction.component.html
index 24e2a3653..3625fcceb 100644
--- a/frontend/src/app/bisq/bisq-transaction/bisq-transaction.component.html
+++ b/frontend/src/app/bisq/bisq-transaction/bisq-transaction.component.html
@@ -1,6 +1,6 @@
-
Bisq Transaction
+
Transaction
diff --git a/frontend/src/app/bisq/bisq-transactions/bisq-transactions.component.html b/frontend/src/app/bisq/bisq-transactions/bisq-transactions.component.html
index 9d6629a19..e51c19832 100644
--- a/frontend/src/app/bisq/bisq-transactions/bisq-transactions.component.html
+++ b/frontend/src/app/bisq/bisq-transactions/bisq-transactions.component.html
@@ -1,5 +1,5 @@
-
Bisq Transactions
+
Transactions
diff --git a/frontend/src/app/components/master-page/master-page.component.html b/frontend/src/app/components/master-page/master-page.component.html
index 9b37de6c9..2b6d097cd 100644
--- a/frontend/src/app/components/master-page/master-page.component.html
+++ b/frontend/src/app/components/master-page/master-page.component.html
@@ -6,6 +6,8 @@
Reconnecting...
+

+