loop

package
v0.0.0-...-3f0f60f Latest Latest
Warning

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

Go to latest
Published: Jun 22, 2023 License: MIT Imports: 29 Imported by: 0

README

LOOP Plugins

Local out of process (LOOP) plugins using github.com/hashicorp/go-plugin.

Packages

flowchart
    subgraph chainlink-relay/pkg
        loop
        internal[loop/internal]
        pb[loop/internal/pb]
        test[loop/internal/test]

        internal --> pb
        test --> internal
        loop --> internal
        loop --> test
    end
    
    grpc[google.golang.org/grpc]
    hashicorp[hashicorp/go-plugin]

    loop ---> hashicorp
    loop ---> grpc
    test ---> grpc
    internal ---> grpc
    pb ---> grpc
    hashicorp --> grpc

package loop

Public API and hashicorp/go-plugin integration.

package test

Testing utilities.

package internal

GRPC client & server implementations.

package pb

Protocol buffer definitions & generated code.

Documentation

Index

Constants

View Source
const PluginMedianName = "median"

PluginMedianName is the name for PluginMedian/[NewGRPCPluginMedian].

View Source
const PluginRelayerName = "relayer"

PluginRelayerName is the name for PluginRelayer/[NewGRPCPluginRelayer].

Variables

View Source
var ErrPluginUnavailable = errors.New("plugin unavailable")

Functions

func HCLogLogger

func HCLogLogger(l logger.Logger) hclog.Logger

HCLogLogger returns an hclog.Logger backed by the given logger.Logger.

func NewLogger

func NewLogger() (logger.Logger, error)

NewLogger returns a new logger.Logger configured to encode hclog compatible JSON.

func PluginMedianHandshakeConfig

func PluginMedianHandshakeConfig() plugin.HandshakeConfig

func PluginRelayerHandshakeConfig

func PluginRelayerHandshakeConfig() plugin.HandshakeConfig

Types

type BrokerConfig

type BrokerConfig = internal.BrokerConfig

type ContextValues

type ContextValues struct {
	JobID   any
	JobName any

	ContractID    any
	FeedID        any
	TransmitterID any
}

ContextValues is a helper for passing values via a context.Context.

func (*ContextValues) Args

func (v *ContextValues) Args() (a []any)

Args returns a slice of args to pass to logger.Logger.With.

func (*ContextValues) ContextWithValues

func (v *ContextValues) ContextWithValues(ctx context.Context) context.Context

ContextWithValues returns a context.Context with values set from v.

func (*ContextValues) SetValues

func (v *ContextValues) SetValues(ctx context.Context)

SetValues sets v to values from the ctx.

type ErrorLog

type ErrorLog = internal.ErrorLog

type GRPCOpts

type GRPCOpts = internal.GRPCOpts

func SetupTelemetry

func SetupTelemetry(registerer prometheus.Registerer) GRPCOpts

SetupTelemetry initializes open telemetry and returns GRPCOpts with telemetry interceptors.

type GRPCPluginMedian

type GRPCPluginMedian struct {
	plugin.NetRPCUnsupportedPlugin

	BrokerConfig

	PluginServer PluginMedian
	// contains filtered or unexported fields
}

func (*GRPCPluginMedian) ClientConfig

func (p *GRPCPluginMedian) ClientConfig() *plugin.ClientConfig

func (*GRPCPluginMedian) GRPCClient

func (p *GRPCPluginMedian) GRPCClient(_ context.Context, broker *plugin.GRPCBroker, conn *grpc.ClientConn) (interface{}, error)

GRPCClient implements plugin.GRPCPlugin and returns the pluginClient PluginMedian, updated with the new broker and conn.

func (*GRPCPluginMedian) GRPCServer

func (p *GRPCPluginMedian) GRPCServer(broker *plugin.GRPCBroker, server *grpc.Server) error

type GRPCPluginRelayer

type GRPCPluginRelayer struct {
	plugin.NetRPCUnsupportedPlugin

	BrokerConfig

	PluginServer PluginRelayer
	// contains filtered or unexported fields
}

GRPCPluginRelayer implements plugin.GRPCPlugin for PluginRelayer.

func (*GRPCPluginRelayer) ClientConfig

func (p *GRPCPluginRelayer) ClientConfig() *plugin.ClientConfig

func (*GRPCPluginRelayer) GRPCClient

func (p *GRPCPluginRelayer) GRPCClient(_ context.Context, broker *plugin.GRPCBroker, conn *grpc.ClientConn) (interface{}, error)

GRPCClient implements plugin.GRPCPlugin and returns the pluginClient PluginRelayer, updated with the new broker and conn.

func (*GRPCPluginRelayer) GRPCServer

func (p *GRPCPluginRelayer) GRPCServer(broker *plugin.GRPCBroker, server *grpc.Server) error

type Keystore

type Keystore = internal.Keystore

type MedianService

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

MedianService is a types.Service that maintains an internal PluginMedian.

func NewMedianService

func NewMedianService(lggr logger.Logger, grpcOpts GRPCOpts, cmd func() *exec.Cmd, provider types.MedianProvider, dataSource, juelsPerFeeCoin median.DataSource, errorLog ErrorLog) *MedianService

NewMedianService returns a new *MedianService. cmd must return a new exec.Cmd each time it is called.

func (*MedianService) Close

func (s *MedianService) Close() error

func (*MedianService) HealthReport

func (s *MedianService) HealthReport() map[string]error

func (*MedianService) Name

func (s *MedianService) Name() string

func (*MedianService) Ready

func (s *MedianService) Ready() error

func (*MedianService) Start

func (s *MedianService) Start(context.Context) error

type PluginMedian

type PluginMedian = internal.PluginMedian

type PluginRelayer

type PluginRelayer = internal.PluginRelayer

type Relayer

type Relayer = internal.Relayer

type RelayerService

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

RelayerService is a types.Service that maintains an internal Relayer.

func NewRelayerService

func NewRelayerService(lggr logger.Logger, grpcOpts GRPCOpts, cmd func() *exec.Cmd, config string, keystore Keystore) *RelayerService

NewRelayerService returns a new *RelayerService. cmd must return a new exec.Cmd each time it is called.

func (*RelayerService) ChainStatus

func (r *RelayerService) ChainStatus(ctx context.Context, id string) (types.ChainStatus, error)

func (*RelayerService) ChainStatuses

func (r *RelayerService) ChainStatuses(ctx context.Context, offset, limit int) (chains []types.ChainStatus, count int, err error)

func (*RelayerService) Close

func (s *RelayerService) Close() error

func (*RelayerService) HealthReport

func (s *RelayerService) HealthReport() map[string]error

func (*RelayerService) Name

func (s *RelayerService) Name() string

func (*RelayerService) NewConfigProvider

func (r *RelayerService) NewConfigProvider(ctx context.Context, args types.RelayArgs) (types.ConfigProvider, error)

func (*RelayerService) NewMedianProvider

func (r *RelayerService) NewMedianProvider(ctx context.Context, rargs types.RelayArgs, pargs types.PluginArgs) (types.MedianProvider, error)

func (*RelayerService) NewMercuryProvider

func (r *RelayerService) NewMercuryProvider(ctx context.Context, rargs types.RelayArgs, pargs types.PluginArgs) (types.MercuryProvider, error)

func (*RelayerService) NodeStatuses

func (r *RelayerService) NodeStatuses(ctx context.Context, offset, limit int, chainIDs ...string) (nodes []types.NodeStatus, count int, err error)

func (*RelayerService) Ready

func (s *RelayerService) Ready() error

func (*RelayerService) SendTx

func (r *RelayerService) SendTx(ctx context.Context, chainID, from, to string, amount *big.Int, balanceCheck bool) error

func (*RelayerService) Start

func (s *RelayerService) Start(context.Context) error

type ReportingPluginFactory

type ReportingPluginFactory = internal.ReportingPluginFactory

Directories

Path Synopsis
adapters
pb

Jump to

Keyboard shortcuts

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