You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We observed high response latencies on eth_simulateV1, and debug_traceCallMany lacks the same override possibilities and does not return internal log traces.
Therefore, we propose a new tracing/simulation RPC endpoint that retains the override capabilities of eth_simulateV1, is as lightweight as debug_traceCallMany, and optionally returns internal log traces.
Additional context
Something like:
#[method(name = "simulate")]asyncfnsimulate(&self,opts:SimulatePayload,block_number:Option<BlockId>,) -> RpcResult<Vec<Vec<SimulationTrace>>>;pubstructSimulationTrace{/// The address of that initiated the call.pubfrom:Address,/// The address of the contract that was called.pubto:Option<Address>,/// How much gas was used by the call.pubgas_used:U256,/// Calldata input.pubinput:Bytes,/// Output of the call, if any.puboutput:Option<Bytes>,/// Error message, if any.puberror:Option<String>,/// Why this call reverted, if it reverted.pubrevert_reason:Option<String>,/// Logs emitted by this call.publogs:Vec<alloy_primitives::Log>,/// Value transferred.pubvalue:Option<U256>,}
The difference with debug_traceCallMany would be that it computes internal logs and just expose alloy_primitives::Log and has the possibility to override state and block_env. I'd also like the idea to make the log computation optional.
Describe the feature
We observed high response latencies on
eth_simulateV1
, anddebug_traceCallMany
lacks the same override possibilities and does not return internal log traces.Therefore, we propose a new tracing/simulation RPC endpoint that retains the override capabilities of
eth_simulateV1
, is as lightweight asdebug_traceCallMany
, and optionally returns internal log traces.Additional context
Something like:
The difference with
debug_traceCallMany
would be that it computes internal logs and just exposealloy_primitives::Log
and has the possibility to override state and block_env. I'd also like the idea to make the log computation optional.What you think @mattsse?
The text was updated successfully, but these errors were encountered: