diff --git a/Cargo.lock b/Cargo.lock index 77c5788d53..661e4b36f5 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.60", ] @@ -151,7 +151,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d3a45e77e34375a7923b1e8febb049bb011f064714a8e17a1a616fef01da13d" dependencies = [ "proc-macro2 1.0.24", - "quote 1.0.6", + "quote 1.0.9", "syn 1.0.60", ] @@ -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", @@ -405,7 +405,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d813fa25eb0bed78c36492cff4415f38c760d6de833d255ba9095bd8ebb7d725" dependencies = [ "proc-macro2 1.0.24", - "quote 1.0.6", + "quote 1.0.9", "syn 1.0.60", ] @@ -416,7 +416,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.60", ] @@ -427,7 +427,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dcf78ee4a98c8cb9eba1bac3d3e2a1ea3d7673c719ce691e67b5cbafc472d3b7" dependencies = [ "proc-macro2 1.0.24", - "quote 1.0.6", + "quote 1.0.9", "syn 1.0.60", ] @@ -438,7 +438,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.60", ] @@ -721,6 +721,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" @@ -1018,7 +1038,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.60", ] @@ -1029,7 +1049,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.60", ] @@ -1185,7 +1205,7 @@ checksum = "7260c7e6e656fc7702a1aa8d5b498a1a69aa84ac4ffcd5501b7d26939f368a93" dependencies = [ "enum-ordinalize", "proc-macro2 1.0.24", - "quote 1.0.6", + "quote 1.0.9", "syn 1.0.60", ] @@ -1226,7 +1246,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.60", ] @@ -1239,7 +1259,7 @@ dependencies = [ "num-bigint", "num-traits", "proc-macro2 1.0.24", - "quote 1.0.6", + "quote 1.0.9", "syn 1.0.60", ] @@ -1273,7 +1293,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.60", "synstructure", ] @@ -1472,7 +1492,7 @@ checksum = "77408a692f1f97bcc61dc001d752e00643408fbc922e4d634c655df50d595556" dependencies = [ "proc-macro-hack", "proc-macro2 1.0.24", - "quote 1.0.6", + "quote 1.0.9", "syn 1.0.60", ] @@ -2132,7 +2152,7 @@ checksum = "34f6326966ebac440db89eba788f5a0e5ac2614b4b4bfbdc049a971e71040f32" dependencies = [ "proc-macro-crate", "proc-macro2 1.0.24", - "quote 1.0.6", + "quote 1.0.9", "syn 1.0.60", ] @@ -2660,7 +2680,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f09b9841adb6b5e1f89ef7087ea636e0fd94b2851f887c1e3eb5d5f8228fab3" dependencies = [ "proc-macro2 1.0.24", - "quote 1.0.6", + "quote 1.0.9", "syn 1.0.60", ] @@ -2711,7 +2731,7 @@ checksum = "1c0fd9eba1d5db0994a239e09c1be402d35622277e35468ba891aa5e3188ce7e" dependencies = [ "proc-macro-crate", "proc-macro2 1.0.24", - "quote 1.0.6", + "quote 1.0.9", "syn 1.0.60", ] @@ -2801,7 +2821,7 @@ dependencies = [ "Inflector", "proc-macro-error", "proc-macro2 1.0.24", - "quote 1.0.6", + "quote 1.0.9", "syn 1.0.60", ] @@ -3018,7 +3038,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.60", ] @@ -3029,7 +3049,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81a4ffa594b66bff340084d4081df649a7dc049ac8d7fc458d8e628bfbbb2f86" dependencies = [ "proc-macro2 1.0.24", - "quote 1.0.6", + "quote 1.0.9", "syn 1.0.60", ] @@ -3118,7 +3138,7 @@ checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ "proc-macro-error-attr", "proc-macro2 1.0.24", - "quote 1.0.6", + "quote 1.0.9", "syn 1.0.60", "version_check 0.9.2", ] @@ -3130,7 +3150,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", ] @@ -3201,7 +3221,7 @@ dependencies = [ "anyhow", "itertools 0.10.1", "proc-macro2 1.0.24", - "quote 1.0.6", + "quote 1.0.9", "syn 1.0.60", ] @@ -3235,9 +3255,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", ] @@ -3743,7 +3763,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.60", ] @@ -3849,7 +3869,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.60", ] @@ -3906,7 +3926,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.60", ] @@ -4321,6 +4341,7 @@ dependencies = [ "chrono", "clap", "console 0.14.1", + "const_format", "criterion-stats", "ctrlc", "dirs-next", @@ -4664,7 +4685,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", "syn 1.0.60", ] @@ -4674,7 +4695,7 @@ name = "solana-frozen-abi-macro" version = "1.7.5" dependencies = [ "proc-macro2 1.0.24", - "quote 1.0.6", + "quote 1.0.9", "rustc_version", "syn 1.0.60", ] @@ -5407,7 +5428,7 @@ checksum = "6473d8fa445520564c84e8803320721404d160ffd876a125326a726541f11534" dependencies = [ "bs58", "proc-macro2 1.0.24", - "quote 1.0.6", + "quote 1.0.9", "rustversion", "syn 1.0.60", ] @@ -5418,7 +5439,7 @@ version = "1.7.5" dependencies = [ "bs58", "proc-macro2 1.0.24", - "quote 1.0.6", + "quote 1.0.9", "rustversion", "syn 1.0.60", ] @@ -5814,7 +5835,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.60", @@ -5828,7 +5849,7 @@ checksum = "58fa5ff6ad0d98d1ffa8cb115892b6e69d67799f6763e162a1c9db421dc22e11" dependencies = [ "base-x", "proc-macro2 1.0.24", - "quote 1.0.6", + "quote 1.0.9", "serde", "serde_derive", "serde_json", @@ -5884,7 +5905,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c700597eca8a5a762beb35753ef6b94df201c81cca676604f547495a0d7f0081" dependencies = [ "proc-macro2 1.0.24", - "quote 1.0.6", + "quote 1.0.9", "unicode-xid 0.2.0", ] @@ -5895,7 +5916,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.60", "unicode-xid 0.2.0", ] @@ -5968,7 +5989,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f3240378a22b1195734e085ba71d1d4188d50f034aea82635acc430b7005afb5" dependencies = [ "proc-macro2 1.0.24", - "quote 1.0.6", + "quote 1.0.9", "syn 1.0.60", ] @@ -6039,7 +6060,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9be73a2caec27583d0046ef3796c3794f868a5bc813db689eed00c7631275cd1" dependencies = [ "proc-macro2 1.0.24", - "quote 1.0.6", + "quote 1.0.9", "syn 1.0.60", ] @@ -6092,7 +6113,7 @@ checksum = "e5c3be1edfad6027c69f5491cf4cb310d1a71ecd6af742788c6ff8bced86b8fa" dependencies = [ "proc-macro-hack", "proc-macro2 1.0.24", - "quote 1.0.6", + "quote 1.0.9", "standback", "syn 1.0.60", ] @@ -6284,7 +6305,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.60", ] @@ -6295,7 +6316,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "54473be61f4ebe4efd09cec9bd5d16fa51d70ea0192213d754d2d500457db110" dependencies = [ "proc-macro2 1.0.24", - "quote 1.0.6", + "quote 1.0.9", "syn 1.0.60", ] @@ -6540,7 +6561,7 @@ checksum = "25db9a497663a9a779693ef67b6e6aef8345b3d3ff8d50ef92eae6c88cb1e386" dependencies = [ "proc-macro2 1.0.24", "prost-build", - "quote 1.0.6", + "quote 1.0.9", "syn 1.0.60", ] @@ -6595,7 +6616,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0693bf8d6f2bf22c690fc61a9d21ac69efdbb894a17ed596b9af0f01e64b84b" dependencies = [ "proc-macro2 1.0.24", - "quote 1.0.6", + "quote 1.0.9", "syn 1.0.60", ] @@ -6910,7 +6931,7 @@ dependencies = [ "lazy_static", "log 0.4.11", "proc-macro2 1.0.24", - "quote 1.0.6", + "quote 1.0.9", "syn 1.0.60", "wasm-bindgen-shared", ] @@ -6933,7 +6954,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", ] @@ -6944,7 +6965,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.60", "wasm-bindgen-backend", "wasm-bindgen-shared", @@ -7132,7 +7153,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.60", "synstructure", ] diff --git a/cli/Cargo.toml b/cli/Cargo.toml index 1604298a51..c4aeb8d01e 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.5", features = ["termination"] } console = "0.14.1" +const_format = "0.2.14" dirs-next = "2.0.0" log = "0.4.11" 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 e1c17c86d1..99a01c5ebd 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; diff --git a/client/src/rpc_config.rs b/client/src/rpc_config.rs index 5597384e30..9d236794e1 100644 --- a/client/src/rpc_config.rs +++ b/client/src/rpc_config.rs @@ -81,6 +81,8 @@ pub struct RpcGetVoteAccountsConfig { pub vote_pubkey: Option, // validator vote address, as a base-58 encoded string #[serde(flatten)] pub commitment: Option, + pub keep_unstaked_delinquents: Option, + pub delinquent_slot_distance: Option, } #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] diff --git a/docs/src/developing/clients/jsonrpc-api.md b/docs/src/developing/clients/jsonrpc-api.md index 7d256eb43a..092876c994 100644 --- a/docs/src/developing/clients/jsonrpc-api.md +++ b/docs/src/developing/clients/jsonrpc-api.md @@ -3028,6 +3028,8 @@ Returns the account info and associated stake for all the voting accounts in the - `` - (optional) Configuration object containing the following field: - (optional) [Commitment](jsonrpc-api.md#configuring-state-commitment) - (optional) `votePubkey: ` - Only return results for this validator vote address (base-58 encoded) + - (optional) `keepUnstakedDelinquents: ` - Do not filter out delinquent validators with no stake + - (optional) `delinquentSlotDistance: ` - Specify the number of slots behind the tip that a validator must fall to be considered delinquent. **NOTE:** For the sake of consistency between ecosystem products, _it is **not** recommended that this argument be specified._ #### Results: diff --git a/rpc/src/rpc.rs b/rpc/src/rpc.rs index 9de6785350..e67a984ce4 100644 --- a/rpc/src/rpc.rs +++ b/rpc/src/rpc.rs @@ -794,6 +794,9 @@ impl JsonRpcRequestProcessor { .epoch_vote_accounts(bank.get_epoch_and_slot_index(bank.slot()).0) .ok_or_else(Error::invalid_request)?; let default_vote_state = VoteState::default(); + let delinquent_validator_slot_distance = config + .delinquent_slot_distance + .unwrap_or(DELINQUENT_VALIDATOR_SLOT_DISTANCE); let (current_vote_accounts, delinquent_vote_accounts): ( Vec, Vec, @@ -837,22 +840,27 @@ impl JsonRpcRequestProcessor { }) }) .partition(|vote_account_info| { - if bank.slot() >= DELINQUENT_VALIDATOR_SLOT_DISTANCE as u64 { + if bank.slot() >= delinquent_validator_slot_distance as u64 { vote_account_info.last_vote - > bank.slot() - DELINQUENT_VALIDATOR_SLOT_DISTANCE as u64 + > bank.slot() - delinquent_validator_slot_distance as u64 } else { vote_account_info.last_vote > 0 } }); - let delinquent_staked_vote_accounts = delinquent_vote_accounts - .into_iter() - .filter(|vote_account_info| vote_account_info.activated_stake > 0) - .collect::>(); + let keep_unstaked_delinquents = config.keep_unstaked_delinquents.unwrap_or_default(); + let delinquent_vote_accounts = if !keep_unstaked_delinquents { + delinquent_vote_accounts + .into_iter() + .filter(|vote_account_info| vote_account_info.activated_stake > 0) + .collect::>() + } else { + delinquent_vote_accounts + }; Ok(RpcVoteAccountStatus { current: current_vote_accounts, - delinquent: delinquent_staked_vote_accounts, + delinquent: delinquent_vote_accounts, }) } @@ -6624,7 +6632,8 @@ pub mod tests { r#"{{"jsonrpc":"2.0","id":1,"method":"getVoteAccounts","params":{}}}"#, json!([RpcGetVoteAccountsConfig { vote_pubkey: Some(leader_vote_keypair.pubkey().to_string()), - commitment: Some(CommitmentConfig::processed()) + commitment: Some(CommitmentConfig::processed()), + ..RpcGetVoteAccountsConfig::default() }]) );