From 85d7b784dab1e74117a71cea573d0aaefcc5220f Mon Sep 17 00:00:00 2001 From: AvivYossef-starkware Date: Sun, 14 Jul 2024 13:18:20 +0300 Subject: [PATCH] fix: contract class version mismatch format commit-id:2978d6d0 --- crates/blockifier/src/test_utils.rs | 2 ++ crates/blockifier/src/transaction.rs | 2 ++ .../src/transaction/error_format_test.rs | 15 +++++++++++++++ crates/blockifier/src/transaction/errors.rs | 4 ++-- 4 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 crates/blockifier/src/transaction/error_format_test.rs diff --git a/crates/blockifier/src/test_utils.rs b/crates/blockifier/src/test_utils.rs index 2c175af604..0c41750810 100644 --- a/crates/blockifier/src/test_utils.rs +++ b/crates/blockifier/src/test_utils.rs @@ -47,6 +47,8 @@ pub const TEST_ERC20_CONTRACT_CLASS_HASH: &str = "0x1010"; pub const ERC20_CONTRACT_PATH: &str = "./ERC20/ERC20_Cairo0/ERC20_without_some_syscalls/ERC20/\ erc20_contract_without_some_syscalls_compiled.json"; +// TODO(Aviv, 14/7/2024): Move from test utils module, and use it in ContractClassVersionMismatch +// error. #[derive(Clone, Copy, Debug)] pub enum CairoVersion { Cairo0, diff --git a/crates/blockifier/src/transaction.rs b/crates/blockifier/src/transaction.rs index 99a227c1de..78ee679cae 100644 --- a/crates/blockifier/src/transaction.rs +++ b/crates/blockifier/src/transaction.rs @@ -1,5 +1,7 @@ pub mod account_transaction; pub mod constants; +#[cfg(test)] +pub mod error_format_test; pub mod errors; pub mod objects; #[cfg(any(feature = "testing", test))] diff --git a/crates/blockifier/src/transaction/error_format_test.rs b/crates/blockifier/src/transaction/error_format_test.rs new file mode 100644 index 0000000000..e90a760d90 --- /dev/null +++ b/crates/blockifier/src/transaction/error_format_test.rs @@ -0,0 +1,15 @@ +use starknet_api::transaction::TransactionVersion; + +use crate::transaction::errors::TransactionExecutionError; + +#[test] +fn test_contract_class_version_mismatch() { + let error = TransactionExecutionError::ContractClassVersionMismatch { + declare_version: TransactionVersion::ONE, + cairo_version: 2, + }; + assert_eq!( + error.to_string(), + "Declare transaction version 1 must have a contract class of Cairo version 2." + ); +} diff --git a/crates/blockifier/src/transaction/errors.rs b/crates/blockifier/src/transaction/errors.rs index fc7c141e9f..051ae6c74f 100644 --- a/crates/blockifier/src/transaction/errors.rs +++ b/crates/blockifier/src/transaction/errors.rs @@ -50,8 +50,8 @@ pub enum TransactionFeeError { #[derive(Debug, Error)] pub enum TransactionExecutionError { #[error( - "Declare transaction version {declare_version:?} must have a contract class of Cairo \ - version {cairo_version:?}." + "Declare transaction version {} must have a contract class of Cairo \ + version {cairo_version:?}.", **declare_version )] ContractClassVersionMismatch { declare_version: TransactionVersion, cairo_version: u64 }, #[error(