pub enum EthApiError {
Show 35 variants
EmptyRawTransactionData,
FailedToDecodeSignedTransaction,
InvalidTransactionSignature,
PoolError(RpcPoolError),
HeaderNotFound(BlockId),
HeaderRangeNotFound(BlockId, BlockId),
PrunedHistoryUnavailable,
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),
InvalidBytecode(String),
TransactionConversionError,
MuxTracerError(MuxError),
TransactionConfirmationTimeout {
hash: B256,
duration: Duration,
},
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
Thrown when historical data is not available because it has been pruned
This error is intended for use as a standard response when historical data is requested that has been pruned according to the node’s data retention policy.
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.
InvalidBytecode(String)
Bytecode override is invalid.
This can happen if bytecode provided in an
AccountOverride
is malformed, e.g. invalid
7702 bytecode.
TransactionConversionError
Error encountered when converting a transaction type
MuxTracerError(MuxError)
Error thrown when tracing with a muxTracer fails
TransactionConfirmationTimeout
Error thrown when waiting for transaction confirmation times out
Fields
hash: B256
Hash of the transaction that timed out
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
Sourcepub const fn is_gas_too_low(&self) -> bool
pub const fn is_gas_too_low(&self) -> bool
Returns true
if error is RpcInvalidTransactionError::GasTooLow
Trait Implementations§
Source§impl AsEthApiError for EthApiError
impl AsEthApiError for EthApiError
Source§fn as_err(&self) -> Option<&EthApiError>
fn as_err(&self) -> Option<&EthApiError>
EthApiError
, if this an error variant inherited from core
functionality.Source§fn is_gas_too_high(&self) -> bool
fn is_gas_too_high(&self) -> bool
true
if error is
RpcInvalidTransactionError::GasTooHigh
.Source§fn is_gas_too_low(&self) -> bool
fn is_gas_too_low(&self) -> bool
true
if error is
RpcInvalidTransactionError::GasTooLow
.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 From<BlockExecutionError> for EthApiError
impl From<BlockExecutionError> 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<EthTxEnvError> for EthApiError
impl From<EthTxEnvError> for EthApiError
Source§impl From<Infallible> for EthApiError
impl From<Infallible> for EthApiError
Source§fn from(_: Infallible) -> Self
fn from(_: Infallible) -> Self
Source§impl From<InvalidHeader> for EthApiError
impl From<InvalidHeader> for EthApiError
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<RecoveryError> for EthApiError
impl From<RecoveryError> 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
Source§impl From<TransactionConversionError> for EthApiError
impl From<TransactionConversionError> for EthApiError
Source§impl From<TransactionInputError> for EthApiError
impl From<TransactionInputError> for EthApiError
Source§impl FromEvmHalt<HaltReason> for EthApiError
impl FromEvmHalt<HaltReason> for EthApiError
Source§fn from_evm_halt(halt: HaltReason, gas_limit: u64) -> Self
fn from_evm_halt(halt: HaltReason, gas_limit: u64) -> Self
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,
Source§impl<T> FromEthApiError for Twhere
T: From<EthApiError>,
impl<T> FromEthApiError for Twhere
T: From<EthApiError>,
Source§fn from_eth_err<E>(err: E) -> Twhere
EthApiError: From<E>,
fn from_eth_err<E>(err: E) -> Twhere
EthApiError: From<E>,
EthApiError
.§impl<TxEnv, T> FromRecoveredTx<&T> for TxEnvwhere
TxEnv: FromRecoveredTx<T>,
impl<TxEnv, T> FromRecoveredTx<&T> for TxEnvwhere
TxEnv: FromRecoveredTx<T>,
§fn from_recovered_tx(tx: &&T, sender: Address) -> TxEnv
fn from_recovered_tx(tx: &&T, sender: Address) -> TxEnv
TxEnv
] from a transaction and a sender address.§impl<TxEnv, T> FromTxWithEncoded<&T> for TxEnvwhere
TxEnv: FromTxWithEncoded<T>,
impl<TxEnv, T> FromTxWithEncoded<&T> for TxEnvwhere
TxEnv: FromTxWithEncoded<T>,
§fn from_encoded_tx(tx: &&T, sender: Address, encoded: Bytes) -> TxEnv
fn from_encoded_tx(tx: &&T, sender: Address, encoded: Bytes) -> TxEnv
TxEnv
] from a transaction, its sender, and encoded transaction bytes.§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 moreSource§impl<T> IntoEthApiError for Twhere
EthApiError: From<T>,
impl<T> IntoEthApiError for Twhere
EthApiError: From<T>,
Source§fn into_eth_err<E>(self) -> Ewhere
E: FromEthApiError,
fn into_eth_err<E>(self) -> Ewhere
E: FromEthApiError,
EthApiError
.§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> 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: 96 bytes
Size for each variant:
EmptyRawTransactionData
: 0 bytesFailedToDecodeSignedTransaction
: 0 bytesInvalidTransactionSignature
: 0 bytesPoolError
: 95 bytesHeaderNotFound
: 47 bytesHeaderRangeNotFound
: 87 bytesPrunedHistoryUnavailable
: 0 bytesReceiptsNotFound
: 47 bytesUnknownBlockOrTxIndex
: 0 bytesInvalidBlockRange
: 0 bytesExceedsMaxProofWindow
: 0 bytesPrevrandaoNotSet
: 0 bytesExcessBlobGasNotSet
: 0 bytesConflictingFeeFieldsInRequest
: 0 bytesInvalidTransaction
: 79 bytesInvalidBlockData
: 31 bytesBothStateAndStateDiffInOverride
: 20 bytesInternal
: 63 bytesSigning
: 1 byteTransactionNotFound
: 0 bytesUnsupported
: 23 bytesInvalidParams
: 31 bytesInvalidTracerConfig
: 0 bytesInvalidRewardPercentiles
: 0 bytesInternalBlockingTaskError
: 0 bytesInternalEthError
: 0 bytesExecutionTimedOut
: 23 bytesInternalJsTracerError
: 31 bytesTransactionInputError
: 0 bytesEvmCustom
: 31 bytesInvalidBytecode
: 31 bytesTransactionConversionError
: 0 bytesMuxTracerError
: 23 bytesTransactionConfirmationTimeout
: 55 bytesOther
: 23 bytes