diff --git a/pallets/smith-members/src/lib.rs b/pallets/smith-members/src/lib.rs index a20e0bd04d2221ab3dfe9008bf02a5aff9ab3a68..85c9417c7e910964d7c772e3d056f96d14772ec6 100644 --- a/pallets/smith-members/src/lib.rs +++ b/pallets/smith-members/src/lib.rs @@ -440,6 +440,7 @@ impl<T: Config> Pallet<T> { if let Some(smith_meta) = maybe_smith_meta { smith_meta.received_certs.push(issuer); smith_meta.received_certs.sort(); + let previous_status = smith_meta.status.clone(); smith_meta.status = if smith_meta.received_certs.len() >= T::MinCertForMembership::get() as usize { SmithStatus::Smith @@ -451,7 +452,8 @@ impl<T: Config> Pallet<T> { CurrentSession::<T>::get() + T::SmithInactivityMaxDuration::get(); smith_meta.expires_on = Some(new_expires_on); Self::deposit_event(Event::<T>::SmithCertAdded { receiver, issuer }); - if smith_meta.status == SmithStatus::Smith { + if smith_meta.status == SmithStatus::Smith && previous_status != SmithStatus::Smith + { Self::deposit_event(Event::<T>::SmithMembershipAdded { idty_index: receiver, });