From fcc87a66c9da6b7dd5f5d147931fadda62095499 Mon Sep 17 00:00:00 2001 From: godmodegalactus Date: Thu, 30 May 2024 14:24:18 +0200 Subject: [PATCH 1/8] removing default for scan config and replacing everywhere with new(true) --- accounts-db/benches/accounts.rs | 2 +- accounts-db/src/accounts.rs | 11 +++++--- accounts-db/src/accounts_db.rs | 16 ++++++------ accounts-db/src/accounts_index.rs | 36 +++++++++++++++------------ ledger-tool/src/main.rs | 6 ++--- ledger-tool/src/output.rs | 2 +- runtime/src/bank/tests.rs | 22 ++++++++-------- runtime/src/non_circulating_supply.rs | 2 +- 8 files changed, 52 insertions(+), 45 deletions(-) diff --git a/accounts-db/benches/accounts.rs b/accounts-db/benches/accounts.rs index 6c3f26ebfd3b41..cba062230bbf45 100644 --- a/accounts-db/benches/accounts.rs +++ b/accounts-db/benches/accounts.rs @@ -211,7 +211,7 @@ fn bench_concurrent_scan_write(bencher: &mut Bencher) { &Ancestors::default(), 0, AccountSharedData::default().owner(), - &ScanConfig::default(), + &ScanConfig::new(true), ) .unwrap(), ); diff --git a/accounts-db/src/accounts.rs b/accounts-db/src/accounts.rs index 49dbeca3437f61..951aca097f990b 100644 --- a/accounts-db/src/accounts.rs +++ b/accounts-db/src/accounts.rs @@ -287,7 +287,7 @@ impl Accounts { account_balances.push(Reverse((account.lamports(), *pubkey))); } }, - &ScanConfig::default(), + &ScanConfig::new(true), )?; Ok(account_balances .into_sorted_vec() @@ -493,7 +493,7 @@ impl Accounts { collector.push((*pubkey, account, slot)) } }, - &ScanConfig::default(), + &ScanConfig::new(true), ) .map(|_| collector) } @@ -508,7 +508,7 @@ impl Accounts { F: FnMut(Option<(&Pubkey, AccountSharedData, Slot)>), { self.accounts_db - .scan_accounts(ancestors, bank_id, scan_func, &ScanConfig::default()) + .scan_accounts(ancestors, bank_id, scan_func, &ScanConfig::new(true)) } pub fn hold_range_in_memory( @@ -2323,7 +2323,10 @@ mod tests { #[test] fn test_maybe_abort_scan() { - assert!(Accounts::maybe_abort_scan(ScanResult::Ok(vec![]), &ScanConfig::default()).is_ok()); + assert!(Accounts::maybe_abort_scan(ScanResult::Ok(vec![]), &ScanConfig::new(true)).is_ok()); + assert!( + Accounts::maybe_abort_scan(ScanResult::Ok(vec![]), &ScanConfig::new(false)).is_ok() + ); let config = ScanConfig::default().recreate_with_abort(); assert!(Accounts::maybe_abort_scan(ScanResult::Ok(vec![]), &config).is_ok()); config.abort(); diff --git a/accounts-db/src/accounts_db.rs b/accounts-db/src/accounts_db.rs index 245ca8c7b30284..d7d46be06f2227 100644 --- a/accounts-db/src/accounts_db.rs +++ b/accounts-db/src/accounts_db.rs @@ -11162,7 +11162,7 @@ pub mod tests { |_, account, _| { accounts.push(account.take_account()); }, - &ScanConfig::default(), + &ScanConfig::new(true), ); assert_eq!(accounts, vec![account1]); }); @@ -11894,7 +11894,7 @@ pub mod tests { |key, _| { found_accounts.insert(*key); }, - &ScanConfig::default(), + &ScanConfig::new(true), ) .unwrap(); assert_eq!(found_accounts.len(), 2); @@ -11916,7 +11916,7 @@ pub mod tests { |account| { found_accounts.insert(*account.unwrap().0); }, - &ScanConfig::default(), + &ScanConfig::new(true), ) .unwrap(); assert!(!used_index); @@ -11936,7 +11936,7 @@ pub mod tests { |account| { found_accounts.insert(*account.unwrap().0); }, - &ScanConfig::default(), + &ScanConfig::new(true), ) .unwrap(); assert!(used_index); @@ -11970,7 +11970,7 @@ pub mod tests { bank_id, IndexKey::SplTokenMint(mint_key), |key, _| found_accounts.push(*key), - &ScanConfig::default(), + &ScanConfig::new(true), ) .unwrap(); assert_eq!(found_accounts, vec![pubkey2]); @@ -12264,7 +12264,7 @@ pub mod tests { |_, account, _| { accounts.push(account.take_account()); }, - &ScanConfig::default(), + &ScanConfig::new(true), ); assert_eq!(accounts, vec![account0]); @@ -12276,7 +12276,7 @@ pub mod tests { |_, account, _| { accounts.push(account.take_account()); }, - &ScanConfig::default(), + &ScanConfig::new(true), ); assert_eq!(accounts.len(), 2); } @@ -14038,7 +14038,7 @@ pub mod tests { } } }, - &ScanConfig::default(), + &ScanConfig::new(true), ) .unwrap(); }) diff --git a/accounts-db/src/accounts_index.rs b/accounts-db/src/accounts_index.rs index bea586d762342f..3736f921215c7a 100644 --- a/accounts-db/src/accounts_index.rs +++ b/accounts-db/src/accounts_index.rs @@ -90,7 +90,7 @@ pub enum UpsertReclaim { IgnoreReclaims, } -#[derive(Debug, Default)] +#[derive(Debug)] pub struct ScanConfig { /// checked by the scan. When true, abort scan. pub abort: Option>, @@ -104,7 +104,7 @@ impl ScanConfig { pub fn new(collect_all_unsorted: bool) -> Self { Self { collect_all_unsorted, - ..ScanConfig::default() + abort: None, } } @@ -2111,7 +2111,7 @@ pub mod tests { "", &ancestors, |_pubkey, _index| num += 1, - &ScanConfig::default(), + &ScanConfig::new(true), ); assert_eq!(num, 0); } @@ -2240,7 +2240,7 @@ pub mod tests { "", &ancestors, |_pubkey, _index| num += 1, - &ScanConfig::default(), + &ScanConfig::new(true), ); assert_eq!(num, 0); } @@ -2310,7 +2310,7 @@ pub mod tests { "", &ancestors, |_pubkey, _index| num += 1, - &ScanConfig::default(), + &ScanConfig::new(true), ); assert_eq!(num, 0); ancestors.insert(slot, 0); @@ -2320,7 +2320,7 @@ pub mod tests { "", &ancestors, |_pubkey, _index| num += 1, - &ScanConfig::default(), + &ScanConfig::new(true), ); assert_eq!(num, 1); @@ -2344,7 +2344,7 @@ pub mod tests { "", &ancestors, |_pubkey, _index| num += 1, - &ScanConfig::default(), + &ScanConfig::new(true), ); assert_eq!(num, 0); ancestors.insert(slot, 0); @@ -2354,7 +2354,7 @@ pub mod tests { "", &ancestors, |_pubkey, _index| num += 1, - &ScanConfig::default(), + &ScanConfig::new(true), ); assert_eq!(num, 1); } @@ -2618,7 +2618,7 @@ pub mod tests { "", &ancestors, |_pubkey, _index| num += 1, - &ScanConfig::default(), + &ScanConfig::new(true), ); assert_eq!(num, 0); ancestors.insert(slot, 0); @@ -2627,7 +2627,7 @@ pub mod tests { "", &ancestors, |_pubkey, _index| num += 1, - &ScanConfig::default(), + &ScanConfig::new(true), ); assert_eq!(num, 1); } @@ -2657,7 +2657,7 @@ pub mod tests { "", &ancestors, |_pubkey, _index| num += 1, - &ScanConfig::default(), + &ScanConfig::new(true), ); assert_eq!(num, 0); } @@ -2799,7 +2799,7 @@ pub mod tests { }; num += 1 }, - &ScanConfig::default(), + &ScanConfig::new(true), ); assert_eq!(num, 1); assert!(found_key); @@ -2872,7 +2872,7 @@ pub mod tests { "", &ancestors, pubkey_range, - &ScanConfig::default(), + &ScanConfig::new(true), |pubkey, _index| { scanned_keys.insert(*pubkey); }, @@ -2951,7 +2951,7 @@ pub mod tests { |pubkey, _index| { scanned_keys.insert(*pubkey); }, - &ScanConfig::default(), + &ScanConfig::new(true), ); assert_eq!(scanned_keys.len(), num_pubkeys); } @@ -3261,7 +3261,7 @@ pub mod tests { }; num += 1 }, - &ScanConfig::default(), + &ScanConfig::new(true), ); assert_eq!(num, 1); assert!(found_key); @@ -4214,10 +4214,14 @@ pub mod tests { assert!(!config.is_aborted()); } - let config = ScanConfig::default(); + let config = ScanConfig::new(false); assert!(!config.collect_all_unsorted); assert!(config.abort.is_none()); + let config = ScanConfig::new(true); + assert!(config.collect_all_unsorted); + assert!(config.abort.is_none()); + let config = config.recreate_with_abort(); assert!(config.abort.is_some()); assert!(!config.is_aborted()); diff --git a/ledger-tool/src/main.rs b/ledger-tool/src/main.rs index 7a41758da291a0..eef2f66b536e3c 100644 --- a/ledger-tool/src/main.rs +++ b/ledger-tool/src/main.rs @@ -2032,7 +2032,7 @@ fn main() { if remove_stake_accounts { for (address, mut account) in bank - .get_program_accounts(&stake::program::id(), &ScanConfig::default()) + .get_program_accounts(&stake::program::id(), &ScanConfig::new(true)) .unwrap() .into_iter() { @@ -2082,7 +2082,7 @@ fn main() { if !vote_accounts_to_destake.is_empty() { for (address, mut account) in bank - .get_program_accounts(&stake::program::id(), &ScanConfig::default()) + .get_program_accounts(&stake::program::id(), &ScanConfig::new(true)) .unwrap() .into_iter() { @@ -2122,7 +2122,7 @@ fn main() { for (address, mut account) in bank .get_program_accounts( &solana_vote_program::id(), - &ScanConfig::default(), + &ScanConfig::new(true), ) .unwrap() .into_iter() diff --git a/ledger-tool/src/output.rs b/ledger-tool/src/output.rs index 3de08cec989806..db6a870966a779 100644 --- a/ledger-tool/src/output.rs +++ b/ledger-tool/src/output.rs @@ -676,7 +676,7 @@ impl AccountsScanner { }), AccountsOutputMode::Program(program_pubkey) => self .bank - .get_program_accounts(program_pubkey, &ScanConfig::default()) + .get_program_accounts(program_pubkey, &ScanConfig::new(true)) .unwrap() .iter() .filter(|(_, account)| self.should_process_account(account)) diff --git a/runtime/src/bank/tests.rs b/runtime/src/bank/tests.rs index a4e538b128b6dc..69959b669f9970 100644 --- a/runtime/src/bank/tests.rs +++ b/runtime/src/bank/tests.rs @@ -4378,13 +4378,13 @@ fn test_bank_get_program_accounts() { bank1.squash(); assert_eq!( bank0 - .get_program_accounts(&program_id, &ScanConfig::default(),) + .get_program_accounts(&program_id, &ScanConfig::new(true),) .unwrap(), vec![(pubkey0, account0.clone())] ); assert_eq!( bank1 - .get_program_accounts(&program_id, &ScanConfig::default(),) + .get_program_accounts(&program_id, &ScanConfig::new(true),) .unwrap(), vec![(pubkey0, account0)] ); @@ -4406,14 +4406,14 @@ fn test_bank_get_program_accounts() { bank3.squash(); assert_eq!( bank1 - .get_program_accounts(&program_id, &ScanConfig::default(),) + .get_program_accounts(&program_id, &ScanConfig::new(true),) .unwrap() .len(), 2 ); assert_eq!( bank3 - .get_program_accounts(&program_id, &ScanConfig::default(),) + .get_program_accounts(&program_id, &ScanConfig::new(true),) .unwrap() .len(), 2 @@ -4441,7 +4441,7 @@ fn test_get_filtered_indexed_accounts_limit_exceeded() { .get_filtered_indexed_accounts( &IndexKey::ProgramId(program_id), |_| true, - &ScanConfig::default(), + &ScanConfig::new(true), Some(limit), // limit here will be exceeded, resulting in aborted scan ) .is_err()); @@ -4467,7 +4467,7 @@ fn test_get_filtered_indexed_accounts() { .get_filtered_indexed_accounts( &IndexKey::ProgramId(program_id), |_| true, - &ScanConfig::default(), + &ScanConfig::new(true), None, ) .unwrap(); @@ -4485,7 +4485,7 @@ fn test_get_filtered_indexed_accounts() { .get_filtered_indexed_accounts( &IndexKey::ProgramId(program_id), |_| true, - &ScanConfig::default(), + &ScanConfig::new(true), None, ) .unwrap(); @@ -4495,7 +4495,7 @@ fn test_get_filtered_indexed_accounts() { .get_filtered_indexed_accounts( &IndexKey::ProgramId(another_program_id), |_| true, - &ScanConfig::default(), + &ScanConfig::new(true), None, ) .unwrap(); @@ -4507,7 +4507,7 @@ fn test_get_filtered_indexed_accounts() { .get_filtered_indexed_accounts( &IndexKey::ProgramId(program_id), |account| account.owner() == &program_id, - &ScanConfig::default(), + &ScanConfig::new(true), None, ) .unwrap(); @@ -4516,7 +4516,7 @@ fn test_get_filtered_indexed_accounts() { .get_filtered_indexed_accounts( &IndexKey::ProgramId(another_program_id), |account| account.owner() == &another_program_id, - &ScanConfig::default(), + &ScanConfig::new(true), None, ) .unwrap(); @@ -8361,7 +8361,7 @@ fn test_store_scan_consistency( { info!("scanning program accounts for slot {}", bank_to_scan.slot()); let accounts_result = - bank_to_scan.get_program_accounts(&program_id, &ScanConfig::default()); + bank_to_scan.get_program_accounts(&program_id, &ScanConfig::new(true)); let _ = scan_finished_sender.send(bank_to_scan.bank_id()); num_banks_scanned.fetch_add(1, Relaxed); match (&acceptable_scan_results, accounts_result.is_err()) { diff --git a/runtime/src/non_circulating_supply.rs b/runtime/src/non_circulating_supply.rs index 65bc4199481ed5..79a563f4995be9 100644 --- a/runtime/src/non_circulating_supply.rs +++ b/runtime/src/non_circulating_supply.rs @@ -26,7 +26,7 @@ pub fn calculate_non_circulating_supply(bank: &Bank) -> ScanResult Date: Thu, 30 May 2024 15:47:42 +0200 Subject: [PATCH 2/8] fixing missing ScanConfig::default --- accounts-db/src/accounts.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/accounts-db/src/accounts.rs b/accounts-db/src/accounts.rs index 951aca097f990b..1bcf1cb7c9c964 100644 --- a/accounts-db/src/accounts.rs +++ b/accounts-db/src/accounts.rs @@ -2327,7 +2327,7 @@ mod tests { assert!( Accounts::maybe_abort_scan(ScanResult::Ok(vec![]), &ScanConfig::new(false)).is_ok() ); - let config = ScanConfig::default().recreate_with_abort(); + let config = ScanConfig::new(false).recreate_with_abort(); assert!(Accounts::maybe_abort_scan(ScanResult::Ok(vec![]), &config).is_ok()); config.abort(); assert!(Accounts::maybe_abort_scan(ScanResult::Ok(vec![]), &config).is_err()); From e19eae82eeedb5b63eaf8b998afbdb3d7be3e2c7 Mon Sep 17 00:00:00 2001 From: godmodegalactus Date: Tue, 4 Jun 2024 10:39:01 +0200 Subject: [PATCH 3/8] Restoring default for ScanConfig with default value for collect unsorted true, Sort by default all the results for ledger tool --- accounts-db/benches/accounts.rs | 2 +- accounts-db/src/accounts.rs | 55 ++++++++++++++++-------- accounts-db/src/accounts_db.rs | 16 +++---- accounts-db/src/accounts_index.rs | 37 ++++++++++------ cli/src/cluster_query.rs | 1 + ledger-tool/src/main.rs | 6 +-- ledger-tool/src/output.rs | 4 +- rpc-client-api/src/config.rs | 1 + rpc-client/src/nonblocking/rpc_client.rs | 1 + rpc-client/src/rpc_client.rs | 1 + rpc/src/rpc.rs | 8 +++- runtime/src/bank.rs | 14 +++--- runtime/src/bank/tests.rs | 22 +++++----- runtime/src/non_circulating_supply.rs | 2 +- 14 files changed, 107 insertions(+), 63 deletions(-) diff --git a/accounts-db/benches/accounts.rs b/accounts-db/benches/accounts.rs index cba062230bbf45..6c3f26ebfd3b41 100644 --- a/accounts-db/benches/accounts.rs +++ b/accounts-db/benches/accounts.rs @@ -211,7 +211,7 @@ fn bench_concurrent_scan_write(bencher: &mut Bencher) { &Ancestors::default(), 0, AccountSharedData::default().owner(), - &ScanConfig::new(true), + &ScanConfig::default(), ) .unwrap(), ); diff --git a/accounts-db/src/accounts.rs b/accounts-db/src/accounts.rs index 1bcf1cb7c9c964..a793b8b4087b31 100644 --- a/accounts-db/src/accounts.rs +++ b/accounts-db/src/accounts.rs @@ -254,6 +254,7 @@ impl Accounts { num: usize, filter_by_address: &HashSet, filter: AccountAddressFilter, + sorted: bool, ) -> ScanResult> { if num == 0 { return Ok(vec![]); @@ -287,7 +288,7 @@ impl Accounts { account_balances.push(Reverse((account.lamports(), *pubkey))); } }, - &ScanConfig::new(true), + &ScanConfig::new(!sorted), )?; Ok(account_balances .into_sorted_vec() @@ -480,6 +481,7 @@ impl Accounts { &self, ancestors: &Ancestors, bank_id: BankId, + sorted: bool, ) -> ScanResult> { let mut collector = Vec::new(); self.accounts_db @@ -493,7 +495,7 @@ impl Accounts { collector.push((*pubkey, account, slot)) } }, - &ScanConfig::new(true), + &ScanConfig::new(!sorted), ) .map(|_| collector) } @@ -503,12 +505,13 @@ impl Accounts { ancestors: &Ancestors, bank_id: BankId, scan_func: F, + sorted: bool, ) -> ScanResult<()> where F: FnMut(Option<(&Pubkey, AccountSharedData, Slot)>), { self.accounts_db - .scan_accounts(ancestors, bank_id, scan_func, &ScanConfig::new(true)) + .scan_accounts(ancestors, bank_id, scan_func, &ScanConfig::new(!sorted)) } pub fn hold_range_in_memory( @@ -534,7 +537,7 @@ impl Accounts { "", // disable logging of this. We now parallelize it and this results in multiple parallel logs ancestors, range, - &ScanConfig::new(true), + &ScanConfig::default(), |option| Self::load_with_slot(&mut collector, option), ); collector @@ -2153,7 +2156,8 @@ mod tests { bank_id, 0, &HashSet::new(), - AccountAddressFilter::Exclude + AccountAddressFilter::Exclude, + false ) .unwrap(), vec![] @@ -2165,7 +2169,8 @@ mod tests { bank_id, 0, &all_pubkeys, - AccountAddressFilter::Include + AccountAddressFilter::Include, + false ) .unwrap(), vec![] @@ -2180,7 +2185,8 @@ mod tests { bank_id, 1, &HashSet::new(), - AccountAddressFilter::Exclude + AccountAddressFilter::Exclude, + false ) .unwrap(), vec![(pubkey1, 42)] @@ -2192,7 +2198,8 @@ mod tests { bank_id, 2, &HashSet::new(), - AccountAddressFilter::Exclude + AccountAddressFilter::Exclude, + false ) .unwrap(), vec![(pubkey1, 42), (pubkey0, 42)] @@ -2204,7 +2211,8 @@ mod tests { bank_id, 3, &HashSet::new(), - AccountAddressFilter::Exclude + AccountAddressFilter::Exclude, + false ) .unwrap(), vec![(pubkey1, 42), (pubkey0, 42), (pubkey2, 41)] @@ -2218,7 +2226,8 @@ mod tests { bank_id, 6, &HashSet::new(), - AccountAddressFilter::Exclude + AccountAddressFilter::Exclude, + false ) .unwrap(), vec![(pubkey1, 42), (pubkey0, 42), (pubkey2, 41)] @@ -2233,7 +2242,8 @@ mod tests { bank_id, 1, &exclude1, - AccountAddressFilter::Exclude + AccountAddressFilter::Exclude, + false ) .unwrap(), vec![(pubkey0, 42)] @@ -2245,7 +2255,8 @@ mod tests { bank_id, 2, &exclude1, - AccountAddressFilter::Exclude + AccountAddressFilter::Exclude, + false ) .unwrap(), vec![(pubkey0, 42), (pubkey2, 41)] @@ -2257,7 +2268,8 @@ mod tests { bank_id, 3, &exclude1, - AccountAddressFilter::Exclude + AccountAddressFilter::Exclude, + false ) .unwrap(), vec![(pubkey0, 42), (pubkey2, 41)] @@ -2272,7 +2284,8 @@ mod tests { bank_id, 1, &include1_2, - AccountAddressFilter::Include + AccountAddressFilter::Include, + false ) .unwrap(), vec![(pubkey1, 42)] @@ -2284,7 +2297,8 @@ mod tests { bank_id, 2, &include1_2, - AccountAddressFilter::Include + AccountAddressFilter::Include, + false ) .unwrap(), vec![(pubkey1, 42), (pubkey2, 41)] @@ -2296,7 +2310,8 @@ mod tests { bank_id, 3, &include1_2, - AccountAddressFilter::Include + AccountAddressFilter::Include, + false ) .unwrap(), vec![(pubkey1, 42), (pubkey2, 41)] @@ -2323,7 +2338,7 @@ mod tests { #[test] fn test_maybe_abort_scan() { - assert!(Accounts::maybe_abort_scan(ScanResult::Ok(vec![]), &ScanConfig::new(true)).is_ok()); + assert!(Accounts::maybe_abort_scan(ScanResult::Ok(vec![]), &ScanConfig::default()).is_ok()); assert!( Accounts::maybe_abort_scan(ScanResult::Ok(vec![]), &ScanConfig::new(false)).is_ok() ); @@ -2333,6 +2348,12 @@ mod tests { assert!(Accounts::maybe_abort_scan(ScanResult::Ok(vec![]), &config).is_err()); } + #[test] + fn test_defualt_for_scan_config() { + assert!(ScanConfig::default().collect_all_unsorted, true); + assert!(ScanConfig::default().abort, None); + } + #[test] fn test_accumulate_and_check_scan_result_size() { for (account, byte_limit_for_scan, result) in [ diff --git a/accounts-db/src/accounts_db.rs b/accounts-db/src/accounts_db.rs index d7d46be06f2227..245ca8c7b30284 100644 --- a/accounts-db/src/accounts_db.rs +++ b/accounts-db/src/accounts_db.rs @@ -11162,7 +11162,7 @@ pub mod tests { |_, account, _| { accounts.push(account.take_account()); }, - &ScanConfig::new(true), + &ScanConfig::default(), ); assert_eq!(accounts, vec![account1]); }); @@ -11894,7 +11894,7 @@ pub mod tests { |key, _| { found_accounts.insert(*key); }, - &ScanConfig::new(true), + &ScanConfig::default(), ) .unwrap(); assert_eq!(found_accounts.len(), 2); @@ -11916,7 +11916,7 @@ pub mod tests { |account| { found_accounts.insert(*account.unwrap().0); }, - &ScanConfig::new(true), + &ScanConfig::default(), ) .unwrap(); assert!(!used_index); @@ -11936,7 +11936,7 @@ pub mod tests { |account| { found_accounts.insert(*account.unwrap().0); }, - &ScanConfig::new(true), + &ScanConfig::default(), ) .unwrap(); assert!(used_index); @@ -11970,7 +11970,7 @@ pub mod tests { bank_id, IndexKey::SplTokenMint(mint_key), |key, _| found_accounts.push(*key), - &ScanConfig::new(true), + &ScanConfig::default(), ) .unwrap(); assert_eq!(found_accounts, vec![pubkey2]); @@ -12264,7 +12264,7 @@ pub mod tests { |_, account, _| { accounts.push(account.take_account()); }, - &ScanConfig::new(true), + &ScanConfig::default(), ); assert_eq!(accounts, vec![account0]); @@ -12276,7 +12276,7 @@ pub mod tests { |_, account, _| { accounts.push(account.take_account()); }, - &ScanConfig::new(true), + &ScanConfig::default(), ); assert_eq!(accounts.len(), 2); } @@ -14038,7 +14038,7 @@ pub mod tests { } } }, - &ScanConfig::new(true), + &ScanConfig::default(), ) .unwrap(); }) diff --git a/accounts-db/src/accounts_index.rs b/accounts-db/src/accounts_index.rs index 3736f921215c7a..73b9b1b3d6d72d 100644 --- a/accounts-db/src/accounts_index.rs +++ b/accounts-db/src/accounts_index.rs @@ -100,6 +100,15 @@ pub struct ScanConfig { pub collect_all_unsorted: bool, } +impl Default for ScanConfig { + fn default() -> Self { + Self { + abort: None, + collect_all_unsorted: true, + } + } +} + impl ScanConfig { pub fn new(collect_all_unsorted: bool) -> Self { Self { @@ -2111,7 +2120,7 @@ pub mod tests { "", &ancestors, |_pubkey, _index| num += 1, - &ScanConfig::new(true), + &ScanConfig::default(), ); assert_eq!(num, 0); } @@ -2240,7 +2249,7 @@ pub mod tests { "", &ancestors, |_pubkey, _index| num += 1, - &ScanConfig::new(true), + &ScanConfig::default(), ); assert_eq!(num, 0); } @@ -2310,7 +2319,7 @@ pub mod tests { "", &ancestors, |_pubkey, _index| num += 1, - &ScanConfig::new(true), + &ScanConfig::default(), ); assert_eq!(num, 0); ancestors.insert(slot, 0); @@ -2320,7 +2329,7 @@ pub mod tests { "", &ancestors, |_pubkey, _index| num += 1, - &ScanConfig::new(true), + &ScanConfig::default(), ); assert_eq!(num, 1); @@ -2344,7 +2353,7 @@ pub mod tests { "", &ancestors, |_pubkey, _index| num += 1, - &ScanConfig::new(true), + &ScanConfig::default(), ); assert_eq!(num, 0); ancestors.insert(slot, 0); @@ -2354,7 +2363,7 @@ pub mod tests { "", &ancestors, |_pubkey, _index| num += 1, - &ScanConfig::new(true), + &ScanConfig::default(), ); assert_eq!(num, 1); } @@ -2618,7 +2627,7 @@ pub mod tests { "", &ancestors, |_pubkey, _index| num += 1, - &ScanConfig::new(true), + &ScanConfig::default(), ); assert_eq!(num, 0); ancestors.insert(slot, 0); @@ -2627,7 +2636,7 @@ pub mod tests { "", &ancestors, |_pubkey, _index| num += 1, - &ScanConfig::new(true), + &ScanConfig::default(), ); assert_eq!(num, 1); } @@ -2657,7 +2666,7 @@ pub mod tests { "", &ancestors, |_pubkey, _index| num += 1, - &ScanConfig::new(true), + &ScanConfig::default(), ); assert_eq!(num, 0); } @@ -2799,7 +2808,7 @@ pub mod tests { }; num += 1 }, - &ScanConfig::new(true), + &ScanConfig::default(), ); assert_eq!(num, 1); assert!(found_key); @@ -2872,7 +2881,7 @@ pub mod tests { "", &ancestors, pubkey_range, - &ScanConfig::new(true), + &ScanConfig::default(), |pubkey, _index| { scanned_keys.insert(*pubkey); }, @@ -2951,7 +2960,7 @@ pub mod tests { |pubkey, _index| { scanned_keys.insert(*pubkey); }, - &ScanConfig::new(true), + &ScanConfig::default(), ); assert_eq!(scanned_keys.len(), num_pubkeys); } @@ -3261,7 +3270,7 @@ pub mod tests { }; num += 1 }, - &ScanConfig::new(true), + &ScanConfig::default(), ); assert_eq!(num, 1); assert!(found_key); @@ -4218,7 +4227,7 @@ pub mod tests { assert!(!config.collect_all_unsorted); assert!(config.abort.is_none()); - let config = ScanConfig::new(true); + let config = ScanConfig::default(); assert!(config.collect_all_unsorted); assert!(config.abort.is_none()); diff --git a/cli/src/cluster_query.rs b/cli/src/cluster_query.rs index 4893f3a791a82e..0a26dd14e7be66 100644 --- a/cli/src/cluster_query.rs +++ b/cli/src/cluster_query.rs @@ -1443,6 +1443,7 @@ pub fn process_largest_accounts( .get_largest_accounts_with_config(RpcLargestAccountsConfig { commitment: Some(config.commitment), filter, + sort_results: None, })? .value; let largest_accounts = CliAccountBalances { accounts }; diff --git a/ledger-tool/src/main.rs b/ledger-tool/src/main.rs index eef2f66b536e3c..2e0da8e18ded18 100644 --- a/ledger-tool/src/main.rs +++ b/ledger-tool/src/main.rs @@ -2032,7 +2032,7 @@ fn main() { if remove_stake_accounts { for (address, mut account) in bank - .get_program_accounts(&stake::program::id(), &ScanConfig::new(true)) + .get_program_accounts(&stake::program::id(), &ScanConfig::new(false)) .unwrap() .into_iter() { @@ -2082,7 +2082,7 @@ fn main() { if !vote_accounts_to_destake.is_empty() { for (address, mut account) in bank - .get_program_accounts(&stake::program::id(), &ScanConfig::new(true)) + .get_program_accounts(&stake::program::id(), &ScanConfig::new(false)) .unwrap() .into_iter() { @@ -2122,7 +2122,7 @@ fn main() { for (address, mut account) in bank .get_program_accounts( &solana_vote_program::id(), - &ScanConfig::new(true), + &ScanConfig::new(false), ) .unwrap() .into_iter() diff --git a/ledger-tool/src/output.rs b/ledger-tool/src/output.rs index db6a870966a779..d798976357c85b 100644 --- a/ledger-tool/src/output.rs +++ b/ledger-tool/src/output.rs @@ -656,7 +656,7 @@ impl AccountsScanner { match &self.config.mode { AccountsOutputMode::All => { - self.bank.scan_all_accounts(scan_func).unwrap(); + self.bank.scan_all_accounts(scan_func, true).unwrap(); } AccountsOutputMode::Individual(pubkeys) => pubkeys.iter().for_each(|pubkey| { if let Some((account, slot)) = self @@ -676,7 +676,7 @@ impl AccountsScanner { }), AccountsOutputMode::Program(program_pubkey) => self .bank - .get_program_accounts(program_pubkey, &ScanConfig::new(true)) + .get_program_accounts(program_pubkey, &ScanConfig::new(false)) .unwrap() .iter() .filter(|(_, account)| self.should_process_account(account)) diff --git a/rpc-client-api/src/config.rs b/rpc-client-api/src/config.rs index 9bf1819b32d0a2..db13ea1280d829 100644 --- a/rpc-client-api/src/config.rs +++ b/rpc-client-api/src/config.rs @@ -119,6 +119,7 @@ pub struct RpcLargestAccountsConfig { #[serde(flatten)] pub commitment: Option, pub filter: Option, + pub sort_results: Option, } #[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)] diff --git a/rpc-client/src/nonblocking/rpc_client.rs b/rpc-client/src/nonblocking/rpc_client.rs index fceb338e20756e..f6234e5367ccaf 100644 --- a/rpc-client/src/nonblocking/rpc_client.rs +++ b/rpc-client/src/nonblocking/rpc_client.rs @@ -2257,6 +2257,7 @@ impl RpcClient { /// let config = RpcLargestAccountsConfig { /// commitment: Some(commitment_config), /// filter: Some(RpcLargestAccountsFilter::Circulating), + /// sort_results: None, /// }; /// let accounts = rpc_client.get_largest_accounts_with_config( /// config, diff --git a/rpc-client/src/rpc_client.rs b/rpc-client/src/rpc_client.rs index 119039269a7bac..b8cbba11d1eebd 100644 --- a/rpc-client/src/rpc_client.rs +++ b/rpc-client/src/rpc_client.rs @@ -1872,6 +1872,7 @@ impl RpcClient { /// let config = RpcLargestAccountsConfig { /// commitment: Some(commitment_config), /// filter: Some(RpcLargestAccountsFilter::Circulating), + /// sort_results: None, /// }; /// let accounts = rpc_client.get_largest_accounts_with_config( /// config, diff --git a/rpc/src/rpc.rs b/rpc/src/rpc.rs index 52ba4010710cf6..43576811a92752 100644 --- a/rpc/src/rpc.rs +++ b/rpc/src/rpc.rs @@ -872,6 +872,7 @@ impl JsonRpcRequestProcessor { ) -> RpcCustomResult>> { let config = config.unwrap_or_default(); let bank = self.bank(config.commitment); + let sorted_results = config.sort_results.unwrap_or(true); if let Some((slot, accounts)) = self.get_cached_largest_accounts(&config.filter) { Ok(RpcResponse { @@ -896,7 +897,12 @@ impl JsonRpcRequestProcessor { (HashSet::new(), AccountAddressFilter::Exclude) }; let accounts = bank - .get_largest_accounts(NUM_LARGEST_ACCOUNTS, &addresses, address_filter) + .get_largest_accounts( + NUM_LARGEST_ACCOUNTS, + &addresses, + address_filter, + sorted_results, + ) .map_err(|e| RpcCustomError::ScanError { message: e.to_string(), })? diff --git a/runtime/src/bank.rs b/runtime/src/bank.rs index 87bfc34405d0d3..02b7e9abf2f4ee 100644 --- a/runtime/src/bank.rs +++ b/runtime/src/bank.rs @@ -5304,18 +5304,20 @@ impl Bank { } /// Returns all the accounts this bank can load - pub fn get_all_accounts(&self) -> ScanResult> { - self.rc.accounts.load_all(&self.ancestors, self.bank_id) + pub fn get_all_accounts(&self, sorted: bool) -> ScanResult> { + self.rc + .accounts + .load_all(&self.ancestors, self.bank_id, sorted) } // Scans all the accounts this bank can load, applying `scan_func` - pub fn scan_all_accounts(&self, scan_func: F) -> ScanResult<()> + pub fn scan_all_accounts(&self, scan_func: F, sorted: bool) -> ScanResult<()> where F: FnMut(Option<(&Pubkey, AccountSharedData, Slot)>), { self.rc .accounts - .scan_all(&self.ancestors, self.bank_id, scan_func) + .scan_all(&self.ancestors, self.bank_id, scan_func, sorted) } pub fn get_program_accounts_modified_since_parent( @@ -5361,6 +5363,7 @@ impl Bank { num: usize, filter_by_address: &HashSet, filter: AccountAddressFilter, + sorted: bool, ) -> ScanResult> { self.rc.accounts.load_largest_accounts( &self.ancestors, @@ -5368,6 +5371,7 @@ impl Bank { num, filter_by_address, filter, + sorted, ) } @@ -6643,7 +6647,7 @@ impl Bank { /// Get all the accounts for this bank and calculate stats pub fn get_total_accounts_stats(&self) -> ScanResult { - let accounts = self.get_all_accounts()?; + let accounts = self.get_all_accounts(false)?; Ok(self.calculate_total_accounts_stats( accounts .iter() diff --git a/runtime/src/bank/tests.rs b/runtime/src/bank/tests.rs index 69959b669f9970..a4e538b128b6dc 100644 --- a/runtime/src/bank/tests.rs +++ b/runtime/src/bank/tests.rs @@ -4378,13 +4378,13 @@ fn test_bank_get_program_accounts() { bank1.squash(); assert_eq!( bank0 - .get_program_accounts(&program_id, &ScanConfig::new(true),) + .get_program_accounts(&program_id, &ScanConfig::default(),) .unwrap(), vec![(pubkey0, account0.clone())] ); assert_eq!( bank1 - .get_program_accounts(&program_id, &ScanConfig::new(true),) + .get_program_accounts(&program_id, &ScanConfig::default(),) .unwrap(), vec![(pubkey0, account0)] ); @@ -4406,14 +4406,14 @@ fn test_bank_get_program_accounts() { bank3.squash(); assert_eq!( bank1 - .get_program_accounts(&program_id, &ScanConfig::new(true),) + .get_program_accounts(&program_id, &ScanConfig::default(),) .unwrap() .len(), 2 ); assert_eq!( bank3 - .get_program_accounts(&program_id, &ScanConfig::new(true),) + .get_program_accounts(&program_id, &ScanConfig::default(),) .unwrap() .len(), 2 @@ -4441,7 +4441,7 @@ fn test_get_filtered_indexed_accounts_limit_exceeded() { .get_filtered_indexed_accounts( &IndexKey::ProgramId(program_id), |_| true, - &ScanConfig::new(true), + &ScanConfig::default(), Some(limit), // limit here will be exceeded, resulting in aborted scan ) .is_err()); @@ -4467,7 +4467,7 @@ fn test_get_filtered_indexed_accounts() { .get_filtered_indexed_accounts( &IndexKey::ProgramId(program_id), |_| true, - &ScanConfig::new(true), + &ScanConfig::default(), None, ) .unwrap(); @@ -4485,7 +4485,7 @@ fn test_get_filtered_indexed_accounts() { .get_filtered_indexed_accounts( &IndexKey::ProgramId(program_id), |_| true, - &ScanConfig::new(true), + &ScanConfig::default(), None, ) .unwrap(); @@ -4495,7 +4495,7 @@ fn test_get_filtered_indexed_accounts() { .get_filtered_indexed_accounts( &IndexKey::ProgramId(another_program_id), |_| true, - &ScanConfig::new(true), + &ScanConfig::default(), None, ) .unwrap(); @@ -4507,7 +4507,7 @@ fn test_get_filtered_indexed_accounts() { .get_filtered_indexed_accounts( &IndexKey::ProgramId(program_id), |account| account.owner() == &program_id, - &ScanConfig::new(true), + &ScanConfig::default(), None, ) .unwrap(); @@ -4516,7 +4516,7 @@ fn test_get_filtered_indexed_accounts() { .get_filtered_indexed_accounts( &IndexKey::ProgramId(another_program_id), |account| account.owner() == &another_program_id, - &ScanConfig::new(true), + &ScanConfig::default(), None, ) .unwrap(); @@ -8361,7 +8361,7 @@ fn test_store_scan_consistency( { info!("scanning program accounts for slot {}", bank_to_scan.slot()); let accounts_result = - bank_to_scan.get_program_accounts(&program_id, &ScanConfig::new(true)); + bank_to_scan.get_program_accounts(&program_id, &ScanConfig::default()); let _ = scan_finished_sender.send(bank_to_scan.bank_id()); num_banks_scanned.fetch_add(1, Relaxed); match (&acceptable_scan_results, accounts_result.is_err()) { diff --git a/runtime/src/non_circulating_supply.rs b/runtime/src/non_circulating_supply.rs index 79a563f4995be9..65bc4199481ed5 100644 --- a/runtime/src/non_circulating_supply.rs +++ b/runtime/src/non_circulating_supply.rs @@ -26,7 +26,7 @@ pub fn calculate_non_circulating_supply(bank: &Bank) -> ScanResult Date: Tue, 4 Jun 2024 11:00:27 +0200 Subject: [PATCH 4/8] Fixing tests build --- accounts-db/src/accounts.rs | 3 +-- runtime/src/bank/tests.rs | 18 +++++++++--------- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/accounts-db/src/accounts.rs b/accounts-db/src/accounts.rs index a793b8b4087b31..12cddf6f9fa23a 100644 --- a/accounts-db/src/accounts.rs +++ b/accounts-db/src/accounts.rs @@ -2350,8 +2350,7 @@ mod tests { #[test] fn test_defualt_for_scan_config() { - assert!(ScanConfig::default().collect_all_unsorted, true); - assert!(ScanConfig::default().abort, None); + assert_eq!(ScanConfig::default().collect_all_unsorted, true); } #[test] diff --git a/runtime/src/bank/tests.rs b/runtime/src/bank/tests.rs index a4e538b128b6dc..d7fa26cae00658 100644 --- a/runtime/src/bank/tests.rs +++ b/runtime/src/bank/tests.rs @@ -4349,7 +4349,7 @@ fn test_bank_get_program_accounts() { let parent = Arc::new(Bank::new_for_tests(&genesis_config)); parent.restore_old_behavior_for_fragile_tests(); - let genesis_accounts: Vec<_> = parent.get_all_accounts().unwrap(); + let genesis_accounts: Vec<_> = parent.get_all_accounts(false).unwrap(); assert!( genesis_accounts .iter() @@ -9473,24 +9473,24 @@ fn test_get_largest_accounts() { // Return only one largest account assert_eq!( - bank.get_largest_accounts(1, &pubkeys_hashset, AccountAddressFilter::Include) + bank.get_largest_accounts(1, &pubkeys_hashset, AccountAddressFilter::Include, false) .unwrap(), vec![(pubkeys[4], sol_to_lamports(5.0))] ); assert_eq!( - bank.get_largest_accounts(1, &HashSet::new(), AccountAddressFilter::Exclude) + bank.get_largest_accounts(1, &HashSet::new(), AccountAddressFilter::Exclude, false) .unwrap(), vec![(pubkeys[4], sol_to_lamports(5.0))] ); assert_eq!( - bank.get_largest_accounts(1, &exclude4, AccountAddressFilter::Exclude) + bank.get_largest_accounts(1, &exclude4, AccountAddressFilter::Exclude, false) .unwrap(), vec![(pubkeys[3], sol_to_lamports(4.0))] ); // Return all added accounts let results = bank - .get_largest_accounts(10, &pubkeys_hashset, AccountAddressFilter::Include) + .get_largest_accounts(10, &pubkeys_hashset, AccountAddressFilter::Include, false) .unwrap(); assert_eq!(results.len(), sorted_accounts.len()); for pubkey_balance in sorted_accounts.iter() { @@ -9502,7 +9502,7 @@ fn test_get_largest_accounts() { let expected_accounts = sorted_accounts[1..].to_vec(); let results = bank - .get_largest_accounts(10, &exclude4, AccountAddressFilter::Exclude) + .get_largest_accounts(10, &exclude4, AccountAddressFilter::Exclude, false) .unwrap(); // results include 5 Bank builtins assert_eq!(results.len(), 10); @@ -9516,7 +9516,7 @@ fn test_get_largest_accounts() { // Return 3 added accounts let expected_accounts = sorted_accounts[0..4].to_vec(); let results = bank - .get_largest_accounts(4, &pubkeys_hashset, AccountAddressFilter::Include) + .get_largest_accounts(4, &pubkeys_hashset, AccountAddressFilter::Include, false) .unwrap(); assert_eq!(results.len(), expected_accounts.len()); for pubkey_balance in expected_accounts.iter() { @@ -9525,7 +9525,7 @@ fn test_get_largest_accounts() { let expected_accounts = expected_accounts[1..4].to_vec(); let results = bank - .get_largest_accounts(3, &exclude4, AccountAddressFilter::Exclude) + .get_largest_accounts(3, &exclude4, AccountAddressFilter::Exclude, false) .unwrap(); assert_eq!(results.len(), expected_accounts.len()); for pubkey_balance in expected_accounts.iter() { @@ -9538,7 +9538,7 @@ fn test_get_largest_accounts() { .cloned() .collect(); assert_eq!( - bank.get_largest_accounts(2, &exclude, AccountAddressFilter::Exclude) + bank.get_largest_accounts(2, &exclude, AccountAddressFilter::Exclude, false) .unwrap(), vec![pubkeys_balances[3], pubkeys_balances[1]] ); From 0fa047ee7d4b3d726c75ccdf8c357b1cbbafc19a Mon Sep 17 00:00:00 2001 From: godmodegalactus Date: Tue, 4 Jun 2024 11:58:48 +0200 Subject: [PATCH 5/8] fixing clippy and bench --- accounts-db/benches/accounts.rs | 1 + accounts-db/src/accounts.rs | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/accounts-db/benches/accounts.rs b/accounts-db/benches/accounts.rs index 6c3f26ebfd3b41..202a220e10e425 100644 --- a/accounts-db/benches/accounts.rs +++ b/accounts-db/benches/accounts.rs @@ -340,6 +340,7 @@ fn bench_load_largest_accounts(b: &mut Bencher) { 20, &HashSet::new(), AccountAddressFilter::Exclude, + false, ) }); } diff --git a/accounts-db/src/accounts.rs b/accounts-db/src/accounts.rs index 12cddf6f9fa23a..1845eaaa32ccac 100644 --- a/accounts-db/src/accounts.rs +++ b/accounts-db/src/accounts.rs @@ -2350,7 +2350,7 @@ mod tests { #[test] fn test_defualt_for_scan_config() { - assert_eq!(ScanConfig::default().collect_all_unsorted, true); + assert!(ScanConfig::default().collect_all_unsorted); } #[test] From d52f1bbc53ab3c2551d1691d63c9b6159eff3835 Mon Sep 17 00:00:00 2001 From: godmodegalactus Date: Thu, 13 Jun 2024 13:26:31 +0200 Subject: [PATCH 6/8] changed from sorted to sort_results, removed unwanted tests --- accounts-db/src/accounts.rs | 23 +++++++++++------------ accounts-db/src/accounts_index.rs | 2 +- runtime/src/bank.rs | 4 ++-- 3 files changed, 14 insertions(+), 15 deletions(-) diff --git a/accounts-db/src/accounts.rs b/accounts-db/src/accounts.rs index 1845eaaa32ccac..1d4086b0c652dc 100644 --- a/accounts-db/src/accounts.rs +++ b/accounts-db/src/accounts.rs @@ -254,7 +254,7 @@ impl Accounts { num: usize, filter_by_address: &HashSet, filter: AccountAddressFilter, - sorted: bool, + sort_results: bool, ) -> ScanResult> { if num == 0 { return Ok(vec![]); @@ -288,7 +288,7 @@ impl Accounts { account_balances.push(Reverse((account.lamports(), *pubkey))); } }, - &ScanConfig::new(!sorted), + &ScanConfig::new(!sort_results), )?; Ok(account_balances .into_sorted_vec() @@ -481,7 +481,7 @@ impl Accounts { &self, ancestors: &Ancestors, bank_id: BankId, - sorted: bool, + sort_results: bool, ) -> ScanResult> { let mut collector = Vec::new(); self.accounts_db @@ -495,7 +495,7 @@ impl Accounts { collector.push((*pubkey, account, slot)) } }, - &ScanConfig::new(!sorted), + &ScanConfig::new(!sort_results), ) .map(|_| collector) } @@ -505,13 +505,17 @@ impl Accounts { ancestors: &Ancestors, bank_id: BankId, scan_func: F, - sorted: bool, + sort_results: bool, ) -> ScanResult<()> where F: FnMut(Option<(&Pubkey, AccountSharedData, Slot)>), { - self.accounts_db - .scan_accounts(ancestors, bank_id, scan_func, &ScanConfig::new(!sorted)) + self.accounts_db.scan_accounts( + ancestors, + bank_id, + scan_func, + &ScanConfig::new(!sort_results), + ) } pub fn hold_range_in_memory( @@ -2348,11 +2352,6 @@ mod tests { assert!(Accounts::maybe_abort_scan(ScanResult::Ok(vec![]), &config).is_err()); } - #[test] - fn test_defualt_for_scan_config() { - assert!(ScanConfig::default().collect_all_unsorted); - } - #[test] fn test_accumulate_and_check_scan_result_size() { for (account, byte_limit_for_scan, result) in [ diff --git a/accounts-db/src/accounts_index.rs b/accounts-db/src/accounts_index.rs index 73b9b1b3d6d72d..607304789da809 100644 --- a/accounts-db/src/accounts_index.rs +++ b/accounts-db/src/accounts_index.rs @@ -113,7 +113,7 @@ impl ScanConfig { pub fn new(collect_all_unsorted: bool) -> Self { Self { collect_all_unsorted, - abort: None, + ..Default::default() } } diff --git a/runtime/src/bank.rs b/runtime/src/bank.rs index 02b7e9abf2f4ee..6115931671c31d 100644 --- a/runtime/src/bank.rs +++ b/runtime/src/bank.rs @@ -5304,10 +5304,10 @@ impl Bank { } /// Returns all the accounts this bank can load - pub fn get_all_accounts(&self, sorted: bool) -> ScanResult> { + pub fn get_all_accounts(&self, sort_results: bool) -> ScanResult> { self.rc .accounts - .load_all(&self.ancestors, self.bank_id, sorted) + .load_all(&self.ancestors, self.bank_id, sort_results) } // Scans all the accounts this bank can load, applying `scan_func` From 804a0d2d050693f8d4a7d422e83b2d8635f477ff Mon Sep 17 00:00:00 2001 From: godmodegalactus Date: Thu, 13 Jun 2024 13:32:19 +0200 Subject: [PATCH 7/8] renaming sorted_results to sort_results --- rpc/src/rpc.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rpc/src/rpc.rs b/rpc/src/rpc.rs index 43576811a92752..1d5d07d9136f40 100644 --- a/rpc/src/rpc.rs +++ b/rpc/src/rpc.rs @@ -872,7 +872,7 @@ impl JsonRpcRequestProcessor { ) -> RpcCustomResult>> { let config = config.unwrap_or_default(); let bank = self.bank(config.commitment); - let sorted_results = config.sort_results.unwrap_or(true); + let sort_results = config.sort_results.unwrap_or(true); if let Some((slot, accounts)) = self.get_cached_largest_accounts(&config.filter) { Ok(RpcResponse { @@ -901,7 +901,7 @@ impl JsonRpcRequestProcessor { NUM_LARGEST_ACCOUNTS, &addresses, address_filter, - sorted_results, + sort_results, ) .map_err(|e| RpcCustomError::ScanError { message: e.to_string(), From 527446665ba1f3a01594383f1c394de7c4e81377 Mon Sep 17 00:00:00 2001 From: godmodegalactus Date: Thu, 13 Jun 2024 17:03:41 +0200 Subject: [PATCH 8/8] update more sorted to sort_results --- runtime/src/bank.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/runtime/src/bank.rs b/runtime/src/bank.rs index 6115931671c31d..a9d3fd4ec1b930 100644 --- a/runtime/src/bank.rs +++ b/runtime/src/bank.rs @@ -5311,13 +5311,13 @@ impl Bank { } // Scans all the accounts this bank can load, applying `scan_func` - pub fn scan_all_accounts(&self, scan_func: F, sorted: bool) -> ScanResult<()> + pub fn scan_all_accounts(&self, scan_func: F, sort_results: bool) -> ScanResult<()> where F: FnMut(Option<(&Pubkey, AccountSharedData, Slot)>), { self.rc .accounts - .scan_all(&self.ancestors, self.bank_id, scan_func, sorted) + .scan_all(&self.ancestors, self.bank_id, scan_func, sort_results) } pub fn get_program_accounts_modified_since_parent( @@ -5363,7 +5363,7 @@ impl Bank { num: usize, filter_by_address: &HashSet, filter: AccountAddressFilter, - sorted: bool, + sort_results: bool, ) -> ScanResult> { self.rc.accounts.load_largest_accounts( &self.ancestors, @@ -5371,7 +5371,7 @@ impl Bank { num, filter_by_address, filter, - sorted, + sort_results, ) }