Newer
Older
use sp_core::{sr25519::Pair, Pair as _};
use subxt::blocks::ExtrinsicEvents;
use subxt::tx::{BaseExtrinsicParamsBuilder, PairSigner, TxStatus};
#[clap(subcommand)]
pub subcommand: Subcommand,
#[clap(short, long)]
indexer: Option<String>,
/// Do not use indexer
#[clap(long)]
no_indexer: bool,
/// Secret key or BIP39 mnemonic
/// (eventually followed by derivation path)
#[clap(short, long)]
secret: Option<String>,
/// Secret key format (seed, substrate)
#[clap(short = 'S', long, default_value = SecretFormat::Substrate)]
secret_format: SecretFormat,
/// Address
#[clap(short, long)]
address: Option<String>,
/// Overwrite duniter websocket RPC endpoint
#[clap(short, long)]
url: Option<String>,
/// Chose target network
#[clap(short, long)]
network: Option<String>,
#[clap(hide = true)]
Repart {
// Number of transactions per block to target
target: u32,
#[clap(short = 'o', long = "old-repart")]
// Old/actual repartition
actual_repart: Option<u32>,
},
#[clap(hide = true)]
/// Check current block
CurrentBlock,
/// Account subcommands
#[clap(subcommand)]
Account(commands::account::Subcommand),
#[clap(subcommand)]
Identity(commands::identity::Subcommand),
/// Tech subcommands
#[clap(subcommand)]
Tech(commands::collective::Subcommand),
/// Universal Dividend subcommands
#[clap(subcommand)]
Ud(commands::ud::Subcommand),
/// Oneshot account subcommands
#[clap(subcommand)]
Oneshot(commands::oneshot::Subcommand),
Indexer(indexer::Subcommand),
/// Config subcommands
#[clap(subcommand)]
Config(conf::Subcommand),
match args.subcommand {
Subcommand::Repart {
target,
actual_repart,
} => {
data = data.build_client().await?;
commands::net_test::repart(
get_keys(
args.secret_format,
&args.address,
&args.secret,
NeededKeys::Secret,
)?
.1
.unwrap(),
target,
actual_repart,
)
.await?
}
Subcommand::SpamRoll { actual_repart } => {
data = data.build_client().await?;
commands::net_test::spam_roll(
get_keys(
args.secret_format,
&args.address,
&args.secret,
NeededKeys::Secret,
)?
.1
.unwrap(),
data = data.build_client().await?.fetch_system_properties().await?;
commands::runtime::runtime_info(data).await;
}
Subcommand::CurrentBlock => {
data = data.build_client().await?;
"current block on {}: {}",
data.cfg.duniter_endpoint,
data.client()
.storage()
.fetch(&runtime::storage().system().number(), None)
.await?
.unwrap()
);
}
Subcommand::Account(subcommand) => {
commands::account::handle_command(data, subcommand).await?
}
Subcommand::Identity(subcommand) => {
commands::identity::handle_command(data, subcommand).await?
}
Subcommand::Smith(subcommand) => commands::smith::handle_command(data, subcommand).await?,
Subcommand::Tech(subcommand) => {
commands::collective::handle_command(data, subcommand).await?
}
Subcommand::Ud(subcommand) => commands::ud::handle_command(data, subcommand).await?,
Subcommand::Oneshot(subcommand) => {
commands::oneshot::handle_command(data, subcommand).await?
}
Subcommand::Indexer(subcommand) => indexer::handle_command(data, subcommand).await?,
Subcommand::Config(subcommand) => conf::handle_command(data, subcommand)?,