@@ -2407,10 +2407,10 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
2407
2407
let session_priv = SecretKey :: from_slice ( & session_priv_bytes[ ..] ) . expect ( "RNG is busted" ) ;
2408
2408
2409
2409
let onion_keys = onion_utils:: construct_onion_keys ( & self . secp_ctx , & path, & session_priv)
2410
- . map_err ( |_| APIError :: RouteError { err : "Pubkey along hop was maliciously selected" } ) ?;
2410
+ . map_err ( |_| APIError :: InvalidRoute { err : "Pubkey along hop was maliciously selected" } ) ?;
2411
2411
let ( onion_payloads, htlc_msat, htlc_cltv) = onion_utils:: build_onion_payloads ( path, total_value, payment_secret, cur_height, keysend_preimage) ?;
2412
2412
if onion_utils:: route_size_insane ( & onion_payloads) {
2413
- return Err ( APIError :: RouteError { err : "Route size too large considering onion data" } ) ;
2413
+ return Err ( APIError :: InvalidRoute { err : "Route size too large considering onion data" } ) ;
2414
2414
}
2415
2415
let onion_packet = onion_utils:: construct_onion_packet ( onion_payloads, onion_keys, prng_seed, payment_hash) ;
2416
2416
@@ -2427,7 +2427,7 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
2427
2427
if let hash_map:: Entry :: Occupied ( mut chan) = channel_state. by_id . entry ( id) {
2428
2428
match {
2429
2429
if chan. get ( ) . get_counterparty_node_id ( ) != path. first ( ) . unwrap ( ) . pubkey {
2430
- return Err ( APIError :: RouteError { err : "Node ID mismatch on first hop!" } ) ;
2430
+ return Err ( APIError :: InvalidRoute { err : "Node ID mismatch on first hop!" } ) ;
2431
2431
}
2432
2432
if !chan. get ( ) . is_live ( ) {
2433
2433
return Err ( APIError :: ChannelUnavailable { err : "Peer for first hop currently disconnected/pending monitor update!" . to_owned ( ) } ) ;
@@ -2502,7 +2502,7 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
2502
2502
/// fields for more info.
2503
2503
///
2504
2504
/// If a pending payment is currently in-flight with the same [`PaymentId`] provided, this
2505
- /// method will error with an [`APIError::RouteError `]. Note, however, that once a payment
2505
+ /// method will error with an [`APIError::InvalidRoute `]. Note, however, that once a payment
2506
2506
/// is no longer pending (either via [`ChannelManager::abandon_payment`], or handling of an
2507
2507
/// [`Event::PaymentSent`]) LDK will not stop you from sending a second payment with the same
2508
2508
/// [`PaymentId`].
@@ -2521,7 +2521,7 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
2521
2521
/// PaymentSendFailure for more info.
2522
2522
///
2523
2523
/// In general, a path may raise:
2524
- /// * [`APIError::RouteError `] when an invalid route or forwarding parameter (cltv_delta, fee,
2524
+ /// * [`APIError::InvalidRoute `] when an invalid route or forwarding parameter (cltv_delta, fee,
2525
2525
/// node public key) is specified.
2526
2526
/// * [`APIError::ChannelUnavailable`] if the next-hop channel is not available for updates
2527
2527
/// (including due to previous monitor update failure or new permanent monitor update
@@ -2586,7 +2586,7 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
2586
2586
2587
2587
fn send_payment_internal ( & self , route : & Route , payment_hash : PaymentHash , payment_secret : & Option < PaymentSecret > , keysend_preimage : Option < PaymentPreimage > , payment_id : PaymentId , recv_value_msat : Option < u64 > , onion_session_privs : Vec < [ u8 ; 32 ] > ) -> Result < ( ) , PaymentSendFailure > {
2588
2588
if route. paths . len ( ) < 1 {
2589
- return Err ( PaymentSendFailure :: ParameterError ( APIError :: RouteError { err : "There must be at least one path to send over" } ) ) ;
2589
+ return Err ( PaymentSendFailure :: ParameterError ( APIError :: InvalidRoute { err : "There must be at least one path to send over" } ) ) ;
2590
2590
}
2591
2591
if payment_secret. is_none ( ) && route. paths . len ( ) > 1 {
2592
2592
return Err ( PaymentSendFailure :: ParameterError ( APIError :: APIMisuseError { err : "Payment secret is required for multi-path payments" . to_string ( ) } ) ) ;
@@ -2596,12 +2596,12 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
2596
2596
let mut path_errs = Vec :: with_capacity ( route. paths . len ( ) ) ;
2597
2597
' path_check: for path in route. paths . iter ( ) {
2598
2598
if path. len ( ) < 1 || path. len ( ) > 20 {
2599
- path_errs. push ( Err ( APIError :: RouteError { err : "Path didn't go anywhere/had bogus size" } ) ) ;
2599
+ path_errs. push ( Err ( APIError :: InvalidRoute { err : "Path didn't go anywhere/had bogus size" } ) ) ;
2600
2600
continue ' path_check;
2601
2601
}
2602
2602
for ( idx, hop) in path. iter ( ) . enumerate ( ) {
2603
2603
if idx != path. len ( ) - 1 && hop. pubkey == our_node_id {
2604
- path_errs. push ( Err ( APIError :: RouteError { err : "Path went through us but wasn't a simple rebalance loop to us" } ) ) ;
2604
+ path_errs. push ( Err ( APIError :: InvalidRoute { err : "Path went through us but wasn't a simple rebalance loop to us" } ) ) ;
2605
2605
continue ' path_check;
2606
2606
}
2607
2607
}
0 commit comments