Browse Source

runtime: membership: use opaque metadata

conectado 4 years ago
parent
commit
1b538ddd9e

+ 1 - 3
runtime-modules/blog/src/benchmarking.rs

@@ -43,10 +43,8 @@ fn member_funded_account<T: Trait<I> + membership::Trait + balances::Trait, I: I
     let params = membership::BuyMembershipParameters {
         root_account: account_id.clone(),
         controller_account: account_id.clone(),
-        name: None,
         handle: Some(handle),
-        avatar_uri: None,
-        about: None,
+        meta_data: Vec::new(),
         referrer_id: None,
     };
 

+ 3 - 3
runtime-modules/blog/src/mock.rs

@@ -156,10 +156,10 @@ impl common::working_group::WorkingGroupAuthenticator<Runtime> for () {
 
 pub struct Weights;
 impl membership::WeightInfo for Weights {
-    fn buy_membership_without_referrer(_: u32, _: u32, _: u32, _: u32) -> Weight {
+    fn buy_membership_without_referrer(_: u32, _: u32) -> Weight {
         unimplemented!()
     }
-    fn buy_membership_with_referrer(_: u32, _: u32, _: u32, _: u32) -> Weight {
+    fn buy_membership_with_referrer(_: u32, _: u32) -> Weight {
         unimplemented!()
     }
     fn update_profile(_: u32) -> Weight {
@@ -183,7 +183,7 @@ impl membership::WeightInfo for Weights {
     fn transfer_invites() -> Weight {
         unimplemented!()
     }
-    fn invite_member(_: u32, _: u32, _: u32, _: u32) -> Weight {
+    fn invite_member(_: u32, _: u32) -> Weight {
         unimplemented!()
     }
     fn set_membership_price() -> Weight {

+ 1 - 3
runtime-modules/council/src/benchmarking.rs

@@ -150,10 +150,8 @@ where
     let params = membership::BuyMembershipParameters {
         root_account: account_id.clone(),
         controller_account: account_id.clone(),
-        name: None,
         handle: Some(handle),
-        avatar_uri: None,
-        about: None,
+        meta_data: Vec::new(),
         referrer_id: None,
     };
 

+ 3 - 3
runtime-modules/council/src/mock.rs

@@ -370,10 +370,10 @@ impl referendum::WeightInfo for Weights {
 }
 
 impl membership::WeightInfo for Weights {
-    fn buy_membership_without_referrer(_: u32, _: u32, _: u32, _: u32) -> Weight {
+    fn buy_membership_without_referrer(_: u32, _: u32) -> Weight {
         unimplemented!()
     }
-    fn buy_membership_with_referrer(_: u32, _: u32, _: u32, _: u32) -> Weight {
+    fn buy_membership_with_referrer(_: u32, _: u32) -> Weight {
         unimplemented!()
     }
     fn update_profile(_: u32) -> Weight {
@@ -397,7 +397,7 @@ impl membership::WeightInfo for Weights {
     fn transfer_invites() -> Weight {
         unimplemented!()
     }
-    fn invite_member(_: u32, _: u32, _: u32, _: u32) -> Weight {
+    fn invite_member(_: u32, _: u32) -> Weight {
         unimplemented!()
     }
     fn set_membership_price() -> Weight {

+ 1 - 3
runtime-modules/forum/src/benchmarking.rs

@@ -76,10 +76,8 @@ where
     let params = membership::BuyMembershipParameters {
         root_account: account_id.clone(),
         controller_account: account_id.clone(),
-        name: None,
         handle: Some(handle),
-        avatar_uri: None,
-        about: None,
+        meta_data: Vec::new(),
         referrer_id: None,
     };
 

+ 3 - 3
runtime-modules/forum/src/mock.rs

@@ -223,10 +223,10 @@ impl working_group::WeightInfo for Weights {
 }
 
 impl membership::WeightInfo for Weights {
-    fn buy_membership_without_referrer(_: u32, _: u32, _: u32, _: u32) -> Weight {
+    fn buy_membership_without_referrer(_: u32, _: u32) -> Weight {
         unimplemented!()
     }
-    fn buy_membership_with_referrer(_: u32, _: u32, _: u32, _: u32) -> Weight {
+    fn buy_membership_with_referrer(_: u32, _: u32) -> Weight {
         unimplemented!()
     }
     fn update_profile(_: u32) -> Weight {
@@ -250,7 +250,7 @@ impl membership::WeightInfo for Weights {
     fn transfer_invites() -> Weight {
         unimplemented!()
     }
-    fn invite_member(_: u32, _: u32, _: u32, _: u32) -> Weight {
+    fn invite_member(_: u32, _: u32) -> Weight {
         unimplemented!()
     }
     fn set_membership_price() -> Weight {

+ 9 - 45
runtime-modules/membership/src/benchmarking.rs

@@ -52,10 +52,8 @@ fn member_funded_account<T: Trait + balances::Trait>(
     let params = BuyMembershipParameters {
         root_account: account_id.clone(),
         controller_account: account_id.clone(),
-        name: None,
         handle: Some(handle),
-        avatar_uri: None,
-        about: None,
+        meta_data: Vec::new(),
         referrer_id: None,
     };
 
@@ -95,10 +93,6 @@ benchmarks! {
 
         let j in 0 .. MAX_BYTES;
 
-        let k in 0 .. MAX_BYTES;
-
-        let z in 0 .. MAX_BYTES;
-
         let member_id = 0;
 
         let account_id = account::<T::AccountId>("member", member_id, SEED);
@@ -113,20 +107,14 @@ benchmarks! {
 
         let fee = Module::<T>::membership_price();
 
-        let name = Some(vec![0u8].repeat(j as usize));
-
-        let avatar_uri = Some(vec![0u8].repeat(k as usize));
-
-        let about = Some(vec![0u8].repeat(z as usize));
+        let meta_data = vec![0u8].repeat(j as usize);
 
         let params = BuyMembershipParameters {
             root_account: account_id.clone(),
             controller_account: account_id.clone(),
-            name,
             handle: Some(handle.clone()),
-            avatar_uri,
-            about,
             referrer_id: None,
+            meta_data,
         };
 
     }: buy_membership(RawOrigin::Signed(account_id.clone()), params.clone())
@@ -161,10 +149,6 @@ benchmarks! {
 
         let j in 0 .. MAX_BYTES;
 
-        let k in 0 .. MAX_BYTES;
-
-        let z in 0 .. MAX_BYTES;
-
         let member_id = 0;
 
         let account_id = account::<T::AccountId>("member", member_id, SEED);
@@ -173,21 +157,15 @@ benchmarks! {
 
         let _ = Balances::<T>::make_free_balance_be(&account_id, BalanceOf::<T>::max_value());
 
-        let name = Some(vec![0u8].repeat(j as usize));
-
-        let avatar_uri = Some(vec![0u8].repeat(k as usize));
-
-        let about = Some(vec![0u8].repeat(z as usize));
+        let meta_data = vec![0u8].repeat(j as usize);
 
         let fee = Module::<T>::membership_price();
 
         let mut params = BuyMembershipParameters {
             root_account: account_id.clone(),
             controller_account: account_id.clone(),
-            name,
             handle: Some(handle.clone()),
-            avatar_uri,
-            about,
+            meta_data,
             referrer_id: None,
         };
 
@@ -252,10 +230,8 @@ benchmarks! {
         let params = BuyMembershipParameters {
             root_account: account_id.clone(),
             controller_account: account_id.clone(),
-            name: None,
             handle: Some(handle.clone()),
-            avatar_uri: None,
-            about: None,
+            meta_data: Vec::new(),
             referrer_id: None,
         };
 
@@ -263,7 +239,7 @@ benchmarks! {
 
         let handle_updated = handle_from_id::<T>(i + 1);
 
-    }: _ (RawOrigin::Signed(account_id.clone()), member_id, None, Some(handle_updated.clone()), None, None)
+    }: _ (RawOrigin::Signed(account_id.clone()), member_id, Some(handle_updated.clone()), None)
     verify {
 
         // Ensure membership profile is successfully updated
@@ -275,10 +251,8 @@ benchmarks! {
 
         assert_last_event::<T>(RawEvent::MemberProfileUpdated(
                 member_id,
-                None,
                 Some(handle_updated),
                 None,
-                None,
             ).into()
         );
     }
@@ -468,30 +442,20 @@ benchmarks! {
 
         let j in 0 .. MAX_BYTES;
 
-        let k in 0 .. MAX_BYTES;
-
-        let z in 0 .. MAX_BYTES;
-
         let member_id = 0;
 
         let (account_id, member_id) = member_funded_account::<T>("member", member_id);
 
         let handle = handle_from_id::<T>(i);
 
-        let name = Some(vec![0u8].repeat(j as usize));
-
-        let avatar_uri = Some(vec![0u8].repeat(k as usize));
-
-        let about = Some(vec![0u8].repeat(z as usize));
+        let meta_data = vec![0u8].repeat(j as usize);
 
         let invite_params = InviteMembershipParameters {
             inviting_member_id: member_id,
             root_account: account_id.clone(),
             controller_account: account_id.clone(),
-            name,
             handle: Some(handle.clone()),
-            avatar_uri,
-            about,
+            meta_data,
         };
 
         let default_invitation_balance = T::DefaultInitialInvitationBalance::get();

+ 16 - 38
runtime-modules/membership/src/lib.rs

@@ -74,8 +74,8 @@ type WeightInfoMembership<T> = <T as Trait>::WeightInfo;
 /// pallet_forum WeightInfo.
 /// Note: This was auto generated through the benchmark CLI using the `--weight-trait` flag
 pub trait WeightInfo {
-    fn buy_membership_without_referrer(i: u32, j: u32, k: u32, z: u32) -> Weight;
-    fn buy_membership_with_referrer(i: u32, j: u32, k: u32, z: u32) -> Weight;
+    fn buy_membership_without_referrer(i: u32, j: u32) -> Weight;
+    fn buy_membership_with_referrer(i: u32, j: u32) -> Weight;
     fn update_profile(i: u32) -> Weight;
     fn update_accounts_none() -> Weight;
     fn update_accounts_root() -> Weight;
@@ -83,7 +83,7 @@ pub trait WeightInfo {
     fn update_accounts_both() -> Weight;
     fn set_referral_cut() -> Weight;
     fn transfer_invites() -> Weight;
-    fn invite_member(i: u32, j: u32, k: u32, z: u32) -> Weight;
+    fn invite_member(i: u32, j: u32) -> Weight;
     fn set_membership_price() -> Weight;
     fn update_profile_verification() -> Weight;
     fn set_leader_invitation_quota() -> Weight;
@@ -170,17 +170,11 @@ pub struct BuyMembershipParameters<AccountId, MemberId> {
     /// New member controller account.
     pub controller_account: AccountId,
 
-    /// New member user name.
-    pub name: Option<Vec<u8>>,
-
     /// New member handle.
     pub handle: Option<Vec<u8>>,
 
-    /// New member avatar URI.
-    pub avatar_uri: Option<Vec<u8>>,
-
-    /// New member 'about' text.
-    pub about: Option<Vec<u8>>,
+    /// Meta data concerning new member.
+    pub meta_data: Vec<u8>,
 
     /// Referrer member id.
     pub referrer_id: Option<MemberId>,
@@ -198,17 +192,11 @@ pub struct InviteMembershipParameters<AccountId, MemberId> {
     /// New member controller account.
     pub controller_account: AccountId,
 
-    /// New member user name.
-    pub name: Option<Vec<u8>>,
-
     /// New member handle.
     pub handle: Option<Vec<u8>>,
 
-    /// New member avatar URI.
-    pub avatar_uri: Option<Vec<u8>>,
-
-    /// New member 'about' text.
-    pub about: Option<Vec<u8>>,
+    /// Meta data concerning new member.
+    pub meta_data: Vec<u8>,
 }
 
 decl_error! {
@@ -339,8 +327,6 @@ decl_event! {
             MemberId,
             Option<Vec<u8>>,
             Option<Vec<u8>>,
-            Option<Vec<u8>>,
-            Option<Vec<u8>>,
         ),
         MemberAccountsUpdated(MemberId, Option<AccountId>, Option<AccountId>),
         MemberVerificationStatusUpdated(MemberId, bool, ActorId),
@@ -417,7 +403,7 @@ decl_module! {
             let _ = balances::Module::<T>::slash(&who, fee);
 
             // Reward the referring member.
-            if let Some(referrer) = referrer{
+            if let Some(referrer) = referrer {
                 let referral_cut: BalanceOf<T> = Self::get_referral_bonus();
 
                 if referral_cut > Zero::zero() {
@@ -451,13 +437,11 @@ decl_module! {
         pub fn update_profile(
             origin,
             member_id: T::MemberId,
-            name: Option<Vec<u8>>,
             handle: Option<Vec<u8>>,
-            avatar_uri: Option<Vec<u8>>,
-            about: Option<Vec<u8>>
+            meta: Option<Vec<u8>>,
         ) {
             // No effect if no changes.
-            if name.is_none() && handle.is_none() && avatar_uri.is_none() && about.is_none() {
+            if handle.is_none() && meta.is_none() {
                 return Ok(())
             }
 
@@ -485,10 +469,8 @@ decl_module! {
 
                 Self::deposit_event(RawEvent::MemberProfileUpdated(
                         member_id,
-                        name,
                         handle,
-                        avatar_uri,
-                        about
+                        meta,
                     ));
             }
         }
@@ -656,11 +638,10 @@ decl_module! {
         /// - DB:
         ///    - O(V)
         /// # </weight>
+        // TODO: adjust weight
         #[weight = WeightInfoMembership::<T>::invite_member(
-            Module::<T>::text_length_unwrap_or_default(&params.name),
             Module::<T>::text_length_unwrap_or_default(&params.handle),
-            Module::<T>::text_length_unwrap_or_default(&params.avatar_uri),
-            Module::<T>::text_length_unwrap_or_default(&params.about),
+            params.meta_data.len().saturated_into(),
         )]
         pub fn invite_member(
             origin,
@@ -942,22 +923,19 @@ impl<T: Trait> Module<T> {
     }
 
     // Helper for buy_membership extrinsic weight calculation
+    // TODO: adjust weight
     fn calculate_weight_for_buy_membership(
         params: &BuyMembershipParameters<T::AccountId, T::MemberId>,
     ) -> Weight {
         if params.referrer_id.is_some() {
             WeightInfoMembership::<T>::buy_membership_with_referrer(
-                Self::text_length_unwrap_or_default(&params.name),
                 Self::text_length_unwrap_or_default(&params.handle),
-                Self::text_length_unwrap_or_default(&params.avatar_uri),
-                Self::text_length_unwrap_or_default(&params.about),
+                params.meta_data.len().saturated_into(),
             )
         } else {
             WeightInfoMembership::<T>::buy_membership_without_referrer(
-                Self::text_length_unwrap_or_default(&params.name),
                 Self::text_length_unwrap_or_default(&params.handle),
-                Self::text_length_unwrap_or_default(&params.avatar_uri),
-                Self::text_length_unwrap_or_default(&params.about),
+                params.meta_data.len().saturated_into(),
             )
         }
     }

+ 28 - 30
runtime-modules/membership/src/tests/fixtures.rs

@@ -52,11 +52,9 @@ pub fn assert_dispatch_error_message(result: DispatchResult, expected_result: Di
 
 #[derive(Clone, Debug, PartialEq)]
 pub struct TestUserInfo {
-    pub name: Option<Vec<u8>>,
     pub handle: Option<Vec<u8>>,
     pub handle_hash: Option<Vec<u8>>,
-    pub avatar_uri: Option<Vec<u8>>,
-    pub about: Option<Vec<u8>>,
+    pub meta_data: Vec<u8>,
 }
 
 pub fn get_alice_info() -> TestUserInfo {
@@ -64,12 +62,19 @@ pub fn get_alice_info() -> TestUserInfo {
     let hashed = <Test as frame_system::Trait>::Hashing::hash(&handle);
     let hash = hashed.as_ref().to_vec();
 
+    let meta_data = b"
+    {
+        'name': 'Alice',
+        'avatar_uri': 'http://avatar-url.com/alice',
+        'about': 'my name is alice',
+    }
+    "
+    .to_vec();
+
     TestUserInfo {
-        name: Some(b"Alice".to_vec()),
         handle: Some(handle),
         handle_hash: Some(hash),
-        avatar_uri: Some(b"http://avatar-url.com/alice".to_vec()),
-        about: Some(b"my name is alice".to_vec()),
+        meta_data,
     }
 }
 
@@ -78,12 +83,19 @@ pub fn get_bob_info() -> TestUserInfo {
     let hashed = <Test as frame_system::Trait>::Hashing::hash(&handle);
     let hash = hashed.as_ref().to_vec();
 
+    let meta_data = b"
+    {
+        'name': 'Bob',
+        'avatar_uri': 'http://avatar-url.com/bob',
+        'about': 'my name is bob',
+    }
+    "
+    .to_vec();
+
     TestUserInfo {
-        name: Some(b"Bob".to_vec()),
         handle: Some(handle),
         handle_hash: Some(hash),
-        avatar_uri: Some(b"http://avatar-url.com/bob".to_vec()),
-        about: Some(b"my name is bob".to_vec()),
+        meta_data,
     }
 }
 
@@ -98,11 +110,9 @@ pub fn get_alice_membership_parameters() -> BuyMembershipParameters<u64, u64> {
     BuyMembershipParameters {
         root_account: ALICE_ACCOUNT_ID,
         controller_account: ALICE_ACCOUNT_ID,
-        name: info.name,
         handle: info.handle,
-        avatar_uri: info.avatar_uri,
-        about: info.about,
         referrer_id: None,
+        meta_data: info.meta_data,
     }
 }
 
@@ -167,10 +177,8 @@ pub struct BuyMembershipFixture {
     pub origin: RawOrigin<u64>,
     pub root_account: u64,
     pub controller_account: u64,
-    pub name: Option<Vec<u8>>,
     pub handle: Option<Vec<u8>>,
-    pub avatar_uri: Option<Vec<u8>>,
-    pub about: Option<Vec<u8>>,
+    pub meta_data: Vec<u8>,
     pub referrer_id: Option<u64>,
 }
 
@@ -181,10 +189,8 @@ impl Default for BuyMembershipFixture {
             origin: RawOrigin::Signed(ALICE_ACCOUNT_ID),
             root_account: ALICE_ACCOUNT_ID,
             controller_account: ALICE_ACCOUNT_ID,
-            name: alice.name,
             handle: alice.handle,
-            avatar_uri: alice.avatar_uri,
-            about: alice.about,
+            meta_data: alice.meta_data,
             referrer_id: None,
         }
     }
@@ -195,10 +201,8 @@ impl BuyMembershipFixture {
         let params = BuyMembershipParameters {
             root_account: self.root_account.clone(),
             controller_account: self.controller_account.clone(),
-            name: self.name.clone(),
             handle: self.handle.clone(),
-            avatar_uri: self.avatar_uri.clone(),
-            about: self.about.clone(),
+            meta_data: self.meta_data.clone(),
             referrer_id: self.referrer_id.clone(),
         };
 
@@ -332,10 +336,8 @@ pub struct InviteMembershipFixture {
     pub origin: RawOrigin<u64>,
     pub root_account: u64,
     pub controller_account: u64,
-    pub name: Option<Vec<u8>>,
     pub handle: Option<Vec<u8>>,
-    pub avatar_uri: Option<Vec<u8>>,
-    pub about: Option<Vec<u8>>,
+    pub meta_data: Vec<u8>,
 }
 
 impl Default for InviteMembershipFixture {
@@ -346,10 +348,8 @@ impl Default for InviteMembershipFixture {
             origin: RawOrigin::Signed(ALICE_ACCOUNT_ID),
             root_account: BOB_ACCOUNT_ID,
             controller_account: BOB_ACCOUNT_ID,
-            name: bob.name,
             handle: bob.handle,
-            avatar_uri: bob.avatar_uri,
-            about: bob.about,
+            meta_data: bob.meta_data,
         }
     }
 }
@@ -360,10 +360,8 @@ impl InviteMembershipFixture {
             inviting_member_id: self.member_id.clone(),
             root_account: self.root_account.clone(),
             controller_account: self.controller_account.clone(),
-            name: self.name.clone(),
             handle: self.handle.clone(),
-            avatar_uri: self.avatar_uri.clone(),
-            about: self.about.clone(),
+            meta_data: self.meta_data.clone(),
         }
     }
 

+ 3 - 3
runtime-modules/membership/src/tests/mock.rs

@@ -224,10 +224,10 @@ impl working_group::WeightInfo for Weights {
 }
 
 impl WeightInfo for () {
-    fn buy_membership_without_referrer(_: u32, _: u32, _: u32, _: u32) -> Weight {
+    fn buy_membership_without_referrer(_: u32, _: u32) -> Weight {
         0
     }
-    fn buy_membership_with_referrer(_: u32, _: u32, _: u32, _: u32) -> Weight {
+    fn buy_membership_with_referrer(_: u32, _: u32) -> Weight {
         0
     }
     fn update_profile(_: u32) -> Weight {
@@ -251,7 +251,7 @@ impl WeightInfo for () {
     fn transfer_invites() -> Weight {
         0
     }
-    fn invite_member(_: u32, _: u32, _: u32, _: u32) -> Weight {
+    fn invite_member(_: u32, _: u32) -> Weight {
         0
     }
     fn set_membership_price() -> Weight {

+ 2 - 8
runtime-modules/membership/src/tests/mod.rs

@@ -107,10 +107,8 @@ fn update_profile_succeeds() {
         assert_ok!(Membership::update_profile(
             Origin::signed(ALICE_ACCOUNT_ID),
             next_member_id,
-            info.name.clone(),
             info.handle.clone(),
-            info.avatar_uri.clone(),
-            info.about.clone(),
+            Some(info.meta_data.clone()),
         ));
 
         let profile = get_membership_by_id(next_member_id);
@@ -123,10 +121,8 @@ fn update_profile_succeeds() {
 
         EventFixture::assert_last_crate_event(Event::<Test>::MemberProfileUpdated(
             next_member_id,
-            info.name,
             info.handle,
-            info.avatar_uri,
-            info.about,
+            Some(info.meta_data),
         ));
     });
 }
@@ -145,8 +141,6 @@ fn update_profile_has_no_effect_on_empty_parameters() {
             next_member_id,
             None,
             None,
-            None,
-            None,
         ));
 
         let profile = get_membership_by_id(next_member_id);

+ 1 - 3
runtime-modules/proposals/codex/src/benchmarking.rs

@@ -60,10 +60,8 @@ fn member_funded_account<T: Trait + membership::Trait>(
     let params = membership::BuyMembershipParameters {
         root_account: account_id.clone(),
         controller_account: account_id.clone(),
-        name: None,
         handle: Some(handle),
-        avatar_uri: None,
-        about: None,
+        meta_data: Vec::new(),
         referrer_id: None,
     };
 

+ 3 - 3
runtime-modules/proposals/codex/src/tests/mock.rs

@@ -77,10 +77,10 @@ impl common::Trait for Test {
 // Weights info stub
 pub struct Weights;
 impl membership::WeightInfo for Weights {
-    fn buy_membership_without_referrer(_: u32, _: u32, _: u32, _: u32) -> Weight {
+    fn buy_membership_without_referrer(_: u32, _: u32) -> Weight {
         unimplemented!()
     }
-    fn buy_membership_with_referrer(_: u32, _: u32, _: u32, _: u32) -> Weight {
+    fn buy_membership_with_referrer(_: u32, _: u32) -> Weight {
         unimplemented!()
     }
     fn update_profile(_: u32) -> Weight {
@@ -104,7 +104,7 @@ impl membership::WeightInfo for Weights {
     fn transfer_invites() -> Weight {
         unimplemented!()
     }
-    fn invite_member(_: u32, _: u32, _: u32, _: u32) -> Weight {
+    fn invite_member(_: u32, _: u32) -> Weight {
         unimplemented!()
     }
     fn set_membership_price() -> Weight {

+ 1 - 3
runtime-modules/proposals/discussion/src/benchmarking.rs

@@ -88,10 +88,8 @@ fn member_account<T: common::Trait + balances::Trait + membership::Trait>(
     let params = membership::BuyMembershipParameters {
         root_account: account_id.clone(),
         controller_account: account_id.clone(),
-        name: None,
         handle: Some(handle),
-        avatar_uri: None,
-        about: None,
+        meta_data: Vec::new(),
         referrer_id: None,
     };
 

+ 3 - 3
runtime-modules/proposals/discussion/src/tests/mock.rs

@@ -80,10 +80,10 @@ parameter_types! {
 // Weights info stub
 pub struct Weights;
 impl membership::WeightInfo for Weights {
-    fn buy_membership_without_referrer(_: u32, _: u32, _: u32, _: u32) -> Weight {
+    fn buy_membership_without_referrer(_: u32, _: u32) -> Weight {
         unimplemented!()
     }
-    fn buy_membership_with_referrer(_: u32, _: u32, _: u32, _: u32) -> Weight {
+    fn buy_membership_with_referrer(_: u32, _: u32) -> Weight {
         unimplemented!()
     }
     fn update_profile(_: u32) -> Weight {
@@ -107,7 +107,7 @@ impl membership::WeightInfo for Weights {
     fn transfer_invites() -> Weight {
         unimplemented!()
     }
-    fn invite_member(_: u32, _: u32, _: u32, _: u32) -> Weight {
+    fn invite_member(_: u32, _: u32) -> Weight {
         unimplemented!()
     }
     fn set_membership_price() -> Weight {

+ 1 - 3
runtime-modules/proposals/engine/src/benchmarking.rs

@@ -86,10 +86,8 @@ fn member_funded_account<T: Trait + membership::Trait>(
     let params = membership::BuyMembershipParameters {
         root_account: account_id.clone(),
         controller_account: account_id.clone(),
-        name: None,
         handle: Some(handle),
-        avatar_uri: None,
-        about: None,
+        meta_data: Vec::new(),
         referrer_id: None,
     };
 

+ 3 - 3
runtime-modules/proposals/engine/src/tests/mock/mod.rs

@@ -191,10 +191,10 @@ impl common::Trait for Test {
 // Weights info stub
 pub struct Weights;
 impl membership::WeightInfo for Weights {
-    fn buy_membership_without_referrer(_: u32, _: u32, _: u32, _: u32) -> Weight {
+    fn buy_membership_without_referrer(_: u32, _: u32) -> Weight {
         unimplemented!()
     }
-    fn buy_membership_with_referrer(_: u32, _: u32, _: u32, _: u32) -> Weight {
+    fn buy_membership_with_referrer(_: u32, _: u32) -> Weight {
         unimplemented!()
     }
     fn update_profile(_: u32) -> Weight {
@@ -218,7 +218,7 @@ impl membership::WeightInfo for Weights {
     fn transfer_invites() -> Weight {
         unimplemented!()
     }
-    fn invite_member(_: u32, _: u32, _: u32, _: u32) -> Weight {
+    fn invite_member(_: u32, _: u32) -> Weight {
         unimplemented!()
     }
     fn set_membership_price() -> Weight {

+ 1 - 3
runtime-modules/referendum/src/benchmarking.rs

@@ -220,10 +220,8 @@ fn member_funded_account<T: Trait<I> + membership::Trait, I: Instance>(
     let params = membership::BuyMembershipParameters {
         root_account: account_id.clone(),
         controller_account: account_id.clone(),
-        name: None,
         handle: Some(handle),
-        avatar_uri: None,
-        about: None,
+        meta_data: Vec::new(),
         referrer_id: None,
     };
 

+ 3 - 3
runtime-modules/referendum/src/mock.rs

@@ -174,10 +174,10 @@ impl WeightInfo for () {
 // Weights info stub
 pub struct Weights;
 impl membership::WeightInfo for Weights {
-    fn buy_membership_without_referrer(_: u32, _: u32, _: u32, _: u32) -> Weight {
+    fn buy_membership_without_referrer(_: u32, _: u32) -> Weight {
         unimplemented!()
     }
-    fn buy_membership_with_referrer(_: u32, _: u32, _: u32, _: u32) -> Weight {
+    fn buy_membership_with_referrer(_: u32, _: u32) -> Weight {
         unimplemented!()
     }
     fn update_profile(_: u32) -> Weight {
@@ -201,7 +201,7 @@ impl membership::WeightInfo for Weights {
     fn transfer_invites() -> Weight {
         unimplemented!()
     }
-    fn invite_member(_: u32, _: u32, _: u32, _: u32) -> Weight {
+    fn invite_member(_: u32, _: u32) -> Weight {
         unimplemented!()
     }
     fn set_membership_price() -> Weight {

+ 3 - 3
runtime-modules/service-discovery/src/mock.rs

@@ -96,10 +96,10 @@ impl common::Trait for Test {
 // Weights info stub
 pub struct Weights;
 impl membership::WeightInfo for Weights {
-    fn buy_membership_without_referrer(_: u32, _: u32, _: u32, _: u32) -> Weight {
+    fn buy_membership_without_referrer(_: u32, _: u32) -> Weight {
         unimplemented!()
     }
-    fn buy_membership_with_referrer(_: u32, _: u32, _: u32, _: u32) -> Weight {
+    fn buy_membership_with_referrer(_: u32, _: u32) -> Weight {
         unimplemented!()
     }
     fn update_profile(_: u32) -> Weight {
@@ -123,7 +123,7 @@ impl membership::WeightInfo for Weights {
     fn transfer_invites() -> Weight {
         unimplemented!()
     }
-    fn invite_member(_: u32, _: u32, _: u32, _: u32) -> Weight {
+    fn invite_member(_: u32, _: u32) -> Weight {
         unimplemented!()
     }
     fn set_membership_price() -> Weight {

+ 3 - 3
runtime-modules/storage/src/tests/mock.rs

@@ -245,10 +245,10 @@ impl working_group::WeightInfo for WorkingGroupWeightInfo {
 // Weights info stub
 pub struct Weights;
 impl membership::WeightInfo for Weights {
-    fn buy_membership_without_referrer(_: u32, _: u32, _: u32, _: u32) -> Weight {
+    fn buy_membership_without_referrer(_: u32, _: u32) -> Weight {
         unimplemented!()
     }
-    fn buy_membership_with_referrer(_: u32, _: u32, _: u32, _: u32) -> Weight {
+    fn buy_membership_with_referrer(_: u32, _: u32) -> Weight {
         unimplemented!()
     }
     fn update_profile(_: u32) -> Weight {
@@ -272,7 +272,7 @@ impl membership::WeightInfo for Weights {
     fn transfer_invites() -> Weight {
         unimplemented!()
     }
-    fn invite_member(_: u32, _: u32, _: u32, _: u32) -> Weight {
+    fn invite_member(_: u32, _: u32) -> Weight {
         unimplemented!()
     }
     fn set_membership_price() -> Weight {

+ 3 - 3
runtime-modules/utility/src/tests/mocks.rs

@@ -274,10 +274,10 @@ impl common::working_group::WorkingGroupAuthenticator<Test> for () {
 
 pub struct Weights;
 impl membership::WeightInfo for Weights {
-    fn buy_membership_without_referrer(_: u32, _: u32, _: u32, _: u32) -> Weight {
+    fn buy_membership_without_referrer(_: u32, _: u32) -> Weight {
         unimplemented!()
     }
-    fn buy_membership_with_referrer(_: u32, _: u32, _: u32, _: u32) -> Weight {
+    fn buy_membership_with_referrer(_: u32, _: u32) -> Weight {
         unimplemented!()
     }
     fn update_profile(_: u32) -> Weight {
@@ -301,7 +301,7 @@ impl membership::WeightInfo for Weights {
     fn transfer_invites() -> Weight {
         unimplemented!()
     }
-    fn invite_member(_: u32, _: u32, _: u32, _: u32) -> Weight {
+    fn invite_member(_: u32, _: u32) -> Weight {
         unimplemented!()
     }
     fn set_membership_price() -> Weight {

+ 1 - 3
runtime-modules/working-group/src/benchmarking.rs

@@ -164,10 +164,8 @@ fn member_funded_account<T: Trait<I> + membership::Trait, I: Instance>(
     let params = membership::BuyMembershipParameters {
         root_account: account_id.clone(),
         controller_account: account_id.clone(),
-        name: None,
         handle: Some(handle),
-        avatar_uri: None,
-        about: None,
+        meta_data: Vec::new(),
         referrer_id: None,
     };
 

+ 3 - 3
runtime-modules/working-group/src/tests/mock.rs

@@ -100,10 +100,10 @@ impl common::Trait for Test {
 // Weights info stub
 pub struct Weights;
 impl membership::WeightInfo for Weights {
-    fn buy_membership_without_referrer(_: u32, _: u32, _: u32, _: u32) -> Weight {
+    fn buy_membership_without_referrer(_: u32, _: u32) -> Weight {
         unimplemented!()
     }
-    fn buy_membership_with_referrer(_: u32, _: u32, _: u32, _: u32) -> Weight {
+    fn buy_membership_with_referrer(_: u32, _: u32) -> Weight {
         unimplemented!()
     }
     fn update_profile(_: u32) -> Weight {
@@ -127,7 +127,7 @@ impl membership::WeightInfo for Weights {
     fn transfer_invites() -> Weight {
         unimplemented!()
     }
-    fn invite_member(_: u32, _: u32, _: u32, _: u32) -> Weight {
+    fn invite_member(_: u32, _: u32) -> Weight {
         unimplemented!()
     }
     fn set_membership_price() -> Weight {

+ 1 - 3
runtime/src/tests/mod.rs

@@ -164,10 +164,8 @@ pub(crate) fn insert_member(account_id: AccountId32) {
     let params = membership::BuyMembershipParameters {
         root_account: account_id.clone(),
         controller_account: account_id.clone(),
-        name: None,
         handle: Some(handle.to_vec()),
-        avatar_uri: None,
-        about: None,
+        meta_data: Vec::new(),
         referrer_id: None,
     };
 

+ 28 - 34
runtime/src/weights/membership.rs

@@ -7,96 +7,90 @@ use frame_support::weights::{constants::RocksDbWeight as DbWeight, Weight};
 
 pub struct WeightInfo;
 impl membership::WeightInfo for WeightInfo {
-    fn buy_membership_without_referrer(i: u32, j: u32, k: u32, z: u32) -> Weight {
-        (245_545_000 as Weight)
-            .saturating_add((3_000 as Weight).saturating_mul(i as Weight))
-            .saturating_add((1_000 as Weight).saturating_mul(j as Weight))
-            .saturating_add((1_000 as Weight).saturating_mul(k as Weight))
-            .saturating_add((1_000 as Weight).saturating_mul(z as Weight))
+    fn buy_membership_without_referrer(i: u32, j: u32) -> Weight {
+        (580_636_000 as Weight)
+            .saturating_add((95_000 as Weight).saturating_mul(i as Weight))
+            .saturating_add((131_000 as Weight).saturating_mul(j as Weight))
             .saturating_add(DbWeight::get().reads(5 as Weight))
             .saturating_add(DbWeight::get().writes(4 as Weight))
     }
-    fn buy_membership_with_referrer(i: u32, j: u32, k: u32, z: u32) -> Weight {
-        (439_284_000 as Weight)
-            .saturating_add((2_000 as Weight).saturating_mul(i as Weight))
-            .saturating_add((1_000 as Weight).saturating_mul(j as Weight))
-            .saturating_add((1_000 as Weight).saturating_mul(k as Weight))
-            .saturating_add((1_000 as Weight).saturating_mul(z as Weight))
+    fn buy_membership_with_referrer(i: u32, j: u32) -> Weight {
+        (741_433_000 as Weight)
+            .saturating_add((92_000 as Weight).saturating_mul(i as Weight))
+            .saturating_add((131_000 as Weight).saturating_mul(j as Weight))
             .saturating_add(DbWeight::get().reads(7 as Weight))
             .saturating_add(DbWeight::get().writes(4 as Weight))
     }
     fn update_profile(i: u32) -> Weight {
-        (356_978_000 as Weight)
-            .saturating_add((55_000 as Weight).saturating_mul(i as Weight))
+        (327_665_000 as Weight)
+            .saturating_add((173_000 as Weight).saturating_mul(i as Weight))
             .saturating_add(DbWeight::get().reads(2 as Weight))
             .saturating_add(DbWeight::get().writes(3 as Weight))
     }
     fn update_accounts_none() -> Weight {
-        (9_314_000 as Weight)
+        (8_025_000 as Weight)
     }
     fn update_accounts_root() -> Weight {
-        (180_791_000 as Weight)
+        (172_444_000 as Weight)
             .saturating_add(DbWeight::get().reads(1 as Weight))
             .saturating_add(DbWeight::get().writes(1 as Weight))
     }
     fn update_accounts_controller() -> Weight {
-        (180_942_000 as Weight)
+        (172_544_000 as Weight)
             .saturating_add(DbWeight::get().reads(1 as Weight))
             .saturating_add(DbWeight::get().writes(1 as Weight))
     }
     fn update_accounts_both() -> Weight {
-        (181_642_000 as Weight)
+        (172_614_000 as Weight)
             .saturating_add(DbWeight::get().reads(1 as Weight))
             .saturating_add(DbWeight::get().writes(1 as Weight))
     }
     fn set_referral_cut() -> Weight {
-        (63_916_000 as Weight).saturating_add(DbWeight::get().writes(1 as Weight))
+        (65_363_000 as Weight).saturating_add(DbWeight::get().writes(1 as Weight))
     }
     fn transfer_invites() -> Weight {
-        (415_109_000 as Weight)
+        (364_596_000 as Weight)
             .saturating_add(DbWeight::get().reads(2 as Weight))
             .saturating_add(DbWeight::get().writes(2 as Weight))
     }
-    fn invite_member(i: u32, j: u32, k: u32, z: u32) -> Weight {
-        (550_755_000 as Weight)
-            .saturating_add((3_000 as Weight).saturating_mul(i as Weight))
-            .saturating_add((1_000 as Weight).saturating_mul(j as Weight))
-            .saturating_add((1_000 as Weight).saturating_mul(k as Weight))
-            .saturating_add((1_000 as Weight).saturating_mul(z as Weight))
+    fn invite_member(i: u32, j: u32) -> Weight {
+        (800_719_000 as Weight)
+            .saturating_add((97_000 as Weight).saturating_mul(i as Weight))
+            .saturating_add((131_000 as Weight).saturating_mul(j as Weight))
             .saturating_add(DbWeight::get().reads(6 as Weight))
             .saturating_add(DbWeight::get().writes(6 as Weight))
     }
     fn set_membership_price() -> Weight {
-        (67_277_000 as Weight).saturating_add(DbWeight::get().writes(1 as Weight))
+        (66_976_000 as Weight).saturating_add(DbWeight::get().writes(1 as Weight))
     }
     fn update_profile_verification() -> Weight {
-        (315_084_000 as Weight)
+        (274_927_000 as Weight)
             .saturating_add(DbWeight::get().reads(2 as Weight))
             .saturating_add(DbWeight::get().writes(1 as Weight))
     }
     fn set_leader_invitation_quota() -> Weight {
-        (291_926_000 as Weight)
+        (187_743_000 as Weight)
             .saturating_add(DbWeight::get().reads(3 as Weight))
             .saturating_add(DbWeight::get().writes(1 as Weight))
     }
     fn set_initial_invitation_balance() -> Weight {
-        (67_445_000 as Weight).saturating_add(DbWeight::get().writes(1 as Weight))
+        (65_533_000 as Weight).saturating_add(DbWeight::get().writes(1 as Weight))
     }
     fn set_initial_invitation_count() -> Weight {
-        (59_675_000 as Weight).saturating_add(DbWeight::get().writes(1 as Weight))
+        (60_294_000 as Weight).saturating_add(DbWeight::get().writes(1 as Weight))
     }
     fn add_staking_account_candidate() -> Weight {
-        (183_576_000 as Weight)
+        (164_369_000 as Weight)
             .saturating_add(DbWeight::get().reads(2 as Weight))
             .saturating_add(DbWeight::get().writes(1 as Weight))
     }
     fn confirm_staking_account() -> Weight {
-        (267_844_000 as Weight)
+        (242_797_000 as Weight)
             .saturating_add(DbWeight::get().reads(2 as Weight))
             .saturating_add(DbWeight::get().writes(1 as Weight))
     }
     fn remove_staking_account() -> Weight {
-        (206_082_000 as Weight)
+        (185_459_000 as Weight)
             .saturating_add(DbWeight::get().reads(2 as Weight))
             .saturating_add(DbWeight::get().writes(1 as Weight))
     }