Encode debug_traceTransaction without additional arguments
#4017
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
#3982 introduced a small change that caused the settlement indexing to fail on lens.
The
debug_traceTransactioncalls are now failing with the errorAlloy(ErrorResp(ErrorPayload { code: -32602, message: "Invalid params", data: Some(RawValue("missing fieldonlyTopCallat line 1 column 40")) })).Previously we encoded a call with the arguments
{"tracer": "callTracer"}(see here) but now due to how alloy's internal logic works we encode arguments like{"tracer": "callTracer", "tracerConfig": {}}. Alloy only skips encoding thetracer_configargument when it's null (see here) butGethDebugTracingOptions::call_tracer(CallConfig::default())ends up putting an empty JSON object intotracer_configinstead ofnull.Changes
Update
debug_traceTransactionarguments to not encode anytracerConfig.How to test
Confirmed hypothesis with
cast.Current call:
Without additional
tracerConfig: