diff --git a/Cargo.lock b/Cargo.lock index e67a19e77b..5d73704bc0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -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", ] diff --git a/cli/Cargo.toml b/cli/Cargo.toml index 83204aee52..631ce8c521 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -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" diff --git a/cli/src/cli.rs b/cli/src/cli.rs index 682834239e..305b7fc653 100644 --- a/cli/src/cli.rs +++ b/cli/src/cli.rs @@ -137,6 +137,8 @@ pub enum CliCommand { sort_order: CliValidatorsSortOrder, reverse_sort: bool, number_validators: bool, + keep_unstaked_delinquents: bool, + delinquent_slot_distance: Option, }, 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) diff --git a/cli/src/cluster_query.rs b/cli/src/cluster_query.rs index b68cb0aacf..df5ea83484 100644 --- a/cli/src/cluster_query.rs +++ b/cli/src/cluster_query.rs @@ -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 CliValidatorsSortOrder::Delinquent, @@ -637,6 +659,8 @@ pub fn parse_show_validators(matches: &ArgMatches<'_>) -> Result, ) -> 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 diff --git a/cli/src/lib.rs b/cli/src/lib.rs index 21596aa94c..252b152850 100644 --- a/cli/src/lib.rs +++ b/cli/src/lib.rs @@ -18,6 +18,9 @@ macro_rules! pubkey { }; } +#[macro_use] +extern crate const_format; + extern crate serde_derive; pub mod checks;