(ctx context.Context, cfg *Config, lg log.Logger, appVersion string, m metrics.Metricer)
| 73 | } |
| 74 | |
| 75 | func New(ctx context.Context, cfg *Config, lg log.Logger, appVersion string, m metrics.Metricer) (*EsNode, error) { |
| 76 | if err := cfg.Check(); err != nil { |
| 77 | return nil, err |
| 78 | } |
| 79 | |
| 80 | n := &EsNode{ |
| 81 | lg: lg, |
| 82 | appVersion: appVersion, |
| 83 | metrics: m, |
| 84 | } |
| 85 | // not a context leak, gossipsub is closed with a context. |
| 86 | n.resourcesCtx, n.resourcesClose = context.WithCancel(context.Background()) |
| 87 | n.feed = new(event.Feed) |
| 88 | err := n.init(ctx, cfg) |
| 89 | if err != nil { |
| 90 | n.lg.Error("Error initializing the rollup node", "err", err) |
| 91 | // ensure we always close the node resources if we fail to initialize the node. |
| 92 | if closeErr := n.Close(); closeErr != nil { |
| 93 | return nil, multierror.Append(err, closeErr) |
| 94 | } |
| 95 | return nil, err |
| 96 | } |
| 97 | return n, nil |
| 98 | } |
| 99 | |
| 100 | func (n *EsNode) init(ctx context.Context, cfg *Config) error { |
| 101 | if err := n.initL1(ctx, cfg); err != nil { |
no test coverage detected