nym_cli_commands/validator/account/
create.rs

1// Copyright 2021 - Nym Technologies SA <contact@nymtech.net>
2// SPDX-License-Identifier: Apache-2.0
3
4use clap::Parser;
5use nym_validator_client::signing::direct_wallet::DirectSecp256k1HdWallet;
6use nym_validator_client::signing::signer::OfflineSigner;
7
8#[derive(Debug, Parser)]
9pub struct Args {
10    #[clap(long)]
11    // allowed values are 12, 18 or 24
12    pub word_count: Option<usize>,
13}
14
15pub fn create_account(args: Args, prefix: &str) {
16    let word_count = args.word_count.unwrap_or(24);
17    let mnemonic = bip39::Mnemonic::generate(word_count).expect("failed to generate mnemonic!");
18
19    let wallet = DirectSecp256k1HdWallet::checked_from_mnemonic(prefix, mnemonic)
20        .expect("failed to derive accounts!");
21
22    // Output address and mnemonics into separate lines for easier parsing
23    println!("{}", wallet.mnemonic_string().as_str());
24    println!("{}", wallet.signer_addresses()[0]);
25}