diff --git a/frontend/src/app/components/address/address.component.ts b/frontend/src/app/components/address/address.component.ts index 33cf3abf7..7e613dba6 100644 --- a/frontend/src/app/components/address/address.component.ts +++ b/frontend/src/app/components/address/address.component.ts @@ -104,7 +104,7 @@ export class AddressComponent implements OnInit, OnDestroy { .pipe( filter((address) => !!address), tap((address: Address) => { - if ((this.stateService.network === 'liquid' || this.stateService.network === 'liquidtestnet') && /^([m-zA-HJ-NP-Z1-9]{26,35}|[a-z]{2,5}1[ac-hj-np-z02-9]{8,100}|[a-km-zA-HJ-NP-Z1-9]{80})$/.test(address.address)) { + if ((this.stateService.network === 'liquid' || this.stateService.network === 'liquidtestnet') && /^([a-zA-HJ-NP-Z1-9]{26,35}|[a-z]{2,5}1[ac-hj-np-z02-9]{8,100}|[a-km-zA-HJ-NP-Z1-9]{80})$/.test(address.address)) { this.apiService.validateAddress$(address.address) .subscribe((addressInfo) => { this.addressInfo = addressInfo; diff --git a/frontend/src/app/shared/regex.utils.ts b/frontend/src/app/shared/regex.utils.ts index 128f7566e..93f4b9275 100644 --- a/frontend/src/app/shared/regex.utils.ts +++ b/frontend/src/app/shared/regex.utils.ts @@ -77,11 +77,15 @@ const ADDRESS_CHARS: { + `)`, }, liquid: { - base58: `[GHPQ]` // G|H is P2PKH, P|Q is P2SH - + BASE58_CHARS - + `{33}`, // All min-max lengths are 34 + base58: `[GHPQ]` // PQ is P2PKH, GH is P2SH + + BASE58_CHARS + + `{33}` // All min-max lengths are 34 + + `|` + + `[V][TJ]` // Confidential P2PKH or P2SH starts with VT or VJ + + BASE58_CHARS + + `{78}`, bech32: `(?:` - + `(?:` // bech32 liquid starts with ex1 or lq1 + + `(?:` // bech32 liquid starts with ex1 (unconfidential) or lq1 (confidential) + `ex1` + `|` + `lq1`