From 4635db73f184bed13e00e76d24ffebdeb6acb6a7 Mon Sep 17 00:00:00 2001 From: benedettadavico Date: Tue, 27 Aug 2024 16:20:44 +0200 Subject: [PATCH] update code and fmt again --- .../mixnode/settings/update_cost_params.rs | 34 ++++++++++++++----- .../mixnet/operators/mixnodes/settings/mod.rs | 2 +- 2 files changed, 27 insertions(+), 9 deletions(-) diff --git a/common/commands/src/validator/mixnet/operators/mixnode/settings/update_cost_params.rs b/common/commands/src/validator/mixnet/operators/mixnode/settings/update_cost_params.rs index 06cc022d52..e76bd0bdf3 100644 --- a/common/commands/src/validator/mixnet/operators/mixnode/settings/update_cost_params.rs +++ b/common/commands/src/validator/mixnet/operators/mixnode/settings/update_cost_params.rs @@ -24,7 +24,7 @@ pub struct Args { pub interval_operating_cost: Option, } -pub async fn update_cost_params(args: Args, client: SigningClient, mix_id: MixId) { +pub async fn update_cost_params(args: Args, client: SigningClient) { let denom = client.current_chain_details().mix_denom.base.as_str(); fn convert_to_percent(value: u64) -> Percent { @@ -33,17 +33,35 @@ pub async fn update_cost_params(args: Args, client: SigningClient, mix_id: MixId let default_profit_margin: Percent = convert_to_percent(20); - let profit_margin_percent = match client.get_mixnode_rewarding_details(mix_id).await { - Ok(details) => details - .rewarding_details - .map(|rd| rd.cost_params.profit_margin_percent) - .unwrap_or(default_profit_margin), + let mixownership_response = match client.get_owned_mixnode(&client.address()).await { + Ok(response) => response, Err(_) => { - eprintln!("Failed to obtain profit margin from node, using default value of 20%"); - default_profit_margin + eprintln!("Failed to obtain mixnode details"); + return; } }; + let mix_id = match mixownership_response.mixnode_details { + Some(details) => details.bond_information.mix_id, + None => { + eprintln!("No mixnode details found"); + return; + } + }; + + let rewarding_response = match client.get_mixnode_rewarding_details(mix_id).await { + Ok(details) => details, + Err(_) => { + eprintln!("Failed to obtain rewarding details"); + return; + } + }; + + let profit_margin_percent = rewarding_response + .rewarding_details + .map(|rd| rd.cost_params.profit_margin_percent) + .unwrap_or(default_profit_margin); + let profit_margin_value = args .profit_margin_percent .map(|pm| convert_to_percent(pm as u64)) diff --git a/tools/nym-cli/src/validator/mixnet/operators/mixnodes/settings/mod.rs b/tools/nym-cli/src/validator/mixnet/operators/mixnodes/settings/mod.rs index 8628e90c9e..a5d5c02883 100644 --- a/tools/nym-cli/src/validator/mixnet/operators/mixnodes/settings/mod.rs +++ b/tools/nym-cli/src/validator/mixnet/operators/mixnodes/settings/mod.rs @@ -14,7 +14,7 @@ pub(crate) async fn execute( nym_cli_commands::validator::mixnet::operators::mixnode::settings::update_config::update_config(args, create_signing_client(global_args, network_details)?).await } nym_cli_commands::validator::mixnet::operators::mixnode::settings::MixnetOperatorsMixnodeSettingsCommands::UpdateCostParameters(args) => { - nym_cli_commands::validator::mixnet::operators::mixnode::settings::update_cost_params::update_cost_params(args, create_signing_client(global_args, network_details), mix_id?).await + nym_cli_commands::validator::mixnet::operators::mixnode::settings::update_cost_params::update_cost_params(args, create_signing_client(global_args, network_details)?).await } _ => unreachable!(), }