From 6be90eb6b7bf7f760ff64b304f34c3c7c5342821 Mon Sep 17 00:00:00 2001 From: Aviv Greenburg Date: Wed, 16 Jul 2025 16:56:06 +0300 Subject: [PATCH] apollo_batcher: add compiled_class_hashes_for_migration to blob pram --- .../src/cende/central_objects.rs | 4 ++++ .../src/cende/central_objects_test.rs | 9 +++++++++ crates/apollo_consensus_orchestrator/src/cende/mod.rs | 5 +++++ .../src/sequencer_consensus_context.rs | 1 + 4 files changed, 19 insertions(+) diff --git a/crates/apollo_consensus_orchestrator/src/cende/central_objects.rs b/crates/apollo_consensus_orchestrator/src/cende/central_objects.rs index 05baa781062..a047f9411b6 100644 --- a/crates/apollo_consensus_orchestrator/src/cende/central_objects.rs +++ b/crates/apollo_consensus_orchestrator/src/cende/central_objects.rs @@ -1,6 +1,7 @@ use std::str::FromStr; use apollo_class_manager_types::SharedClassManagerClient; +use blockifier::blockifier::transaction_executor::CompiledClassHashesToMigrate; use blockifier::bouncer::{BouncerWeights, CasmHashComputationData}; use blockifier::state::cached_state::CommitmentStateDiff; use cairo_lang_starknet_classes::casm_contract_class::CasmContractClass; @@ -63,6 +64,9 @@ pub(crate) type CentralCompressedStateDiff = CentralStateDiff; pub(crate) type CentralSierraContractClassEntry = (ClassHash, CentralSierraContractClass); pub(crate) type CentralCasmContractClassEntry = (CompiledClassHash, CentralCasmContractClass); pub(crate) type CentralCasmHashComputationData = CasmHashComputationData; +// TODO(AvivG): Remove this once added to 'AerospikeBlob'. +#[allow(unused)] +pub(crate) type CentralCompiledClassHashesToMigrate = CompiledClassHashesToMigrate; #[derive(Clone, Debug, PartialEq, Serialize)] struct CentralResourcePrice { diff --git a/crates/apollo_consensus_orchestrator/src/cende/central_objects_test.rs b/crates/apollo_consensus_orchestrator/src/cende/central_objects_test.rs index 99fc40dcf3b..c837af7c92c 100644 --- a/crates/apollo_consensus_orchestrator/src/cende/central_objects_test.rs +++ b/crates/apollo_consensus_orchestrator/src/cende/central_objects_test.rs @@ -129,6 +129,7 @@ use starknet_types_core::felt::Felt; use super::{ CentralBouncerWeights, CentralCasmHashComputationData, + CentralCompiledClassHashesToMigrate, CentralCompressedStateDiff, CentralDeclareTransaction, CentralDeployAccountTransaction, @@ -410,6 +411,13 @@ fn central_casm_hash_computation_data() -> CentralCasmHashComputationData { } } +fn central_compiled_class_hashes_to_migrate() -> CentralCompiledClassHashesToMigrate { + CentralCompiledClassHashesToMigrate::from([ + (CompiledClassHash(felt!("0x2")), CompiledClassHash(felt!("0x1"))), + (CompiledClassHash(felt!("0x4")), CompiledClassHash(felt!("0x3"))), + ]) +} + fn central_sierra_contract_class() -> CentralSierraContractClass { CentralSierraContractClass { contract_class: sierra_contract_class() } } @@ -651,6 +659,7 @@ fn central_blob() -> AerospikeBlob { execution_infos: vec![transaction_execution_info()], casm_hash_computation_data_sierra_gas: central_casm_hash_computation_data(), casm_hash_computation_data_proving_gas: central_casm_hash_computation_data(), + compiled_class_hashes_to_migrate: central_compiled_class_hashes_to_migrate(), }; // This is to make the function sync (not async) so that it can be used as a case in the diff --git a/crates/apollo_consensus_orchestrator/src/cende/mod.rs b/crates/apollo_consensus_orchestrator/src/cende/mod.rs index ca89897578e..fe35e983bfd 100644 --- a/crates/apollo_consensus_orchestrator/src/cende/mod.rs +++ b/crates/apollo_consensus_orchestrator/src/cende/mod.rs @@ -11,6 +11,7 @@ use apollo_config::dumping::{ser_optional_param, ser_param, SerializeConfig}; use apollo_config::{ParamPath, ParamPrivacyInput, SerializedParam}; use apollo_proc_macros::sequencer_latency_histogram; use async_trait::async_trait; +use blockifier::blockifier::transaction_executor::CompiledClassHashesToMigrate; use blockifier::bouncer::{BouncerWeights, CasmHashComputationData}; use blockifier::state::cached_state::CommitmentStateDiff; use blockifier::transaction::objects::TransactionExecutionInfo; @@ -297,6 +298,7 @@ pub struct BlobParameters { // TODO(dvir): consider passing the execution_infos from the batcher as a string that // serialized in the correct format from the batcher. pub(crate) execution_infos: Vec, + pub(crate) compiled_class_hashes_to_migrate: CompiledClassHashesToMigrate, } impl AerospikeBlob { @@ -325,6 +327,9 @@ impl AerospikeBlob { .map(CentralTransactionExecutionInfo::from) .collect(); + // TODO(AvivG): add `compiled_class_hashes_to_migrate` to `AerospikeBlob`. + let _ = blob_parameters.compiled_class_hashes_to_migrate; + Ok(AerospikeBlob { block_number, state_diff, diff --git a/crates/apollo_consensus_orchestrator/src/sequencer_consensus_context.rs b/crates/apollo_consensus_orchestrator/src/sequencer_consensus_context.rs index 97b30bfe70d..264a0ca6203 100644 --- a/crates/apollo_consensus_orchestrator/src/sequencer_consensus_context.rs +++ b/crates/apollo_consensus_orchestrator/src/sequencer_consensus_context.rs @@ -554,6 +554,7 @@ impl ConsensusContext for SequencerConsensusContext { l2_gas_consumed: l2_gas_used, next_l2_gas_price: self.l2_gas_price, }, + compiled_class_hashes_to_migrate: central_objects.compiled_class_hashes_to_migrate, }) .await .inspect_err(|e| {