@@ -65,6 +65,29 @@ impl FakeAggregator {
65
65
66
66
Ok ( time_point)
67
67
}
68
+
69
+ async fn get_current_signers (
70
+ & self ,
71
+ store : & HashMap < Epoch , Vec < Signer > > ,
72
+ ) -> Result < Vec < Signer > , AggregatorClientError > {
73
+ let time_point = self . get_time_point ( ) . await ?;
74
+ let epoch = time_point
75
+ . epoch
76
+ . offset_to_signer_retrieval_epoch ( )
77
+ . map_err ( |e| AggregatorClientError :: RemoteServerTechnical ( anyhow ! ( e) ) ) ?;
78
+
79
+ Ok ( store. get ( & epoch) . cloned ( ) . unwrap_or_default ( ) )
80
+ }
81
+
82
+ async fn get_next_signers (
83
+ & self ,
84
+ store : & HashMap < Epoch , Vec < Signer > > ,
85
+ ) -> Result < Vec < Signer > , AggregatorClientError > {
86
+ let time_point = self . get_time_point ( ) . await ?;
87
+ let epoch = time_point. epoch . offset_to_next_signer_retrieval_epoch ( ) ;
88
+
89
+ Ok ( store. get ( & epoch) . cloned ( ) . unwrap_or_default ( ) )
90
+ }
68
91
}
69
92
70
93
#[ async_trait]
@@ -75,20 +98,11 @@ impl AggregatorClient for FakeAggregator {
75
98
if * self . withhold_epoch_settings . read ( ) . await {
76
99
Ok ( None )
77
100
} else {
101
+ let store = self . registered_signers . read ( ) . await ;
78
102
let time_point = self . get_time_point ( ) . await ?;
103
+ let current_signers = self . get_current_signers ( & store) . await ?;
104
+ let next_signers = self . get_next_signers ( & store) . await ?;
79
105
80
- // TODO create method and also use it in retrieve_pending_certificate
81
- let store = self . registered_signers . read ( ) . await ;
82
- let current_signers = store
83
- . get ( & time_point. epoch . offset_to_signer_retrieval_epoch ( ) . unwrap ( ) )
84
- . cloned ( )
85
- . unwrap_or_default ( ) ;
86
- let next_signers = store
87
- . get ( & time_point. epoch . offset_to_next_signer_retrieval_epoch ( ) )
88
- . cloned ( )
89
- . unwrap_or_default ( ) ;
90
-
91
- // TODO sans signers into epoch_settings
92
106
Ok ( Some ( EpochSettings {
93
107
epoch : time_point. epoch ,
94
108
current_signers,
@@ -118,15 +132,8 @@ impl AggregatorClient for FakeAggregator {
118
132
..fake_data:: certificate_pending ( )
119
133
} ;
120
134
121
- let store = self . registered_signers . read ( ) . await ;
122
- certificate_pending. signers = store
123
- . get ( & time_point. epoch . offset_to_signer_retrieval_epoch ( ) . unwrap ( ) )
124
- . cloned ( )
125
- . unwrap_or_default ( ) ;
126
- certificate_pending. next_signers = store
127
- . get ( & time_point. epoch . offset_to_next_signer_retrieval_epoch ( ) )
128
- . cloned ( )
129
- . unwrap_or_default ( ) ;
135
+ certificate_pending. signers = self . get_current_signers ( & store) . await ?;
136
+ certificate_pending. next_signers = self . get_next_signers ( & store) . await ?;
130
137
131
138
Ok ( Some ( certificate_pending) )
132
139
}
@@ -228,7 +235,7 @@ mod tests {
228
235
229
236
#[ tokio:: test]
230
237
async fn retrieve_epoch_settings ( ) {
231
- // TODO check signers and next signers
238
+ // TODO XXX check signers and next signers
232
239
let ( chain_observer, fake_aggregator) = init ( ) . await ;
233
240
let fake_signers = fake_data:: signers ( 2 ) ;
234
241
let epoch = chain_observer. get_current_epoch ( ) . await . unwrap ( ) . unwrap ( ) ;
0 commit comments