mirror of
https://github.com/paradigmxyz/reth.git
synced 2026-02-19 03:04:27 -05:00
perf(trie): remove redundant HashMap lookup in sparse trie account state query (#22328)
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com> Co-authored-by: Amp <amp@ampcode.com>
This commit is contained in:
@@ -613,13 +613,13 @@ where
|
||||
}
|
||||
|
||||
// Get the current account state either from the trie or from latest account update.
|
||||
let trie_account = if let Some(LeafUpdate::Changed(encoded)) = self.account_updates.get(addr) {
|
||||
Some(encoded).filter(|encoded| !encoded.is_empty())
|
||||
} else if !self.account_updates.contains_key(addr) {
|
||||
self.trie.get_account_value(addr)
|
||||
} else {
|
||||
let trie_account = match self.account_updates.get(addr) {
|
||||
Some(LeafUpdate::Changed(encoded)) => {
|
||||
Some(encoded).filter(|encoded| !encoded.is_empty())
|
||||
}
|
||||
// Needs to be revealed first
|
||||
return true;
|
||||
Some(LeafUpdate::Touched) => return true,
|
||||
None => self.trie.get_account_value(addr),
|
||||
};
|
||||
|
||||
let trie_account = trie_account.map(|value| TrieAccount::decode(&mut &value[..]).expect("invalid account RLP"));
|
||||
|
||||
Reference in New Issue
Block a user