redgold_schema/
multiparty.rs

1use crate::structs::{InitiateMultipartyKeygenRequest, InitiateMultipartySigningRequest, MultipartyIdentifier};
2use crate::{structs, HashClear};
3
4
5// TODO: Eliminate these and make a separate trait for proto_serialize
6impl HashClear for InitiateMultipartySigningRequest {
7    fn hash_clear(&mut self) {}
8}
9
10impl HashClear for InitiateMultipartyKeygenRequest {
11    fn hash_clear(&mut self) {}
12}
13
14impl MultipartyIdentifier {
15    pub fn party_index(&self, pk: &structs::PublicKey) -> Option<usize> {
16        self.party_keys.iter().enumerate().find(|(_, k)| k == &pk).map(|(i, _)| i + 1)
17    }
18}
19
20impl InitiateMultipartySigningRequest {
21    pub fn party_index(&self, pk: &structs::PublicKey) -> Option<usize> {
22        self.signing_party_keys.iter().enumerate().find(|(_, k)| k == &pk).map(|(i, _)| i + 1)
23    }
24}