@@ -32,7 +32,7 @@ use crate::chain::chaininterface::{BroadcasterInterface, FeeEstimator};
3232use crate :: chain:: channelmonitor:: { ChannelMonitor , ChannelMonitorUpdate , Balance , MonitorEvent , TransactionOutputs , WithChannelMonitor } ;
3333use crate :: chain:: transaction:: { OutPoint , TransactionData } ;
3434use crate :: ln:: types:: ChannelId ;
35- use crate :: sign:: ecdsa :: EcdsaChannelSigner ;
35+ use crate :: sign:: ChannelSigner ;
3636use crate :: events:: { self , Event , EventHandler , ReplayEvent } ;
3737use crate :: util:: logger:: { Logger , WithContext } ;
3838use crate :: util:: errors:: APIError ;
@@ -101,7 +101,7 @@ use bitcoin::secp256k1::PublicKey;
101101///
102102/// [`TrustedCommitmentTransaction::revokeable_output_index`]: crate::ln::chan_utils::TrustedCommitmentTransaction::revokeable_output_index
103103/// [`TrustedCommitmentTransaction::build_to_local_justice_tx`]: crate::ln::chan_utils::TrustedCommitmentTransaction::build_to_local_justice_tx
104- pub trait Persist < ChannelSigner : EcdsaChannelSigner > {
104+ pub trait Persist < Signer : ChannelSigner > {
105105 /// Persist a new channel's data in response to a [`chain::Watch::watch_channel`] call. This is
106106 /// called by [`ChannelManager`] for new channels, or may be called directly, e.g. on startup.
107107 ///
@@ -118,7 +118,7 @@ pub trait Persist<ChannelSigner: EcdsaChannelSigner> {
118118 ///
119119 /// [`ChannelManager`]: crate::ln::channelmanager::ChannelManager
120120 /// [`Writeable::write`]: crate::util::ser::Writeable::write
121- fn persist_new_channel ( & self , channel_funding_outpoint : OutPoint , monitor : & ChannelMonitor < ChannelSigner > ) -> ChannelMonitorUpdateStatus ;
121+ fn persist_new_channel ( & self , channel_funding_outpoint : OutPoint , monitor : & ChannelMonitor < Signer > ) -> ChannelMonitorUpdateStatus ;
122122
123123 /// Update one channel's data. The provided [`ChannelMonitor`] has already applied the given
124124 /// update.
@@ -157,7 +157,7 @@ pub trait Persist<ChannelSigner: EcdsaChannelSigner> {
157157 /// [`ChannelMonitorUpdateStatus`] for requirements when returning errors.
158158 ///
159159 /// [`Writeable::write`]: crate::util::ser::Writeable::write
160- fn update_persisted_channel ( & self , channel_funding_outpoint : OutPoint , monitor_update : Option < & ChannelMonitorUpdate > , monitor : & ChannelMonitor < ChannelSigner > ) -> ChannelMonitorUpdateStatus ;
160+ fn update_persisted_channel ( & self , channel_funding_outpoint : OutPoint , monitor_update : Option < & ChannelMonitorUpdate > , monitor : & ChannelMonitor < Signer > ) -> ChannelMonitorUpdateStatus ;
161161 /// Prevents the channel monitor from being loaded on startup.
162162 ///
163163 /// Archiving the data in a backup location (rather than deleting it fully) is useful for
@@ -172,8 +172,8 @@ pub trait Persist<ChannelSigner: EcdsaChannelSigner> {
172172 fn archive_persisted_channel ( & self , channel_funding_outpoint : OutPoint ) ;
173173}
174174
175- struct MonitorHolder < ChannelSigner : EcdsaChannelSigner > {
176- monitor : ChannelMonitor < ChannelSigner > ,
175+ struct MonitorHolder < Signer : ChannelSigner > {
176+ monitor : ChannelMonitor < Signer > ,
177177 /// The full set of pending monitor updates for this Channel.
178178 ///
179179 /// Note that this lock must be held from [`ChannelMonitor::update_monitor`] through to
@@ -191,7 +191,7 @@ struct MonitorHolder<ChannelSigner: EcdsaChannelSigner> {
191191 pending_monitor_updates : Mutex < Vec < u64 > > ,
192192}
193193
194- impl < ChannelSigner : EcdsaChannelSigner > MonitorHolder < ChannelSigner > {
194+ impl < Signer : ChannelSigner > MonitorHolder < Signer > {
195195 fn has_pending_updates ( & self , pending_monitor_updates_lock : & MutexGuard < Vec < u64 > > ) -> bool {
196196 !pending_monitor_updates_lock. is_empty ( )
197197 }
@@ -201,14 +201,14 @@ impl<ChannelSigner: EcdsaChannelSigner> MonitorHolder<ChannelSigner> {
201201///
202202/// Note that this holds a mutex in [`ChainMonitor`] and may block other events until it is
203203/// released.
204- pub struct LockedChannelMonitor < ' a , ChannelSigner : EcdsaChannelSigner > {
205- lock : RwLockReadGuard < ' a , HashMap < OutPoint , MonitorHolder < ChannelSigner > > > ,
204+ pub struct LockedChannelMonitor < ' a , Signer : ChannelSigner > {
205+ lock : RwLockReadGuard < ' a , HashMap < OutPoint , MonitorHolder < Signer > > > ,
206206 funding_txo : OutPoint ,
207207}
208208
209- impl < ChannelSigner : EcdsaChannelSigner > Deref for LockedChannelMonitor < ' _ , ChannelSigner > {
210- type Target = ChannelMonitor < ChannelSigner > ;
211- fn deref ( & self ) -> & ChannelMonitor < ChannelSigner > {
209+ impl < Signer : ChannelSigner > Deref for LockedChannelMonitor < ' _ , Signer > {
210+ type Target = ChannelMonitor < Signer > ;
211+ fn deref ( & self ) -> & ChannelMonitor < Signer > {
212212 & self . lock . get ( & self . funding_txo ) . expect ( "Checked at construction" ) . monitor
213213 }
214214}
@@ -229,14 +229,14 @@ impl<ChannelSigner: EcdsaChannelSigner> Deref for LockedChannelMonitor<'_, Chann
229229/// [`ChannelManager`]: crate::ln::channelmanager::ChannelManager
230230/// [module-level documentation]: crate::chain::chainmonitor
231231/// [`rebroadcast_pending_claims`]: Self::rebroadcast_pending_claims
232- pub struct ChainMonitor < ChannelSigner : EcdsaChannelSigner , C : Deref , T : Deref , F : Deref , L : Deref , P : Deref >
232+ pub struct ChainMonitor < Signer : ChannelSigner , C : Deref , T : Deref , F : Deref , L : Deref , P : Deref >
233233 where C :: Target : chain:: Filter ,
234234 T :: Target : BroadcasterInterface ,
235235 F :: Target : FeeEstimator ,
236236 L :: Target : Logger ,
237- P :: Target : Persist < ChannelSigner > ,
237+ P :: Target : Persist < Signer > ,
238238{
239- monitors : RwLock < HashMap < OutPoint , MonitorHolder < ChannelSigner > > > ,
239+ monitors : RwLock < HashMap < OutPoint , MonitorHolder < Signer > > > ,
240240 chain_source : Option < C > ,
241241 broadcaster : T ,
242242 logger : L ,
@@ -253,12 +253,12 @@ pub struct ChainMonitor<ChannelSigner: EcdsaChannelSigner, C: Deref, T: Deref, F
253253 event_notifier : Notifier ,
254254}
255255
256- impl < ChannelSigner : EcdsaChannelSigner , C : Deref , T : Deref , F : Deref , L : Deref , P : Deref > ChainMonitor < ChannelSigner , C , T , F , L , P >
256+ impl < Signer : ChannelSigner , C : Deref , T : Deref , F : Deref , L : Deref , P : Deref > ChainMonitor < Signer , C , T , F , L , P >
257257where C :: Target : chain:: Filter ,
258258 T :: Target : BroadcasterInterface ,
259259 F :: Target : FeeEstimator ,
260260 L :: Target : Logger ,
261- P :: Target : Persist < ChannelSigner > ,
261+ P :: Target : Persist < Signer > ,
262262{
263263 /// Dispatches to per-channel monitors, which are responsible for updating their on-chain view
264264 /// of a channel and reacting accordingly based on transactions in the given chain data. See
@@ -273,7 +273,7 @@ where C::Target: chain::Filter,
273273 /// Calls which represent a new blockchain tip height should set `best_height`.
274274 fn process_chain_data < FN > ( & self , header : & Header , best_height : Option < u32 > , txdata : & TransactionData , process : FN )
275275 where
276- FN : Fn ( & ChannelMonitor < ChannelSigner > , & TransactionData ) -> Vec < TransactionOutputs >
276+ FN : Fn ( & ChannelMonitor < Signer > , & TransactionData ) -> Vec < TransactionOutputs >
277277 {
278278 let err_str = "ChannelMonitor[Update] persistence failed unrecoverably. This indicates we cannot continue normal operation and must shut down." ;
279279 let funding_outpoints = hash_set_from_iter ( self . monitors . read ( ) . unwrap ( ) . keys ( ) . cloned ( ) ) ;
@@ -316,8 +316,8 @@ where C::Target: chain::Filter,
316316
317317 fn update_monitor_with_chain_data < FN > (
318318 & self , header : & Header , best_height : Option < u32 > , txdata : & TransactionData , process : FN , funding_outpoint : & OutPoint ,
319- monitor_state : & MonitorHolder < ChannelSigner > , channel_count : usize ,
320- ) -> Result < ( ) , ( ) > where FN : Fn ( & ChannelMonitor < ChannelSigner > , & TransactionData ) -> Vec < TransactionOutputs > {
319+ monitor_state : & MonitorHolder < Signer > , channel_count : usize ,
320+ ) -> Result < ( ) , ( ) > where FN : Fn ( & ChannelMonitor < Signer > , & TransactionData ) -> Vec < TransactionOutputs > {
321321 let monitor = & monitor_state. monitor ;
322322 let logger = WithChannelMonitor :: from ( & self . logger , & monitor, None ) ;
323323
@@ -428,7 +428,7 @@ where C::Target: chain::Filter,
428428 ///
429429 /// Note that the result holds a mutex over our monitor set, and should not be held
430430 /// indefinitely.
431- pub fn get_monitor ( & self , funding_txo : OutPoint ) -> Result < LockedChannelMonitor < ' _ , ChannelSigner > , ( ) > {
431+ pub fn get_monitor ( & self , funding_txo : OutPoint ) -> Result < LockedChannelMonitor < ' _ , Signer > , ( ) > {
432432 let lock = self . monitors . read ( ) . unwrap ( ) ;
433433 if lock. get ( & funding_txo) . is_some ( ) {
434434 Ok ( LockedChannelMonitor { lock, funding_txo } )
@@ -472,7 +472,7 @@ where C::Target: chain::Filter,
472472
473473
474474 #[ cfg( test) ]
475- pub fn remove_monitor ( & self , funding_txo : & OutPoint ) -> ChannelMonitor < ChannelSigner > {
475+ pub fn remove_monitor ( & self , funding_txo : & OutPoint ) -> ChannelMonitor < Signer > {
476476 self . monitors . write ( ) . unwrap ( ) . remove ( funding_txo) . unwrap ( ) . monitor
477477 }
478478
@@ -670,14 +670,14 @@ where C::Target: chain::Filter,
670670 }
671671}
672672
673- impl < ChannelSigner : EcdsaChannelSigner , C : Deref , T : Deref , F : Deref , L : Deref , P : Deref >
674- chain:: Listen for ChainMonitor < ChannelSigner , C , T , F , L , P >
673+ impl < Signer : ChannelSigner , C : Deref , T : Deref , F : Deref , L : Deref , P : Deref >
674+ chain:: Listen for ChainMonitor < Signer , C , T , F , L , P >
675675where
676676 C :: Target : chain:: Filter ,
677677 T :: Target : BroadcasterInterface ,
678678 F :: Target : FeeEstimator ,
679679 L :: Target : Logger ,
680- P :: Target : Persist < ChannelSigner > ,
680+ P :: Target : Persist < Signer > ,
681681{
682682 fn filtered_block_connected ( & self , header : & Header , txdata : & TransactionData , height : u32 ) {
683683 log_debug ! ( self . logger, "New best block {} at height {} provided via block_connected" , header. block_hash( ) , height) ;
@@ -699,14 +699,14 @@ where
699699 }
700700}
701701
702- impl < ChannelSigner : EcdsaChannelSigner , C : Deref , T : Deref , F : Deref , L : Deref , P : Deref >
703- chain:: Confirm for ChainMonitor < ChannelSigner , C , T , F , L , P >
702+ impl < Signer : ChannelSigner , C : Deref , T : Deref , F : Deref , L : Deref , P : Deref >
703+ chain:: Confirm for ChainMonitor < Signer , C , T , F , L , P >
704704where
705705 C :: Target : chain:: Filter ,
706706 T :: Target : BroadcasterInterface ,
707707 F :: Target : FeeEstimator ,
708708 L :: Target : Logger ,
709- P :: Target : Persist < ChannelSigner > ,
709+ P :: Target : Persist < Signer > ,
710710{
711711 fn transactions_confirmed ( & self , header : & Header , txdata : & TransactionData , height : u32 ) {
712712 log_debug ! ( self . logger, "{} provided transactions confirmed at height {} in block {}" , txdata. len( ) , height, header. block_hash( ) ) ;
@@ -753,15 +753,15 @@ where
753753 }
754754}
755755
756- impl < ChannelSigner : EcdsaChannelSigner , C : Deref , T : Deref , F : Deref , L : Deref , P : Deref >
757- chain:: Watch < ChannelSigner > for ChainMonitor < ChannelSigner , C , T , F , L , P >
756+ impl < Signer : ChannelSigner , C : Deref , T : Deref , F : Deref , L : Deref , P : Deref >
757+ chain:: Watch < Signer > for ChainMonitor < Signer , C , T , F , L , P >
758758where C :: Target : chain:: Filter ,
759759 T :: Target : BroadcasterInterface ,
760760 F :: Target : FeeEstimator ,
761761 L :: Target : Logger ,
762- P :: Target : Persist < ChannelSigner > ,
762+ P :: Target : Persist < Signer > ,
763763{
764- fn watch_channel ( & self , funding_outpoint : OutPoint , monitor : ChannelMonitor < ChannelSigner > ) -> Result < ChannelMonitorUpdateStatus , ( ) > {
764+ fn watch_channel ( & self , funding_outpoint : OutPoint , monitor : ChannelMonitor < Signer > ) -> Result < ChannelMonitorUpdateStatus , ( ) > {
765765 let logger = WithChannelMonitor :: from ( & self . logger , & monitor, None ) ;
766766 let mut monitors = self . monitors . write ( ) . unwrap ( ) ;
767767 let entry = match monitors. entry ( funding_outpoint) {
@@ -892,12 +892,12 @@ where C::Target: chain::Filter,
892892 }
893893}
894894
895- impl < ChannelSigner : EcdsaChannelSigner , C : Deref , T : Deref , F : Deref , L : Deref , P : Deref > events:: EventsProvider for ChainMonitor < ChannelSigner , C , T , F , L , P >
895+ impl < Signer : ChannelSigner , C : Deref , T : Deref , F : Deref , L : Deref , P : Deref > events:: EventsProvider for ChainMonitor < Signer , C , T , F , L , P >
896896 where C :: Target : chain:: Filter ,
897897 T :: Target : BroadcasterInterface ,
898898 F :: Target : FeeEstimator ,
899899 L :: Target : Logger ,
900- P :: Target : Persist < ChannelSigner > ,
900+ P :: Target : Persist < Signer > ,
901901{
902902 /// Processes [`SpendableOutputs`] events produced from each [`ChannelMonitor`] upon maturity.
903903 ///
0 commit comments