1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- #![cfg(feature = "std")]
- use crate::{GenesisConfig, Trait};
- use common::currency::BalanceOf;
- use serde::{Deserialize, Serialize};
- #[derive(Clone, Serialize, Deserialize)]
- pub struct Member<MemberId, AccountId, Moment> {
- pub member_id: MemberId,
- pub root_account: AccountId,
- pub controller_account: AccountId,
- pub handle: String,
- pub avatar_uri: String,
- pub about: String,
- pub registered_at_time: Moment,
- }
- pub struct GenesisConfigBuilder<T: Trait> {
- default_paid_membership_fee: BalanceOf<T>,
- members: Vec<(T::MemberId, T::AccountId)>,
- }
- impl<T: Trait> Default for GenesisConfigBuilder<T> {
- fn default() -> Self {
- Self {
- default_paid_membership_fee: BalanceOf::<T>::default(),
- members: vec![],
- }
- }
- }
- impl<T: Trait> GenesisConfigBuilder<T> {
-
- pub fn default_paid_membership_fee(
- mut self,
- default_paid_membership_fee: BalanceOf<T>,
- ) -> Self {
- self.default_paid_membership_fee = default_paid_membership_fee;
- self
- }
-
- pub fn members(mut self, members: Vec<(T::MemberId, T::AccountId)>) -> Self {
- self.members = members;
- self
- }
-
- fn generate_mock_members(&self) -> Vec<Member<T::MemberId, T::AccountId, T::Moment>> {
- self.members
- .iter()
- .enumerate()
- .map(|(ix, (ref member_id, ref account_id))| Member {
- member_id: *member_id,
- root_account: account_id.clone(),
- controller_account: account_id.clone(),
-
- handle: (10000 + ix).to_string(),
- avatar_uri: "".into(),
- about: "".into(),
- registered_at_time: T::Moment::from(0u32),
- })
- .collect()
- }
-
- pub fn build(&self) -> GenesisConfig<T> {
- GenesisConfig::<T> {
- default_paid_membership_fee: self.default_paid_membership_fee,
- members: self.generate_mock_members(),
- }
- }
- }
|