From dfd7bd5889fdedd525a85a89230e5593b2f565ba Mon Sep 17 00:00:00 2001 From: benedettadavico Date: Fri, 10 Mar 2023 17:10:01 +0100 Subject: [PATCH] adding pledge more --- .../src/validator/mixnet/delegators/mod.rs | 6 ++++ .../mixnet/delegators/pledge_more.rs | 29 ++++++++++++++++++ .../mixnet/delegators/vesting_pledge_more.rs | 30 +++++++++++++++++++ .../src/validator/mixnet/delegators/mod.rs | 6 ++++ 4 files changed, 71 insertions(+) create mode 100644 common/commands/src/validator/mixnet/delegators/pledge_more.rs create mode 100644 common/commands/src/validator/mixnet/delegators/vesting_pledge_more.rs diff --git a/common/commands/src/validator/mixnet/delegators/mod.rs b/common/commands/src/validator/mixnet/delegators/mod.rs index 61e87f119d..6acdfd1962 100644 --- a/common/commands/src/validator/mixnet/delegators/mod.rs +++ b/common/commands/src/validator/mixnet/delegators/mod.rs @@ -10,6 +10,8 @@ pub mod query_for_delegations; pub mod undelegate_from_mixnode; pub mod vesting_delegate_to_mixnode; pub mod vesting_undelegate_from_mixnode; +pub mod pledge_more; +pub mod vesting_pledge_more; #[derive(Debug, Args)] #[clap(args_conflicts_with_subcommands = true, subcommand_required = true)] @@ -32,4 +34,8 @@ pub enum MixnetDelegatorsCommands { DelegateVesting(vesting_delegate_to_mixnode::Args), /// Undelegate from a mixnode (when originally using locked tokens) UndelegateVesting(vesting_undelegate_from_mixnode::Args), + /// Pledge more + PledgeMore(pledge_more::Args), + /// Pledge more with locked tokens + PledgeMoreVesting(vesting_pledge_more::Args), } diff --git a/common/commands/src/validator/mixnet/delegators/pledge_more.rs b/common/commands/src/validator/mixnet/delegators/pledge_more.rs new file mode 100644 index 0000000000..7270295019 --- /dev/null +++ b/common/commands/src/validator/mixnet/delegators/pledge_more.rs @@ -0,0 +1,29 @@ +// Copyright 2021 - Nym Technologies SA +// SPDX-License-Identifier: Apache-2.0 + +use crate::context::SigningClient; +use clap::Parser; +use log::info; +use nym_mixnet_contract_common::{Coin}; +use validator_client::nyxd::traits::{MixnetSigningClient}; + +#[derive(Debug, Parser)] +pub struct Args { + #[clap(long)] + pub amount: u128, +} + +pub async fn pledge_more(args: Args, client: SigningClient) { + let denom = client.current_chain_details().mix_denom.base.as_str(); + + info!("Starting to pledge more"); + + let coin = Coin::new(args.amount, denom); + + let res = client + .pledge_more( coin.into(), None) + .await + .expect("failed to pledge more!"); + + info!("pledging more: {:?}", res); +} diff --git a/common/commands/src/validator/mixnet/delegators/vesting_pledge_more.rs b/common/commands/src/validator/mixnet/delegators/vesting_pledge_more.rs new file mode 100644 index 0000000000..cf9c1042bd --- /dev/null +++ b/common/commands/src/validator/mixnet/delegators/vesting_pledge_more.rs @@ -0,0 +1,30 @@ +// Copyright 2021 - Nym Technologies SA +// SPDX-License-Identifier: Apache-2.0 + +use clap::Parser; +use log::info; +use nym_mixnet_contract_common::{Coin}; +use validator_client::nyxd::VestingSigningClient; + +use crate::context::SigningClient; + +#[derive(Debug, Parser)] +pub struct Args { + #[clap(long)] + pub amount: u128, +} + +pub async fn vesting_pledge_more(args: Args, client: SigningClient) { + let denom = client.current_chain_details().mix_denom.base.as_str(); + + info!("Starting vesting pledge more"); + + let coin = Coin::new(args.amount, denom); + + let res = client + .vesting_pledge_more(coin.into(), None) + .await + .expect("failed to pledge more!"); + + info!("vesting pledge more: {:?}", res); +} diff --git a/tools/nym-cli/src/validator/mixnet/delegators/mod.rs b/tools/nym-cli/src/validator/mixnet/delegators/mod.rs index 76776b1146..30222de4c8 100644 --- a/tools/nym-cli/src/validator/mixnet/delegators/mod.rs +++ b/tools/nym-cli/src/validator/mixnet/delegators/mod.rs @@ -20,6 +20,12 @@ pub(crate) async fn execute( nym_cli_commands::validator::mixnet::delegators::MixnetDelegatorsCommands::Delegate(args) => { nym_cli_commands::validator::mixnet::delegators::delegate_to_mixnode::delegate_to_mixnode(args, create_signing_client(global_args, network_details)?).await } + nym_cli_commands::validator::mixnet::delegators::MixnetDelegatorsCommands::PledgeMore(args) => { + nym_cli_commands::validator::mixnet::delegators::pledge_more::pledge_more(args, create_signing_client(global_args, network_details)?).await + } + nym_cli_commands::validator::mixnet::delegators::MixnetDelegatorsCommands::PledgeMoreVesting(args) => { + nym_cli_commands::validator::mixnet::delegators::vesting_pledge_more::vesting_pledge_more(args, create_signing_client(global_args, network_details)?).await + } nym_cli_commands::validator::mixnet::delegators::MixnetDelegatorsCommands::Undelegate(args) => { nym_cli_commands::validator::mixnet::delegators::undelegate_from_mixnode::undelegate_from_mixnode(args, create_signing_client(global_args, network_details)?).await }