cli: allow returning more solana validators

This commit is contained in:
Trent Nelson 2021-07-13 00:10:10 -06:00 committed by mergify[bot]
parent bf90ea282a
commit a4a24b6531
5 changed files with 115 additions and 54 deletions

119
Cargo.lock generated
View File

@ -140,7 +140,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a3548b8efc9f8e8a5a0a2808c5bd8451a9031b9e5b879a79590304ae928b0a70"
dependencies = [
"proc-macro2 1.0.24",
"quote 1.0.6",
"quote 1.0.9",
"syn 1.0.67",
]
@ -151,7 +151,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b98e84bbb4cbcdd97da190ba0c58a1bb0de2c1fdf67d159e192ed766aeca722"
dependencies = [
"proc-macro2 1.0.24",
"quote 1.0.6",
"quote 1.0.9",
"syn 1.0.67",
]
@ -277,7 +277,7 @@ dependencies = [
"lazycell",
"peeking_take_while",
"proc-macro2 1.0.24",
"quote 1.0.6",
"quote 1.0.9",
"regex",
"rustc-hash",
"shlex",
@ -417,7 +417,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d2104c73179359431cc98e016998f2f23bc7a05bc53e79741bcba705f30047bc"
dependencies = [
"proc-macro2 1.0.24",
"quote 1.0.6",
"quote 1.0.9",
"syn 1.0.67",
]
@ -428,7 +428,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e321a130a3ac4b88eb59a6d670bde11eec9721a397b77e0f2079060e2a1b785"
dependencies = [
"proc-macro2 1.0.24",
"quote 1.0.6",
"quote 1.0.9",
"syn 1.0.67",
]
@ -439,7 +439,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ae29eb8418fcd46f723f8691a2ac06857d31179d33d2f2d91eb13967de97c728"
dependencies = [
"proc-macro2 1.0.24",
"quote 1.0.6",
"quote 1.0.9",
"syn 1.0.67",
]
@ -450,7 +450,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "15151a485164b319cc7a5160fe4316dc469a27993f71b73d7617dc9032ff0fd7"
dependencies = [
"proc-macro2 1.0.24",
"quote 1.0.6",
"quote 1.0.9",
"syn 1.0.67",
]
@ -718,7 +718,7 @@ dependencies = [
"heck",
"proc-macro-error",
"proc-macro2 1.0.24",
"quote 1.0.6",
"quote 1.0.9",
"syn 1.0.67",
]
@ -774,6 +774,26 @@ version = "0.4.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "28b9d6de7f49e22cf97ad17fc4036ece69300032f45f78f30b4a4482cdc3f4a6"
[[package]]
name = "const_format"
version = "0.2.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c75ea7d6aeb2ebd1ee24f7b7e1b23242ef5a56b3a693733b99bfbe5ef31d0306"
dependencies = [
"const_format_proc_macros",
]
[[package]]
name = "const_format_proc_macros"
version = "0.2.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "29c36c619c422113552db4eb28cddba8faa757e33f758cc3415bd2885977b591"
dependencies = [
"proc-macro2 1.0.24",
"quote 1.0.9",
"unicode-xid 0.2.0",
]
[[package]]
name = "constant_time_eq"
version = "0.1.5"
@ -1064,7 +1084,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cb582b60359da160a9477ee80f15c8d784c477e69c217ef2cdd4169c24ea380f"
dependencies = [
"proc-macro2 1.0.24",
"quote 1.0.6",
"quote 1.0.9",
"syn 1.0.67",
]
@ -1075,7 +1095,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "41cb0e6161ad61ed084a36ba71fbba9e3ac5aee3606fb607fe08da6acbcf3d8c"
dependencies = [
"proc-macro2 1.0.24",
"quote 1.0.6",
"quote 1.0.9",
"syn 1.0.67",
]
@ -1232,7 +1252,7 @@ checksum = "7260c7e6e656fc7702a1aa8d5b498a1a69aa84ac4ffcd5501b7d26939f368a93"
dependencies = [
"enum-ordinalize",
"proc-macro2 1.0.24",
"quote 1.0.6",
"quote 1.0.9",
"syn 1.0.67",
]
@ -1273,7 +1293,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e94aa31f7c0dc764f57896dc615ddd76fc13b0d5dca7eb6cc5e018a5a09ec06"
dependencies = [
"proc-macro2 1.0.24",
"quote 1.0.6",
"quote 1.0.9",
"syn 1.0.67",
]
@ -1286,7 +1306,7 @@ dependencies = [
"num-bigint",
"num-traits",
"proc-macro2 1.0.24",
"quote 1.0.6",
"quote 1.0.9",
"syn 1.0.67",
]
@ -1320,7 +1340,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4"
dependencies = [
"proc-macro2 1.0.24",
"quote 1.0.6",
"quote 1.0.9",
"syn 1.0.67",
"synstructure",
]
@ -1526,7 +1546,7 @@ dependencies = [
"autocfg 1.0.0",
"proc-macro-hack",
"proc-macro2 1.0.24",
"quote 1.0.6",
"quote 1.0.9",
"syn 1.0.67",
]
@ -2166,7 +2186,7 @@ checksum = "34f6326966ebac440db89eba788f5a0e5ac2614b4b4bfbdc049a971e71040f32"
dependencies = [
"proc-macro-crate",
"proc-macro2 1.0.24",
"quote 1.0.6",
"quote 1.0.9",
"syn 1.0.67",
]
@ -2689,7 +2709,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d"
dependencies = [
"proc-macro2 1.0.24",
"quote 1.0.6",
"quote 1.0.9",
"syn 1.0.67",
]
@ -2740,7 +2760,7 @@ checksum = "1c0fd9eba1d5db0994a239e09c1be402d35622277e35468ba891aa5e3188ce7e"
dependencies = [
"proc-macro-crate",
"proc-macro2 1.0.24",
"quote 1.0.6",
"quote 1.0.9",
"syn 1.0.67",
]
@ -2852,7 +2872,7 @@ dependencies = [
"Inflector",
"proc-macro-error",
"proc-macro2 1.0.24",
"quote 1.0.6",
"quote 1.0.9",
"syn 1.0.67",
]
@ -3060,7 +3080,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2c0e815c3ee9a031fdf5af21c10aa17c573c9c6a566328d99e3936c34e36461f"
dependencies = [
"proc-macro2 1.0.24",
"quote 1.0.6",
"quote 1.0.9",
"syn 1.0.67",
]
@ -3071,7 +3091,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "48c950132583b500556b1efd71d45b319029f2b71518d979fcc208e16b42426f"
dependencies = [
"proc-macro2 1.0.24",
"quote 1.0.6",
"quote 1.0.9",
"syn 1.0.67",
]
@ -3160,7 +3180,7 @@ checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
dependencies = [
"proc-macro-error-attr",
"proc-macro2 1.0.24",
"quote 1.0.6",
"quote 1.0.9",
"syn 1.0.67",
"version_check 0.9.2",
]
@ -3172,7 +3192,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
dependencies = [
"proc-macro2 1.0.24",
"quote 1.0.6",
"quote 1.0.9",
"version_check 0.9.2",
]
@ -3243,7 +3263,7 @@ dependencies = [
"anyhow",
"itertools 0.10.1",
"proc-macro2 1.0.24",
"quote 1.0.6",
"quote 1.0.9",
"syn 1.0.67",
]
@ -3277,9 +3297,9 @@ dependencies = [
[[package]]
name = "quote"
version = "1.0.6"
version = "1.0.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "54a21852a652ad6f610c9510194f398ff6f8692e334fd1145fed931f7fbe44ea"
checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7"
dependencies = [
"proc-macro2 1.0.24",
]
@ -3820,7 +3840,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e367622f934864ffa1c704ba2b82280aab856e3d8213c84c5720257eb34b15b9"
dependencies = [
"proc-macro2 1.0.24",
"quote 1.0.6",
"quote 1.0.9",
"syn 1.0.67",
]
@ -3916,7 +3936,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "963a7dbc9895aeac7ac90e74f34a5d5261828f79df35cbed41e10189d3804d43"
dependencies = [
"proc-macro2 1.0.24",
"quote 1.0.6",
"quote 1.0.9",
"syn 1.0.67",
]
@ -3984,7 +4004,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d08338d8024b227c62bd68a12c7c9883f5c66780abaef15c550dc56f46ee6515"
dependencies = [
"proc-macro2 1.0.24",
"quote 1.0.6",
"quote 1.0.9",
"syn 1.0.67",
]
@ -3995,7 +4015,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b2acd6defeddb41eb60bb468f8825d0cfd0c2a76bc03bfd235b6a1dc4f6a1ad5"
dependencies = [
"proc-macro2 1.0.24",
"quote 1.0.6",
"quote 1.0.9",
"syn 1.0.67",
]
@ -4405,6 +4425,7 @@ dependencies = [
"chrono",
"clap 2.33.3",
"console",
"const_format",
"criterion-stats",
"ctrlc",
"dirs-next",
@ -4731,7 +4752,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f2068bcc47160ac9081893439b10a05e4bbe85cc0f6bccb6f1b0815423fbdd0c"
dependencies = [
"proc-macro2 1.0.24",
"quote 1.0.6",
"quote 1.0.9",
"rustc_version 0.2.3",
"syn 1.0.67",
]
@ -4741,7 +4762,7 @@ name = "solana-frozen-abi-macro"
version = "1.8.0"
dependencies = [
"proc-macro2 1.0.24",
"quote 1.0.6",
"quote 1.0.9",
"rustc_version 0.4.0",
"syn 1.0.67",
]
@ -5473,7 +5494,7 @@ checksum = "6473d8fa445520564c84e8803320721404d160ffd876a125326a726541f11534"
dependencies = [
"bs58 0.3.1",
"proc-macro2 1.0.24",
"quote 1.0.6",
"quote 1.0.9",
"rustversion",
"syn 1.0.67",
]
@ -5484,7 +5505,7 @@ version = "1.8.0"
dependencies = [
"bs58 0.4.0",
"proc-macro2 1.0.24",
"quote 1.0.6",
"quote 1.0.9",
"rustversion",
"syn 1.0.67",
]
@ -5880,7 +5901,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c87a60a40fccc84bef0652345bbbbbe20a605bf5d0ce81719fc476f5c03b50ef"
dependencies = [
"proc-macro2 1.0.24",
"quote 1.0.6",
"quote 1.0.9",
"serde",
"serde_derive",
"syn 1.0.67",
@ -5894,7 +5915,7 @@ checksum = "58fa5ff6ad0d98d1ffa8cb115892b6e69d67799f6763e162a1c9db421dc22e11"
dependencies = [
"base-x",
"proc-macro2 1.0.24",
"quote 1.0.6",
"quote 1.0.9",
"serde",
"serde_derive",
"serde_json",
@ -5956,7 +5977,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6498a9efc342871f91cc2d0d694c674368b4ceb40f62b65a7a08c3792935e702"
dependencies = [
"proc-macro2 1.0.24",
"quote 1.0.6",
"quote 1.0.9",
"unicode-xid 0.2.0",
]
@ -5967,7 +5988,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "67656ea1dc1b41b1451851562ea232ec2e5a80242139f7e679ceccfb5d61f545"
dependencies = [
"proc-macro2 1.0.24",
"quote 1.0.6",
"quote 1.0.9",
"syn 1.0.67",
"unicode-xid 0.2.0",
]
@ -6048,7 +6069,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ea80818e6c75f81d961d7426c1b938cbea6b3a51533b5ee71b61f82166b7ef3d"
dependencies = [
"proc-macro2 1.0.24",
"quote 1.0.6",
"quote 1.0.9",
"syn 1.0.67",
]
@ -6119,7 +6140,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "060d69a0afe7796bf42e9e2ff91f5ee691fb15c53d38b4b62a9a53eb23164745"
dependencies = [
"proc-macro2 1.0.24",
"quote 1.0.6",
"quote 1.0.9",
"syn 1.0.67",
]
@ -6181,7 +6202,7 @@ checksum = "e5c3be1edfad6027c69f5491cf4cb310d1a71ecd6af742788c6ff8bced86b8fa"
dependencies = [
"proc-macro-hack",
"proc-macro2 1.0.24",
"quote 1.0.6",
"quote 1.0.9",
"standback",
"syn 1.0.67",
]
@ -6373,7 +6394,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e44da00bfc73a25f814cd8d7e57a68a5c31b74b3152a0a1d1f590c97ed06265a"
dependencies = [
"proc-macro2 1.0.24",
"quote 1.0.6",
"quote 1.0.9",
"syn 1.0.67",
]
@ -6384,7 +6405,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c49e3df43841dafb86046472506755d8501c5615673955f6aa17181125d13c37"
dependencies = [
"proc-macro2 1.0.24",
"quote 1.0.6",
"quote 1.0.9",
"syn 1.0.67",
]
@ -6629,7 +6650,7 @@ checksum = "25db9a497663a9a779693ef67b6e6aef8345b3d3ff8d50ef92eae6c88cb1e386"
dependencies = [
"proc-macro2 1.0.24",
"prost-build",
"quote 1.0.6",
"quote 1.0.9",
"syn 1.0.67",
]
@ -6685,7 +6706,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c42e6fa53307c8a17e4ccd4dc81cf5ec38db9209f59b222210375b54ee40d1e2"
dependencies = [
"proc-macro2 1.0.24",
"quote 1.0.6",
"quote 1.0.9",
"syn 1.0.67",
]
@ -7013,7 +7034,7 @@ dependencies = [
"lazy_static",
"log 0.4.14",
"proc-macro2 1.0.24",
"quote 1.0.6",
"quote 1.0.9",
"syn 1.0.67",
"wasm-bindgen-shared",
]
@ -7036,7 +7057,7 @@ version = "0.2.70"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3b8853882eef39593ad4174dd26fc9865a64e84026d223f63bb2c42affcbba2c"
dependencies = [
"quote 1.0.6",
"quote 1.0.9",
"wasm-bindgen-macro-support",
]
@ -7047,7 +7068,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4133b5e7f2a531fa413b3a1695e925038a05a71cf67e87dafa295cb645a01385"
dependencies = [
"proc-macro2 1.0.24",
"quote 1.0.6",
"quote 1.0.9",
"syn 1.0.67",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
@ -7250,7 +7271,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "de251eec69fc7c1bc3923403d18ececb929380e016afe103da75f396704f8ca2"
dependencies = [
"proc-macro2 1.0.24",
"quote 1.0.6",
"quote 1.0.9",
"syn 1.0.67",
"synstructure",
]

View File

@ -17,6 +17,7 @@ clap = "2.33.1"
criterion-stats = "0.3.0"
ctrlc = { version = "3.1.9", features = ["termination"] }
console = "0.14.1"
const_format = "0.2.14"
dirs-next = "2.0.0"
log = "0.4.14"
Inflector = "0.11.4"

View File

@ -137,6 +137,8 @@ pub enum CliCommand {
sort_order: CliValidatorsSortOrder,
reverse_sort: bool,
number_validators: bool,
keep_unstaked_delinquents: bool,
delinquent_slot_distance: Option<Slot>,
},
Supply {
print_accounts: bool,
@ -1397,6 +1399,8 @@ pub fn process_command(config: &CliConfig) -> ProcessResult {
sort_order,
reverse_sort,
number_validators,
keep_unstaked_delinquents,
delinquent_slot_distance,
} => process_show_validators(
&rpc_client,
config,
@ -1404,6 +1408,8 @@ pub fn process_command(config: &CliConfig) -> ProcessResult {
*sort_order,
*reverse_sort,
*number_validators,
*keep_unstaked_delinquents,
*delinquent_slot_distance,
),
CliCommand::Supply { print_accounts } => {
process_supply(&rpc_client, config, *print_accounts)

View File

@ -24,11 +24,12 @@ use solana_client::{
pubsub_client::PubsubClient,
rpc_client::{GetConfirmedSignaturesForAddress2Config, RpcClient},
rpc_config::{
RpcAccountInfoConfig, RpcBlockConfig, RpcLargestAccountsConfig, RpcLargestAccountsFilter,
RpcProgramAccountsConfig, RpcTransactionConfig, RpcTransactionLogsConfig,
RpcTransactionLogsFilter,
RpcAccountInfoConfig, RpcBlockConfig, RpcGetVoteAccountsConfig, RpcLargestAccountsConfig,
RpcLargestAccountsFilter, RpcProgramAccountsConfig, RpcTransactionConfig,
RpcTransactionLogsConfig, RpcTransactionLogsFilter,
},
rpc_filter,
rpc_request::DELINQUENT_VALIDATOR_SLOT_DISTANCE,
rpc_response::SlotInfo,
};
use solana_remote_wallet::remote_wallet::RemoteWalletManager;
@ -176,7 +177,7 @@ impl ClusterQuerySubCommands for App<'_, '_> {
.takes_value(true)
.value_name("EPOCH")
.validator(is_epoch)
.help("Epoch to show leader schedule for. (default: current)")
.help("Epoch to show leader schedule for. [default: current]")
)
)
.subcommand(
@ -382,6 +383,25 @@ impl ClusterQuerySubCommands for App<'_, '_> {
])
.default_value("stake")
.help("Sort order (does not affect JSON output)"),
)
.arg(
Arg::with_name("keep_unstaked_delinquents")
.long("keep-unstaked-delinquents")
.takes_value(false)
.help("Don't discard unstaked, delinquent validators")
)
.arg(
Arg::with_name("delinquent_slot_distance")
.long("delinquent-slot-distance")
.takes_value(true)
.value_name("SLOT_DISTANCE")
.validator(is_slot)
.help(
concatcp!(
"Minimum slot distance from the tip to consider a validator delinquent. [default: ",
DELINQUENT_VALIDATOR_SLOT_DISTANCE,
"]",
))
),
)
.subcommand(
@ -617,6 +637,8 @@ pub fn parse_show_validators(matches: &ArgMatches<'_>) -> Result<CliCommandInfo,
let use_lamports_unit = matches.is_present("lamports");
let number_validators = matches.is_present("number");
let reverse_sort = matches.is_present("reverse");
let keep_unstaked_delinquents = matches.is_present("keep_unstaked_delinquents");
let delinquent_slot_distance = value_of(matches, "delinquent_slot_distance");
let sort_order = match value_t_or_exit!(matches, "sort", String).as_str() {
"delinquent" => CliValidatorsSortOrder::Delinquent,
@ -637,6 +659,8 @@ pub fn parse_show_validators(matches: &ArgMatches<'_>) -> Result<CliCommandInfo,
sort_order,
reverse_sort,
number_validators,
keep_unstaked_delinquents,
delinquent_slot_distance,
},
signers: vec![],
})
@ -1790,11 +1814,17 @@ pub fn process_show_validators(
validators_sort_order: CliValidatorsSortOrder,
validators_reverse_sort: bool,
number_validators: bool,
keep_unstaked_delinquents: bool,
delinquent_slot_distance: Option<Slot>,
) -> ProcessResult {
let progress_bar = new_spinner_progress_bar();
progress_bar.set_message("Fetching vote accounts...");
let epoch_info = rpc_client.get_epoch_info()?;
let vote_accounts = rpc_client.get_vote_accounts()?;
let vote_accounts = rpc_client.get_vote_accounts_with_config(RpcGetVoteAccountsConfig {
keep_unstaked_delinquents: Some(keep_unstaked_delinquents),
delinquent_slot_distance,
..RpcGetVoteAccountsConfig::default()
})?;
progress_bar.set_message("Fetching block production...");
let skip_rate: HashMap<_, _> = rpc_client

View File

@ -18,6 +18,9 @@ macro_rules! pubkey {
};
}
#[macro_use]
extern crate const_format;
extern crate serde_derive;
pub mod checks;