pub trait ClientPoolTrait: Send + Sync {
type EvmClient: EvmClientTrait + BlockChainClient + BlockFilterFactory<Self::EvmClient>;
type StellarClient: StellarClientTrait + BlockChainClient + BlockFilterFactory<Self::StellarClient>;
type MidnightClient: MidnightClientTrait + BlockChainClient + BlockFilterFactory<Self::MidnightClient>;
type SolanaClient: SolanaClientTrait + BlockChainClient + BlockFilterFactory<Self::SolanaClient>;
// Required methods
fn get_evm_client<'life0, 'life1, 'async_trait>(
&'life0 self,
network: &'life1 Network,
) -> Pin<Box<dyn Future<Output = Result<Arc<Self::EvmClient>, Error>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn get_stellar_client<'life0, 'life1, 'async_trait>(
&'life0 self,
network: &'life1 Network,
) -> Pin<Box<dyn Future<Output = Result<Arc<Self::StellarClient>, Error>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn get_midnight_client<'life0, 'life1, 'async_trait>(
&'life0 self,
network: &'life1 Network,
) -> Pin<Box<dyn Future<Output = Result<Arc<Self::MidnightClient>, Error>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn get_solana_client<'life0, 'life1, 'async_trait>(
&'life0 self,
network: &'life1 Network,
) -> Pin<Box<dyn Future<Output = Result<Arc<Self::SolanaClient>, Error>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn get_solana_client_with_addresses<'life0, 'life1, 'async_trait>(
&'life0 self,
network: &'life1 Network,
addresses: Vec<String>,
) -> Pin<Box<dyn Future<Output = Result<Arc<Self::SolanaClient>, Error>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
}Expand description
Trait for the client pool.
Required Associated Types§
type EvmClient: EvmClientTrait + BlockChainClient + BlockFilterFactory<Self::EvmClient>
type StellarClient: StellarClientTrait + BlockChainClient + BlockFilterFactory<Self::StellarClient>
type MidnightClient: MidnightClientTrait + BlockChainClient + BlockFilterFactory<Self::MidnightClient>
type SolanaClient: SolanaClientTrait + BlockChainClient + BlockFilterFactory<Self::SolanaClient>
Required Methods§
fn get_evm_client<'life0, 'life1, 'async_trait>(
&'life0 self,
network: &'life1 Network,
) -> Pin<Box<dyn Future<Output = Result<Arc<Self::EvmClient>, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_stellar_client<'life0, 'life1, 'async_trait>(
&'life0 self,
network: &'life1 Network,
) -> Pin<Box<dyn Future<Output = Result<Arc<Self::StellarClient>, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_midnight_client<'life0, 'life1, 'async_trait>(
&'life0 self,
network: &'life1 Network,
) -> Pin<Box<dyn Future<Output = Result<Arc<Self::MidnightClient>, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_solana_client<'life0, 'life1, 'async_trait>(
&'life0 self,
network: &'life1 Network,
) -> Pin<Box<dyn Future<Output = Result<Arc<Self::SolanaClient>, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Sourcefn get_solana_client_with_addresses<'life0, 'life1, 'async_trait>(
&'life0 self,
network: &'life1 Network,
addresses: Vec<String>,
) -> Pin<Box<dyn Future<Output = Result<Arc<Self::SolanaClient>, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_solana_client_with_addresses<'life0, 'life1, 'async_trait>(
&'life0 self,
network: &'life1 Network,
addresses: Vec<String>,
) -> Pin<Box<dyn Future<Output = Result<Arc<Self::SolanaClient>, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Gets a Solana client configured with specific addresses to monitor
This creates a fresh client (not cached) with the optimized getSignaturesForAddress approach enabled for the specified addresses.