From: Matt Corallo Date: Fri, 16 Feb 2024 19:26:22 +0000 (+0000) Subject: Fix `Route` serialization round-trip X-Git-Tag: v0.0.123-beta~63^2~1 X-Git-Url: http://git.bitcoin.ninja/?a=commitdiff_plain;h=4026d4efd1eb92c47fe567eee6a9cd8824dc1cf2;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 42e7f76da..8e59c9bd4 100644 --- a/lightning/src/routing/router.rs +++ b/lightning/src/routing/router.rs @@ -526,7 +526,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(()) }