Skip to content

Commit 62d52c6

Browse files
Merge pull request #2801 from valentinewallace/2023-12-rb-groundwork-followups
#2128 follow-ups
2 parents 3eec5d3 + b20a9ad commit 62d52c6

File tree

6 files changed

+93
-88
lines changed

6 files changed

+93
-88
lines changed

lightning/src/ln/channelmanager.rs

+14-14
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ use crate::ln::features::{Bolt12InvoiceFeatures, ChannelFeatures, ChannelTypeFea
4848
#[cfg(any(feature = "_test_utils", test))]
4949
use crate::ln::features::Bolt11InvoiceFeatures;
5050
use crate::routing::router::{BlindedTail, InFlightHtlcs, Path, Payee, PaymentParameters, Route, RouteParameters, Router};
51-
use crate::ln::onion_payment::{check_incoming_htlc_cltv, create_recv_pending_htlc_info, create_fwd_pending_htlc_info, decode_incoming_update_add_htlc_onion, InboundOnionErr, NextPacketDetails};
51+
use crate::ln::onion_payment::{check_incoming_htlc_cltv, create_recv_pending_htlc_info, create_fwd_pending_htlc_info, decode_incoming_update_add_htlc_onion, InboundHTLCErr, NextPacketDetails};
5252
use crate::ln::msgs;
5353
use crate::ln::onion_utils;
5454
use crate::ln::onion_utils::{HTLCFailReason, INVALID_ONION_BLINDING};
@@ -3234,14 +3234,14 @@ where
32343234
// delay) once they've send us a commitment_signed!
32353235
PendingHTLCStatus::Forward(info)
32363236
},
3237-
Err(InboundOnionErr { err_code, err_data, msg }) => return_err!(msg, err_code, &err_data)
3237+
Err(InboundHTLCErr { err_code, err_data, msg }) => return_err!(msg, err_code, &err_data)
32383238
}
32393239
},
32403240
onion_utils::Hop::Forward { next_hop_data, next_hop_hmac, new_packet_bytes } => {
32413241
match create_fwd_pending_htlc_info(msg, next_hop_data, next_hop_hmac,
32423242
new_packet_bytes, shared_secret, next_packet_pubkey_opt) {
32433243
Ok(info) => PendingHTLCStatus::Forward(info),
3244-
Err(InboundOnionErr { err_code, err_data, msg }) => return_err!(msg, err_code, &err_data)
3244+
Err(InboundHTLCErr { err_code, err_data, msg }) => return_err!(msg, err_code, &err_data)
32453245
}
32463246
}
32473247
}
@@ -4309,7 +4309,7 @@ where
43094309
current_height, self.default_configuration.accept_mpp_keysend)
43104310
{
43114311
Ok(info) => phantom_receives.push((prev_short_channel_id, prev_funding_outpoint, prev_user_channel_id, vec![(info, prev_htlc_id)])),
4312-
Err(InboundOnionErr { err_code, err_data, msg }) => failed_payment!(msg, err_code, err_data, Some(phantom_shared_secret))
4312+
Err(InboundHTLCErr { err_code, err_data, msg }) => failed_payment!(msg, err_code, err_data, Some(phantom_shared_secret))
43134313
}
43144314
},
43154315
_ => panic!(),
@@ -6005,10 +6005,10 @@ where
60056005
let per_peer_state = self.per_peer_state.read().unwrap();
60066006
let peer_state_mutex = per_peer_state.get(counterparty_node_id)
60076007
.ok_or_else(|| {
6008-
let err_str = format!("Can't find a peer matching the passed counterparty node_id {}", counterparty_node_id);
6008+
let err_str = format!("Can't find a peer matching the passed counterparty node_id {}", counterparty_node_id);
60096009
log_error!(logger, "{}", err_str);
60106010

6011-
APIError::ChannelUnavailable { err: err_str }
6011+
APIError::ChannelUnavailable { err: err_str }
60126012
})?;
60136013
let mut peer_state_lock = peer_state_mutex.lock().unwrap();
60146014
let peer_state = &mut *peer_state_lock;
@@ -6031,7 +6031,7 @@ where
60316031
APIError::ChannelUnavailable { err: err_str }
60326032
})
60336033
}
6034-
_ => {
6034+
_ => {
60356035
let err_str = "No such channel awaiting to be accepted.".to_owned();
60366036
log_error!(logger, "{}", err_str);
60376037

@@ -12119,8 +12119,8 @@ mod tests {
1211912119
let sender_intended_amt_msat = 100;
1212012120
let extra_fee_msat = 10;
1212112121
let hop_data = msgs::InboundOnionPayload::Receive {
12122-
amt_msat: 100,
12123-
outgoing_cltv_value: 42,
12122+
sender_intended_htlc_amt_msat: 100,
12123+
cltv_expiry_height: 42,
1212412124
payment_metadata: None,
1212512125
keysend_preimage: None,
1212612126
payment_data: Some(msgs::FinalOnionHopData {
@@ -12131,7 +12131,7 @@ mod tests {
1213112131
// Check that if the amount we received + the penultimate hop extra fee is less than the sender
1213212132
// intended amount, we fail the payment.
1213312133
let current_height: u32 = node[0].node.best_block.read().unwrap().height();
12134-
if let Err(crate::ln::channelmanager::InboundOnionErr { err_code, .. }) =
12134+
if let Err(crate::ln::channelmanager::InboundHTLCErr { err_code, .. }) =
1213512135
create_recv_pending_htlc_info(hop_data, [0; 32], PaymentHash([0; 32]),
1213612136
sender_intended_amt_msat - extra_fee_msat - 1, 42, None, true, Some(extra_fee_msat),
1213712137
current_height, node[0].node.default_configuration.accept_mpp_keysend)
@@ -12141,8 +12141,8 @@ mod tests {
1214112141

1214212142
// If amt_received + extra_fee is equal to the sender intended amount, we're fine.
1214312143
let hop_data = msgs::InboundOnionPayload::Receive { // This is the same payload as above, InboundOnionPayload doesn't implement Clone
12144-
amt_msat: 100,
12145-
outgoing_cltv_value: 42,
12144+
sender_intended_htlc_amt_msat: 100,
12145+
cltv_expiry_height: 42,
1214612146
payment_metadata: None,
1214712147
keysend_preimage: None,
1214812148
payment_data: Some(msgs::FinalOnionHopData {
@@ -12165,8 +12165,8 @@ mod tests {
1216512165

1216612166
let current_height: u32 = node[0].node.best_block.read().unwrap().height();
1216712167
let result = create_recv_pending_htlc_info(msgs::InboundOnionPayload::Receive {
12168-
amt_msat: 100,
12169-
outgoing_cltv_value: 22,
12168+
sender_intended_htlc_amt_msat: 100,
12169+
cltv_expiry_height: 22,
1217012170
payment_metadata: None,
1217112171
keysend_preimage: None,
1217212172
payment_data: Some(msgs::FinalOnionHopData {

lightning/src/ln/functional_tests.rs

+4-2
Original file line numberDiff line numberDiff line change
@@ -8212,8 +8212,10 @@ fn test_onion_value_mpp_set_calculation() {
82128212
RecipientOnionFields::secret_only(our_payment_secret), height + 1, &None).unwrap();
82138213
// Edit amt_to_forward to simulate the sender having set
82148214
// the final amount and the routing node taking less fee
8215-
if let msgs::OutboundOnionPayload::Receive { ref mut amt_msat, .. } = onion_payloads[1] {
8216-
*amt_msat = 99_000;
8215+
if let msgs::OutboundOnionPayload::Receive {
8216+
ref mut sender_intended_htlc_amt_msat, ..
8217+
} = onion_payloads[1] {
8218+
*sender_intended_htlc_amt_msat = 99_000;
82178219
} else { panic!() }
82188220
let new_onion_packet = onion_utils::construct_onion_packet(onion_payloads, onion_keys, [0; 32], &our_payment_hash).unwrap();
82198221
payment_event.msgs[0].onion_routing_packet = new_onion_packet;

lightning/src/ln/msgs.rs

+36-36
Original file line numberDiff line numberDiff line change
@@ -1706,8 +1706,8 @@ mod fuzzy_internal_msgs {
17061706
payment_metadata: Option<Vec<u8>>,
17071707
keysend_preimage: Option<PaymentPreimage>,
17081708
custom_tlvs: Vec<(u64, Vec<u8>)>,
1709-
amt_msat: u64,
1710-
outgoing_cltv_value: u32,
1709+
sender_intended_htlc_amt_msat: u64,
1710+
cltv_expiry_height: u32,
17111711
},
17121712
BlindedForward {
17131713
short_channel_id: u64,
@@ -1717,9 +1717,9 @@ mod fuzzy_internal_msgs {
17171717
intro_node_blinding_point: PublicKey,
17181718
},
17191719
BlindedReceive {
1720-
amt_msat: u64,
1720+
sender_intended_htlc_amt_msat: u64,
17211721
total_msat: u64,
1722-
outgoing_cltv_value: u32,
1722+
cltv_expiry_height: u32,
17231723
payment_secret: PaymentSecret,
17241724
payment_constraints: PaymentConstraints,
17251725
intro_node_blinding_point: Option<PublicKey>,
@@ -1738,17 +1738,17 @@ mod fuzzy_internal_msgs {
17381738
payment_metadata: Option<Vec<u8>>,
17391739
keysend_preimage: Option<PaymentPreimage>,
17401740
custom_tlvs: Vec<(u64, Vec<u8>)>,
1741-
amt_msat: u64,
1742-
outgoing_cltv_value: u32,
1741+
sender_intended_htlc_amt_msat: u64,
1742+
cltv_expiry_height: u32,
17431743
},
17441744
BlindedForward {
17451745
encrypted_tlvs: Vec<u8>,
17461746
intro_node_blinding_point: Option<PublicKey>,
17471747
},
17481748
BlindedReceive {
1749-
amt_msat: u64,
1749+
sender_intended_htlc_amt_msat: u64,
17501750
total_msat: u64,
1751-
outgoing_cltv_value: u32,
1751+
cltv_expiry_height: u32,
17521752
encrypted_tlvs: Vec<u8>,
17531753
intro_node_blinding_point: Option<PublicKey>, // Set if the introduction node of the blinded path is the final node
17541754
}
@@ -2290,8 +2290,8 @@ impl Writeable for OutboundOnionPayload {
22902290
});
22912291
},
22922292
Self::Receive {
2293-
ref payment_data, ref payment_metadata, ref keysend_preimage, amt_msat,
2294-
outgoing_cltv_value, ref custom_tlvs,
2293+
ref payment_data, ref payment_metadata, ref keysend_preimage, sender_intended_htlc_amt_msat,
2294+
cltv_expiry_height, ref custom_tlvs,
22952295
} => {
22962296
// We need to update [`ln::outbound_payment::RecipientOnionFields::with_custom_tlvs`]
22972297
// to reject any reserved types in the experimental range if new ones are ever
@@ -2300,8 +2300,8 @@ impl Writeable for OutboundOnionPayload {
23002300
let mut custom_tlvs: Vec<&(u64, Vec<u8>)> = custom_tlvs.iter().chain(keysend_tlv.iter()).collect();
23012301
custom_tlvs.sort_unstable_by_key(|(typ, _)| *typ);
23022302
_encode_varint_length_prefixed_tlv!(w, {
2303-
(2, HighZeroBytesDroppedBigSize(*amt_msat), required),
2304-
(4, HighZeroBytesDroppedBigSize(*outgoing_cltv_value), required),
2303+
(2, HighZeroBytesDroppedBigSize(*sender_intended_htlc_amt_msat), required),
2304+
(4, HighZeroBytesDroppedBigSize(*cltv_expiry_height), required),
23052305
(8, payment_data, option),
23062306
(16, payment_metadata.as_ref().map(|m| WithoutLength(m)), option)
23072307
}, custom_tlvs.iter());
@@ -2313,12 +2313,12 @@ impl Writeable for OutboundOnionPayload {
23132313
});
23142314
},
23152315
Self::BlindedReceive {
2316-
amt_msat, total_msat, outgoing_cltv_value, encrypted_tlvs,
2316+
sender_intended_htlc_amt_msat, total_msat, cltv_expiry_height, encrypted_tlvs,
23172317
intro_node_blinding_point,
23182318
} => {
23192319
_encode_varint_length_prefixed_tlv!(w, {
2320-
(2, HighZeroBytesDroppedBigSize(*amt_msat), required),
2321-
(4, HighZeroBytesDroppedBigSize(*outgoing_cltv_value), required),
2320+
(2, HighZeroBytesDroppedBigSize(*sender_intended_htlc_amt_msat), required),
2321+
(4, HighZeroBytesDroppedBigSize(*cltv_expiry_height), required),
23222322
(10, *encrypted_tlvs, required_vec),
23232323
(12, intro_node_blinding_point, option),
23242324
(18, HighZeroBytesDroppedBigSize(*total_msat), required)
@@ -2402,9 +2402,9 @@ impl<NS: Deref> ReadableArgs<(Option<PublicKey>, &NS)> for InboundOnionPayload w
24022402
})} => {
24032403
if total_msat.unwrap_or(0) > MAX_VALUE_MSAT { return Err(DecodeError::InvalidValue) }
24042404
Ok(Self::BlindedReceive {
2405-
amt_msat: amt.ok_or(DecodeError::InvalidValue)?,
2405+
sender_intended_htlc_amt_msat: amt.ok_or(DecodeError::InvalidValue)?,
24062406
total_msat: total_msat.ok_or(DecodeError::InvalidValue)?,
2407-
outgoing_cltv_value: cltv_value.ok_or(DecodeError::InvalidValue)?,
2407+
cltv_expiry_height: cltv_value.ok_or(DecodeError::InvalidValue)?,
24082408
payment_secret,
24092409
payment_constraints,
24102410
intro_node_blinding_point,
@@ -2433,8 +2433,8 @@ impl<NS: Deref> ReadableArgs<(Option<PublicKey>, &NS)> for InboundOnionPayload w
24332433
payment_data,
24342434
payment_metadata: payment_metadata.map(|w| w.0),
24352435
keysend_preimage,
2436-
amt_msat: amt.ok_or(DecodeError::InvalidValue)?,
2437-
outgoing_cltv_value: cltv_value.ok_or(DecodeError::InvalidValue)?,
2436+
sender_intended_htlc_amt_msat: amt.ok_or(DecodeError::InvalidValue)?,
2437+
cltv_expiry_height: cltv_value.ok_or(DecodeError::InvalidValue)?,
24382438
custom_tlvs,
24392439
})
24402440
}
@@ -4020,8 +4020,8 @@ mod tests {
40204020
payment_data: None,
40214021
payment_metadata: None,
40224022
keysend_preimage: None,
4023-
amt_msat: 0x0badf00d01020304,
4024-
outgoing_cltv_value: 0xffffffff,
4023+
sender_intended_htlc_amt_msat: 0x0badf00d01020304,
4024+
cltv_expiry_height: 0xffffffff,
40254025
custom_tlvs: vec![],
40264026
};
40274027
let encoded_value = outbound_msg.encode();
@@ -4031,10 +4031,10 @@ mod tests {
40314031
let node_signer = test_utils::TestKeysInterface::new(&[42; 32], Network::Testnet);
40324032
let inbound_msg = ReadableArgs::read(&mut Cursor::new(&target_value[..]), (None, &&node_signer)).unwrap();
40334033
if let msgs::InboundOnionPayload::Receive {
4034-
payment_data: None, amt_msat, outgoing_cltv_value, ..
4034+
payment_data: None, sender_intended_htlc_amt_msat, cltv_expiry_height, ..
40354035
} = inbound_msg {
4036-
assert_eq!(amt_msat, 0x0badf00d01020304);
4037-
assert_eq!(outgoing_cltv_value, 0xffffffff);
4036+
assert_eq!(sender_intended_htlc_amt_msat, 0x0badf00d01020304);
4037+
assert_eq!(cltv_expiry_height, 0xffffffff);
40384038
} else { panic!(); }
40394039
}
40404040

@@ -4048,8 +4048,8 @@ mod tests {
40484048
}),
40494049
payment_metadata: None,
40504050
keysend_preimage: None,
4051-
amt_msat: 0x0badf00d01020304,
4052-
outgoing_cltv_value: 0xffffffff,
4051+
sender_intended_htlc_amt_msat: 0x0badf00d01020304,
4052+
cltv_expiry_height: 0xffffffff,
40534053
custom_tlvs: vec![],
40544054
};
40554055
let encoded_value = outbound_msg.encode();
@@ -4063,14 +4063,14 @@ mod tests {
40634063
payment_secret,
40644064
total_msat: 0x1badca1f
40654065
}),
4066-
amt_msat, outgoing_cltv_value,
4066+
sender_intended_htlc_amt_msat, cltv_expiry_height,
40674067
payment_metadata: None,
40684068
keysend_preimage: None,
40694069
custom_tlvs,
40704070
} = inbound_msg {
40714071
assert_eq!(payment_secret, expected_payment_secret);
4072-
assert_eq!(amt_msat, 0x0badf00d01020304);
4073-
assert_eq!(outgoing_cltv_value, 0xffffffff);
4072+
assert_eq!(sender_intended_htlc_amt_msat, 0x0badf00d01020304);
4073+
assert_eq!(cltv_expiry_height, 0xffffffff);
40744074
assert_eq!(custom_tlvs, vec![]);
40754075
} else { panic!(); }
40764076
}
@@ -4088,8 +4088,8 @@ mod tests {
40884088
payment_metadata: None,
40894089
keysend_preimage: None,
40904090
custom_tlvs: bad_type_range_tlvs,
4091-
amt_msat: 0x0badf00d01020304,
4092-
outgoing_cltv_value: 0xffffffff,
4091+
sender_intended_htlc_amt_msat: 0x0badf00d01020304,
4092+
cltv_expiry_height: 0xffffffff,
40934093
};
40944094
let encoded_value = msg.encode();
40954095
let node_signer = test_utils::TestKeysInterface::new(&[42; 32], Network::Testnet);
@@ -4120,8 +4120,8 @@ mod tests {
41204120
payment_metadata: None,
41214121
keysend_preimage: None,
41224122
custom_tlvs: expected_custom_tlvs.clone(),
4123-
amt_msat: 0x0badf00d01020304,
4124-
outgoing_cltv_value: 0xffffffff,
4123+
sender_intended_htlc_amt_msat: 0x0badf00d01020304,
4124+
cltv_expiry_height: 0xffffffff,
41254125
};
41264126
let encoded_value = msg.encode();
41274127
let target_value = <Vec<u8>>::from_hex("2e02080badf00d010203040404ffffffffff0000000146c6616b021234ff0000000146c6616f084242424242424242").unwrap();
@@ -4133,12 +4133,12 @@ mod tests {
41334133
payment_metadata: None,
41344134
keysend_preimage: None,
41354135
custom_tlvs,
4136-
amt_msat,
4137-
outgoing_cltv_value,
4136+
sender_intended_htlc_amt_msat,
4137+
cltv_expiry_height: outgoing_cltv_value,
41384138
..
41394139
} = inbound_msg {
41404140
assert_eq!(custom_tlvs, expected_custom_tlvs);
4141-
assert_eq!(amt_msat, 0x0badf00d01020304);
4141+
assert_eq!(sender_intended_htlc_amt_msat, 0x0badf00d01020304);
41424142
assert_eq!(outgoing_cltv_value, 0xffffffff);
41434143
} else { panic!(); }
41444144
}

0 commit comments

Comments
 (0)