feat(rpc): add web3, net namespaces and expand debug/eth for tooling compatibility#120
Draft
prestwich wants to merge 13 commits intoprestwich/eng-1899from
Draft
feat(rpc): add web3, net namespaces and expand debug/eth for tooling compatibility#120prestwich wants to merge 13 commits intoprestwich/eng-1899from
prestwich wants to merge 13 commits intoprestwich/eng-1899from
Conversation
6 tasks
9af104c to
4dd2e29
Compare
dfd1229 to
b87e46b
Compare
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Extract trace_block_inner() so it can be reused by the new debug_traceBlock (raw RLP) handler. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Decodes an RLP-encoded block, recovers transaction senders, and traces all transactions using the shared trace_block_inner loop. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
eth_protocolVersion is now implemented, so the test that expected method_not_found is updated to assert the "0x44" response. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Document partial-move pattern in get_raw_receipts - Consolidate duplicate -32602 error code arms in DebugError - Fix resolve_header error mapping: use Resolve(e) instead of BlockNotFound(id) to preserve the distinction between "block not found" (-32001) and "storage layer failed" (-32000). The resolve_error_message helper already sanitizes DB errors to the opaque "server error" string, so no internals are leaked. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
9 methods (trace_block, trace_transaction, trace_replayBlockTransactions, trace_replayTransaction, trace_call, trace_callMany, trace_rawTransaction, trace_get, trace_filter) for Blockscout/tooling compatibility. ENG-1064, ENG-1065. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
12 tasks covering TraceError, param types, config, Parity tracer functions, block replay helpers, 9 trace_ endpoints, and router wiring. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
4dd2e29 to
03bbd7c
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.
Summary
[Claude Code]
Adds standard Ethereum JSON-RPC namespaces and methods for general tooling compatibility (Blockscout, Routescan, wallets, etc.). Driven by ENG-960.
web3namespace:clientVersion,sha3netnamespace:version,listeningeth:protocolVersiondebug:getRawHeader,getRawTransaction,getRawBlock,getRawReceipts,traceBlock(raw RLP),traceCallTotal: 56 routes across 5 namespaces (eth 41, debug 9, signet 2, web3 2, net 2).
Methods that don't apply to Signet (mining, keystore, txpool, proofs, blobs,
net_peerCount) are not registered and returnmethod_not_found.Key implementation details
debug_traceBlockdecodes raw RLP, recovers senders, reuses extractedtrace_block_innershared tracing loopdebug_traceCallcombines EVM state resolution (likeeth_call) with the tracer infrastructuredebug_getRawReceiptsreconstructs consensusReceiptEnvelopefromColdReceipt(strips RPC log metadata)debug_getRawBlockassembles full block from separately-stored header + transactionsDebugErrorvariants:RlpDecode,SenderRecoveryTest plan
test_not_supported→test_protocol_version)web3_sha3,web3_clientVersion,DebugErrorvariants--all-features --all-targets)🤖 Generated with Claude Code