mirror of
https://github.com/mempool/mempool.git
synced 2025-02-22 22:25:34 +01:00
Check env flags before cross network address search
This commit is contained in:
parent
0ec40eafb4
commit
3b8de5057c
3 changed files with 31 additions and 5 deletions
|
@ -186,7 +186,7 @@ export class SearchFormComponent implements OnInit {
|
||||||
const matchesTxId = this.regexTransaction.test(searchText) && !this.regexBlockhash.test(searchText);
|
const matchesTxId = this.regexTransaction.test(searchText) && !this.regexBlockhash.test(searchText);
|
||||||
const matchesBlockHash = this.regexBlockhash.test(searchText);
|
const matchesBlockHash = this.regexBlockhash.test(searchText);
|
||||||
let matchesAddress = !matchesTxId && this.regexAddress.test(searchText);
|
let matchesAddress = !matchesTxId && this.regexAddress.test(searchText);
|
||||||
const otherNetworks = findOtherNetworks(searchText, this.network as any || 'mainnet');
|
const otherNetworks = findOtherNetworks(searchText, this.network as any || 'mainnet', this.env);
|
||||||
|
|
||||||
// Add B prefix to addresses in Bisq network
|
// Add B prefix to addresses in Bisq network
|
||||||
if (!matchesAddress && this.network === 'bisq' && getRegex('address', 'mainnet').test(searchText)) {
|
if (!matchesAddress && this.network === 'bisq' && getRegex('address', 'mainnet').test(searchText)) {
|
||||||
|
@ -234,7 +234,14 @@ export class SearchFormComponent implements OnInit {
|
||||||
} else if (result.short_id) {
|
} else if (result.short_id) {
|
||||||
this.navigate('/lightning/channel/', result.id);
|
this.navigate('/lightning/channel/', result.id);
|
||||||
} else if (result.network) {
|
} else if (result.network) {
|
||||||
this.navigate('/address/', result.address, undefined, result.network);
|
if (result.isNetworkAvailable) {
|
||||||
|
this.navigate('/address/', result.address, undefined, result.network);
|
||||||
|
} else {
|
||||||
|
this.searchForm.setValue({
|
||||||
|
searchText: '',
|
||||||
|
});
|
||||||
|
this.isSearching = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,7 @@
|
||||||
<ng-template [ngIf]="results.otherNetworks.length">
|
<ng-template [ngIf]="results.otherNetworks.length">
|
||||||
<div class="card-title danger" i18n="search.other-networks">Other Networks Address</div>
|
<div class="card-title danger" i18n="search.other-networks">Other Networks Address</div>
|
||||||
<ng-template ngFor [ngForOf]="results.otherNetworks" let-otherNetwork let-i="index">
|
<ng-template ngFor [ngForOf]="results.otherNetworks" let-otherNetwork let-i="index">
|
||||||
<button (click)="clickItem(results.hashQuickMatch + i)" [class.active]="(results.hashQuickMatch + i) === activeIdx" type="button" role="option" class="dropdown-item">
|
<button (click)="clickItem(results.hashQuickMatch + i)" [class.active]="(results.hashQuickMatch + i) === activeIdx" [class.inactive]="!otherNetwork.isNetworkAvailable" type="button" role="option" class="dropdown-item">
|
||||||
<ngb-highlight [result]="(otherNetwork.address + ' (' + otherNetwork.network + ')') | shortenString : isMobile ? 25 : 36" [term]="otherNetwork.network"></ngb-highlight>
|
<ngb-highlight [result]="(otherNetwork.address + ' (' + otherNetwork.network + ')') | shortenString : isMobile ? 25 : 36" [term]="otherNetwork.network"></ngb-highlight>
|
||||||
</button>
|
</button>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
|
|
|
@ -144,10 +144,29 @@ export type Network = typeof NETWORKS[number]; // Turn const array into union ty
|
||||||
export const ADDRESS_REGEXES: [RegExp, Network][] = NETWORKS
|
export const ADDRESS_REGEXES: [RegExp, Network][] = NETWORKS
|
||||||
.map(network => [getRegex('address', network), network])
|
.map(network => [getRegex('address', network), network])
|
||||||
|
|
||||||
export function findOtherNetworks(address: string, skipNetwork: Network): {network: Network, address: string}[] {
|
export function findOtherNetworks(address: string, skipNetwork: Network, env: Env): { network: Network, address: string, isNetworkAvailable: boolean }[] {
|
||||||
return ADDRESS_REGEXES
|
return ADDRESS_REGEXES
|
||||||
.filter(([regex, network]) => network !== skipNetwork && regex.test(address))
|
.filter(([regex, network]) => network !== skipNetwork && regex.test(address))
|
||||||
.map(([, network]) => ({ network, address }));
|
.map(([, network]) => ({ network, address, isNetworkAvailable: isNetworkAvailable(network, env) }));
|
||||||
|
}
|
||||||
|
|
||||||
|
function isNetworkAvailable(network: Network, env: Env): boolean {
|
||||||
|
switch (network) {
|
||||||
|
case 'testnet':
|
||||||
|
return env.TESTNET_ENABLED === true;
|
||||||
|
case 'signet':
|
||||||
|
return env.SIGNET_ENABLED === true;
|
||||||
|
case 'liquid':
|
||||||
|
return env.LIQUID_ENABLED === true;
|
||||||
|
case 'liquidtestnet':
|
||||||
|
return env.LIQUID_TESTNET_ENABLED === true;
|
||||||
|
case 'bisq':
|
||||||
|
return env.BISQ_ENABLED === true;
|
||||||
|
case 'mainnet':
|
||||||
|
return true; // There is no "MAINNET_ENABLED" flag
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function needBaseModuleChange(fromBaseModule: 'mempool' | 'liquid' | 'bisq', toNetwork: Network): boolean {
|
export function needBaseModuleChange(fromBaseModule: 'mempool' | 'liquid' | 'bisq', toNetwork: Network): boolean {
|
||||||
|
|
Loading…
Add table
Reference in a new issue