package provider import ( "context" "github.com/tendermint/tendermint/types" ) //go:generate ../../scripts/mockery_generate.sh Provider // Provider provides information for the light client to sync (verification // happens in the client). type Provider interface { // LightBlock returns the LightBlock that corresponds to the given // height. // // 0 - the latest. // height must be >= 0. // // If the provider fails to fetch the LightBlock due to the IO or other // issues, an error will be returned. // If there's no LightBlock for the given height, ErrLightBlockNotFound // error is returned. LightBlock(ctx context.Context, height int64) (*types.LightBlock, error) // ReportEvidence reports an evidence of misbehavior. ReportEvidence(context.Context, types.Evidence) error // Returns the ID of a provider. For RPC providers it returns the IP address of the client // For p2p providers it returns a combination of NodeID and IP address ID() string }