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