func (m *FarFutureEpochProvider) FarFutureEpoch(ctx context.Context) (phase0.Epoch, error) {
	return m.farFutureEpoch, nil
}
FarFutureEpoch is a mock.
package mock
import (
	"context"
	"encoding/hex"
	"errors"
	"strings"
	"time"
	eth2client "github.com/attestantio/go-eth2-client"
	api "github.com/attestantio/go-eth2-client/api/v1"
	"github.com/attestantio/go-eth2-client/spec"
	"github.com/attestantio/go-eth2-client/spec/altair"
	"github.com/attestantio/go-eth2-client/spec/phase0"
	"github.com/prysmaticlabs/go-bitfield"
)
type GenesisTimeProvider struct {
	genesisTime time.Time
}
func NewGenesisTimeProvider(genesisTime time.Time) eth2client.GenesisTimeProvider {
	return &GenesisTimeProvider{
		genesisTime: genesisTime,
	}
}
func (m *GenesisTimeProvider) GenesisTime(ctx context.Context) (time.Time, error) {
	return m.genesisTime, nil
}
type SlotDurationProvider struct {
	slotDuration time.Duration
}
func NewSlotDurationProvider(slotDuration time.Duration) eth2client.SlotDurationProvider {
	return &SlotDurationProvider{
		slotDuration: slotDuration,
	}
}
func (m *SlotDurationProvider) SlotDuration(ctx context.Context) (time.Duration, error) {
	return m.slotDuration, nil
}
type ErroringSlotDurationProvider struct{}
func NewErroringSlotDurationProvider() eth2client.SlotDurationProvider {
	return &ErroringSlotDurationProvider{}
}
func (m *ErroringSlotDurationProvider) SlotDuration(ctx context.Context) (time.Duration, error) {
	return 0, errors.New("mock")
}
type FarFutureEpochProvider struct {
	farFutureEpoch phase0.Epoch
}
func NewFarFutureEpochProvider(farFutureEpoch phase0.Epoch) eth2client.FarFutureEpochProvider {
	return &FarFutureEpochProvider{
		farFutureEpoch: farFutureEpoch,
	}
}