Skip to content

Conversation

@FletcherMan
Copy link
Collaborator

@FletcherMan FletcherMan commented Dec 19, 2025

Summary by CodeRabbit

  • Chores

    • Updated Ethereum module dependency across all packages to a newer version.
    • Updated go-ethereum subproject commit reference.
  • Refactor

    • Updated L2TokenRegistry contract bindings to accommodate new return structure for token information queries.
    • Refined token price oracle data access pattern to use updated token information structure.
  • Tests

    • Removed Bitget SDK test file from token price oracle.

✏️ Tip: You can customize this high-level summary in your review settings.

@FletcherMan FletcherMan requested a review from a team as a code owner December 19, 2025 06:27
@FletcherMan FletcherMan requested review from panos-xyz and removed request for a team December 19, 2025 06:27
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Dec 19, 2025

Walkthrough

This PR updates the go-ethereum dependency version across the project and regenerates L2TokenRegistry bindings to reflect a modified contract that now returns a struct containing token info and a HasBalanceSlot boolean flag. Downstream code in token-price-oracle is adjusted to access the nested Info field.

Changes

Cohort / File(s) Summary
Ethereum dependency updates
Makefile, bindings/go.mod, contracts/go.mod, node/go.mod, ops/l2-genesis/go.mod, ops/tools/go.mod, oracle/go.mod, token-price-oracle/go.mod, tx-submitter/go.mod
Version bumped from v1.10.14-0.20251203083507-49fa27bcab24 to v1.10.14-0.20251219060125-03910bc750a2 across Makefile ETHEREUM_TARGET_VERSION and all go.mod require blocks; go-ethereum submodule commit updated.
L2TokenRegistry bindings
bindings/bindings/l2tokenregistry.go, bindings/bindings/l2tokenregistry_more.go, bindings/bin/l2tokenregistry_deployed.hex
ABI updated with modified error entries and return structure; GetTokenInfo methods now return a struct with Info (IL2TokenRegistryTokenInfo) and HasBalanceSlot (bool) instead of single return type; deployed and runtime bytecode regenerated.
Token price oracle adaptation
token-price-oracle/updater/token_price.go
Updated filterActiveTokens to access token attributes via tokenInfo.Info (IsActive, TokenAddress, Decimals, Scale) instead of direct field access.
Test removal
token-price-oracle/client/bitget_sdk_test.go
Removed unit test for Bitget SDK price fetching.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~15 minutes

  • L2TokenRegistry binding changes: Verify that GetTokenInfo return type changes and all method signatures are correctly updated across L2TokenRegistryCaller, L2TokenRegistrySession, and L2TokenRegistryCallerSession variants.
  • Token price oracle integration: Confirm that the nested Info field access (tokenInfo.Info) correctly unpacks the updated return structure in filterActiveTokens.
  • Bytecode updates: Validate that hex bytecode changes in l2tokenregistry_deployed.hex and L2TokenRegistryDeployedBin correspond to legitimate contract modifications.

Possibly related PRs

Suggested reviewers

  • r3aker86
  • Kukoomomo
  • curryxbo

🐰 The registry hops with joy, new info wrapped so fine,
HasBalanceSlot blooms bright, a boolean design,
Bytecode dances, dependencies align,
Token prices adjust with oracle's line,
All systems bloom together, ethereal and divine!

Pre-merge checks and finishing touches

❌ 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%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'update go-ethereum & tidy up' accurately reflects the main changes: updating go-ethereum across multiple modules and removing an unused test file.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch update_geth

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.

@FletcherMan FletcherMan merged commit b3e1d2a into main Dec 19, 2025
14 of 15 checks passed
@FletcherMan FletcherMan deleted the update_geth branch December 19, 2025 06:30
Copy link
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

📜 Review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e64256e and 9bab701.

⛔ Files ignored due to path filters (9)
  • bindings/go.sum is excluded by !**/*.sum
  • contracts/go.sum is excluded by !**/*.sum
  • go.work.sum is excluded by !**/*.sum
  • node/go.sum is excluded by !**/*.sum
  • ops/l2-genesis/go.sum is excluded by !**/*.sum
  • ops/tools/go.sum is excluded by !**/*.sum
  • oracle/go.sum is excluded by !**/*.sum
  • token-price-oracle/go.sum is excluded by !**/*.sum
  • tx-submitter/go.sum is excluded by !**/*.sum
📒 Files selected for processing (15)
  • Makefile (1 hunks)
  • bindings/bin/l2tokenregistry_deployed.hex (1 hunks)
  • bindings/bindings/l2tokenregistry.go (2 hunks)
  • bindings/bindings/l2tokenregistry_more.go (1 hunks)
  • bindings/go.mod (1 hunks)
  • contracts/go.mod (1 hunks)
  • go-ethereum (1 hunks)
  • node/go.mod (1 hunks)
  • ops/l2-genesis/go.mod (1 hunks)
  • ops/tools/go.mod (1 hunks)
  • oracle/go.mod (1 hunks)
  • token-price-oracle/client/bitget_sdk_test.go (0 hunks)
  • token-price-oracle/go.mod (1 hunks)
  • token-price-oracle/updater/token_price.go (3 hunks)
  • tx-submitter/go.mod (1 hunks)
💤 Files with no reviewable changes (1)
  • token-price-oracle/client/bitget_sdk_test.go
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (8)
  • GitHub Check: check
  • GitHub Check: test
  • GitHub Check: check
  • GitHub Check: test
  • GitHub Check: test
  • GitHub Check: test
  • GitHub Check: Analyze (rust)
  • GitHub Check: Analyze (go)
🔇 Additional comments (15)
go-ethereum (1)

1-1: ⚠️ Review context incomplete: verify consistency of dependency changes across the codebase.

The provided code shows only the go-ethereum submodule commit update, but the AI summary indicates significant downstream changes:

  • L2TokenRegistry bindings regenerated with modified return types (now returning a struct with Info and HasBalanceSlot)
  • Multiple go.mod files updated with the new go-ethereum version
  • token-price-oracle/updater/token_price.go modified to access tokenInfo.Info field

These related files are not provided for review, making it difficult to assess whether the dependency change is correctly integrated throughout the codebase.

Please verify:

  1. That the new go-ethereum commit 03910bc750a2301be4c1410b9f3c4d3741df251e is a legitimate upstream commit
  2. That all go.mod files are consistently updated to the new version
  3. That bindings regeneration is complete and correct (especially L2TokenRegistry struct changes)
  4. That token-price-oracle and other downstream code correctly handle the new struct return type for GetTokenInfo

To confirm this change is sound, please review the complete PR diff and ensure:

  • All files mentioned in the AI summary (Makefile, bindings/, token-price-oracle/) are included and consistent
  • The struct field access changes (tokenInfo.Info) are applied everywhere the return type changed
  • No other code relies on the previous flat return type for GetTokenInfo
token-price-oracle/go.mod (1)

11-11: LGTM!

The go-ethereum dependency update is consistent with other modules in this PR.

bindings/go.mod (1)

7-7: LGTM!

The dependency version update is consistent with the broader PR changes. According to the AI summary, the L2TokenRegistry bindings have already been regenerated to match this version.

ops/l2-genesis/go.mod (1)

9-9: LGTM!

The go-ethereum dependency update is consistent with other modules in this PR.

contracts/go.mod (1)

9-9: LGTM!

The go-ethereum dependency update is consistent with other modules in this PR.

ops/tools/go.mod (1)

8-8: LGTM!

The go-ethereum dependency update is consistent with other modules in this PR.

tx-submitter/go.mod (1)

12-12: LGTM!

The go-ethereum dependency update is consistent with other modules in this PR.

Makefile (1)

2-3: LGTM! Makefile variables updated consistently.

The Ethereum submodule reference has been updated to use the morph-v2.1.0 tag, and the target version aligns with the pseudo-version used across all go.mod files. The submodule checkout logic (line 47) will use this tag to ensure the correct version is checked out.

token-price-oracle/updater/token_price.go (2)

271-291: Correct adaptation to the new binding structure.

The code properly accesses the nested Info field to retrieve token attributes (IsActive, TokenAddress, Decimals, Scale) following the contract binding change where GetTokenInfo now returns a composite struct.

Note that the HasBalanceSlot field from the new return type is not used in this function. If this field is relevant for future use cases, consider adding a TODO comment or documenting why it's intentionally omitted here.


433-441: No functional changes in this segment.

These are non-functional whitespace changes. The shouldUpdatePrice logic remains unchanged.

bindings/bin/l2tokenregistry_deployed.hex (1)

1-1: Auto-generated deployed bytecode.

This file contains the compiled contract bytecode which should be regenerated whenever the contract source changes. Ensure this was generated using the same compilation pipeline and compiler version as other contract artifacts.

bindings/bindings/l2tokenregistry_more.go (1)

16-16: Auto-generated binding updated correctly.

The L2TokenRegistryDeployedBin constant is regenerated to match the updated contract bytecode. The "Code generated - DO NOT EDIT" header is correctly in place.

bindings/bindings/l2tokenregistry.go (2)

439-480: Auto-generated binding correctly reflects the new contract interface.

The GetTokenInfo method now returns a composite struct containing:

  • Info: The IL2TokenRegistryTokenInfo struct with token details
  • HasBalanceSlot: A boolean flag indicating whether a balance slot is configured

This is auto-generated code from abigen. The changes are consistent across all method variants (Caller, Session, CallerSession).


49-50: ABI and Bin metadata updated.

The ABI now includes the updated getTokenInfo signature returning (TokenInfo info, bool hasBalanceSlot) along with new error definitions. This is auto-generated metadata that aligns with the contract changes.

node/go.mod (1)

14-14: Dependency update correctly applied across all modules.

The go-ethereum dependency bump to v1.10.14-0.20251219060125-03910bc750a2 has been consistently updated across all 8 go.mod files and verified in corresponding go.sum files with matching hash values. The workspace is properly synchronized.

github.com/go-kit/kit v0.12.0
github.com/morph-l2/externalsign v0.3.1
github.com/morph-l2/go-ethereum v1.10.14-0.20251203083507-49fa27bcab24
github.com/morph-l2/go-ethereum v1.10.14-0.20251219060125-03910bc750a2
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

The verification script is broken and will not execute properly.

The embedded script concatenates the commit hash with extraneous characters, resulting in an invalid argument to git cat-file. To verify the commit, use: git rev-parse 03910bc750a2 or check the morph-l2/go-ethereum repository directly. The pseudo-version format itself is valid and follows Go's semantic versioning for commits on v1.10.14.

🤖 Prompt for AI Agents
In oracle/go.mod at line 10 the pseudo-version entry contains a commit hash used
by a verification script that currently passes extraneous characters to git
cat-file; update the verification step to extract the clean commit hash (e.g.,
run git rev-parse 03910bc750a2 or strip non-hex characters) before calling git
cat-file, or change the script to derive the commit via git rev-parse on the
pseudo-version suffix so the exact commit id "03910bc750a2" is supplied to git
cat-file for verification.

@coderabbitai coderabbitai bot mentioned this pull request Dec 29, 2025
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.

4 participants