Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func SanityCheckLocalConfig ¶
func SanityCheckLocalConfig(c types.LocalConfig) (err error)
Types ¶
type Bootstrapper ¶
type Bootstrapper struct {
// contains filtered or unexported fields
}
Bootstrapper connects to a particular feed and listens for config changes, but does not participate in the protocol. It merely acts as a bootstrap node for peer discovery.
func NewBootstrapper ¶
func NewBootstrapper(args BootstrapperArgs) (*Bootstrapper, error)
func (*Bootstrapper) Close ¶
func (b *Bootstrapper) Close() error
Close shuts down a Bootstrapper. Can safely be called multiple times.
type BootstrapperArgs ¶
type BootstrapperArgs struct {
BootstrapperFactory types.BootstrapperFactory
V2Bootstrappers []commontypes.BootstrapperLocator
ContractConfigTracker types.ContractConfigTracker
Database types.ConfigDatabase
LocalConfig types.LocalConfig
Logger commontypes.Logger
MonitoringEndpoint commontypes.MonitoringEndpoint
OffchainConfigDigester types.OffchainConfigDigester
}
type MercuryOracleArgs ¶
type MercuryOracleArgs struct {
// A factory for producing network endpoints. A network endpoints consists of
// networking methods a consumer must implement to allow a node to
// communicate with other participating nodes.
BinaryNetworkEndpointFactory types.BinaryNetworkEndpointFactory
// V2Bootstrappers is the list of bootstrap node addresses and IDs for the v2 stack.
V2Bootstrappers []commontypes.BootstrapperLocator
// Tracks configuration changes.
ContractConfigTracker types.ContractConfigTracker
// Interfaces with the OCR2Aggregator smart contract's transmission related logic.
ContractTransmitter types.ContractTransmitter
// Database provides persistent storage.
Database ocr3types.Database
// LocalConfig contains oracle-specific configuration details which are not
// mandated by the on-chain configuration specification via OffchainAggregatoo.SetConfig.
LocalConfig types.LocalConfig
// Logger logs stuff.
Logger commontypes.Logger
// Enables adding metrics to track. This may be nil.
MetricsRegisterer prometheus.Registerer
// Used to send logs to a monitor.
MonitoringEndpoint commontypes.MonitoringEndpoint
// Computes a config digest using purely offchain logic.
OffchainConfigDigester types.OffchainConfigDigester
// OffchainKeyring contains the secret keys needed for the OCR protocol, and methods
// which use those keys without exposing them to the rest of the application.
OffchainKeyring types.OffchainKeyring
// OnchainKeyring is used to sign reports that can be validated
// offchain and by the target contract.
OnchainKeyring types.OnchainKeyring
// ReportingPluginFactory creates ReportingPlugins that determine the
// "application logic" used in an OCR protocol instance.
MercuryPluginFactory ocr3types.MercuryPluginFactory
}
MercuryOracleArgs is used for OCR3 protocol instances that only use the Mercury-specific subset of OCR3 features.
type OCR2OracleArgs ¶
type OCR2OracleArgs struct {
// A factory for producing network endpoints. A network endpoints consists of
// networking methods a consumer must implement to allow a node to
// communicate with other participating nodes.
BinaryNetworkEndpointFactory types.BinaryNetworkEndpointFactory
// V2Bootstrappers is the list of bootstrap node addresses and IDs for the v2 stack.
V2Bootstrappers []commontypes.BootstrapperLocator
// Tracks configuration changes.
ContractConfigTracker types.ContractConfigTracker
// Interfaces with the OCR2Aggregator smart contract's transmission related logic.
ContractTransmitter types.ContractTransmitter
// Database provides persistent storage.
Database types.Database
// LocalConfig contains oracle-specific configuration details which are not
// mandated by the on-chain configuration specification via OffchainAggregatoo.SetConfig.
LocalConfig types.LocalConfig
// Logger logs stuff.
Logger commontypes.Logger
// Used to send logs to a monitor.
MonitoringEndpoint commontypes.MonitoringEndpoint
// Enables adding metrics to track. This may be nil.
MetricsRegisterer prometheus.Registerer
// Computes a config digest using purely offchain logic.
OffchainConfigDigester types.OffchainConfigDigester
// OffchainKeyring contains the secret keys needed for the OCR protocol, and methods
// which use those keys without exposing them to the rest of the application.
OffchainKeyring types.OffchainKeyring
// OnchainKeyring is used to sign reports that can be validated
// offchain and by the target contract.
OnchainKeyring types.OnchainKeyring
// ReportingPluginFactory creates ReportingPlugins that determine the
// "application logic" used in a OCR2 protocol instance.
ReportingPluginFactory types.ReportingPluginFactory
}
OCR2OracleArgs contains the configuration and services a caller must provide, in order to run the offchainreporting protocol.
type OCR3OracleArgs ¶
type OCR3OracleArgs[RI any] struct { // A factory for producing network endpoints. A network endpoints consists of // networking methods a consumer must implement to allow a node to // communicate with other participating nodes. BinaryNetworkEndpointFactory types.BinaryNetworkEndpointFactory // V2Bootstrappers is the list of bootstrap node addresses and IDs for the v2 stack. V2Bootstrappers []commontypes.BootstrapperLocator // Tracks configuration changes. ContractConfigTracker types.ContractConfigTracker // Transmit reports to the targeted system (e.g. a blockchain) ContractTransmitter ocr3types.ContractTransmitter[RI] // Database provides persistent storage. Database ocr3types.Database // LocalConfig contains oracle-specific configuration details which are not // mandated by the on-chain configuration specification via OffchainAggregatoo.SetConfig. LocalConfig types.LocalConfig // Logger logs stuff. Logger commontypes.Logger // Enables adding metrics to track. This may be nil. MetricsRegisterer prometheus.Registerer // Used to send logs to a monitor. MonitoringEndpoint commontypes.MonitoringEndpoint // Computes a config digest using purely offchain logic. OffchainConfigDigester types.OffchainConfigDigester // OffchainKeyring contains the secret keys needed for the OCR protocol, and methods // which use those keys without exposing them to the rest of the application. OffchainKeyring types.OffchainKeyring // OnchainKeyring is used to sign reports that can be validated // offchain and by the target contract. OnchainKeyring ocr3types.OnchainKeyring[RI] // PluginFactory creates Plugins that determine the "application logic" used // in a protocol instance. ReportingPluginFactory ocr3types.ReportingPluginFactory[RI] }
type OCR3_1OracleArgs ¶
type OCR3_1OracleArgs[RI any] struct { // A factory for producing network endpoints. A network endpoints consists of // networking methods a consumer must implement to allow a node to // communicate with other participating nodes. BinaryNetworkEndpointFactory types.BinaryNetworkEndpoint2Factory // V2Bootstrappers is the list of bootstrap node addresses and IDs for the v2 stack. V2Bootstrappers []commontypes.BootstrapperLocator // Tracks configuration changes. ContractConfigTracker types.ContractConfigTracker // Transmit reports to the targeted system (e.g. a blockchain) ContractTransmitter ocr3types.ContractTransmitter[RI] // Database provides persistent storage. Database ocr3_1types.Database // KeyValueDatabaseFactory produces KeyValueDatabase for keeping the reporting plugins' state consistently across oracles. KeyValueDatabaseFactory ocr3_1types.KeyValueDatabaseFactory // LocalConfig contains oracle-specific configuration details which are not // mandated by the on-chain configuration specification via OffchainAggregatoo.SetConfig. LocalConfig types.LocalConfig // Logger logs stuff. Logger commontypes.Logger // Enables adding metrics to track. This may be nil. MetricsRegisterer prometheus.Registerer // Used to send logs to a monitor. MonitoringEndpoint commontypes.MonitoringEndpoint // Computes a config digest using purely offchain logic. OffchainConfigDigester types.OffchainConfigDigester // OffchainKeyring contains the secret keys needed for the OCR protocol, and methods // which use those keys without exposing them to the rest of the application. OffchainKeyring types.OffchainKeyring // OnchainKeyring is used to sign reports that can be validated // offchain and by the target contract. OnchainKeyring ocr3types.OnchainKeyring[RI] // PluginFactory creates Plugins that determine the "application logic" used // in a protocol instance. ReportingPluginFactory ocr3_1types.ReportingPluginFactory[RI] }
type Oracle ¶
func NewOracle ¶
func NewOracle(args OracleArgs) (Oracle, error)
NewOracle returns a newly initialized Oracle using the provided services and configuration.
type OracleArgs ¶
type OracleArgs interface {
// contains filtered or unexported methods
}
Directories
¶
| Path | Synopsis |
|---|---|
|
chains
|
|
|
Package confighelper provides helpers for converting between the gethwrappers/OCR2Aggregator.SetConfig event and types.ContractConfig
|
Package confighelper provides helpers for converting between the gethwrappers/OCR2Aggregator.SetConfig event and types.ContractConfig |
|
internal
|
|
|
managed
Package managed provides "managed" versions of Oracle and Bootstrapper that perform garbage collection, track on-chain configuration changes, serializes messages to binary, etc...
|
Package managed provides "managed" versions of Oracle and Bootstrapper that perform garbage collection, track on-chain configuration changes, serializes messages to binary, etc... |
|
shim
Package shim contains implementations of internal types in terms of the external types
|
Package shim contains implementations of internal types in terms of the external types |
|
Package types contains the types and interfaces a consumer of the OCR library needs to be aware of
|
Package types contains the types and interfaces a consumer of the OCR library needs to be aware of |
Click to show internal directories.
Click to hide internal directories.