@@ -109,15 +109,21 @@ impl<G: Deref<Target = NetworkGraph<L>> + Clone, L: Deref, S: Deref, SP: Sized,
109
109
. map ( |node_info| node_info. channels . len ( ) >= MIN_PEER_CHANNELS )
110
110
. unwrap_or ( false )
111
111
)
112
- . map ( |details| {
113
- let short_channel_id = details. get_inbound_payment_scid ( ) . unwrap ( ) ;
114
- let payment_relay: PaymentRelay = details. counterparty . forwarding_info . unwrap ( ) . into ( ) ;
112
+ . filter_map ( |details| {
113
+ let short_channel_id = match details. get_inbound_payment_scid ( ) {
114
+ Some ( short_channel_id) => short_channel_id,
115
+ None => return None ,
116
+ } ;
117
+ let payment_relay: PaymentRelay = match details. counterparty . forwarding_info {
118
+ Some ( forwarding_info) => forwarding_info. into ( ) ,
119
+ None => return None ,
120
+ } ;
115
121
let payment_constraints = PaymentConstraints {
116
122
max_cltv_expiry : tlvs. payment_constraints . max_cltv_expiry
117
123
+ payment_relay. cltv_expiry_delta as u32 ,
118
124
htlc_minimum_msat : details. inbound_htlc_minimum_msat . unwrap_or ( 0 ) ,
119
125
} ;
120
- let forward_node = ForwardNode {
126
+ Some ( ForwardNode {
121
127
tlvs : ForwardTlvs {
122
128
short_channel_id,
123
129
payment_relay,
@@ -126,7 +132,9 @@ impl<G: Deref<Target = NetworkGraph<L>> + Clone, L: Deref, S: Deref, SP: Sized,
126
132
} ,
127
133
node_id : details. counterparty . node_id ,
128
134
htlc_maximum_msat : details. inbound_htlc_maximum_msat . unwrap_or ( 0 ) ,
129
- } ;
135
+ } )
136
+ } )
137
+ . map ( |forward_node| {
130
138
BlindedPath :: new_for_payment (
131
139
& [ forward_node] , recipient, tlvs. clone ( ) , u64:: MAX , entropy_source, secp_ctx
132
140
)
0 commit comments