Skip to content

Merge changes from rc4 into main#103

Merged
karlb merged 14 commits intomainfrom
karlb/rc4-into-main
Dec 8, 2025
Merged

Merge changes from rc4 into main#103
karlb merged 14 commits intomainfrom
karlb/rc4-into-main

Conversation

@karlb
Copy link
Copy Markdown
Contributor

@karlb karlb commented Nov 17, 2025

We should include all changes from the release branch in the main branch, so that they get included in the next release.

This is a rebase of the changes (makes conflict resolution and testing easier for me), but since we'll squash and merge, I'm calling it a merge in the PR title.


Note

Upgrades core deps (revm 31, op-revm 12, alloy/op-alloy, kona v1.1.7, hokulea v1.0.2) and refactors celo-revm to new APIs with journal-based system calls, revamped CIP‑64 ERC20 fee debit/credit, and updated transfer precompile; adds tests and minor host/config tweaks.

  • celo-revm (core):
    • Migrate to new revm/op-revm APIs (frame/inspector/precompile interfaces, BlockEnv in Evm).
    • Implement journal-based system calls (call/call_read_only), removing manual state merges; clear transient storage; preserve warm/cold state.
    • Rework CIP‑64 fee flow: ERC20 debitGasFees/creditGasFees now return logs+gas and persist via journal; receipt builder merges debit/credit logs; operator-fee calc updated (Isthmus/Jovian).
    • Reward/beneficiary and refund paths updated to use balance ops; L1 cost/operator fee handling aligned with new spec.
  • Precompiles:
    • Refactor transfer precompile to new CallInputs; maintain original cold/warm behavior via safe journal access workaround.
  • alloy-celo-evm:
    • Enable alloy-op-evm feature; adjust receipt builder to block().basefee(); expose BlockEnv in Evm/Factory.
  • Host:
    • Add recency_window: 0 when fetching EigenDA hints.
  • Dependencies:
    • Bump revm → 31.x, op-revm → 12.x, multiple alloy/* and op-alloy/*, kona-* → v1.1.7 (patched to b0ea596), hokulea-*hokulea-client/v1.0.2; update lockfile and allow celo-org/revm in deny.toml.
  • Tests/fixtures:
    • Update/expand unit tests (bn254/granite messages, operator fee cases) and executor test list (deposit revert, uncategorized mainnet block).

Written by Cursor Bugbot for commit 16656bb. This will update automatically on new commits. Configure here.

seolaoh and others added 14 commits November 17, 2025 10:25
* Initial bump to kona v1.1.7

* Replace revm crates with custom fork which has two new func

* Resolved version revm conflict between crates-io and github fork

* Fix compile errors

* Fix tests

* Fix test_transfer

* Fix handler tests

* Fork revm in celo-org

* Fix lint errors
This ensures that we are using the same revm version as in our
op-succinct repo. The v97 version fixed an execution bug that would have
led to an execution mismatch between the op-stack and our
succinct-stack.

Also updates dependencies to point at the versions exported by the base
of our forked revm.
This version is required for L2Beat to put us in the 'validium &
optimimum' category.
This is just a temporary measure until we switch to an revm version
including bluealloy/revm#3160.
Keep all state changes in the EVM journal instead of using set_storage:
- System calls execute without calling finalize()
- State changes remain in journal for main transaction to see
- Add call_read_only wrapper using checkpoint/revert to prevent accidental state changes in query operations
- Apply read-only wrapper to get_balance, get_currencies, get_exchange_rates, get_intrinsic_gas

This eliminates the need for manual state merging and the revm fork.
Now that we use neither `Account.mark_cold` nor `set_storage`, we can go
back to using upstream revm.
This makes things at least a bit clearer. I'm having a hard to adding
explanations for all important aspects without creating a lot of text
and linking to constantly changing revm code.
@karlb karlb marked this pull request as ready for review November 17, 2025 12:09
@palango
Copy link
Copy Markdown
Contributor

palango commented Dec 8, 2025

This is a rebase of the changes (makes conflict resolution and testing easier for me), but since we'll squash and merge, I'm calling it a merge in the PR title.

If you prefer we can also allow a non-squash merge for these kind of PRs.

@karlb
Copy link
Copy Markdown
Contributor Author

karlb commented Dec 8, 2025

If you prefer we can also allow a non-squash merge for these kind of PRs.

It's fine for this repo, I just wanted to clear up potential confusion between the "merge changes" title and the PR content being a rebase.

@karlb karlb merged commit 0b7c921 into main Dec 8, 2025
12 checks passed
@karlb karlb deleted the karlb/rc4-into-main branch December 8, 2025 15:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants