Skip to content

Commit 6f6115f

Browse files
Avoid && in public API for onion peeling/decoding.
No reason to take a reference to a Deref.
1 parent 8739b06 commit 6f6115f

File tree

7 files changed

+24
-24
lines changed

7 files changed

+24
-24
lines changed

fuzz/src/onion_hop_data.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ pub fn onion_hop_data_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
2121
let node_signer = test_utils::TestNodeSigner::new(test_utils::privkey(42));
2222
let _ = <lightning::ln::msgs::InboundOnionPayload as ReadableArgs<(
2323
Option<PublicKey>,
24-
&&test_utils::TestNodeSigner,
24+
&test_utils::TestNodeSigner,
2525
)>>::read(&mut r, (None, &&node_signer));
2626
}
2727

@@ -34,6 +34,6 @@ pub extern "C" fn onion_hop_data_run(data: *const u8, datalen: usize) {
3434
let node_signer = test_utils::TestNodeSigner::new(test_utils::privkey(42));
3535
let _ = <lightning::ln::msgs::InboundOnionPayload as ReadableArgs<(
3636
Option<PublicKey>,
37-
&&test_utils::TestNodeSigner,
37+
&test_utils::TestNodeSigner,
3838
)>>::read(&mut r, (None, &&node_signer));
3939
}

lightning/src/ln/blinded_payment_tests.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -1483,7 +1483,7 @@ fn route_blinding_spec_test_vector() {
14831483
// < MIN_CLTV_EXPIRY_DELTA).
14841484
let (bob_peeled_onion, _, next_packet_details_opt) =
14851485
match onion_payment::decode_incoming_update_add_htlc_onion(
1486-
&bob_update_add, &&bob_node_signer, &&logger, &secp_ctx
1486+
&bob_update_add, &bob_node_signer, &logger, &secp_ctx
14871487
) {
14881488
Ok(res) => res,
14891489
_ => panic!("Unexpected error")
@@ -1517,7 +1517,7 @@ fn route_blinding_spec_test_vector() {
15171517
let carol_node_signer = TestEcdhSigner { node_secret: carol_secret };
15181518
let (carol_peeled_onion, _, next_packet_details_opt) =
15191519
match onion_payment::decode_incoming_update_add_htlc_onion(
1520-
&carol_update_add, &&carol_node_signer, &&logger, &secp_ctx
1520+
&carol_update_add, &carol_node_signer, &logger, &secp_ctx
15211521
) {
15221522
Ok(res) => res,
15231523
_ => panic!("Unexpected error")
@@ -1551,7 +1551,7 @@ fn route_blinding_spec_test_vector() {
15511551
let dave_node_signer = TestEcdhSigner { node_secret: dave_secret };
15521552
let (dave_peeled_onion, _, next_packet_details_opt) =
15531553
match onion_payment::decode_incoming_update_add_htlc_onion(
1554-
&dave_update_add, &&dave_node_signer, &&logger, &secp_ctx
1554+
&dave_update_add, &dave_node_signer, &logger, &secp_ctx
15551555
) {
15561556
Ok(res) => res,
15571557
_ => panic!("Unexpected error")
@@ -1586,7 +1586,7 @@ fn route_blinding_spec_test_vector() {
15861586
// We can't decode the final payload because it contains a path_id and is missing some LDK
15871587
// specific fields.
15881588
match onion_payment::decode_incoming_update_add_htlc_onion(
1589-
&eve_update_add, &&eve_node_signer, &&logger, &secp_ctx
1589+
&eve_update_add, &eve_node_signer, &logger, &secp_ctx
15901590
) {
15911591
Err(HTLCFailureMsg::Malformed(msg)) => assert_eq!(msg.failure_code, INVALID_ONION_BLINDING),
15921592
_ => panic!("Unexpected error")

lightning/src/ln/channelmanager.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -3832,7 +3832,7 @@ where
38323832
(onion_utils::Hop, [u8; 32], Option<Result<PublicKey, secp256k1::Error>>), HTLCFailureMsg
38333833
> {
38343834
let (next_hop, shared_secret, next_packet_details_opt) = decode_incoming_update_add_htlc_onion(
3835-
msg, &self.node_signer, &self.logger, &self.secp_ctx
3835+
msg, &*self.node_signer, &*self.logger, &self.secp_ctx
38363836
)?;
38373837

38383838
let next_packet_details = match next_packet_details_opt {
@@ -5049,7 +5049,7 @@ where
50495049
let mut htlc_fails = Vec::new();
50505050
for update_add_htlc in &update_add_htlcs {
50515051
let (next_hop, shared_secret, next_packet_details_opt) = match decode_incoming_update_add_htlc_onion(
5052-
&update_add_htlc, &self.node_signer, &self.logger, &self.secp_ctx
5052+
&update_add_htlc, &*self.node_signer, &*self.logger, &self.secp_ctx
50535053
) {
50545054
Ok(decoded_onion) => decoded_onion,
50555055
Err(htlc_fail) => {
@@ -5226,7 +5226,7 @@ where
52265226
let phantom_shared_secret = self.node_signer.ecdh(Recipient::PhantomNode, &onion_packet.public_key.unwrap(), None).unwrap().secret_bytes();
52275227
let next_hop = match onion_utils::decode_next_payment_hop(
52285228
phantom_shared_secret, &onion_packet.hop_data, onion_packet.hmac,
5229-
payment_hash, None, &self.node_signer
5229+
payment_hash, None, &*self.node_signer
52305230
) {
52315231
Ok(res) => res,
52325232
Err(onion_utils::OnionDecodeErr::Malformed { err_msg, err_code }) => {

lightning/src/ln/msgs.rs

+9-9
Original file line numberDiff line numberDiff line change
@@ -2756,8 +2756,8 @@ impl Writeable for OutboundTrampolinePayload {
27562756
}
27572757

27582758

2759-
impl<NS: Deref> ReadableArgs<(Option<PublicKey>, &NS)> for InboundOnionPayload where NS::Target: NodeSigner {
2760-
fn read<R: Read>(r: &mut R, args: (Option<PublicKey>, &NS)) -> Result<Self, DecodeError> {
2759+
impl<NS: Deref> ReadableArgs<(Option<PublicKey>, NS)> for InboundOnionPayload where NS::Target: NodeSigner {
2760+
fn read<R: Read>(r: &mut R, args: (Option<PublicKey>, NS)) -> Result<Self, DecodeError> {
27612761
let (update_add_blinding_point, node_signer) = args;
27622762

27632763
let mut amt = None;
@@ -4456,7 +4456,7 @@ mod tests {
44564456
assert_eq!(encoded_value, target_value);
44574457

44584458
let node_signer = test_utils::TestKeysInterface::new(&[42; 32], Network::Testnet);
4459-
let inbound_msg = ReadableArgs::read(&mut Cursor::new(&target_value[..]), (None, &&node_signer)).unwrap();
4459+
let inbound_msg = ReadableArgs::read(&mut Cursor::new(&target_value[..]), (None, &node_signer)).unwrap();
44604460
if let msgs::InboundOnionPayload::Forward {
44614461
short_channel_id, amt_to_forward, outgoing_cltv_value
44624462
} = inbound_msg {
@@ -4481,7 +4481,7 @@ mod tests {
44814481
assert_eq!(encoded_value, target_value);
44824482

44834483
let node_signer = test_utils::TestKeysInterface::new(&[42; 32], Network::Testnet);
4484-
let inbound_msg = ReadableArgs::read(&mut Cursor::new(&target_value[..]), (None, &&node_signer)).unwrap();
4484+
let inbound_msg = ReadableArgs::read(&mut Cursor::new(&target_value[..]), (None, &node_signer)).unwrap();
44854485
if let msgs::InboundOnionPayload::Receive {
44864486
payment_data: None, sender_intended_htlc_amt_msat, cltv_expiry_height, ..
44874487
} = inbound_msg {
@@ -4509,7 +4509,7 @@ mod tests {
45094509
assert_eq!(encoded_value, target_value);
45104510

45114511
let node_signer = test_utils::TestKeysInterface::new(&[42; 32], Network::Testnet);
4512-
let inbound_msg = ReadableArgs::read(&mut Cursor::new(&target_value[..]), (None, &&node_signer)).unwrap();
4512+
let inbound_msg = ReadableArgs::read(&mut Cursor::new(&target_value[..]), (None, &node_signer)).unwrap();
45134513
if let msgs::InboundOnionPayload::Receive {
45144514
payment_data: Some(FinalOnionHopData {
45154515
payment_secret,
@@ -4545,7 +4545,7 @@ mod tests {
45454545
};
45464546
let encoded_value = msg.encode();
45474547
let node_signer = test_utils::TestKeysInterface::new(&[42; 32], Network::Testnet);
4548-
assert!(msgs::InboundOnionPayload::read(&mut Cursor::new(&encoded_value[..]), (None, &&node_signer)).is_err());
4548+
assert!(msgs::InboundOnionPayload::read(&mut Cursor::new(&encoded_value[..]), (None, &node_signer)).is_err());
45494549
let good_type_range_tlvs = vec![
45504550
((1 << 16) - 3, vec![42]),
45514551
((1 << 16) - 1, vec![42; 32]),
@@ -4554,7 +4554,7 @@ mod tests {
45544554
*custom_tlvs = &good_type_range_tlvs;
45554555
}
45564556
let encoded_value = msg.encode();
4557-
let inbound_msg = ReadableArgs::read(&mut Cursor::new(&encoded_value[..]), (None, &&node_signer)).unwrap();
4557+
let inbound_msg = ReadableArgs::read(&mut Cursor::new(&encoded_value[..]), (None, &node_signer)).unwrap();
45584558
match inbound_msg {
45594559
msgs::InboundOnionPayload::Receive { custom_tlvs, .. } => assert!(custom_tlvs.is_empty()),
45604560
_ => panic!(),
@@ -4579,7 +4579,7 @@ mod tests {
45794579
let target_value = <Vec<u8>>::from_hex("2e02080badf00d010203040404ffffffffff0000000146c6616b021234ff0000000146c6616f084242424242424242").unwrap();
45804580
assert_eq!(encoded_value, target_value);
45814581
let node_signer = test_utils::TestKeysInterface::new(&[42; 32], Network::Testnet);
4582-
let inbound_msg: msgs::InboundOnionPayload = ReadableArgs::read(&mut Cursor::new(&target_value[..]), (None, &&node_signer)).unwrap();
4582+
let inbound_msg: msgs::InboundOnionPayload = ReadableArgs::read(&mut Cursor::new(&target_value[..]), (None, &node_signer)).unwrap();
45834583
if let msgs::InboundOnionPayload::Receive {
45844584
payment_data: None,
45854585
payment_metadata: None,
@@ -4809,7 +4809,7 @@ mod tests {
48094809
let mut rd = Cursor::new(&big_payload[..]);
48104810

48114811
let node_signer = test_utils::TestKeysInterface::new(&[42; 32], Network::Testnet);
4812-
<msgs::InboundOnionPayload as ReadableArgs<(Option<PublicKey>, &&test_utils::TestKeysInterface)>>
4812+
<msgs::InboundOnionPayload as ReadableArgs<(Option<PublicKey>, &test_utils::TestKeysInterface)>>
48134813
::read(&mut rd, (None, &&node_signer)).unwrap();
48144814
}
48154815
// see above test, needs to be a separate method for use of the serialization macros.

lightning/src/ln/onion_payment.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -280,7 +280,7 @@ pub(super) fn create_recv_pending_htlc_info(
280280
///
281281
/// [`Event::PaymentClaimable`]: crate::events::Event::PaymentClaimable
282282
pub fn peel_payment_onion<NS: Deref, L: Deref, T: secp256k1::Verification>(
283-
msg: &msgs::UpdateAddHTLC, node_signer: &NS, logger: &L, secp_ctx: &Secp256k1<T>,
283+
msg: &msgs::UpdateAddHTLC, node_signer: NS, logger: L, secp_ctx: &Secp256k1<T>,
284284
cur_height: u32, accept_mpp_keysend: bool, allow_skimmed_fees: bool,
285285
) -> Result<PendingHTLCInfo, InboundHTLCErr>
286286
where
@@ -346,7 +346,7 @@ pub(super) struct NextPacketDetails {
346346
}
347347

348348
pub(super) fn decode_incoming_update_add_htlc_onion<NS: Deref, L: Deref, T: secp256k1::Verification>(
349-
msg: &msgs::UpdateAddHTLC, node_signer: &NS, logger: &L, secp_ctx: &Secp256k1<T>,
349+
msg: &msgs::UpdateAddHTLC, node_signer: NS, logger: L, secp_ctx: &Secp256k1<T>,
350350
) -> Result<(onion_utils::Hop, [u8; 32], Option<NextPacketDetails>), HTLCFailureMsg>
351351
where
352352
NS::Target: NodeSigner,
@@ -574,7 +574,7 @@ mod tests {
574574
let msg = make_update_add_msg(amount_msat, cltv_expiry, payment_hash, onion);
575575
let logger = test_utils::TestLogger::with_id("bob".to_string());
576576

577-
let peeled = peel_payment_onion(&msg, &&bob, &&logger, &secp_ctx, cur_height, true, false)
577+
let peeled = peel_payment_onion(&msg, &bob, &logger, &secp_ctx, cur_height, true, false)
578578
.map_err(|e| e.msg).unwrap();
579579

580580
let next_onion = match peeled.routing {
@@ -585,7 +585,7 @@ mod tests {
585585
};
586586

587587
let msg2 = make_update_add_msg(amount_msat, cltv_expiry, payment_hash, next_onion);
588-
let peeled2 = peel_payment_onion(&msg2, &&charlie, &&logger, &secp_ctx, cur_height, true, false)
588+
let peeled2 = peel_payment_onion(&msg2, &charlie, &logger, &secp_ctx, cur_height, true, false)
589589
.map_err(|e| e.msg).unwrap();
590590

591591
match peeled2.routing {

lightning/src/ln/onion_utils.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1133,7 +1133,7 @@ pub(crate) enum OnionDecodeErr {
11331133

11341134
pub(crate) fn decode_next_payment_hop<NS: Deref>(
11351135
shared_secret: [u8; 32], hop_data: &[u8], hmac_bytes: [u8; 32], payment_hash: PaymentHash,
1136-
blinding_point: Option<PublicKey>, node_signer: &NS,
1136+
blinding_point: Option<PublicKey>, node_signer: NS,
11371137
) -> Result<Hop, OnionDecodeErr>
11381138
where
11391139
NS::Target: NodeSigner,

lightning/src/ln/payment_tests.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4284,7 +4284,7 @@ fn peel_payment_onion_custom_tlvs() {
42844284
blinding_point: None,
42854285
};
42864286
let peeled_onion = crate::ln::onion_payment::peel_payment_onion(
4287-
&update_add, &&chanmon_cfgs[1].keys_manager, &&chanmon_cfgs[1].logger, &secp_ctx,
4287+
&update_add, &chanmon_cfgs[1].keys_manager, &chanmon_cfgs[1].logger, &secp_ctx,
42884288
nodes[1].best_block_info().1, true, false
42894289
).unwrap();
42904290
assert_eq!(peeled_onion.incoming_amt_msat, Some(amt_msat));

0 commit comments

Comments
 (0)