Skip to content

fix: allow empty ethereum trace output - #1089

Open
ppca wants to merge 1 commit into
developfrom
xiangyi/allow-empty-eth-trace-output
Open

fix: allow empty ethereum trace output#1089
ppca wants to merge 1 commit into
developfrom
xiangyi/allow-empty-eth-trace-output

Conversation

@ppca

@ppca ppca commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

#1088
Fix Ethereum bidirectional response extraction for successful contract calls that return no data.

Some RPC providers omit output from debug_traceTransaction call frames when the traced contract call returns no bytes, rather than returning "output": "0x". This caused the Ethereum indexer to fail output extraction and drop the ExecutionConfirmed event, leaving bidirectional requests pending.

Changes:

  • Represent trace results with TraceOutput::{NotTraced, Output, NoReturnData}.
  • Treat missing output as no return data only when the trace result is a valid call frame.
  • Allow no-return-data contract calls only when output_deserialization_schema declares no return values.
  • Preserve errors for malformed traces, null trace results, and non-empty output schemas.
  • Synthesize the existing success/default response for void-return calls, including Hydration’s Borsh bool response.
  • Replace a Borsh schema assert! with a returned error to avoid indexer panics on malformed response schemas.
  • Add a TODO for surfacing unrecoverable extraction failures beyond logs

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