func WithSyncCommitteeContributionsSubmitter(submitter submitter.SyncCommitteeContributionsSubmitter) Parameter {
	return parameterFunc(func(p *parameters) {
		p.syncCommitteeContributionsSubmitter = submitter
	})
}
WithSyncCommitteeContributionsSubmitter sets the sync committee contributions submitter.
package standard
import (
	eth2client "github.com/attestantio/go-eth2-client"
	"github.com/attestantio/vouch/services/accountmanager"
	"github.com/attestantio/vouch/services/metrics"
	"github.com/attestantio/vouch/services/signer"
	"github.com/attestantio/vouch/services/submitter"
	"github.com/pkg/errors"
	"github.com/rs/zerolog"
)
type parameters struct {
	logLevel                            zerolog.Level
	monitor                             metrics.SyncCommitteeAggregationMonitor
	specProvider                        eth2client.SpecProvider
	beaconBlockRootProvider             eth2client.BeaconBlockRootProvider
	contributionAndProofSigner          signer.ContributionAndProofSigner
	validatingAccountsProvider          accountmanager.ValidatingAccountsProvider
	syncCommitteeContributionProvider   eth2client.SyncCommitteeContributionProvider
	syncCommitteeContributionsSubmitter submitter.SyncCommitteeContributionsSubmitter
}
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 WithMonitor(monitor metrics.SyncCommitteeAggregationMonitor) Parameter {
	return parameterFunc(func(p *parameters) {
		p.monitor = monitor
	})
}
func WithSpecProvider(provider eth2client.SpecProvider) Parameter {
	return parameterFunc(func(p *parameters) {
		p.specProvider = provider
	})
}
func WithBeaconBlockRootProvider(provider eth2client.BeaconBlockRootProvider) Parameter {
	return parameterFunc(func(p *parameters) {
		p.beaconBlockRootProvider = provider
	})
}
func WithContributionAndProofSigner(signer signer.ContributionAndProofSigner) Parameter {
	return parameterFunc(func(p *parameters) {
		p.contributionAndProofSigner = signer
	})
}
func WithValidatingAccountsProvider(provider accountmanager.ValidatingAccountsProvider) Parameter {
	return parameterFunc(func(p *parameters) {
		p.validatingAccountsProvider = provider
	})
}
func WithSyncCommitteeContributionProvider(provider eth2client.SyncCommitteeContributionProvider) Parameter {
	return parameterFunc(func(p *parameters) {
		p.syncCommitteeContributionProvider = provider
	})
}