From 4726c598612478a641ed196062637a6760621ae6 Mon Sep 17 00:00:00 2001 From: Sosthene Date: Fri, 4 Oct 2024 09:24:23 +0200 Subject: [PATCH] Add key_is_part_of_member to Member --- src/pcd.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/pcd.rs b/src/pcd.rs index 1cc64fa..ff93483 100644 --- a/src/pcd.rs +++ b/src/pcd.rs @@ -6,7 +6,7 @@ use log::debug; use rand::thread_rng; use serde::{Deserialize, Serialize}; use serde_json::{Map, Value}; -use sp_client::{bitcoin::{hashes::{sha256t_hash_newtype, Hash, HashEngine}, hex::{DisplayHex, FromHex}, Txid}, silentpayments::utils::SilentPaymentAddress}; +use sp_client::{bitcoin::{hashes::{sha256t_hash_newtype, Hash, HashEngine}, hex::{DisplayHex, FromHex}, XOnlyPublicKey}, silentpayments::utils::SilentPaymentAddress}; use tsify::Tsify; use crate::crypto::AAD; @@ -44,6 +44,13 @@ impl Member { pub fn get_addresses(&self) -> Vec { self.sp_addresses.clone() } + + pub fn key_is_part_of_member(&self, key: &XOnlyPublicKey) -> bool { + self.sp_addresses.iter().any(|a| { + let addr = SilentPaymentAddress::try_from(a.as_str()).unwrap(); + addr.get_spend_key().x_only_public_key().0 == *key + }) + } } sha256t_hash_newtype! {