@@ -255,6 +255,22 @@ impl SignerTrait<SignerMessage> for Signer {
255
255
_res : & Sender < SignerResult > ,
256
256
current_reward_cycle : u64 ,
257
257
) {
258
+ self . check_submitted_block_proposal ( ) ;
259
+ self . check_pending_block_validations ( stacks_client) ;
260
+
261
+ let mut prior_state = self . local_state_machine . clone ( ) ;
262
+ if self . reward_cycle <= current_reward_cycle {
263
+ self . local_state_machine . handle_pending_update ( & self . signer_db , stacks_client, & self . proposal_config )
264
+ . unwrap_or_else ( |e| error ! ( "{self}: failed to update local state machine for pending update" ; "err" => ?e) ) ;
265
+ }
266
+
267
+ if prior_state != self . local_state_machine {
268
+ let version = self . get_signer_protocol_version ( ) ;
269
+ self . local_state_machine
270
+ . send_signer_update_message ( & mut self . stackerdb , version) ;
271
+ prior_state = self . local_state_machine . clone ( ) ;
272
+ }
273
+
258
274
let event_parity = match event {
259
275
// Block proposal events do have reward cycles, but each proposal has its own cycle,
260
276
// and the vec could be heterogeneous, so, don't differentiate.
@@ -272,8 +288,6 @@ impl SignerTrait<SignerMessage> for Signer {
272
288
if event_parity == Some ( other_signer_parity) {
273
289
return ;
274
290
}
275
- self . check_submitted_block_proposal ( ) ;
276
- self . check_pending_block_validations ( stacks_client) ;
277
291
debug ! ( "{self}: Processing event: {event:?}" ) ;
278
292
let Some ( event) = event else {
279
293
// No event. Do nothing.
@@ -292,12 +306,6 @@ impl SignerTrait<SignerMessage> for Signer {
292
306
return ;
293
307
}
294
308
295
- let prior_state = self . local_state_machine . clone ( ) ;
296
- if self . reward_cycle <= current_reward_cycle {
297
- self . local_state_machine . handle_pending_update ( & self . signer_db , stacks_client, & self . proposal_config )
298
- . unwrap_or_else ( |e| error ! ( "{self}: failed to update local state machine for pending update" ; "err" => ?e) ) ;
299
- }
300
-
301
309
self . handle_event_match ( stacks_client, sortition_state, event, current_reward_cycle) ;
302
310
303
311
self . check_submitted_block_proposal ( ) ;
0 commit comments