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 }}