fix gui: use address.is_valid_for_network

Use this nice helper from rust-bitcoin, instead
of wrong checks.
This commit is contained in:
edouard 2023-02-04 14:05:24 +01:00
parent 29a302bada
commit c7dd94b748
2 changed files with 3 additions and 9 deletions

View File

@ -21,7 +21,7 @@ use crate::{
ui::component::form,
};
use liana::miniscript::bitcoin::{Address, Amount, Network};
use liana::miniscript::bitcoin::{Address, Amount};
pub struct RecoveryPanel {
wallet: Arc<Wallet>,
@ -128,11 +128,7 @@ impl State for RecoveryPanel {
)) => {
self.recipient.value = address;
if let Ok(address) = Address::from_str(&self.recipient.value) {
if cache.network == Network::Bitcoin {
self.recipient.valid = address.network == Network::Bitcoin;
} else {
self.recipient.valid = address.network == Network::Testnet;
}
self.recipient.valid = address.is_valid_for_network(cache.network);
} else {
self.recipient.valid = false;
}

View File

@ -192,9 +192,7 @@ impl Recipient {
view::CreateSpendMessage::RecipientEdited(_, "address", address) => {
self.address.value = address;
if let Ok(address) = Address::from_str(&self.address.value) {
self.address.valid = address.network == network
|| (address.network == bitcoin::Network::Testnet
&& network == bitcoin::Network::Signet);
self.address.valid = address.is_valid_for_network(network);
if !self.amount.value.is_empty() {
self.amount.valid = self.amount().is_ok();
}