Skip to content

Commit

Permalink
remove ReadableAccount trait from LoadedAccount (#692)
Browse files Browse the repository at this point in the history
  • Loading branch information
jeffwashington committed Apr 10, 2024
1 parent 0c5d56b commit 4535ea6
Showing 1 changed file with 18 additions and 19 deletions.
37 changes: 18 additions & 19 deletions accounts-db/src/accounts_db.rs
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ use {
solana_nohash_hasher::{IntMap, IntSet},
solana_rayon_threadlimit::get_thread_count,
solana_sdk::{
account::{Account, AccountSharedData, ReadableAccount, WritableAccount},
account::{Account, AccountSharedData, ReadableAccount},
clock::{BankId, Epoch, Slot},
epoch_schedule::EpochSchedule,
genesis_config::{ClusterType, GenesisConfig},
Expand Down Expand Up @@ -942,9 +942,7 @@ impl<'a> LoadedAccount<'a> {
pub fn data_len(&self) -> usize {
self.data().len()
}
}

impl<'a> ReadableAccount for LoadedAccount<'a> {
fn lamports(&self) -> u64 {
match self {
LoadedAccount::Stored(stored_account_meta) => stored_account_meta.lamports(),
Expand All @@ -958,7 +956,7 @@ impl<'a> ReadableAccount for LoadedAccount<'a> {
LoadedAccount::Cached(cached_account) => cached_account.account.data(),
}
}
fn owner(&self) -> &Pubkey {
pub(crate) fn owner(&self) -> &Pubkey {
match self {
LoadedAccount::Stored(stored_account_meta) => stored_account_meta.owner(),
LoadedAccount::Cached(cached_account) => cached_account.account.owner(),
Expand All @@ -976,19 +974,6 @@ impl<'a> ReadableAccount for LoadedAccount<'a> {
LoadedAccount::Cached(cached_account) => cached_account.account.rent_epoch(),
}
}
fn to_account_shared_data(&self) -> AccountSharedData {
match self {
LoadedAccount::Stored(_stored_account_meta) => AccountSharedData::create(
self.lamports(),
self.data().to_vec(),
*self.owner(),
self.executable(),
self.rent_epoch(),
),
// clone here to prevent data copy
LoadedAccount::Cached(cached_account) => cached_account.account.clone(),
}
}
}

#[derive(Debug)]
Expand Down Expand Up @@ -2266,7 +2251,14 @@ impl<'a> AppendVecScan for ScanState<'a> {

let hash_is_missing = loaded_hash == AccountHash(Hash::default());
if self.config.check_hash || hash_is_missing {
let computed_hash = AccountsDb::hash_account(loaded_account, loaded_account.pubkey());
let computed_hash = AccountsDb::hash_account_data(
loaded_account.lamports(),
loaded_account.owner(),
loaded_account.executable(),
loaded_account.rent_epoch(),
loaded_account.data(),
loaded_account.pubkey(),
);
if hash_is_missing {
loaded_hash = computed_hash;
} else if self.config.check_hash && computed_hash != loaded_hash {
Expand Down Expand Up @@ -6624,7 +6616,14 @@ impl AccountsDb {
let balance = loaded_account.lamports();
let hash_is_missing = loaded_hash == AccountHash(Hash::default());
if config.check_hash || hash_is_missing {
let computed_hash = AccountsDb::hash_account(&loaded_account, loaded_account.pubkey());
let computed_hash = Self::hash_account_data(
loaded_account.lamports(),
loaded_account.owner(),
loaded_account.executable(),
loaded_account.rent_epoch(),
loaded_account.data(),
loaded_account.pubkey(),
);
if hash_is_missing {
loaded_hash = computed_hash;
}
Expand Down

0 comments on commit 4535ea6

Please sign in to comment.