From b73193ae77dccde519d43e5042324742dbee5523 Mon Sep 17 00:00:00 2001 From: edouardparis Date: Wed, 11 Sep 2024 12:53:17 +0200 Subject: [PATCH] Deserialize error from create_spend http response Instead of having a simple ugly message like: data did not match any variant of untagged enum DraftPsbtResult --- gui/src/lianalite/client/backend/api.rs | 6 ++++++ gui/src/lianalite/client/backend/mod.rs | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/gui/src/lianalite/client/backend/api.rs b/gui/src/lianalite/client/backend/api.rs index 04efb5e3..eb3ad34e 100644 --- a/gui/src/lianalite/client/backend/api.rs +++ b/gui/src/lianalite/client/backend/api.rs @@ -284,6 +284,7 @@ pub struct Psbt { pub enum DraftPsbtResult { Success(DraftPsbt), InsufficientFunds(InsufficientFundsInfo), + Error(DraftPsbtError), } #[derive(Clone, Deserialize)] @@ -291,6 +292,11 @@ pub struct InsufficientFundsInfo { pub missing: u64, } +#[derive(Clone, Deserialize)] +pub struct DraftPsbtError { + pub error: String, +} + #[derive(Clone, Deserialize)] pub struct DraftPsbt { pub uuid: Option, diff --git a/gui/src/lianalite/client/backend/mod.rs b/gui/src/lianalite/client/backend/mod.rs index 306394fa..b572aa17 100644 --- a/gui/src/lianalite/client/backend/mod.rs +++ b/gui/src/lianalite/client/backend/mod.rs @@ -753,6 +753,9 @@ impl Daemon for BackendWalletClient { api::DraftPsbtResult::InsufficientFunds(api::InsufficientFundsInfo { missing }) => { Ok(CreateSpendResult::InsufficientFunds { missing }) } + api::DraftPsbtResult::Error(api::DraftPsbtError { error }) => { + Err(DaemonError::Unexpected(error)) + } } } @@ -790,6 +793,9 @@ impl Daemon for BackendWalletClient { api::DraftPsbtResult::InsufficientFunds(api::InsufficientFundsInfo { missing }) => { Ok(CreateSpendResult::InsufficientFunds { missing }) } + api::DraftPsbtResult::Error(api::DraftPsbtError { error }) => { + Err(DaemonError::Unexpected(error)) + } } }