From 3339680c6a93019eaa68e270636dd9cae3f6f7e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=BA=C3=B1ez?= Date: Mon, 20 May 2024 13:48:46 +0200 Subject: [PATCH] DKG level method for validators to create refresh transcripts --- ferveo/src/dkg.rs | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) 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