-
Notifications
You must be signed in to change notification settings - Fork 438
Open
Labels
enhancementNew feature or requestNew feature or requestgood first issueGood for newcomersGood for newcomers
Description
Component
rpc
Describe the feature you would like
Callframe is a nested/recursive structure
alloy/crates/rpc-types-trace/src/geth/call.rs
Lines 11 to 36 in 6520d9e
pub struct CallFrame { | |
/// The address of that initiated the call. | |
pub from: Address, | |
/// How much gas was left before the call. | |
#[serde(default)] | |
pub gas: U256, | |
/// How much gas was used by the call. | |
#[serde(default, rename = "gasUsed")] | |
pub gas_used: U256, | |
/// The address of the contract that was called. | |
#[serde(default, skip_serializing_if = "Option::is_none")] | |
pub to: Option<Address>, | |
/// Calldata input. | |
pub input: Bytes, | |
/// Output of the call, if any. | |
#[serde(default, skip_serializing_if = "Option::is_none")] | |
pub output: Option<Bytes>, | |
/// Error message, if any. | |
#[serde(default, skip_serializing_if = "Option::is_none")] | |
pub error: Option<String>, | |
/// Why this call reverted, if it reverted. | |
#[serde(default, rename = "revertReason", skip_serializing_if = "Option::is_none")] | |
pub revert_reason: Option<String>, | |
/// Recorded child calls. | |
#[serde(default, skip_serializing_if = "Vec::is_empty")] | |
pub calls: Vec<CallFrame>, |
it would be nice to have an iterator type that iterates over all callframes but allows skipping child calls
TODO
- add helper iterator that keeps track of the parent <> child relation ship and can skip child calls
- this can also be solved with some stack based approach
Additional context
No response
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or requestgood first issueGood for newcomersGood for newcomers
Type
Projects
Status
Todo