diff --git a/evm-tests/jsontests/tests/state.rs b/evm-tests/jsontests/tests/state.rs index 28dce1a97..cdf3c5af4 100644 --- a/evm-tests/jsontests/tests/state.rs +++ b/evm-tests/jsontests/tests/state.rs @@ -29,6 +29,7 @@ pub fn run(dir: &str) { verbose: true, very_verbose: true, verbose_failed: true, + print_state: true, }; for entry in fs::read_dir(dest).unwrap() { let entry = entry.unwrap(); diff --git a/gasometer/src/lib.rs b/gasometer/src/lib.rs index 1bc4465c0..59f586899 100644 --- a/gasometer/src/lib.rs +++ b/gasometer/src/lib.rs @@ -29,8 +29,11 @@ macro_rules! event { } #[cfg(feature = "force-debug")] macro_rules! log_gas { - ($self:expr, $($arg:tt)*) => (log::trace!(target: "evm", "Gasometer {} [Gas used: {}, Gas left: {}]", format_args!($($arg)*), - $self.total_used_gas(), $self.gas())); + ($self:expr, $($arg:tt)*) => ( + log::trace!(target: "evm", "Gasometer {} [Gas used: {}, Gas left: {}]", format_args!($($arg)*), + $self.total_used_gas(), $self.gas()); + println!(" Gasometer {} [Gas used: {}, Gas left: {}]", format_args!($($arg)*), $self.total_used_gas(), $self.gas()); + ); } #[cfg(not(feature = "force-debug"))] @@ -243,6 +246,13 @@ impl<'config> Gasometer<'config> { return Err(ExitError::OutOfGas); } + let after_gas = self.gas_limit - all_gas_cost; + try_or_fail!(self.inner, inner_mut.extra_check(cost, after_gas)); + + inner_mut.used_gas += gas_cost; + inner_mut.memory_gas = memory_gas; + inner_mut.refunded_gas += gas_refund; + log_gas!( self, "Record dynamic cost {} - memory_gas {} - gas_refund {}", @@ -251,13 +261,6 @@ impl<'config> Gasometer<'config> { gas_refund ); - let after_gas = self.gas_limit - all_gas_cost; - try_or_fail!(self.inner, inner_mut.extra_check(cost, after_gas)); - - inner_mut.used_gas += gas_cost; - inner_mut.memory_gas = memory_gas; - inner_mut.refunded_gas += gas_refund; - Ok(()) } diff --git a/src/executor/stack/executor.rs b/src/executor/stack/executor.rs index 9c0525f94..b586e6ac9 100644 --- a/src/executor/stack/executor.rs +++ b/src/executor/stack/executor.rs @@ -427,8 +427,6 @@ impl<'config, 'precompiles, S: StackState<'config>, P: PrecompileSet> access_list: &[(H160, Vec)], ) -> Result<(), ExitError> { let transaction_cost = gasometer::create_transaction_cost(init_code, access_list); - // TODOFEE - println!("record_create_transaction_cost: {record_create_transaction_cost:?}"); let gasometer = &mut self.state.metadata_mut().gasometer; gasometer.record_transaction(transaction_cost) } @@ -1171,6 +1169,8 @@ impl<'config, 'precompiles, S: StackState<'config>, P: PrecompileSet> Interprete }); } + // TODOFEE + println!("OPCODE: {opcode:?}"); if let Some(cost) = gasometer::static_opcode_cost(opcode) { self.state .metadata_mut()