pub enum GethDebugBuiltInTracerType {
FourByteTracer,
CallTracer,
FlatCallTracer,
PreStateTracer,
NoopTracer,
MuxTracer,
}
Expand description
Available built-in tracers
See https://geth.ethereum.org/docs/developers/evm-tracing/built-in-tracers
Variants§
FourByteTracer
The 4byteTracer collects the function selectors of every function executed in the lifetime of a transaction, along with the size of the supplied call data. The result is a FourByteFrame where the keys are SELECTOR-CALLDATASIZE and the values are number of occurrences of this key.
CallTracer
The callTracer tracks all the call frames executed during a transaction, including depth 0. The result will be a nested list of call frames, resembling how EVM works. They form a tree with the top-level call at root and sub-calls as children of the higher levels.
FlatCallTracer
Tracks all call frames of a transaction and returns them in a flat format, i.e. as opposed
to the nested format of callTracer
.
PreStateTracer
The prestate tracer operates in two distinct modes: prestate and diff.
- In prestate mode, it retrieves the accounts required for executing a specified transaction.
- In diff mode, it identifies the changes between the transaction’s initial and final states, detailing the modifications caused by the transaction.
By default, the prestateTracer is set to prestate mode. It reexecutes the given transaction and tracks every part of state that is accessed.
This functionality is akin to a stateless witness, with the key distinction that this tracer does not provide any cryptographic proofs; it only returns the trie leaves. The output is an object where the keys correspond to account addresses.
NoopTracer
This tracer is noop. It returns an empty object and is only meant for testing the setup.
MuxTracer
The mux tracer is a tracer that can run multiple tracers at once.
Trait Implementations§
source§impl Clone for GethDebugBuiltInTracerType
impl Clone for GethDebugBuiltInTracerType
source§fn clone(&self) -> GethDebugBuiltInTracerType
fn clone(&self) -> GethDebugBuiltInTracerType
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for GethDebugBuiltInTracerType
impl Debug for GethDebugBuiltInTracerType
source§impl<'de> Deserialize<'de> for GethDebugBuiltInTracerType
impl<'de> Deserialize<'de> for GethDebugBuiltInTracerType
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
source§impl From<GethDebugBuiltInTracerType> for GethDebugTracerType
impl From<GethDebugBuiltInTracerType> for GethDebugTracerType
source§fn from(value: GethDebugBuiltInTracerType) -> Self
fn from(value: GethDebugBuiltInTracerType) -> Self
source§impl Hash for GethDebugBuiltInTracerType
impl Hash for GethDebugBuiltInTracerType
impl Copy for GethDebugBuiltInTracerType
impl Eq for GethDebugBuiltInTracerType
impl StructuralPartialEq for GethDebugBuiltInTracerType
Auto Trait Implementations§
impl Freeze for GethDebugBuiltInTracerType
impl RefUnwindSafe for GethDebugBuiltInTracerType
impl Send for GethDebugBuiltInTracerType
impl Sync for GethDebugBuiltInTracerType
impl Unpin for GethDebugBuiltInTracerType
impl UnwindSafe for GethDebugBuiltInTracerType
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more