Browse Source

content working group: do not set lead at genesis

Mokhtar Naamani 5 years ago
parent
commit
6b139848a3
2 changed files with 46 additions and 60 deletions
  1. 0 1
      src/content_working_group/genesis.rs
  2. 46 59
      src/content_working_group/lib.rs

+ 0 - 1
src/content_working_group/genesis.rs

@@ -65,7 +65,6 @@ impl<T: Trait> GenesisConfigBuilder<T> {
     pub fn build(self) -> GenesisConfig<T> {
         GenesisConfig {
             mint_capacity: self.mint_capacity,
-            initial_lead: None,
             curator_opening_by_id: map![], //GenesisConfigMap<CuratorOpeningId, Opening>,
             next_curator_opening_id: CuratorOpeningId::<T>::default(),
             curator_application_by_id: map![], //GenesisConfigMap<CuratorApplicationId,CuratorApplication>,

+ 46 - 59
src/content_working_group/lib.rs

@@ -1055,18 +1055,12 @@ decl_storage! {
         pub CuratorExitRationaleText get(curator_exit_rationale_text) config(): InputValidationLengthConstraint;
     }
     add_extra_genesis {
-        config(initial_lead) : Option<(T::MemberId, T::AccountId)>;
         config(mint_capacity): minting::BalanceOf<T>;
         // config(mint_adjustment): minting::Adjustment<BalanceOf<T>, T::BlockNumber> (add serialize/deserialize derivation for type)
         build(|config: &GenesisConfig<T>| {
             // create mint
             let mint_id = <minting::Module<T>>::add_mint(config.mint_capacity, None).expect("Failed to create a mint for the content working group");
             Mint::<T>::put(mint_id);
-
-            // create lead
-            if let Some((member_id, account_id)) = config.initial_lead.clone() {
-                <Module<T>>::do_set_lead(member_id, account_id).expect("Failed to create the lead for the content working group");
-            }
         });
     }
 }
@@ -1864,7 +1858,52 @@ decl_module! {
             // Ensure root is origin
             ensure_root(origin)?;
 
-            Self::do_set_lead(member, role_account)?;
+                    // Ensure there is no current lead
+            ensure!(
+                <CurrentLeadId<T>>::get().is_none(),
+                MSG_CURRENT_LEAD_ALREADY_SET
+            );
+
+            // Ensure that member can actually become lead
+            let new_lead_id = <NextLeadId<T>>::get();
+
+            let new_lead_role =
+                role_types::ActorInRole::new(role_types::Role::CuratorLead, new_lead_id);
+
+            let _profile = <members::Module<T>>::can_register_role_on_member(
+                &member,
+                &role_types::ActorInRole::new(role_types::Role::CuratorLead, new_lead_id),
+            )?;
+
+            //
+            // == MUTATION SAFE ==
+            //
+
+            // Construct lead
+            let new_lead = Lead {
+                role_account: role_account.clone(),
+                reward_relationship: None,
+                inducted: <system::Module<T>>::block_number(),
+                stage: LeadRoleState::Active,
+            };
+
+            // Store lead
+            <LeadById<T>>::insert(new_lead_id, new_lead);
+
+            // Update current lead
+            <CurrentLeadId<T>>::put(new_lead_id); // Some(new_lead_id)
+
+            // Update next lead counter
+            <NextLeadId<T>>::mutate(|id| *id += <LeadId<T> as One>::one());
+
+            // Register in role
+            let registered_role =
+                <members::Module<T>>::register_role_on_member(member, &new_lead_role).is_ok();
+
+            assert!(registered_role);
+
+            // Trigger event
+            Self::deposit_event(RawEvent::LeadSet(new_lead_id));
         }
 
         /// Evict the currently unset lead
@@ -2597,58 +2636,6 @@ impl<T: Trait> Module<T> {
         Self::deposit_event(RawEvent::ChannelUpdatedByCurationActor(*channel_id));
     }
 
-    /// Introduce a lead when one is not currently set.
-    pub fn do_set_lead(member: T::MemberId, role_account: T::AccountId) -> dispatch::Result {
-        // Ensure there is no current lead
-        ensure!(
-            <CurrentLeadId<T>>::get().is_none(),
-            MSG_CURRENT_LEAD_ALREADY_SET
-        );
-
-        // Ensure that member can actually become lead
-        let new_lead_id = <NextLeadId<T>>::get();
-
-        let new_lead_role =
-            role_types::ActorInRole::new(role_types::Role::CuratorLead, new_lead_id);
-
-        let _profile = <members::Module<T>>::can_register_role_on_member(
-            &member,
-            &role_types::ActorInRole::new(role_types::Role::CuratorLead, new_lead_id),
-        )?;
-
-        //
-        // == MUTATION SAFE ==
-        //
-
-        // Construct lead
-        let new_lead = Lead {
-            role_account: role_account.clone(),
-            reward_relationship: None,
-            inducted: <system::Module<T>>::block_number(),
-            stage: LeadRoleState::Active,
-        };
-
-        // Store lead
-        <LeadById<T>>::insert(new_lead_id, new_lead);
-
-        // Update current lead
-        <CurrentLeadId<T>>::put(new_lead_id); // Some(new_lead_id)
-
-        // Update next lead counter
-        <NextLeadId<T>>::mutate(|id| *id += <LeadId<T> as One>::one());
-
-        // Register in role
-        let registered_role =
-            <members::Module<T>>::register_role_on_member(member, &new_lead_role).is_ok();
-
-        assert!(registered_role);
-
-        // Trigger event
-        Self::deposit_event(RawEvent::LeadSet(new_lead_id));
-
-        Ok(())
-    }
-
     /// The stake, with the given id, was unstaked. Infalliable. Has no side effects if stake_id is not relevant
     /// to this module.
     pub fn unstaked(stake_id: StakeId<T>) {