X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=lightning%2Fsrc%2Fchain%2Fkeysinterface.rs;h=338e81d17099cc0aecd193216aa7f228d60409b6;hb=7f49f6bf4d838196ff7b20e78207b4bfdad264c6;hp=3ccab2ce9dabb0b36f9876210a1d39bd5faff98d;hpb=0517b18a01cc3b1bad9b7101e400055656da44db;p=rust-lightning diff --git a/lightning/src/chain/keysinterface.rs b/lightning/src/chain/keysinterface.rs index 3ccab2ce9..338e81d17 100644 --- a/lightning/src/chain/keysinterface.rs +++ b/lightning/src/chain/keysinterface.rs @@ -547,15 +547,21 @@ pub trait SignerProvider { /// Get a script pubkey which we send funds to when claiming on-chain contestable outputs. /// + /// If this function returns an error, this will result in a channel failing to open. + /// /// This method should return a different value each time it is called, to avoid linking /// on-chain funds across channels as controlled to the same user. - fn get_destination_script(&self) -> Script; + fn get_destination_script(&self) -> Result; /// Get a script pubkey which we will send funds to when closing a channel. /// + /// If this function returns an error, this will result in a channel failing to open or close. + /// In the event of a failure when the counterparty is initiating a close, this can result in a + /// channel force close. + /// /// This method should return a different value each time it is called, to avoid linking /// on-chain funds across channels as controlled to the same user. - fn get_shutdown_scriptpubkey(&self) -> ShutdownScript; + fn get_shutdown_scriptpubkey(&self) -> Result; } /// A simple implementation of [`WriteableEcdsaChannelSigner`] that just keeps the private keys in memory. @@ -1376,12 +1382,12 @@ impl SignerProvider for KeysManager { InMemorySigner::read(&mut io::Cursor::new(reader), self) } - fn get_destination_script(&self) -> Script { - self.destination_script.clone() + fn get_destination_script(&self) -> Result { + Ok(self.destination_script.clone()) } - fn get_shutdown_scriptpubkey(&self) -> ShutdownScript { - ShutdownScript::new_p2wpkh_from_pubkey(self.shutdown_pubkey.clone()) + fn get_shutdown_scriptpubkey(&self) -> Result { + Ok(ShutdownScript::new_p2wpkh_from_pubkey(self.shutdown_pubkey.clone())) } } @@ -1471,11 +1477,11 @@ impl SignerProvider for PhantomKeysManager { self.inner.read_chan_signer(reader) } - fn get_destination_script(&self) -> Script { + fn get_destination_script(&self) -> Result { self.inner.get_destination_script() } - fn get_shutdown_scriptpubkey(&self) -> ShutdownScript { + fn get_shutdown_scriptpubkey(&self) -> Result { self.inner.get_shutdown_scriptpubkey() } }