Skip to content

Commit 40f1115

Browse files
committed
Change Persist's Sign from an associated type to a generic param
1 parent 0abaf87 commit 40f1115

File tree

4 files changed

+16
-22
lines changed

4 files changed

+16
-22
lines changed

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
@@ -396,7 +396,7 @@ pub type SimpleRefChannelManager<'a, 'b, 'c, 'd, 'e, M, T, F, L> = ChannelManage
396396
/// SimpleArcChannelManager when you require a ChannelManager with a static lifetime, such as when
397397
/// you're using lightning-net-tokio.
398398
pub struct ChannelManager<Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref>
399-
where M::Target: chain::Watch<ChanSigner=Signer>,
399+
where M::Target: chain::Watch<Signer>,
400400
T::Target: BroadcasterInterface,
401401
K::Target: KeysInterface<Signer = Signer>,
402402
F::Target: FeeEstimator,
@@ -710,7 +710,7 @@ macro_rules! maybe_break_monitor_err {
710710
}
711711

712712
impl<Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<Signer, M, T, K, F, L>
713-
where M::Target: chain::Watch<ChanSigner=Signer>,
713+
where M::Target: chain::Watch<Signer>,
714714
T::Target: BroadcasterInterface,
715715
K::Target: KeysInterface<Signer = Signer>,
716716
F::Target: FeeEstimator,
@@ -3063,7 +3063,7 @@ impl<Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelMana
30633063
}
30643064

30653065
impl<Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> MessageSendEventsProvider for ChannelManager<Signer, M, T, K, F, L>
3066-
where M::Target: chain::Watch<ChanSigner=Signer>,
3066+
where M::Target: chain::Watch<Signer>,
30673067
T::Target: BroadcasterInterface,
30683068
K::Target: KeysInterface<Signer = Signer>,
30693069
F::Target: FeeEstimator,
@@ -3082,7 +3082,7 @@ impl<Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> MessageSend
30823082
}
30833083

30843084
impl<Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> EventsProvider for ChannelManager<Signer, M, T, K, F, L>
3085-
where M::Target: chain::Watch<ChanSigner=Signer>,
3085+
where M::Target: chain::Watch<Signer>,
30863086
T::Target: BroadcasterInterface,
30873087
K::Target: KeysInterface<Signer = Signer>,
30883088
F::Target: FeeEstimator,
@@ -3101,7 +3101,7 @@ impl<Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> EventsProvi
31013101
}
31023102

31033103
impl<Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<Signer, M, T, K, F, L>
3104-
where M::Target: chain::Watch<ChanSigner=Signer>,
3104+
where M::Target: chain::Watch<Signer>,
31053105
T::Target: BroadcasterInterface,
31063106
K::Target: KeysInterface<Signer = Signer>,
31073107
F::Target: FeeEstimator,
@@ -3258,7 +3258,7 @@ impl<Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelMana
32583258

32593259
impl<Signer: Sign, M: Deref + Sync + Send, T: Deref + Sync + Send, K: Deref + Sync + Send, F: Deref + Sync + Send, L: Deref + Sync + Send>
32603260
ChannelMessageHandler for ChannelManager<Signer, M, T, K, F, L>
3261-
where M::Target: chain::Watch<ChanSigner=Signer>,
3261+
where M::Target: chain::Watch<Signer>,
32623262
T::Target: BroadcasterInterface,
32633263
K::Target: KeysInterface<Signer = Signer>,
32643264
F::Target: FeeEstimator,
@@ -3708,7 +3708,7 @@ impl Readable for HTLCForwardInfo {
37083708
}
37093709

37103710
impl<Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> Writeable for ChannelManager<Signer, M, T, K, F, L>
3711-
where M::Target: chain::Watch<ChanSigner=Signer>,
3711+
where M::Target: chain::Watch<Signer>,
37123712
T::Target: BroadcasterInterface,
37133713
K::Target: KeysInterface<Signer = Signer>,
37143714
F::Target: FeeEstimator,
@@ -3791,7 +3791,7 @@ impl<Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> Writeable f
37913791
/// 5) Move the ChannelMonitors into your local chain::Watch.
37923792
/// 6) Disconnect/connect blocks on the ChannelManager.
37933793
pub struct ChannelManagerReadArgs<'a, Signer: 'a + Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref>
3794-
where M::Target: chain::Watch<ChanSigner=Signer>,
3794+
where M::Target: chain::Watch<Signer>,
37953795
T::Target: BroadcasterInterface,
37963796
K::Target: KeysInterface<Signer = Signer>,
37973797
F::Target: FeeEstimator,
@@ -3841,7 +3841,7 @@ pub struct ChannelManagerReadArgs<'a, Signer: 'a + Sign, M: Deref, T: Deref, K:
38413841

38423842
impl<'a, Signer: 'a + Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref>
38433843
ChannelManagerReadArgs<'a, Signer, M, T, K, F, L>
3844-
where M::Target: chain::Watch<ChanSigner=Signer>,
3844+
where M::Target: chain::Watch<Signer>,
38453845
T::Target: BroadcasterInterface,
38463846
K::Target: KeysInterface<Signer = Signer>,
38473847
F::Target: FeeEstimator,
@@ -3863,7 +3863,7 @@ impl<'a, Signer: 'a + Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref>
38633863
// SipmleArcChannelManager type:
38643864
impl<'a, Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref>
38653865
ReadableArgs<ChannelManagerReadArgs<'a, Signer, M, T, K, F, L>> for (BlockHash, Arc<ChannelManager<Signer, M, T, K, F, L>>)
3866-
where M::Target: chain::Watch<ChanSigner=Signer>,
3866+
where M::Target: chain::Watch<Signer>,
38673867
T::Target: BroadcasterInterface,
38683868
K::Target: KeysInterface<Signer = Signer>,
38693869
F::Target: FeeEstimator,
@@ -3877,7 +3877,7 @@ impl<'a, Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref>
38773877

38783878
impl<'a, Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref>
38793879
ReadableArgs<ChannelManagerReadArgs<'a, Signer, M, T, K, F, L>> for (BlockHash, ChannelManager<Signer, M, T, K, F, L>)
3880-
where M::Target: chain::Watch<ChanSigner=Signer>,
3880+
where M::Target: chain::Watch<Signer>,
38813881
T::Target: BroadcasterInterface,
38823882
K::Target: KeysInterface<Signer = Signer>,
38833883
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)