Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

build(fee): remove resource mapping def from rpc 06 and 07 #557

Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading