diff --git a/pkg/innerring/innerring.go b/pkg/innerring/innerring.go index a1ad4376..1d26e253 100644 --- a/pkg/innerring/innerring.go +++ b/pkg/innerring/innerring.go @@ -138,7 +138,14 @@ var ( ) // Start runs all event providers. -func (s *Server) Start(ctx context.Context, intError chan<- error) error { +func (s *Server) Start(ctx context.Context, intError chan<- error) (err error) { + s.setHealthStatus(control.HealthStatus_STARTING) + defer func() { + if err == nil { + s.setHealthStatus(control.HealthStatus_READY) + } + }() + for _, starter := range s.starters { if err := starter(); err != nil { return err @@ -223,6 +230,8 @@ func (s *Server) startWorkers(ctx context.Context) { // Stop closes all subscription channels. func (s *Server) Stop() { + s.setHealthStatus(control.HealthStatus_SHUTTING_DOWN) + go s.morphListener.Stop() go s.mainnetListener.Stop() @@ -259,6 +268,8 @@ func New(ctx context.Context, log *zap.Logger, cfg *viper.Viper) (*Server, error var err error server := &Server{log: log} + server.setHealthStatus(control.HealthStatus_HEALTH_STATUS_UNDEFINED) + // parse notary support server.feeConfig = config.NewFeeConfig(cfg) server.mainNotaryConfig, server.sideNotaryConfig = parseNotaryConfigs(cfg)