Trait DebugApi

Source
pub trait DebugApi<N>: Send + Sync {
Show 20 methods // Required methods fn debug_get_raw_header<'life0, 'async_trait>( &'life0 self, block: BlockId, ) -> Pin<Box<dyn Future<Output = TransportResult<Bytes>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn debug_get_raw_block<'life0, 'async_trait>( &'life0 self, block: BlockId, ) -> Pin<Box<dyn Future<Output = TransportResult<Bytes>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn debug_get_raw_transaction<'life0, 'async_trait>( &'life0 self, hash: TxHash, ) -> Pin<Box<dyn Future<Output = TransportResult<Bytes>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn debug_get_raw_receipts<'life0, 'async_trait>( &'life0 self, block: BlockId, ) -> Pin<Box<dyn Future<Output = TransportResult<Vec<Bytes>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn debug_get_bad_blocks<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = TransportResult<Vec<BadBlock>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn debug_trace_chain<'life0, 'async_trait>( &'life0 self, start_exclusive: BlockNumberOrTag, end_inclusive: BlockNumberOrTag, ) -> Pin<Box<dyn Future<Output = TransportResult<Vec<BlockTraceResult>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn debug_trace_block<'life0, 'life1, 'async_trait>( &'life0 self, rlp_block: &'life1 [u8], trace_options: GethDebugTracingOptions, ) -> Pin<Box<dyn Future<Output = TransportResult<Vec<TraceResult>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn debug_trace_transaction<'life0, 'async_trait>( &'life0 self, hash: TxHash, trace_options: GethDebugTracingOptions, ) -> Pin<Box<dyn Future<Output = TransportResult<GethTrace>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn debug_trace_transaction_as<'life0, 'async_trait, R>( &'life0 self, hash: TxHash, trace_options: GethDebugTracingOptions, ) -> Pin<Box<dyn Future<Output = TransportResult<R>> + Send + 'async_trait>> where R: RpcRecv + DeserializeOwned + 'async_trait, Self: 'async_trait, 'life0: 'async_trait; fn debug_trace_transaction_js<'life0, 'async_trait>( &'life0 self, hash: TxHash, trace_options: GethDebugTracingOptions, ) -> Pin<Box<dyn Future<Output = TransportResult<Value>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn debug_trace_transaction_call<'life0, 'async_trait>( &'life0 self, hash: TxHash, trace_options: GethDebugTracingOptions, ) -> Pin<Box<dyn Future<Output = TransportResult<CallFrame>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn debug_trace_call_as<'life0, 'async_trait, R>( &'life0 self, tx: TransactionRequest, block: BlockId, trace_options: GethDebugTracingCallOptions, ) -> Pin<Box<dyn Future<Output = TransportResult<R>> + Send + 'async_trait>> where R: RpcRecv + DeserializeOwned + 'async_trait, Self: 'async_trait, 'life0: 'async_trait; fn debug_trace_call_js<'life0, 'async_trait>( &'life0 self, tx: TransactionRequest, block: BlockId, trace_options: GethDebugTracingCallOptions, ) -> Pin<Box<dyn Future<Output = TransportResult<Value>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn debug_trace_call_callframe<'life0, 'async_trait>( &'life0 self, tx: TransactionRequest, block: BlockId, trace_options: GethDebugTracingCallOptions, ) -> Pin<Box<dyn Future<Output = TransportResult<CallFrame>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn debug_trace_block_by_hash<'life0, 'async_trait>( &'life0 self, block: B256, trace_options: GethDebugTracingOptions, ) -> Pin<Box<dyn Future<Output = TransportResult<Vec<TraceResult>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn debug_trace_block_by_number<'life0, 'async_trait>( &'life0 self, block: BlockNumberOrTag, trace_options: GethDebugTracingOptions, ) -> Pin<Box<dyn Future<Output = TransportResult<Vec<TraceResult>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn debug_trace_call<'life0, 'async_trait>( &'life0 self, tx: TransactionRequest, block: BlockId, trace_options: GethDebugTracingCallOptions, ) -> Pin<Box<dyn Future<Output = TransportResult<GethTrace>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn debug_trace_call_many<'life0, 'async_trait>( &'life0 self, bundles: Vec<Bundle>, state_context: StateContext, trace_options: GethDebugTracingCallOptions, ) -> Pin<Box<dyn Future<Output = TransportResult<Vec<GethTrace>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn debug_execution_witness<'life0, 'async_trait>( &'life0 self, block: BlockNumberOrTag, ) -> Pin<Box<dyn Future<Output = TransportResult<ExecutionWitness>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn debug_code_by_hash<'life0, 'async_trait>( &'life0 self, hash: B256, block: Option<BlockId>, ) -> Pin<Box<dyn Future<Output = TransportResult<Option<Bytes>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait;
}
Available on crate feature debug-api only.
Expand description

Debug namespace rpc interface that gives access to several non-standard RPC methods.

Required Methods§

Source

fn debug_get_raw_header<'life0, 'async_trait>( &'life0 self, block: BlockId, ) -> Pin<Box<dyn Future<Output = TransportResult<Bytes>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Returns an RLP-encoded header.

Source

fn debug_get_raw_block<'life0, 'async_trait>( &'life0 self, block: BlockId, ) -> Pin<Box<dyn Future<Output = TransportResult<Bytes>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Retrieves and returns the RLP encoded block by number, hash or tag.

Source

fn debug_get_raw_transaction<'life0, 'async_trait>( &'life0 self, hash: TxHash, ) -> Pin<Box<dyn Future<Output = TransportResult<Bytes>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Returns an EIP-2718 binary-encoded transaction.

Source

fn debug_get_raw_receipts<'life0, 'async_trait>( &'life0 self, block: BlockId, ) -> Pin<Box<dyn Future<Output = TransportResult<Vec<Bytes>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Returns an array of EIP-2718 binary-encoded receipts.

Source

fn debug_get_bad_blocks<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = TransportResult<Vec<BadBlock>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Returns an array of recent bad blocks that the client has seen on the network.

Source

fn debug_trace_chain<'life0, 'async_trait>( &'life0 self, start_exclusive: BlockNumberOrTag, end_inclusive: BlockNumberOrTag, ) -> Pin<Box<dyn Future<Output = TransportResult<Vec<BlockTraceResult>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Returns the structured logs created during the execution of EVM between two blocks (excluding start) as a JSON object.

Source

fn debug_trace_block<'life0, 'life1, 'async_trait>( &'life0 self, rlp_block: &'life1 [u8], trace_options: GethDebugTracingOptions, ) -> Pin<Box<dyn Future<Output = TransportResult<Vec<TraceResult>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

The debug_traceBlock method will return a full stack trace of all invoked opcodes of all transaction that were included in this block.

This expects an RLP-encoded block.

§Note

The parent of this block must be present, or it will fail.

Source

fn debug_trace_transaction<'life0, 'async_trait>( &'life0 self, hash: TxHash, trace_options: GethDebugTracingOptions, ) -> Pin<Box<dyn Future<Output = TransportResult<GethTrace>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Reruns the transaction specified by the hash and returns the trace.

It will replay any prior transactions to achieve the same state the transaction was executed in.

GethDebugTracingOptions can be used to specify the trace options.

§Note

Not all nodes support this call.

Source

fn debug_trace_transaction_as<'life0, 'async_trait, R>( &'life0 self, hash: TxHash, trace_options: GethDebugTracingOptions, ) -> Pin<Box<dyn Future<Output = TransportResult<R>> + Send + 'async_trait>>
where R: RpcRecv + DeserializeOwned + 'async_trait, Self: 'async_trait, 'life0: 'async_trait,

Reruns the transaction specified by the hash and returns the trace in a specified format.

This method allows for the trace to be returned as a type that implements RpcRecv and serde::de::DeserializeOwned.

GethDebugTracingOptions can be used to specify the trace options.

§Note

Not all nodes support this call.

Source

fn debug_trace_transaction_js<'life0, 'async_trait>( &'life0 self, hash: TxHash, trace_options: GethDebugTracingOptions, ) -> Pin<Box<dyn Future<Output = TransportResult<Value>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Reruns the transaction specified by the hash and returns the trace as a JSON object.

This method provides the trace in a JSON format, which can be useful for further processing or inspection.

GethDebugTracingOptions can be used to specify the trace options.

§Note

Not all nodes support this call.

Source

fn debug_trace_transaction_call<'life0, 'async_trait>( &'life0 self, hash: TxHash, trace_options: GethDebugTracingOptions, ) -> Pin<Box<dyn Future<Output = TransportResult<CallFrame>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Reruns the transaction specified by the hash and returns the trace as a call frame.

This method provides the trace in the form of a CallFrame, which can be useful for analyzing the call stack and execution details.

GethDebugTracingOptions can be used to specify the trace options.

§Note

Not all nodes support this call.

Source

fn debug_trace_call_as<'life0, 'async_trait, R>( &'life0 self, tx: TransactionRequest, block: BlockId, trace_options: GethDebugTracingCallOptions, ) -> Pin<Box<dyn Future<Output = TransportResult<R>> + Send + 'async_trait>>
where R: RpcRecv + DeserializeOwned + 'async_trait, Self: 'async_trait, 'life0: 'async_trait,

Reruns the transaction specified by the hash and returns the trace in a specified format.

This method allows for the trace to be returned as a type that implements RpcRecv and serde::de::DeserializeOwned.

GethDebugTracingOptions can be used to specify the trace options.

§Note

Not all nodes support this call.

Source

fn debug_trace_call_js<'life0, 'async_trait>( &'life0 self, tx: TransactionRequest, block: BlockId, trace_options: GethDebugTracingCallOptions, ) -> Pin<Box<dyn Future<Output = TransportResult<Value>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Reruns the transaction specified by the hash and returns the trace as a JSON object.

This method provides the trace in a JSON format, which can be useful for further processing or inspection.

GethDebugTracingOptions can be used to specify the trace options.

§Note

Not all nodes support this call.

Source

fn debug_trace_call_callframe<'life0, 'async_trait>( &'life0 self, tx: TransactionRequest, block: BlockId, trace_options: GethDebugTracingCallOptions, ) -> Pin<Box<dyn Future<Output = TransportResult<CallFrame>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Reruns the transaction specified by the hash and returns the trace as a call frame.

This method provides the trace in the form of a CallFrame, which can be useful for analyzing the call stack and execution details.

GethDebugTracingOptions can be used to specify the trace options.

§Note

Not all nodes support this call.

Source

fn debug_trace_block_by_hash<'life0, 'async_trait>( &'life0 self, block: B256, trace_options: GethDebugTracingOptions, ) -> Pin<Box<dyn Future<Output = TransportResult<Vec<TraceResult>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Return a full stack trace of all invoked opcodes of all transaction that were included in this block.

The parent of the block must be present or it will fail.

GethDebugTracingOptions can be used to specify the trace options.

§Note

Not all nodes support this call.

Source

fn debug_trace_block_by_number<'life0, 'async_trait>( &'life0 self, block: BlockNumberOrTag, trace_options: GethDebugTracingOptions, ) -> Pin<Box<dyn Future<Output = TransportResult<Vec<TraceResult>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Same as debug_trace_block_by_hash but block is specified by number.

GethDebugTracingOptions can be used to specify the trace options.

§Note

Not all nodes support this call.

Source

fn debug_trace_call<'life0, 'async_trait>( &'life0 self, tx: TransactionRequest, block: BlockId, trace_options: GethDebugTracingCallOptions, ) -> Pin<Box<dyn Future<Output = TransportResult<GethTrace>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Executes the given transaction without publishing it like eth_call and returns the trace of the execution.

The transaction will be executed in the context of the given block number or tag. The state its run on is the state of the previous block.

GethDebugTracingOptions can be used to specify the trace options.

§Note

Not all nodes support this call.

Source

fn debug_trace_call_many<'life0, 'async_trait>( &'life0 self, bundles: Vec<Bundle>, state_context: StateContext, trace_options: GethDebugTracingCallOptions, ) -> Pin<Box<dyn Future<Output = TransportResult<Vec<GethTrace>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Same as debug_trace_call but it used to run and trace multiple transactions at once.

GethDebugTracingOptions can be used to specify the trace options.

§Note

Not all nodes support this call.

Source

fn debug_execution_witness<'life0, 'async_trait>( &'life0 self, block: BlockNumberOrTag, ) -> Pin<Box<dyn Future<Output = TransportResult<ExecutionWitness>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

The debug_executionWitness method allows for re-execution of a block with the purpose of generating an execution witness. The witness comprises of a map of all hashed trie nodes to their preimages that were required during the execution of the block, including during state root recomputation.

The first argument is the block number or block hash.

§Note

Not all nodes support this call.

Source

fn debug_code_by_hash<'life0, 'async_trait>( &'life0 self, hash: B256, block: Option<BlockId>, ) -> Pin<Box<dyn Future<Output = TransportResult<Option<Bytes>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

The debug_codeByHash method returns the code associated with a given hash at the specified block. If no code is found, it returns None. If no block is provided, it defaults to the latest block.

§Note

Not all nodes support this call.

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<N, P> DebugApi<N> for P
where N: Network, P: Provider<N>,