evm

package
v1.5.1 Latest Latest
Warning

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

Go to latest
Published: Jun 27, 2022 License: MIT Imports: 30 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrNoChains = errors.New("no EVM chains loaded")

ErrNoChains indicates that no EVM chains have been started

Functions

func ClobberDBFromEnv added in v1.1.0

func ClobberDBFromEnv(db *sqlx.DB, config LegacyEthNodeConfig, lggr logger.Logger) error

func NewORM

func NewORM(db *sqlx.DB, lggr logger.Logger, cfg pg.LogConfig) types.ORM

NewORM returns a new EVM ORM

func SetupNodes added in v1.4.0

func SetupNodes(db *sqlx.DB, cfg LegacyEthNodeConfig, lggr logger.Logger) (err error)

SetupNodes is a hack/shim method to allow node operators to specify multiple nodes via ENV. See: https://app.shortcut.com/chainlinklabs/epic/33587/overhaul-config?cf_workflow=500000005&ct_workflow=all

Types

type Chain added in v1.1.0

type Chain interface {
	services.ServiceCtx
	ID() *big.Int
	Client() evmclient.Client
	Config() evmconfig.ChainScopedConfig
	UpdateConfig(*types.ChainCfg)
	LogBroadcaster() log.Broadcaster
	HeadBroadcaster() httypes.HeadBroadcaster
	TxManager() txmgr.TxManager
	HeadTracker() httypes.HeadTracker
	Logger() logger.Logger
	BalanceMonitor() monitor.BalanceMonitor
	LogPoller() logpoller.LogPoller
}

type ChainConfigUpdater added in v1.1.0

type ChainConfigUpdater func(*types.ChainCfg) error

func UpdateKeySpecificMaxGasPrice added in v1.1.0

func UpdateKeySpecificMaxGasPrice(addr common.Address, maxGasPriceWei *big.Int) ChainConfigUpdater

type ChainSet added in v1.1.0

type ChainSet interface {
	services.ServiceCtx
	Get(id *big.Int) (Chain, error)
	Show(id utils.Big) (types.DBChain, error)
	Add(ctx context.Context, id utils.Big, config *types.ChainCfg) (types.DBChain, error)
	Remove(id utils.Big) error
	Default() (Chain, error)
	Configure(ctx context.Context, id utils.Big, enabled bool, config *types.ChainCfg) (types.DBChain, error)
	UpdateConfig(id *big.Int, updaters ...ChainConfigUpdater) error
	Chains() []Chain
	Index(offset, limit int) ([]types.DBChain, int, error)
	ChainCount() int
	ORM() types.ORM
	// GetNode et al retrieves Nodes from the ORM and adds additional state info
	GetNode(ctx context.Context, id int32) (node types.Node, err error)
	GetNodes(ctx context.Context, offset, limit int) (nodes []types.Node, count int, err error)
	GetNodesForChain(ctx context.Context, chainID utils.Big, offset, limit int) (nodes []types.Node, count int, err error)
	GetNodesByChainIDs(ctx context.Context, chainIDs []utils.Big) (nodes []types.Node, err error)
	CreateNode(ctx context.Context, data types.Node) (types.Node, error)
	DeleteNode(ctx context.Context, id int32) error
}

func LoadChainSet added in v1.1.0

func LoadChainSet(opts ChainSetOpts) (ChainSet, error)

func NewChainSet added in v1.1.0

func NewChainSet(opts ChainSetOpts, dbchains []types.DBChain, nodes map[string][]types.Node) (ChainSet, error)

type ChainSetOpts added in v1.1.0

type ChainSetOpts struct {
	Config           config.GeneralConfig
	Logger           logger.Logger
	DB               *sqlx.DB
	KeyStore         keystore.Eth
	EventBroadcaster pg.EventBroadcaster
	ORM              types.ORM

	// Gen-functions are useful for dependency injection by tests
	GenEthClient      func(types.DBChain) evmclient.Client
	GenLogBroadcaster func(types.DBChain) log.Broadcaster
	GenLogPoller      func(types.DBChain) logpoller.LogPoller
	GenHeadTracker    func(types.DBChain, httypes.HeadBroadcaster) httypes.HeadTracker
	GenTxManager      func(types.DBChain) txmgr.TxManager
}

type LegacyEthNodeConfig added in v1.1.0

type LegacyEthNodeConfig interface {
	DefaultChainID() *big.Int
	EthereumURL() string
	EthereumHTTPURL() *url.URL
	EthereumSecondaryURLs() []url.URL
	EthereumNodes() string
	LogSQL() bool
}

Jump to

Keyboard shortcuts

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