Skip to content

chore: upgrade go-ethereum to fix MorphTx version JSON unmarshaling#893

Closed
panos-xyz wants to merge 5 commits intomainfrom
test_3_13
Closed

chore: upgrade go-ethereum to fix MorphTx version JSON unmarshaling#893
panos-xyz wants to merge 5 commits intomainfrom
test_3_13

Conversation

@panos-xyz
Copy link

@panos-xyz panos-xyz commented Mar 2, 2026

Summary

  • Upgrade github.com/morph-l2/go-ethereum from v1.10.14-0.20260227074910-324c53b65341 to v1.10.14-0.20260302105006-9e26fa129767
  • Fixes syncing nodes failing with json: cannot unmarshal string into Go struct field rpcBlock.transactions.version of type uint8

Background

After MorphTx V1 was introduced, the version field in RPCTransaction (api.go) was serialized as a hex string ("0x1" via hexutil.Uint64), but the client-side txJSON.Version was *uint8 expecting a plain number. This caused ethclient.BlockByNumber to fail on all non-sequencer nodes when syncing blocks that contain MorphTx V1 transactions.

The fix in go-ethereum aligns txJSON.Version with the Ethereum JSON-RPC hex encoding convention.

Changes

  • Updated go.mod + go.sum in: node, tx-submitter, oracle, contracts, bindings, ops/tools, ops/l2-genesis, token-price-oracle

Test plan

  • Verify non-sequencer node can sync blocks containing MorphTx V1 transactions without BlockByNumber errors

Summary by CodeRabbit

Release Notes

  • New Features

    • Added L1 Sequencer contract for managing sequencer addresses with owner-controlled updates.
    • Introduced L1 sequencing subsystem with synchronization monitoring and signer components.
    • Added new CLI configuration flags: L1 Sequencer contract address, sync lag threshold, sequencer private key, and consensus switch height.
    • Enhanced block production capabilities with V2 block data methods.
  • Refactor

    • Renamed MPT fork terminology to Jade fork throughout codebase.
    • Updated dependency versions for Tendermint and go-ethereum.
    • Improved service initialization with dependency injection patterns.
  • Chores

    • Added Docker test infrastructure and comprehensive test scripts for upgrade validation.

tomatoishealthy and others added 5 commits February 26, 2026 17:30
Co-authored-by: allen.wu <allen.wu@bitget.com>
Upgrade github.com/morph-l2/go-ethereum from
v1.10.14-0.20260227074910-324c53b65341 to
v1.10.14-0.20260302105006-9e26fa129767

The new version fixes "cannot unmarshal string into Go struct field
rpcBlock.transactions.version of type uint8" error that occurred when
non-sequencer nodes called BlockByNumber to sync blocks containing
MorphTx V1 transactions.
@panos-xyz panos-xyz requested a review from a team as a code owner March 2, 2026 10:55
@panos-xyz panos-xyz requested review from twcctop and removed request for a team March 2, 2026 10:55
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Mar 2, 2026

Note

Currently processing new changes in this PR. This may take a few minutes, please wait...

📥 Commits

Reviewing files that changed from the base of the PR and between 895120c and 3123344.

⛔ 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 (40)
  • Makefile
  • bindings/bindings/l1sequencer.go
  • bindings/go.mod
  • contracts/contracts/l1/L1Sequencer.sol
  • contracts/deploy/013-DeployProxys.ts
  • contracts/deploy/014-DeployImpls.ts
  • contracts/deploy/019-AdminTransfer.ts
  • contracts/deploy/022-SequencerInit.ts
  • contracts/deploy/index.ts
  • contracts/go.mod
  • contracts/src/types.ts
  • contracts/tasks/deploy.ts
  • node/blocktag/config.go
  • node/blocktag/service.go
  • node/cmd/node/main.go
  • node/core/batch.go
  • node/core/executor.go
  • node/flags/flags.go
  • node/go.mod
  • node/l1sequencer/signer.go
  • node/l1sequencer/tracker.go
  • node/l1sequencer/verifier.go
  • node/sequencer/tm_node.go
  • node/sync/bridge_client.go
  • node/sync/syncer.go
  • node/types/blob.go
  • node/types/retryable_client.go
  • ops/devnet-morph/devnet/__init__.py
  • ops/docker-sequencer-test/Dockerfile.l2-geth-test
  • ops/docker-sequencer-test/Dockerfile.l2-node-test
  • ops/docker-sequencer-test/README.md
  • ops/docker-sequencer-test/docker-compose.override.yml
  • ops/docker-sequencer-test/entrypoint-l2.sh
  • ops/docker-sequencer-test/run-test.sh
  • ops/docker-sequencer-test/scripts/tx-generator.sh
  • ops/l2-genesis/go.mod
  • ops/tools/go.mod
  • oracle/go.mod
  • token-price-oracle/go.mod
  • tx-submitter/go.mod
 __________________________________________________________________
< Your documentation is 'TBD'. My patience is 'TBF' (to be found). >
 ------------------------------------------------------------------
  \
   \   \
        \ /\
        ( )
      .( o ).

✏️ Tip: You can disable in-progress messages and the fortune message in your review settings.

Tip

You can customize the high-level summary generated by CodeRabbit.

Configure the reviews.high_level_summary_instructions setting to provide custom instructions for generating the high-level summary.

✨ Finishing Touches
  • 📝 Generate docstrings (stacked PR)
  • 📝 Generate docstrings (commit on current branch)
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch test_3_13

Tip

Try Coding Plans. Let us write the prompt for your AI agent so you can ship faster (with fewer bugs).
Share your feedback on Discord.


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.

@panos-xyz
Copy link
Author

Wrong base branch, recreating with test_3_13 as target

@panos-xyz panos-xyz closed this Mar 2, 2026
@panos-xyz panos-xyz reopened this Mar 2, 2026
@panos-xyz panos-xyz closed this Mar 2, 2026
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.

3 participants