Skip to main content

TraceApiClient

Trait TraceApiClient 

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

Client implementation for the TraceApi RPC API.

Provided Methods§

Source

fn trace_call( &self, call: TxReq, trace_types: HashSet<TraceType, DefaultHashBuilder>, block_id: Option<BlockId>, state_overrides: Option<HashMap<Address, AccountOverride, FbBuildHasher<20>>>, block_overrides: Option<Box<BlockOverrides>>, ) -> impl Future<Output = Result<TraceResults, Error>> + Send

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

Source

fn trace_call_many( &self, calls: Vec<(TxReq, HashSet<TraceType, DefaultHashBuilder>)>, block_id: Option<BlockId>, ) -> impl Future<Output = Result<Vec<TraceResults>, Error>> + Send

Performs multiple call traces on top of the same block, defaulting to latest when no block is specified. Each call is executed with the preceding calls applied first, allowing dependent transactions to be traced.

Source

fn trace_raw_transaction( &self, data: Bytes, trace_types: HashSet<TraceType, DefaultHashBuilder>, block_id: Option<BlockId>, ) -> impl Future<Output = Result<TraceResults, Error>> + Send

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

Expects a raw transaction data

Source

fn replay_block_transactions( &self, block_id: BlockId, trace_types: HashSet<TraceType, DefaultHashBuilder>, ) -> impl Future<Output = Result<Option<Vec<TraceResultsWithTransactionHash>>, Error>> + Send

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

Source

fn replay_transaction( &self, transaction: FixedBytes<32>, trace_types: HashSet<TraceType, DefaultHashBuilder>, ) -> impl Future<Output = Result<Option<TraceResultsWithTransactionHash>, Error>> + Send

Replays a transaction, returning the traces or None if the transaction does not exist.

Source

fn trace_block( &self, block_id: BlockId, ) -> impl Future<Output = Result<Option<Vec<LocalizedTransactionTrace>>, Error>> + Send

Returns traces created at given block.

Source

fn trace_filter( &self, filter: TraceFilter, ) -> impl Future<Output = Result<Vec<LocalizedTransactionTrace>, Error>> + Send

Returns traces matching given filter.

This is similar to eth_getLogs but for traces. Omitted range bounds default to latest.

Source

fn trace_get( &self, hash: FixedBytes<32>, indices: Vec<Index>, ) -> impl Future<Output = Result<Option<LocalizedTransactionTrace>, Error>> + Send

Returns the transaction trace at the given traceAddress path.

An empty path selects the root, [0] selects its first child, and [0, 1] selects that child’s second child. Returns None if the transaction or path does not exist. Callers requiring a flat index can index the result of trace_transaction instead.

Source

fn trace_transaction( &self, hash: FixedBytes<32>, ) -> impl Future<Output = Result<Option<Vec<LocalizedTransactionTrace>>, Error>> + Send

Returns all traces of given transaction.

Source

fn trace_transaction_opcode_gas( &self, tx_hash: FixedBytes<32>, ) -> impl Future<Output = Result<Option<TransactionOpcodeGas>, Error>> + Send

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

Source

fn trace_block_opcode_gas( &self, block_id: BlockId, ) -> impl Future<Output = Result<Option<BlockOpcodeGas>, Error>> + Send

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".

Implementors§

Source§

impl<TypeJsonRpseeInternal, TxReq> TraceApiClient<TxReq> for TypeJsonRpseeInternal
where TypeJsonRpseeInternal: ClientT, TxReq: Send + Sync + 'static + Serialize,