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;
}
debug-api
only.Expand description
Debug namespace rpc interface that gives access to several non-standard RPC methods.
Required Methods§
Sourcefn 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_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.
Sourcefn 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_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.
Sourcefn 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_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.
Sourcefn 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_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.
Sourcefn 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_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.
Sourcefn 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_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.
Sourcefn 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_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.
Sourcefn 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<'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.
Sourcefn 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_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.
Sourcefn 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_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.
Sourcefn 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_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.
Sourcefn 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_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.
Sourcefn 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_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.
Sourcefn 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_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.
Sourcefn 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_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.
Sourcefn 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_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.
Sourcefn 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<'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.
Sourcefn 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_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.
Sourcefn 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_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.
Sourcefn 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,
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.