Documentation
¶
Index ¶
- Variables
- func AccountToAddress(accounts []types.Account) (addresses []common.Address, err error)
- func FilterNamesFromRelayArgs(args commontypes.RelayArgs) (filterNames []string, err error)
- func IsLaterThan(incoming gethTypes.Log, existing gethTypes.Log) bool
- func NewChainReader(h httypes.HeadTracker) mercurytypes.ChainReader
- func NewCodec(conf types.CodecConfig) (commontypes.RemoteCodec, error)
- func NewConfigPoller(lggr logger.Logger, cfg CPConfig) (evmRelayTypes.ConfigPoller, error)
- func NewEVMEncoder(config *values.Map) (consensustypes.Encoder, error)
- func NewFunctionsProvider(chain legacyevm.Chain, rargs commontypes.RelayArgs, ...) (evmRelayTypes.FunctionsProvider, error)
- func NewKeepersOCR3ContractTransmitter(ocr2ContractTransmitter ocrtypes.ContractTransmitter) *ocr3keeperProviderContractTransmitter
- func NewLegacyChainsFromRelayerExtenders(exts EVMChainRelayerExtenderSlicer) *legacyevm.LegacyChains
- func NewMercuryChainReader(h httypes.HeadTracker) mercurytypes.ChainReader
- func NewMercuryProvider(cp commontypes.ConfigProvider, chainReader commontypes.ChainReader, ...) *mercuryProvider
- func NewOCRContractTransmitter(address gethcommon.Address, caller contractReader, contractABI abi.ABI, ...) (*contractTransmitter, error)
- func NewPluginProvider(chainReader types.ChainReader, codec types.Codec, ...) *pluginProvider
- func NewRoundRequestedDB(sqldb *sql.DB, oracleSpecID int32, lggr logger.Logger) *requestRoundDB
- func OnchainPublicKeyToAddress(publicKeys []types.OnchainPublicKey) (addresses []common.Address, err error)
- type CPConfig
- type CSAETHKeystore
- type ChainReaderService
- type ChainRelayerExt
- func (s *ChainRelayerExt) Chain() legacyevm.Chain
- func (s *ChainRelayerExt) Close() (err error)
- func (s *ChainRelayerExt) GetChainStatus(ctx context.Context) (commontypes.ChainStatus, error)
- func (s *ChainRelayerExt) HealthReport() map[string]error
- func (s *ChainRelayerExt) ID() string
- func (s *ChainRelayerExt) ListNodeStatuses(ctx context.Context, pageSize int32, pageToken string) (stats []commontypes.NodeStatus, nextPageToken string, total int, err error)
- func (s *ChainRelayerExt) Name() string
- func (s *ChainRelayerExt) Ready() (err error)
- func (s *ChainRelayerExt) Start(ctx context.Context) error
- func (s *ChainRelayerExt) Transact(ctx context.Context, from, to string, amount *big.Int, balanceCheck bool) error
- type ChainRelayerExtenders
- type ContractTransmitter
- type DKGProvider
- type EVMChainRelayerExtender
- type EVMChainRelayerExtenderSlicer
- type LogDecoder
- type LoopRelayAdapter
- type LoopRelayer
- type OCR2KeeperProvider
- type OCR2KeeperProviderOpts
- type OCR2KeeperRelayer
- type OCR2VRFProvider
- type OCR2VRFRelayer
- type Relayer
- func (r *Relayer) Close() error
- func (r *Relayer) HealthReport() (report map[string]error)
- func (r *Relayer) Name() string
- func (r *Relayer) NewAutomationProvider(rargs commontypes.RelayArgs, pargs commontypes.PluginArgs) (commontypes.AutomationProvider, error)
- func (r *Relayer) NewConfigProvider(args commontypes.RelayArgs) (configProvider commontypes.ConfigProvider, err error)
- func (r *Relayer) NewFunctionsProvider(rargs commontypes.RelayArgs, pargs commontypes.PluginArgs) (commontypes.FunctionsProvider, error)
- func (r *Relayer) NewLLOProvider(rargs commontypes.RelayArgs, pargs commontypes.PluginArgs) (commontypes.LLOProvider, error)
- func (r *Relayer) NewMedianProvider(rargs commontypes.RelayArgs, pargs commontypes.PluginArgs) (commontypes.MedianProvider, error)
- func (r *Relayer) NewMercuryProvider(rargs commontypes.RelayArgs, pargs commontypes.PluginArgs) (commontypes.MercuryProvider, error)
- func (r *Relayer) NewPluginProvider(rargs commontypes.RelayArgs, pargs commontypes.PluginArgs) (commontypes.PluginProvider, error)
- func (r *Relayer) Ready() error
- func (r *Relayer) Start(context.Context) error
- type RelayerOpts
- type ReportToEthMetadata
- type RequestRoundDB
- type RequestRoundTracker
- func (t *RequestRoundTracker) Close() error
- func (t *RequestRoundTracker) HandleLog(lb log.Broadcast)
- func (t *RequestRoundTracker) IsV2Job() bool
- func (t *RequestRoundTracker) JobID() int32
- func (t *RequestRoundTracker) LatestRoundRequested(_ context.Context, lookback time.Duration) (configDigest ocrtypes.ConfigDigest, epoch uint32, round uint8, err error)
- func (t *RequestRoundTracker) Start() error
- type Transmitter
Constants ¶
This section is empty.
Variables ¶
var ErrCorruptEVMChain = errors.New("corrupt evm chain")
var (
ErrInitializationFailure = fmt.Errorf("failed to initialize registry")
)
var ErrNoChains = errors.New("no EVM chains loaded")
ErrNoChains indicates that no EVM chains have been started
Functions ¶
func AccountToAddress ¶
func FilterNamesFromRelayArgs ¶
func FilterNamesFromRelayArgs(args commontypes.RelayArgs) (filterNames []string, err error)
func IsLaterThan ¶
IsLaterThan returns true if the first log was emitted "after" the second log from the blockchain's point of view
func NewChainReader ¶
func NewChainReader(h httypes.HeadTracker) mercurytypes.ChainReader
func NewCodec ¶
func NewCodec(conf types.CodecConfig) (commontypes.RemoteCodec, error)
NewCodec creates a new commontypes.RemoteCodec for EVM. Note that names in the ABI are converted to Go names using abi.ToCamelCase, this is per convention in abi.MakeTopics, abi.Arguments.Pack etc. This allows names on-chain to be in go convention when generated. It means that if you need to use a codec.Modifier to reference a field you need to use the Go name instead of the name on-chain. eg: rename FooBar -> Bar, not foo_bar_ to Bar if the name on-chain is foo_bar_
func NewConfigPoller ¶
func NewConfigPoller(lggr logger.Logger, cfg CPConfig) (evmRelayTypes.ConfigPoller, error)
func NewEVMEncoder ¶
func NewEVMEncoder(config *values.Map) (consensustypes.Encoder, error)
func NewFunctionsProvider ¶
func NewFunctionsProvider(chain legacyevm.Chain, rargs commontypes.RelayArgs, pargs commontypes.PluginArgs, lggr logger.Logger, ethKeystore keystore.Eth, pluginType functionsRelay.FunctionsPluginType) (evmRelayTypes.FunctionsProvider, error)
func NewKeepersOCR3ContractTransmitter ¶
func NewKeepersOCR3ContractTransmitter(ocr2ContractTransmitter ocrtypes.ContractTransmitter) *ocr3keeperProviderContractTransmitter
func NewLegacyChainsFromRelayerExtenders ¶
func NewLegacyChainsFromRelayerExtenders(exts EVMChainRelayerExtenderSlicer) *legacyevm.LegacyChains
func NewMercuryChainReader ¶
func NewMercuryChainReader(h httypes.HeadTracker) mercurytypes.ChainReader
func NewMercuryProvider ¶
func NewMercuryProvider( cp commontypes.ConfigProvider, chainReader commontypes.ChainReader, codec commontypes.Codec, mercuryChainReader mercurytypes.ChainReader, transmitter evmmercury.Transmitter, reportCodecV1 v1.ReportCodec, reportCodecV2 v2.ReportCodec, reportCodecV3 v3.ReportCodec, lggr logger.Logger, ) *mercuryProvider
func NewOCRContractTransmitter ¶
func NewOCRContractTransmitter( address gethcommon.Address, caller contractReader, contractABI abi.ABI, transmitter Transmitter, lp logpoller.LogPoller, lggr logger.Logger, reportToEvmTxMeta ReportToEthMetadata, ) (*contractTransmitter, error)
func NewPluginProvider ¶
func NewPluginProvider( chainReader types.ChainReader, codec types.Codec, contractTransmitter ocrtypes.ContractTransmitter, configWatcher *configWatcher, lggr logger.Logger, ) *pluginProvider
func NewRoundRequestedDB ¶
NewDB returns a new DB scoped to this oracleSpecID
func OnchainPublicKeyToAddress ¶
func OnchainPublicKeyToAddress(publicKeys []types.OnchainPublicKey) (addresses []common.Address, err error)
Types ¶
type ChainReaderService ¶
type ChainReaderService interface { services.ServiceCtx commontypes.ChainReader }
func NewChainReaderService ¶
func NewChainReaderService(lggr logger.Logger, lp logpoller.LogPoller, chain legacyevm.Chain, config types.ChainReaderConfig) (ChainReaderService, error)
NewChainReaderService is a constructor for ChainReader, returns nil if there is any error
type ChainRelayerExt ¶
type ChainRelayerExt struct {
// contains filtered or unexported fields
}
implements OneChain
func (*ChainRelayerExt) Chain ¶
func (s *ChainRelayerExt) Chain() legacyevm.Chain
func (*ChainRelayerExt) Close ¶
func (s *ChainRelayerExt) Close() (err error)
func (*ChainRelayerExt) GetChainStatus ¶
func (s *ChainRelayerExt) GetChainStatus(ctx context.Context) (commontypes.ChainStatus, error)
func (*ChainRelayerExt) HealthReport ¶
func (s *ChainRelayerExt) HealthReport() map[string]error
func (*ChainRelayerExt) ID ¶
func (s *ChainRelayerExt) ID() string
func (*ChainRelayerExt) ListNodeStatuses ¶
func (s *ChainRelayerExt) ListNodeStatuses(ctx context.Context, pageSize int32, pageToken string) (stats []commontypes.NodeStatus, nextPageToken string, total int, err error)
func (*ChainRelayerExt) Name ¶
func (s *ChainRelayerExt) Name() string
func (*ChainRelayerExt) Ready ¶
func (s *ChainRelayerExt) Ready() (err error)
type ChainRelayerExtenders ¶
type ChainRelayerExtenders struct {
// contains filtered or unexported fields
}
func NewChainRelayerExtenders ¶
func NewChainRelayerExtenders(ctx context.Context, opts legacyevm.ChainRelayExtenderConfig) (*ChainRelayerExtenders, error)
func (*ChainRelayerExtenders) AppConfig ¶
func (c *ChainRelayerExtenders) AppConfig() legacyevm.AppConfig
func (*ChainRelayerExtenders) Len ¶
func (c *ChainRelayerExtenders) Len() int
func (*ChainRelayerExtenders) Slice ¶
func (c *ChainRelayerExtenders) Slice() []EVMChainRelayerExtender
type ContractTransmitter ¶
type ContractTransmitter interface { services.ServiceCtx ocrtypes.ContractTransmitter }
type DKGProvider ¶
type DKGProvider interface { commontypes.Plugin }
DKGProvider provides all components needed for a DKG plugin.
type EVMChainRelayerExtender ¶
type EVMChainRelayerExtender interface { loop.RelayerExt Chain() legacyevm.Chain }
type EVMChainRelayerExtenderSlicer ¶
type EVMChainRelayerExtenderSlicer interface { Slice() []EVMChainRelayerExtender Len() int AppConfig() legacyevm.AppConfig }
type LogDecoder ¶
type LogDecoder interface { EventSig() common.Hash Decode(rawLog []byte) (ocrtypes.ContractConfig, error) }
var ( OCR2AggregatorTransmissionContractABI abi.ABI OCR2AggregatorLogDecoder LogDecoder )
type LoopRelayer ¶
func NewLoopRelayServerAdapter ¶
func NewLoopRelayServerAdapter(r *Relayer, cs EVMChainRelayerExtender) *LoopRelayer
func (*LoopRelayer) Chain ¶
func (la *LoopRelayer) Chain() legacyevm.Chain
type OCR2KeeperProvider ¶
type OCR2KeeperProvider interface { commontypes.Plugin Registry() automation.Registry Encoder() automation.Encoder TransmitEventProvider() automation.EventProvider BlockSubscriber() automation.BlockSubscriber PayloadBuilder() automation.PayloadBuilder UpkeepStateStore() automation.UpkeepStateStore LogEventProvider() automation.LogEventProvider LogRecoverer() automation.LogRecoverer UpkeepProvider() automation.ConditionalUpkeepProvider }
OCR2KeeperProvider provides all components needed for a OCR2Keeper plugin.
type OCR2KeeperProviderOpts ¶
type OCR2KeeperProviderOpts struct { RArgs commontypes.RelayArgs PArgs commontypes.PluginArgs InstanceID int }
OCR2KeeperProviderOpts is the custom options to create a keeper provider
type OCR2KeeperRelayer ¶
type OCR2KeeperRelayer interface {
NewOCR2KeeperProvider(rargs commontypes.RelayArgs, pargs commontypes.PluginArgs) (OCR2KeeperProvider, error)
}
OCR2KeeperRelayer contains the relayer and instantiating functions for OCR2Keeper providers.
type OCR2VRFProvider ¶
type OCR2VRFProvider interface { commontypes.Plugin }
OCR2VRFProvider provides all components needed for a OCR2VRF plugin.
type OCR2VRFRelayer ¶
type OCR2VRFRelayer interface { NewDKGProvider(rargs commontypes.RelayArgs, pargs commontypes.PluginArgs) (DKGProvider, error) NewOCR2VRFProvider(rargs commontypes.RelayArgs, pargs commontypes.PluginArgs) (OCR2VRFProvider, error) }
OCR2VRFRelayer contains the relayer and instantiating functions for OCR2VRF providers.
type Relayer ¶
type Relayer struct {
// contains filtered or unexported fields
}
func NewRelayer ¶
func (*Relayer) HealthReport ¶
func (*Relayer) NewAutomationProvider ¶
func (r *Relayer) NewAutomationProvider(rargs commontypes.RelayArgs, pargs commontypes.PluginArgs) (commontypes.AutomationProvider, error)
func (*Relayer) NewConfigProvider ¶
func (r *Relayer) NewConfigProvider(args commontypes.RelayArgs) (configProvider commontypes.ConfigProvider, err error)
NewConfigProvider is called by bootstrap jobs
func (*Relayer) NewFunctionsProvider ¶
func (r *Relayer) NewFunctionsProvider(rargs commontypes.RelayArgs, pargs commontypes.PluginArgs) (commontypes.FunctionsProvider, error)
func (*Relayer) NewLLOProvider ¶
func (r *Relayer) NewLLOProvider(rargs commontypes.RelayArgs, pargs commontypes.PluginArgs) (commontypes.LLOProvider, error)
func (*Relayer) NewMedianProvider ¶
func (r *Relayer) NewMedianProvider(rargs commontypes.RelayArgs, pargs commontypes.PluginArgs) (commontypes.MedianProvider, error)
func (*Relayer) NewMercuryProvider ¶
func (r *Relayer) NewMercuryProvider(rargs commontypes.RelayArgs, pargs commontypes.PluginArgs) (commontypes.MercuryProvider, error)
func (*Relayer) NewPluginProvider ¶
func (r *Relayer) NewPluginProvider(rargs commontypes.RelayArgs, pargs commontypes.PluginArgs) (commontypes.PluginProvider, error)
type RelayerOpts ¶
func (RelayerOpts) Validate ¶
func (c RelayerOpts) Validate() error
type RequestRoundDB ¶
type RequestRoundDB interface { SaveLatestRoundRequested(tx pg.Queryer, rr ocr2aggregator.OCR2AggregatorRoundRequested) error LoadLatestRoundRequested() (rr ocr2aggregator.OCR2AggregatorRoundRequested, err error) }
RequestRoundDB stores requested rounds for querying by the median plugin.
type RequestRoundTracker ¶
type RequestRoundTracker struct { services.StateMachine // contains filtered or unexported fields }
RequestRoundTracker subscribes to new request round logs.
func NewRequestRoundTracker ¶
func NewRequestRoundTracker( contract *offchain_aggregator_wrapper.OffchainAggregator, contractFilterer *ocr2aggregator.OCR2AggregatorFilterer, ethClient evmclient.Client, logBroadcaster log.Broadcaster, jobID int32, lggr logger.Logger, db *sqlx.DB, odb RequestRoundDB, chain ocrcommon.Config, qConfig pg.QConfig, ) (o *RequestRoundTracker)
NewRequestRoundTracker makes a new RequestRoundTracker
func (*RequestRoundTracker) Close ¶
func (t *RequestRoundTracker) Close() error
Close should be called after teardown of the OCR job relying on this tracker
func (*RequestRoundTracker) HandleLog ¶
func (t *RequestRoundTracker) HandleLog(lb log.Broadcast)
HandleLog complies with LogListener interface It is not thread safe
func (*RequestRoundTracker) IsV2Job ¶
func (t *RequestRoundTracker) IsV2Job() bool
IsV2Job complies with LogListener interface
func (*RequestRoundTracker) JobID ¶
func (t *RequestRoundTracker) JobID() int32
JobID complies with LogListener interface
func (*RequestRoundTracker) LatestRoundRequested ¶
func (t *RequestRoundTracker) LatestRoundRequested(_ context.Context, lookback time.Duration) (configDigest ocrtypes.ConfigDigest, epoch uint32, round uint8, err error)
LatestRoundRequested returns the configDigest, epoch, and round from the latest RoundRequested event emitted by the contract. LatestRoundRequested may or may not return a result if the latest such event was emitted in a block b such that b.timestamp < tip.timestamp - lookback.
If no event is found, LatestRoundRequested should return zero values, not an error. An error should only be returned if an actual error occurred during execution, e.g. because there was an error querying the blockchain or the database.
As an optimization, this function may also return zero values, if no RoundRequested event has been emitted after the latest NewTransmission event.
func (*RequestRoundTracker) Start ¶
func (t *RequestRoundTracker) Start() error
Start must be called before logs can be delivered It ought to be called before starting OCR
type Transmitter ¶
type Transmitter interface { CreateEthTransaction(ctx context.Context, toAddress gethcommon.Address, payload []byte, txMeta *txmgr.TxMeta) error FromAddress() gethcommon.Address }
Source Files
¶
- address.go
- binding.go
- bindings.go
- cap_encoder.go
- chain_reader.go
- codec.go
- config_poller.go
- contract_transmitter.go
- decoder.go
- encoder.go
- event_binding.go
- evm.go
- functions.go
- loop_impl.go
- median.go
- mercury_config_provider.go
- mercury_provider.go
- method_binding.go
- ocr2aggregator_decoder.go
- ocr2keeper.go
- ocr2vrf.go
- parsed_types.go
- plugin_provider.go
- relayer_extender.go
- request_round_db.go
- request_round_tracker.go
- standard_config_provider.go