|
package lite
|
|
|
|
import (
|
|
"github.com/tendermint/tendermint/types"
|
|
log "github.com/tendermint/tmlibs/log"
|
|
)
|
|
|
|
// Provider provides information for the lite client to sync validators.
|
|
// Examples: MemProvider, files.Provider, client.Provider, CacheProvider.
|
|
type Provider interface {
|
|
|
|
// LatestFullCommit returns the latest commit with minHeight <= height <=
|
|
// maxHeight.
|
|
// If maxHeight is zero, returns the latest where minHeight <= height.
|
|
LatestFullCommit(chainID string, minHeight, maxHeight int64) (FullCommit, error)
|
|
|
|
// Get the valset that corresponds to chainID and height and return.
|
|
// Height must be >= 1.
|
|
ValidatorSet(chainID string, height int64) (*types.ValidatorSet, error)
|
|
|
|
// Set a logger.
|
|
SetLogger(logger log.Logger)
|
|
}
|
|
|
|
// A provider that can also persist new information.
|
|
// Examples: MemProvider, files.Provider, CacheProvider.
|
|
type PersistentProvider interface {
|
|
Provider
|
|
|
|
// SaveFullCommit saves a FullCommit (without verification).
|
|
SaveFullCommit(fc FullCommit) error
|
|
}
|