Skip to content

feat(evm): update go-ethereum version to v1.16.9, enable Osaka hard fork#2081

Open
XinyuCRO wants to merge 3 commits into
crypto-org-chain:mainfrom
XinyuCRO:deps/ethermint
Open

feat(evm): update go-ethereum version to v1.16.9, enable Osaka hard fork#2081
XinyuCRO wants to merge 3 commits into
crypto-org-chain:mainfrom
XinyuCRO:deps/ethermint

Conversation

@XinyuCRO
Copy link
Copy Markdown
Contributor

@XinyuCRO XinyuCRO commented May 21, 2026

ethermint PR: crypto-org-chain/ethermint#957

Summary by CodeRabbit

  • New Features

    • Enabled Osaka hardfork support in the EVM module.
  • Improvements

    • Upgraded go-ethereum to v1.16.9, including enhanced cryptographic library dependencies for better Ethereum compatibility and performance.

Review Change Stack

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 21, 2026

📝 Walkthrough

Walkthrough

Cronos upgrades go-ethereum to v1.16.9 and enables the Osaka hardfork. Integration tests now verify the osaka_time chain parameter. EVM keeper removes an unused message field. Precompile contracts gain explicit Name() methods. Supporting cryptography and utility dependencies are updated across the Ethereum ecosystem.

Changes

Osaka hardfork upgrade and dependency chain

Layer / File(s) Summary
Changelog and hardfork parameter tests
CHANGELOG.md, integration_tests/test_gov_update_params.py, integration_tests/utils.py
Documents go-ethereum v1.16.9 upgrade and Osaka hardfork. Integration tests extend EVM parameter governance to handle osaka_time alongside cancun_time and prague_time in both test setup and post-update assertions.
Go-ethereum core upgrade to v1.16.9
go.mod, gomod2nix.toml
Main dependency github.com/ethereum/go-ethereum bumped from v1.15.11 to v1.16.9. Replace directives updated to use newer crypto-org-chain pseudo-versions of go-ethereum and ethermint.
Supporting Ethereum cryptography and utility dependencies
go.mod, gomod2nix.toml
Indirect dependencies updated: KZG libraries (crate-crypto/go-eth-kzg v1.4.0, ethereum/c-kzg-4844/v2 v2.1.5, supranational/blst v0.3.16-*), performance libs (VictoriaMetrics/fastcache v1.13.0, golang/snappy v1.0.0), and utilities (gofrs/flock v0.12.1, mitchellh/mapstructure). gomod2nix.toml pins and hashes synchronized.
EVM keeper CallEVM message construction simplification
x/cronos/keeper/evm.go
Keeper.CallEVM removes SkipFromEOACheck: false field from core.Message initialization to align with v1.16.9 upstream; all other message fields remain set.
Precompile Name() interface methods
x/cronos/keeper/precompiles/bank.go, x/cronos/keeper/precompiles/ica.go, x/cronos/keeper/precompiles/relayer.go
Adds Name() method returning contract name ("bank", "ica", "relayer") to respective precompile contracts for consistent interface compliance.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

  • crypto-org-chain/cronos#1690: Updates go.mod and gomod2nix.toml with crypto-org-chain/go-ethereum replace directives and other Ethereum dependency pins.

Suggested labels

nix, go-ethereum, hardfork

Suggested reviewers

  • JayT106
  • thomas-nguy

Poem

🐰 A rabbit hops through dependency trees,
Osaka blooms in the blockchain breeze—
Messages trimmed, precompiles named true,
go-ethereum v1.16.9 shines anew!
Hardforks and hashes in harmony aligned,
Forward the protocol, one chain at a time. ✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main changes: updating go-ethereum to v1.16.9 and enabling the Osaka hard fork, which is reflected in the CHANGELOG, go.mod updates, and integration test changes.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@codecov
Copy link
Copy Markdown

codecov Bot commented May 21, 2026

Codecov Report

❌ Patch coverage is 64.70588% with 6 lines in your changes missing coverage. Please review.
✅ Project coverage is 13.47%. Comparing base (a3c2f70) to head (e0aa504).
⚠️ Report is 200 commits behind head on main.

Files with missing lines Patch % Lines
x/cronos/keeper/precompiles/bank.go 0.00% 2 Missing ⚠️
x/cronos/keeper/precompiles/ica.go 0.00% 2 Missing ⚠️
x/cronos/keeper/precompiles/relayer.go 0.00% 2 Missing ⚠️
Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main    #2081      +/-   ##
==========================================
- Coverage   16.87%   13.47%   -3.41%     
==========================================
  Files          72       74       +2     
  Lines        6163     5099    -1064     
==========================================
- Hits         1040      687     -353     
+ Misses       5000     4337     -663     
+ Partials      123       75      -48     
Files with missing lines Coverage Δ
x/cronos/keeper/evm.go 58.71% <100.00%> (+58.71%) ⬆️
x/cronos/keeper/precompiles/bank.go 0.00% <0.00%> (-8.03%) ⬇️
x/cronos/keeper/precompiles/ica.go 0.00% <0.00%> (-7.60%) ⬇️
x/cronos/keeper/precompiles/relayer.go 0.00% <0.00%> (-22.71%) ⬇️

... and 68 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@XinyuCRO XinyuCRO marked this pull request as ready for review May 21, 2026 06:00
@XinyuCRO XinyuCRO requested a review from a team as a code owner May 21, 2026 06:00
@XinyuCRO XinyuCRO requested review from songgaoye and thomas-nguy and removed request for a team May 21, 2026 06:00
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@CHANGELOG.md`:
- Line 12: Replace the placeholder PR link in the changelog entry string "*
[#](https://github.com/crypto-org-chain/cronos/pull/) Upgrade go-ethereum
version to `v1.16.9`, enable Osaka hardfork." with the real PR number or a plain
text reference; update the markdown to either "*
[`#1234`](https://github.com/crypto-org-chain/cronos/pull/1234) Upgrade
go-ethereum version to `v1.16.9`, enable Osaka hardfork." (using the correct PR
id) or remove the empty link so the entry becomes plain text, ensuring the link
targets the actual pull request instead of the broken placeholder.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 3650902e-f0c2-4570-a0d9-45ea6b88612b

📥 Commits

Reviewing files that changed from the base of the PR and between 919769c and e0aa504.

⛔ Files ignored due to path filters (1)
  • go.sum is excluded by !**/*.sum
📒 Files selected for processing (9)
  • CHANGELOG.md
  • go.mod
  • gomod2nix.toml
  • integration_tests/test_gov_update_params.py
  • integration_tests/utils.py
  • x/cronos/keeper/evm.go
  • x/cronos/keeper/precompiles/bank.go
  • x/cronos/keeper/precompiles/ica.go
  • x/cronos/keeper/precompiles/relayer.go

Comment thread CHANGELOG.md
* [#1971](https://github.com/crypto-org-chain/cronos/pull/1971) Upgrade cosmos-sdk to v0.53.4.
* [#1976](https://github.com/crypto-org-chain/cronos/pull/1976) Minor improvements for cosmos-sdk v0.53.4 upgrade.
* [#1978](https://github.com/crypto-org-chain/cronos/pull/1978) feat(cosmos-sdk): Optimize staking end-block queue through using pending queue slots instead of iterators.
* [#](https://github.com/crypto-org-chain/cronos/pull/) Upgrade go-ethereum version to `v1.16.9`, enable Osaka hardfork.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Replace placeholder PR link in the changelog entry.

Line 12 still uses a placeholder [#](.../pull/), which produces a broken release-note link.

Suggested fix
-* [#](https://github.com/crypto-org-chain/cronos/pull/) Upgrade go-ethereum version to `v1.16.9`, enable Osaka hardfork.
+* [`#2081`](https://github.com/crypto-org-chain/cronos/pull/2081) Upgrade go-ethereum version to `v1.16.9`, enable Osaka hardfork.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
* [#](https://github.com/crypto-org-chain/cronos/pull/) Upgrade go-ethereum version to `v1.16.9`, enable Osaka hardfork.
* [`#2081`](https://github.com/crypto-org-chain/cronos/pull/2081) Upgrade go-ethereum version to `v1.16.9`, enable Osaka hardfork.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@CHANGELOG.md` at line 12, Replace the placeholder PR link in the changelog
entry string "* [#](https://github.com/crypto-org-chain/cronos/pull/) Upgrade
go-ethereum version to `v1.16.9`, enable Osaka hardfork." with the real PR
number or a plain text reference; update the markdown to either "*
[`#1234`](https://github.com/crypto-org-chain/cronos/pull/1234) Upgrade
go-ethereum version to `v1.16.9`, enable Osaka hardfork." (using the correct PR
id) or remove the empty link so the entry becomes plain text, ensuring the link
targets the actual pull request instead of the broken placeholder.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant