,
relay_chain_client: Arc,
relay_chain_backend: Arc,
para_id: ParaId,
relay_chain_sync_oracle: Box,
wait_on_relay_chain_block: WaitOnRelayChainBlock,
}
impl BlockAnnounceValidator {
/// Create a new [`BlockAnnounceValidator`].
pub fn new(
relay_chain_client: Arc,
para_id: ParaId,
relay_chain_sync_oracle: Box,
relay_chain_backend: Arc,
relay_chain_blockchain_events: Arc,
) -> Self {
Self {
phantom: Default::default(),
relay_chain_client,
para_id,
relay_chain_sync_oracle,
relay_chain_backend: relay_chain_backend.clone(),
wait_on_relay_chain_block: WaitOnRelayChainBlock::new(
relay_chain_backend,
relay_chain_blockchain_events,
),
}
}
}
impl BlockAnnounceValidator
where
P: ProvideRuntimeApi + Send + Sync + 'static,
P::Api: ParachainHost,
B: Backend + 'static,
// Rust bug: https://github.com/rust-lang/rust/issues/24159
sc_client_api::StateBackendFor: sc_client_api::StateBackend>,
{
/// Handle a block announcement with empty data (no statement) attached to it.
fn handle_empty_block_announce_data(
&self,
header: Block::Header,
) -> impl Future