Skip to content

Commit 9a9c250

Browse files
committed
fix: actually use already passed contract message arguments
1 parent 2004ce6 commit 9a9c250

File tree

3 files changed

+10
-8
lines changed

3 files changed

+10
-8
lines changed

crates/pop-cli/src/commands/call/contract.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use crate::{
66
builds::{ensure_project_path, get_project_path},
77
contracts::{
88
has_contract_been_built, map_account, normalize_call_args,
9-
request_contract_function_args,
9+
request_remaining_contract_function_args,
1010
},
1111
prompt::display_message,
1212
rpc::prompt_to_select_chain_rpc,
@@ -247,7 +247,7 @@ impl CallContractCommand {
247247

248248
fn configure_message(&mut self, message: &ContractFunction, cli: &mut impl Cli) -> Result<()> {
249249
// Resolve message arguments.
250-
self.args = request_contract_function_args(message, cli)?;
250+
self.args = request_remaining_contract_function_args(message, cli, &self.args)?;
251251

252252
// Resolve value.
253253
if message.payable && self.value == DEFAULT_PAYABLE_VALUE {

crates/pop-cli/src/commands/up/contract.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use crate::{
99
common::{
1010
contracts::{
1111
check_ink_node_and_prompt, has_contract_been_built, map_account, normalize_call_args,
12-
request_contract_function_args, terminate_nodes,
12+
request_remaining_contract_function_args, terminate_nodes,
1313
},
1414
rpc::prompt_to_select_chain_rpc,
1515
urls,
@@ -344,7 +344,7 @@ impl UpContractCommand {
344344
let function =
345345
extract_function(self.path.clone(), &self.constructor, FunctionType::Constructor)?;
346346
if self.args.is_empty() && !function.args.is_empty() {
347-
self.args = request_contract_function_args(&function, &mut Cli)?;
347+
self.args = request_remaining_contract_function_args(&function, &mut Cli, &self.args)?;
348348
}
349349
normalize_call_args(&mut self.args, &function);
350350
// Otherwise instantiate.

crates/pop-cli/src/common/contracts.rs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -108,15 +108,17 @@ pub fn has_contract_been_built(path: &Path) -> bool {
108108
/// # Arguments
109109
/// * `function` - The contract function containing argument definitions.
110110
/// * `cli` - Command line interface implementation for user interaction.
111+
/// * `current_args` - A vector of strings containing the user-provided argument values.
111112
///
112113
/// # Returns
113114
/// A vector of strings containing the user-provided argument values.
114-
pub fn request_contract_function_args(
115+
pub fn request_remaining_contract_function_args(
115116
function: &ContractFunction,
116117
cli: &mut impl Cli,
118+
current_args: &[String],
117119
) -> anyhow::Result<Vec<String>> {
118-
let mut user_provided_args = Vec::new();
119-
for arg in &function.args {
120+
let mut user_provided_args = current_args.to_vec();
121+
for arg in function.args.iter().skip(user_provided_args.len()) {
120122
let mut input = cli
121123
.input(format!("Enter the value for the parameter: {}", arg.label))
122124
.placeholder(&format!("Type required: {}", arg.type_name));
@@ -225,7 +227,7 @@ mod tests {
225227
"new",
226228
FunctionType::Constructor,
227229
)?;
228-
assert_eq!(request_contract_function_args(&function, &mut cli)?, vec!["true"]);
230+
assert_eq!(request_remaining_contract_function_args(&function, &mut cli)?, vec!["true"]);
229231
cli.verify()
230232
}
231233

0 commit comments

Comments
 (0)