Skip to content

Evaluate skip-sender validation for EthTraceCall #7528

Description

@coderabbitai

Summary

Evaluate whether EthTraceCall (trace_call) must support the same skip-sender-validation behavior as EthCall (eth_call) and EthEstimateGas (eth_estimateGas).

Rationale

The sender-validation changes in #7435 allow contract and nonexistent senders for eth_call and eth_estimateGas. EthTraceCall currently calls StateManager::apply_on_state_with_gas with SenderValidation::Enforce. As a result, trace_call can reject sender types that the related Ethereum RPC methods now support.

Affected area

  • src/rpc/methods/eth.rs
  • EthTraceCall::handle
  • Sender-validation and retry behavior around StateManager::apply_on_state_with_gas

Required work

  1. Confirm the expected trace_call behavior against Lotus and Ethereum RPC compatibility requirements.
  2. If parity requires it, add sender-validation retry logic that uses SenderValidation::Skip only for recognized sender-validation failures.
  3. Preserve normal validation errors and unrelated execution errors.
  4. Add focused tests for contract, nonexistent, and regular EOA senders.

Acceptance criteria

  • The intended trace_call sender-validation policy is documented by code or tests.
  • If skip behavior is required, contract and nonexistent senders produce trace results when execution otherwise succeeds.
  • Regular sender validation remains enforced unless the failure is a recognized sender-validation failure.
  • The tests cover the selected behavior.

Links

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

Status
New

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions