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
@@ -326,10 +326,8 @@ where
326
326
let payer = self . payer . node_id ( ) ;
327
327
let first_hops = self . payer . first_hops ( ) ;
328
328
let route = self . router . find_route (
329
- & payer,
330
- params,
331
- Some ( & first_hops. iter ( ) . collect :: < Vec < _ > > ( ) ) ,
332
- & self . scorer . lock ( ) ,
329
+ & payer, params, & payment_hash, Some ( & first_hops. iter ( ) . collect :: < Vec < _ > > ( ) ) ,
330
+ & self . scorer . lock ( )
333
331
) . map_err ( |e| PaymentError :: Routing ( e) ) ?;
334
332
335
333
match send_payment ( & route) {
@@ -389,7 +387,10 @@ where
389
387
390
388
let payer = self . payer . node_id ( ) ;
391
389
let first_hops = self . payer . first_hops ( ) ;
392
- let route = self . router . find_route ( & payer, & params, Some ( & first_hops. iter ( ) . collect :: < Vec < _ > > ( ) ) , & self . scorer . lock ( ) ) ;
390
+ let route = self . router . find_route (
391
+ & payer, & params, & payment_hash, Some ( & first_hops. iter ( ) . collect :: < Vec < _ > > ( ) ) ,
392
+ & self . scorer . lock ( )
393
+ ) ;
393
394
if route. is_err ( ) {
394
395
log_trace ! ( self . logger, "Failed to find a route for payment {}; not retrying (attempts: {})" , log_bytes!( payment_hash. 0 ) , attempts) ;
395
396
return Err ( ( ) ) ;
@@ -1149,11 +1150,8 @@ mod tests {
1149
1150
1150
1151
impl < S : routing:: Score > Router < S > for TestRouter {
1151
1152
fn find_route (
1152
- & self ,
1153
- _payer : & PublicKey ,
1154
- params : & RouteParameters ,
1155
- _first_hops : Option < & [ & ChannelDetails ] > ,
1156
- _scorer : & S ,
1153
+ & self , _payer : & PublicKey , params : & RouteParameters , _payment_hash : & PaymentHash ,
1154
+ _first_hops : Option < & [ & ChannelDetails ] > , _scorer : & S
1157
1155
) -> Result < Route , LightningError > {
1158
1156
Ok ( Route {
1159
1157
payee : Some ( params. payee . clone ( ) ) , ..Self :: route_for_value ( params. final_value_msat )
@@ -1165,11 +1163,8 @@ mod tests {
1165
1163
1166
1164
impl < S : routing:: Score > Router < S > for FailingRouter {
1167
1165
fn find_route (
1168
- & self ,
1169
- _payer : & PublicKey ,
1170
- _params : & RouteParameters ,
1171
- _first_hops : Option < & [ & ChannelDetails ] > ,
1172
- _scorer : & S ,
1166
+ & self , _payer : & PublicKey , _params : & RouteParameters , _payment_hash : & PaymentHash ,
1167
+ _first_hops : Option < & [ & ChannelDetails ] > , _scorer : & S
1173
1168
) -> Result < Route , LightningError > {
1174
1169
Err ( LightningError { err : String :: new ( ) , action : ErrorAction :: IgnoreError } )
1175
1170
}
@@ -1334,8 +1329,10 @@ mod tests {
1334
1329
struct ManualRouter ( RefCell < VecDeque < Result < Route , LightningError > > > ) ;
1335
1330
1336
1331
impl < S : routing:: Score > Router < S > for ManualRouter {
1337
- fn find_route ( & self , _payer : & PublicKey , _params : & RouteParameters , _first_hops : Option < & [ & ChannelDetails ] > , _scorer : & S )
1338
- -> Result < Route , LightningError > {
1332
+ fn find_route (
1333
+ & self , _payer : & PublicKey , _params : & RouteParameters , _payment_hash : & PaymentHash ,
1334
+ _first_hops : Option < & [ & ChannelDetails ] > , _scorer : & S
1335
+ ) -> Result < Route , LightningError > {
1339
1336
self . 0 . borrow_mut ( ) . pop_front ( ) . unwrap ( )
1340
1337
}
1341
1338
}
0 commit comments