Drop ClientProvider (#5823)

This commit is contained in:
Seun Lanlege
2020-04-29 17:48:24 +01:00
committed by GitHub
parent 0f401e4699
commit 1fd18dd260
2 changed files with 5 additions and 359 deletions
+5 -89
View File
@@ -54,7 +54,7 @@ use sc_network::{NetworkService, network_state::NetworkState, PeerId, ReportHand
use log::{log, warn, debug, error, Level};
use codec::{Encode, Decode};
use sp_runtime::generic::BlockId;
use sp_runtime::traits::{NumberFor, Block as BlockT, BlockIdTo};
use sp_runtime::traits::{NumberFor, Block as BlockT};
use parity_util_mem::MallocSizeOf;
use sp_utils::mpsc::{tracing_unbounded, TracingUnboundedReceiver, TracingUnboundedSender};
@@ -80,16 +80,11 @@ pub use sc_network::config::{FinalityProofProvider, OnDemand, BoxFinalityProofRe
pub use sc_tracing::TracingReceiver;
pub use task_manager::SpawnTaskHandle;
use task_manager::TaskManager;
use sp_blockchain::{HeaderBackend, HeaderMetadata, ProvideCache};
use sp_api::{ProvideRuntimeApi, CallApiAt, ApiExt, ConstructRuntimeApi, ApiErrorExt};
use sp_blockchain::{HeaderBackend, HeaderMetadata};
use sp_api::{ApiExt, ConstructRuntimeApi, ApiErrorExt};
use sc_client_api::{
LockImportRun, Backend as BackendT, ProofProvider, ProvideUncles,
StorageProvider, ExecutorProvider, Finalizer, AuxStore, Backend,
BlockBackend, BlockchainEvents, CallExecutor, TransactionFor,
UsageProvider,
Backend as BackendT, BlockchainEvents, CallExecutor, UsageProvider,
};
use sc_block_builder::BlockBuilderProvider;
use sp_consensus::{block_validation::Chain, BlockImport};
use sp_block_builder::BlockBuilder;
const DEFAULT_PROTOCOL_ID: &str = "sup";
@@ -131,85 +126,6 @@ pub struct Service<TBl, TCl, TSc, TNetStatus, TNet, TTxPool, TOc> {
impl<TBl, TCl, TSc, TNetStatus, TNet, TTxPool, TOc> Unpin for Service<TBl, TCl, TSc, TNetStatus, TNet, TTxPool, TOc> {}
/// Client super trait, use this instead of the concrete Client type.
pub trait ClientProvider<
Block: BlockT,
Backend: BackendT<Block>,
Executor: CallExecutor<Block>,
Runtime: ConstructRuntimeApi<Block, Self>,
>:
HeaderBackend<Block>
+ ProvideRuntimeApi<
Block,
Api = <Runtime as ConstructRuntimeApi<Block, Self>>::RuntimeApi
>
+ LockImportRun<Block, Backend>
+ ProofProvider<Block>
+ BlockBuilderProvider<Backend, Block, Self>
+ ProvideUncles<Block>
+ StorageProvider<Block, Backend>
+ Chain<Block>
+ HeaderMetadata<Block, Error = sp_blockchain::Error>
+ ExecutorProvider<Block, Executor = Executor>
+ ProvideCache<Block>
+ BlockIdTo<Block, Error = sp_blockchain::Error>
+ CallApiAt<
Block,
Error = sp_blockchain::Error,
StateBackend = <Backend as BackendT<Block>>::State
>
+ BlockImport<
Block,
Error = sp_consensus::Error,
Transaction = TransactionFor<Backend, Block>
>
+ Finalizer<Block, Backend>
+ BlockchainEvents<Block>
+ BlockBackend<Block>
+ UsageProvider<Block>
+ AuxStore
{}
impl<Block, Backend, Executor, Runtime> ClientProvider<Block, Backend, Executor, Runtime>
for
Client<Backend, Executor, Block, Runtime>
where
Block: BlockT,
Backend: BackendT<Block>,
Executor: CallExecutor<Block>,
Runtime: ConstructRuntimeApi<Block, Self>,
Self: HeaderBackend<Block>
+ ProvideRuntimeApi<
Block,
Api = <Runtime as ConstructRuntimeApi<Block, Self>>::RuntimeApi
>
+ LockImportRun<Block, Backend>
+ ProofProvider<Block>
+ BlockBuilderProvider<Backend, Block, Self>
+ ProvideUncles<Block>
+ StorageProvider<Block, Backend>
+ Chain<Block>
+ HeaderMetadata<Block, Error = sp_blockchain::Error>
+ ExecutorProvider<Block, Executor = Executor>
+ ProvideCache<Block>
+ BlockIdTo<Block, Error = sp_blockchain::Error>
+ CallApiAt<
Block,
Error = sp_blockchain::Error,
StateBackend = <Backend as BackendT<Block>>::State
>
+ BlockImport<
Block,
Error = sp_consensus::Error,
Transaction = TransactionFor<Backend, Block>
>
+ Finalizer<Block, Backend>
+ BlockchainEvents<Block>
+ BlockBackend<Block>
+ UsageProvider<Block>
+ AuxStore
{}
/// Abstraction over a Substrate service.
pub trait AbstractService: Future<Output = Result<(), Error>> + Send + Unpin + Spawn + 'static {
/// Type of block of this chain.
@@ -296,7 +212,7 @@ impl<TBl, TBackend, TExec, TRtApi, TSc, TExPool, TOc> AbstractService for
NetworkService<TBl, TBl::Hash>, TExPool, TOc>
where
TBl: BlockT,
TBackend: 'static + Backend<TBl>,
TBackend: 'static + BackendT<TBl>,
TExec: 'static + CallExecutor<TBl, Backend = TBackend> + Send + Sync + Clone,
TRtApi: 'static + Send + Sync + ConstructRuntimeApi<TBl, Client<TBackend, TExec, TBl, TRtApi>>,
<TRtApi as ConstructRuntimeApi<TBl, Client<TBackend, TExec, TBl, TRtApi>>>::RuntimeApi: