Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
821e0eb
Maybe? fix CircleCI
QuentinI Nov 11, 2025
72935ba
circleci: Enable workflow on all branches via API trigger
dailinsubjam Nov 10, 2025
95bc030
Trigger CI
dailinsubjam Nov 11, 2025
1b07a10
circleci: Match upstream Celo workflow trigger conditions
dailinsubjam Nov 11, 2025
8f9366c
Revert "circleci: Match upstream Celo workflow trigger conditions"
dailinsubjam Nov 11, 2025
cfbc108
op-program: Add L1FinalizedBlock method to OracleL1Client
dailinsubjam Nov 11, 2025
63c6ad0
fix lint error
dailinsubjam Nov 11, 2025
3ca19b7
fix lint error
dailinsubjam Nov 11, 2025
1b41302
Update semver-lock.json snapshot
dailinsubjam Nov 11, 2025
c16ad6b
skip GCP auth for now
dailinsubjam Nov 11, 2025
8adfbcb
fix config file
dailinsubjam Nov 11, 2025
2a2ee28
go mod tidy
dailinsubjam Nov 11, 2025
5915eea
xlarge to large and skip jobs need auth
dailinsubjam Nov 11, 2025
8e770eb
Skip tests requiring RPC URLs when env vars not set
dailinsubjam Nov 12, 2025
05bf293
fix semver-lock.json
dailinsubjam Nov 12, 2025
ecee731
try to increase the timeout to fix the go tests
dailinsubjam Nov 12, 2025
19adecb
skip flaky test
dailinsubjam Nov 12, 2025
942459f
instead of skipping tests in testfiles, overriding TEST_PKGS in config
dailinsubjam Nov 12, 2025
1d4ee80
remove unneeded changes
dailinsubjam Nov 12, 2025
d37f77d
don't skip in the testfile
dailinsubjam Nov 12, 2025
99c0b55
continue cleanup
dailinsubjam Nov 12, 2025
a4056a2
make sure all auth related line is added by the todo task
dailinsubjam Nov 12, 2025
468f6e6
add comment for test packages included in .circleci/config.yml
dailinsubjam Nov 12, 2025
9963cf7
add TODO before asana task
dailinsubjam Nov 12, 2025
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
123 changes: 66 additions & 57 deletions .circleci/config.yml
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: could you add TODO before the Asana links since we might search for TODO in the future?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated in 9963cf7.

Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,8 @@ commands:
name: "Authenticate with GCP using OIDC"
command: |
# Configure gcloud to leverage the generated credential configuration
gcloud auth login --brief --cred-file "<< parameters.gcp_cred_config_file_path >>"
# TODO: https://app.asana.com/1/1208976916964769/project/1209976130071762/task/1211927036399950?focus=true
gcloud auth login --brief --cred-file "<< parameters.gcp_cred_config_file_path >>" || true
# Configure ADC
echo "export GOOGLE_APPLICATION_CREDENTIALS='<< parameters.gcp_cred_config_file_path >>'" | tee -a "$BASH_ENV"

Expand Down Expand Up @@ -840,7 +841,7 @@ jobs:
type: string
docker:
- image: <<pipeline.parameters.default_docker_image>>
resource_class: xlarge
resource_class: large
steps:
- utils/checkout-with-mise
- attach_workspace: { at: "." }
Expand Down Expand Up @@ -1211,7 +1212,7 @@ jobs:
type: string
default: 30m
machine: true
resource_class: xlarge
resource_class: large
steps:
- utils/checkout-with-mise
- install-contracts-dependencies
Expand Down Expand Up @@ -1880,32 +1881,39 @@ workflows:
test_timeout: 20m
environment_overrides: |
export PARALLEL=24
# op-deployer & op-validator excluded as they need sepolia keys
packages: |
op-alt-da
op-batcher
op-chain-ops
op-node
op-proposer
op-challenger
op-dispute-mon
op-conductor
op-program
op-service
op-supervisor
op-fetcher
op-e2e/system
op-e2e/e2eutils
op-e2e/opgeth
op-e2e/interop
op-e2e/actions
op-e2e/faultproofs
packages/contracts-bedrock/scripts/checks
packages/contracts-bedrock/scripts/verify
op-dripper
devnet-sdk
op-acceptance-tests
kurtosis-devnet
# some op-deployer & op-validator excluded as they need sepolia keys or sepolia url
export TEST_PKGS="\
./op-alt-da/... \
./op-batcher/... \
./op-chain-ops/... \
./op-node/... \
./op-proposer/... \
./op-challenger/... \
./op-faucet/... \
./op-dispute-mon/... \
./op-conductor/... \
./op-program/... \
./op-service/... \
./op-supervisor/... \
./op-test-sequencer/... \
./op-fetcher/... \
./op-e2e/system/... \
./op-e2e/e2eutils/... \
./op-e2e/opgeth/... \
./op-e2e/interop/... \
./packages/contracts-bedrock/scripts/checks/... \
./op-dripper/... \
./devnet-sdk/... \
./op-acceptance-tests/... \
./kurtosis-devnet/... \
./op-devstack/... \
./op-deployer/pkg/deployer/artifacts/... \
./op-deployer/pkg/deployer/broadcaster/... \
./op-deployer/pkg/deployer/clean/... \
./op-deployer/pkg/deployer/integration_test/... \
./op-deployer/pkg/deployer/interop/... \
./op-deployer/pkg/deployer/standard/... \
./op-deployer/pkg/deployer/state/..."
requires:
- contracts-bedrock-build
- cannon-prestate-quick
Expand All @@ -1914,10 +1922,10 @@ workflows:
- discord
# TODO(#15353) - Need to regenerate data used in op-program-compat and then reenable this test
# See: https://github.com/ethereum-optimism/chain-test-data?tab=readme-ov-file#generating-new-data
# - op-program-compat:
# context:
# - circleci-repo-readonly-authenticated-github-token
# - discord
# - op-program-compat:
# context:
# - circleci-repo-readonly-authenticated-github-token
# - discord
- bedrock-go-tests:
requires:
- go-lint
Expand Down Expand Up @@ -2298,12 +2306,12 @@ workflows:
context:
- circleci-repo-readonly-authenticated-github-token
- discord
# Generate flaky test report
- generate-flaky-report:
name: generate-flaky-tests-report
context:
- circleci-repo-readonly-authenticated-github-token
- circleci-api-token
# Generate flaky test report : CircleCI API token not configured TODO: https://app.asana.com/1/1208976916964769/project/1209976130071762/task/1211927036399950?focus=true
# - generate-flaky-report:
# name: generate-flaky-tests-report
# context:
# - circleci-repo-readonly-authenticated-github-token
# - circleci-api-token

# Acceptance tests (pre-merge to develop)
acceptance-tests-pr:
Expand Down Expand Up @@ -2344,12 +2352,12 @@ workflows:
# context:
# - circleci-repo-readonly-authenticated-github-token
# - discord
# Generate flaky test report
- generate-flaky-report:
name: generate-flaky-tests-report
context:
- circleci-repo-readonly-authenticated-github-token
- circleci-api-token
# Generate flaky test report - Disabled: CircleCI API token not configured TODO: https://app.asana.com/1/1208976916964769/project/1209976130071762/task/1211927036399950?focus=true
# - generate-flaky-report:
# name: generate-flaky-tests-report
# context:
# - circleci-repo-readonly-authenticated-github-token
# - circleci-api-token

close-issue-workflow:
when:
Expand All @@ -2367,15 +2375,16 @@ workflows:
context:
- circleci-repo-optimism

devnet-metrics-collect:
when:
or:
- equal: [<< pipeline.trigger_source >>, "webhook"]
- and:
- equal: [true, << pipeline.parameters.devnet-metrics-collect >>]
- equal: [<< pipeline.trigger_source >>, "api"]
jobs:
- devnet-metrics-collect-authorship:
context:
- circleci-repo-readonly-authenticated-github-token
- oplabs-tools-data-public-metrics-bucket
# Disabled: GCP auth not configured TODO: https://app.asana.com/1/1208976916964769/project/1209976130071762/task/1211927036399950?focus=true
# devnet-metrics-collect:
# when:
# or:
# - equal: [<< pipeline.trigger_source >>, "webhook"]
# - and:
# - equal: [true, << pipeline.parameters.devnet-metrics-collect >>]
# - equal: [<< pipeline.trigger_source >>, "api"]
# jobs:
# - devnet-metrics-collect-authorship:
# context:
# - circleci-repo-readonly-authenticated-github-token
# - oplabs-tools-data-public-metrics-bucket
28 changes: 14 additions & 14 deletions espresso/streamer_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -279,29 +279,29 @@ type NoOpLogger struct{}

var _ log.Logger = (*NoOpLogger)(nil)

func (l *NoOpLogger) With(ctx ...interface{}) log.Logger { return l }
func (l *NoOpLogger) New(ctx ...interface{}) log.Logger { return l }
func (l *NoOpLogger) Log(level slog.Level, msg string, ctx ...interface{}) {}
func (l *NoOpLogger) Trace(msg string, ctx ...interface{}) {}
func (l *NoOpLogger) Debug(msg string, ctx ...interface{}) {}
func (l *NoOpLogger) Info(msg string, ctx ...interface{}) {}
func (l *NoOpLogger) Warn(msg string, ctx ...interface{}) {}
func (l *NoOpLogger) Error(msg string, ctx ...interface{}) {}
func (l *NoOpLogger) Crit(msg string, ctx ...interface{}) { panic("critical error") }
func (l *NoOpLogger) Write(level slog.Level, msg string, attrs ...any) {}
func (l *NoOpLogger) Enabled(ctx context.Context, level slog.Level) bool { return true }
func (l *NoOpLogger) Handler() slog.Handler { return nil }
func (l *NoOpLogger) With(ctx ...interface{}) log.Logger { return l }
func (l *NoOpLogger) New(ctx ...interface{}) log.Logger { return l }
func (l *NoOpLogger) Log(level slog.Level, msg string, ctx ...interface{}) {}
func (l *NoOpLogger) Trace(msg string, ctx ...interface{}) {}
func (l *NoOpLogger) Debug(msg string, ctx ...interface{}) {}
func (l *NoOpLogger) Info(msg string, ctx ...interface{}) {}
func (l *NoOpLogger) Warn(msg string, ctx ...interface{}) {}
func (l *NoOpLogger) Error(msg string, ctx ...interface{}) {}
func (l *NoOpLogger) Crit(msg string, ctx ...interface{}) { panic("critical error") }
func (l *NoOpLogger) Write(level slog.Level, msg string, attrs ...any) {}
func (l *NoOpLogger) Enabled(ctx context.Context, level slog.Level) bool { return true }
func (l *NoOpLogger) Handler() slog.Handler { return nil }
func (l *NoOpLogger) TraceContext(ctx context.Context, msg string, ctxArgs ...interface{}) {}
func (l *NoOpLogger) DebugContext(ctx context.Context, msg string, ctxArgs ...interface{}) {}
func (l *NoOpLogger) InfoContext(ctx context.Context, msg string, ctxArgs ...interface{}) {}
func (l *NoOpLogger) WarnContext(ctx context.Context, msg string, ctxArgs ...interface{}) {}
func (l *NoOpLogger) ErrorContext(ctx context.Context, msg string, ctxArgs ...interface{}) {}
func (l *NoOpLogger) CritContext(ctx context.Context, msg string, ctxArgs ...interface{}) {
func (l *NoOpLogger) CritContext(ctx context.Context, msg string, ctxArgs ...interface{}) {
panic("critical error")
}
func (l *NoOpLogger) LogAttrs(ctx context.Context, level slog.Level, msg string, attrs ...slog.Attr) {
}
func (l *NoOpLogger) SetContext(ctx context.Context) {}
func (l *NoOpLogger) SetContext(ctx context.Context) {}
func (l *NoOpLogger) WriteCtx(ctx context.Context, level slog.Level, msg string, args ...any) {}

func createHashFromHeight(height uint64) common.Hash {
Expand Down
1 change: 0 additions & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,6 @@ require (
github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b // indirect
github.com/cockroachdb/redact v1.1.5 // indirect
github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 // indirect
github.com/coder/websocket v1.8.13
github.com/consensys/bavard v0.1.27 // indirect
github.com/containerd/cgroups v1.1.0 // indirect
github.com/containerd/log v0.1.0 // indirect
Expand Down
2 changes: 0 additions & 2 deletions op-batcher/batcher/driver.go
Original file line number Diff line number Diff line change
Expand Up @@ -126,8 +126,6 @@ type BatchSubmitter struct {

throttling atomic.Bool // whether the batcher is throttling sequencers and additional endpoints

submitter *espressoTransactionSubmitter
streamer espresso.EspressoStreamer[derive.EspressoBatch]
txpoolMutex sync.Mutex // guards txpoolState and txpoolBlockedBlob
txpoolState TxPoolState
txpoolBlockedBlob bool
Expand Down
3 changes: 1 addition & 2 deletions op-batcher/batcher/espresso.go
Original file line number Diff line number Diff line change
Expand Up @@ -875,8 +875,7 @@ func (l *BlockLoader) nextBlockRange(newSyncStatus *eth.SyncStatus) (inclusiveBl
return inclusiveBlockRange{}, ActionRetry
}

var safeL2 eth.L2BlockRef
safeL2 = newSyncStatus.SafeL2
safeL2 := newSyncStatus.SafeL2

// State empty, just enqueue all unsafe blocks
if len(l.queuedBlocks) == 0 {
Expand Down
6 changes: 0 additions & 6 deletions op-deployer/pkg/deployer/state/deploy_config.go
Original file line number Diff line number Diff line change
Expand Up @@ -168,12 +168,6 @@ func CombineDeployConfig(intent *Intent, chainIntent *ChainIntent, state *State,
return cfg, nil
}

func mustHexBigFromHex(hex string) *hexutil.Big {
num := hexutil.MustDecodeBig(hex)
hexBig := hexutil.Big(*num)
return &hexBig
}

func calculateBatchInboxAddr(chainState *ChainState) common.Address {
if chainState.BatchInboxAddress != (common.Address{}) {
return chainState.BatchInboxAddress
Expand Down
14 changes: 7 additions & 7 deletions op-e2e/config/init.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,13 +52,13 @@ const (
type AllocType string

const (
AllocTypeStandard AllocType = "standard"
AllocTypeAltDA AllocType = "alt-da"
AllocTypeAltDAGeneric AllocType = "alt-da-generic"
AllocTypeL2OO AllocType = "l2oo"
AllocTypeMTCannon AllocType = "mt-cannon"
AllocTypeMTCannonNext AllocType = "mt-cannon-next"
AllocTypeEspresso AllocType = "espresso"
AllocTypeStandard AllocType = "standard"
AllocTypeAltDA AllocType = "alt-da"
AllocTypeAltDAGeneric AllocType = "alt-da-generic"
AllocTypeL2OO AllocType = "l2oo"
AllocTypeMTCannon AllocType = "mt-cannon"
AllocTypeMTCannonNext AllocType = "mt-cannon-next"
AllocTypeEspresso AllocType = "espresso"
AllocTypeEspressoWithoutEnclave AllocType = "espresso-no-enclave"
AllocTypeEspressoWithEnclave AllocType = "espresso-enclave"

Expand Down
5 changes: 5 additions & 0 deletions op-program/client/l1/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,11 @@ func (o *OracleL1Client) L1BlockRefByLabel(ctx context.Context, label eth.BlockL
return o.head, nil
}

func (o *OracleL1Client) L1FinalizedBlock() (eth.L1BlockRef, error) {
// The L1 head is pre-agreed and unchanging so it can be used as finalized
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this function used anywhere?

Copy link
Copy Markdown
Author

@dailinsubjam dailinsubjam Nov 12, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, it's part of the L1Fetcher we added, and because we didn't maintain upstream compatibility, we'll need to add this function to every new client that is the type L1Fetcher.

return o.head, nil
}

func (o *OracleL1Client) L1BlockRefByNumber(ctx context.Context, number uint64) (eth.L1BlockRef, error) {
if number > o.head.Number {
return eth.L1BlockRef{}, fmt.Errorf("%w: block number %d", ErrNotFound, number)
Expand Down
5 changes: 1 addition & 4 deletions op-supervisor/supervisor/backend/depset/links.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,10 +58,7 @@ func (lc *LinkCheckerImpl) CanExecute(execInChain eth.ChainID,
return false
}
expiresAt := safemath.SaturatingAdd(initTimestamp, lc.cfg.MessageExpiryWindow())
if expiresAt < execInTimestamp { // expiry check
return false
}
return true
return expiresAt >= execInTimestamp // expiry check
}

// LinkCheckFn is a function-type that implements LinkChecker, for testing and other special case definitions
Expand Down
4 changes: 2 additions & 2 deletions packages/contracts-bedrock/snapshots/semver-lock.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"src/L1/BatchAuthenticator.sol:BatchAuthenticator": {
"initCodeHash": "0x90f154249a328699903e02c068f01f4f99fc9b5d79bccc4104fd006fdaaec4df",
"initCodeHash": "0x886ad73f143db896806140ccb2a64c353c4822bcc6021e1e6bb48497da478d1c",
"sourceCodeHash": "0xb0769be04670274b46231d81eb19b7bac6f2f8d4b4989ad9dda4aea85ef6166d"
},
"src/L1/DataAvailabilityChallenge.sol:DataAvailabilityChallenge": {
Expand Down Expand Up @@ -223,4 +223,4 @@
"initCodeHash": "0x2bfce526f82622288333d53ca3f43a0a94306ba1bab99241daa845f8f4b18bd4",
"sourceCodeHash": "0xf49d7b0187912a6bb67926a3222ae51121e9239495213c975b3b4b217ee57a1b"
}
}
}