reth::rpc::api

Trait TraceApiClient

Source
pub trait TraceApiClient: ClientT {
    // Provided methods
    fn trace_call<'life0, 'async_trait>(
        &'life0 self,
        call: TransactionRequest,
        trace_types: HashSet<TraceType, RandomState>,
        block_id: Option<BlockId>,
        state_overrides: Option<HashMap<Address, AccountOverride, FbBuildHasher<20>>>,
        block_overrides: Option<Box<BlockOverrides>>,
    ) -> Pin<Box<dyn Future<Output = Result<TraceResults, Error>> + Send + 'async_trait>>
       where 'life0: 'async_trait,
             Self: Sync + 'async_trait { ... }
    fn trace_call_many<'life0, 'async_trait>(
        &'life0 self,
        calls: Vec<(TransactionRequest, HashSet<TraceType, RandomState>)>,
        block_id: Option<BlockId>,
    ) -> Pin<Box<dyn Future<Output = Result<Vec<TraceResults>, Error>> + Send + 'async_trait>>
       where 'life0: 'async_trait,
             Self: Sync + 'async_trait { ... }
    fn trace_raw_transaction<'life0, 'async_trait>(
        &'life0 self,
        data: Bytes,
        trace_types: HashSet<TraceType, RandomState>,
        block_id: Option<BlockId>,
    ) -> Pin<Box<dyn Future<Output = Result<TraceResults, Error>> + Send + 'async_trait>>
       where 'life0: 'async_trait,
             Self: Sync + 'async_trait { ... }
    fn replay_block_transactions<'life0, 'async_trait>(
        &'life0 self,
        block_id: BlockId,
        trace_types: HashSet<TraceType, RandomState>,
    ) -> Pin<Box<dyn Future<Output = Result<Option<Vec<TraceResultsWithTransactionHash>>, Error>> + Send + 'async_trait>>
       where 'life0: 'async_trait,
             Self: Sync + 'async_trait { ... }
    fn replay_transaction<'life0, 'async_trait>(
        &'life0 self,
        transaction: FixedBytes<32>,
        trace_types: HashSet<TraceType, RandomState>,
    ) -> Pin<Box<dyn Future<Output = Result<TraceResults, Error>> + Send + 'async_trait>>
       where 'life0: 'async_trait,
             Self: Sync + 'async_trait { ... }
    fn trace_block<'life0, 'async_trait>(
        &'life0 self,
        block_id: BlockId,
    ) -> Pin<Box<dyn Future<Output = Result<Option<Vec<LocalizedTransactionTrace>>, Error>> + Send + 'async_trait>>
       where 'life0: 'async_trait,
             Self: Sync + 'async_trait { ... }
    fn trace_filter<'life0, 'async_trait>(
        &'life0 self,
        filter: TraceFilter,
    ) -> Pin<Box<dyn Future<Output = Result<Vec<LocalizedTransactionTrace>, Error>> + Send + 'async_trait>>
       where 'life0: 'async_trait,
             Self: Sync + 'async_trait { ... }
    fn trace_get<'life0, 'async_trait>(
        &'life0 self,
        hash: FixedBytes<32>,
        indices: Vec<Index>,
    ) -> Pin<Box<dyn Future<Output = Result<Option<LocalizedTransactionTrace>, Error>> + Send + 'async_trait>>
       where 'life0: 'async_trait,
             Self: Sync + 'async_trait { ... }
    fn trace_transaction<'life0, 'async_trait>(
        &'life0 self,
        hash: FixedBytes<32>,
    ) -> Pin<Box<dyn Future<Output = Result<Option<Vec<LocalizedTransactionTrace>>, Error>> + Send + 'async_trait>>
       where 'life0: 'async_trait,
             Self: Sync + 'async_trait { ... }
    fn trace_transaction_opcode_gas<'life0, 'async_trait>(
        &'life0 self,
        tx_hash: FixedBytes<32>,
    ) -> Pin<Box<dyn Future<Output = Result<Option<TransactionOpcodeGas>, Error>> + Send + 'async_trait>>
       where 'life0: 'async_trait,
             Self: Sync + 'async_trait { ... }
    fn trace_block_opcode_gas<'life0, 'async_trait>(
        &'life0 self,
        block_id: BlockId,
    ) -> Pin<Box<dyn Future<Output = Result<Option<BlockOpcodeGas>, Error>> + Send + 'async_trait>>
       where 'life0: 'async_trait,
             Self: Sync + 'async_trait { ... }
}
Expand description

Client implementation for the TraceApi RPC API.

Provided Methods§

Source

fn trace_call<'life0, 'async_trait>( &'life0 self, call: TransactionRequest, trace_types: HashSet<TraceType, RandomState>, block_id: Option<BlockId>, state_overrides: Option<HashMap<Address, AccountOverride, FbBuildHasher<20>>>, block_overrides: Option<Box<BlockOverrides>>, ) -> Pin<Box<dyn Future<Output = Result<TraceResults, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: Sync + 'async_trait,

Executes the given call and returns a number of possible traces for it.

Source

fn trace_call_many<'life0, 'async_trait>( &'life0 self, calls: Vec<(TransactionRequest, HashSet<TraceType, RandomState>)>, block_id: Option<BlockId>, ) -> Pin<Box<dyn Future<Output = Result<Vec<TraceResults>, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: Sync + 'async_trait,

Performs multiple call traces on top of the same block. i.e. transaction n will be executed on top of a pending block with all n-1 transactions applied (traced) first. Allows to trace dependent transactions.

Source

fn trace_raw_transaction<'life0, 'async_trait>( &'life0 self, data: Bytes, trace_types: HashSet<TraceType, RandomState>, block_id: Option<BlockId>, ) -> Pin<Box<dyn Future<Output = Result<TraceResults, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: Sync + 'async_trait,

Traces a call to eth_sendRawTransaction without making the call, returning the traces.

Expects a raw transaction data

Source

fn replay_block_transactions<'life0, 'async_trait>( &'life0 self, block_id: BlockId, trace_types: HashSet<TraceType, RandomState>, ) -> Pin<Box<dyn Future<Output = Result<Option<Vec<TraceResultsWithTransactionHash>>, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: Sync + 'async_trait,

Replays all transactions in a block returning the requested traces for each transaction.

Source

fn replay_transaction<'life0, 'async_trait>( &'life0 self, transaction: FixedBytes<32>, trace_types: HashSet<TraceType, RandomState>, ) -> Pin<Box<dyn Future<Output = Result<TraceResults, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: Sync + 'async_trait,

Replays a transaction, returning the traces.

Source

fn trace_block<'life0, 'async_trait>( &'life0 self, block_id: BlockId, ) -> Pin<Box<dyn Future<Output = Result<Option<Vec<LocalizedTransactionTrace>>, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: Sync + 'async_trait,

Returns traces created at given block.

Source

fn trace_filter<'life0, 'async_trait>( &'life0 self, filter: TraceFilter, ) -> Pin<Box<dyn Future<Output = Result<Vec<LocalizedTransactionTrace>, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: Sync + 'async_trait,

Returns traces matching given filter.

This is similar to eth_getLogs but for traces.

Source

fn trace_get<'life0, 'async_trait>( &'life0 self, hash: FixedBytes<32>, indices: Vec<Index>, ) -> Pin<Box<dyn Future<Output = Result<Option<LocalizedTransactionTrace>, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: Sync + 'async_trait,

Returns transaction trace at given index.

indices represent the index positions of the traces.

Note: This expects a list of indices but only one is supported since this function returns a single [LocalizedTransactionTrace].

Source

fn trace_transaction<'life0, 'async_trait>( &'life0 self, hash: FixedBytes<32>, ) -> Pin<Box<dyn Future<Output = Result<Option<Vec<LocalizedTransactionTrace>>, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: Sync + 'async_trait,

Returns all traces of given transaction.

Source

fn trace_transaction_opcode_gas<'life0, 'async_trait>( &'life0 self, tx_hash: FixedBytes<32>, ) -> Pin<Box<dyn Future<Output = Result<Option<TransactionOpcodeGas>, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: Sync + 'async_trait,

Returns all opcodes with their count and combined gas usage for the given transaction in no particular order.

Source

fn trace_block_opcode_gas<'life0, 'async_trait>( &'life0 self, block_id: BlockId, ) -> Pin<Box<dyn Future<Output = Result<Option<BlockOpcodeGas>, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: Sync + 'async_trait,

Returns the opcodes of all transactions in the given block.

This is the same as trace_transactionOpcodeGas but for all transactions in a block.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<TypeJsonRpseeInteral> TraceApiClient for TypeJsonRpseeInteral
where TypeJsonRpseeInteral: ClientT,