fix: check hashed state for loading TriePrefixSets::destroyed_accounts (#12235)

This commit is contained in:
joshieDo
2024-11-02 02:14:22 +09:00
committed by GitHub
parent bc69f6348f
commit 969ca3e63b

View File

@ -36,13 +36,13 @@ impl<TX: DbTx> PrefixSetLoader<'_, TX> {
// Walk account changeset and insert account prefixes. // Walk account changeset and insert account prefixes.
let mut account_changeset_cursor = self.cursor_read::<tables::AccountChangeSets>()?; let mut account_changeset_cursor = self.cursor_read::<tables::AccountChangeSets>()?;
let mut account_plain_state_cursor = self.cursor_read::<tables::PlainAccountState>()?; let mut account_hashed_state_cursor = self.cursor_read::<tables::HashedAccounts>()?;
for account_entry in account_changeset_cursor.walk_range(range.clone())? { for account_entry in account_changeset_cursor.walk_range(range.clone())? {
let (_, AccountBeforeTx { address, .. }) = account_entry?; let (_, AccountBeforeTx { address, .. }) = account_entry?;
let hashed_address = keccak256(address); let hashed_address = keccak256(address);
account_prefix_set.insert(Nibbles::unpack(hashed_address)); account_prefix_set.insert(Nibbles::unpack(hashed_address));
if account_plain_state_cursor.seek_exact(address)?.is_none() { if account_hashed_state_cursor.seek_exact(hashed_address)?.is_none() {
destroyed_accounts.insert(hashed_address); destroyed_accounts.insert(hashed_address);
} }
} }