unc_cli_rs/commands/extensions/
mod.rs

1use serde::Deserialize;
2use strum::{EnumDiscriminants, EnumIter, EnumMessage};
3
4pub mod register_rsa_keys;
5pub mod create_challenge_rsa;
6pub mod self_update;
7
8#[derive(Debug, Clone, interactive_clap::InteractiveClap)]
9#[interactive_clap(context = crate::GlobalContext)]
10pub struct ExtensionsCommands {
11    #[interactive_clap(subcommand)]
12    pub extensions_actions: ExtensionsActions,
13}
14
15#[derive(Debug, EnumDiscriminants, Clone, interactive_clap::InteractiveClap)]
16#[interactive_clap(context = crate::GlobalContext)]
17#[strum_discriminants(derive(EnumMessage, EnumIter))]
18#[non_exhaustive]
19/// What do you want to do with a unc CLI?
20pub enum ExtensionsActions {
21    #[strum_discriminants(strum(
22        message = "register-rsa-keys   - Register TPU rsa keys (root account only)"
23    ))]
24    RegisterRsaKeys(self::register_rsa_keys::RegisterRsaKeysCommand),
25
26    #[strum_discriminants(strum(
27        message = "create-challenge-rsa   - create challenge rsa keys (real miner account)"
28    ))]
29    CreateChallengeRsa(self::create_challenge_rsa::CreateChallengeRsaCommand),
30
31    #[strum_discriminants(strum(message = "self-update             - Self update unc CLI"))]
32    /// Self update unc CLI
33    SelfUpdate(self::self_update::SelfUpdateCommand),
34}
35
36#[derive(Debug, Deserialize)]
37pub struct Rsa2048KeyPair {
38    pub challenge_key: unc_crypto::PublicKey,
39    pub public_key: unc_crypto::PublicKey,
40}
41
42#[derive(Debug, Clone, Deserialize)]
43pub struct Miner {
44    pub miner_id: String,
45    pub public_key: unc_crypto::PublicKey,
46    pub power: u64,
47    pub sn: String,
48    pub bus_id: String,
49    pub p2key: String,
50}