From: Matt Corallo Date: Fri, 16 Feb 2024 19:26:22 +0000 (+0000) Subject: Fix `Route` serialization round-trip X-Git-Tag: v0.0.122^2~4 X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=commitdiff_plain;h=72c4eb83d82cb26d2c16023febb5373b1ae27caf;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 42556ff34..1dbd1ffc6 100644 --- a/lightning/src/routing/router.rs +++ b/lightning/src/routing/router.rs @@ -529,7 +529,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(()) }