diff --git a/cmd/indexer/indexer/indexer.go b/cmd/indexer/indexer/indexer.go index b615d1ef1..5451378bc 100644 --- a/cmd/indexer/indexer/indexer.go +++ b/cmd/indexer/indexer/indexer.go @@ -61,7 +61,7 @@ func NewBlockchainIndexer(ctx context.Context, cfg config.Config, network string networkType, config.WithConfigCopy(cfg), config.WithStorage(cfg.Storage, "indexer", 10, cfg.Indexer.Connections.Open, cfg.Indexer.Connections.Idle, true), - config.WithRPC(cfg.RPC), + config.WithWaitRPC(cfg.RPC), ) logger.Info().Str("network", internalCtx.Network.String()).Msg("Creating indexer object...") diff --git a/internal/config/options.go b/internal/config/options.go index ab629245a..5866f3b6c 100644 --- a/internal/config/options.go +++ b/internal/config/options.go @@ -29,6 +29,26 @@ type ContextOption func(ctx *Context) // WithRPC - func WithRPC(rpcConfig map[string]RPCConfig) ContextOption { + return func(ctx *Context) { + if rpcProvider, ok := rpcConfig[ctx.Network.String()]; ok { + if rpcProvider.URI == "" { + return + } + opts := []noderpc.NodeOption{ + noderpc.WithTimeout(time.Second * time.Duration(rpcProvider.Timeout)), + noderpc.WithRateLimit(rpcProvider.RequestsPerSecond), + } + if rpcProvider.Log { + opts = append(opts, noderpc.WithLog()) + } + + ctx.RPC = noderpc.NewNodeRPC(rpcProvider.URI, opts...) + } + } +} + +// WithWaitRPC - +func WithWaitRPC(rpcConfig map[string]RPCConfig) ContextOption { return func(ctx *Context) { if rpcProvider, ok := rpcConfig[ctx.Network.String()]; ok { if rpcProvider.URI == "" {