Enum client::rpc::errors::EthApiError
source · pub enum EthApiError {
Show 26 variants
EmptyRawTransactionData,
FailedToDecodeSignedTransaction,
InvalidTransactionSignature,
PoolError(RpcPoolError),
UnknownBlockNumber,
UnknownSafeOrFinalizedBlock,
UnknownBlockOrTxIndex,
InvalidBlockRange,
PrevrandaoNotSet,
ExcessBlobGasNotSet,
ConflictingFeeFieldsInRequest,
InvalidTransaction(RpcInvalidTransactionError),
BothStateAndStateDiffInOverride(Address),
TransactionNotFound,
Unsupported(&'static str),
InvalidParams(String),
InvalidTracerConfig,
InvalidRewardPercentiles,
InternalBlockingTaskError,
InternalEthError,
ExecutionTimedOut(Duration),
InternalJsTracerError(String),
TransactionInputError(TransactionInputError),
EvmCustom(String),
TransactionConversionError,
Other(String),
}
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
UnknownBlockNumber
When an unknown block number is encountered
UnknownSafeOrFinalizedBlock
Thrown when querying for finalized
or safe
block before the merge
transition is finalized, https://github.com/ethereum/execution-apis/blob/6d17705a875e52c26826124c2a8a15ed542aeca2/src/schemas/block.yaml#L109
op-node now checks for either Unknown block
OR unknown block
:
https://github.com/ethereum-optimism/optimism/blob/3b374c292e2b05cc51b52212ba68dd88ffce2a3b/op-service/sources/l2_client.go#L105
TODO(#8045): Temporary, until a version of https://github.com/ethereum-optimism/optimism/pull/10071 is pushed through that doesn’t require this to figure out the EL sync status.
UnknownBlockOrTxIndex
Thrown when an unknown block or transaction index is encountered
InvalidBlockRange
When an invalid block range is provided
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
BothStateAndStateDiffInOverride(Address)
Thrown when constructing an RPC block from primitive block data fails
Thrown when an AccountOverride
contains conflicting state
and
stateDiff
fields
TransactionNotFound
Other internal error Error related to signing 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.
TransactionConversionError
Error encountered when converting a transaction type
Other(String)
Error thrown when tracing with a muxTracer fails Any other error
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<RpcInvalidTransactionError> for EthApiError
impl From<RpcInvalidTransactionError> for EthApiError
source§fn from(source: RpcInvalidTransactionError) -> EthApiError
fn from(source: RpcInvalidTransactionError) -> EthApiError
source§impl From<TransactionInputError> for EthApiError
impl From<TransactionInputError> for EthApiError
source§fn from(source: TransactionInputError) -> EthApiError
fn from(source: TransactionInputError) -> EthApiError
source§impl From<TransactionPoolError> for EthApiError
impl From<TransactionPoolError> for EthApiError
source§fn from(err: TransactionPoolError) -> EthApiError
fn from(err: TransactionPoolError) -> EthApiError
Auto Trait Implementations§
impl !RefUnwindSafe for EthApiError
impl Send for EthApiError
impl Sync for EthApiError
impl Unpin for EthApiError
impl !UnwindSafe for EthApiError
Blanket Implementations§
§impl<T> AsFail for Twhere
T: Fail,
impl<T> AsFail for Twhere
T: Fail,
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
source§impl<T> ElementSatisfy<ElementNoConstrain> for T
impl<T> ElementSatisfy<ElementNoConstrain> for T
fn to_constrain_object(&self) -> &ElementNoConstrain
fn to_constrain_object_mut(&mut self) -> &mut ElementNoConstrain
§impl<E> Fail for E
impl<E> Fail for E
§fn cause(&self) -> Option<&(dyn Fail + 'static)>
fn cause(&self) -> Option<&(dyn Fail + 'static)>
§fn backtrace(&self) -> Option<&Backtrace>
fn backtrace(&self) -> Option<&Backtrace>
Backtrace
carried by this failure, if it
carries one. Read more§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> 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>
§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.