Skip to content

Commit 2e440d2

Browse files
committed
Update VerificationKeyStorer 'save_verification_key' signature
To prepare migration to 'signer_registration' table that also records stake.
1 parent fb79b8e commit 2e440d2

File tree

4 files changed

+19
-21
lines changed

4 files changed

+19
-21
lines changed

mithril-aggregator/src/dependency.rs

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,7 @@ use mithril_common::{
44
chain_observer::ChainObserver,
55
crypto_helper::ProtocolGenesisVerifier,
66
digesters::{ImmutableDigester, ImmutableFileObserver},
7-
entities::{
8-
Certificate, Epoch, ProtocolParameters, Signer, SignerWithStake, StakeDistribution,
9-
},
7+
entities::{Certificate, Epoch, ProtocolParameters, SignerWithStake, StakeDistribution},
108
era::{EraChecker, EraReader},
119
store::StakeStorer,
1210
BeaconProvider,
@@ -253,11 +251,7 @@ impl DependencyManager {
253251
}
254252

255253
async fn fill_verification_key_store(&self, target_epoch: Epoch, signers: &[SignerWithStake]) {
256-
for signer in signers
257-
.iter()
258-
.map(|s| s.to_owned().into())
259-
.collect::<Vec<Signer>>()
260-
{
254+
for signer in signers {
261255
self.verification_key_store
262256
.save_verification_key(target_epoch, signer.clone())
263257
.await

mithril-aggregator/src/multi_signer.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -839,7 +839,7 @@ mod tests {
839839
verification_key_store
840840
.save_verification_key(
841841
start_epoch.offset_to_recording_epoch(),
842-
signer_with_stake.to_owned().into(),
842+
signer_with_stake.to_owned(),
843843
)
844844
.await
845845
.expect("register should have succeeded");

mithril-aggregator/src/signer_registerer.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ impl SignerRegisterer for MithrilSignerRegisterer {
208208

209209
match self
210210
.verification_key_store
211-
.save_verification_key(registration_round.epoch, signer_save.clone().into())
211+
.save_verification_key(registration_round.epoch, signer_save.clone())
212212
.await?
213213
{
214214
Some(_) => Err(SignerRegistrationError::ExistingSigner(signer_save)),

mithril-aggregator/src/store/verification_key_store.rs

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use mithril_common::store::StorePruner;
33
use std::collections::HashMap;
44
use tokio::sync::RwLock;
55

6-
use mithril_common::entities::{Epoch, PartyId, Signer};
6+
use mithril_common::entities::{Epoch, PartyId, Signer, SignerWithStake};
77
use mithril_common::store::{adapter::StoreAdapter, StoreError};
88

99
type Adapter = Box<dyn StoreAdapter<Key = Epoch, Record = HashMap<PartyId, Signer>>>;
@@ -15,8 +15,8 @@ pub trait VerificationKeyStorer {
1515
async fn save_verification_key(
1616
&self,
1717
epoch: Epoch,
18-
signer: Signer,
19-
) -> Result<Option<Signer>, StoreError>;
18+
signer: SignerWithStake,
19+
) -> Result<Option<SignerWithStake>, StoreError>;
2020

2121
/// Returns a HashMap of [Signer] indexed by [PartyId] for the given `Beacon`.
2222
async fn get_verification_keys(
@@ -61,21 +61,21 @@ impl VerificationKeyStorer for VerificationKeyStore {
6161
async fn save_verification_key(
6262
&self,
6363
epoch: Epoch,
64-
signer: Signer,
65-
) -> Result<Option<Signer>, StoreError> {
64+
signer: SignerWithStake,
65+
) -> Result<Option<SignerWithStake>, StoreError> {
6666
let mut signers = match self.adapter.read().await.get_record(&epoch).await? {
6767
Some(s) => s,
6868
None => HashMap::new(),
6969
};
70-
let prev_signer = signers.insert(signer.party_id.to_owned(), signer);
70+
let prev_signer = signers.insert(signer.party_id.to_owned(), signer.clone().into());
7171
self.adapter
7272
.write()
7373
.await
7474
.store_record(&epoch, &signers)
7575
.await?;
7676
self.prune().await?;
7777

78-
Ok(prev_signer)
78+
Ok(prev_signer.map(|prev_signer| SignerWithStake::from_signer(prev_signer, signer.stake)))
7979
}
8080

8181
async fn get_verification_keys(
@@ -135,12 +135,13 @@ mod tests {
135135
let res = store
136136
.save_verification_key(
137137
Epoch(0),
138-
Signer {
138+
SignerWithStake {
139139
party_id: "0".to_string(),
140140
verification_key: "OK".to_string(),
141141
verification_key_signature: None,
142142
operational_certificate: None,
143143
kes_period: None,
144+
stake: 10,
144145
},
145146
)
146147
.await
@@ -155,25 +156,27 @@ mod tests {
155156
let res = store
156157
.save_verification_key(
157158
Epoch(1),
158-
Signer {
159+
SignerWithStake {
159160
party_id: "1".to_string(),
160161
verification_key: "test".to_string(),
161162
verification_key_signature: None,
162163
operational_certificate: None,
163164
kes_period: None,
165+
stake: 10,
164166
},
165167
)
166168
.await
167169
.unwrap();
168170

169171
assert!(res.is_some());
170172
assert_eq!(
171-
Signer {
173+
SignerWithStake {
172174
party_id: "1".to_string(),
173175
verification_key: "vkey 1".to_string(),
174176
verification_key_signature: None,
175177
operational_certificate: None,
176178
kes_period: None,
179+
stake: 10,
177180
},
178181
res.unwrap(),
179182
);
@@ -207,12 +210,13 @@ mod tests {
207210
let _ = store
208211
.save_verification_key(
209212
Epoch(3),
210-
Signer {
213+
SignerWithStake {
211214
party_id: "party_id".to_string(),
212215
verification_key: "whatever".to_string(),
213216
verification_key_signature: None,
214217
operational_certificate: None,
215218
kes_period: None,
219+
stake: 10,
216220
},
217221
)
218222
.await

0 commit comments

Comments
 (0)