Skip to content

Commit bf1b642

Browse files
blockifier: remove fee builtins duplicacy in get_tx_weights
1 parent 2d00ab0 commit bf1b642

File tree

2 files changed

+13
-4
lines changed

2 files changed

+13
-4
lines changed

crates/blockifier/src/bouncer.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -786,8 +786,6 @@ pub fn get_tx_weights<S: StateReader>(
786786
add_maps(&mut builtin_counters_without_casm_hash_computation, tx_builtin_counters);
787787
// The transaction builtin counters does not include the transaction overhead ('additional')
788788
// resources.
789-
// TODO(AvivG): Builtins from `fee_transfer_call_info` are counted twice - in `os_vm_resources`
790-
// and again in `tx_builtin_counters`. Remove the duplication.
791789
add_maps(
792790
&mut builtin_counters_without_casm_hash_computation,
793791
&tx_resources.computation.os_vm_resources.prover_builtins(),

crates/blockifier/src/transaction/objects.rs

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,12 @@ use starknet_api::transaction::{
2222

2323
use crate::abi::constants as abi_constants;
2424
use crate::blockifier_versioned_constants::VersionedConstants;
25-
use crate::execution::call_info::{BuiltinCounterMap, CallInfo, SummaryWithBuiltins};
25+
use crate::execution::call_info::{
26+
BuiltinCounterMap,
27+
CallInfo,
28+
ExecutionSummary,
29+
SummaryWithBuiltins,
30+
};
2631
use crate::execution::stack_trace::ErrorStack;
2732
use crate::fee::fee_checks::FeeCheckError;
2833
use crate::fee::fee_utils::get_fee_by_gas_vector;
@@ -208,6 +213,10 @@ impl TransactionExecutionInfo {
208213
.chain(self.fee_transfer_call_info.iter())
209214
}
210215

216+
pub fn non_optional_call_infos_no_fee_transfer(&self) -> impl Iterator<Item = &CallInfo> {
217+
self.validate_call_info.iter().chain(self.execute_call_info.iter())
218+
}
219+
211220
pub fn is_reverted(&self) -> bool {
212221
self.revert_error.is_some()
213222
}
@@ -222,7 +231,9 @@ impl TransactionExecutionInfo {
222231
}
223232

224233
pub fn summarize_builtins(&self) -> BuiltinCounterMap {
225-
CallInfo::summarize_many_builtins(self.non_optional_call_infos())
234+
// Remove fee transfer builtins to avoid double-counting in `get_tx_weights`
235+
// in bouncer.rs (already included in os_vm_resources).
236+
CallInfo::summarize_many_builtins(self.non_optional_call_infos_no_fee_transfer())
226237
}
227238
}
228239
pub trait ExecutionResourcesTraits {

0 commit comments

Comments
 (0)