alloy_rpc_types_eth/transaction/
error.rsuse core::num::TryFromIntError;
use alloc::string::String;
#[derive(Debug, derive_more::Display)]
pub enum ConversionError {
#[display("{_0}")]
Eip2718Error(alloy_eips::eip2718::Eip2718Error),
#[display("{_0}")]
SignatureError(alloy_primitives::SignatureError),
#[display("missing signature for transaction")]
MissingSignature,
#[display("missing y parity in signature")]
MissingYParity,
#[display("invalid signature")]
InvalidSignature,
#[display("missing `chainId` field for EIP-155 transaction")]
MissingChainId,
#[display("missing `gasPrice` field for Legacy transaction")]
MissingGasPrice,
#[display("missing `accessList` field for EIP-2930 transaction")]
MissingAccessList,
#[display("missing `maxFeePerGas` field for EIP-1559 transaction")]
MissingMaxFeePerGas,
#[display("missing `maxPriorityFeePerGas` field for EIP-1559 transaction")]
MissingMaxPriorityFeePerGas,
#[display("missing `maxFeePerBlobGas` field for EIP-1559 transaction")]
MissingMaxFeePerBlobGas,
#[display("missing `to` field for EIP-4844 transaction")]
MissingTo,
#[display("missing `blobVersionedHashes` field for EIP-4844 transaction")]
MissingBlobVersionedHashes,
#[display("missing `authorizationList` field for EIP-7702 transaction")]
MissingAuthorizationList,
#[display("missing full transactions required for block decoding")]
MissingFullTransactions,
#[display("base fee per gas integer conversion error: {_0}")]
BaseFeePerGasConversion(TryFromIntError),
#[display("gas limit integer conversion error: {_0}")]
GasLimitConversion(TryFromIntError),
#[display("gas used integer conversion error: {_0}")]
GasUsedConversion(TryFromIntError),
#[display("missing block number")]
MissingBlockNumber,
#[display("blob gas used integer conversion error: {_0}")]
BlobGasUsedConversion(TryFromIntError),
#[display("excess blob gas integer conversion error: {_0}")]
ExcessBlobGasConversion(TryFromIntError),
#[display("conversion error: {_0}")]
Custom(String),
}
#[cfg(feature = "std")]
impl std::error::Error for ConversionError {
fn source(&self) -> Option<&(dyn std::error::Error + 'static)> {
match self {
Self::Eip2718Error(err) => Some(err),
Self::SignatureError(err) => Some(err),
Self::BaseFeePerGasConversion(err) => Some(err),
Self::GasLimitConversion(err) => Some(err),
Self::GasUsedConversion(err) => Some(err),
Self::BlobGasUsedConversion(err) => Some(err),
Self::ExcessBlobGasConversion(err) => Some(err),
_ => None,
}
}
}
impl From<alloy_eips::eip2718::Eip2718Error> for ConversionError {
fn from(err: alloy_eips::eip2718::Eip2718Error) -> Self {
Self::Eip2718Error(err)
}
}
impl From<alloy_primitives::SignatureError> for ConversionError {
fn from(err: alloy_primitives::SignatureError) -> Self {
Self::SignatureError(err)
}
}