Documentation ¶
Index ¶
- Constants
- Variables
- func FilterName(addr common.Address, feedID common.Hash) string
- func NewDataSource(pr pipeline.Runner, jb job.Job, spec pipeline.Spec, lggr logger.Logger, ...) *datasource
- func NewTransmitter(lggr logger.Logger, cfgTracker ConfigTracker, rpcClient wsrpc.Client, ...) *mercuryTransmitter
- type ChainHeadTracker
- type ConfigPoller
- func (cp *ConfigPoller) Close() error
- func (cp *ConfigPoller) LatestBlockHeight(ctx context.Context) (blockHeight uint64, err error)
- func (cp *ConfigPoller) LatestConfig(ctx context.Context, changedInBlock uint64) (ocrtypes.ContractConfig, error)
- func (cp *ConfigPoller) LatestConfigDetails(ctx context.Context) (changedInBlock uint64, configDigest ocrtypes.ConfigDigest, err error)
- func (cp *ConfigPoller) Notify() <-chan struct{}
- func (cp *ConfigPoller) Replay(ctx context.Context, fromBlock int64) error
- func (cp *ConfigPoller) Start()
- type ConfigTracker
- type Fetcher
- type FullConfigFromLog
- type OffchainConfigDigester
- type Runner
- type Transmission
- type TransmitQueue
- func (tq *TransmitQueue) BlockingPop() (t *Transmission)
- func (tq *TransmitQueue) Close() error
- func (tq *TransmitQueue) HealthReport() map[string]error
- func (tq *TransmitQueue) IsEmpty() bool
- func (tq *TransmitQueue) Name() string
- func (tq *TransmitQueue) Push(req *pb.TransmitRequest, reportCtx ocrtypes.ReportContext) (ok bool)
- func (tq *TransmitQueue) Ready() error
- func (tq *TransmitQueue) Start(context.Context) error
- type Transmitter
Constants ¶
const ( MaxTransmitQueueSize = 10_000 TransmitTimeout = 5 * time.Second )
const (
// Mercury server error codes
DuplicateReport = 2
)
Variables ¶
var FeedScopedConfigSet common.Hash
FeedScopedConfigSet ConfigSet with FeedID for use with mercury (and multi-config DON)
var PayloadTypes = getPayloadTypes()
Functions ¶
func NewDataSource ¶
func NewTransmitter ¶
Types ¶
type ChainHeadTracker ¶ added in v2.2.0
type ChainHeadTracker interface { Client() evmclient.Client HeadTracker() httypes.HeadTracker }
type ConfigPoller ¶
type ConfigPoller struct {
// contains filtered or unexported fields
}
ConfigPoller defines the Mercury Config Poller
func NewConfigPoller ¶
func NewConfigPoller(lggr logger.Logger, destChainPoller logpoller.LogPoller, addr common.Address, feedId common.Hash, eventBroadcaster pg.EventBroadcaster) (*ConfigPoller, error)
NewConfigPoller creates a new Mercury ConfigPoller
func (*ConfigPoller) Close ¶ added in v2.3.0
func (cp *ConfigPoller) Close() error
Close the subscription to Postgres' notify events.
func (*ConfigPoller) LatestBlockHeight ¶
func (cp *ConfigPoller) LatestBlockHeight(ctx context.Context) (blockHeight uint64, err error)
LatestBlockHeight returns the latest block height from the logs
func (*ConfigPoller) LatestConfig ¶
func (cp *ConfigPoller) LatestConfig(ctx context.Context, changedInBlock uint64) (ocrtypes.ContractConfig, error)
LatestConfig returns the latest config from the logs on a certain block
func (*ConfigPoller) LatestConfigDetails ¶
func (cp *ConfigPoller) LatestConfigDetails(ctx context.Context) (changedInBlock uint64, configDigest ocrtypes.ConfigDigest, err error)
LatestConfigDetails returns the latest config details from the logs
func (*ConfigPoller) Notify ¶
func (cp *ConfigPoller) Notify() <-chan struct{}
Notify abstracts the logpoller.LogPoller Notify() implementation
func (*ConfigPoller) Replay ¶
func (cp *ConfigPoller) Replay(ctx context.Context, fromBlock int64) error
Replay abstracts the logpoller.LogPoller Replay() implementation
func (*ConfigPoller) Start ¶ added in v2.3.0
func (cp *ConfigPoller) Start()
Start the subscription to Postgres' notify events.
type ConfigTracker ¶
type FullConfigFromLog ¶
type FullConfigFromLog struct { ocrtypes.ContractConfig // contains filtered or unexported fields }
FullConfigFromLog defines the contract config with the feedID
type OffchainConfigDigester ¶
type OffchainConfigDigester struct { FeedID [32]byte ChainID uint64 ContractAddress common.Address }
func NewOffchainConfigDigester ¶
func NewOffchainConfigDigester(feedID [32]byte, chainID uint64, contractAddress common.Address) OffchainConfigDigester
func (OffchainConfigDigester) ConfigDigest ¶
func (d OffchainConfigDigester) ConfigDigest(cc types.ContractConfig) (types.ConfigDigest, error)
func (OffchainConfigDigester) ConfigDigestPrefix ¶
func (d OffchainConfigDigester) ConfigDigestPrefix() (types.ConfigDigestPrefix, error)
type Transmission ¶ added in v2.2.0
type Transmission struct { Req *pb.TransmitRequest // the payload to transmit ReportCtx ocrtypes.ReportContext // contains priority information (latest epoch/round wins) // contains filtered or unexported fields }
type TransmitQueue ¶ added in v2.2.0
type TransmitQueue struct { utils.StartStopOnce // contains filtered or unexported fields }
TransmitQueue is the high-level package that everything outside of this file should be using It stores pending transmissions, yielding the latest (highest priority) first to the caller
func NewTransmitQueue ¶ added in v2.2.0
func NewTransmitQueue(lggr logger.Logger, feedID string, maxlen int) *TransmitQueue
maxlen controls how many items will be stored in the queue 0 means unlimited - be careful, this can cause memory leaks
func (*TransmitQueue) BlockingPop ¶ added in v2.2.0
func (tq *TransmitQueue) BlockingPop() (t *Transmission)
BlockingPop will block until at least one item is in the heap, and then return it If the queue is closed, it will immediately return nil
func (*TransmitQueue) Close ¶ added in v2.2.0
func (tq *TransmitQueue) Close() error
func (*TransmitQueue) HealthReport ¶ added in v2.2.0
func (tq *TransmitQueue) HealthReport() map[string]error
func (*TransmitQueue) IsEmpty ¶ added in v2.2.0
func (tq *TransmitQueue) IsEmpty() bool
func (*TransmitQueue) Name ¶ added in v2.2.0
func (tq *TransmitQueue) Name() string
func (*TransmitQueue) Push ¶ added in v2.2.0
func (tq *TransmitQueue) Push(req *pb.TransmitRequest, reportCtx ocrtypes.ReportContext) (ok bool)
func (*TransmitQueue) Ready ¶ added in v2.2.0
func (tq *TransmitQueue) Ready() error
type Transmitter ¶
type Transmitter interface { relaymercury.Transmitter services.ServiceCtx }