Skip to content

Commit

Permalink
refactor(blockifier,starknet_api): move GasVectorComputationMode into…
Browse files Browse the repository at this point in the history
… starknet_api (#1152)

Signed-off-by: Dori Medini <dori@starkware.co>
  • Loading branch information
dorimedini-starkware authored Oct 6, 2024
1 parent 62756fd commit 37c08f5
Show file tree
Hide file tree
Showing 16 changed files with 49 additions and 44 deletions.
3 changes: 1 addition & 2 deletions crates/blockifier/src/context.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,10 @@ use papyrus_config::dumping::{append_sub_config_name, ser_param, SerializeConfig
use papyrus_config::{ParamPath, ParamPrivacyInput, SerializedParam};
use serde::{Deserialize, Serialize};
use starknet_api::core::{ChainId, ContractAddress};
use starknet_api::transaction::ValidResourceBounds;
use starknet_api::transaction::{GasVectorComputationMode, ValidResourceBounds};

use crate::blockifier::block::BlockInfo;
use crate::bouncer::BouncerConfig;
use crate::fee::resources::GasVectorComputationMode;
use crate::transaction::objects::{
FeeType,
HasRelatedFeeType,
Expand Down
4 changes: 2 additions & 2 deletions crates/blockifier/src/fee/fee_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,14 @@ use cairo_vm::types::builtin_name::BuiltinName;
use cairo_vm::vm::runners::cairo_runner::ExecutionResources;
use rstest::rstest;
use starknet_api::invoke_tx_args;
use starknet_api::transaction::{Fee, Resource, ValidResourceBounds};
use starknet_api::transaction::{Fee, GasVectorComputationMode, Resource, ValidResourceBounds};

use crate::blockifier::block::GasPrices;
use crate::context::BlockContext;
use crate::fee::fee_checks::{FeeCheckError, FeeCheckReportFields, PostExecutionReport};
use crate::fee::fee_utils::get_vm_resources_cost;
use crate::fee::receipt::TransactionReceipt;
use crate::fee::resources::{GasVector, GasVectorComputationMode};
use crate::fee::resources::GasVector;
use crate::test_utils::contracts::FeatureContract;
use crate::test_utils::initial_test_state::test_state;
use crate::test_utils::{
Expand Down
4 changes: 2 additions & 2 deletions crates/blockifier/src/fee/fee_utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@ use num_bigint::BigUint;
use starknet_api::core::ContractAddress;
use starknet_api::state::StorageKey;
use starknet_api::transaction::ValidResourceBounds::{AllResources, L1Gas};
use starknet_api::transaction::{AllResourceBounds, Fee, Resource};
use starknet_api::transaction::{AllResourceBounds, Fee, GasVectorComputationMode, Resource};
use starknet_types_core::felt::Felt;

use crate::abi::abi_utils::get_fee_token_var_address;
use crate::abi::sierra_types::next_storage_key;
use crate::blockifier::block::BlockInfo;
use crate::context::{BlockContext, TransactionContext};
use crate::fee::resources::{GasVector, GasVectorComputationMode, TransactionFeeResult};
use crate::fee::resources::{GasVector, TransactionFeeResult};
use crate::state::state_api::StateReader;
use crate::transaction::errors::TransactionFeeError;
use crate::transaction::objects::{ExecutionResourcesTraits, FeeType, TransactionInfo};
Expand Down
3 changes: 2 additions & 1 deletion crates/blockifier/src/fee/gas_usage.rs
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
use cairo_vm::vm::runners::cairo_runner::ExecutionResources;
use starknet_api::transaction::GasVectorComputationMode;

use super::fee_utils::get_vm_resources_cost;
use crate::abi::constants;
use crate::context::BlockContext;
use crate::fee::eth_gas_constants;
use crate::fee::resources::{GasVector, GasVectorComputationMode};
use crate::fee::resources::GasVector;
use crate::state::cached_state::StateChangesCount;
use crate::transaction::account_transaction::AccountTransaction;
use crate::utils::u128_from_usize;
Expand Down
9 changes: 2 additions & 7 deletions crates/blockifier/src/fee/gas_usage_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ use std::num::NonZeroU128;
use pretty_assertions::assert_eq;
use rstest::{fixture, rstest};
use starknet_api::invoke_tx_args;
use starknet_api::transaction::{EventContent, EventData, EventKey, Fee};
use starknet_api::transaction::{EventContent, EventData, EventKey, Fee, GasVectorComputationMode};
use starknet_types_core::felt::Felt;

use crate::abi::constants;
Expand All @@ -12,12 +12,7 @@ use crate::execution::call_info::{CallExecution, CallInfo, OrderedEvent};
use crate::fee::eth_gas_constants;
use crate::fee::fee_utils::get_fee_by_gas_vector;
use crate::fee::gas_usage::{get_da_gas_cost, get_message_segment_length};
use crate::fee::resources::{
GasVector,
GasVectorComputationMode,
StarknetResources,
StateResources,
};
use crate::fee::resources::{GasVector, StarknetResources, StateResources};
use crate::state::cached_state::StateChangesCount;
use crate::test_utils::{DEFAULT_ETH_L1_DATA_GAS_PRICE, DEFAULT_ETH_L1_GAS_PRICE};
use crate::transaction::objects::FeeType;
Expand Down
9 changes: 2 additions & 7 deletions crates/blockifier/src/fee/receipt_test.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
use rstest::{fixture, rstest};
use starknet_api::transaction::L2ToL1Payload;
use starknet_api::transaction::{GasVectorComputationMode, L2ToL1Payload};
use starknet_api::{invoke_tx_args, nonce};
use starknet_types_core::felt::Felt;

Expand All @@ -17,12 +17,7 @@ use crate::fee::gas_usage::{
get_log_message_to_l1_emissions_cost,
get_message_segment_length,
};
use crate::fee::resources::{
GasVector,
GasVectorComputationMode,
StarknetResources,
StateResources,
};
use crate::fee::resources::{GasVector, StarknetResources, StateResources};
use crate::state::cached_state::StateChangesCount;
use crate::test_utils::contracts::FeatureContract;
use crate::test_utils::initial_test_state::test_state;
Expand Down
8 changes: 1 addition & 7 deletions crates/blockifier/src/fee/resources.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
use cairo_vm::vm::runners::cairo_runner::ExecutionResources;
use serde::Serialize;
use starknet_api::core::ContractAddress;
use starknet_api::transaction::Fee;
use starknet_api::transaction::{Fee, GasVectorComputationMode};

use crate::context::TransactionContext;
use crate::execution::call_info::{EventSummary, ExecutionSummary};
Expand Down Expand Up @@ -350,9 +350,3 @@ impl GasVector {
self.l1_gas + u128_div_ceil(self.l1_data_gas * u128::from(data_gas_price), gas_price)
}
}

#[derive(Debug, PartialEq)]
pub enum GasVectorComputationMode {
All,
NoL2Gas,
}
14 changes: 7 additions & 7 deletions crates/blockifier/src/test_utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,12 @@ use std::path::PathBuf;
use cairo_vm::vm::runners::cairo_runner::ExecutionResources;
use starknet_api::core::{ClassHash, ContractAddress, PatriciaKey};
use starknet_api::state::StorageKey;
use starknet_api::transaction::{Calldata, ContractAddressSalt, TransactionVersion};
use starknet_api::transaction::{
Calldata,
ContractAddressSalt,
GasVectorComputationMode,
TransactionVersion,
};
use starknet_api::{contract_address, felt, patricia_key};
use starknet_types_core::felt::Felt;

Expand All @@ -24,12 +29,7 @@ use crate::execution::call_info::ExecutionSummary;
use crate::execution::deprecated_syscalls::hint_processor::SyscallCounter;
use crate::execution::entry_point::CallEntryPoint;
use crate::execution::syscalls::SyscallSelector;
use crate::fee::resources::{
GasVector,
GasVectorComputationMode,
StarknetResources,
StateResources,
};
use crate::fee::resources::{GasVector, StarknetResources, StateResources};
use crate::test_utils::contracts::FeatureContract;
use crate::transaction::transaction_types::TransactionType;
use crate::utils::{const_max, u128_from_usize};
Expand Down
10 changes: 8 additions & 2 deletions crates/blockifier/src/test_utils/struct_impls.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,13 @@ use serde_json::Value;
use starknet_api::block::{BlockHash, BlockNumber, BlockTimestamp};
use starknet_api::core::{ChainId, ClassHash, ContractAddress, Nonce, PatriciaKey};
use starknet_api::hash::StarkHash;
use starknet_api::transaction::{Calldata, Fee, TransactionHash, TransactionVersion};
use starknet_api::transaction::{
Calldata,
Fee,
GasVectorComputationMode,
TransactionHash,
TransactionVersion,
};
use starknet_api::{calldata, contract_address, felt, patricia_key};
use starknet_types_core::felt::Felt;

Expand All @@ -23,7 +29,7 @@ use crate::execution::entry_point::{
EntryPointExecutionResult,
};
use crate::fee::fee_utils::get_fee_by_gas_vector;
use crate::fee::resources::{GasVectorComputationMode, TransactionResources};
use crate::fee::resources::TransactionResources;
use crate::state::state_api::State;
use crate::test_utils::{
get_raw_contract_class,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ use starknet_api::transaction::{
ContractAddressSalt,
DeclareTransactionV2,
Fee,
GasVectorComputationMode,
Resource,
ResourceBounds,
TransactionHash,
Expand Down Expand Up @@ -48,7 +49,7 @@ use crate::execution::entry_point::EntryPointExecutionContext;
use crate::execution::syscalls::SyscallSelector;
use crate::fee::fee_utils::{get_fee_by_gas_vector, get_sequencer_balance_keys};
use crate::fee::gas_usage::estimate_minimal_gas_vector;
use crate::fee::resources::{GasVector, GasVectorComputationMode};
use crate::fee::resources::GasVector;
use crate::state::cached_state::{StateChangesCount, TransactionalState};
use crate::state::state_api::{State, StateReader};
use crate::test_utils::contracts::FeatureContract;
Expand Down
3 changes: 2 additions & 1 deletion crates/blockifier/src/transaction/execution_flavors_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ use starknet_api::test_utils::NonceManager;
use starknet_api::transaction::{
Calldata,
Fee,
GasVectorComputationMode,
Resource,
TransactionSignature,
TransactionVersion,
Expand All @@ -18,7 +19,7 @@ use starknet_types_core::felt::Felt;
use crate::context::{BlockContext, ChainInfo};
use crate::execution::syscalls::SyscallSelector;
use crate::fee::fee_utils::get_fee_by_gas_vector;
use crate::fee::resources::{GasVector, GasVectorComputationMode};
use crate::fee::resources::GasVector;
use crate::state::cached_state::CachedState;
use crate::state::state_api::StateReader;
use crate::test_utils::contracts::FeatureContract;
Expand Down
10 changes: 8 additions & 2 deletions crates/blockifier/src/transaction/post_execution_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,19 @@ use assert_matches::assert_matches;
use rstest::rstest;
use starknet_api::core::{ContractAddress, PatriciaKey};
use starknet_api::state::StorageKey;
use starknet_api::transaction::{Calldata, Fee, Resource, TransactionVersion, ValidResourceBounds};
use starknet_api::transaction::{
Calldata,
Fee,
GasVectorComputationMode,
Resource,
TransactionVersion,
ValidResourceBounds,
};
use starknet_api::{felt, invoke_tx_args, patricia_key};
use starknet_types_core::felt::Felt;

use crate::context::{BlockContext, ChainInfo};
use crate::fee::fee_checks::FeeCheckError;
use crate::fee::resources::GasVectorComputationMode;
use crate::state::state_api::StateReader;
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/test_utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ use starknet_api::transaction::{
Calldata,
ContractAddressSalt,
Fee,
GasVectorComputationMode,
InvokeTransactionV0,
InvokeTransactionV1,
InvokeTransactionV3,
Expand All @@ -24,7 +25,6 @@ use strum::IntoEnumIterator;
use crate::abi::abi_utils::get_fee_token_var_address;
use crate::context::{BlockContext, ChainInfo};
use crate::execution::contract_class::{ClassInfo, ContractClass};
use crate::fee::resources::GasVectorComputationMode;
use crate::state::cached_state::CachedState;
use crate::state::state_api::State;
use crate::test_utils::contracts::FeatureContract;
Expand Down
2 changes: 1 addition & 1 deletion crates/blockifier/src/transaction/transactions_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ use starknet_api::transaction::{
EventData,
EventKey,
Fee,
GasVectorComputationMode,
L2ToL1Payload,
ResourceBounds,
TransactionSignature,
Expand Down Expand Up @@ -75,7 +76,6 @@ use crate::fee::receipt::TransactionReceipt;
use crate::fee::resources::{
ComputationResources,
GasVector,
GasVectorComputationMode,
StarknetResources,
StateResources,
TransactionResources,
Expand Down
3 changes: 2 additions & 1 deletion crates/blockifier/src/versioned_constants.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,15 @@ use semver::Version;
use serde::de::Error as DeserializationError;
use serde::{Deserialize, Deserializer};
use serde_json::{Map, Number, Value};
use starknet_api::transaction::GasVectorComputationMode;
use strum::IntoEnumIterator;
use strum_macros::{EnumCount, EnumIter};
use thiserror::Error;

use crate::execution::deprecated_syscalls::hint_processor::SyscallCounter;
use crate::execution::execution_utils::poseidon_hash_many_cost;
use crate::execution::syscalls::SyscallSelector;
use crate::fee::resources::{GasVectorComputationMode, StarknetResources};
use crate::fee::resources::StarknetResources;
use crate::transaction::transaction_types::TransactionType;

#[cfg(test)]
Expand Down
6 changes: 6 additions & 0 deletions crates/starknet_api/src/transaction.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1041,6 +1041,12 @@ where
u128::from_str_radix(s.trim_start_matches("0x"), 16).map_err(serde::de::Error::custom)
}

#[derive(Debug, PartialEq)]
pub enum GasVectorComputationMode {
All,
NoL2Gas,
}

/// A mapping from execution resources to their corresponding fee bounds..
#[derive(Clone, Debug, Default, Deserialize, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize)]
// TODO(Nimrod): Remove this struct definition.
Expand Down

0 comments on commit 37c08f5

Please sign in to comment.