evm

package
v1.12.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 14, 2023 License: MIT Imports: 40 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ConfigSet = common.HexToHash("0x1591690b8638f5fb2dbec82ac741805ac5da8b45dc5263f4875b0496fdce4e05")

Common to all OCR2 evm based contracts: https://github.com/smartcontractkit/libocr/blob/master/contract2/OCR2Abstract.sol#L23

Functions

func AccountToAddress added in v1.5.0

func AccountToAddress(accounts []types.Account) (addresses []common.Address, err error)

func ConfigFromLog added in v1.5.0

func ConfigFromLog(logData []byte) (ocrtypes.ContractConfig, error)

func IsLaterThan

func IsLaterThan(incoming gethTypes.Log, existing gethTypes.Log) bool

IsLaterThan returns true if the first log was emitted "after" the second log from the blockchain's point of view

func NewOCR2DRProvider added in v1.11.0

func NewOCR2DRProvider(chainSet evm.ChainSet, rargs relaytypes.RelayArgs, pargs relaytypes.PluginArgs, lggr logger.Logger, ethKeystore keystore.Eth) (relaytypes.Plugin, error)

func NewRoundRequestedDB added in v1.3.0

func NewRoundRequestedDB(sqldb *sql.DB, oracleSpecID int32, lggr logger.Logger) *requestRoundDB

NewDB returns a new DB scoped to this oracleSpecID

func OnchainPublicKeyToAddress added in v1.5.0

func OnchainPublicKeyToAddress(publicKeys []types.OnchainPublicKey) (addresses []common.Address, err error)

Types

type ConfigPoller added in v1.5.0

type ConfigPoller struct {
	// contains filtered or unexported fields
}

func NewConfigPoller added in v1.5.0

func NewConfigPoller(lggr logger.Logger, destChainPoller logpoller.LogPoller, addr common.Address) (*ConfigPoller, error)

func (*ConfigPoller) LatestBlockHeight added in v1.5.0

func (lp *ConfigPoller) LatestBlockHeight(ctx context.Context) (blockHeight uint64, err error)

func (*ConfigPoller) LatestConfig added in v1.5.0

func (lp *ConfigPoller) LatestConfig(ctx context.Context, changedInBlock uint64) (ocrtypes.ContractConfig, error)

func (*ConfigPoller) LatestConfigDetails added in v1.5.0

func (lp *ConfigPoller) LatestConfigDetails(ctx context.Context) (changedInBlock uint64, configDigest ocrtypes.ConfigDigest, err error)

func (*ConfigPoller) Notify added in v1.5.0

func (lp *ConfigPoller) Notify() <-chan struct{}

type ContractTransmitter

type ContractTransmitter struct {
	// contains filtered or unexported fields
}

func NewOCRContractTransmitter

func NewOCRContractTransmitter(
	address gethcommon.Address,
	caller contractReader,
	contractABI abi.ABI,
	transmitter Transmitter,
	lp logpoller.LogPoller,
	lggr logger.Logger,
) (*ContractTransmitter, error)

func (*ContractTransmitter) FromAccount

func (oc *ContractTransmitter) FromAccount() ocrtypes.Account

FromAccount returns the account from which the transmitter invokes the contract

func (*ContractTransmitter) LatestConfigDigestAndEpoch

func (oc *ContractTransmitter) LatestConfigDigestAndEpoch(ctx context.Context) (ocrtypes.ConfigDigest, uint32, error)

LatestConfigDigestAndEpoch retrieves the latest config digest and epoch from the OCR2 contract. It is plugin independent, in particular avoids use of the plugin specific generated evm wrappers by using the evm client Call directly for functions/events that are part of OCR2Abstract.

func (*ContractTransmitter) Transmit

Transmit sends the report to the on-chain smart contract's Transmit method.

type DKGProvider added in v1.6.0

type DKGProvider interface {
	relaytypes.Plugin
}

DKGProvider provides all components needed for a DKG plugin.

type OCR2AbstractConfigSet added in v1.5.0

type OCR2AbstractConfigSet struct {
	PreviousConfigBlockNumber uint32
	ConfigDigest              [32]byte
	ConfigCount               uint64
	Signers                   []common.Address
	Transmitters              []common.Address
	F                         uint8
	OnchainConfig             []byte
	OffchainConfigVersion     uint64
	OffchainConfig            []byte
}

type OCR2KeeperProvider added in v1.10.0

type OCR2KeeperProvider interface {
	relaytypes.Plugin
}

OCR2KeeperProvider provides all components needed for a OCR2Keeper plugin.

type OCR2KeeperProviderOpts added in v1.10.0

type OCR2KeeperProviderOpts struct {
	RArgs      relaytypes.RelayArgs
	PArgs      relaytypes.PluginArgs
	InstanceID int
}

OCR2KeeperProviderOpts is the custom options to create a keeper provider

type OCR2KeeperRelayer added in v1.10.0

type OCR2KeeperRelayer interface {
	NewOCR2KeeperProvider(rargs relaytypes.RelayArgs, pargs relaytypes.PluginArgs) (OCR2KeeperProvider, error)
}

OCR2KeeperRelayer contains the relayer and instantiating functions for OCR2Keeper providers.

func NewOCR2KeeperRelayer added in v1.10.0

func NewOCR2KeeperRelayer(db *sqlx.DB, chain evm.Chain, pr pipeline.Runner, spec job.Job, lggr logger.Logger) OCR2KeeperRelayer

NewOCR2KeeperRelayer is the constructor of ocr2keeperRelayer

type OCR2VRFProvider added in v1.6.0

type OCR2VRFProvider interface {
	relaytypes.Plugin
}

OCR2VRFProvider provides all components needed for a OCR2VRF plugin.

type OCR2VRFRelayer added in v1.6.0

type OCR2VRFRelayer interface {
	NewDKGProvider(rargs relaytypes.RelayArgs, pargs relaytypes.PluginArgs) (DKGProvider, error)
	NewOCR2VRFProvider(rargs relaytypes.RelayArgs, pargs relaytypes.PluginArgs) (OCR2VRFProvider, error)
}

OCR2VRFRelayer contains the relayer and instantiating functions for OCR2VRF providers.

func NewOCR2VRFRelayer added in v1.6.0

func NewOCR2VRFRelayer(db *sqlx.DB, chain evm.Chain, lggr logger.Logger, ethKeystore keystore.Eth) OCR2VRFRelayer

type Relayer

type Relayer struct {
	// contains filtered or unexported fields
}

func NewRelayer

func NewRelayer(db *sqlx.DB, chainSet evm.ChainSet, lggr logger.Logger, cfg RelayerConfig, ethKeystore keystore.Eth) *Relayer

func (*Relayer) Close

func (r *Relayer) Close() error

Close does noop: no persistent subservices to close on relay close

func (*Relayer) Healthy

func (r *Relayer) Healthy() error

Healthy does noop: always healthy

func (*Relayer) NewConfigProvider added in v1.5.0

func (r *Relayer) NewConfigProvider(args relaytypes.RelayArgs) (relaytypes.ConfigProvider, error)

func (*Relayer) NewMedianProvider added in v1.5.0

func (r *Relayer) NewMedianProvider(rargs relaytypes.RelayArgs, pargs relaytypes.PluginArgs) (relaytypes.MedianProvider, error)

func (*Relayer) NewMercuryMedianProvider added in v1.11.0

func (r *Relayer) NewMercuryMedianProvider(relayConfig types.RelayConfig) (contractTransmitter ocrtypes.ContractTransmitter, reportCodec median.ReportCodec, err error)

func (*Relayer) Ready

func (r *Relayer) Ready() error

Ready does noop: always ready

func (*Relayer) Start

func (r *Relayer) Start(context.Context) error

Start does noop: no subservices started on relay start, but when the first job is started

type RelayerConfig added in v1.11.0

type RelayerConfig interface {
	MercuryCredentials(url string) (username, password string, err error)
}

type RequestRoundDB added in v1.3.0

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 added in v1.3.0

type RequestRoundTracker struct {
	utils.StartStopOnce
	// contains filtered or unexported fields
}

RequestRoundTracker subscribes to new request round logs.

func NewRequestRoundTracker added in v1.3.0

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,
) (o *RequestRoundTracker)

NewRequestRoundTracker makes a new RequestRoundTracker

func (*RequestRoundTracker) Close added in v1.3.0

func (t *RequestRoundTracker) Close() error

Close should be called after teardown of the OCR job relying on this tracker

func (*RequestRoundTracker) HandleLog added in v1.3.0

func (t *RequestRoundTracker) HandleLog(lb log.Broadcast)

HandleLog complies with LogListener interface It is not thread safe

func (*RequestRoundTracker) IsV2Job added in v1.3.0

func (t *RequestRoundTracker) IsV2Job() bool

IsV2Job complies with LogListener interface

func (*RequestRoundTracker) JobID added in v1.3.0

func (t *RequestRoundTracker) JobID() int32

JobID complies with LogListener interface

func (*RequestRoundTracker) LatestRoundRequested added in v1.3.0

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 added in v1.3.0

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) error
	FromAddress() gethcommon.Address
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL