diff --git a/Cargo.lock b/Cargo.lock index de520e5c213..0fb99636fbf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -87,7 +87,7 @@ checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842" dependencies = [ "proc-macro2 1.0.63", "quote 1.0.29", - "syn 2.0.22", + "syn 2.0.27", ] [[package]] @@ -372,7 +372,7 @@ checksum = "53e0efad4403bfc52dc201159c4b842a246a14b98c64b55dfd0f2d89729dfeb8" dependencies = [ "proc-macro2 1.0.63", "quote 1.0.29", - "syn 2.0.22", + "syn 2.0.27", ] [[package]] @@ -474,7 +474,7 @@ checksum = "48016319042fb7c87b78d2993084a831793a897a5cd1a2a67cab9d1eeb4b7d76" dependencies = [ "proc-macro2 1.0.63", "quote 1.0.29", - "syn 2.0.22", + "syn 2.0.27", ] [[package]] @@ -741,7 +741,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ "proc-macro2 1.0.63", "quote 1.0.29", - "syn 2.0.22", + "syn 2.0.27", ] [[package]] @@ -1341,7 +1341,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2 1.0.63", "quote 1.0.29", - "syn 2.0.22", + "syn 2.0.27", ] [[package]] @@ -1449,7 +1449,7 @@ checksum = "d1fef411b303e3e12d534fb6e7852de82da56edd937d895125821fb7c09436c7" dependencies = [ "proc-macro2 1.0.63", "quote 1.0.29", - "syn 2.0.22", + "syn 2.0.27", ] [[package]] @@ -2119,7 +2119,7 @@ checksum = "d9735b638ccc51c28bf6914d90a2e9725b377144fc612c49a611fddd1b631d68" dependencies = [ "proc-macro2 1.0.63", "quote 1.0.29", - "syn 2.0.22", + "syn 2.0.27", ] [[package]] @@ -2324,9 +2324,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.22" +version = "2.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2efbeae7acf4eabd6bcdcbd11c92f45231ddda7539edc7806bd1a04a03b24616" +checksum = "b60f673f44a8255b9c8c657daf66a596d435f2da81a555b06dc644d080ba45e0" dependencies = [ "proc-macro2 1.0.63", "quote 1.0.29", @@ -2364,22 +2364,22 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.40" +version = "1.0.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac" +checksum = "611040a08a0439f8248d1990b111c95baa9c704c805fa1f62104b39655fd7f90" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.40" +version = "1.0.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" +checksum = "090198534930841fab3a5d1bb637cde49e339654e606195f8d9c76eeb081dc96" dependencies = [ "proc-macro2 1.0.63", "quote 1.0.29", - "syn 2.0.22", + "syn 2.0.27", ] [[package]] @@ -2432,7 +2432,7 @@ checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" dependencies = [ "proc-macro2 1.0.63", "quote 1.0.29", - "syn 2.0.22", + "syn 2.0.27", ] [[package]] @@ -2517,7 +2517,7 @@ checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" dependencies = [ "proc-macro2 1.0.63", "quote 1.0.29", - "syn 2.0.22", + "syn 2.0.27", ] [[package]] @@ -2735,7 +2735,7 @@ dependencies = [ "once_cell", "proc-macro2 1.0.63", "quote 1.0.29", - "syn 2.0.22", + "syn 2.0.27", "wasm-bindgen-shared", ] @@ -2769,7 +2769,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" dependencies = [ "proc-macro2 1.0.63", "quote 1.0.29", - "syn 2.0.22", + "syn 2.0.27", "wasm-bindgen-backend", "wasm-bindgen-shared", ] diff --git a/crates/primitives/src/result.rs b/crates/primitives/src/result.rs index ee05495c279..31e5d0524a8 100644 --- a/crates/primitives/src/result.rs +++ b/crates/primitives/src/result.rs @@ -1,6 +1,7 @@ use crate::{Log, State, B160}; use alloc::vec::Vec; use bytes::Bytes; +use core::fmt; use ruint::aliases::U256; pub type EVMResult = core::result::Result>; @@ -128,6 +129,22 @@ pub enum EVMError { Database(DBError), } +#[cfg(feature = "std")] +impl core::error::Error for EVMError {} + +impl fmt::Display for EVMError +where + DBError: fmt::Display, +{ + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + match self { + EVMError::Transaction(v) => write!(f, "Transaction error: {:?}", v), + EVMError::PrevrandaoNotSet => f.write_str("prev-randao not set"), + EVMError::Database(v) => write!(f, "Database error: {}", v), + } + } +} + impl From for EVMError { fn from(invalid: InvalidTransaction) -> Self { EVMError::Transaction(invalid)