Enum reth_rpc_eth_types::error::EthApiError
source · pub enum EthApiError {
Show 33 variants
EmptyRawTransactionData,
FailedToDecodeSignedTransaction,
InvalidTransactionSignature,
PoolError(RpcPoolError),
HeaderNotFound(BlockId),
HeaderRangeNotFound(BlockId, BlockId),
ReceiptsNotFound(BlockId),
UnknownBlockOrTxIndex,
InvalidBlockRange,
ExceedsMaxProofWindow,
PrevrandaoNotSet,
ExcessBlobGasNotSet,
ConflictingFeeFieldsInRequest,
InvalidTransaction(RpcInvalidTransactionError),
InvalidBlockData(BlockError),
BothStateAndStateDiffInOverride(Address),
Internal(RethError),
Signing(SignError),
TransactionNotFound,
Unsupported(&'static str),
InvalidParams(String),
InvalidTracerConfig,
InvalidRewardPercentiles,
InternalBlockingTaskError,
InternalEthError,
ExecutionTimedOut(Duration),
InternalJsTracerError(String),
TransactionInputError(TransactionInputError),
EvmCustom(String),
EvmPrecompile(String),
TransactionConversionError,
MuxTracerError(MuxError),
Other(Box<dyn ToRpcError>),
}
Expand description
Errors that can occur when interacting with the eth_
namespace
Variants§
EmptyRawTransactionData
When a raw transaction is empty
FailedToDecodeSignedTransaction
When decoding a signed transaction fails
InvalidTransactionSignature
When the transaction signature is invalid
PoolError(RpcPoolError)
Errors related to the transaction pool
HeaderNotFound(BlockId)
Header not found for block hash/number/tag
HeaderRangeNotFound(BlockId, BlockId)
Header range not found for start block hash/number/tag to end block hash/number/tag
ReceiptsNotFound(BlockId)
Receipts not found for block hash/number/tag
UnknownBlockOrTxIndex
Thrown when an unknown block or transaction index is encountered
InvalidBlockRange
When an invalid block range is provided
ExceedsMaxProofWindow
Thrown when the target block for proof computation exceeds the maximum configured window.
PrevrandaoNotSet
An internal error where prevrandao is not set in the evm’s environment
ExcessBlobGasNotSet
excess_blob_gas
is not set for Cancun and above
ConflictingFeeFieldsInRequest
Thrown when a call or transaction request (eth_call
, eth_estimateGas
,
eth_sendTransaction
) contains conflicting fields (legacy, EIP-1559)
InvalidTransaction(RpcInvalidTransactionError)
Errors related to invalid transactions
InvalidBlockData(BlockError)
Thrown when constructing an RPC block from primitive block data fails
BothStateAndStateDiffInOverride(Address)
Thrown when an AccountOverride
contains conflicting state
and stateDiff
fields
Internal(RethError)
Other internal error
Signing(SignError)
Error related to signing
TransactionNotFound
Thrown when a requested transaction is not found
Unsupported(&'static str)
Some feature is unsupported
InvalidParams(String)
General purpose error for invalid params
InvalidTracerConfig
When the tracer config does not match the tracer
InvalidRewardPercentiles
When the percentile array is invalid
InternalBlockingTaskError
Error thrown when a spawned blocking task failed to deliver an anticipated response.
This only happens if the blocking task panics and is aborted before it can return a response back to the request handler.
InternalEthError
Error thrown when a spawned blocking task failed to deliver an anticipated response
ExecutionTimedOut(Duration)
Error thrown when a (tracing) call exceeds the configured timeout
InternalJsTracerError(String)
Internal Error thrown by the javascript tracer
TransactionInputError(TransactionInputError)
Call Input error when both data
and input
fields are set and not equal.
EvmCustom(String)
Evm generic purpose error.
EvmPrecompile(String)
Evm precompile error
TransactionConversionError
Error encountered when converting a transaction type
MuxTracerError(MuxError)
Error thrown when tracing with a muxTracer fails
Other(Box<dyn ToRpcError>)
Any other error
Implementations§
source§impl EthApiError
impl EthApiError
sourcepub fn other<E: ToRpcError>(err: E) -> Self
pub fn other<E: ToRpcError>(err: E) -> Self
crates a new EthApiError::Other
variant.
sourcepub const fn is_gas_too_high(&self) -> bool
pub const fn is_gas_too_high(&self) -> bool
Returns true
if error is RpcInvalidTransactionError::GasTooHigh
Trait Implementations§
source§impl Debug for EthApiError
impl Debug for EthApiError
source§impl Display for EthApiError
impl Display for EthApiError
source§impl Error for EthApiError
impl Error for EthApiError
source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · source§fn description(&self) -> &str
fn description(&self) -> &str
source§impl From<BlockError> for EthApiError
impl From<BlockError> for EthApiError
source§impl<T> From<EVMError<T>> for EthApiErrorwhere
T: Into<Self>,
impl<T> From<EVMError<T>> for EthApiErrorwhere
T: Into<Self>,
source§impl From<EthApiError> for ErrorObject<'static>
impl From<EthApiError> for ErrorObject<'static>
source§fn from(error: EthApiError) -> Self
fn from(error: EthApiError) -> Self
source§impl From<EthApiError> for EthFilterError
impl From<EthApiError> for EthFilterError
source§fn from(source: EthApiError) -> Self
fn from(source: EthApiError) -> Self
source§impl From<JsInspectorError> for EthApiError
Available on crate feature js-tracer
only.
impl From<JsInspectorError> for EthApiError
js-tracer
only.source§impl From<Error> for EthApiError
impl From<Error> for EthApiError
source§impl From<PoolError> for EthApiError
impl From<PoolError> for EthApiError
source§impl From<ProviderError> for EthApiError
impl From<ProviderError> for EthApiError
source§impl From<RethError> for EthApiError
impl From<RethError> for EthApiError
source§impl From<RpcInvalidTransactionError> for EthApiError
impl From<RpcInvalidTransactionError> for EthApiError
source§fn from(source: RpcInvalidTransactionError) -> Self
fn from(source: RpcInvalidTransactionError) -> Self
source§impl From<SignError> for EthApiError
impl From<SignError> for EthApiError
Auto Trait Implementations§
impl !Freeze for EthApiError
impl !RefUnwindSafe for EthApiError
impl Send for EthApiError
impl Sync for EthApiError
impl Unpin for EthApiError
impl !UnwindSafe for EthApiError
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self
to use its Display
implementation when
Debug
-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self
to use its LowerExp
implementation when
Debug
-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self
to use its LowerHex
implementation when
Debug
-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self
to use its Pointer
implementation when
Debug
-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self
to use its UpperExp
implementation when
Debug
-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self
to use its UpperHex
implementation when
Debug
-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self
, then passes self.as_mut()
into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self
, then passes self.deref()
into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow()
only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref()
only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut()
only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref()
only in debug builds, and is erased in release
builds.§impl<T> TryConv for T
impl<T> TryConv for T
§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
source§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
impl<T> ErasedDestructor for Twhere
T: 'static,
impl<T> MaybeDebug for Twhere
T: Debug,
impl<T> MaybeSend for Twhere
T: Send,
impl<T> MaybeSendSync for T
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 88 bytes
Size for each variant:
EmptyRawTransactionData
: 0 bytesFailedToDecodeSignedTransaction
: 0 bytesInvalidTransactionSignature
: 0 bytesPoolError
: 79 bytesHeaderNotFound
: 47 bytesHeaderRangeNotFound
: 87 bytesReceiptsNotFound
: 47 bytesUnknownBlockOrTxIndex
: 0 bytesInvalidBlockRange
: 0 bytesExceedsMaxProofWindow
: 0 bytesPrevrandaoNotSet
: 0 bytesExcessBlobGasNotSet
: 0 bytesConflictingFeeFieldsInRequest
: 0 bytesInvalidTransaction
: 47 bytesInvalidBlockData
: 31 bytesBothStateAndStateDiffInOverride
: 20 bytesInternal
: 71 bytesSigning
: 1 byteTransactionNotFound
: 0 bytesUnsupported
: 23 bytesInvalidParams
: 31 bytesInvalidTracerConfig
: 0 bytesInvalidRewardPercentiles
: 0 bytesInternalBlockingTaskError
: 0 bytesInternalEthError
: 0 bytesExecutionTimedOut
: 23 bytesInternalJsTracerError
: 31 bytesTransactionInputError
: 0 bytesEvmCustom
: 31 bytesEvmPrecompile
: 31 bytesTransactionConversionError
: 0 bytesMuxTracerError
: 23 bytesOther
: 23 bytes