pub async fn start_cross_chain_message_listener<Client, TxPool, TxnListener, CClient, CBlock, Block, Executor, SO>(
chain_id: ChainId,
consensus_client: Arc<CClient>,
client: Arc<Client>,
tx_pool: Arc<TxPool>,
network: Arc<dyn NetworkPeers + Send + Sync>,
listener: TxnListener,
domain_executor: Arc<Executor>,
sync_oracle: SO,
)where
TxPool: TransactionPool + 'static,
Client: ProvideRuntimeApi<<TxPool as TransactionPool>::Block> + HeaderBackend<<TxPool as TransactionPool>::Block>,
CBlock: BlockT,
Block: BlockT,
CClient: ProvideRuntimeApi<CBlock> + HeaderBackend<CBlock> + AuxStore,
CClient::Api: DomainsApi<CBlock, Block::Header> + RelayerApi<CBlock, NumberFor<CBlock>, NumberFor<CBlock>, CBlock::Hash>,
TxnListener: Stream<Item =
ChainMsg> +
Unpin,
Executor: CodeExecutor + RuntimeVersionOf,
SO: SyncOracle +
Send,