Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions crates/blockifier/src/bouncer.rs
Original file line number Diff line number Diff line change
Expand Up @@ -786,8 +786,6 @@ pub fn get_tx_weights<S: StateReader>(
add_maps(&mut builtin_counters_without_casm_hash_computation, tx_builtin_counters);
// The transaction builtin counters does not include the transaction overhead ('additional')
// resources.
// TODO(AvivG): Builtins from `fee_transfer_call_info` are counted twice - in `os_vm_resources`
// and again in `tx_builtin_counters`. Remove the duplication.
add_maps(
&mut builtin_counters_without_casm_hash_computation,
&tx_resources.computation.os_vm_resources.prover_builtins(),
Expand Down
19 changes: 15 additions & 4 deletions crates/blockifier/src/transaction/objects.rs
Original file line number Diff line number Diff line change
Expand Up @@ -209,6 +209,12 @@ impl TransactionExecutionInfo {
.chain(self.fee_transfer_call_info.iter())
}

/// Returns call infos excluding fee transfer (to avoid double-counting in bouncer
/// calculations).
pub fn non_optional_call_infos_without_fee_transfer(&self) -> impl Iterator<Item = &CallInfo> {
self.validate_call_info.iter().chain(self.execute_call_info.iter())
}

pub fn is_reverted(&self) -> bool {
self.revert_error.is_some()
}
Expand All @@ -220,10 +226,15 @@ impl TransactionExecutionInfo {
}

pub fn summarize_builtins(&self) -> BuiltinCounterMap {
self.non_optional_call_infos().fold(BuiltinCounterMap::new(), |mut acc, call_info| {
add_maps(&mut acc, &call_info.builtin_counters);
acc
})
let mut builtin_counters = BuiltinCounterMap::new();
// Remove fee transfer builtins to avoid double-counting in `get_tx_weights`
// in bouncer.rs (already included in os_vm_resources).
for call_info_iter in self.non_optional_call_infos_without_fee_transfer() {
for call_info in call_info_iter.iter() {
add_maps(&mut builtin_counters, &call_info.builtin_counters);
}
}
builtin_counters
}
}
pub trait ExecutionResourcesTraits {
Expand Down
Loading