@@ -133,7 +133,7 @@ use bitcoin_hashes::sha256::Hash as Sha256;
133
133
use lightning:: ln:: { PaymentHash , PaymentPreimage , PaymentSecret } ;
134
134
use lightning:: ln:: channelmanager:: { ChannelDetails , PaymentId , PaymentSendFailure } ;
135
135
use lightning:: ln:: msgs:: LightningError ;
136
- use lightning:: routing:: scoring:: { LockableScore , Score } ;
136
+ use lightning:: routing:: scoring:: { LockableScore , MultiThreadedLockableScore , Score } ;
137
137
use lightning:: routing:: router:: { Payee , Route , RouteParameters } ;
138
138
use lightning:: util:: events:: { Event , EventHandler } ;
139
139
use lightning:: util:: logger:: Logger ;
@@ -150,16 +150,15 @@ use std::time::{Duration, SystemTime};
150
150
/// See [module-level documentation] for details.
151
151
///
152
152
/// [module-level documentation]: crate::payment
153
- pub struct InvoicePayer < P : Deref , R , S : Deref , L : Deref , E : EventHandler >
153
+ pub struct InvoicePayer < P : Deref , S : Score , R : Deref , SR : Deref < Target = MultiThreadedLockableScore < S > > , L : Deref , E : EventHandler >
154
154
where
155
155
P :: Target : Payer ,
156
- R : for < ' a > Router < <<S as Deref >:: Target as LockableScore < ' a > >:: Locked > ,
157
- S :: Target : for < ' a > LockableScore < ' a > ,
156
+ R :: Target : Router < S > ,
158
157
L :: Target : Logger ,
159
158
{
160
159
payer : P ,
161
160
router : R ,
162
- scorer : S ,
161
+ scorer : SR ,
163
162
logger : L ,
164
163
event_handler : E ,
165
164
/// Caches the overall attempts at making a payment, which is updated prior to retrying.
@@ -220,19 +219,18 @@ pub enum PaymentError {
220
219
Sending ( PaymentSendFailure ) ,
221
220
}
222
221
223
- impl < P : Deref , R , S : Deref , L : Deref , E : EventHandler > InvoicePayer < P , R , S , L , E >
222
+ impl < P : Deref , S : Score , R : Deref , SR : Deref < Target = MultiThreadedLockableScore < S > > , L : Deref , E : EventHandler > InvoicePayer < P , S , R , SR , L , E >
224
223
where
225
224
P :: Target : Payer ,
226
- R : for < ' a > Router < <<S as Deref >:: Target as LockableScore < ' a > >:: Locked > ,
227
- S :: Target : for < ' a > LockableScore < ' a > ,
225
+ R :: Target : Router < S > ,
228
226
L :: Target : Logger ,
229
227
{
230
228
/// Creates an invoice payer that retries failed payment paths.
231
229
///
232
230
/// Will forward any [`Event::PaymentPathFailed`] events to the decorated `event_handler` once
233
231
/// `retry_attempts` has been exceeded for a given [`Invoice`].
234
232
pub fn new (
235
- payer : P , router : R , scorer : S , logger : L , event_handler : E , retry_attempts : RetryAttempts
233
+ payer : P , router : R , scorer : SR , logger : L , event_handler : E , retry_attempts : RetryAttempts
236
234
) -> Self {
237
235
Self {
238
236
payer,
@@ -453,11 +451,10 @@ fn has_expired(params: &RouteParameters) -> bool {
453
451
} else { false }
454
452
}
455
453
456
- impl < P : Deref , R , S : Deref , L : Deref , E : EventHandler > EventHandler for InvoicePayer < P , R , S , L , E >
454
+ impl < P : Deref , S : Score , R : Deref , SR : Deref < Target = MultiThreadedLockableScore < S > > , L : Deref , E : EventHandler > EventHandler for InvoicePayer < P , S , R , SR , L , E >
457
455
where
458
456
P :: Target : Payer ,
459
- R : for < ' a > Router < <<S as Deref >:: Target as LockableScore < ' a > >:: Locked > ,
460
- S :: Target : for < ' a > LockableScore < ' a > ,
457
+ R :: Target : Router < S > ,
461
458
L :: Target : Logger ,
462
459
{
463
460
fn handle_event ( & self , event : & Event ) {
0 commit comments