func WithSyncCommitteeAggregator(aggregator synccommitteeaggregator.Service) Parameter {
	return parameterFunc(func(p *parameters) {
		p.syncCommitteeAggregator = aggregator
	})
}
WithSyncCommitteeAggregator sets the sync committee aggregator.
package standard
import (
	"context"
	eth2client "github.com/attestantio/go-eth2-client"
	"github.com/attestantio/vouch/services/accountmanager"
	"github.com/attestantio/vouch/services/chaintime"
	"github.com/attestantio/vouch/services/metrics"
	nullmetrics "github.com/attestantio/vouch/services/metrics/null"
	"github.com/attestantio/vouch/services/signer"
	"github.com/attestantio/vouch/services/submitter"
	"github.com/attestantio/vouch/services/synccommitteeaggregator"
	"github.com/pkg/errors"
	"github.com/rs/zerolog"
)
type parameters struct {
	logLevel                            zerolog.Level
	processConcurrency                  int64
	monitor                             metrics.SyncCommitteeMessageMonitor
	chainTimeService                    chaintime.Service
	syncCommitteeAggregator             synccommitteeaggregator.Service
	specProvider                        eth2client.SpecProvider
	beaconBlockRootProvider             eth2client.BeaconBlockRootProvider
	syncCommitteeMessagesSubmitter      submitter.SyncCommitteeMessagesSubmitter
	validatingAccountsProvider          accountmanager.ValidatingAccountsProvider
	syncCommitteeRootSigner             signer.SyncCommitteeRootSigner
	syncCommitteeSelectionSigner        signer.SyncCommitteeSelectionSigner
	syncCommitteeSubscriptionsSubmitter submitter.SyncCommitteeSubscriptionsSubmitter
}
type Parameter interface {
	apply(*parameters)
}
type parameterFunc func(*parameters)
func (f parameterFunc) apply(p *parameters) {
	f(p)
}
func WithLogLevel(logLevel zerolog.Level) Parameter {
	return parameterFunc(func(p *parameters) {
		p.logLevel = logLevel
	})
}
func WithProcessConcurrency(concurrency int64) Parameter {
	return parameterFunc(func(p *parameters) {
		p.processConcurrency = concurrency
	})
}
func WithMonitor(monitor metrics.SyncCommitteeMessageMonitor) Parameter {
	return parameterFunc(func(p *parameters) {
		p.monitor = monitor
	})
}
func WithChainTimeService(service chaintime.Service) Parameter {
	return parameterFunc(func(p *parameters) {
		p.chainTimeService = service
	})
}