Skip to content

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

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

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 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
@prestwich prestwich marked this pull request as draft March 26, 2026 11:07
@prestwich prestwich force-pushed the prestwich/parity-trace-namespace branch from 8221a2c to b3d7ca3 Compare March 26, 2026 14:49
@prestwich prestwich force-pushed the prestwich/eng-960-rpc-namespace-completeness branch from 9af104c to 4dd2e29 Compare March 26, 2026 15:29
@prestwich prestwich force-pushed the prestwich/parity-trace-namespace branch from b3d7ca3 to 552d4ff Compare March 26, 2026 15:29
@prestwich prestwich force-pushed the prestwich/eng-960-rpc-namespace-completeness branch from 4dd2e29 to 03bbd7c Compare March 26, 2026 15:38
prestwich and others added 9 commits March 26, 2026 11:38
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 force-pushed the prestwich/parity-trace-namespace branch from 552d4ff to d3034ae Compare March 26, 2026 15:38
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