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