From: Matt Corallo Date: Fri, 16 Feb 2024 19:26:22 +0000 (+0000) Subject: Fix `Route` serialization round-trip X-Git-Url: http://git.bitcoin.ninja/?a=commitdiff_plain;h=8ad35c5d177918ca5c6693a2da617e8377128a25;p=rust-lightning Fix `Route` serialization round-trip When the `max_total_routing_fee_msat` parameter was added to `RouteParameters`, the serialization used `map` to get the max fee, accidentally writing an `Option>`, but then read it as an `Option`. Thus, any `Route`s with a `route_params` written will fail to be read back. Luckily, this is an incredibly rarely-used bit of code, so only one user managed to hit it. --- diff --git a/lightning/src/routing/router.rs b/lightning/src/routing/router.rs index 77969ae9d..74c5d19da 100644 --- a/lightning/src/routing/router.rs +++ b/lightning/src/routing/router.rs @@ -412,7 +412,7 @@ impl Writeable for Route { (1, self.route_params.as_ref().map(|p| &p.payment_params), option), (2, blinded_tails, optional_vec), (3, self.route_params.as_ref().map(|p| p.final_value_msat), option), - (5, self.route_params.as_ref().map(|p| p.max_total_routing_fee_msat), option), + (5, self.route_params.as_ref().and_then(|p| p.max_total_routing_fee_msat), option), }); Ok(()) }