diff --git a/crates/papyrus_protobuf/src/converters/rpc_transaction.rs b/crates/papyrus_protobuf/src/converters/rpc_transaction.rs index dc0b688ee34..3f20291b3b6 100644 --- a/crates/papyrus_protobuf/src/converters/rpc_transaction.rs +++ b/crates/papyrus_protobuf/src/converters/rpc_transaction.rs @@ -5,7 +5,6 @@ mod rpc_transaction_test; use prost::Message; use starknet_api::rpc_transaction::{ RpcDeclareTransaction, - RpcDeclareTransactionV3, RpcDeployAccountTransaction, RpcDeployAccountTransactionV3, RpcInvokeTransaction, @@ -13,11 +12,7 @@ use starknet_api::rpc_transaction::{ RpcTransaction, }; use starknet_api::transaction::fields::{AllResourceBounds, ValidResourceBounds}; -use starknet_api::transaction::{ - DeclareTransactionV3, - DeployAccountTransactionV3, - InvokeTransactionV3, -}; +use starknet_api::transaction::{DeployAccountTransactionV3, InvokeTransactionV3}; use super::ProtobufConversionError; use crate::auto_impl_into_and_try_from_vec_u8; @@ -86,90 +81,6 @@ impl From for protobuf::MempoolTransaction { } } -impl TryFrom for RpcDeclareTransactionV3 { - type Error = ProtobufConversionError; - fn try_from(value: protobuf::mempool_transaction::DeclareV3) -> Result { - let declare_v3 = value.declare_v3.ok_or(ProtobufConversionError::MissingField { - field_description: "DeclareV3::declare_v3", - })?; - let contract_class = value - .contract_class - .ok_or(ProtobufConversionError::MissingField { - field_description: "DeclareV3::contract_class", - })? - .try_into()?; - let DeclareTransactionV3 { - sender_address, - compiled_class_hash, - signature, - nonce, - resource_bounds, - class_hash: _, - tip, - paymaster_data, - account_deployment_data, - nonce_data_availability_mode, - fee_data_availability_mode, - } = declare_v3.try_into()?; - - let resource_bounds = match resource_bounds { - ValidResourceBounds::AllResources(resource_bounds) => resource_bounds, - ValidResourceBounds::L1Gas(resource_bounds) => AllResourceBounds { - l1_gas: resource_bounds, - l2_gas: Default::default(), - l1_data_gas: Default::default(), - }, - }; - - Ok(Self { - sender_address, - compiled_class_hash, - signature, - nonce, - contract_class, - resource_bounds, - tip, - paymaster_data, - account_deployment_data, - nonce_data_availability_mode, - fee_data_availability_mode, - }) - } -} - -impl From for protobuf::mempool_transaction::DeclareV3 { - fn from(value: RpcDeclareTransactionV3) -> Self { - let RpcDeclareTransactionV3 { - sender_address, - compiled_class_hash, - signature, - nonce, - contract_class, - resource_bounds, - tip, - paymaster_data, - account_deployment_data, - nonce_data_availability_mode, - fee_data_availability_mode, - } = value; - let declare_v3 = DeclareTransactionV3 { - resource_bounds: ValidResourceBounds::AllResources(resource_bounds), - tip, - signature, - nonce, - // TODO(Eitan): refactor the protobuf transaction to not have class_hash - class_hash: Default::default(), - compiled_class_hash, - sender_address, - nonce_data_availability_mode, - fee_data_availability_mode, - paymaster_data, - account_deployment_data, - }; - Self { contract_class: Some(contract_class.into()), declare_v3: Some(declare_v3.into()) } - } -} - impl TryFrom for RpcDeployAccountTransactionV3 { type Error = ProtobufConversionError; fn try_from(value: protobuf::transaction::DeployAccountV3) -> Result { diff --git a/crates/papyrus_protobuf/src/proto/p2p/proto/mempool/transaction.proto b/crates/papyrus_protobuf/src/proto/p2p/proto/mempool/transaction.proto index 6bce1e0fcc0..0908f208b06 100644 --- a/crates/papyrus_protobuf/src/proto/p2p/proto/mempool/transaction.proto +++ b/crates/papyrus_protobuf/src/proto/p2p/proto/mempool/transaction.proto @@ -4,24 +4,16 @@ import "p2p/proto/class.proto"; import "p2p/proto/common.proto"; import "p2p/proto/transaction.proto"; import "p2p/proto/sync/transaction.proto"; -// TODO(alonl): remove this import (used only for the old Transaction struct as an intermediate step) -import "p2p/proto/consensus/consensus.proto"; option go_package = "github.com/starknet-io/starknet-p2pspecs/p2p/proto/mempool/transaction"; // Doesn't contain L1Handler, as those don't need to be propagated and can be downloaded from L1. message MempoolTransaction { - message DeclareV3 { - // TODO(alonl): change declare_v3 type to TransactionInBlock.DeclareV3WithoutClass (defined in sync/transaction.proto) - Transaction.DeclareV3 declare_v3 = 1; - Cairo1Class contract_class = 2; - } - oneof txn { - DeclareV3 declare_v3 = 1; - Transaction.DeployAccountV3 deploy_account_v3 = 2; - Transaction.InvokeV3 invoke_v3 = 3; + DeclareV3WithClass declare_v3 = 1; + DeployAccountV3 deploy_account_v3 = 2; + InvokeV3 invoke_v3 = 3; } Hash transaction_hash = 4; }