Skip to content

Commit 523fcb6

Browse files
committed
Change Persist's Sign from an associated type to a generic param
1 parent 20a2596 commit 523fcb6

File tree

7 files changed

+21
-29
lines changed

7 files changed

+21
-29
lines changed

background-processor/src/lib.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ impl BackgroundProcessor {
5454
/// [`FilesystemPersister::persist_manager`]: ../lightning_persister/struct.FilesystemPersister.html#impl
5555
pub fn start<PM, Signer, M, T, K, F, L>(persist_manager: PM, manager: Arc<ChannelManager<Signer, Arc<M>, Arc<T>, Arc<K>, Arc<F>, Arc<L>>>, logger: Arc<L>) -> Self
5656
where Signer: 'static + Sign,
57-
M: 'static + chain::Watch<ChanSigner=Signer>,
57+
M: 'static + chain::Watch<Signer>,
5858
T: 'static + BroadcasterInterface,
5959
K: 'static + KeysInterface<Signer=Signer>,
6060
F: 'static + FeeEstimator,
@@ -275,7 +275,7 @@ mod tests {
275275
// Test that if we encounter an error during manager persistence, the thread panics.
276276
fn persist_manager<Signer, M, T, K, F, L>(_data: &ChannelManager<Signer, Arc<M>, Arc<T>, Arc<K>, Arc<F>, Arc<L>>) -> Result<(), std::io::Error>
277277
where Signer: 'static + Sign,
278-
M: 'static + chain::Watch<ChanSigner=Signer>,
278+
M: 'static + chain::Watch<Signer>,
279279
T: 'static + BroadcasterInterface,
280280
K: 'static + KeysInterface<Signer=Signer>,
281281
F: 'static + FeeEstimator,

fuzz/src/chanmon_consistency.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -108,9 +108,7 @@ impl TestChainMonitor {
108108
}
109109
}
110110
}
111-
impl chain::Watch for TestChainMonitor {
112-
type ChanSigner = EnforcingSigner;
113-
111+
impl chain::Watch<EnforcingSigner> for TestChainMonitor {
114112
fn watch_channel(&self, funding_txo: OutPoint, monitor: channelmonitor::ChannelMonitor<EnforcingSigner>) -> Result<(), channelmonitor::ChannelMonitorUpdateErr> {
115113
let mut ser = VecWriter(Vec::new());
116114
monitor.write(&mut ser).unwrap();

lightning-persister/src/lib.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ impl<Signer: Sign> DiskWriteable for ChannelMonitor<Signer> {
5151
}
5252

5353
impl<Signer: Sign, M, T, K, F, L> DiskWriteable for ChannelManager<Signer, Arc<M>, Arc<T>, Arc<K>, Arc<F>, Arc<L>>
54-
where M: chain::Watch<ChanSigner=Signer>,
54+
where M: chain::Watch<Signer>,
5555
T: BroadcasterInterface,
5656
K: KeysInterface<Signer=Signer>,
5757
F: FeeEstimator,
@@ -82,7 +82,7 @@ impl FilesystemPersister {
8282
manager: &ChannelManager<Signer, Arc<M>, Arc<T>, Arc<K>, Arc<F>, Arc<L>>
8383
) -> Result<(), std::io::Error>
8484
where Signer: Sign,
85-
M: chain::Watch<ChanSigner=Signer>,
85+
M: chain::Watch<Signer>,
8686
T: BroadcasterInterface,
8787
K: KeysInterface<Signer=Signer>,
8888
F: FeeEstimator,

lightning/src/chain/chainmonitor.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -140,15 +140,14 @@ where C::Target: chain::Filter,
140140
}
141141
}
142142

143-
impl<ChanSigner: Sign, C: Deref + Sync + Send, T: Deref + Sync + Send, F: Deref + Sync + Send, L: Deref + Sync + Send, P: Deref + Sync + Send> chain::Watch for ChainMonitor<ChanSigner, C, T, F, L, P>
143+
impl<ChanSigner: Sign, C: Deref + Sync + Send, T: Deref + Sync + Send, F: Deref + Sync + Send, L: Deref + Sync + Send, P: Deref + Sync + Send>
144+
chain::Watch<ChanSigner> for ChainMonitor<ChanSigner, C, T, F, L, P>
144145
where C::Target: chain::Filter,
145146
T::Target: BroadcasterInterface,
146147
F::Target: FeeEstimator,
147148
L::Target: Logger,
148149
P::Target: channelmonitor::Persist<ChanSigner>,
149150
{
150-
type ChanSigner = ChanSigner;
151-
152151
/// Adds the monitor that watches the channel referred to by the given outpoint.
153152
///
154153
/// Calls back to [`chain::Filter`] with the funding transaction and outputs to watch.

lightning/src/chain/mod.rs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -67,10 +67,7 @@ pub trait Access: Send + Sync {
6767
/// [`ChannelMonitor`]: channelmonitor/struct.ChannelMonitor.html
6868
/// [`ChannelMonitorUpdateErr`]: channelmonitor/enum.ChannelMonitorUpdateErr.html
6969
/// [`PermanentFailure`]: channelmonitor/enum.ChannelMonitorUpdateErr.html#variant.PermanentFailure
70-
pub trait Watch: Send + Sync {
71-
/// Keys needed by monitors for creating and signing transactions.
72-
type ChanSigner: Sign;
73-
70+
pub trait Watch<ChanSigner: Sign>: Send + Sync {
7471
/// Watches a channel identified by `funding_txo` using `monitor`.
7572
///
7673
/// Implementations are responsible for watching the chain for the funding transaction along
@@ -80,7 +77,7 @@ pub trait Watch: Send + Sync {
8077
/// [`get_outputs_to_watch`]: channelmonitor/struct.ChannelMonitor.html#method.get_outputs_to_watch
8178
/// [`block_connected`]: channelmonitor/struct.ChannelMonitor.html#method.block_connected
8279
/// [`block_disconnected`]: channelmonitor/struct.ChannelMonitor.html#method.block_disconnected
83-
fn watch_channel(&self, funding_txo: OutPoint, monitor: ChannelMonitor<Self::ChanSigner>) -> Result<(), ChannelMonitorUpdateErr>;
80+
fn watch_channel(&self, funding_txo: OutPoint, monitor: ChannelMonitor<ChanSigner>) -> Result<(), ChannelMonitorUpdateErr>;
8481

8582
/// Updates a channel identified by `funding_txo` by applying `update` to its monitor.
8683
///

lightning/src/ln/channelmanager.rs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -398,7 +398,7 @@ pub type SimpleRefChannelManager<'a, 'b, 'c, 'd, 'e, M, T, F, L> = ChannelManage
398398
/// SimpleArcChannelManager when you require a ChannelManager with a static lifetime, such as when
399399
/// you're using lightning-net-tokio.
400400
pub struct ChannelManager<Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref>
401-
where M::Target: chain::Watch<ChanSigner=Signer>,
401+
where M::Target: chain::Watch<Signer>,
402402
T::Target: BroadcasterInterface,
403403
K::Target: KeysInterface<Signer = Signer>,
404404
F::Target: FeeEstimator,
@@ -745,7 +745,7 @@ macro_rules! maybe_break_monitor_err {
745745
}
746746

747747
impl<Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<Signer, M, T, K, F, L>
748-
where M::Target: chain::Watch<ChanSigner=Signer>,
748+
where M::Target: chain::Watch<Signer>,
749749
T::Target: BroadcasterInterface,
750750
K::Target: KeysInterface<Signer = Signer>,
751751
F::Target: FeeEstimator,
@@ -3102,7 +3102,7 @@ impl<Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelMana
31023102
}
31033103

31043104
impl<Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> MessageSendEventsProvider for ChannelManager<Signer, M, T, K, F, L>
3105-
where M::Target: chain::Watch<ChanSigner=Signer>,
3105+
where M::Target: chain::Watch<Signer>,
31063106
T::Target: BroadcasterInterface,
31073107
K::Target: KeysInterface<Signer = Signer>,
31083108
F::Target: FeeEstimator,
@@ -3121,7 +3121,7 @@ impl<Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> MessageSend
31213121
}
31223122

31233123
impl<Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> EventsProvider for ChannelManager<Signer, M, T, K, F, L>
3124-
where M::Target: chain::Watch<ChanSigner=Signer>,
3124+
where M::Target: chain::Watch<Signer>,
31253125
T::Target: BroadcasterInterface,
31263126
K::Target: KeysInterface<Signer = Signer>,
31273127
F::Target: FeeEstimator,
@@ -3140,7 +3140,7 @@ impl<Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> EventsProvi
31403140
}
31413141

31423142
impl<Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<Signer, M, T, K, F, L>
3143-
where M::Target: chain::Watch<ChanSigner=Signer>,
3143+
where M::Target: chain::Watch<Signer>,
31443144
T::Target: BroadcasterInterface,
31453145
K::Target: KeysInterface<Signer = Signer>,
31463146
F::Target: FeeEstimator,
@@ -3320,7 +3320,7 @@ impl<Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelMana
33203320

33213321
impl<Signer: Sign, M: Deref + Sync + Send, T: Deref + Sync + Send, K: Deref + Sync + Send, F: Deref + Sync + Send, L: Deref + Sync + Send>
33223322
ChannelMessageHandler for ChannelManager<Signer, M, T, K, F, L>
3323-
where M::Target: chain::Watch<ChanSigner=Signer>,
3323+
where M::Target: chain::Watch<Signer>,
33243324
T::Target: BroadcasterInterface,
33253325
K::Target: KeysInterface<Signer = Signer>,
33263326
F::Target: FeeEstimator,
@@ -3833,7 +3833,7 @@ impl Readable for HTLCForwardInfo {
38333833
}
38343834

38353835
impl<Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> Writeable for ChannelManager<Signer, M, T, K, F, L>
3836-
where M::Target: chain::Watch<ChanSigner=Signer>,
3836+
where M::Target: chain::Watch<Signer>,
38373837
T::Target: BroadcasterInterface,
38383838
K::Target: KeysInterface<Signer = Signer>,
38393839
F::Target: FeeEstimator,
@@ -3916,7 +3916,7 @@ impl<Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> Writeable f
39163916
/// 5) Move the ChannelMonitors into your local chain::Watch.
39173917
/// 6) Disconnect/connect blocks on the ChannelManager.
39183918
pub struct ChannelManagerReadArgs<'a, Signer: 'a + Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref>
3919-
where M::Target: chain::Watch<ChanSigner=Signer>,
3919+
where M::Target: chain::Watch<Signer>,
39203920
T::Target: BroadcasterInterface,
39213921
K::Target: KeysInterface<Signer = Signer>,
39223922
F::Target: FeeEstimator,
@@ -3966,7 +3966,7 @@ pub struct ChannelManagerReadArgs<'a, Signer: 'a + Sign, M: Deref, T: Deref, K:
39663966

39673967
impl<'a, Signer: 'a + Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref>
39683968
ChannelManagerReadArgs<'a, Signer, M, T, K, F, L>
3969-
where M::Target: chain::Watch<ChanSigner=Signer>,
3969+
where M::Target: chain::Watch<Signer>,
39703970
T::Target: BroadcasterInterface,
39713971
K::Target: KeysInterface<Signer = Signer>,
39723972
F::Target: FeeEstimator,
@@ -3988,7 +3988,7 @@ impl<'a, Signer: 'a + Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref>
39883988
// SipmleArcChannelManager type:
39893989
impl<'a, Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref>
39903990
ReadableArgs<ChannelManagerReadArgs<'a, Signer, M, T, K, F, L>> for (BlockHash, Arc<ChannelManager<Signer, M, T, K, F, L>>)
3991-
where M::Target: chain::Watch<ChanSigner=Signer>,
3991+
where M::Target: chain::Watch<Signer>,
39923992
T::Target: BroadcasterInterface,
39933993
K::Target: KeysInterface<Signer = Signer>,
39943994
F::Target: FeeEstimator,
@@ -4002,7 +4002,7 @@ impl<'a, Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref>
40024002

40034003
impl<'a, Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref>
40044004
ReadableArgs<ChannelManagerReadArgs<'a, Signer, M, T, K, F, L>> for (BlockHash, ChannelManager<Signer, M, T, K, F, L>)
4005-
where M::Target: chain::Watch<ChanSigner=Signer>,
4005+
where M::Target: chain::Watch<Signer>,
40064006
T::Target: BroadcasterInterface,
40074007
K::Target: KeysInterface<Signer = Signer>,
40084008
F::Target: FeeEstimator,

lightning/src/util/test_utils.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -98,9 +98,7 @@ impl<'a> TestChainMonitor<'a> {
9898
}
9999
}
100100
}
101-
impl<'a> chain::Watch for TestChainMonitor<'a> {
102-
type ChanSigner = EnforcingSigner;
103-
101+
impl<'a> chain::Watch<EnforcingSigner> for TestChainMonitor<'a> {
104102
fn watch_channel(&self, funding_txo: OutPoint, monitor: channelmonitor::ChannelMonitor<EnforcingSigner>) -> Result<(), channelmonitor::ChannelMonitorUpdateErr> {
105103
// At every point where we get a monitor update, we should be able to send a useful monitor
106104
// to a watchtower and disk...

0 commit comments

Comments
 (0)