referrerpolicy=no-referrer-when-downgrade
parachains_relay::parachains_loop

Trait SourceClient

Source
pub trait SourceClient<P: ParachainsPipeline>: RelayClient {
    // Required methods
    fn ensure_synced<'life0, 'async_trait>(
        &'life0 self,
    ) -> Pin<Box<dyn Future<Output = Result<bool, Self::Error>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn parachain_head<'life0, 'async_trait>(
        &'life0 self,
        at_block: HeaderIdOf<P::SourceRelayChain>,
    ) -> Pin<Box<dyn Future<Output = Result<AvailableHeader<HeaderIdOf<P::SourceParachain>>, Self::Error>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn prove_parachain_head<'life0, 'async_trait>(
        &'life0 self,
        at_block: HeaderIdOf<P::SourceRelayChain>,
    ) -> Pin<Box<dyn Future<Output = Result<(ParaHeadsProof, ParaHash), Self::Error>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
}
Expand description

Source client used in parachain heads synchronization loop.

Required Methods§

Source

fn ensure_synced<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<bool, Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Returns Ok(true) if client is in synced state.

Source

fn parachain_head<'life0, 'async_trait>( &'life0 self, at_block: HeaderIdOf<P::SourceRelayChain>, ) -> Pin<Box<dyn Future<Output = Result<AvailableHeader<HeaderIdOf<P::SourceParachain>>, Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Get parachain head id at given block.

Source

fn prove_parachain_head<'life0, 'async_trait>( &'life0 self, at_block: HeaderIdOf<P::SourceRelayChain>, ) -> Pin<Box<dyn Future<Output = Result<(ParaHeadsProof, ParaHash), Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Get parachain head proof at given block.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

impl<P: SubstrateParachainsPipeline, SourceRelayClnt: Client<P::SourceRelayChain>> SourceClient<ParachainsPipelineAdapter<P>> for ParachainsSource<P, SourceRelayClnt>
where P::SourceParachain: Chain<Hash = ParaHash>,