diff --git a/frontend/src/app/components/asset/asset.component.html b/frontend/src/app/components/asset/asset.component.html
index b72c1c094..8e4f84ea4 100644
--- a/frontend/src/app/components/asset/asset.component.html
+++ b/frontend/src/app/components/asset/asset.component.html
@@ -24,7 +24,7 @@
Precision |
{{ assetContract[3] }} |
-
+
Issuer |
{{ assetContract[0] }} |
diff --git a/frontend/src/app/components/asset/asset.component.ts b/frontend/src/app/components/asset/asset.component.ts
index 13775ba7c..25b6a6000 100644
--- a/frontend/src/app/components/asset/asset.component.ts
+++ b/frontend/src/app/components/asset/asset.component.ts
@@ -98,6 +98,9 @@ export class AssetComponent implements OnInit, OnDestroy {
switchMap(([asset, assetsData]) => {
this.asset = asset;
this.assetContract = assetsData[this.asset.asset_id];
+ if (!this.assetContract) {
+ this.assetContract = [null, '?', 'Unknown', 0];
+ }
this.isNativeAsset = asset.asset_id === this.nativeAssetId;
this.updateChainStats();
this.websocketService.startTrackAsset(asset.asset_id);
diff --git a/frontend/src/app/components/search-form/search-form.component.html b/frontend/src/app/components/search-form/search-form.component.html
index 78fcd8078..f71ac0ec1 100644
--- a/frontend/src/app/components/search-form/search-form.component.html
+++ b/frontend/src/app/components/search-form/search-form.component.html
@@ -4,7 +4,7 @@
-
+
\ No newline at end of file
diff --git a/frontend/src/app/components/search-form/search-form.component.ts b/frontend/src/app/components/search-form/search-form.component.ts
index 3bae9e803..c458d5a00 100644
--- a/frontend/src/app/components/search-form/search-form.component.ts
+++ b/frontend/src/app/components/search-form/search-form.component.ts
@@ -17,6 +17,7 @@ import { NgbTypeahead } from '@ng-bootstrap/ng-bootstrap';
export class SearchFormComponent implements OnInit {
network = '';
assets: object = {};
+ isSearching = false;
searchForm: FormGroup;
@Output() searchTriggered = new EventEmitter();
@@ -74,25 +75,36 @@ export class SearchFormComponent implements OnInit {
search() {
const searchText = this.searchForm.value.searchText.trim();
if (searchText) {
+ this.isSearching = true;
if (this.regexAddress.test(searchText)) {
- this.router.navigate([(this.network ? '/' + this.network : '') + '/address/', searchText]);
- this.searchTriggered.emit();
+ this.navigate('/address/', searchText);
} else if (this.regexBlockhash.test(searchText) || this.regexBlockheight.test(searchText)) {
- this.router.navigate([(this.network ? '/' + this.network : '') + '/block/', searchText]);
- this.searchTriggered.emit();
+ this.navigate('/block/', searchText);
} else if (this.regexTransaction.test(searchText)) {
- if (this.network === 'liquid' && this.assets[searchText]) {
- this.router.navigate([(this.network ? '/' + this.network : '') + '/asset/', searchText]);
+ if (this.network === 'liquid') {
+ if (this.assets[searchText]) {
+ this.navigate('/asset/', searchText);
+ }
+ this.electrsApiService.getAsset$(searchText)
+ .subscribe(
+ () => { this.navigate('/asset/', searchText); },
+ () => { this.navigate('/tx/', searchText); }
+ );
} else {
- this.router.navigate([(this.network ? '/' + this.network : '') + '/tx/', searchText]);
+ this.navigate('/tx/', searchText);
}
- this.searchTriggered.emit();
} else {
- return;
+ this.isSearching = false;
}
- this.searchForm.setValue({
- searchText: '',
- });
}
}
+
+ navigate(url: string, searchText: string) {
+ this.router.navigate([(this.network ? '/' + this.network : '') + url, searchText]);
+ this.searchTriggered.emit();
+ this.searchForm.setValue({
+ searchText: '',
+ });
+ this.isSearching = false;
+ }
}
diff --git a/frontend/src/app/components/transactions-list/transactions-list.component.html b/frontend/src/app/components/transactions-list/transactions-list.component.html
index 8290c2422..bf248e301 100644
--- a/frontend/src/app/components/transactions-list/transactions-list.component.html
+++ b/frontend/src/app/components/transactions-list/transactions-list.component.html
@@ -129,7 +129,7 @@
- OP_RETURN {{ vout.scriptpubkey_asm | hex2ascii }}
+ OP_RETURN {{ vout.scriptpubkey_asm | hex2ascii }}
{{ vout.scriptpubkey_type | scriptpubkeyType }}