From 1d5869561ae3a9ab0c7a08361d0e70e1fe439e09 Mon Sep 17 00:00:00 2001 From: Sosthene Date: Sat, 30 Nov 2024 20:02:55 +0100 Subject: [PATCH] [bug] take care of redundant local address when pairing --- src/api.rs | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/api.rs b/src/api.rs index e31a987..49db961 100644 --- a/src/api.rs +++ b/src/api.rs @@ -290,16 +290,18 @@ pub fn is_linking() -> ApiResult { pub fn pair_device(commitment_tx: String, mut sp_addresses: Vec) -> ApiResult<()> { let mut local_device = lock_local_device()?; - if local_device.is_linked() { + if local_device.get_pairing_commitment().is_some() { return Err(ApiError::new("Already paired".to_owned())); } - sp_addresses.push( - local_device - .get_wallet() - .get_client() - .get_receiving_address(), - ); + let local_address = local_device + .get_wallet() + .get_client() + .get_receiving_address(); + + if !sp_addresses.iter().any(|a| *a == local_address) { + sp_addresses.push(local_address); + } local_device.pair( OutPoint::from_str(&commitment_tx)?,