Skip to content

Commit

Permalink
chore: move format_panic_data to starknet-api
Browse files Browse the repository at this point in the history
  • Loading branch information
ilyalesokhin-starkware committed Oct 13, 2024
1 parent 57822fd commit 5efd40b
Show file tree
Hide file tree
Showing 11 changed files with 20 additions and 16 deletions.
1 change: 1 addition & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion crates/blockifier/src/execution/errors.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@ use cairo_vm::vm::errors::vm_errors::VirtualMachineError;
use num_bigint::{BigInt, TryFromBigIntError};
use starknet_api::contract_class::EntryPointType;
use starknet_api::core::{ClassHash, ContractAddress, EntryPointSelector};
use starknet_api::execution_utils::format_panic_data;
use starknet_types_core::felt::Felt;
use thiserror::Error;

use crate::execution::entry_point::ConstructorContext;
use crate::execution::execution_utils::format_panic_data;
use crate::state::errors::StateError;

// TODO(AlonH, 21/12/2022): Implement Display for all types that appear in errors.
Expand Down
10 changes: 0 additions & 10 deletions crates/blockifier/src/execution/execution_utils.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
use std::collections::HashMap;

use cairo_lang_runner::casm_run::format_next_item;
use cairo_vm::serde::deserialize_program::{
deserialize_array_of_bigint_hex,
Attribute,
Expand Down Expand Up @@ -299,15 +298,6 @@ pub fn max_fee_for_execution_info(tx_info: &TransactionInfo) -> Felt {
.into()
}

pub fn format_panic_data(felts: &[Felt]) -> String {
let mut felts = felts.iter().copied();
let mut items = Vec::new();
while let Some(item) = format_next_item(&mut felts) {
items.push(item.quote_if_string());
}
if let [item] = &items[..] { item.clone() } else { format!("({})", items.join(", ")) }
}

/// Returns the VM resources required for running `poseidon_hash_many` in the Starknet OS.
pub fn poseidon_hash_many_cost(data_length: usize) -> ExecutionResources {
ExecutionResources {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ use crate::context::ChainInfo;
use crate::execution::call_info::{CallExecution, Retdata};
use crate::execution::contract_class::TrackedResource;
use crate::execution::entry_point::CallEntryPoint;
use crate::execution::execution_utils::format_panic_data;
use starknet_api::execution_utils::format_panic_data;
use crate::retdata;
use crate::state::state_api::StateReader;
use crate::test_utils::contracts::FeatureContract;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ use crate::abi::constants;
use crate::context::ChainInfo;
use crate::execution::call_info::{CallExecution, Retdata};
use crate::execution::entry_point::CallEntryPoint;
use crate::execution::execution_utils::format_panic_data;
use starknet_api::execution_utils::format_panic_data;
use crate::state::cached_state::CachedState;
use crate::state::state_api::State;
use crate::test_utils::contracts::FeatureContract;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ use cairo_vm::types::builtin_name::BuiltinName;
use cairo_vm::vm::runners::cairo_runner::ExecutionResources;
use pretty_assertions::assert_eq;
use starknet_api::core::PatriciaKey;
use starknet_api::execution_utils::format_panic_data;
use starknet_api::state::StorageKey;
use starknet_api::transaction::Calldata;
use starknet_api::{calldata, felt, patricia_key};
Expand All @@ -13,7 +14,6 @@ use crate::abi::abi_utils::selector_from_name;
use crate::context::ChainInfo;
use crate::execution::call_info::{CallExecution, CallInfo, Retdata};
use crate::execution::entry_point::{CallEntryPoint, CallType};
use crate::execution::execution_utils::format_panic_data;
use crate::execution::syscalls::syscall_tests::constants::{
REQUIRED_GAS_LIBRARY_CALL_TEST,
REQUIRED_GAS_STORAGE_READ_WRITE_TEST,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
use starknet_api::execution_utils::format_panic_data;
use starknet_api::transaction::Calldata;
use starknet_api::{calldata, felt};
use test_case::test_case;

use crate::abi::abi_utils::selector_from_name;
use crate::context::ChainInfo;
use crate::execution::entry_point::CallEntryPoint;
use crate::execution::execution_utils::format_panic_data;
use crate::execution::syscalls::syscall_tests::constants::REQUIRED_GAS_STORAGE_READ_WRITE_TEST;
use crate::test_utils::contracts::FeatureContract;
use crate::test_utils::initial_test_state::test_state;
Expand Down
2 changes: 1 addition & 1 deletion crates/blockifier/src/transaction/errors.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ use thiserror::Error;
use crate::bouncer::BouncerWeights;
use crate::execution::call_info::Retdata;
use crate::execution::errors::{ConstructorEntryPointExecutionError, EntryPointExecutionError};
use crate::execution::execution_utils::format_panic_data;
use starknet_api::execution_utils::format_panic_data;
use crate::execution::stack_trace::gen_tx_execution_error_trace;
use crate::fee::fee_checks::FeeCheckError;
use crate::state::errors::StateError;
Expand Down
1 change: 1 addition & 0 deletions crates/starknet_api/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ testing = []
[dependencies]
bitvec.workspace = true
cairo-lang-starknet-classes.workspace = true
cairo-lang-runner.workspace = true
derive_more.workspace = true
hex.workspace = true
indexmap = { workspace = true, features = ["serde"] }
Expand Down
11 changes: 11 additions & 0 deletions crates/starknet_api/src/execution_utils.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
use cairo_lang_runner::casm_run::format_next_item;
use starknet_types_core::felt::Felt;

pub fn format_panic_data(felts: &[Felt]) -> String {
let mut felts = felts.iter().copied();
let mut items = Vec::new();
while let Some(item) = format_next_item(&mut felts) {
items.push(item.quote_if_string());
}
if let [item] = &items[..] { item.clone() } else { format!("({})", items.join(", ")) }
}
1 change: 1 addition & 0 deletions crates/starknet_api/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ pub mod data_availability;
pub mod deprecated_contract_class;
pub mod executable_transaction;
pub mod execution_resources;
pub mod execution_utils;
pub mod hash;
pub mod rpc_transaction;
pub mod serde_utils;
Expand Down

0 comments on commit 5efd40b

Please sign in to comment.