func MaxClockDrift(d time.Duration) Option {
	return func(c *Client) { c.maxClockDrift = d }
}
MaxClockDrift defines how much new header's time can drift into
the future relative to the light clients local time. Default: 10s.
package light
import (
	"bytes"
	"context"
	"errors"
	"fmt"
	"sort"
	"sync"
	"time"
	tmsync "github.com/tendermint/tendermint/internal/libs/sync"
	"github.com/tendermint/tendermint/libs/log"
	tmmath "github.com/tendermint/tendermint/libs/math"
	"github.com/tendermint/tendermint/light/provider"
	"github.com/tendermint/tendermint/light/store"
	"github.com/tendermint/tendermint/types"
)
type mode byte
const (
	sequential mode = iota + 1
	skipping
	defaultPruningSize = 1000
	verifySkippingNumerator   = 9
	verifySkippingDenominator = 16
	defaultMaxClockDrift = 10 * time.Second
	defaultMaxBlockLag = 10 * time.Second
	defaultProviderTimeout = 10 * time.Second
)
type Option func(*Client)
func SequentialVerification() Option {
	return func(c *Client) { c.verificationMode = sequential }
}
func SkippingVerification(trustLevel tmmath.Fraction) Option {
	return func(c *Client) {
		c.verificationMode = skipping
		c.trustLevel = trustLevel
	}
}
func PruningSize(h uint16) Option {
	return func(c *Client) { c.pruningSize = h }
}
func Logger(l log.Logger) Option {
	return func(c *Client) { c.logger = l }
}