Skip to content

Commit 25512fd

Browse files
authored
fix: deduplicate validate_initial_tx_gas API (#2006)
* fix: deduplicate validate_initial_tx_gas API * misc: apply review suggestions
1 parent b4578fe commit 25512fd

File tree

1 file changed

+8
-12
lines changed

1 file changed

+8
-12
lines changed

crates/handler/src/validation.rs

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,7 @@ where
7474
context: &Self::Context,
7575
) -> Result<InitialAndFloorGas, Self::Error> {
7676
let spec = context.cfg().spec().into();
77-
validate_initial_tx_gas::<&Self::Context, InvalidTransaction>(context, spec)
78-
.map_err(Into::into)
77+
validate_initial_tx_gas(context.tx(), spec).map_err(From::from)
7978
}
8079
}
8180

@@ -333,16 +332,13 @@ where
333332
}
334333

335334
/// Validate initial transaction gas.
336-
pub fn validate_initial_tx_gas<CTX, Error>(
337-
context: CTX,
335+
pub fn validate_initial_tx_gas<TransactionT>(
336+
tx: TransactionT,
338337
spec_id: SpecId,
339-
) -> Result<InitialAndFloorGas, Error>
338+
) -> Result<InitialAndFloorGas, InvalidTransaction>
340339
where
341-
CTX: TransactionGetter + CfgGetter,
342-
Error: From<InvalidTransaction>,
340+
TransactionT: Transaction,
343341
{
344-
let spec = context.cfg().spec().into();
345-
let tx = context.tx();
346342
let (accounts, storages) = tx.access_list_nums().unwrap_or_default();
347343

348344
let gas = gas::calculate_initial_tx_gas(
@@ -356,13 +352,13 @@ where
356352

357353
// Additional check to see if limit is big enough to cover initial gas.
358354
if gas.initial_gas > tx.gas_limit() {
359-
return Err(InvalidTransaction::CallGasCostMoreThanGasLimit.into());
355+
return Err(InvalidTransaction::CallGasCostMoreThanGasLimit);
360356
}
361357

362358
// EIP-7623: Increase calldata cost
363359
// floor gas should be less than gas limit.
364-
if spec.is_enabled_in(SpecId::PRAGUE) && gas.floor_gas > tx.gas_limit() {
365-
return Err(InvalidTransaction::GasFloorMoreThanGasLimit.into());
360+
if spec_id.is_enabled_in(SpecId::PRAGUE) && gas.floor_gas > tx.gas_limit() {
361+
return Err(InvalidTransaction::GasFloorMoreThanGasLimit);
366362
};
367363

368364
Ok(gas)

0 commit comments

Comments
 (0)