Skip to content

Commit

Permalink
feat(starknet_batcher): integrate Papyrus state with class manager to…
Browse files Browse the repository at this point in the history
… Batcher

By doing this, `cairo-native` is reenabled.
  • Loading branch information
elintul committed Feb 20, 2025
1 parent 0d51613 commit c660a03
Show file tree
Hide file tree
Showing 6 changed files with 17 additions and 247 deletions.
21 changes: 12 additions & 9 deletions crates/papyrus_state_reader/src/papyrus_state.rs
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,9 @@ mod test;
type RawPapyrusReader<'env> = papyrus_storage::StorageTxn<'env, RO>;

pub struct ClassReader {
reader: SharedClassManagerClient,
pub reader: SharedClassManagerClient,
// Used to invoke async functions from sync reader code.
runtime: tokio::runtime::Handle,
pub runtime: tokio::runtime::Handle,
}

impl ClassReader {
Expand Down Expand Up @@ -84,18 +84,21 @@ pub struct PapyrusReader {
}

impl PapyrusReader {
pub fn new_with_class_manager(
storage_reader: StorageReader,
latest_block: BlockNumber,
contract_class_manager: ContractClassManager,
class_reader: Option<ClassReader>,
) -> Self {
Self { storage_reader, latest_block, contract_class_manager, class_reader }
}

pub fn new(
storage_reader: StorageReader,
latest_block: BlockNumber,
contract_class_manager: ContractClassManager,
) -> Self {
Self {
storage_reader,
latest_block,
contract_class_manager,
// TODO(Elin): integrate class manager client.
class_reader: None,
}
Self { storage_reader, latest_block, contract_class_manager, class_reader: None }
}

fn reader(&self) -> StateResult<RawPapyrusReader<'_>> {
Expand Down
1 change: 0 additions & 1 deletion crates/starknet_batcher/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ papyrus_config.workspace = true
papyrus_state_reader.workspace = true
papyrus_storage.workspace = true
serde.workspace = true
starknet-types-core.workspace = true
starknet_api.workspace = true
starknet_batcher_types.workspace = true
starknet_class_manager_types.workspace = true
Expand Down
14 changes: 5 additions & 9 deletions crates/starknet_batcher/src/block_builder.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ use indexmap::{IndexMap, IndexSet};
use mockall::automock;
use papyrus_config::dumping::{append_sub_config_name, ser_param, SerializeConfig};
use papyrus_config::{ParamPath, ParamPrivacyInput, SerializedParam};
use papyrus_state_reader::papyrus_state::PapyrusReader;
use papyrus_state_reader::papyrus_state::{ClassReader, PapyrusReader};
use papyrus_storage::StorageReader;
use serde::{Deserialize, Serialize};
use starknet_api::block::{BlockHashAndNumber, BlockInfo};
Expand All @@ -44,7 +44,6 @@ use thiserror::Error;
use tokio::sync::Mutex;
use tracing::{debug, error, info, trace};

use crate::reader_with_class_manager::ReaderWithClassManager;
use crate::transaction_executor::TransactionExecutorTrait;
use crate::transaction_provider::{NextTxs, TransactionProvider, TransactionProviderError};

Expand Down Expand Up @@ -407,7 +406,7 @@ impl BlockBuilderFactory {
&self,
block_metadata: BlockMetadata,
runtime: tokio::runtime::Handle,
) -> BlockBuilderResult<TransactionExecutor<ReaderWithClassManager<PapyrusReader>>> {
) -> BlockBuilderResult<TransactionExecutor<PapyrusReader>> {
let height = block_metadata.block_info.block_number;
let block_builder_config = self.block_builder_config.clone();
let versioned_constants = VersionedConstants::get_versioned_constants(
Expand All @@ -420,15 +419,12 @@ impl BlockBuilderFactory {
block_builder_config.bouncer_config,
);

let papyrus_state_reader = PapyrusReader::new(
let class_reader = Some(ClassReader { reader: self.class_manager_client.clone(), runtime });
let state_reader = PapyrusReader::new_with_class_manager(
self.storage_reader.clone(),
height,
self.contract_class_manager.clone(),
);
let state_reader = ReaderWithClassManager::new(
papyrus_state_reader,
self.class_manager_client.clone(),
runtime,
class_reader,
);

let executor = TransactionExecutor::pre_process_and_create(
Expand Down
3 changes: 0 additions & 3 deletions crates/starknet_batcher/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,6 @@ mod block_builder_test;
pub mod communication;
pub mod config;
mod metrics;
mod reader_with_class_manager;
#[cfg(test)]
mod reader_with_class_manager_test;
#[cfg(test)]
mod test_utils;
mod transaction_executor;
Expand Down
69 changes: 0 additions & 69 deletions crates/starknet_batcher/src/reader_with_class_manager.rs

This file was deleted.

156 changes: 0 additions & 156 deletions crates/starknet_batcher/src/reader_with_class_manager_test.rs

This file was deleted.

0 comments on commit c660a03

Please sign in to comment.