Add ArbitrumConsensusClient, add timeboosted field to receipts#779
Open
Add ArbitrumConsensusClient, add timeboosted field to receipts#779
Conversation
Codecov Report❌ Patch coverage is
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
🚀 New features to boost your workflow:
|
7cfa06b to
f9de473
Compare
There was a problem hiding this comment.
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?) toArbitrumReceiptForRpcand 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.
src/Nethermind.Arbitrum.Test/Infrastructure/ArbitrumTestBlockchainBase.cs
Show resolved
Hide resolved
AnkushinDaniil
approved these changes
Mar 30, 2026
e3e7b1a to
0e958cb
Compare
0e958cb to
6b576d3
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #773