Skip to content

Commit d83131d

Browse files
committed
Refactor compute multi signature
And make it use a message argument.
1 parent 0b32e3f commit d83131d

File tree

2 files changed

+13
-16
lines changed

2 files changed

+13
-16
lines changed

mithril-aggregator/src/multi_signer.rs

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,8 @@ pub trait MultiSigner: Sync + Send {
193193

194194
/// Creates a multi signature from single signatures
195195
async fn create_multi_signature(
196-
&mut self,
196+
&self,
197+
message: &entities::ProtocolMessage,
197198
) -> Result<Option<ProtocolMultiSignature>, ProtocolError>;
198199
}
199200

@@ -588,14 +589,10 @@ impl MultiSigner for MultiSignerImpl {
588589

589590
/// Creates a multi signature from single signatures
590591
async fn create_multi_signature(
591-
&mut self,
592+
&self,
593+
message: &entities::ProtocolMessage,
592594
) -> Result<Option<ProtocolMultiSignature>, ProtocolError> {
593595
debug!("Create multi signature");
594-
let message = &self
595-
.get_current_message()
596-
.await
597-
.ok_or_else(ProtocolError::UnavailableMessage)?;
598-
599596
let beacon = self
600597
.current_beacon
601598
.as_ref()
@@ -892,7 +889,7 @@ mod tests {
892889

893890
// No signatures registered: multi-signer can't create the multi-signature
894891
assert!(multi_signer
895-
.create_multi_signature()
892+
.create_multi_signature(&message)
896893
.await
897894
.expect("create multi signature should not fail")
898895
.is_none());
@@ -905,7 +902,7 @@ mod tests {
905902
.expect("register single signature should not fail");
906903
}
907904
assert!(multi_signer
908-
.create_multi_signature()
905+
.create_multi_signature(&message)
909906
.await
910907
.expect("create multi signature should not fail")
911908
.is_none());
@@ -919,7 +916,7 @@ mod tests {
919916
}
920917
assert!(
921918
multi_signer
922-
.create_multi_signature()
919+
.create_multi_signature(&message)
923920
.await
924921
.expect("create multi signature should not fail")
925922
.is_some(),

mithril-aggregator/src/runtime/runner.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -555,13 +555,13 @@ impl AggregatorRunnerTrait for AggregatorRunner {
555555
) -> Result<Option<ProtocolMultiSignature>, Box<dyn StdError + Sync + Send>> {
556556
debug!("RUNNER: create multi-signature");
557557

558-
Ok(self
559-
.dependencies
560-
.multi_signer
561-
.write()
558+
let multi_signer = self.dependencies.multi_signer.read().await;
559+
let message = multi_signer
560+
.get_current_message()
562561
.await
563-
.create_multi_signature()
564-
.await?)
562+
.ok_or_else(ProtocolError::UnavailableMessage)?;
563+
564+
Ok(multi_signer.create_multi_signature(&message).await?)
565565
}
566566

567567
async fn create_snapshot_archive(

0 commit comments

Comments
 (0)