From 2b9324993a92ecb082d59c6aa013e6136b025aba Mon Sep 17 00:00:00 2001 From: pythcoiner Date: Wed, 22 Jan 2025 07:33:34 +0100 Subject: [PATCH] export: implement export for psbt --- liana-gui/src/app/state/export.rs | 2 +- liana-gui/src/export.rs | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/liana-gui/src/app/state/export.rs b/liana-gui/src/app/state/export.rs index 2d12d0fa..4c4954a9 100644 --- a/liana-gui/src/app/state/export.rs +++ b/liana-gui/src/app/state/export.rs @@ -45,7 +45,7 @@ impl ExportModal { let date = chrono::Local::now().format("%Y-%m-%dT%H-%M-%S"); format!("liana-txs-{date}.csv") } - ExportType::Psbt(_) => todo!(), + ExportType::Psbt(_) => "psbt.psbt".into(), ExportType::Descriptor(descriptor) => { let checksum = descriptor .to_string() diff --git a/liana-gui/src/export.rs b/liana-gui/src/export.rs index 6dbd1701..5a3cd65f 100644 --- a/liana-gui/src/export.rs +++ b/liana-gui/src/export.rs @@ -199,7 +199,7 @@ impl Export { ) { match export_type { ExportType::Transactions => export_transactions(sender, daemon, path).await, - ExportType::Psbt(_) => todo!(), + ExportType::Psbt(psbt) => export_psbt(sender, path, psbt), ExportType::Descriptor(descriptor) => export_descriptor(sender, path, descriptor), }; } @@ -472,6 +472,17 @@ pub fn export_descriptor( send_progress!(sender, Ended); } +pub fn export_psbt(sender: Sender, path: PathBuf, psbt: String) { + let mut file = open_file!(path, sender); + + if let Err(e) = file.write_all(psbt.as_bytes()) { + send_error!(sender, e.into()); + return; + } + send_progress!(sender, Progress(100.0)); + send_progress!(sender, Ended); +} + pub async fn get_path(filename: String) -> Option { rfd::AsyncFileDialog::new() .set_title("Choose a location to export...")