Skip to content

Commit

Permalink
build(fee): remove resource mapping def from rpc 06 and 07
Browse files Browse the repository at this point in the history
  • Loading branch information
nimrod-starkware committed Aug 25, 2024
1 parent aea9822 commit 4a91b4e
Show file tree
Hide file tree
Showing 11 changed files with 42 additions and 148 deletions.
4 changes: 2 additions & 2 deletions crates/papyrus_rpc/src/v0_6/api/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -554,7 +554,7 @@ impl From<DeployAccountTransaction> for starknet_api::transaction::DeployAccount
nonce_data_availability_mode,
fee_data_availability_mode,
}) => Self::V3(starknet_api::transaction::DeployAccountTransactionV3 {
resource_bounds: resource_bounds.into(),
resource_bounds,
tip,
signature,
nonce,
Expand Down Expand Up @@ -613,7 +613,7 @@ impl From<InvokeTransaction> for starknet_api::transaction::InvokeTransaction {
nonce_data_availability_mode,
fee_data_availability_mode,
}) => Self::V3(starknet_api::transaction::InvokeTransactionV3 {
resource_bounds: resource_bounds.into(),
resource_bounds,
tip,
signature,
nonce,
Expand Down
7 changes: 4 additions & 3 deletions crates/papyrus_rpc/src/v0_6/broadcasted_transaction.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,13 @@ use starknet_api::transaction::{
Tip,
TransactionSignature,
TransactionVersion,
ValidResourceBounds,
};
use starknet_client::writer::objects::transaction as client_transaction;
use starknet_client::writer::objects::transaction::DeprecatedContractClass;

use super::state::ContractClass;
use super::transaction::{DeployAccountTransaction, InvokeTransaction, ResourceBoundsMapping};
use super::transaction::{DeployAccountTransaction, InvokeTransaction};
use crate::compression_utils::compress_and_encode;

/// Transactions that are ready to be broadcasted to the network and are not included in a block.
Expand Down Expand Up @@ -106,7 +107,7 @@ pub struct BroadcastedDeclareV3Transaction {
pub signature: TransactionSignature,
pub nonce: Nonce,
pub contract_class: ContractClass,
pub resource_bounds: ResourceBoundsMapping,
pub resource_bounds: ValidResourceBounds,
pub tip: Tip,
pub paymaster_data: PaymasterData,
pub account_deployment_data: AccountDeploymentData,
Expand Down Expand Up @@ -174,7 +175,7 @@ impl TryFrom<BroadcastedDeclareTransaction> for client_transaction::DeclareTrans
.to_hash_map(),
abi: declare_v3.contract_class.abi,
},
resource_bounds: declare_v3.resource_bounds.into(),
resource_bounds: declare_v3.resource_bounds,
tip: declare_v3.tip,
signature: declare_v3.signature,
nonce: declare_v3.nonce,
Expand Down
10 changes: 2 additions & 8 deletions crates/papyrus_rpc/src/v0_6/broadcasted_transaction_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,9 @@ use starknet_api::transaction::{
AccountDeploymentData,
Fee,
PaymasterData,
ResourceBounds,
Tip,
TransactionSignature,
ValidResourceBounds,
};
use starknet_client::writer::objects::transaction::DeprecatedContractClass;
use starknet_types_core::felt::Felt;
Expand All @@ -37,7 +37,6 @@ use super::{
BroadcastedDeclareV2Transaction,
BroadcastedDeclareV3Transaction,
DeclareType,
ResourceBoundsMapping,
};
use crate::test_utils::{get_starknet_spec_api_schema_for_components, SpecFile};
use crate::version_config::VERSION_0_6 as Version;
Expand Down Expand Up @@ -82,7 +81,7 @@ auto_impl_get_test_instance! {
pub signature: TransactionSignature,
pub nonce: Nonce,
pub contract_class: ContractClass,
pub resource_bounds: ResourceBoundsMapping,
pub resource_bounds: ValidResourceBounds,
pub tip: Tip,
pub paymaster_data: PaymasterData,
pub account_deployment_data: AccountDeploymentData,
Expand All @@ -105,11 +104,6 @@ auto_impl_get_test_instance! {
pub enum DeclareType {
Declare = 0,
}

pub struct ResourceBoundsMapping {
pub l1_gas: ResourceBounds,
pub l2_gas: ResourceBounds,
}
}

#[test]
Expand Down
67 changes: 9 additions & 58 deletions crates/papyrus_rpc/src/v0_6/transaction.rs
Original file line number Diff line number Diff line change
Expand Up @@ -27,21 +27,19 @@ use starknet_api::data_availability::DataAvailabilityMode;
use starknet_api::serde_utils::bytes_from_hex_str;
use starknet_api::transaction::{
AccountDeploymentData,
AllResourceBounds,
Calldata,
ContractAddressSalt,
DeployTransaction,
Fee,
L1HandlerTransaction,
MessageToL1,
PaymasterData,
Resource,
ResourceBounds,
Tip,
TransactionExecutionStatus,
TransactionHash,
TransactionSignature,
TransactionVersion,
ValidResourceBounds,
};
use starknet_client::writer::objects::transaction as client_transaction;
use starknet_types_core::felt::Felt;
Expand Down Expand Up @@ -145,56 +143,9 @@ impl From<starknet_api::transaction::DeclareTransactionV2> for DeclareTransactio
}
}

// The serialization of the struct in SN_API is in capital letters, not following the spec.
#[derive(Debug, Clone, Eq, PartialEq, Hash, Deserialize, Serialize, PartialOrd, Ord)]
pub struct ResourceBoundsMapping {
pub l1_gas: ResourceBounds,
pub l2_gas: ResourceBounds,
}

impl From<ResourceBoundsMapping> for starknet_api::transaction::DeprecatedResourceBoundsMapping {
fn from(value: ResourceBoundsMapping) -> Self {
Self([(Resource::L1Gas, value.l1_gas), (Resource::L2Gas, value.l2_gas)].into())
}
}

impl From<ResourceBoundsMapping> for starknet_api::transaction::ValidResourceBounds {
fn from(value: ResourceBoundsMapping) -> Self {
if !value.l2_gas.is_zero() {
panic!("Resource bounds mapping l2 gas is expected to be zero. Got: {:?}", value.l2_gas)
}
Self::L1Gas(value.l1_gas)
}
}

impl From<starknet_api::transaction::ValidResourceBounds> for ResourceBoundsMapping {
fn from(value: starknet_api::transaction::ValidResourceBounds) -> Self {
match value {
starknet_api::transaction::ValidResourceBounds::L1Gas(l1_gas) => {
Self { l1_gas, l2_gas: ResourceBounds::default() }
}
// TODO(Nimrod): Don't allow this conversion.
starknet_api::transaction::ValidResourceBounds::AllResources(AllResourceBounds {
l1_gas,
l2_gas,
..
}) => Self { l1_gas, l2_gas },
}
}
}

impl From<starknet_api::transaction::DeprecatedResourceBoundsMapping> for ResourceBoundsMapping {
fn from(value: starknet_api::transaction::DeprecatedResourceBoundsMapping) -> Self {
Self {
l1_gas: value.0.get(&Resource::L1Gas).cloned().unwrap_or_default(),
l2_gas: value.0.get(&Resource::L2Gas).cloned().unwrap_or_default(),
}
}
}

#[derive(Debug, Clone, Eq, PartialEq, Hash, Deserialize, Serialize, PartialOrd, Ord)]
pub struct DeclareTransactionV3 {
pub resource_bounds: ResourceBoundsMapping,
pub resource_bounds: ValidResourceBounds,
pub tip: Tip,
pub signature: TransactionSignature,
pub nonce: Nonce,
Expand All @@ -211,7 +162,7 @@ pub struct DeclareTransactionV3 {
impl From<starknet_api::transaction::DeclareTransactionV3> for DeclareTransactionV3 {
fn from(tx: starknet_api::transaction::DeclareTransactionV3) -> Self {
Self {
resource_bounds: tx.resource_bounds.into(),
resource_bounds: tx.resource_bounds,
tip: tx.tip,
signature: tx.signature,
nonce: tx.nonce,
Expand Down Expand Up @@ -255,7 +206,7 @@ pub struct DeployAccountTransactionV3 {
pub contract_address_salt: ContractAddressSalt,
pub constructor_calldata: Calldata,
pub version: TransactionVersion3,
pub resource_bounds: ResourceBoundsMapping,
pub resource_bounds: ValidResourceBounds,
pub tip: Tip,
pub paymaster_data: PaymasterData,
pub nonce_data_availability_mode: DataAvailabilityMode,
Expand Down Expand Up @@ -314,7 +265,7 @@ impl TryFrom<starknet_api::transaction::DeployAccountTransaction> for DeployAcco
contract_address_salt,
constructor_calldata,
version: TransactionVersion3::Version3,
resource_bounds: resource_bounds.into(),
resource_bounds,
tip,
nonce_data_availability_mode,
fee_data_availability_mode,
Expand Down Expand Up @@ -347,7 +298,7 @@ impl From<DeployAccountTransaction> for client_transaction::DeployAccountTransac
nonce: deploy_account_tx.nonce,
signature: deploy_account_tx.signature,
version: TransactionVersion::THREE,
resource_bounds: deploy_account_tx.resource_bounds.into(),
resource_bounds: deploy_account_tx.resource_bounds,
tip: deploy_account_tx.tip,
nonce_data_availability_mode:
client_transaction::ReservedDataAvailabilityMode::Reserved,
Expand Down Expand Up @@ -416,7 +367,7 @@ pub struct InvokeTransactionV3 {
pub version: TransactionVersion3,
pub signature: TransactionSignature,
pub nonce: Nonce,
pub resource_bounds: ResourceBoundsMapping,
pub resource_bounds: ValidResourceBounds,
pub tip: Tip,
pub paymaster_data: PaymasterData,
pub account_deployment_data: AccountDeploymentData,
Expand All @@ -432,7 +383,7 @@ impl From<InvokeTransactionV3> for client_transaction::InvokeTransaction {
version: TransactionVersion::THREE,
signature: tx.signature,
nonce: tx.nonce,
resource_bounds: tx.resource_bounds.into(),
resource_bounds: tx.resource_bounds,
tip: tx.tip,
nonce_data_availability_mode:
client_transaction::ReservedDataAvailabilityMode::Reserved,
Expand Down Expand Up @@ -518,7 +469,7 @@ impl TryFrom<starknet_api::transaction::InvokeTransaction> for InvokeTransaction
version: TransactionVersion3::Version3,
signature,
nonce,
resource_bounds: resource_bounds.into(),
resource_bounds,
tip,
nonce_data_availability_mode,
fee_data_availability_mode,
Expand Down
6 changes: 3 additions & 3 deletions crates/papyrus_rpc/src/v0_6/transaction_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,10 @@ use super::{
InvokeTransactionV0,
InvokeTransactionV1,
InvokeTransactionV3,
ResourceBoundsMapping,
TransactionVersion0,
TransactionVersion1,
TransactionVersion3,
ValidResourceBounds,
};

lazy_static::lazy_static! {
Expand Down Expand Up @@ -83,7 +83,7 @@ auto_impl_get_test_instance! {
pub contract_address_salt: ContractAddressSalt,
pub constructor_calldata: Calldata,
pub version: TransactionVersion3,
pub resource_bounds: ResourceBoundsMapping,
pub resource_bounds: ValidResourceBounds,
pub tip: Tip,
pub paymaster_data: PaymasterData,
pub nonce_data_availability_mode: DataAvailabilityMode,
Expand Down Expand Up @@ -116,7 +116,7 @@ auto_impl_get_test_instance! {
pub version: TransactionVersion3,
pub signature: TransactionSignature,
pub nonce: Nonce,
pub resource_bounds: ResourceBoundsMapping,
pub resource_bounds: ValidResourceBounds,
pub tip: Tip,
pub paymaster_data: PaymasterData,
pub account_deployment_data: AccountDeploymentData,
Expand Down
4 changes: 2 additions & 2 deletions crates/papyrus_rpc/src/v0_7/api/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -551,7 +551,7 @@ impl From<DeployAccountTransaction> for starknet_api::transaction::DeployAccount
nonce_data_availability_mode,
fee_data_availability_mode,
}) => Self::V3(starknet_api::transaction::DeployAccountTransactionV3 {
resource_bounds: resource_bounds.into(),
resource_bounds,
tip,
signature,
nonce,
Expand Down Expand Up @@ -610,7 +610,7 @@ impl From<InvokeTransaction> for starknet_api::transaction::InvokeTransaction {
nonce_data_availability_mode,
fee_data_availability_mode,
}) => Self::V3(starknet_api::transaction::InvokeTransactionV3 {
resource_bounds: resource_bounds.into(),
resource_bounds,
tip,
signature,
nonce,
Expand Down
7 changes: 4 additions & 3 deletions crates/papyrus_rpc/src/v0_7/broadcasted_transaction.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,13 @@ use starknet_api::transaction::{
Tip,
TransactionSignature,
TransactionVersion,
ValidResourceBounds,
};
use starknet_client::writer::objects::transaction as client_transaction;
use starknet_client::writer::objects::transaction::DeprecatedContractClass;

use super::state::ContractClass;
use super::transaction::{DeployAccountTransaction, InvokeTransaction, ResourceBoundsMapping};
use super::transaction::{DeployAccountTransaction, InvokeTransaction};
use crate::compression_utils::compress_and_encode;

/// Transactions that are ready to be broadcasted to the network and are not included in a block.
Expand Down Expand Up @@ -106,7 +107,7 @@ pub struct BroadcastedDeclareV3Transaction {
pub signature: TransactionSignature,
pub nonce: Nonce,
pub contract_class: ContractClass,
pub resource_bounds: ResourceBoundsMapping,
pub resource_bounds: ValidResourceBounds,
pub tip: Tip,
pub paymaster_data: PaymasterData,
pub account_deployment_data: AccountDeploymentData,
Expand Down Expand Up @@ -174,7 +175,7 @@ impl TryFrom<BroadcastedDeclareTransaction> for client_transaction::DeclareTrans
.to_hash_map(),
abi: declare_v3.contract_class.abi,
},
resource_bounds: declare_v3.resource_bounds.into(),
resource_bounds: declare_v3.resource_bounds,
tip: declare_v3.tip,
signature: declare_v3.signature,
nonce: declare_v3.nonce,
Expand Down
10 changes: 2 additions & 8 deletions crates/papyrus_rpc/src/v0_7/broadcasted_transaction_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,9 @@ use starknet_api::transaction::{
AccountDeploymentData,
Fee,
PaymasterData,
ResourceBounds,
Tip,
TransactionSignature,
ValidResourceBounds,
};
use starknet_client::writer::objects::transaction::DeprecatedContractClass;
use starknet_types_core::felt::Felt;
Expand All @@ -37,7 +37,6 @@ use super::{
BroadcastedDeclareV2Transaction,
BroadcastedDeclareV3Transaction,
DeclareType,
ResourceBoundsMapping,
};
use crate::test_utils::{get_starknet_spec_api_schema_for_components, SpecFile};
use crate::version_config::VERSION_0_7 as Version;
Expand Down Expand Up @@ -82,7 +81,7 @@ auto_impl_get_test_instance! {
pub signature: TransactionSignature,
pub nonce: Nonce,
pub contract_class: ContractClass,
pub resource_bounds: ResourceBoundsMapping,
pub resource_bounds: ValidResourceBounds,
pub tip: Tip,
pub paymaster_data: PaymasterData,
pub account_deployment_data: AccountDeploymentData,
Expand All @@ -105,11 +104,6 @@ auto_impl_get_test_instance! {
pub enum DeclareType {
Declare = 0,
}

pub struct ResourceBoundsMapping {
pub l1_gas: ResourceBounds,
pub l2_gas: ResourceBounds,
}
}

#[test]
Expand Down
Loading

0 comments on commit 4a91b4e

Please sign in to comment.