diff --git a/pallets/smith-members/src/lib.rs b/pallets/smith-members/src/lib.rs index 64c45dd32d3953057bc1914055f45ac8b5f964a0..691e68e99b3aaca90a7ad26390c31e68b9719cc8 100644 --- a/pallets/smith-members/src/lib.rs +++ b/pallets/smith-members/src/lib.rs @@ -430,6 +430,7 @@ impl<T: Config> Pallet<T> { } fn do_certify_smith(receiver: T::IdtyIndex, issuer: T::IdtyIndex) { + // - adds a certification in issuer issued list Smiths::<T>::mutate(issuer, |maybe_smith_meta| { if let Some(smith_meta) = maybe_smith_meta { smith_meta.issued_certs.push(receiver); @@ -438,13 +439,19 @@ impl<T: Config> Pallet<T> { }); Smiths::<T>::mutate(receiver, |maybe_smith_meta| { if let Some(smith_meta) = maybe_smith_meta { + // - adds a certification in receiver received list smith_meta.received_certs.push(issuer); smith_meta.received_certs.sort(); + Self::deposit_event(Event::<T>::SmithCertAdded { receiver, issuer }); + + // - receiving a certification either lead us to Pending or Smith status let previous_status = smith_meta.status.clone(); smith_meta.status = if smith_meta.received_certs.len() >= T::MinCertForMembership::get() as usize { + // - if the number of certification received by the receiver is enough, win the Smith status (or keep it) SmithStatus::Smith } else { + // - otherwise we are (still) a pending smith SmithStatus::Pending };