From cd4cc203a2bbb716c8747bd45ac84e42b8f53b84 Mon Sep 17 00:00:00 2001 From: Elias Rohrer Date: Tue, 16 Apr 2024 11:12:43 +0200 Subject: [PATCH] Introduce `ChangeDestinationSource` trait .. which users should implement on their on-chain wallet to allow us to retrieve a new change destination script. --- lightning/src/sign/mod.rs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/lightning/src/sign/mod.rs b/lightning/src/sign/mod.rs index 1459151de..9b5efee4b 100644 --- a/lightning/src/sign/mod.rs +++ b/lightning/src/sign/mod.rs @@ -904,6 +904,17 @@ pub trait SignerProvider { fn get_shutdown_scriptpubkey(&self) -> Result; } +/// A helper trait that describes an on-chain wallet capable of returning a (change) destination +/// script. +pub trait ChangeDestinationSource { + /// Returns a script pubkey which can be used as a change destination for + /// [`OutputSpender::spend_spendable_outputs`]. + /// + /// This method should return a different value each time it is called, to avoid linking + /// on-chain funds controlled to the same user. + fn get_change_destination_script(&self) -> Result; +} + /// A simple implementation of [`WriteableEcdsaChannelSigner`] that just keeps the private keys in memory. /// /// This implementation performs no policy checks and is insufficient by itself as -- 2.39.5