diff --git a/Cargo.lock b/Cargo.lock index 6bdf7d848d1..9afa2d310d2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -886,6 +886,7 @@ dependencies = [ "apollo_state_reader", "apollo_state_sync_types", "apollo_storage", + "apollo_transaction_converter", "assert_matches", "async-trait", "blockifier", @@ -1043,7 +1044,6 @@ dependencies = [ "apollo_compile_to_casm_types", "apollo_infra", "apollo_proc_macros", - "apollo_proof_manager_types", "assert_matches", "async-trait", "blockifier", @@ -1058,8 +1058,6 @@ dependencies = [ "strum 0.25.0", "strum_macros 0.25.3", "thiserror 1.0.69", - "tokio", - "tracing", ] [[package]] @@ -1341,6 +1339,7 @@ dependencies = [ "apollo_state_sync_types", "apollo_storage", "apollo_time", + "apollo_transaction_converter", "async-trait", "futures", "mockall", @@ -1388,6 +1387,7 @@ dependencies = [ "apollo_storage", "apollo_test_utils", "apollo_time", + "apollo_transaction_converter", "assert_matches", "async-trait", "blockifier", @@ -1506,6 +1506,7 @@ dependencies = [ "apollo_proof_manager_types", "apollo_state_sync_types", "apollo_test_utils", + "apollo_transaction_converter", "assert_matches", "async-trait", "axum 0.6.20", @@ -1944,6 +1945,7 @@ dependencies = [ "apollo_proof_manager_types", "apollo_protobuf", "apollo_test_utils", + "apollo_transaction_converter", "async-trait", "futures", "libp2p", @@ -2780,6 +2782,26 @@ dependencies = [ "tokio", ] +[[package]] +name = "apollo_transaction_converter" +version = "0.0.0" +dependencies = [ + "apollo_class_manager_types", + "apollo_proof_manager_types", + "assert_matches", + "async-trait", + "blockifier", + "blockifier_test_utils", + "mempool_test_utils", + "mockall", + "rstest", + "starknet-types-core", + "starknet_api", + "thiserror 1.0.69", + "tokio", + "tracing", +] + [[package]] name = "aquamarine" version = "0.6.0" @@ -3736,7 +3758,7 @@ dependencies = [ "flate2", "google-cloud-storage", "indexmap 2.12.0", - "mockito 1.7.0", + "mockito", "pretty_assertions", "reqwest 0.12.24", "retry", diff --git a/Cargo.toml b/Cargo.toml index 13193a85688..ed50829d665 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -91,6 +91,7 @@ members = [ "crates/apollo_task_executor", "crates/apollo_test_utils", "crates/apollo_time", + "crates/apollo_transaction_converter", "crates/bench_tools", "crates/blockifier", "crates/blockifier_reexecution", @@ -213,6 +214,7 @@ apollo_storage.path = "crates/apollo_storage" apollo_task_executor.path = "crates/apollo_task_executor" apollo_test_utils.path = "crates/apollo_test_utils" apollo_time.path = "crates/apollo_time" +apollo_transaction_converter.path = "crates/apollo_transaction_converter" ark-bls12-381 = "0.5.0" ark-ec = "0.5.0" ark-ff = "0.5.0" diff --git a/commitlint.config.js b/commitlint.config.js index 526a5744d0f..9538936c15e 100644 --- a/commitlint.config.js +++ b/commitlint.config.js @@ -82,6 +82,7 @@ const AllowedScopes = ['apollo_base_layer_tests', 'apollo_task_executor', 'apollo_test_utils', 'apollo_time', + 'apollo_transaction_converter', 'batcher', 'bench_tools', 'blockifier', diff --git a/crates/apollo_batcher/Cargo.toml b/crates/apollo_batcher/Cargo.toml index 0ff9dada4c3..0ed5fd17b8a 100644 --- a/crates/apollo_batcher/Cargo.toml +++ b/crates/apollo_batcher/Cargo.toml @@ -29,6 +29,7 @@ apollo_starknet_client.workspace = true apollo_state_reader.workspace = true apollo_state_sync_types.workspace = true apollo_storage.workspace = true +apollo_transaction_converter.workspace = true async-trait.workspace = true blockifier.workspace = true cairo-vm.workspace = true @@ -56,6 +57,7 @@ apollo_metrics = { workspace = true, features = ["testing"] } apollo_proof_manager_types = { workspace = true, features = ["testing"] } apollo_state_sync_types = { workspace = true, features = ["testing"] } apollo_storage = { workspace = true, features = ["testing"] } +apollo_transaction_converter = { workspace = true, features = ["testing"] } assert_matches.workspace = true blockifier = { workspace = true, features = ["testing"] } cairo-lang-starknet-classes.workspace = true diff --git a/crates/apollo_batcher/src/block_builder.rs b/crates/apollo_batcher/src/block_builder.rs index 931c5c40f52..4350f22d1b9 100644 --- a/crates/apollo_batcher/src/block_builder.rs +++ b/crates/apollo_batcher/src/block_builder.rs @@ -5,17 +5,17 @@ use std::time::Duration; use apollo_batcher_config::config::BlockBuilderConfig; use apollo_batcher_types::batcher_types::ProposalCommitment; -use apollo_class_manager_types::transaction_converter::{ - TransactionConverter, - TransactionConverterError, - TransactionConverterResult, - TransactionConverterTrait, -}; use apollo_class_manager_types::SharedClassManagerClient; use apollo_infra_utils::tracing::LogCompatibleToStringExt; use apollo_proof_manager_types::SharedProofManagerClient; use apollo_state_reader::apollo_state::{ApolloReader, ClassReader}; use apollo_storage::StorageReader; +use apollo_transaction_converter::{ + TransactionConverter, + TransactionConverterError, + TransactionConverterResult, + TransactionConverterTrait, +}; use async_trait::async_trait; use blockifier::blockifier::concurrent_transaction_executor::ConcurrentTransactionExecutor; use blockifier::blockifier::transaction_executor::{ diff --git a/crates/apollo_batcher/src/block_builder_test.rs b/crates/apollo_batcher/src/block_builder_test.rs index b1e0afd39b3..7d3e66bcdec 100644 --- a/crates/apollo_batcher/src/block_builder_test.rs +++ b/crates/apollo_batcher/src/block_builder_test.rs @@ -1,7 +1,6 @@ use std::sync::Arc; use std::time::Duration; -use apollo_class_manager_types::transaction_converter::TransactionConverter; use apollo_class_manager_types::MockClassManagerClient; use apollo_l1_provider_types::InvalidValidationStatus; use apollo_l1_provider_types::InvalidValidationStatus::{ @@ -11,6 +10,7 @@ use apollo_l1_provider_types::InvalidValidationStatus::{ NotFound, }; use apollo_proof_manager_types::MockProofManagerClient; +use apollo_transaction_converter::TransactionConverter; use assert_matches::assert_matches; use blockifier::blockifier::transaction_executor::{ BlockExecutionSummary, diff --git a/crates/apollo_class_manager_types/Cargo.toml b/crates/apollo_class_manager_types/Cargo.toml index 8c49d4d70e0..3e0ae1a4847 100644 --- a/crates/apollo_class_manager_types/Cargo.toml +++ b/crates/apollo_class_manager_types/Cargo.toml @@ -16,7 +16,6 @@ workspace = true apollo_compile_to_casm_types.workspace = true apollo_infra.workspace = true apollo_proc_macros.workspace = true -apollo_proof_manager_types.workspace = true async-trait.workspace = true mockall = { workspace = true, optional = true } serde = { workspace = true, features = ["derive"] } @@ -25,11 +24,8 @@ starknet_api.workspace = true strum = { workspace = true, features = ["derive"] } strum_macros.workspace = true thiserror.workspace = true -tokio.workspace = true -tracing.workspace = true [dev-dependencies] -apollo_proof_manager_types = { workspace = true, features = ["testing"] } assert_matches.workspace = true blockifier = { workspace = true, features = ["testing"] } blockifier_test_utils.workspace = true diff --git a/crates/apollo_class_manager_types/src/lib.rs b/crates/apollo_class_manager_types/src/lib.rs index 06650e0de32..4d28f2eda84 100644 --- a/crates/apollo_class_manager_types/src/lib.rs +++ b/crates/apollo_class_manager_types/src/lib.rs @@ -1,5 +1,3 @@ -pub mod transaction_converter; - use std::error::Error; use std::sync::Arc; diff --git a/crates/apollo_consensus_manager/Cargo.toml b/crates/apollo_consensus_manager/Cargo.toml index 7c87e39ccab..b88bbe7c2c1 100644 --- a/crates/apollo_consensus_manager/Cargo.toml +++ b/crates/apollo_consensus_manager/Cargo.toml @@ -30,6 +30,7 @@ apollo_reverts.workspace = true apollo_signature_manager_types.workspace = true apollo_state_sync_types.workspace = true apollo_time.workspace = true +apollo_transaction_converter.workspace = true async-trait.workspace = true futures.workspace = true starknet_api.workspace = true @@ -47,6 +48,7 @@ apollo_proof_manager_types = { workspace = true, features = ["testing"] } apollo_signature_manager_types = { workspace = true, features = ["testing"] } apollo_state_sync_types = { workspace = true, features = ["testing"] } apollo_storage = { workspace = true } +apollo_transaction_converter = { workspace = true, features = ["testing"] } mockall.workspace = true rstest.workspace = true tempfile.workspace = true diff --git a/crates/apollo_consensus_manager/src/consensus_manager.rs b/crates/apollo_consensus_manager/src/consensus_manager.rs index d351a44de28..92300ec116a 100644 --- a/crates/apollo_consensus_manager/src/consensus_manager.rs +++ b/crates/apollo_consensus_manager/src/consensus_manager.rs @@ -7,7 +7,6 @@ use std::sync::{Arc, Mutex}; use apollo_batcher_types::batcher_types::RevertBlockInput; use apollo_batcher_types::communication::SharedBatcherClient; -use apollo_class_manager_types::transaction_converter::TransactionConverter; use apollo_class_manager_types::SharedClassManagerClient; use apollo_config_manager_types::communication::SharedConfigManagerClient; use apollo_consensus::storage::{get_voted_height_storage, HeightVotedStorageTrait}; @@ -43,6 +42,7 @@ use apollo_reverts::{revert_blocks_and_eternal_pending, RevertComponentData}; use apollo_signature_manager_types::SharedSignatureManagerClient; use apollo_state_sync_types::communication::SharedStateSyncClient; use apollo_time::time::DefaultClock; +use apollo_transaction_converter::TransactionConverter; use async_trait::async_trait; use futures::channel::mpsc; use starknet_api::block::BlockNumber; diff --git a/crates/apollo_consensus_orchestrator/Cargo.toml b/crates/apollo_consensus_orchestrator/Cargo.toml index 46f7a0599b9..1e6a6233cc6 100644 --- a/crates/apollo_consensus_orchestrator/Cargo.toml +++ b/crates/apollo_consensus_orchestrator/Cargo.toml @@ -23,6 +23,7 @@ apollo_protobuf.workspace = true apollo_sizeof.workspace = true apollo_state_sync_types.workspace = true apollo_time = { workspace = true, features = ["tokio"] } +apollo_transaction_converter.workspace = true async-trait.workspace = true blockifier.workspace = true cairo-lang-starknet-classes.workspace = true @@ -64,6 +65,7 @@ apollo_state_sync_types = { workspace = true, features = ["testing"] } apollo_storage = { workspace = true, features = ["testing"] } apollo_test_utils.workspace = true apollo_time = { workspace = true, features = ["testing", "tokio"] } +apollo_transaction_converter = { workspace = true, features = ["testing"] } assert_matches.workspace = true blockifier = { workspace = true, features = ["testing"] } blockifier_test_utils = { workspace = true } diff --git a/crates/apollo_consensus_orchestrator/src/build_proposal.rs b/crates/apollo_consensus_orchestrator/src/build_proposal.rs index f87349db79c..8f14654584e 100644 --- a/crates/apollo_consensus_orchestrator/src/build_proposal.rs +++ b/crates/apollo_consensus_orchestrator/src/build_proposal.rs @@ -13,7 +13,6 @@ use apollo_batcher_types::batcher_types::{ ProposeBlockInput, }; use apollo_batcher_types::communication::BatcherClientError; -use apollo_class_manager_types::transaction_converter::TransactionConverterError; use apollo_consensus::types::{ProposalCommitment, Round}; use apollo_l1_gas_price_types::errors::{EthToStrkOracleClientError, L1GasPriceClientError}; use apollo_protobuf::consensus::{ @@ -25,6 +24,7 @@ use apollo_protobuf::consensus::{ }; use apollo_state_sync_types::communication::SharedStateSyncClient; use apollo_time::time::{Clock, DateTime}; +use apollo_transaction_converter::TransactionConverterError; use starknet_api::block::GasPrice; use starknet_api::consensus_transaction::InternalConsensusTransaction; use starknet_api::core::ContractAddress; diff --git a/crates/apollo_consensus_orchestrator/src/build_proposal_test.rs b/crates/apollo_consensus_orchestrator/src/build_proposal_test.rs index 35e175c2cf1..af0dcb35f11 100644 --- a/crates/apollo_consensus_orchestrator/src/build_proposal_test.rs +++ b/crates/apollo_consensus_orchestrator/src/build_proposal_test.rs @@ -6,12 +6,9 @@ use apollo_batcher_types::batcher_types::{ ProposalCommitment, }; use apollo_batcher_types::communication::BatcherClientError; -use apollo_class_manager_types::transaction_converter::{ - MockTransactionConverterTrait, - TransactionConverterError, -}; use apollo_consensus::types::ProposalCommitment as ConsensusProposalCommitment; use apollo_infra::component_client::ClientError; +use apollo_transaction_converter::{MockTransactionConverterTrait, TransactionConverterError}; use assert_matches::assert_matches; use starknet_api::core::ClassHash; use tokio_util::task::AbortOnDropHandle; diff --git a/crates/apollo_consensus_orchestrator/src/sequencer_consensus_context.rs b/crates/apollo_consensus_orchestrator/src/sequencer_consensus_context.rs index 53db0a769d7..986f80ab7ea 100644 --- a/crates/apollo_consensus_orchestrator/src/sequencer_consensus_context.rs +++ b/crates/apollo_consensus_orchestrator/src/sequencer_consensus_context.rs @@ -17,10 +17,6 @@ use apollo_batcher_types::batcher_types::{ StartHeightInput, }; use apollo_batcher_types::communication::BatcherClient; -use apollo_class_manager_types::transaction_converter::{ - TransactionConverterError, - TransactionConverterTrait, -}; use apollo_config_manager_types::communication::SharedConfigManagerClient; use apollo_consensus::types::{ ConsensusContext, @@ -46,6 +42,10 @@ use apollo_state_sync_types::communication::{StateSyncClient, StateSyncClientErr use apollo_state_sync_types::errors::StateSyncError; use apollo_state_sync_types::state_sync_types::SyncBlock; use apollo_time::time::Clock; +use apollo_transaction_converter::transaction_converter::{ + TransactionConverterError, + TransactionConverterTrait, +}; use async_trait::async_trait; use futures::channel::mpsc::SendError; use futures::channel::{mpsc, oneshot}; diff --git a/crates/apollo_consensus_orchestrator/src/test_utils.rs b/crates/apollo_consensus_orchestrator/src/test_utils.rs index e6bf4f3ecf5..f1d0bf988c1 100644 --- a/crates/apollo_consensus_orchestrator/src/test_utils.rs +++ b/crates/apollo_consensus_orchestrator/src/test_utils.rs @@ -15,11 +15,6 @@ use apollo_batcher_types::batcher_types::{ ValidateBlockInput, }; use apollo_batcher_types::communication::MockBatcherClient; -use apollo_class_manager_types::transaction_converter::{ - MockTransactionConverterTrait, - TransactionConverter, - TransactionConverterTrait, -}; use apollo_class_manager_types::EmptyClassManagerClient; use apollo_consensus::types::Round; use apollo_consensus_orchestrator_config::config::{ContextConfig, ContextStaticConfig}; @@ -43,6 +38,11 @@ use apollo_protobuf::consensus::{ }; use apollo_state_sync_types::communication::MockStateSyncClient; use apollo_time::time::{Clock, DateTime, DefaultClock}; +use apollo_transaction_converter::{ + MockTransactionConverterTrait, + TransactionConverter, + TransactionConverterTrait, +}; use futures::channel::mpsc; use futures::executor::block_on; use futures::SinkExt; diff --git a/crates/apollo_consensus_orchestrator/src/validate_proposal.rs b/crates/apollo_consensus_orchestrator/src/validate_proposal.rs index 5ad7f3e2cee..e876d5a0655 100644 --- a/crates/apollo_consensus_orchestrator/src/validate_proposal.rs +++ b/crates/apollo_consensus_orchestrator/src/validate_proposal.rs @@ -14,13 +14,13 @@ use apollo_batcher_types::batcher_types::{ }; use apollo_batcher_types::communication::{BatcherClient, BatcherClientError}; use apollo_batcher_types::errors::BatcherError; -use apollo_class_manager_types::transaction_converter::TransactionConverterTrait; use apollo_consensus::types::ProposalCommitment; use apollo_l1_gas_price_types::errors::{EthToStrkOracleClientError, L1GasPriceClientError}; use apollo_l1_gas_price_types::L1GasPriceProviderClient; use apollo_protobuf::consensus::{ConsensusBlockInfo, ProposalFin, ProposalPart, TransactionBatch}; use apollo_state_sync_types::communication::StateSyncClient; use apollo_time::time::{Clock, ClockExt, DateTime}; +use apollo_transaction_converter::TransactionConverterTrait; use futures::channel::mpsc; use futures::StreamExt; use starknet_api::block::{BlockNumber, GasPrice}; diff --git a/crates/apollo_gateway/Cargo.toml b/crates/apollo_gateway/Cargo.toml index 5b145a80353..b1e710cb8bf 100644 --- a/crates/apollo_gateway/Cargo.toml +++ b/crates/apollo_gateway/Cargo.toml @@ -15,6 +15,7 @@ testing = [ "apollo_gateway_config/testing", "apollo_mempool_types/testing", "apollo_proof_manager_types/testing", + "apollo_transaction_converter/testing", "blockifier/testing", "blockifier_test_utils", ] @@ -31,6 +32,7 @@ apollo_network_types.workspace = true apollo_proc_macros.workspace = true apollo_proof_manager_types.workspace = true apollo_state_sync_types.workspace = true +apollo_transaction_converter.workspace = true async-trait.workspace = true axum.workspace = true blockifier.workspace = true @@ -60,6 +62,7 @@ apollo_network_types = { workspace = true, features = ["testing"] } apollo_proof_manager_types = { workspace = true, features = ["testing"] } apollo_state_sync_types = { workspace = true, features = ["testing"] } apollo_test_utils.workspace = true +apollo_transaction_converter = { workspace = true, features = ["testing"] } assert_matches.workspace = true blockifier = { workspace = true, features = ["mocks", "testing"] } blockifier_test_utils.workspace = true diff --git a/crates/apollo_gateway/src/errors.rs b/crates/apollo_gateway/src/errors.rs index 27594be3b48..cc22d3c6e87 100644 --- a/crates/apollo_gateway/src/errors.rs +++ b/crates/apollo_gateway/src/errors.rs @@ -1,4 +1,3 @@ -use apollo_class_manager_types::transaction_converter::TransactionConverterError; use apollo_class_manager_types::{ClassManagerClientError, ClassManagerError}; use apollo_gateway_config::compiler_version::{VersionId, VersionIdError}; use apollo_gateway_types::deprecated_gateway_error::{ @@ -10,6 +9,7 @@ use apollo_gateway_types::errors::GatewaySpecError; use apollo_gateway_types::gateway_types::SUPPORTED_TRANSACTION_VERSIONS; use apollo_mempool_types::communication::{MempoolClientError, MempoolClientResult}; use apollo_mempool_types::errors::MempoolError; +use apollo_transaction_converter::TransactionConverterError; use starknet_api::block::GasPrice; use starknet_api::executable_transaction::ValidateCompiledClassHashError; use starknet_api::execution_resources::GasAmount; diff --git a/crates/apollo_gateway/src/gateway.rs b/crates/apollo_gateway/src/gateway.rs index 7a6aba75531..a23f3c4af6b 100644 --- a/crates/apollo_gateway/src/gateway.rs +++ b/crates/apollo_gateway/src/gateway.rs @@ -2,10 +2,6 @@ use std::clone::Clone; use std::sync::Arc; use std::time::Instant; -use apollo_class_manager_types::transaction_converter::{ - TransactionConverter, - TransactionConverterTrait, -}; use apollo_class_manager_types::SharedClassManagerClient; use apollo_gateway_config::config::GatewayConfig; use apollo_gateway_types::deprecated_gateway_error::{ @@ -26,6 +22,7 @@ use apollo_network_types::network_types::BroadcastedMessageMetadata; use apollo_proc_macros::sequencer_latency_histogram; use apollo_proof_manager_types::SharedProofManagerClient; use apollo_state_sync_types::communication::SharedStateSyncClient; +use apollo_transaction_converter::{TransactionConverter, TransactionConverterTrait}; use axum::async_trait; use blockifier::state::contract_class_manager::ContractClassManager; use starknet_api::executable_transaction::AccountTransaction; diff --git a/crates/apollo_gateway/src/gateway_test.rs b/crates/apollo_gateway/src/gateway_test.rs index af8b48ff892..8fc3d3b198c 100644 --- a/crates/apollo_gateway/src/gateway_test.rs +++ b/crates/apollo_gateway/src/gateway_test.rs @@ -2,11 +2,6 @@ use std::collections::HashSet; use std::fs::File; use std::sync::{Arc, LazyLock}; -use apollo_class_manager_types::transaction_converter::{ - MockTransactionConverterTrait, - TransactionConverterError, - TransactionConverterResult, -}; use apollo_config::dumping::SerializeConfig; use apollo_config::loading::load_and_process_config; use apollo_gateway_config::config::{ @@ -38,6 +33,11 @@ use apollo_metrics::metrics::HistogramValue; use apollo_network_types::network_types::BroadcastedMessageMetadata; use apollo_proof_manager_types::{MockProofManagerClient, ProofManagerClient}; use apollo_test_utils::{get_rng, GetTestInstance}; +use apollo_transaction_converter::{ + MockTransactionConverterTrait, + TransactionConverterError, + TransactionConverterResult, +}; use blockifier::blockifier::config::ContractClassManagerConfig; use blockifier::context::ChainInfo; use blockifier::test_utils::generate_block_hash_storage_updates; diff --git a/crates/apollo_gateway/src/test_utils.rs b/crates/apollo_gateway/src/test_utils.rs index 43579b1d233..aa8f8cca31b 100644 --- a/crates/apollo_gateway/src/test_utils.rs +++ b/crates/apollo_gateway/src/test_utils.rs @@ -1,11 +1,11 @@ use std::sync::Arc; -use apollo_class_manager_types::transaction_converter::TransactionConverter; use apollo_class_manager_types::MockClassManagerClient; use apollo_gateway_config::compiler_version::VersionId; use apollo_gateway_config::config::GatewayConfig; use apollo_mempool_types::communication::MockMempoolClient; use apollo_proof_manager_types::MockProofManagerClient; +use apollo_transaction_converter::TransactionConverter; use blockifier_test_utils::cairo_versions::{CairoVersion, RunnableCairo1}; use starknet_api::block::GasPrice; use starknet_api::core::ContractAddress; diff --git a/crates/apollo_mempool_p2p/Cargo.toml b/crates/apollo_mempool_p2p/Cargo.toml index d85313ea76e..7a0073cd49d 100644 --- a/crates/apollo_mempool_p2p/Cargo.toml +++ b/crates/apollo_mempool_p2p/Cargo.toml @@ -23,6 +23,7 @@ apollo_network.workspace = true apollo_network_types.workspace = true apollo_proof_manager_types.workspace = true apollo_protobuf.workspace = true +apollo_transaction_converter.workspace = true async-trait.workspace = true futures.workspace = true starknet_api.workspace = true @@ -37,6 +38,7 @@ apollo_network = { workspace = true, features = ["testing"] } apollo_network_types = { workspace = true, features = ["testing"] } apollo_protobuf.workspace = true apollo_test_utils.workspace = true +apollo_transaction_converter = { workspace = true, features = ["testing"] } futures.workspace = true libp2p.workspace = true mockall.workspace = true diff --git a/crates/apollo_mempool_p2p/src/lib.rs b/crates/apollo_mempool_p2p/src/lib.rs index 4fe952d5062..a571aeb4ff7 100644 --- a/crates/apollo_mempool_p2p/src/lib.rs +++ b/crates/apollo_mempool_p2p/src/lib.rs @@ -4,7 +4,6 @@ pub mod runner; use std::collections::HashMap; -use apollo_class_manager_types::transaction_converter::TransactionConverter; use apollo_class_manager_types::SharedClassManagerClient; use apollo_gateway_types::communication::SharedGatewayClient; use apollo_mempool_p2p_config::config::MempoolP2pConfig; @@ -20,6 +19,7 @@ use apollo_network::metrics::{ }; use apollo_network::network_manager::{BroadcastTopicChannels, NetworkManager}; use apollo_proof_manager_types::SharedProofManagerClient; +use apollo_transaction_converter::TransactionConverter; use futures::FutureExt; use metrics::MEMPOOL_P2P_NUM_BLACKLISTED_PEERS; use tracing::{info_span, Instrument}; diff --git a/crates/apollo_mempool_p2p/src/propagator/mod.rs b/crates/apollo_mempool_p2p/src/propagator/mod.rs index 01e5429956e..678753e6ce7 100644 --- a/crates/apollo_mempool_p2p/src/propagator/mod.rs +++ b/crates/apollo_mempool_p2p/src/propagator/mod.rs @@ -1,7 +1,6 @@ #[cfg(test)] mod test; -use apollo_class_manager_types::transaction_converter::TransactionConverterTrait; use apollo_infra::component_definitions::{ComponentRequestHandler, ComponentStarter}; use apollo_infra::component_server::{LocalComponentServer, RemoteComponentServer}; use apollo_mempool_p2p_types::communication::{ @@ -14,6 +13,7 @@ use apollo_metrics::metrics::LossyIntoF64; use apollo_network::network_manager::{BroadcastTopicClient, BroadcastTopicClientTrait}; use apollo_network_types::network_types::BroadcastedMessageMetadata; use apollo_protobuf::mempool::RpcTransactionBatch; +use apollo_transaction_converter::TransactionConverterTrait; use async_trait::async_trait; use starknet_api::rpc_transaction::{InternalRpcTransaction, RpcTransaction}; use tracing::{debug, trace, warn}; diff --git a/crates/apollo_mempool_p2p/src/propagator/test.rs b/crates/apollo_mempool_p2p/src/propagator/test.rs index 5faecfcdd0e..7fce4539fee 100644 --- a/crates/apollo_mempool_p2p/src/propagator/test.rs +++ b/crates/apollo_mempool_p2p/src/propagator/test.rs @@ -1,7 +1,3 @@ -use apollo_class_manager_types::transaction_converter::{ - MockTransactionConverterTrait, - TransactionConverterTrait, -}; use apollo_infra::component_definitions::ComponentRequestHandler; use apollo_mempool_p2p_types::communication::MempoolP2pPropagatorRequest; use apollo_network::network_manager::test_utils::{ @@ -14,6 +10,7 @@ use apollo_network::network_manager::{BroadcastTopicChannels, BroadcastTopicClie use apollo_network_types::network_types::BroadcastedMessageMetadata; use apollo_protobuf::mempool::RpcTransactionBatch; use apollo_test_utils::{get_rng, GetTestInstance}; +use apollo_transaction_converter::{MockTransactionConverterTrait, TransactionConverterTrait}; use futures::channel::mpsc::Receiver; use futures::stream::StreamExt; use futures::FutureExt; diff --git a/crates/apollo_transaction_converter/Cargo.toml b/crates/apollo_transaction_converter/Cargo.toml new file mode 100644 index 00000000000..7d407902879 --- /dev/null +++ b/crates/apollo_transaction_converter/Cargo.toml @@ -0,0 +1,35 @@ +[package] +name = "apollo_transaction_converter" +edition.workspace = true +license.workspace = true +repository.workspace = true +version.workspace = true +description = "Transaction converter for Apollo sequencer, handling conversions between different transaction formats." + +[features] +testing = ["apollo_class_manager_types/testing", "apollo_proof_manager_types/testing", "mockall"] + +[lints] +workspace = true + +[dependencies] +apollo_class_manager_types.workspace = true +apollo_proof_manager_types.workspace = true +async-trait.workspace = true +mockall = { workspace = true, optional = true } +starknet_api.workspace = true +thiserror.workspace = true +tokio.workspace = true +tracing.workspace = true + +[dev-dependencies] +apollo_class_manager_types = { workspace = true, features = ["testing"] } +apollo_proof_manager_types = { workspace = true, features = ["testing"] } +assert_matches.workspace = true +blockifier = { workspace = true, features = ["testing"] } +blockifier_test_utils.workspace = true +mempool_test_utils.workspace = true +mockall.workspace = true +rstest.workspace = true +starknet-types-core.workspace = true +starknet_api = { workspace = true, features = ["testing"] } diff --git a/crates/apollo_transaction_converter/src/lib.rs b/crates/apollo_transaction_converter/src/lib.rs new file mode 100644 index 00000000000..fdd0b908313 --- /dev/null +++ b/crates/apollo_transaction_converter/src/lib.rs @@ -0,0 +1,10 @@ +pub mod transaction_converter; + +#[cfg(any(feature = "testing", test))] +pub use transaction_converter::MockTransactionConverterTrait; +pub use transaction_converter::{ + TransactionConverter, + TransactionConverterError, + TransactionConverterResult, + TransactionConverterTrait, +}; diff --git a/crates/apollo_class_manager_types/src/transaction_converter.rs b/crates/apollo_transaction_converter/src/transaction_converter.rs similarity index 99% rename from crates/apollo_class_manager_types/src/transaction_converter.rs rename to crates/apollo_transaction_converter/src/transaction_converter.rs index 4eaddf74ac1..75c8fbaa376 100644 --- a/crates/apollo_class_manager_types/src/transaction_converter.rs +++ b/crates/apollo_transaction_converter/src/transaction_converter.rs @@ -1,5 +1,6 @@ use std::time::Instant; +use apollo_class_manager_types::{ClassHashes, ClassManagerClientError, SharedClassManagerClient}; use apollo_proof_manager_types::{ProofManagerClientError, SharedProofManagerClient}; use async_trait::async_trait; #[cfg(any(feature = "testing", test))] @@ -31,8 +32,6 @@ use starknet_api::{executable_transaction, transaction, StarknetApiError}; use thiserror::Error; use tracing::info; -use crate::{ClassHashes, ClassManagerClientError, SharedClassManagerClient}; - #[cfg(test)] #[path = "transaction_converter_test.rs"] pub mod transaction_converter_test; diff --git a/crates/apollo_class_manager_types/src/transaction_converter_test.rs b/crates/apollo_transaction_converter/src/transaction_converter_test.rs similarity index 98% rename from crates/apollo_class_manager_types/src/transaction_converter_test.rs rename to crates/apollo_transaction_converter/src/transaction_converter_test.rs index a076ef64718..b877c5fd4a1 100644 --- a/crates/apollo_class_manager_types/src/transaction_converter_test.rs +++ b/crates/apollo_transaction_converter/src/transaction_converter_test.rs @@ -1,5 +1,6 @@ use std::sync::Arc; +use apollo_class_manager_types::{ClassHashes, MockClassManagerClient}; use apollo_proof_manager_types::MockProofManagerClient; use assert_matches::assert_matches; use blockifier::context::ChainInfo; @@ -22,7 +23,6 @@ use crate::transaction_converter::{ TransactionConverterError, TransactionConverterTrait, }; -use crate::{ClassHashes, MockClassManagerClient}; #[rstest] #[tokio::test]