From 8d6c5d17b217f9c052371e6e7cabbad4b5027977 Mon Sep 17 00:00:00 2001 From: Wodann Date: Mon, 16 Sep 2024 04:58:38 -0500 Subject: [PATCH] refactor: simplify SuccessOrHalt trait bound (#1768) --- crates/interpreter/src/instruction_result.rs | 16 +++++++--------- .../revm/src/handler/mainnet/post_execution.rs | 2 +- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/crates/interpreter/src/instruction_result.rs b/crates/interpreter/src/instruction_result.rs index 46f82a335e..e73ce1abc8 100644 --- a/crates/interpreter/src/instruction_result.rs +++ b/crates/interpreter/src/instruction_result.rs @@ -1,7 +1,6 @@ use core::fmt::Debug; -use derive_where::derive_where; -use revm_primitives::EvmWiring; +use revm_primitives::HaltReasonTrait; use crate::primitives::{HaltReason, OutOfGasError, SuccessReason}; @@ -236,17 +235,16 @@ pub enum InternalResult { InvalidExtDelegateCallTarget, } -#[derive(Copy, Clone, PartialEq, Eq, Hash)] -#[derive_where(Debug; EvmWiringT::HaltReason)] -pub enum SuccessOrHalt { +#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)] +pub enum SuccessOrHalt { Success(SuccessReason), Revert, - Halt(EvmWiringT::HaltReason), + Halt(HaltReasonT), FatalExternalError, Internal(InternalResult), } -impl SuccessOrHalt { +impl SuccessOrHalt { /// Returns true if the transaction returned successfully without halts. #[inline] pub fn is_success(self) -> bool { @@ -276,7 +274,7 @@ impl SuccessOrHalt { /// Returns the [HaltReason] value the EVM has experienced an exceptional halt #[inline] - pub fn to_halt(self) -> Option { + pub fn to_halt(self) -> Option { match self { SuccessOrHalt::Halt(reason) => Some(reason), _ => None, @@ -284,7 +282,7 @@ impl SuccessOrHalt { } } -impl From for SuccessOrHalt { +impl From for SuccessOrHalt { fn from(result: InstructionResult) -> Self { match result { InstructionResult::Continue => Self::Internal(InternalResult::InternalContinue), // used only in interpreter loop diff --git a/crates/revm/src/handler/mainnet/post_execution.rs b/crates/revm/src/handler/mainnet/post_execution.rs index 784ab53540..c010b7a0bb 100644 --- a/crates/revm/src/handler/mainnet/post_execution.rs +++ b/crates/revm/src/handler/mainnet/post_execution.rs @@ -112,7 +112,7 @@ pub fn output( // reset journal and return present state. let (state, logs) = context.evm.journaled_state.finalize(); - let result = match SuccessOrHalt::::from(instruction_result.result) { + let result = match SuccessOrHalt::::from(instruction_result.result) { SuccessOrHalt::Success(reason) => ExecutionResult::Success { reason, gas_used: final_gas_used,