Add HeaderBackend trait to BuildParachainContext for cumulus validation (#1153)

This commit is contained in:
Cecile Tonglet
2020-05-26 17:23:36 +02:00
committed by GitHub
parent 7889aaa4a7
commit 0ff80d0355
2 changed files with 6 additions and 4 deletions
+2 -1
View File
@@ -53,6 +53,7 @@ use std::pin::Pin;
use futures::{future, Future, Stream, FutureExt, TryFutureExt, StreamExt, task::Spawn}; use futures::{future, Future, Stream, FutureExt, TryFutureExt, StreamExt, task::Spawn};
use log::warn; use log::warn;
use sc_client_api::{StateBackend, BlockchainEvents}; use sc_client_api::{StateBackend, BlockchainEvents};
use sp_blockchain::HeaderBackend;
use sp_core::Pair; use sp_core::Pair;
use polkadot_primitives::{ use polkadot_primitives::{
BlockId, Hash, Block, BlockId, Hash, Block,
@@ -128,7 +129,7 @@ pub trait BuildParachainContext {
network: impl Network + Clone + 'static, network: impl Network + Clone + 'static,
) -> Result<Self::ParachainContext, ()> ) -> Result<Self::ParachainContext, ()>
where where
Client: ProvideRuntimeApi<Block> + Send + Sync + BlockchainEvents<Block> + 'static, Client: ProvideRuntimeApi<Block> + HeaderBackend<Block> + BlockchainEvents<Block> + Send + Sync + 'static,
Client::Api: RuntimeApiCollection<Extrinsic>, Client::Api: RuntimeApiCollection<Extrinsic>,
<Client::Api as ApiExt<Block>>::StateBackend: StateBackend<HashFor<Block>>, <Client::Api as ApiExt<Block>>::StateBackend: StateBackend<HashFor<Block>>,
Extrinsic: codec::Codec + Send + Sync + 'static, Extrinsic: codec::Codec + Send + Sync + 'static,
+4 -3
View File
@@ -16,16 +16,17 @@
//! Polkadot Client meta trait //! Polkadot Client meta trait
use sc_client_api::BlockchainEvents;
use sp_api::{ProvideRuntimeApi, ConstructRuntimeApi, CallApiAt}; use sp_api::{ProvideRuntimeApi, ConstructRuntimeApi, CallApiAt};
use sp_blockchain::HeaderBackend;
use sp_runtime::traits::Block as BlockT; use sp_runtime::traits::Block as BlockT;
use sc_client_api::Backend as BackendT; use sc_client_api::{Backend as BackendT, BlockchainEvents};
/// Polkadot client abstraction, this super trait only pulls in functionality required for /// Polkadot client abstraction, this super trait only pulls in functionality required for
/// polkadot internal crates like polkadot-collator. /// polkadot internal crates like polkadot-collator.
pub trait PolkadotClient<Block, Backend, Runtime>: pub trait PolkadotClient<Block, Backend, Runtime>:
BlockchainEvents<Block> + Sized + Send + Sync BlockchainEvents<Block> + Sized + Send + Sync
+ ProvideRuntimeApi<Block, Api = Runtime::RuntimeApi> + ProvideRuntimeApi<Block, Api = Runtime::RuntimeApi>
+ HeaderBackend<Block>
+ CallApiAt< + CallApiAt<
Block, Block,
Error = sp_blockchain::Error, Error = sp_blockchain::Error,
@@ -42,7 +43,7 @@ impl<Block, Backend, Runtime, Client> PolkadotClient<Block, Backend, Runtime> fo
Block: BlockT, Block: BlockT,
Runtime: ConstructRuntimeApi<Block, Self>, Runtime: ConstructRuntimeApi<Block, Self>,
Backend: BackendT<Block>, Backend: BackendT<Block>,
Client: BlockchainEvents<Block> + ProvideRuntimeApi<Block, Api = Runtime::RuntimeApi> Client: BlockchainEvents<Block> + ProvideRuntimeApi<Block, Api = Runtime::RuntimeApi> + HeaderBackend<Block>
+ Sized + Send + Sync + Sized + Send + Sync
+ CallApiAt< + CallApiAt<
Block, Block,