sysvar_cache.rs 564 B

12345678910111213141516171819
  1. use {
  2. solana_account::{Account, ReadableAccount},
  3. solana_program_runtime::sysvar_cache::SysvarCache,
  4. solana_pubkey::Pubkey,
  5. };
  6. pub fn setup_sysvar_cache(input_accounts: &[(Pubkey, Account)]) -> SysvarCache {
  7. let mut sysvar_cache = SysvarCache::default();
  8. sysvar_cache.fill_missing_entries(|pubkey, callbackback| {
  9. if let Some(account) = input_accounts.iter().find(|(key, _)| key == pubkey) {
  10. if account.1.lamports() > 0 {
  11. callbackback(account.1.data());
  12. }
  13. }
  14. });
  15. sysvar_cache
  16. }