Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
98 commits
Select commit Hold shift + click to select a range
850cf5a
tests(eth/downloader): refactor receiptreference_test.go (#771)
geoknee Mar 2, 2026
dbb4aa0
txpool: drop interop transactions on reorg (#772)
karlfloersch Mar 3, 2026
8f217a0
Focus README on Celo-specific documentation (#334)
karlb Feb 17, 2025
4bab44a
Create funding.json
marekolszewski Sep 5, 2024
3ef41a3
Remove SECURITY.md
karlb Sep 29, 2025
2215e9a
txpool: Skip flaky test from upstream
piersy May 12, 2025
52722a0
github: Configure Renovate (#45)
renovate[bot] Jan 30, 2024
b1b0097
github: Add forkdiff comparison to op-geth
karlb Dec 10, 2024
af9a93c
forkdiff: Set docker platform for local testing
karlb Nov 26, 2024
dd1c7cc
github: workflow for container image (#329, #365)
karlb Dec 10, 2024
da38ed9
github: op-geth Release workflows for CELO (#314, #318, #357, #365)
alvarof2 Jan 30, 2025
67708ba
github: add dependency review github action (#133)
pputman-clabs May 20, 2024
70dbc6c
github: add scorecard (#220, #223, #295)
pputman-clabs Sep 17, 2024
8846226
github: Switch e2e test and linter job to GH actions
palango Aug 16, 2023
9f6cfcd
github: Snapsync test workflow (#370)
rkachowski Jul 11, 2025
9d79abd
github: Add workflow to check commits in a rebase (#377)
piersy May 7, 2025
e3849a6
configs: Increase default RPCTxFeeCap to 1000 (celos) (#311)
jcortejoso Jan 20, 2025
238a36a
configs: increase `TransactionHistory` for Celo (#336)
palango Feb 18, 2025
317469b
rpc: Correct error message (#309)
palango Jan 20, 2025
32ed7dc
blockchain: Added new metrics: chain_txincluded, chain_basefee and ch…
jcortejoso Sep 23, 2024
aef9e56
rpc: Add traceCall historical execution support
Sep 19, 2024
184845e
txpool: Increase txpool inclusion (#332)
piersy Feb 13, 2025
e2c9369
configs: Add Cel2 hardfork
palango Sep 15, 2023
46c924f
defaults: Increase MaxCodeSize to 65536 as in Celo L1
karlb Jun 19, 2024
49f8e63
node: Add validation to ensure Cel2 chain has migrated data (#315)
Kourin1996 Jan 29, 2025
60a87f8
contracts: Add celo core contract addresses
karlb Nov 17, 2023
9313763
contracts: Add celo core contracts
karlb Jul 9, 2024
c9a5706
vm: Add transfer precompile for token duality
karlb Feb 11, 2025
f1a55c6
genesis: Add celo contracts to `--dev` genesis
karlb Jul 9, 2024
c7513eb
fee_currency: Add ExchangeRates type and helper functions
karlb Jul 9, 2024
c31b493
fee_currency: Add CeloBackend
karlb Jul 9, 2024
f5649d3
fee_currency: Add fee currency exchange rates to BlockContext
karlb Oct 11, 2023
54bf10d
genesis: Use realistic dev mode config genesis block and simulated be…
piersy May 21, 2025
9e7165c
configs: Add gingerbread hardfork block to chain config (#188)
piersy Jul 29, 2024
d1ee7bf
fee: Handle cel2 transition block in base fee calculation (#152, #239)
piersy Apr 11, 2025
62abbfe
tx: Add celo transaction types
piersy Apr 23, 2025
e18261a
tx: Add celo transaction signing support
piersy Apr 23, 2025
4bb00a5
tx: Add unit tests for JSON and RLP encoding/decoding of Celo Transac…
Kourin1996 Apr 22, 2025
9aa97a6
types: Handle migrated celo headers (#143, #152, #228, #300,#301, #327)
Kourin1996 Aug 4, 2025
db7da9b
fee: Reinstate l1cost function for alfajores (#271, #376)
piersy Aug 5, 2025
30e0062
vm: Add EVM.CallWithABI convenience function
karlb Jul 9, 2024
ca132c9
core: Handle fee currency transactions in state transition
palango Jan 31, 2024
e4fec7b
consensus: Base Fee Floor (Fixed amount) (#235)
piersy Jan 14, 2026
ebe9fe8
txpool: Validations for celo txs in txpool (#31)
karlb Nov 3, 2025
8526c03
txpool: Patch txpool core/list for managing multi currencies (#43) (#55)
piersy Jan 15, 2026
1a33cde
use uint256.Int instead of big.Int in Celo code
karlb Nov 4, 2025
ea0d1f1
txpool: Fix transaction replacements (#283)
gastonponti Dec 3, 2024
6c10c52
txpool: Add txpool metrics for TxType and FeeCurrency
karlb Aug 6, 2024
857e21a
miner: Port the block limit per fee currency (#119)
ezdac Jun 4, 2024
b93b450
gasestimator: Support fee currencies in gas estimation and gas price …
piersy Apr 24, 2025
3967d81
gasestimator: Fix gas estimator for txs with feeCurrency + Value (#282)
gastonponti Dec 3, 2024
31f5d44
fee_currency: Read IntrinsicGas from FeeCurrencyDirectory (#178)
karlb Nov 3, 2025
56f8d3e
cmd: Add `celotool`
palango Jul 11, 2024
2e31fa4
txpool: Use feeCurrency in min tip check
piersy Apr 24, 2025
a5f80fa
txpool: Invalidate txs with below base-fee-floor gas-price in txpool …
ezdac Jan 8, 2025
01f5e99
miner: Fix fee currency usage in newTxWithMinerFee
palango Sep 26, 2024
dc92622
tracers: debit/credit fees only in prestate tracer
karlb Jul 16, 2024
66bcd1a
tracers: Add test case for USDC as a fee currency
karlb Jul 2, 2025
1b5c5d4
tracers: Show OptimismBaseFeeRecipient in prestate (#407)
karlb Nov 3, 2025
779aa9f
tracers: Track base fee recipient for Cel2
karlb Jul 15, 2025
5dd6648
tracers: Add test for cel2 tx without fee currency
karlb Jul 15, 2025
638b03f
rpc: Add eth_getBlockReceipt and handle block receipt in eth_getBlock…
piersy Apr 11, 2025
c7462a1
rpc: Add tests for eth_getBlockReceipt JSON-RPC API (#307)
Kourin1996 Jan 14, 2025
1352ff7
rpc: Supplement baseFee and gasLimit for pre gingerbread blocks (#302)
Kourin1996 Jan 15, 2025
3a8eea5
rpc: Apply TxFeeCap conversion (#321)
Kourin1996 Feb 11, 2025
29293af
rpc: Includes baseFee in receipt of RPC response (#34)
Kourin1996 Aug 4, 2025
947e25c
blocklist: Add local blocklist for malfunctioning fee-currencies to m…
piersy Apr 24, 2025
c9602ea
blocklist: Fee currency blocklist admin controls (#364)
piersy Apr 7, 2025
9361978
fee_currency: Calculate FeeCurrencyContext once per Block (#267, #352…
karlb Nov 3, 2025
3f54fd4
fee_currency: Apply currency conversion to EffeciveGasTip (#316)
Kourin1996 Feb 12, 2025
b1cfe95
blocklist: Use blocklist and multi-gas-pools only while sequencing (#…
ezdac Apr 8, 2025
b5f015c
blocklist: Add bindings for blocklist (#427)
piersy Aug 19, 2025
c1fdf96
gasestimator: Use different intrinsic-gas for fee-currencies in gas-e…
gastonponti Apr 4, 2025
727ff47
miner: Add tests for miner tx ordering with local and remote transact…
Kourin1996 May 5, 2025
51c1e9d
e2e: Add e2e testing system
karlb Aug 7, 2023
aaf3814
isthmus: Add hardfork timestamps (#388, #395)
karlb Nov 3, 2025
0e91704
Add script to create tracing test cases from RPC
karlb Sep 15, 2025
78b9be5
github: remove op docker image workflow
karlb Dec 8, 2025
38e0f4d
precompile: Prevent from running in STATICCALLs
karlb Oct 14, 2025
69369e8
currency_blocklist: Remove headerEvictionTimeoutSeconds field
karlb Jan 6, 2026
f21ff60
Warm addresses accessed by transfer precompile
karlb Sep 12, 2025
287f5a7
Add CLAUDE.md
karlb Jan 6, 2026
250d049
Remove hash field from txFuncs, use sigHash method
karlb Jan 6, 2026
0aef6a0
Add more fee currencies for e2e tests
Kourin1996 Jan 7, 2026
cd8a4a2
Remove alfajores and baklava testnet code
palango Jan 7, 2026
aebd96d
Add prestate trace for transfer multicall
karlb Sep 12, 2025
f96b80b
Regression test for for legacy tx using accessLists
gastonponti Dec 15, 2025
fd4d6f2
Except two txs from chainId verification
karlb Jan 7, 2026
ad04db9
Test that exception for bad chainId txs works
karlb Jan 7, 2026
69cfe64
Ignore Celo base fee floor after Jovian (#445)
karlb Jan 21, 2026
b5e9597
Fix failing CI tests (#467)
palango Jan 27, 2026
5d5c843
Add CeloChaosChainID (#470)
karlb Feb 9, 2026
784fe7a
ci: Update go version (#468)
palango Feb 10, 2026
06bec66
eth/protocols/eth: Handle CeloDynamicFeeTxV2 receipts with BaseFee (#…
karlb Feb 10, 2026
f7cd770
eth/downloader: capture deferred head during skeleton sync restart (#…
karlb Feb 17, 2026
6612662
Add call tracer test to compare debit/credit gas with celo-kona (#469)
karlb Feb 18, 2026
344b758
Update GitHub workflow for Docker build, using a recent reusable-work…
jcortejoso Feb 23, 2026
ed134c3
consensus/beacon: exempt Celo L2 migration block from extraData valid…
piersy Feb 24, 2026
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
37 changes: 0 additions & 37 deletions .circleci/ci-docker-tag-op-geth-release.sh

This file was deleted.

12 changes: 12 additions & 0 deletions .github/release-drafter.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#tag-template: '${{ env.BRANCH_NAME }}-v$RESOLVED_VERSION'
name-template: 'Celo op-geth v$RESOLVED_VERSION'
filter-by-commitish: true
version-resolver:
default: patch
template: |
## What’s Changed

$CHANGES

---
**Docker Image:** https://us-west1-docker.pkg.dev/devopsre/celo-blockchain-public/op-geth:$RESOLVED_VERSION.
57 changes: 57 additions & 0 deletions .github/workflows/check-rebase.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
name: Check rebase

on:
workflow_dispatch:
inputs:
base_ref:
description: 'Base branch, tag, or commit SHA (note branches must be prefixed with "origin/")'
required: true
type: string

jobs:
check-commits:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # Fetch full history

- uses: actions/setup-go@v5
with:
go-version: '1.24'

- name: Get list of new commits
id: commits
run: |
git log --format="%H" "${{ github.event.inputs.base_ref }}"..HEAD > commits.txt
echo "Found $(wc -l < commits.txt) new commits"
cat commits.txt

- name: Run checks for each commit
run: |
failed=0;
while read commit; do
git checkout $commit
echo -n "commit $commit: "
if ! go build > output.log 2>&1; then
failed=1
echo "failed build"
cat output.log
continue
fi
if ! make lint > output.log 2>&1; then
failed=1
echo "failed lint"
cat output.log
continue
fi
if ! make test > output.log 2>&1; then
failed=1
echo "failed test"
cat output.log
continue
fi
echo "good"
done < commits.txt
exit $failed
55 changes: 55 additions & 0 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: CI

on:
push:
branches:
- master
- celo*

pull_request:
branches:
- master
- celo*

workflow_dispatch:

permissions:
contents: read

jobs:
Test:
runs-on: ["op-stack", "self-hosted", "org"]
steps:
- uses: actions/checkout@v4
- uses: ./.github/workflows/composite/setup

- name: Test
run: make test

- name: Run e2e tests local
shell: bash
run: e2e_test/run_all_tests.sh

Lint:
runs-on: ["op-stack", "self-hosted", "org"]
steps:
- uses: actions/checkout@v4
- uses: ./.github/workflows/composite/setup
with:
build: false
setup-node-e2e: false
- name: Lint
run: make lint

Generate:
runs-on: ["ubuntu-latest"]
steps:
- uses: actions/checkout@v4
- uses: ./.github/workflows/composite/setup
with:
build: false
setup-node-e2e: false
- name: Generate check
# Run go generate and see if anything changed.
run: |
go run build/ci.go check_generate
32 changes: 32 additions & 0 deletions .github/workflows/composite/setup/action.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: "Setup dependencies & build"
description: "Checkout, setup dependencies and build go binaries"
inputs:
build:
description: "Build"
default: true
setup-node-e2e:
description: "Setup node for e2e tests"
default: true
setup-foundry:
description: "Setup foundry"
default: true
runs:
using: "composite"
steps:
- uses: actions/setup-go@v5
with:
go-version: "1.24"
cache: false
- uses: actions/setup-node@v4
if: "${{ inputs.setup-node-e2e == 'true' }}"
with:
node-version-file: "e2e_test/js-tests/package.json"
- name: Install Foundry
if: "${{ inputs.setup-foundry == 'true' }}"
uses: foundry-rs/foundry-toolchain@v1.4.0
with:
version: v1.1.0
- name: Build
if: "${{ inputs.build == 'true' }}"
shell: bash
run: make all
32 changes: 32 additions & 0 deletions .github/workflows/docker-build-scan.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Docker Build Push
on:
push:
branches:
- '**'
tags:
- '!**'
workflow_dispatch:

jobs:
build-scan-container-geth:
permissions:
contents: write
actions: read
pull-requests: write
security-events: write
attestations: write
id-token: write
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true
uses: celo-org/reusable-workflows/.github/workflows/docker-build.yaml@v3.1
with:
workload-id-provider: projects/1094498259535/locations/global/workloadIdentityPools/gh-op-geth/providers/github-by-repos
service-account: op-geth-dev@blockchaintestsglobaltestnet.iam.gserviceaccount.com
artifact-registry: us-west1-docker.pkg.dev/blockchaintestsglobaltestnet/dev-images/op-geth
access-token-lifetime: 60m
platforms: ${{ startsWith(github.ref, 'refs/heads/celo') && 'linux/amd64,linux/arm64' || 'linux/amd64' }}
tags: ${{ github.sha }}
context: .
trivy-enabled: false
timeout-minutes: 120
45 changes: 45 additions & 0 deletions .github/workflows/docker-publish-release.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: "[cLabs] Publish Docker Image For Release"

on:
workflow_dispatch:
release:
types: [published] # Trigger the workflow only when a release is published

jobs:
Set-Tags:
runs-on: ubuntu-latest
steps:
- name: Set tags
id: set_tags
run: |
if [[ "${{ github.event.release.tag_name }}" == *"rc"* || "${{ github.event.release.tag_name }}" == *"beta"* || "${{ github.event.release.tag_name }}" == *"alpha"* ]]; then
echo "::set-output name=tags::${{ github.event.release.tag_name }}"
else
echo "::set-output name=tags::${{ github.event.release.tag_name }},stable,latest"
fi
outputs:
tags: ${{ steps.set_tags.outputs.tags }}

Build-Container-Release:
needs: Set-Tags
permissions:
contents: write
actions: read
pull-requests: write
security-events: write
attestations: write
id-token: write
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true
uses: celo-org/reusable-workflows/.github/workflows/docker-build.yaml@v3.1
with:
workload-id-provider: projects/1094498259535/locations/global/workloadIdentityPools/gh-op-geth-release/providers/github-by-repos
service-account: op-geth-release@blockchaintestsglobaltestnet.iam.gserviceaccount.com
artifact-registry: us-west1-docker.pkg.dev/devopsre/celo-blockchain-public/op-geth
access-token-lifetime: 60m
platforms: linux/amd64,linux/arm64
tags: ${{ needs.set-tags.outputs.tags }}
context: .
trivy-enabled: false
timeout-minutes: 120
26 changes: 26 additions & 0 deletions .github/workflows/e2e-test-deployed-network.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: e2e-test-deployed-network

on:
schedule:
- cron: "0 14 * * *"
pull_request:
branches:
- master
- celo*
paths:
- 'e2e_test/**'

workflow_dispatch:

permissions:
contents: read

jobs:
e2e-tests:
runs-on: ["op-stack","self-hosted","org"]
steps:
- uses: actions/checkout@v4
- uses: ./.github/workflows/composite/setup
- name: Run e2e tests celo-sepolia
shell: bash
run: NETWORK=celo-sepolia e2e_test/run_all_tests.sh
62 changes: 62 additions & 0 deletions .github/workflows/first-release.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
name: "[cLabs] Create First Draft Release For A Branch"

on:
workflow_dispatch:
inputs:
release_tag:
description: 'The tag for the release (e.g., v1.0.0)'
required: true
forked_from:
description: 'The op-geth version this release is forked from (e.g., v1.0.0)'
required: true

jobs:

check-release:
runs-on: ubuntu-latest
outputs:
release_exists: ${{ steps.check_release.outputs.release_exists }}
steps:
# Query the GitHub API to check for a release
- name: Check if release exists
id: check_release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
RELEASES=$(curl -s -H "Authorization: Bearer $GITHUB_TOKEN" \
-H "Accept: application/vnd.github.v3+json" \
"https://api.github.com/repos/${{ github.repository }}/releases")

BRANCH="${{ github.ref }}" # Current branch
if echo "$RELEASES" | jq -e ".[] | select(.target_commitish == \"$BRANCH\")" > /dev/null; then
echo "Release exists for branch $BRANCH."
echo "release_exists=true" >> $GITHUB_OUTPUT
else
echo "No release found for branch $BRANCH."
echo "release_exists=false" >> $GITHUB_OUTPUT
fi

create-release:
runs-on: ubuntu-latest
needs: check-release
if: needs.check-release.outputs.release_exists == 'false'
steps:
# Checkout the repository
- name: Checkout code
uses: actions/checkout@v3

- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token
with:
tag_name: ${{ github.event.inputs.release_tag }}
release_name: Celo op-geth ${{ github.event.inputs.release_tag }}
commitish: ${{ github.ref }}
body: |
Celo op-geth ${{ github.event.inputs.release_tag }} is forked from [ethereum-optimism/op-geth](https://github.com/ethereum-optimism/op-geth) ${{ github.event.inputs.forked_from }}.

**Docker Image:** https://us-west1-docker.pkg.dev/devopsre/celo-blockchain-public/op-geth:${{ github.event.inputs.release_tag }}.
draft: true
prerelease: false
24 changes: 0 additions & 24 deletions .github/workflows/op-geth.yml

This file was deleted.

Loading