Help us shape the future of Go! Take the 2026 Go Developer Survey

network

package
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: Mar 2, 2026 License: Apache-2.0 Imports: 20 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AddCustomRPC added in v0.5.0

func AddCustomRPC(cfg *config.Config, chainID int, chainName, endpoint string, readOnly bool) error

AddCustomRPC adds a single custom RPC endpoint for a chain to the eRPC ConfigMap. Uses the "custom-" prefix to distinguish from ChainList-sourced upstreams. When readOnly is true, eth_sendRawTransaction and eth_sendTransaction are blocked.

func AddPublicRPCs added in v0.5.0

func AddPublicRPCs(cfg *config.Config, chainID int, chainName string, endpoints []RPCEndpoint, readOnly bool) error

AddPublicRPCs adds ChainList RPCs for a chain to the eRPC ConfigMap. When readOnly is true, eth_sendRawTransaction and eth_sendTransaction are blocked.

func DefaultChainListFetcher added in v0.5.0

func DefaultChainListFetcher() ([]byte, error)

DefaultChainListFetcher fetches from the real ChainList API.

func Delete

func Delete(cfg *config.Config, u *ui.UI, deploymentIdentifier string) error

Delete removes the network deployment configuration and cluster resources

func DeregisterERPCUpstream added in v0.3.2

func DeregisterERPCUpstream(cfg *config.Config, networkType, id string) error

DeregisterERPCUpstream removes a previously registered local upstream from the eRPC ConfigMap.

func GetERPCStatus added in v0.5.0

func GetERPCStatus(cfg *config.Config) (podStatus string, upstreamCounts map[int]int, err error)

GetERPCStatus returns eRPC pod status and upstream counts.

func Install

func Install(cfg *config.Config, u *ui.UI, network string, overrides map[string]string, force bool) error

Install creates a network configuration by executing Go templates and saving to config directory

func List

func List(cfg *config.Config, u *ui.UI) error

List displays all available networks from the embedded filesystem

func ListInstanceIDs added in v0.5.0

func ListInstanceIDs(cfg *config.Config) ([]string, error)

ListInstanceIDs returns all installed network deployment identifiers (as "network/id" strings) by walking the networks directory on disk.

func RegisterERPCUpstream added in v0.3.2

func RegisterERPCUpstream(cfg *config.Config, networkType, id string) error

RegisterERPCUpstream reads the deployed network's RPC endpoint and adds it as an upstream in the eRPC ConfigMap. The local node becomes the primary upstream (group: "primary") with automatic fallback to existing remote upstreams.

func RemovePublicRPCs added in v0.5.0

func RemovePublicRPCs(cfg *config.Config, chainID int) error

RemovePublicRPCs removes all ChainList RPCs for a chain from the eRPC ConfigMap.

func ResolveChainID added in v0.5.0

func ResolveChainID(nameOrID string) (int, string, error)

ResolveChainID converts a chain name or numeric string to a chain ID. Returns the chain ID and the resolved name (for display).

func ResolveInstance added in v0.5.0

func ResolveInstance(cfg *config.Config, args []string) (identifier string, remaining []string, err error)

ResolveInstance determines which network deployment to target based on how many deployments are installed:

  • 0 deployments: returns an error prompting the user to install one
  • 1 deployment: auto-selects it, returns args unchanged
  • 2+ deployments: expects args[0] to be a known "network/id" identifier; consumes it from args and returns the rest. Errors if no match.

func SortByQuality added in v0.5.0

func SortByQuality(endpoints []RPCEndpoint)

SortByQuality sorts RPC endpoints by tracking quality. Preference: tracking=none > tracking=limited > tracking=unknown > anything else.

func Sync

func Sync(cfg *config.Config, u *ui.UI, deploymentIdentifier string) error

Sync deploys or updates a network configuration to the cluster using helmfile

func SyncAll added in v0.3.2

func SyncAll(cfg *config.Config, u *ui.UI) error

SyncAll syncs all installed network deployments found in the config directory.

Types

type ChainEntry added in v0.5.0

type ChainEntry struct {
	Name    string        `json:"name"`
	Chain   string        `json:"chain"`
	ChainID int           `json:"chainId"`
	RPC     []interface{} `json:"rpc"` // mix of strings and objects
}

ChainEntry represents a single chain entry from the ChainList API.

type ChainListFetcher added in v0.5.0

type ChainListFetcher func() ([]byte, error)

ChainListFetcher abstracts the HTTP fetch so tests can inject fixtures.

type RPCEndpoint added in v0.5.0

type RPCEndpoint struct {
	URL      string `json:"url"`
	Tracking string `json:"tracking"` // "none", "limited", or "yes"
}

RPCEndpoint represents a single RPC endpoint from ChainList.

func FetchChainListRPCs added in v0.5.0

func FetchChainListRPCs(chainID int, fetcher ChainListFetcher) ([]RPCEndpoint, string, error)

FetchChainListRPCs fetches RPCs for a given chain ID from ChainList, filters for free/public HTTPS endpoints, and returns up to maxRPCs sorted by quality (tracking=none preferred over tracking=limited).

func FilterFreeRPCs added in v0.5.0

func FilterFreeRPCs(endpoints []RPCEndpoint) []RPCEndpoint

FilterFreeRPCs filters RPC endpoints to only include free, HTTPS, non-tracking endpoints.

func ParseAndFilterRPCs added in v0.5.0

func ParseAndFilterRPCs(data []byte, chainID, maxRPCs int) ([]RPCEndpoint, string, error)

ParseAndFilterRPCs parses ChainList JSON, finds the chain, filters and sorts RPCs. Exported for testing.

type RPCNetworkInfo added in v0.5.0

type RPCNetworkInfo struct {
	ChainID   int
	Alias     string
	Upstreams []RPCUpstreamInfo
}

RPCNetworkInfo represents a network (chain) configured in eRPC.

func ListRPCNetworks added in v0.5.0

func ListRPCNetworks(cfg *config.Config) ([]RPCNetworkInfo, error)

ListRPCNetworks reads the eRPC ConfigMap and returns configured networks with their upstreams.

type RPCUpstreamInfo added in v0.5.0

type RPCUpstreamInfo struct {
	ID       string
	Endpoint string
	ChainID  int
}

RPCUpstreamInfo represents an upstream in the eRPC config for display.

type TemplateField

type TemplateField struct {
	Name         string
	DefaultValue string
	FlagName     string   // CLI flag name derived from field name
	Description  string   // Human-readable description from @description
	EnumValues   []string // Valid enum values from @enum
	Required     bool     // Whether this field is required (no default value)
}

TemplateField represents a template field with its configuration

func ParseTemplateFields

func ParseTemplateFields(networkName string) ([]TemplateField, error)

ParseTemplateFields extracts template fields from an embedded network values file Uses Go template parsing to identify field references and their annotations

Jump to

Keyboard shortcuts

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