diff --git a/substrate/polkadot/service/src/lib.rs b/substrate/polkadot/service/src/lib.rs index d3daac84ca84985dbb94a5d8ba8f2c774f5e0d9a..ea33bad5ec8f00635897e5885f76e56f8c995a1c 100644 --- a/substrate/polkadot/service/src/lib.rs +++ b/substrate/polkadot/service/src/lib.rs @@ -74,6 +74,7 @@ pub struct Service { thread: Option<thread::JoinHandle<()>>, client: Arc<Client>, network: Arc<network::Service>, + transaction_pool: Arc<Mutex<TransactionPool>>, _consensus: Option<consensus::Service>, } @@ -182,7 +183,7 @@ impl Service { // Load the first available key. Code above makes sure it exisis. let key = keystore.load(&keystore.contents()?[0], "")?; info!("Using authority key {:?}", key.public()); - Some(consensus::Service::new(client.clone(), network.clone(), transaction_pool, key, &best_header)) + Some(consensus::Service::new(client.clone(), network.clone(), transaction_pool.clone(), key, &best_header)) } else { None }; @@ -203,8 +204,9 @@ impl Service { }); Ok(Service { thread: Some(thread), - client: client.clone(), - network: network.clone(), + client: client, + network: network, + transaction_pool: transaction_pool, _consensus: consensus_service, }) } @@ -218,6 +220,11 @@ impl Service { pub fn network(&self) -> Arc<network::Service> { self.network.clone() } + + /// Get shared transaction pool instance. + pub fn transaction_pool(&self) -> Arc<Mutex<TransactionPool>> { + self.transaction_pool.clone() + } } impl Drop for Service {