Skip to content

Commit dced69d

Browse files
authored
Merge pull request #3265 from TheBlueMatt/2024-08-globally-unique-names
Disambiguate blinded path `ForwardNode`s between payment + message
2 parents 3111508 + 2ce2fe9 commit dced69d

File tree

10 files changed

+72
-72
lines changed

10 files changed

+72
-72
lines changed

fuzz/src/invoice_request_deser.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ use crate::utils::test_logger;
1111
use bitcoin::secp256k1::{self, Keypair, Parity, PublicKey, Secp256k1, SecretKey};
1212
use core::convert::TryFrom;
1313
use lightning::blinded_path::payment::{
14-
BlindedPaymentPath, Bolt12OfferContext, ForwardNode, ForwardTlvs, PaymentConstraints,
15-
PaymentContext, PaymentRelay, ReceiveTlvs,
14+
BlindedPaymentPath, Bolt12OfferContext, ForwardTlvs, PaymentConstraints, PaymentContext,
15+
PaymentForwardNode, PaymentRelay, ReceiveTlvs,
1616
};
1717
use lightning::ln::channelmanager::MIN_FINAL_CLTV_EXPIRY_DELTA;
1818
use lightning::ln::features::BlindedHopFeatures;
@@ -100,7 +100,7 @@ fn build_response<T: secp256k1::Signing + secp256k1::Verification>(
100100
},
101101
payment_context,
102102
};
103-
let intermediate_nodes = [ForwardNode {
103+
let intermediate_nodes = [PaymentForwardNode {
104104
tlvs: ForwardTlvs {
105105
short_channel_id: 43,
106106
payment_relay: PaymentRelay {

fuzz/src/refund_deser.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ use crate::utils::test_logger;
1111
use bitcoin::secp256k1::{self, Keypair, PublicKey, Secp256k1, SecretKey};
1212
use core::convert::TryFrom;
1313
use lightning::blinded_path::payment::{
14-
BlindedPaymentPath, Bolt12RefundContext, ForwardNode, ForwardTlvs, PaymentConstraints,
15-
PaymentContext, PaymentRelay, ReceiveTlvs,
14+
BlindedPaymentPath, Bolt12RefundContext, ForwardTlvs, PaymentConstraints, PaymentContext,
15+
PaymentForwardNode, PaymentRelay, ReceiveTlvs,
1616
};
1717
use lightning::ln::channelmanager::MIN_FINAL_CLTV_EXPIRY_DELTA;
1818
use lightning::ln::features::BlindedHopFeatures;
@@ -78,7 +78,7 @@ fn build_response<T: secp256k1::Signing + secp256k1::Verification>(
7878
},
7979
payment_context,
8080
};
81-
let intermediate_nodes = [ForwardNode {
81+
let intermediate_nodes = [PaymentForwardNode {
8282
tlvs: ForwardTlvs {
8383
short_channel_id: 43,
8484
payment_relay: PaymentRelay {

lightning/src/blinded_path/message.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,8 @@ impl BlindedMessagePath {
6565
/// Errors if no hops are provided or if `node_pk`(s) are invalid.
6666
// TODO: make all payloads the same size with padding + add dummy hops
6767
pub fn new<ES: Deref, T: secp256k1::Signing + secp256k1::Verification>(
68-
intermediate_nodes: &[ForwardNode], recipient_node_id: PublicKey, context: MessageContext,
69-
entropy_source: ES, secp_ctx: &Secp256k1<T>
68+
intermediate_nodes: &[MessageForwardNode], recipient_node_id: PublicKey,
69+
context: MessageContext, entropy_source: ES, secp_ctx: &Secp256k1<T>,
7070
) -> Result<Self, ()> where ES::Target: EntropySource {
7171
let introduction_node = IntroductionNode::NodeId(
7272
intermediate_nodes.first().map_or(recipient_node_id, |n| n.node_id)
@@ -216,12 +216,12 @@ pub enum NextMessageHop {
216216

217217
/// An intermediate node, and possibly a short channel id leading to the next node.
218218
#[derive(Clone, Copy, Debug, Hash, PartialEq, Eq)]
219-
pub struct ForwardNode {
219+
pub struct MessageForwardNode {
220220
/// This node's pubkey.
221221
pub node_id: PublicKey,
222222
/// The channel between `node_id` and the next hop. If set, the constructed [`BlindedHop`]'s
223-
/// `encrypted_payload` will use this instead of the next [`ForwardNode::node_id`] for a more
224-
/// compact representation.
223+
/// `encrypted_payload` will use this instead of the next [`MessageForwardNode::node_id`] for a
224+
/// more compact representation.
225225
pub short_channel_id: Option<u64>,
226226
}
227227

@@ -371,8 +371,8 @@ impl_writeable_tlv_based_enum!(OffersContext,
371371

372372
/// Construct blinded onion message hops for the given `intermediate_nodes` and `recipient_node_id`.
373373
pub(super) fn blinded_hops<T: secp256k1::Signing + secp256k1::Verification>(
374-
secp_ctx: &Secp256k1<T>, intermediate_nodes: &[ForwardNode], recipient_node_id: PublicKey,
375-
context: MessageContext, session_priv: &SecretKey
374+
secp_ctx: &Secp256k1<T>, intermediate_nodes: &[MessageForwardNode],
375+
recipient_node_id: PublicKey, context: MessageContext, session_priv: &SecretKey,
376376
) -> Result<Vec<BlindedHop>, secp256k1::Error> {
377377
let pks = intermediate_nodes.iter().map(|node| &node.node_id)
378378
.chain(core::iter::once(&recipient_node_id));

lightning/src/blinded_path/payment.rs

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -103,9 +103,9 @@ impl BlindedPaymentPath {
103103
/// * any unknown features are required in the provided [`ForwardTlvs`]
104104
// TODO: make all payloads the same size with padding + add dummy hops
105105
pub fn new<ES: Deref, T: secp256k1::Signing + secp256k1::Verification>(
106-
intermediate_nodes: &[ForwardNode], payee_node_id: PublicKey, payee_tlvs: ReceiveTlvs,
107-
htlc_maximum_msat: u64, min_final_cltv_expiry_delta: u16, entropy_source: ES,
108-
secp_ctx: &Secp256k1<T>
106+
intermediate_nodes: &[PaymentForwardNode], payee_node_id: PublicKey,
107+
payee_tlvs: ReceiveTlvs, htlc_maximum_msat: u64, min_final_cltv_expiry_delta: u16,
108+
entropy_source: ES, secp_ctx: &Secp256k1<T>,
109109
) -> Result<Self, ()> where ES::Target: EntropySource {
110110
let introduction_node = IntroductionNode::NodeId(
111111
intermediate_nodes.first().map_or(payee_node_id, |n| n.node_id)
@@ -221,7 +221,7 @@ impl BlindedPaymentPath {
221221

222222
/// An intermediate node, its outbound channel, and relay parameters.
223223
#[derive(Clone, Debug)]
224-
pub struct ForwardNode {
224+
pub struct PaymentForwardNode {
225225
/// The TLVs for this node's [`BlindedHop`], where the fee parameters contained within are also
226226
/// used for [`BlindedPayInfo`] construction.
227227
pub tlvs: ForwardTlvs,
@@ -459,8 +459,8 @@ impl Readable for BlindedPaymentTlvs {
459459

460460
/// Construct blinded payment hops for the given `intermediate_nodes` and payee info.
461461
pub(super) fn blinded_hops<T: secp256k1::Signing + secp256k1::Verification>(
462-
secp_ctx: &Secp256k1<T>, intermediate_nodes: &[ForwardNode],
463-
payee_node_id: PublicKey, payee_tlvs: ReceiveTlvs, session_priv: &SecretKey
462+
secp_ctx: &Secp256k1<T>, intermediate_nodes: &[PaymentForwardNode],
463+
payee_node_id: PublicKey, payee_tlvs: ReceiveTlvs, session_priv: &SecretKey,
464464
) -> Result<Vec<BlindedHop>, secp256k1::Error> {
465465
let pks = intermediate_nodes.iter().map(|node| &node.node_id)
466466
.chain(core::iter::once(&payee_node_id));
@@ -491,8 +491,8 @@ pub(crate) fn amt_to_forward_msat(inbound_amt_msat: u64, payment_relay: &Payment
491491
}
492492

493493
pub(super) fn compute_payinfo(
494-
intermediate_nodes: &[ForwardNode], payee_tlvs: &ReceiveTlvs, payee_htlc_maximum_msat: u64,
495-
min_final_cltv_expiry_delta: u16
494+
intermediate_nodes: &[PaymentForwardNode], payee_tlvs: &ReceiveTlvs,
495+
payee_htlc_maximum_msat: u64, min_final_cltv_expiry_delta: u16,
496496
) -> Result<BlindedPayInfo, ()> {
497497
let mut curr_base_fee: u64 = 0;
498498
let mut curr_prop_mil: u64 = 0;
@@ -628,7 +628,7 @@ impl_writeable_tlv_based!(Bolt12RefundContext, {});
628628
#[cfg(test)]
629629
mod tests {
630630
use bitcoin::secp256k1::PublicKey;
631-
use crate::blinded_path::payment::{ForwardNode, ForwardTlvs, ReceiveTlvs, PaymentConstraints, PaymentContext, PaymentRelay};
631+
use crate::blinded_path::payment::{PaymentForwardNode, ForwardTlvs, ReceiveTlvs, PaymentConstraints, PaymentContext, PaymentRelay};
632632
use crate::ln::types::PaymentSecret;
633633
use crate::ln::features::BlindedHopFeatures;
634634
use crate::ln::functional_test_utils::TEST_FINAL_CLTV;
@@ -638,7 +638,7 @@ mod tests {
638638
// Taken from the spec example for aggregating blinded payment info. See
639639
// https://github.com/lightning/bolts/blob/master/proposals/route-blinding.md#blinded-payments
640640
let dummy_pk = PublicKey::from_slice(&[2; 33]).unwrap();
641-
let intermediate_nodes = vec![ForwardNode {
641+
let intermediate_nodes = vec![PaymentForwardNode {
642642
node_id: dummy_pk,
643643
tlvs: ForwardTlvs {
644644
short_channel_id: 0,
@@ -655,7 +655,7 @@ mod tests {
655655
features: BlindedHopFeatures::empty(),
656656
},
657657
htlc_maximum_msat: u64::max_value(),
658-
}, ForwardNode {
658+
}, PaymentForwardNode {
659659
node_id: dummy_pk,
660660
tlvs: ForwardTlvs {
661661
short_channel_id: 0,
@@ -713,7 +713,7 @@ mod tests {
713713
// If no hops charge fees, the htlc_minimum_msat should just be the maximum htlc_minimum_msat
714714
// along the path.
715715
let dummy_pk = PublicKey::from_slice(&[2; 33]).unwrap();
716-
let intermediate_nodes = vec![ForwardNode {
716+
let intermediate_nodes = vec![PaymentForwardNode {
717717
node_id: dummy_pk,
718718
tlvs: ForwardTlvs {
719719
short_channel_id: 0,
@@ -730,7 +730,7 @@ mod tests {
730730
features: BlindedHopFeatures::empty(),
731731
},
732732
htlc_maximum_msat: u64::max_value()
733-
}, ForwardNode {
733+
}, PaymentForwardNode {
734734
node_id: dummy_pk,
735735
tlvs: ForwardTlvs {
736736
short_channel_id: 0,
@@ -766,7 +766,7 @@ mod tests {
766766
// Create a path with varying fees and htlc_mins, and make sure htlc_minimum_msat ends up as the
767767
// max (htlc_min - following_fees) along the path.
768768
let dummy_pk = PublicKey::from_slice(&[2; 33]).unwrap();
769-
let intermediate_nodes = vec![ForwardNode {
769+
let intermediate_nodes = vec![PaymentForwardNode {
770770
node_id: dummy_pk,
771771
tlvs: ForwardTlvs {
772772
short_channel_id: 0,
@@ -783,7 +783,7 @@ mod tests {
783783
features: BlindedHopFeatures::empty(),
784784
},
785785
htlc_maximum_msat: u64::max_value()
786-
}, ForwardNode {
786+
}, PaymentForwardNode {
787787
node_id: dummy_pk,
788788
tlvs: ForwardTlvs {
789789
short_channel_id: 0,
@@ -823,7 +823,7 @@ mod tests {
823823
// Create a path with varying fees and `htlc_maximum_msat`s, and make sure the aggregated max
824824
// htlc ends up as the min (htlc_max - following_fees) along the path.
825825
let dummy_pk = PublicKey::from_slice(&[2; 33]).unwrap();
826-
let intermediate_nodes = vec![ForwardNode {
826+
let intermediate_nodes = vec![PaymentForwardNode {
827827
node_id: dummy_pk,
828828
tlvs: ForwardTlvs {
829829
short_channel_id: 0,
@@ -840,7 +840,7 @@ mod tests {
840840
features: BlindedHopFeatures::empty(),
841841
},
842842
htlc_maximum_msat: 5_000,
843-
}, ForwardNode {
843+
}, PaymentForwardNode {
844844
node_id: dummy_pk,
845845
tlvs: ForwardTlvs {
846846
short_channel_id: 0,

lightning/src/ln/blinded_payment_tests.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ use bitcoin::secp256k1::{PublicKey, Scalar, Secp256k1, SecretKey, schnorr};
1212
use bitcoin::secp256k1::ecdh::SharedSecret;
1313
use bitcoin::secp256k1::ecdsa::{RecoverableSignature, Signature};
1414
use crate::blinded_path;
15-
use crate::blinded_path::payment::{BlindedPaymentPath, ForwardNode, ForwardTlvs, PaymentConstraints, PaymentContext, PaymentRelay, ReceiveTlvs};
15+
use crate::blinded_path::payment::{BlindedPaymentPath, PaymentForwardNode, ForwardTlvs, PaymentConstraints, PaymentContext, PaymentRelay, ReceiveTlvs};
1616
use crate::events::{Event, HTLCDestination, MessageSendEvent, MessageSendEventsProvider, PaymentFailureReason};
1717
use crate::ln::types::{ChannelId, PaymentHash, PaymentSecret};
1818
use crate::ln::channelmanager;
@@ -44,7 +44,7 @@ fn blinded_payment_path(
4444
let mut intro_node_min_htlc_opt = Some(intro_node_min_htlc);
4545
let mut intro_node_max_htlc_opt = Some(intro_node_max_htlc);
4646
for (idx, (node_id, chan_upd)) in node_ids.iter().zip(channel_upds).enumerate() {
47-
intermediate_nodes.push(ForwardNode {
47+
intermediate_nodes.push(PaymentForwardNode {
4848
node_id: *node_id,
4949
tlvs: ForwardTlvs {
5050
short_channel_id: chan_upd.short_channel_id,

lightning/src/ln/channelmanager.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ use bitcoin::{secp256k1, Sequence};
3434

3535
use crate::blinded_path::message::{MessageContext, OffersContext};
3636
use crate::blinded_path::NodeIdLookUp;
37-
use crate::blinded_path::message::{BlindedMessagePath, ForwardNode};
37+
use crate::blinded_path::message::{BlindedMessagePath, MessageForwardNode};
3838
use crate::blinded_path::payment::{BlindedPaymentPath, Bolt12OfferContext, Bolt12RefundContext, PaymentConstraints, PaymentContext, ReceiveTlvs};
3939
use crate::chain;
4040
use crate::chain::{Confirm, ChannelMonitorUpdateStatus, Watch, BestBlock};
@@ -9354,7 +9354,7 @@ where
93549354
.map(|(node_id, peer_state)| (node_id, peer_state.lock().unwrap()))
93559355
.filter(|(_, peer)| peer.is_connected)
93569356
.filter(|(_, peer)| peer.latest_features.supports_onion_messages())
9357-
.map(|(node_id, peer)| ForwardNode {
9357+
.map(|(node_id, peer)| MessageForwardNode {
93589358
node_id: *node_id,
93599359
short_channel_id: peer.channel_by_id
93609360
.iter()

lightning/src/onion_message/functional_tests.rs

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
//! Onion message testing and test utilities live here.
1111
1212
use crate::blinded_path::EmptyNodeIdLookUp;
13-
use crate::blinded_path::message::{BlindedMessagePath, ForwardNode, MessageContext, OffersContext};
13+
use crate::blinded_path::message::{BlindedMessagePath, MessageForwardNode, MessageContext, OffersContext};
1414
use crate::events::{Event, EventsProvider};
1515
use crate::ln::features::{ChannelFeatures, InitFeatures};
1616
use crate::ln::msgs::{self, DecodeError, OnionMessageHandler};
@@ -382,7 +382,7 @@ fn two_unblinded_two_blinded() {
382382
let test_msg = TestCustomMessage::Pong;
383383

384384
let secp_ctx = Secp256k1::new();
385-
let intermediate_nodes = [ForwardNode { node_id: nodes[3].node_id, short_channel_id: None }];
385+
let intermediate_nodes = [MessageForwardNode { node_id: nodes[3].node_id, short_channel_id: None }];
386386
let context = MessageContext::Custom(Vec::new());
387387
let blinded_path = BlindedMessagePath::new(&intermediate_nodes, nodes[4].node_id, context, &*nodes[4].entropy_source, &secp_ctx).unwrap();
388388
let path = OnionMessagePath {
@@ -403,8 +403,8 @@ fn three_blinded_hops() {
403403

404404
let secp_ctx = Secp256k1::new();
405405
let intermediate_nodes = [
406-
ForwardNode { node_id: nodes[1].node_id, short_channel_id: None },
407-
ForwardNode { node_id: nodes[2].node_id, short_channel_id: None },
406+
MessageForwardNode { node_id: nodes[1].node_id, short_channel_id: None },
407+
MessageForwardNode { node_id: nodes[2].node_id, short_channel_id: None },
408408
];
409409
let context = MessageContext::Custom(Vec::new());
410410
let blinded_path = BlindedMessagePath::new(&intermediate_nodes, nodes[3].node_id, context, &*nodes[3].entropy_source, &secp_ctx).unwrap();
@@ -544,8 +544,8 @@ fn we_are_intro_node() {
544544

545545
let secp_ctx = Secp256k1::new();
546546
let intermediate_nodes = [
547-
ForwardNode { node_id: nodes[0].node_id, short_channel_id: None },
548-
ForwardNode { node_id: nodes[1].node_id, short_channel_id: None },
547+
MessageForwardNode { node_id: nodes[0].node_id, short_channel_id: None },
548+
MessageForwardNode { node_id: nodes[1].node_id, short_channel_id: None },
549549
];
550550
let context = MessageContext::Custom(Vec::new());
551551
let blinded_path = BlindedMessagePath::new(&intermediate_nodes, nodes[2].node_id, context, &*nodes[2].entropy_source, &secp_ctx).unwrap();
@@ -556,7 +556,7 @@ fn we_are_intro_node() {
556556
pass_along_path(&nodes);
557557

558558
// Try with a two-hop blinded path where we are the introduction node.
559-
let intermediate_nodes = [ForwardNode { node_id: nodes[0].node_id, short_channel_id: None }];
559+
let intermediate_nodes = [MessageForwardNode { node_id: nodes[0].node_id, short_channel_id: None }];
560560
let context = MessageContext::Custom(Vec::new());
561561
let blinded_path = BlindedMessagePath::new(&intermediate_nodes, nodes[1].node_id, context, &*nodes[1].entropy_source, &secp_ctx).unwrap();
562562
let destination = Destination::BlindedPath(blinded_path);
@@ -573,7 +573,7 @@ fn invalid_blinded_path_error() {
573573
let test_msg = TestCustomMessage::Pong;
574574

575575
let secp_ctx = Secp256k1::new();
576-
let intermediate_nodes = [ForwardNode { node_id: nodes[1].node_id, short_channel_id: None }];
576+
let intermediate_nodes = [MessageForwardNode { node_id: nodes[1].node_id, short_channel_id: None }];
577577
let context = MessageContext::Custom(Vec::new());
578578
let mut blinded_path = BlindedMessagePath::new(&intermediate_nodes, nodes[2].node_id, context, &*nodes[2].entropy_source, &secp_ctx).unwrap();
579579
blinded_path.clear_blinded_hops();
@@ -595,8 +595,8 @@ fn reply_path() {
595595
first_node_addresses: None,
596596
};
597597
let intermediate_nodes = [
598-
ForwardNode { node_id: nodes[2].node_id, short_channel_id: None },
599-
ForwardNode { node_id: nodes[1].node_id, short_channel_id: None },
598+
MessageForwardNode { node_id: nodes[2].node_id, short_channel_id: None },
599+
MessageForwardNode { node_id: nodes[1].node_id, short_channel_id: None },
600600
];
601601
let context = MessageContext::Custom(Vec::new());
602602
let reply_path = BlindedMessagePath::new(&intermediate_nodes, nodes[0].node_id, context, &*nodes[0].entropy_source, &secp_ctx).unwrap();
@@ -610,15 +610,15 @@ fn reply_path() {
610610

611611
// Destination::BlindedPath
612612
let intermediate_nodes = [
613-
ForwardNode { node_id: nodes[1].node_id, short_channel_id: None },
614-
ForwardNode { node_id: nodes[2].node_id, short_channel_id: None },
613+
MessageForwardNode { node_id: nodes[1].node_id, short_channel_id: None },
614+
MessageForwardNode { node_id: nodes[2].node_id, short_channel_id: None },
615615
];
616616
let context = MessageContext::Custom(Vec::new());
617617
let blinded_path = BlindedMessagePath::new(&intermediate_nodes, nodes[3].node_id, context, &*nodes[3].entropy_source, &secp_ctx).unwrap();
618618
let destination = Destination::BlindedPath(blinded_path);
619619
let intermediate_nodes = [
620-
ForwardNode { node_id: nodes[2].node_id, short_channel_id: None },
621-
ForwardNode { node_id: nodes[1].node_id, short_channel_id: None },
620+
MessageForwardNode { node_id: nodes[2].node_id, short_channel_id: None },
621+
MessageForwardNode { node_id: nodes[1].node_id, short_channel_id: None },
622622
];
623623
let context = MessageContext::Custom(Vec::new());
624624
let reply_path = BlindedMessagePath::new(&intermediate_nodes, nodes[0].node_id, context, &*nodes[0].entropy_source, &secp_ctx).unwrap();
@@ -701,7 +701,7 @@ fn requests_peer_connection_for_buffered_messages() {
701701
let secp_ctx = Secp256k1::new();
702702
add_channel_to_graph(&nodes[0], &nodes[1], &secp_ctx, 42);
703703

704-
let intermediate_nodes = [ForwardNode { node_id: nodes[1].node_id, short_channel_id: None }];
704+
let intermediate_nodes = [MessageForwardNode { node_id: nodes[1].node_id, short_channel_id: None }];
705705
let context = MessageContext::Custom(Vec::new());
706706
let blinded_path = BlindedMessagePath::new(
707707
&intermediate_nodes, nodes[2].node_id, context, &*nodes[0].entropy_source, &secp_ctx
@@ -740,7 +740,7 @@ fn drops_buffered_messages_waiting_for_peer_connection() {
740740
let secp_ctx = Secp256k1::new();
741741
add_channel_to_graph(&nodes[0], &nodes[1], &secp_ctx, 42);
742742

743-
let intermediate_nodes = [ForwardNode { node_id: nodes[1].node_id, short_channel_id: None }];
743+
let intermediate_nodes = [MessageForwardNode { node_id: nodes[1].node_id, short_channel_id: None }];
744744
let context = MessageContext::Custom(Vec::new());
745745
let blinded_path = BlindedMessagePath::new(
746746
&intermediate_nodes, nodes[2].node_id, context, &*nodes[0].entropy_source, &secp_ctx
@@ -791,7 +791,7 @@ fn intercept_offline_peer_oms() {
791791

792792
let message = TestCustomMessage::Pong;
793793
let secp_ctx = Secp256k1::new();
794-
let intermediate_nodes = [ForwardNode { node_id: nodes[1].node_id, short_channel_id: None }];
794+
let intermediate_nodes = [MessageForwardNode { node_id: nodes[1].node_id, short_channel_id: None }];
795795
let context = MessageContext::Custom(Vec::new());
796796
let blinded_path = BlindedMessagePath::new(
797797
&intermediate_nodes, nodes[2].node_id, context, &*nodes[2].entropy_source, &secp_ctx

0 commit comments

Comments
 (0)