Skip to content

Add ArbitrumConsensusClient, add timeboosted field to receipts#779

Open
wurdum wants to merge 4 commits intomainfrom
pavlo/add-timeboosted-field
Open

Add ArbitrumConsensusClient, add timeboosted field to receipts#779
wurdum wants to merge 4 commits intomainfrom
pavlo/add-timeboosted-field

Conversation

@wurdum
Copy link
Copy Markdown
Contributor

@wurdum wurdum commented Mar 27, 2026

Closes #773

@codecov
Copy link
Copy Markdown

codecov bot commented Mar 27, 2026

Codecov Report

❌ Patch coverage is 85.13514% with 11 lines in your changes missing coverage. Please review.
✅ Project coverage is 77.15%. Comparing base (1b277b0) to head (6b576d3).

Files with missing lines Patch % Lines
src/Nethermind.Arbitrum/ArbitrumPlugin.cs 36.36% 6 Missing and 1 partial ⚠️
...rmind.Arbitrum/Modules/ArbitrumEthModuleFactory.cs 0.00% 4 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #779      +/-   ##
==========================================
+ Coverage   77.11%   77.15%   +0.04%     
==========================================
  Files         223      226       +3     
  Lines       13578    13645      +67     
  Branches     1965     1976      +11     
==========================================
+ Hits        10470    10528      +58     
- Misses       2411     2419       +8     
- Partials      697      698       +1     
Files with missing lines Coverage Δ
src/Nethermind.Arbitrum/Config/ArbitrumConfig.cs 90.62% <100.00%> (+0.96%) ⬆️
src/Nethermind.Arbitrum/Data/BlockMetadata.cs 100.00% <100.00%> (ø)
...ethermind.Arbitrum/Modules/ArbitrumEthRpcModule.cs 74.87% <100.00%> (+0.78%) ⬆️
...c/Nethermind.Arbitrum/Rpc/ArbitrumReceiptForRpc.cs 90.00% <100.00%> (+1.76%) ⬆️
...c/Nethermind.Arbitrum/Rpc/BlockMetadataProvider.cs 100.00% <100.00%> (ø)
src/Nethermind.Arbitrum/Rpc/ConsensusRpcClient.cs 100.00% <100.00%> (ø)
...rmind.Arbitrum/Modules/ArbitrumEthModuleFactory.cs 0.00% <0.00%> (ø)
src/Nethermind.Arbitrum/ArbitrumPlugin.cs 51.45% <36.36%> (-0.93%) ⬇️
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@wurdum wurdum force-pushed the pavlo/add-timeboosted-field branch 2 times, most recently from 7cfa06b to f9de473 Compare March 30, 2026 15:04
@wurdum wurdum marked this pull request as ready for review March 30, 2026 15:09
Copilot AI review requested due to automatic review settings March 30, 2026 15:09
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds support for Nitro-compatible receipt enrichment by introducing a consensus-node RPC client to fetch per-block metadata and surfacing a timeboosted flag in receipt RPC responses.

Changes:

  • Introduce IConsensusRpcClient (+ enabled/disabled implementations) and wire it through DI to the Eth RPC module.
  • Add timeboosted (bool?) to ArbitrumReceiptForRpc and compute it from fetched block metadata (BlockMetadata.IsTxTimeboosted).
  • Extend test infrastructure (TestHttpServer, FakeConsensusRpcClient) and add unit/integration tests for metadata fetching and receipt serialization.

Reviewed changes

Copilot reviewed 20 out of 20 changed files in this pull request and generated 9 comments.

Show a summary per file
File Description
src/Nethermind.Arbitrum/Rpc/ConsensusRpcClient.cs New consensus RPC client + disabled implementation for block metadata retrieval
src/Nethermind.Arbitrum/Rpc/ArbitrumReceiptForRpc.cs Add timeboosted field to receipt DTO and constructors
src/Nethermind.Arbitrum/Modules/ArbitrumEthRpcModule.cs Fetch block metadata and set timeboosted in eth_getTransactionReceipt / eth_getBlockReceipts
src/Nethermind.Arbitrum/Modules/ArbitrumEthModuleFactory.cs Inject IConsensusRpcClient into module creation
src/Nethermind.Arbitrum/Data/BlockMetadata.cs New helper to interpret Nitro-style metadata bitmap
src/Nethermind.Arbitrum/Config/IArbitrumConfig.cs Add ConsensusNodeRpcUrl config entry
src/Nethermind.Arbitrum/Config/ArbitrumConfig.cs Implement ConsensusNodeRpcUrl default
src/Nethermind.Arbitrum/ArbitrumPlugin.cs Register enabled/disabled consensus RPC client based on config
src/Nethermind.Arbitrum.Test/Sequencer/UserTxSequencingTests.cs Switch test HTTP helper to TestHttpServer
src/Nethermind.Arbitrum.Test/Sequencer/TransactionForwarderTests.cs Switch test HTTP helper to TestHttpServer
src/Nethermind.Arbitrum.Test/Sequencer/Timeboost/TimeboostSequencerEngineTests.cs Add end-to-end test asserting correct timeboosted flag in receipts
src/Nethermind.Arbitrum.Test/Sequencer/SequencerLifecycleTests.cs Add forwarding tests using TestHttpServer
src/Nethermind.Arbitrum.Test/Sequencer/SequencerErrorRecoveryTests.cs Switch test HTTP helper to TestHttpServer
src/Nethermind.Arbitrum.Test/Rpc/ConsensusRpcClientTests.cs New unit tests for consensus RPC client behavior
src/Nethermind.Arbitrum.Test/Rpc/ArbitrumReceiptForRpcTests.cs Add tests for timeboosted value + JSON serialization behavior
src/Nethermind.Arbitrum.Test/Infrastructure/TestSequencer.cs Remove TestRemoteSequencer helper (superseded)
src/Nethermind.Arbitrum.Test/Infrastructure/TestHttpServer.cs New reusable HTTP listener for tests
src/Nethermind.Arbitrum.Test/Infrastructure/ArbitrumTestBlockchainBase.cs Add FakeConsensusRpcClient and register it in test container
src/Nethermind.Arbitrum.Test/Infrastructure/ArbitrumRpcTestBlockchain.cs Update Eth module creation to supply consensus client
src/Nethermind.Arbitrum.Test/Data/BlockMetadataTests.cs New unit tests for metadata bitmap decoding

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@wurdum wurdum changed the title Add ConsensusRpcClient, add timeboosted field to receipts Add ArbitrumConsensusClient, add timeboosted field to receipts Mar 31, 2026
@wurdum wurdum force-pushed the pavlo/add-timeboosted-field branch 3 times, most recently from e3e7b1a to 0e958cb Compare April 1, 2026 13:27
@wurdum wurdum force-pushed the pavlo/add-timeboosted-field branch from 0e958cb to 6b576d3 Compare April 2, 2026 19:45
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.

eth_getTransactionReceipt missing timeboosted field

3 participants