chains

package
v2.1.0-mercury-20230518 Latest Latest
Warning

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

Go to latest
Published: May 18, 2023 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrChainIDEmpty is returned when chain is required but was empty.
	ErrChainIDEmpty = errors.New("chain id empty")
	ErrNotFound     = errors.New("not found")
)
View Source
var ErrLOOPPUnsupported = errors.New("LOOPP not yet supported")

Functions

func EnsureChains

func EnsureChains[I ID](q pg.Q, prefix string, ids []I) (err error)

func NewChainSet

func NewChainSet[N Node, S ChainService](
	chains map[string]S,
	opts ChainSetOpts[string, N],
) (types.ChainSet[string, S], error)

NewChainSet returns a new immutable ChainSet for the given ChainSetOpts.

Types

type ChainConfigs

type ChainConfigs interface {
	Chains(offset, limit int, ids ...string) ([]types.ChainStatus, int, error)
}

type ChainService

type ChainService interface {
	services.ServiceCtx
	SendTx(ctx context.Context, from, to string, amount *big.Int, balanceCheck bool) error
}

ChainService is a live, runtime chain instance, with supporting services.

type ChainSetOpts

type ChainSetOpts[I ID, N Node] interface {
	Validate() error
	ConfigsAndLogger() (Configs[I, N], logger.Logger)
}

ChainSetOpts holds options for configuring a ChainSet via NewChainSet.

type Chains

type Chains interface {
	ChainStatus(ctx context.Context, id string) (types.ChainStatus, error)
	ChainStatuses(ctx context.Context, offset, limit int) ([]types.ChainStatus, int, error)
}

Chains is a generic interface for chain configuration.

type Configs

type Configs[I ID, N Node] interface {
	ChainConfigs
	NodeConfigs[I, N]
}

Configs holds chain and node configurations.

func NewConfigs

func NewConfigs[I ID, N Node](cfgs ConfigsV2[I, N]) Configs[I, N]

NewConfigs returns a Configs backed by ConfigsV2.

type ConfigsV2

type ConfigsV2[I ID, N Node] interface {
	// contains filtered or unexported methods
}

type ID

type ID any

ID types represent unique identifiers within a particular chain type. Using string is recommended.

type Node

type Node any

Node types should be a struct including these default fields:

ID        int32
Name      string

type NodeConfigs

type NodeConfigs[I ID, N Node] interface {
	Node(name string) (N, error)
	Nodes(chainID I) (nodes []N, err error)

	NodeStatus(name string) (types.NodeStatus, error)
	NodeStatusesPaged(offset, limit int, chainIDs ...string) (nodes []types.NodeStatus, count int, err error)
}

type Nodes

type Nodes interface {
	NodeStatuses(ctx context.Context, offset, limit int, chainIDs ...string) (nodes []types.NodeStatus, count int, err error)
}

Nodes is an interface for node configuration and state.

Directories

Path Synopsis
evm
gas
gas/cmd/arbgas
arbgas takes a single URL argument and prints the result of three GetLegacyGas calls to the Arbitrum gas estimator.
arbgas takes a single URL argument and prints the result of three GetLegacyGas calls to the Arbitrum gas estimator.
log
logpoller
Package logpoller is a service for querying EVM log data.
Package logpoller is a service for querying EVM log data.

Jump to

Keyboard shortcuts

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