Skip to content

Commit f48901c

Browse files
blockifier: box TransactionFeeError in TransactionExecutionError
1 parent 347966f commit f48901c

File tree

6 files changed

+11
-9
lines changed

6 files changed

+11
-9
lines changed

crates/blockifier/src/fee/fee_checks.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ impl FeeCheckReport {
186186
) -> TransactionExecutionResult<()> {
187187
let TransactionReceipt { fee, .. } = *tx_receipt;
188188
let (balance_low, balance_high, can_pay) =
189-
get_balance_and_if_covers_fee(state, tx_context, fee)?;
189+
get_balance_and_if_covers_fee(state, tx_context, fee).map_err(Box::new)?;
190190
if can_pay {
191191
return Ok(());
192192
}

crates/blockifier/src/transaction/account_transaction.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -483,7 +483,7 @@ impl AccountTransaction {
483483

484484
Ok(fee_transfer_call
485485
.execute(state, &mut context, &mut remaining_gas_for_fee_transfer)
486-
.map_err(TransactionFeeError::ExecuteFeeTransferError)?)
486+
.map_err(|error| Box::new(TransactionFeeError::ExecuteFeeTransferError(error)))?)
487487
}
488488

489489
/// Handles fee transfer in concurrent execution.

crates/blockifier/src/transaction/errors.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ pub enum TransactionExecutionError {
105105
#[error(transparent)]
106106
StateError(#[from] StateError),
107107
#[error(transparent)]
108-
TransactionFeeError(#[from] TransactionFeeError),
108+
TransactionFeeError(#[from] Box<TransactionFeeError>),
109109
#[error(transparent)]
110110
TransactionPreValidationError(#[from] TransactionPreValidationError),
111111
#[error(transparent)]

crates/blockifier/src/transaction/l1_handler_transaction.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,12 +98,12 @@ impl<U: UpdatableState> ExecutableTransaction<U> for L1HandlerTransaction {
9898
// For now, assert only that any amount of fee was paid.
9999
// The error message still indicates the required fee.
100100
if paid_fee == Fee(0) {
101-
return Err(TransactionExecutionError::TransactionFeeError(
101+
return Err(TransactionExecutionError::TransactionFeeError(Box::new(
102102
TransactionFeeError::InsufficientFee {
103103
paid_fee,
104104
actual_fee: receipt.fee,
105105
},
106-
));
106+
)));
107107
}
108108

109109
Ok(l1_handler_tx_execution_info(execute_call_info, receipt, None))

crates/blockifier/src/transaction/transactions_test.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2817,10 +2817,12 @@ fn test_l1_handler(#[values(false, true)] use_kzg_da: bool) {
28172817

28182818
assert_matches!(
28192819
error,
2820-
TransactionExecutionError::TransactionFeeError(
2820+
TransactionExecutionError::TransactionFeeError(boxed_fee_error)
2821+
if matches!(
2822+
*boxed_fee_error,
28212823
TransactionFeeError::InsufficientFee { paid_fee, actual_fee }
2824+
if paid_fee == Fee(0) && actual_fee == expected_actual_fee
28222825
)
2823-
if paid_fee == Fee(0) && actual_fee == expected_actual_fee
28242826
);
28252827
}
28262828

crates/native_blockifier/src/py_testing_wrappers.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ use crate::py_objects::PyExecutionResources;
88

99
#[pyfunction]
1010
pub fn raise_error_for_testing() -> NativeBlockifierResult<()> {
11-
Err(TransactionExecutionError::TransactionFeeError(
11+
Err(TransactionExecutionError::TransactionFeeError(Box::new(
1212
TransactionFeeError::CairoResourcesNotContainedInFeeCosts,
13-
)
13+
))
1414
.into())
1515
}
1616

0 commit comments

Comments
 (0)