diff --git a/substrate/client/authority-discovery/src/worker.rs b/substrate/client/authority-discovery/src/worker.rs index f05c6d4604..fb1fb6ce58 100644 --- a/substrate/client/authority-discovery/src/worker.rs +++ b/substrate/client/authority-discovery/src/worker.rs @@ -290,6 +290,15 @@ where Role::Discover => return Ok(()), }; + let keys = Worker::::get_own_public_keys_within_authority_set( + key_store.clone(), + self.client.as_ref(), + ).await?.into_iter().map(Into::into).collect::>(); + + if only_if_changed && keys == self.latest_published_keys { + return Ok(()) + } + let addresses = self.addresses_to_publish(); if let Some(metrics) = &self.metrics { @@ -304,15 +313,6 @@ where .encode(&mut serialized_addresses) .map_err(Error::EncodingProto)?; - let keys = Worker::::get_own_public_keys_within_authority_set( - key_store.clone(), - self.client.as_ref(), - ).await?.into_iter().map(Into::into).collect::>(); - - if only_if_changed && keys == self.latest_published_keys { - return Ok(()) - } - let keys_vec = keys.iter().cloned().collect::>(); let signatures = key_store.sign_with_all( key_types::AUTHORITY_DISCOVERY,