Skip to content

Commit

Permalink
refactored ManageStorageDeposit
Browse files Browse the repository at this point in the history
  • Loading branch information
FroVolod committed Jun 29, 2023
1 parent 984a7b2 commit 8e19524
Show file tree
Hide file tree
Showing 5 changed files with 53 additions and 10 deletions.
14 changes: 14 additions & 0 deletions src/commands/account/storage_management/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ mod view_storage_balance;
#[interactive_clap(input_context = crate::GlobalContext)]
#[interactive_clap(output_context = ContractContext)]
pub struct Contract {
#[interactive_clap(skip_default_input_arg)]
/// Which contract account ID do you want to manage the storage deposit for?
contract_account_id: crate::types::account_id::AccountId,
#[interactive_clap(subcommand)]
Expand Down Expand Up @@ -41,6 +42,19 @@ pub type GetContractAccountId = std::sync::Arc<
) -> color_eyre::eyre::Result<near_primitives::types::AccountId>,
>;

impl Contract {
pub fn input_contract_account_id(
context: &crate::GlobalContext,
) -> color_eyre::eyre::Result<Option<crate::types::account_id::AccountId>> {
Ok(Some(
crate::common::input_account_id_from_used_account_list(
context,
"Which contract account ID do you want to manage the storage deposit for?",
)?,
))
}
}

#[derive(Debug, EnumDiscriminants, Clone, interactive_clap::InteractiveClap)]
#[interactive_clap(context = ContractContext)]
#[strum_discriminants(derive(EnumMessage, EnumIter))]
Expand Down
15 changes: 8 additions & 7 deletions src/commands/account/storage_management/storage_deposit.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
use std::str::FromStr;

use inquire::{CustomType, Select};
use inquire::Select;

#[derive(Debug, Clone, interactive_clap::InteractiveClap)]
#[interactive_clap(input_context = super::ContractContext)]
Expand Down Expand Up @@ -43,8 +43,10 @@ impl DepositArgs {
context: &super::ContractContext,
) -> color_eyre::eyre::Result<Option<crate::types::account_id::AccountId>> {
loop {
let receiver_account_id: crate::types::account_id::AccountId =
CustomType::new("Which account ID do you want to add a deposit to?").prompt()?;
let receiver_account_id = crate::common::input_account_id_from_used_account_list(
&context.global_context,
"Which account ID do you want to add a deposit to?",
)?;

if context.global_context.offline {
return Ok(Some(receiver_account_id));
Expand Down Expand Up @@ -163,11 +165,10 @@ impl SignerAccountId {
context: &DepositArgsContext,
) -> color_eyre::eyre::Result<Option<crate::types::account_id::AccountId>> {
Ok(Some(
CustomType::<crate::types::account_id::AccountId>::new(
crate::common::input_account_id_from_used_account_list(
&context.global_context,
"What is the signer account ID?",
)
.with_default(context.receiver_account_id.clone().into())
.prompt()?,
)?,
))
}
}
14 changes: 14 additions & 0 deletions src/commands/account/storage_management/storage_withdraw.rs
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ impl WithdrawArgsContext {
#[interactive_clap(input_context = WithdrawArgsContext)]
#[interactive_clap(output_context = SignerAccountIdContext)]
pub struct SignerAccountId {
#[interactive_clap(skip_default_input_arg)]
/// What is the signer account ID?
signer_account_id: crate::types::account_id::AccountId,
#[interactive_clap(named_arg)]
Expand Down Expand Up @@ -108,3 +109,16 @@ impl From<SignerAccountIdContext> for crate::commands::ActionContext {
item.0
}
}

impl SignerAccountId {
pub fn input_signer_account_id(
context: &WithdrawArgsContext,
) -> color_eyre::eyre::Result<Option<crate::types::account_id::AccountId>> {
Ok(Some(
crate::common::input_account_id_from_used_account_list(
&context.global_context,
"What is the signer account ID?",
)?,
))
}
}
14 changes: 14 additions & 0 deletions src/commands/account/storage_management/view_storage_balance.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ const STORAGE_COST_PER_BYTE: u128 = 10u128.pow(19);
#[interactive_clap(input_context = super::ContractContext)]
#[interactive_clap(output_context = AccountContext)]
pub struct Account {
#[interactive_clap(skip_default_input_arg)]
/// What is your account ID?
account_id: crate::types::account_id::AccountId,
#[interactive_clap(named_arg)]
Expand Down Expand Up @@ -78,3 +79,16 @@ impl From<AccountContext> for crate::network_view_at_block::ArgsForViewContext {
item.0
}
}

impl Account {
pub fn input_account_id(
context: &super::ContractContext,
) -> color_eyre::eyre::Result<Option<crate::types::account_id::AccountId>> {
Ok(Some(
crate::common::input_account_id_from_used_account_list(
&context.global_context,
"What is your account ID?",
)?,
))
}
}
6 changes: 3 additions & 3 deletions src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,9 @@ impl From<CmdContext> for crate::GlobalContext {
fn main() -> crate::common::CliResult {
let config = crate::common::get_config_toml()?;

if !crate::common::is_used_account_list_exist(&config.credentials_home_dir) {
crate::common::create_used_account_list_from_keychain(&config.credentials_home_dir)?;
}
// if !crate::common::is_used_account_list_exist(&config.credentials_home_dir) {
// crate::common::create_used_account_list_from_keychain(&config.credentials_home_dir)?;
// }

color_eyre::install()?;

Expand Down

0 comments on commit 8e19524

Please sign in to comment.