Skip to content

Commit 3cbf5b2

Browse files
Drop Deref indirection for SignerProvider
Reduces generics and verbosity across the codebase, should provide equivalent behavior. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent ea51536 commit 3cbf5b2

9 files changed

Lines changed: 183 additions & 325 deletions

File tree

lightning/src/chain/chainmonitor.rs

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -260,12 +260,11 @@ pub struct AsyncPersister<
260260
S: FutureSpawner,
261261
L: Logger + MaybeSend + MaybeSync + 'static,
262262
ES: EntropySource + MaybeSend + MaybeSync + 'static,
263-
SP: Deref + MaybeSend + MaybeSync + 'static,
263+
SP: SignerProvider + MaybeSend + MaybeSync + 'static,
264264
BI: BroadcasterInterface + MaybeSend + MaybeSync + 'static,
265265
FE: FeeEstimator + MaybeSend + MaybeSync + 'static,
266266
> where
267267
K::Target: KVStore + MaybeSync,
268-
SP::Target: SignerProvider + Sized,
269268
{
270269
persister: MonitorUpdatingPersisterAsync<K, S, L, ES, SP, BI, FE>,
271270
event_notifier: Arc<Notifier>,
@@ -276,13 +275,12 @@ impl<
276275
S: FutureSpawner,
277276
L: Logger + MaybeSend + MaybeSync + 'static,
278277
ES: EntropySource + MaybeSend + MaybeSync + 'static,
279-
SP: Deref + MaybeSend + MaybeSync + 'static,
278+
SP: SignerProvider + MaybeSend + MaybeSync + 'static,
280279
BI: BroadcasterInterface + MaybeSend + MaybeSync + 'static,
281280
FE: FeeEstimator + MaybeSend + MaybeSync + 'static,
282281
> Deref for AsyncPersister<K, S, L, ES, SP, BI, FE>
283282
where
284283
K::Target: KVStore + MaybeSync,
285-
SP::Target: SignerProvider + Sized,
286284
{
287285
type Target = Self;
288286
fn deref(&self) -> &Self {
@@ -295,18 +293,17 @@ impl<
295293
S: FutureSpawner,
296294
L: Logger + MaybeSend + MaybeSync + 'static,
297295
ES: EntropySource + MaybeSend + MaybeSync + 'static,
298-
SP: Deref + MaybeSend + MaybeSync + 'static,
296+
SP: SignerProvider + MaybeSend + MaybeSync + 'static,
299297
BI: BroadcasterInterface + MaybeSend + MaybeSync + 'static,
300298
FE: FeeEstimator + MaybeSend + MaybeSync + 'static,
301-
> Persist<<SP::Target as SignerProvider>::EcdsaSigner> for AsyncPersister<K, S, L, ES, SP, BI, FE>
299+
> Persist<<SP as SignerProvider>::EcdsaSigner> for AsyncPersister<K, S, L, ES, SP, BI, FE>
302300
where
303301
K::Target: KVStore + MaybeSync,
304-
SP::Target: SignerProvider + Sized,
305-
<SP::Target as SignerProvider>::EcdsaSigner: MaybeSend + 'static,
302+
<SP as SignerProvider>::EcdsaSigner: MaybeSend + 'static,
306303
{
307304
fn persist_new_channel(
308305
&self, monitor_name: MonitorName,
309-
monitor: &ChannelMonitor<<SP::Target as SignerProvider>::EcdsaSigner>,
306+
monitor: &ChannelMonitor<<SP as SignerProvider>::EcdsaSigner>,
310307
) -> ChannelMonitorUpdateStatus {
311308
let notifier = Arc::clone(&self.event_notifier);
312309
self.persister.spawn_async_persist_new_channel(monitor_name, monitor, notifier);
@@ -315,7 +312,7 @@ where
315312

316313
fn update_persisted_channel(
317314
&self, monitor_name: MonitorName, monitor_update: Option<&ChannelMonitorUpdate>,
318-
monitor: &ChannelMonitor<<SP::Target as SignerProvider>::EcdsaSigner>,
315+
monitor: &ChannelMonitor<<SP as SignerProvider>::EcdsaSigner>,
319316
) -> ChannelMonitorUpdateStatus {
320317
let notifier = Arc::clone(&self.event_notifier);
321318
self.persister.spawn_async_update_channel(monitor_name, monitor_update, monitor, notifier);
@@ -386,15 +383,15 @@ pub struct ChainMonitor<
386383
impl<
387384
K: Deref + MaybeSend + MaybeSync + 'static,
388385
S: FutureSpawner,
389-
SP: Deref + MaybeSend + MaybeSync + 'static,
386+
SP: SignerProvider + MaybeSend + MaybeSync + 'static,
390387
C: Deref,
391388
T: BroadcasterInterface + MaybeSend + MaybeSync + 'static,
392389
F: FeeEstimator + MaybeSend + MaybeSync + 'static,
393390
L: Logger + MaybeSend + MaybeSync + 'static,
394391
ES: EntropySource + MaybeSend + MaybeSync + 'static,
395392
>
396393
ChainMonitor<
397-
<SP::Target as SignerProvider>::EcdsaSigner,
394+
<SP as SignerProvider>::EcdsaSigner,
398395
C,
399396
T,
400397
F,
@@ -403,9 +400,8 @@ impl<
403400
ES,
404401
> where
405402
K::Target: KVStore + MaybeSync,
406-
SP::Target: SignerProvider + Sized,
407403
C::Target: chain::Filter,
408-
<SP::Target as SignerProvider>::EcdsaSigner: MaybeSend + 'static,
404+
<SP as SignerProvider>::EcdsaSigner: MaybeSend + 'static,
409405
{
410406
/// Creates a new `ChainMonitor` used to watch on-chain activity pertaining to channels.
411407
///

lightning/src/events/bump_transaction/mod.rs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -691,10 +691,13 @@ where
691691
///
692692
/// [`Event::BumpTransaction`]: crate::events::Event::BumpTransaction
693693
// Note that updates to documentation on this struct should be copied to the synchronous version.
694-
pub struct BumpTransactionEventHandler<B: BroadcasterInterface, C: Deref, SP: Deref, L: Logger>
695-
where
694+
pub struct BumpTransactionEventHandler<
695+
B: BroadcasterInterface,
696+
C: Deref,
697+
SP: SignerProvider,
698+
L: Logger,
699+
> where
696700
C::Target: CoinSelectionSource,
697-
SP::Target: SignerProvider,
698701
{
699702
broadcaster: B,
700703
utxo_source: C,
@@ -703,11 +706,10 @@ where
703706
secp: Secp256k1<secp256k1::All>,
704707
}
705708

706-
impl<B: BroadcasterInterface, C: Deref, SP: Deref, L: Logger>
709+
impl<B: BroadcasterInterface, C: Deref, SP: SignerProvider, L: Logger>
707710
BumpTransactionEventHandler<B, C, SP, L>
708711
where
709712
C::Target: CoinSelectionSource,
710-
SP::Target: SignerProvider,
711713
{
712714
/// Returns a new instance capable of handling [`Event::BumpTransaction`] events.
713715
///

lightning/src/events/bump_transaction/sync.rs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -264,20 +264,22 @@ where
264264
///
265265
/// [`Event::BumpTransaction`]: crate::events::Event::BumpTransaction
266266
// Note that updates to documentation on this struct should be copied to the synchronous version.
267-
pub struct BumpTransactionEventHandlerSync<B: BroadcasterInterface, C: Deref, SP: Deref, L: Logger>
268-
where
267+
pub struct BumpTransactionEventHandlerSync<
268+
B: BroadcasterInterface,
269+
C: Deref,
270+
SP: SignerProvider,
271+
L: Logger,
272+
> where
269273
C::Target: CoinSelectionSourceSync,
270-
SP::Target: SignerProvider,
271274
{
272275
bump_transaction_event_handler:
273276
BumpTransactionEventHandler<B, CoinSelectionSourceSyncWrapper<C>, SP, L>,
274277
}
275278

276-
impl<B: BroadcasterInterface, C: Deref, SP: Deref, L: Logger>
279+
impl<B: BroadcasterInterface, C: Deref, SP: SignerProvider, L: Logger>
277280
BumpTransactionEventHandlerSync<B, C, SP, L>
278281
where
279282
C::Target: CoinSelectionSourceSync,
280-
SP::Target: SignerProvider,
281283
{
282284
/// Constructs a new instance of [`BumpTransactionEventHandlerSync`].
283285
pub fn new(broadcaster: B, utxo_source: C, signer_provider: SP, logger: L) -> Self {

0 commit comments

Comments
 (0)