From eb4f07cb2c53146eef7f59f5dd79bbb8419eddd4 Mon Sep 17 00:00:00 2001 From: Evgeny Ukhanov Date: Fri, 5 Jul 2024 13:12:14 +0200 Subject: [PATCH] Refactore ExitFatal --- core/src/error.rs | 6 ++++-- core/src/eval/macros.rs | 2 +- core/src/eval/misc.rs | 2 +- runtime/src/eval/macros.rs | 2 +- runtime/src/eval/system.rs | 3 +-- 5 files changed, 8 insertions(+), 7 deletions(-) diff --git a/core/src/error.rs b/core/src/error.rs index 9f1189a9..b997ac86 100644 --- a/core/src/error.rs +++ b/core/src/error.rs @@ -164,6 +164,10 @@ pub enum ExitError { /// https://eips.ethereum.org/EIPS/eip-2681 #[cfg_attr(feature = "with-codec", codec(index = 14))] MaxNonce, + + /// `usize` casting overflow + #[cfg_attr(feature = "with-codec", codec(index = 15))] + UsizeOverflow, } impl From for ExitReason { @@ -182,8 +186,6 @@ impl From for ExitReason { pub enum ExitFatal { /// The operation is not supported. NotSupported, - /// `usize` casting overflow - UsizeOverflow, /// The trap (interrupt) is unhandled. UnhandledInterrupt, /// The environment explicitly set call errors as fatal error. diff --git a/core/src/eval/macros.rs b/core/src/eval/macros.rs index a6917805..f26f9f53 100644 --- a/core/src/eval/macros.rs +++ b/core/src/eval/macros.rs @@ -134,7 +134,7 @@ macro_rules! op3_u256_fn { macro_rules! as_usize_or_fail { ( $v:expr ) => {{ if $v > crate::utils::USIZE_MAX { - return Control::Exit(ExitFatal::UsizeOverflow.into()); + return Control::Exit(ExitError::UsizeOverflow.into()); } $v.as_usize() diff --git a/core/src/eval/misc.rs b/core/src/eval/misc.rs index 525e2e3e..22cb489d 100644 --- a/core/src/eval/misc.rs +++ b/core/src/eval/misc.rs @@ -1,7 +1,7 @@ use super::Control; use crate::utils::USIZE_MAX; -use crate::{ExitError, ExitFatal, ExitRevert, ExitSucceed, Machine}; +use crate::{ExitError, ExitRevert, ExitSucceed, Machine}; use core::cmp::min; use primitive_types::{H256, U256}; diff --git a/runtime/src/eval/macros.rs b/runtime/src/eval/macros.rs index 0b54e418..4be9b53b 100644 --- a/runtime/src/eval/macros.rs +++ b/runtime/src/eval/macros.rs @@ -58,7 +58,7 @@ macro_rules! push_u256 { macro_rules! as_usize_or_fail { ( $v:expr ) => {{ if $v > crate::utils::USIZE_MAX { - return Control::Exit(ExitFatal::UsizeOverflow.into()); + return Control::Exit(ExitError::UsizeOverflow.into()); } $v.as_usize() diff --git a/runtime/src/eval/system.rs b/runtime/src/eval/system.rs index 910559a5..e27eef96 100644 --- a/runtime/src/eval/system.rs +++ b/runtime/src/eval/system.rs @@ -1,8 +1,7 @@ use super::Control; use crate::prelude::*; use crate::{ - CallScheme, Capture, Context, CreateScheme, ExitError, ExitFatal, ExitSucceed, Handler, - Runtime, Transfer, + CallScheme, Capture, Context, CreateScheme, ExitError, ExitSucceed, Handler, Runtime, Transfer, }; use core::cmp::max; use evm_core::utils::{U64_MAX, USIZE_MAX};