diff --git a/core/state_transition.go b/core/state_transition.go index f9c9a2ab5a..3d61677352 100644 --- a/core/state_transition.go +++ b/core/state_transition.go @@ -528,6 +528,14 @@ func (st *stateTransition) execute() (*ExecutionResult, error) { peakGasUsed = floorDataGas } } + minGasUsed := st.initialGas * 80 / 100 + if st.gasUsed() < minGasUsed { + prev := st.gasRemaining + st.gasRemaining = st.initialGas - minGasUsed + if t := st.evm.Config.Tracer; t != nil && t.OnGasChange != nil { + t.OnGasChange(prev, st.gasRemaining, tracing.GasChangeUnspecified) + } + } st.returnGas() effectiveTip := msg.GasPrice