feat(provider): BlockchainProvider2::account_block_changeset (#10311)

This commit is contained in:
Alexey Shekhirin
2024-08-14 17:32:53 -07:00
committed by GitHub
parent 97e153ab64
commit c2808f1164

View File

@@ -1284,7 +1284,23 @@ where
&self,
block_number: BlockNumber,
) -> ProviderResult<Vec<AccountBeforeTx>> {
self.database.provider()?.account_block_changeset(block_number)
if let Some(state) = self.canonical_in_memory_state.state_by_number(block_number) {
let changesets = state
.block()
.execution_output
.bundle
.reverts
.clone()
.into_plain_state_reverts()
.accounts
.into_iter()
.flatten()
.map(|(address, info)| AccountBeforeTx { address, info: info.map(Into::into) })
.collect();
Ok(changesets)
} else {
self.database.provider()?.account_block_changeset(block_number)
}
}
}