Skip to content

feat(rpc): implement Parity trace_ namespace (9 methods)#121

Open
prestwich wants to merge 9 commits intoprestwich/eng-960-rpc-namespace-completenessfrom
prestwich/parity-trace-namespace
Open

feat(rpc): implement Parity trace_ namespace (9 methods)#121
prestwich wants to merge 9 commits intoprestwich/eng-960-rpc-namespace-completenessfrom
prestwich/parity-trace-namespace

Conversation

@prestwich
Copy link
Member

Summary

Implements the complete Parity/OpenEthereum trace_ JSON-RPC namespace (9 methods) in signet-rpc for Blockscout and general tooling compatibility. Stacks on top of #120.

  • trace_block, trace_transaction, trace_get — localized Parity traces
  • trace_replayBlockTransactions, trace_replayTransaction — replay with trace type selection (trace, vmTrace, stateDiff)
  • trace_call, trace_callMany — call tracing with state/block overrides and accumulated state
  • trace_rawTransaction — trace from raw RLP bytes
  • trace_filter — brute-force block range filter with configurable limit (default 100, env SIGNET_RPC_MAX_TRACE_FILTER_BLOCKS)

Architecture: new trace module mirroring debug; two shared Parity tracer functions in debug/tracer.rs; two shared block replay helpers; all handlers semaphore-gated.

Closes ENG-2088, ENG-1064, ENG-1065

Test plan

  • cargo t -p signet-rpc — 35 unit + 6 doc-tests pass
  • cargo clippy -p signet-rpc --all-features --all-targets — clean
  • cargo clippy --all-features --all-targets — workspace clean
  • cargo +nightly fmt --check — clean
  • Route count: 9 trace routes wired (62 total)
  • Manual smoke test against a running node with Blockscout

🤖 Generated with Claude Code

prestwich and others added 9 commits March 25, 2026 18:24
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 Sonnet 4.6 <noreply@anthropic.com>
Implements the trace_block and trace_transaction async RPC handlers,
calling the existing trace_block_localized helper for block-level and
per-transaction Parity trace output.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…e_get, and trace_filter

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Creates trace/mod.rs with the router constructor and wires it into
the combined router. Fixes HashSet type mismatch (std to alloy) and
removes erroneous accept_state() call on already-needs-tx state.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@prestwich prestwich requested a review from a team as a code owner March 25, 2026 23:20
@prestwich prestwich requested a review from Fraser999 March 25, 2026 23:24
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.

1 participant