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

[Feature] Implement deserde manually for CallFrame #1986

Open
mattsse opened this issue Feb 1, 2025 · 8 comments
Open

[Feature] Implement deserde manually for CallFrame #1986

mattsse opened this issue Feb 1, 2025 · 8 comments
Labels
c-rpc-type-trace enhancement New feature or request
Milestone

Comments

@mattsse
Copy link
Member

mattsse commented Feb 1, 2025

Component

rpc

Describe the feature you would like

due to this recursive structure:

/// Recorded child calls.
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub calls: Vec<CallFrame>,

the CallFrame end encountered a serde deseerde issue ref #1156

#[derive(Clone, Debug, Default, PartialEq, Eq, Serialize, Deserialize)]
pub struct CallFrame {

we should manually implement this iteratively and not use recursion via delegated deserialazion calls

Additional context

No response

@mattsse mattsse added the enhancement New feature or request label Feb 1, 2025
@siosw
Copy link
Contributor

siosw commented Feb 5, 2025

can i work on this?

@nadtech-hub
Copy link
Contributor

🤚

@yash-atreya
Copy link
Member

yash-atreya commented Feb 20, 2025

Adding context

Reproduce Example from #1156
Using debug_trace_block_by_number with CallTracer option to trace Block 15413811

Code

let block_number = 15413811;
let geth_trace_options = GethDebugTracingOptions::default().with_tracer(
    GethDebugTracerType::BuiltInTracer(GethDebugBuiltInTracerType::CallTracer),
);
let geth_trace_results = provider
    .debug_trace_block_by_number(block_number.into(), geth_trace_options)
    .await?;
println!("{}", geth_trace_results.len());

Result

Error: deserialization error: recursion limit exceeded at line 1 column 200590

Caused by:
    recursion limit exceeded at line 1 column 200590

@mattsse
Copy link
Member Author

mattsse commented Feb 20, 2025

@siosw do you still want to take this?

@siosw
Copy link
Contributor

siosw commented Feb 21, 2025

@mattsse still happy to take a stab at this but will only get around to it early next week

@siosw
Copy link
Contributor

siosw commented Feb 27, 2025

@mattsse sorry but i need to drop this, more effort than I thought initially and won't have enough capacity.

@yash-atreya
Copy link
Member

Hey @nadtech-hub would you like to take this?

@nadtech-hub
Copy link
Contributor

Hey @nadtech-hub would you like to take this?

Absolutely, I'll do it after shipping PRs for current assignments

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c-rpc-type-trace enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants