@@ -6,7 +6,7 @@ use mithril_aggregator::fake_data;
66use crate :: certificate_handler:: CertificateHandler ;
77use crate :: single_signer:: SingleSigner ;
88
9- struct Signer {
9+ pub struct Signer {
1010 certificate_handler : Box < dyn CertificateHandler > ,
1111 single_signer : Box < dyn SingleSigner > ,
1212 current_beacon : Option < Beacon > ,
@@ -21,9 +21,7 @@ pub enum SignerError {
2121}
2222
2323impl Signer {
24- fn new (
25- _party_id : & str ,
26- _signing_key : & str ,
24+ pub fn new (
2725 certificate_handler : Box < dyn CertificateHandler > ,
2826 single_signer : Box < dyn SingleSigner > ,
2927 ) -> Self {
@@ -34,10 +32,11 @@ impl Signer {
3432 }
3533 }
3634
37- fn run ( & mut self ) -> Result < ( ) , SignerError > {
35+ pub async fn run ( & mut self ) -> Result < ( ) , SignerError > {
3836 if let Some ( pending_certificate) = self
3937 . certificate_handler
4038 . retrieve_pending_certificate ( )
39+ . await
4140 . map_err ( SignerError :: RetrievePendingCertificateFailed ) ?
4241 {
4342 let must_register_signature = match & self . current_beacon {
@@ -49,7 +48,7 @@ impl Signer {
4948 } ;
5049
5150 if must_register_signature {
52- let message = "message" . as_bytes ( ) . to_vec ( ) ;
51+ let message = fake_data :: digest ( ) ;
5352 let stake_distribution = fake_data:: signers_with_stakes ( 5 ) ;
5453 let signatures = self
5554 . single_signer
@@ -60,7 +59,7 @@ impl Signer {
6059 )
6160 . map_err ( |e| SignerError :: SingleSignaturesComputeFailed ( e. to_string ( ) ) ) ?;
6261 if !signatures. is_empty ( ) {
63- let _ = self . certificate_handler . register_signatures ( "" ) ;
62+ let _ = self . certificate_handler . register_signatures ( "" ) . await ;
6463 }
6564 }
6665 }
@@ -76,8 +75,8 @@ mod tests {
7675 use crate :: single_signer:: { MockSingleSigner , SingleSignerError } ;
7776 use mithril_aggregator:: fake_data;
7877
79- #[ test]
80- fn signer_doesnt_sign_when_there_is_no_pending_certificate ( ) {
78+ #[ tokio :: test]
79+ async fn signer_doesnt_sign_when_there_is_no_pending_certificate ( ) {
8180 let party_id = "" ;
8281 let signing_key = "" ;
8382 let mut mock_certificate_handler = MockCertificateHandler :: new ( ) ;
@@ -96,11 +95,11 @@ mod tests {
9695 Box :: new ( mock_certificate_handler) ,
9796 Box :: new ( mock_single_signer) ,
9897 ) ;
99- assert ! ( signer. run( ) . is_ok( ) ) ;
98+ assert ! ( signer. run( ) . await . is_ok( ) ) ;
10099 }
101100
102- #[ test]
103- fn signer_fails_when_pending_certificate_fails ( ) {
101+ #[ tokio :: test]
102+ async fn signer_fails_when_pending_certificate_fails ( ) {
104103 let party_id = "" ;
105104 let signing_key = "" ;
106105 let mut mock_certificate_handler = MockCertificateHandler :: new ( ) ;
@@ -117,12 +116,12 @@ mod tests {
117116 ) ;
118117 assert_eq ! (
119118 SignerError :: RetrievePendingCertificateFailed ( "An Error" . to_string( ) ) ,
120- signer. run( ) . unwrap_err( )
119+ signer. run( ) . await . unwrap_err( )
121120 ) ;
122121 }
123122
124- #[ test]
125- fn signer_sign_when_triggered_by_pending_certificate ( ) {
123+ #[ tokio :: test]
124+ async fn signer_sign_when_triggered_by_pending_certificate ( ) {
126125 let party_id = "" ;
127126 let signing_key = "" ;
128127 let mut mock_certificate_handler = MockCertificateHandler :: new ( ) ;
@@ -150,12 +149,12 @@ mod tests {
150149 Box :: new ( mock_certificate_handler) ,
151150 Box :: new ( mock_single_signer) ,
152151 ) ;
153- assert ! ( signer. run( ) . is_ok( ) ) ;
154- assert ! ( signer. run( ) . is_ok( ) ) ;
152+ assert ! ( signer. run( ) . await . is_ok( ) ) ;
153+ assert ! ( signer. run( ) . await . is_ok( ) ) ;
155154 }
156155
157- #[ test]
158- fn signer_sign_only_once_if_pending_certificate_has_not_changed ( ) {
156+ #[ tokio :: test]
157+ async fn signer_sign_only_once_if_pending_certificate_has_not_changed ( ) {
159158 let party_id = "" ;
160159 let signing_key = "" ;
161160 let mut mock_certificate_handler = MockCertificateHandler :: new ( ) ;
@@ -179,12 +178,12 @@ mod tests {
179178 Box :: new ( mock_certificate_handler) ,
180179 Box :: new ( mock_single_signer) ,
181180 ) ;
182- assert ! ( signer. run( ) . is_ok( ) ) ;
183- assert ! ( signer. run( ) . is_ok( ) ) ;
181+ assert ! ( signer. run( ) . await . is_ok( ) ) ;
182+ assert ! ( signer. run( ) . await . is_ok( ) ) ;
184183 }
185184
186- #[ test]
187- fn signer_does_not_send_signatures_if_none_are_computed ( ) {
185+ #[ tokio :: test]
186+ async fn signer_does_not_send_signatures_if_none_are_computed ( ) {
188187 let party_id = "" ;
189188 let signing_key = "" ;
190189 let mut mock_certificate_handler = MockCertificateHandler :: new ( ) ;
@@ -207,11 +206,11 @@ mod tests {
207206 Box :: new ( mock_certificate_handler) ,
208207 Box :: new ( mock_single_signer) ,
209208 ) ;
210- assert ! ( signer. run( ) . is_ok( ) ) ;
209+ assert ! ( signer. run( ) . await . is_ok( ) ) ;
211210 }
212211
213- #[ test]
214- fn signer_fails_if_signature_computation_fails ( ) {
212+ #[ tokio :: test]
213+ async fn signer_fails_if_signature_computation_fails ( ) {
215214 let party_id = "" ;
216215 let signing_key = "" ;
217216 let mut mock_certificate_handler = MockCertificateHandler :: new ( ) ;
@@ -235,7 +234,7 @@ mod tests {
235234 SignerError :: SingleSignaturesComputeFailed (
236235 SingleSignerError :: UnregisteredVerificationKey ( ) . to_string( )
237236 ) ,
238- signer. run( ) . unwrap_err( )
237+ signer. run( ) . await . unwrap_err( )
239238 ) ;
240239 }
241240}
0 commit comments