gui(settings): add sanity check on electrum wallet address
This commit is contained in:
parent
4dd0fd3692
commit
bf25103fad
@ -453,7 +453,8 @@ impl ElectrumSettings {
|
||||
}
|
||||
view::SettingsEditMessage::FieldEdited(field, value) => {
|
||||
if !self.processing && field == "address" {
|
||||
self.addr.value = value
|
||||
self.addr.valid = crate::node::electrum::is_electrum_address_valid(&value);
|
||||
self.addr.value = value;
|
||||
}
|
||||
}
|
||||
view::SettingsEditMessage::Confirm => {
|
||||
|
||||
@ -35,23 +35,9 @@ impl DefineElectrum {
|
||||
match msg {
|
||||
message::DefineElectrum::ConfigFieldEdited(field, value) => match field {
|
||||
ConfigField::Address => {
|
||||
let value_noprefix = if value.starts_with("ssl://") {
|
||||
value.replacen("ssl://", "", 1)
|
||||
} else {
|
||||
value.replacen("tcp://", "", 1)
|
||||
};
|
||||
let noprefix_parts: Vec<_> = value_noprefix.split(':').collect();
|
||||
self.address.value.clone_from(&value); // save the value including any prefix
|
||||
self.address.valid = noprefix_parts.len() == 2
|
||||
&& !noprefix_parts
|
||||
.first()
|
||||
.expect("there are two parts")
|
||||
.is_empty()
|
||||
&& noprefix_parts
|
||||
.last()
|
||||
.expect("there are two parts")
|
||||
.parse::<u16>() // check it is a port
|
||||
.is_ok();
|
||||
self.address.valid =
|
||||
crate::node::electrum::is_electrum_address_valid(&value);
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
@ -12,3 +12,22 @@ impl fmt::Display for ConfigField {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub fn is_electrum_address_valid(value: &str) -> bool {
|
||||
let value_noprefix = if value.starts_with("ssl://") {
|
||||
value.replacen("ssl://", "", 1)
|
||||
} else {
|
||||
value.replacen("tcp://", "", 1)
|
||||
};
|
||||
let noprefix_parts: Vec<_> = value_noprefix.split(':').collect();
|
||||
noprefix_parts.len() == 2
|
||||
&& !noprefix_parts
|
||||
.first()
|
||||
.expect("there are two parts")
|
||||
.is_empty()
|
||||
&& noprefix_parts
|
||||
.last()
|
||||
.expect("there are two parts")
|
||||
.parse::<u16>() // check it is a port
|
||||
.is_ok()
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user