ee5b55fab6
* Feature/ephemera compile (#3437) * Include ephemera node code in repo * Upgrade deps * Bump minor version of cosmwasm-std * Include ephemera in nym-api dep and downgrade rusqlite * Fix clippy and ephemera docs code * More clippy on ephemera --------- Co-authored-by: Andrus Salumets <andrus@nymtech.net> * Start ephemera components in nym-api (#3475) * Start ephemera components in nym-api * Pass nyxd client and use common metric structures * Swap url endpoint with contract for sending rewarding messages * Fix build after rebase * Perform ephemera rewards computation before normal nym-api ones * Remove contract mock from ephemera * Take raw rewards from network monitor * Remove ephemera old reward version * Use nym shutdown procedure in ephemera * Temporary fix for some warnings * Umock contract membership of ephemera (#3574) * Pass nyxd client to members provider * Basic ephemera contract * Add register peer tx * Add query all peers * Nyxd ephemera client * Add registration of ephemera peer * Replace epoch http api with actual contract * Merge ephemera config into nym-api config * Load cluster from contract * Guard nym-outfox out of cosmwasm builds (#3650) * Feature/fixes while testing (#3668) * Commit local peer before querying contract * Default to anyonline * Remove string from template * Fix avg computing * Use updated qa env * Fix clippy * Add unit tests for ephemera contract * Upload ephemera contract in CI * Add group check for peer signup * Peer registration unit test * Start ephemera only on monitoring * Remove old MixnodeToReward struct * Move all ephemera config to its file * Skip with serde ephemera config * Fix default value in args * Feature/add ephemera flag (#3727) * Replace unwrap with error handling * Add ephemera enable flag * Fix template * Add json schema to ephemera contract (#3735) * Update lock files * Update changelog --------- Co-authored-by: Andrus Salumets <andrus@nymtech.net>
50 lines
1.3 KiB
Rust
50 lines
1.3 KiB
Rust
use crate::cli::crypto::GenerateKeypairCmd;
|
|
use clap::Parser;
|
|
|
|
pub mod config;
|
|
mod crypto;
|
|
pub mod init;
|
|
pub mod peers;
|
|
pub mod run_node;
|
|
|
|
pub const PEERS_CONFIG_FILE: &str = "peers.toml";
|
|
|
|
#[derive(Parser)]
|
|
#[command()]
|
|
pub struct Cli {
|
|
#[command(subcommand)]
|
|
pub subcommand: Subcommand,
|
|
}
|
|
|
|
#[derive(clap::Subcommand)]
|
|
pub enum Subcommand {
|
|
InitConfig(init::Cmd),
|
|
InitLocalPeersConfig(peers::CreateLocalPeersConfiguration),
|
|
RunNode(run_node::RunExternalNodeCmd),
|
|
GenerateKeypair(crypto::GenerateKeypairCmd),
|
|
UpdateConfig(config::UpdateConfigCmd),
|
|
}
|
|
|
|
impl Cli {
|
|
/// # Errors
|
|
/// Returns an error if the subcommand fails.
|
|
pub async fn execute(self) -> anyhow::Result<()> {
|
|
match self.subcommand {
|
|
Subcommand::InitConfig(init) => {
|
|
init.execute(None);
|
|
}
|
|
Subcommand::InitLocalPeersConfig(add_local_peers) => {
|
|
add_local_peers.execute();
|
|
}
|
|
Subcommand::RunNode(run_node) => run_node.execute().await?,
|
|
Subcommand::GenerateKeypair(_) => {
|
|
GenerateKeypairCmd::execute();
|
|
}
|
|
Subcommand::UpdateConfig(update_config) => {
|
|
update_config.execute();
|
|
}
|
|
}
|
|
Ok(())
|
|
}
|
|
}
|