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
//! # }
@@ -178,8 +178,8 @@ pub trait Payer {
178
178
pub trait Router < S : routing:: Score > {
179
179
/// Finds a [`Route`] between `payer` and `payee` for a payment with the given values.
180
180
fn find_route (
181
- & self , payer : & PublicKey , params : & RouteParameters , first_hops : Option < & [ & ChannelDetails ] > ,
182
- scorer : & S
181
+ & self , payer : & PublicKey , params : & RouteParameters , payment_hash : & PaymentHash ,
182
+ first_hops : Option < & [ & ChannelDetails ] > , scorer : & S
183
183
) -> Result < Route , LightningError > ;
184
184
}
185
185
@@ -327,10 +327,8 @@ where
327
327
let payer = self . payer . node_id ( ) ;
328
328
let first_hops = self . payer . first_hops ( ) ;
329
329
let route = self . router . find_route (
330
- & payer,
331
- params,
332
- Some ( & first_hops. iter ( ) . collect :: < Vec < _ > > ( ) ) ,
333
- & self . scorer . lock ( ) ,
330
+ & payer, params, & payment_hash, Some ( & first_hops. iter ( ) . collect :: < Vec < _ > > ( ) ) ,
331
+ & self . scorer . lock ( )
334
332
) . map_err ( |e| PaymentError :: Routing ( e) ) ?;
335
333
336
334
match send_payment ( & route) {
@@ -390,7 +388,10 @@ where
390
388
391
389
let payer = self . payer . node_id ( ) ;
392
390
let first_hops = self . payer . first_hops ( ) ;
393
- let route = self . router . find_route ( & payer, & params, Some ( & first_hops. iter ( ) . collect :: < Vec < _ > > ( ) ) , & self . scorer . lock ( ) ) ;
391
+ let route = self . router . find_route (
392
+ & payer, & params, & payment_hash, Some ( & first_hops. iter ( ) . collect :: < Vec < _ > > ( ) ) ,
393
+ & self . scorer . lock ( )
394
+ ) ;
394
395
if route. is_err ( ) {
395
396
log_trace ! ( self . logger, "Failed to find a route for payment {}; not retrying (attempts: {})" , log_bytes!( payment_hash. 0 ) , attempts) ;
396
397
return Err ( ( ) ) ;
@@ -1152,11 +1153,8 @@ mod tests {
1152
1153
1153
1154
impl < S : routing:: Score > Router < S > for TestRouter {
1154
1155
fn find_route (
1155
- & self ,
1156
- _payer : & PublicKey ,
1157
- params : & RouteParameters ,
1158
- _first_hops : Option < & [ & ChannelDetails ] > ,
1159
- _scorer : & S ,
1156
+ & self , _payer : & PublicKey , params : & RouteParameters , _payment_hash : & PaymentHash ,
1157
+ _first_hops : Option < & [ & ChannelDetails ] > , _scorer : & S
1160
1158
) -> Result < Route , LightningError > {
1161
1159
Ok ( Route {
1162
1160
payee : Some ( params. payee . clone ( ) ) , ..Self :: route_for_value ( params. final_value_msat )
@@ -1168,11 +1166,8 @@ mod tests {
1168
1166
1169
1167
impl < S : routing:: Score > Router < S > for FailingRouter {
1170
1168
fn find_route (
1171
- & self ,
1172
- _payer : & PublicKey ,
1173
- _params : & RouteParameters ,
1174
- _first_hops : Option < & [ & ChannelDetails ] > ,
1175
- _scorer : & S ,
1169
+ & self , _payer : & PublicKey , _params : & RouteParameters , _payment_hash : & PaymentHash ,
1170
+ _first_hops : Option < & [ & ChannelDetails ] > , _scorer : & S
1176
1171
) -> Result < Route , LightningError > {
1177
1172
Err ( LightningError { err : String :: new ( ) , action : ErrorAction :: IgnoreError } )
1178
1173
}
@@ -1337,8 +1332,10 @@ mod tests {
1337
1332
struct ManualRouter ( RefCell < VecDeque < Result < Route , LightningError > > > ) ;
1338
1333
1339
1334
impl < S : routing:: Score > Router < S > for ManualRouter {
1340
- fn find_route ( & self , _payer : & PublicKey , _params : & RouteParameters , _first_hops : Option < & [ & ChannelDetails ] > , _scorer : & S )
1341
- -> Result < Route , LightningError > {
1335
+ fn find_route (
1336
+ & self , _payer : & PublicKey , _params : & RouteParameters , _payment_hash : & PaymentHash ,
1337
+ _first_hops : Option < & [ & ChannelDetails ] > , _scorer : & S
1338
+ ) -> Result < Route , LightningError > {
1342
1339
self . 0 . borrow_mut ( ) . pop_front ( ) . unwrap ( )
1343
1340
}
1344
1341
}
0 commit comments