sysgo

package
v1.16.9 Latest Latest
Warning

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

Go to latest
Published: Mar 18, 2026 License: MIT Imports: 138 Imported by: 0

Documentation

Overview

Moved from fb_OPRbuilderNode_real.go

Index

Constants

View Source
const DevstackL1ELKindEnvVar = "DEVSTACK_L1EL_KIND"
View Source
const GethExecPathEnvVar = "SYSGO_GETH_EXEC_PATH"

Variables

View Source
var (
	DefaultL1ID  = eth.ChainIDFromUInt64(900)
	DefaultL2AID = eth.ChainIDFromUInt64(901)
	DefaultL2BID = eth.ChainIDFromUInt64(902)
)

Functions

func ConnectP2P added in v1.13.5

func ConnectP2P(ctx context.Context, require *testreq.Assertions, initiator RpcCaller, acceptor RpcCaller, trusted bool)

ConnectP2P creates a p2p peer connection between node1 and node2.

func DisconnectP2P added in v1.14.1

func DisconnectP2P(ctx context.Context, require *testreq.Assertions, initiator RpcCaller, acceptor RpcCaller)

DisconnectP2P disconnects a p2p peer connection between node1 and node2.

func EnsureRustBinary added in v1.16.4

func EnsureRustBinary(p devtest.CommonT, spec RustBinarySpec) (string, error)

EnsureRustBinary locates or builds a Rust binary as needed.

Env var overrides (suffix derived from binary name, e.g. "rollup-boost" -> "ROLLUP_BOOST"):

  • RUST_BINARY_PATH_<BINARY>: absolute path to pre-built binary (skips build, must exist)
  • RUST_SRC_DIR_<BINARY>: overrides SrcDir (absolute path to cargo project root)

Build behavior:

  • RUST_JIT_BUILD=1: runs cargo build --release (letting cargo handle rebuild detection)
  • Otherwise: only checks binary exists, errors if missing

func GetP2PClient

func GetP2PClient(ctx context.Context, logger log.Logger, l2CLNode L2CLNode) (*sources.P2PClient, error)

func GetPeerInfo

func GetPeerInfo(ctx context.Context, p2pClient *sources.P2PClient) (*apis.PeerInfo, error)

func GetPeers

func GetPeers(ctx context.Context, p2pClient *sources.P2PClient) (*apis.PeerDump, error)

func LocalArtifacts added in v1.14.3

func LocalArtifacts(t devtest.T) *artifacts.Locator

func PrestateForGameType added in v1.16.3

func PrestateForGameType(t devtest.CommonT, gameType gameTypes.GameType) common.Hash

func ProxyAddr added in v1.13.6

func ProxyAddr(require *testreq.Assertions, urlStr string) string

func WithDefaultBPOBlobSchedule added in v1.16.2

func WithDefaultBPOBlobSchedule(_ devtest.T, _ devkeys.Keys, builder intentbuilder.Builder)

func WithJovianAtGenesis added in v1.16.2

func WithJovianAtGenesis(p devtest.T, _ devkeys.Keys, builder intentbuilder.Builder)

Types

type BatcherOption added in v1.13.4

type BatcherOption func(target ComponentTarget, cfg *bss.CLIConfig)

type ComponentTarget added in v1.16.9

type ComponentTarget struct {
	Name    string
	ChainID eth.ChainID
}

func NewComponentTarget added in v1.16.9

func NewComponentTarget(name string, chainID eth.ChainID) ComponentTarget

func (ComponentTarget) String added in v1.16.9

func (t ComponentTarget) String() string

type Conductor added in v1.16.9

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

func (*Conductor) ConsensusEndpoint added in v1.16.9

func (c *Conductor) ConsensusEndpoint() string

func (*Conductor) HTTPEndpoint added in v1.16.9

func (c *Conductor) HTTPEndpoint() string

func (*Conductor) ServerID added in v1.16.9

func (c *Conductor) ServerID() string

type ContractPaths

type ContractPaths struct {
	// must be absolute paths, without file:// prefix
	FoundryArtifacts string
	SourceMap        string
}

type DeployerOption

type DeployerOption func(p devtest.T, keys devkeys.Keys, builder intentbuilder.Builder)

func WithCommons

func WithCommons(l1ChainID eth.ChainID) DeployerOption

func WithCustomGasToken added in v1.16.3

func WithCustomGasToken(name, symbol string, initialLiquidity *big.Int, liquidityControllerOwner common.Address) DeployerOption

func WithDAFootprintGasScalar added in v1.14.3

func WithDAFootprintGasScalar(scalar uint16, l2ChainIDs ...eth.ChainID) DeployerOption

WithDAFootprintGasScalar sets the DA footprint gas scalar with which the networks identified by l2ChainIDs will be launched. If there are no l2ChainIDs provided, all L2 networks are set with scalar.

func WithDevFeatureEnabled added in v1.16.1

func WithDevFeatureEnabled(flag common.Hash) DeployerOption

WithDevFeatureEnabled adds a feature as enabled in the dev feature bitmap

func WithDisputeGameFinalityDelaySeconds added in v1.13.4

func WithDisputeGameFinalityDelaySeconds(seconds uint64) DeployerOption

func WithEmbeddedContractSources added in v1.13.6

func WithEmbeddedContractSources() DeployerOption

func WithFinalizationPeriodSeconds added in v1.13.4

func WithFinalizationPeriodSeconds(n uint64) DeployerOption

WithFinalizationPeriodSeconds overrides the number of L1 blocks in a sequencing window, applied to all L2s.

func WithForkAtL1Genesis added in v1.16.2

func WithForkAtL1Genesis(fork forks.Fork) DeployerOption

func WithForkAtL1Offset added in v1.16.2

func WithForkAtL1Offset(fork forks.Fork, offset uint64) DeployerOption

func WithGuardianMatchL1PAO added in v1.13.4

func WithGuardianMatchL1PAO() DeployerOption

func WithHardforkSequentialActivation added in v1.13.6

func WithHardforkSequentialActivation(startFork, endFork opforks.Name, delta *uint64) DeployerOption

WithHardforkSequentialActivation configures a deployment such that L2 chains activate hardforks sequentially, starting from startFork and continuing until (including) endFork. Each successive fork is scheduled at an increasing offset.

func WithInteropAtGenesis

func WithInteropAtGenesis() DeployerOption

WithInteropAtGenesis activates interop at genesis for all known L2s

func WithLocalContractSources

func WithLocalContractSources() DeployerOption

func WithLocalContractSourcesAt added in v1.16.9

func WithLocalContractSourcesAt(artifactsPath string) DeployerOption

WithLocalContractSourcesAt configures the deployer to load both L1 and L2 contract artifacts from the given local contracts-bedrock checkout or forge-artifacts directory.

func WithPrefundedL2

func WithPrefundedL2(l1ChainID, l2ChainID eth.ChainID) DeployerOption

func WithProofMaturityDelaySeconds added in v1.13.4

func WithProofMaturityDelaySeconds(n uint64) DeployerOption

func WithRevenueShare added in v1.16.2

func WithRevenueShare(enabled bool, chainFeesRecipient common.Address) DeployerOption

func WithSequencingWindow added in v1.13.4

func WithSequencingWindow(n uint64) DeployerOption

WithSequencingWindow overrides the number of L1 blocks in a sequencing window, applied to all L2s.

type DeployerPipelineOption added in v1.13.4

type DeployerPipelineOption func(wb *worldBuilder, intent *state.Intent, cfg *deployer.ApplyPipelineOpts)

func WithDeployerCacheDir added in v1.13.6

func WithDeployerCacheDir(dirPath string) DeployerPipelineOption

func WithDeployerMatchL1PAO added in v1.13.4

func WithDeployerMatchL1PAO() DeployerPipelineOption

type DisputeGameConfigV2 added in v1.16.7

type DisputeGameConfigV2 struct {
	Enabled  bool
	InitBond *big.Int
	GameType uint32
	GameArgs []byte
}

V2 structs for OPCM >= 7.0.0 (using IOPContractsManagerMigrator interface)

type ELNodeIdentity added in v1.16.3

type ELNodeIdentity struct {
	Key  *ecdsa.PrivateKey
	Port int
}

func NewELNodeIdentity added in v1.16.3

func NewELNodeIdentity(port int) *ELNodeIdentity

func (*ELNodeIdentity) KeyHex added in v1.16.3

func (id *ELNodeIdentity) KeyHex() string

type FakePoS added in v1.13.4

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

func (*FakePoS) Start added in v1.13.4

func (f *FakePoS) Start()

func (*FakePoS) Stop added in v1.13.4

func (f *FakePoS) Stop()

type FlashblocksRuntimeSupport added in v1.16.9

type FlashblocksRuntimeSupport struct {
	Builder     *OPRBuilderNode
	RollupBoost *RollupBoostNode
}

type KonaNode added in v1.13.6

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

func (*KonaNode) InteropRPC added in v1.13.6

func (k *KonaNode) InteropRPC() (endpoint string, jwtSecret eth.Bytes32)

func (*KonaNode) Start added in v1.13.6

func (k *KonaNode) Start()

func (*KonaNode) Stop added in v1.13.6

func (k *KonaNode) Stop()

Stop stops the kona node. warning: no restarts supported yet, since the RPC port is not remembered.

func (*KonaNode) UserRPC added in v1.13.6

func (k *KonaNode) UserRPC() string

type KonaSupervisor added in v1.13.6

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

func (*KonaSupervisor) Start added in v1.13.6

func (s *KonaSupervisor) Start()

func (*KonaSupervisor) Stop added in v1.13.6

func (s *KonaSupervisor) Stop()

func (*KonaSupervisor) UserRPC added in v1.13.6

func (s *KonaSupervisor) UserRPC() string

type L1CLNode

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

func (*L1CLNode) BeaconHTTPAddr added in v1.16.9

func (n *L1CLNode) BeaconHTTPAddr() string

func (*L1CLNode) FakePoS added in v1.16.9

func (n *L1CLNode) FakePoS() stack.Lifecycle

type L1ELNode

type L1ELNode interface {
	UserRPC() string
	AuthRPC() string
	// contains filtered or unexported methods
}

type L1Geth added in v1.14.0

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

func (*L1Geth) AuthRPC added in v1.14.0

func (g *L1Geth) AuthRPC() string

func (*L1Geth) UserRPC added in v1.14.0

func (g *L1Geth) UserRPC() string

type L1Network

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

func (*L1Network) ChainConfig added in v1.16.9

func (n *L1Network) ChainConfig() *params.ChainConfig

func (*L1Network) ChainID added in v1.16.9

func (n *L1Network) ChainID() eth.ChainID

func (*L1Network) Name added in v1.16.9

func (n *L1Network) Name() string

type L2Batcher

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

func (*L2Batcher) UserRPC added in v1.16.9

func (b *L2Batcher) UserRPC() string

type L2CLConfig added in v1.13.6

type L2CLConfig struct {
	// SyncMode to run, if this is a sequencer
	SequencerSyncMode nodeSync.Mode
	// SyncMode to run, if this is a verifier
	VerifierSyncMode nodeSync.Mode

	// SafeDBPath is the path to the safe DB to use. Disabled if empty.
	SafeDBPath string

	IsSequencer  bool
	IndexingMode bool

	// EnableReqRespSync is the flag to enable/disable req-resp sync.
	EnableReqRespSync bool

	// UseReqRespSync controls whether to use the req-resp sync protocol. EnableReqRespSync == false && UseReqRespSync == true is not allowed, and node will fail to start.
	UseReqRespSync bool

	// NoDiscovery is the flag to enable/disable discovery
	NoDiscovery bool

	FollowSource string
}

func DefaultL2CLConfig added in v1.13.6

func DefaultL2CLConfig() *L2CLConfig

type L2CLNode

type L2CLNode interface {
	stack.Lifecycle
	UserRPC() string
	InteropRPC() (endpoint string, jwtSecret eth.Bytes32)
}

type L2CLOption added in v1.13.5

type L2CLOption interface {
	Apply(p devtest.T, target ComponentTarget, cfg *L2CLConfig)
}

func L2CLFollowSource added in v1.16.4

func L2CLFollowSource(source string) L2CLOption

func L2CLIndexing added in v1.13.6

func L2CLIndexing() L2CLOption

func L2CLSequencer added in v1.13.6

func L2CLSequencer() L2CLOption

type L2CLOptionBundle added in v1.13.6

type L2CLOptionBundle []L2CLOption

L2CLOptionBundle a list of multiple L2CLOption, to all be applied in order.

func (L2CLOptionBundle) Apply added in v1.13.6

func (l L2CLOptionBundle) Apply(p devtest.T, target ComponentTarget, cfg *L2CLConfig)

type L2CLOptionFn added in v1.13.6

type L2CLOptionFn func(p devtest.T, target ComponentTarget, cfg *L2CLConfig)

func (L2CLOptionFn) Apply added in v1.13.6

func (fn L2CLOptionFn) Apply(p devtest.T, target ComponentTarget, cfg *L2CLConfig)

type L2Challenger added in v1.13.4

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

func (*L2Challenger) Config added in v1.16.9

func (p *L2Challenger) Config() *config.Config

type L2Deployment

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

func (*L2Deployment) DisputeGameFactoryProxyAddr

func (d *L2Deployment) DisputeGameFactoryProxyAddr() common.Address

func (*L2Deployment) L1StandardBridgeProxyAddr added in v1.13.6

func (d *L2Deployment) L1StandardBridgeProxyAddr() common.Address

func (*L2Deployment) PermissionlessDelayedWETHProxyAddr added in v1.14.3

func (d *L2Deployment) PermissionlessDelayedWETHProxyAddr() common.Address

func (*L2Deployment) ProxyAdminAddr added in v1.14.3

func (d *L2Deployment) ProxyAdminAddr() common.Address

func (*L2Deployment) SystemConfigProxyAddr

func (d *L2Deployment) SystemConfigProxyAddr() common.Address

type L2ELConfig added in v1.13.6

type L2ELConfig struct {
	P2PAddr       string
	P2PPort       int
	P2PNodeKeyHex string
	StaticPeers   []string
	TrustedPeers  []string
	ProofHistory  bool
}

func DefaultL2ELConfig added in v1.13.6

func DefaultL2ELConfig() *L2ELConfig

type L2ELNode

type L2ELNode interface {
	stack.Lifecycle
	UserRPC() string
	EngineRPC() string
	JWTPath() string
}

type L2ELOption added in v1.13.6

type L2ELOption interface {
	Apply(p devtest.T, target ComponentTarget, cfg *L2ELConfig)
}

func L2ELWithP2PConfig added in v1.16.3

func L2ELWithP2PConfig(addr string, port int, nodeKeyHex string, staticPeers, trustedPeers []string) L2ELOption

L2ELWithP2PConfig sets deterministic P2P identity and static peers for the L2 EL.

func L2ELWithProofHistory added in v1.16.7

func L2ELWithProofHistory(enable bool) L2ELOption

type L2ELOptionBundle added in v1.13.6

type L2ELOptionBundle []L2ELOption

L2ELOptionBundle a list of multiple L2ELOption, to all be applied in order.

func (L2ELOptionBundle) Apply added in v1.13.6

func (l L2ELOptionBundle) Apply(p devtest.T, target ComponentTarget, cfg *L2ELConfig)

type L2ELOptionFn added in v1.13.6

type L2ELOptionFn func(p devtest.T, target ComponentTarget, cfg *L2ELConfig)

func (L2ELOptionFn) Apply added in v1.13.6

func (fn L2ELOptionFn) Apply(p devtest.T, target ComponentTarget, cfg *L2ELConfig)

type L2MetricsRegistrar added in v1.16.1

type L2MetricsRegistrar interface {
	RegisterL2MetricsTargets(serviceName string, endpoints ...PrometheusMetricsTarget)
}

type L2Network

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

func (*L2Network) ChainConfig added in v1.16.9

func (c *L2Network) ChainConfig() *params.ChainConfig

func (*L2Network) ChainID added in v1.16.9

func (c *L2Network) ChainID() eth.ChainID

func (*L2Network) Deployment added in v1.16.9

func (c *L2Network) Deployment() stack.L2Deployment

func (*L2Network) Keys added in v1.16.9

func (c *L2Network) Keys() devkeys.Keys

func (*L2Network) L1ChainID added in v1.16.9

func (c *L2Network) L1ChainID() eth.ChainID

func (*L2Network) Name added in v1.16.9

func (c *L2Network) Name() string

func (*L2Network) RollupConfig added in v1.16.9

func (c *L2Network) RollupConfig() *rollup.Config

type L2Proposer

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

type MigrateInputV2 added in v1.16.7

type MigrateInputV2 struct {
	ChainSystemConfigs        []common.Address
	DisputeGameConfigs        []DisputeGameConfigV2
	StartingAnchorRoot        bindings.Proposal
	StartingRespectedGameType uint32
}

type MixedL2CLKind added in v1.16.9

type MixedL2CLKind string
const (
	MixedL2CLOpNode MixedL2CLKind = "op-node"
	MixedL2CLKona   MixedL2CLKind = "kona-node"
)

type MixedL2ELKind added in v1.16.9

type MixedL2ELKind string
const (
	MixedL2ELOpGeth MixedL2ELKind = "op-geth"
	MixedL2ELOpReth MixedL2ELKind = "op-reth"
)

type MixedSingleChainNodeRefs added in v1.16.9

type MixedSingleChainNodeRefs struct {
	Spec MixedSingleChainNodeSpec
	EL   L2ELNode
	CL   L2CLNode
}

type MixedSingleChainNodeSpec added in v1.16.9

type MixedSingleChainNodeSpec struct {
	ELKey       string
	CLKey       string
	ELKind      MixedL2ELKind
	CLKind      MixedL2CLKind
	IsSequencer bool
}

type MixedSingleChainPresetConfig added in v1.16.9

type MixedSingleChainPresetConfig struct {
	NodeSpecs                  []MixedSingleChainNodeSpec
	WithTestSequencer          bool
	TestSequencerName          string
	LocalContractArtifactsPath string
	DeployerOptions            []DeployerOption
}

type MixedSingleChainRuntime added in v1.16.9

type MixedSingleChainRuntime struct {
	L1Network     *L1Network
	L1EL          *L1Geth
	L1CL          *L1CLNode
	L2Network     *L2Network
	Nodes         []MixedSingleChainNodeRefs
	L2Batcher     *L2Batcher
	FaucetService *faucet.Service
	TestSequencer *TestSequencerRuntime
}

func NewMixedSingleChainRuntime added in v1.16.9

func NewMixedSingleChainRuntime(t devtest.T, cfg MixedSingleChainPresetConfig) *MixedSingleChainRuntime

type MultiChainNodeRuntime added in v1.16.9

type MultiChainNodeRuntime struct {
	Name      string
	Network   *L2Network
	EL        L2ELNode
	CL        L2CLNode
	Batcher   *L2Batcher
	Proposer  *L2Proposer
	Followers map[string]*SingleChainNodeRuntime
}

type MultiChainRuntime added in v1.16.9

type MultiChainRuntime struct {
	Keys          devkeys.Keys
	Migration     *interopMigrationState
	FullConfigSet depset.FullConfigSetMerged
	DependencySet depset.DependencySet

	L1Network *L1Network
	L1EL      *L1Geth
	L1CL      *L1CLNode

	Chains map[string]*MultiChainNodeRuntime

	PrimarySupervisor   Supervisor
	SecondarySupervisor Supervisor
	Supernode           *SuperNode

	FaucetService      *faucet.Service
	TimeTravel         *clock.AdvancingClock
	TestSequencer      *TestSequencerRuntime
	L2ChallengerConfig *challengerconfig.Config
	DelaySeconds       uint64
}

func NewMultiSupervisorInteropRuntime added in v1.16.9

func NewMultiSupervisorInteropRuntime(t devtest.T) *MultiChainRuntime

func NewSimpleInteropRuntime added in v1.16.9

func NewSimpleInteropRuntime(t devtest.T) *MultiChainRuntime

func NewSimpleInteropRuntimeWithConfig added in v1.16.9

func NewSimpleInteropRuntimeWithConfig(t devtest.T, cfg PresetConfig) *MultiChainRuntime

func NewSimpleInteropSuperProofsRuntimeWithConfig added in v1.16.9

func NewSimpleInteropSuperProofsRuntimeWithConfig(t devtest.T, cfg PresetConfig) *MultiChainRuntime

func NewSingleChainInteropRuntime added in v1.16.9

func NewSingleChainInteropRuntime(t devtest.T) *MultiChainRuntime

func NewSingleChainInteropRuntimeWithConfig added in v1.16.9

func NewSingleChainInteropRuntimeWithConfig(t devtest.T, cfg PresetConfig) *MultiChainRuntime

func NewSingleChainSupernodeProofsRuntimeWithConfig added in v1.16.9

func NewSingleChainSupernodeProofsRuntimeWithConfig(t devtest.T, interopAtGenesis bool, cfg PresetConfig) *MultiChainRuntime

func NewTwoL2SupernodeFollowL2RuntimeWithConfig added in v1.16.9

func NewTwoL2SupernodeFollowL2RuntimeWithConfig(t devtest.T, delaySeconds uint64, cfg PresetConfig) *MultiChainRuntime

func NewTwoL2SupernodeInteropRuntime added in v1.16.9

func NewTwoL2SupernodeInteropRuntime(t devtest.T, delaySeconds uint64) *MultiChainRuntime

func NewTwoL2SupernodeInteropRuntimeWithConfig added in v1.16.9

func NewTwoL2SupernodeInteropRuntimeWithConfig(t devtest.T, delaySeconds uint64, cfg PresetConfig) *MultiChainRuntime

func NewTwoL2SupernodeProofsRuntimeWithConfig added in v1.16.9

func NewTwoL2SupernodeProofsRuntimeWithConfig(t devtest.T, interopAtGenesis bool, cfg PresetConfig) *MultiChainRuntime

func NewTwoL2SupernodeRuntime added in v1.16.9

func NewTwoL2SupernodeRuntime(t devtest.T) *MultiChainRuntime

func NewTwoL2SupernodeRuntimeWithConfig added in v1.16.9

func NewTwoL2SupernodeRuntimeWithConfig(t devtest.T, cfg PresetConfig) *MultiChainRuntime

type OPRBuilderNode added in v1.16.3

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

func (*OPRBuilderNode) EngineRPC added in v1.16.3

func (b *OPRBuilderNode) EngineRPC() string

func (*OPRBuilderNode) FlashblocksWSURL added in v1.16.9

func (b *OPRBuilderNode) FlashblocksWSURL() string

func (*OPRBuilderNode) JWTPath added in v1.16.3

func (b *OPRBuilderNode) JWTPath() string

func (*OPRBuilderNode) Start added in v1.16.3

func (b *OPRBuilderNode) Start()

func (*OPRBuilderNode) Stop added in v1.16.3

func (b *OPRBuilderNode) Stop()

func (*OPRBuilderNode) UpdateRuleSet added in v1.16.9

func (b *OPRBuilderNode) UpdateRuleSet(rulesYaml string) error

func (*OPRBuilderNode) UserRPC added in v1.16.3

func (b *OPRBuilderNode) UserRPC() string

type OPRBuilderNodeConfig added in v1.16.3

type OPRBuilderNodeConfig struct {
	// Chain selector (defaults to "dev" to avoid mainnet imports during tests)
	Chain string

	// DataDir for op-OPRbuilderNode. If empty, a temp dir is created and cleaned up.
	DataDir string

	// Logging formats
	LogStdoutFormat string // e.g. "json"
	LogFileFormat   string // e.g. "json"

	// Flashblocks websocket bind address (host)
	FlashblocksAddr string
	// Flashblocks websocket port. 0 means auto-allocate an available local port.
	FlashblocksPort int
	// EnableFlashblocks enables the flashblocks feature.
	EnableFlashblocks bool

	// --http
	EnableRPC  bool
	RPCAPI     string
	RPCAddr    string
	RPCPort    int
	RPCJWTPath string

	AuthRPCJWTPath string
	AuthRPCAddr    string
	AuthRPCPort    int

	// P2P
	P2PPort       int
	P2PAddr       string
	P2PNodeKeyHex string
	StaticPeers   []string
	TrustedPeers  []string

	// Misc process toggles
	WithUnusedPorts  bool // choose unused ports for subsystems
	DisableDiscovery bool // avoid discv5 UDP socket collisions

	Full bool

	RulesEnabled    bool
	RulesConfigPath string

	// ExtraArgs are appended to the generated CLI allowing callers to override defaults
	// if the binary respects "last flag wins".
	ExtraArgs []string
	// Env is passed to the subprocess environment.
	Env []string
}

OPRBuilderNodeConfig contains configuration used to generate the op-OPRbuilderNode CLI. Callers can modify the defaults via OPRbuilderNodeOption functions.

func DefaultOPRbuilderNodeConfig added in v1.16.3

func DefaultOPRbuilderNodeConfig() *OPRBuilderNodeConfig

func (*OPRBuilderNodeConfig) LaunchSpec added in v1.16.3

func (cfg *OPRBuilderNodeConfig) LaunchSpec(p devtest.CommonT) (args []string, env []string)

type OPRBuilderNodeOption added in v1.16.3

type OPRBuilderNodeOption interface {
	Apply(p devtest.CommonT, target ComponentTarget, cfg *OPRBuilderNodeConfig)
}

func OPRBuilderNodeWithEnv added in v1.16.3

func OPRBuilderNodeWithEnv(env ...string) OPRBuilderNodeOption

func OPRBuilderNodeWithExtraArgs added in v1.16.3

func OPRBuilderNodeWithExtraArgs(args ...string) OPRBuilderNodeOption

func OPRBuilderWithNodeIdentity added in v1.16.3

func OPRBuilderWithNodeIdentity(identity *ELNodeIdentity, addr string, staticPeers, trustedPeers []string) OPRBuilderNodeOption

OPRBuilderWithNodeIdentity applies an ELNodeIdentity directly to the builder EL.

func OPRBuilderWithP2PConfig added in v1.16.3

func OPRBuilderWithP2PConfig(addr string, port int, nodeKeyHex string, staticPeers, trustedPeers []string) OPRBuilderNodeOption

OPRBuilderWithP2PConfig sets deterministic P2P identity and static peers for the builder EL.

type OPRBuilderNodeOptionBundle added in v1.16.3

type OPRBuilderNodeOptionBundle []OPRBuilderNodeOption

OPRBuilderNodeOptionBundle applies multiple OPRBuilderNodeOptions in order.

func (OPRBuilderNodeOptionBundle) Apply added in v1.16.3

type OPRBuilderNodeOptionFn added in v1.16.3

type OPRBuilderNodeOptionFn func(p devtest.CommonT, target ComponentTarget, cfg *OPRBuilderNodeConfig)

func (OPRBuilderNodeOptionFn) Apply added in v1.16.3

type OpGeth added in v1.13.6

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

func (*OpGeth) EngineRPC added in v1.13.6

func (n *OpGeth) EngineRPC() string

func (*OpGeth) JWTPath added in v1.13.6

func (n *OpGeth) JWTPath() string

func (*OpGeth) Start added in v1.13.6

func (n *OpGeth) Start()

func (*OpGeth) Stop added in v1.13.6

func (n *OpGeth) Stop()

func (*OpGeth) UserRPC added in v1.13.6

func (n *OpGeth) UserRPC() string

type OpNode added in v1.13.6

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

func (*OpNode) InteropRPC added in v1.13.6

func (n *OpNode) InteropRPC() (endpoint string, jwtSecret eth.Bytes32)

func (*OpNode) Start added in v1.13.6

func (n *OpNode) Start()

func (*OpNode) Stop added in v1.13.6

func (n *OpNode) Stop()

func (*OpNode) UserRPC added in v1.13.6

func (n *OpNode) UserRPC() string

type OpReth added in v1.13.6

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

func (*OpReth) EngineRPC added in v1.13.6

func (n *OpReth) EngineRPC() string

func (*OpReth) JWTPath added in v1.13.6

func (n *OpReth) JWTPath() string

func (*OpReth) Start added in v1.13.6

func (n *OpReth) Start()

func (*OpReth) Stop added in v1.13.6

func (n *OpReth) Stop()

Stop stops the op-reth node. warning: no restarts supported yet, since the RPC port is not remembered.

func (*OpReth) UserRPC added in v1.13.6

func (n *OpReth) UserRPC() string

type OpSupervisor added in v1.13.6

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

func (*OpSupervisor) Start added in v1.13.6

func (s *OpSupervisor) Start()

func (*OpSupervisor) Stop added in v1.13.6

func (s *OpSupervisor) Stop()

func (*OpSupervisor) UserRPC added in v1.13.6

func (s *OpSupervisor) UserRPC() string

type PresetConfig added in v1.16.9

type PresetConfig struct {
	LocalContractArtifactsPath string
	DeployerOptions            []DeployerOption
	BatcherOptions             []BatcherOption
	ProposerOptions            []ProposerOption
	OPRBuilderOptions          []OPRBuilderNodeOption
	GlobalL2CLOptions          []L2CLOption
	GlobalSyncTesterELOptions  []SyncTesterELOption
	AddedGameTypes             []gameTypes.GameType
	RespectedGameTypes         []gameTypes.GameType
	EnableCannonKonaForChall   bool
	EnableTimeTravel           bool
	MaxSequencingWindow        *uint64
	RequireInteropNotAtGen     bool
}

PresetConfig captures preset constructor mutations. It is independent from orchestrator lifecycle hooks.

func NewPresetConfig added in v1.16.9

func NewPresetConfig(opts ...PresetOption) PresetConfig

type PresetOption added in v1.16.9

type PresetOption interface {
	// contains filtered or unexported methods
}

func WithBatcherOption added in v1.13.4

func WithBatcherOption(opt BatcherOption) PresetOption

func WithCannonKonaGameTypeAdded added in v1.16.2

func WithCannonKonaGameTypeAdded() PresetOption

func WithChallengerCannonKonaEnabled added in v1.16.3

func WithChallengerCannonKonaEnabled() PresetOption

func WithDeployerOptions

func WithDeployerOptions(opts ...DeployerOption) PresetOption

func WithGameTypeAdded added in v1.16.3

func WithGameTypeAdded(gameType gameTypes.GameType) PresetOption

func WithGlobalL2CLOption added in v1.13.6

func WithGlobalL2CLOption(opt L2CLOption) PresetOption

func WithGlobalSyncTesterELOption added in v1.13.7

func WithGlobalSyncTesterELOption(opt SyncTesterELOption) PresetOption

func WithOPRBuilderOption added in v1.16.9

func WithOPRBuilderOption(opt OPRBuilderNodeOption) PresetOption

func WithProposerOption added in v1.13.4

func WithProposerOption(opt ProposerOption) PresetOption

func WithRespectedGameTypeOverride added in v1.16.9

func WithRespectedGameTypeOverride(gameType gameTypes.GameType) PresetOption

func WithTimeTravelEnabled added in v1.16.9

func WithTimeTravelEnabled() PresetOption

type PrometheusMetricsTarget added in v1.16.1

type PrometheusMetricsTarget string

func NewPrometheusMetricsTarget added in v1.16.1

func NewPrometheusMetricsTarget(host string, port string, isRunningInDocker bool) PrometheusMetricsTarget

type ProposerOption added in v1.13.4

type ProposerOption func(target ComponentTarget, cfg *ps.CLIConfig)

type RollupBoostConfig added in v1.16.3

type RollupBoostConfig struct {
	// RPC endpoint for rollup-boost itself
	RPCHost string
	RPCPort uint16

	// Flashblocks proxy WebSocket exposure
	EnableFlashblocks bool
	FlashblocksHost   string
	FlashblocksPort   int

	// L2 engine connection details (HTTP(S))
	L2EngineURL string
	L2JWTPath   string

	// Builder engine connection details (HTTP(S))
	BuilderURL            string
	BuilderJWTPath        string
	FlashblocksBuilderURL string // upstream builder WS url (e.g. op-rbuilder ws)

	// Other settings
	ExecutionMode string // e.g. "enabled"
	LogFormat     string // e.g. "json"

	// Debug server
	DebugHost string
	DebugPort int

	// Optional WS headers to expose to clients through the proxy
	Headers http.Header

	// Env variables for the subprocess
	Env []string
	// ExtraArgs appended to the generated CLI (last-flag-wins semantics)
	ExtraArgs []string
}

RollupBoostConfig configures the rollup-boost process CLI and environment.

func DefaultRollupBoostConfig added in v1.16.3

func DefaultRollupBoostConfig() *RollupBoostConfig

func (*RollupBoostConfig) LaunchSpec added in v1.16.3

func (cfg *RollupBoostConfig) LaunchSpec(p devtest.CommonT) (args []string, env []string)

type RollupBoostNode added in v1.16.3

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

RollupBoostNode is a lightweight sysgo-managed process wrapper around a rollup-boost WebSocket stream source. It exposes a stable proxied ws URL and hydrates the L2 network with a shared WSClient that points at it.

func (*RollupBoostNode) EngineRPC added in v1.16.3

func (r *RollupBoostNode) EngineRPC() string

func (*RollupBoostNode) FlashblocksWSURL added in v1.16.9

func (r *RollupBoostNode) FlashblocksWSURL() string

func (*RollupBoostNode) JWTPath added in v1.16.3

func (r *RollupBoostNode) JWTPath() string

func (*RollupBoostNode) Start added in v1.16.3

func (r *RollupBoostNode) Start()

func (*RollupBoostNode) Stop added in v1.16.3

func (r *RollupBoostNode) Stop()

func (*RollupBoostNode) UserRPC added in v1.16.3

func (r *RollupBoostNode) UserRPC() string

type RpcCaller added in v1.13.5

type RpcCaller interface {
	CallContext(ctx context.Context, result interface{}, method string, args ...interface{}) error
}

type RulesConfig added in v1.16.9

type RulesConfig struct {
	File []struct {
		Path string `yaml:"path"`
	} `yaml:"file"`
	RefreshInterval int `yaml:"refresh_interval"`
}

type RustBinarySpec added in v1.16.4

type RustBinarySpec struct {
	SrcDir  string // directory name relative to monorepo root, e.g. "rollup-boost"
	Package string // cargo package name, e.g. "rollup-boost"
	Binary  string // binary name, e.g. "rollup-boost"
}

RustBinarySpec describes a Rust binary to be built and located.

type SingleChainInteropSupport added in v1.16.9

type SingleChainInteropSupport struct {
	Migration     *interopMigrationState
	FullConfigSet depset.FullConfigSetMerged
	DependencySet depset.DependencySet
	Supervisor    Supervisor
}

type SingleChainNodeRuntime added in v1.16.9

type SingleChainNodeRuntime struct {
	Name        string
	IsSequencer bool
	EL          L2ELNode
	CL          L2CLNode
}

type SingleChainRuntime added in v1.16.9

type SingleChainRuntime struct {
	Keys devkeys.Keys

	L1Network *L1Network
	L2Network *L2Network

	L1EL *L1Geth
	L1CL *L1CLNode

	L2EL L2ELNode
	L2CL L2CLNode

	L2Batcher    *L2Batcher
	L2Proposer   *L2Proposer
	L2Challenger *L2Challenger

	FaucetService *faucet.Service
	TimeTravel    *clock.AdvancingClock
	TestSequencer *TestSequencerRuntime

	Nodes       map[string]*SingleChainNodeRuntime
	SyncTester  *SyncTesterRuntime
	Conductors  map[string]*Conductor
	Flashblocks *FlashblocksRuntimeSupport
	Interop     *SingleChainInteropSupport
	P2PEnabled  bool
}

func NewFlashblocksRuntime added in v1.16.9

func NewFlashblocksRuntime(t devtest.T) *SingleChainRuntime

func NewFlashblocksRuntimeWithConfig added in v1.16.9

func NewFlashblocksRuntimeWithConfig(t devtest.T, cfg PresetConfig) *SingleChainRuntime

func NewMinimalInteropNoSupervisorRuntime added in v1.16.9

func NewMinimalInteropNoSupervisorRuntime(t devtest.T) *SingleChainRuntime

NewMinimalInteropNoSupervisorRuntime constructs the single-chain interop world without supervisor wiring.

func NewMinimalRuntime added in v1.16.9

func NewMinimalRuntime(t devtest.T) *SingleChainRuntime

SingleChainRuntime is the shared DAG runtime for single-chain preset topologies. It is the root for minimal, flashblocks, follower-node, sync-tester, conductor, and no-supervisor interop variants.

func NewMinimalRuntimeWithConfig added in v1.16.9

func NewMinimalRuntimeWithConfig(t devtest.T, cfg PresetConfig) *SingleChainRuntime

func NewMinimalWithConductorsRuntime added in v1.16.9

func NewMinimalWithConductorsRuntime(t devtest.T) *SingleChainRuntime

func NewMinimalWithConductorsRuntimeWithConfig added in v1.16.9

func NewMinimalWithConductorsRuntimeWithConfig(t devtest.T, cfg PresetConfig) *SingleChainRuntime

func NewSimpleWithSyncTesterRuntime added in v1.16.9

func NewSimpleWithSyncTesterRuntime(t devtest.T) *SingleChainRuntime

func NewSimpleWithSyncTesterRuntimeWithConfig added in v1.16.9

func NewSimpleWithSyncTesterRuntimeWithConfig(t devtest.T, cfg PresetConfig) *SingleChainRuntime

func NewSingleChainMultiNodeRuntime added in v1.16.9

func NewSingleChainMultiNodeRuntime(t devtest.T, withP2P bool) *SingleChainRuntime

func NewSingleChainMultiNodeRuntimeWithConfig added in v1.16.9

func NewSingleChainMultiNodeRuntimeWithConfig(t devtest.T, withP2P bool, cfg PresetConfig) *SingleChainRuntime

func NewSingleChainTwoVerifiersRuntime added in v1.16.9

func NewSingleChainTwoVerifiersRuntime(t devtest.T) *SingleChainRuntime

func NewSingleChainTwoVerifiersRuntimeWithConfig added in v1.16.9

func NewSingleChainTwoVerifiersRuntimeWithConfig(t devtest.T, cfg PresetConfig) *SingleChainRuntime

type SubProcess added in v1.13.6

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

SubProcess is a process that can be started and stopped.

func NewSubProcess added in v1.13.6

func NewSubProcess(p devtest.CommonT, stdOutCallback, stdErrCallback logpipe.LogCallback) *SubProcess

func (*SubProcess) Start added in v1.13.6

func (sp *SubProcess) Start(cmdPath string, args []string, env []string) error

func (*SubProcess) Stop added in v1.13.6

func (sp *SubProcess) Stop(interrupt bool) error

Stop waits for the process to stop, interrupting the process if it has not completed and interrupt is true.

type SuperNode added in v1.14.3

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

func (*SuperNode) InteropRPC added in v1.14.3

func (n *SuperNode) InteropRPC() (endpoint string, jwtSecret eth.Bytes32)

func (*SuperNode) PauseInteropActivity added in v1.16.7

func (n *SuperNode) PauseInteropActivity(ts uint64)

PauseInteropActivity pauses the interop activity at the given timestamp. This function is for integration test control only.

func (*SuperNode) ResumeInteropActivity added in v1.16.7

func (n *SuperNode) ResumeInteropActivity()

ResumeInteropActivity clears any pause on the interop activity. This function is for integration test control only.

func (*SuperNode) Start added in v1.14.3

func (n *SuperNode) Start()

func (*SuperNode) Stop added in v1.14.3

func (n *SuperNode) Stop()

func (*SuperNode) UserRPC added in v1.14.3

func (n *SuperNode) UserRPC() string

type SuperNodeProxy added in v1.14.3

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

SuperNodeProxy is a thin wrapper that points to a shared supernode instance.

func (*SuperNodeProxy) InteropRPC added in v1.14.3

func (n *SuperNodeProxy) InteropRPC() (endpoint string, jwtSecret eth.Bytes32)

func (*SuperNodeProxy) Start added in v1.14.3

func (n *SuperNodeProxy) Start()

func (*SuperNodeProxy) Stop added in v1.14.3

func (n *SuperNodeProxy) Stop()

func (*SuperNodeProxy) UserRPC added in v1.14.3

func (n *SuperNodeProxy) UserRPC() string

type SuperchainDeployment

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

func (*SuperchainDeployment) ProtocolVersionsAddr

func (d *SuperchainDeployment) ProtocolVersionsAddr() common.Address

func (*SuperchainDeployment) SuperchainConfigAddr

func (d *SuperchainDeployment) SuperchainConfigAddr() common.Address

type SupernodeConfig added in v1.16.7

type SupernodeConfig struct {
	// InteropActivationTimestamp enables the interop activity at the given timestamp.
	// Set to nil to disable interop (default). Non-nil (including 0) enables interop.
	InteropActivationTimestamp *uint64

	// UseGenesisInterop, when true, sets InteropActivationTimestamp to the genesis
	// timestamp of the first configured chain at deploy time. Takes effect inside
	// withSharedSupernodeCLsImpl after deployment, when the genesis time is known.
	UseGenesisInterop bool
}

SupernodeConfig holds configuration options for the shared supernode.

type SupernodeOption added in v1.16.7

type SupernodeOption func(*SupernodeConfig)

SupernodeOption is a functional option for configuring the supernode.

func WithSupernodeInterop added in v1.16.7

func WithSupernodeInterop(activationTimestamp uint64) SupernodeOption

WithSupernodeInterop enables the interop activity with the given activation timestamp.

func WithSupernodeInteropAtGenesis added in v1.16.9

func WithSupernodeInteropAtGenesis() SupernodeOption

WithSupernodeInteropAtGenesis enables interop at the genesis timestamp of the first configured chain. The timestamp is resolved after deployment, when genesis is known.

type Supervisor

type Supervisor interface {
	stack.Lifecycle
	UserRPC() string
}

type SyncTesterEL added in v1.13.6

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

SyncTesterEL is an L2ELNode implementation that runs a sync tester service. It provides RPC endpoints that can be used by CL nodes for testing sync functionality.

func (*SyncTesterEL) EngineRPC added in v1.13.6

func (n *SyncTesterEL) EngineRPC() string

func (*SyncTesterEL) JWTPath added in v1.13.6

func (n *SyncTesterEL) JWTPath() string

func (*SyncTesterEL) Start added in v1.13.6

func (n *SyncTesterEL) Start()

func (*SyncTesterEL) Stop added in v1.13.6

func (n *SyncTesterEL) Stop()

func (*SyncTesterEL) UserRPC added in v1.13.6

func (n *SyncTesterEL) UserRPC() string

type SyncTesterELConfig added in v1.13.7

type SyncTesterELConfig struct {
	FCUState     eth.FCUState
	ELSyncActive bool
}

func DefaultSyncTesterELConfig added in v1.13.7

func DefaultSyncTesterELConfig() *SyncTesterELConfig

func (*SyncTesterELConfig) Path added in v1.13.7

func (cfg *SyncTesterELConfig) Path() string

type SyncTesterELOption added in v1.13.7

type SyncTesterELOption interface {
	Apply(p devtest.T, target ComponentTarget, cfg *SyncTesterELConfig)
}

type SyncTesterELOptionBundle added in v1.13.7

type SyncTesterELOptionBundle []SyncTesterELOption

SyncTesterELOptionBundle a list of multiple SyncTesterELOption, to all be applied in order.

func (SyncTesterELOptionBundle) Apply added in v1.13.7

type SyncTesterELOptionFn added in v1.13.7

type SyncTesterELOptionFn func(p devtest.T, target ComponentTarget, cfg *SyncTesterELConfig)

func (SyncTesterELOptionFn) Apply added in v1.13.7

type SyncTesterRuntime added in v1.16.9

type SyncTesterRuntime struct {
	Service *SyncTesterService
	Node    *SingleChainNodeRuntime
}

type SyncTesterService added in v1.13.6

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

Caveat: id is binded by a single EL(chainID), but service can support multiple ELs

func (*SyncTesterService) DefaultEndpoint added in v1.16.9

func (n *SyncTesterService) DefaultEndpoint(chainID eth.ChainID) (string, string, bool)

func (*SyncTesterService) RPC added in v1.16.9

func (n *SyncTesterService) RPC() string

func (*SyncTesterService) SyncTesterRPCPath added in v1.16.9

func (n *SyncTesterService) SyncTesterRPCPath(chainID eth.ChainID, withSessionID bool) string

type TestSequencerRuntime added in v1.16.9

type TestSequencerRuntime struct {
	Name       string
	AdminRPC   string
	JWTSecret  [32]byte
	ControlRPC map[eth.ChainID]string
	Service    *sequencer.Service
}

Jump to

Keyboard shortcuts

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