Skip to content

Commit f4638f9

Browse files
committed
Use the trait instead of the struct for vkey store dependency
1 parent 0d810ac commit f4638f9

File tree

5 files changed

+19
-23
lines changed

5 files changed

+19
-23
lines changed

mithril-aggregator/src/dependency.rs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,7 @@ use crate::{
2525
signer_registerer::SignerRecorder,
2626
ticker_service::TickerService,
2727
CertificatePendingStore, CertificateStore, ProtocolParametersStore, ProtocolParametersStorer,
28-
SignerRegisterer, SignerRegistrationRoundOpener, Snapshotter, VerificationKeyStore,
29-
VerificationKeyStorer,
28+
SignerRegisterer, SignerRegistrationRoundOpener, Snapshotter, VerificationKeyStorer,
3029
};
3130
use crate::{event_store::TransmitterService, multi_signer::MultiSigner};
3231
use crate::{
@@ -63,7 +62,7 @@ pub struct DependencyManager {
6362
pub certificate_store: Arc<CertificateStore>,
6463

6564
/// Verification key store.
66-
pub verification_key_store: Arc<VerificationKeyStore>,
65+
pub verification_key_store: Arc<dyn VerificationKeyStorer>,
6766

6867
/// Protocol parameter store.
6968
pub protocol_parameters_store: Arc<ProtocolParametersStore>,
@@ -249,7 +248,7 @@ impl DependencyManager {
249248
/// Fill the stores of a [DependencyManager] in a way to simulate an aggregator genesis state.
250249
///
251250
/// For the current and the next epoch:
252-
/// * Fill the [VerificationKeyStore] with the given signers keys.
251+
/// * Fill the [VerificationKeyStorer] with the given signers keys.
253252
/// * Fill the [StakeStore] with the given signers stakes.
254253
/// * Fill the [ProtocolParametersStore] with the given parameters.
255254
pub async fn prepare_for_genesis(

mithril-aggregator/src/dependency_injection/builder.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ use crate::{
5757
CertificateStore, Configuration, DependencyManager, DumbSnapshotUploader, DumbSnapshotter,
5858
GzipSnapshotter, LocalSnapshotUploader, MithrilSignerRegisterer, MultiSigner, MultiSignerImpl,
5959
ProtocolParametersStore, ProtocolParametersStorer, RemoteSnapshotUploader, SnapshotUploader,
60-
SnapshotUploaderType, Snapshotter, VerificationKeyStore,
60+
SnapshotUploaderType, Snapshotter, VerificationKeyStore, VerificationKeyStorer,
6161
};
6262

6363
use super::{DependenciesBuilderError, Result};
@@ -99,7 +99,7 @@ pub struct DependenciesBuilder {
9999
pub certificate_store: Option<Arc<CertificateStore>>,
100100

101101
/// Verification key store.
102-
pub verification_key_store: Option<Arc<VerificationKeyStore>>,
102+
pub verification_key_store: Option<Arc<dyn VerificationKeyStorer>>,
103103

104104
/// Protocol parameter store.
105105
pub protocol_parameters_store: Option<Arc<ProtocolParametersStore>>,
@@ -398,7 +398,7 @@ impl DependenciesBuilder {
398398
Ok(self.certificate_store.as_ref().cloned().unwrap())
399399
}
400400

401-
async fn build_verification_key_store(&mut self) -> Result<Arc<VerificationKeyStore>> {
401+
async fn build_verification_key_store(&mut self) -> Result<Arc<dyn VerificationKeyStorer>> {
402402
Ok(Arc::new(VerificationKeyStore::new(
403403
Box::new(SignerRegistrationStoreAdapter::new(
404404
self.get_sqlite_connection().await?,
@@ -407,8 +407,8 @@ impl DependenciesBuilder {
407407
)))
408408
}
409409

410-
/// Get a configured [VerificationKeyStore].
411-
pub async fn get_verification_key_store(&mut self) -> Result<Arc<VerificationKeyStore>> {
410+
/// Get a configured [VerificationKeyStorer].
411+
pub async fn get_verification_key_store(&mut self) -> Result<Arc<dyn VerificationKeyStorer>> {
412412
if self.verification_key_store.is_none() {
413413
self.verification_key_store = Some(self.build_verification_key_store().await?);
414414
}

mithril-aggregator/src/multi_signer.rs

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use mithril_common::{
1515

1616
use crate::{
1717
entities::OpenMessage, store::VerificationKeyStorer, ProtocolParametersStore,
18-
ProtocolParametersStorer, VerificationKeyStore,
18+
ProtocolParametersStorer,
1919
};
2020

2121
#[cfg(test)]
@@ -194,7 +194,7 @@ pub struct MultiSignerImpl {
194194
current_beacon: Option<entities::Beacon>,
195195

196196
/// Verification key store
197-
verification_key_store: Arc<VerificationKeyStore>,
197+
verification_key_store: Arc<dyn VerificationKeyStorer>,
198198

199199
/// Stake store
200200
stake_store: Arc<dyn StakeStorer>,
@@ -206,7 +206,7 @@ pub struct MultiSignerImpl {
206206
impl MultiSignerImpl {
207207
/// MultiSignerImpl factory
208208
pub fn new(
209-
verification_key_store: Arc<VerificationKeyStore>,
209+
verification_key_store: Arc<dyn VerificationKeyStorer>,
210210
stake_store: Arc<dyn StakeStorer>,
211211
protocol_parameters_store: Arc<ProtocolParametersStore>,
212212
) -> Self {
@@ -587,7 +587,7 @@ mod tests {
587587
use crate::{store::VerificationKeyStore, ProtocolParametersStore};
588588
use mithril_common::{
589589
crypto_helper::tests_setup::*,
590-
entities::SignedEntityType,
590+
entities::{PartyId, SignedEntityType},
591591
store::{adapter::MemoryAdapter, StakeStore},
592592
test_utils::{fake_data, MithrilFixtureBuilder},
593593
};
@@ -596,12 +596,7 @@ mod tests {
596596
async fn setup_multi_signer() -> MultiSignerImpl {
597597
let beacon = fake_data::beacon();
598598
let verification_key_store = VerificationKeyStore::new(
599-
Box::new(
600-
MemoryAdapter::<Epoch, HashMap<entities::PartyId, entities::SignerWithStake>>::new(
601-
None,
602-
)
603-
.unwrap(),
604-
),
599+
Box::new(MemoryAdapter::<Epoch, HashMap<PartyId, SignerWithStake>>::new(None).unwrap()),
605600
None,
606601
);
607602
let stake_store = StakeStore::new(

mithril-aggregator/src/signer_registerer.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ use std::sync::Arc;
33
use thiserror::Error;
44
use tokio::sync::RwLock;
55

6-
use crate::{VerificationKeyStore, VerificationKeyStorer};
76
use mithril_common::{
87
chain_observer::ChainObserver,
98
crypto_helper::{
@@ -14,6 +13,8 @@ use mithril_common::{
1413
StdError,
1514
};
1615

16+
use crate::VerificationKeyStorer;
17+
1718
#[cfg(test)]
1819
use mockall::automock;
1920

@@ -131,7 +132,7 @@ pub struct MithrilSignerRegisterer {
131132
chain_observer: Arc<dyn ChainObserver>,
132133

133134
/// Verification key store
134-
verification_key_store: Arc<VerificationKeyStore>,
135+
verification_key_store: Arc<dyn VerificationKeyStorer>,
135136

136137
/// Signer recorder
137138
signer_recorder: Arc<dyn SignerRecorder>,
@@ -141,7 +142,7 @@ impl MithrilSignerRegisterer {
141142
/// MithrilSignerRegisterer factory
142143
pub fn new(
143144
chain_observer: Arc<dyn ChainObserver>,
144-
verification_key_store: Arc<VerificationKeyStore>,
145+
verification_key_store: Arc<dyn VerificationKeyStorer>,
145146
signer_recorder: Arc<dyn SignerRecorder>,
146147
) -> Self {
147148
Self {

mithril-aggregator/src/store/verification_key_store.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ type Adapter = Box<dyn StoreAdapter<Key = Epoch, Record = HashMap<PartyId, Signe
1010

1111
/// Mocking trait for `VerificationKeyStore`.
1212
#[async_trait]
13-
pub trait VerificationKeyStorer {
13+
pub trait VerificationKeyStorer: Sync + Send {
1414
/// Save the verification key, for the given [Signer] for the given [Epoch].
1515
async fn save_verification_key(
1616
&self,
@@ -24,6 +24,7 @@ pub trait VerificationKeyStorer {
2424
epoch: Epoch,
2525
) -> Result<Option<HashMap<PartyId, Signer>>, StoreError>;
2626
}
27+
2728
/// Store for the `VerificationKey`.
2829
pub struct VerificationKeyStore {
2930
adapter: RwLock<Adapter>,

0 commit comments

Comments
 (0)