diff --git a/crates/sncast/src/main.rs b/crates/sncast/src/main.rs index 1f80014308..d2704e24c8 100644 --- a/crates/sncast/src/main.rs +++ b/crates/sncast/src/main.rs @@ -291,7 +291,9 @@ async fn run_async_command(cli: Cli, config: CastConfig, ui: &UI) -> Result<()> .expect("Failed to build contract"); let result = starknet_commands::declare::declare( - &declare, + declare.contract_name.clone(), + declare.fee_args, + declare.nonce, &account, &artifacts, wait_config, @@ -315,7 +317,7 @@ async fn run_async_command(cli: Cli, config: CastConfig, ui: &UI) -> Result<()> let deploy_command_message = if let Ok(response) = &result { // TODO(#3785) let contract_artifacts = artifacts - .get(&declare.contract.clone()) + .get(&declare.contract_name) .expect("Failed to get contract artifacts"); let contract_definition: SierraClass = serde_json::from_str(&contract_artifacts.sierra) diff --git a/crates/sncast/src/starknet_commands/declare.rs b/crates/sncast/src/starknet_commands/declare.rs index 06b4171b9c..6456e8103f 100644 --- a/crates/sncast/src/starknet_commands/declare.rs +++ b/crates/sncast/src/starknet_commands/declare.rs @@ -31,8 +31,8 @@ use std::sync::Arc; #[command(about = "Declare a contract to starknet", long_about = None)] pub struct Declare { /// Contract name - #[arg(short = 'c', long = "contract-name")] - pub contract: String, + #[arg(short = 'c', long)] + pub contract_name: String, #[command(flatten)] pub fee_args: FeeArgs, @@ -50,8 +50,11 @@ pub struct Declare { } // TODO(#3785) +#[expect(clippy::too_many_arguments)] pub async fn declare( - declare: &Declare, + contract: String, + fee_args: FeeArgs, + nonce: Option, account: &SingleOwnerAccount<&JsonRpcClient, LocalWallet>, artifacts: &HashMap, wait_config: WaitForTx, @@ -60,9 +63,9 @@ pub async fn declare( ) -> Result { let contract_artifacts = artifacts - .get(&declare.contract) + .get(&contract) .ok_or(StarknetCommandError::ContractArtifactsNotFound(ErrorData { - data: ByteArray::from(declare.contract.as_str()), + data: ByteArray::from(contract.as_str()), }))?; let contract_definition: SierraClass = serde_json::from_str(&contract_artifacts.sierra) @@ -73,8 +76,8 @@ pub async fn declare( declare_with_artifacts( contract_definition, casm_contract_definition, - declare.fee_args.clone(), - declare.nonce, + fee_args.clone(), + nonce, account, wait_config, skip_on_already_declared, diff --git a/crates/sncast/src/starknet_commands/script/run.rs b/crates/sncast/src/starknet_commands/script/run.rs index 619979c06f..3a1c359026 100644 --- a/crates/sncast/src/starknet_commands/script/run.rs +++ b/crates/sncast/src/starknet_commands/script/run.rs @@ -1,4 +1,3 @@ -use crate::starknet_commands::declare::Declare; use crate::starknet_commands::{call, declare, deploy, invoke, tx_status}; use crate::{WaitForTx, get_account}; use anyhow::{Context, Result, anyhow}; @@ -127,14 +126,6 @@ impl<'a> ExtensionLogic for CastScriptExtension<'a> { let fee_args: FeeArgs = input_reader.read::()?.into(); let nonce = input_reader.read()?; - let declare = Declare { - contract: contract.clone(), - fee_args, - nonce, - package: None, - rpc: RpcArgs::default(), - }; - let declare_tx_id = generate_declare_tx_id(contract.as_str()); if let Some(success_output) = @@ -144,7 +135,9 @@ impl<'a> ExtensionLogic for CastScriptExtension<'a> { } let declare_result = self.tokio_runtime.block_on(declare::declare( - &declare, + contract.clone(), + fee_args, + nonce, self.account()?, self.artifacts, WaitForTx {