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 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<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 !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
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<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<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> 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.