alloy_provider::ext

Trait DebugApi

source
pub trait DebugApi<N, T>: Send + Sync {
    // 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<Block>>> + 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_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;
}
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<Block>>> + 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_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.

Implementors§

source§

impl<N, T, P> DebugApi<N, T> for P
where N: Network, T: Transport + Clone, P: Provider<T, N>,