@@ -93,13 +93,38 @@ impl Bolt11Payment {
93
93
}
94
94
}
95
95
96
- if let Some ( payment_params) = sending_parameters {
97
- payment_params
98
- . max_total_routing_fee_msat
99
- . map ( |fee| route_params. max_total_routing_fee_msat = Some ( fee) ) ;
100
- payment_params
101
- . max_total_cltv_expiry_delta
102
- . map ( |delta| route_params. payment_params . max_total_cltv_expiry_delta = delta) ;
96
+ if let Some ( user_set_params) = sending_parameters {
97
+ if let Some ( mut default_params) =
98
+ self . config . sending_parameters_config . as_ref ( ) . cloned ( )
99
+ {
100
+ default_params. max_total_routing_fee_msat = user_set_params
101
+ . max_total_routing_fee_msat
102
+ . or ( default_params. max_total_routing_fee_msat ) ;
103
+ default_params. max_total_cltv_expiry_delta = user_set_params
104
+ . max_total_cltv_expiry_delta
105
+ . or ( default_params. max_total_cltv_expiry_delta ) ;
106
+ default_params. max_path_count =
107
+ user_set_params. max_path_count . or ( default_params. max_path_count ) ;
108
+ default_params. max_channel_saturation_power_of_half = user_set_params
109
+ . max_channel_saturation_power_of_half
110
+ . or ( default_params. max_channel_saturation_power_of_half ) ;
111
+
112
+ route_params. max_total_routing_fee_msat = default_params. max_total_routing_fee_msat ;
113
+ route_params. payment_params . max_total_cltv_expiry_delta =
114
+ default_params. max_total_cltv_expiry_delta . unwrap_or_default ( ) ;
115
+ route_params. payment_params . max_path_count =
116
+ default_params. max_path_count . unwrap_or_default ( ) ;
117
+ route_params. payment_params . max_channel_saturation_power_of_half =
118
+ default_params. max_channel_saturation_power_of_half . unwrap_or_default ( ) ;
119
+ }
120
+ } else if let Some ( default_params) = & self . config . sending_parameters_config {
121
+ route_params. max_total_routing_fee_msat = default_params. max_total_routing_fee_msat ;
122
+ route_params. payment_params . max_total_cltv_expiry_delta =
123
+ default_params. max_total_cltv_expiry_delta . unwrap_or_default ( ) ;
124
+ route_params. payment_params . max_path_count =
125
+ default_params. max_path_count . unwrap_or_default ( ) ;
126
+ route_params. payment_params . max_channel_saturation_power_of_half =
127
+ default_params. max_channel_saturation_power_of_half . unwrap_or_default ( ) ;
103
128
}
104
129
105
130
let payment_secret = Some ( * invoice. payment_secret ( ) ) ;
@@ -212,13 +237,38 @@ impl Bolt11Payment {
212
237
let mut route_params =
213
238
RouteParameters :: from_payment_params_and_value ( payment_params, amount_msat) ;
214
239
215
- if let Some ( payment_params) = sending_parameters {
216
- payment_params
217
- . max_total_routing_fee_msat
218
- . map ( |fee| route_params. max_total_routing_fee_msat = Some ( fee) ) ;
219
- payment_params
220
- . max_total_cltv_expiry_delta
221
- . map ( |delta| route_params. payment_params . max_total_cltv_expiry_delta = delta) ;
240
+ if let Some ( user_set_params) = sending_parameters {
241
+ if let Some ( mut default_params) =
242
+ self . config . sending_parameters_config . as_ref ( ) . cloned ( )
243
+ {
244
+ default_params. max_total_routing_fee_msat = user_set_params
245
+ . max_total_routing_fee_msat
246
+ . or ( default_params. max_total_routing_fee_msat ) ;
247
+ default_params. max_total_cltv_expiry_delta = user_set_params
248
+ . max_total_cltv_expiry_delta
249
+ . or ( default_params. max_total_cltv_expiry_delta ) ;
250
+ default_params. max_path_count =
251
+ user_set_params. max_path_count . or ( default_params. max_path_count ) ;
252
+ default_params. max_channel_saturation_power_of_half = user_set_params
253
+ . max_channel_saturation_power_of_half
254
+ . or ( default_params. max_channel_saturation_power_of_half ) ;
255
+
256
+ route_params. max_total_routing_fee_msat = default_params. max_total_routing_fee_msat ;
257
+ route_params. payment_params . max_total_cltv_expiry_delta =
258
+ default_params. max_total_cltv_expiry_delta . unwrap_or_default ( ) ;
259
+ route_params. payment_params . max_path_count =
260
+ default_params. max_path_count . unwrap_or_default ( ) ;
261
+ route_params. payment_params . max_channel_saturation_power_of_half =
262
+ default_params. max_channel_saturation_power_of_half . unwrap_or_default ( ) ;
263
+ }
264
+ } else if let Some ( default_params) = & self . config . sending_parameters_config {
265
+ route_params. max_total_routing_fee_msat = default_params. max_total_routing_fee_msat ;
266
+ route_params. payment_params . max_total_cltv_expiry_delta =
267
+ default_params. max_total_cltv_expiry_delta . unwrap_or_default ( ) ;
268
+ route_params. payment_params . max_path_count =
269
+ default_params. max_path_count . unwrap_or_default ( ) ;
270
+ route_params. payment_params . max_channel_saturation_power_of_half =
271
+ default_params. max_channel_saturation_power_of_half . unwrap_or_default ( ) ;
222
272
}
223
273
224
274
let retry_strategy = Retry :: Timeout ( LDK_PAYMENT_RETRY_TIMEOUT ) ;
0 commit comments