Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
118 commits
Select commit Hold shift + click to select a range
3f2bf28
op-acceptance-tests: test that unsafe chain is stalled when ReqResSyn…
nonsense Oct 3, 2025
a21294b
Full TimelockGuard implementation (#17584)
maurelian Oct 3, 2025
a795044
opcm: Support cannon+kona games in updatePrestates (#17512)
ajsutton Oct 3, 2025
05ba528
op-service/L1BeaconClient: allow blob proof verification to be skippe…
geoknee Oct 3, 2025
3ee883b
Add `skip-blob-verification` flag to op-program and op-challenger (#…
pauldowman Oct 3, 2025
25032f2
feat(op-conductor): rollup-boost partial unhealthiness tolerance (#17…
yashvardhan-kukreja Oct 6, 2025
1fd459d
l1-beacon-client: verify blobs using commitment only (not the proof) …
geoknee Oct 6, 2025
4e726c6
sysgo: add Osaka activation test (#17529)
joshklop Oct 6, 2025
ad12b8d
op-challenger: Convert l1-genesis flag to a vm flag (#17722)
mbaxter Oct 6, 2025
88fe2c4
op-devstack: L2EL Engine API support for op-geth (#17714)
pcw109550 Oct 6, 2025
5e38a4f
Remove upgrade controller from OPCM (#17660)
alcueca Oct 6, 2025
b69a6bb
feat(ci): add manual workflow for AI contracts test maintenance syste…
aliersh Oct 6, 2025
6036b91
chore(op-acceptance-tests): op-acceptor v3.5.0 (#17739)
scharissis Oct 6, 2025
0848196
Fix cli arg typo in op-challenger executor for op-program server (#17…
mbaxter Oct 7, 2025
b9e928a
feat(op-acceptance-tests): flake-shake auto-promotions (#17692)
scharissis Oct 7, 2025
ae73e9a
beacon client: use new fusaka endpoint to get blobs (#17736)
joshklop Oct 7, 2025
051a429
op-acceptance-tests: ELP2P for EL Syncing for unsafe gap (#17752)
pcw109550 Oct 7, 2025
f881741
Add file hashes to the u16a audit report (#17753)
alcueca Oct 7, 2025
27f6f50
cleanup(ctb): Remove unused MT_CANNON env (#17731)
Inphi Oct 7, 2025
c292ece
opcm: Switch cannon kona tests to depend on dev features being set th…
ajsutton Oct 7, 2025
0fd61cc
refactor(test): improve ProtocolVersions test coverage (#17721)
devin-ai-integration[bot] Oct 7, 2025
d24d691
Add make gen-binding (#17761)
maurelian Oct 7, 2025
6b40280
op-deployer: Do not create cache directory on import (#17776)
mslipper Oct 7, 2025
9013499
op-acceptance-tests: Add smoke tests for disputegamev2 (#17775)
Inphi Oct 8, 2025
c1081e3
op-service: use correct response type in blob retrieval (#17779)
joshklop Oct 8, 2025
48e52dc
op-program/host: have prefetcher use new beacon API (not `blob_sideca…
geoknee Oct 8, 2025
6971ada
feat(op-acceptance-tests): flake-shake; tweaks (#17780)
scharissis Oct 8, 2025
ca80499
fix(circleci): always run contracts-bedrock-build before docker-build…
bitwiseguy Oct 8, 2025
d1a0c5e
Interfaced CLI Context (#17759)
axelKingsley Oct 9, 2025
1373e83
op-node: Initialization Control Refactor (#17766)
axelKingsley Oct 9, 2025
0d35052
vm-runner: Annotate logs with a trace id for runs (#17801)
Inphi Oct 9, 2025
1667684
op-deployer: add cli-level bootstrap integration tests (#17803)
bitwiseguy Oct 9, 2025
2d77b27
tests: Re-enable Interop Proof Acceptance Tests (#17770)
axelKingsley Oct 9, 2025
aa3728e
chore(op-acceptance-tests): flake-shake; test promotions (#17804)
opgitgovernance Oct 9, 2025
0f7eac0
feat(ai-eng): release v1.0.0 production-Ready Contracts Test Maintena…
aliersh Oct 9, 2025
59b39f1
feat(op-acceptance-tests): flake-shake; fixes and improvements (#17811)
scharissis Oct 10, 2025
c1d1f15
op-node: allow for L2 chain configs to be passed to NewL1ChainConfig …
geoknee Oct 10, 2025
d92bf30
op-devstack: Error handle when direct FCU call errored (#17816)
pcw109550 Oct 10, 2025
dc558e7
Add SaferSafes as child of the module and guard (#17767)
maurelian Oct 10, 2025
e456340
txmgr: replace `UseCellProofs` flag with `CellProofTime` flag (#17649)
geoknee Oct 10, 2025
9c98587
acceptance-tests: force batcher to use cell proofs in osaka test (#17…
geoknee Oct 10, 2025
35b7245
op-{sync-tester|devstack}: Support multiple EL Sync Runs (#17800)
pcw109550 Oct 10, 2025
dfdf292
docs(ai-eng): update documentation for contract test maintenance syst…
aliersh Oct 10, 2025
1784818
fix(op-acceptance-tests): flake-shake; fix ci. (#17823)
scharissis Oct 11, 2025
cbc343d
fix(circleci): ensure contracts-bedrock-build runs in release workflo…
bitwiseguy Oct 11, 2025
0c68e87
op-dispute-mon: distinguish 404 from output root not found (#17819)
pauldowman Oct 12, 2025
2ab9b68
op-deployer: fix, support, test upgrades up to v4.1.0 (#17824)
bitwiseguy Oct 13, 2025
bc567b9
fix(op-acceptance-tests): flake-shake; misc. fixes (#17830)
scharissis Oct 13, 2025
4fb04a2
chore(op-acceptance-tests): flake-shake; TestL2ELP2PCanonicalChainAdv…
scharissis Oct 13, 2025
96b9208
chore(op-acceptance-tests): flake-shake; resource class (#17847)
scharissis Oct 14, 2025
27a87b9
chore(op-acceptance-tests): flake-shake; tweaked default workers. (#1…
scharissis Oct 14, 2025
b95dbc1
fix(ai-contracts-test): always fetch develop branch for artifact excl…
aliersh Oct 14, 2025
3c82c3f
all: Add DA footprint configurability via SystemConfig (#17466)
joshklop Oct 14, 2025
8b90c8f
opcm: Update OPCM.deploy to use v2 games (#17408)
stevennevins Oct 14, 2025
1b00fb5
feat(op-acceptance-tests): moved notifications to Slack (#17843)
scharissis Oct 14, 2025
197631a
chore(op-acceptance-tests): op-acceptor v3.6.0 (#17842)
scharissis Oct 14, 2025
3714b32
op-acceptance-tests: Integration test for op-deployer add-game-type (…
Inphi Oct 14, 2025
1ea0803
chore(op-acceptance-tests): flake-shake; test promotions (#17851)
opgitgovernance Oct 15, 2025
4b59c05
make solidity upgrade test run for base ink and unichain, update fork…
AmadiMichael Oct 15, 2025
85d9c9b
op-supernode: Initial Chain Container Framework (#17659)
axelKingsley Oct 15, 2025
1350f38
remove unused superchainProxyAdmin immutable variable from OPCM (#17828)
AmadiMichael Oct 15, 2025
66e1ddc
refactor(test): improve ResourceMetering test coverage and quality (#…
devin-ai-integration[bot] Oct 15, 2025
a34c18b
feat(ai-contracts-test): add Slack notifications and bug fixes (v1.1.…
aliersh Oct 15, 2025
c49b116
feat: reduce lite profile fuzz runs (#17877)
smartcontracts Oct 15, 2025
4f3da82
fix(acceptance-tests/op-reth): fix acceptance tests for op-reth (#17882)
theochap Oct 15, 2025
4554c9f
op-dispute-mon: Consider node invalid if it has not processed L1 past…
ajsutton Oct 15, 2025
a40c155
Update TODO with more granular issue number (#17885)
pauldowman Oct 15, 2025
a30a00a
refactor(test): improve ReinitializableBase test organization (#17839)
devin-ai-integration[bot] Oct 16, 2025
4b102be
op-acceptance-tests: Retry FCU for triggering EL Sync (#17894)
pcw109550 Oct 16, 2025
aeed703
feat: implement Operator Fee Fix (Jovian) (#17366)
fakedev9999 Oct 16, 2025
c3bc858
op-acceptance-tests: Reorg then gap filling tests (#17893)
pcw109550 Oct 16, 2025
06a14a0
add TestEndToEndBootstrapApplyWithUpgrade and UpgradeSuperchainConfig…
AmadiMichael Oct 16, 2025
823ebfb
refactor(test): improve SafeSend test coverage and quality (#17896)
devin-ai-integration[bot] Oct 16, 2025
10a7640
supernode: update readme (#17878)
axelKingsley Oct 16, 2025
3bdc740
make all _TestInit contracts abstract (#17889)
maurelian Oct 16, 2025
fde6441
fix(op-acceptance-tests): flaky tests; less filtering (#17891)
scharissis Oct 16, 2025
be7bd42
op-devstack: dynamically assign geth subprocess p2p listening port (#…
joshklop Oct 16, 2025
515f0c1
fix: no env var manipulation in VerifyOPCM tests (#17813)
smartcontracts Oct 16, 2025
8d7ef29
op-deployer: re-enable v3 upgrade test with new fork blockNum (#17852)
bitwiseguy Oct 16, 2025
55150e4
Set v0.1.0 and Docker Image Target (#17906)
axelKingsley Oct 16, 2025
4b37137
op-acceptance-tests: ELP2P down but payload appendable till chain tip…
pcw109550 Oct 17, 2025
d7d8791
add KONA_LOG_LEVEL (#17496)
DenseDenise Oct 17, 2025
1261c43
op-acceptance-tests: disable discovery for test (#17918)
nonsense Oct 17, 2025
69bd381
all: Update op-geth to use blobGasUsed field for DA footprint (#17861)
sebastianst Oct 17, 2025
9e29ba4
op-fetcher: Support the CANNON_KONA FaultDisputeGame (#17656)
Inphi Oct 17, 2025
3fac561
op-conductor: use op-service HTTP Server for Flashblocks ; fix test f…
axelKingsley Oct 17, 2025
7221832
Disable the guard upon ownership transfer (#17808)
maurelian Oct 18, 2025
e501362
proofs: Pass game type as a CWIA arg instead of a constructor arg (#1…
ajsutton Oct 19, 2025
8a2804f
fix(Makefile): remove Makefile sharding; rely on (op-e2e) in-test sha…
scharissis Oct 20, 2025
b9b1429
ci: Use a fixed version of mise in golang docker builds (#17954)
ajsutton Oct 20, 2025
4ecf8ac
op-devstack/dsl/operator_fee: compute expected vault increase from al…
geoknee Oct 21, 2025
aef7a88
ci: Clean up op-deployer caches (#17959)
mslipper Oct 21, 2025
49bc553
chore(op-acceptance-tests): flake-shake; test promotions (#17951)
opgitgovernance Oct 21, 2025
a492f73
fix(op-acceptance-tests): flake-shake; slack notification channel. (#…
scharissis Oct 21, 2025
48ff55d
opcm: Update upgrade method for disputegame-v2 (#17874)
Inphi Oct 21, 2025
aca9c3f
remove dead code (#17937)
geoknee Oct 21, 2025
a7c92d8
op-node: Fix gossip validation for Jovian blocks (#17940)
sebastianst Oct 21, 2025
32b170b
Update ManageDrippie.s.sol (#17717)
viktorking7 Oct 21, 2025
bb24f93
remove the superchainProxyAdmin input from upgradeSuperchainConfig fu…
AmadiMichael Oct 21, 2025
96fea29
Require that msgSender be an owner of the Safe (#17900)
maurelian Oct 21, 2025
dc43a31
op-service: improve beacon client robustness (#17866)
joshklop Oct 21, 2025
773798a
GasPriceOracle: remove saturating math from getOperatorFee (jovian) (…
geoknee Oct 21, 2025
b940308
fix(op-deployer): use temp cache dir for cli tests (#17965)
bitwiseguy Oct 21, 2025
4e57f1e
Improve SaferSafes test suite. (#17949)
maurelian Oct 21, 2025
eed9012
feat: IERC165 support on SaferSafes (#17864)
JosepBove Oct 21, 2025
6fa1e07
opcm: Add support for V2 contracts in addGameType (#17782)
ajsutton Oct 21, 2025
7b57030
Update contracts release documentation (#17719)
maurelian Oct 21, 2025
cca18bc
op-node: revive async block processing timing log (#17915)
bitwiseguy Oct 21, 2025
4889b66
fix: update cache paths, and make sure to save cache (#17968)
mds1 Oct 21, 2025
a3f8850
op-challenger: Support retrieving the oracle and prestate via game ar…
ajsutton Oct 21, 2025
07a6044
Upgrade Gnosis Safe libs to 1.4.1 (#17962)
alcueca Oct 21, 2025
2d9ada9
docs(op-batcher): Add runtime batcher flushing instructions (#17967)
geoknee Oct 22, 2025
8405ea1
update jovian upgrade transactions (#17971)
geoknee Oct 22, 2025
8288913
op-devstack: L2EL Engine API support: op-reth (#17964)
pcw109550 Oct 22, 2025
8d89359
op-chain-ops/genesis: add `MinBaseFee` to `L2InitializationConfig` (#…
geoknee Oct 22, 2025
e395e0a
feat: add op-supernode to be published (#17970)
jelias2 Oct 22, 2025
d3abbbd
Address potential reentrancy vector on LivenessModule2 (#17975)
alcueca Oct 22, 2025
113e1be
Merge branch 'develop' into chore/sync-splitter
0xDiscotech Oct 22, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
371 changes: 233 additions & 138 deletions .circleci/config.yml

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
[submodule "packages/contracts-bedrock/lib/safe-contracts"]
path = packages/contracts-bedrock/lib/safe-contracts
url = https://github.com/safe-global/safe-contracts
branch = v1.4.0
branch = v1.4.1
[submodule "packages/contracts-bedrock/lib/kontrol-cheatcodes"]
path = packages/contracts-bedrock/lib/kontrol-cheatcodes
url = https://github.com/runtimeverification/kontrol-cheatcodes
Expand Down
37 changes: 11 additions & 26 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,10 @@ op-dispute-mon: ## Builds op-dispute-mon binary
make -C ./op-dispute-mon op-dispute-mon
.PHONY: op-dispute-mon

op-supernode: ## Builds op-supernode binary
just $(JUSTFLAGS) ./op-supernode/op-supernode
.PHONY: op-supernode

op-program: ## Builds op-program binary
make -C ./op-program op-program
.PHONY: op-program
Expand Down Expand Up @@ -272,32 +276,13 @@ _go-tests-ci-internal:
@echo "Running Go tests with gotestsum..."
$(DEFAULT_TEST_ENV_VARS) && \
$(CI_ENV_VARS) && \
if [ -n "$$CIRCLE_NODE_TOTAL" ] && [ "$$CIRCLE_NODE_TOTAL" -gt 1 ]; then \
export NODE_INDEX=$${CIRCLE_NODE_INDEX:-0} && \
export NODE_TOTAL=$${CIRCLE_NODE_TOTAL:-1} && \
export PARALLEL_PACKAGES=$$(echo "$(ALL_TEST_PACKAGES)" | tr ' ' '\n' | awk -v idx=$$NODE_INDEX -v total=$$NODE_TOTAL 'NR % total == idx' | tr '\n' ' ') && \
if [ -n "$$PARALLEL_PACKAGES" ]; then \
echo "Node $$NODE_INDEX/$$NODE_TOTAL running packages: $$PARALLEL_PACKAGES"; \
gotestsum --format=testname \
--junitfile=./tmp/test-results/results-$$NODE_INDEX.xml \
--jsonfile=./tmp/testlogs/log-$$NODE_INDEX.json \
--rerun-fails=3 \
--rerun-fails-max-failures=50 \
--packages="$$PARALLEL_PACKAGES" \
-- -parallel=$$PARALLEL -coverprofile=coverage-$$NODE_INDEX.out $(GO_TEST_FLAGS) -timeout=$(TEST_TIMEOUT) -tags="ci"; \
else \
echo "ERROR: Node $$NODE_INDEX/$$NODE_TOTAL has no packages to run! Perhaps parallelism is set too high? (ALL_TEST_PACKAGES has $$(echo '$(ALL_TEST_PACKAGES)' | wc -w) packages)"; \
exit 1; \
fi; \
else \
gotestsum --format=testname \
--junitfile=./tmp/test-results/results.xml \
--jsonfile=./tmp/testlogs/log.json \
--rerun-fails=3 \
--rerun-fails-max-failures=50 \
--packages="$(ALL_TEST_PACKAGES)" \
-- -parallel=$$PARALLEL -coverprofile=coverage.out $(GO_TEST_FLAGS) -timeout=$(TEST_TIMEOUT) -tags="ci"; \
fi
gotestsum --format=testname \
--junitfile=./tmp/test-results/results.xml \
--jsonfile=./tmp/testlogs/log.json \
--rerun-fails=3 \
--rerun-fails-max-failures=50 \
--packages="$(ALL_TEST_PACKAGES)" \
-- -parallel=$$PARALLEL -coverprofile=coverage.out $(GO_TEST_FLAGS) -timeout=$(TEST_TIMEOUT) -tags="ci";
.PHONY: _go-tests-ci-internal

go-tests-short-ci: ## Runs short Go tests with gotestsum for CI (assumes deps built by CI)
Expand Down
9 changes: 7 additions & 2 deletions devnet-sdk/shell/env/devnet.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import (
"github.com/ethereum-optimism/optimism/devnet-sdk/controller/surface"
"github.com/ethereum-optimism/optimism/devnet-sdk/descriptors"
"github.com/ethereum-optimism/optimism/op-node/rollup"
"github.com/ethereum-optimism/optimism/op-service/eth"
"github.com/ethereum/go-ethereum/params"
)

Expand Down Expand Up @@ -138,8 +139,12 @@ func fixupDevnetConfig(config *descriptors.DevnetEnvironment) error {
return fmt.Errorf("invalid L1 ID: %s", config.L1.ID)
}
if config.L1.Config == nil {
config.L1.Config = &params.ChainConfig{
ChainID: l1ID,
if l1Config := eth.L1ChainConfigByChainID(eth.ChainIDFromBig(l1ID)); l1Config != nil {
config.L1.Config = l1Config
} else {
config.L1.Config = &params.ChainConfig{
ChainID: l1ID,
}
}
}
for _, l2Chain := range config.L2 {
Expand Down
17 changes: 17 additions & 0 deletions docker-bake.hcl
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,10 @@ variable "OP_SUPERVISOR_VERSION" {
default = "${GIT_VERSION}"
}

variable "OP_SUPERNODE_VERSION" {
default = "${GIT_VERSION}"
}

variable "OP_TEST_SEQUENCER_VERSION" {
default = "${GIT_VERSION}"
}
Expand Down Expand Up @@ -216,6 +220,19 @@ target "op-supervisor" {
tags = [for tag in split(",", IMAGE_TAGS) : "${REGISTRY}/${REPOSITORY}/op-supervisor:${tag}"]
}

target "op-supernode" {
dockerfile = "ops/docker/op-stack-go/Dockerfile"
context = "."
args = {
GIT_COMMIT = "${GIT_COMMIT}"
GIT_DATE = "${GIT_DATE}"
OP_SUPERNODE_VERSION = "${OP_SUPERNODE_VERSION}"
}
target = "op-supernode-target"
platforms = split(",", PLATFORMS)
tags = [for tag in split(",", IMAGE_TAGS) : "${REGISTRY}/${REPOSITORY}/op-supernode:${tag}"]
}

target "op-test-sequencer" {
dockerfile = "ops/docker/op-stack-go/Dockerfile"
context = "."
Expand Down
Binary file modified docs/security-reviews/2025_09-U16a-Spearbit.pdf
Binary file not shown.
9 changes: 7 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,14 @@ require (
github.com/docker/docker v27.5.1+incompatible
github.com/docker/go-connections v0.5.0
github.com/ethereum-optimism/go-ethereum-hdwallet v0.1.4-0.20251001155152-4eb15ccedf7e
github.com/ethereum-optimism/superchain-registry/validation v0.0.0-20250603144016-9c45ca7d4508
github.com/ethereum-optimism/superchain-registry/validation v0.0.0-20251009180028-9b4658b9b7af
github.com/ethereum/go-ethereum v1.16.3
github.com/fatih/color v1.18.0
github.com/fsnotify/fsnotify v1.9.0
github.com/go-task/slim-sprig/v3 v3.0.0
github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb
github.com/google/go-cmp v0.7.0
github.com/google/go-github/v55 v55.0.0
github.com/google/gofuzz v1.2.1-0.20220503160820-4a35382e8fc8
github.com/google/uuid v1.6.0
github.com/gorilla/websocket v1.5.3
Expand Down Expand Up @@ -67,6 +68,7 @@ require (
golang.org/x/crypto v0.36.0
golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c
golang.org/x/mod v0.22.0
golang.org/x/oauth2 v0.25.0
golang.org/x/sync v0.14.0
golang.org/x/term v0.30.0
golang.org/x/text v0.25.0
Expand All @@ -82,6 +84,7 @@ require (
git.sr.ht/~sbinet/gg v0.6.0 // indirect
github.com/DataDog/zstd v1.5.6-0.20230824185856-869dae002e5e // indirect
github.com/Microsoft/go-winio v0.6.2 // indirect
github.com/ProtonMail/go-crypto v0.0.0-20230217124315-7d5c6f04bbb8 // indirect
github.com/VictoriaMetrics/fastcache v1.12.2 // indirect
github.com/adrg/xdg v0.4.0 // indirect
github.com/ajstarks/svgo v0.0.0-20211024235047-1546f124cd8b // indirect
Expand All @@ -97,6 +100,7 @@ require (
github.com/campoy/embedmd v1.0.0 // indirect
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
github.com/cespare/xxhash/v2 v2.3.0 // indirect
github.com/cloudflare/circl v1.3.3 // indirect
github.com/cockroachdb/errors v1.11.3 // indirect
github.com/cockroachdb/fifo v0.0.0-20240606204812-0bbfbd93a7ce // indirect
github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b // indirect
Expand Down Expand Up @@ -144,6 +148,7 @@ require (
github.com/gogo/protobuf v1.3.2 // indirect
github.com/golang-jwt/jwt/v4 v4.5.2 // indirect
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect
github.com/google/go-querystring v1.1.0 // indirect
github.com/google/gopacket v1.1.19 // indirect
github.com/google/pprof v0.0.0-20241009165004-a3522334989c // indirect
github.com/graph-gophers/graphql-go v1.3.0 // indirect
Expand Down Expand Up @@ -303,7 +308,7 @@ require (
lukechampine.com/blake3 v1.3.0 // indirect
)

replace github.com/ethereum/go-ethereum => github.com/ethereum-optimism/op-geth v1.101603.1-rc.1
replace github.com/ethereum/go-ethereum => github.com/ethereum-optimism/op-geth v1.101603.2-0.20251017174928-6658a36c9862

// replace github.com/ethereum/go-ethereum => ../op-geth

Expand Down
20 changes: 16 additions & 4 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ github.com/Masterminds/semver/v3 v3.3.1/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lpr
github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY=
github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU=
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
github.com/ProtonMail/go-crypto v0.0.0-20230217124315-7d5c6f04bbb8 h1:wPbRQzjjwFc0ih8puEVAOFGELsn1zoIIYdxvML7mDxA=
github.com/ProtonMail/go-crypto v0.0.0-20230217124315-7d5c6f04bbb8/go.mod h1:I0gYDMZ6Z5GRU7l58bNFSkPTFN6Yl12dsUlAZ8xy98g=
github.com/VictoriaMetrics/fastcache v1.12.2 h1:N0y9ASrJ0F6h0QaC3o6uJb3NIZ9VKLjCM7NQbSmF7WI=
github.com/VictoriaMetrics/fastcache v1.12.2/go.mod h1:AmC+Nzz1+3G2eCPapF6UcsnkThDcMsQicp4xDukwJYI=
github.com/adrg/xdg v0.4.0 h1:RzRqFcjH4nE5C6oTAxhBtoE2IRyjBSa62SCbyPidvls=
Expand Down Expand Up @@ -106,6 +108,7 @@ github.com/btcsuite/snappy-go v1.0.0/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg
github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY=
github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs=
github.com/buger/jsonparser v0.0.0-20181115193947-bf1c66bbce23/go.mod h1:bbYlZJ7hK1yFx9hf58LP0zeX7UjIGs20ufpu3evjr+s=
github.com/bwesterb/go-ristretto v1.2.0/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0=
github.com/campoy/embedmd v1.0.0 h1:V4kI2qTJJLf4J29RzI/MAt2c3Bl4dQSYPuflzwFH2hY=
github.com/campoy/embedmd v1.0.0/go.mod h1:oxyr9RCiSXg0M3VJ3ks0UGfp98BpSSGr0kpiX3MzVl8=
github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8=
Expand Down Expand Up @@ -136,6 +139,9 @@ github.com/cilium/ebpf v0.2.0/go.mod h1:To2CFviqOWL/M0gIMsvSMlqe7em/l1ALkX1PyjrX
github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6Dob7S7YxXgwXpfOuvO54S+tGdZdw9fuRZt25Ag=
github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I=
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
github.com/cloudflare/circl v1.1.0/go.mod h1:prBCrKB9DV4poKZY1l9zBXg2QJY7mvgRvtMxxK7fi4I=
github.com/cloudflare/circl v1.3.3 h1:fE/Qz0QdIGqeWfnwq0RE0R7MI51s0M2E4Ga9kq5AEMs=
github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA=
github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f h1:otljaYPt5hWxV3MUfO5dFPFiOXg9CyG5/kCfayTqsJ4=
github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f/go.mod h1:a9RdTaap04u637JoCzcUoIcDmvwSUtcUFtT/C3kJlTU=
github.com/cockroachdb/errors v1.11.3 h1:5bA+k2Y6r+oz/6Z/RFlNeVCesGARKuC6YymtcDrbC/I=
Expand Down Expand Up @@ -232,10 +238,10 @@ github.com/emicklei/dot v1.6.2 h1:08GN+DD79cy/tzN6uLCT84+2Wk9u+wvqP+Hkx/dIR8A=
github.com/emicklei/dot v1.6.2/go.mod h1:DeV7GvQtIw4h2u73RKBkkFdvVAz0D9fzeJrgPW6gy/s=
github.com/ethereum-optimism/go-ethereum-hdwallet v0.1.4-0.20251001155152-4eb15ccedf7e h1:iy1vBIzACYUyOVyoADUwvAiq2eOPC0yVsDUdolPwQjk=
github.com/ethereum-optimism/go-ethereum-hdwallet v0.1.4-0.20251001155152-4eb15ccedf7e/go.mod h1:DYj7+vYJ4cIB7zera9mv4LcAynCL5u4YVfoeUu6Wa+w=
github.com/ethereum-optimism/op-geth v1.101603.1-rc.1 h1:qH+BM+AHrHFWPonJEpapmyo/LJhqj9/TGsRaWg4RCYg=
github.com/ethereum-optimism/op-geth v1.101603.1-rc.1/go.mod h1:Ct2QjqZ2UKgvvgKLLYzoh/DBicJZB8DXsv45DgEjcco=
github.com/ethereum-optimism/superchain-registry/validation v0.0.0-20250603144016-9c45ca7d4508 h1:A/3QVFt+Aa9ozpPVXxUTLui8honBjSusAaiCVRbafgs=
github.com/ethereum-optimism/superchain-registry/validation v0.0.0-20250603144016-9c45ca7d4508/go.mod h1:NZ816PzLU1TLv1RdAvYAb6KWOj4Zm5aInT0YpDVml2Y=
github.com/ethereum-optimism/op-geth v1.101603.2-0.20251017174928-6658a36c9862 h1:15VLb6evTBOzznvwZxesXxLFI34gHjFfIlU+Oaga3sc=
github.com/ethereum-optimism/op-geth v1.101603.2-0.20251017174928-6658a36c9862/go.mod h1:Ct2QjqZ2UKgvvgKLLYzoh/DBicJZB8DXsv45DgEjcco=
github.com/ethereum-optimism/superchain-registry/validation v0.0.0-20251009180028-9b4658b9b7af h1:WWz0gJM/boaUImtJnROecPirAerKCLpAU4m6Tx0ArOg=
github.com/ethereum-optimism/superchain-registry/validation v0.0.0-20251009180028-9b4658b9b7af/go.mod h1:NZ816PzLU1TLv1RdAvYAb6KWOj4Zm5aInT0YpDVml2Y=
github.com/ethereum/c-kzg-4844/v2 v2.1.0 h1:gQropX9YFBhl3g4HYhwE70zq3IHFRgbbNPw0Shwzf5w=
github.com/ethereum/c-kzg-4844/v2 v2.1.0/go.mod h1:TC48kOKjJKPbN7C++qIgt0TJzZ70QznYR7Ob+WXl57E=
github.com/ethereum/go-verkle v0.2.2 h1:I2W0WjnrFUIzzVPwm8ykY+7pL2d4VhlsePn4j7cnFk8=
Expand Down Expand Up @@ -355,7 +361,11 @@ github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ=
github.com/google/go-github/v55 v55.0.0 h1:4pp/1tNMB9X/LuAhs5i0KQAE40NmiR/y6prLNb9x9cg=
github.com/google/go-github/v55 v55.0.0/go.mod h1:JLahOTA1DnXzhxEymmFF5PP2tSS9JVNj68mSZNDwskA=
github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck=
github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8=
github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU=
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/gofuzz v1.2.1-0.20220503160820-4a35382e8fc8 h1:Ep/joEub9YwcjRY6ND3+Y/w0ncE540RtGatVhtZL0/Q=
github.com/google/gofuzz v1.2.1-0.20220503160820-4a35382e8fc8/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
Expand Down Expand Up @@ -1056,6 +1066,8 @@ golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAG
golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.25.0 h1:CY4y7XT9v0cRI9oupztF8AgiIu99L/ksR/Xp/6jrZ70=
golang.org/x/oauth2 v0.25.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
golang.org/x/perf v0.0.0-20180704124530-6e6d33e29852/go.mod h1:JLpeXjPJfIyPr5TlbXLkXWLhP8nz10XfvxElABhCtcw=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
Expand Down
3 changes: 2 additions & 1 deletion mise.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ svm-rs = "0.5.19"

# Go dependencies
"go:github.com/ethereum/go-ethereum/cmd/abigen" = "1.15.10"
"go:github.com/ethereum/go-ethereum/cmd/geth" = "1.16.4" # Osaka release.
"go:gotest.tools/gotestsum" = "1.12.1"
"go:github.com/vektra/mockery/v2" = "2.46.0"
"go:github.com/golangci/golangci-lint/cmd/golangci-lint" = "1.64.8"
Expand All @@ -37,7 +38,7 @@ anvil = "1.1.0"
codecov-uploader = "0.8.0"
goreleaser-pro = "2.11.2"
kurtosis = "1.8.1"
op-acceptor = "op-acceptor/v3.4.2"
op-acceptor = "op-acceptor/v3.6.0"

# Fake dependencies
# Put things here if you need to track versions of tools or projects that can't
Expand Down
34 changes: 23 additions & 11 deletions op-acceptance-tests/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -212,21 +212,14 @@ gates:
tests:
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/yourtest
timeout: 10m
metadata:
target_gate: base # Where to promote once stable
metatada:
owner: stefano
```

### Understanding Reports

Flake-shake generates comprehensive reports in two formats:
- **`flake-shake-report.json`**: Machine-readable results for automation
- **`flake-shake-report.html`**: Human-friendly visualization with charts

Reports include:
- **Pass rate**: Percentage of successful runs per test
- **Timing statistics**: Min/avg/max execution duration
- **Failure patterns**: First few failure logs for debugging
- **Stability recommendation**: STABLE or UNSTABLE classification
Flake-shake stores a daily summary artifact per run:
- **`final-report/daily-summary.json`**: Aggregated counts of stable/unstable tests and per-test pass/fail tallies.

### CI Integration

Expand All @@ -235,6 +228,25 @@ In CI, flake-shake runs tests across multiple parallel workers:
- Results are aggregated using the `flake-shake-aggregator` tool
- Reports are stored as CircleCI artifacts

### Automated Promotion (Promoter CLI)

We provide a small CLI that aggregates the last N daily summaries from CircleCI and proposes YAML edits to promote stable tests out of the `flake-shake` gate:

```bash
export CIRCLE_API_TOKEN=... # CircleCI API token (read artifacts)
go build -o ./op-acceptance-tests/flake-shake-promoter ./op-acceptance-tests/cmd/flake-shake-promoter/main.go
./op-acceptance-tests/flake-shake-promoter \
--org ethereum-optimism --repo optimism --branch develop \
--workflow scheduled-flake-shake --report-job op-acceptance-tests-flake-shake-report \
--days 3 --gate flake-shake --min-runs 300 --max-failure-rate 0.01 --min-age-days 3 \
--out ./final-promotion --dry-run
```

Outputs written to `--out`:
- `aggregate.json`: Per-test aggregated totals across days
- `promotion-ready.json`: Candidates and skip reasons
- `promotion.yaml`: Proposed edits to `op-acceptance-tests/acceptance-tests.yaml`

### Promotion Criteria

Tests should remain in flake-shake until they demonstrate consistent stability:
Expand Down
28 changes: 6 additions & 22 deletions op-acceptance-tests/acceptance-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,36 +5,20 @@
# base gate as well as any earlier fork gates.

gates:
# New tests should be added here first with target_gate metadata.
# Once we're confident they're not flaky, they will be promoted.
# New tests should be added here first with an owner metadata.
# Once we're confident they're not flaky, a PR will be automatically created to remove them from this gate.
# Example entry format:
# - package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/parallelism
# timeout: 10m
# metadata:
# target_gate: base # Will be promoted to base gate once stable
# added_date: "2025-01-23"
# owner: "team-infra"
- id: flake-shake
description: "Quarantine gate for new and potentially flaky tests requiring stability validation."
tests:
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/sync_tester/sync_tester_elsync
name: TestSyncTesterELSync
timeout: 10m
metadata:
target_gate: sync-test-op-node
owner: "changwan,anton"
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/jovian
name: TestMinBaseFee
timeout: 10m
metadata:
target_gate: jovian
owner: "george"
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/base/withdrawal
name: TestWithdrawal
timeout: 10m
metadata:
target_gate: base
owner: "stefano"
- package: github.com/ethereum-optimism/optimism/op-acceptance-tests/tests/sync/elsync/gap_elp2p
name: TestL2ELP2PCanonicalChainAdvancedByFCU
timeout: 30m
owner: "changwan,anton"

- id: isthmus
description: "Isthmus network tests."
Expand Down
Loading