Quellcode durchsuchen

chain: Fix node sync test & fmt.

Shamil Gadelshin vor 3 Jahren
Ursprung
Commit
2059ebfabd
32 geänderte Dateien mit 409 neuen und 259 gelöschten Zeilen
  1. 7 5
      node/src/chain_spec/mod.rs
  2. 249 163
      node/src/service.rs
  3. 2 1
      runtime-modules/blog/src/mock.rs
  4. 3 1
      runtime-modules/bounty/src/lib.rs
  5. 1 1
      runtime-modules/common/src/lib.rs
  6. 0 1
      runtime-modules/constitution/src/tests/mocks.rs
  7. 1 4
      runtime-modules/content/src/lib.rs
  8. 15 4
      runtime-modules/council/src/lib.rs
  9. 2 1
      runtime-modules/council/src/mock.rs
  10. 4 2
      runtime-modules/forum/src/benchmarking.rs
  11. 5 3
      runtime-modules/forum/src/lib.rs
  12. 2 1
      runtime-modules/forum/src/mock.rs
  13. 5 2
      runtime-modules/membership/src/lib.rs
  14. 3 1
      runtime-modules/proposals/discussion/src/lib.rs
  15. 5 2
      runtime-modules/proposals/engine/src/lib.rs
  16. 8 4
      runtime-modules/referendum/src/lib.rs
  17. 2 1
      runtime-modules/referendum/src/mock.rs
  18. 9 3
      runtime-modules/storage/src/data_directory.rs
  19. 1 5
      runtime-modules/storage/src/data_object_storage_registry.rs
  20. 2 6
      runtime-modules/storage/src/data_object_type_registry.rs
  21. 7 1
      runtime-modules/storage/src/tests/data_directory.rs
  22. 21 3
      runtime-modules/storage/src/tests/data_object_storage_registry.rs
  23. 3 12
      runtime-modules/storage/src/tests/data_object_type_registry.rs
  24. 16 10
      runtime-modules/storage/src/tests/mock.rs
  25. 8 4
      runtime-modules/utility/src/lib.rs
  26. 0 1
      runtime-modules/utility/src/tests/mocks.rs
  27. 3 1
      runtime-modules/working-group/src/types.rs
  28. 9 6
      runtime/src/integration/content_directory.rs
  29. 3 5
      runtime/src/lib.rs
  30. 3 3
      runtime/src/runtime_api.rs
  31. 9 1
      runtime/src/tests/proposals_integration/working_group_proposals.rs
  32. 1 1
      runtime/src/weights/mod.rs

+ 7 - 5
node/src/chain_spec/mod.rs

@@ -32,10 +32,9 @@ use sp_runtime::Perbill;
 
 use node_runtime::{
     membership, wasm_binary_unwrap, AuthorityDiscoveryConfig, BabeConfig, Balance, BalancesConfig,
-     DataObjectStorageRegistryConfig, DataObjectTypeRegistryConfig,
-    ForumConfig, GrandpaConfig, ImOnlineConfig, MembersConfig, SessionConfig,  StakingConfig, SudoConfig, SystemConfig,
-    ContentConfig,
-    SessionKeys, Signature, StakerStatus,
+    ContentConfig, DataObjectStorageRegistryConfig, DataObjectTypeRegistryConfig, ForumConfig,
+    GrandpaConfig, ImOnlineConfig, MembersConfig, SessionConfig, SessionKeys, Signature,
+    StakerStatus, StakingConfig, SudoConfig, SystemConfig,
 };
 
 // Exported to be used by chain-spec-builder
@@ -303,7 +302,10 @@ pub(crate) mod tests {
         testnet_genesis(
             vec![get_authority_keys_from_seed("Alice")],
             get_account_id_from_seed::<sr25519::Public>("Alice"),
-            vec![get_authority_keys_from_seed("Alice").0],
+            vec![
+                get_authority_keys_from_seed("Alice").0,
+                get_authority_keys_from_seed("Bob").0,
+            ],
             initial_members::none(),
             forum_config::empty(get_account_id_from_seed::<sr25519::Public>("Alice")),
             vec![],

+ 249 - 163
node/src/service.rs

@@ -30,49 +30,54 @@ use crate::node_executor;
 use crate::node_rpc;
 use sc_finality_grandpa as grandpa;
 
-use std::sync::Arc;
-use sc_finality_grandpa::FinalityProofProvider as GrandpaFinalityProofProvider;
+use futures::prelude::*;
+use node_executor::Executor;
+use node_runtime::opaque::Block;
 use node_runtime::RuntimeApi;
+use sc_client_api::{ExecutorProvider, RemoteBackend};
+use sc_finality_grandpa::FinalityProofProvider as GrandpaFinalityProofProvider;
+use sc_network::{Event, NetworkService};
 use sc_service::{
-    config::{Role, Configuration}, error::{Error as ServiceError},
+    config::{Configuration, Role},
+    error::Error as ServiceError,
     RpcHandlers, TaskManager,
 };
+use sp_core::traits::BareCryptoStorePtr;
 use sp_inherents::InherentDataProviders;
-use sc_network::{Event, NetworkService};
 use sp_runtime::traits::Block as BlockT;
-use futures::prelude::*;
-use sc_client_api::{ExecutorProvider, RemoteBackend};
-use sp_core::traits::BareCryptoStorePtr;
-use node_runtime::opaque::Block;
-use node_executor::Executor;
+use std::sync::Arc;
 
 type FullClient = sc_service::TFullClient<Block, RuntimeApi, Executor>;
 type FullBackend = sc_service::TFullBackend<Block>;
 type FullSelectChain = sc_consensus::LongestChain<FullBackend, Block>;
 type FullGrandpaBlockImport =
-grandpa::GrandpaBlockImport<FullBackend, Block, FullClient, FullSelectChain>;
+    grandpa::GrandpaBlockImport<FullBackend, Block, FullClient, FullSelectChain>;
 type LightClient = sc_service::TLightClient<Block, RuntimeApi, Executor>;
 
-pub fn new_partial(config: &Configuration) -> Result<sc_service::PartialComponents<
-    FullClient, FullBackend, FullSelectChain,
-    sp_consensus::DefaultImportQueue<Block, FullClient>,
-    sc_transaction_pool::FullPool<Block, FullClient>,
-    (
-        impl Fn(
-            node_rpc::DenyUnsafe,
-            sc_rpc::SubscriptionTaskExecutor,
-        ) -> node_rpc::IoHandler,
+pub fn new_partial(
+    config: &Configuration,
+) -> Result<
+    sc_service::PartialComponents<
+        FullClient,
+        FullBackend,
+        FullSelectChain,
+        sp_consensus::DefaultImportQueue<Block, FullClient>,
+        sc_transaction_pool::FullPool<Block, FullClient>,
         (
-            sc_consensus_babe::BabeBlockImport<Block, FullClient, FullGrandpaBlockImport>,
-            grandpa::LinkHalf<Block, FullClient, FullSelectChain>,
-            sc_consensus_babe::BabeLink<Block>,
-        ),
-        (
-            grandpa::SharedVoterState,
-            Arc<GrandpaFinalityProofProvider<FullBackend, Block>>,
+            impl Fn(node_rpc::DenyUnsafe, sc_rpc::SubscriptionTaskExecutor) -> node_rpc::IoHandler,
+            (
+                sc_consensus_babe::BabeBlockImport<Block, FullClient, FullGrandpaBlockImport>,
+                grandpa::LinkHalf<Block, FullClient, FullSelectChain>,
+                sc_consensus_babe::BabeLink<Block>,
+            ),
+            (
+                grandpa::SharedVoterState,
+                Arc<GrandpaFinalityProofProvider<FullBackend, Block>>,
+            ),
         ),
-    )
->, ServiceError> {
+    >,
+    ServiceError,
+> {
     let (client, backend, keystore, task_manager) =
         sc_service::new_full_parts::<Block, RuntimeApi, Executor>(&config)?;
     let client = Arc::new(client);
@@ -87,7 +92,9 @@ pub fn new_partial(config: &Configuration) -> Result<sc_service::PartialComponen
     );
 
     let (grandpa_block_import, grandpa_link) = grandpa::block_import(
-        client.clone(), &(client.clone() as Arc<_>), select_chain.clone(),
+        client.clone(),
+        &(client.clone() as Arc<_>),
+        select_chain.clone(),
     )?;
     let justification_import = grandpa_block_import.clone();
 
@@ -160,9 +167,15 @@ pub fn new_partial(config: &Configuration) -> Result<sc_service::PartialComponen
     };
 
     Ok(sc_service::PartialComponents {
-        client, backend, task_manager, keystore, select_chain, import_queue, transaction_pool,
+        client,
+        backend,
+        task_manager,
+        keystore,
+        select_chain,
+        import_queue,
+        transaction_pool,
         inherent_data_providers,
-        other: (rpc_extensions_builder, import_setup, rpc_setup)
+        other: (rpc_extensions_builder, import_setup, rpc_setup),
     })
 }
 
@@ -181,10 +194,16 @@ pub fn new_full_base(
     with_startup_data: impl FnOnce(
         &sc_consensus_babe::BabeBlockImport<Block, FullClient, FullGrandpaBlockImport>,
         &sc_consensus_babe::BabeLink<Block>,
-    )
+    ),
 ) -> Result<NewFullBase, ServiceError> {
     let sc_service::PartialComponents {
-        client, backend, mut task_manager, import_queue, keystore, select_chain, transaction_pool,
+        client,
+        backend,
+        mut task_manager,
+        import_queue,
+        keystore,
+        select_chain,
+        transaction_pool,
         inherent_data_providers,
         other: (rpc_extensions_builder, import_setup, rpc_setup),
     } = new_partial(&config)?;
@@ -206,7 +225,11 @@ pub fn new_full_base(
 
     if config.offchain_worker.enabled {
         sc_service::build_offchain_workers(
-            &config, backend.clone(), task_manager.spawn_handle(), client.clone(), network.clone(),
+            &config,
+            backend.clone(),
+            task_manager.spawn_handle(),
+            client.clone(),
+            network.clone(),
         );
     }
 
@@ -261,30 +284,33 @@ pub fn new_full_base(
         };
 
         let babe = sc_consensus_babe::start_babe(babe_config)?;
-        task_manager.spawn_essential_handle().spawn_blocking("babe-proposer", babe);
+        task_manager
+            .spawn_essential_handle()
+            .spawn_blocking("babe-proposer", babe);
     }
 
     // Spawn authority discovery module.
-    if matches!(role, Role::Authority{..} | Role::Sentry {..}) {
+    if matches!(role, Role::Authority { .. } | Role::Sentry { .. }) {
         let (sentries, authority_discovery_role) = match role {
             sc_service::config::Role::Authority { ref sentry_nodes } => (
                 sentry_nodes.clone(),
-                sc_authority_discovery::Role::Authority (
-                    keystore.clone(),
-                ),
-            ),
-            sc_service::config::Role::Sentry {..} => (
-                vec![],
-                sc_authority_discovery::Role::Sentry,
+                sc_authority_discovery::Role::Authority(keystore.clone()),
             ),
-            _ => unreachable!("Due to outer matches! constraint; qed.")
+            sc_service::config::Role::Sentry { .. } => {
+                (vec![], sc_authority_discovery::Role::Sentry)
+            }
+            _ => unreachable!("Due to outer matches! constraint; qed."),
         };
 
-        let dht_event_stream = network.event_stream("authority-discovery")
-            .filter_map(|e| async move { match e {
-                Event::Dht(e) => Some(e),
-                _ => None,
-            }}).boxed();
+        let dht_event_stream = network
+            .event_stream("authority-discovery")
+            .filter_map(|e| async move {
+                match e {
+                    Event::Dht(e) => Some(e),
+                    _ => None,
+                }
+            })
+            .boxed();
         let (authority_discovery_worker, _service) = sc_authority_discovery::new_worker_and_service(
             client.clone(),
             network.clone(),
@@ -294,7 +320,9 @@ pub fn new_full_base(
             prometheus_registry.clone(),
         );
 
-        task_manager.spawn_handle().spawn("authority-discovery-worker", authority_discovery_worker);
+        task_manager
+            .spawn_handle()
+            .spawn("authority-discovery-worker", authority_discovery_worker);
     }
 
     // if the node isn't actively participating in consensus then it doesn't
@@ -335,38 +363,43 @@ pub fn new_full_base(
 
         // the GRANDPA voter task is considered infallible, i.e.
         // if it fails we take down the service with it.
-        task_manager.spawn_essential_handle().spawn_blocking(
-            "grandpa-voter",
-            grandpa::run_grandpa_voter(grandpa_config)?
-        );
+        task_manager
+            .spawn_essential_handle()
+            .spawn_blocking("grandpa-voter", grandpa::run_grandpa_voter(grandpa_config)?);
     } else {
-        grandpa::setup_disabled_grandpa(
-            client.clone(),
-            &inherent_data_providers,
-            network.clone(),
-        )?;
+        grandpa::setup_disabled_grandpa(client.clone(), &inherent_data_providers, network.clone())?;
     }
 
     network_starter.start_network();
     Ok(NewFullBase {
-        task_manager, inherent_data_providers, client, network, network_status_sinks,
+        task_manager,
+        inherent_data_providers,
+        client,
+        network,
+        network_status_sinks,
         transaction_pool,
     })
 }
 
 /// Builds a new service for a full client.
-pub fn new_full(config: Configuration)
-                -> Result<TaskManager, ServiceError> {
-    new_full_base(config, |_, _| ()).map(|NewFullBase { task_manager, .. }| {
-        task_manager
-    })
+pub fn new_full(config: Configuration) -> Result<TaskManager, ServiceError> {
+    new_full_base(config, |_, _| ()).map(|NewFullBase { task_manager, .. }| task_manager)
 }
 
-pub fn new_light_base(config: Configuration) -> Result<(
-    TaskManager, RpcHandlers, Arc<LightClient>,
-    Arc<NetworkService<Block, <Block as BlockT>::Hash>>,
-    Arc<sc_transaction_pool::LightPool<Block, LightClient, sc_network::config::OnDemand<Block>>>
-), ServiceError> {
+pub fn new_light_base(
+    config: Configuration,
+) -> Result<
+    (
+        TaskManager,
+        RpcHandlers,
+        Arc<LightClient>,
+        Arc<NetworkService<Block, <Block as BlockT>::Hash>>,
+        Arc<
+            sc_transaction_pool::LightPool<Block, LightClient, sc_network::config::OnDemand<Block>>,
+        >,
+    ),
+    ServiceError,
+> {
     let (client, backend, keystore, mut task_manager, on_demand) =
         sc_service::new_light_parts::<Block, RuntimeApi, Executor>(&config)?;
 
@@ -381,7 +414,9 @@ pub fn new_light_base(config: Configuration) -> Result<(
     ));
 
     let grandpa_block_import = grandpa::light_block_import(
-        client.clone(), backend.clone(), &(client.clone() as Arc<_>),
+        client.clone(),
+        backend.clone(),
+        &(client.clone() as Arc<_>),
         Arc::new(on_demand.checker().clone()),
     )?;
 
@@ -429,7 +464,11 @@ pub fn new_light_base(config: Configuration) -> Result<(
 
     if config.offchain_worker.enabled {
         sc_service::build_offchain_workers(
-            &config, backend.clone(), task_manager.spawn_handle(), client.clone(), network.clone(),
+            &config,
+            backend.clone(),
+            task_manager.spawn_handle(),
+            client.clone(),
+            network.clone(),
         );
     }
 
@@ -442,57 +481,64 @@ pub fn new_light_base(config: Configuration) -> Result<(
 
     let rpc_extensions = node_rpc::create_light(light_deps);
 
-    let rpc_handlers =
-        sc_service::spawn_tasks(sc_service::SpawnTasksParams {
-            on_demand: Some(on_demand),
-            remote_blockchain: Some(backend.remote_blockchain()),
-            rpc_extensions_builder: Box::new(sc_service::NoopRpcExtensionBuilder(rpc_extensions)),
-            client: client.clone(),
-            transaction_pool: transaction_pool.clone(),
-            config, keystore, backend, network_status_sinks, system_rpc_tx,
-            network: network.clone(),
-            telemetry_connection_sinks: sc_service::TelemetryConnectionSinks::default(),
-            task_manager: &mut task_manager,
-        })?;
+    let rpc_handlers = sc_service::spawn_tasks(sc_service::SpawnTasksParams {
+        on_demand: Some(on_demand),
+        remote_blockchain: Some(backend.remote_blockchain()),
+        rpc_extensions_builder: Box::new(sc_service::NoopRpcExtensionBuilder(rpc_extensions)),
+        client: client.clone(),
+        transaction_pool: transaction_pool.clone(),
+        config,
+        keystore,
+        backend,
+        network_status_sinks,
+        system_rpc_tx,
+        network: network.clone(),
+        telemetry_connection_sinks: sc_service::TelemetryConnectionSinks::default(),
+        task_manager: &mut task_manager,
+    })?;
 
-    Ok((task_manager, rpc_handlers, client, network, transaction_pool))
+    Ok((
+        task_manager,
+        rpc_handlers,
+        client,
+        network,
+        transaction_pool,
+    ))
 }
 
 /// Builds a new service for a light client.
 pub fn new_light(config: Configuration) -> Result<TaskManager, ServiceError> {
-    new_light_base(config).map(|(task_manager, _, _, _, _)| {
-        task_manager
-    })
+    new_light_base(config).map(|(task_manager, _, _, _, _)| task_manager)
 }
 
 #[cfg(test)]
 mod tests {
-    use std::{sync::Arc, borrow::Cow, any::Any};
-    use sc_consensus_babe::{CompatibleDigestItem, BabeIntermediate, INTERMEDIATE_KEY};
+    use crate::service::{new_full_base, new_light_base, NewFullBase};
+    use codec::Encode;
+    use node_runtime::opaque::Block;
+    use node_runtime::{currency::CENTS, SLOT_DURATION};
+    use node_runtime::{Address, BalancesCall, Call, UncheckedExtrinsic};
+    use node_runtime::{DigestItem, Signature};
+    use sc_client_api::BlockBackend;
+    use sc_consensus_babe::{BabeIntermediate, CompatibleDigestItem, INTERMEDIATE_KEY};
     use sc_consensus_epochs::descendent_query;
+    use sc_service_test::TestNetNode;
     use sp_consensus::{
-        Environment, Proposer, BlockImportParams, BlockOrigin, ForkChoiceStrategy, BlockImport,
+        BlockImport, BlockImportParams, BlockOrigin, Environment, ForkChoiceStrategy, Proposer,
         RecordProof,
     };
-    use node_runtime::{BalancesCall, Call, UncheckedExtrinsic, Address};
-    use node_runtime::opaque::Block;
-    use node_runtime::{currency::CENTS, SLOT_DURATION};
-    use node_runtime::{DigestItem, Signature};
-    use codec::Encode;
     use sp_core::{crypto::Pair as CryptoPair, H256};
+    use sp_finality_tracker;
+    use sp_keyring::AccountKeyring;
+    use sp_runtime::traits::IdentifyAccount;
     use sp_runtime::{
-        generic::{BlockId, Era, Digest, SignedPayload},
-        traits::{Block as BlockT, Header as HeaderT},
+        generic::{BlockId, Digest, Era, SignedPayload},
         traits::Verify,
+        traits::{Block as BlockT, Header as HeaderT},
     };
     use sp_timestamp;
-    use sp_finality_tracker;
-    use sp_keyring::AccountKeyring;
-    use sc_service_test::TestNetNode;
-    use crate::service::{new_full_base, new_light_base, NewFullBase};
-    use sp_runtime::traits::IdentifyAccount;
-    use sp_transaction_pool::{MaintainedTransactionPool, ChainEvent};
-    use sc_client_api::BlockBackend;
+    use sp_transaction_pool::{ChainEvent, MaintainedTransactionPool};
+    use std::{any::Any, borrow::Cow, sync::Arc};
 
     type AccountPublic = <Signature as Verify>::Signer;
 
@@ -502,9 +548,11 @@ mod tests {
     #[ignore]
     fn test_sync() {
         let keystore_path = tempfile::tempdir().expect("Creates keystore path");
-        let keystore = sc_keystore::Store::open(keystore_path.path(), None)
-            .expect("Creates keystore");
-        let alice = keystore.write().insert_ephemeral_from_seed::<sc_consensus_babe::AuthorityPair>("//Alice")
+        let keystore =
+            sc_keystore::Store::open(keystore_path.path(), None).expect("Creates keystore");
+        let alice = keystore
+            .write()
+            .insert_ephemeral_from_seed::<sc_consensus_babe::AuthorityPair>("//Alice")
             .expect("Creates authority pair");
 
         let chain_spec = crate::chain_spec::tests::integration_test_config_with_single_authority();
@@ -522,24 +570,36 @@ mod tests {
             |config| {
                 let mut setup_handles = None;
                 let NewFullBase {
-                    task_manager, inherent_data_providers, client, network, transaction_pool, ..
-                } = new_full_base(config,
-                                  |
-                                      block_import: &sc_consensus_babe::BabeBlockImport<Block, _, _>,
-                                      babe_link: &sc_consensus_babe::BabeLink<Block>,
-                                  | {
-                                      setup_handles = Some((block_import.clone(), babe_link.clone()));
-                                  }
+                    task_manager,
+                    inherent_data_providers,
+                    client,
+                    network,
+                    transaction_pool,
+                    ..
+                } = new_full_base(
+                    config,
+                    |block_import: &sc_consensus_babe::BabeBlockImport<Block, _, _>,
+                     babe_link: &sc_consensus_babe::BabeLink<Block>| {
+                        setup_handles = Some((block_import.clone(), babe_link.clone()));
+                    },
                 )?;
 
                 let node = sc_service_test::TestNetComponents::new(
-                    task_manager, client, network, transaction_pool
+                    task_manager,
+                    client,
+                    network,
+                    transaction_pool,
                 );
                 Ok((node, (inherent_data_providers, setup_handles.unwrap())))
             },
             |config| {
                 let (keep_alive, _, client, network, transaction_pool) = new_light_base(config)?;
-                Ok(sc_service_test::TestNetComponents::new(keep_alive, client, network, transaction_pool))
+                Ok(sc_service_test::TestNetComponents::new(
+                    keep_alive,
+                    client,
+                    network,
+                    transaction_pool,
+                ))
             },
             |service, &mut (ref inherent_data_providers, (ref mut block_import, ref babe_link))| {
                 let mut inherent_data = inherent_data_providers
@@ -552,14 +612,12 @@ mod tests {
                 let parent_hash = parent_header.hash();
                 let parent_number = *parent_header.number();
 
-                futures::executor::block_on(
-                    service.transaction_pool().maintain(
-                        ChainEvent::NewBestBlock {
-                            hash: parent_header.hash(),
-                            tree_route: None,
-                        },
-                    )
-                );
+                futures::executor::block_on(service.transaction_pool().maintain(
+                    ChainEvent::NewBestBlock {
+                        hash: parent_header.hash(),
+                        tree_route: None,
+                    },
+                ));
 
                 let mut proposer_factory = sc_basic_authorship::ProposerFactory::new(
                     service.client(),
@@ -567,19 +625,27 @@ mod tests {
                     None,
                 );
 
-                let epoch_descriptor = babe_link.epoch_changes().lock().epoch_descriptor_for_child_of(
-                    descendent_query(&*service.client()),
-                    &parent_hash,
-                    parent_number,
-                    slot_num,
-                ).unwrap().unwrap();
+                let epoch_descriptor = babe_link
+                    .epoch_changes()
+                    .lock()
+                    .epoch_descriptor_for_child_of(
+                        descendent_query(&*service.client()),
+                        &parent_hash,
+                        parent_number,
+                        slot_num,
+                    )
+                    .unwrap()
+                    .unwrap();
 
                 let mut digest = Digest::<H256>::default();
 
                 // even though there's only one authority some slots might be empty,
                 // so we must keep trying the next slots until we can claim one.
                 let babe_pre_digest = loop {
-                    inherent_data.replace_data(sp_timestamp::INHERENT_IDENTIFIER, &(slot_num * SLOT_DURATION));
+                    inherent_data.replace_data(
+                        sp_timestamp::INHERENT_IDENTIFIER,
+                        &(slot_num * SLOT_DURATION),
+                    );
                     if let Some(babe_pre_digest) = sc_consensus_babe::test_helpers::claim_slot(
                         slot_num,
                         &parent_header,
@@ -593,17 +659,24 @@ mod tests {
                     slot_num += 1;
                 };
 
-                digest.push(<DigestItem as CompatibleDigestItem>::babe_pre_digest(babe_pre_digest));
+                digest.push(<DigestItem as CompatibleDigestItem>::babe_pre_digest(
+                    babe_pre_digest,
+                ));
 
                 let new_block = futures::executor::block_on(async move {
                     let proposer = proposer_factory.init(&parent_header).await;
-                    proposer.unwrap().propose(
-                        inherent_data,
-                        digest,
-                        std::time::Duration::from_secs(1),
-                        RecordProof::Yes,
-                    ).await
-                }).expect("Error making test block").block;
+                    proposer
+                        .unwrap()
+                        .propose(
+                            inherent_data,
+                            digest,
+                            std::time::Duration::from_secs(1),
+                            RecordProof::Yes,
+                        )
+                        .await
+                })
+                .expect("Error making test block")
+                .block;
 
                 let (new_header, new_body) = new_block.deconstruct();
                 let pre_hash = new_header.hash();
@@ -611,9 +684,7 @@ mod tests {
                 // add it to a digest item.
                 let to_sign = pre_hash.encode();
                 let signature = alice.sign(&to_sign[..]);
-                let item = <DigestItem as CompatibleDigestItem>::babe_seal(
-                    signature.into(),
-                );
+                let item = <DigestItem as CompatibleDigestItem>::babe_seal(signature.into());
                 slot_num += 1;
 
                 let mut params = BlockImportParams::new(BlockOrigin::File, new_header);
@@ -625,7 +696,8 @@ mod tests {
                 );
                 params.fork_choice = Some(ForkChoiceStrategy::LongestChain);
 
-                block_import.import_block(params, Default::default())
+                block_import
+                    .import_block(params, Default::default())
                     .expect("error importing test block");
             },
             |service, _| {
@@ -661,19 +733,21 @@ mod tests {
                 let raw_payload = SignedPayload::from_raw(
                     function,
                     extra,
-                    (spec_version, transaction_version, genesis_hash, genesis_hash, (), (), ())
+                    (
+                        spec_version,
+                        transaction_version,
+                        genesis_hash,
+                        genesis_hash,
+                        (),
+                        (),
+                        (),
+                    ),
                 );
-                let signature = raw_payload.using_encoded(|payload|	{
-                    signer.sign(payload)
-                });
+                let signature = raw_payload.using_encoded(|payload| signer.sign(payload));
                 let (function, extra, _) = raw_payload.deconstruct();
                 index += 1;
-                UncheckedExtrinsic::new_signed(
-                    function,
-                    from.into(),
-                    signature.into(),
-                    extra,
-                ).into()
+                UncheckedExtrinsic::new_signed(function, from.into(), signature.into(), extra)
+                    .into()
             },
         );
     }
@@ -684,18 +758,30 @@ mod tests {
         sc_service_test::consensus(
             crate::chain_spec::tests::integration_test_config_with_two_authorities(),
             |config| {
-                let NewFullBase { task_manager, client, network, transaction_pool, .. }
-                    = new_full_base(config,|_, _| ())?;
-                Ok(sc_service_test::TestNetComponents::new(task_manager, client, network, transaction_pool))
+                let NewFullBase {
+                    task_manager,
+                    client,
+                    network,
+                    transaction_pool,
+                    ..
+                } = new_full_base(config, |_, _| ())?;
+                Ok(sc_service_test::TestNetComponents::new(
+                    task_manager,
+                    client,
+                    network,
+                    transaction_pool,
+                ))
             },
             |config| {
                 let (keep_alive, _, client, network, transaction_pool) = new_light_base(config)?;
-                Ok(sc_service_test::TestNetComponents::new(keep_alive, client, network, transaction_pool))
+                Ok(sc_service_test::TestNetComponents::new(
+                    keep_alive,
+                    client,
+                    network,
+                    transaction_pool,
+                ))
             },
-            vec![
-                "//Alice".into(),
-                "//Bob".into(),
-            ],
+            vec!["//Alice".into(), "//Bob".into()],
         )
     }
 }

+ 2 - 1
runtime-modules/blog/src/mock.rs

@@ -145,7 +145,8 @@ impl common::working_group::WorkingGroupAuthenticator<Runtime> for () {
         unimplemented!()
     }
 
-    fn get_leader_member_id() -> Option<<Runtime as common::membership::MembershipTypes>::MemberId> {
+    fn get_leader_member_id() -> Option<<Runtime as common::membership::MembershipTypes>::MemberId>
+    {
         unimplemented!()
     }
 

+ 3 - 1
runtime-modules/bounty/src/lib.rs

@@ -103,7 +103,9 @@ use common::membership::{
 use staking_handler::StakingHandler;
 
 /// Main pallet-bounty trait.
-pub trait Trait: frame_system::Trait + balances::Trait + common::membership::MembershipTypes {
+pub trait Trait:
+    frame_system::Trait + balances::Trait + common::membership::MembershipTypes
+{
     /// Events
     type Event: From<Event<Self>> + Into<<Self as frame_system::Trait>::Event>;
 

+ 1 - 1
runtime-modules/common/src/lib.rs

@@ -11,8 +11,8 @@ use codec::{Codec, Decode, Encode};
 #[cfg(feature = "std")]
 use serde::{Deserialize, Serialize};
 
-pub use membership::{ActorId, MemberId, StakingAccountValidator, MembershipTypes};
 use frame_support::Parameter;
+pub use membership::{ActorId, MemberId, MembershipTypes, StakingAccountValidator};
 use sp_arithmetic::traits::BaseArithmetic;
 use sp_runtime::traits::{MaybeSerialize, Member};
 use sp_std::vec::Vec;

+ 0 - 1
runtime-modules/constitution/src/tests/mocks.rs

@@ -73,7 +73,6 @@ impl crate::WeightInfo for () {
     }
 }
 
-
 pub fn build_test_externalities() -> sp_io::TestExternalities {
     let t = frame_system::GenesisConfig::default()
         .build_storage::<Test>()

+ 1 - 4
runtime-modules/content/src/lib.rs

@@ -33,10 +33,7 @@ pub use common::storage::{
     StorageSystem,
 };
 
-pub use common::{
-    working_group::WorkingGroup,
-    MembershipTypes, StorageOwnership, Url,
-};
+pub use common::{working_group::WorkingGroup, MembershipTypes, StorageOwnership, Url};
 
 // Balance type alias
 type BalanceOf<T> = <T as balances::Trait>::Balance;

+ 15 - 4
runtime-modules/council/src/lib.rs

@@ -222,7 +222,9 @@ pub trait WeightInfo {
 type CouncilWeightInfo<T> = <T as Trait>::WeightInfo;
 
 /// The main council trait.
-pub trait Trait: frame_system::Trait + common::membership::MembershipTypes + balances::Trait {
+pub trait Trait:
+    frame_system::Trait + common::membership::MembershipTypes + balances::Trait
+{
     /// The overarching event type.
     type Event: From<Event<Self>> + Into<<Self as frame_system::Trait>::Event>;
 
@@ -276,7 +278,10 @@ pub trait ReferendumConnection<T: Trait> {
     /// Process referendum results. This function MUST be called in runtime's implementation of
     /// referendum's `process_results()`.
     fn recieve_referendum_results(
-        winners: &[OptionResult<<T as common::membership::MembershipTypes>::MemberId, VotePowerOf<T>>],
+        winners: &[OptionResult<
+            <T as common::membership::MembershipTypes>::MemberId,
+            VotePowerOf<T>,
+        >],
     );
 
     /// Process referendum results. This function MUST be called in runtime's implementation of
@@ -892,7 +897,10 @@ impl<T: Trait> Module<T> {
 
     // Conclude election period and elect new council if possible.
     fn end_election_period(
-        winners: &[OptionResult<<T as common::membership::MembershipTypes>::MemberId, VotePowerOf<T>>],
+        winners: &[OptionResult<
+            <T as common::membership::MembershipTypes>::MemberId,
+            VotePowerOf<T>,
+        >],
     ) {
         let council_size = T::CouncilSize::get();
         if winners.len() as u64 != council_size {
@@ -1070,7 +1078,10 @@ impl<T: Trait> Module<T> {
 impl<T: Trait> ReferendumConnection<T> for Module<T> {
     // Process candidates' results recieved from the referendum.
     fn recieve_referendum_results(
-        winners: &[OptionResult<<T as common::membership::MembershipTypes>::MemberId, VotePowerOf<T>>],
+        winners: &[OptionResult<
+            <T as common::membership::MembershipTypes>::MemberId,
+            VotePowerOf<T>,
+        >],
     ) {
         //
         // == MUTATION SAFE ==

+ 2 - 1
runtime-modules/council/src/mock.rs

@@ -470,7 +470,8 @@ impl common::working_group::WorkingGroupAuthenticator<Runtime> for () {
         unimplemented!();
     }
 
-    fn get_leader_member_id() -> Option<<Runtime as common::membership::MembershipTypes>::MemberId> {
+    fn get_leader_member_id() -> Option<<Runtime as common::membership::MembershipTypes>::MemberId>
+    {
         unimplemented!();
     }
 

+ 4 - 2
runtime-modules/forum/src/benchmarking.rs

@@ -147,7 +147,8 @@ where
     )
     .unwrap();
 
-    let actor_id = <T as common::membership::MembershipTypes>::ActorId::from(id.try_into().unwrap());
+    let actor_id =
+        <T as common::membership::MembershipTypes>::ActorId::from(id.try_into().unwrap());
     assert!(WorkerById::<T, ForumWorkingGroupInstance>::contains_key(
         actor_id
     ));
@@ -184,7 +185,8 @@ where
     )
     .unwrap();
 
-    let actor_id = <T as common::membership::MembershipTypes>::ActorId::from(id.try_into().unwrap());
+    let actor_id =
+        <T as common::membership::MembershipTypes>::ActorId::from(id.try_into().unwrap());
     assert!(WorkerById::<T, ForumWorkingGroupInstance>::contains_key(
         actor_id
     ));

+ 5 - 3
runtime-modules/forum/src/lib.rs

@@ -12,7 +12,7 @@ use frame_support::weights::Weight;
 use frame_support::{
     decl_error, decl_event, decl_module, decl_storage, ensure, traits::Get, Parameter,
 };
-use frame_system::{ensure_signed};
+use frame_system::ensure_signed;
 use sp_arithmetic::traits::{BaseArithmetic, One};
 pub use sp_io::storage::clear_prefix;
 use sp_runtime::traits::{AccountIdConversion, MaybeSerialize, Member};
@@ -53,7 +53,6 @@ pub type ThreadOf<T> = Thread<
 
 type Balances<T> = balances::Module<T>;
 
-
 /// pallet_forum WeightInfo.
 /// Note: This was auto generated through the benchmark CLI using the `--weight-trait` flag
 pub trait WeightInfo {
@@ -87,7 +86,10 @@ pub trait WeightInfo {
 }
 
 pub trait Trait:
-    frame_system::Trait + pallet_timestamp::Trait + common::membership::MembershipTypes + balances::Trait
+    frame_system::Trait
+    + pallet_timestamp::Trait
+    + common::membership::MembershipTypes
+    + balances::Trait
 {
     type Event: From<Event<Self>> + Into<<Self as frame_system::Trait>::Event>;
 

+ 2 - 1
runtime-modules/forum/src/mock.rs

@@ -403,7 +403,8 @@ impl common::working_group::WorkingGroupAuthenticator<Runtime> for () {
         unimplemented!()
     }
 
-    fn get_leader_member_id() -> Option<<Runtime as common::membership::MembershipTypes>::MemberId> {
+    fn get_leader_member_id() -> Option<<Runtime as common::membership::MembershipTypes>::MemberId>
+    {
         unimplemented!()
     }
 

+ 5 - 2
runtime-modules/membership/src/lib.rs

@@ -97,7 +97,10 @@ pub trait WeightInfo {
 }
 
 pub trait Trait:
-frame_system::Trait + balances::Trait + pallet_timestamp::Trait + common::membership::MembershipTypes
+    frame_system::Trait
+    + balances::Trait
+    + pallet_timestamp::Trait
+    + common::membership::MembershipTypes
 {
     /// Membership module event type.
     type Event: From<Event<Self>> + Into<<Self as frame_system::Trait>::Event>;
@@ -110,7 +113,7 @@ frame_system::Trait + balances::Trait + pallet_timestamp::Trait + common::member
 
     /// Working group pallet integration.
     type WorkingGroup: common::working_group::WorkingGroupAuthenticator<Self>
-    + common::working_group::WorkingGroupBudgetHandler<Self>;
+        + common::working_group::WorkingGroupBudgetHandler<Self>;
 
     /// Defines the default balance for the invited member.
     type DefaultInitialInvitationBalance: Get<BalanceOf<Self>>;

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

@@ -121,7 +121,9 @@ pub trait CouncilMembership<AccountId, MemberId> {
 }
 
 /// 'Proposal discussion' substrate module Trait
-pub trait Trait: frame_system::Trait + balances::Trait + common::membership::MembershipTypes {
+pub trait Trait:
+    frame_system::Trait + balances::Trait + common::membership::MembershipTypes
+{
     /// Discussion event type.
     type Event: From<Event<Self>> + Into<<Self as frame_system::Trait>::Event>;
 

+ 5 - 2
runtime-modules/proposals/engine/src/lib.rs

@@ -141,7 +141,6 @@ mod benchmarking;
 mod tests;
 
 use codec::Decode;
-use frame_system::{RawOrigin, ensure_root};
 use frame_support::dispatch::{DispatchError, DispatchResult, UnfilteredDispatchable};
 use frame_support::storage::IterableStorageMap;
 use frame_support::traits::Get;
@@ -149,6 +148,7 @@ use frame_support::weights::{GetDispatchInfo, Weight};
 use frame_support::{
     decl_error, decl_event, decl_module, decl_storage, ensure, Parameter, StorageDoubleMap,
 };
+use frame_system::{ensure_root, RawOrigin};
 use sp_arithmetic::traits::{SaturatedConversion, Saturating, Zero};
 use sp_std::vec::Vec;
 
@@ -175,7 +175,10 @@ type WeightInfoEngine<T> = <T as Trait>::WeightInfo;
 
 /// Proposals engine trait.
 pub trait Trait:
-    frame_system::Trait + pallet_timestamp::Trait + common::membership::MembershipTypes + balances::Trait
+    frame_system::Trait
+    + pallet_timestamp::Trait
+    + common::membership::MembershipTypes
+    + balances::Trait
 {
     /// Engine event type.
     type Event: From<Event<Self>> + Into<<Self as frame_system::Trait>::Event>;

+ 8 - 4
runtime-modules/referendum/src/lib.rs

@@ -679,8 +679,12 @@ impl<T: Trait<I>, I: Instance> Mutations<T, I> {
     // Conclude referendum, count votes, and select the winners.
     fn conclude_referendum(
         revealing_stage: ReferendumStageRevealingOf<T, I>,
-    ) -> Vec<OptionResult<<T as common::membership::MembershipTypes>::MemberId, <T as Trait<I>>::VotePower>>
-    {
+    ) -> Vec<
+        OptionResult<
+            <T as common::membership::MembershipTypes>::MemberId,
+            <T as Trait<I>>::VotePower,
+        >,
+    > {
         // reset referendum state
         Stage::<T, I>::put(ReferendumStage::Inactive);
 
@@ -694,7 +698,7 @@ impl<T: Trait<I>, I: Instance> Mutations<T, I> {
         commitment: &T::Hash,
         stake: &BalanceOf<T>,
         current_cycle_id: &u64,
-    ){
+    ) {
         // Should call after `can_vote`
         T::StakingHandler::lock(account_id, *stake);
 
@@ -716,7 +720,7 @@ impl<T: Trait<I>, I: Instance> Mutations<T, I> {
         account_id: &<T as frame_system::Trait>::AccountId,
         option_id: &<T as common::membership::MembershipTypes>::MemberId,
         cast_vote: CastVoteOf<T>,
-    ){
+    ) {
         // prepare new values
         let vote_power = T::calculate_vote_power(&account_id, &cast_vote.stake);
         let option_result = OptionResult {

+ 2 - 1
runtime-modules/referendum/src/mock.rs

@@ -281,7 +281,8 @@ impl common::working_group::WorkingGroupAuthenticator<Runtime> for () {
         unimplemented!()
     }
 
-    fn get_leader_member_id() -> Option<<Runtime as common::membership::MembershipTypes>::MemberId> {
+    fn get_leader_member_id() -> Option<<Runtime as common::membership::MembershipTypes>::MemberId>
+    {
         unimplemented!()
     }
 

+ 9 - 3
runtime-modules/storage/src/data_directory.rs

@@ -31,9 +31,9 @@ use sp_std::vec::Vec;
 #[cfg(feature = "std")]
 use serde::{Deserialize, Serialize};
 
-use common::working_group::WorkingGroupAuthenticator;
 use common::membership::MemberOriginValidator;
 pub use common::storage::{ContentParameters, StorageObjectOwner};
+use common::working_group::WorkingGroupAuthenticator;
 pub(crate) use common::BlockAndTime;
 
 use crate::data_object_type_registry;
@@ -70,7 +70,11 @@ pub trait Trait:
     type IsActiveDataObjectType: data_object_type_registry::IsActiveDataObjectType<Self>;
 
     /// Validates member id and origin combination.
-    type MembershipOriginValidator: MemberOriginValidator<Self::Origin, MemberId<Self>, Self::AccountId>;
+    type MembershipOriginValidator: MemberOriginValidator<
+        Self::Origin,
+        MemberId<Self>,
+        Self::AccountId,
+    >;
 }
 
 decl_error! {
@@ -707,7 +711,9 @@ impl<T: Trait> Module<T> {
         owner: &ObjectOwner<T>,
     ) -> DispatchResult {
         if let StorageObjectOwner::Member(member_id) = owner {
-            T::MembershipOriginValidator::ensure_member_controller_account_origin(origin, *member_id)?;
+            T::MembershipOriginValidator::ensure_member_controller_account_origin(
+                origin, *member_id,
+            )?;
         } else {
             ensure_root(origin)?;
         };

+ 1 - 5
runtime-modules/storage/src/data_object_storage_registry.rs

@@ -40,11 +40,7 @@ type WorkingGroup<T> = <T as data_object_type_registry::Trait>::WorkingGroup;
 const DEFAULT_FIRST_RELATIONSHIP_ID: u8 = 1;
 
 /// The _Data object storage registry_ main _Trait_.
-pub trait Trait:
-    pallet_timestamp::Trait
-    + frame_system::Trait
-    + data_directory::Trait
-{
+pub trait Trait: pallet_timestamp::Trait + frame_system::Trait + data_directory::Trait {
     /// _Data object storage registry_ event type.
     type Event: From<Event<Self>> + Into<<Self as frame_system::Trait>::Event>;
 

+ 2 - 6
runtime-modules/storage/src/data_object_type_registry.rs

@@ -30,17 +30,13 @@ use sp_std::vec::Vec;
 
 use common::working_group::WorkingGroupAuthenticator;
 
-use crate::{DataObjectTypeId};
+use crate::DataObjectTypeId;
 
 const DEFAULT_TYPE_DESCRIPTION: &str = "Default data object type for audio and video content.";
 const DEFAULT_FIRST_DATA_OBJECT_TYPE_ID: u8 = 1;
 
 /// The _Data object type registry_ main _Trait_.
-pub trait Trait:
-    frame_system::Trait
-    + common::MembershipTypes
-    + common::StorageOwnership
-{
+pub trait Trait: frame_system::Trait + common::MembershipTypes + common::StorageOwnership {
     /// _Data object type registry_ event type.
     type Event: From<Event<Self>> + Into<<Self as frame_system::Trait>::Event>;
 

+ 7 - 1
runtime-modules/storage/src/tests/data_directory.rs

@@ -430,7 +430,13 @@ fn accept_and_reject_content_fail_with_invalid_storage_provider() {
             storage_provider_id,
             content_id,
         );
-        assert_eq!(res, Err(working_group::Error::<Test, StorageWorkingGroupInstance>::WorkerDoesNotExist.into()));
+        assert_eq!(
+            res,
+            Err(
+                working_group::Error::<Test, StorageWorkingGroupInstance>::WorkerDoesNotExist
+                    .into()
+            )
+        );
     });
 }
 

+ 21 - 3
runtime-modules/storage/src/tests/data_object_storage_registry.rs

@@ -22,7 +22,13 @@ fn add_relationship_fails_with_invalid_authorization() {
             storage_provider_id,
             TEST_MOCK_EXISTING_CID,
         );
-        assert_eq!(res, Err(working_group::Error::<Test, StorageWorkingGroupInstance>::WorkerDoesNotExist.into()));
+        assert_eq!(
+            res,
+            Err(
+                working_group::Error::<Test, StorageWorkingGroupInstance>::WorkerDoesNotExist
+                    .into()
+            )
+        );
     });
 }
 
@@ -44,7 +50,13 @@ fn set_relationship_ready_fails_with_invalid_authorization() {
             invalid_storage_provider_id,
             TEST_MOCK_EXISTING_CID,
         );
-        assert_eq!(res, Err(working_group::Error::<Test, StorageWorkingGroupInstance>::WorkerDoesNotExist.into()));
+        assert_eq!(
+            res,
+            Err(
+                working_group::Error::<Test, StorageWorkingGroupInstance>::WorkerDoesNotExist
+                    .into()
+            )
+        );
     });
 }
 
@@ -66,7 +78,13 @@ fn unset_relationship_ready_fails_with_invalid_authorization() {
             invalid_storage_provider_id,
             TEST_MOCK_EXISTING_CID,
         );
-        assert_eq!(res, Err(working_group::Error::<Test, StorageWorkingGroupInstance>::WorkerDoesNotExist.into()));
+        assert_eq!(
+            res,
+            Err(
+                working_group::Error::<Test, StorageWorkingGroupInstance>::WorkerDoesNotExist
+                    .into()
+            )
+        );
     });
 }
 

+ 3 - 12
runtime-modules/storage/src/tests/data_object_type_registry.rs

@@ -75,10 +75,7 @@ fn activate_data_object_type_fails_with_invalid_lead() {
         );
         assert_eq!(
             res,
-            Err(
-                working_group::Error::<Test, StorageWorkingGroupInstance>::IsNotLeadAccount
-                    .into()
-            )
+            Err(working_group::Error::<Test, StorageWorkingGroupInstance>::IsNotLeadAccount.into())
         );
     });
 }
@@ -115,10 +112,7 @@ fn deactivate_data_object_type_fails_with_invalid_lead() {
         );
         assert_eq!(
             res,
-            Err(
-                working_group::Error::<Test, StorageWorkingGroupInstance>::IsNotLeadAccount
-                    .into()
-            )
+            Err(working_group::Error::<Test, StorageWorkingGroupInstance>::IsNotLeadAccount.into())
         );
     });
 }
@@ -160,10 +154,7 @@ fn update_data_object_type_fails_with_invalid_lead() {
         );
         assert_eq!(
             res,
-            Err(
-                working_group::Error::<Test, StorageWorkingGroupInstance>::IsNotLeadAccount
-                    .into()
-            )
+            Err(working_group::Error::<Test, StorageWorkingGroupInstance>::IsNotLeadAccount.into())
         );
     });
 }

+ 16 - 10
runtime-modules/storage/src/tests/mock.rs

@@ -1,7 +1,7 @@
 #![cfg(test)]
 
 use frame_support::storage::StorageMap;
-use frame_support::traits::{OnFinalize, OnInitialize, LockIdentifier};
+use frame_support::traits::{LockIdentifier, OnFinalize, OnInitialize};
 use frame_support::{impl_outer_event, impl_outer_origin, parameter_types};
 use sp_core::H256;
 use sp_runtime::{
@@ -23,10 +23,10 @@ pub use crate::data_directory::{
     DEFAULT_GLOBAL_VOUCHER, DEFAULT_UPLOADING_BLOCKED_STATUS, DEFAULT_VOUCHER,
     DEFAULT_VOUCHER_OBJECTS_LIMIT_UPPER_BOUND, DEFAULT_VOUCHER_SIZE_LIMIT_UPPER_BOUND,
 };
-use frame_support::dispatch::{DispatchResult, DispatchError};
-use staking_handler::LockComparator;
+use frame_support::dispatch::{DispatchError, DispatchResult};
 use frame_support::weights::Weight;
 use frame_system::ensure_signed;
+use staking_handler::LockComparator;
 
 pub type StorageWorkingGroupInstance = working_group::Instance2;
 
@@ -245,7 +245,7 @@ impl membership::Trait for Test {
     type InvitedMemberStakingHandler = staking_handler::StakingManager<Self, InvitedMemberLockId>;
     type ReferralCutMaximumPercent = ReferralCutMaximumPercent;
     type StakingCandidateStakingHandler =
-    staking_handler::StakingManager<Self, StakingCandidateLockId>;
+        staking_handler::StakingManager<Self, StakingCandidateLockId>;
     type CandidateStake = CandidateStake;
 }
 pub struct Weights;
@@ -322,12 +322,18 @@ impl common::working_group::WorkingGroupAuthenticator<Test> for () {
         worker_id: &<Test as common::membership::MembershipTypes>::ActorId,
     ) -> DispatchResult {
         let account_id = ensure_signed(origin)?;
-        if account_id != TEST_MOCK_LIAISON_ACCOUNT_ID{
-            return  Err(working_group::Error::<Test, StorageWorkingGroupInstance>::WorkerDoesNotExist.into())
+        if account_id != TEST_MOCK_LIAISON_ACCOUNT_ID {
+            return Err(
+                working_group::Error::<Test, StorageWorkingGroupInstance>::WorkerDoesNotExist
+                    .into(),
+            );
         }
 
         if *worker_id != TEST_MOCK_LIAISON_STORAGE_PROVIDER_ID {
-            return  Err(working_group::Error::<Test, StorageWorkingGroupInstance>::WorkerDoesNotExist.into())
+            return Err(
+                working_group::Error::<Test, StorageWorkingGroupInstance>::WorkerDoesNotExist
+                    .into(),
+            );
         }
         Ok(())
     }
@@ -336,8 +342,9 @@ impl common::working_group::WorkingGroupAuthenticator<Test> for () {
         let account_id = ensure_signed(origin)?;
 
         if account_id != DEFAULT_LEADER_ACCOUNT_ID {
-            return Err(working_group::Error::<Test, StorageWorkingGroupInstance>::IsNotLeadAccount
-                .into())
+            return Err(
+                working_group::Error::<Test, StorageWorkingGroupInstance>::IsNotLeadAccount.into(),
+            );
         }
 
         Ok(())
@@ -451,7 +458,6 @@ impl working_group::WeightInfo for WorkingGroupWeightInfo {
     }
 }
 
-
 #[allow(dead_code)]
 pub struct ExtBuilder {
     voucher_objects_limit_upper_bound: u64,

+ 8 - 4
runtime-modules/utility/src/lib.rs

@@ -258,10 +258,12 @@ impl<T: Trait> Module<T> {
                 WorkingGroup::Membership => {
                     WeightInfoUtilities::<T>::update_working_group_budget_positive_membership()
                 }
-                WorkingGroup::Operations => { //TODO: benchmark it
+                WorkingGroup::Operations => {
+                    //TODO: benchmark it
                     WeightInfoUtilities::<T>::update_working_group_budget_positive_membership()
                 }
-                WorkingGroup::Gateway => { //TODO: benchmark it
+                WorkingGroup::Gateway => {
+                    //TODO: benchmark it
                     WeightInfoUtilities::<T>::update_working_group_budget_positive_membership()
                 }
             },
@@ -278,10 +280,12 @@ impl<T: Trait> Module<T> {
                 WorkingGroup::Content => {
                     WeightInfoUtilities::<T>::update_working_group_budget_negative_content()
                 }
-                WorkingGroup::Operations => { //TODO: benchmark it
+                WorkingGroup::Operations => {
+                    //TODO: benchmark it
                     WeightInfoUtilities::<T>::update_working_group_budget_negative_content()
                 }
-                WorkingGroup::Gateway => { //TODO: benchmark it
+                WorkingGroup::Gateway => {
+                    //TODO: benchmark it
                     WeightInfoUtilities::<T>::update_working_group_budget_negative_content()
                 }
             },

+ 0 - 1
runtime-modules/utility/src/tests/mocks.rs

@@ -148,7 +148,6 @@ pub type GatewayWorkingGroupInstance = working_group::Instance5;
 // The operations working group instance alias.
 pub type OperationsWorkingGroupInstance = working_group::Instance6;
 
-
 impl frame_system::Trait for Test {
     type BaseCallFilter = ();
     type Origin = Origin;

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

@@ -29,7 +29,9 @@ pub(crate) struct ApplicationInfo<T: crate::Trait<I>, I: crate::Instance> {
 }
 
 // WorkerId - Worker - helper struct.
-pub(crate) struct WorkerInfo<T: common::membership::MembershipTypes + frame_system::Trait + balances::Trait> {
+pub(crate) struct WorkerInfo<
+    T: common::membership::MembershipTypes + frame_system::Trait + balances::Trait,
+> {
     pub worker_id: WorkerId<T>,
     pub worker: Worker<T>,
 }

+ 9 - 6
runtime/src/integration/content_directory.rs

@@ -1,7 +1,9 @@
-use crate::{AccountId, ContentDirectoryWorkingGroup, ContentDirectoryWorkingGroupInstance, Runtime, Members};
+use crate::{
+    AccountId, ContentDirectoryWorkingGroup, ContentDirectoryWorkingGroupInstance, Members, Runtime,
+};
 
-use common::working_group::WorkingGroupAuthenticator;
 use common::membership::MemberOriginValidator;
+use common::working_group::WorkingGroupAuthenticator;
 
 impl content::ContentActorAuthenticator for Runtime {
     type CuratorId = u64;
@@ -16,12 +18,13 @@ impl content::ContentActorAuthenticator for Runtime {
     }
 
     fn is_member(member_id: &Self::MemberId, account_id: &AccountId) -> bool {
-        Members::is_member_controller_account(
-            member_id, account_id,
-        )
+        Members::is_member_controller_account(member_id, account_id)
     }
 
     fn is_valid_curator_id(curator_id: &Self::CuratorId) -> bool {
-        working_group::ensure_worker_exists::<Runtime, ContentDirectoryWorkingGroupInstance>(curator_id).is_ok()
+        working_group::ensure_worker_exists::<Runtime, ContentDirectoryWorkingGroupInstance>(
+            curator_id,
+        )
+        .is_ok()
     }
 }

+ 3 - 5
runtime/src/lib.rs

@@ -70,7 +70,7 @@ pub use runtime_api::*;
 use integration::proposals::{CouncilManager, ExtrinsicProposalEncoder};
 
 use common::working_group::{WorkingGroup, WorkingGroupBudgetHandler};
-use council::{ReferendumConnection};
+use council::ReferendumConnection;
 use referendum::{CastVote, OptionResult};
 use staking_handler::{LockComparator, StakingManager};
 use storage::data_object_storage_registry;
@@ -90,7 +90,6 @@ use storage::data_directory::Voucher;
 pub use storage::{data_directory, data_object_type_registry};
 pub use working_group;
 
-
 pub use content;
 pub use content::MaxNumber;
 
@@ -563,7 +562,6 @@ impl common::StorageOwnership for Runtime {
     type DataObjectTypeId = DataObjectTypeId;
 }
 
-
 impl memo::Trait for Runtime {
     type Event = Event;
 }
@@ -698,9 +696,9 @@ pub type InvitedMemberStakingManager =
 pub type StakingCandidateStakingHandler =
     staking_handler::StakingManager<Runtime, StakingCandidateLockId>;
 pub type GatewayWorkingGroupStakingManager =
-staking_handler::StakingManager<Runtime, GatewayWorkingGroupLockId>;
+    staking_handler::StakingManager<Runtime, GatewayWorkingGroupLockId>;
 pub type OperationsWorkingGroupStakingManager =
-staking_handler::StakingManager<Runtime, OperationsWorkingGroupLockId>;
+    staking_handler::StakingManager<Runtime, OperationsWorkingGroupLockId>;
 
 // The forum working group instance alias.
 pub type ForumWorkingGroupInstance = working_group::Instance1;

+ 3 - 3
runtime/src/runtime_api.rs

@@ -17,8 +17,9 @@ use crate::{
     GrandpaAuthorityList, GrandpaId, Hash, Index, RuntimeVersion, Signature, VERSION,
 };
 use crate::{
-    AllModules, AuthorityDiscovery, Babe, Balances, Call, Grandpa, Historical, InherentDataExt,
-    ProposalsEngine, RandomnessCollectiveFlip, Runtime, SessionKeys, System, TransactionPayment, DataDirectory
+    AllModules, AuthorityDiscovery, Babe, Balances, Call, DataDirectory, Grandpa, Historical,
+    InherentDataExt, ProposalsEngine, RandomnessCollectiveFlip, Runtime, SessionKeys, System,
+    TransactionPayment,
 };
 use frame_support::weights::Weight;
 
@@ -80,7 +81,6 @@ pub type UncheckedExtrinsic = generic::UncheckedExtrinsic<AccountId, Call, Signa
 // pub type Executive =
 //     frame_executive::Executive<Runtime, Block, frame_system::ChainContext<Runtime>, Runtime, AllModules>;
 
-
 /// Custom runtime upgrade handler.
 pub struct CustomOnRuntimeUpgrade;
 impl OnRuntimeUpgrade for CustomOnRuntimeUpgrade {

+ 9 - 1
runtime/src/tests/proposals_integration/working_group_proposals.rs

@@ -13,7 +13,15 @@ use working_group::StakeParameters;
 
 use crate::primitives::{ActorId, MemberId};
 use crate::tests::run_to_block;
-use crate::{Balance, BlockNumber, ContentDirectoryWorkingGroup, ContentDirectoryWorkingGroupInstance, ContentDirectoryWorkingGroupStakingManager, ForumWorkingGroup, ForumWorkingGroupInstance, ForumWorkingGroupStakingManager, MembershipWorkingGroup, MembershipWorkingGroupInstance, MembershipWorkingGroupStakingManager, StorageWorkingGroup, StorageWorkingGroupInstance, StorageWorkingGroupStakingManager, GatewayWorkingGroupInstance, OperationsWorkingGroupInstance, GatewayWorkingGroup, OperationsWorkingGroup, GatewayWorkingGroupStakingManager, OperationsWorkingGroupStakingManager};
+use crate::{
+    Balance, BlockNumber, ContentDirectoryWorkingGroup, ContentDirectoryWorkingGroupInstance,
+    ContentDirectoryWorkingGroupStakingManager, ForumWorkingGroup, ForumWorkingGroupInstance,
+    ForumWorkingGroupStakingManager, GatewayWorkingGroup, GatewayWorkingGroupInstance,
+    GatewayWorkingGroupStakingManager, MembershipWorkingGroup, MembershipWorkingGroupInstance,
+    MembershipWorkingGroupStakingManager, OperationsWorkingGroup, OperationsWorkingGroupInstance,
+    OperationsWorkingGroupStakingManager, StorageWorkingGroup, StorageWorkingGroupInstance,
+    StorageWorkingGroupStakingManager,
+};
 
 type WorkingGroupInstance<T, I> = working_group::Module<T, I>;
 

+ 1 - 1
runtime/src/weights/mod.rs

@@ -38,4 +38,4 @@ pub mod proposals_codex;
 pub mod proposals_discussion;
 pub mod proposals_engine;
 pub mod referendum;
-pub mod working_group;
+pub mod working_group;