mirror of
https://github.com/hl-archive-node/nanoreth.git
synced 2025-12-06 10:59:55 +00:00
replace optimism error variant with Other (#9483)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
This commit is contained in:
@ -369,10 +369,16 @@ pub enum RpcInvalidTransactionError {
|
||||
/// EIP-7702 transaction has invalid fields set.
|
||||
#[error("EIP-7702 authorization list has invalid fields")]
|
||||
AuthorizationListInvalidFields,
|
||||
/// Optimism related error
|
||||
#[error(transparent)]
|
||||
#[cfg(feature = "optimism")]
|
||||
Optimism(#[from] OptimismInvalidTransactionError),
|
||||
/// Any other error
|
||||
#[error("{0}")]
|
||||
Other(Box<dyn ToRpcError>),
|
||||
}
|
||||
|
||||
impl RpcInvalidTransactionError {
|
||||
/// crates a new [`RpcInvalidTransactionError::Other`] variant.
|
||||
pub fn other<E: ToRpcError>(err: E) -> Self {
|
||||
Self::Other(Box::new(err))
|
||||
}
|
||||
}
|
||||
|
||||
/// Optimism specific invalid transaction errors
|
||||
@ -387,6 +393,17 @@ pub enum OptimismInvalidTransactionError {
|
||||
HaltedDepositPostRegolith,
|
||||
}
|
||||
|
||||
#[cfg(feature = "optimism")]
|
||||
impl ToRpcError for OptimismInvalidTransactionError {
|
||||
fn to_rpc_error(&self) -> jsonrpsee_types::error::ErrorObject<'static> {
|
||||
match self {
|
||||
Self::DepositSystemTxPostRegolith | Self::HaltedDepositPostRegolith => {
|
||||
rpc_err(EthRpcErrorCode::TransactionRejected.code(), self.to_string(), None)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl RpcInvalidTransactionError {
|
||||
/// Returns the rpc error code for this error.
|
||||
const fn error_code(&self) -> i32 {
|
||||
@ -432,6 +449,7 @@ impl From<RpcInvalidTransactionError> for jsonrpsee_types::error::ErrorObject<'s
|
||||
revert.output.as_ref().map(|out| out.as_ref()),
|
||||
)
|
||||
}
|
||||
RpcInvalidTransactionError::Other(err) => err.to_rpc_error(),
|
||||
err => rpc_err(err.error_code(), err.to_string(), None),
|
||||
}
|
||||
}
|
||||
@ -472,11 +490,11 @@ impl From<revm::primitives::InvalidTransaction> for RpcInvalidTransactionError {
|
||||
}
|
||||
#[cfg(feature = "optimism")]
|
||||
InvalidTransaction::DepositSystemTxPostRegolith => {
|
||||
Self::Optimism(OptimismInvalidTransactionError::DepositSystemTxPostRegolith)
|
||||
Self::other(OptimismInvalidTransactionError::DepositSystemTxPostRegolith)
|
||||
}
|
||||
#[cfg(feature = "optimism")]
|
||||
InvalidTransaction::HaltedDepositPostRegolith => {
|
||||
Self::Optimism(OptimismInvalidTransactionError::HaltedDepositPostRegolith)
|
||||
Self::Other(Box::new(OptimismInvalidTransactionError::HaltedDepositPostRegolith))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user