mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-13 09:21:05 +00:00
use clap3 instead of structopt (#10632)
* use clap3 instead of structopt Signed-off-by: koushiro <koushiro.cqx@gmail.com> * format Signed-off-by: koushiro <koushiro.cqx@gmail.com> * update ss58-registry and revert some nits Signed-off-by: koushiro <koushiro.cqx@gmail.com> * Fix clippy and doc Signed-off-by: koushiro <koushiro.cqx@gmail.com> * update clap to 3.0.7 Signed-off-by: koushiro <koushiro.cqx@gmail.com> * Apply review suggestions Signed-off-by: koushiro <koushiro.cqx@gmail.com> * remove useless option long name Signed-off-by: koushiro <koushiro.cqx@gmail.com> * cargo fmt Signed-off-by: koushiro <koushiro.cqx@gmail.com>
This commit is contained in:
@@ -21,10 +21,7 @@ scale-info = { version = "1.0", default-features = false, features = ["derive"]
|
||||
log = { version = "0.4.11", default-features = false }
|
||||
serde = { version = "1.0.132", optional = true, features = ["derive"] }
|
||||
byteorder = { version = "1.3.2", default-features = false }
|
||||
primitive-types = { version = "0.10.1", default-features = false, features = [
|
||||
"codec",
|
||||
"scale-info"
|
||||
] }
|
||||
primitive-types = { version = "0.10.1", default-features = false, features = ["codec", "scale-info"] }
|
||||
impl-serde = { version = "0.3.0", optional = true }
|
||||
wasmi = { version = "0.9.1", optional = true }
|
||||
hash-db = { version = "0.15.2", default-features = false }
|
||||
@@ -43,19 +40,14 @@ sp-std = { version = "4.0.0", default-features = false, path = "../std" }
|
||||
sp-debug-derive = { version = "4.0.0", default-features = false, path = "../debug-derive" }
|
||||
sp-storage = { version = "4.0.0", default-features = false, path = "../storage" }
|
||||
sp-externalities = { version = "0.10.0", optional = true, path = "../externalities" }
|
||||
parity-util-mem = { version = "0.10.2", default-features = false, features = [
|
||||
"primitive-types",
|
||||
] }
|
||||
parity-util-mem = { version = "0.10.2", default-features = false, features = ["primitive-types"] }
|
||||
futures = { version = "0.3.1", optional = true }
|
||||
dyn-clonable = { version = "0.9.0", optional = true }
|
||||
thiserror = { version = "1.0.30", optional = true }
|
||||
bitflags = "1.3"
|
||||
|
||||
# full crypto
|
||||
ed25519-dalek = { version = "1.0.1", default-features = false, features = [
|
||||
"u64_backend",
|
||||
"alloc",
|
||||
], optional = true }
|
||||
ed25519-dalek = { version = "1.0.1", default-features = false, features = ["u64_backend", "alloc"], optional = true }
|
||||
blake2-rfc = { version = "0.2.18", default-features = false, optional = true }
|
||||
tiny-keccak = { version = "2.0.1", features = ["keccak"], optional = true }
|
||||
schnorrkel = { version = "0.9.1", features = [
|
||||
@@ -67,7 +59,7 @@ hex = { version = "0.4", default-features = false, optional = true }
|
||||
twox-hash = { version = "1.6.2", default-features = false, optional = true }
|
||||
libsecp256k1 = { version = "0.7", default-features = false, features = ["hmac", "static-context"], optional = true }
|
||||
merlin = { version = "2.0", default-features = false, optional = true }
|
||||
ss58-registry = { version = "1.10.0", default-features = false }
|
||||
ss58-registry = { version = "1.11.0", default-features = false }
|
||||
sp-core-hashing = { version = "4.0.0", path = "./hashing", default-features = false, optional = true }
|
||||
sp-runtime-interface = { version = "4.1.0-dev", default-features = false, path = "../runtime-interface" }
|
||||
|
||||
|
||||
@@ -14,13 +14,14 @@ publish = false
|
||||
targets = ["x86_64-unknown-linux-gnu"]
|
||||
|
||||
[dependencies]
|
||||
clap = { version = "3.0", features = ["derive"] }
|
||||
honggfuzz = "0.5"
|
||||
rand = { version = "0.8", features = ["std", "small_rng"] }
|
||||
|
||||
codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"] }
|
||||
scale-info = { version = "1.0", default-features = false, features = ["derive"] }
|
||||
honggfuzz = "0.5"
|
||||
rand = { version = "0.7.3", features = ["std", "small_rng"] }
|
||||
sp-npos-elections = { version = "4.0.0-dev", path = ".." }
|
||||
sp-runtime = { version = "4.1.0-dev", path = "../../runtime" }
|
||||
structopt = "0.3.25"
|
||||
|
||||
[[bin]]
|
||||
name = "reduce"
|
||||
|
||||
@@ -68,7 +68,7 @@ pub fn generate_random_npos_inputs(
|
||||
|
||||
// always generate a sensible desired number of candidates: elections are uninteresting if we
|
||||
// desire 0 candidates, or a number of candidates >= the actual number of candidates present
|
||||
let rounds = rng.gen_range(1, candidate_count);
|
||||
let rounds = rng.gen_range(1..candidate_count);
|
||||
|
||||
// candidates are easy: just a completely random set of IDs
|
||||
let mut candidates: Vec<AccountId> = Vec::with_capacity(candidate_count);
|
||||
@@ -95,7 +95,7 @@ pub fn generate_random_npos_inputs(
|
||||
let vote_weight = rng.gen();
|
||||
|
||||
// it's not interesting if a voter chooses 0 or all candidates, so rule those cases out.
|
||||
let n_candidates_chosen = rng.gen_range(1, candidates.len());
|
||||
let n_candidates_chosen = rng.gen_range(1..candidates.len());
|
||||
|
||||
let mut chosen_candidates = Vec::with_capacity(n_candidates_chosen);
|
||||
chosen_candidates.extend(candidates.choose_multiple(&mut rng, n_candidates_chosen));
|
||||
@@ -132,25 +132,25 @@ pub fn generate_random_npos_result(
|
||||
|
||||
(1..=target_count).for_each(|acc| {
|
||||
candidates.push(acc);
|
||||
let stake_var = rng.gen_range(ed, 100 * ed);
|
||||
let stake_var = rng.gen_range(ed..100 * ed);
|
||||
stake_of.insert(acc, base_stake + stake_var);
|
||||
});
|
||||
|
||||
let mut voters = Vec::with_capacity(voter_count as usize);
|
||||
(prefix..=(prefix + voter_count)).for_each(|acc| {
|
||||
let edge_per_this_voter = rng.gen_range(1, candidates.len());
|
||||
let edge_per_this_voter = rng.gen_range(1..candidates.len());
|
||||
// all possible targets
|
||||
let mut all_targets = candidates.clone();
|
||||
// we remove and pop into `targets` `edge_per_this_voter` times.
|
||||
let targets = (0..edge_per_this_voter)
|
||||
.map(|_| {
|
||||
let upper = all_targets.len() - 1;
|
||||
let idx = rng.gen_range(0, upper);
|
||||
let idx = rng.gen_range(0..upper);
|
||||
all_targets.remove(idx)
|
||||
})
|
||||
.collect::<Vec<AccountId>>();
|
||||
|
||||
let stake_var = rng.gen_range(ed, 100 * ed);
|
||||
let stake_var = rng.gen_range(ed..100 * ed);
|
||||
let stake = base_stake + stake_var;
|
||||
stake_of.insert(acc, stake);
|
||||
voters.push((acc, stake, targets));
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
use honggfuzz::fuzz;
|
||||
|
||||
#[cfg(not(fuzzing))]
|
||||
use structopt::StructOpt;
|
||||
use clap::Parser;
|
||||
|
||||
mod common;
|
||||
use common::{generate_random_npos_inputs, to_range};
|
||||
@@ -67,24 +67,25 @@ fn main() {
|
||||
}
|
||||
|
||||
#[cfg(not(fuzzing))]
|
||||
#[derive(Debug, StructOpt)]
|
||||
#[derive(Debug, Parser)]
|
||||
#[clap(author, version, about)]
|
||||
struct Opt {
|
||||
/// How many candidates participate in this election
|
||||
#[structopt(short, long)]
|
||||
#[clap(short, long)]
|
||||
candidates: Option<usize>,
|
||||
|
||||
/// How many voters participate in this election
|
||||
#[structopt(short, long)]
|
||||
#[clap(short, long)]
|
||||
voters: Option<usize>,
|
||||
|
||||
/// Random seed to use in this election
|
||||
#[structopt(long)]
|
||||
#[clap(long)]
|
||||
seed: Option<u64>,
|
||||
}
|
||||
|
||||
#[cfg(not(fuzzing))]
|
||||
fn main() {
|
||||
let opt = Opt::from_args();
|
||||
let opt = Opt::parse();
|
||||
// candidates and voters by default use the maxima, which turn out to be one less than
|
||||
// the constant.
|
||||
iteration(
|
||||
|
||||
@@ -79,8 +79,7 @@ fn generate_random_phragmen_assignment(
|
||||
let mut targets_to_chose_from = all_targets.clone();
|
||||
let targets_to_chose = if edge_per_voter_var > 0 {
|
||||
rng.gen_range(
|
||||
avg_edge_per_voter - edge_per_voter_var,
|
||||
avg_edge_per_voter + edge_per_voter_var,
|
||||
avg_edge_per_voter - edge_per_voter_var..avg_edge_per_voter + edge_per_voter_var,
|
||||
)
|
||||
} else {
|
||||
avg_edge_per_voter
|
||||
@@ -89,11 +88,11 @@ fn generate_random_phragmen_assignment(
|
||||
let distribution = (0..targets_to_chose)
|
||||
.map(|_| {
|
||||
let target =
|
||||
targets_to_chose_from.remove(rng.gen_range(0, targets_to_chose_from.len()));
|
||||
targets_to_chose_from.remove(rng.gen_range(0..targets_to_chose_from.len()));
|
||||
if winners.iter().all(|w| *w != target) {
|
||||
winners.push(target.clone());
|
||||
}
|
||||
(target, rng.gen_range(1 * KSM, 100 * KSM))
|
||||
(target, rng.gen_range(1 * KSM..100 * KSM))
|
||||
})
|
||||
.collect::<Vec<(AccountId, ExtendedBalance)>>();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user