Files
nym/ephemera/src/cli/mod.rs
T
Bogdan-Ștefan Neacşu ee5b55fab6 Feature/ephemera (#3731)
* 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>
2023-08-18 14:14:13 +03:00

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(())
}
}