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