Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for debug_traceCall to EVM GW API #530

Open
Tracked by #6539
franklywatson opened this issue Sep 6, 2024 · 10 comments · May be fixed by #605
Open
Tracked by #6539

Add support for debug_traceCall to EVM GW API #530

franklywatson opened this issue Sep 6, 2024 · 10 comments · May be fixed by #605

Comments

@franklywatson
Copy link
Contributor

This endpoint is required for ERC-4337 integration

https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-debug#debugtracecall

@SeanRobb
Copy link

SeanRobb commented Sep 9, 2024

@franklywatson @sideninja

Can we get it estimated and prioritized as it is blocking Alchemy ERC-4337 bundler. Which then is blocking 2 integration P1 partners for us?

@sideninja
Copy link
Contributor

@SeanRobb what is the expected tracer configuration they will want to use? the same one as we currently support for trace transaction?

@SeanRobb
Copy link

@franklywatson @AnukeG do we have an answer for @sideninja question?

@dancoombs
Copy link

By tracer config are you referring to the Geth TraceConfig?

If so, we currently use tracer with a javascript tracer, and timeout.

Our usage is here (Rust): https://github.com/alchemyplatform/rundler/blob/7b5097f537b25b504951584df6f3bc18fdb29d68/crates/sim/src/simulation/v0_7/tracer.rs#L155

@franklywatson
Copy link
Contributor Author

FYI this needs to include state_overrides to meet ERC-4337 integration requirements

@m-Peter
Copy link
Collaborator

m-Peter commented Sep 27, 2024

FYI this needs to include state_overrides to meet ERC-4337 integration requirements

@franklywatson Can we have a sample JSON-RPC request with this, so we can try it out during development?

@franklywatson
Copy link
Contributor Author

Partner responded with:

In general, the requirement is an API the same as Geth: https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-debug#debugtracecall
We specifically use a Javascript expression in the tracer field here. https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-debug#traceconfig

Attached is a request/response payload example from another chain, however, bear in mind it won't run on Flow given it's for another network
debug_traceCall with overrides example.txt

@m-Peter
Copy link
Collaborator

m-Peter commented Sep 30, 2024

Thanks @franklywatson , I have made some working examples of JavaScript tracer with state overrides.

@m-Peter m-Peter linked a pull request Oct 1, 2024 that will close this issue
6 tasks
@m-Peter m-Peter self-assigned this Oct 1, 2024
@m-Peter m-Peter added this to the Flow-EVM-M2 milestone Oct 1, 2024
@m-Peter m-Peter added EVM and removed Feedback labels Oct 1, 2024
@dancoombs
Copy link

FYI this needs to include state_overrides to meet ERC-4337 integration requirements

Just to make sure this isn't forgotten, ERC-4337 also requires eth_call to support the same Geth ethapi.StateOverride in the API. Not sure if that is tracked in another ticket but the the application of the state overrides can be shared between the two APIs (debug_traceCall/eth_call)

@m-Peter
Copy link
Collaborator

m-Peter commented Oct 2, 2024

FYI this needs to include state_overrides to meet ERC-4337 integration requirements

Just to make sure this isn't forgotten, ERC-4337 also requires eth_call to support the same Geth ethapi.StateOverride in the API. Not sure if that is tracked in another ticket but the the application of the state overrides can be shared between the two APIs (debug_traceCall/eth_call)

That's a good call out 👍 Currently eth_call does not support the ethapi.StateOverride, but I'll open up a new issue for it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: No status
Development

Successfully merging a pull request may close this issue.

5 participants