openzeppelin_monitor::bootstrap

Function initialize_services

Source
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 monitors
  • HashMap<String, Network>: Available networks indexed by slug
  • Arc<Mutex<M>>: Data access for monitor configs
  • Arc<Mutex<N>>: Data access for network configs
  • Arc<Mutex<T>>: Data access for trigger configs

§Errors

Returns an error if any service initialization fails