65
65
//! # struct FakeRouter {};
66
66
//! # impl<S: routing::Score> Router<S> for FakeRouter {
67
67
//! # fn find_route(
68
- //! # &self, payer: &PublicKey, params: &RouteParameters,
68
+ //! # &self, payer: &PublicKey, params: &RouteParameters, payment_hash: &PaymentHash,
69
69
//! # first_hops: Option<&[&ChannelDetails]>, scorer: &S
70
70
//! # ) -> Result<Route, LightningError> { unimplemented!() }
71
71
//! # }
@@ -180,8 +180,8 @@ pub trait Payer {
180
180
pub trait Router < S : routing:: Score > {
181
181
/// Finds a [`Route`] between `payer` and `payee` for a payment with the given values.
182
182
fn find_route (
183
- & self , payer : & PublicKey , params : & RouteParameters , first_hops : Option < & [ & ChannelDetails ] > ,
184
- scorer : & S
183
+ & self , payer : & PublicKey , params : & RouteParameters , payment_hash : & PaymentHash ,
184
+ first_hops : Option < & [ & ChannelDetails ] > , scorer : & S
185
185
) -> Result < Route , LightningError > ;
186
186
}
187
187
@@ -329,10 +329,8 @@ where
329
329
let payer = self . payer . node_id ( ) ;
330
330
let first_hops = self . payer . first_hops ( ) ;
331
331
let route = self . router . find_route (
332
- & payer,
333
- params,
334
- Some ( & first_hops. iter ( ) . collect :: < Vec < _ > > ( ) ) ,
335
- & self . scorer . lock ( ) ,
332
+ & payer, params, & payment_hash, Some ( & first_hops. iter ( ) . collect :: < Vec < _ > > ( ) ) ,
333
+ & self . scorer . lock ( )
336
334
) . map_err ( |e| PaymentError :: Routing ( e) ) ?;
337
335
338
336
match send_payment ( & route) {
@@ -392,7 +390,10 @@ where
392
390
393
391
let payer = self . payer . node_id ( ) ;
394
392
let first_hops = self . payer . first_hops ( ) ;
395
- let route = self . router . find_route ( & payer, & params, Some ( & first_hops. iter ( ) . collect :: < Vec < _ > > ( ) ) , & self . scorer . lock ( ) ) ;
393
+ let route = self . router . find_route (
394
+ & payer, & params, & payment_hash, Some ( & first_hops. iter ( ) . collect :: < Vec < _ > > ( ) ) ,
395
+ & self . scorer . lock ( )
396
+ ) ;
396
397
if route. is_err ( ) {
397
398
log_trace ! ( self . logger, "Failed to find a route for payment {}; not retrying (attempts: {})" , log_bytes!( payment_hash. 0 ) , attempts) ;
398
399
return Err ( ( ) ) ;
@@ -1187,11 +1188,8 @@ mod tests {
1187
1188
1188
1189
impl < S : routing:: Score > Router < S > for TestRouter {
1189
1190
fn find_route (
1190
- & self ,
1191
- _payer : & PublicKey ,
1192
- params : & RouteParameters ,
1193
- _first_hops : Option < & [ & ChannelDetails ] > ,
1194
- _scorer : & S ,
1191
+ & self , _payer : & PublicKey , params : & RouteParameters , _payment_hash : & PaymentHash ,
1192
+ _first_hops : Option < & [ & ChannelDetails ] > , _scorer : & S
1195
1193
) -> Result < Route , LightningError > {
1196
1194
Ok ( Route {
1197
1195
payee : Some ( params. payee . clone ( ) ) , ..Self :: route_for_value ( params. final_value_msat )
@@ -1203,11 +1201,8 @@ mod tests {
1203
1201
1204
1202
impl < S : routing:: Score > Router < S > for FailingRouter {
1205
1203
fn find_route (
1206
- & self ,
1207
- _payer : & PublicKey ,
1208
- _params : & RouteParameters ,
1209
- _first_hops : Option < & [ & ChannelDetails ] > ,
1210
- _scorer : & S ,
1204
+ & self , _payer : & PublicKey , _params : & RouteParameters , _payment_hash : & PaymentHash ,
1205
+ _first_hops : Option < & [ & ChannelDetails ] > , _scorer : & S
1211
1206
) -> Result < Route , LightningError > {
1212
1207
Err ( LightningError { err : String :: new ( ) , action : ErrorAction :: IgnoreError } )
1213
1208
}
@@ -1370,8 +1365,10 @@ mod tests {
1370
1365
struct ManualRouter ( RefCell < VecDeque < Result < Route , LightningError > > > ) ;
1371
1366
1372
1367
impl < S : routing:: Score > Router < S > for ManualRouter {
1373
- fn find_route ( & self , _payer : & PublicKey , _params : & RouteParameters , _first_hops : Option < & [ & ChannelDetails ] > , _scorer : & S )
1374
- -> Result < Route , LightningError > {
1368
+ fn find_route (
1369
+ & self , _payer : & PublicKey , _params : & RouteParameters , _payment_hash : & PaymentHash ,
1370
+ _first_hops : Option < & [ & ChannelDetails ] > , _scorer : & S
1371
+ ) -> Result < Route , LightningError > {
1375
1372
self . 0 . borrow_mut ( ) . pop_front ( ) . unwrap ( )
1376
1373
}
1377
1374
}
0 commit comments