pub async fn initialize_services<M, N, T>(
monitor_service: Option<MonitorService<M, N, T>>,
network_service: Option<NetworkService<N>>,
trigger_service: Option<TriggerService<T>>,
) -> Result<(Arc<FilterService>, Arc<TriggerExecutionService<T>>, Vec<Monitor>, HashMap<String, Network>, Arc<Mutex<MonitorService<M, N, T>>>, Arc<Mutex<NetworkService<N>>>, Arc<Mutex<TriggerService<T>>>)>where
M: MonitorRepositoryTrait<N, T> + Send + Sync + 'static,
N: NetworkRepositoryTrait + Send + Sync + 'static,
T: TriggerRepositoryTrait + Send + Sync + 'static,Expand description
Initializes all required services for the blockchain monitor.
§Returns
Returns a tuple containing:
- FilterService: Handles filtering of blockchain data
- TriggerExecutionService: Manages trigger execution
Vec<Monitor>: List of active monitorsHashMap<String, Network>: Available networks indexed by slugArc<Mutex<M>>: Data access for monitor configsArc<Mutex<N>>: Data access for network configsArc<Mutex<T>>: Data access for trigger configs
§Errors
Returns an error if any service initialization fails