diff --git a/ferveo/src/dkg.rs b/ferveo/src/dkg.rs index e89059a9..9fcbe831 100644 --- a/ferveo/src/dkg.rs +++ b/ferveo/src/dkg.rs @@ -9,8 +9,9 @@ use rand::RngCore; use serde::{Deserialize, Serialize}; use crate::{ - assert_no_share_duplicates, AggregatedTranscript, Error, EthereumAddress, - PubliclyVerifiableParams, PubliclyVerifiableSS, Result, Validator, + assert_no_share_duplicates, refresh, AggregatedTranscript, Error, + EthereumAddress, PubliclyVerifiableParams, PubliclyVerifiableSS, Result, + UpdateTranscript, Validator, }; pub type DomainPoint = ::ScalarField; @@ -226,6 +227,19 @@ impl PubliclyVerifiableDkg { Ok(()) } + + // Returns a new refresh transcript for current validators in DKG + // TODO: Allow to pass a parameter to restrict target validators + pub fn generate_refresh_transcript( + &self, + rng: &mut R, + ) -> Result> { + Ok(UpdateTranscript::create_refresh_updates( + &self.domain_and_key_map(), + self.dkg_params.security_threshold(), + rng, + )) + } } /// Test initializing DKG