diff --git a/crates/apollo_consensus_orchestrator_config/src/config.rs b/crates/apollo_consensus_orchestrator_config/src/config.rs index 97e82d0aeb5..b2dfd7dd099 100644 --- a/crates/apollo_consensus_orchestrator_config/src/config.rs +++ b/crates/apollo_consensus_orchestrator_config/src/config.rs @@ -20,7 +20,7 @@ use starknet_api::core::{ChainId, ContractAddress}; use url::Url; use validator::Validate; -#[derive(Clone, Debug, Default, Serialize, Deserialize, PartialEq, Eq)] +#[derive(Clone, Copy, Debug, Default, Serialize, Deserialize, PartialEq, Eq)] #[serde(rename_all = "lowercase")] pub enum DeploymentMode { // Production mode. diff --git a/crates/apollo_gateway/src/test_utils.rs b/crates/apollo_gateway/src/test_utils.rs index b741eb241e6..92d488483d3 100644 --- a/crates/apollo_gateway/src/test_utils.rs +++ b/crates/apollo_gateway/src/test_utils.rs @@ -55,7 +55,7 @@ pub fn create_sierra_program(version_id: &VersionId) -> Vec { ] } -#[derive(Clone)] +#[derive(Clone, Copy)] pub enum TransactionType { Declare, DeployAccount, diff --git a/crates/apollo_l1_provider_types/src/lib.rs b/crates/apollo_l1_provider_types/src/lib.rs index 6c8a3d10a7f..64d7f6ac806 100644 --- a/crates/apollo_l1_provider_types/src/lib.rs +++ b/crates/apollo_l1_provider_types/src/lib.rs @@ -451,7 +451,7 @@ impl std::fmt::Display for ProviderState { } } -#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)] +#[derive(Clone, Copy, Debug, Serialize, Deserialize, PartialEq, Eq)] pub enum SessionState { Propose, Validate, diff --git a/crates/apollo_node/src/servers.rs b/crates/apollo_node/src/servers.rs index 0198278dc28..6245a7bf256 100644 --- a/crates/apollo_node/src/servers.rs +++ b/crates/apollo_node/src/servers.rs @@ -685,7 +685,7 @@ fn create_wrapper_servers( components: &mut SequencerNodeComponents, ) -> WrapperServers { let config_manager_runner_server = create_wrapper_server!( - &config.components.config_manager.execution_mode.clone().into(), + &config.components.config_manager.execution_mode.into(), components.config_manager_runner ); @@ -713,12 +713,12 @@ fn create_wrapper_servers( ); let mempool_p2p_runner_server = create_wrapper_server!( - &config.components.mempool_p2p.execution_mode.clone().into(), + &config.components.mempool_p2p.execution_mode.into(), components.mempool_p2p_runner ); let state_sync_runner_server = create_wrapper_server!( - &config.components.state_sync.execution_mode.clone().into(), + &config.components.state_sync.execution_mode.into(), components.state_sync_runner ); diff --git a/crates/apollo_node_config/src/component_execution_config.rs b/crates/apollo_node_config/src/component_execution_config.rs index 98472a5b424..83a40092392 100644 --- a/crates/apollo_node_config/src/component_execution_config.rs +++ b/crates/apollo_node_config/src/component_execution_config.rs @@ -27,7 +27,7 @@ pub trait ExpectedComponentConfig { fn is_running_locally(&self) -> bool; } -#[derive(Clone, Debug, Serialize, Deserialize, PartialEq)] +#[derive(Clone, Copy, Debug, Serialize, Deserialize, PartialEq)] pub enum ReactiveComponentExecutionMode { Disabled, Remote, @@ -47,7 +47,7 @@ impl ExpectedComponentConfig for ReactiveComponentExecutionMode { } } -#[derive(Clone, Debug, Serialize, Deserialize, PartialEq)] +#[derive(Clone, Copy, Debug, Serialize, Deserialize, PartialEq)] pub enum ActiveComponentExecutionMode { Disabled, Enabled, diff --git a/crates/apollo_rpc/src/v0_8/transaction.rs b/crates/apollo_rpc/src/v0_8/transaction.rs index 13702c09bdb..69c621e119f 100644 --- a/crates/apollo_rpc/src/v0_8/transaction.rs +++ b/crates/apollo_rpc/src/v0_8/transaction.rs @@ -868,7 +868,7 @@ pub struct L1HandlerTransactionOutput { // Note: This is not the same as the Builtins in starknet_api, the serialization of SegmentArena is // different. // TODO(yair): remove this once a newer version of the API is published. -#[derive(Debug, Clone, Eq, Hash, PartialEq, Deserialize, Serialize, PartialOrd, Ord)] +#[derive(Debug, Clone, Copy, Eq, Hash, PartialEq, Deserialize, Serialize, PartialOrd, Ord)] pub enum Builtin { #[serde(rename = "range_check_builtin_applications")] RangeCheck, @@ -954,7 +954,7 @@ impl Add for ExecutionResources { // and not as the trait Add. Some(v_ref) => *v_ref = (*v_ref).saturating_add((*v).into()), None => { - self.computation_resources.builtin_instance_counter.insert(k.clone(), *v); + self.computation_resources.builtin_instance_counter.insert(*k, *v); } } } diff --git a/crates/blockifier/src/blockifier/concurrent_transaction_executor.rs b/crates/blockifier/src/blockifier/concurrent_transaction_executor.rs index 51196140307..3093d6d9dcd 100644 --- a/crates/blockifier/src/blockifier/concurrent_transaction_executor.rs +++ b/crates/blockifier/src/blockifier/concurrent_transaction_executor.rs @@ -48,7 +48,7 @@ impl ConcurrentTransactionExecutor { &block_context.versioned_constants.os_constants, )?; - let bouncer_config = block_context.bouncer_config.clone(); + let bouncer_config = block_context.bouncer_config; let worker_executor = Arc::new(WorkerExecutor::initialize( block_state, vec![], @@ -70,7 +70,7 @@ impl ConcurrentTransactionExecutor { worker_pool: Arc>>, block_deadline: Option, ) -> Self { - let bouncer_config = block_context.bouncer_config.clone(); + let bouncer_config = block_context.bouncer_config; let worker_executor = Arc::new(WorkerExecutor::initialize( block_state, vec![], diff --git a/crates/blockifier/src/blockifier/transaction_executor.rs b/crates/blockifier/src/blockifier/transaction_executor.rs index d830b58f411..d719b72d1cf 100644 --- a/crates/blockifier/src/blockifier/transaction_executor.rs +++ b/crates/blockifier/src/blockifier/transaction_executor.rs @@ -130,7 +130,7 @@ impl TransactionExecutor { config: TransactionExecutorConfig, worker_pool: Option>>>, ) -> Self { - let bouncer_config = block_context.bouncer_config.clone(); + let bouncer_config = block_context.bouncer_config; // Note: the state might not be empty even at this point; it is the creator's // responsibility to tune the bouncer according to pre and post block process. Self { diff --git a/crates/blockifier/src/blockifier/transaction_executor_test.rs b/crates/blockifier/src/blockifier/transaction_executor_test.rs index 2cd062f402d..293dd39cb8b 100644 --- a/crates/blockifier/src/blockifier/transaction_executor_test.rs +++ b/crates/blockifier/src/blockifier/transaction_executor_test.rs @@ -378,8 +378,7 @@ fn test_execute_txs_bouncing(#[case] concurrency_enabled: bool, #[case] external assert_eq!(remaining_tx_results.len(), 0); // Reset the bouncer and add the remaining transactions. - tx_executor.bouncer = - Mutex::new(Bouncer::new(tx_executor.block_context.bouncer_config.clone())).into(); + tx_executor.bouncer = Mutex::new(Bouncer::new(tx_executor.block_context.bouncer_config)).into(); let remaining_tx_results = tx_executor.execute_txs(remaining_txs, None); assert_eq!(remaining_tx_results.len(), 2); diff --git a/crates/blockifier/src/bouncer.rs b/crates/blockifier/src/bouncer.rs index c63b1b4dc03..8311ebb386c 100644 --- a/crates/blockifier/src/bouncer.rs +++ b/crates/blockifier/src/bouncer.rs @@ -68,7 +68,7 @@ macro_rules! impl_field_wise_ops { }; } -#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)] +#[derive(Clone, Copy, Debug, Default, Deserialize, PartialEq, Serialize)] pub struct BouncerConfig { pub block_max_capacity: BouncerWeights, pub builtin_weights: BuiltinWeights, diff --git a/crates/blockifier/src/concurrency/worker_logic_test.rs b/crates/blockifier/src/concurrency/worker_logic_test.rs index 2e4ab6fae32..ee8e004fc8a 100644 --- a/crates/blockifier/src/concurrency/worker_logic_test.rs +++ b/crates/blockifier/src/concurrency/worker_logic_test.rs @@ -99,7 +99,7 @@ pub fn test_commit_tx() { .into_iter() .map(Transaction::Account) .collect::>(); - let bouncer = Bouncer::new(block_context.bouncer_config.clone()); + let bouncer = Bouncer::new(block_context.bouncer_config); let cached_state = test_state(&block_context.chain_info, BALANCE, &[(account, 1), (test_contract, 1)]); let versioned_state = safe_versioned_state_for_testing(cached_state); @@ -219,7 +219,7 @@ fn test_commit_tx_when_sender_is_sequencer() { nonce!(0_u8), ))]; - let bouncer = Bouncer::new(block_context.bouncer_config.clone()); + let bouncer = Bouncer::new(block_context.bouncer_config); let state = test_state(&block_context.chain_info, BALANCE, &[(account, 1), (test_contract, 1)]); let versioned_state = safe_versioned_state_for_testing(state); @@ -289,7 +289,7 @@ pub fn test_validate_after_commit_tx() { nonce!(0_u8), ))]; - let bouncer = Bouncer::new(block_context.bouncer_config.clone()); + let bouncer = Bouncer::new(block_context.bouncer_config); let cached_state = test_state(&block_context.chain_info, BALANCE, &[(account, 1), (test_contract, 1)]); let versioned_state = safe_versioned_state_for_testing(cached_state); @@ -383,7 +383,7 @@ fn test_worker_execute(default_all_resource_bounds: ValidResourceBounds) { .map(Transaction::Account) .collect::>(); - let bouncer = Bouncer::new(block_context.bouncer_config.clone()); + let bouncer = Bouncer::new(block_context.bouncer_config); let worker_executor = WorkerExecutor::new( safe_versioned_state.clone(), txs.to_vec(), @@ -541,7 +541,7 @@ fn test_worker_validate(default_all_resource_bounds: ValidResourceBounds) { .map(Transaction::Account) .collect::>(); - let bouncer = Bouncer::new(block_context.bouncer_config.clone()); + let bouncer = Bouncer::new(block_context.bouncer_config); let worker_executor = WorkerExecutor::new( safe_versioned_state.clone(), txs.to_vec(), @@ -658,7 +658,7 @@ fn test_deploy_before_declare( let txs = [declare_tx, invoke_tx].into_iter().map(Transaction::Account).collect::>(); - let bouncer = Bouncer::new(block_context.bouncer_config.clone()); + let bouncer = Bouncer::new(block_context.bouncer_config); let worker_executor = WorkerExecutor::new( safe_versioned_state, txs.to_vec(), @@ -740,7 +740,7 @@ fn test_worker_commit_phase(default_all_resource_bounds: ValidResourceBounds) { }) .collect::>(); - let bouncer = Bouncer::new(block_context.bouncer_config.clone()); + let bouncer = Bouncer::new(block_context.bouncer_config); let worker_executor = WorkerExecutor::new( safe_versioned_state, txs.to_vec(), @@ -842,7 +842,7 @@ fn test_worker_commit_phase_with_halt() { }) .collect::>(); - let bouncer = Bouncer::new(block_context.bouncer_config.clone()); + let bouncer = Bouncer::new(block_context.bouncer_config); let worker_executor = WorkerExecutor::new( safe_versioned_state, txs.to_vec(), diff --git a/crates/blockifier/src/context.rs b/crates/blockifier/src/context.rs index 761f9800782..ce9c65b04cc 100644 --- a/crates/blockifier/src/context.rs +++ b/crates/blockifier/src/context.rs @@ -173,7 +173,7 @@ impl BlockContext { block_timestamp: BlockTimestamp(rounded_timestamp), sequencer_address: 0_u128.into(), // TODO(Yoni): consider setting here trivial prices if and when this field is exposed. - gas_prices: self.block_info.gas_prices.clone(), + gas_prices: self.block_info.gas_prices, use_kzg_da: self.block_info.use_kzg_da, starknet_version: self.block_info.starknet_version, } diff --git a/crates/blockifier/src/execution/stack_trace.rs b/crates/blockifier/src/execution/stack_trace.rs index 25e74d5c60b..47e22748d65 100644 --- a/crates/blockifier/src/execution/stack_trace.rs +++ b/crates/blockifier/src/execution/stack_trace.rs @@ -26,7 +26,7 @@ pub const TRACE_LENGTH_CAP: usize = 15000; pub const TRACE_EXTRA_CHARS_SLACK: usize = 100; #[cfg_attr(feature = "transaction_serde", derive(serde::Serialize, serde::Deserialize))] -#[derive(Clone, Debug, PartialEq)] +#[derive(Clone, Copy, Debug, PartialEq)] pub enum PreambleType { CallContract, LibraryCall, @@ -126,7 +126,7 @@ impl From<&ErrorStackSegment> for String { } #[cfg_attr(feature = "transaction_serde", derive(serde::Serialize, serde::Deserialize))] -#[derive(Clone, Debug, Default, PartialEq)] +#[derive(Clone, Copy, Debug, Default, PartialEq)] pub enum ErrorStackHeader { Constructor, Execution, diff --git a/crates/blockifier_reexecution/src/cli.rs b/crates/blockifier_reexecution/src/cli.rs index 0b3d4762373..a598e5ee485 100644 --- a/crates/blockifier_reexecution/src/cli.rs +++ b/crates/blockifier_reexecution/src/cli.rs @@ -20,7 +20,7 @@ pub struct BlockifierReexecutionCliArgs { pub command: Command, } -#[derive(clap::ValueEnum, Clone, Debug)] +#[derive(clap::ValueEnum, Clone, Copy, Debug)] pub enum SupportedChainId { Mainnet, Testnet, @@ -60,7 +60,7 @@ pub struct RpcArgs { impl RpcArgs { pub fn parse_chain_id(&self) -> ChainId { if let Some(chain_id) = &self.chain_id { - return chain_id.clone().into(); + return (*chain_id).into(); } if let Some(hex_str) = &self.custom_chain_id { return chain_id_from_hex_str(hex_str).expect("Failed to parse hex chain id"); diff --git a/crates/native_blockifier/src/py_block_executor.rs b/crates/native_blockifier/src/py_block_executor.rs index f0e0c96faa5..cb67192c388 100644 --- a/crates/native_blockifier/src/py_block_executor.rs +++ b/crates/native_blockifier/src/py_block_executor.rs @@ -138,7 +138,7 @@ impl PyBlockExecutor { next_block_info.try_into()?, self.chain_info.clone(), self.versioned_constants.clone(), - self.bouncer_config.clone(), + self.bouncer_config, ); let next_block_number = block_context.block_info().block_number; diff --git a/crates/starknet_api/src/block.rs b/crates/starknet_api/src/block.rs index 090d74adc34..a110634bcbe 100644 --- a/crates/starknet_api/src/block.rs +++ b/crates/starknet_api/src/block.rs @@ -585,7 +585,7 @@ macro_rules! impl_try_from_uint_for_nonzero_gas_price { impl_try_from_uint_for_nonzero_gas_price!(u8, u16, u32, u64, u128); // TODO(Arni): Remove derive of Default. Gas prices should always be set. -#[derive(Clone, Debug, Default, Deserialize, Eq, PartialEq, Serialize)] +#[derive(Clone, Copy, Debug, Default, Deserialize, Eq, PartialEq, Serialize)] pub struct GasPriceVector { pub l1_gas_price: NonzeroGasPrice, pub l1_data_gas_price: NonzeroGasPrice, @@ -599,7 +599,7 @@ pub enum FeeType { } // TODO(Arni): Remove derive of Default. Gas prices should always be set. -#[derive(Clone, Debug, Default, Deserialize, Eq, PartialEq, Serialize)] +#[derive(Clone, Copy, Debug, Default, Deserialize, Eq, PartialEq, Serialize)] pub struct GasPrices { pub eth_gas_prices: GasPriceVector, // In wei. pub strk_gas_prices: GasPriceVector, // In fri. diff --git a/crates/starknet_api/src/block_hash/block_hash_calculator.rs b/crates/starknet_api/src/block_hash/block_hash_calculator.rs index 0c59a6a9153..f4ba0df5073 100644 --- a/crates/starknet_api/src/block_hash/block_hash_calculator.rs +++ b/crates/starknet_api/src/block_hash/block_hash_calculator.rs @@ -50,7 +50,7 @@ pub static STARKNET_GAS_PRICES0: LazyLock = LazyLock::new(|| { }); #[allow(non_camel_case_types)] -#[derive(Clone, Debug, PartialEq, Eq, PartialOrd)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd)] pub enum BlockHashVersion { V0_13_2, V0_13_4, @@ -213,7 +213,7 @@ pub fn calculate_block_hash( let block_commitments = &partial_block_hash_components.header_commitments; Ok(BlockHash( HashChain::new() - .chain(&block_hash_version.clone().into()) + .chain(&block_hash_version.into()) .chain(&partial_block_hash_components.block_number.0.into()) .chain(&state_root.0) .chain(&partial_block_hash_components.sequencer.0) diff --git a/crates/starknet_api/src/block_hash/block_hash_calculator_test.rs b/crates/starknet_api/src/block_hash/block_hash_calculator_test.rs index 86d71c40804..702adf73381 100644 --- a/crates/starknet_api/src/block_hash/block_hash_calculator_test.rs +++ b/crates/starknet_api/src/block_hash/block_hash_calculator_test.rs @@ -99,7 +99,7 @@ async fn test_block_hash_regression( price_in_wei: 9_u8.into(), }, l2_gas_price: GasPricePerToken { price_in_fri: 11_u8.into(), price_in_wei: 12_u8.into() }, - starknet_version: block_hash_version.clone().into(), + starknet_version: block_hash_version.into(), header_commitments: block_commitments, }; diff --git a/crates/starknet_api/src/deprecated_contract_class.rs b/crates/starknet_api/src/deprecated_contract_class.rs index 2fa7bdd5304..f874e6f3c62 100644 --- a/crates/starknet_api/src/deprecated_contract_class.rs +++ b/crates/starknet_api/src/deprecated_contract_class.rs @@ -96,7 +96,7 @@ pub enum L1HandlerType { } /// A function state mutability. -#[derive(Debug, Clone, Default, Eq, PartialEq, Deserialize, Serialize)] +#[derive(Debug, Clone, Copy, Default, Eq, PartialEq, Deserialize, Serialize)] pub enum FunctionStateMutability { #[serde(rename = "view")] #[default] diff --git a/crates/starknet_api/src/execution_resources.rs b/crates/starknet_api/src/execution_resources.rs index 31c5e357cf7..e8270c032d1 100644 --- a/crates/starknet_api/src/execution_resources.rs +++ b/crates/starknet_api/src/execution_resources.rs @@ -236,7 +236,7 @@ pub struct ExecutionResources { pub gas_consumed: GasVector, } -#[derive(Clone, Debug, Deserialize, EnumIter, Eq, Hash, PartialEq, Serialize)] +#[derive(Clone, Copy, Debug, Deserialize, EnumIter, Eq, Hash, PartialEq, Serialize)] pub enum Builtin { #[serde(rename = "range_check_builtin_applications")] RangeCheck, diff --git a/crates/starknet_committer/src/patricia_merkle_tree/leaf/leaf_serde.rs b/crates/starknet_committer/src/patricia_merkle_tree/leaf/leaf_serde.rs index 5a4fc44a3da..3ed2de9716a 100644 --- a/crates/starknet_committer/src/patricia_merkle_tree/leaf/leaf_serde.rs +++ b/crates/starknet_committer/src/patricia_merkle_tree/leaf/leaf_serde.rs @@ -15,7 +15,7 @@ use crate::db::serde_db_utils::{deserialize_felt_no_packing, serialize_felt_no_p use crate::patricia_merkle_tree::leaf::leaf_impl::ContractState; use crate::patricia_merkle_tree::types::{fixed_hex_string_no_prefix, CompiledClassHash}; -#[derive(Clone, Debug)] +#[derive(Clone, Copy, Debug)] pub enum CommitterLeafPrefix { StorageLeaf, StateTreeLeaf,