diff --git a/gui/src/daemon/client/mod.rs b/gui/src/daemon/client/mod.rs index 8da41cbf..739ce05d 100644 --- a/gui/src/daemon/client/mod.rs +++ b/gui/src/daemon/client/mod.rs @@ -134,6 +134,14 @@ impl Daemon for Lianad { fn list_txs(&self, txids: &[Txid]) -> Result { self.call("listtransactions", Some(vec![txids])) } + + fn create_recovery(&self, address: Address, feerate_vb: u64) -> Result { + let res: CreateSpendResult = self.call( + "createrecovery", + Some(vec![json!(address), json!(feerate_vb)]), + )?; + Ok(res.psbt) + } } #[derive(Debug, Clone, Deserialize, Serialize)] diff --git a/gui/src/daemon/embedded.rs b/gui/src/daemon/embedded.rs index ab75e9d5..76c8491f 100644 --- a/gui/src/daemon/embedded.rs +++ b/gui/src/daemon/embedded.rs @@ -193,4 +193,16 @@ impl Daemon for EmbeddedDaemon { .start_rescan(t) .map_err(|e| DaemonError::Unexpected(e.to_string())) } + + fn create_recovery(&self, address: Address, feerate_vb: u64) -> Result { + self.handle + .as_ref() + .ok_or(DaemonError::NoAnswer)? + .read() + .unwrap() + .control + .create_recovery(address, feerate_vb) + .map_err(|e| DaemonError::Unexpected(e.to_string())) + .map(|res| res.psbt) + } } diff --git a/gui/src/daemon/mod.rs b/gui/src/daemon/mod.rs index e7db4b71..270f4b83 100644 --- a/gui/src/daemon/mod.rs +++ b/gui/src/daemon/mod.rs @@ -65,6 +65,7 @@ pub trait Daemon: Debug { _end: u32, _limit: u64, ) -> Result; + fn create_recovery(&self, address: Address, feerate_vb: u64) -> Result; fn list_txs(&self, txid: &[Txid]) -> Result; fn list_spend_transactions(&self) -> Result, DaemonError> {