import: allow to import a descriptor from a backup in export::import_descriptor()

This commit is contained in:
pythcoiner 2025-06-23 13:22:26 +02:00
parent 53839e9274
commit d66b596cf9
No known key found for this signature in database
GPG Key ID: C1048AEEDF303B88

View File

@ -637,7 +637,19 @@ pub async fn import_descriptor(
file.read_to_string(&mut descr_str)?;
let descr_str = descr_str.trim();
let descriptor = LianaDescriptor::from_str(descr_str).map_err(|_| Error::ParseDescriptor)?;
let descriptor = if let Ok(d) = LianaDescriptor::from_str(descr_str) {
Some(d)
} else {
let backup: Result<Backup, _> = serde_json::from_str(descr_str);
backup.ok().and_then(|b| {
if b.accounts.len() == 1 {
LianaDescriptor::from_str(&b.accounts[0].descriptor).ok()
} else {
None
}
})
};
let descriptor = descriptor.ok_or(Error::ParseDescriptor)?;
send_progress!(sender, Progress(100.0));
send_progress!(sender, Descriptor(descriptor));