Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
/op-proposer @ethereum-optimism/op-stack @ethereum-optimism/go-reviewers
/op-wheel @ethereum-optimism/op-stack @ethereum-optimism/go-reviewers
/ops-bedrock @ethereum-optimism/op-stack @ethereum-optimism/go-reviewers
/op-devstack @ethereum-optimism/op-stack @ethereum-optimism/go-reviewers

# Expert areas
/op-node/rollup @ethereum-optimism/consensus @ethereum-optimism/go-reviewers
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ import (
"testing"
"time"

"github.com/ethereum-optimism/optimism/devnet-sdk/devstack/devtest"
"github.com/ethereum-optimism/optimism/devnet-sdk/devstack/presets"
"github.com/ethereum-optimism/optimism/devnet-sdk/devstack/stack/match"
"github.com/ethereum-optimism/optimism/op-devstack/devtest"
"github.com/ethereum-optimism/optimism/op-devstack/presets"
"github.com/ethereum-optimism/optimism/op-devstack/stack/match"
"github.com/ethereum-optimism/optimism/op-e2e/e2eutils/wait"
"github.com/ethereum-optimism/optimism/op-service/eth"
"github.com/ethereum-optimism/optimism/op-service/txplan"
Expand Down
2 changes: 1 addition & 1 deletion op-acceptance-tests/tests/interop/upgrade/main_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package upgrade
import (
"testing"

"github.com/ethereum-optimism/optimism/devnet-sdk/devstack/presets"
"github.com/ethereum-optimism/optimism/op-devstack/presets"
)

var SimpleInterop presets.TestSetup[*presets.SimpleInterop]
Expand Down
6 changes: 3 additions & 3 deletions op-acceptance-tests/tests/interop/upgrade/post_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ import (

"github.com/ethereum/go-ethereum/common"

"github.com/ethereum-optimism/optimism/devnet-sdk/devstack/devtest"
"github.com/ethereum-optimism/optimism/devnet-sdk/devstack/dsl"
"github.com/ethereum-optimism/optimism/devnet-sdk/devstack/stack/match"
"github.com/ethereum-optimism/optimism/op-chain-ops/genesis"
"github.com/ethereum-optimism/optimism/op-devstack/devtest"
"github.com/ethereum-optimism/optimism/op-devstack/dsl"
"github.com/ethereum-optimism/optimism/op-devstack/stack/match"
"github.com/ethereum-optimism/optimism/op-service/predeploys"
)

Expand Down
6 changes: 3 additions & 3 deletions op-acceptance-tests/tests/interop/upgrade/pre_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ import (

"github.com/ethereum/go-ethereum/common"

"github.com/ethereum-optimism/optimism/devnet-sdk/devstack/devtest"
"github.com/ethereum-optimism/optimism/devnet-sdk/devstack/dsl"
"github.com/ethereum-optimism/optimism/devnet-sdk/devstack/stack/match"
"github.com/ethereum-optimism/optimism/op-chain-ops/genesis"
"github.com/ethereum-optimism/optimism/op-devstack/devtest"
"github.com/ethereum-optimism/optimism/op-devstack/dsl"
"github.com/ethereum-optimism/optimism/op-devstack/stack/match"
"github.com/ethereum-optimism/optimism/op-service/predeploys"
)

Expand Down
32 changes: 17 additions & 15 deletions devnet-sdk/devstack/README.md → op-devstack/README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
# devstack
# op-devstack

Devstack provides a flexible test-frontend, optimized for integration and network acceptance testing.

## Overview

Expand All @@ -18,12 +20,12 @@
graph TD
shim --implements interfaces--> stack
sysgo --hydrates system with shims--> shim
syskt --hydrates system with shims--> shim
sysext --hydrates system with shims--> shim

dsl --interacts with system--> stack

presets --uses orchestrator--> sysgo
presets --uses orchestrator--> syskt
presets --uses orchestrator--> sysext
presets --creates DSL around system--> dsl

userMain -- creates test setup --> presets
Expand Down Expand Up @@ -100,24 +102,24 @@ func TestMain(t *testing.T) {

The preferred orchestrator kind is configured with env-var `DEVSTACK_ORCHESTRATOR`:
- `sysgo` instantiates an in-process Go backend, ready to spawn services on demand.
- `syskt` instantiates a kurtosis-descriptor based backend,
and attaches to a local devnet (selection is configured with kurtosis-devnet env vars).
- `sysext` instantiates a devnet-descriptor based backend,
and attaches to the network (selection is configured with `DEVNET_ENV_URL`).
This may be a local kurtosis network, or a descriptor of an external network.


### `Setup` and `Option`
#### `presets`, `Option`, `TestSetup`

A `Setup` is a bundle of common inputs (context, logging, testing handle, etc.), and a `System` and `Orchestrator`,
used during creation of services.
In addition to `DoMain`, the `presets` package provides options, generally named `With...`.

An `Option` is a function that takes a `Setup`, and can do one or two things:
- inspect the system, to function as a test-gate.
- enhance the system, to e.g. add missing things to it.
Each `Option` may apply changes to one or more of the setup stages.
E.g. some options may customize contract deployments, others may customize nodes,
and others may do post-validation of test setups.

The `System` starts empty, and is then generally filled with new components during setup.
The `stack` package provides helper functions to sequence options,
and compose options with different stages.

The `Option` may be composed, and is implemented by external packages, that produce objects for the system.
E.g. a kurtosis backend may give an option to iterate over a kurtosis enclave inventory descriptor,
and load handles for all the services into the `System`.
A `TestSetup` is a function that prepares the frontend specific to a test,
and returns a typed output that the test then may use.

## Design choices

Expand Down
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package dsl

import "github.com/ethereum-optimism/optimism/devnet-sdk/devstack/stack"
import "github.com/ethereum-optimism/optimism/op-devstack/stack"

// Cluster wraps a stack.Cluster interface for DSL operations
type Cluster struct {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import (

"github.com/ethereum/go-ethereum/log"

"github.com/ethereum-optimism/optimism/devnet-sdk/devstack/devtest"
"github.com/ethereum-optimism/optimism/op-devstack/devtest"
)

// commonImpl provides a set of common values and methods inherited by all DSL structs.
Expand Down
File renamed without changes.
2 changes: 1 addition & 1 deletion devnet-sdk/devstack/dsl/el.go → op-devstack/dsl/el.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package dsl

import (
"github.com/ethereum-optimism/optimism/devnet-sdk/devstack/stack"
"github.com/ethereum-optimism/optimism/op-devstack/stack"
"github.com/ethereum-optimism/optimism/op-service/eth"
)

Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package dsl
import (
"github.com/ethereum/go-ethereum/common"

"github.com/ethereum-optimism/optimism/devnet-sdk/devstack/stack"
"github.com/ethereum-optimism/optimism/op-devstack/stack"
"github.com/ethereum-optimism/optimism/op-service/eth"
"github.com/ethereum-optimism/optimism/op-service/retry"
)
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ import (

"github.com/ethereum/go-ethereum/crypto"

"github.com/ethereum-optimism/optimism/devnet-sdk/devstack/devtest"
"github.com/ethereum-optimism/optimism/op-chain-ops/devkeys"
"github.com/ethereum-optimism/optimism/op-devstack/devtest"
)

// HDWallet is a collection of deterministic accounts,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import (
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/crypto"

"github.com/ethereum-optimism/optimism/devnet-sdk/devstack/devtest"
"github.com/ethereum-optimism/optimism/op-devstack/devtest"
"github.com/ethereum-optimism/optimism/op-service/txplan"
)

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package dsl

import "github.com/ethereum-optimism/optimism/devnet-sdk/devstack/stack"
import "github.com/ethereum-optimism/optimism/op-devstack/stack"

// L1CLNode wraps a stack.L1CLNode interface for DSL operations
type L1CLNode struct {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package dsl

import "github.com/ethereum-optimism/optimism/devnet-sdk/devstack/stack"
import "github.com/ethereum-optimism/optimism/op-devstack/stack"

// L1ELNode wraps a stack.L1ELNode interface for DSL operations
type L1ELNode struct {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ package dsl
import (
"time"

"github.com/ethereum-optimism/optimism/devnet-sdk/devstack/stack"
"github.com/ethereum-optimism/optimism/devnet-sdk/devstack/stack/match"
"github.com/ethereum-optimism/optimism/op-devstack/stack"
"github.com/ethereum-optimism/optimism/op-devstack/stack/match"
"github.com/ethereum-optimism/optimism/op-e2e/e2eutils/wait"
"github.com/ethereum-optimism/optimism/op-service/eth"
)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package dsl

import (
"github.com/ethereum-optimism/optimism/devnet-sdk/devstack/stack"
"github.com/ethereum-optimism/optimism/op-devstack/stack"
"github.com/ethereum-optimism/optimism/op-service/apis"
)

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package dsl

import "github.com/ethereum-optimism/optimism/devnet-sdk/devstack/stack"
import "github.com/ethereum-optimism/optimism/op-devstack/stack"

// L2Challenger wraps a stack.L2Challenger interface for DSL operations
type L2Challenger struct {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package dsl

import (
"github.com/ethereum-optimism/optimism/devnet-sdk/devstack/stack"
"github.com/ethereum-optimism/optimism/op-devstack/stack"
"github.com/ethereum-optimism/optimism/op-service/eth"
)

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package dsl

import (
"github.com/ethereum-optimism/optimism/devnet-sdk/devstack/stack"
"github.com/ethereum-optimism/optimism/op-devstack/stack"
)

// L2ELNode wraps a stack.L2ELNode interface for DSL operations
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ import (
"time"

"github.com/davecgh/go-spew/spew"
"github.com/ethereum-optimism/optimism/devnet-sdk/devstack/devtest"
"github.com/ethereum-optimism/optimism/devnet-sdk/devstack/stack"
"github.com/ethereum-optimism/optimism/devnet-sdk/devstack/stack/match"
"github.com/ethereum-optimism/optimism/op-devstack/devtest"
"github.com/ethereum-optimism/optimism/op-devstack/stack"
"github.com/ethereum-optimism/optimism/op-devstack/stack/match"
"github.com/ethereum-optimism/optimism/op-e2e/e2eutils/wait"
"github.com/ethereum-optimism/optimism/op-service/eth"
)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package dsl

import "github.com/ethereum-optimism/optimism/devnet-sdk/devstack/stack"
import "github.com/ethereum-optimism/optimism/op-devstack/stack"

// L2Proposer wraps a stack.L2Proposer interface for DSL operations
type L2Proposer struct {
Expand Down
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package dsl

import (
"github.com/ethereum-optimism/optimism/devnet-sdk/devstack/stack"
"github.com/ethereum-optimism/optimism/op-devstack/stack"
)

type Sequencer struct {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package dsl

import "github.com/ethereum-optimism/optimism/devnet-sdk/devstack/stack"
import "github.com/ethereum-optimism/optimism/op-devstack/stack"

// Superchain wraps a stack.Superchain interface for DSL operations
type Superchain struct {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import (
"errors"
"time"

"github.com/ethereum-optimism/optimism/devnet-sdk/devstack/stack"
"github.com/ethereum-optimism/optimism/op-devstack/stack"
"github.com/ethereum-optimism/optimism/op-e2e/e2eutils/wait"
"github.com/ethereum-optimism/optimism/op-service/eth"
"github.com/ethereum-optimism/optimism/op-service/retry"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ import (

"github.com/ethereum-optimism/optimism/op-service/eth"

"github.com/ethereum-optimism/optimism/devnet-sdk/devstack/devtest"
"github.com/ethereum-optimism/optimism/devnet-sdk/devstack/dsl"
"github.com/ethereum-optimism/optimism/op-devstack/devtest"
"github.com/ethereum-optimism/optimism/op-devstack/dsl"
)

// TestExample1 starts an interop chain and verifies that the local unsafe head advances.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package example
import (
"testing"

"github.com/ethereum-optimism/optimism/devnet-sdk/devstack/presets"
"github.com/ethereum-optimism/optimism/op-devstack/presets"
)

var SimpleInterop presets.TestSetup[*presets.SimpleInterop]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@ package presets
import (
"github.com/ethereum/go-ethereum/log"

"github.com/ethereum-optimism/optimism/devnet-sdk/devstack/devtest"
"github.com/ethereum-optimism/optimism/devnet-sdk/devstack/dsl"
"github.com/ethereum-optimism/optimism/devnet-sdk/devstack/shim"
"github.com/ethereum-optimism/optimism/devnet-sdk/devstack/stack"
"github.com/ethereum-optimism/optimism/devnet-sdk/devstack/stack/match"
"github.com/ethereum-optimism/optimism/devnet-sdk/devstack/sysgo"
"github.com/ethereum-optimism/optimism/op-chain-ops/devkeys"
"github.com/ethereum-optimism/optimism/op-devstack/devtest"
"github.com/ethereum-optimism/optimism/op-devstack/dsl"
"github.com/ethereum-optimism/optimism/op-devstack/shim"
"github.com/ethereum-optimism/optimism/op-devstack/stack"
"github.com/ethereum-optimism/optimism/op-devstack/stack/match"
"github.com/ethereum-optimism/optimism/op-devstack/sysgo"
"github.com/ethereum-optimism/optimism/op-e2e/e2eutils/intentbuilder"
"github.com/ethereum-optimism/optimism/op-node/rollup"
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,11 @@ import (
"github.com/ethereum/go-ethereum/log"
"go.opentelemetry.io/otel"

"github.com/ethereum-optimism/optimism/devnet-sdk/devstack/devtest"
"github.com/ethereum-optimism/optimism/devnet-sdk/devstack/stack"
"github.com/ethereum-optimism/optimism/devnet-sdk/devstack/sysext"
"github.com/ethereum-optimism/optimism/devnet-sdk/devstack/sysgo"
"github.com/ethereum-optimism/optimism/devnet-sdk/telemetry"
"github.com/ethereum-optimism/optimism/op-devstack/devtest"
"github.com/ethereum-optimism/optimism/op-devstack/stack"
"github.com/ethereum-optimism/optimism/op-devstack/sysext"
"github.com/ethereum-optimism/optimism/op-devstack/sysgo"
"github.com/ethereum-optimism/optimism/op-service/locks"
oplog "github.com/ethereum-optimism/optimism/op-service/log"
)
Expand Down Expand Up @@ -109,7 +109,7 @@ func initOrchestrator(ctx context.Context, p devtest.P, opt stack.CommonOption)
case "sysgo":
p.Logger().WithContext(ctx).Info("initializing sysgo orchestrator")
lockedOrchestrator.Value = sysgo.NewOrchestrator(p)
case "syskt":
case "sysext":
p.Logger().WithContext(ctx).Info("initializing sysext orchestrator")
lockedOrchestrator.Value = sysext.NewOrchestrator(p)
default:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package presets

import "github.com/ethereum-optimism/optimism/devnet-sdk/devstack/devtest"
import "github.com/ethereum-optimism/optimism/op-devstack/devtest"

// TestSetup is a function that initializes a desired presentation of the system
type TestSetup[V any] func(t devtest.T) V
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package shim

import (
"github.com/ethereum-optimism/optimism/devnet-sdk/devstack/stack"
"github.com/ethereum-optimism/optimism/op-devstack/stack"
"github.com/ethereum-optimism/optimism/op-supervisor/supervisor/backend/depset"
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ import (

"github.com/ethereum/go-ethereum/log"

"github.com/ethereum-optimism/optimism/devnet-sdk/devstack/devtest"
"github.com/ethereum-optimism/optimism/devnet-sdk/devstack/stack"
"github.com/ethereum-optimism/optimism/op-devstack/devtest"
"github.com/ethereum-optimism/optimism/op-devstack/stack"
"github.com/ethereum-optimism/optimism/op-service/locks"
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package shim
import (
"github.com/stretchr/testify/require"

"github.com/ethereum-optimism/optimism/devnet-sdk/devstack/stack"
"github.com/ethereum-optimism/optimism/op-devstack/stack"
"github.com/ethereum-optimism/optimism/op-service/apis"
"github.com/ethereum-optimism/optimism/op-service/client"
"github.com/ethereum-optimism/optimism/op-service/eth"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package shim

import (
"github.com/ethereum-optimism/optimism/devnet-sdk/devstack/stack"
"github.com/ethereum-optimism/optimism/op-devstack/stack"
"github.com/ethereum-optimism/optimism/op-service/apis"
"github.com/ethereum-optimism/optimism/op-service/client"
"github.com/ethereum-optimism/optimism/op-service/sources"
Expand Down
Loading