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
- Confirm the expected
trace_call behavior against Lotus and Ethereum RPC compatibility requirements.
- If parity requires it, add sender-validation retry logic that uses
SenderValidation::Skip only for recognized sender-validation failures.
- Preserve normal validation errors and unrelated execution errors.
- 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
Summary
Evaluate whether
EthTraceCall(trace_call) must support the same skip-sender-validation behavior asEthCall(eth_call) andEthEstimateGas(eth_estimateGas).Rationale
The sender-validation changes in #7435 allow contract and nonexistent senders for
eth_callandeth_estimateGas.EthTraceCallcurrently callsStateManager::apply_on_state_with_gaswithSenderValidation::Enforce. As a result,trace_callcan reject sender types that the related Ethereum RPC methods now support.Affected area
src/rpc/methods/eth.rsEthTraceCall::handleStateManager::apply_on_state_with_gasRequired work
trace_callbehavior against Lotus and Ethereum RPC compatibility requirements.SenderValidation::Skiponly for recognized sender-validation failures.Acceptance criteria
trace_callsender-validation policy is documented by code or tests.Links