From 74087c37cf0b0796e794f98bebb11167ca243969 Mon Sep 17 00:00:00 2001 From: Thomas Ballivet Date: Fri, 9 May 2025 17:39:10 +0200 Subject: [PATCH] refactor: map fingerprint only once --- liana-gui/src/app/view/psbt.rs | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/liana-gui/src/app/view/psbt.rs b/liana-gui/src/app/view/psbt.rs index c04640c5..aaf34281 100644 --- a/liana-gui/src/app/view/psbt.rs +++ b/liana-gui/src/app/view/psbt.rs @@ -1041,20 +1041,16 @@ pub fn sign_action<'a>( .push(hws.iter().enumerate().fold( Column::new().spacing(10), |col, (i, hw)| { - let can_sign = hw.fingerprint().map_or(false, |f| { - descriptor.contains_fingerprint_in_path(f, recovery_timelock) - }); - col.push(hw_list_view( - i, - hw, - hw.fingerprint() - .map(|f| signed.contains(&f)) - .unwrap_or(false), - hw.fingerprint() - .map(|f| signing.contains(&f)) - .unwrap_or(false), - can_sign, - )) + let (signed, signing, can_sign) = + hw.fingerprint().map_or((false, false, false), |f| { + ( + signed.contains(&f), + signing.contains(&f), + descriptor + .contains_fingerprint_in_path(f, recovery_timelock), + ) + }); + col.push(hw_list_view(i, hw, signed, signing, can_sign)) }, )) .push_maybe({