Skip to content

Commit

Permalink
Merge pull request #1929 from valentinewallace/2022-12-outbound-payme…
Browse files Browse the repository at this point in the history
…nt-mod-followup

Outbound payment module follow-up
  • Loading branch information
TheBlueMatt authored Dec 21, 2022
2 parents c04d1c9 + cc60fd6 commit f0c181e
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 10 deletions.
2 changes: 1 addition & 1 deletion lightning/src/ln/channelmanager.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2386,7 +2386,7 @@ impl<M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelManager<M, T, K, F
#[cfg(test)]
pub(crate) fn test_add_new_pending_payment(&self, payment_hash: PaymentHash, payment_secret: Option<PaymentSecret>, payment_id: PaymentId, route: &Route) -> Result<Vec<[u8; 32]>, PaymentSendFailure> {
let best_block_height = self.best_block.read().unwrap().height();
self.pending_outbound_payments.add_new_pending_payment(payment_hash, payment_secret, payment_id, route, &self.keys_manager, best_block_height)
self.pending_outbound_payments.test_add_new_pending_payment(payment_hash, payment_secret, payment_id, route, &self.keys_manager, best_block_height)
}


Expand Down
28 changes: 19 additions & 9 deletions lightning/src/ln/outbound_payment.rs
Original file line number Diff line number Diff line change
Expand Up @@ -403,7 +403,15 @@ impl OutboundPayments {
}
}

pub(super) fn add_new_pending_payment<K: Deref>(
#[cfg(test)]
pub(super) fn test_add_new_pending_payment<K: Deref>(
&self, payment_hash: PaymentHash, payment_secret: Option<PaymentSecret>, payment_id: PaymentId,
route: &Route, keys_manager: &K, best_block_height: u32
) -> Result<Vec<[u8; 32]>, PaymentSendFailure> where K::Target: KeysInterface {
self.add_new_pending_payment(payment_hash, payment_secret, payment_id, route, keys_manager, best_block_height)
}

fn add_new_pending_payment<K: Deref>(
&self, payment_hash: PaymentHash, payment_secret: Option<PaymentSecret>, payment_id: PaymentId,
route: &Route, keys_manager: &K, best_block_height: u32
) -> Result<Vec<[u8; 32]>, PaymentSendFailure> where K::Target: KeysInterface {
Expand Down Expand Up @@ -439,7 +447,8 @@ impl OutboundPayments {
&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]>, keys_manager: &K, best_block_height: u32,
send_payment_along_path: F) -> Result<(), PaymentSendFailure>
send_payment_along_path: F
) -> Result<(), PaymentSendFailure>
where
K::Target: KeysInterface,
F: Fn(&Vec<RouteHop>, &Option<PaymentParameters>, &PaymentHash, &Option<PaymentSecret>, u64,
Expand Down Expand Up @@ -548,7 +557,8 @@ impl OutboundPayments {
&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]>, keys_manager: &K, best_block_height: u32,
send_payment_along_path: F) -> Result<(), PaymentSendFailure>
send_payment_along_path: F
) -> Result<(), PaymentSendFailure>
where
K::Target: KeysInterface,
F: Fn(&Vec<RouteHop>, &Option<PaymentParameters>, &PaymentHash, &Option<PaymentSecret>, u64,
Expand All @@ -561,8 +571,8 @@ impl OutboundPayments {

pub(super) fn claim_htlc<L: Deref>(
&self, payment_id: PaymentId, payment_preimage: PaymentPreimage, session_priv: SecretKey,
path: Vec<RouteHop>, from_onchain: bool, pending_events: &Mutex<Vec<events::Event>>, logger: &L)
where L::Target: Logger {
path: Vec<RouteHop>, from_onchain: bool, pending_events: &Mutex<Vec<events::Event>>, logger: &L
) where L::Target: Logger {
let mut session_priv_bytes = [0; 32];
session_priv_bytes.copy_from_slice(&session_priv[..]);
let mut outbounds = self.pending_outbound_payments.lock().unwrap();
Expand Down Expand Up @@ -671,8 +681,8 @@ impl OutboundPayments {
&self, source: &HTLCSource, payment_hash: &PaymentHash, onion_error: &HTLCFailReason,
path: &Vec<RouteHop>, session_priv: &SecretKey, payment_id: &PaymentId,
payment_params: &Option<PaymentParameters>, probing_cookie_secret: [u8; 32],
secp_ctx: &Secp256k1<secp256k1::All>, pending_events: &Mutex<Vec<events::Event>>, logger: &L)
where L::Target: Logger {
secp_ctx: &Secp256k1<secp256k1::All>, pending_events: &Mutex<Vec<events::Event>>, logger: &L
) where L::Target: Logger {
let mut session_priv_bytes = [0; 32];
session_priv_bytes.copy_from_slice(&session_priv[..]);
let mut outbounds = self.pending_outbound_payments.lock().unwrap();
Expand Down Expand Up @@ -712,9 +722,9 @@ impl OutboundPayments {
log_trace!(logger, "Failing outbound payment HTLC with payment_hash {}", log_bytes!(payment_hash.0));

let path_failure = {
#[cfg(test)]
#[cfg(test)]
let (network_update, short_channel_id, payment_retryable, onion_error_code, onion_error_data) = onion_error.decode_onion_failure(secp_ctx, logger, &source);
#[cfg(not(test))]
#[cfg(not(test))]
let (network_update, short_channel_id, payment_retryable, _, _) = onion_error.decode_onion_failure(secp_ctx, logger, &source);

if payment_is_probe(payment_hash, &payment_id, probing_cookie_secret) {
Expand Down

0 comments on commit f0c181e

Please sign in to comment.