Documentation ¶
Index ¶
- Constants
- Variables
- func BuildSamplePayload(report []byte, reportCtx ocrtypes.ReportContext, ...) []byte
- func FeedIDFromReport(report ocrtypes.Report) (feedID types.FeedID, err error)
- func FilterName(addr common.Address, feedID common.Hash) string
- func MustHexToConfigDigest(s string) (cd ocrtypes.ConfigDigest)
- func NewTransmitter(lggr logger.Logger, cfgTracker ConfigTracker, rpcClient wsrpc.Client, ...) *mercuryTransmitter
- 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 FullConfigFromLog
- type ORM
- type OffchainConfigDigester
- type PersistenceManager
- func (pm *PersistenceManager) AsyncDelete(req *pb.TransmitRequest)
- func (pm *PersistenceManager) Close() error
- func (pm *PersistenceManager) Delete(ctx context.Context, req *pb.TransmitRequest) error
- func (pm *PersistenceManager) Insert(ctx context.Context, req *pb.TransmitRequest, reportCtx ocrtypes.ReportContext) error
- func (pm *PersistenceManager) Load(ctx context.Context) ([]*Transmission, error)
- func (pm *PersistenceManager) Start(ctx context.Context) error
- 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 (
// 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 BuildSamplePayload ¶ added in v2.5.0
func BuildSamplePayload(report []byte, reportCtx ocrtypes.ReportContext, sigs []ocrtypes.AttributedOnchainSignature) []byte
func FeedIDFromReport ¶ added in v2.5.0
func MustHexToConfigDigest ¶ added in v2.5.0
func MustHexToConfigDigest(s string) (cd ocrtypes.ConfigDigest)
Types ¶
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 ORM ¶ added in v2.4.0
type ORM interface { InsertTransmitRequest(req *pb.TransmitRequest, reportCtx ocrtypes.ReportContext, qopts ...pg.QOpt) error DeleteTransmitRequests(reqs []*pb.TransmitRequest, qopts ...pg.QOpt) error GetTransmitRequests(qopts ...pg.QOpt) ([]*Transmission, error) PruneTransmitRequests(maxSize int, qopts ...pg.QOpt) error LatestReport(ctx context.Context, feedID [32]byte, qopts ...pg.QOpt) (report []byte, err error) }
type OffchainConfigDigester ¶
type OffchainConfigDigester struct { FeedID types.FeedID ChainID *big.Int ContractAddress common.Address }
func (OffchainConfigDigester) ConfigDigest ¶
func (d OffchainConfigDigester) ConfigDigest(cc ocrtypes.ContractConfig) (ocrtypes.ConfigDigest, error)
func (OffchainConfigDigester) ConfigDigestPrefix ¶
func (d OffchainConfigDigester) ConfigDigestPrefix() (ocrtypes.ConfigDigestPrefix, error)
type PersistenceManager ¶ added in v2.4.0
type PersistenceManager struct {
// contains filtered or unexported fields
}
func NewPersistenceManager ¶ added in v2.4.0
func NewPersistenceManager(lggr logger.Logger, orm ORM) *PersistenceManager
func (*PersistenceManager) AsyncDelete ¶ added in v2.4.0
func (pm *PersistenceManager) AsyncDelete(req *pb.TransmitRequest)
func (*PersistenceManager) Close ¶ added in v2.4.0
func (pm *PersistenceManager) Close() error
func (*PersistenceManager) Delete ¶ added in v2.4.0
func (pm *PersistenceManager) Delete(ctx context.Context, req *pb.TransmitRequest) error
func (*PersistenceManager) Insert ¶ added in v2.4.0
func (pm *PersistenceManager) Insert(ctx context.Context, req *pb.TransmitRequest, reportCtx ocrtypes.ReportContext) error
func (*PersistenceManager) Load ¶ added in v2.4.0
func (pm *PersistenceManager) Load(ctx context.Context) ([]*Transmission, 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, transmissions []*Transmission, asyncDeleter asyncDeleter) *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 }